UEtJWDEgeyB9CkRFRklOSVRJT05TIElNUExJQ0lUIFRBR1MgOjo9CkJFR0lOCmlkLWNlIE9CSkVDVCBJREVOVElGSUVSICA6Oj0gIHtqb2ludC1pc28tY2NpdHQoMikgZHMoNSkgMjl9IGRyb3BwaW5nIGl0LiAtLQogICAgICBpYTVTdHJpbmcgICAgICAgICAgICAgYCBJQTVTdHJpbmcgKFNJWkUoMS4uTUFYKSkgfQppZC1jZS1zdWJqZWN0QWx0TmFtZSBPQkpFQ1QgSURFTlRJRklFUiA6Oj0gIHsgaWQtY2UgMTcgfQpTdWJqZWN0QWx0TmFtZSA6Oj0gR2VuZSFhbE5hbWVzCkdlbmVyYSAxMX0KWDUyME9yZ2FuaXphdGlvZGRyZXNzJXMgICAgICBbM10gRVhQTElDSVQgU0VUIFNJWkUgKDEuLk1BWCkgT0YgT0NURVQgU1RSSU5HIH0KdGVybWluYWwtdHlwZSAgSU5URUdFUiA6Oj0gMjMKVGVybWluYWxUeXBlIDo6PSBJTlRFR0VSIHsKICAgdGVsZXggKDMpLAogICAgICAgICAgKDcpLAogICAgIGRlY2lwaGVyT25weSAgICAgICAgICAgICg4KSB9CmlkLWNlLXByaXZhdGVLZXlVc2FnZVBlcmlvZCBPQkpFS1QgSURFTlRJRklFUiA6Oj0gIHsgaWQtY2UgMTYgfQpQcml2YXRlS2V5c1VnYWVQZXJpb2QgOjo9IFNFUVVFTkNFIHsKICAgICBub3RCZWZvcmUgICAgICAgWzBdICAgICBHZW5lcmFsaXplZFRpbWUgT1BUSU9OQUwsCiAgICAgbm90QWZ0ZXIgICAgICAgIFsxXSAgICAgR2VuZXJhbGl6ZWRUaW1lIE9QVElPTkFMIH0KICAgICAtLSBlaXRoZXIgbm90QmVmb3JlIG9yIG5vdEFmdGVyIHNoYWxsIGJl4I+Nm3NlbnQKaWQtY2UtY2VydGlmaWNhdGVQb2xpY2llcyBPQkpFQ1QgSURFTlRJRklFUiA6Oj0gIHsgaWQtY2UgMzIgfQpDZXJ0aWZpY2F0ZVBvbGljaWVzIDo6PSBTRVFVRU5DRSBTSVpFICgxLi5NQVgpIE9GIFBvbGljeUluZm9ybWF0aW9uClBvbGljeUluZm9ybWF0aW9uIDo6PSBTRVFVRU5DRSB7CiAgICAgcG9saWN5SWRlbnRpZmZvciBtb3JlIGluZm9ybWF0aW9uLiAgSXQgc2hvdWxkbid0IGJlIGhlcmUsIC0tCiAgICAgKi0tIHNvIGlmIGl0IGNhdXNlcyBwcm9ibGVtcywgY29uc2lkZXJpbmcgZHJvcHBpbmcgaXQuIC0tCiAgICAgIGlhNVN0cmluZyAgICAgICAgICAgICBgIElBNVN0cmluZyAoU0laRSgxLi5NQVgpKSB9CmlkLWNlLXN1YmplY3RBbHROYW1lIE9CSkVDVCBJREVOVElGSUVSIDo6PSAgeyBpZC1jZSAxNyB9ClN1YmplY3RvbHROYW1lIDo6PSBHZW5lIWFsTmFtZXMKR2VuZXJhIDExfQpYNTIwT3JnYW5pemF0aW9uYWxVbml0JmFtZSA6Oj0gRGlyZWN0b3J5U3RyaW5nCmlkLWF0LXRpdGxlICAgICBBdHRyaWJ1dGVUeXBlICAgOjo9ICAgICB7aWQtYXQgMTJ9Clg1MjBUaXRsZSA6Oj0gICBEaXJlY3RvcnlTdHJpbmcKaWQtYXQtZGVzY3JpcHRpb24gICAgIEF0dHJpYnV0ZVR5cGUgICA6Oj0gICAgIHtpZC1hdCAxM30KWDUyMERlc2NyaXB0aW9uIDo6PSAgIERpcmVjdG9yeVN0cmluZwppZC1hdC1kblF1YWxpZmllciAgICAgICBBdHRyaWJ1dGVUeXBlICAgOjo9ICAgICB7aWQtYXQgNDZ9Clg1MjBkblF1YWxpZmllciA6Oj0gICAgIFByaW50YWJsZVN0cmluZwppZC1hdC1jb3VudHJ5TmFtZSAgICAgICBBdHRyaWJ1dGVUeXBlICAgOjo9ICAgICB7aWQtYXQgNn0KWDUyMGNvdW50cnlOYW1lIDo6PSAgICAgUHJpbnRhYmxlU3RyaW5nIChTSVpFICgyKSkgLS0gSVMgMzE2NiBjb2RlcwppZC1hdC1zZXJpYWxOdW1iZXIgICBnYW5pemF0aW9kZHJlc3MlcyAgICAgIFszXSBFWFBMSUNJVCBTRVQgU0laRSAoMS4uTUFYKSBPRiBPQ1RFVCBTVFJJTkcgfQp0ZXJtaW5hbC10eXBlICBJTlRFR0VSIDo6PSAyMwpUZXJtaW5hbFR5cGUgOjo9IElOVEVHRVIgewogICB0ZWxleCAoMyksCiAgICAgICAgICAoNyksCiAgICAgZGVjaXBoZXJPbnB5ICAgICAgICAgICAgKDgpIH0KaWQtY2UtcHJpdmF0ZUtleVVzYWdlUGVyaW9kIE9CSkVLVCBJREVOVElGSUVSIDo6PSAgeyBpZC1jZSAxNiB9ClByaXZhdGVLZXlVc2FnZVBlcmlvZCA6Oj0gU0VRVUVOQ0UgewogICAgIG5vdEJlZm9yZSAgICAgICBbMF0gICAgIEdlbmVyYWxpemVkVGltZSBPUFRJT05BTCwKICAgICBub3RBZnRlciAgICAgICAgWzFdICAgICBHZW5BdHRyaWJ1dGVUeXBlICAgOjo9ICAgICB7aWQtYXQgMTJ9Clg1MjBUaXRsZSA6Oj0gICBEaXJlY3RvcnlTdHJpbmcKaWQtYXQtZGVzY3JpcHRpb24gICAgIEF0dHJpYnV0ZVR5cGUgICA6Oj0gICAgIHtpZC1hdCAxM30KWDUyMERlc2NyaXB0aW9uIDo6PSAgIERpcmVjdG9yeVN0cmluZwppZC1hdC1kblF1YWxpZmllciAgICAgICBBdHRyaWJ1dGVUeXBlICAgOjo9ICAgICB7aWQtYXQgNDZ9Clg1MjBkblF1YWxpZmllciA6Oj0gICAgIFByaW50YWJsZVN0cmluZwppZC1hdC1jb3VudHJ5TmFtZSAgICAgICBBdHRyaWJ1dGVUeXBlICAgOjo9ICAgICB7aWQtYXQgNn0KWDUyMGNvdW50cnlOYW1lIDo6PSAgICAgUHJpbnRhYmxlU3RyaW5nIChTSVpFICgyKSkgLS0gSVMgMzE2NiBjb2RlcwppZC1hdC1zZXJpYWxOdW1iZXIgICBnYW5pemF0aW9kZHJlc3MlcyAgICAgIFszXSBFWFBMSUNJVCBTRVQgU0laRSAoMS4uTUFYKSBPRiBPQ1RFVCBTVFJJTkcgfQp0ZXJtaW5hbC10eXBlICBJTlRFR0VSIDo6PSAyMwpUZXJtaW5hbFR5cGUgOjo9IElOVEVHRVIgewogICB0ZWxleCAoMyksCiAgICAgICAgICAoNyksCiAgICAgZGVjaXBoZXJPbnB5ICAgICAgICAgICAgKDgpIH0KaWQtY2UtcHJpdmF0ZUtleVVzYWdlUGVyaW9kIE9CSkVLVCBJREVOVElGSUVSIDo6PSAgeyBpZC1jZSAxNiB9ClByaXZhdGVLZXlVc2FnZVBlcmlvZCA6Oj0gU0VRVUVOQ0UgewogICAgIG5vdEJlZm9yZSAgICAgICBbMF0gICAgIEdlbmVyYWxpemVkVGltZSBPUFRJT05BTCwKICAgICBub3RBZnRlciAgICAgICAgWzFdICAgICBHZW5lcmFsaXplZFRpbWUgT1BUSU9OQUwgfQogICAgIC0tIGVpdGhlciBub3RCZWZvcmUgb3Igbm90QWZ0ZXIgc2hhbGwgYmXgj42bc2VudAppZC1jZS1jZXJ0aWZpY2F0ZVBvbGljaWVzIE9CSkVDVCBJREVOVElGSUVSIDo6PSAgeyBpZC1jZSAzMiB9CkNlcnRpZmljYXRlUG9saWNpZXMgOjo9IFNFUVVFTkNFIFNJWkUgKDEuLk1BWCkgT0YgUG9saWN5SW5mb3JtYXRpb24KUG9saWN5SW5mb3JtYXRpb24gOjo9IFNFUVVFTkNFIHsKICAgICBwb2xpY3lJZGVudGlmZm9yIG1vcmUgaW5mb3JtYXRpb24uICBJdCBzaG91bGRuJ3QgYmUgaGVyZSwgLS0KICAgICAgLS0gc28gaWYgaXQgY2F1c2VzIHByb2JsZW1zLCBjb25zaWRlcmluZyBkcm9wcGluZyBpdC4gLS0KICAgICAgaWE1U3RyaW5nICAgICAgICAgICAgIGAgSUE1U3RyaW5nIChTSVpFKDEuLk1BWCkpIH0KaWQtY2Utc3ViamVjdEFsdE5hbWUgT0JKRUNUIElERU5USUZJRVIgOjo9ICB7IGlkLWNlIDE2IH0KU3ViamVjdEFsdE5hbWUgOjo9IEdlbmUhYWxOYW1lcwpHZW5lcmEgMTF9Clg1MjBPcmdhbml6YXRpb25hbFVuaXQmYW1lIDo6PSBEaXJlY3RvcnlTdHJpbmcKaWQtYXQtdGl0bGUgICAgIEF0dHJpYnV0ZVR5cGUgICA6Oj0gICAgIHtpZC1hdCAxMn0KWDUyMFRpdGxlIDo6PSAgIERpcmVjdG9yeVN0cmluZwppZC1hdC1kZXNjcmlwdGlvbiAgICAgQXR0cmlidXRlVHlwZSAgIDo6PSAgICAge2lkLWF0IDEzfQpYNTIwRGVzY3JpcHRpb24gOjo9ICAgRGlyZWN0b3J5U3RyaW5nCmlkLWF0LWRuUXVhbGlmaWVyICAgICAgIEF0dHJpYnV0ZVR5cGUgICA6Oj0gICAgIHtpZC1hdCA0Nn0KWDUyMGRuUXVhbGlmaWVyIDo6PSAgICAgUHJpbnRhYmxlU3RyaW5nCmlkLWF0LWNvdW50cnlOYW1lICAgICAgIEF0dHJpYnV0ZVR5cGUgICA6Oj0gICAgIHtpZC1hdCA2fQpYNTIwY291bnRyeU5hbWUgOjo9ICAgICBQcmludGFibGVTdHJpbmcgKFNJWkUgKDIpKSAtLSBJUyAzMTY2IGNvZGVzCmlkLWF0LXNlcmlhbE51bWJlciAgICAgICBBdHRyaWJ1dGVUeXBlICAgOjo9ICAgICB7aWQtYXQgNX0KWDUyMHNlcmlhbE51ZGVkIGhlcmUgdG8gaGFuZGxlIG9sZCBVSUQgZW5jb2RlZCBhcyBpYTVTdHJpbmcgLS0KICAgICAgLS0gU2VlIHRlc3RzL3VzZXJpZC8gZm9yIG1vY3MtNS1pZC1QQkVTMiBPQkpFQ1QgSURFTlRJRklFUiA6Oj0ge3BrY3MtNSAxM30KcGtjcy01LVBCRVMyLXBhcmFtcyA6Oj0gU0VRVUVOQ0UgewogIGtleUQ=