UEtJWDEgeyB9CkRFRklOSVRJT05TIElNUExJQ0lUIFRBR1MgOjo9CkJFR0lOCmlkLWNlIE9CSkVDVCBJREVOVElGSUVSICA6Oj0gIHtqb2ludC1pc28tY2NpdHQoMikgZHMoNSkgMjl9CmlkLWNlLWF1dGhvcml0eUtleUlkZW50aWZpZXIgT0JKRUNUIElERU5USUZJRVIg4SA6Oj0gIHsgaWQtY2UgMzUgfQpBdXRob3JpdHlLZXlJZGVudGlmaWVyIDo6PSBTRVFVRU5DRSB7CiAgICAgIGtleUlkZW50aWZpZXAgICAgICAgICAgICAgWzBdIEtleUlkZW50aWZpZXIgICAgICAgICAgICBPUFRJT05BTCwKICAgICAgYXV0aG9yaXR5Q2VydElzc3VlciAgICAgICBbMV0gR2VuZXJhbE5hbWVzICAgICAgICAgICAgIE9QVElPTkFMLAogICAgICBhdXRob3JpdHlDZXJ0U2VyaWFsTnVtYmVyIFsyXSBDZXJ0aWZpY2F0ZVNlcmlhbE51bWJlciAgT1BUSU9OQUwgfQogICAgLS0gYXV0aG9yaXR5Q2VydElzc3VlciBhbmQgYXV0aG9yaXR5Q2VydFNlcmlhbE51bWJlciBzaGFsbCBib3RoCiAgICAtLSBiZSBwcmVzZW50IG9yIGJvdGggYmUgYWJzZ2VudApLZXlJZGVudGlmaWVyIDo6PSBPQ1RFVCBTVFJJTkcKaWQtY2Utc3ViamVjdEtleUlkZW50aWZpZXIgT0JKRUNUIElERU5USUZJRVIgOjo9ICB7IGlkLWNlIDE0IH0KU3ViamVjdEtleUlkZW50aWZpZXIgOjo9IEtleUlkZW50aWZpZXIKaWQtY2Uta2V5VXNhZ2UgT0JKRUNUIElERU5USUZJRVIgOjo9ICB7IGlkLWNlIDE1IH0KS2V5VXNhZ2UgOjo9IEJJVCBTVFJJTkcgewogICAgIGRpZ2l0YWxTaWduYXR1cmUgICAgICAgICgwKSwKICAgICBub25SZXB1ZGlhdGlvbiAgICAgICAgICAoMSksCiAgICAga2V5RW5jaXBoZXJtZW50ICAgICAgICAgKDIpLAogICAgIGRhdGFFbmNpcGhlcm1lbnQgICAgICAgICgzKSwKICAgICBrZXlBZ3JlZW1lbnQgICAgICAgICAgICAoNCksCiAgICAga2V5Q2VydFNpZ24gICAgICAgICAgICAgKDUpLAogICAgIGNSTFNpZ24gICAgICAgICAgICAgICAgICg2KSwKICAgICBlbmNpcGhlck9ubHkgICAgICAgICAgICAoNyksCiAgICAgZGVjaXBoZXJPbmx5ICAgICAgICAgICAgKDgpIH0KaWQtY2UtcHJpdmF0ZUtleVVzYWdlUGVyaW9kIE9CSkVDVCBJREVOVElGSUVSIDo6PSAgeyBpZC1jZSAxNiB9ClByaXZhdGVLZXlVc2FnZVBlcmlvZCA6Oj0gU0VRVUVOQ0UgewogICAgIG5vdEJlZm9yZSAgICAgICBbMF0gICAgIEdlbmVyYWxpemVkVGltZSBPUFRJT05BTCwKICAgICBub3RBZnRlciAgICAgICAgWzFdICAgICBHZW5lcmFsaXplZFRpbWUgT1BUSU9OQUwgfQogICAgIC0tdWVyIGFuZCBhdXRob3JpdHlDZXJ0U2VyaWFsTnVtYmVyIHNoYWxsIGJvdGgKICAgIC0tIGJlIHByZXNlbnQgb3IgYm90aCBiZSBhYnNnZW50CktleUlkZW50aWZpZXIgOjo9IE9DVEVUIFNUUklORwppZC1jZS1zdWJqZWN0S2V5SWRlbnRpZmllciBPQkpFQ1QgSURFTlRJRklFUiA6Oj0gIHsgaWQtY2UgMTQgfQpTdWJqZWN0S2V5SWRlbnRpZmllciA6Oj0gS2V5SWRlbnRpZmllcgppZC1jZS1rZXlVc2FnZSBPQkpFQ1QgSURFTlRJRklFUiA6Oj0gIHsgaWQtY2UgMTUgfQpLZXlVc2FnZSA6Oj0gQklUIFNUUklORyB7CiAgICAgZGlnaXRhbFNpZ25hdHVyZSAgICAgICAgKDApLAogICAgIG5vblJlcHVkaWF0aW9uICAgICAgICAgICgxKSwKICAgICBrZXlFbmNpcGhlcm1lbnQgICAgICAgICAoMiksCiAgICAgZGF0YUVuY2lwaGVybWVudCAgICAgICAgKDMpLAogICAgIGtleUFncmVlbWVudCAgICAgICAgICAgICg0KSwKICAgICBrZXlDZXJ0U2lnbiAgICAgICAgICAgICAoNSksCiAgICAgY1JMU2lnbiAgICAgICAgICAgICAgICAgKDYpLAogICAgIGVuY2lwaGVyT25seSAgICAgICAgICAgICg3KSwKICAgICBkZWNpcGhlck9ubHkgICAgICAgICAgICAoOCkgfQppZC1jZS1wcml2YXRlS2V5VXNhZ2VvdGljZSA6Oj0gU0VRVUVOQ0UgewogICAgIG5vdGljZVJlZiAgICAgICAgTm90aWNlUmVmZXIgT0JKRUNUIElERU5USUZJRVIgOjo9ICB7CiAgICAgaXNvKDEpIG1lbWJlci1ib2R5KDIpIHVzKDg0MCkgeDktNTcgKDEwMDQwKSB4OWFsZ29yaXRobSg0KSAzIH0KRHNzLVNpZy1WYWx1ZSA6Oj0gU0VRVUVOQ0UgewogICAgIHIgICAgICAgSU5URUdFUiwKICAgICBzICAgICAgIElOVEVHRVIKfQpkaHB1YmxpY251bWJlciBPQkpFQ1QgSURFTlRJRklFUiA6Oj0gewogICAgIGlzbygxKSBtZW1iZXItYm9keSgyKSB1cyg4NDApIGFuc2kteDk0MigxMDA0NikgbnVtYmVyLXR5cGUoMikgMSB9CkRvbWFpblBhcmFtZXRlcnMgOjo9IFNFUVVFTkNFIHsKICAgICBwICAgICAgIElOVEVHRVIsIC0tIG9kZCBwcmltZSwgcD1qcSArz+8gICAgIGcgICAgICAgSU5URUdFUiwgLS0gZ2VuZXJhdG9yLCBnCiAgICAgcSAgICAgICBJTlRFR0VSLCAtLSBmYWN0b3Igb2YgcC0xCiAgICAgaiAgICAgICBJTlRFR0VSIE9QVElPTkFMLCAtLSBzdWJncm91cCBmYWN0b3IsIGo+PSAyCiAgICAgdmFsaWRhdGlvblBhcm1zICBWYWxpZGF0aW9uUGFybXMgT1BUSU9OQUwgfQpSYWxpZGF0aW9uUGFybXMgOjo9IFNFUVVFTkNFIHsKICAgICBzZWVkICAgICAgICAgICAgIEJJVCBTVFJJTkcsCiAgICAgcGdlbkNvdW50ZXIgICAgICBJTlRFR0VSIH0KaWQtZHNhIE9CSkVDVCBJREVOVElGSUVSIDo6PSB7CiAgICAgaXNvKDEpIG1lbWJlci1ib2R5KDIpIHVzKDg0MCkgeDktNTcoMTAwNDApIHg5YWxnb3JpdGhtKDQpIDEgfQpEc3MtUGFybXMg