Skyhigh Security Policy Code Procedure Reference
- Last updated
- Save as PDF
NOTE: This documentation is a work in progress. If you find an error, please leave feedback at the bottom of the page.
×
W3sibmFtZSI6ICJETFAuQWRkIChETFAuSW5jaWRlbnRDb2xsZWN0b3IsIE5VTUJFUikiLCAicGFyYW1ldGVyX2Rlc2MiOiAiMS4gYERMUC5JbmNpZGVudENvbGxlY3RvcmA6IENvbGxlY3RvciB0byBhZGQgdG8uXG4yLiBgTlVNQkVSYDogTWF0Y2ggdG8gYWRkLiIsICJkZXNjcmlwdGlvbiI6ICJBZGRzIG1hdGNoIHRvIGluY2lkZW50LiIsICJleGFtcGxlX2NvZGUiOiAiLy8gSW5pdGlhbGl6ZSBhbiBJbmNpZGVudENvbGxlY3RvclxuRExQLkluY2lkZW50Q29sbGVjdG9yIGluY2lkZW50Q29sbGVjdG9yID0gRExQLkluY2lkZW50Q29sbGVjdG9yKClcblxuLy8gQXNzdW1lIHdlIGhhdmUgYSBtYXRjaCBudW1iZXIgKGUuZy4sIGZyb20gc29tZSBETFAgZGV0ZWN0aW9uIGxvZ2ljKVxuTlVNQkVSIG1hdGNoTnVtYmVyID0gMVxuXG4vLyBBZGQgdGhlIG1hdGNoIHRvIHRoZSBpbmNpZGVudCBjb2xsZWN0b3JcbkRMUC5BZGQoaW5jaWRlbnRDb2xsZWN0b3IsIG1hdGNoTnVtYmVyKVxuXG4vLyBPcHRpb25hbGx5LCB5b3UgY2FuIHBlcmZvcm0gZnVydGhlciBhY3Rpb25zIHdpdGggdGhlIGluY2lkZW50Q29sbGVjdG9yXG4vLyBGb3IgZXhhbXBsZSwgbG9nZ2luZyB0aGUgaW5jaWRlbnQgb3IgdGFraW5nIHNvbWUgYWN0aW9uIGJhc2VkIG9uIHRoZSBpbmNpZGVudFxuLy8gSW5jaWRlbnQgYWRkZWQgd2l0aCBtYXRjaCBudW1iZXI6IFxubWF0Y2hOdW1iZXIuVG9TdHJpbmcoKSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiLy8gSW5pdGlhbGl6ZSBhbiBJbmNpZGVudENvbGxlY3RvclxuRExQLkluY2lkZW50Q29sbGVjdG9yIGluY2lkZW50Q29sbGVjdG9yID0gRExQLkluY2lkZW50Q29sbGVjdG9yKClcblxuLy8gQXNzdW1lIHdlIGhhdmUgYSBtYXRjaCBudW1iZXIgKGUuZy4sIGZyb20gc29tZSBETFAgZGV0ZWN0aW9uIGxvZ2ljKVxuTlVNQkVSIG1hdGNoTnVtYmVyID0gMVxuXG4vLyBBZGQgdGhlIG1hdGNoIHRvIHRoZSBpbmNpZGVudCBjb2xsZWN0b3JcbkRMUC5BZGQoaW5jaWRlbnRDb2xsZWN0b3IsIG1hdGNoTnVtYmVyKVxuXG4vLyBPcHRpb25hbGx5LCB5b3UgY2FuIHBlcmZvcm0gZnVydGhlciBhY3Rpb25zIHdpdGggdGhlIGluY2lkZW50Q29sbGVjdG9yXG4vLyBGb3IgZXhhbXBsZSwgbG9nZ2luZyB0aGUgaW5jaWRlbnQgb3IgdGFraW5nIHNvbWUgYWN0aW9uIGJhc2VkIG9uIHRoZSBpbmNpZGVudFxuLy8gSW5jaWRlbnQgYWRkZWQgd2l0aCBtYXRjaCBudW1iZXI6IFxubWF0Y2hOdW1iZXIuVG9TdHJpbmcoKSJ9LCB7Im5hbWUiOiAiRExQLkFkZCAoRExQLkluY2lkZW50Q29sbGVjdG9yLCBOVU1CRVIsIFNUUklORykiLCAicGFyYW1ldGVyX2Rlc2MiOiAiMS4gYERMUC5JbmNpZGVudENvbGxlY3RvcmA6IENvbGxlY3RvciB0byBhZGQgdG8uXG4yLiBgTlVNQkVSYDogTWF0Y2ggdG8gYWRkLlxuMy4gYFNUUklOR2A6IEFjdGlvbiB0byBhZGQuIiwgImRlc2NyaXB0aW9uIjogIkFkZHMgbWF0Y2ggdG8gaW5jaWRlbnQgd2l0aCBjb25maWd1cmVkIGFjdGlvbi4iLCAiZXhhbXBsZV9jb2RlIjogIi8vIEluaXRpYWxpemUgdGhlIEluY2lkZW50Q29sbGVjdG9yXG5ETFAuSW5jaWRlbnRDb2xsZWN0b3IgaW5jaWRlbnRDb2xsZWN0b3JcblxuLy8gRGVmaW5lIHRoZSBtYXRjaCBudW1iZXIgYW5kIGFjdGlvblxuTlVNQkVSIG1hdGNoTnVtYmVyID0gMVxuU1RSSU5HIGFjdGlvbiA9IFwiQmxvY2tcIlxuXG4vLyBBZGQgdGhlIG1hdGNoIHRvIHRoZSBpbmNpZGVudCB3aXRoIHRoZSBjb25maWd1cmVkIGFjdGlvblxuRExQLkFkZChpbmNpZGVudENvbGxlY3RvciwgbWF0Y2hOdW1iZXIsIGFjdGlvbilcblxuLy8gTWF0Y2ggYWRkZWQgdG8gaW5jaWRlbnQgd2l0aCBhY3Rpb246IEJsb2NrIiwgInJldmlld2VkIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICIvLyBJbml0aWFsaXplIHRoZSBJbmNpZGVudENvbGxlY3RvclxuRExQLkluY2lkZW50Q29sbGVjdG9yIGluY2lkZW50Q29sbGVjdG9yXG5cbi8vIERlZmluZSB0aGUgbWF0Y2ggbnVtYmVyIGFuZCBhY3Rpb25cbk5VTUJFUiBtYXRjaE51bWJlciA9IDFcblNUUklORyBhY3Rpb24gPSBcIkJsb2NrXCJcblxuLy8gQWRkIHRoZSBtYXRjaCB0byB0aGUgaW5jaWRlbnQgd2l0aCB0aGUgY29uZmlndXJlZCBhY3Rpb25cbkRMUC5BZGQoaW5jaWRlbnRDb2xsZWN0b3IsIG1hdGNoTnVtYmVyLCBhY3Rpb24pXG5cbi8vIE1hdGNoIGFkZGVkIHRvIGluY2lkZW50IHdpdGggYWN0aW9uOiBCbG9jayJ9LCB7Im5hbWUiOiAiRExQLkNyZWF0ZUluY2lkZW50IChETFAuQ2xhc3NpZmllciwgRExQLkluY2lkZW50Q29sbGVjdG9yLCBTVFJJTkcpIiwgInBhcmFtZXRlcl9kZXNjIjogIjEuIGBETFAuQ2xhc3NpZmllcmA6IGNsYXNzaWZpZXIgb2JqZWN0IHRvIHVzZS5cbjIuIGBETFAuSW5jaWRlbnRDb2xsZWN0b3JgOiBjb2xsZWN0b3IgdG8gYWRkIHRvLlxuMy4gYFNUUklOR2A6IG5hbWUvbWVzc2FnZSBvZiBpbmNpZGVudC4iLCAiZGVzY3JpcHRpb24iOiAiQ3JlYXRlcyBhbiBpbmNpZGVudC4iLCAiZXhhbXBsZV9jb2RlIjogIi8vIEluaXRpYWxpemUgdGhlIERMUC5DbGFzc2lmaWVyIGFuZCBETFAuSW5jaWRlbnRDb2xsZWN0b3Igb2JqZWN0c1xuRExQLkNsYXNzaWZpZXIgY2xhc3NpZmllciA9IERMUC5DbGFzc2lmaWVyKClcbkRMUC5JbmNpZGVudENvbGxlY3RvciBpbmNpZGVudENvbGxlY3RvciA9IERMUC5JbmNpZGVudENvbGxlY3RvcigpXG5cbi8vIERlZmluZSBhIGRlc2NyaXB0aW9uIGZvciB0aGUgaW5jaWRlbnRcblNUUklORyBpbmNpZGVudERlc2NyaXB0aW9uID0gXCJTZW5zaXRpdmUgZGF0YSBkZXRlY3RlZCBpbiB0aGUgcmVxdWVzdC5cIlxuXG4vLyBDcmVhdGUgdGhlIERMUCBpbmNpZGVudFxuRExQLkNyZWF0ZUluY2lkZW50KGNsYXNzaWZpZXIsIGluY2lkZW50Q29sbGVjdG9yLCBpbmNpZGVudERlc2NyaXB0aW9uKVxuXG4vLyBPcHRpb25hbGx5LCBibG9jayB0aGUgcmVxdWVzdCBhZnRlciBjcmVhdGluZyB0aGUgaW5jaWRlbnRcbk1XRy5CbG9jayhcIkRMUCBwb2xpY3kgdmlvbGF0aW9uOiBcIiArIGluY2lkZW50RGVzY3JpcHRpb24pIiwgInJldmlld2VkIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICIvLyBJbml0aWFsaXplIHRoZSBETFAuQ2xhc3NpZmllciBhbmQgRExQLkluY2lkZW50Q29sbGVjdG9yIG9iamVjdHNcbkRMUC5DbGFzc2lmaWVyIGNsYXNzaWZpZXIgPSBETFAuQ2xhc3NpZmllcigpXG5ETFAuSW5jaWRlbnRDb2xsZWN0b3IgaW5jaWRlbnRDb2xsZWN0b3IgPSBETFAuSW5jaWRlbnRDb2xsZWN0b3IoKVxuXG4vLyBEZWZpbmUgYSBkZXNjcmlwdGlvbiBmb3IgdGhlIGluY2lkZW50XG5TVFJJTkcgaW5jaWRlbnREZXNjcmlwdGlvbiA9IFwiU2Vuc2l0aXZlIGRhdGEgZGV0ZWN0ZWQgaW4gdGhlIHJlcXVlc3QuXCJcblxuLy8gQ3JlYXRlIHRoZSBETFAgaW5jaWRlbnRcbkRMUC5DcmVhdGVJbmNpZGVudChjbGFzc2lmaWVyLCBpbmNpZGVudENvbGxlY3RvciwgaW5jaWRlbnREZXNjcmlwdGlvbilcblxuLy8gT3B0aW9uYWxseSwgYmxvY2sgdGhlIHJlcXVlc3QgYWZ0ZXIgY3JlYXRpbmcgdGhlIGluY2lkZW50XG5NV0cuQmxvY2soXCJETFAgcG9saWN5IHZpb2xhdGlvbjogXCIgKyBpbmNpZGVudERlc2NyaXB0aW9uKSJ9LCB7Im5hbWUiOiAiRExQLlNldEJvZHkgKERMUC5DbGFzc2lmaWVyLCBEQVRBUkVGKSIsICJwYXJhbWV0ZXJfZGVzYyI6ICIxLiBgRExQLkNsYXNzaWZpZXJgOiBDbGFzc2lmaWNhdGlvbiB0byBtb2RpZnkuXG4yLiBgREFUQVJFRmA6IERhdGEgdG8gY2hhbmdlIGJvZHkgdG8uIiwgImRlc2NyaXB0aW9uIjogIlNldHMgYm9keSBmb3IgRExQIGNsYXNzaWZpY2F0aW9ucy4iLCAiZXhhbXBsZV9jb2RlIjogIi8vIEluaXRpYWxpemUgdGhlIERMUCBjbGFzc2lmaWVyXG5ETFAuQ2xhc3NpZmllciBkbHBDbGFzc2lmaWVyID0gRExQLkNsYXNzaWZpZXIoKVxuXG4vLyBBc3N1bWUgd2UgaGF2ZSBhIGRhdGEgcmVmZXJlbmNlIHRvIHRoZSBib2R5IG9mIHRoZSByZXF1ZXN0XG5EQVRBUkVGIHJlcXVlc3RCb2R5ID0gV2ViLlJlcXVlc3QuQm9keVxuXG4vLyBTZXQgdGhlIGJvZHkgZm9yIHRoZSBETFAgY2xhc3NpZmllclxuRExQLlNldEJvZHkoZGxwQ2xhc3NpZmllciwgcmVxdWVzdEJvZHkpXG5cbi8vIFBlcmZvcm0gc29tZSBhY3Rpb24gYmFzZWQgb24gdGhlIERMUCBjbGFzc2lmaWNhdGlvblxuSUYgZGxwQ2xhc3NpZmllci5Db250YWluc1NlbnNpdGl2ZURhdGEoKSBUSEVOIHtcbiAgICAvLyBTZW5zaXRpdmUgZGF0YSBkZXRlY3RlZCBpbiB0aGUgcmVxdWVzdCBib2R5LlxuICAgIE1XRy5CbG9jayhcIlJlcXVlc3QgYmxvY2tlZCBkdWUgdG8gc2Vuc2l0aXZlIGRhdGFcIilcbn0gRUxTRSB7XG4gICAgLy8gTm8gc2Vuc2l0aXZlIGRhdGEgZGV0ZWN0ZWQgaW4gdGhlIHJlcXVlc3QgYm9keS5cbiAgICBNV0cuQWxsb3coXCJSZXF1ZXN0IGFsbG93ZWQgYnkgcG9saWN5XCIpXG59IiwgInJldmlld2VkIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICIvLyBJbml0aWFsaXplIHRoZSBETFAgY2xhc3NpZmllclxuRExQLkNsYXNzaWZpZXIgZGxwQ2xhc3NpZmllciA9IERMUC5DbGFzc2lmaWVyKClcblxuLy8gQXNzdW1lIHdlIGhhdmUgYSBkYXRhIHJlZmVyZW5jZSB0byB0aGUgYm9keSBvZiB0aGUgcmVxdWVzdFxuREFUQVJFRiByZXF1ZXN0Qm9keSA9IFdlYi5SZXF1ZXN0LkJvZHlcblxuLy8gU2V0IHRoZSBib2R5IGZvciB0aGUgRExQIGNsYXNzaWZpZXJcbkRMUC5TZXRCb2R5KGRscENsYXNzaWZpZXIsIHJlcXVlc3RCb2R5KVxuXG4vLyBQZXJmb3JtIHNvbWUgYWN0aW9uIGJhc2VkIG9uIHRoZSBETFAgY2xhc3NpZmljYXRpb25cbklGIGRscENsYXNzaWZpZXIuQ29udGFpbnNTZW5zaXRpdmVEYXRhKCkgVEhFTiB7XG4gICAgLy8gU2Vuc2l0aXZlIGRhdGEgZGV0ZWN0ZWQgaW4gdGhlIHJlcXVlc3QgYm9keS5cbiAgICBNV0cuQmxvY2soXCJSZXF1ZXN0IGJsb2NrZWQgZHVlIHRvIHNlbnNpdGl2ZSBkYXRhXCIpXG59IEVMU0Uge1xuICAgIC8vIE5vIHNlbnNpdGl2ZSBkYXRhIGRldGVjdGVkIGluIHRoZSByZXF1ZXN0IGJvZHkuXG4gICAgTVdHLkFsbG93KFwiUmVxdWVzdCBhbGxvd2VkIGJ5IHBvbGljeVwiKVxufSJ9LCB7Im5hbWUiOiAiRExQLlN0YXJ0UnVsZSAoRExQLkluY2lkZW50Q29sbGVjdG9yLCBTVFJJTkcpIiwgInBhcmFtZXRlcl9kZXNjIjogIjEuIGBETFAuSW5jaWRlbnRDb2xsZWN0b3JgOiBUaGUgY29sbGVjdG9yIHRvIGtlZXAgdHJhY2sgb2YgaW5jaWRlbnRzLlxuMi4gYFNUUklOR2A6IFRoZSBuYW1lIG9mIHRoZSBydWxlIGdyb3VwIHRvIHN0YXJ0LiIsICJkZXNjcmlwdGlvbiI6ICJTdGFydHMgYSBETFAgcnVsZS4iLCAiZXhhbXBsZV9jb2RlIjogIi8vIEluaXRpYWxpemUgdGhlIERMUCBJbmNpZGVudCBDb2xsZWN0b3JcbkRMUC5JbmNpZGVudENvbGxlY3RvciBpbmNpZGVudENvbGxlY3RvclxuXG4vLyBEZWZpbmUgdGhlIERMUCBydWxlIG5hbWVcblNUUklORyBkbHBSdWxlTmFtZSA9IFwiU2Vuc2l0aXZlIERhdGEgQ2hlY2tcIlxuXG4vLyBTdGFydCB0aGUgRExQIHJ1bGVcbkRMUC5TdGFydFJ1bGUoaW5jaWRlbnRDb2xsZWN0b3IsIGRscFJ1bGVOYW1lKVxuXG4vLyBDaGVjayBpZiBhbnkgaW5jaWRlbnRzIHdlcmUgY29sbGVjdGVkXG5JRiBpbmNpZGVudENvbGxlY3Rvci5IYXNJbmNpZGVudHMoKSBUSEVOIHtcbiAgICAvLyBCbG9jayB0aGUgcmVxdWVzdCBpZiBzZW5zaXRpdmUgZGF0YSBpcyBkZXRlY3RlZFxuICAgIE1XRy5CbG9jayhcIlNlbnNpdGl2ZSBkYXRhIGRldGVjdGVkXCIpXG59IEVMU0Uge1xuICAgIC8vIEFsbG93IHRoZSByZXF1ZXN0IGlmIG5vIHNlbnNpdGl2ZSBkYXRhIGlzIGRldGVjdGVkXG4gICAgTVdHLkFsbG93KFwiTm8gc2Vuc2l0aXZlIGRhdGEgZGV0ZWN0ZWRcIilcbn0iLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIi8vIEluaXRpYWxpemUgdGhlIERMUCBJbmNpZGVudCBDb2xsZWN0b3JcbkRMUC5JbmNpZGVudENvbGxlY3RvciBpbmNpZGVudENvbGxlY3RvclxuXG4vLyBEZWZpbmUgdGhlIERMUCBydWxlIG5hbWVcblNUUklORyBkbHBSdWxlTmFtZSA9IFwiU2Vuc2l0aXZlIERhdGEgQ2hlY2tcIlxuXG4vLyBTdGFydCB0aGUgRExQIHJ1bGVcbkRMUC5TdGFydFJ1bGUoaW5jaWRlbnRDb2xsZWN0b3IsIGRscFJ1bGVOYW1lKVxuXG4vLyBDaGVjayBpZiBhbnkgaW5jaWRlbnRzIHdlcmUgY29sbGVjdGVkXG5JRiBpbmNpZGVudENvbGxlY3Rvci5IYXNJbmNpZGVudHMoKSBUSEVOIHtcbiAgICAvLyBCbG9jayB0aGUgcmVxdWVzdCBpZiBzZW5zaXRpdmUgZGF0YSBpcyBkZXRlY3RlZFxuICAgIE1XRy5CbG9jayhcIlNlbnNpdGl2ZSBkYXRhIGRldGVjdGVkXCIpXG59IEVMU0Uge1xuICAgIC8vIEFsbG93IHRoZSByZXF1ZXN0IGlmIG5vIHNlbnNpdGl2ZSBkYXRhIGlzIGRldGVjdGVkXG4gICAgTVdHLkFsbG93KFwiTm8gc2Vuc2l0aXZlIGRhdGEgZGV0ZWN0ZWRcIilcbn0ifSwgeyJuYW1lIjogIk1lZGlhVHlwZS5GaXhDb250ZW50VHlwZSAoKSIsICJwYXJhbWV0ZXJfZGVzYyI6ICIqTi9BKiIsICJkZXNjcmlwdGlvbiI6ICJTZXRzIHRoZSBgQ29udGVudC1UeXBlYCBoZWFkZXIgdG8gTWltZSBUeXBlIHZhbHVlIGRldGVjdGVkIGJ5IHNpZ25hdHVyZS4iLCAiZXhhbXBsZV9jb2RlIjogIi8vIENhbGwgdGhlIE1lZGlhVHlwZS5GaXhDb250ZW50VHlwZSgpIHByb2NlZHVyZSB0byBzZXQgdGhlIENvbnRlbnQtVHlwZSBoZWFkZXJcbk1lZGlhVHlwZS5GaXhDb250ZW50VHlwZSgpXG5cbi8vIE9wdGlvbmFsbHksIHlvdSBjYW4gbG9nIHRoZSBhY3Rpb24gZm9yIGRlYnVnZ2luZyBwdXJwb3Nlc1xuLy8gQ29udGVudC1UeXBlIGhlYWRlciBoYXMgYmVlbiBmaXhlZCBiYXNlZCBvbiB0aGUgZGV0ZWN0ZWQgTUlNRSB0eXBlLiIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiLy8gQ2FsbCB0aGUgTWVkaWFUeXBlLkZpeENvbnRlbnRUeXBlKCkgcHJvY2VkdXJlIHRvIHNldCB0aGUgQ29udGVudC1UeXBlIGhlYWRlclxuTWVkaWFUeXBlLkZpeENvbnRlbnRUeXBlKClcblxuLy8gT3B0aW9uYWxseSwgeW91IGNhbiBsb2cgdGhlIGFjdGlvbiBmb3IgZGVidWdnaW5nIHB1cnBvc2VzXG4vLyBDb250ZW50LVR5cGUgaGVhZGVyIGhhcyBiZWVuIGZpeGVkIGJhc2VkIG9uIHRoZSBkZXRlY3RlZCBNSU1FIHR5cGUuIn0sIHsibmFtZSI6ICJNV0cuQWRkIChNV0cuSGVhZGVyTWFwLCBTVFJJTkcsIFNUUklORykiLCAicGFyYW1ldGVyX2Rlc2MiOiAiMS4gYE1XRy5IZWFkZXJNYXBgOiBUaGUgaGVhZGVybWFwIHRvIHVzZS5cbjIuIGBTVFJJTkdgOiBUaGUgZGVzaXJlZCBoZWFkZXIgdG8gYWRkIHRvLlxuMy4gYFNUUklOR2A6IFRoZSB2YWx1ZSB0byBhZGQuIiwgImRlc2NyaXB0aW9uIjogIkFkZHMgYW4gZW50cnkgdG8gYW4gSFRUUChTKSBoZWFkZXIuIiwgImV4YW1wbGVfY29kZSI6ICIvLyBDcmVhdGUgYSBuZXcgaGVhZGVyIG1hcFxuTVdHLkhlYWRlck1hcCBoZWFkZXJNYXAgPSBNV0cuSGVhZGVyTWFwKClcblxuLy8gRGVmaW5lIHRoZSBoZWFkZXIgbmFtZSBhbmQgdmFsdWVcblNUUklORyBoZWFkZXJOYW1lID0gXCJYLUN1c3RvbS1IZWFkZXJcIlxuU1RSSU5HIGhlYWRlclZhbHVlID0gXCJDdXN0b21WYWx1ZVwiXG5cbi8vIEFkZCB0aGUgY3VzdG9tIGhlYWRlciB0byB0aGUgaGVhZGVyIG1hcFxuTVdHLkFkZChoZWFkZXJNYXAsIGhlYWRlck5hbWUsIGhlYWRlclZhbHVlKVxuXG4vLyBBZGRlZCBoZWFkZXI6IFgtQ3VzdG9tLUhlYWRlciB3aXRoIHZhbHVlOiBDdXN0b21WYWx1ZSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiLy8gQ3JlYXRlIGEgbmV3IGhlYWRlciBtYXBcbk1XRy5IZWFkZXJNYXAgaGVhZGVyTWFwID0gTVdHLkhlYWRlck1hcCgpXG5cbi8vIERlZmluZSB0aGUgaGVhZGVyIG5hbWUgYW5kIHZhbHVlXG5TVFJJTkcgaGVhZGVyTmFtZSA9IFwiWC1DdXN0b20tSGVhZGVyXCJcblNUUklORyBoZWFkZXJWYWx1ZSA9IFwiQ3VzdG9tVmFsdWVcIlxuXG4vLyBBZGQgdGhlIGN1c3RvbSBoZWFkZXIgdG8gdGhlIGhlYWRlciBtYXBcbk1XRy5BZGQoaGVhZGVyTWFwLCBoZWFkZXJOYW1lLCBoZWFkZXJWYWx1ZSlcblxuLy8gQWRkZWQgaGVhZGVyOiBYLUN1c3RvbS1IZWFkZXIgd2l0aCB2YWx1ZTogQ3VzdG9tVmFsdWUifSwgeyJuYW1lIjogIk1XRy5BZGQgKE1XRy5IZWFkZXJNYXAsIFNUUklORywgVkVDVE9SPFNUUklORz4pIiwgInBhcmFtZXRlcl9kZXNjIjogIjEuIGBNV0cuSGVhZGVyTWFwYDogVGhlIGhlYWRlcm1hcCB0byB1c2UuXG4yLiBgU1RSSU5HYDogVGhlIGRlc2lyZWQgaGVhZGVyIHRvIGFkZCB0by5cbjMuIGBWRUNUT1I8U1RSSU5HPmA6IFRoZSB2YWx1ZSB0byBhZGQuIiwgImRlc2NyaXB0aW9uIjogIkFkZHMgbXVsdGlwbGUgZW50cmllcyB0byBhbiBIVFRQKFMpIGhlYWRlci4iLCAiZXhhbXBsZV9jb2RlIjogIi8vIENyZWF0ZSBhIGhlYWRlciBtYXAgb2JqZWN0XG5NV0cuSGVhZGVyTWFwIGhlYWRlck1hcCA9IE1XRy5IZWFkZXJNYXAoKVxuXG4vLyBEZWZpbmUgdGhlIGhlYWRlciBuYW1lIHRvIGFkZCB2YWx1ZXMgdG9cblNUUklORyBoZWFkZXJOYW1lID0gXCJYLUN1c3RvbS1IZWFkZXJcIlxuXG4vLyBEZWZpbmUgYSBWRUNUT1Igb2YgU1RSSU5HIHZhbHVlcyB0byBhZGQgdG8gdGhlIGhlYWRlclxuVkVDVE9SPFNUUklORz4gaGVhZGVyVmFsdWVzID0gXCJWYWx1ZTFcIiwgXCJWYWx1ZTJcIiwgXCJWYWx1ZTNcIlxuXG4vLyBBZGQgdGhlIHZhbHVlcyB0byB0aGUgc3BlY2lmaWVkIGhlYWRlciBpbiB0aGUgaGVhZGVyIG1hcFxuTVdHLkFkZChoZWFkZXJNYXAsIGhlYWRlck5hbWUsIGhlYWRlclZhbHVlcylcblxuLy8gSGVhZGVyIG1hcCBhZnRlciBhZGRpbmcgdmFsdWVzOiBcbi8vIGhlYWRlck1hcC5Ub1N0cmluZygpIiwgInJldmlld2VkIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICIvLyBDcmVhdGUgYSBoZWFkZXIgbWFwIG9iamVjdFxuTVdHLkhlYWRlck1hcCBoZWFkZXJNYXAgPSBNV0cuSGVhZGVyTWFwKClcblxuLy8gRGVmaW5lIHRoZSBoZWFkZXIgbmFtZSB0byBhZGQgdmFsdWVzIHRvXG5TVFJJTkcgaGVhZGVyTmFtZSA9IFwiWC1DdXN0b20tSGVhZGVyXCJcblxuLy8gRGVmaW5lIGEgVkVDVE9SIG9mIFNUUklORyB2YWx1ZXMgdG8gYWRkIHRvIHRoZSBoZWFkZXJcblZFQ1RPUjxTVFJJTkc+IGhlYWRlclZhbHVlcyA9IFwiVmFsdWUxXCIsIFwiVmFsdWUyXCIsIFwiVmFsdWUzXCJcblxuLy8gQWRkIHRoZSB2YWx1ZXMgdG8gdGhlIHNwZWNpZmllZCBoZWFkZXIgaW4gdGhlIGhlYWRlciBtYXBcbk1XRy5BZGQoaGVhZGVyTWFwLCBoZWFkZXJOYW1lLCBoZWFkZXJWYWx1ZXMpXG5cbi8vIEhlYWRlciBtYXAgYWZ0ZXIgYWRkaW5nIHZhbHVlczogXG4vLyBoZWFkZXJNYXAuVG9TdHJpbmcoKSJ9LCB7Im5hbWUiOiAiTVdHLkFsbG93IChTVFJJTkcpIiwgInBhcmFtZXRlcl9kZXNjIjogIjEuIGBTVFJJTkdgOiB0aGUgdmFsdWUgdG8gYmUgbG9nZ2VkIGFzIE1XRy5MYXN0UnVsZS4iLCAiZGVzY3JpcHRpb24iOiAiU3RvcHMgdGhlIGN1cnJlbnQgdHJpZ2dlciwgcHJldmVudHMgZnV0dXJlIHRyaWdnZXJzIGZvciB0aGlzIHJlcXVlc3QsIGFuZCBsb2dzIHRoZSBwYXJhbWV0ZXIgYXMgJ01XRy5MYXN0UnVsZScuIiwgImV4YW1wbGVfY29kZSI6ICIvLyBEZWZpbmUgdGhlIFVSTCB0aGF0IHdlIHdhbnQgdG8gYWxsb3dcblNUUklORyBhbGxvd2VkVVJMID0gXCJodHRwczovL3d3dy5leGFtcGxlLmNvbVwiXG5cbi8vIEdldCB0aGUgY3VycmVudCBVUkwgb2YgdGhlIHJlcXVlc3Rcbk1XRy5VUkwgY3VycmVudFVSTCA9IE1XRy5VcmwoKVxuXG4vLyBDaGVjayBpZiB0aGUgY3VycmVudCBVUkwgbWF0Y2hlcyB0aGUgYWxsb3dlZCBVUkxcbklGIGN1cnJlbnRVUkwuVG9TdHJpbmcoKSA9PSBhbGxvd2VkVVJMIFRIRU4ge1xuICAgIC8vIFRoZSBVUkwgaXMgYWxsb3dlZDogXCIgKyBhbGxvd2VkVVJMXG4gICAgTVdHLkFsbG93KFwiQWxsb3dlZCBVUkxcIilcbn0gRUxTRSB7XG4gICAgLy8gVGhlIFVSTCBpcyBub3QgYWxsb3dlZDogXCIgKyBjdXJyZW50VVJMLlRvU3RyaW5nKClcbiAgICBNV0cuQmxvY2soXCJCbG9ja2VkIFVSTFwiKVxufSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiLy8gRGVmaW5lIHRoZSBVUkwgdGhhdCB3ZSB3YW50IHRvIGFsbG93XG5TVFJJTkcgYWxsb3dlZFVSTCA9IFwiaHR0cHM6Ly93d3cuZXhhbXBsZS5jb21cIlxuXG4vLyBHZXQgdGhlIGN1cnJlbnQgVVJMIG9mIHRoZSByZXF1ZXN0XG5NV0cuVVJMIGN1cnJlbnRVUkwgPSBNV0cuVXJsKClcblxuLy8gQ2hlY2sgaWYgdGhlIGN1cnJlbnQgVVJMIG1hdGNoZXMgdGhlIGFsbG93ZWQgVVJMXG5JRiBjdXJyZW50VVJMLlRvU3RyaW5nKCkgPT0gYWxsb3dlZFVSTCBUSEVOIHtcbiAgICAvLyBUaGUgVVJMIGlzIGFsbG93ZWQ6IFwiICsgYWxsb3dlZFVSTFxuICAgIE1XRy5BbGxvdyhcIkFsbG93ZWQgVVJMXCIpXG59IEVMU0Uge1xuICAgIC8vIFRoZSBVUkwgaXMgbm90IGFsbG93ZWQ6IFwiICsgY3VycmVudFVSTC5Ub1N0cmluZygpXG4gICAgTVdHLkJsb2NrKFwiQmxvY2tlZCBVUkxcIilcbn0ifSwgeyJuYW1lIjogIk1XRy5BbnRpbWFsd2FyZUVuYWJsZVN0cmVhbVNjYW5uZXIgKE1XRy5BbnRpbWFsd2FyZVNldHRpbmcpIiwgInBhcmFtZXRlcl9kZXNjIjogIjEuIGBNV0cuQW50aW1hbHdhcmVTZXR0aW5nYDogQ29uZmlndXJhdGlvbiBzZXR0aW5ncyBvYmplY3QuIiwgImRlc2NyaXB0aW9uIjogIkVuYWJsZXMgYW50aS1tYWx3YXJlIHN0cmVhbSBzY2FubmluZy4iLCAiZXhhbXBsZV9jb2RlIjogIk1XRy5BbnRpbWFsd2FyZVNldHRpbmcgYW50aW1hbHdhcmVTZXR0aW5nID0gTVdHLkFudGltYWx3YXJlU2V0dGluZygpXG5cbi8vIEVuYWJsZSB0aGUgc3RyZWFtIHNjYW5uZXIgZm9yIHRoZSBhbnRpbWFsd2FyZSBzZXR0aW5nXG5NV0cuQW50aW1hbHdhcmVFbmFibGVTdHJlYW1TY2FubmVyKGFudGltYWx3YXJlU2V0dGluZylcblxuLy8gT3B0aW9uYWxseSwgeW91IGNhbiBhZGQgbW9yZSBsb2dpYyBoZXJlIHRvIGhhbmRsZSB0aGUgcmVxdWVzdFxuLy8gQW50aW1hbHdhcmUgc3RyZWFtIHNjYW5uZXIgZW5hYmxlZCIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiTVdHLkFudGltYWx3YXJlU2V0dGluZyBhbnRpbWFsd2FyZVNldHRpbmcgPSBNV0cuQW50aW1hbHdhcmVTZXR0aW5nKClcblxuLy8gRW5hYmxlIHRoZSBzdHJlYW0gc2Nhbm5lciBmb3IgdGhlIGFudGltYWx3YXJlIHNldHRpbmdcbk1XRy5BbnRpbWFsd2FyZUVuYWJsZVN0cmVhbVNjYW5uZXIoYW50aW1hbHdhcmVTZXR0aW5nKVxuXG4vLyBPcHRpb25hbGx5LCB5b3UgY2FuIGFkZCBtb3JlIGxvZ2ljIGhlcmUgdG8gaGFuZGxlIHRoZSByZXF1ZXN0XG4vLyBBbnRpbWFsd2FyZSBzdHJlYW0gc2Nhbm5lciBlbmFibGVkIn0sIHsibmFtZSI6ICJNV0cuQXV0aGVudGljYXRpb25BZGRNZXRob2QgKFNUUklORywgU1RSSU5HLCBCT09MRUFOKSIsICJwYXJhbWV0ZXJfZGVzYyI6ICIxLiBgU1RSSU5HYDogVGhlIG1ldGhvZCBuYW1lLlxuMi4gYFNUUklOR2A6IFRoZSB2YWx1ZS5cbjMuIGBCT09MRUFOYDogV2hldGhlciBvciBub3QgdG8gb3ZlcndyaXRlIGV4aXN0aW5nIG1ldGhvZC4iLCAiZGVzY3JpcHRpb24iOiAiQWRkcyBhbiBhdXRoZW50aWNhdGlvbiBtZXRob2QuIiwgImV4YW1wbGVfY29kZSI6ICJTVFJJTkcgbWV0aG9kTmFtZSA9IFwiQmFzaWNBdXRoXCJcblNUUklORyBtZXRob2RWYWx1ZSA9IFwidXNlcm5hbWU6cGFzc3dvcmRcIlxuQk9PTEVBTiBvdmVyd3JpdGVFeGlzdGluZyA9IFRSVUVcblxuTVdHLkF1dGhlbnRpY2F0aW9uQWRkTWV0aG9kKG1ldGhvZE5hbWUsIG1ldGhvZFZhbHVlLCBvdmVyd3JpdGVFeGlzdGluZylcblxuLy8gQXV0aGVudGljYXRpb24gbWV0aG9kIGFkZGVkOiBCYXNpY0F1dGgiLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIlNUUklORyBtZXRob2ROYW1lID0gXCJCYXNpY0F1dGhcIlxuU1RSSU5HIG1ldGhvZFZhbHVlID0gXCJ1c2VybmFtZTpwYXNzd29yZFwiXG5CT09MRUFOIG92ZXJ3cml0ZUV4aXN0aW5nID0gVFJVRVxuXG5NV0cuQXV0aGVudGljYXRpb25BZGRNZXRob2QobWV0aG9kTmFtZSwgbWV0aG9kVmFsdWUsIG92ZXJ3cml0ZUV4aXN0aW5nKVxuXG4vLyBBdXRoZW50aWNhdGlvbiBtZXRob2QgYWRkZWQ6IEJhc2ljQXV0aCJ9LCB7Im5hbWUiOiAiTVdHLkF1dGhlbnRpY2F0aW9uQ2xlYXJNZXRob2RMaXN0ICgpIiwgInBhcmFtZXRlcl9kZXNjIjogIipOL0EqIiwgImRlc2NyaXB0aW9uIjogIkNsZWFycyBhdXRoZW50aWNhdGlvbiBtZXRob2QgbGlzdC4iLCAiZXhhbXBsZV9jb2RlIjogIi8vIENsZWFyIHRoZSBsaXN0IG9mIGF1dGhlbnRpY2F0aW9uIG1ldGhvZHNcbk1XRy5BdXRoZW50aWNhdGlvbkNsZWFyTWV0aG9kTGlzdCgpXG5cbi8vIE9wdGlvbmFsbHksIHlvdSBjYW4gYWRkIG5ldyBhdXRoZW50aWNhdGlvbiBtZXRob2RzIGFmdGVyIGNsZWFyaW5nXG4vLyBGb3IgZXhhbXBsZSwgYWRkaW5nIGEgYmFzaWMgYXV0aGVudGljYXRpb24gbWV0aG9kXG4vLyBNV0cuQXV0aGVudGljYXRpb25BZGRNZXRob2QoXCJCYXNpY1wiKVxuXG4vLyBBdXRoZW50aWNhdGlvbiBtZXRob2RzIGhhdmUgYmVlbiBjbGVhcmVkIiwgInJldmlld2VkIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICIvLyBDbGVhciB0aGUgbGlzdCBvZiBhdXRoZW50aWNhdGlvbiBtZXRob2RzXG5NV0cuQXV0aGVudGljYXRpb25DbGVhck1ldGhvZExpc3QoKVxuXG4vLyBPcHRpb25hbGx5LCB5b3UgY2FuIGFkZCBuZXcgYXV0aGVudGljYXRpb24gbWV0aG9kcyBhZnRlciBjbGVhcmluZ1xuLy8gRm9yIGV4YW1wbGUsIGFkZGluZyBhIGJhc2ljIGF1dGhlbnRpY2F0aW9uIG1ldGhvZFxuLy8gTVdHLkF1dGhlbnRpY2F0aW9uQWRkTWV0aG9kKFwiQmFzaWNcIilcblxuLy8gQXV0aGVudGljYXRpb24gbWV0aG9kcyBoYXZlIGJlZW4gY2xlYXJlZCJ9LCB7Im5hbWUiOiAiTVdHLkF1dGhlbnRpY2F0aW9uQ2xlYXJOVExNQ2FjaGUgKCkiLCAicGFyYW1ldGVyX2Rlc2MiOiAiKk4vQSoiLCAiZGVzY3JpcHRpb24iOiAiQ2xlYXJzIE5UTE0gY2FjaGUuIiwgImV4YW1wbGVfY29kZSI6ICIvLyBDbGVhciB0aGUgTlRMTSBhdXRoZW50aWNhdGlvbiBjYWNoZVxuTVdHLkF1dGhlbnRpY2F0aW9uQ2xlYXJOVExNQ2FjaGUoKVxuXG4vLyBOVExNIGF1dGhlbnRpY2F0aW9uIGNhY2hlIGhhcyBiZWVuIGNsZWFyZWQuIiwgInJldmlld2VkIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICIvLyBDbGVhciB0aGUgTlRMTSBhdXRoZW50aWNhdGlvbiBjYWNoZVxuTVdHLkF1dGhlbnRpY2F0aW9uQ2xlYXJOVExNQ2FjaGUoKVxuXG4vLyBOVExNIGF1dGhlbnRpY2F0aW9uIGNhY2hlIGhhcyBiZWVuIGNsZWFyZWQuIn0sIHsibmFtZSI6ICJNV0cuQXV0aGVudGljYXRpb25TZXRNZXRob2QgKFNUUklORykiLCAicGFyYW1ldGVyX2Rlc2MiOiAiMS4gYFNUUklOR2A6IFRoZSBuYW1lIG9mIHRoZSBtZXRob2QuIiwgImRlc2NyaXB0aW9uIjogIkFkZHMgYXV0aGVudGljYXRpb24gbWV0aG9kLiIsICJleGFtcGxlX2NvZGUiOiAiU1RSSU5HIG1ldGhvZE5hbWUgPSBcIkJhc2ljQXV0aFwiXG5TVFJJTkcgbWV0aG9kVmFsdWUgPSBcInVzZXJuYW1lOnBhc3N3b3JkXCJcbkJPT0xFQU4gb3ZlcndyaXRlID0gVFJVRVxuXG5NV0cuQXV0aGVudGljYXRpb25BZGRNZXRob2QobWV0aG9kTmFtZSwgbWV0aG9kVmFsdWUsIG92ZXJ3cml0ZSlcblxuLy8gXCJBdXRoZW50aWNhdGlvbiBtZXRob2Qgc2V0OiBcIiArIG1ldGhvZE5hbWUiLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIlNUUklORyBtZXRob2ROYW1lID0gXCJCYXNpY0F1dGhcIlxuU1RSSU5HIG1ldGhvZFZhbHVlID0gXCJ1c2VybmFtZTpwYXNzd29yZFwiXG5CT09MRUFOIG92ZXJ3cml0ZSA9IFRSVUVcblxuTVdHLkF1dGhlbnRpY2F0aW9uQWRkTWV0aG9kKG1ldGhvZE5hbWUsIG1ldGhvZFZhbHVlLCBvdmVyd3JpdGUpXG5cbi8vIFwiQXV0aGVudGljYXRpb24gbWV0aG9kIHNldDogXCIgKyBtZXRob2ROYW1lIn0sIHsibmFtZSI6ICJNV0cuQXV0aGVudGljYXRpb25TZXRSZWFsbSAoU1RSSU5HKSIsICJwYXJhbWV0ZXJfZGVzYyI6ICIxLiBgU1RSSU5HYDogdGhlIG5hbWUgb2YgdGhlIHJlYWxtLiIsICJkZXNjcmlwdGlvbiI6ICJTZXRzIGF1dGhlbnRpY2F0aW9uIHJlYWxtLiIsICJleGFtcGxlX2NvZGUiOiAiU1RSSU5HIHVzZXJHcm91cCA9IE1XRy5HZXRVc2VyR3JvdXAoKVxuXG5JRiB1c2VyR3JvdXAgPT0gXCJBZG1pblwiIFRIRU4ge1xuICAgIE1XRy5BdXRoZW50aWNhdGlvblNldFJlYWxtKFwiQWRtaW5SZWFsbVwiKVxufSBFTFNFIElGIHVzZXJHcm91cCA9PSBcIlVzZXJcIiBUSEVOIHtcbiAgICBNV0cuQXV0aGVudGljYXRpb25TZXRSZWFsbShcIlVzZXJSZWFsbVwiKVxufSBFTFNFIHtcbiAgICBNV0cuQXV0aGVudGljYXRpb25TZXRSZWFsbShcIkRlZmF1bHRSZWFsbVwiKVxufVxuXG4vLyBcIkF1dGhlbnRpY2F0aW9uIHJlYWxtIHNldCBiYXNlZCBvbiB1c2VyIGdyb3VwOiBcIiArIHVzZXJHcm91cCIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiU1RSSU5HIHVzZXJHcm91cCA9IE1XRy5HZXRVc2VyR3JvdXAoKVxuXG5JRiB1c2VyR3JvdXAgPT0gXCJBZG1pblwiIFRIRU4ge1xuICAgIE1XRy5BdXRoZW50aWNhdGlvblNldFJlYWxtKFwiQWRtaW5SZWFsbVwiKVxufSBFTFNFIElGIHVzZXJHcm91cCA9PSBcIlVzZXJcIiBUSEVOIHtcbiAgICBNV0cuQXV0aGVudGljYXRpb25TZXRSZWFsbShcIlVzZXJSZWFsbVwiKVxufSBFTFNFIHtcbiAgICBNV0cuQXV0aGVudGljYXRpb25TZXRSZWFsbShcIkRlZmF1bHRSZWFsbVwiKVxufVxuXG4vLyBcIkF1dGhlbnRpY2F0aW9uIHJlYWxtIHNldCBiYXNlZCBvbiB1c2VyIGdyb3VwOiBcIiArIHVzZXJHcm91cCJ9LCB7Im5hbWUiOiAiTVdHLkJsb2NrIChNV0cuQmxvY2tTZXR0aW5nLCBTVFJJTkcsIFNUUklORykiLCAicGFyYW1ldGVyX2Rlc2MiOiAiMS4gYE1XRy5CbG9ja1NldHRpbmdgOiBDb25maWd1cmF0aW9uIHNldHRpbmdzLlxuMi4gYFNUUklOR2A6IFRoZSBydWxlIHRvIHVzZS5cbjMuIGBTVFJJTkdgOiBUaGUgcnVsZSBzZXQgdG8gZmluZCB0aGUgcnVsZSBpbi4iLCAiZGVzY3JpcHRpb24iOiAiQmxvY2tzIHRyYW5zYWN0aW9uLiIsICJleGFtcGxlX2NvZGUiOiAiTVdHLkJsb2NrU2V0dGluZyBibG9ja1NldHRpbmcgPSBbXCJkZWZhdWx0X2Jsb2NrX3NldHRpbmdcIl1cblNUUklORyBibG9ja1JlYXNvbiA9IFwiQWNjZXNzIERlbmllZFwiXG5TVFJJTkcgdXNlck1lc3NhZ2UgPSBcIllvdXIgYWNjZXNzIHRvIHRoaXMgc2l0ZSBoYXMgYmVlbiBibG9ja2VkIGR1ZSB0byBwb2xpY3kgcmVzdHJpY3Rpb25zLlwiXG5cbk1XRy5CbG9jayhibG9ja1NldHRpbmcsIGJsb2NrUmVhc29uLCB1c2VyTWVzc2FnZSkiLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIk1XRy5CbG9ja1NldHRpbmcgYmxvY2tTZXR0aW5nID0gW1wiZGVmYXVsdF9ibG9ja19zZXR0aW5nXCJdXG5TVFJJTkcgYmxvY2tSZWFzb24gPSBcIkFjY2VzcyBEZW5pZWRcIlxuU1RSSU5HIHVzZXJNZXNzYWdlID0gXCJZb3VyIGFjY2VzcyB0byB0aGlzIHNpdGUgaGFzIGJlZW4gYmxvY2tlZCBkdWUgdG8gcG9saWN5IHJlc3RyaWN0aW9ucy5cIlxuXG5NV0cuQmxvY2soYmxvY2tTZXR0aW5nLCBibG9ja1JlYXNvbiwgdXNlck1lc3NhZ2UpIn0sIHsibmFtZSI6ICJNV0cuQmxvY2sgKFNUUklORykiLCAicGFyYW1ldGVyX2Rlc2MiOiAiMS4gYFNUUklOR2A6IFRoZSByZWFzb24geW91IHdhbnQgdG8gcHJvdmlkZS4iLCAiZGVzY3JpcHRpb24iOiAiQmxvY2tzIHRyYW5zYWN0aW9uLiIsICJleGFtcGxlX2NvZGUiOiAiVkVDVE9SPFNUUklORz4gYmxvY2tlZFVybHMgPSBcImV4YW1wbGUuY29tXCIsIFwidGVzdHNpdGUuY29tXCIsIFwiYmxvY2tlZHNpdGUub3JnXCJcblNUUklORyBjdXJyZW50VXJsID0gTVdHLlVybCgpLkhvc3RcblxuSUYgQ29udGFpbnNDYXNlSW5zZW5zaXRpdmUoYmxvY2tlZFVybHMsIGN1cnJlbnRVcmwpIFRIRU4ge1xuICAgIE1XRy5CbG9jayhcIkFjY2VzcyB0byB0aGlzIHNpdGUgaXMgYmxvY2tlZCBkdWUgdG8gY29tcGFueSBwb2xpY3kuXCIpXG59IEVMU0Uge1xuICAgIE1XRy5BbGxvdyhcIlVSTCBpcyBub3QgYmxvY2tlZC5cIilcbn0iLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIlZFQ1RPUjxTVFJJTkc+IGJsb2NrZWRVcmxzID0gXCJleGFtcGxlLmNvbVwiLCBcInRlc3RzaXRlLmNvbVwiLCBcImJsb2NrZWRzaXRlLm9yZ1wiXG5TVFJJTkcgY3VycmVudFVybCA9IE1XRy5VcmwoKS5Ib3N0XG5cbklGIENvbnRhaW5zQ2FzZUluc2Vuc2l0aXZlKGJsb2NrZWRVcmxzLCBjdXJyZW50VXJsKSBUSEVOIHtcbiAgICBNV0cuQmxvY2soXCJBY2Nlc3MgdG8gdGhpcyBzaXRlIGlzIGJsb2NrZWQgZHVlIHRvIGNvbXBhbnkgcG9saWN5LlwiKVxufSBFTFNFIHtcbiAgICBNV0cuQWxsb3coXCJVUkwgaXMgbm90IGJsb2NrZWQuXCIpXG59In0sIHsibmFtZSI6ICJNV0cuQm9keUluc2VydCAoTlVNQkVSLCBTVFJJTkcpIiwgInBhcmFtZXRlcl9kZXNjIjogIjEuIGBOVU1CRVJgOiBUaGUgcG9zaXRpb24gdG8gaW5zZXJ0IGF0LlxuMi4gYFNUUklOR2A6IFRoZSB2YWx1ZSB0byBpbnNlcnQuIiwgImRlc2NyaXB0aW9uIjogIkluc2VydHMgZ2l2ZW4gcGF0dGVybiBhdCBnaXZlbiBwb3NpdGlvbiBpbnRvIGJvZHkuIiwgImV4YW1wbGVfY29kZSI6ICIvLyBEZWZpbmUgdGhlIHBvc2l0aW9uIHdoZXJlIHRoZSBzdHJpbmcgc2hvdWxkIGJlIGluc2VydGVkXG5OVU1CRVIgaW5zZXJ0UG9zaXRpb24gPSAxMDBcblxuLy8gRGVmaW5lIHRoZSBzdHJpbmcgdG8gYmUgaW5zZXJ0ZWRcblNUUklORyBpbnNlcnRTdHJpbmcgPSBcIjwhLS0gSW5zZXJ0ZWQgYnkgTU9XR0xJIC0tPlwiXG5cbi8vIEluc2VydCB0aGUgc3RyaW5nIGF0IHRoZSBzcGVjaWZpZWQgcG9zaXRpb24gaW4gdGhlIGJvZHlcbk1XRy5Cb2R5SW5zZXJ0KGluc2VydFBvc2l0aW9uLCBpbnNlcnRTdHJpbmcpXG5cbi8vIEluc2VydGVkIHN0cmluZyBpbnRvIGJvZHkgYXQgcG9zaXRpb24gXCIgKyBpbnNlcnRQb3NpdGlvbiIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiLy8gRGVmaW5lIHRoZSBwb3NpdGlvbiB3aGVyZSB0aGUgc3RyaW5nIHNob3VsZCBiZSBpbnNlcnRlZFxuTlVNQkVSIGluc2VydFBvc2l0aW9uID0gMTAwXG5cbi8vIERlZmluZSB0aGUgc3RyaW5nIHRvIGJlIGluc2VydGVkXG5TVFJJTkcgaW5zZXJ0U3RyaW5nID0gXCI8IS0tIEluc2VydGVkIGJ5IE1PV0dMSSAtLT5cIlxuXG4vLyBJbnNlcnQgdGhlIHN0cmluZyBhdCB0aGUgc3BlY2lmaWVkIHBvc2l0aW9uIGluIHRoZSBib2R5XG5NV0cuQm9keUluc2VydChpbnNlcnRQb3NpdGlvbiwgaW5zZXJ0U3RyaW5nKVxuXG4vLyBJbnNlcnRlZCBzdHJpbmcgaW50byBib2R5IGF0IHBvc2l0aW9uIFwiICsgaW5zZXJ0UG9zaXRpb24ifSwgeyJuYW1lIjogIk1XRy5Cb2R5UmVtb3ZlIChOVU1CRVIsIE5VTUJFUikiLCAicGFyYW1ldGVyX2Rlc2MiOiAiMS4gYE5VTUJFUmA6IFRoZSBzdGFydGluZyBwb3NpdGlvbi5cbjIuIGBOVU1CRVJgOiBUaGUgYW1vdW50IG9mIGJ5dGVzIHRvIHJlbW92ZS4iLCAiZGVzY3JpcHRpb24iOiAiUmVtb3ZlcyBnaXZlbiBudW1iZXIgb2YgYnl0ZXMgYXQgZ2l2ZW4gcG9zaXRpb24gZnJvbSBib2R5LiIsICJleGFtcGxlX2NvZGUiOiAiLy8gRGVmaW5lIHRoZSBzdGFydGluZyBwb3NpdGlvbiBhbmQgdGhlIG51bWJlciBvZiBieXRlcyB0byByZW1vdmVcbk5VTUJFUiBzdGFydFBvc2l0aW9uID0gMTBcbk5VTUJFUiBieXRlc1RvUmVtb3ZlID0gNVxuXG4vLyBSZW1vdmUgdGhlIHNwZWNpZmllZCBudW1iZXIgb2YgYnl0ZXMgZnJvbSB0aGUgYm9keSBzdGFydGluZyBhdCB0aGUgZ2l2ZW4gcG9zaXRpb25cbk1XRy5Cb2R5UmVtb3ZlKHN0YXJ0UG9zaXRpb24sIGJ5dGVzVG9SZW1vdmUpXG5cbi8vIFJlbW92ZWQgYnl0ZXNUb1JlbW92ZSBieXRlcyBmcm9tIHRoZSBib2R5IHN0YXJ0aW5nIGF0IHBvc2l0aW9uIHN0YXJ0UG9zaXRpb24uIiwgInJldmlld2VkIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICIvLyBEZWZpbmUgdGhlIHN0YXJ0aW5nIHBvc2l0aW9uIGFuZCB0aGUgbnVtYmVyIG9mIGJ5dGVzIHRvIHJlbW92ZVxuTlVNQkVSIHN0YXJ0UG9zaXRpb24gPSAxMFxuTlVNQkVSIGJ5dGVzVG9SZW1vdmUgPSA1XG5cbi8vIFJlbW92ZSB0aGUgc3BlY2lmaWVkIG51bWJlciBvZiBieXRlcyBmcm9tIHRoZSBib2R5IHN0YXJ0aW5nIGF0IHRoZSBnaXZlbiBwb3NpdGlvblxuTVdHLkJvZHlSZW1vdmUoc3RhcnRQb3NpdGlvbiwgYnl0ZXNUb1JlbW92ZSlcblxuLy8gUmVtb3ZlZCBieXRlc1RvUmVtb3ZlIGJ5dGVzIGZyb20gdGhlIGJvZHkgc3RhcnRpbmcgYXQgcG9zaXRpb24gc3RhcnRQb3NpdGlvbi4ifSwgeyJuYW1lIjogIk1XRy5Cb2R5UmVwbGFjZSAoTlVNQkVSLCBOVU1CRVIsIFNUUklORykiLCAicGFyYW1ldGVyX2Rlc2MiOiAiMS4gYE5VTUJFUmA6IFRoZSBzdGFydGluZyBwb3NpdGlvbi5cbjIuIGBOVU1CRVJgOiBUaGUgYW1vdW50IG9mIGJ5dGVzIHRvIHJlbW92ZS5cbjMuIGBTVFJJTkdgOiBUaGUgdmFsdWUgdG8gcmVwbGFjZSBpdCB3aXRoLiIsICJkZXNjcmlwdGlvbiI6ICJSZXBsYWNlcyBib2R5IGF0IGEgZ2l2ZW4gcG9zaXRpb24gYW5kIGxlbmd0aCB3aXRoIGEgZ2l2ZW4gcGF0dGVybi4iLCAiZXhhbXBsZV9jb2RlIjogIk5VTUJFUiBzdGFydFBvc2l0aW9uID0gMTAwXG5OVU1CRVIgbGVuZ3RoVG9SZW1vdmUgPSA1MFxuU1RSSU5HIHJlcGxhY2VtZW50VGV4dCA9IFwiVGhpcyBpcyB0aGUgbmV3IGNvbnRlbnQuXCJcblxuLy8gT3JpZ2luYWwgYm9keSBjb250ZW50IHdpbGwgYmUgcmVwbGFjZWQuXG5NV0cuQm9keVJlcGxhY2Uoc3RhcnRQb3NpdGlvbiwgbGVuZ3RoVG9SZW1vdmUsIHJlcGxhY2VtZW50VGV4dClcbi8vIEJvZHkgY29udGVudCByZXBsYWNlZCBzdWNjZXNzZnVsbHkuIiwgInJldmlld2VkIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICJOVU1CRVIgc3RhcnRQb3NpdGlvbiA9IDEwMFxuTlVNQkVSIGxlbmd0aFRvUmVtb3ZlID0gNTBcblNUUklORyByZXBsYWNlbWVudFRleHQgPSBcIlRoaXMgaXMgdGhlIG5ldyBjb250ZW50LlwiXG5cbi8vIE9yaWdpbmFsIGJvZHkgY29udGVudCB3aWxsIGJlIHJlcGxhY2VkLlxuTVdHLkJvZHlSZXBsYWNlKHN0YXJ0UG9zaXRpb24sIGxlbmd0aFRvUmVtb3ZlLCByZXBsYWNlbWVudFRleHQpXG4vLyBCb2R5IGNvbnRlbnQgcmVwbGFjZWQgc3VjY2Vzc2Z1bGx5LiJ9LCB7Im5hbWUiOiAiTVdHLkNvbm5lY3Rpb25WYXJpYWJsZXNBZGQgKFNUUklORywgU1RSSU5HKSIsICJwYXJhbWV0ZXJfZGVzYyI6ICIxLiBgU1RSSU5HYDogdGhlIGtleVxuMi4gYFNUUklOR2A6IHRoZSB2YWx1ZSIsICJkZXNjcmlwdGlvbiI6ICJBZGRzIHZhcmlhYmxlIChjb25uZWN0aW9uIHNjb3BlKS4iLCAiZXhhbXBsZV9jb2RlIjogIi8vIERlZmluZSBzb21lIGtleS12YWx1ZSBwYWlycyB0byBhZGQgYXMgY29ubmVjdGlvbiB2YXJpYWJsZXNcblNUUklORyBrZXkxID0gXCJVc2VyXCJcblNUUklORyB2YWx1ZTEgPSBcIkpvaG5Eb2VcIlxuXG5TVFJJTkcga2V5MiA9IFwiU2Vzc2lvbklEXCJcblNUUklORyB2YWx1ZTIgPSBcIjEyMzQ1Njc4OVwiXG5cbi8vIEFkZCB0aGUga2V5LXZhbHVlIHBhaXJzIGFzIGNvbm5lY3Rpb24gdmFyaWFibGVzXG5NV0cuQ29ubmVjdGlvblZhcmlhYmxlc0FkZChrZXkxLCB2YWx1ZTEpXG5NV0cuQ29ubmVjdGlvblZhcmlhYmxlc0FkZChrZXkyLCB2YWx1ZTIpXG5cbi8vIENvbm5lY3Rpb24gdmFyaWFibGVzIGFkZGVkOiBVc2VyPUpvaG5Eb2UsIFNlc3Npb25JRD0xMjM0NTY3ODkiLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIi8vIERlZmluZSBzb21lIGtleS12YWx1ZSBwYWlycyB0byBhZGQgYXMgY29ubmVjdGlvbiB2YXJpYWJsZXNcblNUUklORyBrZXkxID0gXCJVc2VyXCJcblNUUklORyB2YWx1ZTEgPSBcIkpvaG5Eb2VcIlxuXG5TVFJJTkcga2V5MiA9IFwiU2Vzc2lvbklEXCJcblNUUklORyB2YWx1ZTIgPSBcIjEyMzQ1Njc4OVwiXG5cbi8vIEFkZCB0aGUga2V5LXZhbHVlIHBhaXJzIGFzIGNvbm5lY3Rpb24gdmFyaWFibGVzXG5NV0cuQ29ubmVjdGlvblZhcmlhYmxlc0FkZChrZXkxLCB2YWx1ZTEpXG5NV0cuQ29ubmVjdGlvblZhcmlhYmxlc0FkZChrZXkyLCB2YWx1ZTIpXG5cbi8vIENvbm5lY3Rpb24gdmFyaWFibGVzIGFkZGVkOiBVc2VyPUpvaG5Eb2UsIFNlc3Npb25JRD0xMjM0NTY3ODkifSwgeyJuYW1lIjogIk1XRy5Db25uZWN0aW9uVmFyaWFibGVzUmVtb3ZlIChTVFJJTkcpIiwgInBhcmFtZXRlcl9kZXNjIjogIjEuIGBTVFJJTkdgOiBUaGUga2V5IHRvIHJlbW92ZS4iLCAiZGVzY3JpcHRpb24iOiAiUmVtb3ZlcyB2YXJpYWJsZSAoY29ubmVjdGlvbiBzY29wZSkuIiwgImV4YW1wbGVfY29kZSI6ICIvLyBEZWZpbmUgdGhlIGtleSBvZiB0aGUgY29ubmVjdGlvbiB2YXJpYWJsZSB5b3Ugd2FudCB0byByZW1vdmVcblNUUklORyB2YXJpYWJsZUtleSA9IFwiZXhhbXBsZUtleVwiXG5cbi8vIFJlbW92ZSB0aGUgY29ubmVjdGlvbiB2YXJpYWJsZVxuTVdHLkNvbm5lY3Rpb25WYXJpYWJsZXNSZW1vdmUodmFyaWFibGVLZXkpXG5cbi8vIENvbm5lY3Rpb24gdmFyaWFibGUgd2l0aCBrZXkgJ2V4YW1wbGVLZXknIGhhcyBiZWVuIHJlbW92ZWQuIiwgInJldmlld2VkIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICIvLyBEZWZpbmUgdGhlIGtleSBvZiB0aGUgY29ubmVjdGlvbiB2YXJpYWJsZSB5b3Ugd2FudCB0byByZW1vdmVcblNUUklORyB2YXJpYWJsZUtleSA9IFwiZXhhbXBsZUtleVwiXG5cbi8vIFJlbW92ZSB0aGUgY29ubmVjdGlvbiB2YXJpYWJsZVxuTVdHLkNvbm5lY3Rpb25WYXJpYWJsZXNSZW1vdmUodmFyaWFibGVLZXkpXG5cbi8vIENvbm5lY3Rpb24gdmFyaWFibGUgd2l0aCBrZXkgJ2V4YW1wbGVLZXknIGhhcyBiZWVuIHJlbW92ZWQuIn0sIHsibmFtZSI6ICJNV0cuRW5hYmxlIChNV0cuSW50ZXJuYWxTZXR0aW5nLCBTVFJJTkcpIiwgInBhcmFtZXRlcl9kZXNjIjogIjEuIGBNV0cuSW50ZXJuYWxTZXR0aW5nYDogU3BlY2lmaWVkIGNvbmZpZ3VyYXRpb24gc2V0dGluZ3MuXG4yLiBgU1RSSU5HYDogVGhlIG5hbWUgb2YgdGhlIGZpbHRlciB0byBlbmFibGUuIiwgImRlc2NyaXB0aW9uIjogIkVuYWJsZXMgYSBzcGVjaWZpZWQgZmlsdGVyIHdpdGggc3BlY2lmaWVkIGNvbmZpZ3VyYXRpb24gc2V0dGluZ3MuIiwgImV4YW1wbGVfY29kZSI6ICIvLyBEZWZpbmUgdGhlIGludGVybmFsIHNldHRpbmdcbk1XRy5JbnRlcm5hbFNldHRpbmcgbXlTZXR0aW5nID0gTVdHLkludGVybmFsU2V0dGluZygpXG5cbi8vIFNwZWNpZnkgdGhlIG5hbWUgb2YgdGhlIGZpbHRlciB0byBlbmFibGVcblNUUklORyBmaWx0ZXJOYW1lID0gXCJNeUN1c3RvbUZpbHRlclwiXG5cbi8vIEVuYWJsZSB0aGUgZmlsdGVyIHdpdGggdGhlIHNwZWNpZmllZCBzZXR0aW5nc1xuTVdHLkVuYWJsZShteVNldHRpbmcsIGZpbHRlck5hbWUpXG5cbi8vIE9wdGlvbmFsbHksIHByaW50IGEgZGVidWcgbWVzc2FnZSB0byBjb25maXJtIHRoZSBmaWx0ZXIgaGFzIGJlZW4gZW5hYmxlZFxuLy8gXCJGaWx0ZXIgXCIgKyBmaWx0ZXJOYW1lICsgXCIgaGFzIGJlZW4gZW5hYmxlZCB3aXRoIHRoZSBzcGVjaWZpZWQgc2V0dGluZ3MuXCIiLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIi8vIERlZmluZSB0aGUgaW50ZXJuYWwgc2V0dGluZ1xuTVdHLkludGVybmFsU2V0dGluZyBteVNldHRpbmcgPSBNV0cuSW50ZXJuYWxTZXR0aW5nKClcblxuLy8gU3BlY2lmeSB0aGUgbmFtZSBvZiB0aGUgZmlsdGVyIHRvIGVuYWJsZVxuU1RSSU5HIGZpbHRlck5hbWUgPSBcIk15Q3VzdG9tRmlsdGVyXCJcblxuLy8gRW5hYmxlIHRoZSBmaWx0ZXIgd2l0aCB0aGUgc3BlY2lmaWVkIHNldHRpbmdzXG5NV0cuRW5hYmxlKG15U2V0dGluZywgZmlsdGVyTmFtZSlcblxuLy8gT3B0aW9uYWxseSwgcHJpbnQgYSBkZWJ1ZyBtZXNzYWdlIHRvIGNvbmZpcm0gdGhlIGZpbHRlciBoYXMgYmVlbiBlbmFibGVkXG4vLyBcIkZpbHRlciBcIiArIGZpbHRlck5hbWUgKyBcIiBoYXMgYmVlbiBlbmFibGVkIHdpdGggdGhlIHNwZWNpZmllZCBzZXR0aW5ncy5cIiJ9LCB7Im5hbWUiOiAiTVdHLkVuYWJsZSAoU1RSSU5HKSIsICJwYXJhbWV0ZXJfZGVzYyI6ICIxLiBgU1RSSU5HYDogdGhlIG5hbWUgb2YgdGhlIGZpbHRlciB0byBlbmFibGUuIiwgImRlc2NyaXB0aW9uIjogIkVuYWJsZXMgYSBzcGVjaWZpZWQgZmlsdGVyIHdpdGggdGhlIGN1cnJlbnQgY29uZmlndXJhdGlvbiBzZXR0aW5ncy4iLCAiZXhhbXBsZV9jb2RlIjogIlNUUklORyBmaWx0ZXJOYW1lID0gXCJDb250ZW50SW5zcGVjdGlvblwiXG5NV0cuRW5hYmxlKGZpbHRlck5hbWUpXG4vLyBGaWx0ZXIgZW5hYmxlZDogQ29udGVudEluc3BlY3Rpb24iLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIlNUUklORyBmaWx0ZXJOYW1lID0gXCJDb250ZW50SW5zcGVjdGlvblwiXG5NV0cuRW5hYmxlKGZpbHRlck5hbWUpXG4vLyBGaWx0ZXIgZW5hYmxlZDogQ29udGVudEluc3BlY3Rpb24ifSwgeyJuYW1lIjogIk1XRy5FbmFibGVDZXJ0aWZpY2F0ZVZlcmlmaWNhdGlvbiAoTVdHLkVuYWJsZUNlcnRpZmljYXRlVmVyaWZpY2F0aW9uU2V0dGluZykiLCAicGFyYW1ldGVyX2Rlc2MiOiAiMS4gYE1XRy5FbmFibGVDZXJ0aWZpY2F0ZVZlcmlmaWNhdGlvblNldHRpbmdgOiBDb25maWd1cmF0aW9uIHNldHRpbmdzIG9iamVjdC4iLCAiZGVzY3JpcHRpb24iOiAiRW5hYmxlcyB2ZXJpZmljYXRpb24gb2Ygc2VydmVyIGNlcnRpZmljYXRlcy4iLCAiZXhhbXBsZV9jb2RlIjogIi8vIENyZWF0ZSBhIG5ldyBNV0cuRW5hYmxlQ2VydGlmaWNhdGVWZXJpZmljYXRpb25TZXR0aW5nIG9iamVjdFxuTVdHLkVuYWJsZUNlcnRpZmljYXRlVmVyaWZpY2F0aW9uU2V0dGluZyBjZXJ0VmVyaWZpY2F0aW9uU2V0dGluZyA9IE1XRy5FbmFibGVDZXJ0aWZpY2F0ZVZlcmlmaWNhdGlvblNldHRpbmcoKVxuXG4vLyBDb25maWd1cmUgdGhlIHNldHRpbmdzIGFzIG5lZWRlZFxuLy8gRm9yIGV4YW1wbGUsIHlvdSBtaWdodCBzZXQgc29tZSBwcm9wZXJ0aWVzIG9uIHRoZSBjZXJ0VmVyaWZpY2F0aW9uU2V0dGluZyBvYmplY3QgaGVyZVxuLy8gY2VydFZlcmlmaWNhdGlvblNldHRpbmcuc29tZVByb3BlcnR5ID0gc29tZVZhbHVlXG5cbi8vIEVuYWJsZSBjZXJ0aWZpY2F0ZSB2ZXJpZmljYXRpb24gd2l0aCB0aGUgc3BlY2lmaWVkIHNldHRpbmdzXG5NV0cuRW5hYmxlQ2VydGlmaWNhdGVWZXJpZmljYXRpb24oY2VydFZlcmlmaWNhdGlvblNldHRpbmcpXG5cbi8vIE9wdGlvbmFsbHksIHByaW50IGEgZGVidWcgbWVzc2FnZSB0byBjb25maXJtIHRoZSBhY3Rpb25cbi8vIENlcnRpZmljYXRlIHZlcmlmaWNhdGlvbiBoYXMgYmVlbiBlbmFibGVkIHdpdGggdGhlIHNwZWNpZmllZCBzZXR0aW5ncy4iLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIi8vIENyZWF0ZSBhIG5ldyBNV0cuRW5hYmxlQ2VydGlmaWNhdGVWZXJpZmljYXRpb25TZXR0aW5nIG9iamVjdFxuTVdHLkVuYWJsZUNlcnRpZmljYXRlVmVyaWZpY2F0aW9uU2V0dGluZyBjZXJ0VmVyaWZpY2F0aW9uU2V0dGluZyA9IE1XRy5FbmFibGVDZXJ0aWZpY2F0ZVZlcmlmaWNhdGlvblNldHRpbmcoKVxuXG4vLyBDb25maWd1cmUgdGhlIHNldHRpbmdzIGFzIG5lZWRlZFxuLy8gRm9yIGV4YW1wbGUsIHlvdSBtaWdodCBzZXQgc29tZSBwcm9wZXJ0aWVzIG9uIHRoZSBjZXJ0VmVyaWZpY2F0aW9uU2V0dGluZyBvYmplY3QgaGVyZVxuLy8gY2VydFZlcmlmaWNhdGlvblNldHRpbmcuc29tZVByb3BlcnR5ID0gc29tZVZhbHVlXG5cbi8vIEVuYWJsZSBjZXJ0aWZpY2F0ZSB2ZXJpZmljYXRpb24gd2l0aCB0aGUgc3BlY2lmaWVkIHNldHRpbmdzXG5NV0cuRW5hYmxlQ2VydGlmaWNhdGVWZXJpZmljYXRpb24oY2VydFZlcmlmaWNhdGlvblNldHRpbmcpXG5cbi8vIE9wdGlvbmFsbHksIHByaW50IGEgZGVidWcgbWVzc2FnZSB0byBjb25maXJtIHRoZSBhY3Rpb25cbi8vIENlcnRpZmljYXRlIHZlcmlmaWNhdGlvbiBoYXMgYmVlbiBlbmFibGVkIHdpdGggdGhlIHNwZWNpZmllZCBzZXR0aW5ncy4ifSwgeyJuYW1lIjogIk1XRy5FbmFibGVDb250ZW50SW5zcGVjdGlvbiAoTVdHLkVuYWJsZUNvbnRlbnRJbnNwZWN0aW9uU2V0dGluZykiLCAicGFyYW1ldGVyX2Rlc2MiOiAiMS4gYE1XRy5FbmFibGVDb250ZW50SW5zcGVjdGlvblNldHRpbmdgOiBDb25maWd1cmF0aW9uIHNldHRpbmdzIG9iamVjdC4iLCAiZGVzY3JpcHRpb24iOiAiRW5hYmxlcyBkZWNyeXB0aW9uIG9mIFRMUyBjb25uZWN0aW9ucy4iLCAiZXhhbXBsZV9jb2RlIjogIk1XRy5FbmFibGVDb250ZW50SW5zcGVjdGlvblNldHRpbmcgY29udGVudEluc3BlY3Rpb25TZXR0aW5nXG4vLyBDb25maWd1cmUgdGhlIGNvbnRlbnQgaW5zcGVjdGlvbiBzZXR0aW5ncyBhcyBuZWVkZWRcbmNvbnRlbnRJbnNwZWN0aW9uU2V0dGluZy5zb21lU2V0dGluZyA9IFwidmFsdWVcIiAvLyBSZXBsYWNlIHdpdGggYWN0dWFsIHNldHRpbmdzXG5cbi8vIEVuYWJsZSBjb250ZW50IGluc3BlY3Rpb24gd2l0aCB0aGUgc3BlY2lmaWVkIHNldHRpbmdzXG5NV0cuRW5hYmxlQ29udGVudEluc3BlY3Rpb24oY29udGVudEluc3BlY3Rpb25TZXR0aW5nKVxuXG4vLyBDb250ZW50IGluc3BlY3Rpb24gZW5hYmxlZCB3aXRoIHNwZWNpZmllZCBzZXR0aW5ncy4iLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIk1XRy5FbmFibGVDb250ZW50SW5zcGVjdGlvblNldHRpbmcgY29udGVudEluc3BlY3Rpb25TZXR0aW5nXG4vLyBDb25maWd1cmUgdGhlIGNvbnRlbnQgaW5zcGVjdGlvbiBzZXR0aW5ncyBhcyBuZWVkZWRcbmNvbnRlbnRJbnNwZWN0aW9uU2V0dGluZy5zb21lU2V0dGluZyA9IFwidmFsdWVcIiAvLyBSZXBsYWNlIHdpdGggYWN0dWFsIHNldHRpbmdzXG5cbi8vIEVuYWJsZSBjb250ZW50IGluc3BlY3Rpb24gd2l0aCB0aGUgc3BlY2lmaWVkIHNldHRpbmdzXG5NV0cuRW5hYmxlQ29udGVudEluc3BlY3Rpb24oY29udGVudEluc3BlY3Rpb25TZXR0aW5nKVxuXG4vLyBDb250ZW50IGluc3BlY3Rpb24gZW5hYmxlZCB3aXRoIHNwZWNpZmllZCBzZXR0aW5ncy4ifSwgeyJuYW1lIjogIk1XRy5FbmFibGVEYXRhVHJpY2tsaW5nIChNV0cuRGF0YVRyaWNrbGluZ1NldHRpbmcpIiwgInBhcmFtZXRlcl9kZXNjIjogIjEuIGBNV0cuRGF0YVRyaWNrbGluZ1NldHRpbmdgOiBDb25maWd1cmF0aW9uIHNldHRpbmdzIG9iamVjdC4iLCAiZGVzY3JpcHRpb24iOiAiRW5hYmxlcyBkYXRhIHRyaWNrbGluZy4iLCAiZXhhbXBsZV9jb2RlIjogIi8vIERlZmluZSB0aGUgZGF0YSB0cmlja2xpbmcgc2V0dGluZ1xuTVdHLkRhdGFUcmlja2xpbmdTZXR0aW5nIGRhdGFUcmlja2xpbmdTZXR0aW5nID0gLi4uIC8vIEFzc3VtZSB0aGlzIGlzIHlvdXIgY29uZmlndXJlZCBkYXRhIHRyaWNrbGluZyBzZXR0aW5nXG5cbi8vIEVuYWJsZSBkYXRhIHRyaWNrbGluZyB3aXRoIHRoZSBzcGVjaWZpZWQgc2V0dGluZ1xuTVdHLkVuYWJsZURhdGFUcmlja2xpbmcoZGF0YVRyaWNrbGluZ1NldHRpbmcpXG5cbi8vIE9wdGlvbmFsbHksIHlvdSBjYW4gbG9nIG9yIGRlYnVnIHRvIHZlcmlmeSB0aGF0IGRhdGEgdHJpY2tsaW5nIGhhcyBiZWVuIGVuYWJsZWRcbi8vIFwiRGF0YSB0cmlja2xpbmcgaGFzIGJlZW4gZW5hYmxlZCB3aXRoIHRoZSBzcGVjaWZpZWQgc2V0dGluZy5cIiIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiLy8gRGVmaW5lIHRoZSBkYXRhIHRyaWNrbGluZyBzZXR0aW5nXG5NV0cuRGF0YVRyaWNrbGluZ1NldHRpbmcgZGF0YVRyaWNrbGluZ1NldHRpbmcgPSAuLi4gLy8gQXNzdW1lIHRoaXMgaXMgeW91ciBjb25maWd1cmVkIGRhdGEgdHJpY2tsaW5nIHNldHRpbmdcblxuLy8gRW5hYmxlIGRhdGEgdHJpY2tsaW5nIHdpdGggdGhlIHNwZWNpZmllZCBzZXR0aW5nXG5NV0cuRW5hYmxlRGF0YVRyaWNrbGluZyhkYXRhVHJpY2tsaW5nU2V0dGluZylcblxuLy8gT3B0aW9uYWxseSwgeW91IGNhbiBsb2cgb3IgZGVidWcgdG8gdmVyaWZ5IHRoYXQgZGF0YSB0cmlja2xpbmcgaGFzIGJlZW4gZW5hYmxlZFxuLy8gXCJEYXRhIHRyaWNrbGluZyBoYXMgYmVlbiBlbmFibGVkIHdpdGggdGhlIHNwZWNpZmllZCBzZXR0aW5nLlwiIn0sIHsibmFtZSI6ICJNV0cuRW5hYmxlRlRQVXBsb2FkUHJvZ3Jlc3NJbmRpY2F0aW9uICgpIiwgInBhcmFtZXRlcl9kZXNjIjogIipOL0EqIiwgImRlc2NyaXB0aW9uIjogIkVuYWJsZXMgRlRQIHVwbG9hZCBwcm9ncmVzcyBpbmRpY2F0aW9uIGJ5IHNlbmRpbmcgMjI2LXJlcGxpZXMgdG8gdGhlIGNsaWVudC4iLCAiZXhhbXBsZV9jb2RlIjogIi8vIEVuYWJsZSBGVFAgdXBsb2FkIHByb2dyZXNzIGluZGljYXRpb25cbk1XRy5FbmFibGVGVFBVcGxvYWRQcm9ncmVzc0luZGljYXRpb24oKVxuXG4vLyBGVFAgdXBsb2FkIHByb2dyZXNzIGluZGljYXRpb24gaGFzIGJlZW4gZW5hYmxlZC4iLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIi8vIEVuYWJsZSBGVFAgdXBsb2FkIHByb2dyZXNzIGluZGljYXRpb25cbk1XRy5FbmFibGVGVFBVcGxvYWRQcm9ncmVzc0luZGljYXRpb24oKVxuXG4vLyBGVFAgdXBsb2FkIHByb2dyZXNzIGluZGljYXRpb24gaGFzIGJlZW4gZW5hYmxlZC4ifSwgeyJuYW1lIjogIk1XRy5FbmFibGVIVE1MT3BlbmVyIChNV0cuSFRNTE9wZW5lclNldHRpbmcpIiwgInBhcmFtZXRlcl9kZXNjIjogIjEuIGBNV0cuSFRNTE9wZW5lclNldHRpbmdgOiBDb25maWd1cmF0aW9uIHNldHRpbmdzIG9iamVjdC4iLCAiZGVzY3JpcHRpb24iOiAiRW5hYmxlcyBIVE1MIG9wZW5lci4iLCAiZXhhbXBsZV9jb2RlIjogIi8vIENyZWF0ZSBhbiBpbnN0YW5jZSBvZiBNV0cuSFRNTE9wZW5lclNldHRpbmdcbk1XRy5IVE1MT3BlbmVyU2V0dGluZyBodG1sT3BlbmVyU2V0dGluZ1xuXG4vLyBDb25maWd1cmUgdGhlIEhUTUwgb3BlbmVyIHNldHRpbmcgYXMgbmVlZGVkXG4vLyBGb3IgZXhhbXBsZSwgeW91IG1pZ2h0IHNldCBzb21lIHByb3BlcnRpZXMgb24gdGhlIGh0bWxPcGVuZXJTZXR0aW5nIG9iamVjdFxuLy8gKEFzc3VtaW5nIHRoZXJlIGFyZSBwcm9wZXJ0aWVzIHRvIHNldCwgd2hpY2ggd291bGQgZGVwZW5kIG9uIHRoZSBzcGVjaWZpYyBpbXBsZW1lbnRhdGlvbilcbi8vIGh0bWxPcGVuZXJTZXR0aW5nLnNvbWVQcm9wZXJ0eSA9IHNvbWVWYWx1ZVxuXG4vLyBFbmFibGUgdGhlIEhUTUwgb3BlbmVyIHdpdGggdGhlIHNwZWNpZmllZCBzZXR0aW5nXG5NV0cuRW5hYmxlSFRNTE9wZW5lcihodG1sT3BlbmVyU2V0dGluZylcblxuLy8gSFRNTCBPcGVuZXIgaGFzIGJlZW4gZW5hYmxlZCB3aXRoIHRoZSBzcGVjaWZpZWQgc2V0dGluZ3MuIiwgInJldmlld2VkIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICIvLyBDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgTVdHLkhUTUxPcGVuZXJTZXR0aW5nXG5NV0cuSFRNTE9wZW5lclNldHRpbmcgaHRtbE9wZW5lclNldHRpbmdcblxuLy8gQ29uZmlndXJlIHRoZSBIVE1MIG9wZW5lciBzZXR0aW5nIGFzIG5lZWRlZFxuLy8gRm9yIGV4YW1wbGUsIHlvdSBtaWdodCBzZXQgc29tZSBwcm9wZXJ0aWVzIG9uIHRoZSBodG1sT3BlbmVyU2V0dGluZyBvYmplY3Rcbi8vIChBc3N1bWluZyB0aGVyZSBhcmUgcHJvcGVydGllcyB0byBzZXQsIHdoaWNoIHdvdWxkIGRlcGVuZCBvbiB0aGUgc3BlY2lmaWMgaW1wbGVtZW50YXRpb24pXG4vLyBodG1sT3BlbmVyU2V0dGluZy5zb21lUHJvcGVydHkgPSBzb21lVmFsdWVcblxuLy8gRW5hYmxlIHRoZSBIVE1MIG9wZW5lciB3aXRoIHRoZSBzcGVjaWZpZWQgc2V0dGluZ1xuTVdHLkVuYWJsZUhUTUxPcGVuZXIoaHRtbE9wZW5lclNldHRpbmcpXG5cbi8vIEhUTUwgT3BlbmVyIGhhcyBiZWVuIGVuYWJsZWQgd2l0aCB0aGUgc3BlY2lmaWVkIHNldHRpbmdzLiJ9LCB7Im5hbWUiOiAiTVdHLkVuYWJsZUhUVFBUdW5uZWwgKCkiLCAicGFyYW1ldGVyX2Rlc2MiOiAiKk4vQSoiLCAiZGVzY3JpcHRpb24iOiAiRW5hYmxlcyBIVFRQIFR1bm5lbC4iLCAiZXhhbXBsZV9jb2RlIjogIk1XRy5VUkwgY3VycmVudFVybCA9IE1XRy5VcmwoKVxuXG5JRiBjdXJyZW50VXJsLkhvc3QgPT0gXCJleGFtcGxlLmNvbVwiIFRIRU4ge1xuICAgIE1XRy5FbmFibGVIVFRQVHVubmVsKClcbiAgICAvLyBIVFRQIFR1bm5lbCBlbmFibGVkIGZvciBleGFtcGxlLmNvbVxufSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiTVdHLlVSTCBjdXJyZW50VXJsID0gTVdHLlVybCgpXG5cbklGIGN1cnJlbnRVcmwuSG9zdCA9PSBcImV4YW1wbGUuY29tXCIgVEhFTiB7XG4gICAgTVdHLkVuYWJsZUhUVFBUdW5uZWwoKVxuICAgIC8vIEhUVFAgVHVubmVsIGVuYWJsZWQgZm9yIGV4YW1wbGUuY29tXG59In0sIHsibmFtZSI6ICJNV0cuRW5hYmxlT3BlbmVyIChNV0cuQ29tcG9zaXRlT3BlbmVyU2V0dGluZykiLCAicGFyYW1ldGVyX2Rlc2MiOiAiMS4gYE1XRy5Db21wb3NpdGVPcGVuZXJTZXR0aW5nYDogQ29uZmlndXJhdGlvbiBzZXR0aW5ncyBvYmplY3QuIiwgImRlc2NyaXB0aW9uIjogIkVuYWJsZXMgb3BlbmVyLiIsICJleGFtcGxlX2NvZGUiOiAiLy8gQ3JlYXRlIGEgY29tcG9zaXRlIG9wZW5lciBzZXR0aW5nXG5NV0cuQ29tcG9zaXRlT3BlbmVyU2V0dGluZyBjb21wb3NpdGVPcGVuZXJTZXR0aW5nXG5cbi8vIENvbmZpZ3VyZSB0aGUgY29tcG9zaXRlIG9wZW5lciBzZXR0aW5nIGFzIG5lZWRlZFxuLy8gRm9yIGV4YW1wbGUsIHlvdSBtaWdodCBzZXQgdmFyaW91cyBwcm9wZXJ0aWVzIG9uIHRoZSBjb21wb3NpdGVPcGVuZXJTZXR0aW5nIG9iamVjdCBoZXJlXG5cbi8vIEVuYWJsZSB0aGUgY29tcG9zaXRlIG9wZW5lciBzZXR0aW5nXG5NV0cuRW5hYmxlT3BlbmVyKGNvbXBvc2l0ZU9wZW5lclNldHRpbmcpXG5cbi8vIENvbXBvc2l0ZSBvcGVuZXIgaGFzIGJlZW4gZW5hYmxlZC4iLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIi8vIENyZWF0ZSBhIGNvbXBvc2l0ZSBvcGVuZXIgc2V0dGluZ1xuTVdHLkNvbXBvc2l0ZU9wZW5lclNldHRpbmcgY29tcG9zaXRlT3BlbmVyU2V0dGluZ1xuXG4vLyBDb25maWd1cmUgdGhlIGNvbXBvc2l0ZSBvcGVuZXIgc2V0dGluZyBhcyBuZWVkZWRcbi8vIEZvciBleGFtcGxlLCB5b3UgbWlnaHQgc2V0IHZhcmlvdXMgcHJvcGVydGllcyBvbiB0aGUgY29tcG9zaXRlT3BlbmVyU2V0dGluZyBvYmplY3QgaGVyZVxuXG4vLyBFbmFibGUgdGhlIGNvbXBvc2l0ZSBvcGVuZXIgc2V0dGluZ1xuTVdHLkVuYWJsZU9wZW5lcihjb21wb3NpdGVPcGVuZXJTZXR0aW5nKVxuXG4vLyBDb21wb3NpdGUgb3BlbmVyIGhhcyBiZWVuIGVuYWJsZWQuIn0sIHsibmFtZSI6ICJNV0cuRW5hYmxlUHJlc2VydmVTZXJ2ZXJDZXJ0IChNV0cuUmVwbGljYXRlU2VydmVyQ2VydFNldHRpbmcpIiwgInBhcmFtZXRlcl9kZXNjIjogIjEuIGBNV0cuUmVwbGljYXRlU2VydmVyQ2VydFNldHRpbmdgOiBDb25maWd1cmF0aW9uIHNldHRpbmdzIG9iamVjdC4iLCAiZGVzY3JpcHRpb24iOiAiRW5hYmxlcyBSZXBsaWNhdGUgU2VydmVyIENlcnRpZmljYXRlIGZvciBUTFMgY29ubmVjdGlvbnMuIiwgImV4YW1wbGVfY29kZSI6ICIvLyBDcmVhdGUgYW5kIGNvbmZpZ3VyZSB0aGUgTVdHLlJlcGxpY2F0ZVNlcnZlckNlcnRTZXR0aW5nIG9iamVjdFxuTVdHLlJlcGxpY2F0ZVNlcnZlckNlcnRTZXR0aW5nIGNlcnRTZXR0aW5nXG4vLyBBc3N1bWluZyB0aGVyZSBhcmUgcHJvcGVydGllcyB0byBzZXQgb24gY2VydFNldHRpbmcsIHRoZXkgd291bGQgYmUgc2V0IGhlcmVcbi8vIEZvciBleGFtcGxlOiBjZXJ0U2V0dGluZy5zb21lUHJvcGVydHkgPSBzb21lVmFsdWVcblxuLy8gRW5hYmxlIHRoZSByZXBsaWNhdGlvbiBvZiBzZXJ2ZXIgY2VydGlmaWNhdGVzXG5NV0cuRW5hYmxlUHJlc2VydmVTZXJ2ZXJDZXJ0KGNlcnRTZXR0aW5nKVxuXG4vLyBTZXJ2ZXIgY2VydGlmaWNhdGUgcmVwbGljYXRpb24gaGFzIGJlZW4gZW5hYmxlZC4iLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIi8vIENyZWF0ZSBhbmQgY29uZmlndXJlIHRoZSBNV0cuUmVwbGljYXRlU2VydmVyQ2VydFNldHRpbmcgb2JqZWN0XG5NV0cuUmVwbGljYXRlU2VydmVyQ2VydFNldHRpbmcgY2VydFNldHRpbmdcbi8vIEFzc3VtaW5nIHRoZXJlIGFyZSBwcm9wZXJ0aWVzIHRvIHNldCBvbiBjZXJ0U2V0dGluZywgdGhleSB3b3VsZCBiZSBzZXQgaGVyZVxuLy8gRm9yIGV4YW1wbGU6IGNlcnRTZXR0aW5nLnNvbWVQcm9wZXJ0eSA9IHNvbWVWYWx1ZVxuXG4vLyBFbmFibGUgdGhlIHJlcGxpY2F0aW9uIG9mIHNlcnZlciBjZXJ0aWZpY2F0ZXNcbk1XRy5FbmFibGVQcmVzZXJ2ZVNlcnZlckNlcnQoY2VydFNldHRpbmcpXG5cbi8vIFNlcnZlciBjZXJ0aWZpY2F0ZSByZXBsaWNhdGlvbiBoYXMgYmVlbiBlbmFibGVkLiJ9LCB7Im5hbWUiOiAiTVdHLkVuYWJsZVByb2dyZXNzUGFnZSAoTVdHLlByb2dyZXNzUGFnZVNldHRpbmcpIiwgInBhcmFtZXRlcl9kZXNjIjogIjEuIGBNV0cuUHJvZ3Jlc3NQYWdlU2V0dGluZ2A6IENvbmZpZ3VyYXRpb24gc2V0dGluZ3Mgb2JqZWN0LiIsICJkZXNjcmlwdGlvbiI6ICJFbmFibGVzIHByb2dyZXNzIHBhZ2UuIiwgImV4YW1wbGVfY29kZSI6ICIvLyBDcmVhdGUgYSBQcm9ncmVzc1BhZ2VTZXR0aW5nIG9iamVjdFxuTVdHLlByb2dyZXNzUGFnZVNldHRpbmcgcHJvZ3Jlc3NQYWdlU2V0dGluZ1xuXG4vLyBDb25maWd1cmUgdGhlIHByb2dyZXNzIHBhZ2Ugc2V0dGluZyBhcyBuZWVkZWRcbi8vIEZvciBleGFtcGxlLCBzZXR0aW5nIGEgY3VzdG9tIG1lc3NhZ2VcbnByb2dyZXNzUGFnZVNldHRpbmcubWVzc2FnZSA9IFwiUGxlYXNlIHdhaXQgd2hpbGUgd2UgcHJvY2VzcyB5b3VyIHJlcXVlc3QuLi5cIlxuXG4vLyBFbmFibGUgdGhlIHByb2dyZXNzIHBhZ2Ugd2l0aCB0aGUgc3BlY2lmaWVkIHNldHRpbmdcbk1XRy5FbmFibGVQcm9ncmVzc1BhZ2UocHJvZ3Jlc3NQYWdlU2V0dGluZylcblxuLy8gT3B0aW9uYWxseSwgeW91IGNhbiBhZGQgbW9yZSBsb2dpYyBoZXJlXG4vLyBQcm9ncmVzcyBwYWdlIGhhcyBiZWVuIGVuYWJsZWQgd2l0aCB0aGUgY3VzdG9tIG1lc3NhZ2UuIiwgInJldmlld2VkIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICIvLyBDcmVhdGUgYSBQcm9ncmVzc1BhZ2VTZXR0aW5nIG9iamVjdFxuTVdHLlByb2dyZXNzUGFnZVNldHRpbmcgcHJvZ3Jlc3NQYWdlU2V0dGluZ1xuXG4vLyBDb25maWd1cmUgdGhlIHByb2dyZXNzIHBhZ2Ugc2V0dGluZyBhcyBuZWVkZWRcbi8vIEZvciBleGFtcGxlLCBzZXR0aW5nIGEgY3VzdG9tIG1lc3NhZ2VcbnByb2dyZXNzUGFnZVNldHRpbmcubWVzc2FnZSA9IFwiUGxlYXNlIHdhaXQgd2hpbGUgd2UgcHJvY2VzcyB5b3VyIHJlcXVlc3QuLi5cIlxuXG4vLyBFbmFibGUgdGhlIHByb2dyZXNzIHBhZ2Ugd2l0aCB0aGUgc3BlY2lmaWVkIHNldHRpbmdcbk1XRy5FbmFibGVQcm9ncmVzc1BhZ2UocHJvZ3Jlc3NQYWdlU2V0dGluZylcblxuLy8gT3B0aW9uYWxseSwgeW91IGNhbiBhZGQgbW9yZSBsb2dpYyBoZXJlXG4vLyBQcm9ncmVzcyBwYWdlIGhhcyBiZWVuIGVuYWJsZWQgd2l0aCB0aGUgY3VzdG9tIG1lc3NhZ2UuIn0sIHsibmFtZSI6ICJNV0cuRW5hYmxlU2FmZVNlYXJjaEVuZm9yY2VyIChNV0cuU2FmZVNlYXJjaEVuZm9yY2VyU2V0dGluZykiLCAicGFyYW1ldGVyX2Rlc2MiOiAiMS4gYE1XRy5TYWZlU2VhcmNoRW5mb3JjZXJTZXR0aW5nYDogQ29uZmlndXJhdGlvbiBzZXR0aW5ncyBvYmplY3QuIiwgImRlc2NyaXB0aW9uIjogIkVuYWJsZXMgU2FmZS1TZWFyY2gtRW5mb3JjZXIuIiwgImV4YW1wbGVfY29kZSI6ICIvLyBDcmVhdGUgYSBTYWZlU2VhcmNoRW5mb3JjZXJTZXR0aW5nIG9iamVjdFxuTVdHLlNhZmVTZWFyY2hFbmZvcmNlclNldHRpbmcgc2FmZVNlYXJjaFNldHRpbmcgPSBNV0cuU2FmZVNlYXJjaEVuZm9yY2VyU2V0dGluZygpXG5cbi8vIENvbmZpZ3VyZSB0aGUgU2FmZVNlYXJjaEVuZm9yY2VyU2V0dGluZyBhcyBuZWVkZWRcbi8vIEZvciBleGFtcGxlLCB5b3UgbWlnaHQgd2FudCB0byBlbmFibGUgU2FmZVNlYXJjaCBmb3IgR29vZ2xlXG5zYWZlU2VhcmNoU2V0dGluZy5FbmFibGVHb29nbGVTYWZlU2VhcmNoID0gVFJVRVxuc2FmZVNlYXJjaFNldHRpbmcuRW5hYmxlQmluZ1NhZmVTZWFyY2ggPSBUUlVFXG5zYWZlU2VhcmNoU2V0dGluZy5FbmFibGVZb3VUdWJlUmVzdHJpY3RlZE1vZGUgPSBUUlVFXG5cbi8vIEVuYWJsZSBTYWZlU2VhcmNoIGVuZm9yY2VtZW50IHdpdGggdGhlIGNvbmZpZ3VyZWQgc2V0dGluZ1xuTVdHLkVuYWJsZVNhZmVTZWFyY2hFbmZvcmNlcihzYWZlU2VhcmNoU2V0dGluZylcblxuLy8gU2FmZVNlYXJjaCBlbmZvcmNlbWVudCBlbmFibGVkIHdpdGggdGhlIHNwZWNpZmllZCBzZXR0aW5ncy4iLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIi8vIENyZWF0ZSBhIFNhZmVTZWFyY2hFbmZvcmNlclNldHRpbmcgb2JqZWN0XG5NV0cuU2FmZVNlYXJjaEVuZm9yY2VyU2V0dGluZyBzYWZlU2VhcmNoU2V0dGluZyA9IE1XRy5TYWZlU2VhcmNoRW5mb3JjZXJTZXR0aW5nKClcblxuLy8gQ29uZmlndXJlIHRoZSBTYWZlU2VhcmNoRW5mb3JjZXJTZXR0aW5nIGFzIG5lZWRlZFxuLy8gRm9yIGV4YW1wbGUsIHlvdSBtaWdodCB3YW50IHRvIGVuYWJsZSBTYWZlU2VhcmNoIGZvciBHb29nbGVcbnNhZmVTZWFyY2hTZXR0aW5nLkVuYWJsZUdvb2dsZVNhZmVTZWFyY2ggPSBUUlVFXG5zYWZlU2VhcmNoU2V0dGluZy5FbmFibGVCaW5nU2FmZVNlYXJjaCA9IFRSVUVcbnNhZmVTZWFyY2hTZXR0aW5nLkVuYWJsZVlvdVR1YmVSZXN0cmljdGVkTW9kZSA9IFRSVUVcblxuLy8gRW5hYmxlIFNhZmVTZWFyY2ggZW5mb3JjZW1lbnQgd2l0aCB0aGUgY29uZmlndXJlZCBzZXR0aW5nXG5NV0cuRW5hYmxlU2FmZVNlYXJjaEVuZm9yY2VyKHNhZmVTZWFyY2hTZXR0aW5nKVxuXG4vLyBTYWZlU2VhcmNoIGVuZm9yY2VtZW50IGVuYWJsZWQgd2l0aCB0aGUgc3BlY2lmaWVkIHNldHRpbmdzLiJ9LCB7Im5hbWUiOiAiTVdHLkVuYWJsZVdlYlNvY2tldFN1cHBvcnQgKCkiLCAicGFyYW1ldGVyX2Rlc2MiOiAiKk4vQSoiLCAiZGVzY3JpcHRpb24iOiAiRW5hYmxlcyB3ZWIgc29ja2V0IHN1cHBvcnQuIiwgImV4YW1wbGVfY29kZSI6ICIvLyBFbmFibGluZyBXZWJTb2NrZXQgc3VwcG9ydCBmb3IgdGhlIGN1cnJlbnQgcmVxdWVzdFxuTVdHLkVuYWJsZVdlYlNvY2tldFN1cHBvcnQoKSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiLy8gRW5hYmxpbmcgV2ViU29ja2V0IHN1cHBvcnQgZm9yIHRoZSBjdXJyZW50IHJlcXVlc3Rcbk1XRy5FbmFibGVXZWJTb2NrZXRTdXBwb3J0KCkifSwgeyJuYW1lIjogIk1XRy5FeGVjdXRlRXZlbnQgKE1XRy5JbnRlcm5hbFNldHRpbmcsIFNUUklORykiLCAicGFyYW1ldGVyX2Rlc2MiOiAiMS4gYE1XRy5JbnRlcm5hbFNldHRpbmdgOiBDb25maWd1cmF0aW9uIHNldHRpbmdzLlxuMi4gYFNUUklOR2A6IFRoZSBuYW1lIG9mIHRoZSBldmVudC4iLCAiZGVzY3JpcHRpb24iOiAiRXhlY3V0ZXMgYW4gZXZlbnQgd2l0aCBjb25maWd1cmF0aW9uIHNldHRpbmdzLiIsICJleGFtcGxlX2NvZGUiOiAiLy8gRGVmaW5lIHRoZSBpbnRlcm5hbCBzZXR0aW5nIGFuZCB0aGUgc3RyaW5nIHBhcmFtZXRlclxuTVdHLkludGVybmFsU2V0dGluZyBpbnRlcm5hbFNldHRpbmcgPSBbXCJFeGFtcGxlSW50ZXJuYWxTZXR0aW5nXCJdXG5TVFJJTkcgcGFyYW1ldGVyID0gXCJFeGFtcGxlUGFyYW1ldGVyXCJcblxuLy8gRXhlY3V0ZSB0aGUgaW50ZXJuYWwgZXZlbnQgd2l0aCB0aGUgc3BlY2lmaWVkIHNldHRpbmcgYW5kIHBhcmFtZXRlclxuTVdHLkV4ZWN1dGVFdmVudChpbnRlcm5hbFNldHRpbmcsIHBhcmFtZXRlcilcblxuLy8gRGVidWcgbWVzc2FnZSB0byBpbmRpY2F0ZSB0aGUgZXZlbnQgaGFzIGJlZW4gdHJpZ2dlcmVkXG4vLyBJbnRlcm5hbCBldmVudCB0cmlnZ2VyZWQgd2l0aCBzZXR0aW5nOiBcIiArIGludGVybmFsU2V0dGluZyArIFwiIGFuZCBwYXJhbWV0ZXI6IFwiICsgcGFyYW1ldGVyIiwgInJldmlld2VkIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICIvLyBEZWZpbmUgdGhlIGludGVybmFsIHNldHRpbmcgYW5kIHRoZSBzdHJpbmcgcGFyYW1ldGVyXG5NV0cuSW50ZXJuYWxTZXR0aW5nIGludGVybmFsU2V0dGluZyA9IFtcIkV4YW1wbGVJbnRlcm5hbFNldHRpbmdcIl1cblNUUklORyBwYXJhbWV0ZXIgPSBcIkV4YW1wbGVQYXJhbWV0ZXJcIlxuXG4vLyBFeGVjdXRlIHRoZSBpbnRlcm5hbCBldmVudCB3aXRoIHRoZSBzcGVjaWZpZWQgc2V0dGluZyBhbmQgcGFyYW1ldGVyXG5NV0cuRXhlY3V0ZUV2ZW50KGludGVybmFsU2V0dGluZywgcGFyYW1ldGVyKVxuXG4vLyBEZWJ1ZyBtZXNzYWdlIHRvIGluZGljYXRlIHRoZSBldmVudCBoYXMgYmVlbiB0cmlnZ2VyZWRcbi8vIEludGVybmFsIGV2ZW50IHRyaWdnZXJlZCB3aXRoIHNldHRpbmc6IFwiICsgaW50ZXJuYWxTZXR0aW5nICsgXCIgYW5kIHBhcmFtZXRlcjogXCIgKyBwYXJhbWV0ZXIifSwgeyJuYW1lIjogIk1XRy5FeGVjdXRlRXZlbnQgKE1XRy5JbnRlcm5hbFNldHRpbmcsIFNUUklORywgTVdHLkludGVybmFsUGFyYW1ldGVyTGlzdCkiLCAicGFyYW1ldGVyX2Rlc2MiOiAiMS4gYE1XRy5JbnRlcm5hbFNldHRpbmdgOiBDb25maWd1cmF0aW9uIHNldHRpbmdzLlxuMi4gYFNUUklOR2A6IFRoZSBuYW1lIG9mIHRoZSBldmVudC5cbjMuIGBNV0cuSW50ZXJuYWxQYXJhbWV0ZXJMaXN0YDogUGFyYW1ldGVycyB0byBwYXNzIHRocm91Z2guIiwgImRlc2NyaXB0aW9uIjogIkV4ZWN1dGVzIGFuIGV2ZW50IHdpdGggY29uZmlndXJhdGlvbiBzZXR0aW5ncyBhbmQgcGFyYW1ldGVycy4iLCAiZXhhbXBsZV9jb2RlIjogIi8vIERlZmluZSB0aGUgaW50ZXJuYWwgc2V0dGluZ1xuTVdHLkludGVybmFsU2V0dGluZyBpbnRlcm5hbFNldHRpbmcgPSBNV0cuSW50ZXJuYWxTZXR0aW5nKClcblxuLy8gRGVmaW5lIHRoZSBldmVudCBuYW1lXG5TVFJJTkcgZXZlbnROYW1lID0gXCJDdXN0b21FdmVudFwiXG5cbi8vIERlZmluZSB0aGUgaW50ZXJuYWwgcGFyYW1ldGVyIGxpc3Rcbk1XRy5JbnRlcm5hbFBhcmFtZXRlckxpc3QgcGFyYW1ldGVyTGlzdCA9IE1XRy5JbnRlcm5hbFBhcmFtZXRlckxpc3QoKVxuXG4vLyBBZGQgcGFyYW1ldGVycyB0byB0aGUgcGFyYW1ldGVyIGxpc3RcbnBhcmFtZXRlckxpc3QuQWRkKFwicGFyYW0xXCIsIFwidmFsdWUxXCIpXG5wYXJhbWV0ZXJMaXN0LkFkZChcInBhcmFtMlwiLCBcInZhbHVlMlwiKVxuXG4vLyBFeGVjdXRlIHRoZSBldmVudFxuTVdHLkV4ZWN1dGVFdmVudChpbnRlcm5hbFNldHRpbmcsIGV2ZW50TmFtZSwgcGFyYW1ldGVyTGlzdClcblxuLy8gUHJpbnQgYSBkZWJ1ZyBtZXNzYWdlIHRvIGluZGljYXRlIHRoZSBldmVudCB3YXMgZXhlY3V0ZWRcbi8vIEV4ZWN1dGVkIGV2ZW50OiBcIiArIGV2ZW50TmFtZSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiLy8gRGVmaW5lIHRoZSBpbnRlcm5hbCBzZXR0aW5nXG5NV0cuSW50ZXJuYWxTZXR0aW5nIGludGVybmFsU2V0dGluZyA9IE1XRy5JbnRlcm5hbFNldHRpbmcoKVxuXG4vLyBEZWZpbmUgdGhlIGV2ZW50IG5hbWVcblNUUklORyBldmVudE5hbWUgPSBcIkN1c3RvbUV2ZW50XCJcblxuLy8gRGVmaW5lIHRoZSBpbnRlcm5hbCBwYXJhbWV0ZXIgbGlzdFxuTVdHLkludGVybmFsUGFyYW1ldGVyTGlzdCBwYXJhbWV0ZXJMaXN0ID0gTVdHLkludGVybmFsUGFyYW1ldGVyTGlzdCgpXG5cbi8vIEFkZCBwYXJhbWV0ZXJzIHRvIHRoZSBwYXJhbWV0ZXIgbGlzdFxucGFyYW1ldGVyTGlzdC5BZGQoXCJwYXJhbTFcIiwgXCJ2YWx1ZTFcIilcbnBhcmFtZXRlckxpc3QuQWRkKFwicGFyYW0yXCIsIFwidmFsdWUyXCIpXG5cbi8vIEV4ZWN1dGUgdGhlIGV2ZW50XG5NV0cuRXhlY3V0ZUV2ZW50KGludGVybmFsU2V0dGluZywgZXZlbnROYW1lLCBwYXJhbWV0ZXJMaXN0KVxuXG4vLyBQcmludCBhIGRlYnVnIG1lc3NhZ2UgdG8gaW5kaWNhdGUgdGhlIGV2ZW50IHdhcyBleGVjdXRlZFxuLy8gRXhlY3V0ZWQgZXZlbnQ6IFwiICsgZXZlbnROYW1lIn0sIHsibmFtZSI6ICJNV0cuRXhlY3V0ZUV2ZW50IChTVFJJTkcpIiwgInBhcmFtZXRlcl9kZXNjIjogIjEuIGBTVFJJTkdgOiB0aGUgbmFtZSBvZiB0aGUgZXZlbnQuIiwgImRlc2NyaXB0aW9uIjogIkV4ZWN1dGVzIGFuIGV2ZW50LiIsICJleGFtcGxlX2NvZGUiOiAiLy8gTWFpblJvdXRpbmUgdHJpZ2dlcmVkIG9uIFdlYi5SZXF1ZXN0XG5cbi8vIEV4ZWN1dGUgYSBjdXN0b20gZXZlbnQgbmFtZWQgXCJDdXN0b21FdmVudFwiXG5NV0cuRXhlY3V0ZUV2ZW50KFwiQ3VzdG9tRXZlbnRcIilcblxuLy8gQ3VzdG9tRXZlbnQgdHJpZ2dlcmVkXG5cbi8vIFBlcmZvcm0gc29tZSBjdXN0b20gYWN0aW9ucyBoZXJlXG4vLyBGb3IgZXhhbXBsZSwgbGV0J3MgYmxvY2sgdGhlIHJlcXVlc3Qgd2l0aCBhIGN1c3RvbSBtZXNzYWdlXG5NV0cuQmxvY2soXCJBY2Nlc3MgdG8gdGhpcyBzaXRlIGlzIGJsb2NrZWQgYnkgQ3VzdG9tRXZlbnQuXCIpIiwgInJldmlld2VkIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICIvLyBNYWluUm91dGluZSB0cmlnZ2VyZWQgb24gV2ViLlJlcXVlc3RcblxuLy8gRXhlY3V0ZSBhIGN1c3RvbSBldmVudCBuYW1lZCBcIkN1c3RvbUV2ZW50XCJcbk1XRy5FeGVjdXRlRXZlbnQoXCJDdXN0b21FdmVudFwiKVxuXG4vLyBDdXN0b21FdmVudCB0cmlnZ2VyZWRcblxuLy8gUGVyZm9ybSBzb21lIGN1c3RvbSBhY3Rpb25zIGhlcmVcbi8vIEZvciBleGFtcGxlLCBsZXQncyBibG9jayB0aGUgcmVxdWVzdCB3aXRoIGEgY3VzdG9tIG1lc3NhZ2Vcbk1XRy5CbG9jayhcIkFjY2VzcyB0byB0aGlzIHNpdGUgaXMgYmxvY2tlZCBieSBDdXN0b21FdmVudC5cIikifSwgeyJuYW1lIjogIk1XRy5FeGVjdXRlRXZlbnQgKFNUUklORywgTVdHLkludGVybmFsUGFyYW1ldGVyTGlzdCkiLCAicGFyYW1ldGVyX2Rlc2MiOiAiMS4gYFNUUklOR2A6IHRoZSBuYW1lIG9mIHRoZSBldmVudFxuMi4gYE1XRy5JbnRlcm5hbFBhcmFtZXRlckxpc3RgOiBwYXJhbWV0ZXJzIHRvIHBhc3MgdGhyb3VnaCIsICJkZXNjcmlwdGlvbiI6ICJFeGVjdXRlcyBhbiBldmVudCB3aXRoIHBhcmFtZXRlcnMuIiwgImV4YW1wbGVfY29kZSI6ICIvLyBDcmVhdGUgYW4gaW50ZXJuYWwgcGFyYW1ldGVyIGxpc3Rcbk1XRy5JbnRlcm5hbFBhcmFtZXRlckxpc3QgcGFyYW1zID0gTVdHLkludGVybmFsUGFyYW1ldGVyTGlzdCgpXG5cbi8vIEFkZCBwYXJhbWV0ZXJzIHRvIHRoZSBsaXN0XG5wYXJhbXMuQWRkKFwicGFyYW0xXCIsIFwidmFsdWUxXCIpXG5wYXJhbXMuQWRkKFwicGFyYW0yXCIsIFwidmFsdWUyXCIpXG5cbi8vIERlZmluZSB0aGUgZXZlbnQgbmFtZVxuU1RSSU5HIGV2ZW50TmFtZSA9IFwiQ3VzdG9tRXZlbnRcIlxuXG4vLyBFeGVjdXRlIHRoZSBldmVudCB3aXRoIHRoZSBwYXJhbWV0ZXJzXG5NV0cuRXhlY3V0ZUV2ZW50KGV2ZW50TmFtZSwgcGFyYW1zKVxuXG4vLyBEZWJ1ZyBtZXNzYWdlIHRvIGNvbmZpcm0gZXhlY3V0aW9uXG4vLyBFeGVjdXRlZCBldmVudDogXCIgKyBldmVudE5hbWUgKyBcIiB3aXRoIHBhcmFtZXRlcnM6IFwiICsgcGFyYW1zLlRvU3RyaW5nKCkiLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIi8vIENyZWF0ZSBhbiBpbnRlcm5hbCBwYXJhbWV0ZXIgbGlzdFxuTVdHLkludGVybmFsUGFyYW1ldGVyTGlzdCBwYXJhbXMgPSBNV0cuSW50ZXJuYWxQYXJhbWV0ZXJMaXN0KClcblxuLy8gQWRkIHBhcmFtZXRlcnMgdG8gdGhlIGxpc3RcbnBhcmFtcy5BZGQoXCJwYXJhbTFcIiwgXCJ2YWx1ZTFcIilcbnBhcmFtcy5BZGQoXCJwYXJhbTJcIiwgXCJ2YWx1ZTJcIilcblxuLy8gRGVmaW5lIHRoZSBldmVudCBuYW1lXG5TVFJJTkcgZXZlbnROYW1lID0gXCJDdXN0b21FdmVudFwiXG5cbi8vIEV4ZWN1dGUgdGhlIGV2ZW50IHdpdGggdGhlIHBhcmFtZXRlcnNcbk1XRy5FeGVjdXRlRXZlbnQoZXZlbnROYW1lLCBwYXJhbXMpXG5cbi8vIERlYnVnIG1lc3NhZ2UgdG8gY29uZmlybSBleGVjdXRpb25cbi8vIEV4ZWN1dGVkIGV2ZW50OiBcIiArIGV2ZW50TmFtZSArIFwiIHdpdGggcGFyYW1ldGVyczogXCIgKyBwYXJhbXMuVG9TdHJpbmcoKSJ9LCB7Im5hbWUiOiAiTVdHLkV4aXQgKFNUUklORykiLCAicGFyYW1ldGVyX2Rlc2MiOiAiMS4gYFNUUklOR2A6IHRoZSB2YWx1ZSB0byBiZSBsb2dnZWQgYXMgTVdHLkxhc3RSdWxlLiIsICJkZXNjcmlwdGlvbiI6ICJTdG9wcyB0aGUgY3VycmVudCB0cmlnZ2VyIGFuZCBsb2dzIHRoZSBwYXJhbWV0ZXIgYXMgJ01XRy5MYXN0UnVsZScuIiwgImV4YW1wbGVfY29kZSI6ICIvLyBTb21lIGNvbmRpdGlvbiB0byBjaGVja1xuQk9PTEVBTiBjb25kaXRpb24gPSBUUlVFXG5cbi8vIElmIHRoZSBjb25kaXRpb24gaXMgbWV0LCBleGl0IHRoZSByb3V0aW5lIHdpdGggYSBtZXNzYWdlXG5JRiBjb25kaXRpb24gVEhFTiB7XG4gICAgTVdHLkV4aXQoXCJFeGl0aW5nIHRoZSByb3V0aW5lIGR1ZSB0byB0aGUgY29uZGl0aW9uIGJlaW5nIG1ldC5cIilcbn1cblxuLy8gQWRkaXRpb25hbCBjb2RlIHRoYXQgd29uJ3QgYmUgZXhlY3V0ZWQgaWYgdGhlIGNvbmRpdGlvbiBpcyBUUlVFXG4vLyBUaGlzIGxpbmUgd2lsbCBub3QgYmUgZXhlY3V0ZWQgaWYgdGhlIGNvbmRpdGlvbiBpcyBUUlVFLiIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiLy8gU29tZSBjb25kaXRpb24gdG8gY2hlY2tcbkJPT0xFQU4gY29uZGl0aW9uID0gVFJVRVxuXG4vLyBJZiB0aGUgY29uZGl0aW9uIGlzIG1ldCwgZXhpdCB0aGUgcm91dGluZSB3aXRoIGEgbWVzc2FnZVxuSUYgY29uZGl0aW9uIFRIRU4ge1xuICAgIE1XRy5FeGl0KFwiRXhpdGluZyB0aGUgcm91dGluZSBkdWUgdG8gdGhlIGNvbmRpdGlvbiBiZWluZyBtZXQuXCIpXG59XG5cbi8vIEFkZGl0aW9uYWwgY29kZSB0aGF0IHdvbid0IGJlIGV4ZWN1dGVkIGlmIHRoZSBjb25kaXRpb24gaXMgVFJVRVxuLy8gVGhpcyBsaW5lIHdpbGwgbm90IGJlIGV4ZWN1dGVkIGlmIHRoZSBjb25kaXRpb24gaXMgVFJVRS4ifSwgeyJuYW1lIjogIk1XRy5HZW5lcmF0ZVJlc3BvbnNlIChTVFJJTkcpIiwgInBhcmFtZXRlcl9kZXNjIjogIjEuIGBTVFJJTkdgOiB0aGUgYm9keSBmb3IgdGhlIHJlc3BvbnNlLiIsICJkZXNjcmlwdGlvbiI6ICJHZW5lcmF0ZXMgcmVzcG9uc2UuIiwgImV4YW1wbGVfY29kZSI6ICJTVFJJTkcgcmVzcG9uc2VCb2R5ID0gXCI8aHRtbD48Ym9keT48aDE+QWNjZXNzIERlbmllZDwvaDE+PHA+WW91ciBhY2Nlc3MgdG8gdGhpcyBzaXRlIGhhcyBiZWVuIGJsb2NrZWQgYnkgdGhlIGFkbWluaXN0cmF0b3IuPC9wPjwvYm9keT48L2h0bWw+XCJcblxuLy8gR2VuZXJhdGluZyBjdXN0b20gcmVzcG9uc2UgZm9yIGJsb2NrZWQgYWNjZXNzXG5NV0cuR2VuZXJhdGVSZXNwb25zZShyZXNwb25zZUJvZHkpIiwgInJldmlld2VkIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICJTVFJJTkcgcmVzcG9uc2VCb2R5ID0gXCI8aHRtbD48Ym9keT48aDE+QWNjZXNzIERlbmllZDwvaDE+PHA+WW91ciBhY2Nlc3MgdG8gdGhpcyBzaXRlIGhhcyBiZWVuIGJsb2NrZWQgYnkgdGhlIGFkbWluaXN0cmF0b3IuPC9wPjwvYm9keT48L2h0bWw+XCJcblxuLy8gR2VuZXJhdGluZyBjdXN0b20gcmVzcG9uc2UgZm9yIGJsb2NrZWQgYWNjZXNzXG5NV0cuR2VuZXJhdGVSZXNwb25zZShyZXNwb25zZUJvZHkpIn0sIHsibmFtZSI6ICJNV0cuSUNBUENsaWVudEFkZFJlcXVlc3RIZWFkZXIgKE1XRy5JQ0FQQ2xpZW50U2V0dGluZywgU1RSSU5HLCBTVFJJTkcpIiwgInBhcmFtZXRlcl9kZXNjIjogIjEuIGBNV0cuSUNBUENsaWVudFNldHRpbmdgOiBDb25maWd1cmF0aW9uIHNldHRpbmdzLlxuMi4gYFNUUklOR2A6IFRoZSBuYW1lIG9mIHRoZSBoZWFkZXIgdG8gYWRkLlxuMy4gYFNUUklOR2A6IFRoZSB2YWx1ZSBvZiB0aGUgaGVhZGVyIHRvIGFkZC4iLCAiZGVzY3JpcHRpb24iOiAiQWRkcyBoZWFkZXIgdG8gdGhlIElDQVAgcmVxdWVzdCBoZWFkZXIuIFRoaXMgYXBwbGllcyB0byBSZXFNb2QgYW5kIFJlc3BNb2QuIiwgImV4YW1wbGVfY29kZSI6ICIvLyBEZWZpbmUgdGhlIElDQVAgY2xpZW50IHNldHRpbmdzXG5NV0cuSUNBUENsaWVudFNldHRpbmcgaWNhcFNldHRpbmdzID0gTVdHLklDQVBDbGllbnRTZXR0aW5nKClcblxuLy8gRGVmaW5lIHRoZSBoZWFkZXIgbmFtZSBhbmQgdmFsdWVcblNUUklORyBoZWFkZXJOYW1lID0gXCJYLUN1c3RvbS1IZWFkZXJcIlxuU1RSSU5HIGhlYWRlclZhbHVlID0gXCJDdXN0b21WYWx1ZVwiXG5cbi8vIEFkZCB0aGUgY3VzdG9tIGhlYWRlciB0byB0aGUgSUNBUCByZXF1ZXN0XG5NV0cuSUNBUENsaWVudEFkZFJlcXVlc3RIZWFkZXIoaWNhcFNldHRpbmdzLCBoZWFkZXJOYW1lLCBoZWFkZXJWYWx1ZSlcblxuLy8gQWRkZWQgY3VzdG9tIGhlYWRlciB0byBJQ0FQIHJlcXVlc3Q6IFwiICsgaGVhZGVyTmFtZSArIFwiID0gXCIgKyBoZWFkZXJWYWx1ZSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiLy8gRGVmaW5lIHRoZSBJQ0FQIGNsaWVudCBzZXR0aW5nc1xuTVdHLklDQVBDbGllbnRTZXR0aW5nIGljYXBTZXR0aW5ncyA9IE1XRy5JQ0FQQ2xpZW50U2V0dGluZygpXG5cbi8vIERlZmluZSB0aGUgaGVhZGVyIG5hbWUgYW5kIHZhbHVlXG5TVFJJTkcgaGVhZGVyTmFtZSA9IFwiWC1DdXN0b20tSGVhZGVyXCJcblNUUklORyBoZWFkZXJWYWx1ZSA9IFwiQ3VzdG9tVmFsdWVcIlxuXG4vLyBBZGQgdGhlIGN1c3RvbSBoZWFkZXIgdG8gdGhlIElDQVAgcmVxdWVzdFxuTVdHLklDQVBDbGllbnRBZGRSZXF1ZXN0SGVhZGVyKGljYXBTZXR0aW5ncywgaGVhZGVyTmFtZSwgaGVhZGVyVmFsdWUpXG5cbi8vIEFkZGVkIGN1c3RvbSBoZWFkZXIgdG8gSUNBUCByZXF1ZXN0OiBcIiArIGhlYWRlck5hbWUgKyBcIiA9IFwiICsgaGVhZGVyVmFsdWUifSwgeyJuYW1lIjogIk1XRy5JQ0FQQ2xpZW50QWRkUmVxdWVzdFVSSVBhcmFtZXRlciAoTVdHLklDQVBDbGllbnRTZXR0aW5nLCBTVFJJTkcpIiwgInBhcmFtZXRlcl9kZXNjIjogIjEuIGBNV0cuSUNBUENsaWVudFNldHRpbmdgOiBDb25maWd1cmF0aW9uIHNldHRpbmdzLlxuMi4gYFNUUklOR2A6IFRoZSB2YWx1ZSBvZiB0aGUgcGFyYW1ldGVyIHRvIGFkZC4iLCAiZGVzY3JpcHRpb24iOiAiQWRkcyBhIGtleS12YWx1ZSBwYWlyIHRvIHRoZSBJQ0FQIGZpcnN0IGxpbmUuIiwgImV4YW1wbGVfY29kZSI6ICIvLyBDcmVhdGUgb3IgZ2V0IGFuIGV4aXN0aW5nIElDQVAgY2xpZW50IHNldHRpbmdcbk1XRy5JQ0FQQ2xpZW50U2V0dGluZyBpY2FwU2V0dGluZyA9IE1XRy5JQ0FQQ2xpZW50U2V0dGluZygpXG5cbi8vIERlZmluZSB0aGUgVVJJIHBhcmFtZXRlciB5b3Ugd2FudCB0byBhZGRcblNUUklORyB1cmlQYXJhbWV0ZXIgPSBcImV4YW1wbGVQYXJhbWV0ZXI9dmFsdWVcIlxuXG4vLyBBZGQgdGhlIFVSSSBwYXJhbWV0ZXIgdG8gdGhlIElDQVAgY2xpZW50IHNldHRpbmdcbk1XRy5JQ0FQQ2xpZW50QWRkUmVxdWVzdFVSSVBhcmFtZXRlcihpY2FwU2V0dGluZywgdXJpUGFyYW1ldGVyKVxuXG4vLyBPcHRpb25hbGx5LCBwcmludCBhIGRlYnVnIG1lc3NhZ2UgdG8gY29uZmlybSB0aGUgcGFyYW1ldGVyIHdhcyBhZGRlZFxuLy8gQWRkZWQgVVJJIHBhcmFtZXRlcjogXCIgKyB1cmlQYXJhbWV0ZXIgKyBcIiB0byBJQ0FQIGNsaWVudCBzZXR0aW5nLiIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiLy8gQ3JlYXRlIG9yIGdldCBhbiBleGlzdGluZyBJQ0FQIGNsaWVudCBzZXR0aW5nXG5NV0cuSUNBUENsaWVudFNldHRpbmcgaWNhcFNldHRpbmcgPSBNV0cuSUNBUENsaWVudFNldHRpbmcoKVxuXG4vLyBEZWZpbmUgdGhlIFVSSSBwYXJhbWV0ZXIgeW91IHdhbnQgdG8gYWRkXG5TVFJJTkcgdXJpUGFyYW1ldGVyID0gXCJleGFtcGxlUGFyYW1ldGVyPXZhbHVlXCJcblxuLy8gQWRkIHRoZSBVUkkgcGFyYW1ldGVyIHRvIHRoZSBJQ0FQIGNsaWVudCBzZXR0aW5nXG5NV0cuSUNBUENsaWVudEFkZFJlcXVlc3RVUklQYXJhbWV0ZXIoaWNhcFNldHRpbmcsIHVyaVBhcmFtZXRlcilcblxuLy8gT3B0aW9uYWxseSwgcHJpbnQgYSBkZWJ1ZyBtZXNzYWdlIHRvIGNvbmZpcm0gdGhlIHBhcmFtZXRlciB3YXMgYWRkZWRcbi8vIEFkZGVkIFVSSSBwYXJhbWV0ZXI6IFwiICsgdXJpUGFyYW1ldGVyICsgXCIgdG8gSUNBUCBjbGllbnQgc2V0dGluZy4ifSwgeyJuYW1lIjogIk1XRy5Mb2dnaW5nU2V0U3RvcmFnZVJlZ2lvbiAoTVdHLkxvZ1N0b3JhZ2VSZWdpb25TZXR0aW5nKSIsICJwYXJhbWV0ZXJfZGVzYyI6ICIxLiBgTVdHLkxvZ1N0b3JhZ2VSZWdpb25TZXR0aW5nYDogQ29uZmlndXJhdGlvbiBzZXR0aW5ncy4iLCAiZGVzY3JpcHRpb24iOiAiT3ZlcnJpZGVzIHN0b3JhZ2UgcmVnaW9uIGZvciBhY2Nlc3MgbG9nIGRhdGEuIiwgImV4YW1wbGVfY29kZSI6ICIvLyBDcmVhdGUgYSBuZXcgTG9nU3RvcmFnZVJlZ2lvblNldHRpbmcgb2JqZWN0XG5NV0cuTG9nU3RvcmFnZVJlZ2lvblNldHRpbmcgbG9nU3RvcmFnZVJlZ2lvblNldHRpbmcgPSBNV0cuTG9nU3RvcmFnZVJlZ2lvblNldHRpbmcoKVxuXG4vLyBTZXQgdGhlIGRlc2lyZWQgcmVnaW9uIGZvciBsb2cgc3RvcmFnZVxubG9nU3RvcmFnZVJlZ2lvblNldHRpbmcuUmVnaW9uID0gXCJ1cy13ZXN0LTFcIlxuXG4vLyBBcHBseSB0aGUgbG9nIHN0b3JhZ2UgcmVnaW9uIHNldHRpbmdcbk1XRy5Mb2dnaW5nU2V0U3RvcmFnZVJlZ2lvbihsb2dTdG9yYWdlUmVnaW9uU2V0dGluZylcblxuLy8gRGVidWcgbWVzc2FnZSB0byBjb25maXJtIHRoZSBzZXR0aW5nXG4vLyBMb2cgc3RvcmFnZSByZWdpb24gc2V0IHRvOiBcIiArIGxvZ1N0b3JhZ2VSZWdpb25TZXR0aW5nLlJlZ2lvbiIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiLy8gQ3JlYXRlIGEgbmV3IExvZ1N0b3JhZ2VSZWdpb25TZXR0aW5nIG9iamVjdFxuTVdHLkxvZ1N0b3JhZ2VSZWdpb25TZXR0aW5nIGxvZ1N0b3JhZ2VSZWdpb25TZXR0aW5nID0gTVdHLkxvZ1N0b3JhZ2VSZWdpb25TZXR0aW5nKClcblxuLy8gU2V0IHRoZSBkZXNpcmVkIHJlZ2lvbiBmb3IgbG9nIHN0b3JhZ2VcbmxvZ1N0b3JhZ2VSZWdpb25TZXR0aW5nLlJlZ2lvbiA9IFwidXMtd2VzdC0xXCJcblxuLy8gQXBwbHkgdGhlIGxvZyBzdG9yYWdlIHJlZ2lvbiBzZXR0aW5nXG5NV0cuTG9nZ2luZ1NldFN0b3JhZ2VSZWdpb24obG9nU3RvcmFnZVJlZ2lvblNldHRpbmcpXG5cbi8vIERlYnVnIG1lc3NhZ2UgdG8gY29uZmlybSB0aGUgc2V0dGluZ1xuLy8gTG9nIHN0b3JhZ2UgcmVnaW9uIHNldCB0bzogXCIgKyBsb2dTdG9yYWdlUmVnaW9uU2V0dGluZy5SZWdpb24ifSwgeyJuYW1lIjogIk1XRy5Qcm94eUNvbnRyb2wgKE1XRy5Qcm94eUNvbnRyb2xTZXR0aW5nKSIsICJwYXJhbWV0ZXJfZGVzYyI6ICIxLiBgTVdHLlByb3h5Q29udHJvbFNldHRpbmdgOiBDb25maWd1cmF0aW9uIHNldHRpbmdzIG9iamVjdC4iLCAiZGVzY3JpcHRpb24iOiAiU2V0cyBzcGVjaWFsIHByb3h5IGNvbnRyb2wgc2V0dGluZ3MuIiwgImV4YW1wbGVfY29kZSI6ICJNV0cuUHJveHlDb250cm9sU2V0dGluZyBwcm94eVNldHRpbmcgPSBNV0cuUHJveHlDb250cm9sU2V0dGluZygpXG5cbi8vIENvbmZpZ3VyZSB0aGUgcHJveHkgc2V0dGluZ3MgYXMgbmVlZGVkXG5wcm94eVNldHRpbmcuZW5hYmxlID0gVFJVRVxucHJveHlTZXR0aW5nLnByb3h5QWRkcmVzcyA9IFwicHJveHkuZXhhbXBsZS5jb21cIlxucHJveHlTZXR0aW5nLnByb3h5UG9ydCA9IDgwODBcblxuLy8gQXBwbHkgdGhlIHByb3h5IGNvbnRyb2wgc2V0dGluZ3Ncbk1XRy5Qcm94eUNvbnRyb2wocHJveHlTZXR0aW5nKVxuXG4vLyBQcm94eSBjb250cm9sIHNldHRpbmdzIGFwcGxpZWQ6IHByb3h5LmV4YW1wbGUuY29tOjgwODAiLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIk1XRy5Qcm94eUNvbnRyb2xTZXR0aW5nIHByb3h5U2V0dGluZyA9IE1XRy5Qcm94eUNvbnRyb2xTZXR0aW5nKClcblxuLy8gQ29uZmlndXJlIHRoZSBwcm94eSBzZXR0aW5ncyBhcyBuZWVkZWRcbnByb3h5U2V0dGluZy5lbmFibGUgPSBUUlVFXG5wcm94eVNldHRpbmcucHJveHlBZGRyZXNzID0gXCJwcm94eS5leGFtcGxlLmNvbVwiXG5wcm94eVNldHRpbmcucHJveHlQb3J0ID0gODA4MFxuXG4vLyBBcHBseSB0aGUgcHJveHkgY29udHJvbCBzZXR0aW5nc1xuTVdHLlByb3h5Q29udHJvbChwcm94eVNldHRpbmcpXG5cbi8vIFByb3h5IGNvbnRyb2wgc2V0dGluZ3MgYXBwbGllZDogcHJveHkuZXhhbXBsZS5jb206ODA4MCJ9LCB7Im5hbWUiOiAiTVdHLlJlZGlyZWN0IChTVFJJTkcsIFNUUklORywgU1RSSU5HLCBTVFJJTkcpIiwgInBhcmFtZXRlcl9kZXNjIjogIjEuIGBTVFJJTkdgOiBUaGUgVVJMIHRvIHJlZGlyZWN0IHRvLlxuMi4gYFNUUklOR2A6IFRoZSByZWFzb24gZm9yIGJsb2NraW5nLlxuMy4gYFNUUklOR2A6IFRoZSBydWxlIHRvIHVzZS5cbjQuIGBTVFJJTkdgOiBUaGUgcnVsZSBzZXQgdG8gZ2V0IHRoZSBydWxlIGZyb20uIiwgImRlc2NyaXB0aW9uIjogIlNlbmRzIGEgcmVkaXJlY3QgcmVzcG9uc2UuIiwgImV4YW1wbGVfY29kZSI6ICJTVFJJTkcgbmV3VXJsID0gXCJodHRwOi8vZXhhbXBsZS5jb21cIlxuU1RSSU5HIHJlYXNvbiA9IFwiUmVkaXJlY3RpbmcgdG8gZXhhbXBsZS5jb21cIlxuU1RSSU5HIG1ldGhvZCA9IFwiR0VUXCJcblNUUklORyBoZWFkZXJzID0gXCJVc2VyLUFnZW50OiBNT1dHTElcIlxuXG5NV0cuUmVkaXJlY3QobmV3VXJsLCByZWFzb24sIG1ldGhvZCwgaGVhZGVycykiLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIlNUUklORyBuZXdVcmwgPSBcImh0dHA6Ly9leGFtcGxlLmNvbVwiXG5TVFJJTkcgcmVhc29uID0gXCJSZWRpcmVjdGluZyB0byBleGFtcGxlLmNvbVwiXG5TVFJJTkcgbWV0aG9kID0gXCJHRVRcIlxuU1RSSU5HIGhlYWRlcnMgPSBcIlVzZXItQWdlbnQ6IE1PV0dMSVwiXG5cbk1XRy5SZWRpcmVjdChuZXdVcmwsIHJlYXNvbiwgbWV0aG9kLCBoZWFkZXJzKSJ9LCB7Im5hbWUiOiAiTVdHLlJlbW92ZSAoTVdHLkhlYWRlck1hcCwgU1RSSU5HKSIsICJwYXJhbWV0ZXJfZGVzYyI6ICIxLiBgTVdHLkhlYWRlck1hcGA6IFRoZSBtYXAgb2YgaGVhZGVycyB0byByZW1vdmUgZnJvbS5cbjIuIGBTVFJJTkdgOiBUaGUga2V5IG9mIHRoZSBoZWFkZXIgdG8gcmVtb3ZlLiIsICJkZXNjcmlwdGlvbiI6ICJSZW1vdmVzIGVudHJpZXMgZnJvbSBhIEhUVFAoUykgaGVhZGVyIG1hcC4iLCAiZXhhbXBsZV9jb2RlIjogIi8vIEFzc3VtZSB3ZSBoYXZlIGEgaGVhZGVyIG1hcCBuYW1lZCAnaGVhZGVycydcbk1XRy5IZWFkZXJNYXAgaGVhZGVycyA9IE1XRy5HZXRSZXF1ZXN0SGVhZGVycygpXG5cbi8vIFRoZSBuYW1lIG9mIHRoZSBoZWFkZXIgd2Ugd2FudCB0byByZW1vdmVcblNUUklORyBoZWFkZXJUb1JlbW92ZSA9IFwiWC1FeGFtcGxlLUhlYWRlclwiXG5cbi8vIFJlbW92ZSB0aGUgc3BlY2lmaWVkIGhlYWRlciBmcm9tIHRoZSBoZWFkZXIgbWFwXG5NV0cuUmVtb3ZlKGhlYWRlcnMsIGhlYWRlclRvUmVtb3ZlKVxuXG4vLyBPcHRpb25hbGx5LCBwcmludCB0aGUgcmVtYWluaW5nIGhlYWRlcnMgdG8gdGhlIGNvbnNvbGUgZm9yIGRlYnVnZ2luZ1xuLy8gUmVtYWluaW5nIGhlYWRlcnM6IFwiICsgaGVhZGVycy5Ub1N0cmluZygpIiwgInJldmlld2VkIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICIvLyBBc3N1bWUgd2UgaGF2ZSBhIGhlYWRlciBtYXAgbmFtZWQgJ2hlYWRlcnMnXG5NV0cuSGVhZGVyTWFwIGhlYWRlcnMgPSBNV0cuR2V0UmVxdWVzdEhlYWRlcnMoKVxuXG4vLyBUaGUgbmFtZSBvZiB0aGUgaGVhZGVyIHdlIHdhbnQgdG8gcmVtb3ZlXG5TVFJJTkcgaGVhZGVyVG9SZW1vdmUgPSBcIlgtRXhhbXBsZS1IZWFkZXJcIlxuXG4vLyBSZW1vdmUgdGhlIHNwZWNpZmllZCBoZWFkZXIgZnJvbSB0aGUgaGVhZGVyIG1hcFxuTVdHLlJlbW92ZShoZWFkZXJzLCBoZWFkZXJUb1JlbW92ZSlcblxuLy8gT3B0aW9uYWxseSwgcHJpbnQgdGhlIHJlbWFpbmluZyBoZWFkZXJzIHRvIHRoZSBjb25zb2xlIGZvciBkZWJ1Z2dpbmdcbi8vIFJlbWFpbmluZyBoZWFkZXJzOiBcIiArIGhlYWRlcnMuVG9TdHJpbmcoKSJ9LCB7Im5hbWUiOiAiTVdHLlJlbW92ZUFsbCAoTVdHLkhlYWRlck1hcCkiLCAicGFyYW1ldGVyX2Rlc2MiOiAiMS4gYE1XRy5IZWFkZXJNYXBgOiBUaGUgbWFwIG9mIGhlYWRlcnMgdG8gcmVtb3ZlIGZyb20uIiwgImRlc2NyaXB0aW9uIjogIlJlbW92ZXMgYWxsIGVudHJpZXMgb2YgZ2l2ZW4gaGVhZGVyLiIsICJleGFtcGxlX2NvZGUiOiAiTVdHLkhlYWRlck1hcCBoZWFkZXJzID0gTVdHLkdldFJlcXVlc3RIZWFkZXJzKClcbk1XRy5SZW1vdmVBbGwoaGVhZGVycylcbi8vIEFsbCBoZWFkZXJzIGhhdmUgYmVlbiByZW1vdmVkIGZyb20gdGhlIHJlcXVlc3QuIiwgInJldmlld2VkIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICJNV0cuSGVhZGVyTWFwIGhlYWRlcnMgPSBNV0cuR2V0UmVxdWVzdEhlYWRlcnMoKVxuTVdHLlJlbW92ZUFsbChoZWFkZXJzKVxuLy8gQWxsIGhlYWRlcnMgaGF2ZSBiZWVuIHJlbW92ZWQgZnJvbSB0aGUgcmVxdWVzdC4ifSwgeyJuYW1lIjogIk1XRy5SZW1vdmVBbGxNYXRjaGluZyAoTVdHLkhlYWRlck1hcCwgUmVnRXhKU2kpIiwgInBhcmFtZXRlcl9kZXNjIjogIjEuIGBNV0cuSGVhZGVyTWFwYDogVGhlIG1hcCBvZiBoZWFkZXJzIHRvIHJlbW92ZSBmcm9tLlxuMi4gYFJlZ0V4SlNpYDogVGhlIHJlZ3VsYXIgZXhwcmVzc2lvbiB0byBtYXRjaCB0byBoZWFkZXIga2V5cy4iLCAiZGVzY3JpcHRpb24iOiAiUmVtb3ZlcyBhbGwgZW50cmllcyBvZiBnaXZlbiBoZWFkZXIgbWF0Y2hpbmcgdGhlIHJlZ3VsYXIgZXhwcmVzc2lvbi4iLCAiZXhhbXBsZV9jb2RlIjogIi8vIEFzc3VtZSBoZWFkZXJzIGlzIGFuIE1XRy5IZWFkZXJNYXAgb2JqZWN0IGNvbnRhaW5pbmcgdGhlIHJlcXVlc3QgaGVhZGVyc1xuTVdHLkhlYWRlck1hcCBoZWFkZXJzID0gTVdHLkdldFJlcXVlc3RIZWFkZXJzKClcblxuLy8gRGVmaW5lIHRoZSBoZWFkZXIga2V5IGFuZCB0aGUgcmVndWxhciBleHByZXNzaW9uIHRvIG1hdGNoXG5TVFJJTkcgaGVhZGVyS2V5ID0gXCJVc2VyLUFnZW50XCJcblJlZ0V4SlNpIHJlZ2V4ID0gUmVnRXhKU2kuQ3JlYXRlKFwiLipib3QuKlwiKVxuXG4vLyBSZW1vdmUgYWxsIGhlYWRlcnMgbWF0Y2hpbmcgdGhlIHJlZ3VsYXIgZXhwcmVzc2lvblxuTVdHLlJlbW92ZUFsbE1hdGNoaW5nKGhlYWRlcnMsIGhlYWRlcktleSwgcmVnZXgpXG5cbi8vIE9wdGlvbmFsbHksIHNldCB0aGUgbW9kaWZpZWQgaGVhZGVycyBiYWNrIHRvIHRoZSByZXF1ZXN0XG5NV0cuU2V0UmVxdWVzdEhlYWRlcnMoaGVhZGVycylcblxuLy8gUmVtb3ZlZCBtYXRjaGluZyBoZWFkZXJzIGZyb20gVXNlci1BZ2VudCIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiLy8gQXNzdW1lIGhlYWRlcnMgaXMgYW4gTVdHLkhlYWRlck1hcCBvYmplY3QgY29udGFpbmluZyB0aGUgcmVxdWVzdCBoZWFkZXJzXG5NV0cuSGVhZGVyTWFwIGhlYWRlcnMgPSBNV0cuR2V0UmVxdWVzdEhlYWRlcnMoKVxuXG4vLyBEZWZpbmUgdGhlIGhlYWRlciBrZXkgYW5kIHRoZSByZWd1bGFyIGV4cHJlc3Npb24gdG8gbWF0Y2hcblNUUklORyBoZWFkZXJLZXkgPSBcIlVzZXItQWdlbnRcIlxuUmVnRXhKU2kgcmVnZXggPSBSZWdFeEpTaS5DcmVhdGUoXCIuKmJvdC4qXCIpXG5cbi8vIFJlbW92ZSBhbGwgaGVhZGVycyBtYXRjaGluZyB0aGUgcmVndWxhciBleHByZXNzaW9uXG5NV0cuUmVtb3ZlQWxsTWF0Y2hpbmcoaGVhZGVycywgaGVhZGVyS2V5LCByZWdleClcblxuLy8gT3B0aW9uYWxseSwgc2V0IHRoZSBtb2RpZmllZCBoZWFkZXJzIGJhY2sgdG8gdGhlIHJlcXVlc3Rcbk1XRy5TZXRSZXF1ZXN0SGVhZGVycyhoZWFkZXJzKVxuXG4vLyBSZW1vdmVkIG1hdGNoaW5nIGhlYWRlcnMgZnJvbSBVc2VyLUFnZW50In0sIHsibmFtZSI6ICJNV0cuUmVtb3ZlQWxsTWF0Y2hpbmcgKE1XRy5IZWFkZXJNYXAsIFNUUklORywgUmVnRXhKU2kpIiwgInBhcmFtZXRlcl9kZXNjIjogIjEuIGBNV0cuSGVhZGVyTWFwYDogVGhlIG1hcCBvZiBoZWFkZXJzIHRvIHJlbW92ZSBmcm9tLlxuMi4gYFNUUklOR2A6IFRoZSBrZXkgb2YgdGhlIGhlYWRlciB0byByZW1vdmUgZnJvbS5cbjMuIGBSZWdFeEpTaWA6IFRoZSByZWd1bGFyIGV4cHJlc3Npb24gdG8gbWF0Y2ggdG8gdGhlIHZhbHVlIG9mIHRoZSBzcGVjaWZpZWQgaGVhZGVyLiIsICJkZXNjcmlwdGlvbiI6ICJSZW1vdmVzIGFsbCBlbnRyaWVzIG9mIGdpdmVuIGhlYWRlciB3aXRoIHRoZSB2YWx1ZSBtYXRjaGluZyB0aGUgcmVndWxhciBleHByZXNzaW9uLiIsICJleGFtcGxlX2NvZGUiOiAiLy8gQXNzdW1lIHdlIGhhdmUgYSBoZWFkZXIgbWFwIGZyb20gdGhlIHdlYiByZXF1ZXN0XG5NV0cuSGVhZGVyTWFwIGhlYWRlcnMgPSBNV0cuR2V0UmVxdWVzdEhlYWRlcnMoKVxuXG4vLyBEZWZpbmUgdGhlIGhlYWRlciBrZXkgd2Ugd2FudCB0byB0YXJnZXRcblNUUklORyBoZWFkZXJLZXkgPSBcIlgtQ3VzdG9tLUhlYWRlclwiXG5cbi8vIERlZmluZSB0aGUgcmVndWxhciBleHByZXNzaW9uIHRvIG1hdGNoIHRoZSBoZWFkZXIgdmFsdWVzIHdlIHdhbnQgdG8gcmVtb3ZlXG5SZWdFeEpTaSByZWdleCA9IFJlZ0V4SlNpKFwiLipzZW5zaXRpdmUuKlwiKVxuXG4vLyBSZW1vdmUgYWxsIG1hdGNoaW5nIGhlYWRlcnNcbk1XRy5SZW1vdmVBbGxNYXRjaGluZyhoZWFkZXJzLCBoZWFkZXJLZXksIHJlZ2V4KVxuXG4vLyBPcHRpb25hbGx5LCBwcmludCB0aGUgcmVtYWluaW5nIGhlYWRlcnMgdG8gdGhlIGNvbnNvbGUgZm9yIGRlYnVnZ2luZ1xuLy8gUmVtYWluaW5nIEhlYWRlcnM6IFwiICsgaGVhZGVycy5Ub1N0cmluZygpIiwgInJldmlld2VkIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICIvLyBBc3N1bWUgd2UgaGF2ZSBhIGhlYWRlciBtYXAgZnJvbSB0aGUgd2ViIHJlcXVlc3Rcbk1XRy5IZWFkZXJNYXAgaGVhZGVycyA9IE1XRy5HZXRSZXF1ZXN0SGVhZGVycygpXG5cbi8vIERlZmluZSB0aGUgaGVhZGVyIGtleSB3ZSB3YW50IHRvIHRhcmdldFxuU1RSSU5HIGhlYWRlcktleSA9IFwiWC1DdXN0b20tSGVhZGVyXCJcblxuLy8gRGVmaW5lIHRoZSByZWd1bGFyIGV4cHJlc3Npb24gdG8gbWF0Y2ggdGhlIGhlYWRlciB2YWx1ZXMgd2Ugd2FudCB0byByZW1vdmVcblJlZ0V4SlNpIHJlZ2V4ID0gUmVnRXhKU2koXCIuKnNlbnNpdGl2ZS4qXCIpXG5cbi8vIFJlbW92ZSBhbGwgbWF0Y2hpbmcgaGVhZGVyc1xuTVdHLlJlbW92ZUFsbE1hdGNoaW5nKGhlYWRlcnMsIGhlYWRlcktleSwgcmVnZXgpXG5cbi8vIE9wdGlvbmFsbHksIHByaW50IHRoZSByZW1haW5pbmcgaGVhZGVycyB0byB0aGUgY29uc29sZSBmb3IgZGVidWdnaW5nXG4vLyBSZW1haW5pbmcgSGVhZGVyczogXCIgKyBoZWFkZXJzLlRvU3RyaW5nKCkifSwgeyJuYW1lIjogIk1XRy5SZW1vdmVBbGxTdGFydFdpdGggKE1XRy5IZWFkZXJNYXAsIFNUUklORykiLCAicGFyYW1ldGVyX2Rlc2MiOiAiMS4gYE1XRy5IZWFkZXJNYXBgOiBUaGUgbWFwIG9mIGhlYWRlcnMgdG8gcmVtb3ZlIGZyb20uXG4yLiBgU1RSSU5HYDogVGhlIHByZWZpeCBvZiBrZXlzIHRvIHJlbW92ZS4iLCAiZGVzY3JpcHRpb24iOiAiUmVtb3ZlcyBhbGwgZW50cmllcyBvZiBnaXZlbiBoZWFkZXIgd2hlcmUgdGhlIGhlYWRlciBuYW1lIHN0YXJ0cyB3aXRoIGdpdmVuIHN0cmluZy4iLCAiZXhhbXBsZV9jb2RlIjogIi8vIEFzc3VtZSBoZWFkZXJzIGlzIGFuIE1XRy5IZWFkZXJNYXAgb2JqZWN0IHJlcHJlc2VudGluZyB0aGUgSFRUUCBoZWFkZXJzIG9mIHRoZSByZXF1ZXN0XG5NV0cuSGVhZGVyTWFwIGhlYWRlcnMgPSBNV0cuR2V0UmVxdWVzdEhlYWRlcnMoKVxuXG4vLyBSZW1vdmUgYWxsIGhlYWRlcnMgdGhhdCBzdGFydCB3aXRoIFwiWC1DdXN0b20tXCJcbk1XRy5SZW1vdmVBbGxTdGFydFdpdGgoaGVhZGVycywgXCJYLUN1c3RvbS1cIilcblxuLy8gT3B0aW9uYWxseSwgc2V0IHRoZSBtb2RpZmllZCBoZWFkZXJzIGJhY2sgdG8gdGhlIHJlcXVlc3Rcbk1XRy5TZXRSZXF1ZXN0SGVhZGVycyhoZWFkZXJzKVxuXG4vLyBDdXN0b20gaGVhZGVycyByZW1vdmVkIGZyb20gdGhlIHJlcXVlc3QiLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIi8vIEFzc3VtZSBoZWFkZXJzIGlzIGFuIE1XRy5IZWFkZXJNYXAgb2JqZWN0IHJlcHJlc2VudGluZyB0aGUgSFRUUCBoZWFkZXJzIG9mIHRoZSByZXF1ZXN0XG5NV0cuSGVhZGVyTWFwIGhlYWRlcnMgPSBNV0cuR2V0UmVxdWVzdEhlYWRlcnMoKVxuXG4vLyBSZW1vdmUgYWxsIGhlYWRlcnMgdGhhdCBzdGFydCB3aXRoIFwiWC1DdXN0b20tXCJcbk1XRy5SZW1vdmVBbGxTdGFydFdpdGgoaGVhZGVycywgXCJYLUN1c3RvbS1cIilcblxuLy8gT3B0aW9uYWxseSwgc2V0IHRoZSBtb2RpZmllZCBoZWFkZXJzIGJhY2sgdG8gdGhlIHJlcXVlc3Rcbk1XRy5TZXRSZXF1ZXN0SGVhZGVycyhoZWFkZXJzKVxuXG4vLyBDdXN0b20gaGVhZGVycyByZW1vdmVkIGZyb20gdGhlIHJlcXVlc3QifSwgeyJuYW1lIjogIk1XRy5SZW1vdmVCb2R5ICgpIiwgInBhcmFtZXRlcl9kZXNjIjogIipOL0EqIiwgImRlc2NyaXB0aW9uIjogIlJlbW92ZXMgcmVzcG9uc2UgYm9keS4iLCAiZXhhbXBsZV9jb2RlIjogIi8vIExvZyB0aGUgYWN0aW9uIGZvciBkZWJ1Z2dpbmcgcHVycG9zZXNcbi8vIFwiUmVtb3ZpbmcgdGhlIGJvZHkgb2YgdGhlIHJlc3BvbnNlXCJcblxuLy8gUmVtb3ZlIHRoZSBib2R5IG9mIHRoZSByZXNwb25zZVxuTVdHLlJlbW92ZUJvZHkoKSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiLy8gTG9nIHRoZSBhY3Rpb24gZm9yIGRlYnVnZ2luZyBwdXJwb3Nlc1xuLy8gXCJSZW1vdmluZyB0aGUgYm9keSBvZiB0aGUgcmVzcG9uc2VcIlxuXG4vLyBSZW1vdmUgdGhlIGJvZHkgb2YgdGhlIHJlc3BvbnNlXG5NV0cuUmVtb3ZlQm9keSgpIn0sIHsibmFtZSI6ICJNV0cuU2V0IChNV0cuVVJMLCBTVFJJTkcpIiwgInBhcmFtZXRlcl9kZXNjIjogIjEuIGBNV0cuVVJMYDogVGhlIFVSTCBvYmplY3QgdG8gbW9kaWZ5LlxuMi4gYFNUUklOR2A6IFRoZSB2YWx1ZSB0byByZXBsYWNlIGl0IHdpdGguIiwgImRlc2NyaXB0aW9uIjogIlNldHMgdGhlIHZhbHVlIG9mIGEgVVJMLiIsICJleGFtcGxlX2NvZGUiOiAiTVdHLlVSTCBjdXJyZW50VXJsID0gTVdHLlVybCgpXG4vLyBPcmlnaW5hbCBVUkw6IFwiICsgY3VycmVudFVybFxuXG5TVFJJTkcgbmV3VXJsID0gXCJodHRwczovL3d3dy5leGFtcGxlLmNvbVwiXG5NV0cuU2V0UmF3KGN1cnJlbnRVcmwsIG5ld1VybClcbi8vIE1vZGlmaWVkIFVSTDogXCIgKyBjdXJyZW50VXJsIiwgInJldmlld2VkIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICJNV0cuVVJMIGN1cnJlbnRVcmwgPSBNV0cuVXJsKClcbi8vIE9yaWdpbmFsIFVSTDogXCIgKyBjdXJyZW50VXJsXG5cblNUUklORyBuZXdVcmwgPSBcImh0dHBzOi8vd3d3LmV4YW1wbGUuY29tXCJcbk1XRy5TZXRSYXcoY3VycmVudFVybCwgbmV3VXJsKVxuLy8gTW9kaWZpZWQgVVJMOiBcIiArIGN1cnJlbnRVcmwifSwgeyJuYW1lIjogIk1XRy5TZXRBcHBsaWNhdGlvbkFjdGl2aXR5IChTVFJJTkcpIiwgInBhcmFtZXRlcl9kZXNjIjogIjEuIGBTVFJJTkdgOiB0aGUgbmFtZSBvZiB0aGUgYWN0aXZpdHkuIiwgImRlc2NyaXB0aW9uIjogIlNldHMgdGhlIGFwcGxpY2F0aW9uIGFjdGl2aXR5LiIsICJleGFtcGxlX2NvZGUiOiAiTVdHLlVSTCBjdXJyZW50VXJsID0gTVdHLlVybCgpXG5TVFJJTkcgdXJsU3RyaW5nID0gY3VycmVudFVybC5Ub1N0cmluZygpXG5cbklGIHVybFN0cmluZyBDT05UQUlOUyBcInNvY2lhbG1lZGlhLmNvbVwiIFRIRU4ge1xuICAgIE1XRy5TZXRBcHBsaWNhdGlvbkFjdGl2aXR5KFwiQnJvd3NpbmcgU29jaWFsIE1lZGlhXCIpXG59IEVMU0UgSUYgdXJsU3RyaW5nIENPTlRBSU5TIFwid29ya3BvcnRhbC5jb21cIiBUSEVOIHtcbiAgICBNV0cuU2V0QXBwbGljYXRpb25BY3Rpdml0eShcIkFjY2Vzc2luZyBXb3JrIFBvcnRhbFwiKVxufSBFTFNFIHtcbiAgICBNV0cuU2V0QXBwbGljYXRpb25BY3Rpdml0eShcIkdlbmVyYWwgQnJvd3NpbmdcIilcbn0iLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIk1XRy5VUkwgY3VycmVudFVybCA9IE1XRy5VcmwoKVxuU1RSSU5HIHVybFN0cmluZyA9IGN1cnJlbnRVcmwuVG9TdHJpbmcoKVxuXG5JRiB1cmxTdHJpbmcgQ09OVEFJTlMgXCJzb2NpYWxtZWRpYS5jb21cIiBUSEVOIHtcbiAgICBNV0cuU2V0QXBwbGljYXRpb25BY3Rpdml0eShcIkJyb3dzaW5nIFNvY2lhbCBNZWRpYVwiKVxufSBFTFNFIElGIHVybFN0cmluZyBDT05UQUlOUyBcIndvcmtwb3J0YWwuY29tXCIgVEhFTiB7XG4gICAgTVdHLlNldEFwcGxpY2F0aW9uQWN0aXZpdHkoXCJBY2Nlc3NpbmcgV29yayBQb3J0YWxcIilcbn0gRUxTRSB7XG4gICAgTVdHLlNldEFwcGxpY2F0aW9uQWN0aXZpdHkoXCJHZW5lcmFsIEJyb3dzaW5nXCIpXG59In0sIHsibmFtZSI6ICJNV0cuU2V0Qm9keSAoTVdHLlJlcXVlc3RSZXNwb25zZSwgREFUQVJFRikiLCAicGFyYW1ldGVyX2Rlc2MiOiAiMS4gYE1XRy5SZXF1ZXN0UmVzcG9uc2VgOiBUaGUgcmVxdWVzdCByZXNwb25zZSBvYmplY3QgdG8gbW9kaWZ5LlxuMi4gYERBVEFSRUZgOiBUaGUgdmFsdWUgdG8gY2hhbmdlIHRoZSBib2R5IHRvLiIsICJkZXNjcmlwdGlvbiI6ICJTZXRzIHRoZSBib2R5IG9mIGEgcmVxdWVzdCByZXNwb25zZSBvYmplY3Qgd2l0aCBhIERhdGFSZWYuIiwgImV4YW1wbGVfY29kZSI6ICIvLyBDcmVhdGUgYSBuZXcgcmVzcG9uc2Ugb2JqZWN0XG5NV0cuUmVxdWVzdFJlc3BvbnNlIHJlc3BvbnNlID0gTVdHLlJlcXVlc3RSZXNwb25zZSgpXG5cbi8vIERlZmluZSB0aGUgbmV3IGJvZHkgY29udGVudFxuU1RSSU5HIG5ld0JvZHlDb250ZW50ID0gXCI8aHRtbD48Ym9keT48aDE+QWNjZXNzIERlbmllZDwvaDE+PHA+WW91ciBhY2Nlc3MgdG8gdGhpcyBzaXRlIGhhcyBiZWVuIGJsb2NrZWQuPC9wPjwvYm9keT48L2h0bWw+XCJcblxuLy8gQ29udmVydCB0aGUgU1RSSU5HIHRvIGEgREFUQVJFRlxuREFUQVJFRiBuZXdCb2R5RGF0YVJlZiA9IERBVEFSRUYobmV3Qm9keUNvbnRlbnQpXG5cbi8vIFNldCB0aGUgbmV3IGJvZHkgY29udGVudCB0byB0aGUgcmVzcG9uc2Ugb2JqZWN0XG5NV0cuU2V0Qm9keShyZXNwb25zZSwgbmV3Qm9keURhdGFSZWYpXG5cbi8vIEJsb2NrIHRoZSBjb25uZWN0aW9uIGFuZCBkaXNwbGF5IHRoZSBtb2RpZmllZCByZXNwb25zZVxuTVdHLkJsb2NrKFwiQ3VzdG9tIEJsb2NrIFBhZ2VcIikiLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIi8vIENyZWF0ZSBhIG5ldyByZXNwb25zZSBvYmplY3Rcbk1XRy5SZXF1ZXN0UmVzcG9uc2UgcmVzcG9uc2UgPSBNV0cuUmVxdWVzdFJlc3BvbnNlKClcblxuLy8gRGVmaW5lIHRoZSBuZXcgYm9keSBjb250ZW50XG5TVFJJTkcgbmV3Qm9keUNvbnRlbnQgPSBcIjxodG1sPjxib2R5PjxoMT5BY2Nlc3MgRGVuaWVkPC9oMT48cD5Zb3VyIGFjY2VzcyB0byB0aGlzIHNpdGUgaGFzIGJlZW4gYmxvY2tlZC48L3A+PC9ib2R5PjwvaHRtbD5cIlxuXG4vLyBDb252ZXJ0IHRoZSBTVFJJTkcgdG8gYSBEQVRBUkVGXG5EQVRBUkVGIG5ld0JvZHlEYXRhUmVmID0gREFUQVJFRihuZXdCb2R5Q29udGVudClcblxuLy8gU2V0IHRoZSBuZXcgYm9keSBjb250ZW50IHRvIHRoZSByZXNwb25zZSBvYmplY3Rcbk1XRy5TZXRCb2R5KHJlc3BvbnNlLCBuZXdCb2R5RGF0YVJlZilcblxuLy8gQmxvY2sgdGhlIGNvbm5lY3Rpb24gYW5kIGRpc3BsYXkgdGhlIG1vZGlmaWVkIHJlc3BvbnNlXG5NV0cuQmxvY2soXCJDdXN0b20gQmxvY2sgUGFnZVwiKSJ9LCB7Im5hbWUiOiAiTVdHLlNldENsaWVudElQIChOZXQuSVApIiwgInBhcmFtZXRlcl9kZXNjIjogIjEuIGBOZXQuSVBgOiB0aGUgaXAgYWRkcmVzcyB0byBzZXQiLCAiZGVzY3JpcHRpb24iOiAiU2V0cyB0aGUgY2xpZW50IElQIGFkZHJlc3MuIiwgImV4YW1wbGVfY29kZSI6ICJOZXQuSVAgbmV3Q2xpZW50SVAgPSBcIjE5Mi4xNjguMS4xMDBcIlxuTVdHLlNldENsaWVudElQKG5ld0NsaWVudElQKVxuLy8gQ2xpZW50IElQIGhhcyBiZWVuIHNldCB0bzogMTkyLjE2OC4xLjEwMCIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiTmV0LklQIG5ld0NsaWVudElQID0gXCIxOTIuMTY4LjEuMTAwXCJcbk1XRy5TZXRDbGllbnRJUChuZXdDbGllbnRJUClcbi8vIENsaWVudCBJUCBoYXMgYmVlbiBzZXQgdG86IDE5Mi4xNjguMS4xMDAifSwgeyJuYW1lIjogIk1XRy5TZXRDb21tYW5kTmFtZSAoU1RSSU5HKSIsICJwYXJhbWV0ZXJfZGVzYyI6ICIxLiBgU1RSSU5HYDogdGhlIG5hbWUgb2YgdGhlIGNvbW1hbmQuIiwgImRlc2NyaXB0aW9uIjogIkRlZmluZXMgdGhlIEhUVFAgY29tbWFuZCBuYW1lLiBVc2FibGUgZHVyaW5nIFdlYi5SZXF1ZXN0IHRyaWdnZXIuIiwgImV4YW1wbGVfY29kZSI6ICJTVFJJTkcgY29tbWFuZE5hbWUgPSBcIkN1c3RvbUNvbW1hbmRcIlxuTVdHLlNldENvbW1hbmROYW1lKGNvbW1hbmROYW1lKVxuLy8gVGhlIGNvbW1hbmQgbmFtZSBoYXMgYmVlbiBzZXQgdG86IEN1c3RvbUNvbW1hbmQiLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIlNUUklORyBjb21tYW5kTmFtZSA9IFwiQ3VzdG9tQ29tbWFuZFwiXG5NV0cuU2V0Q29tbWFuZE5hbWUoY29tbWFuZE5hbWUpXG4vLyBUaGUgY29tbWFuZCBuYW1lIGhhcyBiZWVuIHNldCB0bzogQ3VzdG9tQ29tbWFuZCJ9LCB7Im5hbWUiOiAiTVdHLlNldEVuZHVzZXJNZXNzYWdlTGFuZ3VhZ2UgKFNUUklORykiLCAicGFyYW1ldGVyX2Rlc2MiOiAiMS4gYFNUUklOR2A6IHRoZSBsYW5ndWFnZSB0byBzcGVjaWZ5LiIsICJkZXNjcmlwdGlvbiI6ICJTZXRzIGEgc2hvcnQgc3RyaW5nIChpLmUuIGVuLCBkZSwgamEpIHNwZWNpZnlpbmcgdGhlIGxhbmd1YWdlIGZvciBhIGJsb2NrIG1lc3NhZ2UuIiwgImV4YW1wbGVfY29kZSI6ICJTVFJJTkcgdXNlckxhbmd1YWdlID0gXCJlblwiIC8vIFNldCB0aGUgZGVzaXJlZCBsYW5ndWFnZSBjb2RlLCBlLmcuLCBcImVuXCIgZm9yIEVuZ2xpc2gsIFwiZXNcIiBmb3IgU3BhbmlzaCwgZXRjLlxuXG5NV0cuU2V0RW5kdXNlck1lc3NhZ2VMYW5ndWFnZSh1c2VyTGFuZ3VhZ2UpXG5cbi8vIEVuZC11c2VyIG1lc3NhZ2UgbGFuZ3VhZ2Ugc2V0IHRvOiBcIiArIHVzZXJMYW5ndWFnZVxuXG4vLyBBZGRpdGlvbmFsIGxvZ2ljIGNhbiBiZSBhZGRlZCBoZXJlIiwgInJldmlld2VkIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICJTVFJJTkcgdXNlckxhbmd1YWdlID0gXCJlblwiIC8vIFNldCB0aGUgZGVzaXJlZCBsYW5ndWFnZSBjb2RlLCBlLmcuLCBcImVuXCIgZm9yIEVuZ2xpc2gsIFwiZXNcIiBmb3IgU3BhbmlzaCwgZXRjLlxuXG5NV0cuU2V0RW5kdXNlck1lc3NhZ2VMYW5ndWFnZSh1c2VyTGFuZ3VhZ2UpXG5cbi8vIEVuZC11c2VyIG1lc3NhZ2UgbGFuZ3VhZ2Ugc2V0IHRvOiBcIiArIHVzZXJMYW5ndWFnZVxuXG4vLyBBZGRpdGlvbmFsIGxvZ2ljIGNhbiBiZSBhZGRlZCBoZXJlIn0sIHsibmFtZSI6ICJNV0cuU2V0SG9zdCAoTVdHLlVSTCwgU1RSSU5HKSIsICJwYXJhbWV0ZXJfZGVzYyI6ICIxLiBgTVdHLlVSTGA6IFRoZSB1cmwgb2JqZWN0IHRvIG1vZGlmeS5cbjIuIGBTVFJJTkdgOiBUaGUgaG9zdCB0byB1c2UuIiwgImRlc2NyaXB0aW9uIjogIlNldHMgdGhlIGhvc3Qgb2YgYSBVUkwuIiwgImV4YW1wbGVfY29kZSI6ICIvLyBHZXQgdGhlIGN1cnJlbnQgVVJMXG5NV0cuVVJMIGN1cnJlbnRVcmwgPSBNV0cuVXJsKClcblxuLy8gRGVmaW5lIHRoZSBuZXcgaG9zdFxuU1RSSU5HIG5ld0hvc3QgPSBcIm5ld2hvc3QuZXhhbXBsZS5jb21cIlxuXG4vLyBTZXQgdGhlIGhvc3Qgb2YgdGhlIGN1cnJlbnQgVVJMIHRvIHRoZSBuZXcgaG9zdFxuTVdHLlNldEhvc3QoY3VycmVudFVybCwgbmV3SG9zdClcblxuLy8gVGhlIGhvc3Qgb2YgdGhlIFVSTCBoYXMgYmVlbiBjaGFuZ2VkIHRvOiBuZXdIb3N0XG5cbi8vIEFsbG93IHRoZSBtb2RpZmllZCByZXF1ZXN0IHRvIHByb2NlZWRcbk1XRy5BbGxvdyhcIkhvc3QgbW9kaWZpZWQgc3VjY2Vzc2Z1bGx5XCIpIiwgInJldmlld2VkIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICIvLyBHZXQgdGhlIGN1cnJlbnQgVVJMXG5NV0cuVVJMIGN1cnJlbnRVcmwgPSBNV0cuVXJsKClcblxuLy8gRGVmaW5lIHRoZSBuZXcgaG9zdFxuU1RSSU5HIG5ld0hvc3QgPSBcIm5ld2hvc3QuZXhhbXBsZS5jb21cIlxuXG4vLyBTZXQgdGhlIGhvc3Qgb2YgdGhlIGN1cnJlbnQgVVJMIHRvIHRoZSBuZXcgaG9zdFxuTVdHLlNldEhvc3QoY3VycmVudFVybCwgbmV3SG9zdClcblxuLy8gVGhlIGhvc3Qgb2YgdGhlIFVSTCBoYXMgYmVlbiBjaGFuZ2VkIHRvOiBuZXdIb3N0XG5cbi8vIEFsbG93IHRoZSBtb2RpZmllZCByZXF1ZXN0IHRvIHByb2NlZWRcbk1XRy5BbGxvdyhcIkhvc3QgbW9kaWZpZWQgc3VjY2Vzc2Z1bGx5XCIpIn0sIHsibmFtZSI6ICJNV0cuU2V0SFRUUFN0YXR1c0NvZGUgKE5VTUJFUikiLCAicGFyYW1ldGVyX2Rlc2MiOiAiMS4gYE5VTUJFUmA6IHRoZSBkZXNpcmVkIHN0YXR1cyBjb2RlLiIsICJkZXNjcmlwdGlvbiI6ICJTZXRzIHN0YXR1cyBjb2RlIG9mIHJlc3BvbnNlLiIsICJleGFtcGxlX2NvZGUiOiAiLy8gRXhhbXBsZSBjb25kaXRpb246IENoZWNrIGlmIHRoZSBVUkwgY29udGFpbnMgYSBzcGVjaWZpYyBwYXRoXG5NV0cuVVJMIHVybCA9IE1XRy5VcmwoKVxuU1RSSU5HIHBhdGggPSB1cmwuR2V0UGF0aCgpXG5cbklGIHBhdGggPT0gXCIvZm9yYmlkZGVuXCIgVEhFTiB7XG4gICAgLy8gU2V0IHRoZSBIVFRQIHN0YXR1cyBjb2RlIHRvIDQwMyBGb3JiaWRkZW5cbiAgICBNV0cuU2V0SFRUUFN0YXR1c0NvZGUoNDAzKVxuICAgIC8vIFNldCBIVFRQIHN0YXR1cyBjb2RlIHRvIDQwMyBGb3JiaWRkZW4gZm9yIHBhdGg6IFwiICsgcGF0aFxufSBFTFNFIHtcbiAgICAvLyBTZXQgdGhlIEhUVFAgc3RhdHVzIGNvZGUgdG8gMjAwIE9LXG4gICAgTVdHLlNldEhUVFBTdGF0dXNDb2RlKDIwMClcbiAgICAvLyBTZXQgSFRUUCBzdGF0dXMgY29kZSB0byAyMDAgT0sgZm9yIHBhdGg6IFwiICsgcGF0aFxufSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiLy8gRXhhbXBsZSBjb25kaXRpb246IENoZWNrIGlmIHRoZSBVUkwgY29udGFpbnMgYSBzcGVjaWZpYyBwYXRoXG5NV0cuVVJMIHVybCA9IE1XRy5VcmwoKVxuU1RSSU5HIHBhdGggPSB1cmwuR2V0UGF0aCgpXG5cbklGIHBhdGggPT0gXCIvZm9yYmlkZGVuXCIgVEhFTiB7XG4gICAgLy8gU2V0IHRoZSBIVFRQIHN0YXR1cyBjb2RlIHRvIDQwMyBGb3JiaWRkZW5cbiAgICBNV0cuU2V0SFRUUFN0YXR1c0NvZGUoNDAzKVxuICAgIC8vIFNldCBIVFRQIHN0YXR1cyBjb2RlIHRvIDQwMyBGb3JiaWRkZW4gZm9yIHBhdGg6IFwiICsgcGF0aFxufSBFTFNFIHtcbiAgICAvLyBTZXQgdGhlIEhUVFAgc3RhdHVzIGNvZGUgdG8gMjAwIE9LXG4gICAgTVdHLlNldEhUVFBTdGF0dXNDb2RlKDIwMClcbiAgICAvLyBTZXQgSFRUUCBzdGF0dXMgY29kZSB0byAyMDAgT0sgZm9yIHBhdGg6IFwiICsgcGF0aFxufSJ9LCB7Im5hbWUiOiAiTVdHLlNldEludGVybmFsR1RJU2V0dGluZ3MgKE1XRy5VcmxDYXRlZ29yaXphdGlvblNldHRpbmcpIiwgInBhcmFtZXRlcl9kZXNjIjogIjEuIGBNV0cuVXJsQ2F0ZWdvcml6YXRpb25TZXR0aW5nYDogQ29uZmlndXJhdGlvbiBzZXR0aW5ncyBvYmplY3QuIiwgImRlc2NyaXB0aW9uIjogIlNldHMgaW50ZXJuYWwgR1RJIHNldHRpbmcuIiwgImV4YW1wbGVfY29kZSI6ICIvLyBDcmVhdGUgYSBuZXcgVVJMIGNhdGVnb3JpemF0aW9uIHNldHRpbmcgb2JqZWN0XG5NV0cuVXJsQ2F0ZWdvcml6YXRpb25TZXR0aW5nIHVybENhdGVnb3JpemF0aW9uU2V0dGluZyA9IE1XRy5VcmxDYXRlZ29yaXphdGlvblNldHRpbmcoKVxuXG4vLyBDb25maWd1cmUgdGhlIFVSTCBjYXRlZ29yaXphdGlvbiBzZXR0aW5nIGFzIG5lZWRlZFxudXJsQ2F0ZWdvcml6YXRpb25TZXR0aW5nLmVuYWJsZUNhdGVnb3JpemF0aW9uID0gVFJVRVxudXJsQ2F0ZWdvcml6YXRpb25TZXR0aW5nLmVuYWJsZVJlcHV0YXRpb24gPSBUUlVFXG51cmxDYXRlZ29yaXphdGlvblNldHRpbmcucmVwdXRhdGlvblRocmVzaG9sZCA9IDUwXG5cbi8vIFNldCB0aGUgaW50ZXJuYWwgR1RJIHNldHRpbmdzIHdpdGggdGhlIGNvbmZpZ3VyZWQgVVJMIGNhdGVnb3JpemF0aW9uIHNldHRpbmdcbk1XRy5TZXRJbnRlcm5hbEdUSVNldHRpbmdzKHVybENhdGVnb3JpemF0aW9uU2V0dGluZylcblxuLy8gSW50ZXJuYWwgR1RJIHNldHRpbmdzIGhhdmUgYmVlbiBzZXQuXG5cbi8vIENvbnRpbnVlIHByb2Nlc3NpbmcgdGhlIHJlcXVlc3Rcbk1XRy5BbGxvdyhcIkdUSSBzZXR0aW5ncyBhcHBsaWVkLlwiKSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiLy8gQ3JlYXRlIGEgbmV3IFVSTCBjYXRlZ29yaXphdGlvbiBzZXR0aW5nIG9iamVjdFxuTVdHLlVybENhdGVnb3JpemF0aW9uU2V0dGluZyB1cmxDYXRlZ29yaXphdGlvblNldHRpbmcgPSBNV0cuVXJsQ2F0ZWdvcml6YXRpb25TZXR0aW5nKClcblxuLy8gQ29uZmlndXJlIHRoZSBVUkwgY2F0ZWdvcml6YXRpb24gc2V0dGluZyBhcyBuZWVkZWRcbnVybENhdGVnb3JpemF0aW9uU2V0dGluZy5lbmFibGVDYXRlZ29yaXphdGlvbiA9IFRSVUVcbnVybENhdGVnb3JpemF0aW9uU2V0dGluZy5lbmFibGVSZXB1dGF0aW9uID0gVFJVRVxudXJsQ2F0ZWdvcml6YXRpb25TZXR0aW5nLnJlcHV0YXRpb25UaHJlc2hvbGQgPSA1MFxuXG4vLyBTZXQgdGhlIGludGVybmFsIEdUSSBzZXR0aW5ncyB3aXRoIHRoZSBjb25maWd1cmVkIFVSTCBjYXRlZ29yaXphdGlvbiBzZXR0aW5nXG5NV0cuU2V0SW50ZXJuYWxHVElTZXR0aW5ncyh1cmxDYXRlZ29yaXphdGlvblNldHRpbmcpXG5cbi8vIEludGVybmFsIEdUSSBzZXR0aW5ncyBoYXZlIGJlZW4gc2V0LlxuXG4vLyBDb250aW51ZSBwcm9jZXNzaW5nIHRoZSByZXF1ZXN0XG5NV0cuQWxsb3coXCJHVEkgc2V0dGluZ3MgYXBwbGllZC5cIikifSwgeyJuYW1lIjogIk1XRy5TZXROZXh0SG9wUHJveHkgKE1XRy5OZXh0SG9wUHJveHlTZXR0aW5nKSIsICJwYXJhbWV0ZXJfZGVzYyI6ICIxLiBgTVdHLk5leHRIb3BQcm94eVNldHRpbmdgOiBDb25maWd1cmF0aW9uIHNldHRpbmdzIG9iamVjdC4iLCAiZGVzY3JpcHRpb24iOiAiQXBwbGllcyBhIG5leHQgaG9wIHByb3h5IHNldHRpbmcuIiwgImV4YW1wbGVfY29kZSI6ICIvLyBDcmVhdGUgYSBuZXcgTVdHLk5leHRIb3BQcm94eVNldHRpbmcgb2JqZWN0XG5NV0cuTmV4dEhvcFByb3h5U2V0dGluZyBwcm94eVNldHRpbmcgPSBNV0cuTmV4dEhvcFByb3h5U2V0dGluZygpXG5cbi8vIENvbmZpZ3VyZSB0aGUgcHJveHkgc2V0dGluZ3NcbnByb3h5U2V0dGluZy5Ib3N0ID0gXCJwcm94eS5leGFtcGxlLmNvbVwiXG5wcm94eVNldHRpbmcuUG9ydCA9IDgwODBcbnByb3h5U2V0dGluZy5Vc2VybmFtZSA9IFwicHJveHlVc2VyXCJcbnByb3h5U2V0dGluZy5QYXNzd29yZCA9IFwicHJveHlQYXNzXCJcblxuLy8gQXBwbHkgdGhlIG5leHQgaG9wIHByb3h5IHNldHRpbmdcbk1XRy5TZXROZXh0SG9wUHJveHkocHJveHlTZXR0aW5nKVxuXG4vLyBMb2cgdGhlIGFjdGlvblxuLy8gTmV4dCBob3AgcHJveHkgaGFzIGJlZW4gc2V0IHRvIHByb3h5LmV4YW1wbGUuY29tOjgwODAiLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIi8vIENyZWF0ZSBhIG5ldyBNV0cuTmV4dEhvcFByb3h5U2V0dGluZyBvYmplY3Rcbk1XRy5OZXh0SG9wUHJveHlTZXR0aW5nIHByb3h5U2V0dGluZyA9IE1XRy5OZXh0SG9wUHJveHlTZXR0aW5nKClcblxuLy8gQ29uZmlndXJlIHRoZSBwcm94eSBzZXR0aW5nc1xucHJveHlTZXR0aW5nLkhvc3QgPSBcInByb3h5LmV4YW1wbGUuY29tXCJcbnByb3h5U2V0dGluZy5Qb3J0ID0gODA4MFxucHJveHlTZXR0aW5nLlVzZXJuYW1lID0gXCJwcm94eVVzZXJcIlxucHJveHlTZXR0aW5nLlBhc3N3b3JkID0gXCJwcm94eVBhc3NcIlxuXG4vLyBBcHBseSB0aGUgbmV4dCBob3AgcHJveHkgc2V0dGluZ1xuTVdHLlNldE5leHRIb3BQcm94eShwcm94eVNldHRpbmcpXG5cbi8vIExvZyB0aGUgYWN0aW9uXG4vLyBOZXh0IGhvcCBwcm94eSBoYXMgYmVlbiBzZXQgdG8gcHJveHkuZXhhbXBsZS5jb206ODA4MCJ9LCB7Im5hbWUiOiAiTVdHLlNldE9yaWdpbmFsSW50ZXJuYWxVcmwgKFNUUklORykiLCAicGFyYW1ldGVyX2Rlc2MiOiAiMS4gYFNUUklOR2A6IHRoZSB1cmwgdG8gc2V0LiIsICJkZXNjcmlwdGlvbiI6ICJTZXRzIHRoZSBvcmlnaW5hbCBpbnRlcm5hbCBVUkwuIiwgImV4YW1wbGVfY29kZSI6ICJTVFJJTkcgb3JpZ2luYWxVcmwgPSBcImh0dHA6Ly9pbnRlcm5hbC5leGFtcGxlLmNvbVwiXG5NV0cuU2V0T3JpZ2luYWxJbnRlcm5hbFVybChvcmlnaW5hbFVybClcbi8vIE9yaWdpbmFsIGludGVybmFsIFVSTCBoYXMgYmVlbiBzZXQgdG86IFwiICsgb3JpZ2luYWxVcmwiLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIlNUUklORyBvcmlnaW5hbFVybCA9IFwiaHR0cDovL2ludGVybmFsLmV4YW1wbGUuY29tXCJcbk1XRy5TZXRPcmlnaW5hbEludGVybmFsVXJsKG9yaWdpbmFsVXJsKVxuLy8gT3JpZ2luYWwgaW50ZXJuYWwgVVJMIGhhcyBiZWVuIHNldCB0bzogXCIgKyBvcmlnaW5hbFVybCJ9LCB7Im5hbWUiOiAiTVdHLlNldFBhcmFtZXRlciAoTVdHLlVSTCwgU1RSSU5HLCBTVFJJTkcpIiwgInBhcmFtZXRlcl9kZXNjIjogIjEuIGBNV0cuVVJMYDogVGhlIHVybCBvYmplY3QgdG8gbW9kaWZ5LlxuMi4gYFNUUklOR2A6IFRoZSBrZXkuXG4zLiBgU1RSSU5HYDogVGhlIHZhbHVlLiIsICJkZXNjcmlwdGlvbiI6ICJNYW5pcHVsYXRlcyB0aGUgVVJMIHBhcmFtZXRlciBieSBhZGRpbmcgYSBrZXktdmFsdWUgcGFpci4iLCAiZXhhbXBsZV9jb2RlIjogIi8vIEdldCB0aGUgY3VycmVudCBVUkwgb2JqZWN0XG5NV0cuVVJMIGN1cnJlbnRVcmwgPSBNV0cuVXJsKClcblxuLy8gQWRkIGEgbmV3IHBhcmFtZXRlciB0byB0aGUgVVJMXG5NV0cuU2V0UGFyYW1ldGVyKGN1cnJlbnRVcmwsIFwibmV3S2V5XCIsIFwibmV3VmFsdWVcIilcblxuLy8gTW9kaWZpZWQgVVJMOiBcIiArIGN1cnJlbnRVcmxcbi8vIEFsbG93IHRoZSByZXF1ZXN0IHRvIHByb2NlZWQgd2l0aCB0aGUgbW9kaWZpZWQgVVJMXG5NV0cuQWxsb3coXCJVUkwgcGFyYW1ldGVycyBtb2RpZmllZFwiKSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiLy8gR2V0IHRoZSBjdXJyZW50IFVSTCBvYmplY3Rcbk1XRy5VUkwgY3VycmVudFVybCA9IE1XRy5VcmwoKVxuXG4vLyBBZGQgYSBuZXcgcGFyYW1ldGVyIHRvIHRoZSBVUkxcbk1XRy5TZXRQYXJhbWV0ZXIoY3VycmVudFVybCwgXCJuZXdLZXlcIiwgXCJuZXdWYWx1ZVwiKVxuXG4vLyBNb2RpZmllZCBVUkw6IFwiICsgY3VycmVudFVybFxuLy8gQWxsb3cgdGhlIHJlcXVlc3QgdG8gcHJvY2VlZCB3aXRoIHRoZSBtb2RpZmllZCBVUkxcbk1XRy5BbGxvdyhcIlVSTCBwYXJhbWV0ZXJzIG1vZGlmaWVkXCIpIn0sIHsibmFtZSI6ICJNV0cuU2V0UHJvcGVydHlMb25nVmFsdWUgKFNUUklORywgTlVNQkVSKSIsICJwYXJhbWV0ZXJfZGVzYyI6ICIxLiBgU1RSSU5HYDogdGhlIHByb3BlcnR5IHRvIHNldFxuMi4gYE5VTUJFUmA6IHRoZSBsb25nIHZhbHVlIHRvIGFzc2lnbiB0byBpdCIsICJkZXNjcmlwdGlvbiI6ICJTZXRzIGEgbG9uZyBwcm9wZXJ0eSB2YWx1ZS4iLCAiZXhhbXBsZV9jb2RlIjogIlNUUklORyBwcm9wZXJ0eU5hbWUgPSBcImV4YW1wbGVQcm9wZXJ0eVwiXG5OVU1CRVIgcHJvcGVydHlWYWx1ZSA9IDEwMFxuXG4vLyBTZXQgdGhlIHByb3BlcnR5IHZhbHVlXG5NV0cuU2V0UHJvcGVydHlMb25nVmFsdWUocHJvcGVydHlOYW1lLCBwcm9wZXJ0eVZhbHVlKVxuICAgIFxuLy8gUHJvcGVydHkgXCJleGFtcGxlUHJvcGVydHlcIiBzZXQgdG8gdmFsdWUgMTAwIiwgInJldmlld2VkIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICJTVFJJTkcgcHJvcGVydHlOYW1lID0gXCJleGFtcGxlUHJvcGVydHlcIlxuTlVNQkVSIHByb3BlcnR5VmFsdWUgPSAxMDBcblxuLy8gU2V0IHRoZSBwcm9wZXJ0eSB2YWx1ZVxuTVdHLlNldFByb3BlcnR5TG9uZ1ZhbHVlKHByb3BlcnR5TmFtZSwgcHJvcGVydHlWYWx1ZSlcbiAgICBcbi8vIFByb3BlcnR5IFwiZXhhbXBsZVByb3BlcnR5XCIgc2V0IHRvIHZhbHVlIDEwMCJ9LCB7Im5hbWUiOiAiTVdHLlNldFByb3BlcnR5VmFsdWUgKFNUUklORywgQk9PTEVBTikiLCAicGFyYW1ldGVyX2Rlc2MiOiAiMS4gYFNUUklOR2A6IHRoZSBwcm9wZXJ0eSB0byBzZXQuXG4yLiBgQk9PTEVBTmA6IHRoZSB2YWx1ZSB0byBhc3NpZ24gdG8gaXQuIiwgImRlc2NyaXB0aW9uIjogIlNldHMgYSBwcm9wZXJ0eSB2YWx1ZS4iLCAiZXhhbXBsZV9jb2RlIjogIi8vIERlZmluZSB0aGUgcHJvcGVydHkgbmFtZSBhbmQgdGhlIGJvb2xlYW4gdmFsdWUgeW91IHdhbnQgdG8gc2V0XG5TVFJJTkcgcHJvcGVydHlOYW1lID0gXCJFbmFibGVDb250ZW50SW5zcGVjdGlvblwiO1xuQk9PTEVBTiBwcm9wZXJ0eVZhbHVlID0gVFJVRTtcblxuLy8gU2V0IHRoZSBwcm9wZXJ0eSB2YWx1ZSB1c2luZyBNV0cuU2V0UHJvcGVydHlWYWx1ZVxuTVdHLlNldFByb3BlcnR5VmFsdWUocHJvcGVydHlOYW1lLCBwcm9wZXJ0eVZhbHVlKTtcblxuLy8gT3B0aW9uYWxseSwgeW91IGNhbiBsb2cgdGhlIGFjdGlvbiBmb3IgZGVidWdnaW5nIHB1cnBvc2VzXG4vLyBQcm9wZXJ0eSBcIiArIHByb3BlcnR5TmFtZSArIFwiIHNldCB0byBcIiArIHByb3BlcnR5VmFsdWUiLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIi8vIERlZmluZSB0aGUgcHJvcGVydHkgbmFtZSBhbmQgdGhlIGJvb2xlYW4gdmFsdWUgeW91IHdhbnQgdG8gc2V0XG5TVFJJTkcgcHJvcGVydHlOYW1lID0gXCJFbmFibGVDb250ZW50SW5zcGVjdGlvblwiO1xuQk9PTEVBTiBwcm9wZXJ0eVZhbHVlID0gVFJVRTtcblxuLy8gU2V0IHRoZSBwcm9wZXJ0eSB2YWx1ZSB1c2luZyBNV0cuU2V0UHJvcGVydHlWYWx1ZVxuTVdHLlNldFByb3BlcnR5VmFsdWUocHJvcGVydHlOYW1lLCBwcm9wZXJ0eVZhbHVlKTtcblxuLy8gT3B0aW9uYWxseSwgeW91IGNhbiBsb2cgdGhlIGFjdGlvbiBmb3IgZGVidWdnaW5nIHB1cnBvc2VzXG4vLyBQcm9wZXJ0eSBcIiArIHByb3BlcnR5TmFtZSArIFwiIHNldCB0byBcIiArIHByb3BlcnR5VmFsdWUifSwgeyJuYW1lIjogIk1XRy5TZXRQcm9wZXJ0eVZhbHVlIChTVFJJTkcsIE5ldC5JUCkiLCAicGFyYW1ldGVyX2Rlc2MiOiAiIiwgImRlc2NyaXB0aW9uIjogIlNldHMgYSBwcm9wZXJ0eSB2YWx1ZS4iLCAiZXhhbXBsZV9jb2RlIjogIlZFQ1RPUjxOZXQuSVA+IGlwQWRkcmVzc2VzID0gTmV0LklQKFwiMTkyLjE2OC4xLjFcIiksIE5ldC5JUChcIjE5Mi4xNjguMS4yXCIpXG5NV0cuU2V0VXNlckRlZmluZWRWYXIoXCJVc2VyRGVmaW5lZElQTGlzdFwiLCBpcEFkZHJlc3Nlcylcbi8vIFVzZXItZGVmaW5lZCBJUCBsaXN0IGhhcyBiZWVuIHNldC4iLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIlZFQ1RPUjxOZXQuSVA+IGlwQWRkcmVzc2VzID0gTmV0LklQKFwiMTkyLjE2OC4xLjFcIiksIE5ldC5JUChcIjE5Mi4xNjguMS4yXCIpXG5NV0cuU2V0VXNlckRlZmluZWRWYXIoXCJVc2VyRGVmaW5lZElQTGlzdFwiLCBpcEFkZHJlc3Nlcylcbi8vIFVzZXItZGVmaW5lZCBJUCBsaXN0IGhhcyBiZWVuIHNldC4ifSwgeyJuYW1lIjogIk1XRy5TZXRQcm9wZXJ0eVZhbHVlIChTVFJJTkcsIE5VTUJFUikiLCAicGFyYW1ldGVyX2Rlc2MiOiAiMS4gYFNUUklOR2A6IHRoZSBwcm9wZXJ0eSB0byBzZXRcbjIuIGBOVU1CRVJgOiB0aGUgdmFsdWUgdG8gYXNzaWduIHRvIGl0IiwgImRlc2NyaXB0aW9uIjogIlNldHMgYSBwcm9wZXJ0eSB2YWx1ZS4iLCAiZXhhbXBsZV9jb2RlIjogIlNUUklORyBwcm9wZXJ0eU5hbWUgPSBcImV4YW1wbGVQcm9wZXJ0eVwiXG5OVU1CRVIgcHJvcGVydHlWYWx1ZSA9IDQyXG5cbi8vIFNldCB0aGUgcHJvcGVydHkgdmFsdWVcbk1XRy5TZXRQcm9wZXJ0eVZhbHVlKHByb3BlcnR5TmFtZSwgcHJvcGVydHlWYWx1ZSlcblxuLy8gUHJvcGVydHkgXCJleGFtcGxlUHJvcGVydHlcIiBzZXQgdG8gdmFsdWUgNDIiLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIlNUUklORyBwcm9wZXJ0eU5hbWUgPSBcImV4YW1wbGVQcm9wZXJ0eVwiXG5OVU1CRVIgcHJvcGVydHlWYWx1ZSA9IDQyXG5cbi8vIFNldCB0aGUgcHJvcGVydHkgdmFsdWVcbk1XRy5TZXRQcm9wZXJ0eVZhbHVlKHByb3BlcnR5TmFtZSwgcHJvcGVydHlWYWx1ZSlcblxuLy8gUHJvcGVydHkgXCJleGFtcGxlUHJvcGVydHlcIiBzZXQgdG8gdmFsdWUgNDIifSwgeyJuYW1lIjogIk1XRy5TZXRQcm9wZXJ0eVZhbHVlIChTVFJJTkcsIFNUUklORykiLCAicGFyYW1ldGVyX2Rlc2MiOiAiIiwgImRlc2NyaXB0aW9uIjogIlNldHMgYSBwcm9wZXJ0eSB2YWx1ZS4iLCAiZXhhbXBsZV9jb2RlIjogIlNUUklORyBwcm9wZXJ0eU5hbWUgPSBcIlVzZXJDYXRlZ29yeVwiXG5TVFJJTkcgcHJvcGVydHlWYWx1ZSA9IFwiUHJlbWl1bVVzZXJcIlxuXG5NV0cuU2V0UHJvcGVydHlWYWx1ZShwcm9wZXJ0eU5hbWUsIHByb3BlcnR5VmFsdWUpXG5cbi8vIFByb3BlcnR5IFVzZXJDYXRlZ29yeSBzZXQgdG8gUHJlbWl1bVVzZXIiLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIlNUUklORyBwcm9wZXJ0eU5hbWUgPSBcIlVzZXJDYXRlZ29yeVwiXG5TVFJJTkcgcHJvcGVydHlWYWx1ZSA9IFwiUHJlbWl1bVVzZXJcIlxuXG5NV0cuU2V0UHJvcGVydHlWYWx1ZShwcm9wZXJ0eU5hbWUsIHByb3BlcnR5VmFsdWUpXG5cbi8vIFByb3BlcnR5IFVzZXJDYXRlZ29yeSBzZXQgdG8gUHJlbWl1bVVzZXIifSwgeyJuYW1lIjogIk1XRy5TZXRQcm9wZXJ0eVZhbHVlIChTVFJJTkcsIFZFQ1RPUjxTVFJJTkc+KSIsICJwYXJhbWV0ZXJfZGVzYyI6ICIiLCAiZGVzY3JpcHRpb24iOiAiU2V0cyBhIHByb3BlcnR5IHZhbHVlLiIsICJleGFtcGxlX2NvZGUiOiAiLy8gRGVmaW5lIHRoZSBwcm9wZXJ0eSBuYW1lIGFuZCB0aGUgdmFsdWUgdG8gc2V0XG5TVFJJTkcgcHJvcGVydHlOYW1lID0gXCJDdXN0b21Qcm9wZXJ0eVwiXG5WRUNUT1I8U1RSSU5HPiBwcm9wZXJ0eVZhbHVlID0gXCJWYWx1ZTFcIiwgXCJWYWx1ZTJcIiwgXCJWYWx1ZTNcIlxuXG4vLyBTZXQgdGhlIHByb3BlcnR5IHZhbHVlXG5NV0cuU2V0UHJvcGVydHlWYWx1ZShwcm9wZXJ0eU5hbWUsIHByb3BlcnR5VmFsdWUpXG5cbi8vIFByb3BlcnR5IFwiICsgcHJvcGVydHlOYW1lICsgXCIgaGFzIGJlZW4gc2V0IHRvOiBcIiArIHByb3BlcnR5VmFsdWUiLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIi8vIERlZmluZSB0aGUgcHJvcGVydHkgbmFtZSBhbmQgdGhlIHZhbHVlIHRvIHNldFxuU1RSSU5HIHByb3BlcnR5TmFtZSA9IFwiQ3VzdG9tUHJvcGVydHlcIlxuVkVDVE9SPFNUUklORz4gcHJvcGVydHlWYWx1ZSA9IFwiVmFsdWUxXCIsIFwiVmFsdWUyXCIsIFwiVmFsdWUzXCJcblxuLy8gU2V0IHRoZSBwcm9wZXJ0eSB2YWx1ZVxuTVdHLlNldFByb3BlcnR5VmFsdWUocHJvcGVydHlOYW1lLCBwcm9wZXJ0eVZhbHVlKVxuXG4vLyBQcm9wZXJ0eSBcIiArIHByb3BlcnR5TmFtZSArIFwiIGhhcyBiZWVuIHNldCB0bzogXCIgKyBwcm9wZXJ0eVZhbHVlIn0sIHsibmFtZSI6ICJNV0cuU2V0UmF3IChNV0cuVVJMLCBTVFJJTkcpIiwgInBhcmFtZXRlcl9kZXNjIjogIiIsICJkZXNjcmlwdGlvbiI6ICJTZXRzIHRoZSBVUkwgdmFsdWUgd2l0aG91dCBhbnkgcHJvY2Vzc2luZy4iLCAiZXhhbXBsZV9jb2RlIjogIk1XRy5VUkwgY3VycmVudFVybCA9IE1XRy5VcmwoKVxuU1RSSU5HIG5ld1VybCA9IFwiaHR0cHM6Ly93d3cuZXhhbXBsZS5jb21cIlxuXG5NV0cuU2V0UmF3KGN1cnJlbnRVcmwsIG5ld1VybClcblxuLy8gVVJMIGhhcyBiZWVuIG1vZGlmaWVkIHRvOiBodHRwczovL3d3dy5leGFtcGxlLmNvbVxuTVdHLkFsbG93KFwiVVJMIE1vZGlmaWNhdGlvbiBSdWxlXCIpIiwgInJldmlld2VkIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICJNV0cuVVJMIGN1cnJlbnRVcmwgPSBNV0cuVXJsKClcblNUUklORyBuZXdVcmwgPSBcImh0dHBzOi8vd3d3LmV4YW1wbGUuY29tXCJcblxuTVdHLlNldFJhdyhjdXJyZW50VXJsLCBuZXdVcmwpXG5cbi8vIFVSTCBoYXMgYmVlbiBtb2RpZmllZCB0bzogaHR0cHM6Ly93d3cuZXhhbXBsZS5jb21cbk1XRy5BbGxvdyhcIlVSTCBNb2RpZmljYXRpb24gUnVsZVwiKSJ9LCB7Im5hbWUiOiAiTVdHLlNldFNTTENsaWVudENvbnRleHRGd2RQcm94eSAoTVdHLkNsaWVudENvbnRleHRGd2RQcm94eVNldHRpbmcpIiwgInBhcmFtZXRlcl9kZXNjIjogIiIsICJkZXNjcmlwdGlvbiI6ICJTZXRzIFNTTCBjbGllbnQgY29udGV4dCBmb3IgZm9yd2FyZCBwcm94eS4iLCAiZXhhbXBsZV9jb2RlIjogIk1XRy5DbGllbnRDb250ZXh0RndkUHJveHlTZXR0aW5nIGNsaWVudENvbnRleHRTZXR0aW5nXG4vLyBDb25maWd1cmUgdGhlIGNsaWVudENvbnRleHRTZXR0aW5nIGFzIG5lZWRlZFxuLy8gRm9yIGV4YW1wbGUsIHNldHRpbmcgc29tZSBoeXBvdGhldGljYWwgcHJvcGVydGllc1xuY2xpZW50Q29udGV4dFNldHRpbmcuc29tZVByb3BlcnR5ID0gXCJzb21lVmFsdWVcIlxuY2xpZW50Q29udGV4dFNldHRpbmcuYW5vdGhlclByb3BlcnR5ID0gVFJVRVxuXG4vLyBBcHBseSB0aGUgY2xpZW50IGNvbnRleHQgZm9yd2FyZCBwcm94eSBzZXR0aW5nXG5NV0cuU2V0U1NMQ2xpZW50Q29udGV4dEZ3ZFByb3h5KGNsaWVudENvbnRleHRTZXR0aW5nKVxuXG4vLyBTU0wgQ2xpZW50IENvbnRleHQgRm9yd2FyZCBQcm94eSBzZXR0aW5nIGFwcGxpZWQuIiwgInJldmlld2VkIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICJNV0cuQ2xpZW50Q29udGV4dEZ3ZFByb3h5U2V0dGluZyBjbGllbnRDb250ZXh0U2V0dGluZ1xuLy8gQ29uZmlndXJlIHRoZSBjbGllbnRDb250ZXh0U2V0dGluZyBhcyBuZWVkZWRcbi8vIEZvciBleGFtcGxlLCBzZXR0aW5nIHNvbWUgaHlwb3RoZXRpY2FsIHByb3BlcnRpZXNcbmNsaWVudENvbnRleHRTZXR0aW5nLnNvbWVQcm9wZXJ0eSA9IFwic29tZVZhbHVlXCJcbmNsaWVudENvbnRleHRTZXR0aW5nLmFub3RoZXJQcm9wZXJ0eSA9IFRSVUVcblxuLy8gQXBwbHkgdGhlIGNsaWVudCBjb250ZXh0IGZvcndhcmQgcHJveHkgc2V0dGluZ1xuTVdHLlNldFNTTENsaWVudENvbnRleHRGd2RQcm94eShjbGllbnRDb250ZXh0U2V0dGluZylcblxuLy8gU1NMIENsaWVudCBDb250ZXh0IEZvcndhcmQgUHJveHkgc2V0dGluZyBhcHBsaWVkLiJ9LCB7Im5hbWUiOiAiTVdHLlNldFNTTENsaWVudENvbnRleHRSZXZQcm94eSAoTVdHLkNsaWVudENvbnRleHRSZXZQcm94eVNldHRpbmcpIiwgInBhcmFtZXRlcl9kZXNjIjogIiIsICJkZXNjcmlwdGlvbiI6ICJTZXRzIFNTTCBjbGllbnQgcmV2ZXJzZSBmb3IgZm9yd2FyZCBwcm94eS4iLCAiZXhhbXBsZV9jb2RlIjogIi8vIENyZWF0ZSBhbmQgY29uZmlndXJlIHRoZSBNV0cuQ2xpZW50Q29udGV4dFJldlByb3h5U2V0dGluZyBvYmplY3Rcbk1XRy5DbGllbnRDb250ZXh0UmV2UHJveHlTZXR0aW5nIHJldlByb3h5U2V0dGluZyA9IE1XRy5DbGllbnRDb250ZXh0UmV2UHJveHlTZXR0aW5nKClcblxuLy8gU2V0IHZhcmlvdXMgcHJvcGVydGllcyBvZiB0aGUgcmV2UHJveHlTZXR0aW5nIG9iamVjdCBhcyBuZWVkZWRcbnJldlByb3h5U2V0dGluZy5zb21lUHJvcGVydHkgPSBcInNvbWVWYWx1ZVwiXG5yZXZQcm94eVNldHRpbmcuYW5vdGhlclByb3BlcnR5ID0gXCJhbm90aGVyVmFsdWVcIlxuXG4vLyBTZXQgdGhlIFNTTCBjbGllbnQgY29udGV4dCBmb3IgdGhlIHJldmVyc2UgcHJveHlcbk1XRy5TZXRTU0xDbGllbnRDb250ZXh0UmV2UHJveHkocmV2UHJveHlTZXR0aW5nKVxuXG4vLyBTU0wgY2xpZW50IGNvbnRleHQgZm9yIHJldmVyc2UgcHJveHkgaGFzIGJlZW4gc2V0LiIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiLy8gQ3JlYXRlIGFuZCBjb25maWd1cmUgdGhlIE1XRy5DbGllbnRDb250ZXh0UmV2UHJveHlTZXR0aW5nIG9iamVjdFxuTVdHLkNsaWVudENvbnRleHRSZXZQcm94eVNldHRpbmcgcmV2UHJveHlTZXR0aW5nID0gTVdHLkNsaWVudENvbnRleHRSZXZQcm94eVNldHRpbmcoKVxuXG4vLyBTZXQgdmFyaW91cyBwcm9wZXJ0aWVzIG9mIHRoZSByZXZQcm94eVNldHRpbmcgb2JqZWN0IGFzIG5lZWRlZFxucmV2UHJveHlTZXR0aW5nLnNvbWVQcm9wZXJ0eSA9IFwic29tZVZhbHVlXCJcbnJldlByb3h5U2V0dGluZy5hbm90aGVyUHJvcGVydHkgPSBcImFub3RoZXJWYWx1ZVwiXG5cbi8vIFNldCB0aGUgU1NMIGNsaWVudCBjb250ZXh0IGZvciB0aGUgcmV2ZXJzZSBwcm94eVxuTVdHLlNldFNTTENsaWVudENvbnRleHRSZXZQcm94eShyZXZQcm94eVNldHRpbmcpXG5cbi8vIFNTTCBjbGllbnQgY29udGV4dCBmb3IgcmV2ZXJzZSBwcm94eSBoYXMgYmVlbiBzZXQuIn0sIHsibmFtZSI6ICJNV0cuU2V0U1NMSGFuZGxpbmdBc1dlYlNlcnZlciAoQk9PTEVBTikiLCAicGFyYW1ldGVyX2Rlc2MiOiAiIiwgImRlc2NyaXB0aW9uIjogIlNldHMgaWYgcHJveHkgc2hvdWxkIGFjdCBsaWtlIGEgSFRUUFMgd2ViIHNlcnZlciBvciBIVFRQUyBwcm94eS4iLCAiZXhhbXBsZV9jb2RlIjogIkJPT0xFQU4gZW5hYmxlU1NMSGFuZGxpbmcgPSBUUlVFICAvLyBTZXQgdG8gVFJVRSB0byBlbmFibGUgU1NMIGhhbmRsaW5nIGFzIGEgd2ViIHNlcnZlclxuXG5NV0cuU2V0U1NMSGFuZGxpbmdBc1dlYlNlcnZlcihlbmFibGVTU0xIYW5kbGluZylcblxuLy8gU1NMIEhhbmRsaW5nIGFzIFdlYiBTZXJ2ZXI6IFwiICsgKGVuYWJsZVNTTEhhbmRsaW5nID8gXCJFbmFibGVkXCIgOiBcIkRpc2FibGVkXCIpIiwgInJldmlld2VkIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICJCT09MRUFOIGVuYWJsZVNTTEhhbmRsaW5nID0gVFJVRSAgLy8gU2V0IHRvIFRSVUUgdG8gZW5hYmxlIFNTTCBoYW5kbGluZyBhcyBhIHdlYiBzZXJ2ZXJcblxuTVdHLlNldFNTTEhhbmRsaW5nQXNXZWJTZXJ2ZXIoZW5hYmxlU1NMSGFuZGxpbmcpXG5cbi8vIFNTTCBIYW5kbGluZyBhcyBXZWIgU2VydmVyOiBcIiArIChlbmFibGVTU0xIYW5kbGluZyA/IFwiRW5hYmxlZFwiIDogXCJEaXNhYmxlZFwiKSJ9LCB7Im5hbWUiOiAiTVdHLlNldFVzZXJEZWZpbmVkSW5pdERvbmUgKCkiLCAicGFyYW1ldGVyX2Rlc2MiOiAiIiwgImRlc2NyaXB0aW9uIjogIlNldHMgdXNlci1kZWZpbmVkIGluaXRpYWxpemF0aW9uIHRvIGJlIGRvbmUuIiwgImV4YW1wbGVfY29kZSI6ICIvLyBQZXJmb3JtIHNvbWUgdXNlci1kZWZpbmVkIGluaXRpYWxpemF0aW9uIHRhc2tzXG4vLyBTdGFydGluZyB1c2VyLWRlZmluZWQgaW5pdGlhbGl6YXRpb25cblxuLy8gRXhhbXBsZSBpbml0aWFsaXphdGlvbiB0YXNrc1xuU1RSSU5HIGluaXRNZXNzYWdlID0gXCJJbml0aWFsaXphdGlvbiBjb21wbGV0ZVwiXG4vLyBpbml0TWVzc2FnZVxuXG4vLyBJbmRpY2F0ZSB0aGF0IHVzZXItZGVmaW5lZCBpbml0aWFsaXphdGlvbiBpcyBkb25lXG5NV0cuU2V0VXNlckRlZmluZWRJbml0RG9uZSgpXG5cbi8vIFVzZXItZGVmaW5lZCBpbml0aWFsaXphdGlvbiBmbGFnIHNldCIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiLy8gUGVyZm9ybSBzb21lIHVzZXItZGVmaW5lZCBpbml0aWFsaXphdGlvbiB0YXNrc1xuLy8gU3RhcnRpbmcgdXNlci1kZWZpbmVkIGluaXRpYWxpemF0aW9uXG5cbi8vIEV4YW1wbGUgaW5pdGlhbGl6YXRpb24gdGFza3NcblNUUklORyBpbml0TWVzc2FnZSA9IFwiSW5pdGlhbGl6YXRpb24gY29tcGxldGVcIlxuLy8gaW5pdE1lc3NhZ2VcblxuLy8gSW5kaWNhdGUgdGhhdCB1c2VyLWRlZmluZWQgaW5pdGlhbGl6YXRpb24gaXMgZG9uZVxuTVdHLlNldFVzZXJEZWZpbmVkSW5pdERvbmUoKVxuXG4vLyBVc2VyLWRlZmluZWQgaW5pdGlhbGl6YXRpb24gZmxhZyBzZXQifSwgeyJuYW1lIjogIk1XRy5TZXRVc2VyRGVmaW5lZFZhciAoU1RSSU5HLCBCT09MRUFOKSIsICJwYXJhbWV0ZXJfZGVzYyI6ICIiLCAiZGVzY3JpcHRpb24iOiAiU2V0cyBhIHVzZXItZGVmaW5lZCB2YXJpYWJsZS4iLCAiZXhhbXBsZV9jb2RlIjogIi8vIEV4YW1wbGUgY29uZGl0aW9uOiBDaGVjayBpZiB0aGUgY3VycmVudCBVUkwgY29udGFpbnMgXCJleGFtcGxlLmNvbVwiXG5NV0cuVVJMIGN1cnJlbnRVcmwgPSBNV0cuVXJsKClcbkJPT0xFQU4gaXNFeGFtcGxlRG9tYWluID0gY3VycmVudFVybCBDT05UQUlOUyBcImV4YW1wbGUuY29tXCJcblxuLy8gU2V0IGEgdXNlci1kZWZpbmVkIHZhcmlhYmxlIFwiSXNFeGFtcGxlRG9tYWluXCIgYmFzZWQgb24gdGhlIGNvbmRpdGlvblxuTVdHLlNldFVzZXJEZWZpbmVkVmFyKFwiSXNFeGFtcGxlRG9tYWluXCIsIGlzRXhhbXBsZURvbWFpbilcblxuLy8gSXNFeGFtcGxlRG9tYWluIHNldCB0bzogXCIgKyBpc0V4YW1wbGVEb21haW4iLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIi8vIEV4YW1wbGUgY29uZGl0aW9uOiBDaGVjayBpZiB0aGUgY3VycmVudCBVUkwgY29udGFpbnMgXCJleGFtcGxlLmNvbVwiXG5NV0cuVVJMIGN1cnJlbnRVcmwgPSBNV0cuVXJsKClcbkJPT0xFQU4gaXNFeGFtcGxlRG9tYWluID0gY3VycmVudFVybCBDT05UQUlOUyBcImV4YW1wbGUuY29tXCJcblxuLy8gU2V0IGEgdXNlci1kZWZpbmVkIHZhcmlhYmxlIFwiSXNFeGFtcGxlRG9tYWluXCIgYmFzZWQgb24gdGhlIGNvbmRpdGlvblxuTVdHLlNldFVzZXJEZWZpbmVkVmFyKFwiSXNFeGFtcGxlRG9tYWluXCIsIGlzRXhhbXBsZURvbWFpbilcblxuLy8gSXNFeGFtcGxlRG9tYWluIHNldCB0bzogXCIgKyBpc0V4YW1wbGVEb21haW4ifSwgeyJuYW1lIjogIk1XRy5TZXRVc2VyRGVmaW5lZFZhciAoU1RSSU5HLCBKU09OKSIsICJwYXJhbWV0ZXJfZGVzYyI6ICIiLCAiZGVzY3JpcHRpb24iOiAiU2V0cyBhIHVzZXItZGVmaW5lZCB2YXJpYWJsZS4iLCAiZXhhbXBsZV9jb2RlIjogIi8vIERlZmluZSB0aGUgbmFtZSBvZiB0aGUgdXNlci1kZWZpbmVkIHZhcmlhYmxlXG5TVFJJTkcgdmFyaWFibGVOYW1lID0gXCJjdXN0b21WYXJpYWJsZVwiXG5cbi8vIENyZWF0ZSBhIEpTT04gb2JqZWN0IHRvIGFzc2lnbiB0byB0aGUgdXNlci1kZWZpbmVkIHZhcmlhYmxlXG5KU09OIGpzb25WYWx1ZSA9IHtcbiAgICBcImtleTFcIjogXCJ2YWx1ZTFcIixcbiAgICBcImtleTJcIjogMTIzLFxuICAgIFwia2V5M1wiOiBUUlVFXG59XG5cbi8vIFNldCB0aGUgdXNlci1kZWZpbmVkIHZhcmlhYmxlIHdpdGggdGhlIEpTT04gdmFsdWVcbk1XRy5TZXRVc2VyRGVmaW5lZFZhcih2YXJpYWJsZU5hbWUsIGpzb25WYWx1ZSlcblxuLy8gVXNlci1kZWZpbmVkIHZhcmlhYmxlICdjdXN0b21WYXJpYWJsZScgaGFzIGJlZW4gc2V0IHdpdGggdGhlIHZhbHVlOiB7XCJrZXkxXCI6IFwidmFsdWUxXCIsIFwia2V5MlwiOiAxMjMsIFwia2V5M1wiOiBUUlVFfSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiLy8gRGVmaW5lIHRoZSBuYW1lIG9mIHRoZSB1c2VyLWRlZmluZWQgdmFyaWFibGVcblNUUklORyB2YXJpYWJsZU5hbWUgPSBcImN1c3RvbVZhcmlhYmxlXCJcblxuLy8gQ3JlYXRlIGEgSlNPTiBvYmplY3QgdG8gYXNzaWduIHRvIHRoZSB1c2VyLWRlZmluZWQgdmFyaWFibGVcbkpTT04ganNvblZhbHVlID0ge1xuICAgIFwia2V5MVwiOiBcInZhbHVlMVwiLFxuICAgIFwia2V5MlwiOiAxMjMsXG4gICAgXCJrZXkzXCI6IFRSVUVcbn1cblxuLy8gU2V0IHRoZSB1c2VyLWRlZmluZWQgdmFyaWFibGUgd2l0aCB0aGUgSlNPTiB2YWx1ZVxuTVdHLlNldFVzZXJEZWZpbmVkVmFyKHZhcmlhYmxlTmFtZSwganNvblZhbHVlKVxuXG4vLyBVc2VyLWRlZmluZWQgdmFyaWFibGUgJ2N1c3RvbVZhcmlhYmxlJyBoYXMgYmVlbiBzZXQgd2l0aCB0aGUgdmFsdWU6IHtcImtleTFcIjogXCJ2YWx1ZTFcIiwgXCJrZXkyXCI6IDEyMywgXCJrZXkzXCI6IFRSVUV9In0sIHsibmFtZSI6ICJNV0cuU2V0VXNlckRlZmluZWRWYXIgKFNUUklORywgTUFQPFNUUklORywgTVdHLkludGVybmFsVmFyaWFudD4pIiwgInBhcmFtZXRlcl9kZXNjIjogIiIsICJkZXNjcmlwdGlvbiI6ICJTZXRzIGEgdXNlci1kZWZpbmVkIHZhcmlhYmxlLiIsICJleGFtcGxlX2NvZGUiOiAiLy8gRGVmaW5lIGEgTUFQIHRvIGhvbGQgdGhlIHVzZXItZGVmaW5lZCB2YXJpYWJsZSdzIHZhbHVlXG5NQVA8U1RSSU5HLCBNV0cuSW50ZXJuYWxWYXJpYW50PiB1c2VyRGVmaW5lZFZhbHVlXG5cbi8vIFNldCBzb21lIGtleS12YWx1ZSBwYWlycyBpbiB0aGUgTUFQXG51c2VyRGVmaW5lZFZhbHVlW1wia2V5MVwiXSA9IE1XRy5JbnRlcm5hbFZhcmlhbnQoXCJ2YWx1ZTFcIilcbnVzZXJEZWZpbmVkVmFsdWVbXCJrZXkyXCJdID0gTVdHLkludGVybmFsVmFyaWFudCgxMjM0NSkgLy8gRXhhbXBsZSB3aXRoIGEgTlVNQkVSXG51c2VyRGVmaW5lZFZhbHVlW1wia2V5M1wiXSA9IE1XRy5JbnRlcm5hbFZhcmlhbnQoVFJVRSkgIC8vIEV4YW1wbGUgd2l0aCBhIEJPT0xFQU5cblxuLy8gU2V0IHRoZSB1c2VyLWRlZmluZWQgdmFyaWFibGUgdXNpbmcgdGhlIE1BUFxuTVdHLlNldFVzZXJEZWZpbmVkVmFyKFwiTXlDdXN0b21WYXJpYWJsZVwiLCB1c2VyRGVmaW5lZFZhbHVlKVxuXG4vLyBVc2VyLWRlZmluZWQgdmFyaWFibGUgJ015Q3VzdG9tVmFyaWFibGUnIGhhcyBiZWVuIHNldCB3aXRoIHRoZSBmb2xsb3dpbmcgdmFsdWVzOlxuLy8ga2V5MTogdmFsdWUxXG4vLyBrZXkyOiAxMjM0NVxuLy8ga2V5MzogVFJVRSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiLy8gRGVmaW5lIGEgTUFQIHRvIGhvbGQgdGhlIHVzZXItZGVmaW5lZCB2YXJpYWJsZSdzIHZhbHVlXG5NQVA8U1RSSU5HLCBNV0cuSW50ZXJuYWxWYXJpYW50PiB1c2VyRGVmaW5lZFZhbHVlXG5cbi8vIFNldCBzb21lIGtleS12YWx1ZSBwYWlycyBpbiB0aGUgTUFQXG51c2VyRGVmaW5lZFZhbHVlW1wia2V5MVwiXSA9IE1XRy5JbnRlcm5hbFZhcmlhbnQoXCJ2YWx1ZTFcIilcbnVzZXJEZWZpbmVkVmFsdWVbXCJrZXkyXCJdID0gTVdHLkludGVybmFsVmFyaWFudCgxMjM0NSkgLy8gRXhhbXBsZSB3aXRoIGEgTlVNQkVSXG51c2VyRGVmaW5lZFZhbHVlW1wia2V5M1wiXSA9IE1XRy5JbnRlcm5hbFZhcmlhbnQoVFJVRSkgIC8vIEV4YW1wbGUgd2l0aCBhIEJPT0xFQU5cblxuLy8gU2V0IHRoZSB1c2VyLWRlZmluZWQgdmFyaWFibGUgdXNpbmcgdGhlIE1BUFxuTVdHLlNldFVzZXJEZWZpbmVkVmFyKFwiTXlDdXN0b21WYXJpYWJsZVwiLCB1c2VyRGVmaW5lZFZhbHVlKVxuXG4vLyBVc2VyLWRlZmluZWQgdmFyaWFibGUgJ015Q3VzdG9tVmFyaWFibGUnIGhhcyBiZWVuIHNldCB3aXRoIHRoZSBmb2xsb3dpbmcgdmFsdWVzOlxuLy8ga2V5MTogdmFsdWUxXG4vLyBrZXkyOiAxMjM0NVxuLy8ga2V5MzogVFJVRSJ9LCB7Im5hbWUiOiAiTVdHLlNldFVzZXJEZWZpbmVkVmFyIChTVFJJTkcsIE1BUDxTVFJJTkcsIFNUUklORz4pIiwgInBhcmFtZXRlcl9kZXNjIjogIiIsICJkZXNjcmlwdGlvbiI6ICJTZXRzIGEgdXNlci1kZWZpbmVkIHZhcmlhYmxlLiIsICJleGFtcGxlX2NvZGUiOiAiLy8gQ3JlYXRlIGEgTUFQPFNUUklORywgU1RSSU5HPiB3aXRoIHNvbWUga2V5LXZhbHVlIHBhaXJzXG5NQVA8U1RSSU5HLCBTVFJJTkc+IHVzZXJJbmZvXG51c2VySW5mb1tcInVzZXJuYW1lXCJdID0gXCJqb2huX2RvZVwiXG51c2VySW5mb1tcImVtYWlsXCJdID0gXCJqb2huLmRvZUBleGFtcGxlLmNvbVwiXG51c2VySW5mb1tcInJvbGVcIl0gPSBcImFkbWluXCJcblxuLy8gU2V0IHRoZSB1c2VyLWRlZmluZWQgdmFyaWFibGUgd2l0aCB0aGUgbWFwXG5NV0cuU2V0VXNlckRlZmluZWRWYXIoXCJVc2VySW5mb3JtYXRpb25cIiwgdXNlckluZm8pXG5cbi8vIFVzZXJJbmZvcm1hdGlvbiBzZXQgd2l0aCB2YWx1ZXM6IFwiICsgdXNlckluZm8iLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIi8vIENyZWF0ZSBhIE1BUDxTVFJJTkcsIFNUUklORz4gd2l0aCBzb21lIGtleS12YWx1ZSBwYWlyc1xuTUFQPFNUUklORywgU1RSSU5HPiB1c2VySW5mb1xudXNlckluZm9bXCJ1c2VybmFtZVwiXSA9IFwiam9obl9kb2VcIlxudXNlckluZm9bXCJlbWFpbFwiXSA9IFwiam9obi5kb2VAZXhhbXBsZS5jb21cIlxudXNlckluZm9bXCJyb2xlXCJdID0gXCJhZG1pblwiXG5cbi8vIFNldCB0aGUgdXNlci1kZWZpbmVkIHZhcmlhYmxlIHdpdGggdGhlIG1hcFxuTVdHLlNldFVzZXJEZWZpbmVkVmFyKFwiVXNlckluZm9ybWF0aW9uXCIsIHVzZXJJbmZvKVxuXG4vLyBVc2VySW5mb3JtYXRpb24gc2V0IHdpdGggdmFsdWVzOiBcIiArIHVzZXJJbmZvIn0sIHsibmFtZSI6ICJNV0cuU2V0VXNlckRlZmluZWRWYXIgKFNUUklORywgTWVkaWFUeXBlKSIsICJwYXJhbWV0ZXJfZGVzYyI6ICIiLCAiZGVzY3JpcHRpb24iOiAiU2V0cyBhIHVzZXItZGVmaW5lZCB2YXJpYWJsZS4iLCAiZXhhbXBsZV9jb2RlIjogIi8vIERlZmluZSBhIE1lZGlhVHlwZSB2YXJpYWJsZVxuTWVkaWFUeXBlIG1lZGlhVHlwZUV4YW1wbGUgPSBNZWRpYVR5cGUoXCJhcHBsaWNhdGlvbi9qc29uXCIpXG5cbi8vIFNldCBhIHVzZXItZGVmaW5lZCB2YXJpYWJsZSB3aXRoIHRoZSBuYW1lIFwiQ3VzdG9tTWVkaWFUeXBlXCIgYW5kIHRoZSB2YWx1ZSBvZiBtZWRpYVR5cGVFeGFtcGxlXG5NV0cuU2V0VXNlckRlZmluZWRWYXIoXCJDdXN0b21NZWRpYVR5cGVcIiwgbWVkaWFUeXBlRXhhbXBsZSlcblxuLy8gVXNlci1kZWZpbmVkIHZhcmlhYmxlICdDdXN0b21NZWRpYVR5cGUnIHNldCB0bzogXCIgKyBtZWRpYVR5cGVFeGFtcGxlIiwgInJldmlld2VkIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICIvLyBEZWZpbmUgYSBNZWRpYVR5cGUgdmFyaWFibGVcbk1lZGlhVHlwZSBtZWRpYVR5cGVFeGFtcGxlID0gTWVkaWFUeXBlKFwiYXBwbGljYXRpb24vanNvblwiKVxuXG4vLyBTZXQgYSB1c2VyLWRlZmluZWQgdmFyaWFibGUgd2l0aCB0aGUgbmFtZSBcIkN1c3RvbU1lZGlhVHlwZVwiIGFuZCB0aGUgdmFsdWUgb2YgbWVkaWFUeXBlRXhhbXBsZVxuTVdHLlNldFVzZXJEZWZpbmVkVmFyKFwiQ3VzdG9tTWVkaWFUeXBlXCIsIG1lZGlhVHlwZUV4YW1wbGUpXG5cbi8vIFVzZXItZGVmaW5lZCB2YXJpYWJsZSAnQ3VzdG9tTWVkaWFUeXBlJyBzZXQgdG86IFwiICsgbWVkaWFUeXBlRXhhbXBsZSJ9LCB7Im5hbWUiOiAiTVdHLlNldFVzZXJEZWZpbmVkVmFyIChTVFJJTkcsIE5ldC5JUCkiLCAicGFyYW1ldGVyX2Rlc2MiOiAiIiwgImRlc2NyaXB0aW9uIjogIlNldHMgYSB1c2VyLWRlZmluZWQgdmFyaWFibGUuIiwgImV4YW1wbGVfY29kZSI6ICJOZXQuSVAgdXNlcklQID0gTmV0LklQKFwiMTkyLjE2OC4xLjFcIilcbk1XRy5TZXRVc2VyRGVmaW5lZFZhcihcIlVzZXJJUEFkZHJlc3NcIiwgdXNlcklQKVxuLy8gVXNlciBJUCBhZGRyZXNzIGhhcyBiZWVuIHNldCB0byAxOTIuMTY4LjEuMSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiTmV0LklQIHVzZXJJUCA9IE5ldC5JUChcIjE5Mi4xNjguMS4xXCIpXG5NV0cuU2V0VXNlckRlZmluZWRWYXIoXCJVc2VySVBBZGRyZXNzXCIsIHVzZXJJUClcbi8vIFVzZXIgSVAgYWRkcmVzcyBoYXMgYmVlbiBzZXQgdG8gMTkyLjE2OC4xLjEifSwgeyJuYW1lIjogIk1XRy5TZXRVc2VyRGVmaW5lZFZhciAoU1RSSU5HLCBOZXQuSVBSYW5nZSkiLCAicGFyYW1ldGVyX2Rlc2MiOiAiIiwgImRlc2NyaXB0aW9uIjogIlNldHMgYSB1c2VyLWRlZmluZWQgdmFyaWFibGUuIiwgImV4YW1wbGVfY29kZSI6ICJTVFJJTkcgdmFyaWFibGVOYW1lID0gXCJBbGxvd2VkSVBSYW5nZVwiXG5OZXQuSVBSYW5nZSBpcFJhbmdlID0gTmV0LklQUmFuZ2UoXCIxOTIuMTY4LjEuMC8yNFwiKVxuXG5NV0cuU2V0VXNlckRlZmluZWRWYXIodmFyaWFibGVOYW1lLCBpcFJhbmdlKVxuXG4vLyBVc2VyLWRlZmluZWQgdmFyaWFibGUgJ0FsbG93ZWRJUFJhbmdlJyBoYXMgYmVlbiBzZXQgdG8gMTkyLjE2OC4xLjAvMjQuIiwgInJldmlld2VkIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICJTVFJJTkcgdmFyaWFibGVOYW1lID0gXCJBbGxvd2VkSVBSYW5nZVwiXG5OZXQuSVBSYW5nZSBpcFJhbmdlID0gTmV0LklQUmFuZ2UoXCIxOTIuMTY4LjEuMC8yNFwiKVxuXG5NV0cuU2V0VXNlckRlZmluZWRWYXIodmFyaWFibGVOYW1lLCBpcFJhbmdlKVxuXG4vLyBVc2VyLWRlZmluZWQgdmFyaWFibGUgJ0FsbG93ZWRJUFJhbmdlJyBoYXMgYmVlbiBzZXQgdG8gMTkyLjE2OC4xLjAvMjQuIn0sIHsibmFtZSI6ICJNV0cuU2V0VXNlckRlZmluZWRWYXIgKFNUUklORywgTlVNQkVSKSIsICJwYXJhbWV0ZXJfZGVzYyI6ICIiLCAiZGVzY3JpcHRpb24iOiAiU2V0cyBhIHVzZXItZGVmaW5lZCB2YXJpYWJsZS4iLCAiZXhhbXBsZV9jb2RlIjogIk1XRy5VUkwgY3VycmVudFVybCA9IE1XRy5VcmwoKVxuU1RSSU5HIHVybFN0cmluZyA9IGN1cnJlbnRVcmwuVG9TdHJpbmcoKVxuXG5JRiBFbmRzV2l0aCh1cmxTdHJpbmcsIFwiLnBkZlwiKSBUSEVOIHtcbiAgICBNV0cuU2V0VXNlckRlZmluZWRWYXIoXCJGaWxlVHlwZVwiLCAxKVxuICAgIC8vIFNldCB1c2VyLWRlZmluZWQgdmFyaWFibGUgJ0ZpbGVUeXBlJyB0byAxIGZvciBQREYgZmlsZXNcbn0gRUxTRSB7XG4gICAgTVdHLlNldFVzZXJEZWZpbmVkVmFyKFwiRmlsZVR5cGVcIiwgMClcbiAgICAvLyBTZXQgdXNlci1kZWZpbmVkIHZhcmlhYmxlICdGaWxlVHlwZScgdG8gMCBmb3Igbm9uLVBERiBmaWxlc1xufSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiTVdHLlVSTCBjdXJyZW50VXJsID0gTVdHLlVybCgpXG5TVFJJTkcgdXJsU3RyaW5nID0gY3VycmVudFVybC5Ub1N0cmluZygpXG5cbklGIEVuZHNXaXRoKHVybFN0cmluZywgXCIucGRmXCIpIFRIRU4ge1xuICAgIE1XRy5TZXRVc2VyRGVmaW5lZFZhcihcIkZpbGVUeXBlXCIsIDEpXG4gICAgLy8gU2V0IHVzZXItZGVmaW5lZCB2YXJpYWJsZSAnRmlsZVR5cGUnIHRvIDEgZm9yIFBERiBmaWxlc1xufSBFTFNFIHtcbiAgICBNV0cuU2V0VXNlckRlZmluZWRWYXIoXCJGaWxlVHlwZVwiLCAwKVxuICAgIC8vIFNldCB1c2VyLWRlZmluZWQgdmFyaWFibGUgJ0ZpbGVUeXBlJyB0byAwIGZvciBub24tUERGIGZpbGVzXG59In0sIHsibmFtZSI6ICJNV0cuU2V0VXNlckRlZmluZWRWYXIgKFNUUklORywgUmVnRXhKU2kpIiwgInBhcmFtZXRlcl9kZXNjIjogIiIsICJkZXNjcmlwdGlvbiI6ICJTZXRzIGEgdXNlci1kZWZpbmVkIHZhcmlhYmxlLiIsICJleGFtcGxlX2NvZGUiOiAiLy8gRGVmaW5lIGEgcmVndWxhciBleHByZXNzaW9uIHBhdHRlcm5cblJlZ0V4SlNpIHJlZ2V4UGF0dGVybiA9IFJlZ0V4SlNpKFwiZXhhbXBsZVBhdHRlcm5cIiwgXCJpXCIpICAvLyBcImlcIiBmb3IgY2FzZS1pbnNlbnNpdGl2ZVxuXG4vLyBTZXQgdGhlIHVzZXItZGVmaW5lZCB2YXJpYWJsZSB3aXRoIHRoZSBuYW1lIFwiVXNlckRlZmluZWRSZWdleFwiIHRvIHRoZSByZWdleCBwYXR0ZXJuXG5NV0cuU2V0VXNlckRlZmluZWRWYXIoXCJVc2VyRGVmaW5lZFJlZ2V4XCIsIHJlZ2V4UGF0dGVybilcblxuLy8gVXNlci1kZWZpbmVkIHZhcmlhYmxlICdVc2VyRGVmaW5lZFJlZ2V4JyBoYXMgYmVlbiBzZXQuIiwgInJldmlld2VkIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICIvLyBEZWZpbmUgYSByZWd1bGFyIGV4cHJlc3Npb24gcGF0dGVyblxuUmVnRXhKU2kgcmVnZXhQYXR0ZXJuID0gUmVnRXhKU2koXCJleGFtcGxlUGF0dGVyblwiLCBcImlcIikgIC8vIFwiaVwiIGZvciBjYXNlLWluc2Vuc2l0aXZlXG5cbi8vIFNldCB0aGUgdXNlci1kZWZpbmVkIHZhcmlhYmxlIHdpdGggdGhlIG5hbWUgXCJVc2VyRGVmaW5lZFJlZ2V4XCIgdG8gdGhlIHJlZ2V4IHBhdHRlcm5cbk1XRy5TZXRVc2VyRGVmaW5lZFZhcihcIlVzZXJEZWZpbmVkUmVnZXhcIiwgcmVnZXhQYXR0ZXJuKVxuXG4vLyBVc2VyLWRlZmluZWQgdmFyaWFibGUgJ1VzZXJEZWZpbmVkUmVnZXgnIGhhcyBiZWVuIHNldC4ifSwgeyJuYW1lIjogIk1XRy5TZXRVc2VyRGVmaW5lZFZhciAoU1RSSU5HLCBSZWdFeEpTaS5MaXN0KSIsICJwYXJhbWV0ZXJfZGVzYyI6ICIiLCAiZGVzY3JpcHRpb24iOiAiU2V0cyBhIHVzZXItZGVmaW5lZCB2YXJpYWJsZS4iLCAiZXhhbXBsZV9jb2RlIjogIi8vIENyZWF0ZSBhIFJlZ0V4SlNpLkxpc3Qgb2JqZWN0XG5SZWdFeEpTaS5MaXN0IHJlZ2V4TGlzdCA9IFJlZ0V4SlNpLkxpc3QoKVxuXG4vLyBBZGQgc29tZSByZWd1bGFyIGV4cHJlc3Npb25zIHRvIHRoZSBsaXN0XG5yZWdleExpc3QuQWRkKFwiLipleGFtcGxlLipcIilcbnJlZ2V4TGlzdC5BZGQoXCIuKnRlc3QuKlwiKVxuXG4vLyBTZXQgdGhlIHVzZXItZGVmaW5lZCB2YXJpYWJsZSB3aXRoIHRoZSBuYW1lIFwiTXlSZWdleExpc3RcIiBhbmQgdGhlIGNyZWF0ZWQgcmVnZXggbGlzdFxuTVdHLlNldFVzZXJEZWZpbmVkVmFyKFwiTXlSZWdleExpc3RcIiwgcmVnZXhMaXN0KVxuXG4vLyBVc2VyLWRlZmluZWQgdmFyaWFibGUgJ015UmVnZXhMaXN0JyBoYXMgYmVlbiBzZXQgd2l0aCB0aGUgcmVnZXggbGlzdC4iLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIi8vIENyZWF0ZSBhIFJlZ0V4SlNpLkxpc3Qgb2JqZWN0XG5SZWdFeEpTaS5MaXN0IHJlZ2V4TGlzdCA9IFJlZ0V4SlNpLkxpc3QoKVxuXG4vLyBBZGQgc29tZSByZWd1bGFyIGV4cHJlc3Npb25zIHRvIHRoZSBsaXN0XG5yZWdleExpc3QuQWRkKFwiLipleGFtcGxlLipcIilcbnJlZ2V4TGlzdC5BZGQoXCIuKnRlc3QuKlwiKVxuXG4vLyBTZXQgdGhlIHVzZXItZGVmaW5lZCB2YXJpYWJsZSB3aXRoIHRoZSBuYW1lIFwiTXlSZWdleExpc3RcIiBhbmQgdGhlIGNyZWF0ZWQgcmVnZXggbGlzdFxuTVdHLlNldFVzZXJEZWZpbmVkVmFyKFwiTXlSZWdleExpc3RcIiwgcmVnZXhMaXN0KVxuXG4vLyBVc2VyLWRlZmluZWQgdmFyaWFibGUgJ015UmVnZXhMaXN0JyBoYXMgYmVlbiBzZXQgd2l0aCB0aGUgcmVnZXggbGlzdC4ifSwgeyJuYW1lIjogIk1XRy5TZXRVc2VyRGVmaW5lZFZhciAoU1RSSU5HLCBTVFJJTkcpIiwgInBhcmFtZXRlcl9kZXNjIjogIiIsICJkZXNjcmlwdGlvbiI6ICJTZXRzIGEgdXNlci1kZWZpbmVkIHZhcmlhYmxlLiIsICJleGFtcGxlX2NvZGUiOiAiLy8gRGVmaW5lIHRoZSBuYW1lIGFuZCB2YWx1ZSBvZiB0aGUgdXNlci1kZWZpbmVkIHZhcmlhYmxlXG5TVFJJTkcgdmFyaWFibGVOYW1lID0gXCJVc2VyRGVmaW5lZFZhcjFcIlxuU1RSSU5HIHZhcmlhYmxlVmFsdWUgPSBcIkV4YW1wbGVWYWx1ZVwiXG5cbi8vIFNldCB0aGUgdXNlci1kZWZpbmVkIHZhcmlhYmxlXG5NV0cuU2V0VXNlckRlZmluZWRWYXIodmFyaWFibGVOYW1lLCB2YXJpYWJsZVZhbHVlKVxuXG4vLyBVc2VyIERlZmluZWQgVmFyaWFibGUgTmFtZTogVXNlckRlZmluZWRWYXIxXG4vLyBVc2VyIERlZmluZWQgVmFyaWFibGUgVmFsdWU6IEV4YW1wbGVWYWx1ZSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiLy8gRGVmaW5lIHRoZSBuYW1lIGFuZCB2YWx1ZSBvZiB0aGUgdXNlci1kZWZpbmVkIHZhcmlhYmxlXG5TVFJJTkcgdmFyaWFibGVOYW1lID0gXCJVc2VyRGVmaW5lZFZhcjFcIlxuU1RSSU5HIHZhcmlhYmxlVmFsdWUgPSBcIkV4YW1wbGVWYWx1ZVwiXG5cbi8vIFNldCB0aGUgdXNlci1kZWZpbmVkIHZhcmlhYmxlXG5NV0cuU2V0VXNlckRlZmluZWRWYXIodmFyaWFibGVOYW1lLCB2YXJpYWJsZVZhbHVlKVxuXG4vLyBVc2VyIERlZmluZWQgVmFyaWFibGUgTmFtZTogVXNlckRlZmluZWRWYXIxXG4vLyBVc2VyIERlZmluZWQgVmFyaWFibGUgVmFsdWU6IEV4YW1wbGVWYWx1ZSJ9LCB7Im5hbWUiOiAiTVdHLlNldFVzZXJEZWZpbmVkVmFyIChTVFJJTkcsIFZFQ1RPUjxNZWRpYVR5cGU+KSIsICJwYXJhbWV0ZXJfZGVzYyI6ICIiLCAiZGVzY3JpcHRpb24iOiAiU2V0cyBhIHVzZXItZGVmaW5lZCB2YXJpYWJsZS4iLCAiZXhhbXBsZV9jb2RlIjogIi8vIERlZmluZSBhIFZFQ1RPUiBvZiBNZWRpYVR5cGVcblZFQ1RPUjxNZWRpYVR5cGU+IG1lZGlhVHlwZXMgPSBcImFwcGxpY2F0aW9uL2pzb25cIiwgXCJ0ZXh0L2h0bWxcIiwgXCJpbWFnZS9wbmdcIlxuXG4vLyBTZXQgdGhlIHVzZXItZGVmaW5lZCB2YXJpYWJsZSB3aXRoIHRoZSBuYW1lIFwiQWxsb3dlZE1lZGlhVHlwZXNcIiB0byB0aGUgZGVmaW5lZCBWRUNUT1Jcbk1XRy5TZXRVc2VyRGVmaW5lZFZhcihcIkFsbG93ZWRNZWRpYVR5cGVzXCIsIG1lZGlhVHlwZXMpXG5cbi8vIFVzZXItZGVmaW5lZCB2YXJpYWJsZSAnQWxsb3dlZE1lZGlhVHlwZXMnIGhhcyBiZWVuIHNldC4iLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIi8vIERlZmluZSBhIFZFQ1RPUiBvZiBNZWRpYVR5cGVcblZFQ1RPUjxNZWRpYVR5cGU+IG1lZGlhVHlwZXMgPSBcImFwcGxpY2F0aW9uL2pzb25cIiwgXCJ0ZXh0L2h0bWxcIiwgXCJpbWFnZS9wbmdcIlxuXG4vLyBTZXQgdGhlIHVzZXItZGVmaW5lZCB2YXJpYWJsZSB3aXRoIHRoZSBuYW1lIFwiQWxsb3dlZE1lZGlhVHlwZXNcIiB0byB0aGUgZGVmaW5lZCBWRUNUT1Jcbk1XRy5TZXRVc2VyRGVmaW5lZFZhcihcIkFsbG93ZWRNZWRpYVR5cGVzXCIsIG1lZGlhVHlwZXMpXG5cbi8vIFVzZXItZGVmaW5lZCB2YXJpYWJsZSAnQWxsb3dlZE1lZGlhVHlwZXMnIGhhcyBiZWVuIHNldC4ifSwgeyJuYW1lIjogIk1XRy5TZXRVc2VyRGVmaW5lZFZhciAoU1RSSU5HLCBWRUNUT1I8TVdHLlVybENhdGVnb3J5PikiLCAicGFyYW1ldGVyX2Rlc2MiOiAiIiwgImRlc2NyaXB0aW9uIjogIlNldHMgYSB1c2VyLWRlZmluZWQgdmFyaWFibGUuIiwgImV4YW1wbGVfY29kZSI6ICIvLyBEZWZpbmUgYSB2ZWN0b3Igb2YgVVJMIGNhdGVnb3JpZXNcblZFQ1RPUjxNV0cuVXJsQ2F0ZWdvcnk+IHVybENhdGVnb3JpZXMgPSBbXCJTb2NpYWwgTWVkaWFcIiwgXCJOZXdzXCIsIFwiU2hvcHBpbmdcIl1cblxuLy8gU2V0IHRoZSB1c2VyLWRlZmluZWQgdmFyaWFibGUgd2l0aCB0aGUgbmFtZSBcIlVzZXJDYXRlZ29yaWVzXCIgdG8gdGhlIHZlY3RvciBvZiBVUkwgY2F0ZWdvcmllc1xuTVdHLlNldFVzZXJEZWZpbmVkVmFyKFwiVXNlckNhdGVnb3JpZXNcIiwgdXJsQ2F0ZWdvcmllcylcblxuLy8gVXNlci1kZWZpbmVkIHZhcmlhYmxlICdVc2VyQ2F0ZWdvcmllcycgc2V0IHdpdGggVVJMIGNhdGVnb3JpZXM6IFwiICsgdXJsQ2F0ZWdvcmllcyIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiLy8gRGVmaW5lIGEgdmVjdG9yIG9mIFVSTCBjYXRlZ29yaWVzXG5WRUNUT1I8TVdHLlVybENhdGVnb3J5PiB1cmxDYXRlZ29yaWVzID0gW1wiU29jaWFsIE1lZGlhXCIsIFwiTmV3c1wiLCBcIlNob3BwaW5nXCJdXG5cbi8vIFNldCB0aGUgdXNlci1kZWZpbmVkIHZhcmlhYmxlIHdpdGggdGhlIG5hbWUgXCJVc2VyQ2F0ZWdvcmllc1wiIHRvIHRoZSB2ZWN0b3Igb2YgVVJMIGNhdGVnb3JpZXNcbk1XRy5TZXRVc2VyRGVmaW5lZFZhcihcIlVzZXJDYXRlZ29yaWVzXCIsIHVybENhdGVnb3JpZXMpXG5cbi8vIFVzZXItZGVmaW5lZCB2YXJpYWJsZSAnVXNlckNhdGVnb3JpZXMnIHNldCB3aXRoIFVSTCBjYXRlZ29yaWVzOiBcIiArIHVybENhdGVnb3JpZXMifSwgeyJuYW1lIjogIk1XRy5TZXRVc2VyRGVmaW5lZFZhciAoU1RSSU5HLCBWRUNUT1I8TmV0LklQPikiLCAicGFyYW1ldGVyX2Rlc2MiOiAiIiwgImRlc2NyaXB0aW9uIjogIlNldHMgYSB1c2VyLWRlZmluZWQgdmFyaWFibGUuIiwgImV4YW1wbGVfY29kZSI6ICIvLyBEZWZpbmUgYSBWRUNUT1Igb2YgTmV0LklQXG5WRUNUT1I8TmV0LklQPiBpcExpc3QgPSBcIjE5Mi4xNjguMS4xXCIsIFwiMTkyLjE2OC4xLjJcIiwgXCIxOTIuMTY4LjEuM1wiXG5cbi8vIFNldCB0aGUgdXNlci1kZWZpbmVkIHZhcmlhYmxlIHdpdGggdGhlIG5hbWUgXCJBbGxvd2VkSVBzXCIgdG8gdGhlIGlwTGlzdFxuTVdHLlNldFVzZXJEZWZpbmVkVmFyKFwiQWxsb3dlZElQc1wiLCBpcExpc3QpXG5cbi8vIFVzZXItZGVmaW5lZCB2YXJpYWJsZSAnQWxsb3dlZElQcycgaGFzIGJlZW4gc2V0IHdpdGggdGhlIGZvbGxvd2luZyBJUHM6IFwiICsgaXBMaXN0IiwgInJldmlld2VkIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICIvLyBEZWZpbmUgYSBWRUNUT1Igb2YgTmV0LklQXG5WRUNUT1I8TmV0LklQPiBpcExpc3QgPSBcIjE5Mi4xNjguMS4xXCIsIFwiMTkyLjE2OC4xLjJcIiwgXCIxOTIuMTY4LjEuM1wiXG5cbi8vIFNldCB0aGUgdXNlci1kZWZpbmVkIHZhcmlhYmxlIHdpdGggdGhlIG5hbWUgXCJBbGxvd2VkSVBzXCIgdG8gdGhlIGlwTGlzdFxuTVdHLlNldFVzZXJEZWZpbmVkVmFyKFwiQWxsb3dlZElQc1wiLCBpcExpc3QpXG5cbi8vIFVzZXItZGVmaW5lZCB2YXJpYWJsZSAnQWxsb3dlZElQcycgaGFzIGJlZW4gc2V0IHdpdGggdGhlIGZvbGxvd2luZyBJUHM6IFwiICsgaXBMaXN0In0sIHsibmFtZSI6ICJNV0cuU2V0VXNlckRlZmluZWRWYXIgKFNUUklORywgVkVDVE9SPE5ldC5JUFJhbmdlPikiLCAicGFyYW1ldGVyX2Rlc2MiOiAiIiwgImRlc2NyaXB0aW9uIjogIlNldHMgYSB1c2VyLWRlZmluZWQgdmFyaWFibGUuIiwgImV4YW1wbGVfY29kZSI6ICIvLyBEZWZpbmUgYSB2ZWN0b3Igb2YgSVAgcmFuZ2VzXG5WRUNUT1I8TmV0LklQUmFuZ2U+IGlwUmFuZ2VzID0gTmV0LklQUmFuZ2UoXCIxOTIuMTY4LjEuMC8yNFwiKSwgTmV0LklQUmFuZ2UoXCIxMC4wLjAuMC84XCIpXG5cbi8vIFNldCB0aGUgdXNlci1kZWZpbmVkIHZhcmlhYmxlIHdpdGggdGhlIG5hbWUgXCJBbGxvd2VkSVBSYW5nZXNcIiB0byB0aGUgdmVjdG9yIG9mIElQIHJhbmdlc1xuTVdHLlNldFVzZXJEZWZpbmVkVmFyKFwiQWxsb3dlZElQUmFuZ2VzXCIsIGlwUmFuZ2VzKVxuXG4vLyBVc2VyLWRlZmluZWQgdmFyaWFibGUgJ0FsbG93ZWRJUFJhbmdlcycgaGFzIGJlZW4gc2V0IHdpdGggdGhlIHNwZWNpZmllZCBJUCByYW5nZXMuIiwgInJldmlld2VkIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICIvLyBEZWZpbmUgYSB2ZWN0b3Igb2YgSVAgcmFuZ2VzXG5WRUNUT1I8TmV0LklQUmFuZ2U+IGlwUmFuZ2VzID0gTmV0LklQUmFuZ2UoXCIxOTIuMTY4LjEuMC8yNFwiKSwgTmV0LklQUmFuZ2UoXCIxMC4wLjAuMC84XCIpXG5cbi8vIFNldCB0aGUgdXNlci1kZWZpbmVkIHZhcmlhYmxlIHdpdGggdGhlIG5hbWUgXCJBbGxvd2VkSVBSYW5nZXNcIiB0byB0aGUgdmVjdG9yIG9mIElQIHJhbmdlc1xuTVdHLlNldFVzZXJEZWZpbmVkVmFyKFwiQWxsb3dlZElQUmFuZ2VzXCIsIGlwUmFuZ2VzKVxuXG4vLyBVc2VyLWRlZmluZWQgdmFyaWFibGUgJ0FsbG93ZWRJUFJhbmdlcycgaGFzIGJlZW4gc2V0IHdpdGggdGhlIHNwZWNpZmllZCBJUCByYW5nZXMuIn0sIHsibmFtZSI6ICJNV0cuU2V0VXNlckRlZmluZWRWYXIgKFNUUklORywgVkVDVE9SPE5VTUJFUj4pIiwgInBhcmFtZXRlcl9kZXNjIjogIiIsICJkZXNjcmlwdGlvbiI6ICJTZXRzIGEgdXNlci1kZWZpbmVkIHZhcmlhYmxlLiIsICJleGFtcGxlX2NvZGUiOiAiLy8gRGVmaW5lIGEgVkVDVE9SIG9mIE5VTUJFUnNcblZFQ1RPUjxOVU1CRVI+IG51bWJlclZlY3RvciA9IDEsIDIsIDMuNSwgNC43NVxuXG4vLyBTZXQgdGhlIHVzZXItZGVmaW5lZCB2YXJpYWJsZSB3aXRoIHRoZSBuYW1lIFwiZXhhbXBsZU51bWJlcnNcIiB0byB0aGUgbnVtYmVyVmVjdG9yXG5NV0cuU2V0VXNlckRlZmluZWRWYXIoXCJleGFtcGxlTnVtYmVyc1wiLCBudW1iZXJWZWN0b3IpXG5cbi8vIFVzZXItZGVmaW5lZCB2YXJpYWJsZSAnZXhhbXBsZU51bWJlcnMnIGhhcyBiZWVuIHNldC4iLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIi8vIERlZmluZSBhIFZFQ1RPUiBvZiBOVU1CRVJzXG5WRUNUT1I8TlVNQkVSPiBudW1iZXJWZWN0b3IgPSAxLCAyLCAzLjUsIDQuNzVcblxuLy8gU2V0IHRoZSB1c2VyLWRlZmluZWQgdmFyaWFibGUgd2l0aCB0aGUgbmFtZSBcImV4YW1wbGVOdW1iZXJzXCIgdG8gdGhlIG51bWJlclZlY3RvclxuTVdHLlNldFVzZXJEZWZpbmVkVmFyKFwiZXhhbXBsZU51bWJlcnNcIiwgbnVtYmVyVmVjdG9yKVxuXG4vLyBVc2VyLWRlZmluZWQgdmFyaWFibGUgJ2V4YW1wbGVOdW1iZXJzJyBoYXMgYmVlbiBzZXQuIn0sIHsibmFtZSI6ICJNV0cuU2V0VXNlckRlZmluZWRWYXIgKFNUUklORywgVkVDVE9SPFNUUklORz4pIiwgInBhcmFtZXRlcl9kZXNjIjogIiIsICJkZXNjcmlwdGlvbiI6ICJTZXRzIGEgdXNlci1kZWZpbmVkIHZhcmlhYmxlLiIsICJleGFtcGxlX2NvZGUiOiAiLy8gRGVmaW5lIGEgVkVDVE9SIG9mIFNUUklOR3NcblZFQ1RPUjxTVFJJTkc+IHVzZXJEZWZpbmVkVmFsdWVzID0gXCJ2YWx1ZTFcIiwgXCJ2YWx1ZTJcIiwgXCJ2YWx1ZTNcIlxuXG4vLyBTZXQgYSB1c2VyLWRlZmluZWQgdmFyaWFibGUgd2l0aCB0aGUgbmFtZSBcIkN1c3RvbVZhclwiIGFuZCB0aGUgZGVmaW5lZCBWRUNUT1Igb2YgU1RSSU5Hc1xuTVdHLlNldFVzZXJEZWZpbmVkVmFyKFwiQ3VzdG9tVmFyXCIsIHVzZXJEZWZpbmVkVmFsdWVzKVxuXG4vLyBVc2VyLWRlZmluZWQgdmFyaWFibGUgJ0N1c3RvbVZhcicgaGFzIGJlZW4gc2V0IHdpdGggdmFsdWVzOiBcIiArIHVzZXJEZWZpbmVkVmFsdWVzIiwgInJldmlld2VkIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICIvLyBEZWZpbmUgYSBWRUNUT1Igb2YgU1RSSU5Hc1xuVkVDVE9SPFNUUklORz4gdXNlckRlZmluZWRWYWx1ZXMgPSBcInZhbHVlMVwiLCBcInZhbHVlMlwiLCBcInZhbHVlM1wiXG5cbi8vIFNldCBhIHVzZXItZGVmaW5lZCB2YXJpYWJsZSB3aXRoIHRoZSBuYW1lIFwiQ3VzdG9tVmFyXCIgYW5kIHRoZSBkZWZpbmVkIFZFQ1RPUiBvZiBTVFJJTkdzXG5NV0cuU2V0VXNlckRlZmluZWRWYXIoXCJDdXN0b21WYXJcIiwgdXNlckRlZmluZWRWYWx1ZXMpXG5cbi8vIFVzZXItZGVmaW5lZCB2YXJpYWJsZSAnQ3VzdG9tVmFyJyBoYXMgYmVlbiBzZXQgd2l0aCB2YWx1ZXM6IFwiICsgdXNlckRlZmluZWRWYWx1ZXMifSwgeyJuYW1lIjogIk1XRy5TZXRVc2VyR3JvdXBzIChWRUNUT1I8U1RSSU5HPikiLCAicGFyYW1ldGVyX2Rlc2MiOiAiIiwgImRlc2NyaXB0aW9uIjogIkFzc2lnbnMgdXNlciBncm91cHMuIiwgImV4YW1wbGVfY29kZSI6ICIvLyBEZWZpbmUgYSB2ZWN0b3Igb2YgdXNlciBncm91cHMgdG8gYXNzaWduXG5WRUNUT1I8U1RSSU5HPiB1c2VyR3JvdXBzID0gXCJBZG1pblwiLCBcIkVkaXRvclwiLCBcIlZpZXdlclwiXG5cbi8vIEFzc2lnbiB0aGUgdXNlciBncm91cHMgdXNpbmcgdGhlIE1XRy5TZXRVc2VyR3JvdXBzIGZ1bmN0aW9uXG5NV0cuU2V0VXNlckdyb3Vwcyh1c2VyR3JvdXBzKVxuXG4vLyBVc2VyIGdyb3VwcyBoYXZlIGJlZW4gYXNzaWduZWQ6IFwiICsgdXNlckdyb3VwcyIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiLy8gRGVmaW5lIGEgdmVjdG9yIG9mIHVzZXIgZ3JvdXBzIHRvIGFzc2lnblxuVkVDVE9SPFNUUklORz4gdXNlckdyb3VwcyA9IFwiQWRtaW5cIiwgXCJFZGl0b3JcIiwgXCJWaWV3ZXJcIlxuXG4vLyBBc3NpZ24gdGhlIHVzZXIgZ3JvdXBzIHVzaW5nIHRoZSBNV0cuU2V0VXNlckdyb3VwcyBmdW5jdGlvblxuTVdHLlNldFVzZXJHcm91cHModXNlckdyb3VwcylcblxuLy8gVXNlciBncm91cHMgaGF2ZSBiZWVuIGFzc2lnbmVkOiBcIiArIHVzZXJHcm91cHMifSwgeyJuYW1lIjogIk1XRy5TZXRVc2VyTmFtZSAoU1RSSU5HKSIsICJwYXJhbWV0ZXJfZGVzYyI6ICIiLCAiZGVzY3JpcHRpb24iOiAiU2V0cyB1c2VybmFtZS4iLCAiZXhhbXBsZV9jb2RlIjogIi8vIEFzc3VtZSB3ZSBoYXZlIGEgY3VzdG9tIEhUVFAgaGVhZGVyIFwiWC1Vc2VyLU5hbWVcIiB0aGF0IGNvbnRhaW5zIHRoZSB1c2VybmFtZVxuU1RSSU5HIGhlYWRlck5hbWUgPSBcIlgtVXNlci1OYW1lXCJcblNUUklORyB1c2VyTmFtZSA9IEhUVFAuR2V0UmVxdWVzdEhlYWRlcihoZWFkZXJOYW1lKVxuXG5JRiB1c2VyTmFtZSAhPSBcIlwiIFRIRU4ge1xuICAgIE1XRy5TZXRVc2VyTmFtZSh1c2VyTmFtZSlcbiAgICAvLyBVc2VybmFtZSBzZXQgdG86IFwiICsgdXNlck5hbWVcbn0gRUxTRSB7XG4gICAgLy8gVXNlcm5hbWUgaGVhZGVyIG5vdCBmb3VuZFxufSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiLy8gQXNzdW1lIHdlIGhhdmUgYSBjdXN0b20gSFRUUCBoZWFkZXIgXCJYLVVzZXItTmFtZVwiIHRoYXQgY29udGFpbnMgdGhlIHVzZXJuYW1lXG5TVFJJTkcgaGVhZGVyTmFtZSA9IFwiWC1Vc2VyLU5hbWVcIlxuU1RSSU5HIHVzZXJOYW1lID0gSFRUUC5HZXRSZXF1ZXN0SGVhZGVyKGhlYWRlck5hbWUpXG5cbklGIHVzZXJOYW1lICE9IFwiXCIgVEhFTiB7XG4gICAgTVdHLlNldFVzZXJOYW1lKHVzZXJOYW1lKVxuICAgIC8vIFVzZXJuYW1lIHNldCB0bzogXCIgKyB1c2VyTmFtZVxufSBFTFNFIHtcbiAgICAvLyBVc2VybmFtZSBoZWFkZXIgbm90IGZvdW5kXG59In0sIHsibmFtZSI6ICJNV0cuU3RvcmVMaXN0TWF0Y2hJbmZvIChTVFJJTkcpIiwgInBhcmFtZXRlcl9kZXNjIjogIiIsICJkZXNjcmlwdGlvbiI6ICJTdG9yZXMgdGhlIGxpc3QgbWF0Y2ggaW5mbyBpbiB0aGUgdmFyaWFibGUgc3RvcmUuIiwgImV4YW1wbGVfY29kZSI6ICIvLyBEZWZpbmUgYSBydWxlIG5hbWVcblNUUklORyBydWxlTmFtZSA9IFwiRXhhbXBsZVJ1bGVcIlxuXG4vLyBTdG9yZSB0aGUgbGlzdCBtYXRjaCBpbmZvIGZvciB0aGUgZ2l2ZW4gcnVsZSBuYW1lXG5NV0cuU3RvcmVMaXN0TWF0Y2hJbmZvKHJ1bGVOYW1lKVxuXG4vLyBMaXN0IG1hdGNoIGluZm8gc3RvcmVkIGZvciBydWxlOiBFeGFtcGxlUnVsZSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiLy8gRGVmaW5lIGEgcnVsZSBuYW1lXG5TVFJJTkcgcnVsZU5hbWUgPSBcIkV4YW1wbGVSdWxlXCJcblxuLy8gU3RvcmUgdGhlIGxpc3QgbWF0Y2ggaW5mbyBmb3IgdGhlIGdpdmVuIHJ1bGUgbmFtZVxuTVdHLlN0b3JlTGlzdE1hdGNoSW5mbyhydWxlTmFtZSlcblxuLy8gTGlzdCBtYXRjaCBpbmZvIHN0b3JlZCBmb3IgcnVsZTogRXhhbXBsZVJ1bGUifSwgeyJuYW1lIjogIlJCSS5BcHBseUNsaXBib2FyZFBvbGljeSAoU1RSSU5HKSIsICJwYXJhbWV0ZXJfZGVzYyI6ICIiLCAiZGVzY3JpcHRpb24iOiAiU2V0cyB0aGUgY2xpcGJvYXJkIHBvbGljeSBvcHRpb25zIHRoYXQgYXJlIHBlcm1pdHRlZDogXCJwYXN0ZVwiLCBcImNvcHlcIiwgXCJjb3B5JnBhc3RlXCIsIFwibm9uZVwiLiIsICJleGFtcGxlX2NvZGUiOiAiU1RSSU5HIHBvbGljeU5hbWUgPSBcIkRlZmF1bHRDbGlwYm9hcmRQb2xpY3lcIlxuXG4vLyBBcHBseSB0aGUgc3BlY2lmaWVkIGNsaXBib2FyZCBwb2xpY3lcblJCSS5BcHBseUNsaXBib2FyZFBvbGljeShwb2xpY3lOYW1lKVxuXG4vLyBDbGlwYm9hcmQgcG9saWN5IGFwcGxpZWQ6IFwiICsgcG9saWN5TmFtZSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiU1RSSU5HIHBvbGljeU5hbWUgPSBcIkRlZmF1bHRDbGlwYm9hcmRQb2xpY3lcIlxuXG4vLyBBcHBseSB0aGUgc3BlY2lmaWVkIGNsaXBib2FyZCBwb2xpY3lcblJCSS5BcHBseUNsaXBib2FyZFBvbGljeShwb2xpY3lOYW1lKVxuXG4vLyBDbGlwYm9hcmQgcG9saWN5IGFwcGxpZWQ6IFwiICsgcG9saWN5TmFtZSJ9LCB7Im5hbWUiOiAiUkJJLkFwcGx5RnVsbElzb2xhdGlvblNldHRpbmdzIChCT09MRUFOLCBCT09MRUFOLCBCT09MRUFOLCBCT09MRUFOLCBOVU1CRVIsIE5VTUJFUikiLCAicGFyYW1ldGVyX2Rlc2MiOiAiIiwgImRlc2NyaXB0aW9uIjogIlNldHMgdXAgUkJJIHBvbGljeS4iLCAiZXhhbXBsZV9jb2RlIjogIkJPT0xFQU4gZW5hYmxlSXNvbGF0aW9uID0gVFJVRVxuQk9PTEVBTiBlbmFibGVDbGlwYm9hcmQgPSBGQUxTRVxuQk9PTEVBTiBlbmFibGVGaWxlVXBsb2FkID0gVFJVRVxuQk9PTEVBTiBlbmFibGVGaWxlRG93bmxvYWQgPSBGQUxTRVxuTlVNQkVSIG1heFVwbG9hZFNpemUgPSAxMDQ4NTc2MCAgLy8gMTAgTUJcbk5VTUJFUiBtYXhEb3dubG9hZFNpemUgPSA1MjQyODgwMCAgLy8gNTAgTUJcblxuUkJJLkFwcGx5RnVsbElzb2xhdGlvblNldHRpbmdzKGVuYWJsZUlzb2xhdGlvbiwgZW5hYmxlQ2xpcGJvYXJkLCBlbmFibGVGaWxlVXBsb2FkLCBlbmFibGVGaWxlRG93bmxvYWQsIG1heFVwbG9hZFNpemUsIG1heERvd25sb2FkU2l6ZSlcblxuLy8gRnVsbCBpc29sYXRpb24gc2V0dGluZ3MgYXBwbGllZCB3aXRoIHRoZSBmb2xsb3dpbmcgcGFyYW1ldGVyczpcbi8vIElzb2xhdGlvbiBFbmFibGVkOiBcIiArIGVuYWJsZUlzb2xhdGlvblxuLy8gQ2xpcGJvYXJkIEVuYWJsZWQ6IFwiICsgZW5hYmxlQ2xpcGJvYXJkXG4vLyBGaWxlIFVwbG9hZCBFbmFibGVkOiBcIiArIGVuYWJsZUZpbGVVcGxvYWRcbi8vIEZpbGUgRG93bmxvYWQgRW5hYmxlZDogXCIgKyBlbmFibGVGaWxlRG93bmxvYWRcbi8vIE1heCBVcGxvYWQgU2l6ZTogXCIgKyBtYXhVcGxvYWRTaXplXG4vLyBNYXggRG93bmxvYWQgU2l6ZTogXCIgKyBtYXhEb3dubG9hZFNpemUiLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIkJPT0xFQU4gZW5hYmxlSXNvbGF0aW9uID0gVFJVRVxuQk9PTEVBTiBlbmFibGVDbGlwYm9hcmQgPSBGQUxTRVxuQk9PTEVBTiBlbmFibGVGaWxlVXBsb2FkID0gVFJVRVxuQk9PTEVBTiBlbmFibGVGaWxlRG93bmxvYWQgPSBGQUxTRVxuTlVNQkVSIG1heFVwbG9hZFNpemUgPSAxMDQ4NTc2MCAgLy8gMTAgTUJcbk5VTUJFUiBtYXhEb3dubG9hZFNpemUgPSA1MjQyODgwMCAgLy8gNTAgTUJcblxuUkJJLkFwcGx5RnVsbElzb2xhdGlvblNldHRpbmdzKGVuYWJsZUlzb2xhdGlvbiwgZW5hYmxlQ2xpcGJvYXJkLCBlbmFibGVGaWxlVXBsb2FkLCBlbmFibGVGaWxlRG93bmxvYWQsIG1heFVwbG9hZFNpemUsIG1heERvd25sb2FkU2l6ZSlcblxuLy8gRnVsbCBpc29sYXRpb24gc2V0dGluZ3MgYXBwbGllZCB3aXRoIHRoZSBmb2xsb3dpbmcgcGFyYW1ldGVyczpcbi8vIElzb2xhdGlvbiBFbmFibGVkOiBcIiArIGVuYWJsZUlzb2xhdGlvblxuLy8gQ2xpcGJvYXJkIEVuYWJsZWQ6IFwiICsgZW5hYmxlQ2xpcGJvYXJkXG4vLyBGaWxlIFVwbG9hZCBFbmFibGVkOiBcIiArIGVuYWJsZUZpbGVVcGxvYWRcbi8vIEZpbGUgRG93bmxvYWQgRW5hYmxlZDogXCIgKyBlbmFibGVGaWxlRG93bmxvYWRcbi8vIE1heCBVcGxvYWQgU2l6ZTogXCIgKyBtYXhVcGxvYWRTaXplXG4vLyBNYXggRG93bmxvYWQgU2l6ZTogXCIgKyBtYXhEb3dubG9hZFNpemUifSwgeyJuYW1lIjogIlJCSS5BcHBseVJpc2t5V2ViU2V0dGluZ3MgKEJPT0xFQU4sIEJPT0xFQU4sIEJPT0xFQU4sIEJPT0xFQU4sIEJPT0xFQU4sIEJPT0xFQU4sIEJPT0xFQU4sIEJPT0xFQU4pIiwgInBhcmFtZXRlcl9kZXNjIjogIiIsICJkZXNjcmlwdGlvbiI6ICJTZXRzIHVwIFJCSSBwb2xpY3kuIiwgImV4YW1wbGVfY29kZSI6ICJCT09MRUFOIGVuYWJsZUNsaXBib2FyZENvbnRyb2wgPSBUUlVFXG5CT09MRUFOIGVuYWJsZUZpbGVVcGxvYWRDb250cm9sID0gVFJVRVxuQk9PTEVBTiBlbmFibGVGaWxlRG93bmxvYWRDb250cm9sID0gVFJVRVxuQk9PTEVBTiBlbmFibGVQcmludGluZ0NvbnRyb2wgPSBUUlVFXG5CT09MRUFOIGVuYWJsZVNjcmVlbkNhcHR1cmVDb250cm9sID0gVFJVRVxuQk9PTEVBTiBlbmFibGVSZW1vdGVBY2Nlc3NDb250cm9sID0gVFJVRVxuQk9PTEVBTiBlbmFibGVCcm93c2VySXNvbGF0aW9uID0gVFJVRVxuQk9PTEVBTiBlbmFibGVVUkxGaWx0ZXJpbmcgPSBUUlVFXG5cblJCSS5BcHBseVJpc2t5V2ViU2V0dGluZ3MoXG4gICAgZW5hYmxlQ2xpcGJvYXJkQ29udHJvbCxcbiAgICBlbmFibGVGaWxlVXBsb2FkQ29udHJvbCxcbiAgICBlbmFibGVGaWxlRG93bmxvYWRDb250cm9sLFxuICAgIGVuYWJsZVByaW50aW5nQ29udHJvbCxcbiAgICBlbmFibGVTY3JlZW5DYXB0dXJlQ29udHJvbCxcbiAgICBlbmFibGVSZW1vdGVBY2Nlc3NDb250cm9sLFxuICAgIGVuYWJsZUJyb3dzZXJJc29sYXRpb24sXG4gICAgZW5hYmxlVVJMRmlsdGVyaW5nXG4pXG5cbi8vIFJpc2t5IHdlYiBzZXR0aW5ncyBoYXZlIGJlZW4gYXBwbGllZC4iLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIkJPT0xFQU4gZW5hYmxlQ2xpcGJvYXJkQ29udHJvbCA9IFRSVUVcbkJPT0xFQU4gZW5hYmxlRmlsZVVwbG9hZENvbnRyb2wgPSBUUlVFXG5CT09MRUFOIGVuYWJsZUZpbGVEb3dubG9hZENvbnRyb2wgPSBUUlVFXG5CT09MRUFOIGVuYWJsZVByaW50aW5nQ29udHJvbCA9IFRSVUVcbkJPT0xFQU4gZW5hYmxlU2NyZWVuQ2FwdHVyZUNvbnRyb2wgPSBUUlVFXG5CT09MRUFOIGVuYWJsZVJlbW90ZUFjY2Vzc0NvbnRyb2wgPSBUUlVFXG5CT09MRUFOIGVuYWJsZUJyb3dzZXJJc29sYXRpb24gPSBUUlVFXG5CT09MRUFOIGVuYWJsZVVSTEZpbHRlcmluZyA9IFRSVUVcblxuUkJJLkFwcGx5Umlza3lXZWJTZXR0aW5ncyhcbiAgICBlbmFibGVDbGlwYm9hcmRDb250cm9sLFxuICAgIGVuYWJsZUZpbGVVcGxvYWRDb250cm9sLFxuICAgIGVuYWJsZUZpbGVEb3dubG9hZENvbnRyb2wsXG4gICAgZW5hYmxlUHJpbnRpbmdDb250cm9sLFxuICAgIGVuYWJsZVNjcmVlbkNhcHR1cmVDb250cm9sLFxuICAgIGVuYWJsZVJlbW90ZUFjY2Vzc0NvbnRyb2wsXG4gICAgZW5hYmxlQnJvd3Nlcklzb2xhdGlvbixcbiAgICBlbmFibGVVUkxGaWx0ZXJpbmdcbilcblxuLy8gUmlza3kgd2ViIHNldHRpbmdzIGhhdmUgYmVlbiBhcHBsaWVkLiJ9LCB7Im5hbWUiOiAiUkJJLlNldEJsb2NrUGFzc3dvcmRNYW5hZ2VyIChCT09MRUFOKSIsICJwYXJhbWV0ZXJfZGVzYyI6ICIiLCAiZGVzY3JpcHRpb24iOiAiRGVmaW5lcyBpZiB0aGUgcmVtb3RlIGJyb3dzZXIncyBwYXNzd29yZCBtYW5hZ2VyIGNhbiBiZSB1c2VkIGZvciBpc29sYXRlZCBzaXRlcyAod2hvbGUgc2Vzc2lvbikuIiwgImV4YW1wbGVfY29kZSI6ICJCT09MRUFOIGJsb2NrUGFzc3dvcmRNYW5hZ2VyID0gVFJVRVxuXG5SQkkuU2V0QmxvY2tQYXNzd29yZE1hbmFnZXIoYmxvY2tQYXNzd29yZE1hbmFnZXIpXG5cbklGIGJsb2NrUGFzc3dvcmRNYW5hZ2VyIFRIRU4ge1xuICAgIC8vIFwiUGFzc3dvcmQgbWFuYWdlciBibG9ja2luZyBpcyBlbmFibGVkLlwiXG59IEVMU0Uge1xuICAgIC8vIFwiUGFzc3dvcmQgbWFuYWdlciBibG9ja2luZyBpcyBkaXNhYmxlZC5cIlxufSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiQk9PTEVBTiBibG9ja1Bhc3N3b3JkTWFuYWdlciA9IFRSVUVcblxuUkJJLlNldEJsb2NrUGFzc3dvcmRNYW5hZ2VyKGJsb2NrUGFzc3dvcmRNYW5hZ2VyKVxuXG5JRiBibG9ja1Bhc3N3b3JkTWFuYWdlciBUSEVOIHtcbiAgICAvLyBcIlBhc3N3b3JkIG1hbmFnZXIgYmxvY2tpbmcgaXMgZW5hYmxlZC5cIlxufSBFTFNFIHtcbiAgICAvLyBcIlBhc3N3b3JkIG1hbmFnZXIgYmxvY2tpbmcgaXMgZGlzYWJsZWQuXCJcbn0ifSwgeyJuYW1lIjogIlJCSS5TZXRCbG9ja1ByaW50aW5nIChCT09MRUFOKSIsICJwYXJhbWV0ZXJfZGVzYyI6ICIiLCAiZGVzY3JpcHRpb24iOiAiRGVmaW5lcyBpZiBpc29sYXRlZCBzaXRlcyBhbmQgZG9jdW1lbnRzIGNhbiBiZSBwcmludGVkICh3aG9sZSBzZXNzaW9uKS4iLCAiZXhhbXBsZV9jb2RlIjogIkJPT0xFQU4gYmxvY2tQcmludGluZyA9IFRSVUVcblxuUkJJLlNldEJsb2NrUHJpbnRpbmcoYmxvY2tQcmludGluZylcblxuLy8gXCJQcmludGluZyBoYXMgYmVlbiBibG9ja2VkOiBcIiArIGJsb2NrUHJpbnRpbmciLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIkJPT0xFQU4gYmxvY2tQcmludGluZyA9IFRSVUVcblxuUkJJLlNldEJsb2NrUHJpbnRpbmcoYmxvY2tQcmludGluZylcblxuLy8gXCJQcmludGluZyBoYXMgYmVlbiBibG9ja2VkOiBcIiArIGJsb2NrUHJpbnRpbmcifSwgeyJuYW1lIjogIlJCSS5TZXRDbGlwYm9hcmRQb2xpY3lCbG9jayAoUkJJLkNsaXBib2FyZENvbnRyb2xMaXN0KSIsICJwYXJhbWV0ZXJfZGVzYyI6ICIiLCAiZGVzY3JpcHRpb24iOiAiQmxvY2tzIGNsaXBib2FyZCB1c2FnZSBleGNlcHQgZm9yIHRoZSBnaXZlbiBleGNlcHRpb25zLiIsICJleGFtcGxlX2NvZGUiOiAiU1RSSU5HIHBvbGljeSA9IFwibm9uZVwiICAvLyBPcHRpb25zOiBcIm5vbmVcIiwgXCJjb3B5XCIsIFwicGFzdGVcIiwgXCJjb3B5JnBhc3RlXCJcblxuLy8gQXBwbHkgdGhlIGNsaXBib2FyZCBwb2xpY3lcblJCSS5BcHBseUNsaXBib2FyZFBvbGljeShwb2xpY3kpXG5cbi8vIENsaXBib2FyZCBwb2xpY3kgc2V0IHRvOiBcIm5vbmVcIiIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiU1RSSU5HIHBvbGljeSA9IFwibm9uZVwiICAvLyBPcHRpb25zOiBcIm5vbmVcIiwgXCJjb3B5XCIsIFwicGFzdGVcIiwgXCJjb3B5JnBhc3RlXCJcblxuLy8gQXBwbHkgdGhlIGNsaXBib2FyZCBwb2xpY3lcblJCSS5BcHBseUNsaXBib2FyZFBvbGljeShwb2xpY3kpXG5cbi8vIENsaXBib2FyZCBwb2xpY3kgc2V0IHRvOiBcIm5vbmVcIiJ9LCB7Im5hbWUiOiAiUkJJLlNldENsaXBib2FyZFBvbGljeVBlcm1pdCAoUkJJLkNsaXBib2FyZENvbnRyb2xMaXN0KSIsICJwYXJhbWV0ZXJfZGVzYyI6ICIiLCAiZGVzY3JpcHRpb24iOiAiXCJQZXJtaXRzIGNsaXBib2FyZCB1c2FnZSBleGNlcHQgZm9yIHRoZSBnaXZlbiBleGNlcHRpb25zLlwiIiwgImV4YW1wbGVfY29kZSI6ICIvLyBBc3N1bWUgY2xpcGJvYXJkUG9saWN5TGlzdCBpcyBhIHByZWRlZmluZWQgUkJJLkNsaXBib2FyZENvbnRyb2xMaXN0XG5SQkkuQ2xpcGJvYXJkQ29udHJvbExpc3QgY2xpcGJvYXJkUG9saWN5TGlzdCA9IFtcImV4YW1wbGVfY2xpcGJvYXJkX3BvbGljeV9saXN0XCJdXG5cbi8vIFNldCB0aGUgY2xpcGJvYXJkIHBvbGljeSB0byBwZXJtaXQgYmFzZWQgb24gdGhlIGNsaXBib2FyZFBvbGljeUxpc3RcblJCSS5TZXRDbGlwYm9hcmRQb2xpY3lQZXJtaXQoY2xpcGJvYXJkUG9saWN5TGlzdClcblxuLy8gUHJpbnQgYSBjb25maXJtYXRpb24gbWVzc2FnZSB0byB0aGUgY29uc29sZVxuLy8gQ2xpcGJvYXJkIHBvbGljeSBzZXQgdG8gcGVybWl0IGJhc2VkIG9uIHRoZSBwcm92aWRlZCBsaXN0LiIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiLy8gQXNzdW1lIGNsaXBib2FyZFBvbGljeUxpc3QgaXMgYSBwcmVkZWZpbmVkIFJCSS5DbGlwYm9hcmRDb250cm9sTGlzdFxuUkJJLkNsaXBib2FyZENvbnRyb2xMaXN0IGNsaXBib2FyZFBvbGljeUxpc3QgPSBbXCJleGFtcGxlX2NsaXBib2FyZF9wb2xpY3lfbGlzdFwiXVxuXG4vLyBTZXQgdGhlIGNsaXBib2FyZCBwb2xpY3kgdG8gcGVybWl0IGJhc2VkIG9uIHRoZSBjbGlwYm9hcmRQb2xpY3lMaXN0XG5SQkkuU2V0Q2xpcGJvYXJkUG9saWN5UGVybWl0KGNsaXBib2FyZFBvbGljeUxpc3QpXG5cbi8vIFByaW50IGEgY29uZmlybWF0aW9uIG1lc3NhZ2UgdG8gdGhlIGNvbnNvbGVcbi8vIENsaXBib2FyZCBwb2xpY3kgc2V0IHRvIHBlcm1pdCBiYXNlZCBvbiB0aGUgcHJvdmlkZWQgbGlzdC4ifSwgeyJuYW1lIjogIlJCSS5TZXREb3dubG9hZEZpbGVDb250cm9sQmxvY2sgKFVDRS5GaWxlVHJhbnNmZXJDb250cm9sTGlzdCkiLCAicGFyYW1ldGVyX2Rlc2MiOiAiIiwgImRlc2NyaXB0aW9uIjogIkJsb2NrcyBmaWxlIGRvd25sb2FkcyBleGNlcHQgZm9yIHRoZSBnaXZlbiBleGNlcHRpb25zLiIsICJleGFtcGxlX2NvZGUiOiAiLy8gRGVmaW5lIGEgVUNFLkZpbGVUcmFuc2ZlckNvbnRyb2xMaXN0IHdpdGggc29tZSBjb250cm9sIHNldHRpbmdzXG5VQ0UuRmlsZVRyYW5zZmVyQ29udHJvbExpc3QgY29udHJvbExpc3QgPSB7XG4gICAgXCJibG9ja0V4dGVuc2lvbnNcIjogXCJleGUsYmF0LGNtZFwiLFxuICAgIFwibWF4RmlsZVNpemVcIjogXCIxMDQ4NTc2MFwiIC8vIDEwIE1CIGluIGJ5dGVzXG59XG5cbi8vIFNldCB0aGUgZG93bmxvYWQgZmlsZSBjb250cm9sIGJsb2NrIHVzaW5nIHRoZSBkZWZpbmVkIGNvbnRyb2wgbGlzdFxuUkJJLlNldERvd25sb2FkRmlsZUNvbnRyb2xCbG9jayhjb250cm9sTGlzdClcblxuLy8gRG93bmxvYWQgZmlsZSBjb250cm9sIGJsb2NrIGhhcyBiZWVuIHNldCB3aXRoIHRoZSBzcGVjaWZpZWQgY29udHJvbCBsaXN0LiIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiLy8gRGVmaW5lIGEgVUNFLkZpbGVUcmFuc2ZlckNvbnRyb2xMaXN0IHdpdGggc29tZSBjb250cm9sIHNldHRpbmdzXG5VQ0UuRmlsZVRyYW5zZmVyQ29udHJvbExpc3QgY29udHJvbExpc3QgPSB7XG4gICAgXCJibG9ja0V4dGVuc2lvbnNcIjogXCJleGUsYmF0LGNtZFwiLFxuICAgIFwibWF4RmlsZVNpemVcIjogXCIxMDQ4NTc2MFwiIC8vIDEwIE1CIGluIGJ5dGVzXG59XG5cbi8vIFNldCB0aGUgZG93bmxvYWQgZmlsZSBjb250cm9sIGJsb2NrIHVzaW5nIHRoZSBkZWZpbmVkIGNvbnRyb2wgbGlzdFxuUkJJLlNldERvd25sb2FkRmlsZUNvbnRyb2xCbG9jayhjb250cm9sTGlzdClcblxuLy8gRG93bmxvYWQgZmlsZSBjb250cm9sIGJsb2NrIGhhcyBiZWVuIHNldCB3aXRoIHRoZSBzcGVjaWZpZWQgY29udHJvbCBsaXN0LiJ9LCB7Im5hbWUiOiAiUkJJLlNldERvd25sb2FkRmlsZUNvbnRyb2xQZXJtaXQgKFVDRS5GaWxlVHJhbnNmZXJDb250cm9sTGlzdCkiLCAicGFyYW1ldGVyX2Rlc2MiOiAiIiwgImRlc2NyaXB0aW9uIjogIlwiUGVybWl0cyBmaWxlIGRvd25sb2FkcyBleGNlcHQgZm9yIHRoZSBnaXZlbiBleGNlcHRpb25zLlwiIiwgImV4YW1wbGVfY29kZSI6ICIvLyBEZWZpbmUgYSBmaWxlIHRyYW5zZmVyIGNvbnRyb2wgbGlzdCB3aXRoIHBlcm1pdHRlZCBmaWxlIHR5cGVzXG5VQ0UuRmlsZVRyYW5zZmVyQ29udHJvbExpc3QgcGVybWl0dGVkRmlsZXMgPSB7XG4gICAgXCJhcHBsaWNhdGlvbi9wZGZcIixcbiAgICBcImltYWdlL2pwZWdcIixcbiAgICBcImltYWdlL3BuZ1wiXG59XG5cbi8vIFNldCB0aGUgZG93bmxvYWQgZmlsZSBjb250cm9sIHRvIHBlcm1pdCB0aGUgc3BlY2lmaWVkIGZpbGUgdHlwZXNcblJCSS5TZXREb3dubG9hZEZpbGVDb250cm9sUGVybWl0KHBlcm1pdHRlZEZpbGVzKVxuXG4vLyBQZXJtaXR0ZWQgZmlsZSB0eXBlcyBmb3IgZG93bmxvYWQgaGF2ZSBiZWVuIHNldC4iLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIi8vIERlZmluZSBhIGZpbGUgdHJhbnNmZXIgY29udHJvbCBsaXN0IHdpdGggcGVybWl0dGVkIGZpbGUgdHlwZXNcblVDRS5GaWxlVHJhbnNmZXJDb250cm9sTGlzdCBwZXJtaXR0ZWRGaWxlcyA9IHtcbiAgICBcImFwcGxpY2F0aW9uL3BkZlwiLFxuICAgIFwiaW1hZ2UvanBlZ1wiLFxuICAgIFwiaW1hZ2UvcG5nXCJcbn1cblxuLy8gU2V0IHRoZSBkb3dubG9hZCBmaWxlIGNvbnRyb2wgdG8gcGVybWl0IHRoZSBzcGVjaWZpZWQgZmlsZSB0eXBlc1xuUkJJLlNldERvd25sb2FkRmlsZUNvbnRyb2xQZXJtaXQocGVybWl0dGVkRmlsZXMpXG5cbi8vIFBlcm1pdHRlZCBmaWxlIHR5cGVzIGZvciBkb3dubG9hZCBoYXZlIGJlZW4gc2V0LiJ9LCB7Im5hbWUiOiAiUkJJLlNldFNob3dCb3JkZXIgKEJPT0xFQU4pIiwgInBhcmFtZXRlcl9kZXNjIjogIiIsICJkZXNjcmlwdGlvbiI6ICJEZWZpbmVzIGlmIGlzb2xhdGVkIHNpdGVzIGFyZSBzaG93biB3aXRoaW4gdGhlIGdyZWVuIGJvcmRlciAod2hvbGUgc2Vzc2lvbikuIiwgImV4YW1wbGVfY29kZSI6ICIvLyBEZWZpbmUgYSBCT09MRUFOIHZhcmlhYmxlIHRvIGRldGVybWluZSB3aGV0aGVyIHRvIHNob3cgdGhlIGJvcmRlclxuQk9PTEVBTiBzaG93Qm9yZGVyID0gVFJVRVxuXG4vLyBTZXQgdGhlIGJvcmRlciB2aXNpYmlsaXR5IHVzaW5nIHRoZSBSQkkuU2V0U2hvd0JvcmRlciBmdW5jdGlvblxuUkJJLlNldFNob3dCb3JkZXIoc2hvd0JvcmRlcilcblxuLy8gUHJpbnQgYSBtZXNzYWdlIHRvIHRoZSBjb25zb2xlIGZvciBkZWJ1Z2dpbmdcbi8vIFwiQm9yZGVyIHZpc2liaWxpdHkgc2V0IHRvOiBcIiArIHNob3dCb3JkZXIiLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIi8vIERlZmluZSBhIEJPT0xFQU4gdmFyaWFibGUgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgdG8gc2hvdyB0aGUgYm9yZGVyXG5CT09MRUFOIHNob3dCb3JkZXIgPSBUUlVFXG5cbi8vIFNldCB0aGUgYm9yZGVyIHZpc2liaWxpdHkgdXNpbmcgdGhlIFJCSS5TZXRTaG93Qm9yZGVyIGZ1bmN0aW9uXG5SQkkuU2V0U2hvd0JvcmRlcihzaG93Qm9yZGVyKVxuXG4vLyBQcmludCBhIG1lc3NhZ2UgdG8gdGhlIGNvbnNvbGUgZm9yIGRlYnVnZ2luZ1xuLy8gXCJCb3JkZXIgdmlzaWJpbGl0eSBzZXQgdG86IFwiICsgc2hvd0JvcmRlciJ9LCB7Im5hbWUiOiAiUkJJLlNldFNob3dEaWFsb2cgKEJPT0xFQU4pIiwgInBhcmFtZXRlcl9kZXNjIjogIiIsICJkZXNjcmlwdGlvbiI6ICJEZWZpbmVzIGlmIHRoZSBSQkkgZGlhbG9nIHNob3VsZCBiZSBzaG93biBhdCBzZXNzaW9uIHN0YXJ0LiIsICJleGFtcGxlX2NvZGUiOiAiLy8gRGVmaW5lIGEgQk9PTEVBTiB2YXJpYWJsZSB0byBjb250cm9sIHRoZSBkaWFsb2cgZGlzcGxheVxuQk9PTEVBTiBzaG93RGlhbG9nID0gVFJVRVxuXG4vLyBTZXQgdGhlIFJCSSBkaWFsb2cgZGlzcGxheSBiYXNlZCBvbiB0aGUgQk9PTEVBTiB2YXJpYWJsZVxuUkJJLlNldFNob3dEaWFsb2coc2hvd0RpYWxvZylcblxuLy8gUkJJIGRpYWxvZyBkaXNwbGF5IHNldCB0bzogc2hvd0RpYWxvZyIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiLy8gRGVmaW5lIGEgQk9PTEVBTiB2YXJpYWJsZSB0byBjb250cm9sIHRoZSBkaWFsb2cgZGlzcGxheVxuQk9PTEVBTiBzaG93RGlhbG9nID0gVFJVRVxuXG4vLyBTZXQgdGhlIFJCSSBkaWFsb2cgZGlzcGxheSBiYXNlZCBvbiB0aGUgQk9PTEVBTiB2YXJpYWJsZVxuUkJJLlNldFNob3dEaWFsb2coc2hvd0RpYWxvZylcblxuLy8gUkJJIGRpYWxvZyBkaXNwbGF5IHNldCB0bzogc2hvd0RpYWxvZyJ9LCB7Im5hbWUiOiAiUkJJLlNldFNpdGVSZWFkT25seSAoKSIsICJwYXJhbWV0ZXJfZGVzYyI6ICIiLCAiZGVzY3JpcHRpb24iOiAiU2V0cyB0aGUgaXNvbGF0ZWQgc2l0ZSB0byByZWFkIG9ubHkgKHBlciBzaXRlKS4iLCAiZXhhbXBsZV9jb2RlIjogIi8vIEFzc3VtaW5nIFJCSS5TZXRTaXRlUmVhZE9ubHkoKSBpcyBhIHZhbGlkIGZ1bmN0aW9uIHRoYXQgc2V0cyB0aGUgc2l0ZSB0byByZWFkLW9ubHkgbW9kZVxuUkJJLlNldFNpdGVSZWFkT25seShUUlVFKVxuLy8gU2l0ZSBoYXMgYmVlbiBzZXQgdG8gcmVhZC1vbmx5IG1vZGUuIiwgInJldmlld2VkIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICIvLyBBc3N1bWluZyBSQkkuU2V0U2l0ZVJlYWRPbmx5KCkgaXMgYSB2YWxpZCBmdW5jdGlvbiB0aGF0IHNldHMgdGhlIHNpdGUgdG8gcmVhZC1vbmx5IG1vZGVcblJCSS5TZXRTaXRlUmVhZE9ubHkoVFJVRSlcbi8vIFNpdGUgaGFzIGJlZW4gc2V0IHRvIHJlYWQtb25seSBtb2RlLiJ9LCB7Im5hbWUiOiAiUkJJLlNldFVwbG9hZEZpbGVDb250cm9sQmxvY2sgKFVDRS5GaWxlVHJhbnNmZXJDb250cm9sTGlzdCkiLCAicGFyYW1ldGVyX2Rlc2MiOiAiIiwgImRlc2NyaXB0aW9uIjogIkJsb2NrcyBmaWxlIHVwbG9hZHMgZXhjZXB0IGZvciB0aGUgZ2l2ZW4gZXhjZXB0aW9ucy4iLCAiZXhhbXBsZV9jb2RlIjogIi8vIEluaXRpYWxpemUgYSBVQ0UuRmlsZVRyYW5zZmVyQ29udHJvbExpc3Qgd2l0aCBleGNlcHRpb25zXG5VQ0UuRmlsZVRyYW5zZmVyQ29udHJvbExpc3QgZXhjZXB0aW9ucyA9IFtcIkFsbG93ZWRGaWxlVHlwZXNcIl1cblxuLy8gU2V0IHRoZSB1cGxvYWQgZmlsZSBjb250cm9sIGJsb2NrIHdpdGggdGhlIGV4Y2VwdGlvbnMgbGlzdFxuUkJJLlNldFVwbG9hZEZpbGVDb250cm9sQmxvY2soZXhjZXB0aW9ucylcblxuLy8gRmlsZSB1cGxvYWRzIGFyZSBibG9ja2VkIGV4Y2VwdCBmb3IgdGhlIHNwZWNpZmllZCBleGNlcHRpb25zLiIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiLy8gSW5pdGlhbGl6ZSBhIFVDRS5GaWxlVHJhbnNmZXJDb250cm9sTGlzdCB3aXRoIGV4Y2VwdGlvbnNcblVDRS5GaWxlVHJhbnNmZXJDb250cm9sTGlzdCBleGNlcHRpb25zID0gW1wiQWxsb3dlZEZpbGVUeXBlc1wiXVxuXG4vLyBTZXQgdGhlIHVwbG9hZCBmaWxlIGNvbnRyb2wgYmxvY2sgd2l0aCB0aGUgZXhjZXB0aW9ucyBsaXN0XG5SQkkuU2V0VXBsb2FkRmlsZUNvbnRyb2xCbG9jayhleGNlcHRpb25zKVxuXG4vLyBGaWxlIHVwbG9hZHMgYXJlIGJsb2NrZWQgZXhjZXB0IGZvciB0aGUgc3BlY2lmaWVkIGV4Y2VwdGlvbnMuIn0sIHsibmFtZSI6ICJSQkkuU2V0VXBsb2FkRmlsZUNvbnRyb2xQZXJtaXQgKFVDRS5GaWxlVHJhbnNmZXJDb250cm9sTGlzdCkiLCAicGFyYW1ldGVyX2Rlc2MiOiAiIiwgImRlc2NyaXB0aW9uIjogIlwiUGVybWl0cyBmaWxlIHVwbG9hZHMgZXhjZXB0IGZvciB0aGUgZ2l2ZW4gZXhjZXB0aW9ucy5cIiIsICJleGFtcGxlX2NvZGUiOiAiLy8gQXNzdW1lIHdlIGhhdmUgYSBVQ0UuRmlsZVRyYW5zZmVyQ29udHJvbExpc3Qgb2JqZWN0XG5VQ0UuRmlsZVRyYW5zZmVyQ29udHJvbExpc3QgZmlsZVRyYW5zZmVyQ29udHJvbExpc3QgPSBVQ0UuRmlsZVRyYW5zZmVyQ29udHJvbExpc3QoKVxuXG4vLyBBZGQgc29tZSBmaWxlIHRyYW5zZmVyIGNvbnRyb2wgc2V0dGluZ3MgdG8gdGhlIGxpc3Rcbi8vIChUaGlzIHBhcnQgaXMgaHlwb3RoZXRpY2FsIGFzIHRoZSBhY3R1YWwgbWV0aG9kIHRvIGFkZCBzZXR0aW5ncyBkZXBlbmRzIG9uIHRoZSBhdmFpbGFibGUgZnVuY3Rpb25zKVxuZmlsZVRyYW5zZmVyQ29udHJvbExpc3QuQWRkKFwiZXhhbXBsZV9zZXR0aW5nXzFcIilcbmZpbGVUcmFuc2ZlckNvbnRyb2xMaXN0LkFkZChcImV4YW1wbGVfc2V0dGluZ18yXCIpXG5cbi8vIFVzZSB0aGUgUkJJLlNldFVwbG9hZEZpbGVDb250cm9sUGVybWl0IGZ1bmN0aW9uIHRvIHNldCB0aGUgZmlsZSB1cGxvYWQgY29udHJvbCBwZXJtaXNzaW9uc1xuUkJJLlNldFVwbG9hZEZpbGVDb250cm9sUGVybWl0KGZpbGVUcmFuc2ZlckNvbnRyb2xMaXN0KVxuXG4vLyBGaWxlIHVwbG9hZCBjb250cm9sIHBlcm1pc3Npb25zIGhhdmUgYmVlbiBzZXQuIiwgInJldmlld2VkIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICIvLyBBc3N1bWUgd2UgaGF2ZSBhIFVDRS5GaWxlVHJhbnNmZXJDb250cm9sTGlzdCBvYmplY3RcblVDRS5GaWxlVHJhbnNmZXJDb250cm9sTGlzdCBmaWxlVHJhbnNmZXJDb250cm9sTGlzdCA9IFVDRS5GaWxlVHJhbnNmZXJDb250cm9sTGlzdCgpXG5cbi8vIEFkZCBzb21lIGZpbGUgdHJhbnNmZXIgY29udHJvbCBzZXR0aW5ncyB0byB0aGUgbGlzdFxuLy8gKFRoaXMgcGFydCBpcyBoeXBvdGhldGljYWwgYXMgdGhlIGFjdHVhbCBtZXRob2QgdG8gYWRkIHNldHRpbmdzIGRlcGVuZHMgb24gdGhlIGF2YWlsYWJsZSBmdW5jdGlvbnMpXG5maWxlVHJhbnNmZXJDb250cm9sTGlzdC5BZGQoXCJleGFtcGxlX3NldHRpbmdfMVwiKVxuZmlsZVRyYW5zZmVyQ29udHJvbExpc3QuQWRkKFwiZXhhbXBsZV9zZXR0aW5nXzJcIilcblxuLy8gVXNlIHRoZSBSQkkuU2V0VXBsb2FkRmlsZUNvbnRyb2xQZXJtaXQgZnVuY3Rpb24gdG8gc2V0IHRoZSBmaWxlIHVwbG9hZCBjb250cm9sIHBlcm1pc3Npb25zXG5SQkkuU2V0VXBsb2FkRmlsZUNvbnRyb2xQZXJtaXQoZmlsZVRyYW5zZmVyQ29udHJvbExpc3QpXG5cbi8vIEZpbGUgdXBsb2FkIGNvbnRyb2wgcGVybWlzc2lvbnMgaGF2ZSBiZWVuIHNldC4ifSwgeyJuYW1lIjogIlJlZ0V4SlNpLkFkZCAoUmVnRXhKU2kuTGlzdCwgUmVnRXhKU2kpIiwgInBhcmFtZXRlcl9kZXNjIjogIiIsICJkZXNjcmlwdGlvbiI6ICJBZGRzIHJlZ3VsYXIgZXhwcmVzc2lvbiB0byB0aGUgbGlzdC4iLCAiZXhhbXBsZV9jb2RlIjogIi8vIENyZWF0ZSBhIFJlZ0V4SlNpLkxpc3Qgb2JqZWN0XG5SZWdFeEpTaS5MaXN0IHJlZ2V4TGlzdCA9IFJlZ0V4SlNpLkxpc3QoKVxuXG4vLyBDcmVhdGUgYSBmZXcgUmVnRXhKU2kgb2JqZWN0c1xuUmVnRXhKU2kgcmVnZXgxID0gVG9SZWdFeEpTaShcInBhdHRlcm4xXCIpXG5SZWdFeEpTaSByZWdleDIgPSBUb1JlZ0V4SlNpKFwicGF0dGVybjJcIilcblJlZ0V4SlNpIHJlZ2V4MyA9IFRvUmVnRXhKU2koXCJwYXR0ZXJuM1wiKVxuXG4vLyBBZGQgdGhlIFJlZ0V4SlNpIG9iamVjdHMgdG8gdGhlIFJlZ0V4SlNpLkxpc3RcblJlZ0V4SlNpLkFkZChyZWdleExpc3QsIHJlZ2V4MSlcblJlZ0V4SlNpLkFkZChyZWdleExpc3QsIHJlZ2V4MilcblJlZ0V4SlNpLkFkZChyZWdleExpc3QsIHJlZ2V4MylcblxuLy8gUHJpbnQgdGhlIGxpc3QgdG8gdGhlIGNvbnNvbGUgZm9yIGRlYnVnZ2luZ1xuLy8gXCJSZWdFeEpTaSBMaXN0OiBcIiArIHJlZ2V4TGlzdCIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiLy8gQ3JlYXRlIGEgUmVnRXhKU2kuTGlzdCBvYmplY3RcblJlZ0V4SlNpLkxpc3QgcmVnZXhMaXN0ID0gUmVnRXhKU2kuTGlzdCgpXG5cbi8vIENyZWF0ZSBhIGZldyBSZWdFeEpTaSBvYmplY3RzXG5SZWdFeEpTaSByZWdleDEgPSBUb1JlZ0V4SlNpKFwicGF0dGVybjFcIilcblJlZ0V4SlNpIHJlZ2V4MiA9IFRvUmVnRXhKU2koXCJwYXR0ZXJuMlwiKVxuUmVnRXhKU2kgcmVnZXgzID0gVG9SZWdFeEpTaShcInBhdHRlcm4zXCIpXG5cbi8vIEFkZCB0aGUgUmVnRXhKU2kgb2JqZWN0cyB0byB0aGUgUmVnRXhKU2kuTGlzdFxuUmVnRXhKU2kuQWRkKHJlZ2V4TGlzdCwgcmVnZXgxKVxuUmVnRXhKU2kuQWRkKHJlZ2V4TGlzdCwgcmVnZXgyKVxuUmVnRXhKU2kuQWRkKHJlZ2V4TGlzdCwgcmVnZXgzKVxuXG4vLyBQcmludCB0aGUgbGlzdCB0byB0aGUgY29uc29sZSBmb3IgZGVidWdnaW5nXG4vLyBcIlJlZ0V4SlNpIExpc3Q6IFwiICsgcmVnZXhMaXN0In0sIHsibmFtZSI6ICJSZWdFeEpTaS5BZGQgKFJlZ0V4SlNpLkxpc3QsIFNUUklORykiLCAicGFyYW1ldGVyX2Rlc2MiOiAiIiwgImRlc2NyaXB0aW9uIjogIkNvbXBpbGVzIHJlZ3VsYXIgZXhwcmVzc2lvbiBhbmQgYWRkcyBpdCB0byB0aGUgbGlzdC4iLCAiZXhhbXBsZV9jb2RlIjogIi8vIENyZWF0ZSBhbiBlbXB0eSBSZWdFeEpTaS5MaXN0XG5SZWdFeEpTaS5MaXN0IHJlZ2V4TGlzdCA9IFJlZ0V4SlNpLkxpc3QoKVxuXG4vLyBBZGQgcmVndWxhciBleHByZXNzaW9uIHBhdHRlcm5zIHRvIHRoZSBsaXN0XG5SZWdFeEpTaS5BZGQocmVnZXhMaXN0LCBcIl5odHRwcz86Ly8uKlwiKSAvLyBNYXRjaGVzIFVSTHMgc3RhcnRpbmcgd2l0aCBodHRwIG9yIGh0dHBzXG5SZWdFeEpTaS5BZGQocmVnZXhMaXN0LCBcIi4qXFxcXC5leGFtcGxlXFxcXC5jb20kXCIpIC8vIE1hdGNoZXMgVVJMcyBlbmRpbmcgd2l0aCAuZXhhbXBsZS5jb21cblxuLy8gRGVmaW5lIGEgdGVzdCBVUkxcblNUUklORyB0ZXN0VXJsID0gXCJodHRwczovL3d3dy5leGFtcGxlLmNvbVwiXG5cbi8vIENoZWNrIGlmIHRoZSB0ZXN0IFVSTCBtYXRjaGVzIGFueSBvZiB0aGUgcGF0dGVybnMgaW4gdGhlIGxpc3RcbkJPT0xFQU4gaXNNYXRjaCA9IEZBTFNFXG5GT1IgcGF0dGVybiBJTiByZWdleExpc3Qge1xuICAgIElGIFJlZ0V4SlNpLk1hdGNoZXMocGF0dGVybiwgdGVzdFVybCkgVEhFTiB7XG4gICAgICAgIGlzTWF0Y2ggPSBUUlVFXG4gICAgICAgIEJSRUFLXG4gICAgfVxufVxuXG4vLyBUaGUgVVJMIG1hdGNoZXMgb25lIG9mIHRoZSBwYXR0ZXJucy5cbklGIGlzTWF0Y2ggVEhFTiB7XG4gICAgLy8gVGhlIFVSTCBtYXRjaGVzIG9uZSBvZiB0aGUgcGF0dGVybnMuXG59IEVMU0Uge1xuICAgIC8vIFRoZSBVUkwgZG9lcyBub3QgbWF0Y2ggYW55IG9mIHRoZSBwYXR0ZXJucy5cbn0iLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIi8vIENyZWF0ZSBhbiBlbXB0eSBSZWdFeEpTaS5MaXN0XG5SZWdFeEpTaS5MaXN0IHJlZ2V4TGlzdCA9IFJlZ0V4SlNpLkxpc3QoKVxuXG4vLyBBZGQgcmVndWxhciBleHByZXNzaW9uIHBhdHRlcm5zIHRvIHRoZSBsaXN0XG5SZWdFeEpTaS5BZGQocmVnZXhMaXN0LCBcIl5odHRwcz86Ly8uKlwiKSAvLyBNYXRjaGVzIFVSTHMgc3RhcnRpbmcgd2l0aCBodHRwIG9yIGh0dHBzXG5SZWdFeEpTaS5BZGQocmVnZXhMaXN0LCBcIi4qXFwuZXhhbXBsZVxcLmNvbSRcIikgLy8gTWF0Y2hlcyBVUkxzIGVuZGluZyB3aXRoIC5leGFtcGxlLmNvbVxuXG4vLyBEZWZpbmUgYSB0ZXN0IFVSTFxuU1RSSU5HIHRlc3RVcmwgPSBcImh0dHBzOi8vd3d3LmV4YW1wbGUuY29tXCJcblxuLy8gQ2hlY2sgaWYgdGhlIHRlc3QgVVJMIG1hdGNoZXMgYW55IG9mIHRoZSBwYXR0ZXJucyBpbiB0aGUgbGlzdFxuQk9PTEVBTiBpc01hdGNoID0gRkFMU0VcbkZPUiBwYXR0ZXJuIElOIHJlZ2V4TGlzdCB7XG4gICAgSUYgUmVnRXhKU2kuTWF0Y2hlcyhwYXR0ZXJuLCB0ZXN0VXJsKSBUSEVOIHtcbiAgICAgICAgaXNNYXRjaCA9IFRSVUVcbiAgICAgICAgQlJFQUtcbiAgICB9XG59XG5cbi8vIFRoZSBVUkwgbWF0Y2hlcyBvbmUgb2YgdGhlIHBhdHRlcm5zLlxuSUYgaXNNYXRjaCBUSEVOIHtcbiAgICAvLyBUaGUgVVJMIG1hdGNoZXMgb25lIG9mIHRoZSBwYXR0ZXJucy5cbn0gRUxTRSB7XG4gICAgLy8gVGhlIFVSTCBkb2VzIG5vdCBtYXRjaCBhbnkgb2YgdGhlIHBhdHRlcm5zLlxufSJ9LCB7Im5hbWUiOiAiU3RvcFdhdGNoLlJlc2V0IChTVFJJTkcpIiwgInBhcmFtZXRlcl9kZXNjIjogIiIsICJkZXNjcmlwdGlvbiI6ICJSZXNldHMgYSBzdG9wd2F0Y2guIiwgImV4YW1wbGVfY29kZSI6ICIvLyBEZWZpbmUgdGhlIG5hbWUgb2YgdGhlIHN0b3B3YXRjaFxuU1RSSU5HIHN0b3B3YXRjaE5hbWUgPSBcImV4YW1wbGVTdG9wd2F0Y2hcIlxuXG4vLyBTdGFydCB0aGUgc3RvcHdhdGNoXG5TdG9wV2F0Y2guU3RhcnQoc3RvcHdhdGNoTmFtZSlcbi8vIFN0b3B3YXRjaCBzdGFydGVkOiBleGFtcGxlU3RvcHdhdGNoXG5cbi8vIFBlcmZvcm0gc29tZSBvcGVyYXRpb25zXG4vLyAuLi5cblxuLy8gUmVzZXQgdGhlIHN0b3B3YXRjaFxuU3RvcFdhdGNoLlJlc2V0KHN0b3B3YXRjaE5hbWUpXG4vLyBTdG9wd2F0Y2ggcmVzZXQ6IGV4YW1wbGVTdG9wd2F0Y2giLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIi8vIERlZmluZSB0aGUgbmFtZSBvZiB0aGUgc3RvcHdhdGNoXG5TVFJJTkcgc3RvcHdhdGNoTmFtZSA9IFwiZXhhbXBsZVN0b3B3YXRjaFwiXG5cbi8vIFN0YXJ0IHRoZSBzdG9wd2F0Y2hcblN0b3BXYXRjaC5TdGFydChzdG9wd2F0Y2hOYW1lKVxuLy8gU3RvcHdhdGNoIHN0YXJ0ZWQ6IGV4YW1wbGVTdG9wd2F0Y2hcblxuLy8gUGVyZm9ybSBzb21lIG9wZXJhdGlvbnNcbi8vIC4uLlxuXG4vLyBSZXNldCB0aGUgc3RvcHdhdGNoXG5TdG9wV2F0Y2guUmVzZXQoc3RvcHdhdGNoTmFtZSlcbi8vIFN0b3B3YXRjaCByZXNldDogZXhhbXBsZVN0b3B3YXRjaCJ9LCB7Im5hbWUiOiAiU3RvcFdhdGNoLlN0YXJ0IChTVFJJTkcpIiwgInBhcmFtZXRlcl9kZXNjIjogIiIsICJkZXNjcmlwdGlvbiI6ICJTdGFydHMgYSBzdG9wd2F0Y2guIiwgImV4YW1wbGVfY29kZSI6ICIvLyBTdGFydCB0aGUgc3RvcHdhdGNoIHdpdGggYSBnaXZlbiBuYW1lXG5TdG9wV2F0Y2guU3RhcnQoXCJFeGFtcGxlVGltZXJcIilcblxuLy8gUGVyZm9ybSBzb21lIG9wZXJhdGlvbnNcbi8vIFN0YXJ0aW5nIHNvbWUgb3BlcmF0aW9ucy4uLlxuXG4vLyBTaW11bGF0ZSBhIGRlbGF5IG9yIHNvbWUgb3BlcmF0aW9uc1xuLy8gKEluIGEgcmVhbCBzY2VuYXJpbywgdGhpcyBjb3VsZCBiZSBhbnkgY29kZSB0aGF0IHRha2VzIHRpbWUgdG8gZXhlY3V0ZSlcbkZPUiBOVU1CRVIgaSA9IDEgVE8gMTAwMDAwMCB7XG4gICAgLy8gSnVzdCBhIGR1bW15IGxvb3AgdG8gc2ltdWxhdGUgdGltZS1jb25zdW1pbmcgb3BlcmF0aW9uc1xufVxuXG4vLyBTdG9wIHRoZSBzdG9wd2F0Y2ggYW5kIHByaW50IHRoZSBlbGFwc2VkIHRpbWVcblN0b3BXYXRjaC5TdG9wKFwiRXhhbXBsZVRpbWVyXCIpXG5OVU1CRVIgZWxhcHNlZFRpbWUgPSBTdG9wV2F0Y2guRWxhcHNlZChcIkV4YW1wbGVUaW1lclwiKVxuLy8gRWxhcHNlZCB0aW1lOiBcIiArIGVsYXBzZWRUaW1lICsgXCIgbWlsbGlzZWNvbmRzXCIiLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIi8vIFN0YXJ0IHRoZSBzdG9wd2F0Y2ggd2l0aCBhIGdpdmVuIG5hbWVcblN0b3BXYXRjaC5TdGFydChcIkV4YW1wbGVUaW1lclwiKVxuXG4vLyBQZXJmb3JtIHNvbWUgb3BlcmF0aW9uc1xuLy8gU3RhcnRpbmcgc29tZSBvcGVyYXRpb25zLi4uXG5cbi8vIFNpbXVsYXRlIGEgZGVsYXkgb3Igc29tZSBvcGVyYXRpb25zXG4vLyAoSW4gYSByZWFsIHNjZW5hcmlvLCB0aGlzIGNvdWxkIGJlIGFueSBjb2RlIHRoYXQgdGFrZXMgdGltZSB0byBleGVjdXRlKVxuRk9SIE5VTUJFUiBpID0gMSBUTyAxMDAwMDAwIHtcbiAgICAvLyBKdXN0IGEgZHVtbXkgbG9vcCB0byBzaW11bGF0ZSB0aW1lLWNvbnN1bWluZyBvcGVyYXRpb25zXG59XG5cbi8vIFN0b3AgdGhlIHN0b3B3YXRjaCBhbmQgcHJpbnQgdGhlIGVsYXBzZWQgdGltZVxuU3RvcFdhdGNoLlN0b3AoXCJFeGFtcGxlVGltZXJcIilcbk5VTUJFUiBlbGFwc2VkVGltZSA9IFN0b3BXYXRjaC5FbGFwc2VkKFwiRXhhbXBsZVRpbWVyXCIpXG4vLyBFbGFwc2VkIHRpbWU6IFwiICsgZWxhcHNlZFRpbWUgKyBcIiBtaWxsaXNlY29uZHNcIiJ9LCB7Im5hbWUiOiAiU3RvcFdhdGNoLlN0b3AgKFNUUklORykiLCAicGFyYW1ldGVyX2Rlc2MiOiAiIiwgImRlc2NyaXB0aW9uIjogIlN0b3BzIGEgc3RvcHdhdGNoLiIsICJleGFtcGxlX2NvZGUiOiAiLy8gU3RhcnQgdGhlIHN0b3B3YXRjaCB3aXRoIGEgZ2l2ZW4gbmFtZVxuU3RvcFdhdGNoLlN0YXJ0KFwiZXhhbXBsZVdhdGNoXCIpXG5cbi8vIFBlcmZvcm0gc29tZSBvcGVyYXRpb25zXG5WRUNUT1I8U1RSSU5HPiBleGFtcGxlTGlzdCA9IFwiYXBwbGVcIiwgXCJiYW5hbmFcIiwgXCJjaGVycnlcIiwgXCJkYXRlXCIsIFwiZWxkZXJiZXJyeVwiLCBcImZpZ1wiLCBcImdyYXBlXCJcbk5VTUJFUiBzdGFydEluZGV4ID0gMlxuTlVNQkVSIGVuZEluZGV4ID0gNVxuVkVDVE9SPFNUUklORz4gc3VibGlzdCA9IEdldFJhbmdlKGV4YW1wbGVMaXN0LCBzdGFydEluZGV4LCBlbmRJbmRleClcblxuLy8gU3RvcCB0aGUgc3RvcHdhdGNoXG5TdG9wV2F0Y2guU3RvcChcImV4YW1wbGVXYXRjaFwiKVxuXG4vLyBQcmludCB0aGUgc3VibGlzdCB0byB0aGUgY29uc29sZVxuLy8gU3VibGlzdDogXCIgKyBzdWJsaXN0IiwgInJldmlld2VkIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICIvLyBTdGFydCB0aGUgc3RvcHdhdGNoIHdpdGggYSBnaXZlbiBuYW1lXG5TdG9wV2F0Y2guU3RhcnQoXCJleGFtcGxlV2F0Y2hcIilcblxuLy8gUGVyZm9ybSBzb21lIG9wZXJhdGlvbnNcblZFQ1RPUjxTVFJJTkc+IGV4YW1wbGVMaXN0ID0gXCJhcHBsZVwiLCBcImJhbmFuYVwiLCBcImNoZXJyeVwiLCBcImRhdGVcIiwgXCJlbGRlcmJlcnJ5XCIsIFwiZmlnXCIsIFwiZ3JhcGVcIlxuTlVNQkVSIHN0YXJ0SW5kZXggPSAyXG5OVU1CRVIgZW5kSW5kZXggPSA1XG5WRUNUT1I8U1RSSU5HPiBzdWJsaXN0ID0gR2V0UmFuZ2UoZXhhbXBsZUxpc3QsIHN0YXJ0SW5kZXgsIGVuZEluZGV4KVxuXG4vLyBTdG9wIHRoZSBzdG9wd2F0Y2hcblN0b3BXYXRjaC5TdG9wKFwiZXhhbXBsZVdhdGNoXCIpXG5cbi8vIFByaW50IHRoZSBzdWJsaXN0IHRvIHRoZSBjb25zb2xlXG4vLyBTdWJsaXN0OiBcIiArIHN1Ymxpc3QifSwgeyJuYW1lIjogIlVDRS5BcHBseUN1c3RvbUVncmVzcyAoU1RSSU5HKSIsICJwYXJhbWV0ZXJfZGVzYyI6ICIiLCAiZGVzY3JpcHRpb24iOiAiU2V0cyBjdXN0b20gRWdyZXNzIElQIGZyb20gd2l0aGluIGEgY3VzdG9tZXIgcG9saWN5LiIsICJleGFtcGxlX2NvZGUiOiAiLy8gRGVmaW5lIHRoZSBlZ3Jlc3MgSUQgeW91IHdhbnQgdG8gYXBwbHlcblNUUklORyBlZ3Jlc3NJRCA9IFwiY3VzdG9tRWdyZXNzSUQxMjNcIlxuXG4vLyBBcHBseSB0aGUgY3VzdG9tIGVncmVzcyBJUCB1c2luZyB0aGUgc3BlY2lmaWVkIGVncmVzcyBJRFxuVUNFLkFwcGx5Q3VzdG9tRWdyZXNzKGVncmVzc0lEKVxuXG4vLyBBcHBsaWVkIGN1c3RvbSBlZ3Jlc3Mgd2l0aCBJRDogY3VzdG9tRWdyZXNzSUQxMjMiLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIi8vIERlZmluZSB0aGUgZWdyZXNzIElEIHlvdSB3YW50IHRvIGFwcGx5XG5TVFJJTkcgZWdyZXNzSUQgPSBcImN1c3RvbUVncmVzc0lEMTIzXCJcblxuLy8gQXBwbHkgdGhlIGN1c3RvbSBlZ3Jlc3MgSVAgdXNpbmcgdGhlIHNwZWNpZmllZCBlZ3Jlc3MgSURcblVDRS5BcHBseUN1c3RvbUVncmVzcyhlZ3Jlc3NJRClcblxuLy8gQXBwbGllZCBjdXN0b20gZWdyZXNzIHdpdGggSUQ6IGN1c3RvbUVncmVzc0lEMTIzIn0sIHsibmFtZSI6ICJVQ0UuRW5mb3JjZUN1c3RvbUVncmVzc0lQIChTVFJJTkcpIiwgInBhcmFtZXRlcl9kZXNjIjogIiIsICJkZXNjcmlwdGlvbiI6ICJTZXRzIGN1c3RvbSBFZ3Jlc3MgSVAgZnJvbSB3aXRoaW4gYSBjdXN0b21lciBwb2xpY3kgZXZlbiBpZiBOSFAgaGFzIHRvIGJlIHVzZWQuIiwgImV4YW1wbGVfY29kZSI6ICIvLyBEZWZpbmUgdGhlIGVncmVzcyBJRCB5b3Ugd2FudCB0byBhcHBseVxuU1RSSU5HIGVncmVzc0lEID0gXCJjdXN0b21fZWdyZXNzX2lkXCJcblxuLy8gQXBwbHkgdGhlIGN1c3RvbSBlZ3Jlc3MgSVBcblVDRS5BcHBseUN1c3RvbUVncmVzcyhlZ3Jlc3NJRClcblxuLy8gQXBwbGllZCBjdXN0b20gZWdyZXNzIElQIHdpdGggSUQ6IGN1c3RvbV9lZ3Jlc3NfaWQiLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIi8vIERlZmluZSB0aGUgZWdyZXNzIElEIHlvdSB3YW50IHRvIGFwcGx5XG5TVFJJTkcgZWdyZXNzSUQgPSBcImN1c3RvbV9lZ3Jlc3NfaWRcIlxuXG4vLyBBcHBseSB0aGUgY3VzdG9tIGVncmVzcyBJUFxuVUNFLkFwcGx5Q3VzdG9tRWdyZXNzKGVncmVzc0lEKVxuXG4vLyBBcHBsaWVkIGN1c3RvbSBlZ3Jlc3MgSVAgd2l0aCBJRDogY3VzdG9tX2VncmVzc19pZCJ9LCB7Im5hbWUiOiAiVUNFLkVuZm9yY2VDdXN0b21FZ3Jlc3NJUCAoU1RSSU5HLCBNV0cuQmxvY2tTZXR0aW5nKSIsICJwYXJhbWV0ZXJfZGVzYyI6ICIiLCAiZGVzY3JpcHRpb24iOiAiU2V0cyBjdXN0b20gRWdyZXNzIElQIGZyb20gd2l0aGluIGEgY3VzdG9tZXIgcG9saWN5LCBldmVuIGlmIE5IUCBoYXMgdG8gYmUgdXNlZC4iLCAiZXhhbXBsZV9jb2RlIjogIlNUUklORyBlZ3Jlc3NJRCA9IFwiY3VzdG9tLWVncmVzcy1pZFwiXG5NV0cuQmxvY2tTZXR0aW5nIGJsb2NrU2V0dGluZ1xuXG4vLyBDb25maWd1cmUgdGhlIGJsb2NrIHNldHRpbmcgYXMgbmVlZGVkXG5ibG9ja1NldHRpbmcucmVhc29uID0gXCJDdXN0b20gZWdyZXNzIElQIGVuZm9yY2VtZW50XCJcblxuLy8gRW5mb3JjZSB0aGUgY3VzdG9tIGVncmVzcyBJUFxuVUNFLkVuZm9yY2VDdXN0b21FZ3Jlc3NJUChlZ3Jlc3NJRCwgYmxvY2tTZXR0aW5nKVxuXG4vLyBDdXN0b20gZWdyZXNzIElQIGVuZm9yY2VkIHdpdGggSUQ6IFwiICsgZWdyZXNzSUQiLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIlNUUklORyBlZ3Jlc3NJRCA9IFwiY3VzdG9tLWVncmVzcy1pZFwiXG5NV0cuQmxvY2tTZXR0aW5nIGJsb2NrU2V0dGluZ1xuXG4vLyBDb25maWd1cmUgdGhlIGJsb2NrIHNldHRpbmcgYXMgbmVlZGVkXG5ibG9ja1NldHRpbmcucmVhc29uID0gXCJDdXN0b20gZWdyZXNzIElQIGVuZm9yY2VtZW50XCJcblxuLy8gRW5mb3JjZSB0aGUgY3VzdG9tIGVncmVzcyBJUFxuVUNFLkVuZm9yY2VDdXN0b21FZ3Jlc3NJUChlZ3Jlc3NJRCwgYmxvY2tTZXR0aW5nKVxuXG4vLyBDdXN0b20gZWdyZXNzIElQIGVuZm9yY2VkIHdpdGggSUQ6IFwiICsgZWdyZXNzSUQifSwgeyJuYW1lIjogIlVDRS5NYXJrRm9yUkJJIChVQ0UuUHJpdmF0ZUFwcCkiLCAicGFyYW1ldGVyX2Rlc2MiOiAiIiwgImRlc2NyaXB0aW9uIjogIk1hcmtzIHRoaXMgYWNjZXNzIHRvIGEgcHJpdmF0ZSBhcHBsaWNhdGlvbiBmb3IgaXNvbGF0aW9uLiIsICJleGFtcGxlX2NvZGUiOiAiLy8gR2V0IHRoZSBkZXRlY3RlZCBwcml2YXRlIGFwcFxuVUNFLlByaXZhdGVBcHAgcHJpdmF0ZUFwcCA9IFVDRS5HZXRQcml2YXRlQXBwKClcblxuLy8gQ2hlY2sgaWYgYSBwcml2YXRlIGFwcCBpcyBkZXRlY3RlZFxuSUYgcHJpdmF0ZUFwcCAhPSBOVUxMIFRIRU4ge1xuICAgIC8vIE1hcmsgdGhlIGRldGVjdGVkIHByaXZhdGUgYXBwIGZvciBSQklcbiAgICBVQ0UuTWFya0ZvclJCSShwcml2YXRlQXBwKVxuXG4gICAgLy8gRGVidWcgb3V0cHV0IHRvIGNvbmZpcm0gdGhlIGFjdGlvblxuICAgIC8vIFwiUHJpdmF0ZSBhcHAgbWFya2VkIGZvciBSQkk6IFwiICsgcHJpdmF0ZUFwcC5OYW1lKClcbn0gRUxTRSB7XG4gICAgLy8gRGVidWcgb3V0cHV0IGlmIG5vIHByaXZhdGUgYXBwIGlzIGRldGVjdGVkXG4gICAgLy8gXCJObyBwcml2YXRlIGFwcCBkZXRlY3RlZC5cIlxufSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiLy8gR2V0IHRoZSBkZXRlY3RlZCBwcml2YXRlIGFwcFxuVUNFLlByaXZhdGVBcHAgcHJpdmF0ZUFwcCA9IFVDRS5HZXRQcml2YXRlQXBwKClcblxuLy8gQ2hlY2sgaWYgYSBwcml2YXRlIGFwcCBpcyBkZXRlY3RlZFxuSUYgcHJpdmF0ZUFwcCAhPSBOVUxMIFRIRU4ge1xuICAgIC8vIE1hcmsgdGhlIGRldGVjdGVkIHByaXZhdGUgYXBwIGZvciBSQklcbiAgICBVQ0UuTWFya0ZvclJCSShwcml2YXRlQXBwKVxuXG4gICAgLy8gRGVidWcgb3V0cHV0IHRvIGNvbmZpcm0gdGhlIGFjdGlvblxuICAgIC8vIFwiUHJpdmF0ZSBhcHAgbWFya2VkIGZvciBSQkk6IFwiICsgcHJpdmF0ZUFwcC5OYW1lKClcbn0gRUxTRSB7XG4gICAgLy8gRGVidWcgb3V0cHV0IGlmIG5vIHByaXZhdGUgYXBwIGlzIGRldGVjdGVkXG4gICAgLy8gXCJObyBwcml2YXRlIGFwcCBkZXRlY3RlZC5cIlxufSJ9LCB7Im5hbWUiOiAiVUNFLlN0YXJ0Q29hY2hpbmdTZXNzaW9uIChTVFJJTkcsIE5VTUJFUikiLCAicGFyYW1ldGVyX2Rlc2MiOiAiIiwgImRlc2NyaXB0aW9uIjogIlN0YXJ0cyBhIGNvYWNoaW5nIHNlc3Npb24gd2l0aCBnaXZlbiBJRCBhbmQgVFRMLiIsICJleGFtcGxlX2NvZGUiOiAiU1RSSU5HIHNlc3Npb25JZCA9IFwic2Vzc2lvbjEyM1wiXG5OVU1CRVIgdHRsID0gMzYwMCAgLy8gVGltZSB0byBsaXZlIGluIHNlY29uZHMgKDEgaG91cilcblxuVUNFLlN0YXJ0Q29hY2hpbmdTZXNzaW9uKHNlc3Npb25JZCwgdHRsKVxuLy8gQ29hY2hpbmcgc2Vzc2lvbiBzdGFydGVkIHdpdGggSUQ6IFwiICsgc2Vzc2lvbklkICsgXCIgYW5kIFRUTDogXCIgKyB0dGwiLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIlNUUklORyBzZXNzaW9uSWQgPSBcInNlc3Npb24xMjNcIlxuTlVNQkVSIHR0bCA9IDM2MDAgIC8vIFRpbWUgdG8gbGl2ZSBpbiBzZWNvbmRzICgxIGhvdXIpXG5cblVDRS5TdGFydENvYWNoaW5nU2Vzc2lvbihzZXNzaW9uSWQsIHR0bClcbi8vIENvYWNoaW5nIHNlc3Npb24gc3RhcnRlZCB3aXRoIElEOiBcIiArIHNlc3Npb25JZCArIFwiIGFuZCBUVEw6IFwiICsgdHRsIn1d