UAAAAAAAWZrgCkRFRklOSVRJT05TIElNUExJQ0lUIFRBR1MgOjo9CkJFR0lOCmlkLWNlIE9CSkVDVCBJREVOVElGSUVSICA6PWoge2kgbzpudC1pc28tY2NpdHQoMikgZHMoNSkgMjl9CmlkLWNlLWF1dGhvcml0eUtleUlkZW50aWZpZXIgT0JKRUNUIElERU5USUZJRVIgOjo9ICB7IGlkLWNlIDM1IH0KQXV0aG9yaXR5S2V5SWRlbnRpZmllciA6Oj0gU0VRVUVOQ0UgewogICAgICBrZXlJZGVudGlmaWVyICAgICAgICAgICAgIFswXSBLZXkgICAgICAgIG5BZGRyZXNzJXMgICAgICBbM10gRVhQTElDSVQgU0VUIFNJWkUgKDEuLk1BWCkgT0YgT0NURVQgU1RSSU5HIH0KdGVybWluYWwtdHlwZSAgSU5URUdFUiA6Oj0gMjMKVGVybWluYWxUeXBlIDo6PSBJTlRFR0VSIHsKICAgdGXsZXggKDMpLAogICAgICAgICAgKDcpLAogICA6Oj0gICAgIHtpZC1hdCA0Nn0KWDUyMGRuUXVhbGlmaWVyIDo6PSAgICAgUHJpbnRhYmxlU3RyaW5nCmlkLWF0LWNvdW50cnlOYW1lICwgICAgICBBdHRyaWJ1dGVUeXBlICAgOjo9ICAgICB7aWQtYXQgNn0KWDUyMGNvdW50cnlOYW1lIDo6PSAgICAgUHJpbnRhYmxlU3RyaW5nIChTSVpFICgyKSkgLS0gSVMgMzE2NiBjb2RlcwppZC1hdC1zZXJpYWxOdW1iZXIgICBnYW5pemF0aW9kZHJlc2BzJXMgICAgICBbM10gRVhQTElDSVQgU0VUIFNJWkUgKDEuLk1BWCkgT0YgT0NURVQgU1RSSU5HIH0KdGVybWluYWwtdHlwZSAgSU5URUdFUiA6Oj0gMjMKVGVybWluYWxUeXBlIDo6PSBJTlRFR0VSIHsKICAgdGVsZXggKDMpLAogICAgICAgICAgKDcpLAogICAgIGRlY2lwaGVyT25weSAgICAgICAgICAgKCk4IAogfWlkLWNlLXByaXZhdGVLZXlVc2FnZVBlcmlvZCBPQkpFS1QgSURFTlRJRklFUiA6Oj0gIHsgaWQtY2UgMTYgfQpQcml2YXRlS2V5VXNhZ2VQZXJpb2QgOjpyaWFsTnVkZWQgaGVyZSB0byBoYW5kbGUgb2xkIFVJRCBlbmNvZGVkIGFzIGlhNVN0cmluZyAtLQogICAgICAtLSBTZWUgdGVzdHMvdXNlcmlkLyBmb3IgbW9jcy01LWlkLVBCRVMyIE9CSkVDVCBJREVOVElGSUVSIDo6PSB7cGtjcy01IDEzfQpwa2NzLTUtUEJFUzItcGFyYW1zIDo6PSBTRVFVRU5DYWxOdW1iZXIgIE9QVElPTkFMIH0KICAgIC0tIGF1dGhvcml0eUNlcnRJc3N1ZXIgYW5kIGF1dGhvcml0eUNlcnRTZXJpYWxOdW1iZXIgc2hhbGwgYm90aAogLSAgLS0gYmUgcHJlc2VudCBvciBib3RoIGJlIGFic2dlbnQKS2V5SWRlbnRpZmllciA6Oj0gT0NURVQgU1RSSU5HCmlkLWNlLXN1YmplY3RLZXlJZGVudGlmaWVyIE9CSkVDVCBJREVOVElGSUVSIDo6PSAgeyBpZC1jZSAxNCB9ClN1YigxKSwKICAgICBrZXlFbmNpcGNpcGhlcm1lbnQgICAgICAgICgzKSwKICAgICBrZXlBZ3JlZW1lbnQgICAgICAgICAgICAoMCksCiAgICAga2V5Q2VodFNpZ24gICAgICAgICAgICAgKDUpLAogICAgIGNSTFNpZ24gICAgICAgICAgICAgICAgICg2KSwKICAgICBlbmNpcGhlck9ubHkgICAgIFBLSVgxSU9OQUwsCiAgICAgICAgdFNlbGVjdG9yICAgICAgIFsyXSBFWFBMSUNJVCBPQ1RFVCBTVFJJTkcgT1BUSU9OQUwsCiAgICAgICAgbkFkZHJlc3MlcyAgICAgIFsxXSBFWFBMSUNJVCBTRVQgU0laRSAoMS4uTUFYKSBPRiBPQ1RFVCBTVFJJTkcgfQp0ZXJtaW5hbC10eXBlICBJTlRFR0VSIDo6PSAyMwpUZXJtaW5hbFR5cGUgOjo9IElOVEVHRVIgewogICB0ZWxleCAoMyksCiAgICAgICAgICAoNyksCiAgIDo6PSAgICAge2lkLWF0IDQ2fQpYNTIwZG5RdWFsaWZpZXIgOjo9ICAgICBQcmludGFibGVTdHJpbmcKaWQtYXQtY291bnRyeU5hbWUgLCAgICAgIEF0dHJpYnV0ZVR5cGUgICA6Oj0gICAgIHtpZC1hdCA2fQpYNTIwY291bnRyeU5hbWUgOjo9ICAgICBQcmludGFibGVTdHJpbmcgKFNJWkUgKDIpKSAtLSBJUyAzMTY2IGNvZGVzCmlkLWF0LXNlcmlhbE51bWJlciAgIGdhbml6YXRpb2RkcmVzYHMlcyAgICAgIFszXSBFWFBMSUNJVCBTRVQgU0laRSAoMS4uTUFYKSBPRiBPQ1RFVCBTVFJJTkcgfQp0ZXJtaW5hbC10eXBlICBJTlRFR0VSIDo6PSAyMwpUZXJtaW5hbFR5cGUgOjo9IElOVEVHRVIgewogICB0ZWxleCAoMyksCiAgICAgICAgICAoNyksCiAgICAgZGVjaXBoZXJPbnB5ICAgICAgICAgICAoKTggCiB9aWQtY2UtcHJpdmF0ZUtleVVzYfFlUGVyaW9kIE9CSkVLVCBJREVOVElGSUVSIDo6PSAgeyBpZC1jZSAxNiB9ClByaXZhdGVLZXlVc2FnZVBlcmlvZCA6OnJpYWxOdWRlZCBoZXJlIHRvIGhhbmRsZSBvbGQgVUlEIGVuY29kZWQgYXMgaWE1U3RyaW5nIC0tCiAgICAgIC0tIFNlZSB0ZXN0cy91c2VyaWQvIGZvciBtb2NzLTUtaWQtUEJFUzIgT0JKRUNUIElERU5USUZJRVIgOjo9IHtwa2NzLTUgMTN9CnBrY3MtNS1QQkVTMi1wYXJhbXMgOjo9IFNFUVVFTkNFIHsKICBrZXlE