Skyhigh Security Policy Code Function 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.
×
W3sibmFtZSI6ICJBcHBlbmQgKFNUUklORywgU1RSSU5HKSIsICJyZXR1cm5fdHlwZSI6ICJTVFJJTkciLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyB0aGUgY29uY2F0ZW5hdGVkIHN0cmluZy4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiMS4gYFNUUklOR2A6IFRoZSBmaXJzdCBzdHJpbmcgdGhhdCB5b3Ugd2FudCB0byBjb21iaW5lLlxuMi4gYFNUUklOR2A6IFRoZSBzZWNvbmQgc3RyaW5nIHRoYXQgeW91IHdhbnQgdG8gYXBwZW5kIHRvIHRoZSBmaXJzdC4iLCAiZGVzY3JpcHRpb24iOiAiQXBwZW5kcyB0aGUgc2Vjb25kIHN0cmluZyBhcmd1bWVudCB0byB0aGUgZmlyc3QgYW5kIHJldHVybnMgdGhlIGNvbmNhdGVuYXRlZCBzdHJpbmcuIiwgImV4YW1wbGVfY29kZSI6ICJTVFJJTkcgc3RyMSA9IFwiSGVsbG9cIlxuU1RSSU5HIHN0cjIgPSBcIldvcmxkXCJcblNUUklORyByZXN1bHQgPSBBcHBlbmQoc3RyMSwgc3RyMilcbi8vIHJlc3VsdCBub3cgY29udGFpbnMgXCJIZWxsb1dvcmxkXCIiLCAicmV2aWV3ZWQiOiAiVFJVRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIlNUUklORyBzdHIxID0gXCJIZWxsb1wiXG5TVFJJTkcgc3RyMiA9IFwiV29ybGRcIlxuU1RSSU5HIHJlc3VsdCA9IEFwcGVuZChzdHIxLCBzdHIyKVxuLy8gcmVzdWx0IG5vdyBjb250YWlucyBcIkhlbGxvV29ybGRcIiJ9LCB7Im5hbWUiOiAiQXJyYXlBcHBlbmQgKEpTT04sIEpTT04pIiwgInJldHVybl90eXBlIjogIkpTT04iLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyB0aGUgY29tYmluZWQgSlNPTiBhcnJheS4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiMS4gYEpTT05gOiBUaGUgZmlyc3QgSlNPTiBhcnJheSB0aGF0IHlvdSB3YW50IHRvIGNvbWJpbmUuXG4yLiBgSlNPTmA6IFRoZSBzZWNvbmQgSlNPTiBhcnJheSB0aGF0IHlvdSB3YW50IHRvIGFwcGVuZCB0byB0aGUgZmlyc3Qgb25lLiIsICJkZXNjcmlwdGlvbiI6ICJBcHBlbmRzIHRoZSBzZWNvbmQgSlNPTiBhcnJheSBhcmd1bWVudCB0byB0aGUgZmlyc3QgSlNPTiBhcnJheSBhcmd1bWVudCBhbmQgcmV0dXJucyB0aGUgY29tYmluZWQgYXJyYXkuIiwgImV4YW1wbGVfY29kZSI6ICIvLyBJbml0aWFsaXplIGEgSlNPTiBhcnJheVxuSlNPTiBqc29uQXJyYXkgPSBKU09OLkNyZWF0ZUVtcHR5QXJyYXlcblxuLy8gQ3JlYXRlIGEgSlNPTiBvYmplY3QgdG8gYXBwZW5kXG5KU09OIGpzb25PYmplY3QxID0gSlNPTi5Gcm9tU3RyaW5nIChcIltcXFwiYXBwbGVcXFwiLCBcXFwicGVhclxcXCJdXCIpXG5KU09OIGpzb25PYmplY3QyID0gSlNPTi5Gcm9tU3RyaW5nIChcIltcXFwiY2hlcnJ5XFxcIiwgXFxcInBpbmVhcHBsZVxcXCJdXCIpXG5cbi8vIEFwcGVuZCB0aGUgSlNPTiBvYmplY3RzIHRvIHRoZSBKU09OIGFycmF5XG5qc29uQXJyYXkgPSBBcnJheUFwcGVuZCAoanNvbkFycmF5LCBqc29uT2JqZWN0MSlcbmpzb25BcnJheSA9IEFycmF5QXBwZW5kIChqc29uQXJyYXksIGpzb25PYmplY3QyKVxuXG4vLyBqc29uQXJyYXkgbm93IGNvbnRhaW5zIFtcImFwcGxlXCIsIFwicGVhclwiLCBcImNoZXJyeVwiLCBcInBpbmVhcHBsZVwiXSIsICJyZXZpZXdlZCI6ICJUUlVFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiLy8gSW5pdGlhbGl6ZSBhIEpTT04gYXJyYXlcbkpTT04ganNvbkFycmF5ID0gSlNPTi5DcmVhdGVFbXB0eUFycmF5XG5cbi8vIENyZWF0ZSBhIEpTT04gb2JqZWN0IHRvIGFwcGVuZFxuSlNPTiBqc29uT2JqZWN0MSA9IEpTT04uRnJvbVN0cmluZyAoXCJbXCJhcHBsZVwiLCBcInBlYXJcIl1cIilcbkpTT04ganNvbk9iamVjdDIgPSBKU09OLkZyb21TdHJpbmcgKFwiW1wiY2hlcnJ5XCIsIFwicGluZWFwcGxlXCJdXCIpXG5cbi8vIEFwcGVuZCB0aGUgSlNPTiBvYmplY3RzIHRvIHRoZSBKU09OIGFycmF5XG5qc29uQXJyYXkgPSBBcnJheUFwcGVuZCAoanNvbkFycmF5LCBqc29uT2JqZWN0MSlcbmpzb25BcnJheSA9IEFycmF5QXBwZW5kIChqc29uQXJyYXksIGpzb25PYmplY3QyKVxuXG4vLyBqc29uQXJyYXkgbm93IGNvbnRhaW5zIFtcImFwcGxlXCIsIFwicGVhclwiLCBcImNoZXJyeVwiLCBcInBpbmVhcHBsZVwiXSJ9LCB7Im5hbWUiOiAiQXQgKFNUUklORywgTlVNQkVSKSIsICJyZXR1cm5fdHlwZSI6ICJTVFJJTkciLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyBhIHNpbmdsZSBjaGFyYWN0ZXIgKGFzIGEgc3RyaW5nKSBmcm9tIHRoZSBzcGVjaWZpZWQgcG9zaXRpb24gaW4gdGhlIHByb3ZpZGVkIHN0cmluZy4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiMS4gYFNUUklOR2A6IFRoZSBzdHJpbmcgZnJvbSB3aGljaCB5b3Ugd2FudCB0byBmaW5kIGEgY2hhcmFjdGVyLlxuMi4gYE5VTUJFUmA6IFRoZSBpbmRleCB2YWx1ZSBvZiB0aGUgY2hhcmFjdGVyIHlvdSB3YW50IHRvIHJldHVybiBmcm9tIHRoZSBzdHJpbmcuIiwgImRlc2NyaXB0aW9uIjogIkZpbmRzIHRoZSBjaGFyYWN0ZXIgYXQgYSBnaXZlbiBpbmRleCBvZiBhIHN0cmluZy4iLCAiZXhhbXBsZV9jb2RlIjogIlNUUklORyBleGFtcGxlU3RyaW5nID0gXCJIZWxsbywgV29ybGQhXCJcbk5VTUJFUiBwb3NpdGlvbiA9IDdcblNUUklORyBjaGFyYWN0ZXJBdFBvc2l0aW9uID0gQXQgKGV4YW1wbGVTdHJpbmcsIHBvc2l0aW9uKVxuXG4vLyBjaGFyYWN0ZXJBdFBvc2l0aW9uIG5vdyBlcXVhbHMgXCJXXCIiLCAicmV2aWV3ZWQiOiAiVFJVRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIlNUUklORyBleGFtcGxlU3RyaW5nID0gXCJIZWxsbywgV29ybGQhXCJcbk5VTUJFUiBwb3NpdGlvbiA9IDdcblNUUklORyBjaGFyYWN0ZXJBdFBvc2l0aW9uID0gQXQgKGV4YW1wbGVTdHJpbmcsIHBvc2l0aW9uKVxuXG4vLyBjaGFyYWN0ZXJBdFBvc2l0aW9uIG5vdyBlcXVhbHMgXCJXXCIifSwgeyJuYW1lIjogIkNvbnRhaW5zIChSZWdFeEpTaS5MaXN0LCBSZWdFeEpTaSkiLCAicmV0dXJuX3R5cGUiOiAiQk9PTEVBTiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIGBUUlVFYGlmIHRoZSByZWd1bGFyIGV4cHJlc3Npb24gbGlzdCBjb250YWlucyB0aGUgZ2l2ZW4gcmVndWxhciBleHByZXNzaW9uLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICIxLiBgUmVnRXhKU2kuTGlzdGA6IExpc3Qgb2YgcmVndWxhciBleHByZXNzaW9ucyB0byBjaGVjay5cbjIuIGBSZWdFeEpTaWA6IFRoZSByZWd1bGFyIGV4cHJlc3Npb24gdG8gbG9vayBmb3IuIiwgImRlc2NyaXB0aW9uIjogIkNoZWNrcyB3aGV0aGVyIHRoZSByZWd1bGFyIGV4cHJlc3Npb24gbGlzdCBjb250YWlucyB0aGUgZ2l2ZW4gcmVndWxhciBleHByZXNzaW9uLiIsICJleGFtcGxlX2NvZGUiOiAiLy8gUmV0cmlldmUgdGhlIGxpc3Qgb2YgcmVndWxhciBleHByZXNzaW9ucyBieSBuYW1lXG5SZWdFeEpTaS5MaXN0IHJlZ2V4TGlzdCA9IE1XRy5SZWdleExpc3RCeU5hbWUgKFwiZXhhbXBsZV9yZWdleF9saXN0XCIpXG5cbi8vIENyZWF0ZSBhIHdpbGRjYXJkIHJlZ2V4IHRoYXQgbWF0Y2hlcyBhbnkgc3RyaW5nXG5SZWdFeEpTaSB3aWxkY2FyZFJlZ2V4ID0gVG9SZWdFeEpTaSAoXCIuKlwiKVxuXG4vLyBTdG9wIHRoaXMgcnVsZXNldCBpZiB0aGUgcmVnZXggbGlzdCBjb250YWlucyB0aGUgd2lsZGNhcmQgZXhwcmVzc2lvblxuSUYgQ29udGFpbnMgKHJlZ2V4TGlzdCwgd2lsZGNhcmRSZWdleCkgVEhFTlxuICAgIEVORCIsICJyZXZpZXdlZCI6ICJUUlVFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiLy8gUmV0cmlldmUgdGhlIGxpc3Qgb2YgcmVndWxhciBleHByZXNzaW9ucyBieSBuYW1lXG5SZWdFeEpTaS5MaXN0IHJlZ2V4TGlzdCA9IE1XRy5SZWdleExpc3RCeU5hbWUgKFwiZXhhbXBsZV9yZWdleF9saXN0XCIpXG5cbi8vIENyZWF0ZSBhIHdpbGRjYXJkIHJlZ2V4IHRoYXQgbWF0Y2hlcyBhbnkgc3RyaW5nXG5SZWdFeEpTaSB3aWxkY2FyZFJlZ2V4ID0gVG9SZWdFeEpTaSAoXCIuKlwiKVxuXG4vLyBTdG9wIHRoaXMgcnVsZXNldCBpZiB0aGUgcmVnZXggbGlzdCBjb250YWlucyB0aGUgd2lsZGNhcmQgZXhwcmVzc2lvblxuSUYgQ29udGFpbnMgKHJlZ2V4TGlzdCwgd2lsZGNhcmRSZWdleCkgVEhFTlxuICAgIEVORCJ9LCB7Im5hbWUiOiAiQ29udGFpbnMgKFVDRS5GaWxlVHJhbnNmZXJDb250cm9sTGlzdCwgU1RSSU5HLCBNZWRpYVR5cGUpIiwgInJldHVybl90eXBlIjogIkJPT0xFQU4iLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyBgVFJVRWAgaWYgdGhlIHNwZWNpZmllZCBgVUNFLkZpbGVUcmFuc2ZlckNvbnRyb2xMaXN0YCBjb250YWlucyBhbiBlbnRyeSBtYXRjaGluZyB0aGUgc3BlY2lmaWVkIGhvc3RuYW1lIChvciBkb21haW4pIGFuZCBtZWRpYSB0eXBlLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICIxLiBgVUNFLkZpbGVUcmFuc2ZlckNvbnRyb2xMaXN0YDogVGhlIGxpc3QgdG8gY2hlY2suXG4yLiBgU1RSSU5HYDogVGhlIGhvc3RuYW1lIG9yIGRvbWFpbiB0byBzZWFyY2ggZm9yXG4zLiBgTWVkaWFUeXBlYDogVGhlIG1lZGlhIHR5cGUgdG8gc2VhcmNoIGZvci4iLCAiZGVzY3JpcHRpb24iOiAiQ2hlY2tzIHdoZXRoZXIgYSBgVUNFLkZpbGVUcmFuc2ZlckNvbnRyb2xMaXN0YCBjb250YWlucyBhIHNwZWNpZmllZCBjb21iaW5hdGlvbiBvZiBob3N0bmFtZSAob3IgZG9tYWluKSBhbmQgbWVkaWEgdHlwZS4iLCAiZXhhbXBsZV9jb2RlIjogIi8vIExvYWQgZmlsZSB0cmFuc2ZlciBjb250cm9sIGxpc3RcblVDRS5GaWxlVHJhbnNmZXJDb250cm9sTGlzdCBhbGxvd2VkRG93bmxvYWRUeXBlcyA9IFtcIkFsbG93ZWREb3dubG9hZFR5cGVzTGlzdFwiXVxuXG4vLyBPbmx5IGxvb2sgYXQgcmVzcG9uc2UgdHJpZ2dlclxuSUYgVHJpZ2dlciA9PSBcIldlYi5SZXNwb25zZVwiIFRIRU4ge1xuICAgIElGIENvbnRhaW5zIChhbGxvd2VkRG93bmxvYWRUeXBlcywgTVdHLlVybC5Ib3N0LCBNZWRpYVR5cGUuRnJvbUhlYWRlcikgVEhFTiB7XG4gICAgICAgIC8vIEZpbGUgdHJhbnNmZXIgaXMgYWxsb3dlZC5cbiAgICAgICAgTVdHLkFsbG93IChcIkZpbGUgdHJhbnNmZXIgYWxsb3dlZCBieSBwb2xpY3lcIilcbiAgICB9IEVMU0Uge1xuICAgICAgICAvLyBGaWxlIHRyYW5zZmVyIGlzIG5vdCBhbGxvd2VkLlxuICAgICAgICBNV0cuQmxvY2sgKFwiRmlsZSB0cmFuc2ZlciBibG9ja2VkIGJ5IHBvbGljeVwiKVxuICAgIH1cbn0iLCAicmV2aWV3ZWQiOiAiVFJVRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIi8vIExvYWQgZmlsZSB0cmFuc2ZlciBjb250cm9sIGxpc3RcblVDRS5GaWxlVHJhbnNmZXJDb250cm9sTGlzdCBhbGxvd2VkRG93bmxvYWRUeXBlcyA9IFtcIkFsbG93ZWREb3dubG9hZFR5cGVzTGlzdFwiXVxuXG4vLyBPbmx5IGxvb2sgYXQgcmVzcG9uc2UgdHJpZ2dlclxuSUYgVHJpZ2dlciA9PSBcIldlYi5SZXNwb25zZVwiIFRIRU4ge1xuICAgIElGIENvbnRhaW5zIChhbGxvd2VkRG93bmxvYWRUeXBlcywgTVdHLlVybC5Ib3N0LCBNZWRpYVR5cGUuRnJvbUhlYWRlcikgVEhFTiB7XG4gICAgICAgIC8vIEZpbGUgdHJhbnNmZXIgaXMgYWxsb3dlZC5cbiAgICAgICAgTVdHLkFsbG93IChcIkZpbGUgdHJhbnNmZXIgYWxsb3dlZCBieSBwb2xpY3lcIilcbiAgICB9IEVMU0Uge1xuICAgICAgICAvLyBGaWxlIHRyYW5zZmVyIGlzIG5vdCBhbGxvd2VkLlxuICAgICAgICBNV0cuQmxvY2sgKFwiRmlsZSB0cmFuc2ZlciBibG9ja2VkIGJ5IHBvbGljeVwiKVxuICAgIH1cbn0ifSwgeyJuYW1lIjogIkNvbnRhaW5zIChVQ0UuRmlsZVRyYW5zZmVyQ29udHJvbExpc3QsIFNUUklORywgVkVDVE9SPE1lZGlhVHlwZT4pIiwgInJldHVybl90eXBlIjogIkJPT0xFQU4iLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyBgVFJVRWAgaWYgdGhlIHNwZWNpZmllZCBgVUNFLkZpbGVUcmFuc2ZlckNvbnRyb2xMaXN0YCBjb250YWlucyBhbiBlbnRyeSBtYXRjaGluZyB0aGUgc3BlY2lmaWVkIGhvc3RuYW1lIChvciBkb21haW4pIGFuZCBsaXN0IG9mIG1lZGlhIHR5cGVzLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICIxLiBgVUNFLkZpbGVUcmFuc2ZlckNvbnRyb2xMaXN0YDogVGhlIGxpc3QgdG8gc2VhcmNoIGluLlxuMi4gYFNUUklOR2A6IFRoZSBob3N0bmFtZSBvciBkb21haW4gdG8gY2hlY2sgZm9yLlxuMy4gYFZFQ1RPUjxNZWRpYVR5cGU+YDogVGhlIGxpc3Qgb2YgbWVkaWEgdHlwZXMgdG8gY2hlY2sgZm9yLiIsICJkZXNjcmlwdGlvbiI6ICJDaGVja3Mgd2hldGhlciBhIGBVQ0UuRmlsZVRyYW5zZmVyQ29udHJvbExpc3RgIGNvbnRhaW5zIGEgc3BlY2lmaWVkIGNvbWJpbmF0aW9uIG9mIGhvc3RuYW1lIChvciBkb21haW4pIGFuZCBsaXN0IG9mIG1lZGlhIHR5cGVzLiIsICJleGFtcGxlX2NvZGUiOiAiLy8gTG9hZCBmaWxlIHRyYW5zZmVyIGNvbnRyb2wgbGlzdFxuVUNFLkZpbGVUcmFuc2ZlckNvbnRyb2xMaXN0IGFsbG93ZWREb3dubG9hZFR5cGVzID0gW1wiQWxsb3dlZERvd25sb2FkVHlwZXNMaXN0XCJdXG5cbi8vIE9ubHkgbG9vayBhdCByZXNwb25zZSB0cmlnZ2VyXG5JRiBUcmlnZ2VyID09IFwiV2ViLlJlc3BvbnNlXCIgVEhFTiB7XG4gICAgSUYgQ29udGFpbnMgKGFsbG93ZWREb3dubG9hZFR5cGVzLCBNV0cuVXJsLkhvc3QsIE1lZGlhVHlwZS5FbnN1cmVkKSBUSEVOIHtcbiAgICAgICAgLy8gRmlsZSB0cmFuc2ZlciBpcyBhbGxvd2VkLlxuICAgICAgICBNV0cuQWxsb3cgKFwiRmlsZSB0cmFuc2ZlciBhbGxvd2VkIGJ5IHBvbGljeVwiKVxuICAgIH0gRUxTRSB7XG4gICAgICAgIC8vIEZpbGUgdHJhbnNmZXIgaXMgbm90IGFsbG93ZWQuXG4gICAgICAgIE1XRy5CbG9jayAoXCJGaWxlIHRyYW5zZmVyIGJsb2NrZWQgYnkgcG9saWN5XCIpXG4gICAgfVxufSIsICJyZXZpZXdlZCI6ICJUUlVFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiLy8gTG9hZCBmaWxlIHRyYW5zZmVyIGNvbnRyb2wgbGlzdFxuVUNFLkZpbGVUcmFuc2ZlckNvbnRyb2xMaXN0IGFsbG93ZWREb3dubG9hZFR5cGVzID0gW1wiQWxsb3dlZERvd25sb2FkVHlwZXNMaXN0XCJdXG5cbi8vIE9ubHkgbG9vayBhdCByZXNwb25zZSB0cmlnZ2VyXG5JRiBUcmlnZ2VyID09IFwiV2ViLlJlc3BvbnNlXCIgVEhFTiB7XG4gICAgSUYgQ29udGFpbnMgKGFsbG93ZWREb3dubG9hZFR5cGVzLCBNV0cuVXJsLkhvc3QsIE1lZGlhVHlwZS5FbnN1cmVkKSBUSEVOIHtcbiAgICAgICAgLy8gRmlsZSB0cmFuc2ZlciBpcyBhbGxvd2VkLlxuICAgICAgICBNV0cuQWxsb3cgKFwiRmlsZSB0cmFuc2ZlciBhbGxvd2VkIGJ5IHBvbGljeVwiKVxuICAgIH0gRUxTRSB7XG4gICAgICAgIC8vIEZpbGUgdHJhbnNmZXIgaXMgbm90IGFsbG93ZWQuXG4gICAgICAgIE1XRy5CbG9jayAoXCJGaWxlIHRyYW5zZmVyIGJsb2NrZWQgYnkgcG9saWN5XCIpXG4gICAgfVxufSJ9LCB7Im5hbWUiOiAiQ29udGFpbnMgKFZFQ1RPUjxNZWRpYVR5cGU+LCBNZWRpYVR5cGUpIiwgInJldHVybl90eXBlIjogIkJPT0xFQU4iLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyBgVFJVRWAgaWYgdGhlIHByb3ZpZGVkIGxpc3Qgb2YgbWVkaWEgdHlwZXMgY29udGFpbnMgdGhlIHByb3ZpZGVkIGBNZWRpYVR5cGVgLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICIxLiBgVkVDVE9SPE1lZGlhVHlwZT5gOiBBIHZlY3RvciBvZiBtZWRpYSB0eXBlcyB0byBzZWFyY2guXG4yLiBgTWVkaWFUeXBlYDogVGhlIG1lZGlhIHR5cGUgdG8gc2VhcmNoIGZvci4iLCAiZGVzY3JpcHRpb24iOiAiQ2hlY2tzIHdoZXRoZXIgYSBsaXN0IG9mIG1lZGlhIHR5cGVzIGNvbnRhaW5zIGEgc3BlY2lmaWVkIG1lZGlhIHR5cGUuIiwgImV4YW1wbGVfY29kZSI6ICIvLyBEZWZpbmUgYSBWRUNUT1Igb2YgTWVkaWFUeXBlXG5WRUNUT1I8TWVkaWFUeXBlPiBtZWRpYVR5cGVzID0gVG9NZWRpYVR5cGUgKFwiaW1hZ2UvanBlZ1wiKSwgVG9NZWRpYVR5cGUgKFwiaW1hZ2UvcG5nXCIpLCBUb01lZGlhVHlwZSAoXCJhcHBsaWNhdGlvbi9wZGZcIilcblxuLy8gRGVmaW5lIHRoZSBNZWRpYVR5cGUgdG8gY2hlY2sgZm9yXG5NZWRpYVR5cGUgdGFyZ2V0VHlwZSA9IFRvTWVkaWFUeXBlIChcImltYWdlL3BuZ1wiKVxuXG4vLyBDaGVjayBpZiB0aGUgdGFyZ2V0VHlwZSBpcyBpbiB0aGUgbWVkaWFUeXBlcyB2ZWN0b3JcbklGIENvbnRhaW5zIChtZWRpYVR5cGVzLCB0YXJnZXRUeXBlKSBUSEVOIHtcbiAgICAvLyBUaGUgbWVkaWEgdHlwZSBpbWFnZS9wbmcgaXMgcHJlc2VudCBpbiB0aGUgbGlzdC5cbn0gRUxTRSB7XG4gICAgLy8gVGhlIG1lZGlhIHR5cGUgaW1hZ2UvcG5nIGlzIG5vdCBwcmVzZW50IGluIHRoZSBsaXN0LlxufSIsICJyZXZpZXdlZCI6ICJUUlVFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiLy8gRGVmaW5lIGEgVkVDVE9SIG9mIE1lZGlhVHlwZVxuVkVDVE9SPE1lZGlhVHlwZT4gbWVkaWFUeXBlcyA9IFRvTWVkaWFUeXBlIChcImltYWdlL2pwZWdcIiksIFRvTWVkaWFUeXBlIChcImltYWdlL3BuZ1wiKSwgVG9NZWRpYVR5cGUgKFwiYXBwbGljYXRpb24vcGRmXCIpXG5cbi8vIERlZmluZSB0aGUgTWVkaWFUeXBlIHRvIGNoZWNrIGZvclxuTWVkaWFUeXBlIHRhcmdldFR5cGUgPSBUb01lZGlhVHlwZSAoXCJpbWFnZS9wbmdcIilcblxuLy8gQ2hlY2sgaWYgdGhlIHRhcmdldFR5cGUgaXMgaW4gdGhlIG1lZGlhVHlwZXMgdmVjdG9yXG5JRiBDb250YWlucyAobWVkaWFUeXBlcywgdGFyZ2V0VHlwZSkgVEhFTiB7XG4gICAgLy8gVGhlIG1lZGlhIHR5cGUgaW1hZ2UvcG5nIGlzIHByZXNlbnQgaW4gdGhlIGxpc3QuXG59IEVMU0Uge1xuICAgIC8vIFRoZSBtZWRpYSB0eXBlIGltYWdlL3BuZyBpcyBub3QgcHJlc2VudCBpbiB0aGUgbGlzdC5cbn0ifSwgeyJuYW1lIjogIkNvbnRhaW5zIChWRUNUT1I8TVdHLkhvc3RBbmRDZXJ0aWZpY2F0ZT4sIE1XRy5Ib3N0QW5kQ2VydGlmaWNhdGUpIiwgInJldHVybl90eXBlIjogIkJPT0xFQU4iLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyBgVFJVRWAgaWYgdGhlIHByb3ZpZGVkIGxpc3QgY29udGFpbnMgdGhlIHByb3ZpZGVkYE1XRy5Ib3N0QW5kQ2VydGlmaWNhdGVgLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICIxLiBgVkVDVE9SPE1XRy5Ib3N0QW5kQ2VydGlmaWNhdGU+YDogQSB2ZWN0b3Igb2YgYE1XRy5Ib3N0QW5kQ2VydGlmaWNhdGVzYCB0byBzZWFyY2guXG4yLiBgTVdHLkhvc3RBbmRDZXJ0aWZpY2F0ZWA6IEEgYE1XRy5Ib3N0QW5kQ2VydGlmaWNhdGVgIHRvIHNlYXJjaCBmb3IuIiwgImRlc2NyaXB0aW9uIjogIkNoZWNrcyB3aGV0aGVyIGEgbGlzdCBvZiBgTVdHLkhvc3RBbmRDZXJ0aWZpY2F0ZWAgb2JqZWN0cyBjb250YWlucyBhIHNwZWNpZmllZCBgTVdHLkhvc3RBbmRDZXJ0aWZpY2F0ZWAuIiwgImV4YW1wbGVfY29kZSI6ICIvLyBTZWxlY3QgYSBWRUNUT1Igb2YgTVdHLkhvc3RBbmRDZXJ0aWZpY2F0ZSBmcm9tIHRoZSBMaXN0IENhdGFsb2dcblZFQ1RPUjxNV0cuSG9zdEFuZENlcnRpZmljYXRlPiB0cnVzdGVkSG9zdHMgPSBsaXN0X215dHJ1c3RlZGhvc3RzXG5cbi8vIEdldCBob3N0IGFuZCBjZXJ0aWZpY2F0ZSBvZiBjdXJyZW50IHJlcXVlc3Rcbk1XRy5Ib3N0QW5kQ2VydGlmaWNhdGUgY3VycmVudEhvc3QgPSBNV0cuSG9zdEFuZENlcnRpZmljYXRlXG5cbi8vIENoZWNrIGlmIHRoZSBjdXJyZW50IGhvc3QgaXMgaW4gdGhlIGxpc3Qgb2YgdHJ1c3RlZCBob3N0c1xuSUYgQ29udGFpbnMgKHRydXN0ZWRIb3N0cywgY3VycmVudEhvc3QpIFRIRU4ge1xuICAgIC8vIFRoZSBjdXJyZW50IGhvc3QgaXMgdHJ1c3RlZC4gIEFsbG93IHJlcXVlc3Qgd2l0aG91dCBmdXJ0aGVyIHNjYW5uaW5nXG4gICAgTVdHLkFsbG93IChcIlRydXN0ZWQgSG9zdFwiKVxufSIsICJyZXZpZXdlZCI6ICJUUlVFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiLy8gU2VsZWN0IGEgVkVDVE9SIG9mIE1XRy5Ib3N0QW5kQ2VydGlmaWNhdGUgZnJvbSB0aGUgTGlzdCBDYXRhbG9nXG5WRUNUT1I8TVdHLkhvc3RBbmRDZXJ0aWZpY2F0ZT4gdHJ1c3RlZEhvc3RzID0gbGlzdF9teXRydXN0ZWRob3N0c1xuXG4vLyBHZXQgaG9zdCBhbmQgY2VydGlmaWNhdGUgb2YgY3VycmVudCByZXF1ZXN0XG5NV0cuSG9zdEFuZENlcnRpZmljYXRlIGN1cnJlbnRIb3N0ID0gTVdHLkhvc3RBbmRDZXJ0aWZpY2F0ZVxuXG4vLyBDaGVjayBpZiB0aGUgY3VycmVudCBob3N0IGlzIGluIHRoZSBsaXN0IG9mIHRydXN0ZWQgaG9zdHNcbklGIENvbnRhaW5zICh0cnVzdGVkSG9zdHMsIGN1cnJlbnRIb3N0KSBUSEVOIHtcbiAgICAvLyBUaGUgY3VycmVudCBob3N0IGlzIHRydXN0ZWQuICBBbGxvdyByZXF1ZXN0IHdpdGhvdXQgZnVydGhlciBzY2FubmluZ1xuICAgIE1XRy5BbGxvdyAoXCJUcnVzdGVkIEhvc3RcIilcbn0ifSwgeyJuYW1lIjogIkNvbnRhaW5zIChWRUNUT1I8TVdHLlVybENhdGVnb3J5PiwgTVdHLlVybENhdGVnb3J5KSIsICJyZXR1cm5fdHlwZSI6ICJCT09MRUFOIiwgInJldHVybl9kZXNjIjogIlJldHVybnMgYFRSVUVgIGlmIHRoZSBwcm92aWRlZCBsaXN0IGNvbnRhaW5zIHRoZSBwcm92aWRlZCBgTVdHLlVybENhdGVnb3J5YC4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiMS4gYFZFQ1RPUjxNV0cuVXJsQ2F0ZWdvcnk+YDogQSB2ZWN0b3Igb2YgYE1XRy5VcmxDYXRlZ29yeWBzIHRvIHNlYXJjaC5cbjIuIGBNV0cuVXJsQ2F0ZWdvcnlgOiBBIGBNV0cuVXJsQ2F0ZWdvcnlgIHRvIHNlYXJjaCBmb3IuIiwgImRlc2NyaXB0aW9uIjogIkNoZWNrcyB3aGV0aGVyIGEgbGlzdCBvZiBVUkwgY2F0ZWdvcmllcyBjb250YWlucyBhIHNwZWNpZmllZCBVUkwgY2F0ZWdvcnkuIiwgImV4YW1wbGVfY29kZSI6ICIvLyBHZXQgVVJMIGNhdGVnb3JpZXMgZm9yIGN1cnJlbnQgcmVxdWVzdFxuVkVDVE9SPE1XRy5VcmxDYXRlZ29yeT4gY2F0ZWdvcmllcyA9IE1XRy5VcmxDYXRlZ29yaWVzIChNY0FmZWVfR1RJX1NldHRpbmcpXG5cbi8vIENyZWF0ZSBhbiBNV0cuVXJsQ2F0ZWdvcnkgb2JqZWN0IGZvciBHYW1ibGluZ1xuTVdHLlVybENhdGVnb3J5IGdhbWJsaW5nID0gVG9XZWJVcmxDYXRlZ29yeSAoMTE1KVxuXG4vLyBDaGVjayBpZiBjdXJyZW50IHJlcXVlc3QgaXMgY2F0ZWdvcml6ZWQgYXMgR2FtYmxpbmcgYW5kIGJsb2NrIGlmIHRydWVcbklGIENvbnRhaW5zIChjYXRlZ29yaWVzLCBnYW1ibGluZykgVEhFTiB7XG4gICAgTVdHLkJsb2NrIChcIkdhbWJsaW5nIGNvbnRlbnQgbm90IGFsbG93ZWRcIilcbn0iLCAicmV2aWV3ZWQiOiAiVFJVRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIi8vIEdldCBVUkwgY2F0ZWdvcmllcyBmb3IgY3VycmVudCByZXF1ZXN0XG5WRUNUT1I8TVdHLlVybENhdGVnb3J5PiBjYXRlZ29yaWVzID0gTVdHLlVybENhdGVnb3JpZXMgKE1jQWZlZV9HVElfU2V0dGluZylcblxuLy8gQ3JlYXRlIGFuIE1XRy5VcmxDYXRlZ29yeSBvYmplY3QgZm9yIEdhbWJsaW5nXG5NV0cuVXJsQ2F0ZWdvcnkgZ2FtYmxpbmcgPSBUb1dlYlVybENhdGVnb3J5ICgxMTUpXG5cbi8vIENoZWNrIGlmIGN1cnJlbnQgcmVxdWVzdCBpcyBjYXRlZ29yaXplZCBhcyBHYW1ibGluZyBhbmQgYmxvY2sgaWYgdHJ1ZVxuSUYgQ29udGFpbnMgKGNhdGVnb3JpZXMsIGdhbWJsaW5nKSBUSEVOIHtcbiAgICBNV0cuQmxvY2sgKFwiR2FtYmxpbmcgY29udGVudCBub3QgYWxsb3dlZFwiKVxufSJ9LCB7Im5hbWUiOiAiQ29udGFpbnMgKFZFQ1RPUjxOZXQuSVA+LCBOZXQuSVApIiwgInJldHVybl90eXBlIjogIkJPT0xFQU4iLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyBgVFJVRWAgaWYgdGhlIHByb3ZpZGVkIGxpc3Qgb2YgSVAgYWRkcmVzc2VzIGNvbnRhaW5zIHRoZSBzcGVjaWZpZWQgSVAgYWRkcmVzcy4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiMS4gYFZFQ1RPUjxOZXQuSVA+YDogVGhlIGxpc3Qgb2YgSVAgYWRkcmVzc2VzIHRvIHNlYXJjaC5cbjIuIGBOZXQuSVBgOiBUaGUgSVAgYWRkcmVzcyB0byBzZWFyY2ggZm9yLiIsICJkZXNjcmlwdGlvbiI6ICJDaGVja3Mgd2hldGhlciBhIGxpc3Qgb2YgSVAgYWRkcmVzc2VzIGNvbnRhaW5zIGEgc3BlY2lmaWVkIElQIGFkZHJlc3MuIiwgImV4YW1wbGVfY29kZSI6ICIvLyBMb2FkIGxpc3Qgb2YgSVAgYWRkcmVzc2VzIGZyb20gTGlzdCBDYXRhbG9nXG5WRUNUT1I8TmV0LklQPiBhbGxvd2VkSVBzID0gbGlzdF9BbGxvd2VkQ2xpZW50SVBzXG5cbi8vIENoZWNrIHRoZSBJUCBhZGRyZXNzIG9mIHRoZSBjbGllbnRcbk5ldC5JUCBjdXJyZW50SVAgPSBNV0cuQ2xpZW50SVBcblxuLy8gQmxvY2sgY2xpZW50cyBub3QgaW4gdGhlIGxpc3Qgb2YgYWxsb3dlZCBjbGllbnQgSVBzXG5JRiBDb250YWlucyAoYWxsb3dlZElQcywgY3VycmVudElQKSBUSEVOIHtcbiAgICBNV0cuQWxsb3cgKFwiQWxsb3dlZCBjbGllbnQgSVAgYWRkcmVzc1wiKVxufSBFTFNFIHtcbiAgICBNV0cuQmxvY2sgKFwiQ2xpZW50IElQIGFkZHJlc3Mgbm90IGFsbG93ZWQuXCIpXG59IiwgInJldmlld2VkIjogIlRSVUUiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICIvLyBMb2FkIGxpc3Qgb2YgSVAgYWRkcmVzc2VzIGZyb20gTGlzdCBDYXRhbG9nXG5WRUNUT1I8TmV0LklQPiBhbGxvd2VkSVBzID0gbGlzdF9BbGxvd2VkQ2xpZW50SVBzXG5cbi8vIENoZWNrIHRoZSBJUCBhZGRyZXNzIG9mIHRoZSBjbGllbnRcbk5ldC5JUCBjdXJyZW50SVAgPSBNV0cuQ2xpZW50SVBcblxuLy8gQmxvY2sgY2xpZW50cyBub3QgaW4gdGhlIGxpc3Qgb2YgYWxsb3dlZCBjbGllbnQgSVBzXG5JRiBDb250YWlucyAoYWxsb3dlZElQcywgY3VycmVudElQKSBUSEVOIHtcbiAgICBNV0cuQWxsb3cgKFwiQWxsb3dlZCBjbGllbnQgSVAgYWRkcmVzc1wiKVxufSBFTFNFIHtcbiAgICBNV0cuQmxvY2sgKFwiQ2xpZW50IElQIGFkZHJlc3Mgbm90IGFsbG93ZWQuXCIpXG59In0sIHsibmFtZSI6ICJDb250YWlucyAoVkVDVE9SPE5ldC5JUFJhbmdlPiwgTmV0LklQUmFuZ2UpIiwgInJldHVybl90eXBlIjogIkJPT0xFQU4iLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyBgVFJVRWAgaWYgdGhlIGxpc3Qgb2YgSVAgcmFuZ2VzIGNvbnRhaW5zIHRoZSBnaXZlbiBJUCByYW5nZS4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiMS4gYFZFQ1RPUjxOZXQuSVBSYW5nZT5gOiBMaXN0IG9mIElQIHJhbmdlcyB0byBzZWFyY2ggdGhyb3VnaC5cbjIuIGBOZXQuSVBSYW5nZWA6IFRoZSBJUCByYW5nZSB0byBzZWFyY2ggZm9yLiIsICJkZXNjcmlwdGlvbiI6ICJDaGVja3Mgd2hldGhlciBhIGxpc3Qgb2YgSVAgcmFuZ2VzIGNvbnRhaW5zIGEgc3BlY2lmaWVkIElQIHJhbmdlLiIsICJleGFtcGxlX2NvZGUiOiAiLy8gTG9hZCBhIGxpc3Qgb2YgaW1wb3J0ZWQgSVAgcmFuZ2VzIGZyb20gTGlzdCBDYXRhbG9nXG5WRUNUT1I8TmV0LklQUmFuZ2U+IGltcG9ydGVkSVBSYW5nZXMgPSBsaXN0X0ltcG9ydGVkSVBSYW5nZXNcblxuLy8gRGVmaW5lIGFuIFJGQzE5MTggSVAgcmFuZ2Vcbk5ldC5JUFJhbmdlIHJmYzE5MTggPSBOZXQuVG9JUFJhbmdlIChcIjEwLjAuMC4wLzhcIilcblxuLy8gQ2hlY2sgaWYgdGhlIGltcG9ydGVkIHJhbmdlIGxpc3QgY29udGFpbnMgUkZDMTkxOCByYW5nZVxuQk9PTEVBTiByYW5nZXNJbmNsdWRlUHJpdmF0ZUlQcyA9IENvbnRhaW5zIChpbXBvcnRlZElQUmFuZ2VzLCByZmMxOTE4KSIsICJyZXZpZXdlZCI6ICJUUlVFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiLy8gTG9hZCBhIGxpc3Qgb2YgaW1wb3J0ZWQgSVAgcmFuZ2VzIGZyb20gTGlzdCBDYXRhbG9nXG5WRUNUT1I8TmV0LklQUmFuZ2U+IGltcG9ydGVkSVBSYW5nZXMgPSBsaXN0X0ltcG9ydGVkSVBSYW5nZXNcblxuLy8gRGVmaW5lIGFuIFJGQzE5MTggSVAgcmFuZ2Vcbk5ldC5JUFJhbmdlIHJmYzE5MTggPSBOZXQuVG9JUFJhbmdlIChcIjEwLjAuMC4wLzhcIilcblxuLy8gQ2hlY2sgaWYgdGhlIGltcG9ydGVkIHJhbmdlIGxpc3QgY29udGFpbnMgUkZDMTkxOCByYW5nZVxuQk9PTEVBTiByYW5nZXNJbmNsdWRlUHJpdmF0ZUlQcyA9IENvbnRhaW5zIChpbXBvcnRlZElQUmFuZ2VzLCByZmMxOTE4KSJ9LCB7Im5hbWUiOiAiQ29udGFpbnMgKFZFQ1RPUjxOZXQuSVBSYW5nZT4sIFZFQ1RPUjxOZXQuSVA+KSIsICJyZXR1cm5fdHlwZSI6ICJCT09MRUFOIiwgInJldHVybl9kZXNjIjogIlJldHVybnMgYFRSVUVgIGlmIGFueSBJUCBmcm9tIHRoZSBsaXN0IG9mIElQcyBpcyBmb3VuZCB3aXRoaW4gYW55IElQIHJhbmdlIHNwZWNpZmllZCBpbiB0aGUgbGlzdCBvZiBJUCByYW5nZXMuIiwgInBhcmFtZXRlcl9kZXNjIjogIjEuIGBWRUNUT1I8TmV0LklQUmFuZ2U+YDogVGhlIGxpc3Qgb2YgSVAgcmFuZ2VzLlxuMi4gYFZFQ1RPUjxOZXQuSVA+YDogVGhlIGxpc3Qgb2YgSVAgYWRkcmVzc2VzLiIsICJkZXNjcmlwdGlvbiI6ICJDaGVja3Mgd2hldGhlciBhIGxpc3Qgb2YgSVAgcmFuZ2VzIGNvbnRhaW5zIGF0IGxlYXN0IG9uZSBJUCBhZGRyZXNzIGZyb20gYSBsaXN0IG9mIElQIGFkZHJlc3Nlcy4iLCAiZXhhbXBsZV9jb2RlIjogIi8vIERlZmluZSBhIHZlY3RvciBvZiBJUCByYW5nZXNcblZFQ1RPUjxOZXQuSVBSYW5nZT4gaXBSYW5nZXMgPSBOZXQuVG9JUFJhbmdlIChcIjE5Mi4xNjguMS4wLzI0XCIpLCBOZXQuVG9JUFJhbmdlIChcIjEwLjAuMC4wLzhcIilcblxuLy8gRGVmaW5lIGEgdmVjdG9yIG9mIGNsaWVudCBJUHNcblZFQ1RPUjxOZXQuSVA+IGNsaWVudElQcyA9IE5ldC5Ub0lQIChcIjE5Mi4xNjguMS4xMFwiKSwgTmV0LlRvSVAgKFwiMTcyLjE2LjAuMVwiKVxuXG4vLyBDaGVjayBpZiBhbnkgSVAgaXMgY29udGFpbmVkIGluIGFueSByYW5nZVxuQk9PTEVBTiBpcE1hdGNoZWQgPSBDb250YWlucyAoaXBSYW5nZXMsIGNsaWVudElQcylcbi8vIGlwTWF0Y2hlZCBub3cgZXF1YWxzIFRSVUUgYmVjYXVzZSAxOTIuMTY4LjEuMTAgaXMgY29udGFpbmVkIGluIDE5Mi4xNjguMS4wLzI0IiwgInJldmlld2VkIjogIlRSVUUiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICIvLyBEZWZpbmUgYSB2ZWN0b3Igb2YgSVAgcmFuZ2VzXG5WRUNUT1I8TmV0LklQUmFuZ2U+IGlwUmFuZ2VzID0gTmV0LlRvSVBSYW5nZSAoXCIxOTIuMTY4LjEuMC8yNFwiKSwgTmV0LlRvSVBSYW5nZSAoXCIxMC4wLjAuMC84XCIpXG5cbi8vIERlZmluZSBhIHZlY3RvciBvZiBjbGllbnQgSVBzXG5WRUNUT1I8TmV0LklQPiBjbGllbnRJUHMgPSBOZXQuVG9JUCAoXCIxOTIuMTY4LjEuMTBcIiksIE5ldC5Ub0lQIChcIjE3Mi4xNi4wLjFcIilcblxuLy8gQ2hlY2sgaWYgYW55IElQIGlzIGNvbnRhaW5lZCBpbiBhbnkgcmFuZ2VcbkJPT0xFQU4gaXBNYXRjaGVkID0gQ29udGFpbnMgKGlwUmFuZ2VzLCBjbGllbnRJUHMpXG4vLyBpcE1hdGNoZWQgbm93IGVxdWFscyBUUlVFIGJlY2F1c2UgMTkyLjE2OC4xLjEwIGlzIGNvbnRhaW5lZCBpbiAxOTIuMTY4LjEuMC8yNCJ9LCB7Im5hbWUiOiAiQ29udGFpbnMgKFZFQ1RPUjxOVU1CRVI+LCBOVU1CRVIpIiwgInJldHVybl90eXBlIjogIkJPT0xFQU4iLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyBgVFJVRWAgaWYgdGhlIHByb3ZpZGVkIGxpc3Qgb2YgbnVtYmVycyBjb250YWlucyB0aGUgc3BlY2lmaWVkIG51bWJlci4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiMS4gYFZFQ1RPUjxOVU1CRVI+YDogVGhlIGxpc3Qgb2YgbnVtYmVycyB0byBzZWFyY2guXG4yLiBgTlVNQkVSYDogVGhlIG51bWJlciB0byBzZWFyY2ggZm9yLiIsICJkZXNjcmlwdGlvbiI6ICJEZXRlcm1pbmVzIHdoZXRoZXIgdGhlIGdpdmVuIHZlY3RvciBjb250YWlucyB0aGUgZ2l2ZW4gbnVtYmVyLiIsICJleGFtcGxlX2NvZGUiOiAiVkVDVE9SPE5VTUJFUj4gcHJpbWVzID0gMiwgMywgNSwgNywgMTEsIDEzLCAxNywgMTksIDIzLCAyOVxuTlVNQkVSIG51bWJlclRvQ2hlY2sgPSAzXG5cbkJPT0xFQU4gbnVtYmVySXNQcmltZSA9IENvbnRhaW5zIChwcmltZXMsIG51bWJlclRvQ2hlY2spXG4vLyBudW1iZXJJc1ByaW1lIG5vdyBlcXVhbHMgVFJVRSIsICJyZXZpZXdlZCI6ICJUUlVFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiVkVDVE9SPE5VTUJFUj4gcHJpbWVzID0gMiwgMywgNSwgNywgMTEsIDEzLCAxNywgMTksIDIzLCAyOVxuTlVNQkVSIG51bWJlclRvQ2hlY2sgPSAzXG5cbkJPT0xFQU4gbnVtYmVySXNQcmltZSA9IENvbnRhaW5zIChwcmltZXMsIG51bWJlclRvQ2hlY2spXG4vLyBudW1iZXJJc1ByaW1lIG5vdyBlcXVhbHMgVFJVRSJ9LCB7Im5hbWUiOiAiQ29udGFpbnMgKFZFQ1RPUjxTVFJJTkc+LCBTVFJJTkcpIiwgInJldHVybl90eXBlIjogIkJPT0xFQU4iLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyBgVFJVRWAgaWYgdGhlIHByb3ZpZGVkIGxpc3Qgb2Ygc3RyaW5ncyBjb250YWlucyB0aGUgc3BlY2lmaWVkIHN0cmluZy4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiMS4gYFZFQ1RPUjxTVFJJTkc+YDogVGhlIGxpc3Qgb2Ygc3RyaW5ncyB0byBzZWFyY2guXG4yLiBgU1RSSU5HYDogVGhlIHN0cmluZyB0byBzZWFyY2ggZm9yLiIsICJkZXNjcmlwdGlvbiI6ICJDaGVja3Mgd2hldGhlciBhIGxpc3Qgb2Ygc3RyaW5ncyBjb250YWlucyBhIHNwZWNpZmllZCBzdHJpbmcuIiwgImV4YW1wbGVfY29kZSI6ICJWRUNUT1I8U1RSSU5HPiBmb3JkVmVoaWNsZXMgPSBcIk11c3RhbmdcIiwgXCJGLTE1MFwiLCBcIkV4cGxvcmVyXCIsIFwiRXhwZWRpdGlvblwiXG5TVFJJTkcgbXlWZWhpY2xlID0gXCJGLTE1MFwiXG5cbkJPT0xFQU4gaXNGb3JkID0gQ29udGFpbnMgKGZvcmRWZWhpY2xlcywgbXlWZWhpY2xlKVxuLy8gaXNGb3JkIG5vdyBlcXVhbHMgVFJVRSIsICJyZXZpZXdlZCI6ICJUUlVFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiVkVDVE9SPFNUUklORz4gZm9yZFZlaGljbGVzID0gXCJNdXN0YW5nXCIsIFwiRi0xNTBcIiwgXCJFeHBsb3JlclwiLCBcIkV4cGVkaXRpb25cIlxuU1RSSU5HIG15VmVoaWNsZSA9IFwiRi0xNTBcIlxuXG5CT09MRUFOIGlzRm9yZCA9IENvbnRhaW5zIChmb3JkVmVoaWNsZXMsIG15VmVoaWNsZSlcbi8vIGlzRm9yZCBub3cgZXF1YWxzIFRSVUUifSwgeyJuYW1lIjogIkNvbnRhaW5zIChWRUNUT1I8WW91VHViZVZpZGVvQ2F0ZWdvcnk+LCBZb3VUdWJlVmlkZW9DYXRlZ29yeSkiLCAicmV0dXJuX3R5cGUiOiAiQk9PTEVBTiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIGBUUlVFYCBpZiB0aGUgcHJvdmlkZWQgbGlzdCBvZiBZb3VUdWJlIHZpZGVvIGNhdGVnb3JpZXMgY29udGFpbnMgdGhlIHNwZWNpZmllZCBZb3VUdWJlIHZpZGVvIGNhdGVnb3J5IC4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiMS4gYFZFQ1RPUjxZb3VUdWJlVmlkZW9DYXRlZ29yeT5gOiBUaGUgbGlzdCBvZiBZb3VUdWJlIHZpZGVvIGNhdGVnb3JpZXMgdG8gc2VhcmNoLlxuMi4gYFlvdVR1YmVWaWRlb0NhdGVnb3J5YDogVGhlIFlvdVR1YmUgdmlkZW8gY2F0ZWdvcnkgdG8gc2VhcmNoIGZvci4iLCAiZGVzY3JpcHRpb24iOiAiQ2hlY2tzIHdoZXRoZXIgYSBsaXN0IG9mIFlvdVR1YmUgdmlkZW8gY2F0ZWdvcmllcyBjb250YWlucyBhIHNwZWNpZmllZCBZb3VUdWJlIHZpZGVvIGNhdGVnb3J5LiIsICJleGFtcGxlX2NvZGUiOiAiLy8gQ2FsbCBTa3loaWdoLXByb3ZpZGVkIFlvdVR1YmVfQVBJIFJPVVRJTkUgdG8gZ2V0IHZpZGVvIGNhdGVnb3J5XG5DQUxMIFwiWW91VHViZV9BUElcIlxuWW91VHViZVZpZGVvQ2F0ZWdvcnkgdmlkZW9DYXRlZ29yeSA9IFRvWW91VHViZVZpZGVvQ2F0ZWdvcnkgKEpTT04uR2V0QXNTdHJpbmcgKGNhbGxQYXJhbWV0ZXIsIFwieW91VHViZV9DYXRlZ29yeUlkXCIpKVxuXG4vLyBDcmVhdGUgbGlzdCBvZiBZb3VUdWJlVmlkZW9DYXRlZ29yeXMgdG8gYmxvY2tcblZFQ1RPUjxZb3VUdWJlVmlkZW9DYXRlZ29yeT4gYmxvY2tlZENhdGVnb3JpZXMgPSBUb1lvdVR1YmVWaWRlb0NhdGVnb3J5IChcIkdhbWluZ1wiKSwgVG9Zb3VUdWJlVmlkZW9DYXRlZ29yeSAoXCJNb3ZpZXNcIilcblxuLy8gQmxvY2sgaWYgY3VycmVudCB2aWRlbyBpcyBpbiBhIGJsb2NrZWQgY2F0ZWdvcnlcbklGIENvbnRhaW5zIChibG9ja2VkQ2F0ZWdvcmllcywgdmlkZW9DYXRlZ29yeSkgVEhFTlxuICAgIE1XRy5CbG9jayAoXCJCbG9ja2VkIFlvdVR1YmUgY2F0ZWdvcnlcIikiLCAicmV2aWV3ZWQiOiAiVFJVRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIi8vIENhbGwgU2t5aGlnaC1wcm92aWRlZCBZb3VUdWJlX0FQSSBST1VUSU5FIHRvIGdldCB2aWRlbyBjYXRlZ29yeVxuQ0FMTCBcIllvdVR1YmVfQVBJXCJcbllvdVR1YmVWaWRlb0NhdGVnb3J5IHZpZGVvQ2F0ZWdvcnkgPSBUb1lvdVR1YmVWaWRlb0NhdGVnb3J5IChKU09OLkdldEFzU3RyaW5nIChjYWxsUGFyYW1ldGVyLCBcInlvdVR1YmVfQ2F0ZWdvcnlJZFwiKSlcblxuLy8gQ3JlYXRlIGxpc3Qgb2YgWW91VHViZVZpZGVvQ2F0ZWdvcnlzIHRvIGJsb2NrXG5WRUNUT1I8WW91VHViZVZpZGVvQ2F0ZWdvcnk+IGJsb2NrZWRDYXRlZ29yaWVzID0gVG9Zb3VUdWJlVmlkZW9DYXRlZ29yeSAoXCJHYW1pbmdcIiksIFRvWW91VHViZVZpZGVvQ2F0ZWdvcnkgKFwiTW92aWVzXCIpXG5cbi8vIEJsb2NrIGlmIGN1cnJlbnQgdmlkZW8gaXMgaW4gYSBibG9ja2VkIGNhdGVnb3J5XG5JRiBDb250YWlucyAoYmxvY2tlZENhdGVnb3JpZXMsIHZpZGVvQ2F0ZWdvcnkpIFRIRU5cbiAgICBNV0cuQmxvY2sgKFwiQmxvY2tlZCBZb3VUdWJlIGNhdGVnb3J5XCIpIn0sIHsibmFtZSI6ICJDb250YWluc0FsbCAoVkVDVE9SPE5ldC5JUFJhbmdlPiwgVkVDVE9SPE5ldC5JUD4pIiwgInJldHVybl90eXBlIjogIkJPT0xFQU4iLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyBgVFJVRWAgaWYgdGhlIElQIHJhbmdlbGlzdCBjb250YWlucyBhbGwgb2YgdGhlIElQcyBmcm9tIHRoZSBJUCBsaXN0LiIsICJwYXJhbWV0ZXJfZGVzYyI6ICIxLiBgVkVDVE9SPE5ldC5JUFJhbmdlPmA6IFRoZSBsaXN0IG9mIElQIHJhbmdlcyB0byBzZWFyY2ggdGhyb3VnaC5cbjIuIGBWRUNUT1I8TmV0LklQPmA6IFRoZSBsaXN0IG9mIElQIGFkZHJlc3NlcyB0byBzZWFyY2ggZm9yLiIsICJkZXNjcmlwdGlvbiI6ICJDaGVja3Mgd2hldGhlciBhIGxpc3Qgb2YgSVAgcmFuZ2VzIGNvbnRhaW5zIGFsbCBvZiB0aGUgSVBzIGluIGEgbGlzdCBvZiBJUCBhZGRyZXNzZXMuIiwgImV4YW1wbGVfY29kZSI6ICJWRUNUT1I8TmV0LklQUmFuZ2U+IHByaXZhdGVJUFJhbmdlcyA9IE5ldC5Ub0lQUmFuZ2UoXCIxMC4wLjAuMC84XCIpLFxuICAgIE5ldC5Ub0lQUmFuZ2UoXCIxNzIuMTYuMC4wLzEyXCIpLFxuICAgIE5ldC5Ub0lQUmFuZ2UgKFwiMTkyLjE2OC4wLjAvMTZcIilcblZFQ1RPUjxOZXQuSVA+IGNvbm5lY3Rpb25JUHMgPSBNV0cuQ2xpZW50SVAsIE1XRy5EZXN0aW5hdGlvbklQXG5cbi8vIENoZWNrIHdoZXRoZXIgY29ubmVjdGlvbidzIHNvdXJjZSBhbmQgZGVzdGluYXRpb24gSVAgYXJlIGJvdGggcHJpdmF0ZVxuQk9PTEVBTiBpc0ludGVybmFsID0gQ29udGFpbnNBbGwgKHByaXZhdGVJUFJhbmdlcywgY29ubmVjdGlvbklQcykiLCAicmV2aWV3ZWQiOiAiVFJVRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIlZFQ1RPUjxOZXQuSVBSYW5nZT4gcHJpdmF0ZUlQUmFuZ2VzID0gTmV0LlRvSVBSYW5nZShcIjEwLjAuMC4wLzhcIiksXG4gICAgTmV0LlRvSVBSYW5nZShcIjE3Mi4xNi4wLjAvMTJcIiksXG4gICAgTmV0LlRvSVBSYW5nZSAoXCIxOTIuMTY4LjAuMC8xNlwiKVxuVkVDVE9SPE5ldC5JUD4gY29ubmVjdGlvbklQcyA9IE1XRy5DbGllbnRJUCwgTVdHLkRlc3RpbmF0aW9uSVBcblxuLy8gQ2hlY2sgd2hldGhlciBjb25uZWN0aW9uJ3Mgc291cmNlIGFuZCBkZXN0aW5hdGlvbiBJUCBhcmUgYm90aCBwcml2YXRlXG5CT09MRUFOIGlzSW50ZXJuYWwgPSBDb250YWluc0FsbCAocHJpdmF0ZUlQUmFuZ2VzLCBjb25uZWN0aW9uSVBzKSJ9LCB7Im5hbWUiOiAiQ29udGFpbnNDYXNlSW5zZW5zaXRpdmUgKFZFQ1RPUjxTVFJJTkc+LCBTVFJJTkcpIiwgInJldHVybl90eXBlIjogIkJPT0xFQU4iLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyBgVFJVRSBpZiB0aGUgcHJvdmlkZWQgbGlzdCBvZiBzdHJpbmdzIGNvbnRhaW5zIHRoZSBwcm92aWRlZCBzdHJpbmcgd2l0aG91dCBjb25zaWRlcmluZyBjYXNlLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICIxLiBgVkVDVE9SPFNUUklORz5gOiBUaGUgbGlzdCBvZiBzdHJpbmdzIHRvIHNlYXJjaC5cbjIuIGBTVFJJTkdgOiBUaGUgc3RyaW5nIHRvIHNlYXJjaCBmb3IgY2FzZS1pbnNlbnNpdGl2ZWx5LiIsICJkZXNjcmlwdGlvbiI6ICJDaGVja3Mgd2hldGhlciBhIGxpc3Qgb2Ygc3RyaW5ncyBjb250YWlucyBhIHNwZWNpZmllZCBzdHJpbmcgaW4gYSBjYXNlLWluc2Vuc2l0aXZlIG1hbm5lci4iLCAiZXhhbXBsZV9jb2RlIjogIlZFQ1RPUjxTVFJJTkc+IGZydWl0ID0gXCJQbHVtXCIsIFwiUGVhclwiLCBcIlBpbmVhcHBsZVwiLCBcIlBlYWNoXCJcblNUUklORyBteUZvb2QgPSBcInBlYXJcIlxuXG5CT09MRUFOIG15Rm9vZElzRnJ1aXQgPSBDb250YWluc0Nhc2VJbnNlbnNpdGl2ZSAoZnJ1aXQsIG15Rm9vZClcbi8vIG15Rm9vZElzRnJ1aXQgbm93IGVxdWFscyBUUlVFIiwgInJldmlld2VkIjogIlRSVUUiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICJWRUNUT1I8U1RSSU5HPiBmcnVpdCA9IFwiUGx1bVwiLCBcIlBlYXJcIiwgXCJQaW5lYXBwbGVcIiwgXCJQZWFjaFwiXG5TVFJJTkcgbXlGb29kID0gXCJwZWFyXCJcblxuQk9PTEVBTiBteUZvb2RJc0ZydWl0ID0gQ29udGFpbnNDYXNlSW5zZW5zaXRpdmUgKGZydWl0LCBteUZvb2QpXG4vLyBteUZvb2RJc0ZydWl0IG5vdyBlcXVhbHMgVFJVRSJ9LCB7Im5hbWUiOiAiQ29udGFpbnNNYXRjaCAoVkVDVE9SPE1lZGlhVHlwZT4sIFJlZ0V4SlNpKSIsICJyZXR1cm5fdHlwZSI6ICJCT09MRUFOIiwgInJldHVybl9kZXNjIjogIlJldHVybnNgVFJVRWBpZiB0aGUgaW5wdXQgYFZFQ1RPUmBjb250YWlucyBhdCBsZWFzdCBvbmUgZWxlbWVudCB0aGF0IG1hdGNoZXMgdGhlIHJlZ3VsYXIgZXhwcmVzc2lvbiBgUmVnRXhKU2lgLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICIxLiBgVkVDVE9SPE1lZGlhVHlwZT5gOiBUaGUgaW5wdXQgbGlzdCB0byBiZSBzZWFyY2hlZC5cbjIuIGBSZWdFeEpTaWA6IFRoZSByZWd1bGFyIGV4cHJlc3Npb24gcGF0dGVybiB0byBtYXRjaC4iLCAiZGVzY3JpcHRpb24iOiAiUmV0dXJucyBUUlVFIGlmIHRoZSBpbnB1dCBsaXN0IGNvbnRhaW5zIGF0IGxlYXN0IG9uZSByZWd1bGFyIGV4cHJlc3Npb24gbWF0Y2guIiwgImV4YW1wbGVfY29kZSI6ICIvLyBEZWZpbmUgYSBWRUNUT1Igb2YgTWVkaWFUeXBlXG5WRUNUT1I8TWVkaWFUeXBlPiBtZWRpYVR5cGVzID0gW1widGV4dC9odG1sXCIsIFwiYXBwbGljYXRpb24vanNvblwiLCBcImltYWdlL3BuZ1wiXVxuXG4vLyBEZWZpbmUgYSByZWd1bGFyIGV4cHJlc3Npb24gcGF0dGVybiB0byBtYXRjaCBtZWRpYSB0eXBlcyB0aGF0IGFyZSB0ZXh0LWJhc2VkXG5SZWdFeEpTaSB0ZXh0UGF0dGVybiA9IFwiL3RleHRcXC8uKi9cIlxuXG4vLyBDaGVjayBpZiBhbnkgb2YgdGhlIG1lZGlhIHR5cGVzIG1hdGNoIHRoZSB0ZXh0IHBhdHRlcm5cbkJPT0xFQU4gaGFzVGV4dE1lZGlhVHlwZSA9IENvbnRhaW5zTWF0Y2gobWVkaWFUeXBlcywgdGV4dFBhdHRlcm4pXG5cbi8vIFByaW50IHRoZSByZXN1bHQgdG8gdGhlIGNvbnNvbGVcbklGIGhhc1RleHRNZWRpYVR5cGUgVEhFTiB7XG4gICAgLy8gVGhlIG1lZGlhIHR5cGVzIGNvbnRhaW4gYSB0ZXh0LWJhc2VkIG1lZGlhIHR5cGUuXG59IEVMU0Uge1xuICAgIC8vIFRoZSBtZWRpYSB0eXBlcyBkbyBub3QgY29udGFpbiBhIHRleHQtYmFzZWQgbWVkaWEgdHlwZS5cbn0iLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIlRSVUUiLCAiY29kZV9leGFtcGxlIjogIi8vIERlZmluZSBhIFZFQ1RPUiBvZiBNZWRpYVR5cGVcblZFQ1RPUjxNZWRpYVR5cGU+IG1lZGlhVHlwZXMgPSBbXCJ0ZXh0L2h0bWxcIiwgXCJhcHBsaWNhdGlvbi9qc29uXCIsIFwiaW1hZ2UvcG5nXCJdXG5cbi8vIERlZmluZSBhIHJlZ3VsYXIgZXhwcmVzc2lvbiBwYXR0ZXJuIHRvIG1hdGNoIG1lZGlhIHR5cGVzIHRoYXQgYXJlIHRleHQtYmFzZWRcblJlZ0V4SlNpIHRleHRQYXR0ZXJuID0gXCIvdGV4dFxcLy4qL1wiXG5cbi8vIENoZWNrIGlmIGFueSBvZiB0aGUgbWVkaWEgdHlwZXMgbWF0Y2ggdGhlIHRleHQgcGF0dGVyblxuQk9PTEVBTiBoYXNUZXh0TWVkaWFUeXBlID0gQ29udGFpbnNNYXRjaChtZWRpYVR5cGVzLCB0ZXh0UGF0dGVybilcblxuLy8gUHJpbnQgdGhlIHJlc3VsdCB0byB0aGUgY29uc29sZVxuSUYgaGFzVGV4dE1lZGlhVHlwZSBUSEVOIHtcbiAgICAvLyBUaGUgbWVkaWEgdHlwZXMgY29udGFpbiBhIHRleHQtYmFzZWQgbWVkaWEgdHlwZS5cbn0gRUxTRSB7XG4gICAgLy8gVGhlIG1lZGlhIHR5cGVzIGRvIG5vdCBjb250YWluIGEgdGV4dC1iYXNlZCBtZWRpYSB0eXBlLlxufSJ9LCB7Im5hbWUiOiAiQ29udGFpbnNNYXRjaCAoVkVDVE9SPFNUUklORz4sIFJlZ0V4SlNpKSIsICJyZXR1cm5fdHlwZSI6ICJCT09MRUFOIiwgInJldHVybl9kZXNjIjogIlJldHVybnMgYFRSVUVgIGlmIGFueSBzdHJpbmcgaW4gdGhlIGxpc3QgbWF0Y2hlcyB0aGUgcmVndWxhciBleHByZXNzaW9uIHBhdHRlcm4gc3BlY2lmaWVkIGJ5IGBSZWdFeEpTaWAuIiwgInBhcmFtZXRlcl9kZXNjIjogIjEuIGBWRUNUT1I8U1RSSU5HPmA6IFRoZSBsaXN0IG9mIHN0cmluZ3MgdG8gYmUgY2hlY2tlZCBmb3IgbWF0Y2hlcy5cbjIuIGBSZWdFeEpTaWA6IFRoZSByZWd1bGFyIGV4cHJlc3Npb24gcGF0dGVybiB0byBzZWFyY2ggZm9yIHdpdGhpbiB0aGUgbGlzdC4iLCAiZGVzY3JpcHRpb24iOiAiQ2hlY2tzIHdoZXRoZXIgYSBsaXN0IG9mIHN0cmluZ3MgY29udGFpbnMgYXQgbGVhc3Qgb25lIG1hdGNoIHdpdGggYSBnaXZlbiByZWd1bGFyIGV4cHJlc3Npb24uIiwgImV4YW1wbGVfY29kZSI6ICIvLyBEZWZpbmUgYSB2ZWN0b3Igb2Ygc3RyaW5nc1xuVkVDVE9SPFNUUklORz4gc3RyaW5nTGlzdCA9IFwiYXBwbGVcIiwgXCJiYW5hbmFcIiwgXCJjaGVycnlcIiwgXCJkYXRlXCJcblxuLy8gRGVmaW5lIGEgcmVndWxhciBleHByZXNzaW9uIHBhdHRlcm4gdG8gbWF0Y2ggYW55IHN0cmluZyBiZWdpbm5pbmcgd2l0aCB0aGUgbGV0dGVyICdhJ1xuUmVnRXhKU2kgcGF0dGVybiA9IFJlZ0V4SlNpKFwiXmEuKlwiKVxuXG4vLyBDaGVjayBpZiBhbnkgc3RyaW5nIGluIHRoZSB2ZWN0b3IgbWF0Y2hlcyB0aGUgcGF0dGVyblxuQk9PTEVBTiBoYXNNYXRjaCA9IENvbnRhaW5zTWF0Y2goc3RyaW5nTGlzdCwgcGF0dGVybilcbi8vIGhhc01hdGNoIG5vdyBlcXVhbHMgYFRSVUVgIGJlY2F1c2UgdGhlIHN0cmluZyBcImFwcGxlXCIgbWF0Y2hlZCB0aGUgcmVnZXgiLCAicmV2aWV3ZWQiOiAiVFJVRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIi8vIERlZmluZSBhIHZlY3RvciBvZiBzdHJpbmdzXG5WRUNUT1I8U1RSSU5HPiBzdHJpbmdMaXN0ID0gXCJhcHBsZVwiLCBcImJhbmFuYVwiLCBcImNoZXJyeVwiLCBcImRhdGVcIlxuXG4vLyBEZWZpbmUgYSByZWd1bGFyIGV4cHJlc3Npb24gcGF0dGVybiB0byBtYXRjaCBhbnkgc3RyaW5nIGJlZ2lubmluZyB3aXRoIHRoZSBsZXR0ZXIgJ2EnXG5SZWdFeEpTaSBwYXR0ZXJuID0gUmVnRXhKU2koXCJeYS4qXCIpXG5cbi8vIENoZWNrIGlmIGFueSBzdHJpbmcgaW4gdGhlIHZlY3RvciBtYXRjaGVzIHRoZSBwYXR0ZXJuXG5CT09MRUFOIGhhc01hdGNoID0gQ29udGFpbnNNYXRjaChzdHJpbmdMaXN0LCBwYXR0ZXJuKVxuLy8gaGFzTWF0Y2ggbm93IGVxdWFscyBgVFJVRWAgYmVjYXVzZSB0aGUgc3RyaW5nIFwiYXBwbGVcIiBtYXRjaGVkIHRoZSByZWdleCJ9LCB7Im5hbWUiOiAiQ29udGFpbnNOb25lIChWRUNUT1I8TmV0LklQUmFuZ2U+LCBWRUNUT1I8TmV0LklQPikiLCAicmV0dXJuX3R5cGUiOiAiQk9PTEVBTiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm4gYFRSVUVgIGlmIHRoZSBsaXN0IG9mIElQIHJhbmdlcyBjb250YWlucyAqKm5vbmUqKiBvZiB0aGUgSVBzIGZyb20gdGhlIGxpc3Qgb2YgSVAgYWRkcmVzc2VzLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICIxLiBgVkVDVE9SPE5ldC5JUFJhbmdlPmA6IFRoZSBsaXN0IG9mIElQIHJhbmdlcyB0byBzZWFyY2ggdGhyb3VnaC5cbjIuIGBWRUNUT1I8TmV0LklQPmA6IFRoZSBsaXN0IG9mIElQIGFkZHJlc3NlcyB0byBzZWFyY2ggZm9yLiIsICJkZXNjcmlwdGlvbiI6ICJDaGVja3Mgd2hldGhlciBhIGxpc3Qgb2YgSVAgcmFuZ2VzIGNvbnRhaW5zIG5vbmUgb2YgdGhlIElQcyBmcm9tIGEgbGlzdCBvZiBJUCBhZGRyZXNzZXMuIiwgImV4YW1wbGVfY29kZSI6ICIvLyBEZWZpbmUgYSB2ZWN0b3Igb2YgSVAgcmFuZ2VzXG5WRUNUT1I8TmV0LklQUmFuZ2U+IGlwUmFuZ2VzID0gTmV0LlRvSVBSYW5nZSAoXCIxOTIuMTY4LjEuMC8yNFwiKSwgTmV0LlRvSVBSYW5nZSAoXCIxMC4wLjAuMC84XCIpXG5cbi8vIERlZmluZSBhIHZlY3RvciBvZiBjbGllbnQgSVBzXG5WRUNUT1I8TmV0LklQPiBjbGllbnRJUHMgPSBOZXQuVG9JUCAoXCIxOTIuMTY4LjEuMTBcIiksIE5ldC5Ub0lQIChcIjE3Mi4xNi4wLjFcIilcblxuLy8gQ2hlY2sgaWYgYW55IElQIGlzIGNvbnRhaW5lZCBpbiBhbnkgcmFuZ2VcbkJPT0xFQU4gaXBNYXRjaGVkID0gQ29udGFpbnNOb25lIChpcFJhbmdlcywgY2xpZW50SVBzKVxuLy8gaXBNYXRjaGVkIG5vdyBlcXVhbHMgRkFMU0UgYmVjYXVzZSAxOTIuMTY4LjEuMTAgaXMgY29udGFpbmVkIGluIDE5Mi4xNjguMS4wLzI0IiwgInJldmlld2VkIjogIlRSVUUiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICIvLyBEZWZpbmUgYSB2ZWN0b3Igb2YgSVAgcmFuZ2VzXG5WRUNUT1I8TmV0LklQUmFuZ2U+IGlwUmFuZ2VzID0gTmV0LlRvSVBSYW5nZSAoXCIxOTIuMTY4LjEuMC8yNFwiKSwgTmV0LlRvSVBSYW5nZSAoXCIxMC4wLjAuMC84XCIpXG5cbi8vIERlZmluZSBhIHZlY3RvciBvZiBjbGllbnQgSVBzXG5WRUNUT1I8TmV0LklQPiBjbGllbnRJUHMgPSBOZXQuVG9JUCAoXCIxOTIuMTY4LjEuMTBcIiksIE5ldC5Ub0lQIChcIjE3Mi4xNi4wLjFcIilcblxuLy8gQ2hlY2sgaWYgYW55IElQIGlzIGNvbnRhaW5lZCBpbiBhbnkgcmFuZ2VcbkJPT0xFQU4gaXBNYXRjaGVkID0gQ29udGFpbnNOb25lIChpcFJhbmdlcywgY2xpZW50SVBzKVxuLy8gaXBNYXRjaGVkIG5vdyBlcXVhbHMgRkFMU0UgYmVjYXVzZSAxOTIuMTY4LjEuMTAgaXMgY29udGFpbmVkIGluIDE5Mi4xNjguMS4wLzI0In0sIHsibmFtZSI6ICJDcmVhdGVNYXBTVFJJTkdUb1NUUklORyAoKSIsICJyZXR1cm5fdHlwZSI6ICJNQVA8U1RSSU5HLFNUUklORz4iLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyBhbiBlbXB0eSBgTUFQPFNUUklORyxTVFJJTkc+YC4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiKk4vQSoiLCAiZGVzY3JpcHRpb24iOiAiQ3JlYXRlcyBhbiBlbXB0eSBgTUFQPFNUUklORyxTVFJJTkc+YCBvYmplY3QuIiwgImV4YW1wbGVfY29kZSI6ICIvLyBDcmVhdGUgYW4gZW1wdHkgbWFwIG9mIFNUUklORyB0byBTVFJJTkdcbk1BUDxTVFJJTkcsIFNUUklORz4gbXlNYXAgPSBDcmVhdGVNYXBTdHJpbmdUb1N0cmluZygpXG5cbi8vIEFkZCBzb21lIGtleS12YWx1ZSBwYWlycyB0byB0aGUgbWFwXG5teU1hcCA9IG15TWFwLlNldCAoXCJrZXkxXCIsIFwidmFsdWUxXCIpXG5teU1hcCA9IG15TWFwLlNldCAoXCJrZXkyXCIsIFwidmFsdWUyXCIpXG5teU1hcCA9IG15TWFwLlNldCAoXCJrZXkzXCIsIFwidmFsdWUzXCIpIiwgInJldmlld2VkIjogIlRSVUUiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICIvLyBDcmVhdGUgYW4gZW1wdHkgbWFwIG9mIFNUUklORyB0byBTVFJJTkdcbk1BUDxTVFJJTkcsIFNUUklORz4gbXlNYXAgPSBDcmVhdGVNYXBTdHJpbmdUb1N0cmluZygpXG5cbi8vIEFkZCBzb21lIGtleS12YWx1ZSBwYWlycyB0byB0aGUgbWFwXG5teU1hcCA9IG15TWFwLlNldCAoXCJrZXkxXCIsIFwidmFsdWUxXCIpXG5teU1hcCA9IG15TWFwLlNldCAoXCJrZXkyXCIsIFwidmFsdWUyXCIpXG5teU1hcCA9IG15TWFwLlNldCAoXCJrZXkzXCIsIFwidmFsdWUzXCIpIn0sIHsibmFtZSI6ICJDcnlwdG9ncmFwaHkuQ3JlYXRlUmFuZG9tQnl0ZXMgKE5VTUJFUikiLCAicmV0dXJuX3R5cGUiOiAiREFUQVJFRiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIGEgYERBVEFSRUZgIHdpdGggdGhlIHNwZWNpZmllZCBhbW91bnQgb2YgcmFuZG9tbHkgZ2VuZXJhdGVkIGRhdGEuIiwgInBhcmFtZXRlcl9kZXNjIjogIjEuIGBOVU1CRVJgOiBUaGUgbGVuZ3RoIG9mIHJhbmRvbSBkYXRhIHRvIGJlIGdlbmVyYXRlZCwgaW4gYnl0ZXMuIiwgImRlc2NyaXB0aW9uIjogIkNyZWF0ZXMgcmFuZG9tbHkgZ2VuZXJhdGVkIGRhdGEuIiwgImV4YW1wbGVfY29kZSI6ICIvLyBEZWZpbmUgdGhlIG51bWJlciBvZiByYW5kb20gYnl0ZXMgeW91IHdhbnQgdG8gZ2VuZXJhdGVcbk5VTUJFUiBudW1CeXRlcyA9IDE2XG5cbi8vIEdlbmVyYXRlIHRoZSByYW5kb20gYnl0ZXNcbkRBVEFSRUYgcmFuZG9tQnl0ZXMgPSBDcnlwdG9ncmFwaHkuQ3JlYXRlUmFuZG9tQnl0ZXMgKG51bUJ5dGVzKSIsICJyZXZpZXdlZCI6ICJUUlVFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiLy8gRGVmaW5lIHRoZSBudW1iZXIgb2YgcmFuZG9tIGJ5dGVzIHlvdSB3YW50IHRvIGdlbmVyYXRlXG5OVU1CRVIgbnVtQnl0ZXMgPSAxNlxuXG4vLyBHZW5lcmF0ZSB0aGUgcmFuZG9tIGJ5dGVzXG5EQVRBUkVGIHJhbmRvbUJ5dGVzID0gQ3J5cHRvZ3JhcGh5LkNyZWF0ZVJhbmRvbUJ5dGVzIChudW1CeXRlcykifSwgeyJuYW1lIjogIkNyeXB0b2dyYXBoeS5DcmVhdGVSYW5kb21CeXRlc0FzQmFzZTY0U1RSSU5HIChOVU1CRVIpIiwgInJldHVybl90eXBlIjogIlNUUklORyIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIGEgYmFzZTY0LWVuY29kZWQgc3RyaW5nIHJlcHJlc2VudGluZyB0aGUgc3BlY2lmaWVkIG51bWJlciBvZiByYW5kb21seSBnZW5lcmF0ZWQgYnl0ZXMuIiwgInBhcmFtZXRlcl9kZXNjIjogIjEuIGBOVU1CRVJgOiBUaGUgbGVuZ3RoIG9mIHRoZSByYW5kb20gZGF0YSB0byBiZSBnZW5lcmF0ZWQsIGluIGJ5dGVzLiIsICJkZXNjcmlwdGlvbiI6ICJDcmVhdGVzIHJhbmRvbWx5IGdlbmVyYXRlZCBkYXRhIGFzIGEgYmFzZTY0LWVuY29kZWQgc3RyaW5nLiIsICJleGFtcGxlX2NvZGUiOiAiLy8gRGVmaW5lIHRoZSBudW1iZXIgb2YgcmFuZG9tIGJ5dGVzIHlvdSB3YW50IHRvIGdlbmVyYXRlXG5OVU1CRVIgbnVtQnl0ZXMgPSAxNlxuXG4vLyBHZW5lcmF0ZSB0aGUgcmFuZG9tIGJ5dGVzXG5TVFJJTkcgcmFuZG9tQjY0Qnl0ZXMgPSBDcnlwdG9ncmFwaHkuQ3JlYXRlUmFuZG9tQnl0ZXNBc0Jhc2U2NFN0cmluZyAobnVtQnl0ZXMpIiwgInJldmlld2VkIjogIlRSVUUiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICIvLyBEZWZpbmUgdGhlIG51bWJlciBvZiByYW5kb20gYnl0ZXMgeW91IHdhbnQgdG8gZ2VuZXJhdGVcbk5VTUJFUiBudW1CeXRlcyA9IDE2XG5cbi8vIEdlbmVyYXRlIHRoZSByYW5kb20gYnl0ZXNcblNUUklORyByYW5kb21CNjRCeXRlcyA9IENyeXB0b2dyYXBoeS5DcmVhdGVSYW5kb21CeXRlc0FzQmFzZTY0U3RyaW5nIChudW1CeXRlcykifSwgeyJuYW1lIjogIkNyeXB0b2dyYXBoeS5DcmVhdGVSYW5kb21CeXRlc0FzQmFzZTY0VVJMU1RSSU5HIChOVU1CRVIpIiwgInJldHVybl90eXBlIjogIlNUUklORyIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIGEgYmFzZTY0LVVSTCBlbmNvZGVkIHN0cmluZyByZXByZXNlbnRpbmcgdGhlIHNwZWNpZmllZCBudW1iZXIgb2YgcmFuZG9tbHkgZ2VuZXJhdGVkIGJ5dGVzLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICIxLiBgTlVNQkVSYDogVGhlIGxlbmd0aCBvZiB0aGUgcmFuZG9tIGRhdGEgdG8gZ2VuZXJhdGUuIiwgImRlc2NyaXB0aW9uIjogIkNyZWF0ZXMgcmFuZG9tbHkgZ2VuZXJhdGVkIGRhdGEgYXMgYSBiYXNlNjQtVVJMIGZvcm1hdHRlZCBzdHJpbmcuIiwgImV4YW1wbGVfY29kZSI6ICIvLyBEZWZpbmUgdGhlIG51bWJlciBvZiByYW5kb20gYnl0ZXMgeW91IHdhbnQgdG8gZ2VuZXJhdGVcbk5VTUJFUiBudW1CeXRlcyA9IDE2XG5cbi8vIEdlbmVyYXRlIHRoZSByYW5kb20gYnl0ZXNcblNUUklORyByYW5kb21CNjRVUkxCeXRlcyA9IENyeXB0b2dyYXBoeS5DcmVhdGVSYW5kb21CeXRlc0FzQmFzZTY0VVJMU3RyaW5nIChudW1CeXRlcykiLCAicmV2aWV3ZWQiOiAiVFJVRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIi8vIERlZmluZSB0aGUgbnVtYmVyIG9mIHJhbmRvbSBieXRlcyB5b3Ugd2FudCB0byBnZW5lcmF0ZVxuTlVNQkVSIG51bUJ5dGVzID0gMTZcblxuLy8gR2VuZXJhdGUgdGhlIHJhbmRvbSBieXRlc1xuU1RSSU5HIHJhbmRvbUI2NFVSTEJ5dGVzID0gQ3J5cHRvZ3JhcGh5LkNyZWF0ZVJhbmRvbUJ5dGVzQXNCYXNlNjRVUkxTdHJpbmcgKG51bUJ5dGVzKSJ9LCB7Im5hbWUiOiAiQ3J5cHRvZ3JhcGh5LkNyZWF0ZVJhbmRvbUJ5dGVzQXNTVFJJTkcgKE5VTUJFUikiLCAicmV0dXJuX3R5cGUiOiAiU1RSSU5HIiwgInJldHVybl9kZXNjIjogIlJldHVybnMgYSBzdHJpbmcgY29udGFpbmluZyB0aGUgc3BlY2lmaWVkIG51bWJlciBvZiByYW5kb21seSBnZW5lcmF0ZWQgYnl0ZXMuIiwgInBhcmFtZXRlcl9kZXNjIjogIjEuIGBOVU1CRVJgOiBUaGUgbGVuZ3RoIG9mIHRoZSByYW5kb20gYnl0ZSBTVFJJTkcgdG8gYmUgZ2VuZXJhdGVkLiIsICJkZXNjcmlwdGlvbiI6ICJSZXR1cm5zIHJhbmRvbWx5IGdlbmVyYXRlZCBkYXRhIGFzIGEgc3RyaW5nLiIsICJleGFtcGxlX2NvZGUiOiAiLy8gRGVmaW5lIHRoZSBudW1iZXIgb2YgcmFuZG9tIGJ5dGVzIHlvdSB3YW50IHRvIGdlbmVyYXRlXG5OVU1CRVIgbnVtQnl0ZXMgPSAxNlxuXG4vLyBHZW5lcmF0ZSB0aGUgcmFuZG9tIGJ5dGVzXG5TVFJJTkcgcmFuZG9tQjY0VVJMQnl0ZXMgPSBDcnlwdG9ncmFwaHkuQ3JlYXRlUmFuZG9tQnl0ZXNBc1N0cmluZyAobnVtQnl0ZXMpIiwgInJldmlld2VkIjogIlRSVUUiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICIvLyBEZWZpbmUgdGhlIG51bWJlciBvZiByYW5kb20gYnl0ZXMgeW91IHdhbnQgdG8gZ2VuZXJhdGVcbk5VTUJFUiBudW1CeXRlcyA9IDE2XG5cbi8vIEdlbmVyYXRlIHRoZSByYW5kb20gYnl0ZXNcblNUUklORyByYW5kb21CNjRVUkxCeXRlcyA9IENyeXB0b2dyYXBoeS5DcmVhdGVSYW5kb21CeXRlc0FzU3RyaW5nIChudW1CeXRlcykifSwgeyJuYW1lIjogIkNyeXB0b2dyYXBoeS5DcmVhdGVSYW5kb21VVUlEICgpIiwgInJldHVybl90eXBlIjogIlNUUklORyIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIGEgcmFuZG9tbHkgZ2VuZXJhdGVkIFVVSUQgYXMgYSBzdHJpbmcuIiwgInBhcmFtZXRlcl9kZXNjIjogIipOL0EqIiwgImRlc2NyaXB0aW9uIjogIkNyZWF0ZXMgYSByYW5kb20gVVVJRC4iLCAiZXhhbXBsZV9jb2RlIjogIi8vIEdlbmVyYXRlIHJhbmRvbSBVVUlEXG5TVFJJTkcgdXVpZCA9IENyeXB0b2dyYXBoeS5DcmVhdGVSYW5kb21VVUlEXG5cbi8vIFN0b3JlIFVVSUQgYXMgYSBVc2VyLURlZmluZWQgVmFyaWFibGVcbk1XRy5TZXRVc2VyRGVmaW5lZFZhciAoXCJHZW5lcmF0ZWRVVUlEXCIsIHV1aWQpIiwgInJldmlld2VkIjogIlRSVUUiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICIvLyBHZW5lcmF0ZSByYW5kb20gVVVJRFxuU1RSSU5HIHV1aWQgPSBDcnlwdG9ncmFwaHkuQ3JlYXRlUmFuZG9tVVVJRFxuXG4vLyBTdG9yZSBVVUlEIGFzIGEgVXNlci1EZWZpbmVkIFZhcmlhYmxlXG5NV0cuU2V0VXNlckRlZmluZWRWYXIgKFwiR2VuZXJhdGVkVVVJRFwiLCB1dWlkKSJ9LCB7Im5hbWUiOiAiQ3J5cHRvZ3JhcGh5LkRhdGFSZWZEZWNyeXB0IChTVFJJTkcsIERBVEFSRUYsIFNUUklORykiLCAicmV0dXJuX3R5cGUiOiAiREFUQVJFRiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIHRoZSBkZWNyeXB0ZWQgZGF0YSByZWZlcmVuY2UgdXNpbmcgdGhlIHNwZWNpZmllZCBhbGdvcml0aG0gYW5kIGtleS4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiMS4gYFNUUklOR2A6IFRoZSBlbmNyeXB0aW9uIGFsZ29yaXRobS4gVGhpcyBjYW4gYmUgYW55IHRoYXQgT3BlblNTTCBzdXBwb3J0cywgc3VjaCBhcyBcImFlcy0xMjgtY2JjXCIgb3IgXCJhZXMtMjU2LWVjYlwiLlxuMi4gYERBVEFSRUZgOiBUaGUgZW5jcnlwdGVkIGRhdGEuXG4zLiBgU1RSSU5HYDogVGhlIGtleSB1c2VkIGZvciBkZWNyeXB0aW9uLiIsICJkZXNjcmlwdGlvbiI6ICJEZWNyeXB0cyBkYXRhIHVzaW5nIHRoZSBzcGVjaWZpZWQgYWxnb3JpdGhtIGFuZCBlbmNyeXB0aW9uIGtleS4gVGhlIGFsZ29yaXRobSBjYW4gYmUgYW55IHRoYXQgT3BlblNTTCBzdXBwb3J0cywgc3VjaCBhcyBcImFlcy0xMjgtY2JjXCIgb3IgXCJhZXMtMjU2LWVjYlwiLiIsICJleGFtcGxlX2NvZGUiOiAiLy8gRGVmaW5lIHRoZSBlbmNyeXB0aW9uIGFsZ29yaXRobSwgZW5jcnlwdGVkIGRhdGEsIGFuZCBrZXlcblNUUklORyBhbGdvcml0aG0gPSBcImFlcy0yNTYtY2JjXCJcbkRBVEFSRUYgZW5jcnlwdGVkRGF0YSA9IC4uLiAvLyBBc3N1bWUgdGhpcyBpcyB5b3VyIGVuY3J5cHRlZCBkYXRhIHJlZmVyZW5jZVxuU1RSSU5HIGtleSA9IFwibXlfdmVyeV9zZWNyZXRfZW5jcnlwdGlvbl9rZXlcIlxuXG4vLyBEZWNyeXB0IHRoZSBkYXRhXG5EQVRBUkVGIGRlY3J5cHRlZERhdGEgPSBDcnlwdG9ncmFwaHkuRGF0YVJlZkRlY3J5cHQgKGFsZ29yaXRobSwgZW5jcnlwdGVkRGF0YSwga2V5KVxuXG4vLyBUaGUgZGVjcnlwdGVkRGF0YSBvYmplY3Qgbm93IGNvbnRhaW5zIHRoZSBvcmlnaW5hbCwgZGVjcnlwdGVkIGRhdGEiLCAicmV2aWV3ZWQiOiAiVFJVRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIi8vIERlZmluZSB0aGUgZW5jcnlwdGlvbiBhbGdvcml0aG0sIGVuY3J5cHRlZCBkYXRhLCBhbmQga2V5XG5TVFJJTkcgYWxnb3JpdGhtID0gXCJhZXMtMjU2LWNiY1wiXG5EQVRBUkVGIGVuY3J5cHRlZERhdGEgPSAuLi4gLy8gQXNzdW1lIHRoaXMgaXMgeW91ciBlbmNyeXB0ZWQgZGF0YSByZWZlcmVuY2VcblNUUklORyBrZXkgPSBcIm15X3Zlcnlfc2VjcmV0X2VuY3J5cHRpb25fa2V5XCJcblxuLy8gRGVjcnlwdCB0aGUgZGF0YVxuREFUQVJFRiBkZWNyeXB0ZWREYXRhID0gQ3J5cHRvZ3JhcGh5LkRhdGFSZWZEZWNyeXB0IChhbGdvcml0aG0sIGVuY3J5cHRlZERhdGEsIGtleSlcblxuLy8gVGhlIGRlY3J5cHRlZERhdGEgb2JqZWN0IG5vdyBjb250YWlucyB0aGUgb3JpZ2luYWwsIGRlY3J5cHRlZCBkYXRhIn0sIHsibmFtZSI6ICJDcnlwdG9ncmFwaHkuRGVjcnlwdCAoU1RSSU5HLCBEQVRBUkVGLCBTVFJJTkcpIiwgInJldHVybl90eXBlIjogIlNUUklORyIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIHRoZSBkZWNyeXB0ZWQgZGF0YSB1c2luZyB0aGUgc3BlY2lmaWVkIGFsZ29yaXRobSBhbmQga2V5LiIsICJwYXJhbWV0ZXJfZGVzYyI6ICIxLiBgU1RSSU5HYDogVGhlIGVuY3J5cHRpb24gYWxnb3JpdGhtLiBUaGlzIGNhbiBiZSBhbnkgdGhhdCBPcGVuU1NMIHN1cHBvcnRzLCBzdWNoIGFzIFwiYWVzLTEyOC1jYmNcIiBvciBcImFlcy0yNTYtZWNiXCIuXG4yLiBgREFUQVJFRmA6IFRoZSBlbmNyeXB0ZWQgZGF0YS5cbjMuIGBTVFJJTkdgOiBUaGUga2V5IHVzZWQgZm9yIGRlY3J5cHRpb24uIiwgImRlc2NyaXB0aW9uIjogIkRlY3J5cHRzIGRhdGEgdXNpbmcgdGhlIHNwZWNpZmllZCBhbGdvcml0aG0gYW5kIGVuY3J5cHRpb24ga2V5LiBUaGUgYWxnb3JpdGhtIGNhbiBiZSBhbnkgdGhhdCBPcGVuU1NMIHN1cHBvcnRzLCBzdWNoIGFzIFwiYWVzLTEyOC1jYmNcIiBvciBcImFlcy0yNTYtZWNiXCIuIiwgImV4YW1wbGVfY29kZSI6ICIvLyBEZWZpbmUgdGhlIGVuY3J5cHRpb24gYWxnb3JpdGhtLCBlbmNyeXB0ZWQgZGF0YSwgYW5kIGtleVxuU1RSSU5HIGFsZ29yaXRobSA9IFwiYWVzLTI1Ni1jYmNcIlxuREFUQVJFRiBlbmNyeXB0ZWREYXRhID0gLi4uIC8vIEFzc3VtZSB0aGlzIGlzIHlvdXIgZW5jcnlwdGVkIGRhdGFcblNUUklORyBrZXkgPSBcIm15X3Zlcnlfc2VjcmV0X2VuY3J5cHRpb25fa2V5XCJcblxuLy8gRGVjcnlwdCB0aGUgZGF0YVxuU1RSSU5HIGRlY3J5cHRlZFN0cmluZyA9IENyeXB0b2dyYXBoeS5EYXRhUmVmRGVjcnlwdCAoYWxnb3JpdGhtLCBlbmNyeXB0ZWREYXRhLCBrZXkpXG5cbi8vIFRoZSBkZWNyeXB0ZWRTdHJpbmcgb2JqZWN0IG5vdyBjb250YWlucyB0aGUgb3JpZ2luYWwsIGRlY3J5cHRlZCBkYXRhIiwgInJldmlld2VkIjogIlRSVUUiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICIvLyBEZWZpbmUgdGhlIGVuY3J5cHRpb24gYWxnb3JpdGhtLCBlbmNyeXB0ZWQgZGF0YSwgYW5kIGtleVxuU1RSSU5HIGFsZ29yaXRobSA9IFwiYWVzLTI1Ni1jYmNcIlxuREFUQVJFRiBlbmNyeXB0ZWREYXRhID0gLi4uIC8vIEFzc3VtZSB0aGlzIGlzIHlvdXIgZW5jcnlwdGVkIGRhdGFcblNUUklORyBrZXkgPSBcIm15X3Zlcnlfc2VjcmV0X2VuY3J5cHRpb25fa2V5XCJcblxuLy8gRGVjcnlwdCB0aGUgZGF0YVxuU1RSSU5HIGRlY3J5cHRlZFN0cmluZyA9IENyeXB0b2dyYXBoeS5EYXRhUmVmRGVjcnlwdCAoYWxnb3JpdGhtLCBlbmNyeXB0ZWREYXRhLCBrZXkpXG5cbi8vIFRoZSBkZWNyeXB0ZWRTdHJpbmcgb2JqZWN0IG5vdyBjb250YWlucyB0aGUgb3JpZ2luYWwsIGRlY3J5cHRlZCBkYXRhIn0sIHsibmFtZSI6ICJDcnlwdG9ncmFwaHkuRW5jcnlwdCAoU1RSSU5HLCBEQVRBUkVGLCBTVFJJTkcpIiwgInJldHVybl90eXBlIjogIkRBVEFSRUYiLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyB0aGUgZW5jcnlwdGVkIGRhdGEgdXNpbmcgdGhlIHNwZWNpZmllZCBhbGdvcml0aG0gYW5kIGtleS4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiMS4gYFNUUklOR2A6IFRoZSBlbmNyeXB0aW9uIGFsZ29yaXRobS4gVGhpcyBjYW4gYmUgYW55IHRoYXQgT3BlblNTTCBzdXBwb3J0cywgc3VjaCBhcyBcImFlcy0xMjgtY2JjXCIgb3IgXCJhZXMtMjU2LWVjYlwiLlxuMi4gYERBVEFSRUZgOiBUaGUgZGF0YSB0byBlbmNyeXB0LlxuMy4gYFNUUklOR2A6IFRoZSBrZXkgdXNlZCBmb3IgZW5jcnlwdGlvbi4iLCAiZGVzY3JpcHRpb24iOiAiRW5jcnlwdHMgZGF0YSB1c2luZyB0aGUgc3BlY2lmaWVkIGFsZ29yaXRobSBhbmQgZW5jcnlwdGlvbiBrZXkuIFRoZSBhbGdvcml0aG0gY2FuIGJlIGFueSB0aGF0IE9wZW5TU0wgc3VwcG9ydHMsIHN1Y2ggYXMgXCJhZXMtMTI4LWNiY1wiIG9yIFwiYWVzLTI1Ni1lY2JcIi4iLCAiZXhhbXBsZV9jb2RlIjogIi8vIERlZmluZSB0aGUgYWxnb3JpdGhtIHRvIHVzZSBmb3IgZW5jcnlwdGlvblxuU1RSSU5HIGFsZ29yaXRobSA9IFwiYWVzLTI1Ni1jYmNcIlxuXG4vLyBEZWZpbmUgdGhlIGRhdGEgdG8gZW5jcnlwdFxuREFUQVJFRiBkYXRhVG9FbmNyeXB0ID0gVG9EYXRhUmVmKFwiVGhpcyBpcyBzb21lIHNlbnNpdGl2ZSBkYXRhLlwiKVxuXG4vLyBEZWZpbmUgdGhlIHBhc3N3b3JkIHRvIHVzZSBmb3IgZW5jcnlwdGlvblxuU1RSSU5HIGtleSA9IFwibXlfdmVyeV9zZWNyZXRfZW5jcnlwdGlvbl9rZXlcIlxuXG4vLyBFbmNyeXB0IHRoZSBkYXRhXG5EQVRBUkVGIGVuY3J5cHRlZERhdGEgPSBDcnlwdG9ncmFwaHkuRW5jcnlwdChhbGdvcml0aG0sIGRhdGFUb0VuY3J5cHQsIGtleSlcblxuLy8gZW5jcnlwdGVkRGF0YSBub3cgY29udGFpbnMgdGhlIGVuY3J5cHRlZCwgc2Vuc2l0aXZlIGRhdGEiLCAicmV2aWV3ZWQiOiAiVFJVRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIi8vIERlZmluZSB0aGUgYWxnb3JpdGhtIHRvIHVzZSBmb3IgZW5jcnlwdGlvblxuU1RSSU5HIGFsZ29yaXRobSA9IFwiYWVzLTI1Ni1jYmNcIlxuXG4vLyBEZWZpbmUgdGhlIGRhdGEgdG8gZW5jcnlwdFxuREFUQVJFRiBkYXRhVG9FbmNyeXB0ID0gVG9EYXRhUmVmKFwiVGhpcyBpcyBzb21lIHNlbnNpdGl2ZSBkYXRhLlwiKVxuXG4vLyBEZWZpbmUgdGhlIHBhc3N3b3JkIHRvIHVzZSBmb3IgZW5jcnlwdGlvblxuU1RSSU5HIGtleSA9IFwibXlfdmVyeV9zZWNyZXRfZW5jcnlwdGlvbl9rZXlcIlxuXG4vLyBFbmNyeXB0IHRoZSBkYXRhXG5EQVRBUkVGIGVuY3J5cHRlZERhdGEgPSBDcnlwdG9ncmFwaHkuRW5jcnlwdChhbGdvcml0aG0sIGRhdGFUb0VuY3J5cHQsIGtleSlcblxuLy8gZW5jcnlwdGVkRGF0YSBub3cgY29udGFpbnMgdGhlIGVuY3J5cHRlZCwgc2Vuc2l0aXZlIGRhdGEifSwgeyJuYW1lIjogIkNyeXB0b2dyYXBoeS5FbmNyeXB0IChTVFJJTkcsIFNUUklORywgU1RSSU5HKSIsICJyZXR1cm5fdHlwZSI6ICJEQVRBUkVGIiwgInJldHVybl9kZXNjIjogIlJldHVybnMgdGhlIGVuY3J5cHRlZCBkYXRhIHVzaW5nIHRoZSBzcGVjaWZpZWQgYWxnb3JpdGhtIGFuZCBrZXkuIiwgInBhcmFtZXRlcl9kZXNjIjogIjEuIGBTVFJJTkdgOiBUaGUgZW5jcnlwdGlvbiBhbGdvcml0aG0uIFRoaXMgY2FuIGJlIGFueSB0aGF0IE9wZW5TU0wgc3VwcG9ydHMsIHN1Y2ggYXMgXCJhZXMtMTI4LWNiY1wiIG9yIFwiYWVzLTI1Ni1lY2JcIi5cbjIuIGBTVFJJTkdgOiBUaGUgc3RyaW5nIHRvIGVuY3J5cHQuXG4zLiBgU1RSSU5HYDogVGhlIGtleSB1c2VkIGZvciBlbmNyeXB0aW9uLiIsICJkZXNjcmlwdGlvbiI6ICJFbmNyeXB0cyBhIHN0cmluZyB1c2luZyB0aGUgc3BlY2lmaWVkIGFsZ29yaXRobSBhbmQgZW5jcnlwdGlvbiBrZXkuIFRoZSBhbGdvcml0aG0gY2FuIGJlIGFueSB0aGF0IE9wZW5TU0wgc3VwcG9ydHMsIHN1Y2ggYXMgXCJhZXMtMTI4LWNiY1wiIG9yIFwiYWVzLTI1Ni1lY2JcIi4iLCAiZXhhbXBsZV9jb2RlIjogIi8vIERlZmluZSB0aGUgYWxnb3JpdGhtIHRvIHVzZSBmb3IgZW5jcnlwdGlvblxuU1RSSU5HIGFsZ29yaXRobSA9IFwiYWVzLTI1Ni1jYmNcIlxuXG4vLyBEZWZpbmUgdGhlIHN0cmluZyB0byBlbmNyeXB0XG5TVFJJTkcgc3RyaW5nVG9FbmNyeXB0ID0gXCJUaGlzIGlzIHNvbWUgc2Vuc2l0aXZlIGRhdGEuXCJcblxuLy8gRGVmaW5lIHRoZSBwYXNzd29yZCB0byB1c2UgZm9yIGVuY3J5cHRpb25cblNUUklORyBrZXkgPSBcIm15X3Zlcnlfc2VjcmV0X2VuY3J5cHRpb25fa2V5XCJcblxuLy8gRW5jcnlwdCB0aGUgZGF0YVxuREFUQVJFRiBlbmNyeXB0ZWREYXRhID0gQ3J5cHRvZ3JhcGh5LkVuY3J5cHQoYWxnb3JpdGhtLCBzdHJpbmdUb0VuY3J5cHQsIGtleSlcblxuLy8gZW5jcnlwdGVkRGF0YSBub3cgY29udGFpbnMgdGhlIGVuY3J5cHRlZCwgc2Vuc2l0aXZlIGRhdGEiLCAicmV2aWV3ZWQiOiAiVFJVRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIi8vIERlZmluZSB0aGUgYWxnb3JpdGhtIHRvIHVzZSBmb3IgZW5jcnlwdGlvblxuU1RSSU5HIGFsZ29yaXRobSA9IFwiYWVzLTI1Ni1jYmNcIlxuXG4vLyBEZWZpbmUgdGhlIHN0cmluZyB0byBlbmNyeXB0XG5TVFJJTkcgc3RyaW5nVG9FbmNyeXB0ID0gXCJUaGlzIGlzIHNvbWUgc2Vuc2l0aXZlIGRhdGEuXCJcblxuLy8gRGVmaW5lIHRoZSBwYXNzd29yZCB0byB1c2UgZm9yIGVuY3J5cHRpb25cblNUUklORyBrZXkgPSBcIm15X3Zlcnlfc2VjcmV0X2VuY3J5cHRpb25fa2V5XCJcblxuLy8gRW5jcnlwdCB0aGUgZGF0YVxuREFUQVJFRiBlbmNyeXB0ZWREYXRhID0gQ3J5cHRvZ3JhcGh5LkVuY3J5cHQoYWxnb3JpdGhtLCBzdHJpbmdUb0VuY3J5cHQsIGtleSlcblxuLy8gZW5jcnlwdGVkRGF0YSBub3cgY29udGFpbnMgdGhlIGVuY3J5cHRlZCwgc2Vuc2l0aXZlIGRhdGEifSwgeyJuYW1lIjogIkNyeXB0b2dyYXBoeS5IYXNoIChTVFJJTkcsIERBVEFSRUYpIiwgInJldHVybl90eXBlIjogIkRBVEFSRUYiLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyBhIHJlZmVyZW5jZSB0byB0aGUgaGFzaGVkIGRhdGEgZ2VuZXJhdGVkIHVzaW5nIHRoZSBzcGVjaWZpZWQgYWxnb3JpdGhtLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICIxLiBgU1RSSU5HYDogU3BlY2lmaWVzIHRoZSBoYXNoIGFsZ29yaXRobS4gVGhlIGFsZ29yaXRobSBjYW4gYmUgYW55IHRoYXQgT3BlblNTTCBzdXBwb3J0cyBzdWNoIGFzIFwibWQ1XCIgb3IgXCJzaGE1MTJcIi5cbjIuIGBEQVRBUkVGYDogVGhlIGRhdGEgdG8gYmUgaGFzaGVkLiIsICJkZXNjcmlwdGlvbiI6ICJDYWxjdWxhdGVzIHRoZSBoYXNoIG9mIGRhdGEgdXNpbmcgYSBzcGVjaWZpZWQgYWxnb3JpdGhtLiBUaGUgYWxnb3JpdGhtIGNhbiBiZSBhbnkgdGhhdCBPcGVuU1NMIHN1cHBvcnRzIHN1Y2ggYXMgXCJtZDVcIiBvciBcInNoYTUxMlwiLiIsICJleGFtcGxlX2NvZGUiOiAiLy8gR2V0IGRvd25sb2FkZWQgY29udGVudCAoSFRUUCByZXNwb25zZSBib2R5KVxuYm9keURhdGEgPSBNV0cuUmVzcG9uc2UuQm9keURhdGFcblxuLy8gU2VsZWN0IGhhc2hpbmcgYWxnb3JpdGhtXG5TVFJJTkcgaGFzaEFsZ29yaXRobSA9IFwiU0hBLTI1NlwiXG5cbi8vIEdlbmVyYXRlIHRoZSBoYXNoXG5EQVRBUkVGIGJvZHlIYXNoID0gQ3J5cHRvZ3JhcGh5Lkhhc2goaGFzaEFsZ29yaXRobSwgYm9keURhdGEpIiwgInJldmlld2VkIjogIlRSVUUiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICIvLyBHZXQgZG93bmxvYWRlZCBjb250ZW50IChIVFRQIHJlc3BvbnNlIGJvZHkpXG5ib2R5RGF0YSA9IE1XRy5SZXNwb25zZS5Cb2R5RGF0YVxuXG4vLyBTZWxlY3QgaGFzaGluZyBhbGdvcml0aG1cblNUUklORyBoYXNoQWxnb3JpdGhtID0gXCJTSEEtMjU2XCJcblxuLy8gR2VuZXJhdGUgdGhlIGhhc2hcbkRBVEFSRUYgYm9keUhhc2ggPSBDcnlwdG9ncmFwaHkuSGFzaChoYXNoQWxnb3JpdGhtLCBib2R5RGF0YSkifSwgeyJuYW1lIjogIkNyeXB0b2dyYXBoeS5IYXNoIChTVFJJTkcsIFNUUklORykiLCAicmV0dXJuX3R5cGUiOiAiREFUQVJFRiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIGEgcmVmZXJlbmNlIHRvIHRoZSBoYXNoZWQgZGF0YSBnZW5lcmF0ZWQgdXNpbmcgdGhlIHNwZWNpZmllZCBhbGdvcml0aG0uIiwgInBhcmFtZXRlcl9kZXNjIjogIjEuIGBTVFJJTkdgOiBTcGVjaWZpZXMgdGhlIGhhc2ggYWxnb3JpdGhtLiBUaGUgYWxnb3JpdGhtIGNhbiBiZSBhbnkgdGhhdCBPcGVuU1NMIHN1cHBvcnRzIHN1Y2ggYXMgXCJtZDVcIiBvciBcInNoYTUxMlwiLlxuMi4gYFNUUklOR2A6IFRoZSBzdHJpbmcgdG8gYmUgaGFzaGVkLiIsICJkZXNjcmlwdGlvbiI6ICJDYWxjdWxhdGVzIHRoZSBoYXNoIG9mIGEgc3RyaW5nIHVzaW5nIGEgc3BlY2lmaWVkIGFsZ29yaXRobS4gVGhlIGFsZ29yaXRobSBjYW4gYmUgYW55IHRoYXQgT3BlblNTTCBzdXBwb3J0cyBzdWNoIGFzIFwibWQ1XCIgb3IgXCJzaGE1MTJcIi4iLCAiZXhhbXBsZV9jb2RlIjogIi8vIFN0cmluZyB0byBiZSBoYXNoZWRcblNUUklORyBzdHJpbmdUb0hhc2ggPSBcIkhlbGxvLCBXb3JsZCFcIlxuXG4vLyBTZWxlY3QgaGFzaGluZyBhbGdvcml0aG1cblNUUklORyBoYXNoaW5nQWxnb3JpdGhtID0gXCJzaGEtMjU2XCJcblxuLy8gQ2FsY3VsYXRlIHRoZSBoYXNoXG5EQVRBUkVGIGhhc2hlZERhdGEgPSBDcnlwdG9ncmFwaHkuSGFzaChzdHJpbmdUb0hhc2gsIGhhc2hpbmdBbGdvcml0aG0pIiwgInJldmlld2VkIjogIlRSVUUiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICIvLyBTdHJpbmcgdG8gYmUgaGFzaGVkXG5TVFJJTkcgc3RyaW5nVG9IYXNoID0gXCJIZWxsbywgV29ybGQhXCJcblxuLy8gU2VsZWN0IGhhc2hpbmcgYWxnb3JpdGhtXG5TVFJJTkcgaGFzaGluZ0FsZ29yaXRobSA9IFwic2hhLTI1NlwiXG5cbi8vIENhbGN1bGF0ZSB0aGUgaGFzaFxuREFUQVJFRiBoYXNoZWREYXRhID0gQ3J5cHRvZ3JhcGh5Lkhhc2goc3RyaW5nVG9IYXNoLCBoYXNoaW5nQWxnb3JpdGhtKSJ9LCB7Im5hbWUiOiAiQ3J5cHRvZ3JhcGh5LkhNQUMgKFNUUklORywgU1RSSU5HLCBEQVRBUkVGKSIsICJyZXR1cm5fdHlwZSI6ICJEQVRBUkVGIiwgInJldHVybl9kZXNjIjogIlJldHVybnMgYSByZWZlcmVuY2UgdG8gdGhlIEhNQUMgdmFsdWUgZ2VuZXJhdGVkIGZyb20gdGhlIGdpdmVuIGRhdGEsIGFsZ29yaXRobSwgYW5kIGtleS4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiMS4gYFNUUklOR2A6IFRoZSBoYXNoaW5nIGFsZ29yaXRobSB0byBiZSB1c2VkLiBUaGUgYWxnb3JpdGhtIGNhbiBiZSBhbnkgdGhhdCBPcGVuU1NMIHN1cHBvcnRzIHN1Y2ggYXMgXCJtZDVcIiBvciBcInNoYTUxMlwiLlxuMi4gYFNUUklOR2A6IFRoZSBlbmNyeXB0aW9uIGtleSB0byBiZSB1c2VkLlxuMy4gYERBVEFSRUZgOiBUaGUgZGF0YSB0byBiZSBoYXNoZWQuIiwgImRlc2NyaXB0aW9uIjogIkdlbmVyYXRlcyBhIGhhc2gtYmFzZWQgbWVzc2FnZSBhdXRoZW50aWNhdGlvbiBjb2RlIChITUFDKSBvZiBkYXRhIHVzaW5nIGEgZ2l2ZW4gYWxnb3JpdGhtIGFuZCBrZXkuIFRoZSBhbGdvcml0aG0gY2FuIGJlIGFueSB0aGF0IE9wZW5TU0wgc3VwcG9ydHMgc3VjaCBhcyBcIm1kNVwiIG9yIFwic2hhNTEyXCIuIiwgImV4YW1wbGVfY29kZSI6ICIvLyBDYXB0dXJlIHRoZSBkYXRhIHRvIGhhc2ggKGUuZy4sIEhUVFAgcmVzcG9uc2UgYm9keSlcbkRBVEFSRUYgZGF0YSA9IE1XRy5SZXNwb25zZS5Cb2R5RGF0YVxuXG4vLyBTZWxlY3QgZW5jcnlwdGlvbiBhbGdvcml0aCBhbmQgc2V0IGVuY3J5cHRpb24ga2V5XG5TVFJJTkcgYWxnb3JpdGhtID0gXCJzaGEyNTZcIlxuU1RSSU5HIGtleSA9IFwibXlfdmVyeV9zZWNyZXRfZW5jcnlwdGlvbl9rZXlcIlxuXG4vLyBDYWxjdWxhdGUgSE1BQyBkYXRhXG5EQVRBUkVGIGhtYWNWYWx1ZSA9IENyeXB0b2dyYXBoeS5ITUFDKGFsZ29yaXRobSwga2V5LCBkYXRhKSIsICJyZXZpZXdlZCI6ICJUUlVFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiLy8gQ2FwdHVyZSB0aGUgZGF0YSB0byBoYXNoIChlLmcuLCBIVFRQIHJlc3BvbnNlIGJvZHkpXG5EQVRBUkVGIGRhdGEgPSBNV0cuUmVzcG9uc2UuQm9keURhdGFcblxuLy8gU2VsZWN0IGVuY3J5cHRpb24gYWxnb3JpdGggYW5kIHNldCBlbmNyeXB0aW9uIGtleVxuU1RSSU5HIGFsZ29yaXRobSA9IFwic2hhMjU2XCJcblNUUklORyBrZXkgPSBcIm15X3Zlcnlfc2VjcmV0X2VuY3J5cHRpb25fa2V5XCJcblxuLy8gQ2FsY3VsYXRlIEhNQUMgZGF0YVxuREFUQVJFRiBobWFjVmFsdWUgPSBDcnlwdG9ncmFwaHkuSE1BQyhhbGdvcml0aG0sIGtleSwgZGF0YSkifSwgeyJuYW1lIjogIkNyeXB0b2dyYXBoeS5ITUFDIChTVFJJTkcsIFNUUklORywgU1RSSU5HKSIsICJyZXR1cm5fdHlwZSI6ICJEQVRBUkVGIiwgInJldHVybl9kZXNjIjogIlJldHVybnMgYSByZWZlcmVuY2UgdG8gZGF0YSBjb250YWluaW5nIHRoZSBITUFDIG9mIHRoZSBpbnB1dCBzdHJpbmcgdXNpbmcgdGhlIHNwZWNpZmllZCBhbGdvcml0aG0gYW5kIGtleS4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiMS4gYFNUUklOR2A6IFRoZSBoYXNoaW5nIGFsZ29yaXRobSB0byBiZSB1c2VkLiBUaGUgYWxnb3JpdGhtIGNhbiBiZSBhbnkgdGhhdCBPcGVuU1NMIHN1cHBvcnRzIHN1Y2ggYXMgXCJtZDVcIiBvciBcInNoYTUxMlwiLlxuMi4gYFNUUklOR2A6IFRoZSBlbmNyeXB0aW9uIGtleSB0byBiZSB1c2VkLlxuMy4gYFNUUklOR2A6IFRoZSBzdHJpbmcgdG8gYmUgaGFzaGVkLiIsICJkZXNjcmlwdGlvbiI6ICJHZW5lcmF0ZXMgYSBoYXNoLWJhc2VkIG1lc3NhZ2UgYXV0aGVudGljYXRpb24gY29kZSAoSE1BQykgb2YgYSBzdHJpbmcgdXNpbmcgYSBnaXZlbiBhbGdvcml0aG0gYW5kIGtleS4gVGhlIGFsZ29yaXRobSBjYW4gYmUgYW55IHRoYXQgT3BlblNTTCBzdXBwb3J0cyBzdWNoIGFzIFwibWQ1XCIgb3IgXCJzaGE1MTJcIi4iLCAiZXhhbXBsZV9jb2RlIjogIi8vIFNldCBtZXNzYWdlIHN0cmluZyB0byBiZSBoYXNoZWRcblNUUklORyBtZXNzYWdlID0gXCJUaGUgcXVpY2sgYnJvd24gZm94IGp1bXBzIG92ZXIgdGhlIGxhenkgZG9nXCJcblxuLy8gU2VsZWN0IGVuY3J5cHRpb24gYWxnb3JpdGggYW5kIHNldCBlbmNyeXB0aW9uIGtleVxuU1RSSU5HIGFsZ29yaXRobSA9IFwic2hhLTI1NlwiXG5TVFJJTkcga2V5ID0gXCJteV92ZXJ5X3NlY3JldF9lbmNyeXB0aW9uX2tleVwiXG5cbi8vIENhbGN1bGF0ZSBITUFDIGRhdGFcbkRBVEFSRUYgaG1hY1ZhbHVlID0gQ3J5cHRvZ3JhcGh5LkhNQUMoYWxnb3JpdGhtLCBrZXksIGRhdGEpIiwgInJldmlld2VkIjogIlRSVUUiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICIvLyBTZXQgbWVzc2FnZSBzdHJpbmcgdG8gYmUgaGFzaGVkXG5TVFJJTkcgbWVzc2FnZSA9IFwiVGhlIHF1aWNrIGJyb3duIGZveCBqdW1wcyBvdmVyIHRoZSBsYXp5IGRvZ1wiXG5cbi8vIFNlbGVjdCBlbmNyeXB0aW9uIGFsZ29yaXRoIGFuZCBzZXQgZW5jcnlwdGlvbiBrZXlcblNUUklORyBhbGdvcml0aG0gPSBcInNoYS0yNTZcIlxuU1RSSU5HIGtleSA9IFwibXlfdmVyeV9zZWNyZXRfZW5jcnlwdGlvbl9rZXlcIlxuXG4vLyBDYWxjdWxhdGUgSE1BQyBkYXRhXG5EQVRBUkVGIGhtYWNWYWx1ZSA9IENyeXB0b2dyYXBoeS5ITUFDKGFsZ29yaXRobSwga2V5LCBkYXRhKSJ9LCB7Im5hbWUiOiAiRGF0YUxvYWRlckNyeXB0by5EZWNyeXB0IChTVFJJTkcpIiwgInJldHVybl90eXBlIjogIlNUUklORyIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIGRlY3J5cHRlZCBzZW5zaXRpdmUgZGF0YSBmcm9tIGEgZmVhdHVyZSBjb25maWd1cmF0aW9uLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICIxLiBgU1RSSU5HYDogVGhlIGVuY3J5cHRlZCBzZW5zaXRpdmUgZGF0YSB0byBiZSBkZWNyeXB0ZWQuIiwgImRlc2NyaXB0aW9uIjogIkRlY3J5cHRzIHNlbnNpdGl2ZSBkYXRhIHN0b3JlZCBpbiBhIGZlYXR1cmUgY29uZmlnLiIsICJleGFtcGxlX2NvZGUiOiAiU1RSSU5HIGVuY3J5cHRlZERhdGEgPSBcIlUyRnNkR1ZrWDErNUsxdjhKOCs1SzF2OEo4KzVLMXY4SjgrNUsxdjhKOD1cIlxuU1RSSU5HIGRlY3J5cHRlZERhdGEgPSBEYXRhTG9hZGVyQ3J5cHRvLkRlY3J5cHQoZW5jcnlwdGVkRGF0YSlcbi8vIERlY3J5cHRlZCBEYXRhOiBcIiArIGRlY3J5cHRlZERhdGEiLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIlRSVUUiLCAiY29kZV9leGFtcGxlIjogIlNUUklORyBlbmNyeXB0ZWREYXRhID0gXCJVMkZzZEdWa1gxKzVLMXY4SjgrNUsxdjhKOCs1SzF2OEo4KzVLMXY4Sjg9XCJcblNUUklORyBkZWNyeXB0ZWREYXRhID0gRGF0YUxvYWRlckNyeXB0by5EZWNyeXB0KGVuY3J5cHRlZERhdGEpXG4vLyBEZWNyeXB0ZWQgRGF0YTogXCIgKyBkZWNyeXB0ZWREYXRhIn0sIHsibmFtZSI6ICJEYXRlVGltZS5EYXRlVG9TVFJJTkcgKFNUUklORykiLCAicmV0dXJuX3R5cGUiOiAiU1RSSU5HIiwgInJldHVybl9kZXNjIjogIlJldHVybnMgY3VycmVudCBkYXRlIGluIGEgc3RyaW5nIGZvcm1hdHRlZCBhY2NvcmRpbmcgdG8gdGhlIHByb3ZpZGVkIHN0cmluZyBhcmd1bWVudC4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiMS4gYFNUUklOR2A6IFNwZWNpZmllcyB0aGUgZGVzaXJlZCBkYXRlIGZvcm1hdCBvZiB0aGUgb3V0cHV0IHN0cmluZy4gIFNwZWNpZnkgeWVhciBhcyBcIiVZWVwiIG9yIFwiJVlZWVlcIiwgbW9udGggYXMgXCIlTU1cIiBvciBcIiVNXCIsIGFuZCBkYXkgYXMgXCIlRERcIiBvciBcIiVEXCIuIiwgImRlc2NyaXB0aW9uIjogIkNyZWF0ZXMgYSBzdHJpbmcgY29udGFpbmluZyB0aGUgY3VycmVudCBkYXRlIGZvcm1hdHRlZCBhY2NvcmRpbmcgdG8gdGhlIHByb3ZpZGVkIHN0cmluZyBhcmd1bWVudC4iLCAiZXhhbXBsZV9jb2RlIjogIi8vIFNlbGVjdCBkZXNpcmVkIGRhdGUgZm9ybWF0XG5TVFJJTkcgZm9ybWF0ID0gXCIlWVlZWS0lTU0tJUREXCJcblxuLy8gR2V0IGN1cnJlbnQgZGF0ZSBpbiBmb3JtYXR0ZWQgc3RyaW5nXG5TVFJJTkcgZm9ybWF0dGVkRGF0ZSA9IERhdGVUaW1lLkRhdGVUb1N0cmluZyAoZm9ybWF0KSIsICJyZXZpZXdlZCI6ICJUUlVFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiLy8gU2VsZWN0IGRlc2lyZWQgZGF0ZSBmb3JtYXRcblNUUklORyBmb3JtYXQgPSBcIiVZWVlZLSVNTS0lRERcIlxuXG4vLyBHZXQgY3VycmVudCBkYXRlIGluIGZvcm1hdHRlZCBzdHJpbmdcblNUUklORyBmb3JtYXR0ZWREYXRlID0gRGF0ZVRpbWUuRGF0ZVRvU3RyaW5nIChmb3JtYXQpIn0sIHsibmFtZSI6ICJEYXRlVGltZS5EYXlPZk1vbnRoICgpIiwgInJldHVybl90eXBlIjogIk5VTUJFUiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIHRoZSBudW1lcmljYWwgZGF5IG9mIHRoZSBjdXJyZW50IG1vbnRoLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICIqTi9BKiIsICJkZXNjcmlwdGlvbiI6ICJHZXRzIHRoZSBkYXkgb2YgY3VycmVudCBtb250aC4iLCAiZXhhbXBsZV9jb2RlIjogIi8vIEdldCBjdXJyZW50IGRheSBvZiB0aGUgbW9udGhcbk5VTUJFUiBjdXJyZW50RGF5ID0gRGF0ZVRpbWUuRGF5T2ZNb250aFxuXG4vLyBDaGVjayBpZiB0aGlzIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSBtb250aFxuQk9PTEVBTiBmaXJzdFdlZWtcbklGIGN1cnJlbnREYXkgPCA4IFRIRU4ge1xuICAgIGZpcnN0V2VlayA9IFRSVUVcbn0gRUxTRSB7XG4gICAgZmlyc3RXZWVrID0gRkFMU0Vcbn0iLCAicmV2aWV3ZWQiOiAiVFJVRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIi8vIEdldCBjdXJyZW50IGRheSBvZiB0aGUgbW9udGhcbk5VTUJFUiBjdXJyZW50RGF5ID0gRGF0ZVRpbWUuRGF5T2ZNb250aFxuXG4vLyBDaGVjayBpZiB0aGlzIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSBtb250aFxuQk9PTEVBTiBmaXJzdFdlZWtcbklGIGN1cnJlbnREYXkgPCA4IFRIRU4ge1xuICAgIGZpcnN0V2VlayA9IFRSVUVcbn0gRUxTRSB7XG4gICAgZmlyc3RXZWVrID0gRkFMU0Vcbn0ifSwgeyJuYW1lIjogIkRhdGVUaW1lLkRheU9mV2VlayAoKSIsICJyZXR1cm5fdHlwZSI6ICJOVU1CRVIiLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyBhIG51bWVyaWMgdmFsdWUgKDEtNykgcmVwcmVzZW50aW5nIHRoZSBjdXJyZW50IGRheSBvZiB0aGUgd2VlayB3aGVyZSAxIHJlcHJlc2VudHMgTW9uZGF5IGFuZCA3IGlzIFN1bmRheSIsICJwYXJhbWV0ZXJfZGVzYyI6ICIqTi9BKiIsICJkZXNjcmlwdGlvbiI6ICJHZXRzIHRoZSBjdXJyZW50IGRheSBvZiB0aGUgd2VlayBhcyBhIG51bWJlci4iLCAiZXhhbXBsZV9jb2RlIjogIi8vIEdldCB0aGUgZGF5IG9mIHRoZSB3ZWVrIGFzIGEgbnVtYmVyXG5OVU1CRVIgZGF5T2ZXZWVrID0gRGF0ZVRpbWUuRGF5T2ZXZWVrXG5cbi8vIENoZWNrIHdoZXRoZXIgaXQncyBhIHdlZWtkYXlcbkJPT0xFQU4gaXNXZWVrRGF5XG5JRiBkYXlPZldlZWsgPCA2IFRIRU4ge1xuICAgIGlzV2Vla0RheSA9IFRSVUVcbn0gRUxTRSB7XG4gICAgaXNXZWVrRGF5ID0gRkFMU0Vcbn0iLCAicmV2aWV3ZWQiOiAiVFJVRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIi8vIEdldCB0aGUgZGF5IG9mIHRoZSB3ZWVrIGFzIGEgbnVtYmVyXG5OVU1CRVIgZGF5T2ZXZWVrID0gRGF0ZVRpbWUuRGF5T2ZXZWVrXG5cbi8vIENoZWNrIHdoZXRoZXIgaXQncyBhIHdlZWtkYXlcbkJPT0xFQU4gaXNXZWVrRGF5XG5JRiBkYXlPZldlZWsgPCA2IFRIRU4ge1xuICAgIGlzV2Vla0RheSA9IFRSVUVcbn0gRUxTRSB7XG4gICAgaXNXZWVrRGF5ID0gRkFMU0Vcbn0ifSwgeyJuYW1lIjogIkRhdGVUaW1lLkRheU9mWWVhciAoKSIsICJyZXR1cm5fdHlwZSI6ICJOVU1CRVIiLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyB0aGUgY3VycmVudCBkYXkgb2YgdGhlIHllYXIgYXMgYSBudW1iZXIgKDEtMzY1LCBvciAxLTM2NiBpbiBsZWFwIHllYXIpLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICIqTi9BKiIsICJkZXNjcmlwdGlvbiI6ICJHZXRzIHRoZSBjdXJyZW50IGRheSBvZiB0aGUgeWVhci4iLCAiZXhhbXBsZV9jb2RlIjogIi8vIEdldCB0aGUgY3VycmVudCBkYXkgb2YgdGhlIHllYXJcbk5VTUJFUiBjdXJyZW50RGF5ID0gRGF0ZVRpbWUuRGF5T2ZZZWFyXG5cbi8vIERldGVybWluZSB0aGUgY3VycmVudCB3ZWVrIG9mIHRoZSB5ZWFyXG5OVU1CRVIgY3VycmVudFdlZWsgPSBNYXRoLkRpdiAoY3VycmVudERheSwgNykiLCAicmV2aWV3ZWQiOiAiVFJVRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIi8vIEdldCB0aGUgY3VycmVudCBkYXkgb2YgdGhlIHllYXJcbk5VTUJFUiBjdXJyZW50RGF5ID0gRGF0ZVRpbWUuRGF5T2ZZZWFyXG5cbi8vIERldGVybWluZSB0aGUgY3VycmVudCB3ZWVrIG9mIHRoZSB5ZWFyXG5OVU1CRVIgY3VycmVudFdlZWsgPSBNYXRoLkRpdiAoY3VycmVudERheSwgNykifSwgeyJuYW1lIjogIkRhdGVUaW1lLkdldExvY2FsVGltZXpvbmVPZmZzZXQgKCkiLCAicmV0dXJuX3R5cGUiOiAiTlVNQkVSIiwgInJldHVybl9kZXNjIjogIlJldHVybnMgdGhlIG9mZnNldCAoaW4gc2Vjb25kcykgb2YgdGhlIGxvY2FsIHRpbWUgem9uZSBvZiB0aGUgbWFjaGluZSBydW5uaW5nIHRoaXMgY29kZS4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiKk4vQSoiLCAiZGVzY3JpcHRpb24iOiAiR2V0cyB0aGUgb2Zmc2V0IChpbiBzZWNvbmRzKSBvZiB0aGUgbG9jYWwgdGltZSB6b25lIG9mIHRoZSBtYWNoaW5lIHJ1bm5pbmcgdGhpcyBjb2RlLiIsICJleGFtcGxlX2NvZGUiOiAiLy8gR2V0IHRoZSBsb2NhbCB0aW1lem9uZSBvZmZzZXQgaW4gc2Vjb25kc1xuTlVNQkVSIGxvY2FsT2Zmc2V0ID0gRGF0ZVRpbWUuR2V0TG9jYWxUaW1lem9uZU9mZnNldCgpXG5cbi8vIENoZWNrIGlmIEdNVCB0aW1lXG5CT09MRUFOIGlzR01UXG5JRiBsb2NhbE9mZnNldCA9PSAwIFRIRU4ge1xuICAgIGlzR01UID0gVFJVRVxufSBFTFNFIHtcbiAgICBpc0dNVCA9IEZBTFNFXG59IiwgInJldmlld2VkIjogIlRSVUUiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICIvLyBHZXQgdGhlIGxvY2FsIHRpbWV6b25lIG9mZnNldCBpbiBzZWNvbmRzXG5OVU1CRVIgbG9jYWxPZmZzZXQgPSBEYXRlVGltZS5HZXRMb2NhbFRpbWV6b25lT2Zmc2V0KClcblxuLy8gQ2hlY2sgaWYgR01UIHRpbWVcbkJPT0xFQU4gaXNHTVRcbklGIGxvY2FsT2Zmc2V0ID09IDAgVEhFTiB7XG4gICAgaXNHTVQgPSBUUlVFXG59IEVMU0Uge1xuICAgIGlzR01UID0gRkFMU0Vcbn0ifSwgeyJuYW1lIjogIkRhdGVUaW1lLkhvdXIgKCkiLCAicmV0dXJuX3R5cGUiOiAiTlVNQkVSIiwgInJldHVybl9kZXNjIjogIlJldHVybnMgdGhlIGN1cnJlbnQgaG91ciBmcm9tIHRoZSBjbG9jayBhcyBhIG51bWVyaWNhbCB2YWx1ZSAoMC0yMykgaW4gMjQtaG91ciBVVEMgdGltZS4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiKk4vQSoiLCAiZGVzY3JpcHRpb24iOiAiR2V0cyB0aGUgY3VycmVudCBob3VyIGZyb20gdGhlIGNsb2NrIGluIDI0LWhvdXIgVVRDIHRpbWUuIiwgImV4YW1wbGVfY29kZSI6ICIvLyBHZXQgY3VycmVudCBob3VyXG5OVU1CRVIgY3VycmVudEhvdXIgPSBEYXRlVGltZS5Ib3VyXG5cbi8vIENoZWNrIGlmIGx1bmNoIHRpbWUgKDEyOjAwLTE6MDBwbSkgaW4gR01UIHRpbWUgem9uZVxuQk9PTEVBTiBpc0x1bmNoR01UXG5JRiBjdXJyZW50SG91ciA9PSAxMiBUSEVOIHtcbiAgICBpc0x1bmNoR01UID0gVFJVRVxufSBFTFNFIHtcbiAgICBpc0x1bmNoR01UID0gRkFMU0Vcbn0iLCAicmV2aWV3ZWQiOiAiVFJVRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIi8vIEdldCBjdXJyZW50IGhvdXJcbk5VTUJFUiBjdXJyZW50SG91ciA9IERhdGVUaW1lLkhvdXJcblxuLy8gQ2hlY2sgaWYgbHVuY2ggdGltZSAoMTI6MDAtMTowMHBtKSBpbiBHTVQgdGltZSB6b25lXG5CT09MRUFOIGlzTHVuY2hHTVRcbklGIGN1cnJlbnRIb3VyID09IDEyIFRIRU4ge1xuICAgIGlzTHVuY2hHTVQgPSBUUlVFXG59IEVMU0Uge1xuICAgIGlzTHVuY2hHTVQgPSBGQUxTRVxufSJ9LCB7Im5hbWUiOiAiRGF0ZVRpbWUuSXNJblJhbmdlSVNPIChTVFJJTkcsIFNUUklORykiLCAicmV0dXJuX3R5cGUiOiAiQk9PTEVBTiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zYFRSVUVgaWYgdGhlIGN1cnJlbnQgZGF0ZSBhbmQgdGltZSBpcyB3aXRoaW4gdGhlIHNwZWNpZmllZCByYW5nZS4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiMS4gYFNUUklOR2A6IFN0YXJ0IHRpbWUgaW4gSVNPIGZvcm1hdC5cbjIuIGBTVFJJTkdgOiBFbmQgdGltZSBpbiBJU08gZm9ybWF0LiIsICJkZXNjcmlwdGlvbiI6ICJDaGVja3Mgd2hldGhlciB0aGUgY3VycmVudCBkYXRlIGFuZCB0aW1lIChpbiBsb2NhbCB0aW1lIHpvbmUgZGVmaW5lZCBieSB0aW1lem9uZU9mZnNldCBzdG9yZWQgaW4gdGhlIGNvbnRleHQpIGlzIGluIHRoZSBnaXZlbiByYW5nZSwgc3BlY2lmaWVkIGluIElTTyBmb3JtYXQuIiwgImV4YW1wbGVfY29kZSI6ICJTVFJJTkcgc3RhcnRUaW1lID0gXCIyMDIzLTEwLTAxVDAwOjAwOjAwWlwiXG5TVFJJTkcgZW5kVGltZSA9IFwiMjAyMy0xMC0zMVQyMzo1OTo1OVpcIlxuXG5JRiBEYXRlVGltZS5Jc0luUmFuZ2VJU08oc3RhcnRUaW1lLCBlbmRUaW1lKSBUSEVOIHtcbiAgICAvLyBDdXJyZW50IGRhdGUgYW5kIHRpbWUgaXMgd2l0aGluIHRoZSBzcGVjaWZpZWQgcmFuZ2UuXG4gICAgTVdHLkFsbG93KFwiVGltZVJhbmdlQ2hlY2tcIilcbn0gRUxTRSB7XG4gICAgLy8gQ3VycmVudCBkYXRlIGFuZCB0aW1lIGlzIG91dHNpZGUgdGhlIHNwZWNpZmllZCByYW5nZS5cbiAgICBNV0cuQmxvY2soXCJBY2Nlc3Mgb3V0c2lkZSBhbGxvd2VkIHRpbWUgcmFuZ2UuXCIpXG59IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJUUlVFIiwgImNvZGVfZXhhbXBsZSI6ICJTVFJJTkcgc3RhcnRUaW1lID0gXCIyMDIzLTEwLTAxVDAwOjAwOjAwWlwiXG5TVFJJTkcgZW5kVGltZSA9IFwiMjAyMy0xMC0zMVQyMzo1OTo1OVpcIlxuXG5JRiBEYXRlVGltZS5Jc0luUmFuZ2VJU08oc3RhcnRUaW1lLCBlbmRUaW1lKSBUSEVOIHtcbiAgICAvLyBDdXJyZW50IGRhdGUgYW5kIHRpbWUgaXMgd2l0aGluIHRoZSBzcGVjaWZpZWQgcmFuZ2UuXG4gICAgTVdHLkFsbG93KFwiVGltZVJhbmdlQ2hlY2tcIilcbn0gRUxTRSB7XG4gICAgLy8gQ3VycmVudCBkYXRlIGFuZCB0aW1lIGlzIG91dHNpZGUgdGhlIHNwZWNpZmllZCByYW5nZS5cbiAgICBNV0cuQmxvY2soXCJBY2Nlc3Mgb3V0c2lkZSBhbGxvd2VkIHRpbWUgcmFuZ2UuXCIpXG59In0sIHsibmFtZSI6ICJEYXRlVGltZS5NaW51dGUgKCkiLCAicmV0dXJuX3R5cGUiOiAiTlVNQkVSIiwgInJldHVybl9kZXNjIjogIlJldHVybnMgdGhlIGN1cnJlbnQgbWludXRlIGZyb20gdGhlIGNsb2NrIGFzIGEgbnVtYmVyLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICIqTi9BKiIsICJkZXNjcmlwdGlvbiI6ICJHZXRzIHRoZSBjdXJyZW50IG1pbnV0ZSBmcm9tIHRoZSBjbG9jay4iLCAiZXhhbXBsZV9jb2RlIjogIi8vIEdldCBjdXJyZW50IG1pbnV0ZSBmcm9tIHRoZSBjbG9ja1xuTlVNQkVSIGN1cnJlbnRNaW51dGUgPSBEYXRlVGltZS5NaW51dGVcblxuLy8gQ2hlY2sgaWYgaXQncyB0aGUgdG9wIGhhbGYgb2YgdGhlIGhvdXJcbkJPT0xFQU4gaXNUb3BIYWxmSG91clxuSUYgY3VycmVudE1pbnV0ZSA8IDMwIFRIRU4ge1xuICAgIGlzVG9wSGFsZkhvdXIgPSBUUlVFXG59IEVMU0Uge1xuICAgIGlzVG9wSGFsZkhvdXIgPSBGQUxTRVxufSIsICJyZXZpZXdlZCI6ICJUUlVFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiLy8gR2V0IGN1cnJlbnQgbWludXRlIGZyb20gdGhlIGNsb2NrXG5OVU1CRVIgY3VycmVudE1pbnV0ZSA9IERhdGVUaW1lLk1pbnV0ZVxuXG4vLyBDaGVjayBpZiBpdCdzIHRoZSB0b3AgaGFsZiBvZiB0aGUgaG91clxuQk9PTEVBTiBpc1RvcEhhbGZIb3VyXG5JRiBjdXJyZW50TWludXRlIDwgMzAgVEhFTiB7XG4gICAgaXNUb3BIYWxmSG91ciA9IFRSVUVcbn0gRUxTRSB7XG4gICAgaXNUb3BIYWxmSG91ciA9IEZBTFNFXG59In0sIHsibmFtZSI6ICJEYXRlVGltZS5Nb250aE51bWJlciAoKSIsICJyZXR1cm5fdHlwZSI6ICJOVU1CRVIiLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyB0aGUgbnVtZXJpYyB2YWx1ZSByZXByZXNlbnRpbmcgdGhlIGN1cnJlbnQgbW9udGggd2hlcmUgSmFudWFyeT0xIGFuZCBEZWNlbWJlcj0xMi4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiKk4vQSoiLCAiZGVzY3JpcHRpb24iOiAiR2V0cyB0aGUgbnVtYmVyIG9mIHRoZSBjdXJyZW50IG1vbnRoLiIsICJleGFtcGxlX2NvZGUiOiAiLy8gR2V0IGN1cnJlbnQgbW9udGggbnVtYmVyXG5OVU1CRVIgY3VycmVudE1vbnRoID0gRGF0ZVRpbWUuTW9udGhOdW1iZXJcblxuLy8gQ2hlY2sgd2hldGhlciBpdCdzIERlY2VtYmVyXG5CT09MRUFOIGlzRGVjZW1iZXJcbklGIGN1cnJlbnRNb250aCA9PSAxMiBUSEVOIHtcbiAgICBpc0RlY2VtYmVyID0gVFJVRVxufSBFTFNFIHtcbiAgICBpc0RlY2VtYmVyID0gRkFMU0Vcbn0iLCAicmV2aWV3ZWQiOiAiVFJVRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIi8vIEdldCBjdXJyZW50IG1vbnRoIG51bWJlclxuTlVNQkVSIGN1cnJlbnRNb250aCA9IERhdGVUaW1lLk1vbnRoTnVtYmVyXG5cbi8vIENoZWNrIHdoZXRoZXIgaXQncyBEZWNlbWJlclxuQk9PTEVBTiBpc0RlY2VtYmVyXG5JRiBjdXJyZW50TW9udGggPT0gMTIgVEhFTiB7XG4gICAgaXNEZWNlbWJlciA9IFRSVUVcbn0gRUxTRSB7XG4gICAgaXNEZWNlbWJlciA9IEZBTFNFXG59In0sIHsibmFtZSI6ICJEYXRlVGltZS5TZWNvbmQgKCkiLCAicmV0dXJuX3R5cGUiOiAiTlVNQkVSIiwgInJldHVybl9kZXNjIjogIlJldHVybnMgdGhlIGN1cnJlbnQgc2Vjb25kIGZyb20gdGhlIGNsb2NrIGFzIGEgbnVtYmVyICgwLTU5KS4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiKk4vQSoiLCAiZGVzY3JpcHRpb24iOiAiR2V0cyB0aGUgY3VycmVudCBzZWNvbmQgZnJvbSB0aGUgY2xvY2suIiwgImV4YW1wbGVfY29kZSI6ICJOVU1CRVIgY3VycmVudFNlY29uZCA9IERhdGVUaW1lLlNlY29uZCIsICJyZXZpZXdlZCI6ICJUUlVFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiTlVNQkVSIGN1cnJlbnRTZWNvbmQgPSBEYXRlVGltZS5TZWNvbmQifSwgeyJuYW1lIjogIkRhdGVUaW1lLlRpbWVJc0luUmFuZ2UgKFNUUklORykiLCAicmV0dXJuX3R5cGUiOiAiQk9PTEVBTiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIGlmIHRoZSBjdXJyZW50IHRpbWUgaXMgaW4gdGhlIGdpdmVuIHJhbmdlIChVVEMpLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICIxLiBgU1RSSU5HYDogUmFuZ2UgdG8gY2hlY2suIiwgImRlc2NyaXB0aW9uIjogIlJldHVybnMgaWYgdGhlIGN1cnJlbnQgdGltZSBpcyBpbiB0aGUgZ2l2ZW4gcmFuZ2UgKFVUQykuIiwgImV4YW1wbGVfY29kZSI6ICJTVFJJTkcgdGltZVJhbmdlID0gXCIwOTowMC0xNzowMFwiICAvLyBUaW1lIHJhbmdlIGluIEhIOk1NLUhIOk1NIGZvcm1hdCAoVVRDKVxuXG5JRiBEYXRlVGltZS5UaW1lSXNJblJhbmdlKHRpbWVSYW5nZSkgVEhFTiB7XG4gICAgLy8gQ3VycmVudCB0aW1lIGlzIHdpdGhpbiB0aGUgc3BlY2lmaWVkIHJhbmdlLlxufSBFTFNFIHtcbiAgICAvLyBDdXJyZW50IHRpbWUgaXMgb3V0c2lkZSB0aGUgc3BlY2lmaWVkIHJhbmdlLlxufSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiVFJVRSIsICJjb2RlX2V4YW1wbGUiOiAiU1RSSU5HIHRpbWVSYW5nZSA9IFwiMDk6MDAtMTc6MDBcIiAgLy8gVGltZSByYW5nZSBpbiBISDpNTS1ISDpNTSBmb3JtYXQgKFVUQylcblxuSUYgRGF0ZVRpbWUuVGltZUlzSW5SYW5nZSh0aW1lUmFuZ2UpIFRIRU4ge1xuICAgIC8vIEN1cnJlbnQgdGltZSBpcyB3aXRoaW4gdGhlIHNwZWNpZmllZCByYW5nZS5cbn0gRUxTRSB7XG4gICAgLy8gQ3VycmVudCB0aW1lIGlzIG91dHNpZGUgdGhlIHNwZWNpZmllZCByYW5nZS5cbn0ifSwgeyJuYW1lIjogIkRhdGVUaW1lLlRpbWVzdGFtcFRvR01UU1RSSU5HIChOVU1CRVIpIiwgInJldHVybl90eXBlIjogIlNUUklORyIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgc3BlY2lmaWVkIHRpbWVzdGFtcCBpbiB0aGUgZm9sbG93aW5nIGZvcm1hdDogVGh1LCAxIFNlcHRlbWJlciAyMDEyIDIyOjA2OjAzIEdNVC4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiMS4gYE5VTUJFUmA6IFRoZSB0aW1lc3RhbXAgdG8gY29udmVydCB3aGljaCBpcyBldmFsdWF0ZWQgYXMgVW5peCBlcG9jaCB0aW1lLiIsICJkZXNjcmlwdGlvbiI6ICJHZW5lcmF0ZXMgYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgYSBnaXZlbiB0aW1lc3RhbXAgaW4gdGhlIGZvbGxvd2luZyBmb3JtYXQ6IFRodSwgMSBTZXB0ZW1iZXIgMjAxMiAyMjowNjowMyBHTVQuIiwgImV4YW1wbGVfY29kZSI6ICIvLyBFeGFtcGxlIHRpbWVzdGFtcCAoVW5peCBlcG9jaCB0aW1lKVxuTlVNQkVSIHRpbWVzdGFtcCA9IDFcblxuLy8gQ29udmVydCB0aGUgdGltZXN0YW1wIHRvIGEgR01UIHN0cmluZ1xuU1RSSU5HIGdtdFN0cmluZyA9IERhdGVUaW1lLlRpbWVzdGFtcFRvR01UU3RyaW5nICh0aW1lc3RhbXApXG4vLyBnbXRTdHJpbmcgbm93IGVxdWFscyBcIlRodSwgMSBKYW51YXJ5IDE5NzAgMDA6MDA6MDEgR01UXCJcblxuLy8gTm93IGdldCBjdXJyZW50IHRpbWVcbnRpbWVzdGFtcCA9IERhdGVUaW1lLlRvTnVtYmVyXG5cbi8vIENvbnZlcnQgY3VycmVudCB0aW1lIHRvIGEgR01UIHN0cmluZ1xuZ210U3RyaW5nID0gRGF0ZVRpZW0uVGltZXN0YW1wVG9HTVRTdHJpbmcgKHRpbWVzdGFtcCkiLCAicmV2aWV3ZWQiOiAiVFJVRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIi8vIEV4YW1wbGUgdGltZXN0YW1wIChVbml4IGVwb2NoIHRpbWUpXG5OVU1CRVIgdGltZXN0YW1wID0gMVxuXG4vLyBDb252ZXJ0IHRoZSB0aW1lc3RhbXAgdG8gYSBHTVQgc3RyaW5nXG5TVFJJTkcgZ210U3RyaW5nID0gRGF0ZVRpbWUuVGltZXN0YW1wVG9HTVRTdHJpbmcgKHRpbWVzdGFtcClcbi8vIGdtdFN0cmluZyBub3cgZXF1YWxzIFwiVGh1LCAxIEphbnVhcnkgMTk3MCAwMDowMDowMSBHTVRcIlxuXG4vLyBOb3cgZ2V0IGN1cnJlbnQgdGltZVxudGltZXN0YW1wID0gRGF0ZVRpbWUuVG9OdW1iZXJcblxuLy8gQ29udmVydCBjdXJyZW50IHRpbWUgdG8gYSBHTVQgc3RyaW5nXG5nbXRTdHJpbmcgPSBEYXRlVGllbS5UaW1lc3RhbXBUb0dNVFN0cmluZyAodGltZXN0YW1wKSJ9LCB7Im5hbWUiOiAiRGF0ZVRpbWUuVGltZXN0YW1wVG9JU09TVFJJTkcgKE5VTUJFUikiLCAicmV0dXJuX3R5cGUiOiAiU1RSSU5HIiwgInJldHVybl9kZXNjIjogIlJldHVybnMgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBzcGVjaWZpZWQgdGltZXN0YW1wIGluIHRoZSBmb2xsb3dpbmcgZm9ybWF0OiAyMDEwLTAzLTIyIDIyOjQ1OjEyIiwgInBhcmFtZXRlcl9kZXNjIjogIjEuIGBOVU1CRVJgOiBUaGUgdGltZXN0YW1wIHRvIGNvbnZlcnQgd2hpY2ggaXMgZXZhbHVhdGVkIGFzIFVuaXggZXBvY2ggdGltZS4iLCAiZGVzY3JpcHRpb24iOiAiR2VuZXJhdGVzIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIGEgZ2l2ZW4gdGltZXN0YW1wIGluIHRoZSBmb2xsb3dpbmcgZm9ybWF0OiAyMDEwLTAzLTIyIDIyOjQ1OjEyIiwgImV4YW1wbGVfY29kZSI6ICIvLyBFeGFtcGxlIHRpbWVzdGFtcCAoVW5peCBlcG9jaCB0aW1lKVxuTlVNQkVSIHRpbWVzdGFtcCA9IDFcblxuLy8gQ29udmVydCB0aGUgdGltZXN0YW1wIHRvIGEgSVNPIHN0cmluZ1xuU1RSSU5HIGdtdFN0cmluZyA9IERhdGVUaW1lLlRpbWVzdGFtcFRvSVNPU3RyaW5nICh0aW1lc3RhbXApXG4vLyBnbXRTdHJpbmcgbm93IGVxdWFscyBcIjE5NzAtMDEtMDEgMDA6MDA6MDFcIlxuXG4vLyBOb3cgZ2V0IGN1cnJlbnQgdGltZVxudGltZXN0YW1wID0gRGF0ZVRpbWUuVG9OdW1iZXJcblxuLy8gQ29udmVydCBjdXJyZW50IHRpbWUgdG8gYSBJU08gc3RyaW5nXG5nbXRTdHJpbmcgPSBEYXRlVGllbS5UaW1lc3RhbXBUb0lTT1N0cmluZyAodGltZXN0YW1wKSIsICJyZXZpZXdlZCI6ICJUUlVFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiLy8gRXhhbXBsZSB0aW1lc3RhbXAgKFVuaXggZXBvY2ggdGltZSlcbk5VTUJFUiB0aW1lc3RhbXAgPSAxXG5cbi8vIENvbnZlcnQgdGhlIHRpbWVzdGFtcCB0byBhIElTTyBzdHJpbmdcblNUUklORyBnbXRTdHJpbmcgPSBEYXRlVGltZS5UaW1lc3RhbXBUb0lTT1N0cmluZyAodGltZXN0YW1wKVxuLy8gZ210U3RyaW5nIG5vdyBlcXVhbHMgXCIxOTcwLTAxLTAxIDAwOjAwOjAxXCJcblxuLy8gTm93IGdldCBjdXJyZW50IHRpbWVcbnRpbWVzdGFtcCA9IERhdGVUaW1lLlRvTnVtYmVyXG5cbi8vIENvbnZlcnQgY3VycmVudCB0aW1lIHRvIGEgSVNPIHN0cmluZ1xuZ210U3RyaW5nID0gRGF0ZVRpZW0uVGltZXN0YW1wVG9JU09TdHJpbmcgKHRpbWVzdGFtcCkifSwgeyJuYW1lIjogIkRhdGVUaW1lLlRpbWVUb1NUUklORyAoU1RSSU5HKSIsICJyZXR1cm5fdHlwZSI6ICJTVFJJTkciLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyBjdXJyZW50IHRpbWUgaW4gYSBzdHJpbmcgZm9ybWF0dGVkIGFjY29yZGluZyB0byB0aGUgcHJvdmlkZWQgc3RyaW5nIGFyZ3VtZW50LiIsICJwYXJhbWV0ZXJfZGVzYyI6ICIxLiBgU1RSSU5HYDogU3BlY2lmaWVzIHRoZSBkZXNpcmVkIGRhdGUgZm9ybWF0IG9mIHRoZSBvdXRwdXQgc3RyaW5nLiAgU3BlY2lmeSBob3VyIGFzIFwiJWhoXCIgb3IgXCIlaFwiLCBtaW51dGUgYXMgXCIlbW1cIiBvciBcIiVtXCIsIGFuZCBzZWNvbmQgYXMgXCIlc3NcIiBvciBcIiVzXCIuIiwgImRlc2NyaXB0aW9uIjogIkNyZWF0ZXMgYSBzdHJpbmcgY29udGFpbmluZyB0aGUgY3VycmVudCB0aW1lIGZvcm1hdHRlZCBhY2NvcmRpbmcgdG8gdGhlIHByb3ZpZGVkIHN0cmluZyBhcmd1bWVudC4iLCAiZXhhbXBsZV9jb2RlIjogIi8vIFNlbGVjdCBkZXNpcmVkIHRpbWUgZm9ybWF0XG5TVFJJTkcgZm9ybWF0ID0gXCIlaDolbW06JXNzXCJcblxuLy8gR2V0IGN1cnJlbnQgdGltZSBpbiBmb3JtYXR0ZWQgc3RyaW5nXG5TVFJJTkcgZm9ybWF0dGVkVGltZSA9IERhdGVUaW1lLlRpbWVUb1N0cmluZyAoZm9ybWF0KSIsICJyZXZpZXdlZCI6ICJUUlVFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiLy8gU2VsZWN0IGRlc2lyZWQgdGltZSBmb3JtYXRcblNUUklORyBmb3JtYXQgPSBcIiVoOiVtbTolc3NcIlxuXG4vLyBHZXQgY3VycmVudCB0aW1lIGluIGZvcm1hdHRlZCBzdHJpbmdcblNUUklORyBmb3JtYXR0ZWRUaW1lID0gRGF0ZVRpbWUuVGltZVRvU3RyaW5nIChmb3JtYXQpIn0sIHsibmFtZSI6ICJEYXRlVGltZS5Ub0dNVFNUUklORyAoKSIsICJyZXR1cm5fdHlwZSI6ICJTVFJJTkciLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyB0aGUgY3VycmVudCBkYXRlIGFuZCB0aW1lIGFzIGEgc3RyaW5nIGZvcm1hdHRlZCBpbiBHTVQuIChlLmcuLCBcIkZyaSwgMjggTWFyY2ggMjAyNSAxNzo0NjoyNSBHTVRcIikiLCAicGFyYW1ldGVyX2Rlc2MiOiAiKk4vQSoiLCAiZGVzY3JpcHRpb24iOiAiR2V0cyB0aGUgY3VycmVudCB0aW1lIGFuZCBkYXRlIGFzIEdNVCBmb3JtYXR0ZWQgc3RyaW5nLiAoZS5nLiwgXCJGcmksIDI4IE1hcmNoIDIwMjUgMTc6NDY6MjUgR01UXCIpIiwgImV4YW1wbGVfY29kZSI6ICIvLyBHZXQgdGhlIGN1cnJlbnQgZGF0ZSBhbmQgdGltZSBhcyBhIEdNVC1mb3JtYXR0ZWQgc3RyaW5nXG5TVFJJTkcgZ210U3RyaW5nID0gRGF0ZVRpbWUuVG9HTVRTdHJpbmdcbi8vIGdtdFN0cmluZyBub3cgY29udGFpbnMgdGhlIGN1cnJlbnQgdGltZSBmb3JtYXR0ZWQgbGlrZSB0aGlzOiBcIkZyaSwgMjggTWFyY2ggMjAyNSAxNzo0NjoyNSBHTVRcIiIsICJyZXZpZXdlZCI6ICJUUlVFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiLy8gR2V0IHRoZSBjdXJyZW50IGRhdGUgYW5kIHRpbWUgYXMgYSBHTVQtZm9ybWF0dGVkIHN0cmluZ1xuU1RSSU5HIGdtdFN0cmluZyA9IERhdGVUaW1lLlRvR01UU3RyaW5nXG4vLyBnbXRTdHJpbmcgbm93IGNvbnRhaW5zIHRoZSBjdXJyZW50IHRpbWUgZm9ybWF0dGVkIGxpa2UgdGhpczogXCJGcmksIDI4IE1hcmNoIDIwMjUgMTc6NDY6MjUgR01UXCIifSwgeyJuYW1lIjogIkRhdGVUaW1lLlRvSVNPU1RSSU5HICgpIiwgInJldHVybl90eXBlIjogIlNUUklORyIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIHRoZSBjdXJyZW50IGRhdGUgYW5kIHRpbWUgYXMgYSBzdHJpbmcgZm9ybWF0dGVkIGluIEdNVC4gKGUuZy4sIFwiMjAyNS0wMy0yOCAxNzo0ODowOVwiKSIsICJwYXJhbWV0ZXJfZGVzYyI6ICIqTi9BKiIsICJkZXNjcmlwdGlvbiI6ICJHZXRzIHRoZSBjdXJyZW50IHRpbWUgYW5kIGRhdGUgYXMgR01UIGZvcm1hdHRlZCBzdHJpbmcuIChlLmcuLCBcIjIwMjUtMDMtMjggMTc6NDg6MDlcIikiLCAiZXhhbXBsZV9jb2RlIjogIi8vIEdldCB0aGUgY3VycmVudCBkYXRlIGFuZCB0aW1lIGFzIGFuIElTTy1mb3JtYXR0ZWQgc3RyaW5nXG5TVFJJTkcgaXNvU3RyaW5nID0gRGF0ZVRpbWUuVG9JU09TdHJpbmdcbi8vIGlzb1N0cmluZyBub3cgY29udGFpbnMgdGhlIGN1cnJlbnQgdGltZSBmb3JtYXR0ZWQgbGlrZSB0aGlzOiBcIjIwMjUtMDMtMjggMTc6NDg6MDlcIiIsICJyZXZpZXdlZCI6ICJUUlVFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiLy8gR2V0IHRoZSBjdXJyZW50IGRhdGUgYW5kIHRpbWUgYXMgYW4gSVNPLWZvcm1hdHRlZCBzdHJpbmdcblNUUklORyBpc29TdHJpbmcgPSBEYXRlVGltZS5Ub0lTT1N0cmluZ1xuLy8gaXNvU3RyaW5nIG5vdyBjb250YWlucyB0aGUgY3VycmVudCB0aW1lIGZvcm1hdHRlZCBsaWtlIHRoaXM6IFwiMjAyNS0wMy0yOCAxNzo0ODowOVwiIn0sIHsibmFtZSI6ICJEYXRlVGltZS5Ub0lTT1NUUklOR1dpdGhNcyAoKSIsICJyZXR1cm5fdHlwZSI6ICJTVFJJTkciLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyBhIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiBjdXJyZW50IGRhdGUgYW5kIHRpbWUgaW4gSVNPIGZvcm1hdCBpbmNsdWRpbmcgbWlsbGlzZWNvbmRzIGluIEdNVCB0aW1lIHpvbmUsIGUuZy4gMjAxMC0wMy0yMiAyMjo0NToxMi4xMjMuIiwgInBhcmFtZXRlcl9kZXNjIjogIipOL0EqIiwgImRlc2NyaXB0aW9uIjogIlJldHVybnMgYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgY3VycmVudCBkYXRlIGFuZCB0aW1lIGluIElTTyBmb3JtYXQgaW5jbHVkaW5nIG1pbGxpc2Vjb25kcyBpbiBHTVQgdGltZSB6b25lLCBlLmcuIDIwMTAtMDMtMjIgMjI6NDU6MTIuMTIzLiIsICJleGFtcGxlX2NvZGUiOiAiU1RSSU5HIGN1cnJlbnREYXRlVGltZSA9IERhdGVUaW1lLlRvSVNPU3RyaW5nV2l0aE1zKClcbi8vIGN1cnJlbnREYXRlVGltZSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIlNUUklORyBjdXJyZW50RGF0ZVRpbWUgPSBEYXRlVGltZS5Ub0lTT1N0cmluZ1dpdGhNcygpXG4vLyBjdXJyZW50RGF0ZVRpbWUifSwgeyJuYW1lIjogIkRhdGVUaW1lLlRvTnVtYmVyICgpIiwgInJldHVybl90eXBlIjogIk5VTUJFUiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIHRoZSBVbml4IGVwb2NoIHRpbWUgaW4gc2Vjb25kcy4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiKk4vQSoiLCAiZGVzY3JpcHRpb24iOiAiUmV0dXJucyBVbml4LWVwb2NoIHRpbWUgaW4gc2Vjb25kcy4iLCAiZXhhbXBsZV9jb2RlIjogIk5VTUJFUiBjdXJyZW50TW9udGggPSBEYXRlVGltZS5Nb250aE51bWJlcigpXG4vLyBUaGUgY3VycmVudCBtb250aCBudW1iZXIgaXM6IGN1cnJlbnRNb250aFxuXG5JRiBjdXJyZW50TW9udGggPT0gMTIgVEhFTiB7XG4gICAgLy8gSXQncyBEZWNlbWJlciFcbn0gRUxTRSB7XG4gICAgLy8gSXQncyBub3QgRGVjZW1iZXIuXG59IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiTlVNQkVSIGN1cnJlbnRNb250aCA9IERhdGVUaW1lLk1vbnRoTnVtYmVyKClcbi8vIFRoZSBjdXJyZW50IG1vbnRoIG51bWJlciBpczogY3VycmVudE1vbnRoXG5cbklGIGN1cnJlbnRNb250aCA9PSAxMiBUSEVOIHtcbiAgICAvLyBJdCdzIERlY2VtYmVyIVxufSBFTFNFIHtcbiAgICAvLyBJdCdzIG5vdCBEZWNlbWJlci5cbn0ifSwgeyJuYW1lIjogIkRhdGVUaW1lLlRvU1RSSU5HIChTVFJJTkcpIiwgInJldHVybl90eXBlIjogIlNUUklORyIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIHRoZSBjdXJyZW50IGRhdGUgYW5kIHRpbWUgYXMgYSBmb3JtYXR0ZWQgc3RyaW5nLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICIxLiBgU1RSSU5HYDogVGhlIGZvcm1hdCBpbiB3aGljaCB0byByZXR1cm4gdGhlIGN1cnJlbnQgZGF0ZSBhbmQgdGltZS4iLCAiZGVzY3JpcHRpb24iOiAiUmV0dXJucyBjdXJyZW50IGRhdGUgYW5kIHRpbWUgYXMgZm9ybWF0dGVkIHN0cmluZy4iLCAiZXhhbXBsZV9jb2RlIjogIlNUUklORyBjdXJyZW50RGF0ZVRpbWUgPSBEYXRlVGltZS5Ub1N0cmluZyhcInl5eXktTU0tZGQgSEg6bW06c3NcIilcbi8vIE91dHB1dCBjdXJyZW50RGF0ZVRpbWUgdG8gdGhlIGNvbnNvbGUiLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICJTVFJJTkcgY3VycmVudERhdGVUaW1lID0gRGF0ZVRpbWUuVG9TdHJpbmcoXCJ5eXl5LU1NLWRkIEhIOm1tOnNzXCIpXG4vLyBPdXRwdXQgY3VycmVudERhdGVUaW1lIHRvIHRoZSBjb25zb2xlIn0sIHsibmFtZSI6ICJEYXRlVGltZS5Ub1dlYlJlcG9ydGVyU1RSSU5HICgpIiwgInJldHVybl90eXBlIjogIlNUUklORyIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIHRoZSBjdXJyZW50IGRhdGUgYW5kIHRpbWUgYXMgYSBHTVQtZm9ybWF0dGVkIHN0cmluZy4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiKk4vQSoiLCAiZGVzY3JpcHRpb24iOiAiUmV0dXJucyBjdXJyZW50IHRpbWUgYW5kIGRhdGUgYXMgR01UIGZvcm1hdHRlZCBzdHJpbmcuIiwgImV4YW1wbGVfY29kZSI6ICIvLyBHZXQgdGhlIGN1cnJlbnQgZGF0ZSBhbmQgdGltZVxuRGF0ZVRpbWUgY3VycmVudERhdGVUaW1lID0gRGF0ZVRpbWUuTm93KClcblxuLy8gQ29udmVydCB0aGUgRGF0ZVRpbWUgb2JqZWN0IHRvIGEgd2ViIHJlcG9ydGVyIHN0cmluZ1xuU1RSSU5HIHdlYlJlcG9ydGVyU3RyaW5nID0gY3VycmVudERhdGVUaW1lLlRvV2ViUmVwb3J0ZXJTdHJpbmcoKVxuXG4vLyBMb2cgdGhlIHdlYiByZXBvcnRlciBzdHJpbmdcbi8vIEN1cnJlbnQgRGF0ZVRpbWUgaW4gV2ViIFJlcG9ydGVyIGZvcm1hdDogXCIgKyB3ZWJSZXBvcnRlclN0cmluZyIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIi8vIEdldCB0aGUgY3VycmVudCBkYXRlIGFuZCB0aW1lXG5EYXRlVGltZSBjdXJyZW50RGF0ZVRpbWUgPSBEYXRlVGltZS5Ob3coKVxuXG4vLyBDb252ZXJ0IHRoZSBEYXRlVGltZSBvYmplY3QgdG8gYSB3ZWIgcmVwb3J0ZXIgc3RyaW5nXG5TVFJJTkcgd2ViUmVwb3J0ZXJTdHJpbmcgPSBjdXJyZW50RGF0ZVRpbWUuVG9XZWJSZXBvcnRlclN0cmluZygpXG5cbi8vIExvZyB0aGUgd2ViIHJlcG9ydGVyIHN0cmluZ1xuLy8gQ3VycmVudCBEYXRlVGltZSBpbiBXZWIgUmVwb3J0ZXIgZm9ybWF0OiBcIiArIHdlYlJlcG9ydGVyU3RyaW5nIn0sIHsibmFtZSI6ICJEYXRlVGltZS5ZZWFyICgpIiwgInJldHVybl90eXBlIjogIk5VTUJFUiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIHRoZSBjdXJyZW50IHllYXIgYXMgYSBudW1iZXIuIiwgInBhcmFtZXRlcl9kZXNjIjogIipOL0EqIiwgImRlc2NyaXB0aW9uIjogIlJldHVybnMgY3VycmVudCB5ZWFyLiIsICJleGFtcGxlX2NvZGUiOiAiTlVNQkVSIGN1cnJlbnRZZWFyID0gRGF0ZVRpbWUuWWVhcigpXG4vLyBUaGUgY3VycmVudCB5ZWFyIGlzOiBjdXJyZW50WWVhciIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIk5VTUJFUiBjdXJyZW50WWVhciA9IERhdGVUaW1lLlllYXIoKVxuLy8gVGhlIGN1cnJlbnQgeWVhciBpczogY3VycmVudFllYXIifSwgeyJuYW1lIjogIkRhdGVUaW1lLlllYXJUd29EaWdpdHMgKCkiLCAicmV0dXJuX3R5cGUiOiAiU1RSSU5HIiwgInJldHVybl9kZXNjIjogIlJldHVybnMgdGhlIGxhc3QgdHdvIGRpZ2l0cyBvZiB0aGUgY3VycmVudCB5ZWFyIGFzIGEgc3RyaW5nLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICIqTi9BKiIsICJkZXNjcmlwdGlvbiI6ICJSZXR1cm5zIHRoZSBsYXN0IHR3byBkaWdpdHMgb2YgdGhlIGN1cnJlbnQgeWVhci4iLCAiZXhhbXBsZV9jb2RlIjogIlNUUklORyB5ZWFyVHdvRGlnaXRzID0gRGF0ZVRpbWUuWWVhclR3b0RpZ2l0cygpXG4vLyBUaGUgbGFzdCB0d28gZGlnaXRzIG9mIHRoZSBjdXJyZW50IHllYXIgYXJlOiB5ZWFyVHdvRGlnaXRzIiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiU1RSSU5HIHllYXJUd29EaWdpdHMgPSBEYXRlVGltZS5ZZWFyVHdvRGlnaXRzKClcbi8vIFRoZSBsYXN0IHR3byBkaWdpdHMgb2YgdGhlIGN1cnJlbnQgeWVhciBhcmU6IHllYXJUd29EaWdpdHMifSwgeyJuYW1lIjogIkRMUC5ETFBTZXJ2aWNlQ2FsbENvdW50IChETFAuQ2xhc3NpZmllcikiLCAicmV0dXJuX3R5cGUiOiAiTlVNQkVSIiwgInJldHVybl9kZXNjIjogIlJldHVybnMgdGhlIG51bWJlciBvZiB0aW1lcyB0aGUgRExQIHNlcnZpY2Ugd2FzIGludm9rZWQuIiwgInBhcmFtZXRlcl9kZXNjIjogIjEuIGBETFAuQ2xhc3NpZmllcmA6IFNwZWNpZmllcyB0aGUgY2xhc3NpZmllciBmb3Igd2hpY2ggeW91IHdhbnQgdG8gY291bnQgRExQIHNlcnZpY2UgY2FsbHMuIiwgImRlc2NyaXB0aW9uIjogIlJldHVybnMgaG93IG9mdGVuIHRoZSBETFAgc2VydmljZSB3YXMgY2FsbGVkLiIsICJleGFtcGxlX2NvZGUiOiAiRExQLkNsYXNzaWZpZXIgY2xhc3NpZmllciA9IC8vIEluaXRpYWxpemUgeW91ciBjbGFzc2lmaWVyIGhlcmVcbk5VTUJFUiBjYWxsQ291bnQgPSBETFAuRExQU2VydmljZUNhbGxDb3VudChjbGFzc2lmaWVyKVxuXG4vLyBETFAgU2VydmljZSBDYWxsIENvdW50OiBcIiArIGNhbGxDb3VudFxuXG5JRiBjYWxsQ291bnQgPiAxMCBUSEVOIHtcbiAgICAvLyBETFAgU2VydmljZSBoYXMgYmVlbiBjYWxsZWQgbW9yZSB0aGFuIDEwIHRpbWVzLlxuICAgIC8vIEFkZGl0aW9uYWwgbG9naWMgY2FuIGJlIGFkZGVkIGhlcmVcbn0iLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICJETFAuQ2xhc3NpZmllciBjbGFzc2lmaWVyID0gLy8gSW5pdGlhbGl6ZSB5b3VyIGNsYXNzaWZpZXIgaGVyZVxuTlVNQkVSIGNhbGxDb3VudCA9IERMUC5ETFBTZXJ2aWNlQ2FsbENvdW50KGNsYXNzaWZpZXIpXG5cbi8vIERMUCBTZXJ2aWNlIENhbGwgQ291bnQ6IFwiICsgY2FsbENvdW50XG5cbklGIGNhbGxDb3VudCA+IDEwIFRIRU4ge1xuICAgIC8vIERMUCBTZXJ2aWNlIGhhcyBiZWVuIGNhbGxlZCBtb3JlIHRoYW4gMTAgdGltZXMuXG4gICAgLy8gQWRkaXRpb25hbCBsb2dpYyBjYW4gYmUgYWRkZWQgaGVyZVxufSJ9LCB7Im5hbWUiOiAiRExQLkhhc0F0TGVhc3QgKERMUC5JbmNpZGVudENvbGxlY3RvciwgTlVNQkVSKSIsICJyZXR1cm5fdHlwZSI6ICJCT09MRUFOIiwgInJldHVybl9kZXNjIjogIlJldHVybnNgVFJVRWBpZiB0aGUgc2V2ZXJpdHkgbGV2ZWwgb2YgdGhlIGluY2lkZW50IGlzIGVxdWFsIHRvIG9yIGhpZ2hlciB0aGFuIHRoZSBzcGVjaWZpZWQgYE5VTUJFUmAuIiwgInBhcmFtZXRlcl9kZXNjIjogIjEuIGBETFAuSW5jaWRlbnRDb2xsZWN0b3JgOiBDb2xsZWN0b3Igb2YgaW5jaWRlbnRzLlxuMi4gYE5VTUJFUmA6IFNldmVyaXR5IGxldmVsIHRvIHRlc3QgYWdhaW5zdC4iLCAiZGVzY3JpcHRpb24iOiAiVGVzdHMgaWYgc2V2ZXJpdHkgaXMgYXQgbGVhc3Qgb2YgZ2l2ZW4gbGV2ZWwuIiwgImV4YW1wbGVfY29kZSI6ICJETFAuSW5jaWRlbnRDb2xsZWN0b3IgY29sbGVjdG9yXG5OVU1CRVIgdGhyZXNob2xkID0gNVxuXG4vLyBTdGFydCBhIERMUCBydWxlXG5ETFAuU3RhcnRSdWxlKGNvbGxlY3RvciwgXCJDaGVjayBmb3IgaW5jaWRlbnRzXCIpXG5cbi8vIENoZWNrIGlmIHRoZSBjb2xsZWN0b3IgaGFzIGF0IGxlYXN0IHRoZSBzcGVjaWZpZWQgbnVtYmVyIG9mIGluY2lkZW50c1xuSUYgRExQLkhhc0F0TGVhc3QoY29sbGVjdG9yLCB0aHJlc2hvbGQpIFRIRU4ge1xuICAgIC8vIFRoZSBETFAgaW5jaWRlbnQgY29sbGVjdG9yIGhhcyBhdCBsZWFzdCB0aHJlc2hvbGQgaW5jaWRlbnRzLlxuICAgIC8vIFRha2Ugc29tZSBhY3Rpb24sIGZvciBleGFtcGxlLCBibG9jayB0aGUgY29ubmVjdGlvblxuICAgIE1XRy5CbG9jayhcIlRvbyBtYW55IERMUCBpbmNpZGVudHMgZGV0ZWN0ZWRcIilcbn0gRUxTRSB7XG4gICAgLy8gVGhlIERMUCBpbmNpZGVudCBjb2xsZWN0b3IgaGFzIGZld2VyIHRoYW4gdGhyZXNob2xkIGluY2lkZW50cy5cbiAgICAvLyBBbGxvdyB0aGUgY29ubmVjdGlvblxuICAgIE1XRy5BbGxvdyhcIkRMUCBpbmNpZGVudCBjb3VudCBpcyB3aXRoaW4gYWNjZXB0YWJsZSBsaW1pdHNcIilcbn0iLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICJETFAuSW5jaWRlbnRDb2xsZWN0b3IgY29sbGVjdG9yXG5OVU1CRVIgdGhyZXNob2xkID0gNVxuXG4vLyBTdGFydCBhIERMUCBydWxlXG5ETFAuU3RhcnRSdWxlKGNvbGxlY3RvciwgXCJDaGVjayBmb3IgaW5jaWRlbnRzXCIpXG5cbi8vIENoZWNrIGlmIHRoZSBjb2xsZWN0b3IgaGFzIGF0IGxlYXN0IHRoZSBzcGVjaWZpZWQgbnVtYmVyIG9mIGluY2lkZW50c1xuSUYgRExQLkhhc0F0TGVhc3QoY29sbGVjdG9yLCB0aHJlc2hvbGQpIFRIRU4ge1xuICAgIC8vIFRoZSBETFAgaW5jaWRlbnQgY29sbGVjdG9yIGhhcyBhdCBsZWFzdCB0aHJlc2hvbGQgaW5jaWRlbnRzLlxuICAgIC8vIFRha2Ugc29tZSBhY3Rpb24sIGZvciBleGFtcGxlLCBibG9jayB0aGUgY29ubmVjdGlvblxuICAgIE1XRy5CbG9jayhcIlRvbyBtYW55IERMUCBpbmNpZGVudHMgZGV0ZWN0ZWRcIilcbn0gRUxTRSB7XG4gICAgLy8gVGhlIERMUCBpbmNpZGVudCBjb2xsZWN0b3IgaGFzIGZld2VyIHRoYW4gdGhyZXNob2xkIGluY2lkZW50cy5cbiAgICAvLyBBbGxvdyB0aGUgY29ubmVjdGlvblxuICAgIE1XRy5BbGxvdyhcIkRMUCBpbmNpZGVudCBjb3VudCBpcyB3aXRoaW4gYWNjZXB0YWJsZSBsaW1pdHNcIilcbn0ifSwgeyJuYW1lIjogIkRMUC5NYXRjaCAoRExQLkNsYXNzaWZpZXIsIERMUC5DbGFzc2lmaWNhdGlvbikiLCAicmV0dXJuX3R5cGUiOiAiQk9PTEVBTiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zYFRSVUVgaWYgdGhlIG9iamVjdCBtYXRjaGVzIHRoZSBzcGVjaWZpZWQgY2xhc3NpZmljYXRpb24sIG90aGVyd2lzZSBpdCByZXR1cm5zYEZBTFNFYCIsICJwYXJhbWV0ZXJfZGVzYyI6ICIxLiBgRExQLkNsYXNzaWZpZXJgOiBUaGUgcHJlZGVmaW5lZCBjcml0ZXJpYSBvciBtb2RlbCBvYmplY3QgZm9yIGNsYXNzaWZpY2F0aW9uLlxuMi4gYERMUC5DbGFzc2lmaWNhdGlvbmA6IFRoZSBvYmplY3Qgb3IgZW50aXR5IHRvIGJlIHRlc3RlZCBhZ2FpbnN0IHRoZSBjbGFzc2lmaWVyLiIsICJkZXNjcmlwdGlvbiI6ICJUZXN0cyBpZiBvYmplY3QgbWF0Y2hlcyBhIGdpdmVuIGNsYXNzaWZpY2F0aW9uLiIsICJleGFtcGxlX2NvZGUiOiAiRExQLkNsYXNzaWZpZXIgY2xhc3NpZmllciA9IFtQcmVkZWZpbmVkQ2xhc3NpZmllcl1cbkRMUC5DbGFzc2lmaWNhdGlvbiBjbGFzc2lmaWNhdGlvbiA9IFtPYmplY3RUb0NsYXNzaWZ5XVxuXG5JRiBETFAuTWF0Y2goY2xhc3NpZmllciwgY2xhc3NpZmljYXRpb24pIFRIRU4ge1xuICAgIC8vIFRoZSBvYmplY3QgbWF0Y2hlcyB0aGUgc3BlY2lmaWVkIGNsYXNzaWZpY2F0aW9uLlxuICAgIC8vIFRha2Ugc29tZSBhY3Rpb24sIGUuZy4sIGJsb2NrIHRoZSByZXF1ZXN0XG4gICAgTVdHLkJsb2NrKFwiQ29udGVudCBtYXRjaGVzIHJlc3RyaWN0ZWQgY2xhc3NpZmljYXRpb24uXCIpXG59IEVMU0Uge1xuICAgIC8vIFRoZSBvYmplY3QgZG9lcyBub3QgbWF0Y2ggdGhlIHNwZWNpZmllZCBjbGFzc2lmaWNhdGlvbi5cbiAgICAvLyBBbGxvdyB0aGUgcmVxdWVzdCB0byBwcm9jZWVkXG4gICAgTVdHLkFsbG93KFwiQ29udGVudCBkb2VzIG5vdCBtYXRjaCByZXN0cmljdGVkIGNsYXNzaWZpY2F0aW9uLlwiKVxufSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIkRMUC5DbGFzc2lmaWVyIGNsYXNzaWZpZXIgPSBbUHJlZGVmaW5lZENsYXNzaWZpZXJdXG5ETFAuQ2xhc3NpZmljYXRpb24gY2xhc3NpZmljYXRpb24gPSBbT2JqZWN0VG9DbGFzc2lmeV1cblxuSUYgRExQLk1hdGNoKGNsYXNzaWZpZXIsIGNsYXNzaWZpY2F0aW9uKSBUSEVOIHtcbiAgICAvLyBUaGUgb2JqZWN0IG1hdGNoZXMgdGhlIHNwZWNpZmllZCBjbGFzc2lmaWNhdGlvbi5cbiAgICAvLyBUYWtlIHNvbWUgYWN0aW9uLCBlLmcuLCBibG9jayB0aGUgcmVxdWVzdFxuICAgIE1XRy5CbG9jayhcIkNvbnRlbnQgbWF0Y2hlcyByZXN0cmljdGVkIGNsYXNzaWZpY2F0aW9uLlwiKVxufSBFTFNFIHtcbiAgICAvLyBUaGUgb2JqZWN0IGRvZXMgbm90IG1hdGNoIHRoZSBzcGVjaWZpZWQgY2xhc3NpZmljYXRpb24uXG4gICAgLy8gQWxsb3cgdGhlIHJlcXVlc3QgdG8gcHJvY2VlZFxuICAgIE1XRy5BbGxvdyhcIkNvbnRlbnQgZG9lcyBub3QgbWF0Y2ggcmVzdHJpY3RlZCBjbGFzc2lmaWNhdGlvbi5cIilcbn0ifSwgeyJuYW1lIjogIkRMUC5TZXZlcml0eUNyaXRpY2FsICgpIiwgInJldHVybl90eXBlIjogIk5VTUJFUiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIGEgbnVtYmVyIHJlcHJlc2VudGluZyB0aGUgc2V2ZXJpdHkgbGV2ZWwgb2YgYSBjcml0aWNhbCBpbmNpZGVudC4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiKk4vQSoiLCAiZGVzY3JpcHRpb24iOiAiQ29uc3RhbnQ6IENyaXRpY2FsIGluY2lkZW50IHNldmVyaXR5LiIsICJleGFtcGxlX2NvZGUiOiAiTlVNQkVSIHNldmVyaXR5TGV2ZWwgPSBETFAuU2V2ZXJpdHlDcml0aWNhbCgpXG5cbklGIHNldmVyaXR5TGV2ZWwgPiA1IFRIRU4ge1xuICAgIC8vIEluY2lkZW50IHNldmVyaXR5IGlzIGNyaXRpY2FsLlxuICAgIE1XRy5CbG9jayhcIkFjY2VzcyBibG9ja2VkIGR1ZSB0byBjcml0aWNhbCBpbmNpZGVudCBzZXZlcml0eS5cIilcbn0gRUxTRSB7XG4gICAgLy8gSW5jaWRlbnQgc2V2ZXJpdHkgaXMgbm90IGNyaXRpY2FsLlxuICAgIE1XRy5BbGxvdyhcIkluY2lkZW50IHNldmVyaXR5IGlzIGFjY2VwdGFibGUuXCIpXG59IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiTlVNQkVSIHNldmVyaXR5TGV2ZWwgPSBETFAuU2V2ZXJpdHlDcml0aWNhbCgpXG5cbklGIHNldmVyaXR5TGV2ZWwgPiA1IFRIRU4ge1xuICAgIC8vIEluY2lkZW50IHNldmVyaXR5IGlzIGNyaXRpY2FsLlxuICAgIE1XRy5CbG9jayhcIkFjY2VzcyBibG9ja2VkIGR1ZSB0byBjcml0aWNhbCBpbmNpZGVudCBzZXZlcml0eS5cIilcbn0gRUxTRSB7XG4gICAgLy8gSW5jaWRlbnQgc2V2ZXJpdHkgaXMgbm90IGNyaXRpY2FsLlxuICAgIE1XRy5BbGxvdyhcIkluY2lkZW50IHNldmVyaXR5IGlzIGFjY2VwdGFibGUuXCIpXG59In0sIHsibmFtZSI6ICJETFAuU2V2ZXJpdHlJbmZvICgpIiwgInJldHVybl90eXBlIjogIk5VTUJFUiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIGEgbnVtZXJpYyB2YWx1ZSByZXByZXNlbnRpbmcgdGhlIHNldmVyaXR5IGxldmVsIG9mIGFuIGluZm9ybWF0aW9uYWwgaW5jaWRlbnQuIiwgInBhcmFtZXRlcl9kZXNjIjogIipOL0EqIiwgImRlc2NyaXB0aW9uIjogIkNvbnN0YW50OiBJbmZvIGluY2lkZW50IHNldmVyaXR5LiIsICJleGFtcGxlX2NvZGUiOiAiTlVNQkVSIHNldmVyaXR5TGV2ZWwgPSBETFAuU2V2ZXJpdHlJbmZvKClcbi8vIFRoZSBzZXZlcml0eSBsZXZlbCBvZiBhbiBpbmZvcm1hdGlvbmFsIGluY2lkZW50IGlzOiBcIiArIHNldmVyaXR5TGV2ZWxcblxuSUYgc2V2ZXJpdHlMZXZlbCA+IDAgVEhFTiB7XG4gICAgLy8gVGhpcyBpcyBhbiBpbmZvcm1hdGlvbmFsIGluY2lkZW50IHdpdGggYSBub24temVybyBzZXZlcml0eSBsZXZlbC5cbn0gRUxTRSB7XG4gICAgLy8gVGhpcyBpcyBhbiBpbmZvcm1hdGlvbmFsIGluY2lkZW50IHdpdGggYSB6ZXJvIHNldmVyaXR5IGxldmVsLlxufSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIk5VTUJFUiBzZXZlcml0eUxldmVsID0gRExQLlNldmVyaXR5SW5mbygpXG4vLyBUaGUgc2V2ZXJpdHkgbGV2ZWwgb2YgYW4gaW5mb3JtYXRpb25hbCBpbmNpZGVudCBpczogXCIgKyBzZXZlcml0eUxldmVsXG5cbklGIHNldmVyaXR5TGV2ZWwgPiAwIFRIRU4ge1xuICAgIC8vIFRoaXMgaXMgYW4gaW5mb3JtYXRpb25hbCBpbmNpZGVudCB3aXRoIGEgbm9uLXplcm8gc2V2ZXJpdHkgbGV2ZWwuXG59IEVMU0Uge1xuICAgIC8vIFRoaXMgaXMgYW4gaW5mb3JtYXRpb25hbCBpbmNpZGVudCB3aXRoIGEgemVybyBzZXZlcml0eSBsZXZlbC5cbn0ifSwgeyJuYW1lIjogIkRMUC5TZXZlcml0eU1ham9yICgpIiwgInJldHVybl90eXBlIjogIk5VTUJFUiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIGEgY29uc3RhbnQgbnVtZXJpYyB2YWx1ZSByZXByZXNlbnRpbmcgdGhlIHNldmVyaXR5IGxldmVsIG9mIGEgbWFqb3IgaW5jaWRlbnQuIiwgInBhcmFtZXRlcl9kZXNjIjogIipOL0EqIiwgImRlc2NyaXB0aW9uIjogIkRlZmluZXMgbWFqb3IgaW5jaWRlbnQgc2V2ZXJpdHkuIiwgImV4YW1wbGVfY29kZSI6ICJOVU1CRVIgbWFqb3JTZXZlcml0eSA9IERMUC5TZXZlcml0eU1ham9yKClcblxuLy8gU2ltdWxhdGUgZ2V0dGluZyB0aGUgY3VycmVudCBpbmNpZGVudCBzZXZlcml0eSAodGhpcyBwYXJ0IGlzIGh5cG90aGV0aWNhbClcbk5VTUJFUiBjdXJyZW50U2V2ZXJpdHkgPSBHZXRDdXJyZW50SW5jaWRlbnRTZXZlcml0eSgpIC8vIEFzc3VtZSB0aGlzIGZ1bmN0aW9uIGV4aXN0cyBhbmQgcmV0dXJucyB0aGUgY3VycmVudCBpbmNpZGVudCBzZXZlcml0eVxuXG5JRiBjdXJyZW50U2V2ZXJpdHkgPT0gbWFqb3JTZXZlcml0eSBUSEVOIHtcbiAgICAvLyBcIkluY2lkZW50IHNldmVyaXR5IGlzIG1ham9yLlwiXG4gICAgLy8gVGFrZSBhcHByb3ByaWF0ZSBhY3Rpb24gZm9yIG1ham9yIGluY2lkZW50c1xuICAgIE1XRy5CbG9jayhcIkFjY2VzcyBibG9ja2VkIGR1ZSB0byBtYWpvciBpbmNpZGVudCBzZXZlcml0eS5cIilcbn0gRUxTRSB7XG4gICAgLy8gXCJJbmNpZGVudCBzZXZlcml0eSBpcyBub3QgbWFqb3IuXCJcbiAgICAvLyBUYWtlIGFwcHJvcHJpYXRlIGFjdGlvbiBmb3Igbm9uLW1ham9yIGluY2lkZW50c1xuICAgIE1XRy5BbGxvdyhcIkluY2lkZW50IHNldmVyaXR5IGlzIG5vdCBtYWpvci5cIilcbn0iLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICJOVU1CRVIgbWFqb3JTZXZlcml0eSA9IERMUC5TZXZlcml0eU1ham9yKClcblxuLy8gU2ltdWxhdGUgZ2V0dGluZyB0aGUgY3VycmVudCBpbmNpZGVudCBzZXZlcml0eSAodGhpcyBwYXJ0IGlzIGh5cG90aGV0aWNhbClcbk5VTUJFUiBjdXJyZW50U2V2ZXJpdHkgPSBHZXRDdXJyZW50SW5jaWRlbnRTZXZlcml0eSgpIC8vIEFzc3VtZSB0aGlzIGZ1bmN0aW9uIGV4aXN0cyBhbmQgcmV0dXJucyB0aGUgY3VycmVudCBpbmNpZGVudCBzZXZlcml0eVxuXG5JRiBjdXJyZW50U2V2ZXJpdHkgPT0gbWFqb3JTZXZlcml0eSBUSEVOIHtcbiAgICAvLyBcIkluY2lkZW50IHNldmVyaXR5IGlzIG1ham9yLlwiXG4gICAgLy8gVGFrZSBhcHByb3ByaWF0ZSBhY3Rpb24gZm9yIG1ham9yIGluY2lkZW50c1xuICAgIE1XRy5CbG9jayhcIkFjY2VzcyBibG9ja2VkIGR1ZSB0byBtYWpvciBpbmNpZGVudCBzZXZlcml0eS5cIilcbn0gRUxTRSB7XG4gICAgLy8gXCJJbmNpZGVudCBzZXZlcml0eSBpcyBub3QgbWFqb3IuXCJcbiAgICAvLyBUYWtlIGFwcHJvcHJpYXRlIGFjdGlvbiBmb3Igbm9uLW1ham9yIGluY2lkZW50c1xuICAgIE1XRy5BbGxvdyhcIkluY2lkZW50IHNldmVyaXR5IGlzIG5vdCBtYWpvci5cIilcbn0ifSwgeyJuYW1lIjogIkRMUC5TZXZlcml0eU1pbm9yICgpIiwgInJldHVybl90eXBlIjogIk5VTUJFUiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIGEgY29uc3RhbnQgbnVtZXJpY2FsIHZhbHVlIHJlcHJlc2VudGluZyB0aGUgc2V2ZXJpdHkgbGV2ZWwgb2YgYSBtaW5vciBpbmNpZGVudC4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiKk4vQSoiLCAiZGVzY3JpcHRpb24iOiAiRGVmaW5lcyBtaW5vciBpbmNpZGVudCBzZXZlcml0eS4iLCAiZXhhbXBsZV9jb2RlIjogIk5VTUJFUiBzZXZlcml0eUxldmVsID0gRExQLlNldmVyaXR5TWFqb3IoKVxuXG5JRiBzZXZlcml0eUxldmVsID4gNSBUSEVOIHtcbiAgICAvLyBNYWpvciBzZXZlcml0eSBsZXZlbCBkZXRlY3RlZDogXG4gICAgTVdHLkJsb2NrKFwiQWNjZXNzIGJsb2NrZWQgZHVlIHRvIG1ham9yIHNldmVyaXR5IGxldmVsXCIpXG59IEVMU0Uge1xuICAgIC8vIFNldmVyaXR5IGxldmVsIGlzIGFjY2VwdGFibGU6IFxuICAgIE1XRy5BbGxvdyhcIlNldmVyaXR5IGxldmVsIGNoZWNrIHBhc3NlZFwiKVxufSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIk5VTUJFUiBzZXZlcml0eUxldmVsID0gRExQLlNldmVyaXR5TWFqb3IoKVxuXG5JRiBzZXZlcml0eUxldmVsID4gNSBUSEVOIHtcbiAgICAvLyBNYWpvciBzZXZlcml0eSBsZXZlbCBkZXRlY3RlZDogXG4gICAgTVdHLkJsb2NrKFwiQWNjZXNzIGJsb2NrZWQgZHVlIHRvIG1ham9yIHNldmVyaXR5IGxldmVsXCIpXG59IEVMU0Uge1xuICAgIC8vIFNldmVyaXR5IGxldmVsIGlzIGFjY2VwdGFibGU6IFxuICAgIE1XRy5BbGxvdyhcIlNldmVyaXR5IGxldmVsIGNoZWNrIHBhc3NlZFwiKVxufSJ9LCB7Im5hbWUiOiAiRExQLlNldmVyaXR5V2FybmluZyAoKSIsICJyZXR1cm5fdHlwZSI6ICJOVU1CRVIiLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyB0aGUgbnVtZXJpYyB2YWx1ZSByZXByZXNlbnRpbmcgdGhlIHNldmVyaXR5IGxldmVsIG9mIGEgd2FybmluZyBpbmNpZGVudC4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiKk4vQSoiLCAiZGVzY3JpcHRpb24iOiAiQ29uc3RhbnQ6IFdhcm5pbmcgaW5jaWRlbnQgc2V2ZXJpdHkuIiwgImV4YW1wbGVfY29kZSI6ICJOVU1CRVIgc2V2ZXJpdHkgPSBETFAuU2V2ZXJpdHlXYXJuaW5nKClcblxuSUYgc2V2ZXJpdHkgPiA1IFRIRU4ge1xuICAgIC8vIEhpZ2ggc2V2ZXJpdHkgd2FybmluZyBkZXRlY3RlZDogXG4gICAgTVdHLkJsb2NrKFwiQWNjZXNzIGJsb2NrZWQgZHVlIHRvIGhpZ2ggc2V2ZXJpdHkgd2FybmluZy5cIilcbn0gRUxTRSB7XG4gICAgLy8gTG93IHNldmVyaXR5IHdhcm5pbmcgZGV0ZWN0ZWQ6IFxuICAgIE1XRy5BbGxvdyhcIkxvdyBzZXZlcml0eSB3YXJuaW5nLCBhY2Nlc3MgYWxsb3dlZC5cIilcbn0iLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICJOVU1CRVIgc2V2ZXJpdHkgPSBETFAuU2V2ZXJpdHlXYXJuaW5nKClcblxuSUYgc2V2ZXJpdHkgPiA1IFRIRU4ge1xuICAgIC8vIEhpZ2ggc2V2ZXJpdHkgd2FybmluZyBkZXRlY3RlZDogXG4gICAgTVdHLkJsb2NrKFwiQWNjZXNzIGJsb2NrZWQgZHVlIHRvIGhpZ2ggc2V2ZXJpdHkgd2FybmluZy5cIilcbn0gRUxTRSB7XG4gICAgLy8gTG93IHNldmVyaXR5IHdhcm5pbmcgZGV0ZWN0ZWQ6IFxuICAgIE1XRy5BbGxvdyhcIkxvdyBzZXZlcml0eSB3YXJuaW5nLCBhY2Nlc3MgYWxsb3dlZC5cIilcbn0ifSwgeyJuYW1lIjogIkRMUC5TdGFydFJvdXRpbmUgKERMUC5DbGFzc2lmaWVyLCBTVFJJTkcpIiwgInJldHVybl90eXBlIjogIkRMUC5JbmNpZGVudENvbGxlY3RvciIsICJyZXR1cm5fZGVzYyI6ICJUaGUgZnVuY3Rpb24gRExQLlN0YXJ0Um91dGluZSByZXR1cm5zIGEgbmV3IERMUC5JbmNpZGVudENvbGxlY3RvciBvYmplY3QuIiwgInBhcmFtZXRlcl9kZXNjIjogIjEuIGBETFAuQ2xhc3NpZmllcmA6IFNwZWNpZmllcyB0aGUgZGF0YSBjbGFzc2lmaWNhdGlvbiBtZXRob2QgdG8gdXNlLlxuMi4gYFNUUklOR2A6IFRoZSBpZGVudGlmaWVyIG9yIG5hbWUgZm9yIHRoZSByb3V0aW5lLiIsICJkZXNjcmlwdGlvbiI6ICJDcmVhdGVzIGEgbmV3IERMUCBpbmNpZGVudCBjb2xsZWN0b3Igb2JqZWN0LiIsICJleGFtcGxlX2NvZGUiOiAiLy8gRGVmaW5lIGEgRExQLkNsYXNzaWZpZXIgb2JqZWN0XG5ETFAuQ2xhc3NpZmllciBjbGFzc2lmaWVyID0gRExQLkNsYXNzaWZpZXIoXCJTZW5zaXRpdmVEYXRhXCIpO1xuXG4vLyBTdGFydCBhIERMUCByb3V0aW5lIHdpdGggdGhlIGNsYXNzaWZpZXIgYW5kIGEgbmFtZSBmb3IgdGhlIHJvdXRpbmVcbkRMUC5JbmNpZGVudENvbGxlY3RvciBpbmNpZGVudENvbGxlY3RvciA9IERMUC5TdGFydFJvdXRpbmUoY2xhc3NpZmllciwgXCJFeGFtcGxlUm91dGluZVwiKTtcblxuLy8gUGVyZm9ybSBhZGRpdGlvbmFsIGFjdGlvbnMgd2l0aCB0aGUgaW5jaWRlbnRDb2xsZWN0b3IgaWYgbmVlZGVkXG4vLyBGb3IgZXhhbXBsZSwgeW91IG1pZ2h0IHdhbnQgdG8gbG9nIHRoZSBpbmNpZGVudCBvciB0YWtlIHNvbWUgYWN0aW9uIGJhc2VkIG9uIHRoZSBjbGFzc2lmaWNhdGlvblxuLy8gRExQIHJvdXRpbmUgc3RhcnRlZCB3aXRoIGNsYXNzaWZpZXI6IFwiICsgY2xhc3NpZmllciArIFwiIGFuZCByb3V0aW5lIG5hbWU6IEV4YW1wbGVSb3V0aW5lIiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiLy8gRGVmaW5lIGEgRExQLkNsYXNzaWZpZXIgb2JqZWN0XG5ETFAuQ2xhc3NpZmllciBjbGFzc2lmaWVyID0gRExQLkNsYXNzaWZpZXIoXCJTZW5zaXRpdmVEYXRhXCIpO1xuXG4vLyBTdGFydCBhIERMUCByb3V0aW5lIHdpdGggdGhlIGNsYXNzaWZpZXIgYW5kIGEgbmFtZSBmb3IgdGhlIHJvdXRpbmVcbkRMUC5JbmNpZGVudENvbGxlY3RvciBpbmNpZGVudENvbGxlY3RvciA9IERMUC5TdGFydFJvdXRpbmUoY2xhc3NpZmllciwgXCJFeGFtcGxlUm91dGluZVwiKTtcblxuLy8gUGVyZm9ybSBhZGRpdGlvbmFsIGFjdGlvbnMgd2l0aCB0aGUgaW5jaWRlbnRDb2xsZWN0b3IgaWYgbmVlZGVkXG4vLyBGb3IgZXhhbXBsZSwgeW91IG1pZ2h0IHdhbnQgdG8gbG9nIHRoZSBpbmNpZGVudCBvciB0YWtlIHNvbWUgYWN0aW9uIGJhc2VkIG9uIHRoZSBjbGFzc2lmaWNhdGlvblxuLy8gRExQIHJvdXRpbmUgc3RhcnRlZCB3aXRoIGNsYXNzaWZpZXI6IFwiICsgY2xhc3NpZmllciArIFwiIGFuZCByb3V0aW5lIG5hbWU6IEV4YW1wbGVSb3V0aW5lIn0sIHsibmFtZSI6ICJFbmNvZGluZy5CYXNlNjREZWNvZGUgKFNUUklORykiLCAicmV0dXJuX3R5cGUiOiAiU1RSSU5HIiwgInJldHVybl9kZXNjIjogIlJldHVybnMgdGhlIG9yaWdpbmFsIHN0cmluZyB0aGF0IHdhcyBiYXNlNjQgZW5jb2RlZC4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiMS4gYFNUUklOR2A6IFRoZSBiYXNlNjQgZW5jb2RlZCBpbnB1dCBTVFJJTkcgdG8gYmUgZGVjb2RlZC4iLCAiZGVzY3JpcHRpb24iOiAiRGVjb2RlcyBhIGJhc2U2NCBlbmNvZGVkIHN0cmluZy4iLCAiZXhhbXBsZV9jb2RlIjogIlNUUklORyBlbmNvZGVkU3RyaW5nID0gXCJTR1ZzYkc4Z1YyOXliR1FoXCIgIC8vIFRoaXMgaXMgXCJIZWxsbyBXb3JsZCFcIiBpbiBiYXNlNjRcblNUUklORyBkZWNvZGVkU3RyaW5nID0gRW5jb2RpbmcuQmFzZTY0RGVjb2RlKGVuY29kZWRTdHJpbmcpXG4vLyBEZWNvZGVkIFN0cmluZzogXCIgKyBkZWNvZGVkU3RyaW5nIiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiU1RSSU5HIGVuY29kZWRTdHJpbmcgPSBcIlNHVnNiRzhnVjI5eWJHUWhcIiAgLy8gVGhpcyBpcyBcIkhlbGxvIFdvcmxkIVwiIGluIGJhc2U2NFxuU1RSSU5HIGRlY29kZWRTdHJpbmcgPSBFbmNvZGluZy5CYXNlNjREZWNvZGUoZW5jb2RlZFN0cmluZylcbi8vIERlY29kZWQgU3RyaW5nOiBcIiArIGRlY29kZWRTdHJpbmcifSwgeyJuYW1lIjogIkVuY29kaW5nLkJhc2U2NEVuY29kZSAoREFUQVJFRikiLCAicmV0dXJuX3R5cGUiOiAiU1RSSU5HIiwgInJldHVybl9kZXNjIjogIlJldHVybnMgdGhlIGJhc2U2NC1lbmNvZGVkIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBpbnB1dCBkYXRhLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICIxLiBgREFUQVJFRmA6IFRoZSBkYXRhIHRvIGJlIGVuY29kZWQgaW4gYmFzZTY0IGZvcm1hdC4iLCAiZGVzY3JpcHRpb24iOiAiRW5jb2RlcyBkYXRhIGJhc2U2NC4iLCAiZXhhbXBsZV9jb2RlIjogIlNUUklORyBkYXRhID0gXCJIZWxsbywgV29ybGQhXCJcblNUUklORyBlbmNvZGVkRGF0YSA9IEVuY29kaW5nLkJhc2U2NFVSTEVuY29kZShkYXRhKVxuLy8gRW5jb2RlZCBEYXRhOiBcIiArIGVuY29kZWREYXRhIiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiU1RSSU5HIGRhdGEgPSBcIkhlbGxvLCBXb3JsZCFcIlxuU1RSSU5HIGVuY29kZWREYXRhID0gRW5jb2RpbmcuQmFzZTY0VVJMRW5jb2RlKGRhdGEpXG4vLyBFbmNvZGVkIERhdGE6IFwiICsgZW5jb2RlZERhdGEifSwgeyJuYW1lIjogIkVuY29kaW5nLkJhc2U2NEVuY29kZSAoU1RSSU5HKSIsICJyZXR1cm5fdHlwZSI6ICJTVFJJTkciLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyB0aGUgQmFzZTY0LWVuY29kZWQgdmVyc2lvbiBvZiB0aGUgaW5wdXQgc3RyaW5nLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICIxLiBgU1RSSU5HYDogVGhlIGlucHV0IHRleHQgdG8gYmUgZW5jb2RlZCBpbiBiYXNlNjQgZm9ybWF0LiIsICJkZXNjcmlwdGlvbiI6ICJFbmNvZGVzIGEgc3RyaW5nIGJhc2U2NC4iLCAiZXhhbXBsZV9jb2RlIjogIlNUUklORyBvcmlnaW5hbFRleHQgPSBcIkhlbGxvLCBXb3JsZCFcIlxuU1RSSU5HIGVuY29kZWRUZXh0ID0gRW5jb2RpbmcuQmFzZTY0RW5jb2RlKG9yaWdpbmFsVGV4dClcbi8vIE9yaWdpbmFsIFRleHQ6IEhlbGxvLCBXb3JsZCFcbi8vIEVuY29kZWQgVGV4dDogU0dWc2JHOHNJRmR2Y214a0lRPT0iLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICJTVFJJTkcgb3JpZ2luYWxUZXh0ID0gXCJIZWxsbywgV29ybGQhXCJcblNUUklORyBlbmNvZGVkVGV4dCA9IEVuY29kaW5nLkJhc2U2NEVuY29kZShvcmlnaW5hbFRleHQpXG4vLyBPcmlnaW5hbCBUZXh0OiBIZWxsbywgV29ybGQhXG4vLyBFbmNvZGVkIFRleHQ6IFNHVnNiRzhzSUZkdmNteGtJUT09In0sIHsibmFtZSI6ICJFbmNvZGluZy5CYXNlNjRVUkxEZWNvZGUgKFNUUklORykiLCAicmV0dXJuX3R5cGUiOiAiU1RSSU5HIiwgInJldHVybl9kZXNjIjogIlJldHVybnMgdGhlIGRlY29kZWQgc3RyaW5nIGZyb20gYSBiYXNlNjQtVVJMLWVuY29kZWQgaW5wdXQuIiwgInBhcmFtZXRlcl9kZXNjIjogIjEuIGBTVFJJTkdgOiBUaGUgYmFzZTY0LVVSTC1lbmNvZGVkIFNUUklORyB0byBiZSBkZWNvZGVkLiIsICJkZXNjcmlwdGlvbiI6ICJEZWNvZGVzIGEgYmFzZTY0LVVSTC1lbmNvZGVkIHN0cmluZy4iLCAiZXhhbXBsZV9jb2RlIjogIlNUUklORyBlbmNvZGVkU3RyaW5nID0gXCJTR1ZzYkc4Z1YyOXliR1FoXCIgIC8vIFRoaXMgaXMgXCJIZWxsbyBXb3JsZCFcIiBpbiBiYXNlNjQtVVJMLWVuY29kZWQgZm9ybVxuU1RSSU5HIGRlY29kZWRTdHJpbmcgPSBFbmNvZGluZy5CYXNlNjRVUkxEZWNvZGUoZW5jb2RlZFN0cmluZylcbi8vIERlY29kZWQgU3RyaW5nOiBcIiArIGRlY29kZWRTdHJpbmciLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICJTVFJJTkcgZW5jb2RlZFN0cmluZyA9IFwiU0dWc2JHOGdWMjl5YkdRaFwiICAvLyBUaGlzIGlzIFwiSGVsbG8gV29ybGQhXCIgaW4gYmFzZTY0LVVSTC1lbmNvZGVkIGZvcm1cblNUUklORyBkZWNvZGVkU3RyaW5nID0gRW5jb2RpbmcuQmFzZTY0VVJMRGVjb2RlKGVuY29kZWRTdHJpbmcpXG4vLyBEZWNvZGVkIFN0cmluZzogXCIgKyBkZWNvZGVkU3RyaW5nIn0sIHsibmFtZSI6ICJFbmNvZGluZy5CYXNlNjRVUkxFbmNvZGUgKERBVEFSRUYpIiwgInJldHVybl90eXBlIjogIlNUUklORyIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIGEgYmFzZTY0LWVuY29kZWQgc3RyaW5nIHN1aXRhYmxlIGZvciB1c2UgaW4gVVJMcy4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiMS4gYERBVEFSRUZgOiBUaGUgZGF0YSB0byBiZSBlbmNvZGVkIGludG8gYmFzZTY0IFVSTC1zYWZlIGZvcm1hdC4iLCAiZGVzY3JpcHRpb24iOiAiRW5jb2RlcyBkYXRhIGludG8gYmFzZTY0IGZvcm1hdCB0aGF0IGNhbiBiZSB1c2VkIGFzIGEgVVJMIHBhcmFtZXRlci4iLCAiZXhhbXBsZV9jb2RlIjogIlNUUklORyBkYXRhID0gXCJIZWxsbywgV29ybGQhXCJcblNUUklORyBlbmNvZGVkRGF0YSA9IEVuY29kaW5nLkJhc2U2NFVSTEVuY29kZShkYXRhKVxuLy8gRW5jb2RlZCBEYXRhOiBcIiArIGVuY29kZWREYXRhIiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiU1RSSU5HIGRhdGEgPSBcIkhlbGxvLCBXb3JsZCFcIlxuU1RSSU5HIGVuY29kZWREYXRhID0gRW5jb2RpbmcuQmFzZTY0VVJMRW5jb2RlKGRhdGEpXG4vLyBFbmNvZGVkIERhdGE6IFwiICsgZW5jb2RlZERhdGEifSwgeyJuYW1lIjogIkVuY29kaW5nLkJhc2U2NFVSTEVuY29kZSAoU1RSSU5HKSIsICJyZXR1cm5fdHlwZSI6ICJTVFJJTkciLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyB0aGUgaW5wdXQgc3RyaW5nIGVuY29kZWQgaW4gYSBCYXNlNjQgZm9ybWF0IHN1aXRhYmxlIGZvciB1c2UgaW4gVVJMcy4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiMS4gYFNUUklOR2A6IFRoZSBpbnB1dCBTVFJJTkcgdG8gYmUgZW5jb2RlZCBpbiBiYXNlNjQgVVJMIGZvcm1hdC4iLCAiZGVzY3JpcHRpb24iOiAiRW5jb2RlcyBhIHN0cmluZyBpbnRvIGJhc2U2NCBmb3JtYXQgdGhhdCBjYW4gYmUgdXNlZCBhcyBhIFVSTCBwYXJhbWV0ZXIuIiwgImV4YW1wbGVfY29kZSI6ICJTVFJJTkcgb3JpZ2luYWxTdHJpbmcgPSBcIkhlbGxvLCBXb3JsZCFcIlxuU1RSSU5HIGVuY29kZWRTdHJpbmcgPSBFbmNvZGluZy5CYXNlNjRVUkxFbmNvZGUob3JpZ2luYWxTdHJpbmcpXG4vLyBPcmlnaW5hbCBTdHJpbmc6IEhlbGxvLCBXb3JsZCFcbi8vIEVuY29kZWQgU3RyaW5nOiBTR1ZzYkc4c0lGZHZjbXhrSVE9PSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIlNUUklORyBvcmlnaW5hbFN0cmluZyA9IFwiSGVsbG8sIFdvcmxkIVwiXG5TVFJJTkcgZW5jb2RlZFN0cmluZyA9IEVuY29kaW5nLkJhc2U2NFVSTEVuY29kZShvcmlnaW5hbFN0cmluZylcbi8vIE9yaWdpbmFsIFN0cmluZzogSGVsbG8sIFdvcmxkIVxuLy8gRW5jb2RlZCBTdHJpbmc6IFNHVnNiRzhzSUZkdmNteGtJUT09In0sIHsibmFtZSI6ICJFbmNvZGluZy5EYXRhUmVmQmFzZTY0RGVjb2RlIChTVFJJTkcpIiwgInJldHVybl90eXBlIjogIkRBVEFSRUYiLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyBhIGBEQVRBUkVGYCBjb250YWluaW5nIHRoZSBiaW5hcnkgZGF0YSBkZWNvZGVkIGZyb20gdGhlIHByb3ZpZGVkIGJhc2U2NCBlbmNvZGVkIGBTVFJJTkdgLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICIxLiBgU1RSSU5HYDogVGhlIGJhc2U2NCBlbmNvZGVkIGRhdGEgdG8gYmUgZGVjb2RlZC4iLCAiZGVzY3JpcHRpb24iOiAiRGVjb2RlcyBiYXNlNjQgZW5jb2RlZCBkYXRhLiIsICJleGFtcGxlX2NvZGUiOiAiU1RSSU5HIGVuY29kZWRTdHJpbmcgPSBcIlNHVnNiRzhnVjI5eWJHUWhcIiAgLy8gVGhpcyBpcyBcIkhlbGxvIFdvcmxkIVwiIGluIEJhc2U2NFxuU1RSSU5HIGRlY29kZWRTdHJpbmcgPSBFbmNvZGluZy5EYXRhUmVmQmFzZTY0RGVjb2RlKGVuY29kZWRTdHJpbmcpXG5cbi8vIEVuY29kZWQgU3RyaW5nOiBcIiArIGVuY29kZWRTdHJpbmdcbi8vIERlY29kZWQgU3RyaW5nOiBcIiArIGRlY29kZWRTdHJpbmciLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICJTVFJJTkcgZW5jb2RlZFN0cmluZyA9IFwiU0dWc2JHOGdWMjl5YkdRaFwiICAvLyBUaGlzIGlzIFwiSGVsbG8gV29ybGQhXCIgaW4gQmFzZTY0XG5TVFJJTkcgZGVjb2RlZFN0cmluZyA9IEVuY29kaW5nLkRhdGFSZWZCYXNlNjREZWNvZGUoZW5jb2RlZFN0cmluZylcblxuLy8gRW5jb2RlZCBTdHJpbmc6IFwiICsgZW5jb2RlZFN0cmluZ1xuLy8gRGVjb2RlZCBTdHJpbmc6IFwiICsgZGVjb2RlZFN0cmluZyJ9LCB7Im5hbWUiOiAiRW5jb2RpbmcuRGF0YVJlZkJhc2U2NFVSTERlY29kZSAoU1RSSU5HKSIsICJyZXR1cm5fdHlwZSI6ICJEQVRBUkVGIiwgInJldHVybl9kZXNjIjogIlJldHVybnMgYSBkYXRhcmVmIHRoYXQgY29udGFpbnMgdGhlIGRhdGEgZGVjb2RlZCBmcm9tIGEgYmFzZTY0LVVSTC1lbmNvZGVkIHN0cmluZy4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiMS4gYFNUUklOR2A6IFRoZSBiYXNlNjQtVVJMLWVuY29kZWQgZGF0YSB0byBiZSBkZWNvZGVkLiIsICJkZXNjcmlwdGlvbiI6ICJEZWNvZGVzIGJhc2U2NC1VUkwtZW5jb2RlZCBkYXRhLiIsICJleGFtcGxlX2NvZGUiOiAiU1RSSU5HIGVuY29kZWRTdHJpbmcgPSBcIlUyOXRaVUpoYzJVMk5GVlNURVZ1WTI5a1pXUlRkSEpwYm1jXCIgIC8vIEV4YW1wbGUgQmFzZTY0VVJMIGVuY29kZWQgc3RyaW5nXG5TVFJJTkcgZGVjb2RlZFN0cmluZyA9IEVuY29kaW5nLkRhdGFSZWZCYXNlNjRVUkxEZWNvZGUoZW5jb2RlZFN0cmluZylcblxuLy8gRW5jb2RlZCBTdHJpbmc6IFwiICsgZW5jb2RlZFN0cmluZ1xuLy8gRGVjb2RlZCBTdHJpbmc6IFwiICsgZGVjb2RlZFN0cmluZyIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIlNUUklORyBlbmNvZGVkU3RyaW5nID0gXCJVMjl0WlVKaGMyVTJORlZTVEVWdVkyOWtaV1JUZEhKcGJtY1wiICAvLyBFeGFtcGxlIEJhc2U2NFVSTCBlbmNvZGVkIHN0cmluZ1xuU1RSSU5HIGRlY29kZWRTdHJpbmcgPSBFbmNvZGluZy5EYXRhUmVmQmFzZTY0VVJMRGVjb2RlKGVuY29kZWRTdHJpbmcpXG5cbi8vIEVuY29kZWQgU3RyaW5nOiBcIiArIGVuY29kZWRTdHJpbmdcbi8vIERlY29kZWQgU3RyaW5nOiBcIiArIGRlY29kZWRTdHJpbmcifSwgeyJuYW1lIjogIkVuY29kaW5nLkRhdGFSZWZIZXhEZWNvZGUgKFNUUklORykiLCAicmV0dXJuX3R5cGUiOiAiREFUQVJFRiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIGEgZGF0YXJlZiB2YWx1ZSBieSBkZWNvZGluZyB0aGUgcHJvdmlkZWQgaGV4IHN0cmluZy4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiMS4gYFNUUklOR2A6IFRoZSBoZXgtZW5jb2RlZCBpbnB1dCB0byBiZSBkZWNvZGVkLiIsICJkZXNjcmlwdGlvbiI6ICJEZWNvZGVzIGhleCBkaWdpdHMuIiwgImV4YW1wbGVfY29kZSI6ICJTVFJJTkcgaGV4RW5jb2RlZFN0cmluZyA9IFwiNDg2NTZjNmM2ZjIwNTc2ZjcyNmM2NFwiICAvLyBUaGlzIGlzIFwiSGVsbG8gV29ybGRcIiBpbiBoZXhcblNUUklORyBkZWNvZGVkU3RyaW5nID0gRW5jb2RpbmcuRGF0YVJlZkhleERlY29kZShoZXhFbmNvZGVkU3RyaW5nKVxuLy8gRGVjb2RlZCBTdHJpbmc6IFwiICsgZGVjb2RlZFN0cmluZ1xuXG5JbiB0aGlzIGV4YW1wbGU6XG4tIFdlIGluaXRpYWxpemUgYSBgU1RSSU5HYCB2YXJpYWJsZSBgaGV4RW5jb2RlZFN0cmluZ2Agd2l0aCBhIGhleGFkZWNpbWFsLWVuY29kZWQgc3RyaW5nLlxuLSBXZSB1c2UgdGhlIGBFbmNvZGluZy5EYXRhUmVmSGV4RGVjb2RlYCBmdW5jdGlvbiB0byBkZWNvZGUgdGhlIGhleGFkZWNpbWFsIHN0cmluZyBhbmQgc3RvcmUgdGhlIHJlc3VsdCBpbiB0aGUgYGRlY29kZWRTdHJpbmdgIHZhcmlhYmxlLlxuLSBGaW5hbGx5LCB3ZSBwcmludCB0aGUgZGVjb2RlZCBzdHJpbmcgdG8gdGhlIGNvbnNvbGUgdXNpbmcgdGhlIGBERUJVRygpYCBmdW5jdGlvbi5cblxuV2hlbiB0aGlzIHJvdXRpbmUgcnVucywgaXQgd2lsbCBvdXRwdXQ6XG5cbkRlY29kZWQgU3RyaW5nOiBIZWxsbyBXb3JsZCIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIlNUUklORyBoZXhFbmNvZGVkU3RyaW5nID0gXCI0ODY1NmM2YzZmMjA1NzZmNzI2YzY0XCIgIC8vIFRoaXMgaXMgXCJIZWxsbyBXb3JsZFwiIGluIGhleFxuU1RSSU5HIGRlY29kZWRTdHJpbmcgPSBFbmNvZGluZy5EYXRhUmVmSGV4RGVjb2RlKGhleEVuY29kZWRTdHJpbmcpXG4vLyBEZWNvZGVkIFN0cmluZzogXCIgKyBkZWNvZGVkU3RyaW5nXG5cbkluIHRoaXMgZXhhbXBsZTpcbi0gV2UgaW5pdGlhbGl6ZSBhIGBTVFJJTkdgIHZhcmlhYmxlIGBoZXhFbmNvZGVkU3RyaW5nYCB3aXRoIGEgaGV4YWRlY2ltYWwtZW5jb2RlZCBzdHJpbmcuXG4tIFdlIHVzZSB0aGUgYEVuY29kaW5nLkRhdGFSZWZIZXhEZWNvZGVgIGZ1bmN0aW9uIHRvIGRlY29kZSB0aGUgaGV4YWRlY2ltYWwgc3RyaW5nIGFuZCBzdG9yZSB0aGUgcmVzdWx0IGluIHRoZSBgZGVjb2RlZFN0cmluZ2AgdmFyaWFibGUuXG4tIEZpbmFsbHksIHdlIHByaW50IHRoZSBkZWNvZGVkIHN0cmluZyB0byB0aGUgY29uc29sZSB1c2luZyB0aGUgYERFQlVHKClgIGZ1bmN0aW9uLlxuXG5XaGVuIHRoaXMgcm91dGluZSBydW5zLCBpdCB3aWxsIG91dHB1dDpcblxuRGVjb2RlZCBTdHJpbmc6IEhlbGxvIFdvcmxkIn0sIHsibmFtZSI6ICJFbmNvZGluZy5IZXhEZWNvZGUgKFNUUklORykiLCAicmV0dXJuX3R5cGUiOiAiU1RSSU5HIiwgInJldHVybl9kZXNjIjogIlJldHVybnMgYSBzdHJpbmcgZGVjb2RlZCBmcm9tIHRoZSBpbnB1dCBoZXggc3RyaW5nLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICIxLiBgU1RSSU5HYDogVGhlIGhleC1lbmNvZGVkIFNUUklORyB0byBiZSBkZWNvZGVkLiIsICJkZXNjcmlwdGlvbiI6ICJEZWNvZGVzIGhleCBkaWdpdHMuIiwgImV4YW1wbGVfY29kZSI6ICJTVFJJTkcgaGV4U3RyaW5nID0gXCI0ODY1NmM2YzZmMjA1NzZmNzI2YzY0XCIgIC8vIEhleC1lbmNvZGVkIHN0cmluZyBmb3IgXCJIZWxsbyBXb3JsZFwiXG5TVFJJTkcgZGVjb2RlZFN0cmluZyA9IEVuY29kaW5nLkhleERlY29kZShoZXhTdHJpbmcpXG4vLyBEZWNvZGVkIFN0cmluZzogXCIgKyBkZWNvZGVkU3RyaW5nIiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiU1RSSU5HIGhleFN0cmluZyA9IFwiNDg2NTZjNmM2ZjIwNTc2ZjcyNmM2NFwiICAvLyBIZXgtZW5jb2RlZCBzdHJpbmcgZm9yIFwiSGVsbG8gV29ybGRcIlxuU1RSSU5HIGRlY29kZWRTdHJpbmcgPSBFbmNvZGluZy5IZXhEZWNvZGUoaGV4U3RyaW5nKVxuLy8gRGVjb2RlZCBTdHJpbmc6IFwiICsgZGVjb2RlZFN0cmluZyJ9LCB7Im5hbWUiOiAiRW5jb2RpbmcuSGV4RW5jb2RlIChEQVRBUkVGKSIsICJyZXR1cm5fdHlwZSI6ICJTVFJJTkciLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyBhIHN0cmluZyBvZiBoZXhhZGVjaW1hbCBkaWdpdHMgcmVwcmVzZW50aW5nIHRoZSBlbmNvZGVkIGlucHV0IGRhdGEuIiwgInBhcmFtZXRlcl9kZXNjIjogIjEuIGBEQVRBUkVGYDogVGhlIGRhdGEgcmVmZXJlbmNlIHRvIGJlIGVuY29kZWQgaW50byBoZXggZGlnaXRzLiIsICJkZXNjcmlwdGlvbiI6ICJFbmNvZGVzIGRhdGEgaW50byBoZXggZGlnaXRzLiIsICJleGFtcGxlX2NvZGUiOiAiLy8gQXNzdW1lIHdlIGhhdmUgYSBkYXRhIHJlZmVyZW5jZSwgZm9yIGV4YW1wbGUsIGEgc3RyaW5nXG5TVFJJTkcgZGF0YSA9IFwiSGVsbG8sIE1PV0dMSSFcIlxuXG4vLyBFbmNvZGUgdGhlIGRhdGEgaW50byBoZXhhZGVjaW1hbCBmb3JtYXRcblNUUklORyBoZXhFbmNvZGVkRGF0YSA9IEVuY29kaW5nLkhleEVuY29kZShkYXRhKVxuXG4vLyBIZXggRW5jb2RlZCBEYXRhOiBcbi8vICsgaGV4RW5jb2RlZERhdGEiLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICIvLyBBc3N1bWUgd2UgaGF2ZSBhIGRhdGEgcmVmZXJlbmNlLCBmb3IgZXhhbXBsZSwgYSBzdHJpbmdcblNUUklORyBkYXRhID0gXCJIZWxsbywgTU9XR0xJIVwiXG5cbi8vIEVuY29kZSB0aGUgZGF0YSBpbnRvIGhleGFkZWNpbWFsIGZvcm1hdFxuU1RSSU5HIGhleEVuY29kZWREYXRhID0gRW5jb2RpbmcuSGV4RW5jb2RlKGRhdGEpXG5cbi8vIEhleCBFbmNvZGVkIERhdGE6IFxuLy8gKyBoZXhFbmNvZGVkRGF0YSJ9LCB7Im5hbWUiOiAiRW5jb2RpbmcuSGV4RW5jb2RlIChTVFJJTkcpIiwgInJldHVybl90eXBlIjogIlNUUklORyIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIHRoZSBoZXhhZGVjaW1hbCByZXByZXNlbnRhdGlvbiBvZiB0aGUgaW5wdXQgc3RyaW5nLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICIxLiBgU1RSSU5HYDogVGhlIHRleHQgaW5wdXQgdG8gYmUgZW5jb2RlZCBpbnRvIGhleGFkZWNpbWFsIGRpZ2l0cy4iLCAiZGVzY3JpcHRpb24iOiAiRW5jb2RlcyBhIHN0cmluZyBpbnRvIGhleCBkaWdpdHMuIiwgImV4YW1wbGVfY29kZSI6ICJTVFJJTkcgb3JpZ2luYWxTdHJpbmcgPSBcIkhlbGxvLCBNT1dHTEkhXCJcblNUUklORyBoZXhFbmNvZGVkU3RyaW5nID0gRW5jb2RpbmcuSGV4RW5jb2RlKG9yaWdpbmFsU3RyaW5nKVxuLy8gT3JpZ2luYWwgU3RyaW5nOiBIZWxsbywgTU9XR0xJIVxuLy8gSGV4IEVuY29kZWQgU3RyaW5nOiBIZXggZW5jb2RlZCB2ZXJzaW9uIG9mIHRoZSBvcmlnaW5hbCBzdHJpbmciLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICJTVFJJTkcgb3JpZ2luYWxTdHJpbmcgPSBcIkhlbGxvLCBNT1dHTEkhXCJcblNUUklORyBoZXhFbmNvZGVkU3RyaW5nID0gRW5jb2RpbmcuSGV4RW5jb2RlKG9yaWdpbmFsU3RyaW5nKVxuLy8gT3JpZ2luYWwgU3RyaW5nOiBIZWxsbywgTU9XR0xJIVxuLy8gSGV4IEVuY29kZWQgU3RyaW5nOiBIZXggZW5jb2RlZCB2ZXJzaW9uIG9mIHRoZSBvcmlnaW5hbCBzdHJpbmcifSwgeyJuYW1lIjogIkVuY29kaW5nLlVSTERlY29kZSAoU1RSSU5HKSIsICJyZXR1cm5fdHlwZSI6ICJTVFJJTkciLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyBhIHN0cmluZyB0aGF0IGlzIHRoZSBkZWNvZGVkIHZlcnNpb24gb2YgdGhlIGdpdmVuIFVSTC1lbmNvZGVkIHN0cmluZy4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiMS4gYFNUUklOR2A6IFRoZSBVUkwtZW5jb2RlZCBTVFJJTkcgdGhhdCBuZWVkcyB0byBiZSBkZWNvZGVkLiIsICJkZXNjcmlwdGlvbiI6ICJEZWNvZGVzIGEgVVJMIGVuY29kaW5nIGFuZCByZXR1cm5zIHRoZSByZXN1bHRpbmcgc3RyaW5nLiIsICJleGFtcGxlX2NvZGUiOiAiU1RSSU5HIGVuY29kZWRVUkwgPSBcImh0dHBzJTNBJTJGJTJGd3d3LmV4YW1wbGUuY29tJTJGc2VhcmNoJTNGcSUzRHRlc3QlMjZsYW5nJTNEZW5cIlxuU1RSSU5HIGRlY29kZWRVUkwgPSBFbmNvZGluZy5VUkxEZWNvZGUoZW5jb2RlZFVSTClcbi8vIERlY29kZWQgVVJMOiBcIiArIGRlY29kZWRVUkwiLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICJTVFJJTkcgZW5jb2RlZFVSTCA9IFwiaHR0cHMlM0ElMkYlMkZ3d3cuZXhhbXBsZS5jb20lMkZzZWFyY2glM0ZxJTNEdGVzdCUyNmxhbmclM0RlblwiXG5TVFJJTkcgZGVjb2RlZFVSTCA9IEVuY29kaW5nLlVSTERlY29kZShlbmNvZGVkVVJMKVxuLy8gRGVjb2RlZCBVUkw6IFwiICsgZGVjb2RlZFVSTCJ9LCB7Im5hbWUiOiAiRW5jb2RpbmcuVVJMRW5jb2RlIChTVFJJTkcpIiwgInJldHVybl90eXBlIjogIlNUUklORyIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIHRoZSBpbnB1dCBzdHJpbmcgZW5jb2RlZCBpbiBhIGZvcm1hdCBzdWl0YWJsZSBmb3IgaW5jbHVzaW9uIGluIGEgVVJMLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICIxLiBgU1RSSU5HYDogVGhlIHRleHQgaW5wdXQgdG8gYmUgZW5jb2RlZCBhcyBhIFVSTC4iLCAiZGVzY3JpcHRpb24iOiAiRW5jb2RlcyBhIHN0cmluZyBhcyBhIFVSTCBhbmQgcmV0dXJucyBpdC4iLCAiZXhhbXBsZV9jb2RlIjogIlNUUklORyBvcmlnaW5hbFN0cmluZyA9IFwiSGVsbG8gV29ybGQhIFRoaXMgaXMgYSB0ZXN0LlwiXG5TVFJJTkcgZW5jb2RlZFN0cmluZyA9IEVuY29kaW5nLlVSTEVuY29kZShvcmlnaW5hbFN0cmluZylcbi8vIE9yaWdpbmFsIFN0cmluZzogSGVsbG8gV29ybGQhIFRoaXMgaXMgYSB0ZXN0LlxuLy8gRW5jb2RlZCBTdHJpbmc6IEhlbGxvJTIwV29ybGQlMjElMjBUaGlzJTIwaXMlMjBhJTIwdGVzdC4iLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICJTVFJJTkcgb3JpZ2luYWxTdHJpbmcgPSBcIkhlbGxvIFdvcmxkISBUaGlzIGlzIGEgdGVzdC5cIlxuU1RSSU5HIGVuY29kZWRTdHJpbmcgPSBFbmNvZGluZy5VUkxFbmNvZGUob3JpZ2luYWxTdHJpbmcpXG4vLyBPcmlnaW5hbCBTdHJpbmc6IEhlbGxvIFdvcmxkISBUaGlzIGlzIGEgdGVzdC5cbi8vIEVuY29kZWQgU3RyaW5nOiBIZWxsbyUyMFdvcmxkJTIxJTIwVGhpcyUyMGlzJTIwYSUyMHRlc3QuIn0sIHsibmFtZSI6ICJFbmRzV2l0aCAoU1RSSU5HLCBTVFJJTkcpIiwgInJldHVybl90eXBlIjogIkJPT0xFQU4iLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJuc2BUUlVFYGlmIHRoZSBmaXJzdCBgU1RSSU5HYCBlbmRzIHdpdGggdGhlIHNlY29uZCBgU1RSSU5HYCwgb3RoZXJ3aXNlYEZBTFNFYCIsICJwYXJhbWV0ZXJfZGVzYyI6ICIxLiBgU1RSSU5HYDogVGhlIG1haW4gU1RSSU5HIHRvIGNoZWNrLlxuMi4gYFNUUklOR2A6IFRoZSBTVFJJTkcgdG8gbWF0Y2ggYXQgdGhlIGVuZC4iLCAiZGVzY3JpcHRpb24iOiAiUmV0dXJucyBUUlVFIGlmIHRoZSBzdHJpbmcgZW5kcyB3aXRoIHRoZSBvdGhlciBzdHJpbmcuIiwgImV4YW1wbGVfY29kZSI6ICJNV0cuVVJMIGN1cnJlbnRVcmwgPSBNV0cuVXJsKClcblNUUklORyB1cmxTdHJpbmcgPSBjdXJyZW50VXJsLlRvU3RyaW5nKClcblxuSUYgRW5kc1dpdGgodXJsU3RyaW5nLCBcIi5leGVcIikgVEhFTiB7XG4gICAgLy8gRXhlY3V0YWJsZSBmaWxlcyBhcmUgbm90IGFsbG93ZWRcbiAgICBNV0cuQmxvY2soKVxufSBFTFNFIHtcbiAgICAvLyBVUkwgZG9lcyBub3QgZW5kIHdpdGggLmV4ZVxuICAgIE1XRy5BbGxvdygpXG59IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiTVdHLlVSTCBjdXJyZW50VXJsID0gTVdHLlVybCgpXG5TVFJJTkcgdXJsU3RyaW5nID0gY3VycmVudFVybC5Ub1N0cmluZygpXG5cbklGIEVuZHNXaXRoKHVybFN0cmluZywgXCIuZXhlXCIpIFRIRU4ge1xuICAgIC8vIEV4ZWN1dGFibGUgZmlsZXMgYXJlIG5vdCBhbGxvd2VkXG4gICAgTVdHLkJsb2NrKClcbn0gRUxTRSB7XG4gICAgLy8gVVJMIGRvZXMgbm90IGVuZCB3aXRoIC5leGVcbiAgICBNV0cuQWxsb3coKVxufSJ9LCB7Im5hbWUiOiAiRW5kc1dpdGhDYXNlSW5zZW5zaXRpdmUgKFNUUklORywgU1RSSU5HKSIsICJyZXR1cm5fdHlwZSI6ICJCT09MRUFOIiwgInJldHVybl9kZXNjIjogIlJldHVybnMgdHJ1ZSBpZiB0aGUgZmlyc3Qgc3RyaW5nIGVuZHMgd2l0aCB0aGUgc2Vjb25kIHN0cmluZywgaWdub3JpbmcgY2FzZSBkaWZmZXJlbmNlcy4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiMS4gYFNUUklOR2A6IFRoZSBzdHJpbmcgdG8gYmUgY2hlY2tlZCBpZiBpdCBlbmRzIHdpdGggdGhlIHNlY29uZCBzdHJpbmcsIGNhc2UtaW5zZW5zaXRpdmVseS5cbjIuIGBTVFJJTkdgOiBUaGUgc3RyaW5nIHRvIGNoZWNrIGlmIGl0IGlzIHRoZSBlbmRpbmcgb2YgdGhlIGZpcnN0IHN0cmluZywgY2FzZS1pbnNlbnNpdGl2ZWx5LiIsICJkZXNjcmlwdGlvbiI6ICJSZXR1cm5zIHRydWUgaWYgdGhlIHN0cmluZyBlbmRzIChjYXNlIGluc2Vuc2l0aXZlKSB3aXRoIHRoZSBvdGhlciBzdHJpbmcuIiwgImV4YW1wbGVfY29kZSI6ICJNV0cuVVJMIGN1cnJlbnRVcmwgPSBNV0cuVXJsKClcblNUUklORyB1cmxTdHJpbmcgPSBjdXJyZW50VXJsLlRvU3RyaW5nKClcblxuSUYgRW5kc1dpdGhDYXNlSW5zZW5zaXRpdmUodXJsU3RyaW5nLCBcIi5qcGdcIikgVEhFTiB7XG4gICAgLy8gVGhlIFVSTCBlbmRzIHdpdGggLmpwZyAoY2FzZSBpbnNlbnNpdGl2ZSlcbn0gRUxTRSB7XG4gICAgLy8gVGhlIFVSTCBkb2VzIG5vdCBlbmQgd2l0aCAuanBnIChjYXNlIGluc2Vuc2l0aXZlKVxufSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIk1XRy5VUkwgY3VycmVudFVybCA9IE1XRy5VcmwoKVxuU1RSSU5HIHVybFN0cmluZyA9IGN1cnJlbnRVcmwuVG9TdHJpbmcoKVxuXG5JRiBFbmRzV2l0aENhc2VJbnNlbnNpdGl2ZSh1cmxTdHJpbmcsIFwiLmpwZ1wiKSBUSEVOIHtcbiAgICAvLyBUaGUgVVJMIGVuZHMgd2l0aCAuanBnIChjYXNlIGluc2Vuc2l0aXZlKVxufSBFTFNFIHtcbiAgICAvLyBUaGUgVVJMIGRvZXMgbm90IGVuZCB3aXRoIC5qcGcgKGNhc2UgaW5zZW5zaXRpdmUpXG59In0sIHsibmFtZSI6ICJFcXVhbHNDYXNlSW5zZW5zaXRpdmUgKFNUUklORywgU1RSSU5HKSIsICJyZXR1cm5fdHlwZSI6ICJCT09MRUFOIiwgInJldHVybl9kZXNjIjogIlJldHVybnMgdHJ1ZSBpZiB0aGUgdHdvIGlucHV0IHN0cmluZ3MgYXJlIGVxdWFsLCBpZ25vcmluZyBjYXNlIGRpZmZlcmVuY2VzLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICIxLiBgU1RSSU5HYDogVGhlIGZpcnN0IHN0cmluZyB0byBjb21wYXJlIGZvciBjYXNlLWluc2Vuc2l0aXZlIGVxdWFsaXR5LlxuMi4gYFNUUklOR2A6IFRoZSBzZWNvbmQgc3RyaW5nIHRvIGNvbXBhcmUgZm9yIGNhc2UtaW5zZW5zaXRpdmUgZXF1YWxpdHkuIiwgImRlc2NyaXB0aW9uIjogIlJldHVybnMgdHJ1ZSBpZiB0aGUgc3RyaW5ncyBhcmUgZXF1YWwgKGNhc2UgaW5zZW5zaXRpdmUpLiIsICJleGFtcGxlX2NvZGUiOiAiU1RSSU5HIHN0cmluZzEgPSBcIkhlbGxvV29ybGRcIlxuU1RSSU5HIHN0cmluZzIgPSBcImhlbGxvd29ybGRcIlxuXG5JRiBFcXVhbHNDYXNlSW5zZW5zaXRpdmUoc3RyaW5nMSwgc3RyaW5nMikgVEhFTiB7XG4gICAgLy8gVGhlIHN0cmluZ3MgYXJlIGVxdWFsIChjYXNlIGluc2Vuc2l0aXZlKS5cbn0gRUxTRSB7XG4gICAgLy8gVGhlIHN0cmluZ3MgYXJlIG5vdCBlcXVhbC5cbn0iLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICJTVFJJTkcgc3RyaW5nMSA9IFwiSGVsbG9Xb3JsZFwiXG5TVFJJTkcgc3RyaW5nMiA9IFwiaGVsbG93b3JsZFwiXG5cbklGIEVxdWFsc0Nhc2VJbnNlbnNpdGl2ZShzdHJpbmcxLCBzdHJpbmcyKSBUSEVOIHtcbiAgICAvLyBUaGUgc3RyaW5ncyBhcmUgZXF1YWwgKGNhc2UgaW5zZW5zaXRpdmUpLlxufSBFTFNFIHtcbiAgICAvLyBUaGUgc3RyaW5ncyBhcmUgbm90IGVxdWFsLlxufSJ9LCB7Im5hbWUiOiAiRXJhc2UgKFNUUklORywgTlVNQkVSKSIsICJyZXR1cm5fdHlwZSI6ICJTVFJJTkciLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyB0aGUgc3Vic3RyaW5nIGZyb20gdGhlIHN0YXJ0IG9mIHRoZSBvcmlnaW5hbCBzdHJpbmcgdXAgdG8sIGJ1dCBub3QgaW5jbHVkaW5nLCB0aGUgc3BlY2lmaWVkIHBvc2l0aW9uLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICIxLiBgU1RSSU5HYDogQSBTVFJJTkcgZnJvbSB3aGljaCBjaGFyYWN0ZXJzIHdpbGwgYmUgZXJhc2VkLlxuMi4gYE5VTUJFUmA6IEEgTlVNQkVSIGluZGljYXRpbmcgdGhlIHN0YXJ0aW5nIHBvc2l0aW9uIGZvciBlcmFzdXJlLiIsICJkZXNjcmlwdGlvbiI6ICJFcmFzZXMgZnJvbSB0aGUgZ2l2ZW4gcG9zaXRpb24gdXAgdG8gdGhlIGVuZCBvZiB0aGUgc3RyaW5nLiIsICJleGFtcGxlX2NvZGUiOiAiU1RSSU5HIG9yaWdpbmFsU3RyaW5nID0gXCJIZWxsbywgV29ybGQhXCJcbk5VTUJFUiBwb3NpdGlvbiA9IDVcblxuU1RSSU5HIHJlc3VsdFN0cmluZyA9IEVyYXNlKG9yaWdpbmFsU3RyaW5nLCBwb3NpdGlvbilcblxuLy8gT3JpZ2luYWwgU3RyaW5nOiBcIiArIG9yaWdpbmFsU3RyaW5nXG4vLyBQb3NpdGlvbjogXCIgKyBwb3NpdGlvblxuLy8gUmVzdWx0aW5nIFN0cmluZzogXCIgKyByZXN1bHRTdHJpbmciLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICJTVFJJTkcgb3JpZ2luYWxTdHJpbmcgPSBcIkhlbGxvLCBXb3JsZCFcIlxuTlVNQkVSIHBvc2l0aW9uID0gNVxuXG5TVFJJTkcgcmVzdWx0U3RyaW5nID0gRXJhc2Uob3JpZ2luYWxTdHJpbmcsIHBvc2l0aW9uKVxuXG4vLyBPcmlnaW5hbCBTdHJpbmc6IFwiICsgb3JpZ2luYWxTdHJpbmdcbi8vIFBvc2l0aW9uOiBcIiArIHBvc2l0aW9uXG4vLyBSZXN1bHRpbmcgU3RyaW5nOiBcIiArIHJlc3VsdFN0cmluZyJ9LCB7Im5hbWUiOiAiRXJhc2UgKFNUUklORywgTlVNQkVSLCBOVU1CRVIpIiwgInJldHVybl90eXBlIjogIlNUUklORyIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIHRoZSBtb2RpZmllZCBzdHJpbmcgYWZ0ZXIgZXJhc2luZyBhIHNwZWNpZmllZCBudW1iZXIgb2YgY2hhcmFjdGVycyBmcm9tIHRoZSBnaXZlbiBwb3NpdGlvbi4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiMS4gYFNUUklOR2A6IFRoZSBpbnB1dCBzdHJpbmcuXG4yLiBgTlVNQkVSYDogVGhlIHN0YXJ0aW5nIHBvc2l0aW9uLlxuMy4gYE5VTUJFUmA6IFRoZSBudW1iZXIgb2YgY2hhcmFjdGVycyB0byBlcmFzZSAobmVnYXRpdmUgdG8gZXJhc2UgdXAgdG8gdGhlIGVuZCkuIiwgImRlc2NyaXB0aW9uIjogIkVyYXNlcyBmcm9tIGdpdmVuIHBvc2l0aW9uIHRoZSBnaXZlbiBudW1iZXIgb2YgY2hhcmFjdGVycyAob3IgdXAgdG8gdGhlIGVuZCBpZiBsZW5ndGggaXMgbmVnYXRpdmUpIGFuZCByZXR1cm5zIHRoZSByZXN1bHQuIiwgImV4YW1wbGVfY29kZSI6ICJTVFJJTkcgb3JpZ2luYWxTdHJpbmcgPSBcIkhlbGxvLCBXb3JsZCFcIlxuTlVNQkVSIHN0YXJ0UG9zaXRpb24gPSA3XG5OVU1CRVIgbGVuZ3RoVG9SZW1vdmUgPSA1XG5cbi8vIFVzaW5nIHRoZSBFcmFzZSBmdW5jdGlvbiB0byByZW1vdmUgXCJXb3JsZFwiIGZyb20gdGhlIG9yaWdpbmFsIHN0cmluZ1xuU1RSSU5HIG1vZGlmaWVkU3RyaW5nID0gRXJhc2Uob3JpZ2luYWxTdHJpbmcsIHN0YXJ0UG9zaXRpb24sIGxlbmd0aFRvUmVtb3ZlKVxuXG4vLyBQcmludCB0aGUgbW9kaWZpZWQgc3RyaW5nIHRvIHRoZSBjb25zb2xlXG4vLyBPdXRwdXQgd2lsbCBiZSBcIkhlbGxvLCAhXCIiLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICJTVFJJTkcgb3JpZ2luYWxTdHJpbmcgPSBcIkhlbGxvLCBXb3JsZCFcIlxuTlVNQkVSIHN0YXJ0UG9zaXRpb24gPSA3XG5OVU1CRVIgbGVuZ3RoVG9SZW1vdmUgPSA1XG5cbi8vIFVzaW5nIHRoZSBFcmFzZSBmdW5jdGlvbiB0byByZW1vdmUgXCJXb3JsZFwiIGZyb20gdGhlIG9yaWdpbmFsIHN0cmluZ1xuU1RSSU5HIG1vZGlmaWVkU3RyaW5nID0gRXJhc2Uob3JpZ2luYWxTdHJpbmcsIHN0YXJ0UG9zaXRpb24sIGxlbmd0aFRvUmVtb3ZlKVxuXG4vLyBQcmludCB0aGUgbW9kaWZpZWQgc3RyaW5nIHRvIHRoZSBjb25zb2xlXG4vLyBPdXRwdXQgd2lsbCBiZSBcIkhlbGxvLCAhXCIifSwgeyJuYW1lIjogIkVyYXNlQWxsIChTVFJJTkcsIFNUUklORykiLCAicmV0dXJuX3R5cGUiOiAiU1RSSU5HIiwgInJldHVybl9kZXNjIjogIlJldHVybnMgdGhlIG9yaWdpbmFsIHN0cmluZyB3aXRoIGFsbCBvY2N1cnJlbmNlcyBvZiB0aGUgc3BlY2lmaWVkIHN1YnN0cmluZyByZW1vdmVkLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICIxLiBgU1RSSU5HYDogVGhlIG1haW4gc3RyaW5nIHRvIHNlYXJjaCBpbi5cbjIuIGBTVFJJTkdgOiBUaGUgc3Vic3RyaW5nIHRvIGJlIGVyYXNlZC4iLCAiZGVzY3JpcHRpb24iOiAiRXJhc2VzIGFsbCBvY2N1cnJlbmNlcyBvZiBhIHN1YnN0cmluZy4iLCAiZXhhbXBsZV9jb2RlIjogIlNUUklORyBvcmlnaW5hbFN0cmluZyA9IFwiSGVsbG8sIHRoaXMgaXMgYSB0ZXN0IHN0cmluZy4gVGhpcyBzdHJpbmcgaXMgZm9yIHRlc3RpbmcuXCJcblNUUklORyBzdWJTdHJpbmdUb1JlbW92ZSA9IFwiaXNcIlxuXG5TVFJJTkcgcmVzdWx0U3RyaW5nID0gRXJhc2VBbGwob3JpZ2luYWxTdHJpbmcsIHN1YlN0cmluZ1RvUmVtb3ZlKVxuXG4vLyBPcmlnaW5hbCBTdHJpbmc6IFwiICsgb3JpZ2luYWxTdHJpbmdcbi8vIFN1YlN0cmluZyB0byBSZW1vdmU6IFwiICsgc3ViU3RyaW5nVG9SZW1vdmVcbi8vIFJlc3VsdGluZyBTdHJpbmc6IFwiICsgcmVzdWx0U3RyaW5nIiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiU1RSSU5HIG9yaWdpbmFsU3RyaW5nID0gXCJIZWxsbywgdGhpcyBpcyBhIHRlc3Qgc3RyaW5nLiBUaGlzIHN0cmluZyBpcyBmb3IgdGVzdGluZy5cIlxuU1RSSU5HIHN1YlN0cmluZ1RvUmVtb3ZlID0gXCJpc1wiXG5cblNUUklORyByZXN1bHRTdHJpbmcgPSBFcmFzZUFsbChvcmlnaW5hbFN0cmluZywgc3ViU3RyaW5nVG9SZW1vdmUpXG5cbi8vIE9yaWdpbmFsIFN0cmluZzogXCIgKyBvcmlnaW5hbFN0cmluZ1xuLy8gU3ViU3RyaW5nIHRvIFJlbW92ZTogXCIgKyBzdWJTdHJpbmdUb1JlbW92ZVxuLy8gUmVzdWx0aW5nIFN0cmluZzogXCIgKyByZXN1bHRTdHJpbmcifSwgeyJuYW1lIjogIkVzY2FwZUhUTUwgKFNUUklORykiLCAicmV0dXJuX3R5cGUiOiAiU1RSSU5HIiwgInJldHVybl9kZXNjIjogIlJldHVybnMgYSBzdHJpbmcgd2l0aCBIVE1MIHNwZWNpYWwgY2hhcmFjdGVycyBlbmNvZGVkIHRvIHByZXZlbnQgSFRNTCBpbmplY3Rpb24uIiwgInBhcmFtZXRlcl9kZXNjIjogIjEuIGBTVFJJTkdgOiBUaGUgaW5wdXQgdGV4dCB0byBiZSBlbmNvZGVkIGludG8gc2FmZSBIVE1MLiIsICJkZXNjcmlwdGlvbiI6ICJFbmNvZGVzIGEgZ2l2ZW4gc3RyaW5nIGludG8gc2FmZSBIVE1MLiIsICJleGFtcGxlX2NvZGUiOiAiU1RSSU5HIGlucHV0U3RyaW5nID0gXCI8c2NyaXB0PmFsZXJ0KCdIZWxsbywgd29ybGQhJyk7PC9zY3JpcHQ+XCI7XG5TVFJJTkcgZXNjYXBlZFN0cmluZyA9IEVzY2FwZUhUTUwoaW5wdXRTdHJpbmcpO1xuLy8gT3JpZ2luYWwgU3RyaW5nOiA8c2NyaXB0PmFsZXJ0KCdIZWxsbywgd29ybGQhJyk7PC9zY3JpcHQ+XG4vLyBFc2NhcGVkIFN0cmluZzogJmx0O3NjcmlwdCZndDthbGVydCgnSGVsbG8sIHdvcmxkIScpOyZsdDsvc2NyaXB0Jmd0OyIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIlNUUklORyBpbnB1dFN0cmluZyA9IFwiPHNjcmlwdD5hbGVydCgnSGVsbG8sIHdvcmxkIScpOzwvc2NyaXB0PlwiO1xuU1RSSU5HIGVzY2FwZWRTdHJpbmcgPSBFc2NhcGVIVE1MKGlucHV0U3RyaW5nKTtcbi8vIE9yaWdpbmFsIFN0cmluZzogPHNjcmlwdD5hbGVydCgnSGVsbG8sIHdvcmxkIScpOzwvc2NyaXB0PlxuLy8gRXNjYXBlZCBTdHJpbmc6ICZsdDtzY3JpcHQmZ3Q7YWxlcnQoJ0hlbGxvLCB3b3JsZCEnKTsmbHQ7L3NjcmlwdCZndDsifSwgeyJuYW1lIjogIkVzY2FwZUpTT04gKFNUUklORykiLCAicmV0dXJuX3R5cGUiOiAiU1RSSU5HIiwgInJldHVybl9kZXNjIjogIlJldHVybnMgYSBzdHJpbmcgd2hlcmUgc3BlY2lhbCBjaGFyYWN0ZXJzIGluIHRoZSBpbnB1dCBKU09OIHN0cmluZyBhcmUgZW5jb2RlZCBmb3Igc2FmZSBpbmNsdXNpb24gaW4gb3V0cHV0LiIsICJwYXJhbWV0ZXJfZGVzYyI6ICIxLiBgU1RSSU5HYDogQSBKU09OLWVuY29kZWQgU1RSSU5HIHRvIGJlIGVzY2FwZWQuIiwgImRlc2NyaXB0aW9uIjogIkVuY29kZXMgYSBnaXZlbiBKU09OIHN0cmluZy4iLCAiZXhhbXBsZV9jb2RlIjogIlNUUklORyBqc29uU3RyaW5nID0gXCJ7XFxcImtleVxcXCI6IFxcXCJ2YWx1ZSB3aXRoIHNwZWNpYWwgY2hhcmFjdGVyczogXFxcXFxcXCIgXFxcXG4gXFxcXHRcXFwifVwiXG5TVFJJTkcgZXNjYXBlZEpzb25TdHJpbmcgPSBFc2NhcGVKU09OKGpzb25TdHJpbmcpXG4vLyBPcmlnaW5hbCBKU09OIFN0cmluZzogXCIgKyBqc29uU3RyaW5nXG4vLyBFc2NhcGVkIEpTT04gU3RyaW5nOiBcIiArIGVzY2FwZWRKc29uU3RyaW5nIiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiU1RSSU5HIGpzb25TdHJpbmcgPSBcIntcImtleVwiOiBcInZhbHVlIHdpdGggc3BlY2lhbCBjaGFyYWN0ZXJzOiBcXFwiIFxcbiBcXHRcIn1cIlxuU1RSSU5HIGVzY2FwZWRKc29uU3RyaW5nID0gRXNjYXBlSlNPTihqc29uU3RyaW5nKVxuLy8gT3JpZ2luYWwgSlNPTiBTdHJpbmc6IFwiICsganNvblN0cmluZ1xuLy8gRXNjYXBlZCBKU09OIFN0cmluZzogXCIgKyBlc2NhcGVkSnNvblN0cmluZyJ9LCB7Im5hbWUiOiAiRmluZCAoUmVnRXhKU2kuTGlzdCwgUmVnRXhKU2kpIiwgInJldHVybl90eXBlIjogIk5VTUJFUiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIHRoZSBwb3NpdGlvbiBvZiB0aGUgcmVndWxhciBleHByZXNzaW9uIGluIHRoZSBsaXN0LCBvciAtMSBpZiBub3QgZm91bmQuIiwgInBhcmFtZXRlcl9kZXNjIjogIjEuIGBSZWdFeEpTaS5MaXN0YDogQSBsaXN0IG9mIHJlZ3VsYXIgZXhwcmVzc2lvbnMgdG8gYmUgc2VhcmNoZWQuXG4yLiBgUmVnRXhKU2lgOiBUaGUgcmVndWxhciBleHByZXNzaW9uIHBhdHRlcm4gdG8gc2VhcmNoIGZvci4iLCAiZGVzY3JpcHRpb24iOiAiU2VhcmNoZXMgYSByZWd1bGFyIGV4cHJlc3Npb24gYW5kIHJldHVybnMgdGhlIHBvc2l0aW9uIG9yIC0xLiIsICJleGFtcGxlX2NvZGUiOiAiLy8gSW5pdGlhbGl6ZSB0aGUgbGlzdCBvZiByZWd1bGFyIGV4cHJlc3Npb25zXG5SZWdFeEpTaS5MaXN0IHJlZ0V4TGlzdCA9IFtcImV4YW1wbGVfbGlzdFwiXVxuXG4vLyBUaGUgcmVndWxhciBleHByZXNzaW9uIHRvIGZpbmRcblJlZ0V4SlNpIHRhcmdldFJlZ0V4ID0gUmVnRXhKU2koXCJ0YXJnZXRfcGF0dGVyblwiKVxuXG4vLyBWYXJpYWJsZSB0byBzdG9yZSBpZiB0aGUgdGFyZ2V0IHJlZ2V4IGlzIGZvdW5kXG5CT09MRUFOIGZvdW5kID0gRkFMU0VcblxuLy8gSXRlcmF0ZSB0aHJvdWdoIHRoZSBsaXN0IHRvIGZpbmQgdGhlIHRhcmdldCByZWdleFxuRk9SIEVBQ0ggcmVnRXggSU4gcmVnRXhMaXN0IHtcbiAgICBJRiByZWdFeCA9PSB0YXJnZXRSZWdFeCBUSEVOIHtcbiAgICAgICAgZm91bmQgPSBUUlVFXG4gICAgICAgIEJSRUFLXG4gICAgfVxufVxuXG4vLyBPdXRwdXQgdGhlIHJlc3VsdFxuSUYgZm91bmQgVEhFTiB7XG4gICAgLy8gVGFyZ2V0IHJlZ3VsYXIgZXhwcmVzc2lvbiBmb3VuZCBpbiB0aGUgbGlzdC5cbn0gRUxTRSB7XG4gICAgLy8gVGFyZ2V0IHJlZ3VsYXIgZXhwcmVzc2lvbiBub3QgZm91bmQgaW4gdGhlIGxpc3QuXG59IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiLy8gSW5pdGlhbGl6ZSB0aGUgbGlzdCBvZiByZWd1bGFyIGV4cHJlc3Npb25zXG5SZWdFeEpTaS5MaXN0IHJlZ0V4TGlzdCA9IFtcImV4YW1wbGVfbGlzdFwiXVxuXG4vLyBUaGUgcmVndWxhciBleHByZXNzaW9uIHRvIGZpbmRcblJlZ0V4SlNpIHRhcmdldFJlZ0V4ID0gUmVnRXhKU2koXCJ0YXJnZXRfcGF0dGVyblwiKVxuXG4vLyBWYXJpYWJsZSB0byBzdG9yZSBpZiB0aGUgdGFyZ2V0IHJlZ2V4IGlzIGZvdW5kXG5CT09MRUFOIGZvdW5kID0gRkFMU0VcblxuLy8gSXRlcmF0ZSB0aHJvdWdoIHRoZSBsaXN0IHRvIGZpbmQgdGhlIHRhcmdldCByZWdleFxuRk9SIEVBQ0ggcmVnRXggSU4gcmVnRXhMaXN0IHtcbiAgICBJRiByZWdFeCA9PSB0YXJnZXRSZWdFeCBUSEVOIHtcbiAgICAgICAgZm91bmQgPSBUUlVFXG4gICAgICAgIEJSRUFLXG4gICAgfVxufVxuXG4vLyBPdXRwdXQgdGhlIHJlc3VsdFxuSUYgZm91bmQgVEhFTiB7XG4gICAgLy8gVGFyZ2V0IHJlZ3VsYXIgZXhwcmVzc2lvbiBmb3VuZCBpbiB0aGUgbGlzdC5cbn0gRUxTRSB7XG4gICAgLy8gVGFyZ2V0IHJlZ3VsYXIgZXhwcmVzc2lvbiBub3QgZm91bmQgaW4gdGhlIGxpc3QuXG59In0sIHsibmFtZSI6ICJGaW5kIChTVFJJTkcsIE5VTUJFUiwgU1RSSU5HKSIsICJyZXR1cm5fdHlwZSI6ICJOVU1CRVIiLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyB0aGUgc3RhcnRpbmcgcG9zaXRpb24gb2YgdGhlIHNlY29uZCBzdHJpbmcgd2l0aGluIHRoZSBmaXJzdCBzdHJpbmcsIGJlZ2lubmluZyBhdCB0aGUgZ2l2ZW4gb2Zmc2V0LCBvciAtMSBpZiBub3QgZm91bmQuIiwgInBhcmFtZXRlcl9kZXNjIjogIiIsICJkZXNjcmlwdGlvbiI6ICJTZWFyY2hlcyAybmQgc3RyaW5nIGluIDFzdCwgc3RhcnRpbmcgYXQgZ2l2ZW4gb2Zmc2V0IGFuZCByZXR1cm5zIHRoZSBzdGFydCBwb3NpdGlvbiBvciAtMS4iLCAiZXhhbXBsZV9jb2RlIjogIlNUUklORyB0ZXh0ID0gXCJUaGUgcXVpY2sgYnJvd24gZm94IGp1bXBzIG92ZXIgdGhlIGxhenkgZG9nXCJcblNUUklORyBzZWFyY2hTdHJpbmcgPSBcImZveFwiXG5OVU1CRVIgc3RhcnRQb3NpdGlvbiA9IDBcblxuTlVNQkVSIGZvdW5kUG9zaXRpb24gPSBGaW5kKHRleHQsIHN0YXJ0UG9zaXRpb24sIHNlYXJjaFN0cmluZylcblxuSUYgZm91bmRQb3NpdGlvbiAhPSAtMSBUSEVOIHtcbiAgICAvLyBGb3VuZCAnc2VhcmNoU3RyaW5nJyBhdCBwb3NpdGlvbjogZm91bmRQb3NpdGlvblxufSBFTFNFIHtcbiAgICAvLyBEaWQgbm90IGZpbmQgJ3NlYXJjaFN0cmluZycgaW4gdGhlIHN0cmluZy5cbn0iLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICJTVFJJTkcgdGV4dCA9IFwiVGhlIHF1aWNrIGJyb3duIGZveCBqdW1wcyBvdmVyIHRoZSBsYXp5IGRvZ1wiXG5TVFJJTkcgc2VhcmNoU3RyaW5nID0gXCJmb3hcIlxuTlVNQkVSIHN0YXJ0UG9zaXRpb24gPSAwXG5cbk5VTUJFUiBmb3VuZFBvc2l0aW9uID0gRmluZCh0ZXh0LCBzdGFydFBvc2l0aW9uLCBzZWFyY2hTdHJpbmcpXG5cbklGIGZvdW5kUG9zaXRpb24gIT0gLTEgVEhFTiB7XG4gICAgLy8gRm91bmQgJ3NlYXJjaFN0cmluZycgYXQgcG9zaXRpb246IGZvdW5kUG9zaXRpb25cbn0gRUxTRSB7XG4gICAgLy8gRGlkIG5vdCBmaW5kICdzZWFyY2hTdHJpbmcnIGluIHRoZSBzdHJpbmcuXG59In0sIHsibmFtZSI6ICJGaW5kIChTVFJJTkcsIFNUUklORykiLCAicmV0dXJuX3R5cGUiOiAiTlVNQkVSIiwgInJldHVybl9kZXNjIjogIlJldHVybnMgdGhlIHN0YXJ0aW5nIGluZGV4IG9mIHRoZSBzZWNvbmQgc3RyaW5nIHdpdGhpbiB0aGUgZmlyc3Qgc3RyaW5nLCBvciAtMSBpZiBub3QgZm91bmQuIiwgInBhcmFtZXRlcl9kZXNjIjogIiIsICJkZXNjcmlwdGlvbiI6ICJTZWFyY2hlcyB0aGUgMm5kIHN0cmluZyBpbiB0aGUgMXN0IGFuZCByZXR1cm5zIHRoZSBzdGFydCBwb3NpdGlvbiBvciAtMS4iLCAiZXhhbXBsZV9jb2RlIjogIlNUUklORyBtYWluU3RyaW5nID0gXCJIZWxsbywgd29ybGQhXCJcblNUUklORyBzZWFyY2hTdHJpbmcgPSBcIndvcmxkXCJcblxuTlVNQkVSIHBvc2l0aW9uID0gUmV2ZXJzZUZpbmQobWFpblN0cmluZywgc2VhcmNoU3RyaW5nKVxuXG5JRiBwb3NpdGlvbiAhPSAtMSBUSEVOIHtcbiAgICAvLyBUaGUgcG9zaXRpb24gb2YgJ3NlYXJjaFN0cmluZycgaW4gJ21haW5TdHJpbmcnIGlzOiBwb3NpdGlvblxufSBFTFNFIHtcbiAgICAvLyAnc2VhcmNoU3RyaW5nJyBub3QgZm91bmQgaW4gJ21haW5TdHJpbmcnXG59IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiU1RSSU5HIG1haW5TdHJpbmcgPSBcIkhlbGxvLCB3b3JsZCFcIlxuU1RSSU5HIHNlYXJjaFN0cmluZyA9IFwid29ybGRcIlxuXG5OVU1CRVIgcG9zaXRpb24gPSBSZXZlcnNlRmluZChtYWluU3RyaW5nLCBzZWFyY2hTdHJpbmcpXG5cbklGIHBvc2l0aW9uICE9IC0xIFRIRU4ge1xuICAgIC8vIFRoZSBwb3NpdGlvbiBvZiAnc2VhcmNoU3RyaW5nJyBpbiAnbWFpblN0cmluZycgaXM6IHBvc2l0aW9uXG59IEVMU0Uge1xuICAgIC8vICdzZWFyY2hTdHJpbmcnIG5vdCBmb3VuZCBpbiAnbWFpblN0cmluZydcbn0ifSwgeyJuYW1lIjogIkZpbmQgKFZFQ1RPUjxTVFJJTkc+LCBSZWdFeEpTaSkiLCAicmV0dXJuX3R5cGUiOiAiTlVNQkVSIiwgInJldHVybl9kZXNjIjogIlJldHVybnMgdGhlIGluZGV4IG9mIHRoZSBmaXJzdCBzdHJpbmcgaW4gdGhlIHZlY3RvciB0aGF0IG1hdGNoZXMgdGhlIHJlZ3VsYXIgZXhwcmVzc2lvbiwgb3IgLTEgaWYgbm8gbWF0Y2ggaXMgZm91bmQuIiwgInBhcmFtZXRlcl9kZXNjIjogIlZFQ1RPUjogQSBsaXN0IG9mIFNUUklOR3MgdG8gc2VhcmNoIHdpdGhpbi4gIFJlZ0V4SlNpOiBUaGUgcmVndWxhciBleHByZXNzaW9uIHBhdHRlcm4gdG8gbWF0Y2ggYWdhaW5zdCB0aGUgU1RSSU5HcyBpbiBWRUNUT1IuIiwgImRlc2NyaXB0aW9uIjogIlJldHVybnMgdGhlIGluZGV4IG9mIHRoZSBmaXJzdCBtYXRjaGluZyBzdHJpbmcgZnJvbSB0aGUgc3RyaW5nIGxpc3QgKC0xIGluIGNhc2Ugb2Ygbm90IGJlaW5nIGZvdW5kKS4iLCAiZXhhbXBsZV9jb2RlIjogIi8vIERlZmluZSBhIFZFQ1RPUiBvZiBTVFJJTkdzXG5WRUNUT1I8U1RSSU5HPiBzdHJpbmdMaXN0ID0gXCJhcHBsZVwiLCBcImJhbmFuYVwiLCBcImNoZXJyeVwiLCBcImRhdGVcIiwgXCJlbGRlcmJlcnJ5XCJcblxuLy8gRGVmaW5lIGEgcmVndWxhciBleHByZXNzaW9uIHRvIHNlYXJjaCBmb3IgYSBTVFJJTkcgdGhhdCBjb250YWlucyB0aGUgbGV0dGVyICdhJ1xuUmVnRXhKU2kgcmVnZXggPSBSZWdFeEpTaShcImFcIilcblxuLy8gVXNlIHRoZSBGaW5kIGZ1bmN0aW9uIHRvIGdldCB0aGUgaW5kZXggb2YgdGhlIGZpcnN0IFNUUklORyB0aGF0IG1hdGNoZXMgdGhlIHJlZ2V4XG5OVU1CRVIgaW5kZXggPSBGaW5kKHN0cmluZ0xpc3QsIHJlZ2V4KVxuXG4vLyBUaGUgaW5kZXggb2YgdGhlIGZpcnN0IG1hdGNoIGlzOiBcIiArIGluZGV4IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiLy8gRGVmaW5lIGEgVkVDVE9SIG9mIFNUUklOR3NcblZFQ1RPUjxTVFJJTkc+IHN0cmluZ0xpc3QgPSBcImFwcGxlXCIsIFwiYmFuYW5hXCIsIFwiY2hlcnJ5XCIsIFwiZGF0ZVwiLCBcImVsZGVyYmVycnlcIlxuXG4vLyBEZWZpbmUgYSByZWd1bGFyIGV4cHJlc3Npb24gdG8gc2VhcmNoIGZvciBhIFNUUklORyB0aGF0IGNvbnRhaW5zIHRoZSBsZXR0ZXIgJ2EnXG5SZWdFeEpTaSByZWdleCA9IFJlZ0V4SlNpKFwiYVwiKVxuXG4vLyBVc2UgdGhlIEZpbmQgZnVuY3Rpb24gdG8gZ2V0IHRoZSBpbmRleCBvZiB0aGUgZmlyc3QgU1RSSU5HIHRoYXQgbWF0Y2hlcyB0aGUgcmVnZXhcbk5VTUJFUiBpbmRleCA9IEZpbmQoc3RyaW5nTGlzdCwgcmVnZXgpXG5cbi8vIFRoZSBpbmRleCBvZiB0aGUgZmlyc3QgbWF0Y2ggaXM6IFwiICsgaW5kZXgifSwgeyJuYW1lIjogIkZpbmRDYXNlSW5zZW5zaXRpdmUgKFNUUklORywgTlVNQkVSLCBTVFJJTkcpIiwgInJldHVybl90eXBlIjogIk5VTUJFUiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIHRoZSBzdGFydGluZyBpbmRleCBvZiB0aGUgc2Vjb25kIHN0cmluZyBmb3VuZCB3aXRoaW4gdGhlIGZpcnN0IHN0cmluZywgaWdub3JpbmcgY2FzZSwgb3IgLTEgaWYgbm90IGZvdW5kLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJTVFJJTkc6IFRoZSBtYWluIFNUUklORyB0byBzZWFyY2ggd2l0aGluOyBOVU1CRVI6IFRoZSBwb3NpdGlvbiB3aXRoaW4gdGhlIG1haW4gU1RSSU5HIHRvIHN0YXJ0IHRoZSBzZWFyY2g7IFNUUklORzogVGhlIHN1YlNUUklORyB0byBzZWFyY2ggZm9yLiIsICJkZXNjcmlwdGlvbiI6ICJTZWFyY2hlcyB0aGUgMm5kIHN0cmluZyBjYXNlIGluc2Vuc2l0aXZlbHkgaW4gdGhlIDFzdCBhbmQgcmV0dXJucyB0aGUgc3RhcnQgcG9zaXRpb24gb3IgLTEuIiwgImV4YW1wbGVfY29kZSI6ICJTVFJJTkcgbWFpblN0cmluZyA9IFwiSGVsbG8gV29ybGQsIGhlbGxvIHVuaXZlcnNlXCJcblNUUklORyBzZWFyY2hTdHJpbmcgPSBcImhlbGxvXCJcbk5VTUJFUiBzdGFydFBvc2l0aW9uID0gMFxuXG4vLyBVc2UgdGhlIEZpbmRDYXNlSW5zZW5zaXRpdmUgZnVuY3Rpb24gdG8gZmluZCB0aGUgcG9zaXRpb24gb2Ygc2VhcmNoU3RyaW5nIGluIG1haW5TdHJpbmdcbk5VTUJFUiBwb3NpdGlvbiA9IEZpbmRDYXNlSW5zZW5zaXRpdmUobWFpblN0cmluZywgc3RhcnRQb3NpdGlvbiwgc2VhcmNoU3RyaW5nKVxuXG4vLyBUaGUgcG9zaXRpb24gb2YgdGhlIHNlYXJjaCBzdHJpbmcgaXM6IFwiICsgcG9zaXRpb24iLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICJTVFJJTkcgbWFpblN0cmluZyA9IFwiSGVsbG8gV29ybGQsIGhlbGxvIHVuaXZlcnNlXCJcblNUUklORyBzZWFyY2hTdHJpbmcgPSBcImhlbGxvXCJcbk5VTUJFUiBzdGFydFBvc2l0aW9uID0gMFxuXG4vLyBVc2UgdGhlIEZpbmRDYXNlSW5zZW5zaXRpdmUgZnVuY3Rpb24gdG8gZmluZCB0aGUgcG9zaXRpb24gb2Ygc2VhcmNoU3RyaW5nIGluIG1haW5TdHJpbmdcbk5VTUJFUiBwb3NpdGlvbiA9IEZpbmRDYXNlSW5zZW5zaXRpdmUobWFpblN0cmluZywgc3RhcnRQb3NpdGlvbiwgc2VhcmNoU3RyaW5nKVxuXG4vLyBUaGUgcG9zaXRpb24gb2YgdGhlIHNlYXJjaCBzdHJpbmcgaXM6IFwiICsgcG9zaXRpb24ifSwgeyJuYW1lIjogIkZpbmRDYXNlSW5zZW5zaXRpdmUgKFNUUklORywgU1RSSU5HKSIsICJyZXR1cm5fdHlwZSI6ICJOVU1CRVIiLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyB0aGUgemVyby1iYXNlZCBzdGFydCBpbmRleCBvZiB0aGUgc2Vjb25kIHN0cmluZyBpbiB0aGUgZmlyc3Qgc3RyaW5nLCBvciAtMSBpZiBub3QgZm91bmQsIGluIGEgY2FzZS1pbnNlbnNpdGl2ZSBtYW5uZXIuIiwgInBhcmFtZXRlcl9kZXNjIjogIlNUUklORzogbWFpbiB0ZXh0IHRvIHNlYXJjaCB3aXRoaW47IFNUUklORzogdGFyZ2V0IHRvIHNlYXJjaCBmb3IuIiwgImRlc2NyaXB0aW9uIjogIlNlYXJjaGVzIHRoZSAybmQgc3RyaW5nLCBjYXNlIGluc2Vuc2l0aXZlLCBpbiB0aGUgMXN0IGFuZCByZXR1cm5zIHRoZSBzdGFydCBwb3NpdGlvbiBvciAtMS4iLCAiZXhhbXBsZV9jb2RlIjogIlNUUklORyB1cmwgPSBNV0cuVXJsKCkuVG9TdHJpbmcoKVxuU1RSSU5HIGtleXdvcmQgPSBcImV4YW1wbGVcIlxuXG5JRiBGaW5kQ2FzZUluc2Vuc2l0aXZlKHVybCwga2V5d29yZCkgVEhFTiB7XG4gICAgLy8gS2V5d29yZCBmb3VuZCBpbiBVUkxcbn0gRUxTRSB7XG4gICAgLy8gS2V5d29yZCBub3QgZm91bmQgaW4gVVJMXG59IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiU1RSSU5HIHVybCA9IE1XRy5VcmwoKS5Ub1N0cmluZygpXG5TVFJJTkcga2V5d29yZCA9IFwiZXhhbXBsZVwiXG5cbklGIEZpbmRDYXNlSW5zZW5zaXRpdmUodXJsLCBrZXl3b3JkKSBUSEVOIHtcbiAgICAvLyBLZXl3b3JkIGZvdW5kIGluIFVSTFxufSBFTFNFIHtcbiAgICAvLyBLZXl3b3JkIG5vdCBmb3VuZCBpbiBVUkxcbn0ifSwgeyJuYW1lIjogIkZpbmRGaXJzdE9mIChTVFJJTkcsIFNUUklORykiLCAicmV0dXJuX3R5cGUiOiAiTlVNQkVSIiwgInJldHVybl9kZXNjIjogIlJldHVybnMgdGhlIHBvc2l0aW9uIG9mIHRoZSBmaXJzdCBjaGFyYWN0ZXIgaW4gdGhlIGZpcnN0IHN0cmluZyB0aGF0IG1hdGNoZXMgYW55IGNoYXJhY3RlciBpbiB0aGUgc2Vjb25kIHN0cmluZywgb3IgLTEgaWYgbm8gbWF0Y2ggaXMgZm91bmQuIiwgInBhcmFtZXRlcl9kZXNjIjogIlNUUklORzogaW5wdXQgdG8gc2VhcmNoIHdpdGhpbjsgU1RSSU5HOiBjaGFyYWN0ZXJzIHRvIG1hdGNoLiIsICJkZXNjcmlwdGlvbiI6ICJTZWFyY2hlcyB3aXRoaW4gZ2l2ZW4gc3RyaW5nIGZvciB0aGUgZmlyc3QgY2hhcmFjdGVyIHRoYXQgaXMgZXF1YWwgdG8gYW55IGNoYXJhY3RlciB3aXRoaW4gZ2l2ZW4gc2Vjb25kIHN0cmluZy4gSWYgZm91bmQsIHBvc2l0aW9uIGlzIHJldHVybmVkLiBPdGhlcndpc2UsIC0xIGlzIHJldHVybmVkLiIsICJleGFtcGxlX2NvZGUiOiAiU1RSSU5HIGlucHV0U3RyaW5nID0gXCJoZWxsbyB3b3JsZFwiXG5TVFJJTkcgY2hhcmFjdGVyc1RvTWF0Y2ggPSBcImFlaW91XCJcblxuTlVNQkVSIHBvc2l0aW9uID0gRmluZEZpcnN0T2YoaW5wdXRTdHJpbmcsIGNoYXJhY3RlcnNUb01hdGNoKVxuXG5JRiBwb3NpdGlvbiAhPSAtMSBUSEVOIHtcbiAgICAvLyBGaXJzdCB2b3dlbCBmb3VuZCBhdCBwb3NpdGlvbjogXCIgKyBwb3NpdGlvblxufSBFTFNFIHtcbiAgICAvLyBObyB2b3dlbHMgZm91bmQgaW4gdGhlIGlucHV0IHN0cmluZy5cbn0iLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICJTVFJJTkcgaW5wdXRTdHJpbmcgPSBcImhlbGxvIHdvcmxkXCJcblNUUklORyBjaGFyYWN0ZXJzVG9NYXRjaCA9IFwiYWVpb3VcIlxuXG5OVU1CRVIgcG9zaXRpb24gPSBGaW5kRmlyc3RPZihpbnB1dFN0cmluZywgY2hhcmFjdGVyc1RvTWF0Y2gpXG5cbklGIHBvc2l0aW9uICE9IC0xIFRIRU4ge1xuICAgIC8vIEZpcnN0IHZvd2VsIGZvdW5kIGF0IHBvc2l0aW9uOiBcIiArIHBvc2l0aW9uXG59IEVMU0Uge1xuICAgIC8vIE5vIHZvd2VscyBmb3VuZCBpbiB0aGUgaW5wdXQgc3RyaW5nLlxufSJ9LCB7Im5hbWUiOiAiRmluZEZpcnN0T2YgKFNUUklORywgU1RSSU5HLCBOVU1CRVIpIiwgInJldHVybl90eXBlIjogIk5VTUJFUiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIHRoZSBwb3NpdGlvbiBvZiB0aGUgZmlyc3Qgb2NjdXJyZW5jZSBvZiBhbnkgY2hhcmFjdGVyIGZyb20gdGhlIHNlY29uZCBzdHJpbmcgd2l0aGluIHRoZSBzcGVjaWZpZWQgcmFuZ2Ugb2YgdGhlIGZpcnN0IHN0cmluZywgb3IgLTEgaWYgbm8gc3VjaCBjaGFyYWN0ZXIgaXMgZm91bmQuIiwgInBhcmFtZXRlcl9kZXNjIjogIlNUUklORzogdGhlIFNUUklORyB0byBzZWFyY2ggd2l0aGluOyBTVFJJTkc6IHRoZSBTVFJJTkcgY29udGFpbmluZyBjaGFyYWN0ZXJzIHRvIHNlYXJjaCBmb3I7IE5VTUJFUjogdGhlIHBvc2l0aW9uIGZyb20gd2hpY2ggdG8gYmVnaW4gdGhlIHNlYXJjaC4iLCAiZGVzY3JpcHRpb24iOiAiU2VhcmNoZXMgd2l0aGluIGdpdmVuIHN0cmluZywgYmVnaW5uaW5nIGF0IGdpdmVuIHBvc2l0aW9uIChvciBmcm9tIHN0YXJ0IG9mIHN0cmluZyksIGZvciB0aGUgZmlyc3QgY2hhcmFjdGVyIHRoYXQgaXMgZXF1YWwgdG8gYW55IGNoYXJhY3RlciB3aXRoaW4gZ2l2ZW4gc2Vjb25kIHN0cmluZy4gSWYgZm91bmQsIHBvc2l0aW9uIGlzIHJldHVybmVkLiBPdGhlcndpc2UsIC0xIGlzIHJldHVybmVkLiIsICJleGFtcGxlX2NvZGUiOiAiU1RSSU5HIHRleHQgPSBcIkhlbGxvLCBXb3JsZCFcIlxuU1RSSU5HIHNlYXJjaENoYXJzID0gXCJvV1wiXG5OVU1CRVIgc3RhcnRQb3NpdGlvbiA9IDBcblxuTlVNQkVSIHBvc2l0aW9uID0gRmluZEZpcnN0T2YodGV4dCwgc2VhcmNoQ2hhcnMsIHN0YXJ0UG9zaXRpb24pXG5cbklGIHBvc2l0aW9uICE9IC0xIFRIRU4ge1xuICAgIC8vIEZpcnN0IG9jY3VycmVuY2Ugb2YgYW55IGNoYXJhY3RlciBmcm9tICdcIiArIHNlYXJjaENoYXJzICsgXCInIGluICdcIiArIHRleHQgKyBcIicgaXMgYXQgcG9zaXRpb246IFwiICsgcG9zaXRpb25cbn0gRUxTRSB7XG4gICAgLy8gTm8gY2hhcmFjdGVycyBmcm9tICdcIiArIHNlYXJjaENoYXJzICsgXCInIGZvdW5kIGluICdcIiArIHRleHQgKyBcIidcIlxufSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIlNUUklORyB0ZXh0ID0gXCJIZWxsbywgV29ybGQhXCJcblNUUklORyBzZWFyY2hDaGFycyA9IFwib1dcIlxuTlVNQkVSIHN0YXJ0UG9zaXRpb24gPSAwXG5cbk5VTUJFUiBwb3NpdGlvbiA9IEZpbmRGaXJzdE9mKHRleHQsIHNlYXJjaENoYXJzLCBzdGFydFBvc2l0aW9uKVxuXG5JRiBwb3NpdGlvbiAhPSAtMSBUSEVOIHtcbiAgICAvLyBGaXJzdCBvY2N1cnJlbmNlIG9mIGFueSBjaGFyYWN0ZXIgZnJvbSAnXCIgKyBzZWFyY2hDaGFycyArIFwiJyBpbiAnXCIgKyB0ZXh0ICsgXCInIGlzIGF0IHBvc2l0aW9uOiBcIiArIHBvc2l0aW9uXG59IEVMU0Uge1xuICAgIC8vIE5vIGNoYXJhY3RlcnMgZnJvbSAnXCIgKyBzZWFyY2hDaGFycyArIFwiJyBmb3VuZCBpbiAnXCIgKyB0ZXh0ICsgXCInXCJcbn0ifSwgeyJuYW1lIjogIkZpbmRMYXN0IChTVFJJTkcsIFNUUklORykiLCAicmV0dXJuX3R5cGUiOiAiTlVNQkVSIiwgInJldHVybl9kZXNjIjogIlJldHVybnMgdGhlIHN0YXJ0aW5nIHBvc2l0aW9uIG9mIHRoZSBsYXN0IG9jY3VycmVuY2Ugb2YgdGhlIHNlY29uZCBzdHJpbmcgd2l0aGluIHRoZSBmaXJzdCBzdHJpbmcsIG9yIC0xIGlmIGl0IGlzIG5vdCBmb3VuZC4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiU1RSSU5HOiBpbnB1dCB0byBzZWFyY2ggd2l0aGluOyBTVFJJTkc6IHN1YlNUUklORyB0byBmaW5kLiIsICJkZXNjcmlwdGlvbiI6ICJTZWFyY2hlcyB3aXRoaW4gZ2l2ZW4gc3RyaW5nLCBiZWdpbm5pbmcgYXQgdGhlIGVuZCwgZm9yIHRoZSBzZWNvbmQgc3RyaW5nLiBJZiBmb3VuZCwgdGhlIHN0YXJ0IHBvc2l0aW9uIGlzIHJldHVybmVkLiBPdGhlcndpc2UsIC0xIGlzIHJldHVybmVkLiIsICJleGFtcGxlX2NvZGUiOiAiU1RSSU5HIHRleHQgPSBcIlRoZSBxdWljayBicm93biBmb3gganVtcHMgb3ZlciB0aGUgbGF6eSBkb2cuIFRoZSBxdWljayBicm93biBmb3ggaXMgZmFzdC5cIlxuU1RSSU5HIHNlYXJjaFN0cmluZyA9IFwiZm94XCJcblxuTlVNQkVSIHBvc2l0aW9uID0gRmluZExhc3QodGV4dCwgc2VhcmNoU3RyaW5nKVxuXG5JRiBwb3NpdGlvbiAhPSAtMSBUSEVOIHtcbiAgICAvLyBUaGUgbGFzdCBvY2N1cnJlbmNlIG9mICdzZWFyY2hTdHJpbmcnIGlzIGF0IHBvc2l0aW9uOiBwb3NpdGlvblxufSBFTFNFIHtcbiAgICAvLyBUaGUgc3RyaW5nICdzZWFyY2hTdHJpbmcnIHdhcyBub3QgZm91bmQuXG59IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiU1RSSU5HIHRleHQgPSBcIlRoZSBxdWljayBicm93biBmb3gganVtcHMgb3ZlciB0aGUgbGF6eSBkb2cuIFRoZSBxdWljayBicm93biBmb3ggaXMgZmFzdC5cIlxuU1RSSU5HIHNlYXJjaFN0cmluZyA9IFwiZm94XCJcblxuTlVNQkVSIHBvc2l0aW9uID0gRmluZExhc3QodGV4dCwgc2VhcmNoU3RyaW5nKVxuXG5JRiBwb3NpdGlvbiAhPSAtMSBUSEVOIHtcbiAgICAvLyBUaGUgbGFzdCBvY2N1cnJlbmNlIG9mICdzZWFyY2hTdHJpbmcnIGlzIGF0IHBvc2l0aW9uOiBwb3NpdGlvblxufSBFTFNFIHtcbiAgICAvLyBUaGUgc3RyaW5nICdzZWFyY2hTdHJpbmcnIHdhcyBub3QgZm91bmQuXG59In0sIHsibmFtZSI6ICJGaW5kTGFzdCAoU1RSSU5HLCBTVFJJTkcsIE5VTUJFUikiLCAicmV0dXJuX3R5cGUiOiAiTlVNQkVSIiwgInJldHVybl9kZXNjIjogIlJldHVybnMgdGhlIHN0YXJ0aW5nIHBvc2l0aW9uIG9mIHRoZSBsYXN0IG9jY3VycmVuY2Ugb2YgdGhlIHNlY29uZCBzdHJpbmcgaW4gdGhlIGZpcnN0IHN0cmluZywgc3RhcnRpbmcgZnJvbSB0aGUgc3BlY2lmaWVkIHBvc2l0aW9uLCBvciAtMSBpZiBub3QgZm91bmQuIiwgInBhcmFtZXRlcl9kZXNjIjogIlNUUklORzogaW5wdXQgdG8gc2VhcmNoIHdpdGhpbjsgU1RSSU5HOiBzdWJTVFJJTkcgdG8gc2VhcmNoIGZvcjsgTlVNQkVSOiBzdGFydGluZyBwb3NpdGlvbiBmb3Igc2VhcmNoLiIsICJkZXNjcmlwdGlvbiI6ICJTZWFyY2hlcyB3aXRoaW4gZ2l2ZW4gc3RyaW5nLCBiZWdpbm5pbmcgYXQgdGhlIGdpdmVuIHBvc2l0aW9uIChvciBmcm9tIGVuZCBvZiBzdHJpbmcpLCBmb3IgdGhlIHNlY29uZCBzdHJpbmcuIElmIGZvdW5kLCB0aGUgc3RhcnQgcG9zaXRpb24gaXMgcmV0dXJuZWQuIE90aGVyd2lzZSwgLTEgaXMgcmV0dXJuZWQuIiwgImV4YW1wbGVfY29kZSI6ICJTVFJJTkcgdGV4dCA9IFwiVGhpcyBpcyBhIHNhbXBsZSBzdHJpbmcgdG8gZGVtb25zdHJhdGUgdGhlIEZpbmRMYXN0IGZ1bmN0aW9uLlwiXG5TVFJJTkcgc2VhcmNoU3RyaW5nID0gXCJzXCJcbk5VTUJFUiBzdGFydFBvc2l0aW9uID0gMzBcblxuTlVNQkVSIGxhc3RJbmRleCA9IEZpbmRMYXN0KHRleHQsIHNlYXJjaFN0cmluZywgc3RhcnRQb3NpdGlvbilcblxuSUYgbGFzdEluZGV4ICE9IC0xIFRIRU4ge1xuICAgIC8vIFRoZSBsYXN0IG9jY3VycmVuY2Ugb2YgJ3NlYXJjaFN0cmluZycgYmVmb3JlIHBvc2l0aW9uIHN0YXJ0UG9zaXRpb24gaXMgYXQgaW5kZXg6IGxhc3RJbmRleFxufSBFTFNFIHtcbiAgICAvLyBUaGUgc3RyaW5nICdzZWFyY2hTdHJpbmcnIHdhcyBub3QgZm91bmQgYmVmb3JlIHBvc2l0aW9uIHN0YXJ0UG9zaXRpb25cbn0iLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICJTVFJJTkcgdGV4dCA9IFwiVGhpcyBpcyBhIHNhbXBsZSBzdHJpbmcgdG8gZGVtb25zdHJhdGUgdGhlIEZpbmRMYXN0IGZ1bmN0aW9uLlwiXG5TVFJJTkcgc2VhcmNoU3RyaW5nID0gXCJzXCJcbk5VTUJFUiBzdGFydFBvc2l0aW9uID0gMzBcblxuTlVNQkVSIGxhc3RJbmRleCA9IEZpbmRMYXN0KHRleHQsIHNlYXJjaFN0cmluZywgc3RhcnRQb3NpdGlvbilcblxuSUYgbGFzdEluZGV4ICE9IC0xIFRIRU4ge1xuICAgIC8vIFRoZSBsYXN0IG9jY3VycmVuY2Ugb2YgJ3NlYXJjaFN0cmluZycgYmVmb3JlIHBvc2l0aW9uIHN0YXJ0UG9zaXRpb24gaXMgYXQgaW5kZXg6IGxhc3RJbmRleFxufSBFTFNFIHtcbiAgICAvLyBUaGUgc3RyaW5nICdzZWFyY2hTdHJpbmcnIHdhcyBub3QgZm91bmQgYmVmb3JlIHBvc2l0aW9uIHN0YXJ0UG9zaXRpb25cbn0ifSwgeyJuYW1lIjogIkZpbmRMYXN0T2YgKFNUUklORywgU1RSSU5HKSIsICJyZXR1cm5fdHlwZSI6ICJOVU1CRVIiLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyB0aGUgcG9zaXRpb24gb2YgdGhlIGxhc3QgY2hhcmFjdGVyIGluIHRoZSBmaXJzdCBzdHJpbmcgdGhhdCBtYXRjaGVzIGFueSBjaGFyYWN0ZXIgaW4gdGhlIHNlY29uZCBzdHJpbmcsIG9yIC0xIGlmIG5vIHN1Y2ggY2hhcmFjdGVyIGlzIGZvdW5kLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJTVFJJTkc6IGlucHV0IHRvIHNlYXJjaCB3aXRoaW47IFNUUklORzogY2hhcmFjdGVycyB0byBzZWFyY2ggZm9yLiIsICJkZXNjcmlwdGlvbiI6ICJTZWFyY2hlcyBiYWNrd2FyZCB3aXRoaW4gZ2l2ZW4gc3RyaW5nLCBiZWdpbm5pbmcgYXQgdGhlIGVuZCBvZiB0aGUgc3RyaW5nLCBmb3IgdGhlIGZpcnN0IGNoYXJhY3RlciB0aGF0IGlzIGVxdWFsIHRvIGFueSBjaGFyYWN0ZXIgd2l0aGluIHRoZSBnaXZlbiBzZWNvbmQgc3RyaW5nLiBJZiBmb3VuZCwgcG9zaXRpb24gaXMgcmV0dXJuZWQuIE90aGVyd2lzZSwgLTEgaXMgcmV0dXJuZWQuIiwgImV4YW1wbGVfY29kZSI6ICJTVFJJTkcgaW5wdXRTdHJpbmcgPSBcIkhlbGxvLCBXb3JsZCFcIlxuU1RSSU5HIHNlYXJjaFN0cmluZyA9IFwib1wiXG5cbk5VTUJFUiBwb3NpdGlvbiA9IEZpbmRMYXN0T2YoaW5wdXRTdHJpbmcsIHNlYXJjaFN0cmluZylcblxuSUYgcG9zaXRpb24gIT0gLTEgVEhFTiB7XG4gICAgLy8gVGhlIGxhc3Qgb2NjdXJyZW5jZSBvZiBhbnkgY2hhcmFjdGVyIGluICdvJyBpbiB0aGUgc3RyaW5nICdIZWxsbywgV29ybGQhJyBpcyBhdCBwb3NpdGlvbjogcG9zaXRpb25cbn0gRUxTRSB7XG4gICAgLy8gTm8gY2hhcmFjdGVycyBmcm9tICdvJyB3ZXJlIGZvdW5kIGluIHRoZSBzdHJpbmcgJ0hlbGxvLCBXb3JsZCEnXG59IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiU1RSSU5HIGlucHV0U3RyaW5nID0gXCJIZWxsbywgV29ybGQhXCJcblNUUklORyBzZWFyY2hTdHJpbmcgPSBcIm9cIlxuXG5OVU1CRVIgcG9zaXRpb24gPSBGaW5kTGFzdE9mKGlucHV0U3RyaW5nLCBzZWFyY2hTdHJpbmcpXG5cbklGIHBvc2l0aW9uICE9IC0xIFRIRU4ge1xuICAgIC8vIFRoZSBsYXN0IG9jY3VycmVuY2Ugb2YgYW55IGNoYXJhY3RlciBpbiAnbycgaW4gdGhlIHN0cmluZyAnSGVsbG8sIFdvcmxkIScgaXMgYXQgcG9zaXRpb246IHBvc2l0aW9uXG59IEVMU0Uge1xuICAgIC8vIE5vIGNoYXJhY3RlcnMgZnJvbSAnbycgd2VyZSBmb3VuZCBpbiB0aGUgc3RyaW5nICdIZWxsbywgV29ybGQhJ1xufSJ9LCB7Im5hbWUiOiAiRmluZExhc3RPZiAoU1RSSU5HLCBTVFJJTkcsIE5VTUJFUikiLCAicmV0dXJuX3R5cGUiOiAiTlVNQkVSIiwgInJldHVybl9kZXNjIjogIlJldHVybnMgdGhlIHBvc2l0aW9uIG9mIHRoZSBsYXN0IG9jY3VycmVuY2Ugb2YgYW55IGNoYXJhY3RlciBmcm9tIHRoZSBzZWNvbmQgc3RyaW5nIGluIHRoZSBmaXJzdCBzdHJpbmcsIHN0YXJ0aW5nIGZyb20gYSBnaXZlbiBwb3NpdGlvbiBvciBmcm9tIHRoZSBlbmQsIG9yIC0xIGlmIG5vIHN1Y2ggY2hhcmFjdGVyIGlzIGZvdW5kLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJTVFJJTkc6IGlucHV0IHRvIHNlYXJjaCB3aXRoaW47IFNUUklORzogY2hhcmFjdGVycyB0byBzZWFyY2ggZm9yOyBOVU1CRVI6IHN0YXJ0aW5nIHBvc2l0aW9uIGZvciB0aGUgc2VhcmNoLiIsICJkZXNjcmlwdGlvbiI6ICJTZWFyY2hlcyBiYWNrd2FyZCB3aXRoaW4gZ2l2ZW4gc3RyaW5nLCBiZWdpbm5pbmcgYXQgZ2l2ZW4gcG9zaXRpb24gKG9yIGZyb20gZW5kIG9mIHN0cmluZyksIGZvciB0aGUgZmlyc3QgY2hhcmFjdGVyIHRoYXQgaXMgZXF1YWwgdG8gYW55IGNoYXJhY3RlciB3aXRoaW4gZ2l2ZW4gc2Vjb25kIHN0cmluZy4gSWYgZm91bmQsIHBvc2l0aW9uIGlzIHJldHVybmVkLiBPdGhlcndpc2UsIC0xIGlzIHJldHVybmVkLiIsICJleGFtcGxlX2NvZGUiOiAiU1RSSU5HIHRleHQgPSBcIkhlbGxvLCB3b3JsZCEgV2VsY29tZSB0byBNT1dHTEkuXCJcblNUUklORyBzZWFyY2hDaGFyID0gXCJvXCJcbk5VTUJFUiBzdGFydFBvc2l0aW9uID0gMjBcblxuTlVNQkVSIGxhc3RJbmRleCA9IEZpbmRMYXN0T2YodGV4dCwgc2VhcmNoQ2hhciwgc3RhcnRQb3NpdGlvbilcblxuLy8gVGhlIGxhc3Qgb2NjdXJyZW5jZSBvZiAnbycgaW4gdGhlIHRleHQgc3RhcnRpbmcgZnJvbSBwb3NpdGlvbiAyMCBpcyBhdCBpbmRleDogbGFzdEluZGV4IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiU1RSSU5HIHRleHQgPSBcIkhlbGxvLCB3b3JsZCEgV2VsY29tZSB0byBNT1dHTEkuXCJcblNUUklORyBzZWFyY2hDaGFyID0gXCJvXCJcbk5VTUJFUiBzdGFydFBvc2l0aW9uID0gMjBcblxuTlVNQkVSIGxhc3RJbmRleCA9IEZpbmRMYXN0T2YodGV4dCwgc2VhcmNoQ2hhciwgc3RhcnRQb3NpdGlvbilcblxuLy8gVGhlIGxhc3Qgb2NjdXJyZW5jZSBvZiAnbycgaW4gdGhlIHRleHQgc3RhcnRpbmcgZnJvbSBwb3NpdGlvbiAyMCBpcyBhdCBpbmRleDogbGFzdEluZGV4In0sIHsibmFtZSI6ICJGaW5kV2lsZENhcmRNYXRjaCAoVkVDVE9SPFNUUklORz4sIFNUUklORykiLCAicmV0dXJuX3R5cGUiOiAiTlVNQkVSIiwgInJldHVybl9kZXNjIjogIlJldHVybnMgdGhlIGluZGV4IG9mIHRoZSBmaXJzdCBtYXRjaGluZyBvZiB0aGUgd2lsZGNhcmQgYXMgYSBzdHJpbmcgZnJvbSB0aGUgc3RyaW5nIGxpc3QgKC0xIGluIGNhc2Ugb2Ygbm90IGZvdW5kKS4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiVkVDVE9SPFNUUklORz46IGxpc3QgdG8gc2VhcmNoOyBTVFJJTkc6IHdpbGRjYXJkIHRvIHNlYXJjaCBmb3IuIiwgImRlc2NyaXB0aW9uIjogIlJldHVybnMgdGhlIGluZGV4IG9mIHRoZSBmaXJzdCBtYXRjaGluZyBvZiB0aGUgd2lsZGNhcmQgYXMgYSBzdHJpbmcgZnJvbSB0aGUgc3RyaW5nIGxpc3QuIFJldHVybnMgLTEgaW4gY2FzZSBvZiBub3QgZm91bmQuIiwgImV4YW1wbGVfY29kZSI6ICJWRUNUT1I8U1RSSU5HPiB1cmxQYXR0ZXJucyA9IFwiKi5leGFtcGxlLmNvbVwiLCBcIioudGVzdC5jb21cIiwgXCIqLnNhbXBsZS5vcmdcIlxuU1RSSU5HIGN1cnJlbnRVcmwgPSBNV0cuVXJsKCkuSG9zdFxuXG5JRiBGaW5kV2lsZENhcmRNYXRjaCh1cmxQYXR0ZXJucywgY3VycmVudFVybCkgVEhFTiB7XG4gICAgLy8gTWF0Y2ggZm91bmQgZm9yIFVSTDogY3VycmVudFVybFxuICAgIE1XRy5BbGxvdyhcIlVSTCBtYXRjaGVkIHdpdGggd2lsZGNhcmQgcGF0dGVyblwiKVxufSBFTFNFIHtcbiAgICAvLyBObyBtYXRjaCBmb3VuZCBmb3IgVVJMOiBjdXJyZW50VXJsXG4gICAgTVdHLkJsb2NrKFwiVVJMIGRpZCBub3QgbWF0Y2ggYW55IHdpbGRjYXJkIHBhdHRlcm5cIilcbn0iLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICJWRUNUT1I8U1RSSU5HPiB1cmxQYXR0ZXJucyA9IFwiKi5leGFtcGxlLmNvbVwiLCBcIioudGVzdC5jb21cIiwgXCIqLnNhbXBsZS5vcmdcIlxuU1RSSU5HIGN1cnJlbnRVcmwgPSBNV0cuVXJsKCkuSG9zdFxuXG5JRiBGaW5kV2lsZENhcmRNYXRjaCh1cmxQYXR0ZXJucywgY3VycmVudFVybCkgVEhFTiB7XG4gICAgLy8gTWF0Y2ggZm91bmQgZm9yIFVSTDogY3VycmVudFVybFxuICAgIE1XRy5BbGxvdyhcIlVSTCBtYXRjaGVkIHdpdGggd2lsZGNhcmQgcGF0dGVyblwiKVxufSBFTFNFIHtcbiAgICAvLyBObyBtYXRjaCBmb3VuZCBmb3IgVVJMOiBjdXJyZW50VXJsXG4gICAgTVdHLkJsb2NrKFwiVVJMIGRpZCBub3QgbWF0Y2ggYW55IHdpbGRjYXJkIHBhdHRlcm5cIilcbn0ifSwgeyJuYW1lIjogIkdldCAoTUFQPFNUUklORywgU1RSSU5HPiwgU1RSSU5HKSIsICJyZXR1cm5fdHlwZSI6ICJTVFJJTkciLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyB0aGUgdmFsdWUgZm9yIHRoZSBnaXZlbiBrZXkuIiwgInBhcmFtZXRlcl9kZXNjIjogIk1BUDxTVFJJTkcsIFNUUklORz46IG1hcCB0byB1c2U7IFNUUklORzoga2V5IHRvIGxvb2sgdXAuIiwgImRlc2NyaXB0aW9uIjogIkdldHMgYSB2YWx1ZSBmcm9tIGEgbWFwIHdpdGggYSBnaXZlbiBrZXkuIiwgImV4YW1wbGVfY29kZSI6ICIvLyBEZWZpbmUgYSBtYXAgd2l0aCBzb21lIGtleS12YWx1ZSBwYWlyc1xuTUFQPFNUUklORywgU1RSSU5HPiBleGFtcGxlTWFwID0ge1xuICAgIFwia2V5MVwiOiBcInZhbHVlMVwiLFxuICAgIFwia2V5MlwiOiBcInZhbHVlMlwiLFxuICAgIFwia2V5M1wiOiBcInZhbHVlM1wiXG59XG5cbi8vIFJldHJpZXZlIGEgdmFsdWUgZnJvbSB0aGUgbWFwIHVzaW5nIHRoZSBHZXQgZnVuY3Rpb25cblNUUklORyB2YWx1ZSA9IEdldChleGFtcGxlTWFwLCBcImtleTJcIilcblxuLy8gVGhlIHZhbHVlIGZvciAna2V5MicgaXM6IFwiICsgdmFsdWUiLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICIvLyBEZWZpbmUgYSBtYXAgd2l0aCBzb21lIGtleS12YWx1ZSBwYWlyc1xuTUFQPFNUUklORywgU1RSSU5HPiBleGFtcGxlTWFwID0ge1xuICAgIFwia2V5MVwiOiBcInZhbHVlMVwiLFxuICAgIFwia2V5MlwiOiBcInZhbHVlMlwiLFxuICAgIFwia2V5M1wiOiBcInZhbHVlM1wiXG59XG5cbi8vIFJldHJpZXZlIGEgdmFsdWUgZnJvbSB0aGUgbWFwIHVzaW5nIHRoZSBHZXQgZnVuY3Rpb25cblNUUklORyB2YWx1ZSA9IEdldChleGFtcGxlTWFwLCBcImtleTJcIilcblxuLy8gVGhlIHZhbHVlIGZvciAna2V5MicgaXM6IFwiICsgdmFsdWUifSwgeyJuYW1lIjogIkdldCAoUmVnRXhKU2kuTGlzdCwgTlVNQkVSKSIsICJyZXR1cm5fdHlwZSI6ICJSZWdFeEpTaSIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIHRoZSBlbGVtZW50IGF0IHRoZSBzcGVjaWZpZWQgaW5kZXggZnJvbSB0aGUgYFJlZ0V4SlNpYC5MaXN0LiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJSZWdFeEpTaS5MaXN0OiB0aGUgbGlzdCB0byByZXRyaWV2ZSBmcm9tOyBOVU1CRVI6IHRoZSBpbmRleCBvZiB0aGUgZWxlbWVudCB0byByZXRyaWV2ZS4iLCAiZGVzY3JpcHRpb24iOiAiUmV0cmlldmVzIGEgbGlzdCBlbGVtZW50LiIsICJleGFtcGxlX2NvZGUiOiAiLy8gQXNzdW1lIHJlZ2V4TGlzdCBpcyBhIHByZWRlZmluZWQgUmVnRXhKU2kuTGlzdFxuUmVnRXhKU2kuTGlzdCByZWdleExpc3QgPSBbXCJleGFtcGxlX3JlZ2V4X2xpc3RcIl1cblxuLy8gUmV0cmlldmUgdGhlIGVsZW1lbnQgYXQgaW5kZXggMlxuUmVnRXhKU2kgcmVnZXhFbGVtZW50ID0gR2V0KHJlZ2V4TGlzdCwgMilcblxuLy8gUHJpbnQgdGhlIHJldHJpZXZlZCBlbGVtZW50IHRvIHRoZSBjb25zb2xlXG4vLyBSZXRyaWV2ZWQgUmVnRXhKU2kgZWxlbWVudDogXCIgKyByZWdleEVsZW1lbnQiLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICIvLyBBc3N1bWUgcmVnZXhMaXN0IGlzIGEgcHJlZGVmaW5lZCBSZWdFeEpTaS5MaXN0XG5SZWdFeEpTaS5MaXN0IHJlZ2V4TGlzdCA9IFtcImV4YW1wbGVfcmVnZXhfbGlzdFwiXVxuXG4vLyBSZXRyaWV2ZSB0aGUgZWxlbWVudCBhdCBpbmRleCAyXG5SZWdFeEpTaSByZWdleEVsZW1lbnQgPSBHZXQocmVnZXhMaXN0LCAyKVxuXG4vLyBQcmludCB0aGUgcmV0cmlldmVkIGVsZW1lbnQgdG8gdGhlIGNvbnNvbGVcbi8vIFJldHJpZXZlZCBSZWdFeEpTaSBlbGVtZW50OiBcIiArIHJlZ2V4RWxlbWVudCJ9LCB7Im5hbWUiOiAiR2V0S2V5cyAoTUFQPFNUUklORywgU1RSSU5HPikiLCAicmV0dXJuX3R5cGUiOiAiVkVDVE9SPFNUUklORz4iLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyBhIGxpc3Qgb2YgdGhlIGtleXMgZm9yIHRoZSBnaXZlbiBtYXAuIiwgInBhcmFtZXRlcl9kZXNjIjogIk1BUDxTVFJJTkcsIFNUUklORz46IG1hcCB0byBnZXQga2V5cyBmb3IuIiwgImRlc2NyaXB0aW9uIjogIkdldHMgYSBsaXN0IG9mIGFsbCB0aGUga2V5cyBpbiBhIG1hcC4iLCAiZXhhbXBsZV9jb2RlIjogIi8vIERlZmluZSBhIG1hcCB3aXRoIHNvbWUga2V5LXZhbHVlIHBhaXJzXG5NQVA8U1RSSU5HLCBTVFJJTkc+IGV4YW1wbGVNYXAgPSB7XG4gICAgXCJrZXkxXCI6IFwidmFsdWUxXCIsXG4gICAgXCJrZXkyXCI6IFwidmFsdWUyXCIsXG4gICAgXCJrZXkzXCI6IFwidmFsdWUzXCJcbn1cblxuLy8gR2V0IHRoZSBrZXlzIGZyb20gdGhlIG1hcFxuVkVDVE9SPFNUUklORz4ga2V5cyA9IEdldEtleXMoZXhhbXBsZU1hcClcblxuLy8gUHJpbnQgdGhlIGtleXMgdG8gdGhlIGNvbnNvbGVcbkZPUiBFQUNIIGtleSBJTiBrZXlzIHtcbiAgICAvLyBLZXk6IFwiICsga2V5XG59IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiLy8gRGVmaW5lIGEgbWFwIHdpdGggc29tZSBrZXktdmFsdWUgcGFpcnNcbk1BUDxTVFJJTkcsIFNUUklORz4gZXhhbXBsZU1hcCA9IHtcbiAgICBcImtleTFcIjogXCJ2YWx1ZTFcIixcbiAgICBcImtleTJcIjogXCJ2YWx1ZTJcIixcbiAgICBcImtleTNcIjogXCJ2YWx1ZTNcIlxufVxuXG4vLyBHZXQgdGhlIGtleXMgZnJvbSB0aGUgbWFwXG5WRUNUT1I8U1RSSU5HPiBrZXlzID0gR2V0S2V5cyhleGFtcGxlTWFwKVxuXG4vLyBQcmludCB0aGUga2V5cyB0byB0aGUgY29uc29sZVxuRk9SIEVBQ0gga2V5IElOIGtleXMge1xuICAgIC8vIEtleTogXCIgKyBrZXlcbn0ifSwgeyJuYW1lIjogIkdldFJhbmdlIChSZWdFeEpTaS5MaXN0LCBOVU1CRVIsIE5VTUJFUikiLCAicmV0dXJuX3R5cGUiOiAiUmVnRXhKU2kuTGlzdCIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIGEgc3VibGlzdCBjb250YWluaW5nIGVsZW1lbnRzIGZyb20gdGhlIGlucHV0IGxpc3QgYmV0d2VlbiB0aGUgc3BlY2lmaWVkIHN0YXJ0IGFuZCBlbmQgaW5kaWNlcy4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiUmVnRXhKU2kuTGlzdDogQSBsaXN0IG9mIHJlZ3VsYXIgZXhwcmVzc2lvbnMgdG8gYmUgc2VhcmNoZWQ7IE5VTUJFUjogYSBzdGFydGluZyBpbmRleCAoaW5jbHVzaXZlKTsgTlVNQkVSOiBhbiBlbmRpbmcgaW5kZXggKGV4Y2x1c2l2ZSkuIiwgImRlc2NyaXB0aW9uIjogIkdldHMgbGlzdCBlbGVtZW50cyBiZXR3ZWVuIHRoZSBnaXZlbiBpbmRpY2VzLiIsICJleGFtcGxlX2NvZGUiOiAiLy8gQXNzdW1lIHdlIGhhdmUgYSBSZWdFeEpTaS5MaXN0IG5hbWVkIFwiZXhhbXBsZUxpc3RcIiB3aXRoIHNvbWUgcmVnZXggcGF0dGVybnNcblJlZ0V4SlNpLkxpc3QgZXhhbXBsZUxpc3QgPSBbXCJleGFtcGxlTGlzdFwiXVxuXG4vLyBEZWZpbmUgdGhlIHN0YXJ0IGFuZCBlbmQgaW5kaWNlc1xuTlVNQkVSIHN0YXJ0SW5kZXggPSAxXG5OVU1CRVIgZW5kSW5kZXggPSAzXG5cbi8vIEdldCB0aGUgc3VibGlzdCBvZiByZWdleCBwYXR0ZXJucyB3aXRoaW4gdGhlIHNwZWNpZmllZCByYW5nZVxuUmVnRXhKU2kuTGlzdCBzdWJMaXN0ID0gR2V0UmFuZ2UoZXhhbXBsZUxpc3QsIHN0YXJ0SW5kZXgsIGVuZEluZGV4KVxuXG4vLyBQcmludCB0aGUgc3VibGlzdCB0byB0aGUgY29uc29sZSBmb3IgZGVidWdnaW5nXG4vLyBzdWJMaXN0IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiLy8gQXNzdW1lIHdlIGhhdmUgYSBSZWdFeEpTaS5MaXN0IG5hbWVkIFwiZXhhbXBsZUxpc3RcIiB3aXRoIHNvbWUgcmVnZXggcGF0dGVybnNcblJlZ0V4SlNpLkxpc3QgZXhhbXBsZUxpc3QgPSBbXCJleGFtcGxlTGlzdFwiXVxuXG4vLyBEZWZpbmUgdGhlIHN0YXJ0IGFuZCBlbmQgaW5kaWNlc1xuTlVNQkVSIHN0YXJ0SW5kZXggPSAxXG5OVU1CRVIgZW5kSW5kZXggPSAzXG5cbi8vIEdldCB0aGUgc3VibGlzdCBvZiByZWdleCBwYXR0ZXJucyB3aXRoaW4gdGhlIHNwZWNpZmllZCByYW5nZVxuUmVnRXhKU2kuTGlzdCBzdWJMaXN0ID0gR2V0UmFuZ2UoZXhhbXBsZUxpc3QsIHN0YXJ0SW5kZXgsIGVuZEluZGV4KVxuXG4vLyBQcmludCB0aGUgc3VibGlzdCB0byB0aGUgY29uc29sZSBmb3IgZGVidWdnaW5nXG4vLyBzdWJMaXN0In0sIHsibmFtZSI6ICJHZXRSYW5nZSAoVkVDVE9SPE1lZGlhVHlwZT4sIE5VTUJFUiwgTlVNQkVSKSIsICJyZXR1cm5fdHlwZSI6ICJWRUNUT1I8TWVkaWFUeXBlPiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIGEgc3VibGlzdCBvZiB0aGUgZWxlbWVudHMgd2l0aGluIHRoZSBzcGVjaWZpZWQgcmFuZ2Ugb2YgaW5kaWNlcyBmcm9tIHRoZSBvcmlnaW5hbCBsaXN0LiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJWRUNUT1I6IGxpc3QgdG8gYmUgc2VhcmNoZWQ7IE5VTUJFUjogc3RhcnRpbmcgaW5kZXggKGluY2x1c2l2ZSk7IE5VTUJFUjogZW5kaW5nIGluZGV4IChleGNsdXNpdmUpLiIsICJkZXNjcmlwdGlvbiI6ICJHZXRzIGxpc3QgZWxlbWVudHMgYmV0d2VlbiBnaXZlbiBpbmRpY2VzLiIsICJleGFtcGxlX2NvZGUiOiAiLy8gSW5pdGlhbGl6ZSBhIFZFQ1RPUiBvZiBNZWRpYVR5cGVcblZFQ1RPUjxNZWRpYVR5cGU+IG1lZGlhTGlzdCA9IE1lZGlhVHlwZShcImltYWdlL2pwZWdcIiksIE1lZGlhVHlwZShcImltYWdlL3BuZ1wiKSwgTWVkaWFUeXBlKFwidmlkZW8vbXA0XCIpLCBNZWRpYVR5cGUoXCJhcHBsaWNhdGlvbi9wZGZcIilcblxuLy8gRGVmaW5lIHRoZSBzdGFydCBhbmQgZW5kIGluZGljZXNcbk5VTUJFUiBzdGFydEluZGV4ID0gMVxuTlVNQkVSIGVuZEluZGV4ID0gM1xuXG4vLyBHZXQgdGhlIHN1Ymxpc3Qgb2YgTWVkaWFUeXBlIGVsZW1lbnRzIHdpdGhpbiB0aGUgc3BlY2lmaWVkIHJhbmdlXG5WRUNUT1I8TWVkaWFUeXBlPiBzdWJMaXN0ID0gR2V0UmFuZ2UobWVkaWFMaXN0LCBzdGFydEluZGV4LCBlbmRJbmRleClcblxuLy8gU3VibGlzdCBvZiBNZWRpYVR5cGUgZWxlbWVudHM6IFxuLy8gKyBzdWJMaXN0IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiLy8gSW5pdGlhbGl6ZSBhIFZFQ1RPUiBvZiBNZWRpYVR5cGVcblZFQ1RPUjxNZWRpYVR5cGU+IG1lZGlhTGlzdCA9IE1lZGlhVHlwZShcImltYWdlL2pwZWdcIiksIE1lZGlhVHlwZShcImltYWdlL3BuZ1wiKSwgTWVkaWFUeXBlKFwidmlkZW8vbXA0XCIpLCBNZWRpYVR5cGUoXCJhcHBsaWNhdGlvbi9wZGZcIilcblxuLy8gRGVmaW5lIHRoZSBzdGFydCBhbmQgZW5kIGluZGljZXNcbk5VTUJFUiBzdGFydEluZGV4ID0gMVxuTlVNQkVSIGVuZEluZGV4ID0gM1xuXG4vLyBHZXQgdGhlIHN1Ymxpc3Qgb2YgTWVkaWFUeXBlIGVsZW1lbnRzIHdpdGhpbiB0aGUgc3BlY2lmaWVkIHJhbmdlXG5WRUNUT1I8TWVkaWFUeXBlPiBzdWJMaXN0ID0gR2V0UmFuZ2UobWVkaWFMaXN0LCBzdGFydEluZGV4LCBlbmRJbmRleClcblxuLy8gU3VibGlzdCBvZiBNZWRpYVR5cGUgZWxlbWVudHM6IFxuLy8gKyBzdWJMaXN0In0sIHsibmFtZSI6ICJHZXRSYW5nZSAoVkVDVE9SPE1XRy5BcHBsaWNhdGlvbkNhdGVnb3J5VHlwZT4sIE5VTUJFUiwgTlVNQkVSKSIsICJyZXR1cm5fdHlwZSI6ICJWRUNUT1I8TVdHLkFwcGxpY2F0aW9uQ2F0ZWdvcnlUeXBlPiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIGEgc3VibGlzdCBvZiB0aGUgZWxlbWVudHMgd2l0aGluIHRoZSBzcGVjaWZpZWQgcmFuZ2Ugb2YgaW5kaWNlcyBmcm9tIHRoZSBvcmlnaW5hbCBsaXN0LiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJWRUNUT1I6IGxpc3QgdG8gYmUgc2VhcmNoZWQ7IE5VTUJFUjogc3RhcnRpbmcgaW5kZXggKGluY2x1c2l2ZSk7IE5VTUJFUjogZW5kaW5nIGluZGV4IChleGNsdXNpdmUpLiIsICJkZXNjcmlwdGlvbiI6ICJHZXRzIGxpc3QgZWxlbWVudHMgYmV0d2VlbiBnaXZlbiBpbmRpY2VzLiIsICJleGFtcGxlX2NvZGUiOiAiLy8gQXNzdW1lIHdlIGhhdmUgYSBWRUNUT1Igb2YgTVdHLkFwcGxpY2F0aW9uQ2F0ZWdvcnlUeXBlXG5WRUNUT1I8TVdHLkFwcGxpY2F0aW9uQ2F0ZWdvcnlUeXBlPiBhcHBDYXRlZ29yaWVzID0gW1wiU29jaWFsTWVkaWFcIiwgXCJTdHJlYW1pbmdNZWRpYVwiLCBcIkZpbGVTaGFyaW5nXCIsIFwiR2FtaW5nXCIsIFwiTmV3c1wiXVxuXG4vLyBEZWZpbmUgdGhlIHN0YXJ0IGFuZCBlbmQgaW5kaWNlcyBmb3IgdGhlIHJhbmdlXG5OVU1CRVIgc3RhcnRJbmRleCA9IDFcbk5VTUJFUiBlbmRJbmRleCA9IDRcblxuLy8gR2V0IHRoZSByYW5nZSBvZiBhcHBsaWNhdGlvbiBjYXRlZ29yaWVzXG5WRUNUT1I8TVdHLkFwcGxpY2F0aW9uQ2F0ZWdvcnlUeXBlPiBzZWxlY3RlZENhdGVnb3JpZXMgPSBHZXRSYW5nZShhcHBDYXRlZ29yaWVzLCBzdGFydEluZGV4LCBlbmRJbmRleClcblxuLy8gU2VsZWN0ZWQgQ2F0ZWdvcmllczogc2VsZWN0ZWRDYXRlZ29yaWVzIiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiLy8gQXNzdW1lIHdlIGhhdmUgYSBWRUNUT1Igb2YgTVdHLkFwcGxpY2F0aW9uQ2F0ZWdvcnlUeXBlXG5WRUNUT1I8TVdHLkFwcGxpY2F0aW9uQ2F0ZWdvcnlUeXBlPiBhcHBDYXRlZ29yaWVzID0gW1wiU29jaWFsTWVkaWFcIiwgXCJTdHJlYW1pbmdNZWRpYVwiLCBcIkZpbGVTaGFyaW5nXCIsIFwiR2FtaW5nXCIsIFwiTmV3c1wiXVxuXG4vLyBEZWZpbmUgdGhlIHN0YXJ0IGFuZCBlbmQgaW5kaWNlcyBmb3IgdGhlIHJhbmdlXG5OVU1CRVIgc3RhcnRJbmRleCA9IDFcbk5VTUJFUiBlbmRJbmRleCA9IDRcblxuLy8gR2V0IHRoZSByYW5nZSBvZiBhcHBsaWNhdGlvbiBjYXRlZ29yaWVzXG5WRUNUT1I8TVdHLkFwcGxpY2F0aW9uQ2F0ZWdvcnlUeXBlPiBzZWxlY3RlZENhdGVnb3JpZXMgPSBHZXRSYW5nZShhcHBDYXRlZ29yaWVzLCBzdGFydEluZGV4LCBlbmRJbmRleClcblxuLy8gU2VsZWN0ZWQgQ2F0ZWdvcmllczogc2VsZWN0ZWRDYXRlZ29yaWVzIn0sIHsibmFtZSI6ICJHZXRSYW5nZSAoVkVDVE9SPE1XRy5BcHBsaWNhdGlvblR5cGU+LCBOVU1CRVIsIE5VTUJFUikiLCAicmV0dXJuX3R5cGUiOiAiVkVDVE9SPE1XRy5BcHBsaWNhdGlvblR5cGU+IiwgInJldHVybl9kZXNjIjogIlJldHVybnMgYSBzdWJsaXN0IG9mIHRoZSBlbGVtZW50cyB3aXRoaW4gdGhlIHNwZWNpZmllZCByYW5nZSBvZiBpbmRpY2VzIGZyb20gdGhlIG9yaWdpbmFsIGxpc3QuIiwgInBhcmFtZXRlcl9kZXNjIjogIlZFQ1RPUjogbGlzdCB0byBiZSBzZWFyY2hlZDsgTlVNQkVSOiBzdGFydGluZyBpbmRleCAoaW5jbHVzaXZlKTsgTlVNQkVSOiBlbmRpbmcgaW5kZXggKGV4Y2x1c2l2ZSkuIiwgImRlc2NyaXB0aW9uIjogIkdldHMgbGlzdCBlbGVtZW50cyBiZXR3ZWVuIGdpdmVuIGluZGljZXMuIiwgImV4YW1wbGVfY29kZSI6ICIvLyBJbml0aWFsaXplIGEgVkVDVE9SIG9mIE1XRy5BcHBsaWNhdGlvblR5cGVcblZFQ1RPUjxNV0cuQXBwbGljYXRpb25UeXBlPiBhcHBMaXN0ID0gW1wiQXBwVHlwZUxpc3RcIl1cblxuLy8gRGVmaW5lIHRoZSBzdGFydCBhbmQgZW5kIGluZGljZXNcbk5VTUJFUiBzdGFydEluZGV4ID0gMVxuTlVNQkVSIGVuZEluZGV4ID0gM1xuXG4vLyBHZXQgdGhlIHN1Ymxpc3QgdXNpbmcgR2V0UmFuZ2VcblZFQ1RPUjxNV0cuQXBwbGljYXRpb25UeXBlPiBzdWJMaXN0ID0gR2V0UmFuZ2UoYXBwTGlzdCwgc3RhcnRJbmRleCwgZW5kSW5kZXgpXG5cbi8vIFN1Ymxpc3Q6IFwiICsgc3ViTGlzdCIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIi8vIEluaXRpYWxpemUgYSBWRUNUT1Igb2YgTVdHLkFwcGxpY2F0aW9uVHlwZVxuVkVDVE9SPE1XRy5BcHBsaWNhdGlvblR5cGU+IGFwcExpc3QgPSBbXCJBcHBUeXBlTGlzdFwiXVxuXG4vLyBEZWZpbmUgdGhlIHN0YXJ0IGFuZCBlbmQgaW5kaWNlc1xuTlVNQkVSIHN0YXJ0SW5kZXggPSAxXG5OVU1CRVIgZW5kSW5kZXggPSAzXG5cbi8vIEdldCB0aGUgc3VibGlzdCB1c2luZyBHZXRSYW5nZVxuVkVDVE9SPE1XRy5BcHBsaWNhdGlvblR5cGU+IHN1Ykxpc3QgPSBHZXRSYW5nZShhcHBMaXN0LCBzdGFydEluZGV4LCBlbmRJbmRleClcblxuLy8gU3VibGlzdDogXCIgKyBzdWJMaXN0In0sIHsibmFtZSI6ICJHZXRSYW5nZSAoVkVDVE9SPE1XRy5Ib3N0QW5kQ2VydGlmaWNhdGU+LCBOVU1CRVIsIE5VTUJFUikiLCAicmV0dXJuX3R5cGUiOiAiVkVDVE9SPE1XRy5Ib3N0QW5kQ2VydGlmaWNhdGU+IiwgInJldHVybl9kZXNjIjogIlJldHVybnMgYSBzdWJsaXN0IG9mIHRoZSBlbGVtZW50cyB3aXRoaW4gdGhlIHNwZWNpZmllZCByYW5nZSBvZiBpbmRpY2VzIGZyb20gdGhlIG9yaWdpbmFsIGxpc3QuIiwgInBhcmFtZXRlcl9kZXNjIjogIlZFQ1RPUjogbGlzdCB0byBiZSBzZWFyY2hlZDsgTlVNQkVSOiBzdGFydGluZyBpbmRleCAoaW5jbHVzaXZlKTsgTlVNQkVSOiBlbmRpbmcgaW5kZXggKGV4Y2x1c2l2ZSkuIiwgImRlc2NyaXB0aW9uIjogIkdldHMgbGlzdCBlbGVtZW50cyBiZXR3ZWVuIGdpdmVuIGluZGljZXMuIiwgImV4YW1wbGVfY29kZSI6ICIvLyBBc3N1bWUgd2UgaGF2ZSBhIFZFQ1RPUiBvZiBNV0cuSG9zdEFuZENlcnRpZmljYXRlIG9iamVjdHNcblZFQ1RPUjxNV0cuSG9zdEFuZENlcnRpZmljYXRlPiBob3N0QW5kQ2VydHMgPSBNV0cuU2VydmVySG9zdEFuZENlcnQoKSwgTVdHLlNlcnZlckhvc3RBbmRDZXJ0KCksIE1XRy5TZXJ2ZXJIb3N0QW5kQ2VydCgpLCBNV0cuU2VydmVySG9zdEFuZENlcnQoKVxuXG4vLyBEZWZpbmUgdGhlIHN0YXJ0IGluZGV4IGFuZCB0aGUgbnVtYmVyIG9mIGVsZW1lbnRzIHRvIGdldFxuTlVNQkVSIHN0YXJ0SW5kZXggPSAxXG5OVU1CRVIgY291bnQgPSAyXG5cbi8vIFVzZSB0aGUgR2V0UmFuZ2UgZnVuY3Rpb24gdG8gZ2V0IGEgc3VicmFuZ2Ugb2YgdGhlIFZFQ1RPUlxuVkVDVE9SPE1XRy5Ib3N0QW5kQ2VydGlmaWNhdGU+IHN1YlJhbmdlID0gR2V0UmFuZ2UoaG9zdEFuZENlcnRzLCBzdGFydEluZGV4LCBjb3VudClcblxuLy8gU3VicmFuZ2Ugb2YgaG9zdCBhbmQgY2VydGlmaWNhdGVzOiBcIiArIHN1YlJhbmdlIiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiLy8gQXNzdW1lIHdlIGhhdmUgYSBWRUNUT1Igb2YgTVdHLkhvc3RBbmRDZXJ0aWZpY2F0ZSBvYmplY3RzXG5WRUNUT1I8TVdHLkhvc3RBbmRDZXJ0aWZpY2F0ZT4gaG9zdEFuZENlcnRzID0gTVdHLlNlcnZlckhvc3RBbmRDZXJ0KCksIE1XRy5TZXJ2ZXJIb3N0QW5kQ2VydCgpLCBNV0cuU2VydmVySG9zdEFuZENlcnQoKSwgTVdHLlNlcnZlckhvc3RBbmRDZXJ0KClcblxuLy8gRGVmaW5lIHRoZSBzdGFydCBpbmRleCBhbmQgdGhlIG51bWJlciBvZiBlbGVtZW50cyB0byBnZXRcbk5VTUJFUiBzdGFydEluZGV4ID0gMVxuTlVNQkVSIGNvdW50ID0gMlxuXG4vLyBVc2UgdGhlIEdldFJhbmdlIGZ1bmN0aW9uIHRvIGdldCBhIHN1YnJhbmdlIG9mIHRoZSBWRUNUT1JcblZFQ1RPUjxNV0cuSG9zdEFuZENlcnRpZmljYXRlPiBzdWJSYW5nZSA9IEdldFJhbmdlKGhvc3RBbmRDZXJ0cywgc3RhcnRJbmRleCwgY291bnQpXG5cbi8vIFN1YnJhbmdlIG9mIGhvc3QgYW5kIGNlcnRpZmljYXRlczogXCIgKyBzdWJSYW5nZSJ9LCB7Im5hbWUiOiAiR2V0UmFuZ2UgKFZFQ1RPUjxNV0cuVXJsQ2F0ZWdvcnk+LCBOVU1CRVIsIE5VTUJFUikiLCAicmV0dXJuX3R5cGUiOiAiVkVDVE9SPE1XRy5VcmxDYXRlZ29yeT4iLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyBhIHN1Ymxpc3Qgb2YgdGhlIGVsZW1lbnRzIHdpdGhpbiB0aGUgc3BlY2lmaWVkIHJhbmdlIG9mIGluZGljZXMgZnJvbSB0aGUgb3JpZ2luYWwgbGlzdC4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiVkVDVE9SOiBsaXN0IHRvIGJlIHNlYXJjaGVkOyBOVU1CRVI6IHN0YXJ0aW5nIGluZGV4IChpbmNsdXNpdmUpOyBOVU1CRVI6IGVuZGluZyBpbmRleCAoZXhjbHVzaXZlKS4iLCAiZGVzY3JpcHRpb24iOiAiR2V0cyBsaXN0IGVsZW1lbnRzIGJldHdlZW4gZ2l2ZW4gaW5kaWNlcy4iLCAiZXhhbXBsZV9jb2RlIjogIi8vIEFzc3VtZSB3ZSBoYXZlIGEgVkVDVE9SIG9mIE1XRy5VcmxDYXRlZ29yeVxuVkVDVE9SPE1XRy5VcmxDYXRlZ29yeT4gdXJsQ2F0ZWdvcmllcyA9IFtcImV4YW1wbGVfbGlzdFwiXVxuXG4vLyBEZWZpbmUgdGhlIHN0YXJ0IGFuZCBlbmQgaW5kaWNlcyBmb3IgdGhlIHJhbmdlXG5OVU1CRVIgc3RhcnRJbmRleCA9IDFcbk5VTUJFUiBlbmRJbmRleCA9IDNcblxuLy8gR2V0IHRoZSByYW5nZSBvZiBVUkwgY2F0ZWdvcmllc1xuVkVDVE9SPE1XRy5VcmxDYXRlZ29yeT4gcmFuZ2VDYXRlZ29yaWVzID0gR2V0UmFuZ2UodXJsQ2F0ZWdvcmllcywgc3RhcnRJbmRleCwgZW5kSW5kZXgpXG5cbi8vIFJhbmdlIG9mIFVSTCBDYXRlZ29yaWVzOiBcbi8vIHJhbmdlQ2F0ZWdvcmllcyIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIi8vIEFzc3VtZSB3ZSBoYXZlIGEgVkVDVE9SIG9mIE1XRy5VcmxDYXRlZ29yeVxuVkVDVE9SPE1XRy5VcmxDYXRlZ29yeT4gdXJsQ2F0ZWdvcmllcyA9IFtcImV4YW1wbGVfbGlzdFwiXVxuXG4vLyBEZWZpbmUgdGhlIHN0YXJ0IGFuZCBlbmQgaW5kaWNlcyBmb3IgdGhlIHJhbmdlXG5OVU1CRVIgc3RhcnRJbmRleCA9IDFcbk5VTUJFUiBlbmRJbmRleCA9IDNcblxuLy8gR2V0IHRoZSByYW5nZSBvZiBVUkwgY2F0ZWdvcmllc1xuVkVDVE9SPE1XRy5VcmxDYXRlZ29yeT4gcmFuZ2VDYXRlZ29yaWVzID0gR2V0UmFuZ2UodXJsQ2F0ZWdvcmllcywgc3RhcnRJbmRleCwgZW5kSW5kZXgpXG5cbi8vIFJhbmdlIG9mIFVSTCBDYXRlZ29yaWVzOiBcbi8vIHJhbmdlQ2F0ZWdvcmllcyJ9LCB7Im5hbWUiOiAiR2V0UmFuZ2UgKFZFQ1RPUjxOZXQuSVA+LCBOVU1CRVIsIE5VTUJFUikiLCAicmV0dXJuX3R5cGUiOiAiVkVDVE9SPE5ldC5JUD4iLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyBhIHN1Ymxpc3Qgb2YgdGhlIGVsZW1lbnRzIHdpdGhpbiB0aGUgc3BlY2lmaWVkIHJhbmdlIG9mIGluZGljZXMgZnJvbSB0aGUgb3JpZ2luYWwgbGlzdC4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiVkVDVE9SOiBsaXN0IHRvIGJlIHNlYXJjaGVkOyBOVU1CRVI6IHN0YXJ0aW5nIGluZGV4IChpbmNsdXNpdmUpOyBOVU1CRVI6IGVuZGluZyBpbmRleCAoZXhjbHVzaXZlKS4iLCAiZGVzY3JpcHRpb24iOiAiR2V0cyBsaXN0IGVsZW1lbnRzIGJldHdlZW4gZ2l2ZW4gaW5kaWNlcy4iLCAiZXhhbXBsZV9jb2RlIjogIi8vIERlZmluZSBhIHZlY3RvciBvZiBJUCBhZGRyZXNzZXNcblZFQ1RPUjxOZXQuSVA+IGlwQWRkcmVzc2VzID0gTmV0LklQKFwiMTkyLjE2OC4xLjFcIiksIE5ldC5JUChcIjE5Mi4xNjguMS4yXCIpLCBOZXQuSVAoXCIxOTIuMTY4LjEuM1wiKSwgTmV0LklQKFwiMTkyLjE2OC4xLjRcIiksIE5ldC5JUChcIjE5Mi4xNjguMS41XCIpXG5cbi8vIEV4dHJhY3QgYSBzdWJyYW5nZSBvZiBJUCBhZGRyZXNzZXMgZnJvbSB0aGUgdmVjdG9yXG5WRUNUT1I8TmV0LklQPiBzdWJSYW5nZSA9IEdldFJhbmdlKGlwQWRkcmVzc2VzLCAxLCAzKVxuXG4vLyBQcmludCB0aGUgZXh0cmFjdGVkIHN1YnJhbmdlIHRvIHRoZSBjb25zb2xlXG4vLyBFeHRyYWN0ZWQgSVAgUmFuZ2U6IFwiICsgc3ViUmFuZ2UiLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICIvLyBEZWZpbmUgYSB2ZWN0b3Igb2YgSVAgYWRkcmVzc2VzXG5WRUNUT1I8TmV0LklQPiBpcEFkZHJlc3NlcyA9IE5ldC5JUChcIjE5Mi4xNjguMS4xXCIpLCBOZXQuSVAoXCIxOTIuMTY4LjEuMlwiKSwgTmV0LklQKFwiMTkyLjE2OC4xLjNcIiksIE5ldC5JUChcIjE5Mi4xNjguMS40XCIpLCBOZXQuSVAoXCIxOTIuMTY4LjEuNVwiKVxuXG4vLyBFeHRyYWN0IGEgc3VicmFuZ2Ugb2YgSVAgYWRkcmVzc2VzIGZyb20gdGhlIHZlY3RvclxuVkVDVE9SPE5ldC5JUD4gc3ViUmFuZ2UgPSBHZXRSYW5nZShpcEFkZHJlc3NlcywgMSwgMylcblxuLy8gUHJpbnQgdGhlIGV4dHJhY3RlZCBzdWJyYW5nZSB0byB0aGUgY29uc29sZVxuLy8gRXh0cmFjdGVkIElQIFJhbmdlOiBcIiArIHN1YlJhbmdlIn0sIHsibmFtZSI6ICJHZXRSYW5nZSAoVkVDVE9SPE5ldC5JUFJhbmdlPiwgTlVNQkVSLCBOVU1CRVIpIiwgInJldHVybl90eXBlIjogIlZFQ1RPUjxOZXQuSVBSYW5nZT4iLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyBhIHN1Ymxpc3Qgb2YgdGhlIGVsZW1lbnRzIHdpdGhpbiB0aGUgc3BlY2lmaWVkIHJhbmdlIG9mIGluZGljZXMgZnJvbSB0aGUgb3JpZ2luYWwgbGlzdC4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiVkVDVE9SOiBsaXN0IHRvIGJlIHNlYXJjaGVkOyBOVU1CRVI6IHN0YXJ0aW5nIGluZGV4IChpbmNsdXNpdmUpOyBOVU1CRVI6IGVuZGluZyBpbmRleCAoZXhjbHVzaXZlKS4iLCAiZGVzY3JpcHRpb24iOiAiR2V0cyBsaXN0IGVsZW1lbnRzIGJldHdlZW4gZ2l2ZW4gaW5kaWNlcy4iLCAiZXhhbXBsZV9jb2RlIjogIi8vIERlZmluZSBhIHZlY3RvciBvZiBJUCByYW5nZXNcblZFQ1RPUjxOZXQuSVBSYW5nZT4gaXBSYW5nZXMgPSBcIjE5Mi4xNjguMS4wLzI0XCIsIFwiMTAuMC4wLjAvOFwiLCBcIjE3Mi4xNi4wLjAvMTJcIlxuXG4vLyBEZWZpbmUgdGhlIHN0YXJ0IGFuZCBlbmQgaW5kaWNlcyBmb3IgdGhlIHJhbmdlIHlvdSB3YW50IHRvIGdldFxuTlVNQkVSIHN0YXJ0SW5kZXggPSAxXG5OVU1CRVIgZW5kSW5kZXggPSAyXG5cbi8vIEdldCB0aGUgc3VicmFuZ2Ugb2YgSVAgcmFuZ2VzXG5WRUNUT1I8TmV0LklQUmFuZ2U+IHN1YlJhbmdlID0gR2V0UmFuZ2UoaXBSYW5nZXMsIHN0YXJ0SW5kZXgsIGVuZEluZGV4KVxuXG4vLyBTdWJyYW5nZSBvZiBJUCByYW5nZXM6IFxuLy8gQ29tbWVudGVkIG91dCB0aGUgREVCVUcgbGluZSwgcmVwbGFjZSBpdCB3aXRoIHlvdXIgb3duIGNvbnNvbGUgbG9nIG9yIHByaW50IHN0YXRlbWVudCBpZiBuZWVkZWRcbi8vIFwiU3VicmFuZ2Ugb2YgSVAgcmFuZ2VzOiBcIiArIHN1YlJhbmdlIiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiLy8gRGVmaW5lIGEgdmVjdG9yIG9mIElQIHJhbmdlc1xuVkVDVE9SPE5ldC5JUFJhbmdlPiBpcFJhbmdlcyA9IFwiMTkyLjE2OC4xLjAvMjRcIiwgXCIxMC4wLjAuMC84XCIsIFwiMTcyLjE2LjAuMC8xMlwiXG5cbi8vIERlZmluZSB0aGUgc3RhcnQgYW5kIGVuZCBpbmRpY2VzIGZvciB0aGUgcmFuZ2UgeW91IHdhbnQgdG8gZ2V0XG5OVU1CRVIgc3RhcnRJbmRleCA9IDFcbk5VTUJFUiBlbmRJbmRleCA9IDJcblxuLy8gR2V0IHRoZSBzdWJyYW5nZSBvZiBJUCByYW5nZXNcblZFQ1RPUjxOZXQuSVBSYW5nZT4gc3ViUmFuZ2UgPSBHZXRSYW5nZShpcFJhbmdlcywgc3RhcnRJbmRleCwgZW5kSW5kZXgpXG5cbi8vIFN1YnJhbmdlIG9mIElQIHJhbmdlczogXG4vLyBDb21tZW50ZWQgb3V0IHRoZSBERUJVRyBsaW5lLCByZXBsYWNlIGl0IHdpdGggeW91ciBvd24gY29uc29sZSBsb2cgb3IgcHJpbnQgc3RhdGVtZW50IGlmIG5lZWRlZFxuLy8gXCJTdWJyYW5nZSBvZiBJUCByYW5nZXM6IFwiICsgc3ViUmFuZ2UifSwgeyJuYW1lIjogIkdldFJhbmdlIChWRUNUT1I8TlVNQkVSPiwgTlVNQkVSLCBOVU1CRVIpIiwgInJldHVybl90eXBlIjogIlZFQ1RPUjxOVU1CRVI+IiwgInJldHVybl9kZXNjIjogIlJldHVybnMgYSBzdWJsaXN0IG9mIHRoZSBlbGVtZW50cyB3aXRoaW4gdGhlIHNwZWNpZmllZCByYW5nZSBvZiBpbmRpY2VzIGZyb20gdGhlIG9yaWdpbmFsIGxpc3QuIiwgInBhcmFtZXRlcl9kZXNjIjogIlZFQ1RPUjogbGlzdCB0byBiZSBzZWFyY2hlZDsgTlVNQkVSOiBzdGFydGluZyBpbmRleCAoaW5jbHVzaXZlKTsgTlVNQkVSOiBlbmRpbmcgaW5kZXggKGV4Y2x1c2l2ZSkuIiwgImRlc2NyaXB0aW9uIjogIkdldHMgbGlzdCBlbGVtZW50cyBiZXR3ZWVuIGdpdmVuIGluZGljZXMuIiwgImV4YW1wbGVfY29kZSI6ICIvLyBJbml0aWFsaXplIGEgVkVDVE9SIG9mIE5VTUJFUnNcblZFQ1RPUjxOVU1CRVI+IG51bWJlcnMgPSAxLCAyLCAzLCA0LCA1LCA2LCA3LCA4LCA5LCAxMFxuXG4vLyBEZWZpbmUgdGhlIHN0YXJ0IGFuZCBlbmQgaW5kaWNlc1xuTlVNQkVSIHN0YXJ0SW5kZXggPSAyXG5OVU1CRVIgZW5kSW5kZXggPSA1XG5cbi8vIEdldCB0aGUgc3VibGlzdCBvZiBudW1iZXJzIHdpdGhpbiB0aGUgc3BlY2lmaWVkIHJhbmdlXG5WRUNUT1I8TlVNQkVSPiBzdWJsaXN0ID0gR2V0UmFuZ2UobnVtYmVycywgc3RhcnRJbmRleCwgZW5kSW5kZXgpXG5cbi8vIFN1Ymxpc3Q6IFwiICsgc3VibGlzdCIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIi8vIEluaXRpYWxpemUgYSBWRUNUT1Igb2YgTlVNQkVSc1xuVkVDVE9SPE5VTUJFUj4gbnVtYmVycyA9IDEsIDIsIDMsIDQsIDUsIDYsIDcsIDgsIDksIDEwXG5cbi8vIERlZmluZSB0aGUgc3RhcnQgYW5kIGVuZCBpbmRpY2VzXG5OVU1CRVIgc3RhcnRJbmRleCA9IDJcbk5VTUJFUiBlbmRJbmRleCA9IDVcblxuLy8gR2V0IHRoZSBzdWJsaXN0IG9mIG51bWJlcnMgd2l0aGluIHRoZSBzcGVjaWZpZWQgcmFuZ2VcblZFQ1RPUjxOVU1CRVI+IHN1Ymxpc3QgPSBHZXRSYW5nZShudW1iZXJzLCBzdGFydEluZGV4LCBlbmRJbmRleClcblxuLy8gU3VibGlzdDogXCIgKyBzdWJsaXN0In0sIHsibmFtZSI6ICJHZXRSYW5nZSAoVkVDVE9SPFNUUklORz4sIE5VTUJFUiwgTlVNQkVSKSIsICJyZXR1cm5fdHlwZSI6ICJWRUNUT1I8U1RSSU5HPiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIGEgc3VibGlzdCBvZiB0aGUgZWxlbWVudHMgd2l0aGluIHRoZSBzcGVjaWZpZWQgcmFuZ2Ugb2YgaW5kaWNlcyBmcm9tIHRoZSBvcmlnaW5hbCBsaXN0LiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJWRUNUT1I6IGxpc3QgdG8gYmUgc2VhcmNoZWQ7IE5VTUJFUjogc3RhcnRpbmcgaW5kZXggKGluY2x1c2l2ZSk7IE5VTUJFUjogZW5kaW5nIGluZGV4IChleGNsdXNpdmUpLiIsICJkZXNjcmlwdGlvbiI6ICJHZXRzIGxpc3QgZWxlbWVudHMgYmV0d2VlbiBnaXZlbiBpbmRpY2VzLiIsICJleGFtcGxlX2NvZGUiOiAiLy8gSW5pdGlhbGl6ZSBhIFZFQ1RPUiBvZiBTVFJJTkdzXG5WRUNUT1I8U1RSSU5HPiBleGFtcGxlTGlzdCA9IFwiYXBwbGVcIiwgXCJiYW5hbmFcIiwgXCJjaGVycnlcIiwgXCJkYXRlXCIsIFwiZWxkZXJiZXJyeVwiLCBcImZpZ1wiLCBcImdyYXBlXCJcblxuLy8gRGVmaW5lIHRoZSBzdGFydCBhbmQgZW5kIGluZGljZXNcbk5VTUJFUiBzdGFydEluZGV4ID0gMlxuTlVNQkVSIGVuZEluZGV4ID0gNVxuXG4vLyBHZXQgdGhlIHN1Ymxpc3QgdXNpbmcgR2V0UmFuZ2VcblZFQ1RPUjxTVFJJTkc+IHN1Ymxpc3QgPSBHZXRSYW5nZShleGFtcGxlTGlzdCwgc3RhcnRJbmRleCwgZW5kSW5kZXgpXG5cbi8vIFN1Ymxpc3Q6IFwiICsgc3VibGlzdCB3YXMgcHJpbnRlZCB0byB0aGUgY29uc29sZVxuLy8gU3VibGlzdDogXCIgKyBzdWJsaXN0IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiLy8gSW5pdGlhbGl6ZSBhIFZFQ1RPUiBvZiBTVFJJTkdzXG5WRUNUT1I8U1RSSU5HPiBleGFtcGxlTGlzdCA9IFwiYXBwbGVcIiwgXCJiYW5hbmFcIiwgXCJjaGVycnlcIiwgXCJkYXRlXCIsIFwiZWxkZXJiZXJyeVwiLCBcImZpZ1wiLCBcImdyYXBlXCJcblxuLy8gRGVmaW5lIHRoZSBzdGFydCBhbmQgZW5kIGluZGljZXNcbk5VTUJFUiBzdGFydEluZGV4ID0gMlxuTlVNQkVSIGVuZEluZGV4ID0gNVxuXG4vLyBHZXQgdGhlIHN1Ymxpc3QgdXNpbmcgR2V0UmFuZ2VcblZFQ1RPUjxTVFJJTkc+IHN1Ymxpc3QgPSBHZXRSYW5nZShleGFtcGxlTGlzdCwgc3RhcnRJbmRleCwgZW5kSW5kZXgpXG5cbi8vIFN1Ymxpc3Q6IFwiICsgc3VibGlzdCB3YXMgcHJpbnRlZCB0byB0aGUgY29uc29sZVxuLy8gU3VibGlzdDogXCIgKyBzdWJsaXN0In0sIHsibmFtZSI6ICJHZXRUeXBlIChKU09OKSIsICJyZXR1cm5fdHlwZSI6ICJTVFJJTkciLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyB0aGUgZGF0YSB0eXBlIG9mIHRoZSBnaXZlbiBKU09OIG5vZGUgYXMgYSBzdHJpbmcuIiwgInBhcmFtZXRlcl9kZXNjIjogIkpTT046IGlucHV0IHRvIGRldGVybWluZSBub2RlIHR5cGUgb2YuIiwgImRlc2NyaXB0aW9uIjogIkdldHMgdHlwZSBvZiBKU09OIG5vZGUuIiwgImV4YW1wbGVfY29kZSI6ICIvLyBDcmVhdGUgYSBKU09OIG9iamVjdFxuSlNPTiBteUpzb24gPSB7fVxuXG4vLyBDcmVhdGUgYSBNQVAgdG8gaG9sZCB0aGUgdmFsdWVcbk1BUDxTVFJJTkcsIE1XRy5JbnRlcm5hbFZhcmlhbnQ+IHZhbHVlTWFwXG52YWx1ZU1hcFtcImtleTFcIl0gPSBcInZhbHVlMVwiXG52YWx1ZU1hcFtcImtleTJcIl0gPSAxMjNcblxuLy8gU2V0IHRoZSB2YWx1ZSBpbiB0aGUgSlNPTiBvYmplY3Rcbm15SnNvbiA9IEpTT04uU2V0KG15SnNvbiwgXCJleGFtcGxlS2V5XCIsIHZhbHVlTWFwKVxuXG4vLyBTZXQgYSB1c2VyLWRlZmluZWQgdmFyaWFibGUgd2l0aCB0aGUgbW9kaWZpZWQgSlNPTlxuTVdHLlNldFVzZXJEZWZpbmVkVmFyKFwiZXhhbXBsZVZhclwiLCBteUpzb24pXG5cbi8vIFByaW50IHRoZSBKU09OIG9iamVjdCB0byB0aGUgY29uc29sZSBmb3IgZGVidWdnaW5nXG4vLyBteUpzb24iLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICIvLyBDcmVhdGUgYSBKU09OIG9iamVjdFxuSlNPTiBteUpzb24gPSB7fVxuXG4vLyBDcmVhdGUgYSBNQVAgdG8gaG9sZCB0aGUgdmFsdWVcbk1BUDxTVFJJTkcsIE1XRy5JbnRlcm5hbFZhcmlhbnQ+IHZhbHVlTWFwXG52YWx1ZU1hcFtcImtleTFcIl0gPSBcInZhbHVlMVwiXG52YWx1ZU1hcFtcImtleTJcIl0gPSAxMjNcblxuLy8gU2V0IHRoZSB2YWx1ZSBpbiB0aGUgSlNPTiBvYmplY3Rcbm15SnNvbiA9IEpTT04uU2V0KG15SnNvbiwgXCJleGFtcGxlS2V5XCIsIHZhbHVlTWFwKVxuXG4vLyBTZXQgYSB1c2VyLWRlZmluZWQgdmFyaWFibGUgd2l0aCB0aGUgbW9kaWZpZWQgSlNPTlxuTVdHLlNldFVzZXJEZWZpbmVkVmFyKFwiZXhhbXBsZVZhclwiLCBteUpzb24pXG5cbi8vIFByaW50IHRoZSBKU09OIG9iamVjdCB0byB0aGUgY29uc29sZSBmb3IgZGVidWdnaW5nXG4vLyBteUpzb24ifSwgeyJuYW1lIjogIkhhc0tleSAoTUFQPFNUUklORywgU1RSSU5HPiwgU1RSSU5HKSIsICJyZXR1cm5fdHlwZSI6ICJCT09MRUFOIiwgInJldHVybl9kZXNjIjogIlJldHVybnNgVFJVRWBpZiB0aGUgbWFwIGhhcyB0aGUgZ2l2ZW4ga2V5LiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJNQVA8U1RSSU5HLCBTVFJJTkc+OiBtYXAgdG8gc2VhcmNoOyBTVFJJTkc6IGtleSB0byBzZWFyY2ggZm9yLiIsICJkZXNjcmlwdGlvbiI6ICJDaGVja3MgaWYgYSBtYXAgaGFzIGEgZ2l2ZW4ga2V5LiIsICJleGFtcGxlX2NvZGUiOiAiTUFQPFNUUklORywgU1RSSU5HPiBoZWFkZXJzID0gTVdHLkdldFJlcXVlc3RIZWFkZXJzKClcblNUUklORyBrZXlUb0NoZWNrID0gXCJVc2VyLUFnZW50XCJcblxuSUYgSGFzS2V5KGhlYWRlcnMsIGtleVRvQ2hlY2spIFRIRU4ge1xuICAgIC8vIEtleSBleGlzdHMgaW4gdGhlIGhlYWRlcnMgbWFwLlxufSBFTFNFIHtcbiAgICAvLyBLZXkgZG9lcyBub3QgZXhpc3QgaW4gdGhlIGhlYWRlcnMgbWFwLlxufSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIk1BUDxTVFJJTkcsIFNUUklORz4gaGVhZGVycyA9IE1XRy5HZXRSZXF1ZXN0SGVhZGVycygpXG5TVFJJTkcga2V5VG9DaGVjayA9IFwiVXNlci1BZ2VudFwiXG5cbklGIEhhc0tleShoZWFkZXJzLCBrZXlUb0NoZWNrKSBUSEVOIHtcbiAgICAvLyBLZXkgZXhpc3RzIGluIHRoZSBoZWFkZXJzIG1hcC5cbn0gRUxTRSB7XG4gICAgLy8gS2V5IGRvZXMgbm90IGV4aXN0IGluIHRoZSBoZWFkZXJzIG1hcC5cbn0ifSwgeyJuYW1lIjogIkluaXRpYWxUcmlnZ2VyICgpIiwgInJldHVybl90eXBlIjogIlNUUklORyIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIHRoZSBpbml0aWFsIHRyaWdnZXIgYXMgYSBzdHJpbmcuIiwgInBhcmFtZXRlcl9kZXNjIjogIk5vbmUiLCAiZGVzY3JpcHRpb24iOiAiUmV0dXJucyB0aGUgaW5pdGlhbCB0cmlnZ2VyLiIsICJleGFtcGxlX2NvZGUiOiAiLy8gUm91dGluZSB0cmlnZ2VyZWQgb24gV2ViLlJlcXVlc3Qgb3IgV2ViLlJlc3BvbnNlXG5cbi8vIEV4YW1wbGUgY29uZGl0aW9uXG5JRiBNV0cuVXJsKCkuSG9zdCA9PSBcImV4YW1wbGUuY29tXCIgVEhFTiB7XG4gICAgTVdHLkJsb2NrKFwiQWNjZXNzIHRvIGV4YW1wbGUuY29tIGlzIGJsb2NrZWRcIilcbn0gRUxTRSB7XG4gICAgTVdHLkFsbG93KFwiQWNjZXNzIGFsbG93ZWRcIilcbn0iLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICIvLyBSb3V0aW5lIHRyaWdnZXJlZCBvbiBXZWIuUmVxdWVzdCBvciBXZWIuUmVzcG9uc2VcblxuLy8gRXhhbXBsZSBjb25kaXRpb25cbklGIE1XRy5VcmwoKS5Ib3N0ID09IFwiZXhhbXBsZS5jb21cIiBUSEVOIHtcbiAgICBNV0cuQmxvY2soXCJBY2Nlc3MgdG8gZXhhbXBsZS5jb20gaXMgYmxvY2tlZFwiKVxufSBFTFNFIHtcbiAgICBNV0cuQWxsb3coXCJBY2Nlc3MgYWxsb3dlZFwiKVxufSJ9LCB7Im5hbWUiOiAiSW5zZXJ0IChSZWdFeEpTaS5MaXN0LCBSZWdFeEpTaSwgTlVNQkVSKSIsICJyZXR1cm5fdHlwZSI6ICJSZWdFeEpTaS5MaXN0IiwgInJldHVybl9kZXNjIjogIlJldHVybnMgYSBsaXN0IHdpdGggdGhlIGVsZW1lbnQgaW5zZXJ0ZWQgYXQgdGhlIHNwZWNpZmllZCBwb3NpdGlvbi4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiUmVnRXhKU2kuTGlzdDogdGhlIGxpc3QgdG8gaW5zZXJ0IGludG87IFJlZ0V4SlNpOiB0aGUgZWxlbWVudCB0byBpbnNlcnQ7IE5VTUJFUjogdGhlIHBvc2l0aW9uIHRvIGluc2VydCB0aGUgZWxlbWVudCBhdC4iLCAiZGVzY3JpcHRpb24iOiAiSW5zZXJ0cyBlbGVtZW50IGF0IGdpdmVuIHBvc2l0aW9uLiIsICJleGFtcGxlX2NvZGUiOiAiLy8gQ3JlYXRlIGEgbmV3IFJlZ0V4SlNpLkxpc3RcblJlZ0V4SlNpLkxpc3QgcmVnZXhMaXN0ID0gUmVnRXhKU2kuTGlzdCgpXG5cbi8vIENyZWF0ZSBhIG5ldyBSZWdFeEpTaSBvYmplY3RcblJlZ0V4SlNpIHJlZ2V4MSA9IFJlZ0V4SlNpKFwicGF0dGVybjFcIilcblJlZ0V4SlNpIHJlZ2V4MiA9IFJlZ0V4SlNpKFwicGF0dGVybjJcIilcblxuLy8gSW5zZXJ0IHRoZSBmaXJzdCByZWdleCBhdCBwb3NpdGlvbiAwXG5yZWdleExpc3QuSW5zZXJ0KHJlZ2V4MSwgMClcblxuLy8gSW5zZXJ0IHRoZSBzZWNvbmQgcmVnZXggYXQgcG9zaXRpb24gMVxucmVnZXhMaXN0Lkluc2VydChyZWdleDIsIDEpXG5cbi8vIERlYnVnIG91dHB1dCB0byB2ZXJpZnkgdGhlIGluc2VydGlvbiB3YXMgcmVwbGFjZWQgd2l0aCBhIGNvbW1lbnRcbi8vIEZpcnN0IHJlZ2V4IHBhdHRlcm46IHJlZ2V4TGlzdFswXS5QYXR0ZXJuKClcbi8vIFNlY29uZCByZWdleCBwYXR0ZXJuOiByZWdleExpc3RbMV0uUGF0dGVybigpIiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiLy8gQ3JlYXRlIGEgbmV3IFJlZ0V4SlNpLkxpc3RcblJlZ0V4SlNpLkxpc3QgcmVnZXhMaXN0ID0gUmVnRXhKU2kuTGlzdCgpXG5cbi8vIENyZWF0ZSBhIG5ldyBSZWdFeEpTaSBvYmplY3RcblJlZ0V4SlNpIHJlZ2V4MSA9IFJlZ0V4SlNpKFwicGF0dGVybjFcIilcblJlZ0V4SlNpIHJlZ2V4MiA9IFJlZ0V4SlNpKFwicGF0dGVybjJcIilcblxuLy8gSW5zZXJ0IHRoZSBmaXJzdCByZWdleCBhdCBwb3NpdGlvbiAwXG5yZWdleExpc3QuSW5zZXJ0KHJlZ2V4MSwgMClcblxuLy8gSW5zZXJ0IHRoZSBzZWNvbmQgcmVnZXggYXQgcG9zaXRpb24gMVxucmVnZXhMaXN0Lkluc2VydChyZWdleDIsIDEpXG5cbi8vIERlYnVnIG91dHB1dCB0byB2ZXJpZnkgdGhlIGluc2VydGlvbiB3YXMgcmVwbGFjZWQgd2l0aCBhIGNvbW1lbnRcbi8vIEZpcnN0IHJlZ2V4IHBhdHRlcm46IHJlZ2V4TGlzdFswXS5QYXR0ZXJuKClcbi8vIFNlY29uZCByZWdleCBwYXR0ZXJuOiByZWdleExpc3RbMV0uUGF0dGVybigpIn0sIHsibmFtZSI6ICJJbnNlcnQgKFNUUklORywgTlVNQkVSLCBTVFJJTkcpIiwgInJldHVybl90eXBlIjogIlNUUklORyIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIGEgbmV3IHN0cmluZyB3aXRoIHRoZSBzZWNvbmQgc3RyaW5nIGluc2VydGVkIGF0IHRoZSBzcGVjaWZpZWQgcG9zaXRpb24gaW4gdGhlIGZpcnN0IHN0cmluZy4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiU1RSSU5HOiBUaGUgb3JpZ2luYWwgU1RSSU5HLCBOVU1CRVI6IFRoZSBwb3NpdGlvbiB3aGVyZSB0aGUgbmV3IFNUUklORyB3aWxsIGJlIGluc2VydGVkLCBTVFJJTkc6IFRoZSBTVFJJTkcgdG8gYmUgaW5zZXJ0ZWQuIiwgImRlc2NyaXB0aW9uIjogIkluc2VydHMgdGhlIHN0cmluZyBhdCB0aGUgZ2l2ZW4gcG9zaXRpb24gYW5kIHJldHVybnMgdGhlIHJlc3VsdC4iLCAiZXhhbXBsZV9jb2RlIjogIlNUUklORyBvcmlnaW5hbFN0cmluZyA9IFwiSGVsbG8gV29ybGRcIlxuTlVNQkVSIHBvc2l0aW9uID0gNlxuU1RSSU5HIHN0cmluZ1RvSW5zZXJ0ID0gXCJCZWF1dGlmdWwgXCJcblxuU1RSSU5HIHJlc3VsdFN0cmluZyA9IEluc2VydChvcmlnaW5hbFN0cmluZywgcG9zaXRpb24sIHN0cmluZ1RvSW5zZXJ0KVxuLy8gT3V0cHV0IHdpbGwgYmUgXCJIZWxsbyBCZWF1dGlmdWwgV29ybGRcIiIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIlNUUklORyBvcmlnaW5hbFN0cmluZyA9IFwiSGVsbG8gV29ybGRcIlxuTlVNQkVSIHBvc2l0aW9uID0gNlxuU1RSSU5HIHN0cmluZ1RvSW5zZXJ0ID0gXCJCZWF1dGlmdWwgXCJcblxuU1RSSU5HIHJlc3VsdFN0cmluZyA9IEluc2VydChvcmlnaW5hbFN0cmluZywgcG9zaXRpb24sIHN0cmluZ1RvSW5zZXJ0KVxuLy8gT3V0cHV0IHdpbGwgYmUgXCJIZWxsbyBCZWF1dGlmdWwgV29ybGRcIiJ9LCB7Im5hbWUiOiAiSW5zZXJ0IChWRUNUT1I8TWVkaWFUeXBlPiwgTWVkaWFUeXBlLCBOVU1CRVIpIiwgInJldHVybl90eXBlIjogIlZFQ1RPUjxNZWRpYVR5cGU+IiwgInJldHVybl9kZXNjIjogIlJldHVybnMgYSB2ZWN0b3Igd2l0aCB0aGUgbmV3IGVsZW1lbnQgaW5zZXJ0ZWQgYXQgdGhlIHNwZWNpZmllZCBwb3NpdGlvbi4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiVkVDVE9SOiBsaXN0IHRvIGluc2VydCBpbnRvOyBNZWRpYVR5cGU6IGVsZW1lbnQgdG8gaW5zZXJ0OyBOVU1CRVI6IHBvc2l0aW9uIHRvIGluc2VydCB0aGUgZWxlbWVudCBhdC4iLCAiZGVzY3JpcHRpb24iOiAiSW5zZXJ0cyBhbiBlbGVtZW50IGF0IGEgZ2l2ZW4gcG9zaXRpb24uIiwgImV4YW1wbGVfY29kZSI6ICIvLyBJbml0aWFsaXplIGEgVkVDVE9SIG9mIE1lZGlhVHlwZSB3aXRoIHNvbWUgaW5pdGlhbCB2YWx1ZXNcblZFQ1RPUjxNZWRpYVR5cGU+IG1lZGlhVHlwZXMgPSBNZWRpYVR5cGUoXCJ0ZXh0L2h0bWxcIiksIE1lZGlhVHlwZShcImltYWdlL3BuZ1wiKSwgTWVkaWFUeXBlKFwiYXBwbGljYXRpb24veG1sXCIpXG5cbi8vIENyZWF0ZSBhIG5ldyBNZWRpYVR5cGUgb2JqZWN0IHRvIGluc2VydFxuTWVkaWFUeXBlIG5ld01lZGlhVHlwZSA9IE1lZGlhVHlwZShcImFwcGxpY2F0aW9uL2pzb25cIilcblxuLy8gU3BlY2lmeSB0aGUgcG9zaXRpb24gdG8gaW5zZXJ0IHRoZSBuZXcgTWVkaWFUeXBlXG5OVU1CRVIgcG9zaXRpb24gPSAxXG5cbi8vIEluc2VydCB0aGUgbmV3IE1lZGlhVHlwZSBpbnRvIHRoZSBWRUNUT1IgYXQgdGhlIHNwZWNpZmllZCBwb3NpdGlvblxubWVkaWFUeXBlcyA9IEluc2VydChtZWRpYVR5cGVzLCBuZXdNZWRpYVR5cGUsIHBvc2l0aW9uKVxuXG4vLyBEZWJ1ZyBvdXRwdXQgdG8gdmVyaWZ5IHRoZSBpbnNlcnRpb25cbi8vIFwiVXBkYXRlZCBtZWRpYVR5cGVzOiBcIiArIG1lZGlhVHlwZXMiLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICIvLyBJbml0aWFsaXplIGEgVkVDVE9SIG9mIE1lZGlhVHlwZSB3aXRoIHNvbWUgaW5pdGlhbCB2YWx1ZXNcblZFQ1RPUjxNZWRpYVR5cGU+IG1lZGlhVHlwZXMgPSBNZWRpYVR5cGUoXCJ0ZXh0L2h0bWxcIiksIE1lZGlhVHlwZShcImltYWdlL3BuZ1wiKSwgTWVkaWFUeXBlKFwiYXBwbGljYXRpb24veG1sXCIpXG5cbi8vIENyZWF0ZSBhIG5ldyBNZWRpYVR5cGUgb2JqZWN0IHRvIGluc2VydFxuTWVkaWFUeXBlIG5ld01lZGlhVHlwZSA9IE1lZGlhVHlwZShcImFwcGxpY2F0aW9uL2pzb25cIilcblxuLy8gU3BlY2lmeSB0aGUgcG9zaXRpb24gdG8gaW5zZXJ0IHRoZSBuZXcgTWVkaWFUeXBlXG5OVU1CRVIgcG9zaXRpb24gPSAxXG5cbi8vIEluc2VydCB0aGUgbmV3IE1lZGlhVHlwZSBpbnRvIHRoZSBWRUNUT1IgYXQgdGhlIHNwZWNpZmllZCBwb3NpdGlvblxubWVkaWFUeXBlcyA9IEluc2VydChtZWRpYVR5cGVzLCBuZXdNZWRpYVR5cGUsIHBvc2l0aW9uKVxuXG4vLyBEZWJ1ZyBvdXRwdXQgdG8gdmVyaWZ5IHRoZSBpbnNlcnRpb25cbi8vIFwiVXBkYXRlZCBtZWRpYVR5cGVzOiBcIiArIG1lZGlhVHlwZXMifSwgeyJuYW1lIjogIkluc2VydCAoVkVDVE9SPE1XRy5BcHBsaWNhdGlvbkNhdGVnb3J5VHlwZT4sIE1XRy5BcHBsaWNhdGlvbkNhdGVnb3J5VHlwZSwgTlVNQkVSKSIsICJyZXR1cm5fdHlwZSI6ICJWRUNUT1I8TVdHLkFwcGxpY2F0aW9uQ2F0ZWdvcnlUeXBlPiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIGEgdmVjdG9yIHdpdGggdGhlIGdpdmVuIGVsZW1lbnQgaW5zZXJ0ZWQgYXQgdGhlIHNwZWNpZmllZCBwb3NpdGlvbi4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiVkVDVE9SOiBUaGUgVkVDVE9SIGluIHdoaWNoIHRvIGluc2VydCB0aGUgZWxlbWVudDsgTVdHLkFwcGxpY2F0aW9uQ2F0ZWdvcnlUeXBlOiB0aGUgZWxlbWVudCB0byBpbnNlcnQ7IE5VTUJFUjogdGhlIHBvc2l0aW9uIGF0IHdoaWNoIHRvIGluc2VydCB0aGUgZWxlbWVudC4iLCAiZGVzY3JpcHRpb24iOiAiSW5zZXJ0cyBhbiBlbGVtZW50IGF0IGEgZ2l2ZW4gcG9zaXRpb24uIiwgImV4YW1wbGVfY29kZSI6ICIvLyBJbml0aWFsaXplIGEgVkVDVE9SIG9mIE1XRy5BcHBsaWNhdGlvbkNhdGVnb3J5VHlwZVxuVkVDVE9SPE1XRy5BcHBsaWNhdGlvbkNhdGVnb3J5VHlwZT4gYXBwQ2F0ZWdvcmllcyA9IFtcImNhdGVnb3J5MVwiLCBcImNhdGVnb3J5MlwiLCBcImNhdGVnb3J5M1wiXVxuXG4vLyBDcmVhdGUgYSBuZXcgTVdHLkFwcGxpY2F0aW9uQ2F0ZWdvcnlUeXBlIHRvIGluc2VydFxuTVdHLkFwcGxpY2F0aW9uQ2F0ZWdvcnlUeXBlIG5ld0NhdGVnb3J5ID0gXCJuZXdDYXRlZ29yeVwiXG5cbi8vIFNwZWNpZnkgdGhlIHBvc2l0aW9uIHdoZXJlIHRoZSBuZXcgY2F0ZWdvcnkgc2hvdWxkIGJlIGluc2VydGVkXG5OVU1CRVIgcG9zaXRpb24gPSAxXG5cbi8vIEluc2VydCB0aGUgbmV3IGNhdGVnb3J5IGludG8gdGhlIHNwZWNpZmllZCBwb3NpdGlvblxuSW5zZXJ0KGFwcENhdGVnb3JpZXMsIG5ld0NhdGVnb3J5LCBwb3NpdGlvbilcblxuLy8gRGVidWcgdG8gY2hlY2sgdGhlIHVwZGF0ZWQgVkVDVE9SXG4vLyBERUJVRyhhcHBDYXRlZ29yaWVzKSByZXBsYWNlZCB3aXRoIGEgY29tbWVudCB0byBleHBsYWluIHRoZSBjb2RlXG4vLyBDaGVjayB0aGUgdXBkYXRlZCBWRUNUT1IiLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICIvLyBJbml0aWFsaXplIGEgVkVDVE9SIG9mIE1XRy5BcHBsaWNhdGlvbkNhdGVnb3J5VHlwZVxuVkVDVE9SPE1XRy5BcHBsaWNhdGlvbkNhdGVnb3J5VHlwZT4gYXBwQ2F0ZWdvcmllcyA9IFtcImNhdGVnb3J5MVwiLCBcImNhdGVnb3J5MlwiLCBcImNhdGVnb3J5M1wiXVxuXG4vLyBDcmVhdGUgYSBuZXcgTVdHLkFwcGxpY2F0aW9uQ2F0ZWdvcnlUeXBlIHRvIGluc2VydFxuTVdHLkFwcGxpY2F0aW9uQ2F0ZWdvcnlUeXBlIG5ld0NhdGVnb3J5ID0gXCJuZXdDYXRlZ29yeVwiXG5cbi8vIFNwZWNpZnkgdGhlIHBvc2l0aW9uIHdoZXJlIHRoZSBuZXcgY2F0ZWdvcnkgc2hvdWxkIGJlIGluc2VydGVkXG5OVU1CRVIgcG9zaXRpb24gPSAxXG5cbi8vIEluc2VydCB0aGUgbmV3IGNhdGVnb3J5IGludG8gdGhlIHNwZWNpZmllZCBwb3NpdGlvblxuSW5zZXJ0KGFwcENhdGVnb3JpZXMsIG5ld0NhdGVnb3J5LCBwb3NpdGlvbilcblxuLy8gRGVidWcgdG8gY2hlY2sgdGhlIHVwZGF0ZWQgVkVDVE9SXG4vLyBERUJVRyhhcHBDYXRlZ29yaWVzKSByZXBsYWNlZCB3aXRoIGEgY29tbWVudCB0byBleHBsYWluIHRoZSBjb2RlXG4vLyBDaGVjayB0aGUgdXBkYXRlZCBWRUNUT1IifSwgeyJuYW1lIjogIkluc2VydCAoVkVDVE9SPE1XRy5BcHBsaWNhdGlvblR5cGU+LCBNV0cuQXBwbGljYXRpb25UeXBlLCBOVU1CRVIpIiwgInJldHVybl90eXBlIjogIlZFQ1RPUjxNV0cuQXBwbGljYXRpb25UeXBlPiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIHRoZSBtb2RpZmllZCB2ZWN0b3IgYWZ0ZXIgaW5zZXJ0aW5nIHRoZSBgTVdHLkFwcGxpY2F0aW9uVHlwZSBlbGVtZW50IGF0IHRoZSBgc3BlY2lmaWVkIG51bWJlciBwb3NpdGlvbi4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiVkVDVE9SOiBUaGUgVkVDVE9SIHdoZXJlIHRoZSBlbGVtZW50IHdpbGwgYmUgaW5zZXJ0ZWQ7IE1XRy5BcHBsaWNhdGlvblR5cGU6IFRoZSBlbGVtZW50IHRvIGJlIGluc2VydGVkOyBOVU1CRVI6IFRoZSBwb3NpdGlvbiBhdCB3aGljaCB0byBpbnNlcnQgdGhlIGVsZW1lbnQuIiwgImRlc2NyaXB0aW9uIjogIkluc2VydHMgYW4gZWxlbWVudCBhdCBhIGdpdmVuIHBvc2l0aW9uLiIsICJleGFtcGxlX2NvZGUiOiAiLy8gSW5pdGlhbGl6ZSBhIFZFQ1RPUiBvZiBNV0cuQXBwbGljYXRpb25UeXBlXG5WRUNUT1I8TVdHLkFwcGxpY2F0aW9uVHlwZT4gYXBwVHlwZXMgPSBbXCJleGFtcGxlQXBwTGlzdFwiXVxuXG4vLyBDcmVhdGUgYW4gTVdHLkFwcGxpY2F0aW9uVHlwZSBvYmplY3QgdG8gaW5zZXJ0XG5NV0cuQXBwbGljYXRpb25UeXBlIG5ld0FwcFR5cGVcbm5ld0FwcFR5cGUubmFtZSA9IFwiTmV3IEFwcGxpY2F0aW9uXCJcbm5ld0FwcFR5cGUuY2F0ZWdvcnkgPSBcIkV4YW1wbGUgQ2F0ZWdvcnlcIlxuXG4vLyBTcGVjaWZ5IHRoZSBwb3NpdGlvbiB3aGVyZSB0aGUgbmV3IGFwcGxpY2F0aW9uIHR5cGUgc2hvdWxkIGJlIGluc2VydGVkXG5OVU1CRVIgcG9zaXRpb24gPSAyXG5cbi8vIEluc2VydCB0aGUgbmV3IGFwcGxpY2F0aW9uIHR5cGUgaW50byB0aGUgdmVjdG9yIGF0IHRoZSBzcGVjaWZpZWQgcG9zaXRpb25cbkluc2VydChhcHBUeXBlcywgbmV3QXBwVHlwZSwgcG9zaXRpb24pXG5cbi8vIEluc2VydGVkIG5ldyBhcHBsaWNhdGlvbiB0eXBlIGF0IHBvc2l0aW9uXG4vLyBQcmV2aW91c2x5OiBERUJVRyhcIkluc2VydGVkIG5ldyBhcHBsaWNhdGlvbiB0eXBlIGF0IHBvc2l0aW9uIFwiICsgcG9zaXRpb24pIiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiLy8gSW5pdGlhbGl6ZSBhIFZFQ1RPUiBvZiBNV0cuQXBwbGljYXRpb25UeXBlXG5WRUNUT1I8TVdHLkFwcGxpY2F0aW9uVHlwZT4gYXBwVHlwZXMgPSBbXCJleGFtcGxlQXBwTGlzdFwiXVxuXG4vLyBDcmVhdGUgYW4gTVdHLkFwcGxpY2F0aW9uVHlwZSBvYmplY3QgdG8gaW5zZXJ0XG5NV0cuQXBwbGljYXRpb25UeXBlIG5ld0FwcFR5cGVcbm5ld0FwcFR5cGUubmFtZSA9IFwiTmV3IEFwcGxpY2F0aW9uXCJcbm5ld0FwcFR5cGUuY2F0ZWdvcnkgPSBcIkV4YW1wbGUgQ2F0ZWdvcnlcIlxuXG4vLyBTcGVjaWZ5IHRoZSBwb3NpdGlvbiB3aGVyZSB0aGUgbmV3IGFwcGxpY2F0aW9uIHR5cGUgc2hvdWxkIGJlIGluc2VydGVkXG5OVU1CRVIgcG9zaXRpb24gPSAyXG5cbi8vIEluc2VydCB0aGUgbmV3IGFwcGxpY2F0aW9uIHR5cGUgaW50byB0aGUgdmVjdG9yIGF0IHRoZSBzcGVjaWZpZWQgcG9zaXRpb25cbkluc2VydChhcHBUeXBlcywgbmV3QXBwVHlwZSwgcG9zaXRpb24pXG5cbi8vIEluc2VydGVkIG5ldyBhcHBsaWNhdGlvbiB0eXBlIGF0IHBvc2l0aW9uXG4vLyBQcmV2aW91c2x5OiBERUJVRyhcIkluc2VydGVkIG5ldyBhcHBsaWNhdGlvbiB0eXBlIGF0IHBvc2l0aW9uIFwiICsgcG9zaXRpb24pIn0sIHsibmFtZSI6ICJJbnNlcnQgKFZFQ1RPUjxNV0cuSG9zdEFuZENlcnRpZmljYXRlPiwgTVdHLkhvc3RBbmRDZXJ0aWZpY2F0ZSwgTlVNQkVSKSIsICJyZXR1cm5fdHlwZSI6ICJWRUNUT1I8TVdHLkhvc3RBbmRDZXJ0aWZpY2F0ZT4iLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyBhIHZlY3RvciB3aXRoIHRoZWBNV0cuSG9zdEFuZENlcnRpZmljYXRlYGVsZW1lbnQgaW5zZXJ0ZWQgYXQgdGhlIHNwZWNpZmllZCBwb3NpdGlvbi4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiVkVDVE9SOiBUaGUgbGlzdCB0byBpbnNlcnQgaW50bywgTVdHLkhvc3RBbmRDZXJ0aWZpY2F0ZTogVGhlIGVsZW1lbnQgdG8gaW5zZXJ0LCBOVU1CRVI6IFRoZSBwb3NpdGlvbiB3aGVyZSB0aGUgZWxlbWVudCBzaG91bGQgYmUgaW5zZXJ0ZWQuIiwgImRlc2NyaXB0aW9uIjogIkluc2VydHMgYW4gZWxlbWVudCBhdCBhIGdpdmVuIHBvc2l0aW9uLiIsICJleGFtcGxlX2NvZGUiOiAiLy8gSW5pdGlhbGl6ZSBhIFZFQ1RPUiBvZiBNV0cuSG9zdEFuZENlcnRpZmljYXRlXG5WRUNUT1I8TVdHLkhvc3RBbmRDZXJ0aWZpY2F0ZT4gaG9zdENlcnRMaXN0ID0gW1wiZXhpc3RpbmdIb3N0Q2VydExpc3RcIl1cblxuLy8gQ3JlYXRlIGEgbmV3IE1XRy5Ib3N0QW5kQ2VydGlmaWNhdGUgb2JqZWN0XG5NV0cuSG9zdEFuZENlcnRpZmljYXRlIG5ld0hvc3RDZXJ0XG5uZXdIb3N0Q2VydC5Ib3N0ID0gXCJleGFtcGxlLmNvbVwiXG5uZXdIb3N0Q2VydC5DZXJ0aWZpY2F0ZSA9IFwiZXhhbXBsZUNlcnRpZmljYXRlXCJcblxuLy8gU3BlY2lmeSB0aGUgcG9zaXRpb24gd2hlcmUgdGhlIG5ldyBlbGVtZW50IHNob3VsZCBiZSBpbnNlcnRlZFxuTlVNQkVSIHBvc2l0aW9uID0gMVxuXG4vLyBJbnNlcnQgdGhlIG5ldyBNV0cuSG9zdEFuZENlcnRpZmljYXRlIGludG8gdGhlIFZFQ1RPUiBhdCB0aGUgc3BlY2lmaWVkIHBvc2l0aW9uXG5ob3N0Q2VydExpc3QgPSBJbnNlcnQoaG9zdENlcnRMaXN0LCBuZXdIb3N0Q2VydCwgcG9zaXRpb24pXG5cbi8vIFVwZGF0ZWQgaG9zdENlcnRMaXN0OiBcIiArIGhvc3RDZXJ0TGlzdCIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIi8vIEluaXRpYWxpemUgYSBWRUNUT1Igb2YgTVdHLkhvc3RBbmRDZXJ0aWZpY2F0ZVxuVkVDVE9SPE1XRy5Ib3N0QW5kQ2VydGlmaWNhdGU+IGhvc3RDZXJ0TGlzdCA9IFtcImV4aXN0aW5nSG9zdENlcnRMaXN0XCJdXG5cbi8vIENyZWF0ZSBhIG5ldyBNV0cuSG9zdEFuZENlcnRpZmljYXRlIG9iamVjdFxuTVdHLkhvc3RBbmRDZXJ0aWZpY2F0ZSBuZXdIb3N0Q2VydFxubmV3SG9zdENlcnQuSG9zdCA9IFwiZXhhbXBsZS5jb21cIlxubmV3SG9zdENlcnQuQ2VydGlmaWNhdGUgPSBcImV4YW1wbGVDZXJ0aWZpY2F0ZVwiXG5cbi8vIFNwZWNpZnkgdGhlIHBvc2l0aW9uIHdoZXJlIHRoZSBuZXcgZWxlbWVudCBzaG91bGQgYmUgaW5zZXJ0ZWRcbk5VTUJFUiBwb3NpdGlvbiA9IDFcblxuLy8gSW5zZXJ0IHRoZSBuZXcgTVdHLkhvc3RBbmRDZXJ0aWZpY2F0ZSBpbnRvIHRoZSBWRUNUT1IgYXQgdGhlIHNwZWNpZmllZCBwb3NpdGlvblxuaG9zdENlcnRMaXN0ID0gSW5zZXJ0KGhvc3RDZXJ0TGlzdCwgbmV3SG9zdENlcnQsIHBvc2l0aW9uKVxuXG4vLyBVcGRhdGVkIGhvc3RDZXJ0TGlzdDogXCIgKyBob3N0Q2VydExpc3QifSwgeyJuYW1lIjogIkluc2VydCAoVkVDVE9SPE1XRy5VcmxDYXRlZ29yeT4sIE1XRy5VcmxDYXRlZ29yeSwgTlVNQkVSKSIsICJyZXR1cm5fdHlwZSI6ICJWRUNUT1I8TVdHLlVybENhdGVnb3J5PiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIHRoZSB1cGRhdGVkIHZlY3Rvci4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiVkVDVE9SOiB0aGUgbGlzdCB0byBtb2RpZnk7IE1XRy5VcmxDYXRlZ29yeTogdGhlIGVsZW1lbnQgdG8gaW5zZXJ0OyBOVU1CRVI6IHRoZSBwb3NpdGlvbiB0byBpbnNlcnQgdGhlIGVsZW1lbnQgYXQuIiwgImRlc2NyaXB0aW9uIjogIkluc2VydHMgYW4gZWxlbWVudCBhdCBhIGdpdmVuIHBvc2l0aW9uLiIsICJleGFtcGxlX2NvZGUiOiAiLy8gSW5pdGlhbGl6ZSBhIFZFQ1RPUiBvZiBNV0cuVXJsQ2F0ZWdvcnlcblZFQ1RPUjxNV0cuVXJsQ2F0ZWdvcnk+IHVybENhdGVnb3JpZXMgPSBbXCJjYXRlZ29yeV9saXN0XCJdXG5cbi8vIENyZWF0ZSBhIG5ldyBNV0cuVXJsQ2F0ZWdvcnkgb2JqZWN0XG5NV0cuVXJsQ2F0ZWdvcnkgbmV3Q2F0ZWdvcnkgPSBNV0cuVXJsQ2F0ZWdvcnkoKVxubmV3Q2F0ZWdvcnkuTmFtZSA9IFwiTmV3IENhdGVnb3J5XCJcbm5ld0NhdGVnb3J5LkRlc2NyaXB0aW9uID0gXCJUaGlzIGlzIGEgbmV3IFVSTCBjYXRlZ29yeVwiXG5cbi8vIEluc2VydCB0aGUgbmV3IGNhdGVnb3J5IGF0IHBvc2l0aW9uIDIgKGluZGV4IDEpXG51cmxDYXRlZ29yaWVzID0gSW5zZXJ0KHVybENhdGVnb3JpZXMsIG5ld0NhdGVnb3J5LCAxKVxuXG4vLyBVcGRhdGVkIFVSTCBDYXRlZ29yaWVzOiBcIiArIHVybENhdGVnb3JpZXMiLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICIvLyBJbml0aWFsaXplIGEgVkVDVE9SIG9mIE1XRy5VcmxDYXRlZ29yeVxuVkVDVE9SPE1XRy5VcmxDYXRlZ29yeT4gdXJsQ2F0ZWdvcmllcyA9IFtcImNhdGVnb3J5X2xpc3RcIl1cblxuLy8gQ3JlYXRlIGEgbmV3IE1XRy5VcmxDYXRlZ29yeSBvYmplY3Rcbk1XRy5VcmxDYXRlZ29yeSBuZXdDYXRlZ29yeSA9IE1XRy5VcmxDYXRlZ29yeSgpXG5uZXdDYXRlZ29yeS5OYW1lID0gXCJOZXcgQ2F0ZWdvcnlcIlxubmV3Q2F0ZWdvcnkuRGVzY3JpcHRpb24gPSBcIlRoaXMgaXMgYSBuZXcgVVJMIGNhdGVnb3J5XCJcblxuLy8gSW5zZXJ0IHRoZSBuZXcgY2F0ZWdvcnkgYXQgcG9zaXRpb24gMiAoaW5kZXggMSlcbnVybENhdGVnb3JpZXMgPSBJbnNlcnQodXJsQ2F0ZWdvcmllcywgbmV3Q2F0ZWdvcnksIDEpXG5cbi8vIFVwZGF0ZWQgVVJMIENhdGVnb3JpZXM6IFwiICsgdXJsQ2F0ZWdvcmllcyJ9LCB7Im5hbWUiOiAiSW5zZXJ0IChWRUNUT1I8TlVNQkVSPiwgTlVNQkVSLCBOVU1CRVIpIiwgInJldHVybl90eXBlIjogIlZFQ1RPUjxOVU1CRVI+IiwgInJldHVybl9kZXNjIjogIlJldHVybnMgYSB2ZWN0b3Igd2l0aCB0aGUgc3BlY2lmaWVkIGVsZW1lbnQgaW5zZXJ0ZWQgYXQgdGhlIGdpdmVuIHBvc2l0aW9uLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJWRUNUT1I6IFRoZSBWRUNUT1IgdG8gaW5zZXJ0IHRoZSBlbGVtZW50IGludG8sIE5VTUJFUjE6IFRoZSBlbGVtZW50IHRvIGJlIGluc2VydGVkLCBOVU1CRVIyOiBUaGUgcG9zaXRpb24gYXQgd2hpY2ggdG8gaW5zZXJ0IHRoZSBlbGVtZW50LiIsICJkZXNjcmlwdGlvbiI6ICJJbnNlcnRzIGFuIGVsZW1lbnQgYXQgYSBnaXZlbiBwb3NpdGlvbi4iLCAiZXhhbXBsZV9jb2RlIjogIlZFQ1RPUjxOVU1CRVI+IG51bWJlcnMgPSAxLCAyLCAzLCA1LCA2XG5OVU1CRVIgbmV3TnVtYmVyID0gNFxuTlVNQkVSIHBvc2l0aW9uID0gM1xuXG4vLyBJbnNlcnQgdGhlIG5ldyBudW1iZXIgYXQgdGhlIHNwZWNpZmllZCBwb3NpdGlvblxubnVtYmVycyA9IEluc2VydChudW1iZXJzLCBuZXdOdW1iZXIsIHBvc2l0aW9uKVxuXG4vLyBQcmludCB0aGUgdXBkYXRlZCB2ZWN0b3IgdG8gdGhlIGNvbnNvbGVcbi8vIG51bWJlcnMiLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICJWRUNUT1I8TlVNQkVSPiBudW1iZXJzID0gMSwgMiwgMywgNSwgNlxuTlVNQkVSIG5ld051bWJlciA9IDRcbk5VTUJFUiBwb3NpdGlvbiA9IDNcblxuLy8gSW5zZXJ0IHRoZSBuZXcgbnVtYmVyIGF0IHRoZSBzcGVjaWZpZWQgcG9zaXRpb25cbm51bWJlcnMgPSBJbnNlcnQobnVtYmVycywgbmV3TnVtYmVyLCBwb3NpdGlvbilcblxuLy8gUHJpbnQgdGhlIHVwZGF0ZWQgdmVjdG9yIHRvIHRoZSBjb25zb2xlXG4vLyBudW1iZXJzIn0sIHsibmFtZSI6ICJJbnNlcnQgKFZFQ1RPUjxTVFJJTkc+LCBTVFJJTkcsIE5VTUJFUikiLCAicmV0dXJuX3R5cGUiOiAiVkVDVE9SPFNUUklORz4iLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyB0aGUgdmVjdG9yIHdpdGggdGhlIHN0cmluZyBpbnNlcnRlZCBhdCB0aGUgc3BlY2lmaWVkIG51bWJlciBwb3NpdGlvbi4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiVkVDVE9SOiBUaGUgbGlzdCB3aGVyZSB0aGUgZWxlbWVudCB3aWxsIGJlIGluc2VydGVkOyBTVFJJTkc6IFRoZSBlbGVtZW50IHRvIGJlIGluc2VydGVkOyBOVU1CRVI6IFRoZSBwb3NpdGlvbiBhdCB3aGljaCB0byBpbnNlcnQgdGhlIGVsZW1lbnQuIiwgImRlc2NyaXB0aW9uIjogIkluc2VydHMgYW4gZWxlbWVudCBhdCBhIGdpdmVuIHBvc2l0aW9uLiIsICJleGFtcGxlX2NvZGUiOiAiLy8gSW5pdGlhbGl6ZSBhIFZFQ1RPUiBvZiBTVFJJTkdzXG5WRUNUT1I8U1RSSU5HPiBmcnVpdHMgPSBcIkFwcGxlXCIsIFwiQmFuYW5hXCIsIFwiQ2hlcnJ5XCJcblxuLy8gSW5zZXJ0IGEgbmV3IGZydWl0IGF0IHRoZSBzZWNvbmQgcG9zaXRpb24gKGluZGV4IDEpXG5mcnVpdHMgPSBJbnNlcnQoZnJ1aXRzLCBcIk9yYW5nZVwiLCAxKVxuXG4vLyBUaGUgdXBkYXRlZCBWRUNUT1Igd2FzIHByZXZpb3VzbHkgcHJpbnRlZCB0byB0aGUgY29uc29sZVxuLy8gZnJ1aXRzIiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiLy8gSW5pdGlhbGl6ZSBhIFZFQ1RPUiBvZiBTVFJJTkdzXG5WRUNUT1I8U1RSSU5HPiBmcnVpdHMgPSBcIkFwcGxlXCIsIFwiQmFuYW5hXCIsIFwiQ2hlcnJ5XCJcblxuLy8gSW5zZXJ0IGEgbmV3IGZydWl0IGF0IHRoZSBzZWNvbmQgcG9zaXRpb24gKGluZGV4IDEpXG5mcnVpdHMgPSBJbnNlcnQoZnJ1aXRzLCBcIk9yYW5nZVwiLCAxKVxuXG4vLyBUaGUgdXBkYXRlZCBWRUNUT1Igd2FzIHByZXZpb3VzbHkgcHJpbnRlZCB0byB0aGUgY29uc29sZVxuLy8gZnJ1aXRzIn0sIHsibmFtZSI6ICJJc0Rpc2pvaW5lZCAoUmVnRXhKU2kuTGlzdCwgUmVnRXhKU2kuTGlzdCkiLCAicmV0dXJuX3R5cGUiOiAiQk9PTEVBTiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zYFRSVUVgaWYgdGhlIHR3byBsaXN0cyBoYXZlIHplcm8gaXRlbXMgaW4gY29tbW9uLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJUd28gbGlzdHMgZm9yIGNvbXBhcmlzb24uIiwgImRlc2NyaXB0aW9uIjogIkNoZWNrcyBpZiB0aGUgdHdvIGxpc3RzIGFyZSBkaXNqb2ludGVkICh0aGVpciBpbnRlcnNlY3Rpb24gcmVzdWx0cyBpbiBhbiBlbXB0eSBsaXN0KS4iLCAiZXhhbXBsZV9jb2RlIjogIi8vIERlZmluZSB0d28gUmVnRXhKU2kuTGlzdCBvYmplY3RzXG5SZWdFeEpTaS5MaXN0IGxpc3QxID0gW1wiZXhhbXBsZV9saXN0MVwiXVxuUmVnRXhKU2kuTGlzdCBsaXN0MiA9IFtcImV4YW1wbGVfbGlzdDJcIl1cblxuLy8gQ2hlY2sgaWYgdGhlIGxpc3RzIGFyZSBkaXNqb2luZWRcbkJPT0xFQU4gYXJlRGlzam9pbmVkID0gSXNEaXNqb2luZWQobGlzdDEsIGxpc3QyKVxuXG4vLyBQcmludCB0aGUgcmVzdWx0IHRvIHRoZSBjb25zb2xlXG5JRiBhcmVEaXNqb2luZWQgVEhFTiB7XG4gICAgLy8gVGhlIGxpc3RzIGFyZSBkaXNqb2luZWQuXG59IEVMU0Uge1xuICAgIC8vIFRoZSBsaXN0cyBhcmUgbm90IGRpc2pvaW5lZC5cbn0iLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICIvLyBEZWZpbmUgdHdvIFJlZ0V4SlNpLkxpc3Qgb2JqZWN0c1xuUmVnRXhKU2kuTGlzdCBsaXN0MSA9IFtcImV4YW1wbGVfbGlzdDFcIl1cblJlZ0V4SlNpLkxpc3QgbGlzdDIgPSBbXCJleGFtcGxlX2xpc3QyXCJdXG5cbi8vIENoZWNrIGlmIHRoZSBsaXN0cyBhcmUgZGlzam9pbmVkXG5CT09MRUFOIGFyZURpc2pvaW5lZCA9IElzRGlzam9pbmVkKGxpc3QxLCBsaXN0MilcblxuLy8gUHJpbnQgdGhlIHJlc3VsdCB0byB0aGUgY29uc29sZVxuSUYgYXJlRGlzam9pbmVkIFRIRU4ge1xuICAgIC8vIFRoZSBsaXN0cyBhcmUgZGlzam9pbmVkLlxufSBFTFNFIHtcbiAgICAvLyBUaGUgbGlzdHMgYXJlIG5vdCBkaXNqb2luZWQuXG59In0sIHsibmFtZSI6ICJJc0Rpc2pvaW5lZCAoVkVDVE9SPE1lZGlhVHlwZT4sIFZFQ1RPUjxNZWRpYVR5cGU+KSIsICJyZXR1cm5fdHlwZSI6ICJCT09MRUFOIiwgInJldHVybl9kZXNjIjogIlJldHVybnNgVFJVRWBpZiB0aGUgdHdvIGxpc3RzIGhhdmUgemVybyBpdGVtcyBpbiBjb21tb24uIiwgInBhcmFtZXRlcl9kZXNjIjogIlR3byBsaXN0cyBmb3IgY29tcGFyaXNvbi4iLCAiZGVzY3JpcHRpb24iOiAiQ2hlY2tzIGlmIHRoZSB0d28gbGlzdHMgYXJlIGRpc2pvaW50ZWQuIFRoZWlyIGludGVyc2VjdGlvbiByZXN1bHRzIGluIGFuIGVtcHR5IGxpc3QuIiwgImV4YW1wbGVfY29kZSI6ICJWRUNUT1I8TWVkaWFUeXBlPiBtZWRpYVR5cGVzMSA9IFtcIm1lZGlhVHlwZUxpc3QxXCJdXG5WRUNUT1I8TWVkaWFUeXBlPiBtZWRpYVR5cGVzMiA9IFtcIm1lZGlhVHlwZUxpc3QyXCJdXG5cbklGIElzRGlzam9pbmVkKG1lZGlhVHlwZXMxLCBtZWRpYVR5cGVzMikgVEhFTiB7XG4gICAgLy8gVGhlIG1lZGlhIHR5cGVzIGFyZSBkaXNqb2ludC5cbn0gRUxTRSB7XG4gICAgLy8gVGhlIG1lZGlhIHR5cGVzIGFyZSBub3QgZGlzam9pbnQuXG59IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiVkVDVE9SPE1lZGlhVHlwZT4gbWVkaWFUeXBlczEgPSBbXCJtZWRpYVR5cGVMaXN0MVwiXVxuVkVDVE9SPE1lZGlhVHlwZT4gbWVkaWFUeXBlczIgPSBbXCJtZWRpYVR5cGVMaXN0MlwiXVxuXG5JRiBJc0Rpc2pvaW5lZChtZWRpYVR5cGVzMSwgbWVkaWFUeXBlczIpIFRIRU4ge1xuICAgIC8vIFRoZSBtZWRpYSB0eXBlcyBhcmUgZGlzam9pbnQuXG59IEVMU0Uge1xuICAgIC8vIFRoZSBtZWRpYSB0eXBlcyBhcmUgbm90IGRpc2pvaW50LlxufSJ9LCB7Im5hbWUiOiAiSXNEaXNqb2luZWQgKFZFQ1RPUjxNV0cuSG9zdEFuZENlcnRpZmljYXRlPiwgVkVDVE9SPE1XRy5Ib3N0QW5kQ2VydGlmaWNhdGU+KSIsICJyZXR1cm5fdHlwZSI6ICJCT09MRUFOIiwgInJldHVybl9kZXNjIjogIlJldHVybnNgVFJVRWBpZiB0aGUgdHdvIGxpc3RzIGhhdmUgemVybyBpdGVtcyBpbiBjb21tb24uIiwgInBhcmFtZXRlcl9kZXNjIjogIlR3byBsaXN0cyBmb3IgY29tcGFyaXNvbi4iLCAiZGVzY3JpcHRpb24iOiAiQ2hlY2tzIGlmIHRoZSB0d28gbGlzdHMgYXJlIGRpc2pvaW50ZWQuIFRoZWlyIGludGVyc2VjdGlvbiByZXN1bHRzIGluIGFuIGVtcHR5IGxpc3QuIiwgImV4YW1wbGVfY29kZSI6ICIvLyBJbml0aWFsaXplIHR3byB2ZWN0b3JzIG9mIE1XRy5Ib3N0QW5kQ2VydGlmaWNhdGUgb2JqZWN0c1xuVkVDVE9SPE1XRy5Ib3N0QW5kQ2VydGlmaWNhdGU+IGhvc3RMaXN0MSA9IE1XRy5TZXJ2ZXJIb3N0QW5kQ2VydCgpLCBNV0cuU2VydmVySG9zdEFuZENlcnQoKVxuVkVDVE9SPE1XRy5Ib3N0QW5kQ2VydGlmaWNhdGU+IGhvc3RMaXN0MiA9IE1XRy5TZXJ2ZXJIb3N0QW5kQ2VydCgpLCBNV0cuU2VydmVySG9zdEFuZENlcnQoKVxuXG4vLyBDaGVjayBpZiB0aGUgdHdvIHZlY3RvcnMgYXJlIGRpc2pvaW50XG5JRiBJc0Rpc2pvaW5lZChob3N0TGlzdDEsIGhvc3RMaXN0MikgVEhFTiB7XG4gICAgLy8gVGhlIGhvc3QgbGlzdHMgYXJlIGRpc2pvaW50LlxuICAgIC8vIEFkZGl0aW9uYWwgYWN0aW9ucyBpZiB0aGUgbGlzdHMgYXJlIGRpc2pvaW50XG59IEVMU0Uge1xuICAgIC8vIFRoZSBob3N0IGxpc3RzIGFyZSBub3QgZGlzam9pbnQuXG4gICAgLy8gQWRkaXRpb25hbCBhY3Rpb25zIGlmIHRoZSBsaXN0cyBhcmUgbm90IGRpc2pvaW50XG59IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiLy8gSW5pdGlhbGl6ZSB0d28gdmVjdG9ycyBvZiBNV0cuSG9zdEFuZENlcnRpZmljYXRlIG9iamVjdHNcblZFQ1RPUjxNV0cuSG9zdEFuZENlcnRpZmljYXRlPiBob3N0TGlzdDEgPSBNV0cuU2VydmVySG9zdEFuZENlcnQoKSwgTVdHLlNlcnZlckhvc3RBbmRDZXJ0KClcblZFQ1RPUjxNV0cuSG9zdEFuZENlcnRpZmljYXRlPiBob3N0TGlzdDIgPSBNV0cuU2VydmVySG9zdEFuZENlcnQoKSwgTVdHLlNlcnZlckhvc3RBbmRDZXJ0KClcblxuLy8gQ2hlY2sgaWYgdGhlIHR3byB2ZWN0b3JzIGFyZSBkaXNqb2ludFxuSUYgSXNEaXNqb2luZWQoaG9zdExpc3QxLCBob3N0TGlzdDIpIFRIRU4ge1xuICAgIC8vIFRoZSBob3N0IGxpc3RzIGFyZSBkaXNqb2ludC5cbiAgICAvLyBBZGRpdGlvbmFsIGFjdGlvbnMgaWYgdGhlIGxpc3RzIGFyZSBkaXNqb2ludFxufSBFTFNFIHtcbiAgICAvLyBUaGUgaG9zdCBsaXN0cyBhcmUgbm90IGRpc2pvaW50LlxuICAgIC8vIEFkZGl0aW9uYWwgYWN0aW9ucyBpZiB0aGUgbGlzdHMgYXJlIG5vdCBkaXNqb2ludFxufSJ9LCB7Im5hbWUiOiAiSXNEaXNqb2luZWQgKFZFQ1RPUjxNV0cuVXJsQ2F0ZWdvcnk+LCBWRUNUT1I8TVdHLlVybENhdGVnb3J5PikiLCAicmV0dXJuX3R5cGUiOiAiQk9PTEVBTiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zYFRSVUVgaWYgdGhlIHR3byBsaXN0cyBoYXZlIHplcm8gaXRlbXMgaW4gY29tbW9uLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJUd28gbGlzdHMgZm9yIGNvbXBhcmlzb24uIiwgImRlc2NyaXB0aW9uIjogIkNoZWNrcyBpZiB0aGUgdHdvIGxpc3RzIGFyZSBkaXNqb2ludGVkLiBUaGVpciBpbnRlcnNlY3Rpb24gcmVzdWx0cyBpbiBhbiBlbXB0eSBsaXN0LiIsICJleGFtcGxlX2NvZGUiOiAiVkVDVE9SPE1XRy5VcmxDYXRlZ29yeT4gY2F0ZWdvcnlMaXN0MSA9IFtcIkNhdGVnb3J5TGlzdDFcIl1cblZFQ1RPUjxNV0cuVXJsQ2F0ZWdvcnk+IGNhdGVnb3J5TGlzdDIgPSBbXCJDYXRlZ29yeUxpc3QyXCJdXG5cbklGIElzRGlzam9pbmVkKGNhdGVnb3J5TGlzdDEsIGNhdGVnb3J5TGlzdDIpIFRIRU4ge1xuICAgIC8vIFRoZSBVUkwgY2F0ZWdvcmllcyBhcmUgZGlzam9pbnQuXG59IEVMU0Uge1xuICAgIC8vIFRoZSBVUkwgY2F0ZWdvcmllcyBhcmUgbm90IGRpc2pvaW50LlxufSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIlZFQ1RPUjxNV0cuVXJsQ2F0ZWdvcnk+IGNhdGVnb3J5TGlzdDEgPSBbXCJDYXRlZ29yeUxpc3QxXCJdXG5WRUNUT1I8TVdHLlVybENhdGVnb3J5PiBjYXRlZ29yeUxpc3QyID0gW1wiQ2F0ZWdvcnlMaXN0MlwiXVxuXG5JRiBJc0Rpc2pvaW5lZChjYXRlZ29yeUxpc3QxLCBjYXRlZ29yeUxpc3QyKSBUSEVOIHtcbiAgICAvLyBUaGUgVVJMIGNhdGVnb3JpZXMgYXJlIGRpc2pvaW50LlxufSBFTFNFIHtcbiAgICAvLyBUaGUgVVJMIGNhdGVnb3JpZXMgYXJlIG5vdCBkaXNqb2ludC5cbn0ifSwgeyJuYW1lIjogIklzRGlzam9pbmVkIChWRUNUT1I8TmV0LklQPiwgVkVDVE9SPE5ldC5JUD4pIiwgInJldHVybl90eXBlIjogIkJPT0xFQU4iLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJuc2BUUlVFYGlmIHRoZSB0d28gbGlzdHMgaGF2ZSB6ZXJvIGl0ZW1zIGluIGNvbW1vbi4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiVHdvIGxpc3RzIGZvciBjb21wYXJpc29uLiIsICJkZXNjcmlwdGlvbiI6ICJDaGVja3MgaWYgdGhlIHR3byBsaXN0cyBhcmUgZGlzam9pbnRlZCAodGhlaXIgaW50ZXJzZWN0aW9uIHJlc3VsdHMgaW4gYW4gZW1wdHkgbGlzdCkuIiwgImV4YW1wbGVfY29kZSI6ICJWRUNUT1I8TmV0LklQPiB2ZWN0b3IxID0gW1wiMTkyLjE2OC4xLjFcIiwgXCIxOTIuMTY4LjEuMlwiLCBcIjE5Mi4xNjguMS4zXCJdXG5WRUNUT1I8TmV0LklQPiB2ZWN0b3IyID0gW1wiMTkyLjE2OC4yLjFcIiwgXCIxOTIuMTY4LjIuMlwiLCBcIjE5Mi4xNjguMi4zXCJdXG5cbkJPT0xFQU4gaXNEaXNqb2ludCA9IFRSVUVcblxuRk9SIEVBQ0ggaXAxIElOIHZlY3RvcjEge1xuICAgIEZPUiBFQUNIIGlwMiBJTiB2ZWN0b3IyIHtcbiAgICAgICAgSUYgaXAxID09IGlwMiBUSEVOIHtcbiAgICAgICAgICAgIGlzRGlzam9pbnQgPSBGQUxTRVxuICAgICAgICAgICAgQlJFQUtcbiAgICAgICAgfVxuICAgIH1cbiAgICBJRiBOT1QgaXNEaXNqb2ludCBUSEVOIHtcbiAgICAgICAgQlJFQUtcbiAgICB9XG59XG5cbklGIGlzRGlzam9pbnQgVEhFTiB7XG4gICAgLy8gVGhlIHZlY3RvcnMgYXJlIGRpc2pvaW50LlxufSBFTFNFIHtcbiAgICAvLyBUaGUgdmVjdG9ycyBhcmUgbm90IGRpc2pvaW50LlxufSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIlZFQ1RPUjxOZXQuSVA+IHZlY3RvcjEgPSBbXCIxOTIuMTY4LjEuMVwiLCBcIjE5Mi4xNjguMS4yXCIsIFwiMTkyLjE2OC4xLjNcIl1cblZFQ1RPUjxOZXQuSVA+IHZlY3RvcjIgPSBbXCIxOTIuMTY4LjIuMVwiLCBcIjE5Mi4xNjguMi4yXCIsIFwiMTkyLjE2OC4yLjNcIl1cblxuQk9PTEVBTiBpc0Rpc2pvaW50ID0gVFJVRVxuXG5GT1IgRUFDSCBpcDEgSU4gdmVjdG9yMSB7XG4gICAgRk9SIEVBQ0ggaXAyIElOIHZlY3RvcjIge1xuICAgICAgICBJRiBpcDEgPT0gaXAyIFRIRU4ge1xuICAgICAgICAgICAgaXNEaXNqb2ludCA9IEZBTFNFXG4gICAgICAgICAgICBCUkVBS1xuICAgICAgICB9XG4gICAgfVxuICAgIElGIE5PVCBpc0Rpc2pvaW50IFRIRU4ge1xuICAgICAgICBCUkVBS1xuICAgIH1cbn1cblxuSUYgaXNEaXNqb2ludCBUSEVOIHtcbiAgICAvLyBUaGUgdmVjdG9ycyBhcmUgZGlzam9pbnQuXG59IEVMU0Uge1xuICAgIC8vIFRoZSB2ZWN0b3JzIGFyZSBub3QgZGlzam9pbnQuXG59In0sIHsibmFtZSI6ICJJc0Rpc2pvaW5lZCAoVkVDVE9SPE5ldC5JUFJhbmdlPiwgVkVDVE9SPE5ldC5JUFJhbmdlPikiLCAicmV0dXJuX3R5cGUiOiAiQk9PTEVBTiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zYFRSVUVgaWYgdGhlIHR3byBsaXN0cyBoYXZlIHplcm8gaXRlbXMgaW4gY29tbW9uLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJUd28gbGlzdHMgZm9yIGNvbXBhcmlzb24uIiwgImRlc2NyaXB0aW9uIjogIkNoZWNrcyBpZiB0aGUgdHdvIGxpc3RzIGFyZSBkaXNqb2ludGVkLiBUaGVpciBpbnRlcnNlY3Rpb24gcmVzdWx0cyBpbiBhbiBlbXB0eSBsaXN0LiIsICJleGFtcGxlX2NvZGUiOiAiVkVDVE9SPE5ldC5JUFJhbmdlPiBsaXN0MSA9IFwiMTkyLjE2OC4xLjAvMjRcIiwgXCIxMC4wLjAuMC84XCJcblZFQ1RPUjxOZXQuSVBSYW5nZT4gbGlzdDIgPSBcIjE3Mi4xNi4wLjAvMTJcIiwgXCIxOTIuMTY4LjIuMC8yNFwiXG5cbkJPT0xFQU4gcmVzdWx0ID0gSXNEaXNqb2luZWQobGlzdDEsIGxpc3QyKVxuXG5JRiByZXN1bHQgVEhFTiB7XG4gICAgLy8gVGhlIElQIHJhbmdlcyBhcmUgZGlzam9pbmVkLlxufSBFTFNFIHtcbiAgICAvLyBUaGUgSVAgcmFuZ2VzIGFyZSBub3QgZGlzam9pbmVkLlxufSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIlZFQ1RPUjxOZXQuSVBSYW5nZT4gbGlzdDEgPSBcIjE5Mi4xNjguMS4wLzI0XCIsIFwiMTAuMC4wLjAvOFwiXG5WRUNUT1I8TmV0LklQUmFuZ2U+IGxpc3QyID0gXCIxNzIuMTYuMC4wLzEyXCIsIFwiMTkyLjE2OC4yLjAvMjRcIlxuXG5CT09MRUFOIHJlc3VsdCA9IElzRGlzam9pbmVkKGxpc3QxLCBsaXN0MilcblxuSUYgcmVzdWx0IFRIRU4ge1xuICAgIC8vIFRoZSBJUCByYW5nZXMgYXJlIGRpc2pvaW5lZC5cbn0gRUxTRSB7XG4gICAgLy8gVGhlIElQIHJhbmdlcyBhcmUgbm90IGRpc2pvaW5lZC5cbn0ifSwgeyJuYW1lIjogIklzRGlzam9pbmVkIChWRUNUT1I8TlVNQkVSPiwgVkVDVE9SPE5VTUJFUj4pIiwgInJldHVybl90eXBlIjogIkJPT0xFQU4iLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJuc2BUUlVFYGlmIHRoZSB0d28gbGlzdHMgaGF2ZSB6ZXJvIGl0ZW1zIGluIGNvbW1vbi4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiVHdvIGxpc3RzIGZvciBjb21wYXJpc29uLiIsICJkZXNjcmlwdGlvbiI6ICJDaGVja3MgaWYgdGhlIHR3byBsaXN0cyBhcmUgZGlzam9pbnRlZCAodGhlaXIgaW50ZXJzZWN0aW9uIHJlc3VsdHMgaW4gYW4gZW1wdHkgbGlzdCkuIiwgImV4YW1wbGVfY29kZSI6ICJWRUNUT1I8TlVNQkVSPiB2ZWN0b3IxID0gMSwgMiwgM1xuVkVDVE9SPE5VTUJFUj4gdmVjdG9yMiA9IDQsIDUsIDZcblxuQk9PTEVBTiByZXN1bHQgPSBJc0Rpc2pvaW5lZCh2ZWN0b3IxLCB2ZWN0b3IyKVxuXG5JRiByZXN1bHQgVEhFTiB7XG4gICAgLy8gVGhlIG51bWJlciB2ZWN0b3JzIGFyZSBkaXNqb2ludC5cbn0gRUxTRSB7XG4gICAgLy8gVGhlIG51bWJlciB2ZWN0b3JzIGFyZSBub3QgZGlzam9pbnQuXG59IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiVkVDVE9SPE5VTUJFUj4gdmVjdG9yMSA9IDEsIDIsIDNcblZFQ1RPUjxOVU1CRVI+IHZlY3RvcjIgPSA0LCA1LCA2XG5cbkJPT0xFQU4gcmVzdWx0ID0gSXNEaXNqb2luZWQodmVjdG9yMSwgdmVjdG9yMilcblxuSUYgcmVzdWx0IFRIRU4ge1xuICAgIC8vIFRoZSBudW1iZXIgdmVjdG9ycyBhcmUgZGlzam9pbnQuXG59IEVMU0Uge1xuICAgIC8vIFRoZSBudW1iZXIgdmVjdG9ycyBhcmUgbm90IGRpc2pvaW50LlxufSJ9LCB7Im5hbWUiOiAiSXNEaXNqb2luZWQgKFZFQ1RPUjxTVFJJTkc+LCBWRUNUT1I8U1RSSU5HPikiLCAicmV0dXJuX3R5cGUiOiAiQk9PTEVBTiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zYFRSVUVgaWYgdGhlIHR3byBsaXN0cyBoYXZlIHplcm8gaXRlbXMgaW4gY29tbW9uLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJUd28gbGlzdHMgZm9yIGNvbXBhcmlzb24uIiwgImRlc2NyaXB0aW9uIjogIkNoZWNrcyBpZiB0aGUgdHdvIGxpc3RzIGFyZSBkaXNqb2ludGVkLiBUaGVpciBpbnRlcnNlY3Rpb24gcmVzdWx0cyBpbiBhbiBlbXB0eSBsaXN0LiIsICJleGFtcGxlX2NvZGUiOiAiVkVDVE9SPFNUUklORz4gbGlzdDEgPSBcImFwcGxlXCIsIFwiYmFuYW5hXCIsIFwiY2hlcnJ5XCJcblZFQ1RPUjxTVFJJTkc+IGxpc3QyID0gXCJkYXRlXCIsIFwiZmlnXCIsIFwiZ3JhcGVcIlxuXG5JRiBJc0Rpc2pvaW5lZChsaXN0MSwgbGlzdDIpIFRIRU4ge1xuICAgIC8vIFRoZSBsaXN0cyBhcmUgZGlzam9pbmVkLlxufSBFTFNFIHtcbiAgICAvLyBUaGUgbGlzdHMgYXJlIG5vdCBkaXNqb2luZWQuXG59IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiVkVDVE9SPFNUUklORz4gbGlzdDEgPSBcImFwcGxlXCIsIFwiYmFuYW5hXCIsIFwiY2hlcnJ5XCJcblZFQ1RPUjxTVFJJTkc+IGxpc3QyID0gXCJkYXRlXCIsIFwiZmlnXCIsIFwiZ3JhcGVcIlxuXG5JRiBJc0Rpc2pvaW5lZChsaXN0MSwgbGlzdDIpIFRIRU4ge1xuICAgIC8vIFRoZSBsaXN0cyBhcmUgZGlzam9pbmVkLlxufSBFTFNFIHtcbiAgICAvLyBUaGUgbGlzdHMgYXJlIG5vdCBkaXNqb2luZWQuXG59In0sIHsibmFtZSI6ICJJc0Rpc2pvaW5lZENhc2VJbnNlbnNpdGl2ZSAoVkVDVE9SPFNUUklORz4sIFZFQ1RPUjxTVFJJTkc+KSIsICJyZXR1cm5fdHlwZSI6ICJCT09MRUFOIiwgInJldHVybl9kZXNjIjogIlJldHVybnMgdHJ1ZSBpZiB0aGUgdHdvIHZlY3RvcnMgaGF2ZSBubyBvdmVybGFwcGluZyBlbGVtZW50cywgaWdub3JpbmcgY2FzZS4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiVGhlIHBhcmFtZXRlcnMgYXJlIHR3byBWRUNUT1JzIHRoYXQgd2lsbCBiZSBjb21wYXJlZCBpbiBhIGNhc2UtaW5zZW5zaXRpdmUgbWFubmVyIHRvIGRldGVybWluZSBpZiB0aGV5IGFyZSBkaXNqb2ludC4iLCAiZGVzY3JpcHRpb24iOiAiSXMgZGlzam9pbmVkIGNhc2UgaW5zZW5zaXRpdmUuIiwgImV4YW1wbGVfY29kZSI6ICJWRUNUT1I8U1RSSU5HPiB2ZWN0b3IxID0gXCJhcHBsZVwiLCBcImJhbmFuYVwiLCBcImNoZXJyeVwiXG5WRUNUT1I8U1RSSU5HPiB2ZWN0b3IyID0gXCJkYXRlXCIsIFwiZWxkZXJiZXJyeVwiLCBcImZpZ1wiXG5cbklGIElzRGlzam9pbmVkQ2FzZUluc2Vuc2l0aXZlKHZlY3RvcjEsIHZlY3RvcjIpIFRIRU4ge1xuICAgIC8vIFRoZSB2ZWN0b3JzIGFyZSBkaXNqb2ludC5cbn0gRUxTRSB7XG4gICAgLy8gVGhlIHZlY3RvcnMgYXJlIG5vdCBkaXNqb2ludC5cbn0iLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICJWRUNUT1I8U1RSSU5HPiB2ZWN0b3IxID0gXCJhcHBsZVwiLCBcImJhbmFuYVwiLCBcImNoZXJyeVwiXG5WRUNUT1I8U1RSSU5HPiB2ZWN0b3IyID0gXCJkYXRlXCIsIFwiZWxkZXJiZXJyeVwiLCBcImZpZ1wiXG5cbklGIElzRGlzam9pbmVkQ2FzZUluc2Vuc2l0aXZlKHZlY3RvcjEsIHZlY3RvcjIpIFRIRU4ge1xuICAgIC8vIFRoZSB2ZWN0b3JzIGFyZSBkaXNqb2ludC5cbn0gRUxTRSB7XG4gICAgLy8gVGhlIHZlY3RvcnMgYXJlIG5vdCBkaXNqb2ludC5cbn0ifSwgeyJuYW1lIjogIklzRW1wdHkgKFNUUklORykiLCAicmV0dXJuX3R5cGUiOiAiQk9PTEVBTiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zYFRSVUVgaWYgdGhlIGdpdmVuIGBTVFJJTkdgIGhhcyBubyBjaGFyYWN0ZXJzLCBvdGhlcndpc2VgRkFMU0VgIiwgInBhcmFtZXRlcl9kZXNjIjogIlNUUklORzogaW5wdXQgdGV4dCB0byBiZSBjaGVja2VkIGZvciBlbXB0aW5lc3MuIiwgImRlc2NyaXB0aW9uIjogIlJldHVybnMgaWYgdGhlIGdpdmVuIHN0cmluZyBpcyBlbXB0eS4iLCAiZXhhbXBsZV9jb2RlIjogIlNUUklORyBteVN0cmluZyA9IFwiSGVsbG8sIFdvcmxkIVwiXG5cbklGIElzRW1wdHkobXlTdHJpbmcpIFRIRU4ge1xuICAgIC8vIFRoZSBzdHJpbmcgaXMgZW1wdHkuXG59IEVMU0Uge1xuICAgIC8vIFRoZSBzdHJpbmcgaXMgbm90IGVtcHR5LlxufSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIlNUUklORyBteVN0cmluZyA9IFwiSGVsbG8sIFdvcmxkIVwiXG5cbklGIElzRW1wdHkobXlTdHJpbmcpIFRIRU4ge1xuICAgIC8vIFRoZSBzdHJpbmcgaXMgZW1wdHkuXG59IEVMU0Uge1xuICAgIC8vIFRoZSBzdHJpbmcgaXMgbm90IGVtcHR5LlxufSJ9LCB7Im5hbWUiOiAiSXNTdWJTZXQgKFJlZ0V4SlNpLkxpc3QsIFJlZ0V4SlNpLkxpc3QpIiwgInJldHVybl90eXBlIjogIkJPT0xFQU4iLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJuc2BUUlVFYGlmIHRoZSBmaXJzdCBsaXN0IGlzIGEgc3Vic2V0IG9mIHRoZSBzZWNvbmQgbGlzdC4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiVHdvIGxpc3RzIGZvciBjb21wYXJpc29uLiIsICJkZXNjcmlwdGlvbiI6ICJDaGVja3MgaWYgdGhlIGZpcnN0IGxpc3QgaXMgYSBzdWJzZXQgb2YgdGhlIHNlY29uZCBsaXN0LiBBbGwgaXRlbXMgZnJvbSB0aGUgZmlyc3QgbGlzdCBjYW4gYmUgZm91bmQgaW4gdGhlIHNlY29uZCBsaXN0LiIsICJleGFtcGxlX2NvZGUiOiAiLy8gRGVmaW5lIHR3byBSZWdFeEpTaS5MaXN0IG9iamVjdHNcblJlZ0V4SlNpLkxpc3QgbGlzdDEgPSBbXCJleGFtcGxlX2xpc3QxXCJdXG5SZWdFeEpTaS5MaXN0IGxpc3QyID0gW1wiZXhhbXBsZV9saXN0MlwiXVxuXG4vLyBDaGVjayBpZiBsaXN0MSBpcyBhIHN1YnNldCBvZiBsaXN0MlxuSUYgSXNTdWJTZXQobGlzdDEsIGxpc3QyKSBUSEVOIHtcbiAgICAvLyBsaXN0MSBpcyBhIHN1YnNldCBvZiBsaXN0MlxufSBFTFNFIHtcbiAgICAvLyBsaXN0MSBpcyBub3QgYSBzdWJzZXQgb2YgbGlzdDJcbn0iLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICIvLyBEZWZpbmUgdHdvIFJlZ0V4SlNpLkxpc3Qgb2JqZWN0c1xuUmVnRXhKU2kuTGlzdCBsaXN0MSA9IFtcImV4YW1wbGVfbGlzdDFcIl1cblJlZ0V4SlNpLkxpc3QgbGlzdDIgPSBbXCJleGFtcGxlX2xpc3QyXCJdXG5cbi8vIENoZWNrIGlmIGxpc3QxIGlzIGEgc3Vic2V0IG9mIGxpc3QyXG5JRiBJc1N1YlNldChsaXN0MSwgbGlzdDIpIFRIRU4ge1xuICAgIC8vIGxpc3QxIGlzIGEgc3Vic2V0IG9mIGxpc3QyXG59IEVMU0Uge1xuICAgIC8vIGxpc3QxIGlzIG5vdCBhIHN1YnNldCBvZiBsaXN0MlxufSJ9LCB7Im5hbWUiOiAiSXNTdWJTZXQgKFZFQ1RPUjxNZWRpYVR5cGU+LCBWRUNUT1I8TWVkaWFUeXBlPikiLCAicmV0dXJuX3R5cGUiOiAiQk9PTEVBTiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zYFRSVUVgaWYgdGhlIGZpcnN0IGxpc3QgaXMgYSBzdWJzZXQgb2YgdGhlIHNlY29uZCBsaXN0LiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJUd28gbGlzdHMgZm9yIGNvbXBhcmlzb24uIiwgImRlc2NyaXB0aW9uIjogIkNoZWNrcyBpZiB0aGUgZmlyc3QgbGlzdCBpcyBhIHN1YnNldCBvZiB0aGUgc2Vjb25kIGxpc3QuIEFsbCBpdGVtcyBmcm9tIHRoZSBmaXJzdCBsaXN0IGNhbiBiZSBmb3VuZCBpbiB0aGUgc2Vjb25kIGxpc3QuIiwgImV4YW1wbGVfY29kZSI6ICJWRUNUT1I8TWVkaWFUeXBlPiBhbGxvd2VkTWVkaWFUeXBlcyA9IFtcImltYWdlL2pwZWdcIiwgXCJpbWFnZS9wbmdcIiwgXCJhcHBsaWNhdGlvbi9wZGZcIl07XG5WRUNUT1I8TWVkaWFUeXBlPiByZXF1ZXN0TWVkaWFUeXBlcyA9IFtcImltYWdlL2pwZWdcIiwgXCJpbWFnZS9wbmdcIl07XG5cbklGIElzU3ViU2V0KHJlcXVlc3RNZWRpYVR5cGVzLCBhbGxvd2VkTWVkaWFUeXBlcykgVEhFTiB7XG4gICAgLy8gXCJSZXF1ZXN0IG1lZGlhIHR5cGVzIGFyZSBhbGxvd2VkLlwiXG4gICAgTVdHLkFsbG93KFwiTWVkaWEgdHlwZXMgYXJlIGFsbG93ZWRcIik7XG59IEVMU0Uge1xuICAgIC8vIFwiUmVxdWVzdCBtZWRpYSB0eXBlcyBhcmUgbm90IGFsbG93ZWQuXCJcbiAgICBNV0cuQmxvY2soXCJNZWRpYSB0eXBlcyBhcmUgbm90IGFsbG93ZWRcIik7XG59IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiVkVDVE9SPE1lZGlhVHlwZT4gYWxsb3dlZE1lZGlhVHlwZXMgPSBbXCJpbWFnZS9qcGVnXCIsIFwiaW1hZ2UvcG5nXCIsIFwiYXBwbGljYXRpb24vcGRmXCJdO1xuVkVDVE9SPE1lZGlhVHlwZT4gcmVxdWVzdE1lZGlhVHlwZXMgPSBbXCJpbWFnZS9qcGVnXCIsIFwiaW1hZ2UvcG5nXCJdO1xuXG5JRiBJc1N1YlNldChyZXF1ZXN0TWVkaWFUeXBlcywgYWxsb3dlZE1lZGlhVHlwZXMpIFRIRU4ge1xuICAgIC8vIFwiUmVxdWVzdCBtZWRpYSB0eXBlcyBhcmUgYWxsb3dlZC5cIlxuICAgIE1XRy5BbGxvdyhcIk1lZGlhIHR5cGVzIGFyZSBhbGxvd2VkXCIpO1xufSBFTFNFIHtcbiAgICAvLyBcIlJlcXVlc3QgbWVkaWEgdHlwZXMgYXJlIG5vdCBhbGxvd2VkLlwiXG4gICAgTVdHLkJsb2NrKFwiTWVkaWEgdHlwZXMgYXJlIG5vdCBhbGxvd2VkXCIpO1xufSJ9LCB7Im5hbWUiOiAiSXNTdWJTZXQgKFZFQ1RPUjxNV0cuSG9zdEFuZENlcnRpZmljYXRlPiwgVkVDVE9SPE1XRy5Ib3N0QW5kQ2VydGlmaWNhdGU+KSIsICJyZXR1cm5fdHlwZSI6ICJCT09MRUFOIiwgInJldHVybl9kZXNjIjogIlJldHVybnNgVFJVRWBpZiB0aGUgZmlyc3QgbGlzdCBpcyBhIHN1YnNldCBvZiB0aGUgc2Vjb25kIGxpc3QuIiwgInBhcmFtZXRlcl9kZXNjIjogIlR3byBsaXN0cyBmb3IgY29tcGFyaXNvbi4iLCAiZGVzY3JpcHRpb24iOiAiQ2hlY2tzIGlmIHRoZSBmaXJzdCBsaXN0IGlzIGEgc3Vic2V0IG9mIHRoZSBzZWNvbmQgbGlzdC4gQWxsIGl0ZW1zIGZyb20gdGhlIGZpcnN0IGxpc3QgY2FuIGJlIGZvdW5kIGluIHRoZSBzZWNvbmQgbGlzdC4iLCAiZXhhbXBsZV9jb2RlIjogIlZFQ1RPUjxNV0cuSG9zdEFuZENlcnRpZmljYXRlPiBhbGxvd2VkSG9zdHMgPSBbXCJhbGxvd2VkX2hvc3RzX2xpc3RcIl1cblZFQ1RPUjxNV0cuSG9zdEFuZENlcnRpZmljYXRlPiBjdXJyZW50SG9zdHMgPSBbXCJjdXJyZW50X2hvc3RzX2xpc3RcIl1cblxuSUYgSXNTdWJTZXQoY3VycmVudEhvc3RzLCBhbGxvd2VkSG9zdHMpIFRIRU4ge1xuICAgIC8vIEN1cnJlbnQgaG9zdHMgYXJlIGEgc3Vic2V0IG9mIGFsbG93ZWQgaG9zdHNcbiAgICBNV0cuQWxsb3coXCJTdWJzZXRDaGVja1Bhc3NlZFwiKVxufSBFTFNFIHtcbiAgICAvLyBDdXJyZW50IGhvc3RzIGFyZSBOT1QgYSBzdWJzZXQgb2YgYWxsb3dlZCBob3N0c1xuICAgIE1XRy5CbG9jayhcIlN1YnNldENoZWNrRmFpbGVkXCIpXG59IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiVkVDVE9SPE1XRy5Ib3N0QW5kQ2VydGlmaWNhdGU+IGFsbG93ZWRIb3N0cyA9IFtcImFsbG93ZWRfaG9zdHNfbGlzdFwiXVxuVkVDVE9SPE1XRy5Ib3N0QW5kQ2VydGlmaWNhdGU+IGN1cnJlbnRIb3N0cyA9IFtcImN1cnJlbnRfaG9zdHNfbGlzdFwiXVxuXG5JRiBJc1N1YlNldChjdXJyZW50SG9zdHMsIGFsbG93ZWRIb3N0cykgVEhFTiB7XG4gICAgLy8gQ3VycmVudCBob3N0cyBhcmUgYSBzdWJzZXQgb2YgYWxsb3dlZCBob3N0c1xuICAgIE1XRy5BbGxvdyhcIlN1YnNldENoZWNrUGFzc2VkXCIpXG59IEVMU0Uge1xuICAgIC8vIEN1cnJlbnQgaG9zdHMgYXJlIE5PVCBhIHN1YnNldCBvZiBhbGxvd2VkIGhvc3RzXG4gICAgTVdHLkJsb2NrKFwiU3Vic2V0Q2hlY2tGYWlsZWRcIilcbn0ifSwgeyJuYW1lIjogIklzU3ViU2V0IChWRUNUT1I8TVdHLlVybENhdGVnb3J5PiwgVkVDVE9SPE1XRy5VcmxDYXRlZ29yeT4pIiwgInJldHVybl90eXBlIjogIkJPT0xFQU4iLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJuc2BUUlVFYGlmIHRoZSBmaXJzdCBsaXN0IGlzIGEgc3Vic2V0IG9mIHRoZSBzZWNvbmQgbGlzdC4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiVHdvIGxpc3RzIGZvciBjb21wYXJpc29uLiIsICJkZXNjcmlwdGlvbiI6ICJDaGVja3MgaWYgdGhlIGZpcnN0IGxpc3QgaXMgYSBzdWJzZXQgb2YgdGhlIHNlY29uZCBsaXN0LiBBbGwgaXRlbXMgZnJvbSB0aGUgZmlyc3QgbGlzdCBjYW4gYmUgZm91bmQgaW4gdGhlIHNlY29uZCBsaXN0LiIsICJleGFtcGxlX2NvZGUiOiAiVkVDVE9SPE1XRy5VcmxDYXRlZ29yeT4gYWxsb3dlZENhdGVnb3JpZXMgPSBbXCJhbGxvd2VkX2NhdGVnb3JpZXNfbGlzdFwiXVxuVkVDVE9SPE1XRy5VcmxDYXRlZ29yeT4gY3VycmVudENhdGVnb3JpZXMgPSBbXCJjdXJyZW50X2NhdGVnb3JpZXNfbGlzdFwiXVxuXG5JRiBJc1N1YlNldChjdXJyZW50Q2F0ZWdvcmllcywgYWxsb3dlZENhdGVnb3JpZXMpIFRIRU4ge1xuICAgIC8vIFRoZSBjdXJyZW50IFVSTCBjYXRlZ29yaWVzIGFyZSBhIHN1YnNldCBvZiB0aGUgYWxsb3dlZCBjYXRlZ29yaWVzLlxuICAgIE1XRy5BbGxvdyhcIlVSTCBjYXRlZ29yaWVzIGFyZSBhbGxvd2VkXCIpXG59IEVMU0Uge1xuICAgIC8vIFRoZSBjdXJyZW50IFVSTCBjYXRlZ29yaWVzIGFyZSBOT1QgYSBzdWJzZXQgb2YgdGhlIGFsbG93ZWQgY2F0ZWdvcmllcy5cbiAgICBNV0cuQmxvY2soXCJVUkwgY2F0ZWdvcmllcyBhcmUgbm90IGFsbG93ZWRcIilcbn0iLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICJWRUNUT1I8TVdHLlVybENhdGVnb3J5PiBhbGxvd2VkQ2F0ZWdvcmllcyA9IFtcImFsbG93ZWRfY2F0ZWdvcmllc19saXN0XCJdXG5WRUNUT1I8TVdHLlVybENhdGVnb3J5PiBjdXJyZW50Q2F0ZWdvcmllcyA9IFtcImN1cnJlbnRfY2F0ZWdvcmllc19saXN0XCJdXG5cbklGIElzU3ViU2V0KGN1cnJlbnRDYXRlZ29yaWVzLCBhbGxvd2VkQ2F0ZWdvcmllcykgVEhFTiB7XG4gICAgLy8gVGhlIGN1cnJlbnQgVVJMIGNhdGVnb3JpZXMgYXJlIGEgc3Vic2V0IG9mIHRoZSBhbGxvd2VkIGNhdGVnb3JpZXMuXG4gICAgTVdHLkFsbG93KFwiVVJMIGNhdGVnb3JpZXMgYXJlIGFsbG93ZWRcIilcbn0gRUxTRSB7XG4gICAgLy8gVGhlIGN1cnJlbnQgVVJMIGNhdGVnb3JpZXMgYXJlIE5PVCBhIHN1YnNldCBvZiB0aGUgYWxsb3dlZCBjYXRlZ29yaWVzLlxuICAgIE1XRy5CbG9jayhcIlVSTCBjYXRlZ29yaWVzIGFyZSBub3QgYWxsb3dlZFwiKVxufSJ9LCB7Im5hbWUiOiAiSXNTdWJTZXQgKFZFQ1RPUjxOZXQuSVA+LCBWRUNUT1I8TmV0LklQPikiLCAicmV0dXJuX3R5cGUiOiAiQk9PTEVBTiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zYFRSVUVgaWYgdGhlIGZpcnN0IGxpc3QgaXMgYSBzdWJzZXQgb2YgdGhlIHNlY29uZCBsaXN0LiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJUd28gbGlzdHMgZm9yIGNvbXBhcmlzb24uIiwgImRlc2NyaXB0aW9uIjogIkNoZWNrcyBpZiB0aGUgZmlyc3QgbGlzdCBpcyBhIHN1YnNldCBvZiB0aGUgc2Vjb25kIGxpc3QuIEFsbCBpdGVtcyBmcm9tIHRoZSBmaXJzdCBsaXN0IGNhbiBiZSBmb3VuZCBpbiB0aGUgc2Vjb25kIGxpc3QuIiwgImV4YW1wbGVfY29kZSI6ICJWRUNUT1I8TmV0LklQPiBhbGxvd2VkSVBzID0gW1wiYWxsb3dlZF9pcF9saXN0XCJdXG5WRUNUT1I8TmV0LklQPiByZXF1ZXN0SVBzID0gW1wicmVxdWVzdF9pcF9saXN0XCJdXG5cbklGIElzU3ViU2V0KHJlcXVlc3RJUHMsIGFsbG93ZWRJUHMpIFRIRU4ge1xuICAgIC8vIFJlcXVlc3QgSVBzIGFyZSBhIHN1YnNldCBvZiBhbGxvd2VkIElQc1xuICAgIE1XRy5BbGxvdyhcIklQIENoZWNrIFBhc3NlZFwiKVxufSBFTFNFIHtcbiAgICAvLyBSZXF1ZXN0IElQcyBhcmUgbm90IGEgc3Vic2V0IG9mIGFsbG93ZWQgSVBzXG4gICAgTVdHLkJsb2NrKFwiSVAgQ2hlY2sgRmFpbGVkXCIpXG59IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiVkVDVE9SPE5ldC5JUD4gYWxsb3dlZElQcyA9IFtcImFsbG93ZWRfaXBfbGlzdFwiXVxuVkVDVE9SPE5ldC5JUD4gcmVxdWVzdElQcyA9IFtcInJlcXVlc3RfaXBfbGlzdFwiXVxuXG5JRiBJc1N1YlNldChyZXF1ZXN0SVBzLCBhbGxvd2VkSVBzKSBUSEVOIHtcbiAgICAvLyBSZXF1ZXN0IElQcyBhcmUgYSBzdWJzZXQgb2YgYWxsb3dlZCBJUHNcbiAgICBNV0cuQWxsb3coXCJJUCBDaGVjayBQYXNzZWRcIilcbn0gRUxTRSB7XG4gICAgLy8gUmVxdWVzdCBJUHMgYXJlIG5vdCBhIHN1YnNldCBvZiBhbGxvd2VkIElQc1xuICAgIE1XRy5CbG9jayhcIklQIENoZWNrIEZhaWxlZFwiKVxufSJ9LCB7Im5hbWUiOiAiSXNTdWJTZXQgKFZFQ1RPUjxOZXQuSVBSYW5nZT4sIFZFQ1RPUjxOZXQuSVBSYW5nZT4pIiwgInJldHVybl90eXBlIjogIkJPT0xFQU4iLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJuc2BUUlVFYGlmIHRoZSBmaXJzdCBsaXN0IGlzIGEgc3Vic2V0IG9mIHRoZSBzZWNvbmQgbGlzdC4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiVHdvIGxpc3RzIGZvciBjb21wYXJpc29uLiIsICJkZXNjcmlwdGlvbiI6ICJDaGVja3MgaWYgdGhlIGZpcnN0IGxpc3QgaXMgYSBzdWJzZXQgb2YgdGhlIHNlY29uZCBsaXN0LiBBbGwgaXRlbXMgZnJvbSB0aGUgZmlyc3QgbGlzdCBjYW4gYmUgZm91bmQgaW4gdGhlIHNlY29uZCBsaXN0LiIsICJleGFtcGxlX2NvZGUiOiAiVkVDVE9SPE5ldC5JUFJhbmdlPiBhbGxvd2VkUmFuZ2VzID0gW1wiYWxsb3dlZF9pcF9yYW5nZXNcIl1cblZFQ1RPUjxOZXQuSVBSYW5nZT4gcmVxdWVzdFJhbmdlcyA9IFtcInJlcXVlc3RfaXBfcmFuZ2VzXCJdXG5cbklGIElzU3ViU2V0KHJlcXVlc3RSYW5nZXMsIGFsbG93ZWRSYW5nZXMpIFRIRU4ge1xuICAgIC8vIElQIHJhbmdlcyBhcmUgd2l0aGluIHRoZSBhbGxvd2VkIHNldFxuICAgIE1XRy5BbGxvdygpXG59IEVMU0Uge1xuICAgIC8vIElQIHJhbmdlcyBhcmUgbm90IHdpdGhpbiB0aGUgYWxsb3dlZCBzZXRcbiAgICBNV0cuQmxvY2soKVxufSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIlZFQ1RPUjxOZXQuSVBSYW5nZT4gYWxsb3dlZFJhbmdlcyA9IFtcImFsbG93ZWRfaXBfcmFuZ2VzXCJdXG5WRUNUT1I8TmV0LklQUmFuZ2U+IHJlcXVlc3RSYW5nZXMgPSBbXCJyZXF1ZXN0X2lwX3Jhbmdlc1wiXVxuXG5JRiBJc1N1YlNldChyZXF1ZXN0UmFuZ2VzLCBhbGxvd2VkUmFuZ2VzKSBUSEVOIHtcbiAgICAvLyBJUCByYW5nZXMgYXJlIHdpdGhpbiB0aGUgYWxsb3dlZCBzZXRcbiAgICBNV0cuQWxsb3coKVxufSBFTFNFIHtcbiAgICAvLyBJUCByYW5nZXMgYXJlIG5vdCB3aXRoaW4gdGhlIGFsbG93ZWQgc2V0XG4gICAgTVdHLkJsb2NrKClcbn0ifSwgeyJuYW1lIjogIklzU3ViU2V0IChWRUNUT1I8TlVNQkVSPiwgVkVDVE9SPE5VTUJFUj4pIiwgInJldHVybl90eXBlIjogIkJPT0xFQU4iLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJuc2BUUlVFYGlmIHRoZSBmaXJzdCBsaXN0IGlzIGEgc3Vic2V0IG9mIHRoZSBzZWNvbmQgbGlzdC4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiVHdvIGxpc3RzIGZvciBjb21wYXJpc29uLiIsICJkZXNjcmlwdGlvbiI6ICJDaGVja3MgaWYgdGhlIGZpcnN0IGxpc3QgaXMgYSBzdWJzZXQgb2YgdGhlIHNlY29uZCBsaXN0LiBBbGwgaXRlbXMgZnJvbSB0aGUgZmlyc3QgbGlzdCBjYW4gYmUgZm91bmQgaW4gdGhlIHNlY29uZCBsaXN0LiIsICJleGFtcGxlX2NvZGUiOiAiVkVDVE9SPE5VTUJFUj4gc3Vic2V0ID0gMSwgMiwgM1xuVkVDVE9SPE5VTUJFUj4gc3VwZXJzZXQgPSAxLCAyLCAzLCA0LCA1XG5cbklGIElzU3ViU2V0KHN1YnNldCwgc3VwZXJzZXQpIFRIRU4ge1xuICAgIC8vIFRoZSBmaXJzdCB2ZWN0b3IgaXMgYSBzdWJzZXQgb2YgdGhlIHNlY29uZCB2ZWN0b3IuXG59IEVMU0Uge1xuICAgIC8vIFRoZSBmaXJzdCB2ZWN0b3IgaXMgbm90IGEgc3Vic2V0IG9mIHRoZSBzZWNvbmQgdmVjdG9yLlxufSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIlZFQ1RPUjxOVU1CRVI+IHN1YnNldCA9IDEsIDIsIDNcblZFQ1RPUjxOVU1CRVI+IHN1cGVyc2V0ID0gMSwgMiwgMywgNCwgNVxuXG5JRiBJc1N1YlNldChzdWJzZXQsIHN1cGVyc2V0KSBUSEVOIHtcbiAgICAvLyBUaGUgZmlyc3QgdmVjdG9yIGlzIGEgc3Vic2V0IG9mIHRoZSBzZWNvbmQgdmVjdG9yLlxufSBFTFNFIHtcbiAgICAvLyBUaGUgZmlyc3QgdmVjdG9yIGlzIG5vdCBhIHN1YnNldCBvZiB0aGUgc2Vjb25kIHZlY3Rvci5cbn0ifSwgeyJuYW1lIjogIklzU3ViU2V0IChWRUNUT1I8U1RSSU5HPiwgVkVDVE9SPFNUUklORz4pIiwgInJldHVybl90eXBlIjogIkJPT0xFQU4iLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJuc2BUUlVFYGlmIHRoZSBmaXJzdCBsaXN0IGlzIGEgc3Vic2V0IG9mIHRoZSBzZWNvbmQgbGlzdC4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiVHdvIGxpc3RzIGZvciBjb21wYXJpc29uLiIsICJkZXNjcmlwdGlvbiI6ICJDaGVja3MgaWYgdGhlIGZpcnN0IGxpc3QgaXMgYSBzdWJzZXQgb2YgdGhlIHNlY29uZCBsaXN0LiBBbGwgaXRlbXMgZnJvbSB0aGUgZmlyc3QgbGlzdCBjYW4gYmUgZm91bmQgaW4gdGhlIHNlY29uZCBsaXN0LiIsICJleGFtcGxlX2NvZGUiOiAiVkVDVE9SPFNUUklORz4gc3Vic2V0ID0gXCJhcHBsZVwiLCBcImJhbmFuYVwiXG5WRUNUT1I8U1RSSU5HPiBzdXBlcnNldCA9IFwiYXBwbGVcIiwgXCJiYW5hbmFcIiwgXCJjaGVycnlcIiwgXCJkYXRlXCJcblxuSUYgSXNTdWJTZXQoc3Vic2V0LCBzdXBlcnNldCkgVEhFTiB7XG4gICAgLy8gVGhlIGZpcnN0IHZlY3RvciBpcyBhIHN1YnNldCBvZiB0aGUgc2Vjb25kIHZlY3Rvci5cbn0gRUxTRSB7XG4gICAgLy8gVGhlIGZpcnN0IHZlY3RvciBpcyBOT1QgYSBzdWJzZXQgb2YgdGhlIHNlY29uZCB2ZWN0b3IuXG59IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiVkVDVE9SPFNUUklORz4gc3Vic2V0ID0gXCJhcHBsZVwiLCBcImJhbmFuYVwiXG5WRUNUT1I8U1RSSU5HPiBzdXBlcnNldCA9IFwiYXBwbGVcIiwgXCJiYW5hbmFcIiwgXCJjaGVycnlcIiwgXCJkYXRlXCJcblxuSUYgSXNTdWJTZXQoc3Vic2V0LCBzdXBlcnNldCkgVEhFTiB7XG4gICAgLy8gVGhlIGZpcnN0IHZlY3RvciBpcyBhIHN1YnNldCBvZiB0aGUgc2Vjb25kIHZlY3Rvci5cbn0gRUxTRSB7XG4gICAgLy8gVGhlIGZpcnN0IHZlY3RvciBpcyBOT1QgYSBzdWJzZXQgb2YgdGhlIHNlY29uZCB2ZWN0b3IuXG59In0sIHsibmFtZSI6ICJJc1N1YlNldENhc2VJbnNlbnNpdGl2ZSAoVkVDVE9SPFNUUklORz4sIFZFQ1RPUjxTVFJJTkc+KSIsICJyZXR1cm5fdHlwZSI6ICJCT09MRUFOIiwgInJldHVybl9kZXNjIjogIlJldHVybnMgdHJ1ZSBpZiBhbGwgZWxlbWVudHMgb2YgdGhlIGZpcnN0IHZlY3RvciBhcmUgcHJlc2VudCBpbiB0aGUgc2Vjb25kIHZlY3RvciwgaWdub3JpbmcgY2FzZSBkaWZmZXJlbmNlcy4gT3RoZXJ3aXNlLCBpdCByZXR1cm5zIGZhbHNlLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJUaGUgcGFyYW1ldGVycyBhcmUgdHdvIFZFQ1RPUnMgd2hpY2ggd2lsbCBiZSBjb21wYXJlZCB0byBjaGVjayBpZiB0aGUgZmlyc3QgaXMgYSBzdWJzZXQgb2YgdGhlIHNlY29uZCwgaWdub3JpbmcgY2FzZSBkaWZmZXJlbmNlcy4iLCAiZGVzY3JpcHRpb24iOiAiSXMgYSBzdWJzZXQgY2FzZSBpbnNlbnNpdGl2ZS4iLCAiZXhhbXBsZV9jb2RlIjogIlZFQ1RPUjxTVFJJTkc+IHN1YnNldCA9IFwiYXBwbGVcIiwgXCJiYW5hbmFcIlxuVkVDVE9SPFNUUklORz4gc3VwZXJzZXQgPSBcIkFwcGxlXCIsIFwiQmFuYW5hXCIsIFwiQ2hlcnJ5XCJcblxuSUYgSXNTdWJTZXRDYXNlSW5zZW5zaXRpdmUoc3Vic2V0LCBzdXBlcnNldCkgVEhFTiB7XG4gICAgLy8gVGhlIHN1YnNldCBpcyBjb250YWluZWQgd2l0aGluIHRoZSBzdXBlcnNldCAoY2FzZSBpbnNlbnNpdGl2ZSkuXG59IEVMU0Uge1xuICAgIC8vIFRoZSBzdWJzZXQgaXMgTk9UIGNvbnRhaW5lZCB3aXRoaW4gdGhlIHN1cGVyc2V0IChjYXNlIGluc2Vuc2l0aXZlKS5cbn0iLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICJWRUNUT1I8U1RSSU5HPiBzdWJzZXQgPSBcImFwcGxlXCIsIFwiYmFuYW5hXCJcblZFQ1RPUjxTVFJJTkc+IHN1cGVyc2V0ID0gXCJBcHBsZVwiLCBcIkJhbmFuYVwiLCBcIkNoZXJyeVwiXG5cbklGIElzU3ViU2V0Q2FzZUluc2Vuc2l0aXZlKHN1YnNldCwgc3VwZXJzZXQpIFRIRU4ge1xuICAgIC8vIFRoZSBzdWJzZXQgaXMgY29udGFpbmVkIHdpdGhpbiB0aGUgc3VwZXJzZXQgKGNhc2UgaW5zZW5zaXRpdmUpLlxufSBFTFNFIHtcbiAgICAvLyBUaGUgc3Vic2V0IGlzIE5PVCBjb250YWluZWQgd2l0aGluIHRoZSBzdXBlcnNldCAoY2FzZSBpbnNlbnNpdGl2ZSkuXG59In0sIHsibmFtZSI6ICJKb2luIChSZWdFeEpTaS5MaXN0LCBSZWdFeEpTaS5MaXN0KSIsICJyZXR1cm5fdHlwZSI6ICJSZWdFeEpTaS5MaXN0IiwgInJldHVybl9kZXNjIjogIlJldHVybnMgYSBzaW5nbGUgbGlzdCB0aGF0IGlzIHRoZSBjb25jYXRlbmF0aW9uIG9mIHRoZSB0d28gaW5wdXQgbGlzdHMuIiwgInBhcmFtZXRlcl9kZXNjIjogIlRoZSBwYXJhbWV0ZXJzIGFyZSB0d28gbGlzdHMgb2YgdHlwZSBSZWdFeEpTaS5MaXN0IHRvIGJlIGpvaW5lZCB0b2dldGhlci4iLCAiZGVzY3JpcHRpb24iOiAiUmV0dXJucyBhIGpvaW4gb2YgdHdvIGxpc3RzLiIsICJleGFtcGxlX2NvZGUiOiAiLy8gRGVmaW5lIHR3byBSZWdFeEpTaS5MaXN0IHZhcmlhYmxlc1xuUmVnRXhKU2kuTGlzdCBsaXN0MSA9IFtcInBhdHRlcm4xXCIsIFwicGF0dGVybjJcIiwgXCJwYXR0ZXJuM1wiXVxuUmVnRXhKU2kuTGlzdCBsaXN0MiA9IFtcInBhdHRlcm40XCIsIFwicGF0dGVybjVcIl1cblxuLy8gVXNlIHRoZSBKb2luIGZ1bmN0aW9uIHRvIGNvbmNhdGVuYXRlIHRoZSB0d28gbGlzdHNcblJlZ0V4SlNpLkxpc3QgY29tYmluZWRMaXN0ID0gSm9pbihsaXN0MSwgbGlzdDIpXG5cbi8vIFRoZSBERUJVRyBsaW5lIHdhcyB1c2VkIHRvIHByaW50IHRoZSBjb21iaW5lZCBsaXN0IHRvIHRoZSBjb25zb2xlIGZvciBkZWJ1Z2dpbmdcbi8vIGNvbWJpbmVkTGlzdCIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIi8vIERlZmluZSB0d28gUmVnRXhKU2kuTGlzdCB2YXJpYWJsZXNcblJlZ0V4SlNpLkxpc3QgbGlzdDEgPSBbXCJwYXR0ZXJuMVwiLCBcInBhdHRlcm4yXCIsIFwicGF0dGVybjNcIl1cblJlZ0V4SlNpLkxpc3QgbGlzdDIgPSBbXCJwYXR0ZXJuNFwiLCBcInBhdHRlcm41XCJdXG5cbi8vIFVzZSB0aGUgSm9pbiBmdW5jdGlvbiB0byBjb25jYXRlbmF0ZSB0aGUgdHdvIGxpc3RzXG5SZWdFeEpTaS5MaXN0IGNvbWJpbmVkTGlzdCA9IEpvaW4obGlzdDEsIGxpc3QyKVxuXG4vLyBUaGUgREVCVUcgbGluZSB3YXMgdXNlZCB0byBwcmludCB0aGUgY29tYmluZWQgbGlzdCB0byB0aGUgY29uc29sZSBmb3IgZGVidWdnaW5nXG4vLyBjb21iaW5lZExpc3QifSwgeyJuYW1lIjogIkpvaW4gKFZFQ1RPUjxNZWRpYVR5cGU+LCBWRUNUT1I8TWVkaWFUeXBlPikiLCAicmV0dXJuX3R5cGUiOiAiVkVDVE9SPE1lZGlhVHlwZT4iLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyB0aGUgdHdvIGxpc3RzIGNvbWJpbmVkLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJUd28gbGlzdHMgdG8gY29tYmluZS4iLCAiZGVzY3JpcHRpb24iOiAiSm9pbnMgdHdvIGxpc3RzIGludG8gb25lLiIsICJleGFtcGxlX2NvZGUiOiAiLy8gRGVmaW5lIHR3byBWRUNUT1I8TWVkaWFUeXBlPiB2YXJpYWJsZXNcblZFQ1RPUjxNZWRpYVR5cGU+IG1lZGlhTGlzdDEgPSBNZWRpYVR5cGUoXCJpbWFnZS9qcGVnXCIpLCBNZWRpYVR5cGUoXCJpbWFnZS9wbmdcIik7XG5WRUNUT1I8TWVkaWFUeXBlPiBtZWRpYUxpc3QyID0gTWVkaWFUeXBlKFwiYXBwbGljYXRpb24vcGRmXCIpLCBNZWRpYVR5cGUoXCJ0ZXh0L3BsYWluXCIpO1xuXG4vLyBVc2UgdGhlIEpvaW4gZnVuY3Rpb24gdG8gY29tYmluZSB0aGUgdHdvIGxpc3RzXG5WRUNUT1I8TWVkaWFUeXBlPiBjb21iaW5lZE1lZGlhTGlzdCA9IEpvaW4obWVkaWFMaXN0MSwgbWVkaWFMaXN0Mik7XG5cbi8vIENvbWJpbmVkIE1lZGlhIExpc3Q6IGNvbWJpbmVkTWVkaWFMaXN0IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiLy8gRGVmaW5lIHR3byBWRUNUT1I8TWVkaWFUeXBlPiB2YXJpYWJsZXNcblZFQ1RPUjxNZWRpYVR5cGU+IG1lZGlhTGlzdDEgPSBNZWRpYVR5cGUoXCJpbWFnZS9qcGVnXCIpLCBNZWRpYVR5cGUoXCJpbWFnZS9wbmdcIik7XG5WRUNUT1I8TWVkaWFUeXBlPiBtZWRpYUxpc3QyID0gTWVkaWFUeXBlKFwiYXBwbGljYXRpb24vcGRmXCIpLCBNZWRpYVR5cGUoXCJ0ZXh0L3BsYWluXCIpO1xuXG4vLyBVc2UgdGhlIEpvaW4gZnVuY3Rpb24gdG8gY29tYmluZSB0aGUgdHdvIGxpc3RzXG5WRUNUT1I8TWVkaWFUeXBlPiBjb21iaW5lZE1lZGlhTGlzdCA9IEpvaW4obWVkaWFMaXN0MSwgbWVkaWFMaXN0Mik7XG5cbi8vIENvbWJpbmVkIE1lZGlhIExpc3Q6IGNvbWJpbmVkTWVkaWFMaXN0In0sIHsibmFtZSI6ICJKb2luIChWRUNUT1I8TVdHLkFwcGxpY2F0aW9uQ2F0ZWdvcnlUeXBlPiwgVkVDVE9SPE1XRy5BcHBsaWNhdGlvbkNhdGVnb3J5VHlwZT4pIiwgInJldHVybl90eXBlIjogIlZFQ1RPUjxNV0cuQXBwbGljYXRpb25DYXRlZ29yeVR5cGU+IiwgInJldHVybl9kZXNjIjogIlJldHVybnMgdGhlIHR3byBsaXN0cyBjb21iaW5lZC4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiVHdvIGxpc3RzIHRvIGNvbWJpbmUuIiwgImRlc2NyaXB0aW9uIjogIkpvaW5zIHR3byBsaXN0cyBpbnRvIG9uZS4iLCAiZXhhbXBsZV9jb2RlIjogIi8vIERlZmluZSB0d28gdmVjdG9ycyBvZiBNV0cuQXBwbGljYXRpb25DYXRlZ29yeVR5cGVcblZFQ1RPUjxNV0cuQXBwbGljYXRpb25DYXRlZ29yeVR5cGU+IHZlY3RvcjEgPSBbXCJDYXRlZ29yeUxpc3QxXCJdXG5WRUNUT1I8TVdHLkFwcGxpY2F0aW9uQ2F0ZWdvcnlUeXBlPiB2ZWN0b3IyID0gW1wiQ2F0ZWdvcnlMaXN0MlwiXVxuXG4vLyBKb2luIHRoZSB0d28gdmVjdG9yc1xuVkVDVE9SPE1XRy5BcHBsaWNhdGlvbkNhdGVnb3J5VHlwZT4gY29tYmluZWRWZWN0b3IgPSBKb2luKHZlY3RvcjEsIHZlY3RvcjIpXG5cbi8vIENvbWJpbmVkIFZlY3RvcjogXCIgKyBjb21iaW5lZFZlY3RvciIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIi8vIERlZmluZSB0d28gdmVjdG9ycyBvZiBNV0cuQXBwbGljYXRpb25DYXRlZ29yeVR5cGVcblZFQ1RPUjxNV0cuQXBwbGljYXRpb25DYXRlZ29yeVR5cGU+IHZlY3RvcjEgPSBbXCJDYXRlZ29yeUxpc3QxXCJdXG5WRUNUT1I8TVdHLkFwcGxpY2F0aW9uQ2F0ZWdvcnlUeXBlPiB2ZWN0b3IyID0gW1wiQ2F0ZWdvcnlMaXN0MlwiXVxuXG4vLyBKb2luIHRoZSB0d28gdmVjdG9yc1xuVkVDVE9SPE1XRy5BcHBsaWNhdGlvbkNhdGVnb3J5VHlwZT4gY29tYmluZWRWZWN0b3IgPSBKb2luKHZlY3RvcjEsIHZlY3RvcjIpXG5cbi8vIENvbWJpbmVkIFZlY3RvcjogXCIgKyBjb21iaW5lZFZlY3RvciJ9LCB7Im5hbWUiOiAiSm9pbiAoVkVDVE9SPE1XRy5BcHBsaWNhdGlvblR5cGU+LCBWRUNUT1I8TVdHLkFwcGxpY2F0aW9uVHlwZT4pIiwgInJldHVybl90eXBlIjogIlZFQ1RPUjxNV0cuQXBwbGljYXRpb25UeXBlPiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIHRoZSB0d28gbGlzdHMgY29tYmluZWQuIiwgInBhcmFtZXRlcl9kZXNjIjogIlR3byBsaXN0cyB0byBjb21iaW5lLiIsICJkZXNjcmlwdGlvbiI6ICJKb2lucyB0d28gbGlzdHMgaW50byBvbmUuIiwgImV4YW1wbGVfY29kZSI6ICIvLyBEZWZpbmUgdHdvIHZlY3RvcnMgb2YgTVdHLkFwcGxpY2F0aW9uVHlwZVxuVkVDVE9SPE1XRy5BcHBsaWNhdGlvblR5cGU+IHZlY3RvcjEgPSBbXCJBcHBUeXBlTGlzdDFcIl1cblZFQ1RPUjxNV0cuQXBwbGljYXRpb25UeXBlPiB2ZWN0b3IyID0gW1wiQXBwVHlwZUxpc3QyXCJdXG5cbi8vIFVzZSB0aGUgSm9pbiBmdW5jdGlvbiB0byBjb21iaW5lIHRoZSB0d28gdmVjdG9yc1xuVkVDVE9SPE1XRy5BcHBsaWNhdGlvblR5cGU+IGNvbWJpbmVkVmVjdG9yID0gSm9pbih2ZWN0b3IxLCB2ZWN0b3IyKVxuXG4vLyBDb21iaW5lZCBWZWN0b3I6IFwiICsgY29tYmluZWRWZWN0b3IiLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICIvLyBEZWZpbmUgdHdvIHZlY3RvcnMgb2YgTVdHLkFwcGxpY2F0aW9uVHlwZVxuVkVDVE9SPE1XRy5BcHBsaWNhdGlvblR5cGU+IHZlY3RvcjEgPSBbXCJBcHBUeXBlTGlzdDFcIl1cblZFQ1RPUjxNV0cuQXBwbGljYXRpb25UeXBlPiB2ZWN0b3IyID0gW1wiQXBwVHlwZUxpc3QyXCJdXG5cbi8vIFVzZSB0aGUgSm9pbiBmdW5jdGlvbiB0byBjb21iaW5lIHRoZSB0d28gdmVjdG9yc1xuVkVDVE9SPE1XRy5BcHBsaWNhdGlvblR5cGU+IGNvbWJpbmVkVmVjdG9yID0gSm9pbih2ZWN0b3IxLCB2ZWN0b3IyKVxuXG4vLyBDb21iaW5lZCBWZWN0b3I6IFwiICsgY29tYmluZWRWZWN0b3IifSwgeyJuYW1lIjogIkpvaW4gKFZFQ1RPUjxNV0cuSG9zdEFuZENlcnRpZmljYXRlPiwgVkVDVE9SPE1XRy5Ib3N0QW5kQ2VydGlmaWNhdGU+KSIsICJyZXR1cm5fdHlwZSI6ICJWRUNUT1I8TVdHLkhvc3RBbmRDZXJ0aWZpY2F0ZT4iLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyB0aGUgdHdvIGxpc3RzIGNvbWJpbmVkLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJUd28gbGlzdHMgdG8gY29tYmluZS4iLCAiZGVzY3JpcHRpb24iOiAiSm9pbnMgdHdvIGxpc3RzIGludG8gb25lLiIsICJleGFtcGxlX2NvZGUiOiAiLy8gRGVmaW5lIHR3byBWRUNUT1JzIG9mIE1XRy5Ib3N0QW5kQ2VydGlmaWNhdGVcblZFQ1RPUjxNV0cuSG9zdEFuZENlcnRpZmljYXRlPiBsaXN0MSA9IFtcImhvc3RfY2VydF9saXN0MVwiXVxuVkVDVE9SPE1XRy5Ib3N0QW5kQ2VydGlmaWNhdGU+IGxpc3QyID0gW1wiaG9zdF9jZXJ0X2xpc3QyXCJdXG5cbi8vIFVzZSB0aGUgSm9pbiBmdW5jdGlvbiB0byBjb21iaW5lIHRoZSB0d28gbGlzdHNcblZFQ1RPUjxNV0cuSG9zdEFuZENlcnRpZmljYXRlPiBjb21iaW5lZExpc3QgPSBKb2luKGxpc3QxLCBsaXN0MilcblxuLy8gQ29tYmluZWQgSG9zdCBhbmQgQ2VydGlmaWNhdGUgTGlzdDogY29tYmluZWRMaXN0IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiLy8gRGVmaW5lIHR3byBWRUNUT1JzIG9mIE1XRy5Ib3N0QW5kQ2VydGlmaWNhdGVcblZFQ1RPUjxNV0cuSG9zdEFuZENlcnRpZmljYXRlPiBsaXN0MSA9IFtcImhvc3RfY2VydF9saXN0MVwiXVxuVkVDVE9SPE1XRy5Ib3N0QW5kQ2VydGlmaWNhdGU+IGxpc3QyID0gW1wiaG9zdF9jZXJ0X2xpc3QyXCJdXG5cbi8vIFVzZSB0aGUgSm9pbiBmdW5jdGlvbiB0byBjb21iaW5lIHRoZSB0d28gbGlzdHNcblZFQ1RPUjxNV0cuSG9zdEFuZENlcnRpZmljYXRlPiBjb21iaW5lZExpc3QgPSBKb2luKGxpc3QxLCBsaXN0MilcblxuLy8gQ29tYmluZWQgSG9zdCBhbmQgQ2VydGlmaWNhdGUgTGlzdDogY29tYmluZWRMaXN0In0sIHsibmFtZSI6ICJKb2luIChWRUNUT1I8TVdHLlVybENhdGVnb3J5PiwgVkVDVE9SPE1XRy5VcmxDYXRlZ29yeT4pIiwgInJldHVybl90eXBlIjogIlZFQ1RPUjxNV0cuVXJsQ2F0ZWdvcnk+IiwgInJldHVybl9kZXNjIjogIlJldHVybnMgdGhlIHR3byBsaXN0cyBjb21iaW5lZC4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiVHdvIGxpc3RzIHRvIGNvbWJpbmUuIiwgImRlc2NyaXB0aW9uIjogIkpvaW5zIHR3byBsaXN0cyBpbnRvIG9uZS4iLCAiZXhhbXBsZV9jb2RlIjogIi8vIERlZmluZSB0d28gVkVDVE9ScyBvZiBNV0cuVXJsQ2F0ZWdvcnlcblZFQ1RPUjxNV0cuVXJsQ2F0ZWdvcnk+IGNhdGVnb3J5TGlzdDEgPSBbXCJTb2NpYWxNZWRpYVwiLCBcIk5ld3NcIl1cblZFQ1RPUjxNV0cuVXJsQ2F0ZWdvcnk+IGNhdGVnb3J5TGlzdDIgPSBbXCJTaG9wcGluZ1wiLCBcIkVudGVydGFpbm1lbnRcIl1cblxuLy8gVXNlIHRoZSBKb2luIGZ1bmN0aW9uIHRvIGNvbWJpbmUgdGhlIHR3byBsaXN0c1xuVkVDVE9SPE1XRy5VcmxDYXRlZ29yeT4gY29tYmluZWRDYXRlZ29yaWVzID0gSm9pbihjYXRlZ29yeUxpc3QxLCBjYXRlZ29yeUxpc3QyKVxuXG4vLyBDb21iaW5lZCBVUkwgQ2F0ZWdvcmllczogY29tYmluZWRDYXRlZ29yaWVzIiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiLy8gRGVmaW5lIHR3byBWRUNUT1JzIG9mIE1XRy5VcmxDYXRlZ29yeVxuVkVDVE9SPE1XRy5VcmxDYXRlZ29yeT4gY2F0ZWdvcnlMaXN0MSA9IFtcIlNvY2lhbE1lZGlhXCIsIFwiTmV3c1wiXVxuVkVDVE9SPE1XRy5VcmxDYXRlZ29yeT4gY2F0ZWdvcnlMaXN0MiA9IFtcIlNob3BwaW5nXCIsIFwiRW50ZXJ0YWlubWVudFwiXVxuXG4vLyBVc2UgdGhlIEpvaW4gZnVuY3Rpb24gdG8gY29tYmluZSB0aGUgdHdvIGxpc3RzXG5WRUNUT1I8TVdHLlVybENhdGVnb3J5PiBjb21iaW5lZENhdGVnb3JpZXMgPSBKb2luKGNhdGVnb3J5TGlzdDEsIGNhdGVnb3J5TGlzdDIpXG5cbi8vIENvbWJpbmVkIFVSTCBDYXRlZ29yaWVzOiBjb21iaW5lZENhdGVnb3JpZXMifSwgeyJuYW1lIjogIkpvaW4gKFZFQ1RPUjxOZXQuSVA+LCBWRUNUT1I8TmV0LklQPikiLCAicmV0dXJuX3R5cGUiOiAiVkVDVE9SPE5ldC5JUD4iLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyB0aGUgdHdvIGxpc3RzIGNvbWJpbmVkLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJUd28gbGlzdHMgdG8gY29tYmluZS4iLCAiZGVzY3JpcHRpb24iOiAiSm9pbnMgdHdvIGxpc3RzIGludG8gb25lLiIsICJleGFtcGxlX2NvZGUiOiAiVkVDVE9SPE5ldC5JUD4gbGlzdDEgPSBcIjE5Mi4xNjguMS4xXCIsIFwiMTkyLjE2OC4xLjJcIiwgXCIxOTIuMTY4LjEuM1wiXG5WRUNUT1I8TmV0LklQPiBsaXN0MiA9IFwiMTAuMC4wLjFcIiwgXCIxMC4wLjAuMlwiLCBcIjEwLjAuMC4zXCJcblxuVkVDVE9SPE5ldC5JUD4gY29tYmluZWRMaXN0ID0gSm9pbihsaXN0MSwgbGlzdDIpXG5cbi8vIENvbWJpbmVkIElQIExpc3Q6IFwiICsgY29tYmluZWRMaXN0IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiVkVDVE9SPE5ldC5JUD4gbGlzdDEgPSBcIjE5Mi4xNjguMS4xXCIsIFwiMTkyLjE2OC4xLjJcIiwgXCIxOTIuMTY4LjEuM1wiXG5WRUNUT1I8TmV0LklQPiBsaXN0MiA9IFwiMTAuMC4wLjFcIiwgXCIxMC4wLjAuMlwiLCBcIjEwLjAuMC4zXCJcblxuVkVDVE9SPE5ldC5JUD4gY29tYmluZWRMaXN0ID0gSm9pbihsaXN0MSwgbGlzdDIpXG5cbi8vIENvbWJpbmVkIElQIExpc3Q6IFwiICsgY29tYmluZWRMaXN0In0sIHsibmFtZSI6ICJKb2luIChWRUNUT1I8TmV0LklQUmFuZ2U+LCBWRUNUT1I8TmV0LklQUmFuZ2U+KSIsICJyZXR1cm5fdHlwZSI6ICJWRUNUT1I8TmV0LklQUmFuZ2U+IiwgInJldHVybl9kZXNjIjogIlJldHVybnMgdGhlIHR3byBsaXN0cyBjb21iaW5lZC4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiVHdvIGxpc3RzIHRvIGNvbWJpbmUuIiwgImRlc2NyaXB0aW9uIjogIkpvaW5zIHR3byBsaXN0cyBpbnRvIG9uZS4iLCAiZXhhbXBsZV9jb2RlIjogIi8vIERlZmluZSB0d28gdmVjdG9ycyBvZiBOZXQuSVBSYW5nZVxuVkVDVE9SPE5ldC5JUFJhbmdlPiBpcFJhbmdlVmVjdG9yMSA9IE5ldC5JUFJhbmdlKFwiMTkyLjE2OC4xLjAvMjRcIiksIE5ldC5JUFJhbmdlKFwiMTAuMC4wLjAvOFwiKTtcblZFQ1RPUjxOZXQuSVBSYW5nZT4gaXBSYW5nZVZlY3RvcjIgPSBOZXQuSVBSYW5nZShcIjE3Mi4xNi4wLjAvMTJcIiksIE5ldC5JUFJhbmdlKFwiMTkyLjE2OC4yLjAvMjRcIik7XG5cbi8vIEpvaW4gdGhlIHR3byB2ZWN0b3JzXG5WRUNUT1I8TmV0LklQUmFuZ2U+IGNvbWJpbmVkSVBSYW5nZXMgPSBKb2luKGlwUmFuZ2VWZWN0b3IxLCBpcFJhbmdlVmVjdG9yMik7XG5cbi8vIENvbWJpbmVkIElQIFJhbmdlczogY29tYmluZWRJUFJhbmdlcyIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIi8vIERlZmluZSB0d28gdmVjdG9ycyBvZiBOZXQuSVBSYW5nZVxuVkVDVE9SPE5ldC5JUFJhbmdlPiBpcFJhbmdlVmVjdG9yMSA9IE5ldC5JUFJhbmdlKFwiMTkyLjE2OC4xLjAvMjRcIiksIE5ldC5JUFJhbmdlKFwiMTAuMC4wLjAvOFwiKTtcblZFQ1RPUjxOZXQuSVBSYW5nZT4gaXBSYW5nZVZlY3RvcjIgPSBOZXQuSVBSYW5nZShcIjE3Mi4xNi4wLjAvMTJcIiksIE5ldC5JUFJhbmdlKFwiMTkyLjE2OC4yLjAvMjRcIik7XG5cbi8vIEpvaW4gdGhlIHR3byB2ZWN0b3JzXG5WRUNUT1I8TmV0LklQUmFuZ2U+IGNvbWJpbmVkSVBSYW5nZXMgPSBKb2luKGlwUmFuZ2VWZWN0b3IxLCBpcFJhbmdlVmVjdG9yMik7XG5cbi8vIENvbWJpbmVkIElQIFJhbmdlczogY29tYmluZWRJUFJhbmdlcyJ9LCB7Im5hbWUiOiAiSm9pbiAoVkVDVE9SPE5VTUJFUj4sIFZFQ1RPUjxOVU1CRVI+KSIsICJyZXR1cm5fdHlwZSI6ICJWRUNUT1I8TlVNQkVSPiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIHRoZSB0d28gbGlzdHMgY29tYmluZWQuIiwgInBhcmFtZXRlcl9kZXNjIjogIlR3byBsaXN0cyB0byBjb21iaW5lLiIsICJkZXNjcmlwdGlvbiI6ICJKb2lucyB0d28gbGlzdHMgaW50byBvbmUuIiwgImV4YW1wbGVfY29kZSI6ICJWRUNUT1I8TlVNQkVSPiBsaXN0MSA9IDEsIDIsIDNcblZFQ1RPUjxOVU1CRVI+IGxpc3QyID0gNCwgNSwgNlxuXG5WRUNUT1I8TlVNQkVSPiBjb21iaW5lZExpc3QgPSBKb2luKGxpc3QxLCBsaXN0MilcblxuLy8gT3V0cHV0IGNvbWJpbmVkTGlzdCIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIlZFQ1RPUjxOVU1CRVI+IGxpc3QxID0gMSwgMiwgM1xuVkVDVE9SPE5VTUJFUj4gbGlzdDIgPSA0LCA1LCA2XG5cblZFQ1RPUjxOVU1CRVI+IGNvbWJpbmVkTGlzdCA9IEpvaW4obGlzdDEsIGxpc3QyKVxuXG4vLyBPdXRwdXQgY29tYmluZWRMaXN0In0sIHsibmFtZSI6ICJKb2luIChWRUNUT1I8U1RSSU5HPiwgU1RSSU5HKSIsICJyZXR1cm5fdHlwZSI6ICJTVFJJTkciLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyB0aGUgdmVjdG9yIGNvbnZlcnRlZCBpbnRvIGEgc2luZ2xlIHN0cmluZy4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiVkVDVE9SPFNUUklORz46IGxpc3Qgb2YgU1RSSU5HcyB0byBjb21iaW5lOyBTVFJJTkc6IGRlbGltaXRlciB0byB1c2UuIiwgImRlc2NyaXB0aW9uIjogIkNvbWJpbmVzIGFsbCBvZiB0aGUgc3RyaW5ncyBmb3VuZCBpbiB0aGUgdmVjdG9yIGludG8gb25lIHdpdGggdGhlIHNwZWNpZmllZCBkZWxpbWl0ZXIgaW4gYmV0d2VlbiBlYWNoIHN0cmluZy4iLCAiZXhhbXBsZV9jb2RlIjogIlZFQ1RPUjxTVFJJTkc+IHdvcmRzID0gXCJIZWxsb1wiLCBcIndvcmxkXCIsIFwidGhpc1wiLCBcImlzXCIsIFwiTU9XR0xJXCJcblNUUklORyBkZWxpbWl0ZXIgPSBcIiBcIlxuU1RSSU5HIHJlc3VsdCA9IEpvaW4od29yZHMsIGRlbGltaXRlcilcbi8vIE91dHB1dDogXCJIZWxsbyB3b3JsZCB0aGlzIGlzIE1PV0dMSVwiIiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiVkVDVE9SPFNUUklORz4gd29yZHMgPSBcIkhlbGxvXCIsIFwid29ybGRcIiwgXCJ0aGlzXCIsIFwiaXNcIiwgXCJNT1dHTElcIlxuU1RSSU5HIGRlbGltaXRlciA9IFwiIFwiXG5TVFJJTkcgcmVzdWx0ID0gSm9pbih3b3JkcywgZGVsaW1pdGVyKVxuLy8gT3V0cHV0OiBcIkhlbGxvIHdvcmxkIHRoaXMgaXMgTU9XR0xJXCIifSwgeyJuYW1lIjogIkpvaW4gKFZFQ1RPUjxTVFJJTkc+LCBWRUNUT1I8U1RSSU5HPikiLCAicmV0dXJuX3R5cGUiOiAiVkVDVE9SPFNUUklORz4iLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyB0aGUgdHdvIGxpc3RzIGNvbWJpbmVkLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJUd28gbGlzdHMgdG8gY29tYmluZS4iLCAiZGVzY3JpcHRpb24iOiAiSm9pbnMgdHdvIGxpc3RzIGludG8gb25lLiIsICJleGFtcGxlX2NvZGUiOiAiVkVDVE9SPFNUUklORz4gdmVjdG9yMSA9IFwiYXBwbGVcIiwgXCJiYW5hbmFcIiwgXCJjaGVycnlcIlxuVkVDVE9SPFNUUklORz4gdmVjdG9yMiA9IFwiZGF0ZVwiLCBcImVsZGVyYmVycnlcIiwgXCJmaWdcIlxuXG5WRUNUT1I8U1RSSU5HPiByZXN1bHQgPSBKb2luKHZlY3RvcjEsIHZlY3RvcjIpXG5cbi8vIFJlc3VsdGluZyB2ZWN0b3I6IFwiICsgcmVzdWx0IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiVkVDVE9SPFNUUklORz4gdmVjdG9yMSA9IFwiYXBwbGVcIiwgXCJiYW5hbmFcIiwgXCJjaGVycnlcIlxuVkVDVE9SPFNUUklORz4gdmVjdG9yMiA9IFwiZGF0ZVwiLCBcImVsZGVyYmVycnlcIiwgXCJmaWdcIlxuXG5WRUNUT1I8U1RSSU5HPiByZXN1bHQgPSBKb2luKHZlY3RvcjEsIHZlY3RvcjIpXG5cbi8vIFJlc3VsdGluZyB2ZWN0b3I6IFwiICsgcmVzdWx0In0sIHsibmFtZSI6ICJKU09OLkFycmF5QXBwZW5kIChKU09OLCBCT09MRUFOKSIsICJyZXR1cm5fdHlwZSI6ICJKU09OIiwgInJldHVybl9kZXNjIjogIlJldHVybnMgYSBKU09OIGFycmF5IHdpdGggdGhlIGlucHV0YEJPT0xFQU5gdmFsdWUgYXBwZW5kZWQgdG8gaXRzIGVuZC4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiSlNPTjogYXJyYXkgdG8gYXBwZW5kIHRvOyBCT09MRUFOOiB2YWx1ZSB0byBhcHBlbmQuIiwgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBCb29sZWFuIGF0IHRoZSBlbmQgb2YgYW4gYXJyYXkuIiwgImV4YW1wbGVfY29kZSI6ICIvLyBJbml0aWFsaXplIGEgSlNPTiBhcnJheVxuSlNPTiBqc29uQXJyYXkgPSBbdHJ1ZSwgZmFsc2UsIHRydWVdXG5cbi8vIEJvb2xlYW4gdmFsdWUgdG8gYXBwZW5kXG5CT09MRUFOIG5ld1ZhbHVlID0gZmFsc2VcblxuLy8gQXBwZW5kIHRoZSBib29sZWFuIHZhbHVlIHRvIHRoZSBKU09OIGFycmF5XG5KU09OIHVwZGF0ZWRBcnJheSA9IEpTT04uQXJyYXlBcHBlbmQoanNvbkFycmF5LCBuZXdWYWx1ZSlcblxuLy8gUHJpbnQgdGhlIHVwZGF0ZWQgYXJyYXkgdG8gdGhlIGNvbnNvbGVcbi8vIHVwZGF0ZWRBcnJheSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIi8vIEluaXRpYWxpemUgYSBKU09OIGFycmF5XG5KU09OIGpzb25BcnJheSA9IFt0cnVlLCBmYWxzZSwgdHJ1ZV1cblxuLy8gQm9vbGVhbiB2YWx1ZSB0byBhcHBlbmRcbkJPT0xFQU4gbmV3VmFsdWUgPSBmYWxzZVxuXG4vLyBBcHBlbmQgdGhlIGJvb2xlYW4gdmFsdWUgdG8gdGhlIEpTT04gYXJyYXlcbkpTT04gdXBkYXRlZEFycmF5ID0gSlNPTi5BcnJheUFwcGVuZChqc29uQXJyYXksIG5ld1ZhbHVlKVxuXG4vLyBQcmludCB0aGUgdXBkYXRlZCBhcnJheSB0byB0aGUgY29uc29sZVxuLy8gdXBkYXRlZEFycmF5In0sIHsibmFtZSI6ICJKU09OLkFycmF5QXBwZW5kIChKU09OLCBKU09OKSIsICJyZXR1cm5fdHlwZSI6ICJKU09OIiwgInJldHVybl9kZXNjIjogIlJldHVybnMgYSBKU09OIGFycmF5IHdpdGggdGhlIHNwZWNpZmllZCBKU09OIG9iamVjdCBhcHBlbmRlZCB0byB0aGUgZW5kLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJKU09OOiBhcnJheSB0byBhcHBlbmQgdG87IEpTT046IG9iamVjdCB0byBhcHBlbmQuIiwgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBKU09OIG9iamVjdCBhdCB0aGUgZW5kIG9mIGFuIGFycmF5LiIsICJleGFtcGxlX2NvZGUiOiAiSlNPTiBhcnJheTEgPSBbMSwgMiwgM11cbkpTT04gYXJyYXkyID0gWzQsIDUsIDZdXG5cbkpTT04gY29tYmluZWRBcnJheSA9IEFycmF5QXBwZW5kKGFycmF5MSwgYXJyYXkyKVxuXG4vLyBPdXRwdXQgY29tYmluZWRBcnJheSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIkpTT04gYXJyYXkxID0gWzEsIDIsIDNdXG5KU09OIGFycmF5MiA9IFs0LCA1LCA2XVxuXG5KU09OIGNvbWJpbmVkQXJyYXkgPSBBcnJheUFwcGVuZChhcnJheTEsIGFycmF5MilcblxuLy8gT3V0cHV0IGNvbWJpbmVkQXJyYXkifSwgeyJuYW1lIjogIkpTT04uQXJyYXlBcHBlbmQgKEpTT04sIE5VTUJFUikiLCAicmV0dXJuX3R5cGUiOiAiSlNPTiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIGEgSlNPTiBhcnJheSB3aXRoIHRoZSBzcGVjaWZpZWQgbnVtYmVyIGFwcGVuZGVkIHRvIGl0cyBlbmQuIiwgInBhcmFtZXRlcl9kZXNjIjogIkpTT046IGFycmF5IHRvIGFwcGVuZCB0bzsgTlVNQkVSOiB2YWx1ZSB0byBhcHBlbmQuIiwgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBudW1iZXIgYXQgdGhlIGVuZCBvZiBhbiBhcnJheS4iLCAiZXhhbXBsZV9jb2RlIjogIkpTT04ganNvbkFycmF5ID0gWzEsIDIsIDNdXG5OVU1CRVIgbnVtYmVyVG9BZGQgPSA0XG5KU09OIG51bWJlckFzSnNvbiA9IFtudW1iZXJUb0FkZF0gIC8vIENvbnZlcnQgdGhlIG51bWJlciB0byBhIEpTT04gYXJyYXlcbkpTT04gY29tYmluZWRBcnJheSA9IEFycmF5QXBwZW5kKGpzb25BcnJheSwgbnVtYmVyQXNKc29uKVxuLy8gRGVidWc6IGNvbWJpbmVkQXJyYXkiLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICJKU09OIGpzb25BcnJheSA9IFsxLCAyLCAzXVxuTlVNQkVSIG51bWJlclRvQWRkID0gNFxuSlNPTiBudW1iZXJBc0pzb24gPSBbbnVtYmVyVG9BZGRdICAvLyBDb252ZXJ0IHRoZSBudW1iZXIgdG8gYSBKU09OIGFycmF5XG5KU09OIGNvbWJpbmVkQXJyYXkgPSBBcnJheUFwcGVuZChqc29uQXJyYXksIG51bWJlckFzSnNvbilcbi8vIERlYnVnOiBjb21iaW5lZEFycmF5In0sIHsibmFtZSI6ICJKU09OLkFycmF5QXBwZW5kIChKU09OLCBTVFJJTkcpIiwgInJldHVybl90eXBlIjogIkpTT04iLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyB0aGUgb3JpZ2luYWwgSlNPTiBhcnJheSB3aXRoIHRoZSBzcGVjaWZpZWQgc3RyaW5nIGFwcGVuZGVkIHRvIHRoZSBlbmQuIiwgInBhcmFtZXRlcl9kZXNjIjogIkpTT046IGFycmF5IHRvIGFwcGVuZCB0bzsgU1RSSU5HOiB2YWx1ZSB0byBhcHBlbmQuIiwgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBzdHJpbmcgYXQgdGhlIGVuZCBvZiBhbiBhcnJheS4iLCAiZXhhbXBsZV9jb2RlIjogIkpTT04gYXJyYXkxID0gW1wie1xcXCJuYW1lXFxcIjogXFxcIkpvaG5cXFwifVwiLCBcIntcXFwibmFtZVxcXCI6IFxcXCJKYW5lXFxcIn1cIl1cbkpTT04gYXJyYXkyID0gW1wie1xcXCJuYW1lXFxcIjogXFxcIkRvZVxcXCJ9XCIsIFwie1xcXCJuYW1lXFxcIjogXFxcIlNtaXRoXFxcIn1cIl1cblxuSlNPTiBjb21iaW5lZEFycmF5ID0gQXJyYXlBcHBlbmQoYXJyYXkxLCBhcnJheTIpXG5cbi8vIE91dHB1dDogY29tYmluZWRBcnJheSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIkpTT04gYXJyYXkxID0gW1wie1wibmFtZVwiOiBcIkpvaG5cIn1cIiwgXCJ7XCJuYW1lXCI6IFwiSmFuZVwifVwiXVxuSlNPTiBhcnJheTIgPSBbXCJ7XCJuYW1lXCI6IFwiRG9lXCJ9XCIsIFwie1wibmFtZVwiOiBcIlNtaXRoXCJ9XCJdXG5cbkpTT04gY29tYmluZWRBcnJheSA9IEFycmF5QXBwZW5kKGFycmF5MSwgYXJyYXkyKVxuXG4vLyBPdXRwdXQ6IGNvbWJpbmVkQXJyYXkifSwgeyJuYW1lIjogIkpTT04uQXJyYXlJbnNlcnRBdCAoSlNPTiwgTlVNQkVSLCBKU09OKSIsICJyZXR1cm5fdHlwZSI6ICJKU09OIiwgInJldHVybl9kZXNjIjogIlJldHVybnMgdGhlIG9yaWdpbmFsIEpTT04gYXJyYXkgd2l0aCB0aGUgc3BlY2lmaWVkIEpTT04gZWxlbWVudCBpbnNlcnRlZCBhdCB0aGUgc3BlY2lmaWVkIHBvc2l0aW9uLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJKU09OOiBKU09OIG9iamVjdCB0byBpbnNlcnQgaW50bzsgTlVNQkVSOiBwb3NpdGlvbiB0byBpbnNlcnQ7IEpTT046IGVsZW1lbnQgdG8gaW5zZXJ0LiIsICJkZXNjcmlwdGlvbiI6ICJJbnNlcnRzIHRoZSBzZWNvbmQgSlNPTiBwYXJhbWV0ZXIgaW50byB0aGUgaW5wdXQgSlNPTiBhcnJheSAoZmlyc3QgcGFyYW1ldGVyKSBhdCB0aGUgZ2l2ZW4gcG9zaXRpb24uIiwgImV4YW1wbGVfY29kZSI6ICIvLyBEZWZpbmUgdGhlIG9yaWdpbmFsIEpTT04gYXJyYXlcbkpTT04gb3JpZ2luYWxBcnJheSA9IEpTT04uUGFyc2UoJ1t7XCJuYW1lXCI6IFwiQWxpY2VcIn0sIHtcIm5hbWVcIjogXCJCb2JcIn1dJylcblxuLy8gRGVmaW5lIHRoZSBKU09OIGVsZW1lbnQgdG8gaW5zZXJ0XG5KU09OIG5ld0VsZW1lbnQgPSBKU09OLlBhcnNlKCd7XCJuYW1lXCI6IFwiQ2hhcmxpZVwifScpXG5cbi8vIERlZmluZSB0aGUgcG9zaXRpb24gdG8gaW5zZXJ0IHRoZSBuZXcgZWxlbWVudFxuTlVNQkVSIHBvc2l0aW9uID0gMVxuXG4vLyBJbnNlcnQgdGhlIG5ldyBlbGVtZW50IGludG8gdGhlIG9yaWdpbmFsIGFycmF5IGF0IHRoZSBzcGVjaWZpZWQgcG9zaXRpb25cbkpTT04gdXBkYXRlZEFycmF5ID0gSlNPTi5BcnJheUluc2VydEF0KG9yaWdpbmFsQXJyYXksIHBvc2l0aW9uLCBuZXdFbGVtZW50KVxuXG4vLyBQcmludCB0aGUgdXBkYXRlZCBKU09OIGFycmF5IHRvIHRoZSBjb25zb2xlXG4vLyB1cGRhdGVkQXJyYXkuVG9TdHJpbmcoKVxuXG5JbiB0aGlzIGV4YW1wbGU6XG4xLiBXZSBzdGFydCBieSBkZWZpbmluZyBhbiBvcmlnaW5hbCBKU09OIGFycmF5IHdpdGggdHdvIGVsZW1lbnRzLlxuMi4gV2UgdGhlbiBkZWZpbmUgYSBuZXcgSlNPTiBlbGVtZW50IHRoYXQgd2Ugd2FudCB0byBpbnNlcnQgaW50byB0aGUgYXJyYXkuXG4zLiBXZSBzcGVjaWZ5IHRoZSBwb3NpdGlvbiBhdCB3aGljaCB3ZSB3YW50IHRvIGluc2VydCB0aGUgbmV3IGVsZW1lbnQgKGluIHRoaXMgY2FzZSwgcG9zaXRpb24gYDFgKS5cbjQuIFdlIHVzZSB0aGUgYEpTT04uQXJyYXlJbnNlcnRBdGAgZnVuY3Rpb24gdG8gaW5zZXJ0IHRoZSBuZXcgZWxlbWVudCBpbnRvIHRoZSBvcmlnaW5hbCBhcnJheSBhdCB0aGUgc3BlY2lmaWVkIHBvc2l0aW9uLlxuNS4gRmluYWxseSwgd2UgcHJpbnQgdGhlIHVwZGF0ZWQgSlNPTiBhcnJheSB0byB0aGUgY29uc29sZSB1c2luZyB0aGUgYERFQlVHYCBmdW5jdGlvbi5cblxuV2hlbiB0aGlzIHJvdXRpbmUgaXMgZXhlY3V0ZWQsIHRoZSBvdXRwdXQgd2lsbCBiZTpcblxuW3tcIm5hbWVcIjogXCJBbGljZVwifSwge1wibmFtZVwiOiBcIkNoYXJsaWVcIn0sIHtcIm5hbWVcIjogXCJCb2JcIn1dIiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiLy8gRGVmaW5lIHRoZSBvcmlnaW5hbCBKU09OIGFycmF5XG5KU09OIG9yaWdpbmFsQXJyYXkgPSBKU09OLlBhcnNlKCdbe1wibmFtZVwiOiBcIkFsaWNlXCJ9LCB7XCJuYW1lXCI6IFwiQm9iXCJ9XScpXG5cbi8vIERlZmluZSB0aGUgSlNPTiBlbGVtZW50IHRvIGluc2VydFxuSlNPTiBuZXdFbGVtZW50ID0gSlNPTi5QYXJzZSgne1wibmFtZVwiOiBcIkNoYXJsaWVcIn0nKVxuXG4vLyBEZWZpbmUgdGhlIHBvc2l0aW9uIHRvIGluc2VydCB0aGUgbmV3IGVsZW1lbnRcbk5VTUJFUiBwb3NpdGlvbiA9IDFcblxuLy8gSW5zZXJ0IHRoZSBuZXcgZWxlbWVudCBpbnRvIHRoZSBvcmlnaW5hbCBhcnJheSBhdCB0aGUgc3BlY2lmaWVkIHBvc2l0aW9uXG5KU09OIHVwZGF0ZWRBcnJheSA9IEpTT04uQXJyYXlJbnNlcnRBdChvcmlnaW5hbEFycmF5LCBwb3NpdGlvbiwgbmV3RWxlbWVudClcblxuLy8gUHJpbnQgdGhlIHVwZGF0ZWQgSlNPTiBhcnJheSB0byB0aGUgY29uc29sZVxuLy8gdXBkYXRlZEFycmF5LlRvU3RyaW5nKClcblxuSW4gdGhpcyBleGFtcGxlOlxuMS4gV2Ugc3RhcnQgYnkgZGVmaW5pbmcgYW4gb3JpZ2luYWwgSlNPTiBhcnJheSB3aXRoIHR3byBlbGVtZW50cy5cbjIuIFdlIHRoZW4gZGVmaW5lIGEgbmV3IEpTT04gZWxlbWVudCB0aGF0IHdlIHdhbnQgdG8gaW5zZXJ0IGludG8gdGhlIGFycmF5LlxuMy4gV2Ugc3BlY2lmeSB0aGUgcG9zaXRpb24gYXQgd2hpY2ggd2Ugd2FudCB0byBpbnNlcnQgdGhlIG5ldyBlbGVtZW50IChpbiB0aGlzIGNhc2UsIHBvc2l0aW9uIGAxYCkuXG40LiBXZSB1c2UgdGhlIGBKU09OLkFycmF5SW5zZXJ0QXRgIGZ1bmN0aW9uIHRvIGluc2VydCB0aGUgbmV3IGVsZW1lbnQgaW50byB0aGUgb3JpZ2luYWwgYXJyYXkgYXQgdGhlIHNwZWNpZmllZCBwb3NpdGlvbi5cbjUuIEZpbmFsbHksIHdlIHByaW50IHRoZSB1cGRhdGVkIEpTT04gYXJyYXkgdG8gdGhlIGNvbnNvbGUgdXNpbmcgdGhlIGBERUJVR2AgZnVuY3Rpb24uXG5cbldoZW4gdGhpcyByb3V0aW5lIGlzIGV4ZWN1dGVkLCB0aGUgb3V0cHV0IHdpbGwgYmU6XG5cblt7XCJuYW1lXCI6IFwiQWxpY2VcIn0sIHtcIm5hbWVcIjogXCJDaGFybGllXCJ9LCB7XCJuYW1lXCI6IFwiQm9iXCJ9XSJ9LCB7Im5hbWUiOiAiSlNPTi5BcnJheVJlbW92ZSAoSlNPTiwgTlVNQkVSKSIsICJyZXR1cm5fdHlwZSI6ICJKU09OIiwgInJldHVybl9kZXNjIjogIlJldHVybnMgYSBKU09OIGFycmF5IHdpdGggdGhlIG4tdGggZWxlbWVudCByZW1vdmVkLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJKU09OOiBhcnJheSB0byByZW1vdmUgZnJvbTsgTlVNQkVSOiB6ZXJvLWJhc2VkIGluZGV4IG9mIHRoZSB2YWx1ZSB0byBiZSByZW1vdmVkLiIsICJkZXNjcmlwdGlvbiI6ICJSZW1vdmVzIHRoZSBuLXRoIHZhbHVlIGZyb20gYSBKU09OIGFycmF5LiIsICJleGFtcGxlX2NvZGUiOiAiLy8gU2FtcGxlIEpTT04gYXJyYXlcbkpTT04ganNvbkFycmF5ID0gSlNPTi5QYXJzZShcIltcXFwiYXBwbGVcXFwiLCBcXFwiYmFuYW5hXFxcIiwgXFxcImNoZXJyeVxcXCJdXCIpXG5cbi8vIFJlbW92ZSB0aGUgc2Vjb25kIGVsZW1lbnQgKGluZGV4IDEpXG5KU09OIHVwZGF0ZWRBcnJheSA9IEpTT04uQXJyYXlSZW1vdmUoanNvbkFycmF5LCAxKVxuXG4vLyBVcGRhdGVkIEpTT04gQXJyYXk6IFwiICsgSlNPTi5TdHJpbmdpZnkodXBkYXRlZEFycmF5KSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIi8vIFNhbXBsZSBKU09OIGFycmF5XG5KU09OIGpzb25BcnJheSA9IEpTT04uUGFyc2UoXCJbXCJhcHBsZVwiLCBcImJhbmFuYVwiLCBcImNoZXJyeVwiXVwiKVxuXG4vLyBSZW1vdmUgdGhlIHNlY29uZCBlbGVtZW50IChpbmRleCAxKVxuSlNPTiB1cGRhdGVkQXJyYXkgPSBKU09OLkFycmF5UmVtb3ZlKGpzb25BcnJheSwgMSlcblxuLy8gVXBkYXRlZCBKU09OIEFycmF5OiBcIiArIEpTT04uU3RyaW5naWZ5KHVwZGF0ZWRBcnJheSkifSwgeyJuYW1lIjogIkpTT04uQXJyYXlSZXBsYWNlQXQgKEpTT04sIE5VTUJFUiwgSlNPTikiLCAicmV0dXJuX3R5cGUiOiAiSlNPTiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIHRoZSBvcmlnaW5hbCBKU09OIGFycmF5IHdpdGggdGhlIHNwZWNpZmllZCBKU09OIGVsZW1lbnQgcmVwbGFjaW5nIHdoYXQgd2FzIGF0IHRoZSBzcGVjaWZpZWQgcG9zaXRpb24uIiwgInBhcmFtZXRlcl9kZXNjIjogIkpTT046IEpTT04gb2JqZWN0IHRvIGluc2VydCBpbnRvOyBOVU1CRVI6IHBvc2l0aW9uIHRvIHJlcGxhY2U7IEpTT046IGVsZW1lbnQgdG8gcmVwbGFjZSB3aXRoLiIsICJkZXNjcmlwdGlvbiI6ICJSZXBsYWNlcyB0aGUgSlNPTiBlbGVtZW50IGF0IHRoZSBzcGVjaWZpZWQgcG9zaXRpb24gaW4gdGhlIGlucHV0IEpTT04gKGZpcnN0IHBhcmFtZXRlcikgd2l0aCB0aGUgc3BlY2lmaWVkIEpTT04gZWxlbWVudCAobGFzdCBwYXJhbWV0ZXIpLiIsICJleGFtcGxlX2NvZGUiOiAiLy8gT3JpZ2luYWwgSlNPTiBhcnJheVxuSlNPTiBvcmlnaW5hbEFycmF5ID0gSlNPTi5QYXJzZSgnW3tcIm5hbWVcIjogXCJBbGljZVwifSwge1wibmFtZVwiOiBcIkJvYlwifSwge1wibmFtZVwiOiBcIkNoYXJsaWVcIn1dJylcblxuLy8gTmV3IEpTT04gZWxlbWVudCB0byByZXBsYWNlIHdpdGhcbkpTT04gbmV3RWxlbWVudCA9IEpTT04uUGFyc2UoJ3tcIm5hbWVcIjogXCJEYXZpZFwifScpXG5cbi8vIFBvc2l0aW9uIHRvIHJlcGxhY2UgKDAtYmFzZWQgaW5kZXgpXG5OVU1CRVIgcG9zaXRpb24gPSAxXG5cbi8vIFJlcGxhY2UgdGhlIGVsZW1lbnQgYXQgdGhlIHNwZWNpZmllZCBwb3NpdGlvblxuSlNPTiB1cGRhdGVkQXJyYXkgPSBKU09OLkFycmF5UmVwbGFjZUF0KG9yaWdpbmFsQXJyYXksIHBvc2l0aW9uLCBuZXdFbGVtZW50KVxuXG4vLyBQcmludCB0aGUgdXBkYXRlZCBKU09OIGFycmF5IHRvIHRoZSBjb25zb2xlXG4vLyB1cGRhdGVkQXJyYXkuVG9TdHJpbmcoKVxuXG4vLyBJbiB0aGlzIGV4YW1wbGU6XG4vLyAtIFdlIHN0YXJ0IHdpdGggYW4gb3JpZ2luYWwgSlNPTiBhcnJheSBjb250YWluaW5nIHRocmVlIG9iamVjdHMuXG4vLyAtIFdlIGNyZWF0ZSBhIG5ldyBKU09OIGVsZW1lbnQgdGhhdCB3ZSB3YW50IHRvIGluc2VydCBpbnRvIHRoZSBhcnJheS5cbi8vIC0gV2Ugc3BlY2lmeSB0aGUgcG9zaXRpb24gKGluZGV4IDEsIHdoaWNoIGNvcnJlc3BvbmRzIHRvIHRoZSBzZWNvbmQgZWxlbWVudCBpbiB0aGUgYXJyYXkpIHdoZXJlIHdlIHdhbnQgdG8gcmVwbGFjZSB0aGUgZXhpc3RpbmcgZWxlbWVudC5cbi8vIC0gV2UgdXNlIHRoZSBgSlNPTi5BcnJheVJlcGxhY2VBdGAgZnVuY3Rpb24gdG8gcmVwbGFjZSB0aGUgZWxlbWVudCBhdCB0aGUgc3BlY2lmaWVkIHBvc2l0aW9uIHdpdGggdGhlIG5ldyBlbGVtZW50LlxuLy8gLSBGaW5hbGx5LCB3ZSBwcmludCB0aGUgdXBkYXRlZCBKU09OIGFycmF5IHRvIHRoZSBjb25zb2xlIHVzaW5nIHRoZSBgREVCVUdgIGZ1bmN0aW9uLlxuXG4vLyBXaGVuIGV4ZWN1dGVkLCB0aGUgb3V0cHV0IHdpbGwgYmU6XG5cbi8vIFt7XCJuYW1lXCI6IFwiQWxpY2VcIn0sIHtcIm5hbWVcIjogXCJEYXZpZFwifSwge1wibmFtZVwiOiBcIkNoYXJsaWVcIn1dIiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiLy8gT3JpZ2luYWwgSlNPTiBhcnJheVxuSlNPTiBvcmlnaW5hbEFycmF5ID0gSlNPTi5QYXJzZSgnW3tcIm5hbWVcIjogXCJBbGljZVwifSwge1wibmFtZVwiOiBcIkJvYlwifSwge1wibmFtZVwiOiBcIkNoYXJsaWVcIn1dJylcblxuLy8gTmV3IEpTT04gZWxlbWVudCB0byByZXBsYWNlIHdpdGhcbkpTT04gbmV3RWxlbWVudCA9IEpTT04uUGFyc2UoJ3tcIm5hbWVcIjogXCJEYXZpZFwifScpXG5cbi8vIFBvc2l0aW9uIHRvIHJlcGxhY2UgKDAtYmFzZWQgaW5kZXgpXG5OVU1CRVIgcG9zaXRpb24gPSAxXG5cbi8vIFJlcGxhY2UgdGhlIGVsZW1lbnQgYXQgdGhlIHNwZWNpZmllZCBwb3NpdGlvblxuSlNPTiB1cGRhdGVkQXJyYXkgPSBKU09OLkFycmF5UmVwbGFjZUF0KG9yaWdpbmFsQXJyYXksIHBvc2l0aW9uLCBuZXdFbGVtZW50KVxuXG4vLyBQcmludCB0aGUgdXBkYXRlZCBKU09OIGFycmF5IHRvIHRoZSBjb25zb2xlXG4vLyB1cGRhdGVkQXJyYXkuVG9TdHJpbmcoKVxuXG4vLyBJbiB0aGlzIGV4YW1wbGU6XG4vLyAtIFdlIHN0YXJ0IHdpdGggYW4gb3JpZ2luYWwgSlNPTiBhcnJheSBjb250YWluaW5nIHRocmVlIG9iamVjdHMuXG4vLyAtIFdlIGNyZWF0ZSBhIG5ldyBKU09OIGVsZW1lbnQgdGhhdCB3ZSB3YW50IHRvIGluc2VydCBpbnRvIHRoZSBhcnJheS5cbi8vIC0gV2Ugc3BlY2lmeSB0aGUgcG9zaXRpb24gKGluZGV4IDEsIHdoaWNoIGNvcnJlc3BvbmRzIHRvIHRoZSBzZWNvbmQgZWxlbWVudCBpbiB0aGUgYXJyYXkpIHdoZXJlIHdlIHdhbnQgdG8gcmVwbGFjZSB0aGUgZXhpc3RpbmcgZWxlbWVudC5cbi8vIC0gV2UgdXNlIHRoZSBgSlNPTi5BcnJheVJlcGxhY2VBdGAgZnVuY3Rpb24gdG8gcmVwbGFjZSB0aGUgZWxlbWVudCBhdCB0aGUgc3BlY2lmaWVkIHBvc2l0aW9uIHdpdGggdGhlIG5ldyBlbGVtZW50LlxuLy8gLSBGaW5hbGx5LCB3ZSBwcmludCB0aGUgdXBkYXRlZCBKU09OIGFycmF5IHRvIHRoZSBjb25zb2xlIHVzaW5nIHRoZSBgREVCVUdgIGZ1bmN0aW9uLlxuXG4vLyBXaGVuIGV4ZWN1dGVkLCB0aGUgb3V0cHV0IHdpbGwgYmU6XG5cbi8vIFt7XCJuYW1lXCI6IFwiQWxpY2VcIn0sIHtcIm5hbWVcIjogXCJEYXZpZFwifSwge1wibmFtZVwiOiBcIkNoYXJsaWVcIn1dIn0sIHsibmFtZSI6ICJKU09OLkFzQm9vbCAoSlNPTikiLCAicmV0dXJuX3R5cGUiOiAiQk9PTEVBTiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIHRoZWBCT09MRUFOYHJlcHJlc2VudGF0aW9uIG9mIHRoZSBwcm92aWRlZCBKU09OIHZhbHVlLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJKU09OOiB0aGUgdmFsdWUgdG8gYmUgY29udmVydGVkIHRvIGEgQk9PTEVBTi4iLCAiZGVzY3JpcHRpb24iOiAiQ29udmVydHMgSlNPTiB2YWx1ZSB0byBhIEJPT0xFQU4uIiwgImV4YW1wbGVfY29kZSI6ICIvLyBFeGFtcGxlIEpTT04gb2JqZWN0XG5KU09OIGV4YW1wbGVKc29uID0ge1wiaXNBY3RpdmVcIjogdHJ1ZX1cblxuLy8gRXh0cmFjdCB0aGUgXCJpc0FjdGl2ZVwiIGZpZWxkIGZyb20gdGhlIEpTT04gb2JqZWN0XG5KU09OIGlzQWN0aXZlRmllbGQgPSBleGFtcGxlSnNvbltcImlzQWN0aXZlXCJdXG5cbi8vIENvbnZlcnQgdGhlIEpTT04gZmllbGQgdG8gYSBCT09MRUFOXG5CT09MRUFOIGlzQWN0aXZlID0gSlNPTi5Bc0Jvb2woaXNBY3RpdmVGaWVsZClcblxuLy8gVXNlIHRoZSBCT09MRUFOIHZhbHVlIGluIGEgY29uZGl0aW9uXG5JRiBpc0FjdGl2ZSBUSEVOIHtcbiAgICAvLyBUaGUgaXNBY3RpdmUgZmllbGQgaXMgVFJVRVxufSBFTFNFIHtcbiAgICAvLyBUaGUgaXNBY3RpdmUgZmllbGQgaXMgRkFMU0Vcbn0iLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICIvLyBFeGFtcGxlIEpTT04gb2JqZWN0XG5KU09OIGV4YW1wbGVKc29uID0ge1wiaXNBY3RpdmVcIjogdHJ1ZX1cblxuLy8gRXh0cmFjdCB0aGUgXCJpc0FjdGl2ZVwiIGZpZWxkIGZyb20gdGhlIEpTT04gb2JqZWN0XG5KU09OIGlzQWN0aXZlRmllbGQgPSBleGFtcGxlSnNvbltcImlzQWN0aXZlXCJdXG5cbi8vIENvbnZlcnQgdGhlIEpTT04gZmllbGQgdG8gYSBCT09MRUFOXG5CT09MRUFOIGlzQWN0aXZlID0gSlNPTi5Bc0Jvb2woaXNBY3RpdmVGaWVsZClcblxuLy8gVXNlIHRoZSBCT09MRUFOIHZhbHVlIGluIGEgY29uZGl0aW9uXG5JRiBpc0FjdGl2ZSBUSEVOIHtcbiAgICAvLyBUaGUgaXNBY3RpdmUgZmllbGQgaXMgVFJVRVxufSBFTFNFIHtcbiAgICAvLyBUaGUgaXNBY3RpdmUgZmllbGQgaXMgRkFMU0Vcbn0ifSwgeyJuYW1lIjogIkpTT04uQXNEb3VibGUgKEpTT04pIiwgInJldHVybl90eXBlIjogIk5VTUJFUiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIHRoZSBudW1lcmljIHZhbHVlIGV4dHJhY3RlZCBmcm9tIHRoZSBnaXZlbiBKU09OIG9iamVjdC4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiSlNPTjogVGhlIEpTT04gb2JqZWN0IGNvbnRhaW5pbmcgdGhlIHZhbHVlIHRvIGJlIGNvbnZlcnRlZCB0byBhIE5VTUJFUi4iLCAiZGVzY3JpcHRpb24iOiAiQ29udmVydHMgSlNPTiB2YWx1ZSB0byBhIG51bWJlci4iLCAiZXhhbXBsZV9jb2RlIjogIi8vIEV4YW1wbGUgSlNPTiBvYmplY3RcbkpTT04ganNvbk9iamVjdCA9IEpTT04uUGFyc2UoJ3tcInZhbHVlXCI6IDQyLjV9JylcblxuLy8gRXh0cmFjdCB0aGUgbnVtZXJpYyB2YWx1ZSBmcm9tIHRoZSBKU09OIG9iamVjdFxuTlVNQkVSIGV4dHJhY3RlZFZhbHVlID0gSlNPTi5Bc0RvdWJsZShqc29uT2JqZWN0LnZhbHVlKVxuXG4vLyBFeHRyYWN0ZWQgVmFsdWU6IFxuLy8gKyBleHRyYWN0ZWRWYWx1ZSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIi8vIEV4YW1wbGUgSlNPTiBvYmplY3RcbkpTT04ganNvbk9iamVjdCA9IEpTT04uUGFyc2UoJ3tcInZhbHVlXCI6IDQyLjV9JylcblxuLy8gRXh0cmFjdCB0aGUgbnVtZXJpYyB2YWx1ZSBmcm9tIHRoZSBKU09OIG9iamVjdFxuTlVNQkVSIGV4dHJhY3RlZFZhbHVlID0gSlNPTi5Bc0RvdWJsZShqc29uT2JqZWN0LnZhbHVlKVxuXG4vLyBFeHRyYWN0ZWQgVmFsdWU6IFxuLy8gKyBleHRyYWN0ZWRWYWx1ZSJ9LCB7Im5hbWUiOiAiSlNPTi5Bc0ludDY0IChKU09OKSIsICJyZXR1cm5fdHlwZSI6ICJOVU1CRVIiLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyB0aGUgSlNPTiB2YWx1ZSBjb252ZXJ0ZWQgdG8gYSA2NC1iaXQgaW50ZWdlciAoYE5VTUJFUmApLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJKU09OOiB2YWx1ZSB0byBiZSBjb252ZXJ0ZWQgdG8gYSBOVU1CRVIuIiwgImRlc2NyaXB0aW9uIjogIkNvbnZlcnRzIEpTT04gdmFsdWUgdG8gYSBudW1iZXIuIiwgImV4YW1wbGVfY29kZSI6ICIvLyBFeGFtcGxlIEpTT04gb2JqZWN0XG5KU09OIGpzb25PYmplY3QgPSB7XCJ2YWx1ZVwiOiAxMjM0NX1cblxuLy8gRXh0cmFjdCB0aGUgdmFsdWUgZnJvbSB0aGUgSlNPTiBvYmplY3RcbkpTT04ganNvblZhbHVlID0ganNvbk9iamVjdFtcInZhbHVlXCJdXG5cbi8vIENvbnZlcnQgdGhlIEpTT04gdmFsdWUgdG8gYSA2NC1iaXQgaW50ZWdlclxuTlVNQkVSIGludFZhbHVlID0gSlNPTi5Bc0ludDY0KGpzb25WYWx1ZSlcblxuLy8gQ29udmVydGVkIHZhbHVlOiBpbnRWYWx1ZSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIi8vIEV4YW1wbGUgSlNPTiBvYmplY3RcbkpTT04ganNvbk9iamVjdCA9IHtcInZhbHVlXCI6IDEyMzQ1fVxuXG4vLyBFeHRyYWN0IHRoZSB2YWx1ZSBmcm9tIHRoZSBKU09OIG9iamVjdFxuSlNPTiBqc29uVmFsdWUgPSBqc29uT2JqZWN0W1widmFsdWVcIl1cblxuLy8gQ29udmVydCB0aGUgSlNPTiB2YWx1ZSB0byBhIDY0LWJpdCBpbnRlZ2VyXG5OVU1CRVIgaW50VmFsdWUgPSBKU09OLkFzSW50NjQoanNvblZhbHVlKVxuXG4vLyBDb252ZXJ0ZWQgdmFsdWU6IGludFZhbHVlIn0sIHsibmFtZSI6ICJKU09OLkFzTnVtYmVyIChKU09OKSIsICJyZXR1cm5fdHlwZSI6ICJOVU1CRVIiLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyB0aGUgbnVtZXJpY2FsIHZhbHVlIGV4dHJhY3RlZCBmcm9tIHRoZSBnaXZlbiBKU09OIGlucHV0LiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJKU09OOiBBIEpTT04gdmFsdWUgdG8gY29udmVydCB0byBhIE5VTUJFUi4iLCAiZGVzY3JpcHRpb24iOiAiQ29udmVydHMgSlNPTiB2YWx1ZSB0byBhIG51bWJlci4iLCAiZXhhbXBsZV9jb2RlIjogIi8vIEFzc3VtZSB3ZSBoYXZlIGEgSlNPTiBvYmplY3RcbkpTT04ganNvbk9iamVjdCA9IHtcbiAgICBcImtleTFcIjogXCJ2YWx1ZTFcIixcbiAgICBcImtleTJcIjogNDIsXG4gICAgXCJrZXkzXCI6IDMuMTRcbn1cblxuLy8gRXh0cmFjdCB0aGUgbnVtYmVyIGFzc29jaWF0ZWQgd2l0aCBcImtleTJcIlxuTlVNQkVSIGV4dHJhY3RlZE51bWJlciA9IEpTT04uR2V0QXNOdW1iZXIoanNvbk9iamVjdCwgXCJrZXkyXCIpXG5cbi8vIEV4dHJhY3RlZCBOdW1iZXI6IDQyXG4vLyBERUJVRyhcIkV4dHJhY3RlZCBOdW1iZXI6IFwiICsgZXh0cmFjdGVkTnVtYmVyKSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIi8vIEFzc3VtZSB3ZSBoYXZlIGEgSlNPTiBvYmplY3RcbkpTT04ganNvbk9iamVjdCA9IHtcbiAgICBcImtleTFcIjogXCJ2YWx1ZTFcIixcbiAgICBcImtleTJcIjogNDIsXG4gICAgXCJrZXkzXCI6IDMuMTRcbn1cblxuLy8gRXh0cmFjdCB0aGUgbnVtYmVyIGFzc29jaWF0ZWQgd2l0aCBcImtleTJcIlxuTlVNQkVSIGV4dHJhY3RlZE51bWJlciA9IEpTT04uR2V0QXNOdW1iZXIoanNvbk9iamVjdCwgXCJrZXkyXCIpXG5cbi8vIEV4dHJhY3RlZCBOdW1iZXI6IDQyXG4vLyBERUJVRyhcIkV4dHJhY3RlZCBOdW1iZXI6IFwiICsgZXh0cmFjdGVkTnVtYmVyKSJ9LCB7Im5hbWUiOiAiSlNPTi5Bc1NUUklORyAoSlNPTikiLCAicmV0dXJuX3R5cGUiOiAiU1RSSU5HIiwgInJldHVybl9kZXNjIjogIlJldHVybnMgYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIHByb3ZpZGVkIEpTT04uIiwgInBhcmFtZXRlcl9kZXNjIjogIkpTT046IGlucHV0IHZhbHVlIHRvIGNvbnZlcnQgdG8gYSBTVFJJTkcuIiwgImRlc2NyaXB0aW9uIjogIkNvbnZlcnRzIEpTT04gdmFsdWUgdG8gYSBzdHJpbmcuIiwgImV4YW1wbGVfY29kZSI6ICIvLyBFeGFtcGxlIEpTT04gb2JqZWN0XG5KU09OIGV4YW1wbGVKc29uID0ge1xuICAgIFwibmFtZVwiOiBcIkpvaG4gRG9lXCIsXG4gICAgXCJhZ2VcIjogMzAsXG4gICAgXCJlbWFpbFwiOiBcImpvaG4uZG9lQGV4YW1wbGUuY29tXCJcbn1cblxuLy8gQ29udmVydCBKU09OIG9iamVjdCB0byBTVFJJTkdcblNUUklORyBqc29uU3RyaW5nID0gSlNPTi5Bc1N0cmluZyhleGFtcGxlSnNvbilcblxuLy8gUHJpbnQgdGhlIFNUUklORyByZXByZXNlbnRhdGlvbiBvZiB0aGUgSlNPTiBvYmplY3Rcbi8vIGpzb25TdHJpbmciLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICIvLyBFeGFtcGxlIEpTT04gb2JqZWN0XG5KU09OIGV4YW1wbGVKc29uID0ge1xuICAgIFwibmFtZVwiOiBcIkpvaG4gRG9lXCIsXG4gICAgXCJhZ2VcIjogMzAsXG4gICAgXCJlbWFpbFwiOiBcImpvaG4uZG9lQGV4YW1wbGUuY29tXCJcbn1cblxuLy8gQ29udmVydCBKU09OIG9iamVjdCB0byBTVFJJTkdcblNUUklORyBqc29uU3RyaW5nID0gSlNPTi5Bc1N0cmluZyhleGFtcGxlSnNvbilcblxuLy8gUHJpbnQgdGhlIFNUUklORyByZXByZXNlbnRhdGlvbiBvZiB0aGUgSlNPTiBvYmplY3Rcbi8vIGpzb25TdHJpbmcifSwgeyJuYW1lIjogIkpTT04uQXQgKEpTT04sIE5VTUJFUikiLCAicmV0dXJuX3R5cGUiOiAiSlNPTiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIHRoZSBuLXRoIGVsZW1lbnQgZnJvbSBhIEpTT04gYXJyYXkuIiwgInBhcmFtZXRlcl9kZXNjIjogIkpTT046IGFycmF5IHRvIHJldHJpZXZlIGZyb207IE5VTUJFUjogcG9zaXRpb24gb2YgdmFsdWUgdG8gcmV0cmlldmUuIiwgImRlc2NyaXB0aW9uIjogIlJldHVybnMgdGhlIG4tdGggdmFsdWUgb2YgYSBKU09OIGFycmF5LiIsICJleGFtcGxlX2NvZGUiOiAiLy8gU2FtcGxlIEpTT04gYXJyYXlcbkpTT04ganNvbkFycmF5ID0gW1wie1xcXCJuYW1lXFxcIjogXFxcIkpvaG5cXFwifVwiLCBcIntcXFwibmFtZVxcXCI6IFxcXCJKYW5lXFxcIn1cIiwgXCJ7XFxcIm5hbWVcXFwiOiBcXFwiRG9lXFxcIn1cIl1cblxuLy8gUmV0cmlldmUgdGhlIHRoaXJkIGVsZW1lbnQgKGluZGV4IDIsIGFzIGluZGV4aW5nIGlzIHplcm8tYmFzZWQpXG5KU09OIHRoaXJkRWxlbWVudCA9IEpTT04uQXQoanNvbkFycmF5LCAyKVxuXG4vLyBUaGlzIGxpbmUgd2FzIG9yaWdpbmFsbHkgYSBERUJVRygpIGZ1bmN0aW9uIGNhbGwgdG8gcHJpbnQgdGhlIHRoaXJkIGVsZW1lbnQgdG8gdGhlIGNvbnNvbGVcbi8vIHRoaXJkRWxlbWVudCIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIi8vIFNhbXBsZSBKU09OIGFycmF5XG5KU09OIGpzb25BcnJheSA9IFtcIntcIm5hbWVcIjogXCJKb2huXCJ9XCIsIFwie1wibmFtZVwiOiBcIkphbmVcIn1cIiwgXCJ7XCJuYW1lXCI6IFwiRG9lXCJ9XCJdXG5cbi8vIFJldHJpZXZlIHRoZSB0aGlyZCBlbGVtZW50IChpbmRleCAyLCBhcyBpbmRleGluZyBpcyB6ZXJvLWJhc2VkKVxuSlNPTiB0aGlyZEVsZW1lbnQgPSBKU09OLkF0KGpzb25BcnJheSwgMilcblxuLy8gVGhpcyBsaW5lIHdhcyBvcmlnaW5hbGx5IGEgREVCVUcoKSBmdW5jdGlvbiBjYWxsIHRvIHByaW50IHRoZSB0aGlyZCBlbGVtZW50IHRvIHRoZSBjb25zb2xlXG4vLyB0aGlyZEVsZW1lbnQifSwgeyJuYW1lIjogIkpTT04uQ3JlYXRlRW1wdHlBcnJheSAoKSIsICJyZXR1cm5fdHlwZSI6ICJKU09OIiwgInJldHVybl9kZXNjIjogIlJldHVybnMgYW4gZW1wdHkgSlNPTiBhcnJheS4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiTm9uZSIsICJkZXNjcmlwdGlvbiI6ICJDcmVhdGVzIGFuIGVtcHR5IEpTT04gYXJyYXkuIiwgImV4YW1wbGVfY29kZSI6ICJKU09OIGVtcHR5T2JqZWN0ID0gSlNPTi5DcmVhdGVFbXB0eU9iamVjdCgpXG4vLyBDcmVhdGVkIGFuIGVtcHR5IEpTT04gb2JqZWN0OiArIGVtcHR5T2JqZWN0IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiSlNPTiBlbXB0eU9iamVjdCA9IEpTT04uQ3JlYXRlRW1wdHlPYmplY3QoKVxuLy8gQ3JlYXRlZCBhbiBlbXB0eSBKU09OIG9iamVjdDogKyBlbXB0eU9iamVjdCJ9LCB7Im5hbWUiOiAiSlNPTi5DcmVhdGVFbXB0eU9iamVjdCAoKSIsICJyZXR1cm5fdHlwZSI6ICJKU09OIiwgInJldHVybl9kZXNjIjogIlJldHVybnMgYW4gZW1wdHkgSlNPTiBvYmplY3QuIiwgInBhcmFtZXRlcl9kZXNjIjogIk5vbmUiLCAiZGVzY3JpcHRpb24iOiAiQ3JlYXRlcyBhbiBlbXB0eSBKU09OIG9iamVjdC4iLCAiZXhhbXBsZV9jb2RlIjogIi8vIENyZWF0ZSBhbiBlbXB0eSBKU09OIG9iamVjdFxuSlNPTiBlbXB0eUpzb24gPSBKU09OLkNyZWF0ZUVtcHR5T2JqZWN0KClcblxuLy8gUHJpbnQgdGhlIGVtcHR5IEpTT04gb2JqZWN0IHRvIHRoZSBjb25zb2xlXG4vLyBlbXB0eUpzb24iLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICIvLyBDcmVhdGUgYW4gZW1wdHkgSlNPTiBvYmplY3RcbkpTT04gZW1wdHlKc29uID0gSlNPTi5DcmVhdGVFbXB0eU9iamVjdCgpXG5cbi8vIFByaW50IHRoZSBlbXB0eSBKU09OIG9iamVjdCB0byB0aGUgY29uc29sZVxuLy8gZW1wdHlKc29uIn0sIHsibmFtZSI6ICJKU09OLkNyZWF0ZU51bGwgKCkiLCAicmV0dXJuX3R5cGUiOiAiSlNPTiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIGEgbnVsbCBKU09OIG9iamVjdC4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiTm9uZSIsICJkZXNjcmlwdGlvbiI6ICJDcmVhdGVzIGEgbnVsbCBKU09OIG9iamVjdC4iLCAiZXhhbXBsZV9jb2RlIjogIi8vIENyZWF0ZSBhIG51bGwgSlNPTiBvYmplY3RcbkpTT04gbnVsbE9iamVjdCA9IEpTT04uQ3JlYXRlTnVsbCgpXG5cbi8vIENyZWF0ZWQgSlNPTiBvYmplY3Q6IFwiICsgbnVsbE9iamVjdFxuLy8gVGhpcyBsaW5lIHdhcyBvcmlnaW5hbGx5IGEgREVCVUcoKSBmdW5jdGlvbiBjYWxsLiIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIi8vIENyZWF0ZSBhIG51bGwgSlNPTiBvYmplY3RcbkpTT04gbnVsbE9iamVjdCA9IEpTT04uQ3JlYXRlTnVsbCgpXG5cbi8vIENyZWF0ZWQgSlNPTiBvYmplY3Q6IFwiICsgbnVsbE9iamVjdFxuLy8gVGhpcyBsaW5lIHdhcyBvcmlnaW5hbGx5IGEgREVCVUcoKSBmdW5jdGlvbiBjYWxsLiJ9LCB7Im5hbWUiOiAiSlNPTi5FbGVtZW50TWF0Y2hpbmcgKEpTT04sIFNUUklORywgTlVNQkVSKSIsICJyZXR1cm5fdHlwZSI6ICJKU09OIiwgInJldHVybl9kZXNjIjogIlJldHVybnMgdGhlIEpTT04gb2JqZWN0IGZyb20gYW4gYXJyYXkgd2hlcmUgdGhlIHNwZWNpZmllZCBrZXkgZXF1YWxzIHRoZSBnaXZlbiB2YWx1ZS4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiSlNPTjogdGhlIGFycmF5IHRvIHNlYXJjaDsgU1RSSU5HOiB0aGUga2V5IHRvIG1hdGNoOyBOVU1CRVI6IHRoZSB2YWx1ZSB0byBtYXRjaC4iLCAiZGVzY3JpcHRpb24iOiAiUmV0dXJucyB0aGUgb2JqZWN0IG9mIGFuIGFycmF5IG9mIG9iamVjdHMgZm9yIHdoaWNoIHRoZSBnaXZlbiBrZXkgbWF0Y2hlcyBhIGdpdmVuIHZhbHVlLiIsICJleGFtcGxlX2NvZGUiOiAiLy8gU2FtcGxlIEpTT04gb2JqZWN0XG5KU09OIHNhbXBsZUpzb24gPSB7XG4gICAgXCJpdGVtc1wiOiBbXG4gICAgICAgIHtcImlkXCI6IDEsIFwibmFtZVwiOiBcIkl0ZW0xXCJ9LFxuICAgICAgICB7XCJpZFwiOiAyLCBcIm5hbWVcIjogXCJJdGVtMlwifSxcbiAgICAgICAge1wiaWRcIjogMywgXCJuYW1lXCI6IFwiSXRlbTNcIn1cbiAgICBdXG59XG5cbi8vIFVzZSBKU09OLkVsZW1lbnRNYXRjaGluZyB0byBmaW5kIGFuIGVsZW1lbnQgd2l0aCBhIHNwZWNpZmljIGlkXG5KU09OIG1hdGNoaW5nRWxlbWVudCA9IEpTT04uRWxlbWVudE1hdGNoaW5nKHNhbXBsZUpzb24sIFwiaXRlbXMuaWRcIiwgMilcblxuLy8gQ2hlY2sgaWYgYSBtYXRjaGluZyBlbGVtZW50IHdhcyBmb3VuZFxuSUYgbWF0Y2hpbmdFbGVtZW50ICE9IE5VTEwgVEhFTiB7XG4gICAgLy8gRm91bmQgbWF0Y2hpbmcgZWxlbWVudDogKyBtYXRjaGluZ0VsZW1lbnRcbn0gRUxTRSB7XG4gICAgLy8gTm8gbWF0Y2hpbmcgZWxlbWVudCBmb3VuZFxufSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIi8vIFNhbXBsZSBKU09OIG9iamVjdFxuSlNPTiBzYW1wbGVKc29uID0ge1xuICAgIFwiaXRlbXNcIjogW1xuICAgICAgICB7XCJpZFwiOiAxLCBcIm5hbWVcIjogXCJJdGVtMVwifSxcbiAgICAgICAge1wiaWRcIjogMiwgXCJuYW1lXCI6IFwiSXRlbTJcIn0sXG4gICAgICAgIHtcImlkXCI6IDMsIFwibmFtZVwiOiBcIkl0ZW0zXCJ9XG4gICAgXVxufVxuXG4vLyBVc2UgSlNPTi5FbGVtZW50TWF0Y2hpbmcgdG8gZmluZCBhbiBlbGVtZW50IHdpdGggYSBzcGVjaWZpYyBpZFxuSlNPTiBtYXRjaGluZ0VsZW1lbnQgPSBKU09OLkVsZW1lbnRNYXRjaGluZyhzYW1wbGVKc29uLCBcIml0ZW1zLmlkXCIsIDIpXG5cbi8vIENoZWNrIGlmIGEgbWF0Y2hpbmcgZWxlbWVudCB3YXMgZm91bmRcbklGIG1hdGNoaW5nRWxlbWVudCAhPSBOVUxMIFRIRU4ge1xuICAgIC8vIEZvdW5kIG1hdGNoaW5nIGVsZW1lbnQ6ICsgbWF0Y2hpbmdFbGVtZW50XG59IEVMU0Uge1xuICAgIC8vIE5vIG1hdGNoaW5nIGVsZW1lbnQgZm91bmRcbn0ifSwgeyJuYW1lIjogIkpTT04uRWxlbWVudE1hdGNoaW5nIChKU09OLCBTVFJJTkcsIFNUUklORykiLCAicmV0dXJuX3R5cGUiOiAiSlNPTiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIGEgSlNPTiBvYmplY3QgZnJvbSBhbiBhcnJheSB3aGVyZSB0aGUgc3BlY2lmaWVkIGtleSBoYXMgdGhlIHNwZWNpZmllZCB2YWx1ZS4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiSlNPTjogdGhlIGFycmF5IHRvIHNlYXJjaDsgU1RSSU5HOiBhIGtleSB0byBtYXRjaCBTVFJJTkc6IHRoZSBkZXNpcmVkIHZhbHVlIGZvciB0aGF0IGtleS4iLCAiZGVzY3JpcHRpb24iOiAiUmV0dXJucyB0aGUgb2JqZWN0IG9mIGFuIGFycmF5IG9mIG9iamVjdHMgZm9yIHdoaWNoIHRoZSBnaXZlbiBrZXkgbWF0Y2hlcyBhIGdpdmVuIHZhbHVlLiIsICJleGFtcGxlX2NvZGUiOiAiLy8gU2FtcGxlIEpTT04gYXJyYXlcbkpTT04ganNvbkFycmF5ID0gW1xuICAgIHtcImlkXCI6IFwiMVwiLCBcIm5hbWVcIjogXCJBbGljZVwifSxcbiAgICB7XCJpZFwiOiBcIjJcIiwgXCJuYW1lXCI6IFwiQm9iXCJ9LFxuICAgIHtcImlkXCI6IFwiM1wiLCBcIm5hbWVcIjogXCJDaGFybGllXCJ9XG5dXG5cbi8vIEtleSBhbmQgdmFsdWUgdG8gbWF0Y2hcblNUUklORyBrZXkgPSBcIm5hbWVcIlxuU1RSSU5HIHZhbHVlID0gXCJCb2JcIlxuXG4vLyBGaW5kIGVsZW1lbnRzIG1hdGNoaW5nIHRoZSBrZXktdmFsdWUgcGFpclxuSlNPTiBtYXRjaGluZ0VsZW1lbnRzID0gSlNPTi5FbGVtZW50TWF0Y2hpbmcoanNvbkFycmF5LCBrZXksIHZhbHVlKVxuXG4vLyBUaGUgbWF0Y2hpbmcgZWxlbWVudHMgd291bGQgYmUgcHJpbnRlZCB0byB0aGUgY29uc29sZSBoZXJlXG4vLyBtYXRjaGluZ0VsZW1lbnRzXG5cbkluIHRoaXMgZXhhbXBsZTpcbi0gV2UgZGVmaW5lIGEgSlNPTiBhcnJheSBganNvbkFycmF5YCBjb250YWluaW5nIHNldmVyYWwgb2JqZWN0cy5cbi0gV2Ugc3BlY2lmeSB0aGUga2V5IGBcIm5hbWVcImAgYW5kIHRoZSB2YWx1ZSBgXCJCb2JcImAgdGhhdCB3ZSB3YW50IHRvIG1hdGNoLlxuLSBXZSB1c2UgdGhlIGBKU09OLkVsZW1lbnRNYXRjaGluZ2AgZnVuY3Rpb24gdG8gZmluZCBlbGVtZW50cyBpbiB0aGUgYGpzb25BcnJheWAgdGhhdCBoYXZlIHRoZSBrZXkgYFwibmFtZVwiYCB3aXRoIHRoZSB2YWx1ZSBgXCJCb2JcImAuXG4tIEZpbmFsbHksIHdlIHdvdWxkIHByaW50IHRoZSBtYXRjaGluZyBlbGVtZW50cyB0byB0aGUgY29uc29sZS5cblxuV2hlbiB0aGlzIGNvZGUgcnVucywgaXQgd291bGQgb3V0cHV0IHRoZSBKU09OIG9iamVjdChzKSB0aGF0IG1hdGNoIHRoZSBzcGVjaWZpZWQga2V5LXZhbHVlIHBhaXIuIEluIHRoaXMgY2FzZSwgaXQgd291bGQgb3V0cHV0OlxuanNvblxuW1xuICAgIHtcImlkXCI6IFwiMlwiLCBcIm5hbWVcIjogXCJCb2JcIn1cbl0iLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICIvLyBTYW1wbGUgSlNPTiBhcnJheVxuSlNPTiBqc29uQXJyYXkgPSBbXG4gICAge1wiaWRcIjogXCIxXCIsIFwibmFtZVwiOiBcIkFsaWNlXCJ9LFxuICAgIHtcImlkXCI6IFwiMlwiLCBcIm5hbWVcIjogXCJCb2JcIn0sXG4gICAge1wiaWRcIjogXCIzXCIsIFwibmFtZVwiOiBcIkNoYXJsaWVcIn1cbl1cblxuLy8gS2V5IGFuZCB2YWx1ZSB0byBtYXRjaFxuU1RSSU5HIGtleSA9IFwibmFtZVwiXG5TVFJJTkcgdmFsdWUgPSBcIkJvYlwiXG5cbi8vIEZpbmQgZWxlbWVudHMgbWF0Y2hpbmcgdGhlIGtleS12YWx1ZSBwYWlyXG5KU09OIG1hdGNoaW5nRWxlbWVudHMgPSBKU09OLkVsZW1lbnRNYXRjaGluZyhqc29uQXJyYXksIGtleSwgdmFsdWUpXG5cbi8vIFRoZSBtYXRjaGluZyBlbGVtZW50cyB3b3VsZCBiZSBwcmludGVkIHRvIHRoZSBjb25zb2xlIGhlcmVcbi8vIG1hdGNoaW5nRWxlbWVudHNcblxuSW4gdGhpcyBleGFtcGxlOlxuLSBXZSBkZWZpbmUgYSBKU09OIGFycmF5IGBqc29uQXJyYXlgIGNvbnRhaW5pbmcgc2V2ZXJhbCBvYmplY3RzLlxuLSBXZSBzcGVjaWZ5IHRoZSBrZXkgYFwibmFtZVwiYCBhbmQgdGhlIHZhbHVlIGBcIkJvYlwiYCB0aGF0IHdlIHdhbnQgdG8gbWF0Y2guXG4tIFdlIHVzZSB0aGUgYEpTT04uRWxlbWVudE1hdGNoaW5nYCBmdW5jdGlvbiB0byBmaW5kIGVsZW1lbnRzIGluIHRoZSBganNvbkFycmF5YCB0aGF0IGhhdmUgdGhlIGtleSBgXCJuYW1lXCJgIHdpdGggdGhlIHZhbHVlIGBcIkJvYlwiYC5cbi0gRmluYWxseSwgd2Ugd291bGQgcHJpbnQgdGhlIG1hdGNoaW5nIGVsZW1lbnRzIHRvIHRoZSBjb25zb2xlLlxuXG5XaGVuIHRoaXMgY29kZSBydW5zLCBpdCB3b3VsZCBvdXRwdXQgdGhlIEpTT04gb2JqZWN0KHMpIHRoYXQgbWF0Y2ggdGhlIHNwZWNpZmllZCBrZXktdmFsdWUgcGFpci4gSW4gdGhpcyBjYXNlLCBpdCB3b3VsZCBvdXRwdXQ6XG5qc29uXG5bXG4gICAge1wiaWRcIjogXCIyXCIsIFwibmFtZVwiOiBcIkJvYlwifVxuXSJ9LCB7Im5hbWUiOiAiSlNPTi5FbXB0eSAoSlNPTikiLCAicmV0dXJuX3R5cGUiOiAiQk9PTEVBTiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zYFRSVUVgaWYgdGhlIEpTT04gaXMgYW4gZW1wdHkgb2JqZWN0LCBhcnJheSwgb3IgbnVsbC4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiSlNPTjogdGhlIG9iamVjdCBvciBhcnJheSB0byBiZSBjaGVja2VkIGZvciBlbXB0aW5lc3MuIiwgImRlc2NyaXB0aW9uIjogIlJldHVybnMgVFJVRSBpZiBKU09OIGlzIGFuIGVtcHR5IG9iamVjdC9hcnJheSBvciBudWxsIHZhbHVlLiIsICJleGFtcGxlX2NvZGUiOiAiLy8gQXNzdW1lIGpzb25PYmplY3QgaXMgaW5pdGlhbGl6ZWQgd2l0aCBzb21lIEpTT04gZGF0YVxuSlNPTiBqc29uT2JqZWN0ID0gLi4uIFxuXG4vLyBDaGVjayBpZiB0aGUgSlNPTiBvYmplY3QgaXMgZW1wdHlcbklGIEpTT04uRW1wdHkoanNvbk9iamVjdCkgVEhFTiB7XG4gICAgLy8gVGhlIEpTT04gb2JqZWN0IGlzIGVtcHR5LlxufSBFTFNFIHtcbiAgICAvLyBUaGUgSlNPTiBvYmplY3QgaXMgbm90IGVtcHR5LlxufSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIi8vIEFzc3VtZSBqc29uT2JqZWN0IGlzIGluaXRpYWxpemVkIHdpdGggc29tZSBKU09OIGRhdGFcbkpTT04ganNvbk9iamVjdCA9IC4uLiBcblxuLy8gQ2hlY2sgaWYgdGhlIEpTT04gb2JqZWN0IGlzIGVtcHR5XG5JRiBKU09OLkVtcHR5KGpzb25PYmplY3QpIFRIRU4ge1xuICAgIC8vIFRoZSBKU09OIG9iamVjdCBpcyBlbXB0eS5cbn0gRUxTRSB7XG4gICAgLy8gVGhlIEpTT04gb2JqZWN0IGlzIG5vdCBlbXB0eS5cbn0ifSwgeyJuYW1lIjogIkpTT04uRXF1YWxzIChKU09OLCBKU09OKSIsICJyZXR1cm5fdHlwZSI6ICJCT09MRUFOIiwgInJldHVybl9kZXNjIjogIlJldHVybnNgVFJVRWBpZiB0aGUgdHdvIEpTT04gdmFsdWVzIGFyZSBpZGVudGljYWwgaW4gY29udGVudCwgb3RoZXJ3aXNlYEZBTFNFYCIsICJwYXJhbWV0ZXJfZGVzYyI6ICJUaGUgcGFyYW1ldGVycyBhcmUgdHdvIEpTT04gb2JqZWN0cyB0byBiZSBjb21wYXJlZCBmb3IgY29udGVudCBlcXVhbGl0eS4iLCAiZGVzY3JpcHRpb24iOiAiQ29tcGFyZXMgdGhlIGNvbnRlbnQgb2YgdHdvIEpTT04gdmFsdWVzLiIsICJleGFtcGxlX2NvZGUiOiAiSlNPTiBqc29uMSA9IHtcIm5hbWVcIjogXCJKb2huXCIsIFwiYWdlXCI6IDMwLCBcImNpdHlcIjogXCJOZXcgWW9ya1wifVxuSlNPTiBqc29uMiA9IHtcIm5hbWVcIjogXCJKb2huXCIsIFwiYWdlXCI6IDMwLCBcImNpdHlcIjogXCJOZXcgWW9ya1wifVxuSlNPTiBqc29uMyA9IHtcIm5hbWVcIjogXCJKYW5lXCIsIFwiYWdlXCI6IDI1LCBcImNpdHlcIjogXCJMb3MgQW5nZWxlc1wifVxuXG5JRiBKU09OLkVxdWFscyhqc29uMSwganNvbjIpIFRIRU4ge1xuICAgIC8vIGpzb24xIGFuZCBqc29uMiBhcmUgaWRlbnRpY2FsLlxufSBFTFNFIHtcbiAgICAvLyBqc29uMSBhbmQganNvbjIgYXJlIG5vdCBpZGVudGljYWwuXG59XG5cbklGIEpTT04uRXF1YWxzKGpzb24xLCBqc29uMykgVEhFTiB7XG4gICAgLy8ganNvbjEgYW5kIGpzb24zIGFyZSBpZGVudGljYWwuXG59IEVMU0Uge1xuICAgIC8vIGpzb24xIGFuZCBqc29uMyBhcmUgbm90IGlkZW50aWNhbC5cbn0iLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICJKU09OIGpzb24xID0ge1wibmFtZVwiOiBcIkpvaG5cIiwgXCJhZ2VcIjogMzAsIFwiY2l0eVwiOiBcIk5ldyBZb3JrXCJ9XG5KU09OIGpzb24yID0ge1wibmFtZVwiOiBcIkpvaG5cIiwgXCJhZ2VcIjogMzAsIFwiY2l0eVwiOiBcIk5ldyBZb3JrXCJ9XG5KU09OIGpzb24zID0ge1wibmFtZVwiOiBcIkphbmVcIiwgXCJhZ2VcIjogMjUsIFwiY2l0eVwiOiBcIkxvcyBBbmdlbGVzXCJ9XG5cbklGIEpTT04uRXF1YWxzKGpzb24xLCBqc29uMikgVEhFTiB7XG4gICAgLy8ganNvbjEgYW5kIGpzb24yIGFyZSBpZGVudGljYWwuXG59IEVMU0Uge1xuICAgIC8vIGpzb24xIGFuZCBqc29uMiBhcmUgbm90IGlkZW50aWNhbC5cbn1cblxuSUYgSlNPTi5FcXVhbHMoanNvbjEsIGpzb24zKSBUSEVOIHtcbiAgICAvLyBqc29uMSBhbmQganNvbjMgYXJlIGlkZW50aWNhbC5cbn0gRUxTRSB7XG4gICAgLy8ganNvbjEgYW5kIGpzb24zIGFyZSBub3QgaWRlbnRpY2FsLlxufSJ9LCB7Im5hbWUiOiAiSlNPTi5Gcm9tQm9vbCAoQk9PTEVBTikiLCAicmV0dXJuX3R5cGUiOiAiSlNPTiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIEpTT04gb2JqZWN0IGZyb21gQk9PTEVBTmB2YWx1ZS4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiQk9PTEVBTjogdGhlIEJPT0xFQU4gdmFsdWUgdG8gY29udmVydCIsICJkZXNjcmlwdGlvbiI6ICJSZXR1cm5zIEpTT04gb2JqZWN0IGZyb20gQk9PTEVBTiB2YWx1ZS4iLCAiZXhhbXBsZV9jb2RlIjogIkJPT0xFQU4gaXNBY3RpdmUgPSBUUlVFXG5KU09OIGpzb25PYmplY3QgPSBKU09OLkZyb21Cb29sKGlzQWN0aXZlKVxuLy8gSlNPTiBPYmplY3Q6IFwiICsganNvbk9iamVjdCIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIkJPT0xFQU4gaXNBY3RpdmUgPSBUUlVFXG5KU09OIGpzb25PYmplY3QgPSBKU09OLkZyb21Cb29sKGlzQWN0aXZlKVxuLy8gSlNPTiBPYmplY3Q6IFwiICsganNvbk9iamVjdCJ9LCB7Im5hbWUiOiAiSlNPTi5Gcm9tTnVtYmVyIChOVU1CRVIpIiwgInJldHVybl90eXBlIjogIkpTT04iLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyBKU09OIG9iamVjdCBmcm9tIGBOVU1CRVJgIHZhbHVlLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJOVU1CRVI6IHRoZSBOVU1CRVIgdmFsdWUgdG8gY29udmVydCIsICJkZXNjcmlwdGlvbiI6ICJSZXR1cm5zIEpTT04gb2JqZWN0IGZyb20gYE5VTUJFUmAgdmFsdWUuIiwgImV4YW1wbGVfY29kZSI6ICJOVU1CRVIgbXlOdW1iZXIgPSA0MlxuSlNPTiBteUpzb24gPSBKU09OLkZyb21OdW1iZXIobXlOdW1iZXIpXG4vLyBDb252ZXJ0ZWQgSlNPTjogXCIgKyBteUpzb24iLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICJOVU1CRVIgbXlOdW1iZXIgPSA0MlxuSlNPTiBteUpzb24gPSBKU09OLkZyb21OdW1iZXIobXlOdW1iZXIpXG4vLyBDb252ZXJ0ZWQgSlNPTjogXCIgKyBteUpzb24ifSwgeyJuYW1lIjogIkpTT04uRnJvbU51bWJlclZlY3RvciAoVkVDVE9SPE5VTUJFUj4pIiwgInJldHVybl90eXBlIjogIkpTT04iLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyBKU09OIGFycmF5IG9iamVjdCBmcm9tIGBOVU1CRVJgIGBWRUNUT1JgIiwgInBhcmFtZXRlcl9kZXNjIjogIlZFQ1RPUjxOVU1CRVI+OiB0aGUgTlVNQkVSIGxpc3QgdG8gY29udmVydC4iLCAiZGVzY3JpcHRpb24iOiAiUmV0dXJucyBKU09OIGFycmF5IG9iamVjdCBmcm9tIGBOVU1CRVJgIFZFQ1RPUi4iLCAiZXhhbXBsZV9jb2RlIjogIi8vIEluaXRpYWxpemUgYSBWRUNUT1I8TlVNQkVSPiB3aXRoIHNvbWUgdmFsdWVzXG5WRUNUT1I8TlVNQkVSPiBudW1iZXJWZWN0b3IgPSAxLCAyLCAzLjUsIDQuNzVcblxuLy8gQ29udmVydCB0aGUgVkVDVE9SPE5VTUJFUj4gdG8gYSBKU09OIG9iamVjdFxuSlNPTiBqc29uT2JqZWN0ID0gSlNPTi5Gcm9tTnVtYmVyVmVjdG9yKG51bWJlclZlY3RvcilcblxuLy8gUHJpbnQgdGhlIEpTT04gb2JqZWN0IHRvIHRoZSBjb25zb2xlIHdhcyBoZXJlXG4vLyBqc29uT2JqZWN0IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiLy8gSW5pdGlhbGl6ZSBhIFZFQ1RPUjxOVU1CRVI+IHdpdGggc29tZSB2YWx1ZXNcblZFQ1RPUjxOVU1CRVI+IG51bWJlclZlY3RvciA9IDEsIDIsIDMuNSwgNC43NVxuXG4vLyBDb252ZXJ0IHRoZSBWRUNUT1I8TlVNQkVSPiB0byBhIEpTT04gb2JqZWN0XG5KU09OIGpzb25PYmplY3QgPSBKU09OLkZyb21OdW1iZXJWZWN0b3IobnVtYmVyVmVjdG9yKVxuXG4vLyBQcmludCB0aGUgSlNPTiBvYmplY3QgdG8gdGhlIGNvbnNvbGUgd2FzIGhlcmVcbi8vIGpzb25PYmplY3QifSwgeyJuYW1lIjogIkpTT04uRnJvbVNUUklORyAoU1RSSU5HKSIsICJyZXR1cm5fdHlwZSI6ICJKU09OIiwgInJldHVybl9kZXNjIjogIlJldHVybnMgYSBKU09OIG9iamVjdCBwYXJzZWQgZnJvbSB0aGUgaW5wdXQgc3RyaW5nLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJTVFJJTkc6IGlucHV0IHRleHQgdG8gYmUgY29udmVydGVkIHRvIGEgSlNPTiBvYmplY3QuIiwgImRlc2NyaXB0aW9uIjogIkNvbnZlcnRzIGEgc3RyaW5nIHRvIGEgSlNPTiBvYmplY3QuIiwgImV4YW1wbGVfY29kZSI6ICIvLyBEZWZpbmUgYSBKU09OLWZvcm1hdHRlZCBzdHJpbmdcblNUUklORyBqc29uU3RyaW5nID0gJ3tcIm5hbWVcIjogXCJKb2huIERvZVwiLCBcImFnZVwiOiAzMCwgXCJpc0VtcGxveWVlXCI6IHRydWV9J1xuXG4vLyBDb252ZXJ0IHRoZSBKU09OLWZvcm1hdHRlZCBzdHJpbmcgdG8gYSBKU09OIG9iamVjdFxuSlNPTiBqc29uT2JqZWN0ID0gSlNPTi5Gcm9tU3RyaW5nKGpzb25TdHJpbmcpXG5cbi8vIFVzZSB0aGUgSlNPTiBvYmplY3QgKGZvciBleGFtcGxlLCBzZXQgYSB1c2VyLWRlZmluZWQgdmFyaWFibGUpXG5NV0cuU2V0VXNlckRlZmluZWRWYXIoXCJ1c2VySW5mb1wiLCBqc29uT2JqZWN0KVxuXG4vLyBQcmludCB0aGUgSlNPTiBvYmplY3QgdG8gdGhlIGNvbnNvbGUgZm9yIGRlYnVnZ2luZ1xuLy8ganNvbk9iamVjdCIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIi8vIERlZmluZSBhIEpTT04tZm9ybWF0dGVkIHN0cmluZ1xuU1RSSU5HIGpzb25TdHJpbmcgPSAne1wibmFtZVwiOiBcIkpvaG4gRG9lXCIsIFwiYWdlXCI6IDMwLCBcImlzRW1wbG95ZWVcIjogdHJ1ZX0nXG5cbi8vIENvbnZlcnQgdGhlIEpTT04tZm9ybWF0dGVkIHN0cmluZyB0byBhIEpTT04gb2JqZWN0XG5KU09OIGpzb25PYmplY3QgPSBKU09OLkZyb21TdHJpbmcoanNvblN0cmluZylcblxuLy8gVXNlIHRoZSBKU09OIG9iamVjdCAoZm9yIGV4YW1wbGUsIHNldCBhIHVzZXItZGVmaW5lZCB2YXJpYWJsZSlcbk1XRy5TZXRVc2VyRGVmaW5lZFZhcihcInVzZXJJbmZvXCIsIGpzb25PYmplY3QpXG5cbi8vIFByaW50IHRoZSBKU09OIG9iamVjdCB0byB0aGUgY29uc29sZSBmb3IgZGVidWdnaW5nXG4vLyBqc29uT2JqZWN0In0sIHsibmFtZSI6ICJKU09OLkZyb21TVFJJTkdJZ25vcmVFcnJvcnMgKFNUUklORykiLCAicmV0dXJuX3R5cGUiOiAiSlNPTiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIGEgSlNPTiBvYmplY3QgcGFyc2VkIGZyb20gdGhlIGlucHV0IHN0cmluZywgd2l0aCBlcnJvcnMgaW4gZm9ybWF0dGluZyBpZ25vcmVkLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJTVFJJTkc6IGlucHV0IHRleHQgdG8gYmUgY29udmVydGVkIHRvIGEgSlNPTiBvYmplY3QuIiwgImRlc2NyaXB0aW9uIjogIkNvbnZlcnRzIGEgc3RyaW5nIHRvIGEgSlNPTiBvYmplY3Qgd2hpbGUgaWdub3JpbmcgYmFkIGZvcm1hdC4iLCAiZXhhbXBsZV9jb2RlIjogIlNUUklORyBqc29uU3RyaW5nID0gXCJ7IFxcXCJuYW1lXFxcIjogXFxcIkpvaG4gRG9lXFxcIiwgXFxcImFnZVxcXCI6IDMwIH1cIlxuSlNPTiBqc29uT2JqZWN0ID0gSlNPTi5Gcm9tU3RyaW5nSWdub3JlRXJyb3JzKGpzb25TdHJpbmcpXG5cbi8vIENvbnZlcnRlZCBKU09OIE9iamVjdDogXCIgKyBqc29uT2JqZWN0IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiU1RSSU5HIGpzb25TdHJpbmcgPSBcInsgXCJuYW1lXCI6IFwiSm9obiBEb2VcIiwgXCJhZ2VcIjogMzAgfVwiXG5KU09OIGpzb25PYmplY3QgPSBKU09OLkZyb21TdHJpbmdJZ25vcmVFcnJvcnMoanNvblN0cmluZylcblxuLy8gQ29udmVydGVkIEpTT04gT2JqZWN0OiBcIiArIGpzb25PYmplY3QifSwgeyJuYW1lIjogIkpTT04uRnJvbVNUUklOR1ZlY3RvciAoVkVDVE9SPFNUUklORz4pIiwgInJldHVybl90eXBlIjogIkpTT04iLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyBKU09OIGFycmF5IG9iamVjdCBmcm9tIHN0cmluZyB2ZWN0b3IuIiwgInBhcmFtZXRlcl9kZXNjIjogIlZFQ1RPUjxTVFJJTkc+OiB0aGUgU1RSSU5HIGxpc3QgdG8gYmUgY29udmVydGVkIiwgImRlc2NyaXB0aW9uIjogIlJldHVybnMgSlNPTiBhcnJheSBvYmplY3QgZnJvbSBzdHJpbmcgdmVjdG9yLiIsICJleGFtcGxlX2NvZGUiOiAiLy8gSW5pdGlhbGl6ZSBhIFZFQ1RPUjxTVFJJTkc+XG5WRUNUT1I8U1RSSU5HPiBzdHJpbmdWZWN0b3IgPSBcImFwcGxlXCIsIFwiYmFuYW5hXCIsIFwiY2hlcnJ5XCJcblxuLy8gQ29udmVydCB0aGUgVkVDVE9SPFNUUklORz4gdG8gYSBKU09OIG9iamVjdFxuSlNPTiBqc29uT2JqZWN0ID0gSlNPTi5Gcm9tU3RyaW5nVmVjdG9yKHN0cmluZ1ZlY3RvcilcblxuLy8gVGhlIGZvbGxvd2luZyBsaW5lIHdvdWxkIHByaW50IHRoZSBKU09OIG9iamVjdCB0byB0aGUgY29uc29sZSBmb3IgZGVidWdnaW5nXG4vLyBqc29uT2JqZWN0IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiLy8gSW5pdGlhbGl6ZSBhIFZFQ1RPUjxTVFJJTkc+XG5WRUNUT1I8U1RSSU5HPiBzdHJpbmdWZWN0b3IgPSBcImFwcGxlXCIsIFwiYmFuYW5hXCIsIFwiY2hlcnJ5XCJcblxuLy8gQ29udmVydCB0aGUgVkVDVE9SPFNUUklORz4gdG8gYSBKU09OIG9iamVjdFxuSlNPTiBqc29uT2JqZWN0ID0gSlNPTi5Gcm9tU3RyaW5nVmVjdG9yKHN0cmluZ1ZlY3RvcilcblxuLy8gVGhlIGZvbGxvd2luZyBsaW5lIHdvdWxkIHByaW50IHRoZSBKU09OIG9iamVjdCB0byB0aGUgY29uc29sZSBmb3IgZGVidWdnaW5nXG4vLyBqc29uT2JqZWN0In0sIHsibmFtZSI6ICJKU09OLkdldCAoSlNPTiwgU1RSSU5HKSIsICJyZXR1cm5fdHlwZSI6ICJKU09OIiwgInJldHVybl9kZXNjIjogIlJldHVybnMgdGhlIEpTT04gdmFsdWUgYXNzb2NpYXRlZCB3aXRoIHRoZSBzcGVjaWZpZWQga2V5IGluIHRoZSBnaXZlbiBKU09OIG9iamVjdC4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiSlNPTjogdGhlIGlucHV0IEpTT04gb2JqZWN0IHRvIHJldHJpZXZlIGZyb207IFNUUklORzogdGhlIGtleSB3aG9zZSB2YWx1ZSBpcyB0byBiZSByZXRyaWV2ZWQuIiwgImRlc2NyaXB0aW9uIjogIlJldHVybnMgSlNPTiB2YWx1ZSBhdCB0aGUgZ2l2ZW4ga2V5IG9mIGEgSlNPTiBmaWVsZC4iLCAiZXhhbXBsZV9jb2RlIjogIi8vIFNhbXBsZSBKU09OIG9iamVjdFxuSlNPTiBzYW1wbGVKc29uID0ge1xuICAgIFwibmFtZVwiOiBcIkpvaG4gRG9lXCIsXG4gICAgXCJhZ2VcIjogMzAsXG4gICAgXCJlbWFpbFwiOiBcImpvaG4uZG9lQGV4YW1wbGUuY29tXCJcbn1cblxuLy8gUmV0cmlldmUgdGhlIHZhbHVlIGFzc29jaWF0ZWQgd2l0aCB0aGUga2V5IFwiZW1haWxcIlxuU1RSSU5HIGVtYWlsID0gSlNPTi5HZXQoc2FtcGxlSnNvbiwgXCJlbWFpbFwiKVxuXG4vLyBSZXRyaWV2ZWQgZW1haWw6IFwiam9obi5kb2VAZXhhbXBsZS5jb21cIlxuLy8gREVCVUcoXCJSZXRyaWV2ZWQgZW1haWw6IFwiICsgZW1haWwpIiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiLy8gU2FtcGxlIEpTT04gb2JqZWN0XG5KU09OIHNhbXBsZUpzb24gPSB7XG4gICAgXCJuYW1lXCI6IFwiSm9obiBEb2VcIixcbiAgICBcImFnZVwiOiAzMCxcbiAgICBcImVtYWlsXCI6IFwiam9obi5kb2VAZXhhbXBsZS5jb21cIlxufVxuXG4vLyBSZXRyaWV2ZSB0aGUgdmFsdWUgYXNzb2NpYXRlZCB3aXRoIHRoZSBrZXkgXCJlbWFpbFwiXG5TVFJJTkcgZW1haWwgPSBKU09OLkdldChzYW1wbGVKc29uLCBcImVtYWlsXCIpXG5cbi8vIFJldHJpZXZlZCBlbWFpbDogXCJqb2huLmRvZUBleGFtcGxlLmNvbVwiXG4vLyBERUJVRyhcIlJldHJpZXZlZCBlbWFpbDogXCIgKyBlbWFpbCkifSwgeyJuYW1lIjogIkpTT04uR2V0QXNCb29sIChKU09OLCBTVFJJTkcpIiwgInJldHVybl90eXBlIjogIkJPT0xFQU4iLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyB0aGUgc3BlY2lmaWVkIEpTT04gZWxlbWVudCBhcyBhYEJPT0xFQU5gdmFsdWUuIiwgInBhcmFtZXRlcl9kZXNjIjogIkpTT046IHRoZSBKU09OIG9iamVjdCB0byByZXRyaWV2ZSB0aGUgdmFsdWUgZnJvbTsgU1RSSU5HOiB0aGUga2V5IG9mIHRoZSBlbGVtZW50IHRvIGJlIHJldHJpZXZlZC4iLCAiZGVzY3JpcHRpb24iOiAiR2V0cyBlbGVtZW50IGFuZCByZXR1cm5zIGl0IGFzIEJPT0xFQU4uIiwgImV4YW1wbGVfY29kZSI6ICIvLyBBc3N1bWUgd2UgaGF2ZSBhIEpTT04gb2JqZWN0XG5KU09OIGpzb25PYmplY3QgPSBKU09OLlBhcnNlKCd7XCJpc0FjdGl2ZVwiOiB0cnVlLCBcImlzVmVyaWZpZWRcIjogZmFsc2V9JylcblxuLy8gUmV0cmlldmUgdGhlIGJvb2xlYW4gdmFsdWUgZm9yIHRoZSBrZXkgXCJpc0FjdGl2ZVwiXG5CT09MRUFOIGlzQWN0aXZlID0gSlNPTi5HZXRBc0Jvb2woanNvbk9iamVjdCwgXCJpc0FjdGl2ZVwiKVxuLy8gXCJpc0FjdGl2ZTogXCIgKyBpc0FjdGl2ZVxuXG4vLyBSZXRyaWV2ZSB0aGUgYm9vbGVhbiB2YWx1ZSBmb3IgdGhlIGtleSBcImlzVmVyaWZpZWRcIlxuQk9PTEVBTiBpc1ZlcmlmaWVkID0gSlNPTi5HZXRBc0Jvb2woanNvbk9iamVjdCwgXCJpc1ZlcmlmaWVkXCIpXG4vLyBcImlzVmVyaWZpZWQ6IFwiICsgaXNWZXJpZmllZFxuXG4vLyBDb25kaXRpb25hbCBsb2dpYyBiYXNlZCBvbiB0aGUgYm9vbGVhbiB2YWx1ZXNcbklGIGlzQWN0aXZlIFRIRU4ge1xuICAgIC8vIFwiVGhlIHVzZXIgaXMgYWN0aXZlLlwiXG59IEVMU0Uge1xuICAgIC8vIFwiVGhlIHVzZXIgaXMgbm90IGFjdGl2ZS5cIlxufVxuXG5JRiBpc1ZlcmlmaWVkIFRIRU4ge1xuICAgIC8vIFwiVGhlIHVzZXIgaXMgdmVyaWZpZWQuXCJcbn0gRUxTRSB7XG4gICAgLy8gXCJUaGUgdXNlciBpcyBub3QgdmVyaWZpZWQuXCJcbn0iLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICIvLyBBc3N1bWUgd2UgaGF2ZSBhIEpTT04gb2JqZWN0XG5KU09OIGpzb25PYmplY3QgPSBKU09OLlBhcnNlKCd7XCJpc0FjdGl2ZVwiOiB0cnVlLCBcImlzVmVyaWZpZWRcIjogZmFsc2V9JylcblxuLy8gUmV0cmlldmUgdGhlIGJvb2xlYW4gdmFsdWUgZm9yIHRoZSBrZXkgXCJpc0FjdGl2ZVwiXG5CT09MRUFOIGlzQWN0aXZlID0gSlNPTi5HZXRBc0Jvb2woanNvbk9iamVjdCwgXCJpc0FjdGl2ZVwiKVxuLy8gXCJpc0FjdGl2ZTogXCIgKyBpc0FjdGl2ZVxuXG4vLyBSZXRyaWV2ZSB0aGUgYm9vbGVhbiB2YWx1ZSBmb3IgdGhlIGtleSBcImlzVmVyaWZpZWRcIlxuQk9PTEVBTiBpc1ZlcmlmaWVkID0gSlNPTi5HZXRBc0Jvb2woanNvbk9iamVjdCwgXCJpc1ZlcmlmaWVkXCIpXG4vLyBcImlzVmVyaWZpZWQ6IFwiICsgaXNWZXJpZmllZFxuXG4vLyBDb25kaXRpb25hbCBsb2dpYyBiYXNlZCBvbiB0aGUgYm9vbGVhbiB2YWx1ZXNcbklGIGlzQWN0aXZlIFRIRU4ge1xuICAgIC8vIFwiVGhlIHVzZXIgaXMgYWN0aXZlLlwiXG59IEVMU0Uge1xuICAgIC8vIFwiVGhlIHVzZXIgaXMgbm90IGFjdGl2ZS5cIlxufVxuXG5JRiBpc1ZlcmlmaWVkIFRIRU4ge1xuICAgIC8vIFwiVGhlIHVzZXIgaXMgdmVyaWZpZWQuXCJcbn0gRUxTRSB7XG4gICAgLy8gXCJUaGUgdXNlciBpcyBub3QgdmVyaWZpZWQuXCJcbn0ifSwgeyJuYW1lIjogIkpTT04uR2V0QXNOdW1iZXIgKEpTT04sIFNUUklORykiLCAicmV0dXJuX3R5cGUiOiAiTlVNQkVSIiwgInJldHVybl9kZXNjIjogIlJldHVybnMgdGhlIHNwZWNpZmllZCBlbGVtZW50IGZyb20gdGhlIEpTT04gb2JqZWN0IGFzIGEgbnVtYmVyLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJKU09OOiB0aGUgSlNPTiBvYmplY3QgZnJvbSB3aGljaCB0byBleHRyYWN0IHRoZSBlbGVtZW50OyBTVFJJTkc6IHRoZSBrZXkgb2YgdGhlIGVsZW1lbnQgdG8gcmV0cmlldmUuIiwgImRlc2NyaXB0aW9uIjogIkdldHMgZWxlbWVudCBhbmQgcmV0dXJucyBpdCBhcyBudW1iZXIuIiwgImV4YW1wbGVfY29kZSI6ICIvLyBBc3N1bWUgd2UgaGF2ZSBhIEpTT04gb2JqZWN0XG5KU09OIGpzb25PYmplY3QgPSB7XG4gICAgXCJ0ZW1wZXJhdHVyZVwiOiAyMy41LFxuICAgIFwiaHVtaWRpdHlcIjogNjAsXG4gICAgXCJwcmVzc3VyZVwiOiAxMDEzXG59XG5cbi8vIEV4dHJhY3QgdGhlIHRlbXBlcmF0dXJlIGFzIGEgTlVNQkVSXG5OVU1CRVIgdGVtcGVyYXR1cmUgPSBKU09OLkdldEFzTnVtYmVyKGpzb25PYmplY3QsIFwidGVtcGVyYXR1cmVcIilcbi8vIFRlbXBlcmF0dXJlOiBcIiArIHRlbXBlcmF0dXJlXG5cbi8vIEV4dHJhY3QgdGhlIGh1bWlkaXR5IGFzIGEgTlVNQkVSXG5OVU1CRVIgaHVtaWRpdHkgPSBKU09OLkdldEFzTnVtYmVyKGpzb25PYmplY3QsIFwiaHVtaWRpdHlcIilcbi8vIEh1bWlkaXR5OiBcIiArIGh1bWlkaXR5XG5cbi8vIEV4dHJhY3QgdGhlIHByZXNzdXJlIGFzIGEgTlVNQkVSXG5OVU1CRVIgcHJlc3N1cmUgPSBKU09OLkdldEFzTnVtYmVyKGpzb25PYmplY3QsIFwicHJlc3N1cmVcIilcbi8vIFByZXNzdXJlOiBcIiArIHByZXNzdXJlIiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiLy8gQXNzdW1lIHdlIGhhdmUgYSBKU09OIG9iamVjdFxuSlNPTiBqc29uT2JqZWN0ID0ge1xuICAgIFwidGVtcGVyYXR1cmVcIjogMjMuNSxcbiAgICBcImh1bWlkaXR5XCI6IDYwLFxuICAgIFwicHJlc3N1cmVcIjogMTAxM1xufVxuXG4vLyBFeHRyYWN0IHRoZSB0ZW1wZXJhdHVyZSBhcyBhIE5VTUJFUlxuTlVNQkVSIHRlbXBlcmF0dXJlID0gSlNPTi5HZXRBc051bWJlcihqc29uT2JqZWN0LCBcInRlbXBlcmF0dXJlXCIpXG4vLyBUZW1wZXJhdHVyZTogXCIgKyB0ZW1wZXJhdHVyZVxuXG4vLyBFeHRyYWN0IHRoZSBodW1pZGl0eSBhcyBhIE5VTUJFUlxuTlVNQkVSIGh1bWlkaXR5ID0gSlNPTi5HZXRBc051bWJlcihqc29uT2JqZWN0LCBcImh1bWlkaXR5XCIpXG4vLyBIdW1pZGl0eTogXCIgKyBodW1pZGl0eVxuXG4vLyBFeHRyYWN0IHRoZSBwcmVzc3VyZSBhcyBhIE5VTUJFUlxuTlVNQkVSIHByZXNzdXJlID0gSlNPTi5HZXRBc051bWJlcihqc29uT2JqZWN0LCBcInByZXNzdXJlXCIpXG4vLyBQcmVzc3VyZTogXCIgKyBwcmVzc3VyZSJ9LCB7Im5hbWUiOiAiSlNPTi5HZXRBc1NUUklORyAoSlNPTiwgU1RSSU5HKSIsICJyZXR1cm5fdHlwZSI6ICJTVFJJTkciLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyB0aGUgSlNPTiBlbGVtZW50IGNvcnJlc3BvbmRpbmcgdG8gdGhlIHByb3ZpZGVkIGtleSBhcyBhIHN0cmluZy4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiSlNPTjogdGhlIEpTT04gb2JqZWN0IGZyb20gd2hpY2ggdG8gZXh0cmFjZSB0aGUgZWxlbWVudDsgU1RSSU5HOiB0aGUga2V5IG9mIHRoZSBlbGVtZW50IHRvIHJldHJpZXZlLiIsICJkZXNjcmlwdGlvbiI6ICJHZXRzIGVsZW1lbnQgYW5kIHJldHVybnMgaXQgYXMgc3RyaW5nLiIsICJleGFtcGxlX2NvZGUiOiAiLy8gQXNzdW1lIHdlIGhhdmUgYSBKU09OIG9iamVjdFxuSlNPTiBqc29uT2JqZWN0ID0ge1xuICAgIFwibmFtZVwiOiBcIkpvaG4gRG9lXCIsXG4gICAgXCJhZ2VcIjogMzAsXG4gICAgXCJlbWFpbFwiOiBcImpvaG4uZG9lQGV4YW1wbGUuY29tXCJcbn1cblxuLy8gRXh0cmFjdCB0aGUgXCJuYW1lXCIgZmllbGQgZnJvbSB0aGUgSlNPTiBvYmplY3RcblNUUklORyBuYW1lID0gSlNPTi5HZXRBc1N0cmluZyhqc29uT2JqZWN0LCBcIm5hbWVcIilcbi8vIE5hbWU6IEpvaG4gRG9lXG5cbi8vIEV4dHJhY3QgdGhlIFwiZW1haWxcIiBmaWVsZCBmcm9tIHRoZSBKU09OIG9iamVjdFxuU1RSSU5HIGVtYWlsID0gSlNPTi5HZXRBc1N0cmluZyhqc29uT2JqZWN0LCBcImVtYWlsXCIpXG4vLyBFbWFpbDogam9obi5kb2VAZXhhbXBsZS5jb20iLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICIvLyBBc3N1bWUgd2UgaGF2ZSBhIEpTT04gb2JqZWN0XG5KU09OIGpzb25PYmplY3QgPSB7XG4gICAgXCJuYW1lXCI6IFwiSm9obiBEb2VcIixcbiAgICBcImFnZVwiOiAzMCxcbiAgICBcImVtYWlsXCI6IFwiam9obi5kb2VAZXhhbXBsZS5jb21cIlxufVxuXG4vLyBFeHRyYWN0IHRoZSBcIm5hbWVcIiBmaWVsZCBmcm9tIHRoZSBKU09OIG9iamVjdFxuU1RSSU5HIG5hbWUgPSBKU09OLkdldEFzU3RyaW5nKGpzb25PYmplY3QsIFwibmFtZVwiKVxuLy8gTmFtZTogSm9obiBEb2VcblxuLy8gRXh0cmFjdCB0aGUgXCJlbWFpbFwiIGZpZWxkIGZyb20gdGhlIEpTT04gb2JqZWN0XG5TVFJJTkcgZW1haWwgPSBKU09OLkdldEFzU3RyaW5nKGpzb25PYmplY3QsIFwiZW1haWxcIilcbi8vIEVtYWlsOiBqb2huLmRvZUBleGFtcGxlLmNvbSJ9LCB7Im5hbWUiOiAiSlNPTi5HZXRBc1NUUklOR1ZlY3RvciAoSlNPTiwgU1RSSU5HKSIsICJyZXR1cm5fdHlwZSI6ICJWRUNUT1I8U1RSSU5HPiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIHRoZSBzcGVjaWZpZWQgSlNPTiBlbGVtZW50IGFzIGEgdmVjdG9yIG9mIHN0cmluZ3MuIiwgInBhcmFtZXRlcl9kZXNjIjogIkpTT046IHRoZSBvYmplY3QgdG8gcmV0cmlldmUgZnJvbTsgU1RSSU5HOiB0aGUga2V5IG9mIHRoZSBlbGVtZW50IHRvIHJldHJpZXZlLiIsICJkZXNjcmlwdGlvbiI6ICJHZXRzIGVsZW1lbnQgYW5kIHJldHVybnMgaXQgYXMgdmVjdG9yLiIsICJleGFtcGxlX2NvZGUiOiAiLy8gQXNzdW1lIHdlIGhhdmUgYSBKU09OIG9iamVjdFxuSlNPTiBqc29uT2JqZWN0ID0ge1xuICAgIFwia2V5MVwiOiBbXCJ2YWx1ZTFcIiwgXCJ2YWx1ZTJcIiwgXCJ2YWx1ZTNcIl0sXG4gICAgXCJrZXkyXCI6IFtcInZhbHVlNFwiLCBcInZhbHVlNVwiXVxufVxuXG4vLyBSZXRyaWV2ZSB0aGUgdmFsdWVzIGFzc29jaWF0ZWQgd2l0aCBcImtleTFcIiBhcyBhIFZFQ1RPUjxTVFJJTkc+XG5WRUNUT1I8U1RSSU5HPiB2YWx1ZXMgPSBKU09OLkdldEFzU3RyaW5nVmVjdG9yKGpzb25PYmplY3QsIFwia2V5MVwiKVxuXG4vLyBWYWx1ZXMgZm9yIGtleTE6IFwiICsgdmFsdWVzIiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiLy8gQXNzdW1lIHdlIGhhdmUgYSBKU09OIG9iamVjdFxuSlNPTiBqc29uT2JqZWN0ID0ge1xuICAgIFwia2V5MVwiOiBbXCJ2YWx1ZTFcIiwgXCJ2YWx1ZTJcIiwgXCJ2YWx1ZTNcIl0sXG4gICAgXCJrZXkyXCI6IFtcInZhbHVlNFwiLCBcInZhbHVlNVwiXVxufVxuXG4vLyBSZXRyaWV2ZSB0aGUgdmFsdWVzIGFzc29jaWF0ZWQgd2l0aCBcImtleTFcIiBhcyBhIFZFQ1RPUjxTVFJJTkc+XG5WRUNUT1I8U1RSSU5HPiB2YWx1ZXMgPSBKU09OLkdldEFzU3RyaW5nVmVjdG9yKGpzb25PYmplY3QsIFwia2V5MVwiKVxuXG4vLyBWYWx1ZXMgZm9yIGtleTE6IFwiICsgdmFsdWVzIn0sIHsibmFtZSI6ICJKU09OLkhhc01lbWJlciAoSlNPTiwgU1RSSU5HKSIsICJyZXR1cm5fdHlwZSI6ICJCT09MRUFOIiwgInJldHVybl9kZXNjIjogIlJldHVybnNgVFJVRWBpZiB0aGUgc3BlY2lmaWVkIGBTVFJJTkdgIG1lbWJlciBleGlzdHMgaW4gdGhlIGdpdmVuIEpTT04gb2JqZWN0LCBvdGhlcndpc2VgRkFMU0VgIiwgInBhcmFtZXRlcl9kZXNjIjogIkpTT046IFRoZSBKU09OIG9iamVjdCB0byBjaGVjay5TVFJJTkc6IFRoZSBuYW1lIG9mIHRoZSBtZW1iZXIgdG8gbG9vayBmb3IuIiwgImRlc2NyaXB0aW9uIjogIlJldHVybnMgaWYgbWVtYmVyIGV4aXN0cy4iLCAiZXhhbXBsZV9jb2RlIjogIi8vIEV4YW1wbGUgSlNPTiBvYmplY3RcbkpTT04gZXhhbXBsZUpzb24gPSBKU09OLlBhcnNlKCd7XCJuYW1lXCI6IFwiSm9oblwiLCBcImFnZVwiOiAzMCwgXCJjaXR5XCI6IFwiTmV3IFlvcmtcIn0nKVxuXG4vLyBDaGVjayBpZiB0aGUgSlNPTiBvYmplY3QgaGFzIHRoZSBtZW1iZXIgXCJhZ2VcIlxuSUYgSlNPTi5IYXNNZW1iZXIoZXhhbXBsZUpzb24sIFwiYWdlXCIpIFRIRU4ge1xuICAgIC8vIFRoZSBKU09OIG9iamVjdCBoYXMgdGhlIG1lbWJlciAnYWdlJy5cbn0gRUxTRSB7XG4gICAgLy8gVGhlIEpTT04gb2JqZWN0IGRvZXMgbm90IGhhdmUgdGhlIG1lbWJlciAnYWdlJy5cbn0iLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICIvLyBFeGFtcGxlIEpTT04gb2JqZWN0XG5KU09OIGV4YW1wbGVKc29uID0gSlNPTi5QYXJzZSgne1wibmFtZVwiOiBcIkpvaG5cIiwgXCJhZ2VcIjogMzAsIFwiY2l0eVwiOiBcIk5ldyBZb3JrXCJ9JylcblxuLy8gQ2hlY2sgaWYgdGhlIEpTT04gb2JqZWN0IGhhcyB0aGUgbWVtYmVyIFwiYWdlXCJcbklGIEpTT04uSGFzTWVtYmVyKGV4YW1wbGVKc29uLCBcImFnZVwiKSBUSEVOIHtcbiAgICAvLyBUaGUgSlNPTiBvYmplY3QgaGFzIHRoZSBtZW1iZXIgJ2FnZScuXG59IEVMU0Uge1xuICAgIC8vIFRoZSBKU09OIG9iamVjdCBkb2VzIG5vdCBoYXZlIHRoZSBtZW1iZXIgJ2FnZScuXG59In0sIHsibmFtZSI6ICJKU09OLklzQXJyYXkgKEpTT04pIiwgInJldHVybl90eXBlIjogIkJPT0xFQU4iLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJuc2BUUlVFYGlmIHRoZSBwcm92aWRlZCBKU09OIHZhbHVlIGlzIGFuIGFycmF5LiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJKU09OOiB2YWx1ZSB0byBiZSBjaGVja2VkLiIsICJkZXNjcmlwdGlvbiI6ICJSZXR1cm5zIFRSVUUgaWYgSlNPTiB2YWx1ZSdzIG5hdGl2ZSB0eXBlIGlzIGFuIGFycmF5LiIsICJleGFtcGxlX2NvZGUiOiAiSlNPTiBqc29uRGF0YSA9ICd7XCJrZXkxXCI6IFwidmFsdWUxXCIsIFwia2V5MlwiOiBbXCJpdGVtMVwiLCBcIml0ZW0yXCIsIFwiaXRlbTNcIl19J1xuXG5JRiBKU09OLklzQXJyYXkoanNvbkRhdGEua2V5MikgVEhFTiB7XG4gICAgLy8gVGhlIHZhbHVlIGFzc29jaWF0ZWQgd2l0aCAna2V5MicgaXMgYW4gYXJyYXkuXG59IEVMU0Uge1xuICAgIC8vIFRoZSB2YWx1ZSBhc3NvY2lhdGVkIHdpdGggJ2tleTInIGlzIG5vdCBhbiBhcnJheS5cbn0iLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICJKU09OIGpzb25EYXRhID0gJ3tcImtleTFcIjogXCJ2YWx1ZTFcIiwgXCJrZXkyXCI6IFtcIml0ZW0xXCIsIFwiaXRlbTJcIiwgXCJpdGVtM1wiXX0nXG5cbklGIEpTT04uSXNBcnJheShqc29uRGF0YS5rZXkyKSBUSEVOIHtcbiAgICAvLyBUaGUgdmFsdWUgYXNzb2NpYXRlZCB3aXRoICdrZXkyJyBpcyBhbiBhcnJheS5cbn0gRUxTRSB7XG4gICAgLy8gVGhlIHZhbHVlIGFzc29jaWF0ZWQgd2l0aCAna2V5MicgaXMgbm90IGFuIGFycmF5LlxufSJ9LCB7Im5hbWUiOiAiSlNPTi5Jc0Jvb2wgKEpTT04pIiwgInJldHVybl90eXBlIjogIkJPT0xFQU4iLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJuc2BUUlVFYGlmIHRoZSBwcm92aWRlZCBKU09OIHZhbHVlIGlzIG9mYEJPT0xFQU5gdHlwZS4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiSlNPTjogdGhlIHZhbHVlIHRvIGJlIGNoZWNrZWQuIiwgImRlc2NyaXB0aW9uIjogIlJldHVybnMgVFJVRSBpZiBKU09OIHZhbHVlJ3MgbmF0aXZlIHR5cGUgaXMgQk9PTEVBTi4iLCAiZXhhbXBsZV9jb2RlIjogIkpTT04ganNvblZhbHVlID0gSlNPTi5QYXJzZSgne1wia2V5XCI6IHRydWV9JylcbkpTT04gYm9vbFZhbHVlID0ganNvblZhbHVlW1wia2V5XCJdXG5cbklGIEpTT04uSXNCb29sKGJvb2xWYWx1ZSkgVEhFTiB7XG4gICAgLy8gVGhlIHZhbHVlIGlzIGEgYm9vbGVhbi5cbn0gRUxTRSB7XG4gICAgLy8gVGhlIHZhbHVlIGlzIG5vdCBhIGJvb2xlYW4uXG59IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiSlNPTiBqc29uVmFsdWUgPSBKU09OLlBhcnNlKCd7XCJrZXlcIjogdHJ1ZX0nKVxuSlNPTiBib29sVmFsdWUgPSBqc29uVmFsdWVbXCJrZXlcIl1cblxuSUYgSlNPTi5Jc0Jvb2woYm9vbFZhbHVlKSBUSEVOIHtcbiAgICAvLyBUaGUgdmFsdWUgaXMgYSBib29sZWFuLlxufSBFTFNFIHtcbiAgICAvLyBUaGUgdmFsdWUgaXMgbm90IGEgYm9vbGVhbi5cbn0ifSwgeyJuYW1lIjogIkpTT04uSXNEb3VibGUgKEpTT04pIiwgInJldHVybl90eXBlIjogIkJPT0xFQU4iLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyB0cnVlIGlmIHRoZSBKU09OIHZhbHVlIGlzIGEgcmVhbCBudW1iZXIuIiwgInBhcmFtZXRlcl9kZXNjIjogIkpTT046IHRoZSB2YWx1ZSB0byBiZSBjaGVja2VkLiIsICJkZXNjcmlwdGlvbiI6ICJSZXR1cm5zIFRSVUUgaWYgSlNPTiB2YWx1ZSdzIG5hdGl2ZSB0eXBlIGlzIGEgcmVhbCBgTlVNQkVSYCB0eXBlLiIsICJleGFtcGxlX2NvZGUiOiAiLy8gRXhhbXBsZSBKU09OIG9iamVjdFxuSlNPTiBleGFtcGxlSnNvbiA9IEpTT04uUGFyc2UoJ3tcInZhbHVlXCI6IDQyLjB9JylcblxuLy8gRXh0cmFjdCB0aGUgdmFsdWUgZnJvbSB0aGUgSlNPTiBvYmplY3RcbkpTT04gdmFsdWUgPSBleGFtcGxlSnNvbltcInZhbHVlXCJdXG5cbi8vIENoZWNrIGlmIHRoZSB2YWx1ZSBpcyBhIGRvdWJsZVxuQk9PTEVBTiBpc0RvdWJsZSA9IEpTT04uSXNEb3VibGUodmFsdWUpXG5cbi8vIFByaW50IHRoZSByZXN1bHQgdG8gdGhlIGNvbnNvbGVcbklGIGlzRG91YmxlIFRIRU4ge1xuICAgIC8vIFRoZSB2YWx1ZSBpcyBhIGRvdWJsZS5cbn0gRUxTRSB7XG4gICAgLy8gVGhlIHZhbHVlIGlzIG5vdCBhIGRvdWJsZS5cbn0iLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICIvLyBFeGFtcGxlIEpTT04gb2JqZWN0XG5KU09OIGV4YW1wbGVKc29uID0gSlNPTi5QYXJzZSgne1widmFsdWVcIjogNDIuMH0nKVxuXG4vLyBFeHRyYWN0IHRoZSB2YWx1ZSBmcm9tIHRoZSBKU09OIG9iamVjdFxuSlNPTiB2YWx1ZSA9IGV4YW1wbGVKc29uW1widmFsdWVcIl1cblxuLy8gQ2hlY2sgaWYgdGhlIHZhbHVlIGlzIGEgZG91YmxlXG5CT09MRUFOIGlzRG91YmxlID0gSlNPTi5Jc0RvdWJsZSh2YWx1ZSlcblxuLy8gUHJpbnQgdGhlIHJlc3VsdCB0byB0aGUgY29uc29sZVxuSUYgaXNEb3VibGUgVEhFTiB7XG4gICAgLy8gVGhlIHZhbHVlIGlzIGEgZG91YmxlLlxufSBFTFNFIHtcbiAgICAvLyBUaGUgdmFsdWUgaXMgbm90IGEgZG91YmxlLlxufSJ9LCB7Im5hbWUiOiAiSlNPTi5Jc0ludDY0IChKU09OKSIsICJyZXR1cm5fdHlwZSI6ICJCT09MRUFOIiwgInJldHVybl9kZXNjIjogIlJldHVybnNgVFJVRWBpZiB0aGUgSlNPTiB2YWx1ZSBpcyBhbiBpbnRlZ2VyIGBOVU1CRVJgLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJKU09OOiB0aGUgdmFsdWUgdG8gYmUgY2hlY2tlZC4iLCAiZGVzY3JpcHRpb24iOiAiUmV0dXJucyBUUlVFIGlmIEpTT04gdmFsdWUncyBuYXRpdmUgdHlwZSBpcyBhbiBpbnRlZ2VyIGBOVU1CRVJgIHR5cGUuIiwgImV4YW1wbGVfY29kZSI6ICIvLyBFeGFtcGxlIEpTT04gb2JqZWN0XG5KU09OIGV4YW1wbGVKc29uID0gSlNPTi5QYXJzZSgne1widmFsdWVcIjogMTIzNDV9JylcblxuLy8gRXh0cmFjdCB0aGUgdmFsdWUgZnJvbSB0aGUgSlNPTiBvYmplY3RcbkpTT04gdmFsdWUgPSBleGFtcGxlSnNvbltcInZhbHVlXCJdXG5cbi8vIENoZWNrIGlmIHRoZSB2YWx1ZSBpcyBhbiBpbnRlZ2VyIE5VTUJFUlxuSUYgSlNPTi5Jc0ludDY0KHZhbHVlKSBUSEVOIHtcbiAgICAvLyBUaGUgdmFsdWUgaXMgYW4gaW50ZWdlciBOVU1CRVIuXG59IEVMU0Uge1xuICAgIC8vIFRoZSB2YWx1ZSBpcyBub3QgYW4gaW50ZWdlciBOVU1CRVIuXG59IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiLy8gRXhhbXBsZSBKU09OIG9iamVjdFxuSlNPTiBleGFtcGxlSnNvbiA9IEpTT04uUGFyc2UoJ3tcInZhbHVlXCI6IDEyMzQ1fScpXG5cbi8vIEV4dHJhY3QgdGhlIHZhbHVlIGZyb20gdGhlIEpTT04gb2JqZWN0XG5KU09OIHZhbHVlID0gZXhhbXBsZUpzb25bXCJ2YWx1ZVwiXVxuXG4vLyBDaGVjayBpZiB0aGUgdmFsdWUgaXMgYW4gaW50ZWdlciBOVU1CRVJcbklGIEpTT04uSXNJbnQ2NCh2YWx1ZSkgVEhFTiB7XG4gICAgLy8gVGhlIHZhbHVlIGlzIGFuIGludGVnZXIgTlVNQkVSLlxufSBFTFNFIHtcbiAgICAvLyBUaGUgdmFsdWUgaXMgbm90IGFuIGludGVnZXIgTlVNQkVSLlxufSJ9LCB7Im5hbWUiOiAiSlNPTi5Jc051bGwgKEpTT04pIiwgInJldHVybl90eXBlIjogIkJPT0xFQU4iLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJuc2BUUlVFYGlmIHRoZSBKU09OIHZhbHVlIGlzIG51bGwuIiwgInBhcmFtZXRlcl9kZXNjIjogIkpTT046IHRoZSB2YWx1ZSB0byBiZSBjaGVja2VkLiIsICJkZXNjcmlwdGlvbiI6ICJSZXR1cm5zIFRSVUUgaWYgSlNPTiB2YWx1ZSdzIG5hdGl2ZSB0eXBlIGlzIG51bGwgdHlwZS4iLCAiZXhhbXBsZV9jb2RlIjogIkpTT04ganNvbkRhdGEgPSBKU09OLlBhcnNlKCd7XCJrZXkxXCI6IFwidmFsdWUxXCIsIFwia2V5MlwiOiBudWxsfScpXG5cbklGIEpTT04uSXNOdWxsKGpzb25EYXRhW1wia2V5MlwiXSkgVEhFTiB7XG4gICAgLy8gVGhlIHZhbHVlIG9mIGtleTIgaXMgbnVsbC5cbn0gRUxTRSB7XG4gICAgLy8gVGhlIHZhbHVlIG9mIGtleTIgaXMgbm90IG51bGwuXG59IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiSlNPTiBqc29uRGF0YSA9IEpTT04uUGFyc2UoJ3tcImtleTFcIjogXCJ2YWx1ZTFcIiwgXCJrZXkyXCI6IG51bGx9JylcblxuSUYgSlNPTi5Jc051bGwoanNvbkRhdGFbXCJrZXkyXCJdKSBUSEVOIHtcbiAgICAvLyBUaGUgdmFsdWUgb2Yga2V5MiBpcyBudWxsLlxufSBFTFNFIHtcbiAgICAvLyBUaGUgdmFsdWUgb2Yga2V5MiBpcyBub3QgbnVsbC5cbn0ifSwgeyJuYW1lIjogIkpTT04uSXNOdW1iZXIgKEpTT04pIiwgInJldHVybl90eXBlIjogIkJPT0xFQU4iLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJuc2BUUlVFYGlmIHRoZSBKU09OIHZhbHVlIGlzIGEgYE5VTUJFUmAuIiwgInBhcmFtZXRlcl9kZXNjIjogIkpTT046IHRoZSB2YWx1ZSB0byBiZSBjaGVja2VkLiIsICJkZXNjcmlwdGlvbiI6ICJSZXR1cm5zIFRSVUUgaWYgSlNPTiB2YWx1ZSdzIG5hdGl2ZSB0eXBlIGlzIGFueSBgTlVNQkVSYCB0eXBlLiIsICJleGFtcGxlX2NvZGUiOiAiSlNPTiBqc29uVmFsdWUgPSBKU09OLlBhcnNlKFwie1xcXCJrZXlcXFwiOiAxMjN9XCIpXG5cbklGIEpTT04uSXNOdW1iZXIoanNvblZhbHVlW1wia2V5XCJdKSBUSEVOIHtcbiAgICAvLyBUaGUgdmFsdWUgaXMgYSBudW1iZXIuXG59IEVMU0Uge1xuICAgIC8vIFRoZSB2YWx1ZSBpcyBub3QgYSBudW1iZXIuXG59IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiSlNPTiBqc29uVmFsdWUgPSBKU09OLlBhcnNlKFwie1wia2V5XCI6IDEyM31cIilcblxuSUYgSlNPTi5Jc051bWJlcihqc29uVmFsdWVbXCJrZXlcIl0pIFRIRU4ge1xuICAgIC8vIFRoZSB2YWx1ZSBpcyBhIG51bWJlci5cbn0gRUxTRSB7XG4gICAgLy8gVGhlIHZhbHVlIGlzIG5vdCBhIG51bWJlci5cbn0ifSwgeyJuYW1lIjogIkpTT04uSXNPYmplY3QgKEpTT04pIiwgInJldHVybl90eXBlIjogIkJPT0xFQU4iLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJuc2BUUlVFYGlmIHRoZSBnaXZlbiBKU09OIHZhbHVlIGlzIGFuIG9iamVjdC4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiSlNPTjogdGhlIHZhbHVlIHRvIGJlIGNoZWNrZWQuIiwgImRlc2NyaXB0aW9uIjogIlJldHVybnMgVFJVRSBpZiBKU09OIHZhbHVlJ3MgbmF0aXZlIHR5cGUgaXMgYW4gb2JqZWN0L2ZpZWxkLiIsICJleGFtcGxlX2NvZGUiOiAiSlNPTiBqc29uRGF0YSA9ICd7XCJuYW1lXCI6IFwiSm9oblwiLCBcImFnZVwiOiAzMCwgXCJjaXR5XCI6IFwiTmV3IFlvcmtcIn0nXG5cbklGIEpTT04uSXNPYmplY3QoanNvbkRhdGEpIFRIRU4ge1xuICAgIC8vIFRoZSBKU09OIGRhdGEgaXMgYW4gb2JqZWN0LlxufSBFTFNFIHtcbiAgICAvLyBUaGUgSlNPTiBkYXRhIGlzIG5vdCBhbiBvYmplY3QuXG59IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiSlNPTiBqc29uRGF0YSA9ICd7XCJuYW1lXCI6IFwiSm9oblwiLCBcImFnZVwiOiAzMCwgXCJjaXR5XCI6IFwiTmV3IFlvcmtcIn0nXG5cbklGIEpTT04uSXNPYmplY3QoanNvbkRhdGEpIFRIRU4ge1xuICAgIC8vIFRoZSBKU09OIGRhdGEgaXMgYW4gb2JqZWN0LlxufSBFTFNFIHtcbiAgICAvLyBUaGUgSlNPTiBkYXRhIGlzIG5vdCBhbiBvYmplY3QuXG59In0sIHsibmFtZSI6ICJKU09OLklzU1RSSU5HIChKU09OKSIsICJyZXR1cm5fdHlwZSI6ICJCT09MRUFOIiwgInJldHVybl9kZXNjIjogIlJldHVybnNgVFJVRWBpZiB0aGUgcHJvdmlkZWQgSlNPTiB2YWx1ZSBpcyBhIGBTVFJJTkdgLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJKU09OOiBUaGUgSlNPTiB2YWx1ZSB0byBiZSBjaGVja2VkLiIsICJkZXNjcmlwdGlvbiI6ICJSZXR1cm5zIHRydWUgaWYgSlNPTiB2YWx1ZSdzIG5hdGl2ZSB0eXBlIGlzIGEgc3RyaW5nLiIsICJleGFtcGxlX2NvZGUiOiAiLy8gQXNzdW1lIHdlIGhhdmUgYSBKU09OIG9iamVjdFxuSlNPTiBqc29uT2JqZWN0ID0gSlNPTi5QYXJzZSgne1wia2V5XCI6IFwidmFsdWVcIn0nKVxuXG4vLyBDaGVjayBpZiB0aGUgdmFsdWUgYXNzb2NpYXRlZCB3aXRoIFwia2V5XCIgaXMgYSBzdHJpbmdcbklGIEpTT04uSXNTdHJpbmcoanNvbk9iamVjdFtcImtleVwiXSkgVEhFTiB7XG4gICAgLy8gVGhlIHZhbHVlIGlzIGEgc3RyaW5nLlxufSBFTFNFIHtcbiAgICAvLyBUaGUgdmFsdWUgaXMgbm90IGEgc3RyaW5nLlxufSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIi8vIEFzc3VtZSB3ZSBoYXZlIGEgSlNPTiBvYmplY3RcbkpTT04ganNvbk9iamVjdCA9IEpTT04uUGFyc2UoJ3tcImtleVwiOiBcInZhbHVlXCJ9JylcblxuLy8gQ2hlY2sgaWYgdGhlIHZhbHVlIGFzc29jaWF0ZWQgd2l0aCBcImtleVwiIGlzIGEgc3RyaW5nXG5JRiBKU09OLklzU3RyaW5nKGpzb25PYmplY3RbXCJrZXlcIl0pIFRIRU4ge1xuICAgIC8vIFRoZSB2YWx1ZSBpcyBhIHN0cmluZy5cbn0gRUxTRSB7XG4gICAgLy8gVGhlIHZhbHVlIGlzIG5vdCBhIHN0cmluZy5cbn0ifSwgeyJuYW1lIjogIkpTT04uSXNWYWxpZCAoU1RSSU5HKSIsICJyZXR1cm5fdHlwZSI6ICJCT09MRUFOIiwgInJldHVybl9kZXNjIjogIlJldHVybnNgVFJVRWBpZiB0aGUgaW5wdXQgYFNUUklOR2AgaXMgYSB2YWxpZCBKU09OLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJTVFJJTkc6IFRoZSBpbnB1dCBTVFJJTkcgdG8gYmUgdmFsaWRhdGVkIGFzIEpTT04uIiwgImRlc2NyaXB0aW9uIjogIlJldHVybnMgdHJ1ZSBpZiB0aGUgc3RyaW5nIGNhbiBiZSBjb252ZXJ0ZWQgaW50byBhIEpTT04uIiwgImV4YW1wbGVfY29kZSI6ICJTVFJJTkcganNvblN0cmluZyA9ICd7XCJuYW1lXCI6IFwiSm9oblwiLCBcImFnZVwiOiAzMCwgXCJjaXR5XCI6IFwiTmV3IFlvcmtcIn0nXG5cbklGIEpTT04uSXNWYWxpZChqc29uU3RyaW5nKSBUSEVOIHtcbiAgICAvLyBUaGUgSlNPTiBzdHJpbmcgaXMgdmFsaWQuXG59IEVMU0Uge1xuICAgIC8vIFRoZSBKU09OIHN0cmluZyBpcyBub3QgdmFsaWQuXG59IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiU1RSSU5HIGpzb25TdHJpbmcgPSAne1wibmFtZVwiOiBcIkpvaG5cIiwgXCJhZ2VcIjogMzAsIFwiY2l0eVwiOiBcIk5ldyBZb3JrXCJ9J1xuXG5JRiBKU09OLklzVmFsaWQoanNvblN0cmluZykgVEhFTiB7XG4gICAgLy8gVGhlIEpTT04gc3RyaW5nIGlzIHZhbGlkLlxufSBFTFNFIHtcbiAgICAvLyBUaGUgSlNPTiBzdHJpbmcgaXMgbm90IHZhbGlkLlxufSJ9LCB7Im5hbWUiOiAiSlNPTi5LZXlzIChKU09OKSIsICJyZXR1cm5fdHlwZSI6ICJWRUNUT1I8U1RSSU5HPiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIGEgdmVjdG9yIGNvbnRhaW5pbmcgYWxsIHRoZSBrZXlzIGZyb20gYSBKU09OIG9iamVjdC4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiSlNPTjogdGhlIGlucHV0IEpTT04gb2JqZWN0IGZyb20gd2hpY2ggdGhlIGtleXMgd2lsbCBiZSByZXRyaWV2ZWQuIiwgImRlc2NyaXB0aW9uIjogIlJldHVybnMgYWxsIGtleXMgb2YgYSBKU09OIGZpZWxkLiIsICJleGFtcGxlX2NvZGUiOiAiLy8gRGVmaW5lIGEgSlNPTiBvYmplY3RcbkpTT04ganNvbk9iamVjdCA9IHtcbiAgICBcIm5hbWVcIjogXCJKb2huIERvZVwiLFxuICAgIFwiYWdlXCI6IDMwLFxuICAgIFwiZW1haWxcIjogXCJqb2huLmRvZUBleGFtcGxlLmNvbVwiXG59XG5cbi8vIFJldHJpZXZlIHRoZSBrZXlzIG9mIHRoZSBKU09OIG9iamVjdFxuVkVDVE9SPFNUUklORz4ga2V5cyA9IEpTT04uS2V5cyhqc29uT2JqZWN0KVxuXG4vLyBQcmludCB0aGUga2V5cyB0byB0aGUgY29uc29sZVxuRk9SIFNUUklORyBrZXkgSU4ga2V5cyB7XG4gICAgLy8gS2V5OiBcIiArIGtleVxufSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIi8vIERlZmluZSBhIEpTT04gb2JqZWN0XG5KU09OIGpzb25PYmplY3QgPSB7XG4gICAgXCJuYW1lXCI6IFwiSm9obiBEb2VcIixcbiAgICBcImFnZVwiOiAzMCxcbiAgICBcImVtYWlsXCI6IFwiam9obi5kb2VAZXhhbXBsZS5jb21cIlxufVxuXG4vLyBSZXRyaWV2ZSB0aGUga2V5cyBvZiB0aGUgSlNPTiBvYmplY3RcblZFQ1RPUjxTVFJJTkc+IGtleXMgPSBKU09OLktleXMoanNvbk9iamVjdClcblxuLy8gUHJpbnQgdGhlIGtleXMgdG8gdGhlIGNvbnNvbGVcbkZPUiBTVFJJTkcga2V5IElOIGtleXMge1xuICAgIC8vIEtleTogXCIgKyBrZXlcbn0ifSwgeyJuYW1lIjogIkpTT04uUmVtb3ZlIChKU09OLCBTVFJJTkcpIiwgInJldHVybl90eXBlIjogIkpTT04iLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyBhIEpTT04gb2JqZWN0IHdpdGggdGhlIHNwZWNpZmllZCBrZXkgcmVtb3ZlZC4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiSlNPTjogdGhlIG9iamVjdCBmcm9tIHdoaWNoIGEga2V5IGlzIHRvIGJlIHJlbW92ZWQ7IFNUUklORzogdGhlIGtleSB0byBiZSByZW1vdmVkLiIsICJkZXNjcmlwdGlvbiI6ICJSZW1vdmVzIGEgc3BlY2lmaWMga2V5IGZyb20gYSBKU09OIGZpZWxkLiIsICJleGFtcGxlX2NvZGUiOiAiLy8gU2FtcGxlIEpTT04gb2JqZWN0XG5KU09OIHNhbXBsZUpzb24gPSB7XG4gICAgXCJuYW1lXCI6IFwiSm9obiBEb2VcIixcbiAgICBcImFnZVwiOiAzMCxcbiAgICBcImVtYWlsXCI6IFwiam9obi5kb2VAZXhhbXBsZS5jb21cIlxufVxuXG4vLyBLZXkgdG8gYmUgcmVtb3ZlZFxuU1RSSU5HIGtleVRvUmVtb3ZlID0gXCJlbWFpbFwiXG5cbi8vIFJlbW92ZSB0aGUga2V5IGZyb20gdGhlIEpTT04gb2JqZWN0XG5KU09OIHVwZGF0ZWRKc29uID0gSlNPTi5SZW1vdmUoc2FtcGxlSnNvbiwga2V5VG9SZW1vdmUpXG5cbi8vIFRoaXMgbGluZSB3YXMgb3JpZ2luYWxseSBhIERFQlVHIHN0YXRlbWVudC4gSXQgd2FzIHVzZWQgdG8gcHJpbnQgdGhlIHVwZGF0ZWQgSlNPTiBvYmplY3QgdG8gdGhlIGNvbnNvbGUuXG4vLyB1cGRhdGVkSnNvbiIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIi8vIFNhbXBsZSBKU09OIG9iamVjdFxuSlNPTiBzYW1wbGVKc29uID0ge1xuICAgIFwibmFtZVwiOiBcIkpvaG4gRG9lXCIsXG4gICAgXCJhZ2VcIjogMzAsXG4gICAgXCJlbWFpbFwiOiBcImpvaG4uZG9lQGV4YW1wbGUuY29tXCJcbn1cblxuLy8gS2V5IHRvIGJlIHJlbW92ZWRcblNUUklORyBrZXlUb1JlbW92ZSA9IFwiZW1haWxcIlxuXG4vLyBSZW1vdmUgdGhlIGtleSBmcm9tIHRoZSBKU09OIG9iamVjdFxuSlNPTiB1cGRhdGVkSnNvbiA9IEpTT04uUmVtb3ZlKHNhbXBsZUpzb24sIGtleVRvUmVtb3ZlKVxuXG4vLyBUaGlzIGxpbmUgd2FzIG9yaWdpbmFsbHkgYSBERUJVRyBzdGF0ZW1lbnQuIEl0IHdhcyB1c2VkIHRvIHByaW50IHRoZSB1cGRhdGVkIEpTT04gb2JqZWN0IHRvIHRoZSBjb25zb2xlLlxuLy8gdXBkYXRlZEpzb24ifSwgeyJuYW1lIjogIkpTT04uU2V0IChKU09OLCBTVFJJTkcsIEJPT0xFQU4pIiwgInJldHVybl90eXBlIjogIkpTT04iLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyB0aGUgdXBkYXRlZCBKU09OIG9iamVjdCBhZnRlciBhc3NpZ25pbmcgdGhlIGdpdmVuIEJvb2xlYW4gdmFsdWUgdG8gdGhlIHNwZWNpZmllZCBmaWVsZC4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiSlNPTjogdGhlIG9iamVjdCB0byBiZSBtb2RpZmllZDsgU1RSSU5HOiB0aGUgZmllbGQgbmFtZTsgQk9PTEVBTjogdGhlIHZhbHVlIHRvIGJlIGFzc2lnbmVkLiIsICJkZXNjcmlwdGlvbiI6ICJBc3NpZ25zIGEgQk9PTEVBTiB2YWx1ZSB0byBhIEpTT04gZmllbGQuIiwgImV4YW1wbGVfY29kZSI6ICIvLyBJbml0aWFsaXplIGEgSlNPTiBvYmplY3RcbkpTT04gbXlKc29uID0gSlNPTi5QYXJzZShcInt9XCIpXG5cbi8vIFNldCBhIEJPT0xFQU4gZmllbGQgaW4gdGhlIEpTT04gb2JqZWN0XG5teUpzb24gPSBKU09OLlNldChteUpzb24sIFwiaXNBY3RpdmVcIiwgVFJVRSlcblxuLy8gUHJpbnQgdGhlIHVwZGF0ZWQgSlNPTiBvYmplY3QgdG8gdGhlIGNvbnNvbGVcbi8vIEpTT04uU3RyaW5naWZ5KG15SnNvbikiLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICIvLyBJbml0aWFsaXplIGEgSlNPTiBvYmplY3RcbkpTT04gbXlKc29uID0gSlNPTi5QYXJzZShcInt9XCIpXG5cbi8vIFNldCBhIEJPT0xFQU4gZmllbGQgaW4gdGhlIEpTT04gb2JqZWN0XG5teUpzb24gPSBKU09OLlNldChteUpzb24sIFwiaXNBY3RpdmVcIiwgVFJVRSlcblxuLy8gUHJpbnQgdGhlIHVwZGF0ZWQgSlNPTiBvYmplY3QgdG8gdGhlIGNvbnNvbGVcbi8vIEpTT04uU3RyaW5naWZ5KG15SnNvbikifSwgeyJuYW1lIjogIkpTT04uU2V0IChKU09OLCBTVFJJTkcsIEpTT04pIiwgInJldHVybl90eXBlIjogIkpTT04iLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyB0aGUgdXBkYXRlZCBKU09OIG9iamVjdCB3aXRoIHRoZSBzcGVjaWZpZWQgc3ViLW9iamVjdCBhc3NpZ25lZCB0byB0aGUgZ2l2ZW4gZmllbGQuIiwgInBhcmFtZXRlcl9kZXNjIjogIkpTT046IHRoZSBvcmlnaW5hbCBKU09OIG9iamVjdDsgU1RSSU5HOiB0aGUga2V5IGluIHRoZSBKU09OIG9iamVjdDsgSlNPTiB0aGUgb2JqZWN0IHRvIGJlIGFzc2lnbmVkIHRvIHRoZSBzcGVjaWZpZWQgZmllbGQuIiwgImRlc2NyaXB0aW9uIjogIkFzc2lnbnMgYSBKU09OIHN1Yi1vYmplY3QgdG8gYSBKU09OIGZpZWxkLiIsICJleGFtcGxlX2NvZGUiOiAiLy8gQ3JlYXRlIGEgSlNPTiBvYmplY3RcbkpTT04gbXlKc29uID0gSlNPTi5QYXJzZSgne1wibmFtZVwiOiBcIkpvaG5cIiwgXCJhZ2VcIjogMzB9JylcblxuLy8gQ3JlYXRlIGEgTUFQIHRvIGhvbGQgdGhlIG5ldyB2YWx1ZVxuTUFQPFNUUklORywgTVdHLkludGVybmFsVmFyaWFudD4gbmV3VmFsdWVcbm5ld1ZhbHVlW1wiY2l0eVwiXSA9IE1XRy5JbnRlcm5hbFZhcmlhbnQoXCJOZXcgWW9ya1wiKVxuXG4vLyBTZXQgdGhlIG5ldyB2YWx1ZSBpbiB0aGUgSlNPTiBvYmplY3Rcbm15SnNvbiA9IEpTT04uU2V0KG15SnNvbiwgXCJhZGRyZXNzXCIsIG5ld1ZhbHVlKVxuXG4vLyBUaGlzIGxpbmUgd2FzIG9yaWdpbmFsbHkgYSBERUJVRygpIGZ1bmN0aW9uIHRvIHByaW50IHRoZSBtb2RpZmllZCBKU09OIG9iamVjdFxuLy8gSlNPTi5TdHJpbmdpZnkobXlKc29uKSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIi8vIENyZWF0ZSBhIEpTT04gb2JqZWN0XG5KU09OIG15SnNvbiA9IEpTT04uUGFyc2UoJ3tcIm5hbWVcIjogXCJKb2huXCIsIFwiYWdlXCI6IDMwfScpXG5cbi8vIENyZWF0ZSBhIE1BUCB0byBob2xkIHRoZSBuZXcgdmFsdWVcbk1BUDxTVFJJTkcsIE1XRy5JbnRlcm5hbFZhcmlhbnQ+IG5ld1ZhbHVlXG5uZXdWYWx1ZVtcImNpdHlcIl0gPSBNV0cuSW50ZXJuYWxWYXJpYW50KFwiTmV3IFlvcmtcIilcblxuLy8gU2V0IHRoZSBuZXcgdmFsdWUgaW4gdGhlIEpTT04gb2JqZWN0XG5teUpzb24gPSBKU09OLlNldChteUpzb24sIFwiYWRkcmVzc1wiLCBuZXdWYWx1ZSlcblxuLy8gVGhpcyBsaW5lIHdhcyBvcmlnaW5hbGx5IGEgREVCVUcoKSBmdW5jdGlvbiB0byBwcmludCB0aGUgbW9kaWZpZWQgSlNPTiBvYmplY3Rcbi8vIEpTT04uU3RyaW5naWZ5KG15SnNvbikifSwgeyJuYW1lIjogIkpTT04uU2V0IChKU09OLCBTVFJJTkcsIE1BUDxTVFJJTkcsIE1XRy5JbnRlcm5hbFZhcmlhbnQ+KSIsICJyZXR1cm5fdHlwZSI6ICJKU09OIiwgInJldHVybl9kZXNjIjogIlJldHVybnMgdGhlIG1vZGlmaWVkIEpTT04gb2JqZWN0LiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJKU09OOiBvYmplY3QgdG8gbW9kaWZ5OyBTVFJJTkc6IGtleSBvZiB2YWx1ZSB0byBzZXQ7IE1BUDxTVFJJTkcsIE1XRy5JbnRlcm5hbFZhcmlhbnQ+OiB2YWx1ZSB0byBzZXQuIiwgImRlc2NyaXB0aW9uIjogIlNldHMgSlNPTi4iLCAiZXhhbXBsZV9jb2RlIjogIi8vIEluaXRpYWxpemUgYSBKU09OIG9iamVjdFxuSlNPTiBteUpzb24gPSBKU09OLlBhcnNlKCd7XCJuYW1lXCI6IFwiSm9oblwiLCBcImFnZVwiOiAzMH0nKVxuXG4vLyBDcmVhdGUgYSBNQVAgdG8gaG9sZCB0aGUgbmV3IHZhbHVlXG5NQVA8U1RSSU5HLCBNV0cuSW50ZXJuYWxWYXJpYW50PiBuZXdWYWx1ZVxubmV3VmFsdWVbXCJjaXR5XCJdID0gTVdHLkludGVybmFsVmFyaWFudChcIk5ldyBZb3JrXCIpXG5cbi8vIFNldCB0aGUgbmV3IGtleS12YWx1ZSBwYWlyIGluIHRoZSBKU09OIG9iamVjdFxubXlKc29uID0gSlNPTi5TZXQobXlKc29uLCBcImNpdHlcIiwgbmV3VmFsdWUpXG5cbi8vIFRoaXMgbGluZSB3b3VsZCBwcmludCB0aGUgbW9kaWZpZWQgSlNPTiBvYmplY3QgdG8gdGhlIGNvbnNvbGVcbi8vIG15SnNvbi5Ub1N0cmluZygpIiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiLy8gSW5pdGlhbGl6ZSBhIEpTT04gb2JqZWN0XG5KU09OIG15SnNvbiA9IEpTT04uUGFyc2UoJ3tcIm5hbWVcIjogXCJKb2huXCIsIFwiYWdlXCI6IDMwfScpXG5cbi8vIENyZWF0ZSBhIE1BUCB0byBob2xkIHRoZSBuZXcgdmFsdWVcbk1BUDxTVFJJTkcsIE1XRy5JbnRlcm5hbFZhcmlhbnQ+IG5ld1ZhbHVlXG5uZXdWYWx1ZVtcImNpdHlcIl0gPSBNV0cuSW50ZXJuYWxWYXJpYW50KFwiTmV3IFlvcmtcIilcblxuLy8gU2V0IHRoZSBuZXcga2V5LXZhbHVlIHBhaXIgaW4gdGhlIEpTT04gb2JqZWN0XG5teUpzb24gPSBKU09OLlNldChteUpzb24sIFwiY2l0eVwiLCBuZXdWYWx1ZSlcblxuLy8gVGhpcyBsaW5lIHdvdWxkIHByaW50IHRoZSBtb2RpZmllZCBKU09OIG9iamVjdCB0byB0aGUgY29uc29sZVxuLy8gbXlKc29uLlRvU3RyaW5nKCkifSwgeyJuYW1lIjogIkpTT04uU2V0IChKU09OLCBTVFJJTkcsIE5VTUJFUikiLCAicmV0dXJuX3R5cGUiOiAiSlNPTiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIHRoZSB1cGRhdGVkIEpTT04gd2l0aCB0aGUgc3BlY2lmaWVkIGZpZWxkIHNldCB0byB0aGUgZ2l2ZW4gbnVtZXJpYyB2YWx1ZS4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiSlNPTjogdGhlIG9iamVjdCB0byBhc3NpZ24gYSB2YWx1ZSB0bzsgU1RSSU5HOiB0aGUgZmllbGQgbmFtZTsgTlVNQkVSOiB0aGUgdmFsdWUgdG8gYXNzaWduIHRvIHRoZSBzcGVjaWZpZWQgZmllbGQuIiwgImRlc2NyaXB0aW9uIjogIkFzc2lnbnMgYSBudW1lcmljIHZhbHVlIHRvIGEgSlNPTiBmaWVsZC4iLCAiZXhhbXBsZV9jb2RlIjogIi8vIENyZWF0ZSBhIEpTT04gb2JqZWN0XG5KU09OIG15SnNvbiA9IEpTT04uUGFyc2UoXCJ7fVwiKVxuXG4vLyBDcmVhdGUgYSBNQVAgdG8gaG9sZCB0aGUgbnVtYmVyIHZhbHVlXG5NQVA8U1RSSU5HLCBNV0cuSW50ZXJuYWxWYXJpYW50PiBudW1iZXJNYXBcbm51bWJlck1hcFtcInZhbHVlXCJdID0gTVdHLkludGVybmFsVmFyaWFudCg0MikgLy8gQXNzdW1pbmcgNDIgaXMgdGhlIG51bWJlciB5b3Ugd2FudCB0byBzZXRcblxuLy8gU2V0IHRoZSBudW1iZXIgaW4gdGhlIEpTT04gb2JqZWN0XG5teUpzb24gPSBKU09OLlNldChteUpzb24sIFwibXlOdW1iZXJLZXlcIiwgbnVtYmVyTWFwKVxuXG4vLyBQcmludCB0aGUgbW9kaWZpZWQgSlNPTiBvYmplY3QgdG8gdGhlIGNvbnNvbGVcbi8vIG15SnNvbiIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIi8vIENyZWF0ZSBhIEpTT04gb2JqZWN0XG5KU09OIG15SnNvbiA9IEpTT04uUGFyc2UoXCJ7fVwiKVxuXG4vLyBDcmVhdGUgYSBNQVAgdG8gaG9sZCB0aGUgbnVtYmVyIHZhbHVlXG5NQVA8U1RSSU5HLCBNV0cuSW50ZXJuYWxWYXJpYW50PiBudW1iZXJNYXBcbm51bWJlck1hcFtcInZhbHVlXCJdID0gTVdHLkludGVybmFsVmFyaWFudCg0MikgLy8gQXNzdW1pbmcgNDIgaXMgdGhlIG51bWJlciB5b3Ugd2FudCB0byBzZXRcblxuLy8gU2V0IHRoZSBudW1iZXIgaW4gdGhlIEpTT04gb2JqZWN0XG5teUpzb24gPSBKU09OLlNldChteUpzb24sIFwibXlOdW1iZXJLZXlcIiwgbnVtYmVyTWFwKVxuXG4vLyBQcmludCB0aGUgbW9kaWZpZWQgSlNPTiBvYmplY3QgdG8gdGhlIGNvbnNvbGVcbi8vIG15SnNvbiJ9LCB7Im5hbWUiOiAiSlNPTi5TZXQgKEpTT04sIFNUUklORywgTlVNQkVSLCBTVFJJTkcpIiwgInJldHVybl90eXBlIjogIkpTT04iLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyB0aGUgbW9kaWZpZWQgSlNPTiB3aXRoIHRoZSBzcGVjaWZpZWQgbnVtZXJpYyB2YWx1ZSBhc3NpZ25lZCB0byB0aGUgZ2l2ZW4gZmllbGQuIiwgInBhcmFtZXRlcl9kZXNjIjogIkpTT046IHRoZSBvYmplY3QgdG8gbW9kaWZ5OyBTVFJJTkc6IGZpZWxkIG5hbWU7IE5VTUJFUjogdGhlIHZhbHVlIHRvIGFzc2lnbjsgU1RSSU5HOiB0aGUgTlVNQkVSIHR5cGUuIiwgImRlc2NyaXB0aW9uIjogIkFzc2lnbnMgYSBudW1lcmljIHZhbHVlIHdpdGggYSBzcGVjaWZpYyBgTlVNQkVSYCB0eXBlIHRvIGEgSlNPTiBmaWVsZC4iLCAiZXhhbXBsZV9jb2RlIjogIi8vIENyZWF0ZSBhIEpTT04gb2JqZWN0XG5KU09OIG15SnNvbiA9IEpTT04uUGFyc2UoXCJ7fVwiKVxuXG4vLyBTZXQgYSB2YWx1ZSBpbiB0aGUgSlNPTiBvYmplY3RcbkpTT04uU2V0KG15SnNvbiwgXCJ1c2VyLmFnZVwiLCAzMCwgXCJudW1iZXJcIilcblxuLy8gUHJpbnQgdGhlIEpTT04gb2JqZWN0IHRvIHRoZSBjb25zb2xlXG4vLyBKU09OLlN0cmluZ2lmeShteUpzb24pIiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiLy8gQ3JlYXRlIGEgSlNPTiBvYmplY3RcbkpTT04gbXlKc29uID0gSlNPTi5QYXJzZShcInt9XCIpXG5cbi8vIFNldCBhIHZhbHVlIGluIHRoZSBKU09OIG9iamVjdFxuSlNPTi5TZXQobXlKc29uLCBcInVzZXIuYWdlXCIsIDMwLCBcIm51bWJlclwiKVxuXG4vLyBQcmludCB0aGUgSlNPTiBvYmplY3QgdG8gdGhlIGNvbnNvbGVcbi8vIEpTT04uU3RyaW5naWZ5KG15SnNvbikifSwgeyJuYW1lIjogIkpTT04uU2V0IChKU09OLCBTVFJJTkcsIFNUUklORykiLCAicmV0dXJuX3R5cGUiOiAiSlNPTiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIGEgSlNPTiBvYmplY3Qgd2l0aCB0aGUgc3BlY2lmaWVkIGZpZWxkIHNldCB0byB0aGUgZ2l2ZW4gYFNUUklOR2AgdmFsdWUuIiwgInBhcmFtZXRlcl9kZXNjIjogIkpTT046IHRoZSBvYmplY3QgdG8gbW9kaWZ5OyBTVFJJTkc6IHRoZSBrZXk7IFNUUklORzogdGhlIHZhbHVlIHRvIGFzc2lnbi4iLCAiZGVzY3JpcHRpb24iOiAiQXNzaWducyBhIHN0cmluZyB2YWx1ZSB0byBhIEpTT04gZmllbGQuIiwgImV4YW1wbGVfY29kZSI6ICIvLyBDcmVhdGUgYSBKU09OIG9iamVjdFxuSlNPTiBteUpzb24gPSBKU09OLlBhcnNlKFwie31cIilcblxuLy8gQ3JlYXRlIGEgbWFwIHRvIGhvbGQgdGhlIHZhbHVlIHRvIHNldFxuTUFQPFNUUklORywgTVdHLkludGVybmFsVmFyaWFudD4gdmFsdWVNYXBcbnZhbHVlTWFwW1wia2V5MVwiXSA9IE1XRy5JbnRlcm5hbFZhcmlhbnQoXCJ2YWx1ZTFcIilcbnZhbHVlTWFwW1wia2V5MlwiXSA9IE1XRy5JbnRlcm5hbFZhcmlhbnQoXCJ2YWx1ZTJcIilcblxuLy8gU2V0IHRoZSB2YWx1ZSBpbiB0aGUgSlNPTiBvYmplY3Rcbm15SnNvbiA9IEpTT04uU2V0KG15SnNvbiwgXCJteUtleVwiLCB2YWx1ZU1hcClcblxuLy8gVGhpcyBsaW5lIHdvdWxkIHByaW50IHRoZSBtb2RpZmllZCBKU09OIG9iamVjdCB0byB0aGUgY29uc29sZVxuLy8gSlNPTi5TdHJpbmdpZnkobXlKc29uKSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIi8vIENyZWF0ZSBhIEpTT04gb2JqZWN0XG5KU09OIG15SnNvbiA9IEpTT04uUGFyc2UoXCJ7fVwiKVxuXG4vLyBDcmVhdGUgYSBtYXAgdG8gaG9sZCB0aGUgdmFsdWUgdG8gc2V0XG5NQVA8U1RSSU5HLCBNV0cuSW50ZXJuYWxWYXJpYW50PiB2YWx1ZU1hcFxudmFsdWVNYXBbXCJrZXkxXCJdID0gTVdHLkludGVybmFsVmFyaWFudChcInZhbHVlMVwiKVxudmFsdWVNYXBbXCJrZXkyXCJdID0gTVdHLkludGVybmFsVmFyaWFudChcInZhbHVlMlwiKVxuXG4vLyBTZXQgdGhlIHZhbHVlIGluIHRoZSBKU09OIG9iamVjdFxubXlKc29uID0gSlNPTi5TZXQobXlKc29uLCBcIm15S2V5XCIsIHZhbHVlTWFwKVxuXG4vLyBUaGlzIGxpbmUgd291bGQgcHJpbnQgdGhlIG1vZGlmaWVkIEpTT04gb2JqZWN0IHRvIHRoZSBjb25zb2xlXG4vLyBKU09OLlN0cmluZ2lmeShteUpzb24pIn0sIHsibmFtZSI6ICJKU09OLlNldCAoSlNPTiwgU1RSSU5HLCBWRUNUT1I8U1RSSU5HPikiLCAicmV0dXJuX3R5cGUiOiAiSlNPTiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIHRoZSB1cGRhdGVkIEpTT04gd2l0aCB0aGUgc3BlY2lmaWVkIHZlY3RvciBhc3NpZ25lZCB0byB0aGUgZ2l2ZW4gc3RyaW5nIGZpZWxkLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJKU09OOiBUaGUgSlNPTiBvYmplY3QgdG8gbW9kaWZ5LCBTVFJJTkc6IFRoZSBmaWVsZCBuYW1lLCBWRUNUT1I6IFRoZSBWRUNUT1IgdmFsdWUgdG8gYXNzaWduLiIsICJkZXNjcmlwdGlvbiI6ICJBc3NpZ25zIGEgdmVjdG9yIHRvIGEgSlNPTiBmaWVsZC4iLCAiZXhhbXBsZV9jb2RlIjogIi8vIEluaXRpYWxpemUgYSBKU09OIG9iamVjdFxuSlNPTiBqc29uT2JqZWN0ID0gSlNPTi5QYXJzZShcInt9XCIpXG5cbi8vIEluaXRpYWxpemUgYSBWRUNUT1I8U1RSSU5HPlxuVkVDVE9SPFNUUklORz4gc3RyaW5nVmVjdG9yID0gXCJ2YWx1ZTFcIiwgXCJ2YWx1ZTJcIiwgXCJ2YWx1ZTNcIlxuXG4vLyBDb252ZXJ0IFZFQ1RPUjxTVFJJTkc+IHRvIE1BUDxTVFJJTkcsIE1XRy5JbnRlcm5hbFZhcmlhbnQ+XG5NQVA8U1RSSU5HLCBNV0cuSW50ZXJuYWxWYXJpYW50PiBtYXBWYXJpYW50XG5GT1IgU1RSSU5HIHZhbHVlIElOIHN0cmluZ1ZlY3RvciB7XG4gICAgbWFwVmFyaWFudFt2YWx1ZV0gPSBNV0cuSW50ZXJuYWxWYXJpYW50KHZhbHVlKVxufVxuXG4vLyBTZXQgdGhlIHZhbHVlIGluIHRoZSBKU09OIG9iamVjdFxuanNvbk9iamVjdCA9IEpTT04uU2V0KGpzb25PYmplY3QsIFwia2V5XCIsIG1hcFZhcmlhbnQpXG5cbi8vIFByaW50IHRoZSBtb2RpZmllZCBKU09OIG9iamVjdFxuLy8ganNvbk9iamVjdCIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIi8vIEluaXRpYWxpemUgYSBKU09OIG9iamVjdFxuSlNPTiBqc29uT2JqZWN0ID0gSlNPTi5QYXJzZShcInt9XCIpXG5cbi8vIEluaXRpYWxpemUgYSBWRUNUT1I8U1RSSU5HPlxuVkVDVE9SPFNUUklORz4gc3RyaW5nVmVjdG9yID0gXCJ2YWx1ZTFcIiwgXCJ2YWx1ZTJcIiwgXCJ2YWx1ZTNcIlxuXG4vLyBDb252ZXJ0IFZFQ1RPUjxTVFJJTkc+IHRvIE1BUDxTVFJJTkcsIE1XRy5JbnRlcm5hbFZhcmlhbnQ+XG5NQVA8U1RSSU5HLCBNV0cuSW50ZXJuYWxWYXJpYW50PiBtYXBWYXJpYW50XG5GT1IgU1RSSU5HIHZhbHVlIElOIHN0cmluZ1ZlY3RvciB7XG4gICAgbWFwVmFyaWFudFt2YWx1ZV0gPSBNV0cuSW50ZXJuYWxWYXJpYW50KHZhbHVlKVxufVxuXG4vLyBTZXQgdGhlIHZhbHVlIGluIHRoZSBKU09OIG9iamVjdFxuanNvbk9iamVjdCA9IEpTT04uU2V0KGpzb25PYmplY3QsIFwia2V5XCIsIG1hcFZhcmlhbnQpXG5cbi8vIFByaW50IHRoZSBtb2RpZmllZCBKU09OIG9iamVjdFxuLy8ganNvbk9iamVjdCJ9LCB7Im5hbWUiOiAiSlNPTi5TaXplIChKU09OKSIsICJyZXR1cm5fdHlwZSI6ICJOVU1CRVIiLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyB0aGUgbnVtYmVyIG9mIGVsZW1lbnRzIGluIHRoZSBnaXZlbiBKU09OIGFycmF5LiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJKU09OOiBhcnJheSB0byBnZXQgc2l6ZSBvZi4iLCAiZGVzY3JpcHRpb24iOiAiUmV0dXJucyB0aGUgc2l6ZSBvZiBhIEpTT04gYXJyYXkuIiwgImV4YW1wbGVfY29kZSI6ICIvLyBFeGFtcGxlIEpTT04gb2JqZWN0XG5KU09OIGV4YW1wbGVKc29uID0ge1xuICAgIFwibmFtZVwiOiBcIkpvaG4gRG9lXCIsXG4gICAgXCJhZ2VcIjogMzAsXG4gICAgXCJlbWFpbFwiOiBcImpvaG4uZG9lQGV4YW1wbGUuY29tXCJcbn1cblxuLy8gR2V0IHRoZSBzaXplIG9mIHRoZSBKU09OIG9iamVjdFxuTlVNQkVSIGpzb25TaXplID0gSlNPTi5TaXplKGV4YW1wbGVKc29uKVxuXG4vLyBUaGUgSlNPTiBvYmplY3QgY29udGFpbnMgXCIgKyBqc29uU2l6ZSArIFwiIGVsZW1lbnRzLiIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIi8vIEV4YW1wbGUgSlNPTiBvYmplY3RcbkpTT04gZXhhbXBsZUpzb24gPSB7XG4gICAgXCJuYW1lXCI6IFwiSm9obiBEb2VcIixcbiAgICBcImFnZVwiOiAzMCxcbiAgICBcImVtYWlsXCI6IFwiam9obi5kb2VAZXhhbXBsZS5jb21cIlxufVxuXG4vLyBHZXQgdGhlIHNpemUgb2YgdGhlIEpTT04gb2JqZWN0XG5OVU1CRVIganNvblNpemUgPSBKU09OLlNpemUoZXhhbXBsZUpzb24pXG5cbi8vIFRoZSBKU09OIG9iamVjdCBjb250YWlucyBcIiArIGpzb25TaXplICsgXCIgZWxlbWVudHMuIn0sIHsibmFtZSI6ICJKU09OLlN1Yk5vZGUgKEpTT04sIFNUUklORykiLCAicmV0dXJuX3R5cGUiOiAiSlNPTiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIHRoZSBKU09OIHZhbHVlIGxvY2F0ZWQgYXQgdGhlIHNwZWNpZmllZCBwYXRoIHdpdGhpbiBhIGNvbXBsZXggSlNPTiBvYmplY3QuIiwgInBhcmFtZXRlcl9kZXNjIjogIkpTT046IHRoZSBjb21wbGV4IEpTT04gb2JqZWN0OyBTVFJJTkc6IHRoZSBwYXRoIHRvIHRoZSBkZXNpcmVkIHZhbHVlIHdpdGhpbiB0aGUgSlNPTiBvYmplY3QuIiwgImRlc2NyaXB0aW9uIjogIlJldHVybnMgdGhlIEpTT04gdmFsdWUgYXQgdGhlIGdpdmVuIHBhdGggb2YgYSBjb21wbGV4IEpTT04gb2JqZWN0LiIsICJleGFtcGxlX2NvZGUiOiAiLy8gQXNzdW1lIHdlIGhhdmUgYSBKU09OIG9iamVjdFxuSlNPTiBqc29uT2JqZWN0ID0ge1xuICAgIFwidXNlclwiOiB7XG4gICAgICAgIFwiaWRcIjogMTIzLFxuICAgICAgICBcIm5hbWVcIjogXCJKb2huIERvZVwiLFxuICAgICAgICBcImVtYWlsXCI6IFwiam9obi5kb2VAZXhhbXBsZS5jb21cIlxuICAgIH0sXG4gICAgXCJzZXR0aW5nc1wiOiB7XG4gICAgICAgIFwidGhlbWVcIjogXCJkYXJrXCIsXG4gICAgICAgIFwibm90aWZpY2F0aW9uc1wiOiB0cnVlXG4gICAgfVxufVxuXG4vLyBFeHRyYWN0IHRoZSBzdWItbm9kZSBmb3IgdXNlciBpbmZvcm1hdGlvblxuSlNPTiB1c2VyU3ViTm9kZSA9IEpTT04uU3ViTm9kZShqc29uT2JqZWN0LCBcInVzZXJcIilcblxuLy8gUHJldmlvdXNseSBwcmludGVkIHRoZSBleHRyYWN0ZWQgc3ViLW5vZGUgdG8gdGhlIGNvbnNvbGVcbi8vIHVzZXJTdWJOb2RlIiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiLy8gQXNzdW1lIHdlIGhhdmUgYSBKU09OIG9iamVjdFxuSlNPTiBqc29uT2JqZWN0ID0ge1xuICAgIFwidXNlclwiOiB7XG4gICAgICAgIFwiaWRcIjogMTIzLFxuICAgICAgICBcIm5hbWVcIjogXCJKb2huIERvZVwiLFxuICAgICAgICBcImVtYWlsXCI6IFwiam9obi5kb2VAZXhhbXBsZS5jb21cIlxuICAgIH0sXG4gICAgXCJzZXR0aW5nc1wiOiB7XG4gICAgICAgIFwidGhlbWVcIjogXCJkYXJrXCIsXG4gICAgICAgIFwibm90aWZpY2F0aW9uc1wiOiB0cnVlXG4gICAgfVxufVxuXG4vLyBFeHRyYWN0IHRoZSBzdWItbm9kZSBmb3IgdXNlciBpbmZvcm1hdGlvblxuSlNPTiB1c2VyU3ViTm9kZSA9IEpTT04uU3ViTm9kZShqc29uT2JqZWN0LCBcInVzZXJcIilcblxuLy8gUHJldmlvdXNseSBwcmludGVkIHRoZSBleHRyYWN0ZWQgc3ViLW5vZGUgdG8gdGhlIGNvbnNvbGVcbi8vIHVzZXJTdWJOb2RlIn0sIHsibmFtZSI6ICJKU09OLlRvRm9ybWF0dGVkU1RSSU5HIChKU09OLCBTVFJJTkcpIiwgInJldHVybl90eXBlIjogIlNUUklORyIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIGEgaHVtYW4tcmVhZGFibGUgZm9ybWF0dGVkIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiBhIEpTT04gb2JqZWN0IHdpdGggdGhlIHNwZWNpZmllZCBpbmRlbnRhdGlvbi4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiSlNPTjogdGhlIG9iamVjdCB0byBiZSBmb3JtYXR0ZWQ7IFNUUklORzogdGhlIGluZGVudGF0aW9uIHRvIGFwcGx5IGluIHRoZSBwcmV0dHkgcHJpbnRlZCBvdXRwdXQuIiwgImRlc2NyaXB0aW9uIjogIkNvbnZlcnRzIGEgSlNPTiBvYmplY3QgdG8gYSBwcmV0dHkgc3RyaW5nIHdpdGggZ2l2ZW4gaW5kZW50YXRpb24uIiwgImV4YW1wbGVfY29kZSI6ICIvLyBDcmVhdGUgYSBKU09OIG9iamVjdFxuSlNPTiBteUpzb24gPSBKU09OLlBhcnNlKCd7XCJuYW1lXCI6IFwiSm9obiBEb2VcIiwgXCJhZ2VcIjogMzAsIFwiY2l0eVwiOiBcIk5ldyBZb3JrXCJ9JylcblxuLy8gQ29udmVydCB0aGUgSlNPTiBvYmplY3QgdG8gYSBmb3JtYXR0ZWQgc3RyaW5nXG5TVFJJTkcgZm9ybWF0dGVkSnNvblN0cmluZyA9IEpTT04uVG9Gb3JtYXR0ZWRTdHJpbmcobXlKc29uLCBcIiAgXCIpXG5cbi8vIFByaW50IHRoZSBmb3JtYXR0ZWQgSlNPTiBzdHJpbmcgdG8gdGhlIGNvbnNvbGVcbi8vIERFQlVHKGZvcm1hdHRlZEpzb25TdHJpbmcpIiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiLy8gQ3JlYXRlIGEgSlNPTiBvYmplY3RcbkpTT04gbXlKc29uID0gSlNPTi5QYXJzZSgne1wibmFtZVwiOiBcIkpvaG4gRG9lXCIsIFwiYWdlXCI6IDMwLCBcImNpdHlcIjogXCJOZXcgWW9ya1wifScpXG5cbi8vIENvbnZlcnQgdGhlIEpTT04gb2JqZWN0IHRvIGEgZm9ybWF0dGVkIHN0cmluZ1xuU1RSSU5HIGZvcm1hdHRlZEpzb25TdHJpbmcgPSBKU09OLlRvRm9ybWF0dGVkU3RyaW5nKG15SnNvbiwgXCIgIFwiKVxuXG4vLyBQcmludCB0aGUgZm9ybWF0dGVkIEpTT04gc3RyaW5nIHRvIHRoZSBjb25zb2xlXG4vLyBERUJVRyhmb3JtYXR0ZWRKc29uU3RyaW5nKSJ9LCB7Im5hbWUiOiAiSlNPTi5Ub1NUUklOR1ZlY3RvciAoSlNPTikiLCAicmV0dXJuX3R5cGUiOiAiVkVDVE9SPFNUUklORz4iLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyBKU09OIGFycmF5IGFzIGEgc3RyaW5nIGxpc3QuIiwgInBhcmFtZXRlcl9kZXNjIjogIkpTT046IHRoZSBKU09OIGFycmF5IHRvIGNvbnZlcnQgdG8gYSBTVFJJTkcgbGlzdC4iLCAiZGVzY3JpcHRpb24iOiAiUmV0dXJucyBKU09OIGFycmF5IGFzIGEgc3RyaW5nIGxpc3QuIiwgImV4YW1wbGVfY29kZSI6ICIvLyBFeGFtcGxlIEpTT04gb2JqZWN0XG5KU09OIGpzb25PYmplY3QgPSB7XG4gICAgXCJrZXkxXCI6IFwidmFsdWUxXCIsXG4gICAgXCJrZXkyXCI6IFwidmFsdWUyXCIsXG4gICAgXCJrZXkzXCI6IFwidmFsdWUzXCJcbn1cblxuLy8gQ29udmVydCBKU09OIG9iamVjdCB0byBWRUNUT1I8U1RSSU5HPlxuVkVDVE9SPFNUUklORz4gc3RyaW5nVmVjdG9yID0gSlNPTi5Ub1N0cmluZ1ZlY3Rvcihqc29uT2JqZWN0KVxuXG4vLyBQcmludCBlYWNoIGVsZW1lbnQgaW4gdGhlIFZFQ1RPUjxTVFJJTkc+XG5GT1IgU1RSSU5HIGVsZW1lbnQgSU4gc3RyaW5nVmVjdG9yIHtcbiAgICAvLyBlbGVtZW50XG59IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiLy8gRXhhbXBsZSBKU09OIG9iamVjdFxuSlNPTiBqc29uT2JqZWN0ID0ge1xuICAgIFwia2V5MVwiOiBcInZhbHVlMVwiLFxuICAgIFwia2V5MlwiOiBcInZhbHVlMlwiLFxuICAgIFwia2V5M1wiOiBcInZhbHVlM1wiXG59XG5cbi8vIENvbnZlcnQgSlNPTiBvYmplY3QgdG8gVkVDVE9SPFNUUklORz5cblZFQ1RPUjxTVFJJTkc+IHN0cmluZ1ZlY3RvciA9IEpTT04uVG9TdHJpbmdWZWN0b3IoanNvbk9iamVjdClcblxuLy8gUHJpbnQgZWFjaCBlbGVtZW50IGluIHRoZSBWRUNUT1I8U1RSSU5HPlxuRk9SIFNUUklORyBlbGVtZW50IElOIHN0cmluZ1ZlY3RvciB7XG4gICAgLy8gZWxlbWVudFxufSJ9LCB7Im5hbWUiOiAiSlNPTi5VbmlvbkFycmF5cyAoSlNPTiwgSlNPTikiLCAicmV0dXJuX3R5cGUiOiAiSlNPTiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIGEgSlNPTiBhcnJheSB0aGF0IGNvbWJpbmVzIGVsZW1lbnRzIGZyb20gYm90aCBpbnB1dCBKU09OIGFycmF5cywgYXBwZW5kaW5nIHRoZSBlbGVtZW50cyBvZiB0aGUgc2Vjb25kIGFycmF5IHRvIHRoZSBmaXJzdC4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiUGFyYW1ldGVyczogVHdvIEpTT04gb2JqZWN0cyByZXByZXNlbnRpbmcgYXJyYXlzIHRvIGJlIG1lcmdlZCwgd2l0aCB0aGUgdmFsdWVzIG9mIHRoZSBzZWNvbmQgYXJyYXkgYXBwZW5kZWQgdG8gdGhlIGZpcnN0LiIsICJkZXNjcmlwdGlvbiI6ICJBcHBlbmRzIHRoZSB2YWx1ZXMgb2YgdGhlIHNlY29uZCBKU09OIGFycmF5IHRvIHRoZSBmaXJzdCBhcnJheS4iLCAiZXhhbXBsZV9jb2RlIjogIkpTT04gYXJyYXkxID0gWyB7XCJpZFwiOiAxLCBcIm5hbWVcIjogXCJBbGljZVwifSwge1wiaWRcIjogMiwgXCJuYW1lXCI6IFwiQm9iXCJ9IF1cbkpTT04gYXJyYXkyID0gWyB7XCJpZFwiOiAzLCBcIm5hbWVcIjogXCJDaGFybGllXCJ9LCB7XCJpZFwiOiA0LCBcIm5hbWVcIjogXCJEaWFuYVwifSBdXG5cbkpTT04gY29tYmluZWRBcnJheSA9IEFycmF5QXBwZW5kKGFycmF5MSwgYXJyYXkyKVxuXG4vLyBERUJVRyhjb21iaW5lZEFycmF5KSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIkpTT04gYXJyYXkxID0gWyB7XCJpZFwiOiAxLCBcIm5hbWVcIjogXCJBbGljZVwifSwge1wiaWRcIjogMiwgXCJuYW1lXCI6IFwiQm9iXCJ9IF1cbkpTT04gYXJyYXkyID0gWyB7XCJpZFwiOiAzLCBcIm5hbWVcIjogXCJDaGFybGllXCJ9LCB7XCJpZFwiOiA0LCBcIm5hbWVcIjogXCJEaWFuYVwifSBdXG5cbkpTT04gY29tYmluZWRBcnJheSA9IEFycmF5QXBwZW5kKGFycmF5MSwgYXJyYXkyKVxuXG4vLyBERUJVRyhjb21iaW5lZEFycmF5KSJ9LCB7Im5hbWUiOiAiTGVuZ3RoIChTVFJJTkcpIiwgInJldHVybl90eXBlIjogIk5VTUJFUiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIHRoZSBudW1iZXIgb2YgY2hhcmFjdGVycyBpbiB0aGUgZ2l2ZW4gc3RyaW5nLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJTVFJJTkc6IFRoZSBpbnB1dCB0ZXh0IGZvciB3aGljaCB0aGUgbGVuZ3RoIGlzIHRvIGJlIGNhbGN1bGF0ZWQuIiwgImRlc2NyaXB0aW9uIjogIlJldHVybnMgdGhlIGxlbmd0aCBvZiB0aGUgc3RyaW5nLiIsICJleGFtcGxlX2NvZGUiOiAiU1RSSU5HIGV4YW1wbGVTdHJpbmcgPSBcIkhlbGxvLCBXb3JsZCFcIlxuTlVNQkVSIHN0cmluZ0xlbmd0aCA9IExlbmd0aChleGFtcGxlU3RyaW5nKVxuXG4vLyBUaGUgbGVuZ3RoIG9mIHRoZSBzdHJpbmcgaXM6ICsgc3RyaW5nTGVuZ3RoXG5cbklGIHN0cmluZ0xlbmd0aCA+IDEwIFRIRU4ge1xuICAgIC8vIFRoZSBzdHJpbmcgaXMgbG9uZ2VyIHRoYW4gMTAgY2hhcmFjdGVycy5cbn0gRUxTRSB7XG4gICAgLy8gVGhlIHN0cmluZyBpcyAxMCBjaGFyYWN0ZXJzIG9yIHNob3J0ZXIuXG59IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiU1RSSU5HIGV4YW1wbGVTdHJpbmcgPSBcIkhlbGxvLCBXb3JsZCFcIlxuTlVNQkVSIHN0cmluZ0xlbmd0aCA9IExlbmd0aChleGFtcGxlU3RyaW5nKVxuXG4vLyBUaGUgbGVuZ3RoIG9mIHRoZSBzdHJpbmcgaXM6ICsgc3RyaW5nTGVuZ3RoXG5cbklGIHN0cmluZ0xlbmd0aCA+IDEwIFRIRU4ge1xuICAgIC8vIFRoZSBzdHJpbmcgaXMgbG9uZ2VyIHRoYW4gMTAgY2hhcmFjdGVycy5cbn0gRUxTRSB7XG4gICAgLy8gVGhlIHN0cmluZyBpcyAxMCBjaGFyYWN0ZXJzIG9yIHNob3J0ZXIuXG59In0sIHsibmFtZSI6ICJNYXRoLkFicyAoTlVNQkVSKSIsICJyZXR1cm5fdHlwZSI6ICJOVU1CRVIiLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyB0aGUgbm9uLW5lZ2F0aXZlIHZhbHVlIG9mIHRoZSBnaXZlbiBudW1iZXIuIiwgInBhcmFtZXRlcl9kZXNjIjogIk5VTUJFUjogVGhlIE5VTUJFUiBmb3Igd2hpY2ggdGhlIGFic29sdXRlIHZhbHVlIGlzIHRvIGJlIGNhbGN1bGF0ZWQuIiwgImRlc2NyaXB0aW9uIjogIlJldHVybnMgdGhlIGFic29sdXRlIHZhbHVlIG9mIHRoZSBnaXZlbiBudW1iZXIuIiwgImV4YW1wbGVfY29kZSI6ICJOVU1CRVIgdmFsdWUgPSAtNDJcbk5VTUJFUiBhYnNvbHV0ZVZhbHVlXG5cbklGIHZhbHVlIDwgMCBUSEVOIHtcbiAgICBhYnNvbHV0ZVZhbHVlID0gMCAtIHZhbHVlXG59IEVMU0Uge1xuICAgIGFic29sdXRlVmFsdWUgPSB2YWx1ZVxufVxuXG4vLyBUaGUgYWJzb2x1dGUgdmFsdWUgaXM6IFwiICsgYWJzb2x1dGVWYWx1ZSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIk5VTUJFUiB2YWx1ZSA9IC00MlxuTlVNQkVSIGFic29sdXRlVmFsdWVcblxuSUYgdmFsdWUgPCAwIFRIRU4ge1xuICAgIGFic29sdXRlVmFsdWUgPSAwIC0gdmFsdWVcbn0gRUxTRSB7XG4gICAgYWJzb2x1dGVWYWx1ZSA9IHZhbHVlXG59XG5cbi8vIFRoZSBhYnNvbHV0ZSB2YWx1ZSBpczogXCIgKyBhYnNvbHV0ZVZhbHVlIn0sIHsibmFtZSI6ICJNYXRoLkNlaWwgKE5VTUJFUikiLCAicmV0dXJuX3R5cGUiOiAiTlVNQkVSIiwgInJldHVybl9kZXNjIjogIlJldHVybnMgdGhlIHNtYWxsZXN0IGludGVnZXIgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIHRoZSBnaXZlbiBudW1iZXIuIiwgInBhcmFtZXRlcl9kZXNjIjogIk5VTUJFUjogVGhlIE5VTUJFUiBmb3Igd2hpY2ggdGhlIGNlaWxpbmcgdmFsdWUgaXMgdG8gYmUgZm91bmQuIiwgImRlc2NyaXB0aW9uIjogIlJldHVybnMgdGhlIGNlaWxpbmcgb2YgdGhlIGdpdmVuIG51bWJlci4iLCAiZXhhbXBsZV9jb2RlIjogIk5VTUJFUiB2YWx1ZSA9IDQuN1xuTlVNQkVSIGNlaWxpbmdWYWx1ZSA9IE1hdGguQ2VpbCh2YWx1ZSlcbi8vIFRoZSBjZWlsaW5nIHZhbHVlIG9mIHZhbHVlIGlzIGNlaWxpbmdWYWx1ZSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIk5VTUJFUiB2YWx1ZSA9IDQuN1xuTlVNQkVSIGNlaWxpbmdWYWx1ZSA9IE1hdGguQ2VpbCh2YWx1ZSlcbi8vIFRoZSBjZWlsaW5nIHZhbHVlIG9mIHZhbHVlIGlzIGNlaWxpbmdWYWx1ZSJ9LCB7Im5hbWUiOiAiTWF0aC5EaXYgKE5VTUJFUiwgTlVNQkVSKSIsICJyZXR1cm5fdHlwZSI6ICJOVU1CRVIiLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyB0aGUgcXVvdGllbnQgb2YgdGhlIGRpdmlzaW9uIG9mIHRoZSBmaXJzdCBudW1iZXIgYnkgdGhlIHNlY29uZCBudW1iZXIsIHdpdGhvdXQgdGhlIHJlbWFpbmRlci4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiTlVNQkVSOiB0aGUgbnVtZXJhdG9yOyBOVU1CRVI6IHRoZSBkZW5vbWluYXRvci4iLCAiZGVzY3JpcHRpb24iOiAiUmV0dXJucyB0aGUgcmVzdWx0IG9mIGludGVnZXIgZGl2aXNpb24gb2YgdGhlIGdpdmVuIHR3byBudW1iZXJzLiIsICJleGFtcGxlX2NvZGUiOiAiTlVNQkVSIG51bWVyYXRvciA9IDEwXG5OVU1CRVIgZGVub21pbmF0b3IgPSAyXG5OVU1CRVIgcmVzdWx0ID0gbnVtZXJhdG9yIC8gZGVub21pbmF0b3Jcbi8vIFRoZSByZXN1bHQgb2YgdGhlIGRpdmlzaW9uIGlzOiByZXN1bHQiLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICJOVU1CRVIgbnVtZXJhdG9yID0gMTBcbk5VTUJFUiBkZW5vbWluYXRvciA9IDJcbk5VTUJFUiByZXN1bHQgPSBudW1lcmF0b3IgLyBkZW5vbWluYXRvclxuLy8gVGhlIHJlc3VsdCBvZiB0aGUgZGl2aXNpb24gaXM6IHJlc3VsdCJ9LCB7Im5hbWUiOiAiTWF0aC5GbG9vciAoTlVNQkVSKSIsICJyZXR1cm5fdHlwZSI6ICJOVU1CRVIiLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyB0aGUgbGFyZ2VzdCBpbnRlZ2VyIGxlc3MgdGhhbiBvciBlcXVhbCB0byB0aGUgZ2l2ZW4gbnVtYmVyLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJOVU1CRVI6IHRoZSB2YWx1ZSB0byBiZSByb3VuZGVkLiIsICJkZXNjcmlwdGlvbiI6ICJSZXR1cm5zIHRoZSByb3VuZGVkIGRvd24gdmFsdWUgb2YgdGhlIGdpdmVuIG51bWJlci4iLCAiZXhhbXBsZV9jb2RlIjogIk5VTUJFUiBvcmlnaW5hbFZhbHVlID0gNS43NVxuTlVNQkVSIGZsb29yZWRWYWx1ZSA9IE1hdGguRmxvb3Iob3JpZ2luYWxWYWx1ZSlcblxuLy8gT3JpZ2luYWwgVmFsdWU6IDUuNzVcbi8vIEZsb29yZWQgVmFsdWU6IDUiLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICJOVU1CRVIgb3JpZ2luYWxWYWx1ZSA9IDUuNzVcbk5VTUJFUiBmbG9vcmVkVmFsdWUgPSBNYXRoLkZsb29yKG9yaWdpbmFsVmFsdWUpXG5cbi8vIE9yaWdpbmFsIFZhbHVlOiA1Ljc1XG4vLyBGbG9vcmVkIFZhbHVlOiA1In0sIHsibmFtZSI6ICJNYXRoLk1heCAoTlVNQkVSLCBOVU1CRVIpIiwgInJldHVybl90eXBlIjogIk5VTUJFUiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIHRoZSBsYXJnZXIgb2YgdGhlIHR3byBpbnB1dCBudW1iZXJzLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJUd28gTlVNQkVScyBmb3IgY29tcGFyaXNvbi4iLCAiZGVzY3JpcHRpb24iOiAiUmV0dXJucyB0aGUgbWF4aW11bSBvZiB0aGUgZ2l2ZW4gbnVtYmVycy4iLCAiZXhhbXBsZV9jb2RlIjogIk5VTUJFUiBhID0gMTBcbk5VTUJFUiBiID0gMjBcbk5VTUJFUiBtYXhfdmFsdWUgPSBNYXRoLk1heChhLCBiKVxuLy8gVGhlIG1heGltdW0gdmFsdWUgaXM6IG1heF92YWx1ZSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIk5VTUJFUiBhID0gMTBcbk5VTUJFUiBiID0gMjBcbk5VTUJFUiBtYXhfdmFsdWUgPSBNYXRoLk1heChhLCBiKVxuLy8gVGhlIG1heGltdW0gdmFsdWUgaXM6IG1heF92YWx1ZSJ9LCB7Im5hbWUiOiAiTWF0aC5NaW4gKE5VTUJFUiwgTlVNQkVSKSIsICJyZXR1cm5fdHlwZSI6ICJOVU1CRVIiLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyB0aGUgc21hbGxlc3QgdmFsdWUgYmV0d2VlbiB0aGUgdHdvIHByb3ZpZGVkIG51bWJlcnMuIiwgInBhcmFtZXRlcl9kZXNjIjogIlR3byBOVU1CRVJzIGZvciBjb21wYXJpc29uLiIsICJkZXNjcmlwdGlvbiI6ICJSZXR1cm5zIHRoZSBtaW5pbXVtIG9mIHRoZSBnaXZlbiBudW1iZXJzLiIsICJleGFtcGxlX2NvZGUiOiAiTlVNQkVSIGEgPSAxMFxuTlVNQkVSIGIgPSAyMFxuTlVNQkVSIG1pblZhbHVlID0gTWF0aC5NaW4oYSwgYilcblxuLy8gVGhlIG1pbmltdW0gdmFsdWUgaXM6IG1pblZhbHVlIiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiTlVNQkVSIGEgPSAxMFxuTlVNQkVSIGIgPSAyMFxuTlVNQkVSIG1pblZhbHVlID0gTWF0aC5NaW4oYSwgYilcblxuLy8gVGhlIG1pbmltdW0gdmFsdWUgaXM6IG1pblZhbHVlIn0sIHsibmFtZSI6ICJNYXRoLk1vZHVsdXMgKE5VTUJFUiwgTlVNQkVSKSIsICJyZXR1cm5fdHlwZSI6ICJOVU1CRVIiLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyB0aGUgcmVtYWluZGVyIHdoZW4gdGhlIGZpcnN0IG51bWJlciBpcyBkaXZpZGVkIGJ5IHRoZSBzZWNvbmQgbnVtYmVyLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJOVU1CRVI6IHRoZSBudW1lcmF0b3I7IE5VTUJFUjogdGhlIGRlbm9taW5hdG9yLiIsICJkZXNjcmlwdGlvbiI6ICJDb21wdXRlcyB0aGUgcmVtYWluZGVyIG9mIGRpdmlzaW9uIChtb2QpLiIsICJleGFtcGxlX2NvZGUiOiAiTlVNQkVSIG51bWVyYXRvciA9IDEwXG5OVU1CRVIgZGVub21pbmF0b3IgPSAzXG5OVU1CRVIgcmVzdWx0ID0gTWF0aC5Nb2R1bHVzKG51bWVyYXRvciwgZGVub21pbmF0b3IpXG5cbi8vIFRoZSByZW1haW5kZXIgb2YgbnVtZXJhdG9yIGRpdmlkZWQgYnkgZGVub21pbmF0b3IgaXMgcmVzdWx0IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiTlVNQkVSIG51bWVyYXRvciA9IDEwXG5OVU1CRVIgZGVub21pbmF0b3IgPSAzXG5OVU1CRVIgcmVzdWx0ID0gTWF0aC5Nb2R1bHVzKG51bWVyYXRvciwgZGVub21pbmF0b3IpXG5cbi8vIFRoZSByZW1haW5kZXIgb2YgbnVtZXJhdG9yIGRpdmlkZWQgYnkgZGVub21pbmF0b3IgaXMgcmVzdWx0In0sIHsibmFtZSI6ICJNYXRoLlBvdyAoTlVNQkVSLCBOVU1CRVIpIiwgInJldHVybl90eXBlIjogIk5VTUJFUiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIHRoZSB2YWx1ZSBvZiB0aGUgZmlyc3QgbnVtYmVyIHJhaXNlZCB0byB0aGUgcG93ZXIgb2YgdGhlIHNlY29uZCBudW1iZXIuIiwgInBhcmFtZXRlcl9kZXNjIjogIk5VTUJFUjogdGhlIGJhc2U7IE5VTUJFUjogdGhlIGV4cG9uZW50LiIsICJkZXNjcmlwdGlvbiI6ICJSZXR1cm5zIHRoZSByZXN1bHQgb2YgYmFzZSB0byB0aGUgcG93ZXIgb2YgdGhlIGV4cG9uZW50LiIsICJleGFtcGxlX2NvZGUiOiAiTlVNQkVSIGJhc2UgPSAyXG5OVU1CRVIgZXhwb25lbnQgPSAzXG5OVU1CRVIgcmVzdWx0ID0gTWF0aC5Qb3coYmFzZSwgZXhwb25lbnQpXG4vLyBUaGUgcmVzdWx0IG9mIGJhc2UgcmFpc2VkIHRvIHRoZSBwb3dlciBvZiBleHBvbmVudCBpcyByZXN1bHQiLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICJOVU1CRVIgYmFzZSA9IDJcbk5VTUJFUiBleHBvbmVudCA9IDNcbk5VTUJFUiByZXN1bHQgPSBNYXRoLlBvdyhiYXNlLCBleHBvbmVudClcbi8vIFRoZSByZXN1bHQgb2YgYmFzZSByYWlzZWQgdG8gdGhlIHBvd2VyIG9mIGV4cG9uZW50IGlzIHJlc3VsdCJ9LCB7Im5hbWUiOiAiTWF0aC5Sb3VuZCAoTlVNQkVSKSIsICJyZXR1cm5fdHlwZSI6ICJOVU1CRVIiLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyB0aGUgbmVhcmVzdCBpbnRlZ2VyIHRvIHRoZSBnaXZlbiBudW1iZXIsIHJvdW5kaW5nIDAuNSB1cCB0byAxLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJOVU1CRVI6IFRoZSBmbG9hdGluZy1wb2ludCB2YWx1ZSB0byBiZSByb3VuZGVkIHRvIHRoZSBuZWFyZXN0IGludGVncmFsIHZhbHVlLiIsICJkZXNjcmlwdGlvbiI6ICJSZXR1cm5zIHRoZSBpbnRlZ3JhbCB2YWx1ZSB0aGF0IGlzIG5lYXJlc3QgdG8gdGhlIGdpdmVuIG51bWJlciwgd2l0aCAwLjUgcm91bmRlZCB0byAxLiIsICJleGFtcGxlX2NvZGUiOiAiTlVNQkVSIG9yaWdpbmFsVmFsdWUgPSAzLjdcbk5VTUJFUiByb3VuZGVkVmFsdWUgPSBNYXRoLlJvdW5kKG9yaWdpbmFsVmFsdWUpXG4vLyBPcmlnaW5hbCBWYWx1ZTogMy43XG4vLyBSb3VuZGVkIFZhbHVlOiA0IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiTlVNQkVSIG9yaWdpbmFsVmFsdWUgPSAzLjdcbk5VTUJFUiByb3VuZGVkVmFsdWUgPSBNYXRoLlJvdW5kKG9yaWdpbmFsVmFsdWUpXG4vLyBPcmlnaW5hbCBWYWx1ZTogMy43XG4vLyBSb3VuZGVkIFZhbHVlOiA0In0sIHsibmFtZSI6ICJNYXRoLlNnbiAoTlVNQkVSKSIsICJyZXR1cm5fdHlwZSI6ICJOVU1CRVIiLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyAtMSBpZiB0aGUgbnVtYmVyIGlzIG5lZ2F0aXZlLCAwIGlmIGl0IGlzIHplcm8sIGFuZCAxIGlmIGl0IGlzIHBvc2l0aXZlLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJOVU1CRVI6IGlucHV0IHZhbHVlIHRvIGRldGVybWluZSBzaWduIG9mLiIsICJkZXNjcmlwdGlvbiI6ICJSZXR1cm5zIHRoZSBzaWduIG9mIHRoZSBnaXZlbiBudW1iZXIgKC0xLCAwLCAxKS4iLCAiZXhhbXBsZV9jb2RlIjogIk5VTUJFUiB2YWx1ZSA9IC00MlxuTlVNQkVSIHNpZ24gPSBNYXRoLlNnbih2YWx1ZSlcblxuSUYgc2lnbiA9PSAxIFRIRU4ge1xuICAgIC8vIFRoZSBudW1iZXIgaXMgcG9zaXRpdmUuXG59IEVMU0UgSUYgc2lnbiA9PSAtMSBUSEVOIHtcbiAgICAvLyBUaGUgbnVtYmVyIGlzIG5lZ2F0aXZlLlxufSBFTFNFIHtcbiAgICAvLyBUaGUgbnVtYmVyIGlzIHplcm8uXG59IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiTlVNQkVSIHZhbHVlID0gLTQyXG5OVU1CRVIgc2lnbiA9IE1hdGguU2duKHZhbHVlKVxuXG5JRiBzaWduID09IDEgVEhFTiB7XG4gICAgLy8gVGhlIG51bWJlciBpcyBwb3NpdGl2ZS5cbn0gRUxTRSBJRiBzaWduID09IC0xIFRIRU4ge1xuICAgIC8vIFRoZSBudW1iZXIgaXMgbmVnYXRpdmUuXG59IEVMU0Uge1xuICAgIC8vIFRoZSBudW1iZXIgaXMgemVyby5cbn0ifSwgeyJuYW1lIjogIk1hdGguU3FydCAoTlVNQkVSKSIsICJyZXR1cm5fdHlwZSI6ICJOVU1CRVIiLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyB0aGUgcG9zaXRpdmUgc3F1YXJlIHJvb3Qgb2YgdGhlIGdpdmVuIG51bWJlci4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiTlVNQkVSOiBUaGUgTlVNQkVSIGZvciB3aGljaCB5b3Ugd2FudCB0byBmaW5kIHRoZSBzcXVhcmUgcm9vdC4iLCAiZGVzY3JpcHRpb24iOiAiUmV0dXJucyB0aGUgc3F1YXJlIHJvb3Qgb2YgdGhlIGdpdmVuIG51bWJlci4iLCAiZXhhbXBsZV9jb2RlIjogIk5VTUJFUiB2YWx1ZSA9IDE2XG5OVU1CRVIgcmVzdWx0ID0gTWF0aC5TcXJ0KHZhbHVlKVxuLy8gVGhlIHNxdWFyZSByb290IG9mIHZhbHVlIGlzIHJlc3VsdCIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIk5VTUJFUiB2YWx1ZSA9IDE2XG5OVU1CRVIgcmVzdWx0ID0gTWF0aC5TcXJ0KHZhbHVlKVxuLy8gVGhlIHNxdWFyZSByb290IG9mIHZhbHVlIGlzIHJlc3VsdCJ9LCB7Im5hbWUiOiAiTUNQLkF1dGhlbnRpY2F0ZSAoTUNQLlNldHRpbmcsIFNUUklORykiLCAicmV0dXJuX3R5cGUiOiAiQk9PTEVBTiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zYFRSVUVgaWYgdGhlIGdpdmVuIGN1c3RvbWVyIGlzIGF1dGhlbnRpY2F0ZWQuIiwgInBhcmFtZXRlcl9kZXNjIjogIk1DUC5TZXR0aW5nOiB0aGUgc3BlY2lmaWVkIHNldHRpbmc7IFNUUklORzogdGhlIGN1c3RvbWVyIElELiIsICJkZXNjcmlwdGlvbiI6ICJDaGVja3MgaWYgYSBjdXN0b21lciBpcyBhdXRoZW50aWNhdGVkLiIsICJleGFtcGxlX2NvZGUiOiAiLy8gSW5pdGlhbGl6ZSB0aGUgTUNQLlNldHRpbmcgb2JqZWN0IHdpdGggYXBwcm9wcmlhdGUgc2V0dGluZ3Ncbk1DUC5TZXR0aW5nIGF1dGhTZXR0aW5nID0gTUNQLlNldHRpbmcoKVxuYXV0aFNldHRpbmcuc2VydmVyID0gXCJhdXRoLmV4YW1wbGUuY29tXCJcbmF1dGhTZXR0aW5nLnBvcnQgPSAzODlcbmF1dGhTZXR0aW5nLnVzZVNTTCA9IFRSVUVcblxuLy8gVGhlIHVzZXJuYW1lIHRvIGF1dGhlbnRpY2F0ZVxuU1RSSU5HIHVzZXJuYW1lID0gXCJleGFtcGxlVXNlclwiXG5cbi8vIENhbGwgdGhlIE1DUC5BdXRoZW50aWNhdGUgZnVuY3Rpb25cbkJPT0xFQU4gaXNBdXRoZW50aWNhdGVkID0gTUNQLkF1dGhlbnRpY2F0ZShhdXRoU2V0dGluZywgdXNlcm5hbWUpXG5cbi8vIENoZWNrIHRoZSByZXN1bHQgb2YgdGhlIGF1dGhlbnRpY2F0aW9uXG5JRiBpc0F1dGhlbnRpY2F0ZWQgVEhFTiB7XG4gICAgLy8gVXNlciBhdXRoZW50aWNhdGVkIHN1Y2Nlc3NmdWxseS5cbiAgICAvLyBBZGRpdGlvbmFsIGNvZGUgZm9yIGF1dGhlbnRpY2F0ZWQgdXNlcnNcbn0gRUxTRSB7XG4gICAgLy8gVXNlciBhdXRoZW50aWNhdGlvbiBmYWlsZWQuXG4gICAgLy8gQWRkaXRpb25hbCBjb2RlIGZvciBmYWlsZWQgYXV0aGVudGljYXRpb25cbn0iLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICIvLyBJbml0aWFsaXplIHRoZSBNQ1AuU2V0dGluZyBvYmplY3Qgd2l0aCBhcHByb3ByaWF0ZSBzZXR0aW5nc1xuTUNQLlNldHRpbmcgYXV0aFNldHRpbmcgPSBNQ1AuU2V0dGluZygpXG5hdXRoU2V0dGluZy5zZXJ2ZXIgPSBcImF1dGguZXhhbXBsZS5jb21cIlxuYXV0aFNldHRpbmcucG9ydCA9IDM4OVxuYXV0aFNldHRpbmcudXNlU1NMID0gVFJVRVxuXG4vLyBUaGUgdXNlcm5hbWUgdG8gYXV0aGVudGljYXRlXG5TVFJJTkcgdXNlcm5hbWUgPSBcImV4YW1wbGVVc2VyXCJcblxuLy8gQ2FsbCB0aGUgTUNQLkF1dGhlbnRpY2F0ZSBmdW5jdGlvblxuQk9PTEVBTiBpc0F1dGhlbnRpY2F0ZWQgPSBNQ1AuQXV0aGVudGljYXRlKGF1dGhTZXR0aW5nLCB1c2VybmFtZSlcblxuLy8gQ2hlY2sgdGhlIHJlc3VsdCBvZiB0aGUgYXV0aGVudGljYXRpb25cbklGIGlzQXV0aGVudGljYXRlZCBUSEVOIHtcbiAgICAvLyBVc2VyIGF1dGhlbnRpY2F0ZWQgc3VjY2Vzc2Z1bGx5LlxuICAgIC8vIEFkZGl0aW9uYWwgY29kZSBmb3IgYXV0aGVudGljYXRlZCB1c2Vyc1xufSBFTFNFIHtcbiAgICAvLyBVc2VyIGF1dGhlbnRpY2F0aW9uIGZhaWxlZC5cbiAgICAvLyBBZGRpdGlvbmFsIGNvZGUgZm9yIGZhaWxlZCBhdXRoZW50aWNhdGlvblxufSJ9LCB7Im5hbWUiOiAiTUNQLkdldFNldHRpbmcgKFNUUklORykiLCAicmV0dXJuX3R5cGUiOiAiTUNQLlNldHRpbmciLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyBzZXR0aW5nIGZyb20gZ2l2ZW4gaWRlbnRpZmllci4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiU1RSSU5HOiBpZGVudGlmaWVyIGZvciB0aGUgZGVzaXJlZCBzZXR0aW5nIiwgImRlc2NyaXB0aW9uIjogIkdldHMgYW4gTUNQIHNldHRpbmcgd2l0aCBhbiBpZGVudGlmeWluZyBzdHJpbmcuIiwgImV4YW1wbGVfY29kZSI6ICIvLyBSZXRyaWV2ZSBhIHNldHRpbmcgdmFsdWUgdXNpbmcgTUNQLkdldFNldHRpbmdcblNUUklORyBzZXR0aW5nVmFsdWUgPSBNQ1AuR2V0U2V0dGluZyhcImV4YW1wbGVTZXR0aW5nXCIpXG5cbi8vIFRoZSB2YWx1ZSBvZiBleGFtcGxlU2V0dGluZyBpczogc2V0dGluZ1ZhbHVlXG5cbi8vIFVzZSB0aGUgcmV0cmlldmVkIHNldHRpbmcgdmFsdWUgaW4gc29tZSBsb2dpY1xuSUYgc2V0dGluZ1ZhbHVlID09IFwiYmxvY2tcIiBUSEVOIHtcbiAgICBNV0cuQmxvY2soXCJCbG9ja2VkIGR1ZSB0byBzZXR0aW5nIHZhbHVlXCIpXG59IEVMU0Uge1xuICAgIE1XRy5BbGxvdyhcIkFsbG93ZWQgZHVlIHRvIHNldHRpbmcgdmFsdWVcIilcbn0iLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICIvLyBSZXRyaWV2ZSBhIHNldHRpbmcgdmFsdWUgdXNpbmcgTUNQLkdldFNldHRpbmdcblNUUklORyBzZXR0aW5nVmFsdWUgPSBNQ1AuR2V0U2V0dGluZyhcImV4YW1wbGVTZXR0aW5nXCIpXG5cbi8vIFRoZSB2YWx1ZSBvZiBleGFtcGxlU2V0dGluZyBpczogc2V0dGluZ1ZhbHVlXG5cbi8vIFVzZSB0aGUgcmV0cmlldmVkIHNldHRpbmcgdmFsdWUgaW4gc29tZSBsb2dpY1xuSUYgc2V0dGluZ1ZhbHVlID09IFwiYmxvY2tcIiBUSEVOIHtcbiAgICBNV0cuQmxvY2soXCJCbG9ja2VkIGR1ZSB0byBzZXR0aW5nIHZhbHVlXCIpXG59IEVMU0Uge1xuICAgIE1XRy5BbGxvdyhcIkFsbG93ZWQgZHVlIHRvIHNldHRpbmcgdmFsdWVcIilcbn0ifSwgeyJuYW1lIjogIk1lZGlhVHlwZS5FbnN1cmVkICgpIiwgInJldHVybl90eXBlIjogIlZFQ1RPUjxNZWRpYVR5cGU+IiwgInJldHVybl9kZXNjIjogIlJldHVybnMgYSB2ZWN0b3IgaW5kaWNhdGluZyB0aGUgZGV0ZWN0ZWQgbWVkaWEgdHlwZS4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiTm9uZSIsICJkZXNjcmlwdGlvbiI6ICJEZXRlY3RzIG1lZGlhIHR5cGUuIiwgImV4YW1wbGVfY29kZSI6ICIvLyBFbnN1cmUgdGhlIG1lZGlhIHR5cGUgb2YgdGhlIGNvbnRlbnRcbk1lZGlhVHlwZSBtZWRpYVR5cGUgPSBNZWRpYVR5cGUuRW5zdXJlZCgpXG5cbi8vIEVuc3VyZWQgTWVkaWFUeXBlOiBcbi8vIENvbW1lbnRlZCBvdXQgREVCVUcgc3RhdGVtZW50LiBPcmlnaW5hbCBsaW5lOiBcIkRFQlVHKFwiRW5zdXJlZCBNZWRpYVR5cGU6IFwiICsgbWVkaWFUeXBlKVwiIiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiLy8gRW5zdXJlIHRoZSBtZWRpYSB0eXBlIG9mIHRoZSBjb250ZW50XG5NZWRpYVR5cGUgbWVkaWFUeXBlID0gTWVkaWFUeXBlLkVuc3VyZWQoKVxuXG4vLyBFbnN1cmVkIE1lZGlhVHlwZTogXG4vLyBDb21tZW50ZWQgb3V0IERFQlVHIHN0YXRlbWVudC4gT3JpZ2luYWwgbGluZTogXCJERUJVRyhcIkVuc3VyZWQgTWVkaWFUeXBlOiBcIiArIG1lZGlhVHlwZSlcIiJ9LCB7Im5hbWUiOiAiTWVkaWFUeXBlLkZpbmRNYXRjaCAoVkVDVE9SPE1lZGlhVHlwZT4sIFNUUklORykiLCAicmV0dXJuX3R5cGUiOiAiTlVNQkVSIiwgInJldHVybl9kZXNjIjogIlJldHVybnMgdGhlIHBvc2l0aW9uIG9mIHRoZSBmaXJzdCBlbGVtZW50IHRoYXQgbWF0Y2hlcyB0aGUgZ2l2ZW4gd2lsZGNhcmQgZXhwcmVzc2lvbiAoLTEgaWYgdGhlcmUgaXMgbm8gbWF0Y2gpLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJTVFJJTkc6IHdpbGRjYXJkIGV4cHJlc3Npb24gdG8gc2VhcmNoIGZvci4iLCAiZGVzY3JpcHRpb24iOiAiUmV0dXJucyB0aGUgcG9zaXRpb24gb2YgdGhlIGZpcnN0IGVsZW1lbnQgdGhhdCBtYXRjaGVzIHRoZSBnaXZlbiB3aWxkY2FyZCBleHByZXNzaW9uLiBSZXR1cm5zIC0xIGlmIHRoZXJlIGlzIG5vIG1hdGNoLiIsICJleGFtcGxlX2NvZGUiOiAiLy8gRGVmaW5lIGEgdmVjdG9yIG9mIE1lZGlhVHlwZSBvYmplY3RzXG5WRUNUT1I8TWVkaWFUeXBlPiBtZWRpYVR5cGVzID0gW1wiYXBwbGljYXRpb24vanNvblwiLCBcInRleHQvaHRtbFwiLCBcImltYWdlL3BuZ1wiXVxuXG4vLyBEZWZpbmUgdGhlIG1lZGlhIHR5cGUgc3RyaW5nIHRvIHNlYXJjaCBmb3JcblNUUklORyBtZWRpYVR5cGVUb0ZpbmQgPSBcInRleHQvaHRtbFwiXG5cbi8vIFVzZSBNZWRpYVR5cGUuRmluZE1hdGNoIHRvIGNoZWNrIGlmIHRoZSBtZWRpYSB0eXBlIGV4aXN0cyBpbiB0aGUgdmVjdG9yXG5CT09MRUFOIGlzTWF0Y2ggPSBNZWRpYVR5cGUuRmluZE1hdGNoKG1lZGlhVHlwZXMsIG1lZGlhVHlwZVRvRmluZClcblxuLy8gUHJpbnQgdGhlIHJlc3VsdCB0byB0aGUgY29uc29sZVxuSUYgaXNNYXRjaCBUSEVOIHtcbiAgICAvLyBNZWRpYSB0eXBlIGZvdW5kOiBcIiArIG1lZGlhVHlwZVRvRmluZFxufSBFTFNFIHtcbiAgICAvLyBNZWRpYSB0eXBlIG5vdCBmb3VuZDogXCIgKyBtZWRpYVR5cGVUb0ZpbmRcbn0iLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICIvLyBEZWZpbmUgYSB2ZWN0b3Igb2YgTWVkaWFUeXBlIG9iamVjdHNcblZFQ1RPUjxNZWRpYVR5cGU+IG1lZGlhVHlwZXMgPSBbXCJhcHBsaWNhdGlvbi9qc29uXCIsIFwidGV4dC9odG1sXCIsIFwiaW1hZ2UvcG5nXCJdXG5cbi8vIERlZmluZSB0aGUgbWVkaWEgdHlwZSBzdHJpbmcgdG8gc2VhcmNoIGZvclxuU1RSSU5HIG1lZGlhVHlwZVRvRmluZCA9IFwidGV4dC9odG1sXCJcblxuLy8gVXNlIE1lZGlhVHlwZS5GaW5kTWF0Y2ggdG8gY2hlY2sgaWYgdGhlIG1lZGlhIHR5cGUgZXhpc3RzIGluIHRoZSB2ZWN0b3JcbkJPT0xFQU4gaXNNYXRjaCA9IE1lZGlhVHlwZS5GaW5kTWF0Y2gobWVkaWFUeXBlcywgbWVkaWFUeXBlVG9GaW5kKVxuXG4vLyBQcmludCB0aGUgcmVzdWx0IHRvIHRoZSBjb25zb2xlXG5JRiBpc01hdGNoIFRIRU4ge1xuICAgIC8vIE1lZGlhIHR5cGUgZm91bmQ6IFwiICsgbWVkaWFUeXBlVG9GaW5kXG59IEVMU0Uge1xuICAgIC8vIE1lZGlhIHR5cGUgbm90IGZvdW5kOiBcIiArIG1lZGlhVHlwZVRvRmluZFxufSJ9LCB7Im5hbWUiOiAiTWVkaWFUeXBlLkZyb21FeHRlbnNpb24gKCkiLCAicmV0dXJuX3R5cGUiOiAiVkVDVE9SPE1lZGlhVHlwZT4iLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyBhIHZlY3RvciBjb250YWluaW5nIHRoZSBtZWRpYSB0eXBlcyBhc3NvY2lhdGVkIHdpdGggdGhlIGdpdmVuIGZpbGUgbmFtZSBleHRlbnNpb24uIiwgInBhcmFtZXRlcl9kZXNjIjogIk5vbmUiLCAiZGVzY3JpcHRpb24iOiAiRGV0ZXJtaW5lcyBtZWRpYSB0eXBlIGJhc2VkIG9uIGZpbGUgbmFtZSBleHRlbnNpb24uIiwgImV4YW1wbGVfY29kZSI6ICJTVFJJTkcgbWVkaWFUeXBlID0gXCJhcHBsaWNhdGlvbi9qc29uXCJcbk1lZGlhVHlwZSBub3JtYWxpemVkTWVkaWFUeXBlID0gTWVkaWFUeXBlLk5vcm1hbGl6ZWROYW1lKG1lZGlhVHlwZSlcbi8vIE5vcm1hbGl6ZWQgTWVkaWEgVHlwZTogKyBub3JtYWxpemVkTWVkaWFUeXBlIiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiU1RSSU5HIG1lZGlhVHlwZSA9IFwiYXBwbGljYXRpb24vanNvblwiXG5NZWRpYVR5cGUgbm9ybWFsaXplZE1lZGlhVHlwZSA9IE1lZGlhVHlwZS5Ob3JtYWxpemVkTmFtZShtZWRpYVR5cGUpXG4vLyBOb3JtYWxpemVkIE1lZGlhIFR5cGU6ICsgbm9ybWFsaXplZE1lZGlhVHlwZSJ9LCB7Im5hbWUiOiAiTWVkaWFUeXBlLkZyb21IZWFkZXIgKCkiLCAicmV0dXJuX3R5cGUiOiAiTWVkaWFUeXBlIiwgInJldHVybl9kZXNjIjogIlJldHVybnMgdGhlIG1lZGlhIHR5cGUgc3BlY2lmaWVkIGluIHRoZSBIVFRQIGhlYWRlci4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiTm9uZSIsICJkZXNjcmlwdGlvbiI6ICJSZXR1cm5zIG1lZGlhIHR5cGUgZ2l2ZW4gaW4gSFRUUCBoZWFkZXIuIiwgImV4YW1wbGVfY29kZSI6ICIvLyBSZXRyaWV2ZSB0aGUgbWVkaWEgdHlwZSBmcm9tIHRoZSBIVFRQIGhlYWRlclxuTWVkaWFUeXBlIG1lZGlhVHlwZSA9IE1lZGlhVHlwZS5Gcm9tSGVhZGVyKClcblxuLy8gTWVkaWEgVHlwZSBmcm9tIEhlYWRlcjogXG4vLyBtZWRpYVR5cGVcblxuLy8gRXhhbXBsZSBjb25kaXRpb24gdG8gYmxvY2sgY2VydGFpbiBtZWRpYSB0eXBlc1xuSUYgbWVkaWFUeXBlID09IFwiYXBwbGljYXRpb24vanNvblwiIFRIRU4ge1xuICAgIE1XRy5CbG9jayhcIkJsb2NraW5nIEpTT04gY29udGVudFwiKVxufSBFTFNFIHtcbiAgICBNV0cuQWxsb3coXCJBbGxvd2VkIGNvbnRlbnRcIilcbn0iLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICIvLyBSZXRyaWV2ZSB0aGUgbWVkaWEgdHlwZSBmcm9tIHRoZSBIVFRQIGhlYWRlclxuTWVkaWFUeXBlIG1lZGlhVHlwZSA9IE1lZGlhVHlwZS5Gcm9tSGVhZGVyKClcblxuLy8gTWVkaWEgVHlwZSBmcm9tIEhlYWRlcjogXG4vLyBtZWRpYVR5cGVcblxuLy8gRXhhbXBsZSBjb25kaXRpb24gdG8gYmxvY2sgY2VydGFpbiBtZWRpYSB0eXBlc1xuSUYgbWVkaWFUeXBlID09IFwiYXBwbGljYXRpb24vanNvblwiIFRIRU4ge1xuICAgIE1XRy5CbG9jayhcIkJsb2NraW5nIEpTT04gY29udGVudFwiKVxufSBFTFNFIHtcbiAgICBNV0cuQWxsb3coXCJBbGxvd2VkIGNvbnRlbnRcIilcbn0ifSwgeyJuYW1lIjogIk1lZGlhVHlwZS5Jc0FyY2hpdmUgKCkiLCAicmV0dXJuX3R5cGUiOiAiQk9PTEVBTiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zYFRSVUVgaWYgdGhlIG1lZGlhIHR5cGUgaXMgYW4gYXJjaGl2ZSwgb3RoZXJ3aXNlYEZBTFNFYCIsICJwYXJhbWV0ZXJfZGVzYyI6ICJOb25lIiwgImRlc2NyaXB0aW9uIjogIkNoZWNrcyBpZiB0aGUgbWVkaWEgdHlwZSBpcyBhbiBhcmNoaXZlLiIsICJleGFtcGxlX2NvZGUiOiAiTWVkaWFUeXBlIG1lZGlhVHlwZSA9IE1lZGlhVHlwZSgpICAvLyBBc3N1bWUgdGhpcyBnZXRzIHRoZSBtZWRpYSB0eXBlIG9mIHRoZSBjdXJyZW50IHJlc3BvbnNlXG5cbklGIG1lZGlhVHlwZS5Jc0FyY2hpdmUoKSBUSEVOIHtcbiAgICAvLyBUaGUgbWVkaWEgdHlwZSBpcyBhbiBhcmNoaXZlLlxuICAgIC8vIEFkZGl0aW9uYWwgbG9naWMgZm9yIGhhbmRsaW5nIGFyY2hpdmUgZmlsZXMgY2FuIGJlIGFkZGVkIGhlcmVcbn0gRUxTRSB7XG4gICAgLy8gVGhlIG1lZGlhIHR5cGUgaXMgbm90IGFuIGFyY2hpdmUuXG59IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiTWVkaWFUeXBlIG1lZGlhVHlwZSA9IE1lZGlhVHlwZSgpICAvLyBBc3N1bWUgdGhpcyBnZXRzIHRoZSBtZWRpYSB0eXBlIG9mIHRoZSBjdXJyZW50IHJlc3BvbnNlXG5cbklGIG1lZGlhVHlwZS5Jc0FyY2hpdmUoKSBUSEVOIHtcbiAgICAvLyBUaGUgbWVkaWEgdHlwZSBpcyBhbiBhcmNoaXZlLlxuICAgIC8vIEFkZGl0aW9uYWwgbG9naWMgZm9yIGhhbmRsaW5nIGFyY2hpdmUgZmlsZXMgY2FuIGJlIGFkZGVkIGhlcmVcbn0gRUxTRSB7XG4gICAgLy8gVGhlIG1lZGlhIHR5cGUgaXMgbm90IGFuIGFyY2hpdmUuXG59In0sIHsibmFtZSI6ICJNZWRpYVR5cGUuSXNBdWRpbyAoKSIsICJyZXR1cm5fdHlwZSI6ICJCT09MRUFOIiwgInJldHVybl9kZXNjIjogIlJldHVybnNgVFJVRWBpZiB0aGUgbWVkaWEgdHlwZSBpcyBhdWRpby4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiTm9uZSIsICJkZXNjcmlwdGlvbiI6ICJDaGVja3MgaWYgdGhlIG1lZGlhIHR5cGUgaXMgYXVkaW8uIiwgImV4YW1wbGVfY29kZSI6ICJJRiBNZWRpYVR5cGUuSXNBdWRpbygpIFRIRU4ge1xuICAgIC8vIFRoZSBtZWRpYSB0eXBlIGlzIGF1ZGlvLlxuICAgIC8vIEFkZGl0aW9uYWwgYWN0aW9ucyBjYW4gYmUgdGFrZW4gaGVyZSwgc3VjaCBhcyBhbGxvd2luZyBvciBibG9ja2luZyB0aGUgcmVxdWVzdFxuICAgIE1XRy5BbGxvdyhcIkF1ZGlvIG1lZGlhIHR5cGUgZGV0ZWN0ZWRcIilcbn0gRUxTRSB7XG4gICAgLy8gVGhlIG1lZGlhIHR5cGUgaXMgbm90IGF1ZGlvLlxuICAgIC8vIEFkZGl0aW9uYWwgYWN0aW9ucyBjYW4gYmUgdGFrZW4gaGVyZSwgc3VjaCBhcyBhbGxvd2luZyBvciBibG9ja2luZyB0aGUgcmVxdWVzdFxuICAgIE1XRy5CbG9jayhcIk5vbi1hdWRpbyBtZWRpYSB0eXBlIGRldGVjdGVkXCIpXG59IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiSUYgTWVkaWFUeXBlLklzQXVkaW8oKSBUSEVOIHtcbiAgICAvLyBUaGUgbWVkaWEgdHlwZSBpcyBhdWRpby5cbiAgICAvLyBBZGRpdGlvbmFsIGFjdGlvbnMgY2FuIGJlIHRha2VuIGhlcmUsIHN1Y2ggYXMgYWxsb3dpbmcgb3IgYmxvY2tpbmcgdGhlIHJlcXVlc3RcbiAgICBNV0cuQWxsb3coXCJBdWRpbyBtZWRpYSB0eXBlIGRldGVjdGVkXCIpXG59IEVMU0Uge1xuICAgIC8vIFRoZSBtZWRpYSB0eXBlIGlzIG5vdCBhdWRpby5cbiAgICAvLyBBZGRpdGlvbmFsIGFjdGlvbnMgY2FuIGJlIHRha2VuIGhlcmUsIHN1Y2ggYXMgYWxsb3dpbmcgb3IgYmxvY2tpbmcgdGhlIHJlcXVlc3RcbiAgICBNV0cuQmxvY2soXCJOb24tYXVkaW8gbWVkaWEgdHlwZSBkZXRlY3RlZFwiKVxufSJ9LCB7Im5hbWUiOiAiTWVkaWFUeXBlLklzQ29tcG9zaXRlb2JqZWN0ICgpIiwgInJldHVybl90eXBlIjogIkJPT0xFQU4iLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJuc2BUUlVFYGlmIHRoZSBtZWRpYSB0eXBlIGlzIGEgY29tcG9zaXRlIG9iamVjdC4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiTm9uZSIsICJkZXNjcmlwdGlvbiI6ICJDaGVja3MgaWYgdGhlIG1lZGlhIHR5cGUgaXMgYSBjb21wb3NpdGUgb2JqZWN0LiIsICJleGFtcGxlX2NvZGUiOiAiSUYgTWVkaWFUeXBlLklzQ29tcG9zaXRlb2JqZWN0KCkgVEhFTiB7XG4gICAgLy8gVGhlIG1lZGlhIHR5cGUgaXMgYSBjb21wb3NpdGUgb2JqZWN0LlxufSBFTFNFIHtcbiAgICAvLyBUaGUgbWVkaWEgdHlwZSBpcyBub3QgYSBjb21wb3NpdGUgb2JqZWN0LlxufSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIklGIE1lZGlhVHlwZS5Jc0NvbXBvc2l0ZW9iamVjdCgpIFRIRU4ge1xuICAgIC8vIFRoZSBtZWRpYSB0eXBlIGlzIGEgY29tcG9zaXRlIG9iamVjdC5cbn0gRUxTRSB7XG4gICAgLy8gVGhlIG1lZGlhIHR5cGUgaXMgbm90IGEgY29tcG9zaXRlIG9iamVjdC5cbn0ifSwgeyJuYW1lIjogIk1lZGlhVHlwZS5Jc0RhdGFiYXNlICgpIiwgInJldHVybl90eXBlIjogIkJPT0xFQU4iLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJuc2BUUlVFYGlmIHRoZSBtZWRpYSB0eXBlIGlzIGEgZGF0YWJhc2UuIiwgInBhcmFtZXRlcl9kZXNjIjogIk5vbmUiLCAiZGVzY3JpcHRpb24iOiAiQ2hlY2tzIGlmIHRoZSBtZWRpYSB0eXBlIGlzIGEgZGF0YWJhc2UuIiwgImV4YW1wbGVfY29kZSI6ICJJRiBNZWRpYVR5cGUuSXNEYXRhYmFzZSgpIFRIRU4ge1xuICAgIC8vIFRoZSBtZWRpYSB0eXBlIGlzIGEgZGF0YWJhc2UuXG4gICAgTVdHLkJsb2NrKFwiQWNjZXNzIHRvIGRhdGFiYXNlIG1lZGlhIHR5cGVzIGlzIG5vdCBhbGxvd2VkLlwiKVxufSBFTFNFIHtcbiAgICAvLyBUaGUgbWVkaWEgdHlwZSBpcyBub3QgYSBkYXRhYmFzZS5cbiAgICBNV0cuQWxsb3coXCJNZWRpYSB0eXBlIGNoZWNrIHBhc3NlZC5cIilcbn0iLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICJJRiBNZWRpYVR5cGUuSXNEYXRhYmFzZSgpIFRIRU4ge1xuICAgIC8vIFRoZSBtZWRpYSB0eXBlIGlzIGEgZGF0YWJhc2UuXG4gICAgTVdHLkJsb2NrKFwiQWNjZXNzIHRvIGRhdGFiYXNlIG1lZGlhIHR5cGVzIGlzIG5vdCBhbGxvd2VkLlwiKVxufSBFTFNFIHtcbiAgICAvLyBUaGUgbWVkaWEgdHlwZSBpcyBub3QgYSBkYXRhYmFzZS5cbiAgICBNV0cuQWxsb3coXCJNZWRpYSB0eXBlIGNoZWNrIHBhc3NlZC5cIilcbn0ifSwgeyJuYW1lIjogIk1lZGlhVHlwZS5Jc0RvY3VtZW50ICgpIiwgInJldHVybl90eXBlIjogIkJPT0xFQU4iLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJuc2BUUlVFYGlmIHRoZSBtZWRpYSB0eXBlIGlzIGEgZG9jdW1lbnQuIiwgInBhcmFtZXRlcl9kZXNjIjogIk5vbmUiLCAiZGVzY3JpcHRpb24iOiAiQ2hlY2tzIGlmIHRoZSBtZWRpYSB0eXBlIGlzIGEgZG9jdW1lbnQuIiwgImV4YW1wbGVfY29kZSI6ICJJRiBNZWRpYVR5cGUuSXNEb2N1bWVudCgpIFRIRU4ge1xuICAgIC8vIFRoZSBtZWRpYSB0eXBlIGlzIGEgZG9jdW1lbnQuXG4gICAgLy8gQWRkaXRpb25hbCBhY3Rpb25zIGNhbiBiZSB0YWtlbiBoZXJlIGlmIHRoZSBtZWRpYSB0eXBlIGlzIGEgZG9jdW1lbnRcbn0gRUxTRSB7XG4gICAgLy8gVGhlIG1lZGlhIHR5cGUgaXMgbm90IGEgZG9jdW1lbnQuXG4gICAgLy8gQWRkaXRpb25hbCBhY3Rpb25zIGNhbiBiZSB0YWtlbiBoZXJlIGlmIHRoZSBtZWRpYSB0eXBlIGlzIG5vdCBhIGRvY3VtZW50XG59IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiSUYgTWVkaWFUeXBlLklzRG9jdW1lbnQoKSBUSEVOIHtcbiAgICAvLyBUaGUgbWVkaWEgdHlwZSBpcyBhIGRvY3VtZW50LlxuICAgIC8vIEFkZGl0aW9uYWwgYWN0aW9ucyBjYW4gYmUgdGFrZW4gaGVyZSBpZiB0aGUgbWVkaWEgdHlwZSBpcyBhIGRvY3VtZW50XG59IEVMU0Uge1xuICAgIC8vIFRoZSBtZWRpYSB0eXBlIGlzIG5vdCBhIGRvY3VtZW50LlxuICAgIC8vIEFkZGl0aW9uYWwgYWN0aW9ucyBjYW4gYmUgdGFrZW4gaGVyZSBpZiB0aGUgbWVkaWEgdHlwZSBpcyBub3QgYSBkb2N1bWVudFxufSJ9LCB7Im5hbWUiOiAiTWVkaWFUeXBlLklzRXhlY3V0YWJsZSAoKSIsICJyZXR1cm5fdHlwZSI6ICJCT09MRUFOIiwgInJldHVybl9kZXNjIjogIlJldHVybnNgVFJVRWBpZiB0aGUgbWVkaWEgdHlwZSBpcyBleGVjdXRhYmxlLGBGQUxTRWBvdGhlcndpc2UuIiwgInBhcmFtZXRlcl9kZXNjIjogIk5vbmUiLCAiZGVzY3JpcHRpb24iOiAiQ2hlY2tzIGlmIHRoZSBtZWRpYSB0eXBlIGlzIGV4ZWN1dGFibGUuIiwgImV4YW1wbGVfY29kZSI6ICJJRiBNZWRpYVR5cGUuSXNFeGVjdXRhYmxlKCkgVEhFTiB7XG4gICAgLy8gRXhlY3V0YWJsZSBmaWxlcyBhcmUgbm90IGFsbG93ZWQuXG4gICAgTVdHLkJsb2NrKFwiRXhlY3V0YWJsZSBmaWxlcyBhcmUgbm90IGFsbG93ZWQuXCIpXG59IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiSUYgTWVkaWFUeXBlLklzRXhlY3V0YWJsZSgpIFRIRU4ge1xuICAgIC8vIEV4ZWN1dGFibGUgZmlsZXMgYXJlIG5vdCBhbGxvd2VkLlxuICAgIE1XRy5CbG9jayhcIkV4ZWN1dGFibGUgZmlsZXMgYXJlIG5vdCBhbGxvd2VkLlwiKVxufSJ9LCB7Im5hbWUiOiAiTWVkaWFUeXBlLklzSW1hZ2UgKCkiLCAicmV0dXJuX3R5cGUiOiAiQk9PTEVBTiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zYFRSVUVgaWYgdGhlIG1lZGlhIHR5cGUgaXMgYW4gaW1hZ2UuIiwgInBhcmFtZXRlcl9kZXNjIjogIk5vbmUiLCAiZGVzY3JpcHRpb24iOiAiQ2hlY2tzIGlmIHRoZSBtZWRpYSB0eXBlIGlzIGFuIGltYWdlLiIsICJleGFtcGxlX2NvZGUiOiAiSUYgTWVkaWFUeXBlLklzSW1hZ2UoKSBUSEVOIHtcbiAgICAvLyBUaGUgbWVkaWEgdHlwZSBpcyBhbiBpbWFnZS5cbiAgICAvLyBBZGRpdGlvbmFsIGFjdGlvbnMgY2FuIGJlIHRha2VuIGhlcmUgaWYgdGhlIG1lZGlhIHR5cGUgaXMgYW4gaW1hZ2Vcbn0gRUxTRSB7XG4gICAgLy8gVGhlIG1lZGlhIHR5cGUgaXMgbm90IGFuIGltYWdlLlxuICAgIC8vIEFkZGl0aW9uYWwgYWN0aW9ucyBjYW4gYmUgdGFrZW4gaGVyZSBpZiB0aGUgbWVkaWEgdHlwZSBpcyBub3QgYW4gaW1hZ2Vcbn0iLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICJJRiBNZWRpYVR5cGUuSXNJbWFnZSgpIFRIRU4ge1xuICAgIC8vIFRoZSBtZWRpYSB0eXBlIGlzIGFuIGltYWdlLlxuICAgIC8vIEFkZGl0aW9uYWwgYWN0aW9ucyBjYW4gYmUgdGFrZW4gaGVyZSBpZiB0aGUgbWVkaWEgdHlwZSBpcyBhbiBpbWFnZVxufSBFTFNFIHtcbiAgICAvLyBUaGUgbWVkaWEgdHlwZSBpcyBub3QgYW4gaW1hZ2UuXG4gICAgLy8gQWRkaXRpb25hbCBhY3Rpb25zIGNhbiBiZSB0YWtlbiBoZXJlIGlmIHRoZSBtZWRpYSB0eXBlIGlzIG5vdCBhbiBpbWFnZVxufSJ9LCB7Im5hbWUiOiAiTWVkaWFUeXBlLklzTWFnaWNCeXRlc01pc21hdGNoICgpIiwgInJldHVybl90eXBlIjogIkJPT0xFQU4iLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyB0cnVlIGlmIHRoZSBtZWRpYSB0eXBlIG1hZ2ljIGJ5dGVzIGRvIG5vdCBtYXRjaCB0aGUgaGVhZGVyLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJOb25lIiwgImRlc2NyaXB0aW9uIjogIkNoZWNrcyBtZWRpYSB0eXBlIG1hZ2ljIGJ5dGVzIG1pc21hdGNoZXMgd2l0aCBoZWFkZXIuIiwgImV4YW1wbGVfY29kZSI6ICJJRiBNZWRpYVR5cGUuSXNNYWdpY0J5dGVzTWlzbWF0Y2goKSBUSEVOIHtcbiAgICAvLyBNYWdpYyBieXRlcyBtaXNtYXRjaCBkZXRlY3RlZC5cbiAgICBNV0cuQmxvY2soXCJNYWdpYyBieXRlcyBtaXNtYXRjaCBkZXRlY3RlZCBpbiB0aGUgZmlsZS5cIilcbn0gRUxTRSB7XG4gICAgLy8gTm8gbWFnaWMgYnl0ZXMgbWlzbWF0Y2ggZGV0ZWN0ZWQuXG4gICAgTVdHLkFsbG93KFwiTm8gbWFnaWMgYnl0ZXMgbWlzbWF0Y2ggZGV0ZWN0ZWQuXCIpXG59IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiSUYgTWVkaWFUeXBlLklzTWFnaWNCeXRlc01pc21hdGNoKCkgVEhFTiB7XG4gICAgLy8gTWFnaWMgYnl0ZXMgbWlzbWF0Y2ggZGV0ZWN0ZWQuXG4gICAgTVdHLkJsb2NrKFwiTWFnaWMgYnl0ZXMgbWlzbWF0Y2ggZGV0ZWN0ZWQgaW4gdGhlIGZpbGUuXCIpXG59IEVMU0Uge1xuICAgIC8vIE5vIG1hZ2ljIGJ5dGVzIG1pc21hdGNoIGRldGVjdGVkLlxuICAgIE1XRy5BbGxvdyhcIk5vIG1hZ2ljIGJ5dGVzIG1pc21hdGNoIGRldGVjdGVkLlwiKVxufSJ9LCB7Im5hbWUiOiAiTWVkaWFUeXBlLklzVGV4dCAoKSIsICJyZXR1cm5fdHlwZSI6ICJCT09MRUFOIiwgInJldHVybl9kZXNjIjogIlJldHVybnNgVFJVRWBpZiB0aGUgbWVkaWEgdHlwZSBpcyB0ZXh0LiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJOb25lIiwgImRlc2NyaXB0aW9uIjogIkNoZWNrcyBpZiB0aGUgbWVkaWEgdHlwZSBpcyB0ZXh0LiIsICJleGFtcGxlX2NvZGUiOiAiSUYgTWVkaWFUeXBlLklzVGV4dCgpIFRIRU4ge1xuICAgIC8vIFRoZSBtZWRpYSB0eXBlIGlzIHRleHQuXG4gICAgLy8gQWRkaXRpb25hbCBhY3Rpb25zIGNhbiBiZSB0YWtlbiBoZXJlIGlmIHRoZSBtZWRpYSB0eXBlIGlzIHRleHRcbn0gRUxTRSB7XG4gICAgLy8gVGhlIG1lZGlhIHR5cGUgaXMgbm90IHRleHQuXG4gICAgLy8gQWRkaXRpb25hbCBhY3Rpb25zIGNhbiBiZSB0YWtlbiBoZXJlIGlmIHRoZSBtZWRpYSB0eXBlIGlzIG5vdCB0ZXh0XG59IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiSUYgTWVkaWFUeXBlLklzVGV4dCgpIFRIRU4ge1xuICAgIC8vIFRoZSBtZWRpYSB0eXBlIGlzIHRleHQuXG4gICAgLy8gQWRkaXRpb25hbCBhY3Rpb25zIGNhbiBiZSB0YWtlbiBoZXJlIGlmIHRoZSBtZWRpYSB0eXBlIGlzIHRleHRcbn0gRUxTRSB7XG4gICAgLy8gVGhlIG1lZGlhIHR5cGUgaXMgbm90IHRleHQuXG4gICAgLy8gQWRkaXRpb25hbCBhY3Rpb25zIGNhbiBiZSB0YWtlbiBoZXJlIGlmIHRoZSBtZWRpYSB0eXBlIGlzIG5vdCB0ZXh0XG59In0sIHsibmFtZSI6ICJNZWRpYVR5cGUuSXNWaWRlbyAoKSIsICJyZXR1cm5fdHlwZSI6ICJCT09MRUFOIiwgInJldHVybl9kZXNjIjogIlJldHVybnNgVFJVRWBpZiB0aGUgbWVkaWEgdHlwZSBpcyB2aWRlby4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiTm9uZSIsICJkZXNjcmlwdGlvbiI6ICJDaGVja3MgaWYgdGhlIG1lZGlhIHR5cGUgaXMgdmlkZW8uIiwgImV4YW1wbGVfY29kZSI6ICJJRiBNZWRpYVR5cGUuSXNWaWRlbygpIFRIRU4ge1xuICAgIC8vIFRoZSBtZWRpYSB0eXBlIGlzIGEgdmlkZW8uXG4gICAgLy8gQWRkaXRpb25hbCBhY3Rpb25zIGNhbiBiZSB0YWtlbiBoZXJlLCBzdWNoIGFzIGJsb2NraW5nIG9yIGFsbG93aW5nIHRoZSByZXF1ZXN0XG4gICAgTVdHLkFsbG93KFwiVmlkZW8gY29udGVudCBhbGxvd2VkXCIpXG59IEVMU0Uge1xuICAgIC8vIFRoZSBtZWRpYSB0eXBlIGlzIG5vdCBhIHZpZGVvLlxuICAgIC8vIEFjdGlvbnMgZm9yIG5vbi12aWRlbyBjb250ZW50XG4gICAgTVdHLkJsb2NrKFwiTm9uLXZpZGVvIGNvbnRlbnQgYmxvY2tlZFwiKVxufSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIklGIE1lZGlhVHlwZS5Jc1ZpZGVvKCkgVEhFTiB7XG4gICAgLy8gVGhlIG1lZGlhIHR5cGUgaXMgYSB2aWRlby5cbiAgICAvLyBBZGRpdGlvbmFsIGFjdGlvbnMgY2FuIGJlIHRha2VuIGhlcmUsIHN1Y2ggYXMgYmxvY2tpbmcgb3IgYWxsb3dpbmcgdGhlIHJlcXVlc3RcbiAgICBNV0cuQWxsb3coXCJWaWRlbyBjb250ZW50IGFsbG93ZWRcIilcbn0gRUxTRSB7XG4gICAgLy8gVGhlIG1lZGlhIHR5cGUgaXMgbm90IGEgdmlkZW8uXG4gICAgLy8gQWN0aW9ucyBmb3Igbm9uLXZpZGVvIGNvbnRlbnRcbiAgICBNV0cuQmxvY2soXCJOb24tdmlkZW8gY29udGVudCBibG9ja2VkXCIpXG59In0sIHsibmFtZSI6ICJNZWRpYVR5cGUuTm9ybWFsaXplZE5hbWUgKFNUUklORykiLCAicmV0dXJuX3R5cGUiOiAiTWVkaWFUeXBlIiwgInJldHVybl9kZXNjIjogIlJldHVybnMgbm9ybWFsaXplZCBuYW1lIGZvciB0aGUgaW5wdXQgbWltZSB0eXBlLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJTVFJJTkc6IHRoZSBtZWRpYSB0eXBlLiIsICJkZXNjcmlwdGlvbiI6ICJSZXR1cm5zIG5vcm1hbGl6ZWQgbmFtZSBmb3IgdGhlIGlucHV0IG1pbWUgdHlwZS4iLCAiZXhhbXBsZV9jb2RlIjogIlNUUklORyBtZWRpYVR5cGVTdHJpbmcgPSBcImFwcGxpY2F0aW9uL2pzb25cIlxuU1RSSU5HIG5vcm1hbGl6ZWRNZWRpYVR5cGUgPSBNZWRpYVR5cGUuTm9ybWFsaXplZE5hbWUobWVkaWFUeXBlU3RyaW5nKVxuXG4vLyBPcmlnaW5hbCBNZWRpYSBUeXBlOiBhcHBsaWNhdGlvbi9qc29uXG4vLyBOb3JtYWxpemVkIE1lZGlhIFR5cGU6IG5vcm1hbGl6ZWRNZWRpYVR5cGUiLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICJTVFJJTkcgbWVkaWFUeXBlU3RyaW5nID0gXCJhcHBsaWNhdGlvbi9qc29uXCJcblNUUklORyBub3JtYWxpemVkTWVkaWFUeXBlID0gTWVkaWFUeXBlLk5vcm1hbGl6ZWROYW1lKG1lZGlhVHlwZVN0cmluZylcblxuLy8gT3JpZ2luYWwgTWVkaWEgVHlwZTogYXBwbGljYXRpb24vanNvblxuLy8gTm9ybWFsaXplZCBNZWRpYSBUeXBlOiBub3JtYWxpemVkTWVkaWFUeXBlIn0sIHsibmFtZSI6ICJNZWRpYVR5cGUuTm90RW5zdXJlZCAoKSIsICJyZXR1cm5fdHlwZSI6ICJWRUNUT1I8TWVkaWFUeXBlPiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIG1pbWUgdHlwZXMgZGV0ZWN0ZWQgYnkgc2lnbmF0dXJlcyB3aXRoIGxvdyBwcm9iYWJpbGl0eSBvZiBkZXRlY3Rpb24uIiwgInBhcmFtZXRlcl9kZXNjIjogIk5vbmUiLCAiZGVzY3JpcHRpb24iOiAiR2V0cyBtaW1lIHR5cGVzIGRldGVjdGVkIGJ5IHNpZ25hdHVyZXMgd2l0aCBsb3cgcHJvYmFiaWxpdHkgb2YgZGV0ZWN0aW9uLiIsICJleGFtcGxlX2NvZGUiOiAiVkVDVE9SPE1lZGlhVHlwZT4gbG93UHJvYmFiaWxpdHlNZWRpYVR5cGVzID0gTWVkaWFUeXBlLk5vdEVuc3VyZWQoKVxuXG5JRiBsb3dQcm9iYWJpbGl0eU1lZGlhVHlwZXMgIT0gTlVMTCBUSEVOIHtcbiAgICAvLyBMb3cgcHJvYmFiaWxpdHkgbWVkaWEgdHlwZXMgZGV0ZWN0ZWQ6XG4gICAgRk9SIEVBQ0ggbWVkaWFUeXBlIElOIGxvd1Byb2JhYmlsaXR5TWVkaWFUeXBlcyB7XG4gICAgICAgIC8vIG1lZGlhVHlwZVxuICAgIH1cbn0gRUxTRSB7XG4gICAgLy8gTm8gbG93IHByb2JhYmlsaXR5IG1lZGlhIHR5cGVzIGRldGVjdGVkLlxufSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIlZFQ1RPUjxNZWRpYVR5cGU+IGxvd1Byb2JhYmlsaXR5TWVkaWFUeXBlcyA9IE1lZGlhVHlwZS5Ob3RFbnN1cmVkKClcblxuSUYgbG93UHJvYmFiaWxpdHlNZWRpYVR5cGVzICE9IE5VTEwgVEhFTiB7XG4gICAgLy8gTG93IHByb2JhYmlsaXR5IG1lZGlhIHR5cGVzIGRldGVjdGVkOlxuICAgIEZPUiBFQUNIIG1lZGlhVHlwZSBJTiBsb3dQcm9iYWJpbGl0eU1lZGlhVHlwZXMge1xuICAgICAgICAvLyBtZWRpYVR5cGVcbiAgICB9XG59IEVMU0Uge1xuICAgIC8vIE5vIGxvdyBwcm9iYWJpbGl0eSBtZWRpYSB0eXBlcyBkZXRlY3RlZC5cbn0ifSwgeyJuYW1lIjogIk1XRy5BZGQgKE1XRy5JbnRlcm5hbFBhcmFtZXRlckxpc3QsIEJPT0xFQU4pIiwgInJldHVybl90eXBlIjogIk1XRy5JbnRlcm5hbFBhcmFtZXRlckxpc3QiLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyB0aGUgdXBkYXRlZGBNV0cuSW50ZXJuYWxQYXJhbWV0ZXJMaXN0YCIsICJwYXJhbWV0ZXJfZGVzYyI6ICJNV0cuSW50ZXJuYWxQYXJhbWV0ZXJMaXN0OiBsaXN0IHRvIGJlIGFkZGVkIHRvOyBCT09MRUFOOiB2YWx1ZSB0byBhZGQuIiwgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBCT09MRUFOIHZhbHVlIHRvIGFuIE1XRy5JbnRlcm5hbFBhcmFtZXRlckxpc3QuIiwgImV4YW1wbGVfY29kZSI6ICIvLyBJbml0aWFsaXplIGFuIGVtcHR5IE1XRy5JbnRlcm5hbFBhcmFtZXRlckxpc3Rcbk1XRy5JbnRlcm5hbFBhcmFtZXRlckxpc3QgcGFyYW1MaXN0ID0gTVdHLkludGVybmFsUGFyYW1ldGVyTGlzdCgpXG5cbi8vIEFkZCBhIEJPT0xFQU4gdmFsdWUgdG8gdGhlIHBhcmFtZXRlciBsaXN0XG5wYXJhbUxpc3QgPSBNV0cuQWRkKHBhcmFtTGlzdCwgVFJVRSlcblxuLy8gQWRkIGFub3RoZXIgQk9PTEVBTiB2YWx1ZSB0byB0aGUgcGFyYW1ldGVyIGxpc3RcbnBhcmFtTGlzdCA9IE1XRy5BZGQocGFyYW1MaXN0LCBGQUxTRSlcblxuLy8gUGFyYW1ldGVyIExpc3Q6IFwiICsgcGFyYW1MaXN0IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiLy8gSW5pdGlhbGl6ZSBhbiBlbXB0eSBNV0cuSW50ZXJuYWxQYXJhbWV0ZXJMaXN0XG5NV0cuSW50ZXJuYWxQYXJhbWV0ZXJMaXN0IHBhcmFtTGlzdCA9IE1XRy5JbnRlcm5hbFBhcmFtZXRlckxpc3QoKVxuXG4vLyBBZGQgYSBCT09MRUFOIHZhbHVlIHRvIHRoZSBwYXJhbWV0ZXIgbGlzdFxucGFyYW1MaXN0ID0gTVdHLkFkZChwYXJhbUxpc3QsIFRSVUUpXG5cbi8vIEFkZCBhbm90aGVyIEJPT0xFQU4gdmFsdWUgdG8gdGhlIHBhcmFtZXRlciBsaXN0XG5wYXJhbUxpc3QgPSBNV0cuQWRkKHBhcmFtTGlzdCwgRkFMU0UpXG5cbi8vIFBhcmFtZXRlciBMaXN0OiBcIiArIHBhcmFtTGlzdCJ9LCB7Im5hbWUiOiAiTVdHLkFkZCAoTVdHLkludGVybmFsUGFyYW1ldGVyTGlzdCwgSlNPTikiLCAicmV0dXJuX3R5cGUiOiAiTVdHLkludGVybmFsUGFyYW1ldGVyTGlzdCIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIHRoZSB1cGRhdGVkYE1XRy5JbnRlcm5hbFBhcmFtZXRlckxpc3RgIiwgInBhcmFtZXRlcl9kZXNjIjogIk1XRy5JbnRlcm5hbFBhcmFtZXRlckxpc3Q6IGxpc3QgdG8gYmUgYWRkZWQgdG87IEpTT046IHZhbHVlIHRvIGFkZC4iLCAiZGVzY3JpcHRpb24iOiAiQWRkcyBhIEpTT04gdmFsdWUgdG8gYW4gTVdHLkludGVybmFsUGFyYW1ldGVyTGlzdC4iLCAiZXhhbXBsZV9jb2RlIjogIi8vIEluaXRpYWxpemUgYW4gSW50ZXJuYWxQYXJhbWV0ZXJMaXN0XG5NV0cuSW50ZXJuYWxQYXJhbWV0ZXJMaXN0IHBhcmFtTGlzdCA9IE1XRy5JbnRlcm5hbFBhcmFtZXRlckxpc3QoKVxuXG4vLyBDcmVhdGUgYSBKU09OIG9iamVjdFxuSlNPTiBqc29uT2JqZWN0ID0gSlNPTigpXG5qc29uT2JqZWN0W1wia2V5MVwiXSA9IFwidmFsdWUxXCJcbmpzb25PYmplY3RbXCJrZXkyXCJdID0gXCJ2YWx1ZTJcIlxuXG4vLyBBZGQgdGhlIEpTT04gb2JqZWN0IHRvIHRoZSBJbnRlcm5hbFBhcmFtZXRlckxpc3RcbnBhcmFtTGlzdCA9IE1XRy5BZGQocGFyYW1MaXN0LCBqc29uT2JqZWN0KVxuXG4vLyBJbnRlcm5hbFBhcmFtZXRlckxpc3QgYWZ0ZXIgYWRkaXRpb246IFxuLy8gcGFyYW1MaXN0IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiLy8gSW5pdGlhbGl6ZSBhbiBJbnRlcm5hbFBhcmFtZXRlckxpc3Rcbk1XRy5JbnRlcm5hbFBhcmFtZXRlckxpc3QgcGFyYW1MaXN0ID0gTVdHLkludGVybmFsUGFyYW1ldGVyTGlzdCgpXG5cbi8vIENyZWF0ZSBhIEpTT04gb2JqZWN0XG5KU09OIGpzb25PYmplY3QgPSBKU09OKClcbmpzb25PYmplY3RbXCJrZXkxXCJdID0gXCJ2YWx1ZTFcIlxuanNvbk9iamVjdFtcImtleTJcIl0gPSBcInZhbHVlMlwiXG5cbi8vIEFkZCB0aGUgSlNPTiBvYmplY3QgdG8gdGhlIEludGVybmFsUGFyYW1ldGVyTGlzdFxucGFyYW1MaXN0ID0gTVdHLkFkZChwYXJhbUxpc3QsIGpzb25PYmplY3QpXG5cbi8vIEludGVybmFsUGFyYW1ldGVyTGlzdCBhZnRlciBhZGRpdGlvbjogXG4vLyBwYXJhbUxpc3QifSwgeyJuYW1lIjogIk1XRy5BZGQgKE1XRy5JbnRlcm5hbFBhcmFtZXRlckxpc3QsIE1BUDxTVFJJTkcsIE1XRy5JbnRlcm5hbFZhcmlhbnQ+KSIsICJyZXR1cm5fdHlwZSI6ICJNV0cuSW50ZXJuYWxQYXJhbWV0ZXJMaXN0IiwgInJldHVybl9kZXNjIjogIlJldHVybnMgdGhlIHVwZGF0ZWRgTVdHLkludGVybmFsUGFyYW1ldGVyTGlzdGAiLCAicGFyYW1ldGVyX2Rlc2MiOiAiTVdHLkludGVybmFsUGFyYW1ldGVyTGlzdDogbGlzdCB0byBiZSBhZGRlZCB0bzsgTUFQPFNUUklORywgTVdHLkludGVybmFsVmFyaWFudD46IG1hcCB0byBhZGQgdG8gbGlzdC4iLCAiZGVzY3JpcHRpb24iOiAiQWRkcyBhIE1BUCB2YWx1ZSB0byBhbiBNV0cuSW50ZXJuYWxQYXJhbWV0ZXJMaXN0LiIsICJleGFtcGxlX2NvZGUiOiAiLy8gSW5pdGlhbGl6ZSBhbiBlbXB0eSBNV0cuSW50ZXJuYWxQYXJhbWV0ZXJMaXN0XG5NV0cuSW50ZXJuYWxQYXJhbWV0ZXJMaXN0IHBhcmFtTGlzdCA9IE1XRy5JbnRlcm5hbFBhcmFtZXRlckxpc3QoKVxuXG4vLyBDcmVhdGUgYSBNQVA8U1RSSU5HLCBNV0cuSW50ZXJuYWxWYXJpYW50PiB0byBhZGQgdG8gdGhlIGxpc3Rcbk1BUDxTVFJJTkcsIE1XRy5JbnRlcm5hbFZhcmlhbnQ+IHBhcmFtTWFwID0gTUFQPFNUUklORywgTVdHLkludGVybmFsVmFyaWFudD4oKVxucGFyYW1NYXBbXCJrZXkxXCJdID0gTVdHLkludGVybmFsVmFyaWFudChcInZhbHVlMVwiKVxucGFyYW1NYXBbXCJrZXkyXCJdID0gTVdHLkludGVybmFsVmFyaWFudCgxMjM0KVxucGFyYW1NYXBbXCJrZXkzXCJdID0gTVdHLkludGVybmFsVmFyaWFudChUUlVFKVxuXG4vLyBBZGQgdGhlIE1BUCB0byB0aGUgTVdHLkludGVybmFsUGFyYW1ldGVyTGlzdFxucGFyYW1MaXN0ID0gTVdHLkFkZChwYXJhbUxpc3QsIHBhcmFtTWFwKVxuXG4vLyBVcGRhdGVkIHBhcmFtZXRlciBsaXN0OiBwYXJhbUxpc3QiLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICIvLyBJbml0aWFsaXplIGFuIGVtcHR5IE1XRy5JbnRlcm5hbFBhcmFtZXRlckxpc3Rcbk1XRy5JbnRlcm5hbFBhcmFtZXRlckxpc3QgcGFyYW1MaXN0ID0gTVdHLkludGVybmFsUGFyYW1ldGVyTGlzdCgpXG5cbi8vIENyZWF0ZSBhIE1BUDxTVFJJTkcsIE1XRy5JbnRlcm5hbFZhcmlhbnQ+IHRvIGFkZCB0byB0aGUgbGlzdFxuTUFQPFNUUklORywgTVdHLkludGVybmFsVmFyaWFudD4gcGFyYW1NYXAgPSBNQVA8U1RSSU5HLCBNV0cuSW50ZXJuYWxWYXJpYW50PigpXG5wYXJhbU1hcFtcImtleTFcIl0gPSBNV0cuSW50ZXJuYWxWYXJpYW50KFwidmFsdWUxXCIpXG5wYXJhbU1hcFtcImtleTJcIl0gPSBNV0cuSW50ZXJuYWxWYXJpYW50KDEyMzQpXG5wYXJhbU1hcFtcImtleTNcIl0gPSBNV0cuSW50ZXJuYWxWYXJpYW50KFRSVUUpXG5cbi8vIEFkZCB0aGUgTUFQIHRvIHRoZSBNV0cuSW50ZXJuYWxQYXJhbWV0ZXJMaXN0XG5wYXJhbUxpc3QgPSBNV0cuQWRkKHBhcmFtTGlzdCwgcGFyYW1NYXApXG5cbi8vIFVwZGF0ZWQgcGFyYW1ldGVyIGxpc3Q6IHBhcmFtTGlzdCJ9LCB7Im5hbWUiOiAiTVdHLkFkZCAoTVdHLkludGVybmFsUGFyYW1ldGVyTGlzdCwgTVdHLkludGVybmFsVmFyaWFudCkiLCAicmV0dXJuX3R5cGUiOiAiTVdHLkludGVybmFsUGFyYW1ldGVyTGlzdCIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIHRoZSB1cGRhdGVkYE1XRy5JbnRlcm5hbFBhcmFtZXRlckxpc3RgIiwgInBhcmFtZXRlcl9kZXNjIjogIk1XRy5JbnRlcm5hbFBhcmFtZXRlckxpc3Q6IGxpc3QgdG8gYmUgYWRkZWQgdG87IE1XRy5JbnRlcm5hbFZhcmlhbnQ6IHZhbHVlIHRvIGFkZC4iLCAiZGVzY3JpcHRpb24iOiAiQWRkcyBhbiBNV0cuSW50ZXJuYWxWYXJpYW50IHZhbHVlIHRvIGFuIE1XRy5JbnRlcm5hbFBhcmFtZXRlckxpc3QuIiwgImV4YW1wbGVfY29kZSI6ICIvLyBJbml0aWFsaXplIGFuIGVtcHR5IE1XRy5JbnRlcm5hbFBhcmFtZXRlckxpc3Rcbk1XRy5JbnRlcm5hbFBhcmFtZXRlckxpc3QgcGFyYW1MaXN0ID0gTVdHLkludGVybmFsUGFyYW1ldGVyTGlzdCgpXG5cbi8vIENyZWF0ZSBhbiBNV0cuSW50ZXJuYWxWYXJpYW50IHZhbHVlXG5NV0cuSW50ZXJuYWxWYXJpYW50IHZhcmlhbnRWYWx1ZSA9IE1XRy5JbnRlcm5hbFZhcmlhbnQoXCJleGFtcGxlVmFsdWVcIilcblxuLy8gQWRkIHRoZSBNV0cuSW50ZXJuYWxWYXJpYW50IHZhbHVlIHRvIHRoZSBNV0cuSW50ZXJuYWxQYXJhbWV0ZXJMaXN0XG5wYXJhbUxpc3QgPSBNV0cuQWRkKHBhcmFtTGlzdCwgdmFyaWFudFZhbHVlKVxuXG4vLyBVcGRhdGVkIHBhcmFtZXRlciBsaXN0OiBcIiArIHBhcmFtTGlzdCIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIi8vIEluaXRpYWxpemUgYW4gZW1wdHkgTVdHLkludGVybmFsUGFyYW1ldGVyTGlzdFxuTVdHLkludGVybmFsUGFyYW1ldGVyTGlzdCBwYXJhbUxpc3QgPSBNV0cuSW50ZXJuYWxQYXJhbWV0ZXJMaXN0KClcblxuLy8gQ3JlYXRlIGFuIE1XRy5JbnRlcm5hbFZhcmlhbnQgdmFsdWVcbk1XRy5JbnRlcm5hbFZhcmlhbnQgdmFyaWFudFZhbHVlID0gTVdHLkludGVybmFsVmFyaWFudChcImV4YW1wbGVWYWx1ZVwiKVxuXG4vLyBBZGQgdGhlIE1XRy5JbnRlcm5hbFZhcmlhbnQgdmFsdWUgdG8gdGhlIE1XRy5JbnRlcm5hbFBhcmFtZXRlckxpc3RcbnBhcmFtTGlzdCA9IE1XRy5BZGQocGFyYW1MaXN0LCB2YXJpYW50VmFsdWUpXG5cbi8vIFVwZGF0ZWQgcGFyYW1ldGVyIGxpc3Q6IFwiICsgcGFyYW1MaXN0In0sIHsibmFtZSI6ICJNV0cuQWRkIChNV0cuSW50ZXJuYWxQYXJhbWV0ZXJMaXN0LCBOZXQuSVApIiwgInJldHVybl90eXBlIjogIk1XRy5JbnRlcm5hbFBhcmFtZXRlckxpc3QiLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyB0aGUgdXBkYXRlZGBNV0cuSW50ZXJuYWxQYXJhbWV0ZXJMaXN0YCIsICJwYXJhbWV0ZXJfZGVzYyI6ICJNV0cuSW50ZXJuYWxQYXJhbWV0ZXJMaXN0OiBsaXN0IHRvIGJlIGFkZGVkIHRvOyBOZXQuSVA6IHZhbHVlIHRvIGFkZC4iLCAiZGVzY3JpcHRpb24iOiAiQWRkcyBhIE5ldC5JUCB2YWx1ZSB0byBhbiBNV0cuSW50ZXJuYWxQYXJhbWV0ZXJMaXN0LiIsICJleGFtcGxlX2NvZGUiOiAiLy8gQ3JlYXRlIGFuIEludGVybmFsUGFyYW1ldGVyTGlzdFxuTVdHLkludGVybmFsUGFyYW1ldGVyTGlzdCBwYXJhbUxpc3QgPSBNV0cuSW50ZXJuYWxQYXJhbWV0ZXJMaXN0KClcblxuLy8gQ3JlYXRlIGEgTmV0LklQIG9iamVjdFxuTmV0LklQIGlwQWRkcmVzcyA9IE5ldC5JUChcIjE5Mi4xNjguMS4xXCIpXG5cbi8vIEFkZCB0aGUgSVAgYWRkcmVzcyB0byB0aGUgSW50ZXJuYWxQYXJhbWV0ZXJMaXN0XG5wYXJhbUxpc3QgPSBNV0cuQWRkKHBhcmFtTGlzdCwgaXBBZGRyZXNzKVxuXG4vLyBJUCBBZGRyZXNzIGFkZGVkIHRvIEludGVybmFsUGFyYW1ldGVyTGlzdDogXCIgKyBpcEFkZHJlc3MiLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICIvLyBDcmVhdGUgYW4gSW50ZXJuYWxQYXJhbWV0ZXJMaXN0XG5NV0cuSW50ZXJuYWxQYXJhbWV0ZXJMaXN0IHBhcmFtTGlzdCA9IE1XRy5JbnRlcm5hbFBhcmFtZXRlckxpc3QoKVxuXG4vLyBDcmVhdGUgYSBOZXQuSVAgb2JqZWN0XG5OZXQuSVAgaXBBZGRyZXNzID0gTmV0LklQKFwiMTkyLjE2OC4xLjFcIilcblxuLy8gQWRkIHRoZSBJUCBhZGRyZXNzIHRvIHRoZSBJbnRlcm5hbFBhcmFtZXRlckxpc3RcbnBhcmFtTGlzdCA9IE1XRy5BZGQocGFyYW1MaXN0LCBpcEFkZHJlc3MpXG5cbi8vIElQIEFkZHJlc3MgYWRkZWQgdG8gSW50ZXJuYWxQYXJhbWV0ZXJMaXN0OiBcIiArIGlwQWRkcmVzcyJ9LCB7Im5hbWUiOiAiTVdHLkFkZCAoTVdHLkludGVybmFsUGFyYW1ldGVyTGlzdCwgTlVNQkVSKSIsICJyZXR1cm5fdHlwZSI6ICJNV0cuSW50ZXJuYWxQYXJhbWV0ZXJMaXN0IiwgInJldHVybl9kZXNjIjogIlJldHVybnMgdGhlIHVwZGF0ZWRgTVdHLkludGVybmFsUGFyYW1ldGVyTGlzdGAiLCAicGFyYW1ldGVyX2Rlc2MiOiAiTVdHLkludGVybmFsUGFyYW1ldGVyTGlzdDogbGlzdCB0byBiZSBhZGRlZCB0bzsgTlVNQkVSOiB2YWx1ZSB0byBhZGQuIiwgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBudW1iZXIgdmFsdWUgdG8gYW4gTVdHLkludGVybmFsUGFyYW1ldGVyTGlzdC4iLCAiZXhhbXBsZV9jb2RlIjogIk1XRy5JbnRlcm5hbFBhcmFtZXRlckxpc3QgcGFyYW1MaXN0ID0gTVdHLkludGVybmFsUGFyYW1ldGVyTGlzdCgpXG5OVU1CRVIgdmFsdWVUb0FkZCA9IDQyXG5cbnBhcmFtTGlzdCA9IE1XRy5BZGQocGFyYW1MaXN0LCB2YWx1ZVRvQWRkKVxuXG4vLyBVcGRhdGVkIHBhcmFtZXRlciBsaXN0OiBcbi8vICsgcGFyYW1MaXN0IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiTVdHLkludGVybmFsUGFyYW1ldGVyTGlzdCBwYXJhbUxpc3QgPSBNV0cuSW50ZXJuYWxQYXJhbWV0ZXJMaXN0KClcbk5VTUJFUiB2YWx1ZVRvQWRkID0gNDJcblxucGFyYW1MaXN0ID0gTVdHLkFkZChwYXJhbUxpc3QsIHZhbHVlVG9BZGQpXG5cbi8vIFVwZGF0ZWQgcGFyYW1ldGVyIGxpc3Q6IFxuLy8gKyBwYXJhbUxpc3QifSwgeyJuYW1lIjogIk1XRy5BZGQgKE1XRy5JbnRlcm5hbFBhcmFtZXRlckxpc3QsIFNUUklORykiLCAicmV0dXJuX3R5cGUiOiAiTVdHLkludGVybmFsUGFyYW1ldGVyTGlzdCIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIHRoZSB1cGRhdGVkYE1XRy5JbnRlcm5hbFBhcmFtZXRlckxpc3RgIiwgInBhcmFtZXRlcl9kZXNjIjogIk1XRy5JbnRlcm5hbFBhcmFtZXRlckxpc3Q6IGxpc3QgdG8gYmUgYWRkZWQgdG87IFNUUklORzogdmFsdWUgdG8gYWRkLiIsICJkZXNjcmlwdGlvbiI6ICJBZGRzIGEgc3RyaW5nIHZhbHVlIHRvIGFuIE1XRy5JbnRlcm5hbFBhcmFtZXRlckxpc3QuIiwgImV4YW1wbGVfY29kZSI6ICIvLyBJbml0aWFsaXplIGFuIGVtcHR5IE1XRy5JbnRlcm5hbFBhcmFtZXRlckxpc3Rcbk1XRy5JbnRlcm5hbFBhcmFtZXRlckxpc3QgcGFyYW1MaXN0ID0gTVdHLkludGVybmFsUGFyYW1ldGVyTGlzdCgpXG5cbi8vIEFkZCBhIHN0cmluZyB2YWx1ZSB0byB0aGUgcGFyYW1ldGVyIGxpc3RcbnBhcmFtTGlzdCA9IE1XRy5BZGQocGFyYW1MaXN0LCBcImV4YW1wbGVWYWx1ZTFcIilcbnBhcmFtTGlzdCA9IE1XRy5BZGQocGFyYW1MaXN0LCBcImV4YW1wbGVWYWx1ZTJcIilcbnBhcmFtTGlzdCA9IE1XRy5BZGQocGFyYW1MaXN0LCBcImV4YW1wbGVWYWx1ZTNcIilcblxuLy8gRGVidWcgb3V0cHV0IHRvIHZlcmlmeSB0aGUgdmFsdWVzIGluIHRoZSBwYXJhbWV0ZXIgbGlzdFxuLy8gUGFyYW1ldGVyIExpc3Q6IFwiICsgcGFyYW1MaXN0IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiLy8gSW5pdGlhbGl6ZSBhbiBlbXB0eSBNV0cuSW50ZXJuYWxQYXJhbWV0ZXJMaXN0XG5NV0cuSW50ZXJuYWxQYXJhbWV0ZXJMaXN0IHBhcmFtTGlzdCA9IE1XRy5JbnRlcm5hbFBhcmFtZXRlckxpc3QoKVxuXG4vLyBBZGQgYSBzdHJpbmcgdmFsdWUgdG8gdGhlIHBhcmFtZXRlciBsaXN0XG5wYXJhbUxpc3QgPSBNV0cuQWRkKHBhcmFtTGlzdCwgXCJleGFtcGxlVmFsdWUxXCIpXG5wYXJhbUxpc3QgPSBNV0cuQWRkKHBhcmFtTGlzdCwgXCJleGFtcGxlVmFsdWUyXCIpXG5wYXJhbUxpc3QgPSBNV0cuQWRkKHBhcmFtTGlzdCwgXCJleGFtcGxlVmFsdWUzXCIpXG5cbi8vIERlYnVnIG91dHB1dCB0byB2ZXJpZnkgdGhlIHZhbHVlcyBpbiB0aGUgcGFyYW1ldGVyIGxpc3Rcbi8vIFBhcmFtZXRlciBMaXN0OiBcIiArIHBhcmFtTGlzdCJ9LCB7Im5hbWUiOiAiTVdHLkFkZCAoTVdHLkludGVybmFsUGFyYW1ldGVyTGlzdCwgVkVDVE9SPE1XRy5VcmxDYXRlZ29yeT4pIiwgInJldHVybl90eXBlIjogIk1XRy5JbnRlcm5hbFBhcmFtZXRlckxpc3QiLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyB0aGUgdXBkYXRlZGBNV0cuSW50ZXJuYWxQYXJhbWV0ZXJMaXN0YCIsICJwYXJhbWV0ZXJfZGVzYyI6ICJNV0cuSW50ZXJuYWxQYXJhbWV0ZXJMaXN0OiBsaXN0IHRvIGJlIGFkZGVkIHRvOyBWRUNUT1I6IHZhbHVlIHRvIGFkZC4iLCAiZGVzY3JpcHRpb24iOiAiQWRkcyBhIHZlY3RvciBvZiB2YWx1ZXMgdG8gYW4gTVdHLkludGVybmFsUGFyYW1ldGVyTGlzdC4iLCAiZXhhbXBsZV9jb2RlIjogIi8vIEluaXRpYWxpemUgYW4gSW50ZXJuYWxQYXJhbWV0ZXJMaXN0XG5NV0cuSW50ZXJuYWxQYXJhbWV0ZXJMaXN0IHBhcmFtTGlzdCA9IE1XRy5JbnRlcm5hbFBhcmFtZXRlckxpc3QoKVxuXG4vLyBEZWZpbmUgYSBWRUNUT1Igb2YgTVdHLlVybENhdGVnb3J5XG5WRUNUT1I8TVdHLlVybENhdGVnb3J5PiB1cmxDYXRlZ29yaWVzID0gTVdHLlVybENhdGVnb3J5KFwiU29jaWFsIE1lZGlhXCIpLCBNV0cuVXJsQ2F0ZWdvcnkoXCJTdHJlYW1pbmcgTWVkaWFcIilcblxuLy8gQWRkIHRoZSBWRUNUT1Igb2YgVXJsQ2F0ZWdvcmllcyB0byB0aGUgSW50ZXJuYWxQYXJhbWV0ZXJMaXN0XG5wYXJhbUxpc3QgPSBNV0cuQWRkKHBhcmFtTGlzdCwgdXJsQ2F0ZWdvcmllcylcblxuLy8gRGVidWcgb3V0cHV0IHRvIHZlcmlmeSB0aGUgYWRkaXRpb25cbi8vIFVwZGF0ZWQgSW50ZXJuYWxQYXJhbWV0ZXJMaXN0OiBcIiArIHBhcmFtTGlzdCIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIi8vIEluaXRpYWxpemUgYW4gSW50ZXJuYWxQYXJhbWV0ZXJMaXN0XG5NV0cuSW50ZXJuYWxQYXJhbWV0ZXJMaXN0IHBhcmFtTGlzdCA9IE1XRy5JbnRlcm5hbFBhcmFtZXRlckxpc3QoKVxuXG4vLyBEZWZpbmUgYSBWRUNUT1Igb2YgTVdHLlVybENhdGVnb3J5XG5WRUNUT1I8TVdHLlVybENhdGVnb3J5PiB1cmxDYXRlZ29yaWVzID0gTVdHLlVybENhdGVnb3J5KFwiU29jaWFsIE1lZGlhXCIpLCBNV0cuVXJsQ2F0ZWdvcnkoXCJTdHJlYW1pbmcgTWVkaWFcIilcblxuLy8gQWRkIHRoZSBWRUNUT1Igb2YgVXJsQ2F0ZWdvcmllcyB0byB0aGUgSW50ZXJuYWxQYXJhbWV0ZXJMaXN0XG5wYXJhbUxpc3QgPSBNV0cuQWRkKHBhcmFtTGlzdCwgdXJsQ2F0ZWdvcmllcylcblxuLy8gRGVidWcgb3V0cHV0IHRvIHZlcmlmeSB0aGUgYWRkaXRpb25cbi8vIFVwZGF0ZWQgSW50ZXJuYWxQYXJhbWV0ZXJMaXN0OiBcIiArIHBhcmFtTGlzdCJ9LCB7Im5hbWUiOiAiTVdHLkFkZCAoTVdHLkludGVybmFsUGFyYW1ldGVyTGlzdCwgVkVDVE9SPFNUUklORz4pIiwgInJldHVybl90eXBlIjogIk1XRy5JbnRlcm5hbFBhcmFtZXRlckxpc3QiLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyB0aGUgdXBkYXRlZGBNV0cuSW50ZXJuYWxQYXJhbWV0ZXJMaXN0YCIsICJwYXJhbWV0ZXJfZGVzYyI6ICJNV0cuSW50ZXJuYWxQYXJhbWV0ZXJMaXN0OiBsaXN0IHRvIGJlIGFkZGVkIHRvOyBWRUNUT1I6IHZhbHVlIHRvIGFkZC4iLCAiZGVzY3JpcHRpb24iOiAiQWRkcyBhIHZlY3RvciBvZiB2YWx1ZXMgdG8gYW4gTVdHLkludGVybmFsUGFyYW1ldGVyTGlzdC4iLCAiZXhhbXBsZV9jb2RlIjogIi8vIEluaXRpYWxpemUgYW4gSW50ZXJuYWxQYXJhbWV0ZXJMaXN0XG5NV0cuSW50ZXJuYWxQYXJhbWV0ZXJMaXN0IHBhcmFtTGlzdCA9IE1XRy5JbnRlcm5hbFBhcmFtZXRlckxpc3QoKVxuXG4vLyBDcmVhdGUgYSBWRUNUT1Igb2YgU1RSSU5HcyB0byBhZGQgdG8gdGhlIEludGVybmFsUGFyYW1ldGVyTGlzdFxuVkVDVE9SPFNUUklORz4gdmFsdWVzVG9BZGQgPSBcInZhbHVlMVwiLCBcInZhbHVlMlwiLCBcInZhbHVlM1wiXG5cbi8vIEFkZCB0aGUgVkVDVE9SIG9mIFNUUklOR3MgdG8gdGhlIEludGVybmFsUGFyYW1ldGVyTGlzdFxucGFyYW1MaXN0ID0gTVdHLkFkZChwYXJhbUxpc3QsIHZhbHVlc1RvQWRkKVxuXG4vLyBEZWJ1ZyBvdXRwdXQgdG8gdmVyaWZ5IHRoZSBhZGRpdGlvblxuLy8gVXBkYXRlZCBJbnRlcm5hbFBhcmFtZXRlckxpc3Q6IFwiICsgcGFyYW1MaXN0IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiLy8gSW5pdGlhbGl6ZSBhbiBJbnRlcm5hbFBhcmFtZXRlckxpc3Rcbk1XRy5JbnRlcm5hbFBhcmFtZXRlckxpc3QgcGFyYW1MaXN0ID0gTVdHLkludGVybmFsUGFyYW1ldGVyTGlzdCgpXG5cbi8vIENyZWF0ZSBhIFZFQ1RPUiBvZiBTVFJJTkdzIHRvIGFkZCB0byB0aGUgSW50ZXJuYWxQYXJhbWV0ZXJMaXN0XG5WRUNUT1I8U1RSSU5HPiB2YWx1ZXNUb0FkZCA9IFwidmFsdWUxXCIsIFwidmFsdWUyXCIsIFwidmFsdWUzXCJcblxuLy8gQWRkIHRoZSBWRUNUT1Igb2YgU1RSSU5HcyB0byB0aGUgSW50ZXJuYWxQYXJhbWV0ZXJMaXN0XG5wYXJhbUxpc3QgPSBNV0cuQWRkKHBhcmFtTGlzdCwgdmFsdWVzVG9BZGQpXG5cbi8vIERlYnVnIG91dHB1dCB0byB2ZXJpZnkgdGhlIGFkZGl0aW9uXG4vLyBVcGRhdGVkIEludGVybmFsUGFyYW1ldGVyTGlzdDogXCIgKyBwYXJhbUxpc3QifSwgeyJuYW1lIjogIk1XRy5Bbm9ueW1pemUgKE1XRy5Bbm9ueW1pemF0aW9uU2V0dGluZywgU1RSSU5HKSIsICJyZXR1cm5fdHlwZSI6ICJTVFJJTkciLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyB0aGUgYW5vbnltb3VzIHN0cmluZy4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiTVdHLkFub255bWl6YXRpb25TZXR0aW5nOiB0aGUgc2V0dGluZ3MgeW91IHdhbnQgdG8gdXNlIHdoZW4gYW5vbnltaXppbmc7IFNUUklORzogdG8gYmUgYW5vbnltaXplZC4iLCAiZGVzY3JpcHRpb24iOiAiRW5jcnlwdHMgYSBzdHJpbmcuIiwgImV4YW1wbGVfY29kZSI6ICIvLyBEZWZpbmUgdGhlIGFub255bWl6YXRpb24gc2V0dGluZ1xuTVdHLkFub255bWl6YXRpb25TZXR0aW5nIGFub255bWl6YXRpb25TZXR0aW5nID0gW3lvdXJfYW5vbnltaXphdGlvbl9zZXR0aW5nXVxuXG4vLyBEZWZpbmUgdGhlIHN0cmluZyB0byBiZSBhbm9ueW1pemVkXG5TVFJJTkcgc2Vuc2l0aXZlRGF0YSA9IFwiVGhpcyBpcyBzb21lIHNlbnNpdGl2ZSBkYXRhXCJcblxuLy8gQW5vbnltaXplIHRoZSBzdHJpbmdcblNUUklORyBhbm9ueW1pemVkRGF0YSA9IE1XRy5Bbm9ueW1pemUoYW5vbnltaXphdGlvblNldHRpbmcsIHNlbnNpdGl2ZURhdGEpXG5cbi8vIFByaW50IHRoZSBhbm9ueW1pemVkIGRhdGEgdG8gdGhlIGNvbnNvbGUgZm9yIGRlYnVnZ2luZ1xuLy8gREVCVUcoYW5vbnltaXplZERhdGEpIiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiLy8gRGVmaW5lIHRoZSBhbm9ueW1pemF0aW9uIHNldHRpbmdcbk1XRy5Bbm9ueW1pemF0aW9uU2V0dGluZyBhbm9ueW1pemF0aW9uU2V0dGluZyA9IFt5b3VyX2Fub255bWl6YXRpb25fc2V0dGluZ11cblxuLy8gRGVmaW5lIHRoZSBzdHJpbmcgdG8gYmUgYW5vbnltaXplZFxuU1RSSU5HIHNlbnNpdGl2ZURhdGEgPSBcIlRoaXMgaXMgc29tZSBzZW5zaXRpdmUgZGF0YVwiXG5cbi8vIEFub255bWl6ZSB0aGUgc3RyaW5nXG5TVFJJTkcgYW5vbnltaXplZERhdGEgPSBNV0cuQW5vbnltaXplKGFub255bWl6YXRpb25TZXR0aW5nLCBzZW5zaXRpdmVEYXRhKVxuXG4vLyBQcmludCB0aGUgYW5vbnltaXplZCBkYXRhIHRvIHRoZSBjb25zb2xlIGZvciBkZWJ1Z2dpbmdcbi8vIERFQlVHKGFub255bWl6ZWREYXRhKSJ9LCB7Im5hbWUiOiAiTVdHLkFwcGxpY2F0aW9uQ2F0ZWdvcnkgKCkiLCAicmV0dXJuX3R5cGUiOiAiU1RSSU5HIiwgInJldHVybl9kZXNjIjogIlJldHVybnMgdGhlIG5hbWUgb2YgYW4gYXBwbGljYXRpb24gY2F0ZWdvcnkgYXMgYSBzdHJpbmcuIiwgInBhcmFtZXRlcl9kZXNjIjogIk5vbmUiLCAiZGVzY3JpcHRpb24iOiAiUmV0dXJucyB0aGUgbmFtZSBvZiBhbiBhcHBsaWNhdGlvbiBjYXRlZ29yeS4iLCAiZXhhbXBsZV9jb2RlIjogIlNUUklORyBhcHBDYXRlZ29yeSA9IE1XRy5BcHBsaWNhdGlvbkNhdGVnb3J5KClcblxuSUYgYXBwQ2F0ZWdvcnkgPT0gXCJTb2NpYWwgTWVkaWFcIiBUSEVOIHtcbiAgICBNV0cuQmxvY2soXCJBY2Nlc3MgdG8gU29jaWFsIE1lZGlhIGlzIG5vdCBhbGxvd2VkXCIpXG59IEVMU0Uge1xuICAgIE1XRy5BbGxvdyhcIkFwcGxpY2F0aW9uIGNhdGVnb3J5IGlzIGFsbG93ZWRcIilcbn0iLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICJTVFJJTkcgYXBwQ2F0ZWdvcnkgPSBNV0cuQXBwbGljYXRpb25DYXRlZ29yeSgpXG5cbklGIGFwcENhdGVnb3J5ID09IFwiU29jaWFsIE1lZGlhXCIgVEhFTiB7XG4gICAgTVdHLkJsb2NrKFwiQWNjZXNzIHRvIFNvY2lhbCBNZWRpYSBpcyBub3QgYWxsb3dlZFwiKVxufSBFTFNFIHtcbiAgICBNV0cuQWxsb3coXCJBcHBsaWNhdGlvbiBjYXRlZ29yeSBpcyBhbGxvd2VkXCIpXG59In0sIHsibmFtZSI6ICJNV0cuQXBwbGljYXRpb25DYXRlZ29yeUlEICgpIiwgInJldHVybl90eXBlIjogIk1XRy5BcHBsaWNhdGlvbkNhdGVnb3J5VHlwZSIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIHRoZSBjYXRlZ29yeSB0eXBlIG9mIGFuIGFwcGxpY2F0aW9uLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJOb25lIiwgImRlc2NyaXB0aW9uIjogIlJldHVybnMgdGhlIGFwcGxpY2F0aW9uIGNhdGVnb3J5LiIsICJleGFtcGxlX2NvZGUiOiAiTVdHLkFwcGxpY2F0aW9uQ2F0ZWdvcnlUeXBlIGNhdGVnb3J5ID0gTVdHLkFwcGxpY2F0aW9uQ2F0ZWdvcnlJRCgpXG5cbklGIGNhdGVnb3J5ID09IFwiU29jaWFsIE1lZGlhXCIgVEhFTiB7XG4gICAgLy8gQWNjZXNzIHRvIHNvY2lhbCBtZWRpYSBpcyBub3QgYWxsb3dlZFxuICAgIE1XRy5CbG9jayhcIkFjY2VzcyB0byBzb2NpYWwgbWVkaWEgaXMgbm90IGFsbG93ZWRcIilcbn0gRUxTRSB7XG4gICAgLy8gQXBwbGljYXRpb24gY2F0ZWdvcnkgaXMgYWxsb3dlZFxuICAgIE1XRy5BbGxvdyhcIkFwcGxpY2F0aW9uIGNhdGVnb3J5IGlzIGFsbG93ZWRcIilcbn0iLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICJNV0cuQXBwbGljYXRpb25DYXRlZ29yeVR5cGUgY2F0ZWdvcnkgPSBNV0cuQXBwbGljYXRpb25DYXRlZ29yeUlEKClcblxuSUYgY2F0ZWdvcnkgPT0gXCJTb2NpYWwgTWVkaWFcIiBUSEVOIHtcbiAgICAvLyBBY2Nlc3MgdG8gc29jaWFsIG1lZGlhIGlzIG5vdCBhbGxvd2VkXG4gICAgTVdHLkJsb2NrKFwiQWNjZXNzIHRvIHNvY2lhbCBtZWRpYSBpcyBub3QgYWxsb3dlZFwiKVxufSBFTFNFIHtcbiAgICAvLyBBcHBsaWNhdGlvbiBjYXRlZ29yeSBpcyBhbGxvd2VkXG4gICAgTVdHLkFsbG93KFwiQXBwbGljYXRpb24gY2F0ZWdvcnkgaXMgYWxsb3dlZFwiKVxufSJ9LCB7Im5hbWUiOiAiTVdHLkFwcGxpY2F0aW9uSGFzSGlnaFJpc2sgKCkiLCAicmV0dXJuX3R5cGUiOiAiQk9PTEVBTiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zYFRSVUVgaWYgdGhlIGFwcGxpY2F0aW9uIGlzIGFzc2Vzc2VkIHRvIGhhdmUgYSBoaWdoIHJpc2sgc2NvcmUuIiwgInBhcmFtZXRlcl9kZXNjIjogIk5vbmUiLCAiZGVzY3JpcHRpb24iOiAiUmV0dXJucyBUUlVFIGlmIGFuIGFwcGxpY2F0aW9uIGhhcyBhIGhpZ2ggcmlzayBzY29yZS4iLCAiZXhhbXBsZV9jb2RlIjogIi8vIEFzc3VtaW5nIE1XRy5BcHBsaWNhdGlvbkhhc0hpZ2hSaXNrKCkgcmV0dXJucyBhIEJPT0xFQU4gaW5kaWNhdGluZyBpZiB0aGUgYXBwbGljYXRpb24gaGFzIGhpZ2ggcmlza1xuQk9PTEVBTiBpc0hpZ2hSaXNrID0gTVdHLkFwcGxpY2F0aW9uSGFzSGlnaFJpc2soKVxuXG5JRiBpc0hpZ2hSaXNrIFRIRU4ge1xuICAgIC8vIEhpZ2ggcmlzayBhcHBsaWNhdGlvbiBkZXRlY3RlZC5cbiAgICBNV0cuQmxvY2soXCJBY2Nlc3MgdG8gaGlnaCByaXNrIGFwcGxpY2F0aW9uIGlzIGJsb2NrZWQuXCIpXG59IEVMU0Uge1xuICAgIC8vIEFwcGxpY2F0aW9uIGlzIG5vdCBoaWdoIHJpc2suXG4gICAgTVdHLkFsbG93KFwiQXBwbGljYXRpb24gaXMgYWxsb3dlZC5cIilcbn0iLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICIvLyBBc3N1bWluZyBNV0cuQXBwbGljYXRpb25IYXNIaWdoUmlzaygpIHJldHVybnMgYSBCT09MRUFOIGluZGljYXRpbmcgaWYgdGhlIGFwcGxpY2F0aW9uIGhhcyBoaWdoIHJpc2tcbkJPT0xFQU4gaXNIaWdoUmlzayA9IE1XRy5BcHBsaWNhdGlvbkhhc0hpZ2hSaXNrKClcblxuSUYgaXNIaWdoUmlzayBUSEVOIHtcbiAgICAvLyBIaWdoIHJpc2sgYXBwbGljYXRpb24gZGV0ZWN0ZWQuXG4gICAgTVdHLkJsb2NrKFwiQWNjZXNzIHRvIGhpZ2ggcmlzayBhcHBsaWNhdGlvbiBpcyBibG9ja2VkLlwiKVxufSBFTFNFIHtcbiAgICAvLyBBcHBsaWNhdGlvbiBpcyBub3QgaGlnaCByaXNrLlxuICAgIE1XRy5BbGxvdyhcIkFwcGxpY2F0aW9uIGlzIGFsbG93ZWQuXCIpXG59In0sIHsibmFtZSI6ICJNV0cuQXBwbGljYXRpb25IYXNMb3dSaXNrICgpIiwgInJldHVybl90eXBlIjogIkJPT0xFQU4iLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJuc2BUUlVFYGlmIHRoZSBhcHBsaWNhdGlvbidzIHJpc2sgc2NvcmUgaXMgbG93LiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJOb25lIiwgImRlc2NyaXB0aW9uIjogIlJldHVybnMgVFJVRSBpZiBhbiBhcHBsaWNhdGlvbiBoYXMgYSBsb3cgcmlzayBzY29yZS4iLCAiZXhhbXBsZV9jb2RlIjogIklGIE1XRy5BcHBsaWNhdGlvbkhhc0xvd1Jpc2soKSBUSEVOIHtcbiAgICAvLyBUaGUgYXBwbGljYXRpb24gaGFzIGEgbG93IHJpc2sgc2NvcmUuXG4gICAgTVdHLkFsbG93KFwiTG93Umlza0FwcGxpY2F0aW9uXCIpXG59IEVMU0Uge1xuICAgIC8vIFRoZSBhcHBsaWNhdGlvbiBkb2VzIG5vdCBoYXZlIGEgbG93IHJpc2sgc2NvcmUuXG4gICAgTVdHLkJsb2NrKFwiSGlnaFJpc2tBcHBsaWNhdGlvblwiKVxufSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIklGIE1XRy5BcHBsaWNhdGlvbkhhc0xvd1Jpc2soKSBUSEVOIHtcbiAgICAvLyBUaGUgYXBwbGljYXRpb24gaGFzIGEgbG93IHJpc2sgc2NvcmUuXG4gICAgTVdHLkFsbG93KFwiTG93Umlza0FwcGxpY2F0aW9uXCIpXG59IEVMU0Uge1xuICAgIC8vIFRoZSBhcHBsaWNhdGlvbiBkb2VzIG5vdCBoYXZlIGEgbG93IHJpc2sgc2NvcmUuXG4gICAgTVdHLkJsb2NrKFwiSGlnaFJpc2tBcHBsaWNhdGlvblwiKVxufSJ9LCB7Im5hbWUiOiAiTVdHLkFwcGxpY2F0aW9uSGFzTWVkaXVtUmlzayAoKSIsICJyZXR1cm5fdHlwZSI6ICJCT09MRUFOIiwgInJldHVybl9kZXNjIjogIlJldHVybnNgVFJVRWBpZiBhbiBhcHBsaWNhdGlvbiBoYXMgYSBtZWRpdW0gcmlzayBzY29yZSwgb3RoZXJ3aXNlYEZBTFNFYCIsICJwYXJhbWV0ZXJfZGVzYyI6ICJOb25lIiwgImRlc2NyaXB0aW9uIjogIlJldHVybnMgVFJVRSBpZiBhbiBhcHBsaWNhdGlvbiBoYXMgYSBtZWRpdW0gcmlzayBzY29yZS4iLCAiZXhhbXBsZV9jb2RlIjogIi8vIENoZWNrIGlmIHRoZSBhcHBsaWNhdGlvbiBoYXMgYSBtZWRpdW0gcmlza1xuSUYgTVdHLkFwcGxpY2F0aW9uSGFzTWVkaXVtUmlzaygpIFRIRU4ge1xuICAgIC8vIExvZyB0aGUgbWVkaXVtIHJpc2sgYXBwbGljYXRpb25cbiAgICAvLyBcIkFwcGxpY2F0aW9uIGhhcyBtZWRpdW0gcmlza1wiXG5cbiAgICAvLyBCbG9jayB0aGUgcmVxdWVzdCBhbmQgcHJvdmlkZSBhIHJlYXNvblxuICAgIE1XRy5CbG9jayhcIkFjY2VzcyB0byB0aGlzIGFwcGxpY2F0aW9uIGlzIGJsb2NrZWQgZHVlIHRvIG1lZGl1bSByaXNrIGxldmVsXCIpXG59IEVMU0Uge1xuICAgIC8vIEFsbG93IHRoZSByZXF1ZXN0IGlmIHRoZSBhcHBsaWNhdGlvbiBkb2VzIG5vdCBoYXZlIGEgbWVkaXVtIHJpc2tcbiAgICBNV0cuQWxsb3coXCJBcHBsaWNhdGlvbiByaXNrIGxldmVsIGlzIGFjY2VwdGFibGVcIilcbn0iLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICIvLyBDaGVjayBpZiB0aGUgYXBwbGljYXRpb24gaGFzIGEgbWVkaXVtIHJpc2tcbklGIE1XRy5BcHBsaWNhdGlvbkhhc01lZGl1bVJpc2soKSBUSEVOIHtcbiAgICAvLyBMb2cgdGhlIG1lZGl1bSByaXNrIGFwcGxpY2F0aW9uXG4gICAgLy8gXCJBcHBsaWNhdGlvbiBoYXMgbWVkaXVtIHJpc2tcIlxuXG4gICAgLy8gQmxvY2sgdGhlIHJlcXVlc3QgYW5kIHByb3ZpZGUgYSByZWFzb25cbiAgICBNV0cuQmxvY2soXCJBY2Nlc3MgdG8gdGhpcyBhcHBsaWNhdGlvbiBpcyBibG9ja2VkIGR1ZSB0byBtZWRpdW0gcmlzayBsZXZlbFwiKVxufSBFTFNFIHtcbiAgICAvLyBBbGxvdyB0aGUgcmVxdWVzdCBpZiB0aGUgYXBwbGljYXRpb24gZG9lcyBub3QgaGF2ZSBhIG1lZGl1bSByaXNrXG4gICAgTVdHLkFsbG93KFwiQXBwbGljYXRpb24gcmlzayBsZXZlbCBpcyBhY2NlcHRhYmxlXCIpXG59In0sIHsibmFtZSI6ICJNV0cuQXBwbGljYXRpb25IYXNVbnZlcmlmaWVkUmlzYyAoKSIsICJyZXR1cm5fdHlwZSI6ICJCT09MRUFOIiwgInJldHVybl9kZXNjIjogIlJldHVybnNgVFJVRWBpZiB0aGUgcmlzayBsZXZlbCBvZiB0aGUgYXBwbGljYXRpb24gaGFzIG5vdCBiZWVuIHZlcmlmaWVkLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJOb25lIiwgImRlc2NyaXB0aW9uIjogIlJldHVybnMgVFJVRSBpZiBhcHBsaWNhdGlvbiByaXNrIGlzIHVua25vd24uIiwgImV4YW1wbGVfY29kZSI6ICJJRiBNV0cuQXBwbGljYXRpb25IYXNVbnZlcmlmaWVkUmlzYygpIFRIRU4ge1xuICAgIE1XRy5CbG9jayhcIkFjY2VzcyBibG9ja2VkIGR1ZSB0byB1bnZlcmlmaWVkIGFwcGxpY2F0aW9uIHJpc2suXCIpXG59IEVMU0Uge1xuICAgIE1XRy5BbGxvdyhcIkFwcGxpY2F0aW9uIHJpc2sgdmVyaWZpZWQuXCIpXG59IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiSUYgTVdHLkFwcGxpY2F0aW9uSGFzVW52ZXJpZmllZFJpc2MoKSBUSEVOIHtcbiAgICBNV0cuQmxvY2soXCJBY2Nlc3MgYmxvY2tlZCBkdWUgdG8gdW52ZXJpZmllZCBhcHBsaWNhdGlvbiByaXNrLlwiKVxufSBFTFNFIHtcbiAgICBNV0cuQWxsb3coXCJBcHBsaWNhdGlvbiByaXNrIHZlcmlmaWVkLlwiKVxufSJ9LCB7Im5hbWUiOiAiTVdHLkFwcGxpY2F0aW9uSUQgKCkiLCAicmV0dXJuX3R5cGUiOiAiTVdHLkFwcGxpY2F0aW9uVHlwZSIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIHRoZSBkZXRlY3RlZCBhcHBsaWNhdGlvbiB0eXBlLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJOb25lIiwgImRlc2NyaXB0aW9uIjogIlJldHVybnMgZGV0ZWN0ZWQgYXBwbGljYXRpb24gdHlwZS4iLCAiZXhhbXBsZV9jb2RlIjogIk1XRy5BcHBsaWNhdGlvblR5cGUgYXBwVHlwZSA9IE1XRy5BcHBsaWNhdGlvbklEKClcblxuSUYgYXBwVHlwZSA9PSBcIlNvbWVTcGVjaWZpY0FwcGxpY2F0aW9uXCIgVEhFTiB7XG4gICAgLy8gRGV0ZWN0ZWQgYXBwbGljYXRpb24gaXMgU29tZVNwZWNpZmljQXBwbGljYXRpb25cbiAgICBNV0cuQWxsb3coXCJBbGxvd2VkIGR1ZSB0byBzcGVjaWZpYyBhcHBsaWNhdGlvblwiKVxufSBFTFNFIHtcbiAgICAvLyBEZXRlY3RlZCBhcHBsaWNhdGlvbiBpcyBub3QgU29tZVNwZWNpZmljQXBwbGljYXRpb25cbiAgICBNV0cuQmxvY2soXCJCbG9ja2VkIGR1ZSB0byB1bnJlY29nbml6ZWQgYXBwbGljYXRpb25cIilcbn0iLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICJNV0cuQXBwbGljYXRpb25UeXBlIGFwcFR5cGUgPSBNV0cuQXBwbGljYXRpb25JRCgpXG5cbklGIGFwcFR5cGUgPT0gXCJTb21lU3BlY2lmaWNBcHBsaWNhdGlvblwiIFRIRU4ge1xuICAgIC8vIERldGVjdGVkIGFwcGxpY2F0aW9uIGlzIFNvbWVTcGVjaWZpY0FwcGxpY2F0aW9uXG4gICAgTVdHLkFsbG93KFwiQWxsb3dlZCBkdWUgdG8gc3BlY2lmaWMgYXBwbGljYXRpb25cIilcbn0gRUxTRSB7XG4gICAgLy8gRGV0ZWN0ZWQgYXBwbGljYXRpb24gaXMgbm90IFNvbWVTcGVjaWZpY0FwcGxpY2F0aW9uXG4gICAgTVdHLkJsb2NrKFwiQmxvY2tlZCBkdWUgdG8gdW5yZWNvZ25pemVkIGFwcGxpY2F0aW9uXCIpXG59In0sIHsibmFtZSI6ICJNV0cuQXBwbGljYXRpb25Jc0luU2VydmljZUdyb3VwIChNV0cuQXBwbGljYXRpb25TZXJ2aWNlR3JvdXBUeXBlKSIsICJyZXR1cm5fdHlwZSI6ICJCT09MRUFOIiwgInJldHVybl9kZXNjIjogIlJldHVybnNgVFJVRWBpZiB0aGUgY3VycmVudCBhcHBsaWNhdGlvbiBpcyBpbiB0aGUgc3BlY2lmaWVkIHNlcnZpY2UgZ3JvdXAsIG90aGVyd2lzZWBGQUxTRWAiLCAicGFyYW1ldGVyX2Rlc2MiOiAiTVdHLkFwcGxpY2F0aW9uU2VydmljZUdyb3VwVHlwZTogdGhlIHNlcnZpY2UgZ3JvdXAgdG8gY2hlY2sgYWdhaW5zdCBmb3IgdGhlIGN1cnJlbnQgYXBwbGljYXRpb24uIiwgImRlc2NyaXB0aW9uIjogIkNoZWNrcyBpZiB0aGUgY3VycmVudCBhcHBsaWNhdGlvbiBpcyBpbiBhIGdpdmVuIHNlcnZpY2UgZ3JvdXAuIiwgImV4YW1wbGVfY29kZSI6ICJNV0cuQXBwbGljYXRpb25TZXJ2aWNlR3JvdXBUeXBlIHNlcnZpY2VHcm91cCA9IFwiU29jaWFsTWVkaWFcIlxuXG5JRiBNV0cuQXBwbGljYXRpb25Jc0luU2VydmljZUdyb3VwKHNlcnZpY2VHcm91cCkgVEhFTiB7XG4gICAgLy8gVGhlIGFwcGxpY2F0aW9uIGlzIHBhcnQgb2YgdGhlIFNvY2lhbCBNZWRpYSBzZXJ2aWNlIGdyb3VwLlxuICAgIE1XRy5CbG9jayhcIkFjY2VzcyB0byBTb2NpYWwgTWVkaWEgYXBwbGljYXRpb25zIGlzIG5vdCBhbGxvd2VkLlwiKVxufSBFTFNFIHtcbiAgICAvLyBUaGUgYXBwbGljYXRpb24gaXMgbm90IHBhcnQgb2YgdGhlIFNvY2lhbCBNZWRpYSBzZXJ2aWNlIGdyb3VwLlxuICAgIE1XRy5BbGxvdyhcIkFwcGxpY2F0aW9uIGlzIGFsbG93ZWQuXCIpXG59IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiTVdHLkFwcGxpY2F0aW9uU2VydmljZUdyb3VwVHlwZSBzZXJ2aWNlR3JvdXAgPSBcIlNvY2lhbE1lZGlhXCJcblxuSUYgTVdHLkFwcGxpY2F0aW9uSXNJblNlcnZpY2VHcm91cChzZXJ2aWNlR3JvdXApIFRIRU4ge1xuICAgIC8vIFRoZSBhcHBsaWNhdGlvbiBpcyBwYXJ0IG9mIHRoZSBTb2NpYWwgTWVkaWEgc2VydmljZSBncm91cC5cbiAgICBNV0cuQmxvY2soXCJBY2Nlc3MgdG8gU29jaWFsIE1lZGlhIGFwcGxpY2F0aW9ucyBpcyBub3QgYWxsb3dlZC5cIilcbn0gRUxTRSB7XG4gICAgLy8gVGhlIGFwcGxpY2F0aW9uIGlzIG5vdCBwYXJ0IG9mIHRoZSBTb2NpYWwgTWVkaWEgc2VydmljZSBncm91cC5cbiAgICBNV0cuQWxsb3coXCJBcHBsaWNhdGlvbiBpcyBhbGxvd2VkLlwiKVxufSJ9LCB7Im5hbWUiOiAiTVdHLkFwcGxpY2F0aW9uSXNJblNlcnZpY2VHcm91cCAoU1RSSU5HKSIsICJyZXR1cm5fdHlwZSI6ICJCT09MRUFOIiwgInJldHVybl9kZXNjIjogIlJldHVybnNgVFJVRWBpZiB0aGUgY3VycmVudCBhcHBsaWNhdGlvbiBiZWxvbmdzIHRvIHRoZSBzcGVjaWZpZWQgc2VydmljZSBncm91cC4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiU1RSSU5HOiB0aGUgbmFtZSBvZiB0aGUgc2VydmljZSBncm91cCB0byBjaGVjayBhZ2FpbnN0IHRoZSBjdXJyZW50IGFwcGxpY2F0aW9uLiIsICJkZXNjcmlwdGlvbiI6ICJDaGVja3MgaWYgdGhlIGN1cnJlbnQgYXBwbGljYXRpb24gaXMgaW4gYSBnaXZlbiBzZXJ2aWNlIGdyb3VwLiIsICJleGFtcGxlX2NvZGUiOiAiU1RSSU5HIHNlcnZpY2VHcm91cE5hbWUgPSBcIlNvY2lhbE1lZGlhXCJcblxuSUYgTVdHLkFwcGxpY2F0aW9uSXNJblNlcnZpY2VHcm91cChzZXJ2aWNlR3JvdXBOYW1lKSBUSEVOIHtcbiAgICAvLyBUaGUgY3VycmVudCBhcHBsaWNhdGlvbiBiZWxvbmdzIHRvIHRoZSBzZXJ2aWNlIGdyb3VwOiBTb2NpYWxNZWRpYVxuICAgIE1XRy5BbGxvdyhcIkFwcGxpY2F0aW9uIGlzIGluIHRoZSBhbGxvd2VkIHNlcnZpY2UgZ3JvdXBcIilcbn0gRUxTRSB7XG4gICAgLy8gVGhlIGN1cnJlbnQgYXBwbGljYXRpb24gZG9lcyBub3QgYmVsb25nIHRvIHRoZSBzZXJ2aWNlIGdyb3VwOiBTb2NpYWxNZWRpYVxuICAgIE1XRy5CbG9jayhcIkFwcGxpY2F0aW9uIGlzIG5vdCBpbiB0aGUgYWxsb3dlZCBzZXJ2aWNlIGdyb3VwXCIpXG59IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiU1RSSU5HIHNlcnZpY2VHcm91cE5hbWUgPSBcIlNvY2lhbE1lZGlhXCJcblxuSUYgTVdHLkFwcGxpY2F0aW9uSXNJblNlcnZpY2VHcm91cChzZXJ2aWNlR3JvdXBOYW1lKSBUSEVOIHtcbiAgICAvLyBUaGUgY3VycmVudCBhcHBsaWNhdGlvbiBiZWxvbmdzIHRvIHRoZSBzZXJ2aWNlIGdyb3VwOiBTb2NpYWxNZWRpYVxuICAgIE1XRy5BbGxvdyhcIkFwcGxpY2F0aW9uIGlzIGluIHRoZSBhbGxvd2VkIHNlcnZpY2UgZ3JvdXBcIilcbn0gRUxTRSB7XG4gICAgLy8gVGhlIGN1cnJlbnQgYXBwbGljYXRpb24gZG9lcyBub3QgYmVsb25nIHRvIHRoZSBzZXJ2aWNlIGdyb3VwOiBTb2NpYWxNZWRpYVxuICAgIE1XRy5CbG9jayhcIkFwcGxpY2F0aW9uIGlzIG5vdCBpbiB0aGUgYWxsb3dlZCBzZXJ2aWNlIGdyb3VwXCIpXG59In0sIHsibmFtZSI6ICJNV0cuQXBwbGljYXRpb25SaXNrICgpIiwgInJldHVybl90eXBlIjogIk5VTUJFUiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIHRoZSBudW1lcmljYWwgcmlzayBzY29yZSBvZiBhbiBhcHBsaWNhdGlvbi4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiTm9uZSIsICJkZXNjcmlwdGlvbiI6ICJSZXR1cm5zIHRoZSByaXNrIHNjb3JlIG9mIGFuIGFwcGxpY2F0aW9uLiIsICJleGFtcGxlX2NvZGUiOiAiTlVNQkVSIHJpc2tTY29yZSA9IE1XRy5BcHBsaWNhdGlvblJpc2soKVxuXG5JRiByaXNrU2NvcmUgPiA1MCBUSEVOIHtcbiAgICBNV0cuQmxvY2soXCJBcHBsaWNhdGlvbiByaXNrIHNjb3JlIHRvbyBoaWdoOiBcIiArIHJpc2tTY29yZSlcbn0gRUxTRSB7XG4gICAgTVdHLkFsbG93KFwiQXBwbGljYXRpb24gcmlzayBzY29yZSBhY2NlcHRhYmxlOiBcIiArIHJpc2tTY29yZSlcbn0iLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICJOVU1CRVIgcmlza1Njb3JlID0gTVdHLkFwcGxpY2F0aW9uUmlzaygpXG5cbklGIHJpc2tTY29yZSA+IDUwIFRIRU4ge1xuICAgIE1XRy5CbG9jayhcIkFwcGxpY2F0aW9uIHJpc2sgc2NvcmUgdG9vIGhpZ2g6IFwiICsgcmlza1Njb3JlKVxufSBFTFNFIHtcbiAgICBNV0cuQWxsb3coXCJBcHBsaWNhdGlvbiByaXNrIHNjb3JlIGFjY2VwdGFibGU6IFwiICsgcmlza1Njb3JlKVxufSJ9LCB7Im5hbWUiOiAiTVdHLkFwcGxpY2F0aW9uUmlza1R5cGUgKCkiLCAicmV0dXJuX3R5cGUiOiAiU1RSSU5HIiwgInJldHVybl9kZXNjIjogIlJldHVybnMgdGhlIHJpc2sgc2NvcmUgcmFuZ2UgYXNzb2NpYXRlZCB3aXRoIGFuIGFwcGxpY2F0aW9uIGFzIGEgc3RyaW5nLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJOb25lIiwgImRlc2NyaXB0aW9uIjogIlJldHVybnMgdGhlIHJpc2sgc2NvcmUgcmFuZ2Ugb2YgYW4gYXBwbGljYXRpb24uIiwgImV4YW1wbGVfY29kZSI6ICIvLyBHZXQgdGhlIHJpc2sgdHlwZSBvZiB0aGUgY3VycmVudCBhcHBsaWNhdGlvblxuU1RSSU5HIHJpc2tUeXBlID0gTVdHLkFwcGxpY2F0aW9uUmlza1R5cGUoKVxuXG4vLyBBcHBsaWNhdGlvbiBSaXNrIFR5cGU6IFwiICsgcmlza1R5cGVcblxuLy8gUGVyZm9ybSBhY3Rpb25zIGJhc2VkIG9uIHRoZSByaXNrIHR5cGVcbklGIHJpc2tUeXBlID09IFwiSGlnaFwiIFRIRU4ge1xuICAgIE1XRy5CbG9jayhcIkFjY2VzcyB0byBoaWdoLXJpc2sgYXBwbGljYXRpb25zIGlzIG5vdCBhbGxvd2VkLlwiKVxufSBFTFNFIElGIHJpc2tUeXBlID09IFwiTWVkaXVtXCIgVEhFTiB7XG4gICAgLy8gTWVkaXVtIHJpc2sgYXBwbGljYXRpb24gZGV0ZWN0ZWQuXG59IEVMU0Uge1xuICAgIC8vIExvdyByaXNrIG9yIHVua25vd24gYXBwbGljYXRpb24gZGV0ZWN0ZWQuXG59IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiLy8gR2V0IHRoZSByaXNrIHR5cGUgb2YgdGhlIGN1cnJlbnQgYXBwbGljYXRpb25cblNUUklORyByaXNrVHlwZSA9IE1XRy5BcHBsaWNhdGlvblJpc2tUeXBlKClcblxuLy8gQXBwbGljYXRpb24gUmlzayBUeXBlOiBcIiArIHJpc2tUeXBlXG5cbi8vIFBlcmZvcm0gYWN0aW9ucyBiYXNlZCBvbiB0aGUgcmlzayB0eXBlXG5JRiByaXNrVHlwZSA9PSBcIkhpZ2hcIiBUSEVOIHtcbiAgICBNV0cuQmxvY2soXCJBY2Nlc3MgdG8gaGlnaC1yaXNrIGFwcGxpY2F0aW9ucyBpcyBub3QgYWxsb3dlZC5cIilcbn0gRUxTRSBJRiByaXNrVHlwZSA9PSBcIk1lZGl1bVwiIFRIRU4ge1xuICAgIC8vIE1lZGl1bSByaXNrIGFwcGxpY2F0aW9uIGRldGVjdGVkLlxufSBFTFNFIHtcbiAgICAvLyBMb3cgcmlzayBvciB1bmtub3duIGFwcGxpY2F0aW9uIGRldGVjdGVkLlxufSJ9LCB7Im5hbWUiOiAiTVdHLkFwcGxpY2F0aW9uU2VydmljZUdyb3VwIChNV0cuQXBwbGljYXRpb25TZXJ2aWNlR3JvdXBUeXBlKSIsICJyZXR1cm5fdHlwZSI6ICJWRUNUT1I8TVdHLkFwcGxpY2F0aW9uVHlwZT4iLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyBhIHZlY3RvciBjb250YWluaW5nIGFsbCB0aGUgYXBwbGljYXRpb25zIHdpdGhpbiBhIHNwZWNpZmllZCBzZXJ2aWNlIGdyb3VwLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJNV0cuQXBwbGljYXRpb25TZXJ2aWNlR3JvdXBUeXBlOiB0aGUgdHlwZSBvZiBzZXJ2aWNlIGdyb3VwIGZvciB3aGljaCB0aGUgVkVDVE9SIG9mIGFwcGxpY2F0aW9ucyBpcyByZXR1cm5lZC4iLCAiZGVzY3JpcHRpb24iOiAiUmV0dXJucyB0aGUgdmVjdG9yIG9mIGFwcGxpY2F0aW9ucyBpbiBhIHNlcnZpY2UgZ3JvdXAuIiwgImV4YW1wbGVfY29kZSI6ICJNV0cuQXBwbGljYXRpb25TZXJ2aWNlR3JvdXBUeXBlIGFwcFNlcnZpY2VHcm91cCA9IE1XRy5HZXRBcHBsaWNhdGlvblNlcnZpY2VHcm91cCgpXG5cbklGIGFwcFNlcnZpY2VHcm91cCA9PSBcIlNvY2lhbE1lZGlhXCIgVEhFTiB7XG4gICAgLy8gQWNjZXNzIHRvIFNvY2lhbCBNZWRpYSBhcHBsaWNhdGlvbiBzZXJ2aWNlIGdyb3VwIGRldGVjdGVkLlxuICAgIE1XRy5CbG9jayhcIkFjY2VzcyB0byBTb2NpYWwgTWVkaWEgaXMgbm90IGFsbG93ZWQuXCIpXG59IEVMU0Uge1xuICAgIE1XRy5BbGxvdyhcIkFwcGxpY2F0aW9uIHNlcnZpY2UgZ3JvdXAgaXMgYWxsb3dlZC5cIilcbn0iLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICJNV0cuQXBwbGljYXRpb25TZXJ2aWNlR3JvdXBUeXBlIGFwcFNlcnZpY2VHcm91cCA9IE1XRy5HZXRBcHBsaWNhdGlvblNlcnZpY2VHcm91cCgpXG5cbklGIGFwcFNlcnZpY2VHcm91cCA9PSBcIlNvY2lhbE1lZGlhXCIgVEhFTiB7XG4gICAgLy8gQWNjZXNzIHRvIFNvY2lhbCBNZWRpYSBhcHBsaWNhdGlvbiBzZXJ2aWNlIGdyb3VwIGRldGVjdGVkLlxuICAgIE1XRy5CbG9jayhcIkFjY2VzcyB0byBTb2NpYWwgTWVkaWEgaXMgbm90IGFsbG93ZWQuXCIpXG59IEVMU0Uge1xuICAgIE1XRy5BbGxvdyhcIkFwcGxpY2F0aW9uIHNlcnZpY2UgZ3JvdXAgaXMgYWxsb3dlZC5cIilcbn0ifSwgeyJuYW1lIjogIk1XRy5BcHBsaWNhdGlvblNlcnZpY2VOYW1lICgpIiwgInJldHVybl90eXBlIjogIlNUUklORyIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIHRoZSBhcHBsaWNhdGlvbidzIG5hbWUgYXMgYSBzdHJpbmcuIiwgInBhcmFtZXRlcl9kZXNjIjogIk5vbmUiLCAiZGVzY3JpcHRpb24iOiAiUmV0dXJucyB0aGUgbmFtZSBvZiBhbiBhcHBsaWNhdGlvbi4iLCAiZXhhbXBsZV9jb2RlIjogIi8vIFJldHJpZXZlIHRoZSBhcHBsaWNhdGlvbidzIG5hbWVcblNUUklORyBhcHBOYW1lID0gTVdHLkFwcGxpY2F0aW9uU2VydmljZU5hbWUoKVxuXG4vLyBBcHBsaWNhdGlvbiBTZXJ2aWNlIE5hbWU6IFwiICsgYXBwTmFtZVxuXG4vLyBFeGFtcGxlIGNvbmRpdGlvbjogQmxvY2sgdGhlIHJlcXVlc3QgaWYgdGhlIGFwcGxpY2F0aW9uIHNlcnZpY2UgbmFtZSBpcyBcIkJsb2NrZWRBcHBcIlxuSUYgYXBwTmFtZSA9PSBcIkJsb2NrZWRBcHBcIiBUSEVOIHtcbiAgICBNV0cuQmxvY2soXCJBY2Nlc3MgdG8gdGhpcyBhcHBsaWNhdGlvbiBpcyBibG9ja2VkLlwiKVxufSBFTFNFIHtcbiAgICBNV0cuQWxsb3coXCJBcHBsaWNhdGlvbiBzZXJ2aWNlIGlzIGFsbG93ZWQuXCIpXG59IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiLy8gUmV0cmlldmUgdGhlIGFwcGxpY2F0aW9uJ3MgbmFtZVxuU1RSSU5HIGFwcE5hbWUgPSBNV0cuQXBwbGljYXRpb25TZXJ2aWNlTmFtZSgpXG5cbi8vIEFwcGxpY2F0aW9uIFNlcnZpY2UgTmFtZTogXCIgKyBhcHBOYW1lXG5cbi8vIEV4YW1wbGUgY29uZGl0aW9uOiBCbG9jayB0aGUgcmVxdWVzdCBpZiB0aGUgYXBwbGljYXRpb24gc2VydmljZSBuYW1lIGlzIFwiQmxvY2tlZEFwcFwiXG5JRiBhcHBOYW1lID09IFwiQmxvY2tlZEFwcFwiIFRIRU4ge1xuICAgIE1XRy5CbG9jayhcIkFjY2VzcyB0byB0aGlzIGFwcGxpY2F0aW9uIGlzIGJsb2NrZWQuXCIpXG59IEVMU0Uge1xuICAgIE1XRy5BbGxvdyhcIkFwcGxpY2F0aW9uIHNlcnZpY2UgaXMgYWxsb3dlZC5cIilcbn0ifSwgeyJuYW1lIjogIk1XRy5BcHBsaWNhdGlvblN1YkNhdGVnb3J5ICgpIiwgInJldHVybl90eXBlIjogIlNUUklORyIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIHRoZSBuYW1lIG9mIGFuIGFwcGxpY2F0aW9uIHN1Yi1jYXRlZ29yeSBhcyBhIHN0cmluZy4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiTm9uZSIsICJkZXNjcmlwdGlvbiI6ICJSZXR1cm5zIHRoZSBuYW1lIG9mIGFuIGFwcGxpY2F0aW9uIHN1Yi1jYXRlZ29yeS4iLCAiZXhhbXBsZV9jb2RlIjogIlNUUklORyBzdWJDYXRlZ29yeSA9IE1XRy5BcHBsaWNhdGlvblN1YkNhdGVnb3J5KClcblxuLy8gQ2hlY2tpbmcgaWYgdGhlIHN1YkNhdGVnb3J5IGlzIFwiU29jaWFsIE1lZGlhXCJcbklGIHN1YkNhdGVnb3J5ID09IFwiU29jaWFsIE1lZGlhXCIgVEhFTiB7XG4gICAgLy8gQmxvY2tpbmcgYWNjZXNzIHRvIFNvY2lhbCBNZWRpYSBzaXRlc1xuICAgIE1XRy5CbG9jayhcIkFjY2VzcyB0byBTb2NpYWwgTWVkaWEgc2l0ZXMgaXMgbm90IGFsbG93ZWQuXCIpXG59IEVMU0Uge1xuICAgIC8vIEFsbG93aW5nIGFjY2VzcyBpZiBzdWItY2F0ZWdvcnkgaXMgbm90IGJsb2NrZWRcbiAgICBNV0cuQWxsb3coXCJTdWItY2F0ZWdvcnkgaXMgbm90IGJsb2NrZWQuXCIpXG59IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiU1RSSU5HIHN1YkNhdGVnb3J5ID0gTVdHLkFwcGxpY2F0aW9uU3ViQ2F0ZWdvcnkoKVxuXG4vLyBDaGVja2luZyBpZiB0aGUgc3ViQ2F0ZWdvcnkgaXMgXCJTb2NpYWwgTWVkaWFcIlxuSUYgc3ViQ2F0ZWdvcnkgPT0gXCJTb2NpYWwgTWVkaWFcIiBUSEVOIHtcbiAgICAvLyBCbG9ja2luZyBhY2Nlc3MgdG8gU29jaWFsIE1lZGlhIHNpdGVzXG4gICAgTVdHLkJsb2NrKFwiQWNjZXNzIHRvIFNvY2lhbCBNZWRpYSBzaXRlcyBpcyBub3QgYWxsb3dlZC5cIilcbn0gRUxTRSB7XG4gICAgLy8gQWxsb3dpbmcgYWNjZXNzIGlmIHN1Yi1jYXRlZ29yeSBpcyBub3QgYmxvY2tlZFxuICAgIE1XRy5BbGxvdyhcIlN1Yi1jYXRlZ29yeSBpcyBub3QgYmxvY2tlZC5cIilcbn0ifSwgeyJuYW1lIjogIk1XRy5BcHBsaWNhdGlvblN1YkNhdGVnb3J5SUQgKCkiLCAicmV0dXJuX3R5cGUiOiAiTVdHLkFwcGxpY2F0aW9uU3ViQ2F0ZWdvcnlUeXBlIiwgInJldHVybl9kZXNjIjogIlJldHVybnMgdGhlIGRldGVjdGVkIGFwcGxpY2F0aW9uIHN1Yi1jYXRlZ29yeSB0eXBlIGFzIGFuIGBNV0cuQXBwbGljYXRpb25TdWJDYXRlZ29yeVR5cGVgLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJOb25lIiwgImRlc2NyaXB0aW9uIjogIlJldHVybnMgdGhlIGRldGVjdGVkIGFwcGxpY2F0aW9uIHN1Yi1jYXRlZ29yeSB0eXBlLiIsICJleGFtcGxlX2NvZGUiOiAiTVdHLkFwcGxpY2F0aW9uU3ViQ2F0ZWdvcnlUeXBlIHN1YkNhdGVnb3J5ID0gTVdHLkdldEFwcGxpY2F0aW9uU3ViQ2F0ZWdvcnkoKVxuXG5JRiBzdWJDYXRlZ29yeSA9PSBcIlNvY2lhbCBNZWRpYVwiIFRIRU4ge1xuICAgIC8vIE91dHB1dDogQWNjZXNzIHRvIHNvY2lhbCBtZWRpYSBpcyBub3QgYWxsb3dlZFxuICAgIE1XRy5CbG9jayhcIkFjY2VzcyB0byBzb2NpYWwgbWVkaWEgaXMgbm90IGFsbG93ZWRcIilcbn0gRUxTRSB7XG4gICAgLy8gT3V0cHV0OiBBcHBsaWNhdGlvbiBzdWJjYXRlZ29yeSBpcyBhbGxvd2VkXG4gICAgTVdHLkFsbG93KFwiQXBwbGljYXRpb24gc3ViY2F0ZWdvcnkgaXMgYWxsb3dlZFwiKVxufSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIk1XRy5BcHBsaWNhdGlvblN1YkNhdGVnb3J5VHlwZSBzdWJDYXRlZ29yeSA9IE1XRy5HZXRBcHBsaWNhdGlvblN1YkNhdGVnb3J5KClcblxuSUYgc3ViQ2F0ZWdvcnkgPT0gXCJTb2NpYWwgTWVkaWFcIiBUSEVOIHtcbiAgICAvLyBPdXRwdXQ6IEFjY2VzcyB0byBzb2NpYWwgbWVkaWEgaXMgbm90IGFsbG93ZWRcbiAgICBNV0cuQmxvY2soXCJBY2Nlc3MgdG8gc29jaWFsIG1lZGlhIGlzIG5vdCBhbGxvd2VkXCIpXG59IEVMU0Uge1xuICAgIC8vIE91dHB1dDogQXBwbGljYXRpb24gc3ViY2F0ZWdvcnkgaXMgYWxsb3dlZFxuICAgIE1XRy5BbGxvdyhcIkFwcGxpY2F0aW9uIHN1YmNhdGVnb3J5IGlzIGFsbG93ZWRcIilcbn0ifSwgeyJuYW1lIjogIk1XRy5BdXRoZW50aWNhdGlvbkNhY2hlUmVtYWluaW5nVGltZSAoKSIsICJyZXR1cm5fdHlwZSI6ICJOVU1CRVIiLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyB0aGUgYW1vdW50IG9mIHRpbWUsIGluIG51bWVyaWNhbCB2YWx1ZSwgdGhhdCBjcmVkZW50aWFscyB3aWxsIHJlbWFpbiBpbiB0aGUgYXV0aGVudGljYXRpb24gY2FjaGUuIiwgInBhcmFtZXRlcl9kZXNjIjogIk5vbmUiLCAiZGVzY3JpcHRpb24iOiAiXCJSZXR1cm5zIHRoZSByZW1haW5pbmcgdGltZSBjcmVkZW50aWFscyBhcmUgc3RvcmVkIGluIGF1dGhlbnRpY2F0aW9uIGNhY2hlLiBOb3QgYXBwbGljYWJsZSBmb3IgY2xvdWQuXCIiLCAiZXhhbXBsZV9jb2RlIjogIk5VTUJFUiByZW1haW5pbmdUaW1lID0gTVdHLkF1dGhlbnRpY2F0aW9uQ2FjaGVSZW1haW5pbmdUaW1lKClcblxuSUYgcmVtYWluaW5nVGltZSA8IDYwIFRIRU4ge1xuICAgIC8vIFwiQXV0aGVudGljYXRpb24gY2FjaGUgdGltZSBpcyBsZXNzIHRoYW4gNjAgc2Vjb25kcy5cIlxufSBFTFNFIHtcbiAgICAvLyBcIkF1dGhlbnRpY2F0aW9uIGNhY2hlIHRpbWUgaXMgc3VmZmljaWVudC5cIlxufSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIk5VTUJFUiByZW1haW5pbmdUaW1lID0gTVdHLkF1dGhlbnRpY2F0aW9uQ2FjaGVSZW1haW5pbmdUaW1lKClcblxuSUYgcmVtYWluaW5nVGltZSA8IDYwIFRIRU4ge1xuICAgIC8vIFwiQXV0aGVudGljYXRpb24gY2FjaGUgdGltZSBpcyBsZXNzIHRoYW4gNjAgc2Vjb25kcy5cIlxufSBFTFNFIHtcbiAgICAvLyBcIkF1dGhlbnRpY2F0aW9uIGNhY2hlIHRpbWUgaXMgc3VmZmljaWVudC5cIlxufSJ9LCB7Im5hbWUiOiAiTVdHLkF1dGhlbnRpY2F0aW9uRmFpbGVkICgpIiwgInJldHVybl90eXBlIjogIkJPT0xFQU4iLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJuc2BUUlVFYGlmIHRoZSBwcm92aWRlZCBjcmVkZW50aWFscyBmYWlsIHRvIGF1dGhlbnRpY2F0ZS4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiTm9uZSIsICJkZXNjcmlwdGlvbiI6ICJSZXR1cm5zIFRSVUUgaWYgY3JlZGVudGlhbHMgYXJlIHByb3ZpZGVkIGJ1dCB0aGUgYXV0aGVudGljYXRpb24gZmFpbHMgKG5vdCBhcHBsaWNhYmxlIGZvciBjbG91ZCkuIiwgImV4YW1wbGVfY29kZSI6ICJTVFJJTkcgZmFpbHVyZU1lc3NhZ2UgPSBNV0cuQXV0aGVudGljYXRpb25GYWlsdXJlTWVzc2FnZSgpXG4vLyBBdXRoZW50aWNhdGlvbiBmYWlsZWQ6IFwiICsgZmFpbHVyZU1lc3NhZ2Vcbk1XRy5CbG9jayhcIkF1dGhlbnRpY2F0aW9uIGZhaWxlZDogXCIgKyBmYWlsdXJlTWVzc2FnZSkiLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICJTVFJJTkcgZmFpbHVyZU1lc3NhZ2UgPSBNV0cuQXV0aGVudGljYXRpb25GYWlsdXJlTWVzc2FnZSgpXG4vLyBBdXRoZW50aWNhdGlvbiBmYWlsZWQ6IFwiICsgZmFpbHVyZU1lc3NhZ2Vcbk1XRy5CbG9jayhcIkF1dGhlbnRpY2F0aW9uIGZhaWxlZDogXCIgKyBmYWlsdXJlTWVzc2FnZSkifSwgeyJuYW1lIjogIk1XRy5BdXRoZW50aWNhdGlvbkZhaWx1cmVJRCAoKSIsICJyZXR1cm5fdHlwZSI6ICJOVU1CRVIiLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyBhIG51bWVyaWMgSUQgcmVwcmVzZW50aW5nIHRoZSBzcGVjaWZpYyByZWFzb24gZm9yIGF1dGhlbnRpY2F0aW9uIGZhaWx1cmUuIiwgInBhcmFtZXRlcl9kZXNjIjogIk5vbmUiLCAiZGVzY3JpcHRpb24iOiAiUmV0dXJucyBhdXRoZW50aWNhdGlvbiBmYWlsdXJlIHJlYXNvbiBJRCwgbGlrZSBpbnZhbGlkIGNyZWRlbnRpYWxzIG9yIERDIG5vdCBhdmFpbGFibGUuIiwgImV4YW1wbGVfY29kZSI6ICJOVU1CRVIgYXV0aEZhaWx1cmVJRCA9IE1XRy5BdXRoZW50aWNhdGlvbkZhaWx1cmVJRCgpXG5cbklGIGF1dGhGYWlsdXJlSUQgPT0gMSBUSEVOIHtcbiAgICAvLyBBdXRoZW50aWNhdGlvbiBmYWlsZWQ6IEludmFsaWQgY3JlZGVudGlhbHNcbiAgICBNV0cuQmxvY2soXCJJbnZhbGlkIGNyZWRlbnRpYWxzXCIpXG59XG5FTFNFIElGIGF1dGhGYWlsdXJlSUQgPT0gMiBUSEVOIHtcbiAgICAvLyBBdXRoZW50aWNhdGlvbiBmYWlsZWQ6IERvbWFpbiBjb250cm9sbGVyIG5vdCBhdmFpbGFibGVcbiAgICBNV0cuQmxvY2soXCJEb21haW4gY29udHJvbGxlciBub3QgYXZhaWxhYmxlXCIpXG59XG5FTFNFIHtcbiAgICAvLyBBdXRoZW50aWNhdGlvbiBmYWlsZWQ6IFVua25vd24gcmVhc29uXG4gICAgTVdHLkJsb2NrKFwiVW5rbm93biBhdXRoZW50aWNhdGlvbiBmYWlsdXJlXCIpXG59IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiTlVNQkVSIGF1dGhGYWlsdXJlSUQgPSBNV0cuQXV0aGVudGljYXRpb25GYWlsdXJlSUQoKVxuXG5JRiBhdXRoRmFpbHVyZUlEID09IDEgVEhFTiB7XG4gICAgLy8gQXV0aGVudGljYXRpb24gZmFpbGVkOiBJbnZhbGlkIGNyZWRlbnRpYWxzXG4gICAgTVdHLkJsb2NrKFwiSW52YWxpZCBjcmVkZW50aWFsc1wiKVxufVxuRUxTRSBJRiBhdXRoRmFpbHVyZUlEID09IDIgVEhFTiB7XG4gICAgLy8gQXV0aGVudGljYXRpb24gZmFpbGVkOiBEb21haW4gY29udHJvbGxlciBub3QgYXZhaWxhYmxlXG4gICAgTVdHLkJsb2NrKFwiRG9tYWluIGNvbnRyb2xsZXIgbm90IGF2YWlsYWJsZVwiKVxufVxuRUxTRSB7XG4gICAgLy8gQXV0aGVudGljYXRpb24gZmFpbGVkOiBVbmtub3duIHJlYXNvblxuICAgIE1XRy5CbG9jayhcIlVua25vd24gYXV0aGVudGljYXRpb24gZmFpbHVyZVwiKVxufSJ9LCB7Im5hbWUiOiAiTVdHLkF1dGhlbnRpY2F0aW9uRmFpbHVyZU1lc3NhZ2UgKCkiLCAicmV0dXJuX3R5cGUiOiAiU1RSSU5HIiwgInJldHVybl9kZXNjIjogIlJldHVybnMgYSBzdHJpbmcgZXhwbGFpbmluZyB3aHkgYXV0aGVudGljYXRpb24gZmFpbGVkLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJOb25lIiwgImRlc2NyaXB0aW9uIjogIlJldHVybnMgYXV0aGVudGljYXRpb24gZmFpbHVyZSByZWFzb24uIiwgImV4YW1wbGVfY29kZSI6ICJTVFJJTkcgZmFpbHVyZU1lc3NhZ2UgPSBNV0cuQXV0aGVudGljYXRpb25GYWlsdXJlTWVzc2FnZSgpXG4vLyBcIkF1dGhlbnRpY2F0aW9uIGZhaWxlZDogXCIgKyBmYWlsdXJlTWVzc2FnZVxuTVdHLkJsb2NrKFwiQXV0aGVudGljYXRpb24gZmFpbGVkOiBcIiArIGZhaWx1cmVNZXNzYWdlKSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIlNUUklORyBmYWlsdXJlTWVzc2FnZSA9IE1XRy5BdXRoZW50aWNhdGlvbkZhaWx1cmVNZXNzYWdlKClcbi8vIFwiQXV0aGVudGljYXRpb24gZmFpbGVkOiBcIiArIGZhaWx1cmVNZXNzYWdlXG5NV0cuQmxvY2soXCJBdXRoZW50aWNhdGlvbiBmYWlsZWQ6IFwiICsgZmFpbHVyZU1lc3NhZ2UpIn0sIHsibmFtZSI6ICJNV0cuQXV0aGVudGljYXRpb25HZXRSZWFsbSAoKSIsICJyZXR1cm5fdHlwZSI6ICJTVFJJTkciLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyB0aGUgYXV0aGVudGljYXRpb24gcmVhbG0gYXMgYSBzdHJpbmcuIiwgInBhcmFtZXRlcl9kZXNjIjogIk5vbmUiLCAiZGVzY3JpcHRpb24iOiAiR2V0cyBhdXRoZW50aWNhdGlvbiByZWFsbS4iLCAiZXhhbXBsZV9jb2RlIjogIlNUUklORyByZWFsbSA9IE1XRy5BdXRoZW50aWNhdGlvbkdldFJlYWxtKClcbi8vIFRoZSBhdXRoZW50aWNhdGlvbiByZWFsbSBpczogXCIgKyByZWFsbVxuXG5JRiByZWFsbSA9PSBcImV4YW1wbGVSZWFsbVwiIFRIRU4ge1xuICAgIE1XRy5BbGxvdyhcIlJlYWxtIGlzIGV4YW1wbGVSZWFsbVwiKVxufSBFTFNFIHtcbiAgICBNV0cuQmxvY2soXCJBY2Nlc3MgZGVuaWVkOiBJbnZhbGlkIHJlYWxtXCIpXG59IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiU1RSSU5HIHJlYWxtID0gTVdHLkF1dGhlbnRpY2F0aW9uR2V0UmVhbG0oKVxuLy8gVGhlIGF1dGhlbnRpY2F0aW9uIHJlYWxtIGlzOiBcIiArIHJlYWxtXG5cbklGIHJlYWxtID09IFwiZXhhbXBsZVJlYWxtXCIgVEhFTiB7XG4gICAgTVdHLkFsbG93KFwiUmVhbG0gaXMgZXhhbXBsZVJlYWxtXCIpXG59IEVMU0Uge1xuICAgIE1XRy5CbG9jayhcIkFjY2VzcyBkZW5pZWQ6IEludmFsaWQgcmVhbG1cIilcbn0ifSwgeyJuYW1lIjogIk1XRy5BdXRoZW50aWNhdGlvbklzTGFuZGluZ09uU2VydmVyICgpIiwgInJldHVybl90eXBlIjogIkJPT0xFQU4iLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJuc2BUUlVFYGlmIHRoZSBhdXRoZW50aWNhdGlvbiBpcyBsYW5kaW5nIG9uIHRoZSBzZXJ2ZXIuIiwgInBhcmFtZXRlcl9kZXNjIjogIk5vbmUiLCAiZGVzY3JpcHRpb24iOiAiUmV0dXJucyBUUlVFIGlmIHRoZSBhdXRoZW50aWNhdGlvbiBpcyBsYW5kaW5nIG9uIHRoZSBzZXJ2ZXIuIiwgImV4YW1wbGVfY29kZSI6ICIvLyBDYWxsIHRoZSBmdW5jdGlvbiB0byBjaGVjayBpZiB0aGUgYXV0aGVudGljYXRpb24gaXMgbGFuZGluZyBvbiB0aGUgc2VydmVyXG5CT09MRUFOIGlzTGFuZGluZyA9IE1XRy5BdXRoZW50aWNhdGlvbklzTGFuZGluZ09uU2VydmVyKClcblxuLy8gUGVyZm9ybSBhY3Rpb25zIGJhc2VkIG9uIHRoZSByZXN1bHQgb2YgdGhlIGZ1bmN0aW9uXG5JRiBpc0xhbmRpbmcgVEhFTiB7XG4gICAgLy8gXCJBdXRoZW50aWNhdGlvbiBpcyBsYW5kaW5nIG9uIHRoZSBzZXJ2ZXIuXCJcbiAgICAvLyBBZGRpdGlvbmFsIGxvZ2ljIGZvciB3aGVuIGF1dGhlbnRpY2F0aW9uIGlzIGxhbmRpbmcgb24gdGhlIHNlcnZlclxufSBFTFNFIHtcbiAgICAvLyBcIkF1dGhlbnRpY2F0aW9uIGlzIG5vdCBsYW5kaW5nIG9uIHRoZSBzZXJ2ZXIuXCJcbiAgICAvLyBBZGRpdGlvbmFsIGxvZ2ljIGZvciB3aGVuIGF1dGhlbnRpY2F0aW9uIGlzIG5vdCBsYW5kaW5nIG9uIHRoZSBzZXJ2ZXJcbn0iLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICIvLyBDYWxsIHRoZSBmdW5jdGlvbiB0byBjaGVjayBpZiB0aGUgYXV0aGVudGljYXRpb24gaXMgbGFuZGluZyBvbiB0aGUgc2VydmVyXG5CT09MRUFOIGlzTGFuZGluZyA9IE1XRy5BdXRoZW50aWNhdGlvbklzTGFuZGluZ09uU2VydmVyKClcblxuLy8gUGVyZm9ybSBhY3Rpb25zIGJhc2VkIG9uIHRoZSByZXN1bHQgb2YgdGhlIGZ1bmN0aW9uXG5JRiBpc0xhbmRpbmcgVEhFTiB7XG4gICAgLy8gXCJBdXRoZW50aWNhdGlvbiBpcyBsYW5kaW5nIG9uIHRoZSBzZXJ2ZXIuXCJcbiAgICAvLyBBZGRpdGlvbmFsIGxvZ2ljIGZvciB3aGVuIGF1dGhlbnRpY2F0aW9uIGlzIGxhbmRpbmcgb24gdGhlIHNlcnZlclxufSBFTFNFIHtcbiAgICAvLyBcIkF1dGhlbnRpY2F0aW9uIGlzIG5vdCBsYW5kaW5nIG9uIHRoZSBzZXJ2ZXIuXCJcbiAgICAvLyBBZGRpdGlvbmFsIGxvZ2ljIGZvciB3aGVuIGF1dGhlbnRpY2F0aW9uIGlzIG5vdCBsYW5kaW5nIG9uIHRoZSBzZXJ2ZXJcbn0ifSwgeyJuYW1lIjogIk1XRy5BdXRoZW50aWNhdGlvbklzU2VydmVyUmVxdWVzdCAoKSIsICJyZXR1cm5fdHlwZSI6ICJCT09MRUFOIiwgInJldHVybl9kZXNjIjogIlJldHVybnNgVFJVRWBpZiB0aGUgYXV0aGVudGljYXRpb24gaXMgYSBzZXJ2ZXIgcmVxdWVzdC4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiTm9uZSIsICJkZXNjcmlwdGlvbiI6ICJSZXR1cm5zIFRSVUUgaWYgdGhlIGF1dGhlbnRpY2F0aW9uIGlzIGEgc2VydmVyIHJlcXVlc3QuIiwgImV4YW1wbGVfY29kZSI6ICJJRiBNV0cuQXV0aGVudGljYXRpb25Jc1NlcnZlclJlcXVlc3QoKSBUSEVOIHtcbiAgICAvLyBUaGlzIGlzIGEgc2VydmVyIGF1dGhlbnRpY2F0aW9uIHJlcXVlc3QuXG4gICAgLy8gQWRkaXRpb25hbCBsb2dpYyBmb3Igc2VydmVyIGF1dGhlbnRpY2F0aW9uIHJlcXVlc3RzIGNhbiBiZSBhZGRlZCBoZXJlXG59IEVMU0Uge1xuICAgIC8vIFRoaXMgaXMgbm90IGEgc2VydmVyIGF1dGhlbnRpY2F0aW9uIHJlcXVlc3QuXG4gICAgLy8gQWRkaXRpb25hbCBsb2dpYyBmb3Igbm9uLXNlcnZlciBhdXRoZW50aWNhdGlvbiByZXF1ZXN0cyBjYW4gYmUgYWRkZWQgaGVyZVxufSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIklGIE1XRy5BdXRoZW50aWNhdGlvbklzU2VydmVyUmVxdWVzdCgpIFRIRU4ge1xuICAgIC8vIFRoaXMgaXMgYSBzZXJ2ZXIgYXV0aGVudGljYXRpb24gcmVxdWVzdC5cbiAgICAvLyBBZGRpdGlvbmFsIGxvZ2ljIGZvciBzZXJ2ZXIgYXV0aGVudGljYXRpb24gcmVxdWVzdHMgY2FuIGJlIGFkZGVkIGhlcmVcbn0gRUxTRSB7XG4gICAgLy8gVGhpcyBpcyBub3QgYSBzZXJ2ZXIgYXV0aGVudGljYXRpb24gcmVxdWVzdC5cbiAgICAvLyBBZGRpdGlvbmFsIGxvZ2ljIGZvciBub24tc2VydmVyIGF1dGhlbnRpY2F0aW9uIHJlcXVlc3RzIGNhbiBiZSBhZGRlZCBoZXJlXG59In0sIHsibmFtZSI6ICJNV0cuQXV0aGVudGljYXRpb25NZXRob2QgKCkiLCAicmV0dXJuX3R5cGUiOiAiU1RSSU5HIiwgInJldHVybl9kZXNjIjogIlJldHVybnMgYSBzdHJpbmcgaW5kaWNhdGluZyB0aGUgbmFtZSBvZiB0aGUgbW9zdCByZWNlbnRseSBzdWNjZXNzZnVsIGF1dGhlbnRpY2F0aW9uIG1ldGhvZC4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiTm9uZSIsICJkZXNjcmlwdGlvbiI6ICJSZXR1cm5zIHRoZSBuYW1lIG9mIHRoZSBsYXN0IHN1Y2Nlc3NmdWwgYXV0aGVudGljYXRpb24gbWV0aG9kLiIsICJleGFtcGxlX2NvZGUiOiAiTVdHLkF1dGhlbnRpY2F0aW9uU2V0TWV0aG9kKFwiQmFzaWNcIilcbi8vIEF1dGhlbnRpY2F0aW9uIG1ldGhvZCBzZXQgdG8gQmFzaWMiLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICJNV0cuQXV0aGVudGljYXRpb25TZXRNZXRob2QoXCJCYXNpY1wiKVxuLy8gQXV0aGVudGljYXRpb24gbWV0aG9kIHNldCB0byBCYXNpYyJ9LCB7Im5hbWUiOiAiTVdHLkF1dGhlbnRpY2F0aW9uUmF3Q3JlZGVudGlhbHMgKCkiLCAicmV0dXJuX3R5cGUiOiAiU1RSSU5HIiwgInJldHVybl9kZXNjIjogIlJldHVybnMgYSBzdHJpbmcgY29udGFpbmluZyB0aGUgYXV0aGVudGljYXRpb24gY3JlZGVudGlhbHMuIiwgInBhcmFtZXRlcl9kZXNjIjogIk5vbmUiLCAiZGVzY3JpcHRpb24iOiAiUmV0dXJucyBhdXRoZW50aWNhdGlvbiBjcmVkZW50aWFsIHN0cmluZy4iLCAiZXhhbXBsZV9jb2RlIjogIlNUUklORyBjcmVkZW50aWFscyA9IE1XRy5BdXRoZW50aWNhdGlvblJhd0NyZWRlbnRpYWxzKClcbi8vIFwiQXV0aGVudGljYXRpb24gQ3JlZGVudGlhbHM6IFwiICsgY3JlZGVudGlhbHMiLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICJTVFJJTkcgY3JlZGVudGlhbHMgPSBNV0cuQXV0aGVudGljYXRpb25SYXdDcmVkZW50aWFscygpXG4vLyBcIkF1dGhlbnRpY2F0aW9uIENyZWRlbnRpYWxzOiBcIiArIGNyZWRlbnRpYWxzIn0sIHsibmFtZSI6ICJNV0cuQXV0aGVudGljYXRpb25SYXdVc2VybmFtZSAoKSIsICJyZXR1cm5fdHlwZSI6ICJTVFJJTkciLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyB0aGUgdW5wcm9jZXNzZWQgdXNlcm5hbWUgdXNlZCBmb3IgYXV0aGVudGljYXRpb24uIiwgInBhcmFtZXRlcl9kZXNjIjogIk5vbmUiLCAiZGVzY3JpcHRpb24iOiAiUmV0dXJucyByYXcgYXV0aGVudGljYXRpb24gdXNlciBuYW1lLiIsICJleGFtcGxlX2NvZGUiOiAiU1RSSU5HIHJhd1VzZXJuYW1lID0gTVdHLkF1dGhlbnRpY2F0aW9uUmF3VXNlcm5hbWUoKVxuLy8gUmF3IFVzZXJuYW1lOiArIHJhd1VzZXJuYW1lIiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiU1RSSU5HIHJhd1VzZXJuYW1lID0gTVdHLkF1dGhlbnRpY2F0aW9uUmF3VXNlcm5hbWUoKVxuLy8gUmF3IFVzZXJuYW1lOiArIHJhd1VzZXJuYW1lIn0sIHsibmFtZSI6ICJNV0cuQXV0aGVudGljYXRpb25Ub2tlbiAoKSIsICJyZXR1cm5fdHlwZSI6ICJTVFJJTkciLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyBhdXRoZW50aWNhdGlvbiB0b2tlbi4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiTm9uZSIsICJkZXNjcmlwdGlvbiI6ICJSZXR1cm5zIGF1dGhlbnRpY2F0aW9uIHRva2VuLiIsICJleGFtcGxlX2NvZGUiOiAiLy8gUmV0cmlldmUgdGhlIGF1dGhlbnRpY2F0aW9uIHRva2VuXG5TVFJJTkcgYXV0aFRva2VuID0gTVdHLkF1dGhlbnRpY2F0aW9uVG9rZW4oKVxuXG4vLyBBdXRoZW50aWNhdGlvbiBUb2tlbjogXCIgKyBhdXRoVG9rZW5cblxuLy8gVXNlIHRoZSBhdXRoZW50aWNhdGlvbiB0b2tlbiBpbiBzb21lIGxvZ2ljXG5JRiBhdXRoVG9rZW4gIT0gXCJcIiBUSEVOIHtcbiAgICAvLyBBbGxvdyB0aGUgY29ubmVjdGlvbiBhbmQgbG9nIHRoZSBydWxlXG4gICAgTVdHLkFsbG93KFwiQXV0aGVudGljYXRlZCB3aXRoIHRva2VuXCIpXG59IEVMU0Uge1xuICAgIC8vIEJsb2NrIHRoZSBjb25uZWN0aW9uIGlmIG5vIHRva2VuIGlzIHByZXNlbnRcbiAgICBNV0cuQmxvY2soXCJObyBhdXRoZW50aWNhdGlvbiB0b2tlbiBmb3VuZFwiKVxufSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIi8vIFJldHJpZXZlIHRoZSBhdXRoZW50aWNhdGlvbiB0b2tlblxuU1RSSU5HIGF1dGhUb2tlbiA9IE1XRy5BdXRoZW50aWNhdGlvblRva2VuKClcblxuLy8gQXV0aGVudGljYXRpb24gVG9rZW46IFwiICsgYXV0aFRva2VuXG5cbi8vIFVzZSB0aGUgYXV0aGVudGljYXRpb24gdG9rZW4gaW4gc29tZSBsb2dpY1xuSUYgYXV0aFRva2VuICE9IFwiXCIgVEhFTiB7XG4gICAgLy8gQWxsb3cgdGhlIGNvbm5lY3Rpb24gYW5kIGxvZyB0aGUgcnVsZVxuICAgIE1XRy5BbGxvdyhcIkF1dGhlbnRpY2F0ZWQgd2l0aCB0b2tlblwiKVxufSBFTFNFIHtcbiAgICAvLyBCbG9jayB0aGUgY29ubmVjdGlvbiBpZiBubyB0b2tlbiBpcyBwcmVzZW50XG4gICAgTVdHLkJsb2NrKFwiTm8gYXV0aGVudGljYXRpb24gdG9rZW4gZm91bmRcIilcbn0ifSwgeyJuYW1lIjogIk1XRy5BVk1pdHJlVGFncyAoTVdHLkFudGltYWx3YXJlU2V0dGluZykiLCAicmV0dXJuX3R5cGUiOiAiVkVDVE9SPFNUUklORz4iLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyBsaXN0IG9mIE1JVFJFIHRhZ3MuIiwgInBhcmFtZXRlcl9kZXNjIjogIk1XRy5BbnRpbWFsd2FyZVNldHRpbmc6IGNvbmZpZ3VyYXRpb24gc2V0dGluZ3MuIiwgImRlc2NyaXB0aW9uIjogIlJldHVybnMgbGlzdCBvZiBNSVRSRSB0YWdzLiIsICJleGFtcGxlX2NvZGUiOiAiLy8gQ3JlYXRlIGFuIGluc3RhbmNlIG9mIE1XRy5BbnRpbWFsd2FyZVNldHRpbmdcbk1XRy5BbnRpbWFsd2FyZVNldHRpbmcgYW50aW1hbHdhcmVTZXR0aW5nID0gTVdHLkFudGltYWx3YXJlU2V0dGluZygpXG5cbi8vIFJldHJpZXZlIHRoZSBNSVRSRSB0YWdzXG5WRUNUT1I8U1RSSU5HPiBtaXRyZVRhZ3MgPSBNV0cuQVZNaXRyZVRhZ3MoYW50aW1hbHdhcmVTZXR0aW5nKVxuXG4vLyBDaGVjayBpZiBzcGVjaWZpYyBNSVRSRSB0YWcgZXhpc3RzXG5JRiBcIlQxMDU5XCIgSU4gbWl0cmVUYWdzIFRIRU4ge1xuICAgIC8vIE1JVFJFIHRhZyBUMTA1OSBkZXRlY3RlZFxuICAgIE1XRy5CbG9jayhcIkRldGVjdGVkIE1JVFJFIHRhZyBUMTA1OVwiKVxufSBFTFNFIHtcbiAgICAvLyBObyByZWxldmFudCBNSVRSRSB0YWdzIGRldGVjdGVkXG4gICAgTVdHLkFsbG93KFwiTm8gcmVsZXZhbnQgTUlUUkUgdGFnc1wiKVxufSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIi8vIENyZWF0ZSBhbiBpbnN0YW5jZSBvZiBNV0cuQW50aW1hbHdhcmVTZXR0aW5nXG5NV0cuQW50aW1hbHdhcmVTZXR0aW5nIGFudGltYWx3YXJlU2V0dGluZyA9IE1XRy5BbnRpbWFsd2FyZVNldHRpbmcoKVxuXG4vLyBSZXRyaWV2ZSB0aGUgTUlUUkUgdGFnc1xuVkVDVE9SPFNUUklORz4gbWl0cmVUYWdzID0gTVdHLkFWTWl0cmVUYWdzKGFudGltYWx3YXJlU2V0dGluZylcblxuLy8gQ2hlY2sgaWYgc3BlY2lmaWMgTUlUUkUgdGFnIGV4aXN0c1xuSUYgXCJUMTA1OVwiIElOIG1pdHJlVGFncyBUSEVOIHtcbiAgICAvLyBNSVRSRSB0YWcgVDEwNTkgZGV0ZWN0ZWRcbiAgICBNV0cuQmxvY2soXCJEZXRlY3RlZCBNSVRSRSB0YWcgVDEwNTlcIilcbn0gRUxTRSB7XG4gICAgLy8gTm8gcmVsZXZhbnQgTUlUUkUgdGFncyBkZXRlY3RlZFxuICAgIE1XRy5BbGxvdyhcIk5vIHJlbGV2YW50IE1JVFJFIHRhZ3NcIilcbn0ifSwgeyJuYW1lIjogIk1XRy5CbG9ja0hlYWRlcnMgKCkiLCAicmV0dXJuX3R5cGUiOiAiTVdHLkhlYWRlck1hcCIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIHRoZSBoZWFkZXJzIGNvbmZpZ3VyZWQgZm9yIGJsb2NraW5nIG5ldHdvcmsgcmVxdWVzdHMuIiwgInBhcmFtZXRlcl9kZXNjIjogIk5vbmUiLCAiZGVzY3JpcHRpb24iOiAiUmV0dXJucyB0aGUgaGVhZGVyIHRvIGJlIHVzZWQgaW4gYmxvY2tlZCByZXF1ZXN0cy4iLCAiZXhhbXBsZV9jb2RlIjogIi8vIFJldHJpZXZlIHRoZSBoZWFkZXJzIGNvbmZpZ3VyZWQgZm9yIGJsb2NraW5nIG5ldHdvcmsgcmVxdWVzdHNcbk1XRy5IZWFkZXJNYXAgYmxvY2tIZWFkZXJzID0gTVdHLkJsb2NrSGVhZGVycygpXG5cbi8vIEFkZCBhIGN1c3RvbSBoZWFkZXIgdG8gdGhlIGJsb2NrIGhlYWRlcnNcbmJsb2NrSGVhZGVyc1tcIlgtQ3VzdG9tLUhlYWRlclwiXSA9IFwiQmxvY2tlZCBieSBwb2xpY3lcIlxuXG4vLyBCbG9jayB0aGUgcmVxdWVzdCB3aXRoIGEgY3VzdG9tIG1lc3NhZ2Vcbk1XRy5CbG9jayhcIlJlcXVlc3QgYmxvY2tlZCBkdWUgdG8gcG9saWN5IHZpb2xhdGlvblwiKSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIi8vIFJldHJpZXZlIHRoZSBoZWFkZXJzIGNvbmZpZ3VyZWQgZm9yIGJsb2NraW5nIG5ldHdvcmsgcmVxdWVzdHNcbk1XRy5IZWFkZXJNYXAgYmxvY2tIZWFkZXJzID0gTVdHLkJsb2NrSGVhZGVycygpXG5cbi8vIEFkZCBhIGN1c3RvbSBoZWFkZXIgdG8gdGhlIGJsb2NrIGhlYWRlcnNcbmJsb2NrSGVhZGVyc1tcIlgtQ3VzdG9tLUhlYWRlclwiXSA9IFwiQmxvY2tlZCBieSBwb2xpY3lcIlxuXG4vLyBCbG9jayB0aGUgcmVxdWVzdCB3aXRoIGEgY3VzdG9tIG1lc3NhZ2Vcbk1XRy5CbG9jayhcIlJlcXVlc3QgYmxvY2tlZCBkdWUgdG8gcG9saWN5IHZpb2xhdGlvblwiKSJ9LCB7Im5hbWUiOiAiTVdHLkJsb2NrUmVhc29uICgpIiwgInJldHVybl90eXBlIjogIlNUUklORyIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIGEgc3RyaW5nIHRoYXQgZXhwbGFpbnMgd2h5IGFuIGFjdGlvbiB3YXMgYmxvY2tlZC4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiTm9uZSIsICJkZXNjcmlwdGlvbiI6ICJSZXR1cm5zIHRoZSByZWFzb24gb2YgYmxvY2sgYWN0aW9uLiIsICJleGFtcGxlX2NvZGUiOiAiU1RSSU5HIHJlYXNvbiA9IFwiQWNjZXNzIHRvIHRoaXMgc2l0ZSBpcyBibG9ja2VkIGR1ZSB0byBwb2xpY3kgcmVzdHJpY3Rpb25zLlwiXG4vLyBUaGUgZm9sbG93aW5nIGxpbmUgYmxvY2tzIGFjY2VzcyB3aXRoIHRoZSBnaXZlbiByZWFzb25cbi8vIE1XRy5CbG9jayhyZWFzb24pIiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiU1RSSU5HIHJlYXNvbiA9IFwiQWNjZXNzIHRvIHRoaXMgc2l0ZSBpcyBibG9ja2VkIGR1ZSB0byBwb2xpY3kgcmVzdHJpY3Rpb25zLlwiXG4vLyBUaGUgZm9sbG93aW5nIGxpbmUgYmxvY2tzIGFjY2VzcyB3aXRoIHRoZSBnaXZlbiByZWFzb25cbi8vIE1XRy5CbG9jayhyZWFzb24pIn0sIHsibmFtZSI6ICJNV0cuQmxvY2tSZWFzb25JZCAoKSIsICJyZXR1cm5fdHlwZSI6ICJOVU1CRVIiLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyB0aGUgbnVtZXJpYyBpZGVudGlmaWVyIGFzc29jaWF0ZWQgd2l0aCB0aGUgcmVhc29uIGZvciBhIGJsb2NrLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJOb25lIiwgImRlc2NyaXB0aW9uIjogIlJldHVybnMgdGhlIG51bWVyaWMgSUQgb2YgdGhlIGJsb2NrIHJlYXNvbi4iLCAiZXhhbXBsZV9jb2RlIjogIk5VTUJFUiBibG9ja1JlYXNvbklkID0gTVdHLkJsb2NrUmVhc29uSWQoKVxuLy8gXCJCbG9jayBSZWFzb24gSUQ6IFwiICsgYmxvY2tSZWFzb25JZCIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIk5VTUJFUiBibG9ja1JlYXNvbklkID0gTVdHLkJsb2NrUmVhc29uSWQoKVxuLy8gXCJCbG9jayBSZWFzb24gSUQ6IFwiICsgYmxvY2tSZWFzb25JZCJ9LCB7Im5hbWUiOiAiTVdHLkJvZHkgKE1XRy5SZXF1ZXN0UmVzcG9uc2UpIiwgInJldHVybl90eXBlIjogIlNUUkVBTSIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIHRoZSBib2R5IG9mIHRoZSByZXF1ZXN0IG9yIHJlc3BvbnNlIGFzIGEgc3RyZWFtLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJNV0cuUmVxdWVzdFJlc3BvbnNlOiBUaGUgcmVxdWVzdCBvciByZXNwb25zZSBvYmplY3QgY29udGFpbmluZyB0aGUgYm9keSB0byBiZSBzdHJlYW1lZC4iLCAiZGVzY3JpcHRpb24iOiAiUmV0dXJucyB0aGUgYm9keSBhcyBhIHN0cmVhbS4iLCAiZXhhbXBsZV9jb2RlIjogIk1XRy5SZXF1ZXN0UmVzcG9uc2UgcmVzcG9uc2UgPSBNV0cuVXJsKClcblNUUkVBTSByZXNwb25zZUJvZHkgPSBNV0cuQm9keShyZXNwb25zZSlcblxuLy8gQXNzdW1pbmcgdGhlcmUncyBhIGZ1bmN0aW9uIHRvIGNvbnZlcnQgU1RSRUFNIHRvIFNUUklORyBmb3IgZGVidWdnaW5nXG5TVFJJTkcgcmVzcG9uc2VCb2R5U3RyaW5nID0gQ29udmVydFN0cmVhbVRvU3RyaW5nKHJlc3BvbnNlQm9keSlcblxuLy8gRGVidWc6IHJlc3BvbnNlQm9keVN0cmluZ1xuXG4vLyBIZWxwZXIgZnVuY3Rpb24gdG8gY29udmVydCBTVFJFQU0gdG8gU1RSSU5HIChoeXBvdGhldGljYWwsIGZvciBpbGx1c3RyYXRpb24gcHVycG9zZXMpXG5GVU5DVElPTiBDb252ZXJ0U3RyZWFtVG9TdHJpbmcoU1RSRUFNIHN0cmVhbSkgUkVUVVJOUyBTVFJJTkcge1xuICAgIC8vIEltcGxlbWVudGF0aW9uIHRvIGNvbnZlcnQgc3RyZWFtIHRvIHN0cmluZ1xuICAgIC8vIFRoaXMgaXMganVzdCBhIHBsYWNlaG9sZGVyIGFuZCBtYXkgbm90IGJlIGFuIGFjdHVhbCBNT1dHTEkgZnVuY3Rpb25cbiAgICBSRVRVUk4gXCJDb252ZXJ0ZWQgU3RyZWFtIENvbnRlbnRcIlxufSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIk1XRy5SZXF1ZXN0UmVzcG9uc2UgcmVzcG9uc2UgPSBNV0cuVXJsKClcblNUUkVBTSByZXNwb25zZUJvZHkgPSBNV0cuQm9keShyZXNwb25zZSlcblxuLy8gQXNzdW1pbmcgdGhlcmUncyBhIGZ1bmN0aW9uIHRvIGNvbnZlcnQgU1RSRUFNIHRvIFNUUklORyBmb3IgZGVidWdnaW5nXG5TVFJJTkcgcmVzcG9uc2VCb2R5U3RyaW5nID0gQ29udmVydFN0cmVhbVRvU3RyaW5nKHJlc3BvbnNlQm9keSlcblxuLy8gRGVidWc6IHJlc3BvbnNlQm9keVN0cmluZ1xuXG4vLyBIZWxwZXIgZnVuY3Rpb24gdG8gY29udmVydCBTVFJFQU0gdG8gU1RSSU5HIChoeXBvdGhldGljYWwsIGZvciBpbGx1c3RyYXRpb24gcHVycG9zZXMpXG5GVU5DVElPTiBDb252ZXJ0U3RyZWFtVG9TdHJpbmcoU1RSRUFNIHN0cmVhbSkgUkVUVVJOUyBTVFJJTkcge1xuICAgIC8vIEltcGxlbWVudGF0aW9uIHRvIGNvbnZlcnQgc3RyZWFtIHRvIHN0cmluZ1xuICAgIC8vIFRoaXMgaXMganVzdCBhIHBsYWNlaG9sZGVyIGFuZCBtYXkgbm90IGJlIGFuIGFjdHVhbCBNT1dHTEkgZnVuY3Rpb25cbiAgICBSRVRVUk4gXCJDb252ZXJ0ZWQgU3RyZWFtIENvbnRlbnRcIlxufSJ9LCB7Im5hbWUiOiAiTVdHLkJvZHlBbGxNZW1iZXJDb3VudCAoKSIsICJyZXR1cm5fdHlwZSI6ICJOVU1CRVIiLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyB0aGUgdG90YWwgbnVtYmVyIG9mIGVtYmVkZGVkIG9iamVjdHMgd2l0aGluIGFyY2hpdmVzIG9yIGRvY3VtZW50cy4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiTm9uZSIsICJkZXNjcmlwdGlvbiI6ICJSZXR1cm5zIG51bWJlciBvZiBlbWJlZGRlZCBvYmplY3RzIGZvciBhcmNoaXZlcyBvciBkb2N1bWVudHMuIiwgImV4YW1wbGVfY29kZSI6ICJOVU1CRVIgZW1iZWRkZWRPYmplY3RDb3VudCA9IE1XRy5Cb2R5QWxsTWVtYmVyQ291bnQoKVxuXG5JRiBlbWJlZGRlZE9iamVjdENvdW50ID4gMCBUSEVOIHtcbiAgICAvLyBOdW1iZXIgb2YgZW1iZWRkZWQgb2JqZWN0czogXCIgKyBlbWJlZGRlZE9iamVjdENvdW50XG59IEVMU0Uge1xuICAgIC8vIE5vIGVtYmVkZGVkIG9iamVjdHMgZm91bmQuXG59IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiTlVNQkVSIGVtYmVkZGVkT2JqZWN0Q291bnQgPSBNV0cuQm9keUFsbE1lbWJlckNvdW50KClcblxuSUYgZW1iZWRkZWRPYmplY3RDb3VudCA+IDAgVEhFTiB7XG4gICAgLy8gTnVtYmVyIG9mIGVtYmVkZGVkIG9iamVjdHM6IFwiICsgZW1iZWRkZWRPYmplY3RDb3VudFxufSBFTFNFIHtcbiAgICAvLyBObyBlbWJlZGRlZCBvYmplY3RzIGZvdW5kLlxufSJ9LCB7Im5hbWUiOiAiTVdHLkJvZHlBbGxNZW1iZXJOYW1lcyAoKSIsICJyZXR1cm5fdHlwZSI6ICJWRUNUT1I8U1RSSU5HPiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIGEgdmVjdG9yIGNvbnRhaW5pbmcgbWVtYmVycyBpbiB0aGUgYXJjaGl2ZS4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiTm9uZSIsICJkZXNjcmlwdGlvbiI6ICJSZXR1cm5zIGEgbGlzdCBvZiBhbGwgbWVtYmVycyBvZiB0aGUgYXJjaGl2ZS4iLCAiZXhhbXBsZV9jb2RlIjogIlZFQ1RPUjxTVFJJTkc+IG1lbWJlck5hbWVzID0gTVdHLkJvZHlBbGxNZW1iZXJOYW1lcygpXG4vLyBNZW1iZXJzIGluIHRoZSBhcmNoaXZlOiAgKyBtZW1iZXJOYW1lcyIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIlZFQ1RPUjxTVFJJTkc+IG1lbWJlck5hbWVzID0gTVdHLkJvZHlBbGxNZW1iZXJOYW1lcygpXG4vLyBNZW1iZXJzIGluIHRoZSBhcmNoaXZlOiAgKyBtZW1iZXJOYW1lcyJ9LCB7Im5hbWUiOiAiTVdHLkJvZHlBc051bWJlciAoTlVNQkVSLCBOVU1CRVIsIEJPT0xFQU4pIiwgInJldHVybl90eXBlIjogIk5VTUJFUiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIHRoZSBib2R5IGFzIGEgbnVtYmVyLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJOVU1CRVI6IFRoZSBzdGFydGluZyBwb3NpdGlvbjsgTlVNQkVSOiBUaGUgbGVuZ3RoIHRvIHVzZTsgQk9PTEVBTjogVFJVRSBmb3IgbGl0dGxlIGVuZGlhbi4iLCAiZGVzY3JpcHRpb24iOiAiUmV0dXJucyB0aGUgYm9keSBhcyBhIG51bWJlci4iLCAiZXhhbXBsZV9jb2RlIjogIi8vIERlZmluZSB0aGUgc3RhcnRpbmcgcG9zaXRpb24sIGxlbmd0aCwgYW5kIGVuZGlhbm5lc3Ncbk5VTUJFUiBzdGFydFBvc2l0aW9uID0gMFxuTlVNQkVSIGxlbmd0aCA9IDRcbkJPT0xFQU4gaXNMaXR0bGVFbmRpYW4gPSBUUlVFXG5cbi8vIEV4dHJhY3QgdGhlIG51bWJlciBmcm9tIHRoZSBib2R5XG5OVU1CRVIgZXh0cmFjdGVkTnVtYmVyID0gTVdHLkJvZHlBc051bWJlcihzdGFydFBvc2l0aW9uLCBsZW5ndGgsIGlzTGl0dGxlRW5kaWFuKVxuXG4vLyBQcmludCB0aGUgZXh0cmFjdGVkIG51bWJlciB0byB0aGUgZGVidWcgY29uc29sZVxuLy8gXCJFeHRyYWN0ZWQgTnVtYmVyOiBcIiArIGV4dHJhY3RlZE51bWJlciIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIi8vIERlZmluZSB0aGUgc3RhcnRpbmcgcG9zaXRpb24sIGxlbmd0aCwgYW5kIGVuZGlhbm5lc3Ncbk5VTUJFUiBzdGFydFBvc2l0aW9uID0gMFxuTlVNQkVSIGxlbmd0aCA9IDRcbkJPT0xFQU4gaXNMaXR0bGVFbmRpYW4gPSBUUlVFXG5cbi8vIEV4dHJhY3QgdGhlIG51bWJlciBmcm9tIHRoZSBib2R5XG5OVU1CRVIgZXh0cmFjdGVkTnVtYmVyID0gTVdHLkJvZHlBc051bWJlcihzdGFydFBvc2l0aW9uLCBsZW5ndGgsIGlzTGl0dGxlRW5kaWFuKVxuXG4vLyBQcmludCB0aGUgZXh0cmFjdGVkIG51bWJlciB0byB0aGUgZGVidWcgY29uc29sZVxuLy8gXCJFeHRyYWN0ZWQgTnVtYmVyOiBcIiArIGV4dHJhY3RlZE51bWJlciJ9LCB7Im5hbWUiOiAiTVdHLkJvZHlBc1NUUklORyAoTlVNQkVSLCBOVU1CRVIpIiwgInJldHVybl90eXBlIjogIlNUUklORyIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIHRoZSBzdWJzdHJpbmcgb2YgdGhlIGJvZHkgZm91bmQgYmV0d2VlbiB0aGUgdHdvIHNwZWNpZmllZCBudW1lcmljYWwgaW5kaWNlcy4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiTlVNQkVSOiB0aGUgc3RhcnRpbmcgcG9zaXRpb247IE5VTUJFUjogdGhlIGVuZGluZyBwb3NpdGlvbi4iLCAiZGVzY3JpcHRpb24iOiAiUmV0dXJucyB0aGUgYm9keSBiZXR3ZWVuIHRoZSBnaXZlbiBwYXJhbWV0ZXJzLiIsICJleGFtcGxlX2NvZGUiOiAiLy8gRGVmaW5lIHRoZSBzdGFydCBhbmQgZW5kIHBvc2l0aW9ucyBmb3IgdGhlIHN1YnN0cmluZ1xuTlVNQkVSIHN0YXJ0UG9zaXRpb24gPSAxMFxuTlVNQkVSIGVuZFBvc2l0aW9uID0gNTBcblxuLy8gVXNlIHRoZSBNV0cuQm9keUFzU3RyaW5nIGZ1bmN0aW9uIHRvIGdldCB0aGUgc3Vic3RyaW5nXG5TVFJJTkcgYm9keVN1YnN0cmluZyA9IE1XRy5Cb2R5QXNTdHJpbmcoc3RhcnRQb3NpdGlvbiwgZW5kUG9zaXRpb24pXG5cbi8vIEV4dHJhY3RlZCBTdWJzdHJpbmc6IFwiICsgYm9keVN1YnN0cmluZyIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIi8vIERlZmluZSB0aGUgc3RhcnQgYW5kIGVuZCBwb3NpdGlvbnMgZm9yIHRoZSBzdWJzdHJpbmdcbk5VTUJFUiBzdGFydFBvc2l0aW9uID0gMTBcbk5VTUJFUiBlbmRQb3NpdGlvbiA9IDUwXG5cbi8vIFVzZSB0aGUgTVdHLkJvZHlBc1N0cmluZyBmdW5jdGlvbiB0byBnZXQgdGhlIHN1YnN0cmluZ1xuU1RSSU5HIGJvZHlTdWJzdHJpbmcgPSBNV0cuQm9keUFzU3RyaW5nKHN0YXJ0UG9zaXRpb24sIGVuZFBvc2l0aW9uKVxuXG4vLyBFeHRyYWN0ZWQgU3Vic3RyaW5nOiBcIiArIGJvZHlTdWJzdHJpbmcifSwgeyJuYW1lIjogIk1XRy5Cb2R5Q2xhc3NJRCAoKSIsICJyZXR1cm5fdHlwZSI6ICJTVFJJTkciLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyB0aGUgY2xhc3MgSUQgb2YgZW1iZWRkZWQgTWljcm9zb2Z0IFdpbmRvd3Mgb2JqZWN0cyBhcyBhIHN0cmluZy4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiTm9uZSIsICJkZXNjcmlwdGlvbiI6ICJSZXR1cm5zIHRoZSBjbGFzcyBJRCBmb3IgZW1iZWRkZWQgTWljcm9zb2Z0IFdpbmRvd3Mgb2JqZWN0cy4iLCAiZXhhbXBsZV9jb2RlIjogIlNUUklORyBjbGFzc0lEID0gTVdHLkJvZHlDbGFzc0lEKClcbi8vIFRoZSBjbGFzcyBJRCBvZiB0aGUgZW1iZWRkZWQgTWljcm9zb2Z0IFdpbmRvd3Mgb2JqZWN0IGlzOiBcIiArIGNsYXNzSURcblxuSUYgY2xhc3NJRCA9PSBcImRlc2lyZWRfY2xhc3NfaWRcIiBUSEVOIHtcbiAgICBNV0cuQWxsb3coXCJDbGFzcyBJRCBtYXRjaGVkXCIpXG59IEVMU0Uge1xuICAgIE1XRy5CbG9jayhcIkNsYXNzIElEIGRpZCBub3QgbWF0Y2hcIilcbn0iLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICJTVFJJTkcgY2xhc3NJRCA9IE1XRy5Cb2R5Q2xhc3NJRCgpXG4vLyBUaGUgY2xhc3MgSUQgb2YgdGhlIGVtYmVkZGVkIE1pY3Jvc29mdCBXaW5kb3dzIG9iamVjdCBpczogXCIgKyBjbGFzc0lEXG5cbklGIGNsYXNzSUQgPT0gXCJkZXNpcmVkX2NsYXNzX2lkXCIgVEhFTiB7XG4gICAgTVdHLkFsbG93KFwiQ2xhc3MgSUQgbWF0Y2hlZFwiKVxufSBFTFNFIHtcbiAgICBNV0cuQmxvY2soXCJDbGFzcyBJRCBkaWQgbm90IG1hdGNoXCIpXG59In0sIHsibmFtZSI6ICJNV0cuQm9keURhdGEgKE1XRy5SZXF1ZXN0UmVzcG9uc2UpIiwgInJldHVybl90eXBlIjogIkRBVEFSRUYiLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyB0aGUgYm9keSBhcyBhIGBEQVRBUkVGYC4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiIiwgImRlc2NyaXB0aW9uIjogIlJldHVybnMgdGhlIGJvZHkgYXMgYSBgREFUQVJFRmAuIiwgImV4YW1wbGVfY29kZSI6ICIvLyBSZXRyaWV2ZSB0aGUgYm9keSBkYXRhIG9mIHRoZSBjdXJyZW50IHJlc3BvbnNlXG5EQVRBUkVGIGJvZHlEYXRhID0gTVdHLkJvZHlEYXRhKFdlYi5SZXNwb25zZSlcblxuLy8gQ29udmVydCB0aGUgREFUQVJFRiB0byBhIFNUUklORyBmb3IgZGVidWdnaW5nIHB1cnBvc2VzXG5TVFJJTkcgYm9keVN0cmluZyA9IGJvZHlEYXRhLlRvU3RyaW5nKClcblxuLy8gQm9keSBEYXRhOiBib2R5U3RyaW5nIiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiLy8gUmV0cmlldmUgdGhlIGJvZHkgZGF0YSBvZiB0aGUgY3VycmVudCByZXNwb25zZVxuREFUQVJFRiBib2R5RGF0YSA9IE1XRy5Cb2R5RGF0YShXZWIuUmVzcG9uc2UpXG5cbi8vIENvbnZlcnQgdGhlIERBVEFSRUYgdG8gYSBTVFJJTkcgZm9yIGRlYnVnZ2luZyBwdXJwb3Nlc1xuU1RSSU5HIGJvZHlTdHJpbmcgPSBib2R5RGF0YS5Ub1N0cmluZygpXG5cbi8vIEJvZHkgRGF0YTogYm9keVN0cmluZyJ9LCB7Im5hbWUiOiAiTVdHLkJvZHlFcXVhbHNQYXR0ZXJuIChOVU1CRVIsIFNUUklORykiLCAicmV0dXJuX3R5cGUiOiAiQk9PTEVBTiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zYFRSVUVgaWYgdGhlIHNwZWNpZmllZCBwYXR0ZXJuIGV4aXN0cyBhdCB0aGUgc3BlY2lmaWVkIHBvc2l0aW9uIGluIHRoZSBib2R5LiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJOVU1CRVI6IHRoZSBwb3NpdGlvbiBpbiB0aGUgYm9keSB0byBjaGVjayBmb3IgdGhlIHBhdHRlcm47IFNUUklORzogdGhlIHBhdHRlcm4gdG8gbWF0Y2ggd2l0aGluIHRoZSBib2R5LiIsICJkZXNjcmlwdGlvbiI6ICJSZXR1cm5zIFRSVUUgaWYgdGhlIGJvZHkgY29udGFpbnMgYSBnaXZlbiBwYXR0ZXJuIGF0IGEgZ2l2ZW4gcG9zaXRpb24uIiwgImV4YW1wbGVfY29kZSI6ICJOVU1CRVIgYm9keUluZGV4ID0gMFxuU1RSSU5HIHBhdHRlcm4gPSBcImV4YW1wbGVQYXR0ZXJuXCJcblxuSUYgTVdHLkJvZHlFcXVhbHNQYXR0ZXJuKGJvZHlJbmRleCwgcGF0dGVybikgVEhFTiB7XG4gICAgLy8gUGF0dGVybiBtYXRjaGVkIGluIHRoZSBib2R5IG9mIHRoZSByZXNwb25zZVxuICAgIE1XRy5CbG9jayhcIkJsb2NrZWQgZHVlIHRvIHBhdHRlcm4gbWF0Y2ggaW4gcmVzcG9uc2UgYm9keVwiKVxufSBFTFNFIHtcbiAgICAvLyBQYXR0ZXJuIG5vdCBmb3VuZCBpbiB0aGUgYm9keSBvZiB0aGUgcmVzcG9uc2VcbiAgICBNV0cuQWxsb3coXCJObyBwYXR0ZXJuIG1hdGNoIGZvdW5kXCIpXG59IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiTlVNQkVSIGJvZHlJbmRleCA9IDBcblNUUklORyBwYXR0ZXJuID0gXCJleGFtcGxlUGF0dGVyblwiXG5cbklGIE1XRy5Cb2R5RXF1YWxzUGF0dGVybihib2R5SW5kZXgsIHBhdHRlcm4pIFRIRU4ge1xuICAgIC8vIFBhdHRlcm4gbWF0Y2hlZCBpbiB0aGUgYm9keSBvZiB0aGUgcmVzcG9uc2VcbiAgICBNV0cuQmxvY2soXCJCbG9ja2VkIGR1ZSB0byBwYXR0ZXJuIG1hdGNoIGluIHJlc3BvbnNlIGJvZHlcIilcbn0gRUxTRSB7XG4gICAgLy8gUGF0dGVybiBub3QgZm91bmQgaW4gdGhlIGJvZHkgb2YgdGhlIHJlc3BvbnNlXG4gICAgTVdHLkFsbG93KFwiTm8gcGF0dGVybiBtYXRjaCBmb3VuZFwiKVxufSJ9LCB7Im5hbWUiOiAiTVdHLkJvZHlFeHRyYWN0ZWRUZXh0ICgpIiwgInJldHVybl90eXBlIjogIlNUUklORyIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIHRoZSB0ZXh0IGV4dHJhY3RlZCBmcm9tIHRoZSBjdXJyZW50IG9iamVjdC4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiTm9uZSIsICJkZXNjcmlwdGlvbiI6ICJSZXR1cm5zIHRoZSBleHRyYWN0ZWQgdGV4dCBmcm9tIHRoZSBjdXJyZW50IG9iamVjdC4iLCAiZXhhbXBsZV9jb2RlIjogIi8vIEV4dHJhY3QgdGV4dCBmcm9tIHRoZSBjdXJyZW50IG9iamVjdFxuU1RSSU5HIGV4dHJhY3RlZFRleHQgPSBNV0cuQm9keUV4dHJhY3RlZFRleHQoKVxuXG4vLyBFeHRyYWN0ZWQgVGV4dDogXCIgKyBleHRyYWN0ZWRUZXh0XG5cbi8vIENoZWNrIGlmIHRoZSBleHRyYWN0ZWQgdGV4dCBjb250YWlucyBhIHNwZWNpZmljIGtleXdvcmRcbklGIGV4dHJhY3RlZFRleHQgQ09OVEFJTlMgXCJjb25maWRlbnRpYWxcIiBUSEVOIHtcbiAgICAvLyBCbG9jayB0aGUgY29ubmVjdGlvbiBpZiB0aGUga2V5d29yZCBpcyBmb3VuZFxuICAgIE1XRy5CbG9jayhcIkJsb2NrZWQgZHVlIHRvIHByZXNlbmNlIG9mIGNvbmZpZGVudGlhbCBpbmZvcm1hdGlvblwiKVxufSBFTFNFIHtcbiAgICAvLyBBbGxvdyB0aGUgY29ubmVjdGlvbiBpZiB0aGUga2V5d29yZCBpcyBub3QgZm91bmRcbiAgICBNV0cuQWxsb3coXCJObyBjb25maWRlbnRpYWwgaW5mb3JtYXRpb24gZm91bmRcIilcbn0iLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICIvLyBFeHRyYWN0IHRleHQgZnJvbSB0aGUgY3VycmVudCBvYmplY3RcblNUUklORyBleHRyYWN0ZWRUZXh0ID0gTVdHLkJvZHlFeHRyYWN0ZWRUZXh0KClcblxuLy8gRXh0cmFjdGVkIFRleHQ6IFwiICsgZXh0cmFjdGVkVGV4dFxuXG4vLyBDaGVjayBpZiB0aGUgZXh0cmFjdGVkIHRleHQgY29udGFpbnMgYSBzcGVjaWZpYyBrZXl3b3JkXG5JRiBleHRyYWN0ZWRUZXh0IENPTlRBSU5TIFwiY29uZmlkZW50aWFsXCIgVEhFTiB7XG4gICAgLy8gQmxvY2sgdGhlIGNvbm5lY3Rpb24gaWYgdGhlIGtleXdvcmQgaXMgZm91bmRcbiAgICBNV0cuQmxvY2soXCJCbG9ja2VkIGR1ZSB0byBwcmVzZW5jZSBvZiBjb25maWRlbnRpYWwgaW5mb3JtYXRpb25cIilcbn0gRUxTRSB7XG4gICAgLy8gQWxsb3cgdGhlIGNvbm5lY3Rpb24gaWYgdGhlIGtleXdvcmQgaXMgbm90IGZvdW5kXG4gICAgTVdHLkFsbG93KFwiTm8gY29uZmlkZW50aWFsIGluZm9ybWF0aW9uIGZvdW5kXCIpXG59In0sIHsibmFtZSI6ICJNV0cuQm9keUZpbGVOYW1lICgpIiwgInJldHVybl90eXBlIjogIlNUUklORyIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIHRoZSBmaWxlbmFtZSBvZiB0aGUgYm9keSBhcyBhIHN0cmluZy4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiTm9uZSIsICJkZXNjcmlwdGlvbiI6ICJSZXR1cm5zIHRoZSBmaWxlbmFtZSBvZiB0aGUgYm9keS4iLCAiZXhhbXBsZV9jb2RlIjogIi8vIFJldHJpZXZlIHRoZSBmaWxlbmFtZSBvZiB0aGUgYm9keVxuU1RSSU5HIGJvZHlGaWxlTmFtZSA9IE1XRy5Cb2R5RmlsZU5hbWUoKVxuXG4vLyBUaGUgZmlsZW5hbWUgb2YgdGhlIGJvZHkgaXM6IFwiICsgYm9keUZpbGVOYW1lXG4vLyBGb3JtZXJseTogREVCVUcoXCJUaGUgZmlsZW5hbWUgb2YgdGhlIGJvZHkgaXM6IFwiICsgYm9keUZpbGVOYW1lKSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIi8vIFJldHJpZXZlIHRoZSBmaWxlbmFtZSBvZiB0aGUgYm9keVxuU1RSSU5HIGJvZHlGaWxlTmFtZSA9IE1XRy5Cb2R5RmlsZU5hbWUoKVxuXG4vLyBUaGUgZmlsZW5hbWUgb2YgdGhlIGJvZHkgaXM6IFwiICsgYm9keUZpbGVOYW1lXG4vLyBGb3JtZXJseTogREVCVUcoXCJUaGUgZmlsZW5hbWUgb2YgdGhlIGJvZHkgaXM6IFwiICsgYm9keUZpbGVOYW1lKSJ9LCB7Im5hbWUiOiAiTVdHLkJvZHlGdWxsRmlsZU5hbWUgKCkiLCAicmV0dXJuX3R5cGUiOiAiU1RSSU5HIiwgInJldHVybl9kZXNjIjogIlJldHVybnMgdGhlIGZ1bGwgZmlsZW5hbWUgb2YgdGhlIGJvZHkgYXMgYSBzdHJpbmcuIiwgInBhcmFtZXRlcl9kZXNjIjogIk5vbmUiLCAiZGVzY3JpcHRpb24iOiAiUmV0dXJucyB0aGUgZnVsbCBmaWxlbmFtZSBvZiB0aGUgYm9keSwgaW5jbHVkaW5nIHRoZSBwYXJlbnQgYXJjaGl2ZSB3aXRoIGVhY2ggZmlsZSBuYW1lIHNlcGFyYXRlZCBieSB2ZXJ0aWNhbCBwaXBlcy4gRm9yIGV4YW1wbGUsIGluZGV4Lmh0bWwgaW5zaWRlIG9mIHh5ei56aXAgd291bGQgYmUgcmVwcmVzZW50ZWQgYXMgP1x1MDBjN1x1MDBhM3h5ei56aXB8aW5kZXguaHRtbD9cdTAwYzdcdTAwYTUuIiwgImV4YW1wbGVfY29kZSI6ICIvLyBSZXRyaWV2ZSB0aGUgZnVsbCBmaWxlIG5hbWUgb2YgdGhlIGJvZHkgY29udGVudFxuU1RSSU5HIGZpbGVOYW1lID0gTVdHLkJvZHlGdWxsRmlsZU5hbWUoKVxuXG4vLyBUaGUgZnVsbCBmaWxlIG5hbWUgaXM6IFwiICsgZmlsZU5hbWVcblxuLy8gQ2hlY2sgaWYgdGhlIGZpbGUgbmFtZSBjb250YWlucyBhIHNwZWNpZmljIGV4dGVuc2lvblxuSUYgZmlsZU5hbWUgQ09OVEFJTlMgXCIuZXhlXCIgVEhFTiB7XG4gICAgLy8gQmxvY2sgdGhlIHJlcXVlc3QgaWYgdGhlIGZpbGUgaXMgYW4gZXhlY3V0YWJsZVxuICAgIE1XRy5CbG9jayhcIkV4ZWN1dGFibGUgZmlsZXMgYXJlIG5vdCBhbGxvd2VkLlwiKVxufSBFTFNFIHtcbiAgICAvLyBBbGxvdyB0aGUgcmVxdWVzdCBpZiB0aGUgZmlsZSBpcyBub3QgYW4gZXhlY3V0YWJsZVxuICAgIE1XRy5BbGxvdyhcIkZpbGUgaXMgYWxsb3dlZC5cIilcbn0iLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICIvLyBSZXRyaWV2ZSB0aGUgZnVsbCBmaWxlIG5hbWUgb2YgdGhlIGJvZHkgY29udGVudFxuU1RSSU5HIGZpbGVOYW1lID0gTVdHLkJvZHlGdWxsRmlsZU5hbWUoKVxuXG4vLyBUaGUgZnVsbCBmaWxlIG5hbWUgaXM6IFwiICsgZmlsZU5hbWVcblxuLy8gQ2hlY2sgaWYgdGhlIGZpbGUgbmFtZSBjb250YWlucyBhIHNwZWNpZmljIGV4dGVuc2lvblxuSUYgZmlsZU5hbWUgQ09OVEFJTlMgXCIuZXhlXCIgVEhFTiB7XG4gICAgLy8gQmxvY2sgdGhlIHJlcXVlc3QgaWYgdGhlIGZpbGUgaXMgYW4gZXhlY3V0YWJsZVxuICAgIE1XRy5CbG9jayhcIkV4ZWN1dGFibGUgZmlsZXMgYXJlIG5vdCBhbGxvd2VkLlwiKVxufSBFTFNFIHtcbiAgICAvLyBBbGxvdyB0aGUgcmVxdWVzdCBpZiB0aGUgZmlsZSBpcyBub3QgYW4gZXhlY3V0YWJsZVxuICAgIE1XRy5BbGxvdyhcIkZpbGUgaXMgYWxsb3dlZC5cIilcbn0ifSwgeyJuYW1lIjogIk1XRy5Cb2R5SGFzaCAoKSIsICJyZXR1cm5fdHlwZSI6ICJTVFJJTkciLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyB0aGUgU0hBMSBoYXNoIG9mIHRoZSBib2R5LiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJOb25lIiwgImRlc2NyaXB0aW9uIjogIlJldHVybnMgdGhlIFNIQTEgaGFzaCBvZiB0aGUgYm9keS4iLCAiZXhhbXBsZV9jb2RlIjogIlNUUklORyBoYXNoQWxnb3JpdGhtID0gXCJTSEEtMjU2XCJcblNUUklORyBib2R5SGFzaCA9IE1XRy5Cb2R5SGFzaChoYXNoQWxnb3JpdGhtKVxuLy8gVGhlIGhhc2ggb2YgdGhlIGJvZHkgdXNpbmcgU0hBLTI1NiBpczogYm9keUhhc2giLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICJTVFJJTkcgaGFzaEFsZ29yaXRobSA9IFwiU0hBLTI1NlwiXG5TVFJJTkcgYm9keUhhc2ggPSBNV0cuQm9keUhhc2goaGFzaEFsZ29yaXRobSlcbi8vIFRoZSBoYXNoIG9mIHRoZSBib2R5IHVzaW5nIFNIQS0yNTYgaXM6IGJvZHlIYXNoIn0sIHsibmFtZSI6ICJNV0cuQm9keUhhc2ggKFNUUklORykiLCAicmV0dXJuX3R5cGUiOiAiU1RSSU5HIiwgInJldHVybl9kZXNjIjogIlJldHVybnMgaGFzaCBvZiBib2R5IHVzaW5nIGdpdmVuIGhhc2ggYWxnb3JpdGhtLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJTVFJJTkc6IHRoZSBoYXNoaW5nIGFsZ29yaXRobS4iLCAiZGVzY3JpcHRpb24iOiAiUmV0dXJucyB0aGUgaGFzaCBvZiB0aGUgYm9keS4iLCAiZXhhbXBsZV9jb2RlIjogIlNUUklORyBoYXNoQWxnb3JpdGhtID0gXCJTSEEtMjU2XCJcblNUUklORyBib2R5SGFzaCA9IE1XRy5Cb2R5SGFzaChoYXNoQWxnb3JpdGhtKVxuLy8gVGhlIGhhc2ggb2YgdGhlIGJvZHkgdXNpbmcgU0hBLTI1NiBpczogYm9keUhhc2giLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICJTVFJJTkcgaGFzaEFsZ29yaXRobSA9IFwiU0hBLTI1NlwiXG5TVFJJTkcgYm9keUhhc2ggPSBNV0cuQm9keUhhc2goaGFzaEFsZ29yaXRobSlcbi8vIFRoZSBoYXNoIG9mIHRoZSBib2R5IHVzaW5nIFNIQS0yNTYgaXM6IGJvZHlIYXNoIn0sIHsibmFtZSI6ICJNV0cuQm9keUhhc01pbWVIZWFkZXIgKFNUUklORykiLCAicmV0dXJuX3R5cGUiOiAiQk9PTEVBTiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zYFRSVUVgaWYgdGhlIHNwZWNpZmllZCBNaW1lIGhlYWRlciBpcyBmb3VuZCwgb3RoZXJ3aXNlYEZBTFNFYCIsICJwYXJhbWV0ZXJfZGVzYyI6ICJTVFJJTkc6IHRoZSBuYW1lIG9mIHRoZSBtaW1lIGhlYWRlciB0byBjaGVjayBmb3IuIiwgImRlc2NyaXB0aW9uIjogIkNoZWNrcyB3aGV0aGVyIGlucHV0IE1pbWUgaGVhZGVyIGlzIHByZXNlbnQuIiwgImV4YW1wbGVfY29kZSI6ICJTVFJJTkcgbWltZUhlYWRlciA9IFwiQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi9qc29uXCJcblxuSUYgTVdHLkJvZHlIYXNNaW1lSGVhZGVyKG1pbWVIZWFkZXIpIFRIRU4ge1xuICAgIC8vIE1JTUUgaGVhZGVyIGZvdW5kOiBcIiArIG1pbWVIZWFkZXJcbiAgICAvLyBBZGRpdGlvbmFsIGFjdGlvbnMgY2FuIGJlIHRha2VuIGhlcmUgaWYgdGhlIE1JTUUgaGVhZGVyIGlzIGZvdW5kXG59IEVMU0Uge1xuICAgIC8vIE1JTUUgaGVhZGVyIG5vdCBmb3VuZDogXCIgKyBtaW1lSGVhZGVyXG4gICAgLy8gQWN0aW9ucyB0byB0YWtlIGlmIHRoZSBNSU1FIGhlYWRlciBpcyBub3QgZm91bmRcbn0iLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICJTVFJJTkcgbWltZUhlYWRlciA9IFwiQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi9qc29uXCJcblxuSUYgTVdHLkJvZHlIYXNNaW1lSGVhZGVyKG1pbWVIZWFkZXIpIFRIRU4ge1xuICAgIC8vIE1JTUUgaGVhZGVyIGZvdW5kOiBcIiArIG1pbWVIZWFkZXJcbiAgICAvLyBBZGRpdGlvbmFsIGFjdGlvbnMgY2FuIGJlIHRha2VuIGhlcmUgaWYgdGhlIE1JTUUgaGVhZGVyIGlzIGZvdW5kXG59IEVMU0Uge1xuICAgIC8vIE1JTUUgaGVhZGVyIG5vdCBmb3VuZDogXCIgKyBtaW1lSGVhZGVyXG4gICAgLy8gQWN0aW9ucyB0byB0YWtlIGlmIHRoZSBNSU1FIGhlYWRlciBpcyBub3QgZm91bmRcbn0ifSwgeyJuYW1lIjogIk1XRy5Cb2R5SGFzTWltZUhlYWRlclBhcmFtZXRlciAoU1RSSU5HLCBTVFJJTkcpIiwgInJldHVybl90eXBlIjogIkJPT0xFQU4iLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJuc2BUUlVFYGlmIHRoZSBNSU1FIGhlYWRlciBjb250YWlucyB0aGUgc3BlY2lmaWVkIHBhcmFtZXRlciwgb3RoZXJ3aXNlYEZBTFNFYCIsICJwYXJhbWV0ZXJfZGVzYyI6ICJTVFJJTkc6IHRoZSBtaW1lIGhlYWRlciB0byBjaGVjazsgU1RSSU5HOiB0aGUgcGFyYW1ldGVyIHRvIGZpbmQgd2l0aGluIHRoZSBtaW1lIGhlYWRlci4iLCAiZGVzY3JpcHRpb24iOiAiQ2hlY2tzIHdoZXRoZXIgTWltZSBoZWFkZXIgaGFzIHRoZSBwYXJhbWV0ZXIuIiwgImV4YW1wbGVfY29kZSI6ICJTVFJJTkcgaGVhZGVyTmFtZSA9IFwiQ29udGVudC1UeXBlXCJcblNUUklORyBoZWFkZXJWYWx1ZSA9IFwidGV4dC9odG1sXCJcblxuSUYgTVdHLkJvZHlIYXNNaW1lSGVhZGVyUGFyYW1ldGVyKGhlYWRlck5hbWUsIGhlYWRlclZhbHVlKSBUSEVOIHtcbiAgICAvLyBNSU1FIGhlYWRlciBwYXJhbWV0ZXIgZm91bmRcbiAgICBNV0cuQWxsb3coXCJNSU1FIGhlYWRlciBwYXJhbWV0ZXIgZm91bmRcIilcbn0gRUxTRSB7XG4gICAgLy8gTUlNRSBoZWFkZXIgcGFyYW1ldGVyIG5vdCBmb3VuZFxuICAgIE1XRy5CbG9jayhcIk1JTUUgaGVhZGVyIHBhcmFtZXRlciBub3QgZm91bmRcIilcbn0iLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICJTVFJJTkcgaGVhZGVyTmFtZSA9IFwiQ29udGVudC1UeXBlXCJcblNUUklORyBoZWFkZXJWYWx1ZSA9IFwidGV4dC9odG1sXCJcblxuSUYgTVdHLkJvZHlIYXNNaW1lSGVhZGVyUGFyYW1ldGVyKGhlYWRlck5hbWUsIGhlYWRlclZhbHVlKSBUSEVOIHtcbiAgICAvLyBNSU1FIGhlYWRlciBwYXJhbWV0ZXIgZm91bmRcbiAgICBNV0cuQWxsb3coXCJNSU1FIGhlYWRlciBwYXJhbWV0ZXIgZm91bmRcIilcbn0gRUxTRSB7XG4gICAgLy8gTUlNRSBoZWFkZXIgcGFyYW1ldGVyIG5vdCBmb3VuZFxuICAgIE1XRy5CbG9jayhcIk1JTUUgaGVhZGVyIHBhcmFtZXRlciBub3QgZm91bmRcIilcbn0ifSwgeyJuYW1lIjogIk1XRy5Cb2R5SW5mZWN0ZWQgKE1XRy5BbnRpbWFsd2FyZVNldHRpbmcpIiwgInJldHVybl90eXBlIjogIkJPT0xFQU4iLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJuc2BUUlVFYGlmIHRoZSBib2R5IGlzIGRldGVjdGVkIHRvIGJlIGluZmVjdGVkIHdpdGggYSB2aXJ1cyB1c2luZyB0aGUgR0FNIG1ldGhvZC4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiTVdHLkFudGltYWx3YXJlU2V0dGluZzogdGhlIGNvbmZpZ3VyYXRpb24gc2V0dGluZ3MgZm9yIHRoZSBhbnRpbWFsd2FyZSBzY2FuLiIsICJkZXNjcmlwdGlvbiI6ICJSZXR1cm5zIFRSVUUgaWYgdGhlIGJvZHkgaXMgdmlydXMgaW5mZWN0ZWQgKHZpYSBHQU0pLiIsICJleGFtcGxlX2NvZGUiOiAiTVdHLkFudGltYWx3YXJlU2V0dGluZyBhbnRpbWFsd2FyZVNldHRpbmdzID0gW1lvdXJBbnRpbWFsd2FyZVNldHRpbmdzXVxuXG5JRiBNV0cuQm9keUluZmVjdGVkKGFudGltYWx3YXJlU2V0dGluZ3MpIFRIRU4ge1xuICAgIE1XRy5CbG9jayhcIlZpcnVzIGRldGVjdGVkIGluIHRoZSBib2R5IG9mIHRoZSByZXF1ZXN0L3Jlc3BvbnNlLlwiKVxufSBFTFNFIHtcbiAgICBNV0cuQWxsb3coXCJObyB2aXJ1cyBkZXRlY3RlZC5cIilcbn0iLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICJNV0cuQW50aW1hbHdhcmVTZXR0aW5nIGFudGltYWx3YXJlU2V0dGluZ3MgPSBbWW91ckFudGltYWx3YXJlU2V0dGluZ3NdXG5cbklGIE1XRy5Cb2R5SW5mZWN0ZWQoYW50aW1hbHdhcmVTZXR0aW5ncykgVEhFTiB7XG4gICAgTVdHLkJsb2NrKFwiVmlydXMgZGV0ZWN0ZWQgaW4gdGhlIGJvZHkgb2YgdGhlIHJlcXVlc3QvcmVzcG9uc2UuXCIpXG59IEVMU0Uge1xuICAgIE1XRy5BbGxvdyhcIk5vIHZpcnVzIGRldGVjdGVkLlwiKVxufSJ9LCB7Im5hbWUiOiAiTVdHLkJvZHlJbmZlY3RlZCAoTVdHLkludGVybmFsU2V0dGluZykiLCAicmV0dXJuX3R5cGUiOiAiQk9PTEVBTiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zYFRSVUVgaWYgdGhlIGJvZHkgY29udGFpbnMgYSB2aXJ1cyBpbmZlY3Rpb24sIG90aGVyd2lzZWBGQUxTRWAiLCAicGFyYW1ldGVyX2Rlc2MiOiAiTVdHLkludGVybmFsU2V0dGluZzogYSBjb25maWd1cmF0aW9uIHNldHRpbmdzIG9iamVjdCByZXF1aXJlZCBmb3IgdGhlIGZ1bmN0aW9uIHRvIGNoZWNrIGlmIHRoZSBib2R5IGlzIHZpcnVzIGluZmVjdGVkLiIsICJkZXNjcmlwdGlvbiI6ICJMb2dnaW5nOiBSZXR1cm5zIHRydWUgaWYgdGhlIGJvZHkgaXMgdmlydXMgaW5mZWN0ZWQuIiwgImV4YW1wbGVfY29kZSI6ICJNV0cuSW50ZXJuYWxTZXR0aW5nIHNldHRpbmdzID0gLy8gSW5pdGlhbGl6ZSBvciBvYnRhaW4gdGhlIG5lY2Vzc2FyeSBzZXR0aW5ncyBvYmplY3RcblxuSUYgTVdHLkJvZHlJbmZlY3RlZChzZXR0aW5ncykgVEhFTiB7XG4gICAgLy8gVmlydXMgZGV0ZWN0ZWQgaW4gdGhlIGJvZHkuIEJsb2NraW5nIHRoZSByZXF1ZXN0L3Jlc3BvbnNlLlxuICAgIE1XRy5CbG9jayhcIlRoZSBjb250ZW50IGlzIGluZmVjdGVkIHdpdGggYSB2aXJ1cy5cIilcbn0gRUxTRSB7XG4gICAgLy8gTm8gdmlydXMgZGV0ZWN0ZWQgaW4gdGhlIGJvZHkuIEFsbG93aW5nIHRoZSByZXF1ZXN0L3Jlc3BvbnNlLlxuICAgIE1XRy5BbGxvdyhcIk5vIHZpcnVzIGRldGVjdGVkLlwiKVxufSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIk1XRy5JbnRlcm5hbFNldHRpbmcgc2V0dGluZ3MgPSAvLyBJbml0aWFsaXplIG9yIG9idGFpbiB0aGUgbmVjZXNzYXJ5IHNldHRpbmdzIG9iamVjdFxuXG5JRiBNV0cuQm9keUluZmVjdGVkKHNldHRpbmdzKSBUSEVOIHtcbiAgICAvLyBWaXJ1cyBkZXRlY3RlZCBpbiB0aGUgYm9keS4gQmxvY2tpbmcgdGhlIHJlcXVlc3QvcmVzcG9uc2UuXG4gICAgTVdHLkJsb2NrKFwiVGhlIGNvbnRlbnQgaXMgaW5mZWN0ZWQgd2l0aCBhIHZpcnVzLlwiKVxufSBFTFNFIHtcbiAgICAvLyBObyB2aXJ1cyBkZXRlY3RlZCBpbiB0aGUgYm9keS4gQWxsb3dpbmcgdGhlIHJlcXVlc3QvcmVzcG9uc2UuXG4gICAgTVdHLkFsbG93KFwiTm8gdmlydXMgZGV0ZWN0ZWQuXCIpXG59In0sIHsibmFtZSI6ICJNV0cuQm9keUluZmVjdGVkIChNV0cuTUFURFNldHRpbmcpIiwgInJldHVybl90eXBlIjogIkJPT0xFQU4iLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJuc2BUUlVFYGlmIHRoZSBib2R5IGlzIGluZmVjdGVkIGJ5IGEgdmlydXMgYXMgZGV0ZXJtaW5lZCBieSBBVEQuIiwgInBhcmFtZXRlcl9kZXNjIjogIk1XRy5NQVREU2V0dGluZzogdGhlIEFkdmFuY2VkIFRocmVhdCBEZXRlY3Rpb24gKEFURCkgc2V0dGluZ3MgcmVxdWlyZWQgdG8gZGV0ZXJtaW5lIGlmIHRoZSBib2R5IGlzIHZpcnVzIGluZmVjdGVkLiIsICJkZXNjcmlwdGlvbiI6ICJSZXR1cm5zIFRSVUUgaWYgdGhlIGJvZHkgaXMgdmlydXMgaW5mZWN0ZWQgKHZpYSBBVEQpLiIsICJleGFtcGxlX2NvZGUiOiAiTVdHLk1BVERTZXR0aW5nIGF0ZFNldHRpbmdzID0gW1wiRGVmYXVsdCBBVEQgU2V0dGluZ3NcIl1cblxuSUYgTVdHLkJvZHlJbmZlY3RlZChhdGRTZXR0aW5ncykgVEhFTiB7XG4gICAgTVdHLkJsb2NrKFwiVGhlIGNvbnRlbnQgaXMgaW5mZWN0ZWQgd2l0aCBhIHZpcnVzLlwiKVxufSBFTFNFIHtcbiAgICBNV0cuQWxsb3coXCJDb250ZW50IGlzIGNsZWFuLlwiKVxufSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIk1XRy5NQVREU2V0dGluZyBhdGRTZXR0aW5ncyA9IFtcIkRlZmF1bHQgQVREIFNldHRpbmdzXCJdXG5cbklGIE1XRy5Cb2R5SW5mZWN0ZWQoYXRkU2V0dGluZ3MpIFRIRU4ge1xuICAgIE1XRy5CbG9jayhcIlRoZSBjb250ZW50IGlzIGluZmVjdGVkIHdpdGggYSB2aXJ1cy5cIilcbn0gRUxTRSB7XG4gICAgTVdHLkFsbG93KFwiQ29udGVudCBpcyBjbGVhbi5cIilcbn0ifSwgeyJuYW1lIjogIk1XRy5Cb2R5SXNBY2Nlc3NSZXN0cmljdGVkT2JqZWN0ICgpIiwgInJldHVybl90eXBlIjogIkJPT0xFQU4iLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJuc2BUUlVFYGlmIHRoZSBjdXJyZW50IG9iamVjdCBoYXMgYWNjZXNzIHBlcm1pc3Npb24gcmVzdHJpY3Rpb24gKFBERikuIiwgInBhcmFtZXRlcl9kZXNjIjogIk5vbmUiLCAiZGVzY3JpcHRpb24iOiAiUmV0dXJucyBUUlVFIGlmIHRoZSBjdXJyZW50IG9iamVjdCBoYXMgYWNjZXNzIHBlcm1pc3Npb24gcmVzdHJpY3Rpb24gKFBERikuIiwgImV4YW1wbGVfY29kZSI6ICJJRiBNV0cuQm9keUlzQWNjZXNzUmVzdHJpY3RlZE9iamVjdCgpIFRIRU4ge1xuICAgIC8vIEFjY2VzcyByZXN0cmljdGlvbiBkZXRlY3RlZCBvbiB0aGUgb2JqZWN0LlxuICAgIE1XRy5CbG9jayhcIkFjY2VzcyB0byB0aGlzIGRvY3VtZW50IGlzIHJlc3RyaWN0ZWQgZHVlIHRvIHBlcm1pc3Npb24gc2V0dGluZ3MuXCIpXG59IEVMU0Uge1xuICAgIC8vIE5vIGFjY2VzcyByZXN0cmljdGlvbnMgZGV0ZWN0ZWQgb24gdGhlIG9iamVjdC5cbiAgICBNV0cuQWxsb3coXCJObyBhY2Nlc3MgcmVzdHJpY3Rpb25zXCIpXG59IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiSUYgTVdHLkJvZHlJc0FjY2Vzc1Jlc3RyaWN0ZWRPYmplY3QoKSBUSEVOIHtcbiAgICAvLyBBY2Nlc3MgcmVzdHJpY3Rpb24gZGV0ZWN0ZWQgb24gdGhlIG9iamVjdC5cbiAgICBNV0cuQmxvY2soXCJBY2Nlc3MgdG8gdGhpcyBkb2N1bWVudCBpcyByZXN0cmljdGVkIGR1ZSB0byBwZXJtaXNzaW9uIHNldHRpbmdzLlwiKVxufSBFTFNFIHtcbiAgICAvLyBObyBhY2Nlc3MgcmVzdHJpY3Rpb25zIGRldGVjdGVkIG9uIHRoZSBvYmplY3QuXG4gICAgTVdHLkFsbG93KFwiTm8gYWNjZXNzIHJlc3RyaWN0aW9uc1wiKVxufSJ9LCB7Im5hbWUiOiAiTVdHLkJvZHlJc0NvbXBsZXRlV2l0aFRpbWVvdXQgKE5VTUJFUikiLCAicmV0dXJuX3R5cGUiOiAiQk9PTEVBTiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zYFRSVUVgaWYgdGhlIGJvZHkgaXMgY29tcGxldGUuIiwgInBhcmFtZXRlcl9kZXNjIjogIk5VTUJFUjogdGhlIHRpbWVvdXQiLCAiZGVzY3JpcHRpb24iOiAiQ2hlY2tzIGlmIHRoZSBib2R5IGlzIGNvbXBsZXRlIHdpdGggYSBnaXZlbiB0aW1lb3V0LiIsICJleGFtcGxlX2NvZGUiOiAiTlVNQkVSIHRpbWVvdXQgPSAxMCAgLy8gVGltZW91dCBwZXJpb2QgaW4gc2Vjb25kc1xuXG5JRiBNV0cuQm9keUlzQ29tcGxldGVXaXRoVGltZW91dCh0aW1lb3V0KSBUSEVOIHtcbiAgICAvLyBCb2R5IGlzIGNvbXBsZXRlIHdpdGhpbiB0aGUgdGltZW91dCBwZXJpb2QuXG4gICAgTVdHLkFsbG93KFwiQm9keUNvbXBsZXRlXCIpXG59IEVMU0Uge1xuICAgIC8vIEJvZHkgaXMgbm90IGNvbXBsZXRlIHdpdGhpbiB0aGUgdGltZW91dCBwZXJpb2QuXG4gICAgTVdHLkJsb2NrKFwiUmVxdWVzdCBib2R5IG5vdCBjb21wbGV0ZSB3aXRoaW4gdGltZW91dC5cIilcbn0iLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICJOVU1CRVIgdGltZW91dCA9IDEwICAvLyBUaW1lb3V0IHBlcmlvZCBpbiBzZWNvbmRzXG5cbklGIE1XRy5Cb2R5SXNDb21wbGV0ZVdpdGhUaW1lb3V0KHRpbWVvdXQpIFRIRU4ge1xuICAgIC8vIEJvZHkgaXMgY29tcGxldGUgd2l0aGluIHRoZSB0aW1lb3V0IHBlcmlvZC5cbiAgICBNV0cuQWxsb3coXCJCb2R5Q29tcGxldGVcIilcbn0gRUxTRSB7XG4gICAgLy8gQm9keSBpcyBub3QgY29tcGxldGUgd2l0aGluIHRoZSB0aW1lb3V0IHBlcmlvZC5cbiAgICBNV0cuQmxvY2soXCJSZXF1ZXN0IGJvZHkgbm90IGNvbXBsZXRlIHdpdGhpbiB0aW1lb3V0LlwiKVxufSJ9LCB7Im5hbWUiOiAiTVdHLkJvZHlJc0NvcnJ1cHRlZE9iamVjdCAoKSIsICJyZXR1cm5fdHlwZSI6ICJCT09MRUFOIiwgInJldHVybl9kZXNjIjogIlJldHVybnNgVFJVRWBpZiB0aGUgY3VycmVudCBvYmplY3QgaXMgZGV0ZWN0ZWQgdG8gYmUgY29ycnVwdGVkLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJOb25lIiwgImRlc2NyaXB0aW9uIjogIlJldHVybnMgVFJVRSBpZiB0aGUgY3VycmVudCBvYmplY3QgaXMgY29ycnVwdGVkLiIsICJleGFtcGxlX2NvZGUiOiAiSUYgTVdHLkJvZHlJc0NvcnJ1cHRlZE9iamVjdCgpIFRIRU4ge1xuICAgIC8vIFRoZSBvYmplY3QgaXMgY29ycnVwdGVkLlxuICAgIE1XRy5CbG9jayhcIlRoZSBvYmplY3QgaXMgY29ycnVwdGVkIGFuZCBjYW5ub3QgYmUgcHJvY2Vzc2VkLlwiKVxufSBFTFNFIHtcbiAgICAvLyBUaGUgb2JqZWN0IGlzIG5vdCBjb3JydXB0ZWQuXG4gICAgTVdHLkFsbG93KFwiT2JqZWN0IGlzIGNsZWFuIGFuZCBhbGxvd2VkLlwiKVxufSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIklGIE1XRy5Cb2R5SXNDb3JydXB0ZWRPYmplY3QoKSBUSEVOIHtcbiAgICAvLyBUaGUgb2JqZWN0IGlzIGNvcnJ1cHRlZC5cbiAgICBNV0cuQmxvY2soXCJUaGUgb2JqZWN0IGlzIGNvcnJ1cHRlZCBhbmQgY2Fubm90IGJlIHByb2Nlc3NlZC5cIilcbn0gRUxTRSB7XG4gICAgLy8gVGhlIG9iamVjdCBpcyBub3QgY29ycnVwdGVkLlxuICAgIE1XRy5BbGxvdyhcIk9iamVjdCBpcyBjbGVhbiBhbmQgYWxsb3dlZC5cIilcbn0ifSwgeyJuYW1lIjogIk1XRy5Cb2R5SXNFbmNyeXB0ZWRPYmplY3QgKCkiLCAicmV0dXJuX3R5cGUiOiAiQk9PTEVBTiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zYFRSVUVgaWYgdGhlIGV4YW1pbmVkIG9iamVjdCBpbiB0aGUgY3VycmVudCBjb250ZXh0IGlzIGVuY3J5cHRlZC4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiTm9uZSIsICJkZXNjcmlwdGlvbiI6ICJSZXR1cm5zIFRSVUUgaWYgdGhlIGN1cnJlbnQgb2JqZWN0IGlzIGVuY3J5cHRlZC4iLCAiZXhhbXBsZV9jb2RlIjogIklGIE1XRy5Cb2R5SXNFbmNyeXB0ZWRPYmplY3QoKSBUSEVOIHtcbiAgICAvLyBUaGUgYm9keSBvZiB0aGUgcmVzcG9uc2UgaXMgZW5jcnlwdGVkLlxuICAgIE1XRy5CbG9jayhcIkFjY2VzcyB0byBlbmNyeXB0ZWQgY29udGVudCBpcyBibG9ja2VkLlwiKVxufSBFTFNFIHtcbiAgICAvLyBUaGUgYm9keSBvZiB0aGUgcmVzcG9uc2UgaXMgbm90IGVuY3J5cHRlZC5cbiAgICBNV0cuQWxsb3coXCJDb250ZW50IGlzIGFsbG93ZWQuXCIpXG59IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiSUYgTVdHLkJvZHlJc0VuY3J5cHRlZE9iamVjdCgpIFRIRU4ge1xuICAgIC8vIFRoZSBib2R5IG9mIHRoZSByZXNwb25zZSBpcyBlbmNyeXB0ZWQuXG4gICAgTVdHLkJsb2NrKFwiQWNjZXNzIHRvIGVuY3J5cHRlZCBjb250ZW50IGlzIGJsb2NrZWQuXCIpXG59IEVMU0Uge1xuICAgIC8vIFRoZSBib2R5IG9mIHRoZSByZXNwb25zZSBpcyBub3QgZW5jcnlwdGVkLlxuICAgIE1XRy5BbGxvdyhcIkNvbnRlbnQgaXMgYWxsb3dlZC5cIilcbn0ifSwgeyJuYW1lIjogIk1XRy5Cb2R5SXNNb2RpZmllZCAoKSIsICJyZXR1cm5fdHlwZSI6ICJCT09MRUFOIiwgInJldHVybl9kZXNjIjogIlJldHVybnNgVFJVRWBpZiB0aGUgY3VycmVudCBib2R5IGhhcyBiZWVuIGFsdGVyZWQuIiwgInBhcmFtZXRlcl9kZXNjIjogIk5vbmUiLCAiZGVzY3JpcHRpb24iOiAiUmV0dXJucyBUUlVFIGlmIHRoZSBjdXJyZW50IGJvZHkgaXMgbW9kaWZpZWQuIiwgImV4YW1wbGVfY29kZSI6ICJJRiBNV0cuQm9keUlzTW9kaWZpZWQoKSBUSEVOIHtcbiAgICAvLyBUaGUgYm9keSBoYXMgYmVlbiBtb2RpZmllZC5cbn0gRUxTRSB7XG4gICAgLy8gVGhlIGJvZHkgaGFzIG5vdCBiZWVuIG1vZGlmaWVkLlxufSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIklGIE1XRy5Cb2R5SXNNb2RpZmllZCgpIFRIRU4ge1xuICAgIC8vIFRoZSBib2R5IGhhcyBiZWVuIG1vZGlmaWVkLlxufSBFTFNFIHtcbiAgICAvLyBUaGUgYm9keSBoYXMgbm90IGJlZW4gbW9kaWZpZWQuXG59In0sIHsibmFtZSI6ICJNV0cuQm9keUlzTXVsdGlwYXJ0T2JqZWN0ICgpIiwgInJldHVybl90eXBlIjogIkJPT0xFQU4iLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJuc2BUUlVFYGlmIHRoZSBjdXJyZW50IG9iamVjdCBpcyBhIG11bHRpcGFydCBhcmNoaXZlLiBPdGhlcndpc2UsIGl0IHJldHVybnNgRkFMU0VgIiwgInBhcmFtZXRlcl9kZXNjIjogIk5vbmUiLCAiZGVzY3JpcHRpb24iOiAiUmV0dXJucyBUUlVFIGlmIHRoZSBjdXJyZW50IG9iamVjdCBpcyBhIG11bHRpcGFydCBhcmNoaXZlLiIsICJleGFtcGxlX2NvZGUiOiAiSUYgTVdHLkJvZHlJc011bHRpcGFydE9iamVjdCgpIFRIRU4ge1xuICAgIC8vIFRoZSBjdXJyZW50IG9iamVjdCBpcyBhIG11bHRpcGFydCBhcmNoaXZlLlxuICAgIC8vIEFkZGl0aW9uYWwgYWN0aW9ucyBjYW4gYmUgdGFrZW4gaGVyZSBpZiB0aGUgb2JqZWN0IGlzIGEgbXVsdGlwYXJ0IGFyY2hpdmVcbn0gRUxTRSB7XG4gICAgLy8gVGhlIGN1cnJlbnQgb2JqZWN0IGlzIG5vdCBhIG11bHRpcGFydCBhcmNoaXZlLlxuICAgIC8vIEFkZGl0aW9uYWwgYWN0aW9ucyBjYW4gYmUgdGFrZW4gaGVyZSBpZiB0aGUgb2JqZWN0IGlzIG5vdCBhIG11bHRpcGFydCBhcmNoaXZlXG59IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiSUYgTVdHLkJvZHlJc011bHRpcGFydE9iamVjdCgpIFRIRU4ge1xuICAgIC8vIFRoZSBjdXJyZW50IG9iamVjdCBpcyBhIG11bHRpcGFydCBhcmNoaXZlLlxuICAgIC8vIEFkZGl0aW9uYWwgYWN0aW9ucyBjYW4gYmUgdGFrZW4gaGVyZSBpZiB0aGUgb2JqZWN0IGlzIGEgbXVsdGlwYXJ0IGFyY2hpdmVcbn0gRUxTRSB7XG4gICAgLy8gVGhlIGN1cnJlbnQgb2JqZWN0IGlzIG5vdCBhIG11bHRpcGFydCBhcmNoaXZlLlxuICAgIC8vIEFkZGl0aW9uYWwgYWN0aW9ucyBjYW4gYmUgdGFrZW4gaGVyZSBpZiB0aGUgb2JqZWN0IGlzIG5vdCBhIG11bHRpcGFydCBhcmNoaXZlXG59In0sIHsibmFtZSI6ICJNV0cuQm9keUlzU3VwcG9ydGVkQnlPcGVuZXIgKCkiLCAicmV0dXJuX3R5cGUiOiAiQk9PTEVBTiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zYFRSVUVgaWYgdGhlIGN1cnJlbnQgZmlsZSBjYW4gYmUgZXh0cmFjdGVkIGJ5IHRoZSBvcGVuZXIuIiwgInBhcmFtZXRlcl9kZXNjIjogIk5vbmUiLCAiZGVzY3JpcHRpb24iOiAiUmV0dXJucyBUUlVFIGlmIHRoZSBvcGVuZXIgY2FuIGV4dHJhY3QgZGF0YSBmcm9tIHRoZSBjdXJyZW50IGZpbGUuIiwgImV4YW1wbGVfY29kZSI6ICJJRiBNV0cuQm9keUlzU3VwcG9ydGVkQnlPcGVuZXIoKSBUSEVOIHtcbiAgICAvLyBUaGUgYm9keSBpcyBzdXBwb3J0ZWQgYnkgdGhlIG9wZW5lci5cbn0gRUxTRSB7XG4gICAgLy8gVGhlIGJvZHkgaXMgbm90IHN1cHBvcnRlZCBieSB0aGUgb3BlbmVyLlxuICAgIE1XRy5CbG9jayhcIlVuc3VwcG9ydGVkIGJvZHkgZm9ybWF0XCIpXG59IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiSUYgTVdHLkJvZHlJc1N1cHBvcnRlZEJ5T3BlbmVyKCkgVEhFTiB7XG4gICAgLy8gVGhlIGJvZHkgaXMgc3VwcG9ydGVkIGJ5IHRoZSBvcGVuZXIuXG59IEVMU0Uge1xuICAgIC8vIFRoZSBib2R5IGlzIG5vdCBzdXBwb3J0ZWQgYnkgdGhlIG9wZW5lci5cbiAgICBNV0cuQmxvY2soXCJVbnN1cHBvcnRlZCBib2R5IGZvcm1hdFwiKVxufSJ9LCB7Im5hbWUiOiAiTVdHLkJvZHlNZWRpYVR5cGVGcm9tSGVhZGVyICgpIiwgInJldHVybl90eXBlIjogIk1lZGlhVHlwZSIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIHRoZSBNSU1FIHR5cGUgZXh0cmFjdGVkIGZyb20gdGhlIGNvbnRlbnQtdHlwZSBoZWFkZXIgb2YgdGhlIGN1cnJlbnQgYm9keS4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiTm9uZSIsICJkZXNjcmlwdGlvbiI6ICJSZXR1cm5zIE1JTUUgdHlwZSwgZXh0cmFjdGVkIGZyb20gY29udGVudC10eXBlIGhlYWRlciBvZiBjdXJyZW50IGJvZHkuIiwgImV4YW1wbGVfY29kZSI6ICJNZWRpYVR5cGUgbWVkaWFUeXBlID0gTVdHLkJvZHlNZWRpYVR5cGVGcm9tSGVhZGVyKClcbi8vIFRoZSBtZWRpYSB0eXBlIG9mIHRoZSBjdXJyZW50IGJvZHkgaXM6IFwiICsgbWVkaWFUeXBlXG5cbklGIG1lZGlhVHlwZSA9PSBcImFwcGxpY2F0aW9uL2pzb25cIiBUSEVOIHtcbiAgICAvLyBUaGUgY29udGVudCBpcyBKU09OLlxufSBFTFNFIHtcbiAgICAvLyBUaGUgY29udGVudCBpcyBub3QgSlNPTi5cbn0iLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICJNZWRpYVR5cGUgbWVkaWFUeXBlID0gTVdHLkJvZHlNZWRpYVR5cGVGcm9tSGVhZGVyKClcbi8vIFRoZSBtZWRpYSB0eXBlIG9mIHRoZSBjdXJyZW50IGJvZHkgaXM6IFwiICsgbWVkaWFUeXBlXG5cbklGIG1lZGlhVHlwZSA9PSBcImFwcGxpY2F0aW9uL2pzb25cIiBUSEVOIHtcbiAgICAvLyBUaGUgY29udGVudCBpcyBKU09OLlxufSBFTFNFIHtcbiAgICAvLyBUaGUgY29udGVudCBpcyBub3QgSlNPTi5cbn0ifSwgeyJuYW1lIjogIk1XRy5Cb2R5TWltZUhlYWRlclBhcmFtZXRlclZhbHVlIChTVFJJTkcsIFNUUklORykiLCAicmV0dXJuX3R5cGUiOiAiU1RSSU5HIiwgInJldHVybl9kZXNjIjogIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbWltZSBoZWFkZXIgcGFyYW1ldGVyJ3MgdmFsdWUuIiwgInBhcmFtZXRlcl9kZXNjIjogIlNUUklORzogdGhlIG5hbWUgb2YgdGhlIG1pbWUgaGVhZGVyOyBTVFJJTkc6IHRoZSBkZXNpcmVkIHBhcmFtZXRlciB3aXRoaW4gdGhlIG1pbWUgaGVhZGVyLiIsICJkZXNjcmlwdGlvbiI6ICJSZXR1cm5zIHRoZSBNaW1lIGhlYWRlciBwYXJhbWV0ZXIgdmFsdWUuIiwgImV4YW1wbGVfY29kZSI6ICIvLyBEZWZpbmUgdGhlIE1JTUUgaGVhZGVyIGFuZCBwYXJhbWV0ZXIgeW91IHdhbnQgdG8gY2hlY2tcblNUUklORyBtaW1lSGVhZGVyID0gXCJDb250ZW50LVR5cGVcIlxuU1RSSU5HIHBhcmFtZXRlciA9IFwiY2hhcnNldFwiXG5cbi8vIFJldHJpZXZlIHRoZSB2YWx1ZSBvZiB0aGUgc3BlY2lmaWVkIHBhcmFtZXRlciBmcm9tIHRoZSBNSU1FIGhlYWRlclxuU1RSSU5HIGNoYXJzZXRWYWx1ZSA9IE1XRy5Cb2R5TWltZUhlYWRlclBhcmFtZXRlclZhbHVlKG1pbWVIZWFkZXIsIHBhcmFtZXRlcilcblxuLy8gQ2hhcnNldCB2YWx1ZTogXCIgKyBjaGFyc2V0VmFsdWVcblxuLy8gUGVyZm9ybSBhbiBhY3Rpb24gYmFzZWQgb24gdGhlIHJldHJpZXZlZCB2YWx1ZVxuSUYgY2hhcnNldFZhbHVlID09IFwidXRmLThcIiBUSEVOIHtcbiAgICAvLyBUaGUgY2hhcnNldCBpcyBVVEYtOFxufSBFTFNFIHtcbiAgICAvLyBUaGUgY2hhcnNldCBpcyBub3QgVVRGLThcbn0iLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICIvLyBEZWZpbmUgdGhlIE1JTUUgaGVhZGVyIGFuZCBwYXJhbWV0ZXIgeW91IHdhbnQgdG8gY2hlY2tcblNUUklORyBtaW1lSGVhZGVyID0gXCJDb250ZW50LVR5cGVcIlxuU1RSSU5HIHBhcmFtZXRlciA9IFwiY2hhcnNldFwiXG5cbi8vIFJldHJpZXZlIHRoZSB2YWx1ZSBvZiB0aGUgc3BlY2lmaWVkIHBhcmFtZXRlciBmcm9tIHRoZSBNSU1FIGhlYWRlclxuU1RSSU5HIGNoYXJzZXRWYWx1ZSA9IE1XRy5Cb2R5TWltZUhlYWRlclBhcmFtZXRlclZhbHVlKG1pbWVIZWFkZXIsIHBhcmFtZXRlcilcblxuLy8gQ2hhcnNldCB2YWx1ZTogXCIgKyBjaGFyc2V0VmFsdWVcblxuLy8gUGVyZm9ybSBhbiBhY3Rpb24gYmFzZWQgb24gdGhlIHJldHJpZXZlZCB2YWx1ZVxuSUYgY2hhcnNldFZhbHVlID09IFwidXRmLThcIiBUSEVOIHtcbiAgICAvLyBUaGUgY2hhcnNldCBpcyBVVEYtOFxufSBFTFNFIHtcbiAgICAvLyBUaGUgY2hhcnNldCBpcyBub3QgVVRGLThcbn0ifSwgeyJuYW1lIjogIk1XRy5Cb2R5TWltZUhlYWRlclZhbHVlIChTVFJJTkcpIiwgInJldHVybl90eXBlIjogIlNUUklORyIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIHRoZSBzYW1lIE1JTUUgaGVhZGVyIHZhbHVlIHRoYXQgaXMgcHJvdmlkZWQgYXMgaW5wdXQuIiwgInBhcmFtZXRlcl9kZXNjIjogIlNUUklORzogdGhlIG1pbWUgaGVhZGVyIHZhbHVlIHRvIGJlIHJldHVybmVkLiIsICJkZXNjcmlwdGlvbiI6ICJSZXR1cm5zIHRoZSBpbnB1dCBNaW1lIGhlYWRlciB2YWx1ZS4iLCAiZXhhbXBsZV9jb2RlIjogIlNUUklORyBtaW1lSGVhZGVyID0gXCJDb250ZW50LVR5cGVcIlxuU1RSSU5HIGhlYWRlclZhbHVlID0gTVdHLkJvZHlNaW1lSGVhZGVyVmFsdWUobWltZUhlYWRlcilcbi8vIFRoZSBNSU1FIGhlYWRlciB2YWx1ZSBmb3IgQ29udGVudC1UeXBlIGlzOiBoZWFkZXJWYWx1ZSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIlNUUklORyBtaW1lSGVhZGVyID0gXCJDb250ZW50LVR5cGVcIlxuU1RSSU5HIGhlYWRlclZhbHVlID0gTVdHLkJvZHlNaW1lSGVhZGVyVmFsdWUobWltZUhlYWRlcilcbi8vIFRoZSBNSU1FIGhlYWRlciB2YWx1ZSBmb3IgQ29udGVudC1UeXBlIGlzOiBoZWFkZXJWYWx1ZSJ9LCB7Im5hbWUiOiAiTVdHLkJvZHlOZXN0ZWRBcmNoaXZlTGV2ZWwgKCkiLCAicmV0dXJuX3R5cGUiOiAiTlVNQkVSIiwgInJldHVybl9kZXNjIjogIlJldHVybnMgdGhlIGN1cnJlbnQgbGV2ZWwgb2YgdGhlIG5lc3RlZCBhcmNoaXZlIGFzIGEgbnVtZXJpYyB2YWx1ZS4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiTm9uZSIsICJkZXNjcmlwdGlvbiI6ICJSZXR1cm5zIHRoZSBjdXJyZW50IGFyY2hpdmUgbGV2ZWwuIiwgImV4YW1wbGVfY29kZSI6ICJOVU1CRVIgbmVzdGVkTGV2ZWwgPSBNV0cuQm9keU5lc3RlZEFyY2hpdmVMZXZlbCgpXG5cbklGIG5lc3RlZExldmVsID4gMyBUSEVOIHtcbiAgICBNV0cuQmxvY2soXCJUaGUgYXJjaGl2ZSBpcyBuZXN0ZWQgdG9vIGRlZXBseS5cIilcbn0gRUxTRSB7XG4gICAgTVdHLkFsbG93KFwiQXJjaGl2ZSBuZXN0aW5nIGxldmVsIGlzIGFjY2VwdGFibGUuXCIpXG59IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiTlVNQkVSIG5lc3RlZExldmVsID0gTVdHLkJvZHlOZXN0ZWRBcmNoaXZlTGV2ZWwoKVxuXG5JRiBuZXN0ZWRMZXZlbCA+IDMgVEhFTiB7XG4gICAgTVdHLkJsb2NrKFwiVGhlIGFyY2hpdmUgaXMgbmVzdGVkIHRvbyBkZWVwbHkuXCIpXG59IEVMU0Uge1xuICAgIE1XRy5BbGxvdyhcIkFyY2hpdmUgbmVzdGluZyBsZXZlbCBpcyBhY2NlcHRhYmxlLlwiKVxufSJ9LCB7Im5hbWUiOiAiTVdHLkJvZHlQb3NpdGlvbk9mUGF0dGVybiAoU1RSSU5HLCBOVU1CRVIsIE5VTUJFUikiLCAicmV0dXJuX3R5cGUiOiAiTlVNQkVSIiwgInJldHVybl9kZXNjIjogIlJldHVybnMgdGhlIHBvc2l0aW9uIG9mIHRoZSBnaXZlbiBzdHJpbmcgaW4gdGhlIGJvZHkuIiwgInBhcmFtZXRlcl9kZXNjIjogIlNUUklORzogUGF0dGVybiB0byBzZWFyY2ggZm9yOyBOVU1CRVI6IFN0YXJ0aW5nIHBvc2l0aW9uOyBOVU1CRVI6IExlbmd0aCB0byBzZWFyY2guIiwgImRlc2NyaXB0aW9uIjogIkdldHMgdGhlIHBvc2l0aW9uIG9mIHRoZSBnaXZlbiBzdHJpbmcgaW4gdGhlIGJvZHkuIiwgImV4YW1wbGVfY29kZSI6ICJTVFJJTkcgcGF0dGVybiA9IFwiZXhhbXBsZVBhdHRlcm5cIlxuTlVNQkVSIHN0YXJ0UG9zaXRpb24gPSAwXG5OVU1CRVIgbGVuZ3RoVG9TZWFyY2ggPSAxMDAwXG5cbk5VTUJFUiBwb3NpdGlvbiA9IE1XRy5Cb2R5UG9zaXRpb25PZlBhdHRlcm4ocGF0dGVybiwgc3RhcnRQb3NpdGlvbiwgbGVuZ3RoVG9TZWFyY2gpXG5cbklGIHBvc2l0aW9uID49IDAgVEhFTiB7XG4gICAgLy8gUGF0dGVybiBmb3VuZCBhdCBwb3NpdGlvbjogXCIgKyBwb3NpdGlvblxuICAgIE1XRy5CbG9jayhcIlBhdHRlcm4gZm91bmQgaW4gcmVxdWVzdCBib2R5XCIpXG59IEVMU0Uge1xuICAgIC8vIFBhdHRlcm4gbm90IGZvdW5kIGluIHRoZSBzcGVjaWZpZWQgcmFuZ2VcbiAgICBNV0cuQWxsb3coXCJQYXR0ZXJuIG5vdCBmb3VuZFwiKVxufSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIlNUUklORyBwYXR0ZXJuID0gXCJleGFtcGxlUGF0dGVyblwiXG5OVU1CRVIgc3RhcnRQb3NpdGlvbiA9IDBcbk5VTUJFUiBsZW5ndGhUb1NlYXJjaCA9IDEwMDBcblxuTlVNQkVSIHBvc2l0aW9uID0gTVdHLkJvZHlQb3NpdGlvbk9mUGF0dGVybihwYXR0ZXJuLCBzdGFydFBvc2l0aW9uLCBsZW5ndGhUb1NlYXJjaClcblxuSUYgcG9zaXRpb24gPj0gMCBUSEVOIHtcbiAgICAvLyBQYXR0ZXJuIGZvdW5kIGF0IHBvc2l0aW9uOiBcIiArIHBvc2l0aW9uXG4gICAgTVdHLkJsb2NrKFwiUGF0dGVybiBmb3VuZCBpbiByZXF1ZXN0IGJvZHlcIilcbn0gRUxTRSB7XG4gICAgLy8gUGF0dGVybiBub3QgZm91bmQgaW4gdGhlIHNwZWNpZmllZCByYW5nZVxuICAgIE1XRy5BbGxvdyhcIlBhdHRlcm4gbm90IGZvdW5kXCIpXG59In0sIHsibmFtZSI6ICJNV0cuQm9keVJlcHV0YXRpb25Jc0JhZCAoTVdHLkludGVybmFsU2V0dGluZykiLCAicmV0dXJuX3R5cGUiOiAiQk9PTEVBTiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zYFRSVUVgaWYgdGhlIEdUSSBjbG91ZCBzZXJ2aWNlIGlkZW50aWZpZXMgdGhlIGN1cnJlbnQgYm9keSBhcyBhIHZpcnVzLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJNV0cuSW50ZXJuYWxTZXR0aW5nOiBzcGVjaWZpZXMgdGhlIGludGVybmFsIGNvbmZpZ3VyYXRpb24gdXNlZCB0byBjaGVjayB0aGUgcmVwdXRhdGlvbiBvZiB0aGUgYm9keSB3aXRoIHRoZSBHVEkgY2xvdWQgc2VydmljZS4iLCAiZGVzY3JpcHRpb24iOiAiTG9nZ2luZzogUmV0dXJucyB0cnVlIGlmIHRoZSBHVEkgY2xvdWQgc2VydmljZSByYXRlcyB0aGUgY3VycmVudCBib2R5IGFzIGEgdmlydXMuIiwgImV4YW1wbGVfY29kZSI6ICJNV0cuVVJMIHVybCA9IE1XRy5VcmwoKVxuU1RSSU5HIHJlcHV0YXRpb24gPSBHZXRSZXB1dGF0aW9uKHVybCkgIC8vIEFzc3VtaW5nIEdldFJlcHV0YXRpb24gaXMgYSBmdW5jdGlvbiB0aGF0IHJldHVybnMgdGhlIHJlcHV0YXRpb24gb2YgdGhlIFVSTFxuXG5JRiByZXB1dGF0aW9uID09IFwiYmFkXCIgVEhFTiB7XG4gICAgTVdHLkJsb2NrKFwiQ29udGVudCBibG9ja2VkIGR1ZSB0byBiYWQgcmVwdXRhdGlvblwiKVxufSBFTFNFIHtcbiAgICBNV0cuQWxsb3coXCJDb250ZW50IGFsbG93ZWRcIilcbn0iLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICJNV0cuVVJMIHVybCA9IE1XRy5VcmwoKVxuU1RSSU5HIHJlcHV0YXRpb24gPSBHZXRSZXB1dGF0aW9uKHVybCkgIC8vIEFzc3VtaW5nIEdldFJlcHV0YXRpb24gaXMgYSBmdW5jdGlvbiB0aGF0IHJldHVybnMgdGhlIHJlcHV0YXRpb24gb2YgdGhlIFVSTFxuXG5JRiByZXB1dGF0aW9uID09IFwiYmFkXCIgVEhFTiB7XG4gICAgTVdHLkJsb2NrKFwiQ29udGVudCBibG9ja2VkIGR1ZSB0byBiYWQgcmVwdXRhdGlvblwiKVxufSBFTFNFIHtcbiAgICBNV0cuQWxsb3coXCJDb250ZW50IGFsbG93ZWRcIilcbn0ifSwgeyJuYW1lIjogIk1XRy5Cb2R5UmVwdXRhdGlvbklzQmFkIChNV0cuVXJsQ2F0ZWdvcml6YXRpb25TZXR0aW5nKSIsICJyZXR1cm5fdHlwZSI6ICJCT09MRUFOIiwgInJldHVybl9kZXNjIjogIlJldHVybnNgVFJVRWBpZiB0aGUgR1RJIGNsb3VkIHNlcnZpY2UgaWRlbnRpZmllcyB0aGUgY3VycmVudCBib2R5IGFzIGEgdmlydXMuIiwgInBhcmFtZXRlcl9kZXNjIjogIk1XRy5VcmxDYXRlZ29yaXphdGlvblNldHRpbmc6IFRoZSB1cmwgY2F0ZWdvcml6YXRpb24gc2V0dGluZyB1c2VkIHRvIGFzc2VzcyB0aGUgYm9keSByZXB1dGF0aW9uIHZpYSB0aGUgR1RJIGNsb3VkIHNlcnZpY2UuIiwgImRlc2NyaXB0aW9uIjogIlJldHVybnMgVFJVRSBpZiBHVEkgY2xvdWQgc2VydmljZSByYXRlcyBjdXJyZW50IGJvZHkgYXMgdmlydXMuIiwgImV4YW1wbGVfY29kZSI6ICJNV0cuVXJsQ2F0ZWdvcml6YXRpb25TZXR0aW5nIGNhdGVnb3JpemF0aW9uU2V0dGluZyA9IC8vIEluaXRpYWxpemUgeW91ciBjYXRlZ29yaXphdGlvbiBzZXR0aW5nIGhlcmVcblxuSUYgTk9UIE1XRy5Cb2R5UmVwdXRhdGlvbklzR29vZChjYXRlZ29yaXphdGlvblNldHRpbmcpIFRIRU4ge1xuICAgIC8vIEJvZHkgcmVwdXRhdGlvbiBpcyBiYWRcbiAgICBNV0cuQmxvY2soXCJUaGUgY29udGVudCBoYXMgYmVlbiBibG9ja2VkIGR1ZSB0byBiYWQgYm9keSByZXB1dGF0aW9uLlwiKVxufSBFTFNFIHtcbiAgICAvLyBCb2R5IHJlcHV0YXRpb24gaXMgZ29vZFxuICAgIE1XRy5BbGxvdyhcIkJvZHkgcmVwdXRhdGlvbiBjaGVjayBwYXNzZWRcIilcbn0iLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICJNV0cuVXJsQ2F0ZWdvcml6YXRpb25TZXR0aW5nIGNhdGVnb3JpemF0aW9uU2V0dGluZyA9IC8vIEluaXRpYWxpemUgeW91ciBjYXRlZ29yaXphdGlvbiBzZXR0aW5nIGhlcmVcblxuSUYgTk9UIE1XRy5Cb2R5UmVwdXRhdGlvbklzR29vZChjYXRlZ29yaXphdGlvblNldHRpbmcpIFRIRU4ge1xuICAgIC8vIEJvZHkgcmVwdXRhdGlvbiBpcyBiYWRcbiAgICBNV0cuQmxvY2soXCJUaGUgY29udGVudCBoYXMgYmVlbiBibG9ja2VkIGR1ZSB0byBiYWQgYm9keSByZXB1dGF0aW9uLlwiKVxufSBFTFNFIHtcbiAgICAvLyBCb2R5IHJlcHV0YXRpb24gaXMgZ29vZFxuICAgIE1XRy5BbGxvdyhcIkJvZHkgcmVwdXRhdGlvbiBjaGVjayBwYXNzZWRcIilcbn0ifSwgeyJuYW1lIjogIk1XRy5Cb2R5UmVwdXRhdGlvbklzR29vZCAoTVdHLkludGVybmFsU2V0dGluZykiLCAicmV0dXJuX3R5cGUiOiAiQk9PTEVBTiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zYFRSVUVgaWYgdGhlIEdUSSBjbG91ZCBzZXJ2aWNlIHZlcmlmaWVzIHRoYXQgdGhlIGN1cnJlbnQgYm9keSBpcyBjbGVhbi4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiTVdHLkludGVybmFsU2V0dGluZzogQ29uZmlndXJhdGlvbiBzZXR0aW5nIHVzZWQgaW50ZXJuYWxseSBieSBNV0cgdG8gZXZhbHVhdGUgdGhlIGJvZHkncyByZXB1dGF0aW9uIHRocm91Z2ggdGhlIEdUSSBjbG91ZCBzZXJ2aWNlLiIsICJkZXNjcmlwdGlvbiI6ICJMb2dnaW5nOiBSZXR1cm5zIFRSVUUgaWYgR1RJIGNsb3VkIHNlcnZpY2UgcmF0ZXMgdGhlIGN1cnJlbnQgYm9keSBhcyBjbGVhbi4iLCAiZXhhbXBsZV9jb2RlIjogIk1XRy5JbnRlcm5hbFNldHRpbmcgYm9keVJlcHV0YXRpb25TZXR0aW5nID0gTVdHLkJvZHlSZXB1dGF0aW9uSXNHb29kKClcblNUUklORyByZXB1dGF0aW9uUmVzdWx0ID0gTVdHLkV4ZWN1dGVFdmVudChib2R5UmVwdXRhdGlvblNldHRpbmcsIFwiQ2hlY2tSZXB1dGF0aW9uXCIsIE1XRy5JbnRlcm5hbFBhcmFtZXRlckxpc3QoKSlcblxuSUYgcmVwdXRhdGlvblJlc3VsdCA9PSBcIkdvb2RcIiBUSEVOIHtcbiAgICAvLyBCb2R5IHJlcHV0YXRpb24gaXMgZ29vZC4gQWxsb3dpbmcgdGhlIHJlc3BvbnNlLlxuICAgIE1XRy5BbGxvdyhcIkJvZHlSZXB1dGF0aW9uQ2hlY2tcIilcbn0gRUxTRSB7XG4gICAgLy8gQm9keSByZXB1dGF0aW9uIGlzIG5vdCBnb29kLiBCbG9ja2luZyB0aGUgcmVzcG9uc2UuXG4gICAgTVdHLkJsb2NrKFwiQm9keVJlcHV0YXRpb25DaGVja1wiKVxufSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIk1XRy5JbnRlcm5hbFNldHRpbmcgYm9keVJlcHV0YXRpb25TZXR0aW5nID0gTVdHLkJvZHlSZXB1dGF0aW9uSXNHb29kKClcblNUUklORyByZXB1dGF0aW9uUmVzdWx0ID0gTVdHLkV4ZWN1dGVFdmVudChib2R5UmVwdXRhdGlvblNldHRpbmcsIFwiQ2hlY2tSZXB1dGF0aW9uXCIsIE1XRy5JbnRlcm5hbFBhcmFtZXRlckxpc3QoKSlcblxuSUYgcmVwdXRhdGlvblJlc3VsdCA9PSBcIkdvb2RcIiBUSEVOIHtcbiAgICAvLyBCb2R5IHJlcHV0YXRpb24gaXMgZ29vZC4gQWxsb3dpbmcgdGhlIHJlc3BvbnNlLlxuICAgIE1XRy5BbGxvdyhcIkJvZHlSZXB1dGF0aW9uQ2hlY2tcIilcbn0gRUxTRSB7XG4gICAgLy8gQm9keSByZXB1dGF0aW9uIGlzIG5vdCBnb29kLiBCbG9ja2luZyB0aGUgcmVzcG9uc2UuXG4gICAgTVdHLkJsb2NrKFwiQm9keVJlcHV0YXRpb25DaGVja1wiKVxufSJ9LCB7Im5hbWUiOiAiTVdHLkJvZHlSZXB1dGF0aW9uSXNHb29kIChNV0cuVXJsQ2F0ZWdvcml6YXRpb25TZXR0aW5nKSIsICJyZXR1cm5fdHlwZSI6ICJCT09MRUFOIiwgInJldHVybl9kZXNjIjogIlJldHVybnNgVFJVRWBpZiB0aGUgR1RJIGNsb3VkIHNlcnZpY2UgZGV0ZXJtaW5lcyB0aGF0IHRoZSBjdXJyZW50IGJvZHkgaXMgY2xlYW4uIiwgInBhcmFtZXRlcl9kZXNjIjogIk1XRy5VcmxDYXRlZ29yaXphdGlvblNldHRpbmc6IFRoZSBjYXRlZ29yaXphdGlvbiBzZXR0aW5ncyB1c2VkIHRvIGRldGVybWluZSBpZiB0aGUgY3VycmVudCBib2R5IGlzIHJhdGVkIGFzIGNsZWFuIGJ5IHRoZSBHVEkgY2xvdWQgc2VydmljZS4iLCAiZGVzY3JpcHRpb24iOiAiUmV0dXJucyBUUlVFIGlmIEdUSSBjbG91ZCBzZXJ2aWNlIHJhdGVzIGN1cnJlbnQgYm9keSBhcyBjbGVhbi4iLCAiZXhhbXBsZV9jb2RlIjogIk1XRy5VcmxDYXRlZ29yaXphdGlvblNldHRpbmcgY2F0ZWdvcml6YXRpb25TZXR0aW5nID0gLy8gSW5pdGlhbGl6ZSB3aXRoIGFwcHJvcHJpYXRlIHNldHRpbmdzXG5cbklGIE1XRy5Cb2R5UmVwdXRhdGlvbklzR29vZChjYXRlZ29yaXphdGlvblNldHRpbmcpIFRIRU4ge1xuICAgIC8vIEJvZHkgcmVwdXRhdGlvbiBpcyBnb29kXG4gICAgTVdHLkFsbG93KFwiQm9keSByZXB1dGF0aW9uIGlzIGdvb2RcIilcbn0gRUxTRSB7XG4gICAgLy8gQm9keSByZXB1dGF0aW9uIGlzIG5vdCBnb29kXG4gICAgTVdHLkJsb2NrKFwiQm9keSByZXB1dGF0aW9uIGlzIG5vdCBnb29kXCIpXG59IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiTVdHLlVybENhdGVnb3JpemF0aW9uU2V0dGluZyBjYXRlZ29yaXphdGlvblNldHRpbmcgPSAvLyBJbml0aWFsaXplIHdpdGggYXBwcm9wcmlhdGUgc2V0dGluZ3NcblxuSUYgTVdHLkJvZHlSZXB1dGF0aW9uSXNHb29kKGNhdGVnb3JpemF0aW9uU2V0dGluZykgVEhFTiB7XG4gICAgLy8gQm9keSByZXB1dGF0aW9uIGlzIGdvb2RcbiAgICBNV0cuQWxsb3coXCJCb2R5IHJlcHV0YXRpb24gaXMgZ29vZFwiKVxufSBFTFNFIHtcbiAgICAvLyBCb2R5IHJlcHV0YXRpb24gaXMgbm90IGdvb2RcbiAgICBNV0cuQmxvY2soXCJCb2R5IHJlcHV0YXRpb24gaXMgbm90IGdvb2RcIilcbn0ifSwgeyJuYW1lIjogIk1XRy5Cb2R5UmVwdXRhdGlvbklzS25vd24gKE1XRy5JbnRlcm5hbFNldHRpbmcpIiwgInJldHVybl90eXBlIjogIkJPT0xFQU4iLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJuc2BUUlVFYGlmIHRoZSBHVEkgY2xvdWQgc2VydmljZSBoYXMgYSByYXRpbmcgYXZhaWxhYmxlIGZvciB0aGUgY3VycmVudCBib2R5LiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJNV0cuSW50ZXJuYWxTZXR0aW5nOiBBIGNvbmZpZ3VyYXRpb24gb3Igc3RhdHVzIG9iamVjdCB1c2VkIHRvIGNoZWNrIGlmIHRoZSBHVEkgY2xvdWQgc2VydmljZSBoYXMgYSByYXRpbmcgZm9yIHRoZSBjdXJyZW50IGJvZHkuIiwgImRlc2NyaXB0aW9uIjogIkxvZ2dpbmc6IFJldHVybnMgdHJ1ZSBpZiBHVEkgY2xvdWQgc2VydmljZSBoYXMgYSByYXRpbmcgZm9yIHRoZSBjdXJyZW50IGJvZHkuIiwgImV4YW1wbGVfY29kZSI6ICJNV0cuSW50ZXJuYWxTZXR0aW5nIHNldHRpbmcgPSAvLyBJbml0aWFsaXplIG9yIG9idGFpbiB0aGUgYXBwcm9wcmlhdGUgTVdHLkludGVybmFsU2V0dGluZyBvYmplY3RcblxuSUYgTVdHLkJvZHlSZXB1dGF0aW9uSXNLbm93bihzZXR0aW5nKSBUSEVOIHtcbiAgICAvLyBHVEkgY2xvdWQgc2VydmljZSBoYXMgYSByYXRpbmcgZm9yIHRoZSBjdXJyZW50IGJvZHkuXG4gICAgLy8gQWRkaXRpb25hbCBhY3Rpb25zIGNhbiBiZSB0YWtlbiBoZXJlLCBzdWNoIGFzIGFsbG93aW5nIHRoZSBjb25uZWN0aW9uXG4gICAgTVdHLkFsbG93KFwiQm9keSByZXB1dGF0aW9uIGtub3duXCIpXG59IEVMU0Uge1xuICAgIC8vIEdUSSBjbG91ZCBzZXJ2aWNlIGRvZXMgbm90IGhhdmUgYSByYXRpbmcgZm9yIHRoZSBjdXJyZW50IGJvZHkuXG4gICAgLy8gQWRkaXRpb25hbCBhY3Rpb25zIGNhbiBiZSB0YWtlbiBoZXJlLCBzdWNoIGFzIGJsb2NraW5nIHRoZSBjb25uZWN0aW9uXG4gICAgTVdHLkJsb2NrKFwiQm9keSByZXB1dGF0aW9uIHVua25vd25cIilcbn0iLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICJNV0cuSW50ZXJuYWxTZXR0aW5nIHNldHRpbmcgPSAvLyBJbml0aWFsaXplIG9yIG9idGFpbiB0aGUgYXBwcm9wcmlhdGUgTVdHLkludGVybmFsU2V0dGluZyBvYmplY3RcblxuSUYgTVdHLkJvZHlSZXB1dGF0aW9uSXNLbm93bihzZXR0aW5nKSBUSEVOIHtcbiAgICAvLyBHVEkgY2xvdWQgc2VydmljZSBoYXMgYSByYXRpbmcgZm9yIHRoZSBjdXJyZW50IGJvZHkuXG4gICAgLy8gQWRkaXRpb25hbCBhY3Rpb25zIGNhbiBiZSB0YWtlbiBoZXJlLCBzdWNoIGFzIGFsbG93aW5nIHRoZSBjb25uZWN0aW9uXG4gICAgTVdHLkFsbG93KFwiQm9keSByZXB1dGF0aW9uIGtub3duXCIpXG59IEVMU0Uge1xuICAgIC8vIEdUSSBjbG91ZCBzZXJ2aWNlIGRvZXMgbm90IGhhdmUgYSByYXRpbmcgZm9yIHRoZSBjdXJyZW50IGJvZHkuXG4gICAgLy8gQWRkaXRpb25hbCBhY3Rpb25zIGNhbiBiZSB0YWtlbiBoZXJlLCBzdWNoIGFzIGJsb2NraW5nIHRoZSBjb25uZWN0aW9uXG4gICAgTVdHLkJsb2NrKFwiQm9keSByZXB1dGF0aW9uIHVua25vd25cIilcbn0ifSwgeyJuYW1lIjogIk1XRy5Cb2R5UmVwdXRhdGlvbklzS25vd24gKE1XRy5VcmxDYXRlZ29yaXphdGlvblNldHRpbmcpIiwgInJldHVybl90eXBlIjogIkJPT0xFQU4iLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJuc2BUUlVFYGlmIHRoZSBHVEkgY2xvdWQgc2VydmljZSBoYXMgYSByYXRpbmcgZm9yIHRoZSBzcGVjaWZpZWQgYE1XRyBVUkwgY2F0ZWdvcml6YXRpb25gLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJNV0cuVXJsQ2F0ZWdvcml6YXRpb25TZXR0aW5nOiBUaGUgY29uZmlndXJhdGlvbiBzZXR0aW5nIGRpY3RhdGluZyBob3cgVVJMcyBhcmUgY2F0ZWdvcml6ZWQuIiwgImRlc2NyaXB0aW9uIjogIlJldHVybnMgVFJVRSBpZiBHVEkgY2xvdWQgc2VydmljZSBoYXMgYSByYXRpbmcgZm9yIHRoZSBjdXJyZW50IGJvZHkuIiwgImV4YW1wbGVfY29kZSI6ICJNV0cuVXJsQ2F0ZWdvcml6YXRpb25TZXR0aW5nIGNhdGVnb3JpemF0aW9uU2V0dGluZyA9IE1XRy5VcmxDYXRlZ29yaXphdGlvblNldHRpbmcoKVxuXG5JRiBNV0cuQm9keVJlcHV0YXRpb25Jc0dvb2QoY2F0ZWdvcml6YXRpb25TZXR0aW5nKSBUSEVOIHtcbiAgICAvLyBCb2R5IHJlcHV0YXRpb24gaXMgZ29vZC5cbiAgICBNV0cuQWxsb3coXCJCb2R5UmVwdXRhdGlvbkNoZWNrXCIpXG59IEVMU0Uge1xuICAgIC8vIEJvZHkgcmVwdXRhdGlvbiBpcyBub3QgZ29vZC5cbiAgICBNV0cuQmxvY2soXCJCb2R5UmVwdXRhdGlvbkNoZWNrXCIpXG59IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiTVdHLlVybENhdGVnb3JpemF0aW9uU2V0dGluZyBjYXRlZ29yaXphdGlvblNldHRpbmcgPSBNV0cuVXJsQ2F0ZWdvcml6YXRpb25TZXR0aW5nKClcblxuSUYgTVdHLkJvZHlSZXB1dGF0aW9uSXNHb29kKGNhdGVnb3JpemF0aW9uU2V0dGluZykgVEhFTiB7XG4gICAgLy8gQm9keSByZXB1dGF0aW9uIGlzIGdvb2QuXG4gICAgTVdHLkFsbG93KFwiQm9keVJlcHV0YXRpb25DaGVja1wiKVxufSBFTFNFIHtcbiAgICAvLyBCb2R5IHJlcHV0YXRpb24gaXMgbm90IGdvb2QuXG4gICAgTVdHLkJsb2NrKFwiQm9keVJlcHV0YXRpb25DaGVja1wiKVxufSJ9LCB7Im5hbWUiOiAiTVdHLkJvZHlTaXplICgpIiwgInJldHVybl90eXBlIjogIk5VTUJFUiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIHRoZSBudW1lcmljIHZhbHVlIHJlcHJlc2VudGluZyB0aGUgc2l6ZSBvZiB0aGUgYm9keS4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiTm9uZSIsICJkZXNjcmlwdGlvbiI6ICJSZXR1cm5zIHRoZSBzaXplIG9mIHRoZSBib2R5LiIsICJleGFtcGxlX2NvZGUiOiAiTlVNQkVSIGJvZHlTaXplID0gTVdHLkJvZHlTaXplKClcbi8vIFRoZSBzaXplIG9mIHRoZSBib2R5IGlzOiBib2R5U2l6ZVxuXG5JRiBib2R5U2l6ZSA+IDEwMDAwMDAgVEhFTiB7XG4gICAgTVdHLkJsb2NrKFwiVGhlIGJvZHkgc2l6ZSBleGNlZWRzIHRoZSBhbGxvd2VkIGxpbWl0LlwiKVxufSBFTFNFIHtcbiAgICBNV0cuQWxsb3coXCJCb2R5IHNpemUgaXMgd2l0aGluIHRoZSBhbGxvd2VkIGxpbWl0LlwiKVxufSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIk5VTUJFUiBib2R5U2l6ZSA9IE1XRy5Cb2R5U2l6ZSgpXG4vLyBUaGUgc2l6ZSBvZiB0aGUgYm9keSBpczogYm9keVNpemVcblxuSUYgYm9keVNpemUgPiAxMDAwMDAwIFRIRU4ge1xuICAgIE1XRy5CbG9jayhcIlRoZSBib2R5IHNpemUgZXhjZWVkcyB0aGUgYWxsb3dlZCBsaW1pdC5cIilcbn0gRUxTRSB7XG4gICAgTVdHLkFsbG93KFwiQm9keSBzaXplIGlzIHdpdGhpbiB0aGUgYWxsb3dlZCBsaW1pdC5cIilcbn0ifSwgeyJuYW1lIjogIk1XRy5Cb2R5VGV4dExhbmd1YWdlICgpIiwgInJldHVybl90eXBlIjogIlNUUklORyIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIHRoZSBJU08gNjM5LTEgY29kZSByZXByZXNlbnRpbmcgdGhlIGRldGVjdGVkIGxhbmd1YWdlIG9mIHRoZSBleHRyYWN0ZWQgdGV4dC4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiTm9uZSIsICJkZXNjcmlwdGlvbiI6ICJSZXR1cm5zIHRoZSBkZXRlY3RlZCBsYW5ndWFnZSAoSVNPIDYzOS0xIGNvZGUpIGZvciB0aGUgZXh0cmFjdGVkIHRleHQuIiwgImV4YW1wbGVfY29kZSI6ICJTVFJJTkcgZGV0ZWN0ZWRMYW5ndWFnZSA9IE1XRy5Cb2R5VGV4dExhbmd1YWdlKClcblxuSUYgZGV0ZWN0ZWRMYW5ndWFnZSA9PSBcImVuXCIgVEhFTiB7XG4gICAgLy8gVGhlIGRldGVjdGVkIGxhbmd1YWdlIGlzIEVuZ2xpc2guXG4gICAgTVdHLkFsbG93KFwiTGFuZ3VhZ2UgaXMgRW5nbGlzaFwiKVxufSBFTFNFIHtcbiAgICAvLyBUaGUgZGV0ZWN0ZWQgbGFuZ3VhZ2UgaXMgbm90IEVuZ2xpc2guIEl0IGlzOiBcIiArIGRldGVjdGVkTGFuZ3VhZ2VcbiAgICBNV0cuQmxvY2soXCJOb24tRW5nbGlzaCBjb250ZW50IGlzIG5vdCBhbGxvd2VkLlwiKVxufSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIlNUUklORyBkZXRlY3RlZExhbmd1YWdlID0gTVdHLkJvZHlUZXh0TGFuZ3VhZ2UoKVxuXG5JRiBkZXRlY3RlZExhbmd1YWdlID09IFwiZW5cIiBUSEVOIHtcbiAgICAvLyBUaGUgZGV0ZWN0ZWQgbGFuZ3VhZ2UgaXMgRW5nbGlzaC5cbiAgICBNV0cuQWxsb3coXCJMYW5ndWFnZSBpcyBFbmdsaXNoXCIpXG59IEVMU0Uge1xuICAgIC8vIFRoZSBkZXRlY3RlZCBsYW5ndWFnZSBpcyBub3QgRW5nbGlzaC4gSXQgaXM6IFwiICsgZGV0ZWN0ZWRMYW5ndWFnZVxuICAgIE1XRy5CbG9jayhcIk5vbi1FbmdsaXNoIGNvbnRlbnQgaXMgbm90IGFsbG93ZWQuXCIpXG59In0sIHsibmFtZSI6ICJNV0cuQm9keVVuY29tcHJlc3NlZFNpemUgKCkiLCAicmV0dXJuX3R5cGUiOiAiTlVNQkVSIiwgInJldHVybl9kZXNjIjogIlJldHVybnMgdGhlIHNpemUgb2YgYW4gYXJjaGl2ZSBvciBkb2N1bWVudCBpbiBpdHMgdW5jb21wcmVzc2VkIGZvcm0uIiwgInBhcmFtZXRlcl9kZXNjIjogIk5vbmUiLCAiZGVzY3JpcHRpb24iOiAiUmV0dXJucyB0aGUgdW5jb21wcmVzc2VkIHNpemUgb2YgYW4gYXJjaGl2ZSBvciBkb2N1bWVudC4iLCAiZXhhbXBsZV9jb2RlIjogIk5VTUJFUiB1bmNvbXByZXNzZWRTaXplID0gTVdHLkJvZHlVbmNvbXByZXNzZWRTaXplKClcbk5VTUJFUiBzaXplVGhyZXNob2xkID0gMTA0ODU3NjAgIC8vIDEwIE1CIGluIGJ5dGVzXG5cbklGIHVuY29tcHJlc3NlZFNpemUgPiBzaXplVGhyZXNob2xkIFRIRU4ge1xuICAgIE1XRy5CbG9jayhcIlRoZSB1bmNvbXByZXNzZWQgc2l6ZSBvZiB0aGUgZG9jdW1lbnQgZXhjZWVkcyB0aGUgYWxsb3dlZCBsaW1pdCBvZiAxMCBNQi5cIilcbn0gRUxTRSB7XG4gICAgTVdHLkFsbG93KFwiVW5jb21wcmVzc2VkIHNpemUgaXMgd2l0aGluIHRoZSBhbGxvd2VkIGxpbWl0LlwiKVxufSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIk5VTUJFUiB1bmNvbXByZXNzZWRTaXplID0gTVdHLkJvZHlVbmNvbXByZXNzZWRTaXplKClcbk5VTUJFUiBzaXplVGhyZXNob2xkID0gMTA0ODU3NjAgIC8vIDEwIE1CIGluIGJ5dGVzXG5cbklGIHVuY29tcHJlc3NlZFNpemUgPiBzaXplVGhyZXNob2xkIFRIRU4ge1xuICAgIE1XRy5CbG9jayhcIlRoZSB1bmNvbXByZXNzZWQgc2l6ZSBvZiB0aGUgZG9jdW1lbnQgZXhjZWVkcyB0aGUgYWxsb3dlZCBsaW1pdCBvZiAxMCBNQi5cIilcbn0gRUxTRSB7XG4gICAgTVdHLkFsbG93KFwiVW5jb21wcmVzc2VkIHNpemUgaXMgd2l0aGluIHRoZSBhbGxvd2VkIGxpbWl0LlwiKVxufSJ9LCB7Im5hbWUiOiAiTVdHLkJvZHlXb3JkQ291bnQgKFNUUklORykiLCAicmV0dXJuX3R5cGUiOiAiTlVNQkVSIiwgInJldHVybl9kZXNjIjogIlJldHVybnMgdGhlIGNvdW50IG9mIHNwZWNpZmllZCB3b3JkcyBpbiB0aGUgY3VycmVudCB0ZXh0IGJvZHkuIiwgInBhcmFtZXRlcl9kZXNjIjogIlNUUklORzogdGhlIHRleHQgdG8gY291bnQgd29yZHMgZnJvbS4iLCAiZGVzY3JpcHRpb24iOiAiUmV0dXJucyB0aGUgbnVtYmVyIG9mIGdpdmVuIHdvcmRzIGluIHRleHQsIGV4dHJhY3RlZCBmcm9tIHRoZSBjdXJyZW50IGJvZHkuIiwgImV4YW1wbGVfY29kZSI6ICJTVFJJTkcgYm9keUNvbnRlbnQgPSBNV0cuQm9keSgpXG5OVU1CRVIgd29yZENvdW50ID0gTVdHLkJvZHlXb3JkQ291bnQoYm9keUNvbnRlbnQpXG5cbklGIHdvcmRDb3VudCA+IDEwMDAgVEhFTiB7XG4gICAgLy8gUmVxdWVzdCBibG9ja2VkOiBCb2R5IHdvcmQgY291bnQgZXhjZWVkcyBsaW1pdC5cbiAgICBNV0cuQmxvY2soKVxufSBFTFNFIHtcbiAgICAvLyBCb2R5IHdvcmQgY291bnQgd2l0aGluIGFjY2VwdGFibGUgcmFuZ2UuXG4gICAgTVdHLkFsbG93KClcbn0iLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICJTVFJJTkcgYm9keUNvbnRlbnQgPSBNV0cuQm9keSgpXG5OVU1CRVIgd29yZENvdW50ID0gTVdHLkJvZHlXb3JkQ291bnQoYm9keUNvbnRlbnQpXG5cbklGIHdvcmRDb3VudCA+IDEwMDAgVEhFTiB7XG4gICAgLy8gUmVxdWVzdCBibG9ja2VkOiBCb2R5IHdvcmQgY291bnQgZXhjZWVkcyBsaW1pdC5cbiAgICBNV0cuQmxvY2soKVxufSBFTFNFIHtcbiAgICAvLyBCb2R5IHdvcmQgY291bnQgd2l0aGluIGFjY2VwdGFibGUgcmFuZ2UuXG4gICAgTVdHLkFsbG93KClcbn0ifSwgeyJuYW1lIjogIk1XRy5CeXRlc1JlY3ZGcm9tQ2xpZW50ICgpIiwgInJldHVybl90eXBlIjogIk5VTUJFUiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIHRoZSBudW1iZXIgb2YgYnl0ZXMgcmVjZWl2ZWQgZnJvbSB0aGUgY2xpZW50LiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJOb25lIiwgImRlc2NyaXB0aW9uIjogIlJldHVybnMgdGhlIG51bWJlciBvZiBieXRlcyByZWNlaXZlZCBmcm9tIGNsaWVudC4iLCAiZXhhbXBsZV9jb2RlIjogIk5VTUJFUiBieXRlc1JlY2VpdmVkID0gTVdHLkJ5dGVzUmVjdkZyb21DbGllbnQoKVxuLy8gXCJCeXRlcyByZWNlaXZlZCBmcm9tIGNsaWVudDogXCIgKyBieXRlc1JlY2VpdmVkIiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiTlVNQkVSIGJ5dGVzUmVjZWl2ZWQgPSBNV0cuQnl0ZXNSZWN2RnJvbUNsaWVudCgpXG4vLyBcIkJ5dGVzIHJlY2VpdmVkIGZyb20gY2xpZW50OiBcIiArIGJ5dGVzUmVjZWl2ZWQifSwgeyJuYW1lIjogIk1XRy5CeXRlc1JlY3ZGcm9tU2VydmVyICgpIiwgInJldHVybl90eXBlIjogIk5VTUJFUiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIHRoZSBudW1iZXIgb2YgYnl0ZXMgcmVjZWl2ZWQgZnJvbSBzZXJ2ZXIuIiwgInBhcmFtZXRlcl9kZXNjIjogIk5vbmUiLCAiZGVzY3JpcHRpb24iOiAiUmV0dXJucyB0aGUgbnVtYmVyIG9mIGJ5dGVzIHJlY2VpdmVkIGZyb20gdGhlIHNlcnZlci4iLCAiZXhhbXBsZV9jb2RlIjogIk5VTUJFUiBieXRlc1JlY2VpdmVkID0gTVdHLkJ5dGVzUmVjdkZyb21TZXJ2ZXIoKVxuLy8gXCJCeXRlcyByZWNlaXZlZCBmcm9tIHNlcnZlcjogXCIgKyBieXRlc1JlY2VpdmVkIiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiTlVNQkVSIGJ5dGVzUmVjZWl2ZWQgPSBNV0cuQnl0ZXNSZWN2RnJvbVNlcnZlcigpXG4vLyBcIkJ5dGVzIHJlY2VpdmVkIGZyb20gc2VydmVyOiBcIiArIGJ5dGVzUmVjZWl2ZWQifSwgeyJuYW1lIjogIk1XRy5CeXRlc1NlbnRUb0NsaWVudCAoKSIsICJyZXR1cm5fdHlwZSI6ICJOVU1CRVIiLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyB0aGUgbnVtYmVyIG9mIGJ5dGVzIHNlbnQgdG8gY2xpZW50LiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJOb25lIiwgImRlc2NyaXB0aW9uIjogIkxvZ2dpbmc6IFJldHVybnMgdGhlIG51bWJlciBvZiBieXRlcyBzZW50IHRvIGNsaWVudC4iLCAiZXhhbXBsZV9jb2RlIjogIk5VTUJFUiBieXRlc1NlbnQgPSBNV0cuQnl0ZXNTZW50VG9DbGllbnQoKVxuLy8gQnl0ZXMgc2VudCB0byBjbGllbnQ6ICsgYnl0ZXNTZW50IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiTlVNQkVSIGJ5dGVzU2VudCA9IE1XRy5CeXRlc1NlbnRUb0NsaWVudCgpXG4vLyBCeXRlcyBzZW50IHRvIGNsaWVudDogKyBieXRlc1NlbnQifSwgeyJuYW1lIjogIk1XRy5CeXRlc1NlbnRUb1NlcnZlciAoKSIsICJyZXR1cm5fdHlwZSI6ICJOVU1CRVIiLCAicmV0dXJuX2Rlc2MiOiAiTG9nZ2luZzogUmV0dXJucyB0aGUgbnVtYmVyIG9mIGJ5dGVzIHNlbnQgdG8gc2VydmVyLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJOb25lIiwgImRlc2NyaXB0aW9uIjogIkxvZ2dpbmc6IFJldHVybnMgdGhlIG51bWJlciBvZiBieXRlcyBzZW50IHRvIHNlcnZlci4iLCAiZXhhbXBsZV9jb2RlIjogIk5VTUJFUiBieXRlc1NlbnQgPSBNV0cuQnl0ZXNTZW50VG9TZXJ2ZXIoKVxuLy8gXCJCeXRlcyBzZW50IHRvIHNlcnZlcjogXCIgKyBieXRlc1NlbnQiLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICJOVU1CRVIgYnl0ZXNTZW50ID0gTVdHLkJ5dGVzU2VudFRvU2VydmVyKClcbi8vIFwiQnl0ZXMgc2VudCB0byBzZXJ2ZXI6IFwiICsgYnl0ZXNTZW50In0sIHsibmFtZSI6ICJNV0cuQ2FjaGVMaXN0TWF0Y2hJbmZvIChCT09MRUFOLCBTVFJJTkcpIiwgInJldHVybl90eXBlIjogIkJPT0xFQU4iLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyB0aGVgQk9PTEVBTmB2YWx1ZSBpdCB3YXMgZ2l2ZW4uIiwgInBhcmFtZXRlcl9kZXNjIjogIkJPT0xFQU46IHdoZXRoZXIgdGhlIGxpc3QgbWF0Y2hlZCBvciBub3Q7IFNUUklORzogdGhlIG5hbWUgb2YgdGhlIGxpc3QuIiwgImRlc2NyaXB0aW9uIjogIkNhY2hlcyB0aGUgbGlzdCBtYXRjaCBpbmZvIGluIHRoZSBjb250ZXh0IGFuZCByZXR1cm5zIHRoZSBtYXRjaCByZXN1bHQuIiwgImV4YW1wbGVfY29kZSI6ICJTVFJJTkcgcnVsZU5hbWUgPSBcImV4YW1wbGVSdWxlXCJcblxuLy8gU3RvcmUgdGhlIGxpc3QgbWF0Y2ggaW5mbyBmb3IgdGhlIHNwZWNpZmllZCBydWxlXG5NV0cuU3RvcmVMaXN0TWF0Y2hJbmZvKHJ1bGVOYW1lKVxuXG4vLyBBZGRpdGlvbmFsIGxvZ2ljIGNhbiBiZSBhZGRlZCBoZXJlXG4vLyBMaXN0IG1hdGNoIGluZm8gc3RvcmVkIGZvciBydWxlOiBcIiArIHJ1bGVOYW1lIiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiU1RSSU5HIHJ1bGVOYW1lID0gXCJleGFtcGxlUnVsZVwiXG5cbi8vIFN0b3JlIHRoZSBsaXN0IG1hdGNoIGluZm8gZm9yIHRoZSBzcGVjaWZpZWQgcnVsZVxuTVdHLlN0b3JlTGlzdE1hdGNoSW5mbyhydWxlTmFtZSlcblxuLy8gQWRkaXRpb25hbCBsb2dpYyBjYW4gYmUgYWRkZWQgaGVyZVxuLy8gTGlzdCBtYXRjaCBpbmZvIHN0b3JlZCBmb3IgcnVsZTogXCIgKyBydWxlTmFtZSJ9LCB7Im5hbWUiOiAiTVdHLkNBTGlzdEJ5TmFtZSAoU1RSSU5HKSIsICJyZXR1cm5fdHlwZSI6ICJNV0cuQ2VydGlmaWNhdGVBdXRob3JpdHlMaXN0IiwgInJldHVybl9kZXNjIjogIlJldHVybnMgYSBsaXN0IG9mIGNlcnRpZmljYXRlIGF1dGhvcml0aWVzLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJTVFJJTkc6IHRoZSBuYW1lIG9mIHRoZSBDQSBsaXN0LiIsICJkZXNjcmlwdGlvbiI6ICJSZXRyaWV2ZXMgYSBDZXJ0aWZpY2F0ZUF1dGhvcml0eSBsaXN0IGJ5IGxpc3QgbmFtZS4iLCAiZXhhbXBsZV9jb2RlIjogIlNUUklORyBjYUxpc3ROYW1lID0gXCJFeGFtcGxlQ0FMaXN0XCJcbk1XRy5DZXJ0aWZpY2F0ZUF1dGhvcml0eUxpc3QgY2FMaXN0ID0gTVdHLkNBTGlzdEJ5TmFtZShjYUxpc3ROYW1lKVxuXG4vLyBSZXRyaWV2ZWQgQ0EgTGlzdDogXCIgKyBjYUxpc3QiLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICJTVFJJTkcgY2FMaXN0TmFtZSA9IFwiRXhhbXBsZUNBTGlzdFwiXG5NV0cuQ2VydGlmaWNhdGVBdXRob3JpdHlMaXN0IGNhTGlzdCA9IE1XRy5DQUxpc3RCeU5hbWUoY2FMaXN0TmFtZSlcblxuLy8gUmV0cmlldmVkIENBIExpc3Q6IFwiICsgY2FMaXN0In0sIHsibmFtZSI6ICJNV0cuQ0FMaXN0QnlOYW1lRXhpc3RzIChTVFJJTkcpIiwgInJldHVybl90eXBlIjogIkJPT0xFQU4iLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJuc2BUUlVFYGlmIHRoZSBjZXJ0aWZpY2F0ZSBhdXRob3JpdHkgbGlzdCBleGlzdHMuIiwgInBhcmFtZXRlcl9kZXNjIjogIlNUUklORzogdGhlIG5hbWUgb2YgdGhlIENBIGxpc3QuIiwgImRlc2NyaXB0aW9uIjogIlJldHVybnMgVFJVRSBpZiBDZXJ0aWZpY2F0ZUF1dGhvcml0eSBsaXN0IHdpdGggdGhlIG5hbWUgZXhpc3RzLiIsICJleGFtcGxlX2NvZGUiOiAiU1RSSU5HIGNhTGlzdE5hbWUgPSBcIk15Q0FMaXN0XCJcblxuSUYgTVdHLkNBTGlzdEJ5TmFtZUV4aXN0cyhjYUxpc3ROYW1lKSBUSEVOIHtcbiAgICAvLyBUaGUgQ0EgbGlzdCArIGNhTGlzdE5hbWUgKyBleGlzdHMuXG59IEVMU0Uge1xuICAgIC8vIFRoZSBDQSBsaXN0ICsgY2FMaXN0TmFtZSArIGRvZXMgbm90IGV4aXN0LlxufSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIlNUUklORyBjYUxpc3ROYW1lID0gXCJNeUNBTGlzdFwiXG5cbklGIE1XRy5DQUxpc3RCeU5hbWVFeGlzdHMoY2FMaXN0TmFtZSkgVEhFTiB7XG4gICAgLy8gVGhlIENBIGxpc3QgKyBjYUxpc3ROYW1lICsgZXhpc3RzLlxufSBFTFNFIHtcbiAgICAvLyBUaGUgQ0EgbGlzdCArIGNhTGlzdE5hbWUgKyBkb2VzIG5vdCBleGlzdC5cbn0ifSwgeyJuYW1lIjogIk1XRy5DbGllbnRDZXJ0UmVxdWVzdGVkICgpIiwgInJldHVybl90eXBlIjogIkJPT0xFQU4iLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJuc2BUUlVFYGlmIGEgY2xpZW50IGNlcnRpZmljYXRlIHdhcyByZXF1ZXN0ZWQgZHVyaW5nIHRoZSBpbml0aWFsIFRMUyBoYW5kc2hha2UuIiwgInBhcmFtZXRlcl9kZXNjIjogIk5vbmUiLCAiZGVzY3JpcHRpb24iOiAiUmV0dXJucyBUUlVFIGlmIGEgY2xpZW50IGNlcnRpZmljYXRlIHdhcyByZXF1ZXN0ZWQgZHVyaW5nIHRoZSBpbml0aWFsIFRMUyBoYW5kc2hha2UuIiwgImV4YW1wbGVfY29kZSI6ICJCT09MRUFOIGNsaWVudENlcnRSZXF1ZXN0ZWQgPSBNV0cuQ2xpZW50Q2VydFJlcXVlc3RlZCgpXG5cbklGIGNsaWVudENlcnRSZXF1ZXN0ZWQgVEhFTiB7XG4gICAgLy8gQ2xpZW50IGNlcnRpZmljYXRlIGlzIHJlcXVlc3RlZC5cbn0gRUxTRSB7XG4gICAgLy8gQ2xpZW50IGNlcnRpZmljYXRlIGlzIG5vdCByZXF1ZXN0ZWQuXG59IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiQk9PTEVBTiBjbGllbnRDZXJ0UmVxdWVzdGVkID0gTVdHLkNsaWVudENlcnRSZXF1ZXN0ZWQoKVxuXG5JRiBjbGllbnRDZXJ0UmVxdWVzdGVkIFRIRU4ge1xuICAgIC8vIENsaWVudCBjZXJ0aWZpY2F0ZSBpcyByZXF1ZXN0ZWQuXG59IEVMU0Uge1xuICAgIC8vIENsaWVudCBjZXJ0aWZpY2F0ZSBpcyBub3QgcmVxdWVzdGVkLlxufSJ9LCB7Im5hbWUiOiAiTVdHLkNsaWVudEVHcmVzc0lQICgpIiwgInJldHVybl90eXBlIjogIk5ldC5JUCIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIHRoZSBJUCBhZGRyZXNzIG9mIHRoZSBjbGllbnQgY29ubmVjdGlvbi4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiTm9uZSIsICJkZXNjcmlwdGlvbiI6ICJSZXR1cm5zIHRoZSBJUCBhZGRyZXNzIG9mIHRoZSBjbGllbnQgY29ubmVjdGlvbi4iLCAiZXhhbXBsZV9jb2RlIjogIk5ldC5JUCBjbGllbnRJUCA9IE1XRy5DbGllbnRFR3Jlc3NJUCgpXG4vLyBDbGllbnQgRWdyZXNzIElQOiArIGNsaWVudElQIiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiTmV0LklQIGNsaWVudElQID0gTVdHLkNsaWVudEVHcmVzc0lQKClcbi8vIENsaWVudCBFZ3Jlc3MgSVA6ICsgY2xpZW50SVAifSwgeyJuYW1lIjogIk1XRy5DbGllbnRFR3Jlc3NQb3J0ICgpIiwgInJldHVybl90eXBlIjogIk5VTUJFUiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIHRoZSBwb3J0IG9mIHRoZSBjbGllbnQgY29ubmVjdGlvbi4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiTm9uZSIsICJkZXNjcmlwdGlvbiI6ICJSZXR1cm5zIHRoZSBwb3J0IG9mIHRoZSBjbGllbnQgY29ubmVjdGlvbi4iLCAiZXhhbXBsZV9jb2RlIjogIk5VTUJFUiBjbGllbnRQb3J0ID0gTVdHLkNsaWVudEVHcmVzc1BvcnQoKVxuXG5JRiBjbGllbnRQb3J0ID09IDgwIFRIRU4ge1xuICAgIC8vIENsaWVudCBpcyB1c2luZyBIVFRQIHBvcnQgODBcbn0gRUxTRSBJRiBjbGllbnRQb3J0ID09IDQ0MyBUSEVOIHtcbiAgICAvLyBDbGllbnQgaXMgdXNpbmcgSFRUUFMgcG9ydCA0NDNcbn0gRUxTRSB7XG4gICAgLy8gQ2xpZW50IGlzIHVzaW5nIGEgZGlmZmVyZW50IHBvcnQ6IFwiICsgY2xpZW50UG9ydFxufSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIk5VTUJFUiBjbGllbnRQb3J0ID0gTVdHLkNsaWVudEVHcmVzc1BvcnQoKVxuXG5JRiBjbGllbnRQb3J0ID09IDgwIFRIRU4ge1xuICAgIC8vIENsaWVudCBpcyB1c2luZyBIVFRQIHBvcnQgODBcbn0gRUxTRSBJRiBjbGllbnRQb3J0ID09IDQ0MyBUSEVOIHtcbiAgICAvLyBDbGllbnQgaXMgdXNpbmcgSFRUUFMgcG9ydCA0NDNcbn0gRUxTRSB7XG4gICAgLy8gQ2xpZW50IGlzIHVzaW5nIGEgZGlmZmVyZW50IHBvcnQ6IFwiICsgY2xpZW50UG9ydFxufSJ9LCB7Im5hbWUiOiAiTVdHLkNsaWVudElQICgpIiwgInJldHVybl90eXBlIjogIk5ldC5JUCIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIHRoZSBJUCBhZGRyZXNzIG9mIHRoZSBjbGllbnQuIiwgInBhcmFtZXRlcl9kZXNjIjogIk5vbmUiLCAiZGVzY3JpcHRpb24iOiAiUmV0dXJucyB0aGUgSVAgYWRkcmVzcyBvZiB0aGUgY2xpZW50LiIsICJleGFtcGxlX2NvZGUiOiAiTmV0LklQIGNsaWVudElQID0gTVdHLkNsaWVudElQKClcbi8vIFwiQ2xpZW50IElQIEFkZHJlc3M6IFwiICsgY2xpZW50SVAiLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICJOZXQuSVAgY2xpZW50SVAgPSBNV0cuQ2xpZW50SVAoKVxuLy8gXCJDbGllbnQgSVAgQWRkcmVzczogXCIgKyBjbGllbnRJUCJ9LCB7Im5hbWUiOiAiTVdHLkNsaWVudExvY2F0aW9uICgpIiwgInJldHVybl90eXBlIjogIlNUUklORyIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIHRoZSBjbGllbnQgbG9jYXRpb24gbmFtZS4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiTm9uZSIsICJkZXNjcmlwdGlvbiI6ICJSZXR1cm5zIHRoZSBjbGllbnQgbG9jYXRpb24gbmFtZS4iLCAiZXhhbXBsZV9jb2RlIjogIlNUUklORyBjbGllbnRMb2NhdGlvbiA9IE1XRy5DbGllbnRMb2NhdGlvbigpXG4vLyBDbGllbnQgTG9jYXRpb246IFwiICsgY2xpZW50TG9jYXRpb25cblxuSUYgY2xpZW50TG9jYXRpb24gPT0gXCJPZmZpY2VcIiBUSEVOIHtcbiAgICBNV0cuQWxsb3coXCJBY2Nlc3MgZnJvbSBPZmZpY2VcIilcbn0gRUxTRSB7XG4gICAgTVdHLkJsb2NrKFwiQWNjZXNzIHJlc3RyaWN0ZWQgdG8gT2ZmaWNlIG9ubHlcIilcbn0iLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICJTVFJJTkcgY2xpZW50TG9jYXRpb24gPSBNV0cuQ2xpZW50TG9jYXRpb24oKVxuLy8gQ2xpZW50IExvY2F0aW9uOiBcIiArIGNsaWVudExvY2F0aW9uXG5cbklGIGNsaWVudExvY2F0aW9uID09IFwiT2ZmaWNlXCIgVEhFTiB7XG4gICAgTVdHLkFsbG93KFwiQWNjZXNzIGZyb20gT2ZmaWNlXCIpXG59IEVMU0Uge1xuICAgIE1XRy5CbG9jayhcIkFjY2VzcyByZXN0cmljdGVkIHRvIE9mZmljZSBvbmx5XCIpXG59In0sIHsibmFtZSI6ICJNV0cuQ2xpZW50TG9jYXRpb25EZXRlY3RlZCAoKSIsICJyZXR1cm5fdHlwZSI6ICJCT09MRUFOIiwgInJldHVybl9kZXNjIjogIlJldHVybnNgVFJVRWBpZiB0aGUgY2xpZW50IGxvY2F0aW9uIHR5cGUgaXMgc2V0LiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJOb25lIiwgImRlc2NyaXB0aW9uIjogIlJldHVybnMgVFJVRSBpZiB0aGUgY2xpZW50IGxvY2F0aW9uIHR5cGUgaXMgc2V0LiIsICJleGFtcGxlX2NvZGUiOiAiU1RSSU5HIGNsaWVudExvY2F0aW9uID0gTVdHLkNsaWVudExvY2F0aW9uKClcbi8vIENsaWVudCBsb2NhdGlvbiBkZXRlY3RlZDogKyBjbGllbnRMb2NhdGlvblxuXG5JRiBjbGllbnRMb2NhdGlvbiA9PSBcIlJlc3RyaWN0ZWRBcmVhXCIgVEhFTiB7XG4gICAgTVdHLkJsb2NrKFwiQWNjZXNzIGZyb20gdGhpcyBsb2NhdGlvbiBpcyBub3QgYWxsb3dlZC5cIilcbn0gRUxTRSB7XG4gICAgTVdHLkFsbG93KFwiQ2xpZW50IGxvY2F0aW9uIGlzIGFsbG93ZWQuXCIpXG59IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiU1RSSU5HIGNsaWVudExvY2F0aW9uID0gTVdHLkNsaWVudExvY2F0aW9uKClcbi8vIENsaWVudCBsb2NhdGlvbiBkZXRlY3RlZDogKyBjbGllbnRMb2NhdGlvblxuXG5JRiBjbGllbnRMb2NhdGlvbiA9PSBcIlJlc3RyaWN0ZWRBcmVhXCIgVEhFTiB7XG4gICAgTVdHLkJsb2NrKFwiQWNjZXNzIGZyb20gdGhpcyBsb2NhdGlvbiBpcyBub3QgYWxsb3dlZC5cIilcbn0gRUxTRSB7XG4gICAgTVdHLkFsbG93KFwiQ2xpZW50IGxvY2F0aW9uIGlzIGFsbG93ZWQuXCIpXG59In0sIHsibmFtZSI6ICJNV0cuQ2xpZW50TG9jYXRpb25JRCAoKSIsICJyZXR1cm5fdHlwZSI6ICJTVFJJTkciLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyB0aGUgY2xpZW50IGxvY2F0aW9uIElELiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJOb25lIiwgImRlc2NyaXB0aW9uIjogIlJldHVybnMgdGhlIGNsaWVudCBsb2NhdGlvbiBJRC4iLCAiZXhhbXBsZV9jb2RlIjogIlNUUklORyBjbGllbnRMb2NhdGlvbiA9IE1XRy5DbGllbnRMb2NhdGlvbigpXG4vLyBDbGllbnQgTG9jYXRpb246IFwiICsgY2xpZW50TG9jYXRpb24iLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICJTVFJJTkcgY2xpZW50TG9jYXRpb24gPSBNV0cuQ2xpZW50TG9jYXRpb24oKVxuLy8gQ2xpZW50IExvY2F0aW9uOiBcIiArIGNsaWVudExvY2F0aW9uIn0sIHsibmFtZSI6ICJNV0cuQ2xpZW50UHJvY2Vzc0V4ZVBhdGggKCkiLCAicmV0dXJuX3R5cGUiOiAiU1RSSU5HIiwgInJldHVybl9kZXNjIjogIlJldHVybnMgdGhlIHByb2Nlc3MgZXhlIHBhdGggb2YgdGhlIEhUVFAoUykgY2xpZW50IChNQ1Agb25seSkuIiwgInBhcmFtZXRlcl9kZXNjIjogIk5vbmUiLCAiZGVzY3JpcHRpb24iOiAiUmV0dXJucyB0aGUgcHJvY2VzcyBleGUgcGF0aCBvZiB0aGUgSFRUUChTKSBjbGllbnQgKE1DUCBvbmx5KS4iLCAiZXhhbXBsZV9jb2RlIjogIlNUUklORyBjbGllbnRFeGVQYXRoID0gTVdHLkNsaWVudFByb2Nlc3NFeGVQYXRoKClcbi8vIENsaWVudCBQcm9jZXNzIEV4ZWN1dGFibGUgUGF0aDogXCIgKyBjbGllbnRFeGVQYXRoIiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiU1RSSU5HIGNsaWVudEV4ZVBhdGggPSBNV0cuQ2xpZW50UHJvY2Vzc0V4ZVBhdGgoKVxuLy8gQ2xpZW50IFByb2Nlc3MgRXhlY3V0YWJsZSBQYXRoOiBcIiArIGNsaWVudEV4ZVBhdGgifSwgeyJuYW1lIjogIk1XRy5DbGllbnRQcm9jZXNzTmFtZSAoKSIsICJyZXR1cm5fdHlwZSI6ICJTVFJJTkciLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyB0aGUgcHJvY2VzcyBuYW1lIG9mIHRoZSBIVFRQKFMpIGNsaWVudCAoTUNQIG9ubHkpLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJOb25lIiwgImRlc2NyaXB0aW9uIjogIlJldHVybnMgdGhlIHByb2Nlc3MgbmFtZSBvZiB0aGUgSFRUUChTKSBjbGllbnQgKE1DUCBvbmx5KS4iLCAiZXhhbXBsZV9jb2RlIjogIlNUUklORyBjbGllbnRQcm9jZXNzTmFtZSA9IE1XRy5DbGllbnRQcm9jZXNzTmFtZSgpXG5cbklGIGNsaWVudFByb2Nlc3NOYW1lID09IFwidW53YW50ZWRfcHJvY2Vzcy5leGVcIiBUSEVOIHtcbiAgICBNV0cuQmxvY2soXCJBY2Nlc3MgYmxvY2tlZCBkdWUgdG8gdW53YW50ZWQgcHJvY2Vzc1wiKVxufSBFTFNFIHtcbiAgICBNV0cuQWxsb3coXCJQcm9jZXNzIGFsbG93ZWRcIilcbn0iLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICJTVFJJTkcgY2xpZW50UHJvY2Vzc05hbWUgPSBNV0cuQ2xpZW50UHJvY2Vzc05hbWUoKVxuXG5JRiBjbGllbnRQcm9jZXNzTmFtZSA9PSBcInVud2FudGVkX3Byb2Nlc3MuZXhlXCIgVEhFTiB7XG4gICAgTVdHLkJsb2NrKFwiQWNjZXNzIGJsb2NrZWQgZHVlIHRvIHVud2FudGVkIHByb2Nlc3NcIilcbn0gRUxTRSB7XG4gICAgTVdHLkFsbG93KFwiUHJvY2VzcyBhbGxvd2VkXCIpXG59In0sIHsibmFtZSI6ICJNV0cuQ2xpZW50U3lzdGVtSW5mbyAoKSIsICJyZXR1cm5fdHlwZSI6ICJKU09OIiwgInJldHVybl9kZXNjIjogIlJldHVybnMgdGhlIHN5c3RlbSBpbmZvIGFzIHByb3ZpZGVkIGJ5IE1DUC4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiTm9uZSIsICJkZXNjcmlwdGlvbiI6ICJSZXR1cm5zIHRoZSBzeXN0ZW0gaW5mbyBhcyBwcm92aWRlZCBieSBNQ1AuIiwgImV4YW1wbGVfY29kZSI6ICIvLyBSZXRyaWV2ZSBjbGllbnQgc3lzdGVtIGluZm9ybWF0aW9uXG5NQVA8U1RSSU5HPjxTVFJJTkc+IGNsaWVudEluZm8gPSBNV0cuQ2xpZW50U3lzdGVtSW5mbygpXG5cbi8vIEV4dHJhY3Qgc3BlY2lmaWMgaW5mb3JtYXRpb24gZnJvbSB0aGUgY2xpZW50SW5mbyBtYXBcblNUUklORyBvcyA9IGNsaWVudEluZm9bXCJvc1wiXVxuU1RSSU5HIGJyb3dzZXIgPSBjbGllbnRJbmZvW1wiYnJvd3NlclwiXVxuU1RSSU5HIGlwID0gY2xpZW50SW5mb1tcImlwXCJdXG5cbi8vIExvZyB0aGUgY2xpZW50IHN5c3RlbSBpbmZvcm1hdGlvblxuLy8gQ2xpZW50IE9TOiBcIiArIG9zXG4vLyBDbGllbnQgQnJvd3NlcjogXCIgKyBicm93c2VyXG4vLyBDbGllbnQgSVA6IFwiICsgaXAiLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICIvLyBSZXRyaWV2ZSBjbGllbnQgc3lzdGVtIGluZm9ybWF0aW9uXG5NQVA8U1RSSU5HPjxTVFJJTkc+IGNsaWVudEluZm8gPSBNV0cuQ2xpZW50U3lzdGVtSW5mbygpXG5cbi8vIEV4dHJhY3Qgc3BlY2lmaWMgaW5mb3JtYXRpb24gZnJvbSB0aGUgY2xpZW50SW5mbyBtYXBcblNUUklORyBvcyA9IGNsaWVudEluZm9bXCJvc1wiXVxuU1RSSU5HIGJyb3dzZXIgPSBjbGllbnRJbmZvW1wiYnJvd3NlclwiXVxuU1RSSU5HIGlwID0gY2xpZW50SW5mb1tcImlwXCJdXG5cbi8vIExvZyB0aGUgY2xpZW50IHN5c3RlbSBpbmZvcm1hdGlvblxuLy8gQ2xpZW50IE9TOiBcIiArIG9zXG4vLyBDbGllbnQgQnJvd3NlcjogXCIgKyBicm93c2VyXG4vLyBDbGllbnQgSVA6IFwiICsgaXAifSwgeyJuYW1lIjogIk1XRy5DbG91ZFNlcnZpY2VJRCAoKSIsICJyZXR1cm5fdHlwZSI6ICJNV0cuQXBwbGljYXRpb25UeXBlIiwgInJldHVybl9kZXNjIjogIlJldHVybnMgZGV0ZWN0ZWQgYXBwbGljYXRpb24gdHlwZSB3aXRob3V0IGFjdGl2aXR5LiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJOb25lIiwgImRlc2NyaXB0aW9uIjogIlJldHVybnMgZGV0ZWN0ZWQgYXBwbGljYXRpb24gdHlwZSB3aXRob3V0IGFjdGl2aXR5LiIsICJleGFtcGxlX2NvZGUiOiAiU1RSSU5HIGNsb3VkU2VydmljZU5hbWUgPSBNV0cuQ2xvdWRTZXJ2aWNlTmFtZSgpXG4vLyBDbG91ZCBTZXJ2aWNlIE5hbWU6ICsgY2xvdWRTZXJ2aWNlTmFtZSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIlNUUklORyBjbG91ZFNlcnZpY2VOYW1lID0gTVdHLkNsb3VkU2VydmljZU5hbWUoKVxuLy8gQ2xvdWQgU2VydmljZSBOYW1lOiArIGNsb3VkU2VydmljZU5hbWUifSwgeyJuYW1lIjogIk1XRy5DbG91ZFNlcnZpY2VOYW1lICgpIiwgInJldHVybl90eXBlIjogIlNUUklORyIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIHRoZSBuYW1lIG9mIGFuIGFwcGxpY2F0aW9uIHdpdGhvdXQgYWN0aXZpdHkuIiwgInBhcmFtZXRlcl9kZXNjIjogIk5vbmUiLCAiZGVzY3JpcHRpb24iOiAiUmV0dXJucyB0aGUgbmFtZSBvZiBhbiBhcHBsaWNhdGlvbiB3aXRob3V0IGFjdGl2aXR5LiIsICJleGFtcGxlX2NvZGUiOiAiU1RSSU5HIGNsb3VkU2VydmljZU5hbWUgPSBNV0cuQ2xvdWRTZXJ2aWNlTmFtZSgpXG5cbklGIGNsb3VkU2VydmljZU5hbWUgPT0gXCJFeGFtcGxlU2VydmljZVwiIFRIRU4ge1xuICAgIC8vIFRoZSBjbG91ZCBzZXJ2aWNlIG5hbWUgaXMgRXhhbXBsZVNlcnZpY2Vcbn0gRUxTRSB7XG4gICAgLy8gVGhlIGNsb3VkIHNlcnZpY2UgbmFtZSBpcyBcIiArIGNsb3VkU2VydmljZU5hbWVcbn0iLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICJTVFJJTkcgY2xvdWRTZXJ2aWNlTmFtZSA9IE1XRy5DbG91ZFNlcnZpY2VOYW1lKClcblxuSUYgY2xvdWRTZXJ2aWNlTmFtZSA9PSBcIkV4YW1wbGVTZXJ2aWNlXCIgVEhFTiB7XG4gICAgLy8gVGhlIGNsb3VkIHNlcnZpY2UgbmFtZSBpcyBFeGFtcGxlU2VydmljZVxufSBFTFNFIHtcbiAgICAvLyBUaGUgY2xvdWQgc2VydmljZSBuYW1lIGlzIFwiICsgY2xvdWRTZXJ2aWNlTmFtZVxufSJ9LCB7Im5hbWUiOiAiTVdHLkNvbW1hbmRDYXRlZ29yaWVzICgpIiwgInJldHVybl90eXBlIjogIlZFQ1RPUjxTVFJJTkc+IiwgInJldHVybl9kZXNjIjogIlJldHVybnMgdGhlIGNhdGVnb3JpZXMgZm9yIGEgcGFydGljdWxhciBwcm90b2NvbCBjb21tYW5kLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJOb25lIiwgImRlc2NyaXB0aW9uIjogIlJldHVybnMgdGhlIGNhdGVnb3JpZXMgZm9yIGEgcGFydGljdWxhciBwcm90b2NvbCBjb21tYW5kLiIsICJleGFtcGxlX2NvZGUiOiAiVkVDVE9SPFNUUklORz4gY2F0ZWdvcmllcyA9IE1XRy5Db21tYW5kQ2F0ZWdvcmllcygpXG5cbi8vIENvbW1hbmQgQ2F0ZWdvcmllczogKyBjYXRlZ29yaWVzXG5cbklGIFwiTWFsaWNpb3VzXCIgSU4gY2F0ZWdvcmllcyBUSEVOIHtcbiAgICBNV0cuQmxvY2soXCJCbG9ja2VkIGR1ZSB0byBtYWxpY2lvdXMgY29tbWFuZCBjYXRlZ29yeVwiKVxufSBFTFNFIHtcbiAgICBNV0cuQWxsb3coXCJBbGxvd2VkIGFzIG5vIG1hbGljaW91cyBjb21tYW5kIGNhdGVnb3J5IGZvdW5kXCIpXG59IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiVkVDVE9SPFNUUklORz4gY2F0ZWdvcmllcyA9IE1XRy5Db21tYW5kQ2F0ZWdvcmllcygpXG5cbi8vIENvbW1hbmQgQ2F0ZWdvcmllczogKyBjYXRlZ29yaWVzXG5cbklGIFwiTWFsaWNpb3VzXCIgSU4gY2F0ZWdvcmllcyBUSEVOIHtcbiAgICBNV0cuQmxvY2soXCJCbG9ja2VkIGR1ZSB0byBtYWxpY2lvdXMgY29tbWFuZCBjYXRlZ29yeVwiKVxufSBFTFNFIHtcbiAgICBNV0cuQWxsb3coXCJBbGxvd2VkIGFzIG5vIG1hbGljaW91cyBjb21tYW5kIGNhdGVnb3J5IGZvdW5kXCIpXG59In0sIHsibmFtZSI6ICJNV0cuQ29tbWFuZE5hbWUgKCkiLCAicmV0dXJuX3R5cGUiOiAiU1RSSU5HIiwgInJldHVybl9kZXNjIjogIlJldHVybnMgdGhlIGNvbW1hbmQgbmFtZS4gRS5nLiBHRVQsIFBPU1QuIiwgInBhcmFtZXRlcl9kZXNjIjogIk5vbmUiLCAiZGVzY3JpcHRpb24iOiAiUmV0dXJucyBjb21tYW5kIG5hbWUsIGUuZy4gR0VULCBQT1NULiIsICJleGFtcGxlX2NvZGUiOiAiU1RSSU5HIGNvbW1hbmQgPSBNV0cuQ29tbWFuZE5hbWUoKVxuXG5JRiBjb21tYW5kID09IFwiUE9TVFwiIFRIRU4ge1xuICAgIC8vIFRoaXMgaXMgYSBQT1NUIHJlcXVlc3QuXG59IEVMU0UgSUYgY29tbWFuZCA9PSBcIkdFVFwiIFRIRU4ge1xuICAgIC8vIFRoaXMgaXMgYSBHRVQgcmVxdWVzdC5cbn0gRUxTRSB7XG4gICAgLy8gVGhpcyBpcyBhIGRpZmZlcmVudCB0eXBlIG9mIHJlcXVlc3Q6IFwiICsgY29tbWFuZFxufSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIlNUUklORyBjb21tYW5kID0gTVdHLkNvbW1hbmROYW1lKClcblxuSUYgY29tbWFuZCA9PSBcIlBPU1RcIiBUSEVOIHtcbiAgICAvLyBUaGlzIGlzIGEgUE9TVCByZXF1ZXN0LlxufSBFTFNFIElGIGNvbW1hbmQgPT0gXCJHRVRcIiBUSEVOIHtcbiAgICAvLyBUaGlzIGlzIGEgR0VUIHJlcXVlc3QuXG59IEVMU0Uge1xuICAgIC8vIFRoaXMgaXMgYSBkaWZmZXJlbnQgdHlwZSBvZiByZXF1ZXN0OiBcIiArIGNvbW1hbmRcbn0ifSwgeyJuYW1lIjogIk1XRy5Db25uZWN0aW9uSUQgKCkiLCAicmV0dXJuX3R5cGUiOiAiU1RSSU5HIiwgInJldHVybl9kZXNjIjogIlJldHVybnMgYSB1bmlxdWUgSUQgZm9yIHRoZSBjb25uZWN0aW9uLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJOb25lIiwgImRlc2NyaXB0aW9uIjogIlJldHVybnMgYSB1bmlxdWUgSUQgZm9yIHRoZSBjb25uZWN0aW9uLiIsICJleGFtcGxlX2NvZGUiOiAiU1RSSU5HIGNvbm5lY3Rpb25JRCA9IE1XRy5Db25uZWN0aW9uSUQoKVxuLy8gQ29ubmVjdGlvbiBJRDogKyBjb25uZWN0aW9uSUQiLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICJTVFJJTkcgY29ubmVjdGlvbklEID0gTVdHLkNvbm5lY3Rpb25JRCgpXG4vLyBDb25uZWN0aW9uIElEOiArIGNvbm5lY3Rpb25JRCJ9LCB7Im5hbWUiOiAiTVdHLkNvbm5lY3Rpb25Qcm90b2NvbCAoKSIsICJyZXR1cm5fdHlwZSI6ICJTVFJJTkciLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyB0aGUgY29ubmVjdGlvbiBwcm90b2NvbCBhcyBhIHN0cmluZy4gRS5nLiBIVFRQLCBIVFRQUywgRlRQLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJOb25lIiwgImRlc2NyaXB0aW9uIjogIlJldHVybnMgY29ubmVjdGlvbiBwcm90b2NvbCBhcyBhIHN0cmluZywgZS5nLiBIVFRQLCBIVFRQUywgRlRQLiIsICJleGFtcGxlX2NvZGUiOiAiU1RSSU5HIHByb3RvY29sID0gTVdHLkNvbm5lY3Rpb25Qcm90b2NvbCgpXG4vLyBUaGUgY29ubmVjdGlvbiBwcm90b2NvbCBpczogXCIgKyBwcm90b2NvbFxuXG5JRiBwcm90b2NvbCA9PSBcIkhUVFBTXCIgVEhFTiB7XG4gICAgLy8gU2VjdXJlIGNvbm5lY3Rpb24gZGV0ZWN0ZWQuXG59IEVMU0Uge1xuICAgIC8vIE5vbi1zZWN1cmUgY29ubmVjdGlvbiBkZXRlY3RlZC5cbn0iLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICJTVFJJTkcgcHJvdG9jb2wgPSBNV0cuQ29ubmVjdGlvblByb3RvY29sKClcbi8vIFRoZSBjb25uZWN0aW9uIHByb3RvY29sIGlzOiBcIiArIHByb3RvY29sXG5cbklGIHByb3RvY29sID09IFwiSFRUUFNcIiBUSEVOIHtcbiAgICAvLyBTZWN1cmUgY29ubmVjdGlvbiBkZXRlY3RlZC5cbn0gRUxTRSB7XG4gICAgLy8gTm9uLXNlY3VyZSBjb25uZWN0aW9uIGRldGVjdGVkLlxufSJ9LCB7Im5hbWUiOiAiTVdHLkNvbm5lY3Rpb25Qcm90b2NvbElzSU0gKCkiLCAicmV0dXJuX3R5cGUiOiAiQk9PTEVBTiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zYFRSVUVgaWYgdGhlIGNvbm5lY3Rpb24gaXMgaW5zdGFudCBtZXNzYWdpbmcuIiwgInBhcmFtZXRlcl9kZXNjIjogIk5vbmUiLCAiZGVzY3JpcHRpb24iOiAiUmV0dXJucyBUUlVFIGlmIHRoZSBjb25uZWN0aW9uIGlzIGluc3RhbnQgbWVzc2FnaW5nLiIsICJleGFtcGxlX2NvZGUiOiAiSUYgTVdHLkNvbm5lY3Rpb25Qcm90b2NvbElzSU0oKSBUSEVOIHtcbiAgICAvLyBUaGUgY29ubmVjdGlvbiBpcyB1c2luZyBhbiBpbnN0YW50IG1lc3NhZ2luZyBwcm90b2NvbC5cbiAgICBNV0cuQmxvY2soXCJJbnN0YW50IG1lc3NhZ2luZyBpcyBub3QgYWxsb3dlZC5cIilcbn0gRUxTRSB7XG4gICAgLy8gVGhlIGNvbm5lY3Rpb24gaXMgbm90IHVzaW5nIGFuIGluc3RhbnQgbWVzc2FnaW5nIHByb3RvY29sLlxuICAgIE1XRy5BbGxvdyhcIk5vbi1JTSB0cmFmZmljIGFsbG93ZWQuXCIpXG59IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiSUYgTVdHLkNvbm5lY3Rpb25Qcm90b2NvbElzSU0oKSBUSEVOIHtcbiAgICAvLyBUaGUgY29ubmVjdGlvbiBpcyB1c2luZyBhbiBpbnN0YW50IG1lc3NhZ2luZyBwcm90b2NvbC5cbiAgICBNV0cuQmxvY2soXCJJbnN0YW50IG1lc3NhZ2luZyBpcyBub3QgYWxsb3dlZC5cIilcbn0gRUxTRSB7XG4gICAgLy8gVGhlIGNvbm5lY3Rpb24gaXMgbm90IHVzaW5nIGFuIGluc3RhbnQgbWVzc2FnaW5nIHByb3RvY29sLlxuICAgIE1XRy5BbGxvdyhcIk5vbi1JTSB0cmFmZmljIGFsbG93ZWQuXCIpXG59In0sIHsibmFtZSI6ICJNV0cuQ29ubmVjdGlvblRyYWNpbmdJRCAoKSIsICJyZXR1cm5fdHlwZSI6ICJTVFJJTkciLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyB0aGUgY29ubmVjdGlvbiB0cmFjaW5nIElEIChlbXB0eSwgaWYgdHJhY2luZyBpcyB0dXJuZWQgb2ZmKS4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiTm9uZSIsICJkZXNjcmlwdGlvbiI6ICJSZXR1cm5zIHRoZSBjb25uZWN0aW9uIHRyYWNpbmcgSUQgKGVtcHR5LCBpZiB0cmFjaW5nIGlzIHR1cm5lZCBvZmYpLiIsICJleGFtcGxlX2NvZGUiOiAiU1RSSU5HIGNvbm5lY3Rpb25JRCA9IE1XRy5Db25uZWN0aW9uSUQoKVxuLy8gQ29ubmVjdGlvbiBJRDogY29ubmVjdGlvbklEIiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiU1RSSU5HIGNvbm5lY3Rpb25JRCA9IE1XRy5Db25uZWN0aW9uSUQoKVxuLy8gQ29ubmVjdGlvbiBJRDogY29ubmVjdGlvbklEIn0sIHsibmFtZSI6ICJNV0cuQ29ubmVjdGlvblZhcmlhYmxlc0dldCAoU1RSSU5HKSIsICJyZXR1cm5fdHlwZSI6ICJTVFJJTkciLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyBhIHN0cmluZyByZXByZXNlbnRpbmcgdGhlIHZhbHVlIG9mIGEgY29ubmVjdGlvbi1zY29wZWQgdmFyaWFibGUuIiwgInBhcmFtZXRlcl9kZXNjIjogIlNUUklORzogdGhlIG5hbWUgb2YgdGhlIHZhcmlhYmxlIHRvIHJldHJpZXZlIHdpdGhpbiB0aGUgY29ubmVjdGlvbiBzY29wZS4iLCAiZGVzY3JpcHRpb24iOiAiUmV0cmlldmVzIHZhcmlhYmxlIChjb25uZWN0aW9uIHNjb3BlKS4iLCAiZXhhbXBsZV9jb2RlIjogIi8vIERlZmluZSB0aGUgbmFtZSBvZiB0aGUgY29ubmVjdGlvbiB2YXJpYWJsZSB0byByZXRyaWV2ZVxuU1RSSU5HIHZhcmlhYmxlTmFtZSA9IFwiZXhhbXBsZVZhcmlhYmxlXCJcblxuLy8gUmV0cmlldmUgdGhlIHZhbHVlIG9mIHRoZSBjb25uZWN0aW9uIHZhcmlhYmxlXG5TVFJJTkcgdmFyaWFibGVWYWx1ZSA9IE1XRy5Db25uZWN0aW9uVmFyaWFibGVzR2V0KHZhcmlhYmxlTmFtZSlcblxuLy8gVGhlIHZhbHVlIG9mIFwiICsgdmFyaWFibGVOYW1lICsgXCIgaXM6IFwiICsgdmFyaWFibGVWYWx1ZVxuXG4vLyBVc2UgdGhlIGNvbm5lY3Rpb24gdmFyaWFibGUgaW4gYSBjb25kaXRpb25hbCBzdGF0ZW1lbnRcbklGIHZhcmlhYmxlVmFsdWUgPT0gXCJzb21lVmFsdWVcIiBUSEVOIHtcbiAgICBNV0cuQmxvY2soXCJCbG9ja2luZyBiZWNhdXNlIHRoZSBjb25uZWN0aW9uIHZhcmlhYmxlIG1hdGNoZWQgJ3NvbWVWYWx1ZSdcIilcbn0gRUxTRSB7XG4gICAgTVdHLkFsbG93KFwiQWxsb3dpbmcgYmVjYXVzZSB0aGUgY29ubmVjdGlvbiB2YXJpYWJsZSBkaWQgbm90IG1hdGNoICdzb21lVmFsdWUnXCIpXG59IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiLy8gRGVmaW5lIHRoZSBuYW1lIG9mIHRoZSBjb25uZWN0aW9uIHZhcmlhYmxlIHRvIHJldHJpZXZlXG5TVFJJTkcgdmFyaWFibGVOYW1lID0gXCJleGFtcGxlVmFyaWFibGVcIlxuXG4vLyBSZXRyaWV2ZSB0aGUgdmFsdWUgb2YgdGhlIGNvbm5lY3Rpb24gdmFyaWFibGVcblNUUklORyB2YXJpYWJsZVZhbHVlID0gTVdHLkNvbm5lY3Rpb25WYXJpYWJsZXNHZXQodmFyaWFibGVOYW1lKVxuXG4vLyBUaGUgdmFsdWUgb2YgXCIgKyB2YXJpYWJsZU5hbWUgKyBcIiBpczogXCIgKyB2YXJpYWJsZVZhbHVlXG5cbi8vIFVzZSB0aGUgY29ubmVjdGlvbiB2YXJpYWJsZSBpbiBhIGNvbmRpdGlvbmFsIHN0YXRlbWVudFxuSUYgdmFyaWFibGVWYWx1ZSA9PSBcInNvbWVWYWx1ZVwiIFRIRU4ge1xuICAgIE1XRy5CbG9jayhcIkJsb2NraW5nIGJlY2F1c2UgdGhlIGNvbm5lY3Rpb24gdmFyaWFibGUgbWF0Y2hlZCAnc29tZVZhbHVlJ1wiKVxufSBFTFNFIHtcbiAgICBNV0cuQWxsb3coXCJBbGxvd2luZyBiZWNhdXNlIHRoZSBjb25uZWN0aW9uIHZhcmlhYmxlIGRpZCBub3QgbWF0Y2ggJ3NvbWVWYWx1ZSdcIilcbn0ifSwgeyJuYW1lIjogIk1XRy5Db25uZWN0aW9uVmFyaWFibGVzSGF2ZSAoU1RSSU5HKSIsICJyZXR1cm5fdHlwZSI6ICJCT09MRUFOIiwgInJldHVybl9kZXNjIjogIlJldHVybnNgVFJVRWBpZiB0aGUgc3BlY2lmaWVkIGNvbm5lY3Rpb24gc2NvcGUgY29udGFpbnMgdGhlIHNwZWNpZmllZCB2YXJpYWJsZS4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiU1RSSU5HOiB0aGUgbmFtZSBvZiB0aGUgdmFyaWFibGUgdG8gY2hlY2sgZm9yLiIsICJkZXNjcmlwdGlvbiI6ICJSZXR1cm5zIFRSVUUgaWYgaXQgaGFzIHZhcmlhYmxlcyAoY29ubmVjdGlvbiBzY29wZSkuIiwgImV4YW1wbGVfY29kZSI6ICJTVFJJTkcga2V5ID0gXCJleGFtcGxlS2V5XCJcblxuSUYgTVdHLkNvbm5lY3Rpb25WYXJpYWJsZXNIYXZlKGtleSkgVEhFTiB7XG4gICAgLy8gQ29ubmVjdGlvbiB2YXJpYWJsZSB3aXRoIGtleSAnZXhhbXBsZUtleScgZXhpc3RzLlxufSBFTFNFIHtcbiAgICAvLyBDb25uZWN0aW9uIHZhcmlhYmxlIHdpdGgga2V5ICdleGFtcGxlS2V5JyBkb2VzIG5vdCBleGlzdC5cbn0iLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICJTVFJJTkcga2V5ID0gXCJleGFtcGxlS2V5XCJcblxuSUYgTVdHLkNvbm5lY3Rpb25WYXJpYWJsZXNIYXZlKGtleSkgVEhFTiB7XG4gICAgLy8gQ29ubmVjdGlvbiB2YXJpYWJsZSB3aXRoIGtleSAnZXhhbXBsZUtleScgZXhpc3RzLlxufSBFTFNFIHtcbiAgICAvLyBDb25uZWN0aW9uIHZhcmlhYmxlIHdpdGgga2V5ICdleGFtcGxlS2V5JyBkb2VzIG5vdCBleGlzdC5cbn0ifSwgeyJuYW1lIjogIk1XRy5DcmVhdGVDZXJ0aWZpY2F0ZUF1dGhvcml0eUxpc3QgKCkiLCAicmV0dXJuX3R5cGUiOiAiTVdHLkNlcnRpZmljYXRlQXV0aG9yaXR5TGlzdCIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIGFuIGVtcHR5YE1XRy5DZXJ0aWZpY2F0ZUF1dGhvcml0eUxpc3Rgb2JqZWN0LiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJOb25lIiwgImRlc2NyaXB0aW9uIjogIkNyZWF0ZXMgYW4gZW1wdHkgbGlzdCBvZiBjZXJ0aWZpY2F0ZSBhdXRob3JpdGllcy4iLCAiZXhhbXBsZV9jb2RlIjogIi8vIENyZWF0ZSBhbiBlbXB0eSBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgTGlzdFxuTVdHLkNlcnRpZmljYXRlQXV0aG9yaXR5TGlzdCBjYUxpc3QgPSBNV0cuQ3JlYXRlQ2VydGlmaWNhdGVBdXRob3JpdHlMaXN0KClcblxuLy8gQ3JlYXRlZCBhbiBlbXB0eSBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgTGlzdFxuXG4vLyBGdXJ0aGVyIHByb2Nlc3NpbmcgY2FuIGJlIGRvbmUgaGVyZSwgc3VjaCBhcyBhZGRpbmcgY2VydGlmaWNhdGVzIHRvIHRoZSBsaXN0XG4vLyBGb3IgZXhhbXBsZTpcbi8vIGNhTGlzdC5BZGRDZXJ0aWZpY2F0ZShcInBhdGgvdG8vY2VydGlmaWNhdGVcIilcblxuLy8gRXhhbXBsZSBvZiB1c2luZyB0aGUgY2FMaXN0IGluIHNvbWUgY29udGV4dFxuLy8gTVdHLlNvbWVGdW5jdGlvblRoYXRVc2VzQ0FMaXN0KGNhTGlzdCkiLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICIvLyBDcmVhdGUgYW4gZW1wdHkgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IExpc3Rcbk1XRy5DZXJ0aWZpY2F0ZUF1dGhvcml0eUxpc3QgY2FMaXN0ID0gTVdHLkNyZWF0ZUNlcnRpZmljYXRlQXV0aG9yaXR5TGlzdCgpXG5cbi8vIENyZWF0ZWQgYW4gZW1wdHkgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IExpc3RcblxuLy8gRnVydGhlciBwcm9jZXNzaW5nIGNhbiBiZSBkb25lIGhlcmUsIHN1Y2ggYXMgYWRkaW5nIGNlcnRpZmljYXRlcyB0byB0aGUgbGlzdFxuLy8gRm9yIGV4YW1wbGU6XG4vLyBjYUxpc3QuQWRkQ2VydGlmaWNhdGUoXCJwYXRoL3RvL2NlcnRpZmljYXRlXCIpXG5cbi8vIEV4YW1wbGUgb2YgdXNpbmcgdGhlIGNhTGlzdCBpbiBzb21lIGNvbnRleHRcbi8vIE1XRy5Tb21lRnVuY3Rpb25UaGF0VXNlc0NBTGlzdChjYUxpc3QpIn0sIHsibmFtZSI6ICJNV0cuQ3JlYXRlUGFyYW1zICgpIiwgInJldHVybl90eXBlIjogIk1XRy5JbnRlcm5hbFBhcmFtZXRlckxpc3QiLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyBhbiBlbXB0eSBpbnRlcm5hbCBwYXJhbWV0ZXIgbGlzdC4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiTm9uZSIsICJkZXNjcmlwdGlvbiI6ICJDcmVhdGVzIGFuIGVtcHR5IGludGVybmFsIHBhcmFtZXRlciBsaXN0LiIsICJleGFtcGxlX2NvZGUiOiAiLy8gQ3JlYXRlIGEgbGlzdCBvZiBwYXJhbWV0ZXJzXG5NV0cuSW50ZXJuYWxQYXJhbWV0ZXJMaXN0IHBhcmFtcyA9IE1XRy5DcmVhdGVQYXJhbXMoKVxuXG4vLyBBZGQgcGFyYW1ldGVycyB0byB0aGUgbGlzdFxucGFyYW1zLkFkZChcInBhcmFtMVwiLCBcInZhbHVlMVwiKVxucGFyYW1zLkFkZChcInBhcmFtMlwiLCBcInZhbHVlMlwiKVxuXG4vLyBVc2UgdGhlIHBhcmFtZXRlcnMgaW4gYSBmdW5jdGlvbiBjYWxsXG5NV0cuRXhlY3V0ZUV2ZW50KFwiU29tZUV2ZW50XCIsIHBhcmFtcylcblxuLy8gUGFyYW1ldGVycyBjcmVhdGVkIGFuZCBldmVudCBleGVjdXRlZCB3aXRoIHBhcmFtczogXG4vLyArIHBhcmFtcy5Ub1N0cmluZygpIiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiLy8gQ3JlYXRlIGEgbGlzdCBvZiBwYXJhbWV0ZXJzXG5NV0cuSW50ZXJuYWxQYXJhbWV0ZXJMaXN0IHBhcmFtcyA9IE1XRy5DcmVhdGVQYXJhbXMoKVxuXG4vLyBBZGQgcGFyYW1ldGVycyB0byB0aGUgbGlzdFxucGFyYW1zLkFkZChcInBhcmFtMVwiLCBcInZhbHVlMVwiKVxucGFyYW1zLkFkZChcInBhcmFtMlwiLCBcInZhbHVlMlwiKVxuXG4vLyBVc2UgdGhlIHBhcmFtZXRlcnMgaW4gYSBmdW5jdGlvbiBjYWxsXG5NV0cuRXhlY3V0ZUV2ZW50KFwiU29tZUV2ZW50XCIsIHBhcmFtcylcblxuLy8gUGFyYW1ldGVycyBjcmVhdGVkIGFuZCBldmVudCBleGVjdXRlZCB3aXRoIHBhcmFtczogXG4vLyArIHBhcmFtcy5Ub1N0cmluZygpIn0sIHsibmFtZSI6ICJNV0cuQ3JlYXRlUGFyYW1zIChKU09OKSIsICJyZXR1cm5fdHlwZSI6ICJNV0cuSW50ZXJuYWxQYXJhbWV0ZXJMaXN0IiwgInJldHVybl9kZXNjIjogIlJldHVybnMgdGhlIGNyZWF0ZWQgaW50ZXJuYWwgcGFyYW1ldGVyIGxpc3QuIiwgInBhcmFtZXRlcl9kZXNjIjogIkpTT046IGluaXRpYWwgbGlzdCB2YWx1ZS4iLCAiZGVzY3JpcHRpb24iOiAiQ3JlYXRlcyBhbiBpbnRlcm5hbCBwYXJhbWV0ZXIgbGlzdCB3aXRoIHRoZSBwcm92aWRlZCBKU09OIG9iamVjdC4iLCAiZXhhbXBsZV9jb2RlIjogIi8vIENyZWF0ZSBhIEpTT04gb2JqZWN0IHdpdGggcGFyYW1ldGVyc1xuSlNPTiBwYXJhbXMgPSB7XG4gICAgXCJwYXJhbTFcIjogXCJ2YWx1ZTFcIixcbiAgICBcInBhcmFtMlwiOiBcInZhbHVlMlwiLFxuICAgIFwicGFyYW0zXCI6IFwidmFsdWUzXCJcbn1cblxuLy8gVXNlIHRoZSBNV0cuQ3JlYXRlUGFyYW1zIGZ1bmN0aW9uIHdpdGggdGhlIEpTT04gb2JqZWN0XG5NV0cuQ3JlYXRlUGFyYW1zKHBhcmFtcylcblxuLy8gUGFyYW1ldGVycyBjcmVhdGVkOiBcIiArIHBhcmFtcyIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIi8vIENyZWF0ZSBhIEpTT04gb2JqZWN0IHdpdGggcGFyYW1ldGVyc1xuSlNPTiBwYXJhbXMgPSB7XG4gICAgXCJwYXJhbTFcIjogXCJ2YWx1ZTFcIixcbiAgICBcInBhcmFtMlwiOiBcInZhbHVlMlwiLFxuICAgIFwicGFyYW0zXCI6IFwidmFsdWUzXCJcbn1cblxuLy8gVXNlIHRoZSBNV0cuQ3JlYXRlUGFyYW1zIGZ1bmN0aW9uIHdpdGggdGhlIEpTT04gb2JqZWN0XG5NV0cuQ3JlYXRlUGFyYW1zKHBhcmFtcylcblxuLy8gUGFyYW1ldGVycyBjcmVhdGVkOiBcIiArIHBhcmFtcyJ9LCB7Im5hbWUiOiAiTVdHLkNyZWF0ZVBhcmFtcyAoTUFQPFNUUklORywgTVdHLkludGVybmFsVmFyaWFudD4pIiwgInJldHVybl90eXBlIjogIk1XRy5JbnRlcm5hbFBhcmFtZXRlckxpc3QiLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyB0aGUgY3JlYXRlZCBpbnRlcm5hbCBwYXJhbWV0ZXIgbGlzdC4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiTUFQPFNUUklORywgTVdHLkludGVybmFsVmFyaWFudD46IGluaXRpYWwgbGlzdCB2YWx1ZS4iLCAiZGVzY3JpcHRpb24iOiAiQ3JlYXRlcyBhbiBpbnRlcm5hbCBwYXJhbWV0ZXIgbGlzdCB3aXRoIHRoZSBwcm92aWRlZCBtYXAuIiwgImV4YW1wbGVfY29kZSI6ICIvLyBDcmVhdGUgYSBtYXAgdG8gaG9sZCB0aGUgcGFyYW1ldGVyc1xuTUFQPFNUUklORywgTVdHLkludGVybmFsVmFyaWFudD4gcGFyYW1zTWFwXG5cbi8vIEFkZCBzb21lIHBhcmFtZXRlcnMgdG8gdGhlIG1hcFxucGFyYW1zTWFwW1wicGFyYW0xXCJdID0gTVdHLkludGVybmFsVmFyaWFudChcInZhbHVlMVwiKVxucGFyYW1zTWFwW1wicGFyYW0yXCJdID0gTVdHLkludGVybmFsVmFyaWFudCgxMjM0NSlcbnBhcmFtc01hcFtcInBhcmFtM1wiXSA9IE1XRy5JbnRlcm5hbFZhcmlhbnQoVFJVRSlcblxuLy8gQ3JlYXRlIHRoZSBpbnRlcm5hbCBwYXJhbWV0ZXIgbGlzdCB1c2luZyB0aGUgbWFwXG5NV0cuSW50ZXJuYWxQYXJhbWV0ZXJMaXN0IHBhcmFtc0xpc3QgPSBNV0cuQ3JlYXRlUGFyYW1zKHBhcmFtc01hcClcblxuLy8gQ3JlYXRlZCBpbnRlcm5hbCBwYXJhbWV0ZXIgbGlzdCB3aXRoIHRoZSBmb2xsb3dpbmcgcGFyYW1ldGVyczpcbi8vIHBhcmFtMTogXCIgKyBwYXJhbXNMaXN0W1wicGFyYW0xXCJdLlRvU3RyaW5nKClcbi8vIHBhcmFtMjogXCIgKyBwYXJhbXNMaXN0W1wicGFyYW0yXCJdLlRvU3RyaW5nKClcbi8vIHBhcmFtMzogXCIgKyBwYXJhbXNMaXN0W1wicGFyYW0zXCJdLlRvU3RyaW5nKCkiLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICIvLyBDcmVhdGUgYSBtYXAgdG8gaG9sZCB0aGUgcGFyYW1ldGVyc1xuTUFQPFNUUklORywgTVdHLkludGVybmFsVmFyaWFudD4gcGFyYW1zTWFwXG5cbi8vIEFkZCBzb21lIHBhcmFtZXRlcnMgdG8gdGhlIG1hcFxucGFyYW1zTWFwW1wicGFyYW0xXCJdID0gTVdHLkludGVybmFsVmFyaWFudChcInZhbHVlMVwiKVxucGFyYW1zTWFwW1wicGFyYW0yXCJdID0gTVdHLkludGVybmFsVmFyaWFudCgxMjM0NSlcbnBhcmFtc01hcFtcInBhcmFtM1wiXSA9IE1XRy5JbnRlcm5hbFZhcmlhbnQoVFJVRSlcblxuLy8gQ3JlYXRlIHRoZSBpbnRlcm5hbCBwYXJhbWV0ZXIgbGlzdCB1c2luZyB0aGUgbWFwXG5NV0cuSW50ZXJuYWxQYXJhbWV0ZXJMaXN0IHBhcmFtc0xpc3QgPSBNV0cuQ3JlYXRlUGFyYW1zKHBhcmFtc01hcClcblxuLy8gQ3JlYXRlZCBpbnRlcm5hbCBwYXJhbWV0ZXIgbGlzdCB3aXRoIHRoZSBmb2xsb3dpbmcgcGFyYW1ldGVyczpcbi8vIHBhcmFtMTogXCIgKyBwYXJhbXNMaXN0W1wicGFyYW0xXCJdLlRvU3RyaW5nKClcbi8vIHBhcmFtMjogXCIgKyBwYXJhbXNMaXN0W1wicGFyYW0yXCJdLlRvU3RyaW5nKClcbi8vIHBhcmFtMzogXCIgKyBwYXJhbXNMaXN0W1wicGFyYW0zXCJdLlRvU3RyaW5nKCkifSwgeyJuYW1lIjogIk1XRy5DcmVhdGVQYXJhbXMgKE1BUDxTVFJJTkcsIFNUUklORz4pIiwgInJldHVybl90eXBlIjogIk1XRy5JbnRlcm5hbFBhcmFtZXRlckxpc3QiLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyB0aGUgY3JlYXRlZCBpbnRlcm5hbCBwYXJhbWV0ZXIgbGlzdC4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiTUFQPFNUUklORyxTVFJJTkc+OiBpbml0aWFsIGxpc3QgdmFsdWUuIiwgImRlc2NyaXB0aW9uIjogIkNyZWF0ZXMgYW4gaW50ZXJuYWwgcGFyYW1ldGVyIGxpc3Qgd2l0aCB0aGUgcHJvdmlkZWQgbWFwLiIsICJleGFtcGxlX2NvZGUiOiAiLy8gQ3JlYXRlIGEgbWFwIHdpdGggaW5pdGlhbCB2YWx1ZXNcbk1BUDxTVFJJTkcsIFNUUklORz4gaW5pdGlhbFBhcmFtcyA9IHtcbiAgICBcInBhcmFtMVwiOiBcInZhbHVlMVwiLFxuICAgIFwicGFyYW0yXCI6IFwidmFsdWUyXCIsXG4gICAgXCJwYXJhbTNcIjogXCJ2YWx1ZTNcIlxufVxuXG4vLyBDcmVhdGUgYW4gaW50ZXJuYWwgcGFyYW1ldGVyIGxpc3QgdXNpbmcgdGhlIG1hcFxuTVdHLkludGVybmFsUGFyYW1ldGVyTGlzdCBwYXJhbXNMaXN0ID0gTVdHLkNyZWF0ZVBhcmFtcyhpbml0aWFsUGFyYW1zKVxuXG4vLyBDcmVhdGVkIHBhcmFtZXRlciBsaXN0OiBwYXJhbXNMaXN0IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiLy8gQ3JlYXRlIGEgbWFwIHdpdGggaW5pdGlhbCB2YWx1ZXNcbk1BUDxTVFJJTkcsIFNUUklORz4gaW5pdGlhbFBhcmFtcyA9IHtcbiAgICBcInBhcmFtMVwiOiBcInZhbHVlMVwiLFxuICAgIFwicGFyYW0yXCI6IFwidmFsdWUyXCIsXG4gICAgXCJwYXJhbTNcIjogXCJ2YWx1ZTNcIlxufVxuXG4vLyBDcmVhdGUgYW4gaW50ZXJuYWwgcGFyYW1ldGVyIGxpc3QgdXNpbmcgdGhlIG1hcFxuTVdHLkludGVybmFsUGFyYW1ldGVyTGlzdCBwYXJhbXNMaXN0ID0gTVdHLkNyZWF0ZVBhcmFtcyhpbml0aWFsUGFyYW1zKVxuXG4vLyBDcmVhdGVkIHBhcmFtZXRlciBsaXN0OiBwYXJhbXNMaXN0In0sIHsibmFtZSI6ICJNV0cuQ3JlYXRlUGFyYW1zIChNZWRpYVR5cGUpIiwgInJldHVybl90eXBlIjogIk1XRy5JbnRlcm5hbFBhcmFtZXRlckxpc3QiLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyB0aGUgY3JlYXRlZCBpbnRlcm5hbCBwYXJhbWV0ZXIgbGlzdC4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiTWVkaWFUeXBlOiBpbml0aWFsIGxpc3QgdmFsdWUuIiwgImRlc2NyaXB0aW9uIjogIkNyZWF0ZXMgYW4gaW50ZXJuYWwgcGFyYW1ldGVyIGxpc3Qgd2l0aCB0aGUgcHJvdmlkZWQgbWVkaWEgdHlwZS4iLCAiZXhhbXBsZV9jb2RlIjogIi8vIERlZmluZSBhIE1lZGlhVHlwZSBvYmplY3Rcbk1lZGlhVHlwZSBtZWRpYVR5cGUgPSBcImFwcGxpY2F0aW9uL2pzb25cIlxuXG4vLyBDcmVhdGUgYW4gaW50ZXJuYWwgcGFyYW1ldGVyIGxpc3QgdXNpbmcgdGhlIE1lZGlhVHlwZVxuTVdHLkludGVybmFsUGFyYW1ldGVyTGlzdCBwYXJhbXMgPSBNV0cuQ3JlYXRlUGFyYW1zKG1lZGlhVHlwZSlcblxuLy8gQ3JlYXRlZCBpbnRlcm5hbCBwYXJhbWV0ZXIgbGlzdCB3aXRoIG1lZGlhIHR5cGU6IFwiICsgbWVkaWFUeXBlIiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiLy8gRGVmaW5lIGEgTWVkaWFUeXBlIG9iamVjdFxuTWVkaWFUeXBlIG1lZGlhVHlwZSA9IFwiYXBwbGljYXRpb24vanNvblwiXG5cbi8vIENyZWF0ZSBhbiBpbnRlcm5hbCBwYXJhbWV0ZXIgbGlzdCB1c2luZyB0aGUgTWVkaWFUeXBlXG5NV0cuSW50ZXJuYWxQYXJhbWV0ZXJMaXN0IHBhcmFtcyA9IE1XRy5DcmVhdGVQYXJhbXMobWVkaWFUeXBlKVxuXG4vLyBDcmVhdGVkIGludGVybmFsIHBhcmFtZXRlciBsaXN0IHdpdGggbWVkaWEgdHlwZTogXCIgKyBtZWRpYVR5cGUifSwgeyJuYW1lIjogIk1XRy5DcmVhdGVQYXJhbXMgKE1XRy5JbnRlcm5hbFZhcmlhbnQpIiwgInJldHVybl90eXBlIjogIk1XRy5JbnRlcm5hbFBhcmFtZXRlckxpc3QiLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyB0aGUgY3JlYXRlZCBpbnRlcm5hbCBwYXJhbWV0ZXIgbGlzdC4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiTVdHLkludGVybmFsVmFyaWFudDogaW5pdGlhbCBsaXN0IHZhbHVlLiIsICJkZXNjcmlwdGlvbiI6ICJDcmVhdGVzIGFuIGludGVybmFsIHBhcmFtZXRlciBsaXN0IHdpdGggdGhlIHByb3ZpZGVkIGludGVybmFsIHZhcmlhbnQuIiwgImV4YW1wbGVfY29kZSI6ICIvLyBDcmVhdGUgYW4gaW50ZXJuYWwgdmFyaWFudCB3aXRoIHNvbWUgaW5pdGlhbCB2YWx1ZVxuTVdHLkludGVybmFsVmFyaWFudCBpbml0aWFsVmFyaWFudCA9IE1XRy5JbnRlcm5hbFZhcmlhbnQoKVxuaW5pdGlhbFZhcmlhbnQuc29tZVByb3BlcnR5ID0gXCJpbml0aWFsVmFsdWVcIlxuXG4vLyBDcmVhdGUgYW4gaW50ZXJuYWwgcGFyYW1ldGVyIGxpc3QgdXNpbmcgdGhlIGluaXRpYWwgdmFyaWFudFxuTVdHLkludGVybmFsUGFyYW1ldGVyTGlzdCBwYXJhbUxpc3QgPSBNV0cuQ3JlYXRlUGFyYW1zKGluaXRpYWxWYXJpYW50KVxuXG4vLyBVc2UgdGhlIHBhcmFtZXRlciBsaXN0IGluIHNvbWUgd2F5XG4vLyBDcmVhdGVkIHBhcmFtZXRlciBsaXN0IHdpdGggaW5pdGlhbCB2YXJpYW50IHZhbHVlOiBcIiArIHBhcmFtTGlzdFxuXG4vLyBBZGRpdGlvbmFsIGxvZ2ljIGNhbiBiZSBhZGRlZCBoZXJlIiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiLy8gQ3JlYXRlIGFuIGludGVybmFsIHZhcmlhbnQgd2l0aCBzb21lIGluaXRpYWwgdmFsdWVcbk1XRy5JbnRlcm5hbFZhcmlhbnQgaW5pdGlhbFZhcmlhbnQgPSBNV0cuSW50ZXJuYWxWYXJpYW50KClcbmluaXRpYWxWYXJpYW50LnNvbWVQcm9wZXJ0eSA9IFwiaW5pdGlhbFZhbHVlXCJcblxuLy8gQ3JlYXRlIGFuIGludGVybmFsIHBhcmFtZXRlciBsaXN0IHVzaW5nIHRoZSBpbml0aWFsIHZhcmlhbnRcbk1XRy5JbnRlcm5hbFBhcmFtZXRlckxpc3QgcGFyYW1MaXN0ID0gTVdHLkNyZWF0ZVBhcmFtcyhpbml0aWFsVmFyaWFudClcblxuLy8gVXNlIHRoZSBwYXJhbWV0ZXIgbGlzdCBpbiBzb21lIHdheVxuLy8gQ3JlYXRlZCBwYXJhbWV0ZXIgbGlzdCB3aXRoIGluaXRpYWwgdmFyaWFudCB2YWx1ZTogXCIgKyBwYXJhbUxpc3RcblxuLy8gQWRkaXRpb25hbCBsb2dpYyBjYW4gYmUgYWRkZWQgaGVyZSJ9LCB7Im5hbWUiOiAiTVdHLkNyZWF0ZVBhcmFtcyAoTmV0LklQKSIsICJyZXR1cm5fdHlwZSI6ICJNV0cuSW50ZXJuYWxQYXJhbWV0ZXJMaXN0IiwgInJldHVybl9kZXNjIjogIlJldHVybnMgdGhlIGNyZWF0ZWQgaW50ZXJuYWwgcGFyYW1ldGVyIGxpc3QuIiwgInBhcmFtZXRlcl9kZXNjIjogIk5ldC5JUDogaW5pdGlhbCBsaXN0IHZhbHVlLiIsICJkZXNjcmlwdGlvbiI6ICJDcmVhdGVzIGFuIGludGVybmFsIHBhcmFtZXRlciBsaXN0IHdpdGggdGhlIHByb3ZpZGVkIE5ldC5JUC4iLCAiZXhhbXBsZV9jb2RlIjogIi8vIERlZmluZSBhbiBpbml0aWFsIElQIHZhbHVlXG5OZXQuSVAgaW5pdGlhbElQID0gXCIxOTIuMTY4LjEuMVwiXG5cbi8vIENyZWF0ZSBhbiBpbnRlcm5hbCBwYXJhbWV0ZXIgbGlzdCB3aXRoIHRoZSBpbml0aWFsIElQIHZhbHVlXG5NV0cuSW50ZXJuYWxQYXJhbWV0ZXJMaXN0IHBhcmFtTGlzdCA9IE1XRy5DcmVhdGVQYXJhbXMoaW5pdGlhbElQKVxuXG4vLyBDcmVhdGVkIHBhcmFtZXRlciBsaXN0OiBcIiArIHBhcmFtTGlzdCIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIi8vIERlZmluZSBhbiBpbml0aWFsIElQIHZhbHVlXG5OZXQuSVAgaW5pdGlhbElQID0gXCIxOTIuMTY4LjEuMVwiXG5cbi8vIENyZWF0ZSBhbiBpbnRlcm5hbCBwYXJhbWV0ZXIgbGlzdCB3aXRoIHRoZSBpbml0aWFsIElQIHZhbHVlXG5NV0cuSW50ZXJuYWxQYXJhbWV0ZXJMaXN0IHBhcmFtTGlzdCA9IE1XRy5DcmVhdGVQYXJhbXMoaW5pdGlhbElQKVxuXG4vLyBDcmVhdGVkIHBhcmFtZXRlciBsaXN0OiBcIiArIHBhcmFtTGlzdCJ9LCB7Im5hbWUiOiAiTVdHLkNyZWF0ZVBhcmFtcyAoTlVNQkVSKSIsICJyZXR1cm5fdHlwZSI6ICJNV0cuSW50ZXJuYWxQYXJhbWV0ZXJMaXN0IiwgInJldHVybl9kZXNjIjogIlJldHVybnMgdGhlIGNyZWF0ZWQgaW50ZXJuYWwgcGFyYW1ldGVyIGxpc3QuIiwgInBhcmFtZXRlcl9kZXNjIjogIk5VTUJFUjogaW5pdGlhbCBsaXN0IHZhbHVlLiIsICJkZXNjcmlwdGlvbiI6ICJDcmVhdGVzIGFuIGludGVybmFsIHBhcmFtZXRlciBsaXN0IHdpdGggdGhlIHByb3ZpZGVkIG51bWJlci4iLCAiZXhhbXBsZV9jb2RlIjogIi8vIEFzc3VtZSB3ZSBoYXZlIGFuIE1XRy5JbnRlcm5hbFZhcmlhbnQgdGhhdCBjb250YWlucyBhIE5VTUJFUlxuTVdHLkludGVybmFsVmFyaWFudCBudW1iZXJWYXJpYW50ID0gTVdHLkludGVybmFsVmFyaWFudCg0MilcblxuLy8gQ3JlYXRlIGFuIGludGVybmFsIHBhcmFtZXRlciBsaXN0IHVzaW5nIHRoZSBudW1iZXJWYXJpYW50XG5NV0cuSW50ZXJuYWxQYXJhbWV0ZXJMaXN0IHBhcmFtTGlzdCA9IE1XRy5DcmVhdGVQYXJhbXMobnVtYmVyVmFyaWFudClcblxuLy8gQ3JlYXRlZCBwYXJhbWV0ZXIgbGlzdCB3aXRoIG51bWJlcjogXCIgKyBwYXJhbUxpc3QiLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICIvLyBBc3N1bWUgd2UgaGF2ZSBhbiBNV0cuSW50ZXJuYWxWYXJpYW50IHRoYXQgY29udGFpbnMgYSBOVU1CRVJcbk1XRy5JbnRlcm5hbFZhcmlhbnQgbnVtYmVyVmFyaWFudCA9IE1XRy5JbnRlcm5hbFZhcmlhbnQoNDIpXG5cbi8vIENyZWF0ZSBhbiBpbnRlcm5hbCBwYXJhbWV0ZXIgbGlzdCB1c2luZyB0aGUgbnVtYmVyVmFyaWFudFxuTVdHLkludGVybmFsUGFyYW1ldGVyTGlzdCBwYXJhbUxpc3QgPSBNV0cuQ3JlYXRlUGFyYW1zKG51bWJlclZhcmlhbnQpXG5cbi8vIENyZWF0ZWQgcGFyYW1ldGVyIGxpc3Qgd2l0aCBudW1iZXI6IFwiICsgcGFyYW1MaXN0In0sIHsibmFtZSI6ICJNV0cuQ3JlYXRlUGFyYW1zIChTVFJJTkcpIiwgInJldHVybl90eXBlIjogIk1XRy5JbnRlcm5hbFBhcmFtZXRlckxpc3QiLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyB0aGUgY3JlYXRlZCBpbnRlcm5hbCBwYXJhbWV0ZXIgbGlzdC4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiU1RSSU5HOiBpbml0aWFsIGxpc3QgdmFsdWUuIiwgImRlc2NyaXB0aW9uIjogIkNyZWF0ZXMgYW4gaW50ZXJuYWwgcGFyYW1ldGVyIGxpc3Qgd2l0aCB0aGUgcHJvdmlkZWQgc3RyaW5nLiIsICJleGFtcGxlX2NvZGUiOiAiTUFQPFNUUklORywgU1RSSU5HPiBwYXJhbXMgPSB7XG4gICAgXCJwYXJhbTFcIiA6IFwidmFsdWUxXCIsXG4gICAgXCJwYXJhbTJcIiA6IFwidmFsdWUyXCIsXG4gICAgXCJwYXJhbTNcIiA6IFwidmFsdWUzXCJcbn1cblxuTVdHLkludGVybmFsUGFyYW1ldGVyTGlzdCBwYXJhbUxpc3QgPSBNV0cuQ3JlYXRlUGFyYW1zKHBhcmFtcylcblxuLy8gQ3JlYXRlZCBwYXJhbWV0ZXIgbGlzdDogKyBwYXJhbUxpc3QiLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICJNQVA8U1RSSU5HLCBTVFJJTkc+IHBhcmFtcyA9IHtcbiAgICBcInBhcmFtMVwiIDogXCJ2YWx1ZTFcIixcbiAgICBcInBhcmFtMlwiIDogXCJ2YWx1ZTJcIixcbiAgICBcInBhcmFtM1wiIDogXCJ2YWx1ZTNcIlxufVxuXG5NV0cuSW50ZXJuYWxQYXJhbWV0ZXJMaXN0IHBhcmFtTGlzdCA9IE1XRy5DcmVhdGVQYXJhbXMocGFyYW1zKVxuXG4vLyBDcmVhdGVkIHBhcmFtZXRlciBsaXN0OiArIHBhcmFtTGlzdCJ9LCB7Im5hbWUiOiAiTVdHLkNyZWF0ZVBhcmFtcyAoVkVDVE9SPE1lZGlhVHlwZT4pIiwgInJldHVybl90eXBlIjogIk1XRy5JbnRlcm5hbFBhcmFtZXRlckxpc3QiLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyB0aGUgY3JlYXRlZCBpbnRlcm5hbCBwYXJhbWV0ZXIgbGlzdC4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiVkVDVE9SPE1lZGlhVHlwZT46IGluaXRpYWwgbGlzdCB2YWx1ZS4iLCAiZGVzY3JpcHRpb24iOiAiQ3JlYXRlcyBhbiBpbnRlcm5hbCBwYXJhbWV0ZXIgbGlzdCB3aXRoIHRoZSBwcm92aWRlZCB2ZWN0b3IuIiwgImV4YW1wbGVfY29kZSI6ICIvLyBEZWZpbmUgYSBWRUNUT1Igb2YgTWVkaWFUeXBlXG5WRUNUT1I8TWVkaWFUeXBlPiBtZWRpYVR5cGVzID0gXCJhcHBsaWNhdGlvbi9qc29uXCIsIFwidGV4dC9odG1sXCIsIFwiaW1hZ2UvcG5nXCJcblxuLy8gQ3JlYXRlIGFuIGludGVybmFsIHBhcmFtZXRlciBsaXN0IHVzaW5nIHRoZSBtZWRpYVR5cGVzIFZFQ1RPUlxuTVdHLkludGVybmFsUGFyYW1ldGVyTGlzdCBwYXJhbXMgPSBNV0cuQ3JlYXRlUGFyYW1zKG1lZGlhVHlwZXMpXG5cbi8vIEludGVybmFsIFBhcmFtZXRlciBMaXN0IGNyZWF0ZWQgd2l0aCBtZWRpYSB0eXBlczogXG4vLyBwYXJhbXMiLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICIvLyBEZWZpbmUgYSBWRUNUT1Igb2YgTWVkaWFUeXBlXG5WRUNUT1I8TWVkaWFUeXBlPiBtZWRpYVR5cGVzID0gXCJhcHBsaWNhdGlvbi9qc29uXCIsIFwidGV4dC9odG1sXCIsIFwiaW1hZ2UvcG5nXCJcblxuLy8gQ3JlYXRlIGFuIGludGVybmFsIHBhcmFtZXRlciBsaXN0IHVzaW5nIHRoZSBtZWRpYVR5cGVzIFZFQ1RPUlxuTVdHLkludGVybmFsUGFyYW1ldGVyTGlzdCBwYXJhbXMgPSBNV0cuQ3JlYXRlUGFyYW1zKG1lZGlhVHlwZXMpXG5cbi8vIEludGVybmFsIFBhcmFtZXRlciBMaXN0IGNyZWF0ZWQgd2l0aCBtZWRpYSB0eXBlczogXG4vLyBwYXJhbXMifSwgeyJuYW1lIjogIk1XRy5DcmVhdGVQYXJhbXMgKFZFQ1RPUjxNV0cuVXJsQ2F0ZWdvcnk+KSIsICJyZXR1cm5fdHlwZSI6ICJNV0cuSW50ZXJuYWxQYXJhbWV0ZXJMaXN0IiwgInJldHVybl9kZXNjIjogIlJldHVybnMgdGhlIGNyZWF0ZWQgaW50ZXJuYWwgcGFyYW1ldGVyIGxpc3QuIiwgInBhcmFtZXRlcl9kZXNjIjogIlZFQ1RPUjxNV0cuVXJsQ2F0ZWdvcnk+OiBpbml0aWFsIGxpc3QgdmFsdWUuIiwgImRlc2NyaXB0aW9uIjogIkNyZWF0ZXMgYW4gaW50ZXJuYWwgcGFyYW1ldGVyIGxpc3Qgd2l0aCB0aGUgcHJvdmlkZWQgdmVjdG9yLiIsICJleGFtcGxlX2NvZGUiOiAiLy8gRGVmaW5lIGEgVkVDVE9SIG9mIE1XRy5VcmxDYXRlZ29yeVxuVkVDVE9SPE1XRy5VcmxDYXRlZ29yeT4gdXJsQ2F0ZWdvcmllcyA9IFtcIlNvY2lhbE1lZGlhXCIsIFwiU3RyZWFtaW5nTWVkaWFcIiwgXCJTaG9wcGluZ1wiXVxuXG4vLyBDcmVhdGUgYW4gaW50ZXJuYWwgcGFyYW1ldGVyIGxpc3QgdXNpbmcgdGhlIE1XRy5DcmVhdGVQYXJhbXMgZnVuY3Rpb25cbk1XRy5JbnRlcm5hbFBhcmFtZXRlckxpc3QgcGFyYW1zID0gTVdHLkNyZWF0ZVBhcmFtcyh1cmxDYXRlZ29yaWVzKVxuXG4vLyBDcmVhdGVkIGludGVybmFsIHBhcmFtZXRlciBsaXN0IHdpdGggVVJMIGNhdGVnb3JpZXM6IFwiICsgcGFyYW1zIiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiLy8gRGVmaW5lIGEgVkVDVE9SIG9mIE1XRy5VcmxDYXRlZ29yeVxuVkVDVE9SPE1XRy5VcmxDYXRlZ29yeT4gdXJsQ2F0ZWdvcmllcyA9IFtcIlNvY2lhbE1lZGlhXCIsIFwiU3RyZWFtaW5nTWVkaWFcIiwgXCJTaG9wcGluZ1wiXVxuXG4vLyBDcmVhdGUgYW4gaW50ZXJuYWwgcGFyYW1ldGVyIGxpc3QgdXNpbmcgdGhlIE1XRy5DcmVhdGVQYXJhbXMgZnVuY3Rpb25cbk1XRy5JbnRlcm5hbFBhcmFtZXRlckxpc3QgcGFyYW1zID0gTVdHLkNyZWF0ZVBhcmFtcyh1cmxDYXRlZ29yaWVzKVxuXG4vLyBDcmVhdGVkIGludGVybmFsIHBhcmFtZXRlciBsaXN0IHdpdGggVVJMIGNhdGVnb3JpZXM6IFwiICsgcGFyYW1zIn0sIHsibmFtZSI6ICJNV0cuQ3JlYXRlUGFyYW1zIChWRUNUT1I8TmV0LklQPikiLCAicmV0dXJuX3R5cGUiOiAiTVdHLkludGVybmFsUGFyYW1ldGVyTGlzdCIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIHRoZSBjcmVhdGVkIGludGVybmFsIHBhcmFtZXRlciBsaXN0LiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJWRUNUT1I8TmV0LklQPjogaW5pdGlhbCBsaXN0IHZhbHVlLiIsICJkZXNjcmlwdGlvbiI6ICJDcmVhdGVzIGFuIGludGVybmFsIHBhcmFtZXRlciBsaXN0IHdpdGggdGhlIHByb3ZpZGVkIHZlY3Rvci4iLCAiZXhhbXBsZV9jb2RlIjogIi8vIERlZmluZSBhIFZFQ1RPUiBvZiBOZXQuSVBcblZFQ1RPUjxOZXQuSVA+IGlwTGlzdCA9IFwiMTkyLjE2OC4xLjFcIiwgXCIxOTIuMTY4LjEuMlwiLCBcIjE5Mi4xNjguMS4zXCJcblxuLy8gQ3JlYXRlIGFuIGludGVybmFsIHBhcmFtZXRlciBsaXN0IHVzaW5nIHRoZSBWRUNUT1Igb2YgTmV0LklQXG5NV0cuSW50ZXJuYWxQYXJhbWV0ZXJMaXN0IHBhcmFtcyA9IE1XRy5DcmVhdGVQYXJhbXMoaXBMaXN0KVxuXG4vLyBJbnRlcm5hbCBQYXJhbWV0ZXIgTGlzdCBjcmVhdGVkIHdpdGggSVBzOiBcbi8vIENvbW1lbnRlZCBvdXQgREVCVUcgbGluZTogREVCVUcoXCJJbnRlcm5hbCBQYXJhbWV0ZXIgTGlzdCBjcmVhdGVkIHdpdGggSVBzOiBcIiArIHBhcmFtcykiLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICIvLyBEZWZpbmUgYSBWRUNUT1Igb2YgTmV0LklQXG5WRUNUT1I8TmV0LklQPiBpcExpc3QgPSBcIjE5Mi4xNjguMS4xXCIsIFwiMTkyLjE2OC4xLjJcIiwgXCIxOTIuMTY4LjEuM1wiXG5cbi8vIENyZWF0ZSBhbiBpbnRlcm5hbCBwYXJhbWV0ZXIgbGlzdCB1c2luZyB0aGUgVkVDVE9SIG9mIE5ldC5JUFxuTVdHLkludGVybmFsUGFyYW1ldGVyTGlzdCBwYXJhbXMgPSBNV0cuQ3JlYXRlUGFyYW1zKGlwTGlzdClcblxuLy8gSW50ZXJuYWwgUGFyYW1ldGVyIExpc3QgY3JlYXRlZCB3aXRoIElQczogXG4vLyBDb21tZW50ZWQgb3V0IERFQlVHIGxpbmU6IERFQlVHKFwiSW50ZXJuYWwgUGFyYW1ldGVyIExpc3QgY3JlYXRlZCB3aXRoIElQczogXCIgKyBwYXJhbXMpIn0sIHsibmFtZSI6ICJNV0cuQ3JlYXRlUGFyYW1zIChWRUNUT1I8TlVNQkVSPikiLCAicmV0dXJuX3R5cGUiOiAiTVdHLkludGVybmFsUGFyYW1ldGVyTGlzdCIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIHRoZSBjcmVhdGVkIGludGVybmFsIHBhcmFtZXRlciBsaXN0LiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJWRUNUT1I8TlVNQkVSPjogaW5pdGlhbCBsaXN0IHZhbHVlLiIsICJkZXNjcmlwdGlvbiI6ICJDcmVhdGVzIGFuIGludGVybmFsIHBhcmFtZXRlciBsaXN0IHdpdGggdGhlIHByb3ZpZGVkIHZlY3Rvci4iLCAiZXhhbXBsZV9jb2RlIjogIlZFQ1RPUjxOVU1CRVI+IHBhcmFtcyA9IDEsIDIsIDMsIDQsIDVcbk1XRy5DcmVhdGVQYXJhbXMocGFyYW1zKVxuLy8gUGFyYW1ldGVycyBjcmVhdGVkOiBcIiArIHBhcmFtcyIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIlZFQ1RPUjxOVU1CRVI+IHBhcmFtcyA9IDEsIDIsIDMsIDQsIDVcbk1XRy5DcmVhdGVQYXJhbXMocGFyYW1zKVxuLy8gUGFyYW1ldGVycyBjcmVhdGVkOiBcIiArIHBhcmFtcyJ9LCB7Im5hbWUiOiAiTVdHLkNyZWF0ZVBhcmFtcyAoVkVDVE9SPFNUUklORz4pIiwgInJldHVybl90eXBlIjogIk1XRy5JbnRlcm5hbFBhcmFtZXRlckxpc3QiLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyB0aGUgY3JlYXRlZCBpbnRlcm5hbCBwYXJhbWV0ZXIgbGlzdC4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiVkVDVE9SPFNUUklORz46IGluaXRpYWwgbGlzdCB2YWx1ZS4iLCAiZGVzY3JpcHRpb24iOiAiQ3JlYXRlcyBhbiBpbnRlcm5hbCBwYXJhbWV0ZXIgbGlzdCB3aXRoIHRoZSBwcm92aWRlZCB2ZWN0b3IuIiwgImV4YW1wbGVfY29kZSI6ICIvLyBJbml0aWFsaXplIGEgVkVDVE9SIG9mIFNUUklOR3NcblZFQ1RPUjxTVFJJTkc+IGluaXRpYWxQYXJhbXMgPSBcInBhcmFtMVwiLCBcInBhcmFtMlwiLCBcInBhcmFtM1wiXG5cbi8vIENyZWF0ZSBhbiBpbnRlcm5hbCBwYXJhbWV0ZXIgbGlzdCB1c2luZyB0aGUgVkVDVE9SXG5NV0cuSW50ZXJuYWxQYXJhbWV0ZXJMaXN0IHBhcmFtTGlzdCA9IE1XRy5DcmVhdGVQYXJhbXMoaW5pdGlhbFBhcmFtcylcblxuLy8gQ3JlYXRlZCBwYXJhbWV0ZXIgbGlzdDogXCIgKyBwYXJhbUxpc3QiLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICIvLyBJbml0aWFsaXplIGEgVkVDVE9SIG9mIFNUUklOR3NcblZFQ1RPUjxTVFJJTkc+IGluaXRpYWxQYXJhbXMgPSBcInBhcmFtMVwiLCBcInBhcmFtMlwiLCBcInBhcmFtM1wiXG5cbi8vIENyZWF0ZSBhbiBpbnRlcm5hbCBwYXJhbWV0ZXIgbGlzdCB1c2luZyB0aGUgVkVDVE9SXG5NV0cuSW50ZXJuYWxQYXJhbWV0ZXJMaXN0IHBhcmFtTGlzdCA9IE1XRy5DcmVhdGVQYXJhbXMoaW5pdGlhbFBhcmFtcylcblxuLy8gQ3JlYXRlZCBwYXJhbWV0ZXIgbGlzdDogXCIgKyBwYXJhbUxpc3QifSwgeyJuYW1lIjogIk1XRy5DUkxGU1RSSU5HICgpIiwgInJldHVybl90eXBlIjogIlNUUklORyIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIGEgc3RyaW5nIGNvbnRhaW5pbmcgYSBjYXJyaWFnZS1yZXR1cm4gYW5kIGxpbmUtZmVlZCBjaGFyYWN0ZXIgc2VxdWVuY2UuIiwgInBhcmFtZXRlcl9kZXNjIjogIk5vbmUiLCAiZGVzY3JpcHRpb24iOiAiUmV0dXJucyBjYXJyaWFnZS1yZXR1cm4gbGluZS1mZWVkIHN0cmluZy4iLCAiZXhhbXBsZV9jb2RlIjogIi8vIEdldCB0aGUgQ1JMRiBzdHJpbmdcblNUUklORyBjcmxmID0gTVdHLkNSTEZTdHJpbmcoKVxuXG4vLyBDb25zdHJ1Y3QgYSBtdWx0aS1saW5lIG1lc3NhZ2UgdXNpbmcgdGhlIENSTEYgc3RyaW5nXG5TVFJJTkcgbWVzc2FnZSA9IFwiSGVsbG8sXCIgKyBjcmxmICsgXCJXb3JsZCFcIlxuXG4vLyBQcmludCB0aGUgbWVzc2FnZSB0byB0aGUgY29uc29sZVxuLy8gREVCVUcobWVzc2FnZSkiLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICIvLyBHZXQgdGhlIENSTEYgc3RyaW5nXG5TVFJJTkcgY3JsZiA9IE1XRy5DUkxGU3RyaW5nKClcblxuLy8gQ29uc3RydWN0IGEgbXVsdGktbGluZSBtZXNzYWdlIHVzaW5nIHRoZSBDUkxGIHN0cmluZ1xuU1RSSU5HIG1lc3NhZ2UgPSBcIkhlbGxvLFwiICsgY3JsZiArIFwiV29ybGQhXCJcblxuLy8gUHJpbnQgdGhlIG1lc3NhZ2UgdG8gdGhlIGNvbnNvbGVcbi8vIERFQlVHKG1lc3NhZ2UpIn0sIHsibmFtZSI6ICJNV0cuQ3VycmVudFJlcXVlc3RPclJlc3BvbnNlICgpIiwgInJldHVybl90eXBlIjogIk1XRy5SZXF1ZXN0UmVzcG9uc2UiLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyBlaXRoZXIgYSByZXF1ZXN0IG9yIHJlc3BvbnNlIGhlYWRlciBhbmQgYm9keS4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiTm9uZSIsICJkZXNjcmlwdGlvbiI6ICJSZXR1cm5zIGVpdGhlciBhIHJlcXVlc3Qgb3IgcmVzcG9uc2UgaGVhZGVyIGFuZCBib2R5LiIsICJleGFtcGxlX2NvZGUiOiAiTVdHLlJlcXVlc3RSZXNwb25zZSByZXF1ZXN0ID0gTVdHLlJlcXVlc3QoKVxuLy8gXCJSZXF1ZXN0IFVSTDogXCIgKyByZXF1ZXN0LlVybCIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIk1XRy5SZXF1ZXN0UmVzcG9uc2UgcmVxdWVzdCA9IE1XRy5SZXF1ZXN0KClcbi8vIFwiUmVxdWVzdCBVUkw6IFwiICsgcmVxdWVzdC5VcmwifSwgeyJuYW1lIjogIk1XRy5DeWNsZU5hbWUgKCkiLCAicmV0dXJuX3R5cGUiOiAiU1RSSU5HIiwgInJldHVybl9kZXNjIjogIlJldHVybnMgdGhlIG5hbWUgb2YgdGhlIGN1cnJlbnQgY3ljbGUgKFJlcXVlc3QsIFJlc3BvbnNlLCBFbWJlZGRlZE9iamVjdCkuIiwgInBhcmFtZXRlcl9kZXNjIjogIk5vbmUiLCAiZGVzY3JpcHRpb24iOiAiUmV0dXJucyB0aGUgbmFtZSBvZiB0aGUgY3VycmVudCBjeWNsZSAoUmVxdWVzdCwgUmVzcG9uc2UsIEVtYmVkZGVkT2JqZWN0KS4iLCAiZXhhbXBsZV9jb2RlIjogIlNUUklORyBjeWNsZU5hbWUgPSBNV0cuQ3ljbGVOYW1lKClcbi8vIEN1cnJlbnQgY3ljbGUgbmFtZTogKyBjeWNsZU5hbWVcblxuSUYgY3ljbGVOYW1lID09IFwiV2ViLlJlcXVlc3RcIiBUSEVOIHtcbiAgICAvLyBUaGlzIGlzIGEgV2ViIFJlcXVlc3QgY3ljbGUuXG59IEVMU0UgSUYgY3ljbGVOYW1lID09IFwiV2ViLlJlc3BvbnNlXCIgVEhFTiB7XG4gICAgLy8gVGhpcyBpcyBhIFdlYiBSZXNwb25zZSBjeWNsZS5cbn0gRUxTRSBJRiBjeWNsZU5hbWUgPT0gXCJFbWJlZGRlZE9iamVjdFwiIFRIRU4ge1xuICAgIC8vIFRoaXMgaXMgYW4gRW1iZWRkZWQgT2JqZWN0IGN5Y2xlLlxufSBFTFNFIHtcbiAgICAvLyBVbmtub3duIGN5Y2xlLlxufSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIlNUUklORyBjeWNsZU5hbWUgPSBNV0cuQ3ljbGVOYW1lKClcbi8vIEN1cnJlbnQgY3ljbGUgbmFtZTogKyBjeWNsZU5hbWVcblxuSUYgY3ljbGVOYW1lID09IFwiV2ViLlJlcXVlc3RcIiBUSEVOIHtcbiAgICAvLyBUaGlzIGlzIGEgV2ViIFJlcXVlc3QgY3ljbGUuXG59IEVMU0UgSUYgY3ljbGVOYW1lID09IFwiV2ViLlJlc3BvbnNlXCIgVEhFTiB7XG4gICAgLy8gVGhpcyBpcyBhIFdlYiBSZXNwb25zZSBjeWNsZS5cbn0gRUxTRSBJRiBjeWNsZU5hbWUgPT0gXCJFbWJlZGRlZE9iamVjdFwiIFRIRU4ge1xuICAgIC8vIFRoaXMgaXMgYW4gRW1iZWRkZWQgT2JqZWN0IGN5Y2xlLlxufSBFTFNFIHtcbiAgICAvLyBVbmtub3duIGN5Y2xlLlxufSJ9LCB7Im5hbWUiOiAiTVdHLkN5Y2xlVG9wTmFtZSAoKSIsICJyZXR1cm5fdHlwZSI6ICJTVFJJTkciLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyB0aGUgbmFtZSBvZiB0aGUgdG9wIGN5Y2xlIChSZXF1ZXN0LCBSZXNwb25zZSkuIiwgInBhcmFtZXRlcl9kZXNjIjogIk5vbmUiLCAiZGVzY3JpcHRpb24iOiAiUmV0dXJucyB0aGUgbmFtZSBvZiB0aGUgdG9wIGN5Y2xlIChSZXF1ZXN0LCBSZXNwb25zZSkuIiwgImV4YW1wbGVfY29kZSI6ICIvLyBSZXRyaWV2ZSB0aGUgbmFtZSBvZiB0aGUgdG9wbW9zdCBjeWNsZVxuU1RSSU5HIHRvcEN5Y2xlTmFtZSA9IE1XRy5DeWNsZVRvcE5hbWUoKVxuXG4vLyBUaGUgdG9wIGN5Y2xlIG5hbWUgaXM6IFwiICsgdG9wQ3ljbGVOYW1lXG5cbi8vIFBlcmZvcm0gYW4gYWN0aW9uIGJhc2VkIG9uIHRoZSB0b3AgY3ljbGUgbmFtZVxuSUYgdG9wQ3ljbGVOYW1lID09IFwiQmxvY2tDeWNsZVwiIFRIRU4ge1xuICAgIE1XRy5CbG9jayhcIkFjY2VzcyBibG9ja2VkIGR1ZSB0byBCbG9ja0N5Y2xlXCIpXG59IEVMU0Uge1xuICAgIE1XRy5BbGxvdyhcIkFjY2VzcyBhbGxvd2VkXCIpXG59IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiLy8gUmV0cmlldmUgdGhlIG5hbWUgb2YgdGhlIHRvcG1vc3QgY3ljbGVcblNUUklORyB0b3BDeWNsZU5hbWUgPSBNV0cuQ3ljbGVUb3BOYW1lKClcblxuLy8gVGhlIHRvcCBjeWNsZSBuYW1lIGlzOiBcIiArIHRvcEN5Y2xlTmFtZVxuXG4vLyBQZXJmb3JtIGFuIGFjdGlvbiBiYXNlZCBvbiB0aGUgdG9wIGN5Y2xlIG5hbWVcbklGIHRvcEN5Y2xlTmFtZSA9PSBcIkJsb2NrQ3ljbGVcIiBUSEVOIHtcbiAgICBNV0cuQmxvY2soXCJBY2Nlc3MgYmxvY2tlZCBkdWUgdG8gQmxvY2tDeWNsZVwiKVxufSBFTFNFIHtcbiAgICBNV0cuQWxsb3coXCJBY2Nlc3MgYWxsb3dlZFwiKVxufSJ9LCB7Im5hbWUiOiAiTVdHLkRhdGFUcmlja2xpbmdFbmFibGVkICgpIiwgInJldHVybl90eXBlIjogIkJPT0xFQU4iLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJuc2BUUlVFYGlmIGRhdGEgdHJpY2tsaW5nIGlzIGVuYWJsZWQuIiwgInBhcmFtZXRlcl9kZXNjIjogIk5vbmUiLCAiZGVzY3JpcHRpb24iOiAiUmV0dXJucyBUUlVFIGlmIGRhdGEgdHJpY2tsaW5nIGlzIGVuYWJsZWQuIiwgImV4YW1wbGVfY29kZSI6ICJNV0cuRGF0YVRyaWNrbGluZ1NldHRpbmcgZGF0YVRyaWNrbGluZ1NldHRpbmcgPSBNV0cuRGF0YVRyaWNrbGluZ1NldHRpbmcoKVxuZGF0YVRyaWNrbGluZ1NldHRpbmcuZW5hYmxlID0gVFJVRVxuZGF0YVRyaWNrbGluZ1NldHRpbmcuY2h1bmtTaXplID0gMTAyNCAgLy8gU2V0IHRoZSBjaHVuayBzaXplIHRvIDEwMjQgYnl0ZXNcbmRhdGFUcmlja2xpbmdTZXR0aW5nLmludGVydmFsID0gNSAgICAgIC8vIFNldCB0aGUgaW50ZXJ2YWwgdG8gNSBzZWNvbmRzXG5cbi8vIEFwcGx5IHRoZSBkYXRhIHRyaWNrbGluZyBzZXR0aW5nXG5NV0cuQXBwbHlEYXRhVHJpY2tsaW5nU2V0dGluZyhkYXRhVHJpY2tsaW5nU2V0dGluZylcblxuLy8gRGF0YSB0cmlja2xpbmcgaGFzIGJlZW4gZW5hYmxlZCB3aXRoIGNodW5rIHNpemUgMTAyNCBieXRlcyBhbmQgaW50ZXJ2YWwgNSBzZWNvbmRzLiIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIk1XRy5EYXRhVHJpY2tsaW5nU2V0dGluZyBkYXRhVHJpY2tsaW5nU2V0dGluZyA9IE1XRy5EYXRhVHJpY2tsaW5nU2V0dGluZygpXG5kYXRhVHJpY2tsaW5nU2V0dGluZy5lbmFibGUgPSBUUlVFXG5kYXRhVHJpY2tsaW5nU2V0dGluZy5jaHVua1NpemUgPSAxMDI0ICAvLyBTZXQgdGhlIGNodW5rIHNpemUgdG8gMTAyNCBieXRlc1xuZGF0YVRyaWNrbGluZ1NldHRpbmcuaW50ZXJ2YWwgPSA1ICAgICAgLy8gU2V0IHRoZSBpbnRlcnZhbCB0byA1IHNlY29uZHNcblxuLy8gQXBwbHkgdGhlIGRhdGEgdHJpY2tsaW5nIHNldHRpbmdcbk1XRy5BcHBseURhdGFUcmlja2xpbmdTZXR0aW5nKGRhdGFUcmlja2xpbmdTZXR0aW5nKVxuXG4vLyBEYXRhIHRyaWNrbGluZyBoYXMgYmVlbiBlbmFibGVkIHdpdGggY2h1bmsgc2l6ZSAxMDI0IGJ5dGVzIGFuZCBpbnRlcnZhbCA1IHNlY29uZHMuIn0sIHsibmFtZSI6ICJNV0cuRGF5T2ZNb250aElzSW5SYW5nZSAoU1RSSU5HKSIsICJyZXR1cm5fdHlwZSI6ICJCT09MRUFOIiwgInJldHVybl9kZXNjIjogIlwiUmV0dXJuc2BUUlVFYGlmIHRoZSBkYXkgZmFsbHMgd2l0aGluIHRoZSBpbnB1dCBkYXlzIHJhbmdlLiBNb250aCBkYXkgb3IgYSByYW5nZSBvZiBtb250aCBkYXlzIGNhbiBiZSBtZW50aW9uZWQgdXNpbmcgaHlwaGVuIHNlcGFyYXRlZCBieSBjb21tYSB3aXRob3V0IHdoaXRlIHNwYWNlLiBNb250aCBkYXkgcmFuZ2VzIGZyb20gMS0zMSAoZS5nLiAzLTcsMjUpLlwiLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJTVFJJTkc6IGRlc2lyZWQgcmFuZ2UuIiwgImRlc2NyaXB0aW9uIjogIlwiUmV0dXJucyBUUlVFIGlmIHRoZSBkYXkgZmFsbHMgd2l0aGluIHRoZSBpbnB1dCBkYXlzIHJhbmdlLiBNb250aCBkYXkgb3IgYSByYW5nZSBvZiBtb250aCBkYXlzIGNhbiBiZSBtZW50aW9uZWQgdXNpbmcgaHlwaGVuIHNlcGFyYXRlZCBieSBjb21tYSB3aXRob3V0IHdoaXRlIHNwYWNlLiBNb250aCBkYXkgcmFuZ2VzIGZyb20gMS0zMSAoZS5nLiAzLTcsMjUpLlwiIiwgImV4YW1wbGVfY29kZSI6ICJTVFJJTkcgZGF5UmFuZ2UgPSBcIjMtNywyNVwiXG5cbklGIE1XRy5EYXlPZk1vbnRoSXNJblJhbmdlKGRheVJhbmdlKSBUSEVOIHtcbiAgICAvLyBUaGUgY3VycmVudCBkYXkgaXMgd2l0aGluIHRoZSBzcGVjaWZpZWQgcmFuZ2UuXG4gICAgTVdHLkFsbG93KFwiRGF5SW5SYW5nZVwiKVxufSBFTFNFIHtcbiAgICAvLyBUaGUgY3VycmVudCBkYXkgaXMgbm90IHdpdGhpbiB0aGUgc3BlY2lmaWVkIHJhbmdlLlxuICAgIE1XRy5CbG9jayhcIkRheU91dE9mUmFuZ2VcIilcbn0iLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICJTVFJJTkcgZGF5UmFuZ2UgPSBcIjMtNywyNVwiXG5cbklGIE1XRy5EYXlPZk1vbnRoSXNJblJhbmdlKGRheVJhbmdlKSBUSEVOIHtcbiAgICAvLyBUaGUgY3VycmVudCBkYXkgaXMgd2l0aGluIHRoZSBzcGVjaWZpZWQgcmFuZ2UuXG4gICAgTVdHLkFsbG93KFwiRGF5SW5SYW5nZVwiKVxufSBFTFNFIHtcbiAgICAvLyBUaGUgY3VycmVudCBkYXkgaXMgbm90IHdpdGhpbiB0aGUgc3BlY2lmaWVkIHJhbmdlLlxuICAgIE1XRy5CbG9jayhcIkRheU91dE9mUmFuZ2VcIilcbn0ifSwgeyJuYW1lIjogIk1XRy5EYXlPZldlZWtJc0luUmFuZ2UgKFNUUklORykiLCAicmV0dXJuX3R5cGUiOiAiQk9PTEVBTiIsICJyZXR1cm5fZGVzYyI6ICJcIlJldHVybnNgVFJVRWBpZiB0aGUgZGF5IGZhbGxzIHdpdGhpbiB0aGUgaW5wdXQgZGF5cyByYW5nZS4gV2Vla2RheSByYW5nZXMgZnJvbSAwLTYsIDAgYXMgU3VuZGF5IGZvbGxvd2VkIGJ5IDYgYXMgU2F0dXJkYXkuIFJhbmdlIGNhbiBiZSBtZW50aW9uZWQgdXNpbmcgaHlwaGVuIChubyB3aGl0ZXNwYWNlKSBhbmQgbXVsdGlwbGUgcmFuZ2VzIGNhbiBiZSBwcm92aWRlZCB1c2luZyBjb21tYSAoZS5nLiAwLDMtNCw2KS5cIi4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiU1RSSU5HOiBkZXNpcmVkIHJhbmdlLiIsICJkZXNjcmlwdGlvbiI6ICJcIlJldHVybnMgVFJVRSBpZiB0aGUgZGF5IGZhbGxzIHdpdGhpbiB0aGUgaW5wdXQgZGF5cyByYW5nZS4gV2Vla2RheSByYW5nZXMgZnJvbSAwLTYsIDAgYXMgU3VuZGF5IGZvbGxvd2VkIGJ5IDYgYXMgU2F0dXJkYXkuIFJhbmdlIGNhbiBiZSBtZW50aW9uZWQgdXNpbmcgaHlwaGVuIChubyB3aGl0ZXNwYWNlKSBhbmQgbXVsdGlwbGUgcmFuZ2VzIGNhbiBiZSBwcm92aWRlZCB1c2luZyBjb21tYSAoZS5nLiAwLDMtNCw2KS5cIiIsICJleGFtcGxlX2NvZGUiOiAiSUYgTVdHLkRheU9mV2Vla0lzSW5SYW5nZShcIjEtNVwiKSBUSEVOIHtcbiAgICBNV0cuQWxsb3coXCJBY2Nlc3MgYWxsb3dlZCBvbiB3ZWVrZGF5c1wiKVxufSBFTFNFIHtcbiAgICBNV0cuQmxvY2soXCJBY2Nlc3MgaXMgb25seSBhbGxvd2VkIG9uIHdlZWtkYXlzXCIpXG59IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiSUYgTVdHLkRheU9mV2Vla0lzSW5SYW5nZShcIjEtNVwiKSBUSEVOIHtcbiAgICBNV0cuQWxsb3coXCJBY2Nlc3MgYWxsb3dlZCBvbiB3ZWVrZGF5c1wiKVxufSBFTFNFIHtcbiAgICBNV0cuQmxvY2soXCJBY2Nlc3MgaXMgb25seSBhbGxvd2VkIG9uIHdlZWtkYXlzXCIpXG59In0sIHsibmFtZSI6ICJNV0cuRGF5T2ZZZWFySXNJblJhbmdlIChTVFJJTkcpIiwgInJldHVybl90eXBlIjogIkJPT0xFQU4iLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJuc2BUUlVFYGlmIHRoZSBkYXkgZmFsbHMgd2l0aGluIHRoZSBpbnB1dCBkYXlzIHJhbmdlLiBZZWFyIGRheSBvciBhIHJhbmdlIG9mIHllYXIgZGF5cyBjYW4gYmUgbWVudGlvbmVkIHVzaW5nIGh5cGhlbiBzZXBhcmF0ZWQgYnkgY29tbWEgd2l0aG91dCB3aGl0ZSBzcGFjZS4gWWVhciBkYXkgcmFuZ2VzIGZyb20gMC0zNjUsIDAgYXMgSmFudWFyeSAxIChlLmcuNSwxMTAtMTE1LDIzMCkuIiwgInBhcmFtZXRlcl9kZXNjIjogIlNUUklORzogZGVzaXJlZCByYW5nZS4iLCAiZGVzY3JpcHRpb24iOiAiXCJSZXR1cm5zIFRSVUUgaWYgdGhlIGRheSBmYWxscyB3aXRoaW4gdGhlIGlucHV0IGRheXMgcmFuZ2UuIFllYXIgZGF5IG9yIGEgcmFuZ2Ugb2YgeWVhciBkYXlzIGNhbiBiZSBtZW50aW9uZWQgdXNpbmcgaHlwaGVuIHNlcGFyYXRlZCBieSBjb21tYSB3aXRob3V0IHdoaXRlIHNwYWNlLiBZZWFyIGRheSByYW5nZXMgZnJvbSAwLTM2NSwgMCBhcyBKYW51YXJ5IDEgKGUuZy4gNSwxMTAtMTE1LDIzMCkuXCIiLCAiZXhhbXBsZV9jb2RlIjogIklGIE1XRy5EYXlPZlllYXJJc0luUmFuZ2UoXCI1LDExMC0xMTUsMjMwXCIpIFRIRU4ge1xuICAgIE1XRy5CbG9jayhcIkFjY2VzcyBpcyBibG9ja2VkIG9uIHRoZXNlIHNwZWNpZmljIGRheXMgb2YgdGhlIHllYXIuXCIpXG59IEVMU0Uge1xuICAgIE1XRy5BbGxvdyhcIkFjY2VzcyBpcyBhbGxvd2VkLlwiKVxufSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIklGIE1XRy5EYXlPZlllYXJJc0luUmFuZ2UoXCI1LDExMC0xMTUsMjMwXCIpIFRIRU4ge1xuICAgIE1XRy5CbG9jayhcIkFjY2VzcyBpcyBibG9ja2VkIG9uIHRoZXNlIHNwZWNpZmljIGRheXMgb2YgdGhlIHllYXIuXCIpXG59IEVMU0Uge1xuICAgIE1XRy5BbGxvdyhcIkFjY2VzcyBpcyBhbGxvd2VkLlwiKVxufSJ9LCB7Im5hbWUiOiAiTVdHLkRlc3RpbmF0aW9uSVAgKCkiLCAicmV0dXJuX3R5cGUiOiAiTmV0LklQIiwgInJldHVybl9kZXNjIjogIlJldHVybnMgb25lIElQIGFkZHJlc3Mgb2YgdGhlIGRlc3RpbmF0aW9uLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJOb25lIiwgImRlc2NyaXB0aW9uIjogIlJldHVybnMgb25lIElQIGFkZHJlc3Mgb2YgdGhlIGRlc3RpbmF0aW9uLiIsICJleGFtcGxlX2NvZGUiOiAiTmV0LklQIGRlc3RpbmF0aW9uSVAgPSBNV0cuRGVzdGluYXRpb25JUCgpXG4vLyBEZXN0aW5hdGlvbiBJUDogZGVzdGluYXRpb25JUFxuXG4vLyBFeGFtcGxlIGNvbmRpdGlvbiB0byBibG9jayBhIHNwZWNpZmljIElQXG5JRiBkZXN0aW5hdGlvbklQID09IFwiMTkyLjE2OC4xLjFcIiBUSEVOIHtcbiAgICBNV0cuQmxvY2soXCJBY2Nlc3MgdG8gdGhpcyBJUCBpcyBibG9ja2VkLlwiKVxufSBFTFNFIHtcbiAgICBNV0cuQWxsb3coXCJEZXN0aW5hdGlvbiBJUCBpcyBhbGxvd2VkLlwiKVxufSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIk5ldC5JUCBkZXN0aW5hdGlvbklQID0gTVdHLkRlc3RpbmF0aW9uSVAoKVxuLy8gRGVzdGluYXRpb24gSVA6IGRlc3RpbmF0aW9uSVBcblxuLy8gRXhhbXBsZSBjb25kaXRpb24gdG8gYmxvY2sgYSBzcGVjaWZpYyBJUFxuSUYgZGVzdGluYXRpb25JUCA9PSBcIjE5Mi4xNjguMS4xXCIgVEhFTiB7XG4gICAgTVdHLkJsb2NrKFwiQWNjZXNzIHRvIHRoaXMgSVAgaXMgYmxvY2tlZC5cIilcbn0gRUxTRSB7XG4gICAgTVdHLkFsbG93KFwiRGVzdGluYXRpb24gSVAgaXMgYWxsb3dlZC5cIilcbn0ifSwgeyJuYW1lIjogIk1XRy5EaXNjYXJkZWRIb3N0ICgpIiwgInJldHVybl90eXBlIjogIlNUUklORyIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIHRoZSBob3N0bmFtZSBvZiB0aGUgZGlzY2FyZGVkIHJlc291cmNlLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJOb25lIiwgImRlc2NyaXB0aW9uIjogIlJldHVybnMgdGhlIGhvc3Qgb2YgdGhlIHJlcXVlc3RlZCByZXNvdXJjZSB0aGF0IHdhcyBkaXNjYXJkZWQuIiwgImV4YW1wbGVfY29kZSI6ICIvLyBHZXQgdGhlIGRpc2NhcmRlZCBob3N0XG5TVFJJTkcgZGlzY2FyZGVkSG9zdCA9IE1XRy5EaXNjYXJkZWRIb3N0KClcblxuLy8gRGlzY2FyZGVkIEhvc3Q6IFwiICsgZGlzY2FyZGVkSG9zdFxuXG4vLyBQZXJmb3JtIHNvbWUgYWN0aW9uIGJhc2VkIG9uIHRoZSBkaXNjYXJkZWQgaG9zdFxuSUYgZGlzY2FyZGVkSG9zdCA9PSBcImV4YW1wbGUuY29tXCIgVEhFTiB7XG4gICAgTVdHLkJsb2NrKFwiQWNjZXNzIHRvIGV4YW1wbGUuY29tIGlzIGJsb2NrZWQgZHVlIHRvIGRpc2NhcmRlZCBob3N0LlwiKVxufSBFTFNFIHtcbiAgICBNV0cuQWxsb3coXCJIb3N0IGlzIG5vdCBkaXNjYXJkZWQuXCIpXG59IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiLy8gR2V0IHRoZSBkaXNjYXJkZWQgaG9zdFxuU1RSSU5HIGRpc2NhcmRlZEhvc3QgPSBNV0cuRGlzY2FyZGVkSG9zdCgpXG5cbi8vIERpc2NhcmRlZCBIb3N0OiBcIiArIGRpc2NhcmRlZEhvc3RcblxuLy8gUGVyZm9ybSBzb21lIGFjdGlvbiBiYXNlZCBvbiB0aGUgZGlzY2FyZGVkIGhvc3RcbklGIGRpc2NhcmRlZEhvc3QgPT0gXCJleGFtcGxlLmNvbVwiIFRIRU4ge1xuICAgIE1XRy5CbG9jayhcIkFjY2VzcyB0byBleGFtcGxlLmNvbSBpcyBibG9ja2VkIGR1ZSB0byBkaXNjYXJkZWQgaG9zdC5cIilcbn0gRUxTRSB7XG4gICAgTVdHLkFsbG93KFwiSG9zdCBpcyBub3QgZGlzY2FyZGVkLlwiKVxufSJ9LCB7Im5hbWUiOiAiTVdHLkRMUENsYXNzaWZpY2F0aW9uTWF0Y2hlZENsYXNzaWZpY2F0aW9ucyAoTVdHLkRMUENsYXNzaWZpY2F0aW9uU2V0dGluZykiLCAicmV0dXJuX3R5cGUiOiAiVkVDVE9SPFNUUklORz4iLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyBhIGxpc3Qgb2YgY2xhc3NpZmljYXRpb25zIHRoYXQgbWF0Y2ggdGhlIGdpdmVuIGNsYXNzaWZpY2F0aW9uIHNldHRpbmcgaW4gdGhlIGJvZHkgdGV4dC4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiTVdHLkRMUENsYXNzaWZpY2F0aW9uU2V0dGluZzogdGhlIGNsYXNzaWZpY2F0aW9uIHNldHRpbmdzIHRvIGJlIG1hdGNoZWQgYWdhaW5zdCB0aGUgYm9keSB0ZXh0LiIsICJkZXNjcmlwdGlvbiI6ICJMaXN0cyBjbGFzc2lmaWNhdGlvbnMgdGhhdCBtYXRjaCB0aGUgY2xhc3NpZmljYXRpb24gaW4gYm9keSB0ZXh0LiIsICJleGFtcGxlX2NvZGUiOiAiLy8gRGVmaW5lIHRoZSBETFAgY2xhc3NpZmljYXRpb24gc2V0dGluZ1xuTVdHLkRMUENsYXNzaWZpY2F0aW9uU2V0dGluZyBkbHBTZXR0aW5nID0gTVdHLkdldERMUENsYXNzaWZpY2F0aW9uU2V0dGluZyhcImV4YW1wbGVfc2V0dGluZ1wiKVxuXG4vLyBEZWZpbmUgdGhlIHRleHQgdG8gYmUgY2xhc3NpZmllZFxuU1RSSU5HIHRleHRUb0NsYXNzaWZ5ID0gXCJUaGlzIGlzIGEgc2FtcGxlIHRleHQgdGhhdCBuZWVkcyB0byBiZSBjbGFzc2lmaWVkLlwiXG5cbi8vIEdldCB0aGUgbWF0Y2hlZCBjbGFzc2lmaWNhdGlvbnNcblZFQ1RPUjxTVFJJTkc+IG1hdGNoZWRDbGFzc2lmaWNhdGlvbnMgPSBNV0cuRExQQ2xhc3NpZmljYXRpb25NYXRjaGVkQ2xhc3NpZmljYXRpb25zKGRscFNldHRpbmcsIHRleHRUb0NsYXNzaWZ5KVxuXG4vLyBDaGVjayBpZiB0aGVyZSBhcmUgYW55IG1hdGNoZWQgY2xhc3NpZmljYXRpb25zXG5JRiBtYXRjaGVkQ2xhc3NpZmljYXRpb25zLlNJWkUoKSA+IDAgVEhFTiB7XG4gICAgLy8gTG9nIHRoZSBtYXRjaGVkIGNsYXNzaWZpY2F0aW9uc1xuICAgIC8vIERMUCBjbGFzc2lmaWNhdGlvbnMgbWF0Y2hlZDogXCIgKyBtYXRjaGVkQ2xhc3NpZmljYXRpb25zLlNJWkUoKVxuICAgIEZPUiBTVFJJTkcgY2xhc3NpZmljYXRpb24gSU4gbWF0Y2hlZENsYXNzaWZpY2F0aW9ucyB7XG4gICAgICAgIC8vIE1hdGNoZWQgY2xhc3NpZmljYXRpb246IFwiICsgY2xhc3NpZmljYXRpb25cbiAgICB9XG5cbiAgICAvLyBCbG9jayB0aGUgcmVxdWVzdCB3aXRoIGEgbWVzc2FnZSBpbmRpY2F0aW5nIGEgRExQIHBvbGljeSB2aW9sYXRpb25cbiAgICBNV0cuQmxvY2soXCJETFAgcG9saWN5IHZpb2xhdGlvbiBkZXRlY3RlZFwiKVxufSBFTFNFIHtcbiAgICAvLyBBbGxvdyB0aGUgcmVxdWVzdCB0byBwcm9jZWVkXG4gICAgTVdHLkFsbG93KFwiTm8gRExQIHBvbGljeSB2aW9sYXRpb25zXCIpXG59IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiLy8gRGVmaW5lIHRoZSBETFAgY2xhc3NpZmljYXRpb24gc2V0dGluZ1xuTVdHLkRMUENsYXNzaWZpY2F0aW9uU2V0dGluZyBkbHBTZXR0aW5nID0gTVdHLkdldERMUENsYXNzaWZpY2F0aW9uU2V0dGluZyhcImV4YW1wbGVfc2V0dGluZ1wiKVxuXG4vLyBEZWZpbmUgdGhlIHRleHQgdG8gYmUgY2xhc3NpZmllZFxuU1RSSU5HIHRleHRUb0NsYXNzaWZ5ID0gXCJUaGlzIGlzIGEgc2FtcGxlIHRleHQgdGhhdCBuZWVkcyB0byBiZSBjbGFzc2lmaWVkLlwiXG5cbi8vIEdldCB0aGUgbWF0Y2hlZCBjbGFzc2lmaWNhdGlvbnNcblZFQ1RPUjxTVFJJTkc+IG1hdGNoZWRDbGFzc2lmaWNhdGlvbnMgPSBNV0cuRExQQ2xhc3NpZmljYXRpb25NYXRjaGVkQ2xhc3NpZmljYXRpb25zKGRscFNldHRpbmcsIHRleHRUb0NsYXNzaWZ5KVxuXG4vLyBDaGVjayBpZiB0aGVyZSBhcmUgYW55IG1hdGNoZWQgY2xhc3NpZmljYXRpb25zXG5JRiBtYXRjaGVkQ2xhc3NpZmljYXRpb25zLlNJWkUoKSA+IDAgVEhFTiB7XG4gICAgLy8gTG9nIHRoZSBtYXRjaGVkIGNsYXNzaWZpY2F0aW9uc1xuICAgIC8vIERMUCBjbGFzc2lmaWNhdGlvbnMgbWF0Y2hlZDogXCIgKyBtYXRjaGVkQ2xhc3NpZmljYXRpb25zLlNJWkUoKVxuICAgIEZPUiBTVFJJTkcgY2xhc3NpZmljYXRpb24gSU4gbWF0Y2hlZENsYXNzaWZpY2F0aW9ucyB7XG4gICAgICAgIC8vIE1hdGNoZWQgY2xhc3NpZmljYXRpb246IFwiICsgY2xhc3NpZmljYXRpb25cbiAgICB9XG5cbiAgICAvLyBCbG9jayB0aGUgcmVxdWVzdCB3aXRoIGEgbWVzc2FnZSBpbmRpY2F0aW5nIGEgRExQIHBvbGljeSB2aW9sYXRpb25cbiAgICBNV0cuQmxvY2soXCJETFAgcG9saWN5IHZpb2xhdGlvbiBkZXRlY3RlZFwiKVxufSBFTFNFIHtcbiAgICAvLyBBbGxvdyB0aGUgcmVxdWVzdCB0byBwcm9jZWVkXG4gICAgTVdHLkFsbG93KFwiTm8gRExQIHBvbGljeSB2aW9sYXRpb25zXCIpXG59In0sIHsibmFtZSI6ICJNV0cuRExQQ2xhc3NpZmljYXRpb25NYXRjaGVkQ2xhc3NpZmljYXRpb25zIChNV0cuRExQQ2xhc3NpZmljYXRpb25TZXR0aW5nLCBTVFJJTkcpIiwgInJldHVybl90eXBlIjogIlZFQ1RPUjxTVFJJTkc+IiwgInJldHVybl9kZXNjIjogIlJldHVybnMgYSB2ZWN0b3IgY29udGFpbmluZyBjbGFzc2lmaWNhdGlvbnMgdGhhdCBtYXRjaCB0aGUgc3BlY2lmaWVkIGNsYXNzaWZpY2F0aW9uIHdpdGhpbiB0aGUgcHJvdmlkZWQgdGV4dC4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiTVdHLkRMUENsYXNzaWZpY2F0aW9uU2V0dGluZzogVGhlIGNsYXNzaWZpY2F0aW9uIHNldHRpbmdzIHRvIGJlIHVzZWQ7IFNUUklORzogdGhlIHRleHQgdG8gYmUgY2xhc3NpZmllZC4iLCAiZGVzY3JpcHRpb24iOiAiTGlzdHMgY2xhc3NpZmljYXRpb25zIHRoYXQgbWF0Y2ggdGhlIGNsYXNzaWZpY2F0aW9uIGluIHRleHQuIiwgImV4YW1wbGVfY29kZSI6ICJNV0cuRExQRGljdGlvbmFyeVNldHRpbmcgZGxwU2V0dGluZyA9IFtcIlNlbnNpdGl2ZURhdGFEaWN0aW9uYXJ5XCJdXG5TVFJJTkcgdGV4dFRvQ2hlY2sgPSBcIlRoaXMgaXMgYSBzYW1wbGUgdGV4dCBjb250YWluaW5nIHNlbnNpdGl2ZSBpbmZvcm1hdGlvbi5cIlxuXG5JRiBNV0cuRExQRGljdGlvbmFyeU1hdGNoZXMoZGxwU2V0dGluZywgdGV4dFRvQ2hlY2spIFRIRU4ge1xuICAgIC8vIFNlbnNpdGl2ZSBkYXRhIGRldGVjdGVkIGluIHRoZSByZXF1ZXN0LlxuICAgIE1XRy5CbG9jayhcIlNlbnNpdGl2ZSBkYXRhIGRldGVjdGVkIGluIHRoZSByZXF1ZXN0LlwiKVxufSBFTFNFIHtcbiAgICAvLyBObyBzZW5zaXRpdmUgZGF0YSBkZXRlY3RlZC5cbiAgICBNV0cuQWxsb3coXCJObyBzZW5zaXRpdmUgZGF0YSBkZXRlY3RlZC5cIilcbn0iLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICJNV0cuRExQRGljdGlvbmFyeVNldHRpbmcgZGxwU2V0dGluZyA9IFtcIlNlbnNpdGl2ZURhdGFEaWN0aW9uYXJ5XCJdXG5TVFJJTkcgdGV4dFRvQ2hlY2sgPSBcIlRoaXMgaXMgYSBzYW1wbGUgdGV4dCBjb250YWluaW5nIHNlbnNpdGl2ZSBpbmZvcm1hdGlvbi5cIlxuXG5JRiBNV0cuRExQRGljdGlvbmFyeU1hdGNoZXMoZGxwU2V0dGluZywgdGV4dFRvQ2hlY2spIFRIRU4ge1xuICAgIC8vIFNlbnNpdGl2ZSBkYXRhIGRldGVjdGVkIGluIHRoZSByZXF1ZXN0LlxuICAgIE1XRy5CbG9jayhcIlNlbnNpdGl2ZSBkYXRhIGRldGVjdGVkIGluIHRoZSByZXF1ZXN0LlwiKVxufSBFTFNFIHtcbiAgICAvLyBObyBzZW5zaXRpdmUgZGF0YSBkZXRlY3RlZC5cbiAgICBNV0cuQWxsb3coXCJObyBzZW5zaXRpdmUgZGF0YSBkZXRlY3RlZC5cIilcbn0ifSwgeyJuYW1lIjogIk1XRy5ETFBDbGFzc2lmaWNhdGlvbk1hdGNoZWRDbGFzc2lmaWNhdGlvbnMgKE1XRy5JbnRlcm5hbFNldHRpbmcpIiwgInJldHVybl90eXBlIjogIlZFQ1RPUjxTVFJJTkc+IiwgInJldHVybl9kZXNjIjogIlJldHVybnMgYSB2ZWN0b3IgY29udGFpbmluZyBjbGFzc2lmaWNhdGlvbnMgdGhhdCBtYXRjaCB0aGUgY2xhc3NpZmljYXRpb24gZm91bmQgaW4gdGhlIGJvZHkgdGV4dC4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiTVdHLkludGVybmFsU2V0dGluZzogQ29uZmlndXJhdGlvbiBzZXR0aW5ncyBmb3IgdGhlIGNsYXNzaWZpY2F0aW9uIG1hdGNoaW5nIHByb2Nlc3MuIiwgImRlc2NyaXB0aW9uIjogIkxvZ3M6IExpc3RzIG9mIGNsYXNzaWZpY2F0aW9ucyB0aGF0IG1hdGNoIHRoZSBjbGFzc2lmaWNhdGlvbiBpbiBib2R5IHRleHQuIiwgImV4YW1wbGVfY29kZSI6ICJNV0cuSW50ZXJuYWxTZXR0aW5nIHNldHRpbmcgPSBNV0cuRExQQ2xhc3NpZmljYXRpb25NYXRjaGVkQ2xhc3NpZmljYXRpb25zKClcblNUUklORyBjbGFzc2lmaWNhdGlvbiA9IFwiQ29uZmlkZW50aWFsXCJcbk1XRy5JbnRlcm5hbFBhcmFtZXRlckxpc3QgcGFyYW1zID0gTVdHLkludGVybmFsUGFyYW1ldGVyTGlzdCgpXG5cbi8vIEFkZCBwYXJhbWV0ZXJzIHRvIHRoZSBsaXN0IGlmIG5lZWRlZFxucGFyYW1zLkFkZChcIkNsYXNzaWZpY2F0aW9uXCIsIGNsYXNzaWZpY2F0aW9uKVxuXG4vLyBFeGVjdXRlIHRoZSBldmVudCB3aXRoIHRoZSBpbnRlcm5hbCBzZXR0aW5nLCBhIHN0cmluZyBpZGVudGlmaWVyLCBhbmQgdGhlIHBhcmFtZXRlciBsaXN0XG5NV0cuRXhlY3V0ZUV2ZW50KHNldHRpbmcsIFwiQ2hlY2tDbGFzc2lmaWNhdGlvblwiLCBwYXJhbXMpXG5cbi8vIEV4YW1wbGUgY29uZGl0aW9uIHRvIGJsb2NrIGJhc2VkIG9uIGNsYXNzaWZpY2F0aW9uXG5JRiBjbGFzc2lmaWNhdGlvbiA9PSBcIkNvbmZpZGVudGlhbFwiIFRIRU4ge1xuICAgIE1XRy5CbG9jayhcIkFjY2VzcyB0byBjb25maWRlbnRpYWwgZGF0YSBpcyBub3QgYWxsb3dlZC5cIilcbn0gRUxTRSB7XG4gICAgTVdHLkFsbG93KFwiQ2xhc3NpZmljYXRpb24gY2hlY2sgcGFzc2VkLlwiKVxufSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIk1XRy5JbnRlcm5hbFNldHRpbmcgc2V0dGluZyA9IE1XRy5ETFBDbGFzc2lmaWNhdGlvbk1hdGNoZWRDbGFzc2lmaWNhdGlvbnMoKVxuU1RSSU5HIGNsYXNzaWZpY2F0aW9uID0gXCJDb25maWRlbnRpYWxcIlxuTVdHLkludGVybmFsUGFyYW1ldGVyTGlzdCBwYXJhbXMgPSBNV0cuSW50ZXJuYWxQYXJhbWV0ZXJMaXN0KClcblxuLy8gQWRkIHBhcmFtZXRlcnMgdG8gdGhlIGxpc3QgaWYgbmVlZGVkXG5wYXJhbXMuQWRkKFwiQ2xhc3NpZmljYXRpb25cIiwgY2xhc3NpZmljYXRpb24pXG5cbi8vIEV4ZWN1dGUgdGhlIGV2ZW50IHdpdGggdGhlIGludGVybmFsIHNldHRpbmcsIGEgc3RyaW5nIGlkZW50aWZpZXIsIGFuZCB0aGUgcGFyYW1ldGVyIGxpc3Rcbk1XRy5FeGVjdXRlRXZlbnQoc2V0dGluZywgXCJDaGVja0NsYXNzaWZpY2F0aW9uXCIsIHBhcmFtcylcblxuLy8gRXhhbXBsZSBjb25kaXRpb24gdG8gYmxvY2sgYmFzZWQgb24gY2xhc3NpZmljYXRpb25cbklGIGNsYXNzaWZpY2F0aW9uID09IFwiQ29uZmlkZW50aWFsXCIgVEhFTiB7XG4gICAgTVdHLkJsb2NrKFwiQWNjZXNzIHRvIGNvbmZpZGVudGlhbCBkYXRhIGlzIG5vdCBhbGxvd2VkLlwiKVxufSBFTFNFIHtcbiAgICBNV0cuQWxsb3coXCJDbGFzc2lmaWNhdGlvbiBjaGVjayBwYXNzZWQuXCIpXG59In0sIHsibmFtZSI6ICJNV0cuRExQQ2xhc3NpZmljYXRpb25NYXRjaGVkVGVybXMgKE1XRy5ETFBDbGFzc2lmaWNhdGlvblNldHRpbmcpIiwgInJldHVybl90eXBlIjogIlZFQ1RPUjxTVFJJTkc+IiwgInJldHVybl9kZXNjIjogIlJldHVybnMgYSB2ZWN0b3IgY29udGFpbmluZyBhIGxpc3Qgb2YgdGVybXMgdGhhdCBtYXRjaCB0aGUgc3BlY2lmaWVkIGNsYXNzaWZpY2F0aW9uIGluIHRoZSBib2R5IHRleHQuIiwgInBhcmFtZXRlcl9kZXNjIjogIk1XRy5ETFBDbGFzc2lmaWNhdGlvblNldHRpbmc6IENvbmZpZ3VyYXRpb24gc3BlY2lmeWluZyB0aGUgY2xhc3NpZmljYXRpb24gY3JpdGVyaWEgdG8gbWF0Y2ggdGVybXMgaW4gdGhlIGJvZHkgdGV4dC4iLCAiZGVzY3JpcHRpb24iOiAiTGlzdHMgdGVybXMgdGhhdCBtYXRjaCB0aGUgY2xhc3NpZmljYXRpb24gaW4gYm9keSB0ZXh0LiIsICJleGFtcGxlX2NvZGUiOiAiLy8gRGVmaW5lIHRoZSBETFAgY2xhc3NpZmljYXRpb24gc2V0dGluZ1xuTVdHLkRMUENsYXNzaWZpY2F0aW9uU2V0dGluZyBkbHBTZXR0aW5nID0gW1wiWW91ckRMUENsYXNzaWZpY2F0aW9uU2V0dGluZ1wiXVxuXG4vLyBEZWZpbmUgdGhlIHRleHQgdG8gYmUgYW5hbHl6ZWRcblNUUklORyB0ZXh0VG9BbmFseXplID0gXCJUaGlzIGlzIGEgc2FtcGxlIHRleHQgY29udGFpbmluZyBzZW5zaXRpdmUgaW5mb3JtYXRpb24gbGlrZSBjcmVkaXQgY2FyZCBudW1iZXJzIGFuZCBzb2NpYWwgc2VjdXJpdHkgbnVtYmVycy5cIlxuXG4vLyBHZXQgdGhlIG1hdGNoZWQgdGVybXNcblZFQ1RPUjxTVFJJTkc+IG1hdGNoZWRUZXJtcyA9IE1XRy5ETFBDbGFzc2lmaWNhdGlvbk1hdGNoZWRUZXJtcyhkbHBTZXR0aW5nLCB0ZXh0VG9BbmFseXplKVxuXG4vLyBNYXRjaGVkIFRlcm1zOiBcbi8vIERFQlVHKFwiTWF0Y2hlZCBUZXJtczogXCIgKyBtYXRjaGVkVGVybXMpIiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiLy8gRGVmaW5lIHRoZSBETFAgY2xhc3NpZmljYXRpb24gc2V0dGluZ1xuTVdHLkRMUENsYXNzaWZpY2F0aW9uU2V0dGluZyBkbHBTZXR0aW5nID0gW1wiWW91ckRMUENsYXNzaWZpY2F0aW9uU2V0dGluZ1wiXVxuXG4vLyBEZWZpbmUgdGhlIHRleHQgdG8gYmUgYW5hbHl6ZWRcblNUUklORyB0ZXh0VG9BbmFseXplID0gXCJUaGlzIGlzIGEgc2FtcGxlIHRleHQgY29udGFpbmluZyBzZW5zaXRpdmUgaW5mb3JtYXRpb24gbGlrZSBjcmVkaXQgY2FyZCBudW1iZXJzIGFuZCBzb2NpYWwgc2VjdXJpdHkgbnVtYmVycy5cIlxuXG4vLyBHZXQgdGhlIG1hdGNoZWQgdGVybXNcblZFQ1RPUjxTVFJJTkc+IG1hdGNoZWRUZXJtcyA9IE1XRy5ETFBDbGFzc2lmaWNhdGlvbk1hdGNoZWRUZXJtcyhkbHBTZXR0aW5nLCB0ZXh0VG9BbmFseXplKVxuXG4vLyBNYXRjaGVkIFRlcm1zOiBcbi8vIERFQlVHKFwiTWF0Y2hlZCBUZXJtczogXCIgKyBtYXRjaGVkVGVybXMpIn0sIHsibmFtZSI6ICJNV0cuRExQQ2xhc3NpZmljYXRpb25NYXRjaGVkVGVybXMgKE1XRy5ETFBDbGFzc2lmaWNhdGlvblNldHRpbmcsIFNUUklORykiLCAicmV0dXJuX3R5cGUiOiAiVkVDVE9SPFNUUklORz4iLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyBhIHZlY3RvciBjb250YWluaW5nIHRlcm1zIGZyb20gdGhlIHRleHQgdGhhdCBtYXRjaCB0aGUgRExQIGNsYXNzaWZpY2F0aW9uIHNldHRpbmdzLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJNV0cuRExQQ2xhc3NpZmljYXRpb25TZXR0aW5nOiBjb25maWd1cmF0aW9uIHNldHRpbmdzIGZvciBkYXRhIGxvc3MgcHJldmVudGlvbiBjbGFzc2lmY2F0aW9uOyBTVFJJTkc6IHRoZSB0ZXh0IHRvIGJlIGFuYWx5emVkIGZvciBtYXRjaGluZyB0ZXJtcy4iLCAiZGVzY3JpcHRpb24iOiAiTGlzdHMgdGVybXMgdGhhdCBtYXRjaCB0aGUgY2xhc3NpZmljYXRpb24gaW4gdGV4dC4iLCAiZXhhbXBsZV9jb2RlIjogIi8vIERlZmluZSB0aGUgRExQIGNsYXNzaWZpY2F0aW9uIHNldHRpbmdcbk1XRy5ETFBDbGFzc2lmaWNhdGlvblNldHRpbmcgZGxwU2V0dGluZyA9IFtcIk15RExQQ2xhc3NpZmljYXRpb25TZXR0aW5nXCJdXG5cbi8vIERlZmluZSB0aGUgdGV4dCB0byBiZSBhbmFseXplZFxuU1RSSU5HIHRleHRUb0FuYWx5emUgPSBcIlRoaXMgaXMgYSBzYW1wbGUgdGV4dCBjb250YWluaW5nIHNlbnNpdGl2ZSBpbmZvcm1hdGlvbiBsaWtlIGNyZWRpdCBjYXJkIG51bWJlcnMgYW5kIHNvY2lhbCBzZWN1cml0eSBudW1iZXJzLlwiXG5cbi8vIEdldCB0aGUgbWF0Y2hlZCB0ZXJtc1xuVkVDVE9SPFNUUklORz4gbWF0Y2hlZFRlcm1zID0gTVdHLkRMUENsYXNzaWZpY2F0aW9uTWF0Y2hlZFRlcm1zKGRscFNldHRpbmcsIHRleHRUb0FuYWx5emUpXG5cbi8vIENoZWNrIGlmIHRoZXJlIGFyZSBhbnkgbWF0Y2hlZCB0ZXJtc1xuSUYgbWF0Y2hlZFRlcm1zLlNJWkUoKSA+IDAgVEhFTiB7XG4gICAgLy8gTWF0Y2hlZCBETFAgVGVybXM6IFwiICsgbWF0Y2hlZFRlcm1zLlRPX1NUUklORygpXG4gICAgLy8gQmxvY2sgdGhlIGNvbm5lY3Rpb24gd2l0aCBhIHJlYXNvblxuICAgIE1XRy5CbG9jayhcIlNlbnNpdGl2ZSBpbmZvcm1hdGlvbiBkZXRlY3RlZDogXCIgKyBtYXRjaGVkVGVybXMuVE9fU1RSSU5HKCkpXG59IEVMU0Uge1xuICAgIC8vIEFsbG93IHRoZSBjb25uZWN0aW9uIGlmIG5vIHNlbnNpdGl2ZSBpbmZvcm1hdGlvbiBpcyBkZXRlY3RlZFxuICAgIE1XRy5BbGxvdyhcIk5vIHNlbnNpdGl2ZSBpbmZvcm1hdGlvbiBkZXRlY3RlZFwiKVxufSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIi8vIERlZmluZSB0aGUgRExQIGNsYXNzaWZpY2F0aW9uIHNldHRpbmdcbk1XRy5ETFBDbGFzc2lmaWNhdGlvblNldHRpbmcgZGxwU2V0dGluZyA9IFtcIk15RExQQ2xhc3NpZmljYXRpb25TZXR0aW5nXCJdXG5cbi8vIERlZmluZSB0aGUgdGV4dCB0byBiZSBhbmFseXplZFxuU1RSSU5HIHRleHRUb0FuYWx5emUgPSBcIlRoaXMgaXMgYSBzYW1wbGUgdGV4dCBjb250YWluaW5nIHNlbnNpdGl2ZSBpbmZvcm1hdGlvbiBsaWtlIGNyZWRpdCBjYXJkIG51bWJlcnMgYW5kIHNvY2lhbCBzZWN1cml0eSBudW1iZXJzLlwiXG5cbi8vIEdldCB0aGUgbWF0Y2hlZCB0ZXJtc1xuVkVDVE9SPFNUUklORz4gbWF0Y2hlZFRlcm1zID0gTVdHLkRMUENsYXNzaWZpY2F0aW9uTWF0Y2hlZFRlcm1zKGRscFNldHRpbmcsIHRleHRUb0FuYWx5emUpXG5cbi8vIENoZWNrIGlmIHRoZXJlIGFyZSBhbnkgbWF0Y2hlZCB0ZXJtc1xuSUYgbWF0Y2hlZFRlcm1zLlNJWkUoKSA+IDAgVEhFTiB7XG4gICAgLy8gTWF0Y2hlZCBETFAgVGVybXM6IFwiICsgbWF0Y2hlZFRlcm1zLlRPX1NUUklORygpXG4gICAgLy8gQmxvY2sgdGhlIGNvbm5lY3Rpb24gd2l0aCBhIHJlYXNvblxuICAgIE1XRy5CbG9jayhcIlNlbnNpdGl2ZSBpbmZvcm1hdGlvbiBkZXRlY3RlZDogXCIgKyBtYXRjaGVkVGVybXMuVE9fU1RSSU5HKCkpXG59IEVMU0Uge1xuICAgIC8vIEFsbG93IHRoZSBjb25uZWN0aW9uIGlmIG5vIHNlbnNpdGl2ZSBpbmZvcm1hdGlvbiBpcyBkZXRlY3RlZFxuICAgIE1XRy5BbGxvdyhcIk5vIHNlbnNpdGl2ZSBpbmZvcm1hdGlvbiBkZXRlY3RlZFwiKVxufSJ9LCB7Im5hbWUiOiAiTVdHLkRMUENsYXNzaWZpY2F0aW9uTWF0Y2hlZFRlcm1zIChNV0cuSW50ZXJuYWxTZXR0aW5nKSIsICJyZXR1cm5fdHlwZSI6ICJWRUNUT1I8U1RSSU5HPiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIGEgdmVjdG9yIGNvbnRhaW5pbmcgdGVybXMgZnJvbSB0aGUgYm9keSB0ZXh0IHRoYXQgbWF0Y2ggdGhlIHNwZWNpZmllZCBjbGFzc2lmaWNhdGlvbi4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiTVdHLkludGVybmFsU2V0dGluZzogc3BlY2lmaWVzIGNvbmZpZ3VyYXRpb24gc2V0dGluZ3MuIiwgImRlc2NyaXB0aW9uIjogIkxvZ3M6IExpc3Qgb2YgdGVybXMgdGhhdCBtYXRjaCB0aGUgY2xhc3NpZmljYXRpb24gaW4gYm9keSB0ZXh0LiIsICJleGFtcGxlX2NvZGUiOiAiLy8gRGVmaW5lIHRoZSBETFAgY2xhc3NpZmljYXRpb24gc2V0dGluZ3Ncbk1XRy5ETFBDbGFzc2lmaWNhdGlvblNldHRpbmcgZGxwU2V0dGluZ3MgPSAuLi4gLy8gSW5pdGlhbGl6ZSB3aXRoIGFwcHJvcHJpYXRlIHNldHRpbmdzXG5cbi8vIERlZmluZSB0aGUgdGV4dCB0byBiZSBhbmFseXplZFxuU1RSSU5HIHRleHRUb0FuYWx5emUgPSBcIlRoaXMgaXMgYSBzYW1wbGUgdGV4dCBjb250YWluaW5nIHNlbnNpdGl2ZSBpbmZvcm1hdGlvbi5cIlxuXG4vLyBHZXQgdGhlIG1hdGNoZWQgdGVybXNcblZFQ1RPUjxTVFJJTkc+IG1hdGNoZWRUZXJtcyA9IE1XRy5ETFBDbGFzc2lmaWNhdGlvbk1hdGNoZWRUZXJtcyhkbHBTZXR0aW5ncywgdGV4dFRvQW5hbHl6ZSlcblxuLy8gTWF0Y2hlZCBUZXJtczogXCIgKyBtYXRjaGVkVGVybXMiLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICIvLyBEZWZpbmUgdGhlIERMUCBjbGFzc2lmaWNhdGlvbiBzZXR0aW5nc1xuTVdHLkRMUENsYXNzaWZpY2F0aW9uU2V0dGluZyBkbHBTZXR0aW5ncyA9IC4uLiAvLyBJbml0aWFsaXplIHdpdGggYXBwcm9wcmlhdGUgc2V0dGluZ3NcblxuLy8gRGVmaW5lIHRoZSB0ZXh0IHRvIGJlIGFuYWx5emVkXG5TVFJJTkcgdGV4dFRvQW5hbHl6ZSA9IFwiVGhpcyBpcyBhIHNhbXBsZSB0ZXh0IGNvbnRhaW5pbmcgc2Vuc2l0aXZlIGluZm9ybWF0aW9uLlwiXG5cbi8vIEdldCB0aGUgbWF0Y2hlZCB0ZXJtc1xuVkVDVE9SPFNUUklORz4gbWF0Y2hlZFRlcm1zID0gTVdHLkRMUENsYXNzaWZpY2F0aW9uTWF0Y2hlZFRlcm1zKGRscFNldHRpbmdzLCB0ZXh0VG9BbmFseXplKVxuXG4vLyBNYXRjaGVkIFRlcm1zOiBcIiArIG1hdGNoZWRUZXJtcyJ9LCB7Im5hbWUiOiAiTVdHLkRMUENsYXNzaWZpY2F0aW9uTWF0Y2hlcyAoTVdHLkRMUENsYXNzaWZpY2F0aW9uU2V0dGluZykiLCAicmV0dXJuX3R5cGUiOiAiQk9PTEVBTiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIGFgQk9PTEVBTmBpbmRpY2F0aW5nIHdoZXRoZXIgY2xhc3NpZmljYXRpb24gbWF0Y2hlcyB3ZXJlIGZvdW5kIGluIHRoZSBib2R5IHRleHQuIiwgInBhcmFtZXRlcl9kZXNjIjogIk1XRy5ETFBDbGFzc2lmaWNhdGlvblNldHRpbmc6IHRoZSBzZXR0aW5ncyB1c2VkIGZvciBkZXRlY3RpbmcgY2xhc3NpZmljYXRpb24gbWF0Y2hlcyBpbiB0aGUgYm9keSB0ZXh0LiIsICJkZXNjcmlwdGlvbiI6ICJTZWFyY2hlcyBmb3IgY2xhc3NpZmljYXRpb24gbWF0Y2hlcyBpbiBib2R5IHRleHQuIiwgImV4YW1wbGVfY29kZSI6ICJNV0cuRExQRGljdGlvbmFyeVNldHRpbmcgZGljdGlvbmFyeVNldHRpbmcgPSBbXCJTZW5zaXRpdmVEYXRhRGljdGlvbmFyeVwiXVxuU1RSSU5HIHRleHRUb0NoZWNrID0gXCJUaGlzIGlzIGEgc2FtcGxlIHRleHQgY29udGFpbmluZyBzZW5zaXRpdmUgaW5mb3JtYXRpb24uXCJcblxuSUYgTVdHLkRMUERpY3Rpb25hcnlNYXRjaGVzKGRpY3Rpb25hcnlTZXR0aW5nLCB0ZXh0VG9DaGVjaykgVEhFTiB7XG4gICAgTVdHLkJsb2NrKFwiU2Vuc2l0aXZlIGRhdGEgZGV0ZWN0ZWQgaW4gdGhlIHJlcXVlc3QuXCIpXG59IEVMU0Uge1xuICAgIE1XRy5BbGxvdyhcIk5vIHNlbnNpdGl2ZSBkYXRhIGZvdW5kLlwiKVxufSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIk1XRy5ETFBEaWN0aW9uYXJ5U2V0dGluZyBkaWN0aW9uYXJ5U2V0dGluZyA9IFtcIlNlbnNpdGl2ZURhdGFEaWN0aW9uYXJ5XCJdXG5TVFJJTkcgdGV4dFRvQ2hlY2sgPSBcIlRoaXMgaXMgYSBzYW1wbGUgdGV4dCBjb250YWluaW5nIHNlbnNpdGl2ZSBpbmZvcm1hdGlvbi5cIlxuXG5JRiBNV0cuRExQRGljdGlvbmFyeU1hdGNoZXMoZGljdGlvbmFyeVNldHRpbmcsIHRleHRUb0NoZWNrKSBUSEVOIHtcbiAgICBNV0cuQmxvY2soXCJTZW5zaXRpdmUgZGF0YSBkZXRlY3RlZCBpbiB0aGUgcmVxdWVzdC5cIilcbn0gRUxTRSB7XG4gICAgTVdHLkFsbG93KFwiTm8gc2Vuc2l0aXZlIGRhdGEgZm91bmQuXCIpXG59In0sIHsibmFtZSI6ICJNV0cuRExQQ2xhc3NpZmljYXRpb25NYXRjaGVzIChNV0cuRExQQ2xhc3NpZmljYXRpb25TZXR0aW5nLCBTVFJJTkcpIiwgInJldHVybl90eXBlIjogIkJPT0xFQU4iLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyB3aGV0aGVyIHRoZSBwcm92aWRlZCB0ZXh0IGNvbnRhaW5zIGFueSBjbGFzc2lmaWNhdGlvbiBtYXRjaGVzIGJhc2VkIG9uIHRoZSBzcGVjaWZpZWQgRExQIGNsYXNzaWZpY2F0aW9uIHNldHRpbmcuIiwgInBhcmFtZXRlcl9kZXNjIjogIk1XRy5ETFBDbGFzc2lmaWNhdGlvblNldHRpbmc6IFRoZSBjb25maWd1cmF0aW9uIHNldHRpbmdzIGZvciBkYXRhIGxvc3MgcHJldmVudGlvbiBjbGFzc2lmaWNhdGlvbi5TVFJJTkc6IFRoZSB0ZXh0IHRvIGJlIHNlYXJjaGVkIGZvciBjbGFzc2lmaWNhdGlvbiBtYXRjaGVzLiIsICJkZXNjcmlwdGlvbiI6ICJTZWFyY2hlcyBmb3IgY2xhc3NpZmljYXRpb24gbWF0Y2hlcyBpbiB0ZXh0LiIsICJleGFtcGxlX2NvZGUiOiAiTVdHLkRMUENsYXNzaWZpY2F0aW9uU2V0dGluZyBkbHBTZXR0aW5nID0gW1wiRExQX1NldHRpbmdfTmFtZVwiXVxuU1RSSU5HIGNsYXNzaWZpY2F0aW9uVG9DaGVjayA9IFwiQ29uZmlkZW50aWFsXCJcblxuSUYgTVdHLkRMUENsYXNzaWZpY2F0aW9uTWF0Y2hlcyhkbHBTZXR0aW5nLCBjbGFzc2lmaWNhdGlvblRvQ2hlY2spIFRIRU4ge1xuICAgIC8vIERMUCBjbGFzc2lmaWNhdGlvbiBtYXRjaGVzOiBDb25maWRlbnRpYWxcbiAgICBNV0cuQmxvY2soXCJBY2Nlc3MgdG8gY29uZmlkZW50aWFsIGluZm9ybWF0aW9uIGlzIG5vdCBhbGxvd2VkLlwiKVxufSBFTFNFIHtcbiAgICAvLyBETFAgY2xhc3NpZmljYXRpb24gZG9lcyBub3QgbWF0Y2g6IENvbmZpZGVudGlhbFxuICAgIE1XRy5BbGxvdyhcIkRMUCBjaGVjayBwYXNzZWRcIilcbn0iLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICJNV0cuRExQQ2xhc3NpZmljYXRpb25TZXR0aW5nIGRscFNldHRpbmcgPSBbXCJETFBfU2V0dGluZ19OYW1lXCJdXG5TVFJJTkcgY2xhc3NpZmljYXRpb25Ub0NoZWNrID0gXCJDb25maWRlbnRpYWxcIlxuXG5JRiBNV0cuRExQQ2xhc3NpZmljYXRpb25NYXRjaGVzKGRscFNldHRpbmcsIGNsYXNzaWZpY2F0aW9uVG9DaGVjaykgVEhFTiB7XG4gICAgLy8gRExQIGNsYXNzaWZpY2F0aW9uIG1hdGNoZXM6IENvbmZpZGVudGlhbFxuICAgIE1XRy5CbG9jayhcIkFjY2VzcyB0byBjb25maWRlbnRpYWwgaW5mb3JtYXRpb24gaXMgbm90IGFsbG93ZWQuXCIpXG59IEVMU0Uge1xuICAgIC8vIERMUCBjbGFzc2lmaWNhdGlvbiBkb2VzIG5vdCBtYXRjaDogQ29uZmlkZW50aWFsXG4gICAgTVdHLkFsbG93KFwiRExQIGNoZWNrIHBhc3NlZFwiKVxufSJ9LCB7Im5hbWUiOiAiTVdHLkRMUENsYXNzaWZpY2F0aW9uTWF0Y2hlcyAoTVdHLkludGVybmFsU2V0dGluZykiLCAicmV0dXJuX3R5cGUiOiAiQk9PTEVBTiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zYFRSVUVgaWYgY2xhc3NpZmljYXRpb24gbWF0Y2hlcyBhcmUgZm91bmQgaW4gdGhlIGJvZHkgdGV4dCwgb3RoZXJ3aXNlYEZBTFNFYCIsICJwYXJhbWV0ZXJfZGVzYyI6ICJNV0cuSW50ZXJuYWxTZXR0aW5nOiBjb25maWd1cmF0aW9uIHNldHRpbmdzIHVzZWQgZm9yIHNlYXJjaGluZyBjbGFzc2lmaWNhdGlvbiBtYXRjaGVzIGluIHRoZSBib2R5IHRleHQuIiwgImRlc2NyaXB0aW9uIjogIlNlYXJjaGVzIGZvciBjbGFzc2lmaWNhdGlvbiBtYXRjaGVzIGluIGJvZHkgdGV4dC4iLCAiZXhhbXBsZV9jb2RlIjogIk1XRy5ETFBEaWN0aW9uYXJ5U2V0dGluZyBkbHBTZXR0aW5nID0gW1wiU2Vuc2l0aXZlRGF0YURpY3Rpb25hcnlcIl1cblNUUklORyB0ZXh0VG9DaGVjayA9IFwiVGhpcyBpcyBhIHNhbXBsZSB0ZXh0IGNvbnRhaW5pbmcgc2Vuc2l0aXZlIGluZm9ybWF0aW9uLlwiXG5cbklGIE1XRy5ETFBEaWN0aW9uYXJ5TWF0Y2hlcyhkbHBTZXR0aW5nLCB0ZXh0VG9DaGVjaykgVEhFTiB7XG4gICAgLy8gRExQIG1hdGNoIGZvdW5kLiBCbG9ja2luZyB0aGUgcmVxdWVzdC5cbiAgICBNV0cuQmxvY2soXCJTZW5zaXRpdmUgZGF0YSBkZXRlY3RlZC5cIilcbn0gRUxTRSB7XG4gICAgLy8gTm8gRExQIG1hdGNoIGZvdW5kLiBBbGxvd2luZyB0aGUgcmVxdWVzdC5cbiAgICBNV0cuQWxsb3coXCJObyBzZW5zaXRpdmUgZGF0YSBkZXRlY3RlZC5cIilcbn0iLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICJNV0cuRExQRGljdGlvbmFyeVNldHRpbmcgZGxwU2V0dGluZyA9IFtcIlNlbnNpdGl2ZURhdGFEaWN0aW9uYXJ5XCJdXG5TVFJJTkcgdGV4dFRvQ2hlY2sgPSBcIlRoaXMgaXMgYSBzYW1wbGUgdGV4dCBjb250YWluaW5nIHNlbnNpdGl2ZSBpbmZvcm1hdGlvbi5cIlxuXG5JRiBNV0cuRExQRGljdGlvbmFyeU1hdGNoZXMoZGxwU2V0dGluZywgdGV4dFRvQ2hlY2spIFRIRU4ge1xuICAgIC8vIERMUCBtYXRjaCBmb3VuZC4gQmxvY2tpbmcgdGhlIHJlcXVlc3QuXG4gICAgTVdHLkJsb2NrKFwiU2Vuc2l0aXZlIGRhdGEgZGV0ZWN0ZWQuXCIpXG59IEVMU0Uge1xuICAgIC8vIE5vIERMUCBtYXRjaCBmb3VuZC4gQWxsb3dpbmcgdGhlIHJlcXVlc3QuXG4gICAgTVdHLkFsbG93KFwiTm8gc2Vuc2l0aXZlIGRhdGEgZGV0ZWN0ZWQuXCIpXG59In0sIHsibmFtZSI6ICJNV0cuRExQRGljdGlvbmFyeU1hdGNoZWRUZXJtcyAoTVdHLkRMUERpY3Rpb25hcnlTZXR0aW5nKSIsICJyZXR1cm5fdHlwZSI6ICJWRUNUT1I8U1RSSU5HPiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIGEgdmVjdG9yIG9mIHRlcm1zIHRoYXQgbWF0Y2ggdGhlIHNwZWNpZmllZCBkaWN0aW9uYXJ5IHdpdGhpbiB0aGUgYm9keSB0ZXh0LiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJNV0cuRExQRGljdGlvbmFyeVNldHRpbmc6IHNldHRpbmdzIHRvIHVzZSBmb3IgbWF0Y2hpbmcgdGVybXMgaW4gdGhlIGJvZHkgdGV4dC4iLCAiZGVzY3JpcHRpb24iOiAiTGlzdHMgdGVybXMgdGhhdCBtYXRjaCB0aGUgZGljdGlvbmFyeSBpbiBib2R5IHRleHQuIiwgImV4YW1wbGVfY29kZSI6ICJNV0cuRExQRGljdGlvbmFyeVNldHRpbmcgbXlETFBEaWN0aW9uYXJ5U2V0dGluZyA9IFtcIm15RExQRGljdGlvbmFyeVwiXVxuU1RSSU5HIHRleHRUb0NoZWNrID0gXCJUaGlzIGlzIGEgc2FtcGxlIHRleHQgdG8gY2hlY2sgYWdhaW5zdCB0aGUgRExQIGRpY3Rpb25hcnkuXCJcblxuVkVDVE9SPFNUUklORz4gbWF0Y2hlZFRlcm1zID0gTVdHLkRMUERpY3Rpb25hcnlNYXRjaGVkVGVybXMobXlETFBEaWN0aW9uYXJ5U2V0dGluZywgdGV4dFRvQ2hlY2spXG5cbklGIG1hdGNoZWRUZXJtcy5TSVpFKCkgPiAwIFRIRU4ge1xuICAgIC8vIE1hdGNoZWQgdGVybXMgZm91bmQ6IFwiICsgbWF0Y2hlZFRlcm1zLlRPX1NUUklORygpXG4gICAgTVdHLkJsb2NrKFwiRExQIHBvbGljeSB2aW9sYXRpb246IFNlbnNpdGl2ZSB0ZXJtcyBkZXRlY3RlZC5cIilcbn0gRUxTRSB7XG4gICAgLy8gTm8gbWF0Y2hlZCB0ZXJtcyBmb3VuZC5cbiAgICBNV0cuQWxsb3coXCJObyBETFAgcG9saWN5IHZpb2xhdGlvbi5cIilcbn0iLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICJNV0cuRExQRGljdGlvbmFyeVNldHRpbmcgbXlETFBEaWN0aW9uYXJ5U2V0dGluZyA9IFtcIm15RExQRGljdGlvbmFyeVwiXVxuU1RSSU5HIHRleHRUb0NoZWNrID0gXCJUaGlzIGlzIGEgc2FtcGxlIHRleHQgdG8gY2hlY2sgYWdhaW5zdCB0aGUgRExQIGRpY3Rpb25hcnkuXCJcblxuVkVDVE9SPFNUUklORz4gbWF0Y2hlZFRlcm1zID0gTVdHLkRMUERpY3Rpb25hcnlNYXRjaGVkVGVybXMobXlETFBEaWN0aW9uYXJ5U2V0dGluZywgdGV4dFRvQ2hlY2spXG5cbklGIG1hdGNoZWRUZXJtcy5TSVpFKCkgPiAwIFRIRU4ge1xuICAgIC8vIE1hdGNoZWQgdGVybXMgZm91bmQ6IFwiICsgbWF0Y2hlZFRlcm1zLlRPX1NUUklORygpXG4gICAgTVdHLkJsb2NrKFwiRExQIHBvbGljeSB2aW9sYXRpb246IFNlbnNpdGl2ZSB0ZXJtcyBkZXRlY3RlZC5cIilcbn0gRUxTRSB7XG4gICAgLy8gTm8gbWF0Y2hlZCB0ZXJtcyBmb3VuZC5cbiAgICBNV0cuQWxsb3coXCJObyBETFAgcG9saWN5IHZpb2xhdGlvbi5cIilcbn0ifSwgeyJuYW1lIjogIk1XRy5ETFBEaWN0aW9uYXJ5TWF0Y2hlZFRlcm1zIChNV0cuRExQRGljdGlvbmFyeVNldHRpbmcsIFNUUklORykiLCAicmV0dXJuX3R5cGUiOiAiVkVDVE9SPFNUUklORz4iLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyBhIHZlY3RvciBjb250YWluaW5nIHRlcm1zIGZyb20gdGhlIHRleHQgdGhhdCBtYXRjaCBlbnRyaWVzIGluIHRoZSBzcGVjaWZpZWQgZGljdGlvbmFyeSBzZXR0aW5nLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJNV0cuRExQRGljdGlvbmFyeVNldHRpbmc6IHRoZSBkaWN0aW9uYXJ5IHNldHRpbmdzIHRvIG1hdGNoIGFnYWluc3Q7IFNUUklORzogdGhlIHRleHQgdG8gc2VhcmNoLiIsICJkZXNjcmlwdGlvbiI6ICJMaXN0cyB0ZXJtcyB0aGF0IG1hdGNoIHRoZSBkaWN0aW9uYXJ5IGluIHRleHQuIiwgImV4YW1wbGVfY29kZSI6ICIvLyBEZWZpbmUgdGhlIERMUCBkaWN0aW9uYXJ5IHNldHRpbmdcbk1XRy5ETFBEaWN0aW9uYXJ5U2V0dGluZyBkaWN0aW9uYXJ5U2V0dGluZyA9IFtcIlNlbnNpdGl2ZVRlcm1zRGljdGlvbmFyeVwiXVxuXG4vLyBEZWZpbmUgdGhlIHRleHQgdG8gc2VhcmNoXG5TVFJJTkcgdGV4dFRvU2VhcmNoID0gXCJUaGlzIGlzIGEgc2FtcGxlIHRleHQgY29udGFpbmluZyBzZW5zaXRpdmUgaW5mb3JtYXRpb24uXCJcblxuLy8gR2V0IHRoZSBtYXRjaGVkIHRlcm1zXG5WRUNUT1I8U1RSSU5HPiBtYXRjaGVkVGVybXMgPSBNV0cuRExQRGljdGlvbmFyeU1hdGNoZWRUZXJtcyhkaWN0aW9uYXJ5U2V0dGluZywgdGV4dFRvU2VhcmNoKVxuXG4vLyBDaGVjayBpZiB0aGVyZSBhcmUgYW55IG1hdGNoZWQgdGVybXNcbklGIG1hdGNoZWRUZXJtcy5TSVpFKCkgPiAwIFRIRU4ge1xuICAgIC8vIEJsb2NrIHRoZSBjb25uZWN0aW9uIGlmIHNlbnNpdGl2ZSB0ZXJtcyBhcmUgZm91bmRcbiAgICBNV0cuQmxvY2soXCJTZW5zaXRpdmUgdGVybXMgZGV0ZWN0ZWQ6IFwiICsgbWF0Y2hlZFRlcm1zLlRPX1NUUklORygpKVxufSBFTFNFIHtcbiAgICAvLyBBbGxvdyB0aGUgY29ubmVjdGlvbiBpZiBubyBzZW5zaXRpdmUgdGVybXMgYXJlIGZvdW5kXG4gICAgTVdHLkFsbG93KFwiTm8gc2Vuc2l0aXZlIHRlcm1zIGRldGVjdGVkXCIpXG59IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiLy8gRGVmaW5lIHRoZSBETFAgZGljdGlvbmFyeSBzZXR0aW5nXG5NV0cuRExQRGljdGlvbmFyeVNldHRpbmcgZGljdGlvbmFyeVNldHRpbmcgPSBbXCJTZW5zaXRpdmVUZXJtc0RpY3Rpb25hcnlcIl1cblxuLy8gRGVmaW5lIHRoZSB0ZXh0IHRvIHNlYXJjaFxuU1RSSU5HIHRleHRUb1NlYXJjaCA9IFwiVGhpcyBpcyBhIHNhbXBsZSB0ZXh0IGNvbnRhaW5pbmcgc2Vuc2l0aXZlIGluZm9ybWF0aW9uLlwiXG5cbi8vIEdldCB0aGUgbWF0Y2hlZCB0ZXJtc1xuVkVDVE9SPFNUUklORz4gbWF0Y2hlZFRlcm1zID0gTVdHLkRMUERpY3Rpb25hcnlNYXRjaGVkVGVybXMoZGljdGlvbmFyeVNldHRpbmcsIHRleHRUb1NlYXJjaClcblxuLy8gQ2hlY2sgaWYgdGhlcmUgYXJlIGFueSBtYXRjaGVkIHRlcm1zXG5JRiBtYXRjaGVkVGVybXMuU0laRSgpID4gMCBUSEVOIHtcbiAgICAvLyBCbG9jayB0aGUgY29ubmVjdGlvbiBpZiBzZW5zaXRpdmUgdGVybXMgYXJlIGZvdW5kXG4gICAgTVdHLkJsb2NrKFwiU2Vuc2l0aXZlIHRlcm1zIGRldGVjdGVkOiBcIiArIG1hdGNoZWRUZXJtcy5UT19TVFJJTkcoKSlcbn0gRUxTRSB7XG4gICAgLy8gQWxsb3cgdGhlIGNvbm5lY3Rpb24gaWYgbm8gc2Vuc2l0aXZlIHRlcm1zIGFyZSBmb3VuZFxuICAgIE1XRy5BbGxvdyhcIk5vIHNlbnNpdGl2ZSB0ZXJtcyBkZXRlY3RlZFwiKVxufSJ9LCB7Im5hbWUiOiAiTVdHLkRMUERpY3Rpb25hcnlNYXRjaGVkVGVybXMgKE1XRy5JbnRlcm5hbFNldHRpbmcpIiwgInJldHVybl90eXBlIjogIlZFQ1RPUjxTVFJJTkc+IiwgInJldHVybl9kZXNjIjogIlJldHVybnMgYSB2ZWN0b3Igb2YgdGVybXMgZnJvbSB0aGUgYm9keSB0ZXh0IHRoYXQgbWF0Y2ggdGhlIGRpY3Rpb25hcnkgc3BlY2lmaWVkIGluIGBNV0cuSW50ZXJuYWxTZXR0aW5nYC4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiTVdHLkludGVybmFsU2V0dGluZzogY29uZmlndXJhdGlvbiBzZXR0aW5ncyBmb3IgZmlsdGVyaW5nIG9yIHByb2Nlc3NpbmcgdGhlIGJvZHkgdGV4dC4iLCAiZGVzY3JpcHRpb24iOiAiTG9nczogTGlzdHMgb2YgdGVybXMgdGhhdCBtYXRjaCB0aGUgZGljdGlvbmFyeSBpbiBib2R5IHRleHQuIiwgImV4YW1wbGVfY29kZSI6ICJNV0cuRExQRGljdGlvbmFyeVNldHRpbmcgZGljdGlvbmFyeVNldHRpbmcgPSBbXCJleGFtcGxlX2RpY3Rpb25hcnlcIl1cblNUUklORyB0ZXh0VG9TZWFyY2ggPSBcIlRoaXMgaXMgYSBzYW1wbGUgdGV4dCB0byBzZWFyY2ggZm9yIGRpY3Rpb25hcnkgdGVybXMuXCJcblxuVkVDVE9SPFNUUklORz4gbWF0Y2hlZFRlcm1zID0gTVdHLkRMUERpY3Rpb25hcnlNYXRjaGVkVGVybXMoZGljdGlvbmFyeVNldHRpbmcsIHRleHRUb1NlYXJjaClcblxuSUYgbWF0Y2hlZFRlcm1zLlNJWkUoKSA+IDAgVEhFTiB7XG4gICAgLy8gTWF0Y2hlZCB0ZXJtcyBmb3VuZDogXCIgKyBtYXRjaGVkVGVybXMuVE9fU1RSSU5HKClcbn0gRUxTRSB7XG4gICAgLy8gTm8gbWF0Y2hlZCB0ZXJtcyBmb3VuZC5cbn0iLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICJNV0cuRExQRGljdGlvbmFyeVNldHRpbmcgZGljdGlvbmFyeVNldHRpbmcgPSBbXCJleGFtcGxlX2RpY3Rpb25hcnlcIl1cblNUUklORyB0ZXh0VG9TZWFyY2ggPSBcIlRoaXMgaXMgYSBzYW1wbGUgdGV4dCB0byBzZWFyY2ggZm9yIGRpY3Rpb25hcnkgdGVybXMuXCJcblxuVkVDVE9SPFNUUklORz4gbWF0Y2hlZFRlcm1zID0gTVdHLkRMUERpY3Rpb25hcnlNYXRjaGVkVGVybXMoZGljdGlvbmFyeVNldHRpbmcsIHRleHRUb1NlYXJjaClcblxuSUYgbWF0Y2hlZFRlcm1zLlNJWkUoKSA+IDAgVEhFTiB7XG4gICAgLy8gTWF0Y2hlZCB0ZXJtcyBmb3VuZDogXCIgKyBtYXRjaGVkVGVybXMuVE9fU1RSSU5HKClcbn0gRUxTRSB7XG4gICAgLy8gTm8gbWF0Y2hlZCB0ZXJtcyBmb3VuZC5cbn0ifSwgeyJuYW1lIjogIk1XRy5ETFBEaWN0aW9uYXJ5TWF0Y2hlcyAoTVdHLkRMUERpY3Rpb25hcnlTZXR0aW5nKSIsICJyZXR1cm5fdHlwZSI6ICJCT09MRUFOIiwgInJldHVybl9kZXNjIjogIlJldHVybnNgVFJVRWBpZiBkaWN0aW9uYXJ5IG1hdGNoZXMgYXJlIGZvdW5kIGluIHRoZSBib2R5IHRleHQsIG90aGVyd2lzZWBGQUxTRWAiLCAicGFyYW1ldGVyX2Rlc2MiOiAiTVdHLkRMUERpY3Rpb25hcnlTZXR0aW5nOiBDb25maWd1cmF0aW9uIHNldHRpbmdzIGZvciB0aGUgZGljdGlvbmFyeSBhZ2FpbnN0IHdoaWNoIHRoZSBib2R5IHRleHQgd2lsbCBiZSBjaGVja2VkLiIsICJkZXNjcmlwdGlvbiI6ICJTZWFyY2hlcyBmb3IgZGljdGlvbmFyeSBtYXRjaGVzIGluIGJvZHkgdGV4dC4iLCAiZXhhbXBsZV9jb2RlIjogIk1XRy5ETFBEaWN0aW9uYXJ5U2V0dGluZyBkbHBTZXR0aW5nID0gW1wiU2Vuc2l0aXZlRGF0YURpY3Rpb25hcnlcIl1cblNUUklORyByZXF1ZXN0RGF0YSA9IFwiVGhpcyBpcyBzb21lIHNhbXBsZSB0ZXh0IHRvIGNoZWNrIGZvciBzZW5zaXRpdmUgZGF0YS5cIlxuXG5JRiBNV0cuRExQRGljdGlvbmFyeU1hdGNoZXMoZGxwU2V0dGluZywgcmVxdWVzdERhdGEpIFRIRU4ge1xuICAgIE1XRy5CbG9jayhcIlNlbnNpdGl2ZSBkYXRhIGRldGVjdGVkIGluIHRoZSByZXF1ZXN0LlwiKVxufSBFTFNFIHtcbiAgICBNV0cuQWxsb3coXCJObyBzZW5zaXRpdmUgZGF0YSBkZXRlY3RlZC5cIilcbn0iLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICJNV0cuRExQRGljdGlvbmFyeVNldHRpbmcgZGxwU2V0dGluZyA9IFtcIlNlbnNpdGl2ZURhdGFEaWN0aW9uYXJ5XCJdXG5TVFJJTkcgcmVxdWVzdERhdGEgPSBcIlRoaXMgaXMgc29tZSBzYW1wbGUgdGV4dCB0byBjaGVjayBmb3Igc2Vuc2l0aXZlIGRhdGEuXCJcblxuSUYgTVdHLkRMUERpY3Rpb25hcnlNYXRjaGVzKGRscFNldHRpbmcsIHJlcXVlc3REYXRhKSBUSEVOIHtcbiAgICBNV0cuQmxvY2soXCJTZW5zaXRpdmUgZGF0YSBkZXRlY3RlZCBpbiB0aGUgcmVxdWVzdC5cIilcbn0gRUxTRSB7XG4gICAgTVdHLkFsbG93KFwiTm8gc2Vuc2l0aXZlIGRhdGEgZGV0ZWN0ZWQuXCIpXG59In0sIHsibmFtZSI6ICJNV0cuRExQRGljdGlvbmFyeU1hdGNoZXMgKE1XRy5ETFBEaWN0aW9uYXJ5U2V0dGluZywgU1RSSU5HKSIsICJyZXR1cm5fdHlwZSI6ICJCT09MRUFOIiwgInJldHVybl9kZXNjIjogIlJldHVybnNgVFJVRWBpZiBkaWN0aW9uYXJ5IG1hdGNoZXMgYXJlIGZvdW5kIGluIHRoZSBwcm92aWRlZCB0ZXh0LCBvdGhlcndpc2VgRkFMU0VgIiwgInBhcmFtZXRlcl9kZXNjIjogIk1XRy5ETFBEaWN0aW9uYXJ5U2V0dGluZzogZGljdGlvbmFyeSBzZXR0aW5nczsgU1RSSU5HOiB0aGUgdGV4dCB0byBzZWFyY2guIiwgImRlc2NyaXB0aW9uIjogIlNlYXJjaGVzIGZvciBkaWN0aW9uYXJ5IG1hdGNoZXMgaW4gdGV4dC4iLCAiZXhhbXBsZV9jb2RlIjogIi8vIERlZmluZSB0aGUgRExQIGRpY3Rpb25hcnkgc2V0dGluZ1xuTVdHLkRMUERpY3Rpb25hcnlTZXR0aW5nIGRscERpY3Rpb25hcnkgPSBbXCJTZW5zaXRpdmVEYXRhRGljdGlvbmFyeVwiXVxuXG4vLyBEZWZpbmUgdGhlIHRleHQgdG8gc2VhcmNoXG5TVFJJTkcgdGV4dFRvU2VhcmNoID0gXCJUaGlzIGlzIGEgc2FtcGxlIHRleHQgY29udGFpbmluZyBzZW5zaXRpdmUgaW5mb3JtYXRpb24uXCJcblxuLy8gQ2hlY2sgZm9yIGRpY3Rpb25hcnkgbWF0Y2hlc1xuQk9PTEVBTiBoYXNNYXRjaGVzID0gTVdHLkRMUERpY3Rpb25hcnlNYXRjaGVzKGRscERpY3Rpb25hcnksIHRleHRUb1NlYXJjaClcblxuLy8gVGFrZSBhY3Rpb24gYmFzZWQgb24gdGhlIHJlc3VsdFxuSUYgaGFzTWF0Y2hlcyBUSEVOIHtcbiAgICBNV0cuQmxvY2soXCJTZW5zaXRpdmUgZGF0YSBkZXRlY3RlZCBpbiB0aGUgcmVxdWVzdC5cIilcbn0gRUxTRSB7XG4gICAgTVdHLkFsbG93KFwiTm8gc2Vuc2l0aXZlIGRhdGEgZGV0ZWN0ZWQuXCIpXG59IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiLy8gRGVmaW5lIHRoZSBETFAgZGljdGlvbmFyeSBzZXR0aW5nXG5NV0cuRExQRGljdGlvbmFyeVNldHRpbmcgZGxwRGljdGlvbmFyeSA9IFtcIlNlbnNpdGl2ZURhdGFEaWN0aW9uYXJ5XCJdXG5cbi8vIERlZmluZSB0aGUgdGV4dCB0byBzZWFyY2hcblNUUklORyB0ZXh0VG9TZWFyY2ggPSBcIlRoaXMgaXMgYSBzYW1wbGUgdGV4dCBjb250YWluaW5nIHNlbnNpdGl2ZSBpbmZvcm1hdGlvbi5cIlxuXG4vLyBDaGVjayBmb3IgZGljdGlvbmFyeSBtYXRjaGVzXG5CT09MRUFOIGhhc01hdGNoZXMgPSBNV0cuRExQRGljdGlvbmFyeU1hdGNoZXMoZGxwRGljdGlvbmFyeSwgdGV4dFRvU2VhcmNoKVxuXG4vLyBUYWtlIGFjdGlvbiBiYXNlZCBvbiB0aGUgcmVzdWx0XG5JRiBoYXNNYXRjaGVzIFRIRU4ge1xuICAgIE1XRy5CbG9jayhcIlNlbnNpdGl2ZSBkYXRhIGRldGVjdGVkIGluIHRoZSByZXF1ZXN0LlwiKVxufSBFTFNFIHtcbiAgICBNV0cuQWxsb3coXCJObyBzZW5zaXRpdmUgZGF0YSBkZXRlY3RlZC5cIilcbn0ifSwgeyJuYW1lIjogIk1XRy5ETFBEaWN0aW9uYXJ5TWF0Y2hlcyAoTVdHLkludGVybmFsU2V0dGluZykiLCAicmV0dXJuX3R5cGUiOiAiQk9PTEVBTiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIGFgQk9PTEVBTmBpbmRpY2F0aW5nIHdoZXRoZXIgYW55IGRpY3Rpb25hcnkgbWF0Y2hlcyB3ZXJlIGZvdW5kIGluIHRoZSBib2R5IHRleHQgYmFzZWQgb24gdGhlIGludGVybmFsIHNldHRpbmcuIiwgInBhcmFtZXRlcl9kZXNjIjogIk1XRy5JbnRlcm5hbFNldHRpbmc6IGNvbmZpZ3VyYXRpb24gc2V0dGluZ3MuIiwgImRlc2NyaXB0aW9uIjogIlNlYXJjaGVzIGZvciBkaWN0aW9uYXJ5IG1hdGNoZXMgaW4gYm9keSB0ZXh0LiIsICJleGFtcGxlX2NvZGUiOiAiTVdHLkRMUERpY3Rpb25hcnlTZXR0aW5nIGRpY3Rpb25hcnlTZXR0aW5nID0gW1wiU2Vuc2l0aXZlRGF0YURpY3Rpb25hcnlcIl1cblNUUklORyB0ZXh0VG9DaGVjayA9IFwiVGhpcyBpcyBhIHNhbXBsZSB0ZXh0IHRoYXQgbWlnaHQgY29udGFpbiBzZW5zaXRpdmUgZGF0YS5cIlxuXG5JRiBNV0cuRExQRGljdGlvbmFyeU1hdGNoZXMoZGljdGlvbmFyeVNldHRpbmcsIHRleHRUb0NoZWNrKSBUSEVOIHtcbiAgICBNV0cuQmxvY2soXCJTZW5zaXRpdmUgZGF0YSBkZXRlY3RlZCBpbiB0aGUgcmVxdWVzdC5cIilcbn0gRUxTRSB7XG4gICAgTVdHLkFsbG93KFwiTm8gc2Vuc2l0aXZlIGRhdGEgZm91bmQuXCIpXG59IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiTVdHLkRMUERpY3Rpb25hcnlTZXR0aW5nIGRpY3Rpb25hcnlTZXR0aW5nID0gW1wiU2Vuc2l0aXZlRGF0YURpY3Rpb25hcnlcIl1cblNUUklORyB0ZXh0VG9DaGVjayA9IFwiVGhpcyBpcyBhIHNhbXBsZSB0ZXh0IHRoYXQgbWlnaHQgY29udGFpbiBzZW5zaXRpdmUgZGF0YS5cIlxuXG5JRiBNV0cuRExQRGljdGlvbmFyeU1hdGNoZXMoZGljdGlvbmFyeVNldHRpbmcsIHRleHRUb0NoZWNrKSBUSEVOIHtcbiAgICBNV0cuQmxvY2soXCJTZW5zaXRpdmUgZGF0YSBkZXRlY3RlZCBpbiB0aGUgcmVxdWVzdC5cIilcbn0gRUxTRSB7XG4gICAgTVdHLkFsbG93KFwiTm8gc2Vuc2l0aXZlIGRhdGEgZm91bmQuXCIpXG59In0sIHsibmFtZSI6ICJNV0cuRE5TTG9va3VwSG9zdCAoU1RSSU5HKSIsICJyZXR1cm5fdHlwZSI6ICJWRUNUT1I8TmV0LklQPiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIGEgdmVjdG9yIGNvbnRhaW5pbmcgdGhlIEROUyByZWNvcmRzIGZvciB0aGUgc3BlY2lmaWVkIGhvc3QuIiwgInBhcmFtZXRlcl9kZXNjIjogIlNUUklORzogdGhlIGhvc3RuYW1lIiwgImRlc2NyaXB0aW9uIjogIlBlcmZvcm1zIGEgRE5TIGxvb2t1cCBmb3IgdGhlIGdpdmVuIGhvc3QuIiwgImV4YW1wbGVfY29kZSI6ICJTVFJJTkcgaG9zdCA9IFwiZXhhbXBsZS5jb21cIlxuU1RSSU5HIGlwQWRkcmVzcyA9IE1XRy5ETlNMb29rdXBIb3N0KGhvc3QpXG5cbi8vIFRoZSBJUCBhZGRyZXNzIGZvciBleGFtcGxlLmNvbSBpczogaXBBZGRyZXNzIiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiU1RSSU5HIGhvc3QgPSBcImV4YW1wbGUuY29tXCJcblNUUklORyBpcEFkZHJlc3MgPSBNV0cuRE5TTG9va3VwSG9zdChob3N0KVxuXG4vLyBUaGUgSVAgYWRkcmVzcyBmb3IgZXhhbXBsZS5jb20gaXM6IGlwQWRkcmVzcyJ9LCB7Im5hbWUiOiAiTVdHLkROU0xvb2t1cEhvc3RSZXZlcnNlIChOZXQuSVApIiwgInJldHVybl90eXBlIjogIlZFQ1RPUjxTVFJJTkc+IiwgInJldHVybl9kZXNjIjogIlJldHVybnMgYSB2ZWN0b3IgY29udGFpbmluZyB0aGUgZG9tYWluIG5hbWVzIGFzc29jaWF0ZWQgd2l0aCB0aGUgZ2l2ZW4gSVAgYWRkcmVzcy4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiTmV0LklQOiBUaGUgSVAgYWRkcmVzcyBmb3Igd2hpY2ggdGhlIHJldmVyc2UgRE5TIGxvb2t1cCBpcyB0byBiZSBwZXJmb3JtZWQuIiwgImRlc2NyaXB0aW9uIjogIlBlcmZvcm1zIHJldmVyc2UgRE5TIGxvb2t1cCBmb3IgZ2l2ZW4gSVAuIiwgImV4YW1wbGVfY29kZSI6ICIvLyBEZWZpbmUgdGhlIElQIGFkZHJlc3MgZm9yIHdoaWNoIHRvIHBlcmZvcm0gdGhlIHJldmVyc2UgRE5TIGxvb2t1cFxuTmV0LklQIGlwQWRkcmVzcyA9IFwiOC44LjguOFwiXG5cbi8vIFBlcmZvcm0gdGhlIHJldmVyc2UgRE5TIGxvb2t1cFxuVkVDVE9SPFNUUklORz4gZG9tYWluTmFtZXMgPSBNV0cuRE5TTG9va3VwSG9zdFJldmVyc2UoaXBBZGRyZXNzKVxuXG4vLyBSZXZlcnNlIEROUyBsb29rdXAgcmVzdWx0cyBmb3IgSVAgXG5GT1IgRUFDSCBkb21haW5OYW1lIElOIGRvbWFpbk5hbWVzIHtcbiAgICAvLyBkb21haW5OYW1lXG59IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiLy8gRGVmaW5lIHRoZSBJUCBhZGRyZXNzIGZvciB3aGljaCB0byBwZXJmb3JtIHRoZSByZXZlcnNlIEROUyBsb29rdXBcbk5ldC5JUCBpcEFkZHJlc3MgPSBcIjguOC44LjhcIlxuXG4vLyBQZXJmb3JtIHRoZSByZXZlcnNlIEROUyBsb29rdXBcblZFQ1RPUjxTVFJJTkc+IGRvbWFpbk5hbWVzID0gTVdHLkROU0xvb2t1cEhvc3RSZXZlcnNlKGlwQWRkcmVzcylcblxuLy8gUmV2ZXJzZSBETlMgbG9va3VwIHJlc3VsdHMgZm9yIElQIFxuRk9SIEVBQ0ggZG9tYWluTmFtZSBJTiBkb21haW5OYW1lcyB7XG4gICAgLy8gZG9tYWluTmFtZVxufSJ9LCB7Im5hbWUiOiAiTVdHLkRvbWFpbiAoTVdHLlVSTCkiLCAicmV0dXJuX3R5cGUiOiAiU1RSSU5HIiwgInJldHVybl9kZXNjIjogIlJldHVybnMgdGhlIGRvbWFpbiBuYW1lIGV4dHJhY3RlZCBmcm9tIHRoZSBnaXZlbiBVUkwuIiwgInBhcmFtZXRlcl9kZXNjIjogIk1XRy5VUkw6IFRoZSBVUkwgZnJvbSB3aGljaCB0aGUgZG9tYWluIG5lZWRzIHRvIGJlIGV4dHJhY3RlZC4iLCAiZGVzY3JpcHRpb24iOiAiUmV0dXJucyB0aGUgZG9tYWluIG9mIGEgcmVxdWVzdC4iLCAiZXhhbXBsZV9jb2RlIjogIk1XRy5VUkwgY3VycmVudFVybCA9IE1XRy5VcmwoKVxuU1RSSU5HIGRvbWFpblN1ZmZpeCA9IE1XRy5Eb21haW5TdWZmaXgoY3VycmVudFVybClcblxuLy8gVGhlIGRvbWFpbiBzdWZmaXggb2YgdGhlIGN1cnJlbnQgVVJMIGlzOiBkb21haW5TdWZmaXhcblxuSUYgZG9tYWluU3VmZml4ID09IFwiY29tXCIgVEhFTiB7XG4gICAgTVdHLkFsbG93KFwiQWxsb3dlZCAuY29tIGRvbWFpblwiKVxufSBFTFNFIHtcbiAgICBNV0cuQmxvY2soXCJCbG9ja2VkIG5vbi0uY29tIGRvbWFpblwiKVxufSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIk1XRy5VUkwgY3VycmVudFVybCA9IE1XRy5VcmwoKVxuU1RSSU5HIGRvbWFpblN1ZmZpeCA9IE1XRy5Eb21haW5TdWZmaXgoY3VycmVudFVybClcblxuLy8gVGhlIGRvbWFpbiBzdWZmaXggb2YgdGhlIGN1cnJlbnQgVVJMIGlzOiBkb21haW5TdWZmaXhcblxuSUYgZG9tYWluU3VmZml4ID09IFwiY29tXCIgVEhFTiB7XG4gICAgTVdHLkFsbG93KFwiQWxsb3dlZCAuY29tIGRvbWFpblwiKVxufSBFTFNFIHtcbiAgICBNV0cuQmxvY2soXCJCbG9ja2VkIG5vbi0uY29tIGRvbWFpblwiKVxufSJ9LCB7Im5hbWUiOiAiTVdHLkRvbWFpbiAoU1RSSU5HKSIsICJyZXR1cm5fdHlwZSI6ICJTVFJJTkciLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyB0aGUgZG9tYWluIG5hbWUgZXh0cmFjdGVkIGZyb20gdGhlIGdpdmVuIGhvc3Qgc3RyaW5nLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJTVFJJTkc6IFRoZSBob3N0IGZyb20gd2hpY2ggdG8gZXh0cmFjdCB0aGUgZG9tYWluLiIsICJkZXNjcmlwdGlvbiI6ICJSZXR1cm5zIHRoZSBkb21haW4gZm9yIHRoZSBnaXZlbiBob3N0LiIsICJleGFtcGxlX2NvZGUiOiAiTVdHLlVSTCBjdXJyZW50VXJsID0gTVdHLlVybCgpXG5TVFJJTkcgZG9tYWluID0gY3VycmVudFVybC5Eb21haW4oKVxuXG5JRiBkb21haW4gPT0gXCJleGFtcGxlLmNvbVwiIFRIRU4ge1xuICAgIC8vIEFjY2VzcyB0byBleGFtcGxlLmNvbSBpcyBub3QgYWxsb3dlZC5cbiAgICBNV0cuQmxvY2soKVxufSBFTFNFIHtcbiAgICAvLyBEb21haW4gaXMgYWxsb3dlZC5cbiAgICBNV0cuQWxsb3coKVxufSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIk1XRy5VUkwgY3VycmVudFVybCA9IE1XRy5VcmwoKVxuU1RSSU5HIGRvbWFpbiA9IGN1cnJlbnRVcmwuRG9tYWluKClcblxuSUYgZG9tYWluID09IFwiZXhhbXBsZS5jb21cIiBUSEVOIHtcbiAgICAvLyBBY2Nlc3MgdG8gZXhhbXBsZS5jb20gaXMgbm90IGFsbG93ZWQuXG4gICAgTVdHLkJsb2NrKClcbn0gRUxTRSB7XG4gICAgLy8gRG9tYWluIGlzIGFsbG93ZWQuXG4gICAgTVdHLkFsbG93KClcbn0ifSwgeyJuYW1lIjogIk1XRy5Eb21haW5TdWZmaXggKE1XRy5VUkwpIiwgInJldHVybl90eXBlIjogIlNUUklORyIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIHRoZSB0b3AtbGV2ZWwgZG9tYWluIChUTEQpIHBhcnQgb2YgYSBnaXZlbiBVUkwgYXMgYSBzdHJpbmcuIiwgInBhcmFtZXRlcl9kZXNjIjogIk1XRy5VUkw6IFRoZSBVUkwgZnJvbSB3aGljaCB0aGUgZG9tYWluIHN1ZmZpeCB3aWxsIGJlIGV4dHJhY3RlZC4iLCAiZGVzY3JpcHRpb24iOiAiUmV0dXJucyB0aGUgZG9tYWluIHN1ZmZpeCBvZiBhIHJlcXVlc3QuIiwgImV4YW1wbGVfY29kZSI6ICJNV0cuVVJMIGN1cnJlbnRVcmwgPSBNV0cuVXJsKClcblNUUklORyBkb21haW5TdWZmaXggPSBNV0cuRG9tYWluU3VmZml4KGN1cnJlbnRVcmwpXG4vLyBUaGUgZG9tYWluIHN1ZmZpeCBvZiB0aGUgY3VycmVudCBVUkwgaXM6IGRvbWFpblN1ZmZpeCIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIk1XRy5VUkwgY3VycmVudFVybCA9IE1XRy5VcmwoKVxuU1RSSU5HIGRvbWFpblN1ZmZpeCA9IE1XRy5Eb21haW5TdWZmaXgoY3VycmVudFVybClcbi8vIFRoZSBkb21haW4gc3VmZml4IG9mIHRoZSBjdXJyZW50IFVSTCBpczogZG9tYWluU3VmZml4In0sIHsibmFtZSI6ICJNV0cuRG9tYWluU3VmZml4IChTVFJJTkcpIiwgInJldHVybl90eXBlIjogIlNUUklORyIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIHRoZSB0b3AtbGV2ZWwgZG9tYWluIHN1ZmZpeCBvZiB0aGUgc3BlY2lmaWVkIGhvc3QgbmFtZS4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiU1RSSU5HOiB0aGUgaG9zdCBuYW1lLiIsICJkZXNjcmlwdGlvbiI6ICJSZXR1cm5zIHRoZSBkb21haW4gc3VmZml4IGZvciB0aGUgZ2l2ZW4gaG9zdC4iLCAiZXhhbXBsZV9jb2RlIjogIk1XRy5VUkwgY3VycmVudFVybCA9IE1XRy5VcmwoKVxuU1RSSU5HIGRvbWFpblN1ZmZpeCA9IE1XRy5Eb21haW5TdWZmaXgoY3VycmVudFVybClcbi8vIFRoZSBkb21haW4gc3VmZml4IGlzOiBkb21haW5TdWZmaXgiLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICJNV0cuVVJMIGN1cnJlbnRVcmwgPSBNV0cuVXJsKClcblNUUklORyBkb21haW5TdWZmaXggPSBNV0cuRG9tYWluU3VmZml4KGN1cnJlbnRVcmwpXG4vLyBUaGUgZG9tYWluIHN1ZmZpeCBpczogZG9tYWluU3VmZml4In0sIHsibmFtZSI6ICJNV0cuRW5kVXNlck1lc3NhZ2VDb2xsZWN0aW9uICgpIiwgInJldHVybl90eXBlIjogIlNUUklORyIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIHRoZSBuYW1lIG9mIHRoZSBjb2xsZWN0aW9uIGNvbnRhaW5pbmcgZXJyb3IgbWVzc2FnZXMgdGhhdCBpcyB2YWxpZCBhZnRlciBleGVjdXRpbmcgYSBibG9jayBhY3Rpb24uIiwgInBhcmFtZXRlcl9kZXNjIjogIk5vbmUiLCAiZGVzY3JpcHRpb24iOiAiUmV0dXJucyB0aGUgY29sbGVjdGlvbiBuYW1lIG9mIGVycm9yIG1lc3NhZ2VzLiBPbmx5IHZhbGlkIGFmdGVyIGEgYmxvY2sgYWN0aW9uIGlzIGV4ZWN1dGVkLiIsICJleGFtcGxlX2NvZGUiOiAiLy8gQ3JlYXRlIGEgbmV3IEVuZFVzZXJNZXNzYWdlQ29sbGVjdGlvbiBvYmplY3Rcbk1XRy5FbmRVc2VyTWVzc2FnZUNvbGxlY3Rpb24gbWVzc2FnZUNvbGxlY3Rpb24gPSBNV0cuRW5kVXNlck1lc3NhZ2VDb2xsZWN0aW9uKClcblxuLy8gQWRkIGEgbWVzc2FnZSB0byB0aGUgY29sbGVjdGlvblxubWVzc2FnZUNvbGxlY3Rpb24uQWRkTWVzc2FnZShcIlRoaXMgaXMgYSB0ZXN0IG1lc3NhZ2UgZm9yIHRoZSBlbmQgdXNlci5cIilcblxuLy8gQWRkIGFub3RoZXIgbWVzc2FnZSB0byB0aGUgY29sbGVjdGlvblxubWVzc2FnZUNvbGxlY3Rpb24uQWRkTWVzc2FnZShcIlBsZWFzZSBmb2xsb3cgdGhlIGluc3RydWN0aW9ucyBwcm92aWRlZC5cIilcblxuLy8gRGlzcGxheSB0aGUgbWVzc2FnZXMgdG8gdGhlIGVuZCB1c2VyXG5tZXNzYWdlQ29sbGVjdGlvbi5EaXNwbGF5KClcblxuLy8gT3B0aW9uYWxseSwgYmxvY2sgdGhlIGNvbm5lY3Rpb24gd2l0aCBhIGN1c3RvbSBtZXNzYWdlXG5NV0cuQmxvY2soXCJFbmQgdXNlciBtZXNzYWdlcyBoYXZlIGJlZW4gZGlzcGxheWVkLlwiKSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIi8vIENyZWF0ZSBhIG5ldyBFbmRVc2VyTWVzc2FnZUNvbGxlY3Rpb24gb2JqZWN0XG5NV0cuRW5kVXNlck1lc3NhZ2VDb2xsZWN0aW9uIG1lc3NhZ2VDb2xsZWN0aW9uID0gTVdHLkVuZFVzZXJNZXNzYWdlQ29sbGVjdGlvbigpXG5cbi8vIEFkZCBhIG1lc3NhZ2UgdG8gdGhlIGNvbGxlY3Rpb25cbm1lc3NhZ2VDb2xsZWN0aW9uLkFkZE1lc3NhZ2UoXCJUaGlzIGlzIGEgdGVzdCBtZXNzYWdlIGZvciB0aGUgZW5kIHVzZXIuXCIpXG5cbi8vIEFkZCBhbm90aGVyIG1lc3NhZ2UgdG8gdGhlIGNvbGxlY3Rpb25cbm1lc3NhZ2VDb2xsZWN0aW9uLkFkZE1lc3NhZ2UoXCJQbGVhc2UgZm9sbG93IHRoZSBpbnN0cnVjdGlvbnMgcHJvdmlkZWQuXCIpXG5cbi8vIERpc3BsYXkgdGhlIG1lc3NhZ2VzIHRvIHRoZSBlbmQgdXNlclxubWVzc2FnZUNvbGxlY3Rpb24uRGlzcGxheSgpXG5cbi8vIE9wdGlvbmFsbHksIGJsb2NrIHRoZSBjb25uZWN0aW9uIHdpdGggYSBjdXN0b20gbWVzc2FnZVxuTVdHLkJsb2NrKFwiRW5kIHVzZXIgbWVzc2FnZXMgaGF2ZSBiZWVuIGRpc3BsYXllZC5cIikifSwgeyJuYW1lIjogIk1XRy5FbmRVc2VyVVJMICgpIiwgInJldHVybl90eXBlIjogIlNUUklORyIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIGFuIGludGVybmFsIFVSTCBhcyBhIHN0cmluZyB0byBoYW5kbGUgZW5kIHVzZXIgcmVxdWVzdHMgc3VjaCBhcyBlcnJvciBtZXNzYWdlcy4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiTm9uZSIsICJkZXNjcmlwdGlvbiI6ICJQcm92aWRlcyBpbnRlcm5hbCBwYXRoIHRvIGFkZHJlc3MgZW5kIHVzZXIgcmVxdWVzdHMgKGkuZS4sIGVycm9yIG1lc3NhZ2VzKS4iLCAiZXhhbXBsZV9jb2RlIjogIk1XRy5VUkwgY3VycmVudFVybCA9IE1XRy5VcmwoKVxuLy8gVGhlIGN1cnJlbnQgVVJMIGlzOiArIGN1cnJlbnRVcmwiLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICJNV0cuVVJMIGN1cnJlbnRVcmwgPSBNV0cuVXJsKClcbi8vIFRoZSBjdXJyZW50IFVSTCBpczogKyBjdXJyZW50VXJsIn0sIHsibmFtZSI6ICJNV0cuRW5kVXNlclVSTEdsb2JhbFJlc291cmNlICgpIiwgInJldHVybl90eXBlIjogIlNUUklORyIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIHRoZSBpbnRlcm5hbCBwYXRoIGZvciBnbG9iYWwgcmVzb3VyY2VzIGFzIGEgc3RyaW5nIHRvIGFkZHJlc3MgZW5kLXVzZXIgcmVxdWVzdHMsIHN1Y2ggYXMgZXJyb3IgbWVzc2FnZXMuIiwgInBhcmFtZXRlcl9kZXNjIjogIk5vbmUiLCAiZGVzY3JpcHRpb24iOiAiUHJvdmlkZXMgaW50ZXJuYWwgcGF0aCB0byBhZGRyZXNzIGVuZCB1c2VyIHJlcXVlc3RzIChpLmUuLCBlcnJvciBtZXNzYWdlcyksIGJ1dCBhbHdheXMgdG8gZ2xvYmFsIHJlc291cmNlcy4iLCAiZXhhbXBsZV9jb2RlIjogIi8vIFJldHJpZXZlIHRoZSBVUkwgb2YgdGhlIGdsb2JhbCByZXNvdXJjZSBmb3IgdGhlIGVuZCB1c2VyXG5NV0cuVVJMIGVuZFVzZXJSZXNvdXJjZVVSTCA9IE1XRy5FbmRVc2VyVVJMR2xvYmFsUmVzb3VyY2UoKVxuXG4vLyBFbmQgVXNlciBHbG9iYWwgUmVzb3VyY2UgVVJMOiBcIiArIGVuZFVzZXJSZXNvdXJjZVVSTFxuXG4vLyBFeGFtcGxlIGNvbmRpdGlvbiB0byBibG9jayBhY2Nlc3MgYmFzZWQgb24gdGhlIFVSTFxuSUYgZW5kVXNlclJlc291cmNlVVJMID09IFwiaHR0cDovL2V4YW1wbGUuY29tL3Jlc3RyaWN0ZWRcIiBUSEVOIHtcbiAgICBNV0cuQmxvY2soXCJBY2Nlc3MgdG8gdGhpcyByZXNvdXJjZSBpcyByZXN0cmljdGVkLlwiKVxufSBFTFNFIHtcbiAgICBNV0cuQWxsb3coXCJBY2Nlc3MgZ3JhbnRlZCB0byB0aGUgcmVzb3VyY2UuXCIpXG59IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiLy8gUmV0cmlldmUgdGhlIFVSTCBvZiB0aGUgZ2xvYmFsIHJlc291cmNlIGZvciB0aGUgZW5kIHVzZXJcbk1XRy5VUkwgZW5kVXNlclJlc291cmNlVVJMID0gTVdHLkVuZFVzZXJVUkxHbG9iYWxSZXNvdXJjZSgpXG5cbi8vIEVuZCBVc2VyIEdsb2JhbCBSZXNvdXJjZSBVUkw6IFwiICsgZW5kVXNlclJlc291cmNlVVJMXG5cbi8vIEV4YW1wbGUgY29uZGl0aW9uIHRvIGJsb2NrIGFjY2VzcyBiYXNlZCBvbiB0aGUgVVJMXG5JRiBlbmRVc2VyUmVzb3VyY2VVUkwgPT0gXCJodHRwOi8vZXhhbXBsZS5jb20vcmVzdHJpY3RlZFwiIFRIRU4ge1xuICAgIE1XRy5CbG9jayhcIkFjY2VzcyB0byB0aGlzIHJlc291cmNlIGlzIHJlc3RyaWN0ZWQuXCIpXG59IEVMU0Uge1xuICAgIE1XRy5BbGxvdyhcIkFjY2VzcyBncmFudGVkIHRvIHRoZSByZXNvdXJjZS5cIilcbn0ifSwgeyJuYW1lIjogIk1XRy5FeHRlcm5hbERhdGFMYXN0Q29uZmlnICgpIiwgInJldHVybl90eXBlIjogIlNUUklORyIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIHRoZSBuYW1lIG9mIHRoZSBjb25maWd1cmF0aW9uIHVzZWQgZm9yIHRoZSBtb3N0IHJlY2VudCBxdWVyeSB0byBhbiBleHRlcm5hbCBkYXRhIHNvdXJjZS4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiTm9uZSIsICJkZXNjcmlwdGlvbiI6ICJSZXR1cm5zIHRoZSBjb25maWd1cmF0aW9uIG5hbWUgb2YgdGhlIGxhc3QgcXVlcmllZCBleHRlcm5hbCBkYXRhIHNvdXJjZS4iLCAiZXhhbXBsZV9jb2RlIjogIlNUUklORyBsYXN0Q29uZmlnID0gTVdHLkV4dGVybmFsRGF0YUxhc3RDb25maWcoKVxuLy8gVGhlIGxhc3QgZXh0ZXJuYWwgZGF0YSBjb25maWd1cmF0aW9uIHVzZWQgd2FzOiBcIiArIGxhc3RDb25maWdcblxuSUYgbGFzdENvbmZpZyA9PSBcIlNwZWNpZmljQ29uZmlnTmFtZVwiIFRIRU4ge1xuICAgIE1XRy5BbGxvdyhcIkFsbG93ZWQgYmFzZWQgb24gc3BlY2lmaWMgZXh0ZXJuYWwgZGF0YSBjb25maWd1cmF0aW9uXCIpXG59IEVMU0Uge1xuICAgIE1XRy5CbG9jayhcIkJsb2NrZWQgYmVjYXVzZSB0aGUgZXh0ZXJuYWwgZGF0YSBjb25maWd1cmF0aW9uIGRpZCBub3QgbWF0Y2hcIilcbn0iLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICJTVFJJTkcgbGFzdENvbmZpZyA9IE1XRy5FeHRlcm5hbERhdGFMYXN0Q29uZmlnKClcbi8vIFRoZSBsYXN0IGV4dGVybmFsIGRhdGEgY29uZmlndXJhdGlvbiB1c2VkIHdhczogXCIgKyBsYXN0Q29uZmlnXG5cbklGIGxhc3RDb25maWcgPT0gXCJTcGVjaWZpY0NvbmZpZ05hbWVcIiBUSEVOIHtcbiAgICBNV0cuQWxsb3coXCJBbGxvd2VkIGJhc2VkIG9uIHNwZWNpZmljIGV4dGVybmFsIGRhdGEgY29uZmlndXJhdGlvblwiKVxufSBFTFNFIHtcbiAgICBNV0cuQmxvY2soXCJCbG9ja2VkIGJlY2F1c2UgdGhlIGV4dGVybmFsIGRhdGEgY29uZmlndXJhdGlvbiBkaWQgbm90IG1hdGNoXCIpXG59In0sIHsibmFtZSI6ICJNV0cuRmlsZUV4dGVuc2lvbiAoTVdHLlVSTCkiLCAicmV0dXJuX3R5cGUiOiAiU1RSSU5HIiwgInJldHVybl9kZXNjIjogIlJldHVybnMgdGhlIGZpbGUgZXh0ZW5zaW9uIHBvcnRpb24gb2YgdGhlIHByb3ZpZGVkIFVSTCBhcyBhIHN0cmluZy4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiTVdHLlVSTDogQSBTVFJJTkcgcmVwcmVzZW50aW5nIHRoZSBVUkwgZnJvbSB3aGljaCB0byBleHRyYWN0IHRoZSBmaWxlIGV4dGVuc2lvbi4iLCAiZGVzY3JpcHRpb24iOiAiUmV0dXJucyB0aGUgZmlsZSBleHRlbnNpb24gb2YgYSBVUkwuIiwgImV4YW1wbGVfY29kZSI6ICIvLyBSZXRyaWV2ZSB0aGUgY3VycmVudCBVUkxcbk1XRy5VUkwgY3VycmVudFVybCA9IE1XRy5VcmwoKVxuXG4vLyBHZXQgdGhlIGZpbGUgZXh0ZW5zaW9uIGZyb20gdGhlIFVSTFxuU1RSSU5HIGZpbGVFeHRlbnNpb24gPSBNV0cuRmlsZUV4dGVuc2lvbihjdXJyZW50VXJsKVxuXG4vLyBDaGVjayBpZiB0aGUgZmlsZSBleHRlbnNpb24gaXMgXCJleGVcIlxuSUYgZmlsZUV4dGVuc2lvbiA9PSBcImV4ZVwiIFRIRU4ge1xuICAgIC8vIEJsb2NrIHRoZSByZXF1ZXN0IGlmIHRoZSBmaWxlIGV4dGVuc2lvbiBpcyBcImV4ZVwiXG4gICAgTVdHLkJsb2NrKFwiRXhlY3V0YWJsZSBmaWxlcyBhcmUgbm90IGFsbG93ZWRcIilcbn0gRUxTRSB7XG4gICAgLy8gQWxsb3cgdGhlIHJlcXVlc3QgaWYgdGhlIGZpbGUgZXh0ZW5zaW9uIGlzIG5vdCBcImV4ZVwiXG4gICAgTVdHLkFsbG93KFwiRmlsZSBleHRlbnNpb24gY2hlY2sgcGFzc2VkXCIpXG59IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiLy8gUmV0cmlldmUgdGhlIGN1cnJlbnQgVVJMXG5NV0cuVVJMIGN1cnJlbnRVcmwgPSBNV0cuVXJsKClcblxuLy8gR2V0IHRoZSBmaWxlIGV4dGVuc2lvbiBmcm9tIHRoZSBVUkxcblNUUklORyBmaWxlRXh0ZW5zaW9uID0gTVdHLkZpbGVFeHRlbnNpb24oY3VycmVudFVybClcblxuLy8gQ2hlY2sgaWYgdGhlIGZpbGUgZXh0ZW5zaW9uIGlzIFwiZXhlXCJcbklGIGZpbGVFeHRlbnNpb24gPT0gXCJleGVcIiBUSEVOIHtcbiAgICAvLyBCbG9jayB0aGUgcmVxdWVzdCBpZiB0aGUgZmlsZSBleHRlbnNpb24gaXMgXCJleGVcIlxuICAgIE1XRy5CbG9jayhcIkV4ZWN1dGFibGUgZmlsZXMgYXJlIG5vdCBhbGxvd2VkXCIpXG59IEVMU0Uge1xuICAgIC8vIEFsbG93IHRoZSByZXF1ZXN0IGlmIHRoZSBmaWxlIGV4dGVuc2lvbiBpcyBub3QgXCJleGVcIlxuICAgIE1XRy5BbGxvdyhcIkZpbGUgZXh0ZW5zaW9uIGNoZWNrIHBhc3NlZFwiKVxufSJ9LCB7Im5hbWUiOiAiTVdHLkZpbGVOYW1lIChNV0cuVVJMKSIsICJyZXR1cm5fdHlwZSI6ICJTVFJJTkciLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyB0aGUgZmlsZSBuYW1lIGV4dHJhY3RlZCBmcm9tIHRoZSBnaXZlbiBVUkwgYXMgYSBzdHJpbmcuIiwgInBhcmFtZXRlcl9kZXNjIjogIk1XRy5VUkw6IFRoZSBmdWxsIFVSTCBmcm9tIHdoaWNoIHRvIGV4dHJhY3QgdGhlIGZpbGUgbmFtZS4iLCAiZGVzY3JpcHRpb24iOiAiUmV0dXJucyB0aGUgZmlsZSBuYW1lIG9mIGEgVVJMLiIsICJleGFtcGxlX2NvZGUiOiAiTVdHLlVSTCBjdXJyZW50VXJsID0gTVdHLlVybCgpXG4vLyBDdXJyZW50IFVSTDogKyBjdXJyZW50VXJsIiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiTVdHLlVSTCBjdXJyZW50VXJsID0gTVdHLlVybCgpXG4vLyBDdXJyZW50IFVSTDogKyBjdXJyZW50VXJsIn0sIHsibmFtZSI6ICJNV0cuRmlyc3RTZW50Rmlyc3RSZWNlaXZlZENsaWVudCAoKSIsICJyZXR1cm5fdHlwZSI6ICJOVU1CRVIiLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyB0aGUgZHVyYXRpb24gYmV0d2VlbiB0aGUgZmlyc3QgYnl0ZSByZWNlaXZlZCBmcm9tIHRoZSBjbGllbnQgYW5kIHdoZW4gdGhhdCBmaXJzdCBieXRlIHdhcyBzZW50IGJhY2suIiwgInBhcmFtZXRlcl9kZXNjIjogIk5vbmUiLCAiZGVzY3JpcHRpb24iOiAiUmV0dXJucyB0aGUgZHVyYXRpb24gYmV0d2VlbiB0aGUgZmlyc3QgYnl0ZSByZWNlaXZlZCBmcm9tIHRoZSBjbGllbnQgYW5kIHdoZW4gdGhhdCBmaXJzdCBieXRlIHdhcyBzZW50IGJhY2suIiwgImV4YW1wbGVfY29kZSI6ICIvLyBDYWxsIHRoZSBNV0cuRmlyc3RTZW50Rmlyc3RSZWNlaXZlZENsaWVudCgpIGZ1bmN0aW9uXG5CT09MRUFOIHJlc3VsdCA9IE1XRy5GaXJzdFNlbnRGaXJzdFJlY2VpdmVkQ2xpZW50KClcblxuLy8gQ2hlY2sgdGhlIHJlc3VsdCBhbmQgdGFrZSBhY3Rpb24gYmFzZWQgb24gaXRcbklGIHJlc3VsdCBUSEVOIHtcbiAgICAvLyBGaXJzdCBzZW50IGZpcnN0IHJlY2VpdmVkIGNsaWVudCBkZXRlY3RlZC5cbiAgICAvLyBBZGRpdGlvbmFsIGFjdGlvbnMgY2FuIGJlIHRha2VuIGhlcmVcbn0gRUxTRSB7XG4gICAgLy8gRmlyc3Qgc2VudCBmaXJzdCByZWNlaXZlZCBjbGllbnQgbm90IGRldGVjdGVkLlxuICAgIC8vIEFkZGl0aW9uYWwgYWN0aW9ucyBjYW4gYmUgdGFrZW4gaGVyZVxufSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIi8vIENhbGwgdGhlIE1XRy5GaXJzdFNlbnRGaXJzdFJlY2VpdmVkQ2xpZW50KCkgZnVuY3Rpb25cbkJPT0xFQU4gcmVzdWx0ID0gTVdHLkZpcnN0U2VudEZpcnN0UmVjZWl2ZWRDbGllbnQoKVxuXG4vLyBDaGVjayB0aGUgcmVzdWx0IGFuZCB0YWtlIGFjdGlvbiBiYXNlZCBvbiBpdFxuSUYgcmVzdWx0IFRIRU4ge1xuICAgIC8vIEZpcnN0IHNlbnQgZmlyc3QgcmVjZWl2ZWQgY2xpZW50IGRldGVjdGVkLlxuICAgIC8vIEFkZGl0aW9uYWwgYWN0aW9ucyBjYW4gYmUgdGFrZW4gaGVyZVxufSBFTFNFIHtcbiAgICAvLyBGaXJzdCBzZW50IGZpcnN0IHJlY2VpdmVkIGNsaWVudCBub3QgZGV0ZWN0ZWQuXG4gICAgLy8gQWRkaXRpb25hbCBhY3Rpb25zIGNhbiBiZSB0YWtlbiBoZXJlXG59In0sIHsibmFtZSI6ICJNV0cuRmlyc3RTZW50Rmlyc3RSZWNlaXZlZFNlcnZlciAoKSIsICJyZXR1cm5fdHlwZSI6ICJOVU1CRVIiLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyB0aGUgZHVyYXRpb24gYmV0d2VlbiB0aGUgZmlyc3QgYnl0ZSBzZW50IHRvIHRoZSBzZXJ2ZXIgYW5kIHdoZW4gdGhhdCBmaXJzdCBieXRlIHdhcyBhY3R1YWxseSByZWNlaXZlZC4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiTm9uZSIsICJkZXNjcmlwdGlvbiI6ICJSZXR1cm5zIHRoZSBkdXJhdGlvbiBiZXR3ZWVuIHRoZSBmaXJzdCBieXRlIHNlbnQgdG8gdGhlIHNlcnZlciBhbmQgd2hlbiB0aGF0IGZpcnN0IGJ5dGUgd2FzIGFjdHVhbGx5IHJlY2VpdmVkLiIsICJleGFtcGxlX2NvZGUiOiAiLy8gR2V0IHRoZSBkdXJhdGlvbiBiZXR3ZWVuIHRoZSBmaXJzdCBieXRlIHNlbnQgdG8gdGhlIHNlcnZlciBhbmQgd2hlbiBpdCB3YXMgcmVjZWl2ZWRcbk5VTUJFUiByZXNwb25zZVRpbWUgPSBNV0cuRmlyc3RTZW50Rmlyc3RSZWNlaXZlZFNlcnZlcigpXG5cbi8vIFNlcnZlciByZXNwb25zZSB0aW1lIChmaXJzdCBieXRlIHNlbnQgdG8gZmlyc3QgYnl0ZSByZWNlaXZlZCk6IFwiICsgcmVzcG9uc2VUaW1lXG5cbi8vIEltcGxlbWVudCBsb2dpYyBiYXNlZCBvbiB0aGUgcmVzcG9uc2UgdGltZVxuSUYgcmVzcG9uc2VUaW1lID4gMTAwMCBUSEVOIHtcbiAgICAvLyBJZiB0aGUgcmVzcG9uc2UgdGltZSBpcyBncmVhdGVyIHRoYW4gMTAwMCBtaWxsaXNlY29uZHMsIGJsb2NrIHRoZSBjb25uZWN0aW9uXG4gICAgTVdHLkJsb2NrKFwiU2VydmVyIHJlc3BvbnNlIHRpbWUgdG9vIGhpZ2g6IFwiICsgcmVzcG9uc2VUaW1lICsgXCIgbXNcIilcbn0gRUxTRSB7XG4gICAgLy8gT3RoZXJ3aXNlLCBhbGxvdyB0aGUgY29ubmVjdGlvblxuICAgIE1XRy5BbGxvdyhcIlNlcnZlciByZXNwb25zZSB0aW1lIGFjY2VwdGFibGU6IFwiICsgcmVzcG9uc2VUaW1lICsgXCIgbXNcIilcbn0iLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICIvLyBHZXQgdGhlIGR1cmF0aW9uIGJldHdlZW4gdGhlIGZpcnN0IGJ5dGUgc2VudCB0byB0aGUgc2VydmVyIGFuZCB3aGVuIGl0IHdhcyByZWNlaXZlZFxuTlVNQkVSIHJlc3BvbnNlVGltZSA9IE1XRy5GaXJzdFNlbnRGaXJzdFJlY2VpdmVkU2VydmVyKClcblxuLy8gU2VydmVyIHJlc3BvbnNlIHRpbWUgKGZpcnN0IGJ5dGUgc2VudCB0byBmaXJzdCBieXRlIHJlY2VpdmVkKTogXCIgKyByZXNwb25zZVRpbWVcblxuLy8gSW1wbGVtZW50IGxvZ2ljIGJhc2VkIG9uIHRoZSByZXNwb25zZSB0aW1lXG5JRiByZXNwb25zZVRpbWUgPiAxMDAwIFRIRU4ge1xuICAgIC8vIElmIHRoZSByZXNwb25zZSB0aW1lIGlzIGdyZWF0ZXIgdGhhbiAxMDAwIG1pbGxpc2Vjb25kcywgYmxvY2sgdGhlIGNvbm5lY3Rpb25cbiAgICBNV0cuQmxvY2soXCJTZXJ2ZXIgcmVzcG9uc2UgdGltZSB0b28gaGlnaDogXCIgKyByZXNwb25zZVRpbWUgKyBcIiBtc1wiKVxufSBFTFNFIHtcbiAgICAvLyBPdGhlcndpc2UsIGFsbG93IHRoZSBjb25uZWN0aW9uXG4gICAgTVdHLkFsbG93KFwiU2VydmVyIHJlc3BvbnNlIHRpbWUgYWNjZXB0YWJsZTogXCIgKyByZXNwb25zZVRpbWUgKyBcIiBtc1wiKVxufSJ9LCB7Im5hbWUiOiAiTVdHLkdldCAoTVdHLkhlYWRlck1hcCwgU1RSSU5HKSIsICJyZXR1cm5fdHlwZSI6ICJTVFJJTkciLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyB0aGUgdmFsdWUgb2YgYSBzcGVjaWZpZWQgaGVhZGVyIGZyb20gYE1XRy5IZWFkZXJNYXAgYGFzIGEgc3RyaW5nLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJNV0cuSGVhZGVyTWFwOiB0aGUgbWFwIG9mIGhlYWRlcnMgdG8gcmV0cmlldmUgZnJvbTsgU1RSSU5HOiB0aGUgbmFtZSBvZiB0aGUgaGVhZGVyIHRvIHJldHJpZXZlIHRoZSB2YWx1ZSBmb3IuIiwgImRlc2NyaXB0aW9uIjogIlJldHVybnMgYSBzaW5nbGUgaGVhZGVyIHZhbHVlLiIsICJleGFtcGxlX2NvZGUiOiAiTVdHLkhlYWRlck1hcCBoZWFkZXJzID0gTVdHLkdldFJlcXVlc3RIZWFkZXJzKClcblNUUklORyB1c2VyQWdlbnQgPSBNV0cuR2V0KGhlYWRlcnMsIFwiVXNlci1BZ2VudFwiKVxuLy8gVXNlci1BZ2VudDogXCIgKyB1c2VyQWdlbnQiLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICJNV0cuSGVhZGVyTWFwIGhlYWRlcnMgPSBNV0cuR2V0UmVxdWVzdEhlYWRlcnMoKVxuU1RSSU5HIHVzZXJBZ2VudCA9IE1XRy5HZXQoaGVhZGVycywgXCJVc2VyLUFnZW50XCIpXG4vLyBVc2VyLUFnZW50OiBcIiArIHVzZXJBZ2VudCJ9LCB7Im5hbWUiOiAiTVdHLkdldEFsbCAoTVdHLkhlYWRlck1hcCwgU1RSSU5HKSIsICJyZXR1cm5fdHlwZSI6ICJWRUNUT1I8U1RSSU5HPiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIGEgdmVjdG9yIGNvbnRhaW5pbmcgYWxsIHZhbHVlcyBhc3NvY2lhdGVkIHdpdGggdGhlIHNwZWNpZmllZCBoZWFkZXIgbmFtZSBpbiB0aGUgaGVhZGVyIG1hcC4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiTVdHLkhlYWRlck1hcDogdGhlIG1hcCBvZiBoZWFkZXJzIHRvIHJldHJpZXZlIGZyb207IFNUUklORzogdGhlIG5hbWUgb2YgdGhlIGhlYWRlciB0byByZXRyaWV2ZSB0aGUgdmFsdWUgZm9yLiIsICJkZXNjcmlwdGlvbiI6ICIiLCAiZXhhbXBsZV9jb2RlIjogIi8vIEFzc3VtZSBoZWFkZXJzIGlzIGFuIE1XRy5IZWFkZXJNYXAgb2JqZWN0IGNvbnRhaW5pbmcgdGhlIHJlcXVlc3QgaGVhZGVyc1xuTVdHLkhlYWRlck1hcCBoZWFkZXJzID0gLi4uIC8vIFRoaXMgd291bGQgYmUgaW5pdGlhbGl6ZWQgd2l0aCB0aGUgYWN0dWFsIGhlYWRlciBtYXBcblxuLy8gUmV0cmlldmUgYWxsIHZhbHVlcyBmb3IgdGhlIFwiVXNlci1BZ2VudFwiIGhlYWRlclxuVkVDVE9SPFNUUklORz4gdXNlckFnZW50VmFsdWVzID0gTVdHLkdldEFsbChoZWFkZXJzLCBcIlVzZXItQWdlbnRcIilcblxuLy8gUHJpbnQgYWxsIFVzZXItQWdlbnQgdmFsdWVzIHRvIHRoZSBjb25zb2xlXG5GT1IgRUFDSCB2YWx1ZSBJTiB1c2VyQWdlbnRWYWx1ZXMge1xuICAgIC8vIFVzZXItQWdlbnQ6IFwiICsgdmFsdWVcbn0iLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICIvLyBBc3N1bWUgaGVhZGVycyBpcyBhbiBNV0cuSGVhZGVyTWFwIG9iamVjdCBjb250YWluaW5nIHRoZSByZXF1ZXN0IGhlYWRlcnNcbk1XRy5IZWFkZXJNYXAgaGVhZGVycyA9IC4uLiAvLyBUaGlzIHdvdWxkIGJlIGluaXRpYWxpemVkIHdpdGggdGhlIGFjdHVhbCBoZWFkZXIgbWFwXG5cbi8vIFJldHJpZXZlIGFsbCB2YWx1ZXMgZm9yIHRoZSBcIlVzZXItQWdlbnRcIiBoZWFkZXJcblZFQ1RPUjxTVFJJTkc+IHVzZXJBZ2VudFZhbHVlcyA9IE1XRy5HZXRBbGwoaGVhZGVycywgXCJVc2VyLUFnZW50XCIpXG5cbi8vIFByaW50IGFsbCBVc2VyLUFnZW50IHZhbHVlcyB0byB0aGUgY29uc29sZVxuRk9SIEVBQ0ggdmFsdWUgSU4gdXNlckFnZW50VmFsdWVzIHtcbiAgICAvLyBVc2VyLUFnZW50OiBcIiArIHZhbHVlXG59In0sIHsibmFtZSI6ICJNV0cuR2V0QWxsQ29va2llcyAoTVdHLkhlYWRlck1hcCkiLCAicmV0dXJuX3R5cGUiOiAiTUFQPFNUUklORyxTVFJJTkc+IiwgInJldHVybl9kZXNjIjogIlJldHVybnMgYSBtYXAgY29udGFpbmluZyBhbGwgY29va2llIG5hbWVzIGFuZCB0aGVpciBjb3JyZXNwb25kaW5nIHZhbHVlcy4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiTVdHLkhlYWRlck1hcDogVGhlIGlucHV0IHBhcmFtZXRlciByZXByZXNlbnRzIHRoZSBIVFRQIGhlYWRlcnMgZnJvbSB3aGljaCB0aGUgZnVuY3Rpb24gd2lsbCBleHRyYWN0IGNvb2tpZXMuIiwgImRlc2NyaXB0aW9uIjogIiIsICJleGFtcGxlX2NvZGUiOiAiLy8gQXNzdW1lIGhlYWRlcnMgaXMgYW4gTVdHLkhlYWRlck1hcCBvYmplY3QgcmVwcmVzZW50aW5nIHRoZSBIVFRQIGhlYWRlcnNcbk1XRy5IZWFkZXJNYXAgaGVhZGVycyA9IC4uLiAvLyBPYnRhaW4gdGhlIGhlYWRlcnMgZnJvbSB0aGUgcmVxdWVzdCBjb250ZXh0XG5cbi8vIEdldCBhbGwgY29va2llcyBmcm9tIHRoZSBoZWFkZXJzXG5NQVA8U1RSSU5HLCBTVFJJTkc+IGNvb2tpZXMgPSBNV0cuR2V0QWxsQ29va2llcyhoZWFkZXJzKVxuXG4vLyBJdGVyYXRlIHRocm91Z2ggdGhlIGNvb2tpZXMgYW5kIHByaW50IGVhY2ggbmFtZSBhbmQgdmFsdWVcbkZPUiBFQUNIIGNvb2tpZU5hbWUgSU4gY29va2llcyB7XG4gICAgU1RSSU5HIGNvb2tpZVZhbHVlID0gY29va2llc1tjb29raWVOYW1lXVxuICAgIC8vIENvb2tpZSBOYW1lOiBcIiArIGNvb2tpZU5hbWUgKyBcIiwgQ29va2llIFZhbHVlOiBcIiArIGNvb2tpZVZhbHVlXG59IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiLy8gQXNzdW1lIGhlYWRlcnMgaXMgYW4gTVdHLkhlYWRlck1hcCBvYmplY3QgcmVwcmVzZW50aW5nIHRoZSBIVFRQIGhlYWRlcnNcbk1XRy5IZWFkZXJNYXAgaGVhZGVycyA9IC4uLiAvLyBPYnRhaW4gdGhlIGhlYWRlcnMgZnJvbSB0aGUgcmVxdWVzdCBjb250ZXh0XG5cbi8vIEdldCBhbGwgY29va2llcyBmcm9tIHRoZSBoZWFkZXJzXG5NQVA8U1RSSU5HLCBTVFJJTkc+IGNvb2tpZXMgPSBNV0cuR2V0QWxsQ29va2llcyhoZWFkZXJzKVxuXG4vLyBJdGVyYXRlIHRocm91Z2ggdGhlIGNvb2tpZXMgYW5kIHByaW50IGVhY2ggbmFtZSBhbmQgdmFsdWVcbkZPUiBFQUNIIGNvb2tpZU5hbWUgSU4gY29va2llcyB7XG4gICAgU1RSSU5HIGNvb2tpZVZhbHVlID0gY29va2llc1tjb29raWVOYW1lXVxuICAgIC8vIENvb2tpZSBOYW1lOiBcIiArIGNvb2tpZU5hbWUgKyBcIiwgQ29va2llIFZhbHVlOiBcIiArIGNvb2tpZVZhbHVlXG59In0sIHsibmFtZSI6ICJNV0cuR2V0QWxsTWF0Y2hpbmcgKE1XRy5IZWFkZXJNYXAsIFNUUklORywgUmVnRXhKU2kpIiwgInJldHVybl90eXBlIjogIlZFQ1RPUjxTVFJJTkc+IiwgInJldHVybl9kZXNjIjogIlJldHVybnMgYSB2ZWN0b3IgY29udGFpbmluZyBhbGwgaGVhZGVycyB0aGF0IG1hdGNoIHRoZSBzcGVjaWZpZWQgbmFtZSBhbmQgcmVndWxhciBleHByZXNzaW9uLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJNV0cuSGVhZGVyTWFwOiB0aGUgbWFwIG9mIGhlYWRlcnMgdG8gc2VhcmNoIHRocm91Z2g7IFNUUklORzogdGhlIG5hbWUgb2YgdGhlIGhlYWRlcnMgdG8gbWF0Y2g7IFJlZ0V4SlNpOiB0aGUgcmVndWxhciBleHByZXNzaW9uIHVzZWQgZm9yIG1hdGNoaW5nIGhlYWRlciB2YWx1ZXMuIiwgImRlc2NyaXB0aW9uIjogIiIsICJleGFtcGxlX2NvZGUiOiAiTVdHLkhlYWRlck1hcCBoZWFkZXJzID0gTVdHLkdldFJlcXVlc3RIZWFkZXJzKClcblNUUklORyBoZWFkZXJLZXkgPSBcIlgtQ3VzdG9tLUhlYWRlclwiXG5SZWdFeEpTaSByZWdleCA9IFJlZ0V4SlNpKFwicGF0dGVyblwiKVxuXG5NV0cuUmVtb3ZlQWxsTWF0Y2hpbmcoaGVhZGVycywgaGVhZGVyS2V5LCByZWdleClcbi8vIFJlbW92ZWQgYWxsIG1hdGNoaW5nIGhlYWRlcnMiLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICJNV0cuSGVhZGVyTWFwIGhlYWRlcnMgPSBNV0cuR2V0UmVxdWVzdEhlYWRlcnMoKVxuU1RSSU5HIGhlYWRlcktleSA9IFwiWC1DdXN0b20tSGVhZGVyXCJcblJlZ0V4SlNpIHJlZ2V4ID0gUmVnRXhKU2koXCJwYXR0ZXJuXCIpXG5cbk1XRy5SZW1vdmVBbGxNYXRjaGluZyhoZWFkZXJzLCBoZWFkZXJLZXksIHJlZ2V4KVxuLy8gUmVtb3ZlZCBhbGwgbWF0Y2hpbmcgaGVhZGVycyJ9LCB7Im5hbWUiOiAiTVdHLkdldEFueU1hdGNoaW5nIChNV0cuSGVhZGVyTWFwLCBTVFJJTkcsIFJlZ0V4SlNpKSIsICJyZXR1cm5fdHlwZSI6ICJTVFJJTkciLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyB0aGUgZmlyc3QgaGVhZGVyIHRoYXQgbWF0Y2hlcyB0aGUgc3BlY2lmaWVkIG5hbWUgYW5kIHJlZ3VsYXIgZXhwcmVzc2lvbiBjcml0ZXJpYS4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiTVdHLkhlYWRlck1hcDogdGhlIGNvbGxlY3Rpb24gb2YgaGVhZGVyczsgU1RSSU5HOiB0aGUgaGVhZGVyIG5hbWU7IFJlZ0V4SlNpOiB0aGUgcmVndWxhciBleHByZXNzaW9uIHRvIG1hdGNoIGFnYWluc3QuIiwgImRlc2NyaXB0aW9uIjogIiIsICJleGFtcGxlX2NvZGUiOiAiLy8gRGVmaW5lIHRoZSBoZWFkZXIgbWFwLCBoZWFkZXIgbmFtZSwgYW5kIHJlZ3VsYXIgZXhwcmVzc2lvblxuTVdHLkhlYWRlck1hcCBoZWFkZXJzID0gTVdHLkdldFJlcXVlc3RIZWFkZXJzKClcblNUUklORyBoZWFkZXJOYW1lID0gXCJVc2VyLUFnZW50XCJcblJlZ0V4SlNpIHJlZ2V4ID0gUmVnRXhKU2koXCIuKk1vemlsbGEuKlwiKVxuXG4vLyBVc2UgTVdHLkdldEFueU1hdGNoaW5nIHRvIGZpbmQgdGhlIGZpcnN0IG1hdGNoaW5nIGhlYWRlclxuU1RSSU5HIG1hdGNoaW5nSGVhZGVyID0gTVdHLkdldEFueU1hdGNoaW5nKGhlYWRlcnMsIGhlYWRlck5hbWUsIHJlZ2V4KVxuXG4vLyBNYXRjaGluZyBIZWFkZXI6ICsgbWF0Y2hpbmdIZWFkZXIiLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICIvLyBEZWZpbmUgdGhlIGhlYWRlciBtYXAsIGhlYWRlciBuYW1lLCBhbmQgcmVndWxhciBleHByZXNzaW9uXG5NV0cuSGVhZGVyTWFwIGhlYWRlcnMgPSBNV0cuR2V0UmVxdWVzdEhlYWRlcnMoKVxuU1RSSU5HIGhlYWRlck5hbWUgPSBcIlVzZXItQWdlbnRcIlxuUmVnRXhKU2kgcmVnZXggPSBSZWdFeEpTaShcIi4qTW96aWxsYS4qXCIpXG5cbi8vIFVzZSBNV0cuR2V0QW55TWF0Y2hpbmcgdG8gZmluZCB0aGUgZmlyc3QgbWF0Y2hpbmcgaGVhZGVyXG5TVFJJTkcgbWF0Y2hpbmdIZWFkZXIgPSBNV0cuR2V0QW55TWF0Y2hpbmcoaGVhZGVycywgaGVhZGVyTmFtZSwgcmVnZXgpXG5cbi8vIE1hdGNoaW5nIEhlYWRlcjogKyBtYXRjaGluZ0hlYWRlciJ9LCB7Im5hbWUiOiAiTVdHLkdldEJsb2NrUGFnZSAoTVdHLkJsb2NrU2V0dGluZywgU1RSSU5HLCBTVFJJTkcpIiwgInJldHVybl90eXBlIjogIlNUUklORyIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIHRoZSBuYW1lIG9mIHRoZSBibG9jayBwYWdlLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJNV0cuQmxvY2tTZXR0aW5nOiB0aGUgYmxvY2sgc2V0dGluZzsgU1RSSU5HOiB0aGUgcnVsZTsgU1RSSU5HOiB0aGUgcnVsZXNldC4iLCAiZGVzY3JpcHRpb24iOiAiIiwgImV4YW1wbGVfY29kZSI6ICIvLyBDcmVhdGUgYSBibG9jayBzZXR0aW5nIG9iamVjdFxuTVdHLkJsb2NrU2V0dGluZyBibG9ja1NldHRpbmcgPSBNV0cuQmxvY2tTZXR0aW5nKClcblxuLy8gU2V0IHNvbWUgcHJvcGVydGllcyBvbiB0aGUgYmxvY2sgc2V0dGluZyAoZXhhbXBsZSBwcm9wZXJ0aWVzKVxuYmxvY2tTZXR0aW5nLnRpdGxlID0gXCJBY2Nlc3MgRGVuaWVkXCJcbmJsb2NrU2V0dGluZy5tZXNzYWdlID0gXCJZb3UgYXJlIG5vdCBhbGxvd2VkIHRvIGFjY2VzcyB0aGlzIHNpdGUuXCJcblxuLy8gRGVmaW5lIHRoZSBVUkwgYW5kIHJlYXNvbiBmb3IgYmxvY2tpbmdcblNUUklORyB1cmwgPSBcImh0dHA6Ly9leGFtcGxlLmNvbVwiXG5TVFJJTkcgcmVhc29uID0gXCJCbG9ja2VkIGJ5IHBvbGljeVwiXG5cbi8vIEdldCB0aGUgYmxvY2sgcGFnZVxuU1RSSU5HIGJsb2NrUGFnZSA9IE1XRy5HZXRCbG9ja1BhZ2UoYmxvY2tTZXR0aW5nLCB1cmwsIHJlYXNvbilcblxuLy8gQmxvY2sgdGhlIGNvbm5lY3Rpb24gYW5kIGRpc3BsYXkgdGhlIGJsb2NrIHBhZ2Vcbk1XRy5CbG9jayhibG9ja1BhZ2UpIiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiLy8gQ3JlYXRlIGEgYmxvY2sgc2V0dGluZyBvYmplY3Rcbk1XRy5CbG9ja1NldHRpbmcgYmxvY2tTZXR0aW5nID0gTVdHLkJsb2NrU2V0dGluZygpXG5cbi8vIFNldCBzb21lIHByb3BlcnRpZXMgb24gdGhlIGJsb2NrIHNldHRpbmcgKGV4YW1wbGUgcHJvcGVydGllcylcbmJsb2NrU2V0dGluZy50aXRsZSA9IFwiQWNjZXNzIERlbmllZFwiXG5ibG9ja1NldHRpbmcubWVzc2FnZSA9IFwiWW91IGFyZSBub3QgYWxsb3dlZCB0byBhY2Nlc3MgdGhpcyBzaXRlLlwiXG5cbi8vIERlZmluZSB0aGUgVVJMIGFuZCByZWFzb24gZm9yIGJsb2NraW5nXG5TVFJJTkcgdXJsID0gXCJodHRwOi8vZXhhbXBsZS5jb21cIlxuU1RSSU5HIHJlYXNvbiA9IFwiQmxvY2tlZCBieSBwb2xpY3lcIlxuXG4vLyBHZXQgdGhlIGJsb2NrIHBhZ2VcblNUUklORyBibG9ja1BhZ2UgPSBNV0cuR2V0QmxvY2tQYWdlKGJsb2NrU2V0dGluZywgdXJsLCByZWFzb24pXG5cbi8vIEJsb2NrIHRoZSBjb25uZWN0aW9uIGFuZCBkaXNwbGF5IHRoZSBibG9jayBwYWdlXG5NV0cuQmxvY2soYmxvY2tQYWdlKSJ9LCB7Im5hbWUiOiAiTVdHLkdldEJvb2xlYW5Qcm9wZXJ0eSAoU1RSSU5HKSIsICJyZXR1cm5fdHlwZSI6ICJCT09MRUFOIiwgInJldHVybl9kZXNjIjogIlJldHVybnMgdGhlYEJPT0xFQU5gc2V0dGluZyBvZiB0aGUgZ2l2ZW4gcHJvcGVydHkuIiwgInBhcmFtZXRlcl9kZXNjIjogIlNUUklORzogdGhlIHByb3BlcnR5IHRvIGNoZWNrLiIsICJkZXNjcmlwdGlvbiI6ICIiLCAiZXhhbXBsZV9jb2RlIjogIlNUUklORyBwcm9wZXJ0eU5hbWUgPSBcImV4YW1wbGUucHJvcGVydHlcIlxuQk9PTEVBTiBwcm9wZXJ0eVZhbHVlID0gTVdHLkdldEJvb2xlYW5Qcm9wZXJ0eShwcm9wZXJ0eU5hbWUpXG5cbklGIHByb3BlcnR5VmFsdWUgVEhFTiB7XG4gICAgLy8gVGhlIHByb3BlcnR5IGlzIHNldCB0byBUUlVFXG59IEVMU0Uge1xuICAgIC8vIFRoZSBwcm9wZXJ0eSBpcyBzZXQgdG8gRkFMU0Vcbn0iLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICJTVFJJTkcgcHJvcGVydHlOYW1lID0gXCJleGFtcGxlLnByb3BlcnR5XCJcbkJPT0xFQU4gcHJvcGVydHlWYWx1ZSA9IE1XRy5HZXRCb29sZWFuUHJvcGVydHkocHJvcGVydHlOYW1lKVxuXG5JRiBwcm9wZXJ0eVZhbHVlIFRIRU4ge1xuICAgIC8vIFRoZSBwcm9wZXJ0eSBpcyBzZXQgdG8gVFJVRVxufSBFTFNFIHtcbiAgICAvLyBUaGUgcHJvcGVydHkgaXMgc2V0IHRvIEZBTFNFXG59In0sIHsibmFtZSI6ICJNV0cuR2V0Q29ubmVjdGlvblJ1blRpbWUgKCkiLCAicmV0dXJuX3R5cGUiOiAiTlVNQkVSIiwgInJldHVybl9kZXNjIjogIlJldHVybnMgdGhlIGN1cnJlbnQgZHVyYXRpb24gb2YgY29ubmVjdGlvbiBpbiBzZWNvbmRzLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJOb25lIiwgImRlc2NyaXB0aW9uIjogIlJldHVybnMgdGhlIGN1cnJlbnQgZHVyYXRpb24gb2YgY29ubmVjdGlvbiBpbiBzZWNvbmRzIiwgImV4YW1wbGVfY29kZSI6ICJOVU1CRVIgY29ubmVjdGlvblJ1blRpbWUgPSBNV0cuR2V0Q29ubmVjdGlvblJ1blRpbWUoKVxuLy8gQ29ubmVjdGlvbiBSdW4gVGltZTogY29ubmVjdGlvblJ1blRpbWUiLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICJOVU1CRVIgY29ubmVjdGlvblJ1blRpbWUgPSBNV0cuR2V0Q29ubmVjdGlvblJ1blRpbWUoKVxuLy8gQ29ubmVjdGlvbiBSdW4gVGltZTogY29ubmVjdGlvblJ1blRpbWUifSwgeyJuYW1lIjogIk1XRy5HZXRDb29raWUgKE1XRy5IZWFkZXJNYXAsIFNUUklORykiLCAicmV0dXJuX3R5cGUiOiAiU1RSSU5HIiwgInJldHVybl9kZXNjIjogIlJldHVybnMgdGhlIHZhbHVlIG9mIHRoZSBzcGVjaWZpZWQgY29va2llLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJNV0cuSGVhZGVyTWFwOiB0aGUgaGVhZGVyIG1hcCBjb250YWluaW5nIGNvb2tpZXM7IFNUUklORzogdGhlIG5hbWUgb2YgdGhlIGNvb2tpZSB0byByZXRyaWV2ZS4iLCAiZGVzY3JpcHRpb24iOiAiUmV0dXJuIGEgc2luZ2xlIGNvb2tpZSB2YWx1ZSBvZiB0aGUgZ2l2ZW4gY29va2llIG5hbWUiLCAiZXhhbXBsZV9jb2RlIjogIi8vIEFzc3VtZSBoZWFkZXJzIGlzIGFuIE1XRy5IZWFkZXJNYXAgb2JqZWN0IGNvbnRhaW5pbmcgdGhlIEhUVFAgaGVhZGVyc1xuTVdHLkhlYWRlck1hcCBoZWFkZXJzID0gTVdHLkdldFJlcXVlc3RIZWFkZXJzKClcblxuLy8gVGhlIG5hbWUgb2YgdGhlIGNvb2tpZSB3ZSB3YW50IHRvIHJldHJpZXZlXG5TVFJJTkcgY29va2llTmFtZSA9IFwic2Vzc2lvbl9pZFwiXG5cbi8vIFJldHJpZXZlIHRoZSB2YWx1ZSBvZiB0aGUgc3BlY2lmaWVkIGNvb2tpZVxuU1RSSU5HIGNvb2tpZVZhbHVlID0gTVdHLkdldENvb2tpZShoZWFkZXJzLCBjb29raWVOYW1lKVxuXG4vLyBUaGUgdmFsdWUgb2YgdGhlIGNvb2tpZSBzZXNzaW9uX2lkIGlzOiBjb29raWVWYWx1ZSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIi8vIEFzc3VtZSBoZWFkZXJzIGlzIGFuIE1XRy5IZWFkZXJNYXAgb2JqZWN0IGNvbnRhaW5pbmcgdGhlIEhUVFAgaGVhZGVyc1xuTVdHLkhlYWRlck1hcCBoZWFkZXJzID0gTVdHLkdldFJlcXVlc3RIZWFkZXJzKClcblxuLy8gVGhlIG5hbWUgb2YgdGhlIGNvb2tpZSB3ZSB3YW50IHRvIHJldHJpZXZlXG5TVFJJTkcgY29va2llTmFtZSA9IFwic2Vzc2lvbl9pZFwiXG5cbi8vIFJldHJpZXZlIHRoZSB2YWx1ZSBvZiB0aGUgc3BlY2lmaWVkIGNvb2tpZVxuU1RSSU5HIGNvb2tpZVZhbHVlID0gTVdHLkdldENvb2tpZShoZWFkZXJzLCBjb29raWVOYW1lKVxuXG4vLyBUaGUgdmFsdWUgb2YgdGhlIGNvb2tpZSBzZXNzaW9uX2lkIGlzOiBjb29raWVWYWx1ZSJ9LCB7Im5hbWUiOiAiTVdHLkdldEN1c3RvbWVyICgpIiwgInJldHVybl90eXBlIjogIlNUUklORyIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIHRoZSBjdXJyZW50IGN1c3RvbWVyLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJOb25lIiwgImRlc2NyaXB0aW9uIjogIkdldCBjdXJyZW50IGN1c3RvbWVyLiIsICJleGFtcGxlX2NvZGUiOiAiU1RSSU5HIGN1c3RvbWVyID0gTVdHLkdldEN1c3RvbWVyKClcbi8vIEN1cnJlbnQgY3VzdG9tZXI6IFwiICsgY3VzdG9tZXIiLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICJTVFJJTkcgY3VzdG9tZXIgPSBNV0cuR2V0Q3VzdG9tZXIoKVxuLy8gQ3VycmVudCBjdXN0b21lcjogXCIgKyBjdXN0b21lciJ9LCB7Im5hbWUiOiAiTVdHLkdldEN1c3RvbWVyUmVzb3VyY2VBc0pTT04gKFNUUklORywgU1RSSU5HKSIsICJyZXR1cm5fdHlwZSI6ICJKU09OIiwgInJldHVybl9kZXNjIjogIlJldHVybnMgYSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIGEgc3BlY2lmaWVkIHBvbGljeSByZXNvdXJjZS4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiU1RSSU5HOiBDdXN0b21lciBJRDsgU1RSSU5HOiByZWxhdGl2ZSBwYXRoIHRvIHJlc291cmNlOyIsICJkZXNjcmlwdGlvbiI6ICJSZXRyaWV2ZSBhbnkgcG9saWN5IHJlc291cmNlIGFzIEpTT04iLCAiZXhhbXBsZV9jb2RlIjogIi8vIERlZmluZSB0aGUgcGFyYW1ldGVycyBmb3IgdGhlIGZ1bmN0aW9uXG5TVFJJTkcgcmVzb3VyY2VUeXBlID0gXCJjb25maWdcIlxuU1RSSU5HIHJlc291cmNlTmFtZSA9IFwiY3VzdG9tZXJTZXR0aW5nc1wiXG5cbi8vIENhbGwgdGhlIGZ1bmN0aW9uIGFuZCBzdG9yZSB0aGUgcmVzdWx0IGluIGEgSlNPTiB2YXJpYWJsZVxuSlNPTiBjdXN0b21lclJlc291cmNlID0gTVdHLkdldEN1c3RvbWVyUmVzb3VyY2VBc0pTT04ocmVzb3VyY2VUeXBlLCByZXNvdXJjZU5hbWUpXG5cbi8vIENoZWNrIGlmIHRoZSByZXNvdXJjZSB3YXMgc3VjY2Vzc2Z1bGx5IHJldHJpZXZlZFxuSUYgY3VzdG9tZXJSZXNvdXJjZSAhPSBOVUxMIFRIRU4ge1xuICAgIC8vIEN1c3RvbWVyIFJlc291cmNlIEpTT046IFxuICAgIC8vIGN1c3RvbWVyUmVzb3VyY2UudG9TdHJpbmcoKVxufSBFTFNFIHtcbiAgICAvLyBGYWlsZWQgdG8gcmV0cmlldmUgY3VzdG9tZXIgcmVzb3VyY2UuXG59IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiLy8gRGVmaW5lIHRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgZnVuY3Rpb25cblNUUklORyByZXNvdXJjZVR5cGUgPSBcImNvbmZpZ1wiXG5TVFJJTkcgcmVzb3VyY2VOYW1lID0gXCJjdXN0b21lclNldHRpbmdzXCJcblxuLy8gQ2FsbCB0aGUgZnVuY3Rpb24gYW5kIHN0b3JlIHRoZSByZXN1bHQgaW4gYSBKU09OIHZhcmlhYmxlXG5KU09OIGN1c3RvbWVyUmVzb3VyY2UgPSBNV0cuR2V0Q3VzdG9tZXJSZXNvdXJjZUFzSlNPTihyZXNvdXJjZVR5cGUsIHJlc291cmNlTmFtZSlcblxuLy8gQ2hlY2sgaWYgdGhlIHJlc291cmNlIHdhcyBzdWNjZXNzZnVsbHkgcmV0cmlldmVkXG5JRiBjdXN0b21lclJlc291cmNlICE9IE5VTEwgVEhFTiB7XG4gICAgLy8gQ3VzdG9tZXIgUmVzb3VyY2UgSlNPTjogXG4gICAgLy8gY3VzdG9tZXJSZXNvdXJjZS50b1N0cmluZygpXG59IEVMU0Uge1xuICAgIC8vIEZhaWxlZCB0byByZXRyaWV2ZSBjdXN0b21lciByZXNvdXJjZS5cbn0ifSwgeyJuYW1lIjogIk1XRy5HZXRETFBDbGFzc2lmaWVyICgpIiwgInJldHVybl90eXBlIjogIkRMUC5DbGFzc2lmaWVyIiwgInJldHVybl9kZXNjIjogIlJldHVybnMgYSBETFAgY2xhc3NpZmllciB3aXRoIGFsbCBhdHRyaWJ1dGVzIHNldCBhY2NvcmRpbmcgdG8gdGhlYE1XRyBzcGVjaWZpY2F0aW9uc2AiLCAicGFyYW1ldGVyX2Rlc2MiOiAiTm9uZSIsICJkZXNjcmlwdGlvbiI6ICJjcmVhdGUgYSBETFAgY2xhc3NpZmllciBhbmQgc2V0IGFsbCBNV0cgYXR0cmlidXRlcyIsICJleGFtcGxlX2NvZGUiOiAiRExQLkNsYXNzaWZpZXIgY2xhc3NpZmllciA9IE1XRy5HZXRETFBDbGFzc2lmaWVyKClcblxuSUYgY2xhc3NpZmllciAhPSBOVUxMIFRIRU4ge1xuICAgIC8vIERMUCBDbGFzc2lmaWVyIGZvdW5kOiBcIiArIGNsYXNzaWZpZXJcbn0gRUxTRSB7XG4gICAgLy8gTm8gRExQIENsYXNzaWZpZXIgZm91bmQuXG59IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiRExQLkNsYXNzaWZpZXIgY2xhc3NpZmllciA9IE1XRy5HZXRETFBDbGFzc2lmaWVyKClcblxuSUYgY2xhc3NpZmllciAhPSBOVUxMIFRIRU4ge1xuICAgIC8vIERMUCBDbGFzc2lmaWVyIGZvdW5kOiBcIiArIGNsYXNzaWZpZXJcbn0gRUxTRSB7XG4gICAgLy8gTm8gRExQIENsYXNzaWZpZXIgZm91bmQuXG59In0sIHsibmFtZSI6ICJNV0cuR2V0RW5kdXNlck1lc3NhZ2VMYW5ndWFnZSAoKSIsICJyZXR1cm5fdHlwZSI6ICJTVFJJTkciLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyBhIHNob3J0IHN0cmluZyByZXByZXNlbnRpbmcgdGhlIGxhbmd1YWdlIGNvZGUgZm9yIGEgYmxvY2sgbWVzc2FnZS4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiTm9uZSIsICJkZXNjcmlwdGlvbiI6ICJSZXR1cm5zIGEgc2hvcnQgU1RSSU5HIChpLmUuIGVuLCBkZSwgamEpIHNwZWNpZnlpbmcgdGhlIGxhbmd1YWdlIGZvciBhIGJsb2NrIG1lc3NhZ2UiLCAiZXhhbXBsZV9jb2RlIjogIlNUUklORyBsYW5ndWFnZSA9IFwiZW5cIlxuTVdHLlNldEVuZHVzZXJNZXNzYWdlTGFuZ3VhZ2UobGFuZ3VhZ2UpXG4vLyBFbmQtdXNlciBtZXNzYWdlIGxhbmd1YWdlIHNldCB0bzogZW4iLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICJTVFJJTkcgbGFuZ3VhZ2UgPSBcImVuXCJcbk1XRy5TZXRFbmR1c2VyTWVzc2FnZUxhbmd1YWdlKGxhbmd1YWdlKVxuLy8gRW5kLXVzZXIgbWVzc2FnZSBsYW5ndWFnZSBzZXQgdG86IGVuIn0sIHsibmFtZSI6ICJNV0cuR2V0RXJyb3JJZCAoKSIsICJyZXR1cm5fdHlwZSI6ICJOVU1CRVIiLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyB0aGUgZXJyb3IgSUQuIiwgInBhcmFtZXRlcl9kZXNjIjogIk5vbmUiLCAiZGVzY3JpcHRpb24iOiAiUmV0dXJucyB0aGUgZXJyb3IgaWQiLCAiZXhhbXBsZV9jb2RlIjogIi8vIEh5cG90aGV0aWNhbCBmdW5jdGlvbiB0byBnZXQgdGhlIGVycm9yIElEXG5OVU1CRVIgZXJyb3JJZCA9IE1XRy5HZXRFcnJvcklkKClcblxuLy8gQ2hlY2sgaWYgYW4gZXJyb3IgSUQgd2FzIHJldHJpZXZlZFxuSUYgZXJyb3JJZCAhPSAwIFRIRU4ge1xuICAgIC8vIEVycm9yIElEOiBcIiArIGVycm9ySWRcbiAgICAvLyBCbG9jayB0aGUgY29ubmVjdGlvbiB3aXRoIGEgbWVzc2FnZSBpbmNsdWRpbmcgdGhlIGVycm9yIElEXG4gICAgTVdHLkJsb2NrKFwiQ29ubmVjdGlvbiBibG9ja2VkIGR1ZSB0byBlcnJvciBJRDogXCIgKyBlcnJvcklkKVxufSBFTFNFIHtcbiAgICAvLyBBbGxvdyB0aGUgY29ubmVjdGlvbiBpZiBubyBlcnJvciBJRCBpcyBmb3VuZFxuICAgIE1XRy5BbGxvdyhcIk5vIGVycm9yIGRldGVjdGVkXCIpXG59IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiLy8gSHlwb3RoZXRpY2FsIGZ1bmN0aW9uIHRvIGdldCB0aGUgZXJyb3IgSURcbk5VTUJFUiBlcnJvcklkID0gTVdHLkdldEVycm9ySWQoKVxuXG4vLyBDaGVjayBpZiBhbiBlcnJvciBJRCB3YXMgcmV0cmlldmVkXG5JRiBlcnJvcklkICE9IDAgVEhFTiB7XG4gICAgLy8gRXJyb3IgSUQ6IFwiICsgZXJyb3JJZFxuICAgIC8vIEJsb2NrIHRoZSBjb25uZWN0aW9uIHdpdGggYSBtZXNzYWdlIGluY2x1ZGluZyB0aGUgZXJyb3IgSURcbiAgICBNV0cuQmxvY2soXCJDb25uZWN0aW9uIGJsb2NrZWQgZHVlIHRvIGVycm9yIElEOiBcIiArIGVycm9ySWQpXG59IEVMU0Uge1xuICAgIC8vIEFsbG93IHRoZSBjb25uZWN0aW9uIGlmIG5vIGVycm9yIElEIGlzIGZvdW5kXG4gICAgTVdHLkFsbG93KFwiTm8gZXJyb3IgZGV0ZWN0ZWRcIilcbn0ifSwgeyJuYW1lIjogIk1XRy5HZXRIVFRQSGVhZGVyIChNV0cuSGVhZGVyTWFwKSIsICJyZXR1cm5fdHlwZSI6ICJIVFRQSGVhZGVyIiwgInJldHVybl9kZXNjIjogIlJldHVybnMgdGhlIEhUVFAgaGVhZGVyIGZyb20gYSBoZWFkZXIgbWFwLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJNV0cuSGVhZGVyTWFwOiB0aGUgbWFwIG9mIGhlYWRlcnMgdG8gcmV0cmlldmUgdGhlIEhUVFAgaGVhZGVyIGZyb20iLCAiZGVzY3JpcHRpb24iOiAiR2V0IHRoZSBIVFRQIEhlYWRlciBmcm9tIGEgaGVhZGVyIG1hcC4iLCAiZXhhbXBsZV9jb2RlIjogIi8vIEFzc3VtZSBoZWFkZXJzTWFwIGlzIGEgcHJlZGVmaW5lZCBNV0cuSGVhZGVyTWFwIG9iamVjdCBjb250YWluaW5nIEhUVFAgaGVhZGVyc1xuTVdHLkhlYWRlck1hcCBoZWFkZXJzTWFwID0gLi4uIC8vIFRoaXMgd291bGQgYmUgZGVmaW5lZCBlbHNld2hlcmUgaW4geW91ciBhY3R1YWwgY29kZVxuXG4vLyBSZXRyaWV2ZSBhIHNwZWNpZmljIEhUVFAgaGVhZGVyIGZyb20gdGhlIGhlYWRlcnMgbWFwXG5IVFRQSGVhZGVyIGhlYWRlciA9IE1XRy5HZXRIVFRQSGVhZGVyKGhlYWRlcnNNYXApXG5cbi8vIFJldHJpZXZlZCBIVFRQIEhlYWRlcjogXCIgKyBoZWFkZXIiLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICIvLyBBc3N1bWUgaGVhZGVyc01hcCBpcyBhIHByZWRlZmluZWQgTVdHLkhlYWRlck1hcCBvYmplY3QgY29udGFpbmluZyBIVFRQIGhlYWRlcnNcbk1XRy5IZWFkZXJNYXAgaGVhZGVyc01hcCA9IC4uLiAvLyBUaGlzIHdvdWxkIGJlIGRlZmluZWQgZWxzZXdoZXJlIGluIHlvdXIgYWN0dWFsIGNvZGVcblxuLy8gUmV0cmlldmUgYSBzcGVjaWZpYyBIVFRQIGhlYWRlciBmcm9tIHRoZSBoZWFkZXJzIG1hcFxuSFRUUEhlYWRlciBoZWFkZXIgPSBNV0cuR2V0SFRUUEhlYWRlcihoZWFkZXJzTWFwKVxuXG4vLyBSZXRyaWV2ZWQgSFRUUCBIZWFkZXI6IFwiICsgaGVhZGVyIn0sIHsibmFtZSI6ICJNV0cuR2V0SFRUUE9yaWdpbmFsSGVhZGVycyAoTVdHLkhlYWRlck1hcCkiLCAicmV0dXJuX3R5cGUiOiAiU1RSSU5HIiwgInJldHVybl9kZXNjIjogIlJldHVybnMgYSBzaW5nbGUgc3RyaW5nIGNvbnRhaW5pbmcgYWxsIG9yaWdpbmFsIGhlYWRlcnMgZnJvbSB0aGUgcmVxdWVzdC9yZXNwb25zZSwgY29uY2F0ZW5hdGVkIGFuZCBzZXBhcmF0ZWQgYnkgXCI/Pz8gPz8/XCIuIiwgInBhcmFtZXRlcl9kZXNjIjogIk1XRy5IZWFkZXJNYXA6IEEgbWFwICBzdHJ1Y3R1cmUgY29udGFpbmluZyB0aGUgIGhlYWRlcnMgZnJvbSBhIHJlcXVlc3Qgb3IgcmVzcG9uc2UuIiwgImRlc2NyaXB0aW9uIjogIlJldHVybnMgYSBjb25jYXRlbmF0ZWQgU1RSSU5HIG9mIGFsbCBvcmlnaW5hbCBoZWFkZXJzIChzZXBhcmF0ZWQgYnkgPz8/ID8/PykgZnJvbSByZXF1ZXN0L3Jlc3BvbnNlLiIsICJleGFtcGxlX2NvZGUiOiAiLy8gQ3JlYXRlIGEgdmFyaWFibGUgdG8gaG9sZCB0aGUgaGVhZGVycyBtYXBcbk1XRy5IZWFkZXJNYXAgaGVhZGVyc01hcCA9IE1XRy5HZXRSZXF1ZXN0SGVhZGVycygpXG5cbi8vIEdldCB0aGUgb3JpZ2luYWwgaGVhZGVycyBhcyBhIGNvbmNhdGVuYXRlZCBzdHJpbmdcblNUUklORyBvcmlnaW5hbEhlYWRlcnMgPSBNV0cuR2V0SFRUUE9yaWdpbmFsSGVhZGVycyhoZWFkZXJzTWFwKVxuXG4vLyBPcmlnaW5hbCBIZWFkZXJzOiBcIiArIG9yaWdpbmFsSGVhZGVycyIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIi8vIENyZWF0ZSBhIHZhcmlhYmxlIHRvIGhvbGQgdGhlIGhlYWRlcnMgbWFwXG5NV0cuSGVhZGVyTWFwIGhlYWRlcnNNYXAgPSBNV0cuR2V0UmVxdWVzdEhlYWRlcnMoKVxuXG4vLyBHZXQgdGhlIG9yaWdpbmFsIGhlYWRlcnMgYXMgYSBjb25jYXRlbmF0ZWQgc3RyaW5nXG5TVFJJTkcgb3JpZ2luYWxIZWFkZXJzID0gTVdHLkdldEhUVFBPcmlnaW5hbEhlYWRlcnMoaGVhZGVyc01hcClcblxuLy8gT3JpZ2luYWwgSGVhZGVyczogXCIgKyBvcmlnaW5hbEhlYWRlcnMifSwgeyJuYW1lIjogIk1XRy5HZXRJUFNlY0RldmljZSAoKSIsICJyZXR1cm5fdHlwZSI6ICJTVFJJTkciLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyB0aGUgbmFtZSBvZiB0aGUgSVBTZWMgZGV2aWNlIGFzIGEgc3RyaW5nLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJOb25lIiwgImRlc2NyaXB0aW9uIjogIlJldHVybnMgSVBTZWMgRGV2aWNlIE5hbWUiLCAiZXhhbXBsZV9jb2RlIjogIlNUUklORyBpcFNlY0RldmljZU5hbWUgPSBNV0cuR2V0SVBTZWNEZXZpY2UoKVxuLy8gSVBTZWMgRGV2aWNlIE5hbWU6IFwiICsgaXBTZWNEZXZpY2VOYW1lXG5cbklGIGlwU2VjRGV2aWNlTmFtZSA9PSBcIkV4cGVjdGVkRGV2aWNlTmFtZVwiIFRIRU4ge1xuICAgIE1XRy5BbGxvdyhcIklQU2VjIGRldmljZSBpcyBhcyBleHBlY3RlZFwiKVxufSBFTFNFIHtcbiAgICBNV0cuQmxvY2soXCJVbmV4cGVjdGVkIElQU2VjIGRldmljZVwiKVxufSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIlNUUklORyBpcFNlY0RldmljZU5hbWUgPSBNV0cuR2V0SVBTZWNEZXZpY2UoKVxuLy8gSVBTZWMgRGV2aWNlIE5hbWU6IFwiICsgaXBTZWNEZXZpY2VOYW1lXG5cbklGIGlwU2VjRGV2aWNlTmFtZSA9PSBcIkV4cGVjdGVkRGV2aWNlTmFtZVwiIFRIRU4ge1xuICAgIE1XRy5BbGxvdyhcIklQU2VjIGRldmljZSBpcyBhcyBleHBlY3RlZFwiKVxufSBFTFNFIHtcbiAgICBNV0cuQmxvY2soXCJVbmV4cGVjdGVkIElQU2VjIGRldmljZVwiKVxufSJ9LCB7Im5hbWUiOiAiTVdHLkdldExvZ1N0b3JhZ2VSZWdpb24gKCkiLCAicmV0dXJuX3R5cGUiOiAiU1RSSU5HIiwgInJldHVybl9kZXNjIjogIlJldHVybnMgYSBzdHJpbmcgaW5kaWNhdGluZyB0aGUgc3RvcmFnZSByZWdpb24gb2YgdGhlIGxvZyBmaWxlcy4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiTm9uZSIsICJkZXNjcmlwdGlvbiI6ICJHZXQgdGhlIHN0b3JhZ2UgcmVnaW9uIG9mIHRoZSBsb2cgZmlsZXMuIiwgImV4YW1wbGVfY29kZSI6ICJTVFJJTkcgbG9nUmVnaW9uID0gTVdHLkdldExvZ1N0b3JhZ2VSZWdpb24oKVxuLy8gVGhlIGN1cnJlbnQgbG9nIHN0b3JhZ2UgcmVnaW9uIGlzOiBcIiArIGxvZ1JlZ2lvblxuXG5JRiBsb2dSZWdpb24gPT0gXCJVU1wiIFRIRU4ge1xuICAgIC8vIExvZyBzdG9yYWdlIHJlZ2lvbiBpcyBzZXQgdG8gVVMuXG59IEVMU0Uge1xuICAgIC8vIExvZyBzdG9yYWdlIHJlZ2lvbiBpcyBub3Qgc2V0IHRvIFVTLlxufSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIlNUUklORyBsb2dSZWdpb24gPSBNV0cuR2V0TG9nU3RvcmFnZVJlZ2lvbigpXG4vLyBUaGUgY3VycmVudCBsb2cgc3RvcmFnZSByZWdpb24gaXM6IFwiICsgbG9nUmVnaW9uXG5cbklGIGxvZ1JlZ2lvbiA9PSBcIlVTXCIgVEhFTiB7XG4gICAgLy8gTG9nIHN0b3JhZ2UgcmVnaW9uIGlzIHNldCB0byBVUy5cbn0gRUxTRSB7XG4gICAgLy8gTG9nIHN0b3JhZ2UgcmVnaW9uIGlzIG5vdCBzZXQgdG8gVVMuXG59In0sIHsibmFtZSI6ICJNV0cuR2V0TWFwQnlOYW1lIChTVFJJTkcpIiwgInJldHVybl90eXBlIjogIk1BUDxTVFJJTkcsU1RSSU5HPiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIGEgbWFwIGJ5IHRoZSBnaXZlbiBuYW1lLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJTVFJJTkc6IG5hbWUgb2YgdGhlIG1hcC4iLCAiZGVzY3JpcHRpb24iOiAiUmV0cmlldmVzIGEgTUFQPFNUUklORywgU1RSSU5HPiBieSBtYXAgbmFtZSIsICJleGFtcGxlX2NvZGUiOiAiLy8gUmV0cmlldmUgYSBtYXAgYnkgaXRzIG5hbWVcbk1BUDxTVFJJTkc+PE5VTUJFUj4gZXhhbXBsZU1hcCA9IE1XRy5HZXRNYXBCeU5hbWUoXCJleGFtcGxlX21hcF9uYW1lXCIpXG5cbi8vIENoZWNrIGlmIGEgc3BlY2lmaWMga2V5IGV4aXN0cyBpbiB0aGUgbWFwXG5JRiBcImV4YW1wbGVfa2V5XCIgSU4gZXhhbXBsZU1hcCBUSEVOIHtcbiAgICAvLyBSZXRyaWV2ZSB0aGUgdmFsdWUgYXNzb2NpYXRlZCB3aXRoIHRoZSBrZXlcbiAgICBOVU1CRVIgdmFsdWUgPSBleGFtcGxlTWFwW1wiZXhhbXBsZV9rZXlcIl1cbiAgICAvLyBUaGUgdmFsdWUgZm9yICdleGFtcGxlX2tleScgaXM6IHZhbHVlXG59IEVMU0Uge1xuICAgIC8vIFRoZSBrZXkgJ2V4YW1wbGVfa2V5JyBkb2VzIG5vdCBleGlzdCBpbiB0aGUgbWFwLlxufSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIi8vIFJldHJpZXZlIGEgbWFwIGJ5IGl0cyBuYW1lXG5NQVA8U1RSSU5HPjxOVU1CRVI+IGV4YW1wbGVNYXAgPSBNV0cuR2V0TWFwQnlOYW1lKFwiZXhhbXBsZV9tYXBfbmFtZVwiKVxuXG4vLyBDaGVjayBpZiBhIHNwZWNpZmljIGtleSBleGlzdHMgaW4gdGhlIG1hcFxuSUYgXCJleGFtcGxlX2tleVwiIElOIGV4YW1wbGVNYXAgVEhFTiB7XG4gICAgLy8gUmV0cmlldmUgdGhlIHZhbHVlIGFzc29jaWF0ZWQgd2l0aCB0aGUga2V5XG4gICAgTlVNQkVSIHZhbHVlID0gZXhhbXBsZU1hcFtcImV4YW1wbGVfa2V5XCJdXG4gICAgLy8gVGhlIHZhbHVlIGZvciAnZXhhbXBsZV9rZXknIGlzOiB2YWx1ZVxufSBFTFNFIHtcbiAgICAvLyBUaGUga2V5ICdleGFtcGxlX2tleScgZG9lcyBub3QgZXhpc3QgaW4gdGhlIG1hcC5cbn0ifSwgeyJuYW1lIjogIk1XRy5HZXRNZXNzYWdlVGVtcGxhdGVOYW1lICgpIiwgInJldHVybl90eXBlIjogIlNUUklORyIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIHRoZSB0ZW1wbGF0ZSBuYW1lIGZvciBhIGJsb2NrIG1lc3NhZ2UuIiwgInBhcmFtZXRlcl9kZXNjIjogIk5vbmUiLCAiZGVzY3JpcHRpb24iOiAiUmV0dXJucyB0aGUgdGVtcGxhdGUgbmFtZSBmb3IgYSBibG9jayBtZXNzYWdlIiwgImV4YW1wbGVfY29kZSI6ICJTVFJJTkcgdGVtcGxhdGVOYW1lID0gTVdHLkdldE1lc3NhZ2VUZW1wbGF0ZU5hbWUoKVxuLy8gQ3VycmVudCBtZXNzYWdlIHRlbXBsYXRlIG5hbWU6IFwiICsgdGVtcGxhdGVOYW1lXG5cbklGIHRlbXBsYXRlTmFtZSA9PSBcIkJsb2NrUGFnZVwiIFRIRU4ge1xuICAgIC8vIFRoZSBtZXNzYWdlIHRlbXBsYXRlIGlzIHNldCB0byBCbG9ja1BhZ2UuXG4gICAgLy8gQWRkaXRpb25hbCBsb2dpYyBmb3IgQmxvY2tQYWdlIHRlbXBsYXRlXG59IEVMU0Uge1xuICAgIC8vIFRoZSBtZXNzYWdlIHRlbXBsYXRlIGlzIG5vdCBCbG9ja1BhZ2UuXG4gICAgLy8gQWRkaXRpb25hbCBsb2dpYyBmb3Igb3RoZXIgdGVtcGxhdGVzXG59IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiU1RSSU5HIHRlbXBsYXRlTmFtZSA9IE1XRy5HZXRNZXNzYWdlVGVtcGxhdGVOYW1lKClcbi8vIEN1cnJlbnQgbWVzc2FnZSB0ZW1wbGF0ZSBuYW1lOiBcIiArIHRlbXBsYXRlTmFtZVxuXG5JRiB0ZW1wbGF0ZU5hbWUgPT0gXCJCbG9ja1BhZ2VcIiBUSEVOIHtcbiAgICAvLyBUaGUgbWVzc2FnZSB0ZW1wbGF0ZSBpcyBzZXQgdG8gQmxvY2tQYWdlLlxuICAgIC8vIEFkZGl0aW9uYWwgbG9naWMgZm9yIEJsb2NrUGFnZSB0ZW1wbGF0ZVxufSBFTFNFIHtcbiAgICAvLyBUaGUgbWVzc2FnZSB0ZW1wbGF0ZSBpcyBub3QgQmxvY2tQYWdlLlxuICAgIC8vIEFkZGl0aW9uYWwgbG9naWMgZm9yIG90aGVyIHRlbXBsYXRlc1xufSJ9LCB7Im5hbWUiOiAiTVdHLkdldE1XR05IUEFkZHJlc3MgKCkiLCAicmV0dXJuX3R5cGUiOiAiU1RSSU5HIiwgInJldHVybl9kZXNjIjogIlJldHVybnMgdGhlIGFkZHJlc3Mgb2YgTmV4dCBIb3AgUHJveHkgKGhvc3Q6cG9ydCkgdXNlZCBmb3IgdGhpcyBjb25uZWN0aW9uLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJOb25lIiwgImRlc2NyaXB0aW9uIjogIlJldHVybnMgdGhlIGFkZHJlc3Mgb2YgTmV4dCBIb3AgUHJveHkgKGhvc3Q6cG9ydCkgdXNlZCBmb3IgdGhpcyBjb25uZWN0aW9uIiwgImV4YW1wbGVfY29kZSI6ICJTVFJJTkcgbmhwQWRkcmVzcyA9IE1XRy5HZXRNV0dOSFBBZGRyZXNzKClcbi8vIE5leHQgSG9wIFByb3h5IEFkZHJlc3M6ICsgbmhwQWRkcmVzcyIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIlNUUklORyBuaHBBZGRyZXNzID0gTVdHLkdldE1XR05IUEFkZHJlc3MoKVxuLy8gTmV4dCBIb3AgUHJveHkgQWRkcmVzczogKyBuaHBBZGRyZXNzIn0sIHsibmFtZSI6ICJNV0cuR2V0TnVtYmVyUHJvcGVydHkgKFNUUklORykiLCAicmV0dXJuX3R5cGUiOiAiTlVNQkVSIiwgInJldHVybl9kZXNjIjogIlJldHVybnMgdGhlIG51bWJlciBzZXR0aW5nIG9mIHRoZSBnaXZlbiBwcm9wZXJ0eS4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiU1RSSU5HOiB0aGUgcHJvcGVydHkgdG8gY2hlY2suIiwgImRlc2NyaXB0aW9uIjogIkdldCB0aGUgTlVNQkVSIHZhbHVlIG9mIHdoYXQgYSBwcm9wZXJ0eSBpcyBjdXJyZW50bHkgc2V0IHRvLiIsICJleGFtcGxlX2NvZGUiOiAiLy8gUmV0cmlldmUgYSBudW1lcmljYWwgcHJvcGVydHlcbk5VTUJFUiBwcm9wZXJ0eVZhbHVlID0gTVdHLkdldE51bWJlclByb3BlcnR5KFwiZXhhbXBsZVByb3BlcnR5XCIpXG5cbi8vIFRoZSB2YWx1ZSBvZiAnZXhhbXBsZVByb3BlcnR5JyBpczogXCIgKyBwcm9wZXJ0eVZhbHVlXG5cbi8vIFVzZSB0aGUgcmV0cmlldmVkIHByb3BlcnR5IHZhbHVlIGluIGEgY29uZGl0aW9uYWwgc3RhdGVtZW50XG5JRiBwcm9wZXJ0eVZhbHVlID4gMTAgVEhFTiB7XG4gICAgLy8gVGhlIHByb3BlcnR5IHZhbHVlIGlzIGdyZWF0ZXIgdGhhbiAxMC5cbn0gRUxTRSB7XG4gICAgLy8gVGhlIHByb3BlcnR5IHZhbHVlIGlzIDEwIG9yIGxlc3MuXG59IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiLy8gUmV0cmlldmUgYSBudW1lcmljYWwgcHJvcGVydHlcbk5VTUJFUiBwcm9wZXJ0eVZhbHVlID0gTVdHLkdldE51bWJlclByb3BlcnR5KFwiZXhhbXBsZVByb3BlcnR5XCIpXG5cbi8vIFRoZSB2YWx1ZSBvZiAnZXhhbXBsZVByb3BlcnR5JyBpczogXCIgKyBwcm9wZXJ0eVZhbHVlXG5cbi8vIFVzZSB0aGUgcmV0cmlldmVkIHByb3BlcnR5IHZhbHVlIGluIGEgY29uZGl0aW9uYWwgc3RhdGVtZW50XG5JRiBwcm9wZXJ0eVZhbHVlID4gMTAgVEhFTiB7XG4gICAgLy8gVGhlIHByb3BlcnR5IHZhbHVlIGlzIGdyZWF0ZXIgdGhhbiAxMC5cbn0gRUxTRSB7XG4gICAgLy8gVGhlIHByb3BlcnR5IHZhbHVlIGlzIDEwIG9yIGxlc3MuXG59In0sIHsibmFtZSI6ICJNV0cuR2V0UE9TVEZvcm1FbGVtZW50IChTVFJJTkcpIiwgInJldHVybl90eXBlIjogIlNUUklORyIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIHRoZSB2YWx1ZSBvZiB0aGUgc3BlY2lmaWVkIGVsZW1lbnQgZnJvbSB0aGUgUE9TVCByZXF1ZXN0IGJvZHkuIiwgInBhcmFtZXRlcl9kZXNjIjogIlNUUklORzogdGhlIGVsZW1lbnQgbmFtZSB0byBiZSBleHRyYWN0ZWQgZnJvbSB0aGUgUE9TVCBib2R5LiIsICJkZXNjcmlwdGlvbiI6ICJFeHRyYWN0cyB0aGUgZ2l2ZW4gZWxlbWVudCBvZiBhIFBPU1QgYm9keSIsICJleGFtcGxlX2NvZGUiOiAiLy8gRGVmaW5lIHRoZSBuYW1lIG9mIHRoZSBmb3JtIGVsZW1lbnQgeW91IHdhbnQgdG8gcmV0cmlldmVcblNUUklORyBmb3JtRWxlbWVudE5hbWUgPSBcInVzZXJuYW1lXCJcblxuLy8gUmV0cmlldmUgdGhlIHZhbHVlIG9mIHRoZSBmb3JtIGVsZW1lbnRcblNUUklORyBmb3JtRWxlbWVudFZhbHVlID0gTVdHLkdldFBPU1RGb3JtRWxlbWVudChmb3JtRWxlbWVudE5hbWUpXG5cbi8vIENoZWNrIGlmIHRoZSBmb3JtIGVsZW1lbnQgdmFsdWUgaXMgZW1wdHlcbklGIGZvcm1FbGVtZW50VmFsdWUgPT0gXCJcIiBUSEVOIHtcbiAgICAvLyBCbG9jayB0aGUgcmVxdWVzdCBpZiB0aGUgZm9ybSBlbGVtZW50IGlzIGVtcHR5XG4gICAgTVdHLkJsb2NrKFwiRm9ybSBlbGVtZW50ICd1c2VybmFtZScgaXMgbWlzc2luZyBvciBlbXB0eS5cIilcbn0gRUxTRSB7XG4gICAgLy8gQWxsb3cgdGhlIHJlcXVlc3QgYW5kIGxvZyB0aGUgZm9ybSBlbGVtZW50IHZhbHVlXG4gICAgLy8gRm9ybSBlbGVtZW50ICd1c2VybmFtZScgaGFzIHZhbHVlOiBcIiArIGZvcm1FbGVtZW50VmFsdWVcbiAgICBNV0cuQWxsb3coXCJGb3JtIGVsZW1lbnQgJ3VzZXJuYW1lJyBpcyBwcmVzZW50LlwiKVxufSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIi8vIERlZmluZSB0aGUgbmFtZSBvZiB0aGUgZm9ybSBlbGVtZW50IHlvdSB3YW50IHRvIHJldHJpZXZlXG5TVFJJTkcgZm9ybUVsZW1lbnROYW1lID0gXCJ1c2VybmFtZVwiXG5cbi8vIFJldHJpZXZlIHRoZSB2YWx1ZSBvZiB0aGUgZm9ybSBlbGVtZW50XG5TVFJJTkcgZm9ybUVsZW1lbnRWYWx1ZSA9IE1XRy5HZXRQT1NURm9ybUVsZW1lbnQoZm9ybUVsZW1lbnROYW1lKVxuXG4vLyBDaGVjayBpZiB0aGUgZm9ybSBlbGVtZW50IHZhbHVlIGlzIGVtcHR5XG5JRiBmb3JtRWxlbWVudFZhbHVlID09IFwiXCIgVEhFTiB7XG4gICAgLy8gQmxvY2sgdGhlIHJlcXVlc3QgaWYgdGhlIGZvcm0gZWxlbWVudCBpcyBlbXB0eVxuICAgIE1XRy5CbG9jayhcIkZvcm0gZWxlbWVudCAndXNlcm5hbWUnIGlzIG1pc3Npbmcgb3IgZW1wdHkuXCIpXG59IEVMU0Uge1xuICAgIC8vIEFsbG93IHRoZSByZXF1ZXN0IGFuZCBsb2cgdGhlIGZvcm0gZWxlbWVudCB2YWx1ZVxuICAgIC8vIEZvcm0gZWxlbWVudCAndXNlcm5hbWUnIGhhcyB2YWx1ZTogXCIgKyBmb3JtRWxlbWVudFZhbHVlXG4gICAgTVdHLkFsbG93KFwiRm9ybSBlbGVtZW50ICd1c2VybmFtZScgaXMgcHJlc2VudC5cIilcbn0ifSwgeyJuYW1lIjogIk1XRy5HZXRQcm9wZXJ0eVZhbHVlIChTVFJJTkcpIiwgInJldHVybl90eXBlIjogIk1XRy5JbnRlcm5hbFZhcmlhbnQiLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyB0aGUgdmFsdWUgb2YgdGhlIHNwZWNpZmllZCBwcm9wZXJ0eS4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiU1RSSU5HOiB0aGUgbmFtZSBvZiB0aGUgcHJvcGVydHkuIiwgImRlc2NyaXB0aW9uIjogIkdldCB0aGUgdmFsdWUgb2YgYSBwcm9wZXJ0eSBmcm9tIHRoZSBpbnRlcm5hbCBwYXJhbWV0ZXJzLiIsICJleGFtcGxlX2NvZGUiOiAiLy8gUmV0cmlldmUgdGhlIHZhbHVlIG9mIGEgcHJvcGVydHlcblNUUklORyBwcm9wZXJ0eVZhbHVlID0gTVdHLkdldFN0cmluZ1Byb3BlcnR5KFwiZXhhbXBsZVByb3BlcnR5XCIpXG5cbi8vIFRoZSB2YWx1ZSBvZiBleGFtcGxlUHJvcGVydHkgaXM6IFwiICsgcHJvcGVydHlWYWx1ZVxuXG4vLyBVc2UgdGhlIHByb3BlcnR5IHZhbHVlIGluIGEgY29uZGl0aW9uYWwgc3RhdGVtZW50XG5JRiBwcm9wZXJ0eVZhbHVlID09IFwic29tZVZhbHVlXCIgVEhFTiB7XG4gICAgLy8gUGVyZm9ybSBzb21lIGFjdGlvbiBpZiB0aGUgcHJvcGVydHkgdmFsdWUgbWF0Y2hlcyBcInNvbWVWYWx1ZVwiXG4gICAgTVdHLkFsbG93KFwiUHJvcGVydHkgdmFsdWUgbWF0Y2hlZFwiKVxufSBFTFNFIHtcbiAgICAvLyBQZXJmb3JtIGEgZGlmZmVyZW50IGFjdGlvbiBpZiB0aGUgcHJvcGVydHkgdmFsdWUgZG9lcyBub3QgbWF0Y2hcbiAgICBNV0cuQmxvY2soXCJQcm9wZXJ0eSB2YWx1ZSBkaWQgbm90IG1hdGNoXCIpXG59IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiLy8gUmV0cmlldmUgdGhlIHZhbHVlIG9mIGEgcHJvcGVydHlcblNUUklORyBwcm9wZXJ0eVZhbHVlID0gTVdHLkdldFN0cmluZ1Byb3BlcnR5KFwiZXhhbXBsZVByb3BlcnR5XCIpXG5cbi8vIFRoZSB2YWx1ZSBvZiBleGFtcGxlUHJvcGVydHkgaXM6IFwiICsgcHJvcGVydHlWYWx1ZVxuXG4vLyBVc2UgdGhlIHByb3BlcnR5IHZhbHVlIGluIGEgY29uZGl0aW9uYWwgc3RhdGVtZW50XG5JRiBwcm9wZXJ0eVZhbHVlID09IFwic29tZVZhbHVlXCIgVEhFTiB7XG4gICAgLy8gUGVyZm9ybSBzb21lIGFjdGlvbiBpZiB0aGUgcHJvcGVydHkgdmFsdWUgbWF0Y2hlcyBcInNvbWVWYWx1ZVwiXG4gICAgTVdHLkFsbG93KFwiUHJvcGVydHkgdmFsdWUgbWF0Y2hlZFwiKVxufSBFTFNFIHtcbiAgICAvLyBQZXJmb3JtIGEgZGlmZmVyZW50IGFjdGlvbiBpZiB0aGUgcHJvcGVydHkgdmFsdWUgZG9lcyBub3QgbWF0Y2hcbiAgICBNV0cuQmxvY2soXCJQcm9wZXJ0eSB2YWx1ZSBkaWQgbm90IG1hdGNoXCIpXG59In0sIHsibmFtZSI6ICJNV0cuR2V0UHJvcGVydHlWYWx1ZSAoU1RSSU5HLCBNV0cuSW50ZXJuYWxQYXJhbWV0ZXJMaXN0KSIsICJyZXR1cm5fdHlwZSI6ICJNV0cuSW50ZXJuYWxWYXJpYW50IiwgInJldHVybl9kZXNjIjogIlJldHVybnMgdGhlIHZhbHVlIG9mIHRoZSBzcGVjaWZpZWQgcHJvcGVydHkuIiwgInBhcmFtZXRlcl9kZXNjIjogIlNUUklORzogbmFtZSBvZiBwcm9wZXJ0eTsgTVdHLkludGVybmFsUGFyYW1ldGVyTGlzdDogbGlzdCB0byBjaGVjay4iLCAiZGVzY3JpcHRpb24iOiAiR2V0IHRoZSB2YWx1ZSBvZiBhIHByb3BlcnR5IGluIGFuIGludGVybmFsIHBhcmFtZXRlciBsaXN0LiIsICJleGFtcGxlX2NvZGUiOiAiLy8gRGVmaW5lIHRoZSBpbnRlcm5hbCBwYXJhbWV0ZXIgbGlzdFxuTVdHLkludGVybmFsUGFyYW1ldGVyTGlzdCBwYXJhbUxpc3QgPSBNV0cuSW50ZXJuYWxQYXJhbWV0ZXJMaXN0KClcblxuLy8gQWRkIHNvbWUgcHJvcGVydGllcyB0byB0aGUgcGFyYW1ldGVyIGxpc3QgKGZvciBkZW1vbnN0cmF0aW9uIHB1cnBvc2VzKVxucGFyYW1MaXN0LkFkZChcImV4YW1wbGVQcm9wZXJ0eVwiLCBcImV4YW1wbGVWYWx1ZVwiKVxuXG4vLyBSZXRyaWV2ZSB0aGUgdmFsdWUgb2YgdGhlIHByb3BlcnR5XG5NV0cuSW50ZXJuYWxWYXJpYW50IHByb3BlcnR5VmFsdWUgPSBNV0cuR2V0UHJvcGVydHlWYWx1ZShcImV4YW1wbGVQcm9wZXJ0eVwiLCBwYXJhbUxpc3QpXG5cbi8vIFRoZSB2YWx1ZSBvZiAnZXhhbXBsZVByb3BlcnR5JyBpczogXCIgKyBwcm9wZXJ0eVZhbHVlLlRvU3RyaW5nKCkiLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICIvLyBEZWZpbmUgdGhlIGludGVybmFsIHBhcmFtZXRlciBsaXN0XG5NV0cuSW50ZXJuYWxQYXJhbWV0ZXJMaXN0IHBhcmFtTGlzdCA9IE1XRy5JbnRlcm5hbFBhcmFtZXRlckxpc3QoKVxuXG4vLyBBZGQgc29tZSBwcm9wZXJ0aWVzIHRvIHRoZSBwYXJhbWV0ZXIgbGlzdCAoZm9yIGRlbW9uc3RyYXRpb24gcHVycG9zZXMpXG5wYXJhbUxpc3QuQWRkKFwiZXhhbXBsZVByb3BlcnR5XCIsIFwiZXhhbXBsZVZhbHVlXCIpXG5cbi8vIFJldHJpZXZlIHRoZSB2YWx1ZSBvZiB0aGUgcHJvcGVydHlcbk1XRy5JbnRlcm5hbFZhcmlhbnQgcHJvcGVydHlWYWx1ZSA9IE1XRy5HZXRQcm9wZXJ0eVZhbHVlKFwiZXhhbXBsZVByb3BlcnR5XCIsIHBhcmFtTGlzdClcblxuLy8gVGhlIHZhbHVlIG9mICdleGFtcGxlUHJvcGVydHknIGlzOiBcIiArIHByb3BlcnR5VmFsdWUuVG9TdHJpbmcoKSJ9LCB7Im5hbWUiOiAiTVdHLkdldFByb3BlcnR5VmFsdWVXaXRoQ29uZmlnIChNV0cuSW50ZXJuYWxTZXR0aW5nLCBTVFJJTkcpIiwgInJldHVybl90eXBlIjogIk1XRy5JbnRlcm5hbFZhcmlhbnQiLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyB0aGUgdmFsdWUgb2YgdGhlIHNwZWNpZmllZCBwcm9wZXJ0eS4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiTVdHLkludGVybmFsU2V0dGluZzogY29uZmlndXJhdGlvbjsgU1RSSU5HOiBuYW1lIG9mIHByb3BlcnR5LiIsICJkZXNjcmlwdGlvbiI6ICJHZXQgdGhlIHZhbHVlIG9mIGEgcHJvcGVydHkgZnJvbSB0aGUgaW50ZXJuYWwgcGFyYW1ldGVycyB3aXRoIGEgY29uZmlnLiIsICJleGFtcGxlX2NvZGUiOiAiLy8gRGVmaW5lIHRoZSBpbnRlcm5hbCBzZXR0aW5nIGNvbmZpZ3VyYXRpb25cbk1XRy5JbnRlcm5hbFNldHRpbmcgY29uZmlnID0gTVdHLkludGVybmFsU2V0dGluZygpXG5cbi8vIERlZmluZSB0aGUgcHJvcGVydHkgbmFtZSB5b3Ugd2FudCB0byByZXRyaWV2ZVxuU1RSSU5HIHByb3BlcnR5TmFtZSA9IFwiZXhhbXBsZVByb3BlcnR5XCJcblxuLy8gUmV0cmlldmUgdGhlIHByb3BlcnR5IHZhbHVlIHVzaW5nIHRoZSBjb25maWd1cmF0aW9uIGFuZCBwcm9wZXJ0eSBuYW1lXG5NV0cuSW50ZXJuYWxWYXJpYW50IHByb3BlcnR5VmFsdWUgPSBNV0cuR2V0UHJvcGVydHlWYWx1ZVdpdGhDb25maWcoY29uZmlnLCBwcm9wZXJ0eU5hbWUpXG5cbi8vIFRoZSB2YWx1ZSBvZiB0aGUgcHJvcGVydHkgaXM6IFwiICsgcHJvcGVydHlWYWx1ZSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIi8vIERlZmluZSB0aGUgaW50ZXJuYWwgc2V0dGluZyBjb25maWd1cmF0aW9uXG5NV0cuSW50ZXJuYWxTZXR0aW5nIGNvbmZpZyA9IE1XRy5JbnRlcm5hbFNldHRpbmcoKVxuXG4vLyBEZWZpbmUgdGhlIHByb3BlcnR5IG5hbWUgeW91IHdhbnQgdG8gcmV0cmlldmVcblNUUklORyBwcm9wZXJ0eU5hbWUgPSBcImV4YW1wbGVQcm9wZXJ0eVwiXG5cbi8vIFJldHJpZXZlIHRoZSBwcm9wZXJ0eSB2YWx1ZSB1c2luZyB0aGUgY29uZmlndXJhdGlvbiBhbmQgcHJvcGVydHkgbmFtZVxuTVdHLkludGVybmFsVmFyaWFudCBwcm9wZXJ0eVZhbHVlID0gTVdHLkdldFByb3BlcnR5VmFsdWVXaXRoQ29uZmlnKGNvbmZpZywgcHJvcGVydHlOYW1lKVxuXG4vLyBUaGUgdmFsdWUgb2YgdGhlIHByb3BlcnR5IGlzOiBcIiArIHByb3BlcnR5VmFsdWUifSwgeyJuYW1lIjogIk1XRy5HZXRQcm9wZXJ0eVZhbHVlV2l0aENvbmZpZyAoTVdHLkludGVybmFsU2V0dGluZywgU1RSSU5HLCBNV0cuSW50ZXJuYWxQYXJhbWV0ZXJMaXN0KSIsICJyZXR1cm5fdHlwZSI6ICJNV0cuSW50ZXJuYWxWYXJpYW50IiwgInJldHVybl9kZXNjIjogIlJldHVybnMgdGhlIHZhbHVlIG9mIHRoZSBzcGVjaWZpZWQgcHJvcGVydHkuIiwgInBhcmFtZXRlcl9kZXNjIjogIk1XRy5JbnRlcm5hbFNldHRpbmc6IGNvbmZpZ3VyYXRpb247IFNUUklORzogbmFtZSBvZiBwcm9wZXJ0eTsgTVdHLkludGVybmFsUGFyYW10ZXJMaXN0OiBsaXN0IHRvIGNoZWNrLiIsICJkZXNjcmlwdGlvbiI6ICJHZXQgdGhlIHZhbHVlIG9mIGEgcHJvcGVydHkgaW4gYW4gaW50ZXJuYWwgcGFyYW1ldGVyIGxpc3Qgd2l0aCBhIGNvbmZpZy4iLCAiZXhhbXBsZV9jb2RlIjogIi8vIERlZmluZSB0aGUgaW50ZXJuYWwgc2V0dGluZ1xuTVdHLkludGVybmFsU2V0dGluZyBjb25maWcgPSAuLi4gLy8gSW5pdGlhbGl6ZSB3aXRoIHlvdXIgc3BlY2lmaWMgY29uZmlndXJhdGlvblxuXG4vLyBEZWZpbmUgdGhlIHByb3BlcnR5IG5hbWUgeW91IHdhbnQgdG8gZ2V0IHRoZSB2YWx1ZSBvZlxuU1RSSU5HIHByb3BlcnR5TmFtZSA9IFwiZXhhbXBsZVByb3BlcnR5XCJcblxuLy8gRGVmaW5lIHRoZSBpbnRlcm5hbCBwYXJhbWV0ZXIgbGlzdFxuTVdHLkludGVybmFsUGFyYW1ldGVyTGlzdCBwYXJhbUxpc3QgPSAuLi4gLy8gSW5pdGlhbGl6ZSB3aXRoIHlvdXIgc3BlY2lmaWMgcGFyYW1ldGVyIGxpc3RcblxuLy8gR2V0IHRoZSBwcm9wZXJ0eSB2YWx1ZSB1c2luZyBNV0cuR2V0UHJvcGVydHlWYWx1ZVdpdGhDb25maWdcbk1XRy5JbnRlcm5hbFZhcmlhbnQgcHJvcGVydHlWYWx1ZSA9IE1XRy5HZXRQcm9wZXJ0eVZhbHVlV2l0aENvbmZpZyhjb25maWcsIHByb3BlcnR5TmFtZSwgcGFyYW1MaXN0KVxuXG4vLyBQcm9wZXJ0eSBWYWx1ZTogXG4vLyBDb21tZW50ZWQgb3V0IERFQlVHIGxpbmU6IFwiUHJvcGVydHkgVmFsdWU6IFwiICsgcHJvcGVydHlWYWx1ZSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIi8vIERlZmluZSB0aGUgaW50ZXJuYWwgc2V0dGluZ1xuTVdHLkludGVybmFsU2V0dGluZyBjb25maWcgPSAuLi4gLy8gSW5pdGlhbGl6ZSB3aXRoIHlvdXIgc3BlY2lmaWMgY29uZmlndXJhdGlvblxuXG4vLyBEZWZpbmUgdGhlIHByb3BlcnR5IG5hbWUgeW91IHdhbnQgdG8gZ2V0IHRoZSB2YWx1ZSBvZlxuU1RSSU5HIHByb3BlcnR5TmFtZSA9IFwiZXhhbXBsZVByb3BlcnR5XCJcblxuLy8gRGVmaW5lIHRoZSBpbnRlcm5hbCBwYXJhbWV0ZXIgbGlzdFxuTVdHLkludGVybmFsUGFyYW1ldGVyTGlzdCBwYXJhbUxpc3QgPSAuLi4gLy8gSW5pdGlhbGl6ZSB3aXRoIHlvdXIgc3BlY2lmaWMgcGFyYW1ldGVyIGxpc3RcblxuLy8gR2V0IHRoZSBwcm9wZXJ0eSB2YWx1ZSB1c2luZyBNV0cuR2V0UHJvcGVydHlWYWx1ZVdpdGhDb25maWdcbk1XRy5JbnRlcm5hbFZhcmlhbnQgcHJvcGVydHlWYWx1ZSA9IE1XRy5HZXRQcm9wZXJ0eVZhbHVlV2l0aENvbmZpZyhjb25maWcsIHByb3BlcnR5TmFtZSwgcGFyYW1MaXN0KVxuXG4vLyBQcm9wZXJ0eSBWYWx1ZTogXG4vLyBDb21tZW50ZWQgb3V0IERFQlVHIGxpbmU6IFwiUHJvcGVydHkgVmFsdWU6IFwiICsgcHJvcGVydHlWYWx1ZSJ9LCB7Im5hbWUiOiAiTVdHLkdldFNBTUxDb25maWd1cmF0aW9uIChTVFJJTkcpIiwgInJldHVybl90eXBlIjogIk1XRy5TQU1MQ29uZmlndXJhdGlvbiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIHRoZSBTQU1MIGNvbmZpZ3VyYXRpb24gYXNzb2NpYXRlZCB3aXRoIHRoZSBzcGVjaWZpZWQgSUQuIiwgInBhcmFtZXRlcl9kZXNjIjogIlNUUklORzogdGhlIElEIG9mIHRoZSBTQU1MIGNvbmZpZ3VyYXRpb24gdG8gcmV0cmlldmUuIiwgImRlc2NyaXB0aW9uIjogIlJldHVybnMgU0FNTCBjb25maWd1cmF0aW9uIGJ5IElEIiwgImV4YW1wbGVfY29kZSI6ICJTVFJJTkcgc2FtbENvbmZpZ0lEID0gXCJleGFtcGxlSURcIlxuTVdHLlNBTUxDb25maWd1cmF0aW9uIHNhbWxDb25maWcgPSBNV0cuR2V0U0FNTENvbmZpZ3VyYXRpb24oc2FtbENvbmZpZ0lEKVxuXG4vLyBSZXRyaWV2ZWQgU0FNTCBDb25maWd1cmF0aW9uOiIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIlNUUklORyBzYW1sQ29uZmlnSUQgPSBcImV4YW1wbGVJRFwiXG5NV0cuU0FNTENvbmZpZ3VyYXRpb24gc2FtbENvbmZpZyA9IE1XRy5HZXRTQU1MQ29uZmlndXJhdGlvbihzYW1sQ29uZmlnSUQpXG5cbi8vIFJldHJpZXZlZCBTQU1MIENvbmZpZ3VyYXRpb246In0sIHsibmFtZSI6ICJNV0cuR2V0U2VydmljZUFzc2lnbm1lbnRGcm9tVGVuYW50IChTVFJJTkcsIFNUUklORykiLCAicmV0dXJuX3R5cGUiOiAiSlNPTiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIGEgSlNPTiBvYmplY3QgY29udGFpbmluZyB0aGUgYXNzaWdubWVudCBkZXRhaWxzIGZvciBhIHNwZWNpZmllZCB0ZW5hbnRJRCBhbmQgc2VydmljZSBmcm9tIHRoZSBHU0QuIiwgInBhcmFtZXRlcl9kZXNjIjogIlNUUklORzogdGhlIHRlbmFudElEOyBTVFJJTkc6IHRoZSBzZXJ2aWNlIG5hbWUuIiwgImRlc2NyaXB0aW9uIjogIlF1ZXJ5IHRoZSBHU0QgdG8gZ2V0IHRoZSBhc3NpZ25tZW50IGZvciBhIGdpdmVuIHRlbmFudElEIGFuZCBzZXJ2aWNlIiwgImV4YW1wbGVfY29kZSI6ICIvLyBEZWZpbmUgdGhlIHRlbmFudCBJRCBhbmQgc2VydmljZSBuYW1lXG5TVFJJTkcgdGVuYW50SUQgPSBcImV4YW1wbGVUZW5hbnRJRFwiXG5TVFJJTkcgc2VydmljZU5hbWUgPSBcImV4YW1wbGVTZXJ2aWNlXCJcblxuLy8gQ2FsbCB0aGUgZnVuY3Rpb24gdG8gZ2V0IHRoZSBzZXJ2aWNlIGFzc2lnbm1lbnRcbkpTT04gYXNzaWdubWVudERldGFpbHMgPSBNV0cuR2V0U2VydmljZUFzc2lnbm1lbnRGcm9tVGVuYW50KHRlbmFudElELCBzZXJ2aWNlTmFtZSlcblxuLy8gQXNzaWdubWVudCBEZXRhaWxzOiBcIiArIGFzc2lnbm1lbnREZXRhaWxzLnRvU3RyaW5nKCkiLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICIvLyBEZWZpbmUgdGhlIHRlbmFudCBJRCBhbmQgc2VydmljZSBuYW1lXG5TVFJJTkcgdGVuYW50SUQgPSBcImV4YW1wbGVUZW5hbnRJRFwiXG5TVFJJTkcgc2VydmljZU5hbWUgPSBcImV4YW1wbGVTZXJ2aWNlXCJcblxuLy8gQ2FsbCB0aGUgZnVuY3Rpb24gdG8gZ2V0IHRoZSBzZXJ2aWNlIGFzc2lnbm1lbnRcbkpTT04gYXNzaWdubWVudERldGFpbHMgPSBNV0cuR2V0U2VydmljZUFzc2lnbm1lbnRGcm9tVGVuYW50KHRlbmFudElELCBzZXJ2aWNlTmFtZSlcblxuLy8gQXNzaWdubWVudCBEZXRhaWxzOiBcIiArIGFzc2lnbm1lbnREZXRhaWxzLnRvU3RyaW5nKCkifSwgeyJuYW1lIjogIk1XRy5HZXRTU0xDbGllbnRDZXJ0aWZpY2F0ZVNlcmlhbCAoKSIsICJyZXR1cm5fdHlwZSI6ICJTVFJJTkciLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyB0aGUgU1NMIGNsaWVudCBjZXJ0aWZpY2F0ZSBzZXJpYWwuIiwgInBhcmFtZXRlcl9kZXNjIjogIk5vbmUiLCAiZGVzY3JpcHRpb24iOiAiUmV0dXJucyB0aGUgU1NMIGNsaWVudCBjZXJ0aWZpY2F0ZSBzZXJpYWwiLCAiZXhhbXBsZV9jb2RlIjogIlNUUklORyBjZXJ0aWZpY2F0ZVNlcmlhbCA9IE1XRy5HZXRTU0xDbGllbnRDZXJ0aWZpY2F0ZVNlcmlhbCgpXG4vLyBTU0wgQ2xpZW50IENlcnRpZmljYXRlIFNlcmlhbDogXCIgKyBjZXJ0aWZpY2F0ZVNlcmlhbFxuXG4vLyBZb3UgY2FuIGFkZCBhZGRpdGlvbmFsIGxvZ2ljIGhlcmUgYmFzZWQgb24gdGhlIGNlcnRpZmljYXRlIHNlcmlhbFxuSUYgY2VydGlmaWNhdGVTZXJpYWwgPT0gXCIxMjM0NTY3ODkwQUJDREVGXCIgVEhFTiB7XG4gICAgTVdHLkFsbG93KFwiVmFsaWQgQ2VydGlmaWNhdGVcIilcbn0gRUxTRSB7XG4gICAgTVdHLkJsb2NrKFwiSW52YWxpZCBDZXJ0aWZpY2F0ZVwiKVxufSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIlNUUklORyBjZXJ0aWZpY2F0ZVNlcmlhbCA9IE1XRy5HZXRTU0xDbGllbnRDZXJ0aWZpY2F0ZVNlcmlhbCgpXG4vLyBTU0wgQ2xpZW50IENlcnRpZmljYXRlIFNlcmlhbDogXCIgKyBjZXJ0aWZpY2F0ZVNlcmlhbFxuXG4vLyBZb3UgY2FuIGFkZCBhZGRpdGlvbmFsIGxvZ2ljIGhlcmUgYmFzZWQgb24gdGhlIGNlcnRpZmljYXRlIHNlcmlhbFxuSUYgY2VydGlmaWNhdGVTZXJpYWwgPT0gXCIxMjM0NTY3ODkwQUJDREVGXCIgVEhFTiB7XG4gICAgTVdHLkFsbG93KFwiVmFsaWQgQ2VydGlmaWNhdGVcIilcbn0gRUxTRSB7XG4gICAgTVdHLkJsb2NrKFwiSW52YWxpZCBDZXJ0aWZpY2F0ZVwiKVxufSJ9LCB7Im5hbWUiOiAiTVdHLkdldFNUUklOR1Byb3BlcnR5IChTVFJJTkcpIiwgInJldHVybl90eXBlIjogIlNUUklORyIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIHRoZSBzdHJpbmcgdmFsdWUgb2YgdGhlIGdpdmVuIHByb3BlcnR5LiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJTVFJJTkc6IHRoZSBwcm9wZXJ0eSB0byBjaGVjay4iLCAiZGVzY3JpcHRpb24iOiAiR2V0IHRoZSBTVFJJTkcgdmFsdWUgb2Ygd2hhdCBhIHByb3BlcnR5IGlzIGN1cnJlbnRseSBzZXQgdG8uIiwgImV4YW1wbGVfY29kZSI6ICIvLyBEZWZpbmUgdGhlIHByb3BlcnR5IG5hbWUgeW91IHdhbnQgdG8gcmV0cmlldmVcblNUUklORyBwcm9wZXJ0eU5hbWUgPSBcImV4YW1wbGUucHJvcGVydHkubmFtZVwiXG5cbi8vIEdldCB0aGUgdmFsdWUgb2YgdGhlIHByb3BlcnR5XG5TVFJJTkcgcHJvcGVydHlWYWx1ZSA9IE1XRy5HZXRTdHJpbmdQcm9wZXJ0eShwcm9wZXJ0eU5hbWUpXG5cbi8vIFRoZSB2YWx1ZSBvZiB0aGUgcHJvcGVydHkgaXM6IFxuLy8gcHJvcGVydHlWYWx1ZSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIi8vIERlZmluZSB0aGUgcHJvcGVydHkgbmFtZSB5b3Ugd2FudCB0byByZXRyaWV2ZVxuU1RSSU5HIHByb3BlcnR5TmFtZSA9IFwiZXhhbXBsZS5wcm9wZXJ0eS5uYW1lXCJcblxuLy8gR2V0IHRoZSB2YWx1ZSBvZiB0aGUgcHJvcGVydHlcblNUUklORyBwcm9wZXJ0eVZhbHVlID0gTVdHLkdldFN0cmluZ1Byb3BlcnR5KHByb3BlcnR5TmFtZSlcblxuLy8gVGhlIHZhbHVlIG9mIHRoZSBwcm9wZXJ0eSBpczogXG4vLyBwcm9wZXJ0eVZhbHVlIn0sIHsibmFtZSI6ICJNV0cuR2V0VXNlckF6dXJlR3JvdXBzIChNV0cuQXp1cmVEaXJMb29rdXBTZXR0aW5nLCBTVFJJTkcpIiwgInJldHVybl90eXBlIjogIlZFQ1RPUjxTVFJJTkc+IiwgInJldHVybl9kZXNjIjogIlJldHVybnMgdGhlIEF6dXJlIEFEIGdyb3VwIGxpc3QgZm9yIHRoZSBnaXZlbiB1c2VyLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJNV0cuQXp1cmVEaXJMb29rdXBTZXR0aW5nOiBjb25maWd1cmF0aW9uIHNldHRpbmdzOyBTVFJJTkc6IHVzZXIgdG8gbG9va3VwIGZvci4iLCAiZGVzY3JpcHRpb24iOiAiUmV0cmlldmUgQXp1cmUgQUQgZ3JvdXAgbGlzdCBmb3IgdXNlciIsICJleGFtcGxlX2NvZGUiOiAiLy8gRGVmaW5lIHRoZSBBenVyZSBEaXJlY3RvcnkgTG9va3VwIFNldHRpbmdcbk1XRy5BenVyZURpckxvb2t1cFNldHRpbmcgYXp1cmVTZXR0aW5nID0gTVdHLkF6dXJlRGlyTG9va3VwU2V0dGluZygpXG5cbi8vIERlZmluZSB0aGUgdXNlciBmb3Igd2hvbSB0byByZXRyaWV2ZSB0aGUgQXp1cmUgZ3JvdXBzXG5TVFJJTkcgdXNlcm5hbWUgPSBcInVzZXJAZXhhbXBsZS5jb21cIlxuXG4vLyBSZXRyaWV2ZSB0aGUgQXp1cmUgZ3JvdXBzIGZvciB0aGUgc3BlY2lmaWVkIHVzZXJcblZFQ1RPUjxTVFJJTkc+IHVzZXJHcm91cHMgPSBNV0cuR2V0VXNlckF6dXJlR3JvdXBzKGF6dXJlU2V0dGluZywgdXNlcm5hbWUpXG5cbi8vIEF6dXJlIEFEIEdyb3VwcyBmb3IgdXNlckBleGFtcGxlLmNvbTogdXNlckdyb3Vwc1xuXG4vLyBFeGFtcGxlIGNvbmRpdGlvbiB0byBibG9jayBhY2Nlc3MgaWYgdGhlIHVzZXIgaXMgbm90IGluIGEgc3BlY2lmaWMgZ3JvdXBcbklGIFwicmVxdWlyZWQtZ3JvdXBcIiBOT1QgSU4gdXNlckdyb3VwcyBUSEVOIHtcbiAgICBNV0cuQmxvY2soXCJVc2VyIGlzIG5vdCBpbiB0aGUgcmVxdWlyZWQgQXp1cmUgQUQgZ3JvdXAuXCIpXG59IEVMU0Uge1xuICAgIE1XRy5BbGxvdyhcIlVzZXIgaXMgaW4gdGhlIHJlcXVpcmVkIEF6dXJlIEFEIGdyb3VwLlwiKVxufSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIi8vIERlZmluZSB0aGUgQXp1cmUgRGlyZWN0b3J5IExvb2t1cCBTZXR0aW5nXG5NV0cuQXp1cmVEaXJMb29rdXBTZXR0aW5nIGF6dXJlU2V0dGluZyA9IE1XRy5BenVyZURpckxvb2t1cFNldHRpbmcoKVxuXG4vLyBEZWZpbmUgdGhlIHVzZXIgZm9yIHdob20gdG8gcmV0cmlldmUgdGhlIEF6dXJlIGdyb3Vwc1xuU1RSSU5HIHVzZXJuYW1lID0gXCJ1c2VyQGV4YW1wbGUuY29tXCJcblxuLy8gUmV0cmlldmUgdGhlIEF6dXJlIGdyb3VwcyBmb3IgdGhlIHNwZWNpZmllZCB1c2VyXG5WRUNUT1I8U1RSSU5HPiB1c2VyR3JvdXBzID0gTVdHLkdldFVzZXJBenVyZUdyb3VwcyhhenVyZVNldHRpbmcsIHVzZXJuYW1lKVxuXG4vLyBBenVyZSBBRCBHcm91cHMgZm9yIHVzZXJAZXhhbXBsZS5jb206IHVzZXJHcm91cHNcblxuLy8gRXhhbXBsZSBjb25kaXRpb24gdG8gYmxvY2sgYWNjZXNzIGlmIHRoZSB1c2VyIGlzIG5vdCBpbiBhIHNwZWNpZmljIGdyb3VwXG5JRiBcInJlcXVpcmVkLWdyb3VwXCIgTk9UIElOIHVzZXJHcm91cHMgVEhFTiB7XG4gICAgTVdHLkJsb2NrKFwiVXNlciBpcyBub3QgaW4gdGhlIHJlcXVpcmVkIEF6dXJlIEFEIGdyb3VwLlwiKVxufSBFTFNFIHtcbiAgICBNV0cuQWxsb3coXCJVc2VyIGlzIGluIHRoZSByZXF1aXJlZCBBenVyZSBBRCBncm91cC5cIilcbn0ifSwgeyJuYW1lIjogIk1XRy5HbG9iT3JSZWdFeFRvUmVnRXggKFNUUklORykiLCAicmV0dXJuX3R5cGUiOiAiU1RSSU5HIiwgInJldHVybl9kZXNjIjogIlJldHVybnMgYSByZWd1bGFyIGV4cHJlc3Npb24gaW4gdGhlIGBSZWdFeEpTaWAgZm9ybWF0IGNvbnZlcnRlZCBmcm9tIGFuIFhNTC1gTVdHIGdsb2Igb3IgcmVndWxhciBgZXhwcmVzc2lvbi4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiU1RSSU5HOiBhIGdsb2Igb3IgcmVndWxhciBleHByZXNzaW9uIGluIFhNTC1NV0cgZm9ybWF0IHRvIGJlIGNvbnZlcnRlZCB0byBhIFJlZ0V4SlNpIG9iamVjdC4iLCAiZGVzY3JpcHRpb24iOiAiSUdPTlJFIENvbnZlcnRzIGdsb2IgZXhwcmVzc2lvbiBvciByZWd1bGFyIGV4cHJlc3Npb24gZnJvbSBYTUwtTVdHIHRvIGFuIFJlZ0V4SlNpIG9iamVjdCIsICJleGFtcGxlX2NvZGUiOiAiLy8gRGVmaW5lIGEgZ2xvYiBwYXR0ZXJuXG5TVFJJTkcgZ2xvYlBhdHRlcm4gPSBcIiouZXhhbXBsZS5jb20vKlwiXG5cbi8vIENvbnZlcnQgdGhlIGdsb2IgcGF0dGVybiB0byBhIHJlZ3VsYXIgZXhwcmVzc2lvblxuU1RSSU5HIHJlZ2V4UGF0dGVybiA9IE1XRy5HbG9iT3JSZWdFeFRvUmVnRXgoZ2xvYlBhdHRlcm4pXG5cbi8vIEdldCB0aGUgY3VycmVudCBVUkxcbk1XRy5VUkwgY3VycmVudFVybCA9IE1XRy5VcmwoKVxuXG4vLyBDaGVjayBpZiB0aGUgY3VycmVudCBVUkwgbWF0Y2hlcyB0aGUgY29udmVydGVkIHJlZ3VsYXIgZXhwcmVzc2lvblxuSUYgY3VycmVudFVybCBNQVRDSEVTIHJlZ2V4UGF0dGVybiBUSEVOIHtcbiAgICAvLyBUaGUgVVJMIG1hdGNoZXMgdGhlIHBhdHRlcm4uXG4gICAgLy8gUGVyZm9ybSBzb21lIGFjdGlvbiwgZS5nLiwgYWxsb3cgdGhlIHJlcXVlc3RcbiAgICBNV0cuQWxsb3coXCJNYXRjaGVkUGF0dGVyblwiKVxufSBFTFNFIHtcbiAgICAvLyBUaGUgVVJMIGRvZXMgbm90IG1hdGNoIHRoZSBwYXR0ZXJuLlxuICAgIC8vIFBlcmZvcm0gc29tZSBvdGhlciBhY3Rpb24sIGUuZy4sIGJsb2NrIHRoZSByZXF1ZXN0XG4gICAgTVdHLkJsb2NrKFwiUGF0dGVybk1pc21hdGNoXCIpXG59IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiLy8gRGVmaW5lIGEgZ2xvYiBwYXR0ZXJuXG5TVFJJTkcgZ2xvYlBhdHRlcm4gPSBcIiouZXhhbXBsZS5jb20vKlwiXG5cbi8vIENvbnZlcnQgdGhlIGdsb2IgcGF0dGVybiB0byBhIHJlZ3VsYXIgZXhwcmVzc2lvblxuU1RSSU5HIHJlZ2V4UGF0dGVybiA9IE1XRy5HbG9iT3JSZWdFeFRvUmVnRXgoZ2xvYlBhdHRlcm4pXG5cbi8vIEdldCB0aGUgY3VycmVudCBVUkxcbk1XRy5VUkwgY3VycmVudFVybCA9IE1XRy5VcmwoKVxuXG4vLyBDaGVjayBpZiB0aGUgY3VycmVudCBVUkwgbWF0Y2hlcyB0aGUgY29udmVydGVkIHJlZ3VsYXIgZXhwcmVzc2lvblxuSUYgY3VycmVudFVybCBNQVRDSEVTIHJlZ2V4UGF0dGVybiBUSEVOIHtcbiAgICAvLyBUaGUgVVJMIG1hdGNoZXMgdGhlIHBhdHRlcm4uXG4gICAgLy8gUGVyZm9ybSBzb21lIGFjdGlvbiwgZS5nLiwgYWxsb3cgdGhlIHJlcXVlc3RcbiAgICBNV0cuQWxsb3coXCJNYXRjaGVkUGF0dGVyblwiKVxufSBFTFNFIHtcbiAgICAvLyBUaGUgVVJMIGRvZXMgbm90IG1hdGNoIHRoZSBwYXR0ZXJuLlxuICAgIC8vIFBlcmZvcm0gc29tZSBvdGhlciBhY3Rpb24sIGUuZy4sIGJsb2NrIHRoZSByZXF1ZXN0XG4gICAgTVdHLkJsb2NrKFwiUGF0dGVybk1pc21hdGNoXCIpXG59In0sIHsibmFtZSI6ICJNV0cuR01UVGltZUlzSW5SYW5nZSAoU1RSSU5HLCBTVFJJTkcpIiwgInJldHVybl90eXBlIjogIkJPT0xFQU4iLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJuc2BUUlVFYGlmIHRoZSBjdXJyZW50IHRpbWUgaXMgd2l0aGluIHRoZSBpbnB1dCB0aW1lcyBpbiBHTVQgZm9ybWF0IChlLmcuLCAxIFNlcHRlbWJlciAyMDEyIDA5OjA2OjAzIFBNIG9yIFRodSwgMSBTZXB0ZW1iZXIgMjAxMiAyMTowNjowMykuIiwgInBhcmFtZXRlcl9kZXNjIjogIlNUUklORzogc3RhcnQgdGltZSBpbiBHTVQgZm9ybWF0OyBTVFJJTkc6IGVuZCB0aW1lIGluIEdNVCBmb3JtYXQuIiwgImRlc2NyaXB0aW9uIjogIlJldHVybnMgVFJVRSBpZiB0aGUgY3VycmVudCB0aW1lIGlzIHdpdGhpbiB0aGUgaW5wdXQgdGltZXMgaW4gR01UIGZvcm1hdChlLmcuIDEgU2VwdGVtYmVyIDIwMTIgMDk6MDY6MDMgUE0gb3IgVGh1LCAxIFNlcHRlbWJlciAyMDEyIDIxOjA2OjAzKSIsICJleGFtcGxlX2NvZGUiOiAiU1RSSU5HIHN0YXJ0VGltZSA9IFwiMDg6MDBcIlxuU1RSSU5HIGVuZFRpbWUgPSBcIjE3OjAwXCJcblxuSUYgTVdHLkdNVFRpbWVJc0luUmFuZ2Uoc3RhcnRUaW1lLCBlbmRUaW1lKSBUSEVOIHtcbiAgICAvLyBDdXJyZW50IHRpbWUgaXMgd2l0aGluIHRoZSByYW5nZS5cbiAgICBNV0cuQWxsb3coXCJUaW1lUmFuZ2VDaGVja1wiKVxufSBFTFNFIHtcbiAgICAvLyBDdXJyZW50IHRpbWUgaXMgb3V0c2lkZSB0aGUgcmFuZ2UuXG4gICAgTVdHLkJsb2NrKFwiQWNjZXNzIG91dHNpZGUgYWxsb3dlZCB0aW1lIHJhbmdlLlwiKVxufSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIlNUUklORyBzdGFydFRpbWUgPSBcIjA4OjAwXCJcblNUUklORyBlbmRUaW1lID0gXCIxNzowMFwiXG5cbklGIE1XRy5HTVRUaW1lSXNJblJhbmdlKHN0YXJ0VGltZSwgZW5kVGltZSkgVEhFTiB7XG4gICAgLy8gQ3VycmVudCB0aW1lIGlzIHdpdGhpbiB0aGUgcmFuZ2UuXG4gICAgTVdHLkFsbG93KFwiVGltZVJhbmdlQ2hlY2tcIilcbn0gRUxTRSB7XG4gICAgLy8gQ3VycmVudCB0aW1lIGlzIG91dHNpZGUgdGhlIHJhbmdlLlxuICAgIE1XRy5CbG9jayhcIkFjY2VzcyBvdXRzaWRlIGFsbG93ZWQgdGltZSByYW5nZS5cIilcbn0ifSwgeyJuYW1lIjogIk1XRy5IYW5kbGVDb25uZWN0VG9TZXJ2ZXIgKCkiLCAicmV0dXJuX3R5cGUiOiAiTlVNQkVSIiwgInJldHVybl9kZXNjIjogIlJldHVybnMgdGhlIHRpbWUgdGFrZW4gdG8gY29tcGxldGUgdGhlIFRDUCBoYW5kc2hha2Ugd2l0aCB0aGUgc2VydmVyIGluIG51bWVyaWNhbCBmb3JtYXQuIiwgInBhcmFtZXRlcl9kZXNjIjogIk5vbmUiLCAiZGVzY3JpcHRpb24iOiAiUmV0dXJucyB0aGUgZHVyYXRpb24gb2YgdGhlIFRDUCBoYW5kc2hha2Ugd2l0aCB0aGUgc2VydmVyIiwgImV4YW1wbGVfY29kZSI6ICJTVFJJTkcgc2VydmVyVXJsID0gTVdHLkNvbm5lY3Rpb25WYXJpYWJsZXNHZXQoXCJzZXJ2ZXIudXJsXCIpXG4vLyBBdHRlbXB0aW5nIHRvIGNvbm5lY3QgdG8gc2VydmVyOiBcIiArIHNlcnZlclVybFxuXG4vLyBIYW5kbGUgdGhlIGNvbm5lY3Rpb24gdG8gdGhlIHNlcnZlclxuTVdHLkhhbmRsZUNvbm5lY3RUb1NlcnZlcihzZXJ2ZXJVcmwpXG5cbi8vIEFkZGl0aW9uYWwgbG9naWMgY2FuIGJlIGFkZGVkIGhlcmVcbklGIHNlcnZlclVybCA9PSBcImh0dHA6Ly9leGFtcGxlLmNvbVwiIFRIRU4ge1xuICAgIE1XRy5CbG9jayhcIkFjY2VzcyB0byBleGFtcGxlLmNvbSBpcyBibG9ja2VkXCIpXG59IEVMU0Uge1xuICAgIE1XRy5BbGxvdyhcIkNvbm5lY3Rpb24gYWxsb3dlZFwiKVxufSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIlNUUklORyBzZXJ2ZXJVcmwgPSBNV0cuQ29ubmVjdGlvblZhcmlhYmxlc0dldChcInNlcnZlci51cmxcIilcbi8vIEF0dGVtcHRpbmcgdG8gY29ubmVjdCB0byBzZXJ2ZXI6IFwiICsgc2VydmVyVXJsXG5cbi8vIEhhbmRsZSB0aGUgY29ubmVjdGlvbiB0byB0aGUgc2VydmVyXG5NV0cuSGFuZGxlQ29ubmVjdFRvU2VydmVyKHNlcnZlclVybClcblxuLy8gQWRkaXRpb25hbCBsb2dpYyBjYW4gYmUgYWRkZWQgaGVyZVxuSUYgc2VydmVyVXJsID09IFwiaHR0cDovL2V4YW1wbGUuY29tXCIgVEhFTiB7XG4gICAgTVdHLkJsb2NrKFwiQWNjZXNzIHRvIGV4YW1wbGUuY29tIGlzIGJsb2NrZWRcIilcbn0gRUxTRSB7XG4gICAgTVdHLkFsbG93KFwiQ29ubmVjdGlvbiBhbGxvd2VkXCIpXG59In0sIHsibmFtZSI6ICJNV0cuSGFzSGVhZGVyIChNV0cuSGVhZGVyTWFwLCBTVFJJTkcpIiwgInJldHVybl90eXBlIjogIkJPT0xFQU4iLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJuc2BUUlVFYGlmIHRoZSBzcGVjaWZpZWQgaGVhZGVyIGV4aXN0cyBpbiB0aGUgZ2l2ZW4gaGVhZGVyIG1hcC4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiTVdHLkhlYWRlck1hcDogYSBtYXAgY29udGFpbmluZyBoZWFkZXJzIG9mIHRoZSByZXF1ZXN0L3Jlc3BvbnNlOyBTVFJJTkc6IHRoZSBzcGVjaWZpYyBoZWFkZXIgbmFtZSB0byBjaGVjayBmb3IuIiwgImRlc2NyaXB0aW9uIjogIlJldHVybnMgVFJVRSBpZiB0aGUgcmVxdWVzdC9yZXNwb25zZSBoYXMgYSBoZWFkZXIiLCAiZXhhbXBsZV9jb2RlIjogIk1XRy5IZWFkZXJNYXAgaGVhZGVycyA9IE1XRy5HZXRSZXF1ZXN0SGVhZGVycygpXG5TVFJJTkcgaGVhZGVyTmFtZSA9IFwiVXNlci1BZ2VudFwiXG5cbklGIE1XRy5IYXNIZWFkZXIoaGVhZGVycywgaGVhZGVyTmFtZSkgVEhFTiB7XG4gICAgLy8gSGVhZGVyIFVzZXItQWdlbnQgZXhpc3RzIGluIHRoZSByZXF1ZXN0LlxufSBFTFNFIHtcbiAgICAvLyBIZWFkZXIgVXNlci1BZ2VudCBkb2VzIG5vdCBleGlzdCBpbiB0aGUgcmVxdWVzdC5cbn0iLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICJNV0cuSGVhZGVyTWFwIGhlYWRlcnMgPSBNV0cuR2V0UmVxdWVzdEhlYWRlcnMoKVxuU1RSSU5HIGhlYWRlck5hbWUgPSBcIlVzZXItQWdlbnRcIlxuXG5JRiBNV0cuSGFzSGVhZGVyKGhlYWRlcnMsIGhlYWRlck5hbWUpIFRIRU4ge1xuICAgIC8vIEhlYWRlciBVc2VyLUFnZW50IGV4aXN0cyBpbiB0aGUgcmVxdWVzdC5cbn0gRUxTRSB7XG4gICAgLy8gSGVhZGVyIFVzZXItQWdlbnQgZG9lcyBub3QgZXhpc3QgaW4gdGhlIHJlcXVlc3QuXG59In0sIHsibmFtZSI6ICJNV0cuSGFzTWF0Y2hpbmdDZXJ0aWZpY2F0ZSAoTVdHLkNsaWVudENvbnRleHRSZXZQcm94eVNldHRpbmcsIFNUUklORykiLCAicmV0dXJuX3R5cGUiOiAiQk9PTEVBTiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zYFRSVUVgaWYgYSBjZXJ0aWZpY2F0ZSBpcyBhdmFpbGFibGUgZm9yIHRoZSBzcGVjaWZpZWQgaG9zdC4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiTVdHLkNsaWVudENvbnRleHRSZXZQcm94eVNldHRpbmc6IFNwZWNpZmllcyB0aGUgcmV2ZXJzZSBwcm94eSBzZXR0aW5nczsgU1RSSU5HOiBUaGUgaG9zdCBuYW1lIHRvIGNoZWNrLiIsICJkZXNjcmlwdGlvbiI6ICJSZXR1cm5zIGlmIGEgY2VydGlmaWNhdGUgaXMgYXZhaWxhYmxlIGZvciBnaXZlbiBob3N0IiwgImV4YW1wbGVfY29kZSI6ICJNV0cuQ2xpZW50Q29udGV4dFJldlByb3h5U2V0dGluZyByZXZQcm94eVNldHRpbmcgPSAvLyBJbml0aWFsaXplIHlvdXIgcmV2ZXJzZSBwcm94eSBzZXR0aW5ncyBoZXJlXG5TVFJJTkcgaG9zdE5hbWUgPSBcImV4YW1wbGUuY29tXCJcblxuQk9PTEVBTiBoYXNDZXJ0aWZpY2F0ZSA9IE1XRy5IYXNNYXRjaGluZ0NlcnRpZmljYXRlKHJldlByb3h5U2V0dGluZywgaG9zdE5hbWUpXG5cbklGIGhhc0NlcnRpZmljYXRlIFRIRU4ge1xuICAgIC8vIEEgbWF0Y2hpbmcgY2VydGlmaWNhdGUgaXMgYXZhaWxhYmxlIGZvciBcIiArIGhvc3ROYW1lXG59IEVMU0Uge1xuICAgIC8vIE5vIG1hdGNoaW5nIGNlcnRpZmljYXRlIGZvdW5kIGZvciBcIiArIGhvc3ROYW1lXG59IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiTVdHLkNsaWVudENvbnRleHRSZXZQcm94eVNldHRpbmcgcmV2UHJveHlTZXR0aW5nID0gLy8gSW5pdGlhbGl6ZSB5b3VyIHJldmVyc2UgcHJveHkgc2V0dGluZ3MgaGVyZVxuU1RSSU5HIGhvc3ROYW1lID0gXCJleGFtcGxlLmNvbVwiXG5cbkJPT0xFQU4gaGFzQ2VydGlmaWNhdGUgPSBNV0cuSGFzTWF0Y2hpbmdDZXJ0aWZpY2F0ZShyZXZQcm94eVNldHRpbmcsIGhvc3ROYW1lKVxuXG5JRiBoYXNDZXJ0aWZpY2F0ZSBUSEVOIHtcbiAgICAvLyBBIG1hdGNoaW5nIGNlcnRpZmljYXRlIGlzIGF2YWlsYWJsZSBmb3IgXCIgKyBob3N0TmFtZVxufSBFTFNFIHtcbiAgICAvLyBObyBtYXRjaGluZyBjZXJ0aWZpY2F0ZSBmb3VuZCBmb3IgXCIgKyBob3N0TmFtZVxufSJ9LCB7Im5hbWUiOiAiTVdHLkhhc01hdGNoaW5nSGVhZGVyIChNV0cuSGVhZGVyTWFwLCBTVFJJTkcsIFJlZ0V4SlNpKSIsICJyZXR1cm5fdHlwZSI6ICJCT09MRUFOIiwgInJldHVybl9kZXNjIjogIlJldHVybnNgVFJVRWBpZiBhbnkgaGVhZGVyIGluIHRoZSBnaXZlbiBgTVdHLkhlYWRlck1hcCBgbWF0Y2hlcyB0aGUgc3BlY2lmaWVkIHJlZ3VsYXIgZXhwcmVzc2lvbi4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiTVdHLkhlYWRlck1hcDogdGhlIG1hcCBjb250YWluaW5nIGhlYWRlcnM7IFNUUklORzogdGhlIHNwZWNpZmljIGhlYWRlciBuYW1lIHRvIGJlIGNoZWNrZWQ7IFJlZ0V4SlNpOiB0aGUgcmVndWxhciBleHByZXNzaW9uIHVzZWQgdG8gbWF0Y2ggdGhlIGhlYWRlciB2YWx1ZS4iLCAiZGVzY3JpcHRpb24iOiAiUmV0dXJucyBUUlVFIGlmIGEgcmVxdWVzdC9yZXNwb25zZSBoYXMgYSBoZWFkZXIgdGhhdCBtYXRjaGVzIHRoZSBnaXZlbiByZWd1bGFyIGV4cHJlc3Npb24iLCAiZXhhbXBsZV9jb2RlIjogIk1XRy5IZWFkZXJNYXAgaGVhZGVycyA9IE1XRy5SZXF1ZXN0SGVhZGVycygpXG5TVFJJTkcgaGVhZGVyTmFtZSA9IFwiVXNlci1BZ2VudFwiXG5SZWdFeEpTaSByZWdleCA9IFJlZ0V4SlNpKFwiTW96aWxsYVwiKVxuXG5JRiBNV0cuSGFzTWF0Y2hpbmdIZWFkZXIoaGVhZGVycywgaGVhZGVyTmFtZSwgcmVnZXgpIFRIRU4ge1xuICAgIC8vIEJsb2NrZWQgZHVlIHRvIFVzZXItQWdlbnQgY29udGFpbmluZyAnTW96aWxsYSdcbiAgICBNV0cuQmxvY2soXCJCbG9ja2VkIGR1ZSB0byBVc2VyLUFnZW50IGNvbnRhaW5pbmcgJ01vemlsbGEnXCIpXG59IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiTVdHLkhlYWRlck1hcCBoZWFkZXJzID0gTVdHLlJlcXVlc3RIZWFkZXJzKClcblNUUklORyBoZWFkZXJOYW1lID0gXCJVc2VyLUFnZW50XCJcblJlZ0V4SlNpIHJlZ2V4ID0gUmVnRXhKU2koXCJNb3ppbGxhXCIpXG5cbklGIE1XRy5IYXNNYXRjaGluZ0hlYWRlcihoZWFkZXJzLCBoZWFkZXJOYW1lLCByZWdleCkgVEhFTiB7XG4gICAgLy8gQmxvY2tlZCBkdWUgdG8gVXNlci1BZ2VudCBjb250YWluaW5nICdNb3ppbGxhJ1xuICAgIE1XRy5CbG9jayhcIkJsb2NrZWQgZHVlIHRvIFVzZXItQWdlbnQgY29udGFpbmluZyAnTW96aWxsYSdcIilcbn0ifSwgeyJuYW1lIjogIk1XRy5IYXNPcGVuZXIgKCkiLCAicmV0dXJuX3R5cGUiOiAiQk9PTEVBTiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zYFRSVUVgaWYgZGF0YSBleHRyYWN0aW9uIGZvciB0aGUgZmlsZSB0eXBlIGlzIHN1cHBvcnRlZCwgb3RoZXJ3aXNlYEZBTFNFYCIsICJwYXJhbWV0ZXJfZGVzYyI6ICJOb25lIiwgImRlc2NyaXB0aW9uIjogIkNoZWNrcyBpZiBkYXRhIGV4dHJhY3Rpb24gZm9yIHRoaXMgZmlsZSB0eXBlIGlzIHN1cHBvcnRlZCIsICJleGFtcGxlX2NvZGUiOiAiLy8gQ2hlY2sgaWYgdGhlIG9wZW5lciBmb3IgYSBzcGVjaWZpYyBjb250ZW50IHR5cGUgaXMgYXZhaWxhYmxlXG5JRiBNV0cuSGFzT3BlbmVyKFwiYXBwbGljYXRpb24vcGRmXCIpIFRIRU4ge1xuICAgIC8vIFBERiBvcGVuZXIgaXMgYXZhaWxhYmxlLlxufSBFTFNFIHtcbiAgICAvLyBQREYgb3BlbmVyIGlzIG5vdCBhdmFpbGFibGUuXG59IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiLy8gQ2hlY2sgaWYgdGhlIG9wZW5lciBmb3IgYSBzcGVjaWZpYyBjb250ZW50IHR5cGUgaXMgYXZhaWxhYmxlXG5JRiBNV0cuSGFzT3BlbmVyKFwiYXBwbGljYXRpb24vcGRmXCIpIFRIRU4ge1xuICAgIC8vIFBERiBvcGVuZXIgaXMgYXZhaWxhYmxlLlxufSBFTFNFIHtcbiAgICAvLyBQREYgb3BlbmVyIGlzIG5vdCBhdmFpbGFibGUuXG59In0sIHsibmFtZSI6ICJNV0cuSGFzUGFyYW1ldGVyIChNV0cuVVJMLCBTVFJJTkcpIiwgInJldHVybl90eXBlIjogIkJPT0xFQU4iLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJuc2BUUlVFYGlmIHRoZSBzcGVjaWZpZWQgVVJMIGNvbnRhaW5zIHRoZSBzcGVjaWZpZWQgcGFyYW1ldGVyKHMpLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJNV0cuVVJMOiB0aGUgd2ViIGFkZHJlc3MgdG8gY2hlY2sgZm9yIHBhcmFtZXRlcnM7IFNUUklORzogdGhlIHNwZWNpZmljIHBhcmFtZXRlciBuYW1lIHRvIGxvb2sgZm9yIHdpdGhpbiB0aGUgVVJMLiIsICJkZXNjcmlwdGlvbiI6ICJSZXR1cm5zIFRSVUUgaWYgdGhlIFVSTCBoYXMgYSBwYXJhbWV0ZXIocykiLCAiZXhhbXBsZV9jb2RlIjogIk1XRy5VUkwgY3VycmVudFVybCA9IE1XRy5VcmwoKVxuU1RSSU5HIHBhcmFtZXRlclRvQ2hlY2sgPSBcImV4YW1wbGVQYXJhbVwiXG5cbklGIE1XRy5IYXNQYXJhbWV0ZXIoY3VycmVudFVybCwgcGFyYW1ldGVyVG9DaGVjaykgVEhFTiB7XG4gICAgLy8gVGhlIFVSTCBoYXMgdGhlIHBhcmFtZXRlcjogZXhhbXBsZVBhcmFtXG59IEVMU0Uge1xuICAgIC8vIFRoZSBVUkwgZG9lcyBub3QgaGF2ZSB0aGUgcGFyYW1ldGVyOiBleGFtcGxlUGFyYW1cbn0iLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICJNV0cuVVJMIGN1cnJlbnRVcmwgPSBNV0cuVXJsKClcblNUUklORyBwYXJhbWV0ZXJUb0NoZWNrID0gXCJleGFtcGxlUGFyYW1cIlxuXG5JRiBNV0cuSGFzUGFyYW1ldGVyKGN1cnJlbnRVcmwsIHBhcmFtZXRlclRvQ2hlY2spIFRIRU4ge1xuICAgIC8vIFRoZSBVUkwgaGFzIHRoZSBwYXJhbWV0ZXI6IGV4YW1wbGVQYXJhbVxufSBFTFNFIHtcbiAgICAvLyBUaGUgVVJMIGRvZXMgbm90IGhhdmUgdGhlIHBhcmFtZXRlcjogZXhhbXBsZVBhcmFtXG59In0sIHsibmFtZSI6ICJNV0cuSGVhZGVycyAoTVdHLlJlcXVlc3RSZXNwb25zZSkiLCAicmV0dXJuX3R5cGUiOiAiTVdHLkhlYWRlck1hcCIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIGEgbWFwIG9mIGhlYWRlcnMgZnJvbSB0aGUgZ2l2ZW4gcmVxdWVzdCBvciByZXNwb25zZS4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiTVdHLlJlcXVlc3RSZXNwb25zZTogdGhlIHJlcXVlc3Qgb3IgcmVzcG9uc2Ugb2JqZWN0LiIsICJkZXNjcmlwdGlvbiI6ICJSZXR1cm5zIHRoZSBoZWFkZXIgb2YgYSByZXF1ZXN0IG9yIHJlc3BvbnNlIiwgImV4YW1wbGVfY29kZSI6ICIvLyBSZXRyaWV2ZSB0aGUgaGVhZGVycyBmcm9tIHRoZSB3ZWIgcmVxdWVzdFxuTVdHLkhlYWRlck1hcCBoZWFkZXJzID0gTVdHLkhlYWRlcnMoV2ViLlJlcXVlc3QpXG5cbi8vIEl0ZXJhdGUgdGhyb3VnaCB0aGUgaGVhZGVycyBhbmQgcHJpbnQgZWFjaCBvbmVcbkZPUiBFQUNIIGhlYWRlciBJTiBoZWFkZXJzIHtcbiAgICAvLyBIZWFkZXI6IFwiICsgaGVhZGVyICsgXCIgVmFsdWU6IFwiICsgaGVhZGVyc1toZWFkZXJdXG59IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiLy8gUmV0cmlldmUgdGhlIGhlYWRlcnMgZnJvbSB0aGUgd2ViIHJlcXVlc3Rcbk1XRy5IZWFkZXJNYXAgaGVhZGVycyA9IE1XRy5IZWFkZXJzKFdlYi5SZXF1ZXN0KVxuXG4vLyBJdGVyYXRlIHRocm91Z2ggdGhlIGhlYWRlcnMgYW5kIHByaW50IGVhY2ggb25lXG5GT1IgRUFDSCBoZWFkZXIgSU4gaGVhZGVycyB7XG4gICAgLy8gSGVhZGVyOiBcIiArIGhlYWRlciArIFwiIFZhbHVlOiBcIiArIGhlYWRlcnNbaGVhZGVyXVxufSJ9LCB7Im5hbWUiOiAiTVdHLkhvc3QgKE1XRy5VUkwpIiwgInJldHVybl90eXBlIjogIlNUUklORyIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIHRoZSBob3N0IHBhcnQgb2YgYSBnaXZlbiBVUkwgYXMgYSBzdHJpbmcuIiwgInBhcmFtZXRlcl9kZXNjIjogIk1XRy5VUkw6IFRoZSBVUkwgZnJvbSB3aGljaCB0byBleHRyYWN0IGFuZCByZXR1cm4gdGhlIGhvc3QgYXMgYSBTVFJJTkcuIiwgImRlc2NyaXB0aW9uIjogIlJldHVybiB0aGUgaG9zdCBvZiBhbiBVUkwiLCAiZXhhbXBsZV9jb2RlIjogIk1XRy5VUkwgY3VycmVudFVybCA9IE1XRy5VcmwoKVxuU1RSSU5HIGhvc3QgPSBNV0cuSG9zdChjdXJyZW50VXJsKVxuLy8gVGhlIGhvc3QgcGFydCBvZiB0aGUgVVJMIGlzOiArIGhvc3QiLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICJNV0cuVVJMIGN1cnJlbnRVcmwgPSBNV0cuVXJsKClcblNUUklORyBob3N0ID0gTVdHLkhvc3QoY3VycmVudFVybClcbi8vIFRoZSBob3N0IHBhcnQgb2YgdGhlIFVSTCBpczogKyBob3N0In0sIHsibmFtZSI6ICJNV0cuSG9zdEFuZENlcnRpZmljYXRlTGlzdEJ5TmFtZSAoU1RSSU5HKSIsICJyZXR1cm5fdHlwZSI6ICJWRUNUT1I8TVdHLkhvc3RBbmRDZXJ0aWZpY2F0ZT4iLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyB0aGUgSG9zdEFuZENlcnRpZmljYXRlIGxpc3Qgd2l0aCB0aGUgc3BlY2lmaWVkIG5hbWUuIiwgInBhcmFtZXRlcl9kZXNjIjogIlNUUklORzogbmFtZSBvZiBsaXN0IHRvIHJldHJpZXZlIiwgImRlc2NyaXB0aW9uIjogIlJldHJpZXZlcyBhIEhvc3RBbmRDZXJ0aWZpY2F0ZSBsaXN0IGJ5IGxpc3QgbmFtZSIsICJleGFtcGxlX2NvZGUiOiAiLy8gRGVmaW5lIHRoZSBuYW1lIG9mIHRoZSBIb3N0IGFuZCBDZXJ0aWZpY2F0ZSBsaXN0IHlvdSB3YW50IHRvIHJldHJpZXZlXG5TVFJJTkcgbGlzdE5hbWUgPSBcInRydXN0ZWRIb3N0c1wiXG5cbi8vIFJldHJpZXZlIHRoZSBIb3N0IGFuZCBDZXJ0aWZpY2F0ZSBsaXN0IGJ5IG5hbWVcblZFQ1RPUjxNV0cuSG9zdEFuZENlcnRpZmljYXRlPiBob3N0QW5kQ2VydExpc3QgPSBNV0cuSG9zdEFuZENlcnRpZmljYXRlTGlzdEJ5TmFtZShsaXN0TmFtZSlcblxuLy8gQ2hlY2sgaWYgdGhlIGxpc3QgaXMgbm90IGVtcHR5XG5JRiBob3N0QW5kQ2VydExpc3QgIT0gTlVMTCBBTkQgaG9zdEFuZENlcnRMaXN0LlNJWkUoKSA+IDAgVEhFTiB7XG4gICAgLy8gSG9zdCBhbmQgQ2VydGlmaWNhdGUgbGlzdCAnbGlzdE5hbWUnIHJldHJpZXZlZCBzdWNjZXNzZnVsbHkuXG4gICAgXG4gICAgLy8gSXRlcmF0ZSB0aHJvdWdoIHRoZSBsaXN0IGFuZCBwZXJmb3JtIHNvbWUgYWN0aW9uXG4gICAgRk9SIEVBQ0ggaG9zdEFuZENlcnQgSU4gaG9zdEFuZENlcnRMaXN0IERPIHtcbiAgICAgICAgLy8gSG9zdDogaG9zdEFuZENlcnQuSG9zdCwgQ2VydGlmaWNhdGU6IGhvc3RBbmRDZXJ0LkNlcnRpZmljYXRlXG4gICAgICAgIC8vIEFkZGl0aW9uYWwgbG9naWMgYmFzZWQgb24gdGhlIGhvc3QgYW5kIGNlcnRpZmljYXRlXG4gICAgfVxufSBFTFNFIHtcbiAgICAvLyBIb3N0IGFuZCBDZXJ0aWZpY2F0ZSBsaXN0ICdsaXN0TmFtZScgaXMgZW1wdHkgb3Igbm90IGZvdW5kLlxufSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIi8vIERlZmluZSB0aGUgbmFtZSBvZiB0aGUgSG9zdCBhbmQgQ2VydGlmaWNhdGUgbGlzdCB5b3Ugd2FudCB0byByZXRyaWV2ZVxuU1RSSU5HIGxpc3ROYW1lID0gXCJ0cnVzdGVkSG9zdHNcIlxuXG4vLyBSZXRyaWV2ZSB0aGUgSG9zdCBhbmQgQ2VydGlmaWNhdGUgbGlzdCBieSBuYW1lXG5WRUNUT1I8TVdHLkhvc3RBbmRDZXJ0aWZpY2F0ZT4gaG9zdEFuZENlcnRMaXN0ID0gTVdHLkhvc3RBbmRDZXJ0aWZpY2F0ZUxpc3RCeU5hbWUobGlzdE5hbWUpXG5cbi8vIENoZWNrIGlmIHRoZSBsaXN0IGlzIG5vdCBlbXB0eVxuSUYgaG9zdEFuZENlcnRMaXN0ICE9IE5VTEwgQU5EIGhvc3RBbmRDZXJ0TGlzdC5TSVpFKCkgPiAwIFRIRU4ge1xuICAgIC8vIEhvc3QgYW5kIENlcnRpZmljYXRlIGxpc3QgJ2xpc3ROYW1lJyByZXRyaWV2ZWQgc3VjY2Vzc2Z1bGx5LlxuICAgIFxuICAgIC8vIEl0ZXJhdGUgdGhyb3VnaCB0aGUgbGlzdCBhbmQgcGVyZm9ybSBzb21lIGFjdGlvblxuICAgIEZPUiBFQUNIIGhvc3RBbmRDZXJ0IElOIGhvc3RBbmRDZXJ0TGlzdCBETyB7XG4gICAgICAgIC8vIEhvc3Q6IGhvc3RBbmRDZXJ0Lkhvc3QsIENlcnRpZmljYXRlOiBob3N0QW5kQ2VydC5DZXJ0aWZpY2F0ZVxuICAgICAgICAvLyBBZGRpdGlvbmFsIGxvZ2ljIGJhc2VkIG9uIHRoZSBob3N0IGFuZCBjZXJ0aWZpY2F0ZVxuICAgIH1cbn0gRUxTRSB7XG4gICAgLy8gSG9zdCBhbmQgQ2VydGlmaWNhdGUgbGlzdCAnbGlzdE5hbWUnIGlzIGVtcHR5IG9yIG5vdCBmb3VuZC5cbn0ifSwgeyJuYW1lIjogIk1XRy5Ib3N0QW5kQ2VydGlmaWNhdGVMaXN0QnlOYW1lRXhpc3RzIChTVFJJTkcpIiwgInJldHVybl90eXBlIjogIkJPT0xFQU4iLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJuc2BUUlVFYGlmIHRoZSBIb3N0QW5kQ2VydGlmaWNhdGUgbGlzdCB3aXRoIHRoZSBuYW1lIGV4aXN0cy4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiU1RSSU5HOiBuYW1lIG9mIGxpc3QgdG8gY2hlY2suIiwgImRlc2NyaXB0aW9uIjogIlJldHVybnMgVFJVRSBpZiBIb3N0QW5kQ2VydGlmaWNhdGUgbGlzdCB3aXRoIHRoZSBuYW1lIGV4aXN0cyIsICJleGFtcGxlX2NvZGUiOiAiU1RSSU5HIGxpc3ROYW1lID0gXCJleGFtcGxlX2xpc3RfbmFtZVwiXG5cbklGIE1XRy5Ib3N0QW5kQ2VydGlmaWNhdGVMaXN0QnlOYW1lRXhpc3RzKGxpc3ROYW1lKSBUSEVOIHtcbiAgICAvLyBUaGUgaG9zdCBhbmQgY2VydGlmaWNhdGUgbGlzdCBleGlzdHMuXG59IEVMU0Uge1xuICAgIC8vIFRoZSBob3N0IGFuZCBjZXJ0aWZpY2F0ZSBsaXN0IGRvZXMgbm90IGV4aXN0LlxufSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIlNUUklORyBsaXN0TmFtZSA9IFwiZXhhbXBsZV9saXN0X25hbWVcIlxuXG5JRiBNV0cuSG9zdEFuZENlcnRpZmljYXRlTGlzdEJ5TmFtZUV4aXN0cyhsaXN0TmFtZSkgVEhFTiB7XG4gICAgLy8gVGhlIGhvc3QgYW5kIGNlcnRpZmljYXRlIGxpc3QgZXhpc3RzLlxufSBFTFNFIHtcbiAgICAvLyBUaGUgaG9zdCBhbmQgY2VydGlmaWNhdGUgbGlzdCBkb2VzIG5vdCBleGlzdC5cbn0ifSwgeyJuYW1lIjogIk1XRy5Ib3N0SXNJUCAoTVdHLlVSTCkiLCAicmV0dXJuX3R5cGUiOiAiQk9PTEVBTiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zYFRSVUVgaWYgdGhlIGhvc3QgcGFydCBvZiB0aGUgcHJvdmlkZWQgVVJMIGlzIGFuIElQIGFkZHJlc3MuIiwgInBhcmFtZXRlcl9kZXNjIjogIk1XRy5VUkw6IFRoZSBVUkwgd2hvc2UgaG9zdCBpcyB0byBiZSBjaGVja2VkIGZvciBiZWluZyBhbiBJUCBhZGRyZXNzLiIsICJkZXNjcmlwdGlvbiI6ICJSZXR1cm5zIFRSVUUgaWYgdGhlIGhvc3Qgb2YgdGhlIGdpdmVuIFVSTCBpcyBhbiBJUCBhZGRyZXNzIiwgImV4YW1wbGVfY29kZSI6ICJNV0cuVVJMIGN1cnJlbnRVcmwgPSBNV0cuVXJsKClcbkJPT0xFQU4gaXNJUCA9IE1XRy5Ib3N0SXNJUChjdXJyZW50VXJsKVxuXG5JRiBpc0lQIFRIRU4ge1xuICAgIC8vIFRoZSBob3N0IGlzIGFuIElQIGFkZHJlc3MuXG4gICAgTVdHLkJsb2NrKFwiQWNjZXNzIHRvIElQIGFkZHJlc3NlcyBpcyBub3QgYWxsb3dlZC5cIilcbn0gRUxTRSB7XG4gICAgLy8gVGhlIGhvc3QgaXMgbm90IGFuIElQIGFkZHJlc3MuXG4gICAgTVdHLkFsbG93KFwiSG9zdCBpcyBub3QgYW4gSVAgYWRkcmVzcy5cIilcbn0iLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICJNV0cuVVJMIGN1cnJlbnRVcmwgPSBNV0cuVXJsKClcbkJPT0xFQU4gaXNJUCA9IE1XRy5Ib3N0SXNJUChjdXJyZW50VXJsKVxuXG5JRiBpc0lQIFRIRU4ge1xuICAgIC8vIFRoZSBob3N0IGlzIGFuIElQIGFkZHJlc3MuXG4gICAgTVdHLkJsb2NrKFwiQWNjZXNzIHRvIElQIGFkZHJlc3NlcyBpcyBub3QgYWxsb3dlZC5cIilcbn0gRUxTRSB7XG4gICAgLy8gVGhlIGhvc3QgaXMgbm90IGFuIElQIGFkZHJlc3MuXG4gICAgTVdHLkFsbG93KFwiSG9zdCBpcyBub3QgYW4gSVAgYWRkcmVzcy5cIilcbn0ifSwgeyJuYW1lIjogIk1XRy5Ib3N0SXNTdWJkb21haW5PZkFueSAoTVdHLlVSTCwgVkVDVE9SPFNUUklORz4pIiwgInJldHVybl90eXBlIjogIkJPT0xFQU4iLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyB3aGV0aGVyIHRoZSBob3N0IG9mIHRoZSBnaXZlbiBVUkwgaXMgYSBzdWJkb21haW4gb2YgYW55IG9mIHRoZSBwcm92aWRlZCBkb21haW5zLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJNV0cuVVJMOiB0aGUgVVJMIHdpdGggdGhlIGhvc3QgdG8gbG9vayBmb3I7IFZFQ1RPUjogYSBsaXN0IG9mIGRvbWFpbnMgdG8gY2hlY2sgYWdhaW5zdC4iLCAiZGVzY3JpcHRpb24iOiAiUmV0dXJucyB3aGV0aGVyIHRoZSBob3N0IG9mIHRoZSBnaXZlbiBVUkwgaXMgYSBzdWJkb21haW4gb2YgYW55IG9mIHRoZSBwcm92aWRlZCBkb21haW5zIiwgImV4YW1wbGVfY29kZSI6ICJNV0cuVVJMIGN1cnJlbnRVcmwgPSBNV0cuVXJsKClcblZFQ1RPUjxTVFJJTkc+IGFsbG93ZWREb21haW5zID0gXCJleGFtcGxlLmNvbVwiLCBcInRlc3QuY29tXCIsIFwic2FtcGxlLm9yZ1wiXG5cbklGIE1XRy5Ib3N0SXNTdWJkb21haW5PZkFueShjdXJyZW50VXJsLCBhbGxvd2VkRG9tYWlucykgVEhFTiB7XG4gICAgLy8gVGhlIGhvc3QgaXMgYSBzdWJkb21haW4gb2Ygb25lIG9mIHRoZSBhbGxvd2VkIGRvbWFpbnMuXG4gICAgTVdHLkFsbG93KFwiU3ViZG9tYWluIGNoZWNrIHBhc3NlZFwiKVxufSBFTFNFIHtcbiAgICAvLyBUaGUgaG9zdCBpcyBub3QgYSBzdWJkb21haW4gb2YgYW55IGFsbG93ZWQgZG9tYWlucy5cbiAgICBNV0cuQmxvY2soXCJBY2Nlc3MgZGVuaWVkOiBIb3N0IGlzIG5vdCBhIHN1YmRvbWFpbiBvZiBhbGxvd2VkIGRvbWFpbnNcIilcbn0iLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICJNV0cuVVJMIGN1cnJlbnRVcmwgPSBNV0cuVXJsKClcblZFQ1RPUjxTVFJJTkc+IGFsbG93ZWREb21haW5zID0gXCJleGFtcGxlLmNvbVwiLCBcInRlc3QuY29tXCIsIFwic2FtcGxlLm9yZ1wiXG5cbklGIE1XRy5Ib3N0SXNTdWJkb21haW5PZkFueShjdXJyZW50VXJsLCBhbGxvd2VkRG9tYWlucykgVEhFTiB7XG4gICAgLy8gVGhlIGhvc3QgaXMgYSBzdWJkb21haW4gb2Ygb25lIG9mIHRoZSBhbGxvd2VkIGRvbWFpbnMuXG4gICAgTVdHLkFsbG93KFwiU3ViZG9tYWluIGNoZWNrIHBhc3NlZFwiKVxufSBFTFNFIHtcbiAgICAvLyBUaGUgaG9zdCBpcyBub3QgYSBzdWJkb21haW4gb2YgYW55IGFsbG93ZWQgZG9tYWlucy5cbiAgICBNV0cuQmxvY2soXCJBY2Nlc3MgZGVuaWVkOiBIb3N0IGlzIG5vdCBhIHN1YmRvbWFpbiBvZiBhbGxvd2VkIGRvbWFpbnNcIilcbn0ifSwgeyJuYW1lIjogIk1XRy5Ib3N0TmFtZSAoKSIsICJyZXR1cm5fdHlwZSI6ICJTVFJJTkciLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyB0aGUgaG9zdG5hbWUgb2YgdGhlIHByb3h5LiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJOb25lIiwgImRlc2NyaXB0aW9uIjogIlJldHVybiB0aGUgaG9zdG5hbWUgb2YgdGhlIHByb3h5IiwgImV4YW1wbGVfY29kZSI6ICIvLyBDYWxsIHRoZSBNV0cuSG9zdE5hbWUoKSBmdW5jdGlvbiB0byBnZXQgdGhlIGhvc3RuYW1lIG9mIHRoZSBwcm94eVxuU1RSSU5HIHByb3h5SG9zdE5hbWUgPSBNV0cuSG9zdE5hbWUoKVxuXG4vLyBUaGUgaG9zdG5hbWUgb2YgdGhlIHByb3h5IGlzOiBcIiArIHByb3h5SG9zdE5hbWUiLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICIvLyBDYWxsIHRoZSBNV0cuSG9zdE5hbWUoKSBmdW5jdGlvbiB0byBnZXQgdGhlIGhvc3RuYW1lIG9mIHRoZSBwcm94eVxuU1RSSU5HIHByb3h5SG9zdE5hbWUgPSBNV0cuSG9zdE5hbWUoKVxuXG4vLyBUaGUgaG9zdG5hbWUgb2YgdGhlIHByb3h5IGlzOiBcIiArIHByb3h5SG9zdE5hbWUifSwgeyJuYW1lIjogIk1XRy5IVE1MRWxlbWVudE5hbWUgKCkiLCAicmV0dXJuX3R5cGUiOiAiU1RSSU5HIiwgInJldHVybl9kZXNjIjogIlJldHVybnMgdGhlIGVsZW1lbnQgbmFtZSBpbiBIVE1MIG9wZW5lci4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiTm9uZSIsICJkZXNjcmlwdGlvbiI6ICJSZXR1cm5zIHRoZSBlbGVtZW50IG5hbWUgaW4gSFRNTCBvcGVuZXIiLCAiZXhhbXBsZV9jb2RlIjogIi8vIEdldCB0aGUgbmFtZSBvZiB0aGUgSFRNTCBlbGVtZW50XG5TVFJJTkcgZWxlbWVudE5hbWUgPSBNV0cuSFRNTEVsZW1lbnROYW1lKClcblxuLy8gQ2hlY2sgaWYgdGhlIGVsZW1lbnQgbmFtZSBpcyBcInNjcmlwdFwiXG5JRiBlbGVtZW50TmFtZSA9PSBcInNjcmlwdFwiIFRIRU4ge1xuICAgIC8vIEJsb2NrIHRoZSByZXNwb25zZSBpZiB0aGUgZWxlbWVudCBpcyBhIHNjcmlwdFxuICAgIE1XRy5CbG9jayhcIkJsb2NraW5nIHNjcmlwdCBlbGVtZW50cyBmb3Igc2VjdXJpdHkgcmVhc29uc1wiKVxufSBFTFNFIHtcbiAgICAvLyBBbGxvdyB0aGUgcmVzcG9uc2UgaWYgdGhlIGVsZW1lbnQgaXMgbm90IGEgc2NyaXB0XG4gICAgTVdHLkFsbG93KFwiRWxlbWVudCBpcyBub3QgYSBzY3JpcHRcIilcbn0iLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICIvLyBHZXQgdGhlIG5hbWUgb2YgdGhlIEhUTUwgZWxlbWVudFxuU1RSSU5HIGVsZW1lbnROYW1lID0gTVdHLkhUTUxFbGVtZW50TmFtZSgpXG5cbi8vIENoZWNrIGlmIHRoZSBlbGVtZW50IG5hbWUgaXMgXCJzY3JpcHRcIlxuSUYgZWxlbWVudE5hbWUgPT0gXCJzY3JpcHRcIiBUSEVOIHtcbiAgICAvLyBCbG9jayB0aGUgcmVzcG9uc2UgaWYgdGhlIGVsZW1lbnQgaXMgYSBzY3JpcHRcbiAgICBNV0cuQmxvY2soXCJCbG9ja2luZyBzY3JpcHQgZWxlbWVudHMgZm9yIHNlY3VyaXR5IHJlYXNvbnNcIilcbn0gRUxTRSB7XG4gICAgLy8gQWxsb3cgdGhlIHJlc3BvbnNlIGlmIHRoZSBlbGVtZW50IGlzIG5vdCBhIHNjcmlwdFxuICAgIE1XRy5BbGxvdyhcIkVsZW1lbnQgaXMgbm90IGEgc2NyaXB0XCIpXG59In0sIHsibmFtZSI6ICJNV0cuSFRUUFR1bm5lbEVuYWJsZWQgKCkiLCAicmV0dXJuX3R5cGUiOiAiQk9PTEVBTiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zYFRSVUVgaWYgSFRUUCBUdW5uZWwgaXMgZW5hYmxlZC4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiTm9uZSIsICJkZXNjcmlwdGlvbiI6ICJSZXR1cm5zIFRSVUUgaWYgSFRUUCBUdW5uZWwgaXMgZW5hYmxlZCIsICJleGFtcGxlX2NvZGUiOiAiSUYgTVdHLkhUVFBUdW5uZWxFbmFibGVkKCkgVEhFTiB7XG4gICAgLy8gSFRUUCBUdW5uZWwgaXMgZW5hYmxlZFxuICAgIC8vIEFkZGl0aW9uYWwgYWN0aW9ucyBjYW4gYmUgdGFrZW4gaGVyZSBpZiBIVFRQIFR1bm5lbCBpcyBlbmFibGVkXG59IEVMU0Uge1xuICAgIC8vIEhUVFAgVHVubmVsIGlzIG5vdCBlbmFibGVkXG4gICAgLy8gQWRkaXRpb25hbCBhY3Rpb25zIGNhbiBiZSB0YWtlbiBoZXJlIGlmIEhUVFAgVHVubmVsIGlzIG5vdCBlbmFibGVkXG59IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiSUYgTVdHLkhUVFBUdW5uZWxFbmFibGVkKCkgVEhFTiB7XG4gICAgLy8gSFRUUCBUdW5uZWwgaXMgZW5hYmxlZFxuICAgIC8vIEFkZGl0aW9uYWwgYWN0aW9ucyBjYW4gYmUgdGFrZW4gaGVyZSBpZiBIVFRQIFR1bm5lbCBpcyBlbmFibGVkXG59IEVMU0Uge1xuICAgIC8vIEhUVFAgVHVubmVsIGlzIG5vdCBlbmFibGVkXG4gICAgLy8gQWRkaXRpb25hbCBhY3Rpb25zIGNhbiBiZSB0YWtlbiBoZXJlIGlmIEhUVFAgVHVubmVsIGlzIG5vdCBlbmFibGVkXG59In0sIHsibmFtZSI6ICJNV0cuSUFNQXV0aEVycm9yTWVzc2FnZSAoKSIsICJyZXR1cm5fdHlwZSI6ICJTVFJJTkciLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyB0aGUgSUFNIEF1dGggRXJyb3IgbWVzc2FnZS4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiTm9uZSIsICJkZXNjcmlwdGlvbiI6ICJHZXQgdGhlIElBTSBBdXRoIEVycm9yIG1lc3NhZ2UuIiwgImV4YW1wbGVfY29kZSI6ICJTVFJJTkcgZXJyb3JNZXNzYWdlID0gTVdHLklBTUF1dGhFcnJvck1lc3NhZ2UoKVxuXG5JRiBlcnJvck1lc3NhZ2UgIT0gXCJcIiBUSEVOIHtcbiAgICAvLyBJQU0gQXV0aGVudGljYXRpb24gRXJyb3I6IFwiICsgZXJyb3JNZXNzYWdlXG59IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiU1RSSU5HIGVycm9yTWVzc2FnZSA9IE1XRy5JQU1BdXRoRXJyb3JNZXNzYWdlKClcblxuSUYgZXJyb3JNZXNzYWdlICE9IFwiXCIgVEhFTiB7XG4gICAgLy8gSUFNIEF1dGhlbnRpY2F0aW9uIEVycm9yOiBcIiArIGVycm9yTWVzc2FnZVxufSJ9LCB7Im5hbWUiOiAiTVdHLklBTUF1dGhvcml6ZWQgKFNUUklORykiLCAicmV0dXJuX3R5cGUiOiAiU1RSSU5HIiwgInJldHVybl9kZXNjIjogIlJldHVybnMgYSBzdHJpbmcgY29udGFpbmluZyBhdXRob3JpemVkIHNjb3Blcy4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiU1RSSU5HOiB0aGUgZXhwZWN0ZWQgYXVkaWVuY2UiLCAiZGVzY3JpcHRpb24iOiAiR2V0IGF1dGhvcml6ZWQgc2NvcGVzLiIsICJleGFtcGxlX2NvZGUiOiAiU1RSSU5HIHVzZXIgPSBcImV4YW1wbGVVc2VyXCJcblNUUklORyByZXNvdXJjZSA9IFwiZXhhbXBsZVJlc291cmNlXCJcblxuLy8gQ2hlY2sgaWYgdGhlIHVzZXIgaXMgYXV0aG9yaXplZCB0byBhY2Nlc3MgdGhlIHJlc291cmNlXG5TVFJJTkcgYXV0aG9yaXphdGlvblN0YXR1cyA9IE1XRy5JQU1BdXRob3JpemVkKHVzZXIgKyBcIjpcIiArIHJlc291cmNlKVxuXG5JRiBhdXRob3JpemF0aW9uU3RhdHVzID09IFwiQVVUSE9SSVpFRFwiIFRIRU4ge1xuICAgIE1XRy5BbGxvdyhcIlVzZXIgaXMgYXV0aG9yaXplZFwiKVxufSBFTFNFIHtcbiAgICBNV0cuQmxvY2soXCJVc2VyIGlzIG5vdCBhdXRob3JpemVkXCIpXG59IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiU1RSSU5HIHVzZXIgPSBcImV4YW1wbGVVc2VyXCJcblNUUklORyByZXNvdXJjZSA9IFwiZXhhbXBsZVJlc291cmNlXCJcblxuLy8gQ2hlY2sgaWYgdGhlIHVzZXIgaXMgYXV0aG9yaXplZCB0byBhY2Nlc3MgdGhlIHJlc291cmNlXG5TVFJJTkcgYXV0aG9yaXphdGlvblN0YXR1cyA9IE1XRy5JQU1BdXRob3JpemVkKHVzZXIgKyBcIjpcIiArIHJlc291cmNlKVxuXG5JRiBhdXRob3JpemF0aW9uU3RhdHVzID09IFwiQVVUSE9SSVpFRFwiIFRIRU4ge1xuICAgIE1XRy5BbGxvdyhcIlVzZXIgaXMgYXV0aG9yaXplZFwiKVxufSBFTFNFIHtcbiAgICBNV0cuQmxvY2soXCJVc2VyIGlzIG5vdCBhdXRob3JpemVkXCIpXG59In0sIHsibmFtZSI6ICJNV0cuSUNBUENsaWVudFJlcU1vZEhlYWRlcnMgKE1XRy5JQ0FQQ2xpZW50U2V0dGluZykiLCAicmV0dXJuX3R5cGUiOiAiTVdHLkhlYWRlck1hcCIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIHRoZSBJQ0FQIHJlcXVlc3QgaGVhZGVycyBhcyBhIGBNV0cuSGVhZGVyTWFwYC4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiTVdHLklDQVBDbGllbnRTZXR0aW5nOiB0aGUgSUNBUCBjbGllbnQgY29uZmlndXJhdGlvbnMgZm9yIHJldHJpZXZpbmcgdGhlIHJlcXVlc3QgaGVhZGVycy4iLCAiZGVzY3JpcHRpb24iOiAiR2V0IElDQVAgcmVxdWVzdCBoZWFkZXJzIiwgImV4YW1wbGVfY29kZSI6ICJNV0cuSUNBUENsaWVudFNldHRpbmcgaWNhcFNldHRpbmcgPSAuLi4gLy8gSW5pdGlhbGl6ZSB5b3VyIElDQVAgY2xpZW50IHNldHRpbmcgaGVyZVxuXG4vLyBBZGQgYSBjdXN0b20gaGVhZGVyIHRvIHRoZSBJQ0FQIHJlcXVlc3Rcbk1XRy5JQ0FQQ2xpZW50QWRkUmVxdWVzdEhlYWRlcihpY2FwU2V0dGluZywgXCJYLUN1c3RvbS1IZWFkZXJcIiwgXCJDdXN0b21WYWx1ZVwiKVxuXG4vLyBPcHRpb25hbGx5LCB5b3UgY2FuIGFkZCBtb3JlIGhlYWRlcnMgYXMgbmVlZGVkXG5NV0cuSUNBUENsaWVudEFkZFJlcXVlc3RIZWFkZXIoaWNhcFNldHRpbmcsIFwiWC1Bbm90aGVyLUhlYWRlclwiLCBcIkFub3RoZXJWYWx1ZVwiKVxuXG4vLyBDb250aW51ZSB3aXRoIG90aGVyIGxvZ2ljIG9yIGFsbG93IHRoZSByZXF1ZXN0XG5NV0cuQWxsb3coXCJJQ0FQIGhlYWRlcnMgYWRkZWRcIikiLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICJNV0cuSUNBUENsaWVudFNldHRpbmcgaWNhcFNldHRpbmcgPSAuLi4gLy8gSW5pdGlhbGl6ZSB5b3VyIElDQVAgY2xpZW50IHNldHRpbmcgaGVyZVxuXG4vLyBBZGQgYSBjdXN0b20gaGVhZGVyIHRvIHRoZSBJQ0FQIHJlcXVlc3Rcbk1XRy5JQ0FQQ2xpZW50QWRkUmVxdWVzdEhlYWRlcihpY2FwU2V0dGluZywgXCJYLUN1c3RvbS1IZWFkZXJcIiwgXCJDdXN0b21WYWx1ZVwiKVxuXG4vLyBPcHRpb25hbGx5LCB5b3UgY2FuIGFkZCBtb3JlIGhlYWRlcnMgYXMgbmVlZGVkXG5NV0cuSUNBUENsaWVudEFkZFJlcXVlc3RIZWFkZXIoaWNhcFNldHRpbmcsIFwiWC1Bbm90aGVyLUhlYWRlclwiLCBcIkFub3RoZXJWYWx1ZVwiKVxuXG4vLyBDb250aW51ZSB3aXRoIG90aGVyIGxvZ2ljIG9yIGFsbG93IHRoZSByZXF1ZXN0XG5NV0cuQWxsb3coXCJJQ0FQIGhlYWRlcnMgYWRkZWRcIikifSwgeyJuYW1lIjogIk1XRy5JQ0FQQ2xpZW50UmVxTW9kU2F0aXNmYWN0aW9uIChNV0cuSUNBUENsaWVudFNldHRpbmcpIiwgInJldHVybl90eXBlIjogIkJPT0xFQU4iLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJuc2BUUlVFYGlmIHRoZSBJQ0FQIHNlcnZlciByZXNwb25kcyB0byBhIFJlcU1vZCByZXF1ZXN0IHdpdGggYSByZXNwb25zZSBoZWFkZXIuIiwgInBhcmFtZXRlcl9kZXNjIjogIk1XRy5JQ0FQQ2xpZW50U2V0dGluZzogdGhlIGNvbmZpZ3VyYXRpb24gc2V0dGluZ3MgZm9yIHRoZSBJQ0FQIHNlcnZlci4iLCAiZGVzY3JpcHRpb24iOiAiUmV0dXJucyBUUlVFIGlmIHRoZSBJQ0FQIHNlcnZlciByZXNwb25kcyB0byBhIFJlcU1vZCByZXF1ZXN0IHdpdGggYSByZXNwb25zZSBoZWFkZXIiLCAiZXhhbXBsZV9jb2RlIjogIi8vIENyZWF0ZSBhbiBJQ0FQIGNsaWVudCBzZXR0aW5nIG9iamVjdFxuTVdHLklDQVBDbGllbnRTZXR0aW5nIGljYXBTZXR0aW5nID0gTVdHLklDQVBDbGllbnRTZXR0aW5nKClcblxuLy8gQXNzdW1pbmcgTVdHLklDQVBDbGllbnRSZXFNb2RTYXRpc2ZhY3Rpb24gaXMgYSBmdW5jdGlvbiB0aGF0IHRha2VzIGFuIElDQVAgY2xpZW50IHNldHRpbmdcbk1XRy5JQ0FQQ2xpZW50UmVxTW9kU2F0aXNmYWN0aW9uKGljYXBTZXR0aW5nKVxuXG4vLyBDYWxsZWQgTVdHLklDQVBDbGllbnRSZXFNb2RTYXRpc2ZhY3Rpb24gd2l0aCB0aGUgSUNBUCBjbGllbnQgc2V0dGluZyIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIi8vIENyZWF0ZSBhbiBJQ0FQIGNsaWVudCBzZXR0aW5nIG9iamVjdFxuTVdHLklDQVBDbGllbnRTZXR0aW5nIGljYXBTZXR0aW5nID0gTVdHLklDQVBDbGllbnRTZXR0aW5nKClcblxuLy8gQXNzdW1pbmcgTVdHLklDQVBDbGllbnRSZXFNb2RTYXRpc2ZhY3Rpb24gaXMgYSBmdW5jdGlvbiB0aGF0IHRha2VzIGFuIElDQVAgY2xpZW50IHNldHRpbmdcbk1XRy5JQ0FQQ2xpZW50UmVxTW9kU2F0aXNmYWN0aW9uKGljYXBTZXR0aW5nKVxuXG4vLyBDYWxsZWQgTVdHLklDQVBDbGllbnRSZXFNb2RTYXRpc2ZhY3Rpb24gd2l0aCB0aGUgSUNBUCBjbGllbnQgc2V0dGluZyJ9LCB7Im5hbWUiOiAiTVdHLklDQVBDbGllbnRSZXNwTW9kRW5jYXBzdWxhdGVkSFRUUENoYW5nZWQgKE1XRy5JQ0FQQ2xpZW50U2V0dGluZykiLCAicmV0dXJuX3R5cGUiOiAiQk9PTEVBTiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zYFRSVUVgaWYgdGhlIElDQVAgc2VydmVyIGNoYW5nZXMgdGhlIEhUVFAgc3RhdGUgb2YgdGhlIHJlc3BvbnNlLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJNV0cuSUNBUENsaWVudFNldHRpbmc6IHRoZSBjb25maWd1cmF0aW9uIHNldHRpbmdzIGZvciB0aGUgSUNBUCBzZXJ2ZXIuIiwgImRlc2NyaXB0aW9uIjogIlJldHVybnMgVFJVRSBpZiB0aGUgSUNBUCBzZXJ2ZXIgY2hhbmdlcyB0aGUgSFRUUCBzdGF0ZSBvZiB0aGUgcmVzcG9uc2UiLCAiZXhhbXBsZV9jb2RlIjogIk1XRy5JQ0FQQ2xpZW50U2V0dGluZyBpY2FwU2V0dGluZ3MgPSAuLi4gLy8gSW5pdGlhbGl6ZSB3aXRoIGFwcHJvcHJpYXRlIHNldHRpbmdzXG5cbklGIE1XRy5JQ0FQQ2xpZW50UmVzcE1vZEVuY2Fwc3VsYXRlZEhUVFBDaGFuZ2VkKGljYXBTZXR0aW5ncykgVEhFTiB7XG4gICAgLy8gSUNBUCBzZXJ2ZXIgY2hhbmdlZCB0aGUgSFRUUCBzdGF0ZSBvZiB0aGUgcmVzcG9uc2UuXG4gICAgLy8gQWRkaXRpb25hbCBsb2dpYyBpZiB0aGUgSFRUUCBzdGF0ZSB3YXMgY2hhbmdlZFxufSBFTFNFIHtcbiAgICAvLyBJQ0FQIHNlcnZlciBkaWQgbm90IGNoYW5nZSB0aGUgSFRUUCBzdGF0ZSBvZiB0aGUgcmVzcG9uc2UuXG4gICAgLy8gQWRkaXRpb25hbCBsb2dpYyBpZiB0aGUgSFRUUCBzdGF0ZSB3YXMgbm90IGNoYW5nZWRcbn0iLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICJNV0cuSUNBUENsaWVudFNldHRpbmcgaWNhcFNldHRpbmdzID0gLi4uIC8vIEluaXRpYWxpemUgd2l0aCBhcHByb3ByaWF0ZSBzZXR0aW5nc1xuXG5JRiBNV0cuSUNBUENsaWVudFJlc3BNb2RFbmNhcHN1bGF0ZWRIVFRQQ2hhbmdlZChpY2FwU2V0dGluZ3MpIFRIRU4ge1xuICAgIC8vIElDQVAgc2VydmVyIGNoYW5nZWQgdGhlIEhUVFAgc3RhdGUgb2YgdGhlIHJlc3BvbnNlLlxuICAgIC8vIEFkZGl0aW9uYWwgbG9naWMgaWYgdGhlIEhUVFAgc3RhdGUgd2FzIGNoYW5nZWRcbn0gRUxTRSB7XG4gICAgLy8gSUNBUCBzZXJ2ZXIgZGlkIG5vdCBjaGFuZ2UgdGhlIEhUVFAgc3RhdGUgb2YgdGhlIHJlc3BvbnNlLlxuICAgIC8vIEFkZGl0aW9uYWwgbG9naWMgaWYgdGhlIEhUVFAgc3RhdGUgd2FzIG5vdCBjaGFuZ2VkXG59In0sIHsibmFtZSI6ICJNV0cuSUNBUENsaWVudFJlc3BNb2RIZWFkZXJzIChNV0cuSUNBUENsaWVudFNldHRpbmcpIiwgInJldHVybl90eXBlIjogIk1XRy5IZWFkZXJNYXAiLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyBhIG1hcCBvZiByZXNwb25zZSBoZWFkZXJzIGZyb20gYW4gSUNBUCBjbGllbnQuIiwgInBhcmFtZXRlcl9kZXNjIjogIk1XRy5JQ0FQQ2xpZW50U2V0dGluZzogQ29uZmlndXJhdGlvbiBzZXR0aW5ncyBmb3IgdGhlIElDQVAgY2xpZW50LiIsICJkZXNjcmlwdGlvbiI6ICJHZXQgSUNBUCByZXNwb25zZSBoZWFkZXJzIiwgImV4YW1wbGVfY29kZSI6ICJNV0cuSUNBUENsaWVudFNldHRpbmcgaWNhcFNldHRpbmcgPSAuLi4gLy8gSW5pdGlhbGl6ZSB5b3VyIElDQVAgY2xpZW50IHNldHRpbmcgaGVyZVxuU1RSSU5HIGhlYWRlck5hbWUgPSBcIlgtQ3VzdG9tLUhlYWRlclwiXG5TVFJJTkcgaGVhZGVyVmFsdWUgPSBcIkN1c3RvbVZhbHVlXCJcblxuTVdHLklDQVBDbGllbnRBZGRSZXF1ZXN0SGVhZGVyKGljYXBTZXR0aW5nLCBoZWFkZXJOYW1lLCBoZWFkZXJWYWx1ZSlcbi8vIEFkZGVkIElDQVAgcmVxdWVzdCBoZWFkZXI6IFwiICsgaGVhZGVyTmFtZSArIFwiIHdpdGggdmFsdWU6IFwiICsgaGVhZGVyVmFsdWUiLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICJNV0cuSUNBUENsaWVudFNldHRpbmcgaWNhcFNldHRpbmcgPSAuLi4gLy8gSW5pdGlhbGl6ZSB5b3VyIElDQVAgY2xpZW50IHNldHRpbmcgaGVyZVxuU1RSSU5HIGhlYWRlck5hbWUgPSBcIlgtQ3VzdG9tLUhlYWRlclwiXG5TVFJJTkcgaGVhZGVyVmFsdWUgPSBcIkN1c3RvbVZhbHVlXCJcblxuTVdHLklDQVBDbGllbnRBZGRSZXF1ZXN0SGVhZGVyKGljYXBTZXR0aW5nLCBoZWFkZXJOYW1lLCBoZWFkZXJWYWx1ZSlcbi8vIEFkZGVkIElDQVAgcmVxdWVzdCBoZWFkZXI6IFwiICsgaGVhZGVyTmFtZSArIFwiIHdpdGggdmFsdWU6IFwiICsgaGVhZGVyVmFsdWUifSwgeyJuYW1lIjogIk1XRy5JbkN1c3RvbWVyQ29udHJvbGxlZFBvbGljeSAoKSIsICJyZXR1cm5fdHlwZSI6ICJCT09MRUFOIiwgInJldHVybl9kZXNjIjogIlJldHVybnNgVFJVRWBpZiB0aGUgY3VycmVudCBwb2xpY3kgaXMgY3VzdG9tZXIgY29udHJvbGxlZC4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiTm9uZSIsICJkZXNjcmlwdGlvbiI6ICJSZXR1cm5zIFRSVUUgaWYgdGhlIGN1cnJlbnQgcG9saWN5IGlzIGN1c3RvbWVyIGNvbnRyb2xsZWQiLCAiZXhhbXBsZV9jb2RlIjogIklGIE1XRy5JbkN1c3RvbWVyQ29udHJvbGxlZFBvbGljeSgpIFRIRU4ge1xuICAgIC8vIFwiUmVxdWVzdCBpcyB3aXRoaW4gY3VzdG9tZXItY29udHJvbGxlZCBwb2xpY3kuXCJcbiAgICAvLyBBZGRpdGlvbmFsIGxvZ2ljIGZvciByZXF1ZXN0cyB3aXRoaW4gY3VzdG9tZXItY29udHJvbGxlZCBwb2xpY3lcbn0gRUxTRSB7XG4gICAgLy8gXCJSZXF1ZXN0IGlzIG5vdCB3aXRoaW4gY3VzdG9tZXItY29udHJvbGxlZCBwb2xpY3kuXCJcbiAgICAvLyBBZGRpdGlvbmFsIGxvZ2ljIGZvciByZXF1ZXN0cyBvdXRzaWRlIGN1c3RvbWVyLWNvbnRyb2xsZWQgcG9saWN5XG59IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiSUYgTVdHLkluQ3VzdG9tZXJDb250cm9sbGVkUG9saWN5KCkgVEhFTiB7XG4gICAgLy8gXCJSZXF1ZXN0IGlzIHdpdGhpbiBjdXN0b21lci1jb250cm9sbGVkIHBvbGljeS5cIlxuICAgIC8vIEFkZGl0aW9uYWwgbG9naWMgZm9yIHJlcXVlc3RzIHdpdGhpbiBjdXN0b21lci1jb250cm9sbGVkIHBvbGljeVxufSBFTFNFIHtcbiAgICAvLyBcIlJlcXVlc3QgaXMgbm90IHdpdGhpbiBjdXN0b21lci1jb250cm9sbGVkIHBvbGljeS5cIlxuICAgIC8vIEFkZGl0aW9uYWwgbG9naWMgZm9yIHJlcXVlc3RzIG91dHNpZGUgY3VzdG9tZXItY29udHJvbGxlZCBwb2xpY3lcbn0ifSwgeyJuYW1lIjogIk1XRy5JbnRlcm5hbE9yaWdpbmFsVVJMICgpIiwgInJldHVybl90eXBlIjogIlNUUklORyIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIHRoZSBvcmlnaW5hbCBVUkwgdXNlZCBpbiByZWRpcmVjdHMgYXMgYSBzdHJpbmcuIiwgInBhcmFtZXRlcl9kZXNjIjogIk5vbmUiLCAiZGVzY3JpcHRpb24iOiAiT3JpZ2luYWwgVVJMLCB1c2VkIGluIHJlZGlyZWN0cyIsICJleGFtcGxlX2NvZGUiOiAiU1RSSU5HIG9yaWdpbmFsVXJsID0gXCJodHRwOi8vaW50ZXJuYWwuZXhhbXBsZS5jb20vcmVzb3VyY2VcIlxuTVdHLlNldE9yaWdpbmFsSW50ZXJuYWxVcmwob3JpZ2luYWxVcmwpXG4vLyBPcmlnaW5hbCBpbnRlcm5hbCBVUkwgc2V0IHRvOiBcIiArIG9yaWdpbmFsVXJsIiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiU1RSSU5HIG9yaWdpbmFsVXJsID0gXCJodHRwOi8vaW50ZXJuYWwuZXhhbXBsZS5jb20vcmVzb3VyY2VcIlxuTVdHLlNldE9yaWdpbmFsSW50ZXJuYWxVcmwob3JpZ2luYWxVcmwpXG4vLyBPcmlnaW5hbCBpbnRlcm5hbCBVUkwgc2V0IHRvOiBcIiArIG9yaWdpbmFsVXJsIn0sIHsibmFtZSI6ICJNV0cuSW5UaGVDbG91ZCAoKSIsICJyZXR1cm5fdHlwZSI6ICJCT09MRUFOIiwgInJldHVybl9kZXNjIjogIlJldHVybnNgVFJVRWBpZiB0aGUgY29kZSBpcyBleGVjdXRpbmcgaW4gYSBjbG91ZCBlbnZpcm9ubWVudC4gT3RoZXJ3aXNlLCBpdCByZXR1cm5zYEZBTFNFYCIsICJwYXJhbWV0ZXJfZGVzYyI6ICJOb25lIiwgImRlc2NyaXB0aW9uIjogIlJldHVybnMgVFJVRSBpZiBydW5uaW5nIGluIHRoZSBjbG91ZCIsICJleGFtcGxlX2NvZGUiOiAiSUYgTVdHLkluVGhlQ2xvdWQoKSBUSEVOIHtcbiAgICAvLyBcIlJ1bm5pbmcgaW4gdGhlIGNsb3VkIGVudmlyb25tZW50LlwiXG59IEVMU0Uge1xuICAgIC8vIFwiUnVubmluZyBpbiBhbiBvbi1wcmVtaXNlcyBlbnZpcm9ubWVudC5cIlxufSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIklGIE1XRy5JblRoZUNsb3VkKCkgVEhFTiB7XG4gICAgLy8gXCJSdW5uaW5nIGluIHRoZSBjbG91ZCBlbnZpcm9ubWVudC5cIlxufSBFTFNFIHtcbiAgICAvLyBcIlJ1bm5pbmcgaW4gYW4gb24tcHJlbWlzZXMgZW52aXJvbm1lbnQuXCJcbn0ifSwgeyJuYW1lIjogIk1XRy5JUEF1dGhHZXRUZW5hbnQgKE1XRy5JUFJhbmdlQXV0aGVudGljYXRpb24sIE5ldC5JUCkiLCAicmV0dXJuX3R5cGUiOiAiU1RSSU5HIiwgInJldHVybl9kZXNjIjogIlJldHVybnMgdGhlIG5hbWUgb2YgdGhlIHRlbmFudC4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiTVdHLklQUmFuZ2VBdXRoZW50aWNhdGlvbjpjdXN0b21lcj9cdTAwYzdcdTAwZDZzIGlwIHJhbmdlOyBOZXQuSVA6IGlwIGFkZHJlc3MgdG8gY2hlY2suIiwgImRlc2NyaXB0aW9uIjogIkdldCB0ZW5hbnQgYmFzZWQgb24gSVAgYWRkcmVzcyIsICJleGFtcGxlX2NvZGUiOiAiTVdHLklQUmFuZ2VBdXRoZW50aWNhdGlvbiBpcFJhbmdlQXV0aCA9IC4uLiAvLyBJbml0aWFsaXplIG9yIG9idGFpbiB0aGUgSVAgcmFuZ2UgYXV0aGVudGljYXRpb24gb2JqZWN0XG5OZXQuSVAgY2xpZW50SVAgPSAuLi4gLy8gSW5pdGlhbGl6ZSBvciBvYnRhaW4gdGhlIGNsaWVudCdzIElQIGFkZHJlc3NcblxuU1RSSU5HIHRlbmFudE5hbWUgPSBNV0cuSVBBdXRoR2V0VGVuYW50KGlwUmFuZ2VBdXRoLCBjbGllbnRJUClcblxuSUYgdGVuYW50TmFtZSAhPSBcIlwiIFRIRU4ge1xuICAgIC8vIFwiVGVuYW50IE5hbWU6IFwiICsgdGVuYW50TmFtZVxufSBFTFNFIHtcbiAgICAvLyBcIk5vIHRlbmFudCBmb3VuZCBmb3IgdGhlIGdpdmVuIElQIGFkZHJlc3MuXCJcbn0iLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICJNV0cuSVBSYW5nZUF1dGhlbnRpY2F0aW9uIGlwUmFuZ2VBdXRoID0gLi4uIC8vIEluaXRpYWxpemUgb3Igb2J0YWluIHRoZSBJUCByYW5nZSBhdXRoZW50aWNhdGlvbiBvYmplY3Rcbk5ldC5JUCBjbGllbnRJUCA9IC4uLiAvLyBJbml0aWFsaXplIG9yIG9idGFpbiB0aGUgY2xpZW50J3MgSVAgYWRkcmVzc1xuXG5TVFJJTkcgdGVuYW50TmFtZSA9IE1XRy5JUEF1dGhHZXRUZW5hbnQoaXBSYW5nZUF1dGgsIGNsaWVudElQKVxuXG5JRiB0ZW5hbnROYW1lICE9IFwiXCIgVEhFTiB7XG4gICAgLy8gXCJUZW5hbnQgTmFtZTogXCIgKyB0ZW5hbnROYW1lXG59IEVMU0Uge1xuICAgIC8vIFwiTm8gdGVuYW50IGZvdW5kIGZvciB0aGUgZ2l2ZW4gSVAgYWRkcmVzcy5cIlxufSJ9LCB7Im5hbWUiOiAiTVdHLklQTGlzdEJ5SUQgKFNUUklORykiLCAicmV0dXJuX3R5cGUiOiAiVkVDVE9SPE5ldC5JUD4iLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyBhIHZlY3RvciBjb3JyZXNwb25kaW5nIHRvIHRoZSBwcm92aWRlZCBsaXN0IElELiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJTVFJJTkc6IHRoZSBpZGVudGlmaWVyIG9mIHRoZSBsaXN0IHRvIGJlIHJldHJpZXZlZC4iLCAiZGVzY3JpcHRpb24iOiAiUmV0cmlldmVzIGEgVkVDVE9SIGJ5IGxpc3QgSUQiLCAiZXhhbXBsZV9jb2RlIjogIlNUUklORyBpcExpc3RJRCA9IFwiZXhhbXBsZV9pcF9saXN0X2lkXCJcblZFQ1RPUjxOZXQuSVA+IGlwTGlzdCA9IE1XRy5JUExpc3RCeUlEKGlwTGlzdElEKVxuXG5OZXQuSVAgY2xpZW50SVAgPSBNV0cuQ2xpZW50SVAoKVxuXG5JRiBjbGllbnRJUCBJTiBpcExpc3QgVEhFTiB7XG4gICAgLy8gQWNjZXNzIGRlbmllZDogWW91ciBJUCBpcyBpbiB0aGUgcmVzdHJpY3RlZCBsaXN0LlxuICAgIE1XRy5CbG9jayhcIkFjY2VzcyBkZW5pZWQ6IFlvdXIgSVAgaXMgaW4gdGhlIHJlc3RyaWN0ZWQgbGlzdC5cIilcbn0gRUxTRSB7XG4gICAgLy8gSVAgbm90IGluIHJlc3RyaWN0ZWQgbGlzdFxuICAgIE1XRy5BbGxvdyhcIklQIG5vdCBpbiByZXN0cmljdGVkIGxpc3RcIilcbn0iLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICJTVFJJTkcgaXBMaXN0SUQgPSBcImV4YW1wbGVfaXBfbGlzdF9pZFwiXG5WRUNUT1I8TmV0LklQPiBpcExpc3QgPSBNV0cuSVBMaXN0QnlJRChpcExpc3RJRClcblxuTmV0LklQIGNsaWVudElQID0gTVdHLkNsaWVudElQKClcblxuSUYgY2xpZW50SVAgSU4gaXBMaXN0IFRIRU4ge1xuICAgIC8vIEFjY2VzcyBkZW5pZWQ6IFlvdXIgSVAgaXMgaW4gdGhlIHJlc3RyaWN0ZWQgbGlzdC5cbiAgICBNV0cuQmxvY2soXCJBY2Nlc3MgZGVuaWVkOiBZb3VyIElQIGlzIGluIHRoZSByZXN0cmljdGVkIGxpc3QuXCIpXG59IEVMU0Uge1xuICAgIC8vIElQIG5vdCBpbiByZXN0cmljdGVkIGxpc3RcbiAgICBNV0cuQWxsb3coXCJJUCBub3QgaW4gcmVzdHJpY3RlZCBsaXN0XCIpXG59In0sIHsibmFtZSI6ICJNV0cuSVBMaXN0QnlOYW1lIChTVFJJTkcpIiwgInJldHVybl90eXBlIjogIlZFQ1RPUjxOZXQuSVA+IiwgInJldHVybl9kZXNjIjogIlJldHVybnMgYSB2ZWN0b3IgY29ycmVzcG9uZGluZyB0byB0aGUgc3BlY2lmaWVkIGxpc3QgbmFtZS4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiU1RSSU5HOiB0aGUgbmFtZSBvZiB0aGUgbGlzdCB0byByZXRyaWV2ZS4iLCAiZGVzY3JpcHRpb24iOiAiUmV0cmlldmVzIGEgVkVDVE9SIGJ5IGxpc3QgbmFtZSIsICJleGFtcGxlX2NvZGUiOiAiVkVDVE9SPE5ldC5JUFJhbmdlPiBpcFJhbmdlcyA9IE1XRy5JUFJhbmdlTGlzdEJ5TmFtZShcInRydXN0ZWRfaXBfcmFuZ2VzXCIpXG5cbk5ldC5JUCBjbGllbnRJUCA9IE1XRy5DbGllbnQuSVAoKVxuXG5CT09MRUFOIGlzVHJ1c3RlZCA9IEZBTFNFXG5cbkZPUiBFQUNIIE5ldC5JUFJhbmdlIHJhbmdlIElOIGlwUmFuZ2VzIHtcbiAgICBJRiByYW5nZS5Db250YWlucyhjbGllbnRJUCkgVEhFTiB7XG4gICAgICAgIGlzVHJ1c3RlZCA9IFRSVUVcbiAgICAgICAgQlJFQUtcbiAgICB9XG59XG5cbklGIGlzVHJ1c3RlZCBUSEVOIHtcbiAgICAvLyBDbGllbnQgSVAgaXMgaW4gdHJ1c3RlZCByYW5nZVxuICAgIE1XRy5BbGxvdyhcIkNsaWVudCBJUCBpcyBpbiB0cnVzdGVkIHJhbmdlXCIpXG59IEVMU0Uge1xuICAgIC8vIENsaWVudCBJUCBpcyBub3QgaW4gdHJ1c3RlZCByYW5nZVxuICAgIE1XRy5CbG9jayhcIkNsaWVudCBJUCBpcyBub3QgaW4gdHJ1c3RlZCByYW5nZVwiKVxufSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIlZFQ1RPUjxOZXQuSVBSYW5nZT4gaXBSYW5nZXMgPSBNV0cuSVBSYW5nZUxpc3RCeU5hbWUoXCJ0cnVzdGVkX2lwX3Jhbmdlc1wiKVxuXG5OZXQuSVAgY2xpZW50SVAgPSBNV0cuQ2xpZW50LklQKClcblxuQk9PTEVBTiBpc1RydXN0ZWQgPSBGQUxTRVxuXG5GT1IgRUFDSCBOZXQuSVBSYW5nZSByYW5nZSBJTiBpcFJhbmdlcyB7XG4gICAgSUYgcmFuZ2UuQ29udGFpbnMoY2xpZW50SVApIFRIRU4ge1xuICAgICAgICBpc1RydXN0ZWQgPSBUUlVFXG4gICAgICAgIEJSRUFLXG4gICAgfVxufVxuXG5JRiBpc1RydXN0ZWQgVEhFTiB7XG4gICAgLy8gQ2xpZW50IElQIGlzIGluIHRydXN0ZWQgcmFuZ2VcbiAgICBNV0cuQWxsb3coXCJDbGllbnQgSVAgaXMgaW4gdHJ1c3RlZCByYW5nZVwiKVxufSBFTFNFIHtcbiAgICAvLyBDbGllbnQgSVAgaXMgbm90IGluIHRydXN0ZWQgcmFuZ2VcbiAgICBNV0cuQmxvY2soXCJDbGllbnQgSVAgaXMgbm90IGluIHRydXN0ZWQgcmFuZ2VcIilcbn0ifSwgeyJuYW1lIjogIk1XRy5JUExpc3RCeU5hbWVFeGlzdHMgKFNUUklORykiLCAicmV0dXJuX3R5cGUiOiAiQk9PTEVBTiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zYFRSVUVgaWYgYSBWRUNUT1I8YE5ldC5JUGA+IGxpc3Qgd2l0aCB0aGUgbmFtZSBleGlzdHMuIiwgInBhcmFtZXRlcl9kZXNjIjogIlNUUklORzogbmFtZSBvZiBsaXN0IHRvIGNoZWNrIGZvci4iLCAiZGVzY3JpcHRpb24iOiAiUmV0dXJucyBUUlVFIGlmIFZFQ1RPUjxOZXQuSVA+IGxpc3Qgd2l0aCB0aGUgbmFtZSBleGlzdHMiLCAiZXhhbXBsZV9jb2RlIjogIlNUUklORyBsaXN0TmFtZSA9IFwiZXhhbXBsZV9pcF9saXN0XCJcblxuSUYgTVdHLklQTGlzdEJ5TmFtZUV4aXN0cyhsaXN0TmFtZSkgVEhFTiB7XG4gICAgLy8gVGhlIElQIGxpc3QgZXhpc3RzLlxufSBFTFNFIHtcbiAgICAvLyBUaGUgSVAgbGlzdCBkb2VzIG5vdCBleGlzdC5cbn0iLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICJTVFJJTkcgbGlzdE5hbWUgPSBcImV4YW1wbGVfaXBfbGlzdFwiXG5cbklGIE1XRy5JUExpc3RCeU5hbWVFeGlzdHMobGlzdE5hbWUpIFRIRU4ge1xuICAgIC8vIFRoZSBJUCBsaXN0IGV4aXN0cy5cbn0gRUxTRSB7XG4gICAgLy8gVGhlIElQIGxpc3QgZG9lcyBub3QgZXhpc3QuXG59In0sIHsibmFtZSI6ICJNV0cuSVBSYW5nZUxpc3RCeUlEIChTVFJJTkcpIiwgInJldHVybl90eXBlIjogIlZFQ1RPUjxOZXQuSVBSYW5nZT4iLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyBhIHZlY3RvciBvZiBJUCByYW5nZXMgYXNzb2NpYXRlZCB3aXRoIHRoZSBzcGVjaWZpZWQgSUQuIiwgInBhcmFtZXRlcl9kZXNjIjogIlNUUklORzogdGhlIHVuaXF1ZSBpZGVudGlmaWVyIHVzZWQgdG8gcmV0cmlldmUgdGhlIFZFQ1RPUi4iLCAiZGVzY3JpcHRpb24iOiAiUmV0cmlldmVzIGEgVkVDVE9SIGJ5IElEIiwgImV4YW1wbGVfY29kZSI6ICIvLyBEZWZpbmUgdGhlIElEIG9mIHRoZSBJUCByYW5nZSBsaXN0IHlvdSB3YW50IHRvIHJldHJpZXZlXG5TVFJJTkcgaXBSYW5nZUxpc3RJRCA9IFwiZXhhbXBsZV9pcF9yYW5nZV9saXN0X2lkXCJcblxuLy8gUmV0cmlldmUgdGhlIElQIHJhbmdlIGxpc3QgdXNpbmcgdGhlIElEXG5OZXQuSVBSYW5nZSBpcFJhbmdlTGlzdCA9IE1XRy5JUFJhbmdlTGlzdEJ5SUQoaXBSYW5nZUxpc3RJRClcblxuLy8gU2V0IGEgdXNlci1kZWZpbmVkIHZhcmlhYmxlIHdpdGggdGhlIHJldHJpZXZlZCBJUCByYW5nZSBsaXN0XG5NV0cuU2V0VXNlckRlZmluZWRWYXIoXCJVc2VySVBSYW5nZVwiLCBpcFJhbmdlTGlzdClcblxuLy8gRGVidWcgb3V0cHV0IHRvIHZlcmlmeSB0aGUgSVAgcmFuZ2UgbGlzdFxuLy8gUmV0cmlldmVkIElQIFJhbmdlIExpc3Q6IFwiICsgaXBSYW5nZUxpc3RcblxuLy8gRXhhbXBsZSBjb25kaXRpb24gdG8gYmxvY2sgYSByZXF1ZXN0IGlmIHRoZSBjbGllbnQncyBJUCBpcyB3aXRoaW4gdGhlIHJldHJpZXZlZCBJUCByYW5nZVxuSUYgTVdHLkNsaWVudC5JUCBJTiBpcFJhbmdlTGlzdCBUSEVOIHtcbiAgICBNV0cuQmxvY2soXCJBY2Nlc3MgZGVuaWVkOiBZb3VyIElQIGlzIHdpdGhpbiBhIHJlc3RyaWN0ZWQgcmFuZ2UuXCIpXG59IEVMU0Uge1xuICAgIE1XRy5BbGxvdyhcIklQIGlzIG5vdCBpbiB0aGUgcmVzdHJpY3RlZCByYW5nZS5cIilcbn0iLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICIvLyBEZWZpbmUgdGhlIElEIG9mIHRoZSBJUCByYW5nZSBsaXN0IHlvdSB3YW50IHRvIHJldHJpZXZlXG5TVFJJTkcgaXBSYW5nZUxpc3RJRCA9IFwiZXhhbXBsZV9pcF9yYW5nZV9saXN0X2lkXCJcblxuLy8gUmV0cmlldmUgdGhlIElQIHJhbmdlIGxpc3QgdXNpbmcgdGhlIElEXG5OZXQuSVBSYW5nZSBpcFJhbmdlTGlzdCA9IE1XRy5JUFJhbmdlTGlzdEJ5SUQoaXBSYW5nZUxpc3RJRClcblxuLy8gU2V0IGEgdXNlci1kZWZpbmVkIHZhcmlhYmxlIHdpdGggdGhlIHJldHJpZXZlZCBJUCByYW5nZSBsaXN0XG5NV0cuU2V0VXNlckRlZmluZWRWYXIoXCJVc2VySVBSYW5nZVwiLCBpcFJhbmdlTGlzdClcblxuLy8gRGVidWcgb3V0cHV0IHRvIHZlcmlmeSB0aGUgSVAgcmFuZ2UgbGlzdFxuLy8gUmV0cmlldmVkIElQIFJhbmdlIExpc3Q6IFwiICsgaXBSYW5nZUxpc3RcblxuLy8gRXhhbXBsZSBjb25kaXRpb24gdG8gYmxvY2sgYSByZXF1ZXN0IGlmIHRoZSBjbGllbnQncyBJUCBpcyB3aXRoaW4gdGhlIHJldHJpZXZlZCBJUCByYW5nZVxuSUYgTVdHLkNsaWVudC5JUCBJTiBpcFJhbmdlTGlzdCBUSEVOIHtcbiAgICBNV0cuQmxvY2soXCJBY2Nlc3MgZGVuaWVkOiBZb3VyIElQIGlzIHdpdGhpbiBhIHJlc3RyaWN0ZWQgcmFuZ2UuXCIpXG59IEVMU0Uge1xuICAgIE1XRy5BbGxvdyhcIklQIGlzIG5vdCBpbiB0aGUgcmVzdHJpY3RlZCByYW5nZS5cIilcbn0ifSwgeyJuYW1lIjogIk1XRy5JUFJhbmdlTGlzdEJ5TmFtZSAoU1RSSU5HKSIsICJyZXR1cm5fdHlwZSI6ICJWRUNUT1I8TmV0LklQUmFuZ2U+IiwgInJldHVybl9kZXNjIjogIlJldHVybnMgYSB2ZWN0b3Igb2YgSVAgcmFuZ2VzIGFzc29jaWF0ZWQgd2l0aCB0aGUgc3BlY2lmaWVkIG5hbWUuIiwgInBhcmFtZXRlcl9kZXNjIjogIlNUUklORzogdGhlIG5hbWUgb2YgdGhlIGxpc3QgdG8gcmV0cmlldmUuIiwgImRlc2NyaXB0aW9uIjogIlJldHJpZXZlcyBhIFZFQ1RPUiBieSBsaXN0IG5hbWUiLCAiZXhhbXBsZV9jb2RlIjogIi8vIFJldHJpZXZlIHRoZSBJUCByYW5nZXMgYXNzb2NpYXRlZCB3aXRoIHRoZSBsaXN0IG5hbWUgXCJleGFtcGxlX2lwX2xpc3RcIlxuVkVDVE9SPE5ldC5JUFJhbmdlPiBpcFJhbmdlcyA9IE1XRy5JUFJhbmdlTGlzdEJ5TmFtZShcImV4YW1wbGVfaXBfbGlzdFwiKVxuXG4vLyBJdGVyYXRlIHRocm91Z2ggdGhlIElQIHJhbmdlcyBhbmQgcHJpbnQgZWFjaCBvbmVcbkZPUiBFQUNIIGlwUmFuZ2UgSU4gaXBSYW5nZXMge1xuICAgIC8vIGlwUmFuZ2Vcbn0iLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICIvLyBSZXRyaWV2ZSB0aGUgSVAgcmFuZ2VzIGFzc29jaWF0ZWQgd2l0aCB0aGUgbGlzdCBuYW1lIFwiZXhhbXBsZV9pcF9saXN0XCJcblZFQ1RPUjxOZXQuSVBSYW5nZT4gaXBSYW5nZXMgPSBNV0cuSVBSYW5nZUxpc3RCeU5hbWUoXCJleGFtcGxlX2lwX2xpc3RcIilcblxuLy8gSXRlcmF0ZSB0aHJvdWdoIHRoZSBJUCByYW5nZXMgYW5kIHByaW50IGVhY2ggb25lXG5GT1IgRUFDSCBpcFJhbmdlIElOIGlwUmFuZ2VzIHtcbiAgICAvLyBpcFJhbmdlXG59In0sIHsibmFtZSI6ICJNV0cuSVBSYW5nZUxpc3RCeU5hbWVFeGlzdHMgKFNUUklORykiLCAicmV0dXJuX3R5cGUiOiAiQk9PTEVBTiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIHRydWUgaWYgYSBWZWN0b3I8TmV0LklQUmFuZ2U+IGxpc3Qgd2l0aCB0aGUgbmFtZSBleGlzdHMuIiwgInBhcmFtZXRlcl9kZXNjIjogIlNUUklORzogbmFtZSBvZiBsaXN0IHRvIGNoZWNrIGZvci4iLCAiZGVzY3JpcHRpb24iOiAiUmV0dXJucyBUUlVFIGlmIFZFQ1RPUjxOZXQuSVBSYW5nZT4gbGlzdCB3aXRoIHRoZSBuYW1lIGV4aXN0cyIsICJleGFtcGxlX2NvZGUiOiAiU1RSSU5HIGxpc3ROYW1lID0gXCJleGFtcGxlX2lwX3JhbmdlX2xpc3RcIlxuXG5JRiBNV0cuSVBSYW5nZUxpc3RCeU5hbWVFeGlzdHMobGlzdE5hbWUpIFRIRU4ge1xuICAgIC8vIFRoZSBJUCByYW5nZSBsaXN0ICdleGFtcGxlX2lwX3JhbmdlX2xpc3QnIGV4aXN0cy5cbn0gRUxTRSB7XG4gICAgLy8gVGhlIElQIHJhbmdlIGxpc3QgJ2V4YW1wbGVfaXBfcmFuZ2VfbGlzdCcgZG9lcyBub3QgZXhpc3QuXG59IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiU1RSSU5HIGxpc3ROYW1lID0gXCJleGFtcGxlX2lwX3JhbmdlX2xpc3RcIlxuXG5JRiBNV0cuSVBSYW5nZUxpc3RCeU5hbWVFeGlzdHMobGlzdE5hbWUpIFRIRU4ge1xuICAgIC8vIFRoZSBJUCByYW5nZSBsaXN0ICdleGFtcGxlX2lwX3JhbmdlX2xpc3QnIGV4aXN0cy5cbn0gRUxTRSB7XG4gICAgLy8gVGhlIElQIHJhbmdlIGxpc3QgJ2V4YW1wbGVfaXBfcmFuZ2VfbGlzdCcgZG9lcyBub3QgZXhpc3QuXG59In0sIHsibmFtZSI6ICJNV0cuSXNBdXRoZW50aWNhdGVkICgpIiwgInJldHVybl90eXBlIjogIkJPT0xFQU4iLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJuc2BUUlVFYGlmIHRoZSB1c2VyIGlzIGF1dGhlbnRpY2F0ZWQuIiwgInBhcmFtZXRlcl9kZXNjIjogIk5vbmUiLCAiZGVzY3JpcHRpb24iOiAiUmV0dXJucyBUUlVFIGlmIHVzZXIgaXMgYXV0aGVudGljYXRlZCIsICJleGFtcGxlX2NvZGUiOiAiQk9PTEVBTiBpc0F1dGhlbnRpY2F0ZWQgPSBNV0cuSXNBdXRoZW50aWNhdGVkKClcblxuSUYgaXNBdXRoZW50aWNhdGVkIFRIRU4ge1xuICAgIC8vIFVzZXIgaXMgYXV0aGVudGljYXRlZFxuICAgIE1XRy5BbGxvdygpXG59IEVMU0Uge1xuICAgIC8vIFVzZXIgaXMgbm90IGF1dGhlbnRpY2F0ZWRcbiAgICBNV0cuQmxvY2soKVxufSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIkJPT0xFQU4gaXNBdXRoZW50aWNhdGVkID0gTVdHLklzQXV0aGVudGljYXRlZCgpXG5cbklGIGlzQXV0aGVudGljYXRlZCBUSEVOIHtcbiAgICAvLyBVc2VyIGlzIGF1dGhlbnRpY2F0ZWRcbiAgICBNV0cuQWxsb3coKVxufSBFTFNFIHtcbiAgICAvLyBVc2VyIGlzIG5vdCBhdXRoZW50aWNhdGVkXG4gICAgTVdHLkJsb2NrKClcbn0ifSwgeyJuYW1lIjogIk1XRy5Jc0dSRSAoKSIsICJyZXR1cm5fdHlwZSI6ICJCT09MRUFOIiwgInJldHVybl9kZXNjIjogIlJldHVybnNgVFJVRWB3aGVuIHRoZSBjb25uZWN0aW9uIG9yaWdpbmF0ZXMgZnJvbSBhIEdSRSB0dW5uZWwuIiwgInBhcmFtZXRlcl9kZXNjIjogIk5vbmUiLCAiZGVzY3JpcHRpb24iOiAiUmV0dXJucyBUUlVFIHdoZW4gY29ubmVjdGlvbiBvcmlnaW5hdGVzIGZyb20gR1JFIHR1bm5lbCIsICJleGFtcGxlX2NvZGUiOiAiSUYgTVdHLklzR1JFKCkgVEhFTiB7XG4gICAgLy8gXCJHUkUgcGFja2V0IGRldGVjdGVkXCJcbiAgICBNV0cuQmxvY2soXCJHUkUgcGFja2V0cyBhcmUgbm90IGFsbG93ZWRcIilcbn0gRUxTRSB7XG4gICAgLy8gXCJOb24tR1JFIHBhY2tldCBkZXRlY3RlZFwiXG4gICAgTVdHLkFsbG93KFwiTm9uLUdSRSB0cmFmZmljXCIpXG59IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiSUYgTVdHLklzR1JFKCkgVEhFTiB7XG4gICAgLy8gXCJHUkUgcGFja2V0IGRldGVjdGVkXCJcbiAgICBNV0cuQmxvY2soXCJHUkUgcGFja2V0cyBhcmUgbm90IGFsbG93ZWRcIilcbn0gRUxTRSB7XG4gICAgLy8gXCJOb24tR1JFIHBhY2tldCBkZXRlY3RlZFwiXG4gICAgTVdHLkFsbG93KFwiTm9uLUdSRSB0cmFmZmljXCIpXG59In0sIHsibmFtZSI6ICJNV0cuSXNJUFNlYyAoKSIsICJyZXR1cm5fdHlwZSI6ICJCT09MRUFOIiwgInJldHVybl9kZXNjIjogIlJldHVybnNgVFJVRWB3aGVuIHRoZSBjb25uZWN0aW9uIG9yaWdpbmF0ZXMgZnJvbSBhbiBJUFNlYyB0dW5uZWwuIiwgInBhcmFtZXRlcl9kZXNjIjogIk5vbmUiLCAiZGVzY3JpcHRpb24iOiAiUmV0dXJucyBUUlVFIHdoZW4gY29ubmVjdGlvbiBvcmlnaW5hdGVzIGZyb20gSVBTZWMgdHVubmVsIiwgImV4YW1wbGVfY29kZSI6ICJJRiBNV0cuSXNJUFNlYygpIFRIRU4ge1xuICAgIC8vIFRoZSBjb25uZWN0aW9uIGlzIHVzaW5nIElQU2VjLlxufSBFTFNFIHtcbiAgICAvLyBUaGUgY29ubmVjdGlvbiBpcyBub3QgdXNpbmcgSVBTZWMuXG59IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiSUYgTVdHLklzSVBTZWMoKSBUSEVOIHtcbiAgICAvLyBUaGUgY29ubmVjdGlvbiBpcyB1c2luZyBJUFNlYy5cbn0gRUxTRSB7XG4gICAgLy8gVGhlIGNvbm5lY3Rpb24gaXMgbm90IHVzaW5nIElQU2VjLlxufSJ9LCB7Im5hbWUiOiAiTVdHLklzU2VydmVyQ2VydFNlbGZTaWduZWQgKCkiLCAicmV0dXJuX3R5cGUiOiAiQk9PTEVBTiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zYFRSVUVgaWYgdGhlIHNlcnZlciBjZXJ0aWZpY2F0ZSBpcyBzZWxmLXNpZ25lZC4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiTm9uZSIsICJkZXNjcmlwdGlvbiI6ICJSZXR1cm5zIFRSVUUgaWYgdGhlIHNlcnZlciBjZXJ0aWZpY2F0ZSBpcyBzZWxmIHNpZ25lZCIsICJleGFtcGxlX2NvZGUiOiAiQk9PTEVBTiBpc1NlbGZTaWduZWQgPSBNV0cuSXNTZXJ2ZXJDZXJ0U2VsZlNpZ25lZCgpXG5cbklGIGlzU2VsZlNpZ25lZCBUSEVOIHtcbiAgICAvLyBUaGUgc2VydmVyIGNlcnRpZmljYXRlIGlzIHNlbGYtc2lnbmVkLlxuICAgIE1XRy5CbG9jayhcIlNlbGYtc2lnbmVkIGNlcnRpZmljYXRlcyBhcmUgbm90IGFsbG93ZWQuXCIpXG59IEVMU0Uge1xuICAgIC8vIFRoZSBzZXJ2ZXIgY2VydGlmaWNhdGUgaXMgbm90IHNlbGYtc2lnbmVkLlxuICAgIE1XRy5BbGxvdyhcIkNlcnRpZmljYXRlIGlzIHZhbGlkLlwiKVxufSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIkJPT0xFQU4gaXNTZWxmU2lnbmVkID0gTVdHLklzU2VydmVyQ2VydFNlbGZTaWduZWQoKVxuXG5JRiBpc1NlbGZTaWduZWQgVEhFTiB7XG4gICAgLy8gVGhlIHNlcnZlciBjZXJ0aWZpY2F0ZSBpcyBzZWxmLXNpZ25lZC5cbiAgICBNV0cuQmxvY2soXCJTZWxmLXNpZ25lZCBjZXJ0aWZpY2F0ZXMgYXJlIG5vdCBhbGxvd2VkLlwiKVxufSBFTFNFIHtcbiAgICAvLyBUaGUgc2VydmVyIGNlcnRpZmljYXRlIGlzIG5vdCBzZWxmLXNpZ25lZC5cbiAgICBNV0cuQWxsb3coXCJDZXJ0aWZpY2F0ZSBpcyB2YWxpZC5cIilcbn0ifSwgeyJuYW1lIjogIk1XRy5Jc1NTTENsaWVudENvbnRleHRBcHBsaWVkICgpIiwgInJldHVybl90eXBlIjogIkJPT0xFQU4iLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJuc2BUUlVFYGlmIFRMUyBjbGllbnQgY29udGV4dCBpcyBhcHBsaWVkLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJOb25lIiwgImRlc2NyaXB0aW9uIjogIlJldHVybnMgVFJVRSBpZiBUTFMgY2xpZW50IGNvbnRleHQgaXMgYXBwbGllZCIsICJleGFtcGxlX2NvZGUiOiAiSUYgTVdHLklzU1NMQ2xpZW50Q29udGV4dEFwcGxpZWQoKSBUSEVOIHtcbiAgICAvLyBcIlNTTCBDbGllbnQgQ29udGV4dCBpcyBhcHBsaWVkLlwiXG59IEVMU0Uge1xuICAgIC8vIFwiU1NMIENsaWVudCBDb250ZXh0IGlzIG5vdCBhcHBsaWVkLlwiXG59IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiSUYgTVdHLklzU1NMQ2xpZW50Q29udGV4dEFwcGxpZWQoKSBUSEVOIHtcbiAgICAvLyBcIlNTTCBDbGllbnQgQ29udGV4dCBpcyBhcHBsaWVkLlwiXG59IEVMU0Uge1xuICAgIC8vIFwiU1NMIENsaWVudCBDb250ZXh0IGlzIG5vdCBhcHBsaWVkLlwiXG59In0sIHsibmFtZSI6ICJNV0cuSXNTdHJlYW0gKCkiLCAicmV0dXJuX3R5cGUiOiAiQk9PTEVBTiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zYFRSVUVgaWYgdGhlIGJvZHkgaXMgYW4gYXVkaW8gb3IgdmlkZW8gc3RyZWFtLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJOb25lIiwgImRlc2NyaXB0aW9uIjogIlJldHVybnMgVFJVRSBpZiB0aGUgYm9keSBpcyBhbiBhdWRpbyBvciB2aWRlbyBzdHJlYW0iLCAiZXhhbXBsZV9jb2RlIjogIklGIE1XRy5Jc1N0cmVhbSgpIFRIRU4ge1xuICAgIC8vIFRoaXMgaXMgYSBzdHJlYW0uXG59IEVMU0Uge1xuICAgIC8vIFRoaXMgaXMgbm90IGEgc3RyZWFtLlxufSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIklGIE1XRy5Jc1N0cmVhbSgpIFRIRU4ge1xuICAgIC8vIFRoaXMgaXMgYSBzdHJlYW0uXG59IEVMU0Uge1xuICAgIC8vIFRoaXMgaXMgbm90IGEgc3RyZWFtLlxufSJ9LCB7Im5hbWUiOiAiTVdHLklzVHJhbnNwYXJlbnRUTFMgKCkiLCAicmV0dXJuX3R5cGUiOiAiQk9PTEVBTiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zYFRSVUVgaWYgYSBUTFMgY29ubmVjdGlvbiBpcyB0cmFuc3BhcmVudC4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiTm9uZSIsICJkZXNjcmlwdGlvbiI6ICJSZXR1cm5zIFRSVUUgaWYgYSBUTFMgY29ubmVjdGlvbiBpcyB0cmFuc3BhcmVudCIsICJleGFtcGxlX2NvZGUiOiAiSUYgTVdHLklzVHJhbnNwYXJlbnRUTFMoKSBUSEVOIHtcbiAgICAvLyBUaGUgVExTIGNvbm5lY3Rpb24gaXMgdHJhbnNwYXJlbnQuXG4gICAgLy8gQWRkaXRpb25hbCBhY3Rpb25zIGNhbiBiZSB0YWtlbiBoZXJlIGlmIHRoZSBjb25uZWN0aW9uIGlzIHRyYW5zcGFyZW50XG59IEVMU0Uge1xuICAgIC8vIFRoZSBUTFMgY29ubmVjdGlvbiBpcyBub3QgdHJhbnNwYXJlbnQuXG4gICAgLy8gQWRkaXRpb25hbCBhY3Rpb25zIGNhbiBiZSB0YWtlbiBoZXJlIGlmIHRoZSBjb25uZWN0aW9uIGlzIG5vdCB0cmFuc3BhcmVudFxufSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIklGIE1XRy5Jc1RyYW5zcGFyZW50VExTKCkgVEhFTiB7XG4gICAgLy8gVGhlIFRMUyBjb25uZWN0aW9uIGlzIHRyYW5zcGFyZW50LlxuICAgIC8vIEFkZGl0aW9uYWwgYWN0aW9ucyBjYW4gYmUgdGFrZW4gaGVyZSBpZiB0aGUgY29ubmVjdGlvbiBpcyB0cmFuc3BhcmVudFxufSBFTFNFIHtcbiAgICAvLyBUaGUgVExTIGNvbm5lY3Rpb24gaXMgbm90IHRyYW5zcGFyZW50LlxuICAgIC8vIEFkZGl0aW9uYWwgYWN0aW9ucyBjYW4gYmUgdGFrZW4gaGVyZSBpZiB0aGUgY29ubmVjdGlvbiBpcyBub3QgdHJhbnNwYXJlbnRcbn0ifSwgeyJuYW1lIjogIk1XRy5Jc1VwbG9hZCAoKSIsICJyZXR1cm5fdHlwZSI6ICJCT09MRUFOIiwgInJldHVybl9kZXNjIjogIlJldHVybnMgaWYgdGhlIGZpbHRlcmVkIG9iamVjdCBpcyBhbiB1cGxvYWQuIiwgInBhcmFtZXRlcl9kZXNjIjogIk5vbmUiLCAiZGVzY3JpcHRpb24iOiAiUmV0dXJucyBpZiB0aGUgZmlsdGVyZWQgb2JqZWN0IGlzIGFuIHVwbG9hZCIsICJleGFtcGxlX2NvZGUiOiAiSUYgTVdHLklzVXBsb2FkKCkgVEhFTiB7XG4gICAgLy8gVGhpcyBpcyBhbiB1cGxvYWQgcmVxdWVzdC5cbiAgICAvLyBBZGRpdGlvbmFsIGxvZ2ljIGZvciBoYW5kbGluZyB1cGxvYWQgcmVxdWVzdHNcbn0gRUxTRSB7XG4gICAgLy8gVGhpcyBpcyBub3QgYW4gdXBsb2FkIHJlcXVlc3QuXG4gICAgLy8gQWRkaXRpb25hbCBsb2dpYyBmb3IgaGFuZGxpbmcgbm9uLXVwbG9hZCByZXF1ZXN0c1xufSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIklGIE1XRy5Jc1VwbG9hZCgpIFRIRU4ge1xuICAgIC8vIFRoaXMgaXMgYW4gdXBsb2FkIHJlcXVlc3QuXG4gICAgLy8gQWRkaXRpb25hbCBsb2dpYyBmb3IgaGFuZGxpbmcgdXBsb2FkIHJlcXVlc3RzXG59IEVMU0Uge1xuICAgIC8vIFRoaXMgaXMgbm90IGFuIHVwbG9hZCByZXF1ZXN0LlxuICAgIC8vIEFkZGl0aW9uYWwgbG9naWMgZm9yIGhhbmRsaW5nIG5vbi11cGxvYWQgcmVxdWVzdHNcbn0ifSwgeyJuYW1lIjogIk1XRy5LZXJiZXJvc1Byb3RlY3Rpb25MZXZlbCAoKSIsICJyZXR1cm5fdHlwZSI6ICJOVU1CRVIiLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyBLZXJiZXJvcyBwcm90ZWN0aW9uIGxldmVsIGZvciB0aGUgY29ubmVjdGlvbi4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiTm9uZSIsICJkZXNjcmlwdGlvbiI6ICJSZXR1cm5zIEtlcmJlcm9zIHByb3RlY3Rpb24gbGV2ZWwgZm9yIHRoZSBjb25uZWN0aW9uIiwgImV4YW1wbGVfY29kZSI6ICIvLyBSZXRyaWV2ZSB0aGUgS2VyYmVyb3MgcHJvdGVjdGlvbiBsZXZlbFxuU1RSSU5HIHByb3RlY3Rpb25MZXZlbCA9IE1XRy5LZXJiZXJvc1Byb3RlY3Rpb25MZXZlbCgpXG5cbi8vIEtlcmJlcm9zIFByb3RlY3Rpb24gTGV2ZWw6IFwiICsgcHJvdGVjdGlvbkxldmVsXG5cbi8vIFBlcmZvcm0gYWN0aW9ucyBiYXNlZCBvbiB0aGUgcHJvdGVjdGlvbiBsZXZlbFxuSUYgcHJvdGVjdGlvbkxldmVsID09IFwiSElHSFwiIFRIRU4ge1xuICAgIC8vIEhpZ2ggbGV2ZWwgb2YgS2VyYmVyb3MgcHJvdGVjdGlvbiBkZXRlY3RlZC5cbiAgICAvLyBBZGRpdGlvbmFsIGxvZ2ljIGZvciBoaWdoIHByb3RlY3Rpb24gbGV2ZWxcbn0gRUxTRSBJRiBwcm90ZWN0aW9uTGV2ZWwgPT0gXCJNRURJVU1cIiBUSEVOIHtcbiAgICAvLyBNZWRpdW0gbGV2ZWwgb2YgS2VyYmVyb3MgcHJvdGVjdGlvbiBkZXRlY3RlZC5cbiAgICAvLyBBZGRpdGlvbmFsIGxvZ2ljIGZvciBtZWRpdW0gcHJvdGVjdGlvbiBsZXZlbFxufSBFTFNFIElGIHByb3RlY3Rpb25MZXZlbCA9PSBcIkxPV1wiIFRIRU4ge1xuICAgIC8vIExvdyBsZXZlbCBvZiBLZXJiZXJvcyBwcm90ZWN0aW9uIGRldGVjdGVkLlxuICAgIC8vIEFkZGl0aW9uYWwgbG9naWMgZm9yIGxvdyBwcm90ZWN0aW9uIGxldmVsXG59IEVMU0Uge1xuICAgIC8vIFVua25vd24gS2VyYmVyb3MgcHJvdGVjdGlvbiBsZXZlbCBkZXRlY3RlZC5cbiAgICAvLyBBZGRpdGlvbmFsIGxvZ2ljIGZvciB1bmtub3duIHByb3RlY3Rpb24gbGV2ZWxcbn0iLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICIvLyBSZXRyaWV2ZSB0aGUgS2VyYmVyb3MgcHJvdGVjdGlvbiBsZXZlbFxuU1RSSU5HIHByb3RlY3Rpb25MZXZlbCA9IE1XRy5LZXJiZXJvc1Byb3RlY3Rpb25MZXZlbCgpXG5cbi8vIEtlcmJlcm9zIFByb3RlY3Rpb24gTGV2ZWw6IFwiICsgcHJvdGVjdGlvbkxldmVsXG5cbi8vIFBlcmZvcm0gYWN0aW9ucyBiYXNlZCBvbiB0aGUgcHJvdGVjdGlvbiBsZXZlbFxuSUYgcHJvdGVjdGlvbkxldmVsID09IFwiSElHSFwiIFRIRU4ge1xuICAgIC8vIEhpZ2ggbGV2ZWwgb2YgS2VyYmVyb3MgcHJvdGVjdGlvbiBkZXRlY3RlZC5cbiAgICAvLyBBZGRpdGlvbmFsIGxvZ2ljIGZvciBoaWdoIHByb3RlY3Rpb24gbGV2ZWxcbn0gRUxTRSBJRiBwcm90ZWN0aW9uTGV2ZWwgPT0gXCJNRURJVU1cIiBUSEVOIHtcbiAgICAvLyBNZWRpdW0gbGV2ZWwgb2YgS2VyYmVyb3MgcHJvdGVjdGlvbiBkZXRlY3RlZC5cbiAgICAvLyBBZGRpdGlvbmFsIGxvZ2ljIGZvciBtZWRpdW0gcHJvdGVjdGlvbiBsZXZlbFxufSBFTFNFIElGIHByb3RlY3Rpb25MZXZlbCA9PSBcIkxPV1wiIFRIRU4ge1xuICAgIC8vIExvdyBsZXZlbCBvZiBLZXJiZXJvcyBwcm90ZWN0aW9uIGRldGVjdGVkLlxuICAgIC8vIEFkZGl0aW9uYWwgbG9naWMgZm9yIGxvdyBwcm90ZWN0aW9uIGxldmVsXG59IEVMU0Uge1xuICAgIC8vIFVua25vd24gS2VyYmVyb3MgcHJvdGVjdGlvbiBsZXZlbCBkZXRlY3RlZC5cbiAgICAvLyBBZGRpdGlvbmFsIGxvZ2ljIGZvciB1bmtub3duIHByb3RlY3Rpb24gbGV2ZWxcbn0ifSwgeyJuYW1lIjogIk1XRy5LZXlzIChNV0cuSGVhZGVyTWFwKSIsICJyZXR1cm5fdHlwZSI6ICJWRUNUT1I8U1RSSU5HPiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIGEgdmVjdG9yIGNvbnRhaW5pbmcgYWxsIHRoZSBrZXlzIGZyb20gdGhlIGdpdmVuIGhlYWRlciBtYXAuIiwgInBhcmFtZXRlcl9kZXNjIjogIk1XRy5IZWFkZXJNYXA6IFRoZSBtYXAgZnJvbSB3aGljaCB0byBleHRyYWN0IHRoZSBrZXlzLiIsICJkZXNjcmlwdGlvbiI6ICJSZXR1cm5zIHRoZSBrZXlzIG9mIGEgaGVhZGVyIG1hcCIsICJleGFtcGxlX2NvZGUiOiAiLy8gQXNzdW1lIGhlYWRlcnMgaXMgYW4gTVdHLkhlYWRlck1hcCBvYmplY3QgY29udGFpbmluZyBIVFRQIGhlYWRlcnNcbk1XRy5IZWFkZXJNYXAgaGVhZGVycyA9IE1XRy5HZXRSZXF1ZXN0SGVhZGVycygpXG5cbi8vIFJldHJpZXZlIHRoZSBrZXlzIGZyb20gdGhlIGhlYWRlcnNcblZFQ1RPUjxTVFJJTkc+IGhlYWRlcktleXMgPSBNV0cuS2V5cyhoZWFkZXJzKVxuXG4vLyBJdGVyYXRlIG92ZXIgdGhlIGtleXMgYW5kIHByaW50IHRoZW1cbkZPUiBFQUNIIGtleSBJTiBoZWFkZXJLZXlzIHtcbiAgICAvLyBIZWFkZXIgS2V5OiBcIiArIGtleVxufSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIi8vIEFzc3VtZSBoZWFkZXJzIGlzIGFuIE1XRy5IZWFkZXJNYXAgb2JqZWN0IGNvbnRhaW5pbmcgSFRUUCBoZWFkZXJzXG5NV0cuSGVhZGVyTWFwIGhlYWRlcnMgPSBNV0cuR2V0UmVxdWVzdEhlYWRlcnMoKVxuXG4vLyBSZXRyaWV2ZSB0aGUga2V5cyBmcm9tIHRoZSBoZWFkZXJzXG5WRUNUT1I8U1RSSU5HPiBoZWFkZXJLZXlzID0gTVdHLktleXMoaGVhZGVycylcblxuLy8gSXRlcmF0ZSBvdmVyIHRoZSBrZXlzIGFuZCBwcmludCB0aGVtXG5GT1IgRUFDSCBrZXkgSU4gaGVhZGVyS2V5cyB7XG4gICAgLy8gSGVhZGVyIEtleTogXCIgKyBrZXlcbn0ifSwgeyJuYW1lIjogIk1XRy5MQVNUX1VTRURfY29uZmlnICgpIiwgInJldHVybl90eXBlIjogIk1XRy5JbnRlcm5hbFNldHRpbmciLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyB0aGUgbGFzdCB1c2VkIGNvbmZpZ3VyYXRpb24gc2V0dGluZ3MuIiwgInBhcmFtZXRlcl9kZXNjIjogIk5vbmUiLCAiZGVzY3JpcHRpb24iOiAiR2V0IHRoZSBsYXN0IHVzZWQgY29uZmlndXJhdGlvbiBzZXR0aW5ncy4iLCAiZXhhbXBsZV9jb2RlIjogIi8vIFJldHJpZXZlIHRoZSBsYXN0IHVzZWQgY29uZmlndXJhdGlvbiBzZXR0aW5nc1xuTVdHLkludGVybmFsU2V0dGluZyBsYXN0Q29uZmlnID0gTVdHLkxBU1RfVVNFRF9jb25maWcoKVxuXG4vLyBMYXN0IHVzZWQgY29uZmlndXJhdGlvbiBzZXR0aW5nczogXCIgKyBsYXN0Q29uZmlnXG5cbi8vIEV4ZWN1dGUgYW4gZXZlbnQgd2l0aCB0aGUgcmV0cmlldmVkIGNvbmZpZ3VyYXRpb24gc2V0dGluZ3MgYW5kIGEgc3RyaW5nIHBhcmFtZXRlclxuTVdHLkV4ZWN1dGVFdmVudChsYXN0Q29uZmlnLCBcIkV4YW1wbGVFdmVudFwiKSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIi8vIFJldHJpZXZlIHRoZSBsYXN0IHVzZWQgY29uZmlndXJhdGlvbiBzZXR0aW5nc1xuTVdHLkludGVybmFsU2V0dGluZyBsYXN0Q29uZmlnID0gTVdHLkxBU1RfVVNFRF9jb25maWcoKVxuXG4vLyBMYXN0IHVzZWQgY29uZmlndXJhdGlvbiBzZXR0aW5nczogXCIgKyBsYXN0Q29uZmlnXG5cbi8vIEV4ZWN1dGUgYW4gZXZlbnQgd2l0aCB0aGUgcmV0cmlldmVkIGNvbmZpZ3VyYXRpb24gc2V0dGluZ3MgYW5kIGEgc3RyaW5nIHBhcmFtZXRlclxuTVdHLkV4ZWN1dGVFdmVudChsYXN0Q29uZmlnLCBcIkV4YW1wbGVFdmVudFwiKSJ9LCB7Im5hbWUiOiAiTVdHLkxhc3RSdWxlICgpIiwgInJldHVybl90eXBlIjogIlNUUklORyIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIHRoZSAncnVsZScgdGhhdCB0ZXJtaW5hdGVzIHRoZSBwb2xpY3kgcHJvY2Vzc2luZyAoYE1XRy5FeGl0LGBNV0cuQWxsb3csYE1XRy5CbG9jayxgTVdHLlJlZGlyZWN0YClgIiwgInBhcmFtZXRlcl9kZXNjIjogIk5vbmUiLCAiZGVzY3JpcHRpb24iOiAiUmV0dXJucyB0aGUgJ3J1bGUnIHRoYXQgdGVybWluYXRlcyB0aGUgcG9saWN5IHByb2Nlc3NpbmcgKE1XRy5FeGl0LCBNV0cuQWxsb3csIE1XRy5CbG9jaywgTVdHLlJlZGlyZWN0KSIsICJleGFtcGxlX2NvZGUiOiAiU1RSSU5HIGxhc3RSdWxlID0gTVdHLkxhc3RSdWxlKClcbi8vIFRoZSBsYXN0IHJ1bGUgdGhhdCB0ZXJtaW5hdGVkIHRoZSBwb2xpY3kgcHJvY2Vzc2luZyBpczogKyBsYXN0UnVsZSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIlNUUklORyBsYXN0UnVsZSA9IE1XRy5MYXN0UnVsZSgpXG4vLyBUaGUgbGFzdCBydWxlIHRoYXQgdGVybWluYXRlZCB0aGUgcG9saWN5IHByb2Nlc3NpbmcgaXM6ICsgbGFzdFJ1bGUifSwgeyJuYW1lIjogIk1XRy5MYXN0UnVsZVNldFBhdGggKCkiLCAicmV0dXJuX3R5cGUiOiAiU1RSSU5HIiwgInJldHVybl9kZXNjIjogIlJldHVybnMgdGhlIFJ1bGUgU2V0IHRoYXQgdGVybWluYXRlcyB0aGUgcG9saWN5IHByb2Nlc3NpbmcgKGBNV0cuRXhpdCxgTVdHLkFsbG93LGBNV0cuQmxvY2ssYE1XRy5SZWRpcmVjdGApYCIsICJwYXJhbWV0ZXJfZGVzYyI6ICJOb25lIiwgImRlc2NyaXB0aW9uIjogIlJldHVybnMgdGhlIFJ1bGUgU2V0IHRoYXQgdGVybWluYXRlcyB0aGUgcG9saWN5IHByb2Nlc3NpbmcgKE1XRy5FeGl0LCBNV0cuQWxsb3csIE1XRy5CbG9jaywgTVdHLlJlZGlyZWN0KSIsICJleGFtcGxlX2NvZGUiOiAiU1RSSU5HIGxhc3RSdWxlU2V0UGF0aCA9IE1XRy5MYXN0UnVsZVNldFBhdGgoKVxuLy8gVGhlIGxhc3QgcnVsZSBzZXQgcGF0aCB0aGF0IHRlcm1pbmF0ZWQgdGhlIHBvbGljeSBwcm9jZXNzaW5nIGlzOiBcIiArIGxhc3RSdWxlU2V0UGF0aCIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIlNUUklORyBsYXN0UnVsZVNldFBhdGggPSBNV0cuTGFzdFJ1bGVTZXRQYXRoKClcbi8vIFRoZSBsYXN0IHJ1bGUgc2V0IHBhdGggdGhhdCB0ZXJtaW5hdGVkIHRoZSBwb2xpY3kgcHJvY2Vzc2luZyBpczogXCIgKyBsYXN0UnVsZVNldFBhdGgifSwgeyJuYW1lIjogIk1XRy5MYXN0U2VudEZpcnN0UmVjZWl2ZWRTZXJ2ZXIgKCkiLCAicmV0dXJuX3R5cGUiOiAiTlVNQkVSIiwgInJldHVybl9kZXNjIjogIlJldHVybnMgdGhlIGR1cmF0aW9uIGJldHdlZW4gdGhlIGxhc3QgYnl0ZSBzZW50IHRvIHNlcnZlciBhbmQgd2hlbiB0aGUgZmlyc3QgYnl0ZSB3YXMgYWN0dWFsbHkgcmVjZWl2ZWQsIGlmIGFueS4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiTm9uZSIsICJkZXNjcmlwdGlvbiI6ICJSZXR1cm5zIHRoZSBkdXJhdGlvbiBiZXR3ZWVuIHRoZSBsYXN0IGJ5dGUgc2VudCB0byBzZXJ2ZXIgYW5kIHdoZW4gdGhlIGZpcnN0IGJ5dGUgd2FzIGFjdHVhbGx5IHJlY2VpdmVkIGlmIGFueS4iLCAiZXhhbXBsZV9jb2RlIjogIi8vIENhbGwgdGhlIE1XRy5MYXN0U2VudEZpcnN0UmVjZWl2ZWRTZXJ2ZXIoKSBmdW5jdGlvbiBhbmQgc3RvcmUgdGhlIHJlc3VsdCBpbiBhIHZhcmlhYmxlXG5TVFJJTkcgbGFzdFNlcnZlciA9IE1XRy5MYXN0U2VudEZpcnN0UmVjZWl2ZWRTZXJ2ZXIoKVxuXG4vLyBMYXN0IHNlbnQgZmlyc3QgcmVjZWl2ZWQgc2VydmVyOiBcIiArIGxhc3RTZXJ2ZXJcblxuLy8gRXhhbXBsZSBjb25kaXRpb24gdG8gYmxvY2sgYSByZXF1ZXN0IGJhc2VkIG9uIHRoZSBzZXJ2ZXIgYWRkcmVzc1xuSUYgbGFzdFNlcnZlciA9PSBcIm1hbGljaW91cy5zZXJ2ZXIuY29tXCIgVEhFTiB7XG4gICAgTVdHLkJsb2NrKFwiQWNjZXNzIHRvIHRoaXMgc2VydmVyIGlzIGJsb2NrZWQgZHVlIHRvIHNlY3VyaXR5IGNvbmNlcm5zLlwiKVxufSBFTFNFIHtcbiAgICBNV0cuQWxsb3coXCJTZXJ2ZXIgaXMgYWxsb3dlZC5cIilcbn0iLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICIvLyBDYWxsIHRoZSBNV0cuTGFzdFNlbnRGaXJzdFJlY2VpdmVkU2VydmVyKCkgZnVuY3Rpb24gYW5kIHN0b3JlIHRoZSByZXN1bHQgaW4gYSB2YXJpYWJsZVxuU1RSSU5HIGxhc3RTZXJ2ZXIgPSBNV0cuTGFzdFNlbnRGaXJzdFJlY2VpdmVkU2VydmVyKClcblxuLy8gTGFzdCBzZW50IGZpcnN0IHJlY2VpdmVkIHNlcnZlcjogXCIgKyBsYXN0U2VydmVyXG5cbi8vIEV4YW1wbGUgY29uZGl0aW9uIHRvIGJsb2NrIGEgcmVxdWVzdCBiYXNlZCBvbiB0aGUgc2VydmVyIGFkZHJlc3NcbklGIGxhc3RTZXJ2ZXIgPT0gXCJtYWxpY2lvdXMuc2VydmVyLmNvbVwiIFRIRU4ge1xuICAgIE1XRy5CbG9jayhcIkFjY2VzcyB0byB0aGlzIHNlcnZlciBpcyBibG9ja2VkIGR1ZSB0byBzZWN1cml0eSBjb25jZXJucy5cIilcbn0gRUxTRSB7XG4gICAgTVdHLkFsbG93KFwiU2VydmVyIGlzIGFsbG93ZWQuXCIpXG59In0sIHsibmFtZSI6ICJNV0cuTGFzdFNlbnRMYXN0UmVjZWl2ZWRDbGllbnQgKCkiLCAicmV0dXJuX3R5cGUiOiAiTlVNQkVSIiwgInJldHVybl9kZXNjIjogIlJldHVybnMgdGhlIGR1cmF0aW9uIGJldHdlZW4gdGhlIGxhc3QgYnl0ZSByZWNlaXZlZCBmcm9tIHRoZSBjbGllbnQgYW5kIHdoZW4gdGhhdCBsYXN0IGJ5dGUgd2FzIHNlbnQgYmFjay4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiTm9uZSIsICJkZXNjcmlwdGlvbiI6ICJSZXR1cm5zIHRoZSBkdXJhdGlvbiBiZXR3ZWVuIHRoZSBsYXN0IGJ5dGUgcmVjZWl2ZWQgZnJvbSBjbGllbnQgYW5kIHdoZW4gdGhhdCBsYXN0IGJ5dGUgd2FzIHNlbnQgYmFjayIsICJleGFtcGxlX2NvZGUiOiAiTlVNQkVSIGR1cmF0aW9uID0gTVdHLkxhc3RTZW50TGFzdFJlY2VpdmVkQ2xpZW50KClcbk5VTUJFUiB0aHJlc2hvbGQgPSAxMDAwICAvLyBFeGFtcGxlIHRocmVzaG9sZCBpbiBtaWxsaXNlY29uZHNcblxuSUYgZHVyYXRpb24gPiB0aHJlc2hvbGQgVEhFTiB7XG4gICAgLy8gV2FybmluZzogUmVzcG9uc2UgdGltZSBleGNlZWRlZCB0aHJlc2hvbGQuIER1cmF0aW9uOiBcIiArIGR1cmF0aW9uICsgXCIgbXNcbn0gRUxTRSB7XG4gICAgLy8gUmVzcG9uc2UgdGltZSBpcyB3aXRoaW4gYWNjZXB0YWJsZSBsaW1pdHMuIER1cmF0aW9uOiBcIiArIGR1cmF0aW9uICsgXCIgbXNcbn0iLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICJOVU1CRVIgZHVyYXRpb24gPSBNV0cuTGFzdFNlbnRMYXN0UmVjZWl2ZWRDbGllbnQoKVxuTlVNQkVSIHRocmVzaG9sZCA9IDEwMDAgIC8vIEV4YW1wbGUgdGhyZXNob2xkIGluIG1pbGxpc2Vjb25kc1xuXG5JRiBkdXJhdGlvbiA+IHRocmVzaG9sZCBUSEVOIHtcbiAgICAvLyBXYXJuaW5nOiBSZXNwb25zZSB0aW1lIGV4Y2VlZGVkIHRocmVzaG9sZC4gRHVyYXRpb246IFwiICsgZHVyYXRpb24gKyBcIiBtc1xufSBFTFNFIHtcbiAgICAvLyBSZXNwb25zZSB0aW1lIGlzIHdpdGhpbiBhY2NlcHRhYmxlIGxpbWl0cy4gRHVyYXRpb246IFwiICsgZHVyYXRpb24gKyBcIiBtc1xufSJ9LCB7Im5hbWUiOiAiTVdHLkxhc3RTZW50TGFzdFJlY2VpdmVkU2VydmVyICgpIiwgInJldHVybl90eXBlIjogIk5VTUJFUiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIHRoZSBkdXJhdGlvbiBiZXR3ZWVuIHRoZSBsYXN0IGJ5dGUgc2VudCB0byB0aGUgc2VydmVyIGFuZCB3aGVuIHRoYXQgbGFzdCBieXRlIHdhcyBhY3R1YWxseSByZWNlaXZlZC4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiTm9uZSIsICJkZXNjcmlwdGlvbiI6ICJSZXR1cm5zIHRoZSBkdXJhdGlvbiBiZXR3ZWVuIHRoZSBsYXN0IGJ5dGUgc2VudCB0byBzZXJ2ZXIgYW5kIHdoZW4gdGhhdCBsYXN0IGJ5dGUgd2FzIGFjdHVhbGx5IHJlY2VpdmVkIiwgImV4YW1wbGVfY29kZSI6ICIvLyBIeXBvdGhldGljYWwgZnVuY3Rpb24gdG8gZ2V0IHRoZSBsYXN0IHNlbnQgYW5kIGxhc3QgcmVjZWl2ZWQgc2VydmVyIGluZm9ybWF0aW9uXG5TVFJJTkcgbGFzdFNlcnZlckluZm8gPSBNV0cuTGFzdFNlbnRMYXN0UmVjZWl2ZWRTZXJ2ZXIoKVxuXG4vLyBDaGVjayBpZiB0aGUgbGFzdCBzZXJ2ZXIgaW5mb3JtYXRpb24gY29udGFpbnMgYSBzcGVjaWZpYyBzZXJ2ZXIgbmFtZVxuSUYgbGFzdFNlcnZlckluZm8gQ09OVEFJTlMgXCJleGFtcGxlLmNvbVwiIFRIRU4ge1xuICAgIC8vIEJsb2NrIHRoZSBjb25uZWN0aW9uIGlmIHRoZSBzZXJ2ZXIgaXMgXCJleGFtcGxlLmNvbVwiXG4gICAgTVdHLkJsb2NrKFwiQ29ubmVjdGlvbiB0byBleGFtcGxlLmNvbSBpcyBub3QgYWxsb3dlZC5cIilcbn0gRUxTRSB7XG4gICAgLy8gQWxsb3cgdGhlIGNvbm5lY3Rpb24gb3RoZXJ3aXNlXG4gICAgTVdHLkFsbG93KFwiQ29ubmVjdGlvbiBhbGxvd2VkLlwiKVxufVxuXG4vLyBEZWJ1ZyBvdXRwdXQgZm9yIGxvZ2dpbmcgcHVycG9zZXNcbi8vIFwiTGFzdCBzZW50L3JlY2VpdmVkIHNlcnZlciBpbmZvOiBcIiArIGxhc3RTZXJ2ZXJJbmZvIiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiLy8gSHlwb3RoZXRpY2FsIGZ1bmN0aW9uIHRvIGdldCB0aGUgbGFzdCBzZW50IGFuZCBsYXN0IHJlY2VpdmVkIHNlcnZlciBpbmZvcm1hdGlvblxuU1RSSU5HIGxhc3RTZXJ2ZXJJbmZvID0gTVdHLkxhc3RTZW50TGFzdFJlY2VpdmVkU2VydmVyKClcblxuLy8gQ2hlY2sgaWYgdGhlIGxhc3Qgc2VydmVyIGluZm9ybWF0aW9uIGNvbnRhaW5zIGEgc3BlY2lmaWMgc2VydmVyIG5hbWVcbklGIGxhc3RTZXJ2ZXJJbmZvIENPTlRBSU5TIFwiZXhhbXBsZS5jb21cIiBUSEVOIHtcbiAgICAvLyBCbG9jayB0aGUgY29ubmVjdGlvbiBpZiB0aGUgc2VydmVyIGlzIFwiZXhhbXBsZS5jb21cIlxuICAgIE1XRy5CbG9jayhcIkNvbm5lY3Rpb24gdG8gZXhhbXBsZS5jb20gaXMgbm90IGFsbG93ZWQuXCIpXG59IEVMU0Uge1xuICAgIC8vIEFsbG93IHRoZSBjb25uZWN0aW9uIG90aGVyd2lzZVxuICAgIE1XRy5BbGxvdyhcIkNvbm5lY3Rpb24gYWxsb3dlZC5cIilcbn1cblxuLy8gRGVidWcgb3V0cHV0IGZvciBsb2dnaW5nIHB1cnBvc2VzXG4vLyBcIkxhc3Qgc2VudC9yZWNlaXZlZCBzZXJ2ZXIgaW5mbzogXCIgKyBsYXN0U2VydmVySW5mbyJ9LCB7Im5hbWUiOiAiTVdHLkxGU1RSSU5HICgpIiwgInJldHVybl90eXBlIjogIlNUUklORyIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIGxpbmUtZmVlZCBzdHJpbmcuIiwgInBhcmFtZXRlcl9kZXNjIjogIk5vbmUiLCAiZGVzY3JpcHRpb24iOiAiUmV0dXJucyBsaW5lLWZlZWQgU1RSSU5HIiwgImV4YW1wbGVfY29kZSI6ICJTVFJJTkcgbWVzc2FnZSA9IFwiVGhpcyBpcyB0aGUgZmlyc3QgbGluZS5cIiArIE1XRy5MRlN0cmluZygpICsgXCJUaGlzIGlzIHRoZSBzZWNvbmQgbGluZS5cIlxuLy8gVGhpcyBsaW5lIHdhcyBvcmlnaW5hbGx5IGEgREVCVUcoKSBmdW5jdGlvbiB0aGF0IHByaW50ZWQgdGhlIG1lc3NhZ2UgdG8gdGhlIGNvbnNvbGUuIFRoZSBtZXNzYWdlIGlzIGEgY29uY2F0ZW5hdGlvbiBvZiB0d28gc3RyaW5ncyB3aXRoIGEgbGluZS1mZWVkIHN0cmluZyAocmV0dXJuZWQgYnkgTVdHLkxGU3RyaW5nKCkpIGluIGJldHdlZW4uIFdoZW4gdGhpcyBsaW5lIHJ1bnMsIGl0IHdvdWxkIG91dHB1dDogXCJUaGlzIGlzIHRoZSBmaXJzdCBsaW5lLiBUaGlzIGlzIHRoZSBzZWNvbmQgbGluZS5cIiIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIlNUUklORyBtZXNzYWdlID0gXCJUaGlzIGlzIHRoZSBmaXJzdCBsaW5lLlwiICsgTVdHLkxGU3RyaW5nKCkgKyBcIlRoaXMgaXMgdGhlIHNlY29uZCBsaW5lLlwiXG4vLyBUaGlzIGxpbmUgd2FzIG9yaWdpbmFsbHkgYSBERUJVRygpIGZ1bmN0aW9uIHRoYXQgcHJpbnRlZCB0aGUgbWVzc2FnZSB0byB0aGUgY29uc29sZS4gVGhlIG1lc3NhZ2UgaXMgYSBjb25jYXRlbmF0aW9uIG9mIHR3byBzdHJpbmdzIHdpdGggYSBsaW5lLWZlZWQgc3RyaW5nIChyZXR1cm5lZCBieSBNV0cuTEZTdHJpbmcoKSkgaW4gYmV0d2Vlbi4gV2hlbiB0aGlzIGxpbmUgcnVucywgaXQgd291bGQgb3V0cHV0OiBcIlRoaXMgaXMgdGhlIGZpcnN0IGxpbmUuIFRoaXMgaXMgdGhlIHNlY29uZCBsaW5lLlwiIn0sIHsibmFtZSI6ICJNV0cuTGlzdExhc3RNYXRjaGVzICgpIiwgInJldHVybl90eXBlIjogIlNUUklORyIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIHRoZSBlbGVtZW50IGZvdW5kIGluIHRoZSBtb3N0IHJlY2VudCBsaXN0IHNlYXJjaCBvcGVyYXRpb24uIiwgInBhcmFtZXRlcl9kZXNjIjogIk5vbmUiLCAiZGVzY3JpcHRpb24iOiAiZWxlbWVudCBvZiBsYXN0IGxpc3QgZmluZCBvcGVyYXRpb24iLCAiZXhhbXBsZV9jb2RlIjogIi8vIEFzc3VtZSBzb21lIGxpc3Qgc2VhcmNoIG9wZXJhdGlvbiBoYXMgYmVlbiBwZXJmb3JtZWQgYmVmb3JlIHRoaXMgcm91dGluZSBpcyB0cmlnZ2VyZWRcblxuLy8gUmV0cmlldmUgdGhlIGxhc3QgbWF0Y2ggZnJvbSB0aGUgbGlzdCBzZWFyY2ggb3BlcmF0aW9uXG5TVFJJTkcgbGFzdE1hdGNoID0gTVdHLkxpc3RMYXN0TWF0Y2hlcygpXG5cbi8vIENoZWNrIGlmIGEgbWF0Y2ggd2FzIGZvdW5kXG5JRiBsYXN0TWF0Y2ggIT0gTlVMTCBUSEVOIHtcbiAgICAvLyBMYXN0IG1hdGNoIGZvdW5kOiBcIiArIGxhc3RNYXRjaFxufSBFTFNFIHtcbiAgICAvLyBObyBtYXRjaGVzIGZvdW5kLlxufSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIi8vIEFzc3VtZSBzb21lIGxpc3Qgc2VhcmNoIG9wZXJhdGlvbiBoYXMgYmVlbiBwZXJmb3JtZWQgYmVmb3JlIHRoaXMgcm91dGluZSBpcyB0cmlnZ2VyZWRcblxuLy8gUmV0cmlldmUgdGhlIGxhc3QgbWF0Y2ggZnJvbSB0aGUgbGlzdCBzZWFyY2ggb3BlcmF0aW9uXG5TVFJJTkcgbGFzdE1hdGNoID0gTVdHLkxpc3RMYXN0TWF0Y2hlcygpXG5cbi8vIENoZWNrIGlmIGEgbWF0Y2ggd2FzIGZvdW5kXG5JRiBsYXN0TWF0Y2ggIT0gTlVMTCBUSEVOIHtcbiAgICAvLyBMYXN0IG1hdGNoIGZvdW5kOiBcIiArIGxhc3RNYXRjaFxufSBFTFNFIHtcbiAgICAvLyBObyBtYXRjaGVzIGZvdW5kLlxufSJ9LCB7Im5hbWUiOiAiTVdHLk1hbHdhcmVQcm9iYWJpbGl0eSAoTVdHLkFudGltYWx3YXJlU2V0dGluZykiLCAicmV0dXJuX3R5cGUiOiAiTlVNQkVSIiwgInJldHVybl9kZXNjIjogIlJldHVybnMgdGhlIG51bWVyaWNhbCBwcm9iYWJpbGl0eSB0aGF0IGEgZmlsZSBpcyBtYWx3YXJlIGJhc2VkIG9uIEdBTSBhbmFseXNpcyBvZiB0aGUgcHJvdmlkZWQgYW50aW1hbHdhcmUgc2V0dGluZ3MuIiwgInBhcmFtZXRlcl9kZXNjIjogIk1XRy5BbnRpbWFsd2FyZVNldHRpbmc6IHRoZSBhbnRpbWFsd2FyZSBjb25maWd1cmF0aW9uIHNldHRpbmdzLiIsICJkZXNjcmlwdGlvbiI6ICJSZXR1cm5zIHRoZSBtYWx3YXJlIHByb2JhYmlsaXR5ICh2aWEgR0FNKSIsICJleGFtcGxlX2NvZGUiOiAiLy8gQ3JlYXRlIGFuIGluc3RhbmNlIG9mIE1XRy5BbnRpbWFsd2FyZVNldHRpbmdcbk1XRy5BbnRpbWFsd2FyZVNldHRpbmcgYW50aW1hbHdhcmVTZXR0aW5nXG5cbi8vIEVuYWJsZSB0aGUgYW50aS1tYWx3YXJlIHN0cmVhbSBzY2FubmVyIHdpdGggdGhlIGdpdmVuIHNldHRpbmdzXG5NV0cuQW50aW1hbHdhcmVFbmFibGVTdHJlYW1TY2FubmVyKGFudGltYWx3YXJlU2V0dGluZylcblxuLy8gQW50aW1hbHdhcmUgc3RyZWFtIHNjYW5uZXIgZW5hYmxlZC4iLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICIvLyBDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgTVdHLkFudGltYWx3YXJlU2V0dGluZ1xuTVdHLkFudGltYWx3YXJlU2V0dGluZyBhbnRpbWFsd2FyZVNldHRpbmdcblxuLy8gRW5hYmxlIHRoZSBhbnRpLW1hbHdhcmUgc3RyZWFtIHNjYW5uZXIgd2l0aCB0aGUgZ2l2ZW4gc2V0dGluZ3Ncbk1XRy5BbnRpbWFsd2FyZUVuYWJsZVN0cmVhbVNjYW5uZXIoYW50aW1hbHdhcmVTZXR0aW5nKVxuXG4vLyBBbnRpbWFsd2FyZSBzdHJlYW0gc2Nhbm5lciBlbmFibGVkLiJ9LCB7Im5hbWUiOiAiTVdHLk1hbHdhcmVQcm9iYWJpbGl0eSAoTVdHLkludGVybmFsU2V0dGluZykiLCAicmV0dXJuX3R5cGUiOiAiTlVNQkVSIiwgInJldHVybl9kZXNjIjogIlJldHVybnMgYSBudW1lcmljYWwgcmVwcmVzZW50YXRpb24gb2YgdGhlIGxpa2VsaWhvb2Qgb2YgbWFsd2FyZS4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiTVdHLkludGVybmFsU2V0dGluZyAoT2JqZWN0KTogSW50ZXJuYWwgc2V0dGluZyBwYXJhbWV0ZXJzIHJlcXVpcmVkIGZvciBjYWxjdWxhdGluZyBtYWx3YXJlIHByb2JhYmlsaXR5LiIsICJkZXNjcmlwdGlvbiI6ICJSZXR1cm5zIHRoZSBtYWx3YXJlIHByb2JhYmlsaXR5IiwgImV4YW1wbGVfY29kZSI6ICJNV0cuSW50ZXJuYWxTZXR0aW5nIG1hbHdhcmVQcm9iYWJpbGl0eVNldHRpbmcgPSBNV0cuR2V0SW50ZXJuYWxTZXR0aW5nKFwiTWFsd2FyZVByb2JhYmlsaXR5XCIpXG5cbklGIG1hbHdhcmVQcm9iYWJpbGl0eVNldHRpbmcgPiAwLjggVEhFTiB7XG4gICAgLy8gSGlnaCBwcm9iYWJpbGl0eSBvZiBtYWx3YXJlIGRldGVjdGVkXG4gICAgTVdHLkJsb2NrKFwiSGlnaCBwcm9iYWJpbGl0eSBvZiBtYWx3YXJlIGRldGVjdGVkXCIpXG59IEVMU0Uge1xuICAgIC8vIE1hbHdhcmUgY2hlY2sgcGFzc2VkXG4gICAgTVdHLkFsbG93KFwiTWFsd2FyZSBjaGVjayBwYXNzZWRcIilcbn0iLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICJNV0cuSW50ZXJuYWxTZXR0aW5nIG1hbHdhcmVQcm9iYWJpbGl0eVNldHRpbmcgPSBNV0cuR2V0SW50ZXJuYWxTZXR0aW5nKFwiTWFsd2FyZVByb2JhYmlsaXR5XCIpXG5cbklGIG1hbHdhcmVQcm9iYWJpbGl0eVNldHRpbmcgPiAwLjggVEhFTiB7XG4gICAgLy8gSGlnaCBwcm9iYWJpbGl0eSBvZiBtYWx3YXJlIGRldGVjdGVkXG4gICAgTVdHLkJsb2NrKFwiSGlnaCBwcm9iYWJpbGl0eSBvZiBtYWx3YXJlIGRldGVjdGVkXCIpXG59IEVMU0Uge1xuICAgIC8vIE1hbHdhcmUgY2hlY2sgcGFzc2VkXG4gICAgTVdHLkFsbG93KFwiTWFsd2FyZSBjaGVjayBwYXNzZWRcIilcbn0ifSwgeyJuYW1lIjogIk1XRy5NYWx3YXJlUHJvYmFiaWxpdHkgKE1XRy5NQVREU2V0dGluZykiLCAicmV0dXJuX3R5cGUiOiAiTlVNQkVSIiwgInJldHVybl9kZXNjIjogIlJldHVybnMgdGhlIGxpa2VsaWhvb2Qgb2YgbWFsd2FyZSBwcmVzZW5jZSwgYXMgZGV0ZXJtaW5lZCBieSBBVEQuIiwgInBhcmFtZXRlcl9kZXNjIjogIk1XRy5NQVREU2V0dGluZzogY29uZmlndXJlcyB0aGUgQWRhcHRpdmUgVGhyZWF0IERldGVjdGlvbiBzZXR0aW5ncyBmb3IgY2FsY3VsYXRpbmcgbWFsd2FyZSBwcm9iYWJpbGl0eS4iLCAiZGVzY3JpcHRpb24iOiAiUmV0dXJucyB0aGUgbWFsd2FyZSBwcm9iYWJpbGl0eSAodmlhIEFURCkiLCAiZXhhbXBsZV9jb2RlIjogIi8vIENyZWF0ZSBhbiBpbnN0YW5jZSBvZiBNV0cuTUFURFNldHRpbmdcbk1XRy5NQVREU2V0dGluZyBtYXRkU2V0dGluZyA9IE1XRy5NQVREU2V0dGluZygpXG5cbi8vIENvbmZpZ3VyZSB0aGUgTUFURCBzZXR0aW5nIGFzIG5lZWRlZFxuLy8gVGhpcyBpcyBhIHBsYWNlaG9sZGVyIGZvciBhY3R1YWwgY29uZmlndXJhdGlvblxuLy8gRm9yIGV4YW1wbGUsIHlvdSBtaWdodCBzZXQgc29tZSBwcm9wZXJ0aWVzIG9uIHRoZSBtYXRkU2V0dGluZyBvYmplY3Rcbi8vIG1hdGRTZXR0aW5nLlNldFByb3BlcnR5KFwiZXhhbXBsZVByb3BlcnR5XCIsIFwiZXhhbXBsZVZhbHVlXCIpXG5cbi8vIENhbGwgdGhlIE1XRy5NYWx3YXJlUHJvYmFiaWxpdHkgZnVuY3Rpb24gd2l0aCB0aGUgY29uZmlndXJlZCBNQVREIHNldHRpbmdcbk5VTUJFUiBwcm9iYWJpbGl0eSA9IE1XRy5NYWx3YXJlUHJvYmFiaWxpdHkobWF0ZFNldHRpbmcpXG5cbi8vIE1hbHdhcmUgUHJvYmFiaWxpdHk6IFwiICsgcHJvYmFiaWxpdHlcblxuLy8gQ2hlY2sgdGhlIHByb2JhYmlsaXR5IGFuZCB0YWtlIGFjdGlvblxuSUYgcHJvYmFiaWxpdHkgPiAwLjUgVEhFTiB7XG4gICAgTVdHLkJsb2NrKFwiSGlnaCBtYWx3YXJlIHByb2JhYmlsaXR5IGRldGVjdGVkXCIpXG59IEVMU0Uge1xuICAgIE1XRy5BbGxvdyhcIkxvdyBtYWx3YXJlIHByb2JhYmlsaXR5XCIpXG59IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiLy8gQ3JlYXRlIGFuIGluc3RhbmNlIG9mIE1XRy5NQVREU2V0dGluZ1xuTVdHLk1BVERTZXR0aW5nIG1hdGRTZXR0aW5nID0gTVdHLk1BVERTZXR0aW5nKClcblxuLy8gQ29uZmlndXJlIHRoZSBNQVREIHNldHRpbmcgYXMgbmVlZGVkXG4vLyBUaGlzIGlzIGEgcGxhY2Vob2xkZXIgZm9yIGFjdHVhbCBjb25maWd1cmF0aW9uXG4vLyBGb3IgZXhhbXBsZSwgeW91IG1pZ2h0IHNldCBzb21lIHByb3BlcnRpZXMgb24gdGhlIG1hdGRTZXR0aW5nIG9iamVjdFxuLy8gbWF0ZFNldHRpbmcuU2V0UHJvcGVydHkoXCJleGFtcGxlUHJvcGVydHlcIiwgXCJleGFtcGxlVmFsdWVcIilcblxuLy8gQ2FsbCB0aGUgTVdHLk1hbHdhcmVQcm9iYWJpbGl0eSBmdW5jdGlvbiB3aXRoIHRoZSBjb25maWd1cmVkIE1BVEQgc2V0dGluZ1xuTlVNQkVSIHByb2JhYmlsaXR5ID0gTVdHLk1hbHdhcmVQcm9iYWJpbGl0eShtYXRkU2V0dGluZylcblxuLy8gTWFsd2FyZSBQcm9iYWJpbGl0eTogXCIgKyBwcm9iYWJpbGl0eVxuXG4vLyBDaGVjayB0aGUgcHJvYmFiaWxpdHkgYW5kIHRha2UgYWN0aW9uXG5JRiBwcm9iYWJpbGl0eSA+IDAuNSBUSEVOIHtcbiAgICBNV0cuQmxvY2soXCJIaWdoIG1hbHdhcmUgcHJvYmFiaWxpdHkgZGV0ZWN0ZWRcIilcbn0gRUxTRSB7XG4gICAgTVdHLkFsbG93KFwiTG93IG1hbHdhcmUgcHJvYmFiaWxpdHlcIilcbn0ifSwgeyJuYW1lIjogIk1XRy5NYXBJbkxpc3QgKFZFQ1RPUjxTVFJJTkc+LCBWRUNUT1I8U1RSSU5HPiwgU1RSSU5HKSIsICJyZXR1cm5fdHlwZSI6ICJTVFJJTkciLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyB0aGUgc3RyaW5nIGZyb20gdGhlIHNlY29uZCB2ZWN0b3IgY29ycmVzcG9uZGluZyB0byB0aGUgaW5kZXggb2YgdGhlIHN0cmluZyBmb3VuZCBpbiB0aGUgZmlyc3QgdmVjdG9yLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJWRUNUT1I8U1RSSU5HPjogTGlzdCB0byBzZWFyY2g7IFZFQ1RPUjxTVFJJTkc+OiBsaXN0IHRvIHJldHVybiBmcm9tOyBTVFJJTkc6IHZhbHVlIHRvIHNlYXJjaCBmb3IuIiwgImRlc2NyaXB0aW9uIjogIkNoZWNrcyBmb3IgaW5wdXQgU1RSSU5HIGluIGZpcnN0IFNUUklORyBsaXN0LCBpZiBmb3VuZCByZXR1cm5zIHRoZSBTVFJJTkcgZnJvbSB0aGUgc2FtZSBpbmRleCBpbiBzZWNvbmQgU1RSSU5HIGxpc3QiLCAiZXhhbXBsZV9jb2RlIjogIlZFQ1RPUjxTVFJJTkc+IHVybHMgPSBcImV4YW1wbGUuY29tXCIsIFwidGVzdHNpdGUuY29tXCIsIFwibXl3ZWJzaXRlLm9yZ1wiXG5WRUNUT1I8U1RSSU5HPiBjYXRlZ29yaWVzID0gXCJOZXdzXCIsIFwiQmxvZ1wiLCBcIlBlcnNvbmFsXCJcblxuU1RSSU5HIGN1cnJlbnRVcmwgPSBNV0cuVXJsKCkuVG9TdHJpbmcoKVxuU1RSSU5HIGNhdGVnb3J5ID0gTVdHLk1hcEluTGlzdCh1cmxzLCBjYXRlZ29yaWVzLCBjdXJyZW50VXJsKVxuXG5JRiBjYXRlZ29yeSAhPSBcIlwiIFRIRU4ge1xuICAgIC8vIFRoZSBjYXRlZ29yeSBmb3IgY3VycmVudFVybCBpcyBjYXRlZ29yeVxufSBFTFNFIHtcbiAgICAvLyBUaGUgVVJMIGN1cnJlbnRVcmwgaXMgbm90IGluIHRoZSBsaXN0LlxufSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIlZFQ1RPUjxTVFJJTkc+IHVybHMgPSBcImV4YW1wbGUuY29tXCIsIFwidGVzdHNpdGUuY29tXCIsIFwibXl3ZWJzaXRlLm9yZ1wiXG5WRUNUT1I8U1RSSU5HPiBjYXRlZ29yaWVzID0gXCJOZXdzXCIsIFwiQmxvZ1wiLCBcIlBlcnNvbmFsXCJcblxuU1RSSU5HIGN1cnJlbnRVcmwgPSBNV0cuVXJsKCkuVG9TdHJpbmcoKVxuU1RSSU5HIGNhdGVnb3J5ID0gTVdHLk1hcEluTGlzdCh1cmxzLCBjYXRlZ29yaWVzLCBjdXJyZW50VXJsKVxuXG5JRiBjYXRlZ29yeSAhPSBcIlwiIFRIRU4ge1xuICAgIC8vIFRoZSBjYXRlZ29yeSBmb3IgY3VycmVudFVybCBpcyBjYXRlZ29yeVxufSBFTFNFIHtcbiAgICAvLyBUaGUgVVJMIGN1cnJlbnRVcmwgaXMgbm90IGluIHRoZSBsaXN0LlxufSJ9LCB7Im5hbWUiOiAiTVdHLk1hcE1hdGNoSW5MaXN0IChWRUNUT1I8U1RSSU5HPiwgVkVDVE9SPFNUUklORz4sIFNUUklORykiLCAicmV0dXJuX3R5cGUiOiAiU1RSSU5HIiwgInJldHVybl9kZXNjIjogIlJldHVybnMgdGhlIHN0cmluZyBmcm9tIHRoZSBzZWNvbmQgdmVjdG9yIGNvcnJlc3BvbmRpbmcgdG8gdGhlIGluZGV4IG9mIHRoZSBzdHJpbmcgZm91bmQgaW4gdGhlIGZpcnN0IHZlY3Rvci4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiVkVDVE9SPFNUUklORz46IExpc3QgdG8gc2VhcmNoOyBWRUNUT1I8U1RSSU5HPjogbGlzdCB0byByZXR1cm4gZnJvbTsgU1RSSU5HOiB3aWxkY2FyZCB2YWx1ZSB0byBzZWFyY2ggZm9yLiIsICJkZXNjcmlwdGlvbiI6ICJDaGVja3MgZm9yIGlucHV0IHdpbGRjYXJkIFNUUklORyBpbiBmaXJzdCBTVFJJTkcgbGlzdCwgaWYgZm91bmQgcmV0dXJucyB0aGUgU1RSSU5HIGZyb20gdGhlIHNhbWUgaW5kZXggaW4gc2Vjb25kIFNUUklORyBsaXN0IiwgImV4YW1wbGVfY29kZSI6ICJWRUNUT1I8U1RSSU5HPiB1cmxQYXR0ZXJucyA9IFwiZXhhbXBsZS5jb20vKlwiLCBcInRlc3QuY29tLypcIiwgXCJzYW1wbGUub3JnLypcIlxuVkVDVE9SPFNUUklORz4gYWN0aW9ucyA9IFwiQmxvY2tcIiwgXCJBbGxvd1wiLCBcIk1vbml0b3JcIlxuU1RSSU5HIGN1cnJlbnRVcmwgPSBNV0cuVXJsKCkuVG9TdHJpbmcoKVxuXG5TVFJJTkcgYWN0aW9uID0gTVdHLk1hcE1hdGNoSW5MaXN0KHVybFBhdHRlcm5zLCBhY3Rpb25zLCBjdXJyZW50VXJsKVxuXG5JRiBhY3Rpb24gPT0gXCJCbG9ja1wiIFRIRU4ge1xuICAgIE1XRy5CbG9jayhcIkFjY2VzcyB0byB0aGlzIHNpdGUgaXMgYmxvY2tlZC5cIilcbn0gRUxTRSBJRiBhY3Rpb24gPT0gXCJBbGxvd1wiIFRIRU4ge1xuICAgIE1XRy5BbGxvdyhcIkFjY2VzcyB0byB0aGlzIHNpdGUgaXMgYWxsb3dlZC5cIilcbn0gRUxTRSBJRiBhY3Rpb24gPT0gXCJNb25pdG9yXCIgVEhFTiB7XG4gICAgLy8gTW9uaXRvcmluZyBhY2Nlc3MgdG8gdGhpcyBzaXRlLlxufSBFTFNFIHtcbiAgICAvLyBObyBtYXRjaGluZyBwYXR0ZXJuIGZvdW5kIGZvciB0aGUgVVJMLlxufSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIlZFQ1RPUjxTVFJJTkc+IHVybFBhdHRlcm5zID0gXCJleGFtcGxlLmNvbS8qXCIsIFwidGVzdC5jb20vKlwiLCBcInNhbXBsZS5vcmcvKlwiXG5WRUNUT1I8U1RSSU5HPiBhY3Rpb25zID0gXCJCbG9ja1wiLCBcIkFsbG93XCIsIFwiTW9uaXRvclwiXG5TVFJJTkcgY3VycmVudFVybCA9IE1XRy5VcmwoKS5Ub1N0cmluZygpXG5cblNUUklORyBhY3Rpb24gPSBNV0cuTWFwTWF0Y2hJbkxpc3QodXJsUGF0dGVybnMsIGFjdGlvbnMsIGN1cnJlbnRVcmwpXG5cbklGIGFjdGlvbiA9PSBcIkJsb2NrXCIgVEhFTiB7XG4gICAgTVdHLkJsb2NrKFwiQWNjZXNzIHRvIHRoaXMgc2l0ZSBpcyBibG9ja2VkLlwiKVxufSBFTFNFIElGIGFjdGlvbiA9PSBcIkFsbG93XCIgVEhFTiB7XG4gICAgTVdHLkFsbG93KFwiQWNjZXNzIHRvIHRoaXMgc2l0ZSBpcyBhbGxvd2VkLlwiKVxufSBFTFNFIElGIGFjdGlvbiA9PSBcIk1vbml0b3JcIiBUSEVOIHtcbiAgICAvLyBNb25pdG9yaW5nIGFjY2VzcyB0byB0aGlzIHNpdGUuXG59IEVMU0Uge1xuICAgIC8vIE5vIG1hdGNoaW5nIHBhdHRlcm4gZm91bmQgZm9yIHRoZSBVUkwuXG59In0sIHsibmFtZSI6ICJNV0cuTWVkaWFUeXBlTGlzdEJ5TmFtZSAoU1RSSU5HKSIsICJyZXR1cm5fdHlwZSI6ICJWRUNUT1I8TWVkaWFUeXBlPiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIGBNZWRpYVR5cGVgIGxpc3Qgd2l0aCBzcGVjaWZpZWQgbmFtZS4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiU1RSSU5HOiBuYW1lIG9mIG1lZGlhIGxpc3QgdG8gZ2V0LiIsICJkZXNjcmlwdGlvbiI6ICJSZXRyaWV2ZXMgYSBNZWRpYVR5cGUgbGlzdCBieSBsaXN0IG5hbWUiLCAiZXhhbXBsZV9jb2RlIjogIi8vIERlZmluZSB0aGUgbmFtZSBvZiB0aGUgbWVkaWEgdHlwZSBsaXN0IHRvIHJldHJpZXZlXG5TVFJJTkcgbWVkaWFUeXBlTGlzdE5hbWUgPSBcImV4YW1wbGVfbWVkaWFfdHlwZV9saXN0XCJcblxuLy8gUmV0cmlldmUgdGhlIG1lZGlhIHR5cGUgbGlzdFxuVkVDVE9SPE1lZGlhVHlwZT4gbWVkaWFUeXBlcyA9IE1XRy5NZWRpYVR5cGVMaXN0QnlOYW1lKG1lZGlhVHlwZUxpc3ROYW1lKVxuXG4vLyBJdGVyYXRlIHRocm91Z2ggdGhlIG1lZGlhIHR5cGVzIGFuZCBwcmludCB0aGVtIHRvIHRoZSBjb25zb2xlXG5GT1IgRUFDSCBNZWRpYVR5cGUgbWVkaWFUeXBlIElOIG1lZGlhVHlwZXMge1xuICAgIC8vIE1lZGlhIFR5cGU6IFwiICsgbWVkaWFUeXBlXG59XG5cbi8vIEV4YW1wbGUgY29uZGl0aW9uIHRvIGJsb2NrIGEgcmVxdWVzdCBpZiBhIGNlcnRhaW4gbWVkaWEgdHlwZSBpcyBmb3VuZFxuSUYgXCJhcHBsaWNhdGlvbi9qc29uXCIgSU4gbWVkaWFUeXBlcyBUSEVOIHtcbiAgICBNV0cuQmxvY2soXCJCbG9ja2VkIGR1ZSB0byBtZWRpYSB0eXBlIGFwcGxpY2F0aW9uL2pzb25cIilcbn0gRUxTRSB7XG4gICAgTVdHLkFsbG93KFwiTWVkaWEgdHlwZSBjaGVjayBwYXNzZWRcIilcbn0iLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICIvLyBEZWZpbmUgdGhlIG5hbWUgb2YgdGhlIG1lZGlhIHR5cGUgbGlzdCB0byByZXRyaWV2ZVxuU1RSSU5HIG1lZGlhVHlwZUxpc3ROYW1lID0gXCJleGFtcGxlX21lZGlhX3R5cGVfbGlzdFwiXG5cbi8vIFJldHJpZXZlIHRoZSBtZWRpYSB0eXBlIGxpc3RcblZFQ1RPUjxNZWRpYVR5cGU+IG1lZGlhVHlwZXMgPSBNV0cuTWVkaWFUeXBlTGlzdEJ5TmFtZShtZWRpYVR5cGVMaXN0TmFtZSlcblxuLy8gSXRlcmF0ZSB0aHJvdWdoIHRoZSBtZWRpYSB0eXBlcyBhbmQgcHJpbnQgdGhlbSB0byB0aGUgY29uc29sZVxuRk9SIEVBQ0ggTWVkaWFUeXBlIG1lZGlhVHlwZSBJTiBtZWRpYVR5cGVzIHtcbiAgICAvLyBNZWRpYSBUeXBlOiBcIiArIG1lZGlhVHlwZVxufVxuXG4vLyBFeGFtcGxlIGNvbmRpdGlvbiB0byBibG9jayBhIHJlcXVlc3QgaWYgYSBjZXJ0YWluIG1lZGlhIHR5cGUgaXMgZm91bmRcbklGIFwiYXBwbGljYXRpb24vanNvblwiIElOIG1lZGlhVHlwZXMgVEhFTiB7XG4gICAgTVdHLkJsb2NrKFwiQmxvY2tlZCBkdWUgdG8gbWVkaWEgdHlwZSBhcHBsaWNhdGlvbi9qc29uXCIpXG59IEVMU0Uge1xuICAgIE1XRy5BbGxvdyhcIk1lZGlhIHR5cGUgY2hlY2sgcGFzc2VkXCIpXG59In0sIHsibmFtZSI6ICJNV0cuTWVkaWFUeXBlTGlzdEJ5TmFtZUV4aXN0cyAoU1RSSU5HKSIsICJyZXR1cm5fdHlwZSI6ICJCT09MRUFOIiwgInJldHVybl9kZXNjIjogIlJldHVybnNgVFJVRWBpZiBgTWVkaWFUeXBlYCBsaXN0IHdpdGggdGhlIG5hbWUgZXhpc3RzLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJTVFJJTkc6IG5hbWUgb2YgbWVkaWEgbGlzdCB0byBjaGVjayBmb3IuIiwgImRlc2NyaXB0aW9uIjogIlJldHVybnMgVFJVRSBpZiBNZWRpYVR5cGUgbGlzdCB3aXRoIHRoZSBuYW1lIGV4aXN0cyIsICJleGFtcGxlX2NvZGUiOiAiU1RSSU5HIGxpc3ROYW1lID0gXCJleGFtcGxlX21lZGlhX3R5cGVfbGlzdFwiXG5cbklGIE1XRy5NZWRpYVR5cGVMaXN0QnlOYW1lRXhpc3RzKGxpc3ROYW1lKSBUSEVOIHtcbiAgICAvLyBNZWRpYSB0eXBlIGxpc3QgZXhpc3RzOiBcIiArIGxpc3ROYW1lXG59IEVMU0Uge1xuICAgIC8vIE1lZGlhIHR5cGUgbGlzdCBkb2VzIG5vdCBleGlzdDogXCIgKyBsaXN0TmFtZVxufSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIlNUUklORyBsaXN0TmFtZSA9IFwiZXhhbXBsZV9tZWRpYV90eXBlX2xpc3RcIlxuXG5JRiBNV0cuTWVkaWFUeXBlTGlzdEJ5TmFtZUV4aXN0cyhsaXN0TmFtZSkgVEhFTiB7XG4gICAgLy8gTWVkaWEgdHlwZSBsaXN0IGV4aXN0czogXCIgKyBsaXN0TmFtZVxufSBFTFNFIHtcbiAgICAvLyBNZWRpYSB0eXBlIGxpc3QgZG9lcyBub3QgZXhpc3Q6IFwiICsgbGlzdE5hbWVcbn0ifSwgeyJuYW1lIjogIk1XRy5Nb2R1bG9OdW1iZXIgKE5VTUJFUiwgTlVNQkVSKSIsICJyZXR1cm5fdHlwZSI6ICJOVU1CRVIiLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyB0aGUgcmVtYWluZGVyIHdoZW4gdGhlIGZpcnN0IG51bWJlciBpcyBkaXZpZGVkIGJ5IHRoZSBzZWNvbmQgbnVtYmVyLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJOVU1CRVI6IHRoZSBudW1lcmF0b3I7IE5VTUJFUjogdGhlIGRlbm9taW5hdG9yLiIsICJkZXNjcmlwdGlvbiI6ICJSZXR1cm5zIHRoZSBtb2R1bG8iLCAiZXhhbXBsZV9jb2RlIjogIk5VTUJFUiBudW1lcmF0b3IgPSAxMFxuTlVNQkVSIGRlbm9taW5hdG9yID0gM1xuTlVNQkVSIHJlc3VsdCA9IE1XRy5Nb2R1bG9OdW1iZXIobnVtZXJhdG9yLCBkZW5vbWluYXRvcilcblxuLy8gVGhlIHJlc3VsdCBvZiAxMCAlIDMgaXMgMSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIk5VTUJFUiBudW1lcmF0b3IgPSAxMFxuTlVNQkVSIGRlbm9taW5hdG9yID0gM1xuTlVNQkVSIHJlc3VsdCA9IE1XRy5Nb2R1bG9OdW1iZXIobnVtZXJhdG9yLCBkZW5vbWluYXRvcilcblxuLy8gVGhlIHJlc3VsdCBvZiAxMCAlIDMgaXMgMSJ9LCB7Im5hbWUiOiAiTVdHLk51bWJlckxpc3RCeU5hbWUgKFNUUklORykiLCAicmV0dXJuX3R5cGUiOiAiVkVDVE9SPE5VTUJFUj4iLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyB0aGUgbGlzdCB3aXRoIHRoZSBzcGVjaWZpZWQgbmFtZS4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiU1RSSU5HOiBuYW1lIG9mIGxpc3QgdG8gZ2V0LiIsICJkZXNjcmlwdGlvbiI6ICJSZXRyaWV2ZXMgYSBWRUNUT1I8TlVNQkVSPiBieSBsaXN0IG5hbWUiLCAiZXhhbXBsZV9jb2RlIjogIi8vIERlZmluZSB0aGUgbmFtZSBvZiB0aGUgbnVtYmVyIGxpc3RcblNUUklORyBsaXN0TmFtZSA9IFwiZXhhbXBsZU51bWJlckxpc3RcIlxuXG4vLyBSZXRyaWV2ZSB0aGUgbnVtYmVyIGxpc3QgYnkgbmFtZVxuVkVDVE9SPE5VTUJFUj4gbnVtYmVyTGlzdCA9IE1XRy5OdW1iZXJMaXN0QnlOYW1lKGxpc3ROYW1lKVxuXG4vLyBDaGVjayBpZiB0aGUgbnVtYmVyIGxpc3QgaXMgbm90IGVtcHR5XG5JRiBudW1iZXJMaXN0LlNJWkUgPiAwIFRIRU4ge1xuICAgIC8vIEl0ZXJhdGUgdGhyb3VnaCB0aGUgbnVtYmVyIGxpc3QgYW5kIHByaW50IGVhY2ggbnVtYmVyXG4gICAgRk9SIE5VTUJFUiBudW0gSU4gbnVtYmVyTGlzdCB7XG4gICAgICAgIC8vIE51bWJlcjogbnVtXG4gICAgfVxuXG4gICAgLy8gRXhhbXBsZSBjb25kaXRpb24gdG8gYmxvY2sgaWYgYSBzcGVjaWZpYyBudW1iZXIgaXMgZm91bmQgaW4gdGhlIGxpc3RcbiAgICBJRiA0MiBJTiBudW1iZXJMaXN0IFRIRU4ge1xuICAgICAgICBNV0cuQmxvY2soXCJBY2Nlc3MgYmxvY2tlZCBkdWUgdG8gbnVtYmVyIDQyIGluIHRoZSBsaXN0XCIpXG4gICAgfSBFTFNFIHtcbiAgICAgICAgTVdHLkFsbG93KFwiQWNjZXNzIGFsbG93ZWRcIilcbiAgICB9XG59IEVMU0Uge1xuICAgIC8vIFRoZSBudW1iZXIgbGlzdCBpcyBlbXB0eVxuICAgIE1XRy5BbGxvdyhcIkFjY2VzcyBhbGxvd2VkXCIpXG59IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiLy8gRGVmaW5lIHRoZSBuYW1lIG9mIHRoZSBudW1iZXIgbGlzdFxuU1RSSU5HIGxpc3ROYW1lID0gXCJleGFtcGxlTnVtYmVyTGlzdFwiXG5cbi8vIFJldHJpZXZlIHRoZSBudW1iZXIgbGlzdCBieSBuYW1lXG5WRUNUT1I8TlVNQkVSPiBudW1iZXJMaXN0ID0gTVdHLk51bWJlckxpc3RCeU5hbWUobGlzdE5hbWUpXG5cbi8vIENoZWNrIGlmIHRoZSBudW1iZXIgbGlzdCBpcyBub3QgZW1wdHlcbklGIG51bWJlckxpc3QuU0laRSA+IDAgVEhFTiB7XG4gICAgLy8gSXRlcmF0ZSB0aHJvdWdoIHRoZSBudW1iZXIgbGlzdCBhbmQgcHJpbnQgZWFjaCBudW1iZXJcbiAgICBGT1IgTlVNQkVSIG51bSBJTiBudW1iZXJMaXN0IHtcbiAgICAgICAgLy8gTnVtYmVyOiBudW1cbiAgICB9XG5cbiAgICAvLyBFeGFtcGxlIGNvbmRpdGlvbiB0byBibG9jayBpZiBhIHNwZWNpZmljIG51bWJlciBpcyBmb3VuZCBpbiB0aGUgbGlzdFxuICAgIElGIDQyIElOIG51bWJlckxpc3QgVEhFTiB7XG4gICAgICAgIE1XRy5CbG9jayhcIkFjY2VzcyBibG9ja2VkIGR1ZSB0byBudW1iZXIgNDIgaW4gdGhlIGxpc3RcIilcbiAgICB9IEVMU0Uge1xuICAgICAgICBNV0cuQWxsb3coXCJBY2Nlc3MgYWxsb3dlZFwiKVxuICAgIH1cbn0gRUxTRSB7XG4gICAgLy8gVGhlIG51bWJlciBsaXN0IGlzIGVtcHR5XG4gICAgTVdHLkFsbG93KFwiQWNjZXNzIGFsbG93ZWRcIilcbn0ifSwgeyJuYW1lIjogIk1XRy5OdW1iZXJMaXN0QnlOYW1lRXhpc3RzIChTVFJJTkcpIiwgInJldHVybl90eXBlIjogIkJPT0xFQU4iLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJuc2BUUlVFYGlmIFZFQ1RPUjxgTlVNQkVSYD4gbGlzdCB3aXRoIHRoZSBuYW1lIGV4aXN0cy4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiU1RSSU5HOiBuYW1lIG9mIGxpc3QgdG8gY2hlY2sgZm9yLiIsICJkZXNjcmlwdGlvbiI6ICJSZXR1cm5zIFRSVUUgaWYgVkVDVE9SPE5VTUJFUj4gbGlzdCB3aXRoIHRoZSBuYW1lIGV4aXN0cyIsICJleGFtcGxlX2NvZGUiOiAiU1RSSU5HIGxpc3ROYW1lID0gXCJleGFtcGxlX251bWJlcl9saXN0XCJcblxuSUYgTVdHLk51bWJlckxpc3RCeU5hbWVFeGlzdHMobGlzdE5hbWUpIFRIRU4ge1xuICAgIC8vIFRoZSBudW1iZXIgbGlzdCAnZXhhbXBsZV9udW1iZXJfbGlzdCcgZXhpc3RzLlxuICAgIC8vIEFkZGl0aW9uYWwgYWN0aW9ucyBjYW4gYmUgdGFrZW4gaGVyZSBpZiB0aGUgbGlzdCBleGlzdHNcbn0gRUxTRSB7XG4gICAgLy8gVGhlIG51bWJlciBsaXN0ICdleGFtcGxlX251bWJlcl9saXN0JyBkb2VzIG5vdCBleGlzdC5cbiAgICAvLyBBZGRpdGlvbmFsIGFjdGlvbnMgY2FuIGJlIHRha2VuIGhlcmUgaWYgdGhlIGxpc3QgZG9lcyBub3QgZXhpc3Rcbn0iLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICJTVFJJTkcgbGlzdE5hbWUgPSBcImV4YW1wbGVfbnVtYmVyX2xpc3RcIlxuXG5JRiBNV0cuTnVtYmVyTGlzdEJ5TmFtZUV4aXN0cyhsaXN0TmFtZSkgVEhFTiB7XG4gICAgLy8gVGhlIG51bWJlciBsaXN0ICdleGFtcGxlX251bWJlcl9saXN0JyBleGlzdHMuXG4gICAgLy8gQWRkaXRpb25hbCBhY3Rpb25zIGNhbiBiZSB0YWtlbiBoZXJlIGlmIHRoZSBsaXN0IGV4aXN0c1xufSBFTFNFIHtcbiAgICAvLyBUaGUgbnVtYmVyIGxpc3QgJ2V4YW1wbGVfbnVtYmVyX2xpc3QnIGRvZXMgbm90IGV4aXN0LlxuICAgIC8vIEFkZGl0aW9uYWwgYWN0aW9ucyBjYW4gYmUgdGFrZW4gaGVyZSBpZiB0aGUgbGlzdCBkb2VzIG5vdCBleGlzdFxufSJ9LCB7Im5hbWUiOiAiTVdHLk9yaWdpbmFsRGVzdGluYXRpb25JUCAoKSIsICJyZXR1cm5fdHlwZSI6ICJOZXQuSVAiLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyB0aGUgSVAgYWRkcmVzcyBvZiB0aGUgaW50ZW5kZWQgZGVzdGluYXRpb24gd2hlbiBvcGVyYXRpbmcgaW4gdHJhbnNwYXJlbnQgbW9kZS4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiTm9uZSIsICJkZXNjcmlwdGlvbiI6ICJSZXR1cm4gdGhlIElQIGFkZHJlc3Mgb2Ygb3JpZ2luYWwgZGVzdGluYXRpb24gaW4gdHJhbnNwYXJlbnQgbW9kZSIsICJleGFtcGxlX2NvZGUiOiAiTmV0LklQIGRlc3RpbmF0aW9uSVAgPSBNV0cuRGVzdGluYXRpb25JUCgpXG4vLyBEZXN0aW5hdGlvbiBJUDogZGVzdGluYXRpb25JUFxuXG4vLyBFeGFtcGxlIGNvbmRpdGlvbiB0byBibG9jayBhIHNwZWNpZmljIElQXG5JRiBkZXN0aW5hdGlvbklQID09IFwiMTkyLjE2OC4xLjFcIiBUSEVOIHtcbiAgICBNV0cuQmxvY2soXCJBY2Nlc3MgdG8gdGhpcyBJUCBpcyBibG9ja2VkLlwiKVxufSBFTFNFIHtcbiAgICBNV0cuQWxsb3coXCJJUCBpcyBhbGxvd2VkLlwiKVxufSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIk5ldC5JUCBkZXN0aW5hdGlvbklQID0gTVdHLkRlc3RpbmF0aW9uSVAoKVxuLy8gRGVzdGluYXRpb24gSVA6IGRlc3RpbmF0aW9uSVBcblxuLy8gRXhhbXBsZSBjb25kaXRpb24gdG8gYmxvY2sgYSBzcGVjaWZpYyBJUFxuSUYgZGVzdGluYXRpb25JUCA9PSBcIjE5Mi4xNjguMS4xXCIgVEhFTiB7XG4gICAgTVdHLkJsb2NrKFwiQWNjZXNzIHRvIHRoaXMgSVAgaXMgYmxvY2tlZC5cIilcbn0gRUxTRSB7XG4gICAgTVdHLkFsbG93KFwiSVAgaXMgYWxsb3dlZC5cIilcbn0ifSwgeyJuYW1lIjogIk1XRy5PdXRib3VuZElQRnJvbVBvb2wgKE5VTUJFUikiLCAicmV0dXJuX3R5cGUiOiAiTmV0LklQIiwgInJldHVybl9kZXNjIjogIlJldHVybnMgdGhlIFByb3h5IG91dGJvdW5kIElQIGFkZHJlc3MuIiwgInBhcmFtZXRlcl9kZXNjIjogIk5VTUJFUjogdGhlIGluZGV4IHRvIHVzZSIsICJkZXNjcmlwdGlvbiI6ICJHZXQgYSBQcm94eSBvdXRib3VuZCBJUCBhZGRyZXNzIGZyb20gcG9vbCIsICJleGFtcGxlX2NvZGUiOiAiTlVNQkVSIGlwSW5kZXggPSAyXG5TVFJJTkcgc2VsZWN0ZWRJUCA9IE1XRy5PdXRib3VuZElQRnJvbVBvb2woaXBJbmRleClcblxuLy8gU2VsZWN0ZWQgT3V0Ym91bmQgSVA6ICsgc2VsZWN0ZWRJUCIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIk5VTUJFUiBpcEluZGV4ID0gMlxuU1RSSU5HIHNlbGVjdGVkSVAgPSBNV0cuT3V0Ym91bmRJUEZyb21Qb29sKGlwSW5kZXgpXG5cbi8vIFNlbGVjdGVkIE91dGJvdW5kIElQOiArIHNlbGVjdGVkSVAifSwgeyJuYW1lIjogIk1XRy5PdXRib3VuZFBvcnQgKCkiLCAicmV0dXJuX3R5cGUiOiAiTlVNQkVSIiwgInJldHVybl9kZXNjIjogIlJldHVybnMgb3V0Ym91bmQgcG9ydC4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiTm9uZSIsICJkZXNjcmlwdGlvbiI6ICJSZXR1cm5zIG91dGJvdWQgcG9ydCIsICJleGFtcGxlX2NvZGUiOiAiTlVNQkVSIHBvcnQgPSBNV0cuT3V0Ym91bmRQb3J0KClcblxuSUYgcG9ydCA9PSA4MCBUSEVOIHtcbiAgICBNV0cuQWxsb3coXCJBbGxvd2VkIG91dGJvdW5kIHBvcnQgODBcIilcbn0gRUxTRSB7XG4gICAgTVdHLkJsb2NrKFwiQmxvY2tlZCBvdXRib3VuZCBwb3J0XCIpXG59IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiTlVNQkVSIHBvcnQgPSBNV0cuT3V0Ym91bmRQb3J0KClcblxuSUYgcG9ydCA9PSA4MCBUSEVOIHtcbiAgICBNV0cuQWxsb3coXCJBbGxvd2VkIG91dGJvdW5kIHBvcnQgODBcIilcbn0gRUxTRSB7XG4gICAgTVdHLkJsb2NrKFwiQmxvY2tlZCBvdXRib3VuZCBwb3J0XCIpXG59In0sIHsibmFtZSI6ICJNV0cuUGFyYW1ldGVyIChNV0cuVVJMLCBTVFJJTkcpIiwgInJldHVybl90eXBlIjogIlNUUklORyIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIHRoZSByZXF1ZXN0ZWQgcXVlcnkgcGFyYW1ldGVyIG9mIGEgVVJMIGFzIGEgc3RyaW5nLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJNV0cuVVJMOiBUaGUgZnVsbCBVUkwgU1RSSU5HOyBTVFJJTkc6IFRoZSBuYW1lIG9mIHRoZSBwYXJhbWV0ZXIgdG8gcmV0cmlldmUuIiwgImRlc2NyaXB0aW9uIjogIlJldHVybiBhIHNwZWNpZmljIHBhcmFtZXRlciBwb3J0aW9uIG9mIGEgVVJMIGFzIGEgU1RSSU5HIiwgImV4YW1wbGVfY29kZSI6ICJNV0cuVVJMIGN1cnJlbnRVcmwgPSBNV0cuVXJsKClcblNUUklORyBrZXkgPSBcImV4YW1wbGVLZXlcIlxuU1RSSU5HIHZhbHVlID0gXCJleGFtcGxlVmFsdWVcIlxuXG5NV0cuU2V0UGFyYW1ldGVyKGN1cnJlbnRVcmwsIGtleSwgdmFsdWUpXG5cbi8vIE1vZGlmaWVkIFVSTDogY3VycmVudFVybCIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIk1XRy5VUkwgY3VycmVudFVybCA9IE1XRy5VcmwoKVxuU1RSSU5HIGtleSA9IFwiZXhhbXBsZUtleVwiXG5TVFJJTkcgdmFsdWUgPSBcImV4YW1wbGVWYWx1ZVwiXG5cbk1XRy5TZXRQYXJhbWV0ZXIoY3VycmVudFVybCwga2V5LCB2YWx1ZSlcblxuLy8gTW9kaWZpZWQgVVJMOiBjdXJyZW50VXJsIn0sIHsibmFtZSI6ICJNV0cuUGFyYW1ldGVycyAoTVdHLlVSTCkiLCAicmV0dXJuX3R5cGUiOiAiVkVDVE9SPFNUUklORz4iLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyBhIHZlY3RvciBjb250YWluaW5nIHRoZSBwYXJhbWV0ZXJzIGV4dHJhY3RlZCBmcm9tIHRoZSBnaXZlbiBVUkwuIiwgInBhcmFtZXRlcl9kZXNjIjogIk1XRy5VUkw6IHRoZSB3ZWIgYWRkcmVzcyBmcm9tIHdoaWNoIHRvIGV4dHJhY3QgdGhlIHBhcmFtZXRlcnMuIiwgImRlc2NyaXB0aW9uIjogIkV4dHJhY3QgcGFyYW1ldGVycyBvZiB0aGUgVVJMIiwgImV4YW1wbGVfY29kZSI6ICJNV0cuVVJMIGN1cnJlbnRVcmwgPSBNV0cuVXJsKClcblNUUklORyBwYXJhbWV0ZXJOYW1lID0gXCJleGFtcGxlUGFyYW1cIlxuU1RSSU5HIHBhcmFtZXRlclZhbHVlID0gTVdHLlBhcmFtZXRlcihjdXJyZW50VXJsLCBwYXJhbWV0ZXJOYW1lKVxuXG4vLyBUaGUgdmFsdWUgb2YgdGhlIHBhcmFtZXRlciAnZXhhbXBsZVBhcmFtJyBpczogcGFyYW1ldGVyVmFsdWUiLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICJNV0cuVVJMIGN1cnJlbnRVcmwgPSBNV0cuVXJsKClcblNUUklORyBwYXJhbWV0ZXJOYW1lID0gXCJleGFtcGxlUGFyYW1cIlxuU1RSSU5HIHBhcmFtZXRlclZhbHVlID0gTVdHLlBhcmFtZXRlcihjdXJyZW50VXJsLCBwYXJhbWV0ZXJOYW1lKVxuXG4vLyBUaGUgdmFsdWUgb2YgdGhlIHBhcmFtZXRlciAnZXhhbXBsZVBhcmFtJyBpczogcGFyYW1ldGVyVmFsdWUifSwgeyJuYW1lIjogIk1XRy5QYXJhbWV0ZXJTVFJJTkcgKE1XRy5VUkwpIiwgInJldHVybl90eXBlIjogIlNUUklORyIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIGEgc3RyaW5nIHRoYXQgY29udGFpbnMgYWxsIHRoZSBwYXJhbWV0ZXJzIGV4dHJhY3RlZCBmcm9tIGEgZ2l2ZW4gVVJMLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJNV0cuVVJMOiB0aGUgVVJMIHRvIGV4dHJhY3QgcGFyYW1ldGVycyBmcm9tLiIsICJkZXNjcmlwdGlvbiI6ICJSZXR1cm4gYWxsIHBhcmFtZXRlcnMgb2YgYSBVUkwgYXMgYSBTVFJJTkciLCAiZXhhbXBsZV9jb2RlIjogIk1XRy5VUkwgY3VycmVudFVybCA9IE1XRy5VcmwoKVxuTVdHLlNldFBhcmFtZXRlcihjdXJyZW50VXJsLCBcImtleVwiLCBcInZhbHVlXCIpXG4vLyBNb2RpZmllZCBVUkw6ICsgY3VycmVudFVybCIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIk1XRy5VUkwgY3VycmVudFVybCA9IE1XRy5VcmwoKVxuTVdHLlNldFBhcmFtZXRlcihjdXJyZW50VXJsLCBcImtleVwiLCBcInZhbHVlXCIpXG4vLyBNb2RpZmllZCBVUkw6ICsgY3VycmVudFVybCJ9LCB7Im5hbWUiOiAiTVdHLlBhdGggKE1XRy5VUkwpIiwgInJldHVybl90eXBlIjogIlNUUklORyIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIHRoZSBwYXRoIGNvbXBvbmVudCBvZiBhIGdpdmVuIFVSTCBhcyBhIHN0cmluZy4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiTVdHLlVSTDogdGhlIFVSTCB0byBleHRyYWN0IHRoZSBwYXRoIGZyb20uIiwgImRlc2NyaXB0aW9uIjogIlJldHVybiB0aGUgcGF0aCBvZiBhbiBVUkwiLCAiZXhhbXBsZV9jb2RlIjogIi8vIEdldCB0aGUgY3VycmVudCBVUkxcbk1XRy5VUkwgY3VycmVudFVybCA9IE1XRy5VcmwoKVxuXG4vLyBFeHRyYWN0IHRoZSBwYXRoIGZyb20gdGhlIFVSTFxuU1RSSU5HIHVybFBhdGggPSBNV0cuUGF0aChjdXJyZW50VXJsKVxuXG4vLyBUaGUgcGF0aCBvZiB0aGUgY3VycmVudCBVUkwgaXM6IFwiICsgdXJsUGF0aCIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIi8vIEdldCB0aGUgY3VycmVudCBVUkxcbk1XRy5VUkwgY3VycmVudFVybCA9IE1XRy5VcmwoKVxuXG4vLyBFeHRyYWN0IHRoZSBwYXRoIGZyb20gdGhlIFVSTFxuU1RSSU5HIHVybFBhdGggPSBNV0cuUGF0aChjdXJyZW50VXJsKVxuXG4vLyBUaGUgcGF0aCBvZiB0aGUgY3VycmVudCBVUkwgaXM6IFwiICsgdXJsUGF0aCJ9LCB7Im5hbWUiOiAiTVdHLlBvbGljeUV4ZWN1dGlvbkR1cmF0aW9uICgpIiwgInJldHVybl90eXBlIjogIk5VTUJFUiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIHRoZSB0aW1lIHNwZW50IGZvciBwb2xpY3kgZXZhbHVhdGlvbiAod2l0aG91dCB3YWl0aW5nIHRpbWUpLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJOb25lIiwgImRlc2NyaXB0aW9uIjogIlJldHVybnMgdGhlIHRpbWUgc3BlbnQgZm9yIHBvbGljeSBldmFsdWF0aW9uICh3aXRob3V0IHdhaXRpbmcgdGltZSkiLCAiZXhhbXBsZV9jb2RlIjogIk5VTUJFUiBkdXJhdGlvbiA9IE1XRy5Qb2xpY3lFeGVjdXRpb25EdXJhdGlvbigpXG4vLyBQb2xpY3kgZXhlY3V0aW9uIGR1cmF0aW9uOiBcIiArIGR1cmF0aW9uICsgXCIgbWlsbGlzZWNvbmRzIiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiTlVNQkVSIGR1cmF0aW9uID0gTVdHLlBvbGljeUV4ZWN1dGlvbkR1cmF0aW9uKClcbi8vIFBvbGljeSBleGVjdXRpb24gZHVyYXRpb246IFwiICsgZHVyYXRpb24gKyBcIiBtaWxsaXNlY29uZHMifSwgeyJuYW1lIjogIk1XRy5Qb2xpY3lFeGVjdXRpb25FcnJvciAoKSIsICJyZXR1cm5fdHlwZSI6ICJTVFJJTkciLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyBlcnJvciBkZXNjcmlwdGlvbiBmb3IgcG9saWN5IGV4ZWN1dGlvbiBlcnJvcnMuIiwgInBhcmFtZXRlcl9kZXNjIjogIk5vbmUiLCAiZGVzY3JpcHRpb24iOiAiUmV0dXJucyBlcnJvciBkZXNjcmlwdGlvbiBmb3IgcG9saWN5IGV4ZWN1dGlvbiBlcnJvcnMiLCAiZXhhbXBsZV9jb2RlIjogIlNUUklORyBlcnJvckRlc2NyaXB0aW9uID0gTVdHLlBvbGljeUV4ZWN1dGlvbkVycm9yKClcblxuSUYgZXJyb3JEZXNjcmlwdGlvbiAhPSBcIlwiIFRIRU4ge1xuICAgIC8vIFBvbGljeSBFeGVjdXRpb24gRXJyb3I6IFwiICsgZXJyb3JEZXNjcmlwdGlvblxufSBFTFNFIHtcbiAgICAvLyBObyBwb2xpY3kgZXhlY3V0aW9uIGVycm9ycy5cbn0iLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICJTVFJJTkcgZXJyb3JEZXNjcmlwdGlvbiA9IE1XRy5Qb2xpY3lFeGVjdXRpb25FcnJvcigpXG5cbklGIGVycm9yRGVzY3JpcHRpb24gIT0gXCJcIiBUSEVOIHtcbiAgICAvLyBQb2xpY3kgRXhlY3V0aW9uIEVycm9yOiBcIiArIGVycm9yRGVzY3JpcHRpb25cbn0gRUxTRSB7XG4gICAgLy8gTm8gcG9saWN5IGV4ZWN1dGlvbiBlcnJvcnMuXG59In0sIHsibmFtZSI6ICJNV0cuUG9ydCAoTVdHLlVSTCkiLCAicmV0dXJuX3R5cGUiOiAiTlVNQkVSIiwgInJldHVybl9kZXNjIjogIlJldHVybnMgdGhlIHBvcnQgbnVtYmVyIHNwZWNpZmllZCBpbiB0aGUgZ2l2ZW4gVVJMLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJNV0cuVVJMOiB0aGUgVVJMIHRvIGV4dHJhY3QgdGhlIHBvcnQgTlVNQkVSIGZyb20uIiwgImRlc2NyaXB0aW9uIjogIlJldHVybiB0aGUgcG9ydCBvZiBhIFVSTCIsICJleGFtcGxlX2NvZGUiOiAiTVdHLlVSTCBjdXJyZW50VXJsID0gTVdHLlVybCgpXG5OVU1CRVIgcG9ydCA9IE1XRy5Qb3J0KGN1cnJlbnRVcmwpXG5cbi8vIFRoZSBwb3J0IG51bWJlciBpczogXCIgKyBwb3J0XG5cbklGIHBvcnQgPT0gODAgVEhFTiB7XG4gICAgLy8gVGhlIHJlcXVlc3QgaXMgdXNpbmcgdGhlIHN0YW5kYXJkIEhUVFAgcG9ydC5cbn0gRUxTRSBJRiBwb3J0ID09IDQ0MyBUSEVOIHtcbiAgICAvLyBUaGUgcmVxdWVzdCBpcyB1c2luZyB0aGUgc3RhbmRhcmQgSFRUUFMgcG9ydC5cbn0gRUxTRSB7XG4gICAgLy8gVGhlIHJlcXVlc3QgaXMgdXNpbmcgYSBub24tc3RhbmRhcmQgcG9ydDogXCIgKyBwb3J0XG59IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiTVdHLlVSTCBjdXJyZW50VXJsID0gTVdHLlVybCgpXG5OVU1CRVIgcG9ydCA9IE1XRy5Qb3J0KGN1cnJlbnRVcmwpXG5cbi8vIFRoZSBwb3J0IG51bWJlciBpczogXCIgKyBwb3J0XG5cbklGIHBvcnQgPT0gODAgVEhFTiB7XG4gICAgLy8gVGhlIHJlcXVlc3QgaXMgdXNpbmcgdGhlIHN0YW5kYXJkIEhUVFAgcG9ydC5cbn0gRUxTRSBJRiBwb3J0ID09IDQ0MyBUSEVOIHtcbiAgICAvLyBUaGUgcmVxdWVzdCBpcyB1c2luZyB0aGUgc3RhbmRhcmQgSFRUUFMgcG9ydC5cbn0gRUxTRSB7XG4gICAgLy8gVGhlIHJlcXVlc3QgaXMgdXNpbmcgYSBub24tc3RhbmRhcmQgcG9ydDogXCIgKyBwb3J0XG59In0sIHsibmFtZSI6ICJNV0cuUHJvZ3Jlc3NQYWdlRW5hYmxlZCAoKSIsICJyZXR1cm5fdHlwZSI6ICJCT09MRUFOIiwgInJldHVybl9kZXNjIjogIlJldHVybnNgVFJVRWBpZiBhIHByb2dyZXNzIHBhZ2UgaGFzIGJlZW4gZW5hYmxlZCBmb3IgdGhpcyByZXF1ZXN0LiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJOb25lIiwgImRlc2NyaXB0aW9uIjogIlJldHVybnMgd2hldGhlciBhIHByb2dyZXNzIHBhZ2UgaGFzIGJlZW4gZW5hYmxlZCBmb3IgdGhpcyByZXF1ZXN0IiwgImV4YW1wbGVfY29kZSI6ICJNV0cuUHJvZ3Jlc3NQYWdlU2V0dGluZyBwcm9ncmVzc1BhZ2VTZXR0aW5nID0gTVdHLlByb2dyZXNzUGFnZVNldHRpbmcoKVxuLy8gQ29uZmlndXJlIHlvdXIgcHJvZ3Jlc3NQYWdlU2V0dGluZyBhcyBuZWVkZWRcbi8vIEZvciBleGFtcGxlLCB5b3UgbWlnaHQgc2V0IHNvbWUgcHJvcGVydGllcyBvbiB0aGUgcHJvZ3Jlc3NQYWdlU2V0dGluZyBvYmplY3QgaGVyZVxuXG5NV0cuRW5hYmxlUHJvZ3Jlc3NQYWdlKHByb2dyZXNzUGFnZVNldHRpbmcpXG4vLyBQcm9ncmVzcyBwYWdlIGhhcyBiZWVuIGVuYWJsZWQgd2l0aCB0aGUgc3BlY2lmaWVkIHNldHRpbmdzLiIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIk1XRy5Qcm9ncmVzc1BhZ2VTZXR0aW5nIHByb2dyZXNzUGFnZVNldHRpbmcgPSBNV0cuUHJvZ3Jlc3NQYWdlU2V0dGluZygpXG4vLyBDb25maWd1cmUgeW91ciBwcm9ncmVzc1BhZ2VTZXR0aW5nIGFzIG5lZWRlZFxuLy8gRm9yIGV4YW1wbGUsIHlvdSBtaWdodCBzZXQgc29tZSBwcm9wZXJ0aWVzIG9uIHRoZSBwcm9ncmVzc1BhZ2VTZXR0aW5nIG9iamVjdCBoZXJlXG5cbk1XRy5FbmFibGVQcm9ncmVzc1BhZ2UocHJvZ3Jlc3NQYWdlU2V0dGluZylcbi8vIFByb2dyZXNzIHBhZ2UgaGFzIGJlZW4gZW5hYmxlZCB3aXRoIHRoZSBzcGVjaWZpZWQgc2V0dGluZ3MuIn0sIHsibmFtZSI6ICJNV0cuUHJvZ3Jlc3NQYWdlU2VudCAoKSIsICJyZXR1cm5fdHlwZSI6ICJCT09MRUFOIiwgInJldHVybl9kZXNjIjogIlJldHVybnNgVFJVRWBpZiBhIHByb2dyZXNzIHBhZ2UgaGFzIGJlZW4gc2VudCBmb3IgdGhpcyByZXF1ZXN0LiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJOb25lIiwgImRlc2NyaXB0aW9uIjogIlJldHVybnMgd2hldGhlciBhIHByb2dyZXNzIHBhZ2UgaGFzIGJlZW4gc2VudCBmb3IgdGhpcyByZXF1ZXN0IiwgImV4YW1wbGVfY29kZSI6ICJJRiBNV0cuUHJvZ3Jlc3NQYWdlU2VudCgpIFRIRU4ge1xuICAgIC8vIEEgcHJvZ3Jlc3MgcGFnZSBoYXMgYmVlbiBzZW50IGZvciB0aGlzIHJlcXVlc3QuXG59IEVMU0Uge1xuICAgIC8vIE5vIHByb2dyZXNzIHBhZ2UgaGFzIGJlZW4gc2VudCBmb3IgdGhpcyByZXF1ZXN0LlxufSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIklGIE1XRy5Qcm9ncmVzc1BhZ2VTZW50KCkgVEhFTiB7XG4gICAgLy8gQSBwcm9ncmVzcyBwYWdlIGhhcyBiZWVuIHNlbnQgZm9yIHRoaXMgcmVxdWVzdC5cbn0gRUxTRSB7XG4gICAgLy8gTm8gcHJvZ3Jlc3MgcGFnZSBoYXMgYmVlbiBzZW50IGZvciB0aGlzIHJlcXVlc3QuXG59In0sIHsibmFtZSI6ICJNV0cuUHJvdG9jb2wgKE1XRy5VUkwpIiwgInJldHVybl90eXBlIjogIlNUUklORyIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIHRoZSBwcm90b2NvbCBwYXJ0IG9mIGEgZ2l2ZW4gVVJMIGFzIGEgc3RyaW5nLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJNV0cuVVJMOiBBIFNUUklORyByZXByZXNlbnRpbmcgdGhlIFVSTCBmcm9tIHdoaWNoIHRvIGV4dHJhY3QgdGhlIHByb3RvY29sLiIsICJkZXNjcmlwdGlvbiI6ICJSZXR1cm4gdGhlIHByb3RvY29sIG9mIGEgVVJMIiwgImV4YW1wbGVfY29kZSI6ICJNV0cuVVJMIGN1cnJlbnRVcmwgPSBNV0cuVXJsKClcblNUUklORyBwcm90b2NvbCA9IGN1cnJlbnRVcmwuUHJvdG9jb2xcblxuSUYgcHJvdG9jb2wgPT0gXCJodHRwc1wiIFRIRU4ge1xuICAgIC8vIFRoZSBwcm90b2NvbCBpcyBIVFRQU1xufSBFTFNFIHtcbiAgICAvLyBUaGUgcHJvdG9jb2wgaXMgbm90IEhUVFBTXG59IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiTVdHLlVSTCBjdXJyZW50VXJsID0gTVdHLlVybCgpXG5TVFJJTkcgcHJvdG9jb2wgPSBjdXJyZW50VXJsLlByb3RvY29sXG5cbklGIHByb3RvY29sID09IFwiaHR0cHNcIiBUSEVOIHtcbiAgICAvLyBUaGUgcHJvdG9jb2wgaXMgSFRUUFNcbn0gRUxTRSB7XG4gICAgLy8gVGhlIHByb3RvY29sIGlzIG5vdCBIVFRQU1xufSJ9LCB7Im5hbWUiOiAiTVdHLlByb3RvY29sQW5kVmVyc2lvbiAoTVdHLlJlcXVlc3RSZXNwb25zZSkiLCAicmV0dXJuX3R5cGUiOiAiU1RSSU5HIiwgInJldHVybl9kZXNjIjogIlJldHVybnMgdGhlIHByb3RvY29sIGFuZCB2ZXJzaW9uIG9mIGEgcmVxdWVzdCBvciByZXNwb25zZSAoZS5nLiwgSFRUUC8xLjEpLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJNV0cuUmVxdWVzdFJlc3BvbnNlOiB0aGUgcHJvdmlkZWQgcmVxdWVzdCBvciByZXNwb25zZSB0byBjaGVjayIsICJkZXNjcmlwdGlvbiI6ICJSZXR1cm5zIHRoZSBwcm90b2NvbCBhbmQgdmVyc2lvbiBvZiBhIHJlcXVlc3Qgb3IgcmVzcG9uc2UgKGUuZy4gSFRUUC8xLjEpIiwgImV4YW1wbGVfY29kZSI6ICJNV0cuUmVxdWVzdFJlc3BvbnNlIHJlcXVlc3QgPSBNV0cuUmVxdWVzdFJlc3BvbnNlKClcblNUUklORyBwcm90b2NvbFZlcnNpb24gPSBNV0cuUHJvdG9jb2xBbmRWZXJzaW9uKHJlcXVlc3QpXG5cbi8vIFByb3RvY29sIGFuZCBWZXJzaW9uOiBwcm90b2NvbFZlcnNpb25cblxuSUYgcHJvdG9jb2xWZXJzaW9uID09IFwiSFRUUC8xLjFcIiBUSEVOIHtcbiAgICBNV0cuQWxsb3coXCJIVFRQLzEuMSByZXF1ZXN0IGFsbG93ZWRcIilcbn0gRUxTRSB7XG4gICAgTVdHLkJsb2NrKFwiVW5zdXBwb3J0ZWQgcHJvdG9jb2wgdmVyc2lvblwiKVxufSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIk1XRy5SZXF1ZXN0UmVzcG9uc2UgcmVxdWVzdCA9IE1XRy5SZXF1ZXN0UmVzcG9uc2UoKVxuU1RSSU5HIHByb3RvY29sVmVyc2lvbiA9IE1XRy5Qcm90b2NvbEFuZFZlcnNpb24ocmVxdWVzdClcblxuLy8gUHJvdG9jb2wgYW5kIFZlcnNpb246IHByb3RvY29sVmVyc2lvblxuXG5JRiBwcm90b2NvbFZlcnNpb24gPT0gXCJIVFRQLzEuMVwiIFRIRU4ge1xuICAgIE1XRy5BbGxvdyhcIkhUVFAvMS4xIHJlcXVlc3QgYWxsb3dlZFwiKVxufSBFTFNFIHtcbiAgICBNV0cuQmxvY2soXCJVbnN1cHBvcnRlZCBwcm90b2NvbCB2ZXJzaW9uXCIpXG59In0sIHsibmFtZSI6ICJNV0cuUHJvdG9jb2xGYWlsdXJlRGVzY3JpcHRpb24gKCkiLCAicmV0dXJuX3R5cGUiOiAiU1RSSU5HIiwgInJldHVybl9kZXNjIjogIlJldHVybnMgdGhlIGZhaWx1cmUgZGVzY3JpcHRpb24uIiwgInBhcmFtZXRlcl9kZXNjIjogIk5vbmUiLCAiZGVzY3JpcHRpb24iOiAiUmV0dXJucyB0aGUgZmFpbHVyZSBkZXNjcmlwdGlvbiIsICJleGFtcGxlX2NvZGUiOiAiU1RSSU5HIGZhaWx1cmVEZXNjcmlwdGlvbiA9IE1XRy5Qcm90b2NvbEZhaWx1cmVEZXNjcmlwdGlvbigpXG5cbklGIGZhaWx1cmVEZXNjcmlwdGlvbiAhPSBcIlwiIFRIRU4ge1xuICAgIC8vIFByb3RvY29sIEZhaWx1cmUgRGV0ZWN0ZWQ6IFwiICsgZmFpbHVyZURlc2NyaXB0aW9uXG59IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiU1RSSU5HIGZhaWx1cmVEZXNjcmlwdGlvbiA9IE1XRy5Qcm90b2NvbEZhaWx1cmVEZXNjcmlwdGlvbigpXG5cbklGIGZhaWx1cmVEZXNjcmlwdGlvbiAhPSBcIlwiIFRIRU4ge1xuICAgIC8vIFByb3RvY29sIEZhaWx1cmUgRGV0ZWN0ZWQ6IFwiICsgZmFpbHVyZURlc2NyaXB0aW9uXG59In0sIHsibmFtZSI6ICJNV0cuUHJvdG9jb2xJc1dlYlNvY2tldCAoKSIsICJyZXR1cm5fdHlwZSI6ICJCT09MRUFOIiwgInJldHVybl9kZXNjIjogIlJldHVybnNgVFJVRWBpZiB1cGdyYWRlZCB0byBXZWJTb2NrZXQuIiwgInBhcmFtZXRlcl9kZXNjIjogIk5vbmUiLCAiZGVzY3JpcHRpb24iOiAiUmV0dXJucyBUUlVFIGlmIHVwZ3JhZGVkIHRvIFdlYlNvY2tldCIsICJleGFtcGxlX2NvZGUiOiAiSUYgTVdHLlByb3RvY29sSXNXZWJTb2NrZXQoKSBUSEVOIHtcbiAgICAvLyBUaGUgY3VycmVudCBwcm90b2NvbCBpcyBXZWJTb2NrZXQuXG4gICAgLy8gQWRkIGFkZGl0aW9uYWwgbG9naWMgZm9yIFdlYlNvY2tldCBjb25uZWN0aW9ucyBoZXJlXG59IEVMU0Uge1xuICAgIC8vIFRoZSBjdXJyZW50IHByb3RvY29sIGlzIG5vdCBXZWJTb2NrZXQuXG4gICAgLy8gQWRkIGFkZGl0aW9uYWwgbG9naWMgZm9yIG5vbi1XZWJTb2NrZXQgY29ubmVjdGlvbnMgaGVyZVxufSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIklGIE1XRy5Qcm90b2NvbElzV2ViU29ja2V0KCkgVEhFTiB7XG4gICAgLy8gVGhlIGN1cnJlbnQgcHJvdG9jb2wgaXMgV2ViU29ja2V0LlxuICAgIC8vIEFkZCBhZGRpdGlvbmFsIGxvZ2ljIGZvciBXZWJTb2NrZXQgY29ubmVjdGlvbnMgaGVyZVxufSBFTFNFIHtcbiAgICAvLyBUaGUgY3VycmVudCBwcm90b2NvbCBpcyBub3QgV2ViU29ja2V0LlxuICAgIC8vIEFkZCBhZGRpdGlvbmFsIGxvZ2ljIGZvciBub24tV2ViU29ja2V0IGNvbm5lY3Rpb25zIGhlcmVcbn0ifSwgeyJuYW1lIjogIk1XRy5Qcm94eVBvcnQgKCkiLCAicmV0dXJuX3R5cGUiOiAiTlVNQkVSIiwgInJldHVybl9kZXNjIjogIlJldHVybnMgaW5ncmVzcyBwcm94eSBwb3J0LiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJOb25lIiwgImRlc2NyaXB0aW9uIjogIlJldHVybiBpbmdyZXNzIHByb3h5IHBvcnQiLCAiZXhhbXBsZV9jb2RlIjogIk5VTUJFUiBwb3J0ID0gTVdHLlByb3h5UG9ydCgpXG4vLyBUaGUgaW5ncmVzcyBwcm94eSBwb3J0IGlzOiBwb3J0XG5cbklGIHBvcnQgPT0gODA4MCBUSEVOIHtcbiAgICAvLyBUaGUgcHJveHkgcG9ydCBpcyA4MDgwLCBhbGxvd2luZyB0aGUgY29ubmVjdGlvbi5cbiAgICBNV0cuQWxsb3coXCJQb3J0IDgwODBcIilcbn0gRUxTRSB7XG4gICAgLy8gVGhlIHByb3h5IHBvcnQgaXMgbm90IDgwODAsIGJsb2NraW5nIHRoZSBjb25uZWN0aW9uLlxuICAgIE1XRy5CbG9jayhcIkJsb2NrZWQgZHVlIHRvIGluY29ycmVjdCBwcm94eSBwb3J0XCIpXG59IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiTlVNQkVSIHBvcnQgPSBNV0cuUHJveHlQb3J0KClcbi8vIFRoZSBpbmdyZXNzIHByb3h5IHBvcnQgaXM6IHBvcnRcblxuSUYgcG9ydCA9PSA4MDgwIFRIRU4ge1xuICAgIC8vIFRoZSBwcm94eSBwb3J0IGlzIDgwODAsIGFsbG93aW5nIHRoZSBjb25uZWN0aW9uLlxuICAgIE1XRy5BbGxvdyhcIlBvcnQgODA4MFwiKVxufSBFTFNFIHtcbiAgICAvLyBUaGUgcHJveHkgcG9ydCBpcyBub3QgODA4MCwgYmxvY2tpbmcgdGhlIGNvbm5lY3Rpb24uXG4gICAgTVdHLkJsb2NrKFwiQmxvY2tlZCBkdWUgdG8gaW5jb3JyZWN0IHByb3h5IHBvcnRcIilcbn0ifSwgeyJuYW1lIjogIk1XRy5SYW5kb21OdW1iZXIgKE5VTUJFUiwgTlVNQkVSKSIsICJyZXR1cm5fdHlwZSI6ICJOVU1CRVIiLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyBhIHJhbmRvbSBpbnRlZ2VyIHdpdGhpbiB0aGUgc3BlY2lmaWVkIHJhbmdlLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJOVU1CRVI6IE1pbmltdW0gdmFsdWU7IE5VTUJFUjogTWF4aW11bSB2YWx1ZS4iLCAiZGVzY3JpcHRpb24iOiAicmFuZG9tIGludGVnZXIgTlVNQkVSIiwgImV4YW1wbGVfY29kZSI6ICJOVU1CRVIgbWluID0gMVxuTlVNQkVSIG1heCA9IDEwMFxuTlVNQkVSIHJhbmRvbU51bWJlciA9IE1XRy5SYW5kb21OdW1iZXIobWluLCBtYXgpXG4vLyBHZW5lcmF0ZWQgcmFuZG9tIG51bWJlcjogXCIgKyByYW5kb21OdW1iZXIiLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICJOVU1CRVIgbWluID0gMVxuTlVNQkVSIG1heCA9IDEwMFxuTlVNQkVSIHJhbmRvbU51bWJlciA9IE1XRy5SYW5kb21OdW1iZXIobWluLCBtYXgpXG4vLyBHZW5lcmF0ZWQgcmFuZG9tIG51bWJlcjogXCIgKyByYW5kb21OdW1iZXIifSwgeyJuYW1lIjogIk1XRy5SYXcgKE1XRy5VUkwpIiwgInJldHVybl90eXBlIjogIlNUUklORyIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIHRoZSBVUkwgYXMgYSByYXcgc3RyaW5nLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJNV0cuVVJMOiBUaGUgVVJMIHRvIGJlIGNvbnZlcnRlZCB0byBhIHJhdyBTVFJJTkcgZm9ybWF0LiIsICJkZXNjcmlwdGlvbiI6ICJSZXR1cm4gYSBVUkwgYXMgYSBTVFJJTkcgaW4gcmF3IGZvcm1hdCIsICJleGFtcGxlX2NvZGUiOiAiTVdHLlVSTCBjdXJyZW50VXJsID0gTVdHLlVybCgpXG5TVFJJTkcgcmF3VXJsID0gTVdHLlJhdyhjdXJyZW50VXJsKVxuLy8gVGhlIHJhdyBVUkwgaXM6IFwiICsgcmF3VXJsIiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiTVdHLlVSTCBjdXJyZW50VXJsID0gTVdHLlVybCgpXG5TVFJJTkcgcmF3VXJsID0gTVdHLlJhdyhjdXJyZW50VXJsKVxuLy8gVGhlIHJhdyBVUkwgaXM6IFwiICsgcmF3VXJsIn0sIHsibmFtZSI6ICJNV0cuUmVnZXhMaXN0QnlJRCAoU1RSSU5HKSIsICJyZXR1cm5fdHlwZSI6ICJSZWdFeEpTaS5MaXN0IiwgInJldHVybl9kZXNjIjogIlJldHVybnMgYSBgUmVnRXhKU2lgLkxpc3QgY29ycmVzcG9uZGluZyB0byB0aGUgc3BlY2lmaWVkIGxpc3QgSUQuIiwgInBhcmFtZXRlcl9kZXNjIjogIlNUUklORzogdGhlIGxpc3QgSUQuIiwgImRlc2NyaXB0aW9uIjogIlJldHJpZXZlcyBhIFJlZ0V4SlNpLkxpc3QgYnkgbGlzdCBJRCIsICJleGFtcGxlX2NvZGUiOiAiU1RSSU5HIHJlZ2V4TGlzdElEID0gXCJleGFtcGxlX3JlZ2V4X2xpc3RfaWRcIlxuTVdHLlVSTCBjdXJyZW50VVJMID0gTVdHLlVybCgpXG5cbklGIE1XRy5SZWdleExpc3RCeUlEKHJlZ2V4TGlzdElEKS5NYXRjaGVzKGN1cnJlbnRVUkwpIFRIRU4ge1xuICAgIC8vIFVSTCBtYXRjaGVzIHRoZSByZWdleCBsaXN0XG4gICAgTVdHLkJsb2NrKFwiQWNjZXNzIHRvIHRoaXMgVVJMIGlzIGJsb2NrZWQgYmFzZWQgb24gcmVnZXggbGlzdFwiKVxufSBFTFNFIHtcbiAgICAvLyBVUkwgZG9lcyBub3QgbWF0Y2ggdGhlIHJlZ2V4IGxpc3RcbiAgICBNV0cuQWxsb3coXCJVUkwgYWxsb3dlZFwiKVxufSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIlNUUklORyByZWdleExpc3RJRCA9IFwiZXhhbXBsZV9yZWdleF9saXN0X2lkXCJcbk1XRy5VUkwgY3VycmVudFVSTCA9IE1XRy5VcmwoKVxuXG5JRiBNV0cuUmVnZXhMaXN0QnlJRChyZWdleExpc3RJRCkuTWF0Y2hlcyhjdXJyZW50VVJMKSBUSEVOIHtcbiAgICAvLyBVUkwgbWF0Y2hlcyB0aGUgcmVnZXggbGlzdFxuICAgIE1XRy5CbG9jayhcIkFjY2VzcyB0byB0aGlzIFVSTCBpcyBibG9ja2VkIGJhc2VkIG9uIHJlZ2V4IGxpc3RcIilcbn0gRUxTRSB7XG4gICAgLy8gVVJMIGRvZXMgbm90IG1hdGNoIHRoZSByZWdleCBsaXN0XG4gICAgTVdHLkFsbG93KFwiVVJMIGFsbG93ZWRcIilcbn0ifSwgeyJuYW1lIjogIk1XRy5SZWdleExpc3RCeU5hbWUgKFNUUklORykiLCAicmV0dXJuX3R5cGUiOiAiUmVnRXhKU2kuTGlzdCIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIGEgbGlzdCBvZiByZWd1bGFyIGV4cHJlc3Npb25zIGlkZW50aWZpZWQgYnkgdGhlIGdpdmVuIGxpc3QgbmFtZS4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiU1RSSU5HOiB0aGUgbmFtZSBvZiB0aGUgbGlzdCB0byByZXRyaWV2ZS4iLCAiZGVzY3JpcHRpb24iOiAiUmV0cmlldmVzIGEgUmVnRXhKU2kuTGlzdCBieSBsaXN0IG5hbWUiLCAiZXhhbXBsZV9jb2RlIjogIi8vIFJldHJpZXZlIHRoZSBsaXN0IG9mIHJlZ3VsYXIgZXhwcmVzc2lvbnMgYnkgbmFtZVxuUmVnRXhKU2kuTGlzdCByZWdleExpc3QgPSBNV0cuUmVnZXhMaXN0QnlOYW1lKFwiZXhhbXBsZV9yZWdleF9saXN0XCIpXG5cbi8vIEdldCB0aGUgY3VycmVudCBVUkxcbk1XRy5VUkwgY3VycmVudFVybCA9IE1XRy5VcmwoKVxuXG4vLyBJdGVyYXRlIHRocm91Z2ggdGhlIHJlZ2V4IGxpc3QgYW5kIGNoZWNrIGlmIHRoZSBVUkwgbWF0Y2hlcyBhbnkgcmVnZXhcbkZPUiBFQUNIIHJlZ2V4IElOIHJlZ2V4TGlzdCB7XG4gICAgSUYgcmVnZXguTWF0Y2hlcyhjdXJyZW50VXJsLlRvU3RyaW5nKCkpIFRIRU4ge1xuICAgICAgICAvLyBJZiBhIG1hdGNoIGlzIGZvdW5kLCBibG9jayB0aGUgcmVxdWVzdCBhbmQgcHJvdmlkZSBhIHJlYXNvblxuICAgICAgICBNV0cuQmxvY2soXCJVUkwgbWF0Y2hlcyBhIGJsb2NrZWQgcGF0dGVyblwiKVxuICAgICAgICBSRVRVUk5cbiAgICB9XG59XG5cbi8vIElmIG5vIG1hdGNoIGlzIGZvdW5kLCBhbGxvdyB0aGUgcmVxdWVzdFxuTVdHLkFsbG93KFwiTm8gbWF0Y2hpbmcgcmVnZXggZm91bmRcIikiLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICIvLyBSZXRyaWV2ZSB0aGUgbGlzdCBvZiByZWd1bGFyIGV4cHJlc3Npb25zIGJ5IG5hbWVcblJlZ0V4SlNpLkxpc3QgcmVnZXhMaXN0ID0gTVdHLlJlZ2V4TGlzdEJ5TmFtZShcImV4YW1wbGVfcmVnZXhfbGlzdFwiKVxuXG4vLyBHZXQgdGhlIGN1cnJlbnQgVVJMXG5NV0cuVVJMIGN1cnJlbnRVcmwgPSBNV0cuVXJsKClcblxuLy8gSXRlcmF0ZSB0aHJvdWdoIHRoZSByZWdleCBsaXN0IGFuZCBjaGVjayBpZiB0aGUgVVJMIG1hdGNoZXMgYW55IHJlZ2V4XG5GT1IgRUFDSCByZWdleCBJTiByZWdleExpc3Qge1xuICAgIElGIHJlZ2V4Lk1hdGNoZXMoY3VycmVudFVybC5Ub1N0cmluZygpKSBUSEVOIHtcbiAgICAgICAgLy8gSWYgYSBtYXRjaCBpcyBmb3VuZCwgYmxvY2sgdGhlIHJlcXVlc3QgYW5kIHByb3ZpZGUgYSByZWFzb25cbiAgICAgICAgTVdHLkJsb2NrKFwiVVJMIG1hdGNoZXMgYSBibG9ja2VkIHBhdHRlcm5cIilcbiAgICAgICAgUkVUVVJOXG4gICAgfVxufVxuXG4vLyBJZiBubyBtYXRjaCBpcyBmb3VuZCwgYWxsb3cgdGhlIHJlcXVlc3Rcbk1XRy5BbGxvdyhcIk5vIG1hdGNoaW5nIHJlZ2V4IGZvdW5kXCIpIn0sIHsibmFtZSI6ICJNV0cuUmVnZXhMaXN0QnlOYW1lRXhpc3RzIChTVFJJTkcpIiwgInJldHVybl90eXBlIjogIkJPT0xFQU4iLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJuc2BUUlVFYGlmIGEgcmVnZXggbGlzdCB3aXRoIHRoZSBzcGVjaWZpZWQgbmFtZSBleGlzdHMuIiwgInBhcmFtZXRlcl9kZXNjIjogIlNUUklORzogdGhlIG5hbWUgb2YgdGhlIHJlZ3VsYXIgZXhwcmVzc2lvbiBsaXN0IHRvIGNoZWNrIGZvci4iLCAiZGVzY3JpcHRpb24iOiAiUmV0dXJucyBUUlVFIGlmIFJlZ2V4TGlzdCB3aXRoIHRoZSBuYW1lIGV4aXN0cyIsICJleGFtcGxlX2NvZGUiOiAiU1RSSU5HIHJlZ2V4TGlzdE5hbWUgPSBcImV4YW1wbGVfcmVnZXhfbGlzdFwiXG5cbklGIE1XRy5SZWdleExpc3RCeU5hbWVFeGlzdHMocmVnZXhMaXN0TmFtZSkgVEhFTiB7XG4gICAgLy8gVGhlIHJlZ2V4IGxpc3QgZXhpc3RzLlxufSBFTFNFIHtcbiAgICAvLyBUaGUgcmVnZXggbGlzdCBkb2VzIG5vdCBleGlzdC5cbn0iLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICJTVFJJTkcgcmVnZXhMaXN0TmFtZSA9IFwiZXhhbXBsZV9yZWdleF9saXN0XCJcblxuSUYgTVdHLlJlZ2V4TGlzdEJ5TmFtZUV4aXN0cyhyZWdleExpc3ROYW1lKSBUSEVOIHtcbiAgICAvLyBUaGUgcmVnZXggbGlzdCBleGlzdHMuXG59IEVMU0Uge1xuICAgIC8vIFRoZSByZWdleCBsaXN0IGRvZXMgbm90IGV4aXN0LlxufSJ9LCB7Im5hbWUiOiAiTVdHLlJlcXVlc3QgKCkiLCAicmV0dXJuX3R5cGUiOiAiTVdHLlJlcXVlc3RSZXNwb25zZSIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIGEgcmVxdWVzdCBvYmplY3QuIiwgInBhcmFtZXRlcl9kZXNjIjogIk5vbmUiLCAiZGVzY3JpcHRpb24iOiAiUmV0dXJucyBhIHJlcXVlc3Qgb2JqZWN0IiwgImV4YW1wbGVfY29kZSI6ICJNV0cuUmVxdWVzdFJlc3BvbnNlIHJlcXVlc3QgPSBNV0cuUmVxdWVzdCgpXG5TVFJJTkcgdXJsID0gcmVxdWVzdC5VcmwoKVxuU1RSSU5HIG1ldGhvZCA9IHJlcXVlc3QuTWV0aG9kKClcblxuLy8gUmVxdWVzdCBVUkw6IFwiICsgdXJsXG4vLyBSZXF1ZXN0IE1ldGhvZDogXCIgKyBtZXRob2QiLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICJNV0cuUmVxdWVzdFJlc3BvbnNlIHJlcXVlc3QgPSBNV0cuUmVxdWVzdCgpXG5TVFJJTkcgdXJsID0gcmVxdWVzdC5VcmwoKVxuU1RSSU5HIG1ldGhvZCA9IHJlcXVlc3QuTWV0aG9kKClcblxuLy8gUmVxdWVzdCBVUkw6IFwiICsgdXJsXG4vLyBSZXF1ZXN0IE1ldGhvZDogXCIgKyBtZXRob2QifSwgeyJuYW1lIjogIk1XRy5SZXF1ZXN0Rmlyc3RMaW5lICgpIiwgInJldHVybl90eXBlIjogIlNUUklORyIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIHRoZSBmaXJzdCBsaW5lIG9mIHRoZSByZXF1ZXN0LiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJOb25lIiwgImRlc2NyaXB0aW9uIjogIlJldHVybnMgdGhlIGZpcnN0IGxpbmUgb2YgdGhlIHJlcXVlc3QiLCAiZXhhbXBsZV9jb2RlIjogIlNUUklORyByZXF1ZXN0TGluZSA9IE1XRy5SZXF1ZXN0Rmlyc3RMaW5lKClcbi8vIFwiUmVxdWVzdCBGaXJzdCBMaW5lOiBcIiArIHJlcXVlc3RMaW5lIiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiU1RSSU5HIHJlcXVlc3RMaW5lID0gTVdHLlJlcXVlc3RGaXJzdExpbmUoKVxuLy8gXCJSZXF1ZXN0IEZpcnN0IExpbmU6IFwiICsgcmVxdWVzdExpbmUifSwgeyJuYW1lIjogIk1XRy5SZXF1ZXN0SUQgKCkiLCAicmV0dXJuX3R5cGUiOiAiU1RSSU5HIiwgInJldHVybl9kZXNjIjogIlJldHVybnMgYSB1bmlxdWUgaWRlbnRpZmllciBzdHJpbmcgZm9yIHRoZSBjdXJyZW50IHJlcXVlc3QuIiwgInBhcmFtZXRlcl9kZXNjIjogIk5vbmUiLCAiZGVzY3JpcHRpb24iOiAiR2VuZXJhdGVzIGEgdW5pcXVlIElEIGZvciB0aGlzIHJlcXVlc3QiLCAiZXhhbXBsZV9jb2RlIjogIlNUUklORyByZXF1ZXN0SUQgPSBNV0cuUmVxdWVzdElEKClcbi8vIFwiUmVxdWVzdCBJRDogXCIgKyByZXF1ZXN0SUQiLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICJTVFJJTkcgcmVxdWVzdElEID0gTVdHLlJlcXVlc3RJRCgpXG4vLyBcIlJlcXVlc3QgSUQ6IFwiICsgcmVxdWVzdElEIn0sIHsibmFtZSI6ICJNV0cuUmVzb2x2ZUhvc3RWaWFETlMgKCkiLCAicmV0dXJuX3R5cGUiOiAiTlVNQkVSIiwgInJldHVybl9kZXNjIjogIlJldHVybnMgdGhlIGR1cmF0aW9uIGZvciBETlMgbG9va3VwIGZvciB0aGUgaG9zdC4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiTm9uZSIsICJkZXNjcmlwdGlvbiI6ICJSZXR1cm5zIHRoZSBkdXJhdGlvbiBmb3IgRE5TIGxvb2t1cCBmb3IgdGhlIGhvc3QiLCAiZXhhbXBsZV9jb2RlIjogIi8vIEdldCB0aGUgY3VycmVudCBVUkxcbk1XRy5VUkwgY3VycmVudFVybCA9IE1XRy5VcmwoKVxuXG4vLyBFeHRyYWN0IHRoZSBob3N0IGZyb20gdGhlIFVSTFxuU1RSSU5HIGhvc3QgPSBjdXJyZW50VXJsLkhvc3RcblxuLy8gUmVzb2x2ZSB0aGUgaG9zdCB2aWEgRE5TXG5TVFJJTkcgaXBBZGRyZXNzID0gTVdHLlJlc29sdmVIb3N0VmlhRE5TKGhvc3QpXG5cbi8vIFJlc29sdmVkIElQIEFkZHJlc3M6IFxuLy8gaXBBZGRyZXNzXG5cbi8vIEFsbG93IHRoZSByZXF1ZXN0IHRvIHByb2NlZWRcbk1XRy5BbGxvdyhcIkROUyBSZXNvbHV0aW9uIENvbXBsZXRlZFwiKSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIi8vIEdldCB0aGUgY3VycmVudCBVUkxcbk1XRy5VUkwgY3VycmVudFVybCA9IE1XRy5VcmwoKVxuXG4vLyBFeHRyYWN0IHRoZSBob3N0IGZyb20gdGhlIFVSTFxuU1RSSU5HIGhvc3QgPSBjdXJyZW50VXJsLkhvc3RcblxuLy8gUmVzb2x2ZSB0aGUgaG9zdCB2aWEgRE5TXG5TVFJJTkcgaXBBZGRyZXNzID0gTVdHLlJlc29sdmVIb3N0VmlhRE5TKGhvc3QpXG5cbi8vIFJlc29sdmVkIElQIEFkZHJlc3M6IFxuLy8gaXBBZGRyZXNzXG5cbi8vIEFsbG93IHRoZSByZXF1ZXN0IHRvIHByb2NlZWRcbk1XRy5BbGxvdyhcIkROUyBSZXNvbHV0aW9uIENvbXBsZXRlZFwiKSJ9LCB7Im5hbWUiOiAiTVdHLlJlc3BvbnNlICgpIiwgInJldHVybl90eXBlIjogIk1XRy5SZXF1ZXN0UmVzcG9uc2UiLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyBhIHJlc3BvbnNlIG9iamVjdC4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiTm9uZSIsICJkZXNjcmlwdGlvbiI6ICJSZXR1cm5zIGEgcmVzcG9uc2Ugb2JqZWN0IiwgImV4YW1wbGVfY29kZSI6ICJTVFJJTkcgcmVzcG9uc2VCb2R5ID0gXCJUaGlzIGlzIGEgY3VzdG9tIHJlc3BvbnNlIGJvZHkuXCJcbk1XRy5HZW5lcmF0ZVJlc3BvbnNlKHJlc3BvbnNlQm9keSkiLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICJTVFJJTkcgcmVzcG9uc2VCb2R5ID0gXCJUaGlzIGlzIGEgY3VzdG9tIHJlc3BvbnNlIGJvZHkuXCJcbk1XRy5HZW5lcmF0ZVJlc3BvbnNlKHJlc3BvbnNlQm9keSkifSwgeyJuYW1lIjogIk1XRy5TQU1MQXR0cmlidXRlcyAoKSIsICJyZXR1cm5fdHlwZSI6ICJNQVA8U1RSSU5HLFNUUklORz4iLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyBhIGxpc3Qgb2YgU0FNTCBhdHRyaWJ1dGVzLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJOb25lIiwgImRlc2NyaXB0aW9uIjogIlJldHVybiBhIGxpc3Qgb2YgU0FNTCBhdHRyaWJ1dGVzIiwgImV4YW1wbGVfY29kZSI6ICIvLyBSZXRyaWV2ZSBTQU1MIGF0dHJpYnV0ZXNcbk1BUDxTVFJJTkc+PFNUUklORz4gc2FtbEF0dHJpYnV0ZXMgPSBNV0cuU0FNTEF0dHJpYnV0ZXMoKVxuXG4vLyBDaGVjayBpZiBhIHNwZWNpZmljIGF0dHJpYnV0ZSBleGlzdHNcbklGIHNhbWxBdHRyaWJ1dGVzW1wicm9sZVwiXSA9PSBcImFkbWluXCIgVEhFTiB7XG4gICAgLy8gVXNlciBoYXMgYWRtaW4gcm9sZVxuICAgIE1XRy5BbGxvdyhcIkFkbWluIGFjY2VzcyBncmFudGVkXCIpXG59IEVMU0Uge1xuICAgIC8vIFVzZXIgZG9lcyBub3QgaGF2ZSBhZG1pbiByb2xlXG4gICAgTVdHLkJsb2NrKFwiQWNjZXNzIGRlbmllZDogQWRtaW4gcm9sZSByZXF1aXJlZFwiKVxufSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIi8vIFJldHJpZXZlIFNBTUwgYXR0cmlidXRlc1xuTUFQPFNUUklORz48U1RSSU5HPiBzYW1sQXR0cmlidXRlcyA9IE1XRy5TQU1MQXR0cmlidXRlcygpXG5cbi8vIENoZWNrIGlmIGEgc3BlY2lmaWMgYXR0cmlidXRlIGV4aXN0c1xuSUYgc2FtbEF0dHJpYnV0ZXNbXCJyb2xlXCJdID09IFwiYWRtaW5cIiBUSEVOIHtcbiAgICAvLyBVc2VyIGhhcyBhZG1pbiByb2xlXG4gICAgTVdHLkFsbG93KFwiQWRtaW4gYWNjZXNzIGdyYW50ZWRcIilcbn0gRUxTRSB7XG4gICAgLy8gVXNlciBkb2VzIG5vdCBoYXZlIGFkbWluIHJvbGVcbiAgICBNV0cuQmxvY2soXCJBY2Nlc3MgZGVuaWVkOiBBZG1pbiByb2xlIHJlcXVpcmVkXCIpXG59In0sIHsibmFtZSI6ICJNV0cuU2FtbENvbmZpZ0J5TG9jYXRpb24gKCkiLCAicmV0dXJuX3R5cGUiOiAiU1RSSU5HIiwgInJldHVybl9kZXNjIjogIlJldHVybnMgdGhlIFNBTUwgY29uZmlndXJhdGlvbiBJRC4gQ2FsbHMgYWZ0ZXJgTVdHLkRldGVybWluZUNsaWVudExvY2F0aW9uUHJvcGVydGllc2AiLCAicGFyYW1ldGVyX2Rlc2MiOiAiTm9uZSIsICJkZXNjcmlwdGlvbiI6ICJSZXR1cm5zIHRoZSBTQU1MIGNvbmZpZ3VyYXRpb24gSUQuIENhbGwgYWZ0ZXIgTVdHLkRldGVybWluZUNsaWVudExvY2F0aW9uUHJvcGVydGllcyIsICJleGFtcGxlX2NvZGUiOiAiLy8gRmlyc3QsIGRldGVybWluZSB0aGUgY2xpZW50IGxvY2F0aW9uIHByb3BlcnRpZXNcbk1XRy5EZXRlcm1pbmVDbGllbnRMb2NhdGlvblByb3BlcnRpZXMoKVxuXG4vLyBHZXQgdGhlIFNBTUwgY29uZmlndXJhdGlvbiBJRCBiYXNlZCBvbiB0aGUgY2xpZW50IGxvY2F0aW9uXG5TVFJJTkcgc2FtbENvbmZpZ0lEID0gTVdHLlNhbWxDb25maWdCeUxvY2F0aW9uKClcblxuLy8gU0FNTCBDb25maWd1cmF0aW9uIElEOiBcIiArIHNhbWxDb25maWdJRFxuLy8gd2FzIHByaW50ZWQgdG8gdGhlIGNvbnNvbGUgZm9yIGRlYnVnZ2luZyBwdXJwb3NlcyIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIi8vIEZpcnN0LCBkZXRlcm1pbmUgdGhlIGNsaWVudCBsb2NhdGlvbiBwcm9wZXJ0aWVzXG5NV0cuRGV0ZXJtaW5lQ2xpZW50TG9jYXRpb25Qcm9wZXJ0aWVzKClcblxuLy8gR2V0IHRoZSBTQU1MIGNvbmZpZ3VyYXRpb24gSUQgYmFzZWQgb24gdGhlIGNsaWVudCBsb2NhdGlvblxuU1RSSU5HIHNhbWxDb25maWdJRCA9IE1XRy5TYW1sQ29uZmlnQnlMb2NhdGlvbigpXG5cbi8vIFNBTUwgQ29uZmlndXJhdGlvbiBJRDogXCIgKyBzYW1sQ29uZmlnSURcbi8vIHdhcyBwcmludGVkIHRvIHRoZSBjb25zb2xlIGZvciBkZWJ1Z2dpbmcgcHVycG9zZXMifSwgeyJuYW1lIjogIk1XRy5TQU1MQ3JlYXRlQXV0aG5SZXF1ZXN0IChNV0cuU2FtbEF1dGhuUmVxdWVzdFNldHRpbmcsIFNUUklORykiLCAicmV0dXJuX3R5cGUiOiAiU1RSSU5HIiwgInJldHVybl9kZXNjIjogIlJldHVybnMgYSBzdHJpbmcgcmVwcmVzZW50aW5nIHRoZSBnZW5lcmF0ZWQgU0FNTCBhdXRoZW50aWNhdGlvbiByZXF1ZXN0LiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJNV0cuU2FtbEF1dGhuUmVxdWVzdFNldHRpbmc6IHRoZSBzZXR0aW5ncyBmb3IgdGhlIHJlcXVlc3Q7IFNUUklORzogdGhlIGFjY2VzcyBVUkwuIiwgImRlc2NyaXB0aW9uIjogIkNyZWF0ZSBhIFNBTUwgYXV0aGVudGljYXRpb24gcmVxdWVzdCIsICJleGFtcGxlX2NvZGUiOiAiLy8gRGVmaW5lIHRoZSBTQU1MIGF1dGhlbnRpY2F0aW9uIHJlcXVlc3Qgc2V0dGluZ3Ncbk1XRy5TYW1sQXV0aG5SZXF1ZXN0U2V0dGluZyBzYW1sU2V0dGluZ3MgPSBNV0cuU2FtbEF1dGhuUmVxdWVzdFNldHRpbmcoKVxuXG4vLyBTZXQgdGhlIG5lY2Vzc2FyeSBwcm9wZXJ0aWVzIGZvciB0aGUgU0FNTCBzZXR0aW5nc1xuc2FtbFNldHRpbmdzLklzc3VlciA9IFwiaHR0cHM6Ly9leGFtcGxlLmNvbS9pc3N1ZXJcIlxuc2FtbFNldHRpbmdzLkRlc3RpbmF0aW9uID0gXCJodHRwczovL2lkcC5leGFtcGxlLmNvbS9zc29cIlxuc2FtbFNldHRpbmdzLkFzc2VydGlvbkNvbnN1bWVyU2VydmljZVVSTCA9IFwiaHR0cHM6Ly9zcC5leGFtcGxlLmNvbS9hY3NcIlxuc2FtbFNldHRpbmdzLlByb3RvY29sQmluZGluZyA9IFwidXJuOm9hc2lzOm5hbWVzOnRjOlNBTUw6Mi4wOmJpbmRpbmdzOkhUVFAtUE9TVFwiXG5zYW1sU2V0dGluZ3MuTmFtZUlERm9ybWF0ID0gXCJ1cm46b2FzaXM6bmFtZXM6dGM6U0FNTDoxLjE6bmFtZWlkLWZvcm1hdDplbWFpbEFkZHJlc3NcIlxuXG4vLyBEZWZpbmUgdGhlIHRhcmdldCBVUkwgZm9yIHRoZSBTQU1MIHJlcXVlc3RcblNUUklORyB0YXJnZXRVUkwgPSBcImh0dHBzOi8vc3AuZXhhbXBsZS5jb20vdGFyZ2V0XCJcblxuLy8gQ3JlYXRlIHRoZSBTQU1MIGF1dGhlbnRpY2F0aW9uIHJlcXVlc3RcblNUUklORyBzYW1sUmVxdWVzdCA9IE1XRy5TQU1MQ3JlYXRlQXV0aG5SZXF1ZXN0KHNhbWxTZXR0aW5ncywgdGFyZ2V0VVJMKVxuXG4vLyBQcmludCB0aGUgU0FNTCByZXF1ZXN0IHRvIHRoZSBkZWJ1ZyBjb25zb2xlXG4vLyBzYW1sUmVxdWVzdCIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIi8vIERlZmluZSB0aGUgU0FNTCBhdXRoZW50aWNhdGlvbiByZXF1ZXN0IHNldHRpbmdzXG5NV0cuU2FtbEF1dGhuUmVxdWVzdFNldHRpbmcgc2FtbFNldHRpbmdzID0gTVdHLlNhbWxBdXRoblJlcXVlc3RTZXR0aW5nKClcblxuLy8gU2V0IHRoZSBuZWNlc3NhcnkgcHJvcGVydGllcyBmb3IgdGhlIFNBTUwgc2V0dGluZ3NcbnNhbWxTZXR0aW5ncy5Jc3N1ZXIgPSBcImh0dHBzOi8vZXhhbXBsZS5jb20vaXNzdWVyXCJcbnNhbWxTZXR0aW5ncy5EZXN0aW5hdGlvbiA9IFwiaHR0cHM6Ly9pZHAuZXhhbXBsZS5jb20vc3NvXCJcbnNhbWxTZXR0aW5ncy5Bc3NlcnRpb25Db25zdW1lclNlcnZpY2VVUkwgPSBcImh0dHBzOi8vc3AuZXhhbXBsZS5jb20vYWNzXCJcbnNhbWxTZXR0aW5ncy5Qcm90b2NvbEJpbmRpbmcgPSBcInVybjpvYXNpczpuYW1lczp0YzpTQU1MOjIuMDpiaW5kaW5nczpIVFRQLVBPU1RcIlxuc2FtbFNldHRpbmdzLk5hbWVJREZvcm1hdCA9IFwidXJuOm9hc2lzOm5hbWVzOnRjOlNBTUw6MS4xOm5hbWVpZC1mb3JtYXQ6ZW1haWxBZGRyZXNzXCJcblxuLy8gRGVmaW5lIHRoZSB0YXJnZXQgVVJMIGZvciB0aGUgU0FNTCByZXF1ZXN0XG5TVFJJTkcgdGFyZ2V0VVJMID0gXCJodHRwczovL3NwLmV4YW1wbGUuY29tL3RhcmdldFwiXG5cbi8vIENyZWF0ZSB0aGUgU0FNTCBhdXRoZW50aWNhdGlvbiByZXF1ZXN0XG5TVFJJTkcgc2FtbFJlcXVlc3QgPSBNV0cuU0FNTENyZWF0ZUF1dGhuUmVxdWVzdChzYW1sU2V0dGluZ3MsIHRhcmdldFVSTClcblxuLy8gUHJpbnQgdGhlIFNBTUwgcmVxdWVzdCB0byB0aGUgZGVidWcgY29uc29sZVxuLy8gc2FtbFJlcXVlc3QifSwgeyJuYW1lIjogIk1XRy5TQU1MRXJyb3IgKCkiLCAicmV0dXJuX3R5cGUiOiAiU1RSSU5HIiwgInJldHVybl9kZXNjIjogIlJldHVybnMgdGhlIFNBTUwgcmVzcG9uc2UgdmFsaWRhdGlvbiBlcnJvciBkZXNjcmlwdGlvbi4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiTm9uZSIsICJkZXNjcmlwdGlvbiI6ICJSZXR1cm5zIHRoZSBTQU1MIHJlc3BvbnNlIHZhbGlkYXRpb24gZXJyb3IgZGVzY3JpcHRpb24iLCAiZXhhbXBsZV9jb2RlIjogIlNUUklORyBzYW1sRXJyb3IgPSBNV0cuU0FNTEVycm9yKClcblxuSUYgc2FtbEVycm9yICE9IFwiXCIgVEhFTiB7XG4gICAgLy8gXCJTQU1MIEVycm9yOiBcIiArIHNhbWxFcnJvclxuICAgIE1XRy5CbG9jayhcIlNBTUwgQXV0aGVudGljYXRpb24gRmFpbGVkOiBcIiArIHNhbWxFcnJvcilcbn0gRUxTRSB7XG4gICAgTVdHLkFsbG93KFwiU0FNTCBBdXRoZW50aWNhdGlvbiBTdWNjZXNzZnVsXCIpXG59IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiU1RSSU5HIHNhbWxFcnJvciA9IE1XRy5TQU1MRXJyb3IoKVxuXG5JRiBzYW1sRXJyb3IgIT0gXCJcIiBUSEVOIHtcbiAgICAvLyBcIlNBTUwgRXJyb3I6IFwiICsgc2FtbEVycm9yXG4gICAgTVdHLkJsb2NrKFwiU0FNTCBBdXRoZW50aWNhdGlvbiBGYWlsZWQ6IFwiICsgc2FtbEVycm9yKVxufSBFTFNFIHtcbiAgICBNV0cuQWxsb3coXCJTQU1MIEF1dGhlbnRpY2F0aW9uIFN1Y2Nlc3NmdWxcIilcbn0ifSwgeyJuYW1lIjogIk1XRy5TQU1MR2V0UHJvY2Vzc2luZ09wdGlvbnMgKFNUUklORywgU1RSSU5HKSIsICJyZXR1cm5fdHlwZSI6ICJKU09OIiwgInJldHVybl9kZXNjIjogIlJldHVybnMgdGhlIGNvbmZpZ3VyZWQgcHJvY2Vzc2luZyBvcHRpb25zIGZvciBTQU1MIGZvciB0aGUgZ2l2ZW4gdGVuYW50IGFuZCBjb25maWcuIiwgInBhcmFtZXRlcl9kZXNjIjogIlNUUklORzogVGhlIHRlbmFudCBJRDsgU1RSSU5HOiBUaGUgY29uZmlnIElELiIsICJkZXNjcmlwdGlvbiI6ICJHZXQgdGhlIGNvbmZpZ3VyZWQgcHJvY2Vzc2luZyBvcHRpb25zIGZvciBTQU1MIGZvciB0aGUgZ2l2ZW4gdGVuYW50IGFuZCBjb25maWcuIiwgImV4YW1wbGVfY29kZSI6ICJTVFJJTkcgcGFyYW0xID0gXCJleGFtcGxlUGFyYW0xXCJcblNUUklORyBwYXJhbTIgPSBcImV4YW1wbGVQYXJhbTJcIlxuXG4vLyBBc3N1bWluZyBNV0cuU0FNTEdldFByb2Nlc3NpbmdPcHRpb25zIHJldHVybnMgc29tZSB2YWx1ZVxuLy8gUmVwbGFjZSAncmVzdWx0VHlwZScgd2l0aCB0aGUgYWN0dWFsIHJldHVybiB0eXBlIG9mIHRoZSBmdW5jdGlvblxucmVzdWx0VHlwZSByZXN1bHQgPSBNV0cuU0FNTEdldFByb2Nlc3NpbmdPcHRpb25zKHBhcmFtMSwgcGFyYW0yKVxuXG4vLyBVc2UgdGhlIHJlc3VsdCBpbiBzb21lIHdheVxuLy8gVGhlIHJlc3VsdCBvZiBNV0cuU0FNTEdldFByb2Nlc3NpbmdPcHRpb25zIGlzOiByZXN1bHQiLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICJTVFJJTkcgcGFyYW0xID0gXCJleGFtcGxlUGFyYW0xXCJcblNUUklORyBwYXJhbTIgPSBcImV4YW1wbGVQYXJhbTJcIlxuXG4vLyBBc3N1bWluZyBNV0cuU0FNTEdldFByb2Nlc3NpbmdPcHRpb25zIHJldHVybnMgc29tZSB2YWx1ZVxuLy8gUmVwbGFjZSAncmVzdWx0VHlwZScgd2l0aCB0aGUgYWN0dWFsIHJldHVybiB0eXBlIG9mIHRoZSBmdW5jdGlvblxucmVzdWx0VHlwZSByZXN1bHQgPSBNV0cuU0FNTEdldFByb2Nlc3NpbmdPcHRpb25zKHBhcmFtMSwgcGFyYW0yKVxuXG4vLyBVc2UgdGhlIHJlc3VsdCBpbiBzb21lIHdheVxuLy8gVGhlIHJlc3VsdCBvZiBNV0cuU0FNTEdldFByb2Nlc3NpbmdPcHRpb25zIGlzOiByZXN1bHQifSwgeyJuYW1lIjogIk1XRy5TQU1MR2V0UmVxdWVzdFNldHRpbmcgKFNUUklORywgU1RSSU5HKSIsICJyZXR1cm5fdHlwZSI6ICJNV0cuU2FtbEF1dGhuUmVxdWVzdFNldHRpbmciLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyB0aGUgY29uZmlndXJlZCByZXF1ZXN0IHNldHRpbmdzIGZvciBTQU1MIGZvciB0aGUgZ2l2ZW4gdGVuYW50IGFuZCBjb25maWcuIiwgInBhcmFtZXRlcl9kZXNjIjogIlNUUklORzogVGhlIHRlbmFudCBJRDsgU1RSSU5HOiBUaGUgY29uZmlnIElELiIsICJkZXNjcmlwdGlvbiI6ICJHZXQgdGhlIGNvbmZpZ3VyZWQgUmVxdWVzdCBzZXR0aW5ncyBmb3IgU0FNTCBmb3IgdGhlIGdpdmVuIHRlbmFudCBhbmQgY29uZmlnLiIsICJleGFtcGxlX2NvZGUiOiAiLy8gRGVmaW5lIHRoZSB0ZW5hbnQgSUQgYW5kIGNvbmZpZyBJRFxuU1RSSU5HIHRlbmFudElEID0gXCJ0ZW5hbnQxMjNcIlxuU1RSSU5HIGNvbmZpZ0lEID0gXCJjb25maWdBQkNcIlxuXG4vLyBSZXRyaWV2ZSB0aGUgU0FNTCByZXF1ZXN0IHNldHRpbmdzXG5NV0cuU2FtbEF1dGhuUmVxdWVzdFNldHRpbmcgc2FtbFJlcXVlc3RTZXR0aW5ncyA9IE1XRy5TQU1MR2V0UmVxdWVzdFNldHRpbmcodGVuYW50SUQsIGNvbmZpZ0lEKVxuXG4vLyBQZXJmb3JtIHNvbWUgYWN0aW9uIHdpdGggdGhlIHJldHJpZXZlZCBzZXR0aW5nc1xuLy8gRm9yIGRlbW9uc3RyYXRpb24sIHdlJ2xsIGp1c3QgcHJpbnQgdGhlIHNldHRpbmdzIHRvIHRoZSBkZWJ1ZyBjb25zb2xlXG4vLyBTQU1MIFJlcXVlc3QgU2V0dGluZ3M6IFwiICsgc2FtbFJlcXVlc3RTZXR0aW5ncyIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIi8vIERlZmluZSB0aGUgdGVuYW50IElEIGFuZCBjb25maWcgSURcblNUUklORyB0ZW5hbnRJRCA9IFwidGVuYW50MTIzXCJcblNUUklORyBjb25maWdJRCA9IFwiY29uZmlnQUJDXCJcblxuLy8gUmV0cmlldmUgdGhlIFNBTUwgcmVxdWVzdCBzZXR0aW5nc1xuTVdHLlNhbWxBdXRoblJlcXVlc3RTZXR0aW5nIHNhbWxSZXF1ZXN0U2V0dGluZ3MgPSBNV0cuU0FNTEdldFJlcXVlc3RTZXR0aW5nKHRlbmFudElELCBjb25maWdJRClcblxuLy8gUGVyZm9ybSBzb21lIGFjdGlvbiB3aXRoIHRoZSByZXRyaWV2ZWQgc2V0dGluZ3Ncbi8vIEZvciBkZW1vbnN0cmF0aW9uLCB3ZSdsbCBqdXN0IHByaW50IHRoZSBzZXR0aW5ncyB0byB0aGUgZGVidWcgY29uc29sZVxuLy8gU0FNTCBSZXF1ZXN0IFNldHRpbmdzOiBcIiArIHNhbWxSZXF1ZXN0U2V0dGluZ3MifSwgeyJuYW1lIjogIk1XRy5TQU1MR2V0UmVzcG9uc2VTZXR0aW5nIChTVFJJTkcsIFNUUklORykiLCAicmV0dXJuX3R5cGUiOiAiTVdHLlNhbWxBdXRoblJlc3BvbnNlU2V0dGluZyIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIHRoZSBjb25maWd1cmVkIHJlc3BvbnNlIHNldHRpbmdzIGZvciBTQU1MIGZvciB0aGUgZ2l2ZW4gdGVuYW50IGFuZCBjb25maWcuIiwgInBhcmFtZXRlcl9kZXNjIjogIlNUUklORzogVGhlIHRlbmFudCBJRDsgU1RSSU5HOiBUaGUgY29uZmlnIElELiIsICJkZXNjcmlwdGlvbiI6ICJHZXQgdGhlIGNvbmZpZ3VyZWQgUmVzcG9uc2Ugc2V0dGluZ3MgZm9yIFNBTUwgZm9yIHRoZSBnaXZlbiB0ZW5hbnQgYW5kIGNvbmZpZy4iLCAiZXhhbXBsZV9jb2RlIjogIi8vIERlZmluZSB0aGUgdGVuYW50IElEIGFuZCBjb25maWcgSURcblNUUklORyB0ZW5hbnRJRCA9IFwidGVuYW50MTIzXCJcblNUUklORyBjb25maWdJRCA9IFwiY29uZmlnNDU2XCJcblxuLy8gUmV0cmlldmUgdGhlIFNBTUwgcmVzcG9uc2Ugc2V0dGluZ3Ncbk1XRy5TYW1sQXV0aG5SZXNwb25zZVNldHRpbmcgcmVzcG9uc2VTZXR0aW5nID0gTVdHLlNBTUxHZXRSZXNwb25zZVNldHRpbmcodGVuYW50SUQsIGNvbmZpZ0lEKVxuXG4vLyBQZXJmb3JtIHNvbWUgYWN0aW9uIGJhc2VkIG9uIHRoZSByZXNwb25zZSBzZXR0aW5nc1xuSUYgcmVzcG9uc2VTZXR0aW5nICE9IE5VTEwgVEhFTiB7XG4gICAgLy8gU0FNTCBSZXNwb25zZSBTZXR0aW5nIHJldHJpZXZlZCBzdWNjZXNzZnVsbHkuXG4gICAgLy8gQWRkaXRpb25hbCBsb2dpYyBjYW4gYmUgYWRkZWQgaGVyZSB0byB3b3JrIHdpdGggdGhlIHJlc3BvbnNlU2V0dGluZyBvYmplY3Rcbn0gRUxTRSB7XG4gICAgLy8gRmFpbGVkIHRvIHJldHJpZXZlIFNBTUwgUmVzcG9uc2UgU2V0dGluZy5cbn0iLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICIvLyBEZWZpbmUgdGhlIHRlbmFudCBJRCBhbmQgY29uZmlnIElEXG5TVFJJTkcgdGVuYW50SUQgPSBcInRlbmFudDEyM1wiXG5TVFJJTkcgY29uZmlnSUQgPSBcImNvbmZpZzQ1NlwiXG5cbi8vIFJldHJpZXZlIHRoZSBTQU1MIHJlc3BvbnNlIHNldHRpbmdzXG5NV0cuU2FtbEF1dGhuUmVzcG9uc2VTZXR0aW5nIHJlc3BvbnNlU2V0dGluZyA9IE1XRy5TQU1MR2V0UmVzcG9uc2VTZXR0aW5nKHRlbmFudElELCBjb25maWdJRClcblxuLy8gUGVyZm9ybSBzb21lIGFjdGlvbiBiYXNlZCBvbiB0aGUgcmVzcG9uc2Ugc2V0dGluZ3NcbklGIHJlc3BvbnNlU2V0dGluZyAhPSBOVUxMIFRIRU4ge1xuICAgIC8vIFNBTUwgUmVzcG9uc2UgU2V0dGluZyByZXRyaWV2ZWQgc3VjY2Vzc2Z1bGx5LlxuICAgIC8vIEFkZGl0aW9uYWwgbG9naWMgY2FuIGJlIGFkZGVkIGhlcmUgdG8gd29yayB3aXRoIHRoZSByZXNwb25zZVNldHRpbmcgb2JqZWN0XG59IEVMU0Uge1xuICAgIC8vIEZhaWxlZCB0byByZXRyaWV2ZSBTQU1MIFJlc3BvbnNlIFNldHRpbmcuXG59In0sIHsibmFtZSI6ICJNV0cuU0FNTEdldFRlbmFudEJ5TWFpbERvbWFpbiAoTVdHLlNBTUxEb21haW5BdXRoZW50aWNhdGlvbiwgU1RSSU5HKSIsICJyZXR1cm5fdHlwZSI6ICJTVFJJTkciLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyB0aGUgdGVuYW50IElEIGZvciB0aGUgZ2l2ZW4gbWFpbCBkb21haW4uIiwgInBhcmFtZXRlcl9kZXNjIjogIk1XRy5TQU1MRG9tYWluQXV0aGVudGljYXRpb246IGNvbmZpZ3VyYXRpb25zIGZvciB0aGUgU0FNTCBhdXRoZW50aWNhdGlvbjsgU1RSSU5HOiBUaGUgbWFpbCBkb21haW4uIiwgImRlc2NyaXB0aW9uIjogIkdldCB0aGUgdGVuYW50IGFzc29jaWF0ZWQgd2l0aCBhIG1haWwgZG9tYWluLiIsICJleGFtcGxlX2NvZGUiOiAiU1RSSU5HIG1haWxEb21haW4gPSBcImV4YW1wbGUuY29tXCJcblNUUklORyB0ZW5hbnRJRCA9IE1XRy5TQU1MR2V0VGVuYW50QnlNYWlsRG9tYWluKG1haWxEb21haW4pXG4vLyBUZW5hbnQgSUQgZm9yIGV4YW1wbGUuY29tIGlzIHRlbmFudElEIiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiU1RSSU5HIG1haWxEb21haW4gPSBcImV4YW1wbGUuY29tXCJcblNUUklORyB0ZW5hbnRJRCA9IE1XRy5TQU1MR2V0VGVuYW50QnlNYWlsRG9tYWluKG1haWxEb21haW4pXG4vLyBUZW5hbnQgSUQgZm9yIGV4YW1wbGUuY29tIGlzIHRlbmFudElEIn0sIHsibmFtZSI6ICJNV0cuU0FNTEdldFRlbmFudEJ5TWFpbERvbWFpbiAoU1RSSU5HKSIsICJyZXR1cm5fdHlwZSI6ICJTVFJJTkciLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyB0aGUgdGVuYW50IElEIGZvciB0aGUgZ2l2ZW4gbWFpbCBkb21haW4uIiwgInBhcmFtZXRlcl9kZXNjIjogIlNUUklORzogVGhlIG1haWwgZG9tYWluLiIsICJkZXNjcmlwdGlvbiI6ICJHZXQgdGhlIHRlbmFudCBhc3NvY2lhdGVkIHdpdGggYSBtYWlsIGRvbWFpbi4iLCAiZXhhbXBsZV9jb2RlIjogIlNUUklORyBtYWlsRG9tYWluID0gXCJleGFtcGxlLmNvbVwiXG5TVFJJTkcgdGVuYW50SUQgPSBNV0cuU0FNTEdldFRlbmFudEJ5TWFpbERvbWFpbihtYWlsRG9tYWluKVxuLy8gVGhlIHRlbmFudCBJRCBmb3IgdGhlIG1haWwgZG9tYWluIGV4YW1wbGUuY29tIGlzIHRlbmFudElEIiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiU1RSSU5HIG1haWxEb21haW4gPSBcImV4YW1wbGUuY29tXCJcblNUUklORyB0ZW5hbnRJRCA9IE1XRy5TQU1MR2V0VGVuYW50QnlNYWlsRG9tYWluKG1haWxEb21haW4pXG4vLyBUaGUgdGVuYW50IElEIGZvciB0aGUgbWFpbCBkb21haW4gZXhhbXBsZS5jb20gaXMgdGVuYW50SUQifSwgeyJuYW1lIjogIk1XRy5TQU1MSURQU1NPRW5kcG9pbnQgKCkiLCAicmV0dXJuX3R5cGUiOiAiU1RSSU5HIiwgInJldHVybl9kZXNjIjogIlJldHVybnMgdGhlIFNBTUwgSURQIFNTTyBFbmRwb2ludC4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiTm9uZSIsICJkZXNjcmlwdGlvbiI6ICJSZXR1cm5zIHRoZSBTQU1MIElEUCBTU08gRW5kcG9pbnQiLCAiZXhhbXBsZV9jb2RlIjogIi8vIEluaXRpYWxpemUgdGhlIFNBTUwgSURQIFNTTyBFbmRwb2ludFxuTVdHLlNBTUxJRFBTU09FbmRwb2ludCBzYW1sRW5kcG9pbnQgPSBNV0cuU0FNTElEUFNTT0VuZHBvaW50KClcblxuLy8gU2V0IHNvbWUgcHJvcGVydGllcyBmb3IgdGhlIFNBTUwgZW5kcG9pbnRcbnNhbWxFbmRwb2ludC5zZXRVUkwoXCJodHRwczovL2lkcC5leGFtcGxlLmNvbS9zc29cIilcbnNhbWxFbmRwb2ludC5zZXRCaW5kaW5nKFwidXJuOm9hc2lzOm5hbWVzOnRjOlNBTUw6Mi4wOmJpbmRpbmdzOkhUVFAtUmVkaXJlY3RcIilcblxuLy8gUGVyZm9ybSBzb21lIGFjdGlvbiB3aXRoIHRoZSBTQU1MIGVuZHBvaW50XG5JRiBzYW1sRW5kcG9pbnQuaXNWYWxpZCgpIFRIRU4ge1xuICAgIC8vIFNBTUwgSURQIFNTTyBFbmRwb2ludCBpcyB2YWxpZC5cbiAgICAvLyBBZGRpdGlvbmFsIGxvZ2ljIGNhbiBiZSBhZGRlZCBoZXJlXG59IEVMU0Uge1xuICAgIC8vIFNBTUwgSURQIFNTTyBFbmRwb2ludCBpcyBub3QgdmFsaWQuXG4gICAgTVdHLkJsb2NrKFwiSW52YWxpZCBTQU1MIElEUCBTU08gRW5kcG9pbnRcIilcbn0iLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICIvLyBJbml0aWFsaXplIHRoZSBTQU1MIElEUCBTU08gRW5kcG9pbnRcbk1XRy5TQU1MSURQU1NPRW5kcG9pbnQgc2FtbEVuZHBvaW50ID0gTVdHLlNBTUxJRFBTU09FbmRwb2ludCgpXG5cbi8vIFNldCBzb21lIHByb3BlcnRpZXMgZm9yIHRoZSBTQU1MIGVuZHBvaW50XG5zYW1sRW5kcG9pbnQuc2V0VVJMKFwiaHR0cHM6Ly9pZHAuZXhhbXBsZS5jb20vc3NvXCIpXG5zYW1sRW5kcG9pbnQuc2V0QmluZGluZyhcInVybjpvYXNpczpuYW1lczp0YzpTQU1MOjIuMDpiaW5kaW5nczpIVFRQLVJlZGlyZWN0XCIpXG5cbi8vIFBlcmZvcm0gc29tZSBhY3Rpb24gd2l0aCB0aGUgU0FNTCBlbmRwb2ludFxuSUYgc2FtbEVuZHBvaW50LmlzVmFsaWQoKSBUSEVOIHtcbiAgICAvLyBTQU1MIElEUCBTU08gRW5kcG9pbnQgaXMgdmFsaWQuXG4gICAgLy8gQWRkaXRpb25hbCBsb2dpYyBjYW4gYmUgYWRkZWQgaGVyZVxufSBFTFNFIHtcbiAgICAvLyBTQU1MIElEUCBTU08gRW5kcG9pbnQgaXMgbm90IHZhbGlkLlxuICAgIE1XRy5CbG9jayhcIkludmFsaWQgU0FNTCBJRFAgU1NPIEVuZHBvaW50XCIpXG59In0sIHsibmFtZSI6ICJNV0cuU0FNTFBhcnNlQXV0aG5SZXNwb25zZSAoTVdHLlNhbWxBdXRoblJlc3BvbnNlU2V0dGluZywgU1RSSU5HLCBTVFJJTkcsIFNUUklORykiLCAicmV0dXJuX3R5cGUiOiAiQk9PTEVBTiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIGFgQk9PTEVBTmBpbmRpY2F0aW5nIHdoZXRoZXIgdGhlIFNBTUwgcmVzcG9uc2Ugd2FzIHN1Y2Nlc3NmdWxseSBwYXJzZWQuIiwgInBhcmFtZXRlcl9kZXNjIjogIk1XRy5TYW1sQXV0aG5SZXNwb25zZVNldHRpbmc6IGNvbmZpZ3VyYXRpb24gc2V0dGluZ3MgZm9yIHBhcnNpbmcsIFNUUklORzogdGhlIEhUVFAgbWV0aG9kLCBTVFJJTkc6IHRoZSBpc3N1ZXIgVVJMLCBTVFJJTkc6IHRoZSBTQU1MIHJlc3BvbnNlLiIsICJkZXNjcmlwdGlvbiI6ICJQYXJzZSBhIFNBTUwgcmVzcG9uc2UiLCAiZXhhbXBsZV9jb2RlIjogIi8vIERlZmluZSB0aGUgU0FNTCByZXNwb25zZSBzZXR0aW5nc1xuTVdHLlNhbWxBdXRoblJlc3BvbnNlU2V0dGluZyBzYW1sU2V0dGluZ3MgPSBNV0cuU2FtbEF1dGhuUmVzcG9uc2VTZXR0aW5nKClcblxuLy8gRGVmaW5lIHRoZSBIVFRQIG1ldGhvZCwgaXNzdWVyIFVSTCwgYW5kIFNBTUwgcmVzcG9uc2VcblNUUklORyBodHRwTWV0aG9kID0gXCJQT1NUXCJcblNUUklORyBpc3N1ZXJVcmwgPSBcImh0dHBzOi8vZXhhbXBsZS5jb20vaXNzdWVyXCJcblNUUklORyBzYW1sUmVzcG9uc2UgPSBcImJhc2U2NC1lbmNvZGVkLXNhbWwtcmVzcG9uc2VcIlxuXG4vLyBQYXJzZSB0aGUgU0FNTCByZXNwb25zZVxuQk9PTEVBTiBpc1BhcnNlZCA9IE1XRy5TQU1MUGFyc2VBdXRoblJlc3BvbnNlKHNhbWxTZXR0aW5ncywgaHR0cE1ldGhvZCwgaXNzdWVyVXJsLCBzYW1sUmVzcG9uc2UpXG5cbi8vIENoZWNrIGlmIHRoZSBTQU1MIHJlc3BvbnNlIHdhcyBzdWNjZXNzZnVsbHkgcGFyc2VkXG5JRiBpc1BhcnNlZCBUSEVOIHtcbiAgICAvLyBTQU1MIHJlc3BvbnNlIHBhcnNlZCBzdWNjZXNzZnVsbHkuXG59IEVMU0Uge1xuICAgIC8vIEZhaWxlZCB0byBwYXJzZSBTQU1MIHJlc3BvbnNlLlxufSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIi8vIERlZmluZSB0aGUgU0FNTCByZXNwb25zZSBzZXR0aW5nc1xuTVdHLlNhbWxBdXRoblJlc3BvbnNlU2V0dGluZyBzYW1sU2V0dGluZ3MgPSBNV0cuU2FtbEF1dGhuUmVzcG9uc2VTZXR0aW5nKClcblxuLy8gRGVmaW5lIHRoZSBIVFRQIG1ldGhvZCwgaXNzdWVyIFVSTCwgYW5kIFNBTUwgcmVzcG9uc2VcblNUUklORyBodHRwTWV0aG9kID0gXCJQT1NUXCJcblNUUklORyBpc3N1ZXJVcmwgPSBcImh0dHBzOi8vZXhhbXBsZS5jb20vaXNzdWVyXCJcblNUUklORyBzYW1sUmVzcG9uc2UgPSBcImJhc2U2NC1lbmNvZGVkLXNhbWwtcmVzcG9uc2VcIlxuXG4vLyBQYXJzZSB0aGUgU0FNTCByZXNwb25zZVxuQk9PTEVBTiBpc1BhcnNlZCA9IE1XRy5TQU1MUGFyc2VBdXRoblJlc3BvbnNlKHNhbWxTZXR0aW5ncywgaHR0cE1ldGhvZCwgaXNzdWVyVXJsLCBzYW1sUmVzcG9uc2UpXG5cbi8vIENoZWNrIGlmIHRoZSBTQU1MIHJlc3BvbnNlIHdhcyBzdWNjZXNzZnVsbHkgcGFyc2VkXG5JRiBpc1BhcnNlZCBUSEVOIHtcbiAgICAvLyBTQU1MIHJlc3BvbnNlIHBhcnNlZCBzdWNjZXNzZnVsbHkuXG59IEVMU0Uge1xuICAgIC8vIEZhaWxlZCB0byBwYXJzZSBTQU1MIHJlc3BvbnNlLlxufSJ9LCB7Im5hbWUiOiAiTVdHLlNBTUxSZWxheVN0YXRlICgpIiwgInJldHVybl90eXBlIjogIlNUUklORyIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIHRoZSBTQU1MIFJlbGF5IHN0YXRlLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJOb25lIiwgImRlc2NyaXB0aW9uIjogIlJldHVybnMgdGhlIFNBTUwgUmVsYXkgc3RhdGUiLCAiZXhhbXBsZV9jb2RlIjogIlNUUklORyByZWxheVN0YXRlID0gTVdHLlNBTUxSZWxheVN0YXRlKClcbi8vIFNBTUwgUmVsYXkgU3RhdGU6IFwiICsgcmVsYXlTdGF0ZVxuXG5JRiByZWxheVN0YXRlID09IFwiZXhwZWN0ZWRTdGF0ZVwiIFRIRU4ge1xuICAgIE1XRy5BbGxvdyhcIlJlbGF5IHN0YXRlIGlzIGFzIGV4cGVjdGVkXCIpXG59IEVMU0Uge1xuICAgIE1XRy5CbG9jayhcIlVuZXhwZWN0ZWQgU0FNTCBSZWxheSBTdGF0ZVwiKVxufSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIlNUUklORyByZWxheVN0YXRlID0gTVdHLlNBTUxSZWxheVN0YXRlKClcbi8vIFNBTUwgUmVsYXkgU3RhdGU6IFwiICsgcmVsYXlTdGF0ZVxuXG5JRiByZWxheVN0YXRlID09IFwiZXhwZWN0ZWRTdGF0ZVwiIFRIRU4ge1xuICAgIE1XRy5BbGxvdyhcIlJlbGF5IHN0YXRlIGlzIGFzIGV4cGVjdGVkXCIpXG59IEVMU0Uge1xuICAgIE1XRy5CbG9jayhcIlVuZXhwZWN0ZWQgU0FNTCBSZWxheSBTdGF0ZVwiKVxufSJ9LCB7Im5hbWUiOiAiTVdHLlNlcnZlckNlcnRBbHRlcm5hdGl2ZUNOcyAoKSIsICJyZXR1cm5fdHlwZSI6ICJWRUNUT1I8U1RSSU5HPiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIGFsdGVybmF0aXZlIENOcyBvZiB3ZWIgc2VydmVyIGNlcnRpZmljYXRlLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJOb25lIiwgImRlc2NyaXB0aW9uIjogIlJldHVybnMgYWx0ZXJuYXRpdmUgQ05zIG9mIHdlYiBzZXJ2ZXIgY2VydGlmaWNhdGUiLCAiZXhhbXBsZV9jb2RlIjogIlNUUklORyBjb21tb25OYW1lID0gTVdHLlNlcnZlckNlcnRDTigpXG4vLyBTZXJ2ZXIgQ2VydGlmaWNhdGUgQ29tbW9uIE5hbWU6IFwiICsgY29tbW9uTmFtZVxuXG5JRiBjb21tb25OYW1lID09IFwiZXhhbXBsZS5jb21cIiBUSEVOIHtcbiAgICBNV0cuQWxsb3coXCJDZXJ0aWZpY2F0ZSBpcyB2YWxpZFwiKVxufSBFTFNFIHtcbiAgICBNV0cuQmxvY2soXCJJbnZhbGlkIHNlcnZlciBjZXJ0aWZpY2F0ZVwiKVxufSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIlNUUklORyBjb21tb25OYW1lID0gTVdHLlNlcnZlckNlcnRDTigpXG4vLyBTZXJ2ZXIgQ2VydGlmaWNhdGUgQ29tbW9uIE5hbWU6IFwiICsgY29tbW9uTmFtZVxuXG5JRiBjb21tb25OYW1lID09IFwiZXhhbXBsZS5jb21cIiBUSEVOIHtcbiAgICBNV0cuQWxsb3coXCJDZXJ0aWZpY2F0ZSBpcyB2YWxpZFwiKVxufSBFTFNFIHtcbiAgICBNV0cuQmxvY2soXCJJbnZhbGlkIHNlcnZlciBjZXJ0aWZpY2F0ZVwiKVxufSJ9LCB7Im5hbWUiOiAiTVdHLlNlcnZlckNlcnRDTiAoKSIsICJyZXR1cm5fdHlwZSI6ICJTVFJJTkciLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyB0aGUgQ29tbW9uIE5hbWUgb2YgYSB3ZWIgc2VydmVyIGNlcnRpZmljYXRlLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJOb25lIiwgImRlc2NyaXB0aW9uIjogIlJldHVybnMgdGhlIENvbW1vbiBOYW1lIG9mIGEgd2ViIHNlcnZlciBjZXJ0aWZpY2F0ZSIsICJleGFtcGxlX2NvZGUiOiAiSUYgTVdHLlNlcnZlckNlcnRDTkhhc1dpbGRDYXJkKCkgVEhFTiB7XG4gICAgLy8gVGhlIHNlcnZlciBjZXJ0aWZpY2F0ZSBoYXMgYSB3aWxkY2FyZC5cbiAgICBNV0cuQmxvY2soXCJBY2Nlc3MgYmxvY2tlZCBkdWUgdG8gd2lsZGNhcmQgaW4gc2VydmVyIGNlcnRpZmljYXRlLlwiKVxufSBFTFNFIHtcbiAgICAvLyBUaGUgc2VydmVyIGNlcnRpZmljYXRlIGRvZXMgbm90IGhhdmUgYSB3aWxkY2FyZC5cbiAgICBNV0cuQWxsb3coXCJObyB3aWxkY2FyZCBpbiBzZXJ2ZXIgY2VydGlmaWNhdGUuXCIpXG59IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiSUYgTVdHLlNlcnZlckNlcnRDTkhhc1dpbGRDYXJkKCkgVEhFTiB7XG4gICAgLy8gVGhlIHNlcnZlciBjZXJ0aWZpY2F0ZSBoYXMgYSB3aWxkY2FyZC5cbiAgICBNV0cuQmxvY2soXCJBY2Nlc3MgYmxvY2tlZCBkdWUgdG8gd2lsZGNhcmQgaW4gc2VydmVyIGNlcnRpZmljYXRlLlwiKVxufSBFTFNFIHtcbiAgICAvLyBUaGUgc2VydmVyIGNlcnRpZmljYXRlIGRvZXMgbm90IGhhdmUgYSB3aWxkY2FyZC5cbiAgICBNV0cuQWxsb3coXCJObyB3aWxkY2FyZCBpbiBzZXJ2ZXIgY2VydGlmaWNhdGUuXCIpXG59In0sIHsibmFtZSI6ICJNV0cuU2VydmVyQ2VydENOSGFzV2lsZENhcmQgKCkiLCAicmV0dXJuX3R5cGUiOiAiQk9PTEVBTiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zYFRSVUVgaWYgdGhlIHNlcnZlciBjZXJ0aWZpY2F0ZSBoYXMgd2lsZGNhcmRzLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJOb25lIiwgImRlc2NyaXB0aW9uIjogIlJldHVybnMgVFJVRSBpZiB0aGUgc2VydmVyIGNlcnRpZmljYXRlIGhhcyB3aWxkY2FyZHMiLCAiZXhhbXBsZV9jb2RlIjogIklGIE1XRy5TZXJ2ZXJDZXJ0Q05IYXNXaWxkQ2FyZCgpIFRIRU4ge1xuICAgIC8vIFRoZSBzZXJ2ZXIgY2VydGlmaWNhdGUncyBDTiBjb250YWlucyBhIHdpbGRjYXJkLlxuICAgIE1XRy5CbG9jayhcIkFjY2VzcyBibG9ja2VkIGR1ZSB0byB3aWxkY2FyZCBpbiBzZXJ2ZXIgY2VydGlmaWNhdGUgQ04uXCIpXG59IEVMU0Uge1xuICAgIC8vIFRoZSBzZXJ2ZXIgY2VydGlmaWNhdGUncyBDTiBkb2VzIG5vdCBjb250YWluIGEgd2lsZGNhcmQuXG4gICAgTVdHLkFsbG93KFwiTm8gd2lsZGNhcmQgaW4gc2VydmVyIGNlcnRpZmljYXRlIENOLlwiKVxufSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIklGIE1XRy5TZXJ2ZXJDZXJ0Q05IYXNXaWxkQ2FyZCgpIFRIRU4ge1xuICAgIC8vIFRoZSBzZXJ2ZXIgY2VydGlmaWNhdGUncyBDTiBjb250YWlucyBhIHdpbGRjYXJkLlxuICAgIE1XRy5CbG9jayhcIkFjY2VzcyBibG9ja2VkIGR1ZSB0byB3aWxkY2FyZCBpbiBzZXJ2ZXIgY2VydGlmaWNhdGUgQ04uXCIpXG59IEVMU0Uge1xuICAgIC8vIFRoZSBzZXJ2ZXIgY2VydGlmaWNhdGUncyBDTiBkb2VzIG5vdCBjb250YWluIGEgd2lsZGNhcmQuXG4gICAgTVdHLkFsbG93KFwiTm8gd2lsZGNhcmQgaW4gc2VydmVyIGNlcnRpZmljYXRlIENOLlwiKVxufSJ9LCB7Im5hbWUiOiAiTVdHLlNlcnZlckNlcnREYXlzRXhwaXJlZCAoKSIsICJyZXR1cm5fdHlwZSI6ICJOVU1CRVIiLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyB0aGUgbnVtYmVyIG9mIGRheXMgdW50aWwgYSBzZXJ2ZXIgY2VydGlmaWNhdGUgaXMgZXhwaXJlZC4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiTm9uZSIsICJkZXNjcmlwdGlvbiI6ICJSZXR1cm5zIHRoZSBOVU1CRVIgb2YgZGF5cyB1bnRpbCBhIHNlcnZlciBjZXJ0aWZpY2F0ZSBpcyBleHBpcmVkIiwgImV4YW1wbGVfY29kZSI6ICJOVU1CRVIgZGF5c0V4cGlyZWQgPSBNV0cuU2VydmVyQ2VydERheXNFeHBpcmVkKClcblxuSUYgZGF5c0V4cGlyZWQgPiAwIFRIRU4ge1xuICAgIC8vIFRoZSBzZXJ2ZXIgY2VydGlmaWNhdGUgZXhwaXJlZCBcIiArIGRheXNFeHBpcmVkICsgXCIgZGF5cyBhZ28uXG4gICAgTVdHLkJsb2NrKFwiVGhlIHNlcnZlciBjZXJ0aWZpY2F0ZSBoYXMgZXhwaXJlZC5cIilcbn0gRUxTRSB7XG4gICAgLy8gVGhlIHNlcnZlciBjZXJ0aWZpY2F0ZSBpcyB2YWxpZC5cbiAgICBNV0cuQWxsb3coXCJDZXJ0aWZpY2F0ZSBpcyB2YWxpZFwiKVxufSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIk5VTUJFUiBkYXlzRXhwaXJlZCA9IE1XRy5TZXJ2ZXJDZXJ0RGF5c0V4cGlyZWQoKVxuXG5JRiBkYXlzRXhwaXJlZCA+IDAgVEhFTiB7XG4gICAgLy8gVGhlIHNlcnZlciBjZXJ0aWZpY2F0ZSBleHBpcmVkIFwiICsgZGF5c0V4cGlyZWQgKyBcIiBkYXlzIGFnby5cbiAgICBNV0cuQmxvY2soXCJUaGUgc2VydmVyIGNlcnRpZmljYXRlIGhhcyBleHBpcmVkLlwiKVxufSBFTFNFIHtcbiAgICAvLyBUaGUgc2VydmVyIGNlcnRpZmljYXRlIGlzIHZhbGlkLlxuICAgIE1XRy5BbGxvdyhcIkNlcnRpZmljYXRlIGlzIHZhbGlkXCIpXG59In0sIHsibmFtZSI6ICJNV0cuU2VydmVyQ2VydFNoYTFEaWdlc3QgKCkiLCAicmV0dXJuX3R5cGUiOiAiU1RSSU5HIiwgInJldHVybl9kZXNjIjogIlJldHVybnMgdGhlIGhleC1lbmNvZGVkIFNIQTEgZGlnZXN0IG9mIHRoZSBzZXJ2ZXIgY2VydGlmaWNhdGUuIiwgInBhcmFtZXRlcl9kZXNjIjogIk5vbmUiLCAiZGVzY3JpcHRpb24iOiAiUmV0dXJucyB0aGUgaGV4LWVuY29kZWQgc2hhMSBkaWdlc3Qgb2YgdGhlIHNlcnZlciBjZXJ0aWZpY2F0ZSIsICJleGFtcGxlX2NvZGUiOiAiU1RSSU5HIGNlcnREaWdlc3QgPSBNV0cuU2VydmVyQ2VydFNoYTFEaWdlc3QoKVxuLy8gU2VydmVyIENlcnRpZmljYXRlIFNIQTEgRGlnZXN0OiBcIiArIGNlcnREaWdlc3QiLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICJTVFJJTkcgY2VydERpZ2VzdCA9IE1XRy5TZXJ2ZXJDZXJ0U2hhMURpZ2VzdCgpXG4vLyBTZXJ2ZXIgQ2VydGlmaWNhdGUgU0hBMSBEaWdlc3Q6IFwiICsgY2VydERpZ2VzdCJ9LCB7Im5hbWUiOiAiTVdHLlNlcnZlckNlcnRTaGEyNTZEaWdlc3QgKCkiLCAicmV0dXJuX3R5cGUiOiAiU1RSSU5HIiwgInJldHVybl9kZXNjIjogIlJldHVybnMgdGhlIGhleC1lbmNvZGVkIFNIQTI1NiBkaWdlc3Qgb2YgdGhlIHNlcnZlciBjZXJ0aWZpY2F0ZS4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiTm9uZSIsICJkZXNjcmlwdGlvbiI6ICJSZXR1cm5zIHRoZSBoZXgtZW5jb2RlZCBzaGEyNTYgZGlnZXN0IG9mIHRoZSBzZXJ2ZXIgY2VydGlmaWNhdGUiLCAiZXhhbXBsZV9jb2RlIjogIlNUUklORyBjZXJ0RGlnZXN0ID0gTVdHLlNlcnZlckNlcnRTaGEyNTZEaWdlc3QoKVxuLy8gU2VydmVyIENlcnRpZmljYXRlIFNIQS0yNTYgRGlnZXN0OiIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIlNUUklORyBjZXJ0RGlnZXN0ID0gTVdHLlNlcnZlckNlcnRTaGEyNTZEaWdlc3QoKVxuLy8gU2VydmVyIENlcnRpZmljYXRlIFNIQS0yNTYgRGlnZXN0OiJ9LCB7Im5hbWUiOiAiTVdHLlNlcnZlckNlcnRTaWduYXR1cmVNZXRob2QgKCkiLCAicmV0dXJuX3R5cGUiOiAiU1RSSU5HIiwgInJldHVybl9kZXNjIjogIlJldHVybnMgdGhlIHNpZ25hdHVyZSBtZXRob2Qgb2YgdGhlIHNlcnZlciBjZXJ0aWZpY2F0ZS4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiTm9uZSIsICJkZXNjcmlwdGlvbiI6ICJSZXR1cm5zIHRoZSBzaWduYXR1cmUgbWV0aG9kIG9mIHNlcnZlciBjZXJ0aWZpY2F0ZSIsICJleGFtcGxlX2NvZGUiOiAiU1RSSU5HIHNpZ25hdHVyZU1ldGhvZCA9IE1XRy5TZXJ2ZXJDZXJ0U2lnbmF0dXJlTWV0aG9kKClcbi8vIFNlcnZlciBDZXJ0aWZpY2F0ZSBTaWduYXR1cmUgTWV0aG9kOiBcIiArIHNpZ25hdHVyZU1ldGhvZCIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIlNUUklORyBzaWduYXR1cmVNZXRob2QgPSBNV0cuU2VydmVyQ2VydFNpZ25hdHVyZU1ldGhvZCgpXG4vLyBTZXJ2ZXIgQ2VydGlmaWNhdGUgU2lnbmF0dXJlIE1ldGhvZDogXCIgKyBzaWduYXR1cmVNZXRob2QifSwgeyJuYW1lIjogIk1XRy5TZXJ2ZXJDaGFpbkNvbXBsZXRlIChNV0cuQ2VydGlmaWNhdGVWZXJpZmljYXRpb25TZXR0aW5nLCBNV0cuQ2VydGlmaWNhdGVBdXRob3JpdHlMaXN0KSIsICJyZXR1cm5fdHlwZSI6ICJCT09MRUFOIiwgInJldHVybl9kZXNjIjogIlJldHVybnNgVFJVRWBpZiB0aGUgc2VydmVyIGNlcnRpZmljYXRlIGNoYWluIGVuZHMgd2l0aCBhIHNlbGYtc2lnbmVkIHJvb3QgQ0EuIiwgInBhcmFtZXRlcl9kZXNjIjogIk1XRy5DZXJ0aWZpY2F0ZVZlcmlmaWNhdGlvblNldHRpbmc6IFRoZSBjb25maWd1cmF0aW9uIHNldHRpbmdzIGZvciB2ZXJpZnlpbmcgdGhlIHNlcnZlciBjZXJ0aWZpY2F0ZS5NV0cuQ2VydGlmaWNhdGVBdXRob3JpdHlMaXN0OiBUaGUgbGlzdCBvZiB0cnVzdGVkIENlcnRpZmljYXRlIEF1dGhvcml0aWVzIGFnYWluc3Qgd2hpY2ggdGhlIHNlcnZlciBjZXJ0aWZpY2F0ZSBpcyB2ZXJpZmllZC4iLCAiZGVzY3JpcHRpb24iOiAiUmV0dXJucyBUUlVFIGlmIHRoZSBzZXJ2ZXIgY2VydGlmaWNhdGUgY2hhaW4gZW5kcyB3aXRoIGEgc2VsZiBzaWduZWQgcm9vdCBDQSIsICJleGFtcGxlX2NvZGUiOiAiLy8gRGVmaW5lIHRoZSBjZXJ0aWZpY2F0ZSB2ZXJpZmljYXRpb24gc2V0dGluZ3Ncbk1XRy5DZXJ0aWZpY2F0ZVZlcmlmaWNhdGlvblNldHRpbmcgY2VydFZlcmlmaWNhdGlvblNldHRpbmcgPSBNV0cuQ2VydGlmaWNhdGVWZXJpZmljYXRpb25TZXR0aW5nKClcblxuLy8gRGVmaW5lIHRoZSBjZXJ0aWZpY2F0ZSBhdXRob3JpdHkgbGlzdFxuTVdHLkNlcnRpZmljYXRlQXV0aG9yaXR5TGlzdCBjZXJ0QXV0aG9yaXR5TGlzdCA9IE1XRy5DZXJ0aWZpY2F0ZUF1dGhvcml0eUxpc3QoKVxuXG4vLyBDaGVjayBpZiB0aGUgc2VydmVyIGNlcnRpZmljYXRlIGNoYWluIGlzIGNvbXBsZXRlXG5CT09MRUFOIGlzQ2hhaW5Db21wbGV0ZSA9IE1XRy5TZXJ2ZXJDaGFpbkNvbXBsZXRlKGNlcnRWZXJpZmljYXRpb25TZXR0aW5nLCBjZXJ0QXV0aG9yaXR5TGlzdClcblxuLy8gVGFrZSBhY3Rpb24gYmFzZWQgb24gdGhlIHJlc3VsdFxuSUYgaXNDaGFpbkNvbXBsZXRlIFRIRU4ge1xuICAgIC8vIFNlcnZlciBjZXJ0aWZpY2F0ZSBjaGFpbiBpcyBjb21wbGV0ZS5cbiAgICBNV0cuQWxsb3coXCJDZXJ0aWZpY2F0ZSBjaGFpbiB2ZXJpZmllZFwiKVxufSBFTFNFIHtcbiAgICAvLyBTZXJ2ZXIgY2VydGlmaWNhdGUgY2hhaW4gaXMgaW5jb21wbGV0ZS5cbiAgICBNV0cuQmxvY2soXCJJbmNvbXBsZXRlIGNlcnRpZmljYXRlIGNoYWluXCIpXG59IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiLy8gRGVmaW5lIHRoZSBjZXJ0aWZpY2F0ZSB2ZXJpZmljYXRpb24gc2V0dGluZ3Ncbk1XRy5DZXJ0aWZpY2F0ZVZlcmlmaWNhdGlvblNldHRpbmcgY2VydFZlcmlmaWNhdGlvblNldHRpbmcgPSBNV0cuQ2VydGlmaWNhdGVWZXJpZmljYXRpb25TZXR0aW5nKClcblxuLy8gRGVmaW5lIHRoZSBjZXJ0aWZpY2F0ZSBhdXRob3JpdHkgbGlzdFxuTVdHLkNlcnRpZmljYXRlQXV0aG9yaXR5TGlzdCBjZXJ0QXV0aG9yaXR5TGlzdCA9IE1XRy5DZXJ0aWZpY2F0ZUF1dGhvcml0eUxpc3QoKVxuXG4vLyBDaGVjayBpZiB0aGUgc2VydmVyIGNlcnRpZmljYXRlIGNoYWluIGlzIGNvbXBsZXRlXG5CT09MRUFOIGlzQ2hhaW5Db21wbGV0ZSA9IE1XRy5TZXJ2ZXJDaGFpbkNvbXBsZXRlKGNlcnRWZXJpZmljYXRpb25TZXR0aW5nLCBjZXJ0QXV0aG9yaXR5TGlzdClcblxuLy8gVGFrZSBhY3Rpb24gYmFzZWQgb24gdGhlIHJlc3VsdFxuSUYgaXNDaGFpbkNvbXBsZXRlIFRIRU4ge1xuICAgIC8vIFNlcnZlciBjZXJ0aWZpY2F0ZSBjaGFpbiBpcyBjb21wbGV0ZS5cbiAgICBNV0cuQWxsb3coXCJDZXJ0aWZpY2F0ZSBjaGFpbiB2ZXJpZmllZFwiKVxufSBFTFNFIHtcbiAgICAvLyBTZXJ2ZXIgY2VydGlmaWNhdGUgY2hhaW4gaXMgaW5jb21wbGV0ZS5cbiAgICBNV0cuQmxvY2soXCJJbmNvbXBsZXRlIGNlcnRpZmljYXRlIGNoYWluXCIpXG59In0sIHsibmFtZSI6ICJNV0cuU2VydmVyQ2hhaW5Db250YWluc0V4cGlyZWRDQSAoTVdHLkNlcnRpZmljYXRlVmVyaWZpY2F0aW9uU2V0dGluZywgTVdHLkNlcnRpZmljYXRlQXV0aG9yaXR5TGlzdCkiLCAicmV0dXJuX3R5cGUiOiAiQk9PTEVBTiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zYFRSVUVgaWYgdGhlIHNlcnZlciBjZXJ0aWZpY2F0ZSBjaGFpbiBpbmNsdWRlcyBhbnkgZXhwaXJlZCBjZXJ0aWZpY2F0ZSBhdXRob3JpdHkgKENBKS4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiTVdHLkNlcnRpZmljYXRlVmVyaWZpY2F0aW9uU2V0dGluZzogQ29uZmlndXJhdGlvbiBmb3IgY2VydGlmaWNhdGUgdmVyaWZpY2F0aW9uOyBNV0cuQ2VydGlmaWNhdGVBdXRob3JpdHlMaXN0OiBMaXN0IG9mIHRydXN0ZWQgY2VydGlmaWNhdGUgYXV0aG9yaXRpZXMuIiwgImRlc2NyaXB0aW9uIjogIlJldHVybnMgVFJVRSBpZiB0aGUgc2VydmVyIGNlcnRpZmljYXRlIGNoYWluIGNvbnRhaW5zIGFuIGV4cGlyZWQgQ0EiLCAiZXhhbXBsZV9jb2RlIjogIk1XRy5DZXJ0aWZpY2F0ZVZlcmlmaWNhdGlvblNldHRpbmcgY2VydFZlcmlmaWNhdGlvblNldHRpbmdcbk1XRy5DZXJ0aWZpY2F0ZUF1dGhvcml0eUxpc3QgY2FMaXN0XG5cbi8vIEFzc3VtaW5nIGNlcnRWZXJpZmljYXRpb25TZXR0aW5nIGFuZCBjYUxpc3QgYXJlIGluaXRpYWxpemVkIGFuZCBjb25maWd1cmVkIGFwcHJvcHJpYXRlbHlcblxuQk9PTEVBTiBjb250YWluc0V4cGlyZWRDQSA9IE1XRy5TZXJ2ZXJDaGFpbkNvbnRhaW5zRXhwaXJlZENBKGNlcnRWZXJpZmljYXRpb25TZXR0aW5nLCBjYUxpc3QpXG5cbklGIGNvbnRhaW5zRXhwaXJlZENBIFRIRU4ge1xuICAgIE1XRy5CbG9jayhcIkNvbm5lY3Rpb24gYmxvY2tlZCBkdWUgdG8gZXhwaXJlZCBDQSBpbiB0aGUgc2VydmVyIGNlcnRpZmljYXRlIGNoYWluLlwiKVxufSBFTFNFIHtcbiAgICBNV0cuQWxsb3coXCJObyBleHBpcmVkIENBIGZvdW5kIGluIHRoZSBzZXJ2ZXIgY2VydGlmaWNhdGUgY2hhaW4uXCIpXG59IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiTVdHLkNlcnRpZmljYXRlVmVyaWZpY2F0aW9uU2V0dGluZyBjZXJ0VmVyaWZpY2F0aW9uU2V0dGluZ1xuTVdHLkNlcnRpZmljYXRlQXV0aG9yaXR5TGlzdCBjYUxpc3RcblxuLy8gQXNzdW1pbmcgY2VydFZlcmlmaWNhdGlvblNldHRpbmcgYW5kIGNhTGlzdCBhcmUgaW5pdGlhbGl6ZWQgYW5kIGNvbmZpZ3VyZWQgYXBwcm9wcmlhdGVseVxuXG5CT09MRUFOIGNvbnRhaW5zRXhwaXJlZENBID0gTVdHLlNlcnZlckNoYWluQ29udGFpbnNFeHBpcmVkQ0EoY2VydFZlcmlmaWNhdGlvblNldHRpbmcsIGNhTGlzdClcblxuSUYgY29udGFpbnNFeHBpcmVkQ0EgVEhFTiB7XG4gICAgTVdHLkJsb2NrKFwiQ29ubmVjdGlvbiBibG9ja2VkIGR1ZSB0byBleHBpcmVkIENBIGluIHRoZSBzZXJ2ZXIgY2VydGlmaWNhdGUgY2hhaW4uXCIpXG59IEVMU0Uge1xuICAgIE1XRy5BbGxvdyhcIk5vIGV4cGlyZWQgQ0EgZm91bmQgaW4gdGhlIHNlcnZlciBjZXJ0aWZpY2F0ZSBjaGFpbi5cIilcbn0ifSwgeyJuYW1lIjogIk1XRy5TZXJ2ZXJDaGFpbkNvbnRhaW5zUmV2b2tlZCAoTVdHLkNlcnRpZmljYXRlVmVyaWZpY2F0aW9uU2V0dGluZywgTVdHLkNlcnRpZmljYXRlQXV0aG9yaXR5TGlzdCkiLCAicmV0dXJuX3R5cGUiOiAiQk9PTEVBTiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zYFRSVUVgaWYgYW55IGNlcnRpZmljYXRlIGluIHRoZSBzZXJ2ZXIncyBjZXJ0aWZpY2F0ZSBjaGFpbiBpcyByZXZva2VkLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJNV0cuQ2VydGlmaWNhdGVWZXJpZmljYXRpb25TZXR0aW5nOiB0aGUgY29uZmlndXJhdGlvbiBzZXR0aW5ncyBmb3IgY2VydGlmaWNhdGUgdmVyaWZpY2F0aW9uOyBNV0cuQ2VydGlmaWNhdGVBdXRob3JpdHlMaXN0OiB0aGUgbGlzdCBvZiB0cnVzdGVkIGNlcnRpZmljYXRlIGF1dGhvcml0aWVzLiIsICJkZXNjcmlwdGlvbiI6ICJSZXR1cm5zIFRSVUUgaWYgdGhlIHNlcnZlciBjZXJ0aWZpY2F0ZSBjaGFpbiBjb250YWlucyBhIHJldm9rZWQgQ0EiLCAiZXhhbXBsZV9jb2RlIjogIi8vIEluaXRpYWxpemUgdGhlIGNlcnRpZmljYXRlIHZlcmlmaWNhdGlvbiBzZXR0aW5nc1xuTVdHLkNlcnRpZmljYXRlVmVyaWZpY2F0aW9uU2V0dGluZyBjZXJ0VmVyaWZpY2F0aW9uU2V0dGluZyA9IC4uLiAvLyBJbml0aWFsaXplIHdpdGggYXBwcm9wcmlhdGUgc2V0dGluZ3NcblxuLy8gSW5pdGlhbGl6ZSB0aGUgbGlzdCBvZiB0cnVzdGVkIGNlcnRpZmljYXRlIGF1dGhvcml0aWVzXG5NV0cuQ2VydGlmaWNhdGVBdXRob3JpdHlMaXN0IGNhTGlzdCA9IC4uLiAvLyBJbml0aWFsaXplIHdpdGggdGhlIGxpc3Qgb2YgdHJ1c3RlZCBjZXJ0aWZpY2F0ZSBhdXRob3JpdGllc1xuXG4vLyBDaGVjayBpZiB0aGUgc2VydmVyJ3MgY2VydGlmaWNhdGUgY2hhaW4gY29udGFpbnMgYSByZXZva2VkIGNlcnRpZmljYXRlXG5JRiBNV0cuU2VydmVyQ2hhaW5Db250YWluc1Jldm9rZWQoY2VydFZlcmlmaWNhdGlvblNldHRpbmcsIGNhTGlzdCkgVEhFTiB7XG4gICAgLy8gQmxvY2sgdGhlIGNvbm5lY3Rpb24gaWYgYSByZXZva2VkIGNlcnRpZmljYXRlIGlzIGZvdW5kXG4gICAgTVdHLkJsb2NrKFwiQ29ubmVjdGlvbiBibG9ja2VkIGR1ZSB0byByZXZva2VkIGNlcnRpZmljYXRlIGluIHRoZSBzZXJ2ZXIncyBjZXJ0aWZpY2F0ZSBjaGFpbi5cIilcbn0gRUxTRSB7XG4gICAgLy8gQWxsb3cgdGhlIGNvbm5lY3Rpb24gaWYgbm8gcmV2b2tlZCBjZXJ0aWZpY2F0ZSBpcyBmb3VuZFxuICAgIE1XRy5BbGxvdyhcIkNlcnRpZmljYXRlIGNoYWluIGlzIHZhbGlkLlwiKVxufSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIi8vIEluaXRpYWxpemUgdGhlIGNlcnRpZmljYXRlIHZlcmlmaWNhdGlvbiBzZXR0aW5nc1xuTVdHLkNlcnRpZmljYXRlVmVyaWZpY2F0aW9uU2V0dGluZyBjZXJ0VmVyaWZpY2F0aW9uU2V0dGluZyA9IC4uLiAvLyBJbml0aWFsaXplIHdpdGggYXBwcm9wcmlhdGUgc2V0dGluZ3NcblxuLy8gSW5pdGlhbGl6ZSB0aGUgbGlzdCBvZiB0cnVzdGVkIGNlcnRpZmljYXRlIGF1dGhvcml0aWVzXG5NV0cuQ2VydGlmaWNhdGVBdXRob3JpdHlMaXN0IGNhTGlzdCA9IC4uLiAvLyBJbml0aWFsaXplIHdpdGggdGhlIGxpc3Qgb2YgdHJ1c3RlZCBjZXJ0aWZpY2F0ZSBhdXRob3JpdGllc1xuXG4vLyBDaGVjayBpZiB0aGUgc2VydmVyJ3MgY2VydGlmaWNhdGUgY2hhaW4gY29udGFpbnMgYSByZXZva2VkIGNlcnRpZmljYXRlXG5JRiBNV0cuU2VydmVyQ2hhaW5Db250YWluc1Jldm9rZWQoY2VydFZlcmlmaWNhdGlvblNldHRpbmcsIGNhTGlzdCkgVEhFTiB7XG4gICAgLy8gQmxvY2sgdGhlIGNvbm5lY3Rpb24gaWYgYSByZXZva2VkIGNlcnRpZmljYXRlIGlzIGZvdW5kXG4gICAgTVdHLkJsb2NrKFwiQ29ubmVjdGlvbiBibG9ja2VkIGR1ZSB0byByZXZva2VkIGNlcnRpZmljYXRlIGluIHRoZSBzZXJ2ZXIncyBjZXJ0aWZpY2F0ZSBjaGFpbi5cIilcbn0gRUxTRSB7XG4gICAgLy8gQWxsb3cgdGhlIGNvbm5lY3Rpb24gaWYgbm8gcmV2b2tlZCBjZXJ0aWZpY2F0ZSBpcyBmb3VuZFxuICAgIE1XRy5BbGxvdyhcIkNlcnRpZmljYXRlIGNoYWluIGlzIHZhbGlkLlwiKVxufSJ9LCB7Im5hbWUiOiAiTVdHLlNlcnZlckNoYWluQ29udGFpbnNWaW9sYXRpb24gKE1XRy5DZXJ0aWZpY2F0ZVZlcmlmaWNhdGlvblNldHRpbmcsIE1XRy5DZXJ0aWZpY2F0ZUF1dGhvcml0eUxpc3QpIiwgInJldHVybl90eXBlIjogIkJPT0xFQU4iLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJuc2BUUlVFYGlmIHRoZXJlIGlzIGEgdmlvbGF0aW9uIGRldGVjdGVkIHdpdGhpbiB0aGUgc2VydmVyJ3MgY2VydGlmaWNhdGUgY2hhaW4uIiwgInBhcmFtZXRlcl9kZXNjIjogIk1XRy5DZXJ0aWZpY2F0ZVZlcmlmaWNhdGlvblNldHRpbmc6IFNwZWNpZmllcyB0aGUgdmVyaWZpY2F0aW9uIHNldHRpbmdzIGZvciB0aGUgY2VydGlmaWNhdGU7IE1XRy5DZXJ0aWZpY2F0ZUF1dGhvcml0eUxpc3Q6IExpc3RzIHRoZSB0cnVzdGVkIGNlcnRpZmljYXRlIGF1dGhvcml0aWVzLiIsICJkZXNjcmlwdGlvbiI6ICJSZXR1cm5zIFRSVUUgaWYgdGhlIHNlcnZlciBjZXJ0aWZpY2F0ZSBjaGFpbiBjb250YWlucyBhIHZpb2xhdGlvbiIsICJleGFtcGxlX2NvZGUiOiAiTVdHLkNlcnRpZmljYXRlVmVyaWZpY2F0aW9uU2V0dGluZyBjZXJ0VmVyaWZpY2F0aW9uU2V0dGluZyA9IC4uLiAvLyBJbml0aWFsaXplIHdpdGggYXBwcm9wcmlhdGUgc2V0dGluZ3Ncbk1XRy5DZXJ0aWZpY2F0ZUF1dGhvcml0eUxpc3QgY2VydEF1dGhvcml0eUxpc3QgPSAuLi4gLy8gSW5pdGlhbGl6ZSB3aXRoIGFwcHJvcHJpYXRlIENBIGxpc3RcblxuQk9PTEVBTiBoYXNWaW9sYXRpb24gPSBNV0cuU2VydmVyQ2hhaW5Db250YWluc1Zpb2xhdGlvbihjZXJ0VmVyaWZpY2F0aW9uU2V0dGluZywgY2VydEF1dGhvcml0eUxpc3QpXG5cbklGIGhhc1Zpb2xhdGlvbiBUSEVOIHtcbiAgICBNV0cuQmxvY2soXCJDZXJ0aWZpY2F0ZSBjaGFpbiBjb250YWlucyBhIHZpb2xhdGlvbi5cIilcbn0gRUxTRSB7XG4gICAgTVdHLkFsbG93KFwiQ2VydGlmaWNhdGUgY2hhaW4gaXMgdmFsaWQuXCIpXG59IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiTVdHLkNlcnRpZmljYXRlVmVyaWZpY2F0aW9uU2V0dGluZyBjZXJ0VmVyaWZpY2F0aW9uU2V0dGluZyA9IC4uLiAvLyBJbml0aWFsaXplIHdpdGggYXBwcm9wcmlhdGUgc2V0dGluZ3Ncbk1XRy5DZXJ0aWZpY2F0ZUF1dGhvcml0eUxpc3QgY2VydEF1dGhvcml0eUxpc3QgPSAuLi4gLy8gSW5pdGlhbGl6ZSB3aXRoIGFwcHJvcHJpYXRlIENBIGxpc3RcblxuQk9PTEVBTiBoYXNWaW9sYXRpb24gPSBNV0cuU2VydmVyQ2hhaW5Db250YWluc1Zpb2xhdGlvbihjZXJ0VmVyaWZpY2F0aW9uU2V0dGluZywgY2VydEF1dGhvcml0eUxpc3QpXG5cbklGIGhhc1Zpb2xhdGlvbiBUSEVOIHtcbiAgICBNV0cuQmxvY2soXCJDZXJ0aWZpY2F0ZSBjaGFpbiBjb250YWlucyBhIHZpb2xhdGlvbi5cIilcbn0gRUxTRSB7XG4gICAgTVdHLkFsbG93KFwiQ2VydGlmaWNhdGUgY2hhaW4gaXMgdmFsaWQuXCIpXG59In0sIHsibmFtZSI6ICJNV0cuU2VydmVyQ2hhaW5GaXJzdEtub3duQ0FJc1RydXN0ZWQgKE1XRy5DZXJ0aWZpY2F0ZVZlcmlmaWNhdGlvblNldHRpbmcsIE1XRy5DZXJ0aWZpY2F0ZUF1dGhvcml0eUxpc3QpIiwgInJldHVybl90eXBlIjogIkJPT0xFQU4iLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJuc2BUUlVFYGlmIHRoZSBmaXJzdCBrbm93biBjZXJ0aWZpY2F0ZSBhdXRob3JpdHkgaW4gYSBzZXJ2ZXIncyBjZXJ0aWZpY2F0ZSBjaGFpbiBpcyB0cnVzdGVkIGJhc2VkIG9uIHNwZWNpZmllZCB2ZXJpZmljYXRpb24gc2V0dGluZ3MgYW5kIGF1dGhvcml0eSBsaXN0LiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJNV0cuQ2VydGlmaWNhdGVWZXJpZmljYXRpb25TZXR0aW5nOiBTcGVjaWZpZXMgdGhlIHZlcmlmaWNhdGlvbiBzZXR0aW5ncyBmb3IgdGhlIGNlcnRpZmljYXRlOyBNV0cuQ2VydGlmaWNhdGVBdXRob3JpdHlMaXN0OiBMaXN0cyB0aGUgdHJ1c3RlZCBjZXJ0aWZpY2F0ZSBhdXRob3JpdGllcy4iLCAiZGVzY3JpcHRpb24iOiAiUmV0dXJucyBUUlVFIGlmIHRoZSBmaXJzdCBrbm93biBDQSBvbiBhIHNlcnZlciBjZXJ0aWZpY2F0ZSBjaGFpbiBpcyB0cnVzdGVkIiwgImV4YW1wbGVfY29kZSI6ICIvLyBJbml0aWFsaXplIHRoZSBjZXJ0aWZpY2F0ZSB2ZXJpZmljYXRpb24gc2V0dGluZ1xuTVdHLkNlcnRpZmljYXRlVmVyaWZpY2F0aW9uU2V0dGluZyBjZXJ0VmVyaWZpY2F0aW9uU2V0dGluZyA9IC8vIE9idGFpbiBvciBkZWZpbmUgdGhlIGNlcnRpZmljYXRlIHZlcmlmaWNhdGlvbiBzZXR0aW5nXG5cbi8vIEluaXRpYWxpemUgdGhlIGNlcnRpZmljYXRlIGF1dGhvcml0eSBsaXN0XG5NV0cuQ2VydGlmaWNhdGVBdXRob3JpdHlMaXN0IGNhTGlzdCA9IC8vIE9idGFpbiBvciBkZWZpbmUgdGhlIGNlcnRpZmljYXRlIGF1dGhvcml0eSBsaXN0XG5cbi8vIENoZWNrIGlmIHRoZSBmaXJzdCBrbm93biBDQSBpbiB0aGUgc2VydmVyIGNoYWluIGlzIHRydXN0ZWRcbkJPT0xFQU4gaXNUcnVzdGVkID0gTVdHLlNlcnZlckNoYWluRmlyc3RLbm93bkNBSXNUcnVzdGVkKGNlcnRWZXJpZmljYXRpb25TZXR0aW5nLCBjYUxpc3QpXG5cbi8vIFRha2UgYWN0aW9uIGJhc2VkIG9uIHdoZXRoZXIgdGhlIENBIGlzIHRydXN0ZWRcbklGIGlzVHJ1c3RlZCBUSEVOIHtcbiAgICAvLyBUaGUgZmlyc3Qga25vd24gQ0EgaW4gdGhlIHNlcnZlciBjaGFpbiBpcyB0cnVzdGVkLlxuICAgIE1XRy5BbGxvdyhcIkNBIGlzIHRydXN0ZWRcIilcbn0gRUxTRSB7XG4gICAgLy8gVGhlIGZpcnN0IGtub3duIENBIGluIHRoZSBzZXJ2ZXIgY2hhaW4gaXMgbm90IHRydXN0ZWQuXG4gICAgTVdHLkJsb2NrKFwiQ0EgaXMgbm90IHRydXN0ZWRcIilcbn0iLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICIvLyBJbml0aWFsaXplIHRoZSBjZXJ0aWZpY2F0ZSB2ZXJpZmljYXRpb24gc2V0dGluZ1xuTVdHLkNlcnRpZmljYXRlVmVyaWZpY2F0aW9uU2V0dGluZyBjZXJ0VmVyaWZpY2F0aW9uU2V0dGluZyA9IC8vIE9idGFpbiBvciBkZWZpbmUgdGhlIGNlcnRpZmljYXRlIHZlcmlmaWNhdGlvbiBzZXR0aW5nXG5cbi8vIEluaXRpYWxpemUgdGhlIGNlcnRpZmljYXRlIGF1dGhvcml0eSBsaXN0XG5NV0cuQ2VydGlmaWNhdGVBdXRob3JpdHlMaXN0IGNhTGlzdCA9IC8vIE9idGFpbiBvciBkZWZpbmUgdGhlIGNlcnRpZmljYXRlIGF1dGhvcml0eSBsaXN0XG5cbi8vIENoZWNrIGlmIHRoZSBmaXJzdCBrbm93biBDQSBpbiB0aGUgc2VydmVyIGNoYWluIGlzIHRydXN0ZWRcbkJPT0xFQU4gaXNUcnVzdGVkID0gTVdHLlNlcnZlckNoYWluRmlyc3RLbm93bkNBSXNUcnVzdGVkKGNlcnRWZXJpZmljYXRpb25TZXR0aW5nLCBjYUxpc3QpXG5cbi8vIFRha2UgYWN0aW9uIGJhc2VkIG9uIHdoZXRoZXIgdGhlIENBIGlzIHRydXN0ZWRcbklGIGlzVHJ1c3RlZCBUSEVOIHtcbiAgICAvLyBUaGUgZmlyc3Qga25vd24gQ0EgaW4gdGhlIHNlcnZlciBjaGFpbiBpcyB0cnVzdGVkLlxuICAgIE1XRy5BbGxvdyhcIkNBIGlzIHRydXN0ZWRcIilcbn0gRUxTRSB7XG4gICAgLy8gVGhlIGZpcnN0IGtub3duIENBIGluIHRoZSBzZXJ2ZXIgY2hhaW4gaXMgbm90IHRydXN0ZWQuXG4gICAgTVdHLkJsb2NrKFwiQ0EgaXMgbm90IHRydXN0ZWRcIilcbn0ifSwgeyJuYW1lIjogIk1XRy5TZXJ2ZXJDaGFpbkZvdW5kS25vd25DQSAoTVdHLkNlcnRpZmljYXRlVmVyaWZpY2F0aW9uU2V0dGluZywgTVdHLkNlcnRpZmljYXRlQXV0aG9yaXR5TGlzdCkiLCAicmV0dXJuX3R5cGUiOiAiQk9PTEVBTiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zYFRSVUVgaWYgdGhlIHByb3ZpZGVkIHNlcnZlciBjZXJ0aWZpY2F0ZSBjaGFpbiBpbmNsdWRlcyBhIGNlcnRpZmljYXRlIGF1dGhvcml0eSBmcm9tIHRoZSBrbm93biBDQSBsaXN0LiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJNV0cuQ2VydGlmaWNhdGVWZXJpZmljYXRpb25TZXR0aW5nOiBTcGVjaWZpZXMgdGhlIHZlcmlmaWNhdGlvbiBzZXR0aW5ncyBmb3IgdGhlIGNlcnRpZmljYXRlOyBNV0cuQ2VydGlmaWNhdGVBdXRob3JpdHlMaXN0OiBMaXN0cyB0aGUgdHJ1c3RlZCBjZXJ0aWZpY2F0ZSBhdXRob3JpdGllcy4iLCAiZGVzY3JpcHRpb24iOiAiUmV0dXJucyBUUlVFIGlmIHRoZSBzZXJ2ZXIgY2VydGlmaWNhdGUgY2hhaW4gY29udGFpbnMgYSBrbm93biBDQSIsICJleGFtcGxlX2NvZGUiOiAiLy8gRGVmaW5lIHRoZSBjZXJ0aWZpY2F0ZSB2ZXJpZmljYXRpb24gc2V0dGluZ3Ncbk1XRy5DZXJ0aWZpY2F0ZVZlcmlmaWNhdGlvblNldHRpbmcgY2VydFZlcmlmaWNhdGlvblNldHRpbmdcbi8vIERlZmluZSB0aGUga25vd24gQ0EgbGlzdFxuTVdHLkNlcnRpZmljYXRlQXV0aG9yaXR5TGlzdCBrbm93bkNBTGlzdCA9IFtcIktub3duQ0FMaXN0XCJdXG5cbi8vIENoZWNrIGlmIHRoZSBzZXJ2ZXIgY2VydGlmaWNhdGUgY2hhaW4gaXMgZm91bmQgaW4gdGhlIGtub3duIENBIGxpc3RcbkJPT0xFQU4gaXNLbm93bkNBID0gTVdHLlNlcnZlckNoYWluRm91bmRLbm93bkNBKGNlcnRWZXJpZmljYXRpb25TZXR0aW5nLCBrbm93bkNBTGlzdClcblxuLy8gVGFrZSBhY3Rpb24gYmFzZWQgb24gdGhlIHJlc3VsdFxuSUYgaXNLbm93bkNBIFRIRU4ge1xuICAgIC8vIFNlcnZlciBjZXJ0aWZpY2F0ZSBjaGFpbiBpcyBmb3VuZCBpbiB0aGUga25vd24gQ0EgbGlzdC5cbiAgICBNV0cuQWxsb3coXCJDZXJ0aWZpY2F0ZSB2ZXJpZmllZCB3aXRoIGtub3duIENBXCIpXG59IEVMU0Uge1xuICAgIC8vIFNlcnZlciBjZXJ0aWZpY2F0ZSBjaGFpbiBpcyBOT1QgZm91bmQgaW4gdGhlIGtub3duIENBIGxpc3QuXG4gICAgTVdHLkJsb2NrKFwiQ2VydGlmaWNhdGUgdmVyaWZpY2F0aW9uIGZhaWxlZDogVW5rbm93biBDQVwiKVxufSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIi8vIERlZmluZSB0aGUgY2VydGlmaWNhdGUgdmVyaWZpY2F0aW9uIHNldHRpbmdzXG5NV0cuQ2VydGlmaWNhdGVWZXJpZmljYXRpb25TZXR0aW5nIGNlcnRWZXJpZmljYXRpb25TZXR0aW5nXG4vLyBEZWZpbmUgdGhlIGtub3duIENBIGxpc3Rcbk1XRy5DZXJ0aWZpY2F0ZUF1dGhvcml0eUxpc3Qga25vd25DQUxpc3QgPSBbXCJLbm93bkNBTGlzdFwiXVxuXG4vLyBDaGVjayBpZiB0aGUgc2VydmVyIGNlcnRpZmljYXRlIGNoYWluIGlzIGZvdW5kIGluIHRoZSBrbm93biBDQSBsaXN0XG5CT09MRUFOIGlzS25vd25DQSA9IE1XRy5TZXJ2ZXJDaGFpbkZvdW5kS25vd25DQShjZXJ0VmVyaWZpY2F0aW9uU2V0dGluZywga25vd25DQUxpc3QpXG5cbi8vIFRha2UgYWN0aW9uIGJhc2VkIG9uIHRoZSByZXN1bHRcbklGIGlzS25vd25DQSBUSEVOIHtcbiAgICAvLyBTZXJ2ZXIgY2VydGlmaWNhdGUgY2hhaW4gaXMgZm91bmQgaW4gdGhlIGtub3duIENBIGxpc3QuXG4gICAgTVdHLkFsbG93KFwiQ2VydGlmaWNhdGUgdmVyaWZpZWQgd2l0aCBrbm93biBDQVwiKVxufSBFTFNFIHtcbiAgICAvLyBTZXJ2ZXIgY2VydGlmaWNhdGUgY2hhaW4gaXMgTk9UIGZvdW5kIGluIHRoZSBrbm93biBDQSBsaXN0LlxuICAgIE1XRy5CbG9jayhcIkNlcnRpZmljYXRlIHZlcmlmaWNhdGlvbiBmYWlsZWQ6IFVua25vd24gQ0FcIilcbn0ifSwgeyJuYW1lIjogIk1XRy5TZXJ2ZXJDaGFpbklzc3VlckNOcyAoTVdHLkNlcnRpZmljYXRlVmVyaWZpY2F0aW9uU2V0dGluZywgTVdHLkNlcnRpZmljYXRlQXV0aG9yaXR5TGlzdCkiLCAicmV0dXJuX3R5cGUiOiAiVkVDVE9SPFNUUklORz4iLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyBhIGxpc3Qgb2YgdGhlIGNvbW1vbiBuYW1lcyAoQ05zKSBvZiB0aGUgaXNzdWVycyBpbiB0aGUgc2VydmVyIGNlcnRpZmljYXRlIGFuZCBpdHMgY2hhaW4uIiwgInBhcmFtZXRlcl9kZXNjIjogIk1XRy5DZXJ0aWZpY2F0ZVZlcmlmaWNhdGlvblNldHRpbmc6IFNwZWNpZmllcyB0aGUgdmVyaWZpY2F0aW9uIHNldHRpbmdzIGZvciB0aGUgY2VydGlmaWNhdGU7IE1XRy5DZXJ0aWZpY2F0ZUF1dGhvcml0eUxpc3Q6IExpc3RzIHRoZSB0cnVzdGVkIGNlcnRpZmljYXRlIGF1dGhvcml0aWVzLiIsICJkZXNjcmlwdGlvbiI6ICJSZXR1cm5zIGEgbGlzdCBvZiB0aGUgaXNzdWluZyBDTnMgb2Ygc2VydmVyIGNlcnRpZmljYXRlIGFuZCB0aGUgc2VydmVyIGNlcnRpZmljYXRlIGNoYWluIiwgImV4YW1wbGVfY29kZSI6ICIvLyBEZWZpbmUgdGhlIGNlcnRpZmljYXRlIHZlcmlmaWNhdGlvbiBzZXR0aW5ncyBhbmQgdGhlIGNlcnRpZmljYXRlIGF1dGhvcml0eSBsaXN0XG5NV0cuQ2VydGlmaWNhdGVWZXJpZmljYXRpb25TZXR0aW5nIGNlcnRWZXJpZmljYXRpb25TZXR0aW5nID0gLi4uIC8vIHlvdXIgY2VydGlmaWNhdGUgdmVyaWZpY2F0aW9uIHNldHRpbmdzXG5NV0cuQ2VydGlmaWNhdGVBdXRob3JpdHlMaXN0IGNlcnRBdXRob3JpdHlMaXN0ID0gLi4uIC8vIHlvdXIgY2VydGlmaWNhdGUgYXV0aG9yaXR5IGxpc3RcblxuLy8gR2V0IHRoZSBsaXN0IG9mIGlzc3VlciBDTnMgZnJvbSB0aGUgc2VydmVyIGNlcnRpZmljYXRlIGFuZCBpdHMgY2hhaW5cblZFQ1RPUjxTVFJJTkc+IGlzc3VlckNOcyA9IE1XRy5TZXJ2ZXJDaGFpbklzc3VlckNOcyhjZXJ0VmVyaWZpY2F0aW9uU2V0dGluZywgY2VydEF1dGhvcml0eUxpc3QpXG5cbi8vIElzc3VlciBDTnM6IGlzc3VlckNOc1xuXG4vLyBFeGFtcGxlIGxvZ2ljOiBCbG9jayB0aGUgcmVxdWVzdCBpZiBhIHNwZWNpZmljIGlzc3VlciBDTiBpcyBmb3VuZFxuSUYgXCJVbnRydXN0ZWRJc3N1ZXJDTlwiIElOIGlzc3VlckNOcyBUSEVOIHtcbiAgICBNV0cuQmxvY2soXCJDb25uZWN0aW9uIGJsb2NrZWQgZHVlIHRvIHVudHJ1c3RlZCBpc3N1ZXIgQ05cIilcbn0gRUxTRSB7XG4gICAgTVdHLkFsbG93KFwiSXNzdWVyIENOcyBhcmUgdHJ1c3RlZFwiKVxufSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIi8vIERlZmluZSB0aGUgY2VydGlmaWNhdGUgdmVyaWZpY2F0aW9uIHNldHRpbmdzIGFuZCB0aGUgY2VydGlmaWNhdGUgYXV0aG9yaXR5IGxpc3Rcbk1XRy5DZXJ0aWZpY2F0ZVZlcmlmaWNhdGlvblNldHRpbmcgY2VydFZlcmlmaWNhdGlvblNldHRpbmcgPSAuLi4gLy8geW91ciBjZXJ0aWZpY2F0ZSB2ZXJpZmljYXRpb24gc2V0dGluZ3Ncbk1XRy5DZXJ0aWZpY2F0ZUF1dGhvcml0eUxpc3QgY2VydEF1dGhvcml0eUxpc3QgPSAuLi4gLy8geW91ciBjZXJ0aWZpY2F0ZSBhdXRob3JpdHkgbGlzdFxuXG4vLyBHZXQgdGhlIGxpc3Qgb2YgaXNzdWVyIENOcyBmcm9tIHRoZSBzZXJ2ZXIgY2VydGlmaWNhdGUgYW5kIGl0cyBjaGFpblxuVkVDVE9SPFNUUklORz4gaXNzdWVyQ05zID0gTVdHLlNlcnZlckNoYWluSXNzdWVyQ05zKGNlcnRWZXJpZmljYXRpb25TZXR0aW5nLCBjZXJ0QXV0aG9yaXR5TGlzdClcblxuLy8gSXNzdWVyIENOczogaXNzdWVyQ05zXG5cbi8vIEV4YW1wbGUgbG9naWM6IEJsb2NrIHRoZSByZXF1ZXN0IGlmIGEgc3BlY2lmaWMgaXNzdWVyIENOIGlzIGZvdW5kXG5JRiBcIlVudHJ1c3RlZElzc3VlckNOXCIgSU4gaXNzdWVyQ05zIFRIRU4ge1xuICAgIE1XRy5CbG9jayhcIkNvbm5lY3Rpb24gYmxvY2tlZCBkdWUgdG8gdW50cnVzdGVkIGlzc3VlciBDTlwiKVxufSBFTFNFIHtcbiAgICBNV0cuQWxsb3coXCJJc3N1ZXIgQ05zIGFyZSB0cnVzdGVkXCIpXG59In0sIHsibmFtZSI6ICJNV0cuU2VydmVyQ2hhaW5MZW5ndGggKE1XRy5DZXJ0aWZpY2F0ZVZlcmlmaWNhdGlvblNldHRpbmcsIE1XRy5DZXJ0aWZpY2F0ZUF1dGhvcml0eUxpc3QpIiwgInJldHVybl90eXBlIjogIk5VTUJFUiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIHRoZSBudW1iZXIgb2YgY2VydGlmaWNhdGVzIGluIHRoZSBzZXJ2ZXIgY2VydGlmaWNhdGUgY2hhaW4uIiwgInBhcmFtZXRlcl9kZXNjIjogIk1XRy5DZXJ0aWZpY2F0ZVZlcmlmaWNhdGlvblNldHRpbmc6IFNwZWNpZmllcyB0aGUgdmVyaWZpY2F0aW9uIHNldHRpbmdzIGZvciB0aGUgY2VydGlmaWNhdGU7IE1XRy5DZXJ0aWZpY2F0ZUF1dGhvcml0eUxpc3Q6IExpc3RzIHRoZSB0cnVzdGVkIGNlcnRpZmljYXRlIGF1dGhvcml0aWVzLiIsICJkZXNjcmlwdGlvbiI6ICJSZXR1cm5zIHRoZSBsZW5ndGggb2Ygc2VydmVyIGNlcnRpZmljYXRlIGNoYWluIiwgImV4YW1wbGVfY29kZSI6ICIvLyBJbml0aWFsaXplIG9yIG9idGFpbiB0aGUgY2VydGlmaWNhdGUgdmVyaWZpY2F0aW9uIHNldHRpbmdcbk1XRy5DZXJ0aWZpY2F0ZVZlcmlmaWNhdGlvblNldHRpbmcgY2VydFZlcmlmaWNhdGlvblNldHRpbmcgPSAvLyBZb3VyIGluaXRpYWxpemF0aW9uIGNvZGUgaGVyZVxuXG4vLyBJbml0aWFsaXplIG9yIG9idGFpbiB0aGUgY2VydGlmaWNhdGUgYXV0aG9yaXR5IGxpc3Rcbk1XRy5DZXJ0aWZpY2F0ZUF1dGhvcml0eUxpc3QgY2VydEF1dGhvcml0eUxpc3QgPSAvLyBZb3VyIGluaXRpYWxpemF0aW9uIGNvZGUgaGVyZVxuXG4vLyBHZXQgdGhlIGxlbmd0aCBvZiB0aGUgc2VydmVyIGNlcnRpZmljYXRlIGNoYWluXG5OVU1CRVIgY2hhaW5MZW5ndGggPSBNV0cuU2VydmVyQ2hhaW5MZW5ndGgoY2VydFZlcmlmaWNhdGlvblNldHRpbmcsIGNlcnRBdXRob3JpdHlMaXN0KVxuXG4vLyBTZXJ2ZXIgY2hhaW4gbGVuZ3RoOiBcIiArIGNoYWluTGVuZ3RoXG5cbi8vIENvbmRpdGlvbmFsIGNoZWNrIHRvIGJsb2NrIG9yIGFsbG93IGJhc2VkIG9uIGNoYWluIGxlbmd0aFxuSUYgY2hhaW5MZW5ndGggPiA1IFRIRU4ge1xuICAgIE1XRy5CbG9jayhcIkNlcnRpZmljYXRlIGNoYWluIGxlbmd0aCBleGNlZWRzIHRoZSBhbGxvd2VkIGxpbWl0LlwiKVxufSBFTFNFIHtcbiAgICBNV0cuQWxsb3coXCJDZXJ0aWZpY2F0ZSBjaGFpbiBsZW5ndGggaXMgd2l0aGluIHRoZSBhbGxvd2VkIGxpbWl0LlwiKVxufSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIi8vIEluaXRpYWxpemUgb3Igb2J0YWluIHRoZSBjZXJ0aWZpY2F0ZSB2ZXJpZmljYXRpb24gc2V0dGluZ1xuTVdHLkNlcnRpZmljYXRlVmVyaWZpY2F0aW9uU2V0dGluZyBjZXJ0VmVyaWZpY2F0aW9uU2V0dGluZyA9IC8vIFlvdXIgaW5pdGlhbGl6YXRpb24gY29kZSBoZXJlXG5cbi8vIEluaXRpYWxpemUgb3Igb2J0YWluIHRoZSBjZXJ0aWZpY2F0ZSBhdXRob3JpdHkgbGlzdFxuTVdHLkNlcnRpZmljYXRlQXV0aG9yaXR5TGlzdCBjZXJ0QXV0aG9yaXR5TGlzdCA9IC8vIFlvdXIgaW5pdGlhbGl6YXRpb24gY29kZSBoZXJlXG5cbi8vIEdldCB0aGUgbGVuZ3RoIG9mIHRoZSBzZXJ2ZXIgY2VydGlmaWNhdGUgY2hhaW5cbk5VTUJFUiBjaGFpbkxlbmd0aCA9IE1XRy5TZXJ2ZXJDaGFpbkxlbmd0aChjZXJ0VmVyaWZpY2F0aW9uU2V0dGluZywgY2VydEF1dGhvcml0eUxpc3QpXG5cbi8vIFNlcnZlciBjaGFpbiBsZW5ndGg6IFwiICsgY2hhaW5MZW5ndGhcblxuLy8gQ29uZGl0aW9uYWwgY2hlY2sgdG8gYmxvY2sgb3IgYWxsb3cgYmFzZWQgb24gY2hhaW4gbGVuZ3RoXG5JRiBjaGFpbkxlbmd0aCA+IDUgVEhFTiB7XG4gICAgTVdHLkJsb2NrKFwiQ2VydGlmaWNhdGUgY2hhaW4gbGVuZ3RoIGV4Y2VlZHMgdGhlIGFsbG93ZWQgbGltaXQuXCIpXG59IEVMU0Uge1xuICAgIE1XRy5BbGxvdyhcIkNlcnRpZmljYXRlIGNoYWluIGxlbmd0aCBpcyB3aXRoaW4gdGhlIGFsbG93ZWQgbGltaXQuXCIpXG59In0sIHsibmFtZSI6ICJNV0cuU2VydmVyQ2hhaW5SZXZvY2F0aW9uU3RhdGlLbm93biAoTVdHLkNlcnRpZmljYXRlVmVyaWZpY2F0aW9uU2V0dGluZywgTVdHLkNlcnRpZmljYXRlQXV0aG9yaXR5TGlzdCkiLCAicmV0dXJuX3R5cGUiOiAiQk9PTEVBTiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zYFRSVUVgaWYgaXQgY2FuIGRldGVybWluZSB0aGUgcmV2b2NhdGlvbiBzdGF0dXMgb2YgdGhlIHNlcnZlciBjZXJ0aWZpY2F0ZSBvciB0aGUgZW50aXJlIHNlcnZlciBjZXJ0aWZpY2F0ZSBjaGFpbi4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiTVdHLkNlcnRpZmljYXRlVmVyaWZpY2F0aW9uU2V0dGluZzogU3BlY2lmaWVzIHRoZSB2ZXJpZmljYXRpb24gc2V0dGluZ3MgZm9yIHRoZSBjZXJ0aWZpY2F0ZTsgTVdHLkNlcnRpZmljYXRlQXV0aG9yaXR5TGlzdDogTGlzdHMgdGhlIHRydXN0ZWQgY2VydGlmaWNhdGUgYXV0aG9yaXRpZXMuIiwgImRlc2NyaXB0aW9uIjogIlJldHVybnMgVFJVRSBpZiB0aGUgcmV2b2NhdGlvbiBzdGF0dXMgb2Ygc2VydmVyIGNlcnRpZmljYXRlIG9yIHNlcnZlciBjZXJ0aWZpY2F0ZSBjaGFpbiBpcyBrbm93biIsICJleGFtcGxlX2NvZGUiOiAiLy8gSW5pdGlhbGl6ZSB0aGUgY2VydGlmaWNhdGUgdmVyaWZpY2F0aW9uIHNldHRpbmdcbk1XRy5DZXJ0aWZpY2F0ZVZlcmlmaWNhdGlvblNldHRpbmcgY2VydFZlcmlmaWNhdGlvblNldHRpbmcgPSBNV0cuQ2VydGlmaWNhdGVWZXJpZmljYXRpb25TZXR0aW5nKClcblxuLy8gSW5pdGlhbGl6ZSB0aGUgY2VydGlmaWNhdGUgYXV0aG9yaXR5IGxpc3Rcbk1XRy5DZXJ0aWZpY2F0ZUF1dGhvcml0eUxpc3QgY2VydEF1dGhvcml0eUxpc3QgPSBNV0cuQ2VydGlmaWNhdGVBdXRob3JpdHlMaXN0KClcblxuLy8gQ2FsbCB0aGUgZnVuY3Rpb24gdG8gY2hlY2sgaWYgdGhlIHNlcnZlciBjaGFpbiByZXZvY2F0aW9uIHN0YXR1cyBpcyBrbm93blxuQk9PTEVBTiBpc1Jldm9jYXRpb25TdGF0dXNLbm93biA9IE1XRy5TZXJ2ZXJDaGFpblJldm9jYXRpb25TdGF0aUtub3duKGNlcnRWZXJpZmljYXRpb25TZXR0aW5nLCBjZXJ0QXV0aG9yaXR5TGlzdClcblxuLy8gVGFrZSBhY3Rpb24gYmFzZWQgb24gdGhlIHJldm9jYXRpb24gc3RhdHVzXG5JRiBpc1Jldm9jYXRpb25TdGF0dXNLbm93biBUSEVOIHtcbiAgICAvLyBDZXJ0aWZpY2F0ZSByZXZvY2F0aW9uIHN0YXR1cyBpcyBrbm93bi5cbiAgICAvLyBBZGRpdGlvbmFsIGxvZ2ljIGlmIHJldm9jYXRpb24gc3RhdHVzIGlzIGtub3duXG59IEVMU0Uge1xuICAgIC8vIENlcnRpZmljYXRlIHJldm9jYXRpb24gc3RhdHVzIGlzIG5vdCBrbm93bi5cbiAgICAvLyBBZGRpdGlvbmFsIGxvZ2ljIGlmIHJldm9jYXRpb24gc3RhdHVzIGlzIG5vdCBrbm93blxufSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIi8vIEluaXRpYWxpemUgdGhlIGNlcnRpZmljYXRlIHZlcmlmaWNhdGlvbiBzZXR0aW5nXG5NV0cuQ2VydGlmaWNhdGVWZXJpZmljYXRpb25TZXR0aW5nIGNlcnRWZXJpZmljYXRpb25TZXR0aW5nID0gTVdHLkNlcnRpZmljYXRlVmVyaWZpY2F0aW9uU2V0dGluZygpXG5cbi8vIEluaXRpYWxpemUgdGhlIGNlcnRpZmljYXRlIGF1dGhvcml0eSBsaXN0XG5NV0cuQ2VydGlmaWNhdGVBdXRob3JpdHlMaXN0IGNlcnRBdXRob3JpdHlMaXN0ID0gTVdHLkNlcnRpZmljYXRlQXV0aG9yaXR5TGlzdCgpXG5cbi8vIENhbGwgdGhlIGZ1bmN0aW9uIHRvIGNoZWNrIGlmIHRoZSBzZXJ2ZXIgY2hhaW4gcmV2b2NhdGlvbiBzdGF0dXMgaXMga25vd25cbkJPT0xFQU4gaXNSZXZvY2F0aW9uU3RhdHVzS25vd24gPSBNV0cuU2VydmVyQ2hhaW5SZXZvY2F0aW9uU3RhdGlLbm93bihjZXJ0VmVyaWZpY2F0aW9uU2V0dGluZywgY2VydEF1dGhvcml0eUxpc3QpXG5cbi8vIFRha2UgYWN0aW9uIGJhc2VkIG9uIHRoZSByZXZvY2F0aW9uIHN0YXR1c1xuSUYgaXNSZXZvY2F0aW9uU3RhdHVzS25vd24gVEhFTiB7XG4gICAgLy8gQ2VydGlmaWNhdGUgcmV2b2NhdGlvbiBzdGF0dXMgaXMga25vd24uXG4gICAgLy8gQWRkaXRpb25hbCBsb2dpYyBpZiByZXZvY2F0aW9uIHN0YXR1cyBpcyBrbm93blxufSBFTFNFIHtcbiAgICAvLyBDZXJ0aWZpY2F0ZSByZXZvY2F0aW9uIHN0YXR1cyBpcyBub3Qga25vd24uXG4gICAgLy8gQWRkaXRpb25hbCBsb2dpYyBpZiByZXZvY2F0aW9uIHN0YXR1cyBpcyBub3Qga25vd25cbn0ifSwgeyJuYW1lIjogIk1XRy5TZXJ2ZXJDaGFpblNpZ25hdHVyZUFsZ29yaXRobXMgKE1XRy5DZXJ0aWZpY2F0ZVZlcmlmaWNhdGlvblNldHRpbmcsIE1XRy5DZXJ0aWZpY2F0ZUF1dGhvcml0eUxpc3QpIiwgInJldHVybl90eXBlIjogIlZFQ1RPUjxTVFJJTkc+IiwgInJldHVybl9kZXNjIjogIlJldHVybnMgYSB2ZWN0b3IgY29udGFpbmluZyB0aGUgYWxnb3JpdGhtcyB1c2VkIGluIHRoZSBzZXJ2ZXIgY2VydGlmaWNhdGUgY2hhaW4gc2lnbmF0dXJlcy4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiTVdHLkNlcnRpZmljYXRlVmVyaWZpY2F0aW9uU2V0dGluZzogU3BlY2lmaWVzIHRoZSB2ZXJpZmljYXRpb24gc2V0dGluZ3MgZm9yIHRoZSBjZXJ0aWZpY2F0ZTsgTVdHLkNlcnRpZmljYXRlQXV0aG9yaXR5TGlzdDogTGlzdHMgdGhlIHRydXN0ZWQgY2VydGlmaWNhdGUgYXV0aG9yaXRpZXMuIiwgImRlc2NyaXB0aW9uIjogIlJldHVybnMgYSBsaXN0IG9mIHRoZSBhbGdvcml0aG1zIGluIHNlcnZlciBjZXJ0aWZpY2F0ZSBjaGFpbiBzaWduYXR1cmVzIiwgImV4YW1wbGVfY29kZSI6ICJNV0cuQ2VydGlmaWNhdGVWZXJpZmljYXRpb25TZXR0aW5nIGNlcnRWZXJpZmljYXRpb25TZXR0aW5nID0gLy8gSW5pdGlhbGl6ZSB3aXRoIGFwcHJvcHJpYXRlIHNldHRpbmdzXG5NV0cuQ2VydGlmaWNhdGVBdXRob3JpdHlMaXN0IGNlcnRBdXRob3JpdHlMaXN0ID0gLy8gSW5pdGlhbGl6ZSB3aXRoIGFwcHJvcHJpYXRlIENBIGxpc3RcblxuVkVDVE9SPFNUUklORz4gc2lnbmF0dXJlQWxnb3JpdGhtcyA9IE1XRy5TZXJ2ZXJDaGFpblNpZ25hdHVyZUFsZ29yaXRobXMoY2VydFZlcmlmaWNhdGlvblNldHRpbmcsIGNlcnRBdXRob3JpdHlMaXN0KVxuXG4vLyBTZXJ2ZXIgQ2hhaW4gU2lnbmF0dXJlIEFsZ29yaXRobXM6IFwiICsgc2lnbmF0dXJlQWxnb3JpdGhtcyIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIk1XRy5DZXJ0aWZpY2F0ZVZlcmlmaWNhdGlvblNldHRpbmcgY2VydFZlcmlmaWNhdGlvblNldHRpbmcgPSAvLyBJbml0aWFsaXplIHdpdGggYXBwcm9wcmlhdGUgc2V0dGluZ3Ncbk1XRy5DZXJ0aWZpY2F0ZUF1dGhvcml0eUxpc3QgY2VydEF1dGhvcml0eUxpc3QgPSAvLyBJbml0aWFsaXplIHdpdGggYXBwcm9wcmlhdGUgQ0EgbGlzdFxuXG5WRUNUT1I8U1RSSU5HPiBzaWduYXR1cmVBbGdvcml0aG1zID0gTVdHLlNlcnZlckNoYWluU2lnbmF0dXJlQWxnb3JpdGhtcyhjZXJ0VmVyaWZpY2F0aW9uU2V0dGluZywgY2VydEF1dGhvcml0eUxpc3QpXG5cbi8vIFNlcnZlciBDaGFpbiBTaWduYXR1cmUgQWxnb3JpdGhtczogXCIgKyBzaWduYXR1cmVBbGdvcml0aG1zIn0sIHsibmFtZSI6ICJNV0cuU2VydmVySG9zdEFuZENlcnQgKCkiLCAicmV0dXJuX3R5cGUiOiAiTVdHLkhvc3RBbmRDZXJ0aWZpY2F0ZSIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIHRoZSBzZXJ2ZXIgaG9zdG5hbWUgYW5kIGNlcnRpZmljYXRlLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJOb25lIiwgImRlc2NyaXB0aW9uIjogIlJldHVybnMgdGhlIHNlcnZlciBob3N0bmFtZSBhbmQgY2VydGlmaWNhdGUiLCAiZXhhbXBsZV9jb2RlIjogIk1XRy5Ib3N0QW5kQ2VydGlmaWNhdGUgc2VydmVySW5mbyA9IE1XRy5TZXJ2ZXJIb3N0QW5kQ2VydCgpXG4vLyBTZXJ2ZXIgSG9zdG5hbWU6IFwiICsgc2VydmVySW5mby5Ib3N0bmFtZVxuLy8gU2VydmVyIENlcnRpZmljYXRlOiBcIiArIHNlcnZlckluZm8uQ2VydGlmaWNhdGUiLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICJNV0cuSG9zdEFuZENlcnRpZmljYXRlIHNlcnZlckluZm8gPSBNV0cuU2VydmVySG9zdEFuZENlcnQoKVxuLy8gU2VydmVyIEhvc3RuYW1lOiBcIiArIHNlcnZlckluZm8uSG9zdG5hbWVcbi8vIFNlcnZlciBDZXJ0aWZpY2F0ZTogXCIgKyBzZXJ2ZXJJbmZvLkNlcnRpZmljYXRlIn0sIHsibmFtZSI6ICJNV0cuU2VydmVyS2V5RXhDaGFuZ2VCaXRzICgpIiwgInJldHVybl90eXBlIjogIk5VTUJFUiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIHRoZSBudW1iZXIgb2YgYml0cyB1c2VkIGZvciB0aGUga2V5IGV4Y2hhbmdlIHdpdGggdGhlIHNlcnZlci4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiTm9uZSIsICJkZXNjcmlwdGlvbiI6ICJSZXR1cm5zIHRoZSBOVU1CRVIgb2YgYml0cyB1c2VkIGZvciB0aGUga2V5IGV4Y2hhbmdlIHdpdGggdGhlIHNlcnZlciIsICJleGFtcGxlX2NvZGUiOiAiTlVNQkVSIGtleUV4Y2hhbmdlQml0cyA9IE1XRy5TZXJ2ZXJLZXlFeENoYW5nZUJpdHMoKVxuXG5JRiBrZXlFeGNoYW5nZUJpdHMgPCAyMDQ4IFRIRU4ge1xuICAgIC8vIEtleSBleGNoYW5nZSBiaXRzIGFyZSBsZXNzIHRoYW4gMjA0OC4gQmxvY2tpbmcgY29ubmVjdGlvbi5cbiAgICBNV0cuQmxvY2soXCJJbnNlY3VyZSBrZXkgZXhjaGFuZ2U6IGxlc3MgdGhhbiAyMDQ4IGJpdHNcIilcbn0gRUxTRSB7XG4gICAgLy8gS2V5IGV4Y2hhbmdlIGJpdHMgYXJlIHNlY3VyZS5cbiAgICBNV0cuQWxsb3coXCJTZWN1cmUga2V5IGV4Y2hhbmdlXCIpXG59IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiTlVNQkVSIGtleUV4Y2hhbmdlQml0cyA9IE1XRy5TZXJ2ZXJLZXlFeENoYW5nZUJpdHMoKVxuXG5JRiBrZXlFeGNoYW5nZUJpdHMgPCAyMDQ4IFRIRU4ge1xuICAgIC8vIEtleSBleGNoYW5nZSBiaXRzIGFyZSBsZXNzIHRoYW4gMjA0OC4gQmxvY2tpbmcgY29ubmVjdGlvbi5cbiAgICBNV0cuQmxvY2soXCJJbnNlY3VyZSBrZXkgZXhjaGFuZ2U6IGxlc3MgdGhhbiAyMDQ4IGJpdHNcIilcbn0gRUxTRSB7XG4gICAgLy8gS2V5IGV4Y2hhbmdlIGJpdHMgYXJlIHNlY3VyZS5cbiAgICBNV0cuQWxsb3coXCJTZWN1cmUga2V5IGV4Y2hhbmdlXCIpXG59In0sIHsibmFtZSI6ICJNV0cuU2VydmVyT25seUNlcnQgKCkiLCAicmV0dXJuX3R5cGUiOiAiTVdHLkhvc3RBbmRDZXJ0aWZpY2F0ZSIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIHRoZSBzZXJ2ZXIgY2VydGlmaWNhdGUuIiwgInBhcmFtZXRlcl9kZXNjIjogIk5vbmUiLCAiZGVzY3JpcHRpb24iOiAiUmV0dXJucyB0aGUgc2VydmVyIGNlcnRpZmljYXRlIiwgImV4YW1wbGVfY29kZSI6ICJNV0cuSG9zdEFuZENlcnRpZmljYXRlIHNlcnZlckNlcnQgPSBNV0cuU2VydmVyT25seUNlcnQoKVxuXG4vLyBTZXJ2ZXIgQ2VydGlmaWNhdGU6IFwiICsgc2VydmVyQ2VydFxuXG4vLyBZb3UgY2FuIGFkZCBhZGRpdGlvbmFsIGxvZ2ljIGhlcmUgdG8gaW5zcGVjdCB0aGUgY2VydGlmaWNhdGUgYW5kIHRha2UgYWN0aW9uXG4vLyBGb3IgZXhhbXBsZSwgYmxvY2tpbmcgdGhlIHJlcXVlc3QgaWYgdGhlIGNlcnRpZmljYXRlIGlzIG5vdCB0cnVzdGVkXG5JRiBOT1Qgc2VydmVyQ2VydC5pc1RydXN0ZWQgVEhFTiB7XG4gICAgTVdHLkJsb2NrKFwiVW50cnVzdGVkIHNlcnZlciBjZXJ0aWZpY2F0ZVwiKVxufSBFTFNFIHtcbiAgICBNV0cuQWxsb3coXCJTZXJ2ZXIgY2VydGlmaWNhdGUgaXMgdHJ1c3RlZFwiKVxufSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIk1XRy5Ib3N0QW5kQ2VydGlmaWNhdGUgc2VydmVyQ2VydCA9IE1XRy5TZXJ2ZXJPbmx5Q2VydCgpXG5cbi8vIFNlcnZlciBDZXJ0aWZpY2F0ZTogXCIgKyBzZXJ2ZXJDZXJ0XG5cbi8vIFlvdSBjYW4gYWRkIGFkZGl0aW9uYWwgbG9naWMgaGVyZSB0byBpbnNwZWN0IHRoZSBjZXJ0aWZpY2F0ZSBhbmQgdGFrZSBhY3Rpb25cbi8vIEZvciBleGFtcGxlLCBibG9ja2luZyB0aGUgcmVxdWVzdCBpZiB0aGUgY2VydGlmaWNhdGUgaXMgbm90IHRydXN0ZWRcbklGIE5PVCBzZXJ2ZXJDZXJ0LmlzVHJ1c3RlZCBUSEVOIHtcbiAgICBNV0cuQmxvY2soXCJVbnRydXN0ZWQgc2VydmVyIGNlcnRpZmljYXRlXCIpXG59IEVMU0Uge1xuICAgIE1XRy5BbGxvdyhcIlNlcnZlciBjZXJ0aWZpY2F0ZSBpcyB0cnVzdGVkXCIpXG59In0sIHsibmFtZSI6ICJNV0cuU2VydmljZUFuZEFjdGl2aXR5Q29udGFpbmVkIChWRUNUT1I8TVdHLlNlcnZpY2VDYXRlZ29yeUFuZEFjdGl2aXR5VHlwZT4pIiwgInJldHVybl90eXBlIjogIkJPT0xFQU4iLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJuc2BUUlVFYGlmIHRoZSBjdXJyZW50IHNlcnZpY2Ugc3ViY2F0ZWdvcnkgYW5kIGFjdGl2aXR5IGFyZSBwcmVzZW50IGluIHRoZSBwcm92aWRlZCBsaXN0LCBvdGhlcndpc2VgRkFMU0VgIiwgInBhcmFtZXRlcl9kZXNjIjogIlZFQ1RPUjogQSBsaXN0IG9mIHNlcnZpY2Ugc3ViY2F0ZWdvcmllcyBhbmQgYWN0aXZpdGllcyB0byBiZSBjaGVja2VkIGFnYWluc3QuIiwgImRlc2NyaXB0aW9uIjogImNoZWNrIGlmIHRoZSBjdXJyZW50IHNlcnZpY2Ugc3ViY2F0ZWdvcnkgYW5kIGFjdGl2aXR5IGFyZSBjb250YWluZWQgaW4gdGhlIGxpc3QiLCAiZXhhbXBsZV9jb2RlIjogIlZFQ1RPUjxNV0cuU2VydmljZUNhdGVnb3J5QW5kQWN0aXZpdHlUeXBlPiBzZXJ2aWNlQWN0aXZpdGllcyA9IFtcImV4YW1wbGVfc2VydmljZV9hY3Rpdml0eV9saXN0XCJdXG5cbklGIE1XRy5TZXJ2aWNlQW5kQWN0aXZpdHlDb250YWluZWQoc2VydmljZUFjdGl2aXRpZXMpIFRIRU4ge1xuICAgIC8vIFNlcnZpY2UgYW5kIEFjdGl2aXR5IGFyZSBjb250YWluZWQgaW4gdGhlIGxpc3QuXG4gICAgTVdHLkFsbG93KFwiU2VydmljZSBhbmQgQWN0aXZpdHkgQ2hlY2sgUGFzc2VkXCIpXG59IEVMU0Uge1xuICAgIC8vIFNlcnZpY2UgYW5kIEFjdGl2aXR5IGFyZSBOT1QgY29udGFpbmVkIGluIHRoZSBsaXN0LlxuICAgIE1XRy5CbG9jayhcIlNlcnZpY2UgYW5kIEFjdGl2aXR5IENoZWNrIEZhaWxlZFwiKVxufSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIlZFQ1RPUjxNV0cuU2VydmljZUNhdGVnb3J5QW5kQWN0aXZpdHlUeXBlPiBzZXJ2aWNlQWN0aXZpdGllcyA9IFtcImV4YW1wbGVfc2VydmljZV9hY3Rpdml0eV9saXN0XCJdXG5cbklGIE1XRy5TZXJ2aWNlQW5kQWN0aXZpdHlDb250YWluZWQoc2VydmljZUFjdGl2aXRpZXMpIFRIRU4ge1xuICAgIC8vIFNlcnZpY2UgYW5kIEFjdGl2aXR5IGFyZSBjb250YWluZWQgaW4gdGhlIGxpc3QuXG4gICAgTVdHLkFsbG93KFwiU2VydmljZSBhbmQgQWN0aXZpdHkgQ2hlY2sgUGFzc2VkXCIpXG59IEVMU0Uge1xuICAgIC8vIFNlcnZpY2UgYW5kIEFjdGl2aXR5IGFyZSBOT1QgY29udGFpbmVkIGluIHRoZSBsaXN0LlxuICAgIE1XRy5CbG9jayhcIlNlcnZpY2UgYW5kIEFjdGl2aXR5IENoZWNrIEZhaWxlZFwiKVxufSJ9LCB7Im5hbWUiOiAiTVdHLlNlcnZpY2VBbmRBY3Rpdml0eUNvbnRhaW5lZCAoVkVDVE9SPE1XRy5TZXJ2aWNlR3JvdXBBbmRBY3Rpdml0eVR5cGU+KSIsICJyZXR1cm5fdHlwZSI6ICJCT09MRUFOIiwgInJldHVybl9kZXNjIjogIlJldHVybnNgVFJVRWBpZiB0aGUgY3VycmVudCBzZXJ2aWNlIGFuZCBhY3Rpdml0eSBhcmUgZm91bmQgaW4gdGhlIHByb3ZpZGVkIGxpc3QsIG90aGVyd2lzZSByZXR1cm5zYEZBTFNFYCIsICJwYXJhbWV0ZXJfZGVzYyI6ICJWRUNUT1I6IHRoZSBsaXN0IGluIHdoaWNoIHRoZSBmdW5jdGlubyBjaGVja3MgaWYgdGhlIGN1cnJlbnQgc2VydmljZSBhbmQgYWN0aXZpdHkgYXJlIGNvbnRhaW5lZC4iLCAiZGVzY3JpcHRpb24iOiAiY2hlY2sgaWYgdGhlIGN1cnJlbnQgc2VydmljZSBhbmQgYWN0aXZpdHkgYXJlIGNvbnRhaW5lZCBpbiBsaXN0IiwgImV4YW1wbGVfY29kZSI6ICJWRUNUT1I8TVdHLlNlcnZpY2VHcm91cEFuZEFjdGl2aXR5VHlwZT4gc2VydmljZUFuZEFjdGl2aXR5TGlzdCA9IFtcImV4YW1wbGVfc2VydmljZV9hbmRfYWN0aXZpdHlfbGlzdFwiXVxuXG5JRiBNV0cuU2VydmljZUFuZEFjdGl2aXR5Q29udGFpbmVkKHNlcnZpY2VBbmRBY3Rpdml0eUxpc3QpIFRIRU4ge1xuICAgIC8vIFNlcnZpY2UgYW5kIEFjdGl2aXR5IGlzIGNvbnRhaW5lZCBpbiB0aGUgbGlzdC5cbiAgICBNV0cuQWxsb3coXCJTZXJ2aWNlIGFuZCBBY3Rpdml0eSBhbGxvd2VkXCIpXG59IEVMU0Uge1xuICAgIC8vIFNlcnZpY2UgYW5kIEFjdGl2aXR5IGlzIG5vdCBjb250YWluZWQgaW4gdGhlIGxpc3QuXG4gICAgTVdHLkJsb2NrKFwiU2VydmljZSBhbmQgQWN0aXZpdHkgYmxvY2tlZFwiKVxufSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIlZFQ1RPUjxNV0cuU2VydmljZUdyb3VwQW5kQWN0aXZpdHlUeXBlPiBzZXJ2aWNlQW5kQWN0aXZpdHlMaXN0ID0gW1wiZXhhbXBsZV9zZXJ2aWNlX2FuZF9hY3Rpdml0eV9saXN0XCJdXG5cbklGIE1XRy5TZXJ2aWNlQW5kQWN0aXZpdHlDb250YWluZWQoc2VydmljZUFuZEFjdGl2aXR5TGlzdCkgVEhFTiB7XG4gICAgLy8gU2VydmljZSBhbmQgQWN0aXZpdHkgaXMgY29udGFpbmVkIGluIHRoZSBsaXN0LlxuICAgIE1XRy5BbGxvdyhcIlNlcnZpY2UgYW5kIEFjdGl2aXR5IGFsbG93ZWRcIilcbn0gRUxTRSB7XG4gICAgLy8gU2VydmljZSBhbmQgQWN0aXZpdHkgaXMgbm90IGNvbnRhaW5lZCBpbiB0aGUgbGlzdC5cbiAgICBNV0cuQmxvY2soXCJTZXJ2aWNlIGFuZCBBY3Rpdml0eSBibG9ja2VkXCIpXG59In0sIHsibmFtZSI6ICJNV0cuU2VydmljZUFuZEFjdGl2aXR5Q29udGFpbmVkIChWRUNUT1I8TVdHLlNlcnZpY2VTdWJDYXRlZ29yeUFuZEFjdGl2aXR5VHlwZT4pIiwgInJldHVybl90eXBlIjogIkJPT0xFQU4iLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJuc2BUUlVFYGlmIHRoZSBjdXJyZW50IHNlcnZpY2Ugc3ViY2F0ZWdvcnkgYW5kIGFjdGl2aXR5IGFyZSBpbiB0aGUgcHJvdmlkZWQgbGlzdCwgb3RoZXJ3aXNlYEZBTFNFYCIsICJwYXJhbWV0ZXJfZGVzYyI6ICJWRUNUT1I6IEEgbGlzdCBjb250YWluaW5nIHBvdGVudGlhbCBzZXJ2aWNlIHN1YmNhdGVnb3JpZXMgYW5kIGFjdGl2aXRpZXMgdG8gYmUgY2hlY2tlZCBhZ2FpbnN0LiIsICJkZXNjcmlwdGlvbiI6ICJjaGVjayBpZiB0aGUgY3VycmVudCBzZXJ2aWNlIHN1YmNhdGVnb3J5IGFuZCBhY3Rpdml0eSBhcmUgY29udGFpbmVkIGluIHRoZSBsaXN0IiwgImV4YW1wbGVfY29kZSI6ICIvLyBEZWZpbmUgYSB2ZWN0b3Igb2YgTVdHLlNlcnZpY2VTdWJDYXRlZ29yeUFuZEFjdGl2aXR5VHlwZVxuVkVDVE9SPE1XRy5TZXJ2aWNlU3ViQ2F0ZWdvcnlBbmRBY3Rpdml0eVR5cGU+IHNlcnZpY2VBY3Rpdml0aWVzID0gW1wiU29jaWFsTWVkaWFcIiwgXCJTdHJlYW1pbmdNZWRpYVwiXVxuXG4vLyBDaGVjayBpZiB0aGUgY3VycmVudCByZXF1ZXN0J3Mgc2VydmljZSBhbmQgYWN0aXZpdHkgdHlwZSBpcyBjb250YWluZWQgaW4gdGhlIHZlY3RvclxuSUYgTVdHLlNlcnZpY2VBbmRBY3Rpdml0eUNvbnRhaW5lZChzZXJ2aWNlQWN0aXZpdGllcykgVEhFTiB7XG4gICAgLy8gQmxvY2sgdGhlIHJlcXVlc3QgaWYgdGhlIHNlcnZpY2UgYW5kIGFjdGl2aXR5IHR5cGUgaXMgY29udGFpbmVkIGluIHRoZSB2ZWN0b3JcbiAgICBNV0cuQmxvY2soXCJBY2Nlc3MgdG8gdGhpcyBzZXJ2aWNlIGFuZCBhY3Rpdml0eSB0eXBlIGlzIG5vdCBhbGxvd2VkLlwiKVxufSBFTFNFIHtcbiAgICAvLyBBbGxvdyB0aGUgcmVxdWVzdCBpZiB0aGUgc2VydmljZSBhbmQgYWN0aXZpdHkgdHlwZSBpcyBub3QgY29udGFpbmVkIGluIHRoZSB2ZWN0b3JcbiAgICBNV0cuQWxsb3coXCJTZXJ2aWNlIGFuZCBhY3Rpdml0eSB0eXBlIGlzIGFsbG93ZWQuXCIpXG59IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiLy8gRGVmaW5lIGEgdmVjdG9yIG9mIE1XRy5TZXJ2aWNlU3ViQ2F0ZWdvcnlBbmRBY3Rpdml0eVR5cGVcblZFQ1RPUjxNV0cuU2VydmljZVN1YkNhdGVnb3J5QW5kQWN0aXZpdHlUeXBlPiBzZXJ2aWNlQWN0aXZpdGllcyA9IFtcIlNvY2lhbE1lZGlhXCIsIFwiU3RyZWFtaW5nTWVkaWFcIl1cblxuLy8gQ2hlY2sgaWYgdGhlIGN1cnJlbnQgcmVxdWVzdCdzIHNlcnZpY2UgYW5kIGFjdGl2aXR5IHR5cGUgaXMgY29udGFpbmVkIGluIHRoZSB2ZWN0b3JcbklGIE1XRy5TZXJ2aWNlQW5kQWN0aXZpdHlDb250YWluZWQoc2VydmljZUFjdGl2aXRpZXMpIFRIRU4ge1xuICAgIC8vIEJsb2NrIHRoZSByZXF1ZXN0IGlmIHRoZSBzZXJ2aWNlIGFuZCBhY3Rpdml0eSB0eXBlIGlzIGNvbnRhaW5lZCBpbiB0aGUgdmVjdG9yXG4gICAgTVdHLkJsb2NrKFwiQWNjZXNzIHRvIHRoaXMgc2VydmljZSBhbmQgYWN0aXZpdHkgdHlwZSBpcyBub3QgYWxsb3dlZC5cIilcbn0gRUxTRSB7XG4gICAgLy8gQWxsb3cgdGhlIHJlcXVlc3QgaWYgdGhlIHNlcnZpY2UgYW5kIGFjdGl2aXR5IHR5cGUgaXMgbm90IGNvbnRhaW5lZCBpbiB0aGUgdmVjdG9yXG4gICAgTVdHLkFsbG93KFwiU2VydmljZSBhbmQgYWN0aXZpdHkgdHlwZSBpcyBhbGxvd2VkLlwiKVxufSJ9LCB7Im5hbWUiOiAiTVdHLlNlcnZpY2VJc0NvbnRhaW5lZEluU2VydmljZUdyb3VwcyAoVkVDVE9SPE1XRy5BcHBsaWNhdGlvblNlcnZpY2VHcm91cFR5cGU+KSIsICJyZXR1cm5fdHlwZSI6ICJCT09MRUFOIiwgInJldHVybl9kZXNjIjogIlJldHVybnNgVFJVRWBpZiB0aGUgY3VycmVudCBzZXJ2aWNlIGlzIHBhcnQgb2YgdGhlIHNwZWNpZmllZCBzZXJ2aWNlIGdyb3Vwcywgb3RoZXJ3aXNlYEZBTFNFYCIsICJwYXJhbWV0ZXJfZGVzYyI6ICJWRUNUT1I6IEEgbGlzdCBvZiBzZXJ2aWNlIGdyb3VwcyB0byBjaGVjayBhZ2FpbnN0IHRoZSBjdXJyZW50IHNlcnZpY2UuIiwgImRlc2NyaXB0aW9uIjogImNoZWNrIGlmIHRoZSBjdXJyZW50IHNlcnZpY2UgaXMgY29udGFpbmVkIGluIG9uZSBvZiBzZXJ2aWNlIGdyb3VwcyIsICJleGFtcGxlX2NvZGUiOiAiVkVDVE9SPE1XRy5BcHBsaWNhdGlvblNlcnZpY2VHcm91cFR5cGU+IHNlcnZpY2VHcm91cHMgPSBbXCJHcm91cDFcIiwgXCJHcm91cDJcIiwgXCJHcm91cDNcIl1cblxuSUYgTVdHLlNlcnZpY2VJc0NvbnRhaW5lZEluU2VydmljZUdyb3VwcyhzZXJ2aWNlR3JvdXBzKSBUSEVOIHtcbiAgICAvLyBUaGUgc2VydmljZSBpcyBjb250YWluZWQgaW4gb25lIG9mIHRoZSBzcGVjaWZpZWQgZ3JvdXBzLlxuICAgIE1XRy5BbGxvdyhcIlNlcnZpY2UgaXMgYWxsb3dlZCBiZWNhdXNlIGl0IGlzIGluIHRoZSBzcGVjaWZpZWQgZ3JvdXBzXCIpXG59IEVMU0Uge1xuICAgIC8vIFRoZSBzZXJ2aWNlIGlzIG5vdCBjb250YWluZWQgaW4gYW55IG9mIHRoZSBzcGVjaWZpZWQgZ3JvdXBzLlxuICAgIE1XRy5CbG9jayhcIlNlcnZpY2UgaXMgYmxvY2tlZCBiZWNhdXNlIGl0IGlzIG5vdCBpbiB0aGUgc3BlY2lmaWVkIGdyb3Vwc1wiKVxufSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIlZFQ1RPUjxNV0cuQXBwbGljYXRpb25TZXJ2aWNlR3JvdXBUeXBlPiBzZXJ2aWNlR3JvdXBzID0gW1wiR3JvdXAxXCIsIFwiR3JvdXAyXCIsIFwiR3JvdXAzXCJdXG5cbklGIE1XRy5TZXJ2aWNlSXNDb250YWluZWRJblNlcnZpY2VHcm91cHMoc2VydmljZUdyb3VwcykgVEhFTiB7XG4gICAgLy8gVGhlIHNlcnZpY2UgaXMgY29udGFpbmVkIGluIG9uZSBvZiB0aGUgc3BlY2lmaWVkIGdyb3Vwcy5cbiAgICBNV0cuQWxsb3coXCJTZXJ2aWNlIGlzIGFsbG93ZWQgYmVjYXVzZSBpdCBpcyBpbiB0aGUgc3BlY2lmaWVkIGdyb3Vwc1wiKVxufSBFTFNFIHtcbiAgICAvLyBUaGUgc2VydmljZSBpcyBub3QgY29udGFpbmVkIGluIGFueSBvZiB0aGUgc3BlY2lmaWVkIGdyb3Vwcy5cbiAgICBNV0cuQmxvY2soXCJTZXJ2aWNlIGlzIGJsb2NrZWQgYmVjYXVzZSBpdCBpcyBub3QgaW4gdGhlIHNwZWNpZmllZCBncm91cHNcIilcbn0ifSwgeyJuYW1lIjogIk1XRy5TbWFydE1hdGNoIChNV0cuVVJMLCBNV0cuU21hcnRNYXRjaExpc3QpIiwgInJldHVybl90eXBlIjogIkJPT0xFQU4iLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJuc2BUUlVFYGlmIHRoZSBwcm92aWRlZCBVUkwgbWF0Y2hlcyBhbnkgcGF0dGVybiBpbiB0aGUgU21hcnRNYXRjaExpc3QuIiwgInBhcmFtZXRlcl9kZXNjIjogIk1XRy5VUkw6IHRoZSBVUkwgdG8gYmUgZXZhbHVhdGVkIGZvciBhIG1hdGNoLk1XRy5TbWFydE1hdGNoTGlzdDogdGhlIGxpc3Qgb2YgY3JpdGVyaWEgdXNlZCB0byBkZXRlcm1pbmUgYSBtYXRjaCBhZ2FpbnN0IHRoZSBVUkwuIiwgImRlc2NyaXB0aW9uIjogIlJldHVybnMgVFJVRSBpZiBTbWFydCBNYXRjaCBtYXRjaGVzIGEgVVJMIiwgImV4YW1wbGVfY29kZSI6ICJNV0cuVVJMIGN1cnJlbnRVcmwgPSBNV0cuVXJsKClcblZFQ1RPUjxTVFJJTkc+IHNtYXJ0TWF0Y2hMaXN0ID0gW1wiZXhhbXBsZV9zbWFydF9tYXRjaF9saXN0XCJdXG5cbklGIE1XRy5TbWFydE1hdGNoKGN1cnJlbnRVcmwsIHNtYXJ0TWF0Y2hMaXN0KSBUSEVOIHtcbiAgICAvLyBVUkwgbWF0Y2hlcyB0aGUgc21hcnQgbWF0Y2ggbGlzdFxuICAgIE1XRy5CbG9jayhcIkFjY2VzcyB0byB0aGlzIFVSTCBpcyBibG9ja2VkIGFzIGl0IG1hdGNoZXMgYSByZXN0cmljdGVkIGNhdGVnb3J5LlwiKVxufSBFTFNFIHtcbiAgICAvLyBVUkwgZG9lcyBub3QgbWF0Y2ggdGhlIHNtYXJ0IG1hdGNoIGxpc3RcbiAgICBNV0cuQWxsb3coXCJVUkwgaXMgYWxsb3dlZFwiKVxufSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIk1XRy5VUkwgY3VycmVudFVybCA9IE1XRy5VcmwoKVxuVkVDVE9SPFNUUklORz4gc21hcnRNYXRjaExpc3QgPSBbXCJleGFtcGxlX3NtYXJ0X21hdGNoX2xpc3RcIl1cblxuSUYgTVdHLlNtYXJ0TWF0Y2goY3VycmVudFVybCwgc21hcnRNYXRjaExpc3QpIFRIRU4ge1xuICAgIC8vIFVSTCBtYXRjaGVzIHRoZSBzbWFydCBtYXRjaCBsaXN0XG4gICAgTVdHLkJsb2NrKFwiQWNjZXNzIHRvIHRoaXMgVVJMIGlzIGJsb2NrZWQgYXMgaXQgbWF0Y2hlcyBhIHJlc3RyaWN0ZWQgY2F0ZWdvcnkuXCIpXG59IEVMU0Uge1xuICAgIC8vIFVSTCBkb2VzIG5vdCBtYXRjaCB0aGUgc21hcnQgbWF0Y2ggbGlzdFxuICAgIE1XRy5BbGxvdyhcIlVSTCBpcyBhbGxvd2VkXCIpXG59In0sIHsibmFtZSI6ICJNV0cuU21hcnRNYXRjaCAoTVdHLlVSTCwgU1RSSU5HKSIsICJyZXR1cm5fdHlwZSI6ICJCT09MRUFOIiwgInJldHVybl9kZXNjIjogIlJldHVybnNgVFJVRWBpZiB0aGUgZ2l2ZW4gVVJMIG1hdGNoZXMgdGhlIHNwZWNpZmllZCBwYXR0ZXJuLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJNV0cuVVJMOiBUaGUgVVJMIHRvIGJlIG1hdGNoZWQsIFNUUklORzogVGhlIFNUUklORyB0byBtYXRjaCBhZ2FpbnN0IHRoZSBVUkwuIiwgImRlc2NyaXB0aW9uIjogIlJldHVybnMgVFJVRSBpZiBTbWFydCBNYXRjaCBtYXRjaGVzIGEgVVJMIiwgImV4YW1wbGVfY29kZSI6ICJNV0cuVVJMIGN1cnJlbnRVcmwgPSBNV0cuVXJsKClcblNUUklORyBwYXR0ZXJuID0gXCJleGFtcGxlLmNvbVwiXG5cbklGIE1XRy5TbWFydE1hdGNoKGN1cnJlbnRVcmwsIHBhdHRlcm4pIFRIRU4ge1xuICAgIC8vIFRoZSBVUkwgbWF0Y2hlcyB0aGUgcGF0dGVybjogXCIgKyBwYXR0ZXJuXG4gICAgTVdHLkJsb2NrKFwiQWNjZXNzIHRvIHRoaXMgVVJMIGlzIGJsb2NrZWQuXCIpXG59IEVMU0Uge1xuICAgIC8vIFRoZSBVUkwgZG9lcyBub3QgbWF0Y2ggdGhlIHBhdHRlcm46IFwiICsgcGF0dGVyblxuICAgIE1XRy5BbGxvdyhcIlVSTCBkb2VzIG5vdCBtYXRjaCB0aGUgYmxvY2sgcGF0dGVybi5cIilcbn0iLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICJNV0cuVVJMIGN1cnJlbnRVcmwgPSBNV0cuVXJsKClcblNUUklORyBwYXR0ZXJuID0gXCJleGFtcGxlLmNvbVwiXG5cbklGIE1XRy5TbWFydE1hdGNoKGN1cnJlbnRVcmwsIHBhdHRlcm4pIFRIRU4ge1xuICAgIC8vIFRoZSBVUkwgbWF0Y2hlcyB0aGUgcGF0dGVybjogXCIgKyBwYXR0ZXJuXG4gICAgTVdHLkJsb2NrKFwiQWNjZXNzIHRvIHRoaXMgVVJMIGlzIGJsb2NrZWQuXCIpXG59IEVMU0Uge1xuICAgIC8vIFRoZSBVUkwgZG9lcyBub3QgbWF0Y2ggdGhlIHBhdHRlcm46IFwiICsgcGF0dGVyblxuICAgIE1XRy5BbGxvdyhcIlVSTCBkb2VzIG5vdCBtYXRjaCB0aGUgYmxvY2sgcGF0dGVybi5cIilcbn0ifSwgeyJuYW1lIjogIk1XRy5Tb3J0SlNPTkFycmF5IChTVFJJTkcpIiwgInJldHVybl90eXBlIjogIlNUUklORyIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIGEgc3RyaW5nIGNvbnRhaW5pbmcgc29ydGVkIHZlY3RvcnMgZnJvbSB0aGUgcHJvdmlkZWQgdW5zb3J0ZWQgSlNPTiBhcnJheS4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiU1RSSU5HOiB0aGUgdW5zb3J0ZWQgSlNPTiBhcnJheSBpbnB1dCIsICJkZXNjcmlwdGlvbiI6ICJnZW5lcmF0ZSBNb3dnbGkgc29ydGVkIFZFQ1RPUnMgb3V0IG9mIHVuc29ydGVkIGRhdGEiLCAiZXhhbXBsZV9jb2RlIjogIi8vIEV4YW1wbGUgSlNPTiBhcnJheSBpbnB1dFxuU1RSSU5HIGpzb25BcnJheSA9ICdbe1wibmFtZVwiOlwiSm9oblwiLFwiYWdlXCI6MzB9LHtcIm5hbWVcIjpcIkphbmVcIixcImFnZVwiOjI1fSx7XCJuYW1lXCI6XCJEb2VcIixcImFnZVwiOjM1fV0nXG5cbi8vIENhbGwgdGhlIE1XRy5Tb3J0SlNPTkFycmF5IGZ1bmN0aW9uIHRvIHNvcnQgdGhlIEpTT04gYXJyYXlcblNUUklORyBzb3J0ZWRKc29uQXJyYXkgPSBNV0cuU29ydEpTT05BcnJheShqc29uQXJyYXkpXG5cbi8vIFByaW50IHRoZSBzb3J0ZWQgSlNPTiBhcnJheSB0byB0aGUgY29uc29sZVxuLy8gc29ydGVkSnNvbkFycmF5IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiLy8gRXhhbXBsZSBKU09OIGFycmF5IGlucHV0XG5TVFJJTkcganNvbkFycmF5ID0gJ1t7XCJuYW1lXCI6XCJKb2huXCIsXCJhZ2VcIjozMH0se1wibmFtZVwiOlwiSmFuZVwiLFwiYWdlXCI6MjV9LHtcIm5hbWVcIjpcIkRvZVwiLFwiYWdlXCI6MzV9XSdcblxuLy8gQ2FsbCB0aGUgTVdHLlNvcnRKU09OQXJyYXkgZnVuY3Rpb24gdG8gc29ydCB0aGUgSlNPTiBhcnJheVxuU1RSSU5HIHNvcnRlZEpzb25BcnJheSA9IE1XRy5Tb3J0SlNPTkFycmF5KGpzb25BcnJheSlcblxuLy8gUHJpbnQgdGhlIHNvcnRlZCBKU09OIGFycmF5IHRvIHRoZSBjb25zb2xlXG4vLyBzb3J0ZWRKc29uQXJyYXkifSwgeyJuYW1lIjogIk1XRy5TU0xDbGllbnRDaXBoZXIgKCkiLCAicmV0dXJuX3R5cGUiOiAiU1RSSU5HIiwgInJldHVybl9kZXNjIjogIlJldHVybnMgdGhlIFNTTCBjbGllbnQgY2lwaGVyLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJOb25lIiwgImRlc2NyaXB0aW9uIjogIlJldHVybnMgdGhlIFNTTCBjbGllbnQgY2lwaGVyIiwgImV4YW1wbGVfY29kZSI6ICJTVFJJTkcgY2lwaGVyID0gTVdHLlNTTENsaWVudENpcGhlcigpXG5cbklGIGNpcGhlciA9PSBcIlRMU19BRVNfMTI4X0dDTV9TSEEyNTZcIiBUSEVOIHtcbiAgICAvLyBDbGllbnQgaXMgdXNpbmcgYSBzZWN1cmUgY2lwaGVyOiArIGNpcGhlclxuICAgIE1XRy5BbGxvdyhcIlNlY3VyZUNpcGhlclwiKVxufSBFTFNFIHtcbiAgICAvLyBDbGllbnQgaXMgdXNpbmcgYW4gaW5zZWN1cmUgY2lwaGVyOiArIGNpcGhlclxuICAgIE1XRy5CbG9jayhcIkluc2VjdXJlQ2lwaGVyXCIpXG59IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiU1RSSU5HIGNpcGhlciA9IE1XRy5TU0xDbGllbnRDaXBoZXIoKVxuXG5JRiBjaXBoZXIgPT0gXCJUTFNfQUVTXzEyOF9HQ01fU0hBMjU2XCIgVEhFTiB7XG4gICAgLy8gQ2xpZW50IGlzIHVzaW5nIGEgc2VjdXJlIGNpcGhlcjogKyBjaXBoZXJcbiAgICBNV0cuQWxsb3coXCJTZWN1cmVDaXBoZXJcIilcbn0gRUxTRSB7XG4gICAgLy8gQ2xpZW50IGlzIHVzaW5nIGFuIGluc2VjdXJlIGNpcGhlcjogKyBjaXBoZXJcbiAgICBNV0cuQmxvY2soXCJJbnNlY3VyZUNpcGhlclwiKVxufSJ9LCB7Im5hbWUiOiAiTVdHLlNTTENsaWVudENpcGhlcktleUV4Y2hhbmdlQml0cyAoKSIsICJyZXR1cm5fdHlwZSI6ICJOVU1CRVIiLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyB0aGUgU1NMIGNsaWVudCBjaXBoZXIga2V5IGV4Y2hhbmdlIGJpdHMuIiwgInBhcmFtZXRlcl9kZXNjIjogIk5vbmUiLCAiZGVzY3JpcHRpb24iOiAiUmV0dXJucyB0aGUgU1NMIGNsaWVudCBjaXBoZXIga2V5IGV4Y2hhbmdlIGJpdHMiLCAiZXhhbXBsZV9jb2RlIjogIk5VTUJFUiBrZXlFeGNoYW5nZUJpdHMgPSBNV0cuU1NMQ2xpZW50Q2lwaGVyS2V5RXhjaGFuZ2VCaXRzKClcblxuSUYga2V5RXhjaGFuZ2VCaXRzIDwgMTI4IFRIRU4ge1xuICAgIC8vIENvbm5lY3Rpb24gYmxvY2tlZCBkdWUgdG8gd2VhayBTU0wgY2lwaGVyIGtleSBleGNoYW5nZSBiaXRzXG4gICAgTVdHLkJsb2NrKFwiQ29ubmVjdGlvbiBibG9ja2VkIGR1ZSB0byB3ZWFrIFNTTCBjaXBoZXIga2V5IGV4Y2hhbmdlIGJpdHM6IFwiICsga2V5RXhjaGFuZ2VCaXRzKVxufSBFTFNFIHtcbiAgICAvLyBTU0wgY2lwaGVyIGtleSBleGNoYW5nZSBiaXRzIGFyZSBzdHJvbmcgZW5vdWdoXG4gICAgTVdHLkFsbG93KFwiU1NMIGNpcGhlciBrZXkgZXhjaGFuZ2UgYml0cyBhcmUgc3Ryb25nIGVub3VnaDogXCIgKyBrZXlFeGNoYW5nZUJpdHMpXG59IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiTlVNQkVSIGtleUV4Y2hhbmdlQml0cyA9IE1XRy5TU0xDbGllbnRDaXBoZXJLZXlFeGNoYW5nZUJpdHMoKVxuXG5JRiBrZXlFeGNoYW5nZUJpdHMgPCAxMjggVEhFTiB7XG4gICAgLy8gQ29ubmVjdGlvbiBibG9ja2VkIGR1ZSB0byB3ZWFrIFNTTCBjaXBoZXIga2V5IGV4Y2hhbmdlIGJpdHNcbiAgICBNV0cuQmxvY2soXCJDb25uZWN0aW9uIGJsb2NrZWQgZHVlIHRvIHdlYWsgU1NMIGNpcGhlciBrZXkgZXhjaGFuZ2UgYml0czogXCIgKyBrZXlFeGNoYW5nZUJpdHMpXG59IEVMU0Uge1xuICAgIC8vIFNTTCBjaXBoZXIga2V5IGV4Y2hhbmdlIGJpdHMgYXJlIHN0cm9uZyBlbm91Z2hcbiAgICBNV0cuQWxsb3coXCJTU0wgY2lwaGVyIGtleSBleGNoYW5nZSBiaXRzIGFyZSBzdHJvbmcgZW5vdWdoOiBcIiArIGtleUV4Y2hhbmdlQml0cylcbn0ifSwgeyJuYW1lIjogIk1XRy5TU0xDbGllbnRQcm90b2NvbCAoKSIsICJyZXR1cm5fdHlwZSI6ICJTVFJJTkciLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyB0aGUgU1NMIGNsaWVudCBwcm90b2NvbC4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiTm9uZSIsICJkZXNjcmlwdGlvbiI6ICJSZXR1cm5zIHRoZSBTU0wgY2xpZW50IHByb3RvY29sIiwgImV4YW1wbGVfY29kZSI6ICIvLyBBc3N1bWluZyBNV0cuU1NMQ2xpZW50UHJvdG9jb2woKSBpcyBhIGZ1bmN0aW9uIHRoYXQgdGFrZXMgbm8gcGFyYW1ldGVycyBhbmQgcmV0dXJucyBzb21lIHZhbHVlXG4vLyBSZXBsYWNlIHRoZSBmb2xsb3dpbmcgbGluZSB3aXRoIHRoZSBjb3JyZWN0IHVzYWdlIG9mIE1XRy5TU0xDbGllbnRQcm90b2NvbCgpXG5yZXN1bHQgPSBNV0cuU1NMQ2xpZW50UHJvdG9jb2woKVxuXG4vLyBFeGFtcGxlIG9mIHVzaW5nIHRoZSByZXN1bHQgaW4gc29tZSBjb25kaXRpb25hbCBsb2dpY1xuSUYgcmVzdWx0IFRIRU4ge1xuICAgIC8vIFNTTCBDbGllbnQgUHJvdG9jb2wgaXMgZW5hYmxlZFxufSBFTFNFIHtcbiAgICAvLyBTU0wgQ2xpZW50IFByb3RvY29sIGlzIG5vdCBlbmFibGVkXG59IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiLy8gQXNzdW1pbmcgTVdHLlNTTENsaWVudFByb3RvY29sKCkgaXMgYSBmdW5jdGlvbiB0aGF0IHRha2VzIG5vIHBhcmFtZXRlcnMgYW5kIHJldHVybnMgc29tZSB2YWx1ZVxuLy8gUmVwbGFjZSB0aGUgZm9sbG93aW5nIGxpbmUgd2l0aCB0aGUgY29ycmVjdCB1c2FnZSBvZiBNV0cuU1NMQ2xpZW50UHJvdG9jb2woKVxucmVzdWx0ID0gTVdHLlNTTENsaWVudFByb3RvY29sKClcblxuLy8gRXhhbXBsZSBvZiB1c2luZyB0aGUgcmVzdWx0IGluIHNvbWUgY29uZGl0aW9uYWwgbG9naWNcbklGIHJlc3VsdCBUSEVOIHtcbiAgICAvLyBTU0wgQ2xpZW50IFByb3RvY29sIGlzIGVuYWJsZWRcbn0gRUxTRSB7XG4gICAgLy8gU1NMIENsaWVudCBQcm90b2NvbCBpcyBub3QgZW5hYmxlZFxufSJ9LCB7Im5hbWUiOiAiTVdHLlNTTFNlcnZlckNpcGhlciAoKSIsICJyZXR1cm5fdHlwZSI6ICJTVFJJTkciLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyBjaXBoZXIvYWxnb3JpdGhtcyBiZXR3ZWVuIHByb3h5IGFuZCBzZXJ2ZXIgKGUuZy4gRUNESEUtUlNBLUFFUzI1Ni1HQ00tU0hBMzg0KS4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiTm9uZSIsICJkZXNjcmlwdGlvbiI6ICJSZXR1cm5zIGNpcGhlci9hbGdvcml0aG1zIGJldHdlZW4gcHJveHkgYW5kIHNlcnZlciAoZS5nLiBFQ0RIRS1SU0EtQUVTMjU2LUdDTS1TSEEzODQpLiIsICJleGFtcGxlX2NvZGUiOiAiU1RSSU5HIGNpcGhlciA9IE1XRy5TU0xTZXJ2ZXJDaXBoZXIoKVxuLy8gVGhlIFNTTCBzZXJ2ZXIgY2lwaGVyIGlzOiBcIiArIGNpcGhlclxuXG5JRiBjaXBoZXIgPT0gXCJFQ0RIRS1SU0EtQUVTMjU2LUdDTS1TSEEzODRcIiBUSEVOIHtcbiAgICAvLyBUaGUgY29ubmVjdGlvbiBpcyB1c2luZyBhIHN0cm9uZyBjaXBoZXIuXG59IEVMU0Uge1xuICAgIC8vIFRoZSBjb25uZWN0aW9uIGlzIG5vdCB1c2luZyB0aGUgcHJlZmVycmVkIHN0cm9uZyBjaXBoZXIuXG59IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiU1RSSU5HIGNpcGhlciA9IE1XRy5TU0xTZXJ2ZXJDaXBoZXIoKVxuLy8gVGhlIFNTTCBzZXJ2ZXIgY2lwaGVyIGlzOiBcIiArIGNpcGhlclxuXG5JRiBjaXBoZXIgPT0gXCJFQ0RIRS1SU0EtQUVTMjU2LUdDTS1TSEEzODRcIiBUSEVOIHtcbiAgICAvLyBUaGUgY29ubmVjdGlvbiBpcyB1c2luZyBhIHN0cm9uZyBjaXBoZXIuXG59IEVMU0Uge1xuICAgIC8vIFRoZSBjb25uZWN0aW9uIGlzIG5vdCB1c2luZyB0aGUgcHJlZmVycmVkIHN0cm9uZyBjaXBoZXIuXG59In0sIHsibmFtZSI6ICJNV0cuU1NMU2VydmVyUHJvdG9jb2wgKCkiLCAicmV0dXJuX3R5cGUiOiAiU1RSSU5HIiwgInJldHVybl9kZXNjIjogIlJldHVybnMgdGhlIFNTTCBzZXJ2ZXIgcHJvdG9jb2wuIiwgInBhcmFtZXRlcl9kZXNjIjogIk5vbmUiLCAiZGVzY3JpcHRpb24iOiAiUmV0dXJucyB0aGUgU1NMIHNlcnZlciBwcm90b2NvbCIsICJleGFtcGxlX2NvZGUiOiAiU1RSSU5HIHNzbFByb3RvY29sID0gTVdHLlNTTFNlcnZlclByb3RvY29sKClcblxuSUYgc3NsUHJvdG9jb2wgPT0gXCJUTFN2MS4yXCIgVEhFTiB7XG4gICAgLy8gVGhlIFNTTCBzZXJ2ZXIgcHJvdG9jb2wgaXMgVExTdjEuMlxufSBFTFNFIHtcbiAgICAvLyBUaGUgU1NMIHNlcnZlciBwcm90b2NvbCBpcyBub3QgVExTdjEuMiwgaXQgaXM6IFwiICsgc3NsUHJvdG9jb2xcbiAgICBNV0cuQmxvY2soXCJVbnN1cHBvcnRlZCBTU0wgcHJvdG9jb2w6IFwiICsgc3NsUHJvdG9jb2wpXG59IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiU1RSSU5HIHNzbFByb3RvY29sID0gTVdHLlNTTFNlcnZlclByb3RvY29sKClcblxuSUYgc3NsUHJvdG9jb2wgPT0gXCJUTFN2MS4yXCIgVEhFTiB7XG4gICAgLy8gVGhlIFNTTCBzZXJ2ZXIgcHJvdG9jb2wgaXMgVExTdjEuMlxufSBFTFNFIHtcbiAgICAvLyBUaGUgU1NMIHNlcnZlciBwcm90b2NvbCBpcyBub3QgVExTdjEuMiwgaXQgaXM6IFwiICsgc3NsUHJvdG9jb2xcbiAgICBNV0cuQmxvY2soXCJVbnN1cHBvcnRlZCBTU0wgcHJvdG9jb2w6IFwiICsgc3NsUHJvdG9jb2wpXG59In0sIHsibmFtZSI6ICJNV0cuU3RhdHVzQ29kZSAoTVdHLlJlcXVlc3RSZXNwb25zZSkiLCAicmV0dXJuX3R5cGUiOiAiTlVNQkVSIiwgInJldHVybl9kZXNjIjogIlJldHVybnMgdGhlIEhUVFAgc3RhdHVzIGNvZGUgYXNzb2NpYXRlZCB3aXRoIHRoZSBnaXZlbiByZXF1ZXN0IG9yIHJlc3BvbnNlLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJNV0cuUmVxdWVzdFJlc3BvbnNlOiBUaGUgaW5wdXQgcmVwcmVzZW50aW5nIGVpdGhlciB0aGUgcmVxdWVzdCBvciByZXNwb25zZSB3aG9zZSBIVFRQIHN0YXR1cyBjb2RlIGlzIHRvIGJlIHJldHVybmVkLiIsICJkZXNjcmlwdGlvbiI6ICJSZXR1cm5zIHRoZSBIVFRQIHN0YXR1cyBjb2RlIG9mIGEgcmVxdWVzdCBvciByZXNwb25zZSIsICJleGFtcGxlX2NvZGUiOiAiTlVNQkVSIGN1c3RvbVN0YXR1c0NvZGUgPSA0MDRcbk1XRy5TZXRIVFRQU3RhdHVzQ29kZShjdXN0b21TdGF0dXNDb2RlKVxuLy8gQ3VzdG9tIHN0YXR1cyBjb2RlIHNldCB0byA0MDQiLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICJOVU1CRVIgY3VzdG9tU3RhdHVzQ29kZSA9IDQwNFxuTVdHLlNldEhUVFBTdGF0dXNDb2RlKGN1c3RvbVN0YXR1c0NvZGUpXG4vLyBDdXN0b20gc3RhdHVzIGNvZGUgc2V0IHRvIDQwNCJ9LCB7Im5hbWUiOiAiTVdHLlN0cmVhbVByb2JhYmlsaXR5ICgpIiwgInJldHVybl90eXBlIjogIk5VTUJFUiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIHRoZSBwcm9iYWJpbGl0eSBvZiB0aGUgYm9keSBiZWluZyBhbiBhdWRpbyBvciB2aWRlbyBzdHJlYW0uIiwgInBhcmFtZXRlcl9kZXNjIjogIk5vbmUiLCAiZGVzY3JpcHRpb24iOiAiUmV0dXJucyB0aGUgcHJvYmFiaWxpdHkgb2YgdGhlIGJvZHkgYmVpbmcgYW4gYXVkaW8gb3IgdmlkZW8gc3RyZWFtIiwgImV4YW1wbGVfY29kZSI6ICJOVU1CRVIgcHJvYmFiaWxpdHkgPSBNV0cuU3RyZWFtUHJvYmFiaWxpdHkoKVxuXG5JRiBwcm9iYWJpbGl0eSA+IDAuNSBUSEVOIHtcbiAgICAvLyBIaWdoIHByb2JhYmlsaXR5IGRldGVjdGVkOiBcIiArIHByb2JhYmlsaXR5XG4gICAgTVdHLkJsb2NrKFwiSGlnaCBwcm9iYWJpbGl0eSBvZiB1bndhbnRlZCBjb250ZW50XCIpXG59IEVMU0Uge1xuICAgIC8vIExvdyBwcm9iYWJpbGl0eSBkZXRlY3RlZDogXCIgKyBwcm9iYWJpbGl0eVxuICAgIE1XRy5BbGxvdyhcIkxvdyBwcm9iYWJpbGl0eSwgYWxsb3dpbmcgcmVxdWVzdFwiKVxufSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIk5VTUJFUiBwcm9iYWJpbGl0eSA9IE1XRy5TdHJlYW1Qcm9iYWJpbGl0eSgpXG5cbklGIHByb2JhYmlsaXR5ID4gMC41IFRIRU4ge1xuICAgIC8vIEhpZ2ggcHJvYmFiaWxpdHkgZGV0ZWN0ZWQ6IFwiICsgcHJvYmFiaWxpdHlcbiAgICBNV0cuQmxvY2soXCJIaWdoIHByb2JhYmlsaXR5IG9mIHVud2FudGVkIGNvbnRlbnRcIilcbn0gRUxTRSB7XG4gICAgLy8gTG93IHByb2JhYmlsaXR5IGRldGVjdGVkOiBcIiArIHByb2JhYmlsaXR5XG4gICAgTVdHLkFsbG93KFwiTG93IHByb2JhYmlsaXR5LCBhbGxvd2luZyByZXF1ZXN0XCIpXG59In0sIHsibmFtZSI6ICJNV0cuU1RSSU5HTGlzdEJ5SUQgKFNUUklORykiLCAicmV0dXJuX3R5cGUiOiAiVkVDVE9SPFNUUklORz4iLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyBhIHZlY3RvciBjb3JyZXNwb25kaW5nIHRvIHRoZSBwcm92aWRlZCBzdHJpbmcgSUQuIiwgInBhcmFtZXRlcl9kZXNjIjogIlNUUklORzogdGhlIElEIHVzZWQgdG8gcmV0cmlldmUgdGhlIFZFQ1RPUi4iLCAiZGVzY3JpcHRpb24iOiAiUmV0cmlldmVzIGEgVkVDVE9SIGJ5IElEIiwgImV4YW1wbGVfY29kZSI6ICIvLyBEZWZpbmUgdGhlIElEIG9mIHRoZSBzdHJpbmcgbGlzdCB5b3Ugd2FudCB0byByZXRyaWV2ZVxuU1RSSU5HIGxpc3RJRCA9IFwiZXhhbXBsZV9saXN0X2lkXCJcblxuLy8gUmV0cmlldmUgdGhlIFZFQ1RPUjxTVFJJTkc+IHVzaW5nIHRoZSBNV0cuU3RyaW5nTGlzdEJ5SUQgZnVuY3Rpb25cblZFQ1RPUjxTVFJJTkc+IHVybExpc3QgPSBNV0cuU3RyaW5nTGlzdEJ5SUQobGlzdElEKVxuXG4vLyBHZXQgdGhlIGN1cnJlbnQgVVJMXG5NV0cuVVJMIGN1cnJlbnRVUkwgPSBNV0cuVXJsKClcblxuLy8gQ2hlY2sgaWYgdGhlIGN1cnJlbnQgVVJMIGlzIGluIHRoZSByZXRyaWV2ZWQgbGlzdFxuSUYgY3VycmVudFVSTC5Ub1N0cmluZygpIElOIHVybExpc3QgVEhFTiB7XG4gICAgLy8gQmxvY2sgdGhlIGNvbm5lY3Rpb24gaWYgdGhlIFVSTCBpcyBpbiB0aGUgbGlzdFxuICAgIE1XRy5CbG9jayhcIkFjY2VzcyB0byB0aGlzIFVSTCBpcyBibG9ja2VkIGFzIGl0IGlzIGluIHRoZSByZXN0cmljdGVkIGxpc3QuXCIpXG59IEVMU0Uge1xuICAgIC8vIEFsbG93IHRoZSBjb25uZWN0aW9uIGlmIHRoZSBVUkwgaXMgbm90IGluIHRoZSBsaXN0XG4gICAgTVdHLkFsbG93KFwiVVJMIGlzIG5vdCBpbiB0aGUgcmVzdHJpY3RlZCBsaXN0LlwiKVxufSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIi8vIERlZmluZSB0aGUgSUQgb2YgdGhlIHN0cmluZyBsaXN0IHlvdSB3YW50IHRvIHJldHJpZXZlXG5TVFJJTkcgbGlzdElEID0gXCJleGFtcGxlX2xpc3RfaWRcIlxuXG4vLyBSZXRyaWV2ZSB0aGUgVkVDVE9SPFNUUklORz4gdXNpbmcgdGhlIE1XRy5TdHJpbmdMaXN0QnlJRCBmdW5jdGlvblxuVkVDVE9SPFNUUklORz4gdXJsTGlzdCA9IE1XRy5TdHJpbmdMaXN0QnlJRChsaXN0SUQpXG5cbi8vIEdldCB0aGUgY3VycmVudCBVUkxcbk1XRy5VUkwgY3VycmVudFVSTCA9IE1XRy5VcmwoKVxuXG4vLyBDaGVjayBpZiB0aGUgY3VycmVudCBVUkwgaXMgaW4gdGhlIHJldHJpZXZlZCBsaXN0XG5JRiBjdXJyZW50VVJMLlRvU3RyaW5nKCkgSU4gdXJsTGlzdCBUSEVOIHtcbiAgICAvLyBCbG9jayB0aGUgY29ubmVjdGlvbiBpZiB0aGUgVVJMIGlzIGluIHRoZSBsaXN0XG4gICAgTVdHLkJsb2NrKFwiQWNjZXNzIHRvIHRoaXMgVVJMIGlzIGJsb2NrZWQgYXMgaXQgaXMgaW4gdGhlIHJlc3RyaWN0ZWQgbGlzdC5cIilcbn0gRUxTRSB7XG4gICAgLy8gQWxsb3cgdGhlIGNvbm5lY3Rpb24gaWYgdGhlIFVSTCBpcyBub3QgaW4gdGhlIGxpc3RcbiAgICBNV0cuQWxsb3coXCJVUkwgaXMgbm90IGluIHRoZSByZXN0cmljdGVkIGxpc3QuXCIpXG59In0sIHsibmFtZSI6ICJNV0cuU1RSSU5HTGlzdEJ5TmFtZSAoU1RSSU5HKSIsICJyZXR1cm5fdHlwZSI6ICJWRUNUT1I8U1RSSU5HPiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIGEgdmVjdG9yIGNvcnJlc3BvbmRpbmcgdG8gdGhlIHNwZWNpZmllZCBsaXN0IG5hbWUuIiwgInBhcmFtZXRlcl9kZXNjIjogIlNUUklORzogVGhlIG5hbWUgb2YgdGhlIGxpc3QgdG8gcmV0cmlldmUuIiwgImRlc2NyaXB0aW9uIjogIlJldHJpZXZlcyBhIFZFQ1RPUiBieSBsaXN0IG5hbWUiLCAiZXhhbXBsZV9jb2RlIjogIi8vIFJldHJpZXZlIHRoZSBsaXN0IG9mIHN0cmluZ3MgYnkgbmFtZVxuVkVDVE9SPFNUUklORz4gbXlMaXN0ID0gTVdHLlN0cmluZ0xpc3RCeU5hbWUoXCJleGFtcGxlX2xpc3RfbmFtZVwiKVxuXG4vLyBJdGVyYXRlIHRocm91Z2ggdGhlIGxpc3QgYW5kIHByaW50IGVhY2ggc3RyaW5nXG5GT1IgRUFDSCBTVFJJTkcgaXRlbSBJTiBteUxpc3Qge1xuICAgIC8vIGl0ZW1cbn0iLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICIvLyBSZXRyaWV2ZSB0aGUgbGlzdCBvZiBzdHJpbmdzIGJ5IG5hbWVcblZFQ1RPUjxTVFJJTkc+IG15TGlzdCA9IE1XRy5TdHJpbmdMaXN0QnlOYW1lKFwiZXhhbXBsZV9saXN0X25hbWVcIilcblxuLy8gSXRlcmF0ZSB0aHJvdWdoIHRoZSBsaXN0IGFuZCBwcmludCBlYWNoIHN0cmluZ1xuRk9SIEVBQ0ggU1RSSU5HIGl0ZW0gSU4gbXlMaXN0IHtcbiAgICAvLyBpdGVtXG59In0sIHsibmFtZSI6ICJNV0cuU1RSSU5HTGlzdEJ5TmFtZUV4aXN0cyAoU1RSSU5HKSIsICJyZXR1cm5fdHlwZSI6ICJCT09MRUFOIiwgInJldHVybl9kZXNjIjogIlJldHVybnMgdHJ1ZSBpZiBWZWN0b3I8U3RyaW5nPiBsaXN0IHdpdGggdGhlIG5hbWUgZXhpc3RzLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJTVFJJTkc6IHRoZSBuYW1lIG9mIHRoZSBsaXN0IHRvIGNoZWNrIGZvci4iLCAiZGVzY3JpcHRpb24iOiAiUmV0dXJucyBUUlVFIGlmIFZFQ1RPUjxTVFJJTkc+IGxpc3Qgd2l0aCB0aGUgbmFtZSBleGlzdHMiLCAiZXhhbXBsZV9jb2RlIjogIlNUUklORyBsaXN0TmFtZSA9IFwiZXhhbXBsZV9saXN0XCJcblxuSUYgTVdHLlN0cmluZ0xpc3RCeU5hbWVFeGlzdHMobGlzdE5hbWUpIFRIRU4ge1xuICAgIC8vIFRoZSBsaXN0IFwiICsgbGlzdE5hbWUgKyBcIiBleGlzdHMuXG59IEVMU0Uge1xuICAgIC8vIFRoZSBsaXN0IFwiICsgbGlzdE5hbWUgKyBcIiBkb2VzIG5vdCBleGlzdC5cbn0iLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICJTVFJJTkcgbGlzdE5hbWUgPSBcImV4YW1wbGVfbGlzdFwiXG5cbklGIE1XRy5TdHJpbmdMaXN0QnlOYW1lRXhpc3RzKGxpc3ROYW1lKSBUSEVOIHtcbiAgICAvLyBUaGUgbGlzdCBcIiArIGxpc3ROYW1lICsgXCIgZXhpc3RzLlxufSBFTFNFIHtcbiAgICAvLyBUaGUgbGlzdCBcIiArIGxpc3ROYW1lICsgXCIgZG9lcyBub3QgZXhpc3QuXG59In0sIHsibmFtZSI6ICJNV0cuVElFRmlsZVJlcHV0YXRpb24gKE1XRy5USUVGaWxlUmVwdXRhdGlvblNldHRpbmcpIiwgInJldHVybl90eXBlIjogIk5VTUJFUiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIGEgbnVtZXJpY2FsIHJhdGluZyBvZiB0aGUgZmlsZSdzIHJlcHV0YXRpb24gZnJvbSB0aGUgVElFIHNlcnZlciBmb3IgdGhlIGN1cnJlbnQgYm9keS4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiTVdHLlRJRUZpbGVSZXB1dGF0aW9uU2V0dGluZzogdGhlIGNvbmZpZ3VyYXRpb24gc2V0dGluZ3MgZm9yIHJldHJpZXZpbmcgdGhlIGZpbGUgcmVwdXRhdGlvbiByYXRpbmcgZnJvbSB0aGUgVElFIHNlcnZlciBmb3IgdGhlIGN1cnJlbnQgYm9keS4iLCAiZGVzY3JpcHRpb24iOiAiZmlsZSByZXB1dGF0aW9uIGZyb20gVElFIHNlcnZlciByYXRpbmcgZm9yIGN1cnJlbnQgYm9keSIsICJleGFtcGxlX2NvZGUiOiAiTVdHLlRJRUZpbGVSZXB1dGF0aW9uU2V0dGluZyByZXB1dGF0aW9uU2V0dGluZ1xuXG4vLyBBc3N1bWluZyB0aGVyZSdzIGEgZnVuY3Rpb24gdG8gZ2V0IHRoZSBmaWxlIHJlcHV0YXRpb24gc2V0dGluZ1xucmVwdXRhdGlvblNldHRpbmcgPSBNV0cuR2V0RmlsZVJlcHV0YXRpb25TZXR0aW5nKClcblxuSUYgcmVwdXRhdGlvblNldHRpbmcuSXNNYWxpY2lvdXMgVEhFTiB7XG4gICAgTVdHLkJsb2NrKFwiRmlsZSBpcyBtYWxpY2lvdXNcIilcbn0gRUxTRSB7XG4gICAgTVdHLkFsbG93KFwiRmlsZSBpcyBzYWZlXCIpXG59IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiTVdHLlRJRUZpbGVSZXB1dGF0aW9uU2V0dGluZyByZXB1dGF0aW9uU2V0dGluZ1xuXG4vLyBBc3N1bWluZyB0aGVyZSdzIGEgZnVuY3Rpb24gdG8gZ2V0IHRoZSBmaWxlIHJlcHV0YXRpb24gc2V0dGluZ1xucmVwdXRhdGlvblNldHRpbmcgPSBNV0cuR2V0RmlsZVJlcHV0YXRpb25TZXR0aW5nKClcblxuSUYgcmVwdXRhdGlvblNldHRpbmcuSXNNYWxpY2lvdXMgVEhFTiB7XG4gICAgTVdHLkJsb2NrKFwiRmlsZSBpcyBtYWxpY2lvdXNcIilcbn0gRUxTRSB7XG4gICAgTVdHLkFsbG93KFwiRmlsZSBpcyBzYWZlXCIpXG59In0sIHsibmFtZSI6ICJNV0cuVGltZUZvckV4dGVybmFscyAoKSIsICJyZXR1cm5fdHlwZSI6ICJOVU1CRVIiLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyB0aGUgdG90YWwgYW1vdW50IG9mIHRpbWUgd2FpdGVkIGZvciBhIHRyYW5zYWN0aW9uLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJOb25lIiwgImRlc2NyaXB0aW9uIjogIlJldHVybnMgdGhlIHRvdGFsIGFtb3VudCBvZiB0aW1lIHdhaXRlZCBmb3IgYSB0cmFuc2FjdGlvbiIsICJleGFtcGxlX2NvZGUiOiAiLy8gR2V0IHRoZSB0b3RhbCBhbW91bnQgb2YgdGltZSB3YWl0ZWQgZm9yIGEgdHJhbnNhY3Rpb25cbk5VTUJFUiBleHRlcm5hbFRpbWUgPSBNV0cuVGltZUZvckV4dGVybmFscygpXG5cbi8vIFRvdGFsIHRpbWUgd2FpdGVkIGZvciBleHRlcm5hbHM6IFwiICsgZXh0ZXJuYWxUaW1lXG5cbi8vIElmIHRoZSBleHRlcm5hbCB0aW1lIGV4Y2VlZHMgYSBjZXJ0YWluIHRocmVzaG9sZCwgYmxvY2sgdGhlIHJlcXVlc3RcbklGIGV4dGVybmFsVGltZSA+IDUwMDAgVEhFTiB7XG4gICAgTVdHLkJsb2NrKFwiUmVxdWVzdCBibG9ja2VkIGR1ZSB0byBleGNlc3NpdmUgZXh0ZXJuYWwgd2FpdCB0aW1lXCIpXG59IEVMU0Uge1xuICAgIE1XRy5BbGxvdyhcIlJlcXVlc3QgYWxsb3dlZCB3aXRoIGFjY2VwdGFibGUgZXh0ZXJuYWwgd2FpdCB0aW1lXCIpXG59IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiLy8gR2V0IHRoZSB0b3RhbCBhbW91bnQgb2YgdGltZSB3YWl0ZWQgZm9yIGEgdHJhbnNhY3Rpb25cbk5VTUJFUiBleHRlcm5hbFRpbWUgPSBNV0cuVGltZUZvckV4dGVybmFscygpXG5cbi8vIFRvdGFsIHRpbWUgd2FpdGVkIGZvciBleHRlcm5hbHM6IFwiICsgZXh0ZXJuYWxUaW1lXG5cbi8vIElmIHRoZSBleHRlcm5hbCB0aW1lIGV4Y2VlZHMgYSBjZXJ0YWluIHRocmVzaG9sZCwgYmxvY2sgdGhlIHJlcXVlc3RcbklGIGV4dGVybmFsVGltZSA+IDUwMDAgVEhFTiB7XG4gICAgTVdHLkJsb2NrKFwiUmVxdWVzdCBibG9ja2VkIGR1ZSB0byBleGNlc3NpdmUgZXh0ZXJuYWwgd2FpdCB0aW1lXCIpXG59IEVMU0Uge1xuICAgIE1XRy5BbGxvdyhcIlJlcXVlc3QgYWxsb3dlZCB3aXRoIGFjY2VwdGFibGUgZXh0ZXJuYWwgd2FpdCB0aW1lXCIpXG59In0sIHsibmFtZSI6ICJNV0cuVGltZUZvclRyYW5zYWN0aW9uICgpIiwgInJldHVybl90eXBlIjogIk5VTUJFUiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIHRoZSB0b3RhbCBkdXJhdGlvbiBvZiB0aGUgdHJhbnNhY3Rpb24uIiwgInBhcmFtZXRlcl9kZXNjIjogIk5vbmUiLCAiZGVzY3JpcHRpb24iOiAiUmV0dXJucyB0aGUgdG90YWwgZHVyYXRpb24gb2YgdHJhbnNhY3Rpb24iLCAiZXhhbXBsZV9jb2RlIjogIk5VTUJFUiB0cmFuc2FjdGlvblRpbWUgPSBNV0cuVGltZUZvclRyYW5zYWN0aW9uKClcbi8vIFRvdGFsIHRyYW5zYWN0aW9uIHRpbWU6IHRyYW5zYWN0aW9uVGltZSBtaWxsaXNlY29uZHMiLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICJOVU1CRVIgdHJhbnNhY3Rpb25UaW1lID0gTVdHLlRpbWVGb3JUcmFuc2FjdGlvbigpXG4vLyBUb3RhbCB0cmFuc2FjdGlvbiB0aW1lOiB0cmFuc2FjdGlvblRpbWUgbWlsbGlzZWNvbmRzIn0sIHsibmFtZSI6ICJNV0cuVG9NV0dTZXR0aW5nIChNV0cuQW50aW1hbHdhcmVTZXR0aW5nKSIsICJyZXR1cm5fdHlwZSI6ICJNV0cuSW50ZXJuYWxTZXR0aW5nIiwgInJldHVybl9kZXNjIjogIlJldHVybnMgdGhlIGBNV0cuSW50ZXJuYWxTZXR0aW5nIGVxdWl2YWxlbnRgLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJNV0cuQW50aW1hbHdhcmVTZXR0aW5nOiB0aGUgc2V0dGluZyB0byBjb252ZXJ0LiIsICJkZXNjcmlwdGlvbiI6ICJDYXN0cyBhbiBNV0cuQW50aW1hbHdhcmVTZXR0aW5nIHRvIGEgbW9yZSBnZW5lcmFsIE1XRy5JbnRlcm5hbFNldHRpbmcuIiwgImV4YW1wbGVfY29kZSI6ICIvLyBDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgTVdHLkFudGltYWx3YXJlU2V0dGluZ1xuTVdHLkFudGltYWx3YXJlU2V0dGluZyBhbnRpbWFsd2FyZVNldHRpbmcgPSBNV0cuVG9NV0dTZXR0aW5nKE1XRy5BbnRpbWFsd2FyZVNldHRpbmcpXG5cbi8vIENvbmZpZ3VyZSB0aGUgYW50aW1hbHdhcmUgc2V0dGluZyBhcyBuZWVkZWRcbmFudGltYWx3YXJlU2V0dGluZy5lbmFibGUgPSBUUlVFXG5hbnRpbWFsd2FyZVNldHRpbmcuc2NhbkxldmVsID0gXCJIaWdoXCJcbmFudGltYWx3YXJlU2V0dGluZy5hY3Rpb25PbkRldGVjdGlvbiA9IFwiQmxvY2tcIlxuXG4vLyBBcHBseSB0aGUgYW50aW1hbHdhcmUgc2V0dGluZ1xuTVdHLlNldEFudGltYWx3YXJlU2V0dGluZyhhbnRpbWFsd2FyZVNldHRpbmcpXG5cbi8vIEFudGltYWx3YXJlIHNldHRpbmcgYXBwbGllZCB3aXRoIGhpZ2ggc2NhbiBsZXZlbCBhbmQgYmxvY2sgYWN0aW9uLiIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIi8vIENyZWF0ZSBhbiBpbnN0YW5jZSBvZiBNV0cuQW50aW1hbHdhcmVTZXR0aW5nXG5NV0cuQW50aW1hbHdhcmVTZXR0aW5nIGFudGltYWx3YXJlU2V0dGluZyA9IE1XRy5Ub01XR1NldHRpbmcoTVdHLkFudGltYWx3YXJlU2V0dGluZylcblxuLy8gQ29uZmlndXJlIHRoZSBhbnRpbWFsd2FyZSBzZXR0aW5nIGFzIG5lZWRlZFxuYW50aW1hbHdhcmVTZXR0aW5nLmVuYWJsZSA9IFRSVUVcbmFudGltYWx3YXJlU2V0dGluZy5zY2FuTGV2ZWwgPSBcIkhpZ2hcIlxuYW50aW1hbHdhcmVTZXR0aW5nLmFjdGlvbk9uRGV0ZWN0aW9uID0gXCJCbG9ja1wiXG5cbi8vIEFwcGx5IHRoZSBhbnRpbWFsd2FyZSBzZXR0aW5nXG5NV0cuU2V0QW50aW1hbHdhcmVTZXR0aW5nKGFudGltYWx3YXJlU2V0dGluZylcblxuLy8gQW50aW1hbHdhcmUgc2V0dGluZyBhcHBsaWVkIHdpdGggaGlnaCBzY2FuIGxldmVsIGFuZCBibG9jayBhY3Rpb24uIn0sIHsibmFtZSI6ICJNV0cuVG9NV0dTZXR0aW5nIChNV0cuQ2xvdWRTdG9yYWdlRW5jcnlwdGlvblNldHRpbmcpIiwgInJldHVybl90eXBlIjogIk1XRy5JbnRlcm5hbFNldHRpbmciLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyB0aGUgYE1XRy5JbnRlcm5hbFNldHRpbmcgZXF1aXZhbGVudGAuIiwgInBhcmFtZXRlcl9kZXNjIjogIk1XRy5DbG91ZFN0b3JhZ2VFbmNyeXB0aW9uU2V0dGluZzogdGhlIHNldHRpbmcgdG8gY29udmVydC4iLCAiZGVzY3JpcHRpb24iOiAiQ2FzdHMgYW4gTVdHLkNsb3VkU3RvcmFnZUVuY3J5cHRpb25TZXR0aW5nIHRvIGEgbW9yZSBnZW5lcmFsIE1XRy5JbnRlcm5hbFNldHRpbmcuIiwgImV4YW1wbGVfY29kZSI6ICIvLyBDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgTVdHLkNsb3VkU3RvcmFnZUVuY3J5cHRpb25TdXBwb3J0U2V0dGluZ1xuTVdHLkNsb3VkU3RvcmFnZUVuY3J5cHRpb25TdXBwb3J0U2V0dGluZyBlbmNyeXB0aW9uU2V0dGluZyA9IE1XRy5DbG91ZFN0b3JhZ2VFbmNyeXB0aW9uU3VwcG9ydFNldHRpbmcoKVxuXG4vLyBDb252ZXJ0IHRoZSBNV0cuQ2xvdWRTdG9yYWdlRW5jcnlwdGlvblN1cHBvcnRTZXR0aW5nIHRvIGEgbW9yZSBnZW5lcmFsIE1XRy5JbnRlcm5hbFNldHRpbmdcbk1XRy5JbnRlcm5hbFNldHRpbmcgaW50ZXJuYWxTZXR0aW5nID0gTVdHLlRvTVdHU2V0dGluZyhlbmNyeXB0aW9uU2V0dGluZylcblxuLy8gVXNlIHRoZSBpbnRlcm5hbFNldHRpbmcgZm9yIGZ1cnRoZXIgcHJvY2Vzc2luZ1xuLy8gQ29udmVydGVkIHNldHRpbmc6IFwiICsgaW50ZXJuYWxTZXR0aW5nIiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiLy8gQ3JlYXRlIGFuIGluc3RhbmNlIG9mIE1XRy5DbG91ZFN0b3JhZ2VFbmNyeXB0aW9uU3VwcG9ydFNldHRpbmdcbk1XRy5DbG91ZFN0b3JhZ2VFbmNyeXB0aW9uU3VwcG9ydFNldHRpbmcgZW5jcnlwdGlvblNldHRpbmcgPSBNV0cuQ2xvdWRTdG9yYWdlRW5jcnlwdGlvblN1cHBvcnRTZXR0aW5nKClcblxuLy8gQ29udmVydCB0aGUgTVdHLkNsb3VkU3RvcmFnZUVuY3J5cHRpb25TdXBwb3J0U2V0dGluZyB0byBhIG1vcmUgZ2VuZXJhbCBNV0cuSW50ZXJuYWxTZXR0aW5nXG5NV0cuSW50ZXJuYWxTZXR0aW5nIGludGVybmFsU2V0dGluZyA9IE1XRy5Ub01XR1NldHRpbmcoZW5jcnlwdGlvblNldHRpbmcpXG5cbi8vIFVzZSB0aGUgaW50ZXJuYWxTZXR0aW5nIGZvciBmdXJ0aGVyIHByb2Nlc3Npbmdcbi8vIENvbnZlcnRlZCBzZXR0aW5nOiBcIiArIGludGVybmFsU2V0dGluZyJ9LCB7Im5hbWUiOiAiTVdHLlRvTVdHU2V0dGluZyAoTVdHLkNsb3VkU3RvcmFnZUVuY3J5cHRpb25TdXBwb3J0U2V0dGluZykiLCAicmV0dXJuX3R5cGUiOiAiTVdHLkludGVybmFsU2V0dGluZyIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIHRoZSBgTVdHLkludGVybmFsU2V0dGluZyBlcXVpdmFsZW50YC4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiTVdHLkNsb3VkU3RvcmFnZUVuY3J5cHRpb25TdXBwb3J0U2V0dGluZzogdGhlIHNldHRpbmcgdG8gY29udmVydC4iLCAiZGVzY3JpcHRpb24iOiAiQ2FzdHMgYW4gTVdHLkNsb3VkU3RvcmFnZUVuY3J5cHRpb25TdXBwb3J0U2V0dGluZyB0byBhIG1vcmUgZ2VuZXJhbCBNV0cuSW50ZXJuYWxTZXR0aW5nLiIsICJleGFtcGxlX2NvZGUiOiAiTVdHLkNsb3VkU3RvcmFnZUVuY3J5cHRpb25TdXBwb3J0U2V0dGluZyBlbmNyeXB0aW9uU2V0dGluZ1xuLy8gQ29uZmlndXJlIHRoZSBlbmNyeXB0aW9uU2V0dGluZyBhcyBuZWVkZWRcbi8vIEZvciBleGFtcGxlLCB5b3UgbWlnaHQgc2V0IHNvbWUgcHJvcGVydGllcyBvbiB0aGUgZW5jcnlwdGlvblNldHRpbmcgb2JqZWN0IGhlcmVcblxuLy8gRW5hYmxlIGNsb3VkIHN0b3JhZ2UgZW5jcnlwdGlvbiB3aXRoIHRoZSBjb25maWd1cmVkIHNldHRpbmdcbk1XRy5FbmFibGVDbG91ZFN0b3JhZ2VFbmNyeXB0aW9uKGVuY3J5cHRpb25TZXR0aW5nKVxuXG4vLyBDbG91ZCBzdG9yYWdlIGVuY3J5cHRpb24gaGFzIGJlZW4gZW5hYmxlZC4iLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICJNV0cuQ2xvdWRTdG9yYWdlRW5jcnlwdGlvblN1cHBvcnRTZXR0aW5nIGVuY3J5cHRpb25TZXR0aW5nXG4vLyBDb25maWd1cmUgdGhlIGVuY3J5cHRpb25TZXR0aW5nIGFzIG5lZWRlZFxuLy8gRm9yIGV4YW1wbGUsIHlvdSBtaWdodCBzZXQgc29tZSBwcm9wZXJ0aWVzIG9uIHRoZSBlbmNyeXB0aW9uU2V0dGluZyBvYmplY3QgaGVyZVxuXG4vLyBFbmFibGUgY2xvdWQgc3RvcmFnZSBlbmNyeXB0aW9uIHdpdGggdGhlIGNvbmZpZ3VyZWQgc2V0dGluZ1xuTVdHLkVuYWJsZUNsb3VkU3RvcmFnZUVuY3J5cHRpb24oZW5jcnlwdGlvblNldHRpbmcpXG5cbi8vIENsb3VkIHN0b3JhZ2UgZW5jcnlwdGlvbiBoYXMgYmVlbiBlbmFibGVkLiJ9LCB7Im5hbWUiOiAiTVdHLlRvTVdHU2V0dGluZyAoTVdHLk1BVERTZXR0aW5nKSIsICJyZXR1cm5fdHlwZSI6ICJNV0cuSW50ZXJuYWxTZXR0aW5nIiwgInJldHVybl9kZXNjIjogIlJldHVybnMgdGhlIGBNV0cuSW50ZXJuYWxTZXR0aW5nIGVxdWl2YWxlbnRgLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJNV0cuTUFURFNldHRpbmc6IHRoZSBzZXR0aW5nIHRvIGNvbnZlcnQuIiwgImRlc2NyaXB0aW9uIjogIkNhc3RzIGFuIE1XRy5NQVREU2V0dGluZyB0byBhIG1vcmUgZ2VuZXJhbCBNV0cuSW50ZXJuYWxTZXR0aW5nLiIsICJleGFtcGxlX2NvZGUiOiAiLy8gQ3JlYXRlIGFuIGluc3RhbmNlIG9mIE1XRy5NQVREU2V0dGluZ1xuTVdHLk1BVERTZXR0aW5nIG1hdGRTZXR0aW5nXG5cbi8vIENvbmZpZ3VyZSB0aGUgTUFURCBzZXR0aW5nICh0aGlzIGlzIGp1c3QgYW4gZXhhbXBsZSwgYWN0dWFsIGNvbmZpZ3VyYXRpb24gbWF5IHZhcnkpXG5tYXRkU2V0dGluZy5zb21lUHJvcGVydHkgPSBcInNvbWVWYWx1ZVwiXG5cbi8vIENvbnZlcnQgdGhlIE1BVEQgc2V0dGluZyB0byBhIGdlbmVyaWMgTVdHIHNldHRpbmdcbk1XRy5JbnRlcm5hbFNldHRpbmcgZ2VuZXJpY1NldHRpbmcgPSBNV0cuVG9NV0dTZXR0aW5nKG1hdGRTZXR0aW5nKVxuXG4vLyBVc2UgdGhlIGdlbmVyaWMgc2V0dGluZyBpbiBzb21lIHdheVxuTVdHLkV4ZWN1dGVFdmVudChnZW5lcmljU2V0dGluZywgXCJTb21lRXZlbnRcIiwgTVdHLkludGVybmFsUGFyYW1ldGVyTGlzdCgpKVxuXG4vLyBBbGxvdyB0aGUgY29ubmVjdGlvblxuTVdHLkFsbG93KFwiY29uZmlndXJlTUFURCBjb21wbGV0ZWRcIikiLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICIvLyBDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgTVdHLk1BVERTZXR0aW5nXG5NV0cuTUFURFNldHRpbmcgbWF0ZFNldHRpbmdcblxuLy8gQ29uZmlndXJlIHRoZSBNQVREIHNldHRpbmcgKHRoaXMgaXMganVzdCBhbiBleGFtcGxlLCBhY3R1YWwgY29uZmlndXJhdGlvbiBtYXkgdmFyeSlcbm1hdGRTZXR0aW5nLnNvbWVQcm9wZXJ0eSA9IFwic29tZVZhbHVlXCJcblxuLy8gQ29udmVydCB0aGUgTUFURCBzZXR0aW5nIHRvIGEgZ2VuZXJpYyBNV0cgc2V0dGluZ1xuTVdHLkludGVybmFsU2V0dGluZyBnZW5lcmljU2V0dGluZyA9IE1XRy5Ub01XR1NldHRpbmcobWF0ZFNldHRpbmcpXG5cbi8vIFVzZSB0aGUgZ2VuZXJpYyBzZXR0aW5nIGluIHNvbWUgd2F5XG5NV0cuRXhlY3V0ZUV2ZW50KGdlbmVyaWNTZXR0aW5nLCBcIlNvbWVFdmVudFwiLCBNV0cuSW50ZXJuYWxQYXJhbWV0ZXJMaXN0KCkpXG5cbi8vIEFsbG93IHRoZSBjb25uZWN0aW9uXG5NV0cuQWxsb3coXCJjb25maWd1cmVNQVREIGNvbXBsZXRlZFwiKSJ9LCB7Im5hbWUiOiAiTVdHLlRvU1RSSU5HIChNV0cuVVJMKSIsICJyZXR1cm5fdHlwZSI6ICJTVFJJTkciLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyB0aGUgVVJMIGNvbnZlcnRlZCB0byBhIHN0cmluZy4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiTVdHLlVSTDogVGhlIFVSTCBvYmplY3QgdG8gYmUgY29udmVydGVkIHRvIGEgU1RSSU5HLiIsICJkZXNjcmlwdGlvbiI6ICJSZXR1cm4gYSBVUkwgYXMgYSBTVFJJTkciLCAiZXhhbXBsZV9jb2RlIjogIk1XRy5VUkwgY3VycmVudFVybCA9IE1XRy5VcmwoKVxuU1RSSU5HIHVybFN0cmluZyA9IE1XRy5Ub1N0cmluZyhjdXJyZW50VXJsKVxuLy8gQ3VycmVudCBVUkw6IFwiICsgdXJsU3RyaW5nIiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiTVdHLlVSTCBjdXJyZW50VXJsID0gTVdHLlVybCgpXG5TVFJJTkcgdXJsU3RyaW5nID0gTVdHLlRvU3RyaW5nKGN1cnJlbnRVcmwpXG4vLyBDdXJyZW50IFVSTDogXCIgKyB1cmxTdHJpbmcifSwgeyJuYW1lIjogIk1XRy5UcmFjaW5nSW5mb3JtYXRpb24gKCkiLCAicmV0dXJuX3R5cGUiOiAiSlNPTiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIHRoZSBoZWFkZXIgZnJvbSB0aGUgdHJhY2luZyBmaWxlIGFzIGEgSlNPTiBvYmplY3QuIiwgInBhcmFtZXRlcl9kZXNjIjogIk5vbmUiLCAiZGVzY3JpcHRpb24iOiAiR2V0IHRoZSB0cmFjaW5nIGZpbGUgaGVhZGVyIGluZm9ybWF0aW9uLiIsICJleGFtcGxlX2NvZGUiOiAiLy8gUmV0cmlldmUgdHJhY2luZyBpbmZvcm1hdGlvblxuU1RSSU5HIHRyYWNlSW5mbyA9IE1XRy5UcmFjaW5nSW5mb3JtYXRpb24oKVxuXG4vLyBUaGUgZm9sbG93aW5nIGxpbmUgd291bGQgcHJpbnQgdGhlIHRyYWNpbmcgaW5mb3JtYXRpb24gdG8gdGhlIGNvbnNvbGUgZm9yIGRlYnVnZ2luZ1xuLy8gdHJhY2VJbmZvIiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiLy8gUmV0cmlldmUgdHJhY2luZyBpbmZvcm1hdGlvblxuU1RSSU5HIHRyYWNlSW5mbyA9IE1XRy5UcmFjaW5nSW5mb3JtYXRpb24oKVxuXG4vLyBUaGUgZm9sbG93aW5nIGxpbmUgd291bGQgcHJpbnQgdGhlIHRyYWNpbmcgaW5mb3JtYXRpb24gdG8gdGhlIGNvbnNvbGUgZm9yIGRlYnVnZ2luZ1xuLy8gdHJhY2VJbmZvIn0sIHsibmFtZSI6ICJNV0cuVXJsICgpIiwgInJldHVybl90eXBlIjogIk1XRy5VUkwiLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyB0aGUgVVJMIG9mIHRoZSBjdXJyZW50IHRyaWdnZXIuIiwgInBhcmFtZXRlcl9kZXNjIjogIk5vbmUiLCAiZGVzY3JpcHRpb24iOiAiUmV0dXJucyB0aGUgVVJMIG9mIGEgcmVxdWVzdCIsICJleGFtcGxlX2NvZGUiOiAiTVdHLlVSTCBjdXJyZW50VXJsID0gTVdHLlVybCgpXG4vLyBUaGUgY3VycmVudCBVUkwgaXM6ICsgY3VycmVudFVybCIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIk1XRy5VUkwgY3VycmVudFVybCA9IE1XRy5VcmwoKVxuLy8gVGhlIGN1cnJlbnQgVVJMIGlzOiArIGN1cnJlbnRVcmwifSwgeyJuYW1lIjogIk1XRy5VcmxDYXRlZ29yaWVzIChNV0cuSW50ZXJuYWxTZXR0aW5nKSIsICJyZXR1cm5fdHlwZSI6ICJWRUNUT1I8TVdHLlVybENhdGVnb3J5PiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIGEgdmVjdG9yIG9mIEdUSSBjYXRlZ29yaWVzIGFzc29jaWF0ZWQgd2l0aCB0aGUgVVJMLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJNV0cuSW50ZXJuYWxTZXR0aW5nOiB0aGUgY29uZmlndXJhdGlvbiBzZXR0aW5ncyBmb3IgdGhlIFVSTCBjYXRlZ29yaXphdGlvbiBwcm9jZXNzLiIsICJkZXNjcmlwdGlvbiI6ICJMb2dnaW5nOiBSZXR1cm4gR1RJIGNhdGVnb3JpZXMgb2YgdGhlIFVSTCIsICJleGFtcGxlX2NvZGUiOiAiTVdHLlVybENhdGVnb3JpemF0aW9uU2V0dGluZyB1cmxDYXRlZ29yaXphdGlvbiA9IE1XRy5VcmxDYXRlZ29yaWVzKClcblZFQ1RPUjxNV0cuVXJsQ2F0ZWdvcnk+IGNhdGVnb3JpZXMgPSB1cmxDYXRlZ29yaXphdGlvbi5HZXRDYXRlZ29yaWVzKE1XRy5VcmwoKSlcblxuSUYgXCJNYWxpY2lvdXMgU2l0ZXNcIiBJTiBjYXRlZ29yaWVzIFRIRU4ge1xuICAgIE1XRy5CbG9jayhcIkFjY2VzcyB0byBtYWxpY2lvdXMgc2l0ZXMgaXMgYmxvY2tlZC5cIilcbn0gRUxTRSB7XG4gICAgTVdHLkFsbG93KFwiVVJMIGlzIHNhZmUuXCIpXG59IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiTVdHLlVybENhdGVnb3JpemF0aW9uU2V0dGluZyB1cmxDYXRlZ29yaXphdGlvbiA9IE1XRy5VcmxDYXRlZ29yaWVzKClcblZFQ1RPUjxNV0cuVXJsQ2F0ZWdvcnk+IGNhdGVnb3JpZXMgPSB1cmxDYXRlZ29yaXphdGlvbi5HZXRDYXRlZ29yaWVzKE1XRy5VcmwoKSlcblxuSUYgXCJNYWxpY2lvdXMgU2l0ZXNcIiBJTiBjYXRlZ29yaWVzIFRIRU4ge1xuICAgIE1XRy5CbG9jayhcIkFjY2VzcyB0byBtYWxpY2lvdXMgc2l0ZXMgaXMgYmxvY2tlZC5cIilcbn0gRUxTRSB7XG4gICAgTVdHLkFsbG93KFwiVVJMIGlzIHNhZmUuXCIpXG59In0sIHsibmFtZSI6ICJNV0cuVXJsQ2F0ZWdvcmllcyAoTVdHLlVybENhdGVnb3JpemF0aW9uU2V0dGluZykiLCAicmV0dXJuX3R5cGUiOiAiVkVDVE9SPE1XRy5VcmxDYXRlZ29yeT4iLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyBhIHZlY3RvciBjb250YWluaW5nIHRoZSBHVEkgY2F0ZWdvcmllcyBmb3IgdGhlIGdpdmVuIFVSTC4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiTVdHLlVybENhdGVnb3JpemF0aW9uU2V0dGluZzogQ29uZmlndXJhdGlvbiBzZXR0aW5ncyBmb3IgVVJMIGNhdGVnb3JpemF0aW9uLiIsICJkZXNjcmlwdGlvbiI6ICJSZXR1cm4gR1RJIGNhdGVnb3JpZXMgb2YgdGhlIFVSTCIsICJleGFtcGxlX2NvZGUiOiAiTVdHLlVybENhdGVnb3JpemF0aW9uU2V0dGluZyB1cmxDYXRlZ29yaXphdGlvblNldHRpbmcgPSBNV0cuVXJsQ2F0ZWdvcmllcygpXG5WRUNUT1I8TVdHLlVybENhdGVnb3J5PiBjYXRlZ29yaWVzID0gdXJsQ2F0ZWdvcml6YXRpb25TZXR0aW5nLkdldENhdGVnb3JpZXMoTVdHLlVybCgpKVxuXG4vLyBDaGVjayBpZiB0aGUgVVJMIGlzIGNhdGVnb3JpemVkIGFzIFwiTWFsaWNpb3VzIFNpdGVzXCJcbkZPUiBFQUNIIGNhdGVnb3J5IElOIGNhdGVnb3JpZXMge1xuICAgIElGIGNhdGVnb3J5LkdldE5hbWUoKSA9PSBcIk1hbGljaW91cyBTaXRlc1wiIFRIRU4ge1xuICAgICAgICBNV0cuQmxvY2soXCJBY2Nlc3MgdG8gbWFsaWNpb3VzIHNpdGVzIGlzIGJsb2NrZWQuXCIpXG4gICAgfVxufVxuXG4vLyBJZiBubyBtYWxpY2lvdXMgY2F0ZWdvcnkgaXMgZm91bmQsIGFsbG93IHRoZSByZXF1ZXN0XG5NV0cuQWxsb3coXCJVUkwgaXMgc2FmZS5cIikiLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICJNV0cuVXJsQ2F0ZWdvcml6YXRpb25TZXR0aW5nIHVybENhdGVnb3JpemF0aW9uU2V0dGluZyA9IE1XRy5VcmxDYXRlZ29yaWVzKClcblZFQ1RPUjxNV0cuVXJsQ2F0ZWdvcnk+IGNhdGVnb3JpZXMgPSB1cmxDYXRlZ29yaXphdGlvblNldHRpbmcuR2V0Q2F0ZWdvcmllcyhNV0cuVXJsKCkpXG5cbi8vIENoZWNrIGlmIHRoZSBVUkwgaXMgY2F0ZWdvcml6ZWQgYXMgXCJNYWxpY2lvdXMgU2l0ZXNcIlxuRk9SIEVBQ0ggY2F0ZWdvcnkgSU4gY2F0ZWdvcmllcyB7XG4gICAgSUYgY2F0ZWdvcnkuR2V0TmFtZSgpID09IFwiTWFsaWNpb3VzIFNpdGVzXCIgVEhFTiB7XG4gICAgICAgIE1XRy5CbG9jayhcIkFjY2VzcyB0byBtYWxpY2lvdXMgc2l0ZXMgaXMgYmxvY2tlZC5cIilcbiAgICB9XG59XG5cbi8vIElmIG5vIG1hbGljaW91cyBjYXRlZ29yeSBpcyBmb3VuZCwgYWxsb3cgdGhlIHJlcXVlc3Rcbk1XRy5BbGxvdyhcIlVSTCBpcyBzYWZlLlwiKSJ9LCB7Im5hbWUiOiAiTVdHLlVybENhdGVnb3JpZXMgKE1XRy5VcmxDYXRlZ29yaXphdGlvblNldHRpbmcsIFNUUklORykiLCAicmV0dXJuX3R5cGUiOiAiVkVDVE9SPE1XRy5VcmxDYXRlZ29yeT4iLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyBhIHZlY3RvciBjb250YWluaW5nIHRoZSBHVEkgY2F0ZWdvcmllcyBvZiB0aGUgc3BlY2lmaWVkIFVSTC4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiTVdHLlVybENhdGVnb3JpemF0aW9uU2V0dGluZzogY29uZmlndXJhdGlvbiBzZXR0aW5nczsgU1RSSU5HOiB0aGUgVVJMLiIsICJkZXNjcmlwdGlvbiI6ICJSZXR1cm5zIHRoZSBHVEkgY2F0ZWdvcmllcyBvZiB0aGUgVVJMIiwgImV4YW1wbGVfY29kZSI6ICIvLyBJbml0aWFsaXplIHRoZSBVUkwgY2F0ZWdvcml6YXRpb24gc2V0dGluZ1xuTVdHLlVybENhdGVnb3JpemF0aW9uU2V0dGluZyBjYXRlZ29yaXphdGlvblNldHRpbmcgPSBbXCJEZWZhdWx0Q2F0ZWdvcml6YXRpb25cIl1cblxuLy8gR2V0IHRoZSBjdXJyZW50IFVSTCBhcyBhIFNUUklOR1xuU1RSSU5HIHVybCA9IE1XRy5VcmwoKS5Ub1N0cmluZygpXG5cbi8vIEh5cG90aGV0aWNhbCBmdW5jdGlvbiBjYWxsIHRvIGdldCBVUkwgY2F0ZWdvcmllc1xuVkVDVE9SPE1XRy5VcmxDYXRlZ29yeT4gY2F0ZWdvcmllcyA9IE1XRy5VcmxDYXRlZ29yaWVzKGNhdGVnb3JpemF0aW9uU2V0dGluZywgdXJsKVxuXG4vLyBVUkw6IFwiICsgdXJsXG4vLyBDYXRlZ29yaWVzOiBcIiArIGNhdGVnb3JpZXMuVG9TdHJpbmcoKVxuXG4vLyBDaGVjayBpZiB0aGUgVVJMIGlzIGNhdGVnb3JpemVkIGFzIFwiTWFsaWNpb3VzXCIgYW5kIGJsb2NrIGl0IGlmIGl0IGlzXG5JRiBcIk1hbGljaW91c1wiIElOIGNhdGVnb3JpZXMgVEhFTiB7XG4gICAgTVdHLkJsb2NrKFwiQWNjZXNzIHRvIG1hbGljaW91cyBzaXRlcyBpcyBibG9ja2VkLlwiKVxufSBFTFNFIHtcbiAgICBNV0cuQWxsb3coXCJVUkwgaXMgYWxsb3dlZC5cIilcbn0iLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICIvLyBJbml0aWFsaXplIHRoZSBVUkwgY2F0ZWdvcml6YXRpb24gc2V0dGluZ1xuTVdHLlVybENhdGVnb3JpemF0aW9uU2V0dGluZyBjYXRlZ29yaXphdGlvblNldHRpbmcgPSBbXCJEZWZhdWx0Q2F0ZWdvcml6YXRpb25cIl1cblxuLy8gR2V0IHRoZSBjdXJyZW50IFVSTCBhcyBhIFNUUklOR1xuU1RSSU5HIHVybCA9IE1XRy5VcmwoKS5Ub1N0cmluZygpXG5cbi8vIEh5cG90aGV0aWNhbCBmdW5jdGlvbiBjYWxsIHRvIGdldCBVUkwgY2F0ZWdvcmllc1xuVkVDVE9SPE1XRy5VcmxDYXRlZ29yeT4gY2F0ZWdvcmllcyA9IE1XRy5VcmxDYXRlZ29yaWVzKGNhdGVnb3JpemF0aW9uU2V0dGluZywgdXJsKVxuXG4vLyBVUkw6IFwiICsgdXJsXG4vLyBDYXRlZ29yaWVzOiBcIiArIGNhdGVnb3JpZXMuVG9TdHJpbmcoKVxuXG4vLyBDaGVjayBpZiB0aGUgVVJMIGlzIGNhdGVnb3JpemVkIGFzIFwiTWFsaWNpb3VzXCIgYW5kIGJsb2NrIGl0IGlmIGl0IGlzXG5JRiBcIk1hbGljaW91c1wiIElOIGNhdGVnb3JpZXMgVEhFTiB7XG4gICAgTVdHLkJsb2NrKFwiQWNjZXNzIHRvIG1hbGljaW91cyBzaXRlcyBpcyBibG9ja2VkLlwiKVxufSBFTFNFIHtcbiAgICBNV0cuQWxsb3coXCJVUkwgaXMgYWxsb3dlZC5cIilcbn0ifSwgeyJuYW1lIjogIk1XRy5VcmxDYXRlZ29yaXphdGlvbkNsb3VkTG9va3VwRG9uZSAoTVdHLkludGVybmFsU2V0dGluZykiLCAicmV0dXJuX3R5cGUiOiAiQk9PTEVBTiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zYFRSVUVgaWYgdGhlIGxhc3QgVVJMIGNhdGVnb3JpemF0aW9uIHJlcXVlc3Qgd2FzIHNlbnQgdG8gdGhlIGNsb3VkLCBhbmRgRkFMU0Vgb3RoZXJ3aXNlLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJNV0cuSW50ZXJuYWxTZXR0aW5nOiB0aGUgY29uZmlndXJhdGlvbiBzZXR0aW5nczsiLCAiZGVzY3JpcHRpb24iOiAiTG9nZ2luZzogVGVsbHMgaWYgdGhlIGxhc3QgcmVxdWVzdCB3YXMgc2VudCB0byB0aGUgY2xvdWQgb3Igbm90IiwgImV4YW1wbGVfY29kZSI6ICJNV0cuVXJsIGN1cnJlbnRVcmwgPSBNV0cuVXJsKClcbk1XRy5VcmxDYXRlZ29yaXphdGlvblNldHRpbmcgdXJsQ2F0ZWdvcml6YXRpb25TZXR0aW5nXG5cbi8vIFBlcmZvcm0gdGhlIFVSTCBjYXRlZ29yaXphdGlvbiBjbG91ZCBsb29rdXBcbk1XRy5VcmxDYXRlZ29yaXphdGlvbkNsb3VkTG9va3VwRG9uZSh1cmxDYXRlZ29yaXphdGlvblNldHRpbmcpXG5cbi8vIENoZWNrIHRoZSBjYXRlZ29yaXphdGlvbiByZXN1bHQgYW5kIHRha2UgYWN0aW9uXG5JRiB1cmxDYXRlZ29yaXphdGlvblNldHRpbmcuSXNDYXRlZ29yaXplZCBUSEVOIHtcbiAgICAvLyBVUkwgaGFzIGJlZW4gY2F0ZWdvcml6ZWQuXG4gICAgLy8gQWRkaXRpb25hbCBsb2dpYyBiYXNlZCBvbiB0aGUgY2F0ZWdvcml6YXRpb25cbn0gRUxTRSB7XG4gICAgLy8gVVJMIGNhdGVnb3JpemF0aW9uIGZhaWxlZCBvciBpcyBub3QgY2F0ZWdvcml6ZWQuXG4gICAgLy8gSGFuZGxlIHRoZSBjYXNlIHdoZXJlIGNhdGVnb3JpemF0aW9uIGlzIG5vdCBkb25lXG59IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiTVdHLlVybCBjdXJyZW50VXJsID0gTVdHLlVybCgpXG5NV0cuVXJsQ2F0ZWdvcml6YXRpb25TZXR0aW5nIHVybENhdGVnb3JpemF0aW9uU2V0dGluZ1xuXG4vLyBQZXJmb3JtIHRoZSBVUkwgY2F0ZWdvcml6YXRpb24gY2xvdWQgbG9va3VwXG5NV0cuVXJsQ2F0ZWdvcml6YXRpb25DbG91ZExvb2t1cERvbmUodXJsQ2F0ZWdvcml6YXRpb25TZXR0aW5nKVxuXG4vLyBDaGVjayB0aGUgY2F0ZWdvcml6YXRpb24gcmVzdWx0IGFuZCB0YWtlIGFjdGlvblxuSUYgdXJsQ2F0ZWdvcml6YXRpb25TZXR0aW5nLklzQ2F0ZWdvcml6ZWQgVEhFTiB7XG4gICAgLy8gVVJMIGhhcyBiZWVuIGNhdGVnb3JpemVkLlxuICAgIC8vIEFkZGl0aW9uYWwgbG9naWMgYmFzZWQgb24gdGhlIGNhdGVnb3JpemF0aW9uXG59IEVMU0Uge1xuICAgIC8vIFVSTCBjYXRlZ29yaXphdGlvbiBmYWlsZWQgb3IgaXMgbm90IGNhdGVnb3JpemVkLlxuICAgIC8vIEhhbmRsZSB0aGUgY2FzZSB3aGVyZSBjYXRlZ29yaXphdGlvbiBpcyBub3QgZG9uZVxufSJ9LCB7Im5hbWUiOiAiTVdHLlVybENhdGVnb3JpemF0aW9uQ2xvdWRMb29rdXBEb25lIChNV0cuVXJsQ2F0ZWdvcml6YXRpb25TZXR0aW5nKSIsICJyZXR1cm5fdHlwZSI6ICJCT09MRUFOIiwgInJldHVybl9kZXNjIjogIlJldHVybnNgVFJVRWBpZiB0aGUgbGFzdCByZXF1ZXN0IHdhcyBzZW50IHRvIHRoZSBjbG91ZCwgb3RoZXJ3aXNlYEZBTFNFYCIsICJwYXJhbWV0ZXJfZGVzYyI6ICJNV0cuVXJsQ2F0ZWdvcml6YXRpb25TZXR0aW5nIHNwZWNpZmllcyB0aGUgc2V0dGluZ3MgdXNlZCB0byBjYXRlZ29yaXplIFVSTHMgaW4gdGhlIGN1c3RvbSBwcm9ncmFtbWluZyBsYW5ndWFnZS4iLCAiZGVzY3JpcHRpb24iOiAiVGVsbHMgaWYgdGhlIGxhc3QgcmVxdWVzdCB3YXMgc2VudCB0byB0aGUgY2xvdWQgb3Igbm90IiwgImV4YW1wbGVfY29kZSI6ICJNV0cuVXJsQ2F0ZWdvcml6YXRpb25TZXR0aW5nIHVybENhdGVnb3JpemF0aW9uU2V0dGluZyA9IE1XRy5VcmxDYXRlZ29yaXphdGlvblNldHRpbmcoKVxuXG4vLyBQZXJmb3JtIHRoZSBVUkwgY2F0ZWdvcml6YXRpb24gY2xvdWQgbG9va3VwXG5NV0cuVXJsQ2F0ZWdvcml6YXRpb25DbG91ZExvb2t1cERvbmUodXJsQ2F0ZWdvcml6YXRpb25TZXR0aW5nKVxuXG4vLyBDaGVjayB0aGUgcmVzdWx0IG9mIHRoZSBVUkwgY2F0ZWdvcml6YXRpb25cbklGIHVybENhdGVnb3JpemF0aW9uU2V0dGluZy5Jc0NhdGVnb3JpemVkIFRIRU4ge1xuICAgIFZFQ1RPUjxNV0cuVXJsQ2F0ZWdvcnk+IGNhdGVnb3JpZXMgPSB1cmxDYXRlZ29yaXphdGlvblNldHRpbmcuR2V0Q2F0ZWdvcmllcygpXG4gICAgXG4gICAgLy8gSXRlcmF0ZSB0aHJvdWdoIHRoZSBjYXRlZ29yaWVzIGFuZCBwZXJmb3JtIGFjdGlvbnMgYmFzZWQgb24gdGhlIGNhdGVnb3J5XG4gICAgRk9SIEVBQ0ggY2F0ZWdvcnkgSU4gY2F0ZWdvcmllcyB7XG4gICAgICAgIC8vIENhdGVnb3J5OiBcIiArIGNhdGVnb3J5LkdldE5hbWUoKVxuICAgICAgICBcbiAgICAgICAgLy8gRXhhbXBsZSBhY3Rpb246IEJsb2NrIGlmIHRoZSBjYXRlZ29yeSBpcyBcIk1hbGljaW91c1wiXG4gICAgICAgIElGIGNhdGVnb3J5LkdldE5hbWUoKSA9PSBcIk1hbGljaW91c1wiIFRIRU4ge1xuICAgICAgICAgICAgTVdHLkJsb2NrKFwiQWNjZXNzIHRvIG1hbGljaW91cyBzaXRlcyBpcyBibG9ja2VkLlwiKVxuICAgICAgICB9XG4gICAgfVxufSBFTFNFIHtcbiAgICAvLyBVUkwgY2F0ZWdvcml6YXRpb24gZmFpbGVkIG9yIG5vIGNhdGVnb3JpZXMgZm91bmQuXG59IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiTVdHLlVybENhdGVnb3JpemF0aW9uU2V0dGluZyB1cmxDYXRlZ29yaXphdGlvblNldHRpbmcgPSBNV0cuVXJsQ2F0ZWdvcml6YXRpb25TZXR0aW5nKClcblxuLy8gUGVyZm9ybSB0aGUgVVJMIGNhdGVnb3JpemF0aW9uIGNsb3VkIGxvb2t1cFxuTVdHLlVybENhdGVnb3JpemF0aW9uQ2xvdWRMb29rdXBEb25lKHVybENhdGVnb3JpemF0aW9uU2V0dGluZylcblxuLy8gQ2hlY2sgdGhlIHJlc3VsdCBvZiB0aGUgVVJMIGNhdGVnb3JpemF0aW9uXG5JRiB1cmxDYXRlZ29yaXphdGlvblNldHRpbmcuSXNDYXRlZ29yaXplZCBUSEVOIHtcbiAgICBWRUNUT1I8TVdHLlVybENhdGVnb3J5PiBjYXRlZ29yaWVzID0gdXJsQ2F0ZWdvcml6YXRpb25TZXR0aW5nLkdldENhdGVnb3JpZXMoKVxuICAgIFxuICAgIC8vIEl0ZXJhdGUgdGhyb3VnaCB0aGUgY2F0ZWdvcmllcyBhbmQgcGVyZm9ybSBhY3Rpb25zIGJhc2VkIG9uIHRoZSBjYXRlZ29yeVxuICAgIEZPUiBFQUNIIGNhdGVnb3J5IElOIGNhdGVnb3JpZXMge1xuICAgICAgICAvLyBDYXRlZ29yeTogXCIgKyBjYXRlZ29yeS5HZXROYW1lKClcbiAgICAgICAgXG4gICAgICAgIC8vIEV4YW1wbGUgYWN0aW9uOiBCbG9jayBpZiB0aGUgY2F0ZWdvcnkgaXMgXCJNYWxpY2lvdXNcIlxuICAgICAgICBJRiBjYXRlZ29yeS5HZXROYW1lKCkgPT0gXCJNYWxpY2lvdXNcIiBUSEVOIHtcbiAgICAgICAgICAgIE1XRy5CbG9jayhcIkFjY2VzcyB0byBtYWxpY2lvdXMgc2l0ZXMgaXMgYmxvY2tlZC5cIilcbiAgICAgICAgfVxuICAgIH1cbn0gRUxTRSB7XG4gICAgLy8gVVJMIGNhdGVnb3JpemF0aW9uIGZhaWxlZCBvciBubyBjYXRlZ29yaWVzIGZvdW5kLlxufSJ9LCB7Im5hbWUiOiAiTVdHLlVybENhdGVnb3JpemVkQnlDbG91bmRMb29rdXAgKE1XRy5JbnRlcm5hbFNldHRpbmcpIiwgInJldHVybl90eXBlIjogIkJPT0xFQU4iLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJuc2BUUlVFYGlmIGEgR1RJIGNsb3VkIGxvb2t1cCBkZXRlcm1pbmVzIHRoZSByYXRpbmcgcmVzdWx0IG9mIHRoZSBVUkwsIG90aGVyd2lzZWBGQUxTRWAiLCAicGFyYW1ldGVyX2Rlc2MiOiAiTVdHLkludGVybmFsU2V0dGluZzogdGhlIGNvbmZpZ3VyYXRpb24gc2V0dGluZ3MuIiwgImRlc2NyaXB0aW9uIjogIkxvZ2dpbmc6IFRlbGxzIGlmIGEgR1RJIGNsb3VkIGxvb2t1cCBoYXMgbGVkIHRvIHRoZSByYXRpbmcgcmVzdWx0IG9mIHRoZSBVUkwiLCAiZXhhbXBsZV9jb2RlIjogIi8vIENyZWF0ZSBhbiBpbnRlcm5hbCBzZXR0aW5nIGZvciBVUkwgY2F0ZWdvcml6YXRpb24gYnkgY2xvdWQgbG9va3VwXG5NV0cuSW50ZXJuYWxTZXR0aW5nIHVybENhdGVnb3JpemF0aW9uU2V0dGluZyA9IE1XRy5VcmxDYXRlZ29yaXplZEJ5Q2xvdWRMb29rdXAoKVxuXG4vLyBFeGVjdXRlIHRoZSBVUkwgY2F0ZWdvcml6YXRpb25cbk1XRy5FeGVjdXRlRXZlbnQodXJsQ2F0ZWdvcml6YXRpb25TZXR0aW5nLCBcIkNhdGVnb3JpemVVUkxcIilcblxuLy8gUmV0cmlldmUgdGhlIFVSTCBvYmplY3Rcbk1XRy5VUkwgY3VycmVudFVybCA9IE1XRy5VcmwoKVxuXG4vLyBDaGVjayB0aGUgY2F0ZWdvcnkgb2YgdGhlIFVSTFxuU1RSSU5HIHVybENhdGVnb3J5ID0gY3VycmVudFVybC5DYXRlZ29yeVxuXG4vLyBVUkwgQ2F0ZWdvcnk6IFwiICsgdXJsQ2F0ZWdvcnlcbi8vIEJsb2NrIG9yIGFsbG93IGJhc2VkIG9uIHRoZSBjYXRlZ29yeVxuSUYgdXJsQ2F0ZWdvcnkgPT0gXCJNYWxpY2lvdXNcIiBUSEVOIHtcbiAgICBNV0cuQmxvY2soXCJBY2Nlc3MgdG8gbWFsaWNpb3VzIHNpdGVzIGlzIGJsb2NrZWQuXCIpXG59IEVMU0Uge1xuICAgIE1XRy5BbGxvdyhcIlVSTCBpcyBzYWZlLlwiKVxufSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIi8vIENyZWF0ZSBhbiBpbnRlcm5hbCBzZXR0aW5nIGZvciBVUkwgY2F0ZWdvcml6YXRpb24gYnkgY2xvdWQgbG9va3VwXG5NV0cuSW50ZXJuYWxTZXR0aW5nIHVybENhdGVnb3JpemF0aW9uU2V0dGluZyA9IE1XRy5VcmxDYXRlZ29yaXplZEJ5Q2xvdWRMb29rdXAoKVxuXG4vLyBFeGVjdXRlIHRoZSBVUkwgY2F0ZWdvcml6YXRpb25cbk1XRy5FeGVjdXRlRXZlbnQodXJsQ2F0ZWdvcml6YXRpb25TZXR0aW5nLCBcIkNhdGVnb3JpemVVUkxcIilcblxuLy8gUmV0cmlldmUgdGhlIFVSTCBvYmplY3Rcbk1XRy5VUkwgY3VycmVudFVybCA9IE1XRy5VcmwoKVxuXG4vLyBDaGVjayB0aGUgY2F0ZWdvcnkgb2YgdGhlIFVSTFxuU1RSSU5HIHVybENhdGVnb3J5ID0gY3VycmVudFVybC5DYXRlZ29yeVxuXG4vLyBVUkwgQ2F0ZWdvcnk6IFwiICsgdXJsQ2F0ZWdvcnlcbi8vIEJsb2NrIG9yIGFsbG93IGJhc2VkIG9uIHRoZSBjYXRlZ29yeVxuSUYgdXJsQ2F0ZWdvcnkgPT0gXCJNYWxpY2lvdXNcIiBUSEVOIHtcbiAgICBNV0cuQmxvY2soXCJBY2Nlc3MgdG8gbWFsaWNpb3VzIHNpdGVzIGlzIGJsb2NrZWQuXCIpXG59IEVMU0Uge1xuICAgIE1XRy5BbGxvdyhcIlVSTCBpcyBzYWZlLlwiKVxufSJ9LCB7Im5hbWUiOiAiTVdHLlVybENhdGVnb3JpemVkQnlDbG91bmRMb29rdXAgKE1XRy5VcmxDYXRlZ29yaXphdGlvblNldHRpbmcpIiwgInJldHVybl90eXBlIjogIkJPT0xFQU4iLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJuc2BUUlVFYGlmIHRoZSBVUkwncyByYXRpbmcgcmVzdWx0IHdhcyBkZXRlcm1pbmVkIGJ5IGEgR1RJIGNsb3VkIGxvb2t1cCwgb3RoZXJ3aXNlYEZBTFNFYCIsICJwYXJhbWV0ZXJfZGVzYyI6ICJNV0cuVXJsQ2F0ZWdvcml6YXRpb25TZXR0aW5nOiB0aGUgY29uZmlndXJhdGlvbiBzZXR0aW5ncyBmb3IgdGhlIGNhdGVnb3JpemF0aW9uLiIsICJkZXNjcmlwdGlvbiI6ICJUZWxscyBpZiBhIEdUSSBjbG91ZCBsb29rdXAgaGFzIGxlZCB0byB0aGUgcmF0aW5nIHJlc3VsdCBvZiB0aGUgVVJMIiwgImV4YW1wbGVfY29kZSI6ICJNV0cuVXJsQ2F0ZWdvcml6YXRpb25TZXR0aW5nIHVybENhdGVnb3JpemF0aW9uU2V0dGluZyA9IC8vIEluaXRpYWxpemUgd2l0aCBhcHByb3ByaWF0ZSBzZXR0aW5nc1xuXG5JRiBNV0cuVXJsQ2F0ZWdvcml6YXRpb25DbG91ZExvb2t1cERvbmUodXJsQ2F0ZWdvcml6YXRpb25TZXR0aW5nKSBUSEVOIHtcbiAgICAvLyBVUkwgY2F0ZWdvcml6YXRpb24gd2FzIGRvbmUgYnkgY2xvdWQgbG9va3VwLlxufSBFTFNFIHtcbiAgICAvLyBVUkwgY2F0ZWdvcml6YXRpb24gd2FzIG5vdCBkb25lIGJ5IGNsb3VkIGxvb2t1cC5cbn0iLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICJNV0cuVXJsQ2F0ZWdvcml6YXRpb25TZXR0aW5nIHVybENhdGVnb3JpemF0aW9uU2V0dGluZyA9IC8vIEluaXRpYWxpemUgd2l0aCBhcHByb3ByaWF0ZSBzZXR0aW5nc1xuXG5JRiBNV0cuVXJsQ2F0ZWdvcml6YXRpb25DbG91ZExvb2t1cERvbmUodXJsQ2F0ZWdvcml6YXRpb25TZXR0aW5nKSBUSEVOIHtcbiAgICAvLyBVUkwgY2F0ZWdvcml6YXRpb24gd2FzIGRvbmUgYnkgY2xvdWQgbG9va3VwLlxufSBFTFNFIHtcbiAgICAvLyBVUkwgY2F0ZWdvcml6YXRpb24gd2FzIG5vdCBkb25lIGJ5IGNsb3VkIGxvb2t1cC5cbn0ifSwgeyJuYW1lIjogIk1XRy5VcmxDYXRlZ29yaXplZEJ5RENDIChNV0cuSW50ZXJuYWxTZXR0aW5nKSIsICJyZXR1cm5fdHlwZSI6ICJCT09MRUFOIiwgInJldHVybl9kZXNjIjogIlJldHVybnMgYWBCT09MRUFOYGluZGljYXRpbmcgd2hldGhlciB0aGUgdmFsdWUgb2YgR1RJLlVybENhdGVnb3JpZXMgd2FzIGRldGVybWluZWQgYnkgdGhlIER5bmFtaWMgQ29udGVudCBDbGFzc2lmaWVyLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJNV0cuSW50ZXJuYWxTZXR0aW5nOiB0aGUgY29uZmlndXJhdGlvbiBzZXR0aW5ncy4iLCAiZGVzY3JpcHRpb24iOiAiTG9nZ2luZzogVGVsbHMgaWYgdmFsdWUgb2YgR1RJLlVybENhdGVnb3JpZXMgd2FzIGNvbXB1dGVkIGJ5IHRoZSBEeW5hbWljIENvbnRlbnQgQ2xhc3NpZmllciIsICJleGFtcGxlX2NvZGUiOiAiTVdHLlVybENhdGVnb3JpemF0aW9uU2V0dGluZyB1cmxDYXRlZ29yaXphdGlvblNldHRpbmcgPSBNV0cuVXJsQ2F0ZWdvcml6ZWRCeURDQygpXG5cbklGIHVybENhdGVnb3JpemF0aW9uU2V0dGluZyBUSEVOIHtcbiAgICAvLyBVUkwgaXMgY2F0ZWdvcml6ZWQgYnkgRENDXG4gICAgTVdHLkFsbG93KFwiVVJMIGNhdGVnb3JpemVkIGJ5IERDQ1wiKVxufSBFTFNFIHtcbiAgICAvLyBVUkwgaXMgbm90IGNhdGVnb3JpemVkIGJ5IERDQ1xuICAgIE1XRy5CbG9jayhcIlVSTCBub3QgY2F0ZWdvcml6ZWQgYnkgRENDXCIpXG59IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiTVdHLlVybENhdGVnb3JpemF0aW9uU2V0dGluZyB1cmxDYXRlZ29yaXphdGlvblNldHRpbmcgPSBNV0cuVXJsQ2F0ZWdvcml6ZWRCeURDQygpXG5cbklGIHVybENhdGVnb3JpemF0aW9uU2V0dGluZyBUSEVOIHtcbiAgICAvLyBVUkwgaXMgY2F0ZWdvcml6ZWQgYnkgRENDXG4gICAgTVdHLkFsbG93KFwiVVJMIGNhdGVnb3JpemVkIGJ5IERDQ1wiKVxufSBFTFNFIHtcbiAgICAvLyBVUkwgaXMgbm90IGNhdGVnb3JpemVkIGJ5IERDQ1xuICAgIE1XRy5CbG9jayhcIlVSTCBub3QgY2F0ZWdvcml6ZWQgYnkgRENDXCIpXG59In0sIHsibmFtZSI6ICJNV0cuVXJsQ2F0ZWdvcml6ZWRCeURDQyAoTVdHLlVybENhdGVnb3JpemF0aW9uU2V0dGluZykiLCAicmV0dXJuX3R5cGUiOiAiQk9PTEVBTiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zYFRSVUVgaWYgdGhlIEdUSS5VcmxDYXRlZ29yaWVzIHZhbHVlIGlzIGNvbXB1dGVkIGJ5IHRoZSBEeW5hbWljIENvbnRlbnQgQ2xhc3NpZmllci4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiTVdHLlVybENhdGVnb3JpemF0aW9uU2V0dGluZzogdGhlIGNvbmZpZ3VyYXRpb24gc2V0dGluZ3MgZm9yIGNhdGVnb3JpemF0aW9uLiIsICJkZXNjcmlwdGlvbiI6ICJUZWxscyBpZiB2YWx1ZSBvZiBHVEkuVXJsQ2F0ZWdvcmllcyB3YXMgY29tcHV0ZWQgYnkgdGhlIER5bmFtaWMgQ29udGVudCBDbGFzc2lmaWVyIiwgImV4YW1wbGVfY29kZSI6ICJNV0cuVXJsQ2F0ZWdvcml6YXRpb25TZXR0aW5nIHNldHRpbmdzID0gTVdHLlVybENhdGVnb3JpemF0aW9uU2V0dGluZygpXG4vLyBDb25maWd1cmUgdGhlIHNldHRpbmdzIG9iamVjdCBhcyBuZWVkZWRcbnNldHRpbmdzLnNvbWVQcm9wZXJ0eSA9IHNvbWVWYWx1ZVxuXG4vLyBBcHBseSB0aGUgc2V0dGluZ3Ncbk1XRy5TZXRJbnRlcm5hbEdUSVNldHRpbmdzKHNldHRpbmdzKVxuXG4vLyBHVEkgc2V0dGluZ3MgaGF2ZSBiZWVuIGFwcGxpZWQuIiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiTVdHLlVybENhdGVnb3JpemF0aW9uU2V0dGluZyBzZXR0aW5ncyA9IE1XRy5VcmxDYXRlZ29yaXphdGlvblNldHRpbmcoKVxuLy8gQ29uZmlndXJlIHRoZSBzZXR0aW5ncyBvYmplY3QgYXMgbmVlZGVkXG5zZXR0aW5ncy5zb21lUHJvcGVydHkgPSBzb21lVmFsdWVcblxuLy8gQXBwbHkgdGhlIHNldHRpbmdzXG5NV0cuU2V0SW50ZXJuYWxHVElTZXR0aW5ncyhzZXR0aW5ncylcblxuLy8gR1RJIHNldHRpbmdzIGhhdmUgYmVlbiBhcHBsaWVkLiJ9LCB7Im5hbWUiOiAiTVdHLlVybENhdGVnb3JpemVkQnlGb3J3YXJkRE5TIChNV0cuSW50ZXJuYWxTZXR0aW5nKSIsICJyZXR1cm5fdHlwZSI6ICJCT09MRUFOIiwgInJldHVybl9kZXNjIjogIlJldHVybnNgVFJVRWBpZiBhIGZvcndhcmQgRE5TIGxvb2t1cCBpbmZsdWVuY2VzIHRoZSByYXRpbmcgcmVzdWx0IG9mIHRoZSBVUkw7IG90aGVyd2lzZSwgaXQgcmV0dXJuc2BGQUxTRWAiLCAicGFyYW1ldGVyX2Rlc2MiOiAiTVdHLkludGVybmFsU2V0dGluZzogdGhlIGNvbmZpZ3VyYXRpb24gc2V0dGluZ3MuIiwgImRlc2NyaXB0aW9uIjogIkxvZ2dpbmc6IFRlbGxzIGlmIGEgZm9yd2FyZCBETlMgbG9va3VwIGhhcyBsZWQgdG8gdGhlIHJhdGluZyByZXN1bHQgb2YgdGhlIFVSTCIsICJleGFtcGxlX2NvZGUiOiAiLy8gR2V0IHRoZSBjdXJyZW50IFVSTFxuTVdHLlVSTCBjdXJyZW50VXJsID0gTVdHLlVybCgpXG5cbi8vIENyZWF0ZSBhbiBpbnN0YW5jZSBvZiBNV0cuVXJsQ2F0ZWdvcml6YXRpb25TZXR0aW5nXG5NV0cuVXJsQ2F0ZWdvcml6YXRpb25TZXR0aW5nIHVybENhdGVnb3JpemF0aW9uU2V0dGluZ1xuXG4vLyBTZXQgdGhlIG5lY2Vzc2FyeSBwcm9wZXJ0aWVzIGZvciB0aGUgVVJMIGNhdGVnb3JpemF0aW9uIHNldHRpbmdcbi8vIChBc3N1bWluZyB0aGVyZSBhcmUgcHJvcGVydGllcyB0byBzZXQsIHRoaXMgaXMganVzdCBhIHBsYWNlaG9sZGVyKVxuLy8gdXJsQ2F0ZWdvcml6YXRpb25TZXR0aW5nLnNvbWVQcm9wZXJ0eSA9IHNvbWVWYWx1ZVxuXG4vLyBVc2UgdGhlIE1XRy5VcmxDYXRlZ29yaXplZEJ5Rm9yd2FyZEROUyBmdW5jdGlvblxuTVdHLkludGVybmFsU2V0dGluZyBkbnNDYXRlZ29yaXphdGlvbiA9IE1XRy5VcmxDYXRlZ29yaXplZEJ5Rm9yd2FyZEROUyh1cmxDYXRlZ29yaXphdGlvblNldHRpbmcpXG5cbi8vIENoZWNrIHRoZSByZXN1bHQgb2YgdGhlIEROUyBjYXRlZ29yaXphdGlvblxuSUYgZG5zQ2F0ZWdvcml6YXRpb24gVEhFTiB7XG4gICAgLy8gVVJMIGNhdGVnb3JpemVkIGJ5IGZvcndhcmQgRE5TOiBcIiArIGN1cnJlbnRVcmxcbiAgICAvLyBBbGxvdyB0aGUgY29ubmVjdGlvblxuICAgIE1XRy5BbGxvdyhcIkROUyBDYXRlZ29yaXphdGlvbiBTdWNjZXNzZnVsXCIpXG59IEVMU0Uge1xuICAgIC8vIFVSTCBub3QgY2F0ZWdvcml6ZWQgYnkgZm9yd2FyZCBETlM6IFwiICsgY3VycmVudFVybFxuICAgIC8vIEJsb2NrIHRoZSBjb25uZWN0aW9uXG4gICAgTVdHLkJsb2NrKFwiRE5TIENhdGVnb3JpemF0aW9uIEZhaWxlZFwiKVxufSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIi8vIEdldCB0aGUgY3VycmVudCBVUkxcbk1XRy5VUkwgY3VycmVudFVybCA9IE1XRy5VcmwoKVxuXG4vLyBDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgTVdHLlVybENhdGVnb3JpemF0aW9uU2V0dGluZ1xuTVdHLlVybENhdGVnb3JpemF0aW9uU2V0dGluZyB1cmxDYXRlZ29yaXphdGlvblNldHRpbmdcblxuLy8gU2V0IHRoZSBuZWNlc3NhcnkgcHJvcGVydGllcyBmb3IgdGhlIFVSTCBjYXRlZ29yaXphdGlvbiBzZXR0aW5nXG4vLyAoQXNzdW1pbmcgdGhlcmUgYXJlIHByb3BlcnRpZXMgdG8gc2V0LCB0aGlzIGlzIGp1c3QgYSBwbGFjZWhvbGRlcilcbi8vIHVybENhdGVnb3JpemF0aW9uU2V0dGluZy5zb21lUHJvcGVydHkgPSBzb21lVmFsdWVcblxuLy8gVXNlIHRoZSBNV0cuVXJsQ2F0ZWdvcml6ZWRCeUZvcndhcmRETlMgZnVuY3Rpb25cbk1XRy5JbnRlcm5hbFNldHRpbmcgZG5zQ2F0ZWdvcml6YXRpb24gPSBNV0cuVXJsQ2F0ZWdvcml6ZWRCeUZvcndhcmRETlModXJsQ2F0ZWdvcml6YXRpb25TZXR0aW5nKVxuXG4vLyBDaGVjayB0aGUgcmVzdWx0IG9mIHRoZSBETlMgY2F0ZWdvcml6YXRpb25cbklGIGRuc0NhdGVnb3JpemF0aW9uIFRIRU4ge1xuICAgIC8vIFVSTCBjYXRlZ29yaXplZCBieSBmb3J3YXJkIEROUzogXCIgKyBjdXJyZW50VXJsXG4gICAgLy8gQWxsb3cgdGhlIGNvbm5lY3Rpb25cbiAgICBNV0cuQWxsb3coXCJETlMgQ2F0ZWdvcml6YXRpb24gU3VjY2Vzc2Z1bFwiKVxufSBFTFNFIHtcbiAgICAvLyBVUkwgbm90IGNhdGVnb3JpemVkIGJ5IGZvcndhcmQgRE5TOiBcIiArIGN1cnJlbnRVcmxcbiAgICAvLyBCbG9jayB0aGUgY29ubmVjdGlvblxuICAgIE1XRy5CbG9jayhcIkROUyBDYXRlZ29yaXphdGlvbiBGYWlsZWRcIilcbn0ifSwgeyJuYW1lIjogIk1XRy5VcmxDYXRlZ29yaXplZEJ5Rm9yd2FyZEROUyAoTVdHLlVybENhdGVnb3JpemF0aW9uU2V0dGluZykiLCAicmV0dXJuX3R5cGUiOiAiQk9PTEVBTiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zYFRSVUVgaWYgdGhlIFVSTCdzIHJhdGluZyByZXN1bHQgd2FzIGRldGVybWluZWQgYnkgYSBmb3J3YXJkIEROUyBsb29rdXAuIiwgInBhcmFtZXRlcl9kZXNjIjogIk1XRy5VcmxDYXRlZ29yaXphdGlvblNldHRpbmc6IHRoZSBjb25maWd1cmF0aW9uIHNldHRpbmdzIGZvciBjYXRlZ29yaXphdGlvbi4iLCAiZGVzY3JpcHRpb24iOiAiVGVsbHMgaWYgYSBmb3J3YXJkIEROUyBsb29rdXAgaGFzIGxlZCB0byB0aGUgcmF0aW5nIHJlc3VsdCBvZiB0aGUgVVJMIiwgImV4YW1wbGVfY29kZSI6ICJNV0cuVVJMIGN1cnJlbnRVcmwgPSBNV0cuVXJsKClcbk1XRy5VcmxDYXRlZ29yaXphdGlvblNldHRpbmcgY2F0ZWdvcml6YXRpb25TZXR0aW5nID0gW1wiZGVmYXVsdF9jYXRlZ29yaXphdGlvbl9zZXR0aW5nXCJdXG5cbi8vIEFzc3VtaW5nIHRoZXJlJ3MgYSBmdW5jdGlvbiB0byBjYXRlZ29yaXplIHRoZSBVUkxcblZFQ1RPUjxNV0cuVXJsQ2F0ZWdvcnk+IGNhdGVnb3JpZXMgPSBNV0cuQ2F0ZWdvcml6ZVVybChjdXJyZW50VXJsLCBjYXRlZ29yaXphdGlvblNldHRpbmcpXG5cbi8vIENoZWNrIGlmIHRoZSBVUkwgZmFsbHMgdW5kZXIgYSBzcGVjaWZpYyBjYXRlZ29yeVxuSUYgXCJNYWxpY2lvdXNcIiBJTiBjYXRlZ29yaWVzIFRIRU4ge1xuICAgIE1XRy5CbG9jayhcIkFjY2VzcyB0byBtYWxpY2lvdXMgc2l0ZXMgaXMgYmxvY2tlZC5cIilcbn0gRUxTRSB7XG4gICAgTVdHLkFsbG93KFwiVVJMIGlzIHNhZmUuXCIpXG59IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiTVdHLlVSTCBjdXJyZW50VXJsID0gTVdHLlVybCgpXG5NV0cuVXJsQ2F0ZWdvcml6YXRpb25TZXR0aW5nIGNhdGVnb3JpemF0aW9uU2V0dGluZyA9IFtcImRlZmF1bHRfY2F0ZWdvcml6YXRpb25fc2V0dGluZ1wiXVxuXG4vLyBBc3N1bWluZyB0aGVyZSdzIGEgZnVuY3Rpb24gdG8gY2F0ZWdvcml6ZSB0aGUgVVJMXG5WRUNUT1I8TVdHLlVybENhdGVnb3J5PiBjYXRlZ29yaWVzID0gTVdHLkNhdGVnb3JpemVVcmwoY3VycmVudFVybCwgY2F0ZWdvcml6YXRpb25TZXR0aW5nKVxuXG4vLyBDaGVjayBpZiB0aGUgVVJMIGZhbGxzIHVuZGVyIGEgc3BlY2lmaWMgY2F0ZWdvcnlcbklGIFwiTWFsaWNpb3VzXCIgSU4gY2F0ZWdvcmllcyBUSEVOIHtcbiAgICBNV0cuQmxvY2soXCJBY2Nlc3MgdG8gbWFsaWNpb3VzIHNpdGVzIGlzIGJsb2NrZWQuXCIpXG59IEVMU0Uge1xuICAgIE1XRy5BbGxvdyhcIlVSTCBpcyBzYWZlLlwiKVxufSJ9LCB7Im5hbWUiOiAiTVdHLlVybENhdGVnb3JpemVkQnlSZXZlcnNlRE5TIChNV0cuSW50ZXJuYWxTZXR0aW5nKSIsICJyZXR1cm5fdHlwZSI6ICJCT09MRUFOIiwgInJldHVybl9kZXNjIjogIlJldHVybnNgVFJVRWBpZiBhIHJldmVyc2UgRE5TIGxvb2t1cCBkZXRlcm1pbmVzIHRoZSByYXRpbmcgb2YgdGhlIFVSTCwgb3RoZXJ3aXNlYEZBTFNFYCIsICJwYXJhbWV0ZXJfZGVzYyI6ICJNV0cuSW50ZXJuYWxTZXR0aW5nOiB0aGUgY29uZmlndXJhdGlvbiBzZXR0aW5ncy4iLCAiZGVzY3JpcHRpb24iOiAiTG9nZ2luZzogVGVsbHMgaWYgYSByZXZlcnNlIEROUyBsb29rdXAgaGFzIGxlZCB0byB0aGUgcmF0aW5nIHJlc3VsdCBvZiB0aGUgVVJMIiwgImV4YW1wbGVfY29kZSI6ICIvLyBDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgdGhlIGludGVybmFsIHNldHRpbmcgZm9yIFVSTCBjYXRlZ29yaXphdGlvbiBieSByZXZlcnNlIEROU1xuTVdHLkludGVybmFsU2V0dGluZyByZXZlcnNlRE5TU2V0dGluZyA9IE1XRy5VcmxDYXRlZ29yaXplZEJ5UmV2ZXJzZUROU1xuXG4vLyBFeGVjdXRlIHRoZSBpbnRlcm5hbCBzZXR0aW5nXG5NV0cuRXhlY3V0ZUV2ZW50KHJldmVyc2VETlNTZXR0aW5nKVxuXG4vLyBSZXRyaWV2ZSB0aGUgY2F0ZWdvcml6ZWQgVVJMXG5NV0cuVVJMIGNhdGVnb3JpemVkVXJsID0gTVdHLlVybCgpXG5cbi8vIENoZWNrIGlmIHRoZSBVUkwgaGFzIGJlZW4gY2F0ZWdvcml6ZWQgYnkgcmV2ZXJzZSBETlNcbklGIChjYXRlZ29yaXplZFVybC5Jc0NhdGVnb3JpemVkQnlSZXZlcnNlRE5TKCkpIFRIRU4ge1xuICAgIC8vIFBlcmZvcm0gYWN0aW9ucyBiYXNlZCBvbiB0aGUgVVJMIGNhdGVnb3JpemF0aW9uIHJlc3VsdFxuICAgIC8vIFVSTCBjYXRlZ29yaXplZCBieSByZXZlcnNlIEROUzogXCIgKyBjYXRlZ29yaXplZFVybC5Ub1N0cmluZygpXG4gICAgTVdHLkFsbG93KFwiVVJMQ2F0ZWdvcml6ZWRCeVJldmVyc2VETlNcIilcbn0gRUxTRSB7XG4gICAgLy8gUGVyZm9ybSBhbHRlcm5hdGl2ZSBhY3Rpb25zIGlmIHRoZSBVUkwgaXMgbm90IGNhdGVnb3JpemVkIGJ5IHJldmVyc2UgRE5TXG4gICAgLy8gVVJMIG5vdCBjYXRlZ29yaXplZCBieSByZXZlcnNlIEROUzogXCIgKyBjYXRlZ29yaXplZFVybC5Ub1N0cmluZygpXG4gICAgTVdHLkJsb2NrKFwiVVJMTm90Q2F0ZWdvcml6ZWRCeVJldmVyc2VETlNcIilcbn0iLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICIvLyBDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgdGhlIGludGVybmFsIHNldHRpbmcgZm9yIFVSTCBjYXRlZ29yaXphdGlvbiBieSByZXZlcnNlIEROU1xuTVdHLkludGVybmFsU2V0dGluZyByZXZlcnNlRE5TU2V0dGluZyA9IE1XRy5VcmxDYXRlZ29yaXplZEJ5UmV2ZXJzZUROU1xuXG4vLyBFeGVjdXRlIHRoZSBpbnRlcm5hbCBzZXR0aW5nXG5NV0cuRXhlY3V0ZUV2ZW50KHJldmVyc2VETlNTZXR0aW5nKVxuXG4vLyBSZXRyaWV2ZSB0aGUgY2F0ZWdvcml6ZWQgVVJMXG5NV0cuVVJMIGNhdGVnb3JpemVkVXJsID0gTVdHLlVybCgpXG5cbi8vIENoZWNrIGlmIHRoZSBVUkwgaGFzIGJlZW4gY2F0ZWdvcml6ZWQgYnkgcmV2ZXJzZSBETlNcbklGIChjYXRlZ29yaXplZFVybC5Jc0NhdGVnb3JpemVkQnlSZXZlcnNlRE5TKCkpIFRIRU4ge1xuICAgIC8vIFBlcmZvcm0gYWN0aW9ucyBiYXNlZCBvbiB0aGUgVVJMIGNhdGVnb3JpemF0aW9uIHJlc3VsdFxuICAgIC8vIFVSTCBjYXRlZ29yaXplZCBieSByZXZlcnNlIEROUzogXCIgKyBjYXRlZ29yaXplZFVybC5Ub1N0cmluZygpXG4gICAgTVdHLkFsbG93KFwiVVJMQ2F0ZWdvcml6ZWRCeVJldmVyc2VETlNcIilcbn0gRUxTRSB7XG4gICAgLy8gUGVyZm9ybSBhbHRlcm5hdGl2ZSBhY3Rpb25zIGlmIHRoZSBVUkwgaXMgbm90IGNhdGVnb3JpemVkIGJ5IHJldmVyc2UgRE5TXG4gICAgLy8gVVJMIG5vdCBjYXRlZ29yaXplZCBieSByZXZlcnNlIEROUzogXCIgKyBjYXRlZ29yaXplZFVybC5Ub1N0cmluZygpXG4gICAgTVdHLkJsb2NrKFwiVVJMTm90Q2F0ZWdvcml6ZWRCeVJldmVyc2VETlNcIilcbn0ifSwgeyJuYW1lIjogIk1XRy5VcmxDYXRlZ29yaXplZEJ5UmV2ZXJzZUROUyAoTVdHLlVybENhdGVnb3JpemF0aW9uU2V0dGluZykiLCAicmV0dXJuX3R5cGUiOiAiQk9PTEVBTiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zYFRSVUVgaWYgYSByZXZlcnNlIEROUyBsb29rdXAgZGV0ZXJtaW5lcyB0aGUgVVJMJ3MgY2F0ZWdvcml6YXRpb24gcmF0aW5nLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJNV0cuVXJsQ2F0ZWdvcml6YXRpb25TZXR0aW5nOiB0aGUgY29uZmlndXJhdGlvbiBzZXR0aW5ncyBmb3IgY2F0ZWdvcml6YXRpb24uIiwgImRlc2NyaXB0aW9uIjogIlRlbGxzIGlmIGEgcmV2ZXJzZSBETlMgbG9va3VwIGhhcyBsZWQgdG8gdGhlIHJhdGluZyByZXN1bHQgb2YgdGhlIFVSTCIsICJleGFtcGxlX2NvZGUiOiAiTVdHLlVybENhdGVnb3JpemF0aW9uU2V0dGluZyB1cmxDYXRlZ29yaXphdGlvbiA9IE1XRy5VcmxDYXRlZ29yaXphdGlvblNldHRpbmcoKVxuTVdHLlVSTCBjdXJyZW50VXJsID0gTVdHLlVybCgpXG5cbklGIHVybENhdGVnb3JpemF0aW9uLkdldENhdGVnb3J5KGN1cnJlbnRVcmwpID09IFwiU29jaWFsIE1lZGlhXCIgVEhFTiB7XG4gICAgLy8gQmxvY2tpbmcgYWNjZXNzIHRvIHNvY2lhbCBtZWRpYSBzaXRlc1xuICAgIE1XRy5CbG9jayhcIkFjY2VzcyB0byBzb2NpYWwgbWVkaWEgc2l0ZXMgaXMgbm90IGFsbG93ZWQuXCIpXG59IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiTVdHLlVybENhdGVnb3JpemF0aW9uU2V0dGluZyB1cmxDYXRlZ29yaXphdGlvbiA9IE1XRy5VcmxDYXRlZ29yaXphdGlvblNldHRpbmcoKVxuTVdHLlVSTCBjdXJyZW50VXJsID0gTVdHLlVybCgpXG5cbklGIHVybENhdGVnb3JpemF0aW9uLkdldENhdGVnb3J5KGN1cnJlbnRVcmwpID09IFwiU29jaWFsIE1lZGlhXCIgVEhFTiB7XG4gICAgLy8gQmxvY2tpbmcgYWNjZXNzIHRvIHNvY2lhbCBtZWRpYSBzaXRlc1xuICAgIE1XRy5CbG9jayhcIkFjY2VzcyB0byBzb2NpYWwgbWVkaWEgc2l0ZXMgaXMgbm90IGFsbG93ZWQuXCIpXG59In0sIHsibmFtZSI6ICJNV0cuVXJsR2VvbG9jYXRpb24gKCkiLCAicmV0dXJuX3R5cGUiOiAiU1RSSU5HIiwgInJldHVybl9kZXNjIjogIlJldHVybnMgdGhlIGdlb2xvY2F0aW9uIHN0cmluZyBvZiB0aGUgVVJMLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJOb25lIiwgImRlc2NyaXB0aW9uIjogIlJldHVybnMgdGhlIEdlb2xvY2F0aW9uIFNUUklORyBvZiB0aGUgVVJMIiwgImV4YW1wbGVfY29kZSI6ICJNV0cuVVJMIGN1cnJlbnRVcmwgPSBNV0cuVXJsKClcblNUUklORyBnZW9sb2NhdGlvbiA9IE1XRy5VcmxHZW9sb2NhdGlvbihjdXJyZW50VXJsKVxuLy8gR2VvbG9jYXRpb24gb2YgdGhlIFVSTDogXCIgKyBnZW9sb2NhdGlvbiIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIk1XRy5VUkwgY3VycmVudFVybCA9IE1XRy5VcmwoKVxuU1RSSU5HIGdlb2xvY2F0aW9uID0gTVdHLlVybEdlb2xvY2F0aW9uKGN1cnJlbnRVcmwpXG4vLyBHZW9sb2NhdGlvbiBvZiB0aGUgVVJMOiBcIiArIGdlb2xvY2F0aW9uIn0sIHsibmFtZSI6ICJNV0cuVXJsR2VvbG9jYXRpb24gKE1XRy5JbnRlcm5hbFNldHRpbmcpIiwgInJldHVybl90eXBlIjogIlNUUklORyIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIHRoZSBnZW9sb2NhdGlvbiBzdHJpbmcgYXNzb2NpYXRlZCB3aXRoIHRoZSBVUkwuIiwgInBhcmFtZXRlcl9kZXNjIjogIk1XRy5JbnRlcm5hbFNldHRpbmc6IENvbmZpZ3VyYXRpb24gb3Igc2V0dGluZ3Mgb2JqZWN0IHJlcXVpcmVkIHRvIG9idGFpbiB0aGUgZ2VvbG9jYXRpb24gb2YgdGhlIFVSTC4iLCAiZGVzY3JpcHRpb24iOiAiTG9nZ2luZzogUmV0dXJucyB0aGUgR2VvbG9jYXRpb24gU1RSSU5HIG9mIHRoZSBVUkwiLCAiZXhhbXBsZV9jb2RlIjogIk1XRy5VUkwgY3VycmVudFVybCA9IE1XRy5VcmwoKVxuU1RSSU5HIHVybFN0cmluZyA9IGN1cnJlbnRVcmwuVG9TdHJpbmcoKVxuXG4vLyBBc3N1bWluZyB0aGVyZSBpcyBhIGZ1bmN0aW9uIHRvIGdldCBnZW9sb2NhdGlvbiBpbmZvcm1hdGlvblxuLy8gVGhpcyBpcyBhIHBsYWNlaG9sZGVyIGFzIHRoZSBhY3R1YWwgZnVuY3Rpb24gaXMgbm90IHByb3ZpZGVkXG4vLyBNQVA8U1RSSU5HPjxTVFJJTkc+IGdlb2xvY2F0aW9uSW5mbyA9IE1XRy5HZXRVcmxHZW9sb2NhdGlvbih1cmxTdHJpbmcpXG5cbi8vIEV4YW1wbGUgb2YgaG93IHlvdSBtaWdodCB1c2UgdGhlIGdlb2xvY2F0aW9uIGluZm9ybWF0aW9uXG4vLyBJRiBnZW9sb2NhdGlvbkluZm9bXCJjb3VudHJ5XCJdID09IFwiVVNcIiBUSEVOIHtcbi8vICAgICAvLyBBY2Nlc3NpbmcgYSBVUkwgZnJvbSB0aGUgVW5pdGVkIFN0YXRlczogXCIgKyB1cmxTdHJpbmdcbi8vIH0gRUxTRSB7XG4vLyAgICAgLy8gQWNjZXNzaW5nIGEgVVJMIGZyb20gb3V0c2lkZSB0aGUgVW5pdGVkIFN0YXRlczogXCIgKyB1cmxTdHJpbmdcbi8vIH0iLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICJNV0cuVVJMIGN1cnJlbnRVcmwgPSBNV0cuVXJsKClcblNUUklORyB1cmxTdHJpbmcgPSBjdXJyZW50VXJsLlRvU3RyaW5nKClcblxuLy8gQXNzdW1pbmcgdGhlcmUgaXMgYSBmdW5jdGlvbiB0byBnZXQgZ2VvbG9jYXRpb24gaW5mb3JtYXRpb25cbi8vIFRoaXMgaXMgYSBwbGFjZWhvbGRlciBhcyB0aGUgYWN0dWFsIGZ1bmN0aW9uIGlzIG5vdCBwcm92aWRlZFxuLy8gTUFQPFNUUklORz48U1RSSU5HPiBnZW9sb2NhdGlvbkluZm8gPSBNV0cuR2V0VXJsR2VvbG9jYXRpb24odXJsU3RyaW5nKVxuXG4vLyBFeGFtcGxlIG9mIGhvdyB5b3UgbWlnaHQgdXNlIHRoZSBnZW9sb2NhdGlvbiBpbmZvcm1hdGlvblxuLy8gSUYgZ2VvbG9jYXRpb25JbmZvW1wiY291bnRyeVwiXSA9PSBcIlVTXCIgVEhFTiB7XG4vLyAgICAgLy8gQWNjZXNzaW5nIGEgVVJMIGZyb20gdGhlIFVuaXRlZCBTdGF0ZXM6IFwiICsgdXJsU3RyaW5nXG4vLyB9IEVMU0Uge1xuLy8gICAgIC8vIEFjY2Vzc2luZyBhIFVSTCBmcm9tIG91dHNpZGUgdGhlIFVuaXRlZCBTdGF0ZXM6IFwiICsgdXJsU3RyaW5nXG4vLyB9In0sIHsibmFtZSI6ICJNV0cuVXJsR2VvbG9jYXRpb24gKE1XRy5VcmxDYXRlZ29yaXphdGlvblNldHRpbmcsIFNUUklORykiLCAicmV0dXJuX3R5cGUiOiAiU1RSSU5HIiwgInJldHVybl9kZXNjIjogIlJldHVybnMgdGhlIGdlb2xvY2F0aW9uIHN0cmluZyBvZiB0aGUgZ2l2ZW4gVVJMLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJNV0cuVXJsQ2F0ZWdvcml6YXRpb25TZXR0aW5nOiBDb25maWd1cmF0aW9uIHNldHRpbmdzIGZvciBVUkwgY2F0ZWdvcml6YXRpb247IFNUUklORzogdGhlIHVybC4iLCAiZGVzY3JpcHRpb24iOiAiR2V0IEdlb2xvY2F0aW9uIG9mIGdpdmVuIFVSTC4iLCAiZXhhbXBsZV9jb2RlIjogIi8vIENyZWF0ZSBhIFVSTCBjYXRlZ29yaXphdGlvbiBzZXR0aW5nIG9iamVjdFxuTVdHLlVybENhdGVnb3JpemF0aW9uU2V0dGluZyB1cmxDYXRlZ29yaXphdGlvblNldHRpbmcgPSBNV0cuVXJsQ2F0ZWdvcml6YXRpb25TZXR0aW5nKClcblxuLy8gR2V0IHRoZSBjdXJyZW50IFVSTCBhcyBhIHN0cmluZ1xuU1RSSU5HIHVybCA9IE1XRy5VcmwoKS5Ub1N0cmluZygpXG5cbi8vIEdldCB0aGUgZ2VvbG9jYXRpb24gb2YgdGhlIFVSTFxuU1RSSU5HIGdlb2xvY2F0aW9uID0gTVdHLlVybEdlb2xvY2F0aW9uKHVybENhdGVnb3JpemF0aW9uU2V0dGluZywgdXJsKVxuXG4vLyBHZW9sb2NhdGlvbiBvZiB0aGUgVVJMOiBcIiArIGdlb2xvY2F0aW9uXG5cbi8vIEV4YW1wbGUgY29uZGl0aW9uIGJhc2VkIG9uIGdlb2xvY2F0aW9uXG5JRiBnZW9sb2NhdGlvbiA9PSBcIlVTXCIgVEhFTiB7XG4gICAgLy8gQWNjZXNzaW5nIGEgVVMtYmFzZWQgVVJMXG4gICAgTVdHLkFsbG93KFwiVVMtYmFzZWQgVVJMIGFsbG93ZWRcIilcbn0gRUxTRSB7XG4gICAgLy8gQWNjZXNzaW5nIGEgbm9uLVVTLWJhc2VkIFVSTFxuICAgIE1XRy5CbG9jayhcIk5vbi1VUy1iYXNlZCBVUkwgYmxvY2tlZFwiKVxufSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIi8vIENyZWF0ZSBhIFVSTCBjYXRlZ29yaXphdGlvbiBzZXR0aW5nIG9iamVjdFxuTVdHLlVybENhdGVnb3JpemF0aW9uU2V0dGluZyB1cmxDYXRlZ29yaXphdGlvblNldHRpbmcgPSBNV0cuVXJsQ2F0ZWdvcml6YXRpb25TZXR0aW5nKClcblxuLy8gR2V0IHRoZSBjdXJyZW50IFVSTCBhcyBhIHN0cmluZ1xuU1RSSU5HIHVybCA9IE1XRy5VcmwoKS5Ub1N0cmluZygpXG5cbi8vIEdldCB0aGUgZ2VvbG9jYXRpb24gb2YgdGhlIFVSTFxuU1RSSU5HIGdlb2xvY2F0aW9uID0gTVdHLlVybEdlb2xvY2F0aW9uKHVybENhdGVnb3JpemF0aW9uU2V0dGluZywgdXJsKVxuXG4vLyBHZW9sb2NhdGlvbiBvZiB0aGUgVVJMOiBcIiArIGdlb2xvY2F0aW9uXG5cbi8vIEV4YW1wbGUgY29uZGl0aW9uIGJhc2VkIG9uIGdlb2xvY2F0aW9uXG5JRiBnZW9sb2NhdGlvbiA9PSBcIlVTXCIgVEhFTiB7XG4gICAgLy8gQWNjZXNzaW5nIGEgVVMtYmFzZWQgVVJMXG4gICAgTVdHLkFsbG93KFwiVVMtYmFzZWQgVVJMIGFsbG93ZWRcIilcbn0gRUxTRSB7XG4gICAgLy8gQWNjZXNzaW5nIGEgbm9uLVVTLWJhc2VkIFVSTFxuICAgIE1XRy5CbG9jayhcIk5vbi1VUy1iYXNlZCBVUkwgYmxvY2tlZFwiKVxufSJ9LCB7Im5hbWUiOiAiTVdHLlVybEdlb2xvY2F0aW9uIChTVFJJTkcpIiwgInJldHVybl90eXBlIjogIlNUUklORyIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIHRoZSBnZW9ncmFwaGljIGxvY2F0aW9uIGFzc29jaWF0ZWQgd2l0aCB0aGUgZ2l2ZW4gVVJMIGFzIGEgc3RyaW5nLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJTVFJJTkc6IHRoZSBVUkwuIiwgImRlc2NyaXB0aW9uIjogIkdlb2xvY2F0aW9uIFNUUklORyBmb3IgdGhlIGdpdmVuIFVSTCIsICJleGFtcGxlX2NvZGUiOiAiLy8gR2V0IHRoZSBjdXJyZW50IFVSTFxuTVdHLlVSTCBjdXJyZW50VXJsID0gTVdHLlVybCgpXG5cbi8vIEdldCB0aGUgZ2VvbG9jYXRpb24gb2YgdGhlIGN1cnJlbnQgVVJMXG5TVFJJTkcgZ2VvbG9jYXRpb24gPSBNV0cuVXJsR2VvbG9jYXRpb24oY3VycmVudFVybClcblxuLy8gR2VvbG9jYXRpb246IFwiICsgZ2VvbG9jYXRpb25cbi8vIENoZWNrIGlmIHRoZSBnZW9sb2NhdGlvbiBpcyBmcm9tIGEgcmVzdHJpY3RlZCBjb3VudHJ5XG5JRiBnZW9sb2NhdGlvbiA9PSBcInJlc3RyaWN0ZWRfY291bnRyeVwiIFRIRU4ge1xuICAgIC8vIEJsb2NrIGFjY2VzcyBpZiB0aGUgZ2VvbG9jYXRpb24gaXMgZnJvbSBhIHJlc3RyaWN0ZWQgY291bnRyeVxuICAgIE1XRy5CbG9jayhcIkFjY2VzcyBmcm9tIHRoaXMgY291bnRyeSBpcyByZXN0cmljdGVkLlwiKVxufSBFTFNFIHtcbiAgICAvLyBBbGxvdyBhY2Nlc3MgaWYgdGhlIGdlb2xvY2F0aW9uIGNoZWNrIHBhc3Nlc1xuICAgIE1XRy5BbGxvdyhcIkdlb2xvY2F0aW9uIGNoZWNrIHBhc3NlZC5cIilcbn0iLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICIvLyBHZXQgdGhlIGN1cnJlbnQgVVJMXG5NV0cuVVJMIGN1cnJlbnRVcmwgPSBNV0cuVXJsKClcblxuLy8gR2V0IHRoZSBnZW9sb2NhdGlvbiBvZiB0aGUgY3VycmVudCBVUkxcblNUUklORyBnZW9sb2NhdGlvbiA9IE1XRy5VcmxHZW9sb2NhdGlvbihjdXJyZW50VXJsKVxuXG4vLyBHZW9sb2NhdGlvbjogXCIgKyBnZW9sb2NhdGlvblxuLy8gQ2hlY2sgaWYgdGhlIGdlb2xvY2F0aW9uIGlzIGZyb20gYSByZXN0cmljdGVkIGNvdW50cnlcbklGIGdlb2xvY2F0aW9uID09IFwicmVzdHJpY3RlZF9jb3VudHJ5XCIgVEhFTiB7XG4gICAgLy8gQmxvY2sgYWNjZXNzIGlmIHRoZSBnZW9sb2NhdGlvbiBpcyBmcm9tIGEgcmVzdHJpY3RlZCBjb3VudHJ5XG4gICAgTVdHLkJsb2NrKFwiQWNjZXNzIGZyb20gdGhpcyBjb3VudHJ5IGlzIHJlc3RyaWN0ZWQuXCIpXG59IEVMU0Uge1xuICAgIC8vIEFsbG93IGFjY2VzcyBpZiB0aGUgZ2VvbG9jYXRpb24gY2hlY2sgcGFzc2VzXG4gICAgTVdHLkFsbG93KFwiR2VvbG9jYXRpb24gY2hlY2sgcGFzc2VkLlwiKVxufSJ9LCB7Im5hbWUiOiAiTVdHLlVybEhhc0hpZ2hSaXNrIChNV0cuSW50ZXJuYWxTZXR0aW5nKSIsICJyZXR1cm5fdHlwZSI6ICJCT09MRUFOIiwgInJldHVybl9kZXNjIjogIlJldHVybnNgVFJVRWBpZiB0aGUgVVJMIGlzIGRldGVybWluZWQgdG8gYmUgb2YgaGlnaCByaXNrIGFjY29yZGluZyB0byBpbnRlcm5hbCBzZXR0aW5ncy4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiTVdHLkludGVybmFsU2V0dGluZzogQ29uZmlndXJhdGlvbiBwYXJhbWV0ZXIgaW5kaWNhdGluZyBpbnRlcm5hbCBzZXR0aW5ncyBmb3IgVVJMIHJpc2sgYXNzZXNzbWVudC4iLCAiZGVzY3JpcHRpb24iOiAiTG9nZ2luZzogUmV0dXJucyAnVFJVRScgaWYgdGhlIFVSTCB5aWVsZHMgaGlnaCByaXNrIiwgImV4YW1wbGVfY29kZSI6ICJNV0cuSW50ZXJuYWxTZXR0aW5nIGludGVybmFsU2V0dGluZyA9IC8vIEluaXRpYWxpemUgd2l0aCBhcHByb3ByaWF0ZSBpbnRlcm5hbCBzZXR0aW5nc1xuXG5JRiBNV0cuVXJsSGFzSGlnaFJpc2soaW50ZXJuYWxTZXR0aW5nKSBUSEVOIHtcbiAgICBNV0cuQmxvY2soXCJBY2Nlc3MgdG8gdGhpcyBVUkwgaXMgYmxvY2tlZCBkdWUgdG8gaGlnaCByaXNrLlwiKVxufSBFTFNFIHtcbiAgICBNV0cuQWxsb3coXCJVUkwgaXMgc2FmZS5cIilcbn0iLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICJNV0cuSW50ZXJuYWxTZXR0aW5nIGludGVybmFsU2V0dGluZyA9IC8vIEluaXRpYWxpemUgd2l0aCBhcHByb3ByaWF0ZSBpbnRlcm5hbCBzZXR0aW5nc1xuXG5JRiBNV0cuVXJsSGFzSGlnaFJpc2soaW50ZXJuYWxTZXR0aW5nKSBUSEVOIHtcbiAgICBNV0cuQmxvY2soXCJBY2Nlc3MgdG8gdGhpcyBVUkwgaXMgYmxvY2tlZCBkdWUgdG8gaGlnaCByaXNrLlwiKVxufSBFTFNFIHtcbiAgICBNV0cuQWxsb3coXCJVUkwgaXMgc2FmZS5cIilcbn0ifSwgeyJuYW1lIjogIk1XRy5VcmxIYXNIaWdoUmlzayAoTVdHLlVybENhdGVnb3JpemF0aW9uU2V0dGluZykiLCAicmV0dXJuX3R5cGUiOiAiQk9PTEVBTiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIGBUUlVFYCBpZiB0aGUgVVJMIGlzIGRldGVybWluZWQgdG8gYmUgb2YgaGlnaCByaXNrIGJhc2VkIG9uIHRoZSBnaXZlbiBjYXRlZ29yaXphdGlvbiBzZXR0aW5ncy4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiTVdHLlVybENhdGVnb3JpemF0aW9uU2V0dGluZzogdGhlIGNvbmZpZ3VyYXRpb24gc2V0dGluZ3MgZm9yIGNhdGVnb3JpemF0aW9uLiIsICJkZXNjcmlwdGlvbiI6ICJSZXR1cm5zICdUUlVFJyBpZiB0aGUgVVJMIHlpZWxkcyBoaWdoIHJpc2siLCAiZXhhbXBsZV9jb2RlIjogIk1XRy5VcmxDYXRlZ29yaXphdGlvblNldHRpbmcgdXJsQ2F0ZWdvcml6YXRpb25TZXR0aW5nID0gTVdHLlVybENhdGVnb3JpemF0aW9uU2V0dGluZygpXG5cbklGIE1XRy5VcmxIYXNIaWdoUmlzayh1cmxDYXRlZ29yaXphdGlvblNldHRpbmcpIFRIRU4ge1xuICAgIE1XRy5CbG9jayhcIkFjY2VzcyB0byBoaWdoLXJpc2sgVVJMcyBpcyBub3QgYWxsb3dlZC5cIilcbn0gRUxTRSB7XG4gICAgTVdHLkFsbG93KFwiVVJMIGlzIG5vdCBoaWdoLXJpc2suXCIpXG59IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiTVdHLlVybENhdGVnb3JpemF0aW9uU2V0dGluZyB1cmxDYXRlZ29yaXphdGlvblNldHRpbmcgPSBNV0cuVXJsQ2F0ZWdvcml6YXRpb25TZXR0aW5nKClcblxuSUYgTVdHLlVybEhhc0hpZ2hSaXNrKHVybENhdGVnb3JpemF0aW9uU2V0dGluZykgVEhFTiB7XG4gICAgTVdHLkJsb2NrKFwiQWNjZXNzIHRvIGhpZ2gtcmlzayBVUkxzIGlzIG5vdCBhbGxvd2VkLlwiKVxufSBFTFNFIHtcbiAgICBNV0cuQWxsb3coXCJVUkwgaXMgbm90IGhpZ2gtcmlzay5cIilcbn0ifSwgeyJuYW1lIjogIk1XRy5VcmxIYXNNZWRpdW1SaXNrIChNV0cuSW50ZXJuYWxTZXR0aW5nKSIsICJyZXR1cm5fdHlwZSI6ICJCT09MRUFOIiwgInJldHVybl9kZXNjIjogIlJldHVybnMgYFRSVUVgIGlmIHRoZSBVUkwgaXMgY2xhc3NpZmllZCBhcyBwb3NpbmcgYSBtZWRpdW0gcmlzay4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiTVdHLkludGVybmFsU2V0dGluZzogdGhlIGNvbmZpZ3VyYXRpb24gc2V0dGluZ3MuIiwgImRlc2NyaXB0aW9uIjogIkxvZ2dpbmc6IFJldHVybnMgJ1RSVUUnIGlmIHRoZSBVUkwgeWllbGRzIG1lZGl1bSByaXNrIiwgImV4YW1wbGVfY29kZSI6ICJNV0cuSW50ZXJuYWxTZXR0aW5nIHNldHRpbmdzID0gLy8gSW5pdGlhbGl6ZSBvciBvYnRhaW4gdGhlIHNldHRpbmdzIGFzIG5lZWRlZFxuXG5JRiBNV0cuVXJsSGFzTWVkaXVtUmlzayhzZXR0aW5ncykgVEhFTiB7XG4gICAgLy8gVGhlIFVSTCBpcyBjbGFzc2lmaWVkIGFzIG1lZGl1bSByaXNrLlxuICAgIE1XRy5CbG9jayhcIkFjY2VzcyBibG9ja2VkIGR1ZSB0byBtZWRpdW0gcmlzayBjbGFzc2lmaWNhdGlvbi5cIilcbn0gRUxTRSB7XG4gICAgLy8gVGhlIFVSTCBpcyBub3QgY2xhc3NpZmllZCBhcyBtZWRpdW0gcmlzay5cbiAgICBNV0cuQWxsb3coXCJVUkwgcGFzc2VkIG1lZGl1bSByaXNrIGNoZWNrLlwiKVxufSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIk1XRy5JbnRlcm5hbFNldHRpbmcgc2V0dGluZ3MgPSAvLyBJbml0aWFsaXplIG9yIG9idGFpbiB0aGUgc2V0dGluZ3MgYXMgbmVlZGVkXG5cbklGIE1XRy5VcmxIYXNNZWRpdW1SaXNrKHNldHRpbmdzKSBUSEVOIHtcbiAgICAvLyBUaGUgVVJMIGlzIGNsYXNzaWZpZWQgYXMgbWVkaXVtIHJpc2suXG4gICAgTVdHLkJsb2NrKFwiQWNjZXNzIGJsb2NrZWQgZHVlIHRvIG1lZGl1bSByaXNrIGNsYXNzaWZpY2F0aW9uLlwiKVxufSBFTFNFIHtcbiAgICAvLyBUaGUgVVJMIGlzIG5vdCBjbGFzc2lmaWVkIGFzIG1lZGl1bSByaXNrLlxuICAgIE1XRy5BbGxvdyhcIlVSTCBwYXNzZWQgbWVkaXVtIHJpc2sgY2hlY2suXCIpXG59In0sIHsibmFtZSI6ICJNV0cuVXJsSGFzTWVkaXVtUmlzayAoTVdHLlVybENhdGVnb3JpemF0aW9uU2V0dGluZykiLCAicmV0dXJuX3R5cGUiOiAiQk9PTEVBTiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIGBUUlVFYCBpZiB0aGUgY2F0ZWdvcml6ZWQgVVJMIGlzIGRldGVybWluZWQgdG8gaGF2ZSBhIG1lZGl1bSBsZXZlbCBvZiByaXNrLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJNV0cuVXJsQ2F0ZWdvcml6YXRpb25TZXR0aW5nOiB0aGUgY29uZmlndXJhdGlvbiBzZXR0aW5ncyBmb3IgY2F0ZWdvcml6YXRpb24uIiwgImRlc2NyaXB0aW9uIjogIlJldHVybnMgJ1RSVUUnIGlmIHRoZSBVUkwgeWllbGRzIG1lZGl1bSByaXNrIiwgImV4YW1wbGVfY29kZSI6ICJNV0cuVXJsQ2F0ZWdvcml6YXRpb25TZXR0aW5nIGNhdGVnb3JpemF0aW9uU2V0dGluZyA9IC8vIEluaXRpYWxpemUgd2l0aCBhcHByb3ByaWF0ZSBzZXR0aW5nc1xuXG5JRiBNV0cuVXJsSGFzTWVkaXVtUmlzayhjYXRlZ29yaXphdGlvblNldHRpbmcpIFRIRU4ge1xuICAgIC8vIFRoZSBVUkwgaGFzIGEgbWVkaXVtIGxldmVsIG9mIHJpc2suXG4gICAgTVdHLkJsb2NrKFwiQWNjZXNzIHRvIHRoaXMgVVJMIGlzIGJsb2NrZWQgZHVlIHRvIG1lZGl1bSByaXNrIGNhdGVnb3JpemF0aW9uLlwiKVxufSBFTFNFIHtcbiAgICAvLyBUaGUgVVJMIGRvZXMgbm90IGhhdmUgYSBtZWRpdW0gbGV2ZWwgb2Ygcmlzay5cbiAgICBNV0cuQWxsb3coXCJVUkwgaXMgc2FmZSB0byBhY2Nlc3MuXCIpXG59IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiTVdHLlVybENhdGVnb3JpemF0aW9uU2V0dGluZyBjYXRlZ29yaXphdGlvblNldHRpbmcgPSAvLyBJbml0aWFsaXplIHdpdGggYXBwcm9wcmlhdGUgc2V0dGluZ3NcblxuSUYgTVdHLlVybEhhc01lZGl1bVJpc2soY2F0ZWdvcml6YXRpb25TZXR0aW5nKSBUSEVOIHtcbiAgICAvLyBUaGUgVVJMIGhhcyBhIG1lZGl1bSBsZXZlbCBvZiByaXNrLlxuICAgIE1XRy5CbG9jayhcIkFjY2VzcyB0byB0aGlzIFVSTCBpcyBibG9ja2VkIGR1ZSB0byBtZWRpdW0gcmlzayBjYXRlZ29yaXphdGlvbi5cIilcbn0gRUxTRSB7XG4gICAgLy8gVGhlIFVSTCBkb2VzIG5vdCBoYXZlIGEgbWVkaXVtIGxldmVsIG9mIHJpc2suXG4gICAgTVdHLkFsbG93KFwiVVJMIGlzIHNhZmUgdG8gYWNjZXNzLlwiKVxufSJ9LCB7Im5hbWUiOiAiTVdHLlVybEhhc01pbmltYWxSaXNrIChNV0cuSW50ZXJuYWxTZXR0aW5nKSIsICJyZXR1cm5fdHlwZSI6ICJCT09MRUFOIiwgInJldHVybl9kZXNjIjogIlJldHVybnMgYFRSVUVgIGlmIHRoZSBhbmFseXplZCBVUkwgcG9zZXMgbWluaW1hbCBzZWN1cml0eSByaXNrLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJNV0cuSW50ZXJuYWxTZXR0aW5nOiB0aGUgY29uZmlndXJhdGlvbiBzZXR0aW5ncy4iLCAiZGVzY3JpcHRpb24iOiAiTG9nZ2luZzogUmV0dXJucyAnVFJVRScgaWYgdGhlIFVSTCB5aWVsZHMgbWluaW1hbCByaXNrIiwgImV4YW1wbGVfY29kZSI6ICJNV0cuSW50ZXJuYWxTZXR0aW5nIHNldHRpbmdzID0gLy8gSW5pdGlhbGl6ZSBvciBvYnRhaW4gdGhlIHNldHRpbmdzIGFzIG5lZWRlZFxuXG5JRiBNV0cuVXJsSGFzTWluaW1hbFJpc2soc2V0dGluZ3MpIFRIRU4ge1xuICAgIC8vIFRoZSBVUkwgcG9zZXMgbWluaW1hbCBzZWN1cml0eSByaXNrLlxuICAgIE1XRy5BbGxvdyhcIk1pbmltYWxSaXNrUnVsZVwiKVxufSBFTFNFIHtcbiAgICAvLyBUaGUgVVJMIHBvc2VzIGEgcG90ZW50aWFsIHNlY3VyaXR5IHJpc2suXG4gICAgTVdHLkJsb2NrKFwiSGlnaFJpc2tVUkxcIilcbn0iLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICJNV0cuSW50ZXJuYWxTZXR0aW5nIHNldHRpbmdzID0gLy8gSW5pdGlhbGl6ZSBvciBvYnRhaW4gdGhlIHNldHRpbmdzIGFzIG5lZWRlZFxuXG5JRiBNV0cuVXJsSGFzTWluaW1hbFJpc2soc2V0dGluZ3MpIFRIRU4ge1xuICAgIC8vIFRoZSBVUkwgcG9zZXMgbWluaW1hbCBzZWN1cml0eSByaXNrLlxuICAgIE1XRy5BbGxvdyhcIk1pbmltYWxSaXNrUnVsZVwiKVxufSBFTFNFIHtcbiAgICAvLyBUaGUgVVJMIHBvc2VzIGEgcG90ZW50aWFsIHNlY3VyaXR5IHJpc2suXG4gICAgTVdHLkJsb2NrKFwiSGlnaFJpc2tVUkxcIilcbn0ifSwgeyJuYW1lIjogIk1XRy5VcmxIYXNNaW5pbWFsUmlzayAoTVdHLlVybENhdGVnb3JpemF0aW9uU2V0dGluZykiLCAicmV0dXJuX3R5cGUiOiAiQk9PTEVBTiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIGBUUlVFYCBpZiB0aGUgVVJMIGlzIGNhdGVnb3JpemVkIGFzIG1pbmltYWwgcmlzay4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiTVdHLlVybENhdGVnb3JpemF0aW9uU2V0dGluZzogdGhlIGNvbmZpZ3VyYXRpb24gc2V0dGluZ3MgZm9yIGNhdGVnb3JpemF0aW9uIG9mIFVSTHMuIiwgImRlc2NyaXB0aW9uIjogIlJldHVybnMgJ1RSVUUnIGlmIHRoZSBVUkwgeWllbGRzIG1pbmltYWwgcmlzayIsICJleGFtcGxlX2NvZGUiOiAiLy8gT2J0YWluIHRoZSBjdXJyZW50IFVSTFxuTVdHLlVSTCBjdXJyZW50VXJsID0gTVdHLlVybCgpXG5cbi8vIEluaXRpYWxpemUgb3Igb2J0YWluIHRoZSBVUkwgY2F0ZWdvcml6YXRpb24gc2V0dGluZ3Ncbk1XRy5VcmxDYXRlZ29yaXphdGlvblNldHRpbmcgY2F0ZWdvcml6YXRpb25TZXR0aW5nID0gLy8gWW91ciBjYXRlZ29yaXphdGlvbiBzZXR0aW5ncyBoZXJlXG5cbi8vIENoZWNrIGlmIHRoZSBVUkwgaGFzIG1pbmltYWwgcmlza1xuSUYgTVdHLlVybEhhc01pbmltYWxSaXNrKGNhdGVnb3JpemF0aW9uU2V0dGluZykgVEhFTiB7XG4gICAgLy8gVVJMIGhhcyBtaW5pbWFsIHJpc2tcbiAgICBNV0cuQWxsb3coXCJNaW5pbWFsUmlza0NoZWNrXCIpXG59IEVMU0Uge1xuICAgIC8vIFVSTCBkb2VzIG5vdCBoYXZlIG1pbmltYWwgcmlza1xuICAgIE1XRy5CbG9jayhcIkhpZ2hSaXNrVVJMXCIpXG59IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiLy8gT2J0YWluIHRoZSBjdXJyZW50IFVSTFxuTVdHLlVSTCBjdXJyZW50VXJsID0gTVdHLlVybCgpXG5cbi8vIEluaXRpYWxpemUgb3Igb2J0YWluIHRoZSBVUkwgY2F0ZWdvcml6YXRpb24gc2V0dGluZ3Ncbk1XRy5VcmxDYXRlZ29yaXphdGlvblNldHRpbmcgY2F0ZWdvcml6YXRpb25TZXR0aW5nID0gLy8gWW91ciBjYXRlZ29yaXphdGlvbiBzZXR0aW5ncyBoZXJlXG5cbi8vIENoZWNrIGlmIHRoZSBVUkwgaGFzIG1pbmltYWwgcmlza1xuSUYgTVdHLlVybEhhc01pbmltYWxSaXNrKGNhdGVnb3JpemF0aW9uU2V0dGluZykgVEhFTiB7XG4gICAgLy8gVVJMIGhhcyBtaW5pbWFsIHJpc2tcbiAgICBNV0cuQWxsb3coXCJNaW5pbWFsUmlza0NoZWNrXCIpXG59IEVMU0Uge1xuICAgIC8vIFVSTCBkb2VzIG5vdCBoYXZlIG1pbmltYWwgcmlza1xuICAgIE1XRy5CbG9jayhcIkhpZ2hSaXNrVVJMXCIpXG59In0sIHsibmFtZSI6ICJNV0cuVXJsSGFzVW52ZXJpZmllZFJpc2sgKE1XRy5JbnRlcm5hbFNldHRpbmcpIiwgInJldHVybl90eXBlIjogIkJPT0xFQU4iLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyBgVFJVRWAgaWYgdGhlIFVSTCBpcyBjb25zaWRlcmVkIHRvIGhhdmUgYW4gdW52ZXJpZmllZCByaXNrLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJNV0cuSW50ZXJuYWxTZXR0aW5nOiBDb25maWd1cmF0aW9uIHBhcmFtZXRlciB1c2VkIHdpdGhpbiB0aGUgZnVuY3Rpb24uIiwgImRlc2NyaXB0aW9uIjogIkxvZ2dpbmc6IFJldHVybnMgJ1RSVUUnIGlmIHRoZSBVUkwgeWllbGRzIHVudmVyaWZpZWQgcmlzayIsICJleGFtcGxlX2NvZGUiOiAiTVdHLkludGVybmFsU2V0dGluZyByaXNrU2V0dGluZyA9IC8vIEluaXRpYWxpemUgb3Igb2J0YWluIHRoZSBhcHByb3ByaWF0ZSBNV0cuSW50ZXJuYWxTZXR0aW5nXG5cbklGIE1XRy5VcmxIYXNVbnZlcmlmaWVkUmlzayhyaXNrU2V0dGluZykgVEhFTiB7XG4gICAgLy8gVGhlIFVSTCBoYXMgYW4gdW52ZXJpZmllZCByaXNrLlxuICAgIE1XRy5CbG9jayhcIkFjY2VzcyB0byB0aGlzIFVSTCBpcyBibG9ja2VkIGR1ZSB0byB1bnZlcmlmaWVkIHJpc2suXCIpXG59IEVMU0Uge1xuICAgIC8vIFRoZSBVUkwgZG9lcyBub3QgaGF2ZSBhbiB1bnZlcmlmaWVkIHJpc2suXG4gICAgTVdHLkFsbG93KFwiVVJMIGlzIHNhZmVcIilcbn0iLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICJNV0cuSW50ZXJuYWxTZXR0aW5nIHJpc2tTZXR0aW5nID0gLy8gSW5pdGlhbGl6ZSBvciBvYnRhaW4gdGhlIGFwcHJvcHJpYXRlIE1XRy5JbnRlcm5hbFNldHRpbmdcblxuSUYgTVdHLlVybEhhc1VudmVyaWZpZWRSaXNrKHJpc2tTZXR0aW5nKSBUSEVOIHtcbiAgICAvLyBUaGUgVVJMIGhhcyBhbiB1bnZlcmlmaWVkIHJpc2suXG4gICAgTVdHLkJsb2NrKFwiQWNjZXNzIHRvIHRoaXMgVVJMIGlzIGJsb2NrZWQgZHVlIHRvIHVudmVyaWZpZWQgcmlzay5cIilcbn0gRUxTRSB7XG4gICAgLy8gVGhlIFVSTCBkb2VzIG5vdCBoYXZlIGFuIHVudmVyaWZpZWQgcmlzay5cbiAgICBNV0cuQWxsb3coXCJVUkwgaXMgc2FmZVwiKVxufSJ9LCB7Im5hbWUiOiAiTVdHLlVybEhhc1VudmVyaWZpZWRSaXNrIChNV0cuVXJsQ2F0ZWdvcml6YXRpb25TZXR0aW5nKSIsICJyZXR1cm5fdHlwZSI6ICJCT09MRUFOIiwgInJldHVybl9kZXNjIjogIlJldHVybnNgVFJVRWBpZiB0aGUgVVJMIGhhcyBhbiB1bnZlcmlmaWVkIHJpc2sgYWNjb3JkaW5nIHRvIHRoZSBnaXZlbiBjYXRlZ29yaXphdGlvbiBzZXR0aW5nLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJNV0cuVXJsQ2F0ZWdvcml6YXRpb25TZXR0aW5nOiB0aGUgY29uZmlndXJhdGlvbiBzZXR0aW5ncyBmb3IgY2F0ZWdvcml6YXRpb24uIiwgImRlc2NyaXB0aW9uIjogIlJldHVybnMgVFJVRSBpZiB0aGUgVVJMIHlpZWxkcyB1bnZlcmlmaWVkIHJpc2siLCAiZXhhbXBsZV9jb2RlIjogIi8vIE9idGFpbiB0aGUgY3VycmVudCBVUkxcbk1XRy5VUkwgY3VycmVudFVybCA9IE1XRy5VcmwoKVxuXG4vLyBJbml0aWFsaXplIHRoZSBVUkwgY2F0ZWdvcml6YXRpb24gc2V0dGluZ1xuTVdHLlVybENhdGVnb3JpemF0aW9uU2V0dGluZyBjYXRlZ29yaXphdGlvblNldHRpbmcgPSAvLyBJbml0aWFsaXplIG9yIG9idGFpbiB0aGUgY2F0ZWdvcml6YXRpb24gc2V0dGluZ1xuXG4vLyBDaGVjayBpZiB0aGUgVVJMIGhhcyBhbiB1bnZlcmlmaWVkIHJpc2tcbkJPT0xFQU4gaGFzVW52ZXJpZmllZFJpc2sgPSBNV0cuVXJsSGFzVW52ZXJpZmllZFJpc2soY2F0ZWdvcml6YXRpb25TZXR0aW5nKVxuXG4vLyBUYWtlIGFjdGlvbiBiYXNlZCBvbiB0aGUgcmlzayBzdGF0dXNcbklGIGhhc1VudmVyaWZpZWRSaXNrIFRIRU4ge1xuICAgIC8vIFRoZSBVUkwgaGFzIHVudmVyaWZpZWQgcmlzay5cbiAgICBNV0cuQmxvY2soXCJBY2Nlc3MgdG8gdGhpcyBVUkwgaXMgYmxvY2tlZCBkdWUgdG8gdW52ZXJpZmllZCByaXNrLlwiKVxufSBFTFNFIHtcbiAgICAvLyBUaGUgVVJMIGlzIHNhZmUuXG4gICAgTVdHLkFsbG93KFwiVVJMIGlzIHNhZmVcIilcbn0iLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICIvLyBPYnRhaW4gdGhlIGN1cnJlbnQgVVJMXG5NV0cuVVJMIGN1cnJlbnRVcmwgPSBNV0cuVXJsKClcblxuLy8gSW5pdGlhbGl6ZSB0aGUgVVJMIGNhdGVnb3JpemF0aW9uIHNldHRpbmdcbk1XRy5VcmxDYXRlZ29yaXphdGlvblNldHRpbmcgY2F0ZWdvcml6YXRpb25TZXR0aW5nID0gLy8gSW5pdGlhbGl6ZSBvciBvYnRhaW4gdGhlIGNhdGVnb3JpemF0aW9uIHNldHRpbmdcblxuLy8gQ2hlY2sgaWYgdGhlIFVSTCBoYXMgYW4gdW52ZXJpZmllZCByaXNrXG5CT09MRUFOIGhhc1VudmVyaWZpZWRSaXNrID0gTVdHLlVybEhhc1VudmVyaWZpZWRSaXNrKGNhdGVnb3JpemF0aW9uU2V0dGluZylcblxuLy8gVGFrZSBhY3Rpb24gYmFzZWQgb24gdGhlIHJpc2sgc3RhdHVzXG5JRiBoYXNVbnZlcmlmaWVkUmlzayBUSEVOIHtcbiAgICAvLyBUaGUgVVJMIGhhcyB1bnZlcmlmaWVkIHJpc2suXG4gICAgTVdHLkJsb2NrKFwiQWNjZXNzIHRvIHRoaXMgVVJMIGlzIGJsb2NrZWQgZHVlIHRvIHVudmVyaWZpZWQgcmlzay5cIilcbn0gRUxTRSB7XG4gICAgLy8gVGhlIFVSTCBpcyBzYWZlLlxuICAgIE1XRy5BbGxvdyhcIlVSTCBpcyBzYWZlXCIpXG59In0sIHsibmFtZSI6ICJNV0cuVVJMUmVwdXRhdGlvbiAoTVdHLkludGVybmFsU2V0dGluZykiLCAicmV0dXJuX3R5cGUiOiAiTlVNQkVSIiwgInJldHVybl9kZXNjIjogIlJldHVybnMgdGhlIEdUSSByZXB1dGF0aW9uIHNjb3JlIG9mIHRoZSBnaXZlbiBVUkwgYXMgYSBudW1lcmljYWwgdmFsdWUuIiwgInBhcmFtZXRlcl9kZXNjIjogIk1XRy5JbnRlcm5hbFNldHRpbmc6IEEgY29uZmlndXJhdGlvbiBwYXJhbWV0ZXIgdXNlZCB0byBjdXN0b21pemUgdGhlIGJlaGF2aW9yIG9mIHRoZSBVUkwgcmVwdXRhdGlvbiBjaGVjay4iLCAiZGVzY3JpcHRpb24iOiAiTG9nZ2luZzogUmV0dXJuIEdUSSByZXB1dGF0aW9uIG9mIHRoZSBVUkwiLCAiZXhhbXBsZV9jb2RlIjogIk1XRy5VUkwgY3VycmVudFVybCA9IE1XRy5VcmwoKVxuTVdHLlVybENhdGVnb3JpemF0aW9uU2V0dGluZyB1cmxDYXRlZ29yeSA9IGN1cnJlbnRVcmwuR2V0Q2F0ZWdvcml6YXRpb24oKVxuXG5JRiB1cmxDYXRlZ29yeS5Jc01hbGljaW91cygpIFRIRU4ge1xuICAgIE1XRy5CbG9jayhcIkFjY2VzcyB0byBtYWxpY2lvdXMgc2l0ZXMgaXMgYmxvY2tlZC5cIilcbn0gRUxTRSB7XG4gICAgTVdHLkFsbG93KFwiVVJMIGlzIHNhZmUuXCIpXG59IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiTVdHLlVSTCBjdXJyZW50VXJsID0gTVdHLlVybCgpXG5NV0cuVXJsQ2F0ZWdvcml6YXRpb25TZXR0aW5nIHVybENhdGVnb3J5ID0gY3VycmVudFVybC5HZXRDYXRlZ29yaXphdGlvbigpXG5cbklGIHVybENhdGVnb3J5LklzTWFsaWNpb3VzKCkgVEhFTiB7XG4gICAgTVdHLkJsb2NrKFwiQWNjZXNzIHRvIG1hbGljaW91cyBzaXRlcyBpcyBibG9ja2VkLlwiKVxufSBFTFNFIHtcbiAgICBNV0cuQWxsb3coXCJVUkwgaXMgc2FmZS5cIilcbn0ifSwgeyJuYW1lIjogIk1XRy5VUkxSZXB1dGF0aW9uIChNV0cuVXJsQ2F0ZWdvcml6YXRpb25TZXR0aW5nKSIsICJyZXR1cm5fdHlwZSI6ICJOVU1CRVIiLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyBhIG51bWVyaWNhbCBzY29yZSByZXByZXNlbnRpbmcgdGhlIEdUSSByZXB1dGF0aW9uIG9mIHRoZSBnaXZlbiBVUkwuIiwgInBhcmFtZXRlcl9kZXNjIjogIk1XRy5VcmxDYXRlZ29yaXphdGlvblNldHRpbmc6IHRoZSBjb25maWd1cmF0aW9uIHNldHRpbmdzIGZvciBjYXRlZ29yaXphdGlvbi4iLCAiZGVzY3JpcHRpb24iOiAiUmV0dXJuIEdUSSByZXB1dGF0aW9uIG9mIHRoZSBVUkwiLCAiZXhhbXBsZV9jb2RlIjogIk1XRy5VcmxDYXRlZ29yaXphdGlvblNldHRpbmcgY2F0ZWdvcml6YXRpb25TZXR0aW5nID0gLy8gSW5pdGlhbGl6ZSB5b3VyIGNhdGVnb3JpemF0aW9uIHNldHRpbmdzIGhlcmVcbk1XRy5VUkwgY3VycmVudFVybCA9IE1XRy5VcmwoKVxuU1RSSU5HIHVybFN0cmluZyA9IGN1cnJlbnRVcmwuVG9TdHJpbmcoKVxuXG5OVU1CRVIgcmVwdXRhdGlvblNjb3JlID0gTVdHLlVSTFJlcHV0YXRpb24oY2F0ZWdvcml6YXRpb25TZXR0aW5nLCB1cmxTdHJpbmcpXG5cbklGIHJlcHV0YXRpb25TY29yZSA+IDUwIFRIRU4ge1xuICAgIE1XRy5CbG9jayhcIlVSTCBoYXMgYSBoaWdoIHJpc2sgcmVwdXRhdGlvblwiKVxufSBFTFNFIHtcbiAgICBNV0cuQWxsb3coXCJVUkwgaXMgc2FmZVwiKVxufSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIk1XRy5VcmxDYXRlZ29yaXphdGlvblNldHRpbmcgY2F0ZWdvcml6YXRpb25TZXR0aW5nID0gLy8gSW5pdGlhbGl6ZSB5b3VyIGNhdGVnb3JpemF0aW9uIHNldHRpbmdzIGhlcmVcbk1XRy5VUkwgY3VycmVudFVybCA9IE1XRy5VcmwoKVxuU1RSSU5HIHVybFN0cmluZyA9IGN1cnJlbnRVcmwuVG9TdHJpbmcoKVxuXG5OVU1CRVIgcmVwdXRhdGlvblNjb3JlID0gTVdHLlVSTFJlcHV0YXRpb24oY2F0ZWdvcml6YXRpb25TZXR0aW5nLCB1cmxTdHJpbmcpXG5cbklGIHJlcHV0YXRpb25TY29yZSA+IDUwIFRIRU4ge1xuICAgIE1XRy5CbG9jayhcIlVSTCBoYXMgYSBoaWdoIHJpc2sgcmVwdXRhdGlvblwiKVxufSBFTFNFIHtcbiAgICBNV0cuQWxsb3coXCJVUkwgaXMgc2FmZVwiKVxufSJ9LCB7Im5hbWUiOiAiTVdHLlVSTFJlcHV0YXRpb24gKE1XRy5VcmxDYXRlZ29yaXphdGlvblNldHRpbmcsIFNUUklORykiLCAicmV0dXJuX3R5cGUiOiAiTlVNQkVSIiwgInJldHVybl9kZXNjIjogIlJldHVybnMgYSBudW1lcmljIHZhbHVlIGluZGljYXRpbmcgdGhlIHJpc2sgbGV2ZWwgb2YgYSBnaXZlbiBVUkwsIHJhbmdpbmcgZnJvbSAtMTI3IChNaW5pbWFsIFJpc2spIHRvIDEyNyAoSGlnaCBSaXNrKS4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiTVdHLlVybENhdGVnb3JpemF0aW9uU2V0dGluZzogdGhlIGNvbmZpZ3VyYXRpb24gc2V0dGluZ3MgZm9yIGNhdGVnb3JpemF0aW9uOyBTVFJJTkc6IHRoZSBVUkwgd2hvc2UgcmVwdXRhdGlvbiBpcyBiZWluZyBjaGVja2VkLiIsICJkZXNjcmlwdGlvbiI6ICJSZXR1cm5zIHRoZSByZXB1dGF0aW9uIHZhbHVlIGZvciB0aGUgZ2l2ZW4gVVJMLiBSYW5nZSBpcyBmcm9tIC0xMjcgdG8gMTI3LCB3aGVyZSAtMTI3IG1lYW5zICdNaW5pbWFsIFJpc2snIGFuZCAxMjcgbWVhbnMgJ0hpZ2ggUmlzayciLCAiZXhhbXBsZV9jb2RlIjogIk1XRy5VcmxDYXRlZ29yaXphdGlvblNldHRpbmcgdXJsQ2F0ZWdvcml6YXRpb25TZXR0aW5nID0gTVdHLlVybENhdGVnb3JpemF0aW9uU2V0dGluZygpXG5NV0cuVVJMIGN1cnJlbnRVcmwgPSBNV0cuVXJsKClcblNUUklORyB1cmxDYXRlZ29yeSA9IHVybENhdGVnb3JpemF0aW9uU2V0dGluZy5HZXRDYXRlZ29yeShjdXJyZW50VXJsKVxuXG5JRiB1cmxDYXRlZ29yeSA9PSBcIk1hbGljaW91c1wiIFRIRU4ge1xuICAgIE1XRy5CbG9jayhcIkFjY2VzcyB0byBtYWxpY2lvdXMgc2l0ZXMgaXMgYmxvY2tlZC5cIilcbn0gRUxTRSB7XG4gICAgTVdHLkFsbG93KFwiVVJMIGlzIHNhZmUuXCIpXG59IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiTVdHLlVybENhdGVnb3JpemF0aW9uU2V0dGluZyB1cmxDYXRlZ29yaXphdGlvblNldHRpbmcgPSBNV0cuVXJsQ2F0ZWdvcml6YXRpb25TZXR0aW5nKClcbk1XRy5VUkwgY3VycmVudFVybCA9IE1XRy5VcmwoKVxuU1RSSU5HIHVybENhdGVnb3J5ID0gdXJsQ2F0ZWdvcml6YXRpb25TZXR0aW5nLkdldENhdGVnb3J5KGN1cnJlbnRVcmwpXG5cbklGIHVybENhdGVnb3J5ID09IFwiTWFsaWNpb3VzXCIgVEhFTiB7XG4gICAgTVdHLkJsb2NrKFwiQWNjZXNzIHRvIG1hbGljaW91cyBzaXRlcyBpcyBibG9ja2VkLlwiKVxufSBFTFNFIHtcbiAgICBNV0cuQWxsb3coXCJVUkwgaXMgc2FmZS5cIilcbn0ifSwgeyJuYW1lIjogIk1XRy5VUkxSZXB1dGF0aW9uU1RSSU5HIChNV0cuSW50ZXJuYWxTZXR0aW5nKSIsICJyZXR1cm5fdHlwZSI6ICJTVFJJTkciLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyB0aGUgR1RJIHJlcHV0YXRpb24gb2YgdGhlIFVSTCBpbiBzdHJpbmcgZm9ybWF0LiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJNV0cuSW50ZXJuYWxTZXR0aW5nOiB0aGUgY29uZmlndXJhdGlvbiBzZXR0aW5ncy4iLCAiZGVzY3JpcHRpb24iOiAiTG9nZ2luZzogUmV0dXJuIEdUSSByZXB1dGF0aW9uIG9mIHRoZSBVUkwgYXMgU1RSSU5HIiwgImV4YW1wbGVfY29kZSI6ICJNV0cuVVJMIGN1cnJlbnRVcmwgPSBNV0cuVXJsKClcblNUUklORyB1cmxSZXB1dGF0aW9uID0gY3VycmVudFVybC5SZXB1dGF0aW9uU3RyaW5nKClcblxuSUYgdXJsUmVwdXRhdGlvbiA9PSBcIk1hbGljaW91c1wiIFRIRU4ge1xuICAgIE1XRy5CbG9jayhcIkFjY2VzcyB0byBtYWxpY2lvdXMgc2l0ZSBibG9ja2VkXCIpXG59IEVMU0Uge1xuICAgIE1XRy5BbGxvdyhcIlVSTCBpcyBzYWZlXCIpXG59IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiTVdHLlVSTCBjdXJyZW50VXJsID0gTVdHLlVybCgpXG5TVFJJTkcgdXJsUmVwdXRhdGlvbiA9IGN1cnJlbnRVcmwuUmVwdXRhdGlvblN0cmluZygpXG5cbklGIHVybFJlcHV0YXRpb24gPT0gXCJNYWxpY2lvdXNcIiBUSEVOIHtcbiAgICBNV0cuQmxvY2soXCJBY2Nlc3MgdG8gbWFsaWNpb3VzIHNpdGUgYmxvY2tlZFwiKVxufSBFTFNFIHtcbiAgICBNV0cuQWxsb3coXCJVUkwgaXMgc2FmZVwiKVxufSJ9LCB7Im5hbWUiOiAiTVdHLlVSTFJlcHV0YXRpb25TVFJJTkcgKE1XRy5VcmxDYXRlZ29yaXphdGlvblNldHRpbmcpIiwgInJldHVybl90eXBlIjogIlNUUklORyIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIHRoZSBHVEkgcmVwdXRhdGlvbiBzY29yZSBvZiB0aGUgc3BlY2lmaWVkIFVSTCBhcyBhIHN0cmluZy4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiTVdHLlVybENhdGVnb3JpemF0aW9uU2V0dGluZzogVGhlIHNldHRpbmdzIHRoYXQgZGVmaW5lIGhvdyB0aGUgVVJMIGNhdGVnb3JpemF0aW9uIHNob3VsZCBiZSBldmFsdWF0ZWQuIiwgImRlc2NyaXB0aW9uIjogIlJldHVybiBHVEkgcmVwdXRhdGlvbiBvZiB0aGUgVVJMIGFzIFNUUklORyIsICJleGFtcGxlX2NvZGUiOiAiTVdHLlVybENhdGVnb3JpemF0aW9uU2V0dGluZyBjYXRlZ29yaXphdGlvblNldHRpbmcgPSBNV0cuVXJsQ2F0ZWdvcml6YXRpb25TZXR0aW5nKClcbk1XRy5VUkwgY3VycmVudFVybCA9IE1XRy5VcmwoKVxuU1RSSU5HIHVybFJlcHV0YXRpb24gPSBNV0cuVVJMUmVwdXRhdGlvblN0cmluZyhjYXRlZ29yaXphdGlvblNldHRpbmcsIGN1cnJlbnRVcmwpXG5cbklGIHVybFJlcHV0YXRpb24gPT0gXCJIaWdoIFJpc2tcIiBUSEVOIHtcbiAgICBNV0cuQmxvY2soXCJBY2Nlc3MgdG8gdGhpcyBVUkwgaXMgYmxvY2tlZCBkdWUgdG8gaGlnaCByaXNrIHJlcHV0YXRpb24uXCIpXG59IEVMU0Uge1xuICAgIE1XRy5BbGxvdyhcIlVSTCByZXB1dGF0aW9uIGlzIGFjY2VwdGFibGUuXCIpXG59IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiTVdHLlVybENhdGVnb3JpemF0aW9uU2V0dGluZyBjYXRlZ29yaXphdGlvblNldHRpbmcgPSBNV0cuVXJsQ2F0ZWdvcml6YXRpb25TZXR0aW5nKClcbk1XRy5VUkwgY3VycmVudFVybCA9IE1XRy5VcmwoKVxuU1RSSU5HIHVybFJlcHV0YXRpb24gPSBNV0cuVVJMUmVwdXRhdGlvblN0cmluZyhjYXRlZ29yaXphdGlvblNldHRpbmcsIGN1cnJlbnRVcmwpXG5cbklGIHVybFJlcHV0YXRpb24gPT0gXCJIaWdoIFJpc2tcIiBUSEVOIHtcbiAgICBNV0cuQmxvY2soXCJBY2Nlc3MgdG8gdGhpcyBVUkwgaXMgYmxvY2tlZCBkdWUgdG8gaGlnaCByaXNrIHJlcHV0YXRpb24uXCIpXG59IEVMU0Uge1xuICAgIE1XRy5BbGxvdyhcIlVSTCByZXB1dGF0aW9uIGlzIGFjY2VwdGFibGUuXCIpXG59In0sIHsibmFtZSI6ICJNV0cuVVJMUmVwdXRhdGlvblNUUklORyAoTVdHLlVybENhdGVnb3JpemF0aW9uU2V0dGluZywgU1RSSU5HKSIsICJyZXR1cm5fdHlwZSI6ICJTVFJJTkciLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyB0aGUgR1RJIHJlcHV0YXRpb24gb2YgdGhlIHNwZWNpZmllZCBVUkwgYXMgYSBzdHJpbmcsIGluZGljYXRpbmcgZWl0aGVyICdNaW5pbWFsIFJpc2snLCAnVW52ZXJpZmllZCcsICdNZWRpdW0gUmlzaycsIG9yICdIaWdoIFJpc2snLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJNV0cuVXJsQ2F0ZWdvcml6YXRpb25TZXR0aW5nOiB0aGUgY29uZmlndXJhdGlvbiBzZXR0aW5ncyBmb3IgY2F0ZWdvcml6YXRpb247IFNUUklORzogdGhlIFVSTCB0byBiZSBldmFsdWF0ZWQgZm9yIHJlcHV0YXRpb24uIiwgImRlc2NyaXB0aW9uIjogIlJldHVybiBHVEkgcmVwdXRhdGlvbiBmb3IgdGhlIGdpdmVuIFVSTCBhcyBTVFJJTkcuIFJlc3VsdCBpcyAnTWluaW1hbCBSaXNrJywgJ1VudmVyaWZpZWQnLCAnTWVkaXVtIFJpc2snLCBvciAnSGlnaCBSaXNrJyIsICJleGFtcGxlX2NvZGUiOiAiLy8gQXNzdW1lIHdlIGhhdmUgYSBVUkwgY2F0ZWdvcml6YXRpb24gc2V0dGluZyBvYmplY3Rcbk1XRy5VcmxDYXRlZ29yaXphdGlvblNldHRpbmcgdXJsQ2F0ZWdvcml6YXRpb25TZXR0aW5nID0gLi4uIC8vIEluaXRpYWxpemUgdGhpcyB3aXRoIHRoZSBhcHByb3ByaWF0ZSBzZXR0aW5nXG5cbi8vIFRoZSBVUkwgdG8gY2hlY2tcblNUUklORyB1cmxUb0NoZWNrID0gTVdHLlVybCgpLlRvU3RyaW5nKClcblxuLy8gR2V0IHRoZSBVUkwgcmVwdXRhdGlvbiBzdHJpbmdcblNUUklORyByZXB1dGF0aW9uID0gTVdHLlVSTFJlcHV0YXRpb25TdHJpbmcodXJsQ2F0ZWdvcml6YXRpb25TZXR0aW5nLCB1cmxUb0NoZWNrKVxuXG4vLyBVUkwgUmVwdXRhdGlvbjogcmVwdXRhdGlvblxuXG4vLyBUYWtlIGFjdGlvbiBiYXNlZCBvbiB0aGUgcmVwdXRhdGlvblxuSUYgcmVwdXRhdGlvbiA9PSBcIkhpZ2ggUmlza1wiIFRIRU4ge1xuICAgIE1XRy5CbG9jayhcIkFjY2VzcyB0byB0aGlzIFVSTCBpcyBibG9ja2VkIGR1ZSB0byBoaWdoIHJpc2sgcmVwdXRhdGlvbi5cIilcbn0gRUxTRSB7XG4gICAgTVdHLkFsbG93KFwiVVJMIHJlcHV0YXRpb24gY2hlY2sgcGFzc2VkLlwiKVxufSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIi8vIEFzc3VtZSB3ZSBoYXZlIGEgVVJMIGNhdGVnb3JpemF0aW9uIHNldHRpbmcgb2JqZWN0XG5NV0cuVXJsQ2F0ZWdvcml6YXRpb25TZXR0aW5nIHVybENhdGVnb3JpemF0aW9uU2V0dGluZyA9IC4uLiAvLyBJbml0aWFsaXplIHRoaXMgd2l0aCB0aGUgYXBwcm9wcmlhdGUgc2V0dGluZ1xuXG4vLyBUaGUgVVJMIHRvIGNoZWNrXG5TVFJJTkcgdXJsVG9DaGVjayA9IE1XRy5VcmwoKS5Ub1N0cmluZygpXG5cbi8vIEdldCB0aGUgVVJMIHJlcHV0YXRpb24gc3RyaW5nXG5TVFJJTkcgcmVwdXRhdGlvbiA9IE1XRy5VUkxSZXB1dGF0aW9uU3RyaW5nKHVybENhdGVnb3JpemF0aW9uU2V0dGluZywgdXJsVG9DaGVjaylcblxuLy8gVVJMIFJlcHV0YXRpb246IHJlcHV0YXRpb25cblxuLy8gVGFrZSBhY3Rpb24gYmFzZWQgb24gdGhlIHJlcHV0YXRpb25cbklGIHJlcHV0YXRpb24gPT0gXCJIaWdoIFJpc2tcIiBUSEVOIHtcbiAgICBNV0cuQmxvY2soXCJBY2Nlc3MgdG8gdGhpcyBVUkwgaXMgYmxvY2tlZCBkdWUgdG8gaGlnaCByaXNrIHJlcHV0YXRpb24uXCIpXG59IEVMU0Uge1xuICAgIE1XRy5BbGxvdyhcIlVSTCByZXB1dGF0aW9uIGNoZWNrIHBhc3NlZC5cIilcbn0ifSwgeyJuYW1lIjogIk1XRy5Vc2VyRGVmaW5lZEluaXREb25lICgpIiwgInJldHVybl90eXBlIjogIkJPT0xFQU4iLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJuc2BUUlVFYGlmIHRoZSB1c2VyLWRlZmluZWQgaW5pdGlhbGl6YXRpb24gaXMgZG9uZS4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiTm9uZSIsICJkZXNjcmlwdGlvbiI6ICJDaGVjayBpZiB1c2VyLWRlZmluZWQgaW5pdGlhbGl6YXRpb24gaXMgZG9uZS4iLCAiZXhhbXBsZV9jb2RlIjogIi8vIEluaXRpYWxpemUgc29tZSB1c2VyLWRlZmluZWQgc2V0dGluZ3NcblZFQ1RPUjxTVFJJTkc+IHVzZXJTZXR0aW5ncyA9IFwic2V0dGluZzFcIiwgXCJzZXR0aW5nMlwiLCBcInNldHRpbmczXCJcblxuLy8gUGVyZm9ybSBzb21lIG9wZXJhdGlvbnMgd2l0aCB0aGUgc2V0dGluZ3NcbkZPUiBFQUNIIHNldHRpbmcgSU4gdXNlclNldHRpbmdzIHtcbiAgICAvLyBJbml0aWFsaXppbmc6IFwiICsgc2V0dGluZ1xuICAgIC8vIEFkZCB5b3VyIGluaXRpYWxpemF0aW9uIGxvZ2ljIGhlcmVcbn1cblxuLy8gTWFyayB0aGUgdXNlci1kZWZpbmVkIGluaXRpYWxpemF0aW9uIGFzIGRvbmVcbk1XRy5TZXRVc2VyRGVmaW5lZEluaXREb25lKClcblxuLy8gVXNlci1kZWZpbmVkIGluaXRpYWxpemF0aW9uIGNvbXBsZXRlZC4iLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICIvLyBJbml0aWFsaXplIHNvbWUgdXNlci1kZWZpbmVkIHNldHRpbmdzXG5WRUNUT1I8U1RSSU5HPiB1c2VyU2V0dGluZ3MgPSBcInNldHRpbmcxXCIsIFwic2V0dGluZzJcIiwgXCJzZXR0aW5nM1wiXG5cbi8vIFBlcmZvcm0gc29tZSBvcGVyYXRpb25zIHdpdGggdGhlIHNldHRpbmdzXG5GT1IgRUFDSCBzZXR0aW5nIElOIHVzZXJTZXR0aW5ncyB7XG4gICAgLy8gSW5pdGlhbGl6aW5nOiBcIiArIHNldHRpbmdcbiAgICAvLyBBZGQgeW91ciBpbml0aWFsaXphdGlvbiBsb2dpYyBoZXJlXG59XG5cbi8vIE1hcmsgdGhlIHVzZXItZGVmaW5lZCBpbml0aWFsaXphdGlvbiBhcyBkb25lXG5NV0cuU2V0VXNlckRlZmluZWRJbml0RG9uZSgpXG5cbi8vIFVzZXItZGVmaW5lZCBpbml0aWFsaXphdGlvbiBjb21wbGV0ZWQuIn0sIHsibmFtZSI6ICJNV0cuVXNlckRlZmluZWRWYXIgKFNUUklORykiLCAicmV0dXJuX3R5cGUiOiAiTVdHLkludGVybmFsVmFyaWFudCIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIHRoZSB2YWx1ZSBvZiBhIHVzZXItZGVmaW5lZCB2YXJpYWJsZSBhcyBhbiBpbnRlcm5hbCB2YXJpYW50IHR5cGUuIiwgInBhcmFtZXRlcl9kZXNjIjogIlNUUklORzogdGhlIG5hbWUgb2YgdGhlIHVzZXItZGVmaW5lZCB2YXJpYWJsZSB0byByZXRyaWV2ZS4iLCAiZGVzY3JpcHRpb24iOiAiR2V0IGEgdXNlciBkZWZpbmVkIHZhcmlhYmxlIiwgImV4YW1wbGVfY29kZSI6ICJTVFJJTkcgdmFyaWFibGVOYW1lID0gXCJleGFtcGxlVmFyXCJcblNUUklORyB2YXJpYWJsZVZhbHVlID0gXCJleGFtcGxlVmFsdWVcIlxuXG5NV0cuU2V0VXNlckRlZmluZWRWYXIodmFyaWFibGVOYW1lLCB2YXJpYWJsZVZhbHVlKVxuXG4vLyBVc2VyLWRlZmluZWQgdmFyaWFibGUgc2V0OiBleGFtcGxlVmFyID0gZXhhbXBsZVZhbHVlIiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiU1RSSU5HIHZhcmlhYmxlTmFtZSA9IFwiZXhhbXBsZVZhclwiXG5TVFJJTkcgdmFyaWFibGVWYWx1ZSA9IFwiZXhhbXBsZVZhbHVlXCJcblxuTVdHLlNldFVzZXJEZWZpbmVkVmFyKHZhcmlhYmxlTmFtZSwgdmFyaWFibGVWYWx1ZSlcblxuLy8gVXNlci1kZWZpbmVkIHZhcmlhYmxlIHNldDogZXhhbXBsZVZhciA9IGV4YW1wbGVWYWx1ZSJ9LCB7Im5hbWUiOiAiTVdHLlVzZXJHcm91cHMgKCkiLCAicmV0dXJuX3R5cGUiOiAiVkVDVE9SPFNUUklORz4iLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyBhdXRoZW50aWNhdGlvbiB1c2VyIGdyb3Vwcy4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiTm9uZSIsICJkZXNjcmlwdGlvbiI6ICJSZXR1cm5zIGF1dGhlbnRpY2F0aW9uIHVzZXIgZ3JvdXBzIiwgImV4YW1wbGVfY29kZSI6ICJWRUNUT1I8U1RSSU5HPiB1c2VyR3JvdXBzID0gTVdHLlVzZXJHcm91cHMoKVxuXG5JRiBcImFkbWluXCIgSU4gdXNlckdyb3VwcyBUSEVOIHtcbiAgICAvLyBVc2VyIGlzIGluIHRoZSBhZG1pbiBncm91cFxuICAgIE1XRy5BbGxvdyhcIlVzZXIgaXMgYWRtaW5cIilcbn0gRUxTRSB7XG4gICAgLy8gVXNlciBpcyBub3QgaW4gdGhlIGFkbWluIGdyb3VwXG4gICAgTVdHLkJsb2NrKFwiQWNjZXNzIGRlbmllZDogVXNlciBpcyBub3QgYW4gYWRtaW5cIilcbn0iLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICJWRUNUT1I8U1RSSU5HPiB1c2VyR3JvdXBzID0gTVdHLlVzZXJHcm91cHMoKVxuXG5JRiBcImFkbWluXCIgSU4gdXNlckdyb3VwcyBUSEVOIHtcbiAgICAvLyBVc2VyIGlzIGluIHRoZSBhZG1pbiBncm91cFxuICAgIE1XRy5BbGxvdyhcIlVzZXIgaXMgYWRtaW5cIilcbn0gRUxTRSB7XG4gICAgLy8gVXNlciBpcyBub3QgaW4gdGhlIGFkbWluIGdyb3VwXG4gICAgTVdHLkJsb2NrKFwiQWNjZXNzIGRlbmllZDogVXNlciBpcyBub3QgYW4gYWRtaW5cIilcbn0ifSwgeyJuYW1lIjogIk1XRy5Vc2VybmFtZSAoKSIsICJyZXR1cm5fdHlwZSI6ICJTVFJJTkciLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyB0aGUgbmFtZSBvZiB0aGUgYXV0aGVudGljYXRlZCB1c2VyLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJOb25lIiwgImRlc2NyaXB0aW9uIjogIlJldHVybnMgdGhlIG5hbWUgb2YgYXV0aGVudGljYXRlZCB1c2VyIiwgImV4YW1wbGVfY29kZSI6ICJTVFJJTkcgdXNlcm5hbWUgPSBNV0cuVXNlcm5hbWUoKVxuLy8gQXV0aGVudGljYXRlZCB1c2VyOiBcIiArIHVzZXJuYW1lIiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiU1RSSU5HIHVzZXJuYW1lID0gTVdHLlVzZXJuYW1lKClcbi8vIEF1dGhlbnRpY2F0ZWQgdXNlcjogXCIgKyB1c2VybmFtZSJ9LCB7Im5hbWUiOiAiTVdHLlVVSUQgKCkiLCAicmV0dXJuX3R5cGUiOiAiU1RSSU5HIiwgInJldHVybl9kZXNjIjogIlJldHVybnMgVVVJRC4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiTm9uZSIsICJkZXNjcmlwdGlvbiI6ICJSZXR1cm5zIFVVSUQiLCAiZXhhbXBsZV9jb2RlIjogIlNUUklORyB1dWlkID0gTVdHLlVVSUQoKVxuLy8gR2VuZXJhdGVkIFVVSUQ6ICsgdXVpZCIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIlNUUklORyB1dWlkID0gTVdHLlVVSUQoKVxuLy8gR2VuZXJhdGVkIFVVSUQ6ICsgdXVpZCJ9LCB7Im5hbWUiOiAiTVdHLlZpcnVzTmFtZXMgKE1XRy5BbnRpbWFsd2FyZVNldHRpbmcpIiwgInJldHVybl90eXBlIjogIlZFQ1RPUjxTVFJJTkc+IiwgInJldHVybl9kZXNjIjogIlJldHVybnMgYSB2ZWN0b3Igb2YgbmFtZXMgb2YgZGV0ZWN0ZWQgdmlydXNlcy4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiTVdHLkFudGltYWx3YXJlU2V0dGluZzogdGhlIGFudGltYWx3YXJlIGNvbmZpZ3VyYXRpb24gc2V0dGluZ3MgdXNlZCB0byBzY2FuIGFuZCBpZGVudGlmeSB2aXJ1c2VzLiIsICJkZXNjcmlwdGlvbiI6ICJSZXR1cm5zIG5hbWVzIG9mIGZvdW5kIHZpcnVzZXMgKHZpYSBHQU0pIiwgImV4YW1wbGVfY29kZSI6ICJNV0cuQW50aW1hbHdhcmVTZXR0aW5nIGFudGltYWx3YXJlU2V0dGluZyA9IC4uLiAvLyBBc3N1bWUgdGhpcyBpcyBpbml0aWFsaXplZCB3aXRoIHlvdXIgYW50aW1hbHdhcmUgc2V0dGluZ3NcblZFQ1RPUjxTVFJJTkc+IHZpcnVzTmFtZXMgPSBNV0cuVmlydXNOYW1lcyhhbnRpbWFsd2FyZVNldHRpbmcpXG5cbklGIHZpcnVzTmFtZXMuU0laRSgpID4gMCBUSEVOIHtcbiAgICAvLyBEZXRlY3RlZCBWaXJ1c2VzOlxuICAgIEZPUiBTVFJJTkcgdmlydXNOYW1lIElOIHZpcnVzTmFtZXMge1xuICAgICAgICAvLyB2aXJ1c05hbWVcbiAgICB9XG4gICAgTVdHLkJsb2NrKFwiVmlydXMgZGV0ZWN0ZWQ6IFwiICsgdmlydXNOYW1lc1swXSlcbn0gRUxTRSB7XG4gICAgTVdHLkFsbG93KFwiTm8gdmlydXNlcyBkZXRlY3RlZFwiKVxufSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIk1XRy5BbnRpbWFsd2FyZVNldHRpbmcgYW50aW1hbHdhcmVTZXR0aW5nID0gLi4uIC8vIEFzc3VtZSB0aGlzIGlzIGluaXRpYWxpemVkIHdpdGggeW91ciBhbnRpbWFsd2FyZSBzZXR0aW5nc1xuVkVDVE9SPFNUUklORz4gdmlydXNOYW1lcyA9IE1XRy5WaXJ1c05hbWVzKGFudGltYWx3YXJlU2V0dGluZylcblxuSUYgdmlydXNOYW1lcy5TSVpFKCkgPiAwIFRIRU4ge1xuICAgIC8vIERldGVjdGVkIFZpcnVzZXM6XG4gICAgRk9SIFNUUklORyB2aXJ1c05hbWUgSU4gdmlydXNOYW1lcyB7XG4gICAgICAgIC8vIHZpcnVzTmFtZVxuICAgIH1cbiAgICBNV0cuQmxvY2soXCJWaXJ1cyBkZXRlY3RlZDogXCIgKyB2aXJ1c05hbWVzWzBdKVxufSBFTFNFIHtcbiAgICBNV0cuQWxsb3coXCJObyB2aXJ1c2VzIGRldGVjdGVkXCIpXG59In0sIHsibmFtZSI6ICJNV0cuVmlydXNOYW1lcyAoTVdHLkludGVybmFsU2V0dGluZykiLCAicmV0dXJuX3R5cGUiOiAiVkVDVE9SPFNUUklORz4iLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyBhIHZlY3RvciBjb250YWluaW5nIHRoZSBuYW1lcyBvZiBkZXRlY3RlZCB2aXJ1c2VzIGFzIHBlciB0aGUgaW50ZXJuYWwgc2V0dGluZ3MuIiwgInBhcmFtZXRlcl9kZXNjIjogIk1XRy5JbnRlcm5hbFNldHRpbmc6IHRoZSBjb25maWd1cmF0aW9uIHNldHRpbmdzLiIsICJkZXNjcmlwdGlvbiI6ICJMb2dnaW5nOiBSZXR1cm5zIG5hbWVzIG9mIGZvdW5kIHZpcnVzZXMiLCAiZXhhbXBsZV9jb2RlIjogIlZFQ1RPUjxTVFJJTkc+IHZpcnVzTmFtZXMgPSBNV0cuVmlydXNOYW1lcygpXG5cbklGIHZpcnVzTmFtZXMuU0laRSgpID4gMCBUSEVOIHtcbiAgICAvLyBWaXJ1c2VzIGRldGVjdGVkOiBcIiArIHZpcnVzTmFtZXMuVE9fU1RSSU5HKClcbiAgICBNV0cuQmxvY2soXCJBY2Nlc3MgYmxvY2tlZCBkdWUgdG8gZGV0ZWN0ZWQgdmlydXNlczogXCIgKyB2aXJ1c05hbWVzLlRPX1NUUklORygpKVxufSBFTFNFIHtcbiAgICAvLyBObyB2aXJ1c2VzIGRldGVjdGVkLlxuICAgIE1XRy5BbGxvdyhcIk5vIHZpcnVzZXMgZm91bmRcIilcbn0iLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICJWRUNUT1I8U1RSSU5HPiB2aXJ1c05hbWVzID0gTVdHLlZpcnVzTmFtZXMoKVxuXG5JRiB2aXJ1c05hbWVzLlNJWkUoKSA+IDAgVEhFTiB7XG4gICAgLy8gVmlydXNlcyBkZXRlY3RlZDogXCIgKyB2aXJ1c05hbWVzLlRPX1NUUklORygpXG4gICAgTVdHLkJsb2NrKFwiQWNjZXNzIGJsb2NrZWQgZHVlIHRvIGRldGVjdGVkIHZpcnVzZXM6IFwiICsgdmlydXNOYW1lcy5UT19TVFJJTkcoKSlcbn0gRUxTRSB7XG4gICAgLy8gTm8gdmlydXNlcyBkZXRlY3RlZC5cbiAgICBNV0cuQWxsb3coXCJObyB2aXJ1c2VzIGZvdW5kXCIpXG59In0sIHsibmFtZSI6ICJNV0cuVmlydXNOYW1lcyAoTVdHLk1BVERTZXR0aW5nKSIsICJyZXR1cm5fdHlwZSI6ICJWRUNUT1I8U1RSSU5HPiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIGEgdmVjdG9yIGNvbnRhaW5pbmcgdGhlIG5hbWVzIG9mIHZpcnVzZXMgZGV0ZWN0ZWQgYnkgQVRELiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJNV0cuTUFURFNldHRpbmc6IFNldHRpbmdzIG9iamVjdCBmb3IgY29uZmlndXJpbmcgdGhlIHZpcnVzIGRldGVjdGlvbiBwYXJhbWV0ZXJzLiIsICJkZXNjcmlwdGlvbiI6ICJSZXR1cm5zIG5hbWVzIG9mIGZvdW5kIHZpcnVzZXMgKHZpYSBBVEQpIiwgImV4YW1wbGVfY29kZSI6ICIvLyBBc3N1bWUgd2UgaGF2ZSBhIHByZS1jb25maWd1cmVkIE1XRy5NQVREU2V0dGluZyBvYmplY3Rcbk1XRy5NQVREU2V0dGluZyBtYXRkU2V0dGluZyA9IFtZb3VyTUFURFNldHRpbmddXG5cbi8vIFJldHJpZXZlIHRoZSBuYW1lcyBvZiBkZXRlY3RlZCB2aXJ1c2VzXG5WRUNUT1I8U1RSSU5HPiB2aXJ1c05hbWVzID0gTVdHLlZpcnVzTmFtZXMobWF0ZFNldHRpbmcpXG5cbi8vIENoZWNrIGlmIGFueSB2aXJ1c2VzIHdlcmUgZGV0ZWN0ZWRcbklGIHZpcnVzTmFtZXMuU0laRSgpID4gMCBUSEVOIHtcbiAgICAvLyBEZXRlY3RlZCBWaXJ1c2VzOiBcbiAgICAvLyBERUJVRyhcIkRldGVjdGVkIFZpcnVzZXM6IFwiICsgdmlydXNOYW1lcy5UT19TVFJJTkcoKSlcbiAgICBcbiAgICAvLyBPcHRpb25hbGx5LCBibG9jayB0aGUgY29ubmVjdGlvblxuICAgIE1XRy5CbG9jayhcIkNvbm5lY3Rpb24gYmxvY2tlZCBkdWUgdG8gZGV0ZWN0ZWQgdmlydXNlczogXCIgKyB2aXJ1c05hbWVzLlRPX1NUUklORygpKVxufSBFTFNFIHtcbiAgICAvLyBBbGxvdyB0aGUgY29ubmVjdGlvbiBpZiBubyB2aXJ1c2VzIHdlcmUgZGV0ZWN0ZWRcbiAgICBNV0cuQWxsb3coXCJObyB2aXJ1c2VzIGRldGVjdGVkXCIpXG59IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiLy8gQXNzdW1lIHdlIGhhdmUgYSBwcmUtY29uZmlndXJlZCBNV0cuTUFURFNldHRpbmcgb2JqZWN0XG5NV0cuTUFURFNldHRpbmcgbWF0ZFNldHRpbmcgPSBbWW91ck1BVERTZXR0aW5nXVxuXG4vLyBSZXRyaWV2ZSB0aGUgbmFtZXMgb2YgZGV0ZWN0ZWQgdmlydXNlc1xuVkVDVE9SPFNUUklORz4gdmlydXNOYW1lcyA9IE1XRy5WaXJ1c05hbWVzKG1hdGRTZXR0aW5nKVxuXG4vLyBDaGVjayBpZiBhbnkgdmlydXNlcyB3ZXJlIGRldGVjdGVkXG5JRiB2aXJ1c05hbWVzLlNJWkUoKSA+IDAgVEhFTiB7XG4gICAgLy8gRGV0ZWN0ZWQgVmlydXNlczogXG4gICAgLy8gREVCVUcoXCJEZXRlY3RlZCBWaXJ1c2VzOiBcIiArIHZpcnVzTmFtZXMuVE9fU1RSSU5HKCkpXG4gICAgXG4gICAgLy8gT3B0aW9uYWxseSwgYmxvY2sgdGhlIGNvbm5lY3Rpb25cbiAgICBNV0cuQmxvY2soXCJDb25uZWN0aW9uIGJsb2NrZWQgZHVlIHRvIGRldGVjdGVkIHZpcnVzZXM6IFwiICsgdmlydXNOYW1lcy5UT19TVFJJTkcoKSlcbn0gRUxTRSB7XG4gICAgLy8gQWxsb3cgdGhlIGNvbm5lY3Rpb24gaWYgbm8gdmlydXNlcyB3ZXJlIGRldGVjdGVkXG4gICAgTVdHLkFsbG93KFwiTm8gdmlydXNlcyBkZXRlY3RlZFwiKVxufSJ9LCB7Im5hbWUiOiAiTVdHLldlYlVybENhdGVnb3J5TGlzdEJ5TmFtZSAoU1RSSU5HKSIsICJyZXR1cm5fdHlwZSI6ICJWRUNUT1I8TVdHLlVybENhdGVnb3J5PiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIHRoZSBzcGVjaWZpZWQgR1RJQ2F0ZWdvcnkgbGlzdC4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiU1RSSU5HOiBuYW1lIG9mIGxpc3QgdG8gcmV0cmlldmUiLCAiZGVzY3JpcHRpb24iOiAiUmV0cmlldmVzIGEgR1RJQ2F0ZWdvcnkgbGlzdCBieSBuYW1lIiwgImV4YW1wbGVfY29kZSI6ICIvLyBEZWZpbmUgdGhlIGNhdGVnb3J5IG5hbWUgdG8gbG9vayB1cFxuU1RSSU5HIGNhdGVnb3J5TmFtZSA9IFwiU29jaWFsIE1lZGlhXCJcblxuLy8gR2V0IHRoZSBsaXN0IG9mIFVSTCBjYXRlZ29yaWVzIGZvciB0aGUgZ2l2ZW4gbmFtZVxuVkVDVE9SPE1XRy5VcmxDYXRlZ29yeT4gdXJsQ2F0ZWdvcmllcyA9IE1XRy5XZWJVcmxDYXRlZ29yeUxpc3RCeU5hbWUoY2F0ZWdvcnlOYW1lKVxuXG4vLyBTZXQgYSB1c2VyLWRlZmluZWQgdmFyaWFibGUgd2l0aCB0aGUgcmV0cmlldmVkIFVSTCBjYXRlZ29yaWVzXG5NV0cuU2V0VXNlckRlZmluZWRWYXIoXCJVc2VyRGVmaW5lZFVybENhdGVnb3JpZXNcIiwgdXJsQ2F0ZWdvcmllcylcblxuLy8gUmV0cmlldmVkIFVSTCBDYXRlZ29yaWVzOiBcIiArIHVybENhdGVnb3JpZXMiLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICIvLyBEZWZpbmUgdGhlIGNhdGVnb3J5IG5hbWUgdG8gbG9vayB1cFxuU1RSSU5HIGNhdGVnb3J5TmFtZSA9IFwiU29jaWFsIE1lZGlhXCJcblxuLy8gR2V0IHRoZSBsaXN0IG9mIFVSTCBjYXRlZ29yaWVzIGZvciB0aGUgZ2l2ZW4gbmFtZVxuVkVDVE9SPE1XRy5VcmxDYXRlZ29yeT4gdXJsQ2F0ZWdvcmllcyA9IE1XRy5XZWJVcmxDYXRlZ29yeUxpc3RCeU5hbWUoY2F0ZWdvcnlOYW1lKVxuXG4vLyBTZXQgYSB1c2VyLWRlZmluZWQgdmFyaWFibGUgd2l0aCB0aGUgcmV0cmlldmVkIFVSTCBjYXRlZ29yaWVzXG5NV0cuU2V0VXNlckRlZmluZWRWYXIoXCJVc2VyRGVmaW5lZFVybENhdGVnb3JpZXNcIiwgdXJsQ2F0ZWdvcmllcylcblxuLy8gUmV0cmlldmVkIFVSTCBDYXRlZ29yaWVzOiBcIiArIHVybENhdGVnb3JpZXMifSwgeyJuYW1lIjogIk1XRy5XZWJVcmxDYXRlZ29yeUxpc3RCeU5hbWVFeGlzdHMgKFNUUklORykiLCAicmV0dXJuX3R5cGUiOiAiQk9PTEVBTiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zYFRSVUVgaWYgdGhlIGxpc3QgZXhpc3RzLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJTVFJJTkc6IG5hbWUgb2YgbGlzdCB0byBjaGVjayBmb3IuIiwgImRlc2NyaXB0aW9uIjogIlJldHVybnMgVFJVRSBpZiBHVElDYXRlZ29yeSBsaXN0IHdpdGggdGhlIG5hbWUgZXhpc3RzIiwgImV4YW1wbGVfY29kZSI6ICJTVFJJTkcgbGlzdE5hbWUgPSBcImV4YW1wbGVfbGlzdFwiXG5cbklGIE1XRy5TdHJpbmdMaXN0QnlOYW1lRXhpc3RzKGxpc3ROYW1lKSBUSEVOIHtcbiAgICAvLyBUaGUgbGlzdCBcImV4YW1wbGVfbGlzdFwiIGV4aXN0cy5cbn0gRUxTRSB7XG4gICAgLy8gVGhlIGxpc3QgXCJleGFtcGxlX2xpc3RcIiBkb2VzIG5vdCBleGlzdC5cbn0iLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICJTVFJJTkcgbGlzdE5hbWUgPSBcImV4YW1wbGVfbGlzdFwiXG5cbklGIE1XRy5TdHJpbmdMaXN0QnlOYW1lRXhpc3RzKGxpc3ROYW1lKSBUSEVOIHtcbiAgICAvLyBUaGUgbGlzdCBcImV4YW1wbGVfbGlzdFwiIGV4aXN0cy5cbn0gRUxTRSB7XG4gICAgLy8gVGhlIGxpc3QgXCJleGFtcGxlX2xpc3RcIiBkb2VzIG5vdCBleGlzdC5cbn0ifSwgeyJuYW1lIjogIk1XRy5YNTA5Q29tbW9uTmFtZXNUb1JlZ0V4TGlzdCAoVkVDVE9SPFNUUklORz4pIiwgInJldHVybl90eXBlIjogIlJlZ0V4SlNpLkxpc3QiLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyBhIGxpc3Qgb2YgcmVndWxhciBleHByZXNzaW9ucyBjb3JyZXNwb25kaW5nIHRvIHRoZSBDTiB3aWxkY2FyZCBzdHJpbmdzIHByb3ZpZGVkIGluIHRoZSBpbnB1dCB2ZWN0b3IuIiwgInBhcmFtZXRlcl9kZXNjIjogIlZFQ1RPUjogQSBjb2xsZWN0aW9uIG9mIFNUUklOR3MgaW4gQ04gd2lsZGNhcmQgZm9ybWF0LiIsICJkZXNjcmlwdGlvbiI6ICJDb252ZXJ0cyBhIFZFQ1RPUiBvZiBTVFJJTkdzIGluIENOIHdpbGRjYXJkIGZvcm1hdCB0byBhIHJlZ2V4IFZFQ1RPUiIsICJleGFtcGxlX2NvZGUiOiAiLy8gRGVmaW5lIGEgVkVDVE9SIG9mIGNvbW1vbiBuYW1lc1xuVkVDVE9SPFNUUklORz4gY29tbW9uTmFtZXMgPSBcImV4YW1wbGUuY29tXCIsIFwidGVzdC5jb21cIiwgXCJzYW1wbGUub3JnXCJcblxuLy8gQ29udmVydCB0aGUgY29tbW9uIG5hbWVzIHRvIGEgbGlzdCBvZiByZWd1bGFyIGV4cHJlc3Npb25zXG5SZWdFeEpTaS5MaXN0IHJlZ2V4TGlzdCA9IE1XRy5YNTA5Q29tbW9uTmFtZXNUb1JlZ0V4TGlzdChjb21tb25OYW1lcylcblxuLy8gQ29udmVydGVkIFJlZ3VsYXIgRXhwcmVzc2lvbnM6IHJlZ2V4TGlzdCIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIi8vIERlZmluZSBhIFZFQ1RPUiBvZiBjb21tb24gbmFtZXNcblZFQ1RPUjxTVFJJTkc+IGNvbW1vbk5hbWVzID0gXCJleGFtcGxlLmNvbVwiLCBcInRlc3QuY29tXCIsIFwic2FtcGxlLm9yZ1wiXG5cbi8vIENvbnZlcnQgdGhlIGNvbW1vbiBuYW1lcyB0byBhIGxpc3Qgb2YgcmVndWxhciBleHByZXNzaW9uc1xuUmVnRXhKU2kuTGlzdCByZWdleExpc3QgPSBNV0cuWDUwOUNvbW1vbk5hbWVzVG9SZWdFeExpc3QoY29tbW9uTmFtZXMpXG5cbi8vIENvbnZlcnRlZCBSZWd1bGFyIEV4cHJlc3Npb25zOiByZWdleExpc3QifSwgeyJuYW1lIjogIk1XRy5YNTA5Q29tbW9uTmFtZVRvUmVnRXggKFNUUklORykiLCAicmV0dXJuX3R5cGUiOiAiUmVnRXhKU2kiLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyBhIHJlZ3VsYXIgZXhwcmVzc2lvbiBlcXVpdmFsZW50IG9mIGEgZ2l2ZW4gd2lsZGNhcmQtZm9ybWF0dGVkIGNvbW1vbiBuYW1lIChDTikuIiwgInBhcmFtZXRlcl9kZXNjIjogIlNUUklORzogdGhlIGNvbW1vbiBuYW1lIGluIHdpbGRjYXJkIGZvcm1hdCB0aGF0IHdpbGwgYmUgY29udmVydGVkIHRvIGEgcmVndWxhciBleHByZXNzaW9uLiIsICJkZXNjcmlwdGlvbiI6ICJDb252ZXJ0cyBDTiB3aWxkY2FyZCBmb3JtYXQgdG8gYSByZWd1bGFyIGV4cHJlc3Npb24iLCAiZXhhbXBsZV9jb2RlIjogIlNUUklORyBjb21tb25OYW1lID0gXCJleGFtcGxlLmNvbVwiXG5TVFJJTkcgcmVnZXggPSBNV0cuWDUwOUNvbW1vbk5hbWVUb1JlZ0V4KGNvbW1vbk5hbWUpXG5cbi8vIENvbnZlcnRlZCByZWdleDogXCIgKyByZWdleCIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIlNUUklORyBjb21tb25OYW1lID0gXCJleGFtcGxlLmNvbVwiXG5TVFJJTkcgcmVnZXggPSBNV0cuWDUwOUNvbW1vbk5hbWVUb1JlZ0V4KGNvbW1vbk5hbWUpXG5cbi8vIENvbnZlcnRlZCByZWdleDogXCIgKyByZWdleCJ9LCB7Im5hbWUiOiAiTmV0LkJlZ2luIChOZXQuSVBSYW5nZSkiLCAicmV0dXJuX3R5cGUiOiAiU1RSSU5HIiwgInJldHVybl9kZXNjIjogIlJldHVybnMgdGhlIGZpcnN0IElQIGFkZHJlc3MgaW4gdGhlIGdpdmVuIElQIHJhbmdlIGFzIGEgc3RyaW5nLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJOZXQuSVBSYW5nZTogVGhlIHJhbmdlIG9mIElQIGFkZHJlc3NlcyBmcm9tIHdoaWNoIHRoZSBmdW5jdGlvbiB3aWxsIHJldHVybiB0aGUgZmlyc3QgSVAgYXMgYSBTVFJJTkcuIiwgImRlc2NyaXB0aW9uIjogIlJldHVybiBmaXJzdCBJUCBvZiBhbiBJUCByYW5nZSBhcyBTVFJJTkciLCAiZXhhbXBsZV9jb2RlIjogIk5ldC5JUFJhbmdlIGlwUmFuZ2UgPSBcIjE5Mi4xNjguMS4wLzI0XCJcblNUUklORyBmaXJzdElQID0gTmV0LkJlZ2luKGlwUmFuZ2UpXG4vLyBUaGUgZmlyc3QgSVAgaW4gdGhlIHJhbmdlIGlzOiBmaXJzdElQIiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiTmV0LklQUmFuZ2UgaXBSYW5nZSA9IFwiMTkyLjE2OC4xLjAvMjRcIlxuU1RSSU5HIGZpcnN0SVAgPSBOZXQuQmVnaW4oaXBSYW5nZSlcbi8vIFRoZSBmaXJzdCBJUCBpbiB0aGUgcmFuZ2UgaXM6IGZpcnN0SVAifSwgeyJuYW1lIjogIk5ldC5FbmQgKE5ldC5JUFJhbmdlKSIsICJyZXR1cm5fdHlwZSI6ICJTVFJJTkciLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyB0aGUgZmluYWwgSVAgYWRkcmVzcyBpbiB0aGUgc3BlY2lmaWVkIElQIHJhbmdlIGFzIGEgc3RyaW5nLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJOZXQuSVBSYW5nZTogdGhlIHJhbmdlIG9mIElQIGFkZHJlc3MgZnJvbSB3aGljaCB0aGUgbGFzdCBJUCBpcyB0byBiZSByZXR1cm5lZCBhcyBhIFNUUklORy4iLCAiZGVzY3JpcHRpb24iOiAiUmV0dXJuIGxhc3QgSVAgb2YgYW4gSVAgcmFuZ2UgYXMgU1RSSU5HIiwgImV4YW1wbGVfY29kZSI6ICIvLyBEZWZpbmUgYW4gSVAgcmFuZ2Vcbk5ldC5JUFJhbmdlIGlwUmFuZ2UgPSBcIjE5Mi4xNjguMS4wLzI0XCJcblxuLy8gR2V0IHRoZSBsYXN0IElQIGluIHRoZSByYW5nZVxuU1RSSU5HIGxhc3RJUCA9IE5ldC5FbmQoaXBSYW5nZSlcblxuLy8gVGhlIGxhc3QgSVAgaW4gdGhlIHJhbmdlIGlzOiBcIiArIGxhc3RJUCIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIi8vIERlZmluZSBhbiBJUCByYW5nZVxuTmV0LklQUmFuZ2UgaXBSYW5nZSA9IFwiMTkyLjE2OC4xLjAvMjRcIlxuXG4vLyBHZXQgdGhlIGxhc3QgSVAgaW4gdGhlIHJhbmdlXG5TVFJJTkcgbGFzdElQID0gTmV0LkVuZChpcFJhbmdlKVxuXG4vLyBUaGUgbGFzdCBJUCBpbiB0aGUgcmFuZ2UgaXM6IFwiICsgbGFzdElQIn0sIHsibmFtZSI6ICJOZXQuR2V0IChWRUNUT1I8TmV0LklQPiwgTlVNQkVSLCBOVU1CRVIpIiwgInJldHVybl90eXBlIjogIlZFQ1RPUjxOZXQuSVA+IiwgInJldHVybl9kZXNjIjogIlJldHVybnMgYSBzcGVjaWZpZWQgcmFuZ2Ugb2YgSVAgYWRkcmVzc2VzIGZyb20gYSBnaXZlbiBJUCBsaXN0LiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJWRUNUT1I6IHRoZSBvcmlnaW5hbCBJUCBsaXN0OyBOVU1CRVI6IHRoZSBzdGFydGluZyBpbmRleCBmb3IgdGhlIHN1YnNldDsgTlVNQkVSOiB0aGUgTlVNQkVSIG9mIElQIGFkZHJlc3NlcyB0byBpbmNsdWRlIGluIHRoZSBzdWJzZXQuIiwgImRlc2NyaXB0aW9uIjogIlJldHVybiBhIHN1YnNldCBvZiBhbiBJUCBsaXN0IiwgImV4YW1wbGVfY29kZSI6ICJWRUNUT1I8TmV0LklQPiBpcExpc3QgPSBcIjE5Mi4xNjguMS4xXCIsIFwiMTkyLjE2OC4xLjJcIiwgXCIxOTIuMTY4LjEuM1wiLCBcIjE5Mi4xNjguMS40XCIsIFwiMTkyLjE2OC4xLjVcIlxuTlVNQkVSIHN0YXJ0SW5kZXggPSAxXG5OVU1CRVIgY291bnQgPSAzXG5cblZFQ1RPUjxOZXQuSVA+IHN1YnNldCA9IE5ldC5HZXQoaXBMaXN0LCBzdGFydEluZGV4LCBjb3VudClcblxuLy8gU3Vic2V0IG9mIElQIGFkZHJlc3NlczogXCIgKyBzdWJzZXQiLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICJWRUNUT1I8TmV0LklQPiBpcExpc3QgPSBcIjE5Mi4xNjguMS4xXCIsIFwiMTkyLjE2OC4xLjJcIiwgXCIxOTIuMTY4LjEuM1wiLCBcIjE5Mi4xNjguMS40XCIsIFwiMTkyLjE2OC4xLjVcIlxuTlVNQkVSIHN0YXJ0SW5kZXggPSAxXG5OVU1CRVIgY291bnQgPSAzXG5cblZFQ1RPUjxOZXQuSVA+IHN1YnNldCA9IE5ldC5HZXQoaXBMaXN0LCBzdGFydEluZGV4LCBjb3VudClcblxuLy8gU3Vic2V0IG9mIElQIGFkZHJlc3NlczogXCIgKyBzdWJzZXQifSwgeyJuYW1lIjogIk5ldC5HZXQgKFZFQ1RPUjxOZXQuSVBSYW5nZT4sIE5VTUJFUiwgTlVNQkVSKSIsICJyZXR1cm5fdHlwZSI6ICJWRUNUT1I8TmV0LklQUmFuZ2U+IiwgInJldHVybl9kZXNjIjogIlJldHVybnMgYSBzdWJzZXQgb2YgdGhlIElQIHJhbmdlIGxpc3QgYmFzZWQgb24gdGhlIGdpdmVuIHZlY3RvciBhbmQgbnVtYmVycy4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiVkVDVE9SOiB0aGUgbGlzdCBvZiBJUCByYW5nZXM7IE5VTUJFUjogdGhlIHN0YXJ0aW5nIGluZGV4IG9mIHRoZSBzdWJzZXQ7IE5VTUJFUjogdGhlIE5VTUJFUiBvZiBJUCByYW5nZXMgdG8gaW5jbHVkZSBpbiB0aGUgc3Vic2V0LiIsICJkZXNjcmlwdGlvbiI6ICJSZXR1cm4gYSBzdWJzZXQgb2YgYW4gSVAgcmFuZ2UgbGlzdCIsICJleGFtcGxlX2NvZGUiOiAiLy8gRGVmaW5lIGEgVkVDVE9SIG9mIE5ldC5JUFJhbmdlXG5WRUNUT1I8TmV0LklQUmFuZ2U+IGlwUmFuZ2VzID0gW1wiMTkyLjE2OC4xLjAvMjRcIiwgXCIxMC4wLjAuMC84XCIsIFwiMTcyLjE2LjAuMC8xMlwiXVxuXG4vLyBEZWZpbmUgdGhlIHN0YXJ0aW5nIGluZGV4IGFuZCB0aGUgbnVtYmVyIG9mIElQIHJhbmdlcyB0byBpbmNsdWRlIGluIHRoZSBzdWJzZXRcbk5VTUJFUiBzdGFydEluZGV4ID0gMVxuTlVNQkVSIGNvdW50ID0gMlxuXG4vLyBHZXQgdGhlIHN1YnNldCBvZiB0aGUgSVAgcmFuZ2UgbGlzdFxuVkVDVE9SPE5ldC5JUFJhbmdlPiBzdWJzZXQgPSBOZXQuR2V0KGlwUmFuZ2VzLCBzdGFydEluZGV4LCBjb3VudClcblxuLy8gU3Vic2V0IG9mIElQIHJhbmdlczogXG4vLyBERUJVRyhcIlN1YnNldCBvZiBJUCByYW5nZXM6IFwiICsgc3Vic2V0KSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIi8vIERlZmluZSBhIFZFQ1RPUiBvZiBOZXQuSVBSYW5nZVxuVkVDVE9SPE5ldC5JUFJhbmdlPiBpcFJhbmdlcyA9IFtcIjE5Mi4xNjguMS4wLzI0XCIsIFwiMTAuMC4wLjAvOFwiLCBcIjE3Mi4xNi4wLjAvMTJcIl1cblxuLy8gRGVmaW5lIHRoZSBzdGFydGluZyBpbmRleCBhbmQgdGhlIG51bWJlciBvZiBJUCByYW5nZXMgdG8gaW5jbHVkZSBpbiB0aGUgc3Vic2V0XG5OVU1CRVIgc3RhcnRJbmRleCA9IDFcbk5VTUJFUiBjb3VudCA9IDJcblxuLy8gR2V0IHRoZSBzdWJzZXQgb2YgdGhlIElQIHJhbmdlIGxpc3RcblZFQ1RPUjxOZXQuSVBSYW5nZT4gc3Vic2V0ID0gTmV0LkdldChpcFJhbmdlcywgc3RhcnRJbmRleCwgY291bnQpXG5cbi8vIFN1YnNldCBvZiBJUCByYW5nZXM6IFxuLy8gREVCVUcoXCJTdWJzZXQgb2YgSVAgcmFuZ2VzOiBcIiArIHN1YnNldCkifSwgeyJuYW1lIjogIk5ldC5JbnNlcnQgKFZFQ1RPUjxOZXQuSVA+LCBOZXQuSVAsIE5VTUJFUikiLCAicmV0dXJuX3R5cGUiOiAiVkVDVE9SPE5ldC5JUD4iLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyB0aGUgdmVjdG9yIHdpdGggdGhlIElQIGluc2VydGVkIGF0IHRoZSBzcGVjaWZpZWQgcG9zaXRpb24uIiwgInBhcmFtZXRlcl9kZXNjIjogIlZFQ1RPUjogVGhlIGxpc3Qgb2YgSVBzLCBOZXQuSVA6IFRoZSBJUCB0byBiZSBpbnNlcnRlZCwgTlVNQkVSOiBUaGUgcG9zaXRpb24gaW4gdGhlIGxpc3Qgd2hlcmUgdGhlIElQIHNob3VsZCBiZSBpbnNlcnRlZC4iLCAiZGVzY3JpcHRpb24iOiAiSW5zZXJ0IGFuIElQIGludG8gYW4gSVAgbGlzdCIsICJleGFtcGxlX2NvZGUiOiAiLy8gSW5pdGlhbGl6ZSBhIFZFQ1RPUiBvZiBOZXQuSVBcblZFQ1RPUjxOZXQuSVA+IGlwTGlzdCA9IE5ldC5JUChcIjE5Mi4xNjguMS4xXCIpLCBOZXQuSVAoXCIxOTIuMTY4LjEuMlwiKSwgTmV0LklQKFwiMTkyLjE2OC4xLjNcIilcblxuLy8gRGVmaW5lIHRoZSBJUCB0byBiZSBpbnNlcnRlZFxuTmV0LklQIG5ld0lQID0gTmV0LklQKFwiMTkyLjE2OC4xLjRcIilcblxuLy8gRGVmaW5lIHRoZSBwb3NpdGlvbiB3aGVyZSB0aGUgbmV3IElQIHNob3VsZCBiZSBpbnNlcnRlZFxuTlVNQkVSIHBvc2l0aW9uID0gMlxuXG4vLyBJbnNlcnQgdGhlIG5ldyBJUCBpbnRvIHRoZSBWRUNUT1IgYXQgdGhlIHNwZWNpZmllZCBwb3NpdGlvblxuTmV0Lkluc2VydChpcExpc3QsIG5ld0lQLCBwb3NpdGlvbilcblxuLy8gVXBkYXRlZCBJUCBMaXN0OiBcIiArIGlwTGlzdCIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIi8vIEluaXRpYWxpemUgYSBWRUNUT1Igb2YgTmV0LklQXG5WRUNUT1I8TmV0LklQPiBpcExpc3QgPSBOZXQuSVAoXCIxOTIuMTY4LjEuMVwiKSwgTmV0LklQKFwiMTkyLjE2OC4xLjJcIiksIE5ldC5JUChcIjE5Mi4xNjguMS4zXCIpXG5cbi8vIERlZmluZSB0aGUgSVAgdG8gYmUgaW5zZXJ0ZWRcbk5ldC5JUCBuZXdJUCA9IE5ldC5JUChcIjE5Mi4xNjguMS40XCIpXG5cbi8vIERlZmluZSB0aGUgcG9zaXRpb24gd2hlcmUgdGhlIG5ldyBJUCBzaG91bGQgYmUgaW5zZXJ0ZWRcbk5VTUJFUiBwb3NpdGlvbiA9IDJcblxuLy8gSW5zZXJ0IHRoZSBuZXcgSVAgaW50byB0aGUgVkVDVE9SIGF0IHRoZSBzcGVjaWZpZWQgcG9zaXRpb25cbk5ldC5JbnNlcnQoaXBMaXN0LCBuZXdJUCwgcG9zaXRpb24pXG5cbi8vIFVwZGF0ZWQgSVAgTGlzdDogXCIgKyBpcExpc3QifSwgeyJuYW1lIjogIk5ldC5JbnNlcnQgKFZFQ1RPUjxOZXQuSVBSYW5nZT4sIE5ldC5JUFJhbmdlLCBOVU1CRVIpIiwgInJldHVybl90eXBlIjogIlZFQ1RPUjxOZXQuSVBSYW5nZT4iLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyBhIHZlY3RvciB0aGF0IGluY2x1ZGVzIHRoZSBJUCByYW5nZSBpbnNlcnRlZCBpbnRvIHRoZSBvcmlnaW5hbCBJUCByYW5nZSBsaXN0LiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJWRUNUT1I6IFRoZSBsaXN0IG9mIElQIHJhbmdlcywgTmV0LklQUmFuZ2U6IFRoZSBJUCByYW5nZSB0byBpbnNlcnQsIE5VTUJFUjogVGhlIHBvc2l0aW9uIHRvIGluc2VydCB0aGUgSVAgcmFuZ2UuIiwgImRlc2NyaXB0aW9uIjogIkluc2VydCBhbiBJUCByYW5nZSBpbnRvIGFuIElQIHJhbmdlIGxpc3QiLCAiZXhhbXBsZV9jb2RlIjogIi8vIERlZmluZSBhIFZFQ1RPUiBvZiBOZXQuSVBSYW5nZVxuVkVDVE9SPE5ldC5JUFJhbmdlPiBpcFJhbmdlcyA9IE5ldC5JUFJhbmdlKFwiMTkyLjE2OC4xLjAvMjRcIiksIE5ldC5JUFJhbmdlKFwiMTAuMC4wLjAvOFwiKVxuXG4vLyBEZWZpbmUgdGhlIElQIHJhbmdlIHRvIGluc2VydFxuTmV0LklQUmFuZ2UgbmV3UmFuZ2UgPSBOZXQuSVBSYW5nZShcIjE3Mi4xNi4wLjAvMTJcIilcblxuLy8gSW5zZXJ0IHRoZSBuZXcgSVAgcmFuZ2UgYXQgcG9zaXRpb24gMSAoc2Vjb25kIHBvc2l0aW9uIGluIHRoZSBWRUNUT1IpXG5OZXQuSW5zZXJ0KGlwUmFuZ2VzLCBuZXdSYW5nZSwgMSlcblxuLy8gUHJldmlvdXNseTogUHJpbnQgdGhlIHVwZGF0ZWQgVkVDVE9SIHRvIHRoZSBjb25zb2xlIGZvciBkZWJ1Z2dpbmdcbi8vIERFQlVHKGlwUmFuZ2VzKSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIi8vIERlZmluZSBhIFZFQ1RPUiBvZiBOZXQuSVBSYW5nZVxuVkVDVE9SPE5ldC5JUFJhbmdlPiBpcFJhbmdlcyA9IE5ldC5JUFJhbmdlKFwiMTkyLjE2OC4xLjAvMjRcIiksIE5ldC5JUFJhbmdlKFwiMTAuMC4wLjAvOFwiKVxuXG4vLyBEZWZpbmUgdGhlIElQIHJhbmdlIHRvIGluc2VydFxuTmV0LklQUmFuZ2UgbmV3UmFuZ2UgPSBOZXQuSVBSYW5nZShcIjE3Mi4xNi4wLjAvMTJcIilcblxuLy8gSW5zZXJ0IHRoZSBuZXcgSVAgcmFuZ2UgYXQgcG9zaXRpb24gMSAoc2Vjb25kIHBvc2l0aW9uIGluIHRoZSBWRUNUT1IpXG5OZXQuSW5zZXJ0KGlwUmFuZ2VzLCBuZXdSYW5nZSwgMSlcblxuLy8gUHJldmlvdXNseTogUHJpbnQgdGhlIHVwZGF0ZWQgVkVDVE9SIHRvIHRoZSBjb25zb2xlIGZvciBkZWJ1Z2dpbmdcbi8vIERFQlVHKGlwUmFuZ2VzKSJ9LCB7Im5hbWUiOiAiTmV0LklzRXF1YWwgKE5ldC5JUCwgTmV0LklQKSIsICJyZXR1cm5fdHlwZSI6ICJCT09MRUFOIiwgInJldHVybl9kZXNjIjogIlJldHVybnNgVFJVRWBpZiB0aGUgdHdvIElQIGFkZHJlc3NlcyBhcmUgaWRlbnRpY2FsLCBvdGhlcndpc2VgRkFMU0VgIiwgInBhcmFtZXRlcl9kZXNjIjogIlRoZSBwYXJhbWV0ZXJzIGFyZSB0d28gSVAgYWRkcmVzc2VzIHRvIGJlIGNvbXBhcmVkIGZvciBlcXVhbGl0eS4iLCAiZGVzY3JpcHRpb24iOiAiQ2hlY2sgaWYgdHdvIElQIGFkZHJlc3NlcyBhcmUgaWRlbnRpY2FsIiwgImV4YW1wbGVfY29kZSI6ICJOZXQuSVAgaXAxID0gTmV0LklQKFwiMTkyLjE2OC4xLjFcIilcbk5ldC5JUCBpcDIgPSBOZXQuSVAoXCIxOTIuMTY4LjEuMVwiKVxuTmV0LklQIGlwMyA9IE5ldC5JUChcIjEwLjAuMC4xXCIpXG5cbklGIE5ldC5Jc0VxdWFsKGlwMSwgaXAyKSBUSEVOIHtcbiAgICAvLyBpcDEgaXMgZXF1YWwgdG8gaXAyXG59IEVMU0Uge1xuICAgIC8vIGlwMSBpcyBub3QgZXF1YWwgdG8gaXAyXG59XG5cbklGIE5ldC5Jc0VxdWFsKGlwMSwgaXAzKSBUSEVOIHtcbiAgICAvLyBpcDEgaXMgZXF1YWwgdG8gaXAzXG59IEVMU0Uge1xuICAgIC8vIGlwMSBpcyBub3QgZXF1YWwgdG8gaXAzXG59IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiTmV0LklQIGlwMSA9IE5ldC5JUChcIjE5Mi4xNjguMS4xXCIpXG5OZXQuSVAgaXAyID0gTmV0LklQKFwiMTkyLjE2OC4xLjFcIilcbk5ldC5JUCBpcDMgPSBOZXQuSVAoXCIxMC4wLjAuMVwiKVxuXG5JRiBOZXQuSXNFcXVhbChpcDEsIGlwMikgVEhFTiB7XG4gICAgLy8gaXAxIGlzIGVxdWFsIHRvIGlwMlxufSBFTFNFIHtcbiAgICAvLyBpcDEgaXMgbm90IGVxdWFsIHRvIGlwMlxufVxuXG5JRiBOZXQuSXNFcXVhbChpcDEsIGlwMykgVEhFTiB7XG4gICAgLy8gaXAxIGlzIGVxdWFsIHRvIGlwM1xufSBFTFNFIHtcbiAgICAvLyBpcDEgaXMgbm90IGVxdWFsIHRvIGlwM1xufSJ9LCB7Im5hbWUiOiAiTmV0LklzSW5SYW5nZSAoTmV0LklQLCBOZXQuSVBSYW5nZSkiLCAicmV0dXJuX3R5cGUiOiAiQk9PTEVBTiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zYFRSVUVgaWYgdGhlIElQIGFkZHJlc3MgaXMgd2l0aGluIHRoZSBzcGVjaWZpZWQgcmFuZ2UsIG90aGVyd2lzZWBGQUxTRWAiLCAicGFyYW1ldGVyX2Rlc2MiOiAiTmV0LklQOiB0aGUgSVAgYWRkcmVzcyB0byBjaGVjazsgTmV0LklQUmFuZ2U6IHRoZSByYW5nZSB3aXRoaW4gd2hpY2ggdG8gY2hlY2suIiwgImRlc2NyaXB0aW9uIjogIkNoZWNrIGlmIGFuIElQIGFkZHJlc3MgaXMgaW4gYSBnaXZlbiByYW5nZSIsICJleGFtcGxlX2NvZGUiOiAiTmV0LklQIGNsaWVudElQID0gXCIxOTIuMTY4LjEuMTBcIlxuTmV0LklQUmFuZ2UgYWxsb3dlZFJhbmdlID0gXCIxOTIuMTY4LjEuMC8yNFwiXG5cbklGIE5ldC5Jc0luUmFuZ2UoY2xpZW50SVAsIGFsbG93ZWRSYW5nZSkgVEhFTiB7XG4gICAgLy8gQ2xpZW50IElQIGlzIHdpdGhpbiB0aGUgYWxsb3dlZCByYW5nZS5cbiAgICBNV0cuQWxsb3coXCJJUCBpbiBhbGxvd2VkIHJhbmdlXCIpXG59IEVMU0Uge1xuICAgIC8vIENsaWVudCBJUCBpcyBub3Qgd2l0aGluIHRoZSBhbGxvd2VkIHJhbmdlLlxuICAgIE1XRy5CbG9jayhcIklQIG5vdCBpbiBhbGxvd2VkIHJhbmdlXCIpXG59IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiTmV0LklQIGNsaWVudElQID0gXCIxOTIuMTY4LjEuMTBcIlxuTmV0LklQUmFuZ2UgYWxsb3dlZFJhbmdlID0gXCIxOTIuMTY4LjEuMC8yNFwiXG5cbklGIE5ldC5Jc0luUmFuZ2UoY2xpZW50SVAsIGFsbG93ZWRSYW5nZSkgVEhFTiB7XG4gICAgLy8gQ2xpZW50IElQIGlzIHdpdGhpbiB0aGUgYWxsb3dlZCByYW5nZS5cbiAgICBNV0cuQWxsb3coXCJJUCBpbiBhbGxvd2VkIHJhbmdlXCIpXG59IEVMU0Uge1xuICAgIC8vIENsaWVudCBJUCBpcyBub3Qgd2l0aGluIHRoZSBhbGxvd2VkIHJhbmdlLlxuICAgIE1XRy5CbG9jayhcIklQIG5vdCBpbiBhbGxvd2VkIHJhbmdlXCIpXG59In0sIHsibmFtZSI6ICJOZXQuSXNJblJhbmdlTGlzdCAoTmV0LklQLCBWRUNUT1I8TmV0LklQUmFuZ2U+KSIsICJyZXR1cm5fdHlwZSI6ICJCT09MRUFOIiwgInJldHVybl9kZXNjIjogIlJldHVybnNgVFJVRWBpZiB0aGUgZ2l2ZW4gSVAgYWRkcmVzcyBmYWxscyB3aXRoaW4gYW55IG9mIHRoZSBzcGVjaWZpZWQgSVAgcmFuZ2VzIGluIHRoZSBsaXN0LCBvdGhlcndpc2VgRkFMU0VgIiwgInBhcmFtZXRlcl9kZXNjIjogIk5ldC5JUDogdGhlIElQIGFkZHJlc3MgdG8gYmUgY2hlY2tlZDsgVkVDVE9SOiBhIGxpc3Qgb2YgaXAgYWRkcmVzcyByYW5nZXMuIiwgImRlc2NyaXB0aW9uIjogIkNoZWNrIGlmIGFuIElQIGFkZHJlc3MgaXMgaW4gYXQgbGVhc3Qgb25lIHJhbmdlIG9mIGEgbGlzdCBvZiByYW5nZXMiLCAiZXhhbXBsZV9jb2RlIjogIi8vIERlZmluZSB0aGUgSVAgYWRkcmVzcyB0byBjaGVja1xuTmV0LklQIGNsaWVudElQID0gV2ViLlJlcXVlc3QuQ2xpZW50LklQXG5cbi8vIERlZmluZSBhIGxpc3Qgb2YgSVAgcmFuZ2VzXG5WRUNUT1I8TmV0LklQUmFuZ2U+IGlwUmFuZ2VzID0gXCIxOTIuMTY4LjEuMC8yNFwiLCBcIjEwLjAuMC4wLzhcIiwgXCIxNzIuMTYuMC4wLzEyXCJcblxuLy8gQ2hlY2sgaWYgdGhlIGNsaWVudCBJUCBpcyB3aXRoaW4gYW55IG9mIHRoZSBzcGVjaWZpZWQgcmFuZ2VzXG5JRiBOZXQuSXNJblJhbmdlTGlzdChjbGllbnRJUCwgaXBSYW5nZXMpIFRIRU4ge1xuICAgIC8vIEFsbG93IHRoZSBjb25uZWN0aW9uIGlmIHRoZSBJUCBpcyB3aXRoaW4gdGhlIHJhbmdlXG4gICAgTVdHLkFsbG93KFwiSVAgaXMgd2l0aGluIHRoZSBhbGxvd2VkIHJhbmdlXCIpXG59IEVMU0Uge1xuICAgIC8vIEJsb2NrIHRoZSBjb25uZWN0aW9uIGlmIHRoZSBJUCBpcyBub3Qgd2l0aGluIHRoZSByYW5nZVxuICAgIE1XRy5CbG9jayhcIklQIGlzIG5vdCB3aXRoaW4gdGhlIGFsbG93ZWQgcmFuZ2VcIilcbn0iLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICIvLyBEZWZpbmUgdGhlIElQIGFkZHJlc3MgdG8gY2hlY2tcbk5ldC5JUCBjbGllbnRJUCA9IFdlYi5SZXF1ZXN0LkNsaWVudC5JUFxuXG4vLyBEZWZpbmUgYSBsaXN0IG9mIElQIHJhbmdlc1xuVkVDVE9SPE5ldC5JUFJhbmdlPiBpcFJhbmdlcyA9IFwiMTkyLjE2OC4xLjAvMjRcIiwgXCIxMC4wLjAuMC84XCIsIFwiMTcyLjE2LjAuMC8xMlwiXG5cbi8vIENoZWNrIGlmIHRoZSBjbGllbnQgSVAgaXMgd2l0aGluIGFueSBvZiB0aGUgc3BlY2lmaWVkIHJhbmdlc1xuSUYgTmV0LklzSW5SYW5nZUxpc3QoY2xpZW50SVAsIGlwUmFuZ2VzKSBUSEVOIHtcbiAgICAvLyBBbGxvdyB0aGUgY29ubmVjdGlvbiBpZiB0aGUgSVAgaXMgd2l0aGluIHRoZSByYW5nZVxuICAgIE1XRy5BbGxvdyhcIklQIGlzIHdpdGhpbiB0aGUgYWxsb3dlZCByYW5nZVwiKVxufSBFTFNFIHtcbiAgICAvLyBCbG9jayB0aGUgY29ubmVjdGlvbiBpZiB0aGUgSVAgaXMgbm90IHdpdGhpbiB0aGUgcmFuZ2VcbiAgICBNV0cuQmxvY2soXCJJUCBpcyBub3Qgd2l0aGluIHRoZSBhbGxvd2VkIHJhbmdlXCIpXG59In0sIHsibmFtZSI6ICJOZXQuSXNJUHY0IChOZXQuSVApIiwgInJldHVybl90eXBlIjogIkJPT0xFQU4iLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJuc2BUUlVFYGlmIHRoZSBnaXZlbiBJUCBhZGRyZXNzIGlzIGFuIElQdjQgYWRkcmVzcywgb3RoZXJ3aXNlYEZBTFNFYCIsICJwYXJhbWV0ZXJfZGVzYyI6ICJOZXQuSVA6IEFuIElQIGFkZHJlc3MgdG8gYmUgY2hlY2tlZCBpZiBpdCdzIElQdjQuIiwgImRlc2NyaXB0aW9uIjogIkNoZWNrIGlmIElQIGFkZHJlc3MgaXMgSVAgdmVyc2lvbiA0IiwgImV4YW1wbGVfY29kZSI6ICJTVFJJTkcgaXBTdHJpbmcgPSBcIjE5Mi4xNjguMS4xXCJcbk5ldC5JUCBpcEFkZHJlc3MgPSBOZXQuVG9JUChpcFN0cmluZylcblxuSUYgTmV0LklzSVB2NChpcEFkZHJlc3MpIFRIRU4ge1xuICAgIC8vIFRoZSBJUCBhZGRyZXNzIDE5Mi4xNjguMS4xIGlzIGFuIElQdjQgYWRkcmVzcy5cbn0gRUxTRSB7XG4gICAgLy8gVGhlIElQIGFkZHJlc3MgMTkyLjE2OC4xLjEgaXMgbm90IGFuIElQdjQgYWRkcmVzcy5cbn0iLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICJTVFJJTkcgaXBTdHJpbmcgPSBcIjE5Mi4xNjguMS4xXCJcbk5ldC5JUCBpcEFkZHJlc3MgPSBOZXQuVG9JUChpcFN0cmluZylcblxuSUYgTmV0LklzSVB2NChpcEFkZHJlc3MpIFRIRU4ge1xuICAgIC8vIFRoZSBJUCBhZGRyZXNzIDE5Mi4xNjguMS4xIGlzIGFuIElQdjQgYWRkcmVzcy5cbn0gRUxTRSB7XG4gICAgLy8gVGhlIElQIGFkZHJlc3MgMTkyLjE2OC4xLjEgaXMgbm90IGFuIElQdjQgYWRkcmVzcy5cbn0ifSwgeyJuYW1lIjogIk5ldC5Jc0lQdjYgKE5ldC5JUCkiLCAicmV0dXJuX3R5cGUiOiAiQk9PTEVBTiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zYFRSVUVgaWYgdGhlIGdpdmVuIElQIGFkZHJlc3MgaXMgSVB2Niwgb3RoZXJ3aXNlYEZBTFNFYCIsICJwYXJhbWV0ZXJfZGVzYyI6ICJOZXQuSVA6IFRoZSBJUCBhZGRyZXNzIHRvIGNoZWNrLiIsICJkZXNjcmlwdGlvbiI6ICJDaGVjayBpZiBJUCBhZGRyZXNzIGlzIElQIHZlcnNpb24gNiIsICJleGFtcGxlX2NvZGUiOiAiTmV0LklQIGNsaWVudElQID0gTVdHLkNsaWVudC5JUCgpXG5cbklGIE5ldC5Jc0lQdjYoY2xpZW50SVApIFRIRU4ge1xuICAgIC8vIFRoZSBjbGllbnQgSVAgaXMgYW4gSVB2NiBhZGRyZXNzLlxufSBFTFNFIHtcbiAgICAvLyBUaGUgY2xpZW50IElQIGlzIG5vdCBhbiBJUHY2IGFkZHJlc3MuXG59IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiTmV0LklQIGNsaWVudElQID0gTVdHLkNsaWVudC5JUCgpXG5cbklGIE5ldC5Jc0lQdjYoY2xpZW50SVApIFRIRU4ge1xuICAgIC8vIFRoZSBjbGllbnQgSVAgaXMgYW4gSVB2NiBhZGRyZXNzLlxufSBFTFNFIHtcbiAgICAvLyBUaGUgY2xpZW50IElQIGlzIG5vdCBhbiBJUHY2IGFkZHJlc3MuXG59In0sIHsibmFtZSI6ICJOZXQuT3ZlcmxhcHMgKE5ldC5JUFJhbmdlLCBOZXQuSVBSYW5nZSkiLCAicmV0dXJuX3R5cGUiOiAiQk9PTEVBTiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zYFRSVUVgaWYgdGhlIHR3byBJUCByYW5nZXMgb3ZlcmxhcCwgb3RoZXJ3aXNlYEZBTFNFYCIsICJwYXJhbWV0ZXJfZGVzYyI6ICJOZXQuSVBSYW5nZSBwYXJhbWV0ZXJzIHJlcHJlc2VudCB0aGUgdHdvIElQIHJhbmdlcyB0byBjaGVjayBmb3Igb3ZlcmxhcHMuIiwgImRlc2NyaXB0aW9uIjogIkNoZWNrIGlmIHR3byBJUCByYW5nZXMgb3ZlcmxhcCIsICJleGFtcGxlX2NvZGUiOiAiVkVDVE9SPE5ldC5JUFJhbmdlPiBsaXN0MSA9IFwiMTkyLjE2OC4xLjAvMjRcIiwgXCIxMC4wLjAuMC84XCJcblZFQ1RPUjxOZXQuSVBSYW5nZT4gbGlzdDIgPSBcIjE5Mi4xNjguMS4xMjgvMjVcIiwgXCIxNzIuMTYuMC4wLzEyXCJcblxuQk9PTEVBTiBvdmVybGFwID0gT3ZlcmxhcHMobGlzdDEsIGxpc3QyKVxuXG5JRiBvdmVybGFwIFRIRU4ge1xuICAgIC8vIFRoZSBJUCByYW5nZXMgb3ZlcmxhcC5cbn0gRUxTRSB7XG4gICAgLy8gVGhlIElQIHJhbmdlcyBkbyBub3Qgb3ZlcmxhcC5cbn0iLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICJWRUNUT1I8TmV0LklQUmFuZ2U+IGxpc3QxID0gXCIxOTIuMTY4LjEuMC8yNFwiLCBcIjEwLjAuMC4wLzhcIlxuVkVDVE9SPE5ldC5JUFJhbmdlPiBsaXN0MiA9IFwiMTkyLjE2OC4xLjEyOC8yNVwiLCBcIjE3Mi4xNi4wLjAvMTJcIlxuXG5CT09MRUFOIG92ZXJsYXAgPSBPdmVybGFwcyhsaXN0MSwgbGlzdDIpXG5cbklGIG92ZXJsYXAgVEhFTiB7XG4gICAgLy8gVGhlIElQIHJhbmdlcyBvdmVybGFwLlxufSBFTFNFIHtcbiAgICAvLyBUaGUgSVAgcmFuZ2VzIGRvIG5vdCBvdmVybGFwLlxufSJ9LCB7Im5hbWUiOiAiTmV0LlRvSVAgKFNUUklORykiLCAicmV0dXJuX3R5cGUiOiAiTmV0LklQIiwgInJldHVybl9kZXNjIjogIlJldHVybnMgYW4gSVAgYWRkcmVzcyByZXByZXNlbnRhdGlvbiBvZiB0aGUgZ2l2ZW4gc3RyaW5nLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJTVFJJTkc6IHRoZSBJUCBhZGRyZXNzIHRvIGJlIGNvbnZlcnRlZC4iLCAiZGVzY3JpcHRpb24iOiAiQ29udmVydCBhIFNUUklORyB0byBhbiBJUCBhZGRyZXNzLiBUaGlzIGZ1bmN0aW9uIGlzIHN5bm9ueW1vdXMgd2l0aCBOZXQuVG9JUEFkZHJlc3MoKS4iLCAiZXhhbXBsZV9jb2RlIjogIlNUUklORyBpcFN0cmluZyA9IFwiMTkyLjE2OC4xLjFcIlxuTmV0LklQIGlwQWRkcmVzcyA9IE5ldC5Ub0lQKGlwU3RyaW5nKVxuLy8gQ29udmVydGVkIElQIEFkZHJlc3M6ICsgaXBBZGRyZXNzIiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiU1RSSU5HIGlwU3RyaW5nID0gXCIxOTIuMTY4LjEuMVwiXG5OZXQuSVAgaXBBZGRyZXNzID0gTmV0LlRvSVAoaXBTdHJpbmcpXG4vLyBDb252ZXJ0ZWQgSVAgQWRkcmVzczogKyBpcEFkZHJlc3MifSwgeyJuYW1lIjogIk5ldC5Ub0lQTGlzdCAoVkVDVE9SPFNUUklORz4pIiwgInJldHVybl90eXBlIjogIlZFQ1RPUjxOZXQuSVA+IiwgInJldHVybl9kZXNjIjogIlJldHVybnMgYSB2ZWN0b3Igd2hlcmUgZWFjaCBzdHJpbmcgaW4gdGhlIGlucHV0IGxpc3QgaXMgY29udmVydGVkIHRvIGFuIElQIGFkZHJlc3MuIiwgInBhcmFtZXRlcl9kZXNjIjogIlZFQ1RPUjogYSBsaXN0IG9mIFNUUklOR3MgdG8gYmUgY29udmVydGVkIHRvIGFuIElQIGxpc3QiLCAiZGVzY3JpcHRpb24iOiAiQ29udmVydCBhIFNUUklORyBsaXN0IHRvIGFuIElQIGxpc3QiLCAiZXhhbXBsZV9jb2RlIjogIi8vIERlZmluZSBhIHZlY3RvciBvZiBzdHJpbmdzIHJlcHJlc2VudGluZyBJUCBhZGRyZXNzZXNcblZFQ1RPUjxTVFJJTkc+IGlwU3RyaW5ncyA9IFwiMTkyLjE2OC4xLjFcIiwgXCIxMC4wLjAuMVwiLCBcIjE3Mi4xNi4wLjFcIlxuXG4vLyBDb252ZXJ0IHRoZSB2ZWN0b3Igb2Ygc3RyaW5ncyB0byBhIGxpc3Qgb2YgTmV0LklQIG9iamVjdHNcblZFQ1RPUjxOZXQuSVA+IGlwTGlzdCA9IE5ldC5Ub0lQTGlzdChpcFN0cmluZ3MpXG5cbi8vIENvbnZlcnRlZCBJUCBMaXN0OiBcbi8vIGlwTGlzdCIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIi8vIERlZmluZSBhIHZlY3RvciBvZiBzdHJpbmdzIHJlcHJlc2VudGluZyBJUCBhZGRyZXNzZXNcblZFQ1RPUjxTVFJJTkc+IGlwU3RyaW5ncyA9IFwiMTkyLjE2OC4xLjFcIiwgXCIxMC4wLjAuMVwiLCBcIjE3Mi4xNi4wLjFcIlxuXG4vLyBDb252ZXJ0IHRoZSB2ZWN0b3Igb2Ygc3RyaW5ncyB0byBhIGxpc3Qgb2YgTmV0LklQIG9iamVjdHNcblZFQ1RPUjxOZXQuSVA+IGlwTGlzdCA9IE5ldC5Ub0lQTGlzdChpcFN0cmluZ3MpXG5cbi8vIENvbnZlcnRlZCBJUCBMaXN0OiBcbi8vIGlwTGlzdCJ9LCB7Im5hbWUiOiAiTmV0LlRvSVBSYW5nZSAoU1RSSU5HKSIsICJyZXR1cm5fdHlwZSI6ICJOZXQuSVBSYW5nZSIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIGFuIElQIHJhbmdlIHBhcnNlZCBmcm9tIHRoZSBwcm92aWRlZCBzdHJpbmcuIiwgInBhcmFtZXRlcl9kZXNjIjogIlNUUklORzogYW4gSVAgYWRkcmVzcyBvciByYW5nZSB0aGF0IHdpbGwgYmUgY29udmVydGVkIHRvIGFuIElQIHJhbmdlIG9iamVjdC4iLCAiZGVzY3JpcHRpb24iOiAiQ29udmVydCBhIFNUUklORyB0byBhbiBJUCByYW5nZSIsICJleGFtcGxlX2NvZGUiOiAiU1RSSU5HIGlwUmFuZ2VTdHJpbmcgPSBcIjE5Mi4xNjguMS4wLzI0XCJcbk5ldC5JUFJhbmdlIGlwUmFuZ2UgPSBOZXQuVG9JUFJhbmdlKGlwUmFuZ2VTdHJpbmcpXG5cbi8vIEFzc3VtaW5nIHdlIGhhdmUgYSBmdW5jdGlvbiB0byBnZXQgdGhlIGNsaWVudCdzIElQIGFkZHJlc3Ncbk5ldC5JUCBjbGllbnRJUCA9IEdldENsaWVudElQKClcblxuSUYgY2xpZW50SVAgSU4gaXBSYW5nZSBUSEVOIHtcbiAgICAvLyBDbGllbnQgSVAgaXMgd2l0aGluIHRoZSBzcGVjaWZpZWQgcmFuZ2UuXG4gICAgTVdHLkFsbG93KFwiSVAgd2l0aGluIHJhbmdlXCIpXG59IEVMU0Uge1xuICAgIC8vIENsaWVudCBJUCBpcyBub3Qgd2l0aGluIHRoZSBzcGVjaWZpZWQgcmFuZ2UuXG4gICAgTVdHLkJsb2NrKFwiSVAgbm90IHdpdGhpbiByYW5nZVwiKVxufVxuXG4vLyBEdW1teSBmdW5jdGlvbiB0byBzaW11bGF0ZSBnZXR0aW5nIHRoZSBjbGllbnQncyBJUCBhZGRyZXNzXG5GVU5DVElPTiBHZXRDbGllbnRJUCgpIFJFVFVSTlMgTmV0LklQIHtcbiAgICAvLyBUaGlzIHdvdWxkIG5vcm1hbGx5IGJlIHJlcGxhY2VkIHdpdGggYWN0dWFsIGxvZ2ljIHRvIGdldCB0aGUgY2xpZW50J3MgSVBcbiAgICBSRVRVUk4gTmV0LlRvSVAoXCIxOTIuMTY4LjEuNVwiKVxufSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIlNUUklORyBpcFJhbmdlU3RyaW5nID0gXCIxOTIuMTY4LjEuMC8yNFwiXG5OZXQuSVBSYW5nZSBpcFJhbmdlID0gTmV0LlRvSVBSYW5nZShpcFJhbmdlU3RyaW5nKVxuXG4vLyBBc3N1bWluZyB3ZSBoYXZlIGEgZnVuY3Rpb24gdG8gZ2V0IHRoZSBjbGllbnQncyBJUCBhZGRyZXNzXG5OZXQuSVAgY2xpZW50SVAgPSBHZXRDbGllbnRJUCgpXG5cbklGIGNsaWVudElQIElOIGlwUmFuZ2UgVEhFTiB7XG4gICAgLy8gQ2xpZW50IElQIGlzIHdpdGhpbiB0aGUgc3BlY2lmaWVkIHJhbmdlLlxuICAgIE1XRy5BbGxvdyhcIklQIHdpdGhpbiByYW5nZVwiKVxufSBFTFNFIHtcbiAgICAvLyBDbGllbnQgSVAgaXMgbm90IHdpdGhpbiB0aGUgc3BlY2lmaWVkIHJhbmdlLlxuICAgIE1XRy5CbG9jayhcIklQIG5vdCB3aXRoaW4gcmFuZ2VcIilcbn1cblxuLy8gRHVtbXkgZnVuY3Rpb24gdG8gc2ltdWxhdGUgZ2V0dGluZyB0aGUgY2xpZW50J3MgSVAgYWRkcmVzc1xuRlVOQ1RJT04gR2V0Q2xpZW50SVAoKSBSRVRVUk5TIE5ldC5JUCB7XG4gICAgLy8gVGhpcyB3b3VsZCBub3JtYWxseSBiZSByZXBsYWNlZCB3aXRoIGFjdHVhbCBsb2dpYyB0byBnZXQgdGhlIGNsaWVudCdzIElQXG4gICAgUkVUVVJOIE5ldC5Ub0lQKFwiMTkyLjE2OC4xLjVcIilcbn0ifSwgeyJuYW1lIjogIk5ldC5Ub0lQUmFuZ2UgKFZFQ1RPUjxTVFJJTkc+KSIsICJyZXR1cm5fdHlwZSI6ICJWRUNUT1I8TmV0LklQUmFuZ2U+IiwgInJldHVybl9kZXNjIjogIlJldHVybnMgYSB2ZWN0b3Igb2YgSVAgcmFuZ2VzIGNvbnZlcnRlZCBmcm9tIGEgdmVjdG9yIG9mIHN0cmluZ3MuIiwgInBhcmFtZXRlcl9kZXNjIjogIlZFQ1RPUjogQSBsaXN0IG9mIFNUUklORyByZXByZXNlbnRhdGlvbnMgb2YgSVAgYWRkcmVzc2VzIHRvIGJlIGNvbnZlcnRlZCBpbnRvIGEgcmFuZ2Ugb2YgSVAgYWRkcmVzc2VzLiIsICJkZXNjcmlwdGlvbiI6ICJDb252ZXJ0IFNUUklORyBsaXN0IHRvIGFuIElQIHJhbmdlIGxpc3QiLCAiZXhhbXBsZV9jb2RlIjogIi8vIERlZmluZSBhIFZFQ1RPUiBvZiBTVFJJTkdzIHJlcHJlc2VudGluZyBJUCBhZGRyZXNzZXMgb3IgcmFuZ2VzXG5WRUNUT1I8U1RSSU5HPiBpcFN0cmluZ3MgPSBcIjE5Mi4xNjguMS4wLzI0XCIsIFwiMTAuMC4wLjFcIiwgXCIxNzIuMTYuMC4wLzE2XCJcblxuLy8gQ29udmVydCB0aGUgVkVDVE9SIG9mIFNUUklOR3MgdG8gYSBWRUNUT1I8TmV0LklQUmFuZ2U+IG9iamVjdFxuVkVDVE9SPE5ldC5JUFJhbmdlPiBpcFJhbmdlcyA9IE5ldC5Ub0lQUmFuZ2UoaXBTdHJpbmdzKVxuXG4vLyBVc2UgdGhlIGlwUmFuZ2VzIG9iamVjdCBmb3IgZnVydGhlciBwcm9jZXNzaW5nXG5OZXQuSVAgdGVzdElQID0gTmV0LklQKFwiMTkyLjE2OC4xLjVcIilcbkJPT0xFQU4gaXNJblJhbmdlID0gRkFMU0VcblxuLy8gQ2hlY2sgaWYgdGhlIHRlc3RJUCBpcyB3aXRoaW4gYW55IG9mIHRoZSBkZWZpbmVkIHJhbmdlc1xuRk9SIEVBQ0ggcmFuZ2UgSU4gaXBSYW5nZXMge1xuICAgIElGIHJhbmdlLkNvbnRhaW5zKHRlc3RJUCkgVEhFTiB7XG4gICAgICAgIGlzSW5SYW5nZSA9IFRSVUVcbiAgICAgICAgQlJFQUtcbiAgICB9XG59XG5cbi8vIFByaW50IHRoZSByZXN1bHRcbklGIGlzSW5SYW5nZSBUSEVOIHtcbiAgICAvLyBJUCBpcyB3aXRoaW4gdGhlIHJhbmdlXG59IEVMU0Uge1xuICAgIC8vIElQIGlzIG5vdCB3aXRoaW4gdGhlIHJhbmdlXG59IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiLy8gRGVmaW5lIGEgVkVDVE9SIG9mIFNUUklOR3MgcmVwcmVzZW50aW5nIElQIGFkZHJlc3NlcyBvciByYW5nZXNcblZFQ1RPUjxTVFJJTkc+IGlwU3RyaW5ncyA9IFwiMTkyLjE2OC4xLjAvMjRcIiwgXCIxMC4wLjAuMVwiLCBcIjE3Mi4xNi4wLjAvMTZcIlxuXG4vLyBDb252ZXJ0IHRoZSBWRUNUT1Igb2YgU1RSSU5HcyB0byBhIFZFQ1RPUjxOZXQuSVBSYW5nZT4gb2JqZWN0XG5WRUNUT1I8TmV0LklQUmFuZ2U+IGlwUmFuZ2VzID0gTmV0LlRvSVBSYW5nZShpcFN0cmluZ3MpXG5cbi8vIFVzZSB0aGUgaXBSYW5nZXMgb2JqZWN0IGZvciBmdXJ0aGVyIHByb2Nlc3Npbmdcbk5ldC5JUCB0ZXN0SVAgPSBOZXQuSVAoXCIxOTIuMTY4LjEuNVwiKVxuQk9PTEVBTiBpc0luUmFuZ2UgPSBGQUxTRVxuXG4vLyBDaGVjayBpZiB0aGUgdGVzdElQIGlzIHdpdGhpbiBhbnkgb2YgdGhlIGRlZmluZWQgcmFuZ2VzXG5GT1IgRUFDSCByYW5nZSBJTiBpcFJhbmdlcyB7XG4gICAgSUYgcmFuZ2UuQ29udGFpbnModGVzdElQKSBUSEVOIHtcbiAgICAgICAgaXNJblJhbmdlID0gVFJVRVxuICAgICAgICBCUkVBS1xuICAgIH1cbn1cblxuLy8gUHJpbnQgdGhlIHJlc3VsdFxuSUYgaXNJblJhbmdlIFRIRU4ge1xuICAgIC8vIElQIGlzIHdpdGhpbiB0aGUgcmFuZ2Vcbn0gRUxTRSB7XG4gICAgLy8gSVAgaXMgbm90IHdpdGhpbiB0aGUgcmFuZ2Vcbn0ifSwgeyJuYW1lIjogIk5ldC5Ub1NUUklORyAoTmV0LklQKSIsICJyZXR1cm5fdHlwZSI6ICJTVFJJTkciLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyB0aGUgSVAgYWRkcmVzcyBhcyBhIHN0cmluZy4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiTmV0LklQOiB0aGUgSVAgYWRkcmVzcyB0byBjb252ZXJ0IiwgImRlc2NyaXB0aW9uIjogIkNvbnZlcnQgYW4gSVAgdG8gYSBTVFJJTkciLCAiZXhhbXBsZV9jb2RlIjogIk5ldC5JUCBpcEFkZHJlc3MgPSBOZXQuSVAoXCIxOTIuMTY4LjEuMVwiKVxuU1RSSU5HIGlwU3RyaW5nID0gTmV0LlRvU3RyaW5nKGlwQWRkcmVzcylcbi8vIFRoZSBJUCBhZGRyZXNzIGFzIGEgc3RyaW5nIGlzOiBcIiArIGlwU3RyaW5nIiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiTmV0LklQIGlwQWRkcmVzcyA9IE5ldC5JUChcIjE5Mi4xNjguMS4xXCIpXG5TVFJJTkcgaXBTdHJpbmcgPSBOZXQuVG9TdHJpbmcoaXBBZGRyZXNzKVxuLy8gVGhlIElQIGFkZHJlc3MgYXMgYSBzdHJpbmcgaXM6IFwiICsgaXBTdHJpbmcifSwgeyJuYW1lIjogIk5ldC5Ub1NUUklORyAoTmV0LklQUmFuZ2UpIiwgInJldHVybl90eXBlIjogIlNUUklORyIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIHRoZSBJUCBhZGRyZXNzIHJhbmdlIGFzIGEgc3RyaW5nLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJOZXQuSVBSYW5nZTogdGhlIElQIGFkZHJlc3MgcmFuZ2UgdG8gY29udmVydCIsICJkZXNjcmlwdGlvbiI6ICJDb252ZXJ0IGFuIElQIHJhbmdlIHRvIGEgU1RSSU5HIiwgImV4YW1wbGVfY29kZSI6ICIvLyBEZWZpbmUgYW4gSVAgcmFuZ2Vcbk5ldC5JUFJhbmdlIGlwUmFuZ2UgPSBOZXQuSVBSYW5nZShcIjE5Mi4xNjguMS4wXCIsIFwiMTkyLjE2OC4xLjI1NVwiKVxuXG4vLyBDb252ZXJ0IHRoZSBJUCByYW5nZSB0byBhIHN0cmluZ1xuU1RSSU5HIGlwUmFuZ2VTdHJpbmcgPSBOZXQuVG9TdHJpbmcoaXBSYW5nZSlcblxuLy8gVGhlIElQIHJhbmdlIGlzOiBcbi8vIGlwUmFuZ2VTdHJpbmciLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICIvLyBEZWZpbmUgYW4gSVAgcmFuZ2Vcbk5ldC5JUFJhbmdlIGlwUmFuZ2UgPSBOZXQuSVBSYW5nZShcIjE5Mi4xNjguMS4wXCIsIFwiMTkyLjE2OC4xLjI1NVwiKVxuXG4vLyBDb252ZXJ0IHRoZSBJUCByYW5nZSB0byBhIHN0cmluZ1xuU1RSSU5HIGlwUmFuZ2VTdHJpbmcgPSBOZXQuVG9TdHJpbmcoaXBSYW5nZSlcblxuLy8gVGhlIElQIHJhbmdlIGlzOiBcbi8vIGlwUmFuZ2VTdHJpbmcifSwgeyJuYW1lIjogIk5ldC5Ub1NUUklORyAoVkVDVE9SPE5ldC5JUD4pIiwgInJldHVybl90eXBlIjogIlNUUklORyIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIElQIGxpc3QuIiwgInBhcmFtZXRlcl9kZXNjIjogIlZFQ1RPUjogdGhlIGxpc3Qgb2YgSVAgYWRkcmVzcyB0byBjb252ZXJ0IiwgImRlc2NyaXB0aW9uIjogIkNvbnZlcnQgYW4gSVAgbGlzdCB0byBhIFNUUklORyIsICJleGFtcGxlX2NvZGUiOiAiLy8gRGVmaW5lIGEgVkVDVE9SIG9mIE5ldC5JUFxuVkVDVE9SPE5ldC5JUD4gaXBMaXN0ID0gTmV0LklQKFwiMTkyLjE2OC4xLjFcIiksIE5ldC5JUChcIjEwLjAuMC4xXCIpLCBOZXQuSVAoXCIxNzIuMTYuMC4xXCIpO1xuXG4vLyBDb252ZXJ0IHRoZSBWRUNUT1Igb2YgTmV0LklQIHRvIGEgU1RSSU5HXG5TVFJJTkcgaXBTdHJpbmcgPSBOZXQuVG9TdHJpbmcoaXBMaXN0KTtcblxuLy8gUHJpbnQgdGhlIHJlc3VsdGluZyBTVFJJTkcgdG8gdGhlIGNvbnNvbGUgd2FzIHByZXZpb3VzbHkgZG9uZSBoZXJlXG4vLyBpcFN0cmluZyIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIi8vIERlZmluZSBhIFZFQ1RPUiBvZiBOZXQuSVBcblZFQ1RPUjxOZXQuSVA+IGlwTGlzdCA9IE5ldC5JUChcIjE5Mi4xNjguMS4xXCIpLCBOZXQuSVAoXCIxMC4wLjAuMVwiKSwgTmV0LklQKFwiMTcyLjE2LjAuMVwiKTtcblxuLy8gQ29udmVydCB0aGUgVkVDVE9SIG9mIE5ldC5JUCB0byBhIFNUUklOR1xuU1RSSU5HIGlwU3RyaW5nID0gTmV0LlRvU3RyaW5nKGlwTGlzdCk7XG5cbi8vIFByaW50IHRoZSByZXN1bHRpbmcgU1RSSU5HIHRvIHRoZSBjb25zb2xlIHdhcyBwcmV2aW91c2x5IGRvbmUgaGVyZVxuLy8gaXBTdHJpbmcifSwgeyJuYW1lIjogIk5ldC5Ub1NUUklORyAoVkVDVE9SPE5ldC5JUFJhbmdlPikiLCAicmV0dXJuX3R5cGUiOiAiU1RSSU5HIiwgInJldHVybl9kZXNjIjogIlJldHVybnMgYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIHByb3ZpZGVkIElQIHJhbmdlIGxpc3QuIiwgInBhcmFtZXRlcl9kZXNjIjogIlZFQ1RPUjogVGhlIGxpc3Qgb2YgSVAgcmFuZ2VzIHRvIGJlIGNvbnZlcnRlZCBpbnRvIGEgU1RSSU5HLiIsICJkZXNjcmlwdGlvbiI6ICJDb252ZXJ0IGFuIElQIHJhbmdlIGxpc3QgdG8gYSBTVFJJTkciLCAiZXhhbXBsZV9jb2RlIjogIi8vIERlZmluZSBhIFZFQ1RPUiBvZiBOZXQuSVBSYW5nZVxuVkVDVE9SPE5ldC5JUFJhbmdlPiBpcFJhbmdlcyA9IE5ldC5JUFJhbmdlKFwiMTkyLjE2OC4xLjAvMjRcIiksIE5ldC5JUFJhbmdlKFwiMTAuMC4wLjAvOFwiKTtcblxuLy8gQ29udmVydCB0aGUgVkVDVE9SIG9mIE5ldC5JUFJhbmdlIHRvIGEgU1RSSU5HXG5TVFJJTkcgaXBSYW5nZXNTdHJpbmcgPSBOZXQuVG9TdHJpbmcoaXBSYW5nZXMpO1xuXG4vLyBQcmludCB0aGUgcmVzdWx0aW5nIFNUUklORyB0byB0aGUgY29uc29sZVxuLy8gREVCVUcoaXBSYW5nZXNTdHJpbmcpIiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiLy8gRGVmaW5lIGEgVkVDVE9SIG9mIE5ldC5JUFJhbmdlXG5WRUNUT1I8TmV0LklQUmFuZ2U+IGlwUmFuZ2VzID0gTmV0LklQUmFuZ2UoXCIxOTIuMTY4LjEuMC8yNFwiKSwgTmV0LklQUmFuZ2UoXCIxMC4wLjAuMC84XCIpO1xuXG4vLyBDb252ZXJ0IHRoZSBWRUNUT1Igb2YgTmV0LklQUmFuZ2UgdG8gYSBTVFJJTkdcblNUUklORyBpcFJhbmdlc1N0cmluZyA9IE5ldC5Ub1N0cmluZyhpcFJhbmdlcyk7XG5cbi8vIFByaW50IHRoZSByZXN1bHRpbmcgU1RSSU5HIHRvIHRoZSBjb25zb2xlXG4vLyBERUJVRyhpcFJhbmdlc1N0cmluZykifSwgeyJuYW1lIjogIk92ZXJsYXBzIChSZWdFeEpTaS5MaXN0LCBSZWdFeEpTaS5MaXN0KSIsICJyZXR1cm5fdHlwZSI6ICJCT09MRUFOIiwgInJldHVybl9kZXNjIjogIlJldHVybnNgVFJVRWBpZiBhbnkgb2YgdGhlIGVsZW1lbnRzIGluIG9uZSBsaXN0IGNhbiBiZSBmb3VuZCBpbiB0aGUgb3RoZXIuIiwgInBhcmFtZXRlcl9kZXNjIjogIlR3byBsaXN0cyBmb3IgY29tcGFyaXNvbi4iLCAiZGVzY3JpcHRpb24iOiAiQ2hlY2sgaWYgdGhlIHR3byBsaXN0cyBoYXZlIGFueSBvdmVybGFwcGluZyBlbGVtZW50cy4iLCAiZXhhbXBsZV9jb2RlIjogIlJlZ0V4SlNpLkxpc3QgbGlzdDEgPSBbXCJleGFtcGxlX2xpc3QxXCJdXG5SZWdFeEpTaS5MaXN0IGxpc3QyID0gW1wiZXhhbXBsZV9saXN0MlwiXVxuXG5JRiBPdmVybGFwcyhsaXN0MSwgbGlzdDIpIFRIRU4ge1xuICAgIC8vIFRoZSBsaXN0cyBoYXZlIG92ZXJsYXBwaW5nIGVsZW1lbnRzLlxufSBFTFNFIHtcbiAgICAvLyBUaGUgbGlzdHMgZG8gbm90IGhhdmUgb3ZlcmxhcHBpbmcgZWxlbWVudHMuXG59IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiUmVnRXhKU2kuTGlzdCBsaXN0MSA9IFtcImV4YW1wbGVfbGlzdDFcIl1cblJlZ0V4SlNpLkxpc3QgbGlzdDIgPSBbXCJleGFtcGxlX2xpc3QyXCJdXG5cbklGIE92ZXJsYXBzKGxpc3QxLCBsaXN0MikgVEhFTiB7XG4gICAgLy8gVGhlIGxpc3RzIGhhdmUgb3ZlcmxhcHBpbmcgZWxlbWVudHMuXG59IEVMU0Uge1xuICAgIC8vIFRoZSBsaXN0cyBkbyBub3QgaGF2ZSBvdmVybGFwcGluZyBlbGVtZW50cy5cbn0ifSwgeyJuYW1lIjogIk92ZXJsYXBzIChWRUNUT1I8TWVkaWFUeXBlPiwgVkVDVE9SPE1lZGlhVHlwZT4pIiwgInJldHVybl90eXBlIjogIkJPT0xFQU4iLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJuc2BUUlVFYGlmIGFueSBvZiB0aGUgZWxlbWVudHMgaW4gb25lIGxpc3QgY2FuIGJlIGZvdW5kIGluIHRoZSBvdGhlci4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiVHdvIGxpc3RzIGZvciBjb21wYXJpc29uLiIsICJkZXNjcmlwdGlvbiI6ICJDaGVjayBpZiB0aGUgdHdvIGxpc3RzIGhhdmUgYW55IG92ZXJsYXBwaW5nIGVsZW1lbnRzLiIsICJleGFtcGxlX2NvZGUiOiAiVkVDVE9SPE1lZGlhVHlwZT4gYWxsb3dlZE1lZGlhVHlwZXMgPSBbXCJpbWFnZS9qcGVnXCIsIFwiaW1hZ2UvcG5nXCIsIFwiYXBwbGljYXRpb24vcGRmXCJdXG5WRUNUT1I8TWVkaWFUeXBlPiByZXF1ZXN0TWVkaWFUeXBlcyA9IFtcImltYWdlL2dpZlwiLCBcImltYWdlL2pwZWdcIl1cblxuSUYgT3ZlcmxhcHMoYWxsb3dlZE1lZGlhVHlwZXMsIHJlcXVlc3RNZWRpYVR5cGVzKSBUSEVOIHtcbiAgICAvLyBUaGVyZSBpcyBhbiBvdmVybGFwIGluIG1lZGlhIHR5cGVzLlxuICAgIE1XRy5BbGxvdyhcIk1lZGlhVHlwZU92ZXJsYXBcIilcbn0gRUxTRSB7XG4gICAgLy8gTm8gb3ZlcmxhcCBpbiBtZWRpYSB0eXBlcy5cbiAgICBNV0cuQmxvY2soXCJOb01lZGlhVHlwZU92ZXJsYXBcIilcbn0iLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICJWRUNUT1I8TWVkaWFUeXBlPiBhbGxvd2VkTWVkaWFUeXBlcyA9IFtcImltYWdlL2pwZWdcIiwgXCJpbWFnZS9wbmdcIiwgXCJhcHBsaWNhdGlvbi9wZGZcIl1cblZFQ1RPUjxNZWRpYVR5cGU+IHJlcXVlc3RNZWRpYVR5cGVzID0gW1wiaW1hZ2UvZ2lmXCIsIFwiaW1hZ2UvanBlZ1wiXVxuXG5JRiBPdmVybGFwcyhhbGxvd2VkTWVkaWFUeXBlcywgcmVxdWVzdE1lZGlhVHlwZXMpIFRIRU4ge1xuICAgIC8vIFRoZXJlIGlzIGFuIG92ZXJsYXAgaW4gbWVkaWEgdHlwZXMuXG4gICAgTVdHLkFsbG93KFwiTWVkaWFUeXBlT3ZlcmxhcFwiKVxufSBFTFNFIHtcbiAgICAvLyBObyBvdmVybGFwIGluIG1lZGlhIHR5cGVzLlxuICAgIE1XRy5CbG9jayhcIk5vTWVkaWFUeXBlT3ZlcmxhcFwiKVxufSJ9LCB7Im5hbWUiOiAiT3ZlcmxhcHMgKFZFQ1RPUjxNV0cuSG9zdEFuZENlcnRpZmljYXRlPiwgVkVDVE9SPE1XRy5Ib3N0QW5kQ2VydGlmaWNhdGU+KSIsICJyZXR1cm5fdHlwZSI6ICJCT09MRUFOIiwgInJldHVybl9kZXNjIjogIlJldHVybnNgVFJVRWBpZiBhbnkgb2YgdGhlIGVsZW1lbnRzIGluIG9uZSBsaXN0IGNhbiBiZSBmb3VuZCBpbiB0aGUgb3RoZXIuIiwgInBhcmFtZXRlcl9kZXNjIjogIlR3byBsaXN0cyBmb3IgY29tcGFyaXNvbi4iLCAiZGVzY3JpcHRpb24iOiAiQ2hlY2sgaWYgdGhlIHR3byBsaXN0cyBoYXZlIGFueSBvdmVybGFwcGluZyBlbGVtZW50cy4iLCAiZXhhbXBsZV9jb2RlIjogIlZFQ1RPUjxNV0cuSG9zdEFuZENlcnRpZmljYXRlPiBsaXN0MSA9IFtcImhvc3RfY2VydF9saXN0MVwiXVxuVkVDVE9SPE1XRy5Ib3N0QW5kQ2VydGlmaWNhdGU+IGxpc3QyID0gW1wiaG9zdF9jZXJ0X2xpc3QyXCJdXG5cbklGIE92ZXJsYXBzKGxpc3QxLCBsaXN0MikgVEhFTiB7XG4gICAgLy8gVGhlIGxpc3RzIGhhdmUgb3ZlcmxhcHBpbmcgZWxlbWVudHMuXG4gICAgTVdHLkJsb2NrKFwiQWNjZXNzIGJsb2NrZWQgZHVlIHRvIG92ZXJsYXBwaW5nIGhvc3QgYW5kIGNlcnRpZmljYXRlLlwiKVxufSBFTFNFIHtcbiAgICAvLyBUaGUgbGlzdHMgZG8gbm90IGhhdmUgb3ZlcmxhcHBpbmcgZWxlbWVudHMuXG4gICAgTVdHLkFsbG93KFwiTm8gb3ZlcmxhcCBkZXRlY3RlZC5cIilcbn0iLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICJWRUNUT1I8TVdHLkhvc3RBbmRDZXJ0aWZpY2F0ZT4gbGlzdDEgPSBbXCJob3N0X2NlcnRfbGlzdDFcIl1cblZFQ1RPUjxNV0cuSG9zdEFuZENlcnRpZmljYXRlPiBsaXN0MiA9IFtcImhvc3RfY2VydF9saXN0MlwiXVxuXG5JRiBPdmVybGFwcyhsaXN0MSwgbGlzdDIpIFRIRU4ge1xuICAgIC8vIFRoZSBsaXN0cyBoYXZlIG92ZXJsYXBwaW5nIGVsZW1lbnRzLlxuICAgIE1XRy5CbG9jayhcIkFjY2VzcyBibG9ja2VkIGR1ZSB0byBvdmVybGFwcGluZyBob3N0IGFuZCBjZXJ0aWZpY2F0ZS5cIilcbn0gRUxTRSB7XG4gICAgLy8gVGhlIGxpc3RzIGRvIG5vdCBoYXZlIG92ZXJsYXBwaW5nIGVsZW1lbnRzLlxuICAgIE1XRy5BbGxvdyhcIk5vIG92ZXJsYXAgZGV0ZWN0ZWQuXCIpXG59In0sIHsibmFtZSI6ICJPdmVybGFwcyAoVkVDVE9SPE1XRy5VcmxDYXRlZ29yeT4sIFZFQ1RPUjxNV0cuVXJsQ2F0ZWdvcnk+KSIsICJyZXR1cm5fdHlwZSI6ICJCT09MRUFOIiwgInJldHVybl9kZXNjIjogIlJldHVybnNgVFJVRWBpZiBhbnkgb2YgdGhlIGVsZW1lbnRzIGluIG9uZSBsaXN0IGNhbiBiZSBmb3VuZCBpbiB0aGUgb3RoZXIuIiwgInBhcmFtZXRlcl9kZXNjIjogIlR3byBsaXN0cyBmb3IgY29tcGFyaXNvbi4iLCAiZGVzY3JpcHRpb24iOiAiQ2hlY2sgaWYgdGhlIHR3byBsaXN0cyBoYXZlIGFueSBvdmVybGFwcGluZyBlbGVtZW50cy4iLCAiZXhhbXBsZV9jb2RlIjogIlZFQ1RPUjxNV0cuVXJsQ2F0ZWdvcnk+IGFsbG93ZWRDYXRlZ29yaWVzID0gW1wiYWxsb3dlZF9jYXRlZ29yaWVzX2xpc3RcIl1cblZFQ1RPUjxNV0cuVXJsQ2F0ZWdvcnk+IGN1cnJlbnRDYXRlZ29yaWVzID0gTVdHLlVybCgpLkNhdGVnb3JpZXNcblxuSUYgT3ZlcmxhcHMoYWxsb3dlZENhdGVnb3JpZXMsIGN1cnJlbnRDYXRlZ29yaWVzKSBUSEVOIHtcbiAgICAvLyBDYXRlZ29yeSBhbGxvd2VkXG4gICAgTVdHLkFsbG93KFwiQ2F0ZWdvcnkgYWxsb3dlZFwiKVxufSBFTFNFIHtcbiAgICAvLyBDYXRlZ29yeSBub3QgYWxsb3dlZFxuICAgIE1XRy5CbG9jayhcIkNhdGVnb3J5IG5vdCBhbGxvd2VkXCIpXG59IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiVkVDVE9SPE1XRy5VcmxDYXRlZ29yeT4gYWxsb3dlZENhdGVnb3JpZXMgPSBbXCJhbGxvd2VkX2NhdGVnb3JpZXNfbGlzdFwiXVxuVkVDVE9SPE1XRy5VcmxDYXRlZ29yeT4gY3VycmVudENhdGVnb3JpZXMgPSBNV0cuVXJsKCkuQ2F0ZWdvcmllc1xuXG5JRiBPdmVybGFwcyhhbGxvd2VkQ2F0ZWdvcmllcywgY3VycmVudENhdGVnb3JpZXMpIFRIRU4ge1xuICAgIC8vIENhdGVnb3J5IGFsbG93ZWRcbiAgICBNV0cuQWxsb3coXCJDYXRlZ29yeSBhbGxvd2VkXCIpXG59IEVMU0Uge1xuICAgIC8vIENhdGVnb3J5IG5vdCBhbGxvd2VkXG4gICAgTVdHLkJsb2NrKFwiQ2F0ZWdvcnkgbm90IGFsbG93ZWRcIilcbn0ifSwgeyJuYW1lIjogIk92ZXJsYXBzIChWRUNUT1I8TmV0LklQPiwgVkVDVE9SPE5ldC5JUD4pIiwgInJldHVybl90eXBlIjogIkJPT0xFQU4iLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJuc2BUUlVFYGlmIGFueSBvZiB0aGUgZWxlbWVudHMgaW4gb25lIGxpc3QgY2FuIGJlIGZvdW5kIGluIHRoZSBvdGhlci4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiVHdvIGxpc3RzIGZvciBjb21wYXJpc29uLiIsICJkZXNjcmlwdGlvbiI6ICJDaGVjayBpZiB0aGUgdHdvIGxpc3RzIGhhdmUgYW55IG92ZXJsYXBwaW5nIGVsZW1lbnRzLiIsICJleGFtcGxlX2NvZGUiOiAiVkVDVE9SPE5ldC5JUD4gbGlzdDEgPSBOZXQuSVAoXCIxOTIuMTY4LjEuMVwiKSwgTmV0LklQKFwiMTkyLjE2OC4xLjJcIiksIE5ldC5JUChcIjE5Mi4xNjguMS4zXCIpXG5WRUNUT1I8TmV0LklQPiBsaXN0MiA9IE5ldC5JUChcIjE5Mi4xNjguMS4zXCIpLCBOZXQuSVAoXCIxOTIuMTY4LjEuNFwiKSwgTmV0LklQKFwiMTkyLjE2OC4xLjVcIilcblxuSUYgT3ZlcmxhcHMobGlzdDEsIGxpc3QyKSBUSEVOIHtcbiAgICAvLyBJUCBsaXN0cyBvdmVybGFwXG4gICAgTVdHLkJsb2NrKFwiSVAgb3ZlcmxhcCBkZXRlY3RlZFwiKVxufSBFTFNFIHtcbiAgICAvLyBObyBJUCBvdmVybGFwXG4gICAgTVdHLkFsbG93KFwiTm8gSVAgb3ZlcmxhcCBkZXRlY3RlZFwiKVxufSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIlZFQ1RPUjxOZXQuSVA+IGxpc3QxID0gTmV0LklQKFwiMTkyLjE2OC4xLjFcIiksIE5ldC5JUChcIjE5Mi4xNjguMS4yXCIpLCBOZXQuSVAoXCIxOTIuMTY4LjEuM1wiKVxuVkVDVE9SPE5ldC5JUD4gbGlzdDIgPSBOZXQuSVAoXCIxOTIuMTY4LjEuM1wiKSwgTmV0LklQKFwiMTkyLjE2OC4xLjRcIiksIE5ldC5JUChcIjE5Mi4xNjguMS41XCIpXG5cbklGIE92ZXJsYXBzKGxpc3QxLCBsaXN0MikgVEhFTiB7XG4gICAgLy8gSVAgbGlzdHMgb3ZlcmxhcFxuICAgIE1XRy5CbG9jayhcIklQIG92ZXJsYXAgZGV0ZWN0ZWRcIilcbn0gRUxTRSB7XG4gICAgLy8gTm8gSVAgb3ZlcmxhcFxuICAgIE1XRy5BbGxvdyhcIk5vIElQIG92ZXJsYXAgZGV0ZWN0ZWRcIilcbn0ifSwgeyJuYW1lIjogIk92ZXJsYXBzIChWRUNUT1I8TmV0LklQUmFuZ2U+LCBWRUNUT1I8TmV0LklQUmFuZ2U+KSIsICJyZXR1cm5fdHlwZSI6ICJCT09MRUFOIiwgInJldHVybl9kZXNjIjogIlJldHVybnNgVFJVRWBpZiBhbnkgb2YgdGhlIGVsZW1lbnRzIGluIG9uZSBsaXN0IGNhbiBiZSBmb3VuZCBpbiB0aGUgb3RoZXIuIiwgInBhcmFtZXRlcl9kZXNjIjogIlR3byBsaXN0cyBmb3IgY29tcGFyaXNvbi4iLCAiZGVzY3JpcHRpb24iOiAiQ2hlY2sgaWYgdGhlIHR3byBsaXN0cyBoYXZlIGFueSBvdmVybGFwcGluZyBlbGVtZW50cy4iLCAiZXhhbXBsZV9jb2RlIjogIlZFQ1RPUjxOZXQuSVBSYW5nZT4gbGlzdDEgPSBbXCJJUFJhbmdlTGlzdDFcIl1cblZFQ1RPUjxOZXQuSVBSYW5nZT4gbGlzdDIgPSBbXCJJUFJhbmdlTGlzdDJcIl1cblxuSUYgT3ZlcmxhcHMobGlzdDEsIGxpc3QyKSBUSEVOIHtcbiAgICAvLyBUaGUgSVAgcmFuZ2VzIG92ZXJsYXAuXG4gICAgTVdHLkJsb2NrKFwiQWNjZXNzIGJsb2NrZWQgZHVlIHRvIG92ZXJsYXBwaW5nIElQIHJhbmdlcy5cIilcbn0gRUxTRSB7XG4gICAgLy8gVGhlIElQIHJhbmdlcyBkbyBub3Qgb3ZlcmxhcC5cbiAgICBNV0cuQWxsb3coXCJObyBvdmVybGFwIGRldGVjdGVkLlwiKVxufSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIlZFQ1RPUjxOZXQuSVBSYW5nZT4gbGlzdDEgPSBbXCJJUFJhbmdlTGlzdDFcIl1cblZFQ1RPUjxOZXQuSVBSYW5nZT4gbGlzdDIgPSBbXCJJUFJhbmdlTGlzdDJcIl1cblxuSUYgT3ZlcmxhcHMobGlzdDEsIGxpc3QyKSBUSEVOIHtcbiAgICAvLyBUaGUgSVAgcmFuZ2VzIG92ZXJsYXAuXG4gICAgTVdHLkJsb2NrKFwiQWNjZXNzIGJsb2NrZWQgZHVlIHRvIG92ZXJsYXBwaW5nIElQIHJhbmdlcy5cIilcbn0gRUxTRSB7XG4gICAgLy8gVGhlIElQIHJhbmdlcyBkbyBub3Qgb3ZlcmxhcC5cbiAgICBNV0cuQWxsb3coXCJObyBvdmVybGFwIGRldGVjdGVkLlwiKVxufSJ9LCB7Im5hbWUiOiAiT3ZlcmxhcHMgKFZFQ1RPUjxOVU1CRVI+LCBWRUNUT1I8TlVNQkVSPikiLCAicmV0dXJuX3R5cGUiOiAiQk9PTEVBTiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zYFRSVUVgaWYgYW55IG9mIHRoZSBlbGVtZW50cyBpbiBvbmUgbGlzdCBjYW4gYmUgZm91bmQgaW4gdGhlIG90aGVyLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJUd28gbGlzdHMgZm9yIGNvbXBhcmlzb24uIiwgImRlc2NyaXB0aW9uIjogIkNoZWNrIGlmIHRoZSB0d28gbGlzdHMgaGF2ZSBhbnkgb3ZlcmxhcHBpbmcgZWxlbWVudHMuIiwgImV4YW1wbGVfY29kZSI6ICJWRUNUT1I8TlVNQkVSPiB2ZWN0b3IxID0gMSwgMiwgMywgNCwgNVxuVkVDVE9SPE5VTUJFUj4gdmVjdG9yMiA9IDQsIDUsIDYsIDcsIDhcblxuSUYgT3ZlcmxhcHModmVjdG9yMSwgdmVjdG9yMikgVEhFTiB7XG4gICAgLy8gVGhlIHZlY3RvcnMgb3ZlcmxhcC5cbn0gRUxTRSB7XG4gICAgLy8gVGhlIHZlY3RvcnMgZG8gbm90IG92ZXJsYXAuXG59IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiVkVDVE9SPE5VTUJFUj4gdmVjdG9yMSA9IDEsIDIsIDMsIDQsIDVcblZFQ1RPUjxOVU1CRVI+IHZlY3RvcjIgPSA0LCA1LCA2LCA3LCA4XG5cbklGIE92ZXJsYXBzKHZlY3RvcjEsIHZlY3RvcjIpIFRIRU4ge1xuICAgIC8vIFRoZSB2ZWN0b3JzIG92ZXJsYXAuXG59IEVMU0Uge1xuICAgIC8vIFRoZSB2ZWN0b3JzIGRvIG5vdCBvdmVybGFwLlxufSJ9LCB7Im5hbWUiOiAiT3ZlcmxhcHMgKFZFQ1RPUjxTVFJJTkc+LCBWRUNUT1I8U1RSSU5HPikiLCAicmV0dXJuX3R5cGUiOiAiQk9PTEVBTiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zYFRSVUVgaWYgYW55IG9mIHRoZSBlbGVtZW50cyBpbiBvbmUgbGlzdCBjYW4gYmUgZm91bmQgaW4gdGhlIG90aGVyLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJUd28gbGlzdHMgZm9yIGNvbXBhcmlzb24uIiwgImRlc2NyaXB0aW9uIjogIkNoZWNrIGlmIHRoZSB0d28gbGlzdHMgaGF2ZSBhbnkgb3ZlcmxhcHBpbmcgZWxlbWVudHMuIiwgImV4YW1wbGVfY29kZSI6ICJWRUNUT1I8U1RSSU5HPiBsaXN0MSA9IFwiYXBwbGVcIiwgXCJiYW5hbmFcIiwgXCJjaGVycnlcIlxuVkVDVE9SPFNUUklORz4gbGlzdDIgPSBcImJhbmFuYVwiLCBcImRhdGVcIiwgXCJmaWdcIlxuXG5JRiBPdmVybGFwcyhsaXN0MSwgbGlzdDIpIFRIRU4ge1xuICAgIC8vIFRoZSBsaXN0cyBoYXZlIGNvbW1vbiBlbGVtZW50cy5cbn0gRUxTRSB7XG4gICAgLy8gVGhlIGxpc3RzIGRvIG5vdCBoYXZlIGNvbW1vbiBlbGVtZW50cy5cbn0iLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICJWRUNUT1I8U1RSSU5HPiBsaXN0MSA9IFwiYXBwbGVcIiwgXCJiYW5hbmFcIiwgXCJjaGVycnlcIlxuVkVDVE9SPFNUUklORz4gbGlzdDIgPSBcImJhbmFuYVwiLCBcImRhdGVcIiwgXCJmaWdcIlxuXG5JRiBPdmVybGFwcyhsaXN0MSwgbGlzdDIpIFRIRU4ge1xuICAgIC8vIFRoZSBsaXN0cyBoYXZlIGNvbW1vbiBlbGVtZW50cy5cbn0gRUxTRSB7XG4gICAgLy8gVGhlIGxpc3RzIGRvIG5vdCBoYXZlIGNvbW1vbiBlbGVtZW50cy5cbn0ifSwgeyJuYW1lIjogIk92ZXJsYXBzQ2FzZUluc2Vuc2l0aXZlIChWRUNUT1I8U1RSSU5HPiwgVkVDVE9SPFNUUklORz4pIiwgInJldHVybl90eXBlIjogIkJPT0xFQU4iLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyB0cnVlIGlmIHRoZXJlIGlzIGFueSBvdmVybGFwIChjYXNlLWluc2Vuc2l0aXZlKSBiZXR3ZWVuIHRoZSB0d28gdmVjdG9ycy4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiVHdvIFZFQ1RPUnMgZm9yIGNvbXBhcmlzb24uIiwgImRlc2NyaXB0aW9uIjogIkNoZWNrIGlmIHRoZSB0d28gbGlzdHMgaGF2ZSBhbnkgb3ZlcmxhcHBpbmcgZWxlbWVudHMgaWdub3JpbmcgY2FwaXRhbGl6YXRpb24uIiwgImV4YW1wbGVfY29kZSI6ICJWRUNUT1I8U1RSSU5HPiBsaXN0MSA9IFwiYXBwbGVcIiwgXCJiYW5hbmFcIiwgXCJjaGVycnlcIlxuVkVDVE9SPFNUUklORz4gbGlzdDIgPSBcIkJhbmFuYVwiLCBcImRhdGVcIiwgXCJlbGRlcmJlcnJ5XCJcblxuSUYgT3ZlcmxhcHNDYXNlSW5zZW5zaXRpdmUobGlzdDEsIGxpc3QyKSBUSEVOIHtcbiAgICAvLyBUaGVyZSBpcyBhbiBvdmVybGFwIGJldHdlZW4gdGhlIHR3byBsaXN0cy5cbn0gRUxTRSB7XG4gICAgLy8gVGhlcmUgaXMgbm8gb3ZlcmxhcCBiZXR3ZWVuIHRoZSB0d28gbGlzdHMuXG59IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiVkVDVE9SPFNUUklORz4gbGlzdDEgPSBcImFwcGxlXCIsIFwiYmFuYW5hXCIsIFwiY2hlcnJ5XCJcblZFQ1RPUjxTVFJJTkc+IGxpc3QyID0gXCJCYW5hbmFcIiwgXCJkYXRlXCIsIFwiZWxkZXJiZXJyeVwiXG5cbklGIE92ZXJsYXBzQ2FzZUluc2Vuc2l0aXZlKGxpc3QxLCBsaXN0MikgVEhFTiB7XG4gICAgLy8gVGhlcmUgaXMgYW4gb3ZlcmxhcCBiZXR3ZWVuIHRoZSB0d28gbGlzdHMuXG59IEVMU0Uge1xuICAgIC8vIFRoZXJlIGlzIG5vIG92ZXJsYXAgYmV0d2VlbiB0aGUgdHdvIGxpc3RzLlxufSJ9LCB7Im5hbWUiOiAiUkJJLkdldElzb2xhdGVBbGxTZWF0SW5mbyAoKSIsICJyZXR1cm5fdHlwZSI6ICJKU09OIiwgInJldHVybl9kZXNjIjogIlJldHVybnMgdGhlIG51bWJlciBvZiBzZWF0cyBjdXJyZW50bHkgdGFrZW4gaW4gdGhlIFJCSSBJc29sYXRlQWxsIGxpY2Vuc2UuIiwgInBhcmFtZXRlcl9kZXNjIjogIk5vbmUiLCAiZGVzY3JpcHRpb24iOiAiUmV0dXJucyB0aGUgTlVNQkVSIG9mIHNlYXRzIGN1cnJlbnRseSB0YWtlbiBpbiB0aGUgUkJJIElzb2xhdGVBbGwgbGljZW5zZSIsICJleGFtcGxlX2NvZGUiOiAiSlNPTiBzZWF0SW5mbyA9IFJCSS5HZXRJc29sYXRlQWxsU2VhdEluZm8oKVxuLy8gQ3VycmVudCBSQkkgSXNvbGF0ZUFsbCBzZWF0cyB0YWtlbjogXCIgKyBzZWF0SW5mbyIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIkpTT04gc2VhdEluZm8gPSBSQkkuR2V0SXNvbGF0ZUFsbFNlYXRJbmZvKClcbi8vIEN1cnJlbnQgUkJJIElzb2xhdGVBbGwgc2VhdHMgdGFrZW46IFwiICsgc2VhdEluZm8ifSwgeyJuYW1lIjogIlJCSS5HZXRSZXF1ZXN0SUQgKCkiLCAicmV0dXJuX3R5cGUiOiAiU1RSSU5HIiwgInJldHVybl9kZXNjIjogIlJldHVybnMgdGhlIFJCSSByZXF1ZXN0IElELiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJOb25lIiwgImRlc2NyaXB0aW9uIjogIlJldHVybiB0aGUgUkJJIHJlcXVlc3QgSUQiLCAiZXhhbXBsZV9jb2RlIjogIlNUUklORyByZXF1ZXN0SUQgPSBSQkkuR2V0UmVxdWVzdElEKClcbi8vIFJCSSBSZXF1ZXN0IElEOiAgKyByZXF1ZXN0SUQiLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICJTVFJJTkcgcmVxdWVzdElEID0gUkJJLkdldFJlcXVlc3RJRCgpXG4vLyBSQkkgUmVxdWVzdCBJRDogICsgcmVxdWVzdElEIn0sIHsibmFtZSI6ICJSQkkuR2V0U2Vzc2lvbklEICgpIiwgInJldHVybl90eXBlIjogIlNUUklORyIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIHRoZSBSQkkgc2Vzc2lvbiBJRC4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiTm9uZSIsICJkZXNjcmlwdGlvbiI6ICJSZXR1cm4gdGhlIFJCSSBzZXNzaW9uIElEIiwgImV4YW1wbGVfY29kZSI6ICJTVFJJTkcgc2Vzc2lvbklEID0gUkJJLkdldFNlc3Npb25JRCgpXG4vLyBSQkkgU2Vzc2lvbiBJRDogKyBzZXNzaW9uSUQiLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICJTVFJJTkcgc2Vzc2lvbklEID0gUkJJLkdldFNlc3Npb25JRCgpXG4vLyBSQkkgU2Vzc2lvbiBJRDogKyBzZXNzaW9uSUQifSwgeyJuYW1lIjogIlJCSS5HZXRUYWJJRCAoKSIsICJyZXR1cm5fdHlwZSI6ICJTVFJJTkciLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyB0aGUgUkJJIHRhYiBJRC4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiTm9uZSIsICJkZXNjcmlwdGlvbiI6ICJSZXR1cm4gdGhlIFJCSSB0YWIgSUQiLCAiZXhhbXBsZV9jb2RlIjogIi8vIENhbGwgdGhlIFJCSS5HZXRUYWJJRCgpIGZ1bmN0aW9uIGFuZCBzdG9yZSB0aGUgcmVzdWx0IGluIGEgdmFyaWFibGVcblNUUklORyB0YWJJRCA9IFJCSS5HZXRUYWJJRCgpXG5cbi8vIFRoZSBSQkkgVGFiIElEIGlzOiBcIiArIHRhYklEIiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiLy8gQ2FsbCB0aGUgUkJJLkdldFRhYklEKCkgZnVuY3Rpb24gYW5kIHN0b3JlIHRoZSByZXN1bHQgaW4gYSB2YXJpYWJsZVxuU1RSSU5HIHRhYklEID0gUkJJLkdldFRhYklEKClcblxuLy8gVGhlIFJCSSBUYWIgSUQgaXM6IFwiICsgdGFiSUQifSwgeyJuYW1lIjogIlJCSS5IYXNVc2VySXNvbGF0ZUFsbFNlYXQgKCkiLCAicmV0dXJuX3R5cGUiOiAiQk9PTEVBTiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zYFRSVUVgaWYgYSBzZWF0IGlzIGF2YWlsYWJsZSBmb3IgdGhlIGN1cnJlbnQgdXNlciBvbiB0aGUgUkJJIElzb2xhdGVBbGwgbGljZW5zZS4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiTm9uZSIsICJkZXNjcmlwdGlvbiI6ICJSZXR1cm5zIFRSVUUgaWYgYSBzZWF0IGlzIGF2YWlsYWJsZSBmb3IgdGhlIGN1cnJlbnQgdXNlciBvbiB0aGUgUkJJIElzb2xhdGVBbGwgbGljZW5zZSIsICJleGFtcGxlX2NvZGUiOiAiSUYgUkJJLkhhc1VzZXJJc29sYXRlQWxsU2VhdCgpIFRIRU4ge1xuICAgIC8vIEEgc2VhdCBpcyBhdmFpbGFibGUgZm9yIHRoZSBjdXJyZW50IHVzZXIgb24gdGhlIFJCSSBJc29sYXRlQWxsIGxpY2Vuc2UuXG4gICAgLy8gQWRkaXRpb25hbCBhY3Rpb25zIGNhbiBiZSB0YWtlbiBoZXJlIGlmIGEgc2VhdCBpcyBhdmFpbGFibGVcbn0gRUxTRSB7XG4gICAgLy8gTm8gc2VhdCBpcyBhdmFpbGFibGUgZm9yIHRoZSBjdXJyZW50IHVzZXIgb24gdGhlIFJCSSBJc29sYXRlQWxsIGxpY2Vuc2UuXG4gICAgLy8gQWRkaXRpb25hbCBhY3Rpb25zIGNhbiBiZSB0YWtlbiBoZXJlIGlmIG5vIHNlYXQgaXMgYXZhaWxhYmxlXG59IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiSUYgUkJJLkhhc1VzZXJJc29sYXRlQWxsU2VhdCgpIFRIRU4ge1xuICAgIC8vIEEgc2VhdCBpcyBhdmFpbGFibGUgZm9yIHRoZSBjdXJyZW50IHVzZXIgb24gdGhlIFJCSSBJc29sYXRlQWxsIGxpY2Vuc2UuXG4gICAgLy8gQWRkaXRpb25hbCBhY3Rpb25zIGNhbiBiZSB0YWtlbiBoZXJlIGlmIGEgc2VhdCBpcyBhdmFpbGFibGVcbn0gRUxTRSB7XG4gICAgLy8gTm8gc2VhdCBpcyBhdmFpbGFibGUgZm9yIHRoZSBjdXJyZW50IHVzZXIgb24gdGhlIFJCSSBJc29sYXRlQWxsIGxpY2Vuc2UuXG4gICAgLy8gQWRkaXRpb25hbCBhY3Rpb25zIGNhbiBiZSB0YWtlbiBoZXJlIGlmIG5vIHNlYXQgaXMgYXZhaWxhYmxlXG59In0sIHsibmFtZSI6ICJSQkkuSW5TZXNzaW9uQ3JlYXRpb24gKCkiLCAicmV0dXJuX3R5cGUiOiAiQk9PTEVBTiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIGlmIGN1cnJlbnQgcmVxdWVzdCBpcyBwYXJ0IG9mIHNlc3Npb24gZXN0YWJsaXNobWVudC4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiTm9uZSIsICJkZXNjcmlwdGlvbiI6ICJyZXR1cm5zIGlmIGN1cnJlbnQgcmVxdWVzdCBpcyBwYXJ0IG9mIHNlc3Npb24gZXN0YWJsaXNobWVudCIsICJleGFtcGxlX2NvZGUiOiAiSUYgUkJJLkluU2Vzc2lvbkNyZWF0aW9uKCkgVEhFTiB7XG4gICAgLy8gVGhlIGN1cnJlbnQgcmVxdWVzdCBpcyBwYXJ0IG9mIHNlc3Npb24gZXN0YWJsaXNobWVudC5cbn0gRUxTRSB7XG4gICAgLy8gVGhlIGN1cnJlbnQgcmVxdWVzdCBpcyBub3QgcGFydCBvZiBzZXNzaW9uIGVzdGFibGlzaG1lbnQuXG59IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiSUYgUkJJLkluU2Vzc2lvbkNyZWF0aW9uKCkgVEhFTiB7XG4gICAgLy8gVGhlIGN1cnJlbnQgcmVxdWVzdCBpcyBwYXJ0IG9mIHNlc3Npb24gZXN0YWJsaXNobWVudC5cbn0gRUxTRSB7XG4gICAgLy8gVGhlIGN1cnJlbnQgcmVxdWVzdCBpcyBub3QgcGFydCBvZiBzZXNzaW9uIGVzdGFibGlzaG1lbnQuXG59In0sIHsibmFtZSI6ICJSQkkuSXNGdWxsSXNvbGF0aW9uU2Vzc2lvbiAoKSIsICJyZXR1cm5fdHlwZSI6ICJCT09MRUFOIiwgInJldHVybl9kZXNjIjogIlJldHVybnMgaWYgdGhlIGN1cnJlbnQgcmVxdWVzdCBpcyBpc29sYXRlZCAoZnVsbCBpc29sYXRpb24pLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJOb25lIiwgImRlc2NyaXB0aW9uIjogInJldHVybnMgaWYgY3VycmVudCByZXF1ZXN0IGlzIGlzb2xhdGVkIChmdWxsIGlzb2xhdGlvbikiLCAiZXhhbXBsZV9jb2RlIjogIklGIFJCSS5Jc0Z1bGxJc29sYXRpb25TZXNzaW9uKCkgVEhFTiB7XG4gICAgLy8gVGhpcyBpcyBhIGZ1bGwgaXNvbGF0aW9uIHNlc3Npb24uXG4gICAgLy8gQWRkaXRpb25hbCBsb2dpYyBmb3IgZnVsbCBpc29sYXRpb24gc2Vzc2lvbnNcbn0gRUxTRSB7XG4gICAgLy8gVGhpcyBpcyBub3QgYSBmdWxsIGlzb2xhdGlvbiBzZXNzaW9uLlxuICAgIC8vIEFkZGl0aW9uYWwgbG9naWMgZm9yIG5vbi1mdWxsIGlzb2xhdGlvbiBzZXNzaW9uc1xufSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIklGIFJCSS5Jc0Z1bGxJc29sYXRpb25TZXNzaW9uKCkgVEhFTiB7XG4gICAgLy8gVGhpcyBpcyBhIGZ1bGwgaXNvbGF0aW9uIHNlc3Npb24uXG4gICAgLy8gQWRkaXRpb25hbCBsb2dpYyBmb3IgZnVsbCBpc29sYXRpb24gc2Vzc2lvbnNcbn0gRUxTRSB7XG4gICAgLy8gVGhpcyBpcyBub3QgYSBmdWxsIGlzb2xhdGlvbiBzZXNzaW9uLlxuICAgIC8vIEFkZGl0aW9uYWwgbG9naWMgZm9yIG5vbi1mdWxsIGlzb2xhdGlvbiBzZXNzaW9uc1xufSJ9LCB7Im5hbWUiOiAiUkJJLklzSW5Jc29sYXRpb24gKCkiLCAicmV0dXJuX3R5cGUiOiAiQk9PTEVBTiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIGlmIHRoZSBjdXJyZW50IHJlcXVlc3QgaXMgaXNvbGF0ZWQuIiwgInBhcmFtZXRlcl9kZXNjIjogIk5vbmUiLCAiZGVzY3JpcHRpb24iOiAicmV0dXJucyBpZiBjdXJyZW50IHJlcXVlc3QgaXMgaXNvbGF0ZWQiLCAiZXhhbXBsZV9jb2RlIjogIklGIFJCSS5Jc0luSXNvbGF0aW9uKCkgVEhFTiB7XG4gICAgLy8gVGhlIGN1cnJlbnQgcmVxdWVzdCBpcyBpc29sYXRlZC5cbiAgICAvLyBBZGRpdGlvbmFsIGFjdGlvbnMgY2FuIGJlIHRha2VuIGhlcmUgaWYgdGhlIHJlcXVlc3QgaXMgaXNvbGF0ZWRcbn0gRUxTRSB7XG4gICAgLy8gVGhlIGN1cnJlbnQgcmVxdWVzdCBpcyBub3QgaXNvbGF0ZWQuXG4gICAgLy8gQWRkaXRpb25hbCBhY3Rpb25zIGNhbiBiZSB0YWtlbiBoZXJlIGlmIHRoZSByZXF1ZXN0IGlzIG5vdCBpc29sYXRlZFxufSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIklGIFJCSS5Jc0luSXNvbGF0aW9uKCkgVEhFTiB7XG4gICAgLy8gVGhlIGN1cnJlbnQgcmVxdWVzdCBpcyBpc29sYXRlZC5cbiAgICAvLyBBZGRpdGlvbmFsIGFjdGlvbnMgY2FuIGJlIHRha2VuIGhlcmUgaWYgdGhlIHJlcXVlc3QgaXMgaXNvbGF0ZWRcbn0gRUxTRSB7XG4gICAgLy8gVGhlIGN1cnJlbnQgcmVxdWVzdCBpcyBub3QgaXNvbGF0ZWQuXG4gICAgLy8gQWRkaXRpb25hbCBhY3Rpb25zIGNhbiBiZSB0YWtlbiBoZXJlIGlmIHRoZSByZXF1ZXN0IGlzIG5vdCBpc29sYXRlZFxufSJ9LCB7Im5hbWUiOiAiUkJJLklzUmlza3lXZWJTZXNzaW9uICgpIiwgInJldHVybl90eXBlIjogIkJPT0xFQU4iLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyBpZiB0aGUgY3VycmVudCByZXF1ZXN0IGlzIGlzb2xhdGVkIChyaXNreSB3ZWIpLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJOb25lIiwgImRlc2NyaXB0aW9uIjogInJldHVybnMgaWYgY3VycmVudCByZXF1ZXN0IGlzIGlzb2xhdGVkIChyaXNreSB3ZWIpIiwgImV4YW1wbGVfY29kZSI6ICJJRiBSQkkuSXNSaXNreVdlYlNlc3Npb24oKSBUSEVOIHtcbiAgICAvLyBUaGlzIGlzIGEgcmlza3kgd2ViIHNlc3Npb24uXG4gICAgTVdHLkJsb2NrKFwiQWNjZXNzIGJsb2NrZWQgZHVlIHRvIHJpc2t5IHdlYiBzZXNzaW9uLlwiKVxufSBFTFNFIHtcbiAgICAvLyBUaGlzIGlzIG5vdCBhIHJpc2t5IHdlYiBzZXNzaW9uLlxuICAgIE1XRy5BbGxvdyhcIlNhZmUgd2ViIHNlc3Npb24uXCIpXG59IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiSUYgUkJJLklzUmlza3lXZWJTZXNzaW9uKCkgVEhFTiB7XG4gICAgLy8gVGhpcyBpcyBhIHJpc2t5IHdlYiBzZXNzaW9uLlxuICAgIE1XRy5CbG9jayhcIkFjY2VzcyBibG9ja2VkIGR1ZSB0byByaXNreSB3ZWIgc2Vzc2lvbi5cIilcbn0gRUxTRSB7XG4gICAgLy8gVGhpcyBpcyBub3QgYSByaXNreSB3ZWIgc2Vzc2lvbi5cbiAgICBNV0cuQWxsb3coXCJTYWZlIHdlYiBzZXNzaW9uLlwiKVxufSJ9LCB7Im5hbWUiOiAiUkJJLkxpY2Vuc2VkRnVsbElzb2xhdGlvblNlYXRzICgpIiwgInJldHVybl90eXBlIjogIk5VTUJFUiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIHRoZSBudW1iZXIgb2YgbGljZW5zZWQgc2VhdHMgZm9yIGZ1bGwgaXNvbGF0aW9uLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJOb25lIiwgImRlc2NyaXB0aW9uIjogIlJldHVybnMgdGhlIE5VTUJFUiBvZiBsaWNlbnNlZCBzZWF0cyBmb3IgZnVsbCBpc29sYXRpb24iLCAiZXhhbXBsZV9jb2RlIjogIk5VTUJFUiBzZWF0cyA9IFJCSS5MaWNlbnNlZEZ1bGxJc29sYXRpb25TZWF0cygpXG4vLyBOdW1iZXIgb2YgbGljZW5zZWQgZnVsbCBpc29sYXRpb24gc2VhdHM6IFwiICsgc2VhdHMiLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICJOVU1CRVIgc2VhdHMgPSBSQkkuTGljZW5zZWRGdWxsSXNvbGF0aW9uU2VhdHMoKVxuLy8gTnVtYmVyIG9mIGxpY2Vuc2VkIGZ1bGwgaXNvbGF0aW9uIHNlYXRzOiBcIiArIHNlYXRzIn0sIHsibmFtZSI6ICJSQkkuTXVzdEJlSXNvbGF0ZWQgKCkiLCAicmV0dXJuX3R5cGUiOiAiQk9PTEVBTiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIGlmIHRoZSBjdXJyZW50IHJlcXVlc3Qgc2hvdWxkIGhhdmUgYmVlbiBpc29sYXRlZCwgYnV0IGlzb2xhdGlvbiB3YXMgbm90IHBvc3NpYmxlLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJOb25lIiwgImRlc2NyaXB0aW9uIjogIlJldHVybnMgaWYgdGhlIGN1cnJlbnQgcmVxdWVzdCBzaG91bGQgaGF2ZSBiZWVuIGlzb2xhdGVkLCBidXQgaXNvbGF0aW9uIHdhcyBub3QgcG9zc2libGUiLCAiZXhhbXBsZV9jb2RlIjogIklGIFJCSS5NdXN0QmVJc29sYXRlZCgpIFRIRU4ge1xuICAgIC8vIFRoZSBjdXJyZW50IHJlcXVlc3Qgc2hvdWxkIGhhdmUgYmVlbiBpc29sYXRlZCwgYnV0IGlzb2xhdGlvbiB3YXMgbm90IHBvc3NpYmxlLlxuICAgIE1XRy5CbG9jayhcIklzb2xhdGlvbiByZXF1aXJlZCBidXQgbm90IHBvc3NpYmxlXCIpXG59IEVMU0Uge1xuICAgIC8vIFRoZSBjdXJyZW50IHJlcXVlc3QgZG9lcyBub3QgcmVxdWlyZSBpc29sYXRpb24gb3IgaXNvbGF0aW9uIHdhcyBzdWNjZXNzZnVsLlxuICAgIE1XRy5BbGxvdyhcIklzb2xhdGlvbiBjaGVjayBwYXNzZWRcIilcbn0iLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICJJRiBSQkkuTXVzdEJlSXNvbGF0ZWQoKSBUSEVOIHtcbiAgICAvLyBUaGUgY3VycmVudCByZXF1ZXN0IHNob3VsZCBoYXZlIGJlZW4gaXNvbGF0ZWQsIGJ1dCBpc29sYXRpb24gd2FzIG5vdCBwb3NzaWJsZS5cbiAgICBNV0cuQmxvY2soXCJJc29sYXRpb24gcmVxdWlyZWQgYnV0IG5vdCBwb3NzaWJsZVwiKVxufSBFTFNFIHtcbiAgICAvLyBUaGUgY3VycmVudCByZXF1ZXN0IGRvZXMgbm90IHJlcXVpcmUgaXNvbGF0aW9uIG9yIGlzb2xhdGlvbiB3YXMgc3VjY2Vzc2Z1bC5cbiAgICBNV0cuQWxsb3coXCJJc29sYXRpb24gY2hlY2sgcGFzc2VkXCIpXG59In0sIHsibmFtZSI6ICJSZWdFeEpTaS5BcHBlbmQgKFJlZ0V4SlNpLkxpc3QsIFNUUklORykiLCAicmV0dXJuX3R5cGUiOiAiUmVnRXhKU2kuTGlzdCIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIHRoZSByZWd1bGFyIGV4cHJlc3Npb24gbGlzdCB3aXRoIHRoZSBnaXZlbiByZWd1bGFyIGV4cHJlc3Npb24gYXBwZW5kZWQgdG8gdGhlIGVuZC4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiUmVnRXhKU2kuTGlzdDogbGlzdCB0byBhcHBlbmQgdG87IFNUUklORzogcmVndWxhciBleHByZXNzaW9uIHRvIGFwcGVuZC4iLCAiZGVzY3JpcHRpb24iOiAiQWRkcyB0aGUgaW5wdXQgU1RSSU5HIGFzIHJlZ3VsYXIgZXhwcmVzc2lvbiBhbmQgcmV0dXJucyB0aGUgdXBkYXRlZCBsaXN0IiwgImV4YW1wbGVfY29kZSI6ICIvLyBJbml0aWFsaXplIGEgUmVnRXhKU2kuTGlzdFxuUmVnRXhKU2kuTGlzdCByZWdleExpc3RcblxuLy8gRGVmaW5lIGEgcmVndWxhciBleHByZXNzaW9uIHN0cmluZ1xuU1RSSU5HIHJlZ2V4UGF0dGVybiA9IFwiXmh0dHBzPzovLy4qXCJcblxuLy8gQWRkIHRoZSByZWd1bGFyIGV4cHJlc3Npb24gdG8gdGhlIGxpc3RcblJlZ0V4SlNpLkFkZChyZWdleExpc3QsIHJlZ2V4UGF0dGVybilcblxuLy8gUmVndWxhciBleHByZXNzaW9uIGFkZGVkIHRvIHRoZSBsaXN0LiIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIi8vIEluaXRpYWxpemUgYSBSZWdFeEpTaS5MaXN0XG5SZWdFeEpTaS5MaXN0IHJlZ2V4TGlzdFxuXG4vLyBEZWZpbmUgYSByZWd1bGFyIGV4cHJlc3Npb24gc3RyaW5nXG5TVFJJTkcgcmVnZXhQYXR0ZXJuID0gXCJeaHR0cHM/Oi8vLipcIlxuXG4vLyBBZGQgdGhlIHJlZ3VsYXIgZXhwcmVzc2lvbiB0byB0aGUgbGlzdFxuUmVnRXhKU2kuQWRkKHJlZ2V4TGlzdCwgcmVnZXhQYXR0ZXJuKVxuXG4vLyBSZWd1bGFyIGV4cHJlc3Npb24gYWRkZWQgdG8gdGhlIGxpc3QuIn0sIHsibmFtZSI6ICJSZWdFeEpTaS5GaW5kQWxsIChSZWdFeEpTaSwgU1RSSU5HKSIsICJyZXR1cm5fdHlwZSI6ICJWRUNUT1I8U1RSSU5HPiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIGEgdmVjdG9yIGNvbnRhaW5pbmcgYWxsIG1hdGNoZXMgb3IgY2FwdHVyZWQgZ3JvdXBzIGZyb20gdGhlIGdpdmVuIHN0cmluZy4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiUmVnRXhKU2k6IHRoZSByZWd1bGFyIGV4cHJlc3Npb24gcGF0dGVybiB0byBtYXRjaCBhZ2FpbnM7IFNUUklORzogdGhlIGlucHV0IFNUUklORyBpbiB3aGljaCB0byBzZWFyY2ggZm9yIG1hdGNoZXMuIiwgImRlc2NyaXB0aW9uIjogIlJldHVybnMgbGlzdCBvZiBtYXRjaGVzIG9yIGNhcHR1cmVzIGluIGNhc2Ugb2YgY2FwdHVyZSBncm91cHMuIiwgImV4YW1wbGVfY29kZSI6ICIvLyBEZWZpbmUgdGhlIGlucHV0IHN0cmluZ1xuU1RSSU5HIGlucHV0U3RyaW5nID0gXCJDb250YWN0IHVzIGF0IHN1cHBvcnRAZXhhbXBsZS5jb20gb3Igc2FsZXNAZXhhbXBsZS5jb20gZm9yIG1vcmUgaW5mb3JtYXRpb24uXCJcblxuLy8gRGVmaW5lIHRoZSByZWd1bGFyIGV4cHJlc3Npb24gcGF0dGVybiB0byBtYXRjaCBlbWFpbCBhZGRyZXNzZXNcblJlZ0V4SlNpIGVtYWlsUGF0dGVybiA9IFJlZ0V4SlNpKFwiW2EtekEtWjAtOS5fJSstXStAW2EtekEtWjAtOS4tXStcXFxcLlthLXpBLVpdezIsfVwiKVxuXG4vLyBVc2UgdGhlIFJlZ0V4SlNpLkZpbmRBbGwgZnVuY3Rpb24gdG8gZmluZCBhbGwgbWF0Y2hlc1xuVkVDVE9SPFNUUklORz4gZW1haWxNYXRjaGVzID0gUmVnRXhKU2kuRmluZEFsbChlbWFpbFBhdHRlcm4sIGlucHV0U3RyaW5nKVxuXG4vLyBGb3VuZCBlbWFpbCBhZGRyZXNzZXM6IFxuLy8gZW1haWxNYXRjaGVzIiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiLy8gRGVmaW5lIHRoZSBpbnB1dCBzdHJpbmdcblNUUklORyBpbnB1dFN0cmluZyA9IFwiQ29udGFjdCB1cyBhdCBzdXBwb3J0QGV4YW1wbGUuY29tIG9yIHNhbGVzQGV4YW1wbGUuY29tIGZvciBtb3JlIGluZm9ybWF0aW9uLlwiXG5cbi8vIERlZmluZSB0aGUgcmVndWxhciBleHByZXNzaW9uIHBhdHRlcm4gdG8gbWF0Y2ggZW1haWwgYWRkcmVzc2VzXG5SZWdFeEpTaSBlbWFpbFBhdHRlcm4gPSBSZWdFeEpTaShcIlthLXpBLVowLTkuXyUrLV0rQFthLXpBLVowLTkuLV0rXFwuW2EtekEtWl17Mix9XCIpXG5cbi8vIFVzZSB0aGUgUmVnRXhKU2kuRmluZEFsbCBmdW5jdGlvbiB0byBmaW5kIGFsbCBtYXRjaGVzXG5WRUNUT1I8U1RSSU5HPiBlbWFpbE1hdGNoZXMgPSBSZWdFeEpTaS5GaW5kQWxsKGVtYWlsUGF0dGVybiwgaW5wdXRTdHJpbmcpXG5cbi8vIEZvdW5kIGVtYWlsIGFkZHJlc3NlczogXG4vLyBlbWFpbE1hdGNoZXMifSwgeyJuYW1lIjogIlJlZ0V4SlNpLk1hdGNoZXMgKFJlZ0V4SlNpLCBTVFJJTkcpIiwgInJldHVybl90eXBlIjogIkJPT0xFQU4iLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJuc2BUUlVFYGlmIHRoZSByZWd1bGFyIGV4cHJlc3Npb24gbWF0Y2hlcyB0aGUgcHJvdmlkZWQgYFNUUklOR2AuIiwgInBhcmFtZXRlcl9kZXNjIjogIlJlZ0V4SlNpOiB0aGUgcmVndWxhciBleHByZXNzaW9uIHBhdHRlcm4gdG8gbWF0Y2ggYWdhaW5zOyBTVFJJTkc6IHRoZSBpbnB1dCBTVFJJTkcgaW4gd2hpY2ggdG8gc2VhcmNoIGZvciBtYXRjaGVzLiIsICJkZXNjcmlwdGlvbiI6ICJSZXR1cm5zIFRSVUUgaWYgdGhlIHJlZ3VsYXIgZXhwcmVzc2lvbiBtYXRjaGVzIHRoZSBzZWNvbmQgYXJndW1lbnQiLCAiZXhhbXBsZV9jb2RlIjogIi8vIERlZmluZSB0aGUgcmVndWxhciBleHByZXNzaW9uIHBhdHRlcm5cblJlZ0V4SlNpIHBhdHRlcm4gPSBSZWdFeEpTaShcIi4qZXhhbXBsZS4qXCIpXG5cbi8vIEdldCB0aGUgY3VycmVudCBVUkwgYXMgYSBzdHJpbmdcblNUUklORyBjdXJyZW50VXJsID0gTVdHLlVybCgpLlRvU3RyaW5nKClcblxuLy8gQ2hlY2sgaWYgdGhlIFVSTCBtYXRjaGVzIHRoZSBwYXR0ZXJuXG5JRiBSZWdFeEpTaS5NYXRjaGVzKHBhdHRlcm4sIGN1cnJlbnRVcmwpIFRIRU4ge1xuICAgIC8vIEJsb2NrIHRoZSByZXF1ZXN0IGlmIHRoZSBwYXR0ZXJuIG1hdGNoZXNcbiAgICBNV0cuQmxvY2soXCJBY2Nlc3MgdG8gVVJMcyBjb250YWluaW5nICdleGFtcGxlJyBpcyBub3QgYWxsb3dlZC5cIilcbn0gRUxTRSB7XG4gICAgLy8gQWxsb3cgdGhlIHJlcXVlc3QgaWYgdGhlIHBhdHRlcm4gZG9lcyBub3QgbWF0Y2hcbiAgICBNV0cuQWxsb3coXCJVUkwgZG9lcyBub3QgY29udGFpbiB0aGUgZm9yYmlkZGVuIHBhdHRlcm4uXCIpXG59IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiLy8gRGVmaW5lIHRoZSByZWd1bGFyIGV4cHJlc3Npb24gcGF0dGVyblxuUmVnRXhKU2kgcGF0dGVybiA9IFJlZ0V4SlNpKFwiLipleGFtcGxlLipcIilcblxuLy8gR2V0IHRoZSBjdXJyZW50IFVSTCBhcyBhIHN0cmluZ1xuU1RSSU5HIGN1cnJlbnRVcmwgPSBNV0cuVXJsKCkuVG9TdHJpbmcoKVxuXG4vLyBDaGVjayBpZiB0aGUgVVJMIG1hdGNoZXMgdGhlIHBhdHRlcm5cbklGIFJlZ0V4SlNpLk1hdGNoZXMocGF0dGVybiwgY3VycmVudFVybCkgVEhFTiB7XG4gICAgLy8gQmxvY2sgdGhlIHJlcXVlc3QgaWYgdGhlIHBhdHRlcm4gbWF0Y2hlc1xuICAgIE1XRy5CbG9jayhcIkFjY2VzcyB0byBVUkxzIGNvbnRhaW5pbmcgJ2V4YW1wbGUnIGlzIG5vdCBhbGxvd2VkLlwiKVxufSBFTFNFIHtcbiAgICAvLyBBbGxvdyB0aGUgcmVxdWVzdCBpZiB0aGUgcGF0dGVybiBkb2VzIG5vdCBtYXRjaFxuICAgIE1XRy5BbGxvdyhcIlVSTCBkb2VzIG5vdCBjb250YWluIHRoZSBmb3JiaWRkZW4gcGF0dGVybi5cIilcbn0ifSwgeyJuYW1lIjogIlJlZ0V4SlNpLk1hdGNoZXMgKFJlZ0V4SlNpLkxpc3QsIFNUUklORykiLCAicmV0dXJuX3R5cGUiOiAiQk9PTEVBTiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zYFRSVUVgaWYgYW55IHJlZ3VsYXIgZXhwcmVzc2lvbiBpbiB0aGUgbGlzdCBtYXRjaGVzIHRoZSBnaXZlbiBgU1RSSU5HYC4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiUmVnRXhKU2kuTGlzdDogbGlzdCBvZiByZWd1bGFyIGV4cHJlc3Npb25zIHRvIHVzZSBmb3IgbWF0Y2hpbmc7IFNUUklORzogaW5wdXQgdG8gY2hlY2sgZm9yIG1hdGNoZXMuIiwgImRlc2NyaXB0aW9uIjogIkNoZWNrIGlmIGEgU1RSSU5HIG1hdGNoZXMgYW55IHJlZ3VsYXIgZXhwcmVzc2lvbiBpbiBhIGxpc3QuIiwgImV4YW1wbGVfY29kZSI6ICIvLyBEZWZpbmUgYSBsaXN0IG9mIHJlZ3VsYXIgZXhwcmVzc2lvbnNcblJlZ0V4SlNpLkxpc3QgcmVnZXhMaXN0ID0gW1wiZXhhbXBsZV9yZWdleF9saXN0XCJdXG5cbi8vIEdldCB0aGUgY3VycmVudCBVUkwgYXMgYSBzdHJpbmdcblNUUklORyBjdXJyZW50VVJMID0gTVdHLlVybCgpLlRvU3RyaW5nKClcblxuLy8gQ2hlY2sgaWYgdGhlIGN1cnJlbnQgVVJMIG1hdGNoZXMgYW55IHJlZ3VsYXIgZXhwcmVzc2lvbiBpbiB0aGUgbGlzdFxuSUYgUmVnRXhKU2kuTWF0Y2hlcyhyZWdleExpc3QsIGN1cnJlbnRVUkwpIFRIRU4ge1xuICAgIC8vIEJsb2NrIHRoZSByZXF1ZXN0IGlmIGEgbWF0Y2ggaXMgZm91bmRcbiAgICBNV0cuQmxvY2soXCJCbG9ja2VkIGR1ZSB0byBtYXRjaGluZyByZWdleFwiKVxufSBFTFNFIHtcbiAgICAvLyBBbGxvdyB0aGUgcmVxdWVzdCBpZiBubyBtYXRjaCBpcyBmb3VuZFxuICAgIE1XRy5BbGxvdyhcIk5vIG1hdGNoaW5nIHJlZ2V4IGZvdW5kXCIpXG59IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiLy8gRGVmaW5lIGEgbGlzdCBvZiByZWd1bGFyIGV4cHJlc3Npb25zXG5SZWdFeEpTaS5MaXN0IHJlZ2V4TGlzdCA9IFtcImV4YW1wbGVfcmVnZXhfbGlzdFwiXVxuXG4vLyBHZXQgdGhlIGN1cnJlbnQgVVJMIGFzIGEgc3RyaW5nXG5TVFJJTkcgY3VycmVudFVSTCA9IE1XRy5VcmwoKS5Ub1N0cmluZygpXG5cbi8vIENoZWNrIGlmIHRoZSBjdXJyZW50IFVSTCBtYXRjaGVzIGFueSByZWd1bGFyIGV4cHJlc3Npb24gaW4gdGhlIGxpc3RcbklGIFJlZ0V4SlNpLk1hdGNoZXMocmVnZXhMaXN0LCBjdXJyZW50VVJMKSBUSEVOIHtcbiAgICAvLyBCbG9jayB0aGUgcmVxdWVzdCBpZiBhIG1hdGNoIGlzIGZvdW5kXG4gICAgTVdHLkJsb2NrKFwiQmxvY2tlZCBkdWUgdG8gbWF0Y2hpbmcgcmVnZXhcIilcbn0gRUxTRSB7XG4gICAgLy8gQWxsb3cgdGhlIHJlcXVlc3QgaWYgbm8gbWF0Y2ggaXMgZm91bmRcbiAgICBNV0cuQWxsb3coXCJObyBtYXRjaGluZyByZWdleCBmb3VuZFwiKVxufSJ9LCB7Im5hbWUiOiAiUmVnRXhKU2kuTWF0Y2hlcyAoU1RSSU5HLCBTVFJJTkcpIiwgInJldHVybl90eXBlIjogIkJPT0xFQU4iLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJuc2BUUlVFYGlmIHRoZSByZWd1bGFyIGV4cHJlc3Npb24gZGVmaW5lZCBpbiB0aGUgZmlyc3QgYFNUUklOR2AgbWF0Y2hlcyB0aGUgZW50aXJldHkgb2YgdGhlIHNlY29uZCBgU1RSSU5HYC4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiUmVnRXhKU2k6IHRoZSByZWd1bGFyIGV4cHJlc3Npb24gcGF0dGVybiB0byBtYXRjaCBhZ2FpbnM7IFNUUklORzogdGhlIGlucHV0IFNUUklORyBpbiB3aGljaCB0byBzZWFyY2ggZm9yIG1hdGNoZXMuIiwgImRlc2NyaXB0aW9uIjogIlJldHVybnMgVFJVRSBpZiB0aGUgZmlyc3QgYXJndW1lbnQgYXMgcmVndWxhciBleHByZXNzaW9uIG1hdGNoZXMgdGhlIHNlY29uZCBhcmd1bWVudCIsICJleGFtcGxlX2NvZGUiOiAiU1RSSU5HIHVybCA9IE1XRy5VcmwoKS5Ub1N0cmluZygpXG5SZWdFeEpTaSBwYXR0ZXJuID0gXCIuKmV4YW1wbGVcXFxcLmNvbS4qXCJcblxuLy8gQ2hlY2tpbmcgaWYgdGhlIFVSTCBtYXRjaGVzIHRoZSBwYXR0ZXJuXG5JRiBSZWdFeEpTaS5NYXRjaGVzKHBhdHRlcm4sIHVybCkgVEhFTiB7XG4gICAgLy8gQmxvY2tpbmcgYWNjZXNzIGlmIHRoZSBVUkwgbWF0Y2hlcyB0aGUgcGF0dGVyblxuICAgIE1XRy5CbG9jayhcIkFjY2VzcyB0byBleGFtcGxlLmNvbSBpcyBub3QgYWxsb3dlZFwiKVxufSBFTFNFIHtcbiAgICAvLyBBbGxvd2luZyBhY2Nlc3MgaWYgdGhlIFVSTCBkb2VzIG5vdCBtYXRjaCB0aGUgcGF0dGVyblxuICAgIE1XRy5BbGxvdyhcIlVSTCBkb2VzIG5vdCBtYXRjaCB0aGUgYmxvY2tlZCBwYXR0ZXJuXCIpXG59IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiU1RSSU5HIHVybCA9IE1XRy5VcmwoKS5Ub1N0cmluZygpXG5SZWdFeEpTaSBwYXR0ZXJuID0gXCIuKmV4YW1wbGVcXC5jb20uKlwiXG5cbi8vIENoZWNraW5nIGlmIHRoZSBVUkwgbWF0Y2hlcyB0aGUgcGF0dGVyblxuSUYgUmVnRXhKU2kuTWF0Y2hlcyhwYXR0ZXJuLCB1cmwpIFRIRU4ge1xuICAgIC8vIEJsb2NraW5nIGFjY2VzcyBpZiB0aGUgVVJMIG1hdGNoZXMgdGhlIHBhdHRlcm5cbiAgICBNV0cuQmxvY2soXCJBY2Nlc3MgdG8gZXhhbXBsZS5jb20gaXMgbm90IGFsbG93ZWRcIilcbn0gRUxTRSB7XG4gICAgLy8gQWxsb3dpbmcgYWNjZXNzIGlmIHRoZSBVUkwgZG9lcyBub3QgbWF0Y2ggdGhlIHBhdHRlcm5cbiAgICBNV0cuQWxsb3coXCJVUkwgZG9lcyBub3QgbWF0Y2ggdGhlIGJsb2NrZWQgcGF0dGVyblwiKVxufSJ9LCB7Im5hbWUiOiAiUmVnRXhKU2kuUmVwbGFjZUFsbE1hdGNoZXMgKFJlZ0V4SlNpLCBTVFJJTkcsIFNUUklORykiLCAicmV0dXJuX3R5cGUiOiAiU1RSSU5HIiwgInJldHVybl9kZXNjIjogIlJldHVybnMgYSBuZXcgc3RyaW5nIHdoZXJlIGFsbCBvY2N1cnJlbmNlcyBtYXRjaGluZyB0aGUgcmVndWxhciBleHByZXNzaW9uIGluIHRoZSBpbnB1dCBzdHJpbmcgYXJlIHJlcGxhY2VkIGJ5IHRoZSBzcGVjaWZpZWQgcmVwbGFjZW1lbnQgc3RyaW5nLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJSZWdFeEpTaTogdGhlIHJlZ3VsYXIgZXhwcmVzc2lvbiBwYXR0ZXJuIHRvIG1hdGNoIGFnYWluczsgU1RSSU5HOiB0aGUgaW5wdXQgU1RSSU5HIGluIHdoaWNoIHRvIHNlYXJjaCBmb3IgbWF0Y2hlczsgU1RSSU5HOiB0aGUgcmVwbGFjZW1lbnQgU1RSSU5HLiIsICJkZXNjcmlwdGlvbiI6ICJSZXR1cm5zIGEgY29weSBvZiBnaXZlbiBTVFJJTkcsIHdoZXJlIGFsbCBvY2N1cnJlbmNlcyBvZiByZWd1bGFyIGV4cHJlc3Npb24gYXJlIHJlcGxhY2VkIGJ5IGdpdmVuIHRoaXJkIHBhcmFtZXRlci4gRm9yIGV4YW1wbGUgU1RSSU5HIFwicHJlOmFiYyMgcHJlOmNkZSNcIiwgcmVndWxhciBleHByZXNzaW9uIFwicmVnKHByZTooLio/KSMpXCIgYW5kIHJlcGxhY2UgU1RSSU5HIFwiXFwxXCIgd2lsbCByZXN1bHQgaW4gXCJhYmMgcHJlOmNkZSNcIiAobm90ZSB0aGF0ID8gYWZ0ZXIgKiBpbiByZWd1bGFyIGV4cHJlc3Npb24gcmVzdWx0cyBpbiBhIG5vbiBncmVlZHkgbWF0Y2ghKSIsICJleGFtcGxlX2NvZGUiOiAiLy8gRGVmaW5lIHRoZSBpbnB1dCBzdHJpbmdcblNUUklORyBpbnB1dFN0cmluZyA9IFwiVGhlIHF1aWNrIGJyb3duIGZveCBqdW1wcyBvdmVyIHRoZSBsYXp5IGRvZy4gVGhlIHF1aWNrIGJyb3duIGZveCBpcyBmYXN0LlwiXG5cbi8vIERlZmluZSB0aGUgcmVndWxhciBleHByZXNzaW9uIHBhdHRlcm4gdG8gbWF0Y2ggXCJxdWljayBicm93biBmb3hcIlxuUmVnRXhKU2kgcmVnZXhQYXR0ZXJuID0gXCJxdWljayBicm93biBmb3hcIlxuXG4vLyBEZWZpbmUgdGhlIHJlcGxhY2VtZW50IHN0cmluZ1xuU1RSSU5HIHJlcGxhY2VtZW50U3RyaW5nID0gXCJzd2lmdCByZWQgZm94XCJcblxuLy8gVXNlIHRoZSBSZXBsYWNlQWxsTWF0Y2hlcyBmdW5jdGlvbiB0byByZXBsYWNlIGFsbCBvY2N1cnJlbmNlcyBvZiB0aGUgcGF0dGVyblxuU1RSSU5HIHJlc3VsdFN0cmluZyA9IFJlZ0V4SlNpLlJlcGxhY2VBbGxNYXRjaGVzKHJlZ2V4UGF0dGVybiwgaW5wdXRTdHJpbmcsIHJlcGxhY2VtZW50U3RyaW5nKVxuXG4vLyBUaGUgcmVzdWx0IHdhczogXCJUaGUgc3dpZnQgcmVkIGZveCBqdW1wcyBvdmVyIHRoZSBsYXp5IGRvZy4gVGhlIHN3aWZ0IHJlZCBmb3ggaXMgZmFzdC5cIlxuXG5JbiB0aGlzIGV4YW1wbGU6XG4tIFRoZSBgaW5wdXRTdHJpbmdgIGNvbnRhaW5zIHRoZSB0ZXh0IHdoZXJlIHdlIHdhbnQgdG8gcGVyZm9ybSB0aGUgcmVwbGFjZW1lbnRzLlxuLSBUaGUgYHJlZ2V4UGF0dGVybmAgaXMgdGhlIHJlZ3VsYXIgZXhwcmVzc2lvbiBwYXR0ZXJuIHRoYXQgbWF0Y2hlcyBcInF1aWNrIGJyb3duIGZveFwiLlxuLSBUaGUgYHJlcGxhY2VtZW50U3RyaW5nYCBpcyB0aGUgc3RyaW5nIHRoYXQgd2lsbCByZXBsYWNlIGVhY2ggb2NjdXJyZW5jZSBvZiB0aGUgcGF0dGVybi5cbi0gVGhlIGBSZWdFeEpTaS5SZXBsYWNlQWxsTWF0Y2hlc2AgZnVuY3Rpb24gaXMgY2FsbGVkIHdpdGggdGhlIHBhdHRlcm4sIGlucHV0IHN0cmluZywgYW5kIHJlcGxhY2VtZW50IHN0cmluZywgYW5kIHRoZSByZXN1bHQgaXMgc3RvcmVkIGluIGByZXN1bHRTdHJpbmdgLlxuLSBGaW5hbGx5LCB0aGUgcmVzdWx0IHdhczogXCJUaGUgc3dpZnQgcmVkIGZveCBqdW1wcyBvdmVyIHRoZSBsYXp5IGRvZy4gVGhlIHN3aWZ0IHJlZCBmb3ggaXMgZmFzdC5cIiIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIi8vIERlZmluZSB0aGUgaW5wdXQgc3RyaW5nXG5TVFJJTkcgaW5wdXRTdHJpbmcgPSBcIlRoZSBxdWljayBicm93biBmb3gganVtcHMgb3ZlciB0aGUgbGF6eSBkb2cuIFRoZSBxdWljayBicm93biBmb3ggaXMgZmFzdC5cIlxuXG4vLyBEZWZpbmUgdGhlIHJlZ3VsYXIgZXhwcmVzc2lvbiBwYXR0ZXJuIHRvIG1hdGNoIFwicXVpY2sgYnJvd24gZm94XCJcblJlZ0V4SlNpIHJlZ2V4UGF0dGVybiA9IFwicXVpY2sgYnJvd24gZm94XCJcblxuLy8gRGVmaW5lIHRoZSByZXBsYWNlbWVudCBzdHJpbmdcblNUUklORyByZXBsYWNlbWVudFN0cmluZyA9IFwic3dpZnQgcmVkIGZveFwiXG5cbi8vIFVzZSB0aGUgUmVwbGFjZUFsbE1hdGNoZXMgZnVuY3Rpb24gdG8gcmVwbGFjZSBhbGwgb2NjdXJyZW5jZXMgb2YgdGhlIHBhdHRlcm5cblNUUklORyByZXN1bHRTdHJpbmcgPSBSZWdFeEpTaS5SZXBsYWNlQWxsTWF0Y2hlcyhyZWdleFBhdHRlcm4sIGlucHV0U3RyaW5nLCByZXBsYWNlbWVudFN0cmluZylcblxuLy8gVGhlIHJlc3VsdCB3YXM6IFwiVGhlIHN3aWZ0IHJlZCBmb3gganVtcHMgb3ZlciB0aGUgbGF6eSBkb2cuIFRoZSBzd2lmdCByZWQgZm94IGlzIGZhc3QuXCJcblxuSW4gdGhpcyBleGFtcGxlOlxuLSBUaGUgYGlucHV0U3RyaW5nYCBjb250YWlucyB0aGUgdGV4dCB3aGVyZSB3ZSB3YW50IHRvIHBlcmZvcm0gdGhlIHJlcGxhY2VtZW50cy5cbi0gVGhlIGByZWdleFBhdHRlcm5gIGlzIHRoZSByZWd1bGFyIGV4cHJlc3Npb24gcGF0dGVybiB0aGF0IG1hdGNoZXMgXCJxdWljayBicm93biBmb3hcIi5cbi0gVGhlIGByZXBsYWNlbWVudFN0cmluZ2AgaXMgdGhlIHN0cmluZyB0aGF0IHdpbGwgcmVwbGFjZSBlYWNoIG9jY3VycmVuY2Ugb2YgdGhlIHBhdHRlcm4uXG4tIFRoZSBgUmVnRXhKU2kuUmVwbGFjZUFsbE1hdGNoZXNgIGZ1bmN0aW9uIGlzIGNhbGxlZCB3aXRoIHRoZSBwYXR0ZXJuLCBpbnB1dCBzdHJpbmcsIGFuZCByZXBsYWNlbWVudCBzdHJpbmcsIGFuZCB0aGUgcmVzdWx0IGlzIHN0b3JlZCBpbiBgcmVzdWx0U3RyaW5nYC5cbi0gRmluYWxseSwgdGhlIHJlc3VsdCB3YXM6IFwiVGhlIHN3aWZ0IHJlZCBmb3gganVtcHMgb3ZlciB0aGUgbGF6eSBkb2cuIFRoZSBzd2lmdCByZWQgZm94IGlzIGZhc3QuXCIifSwgeyJuYW1lIjogIlJlZ0V4SlNpLlJlcGxhY2VBbGxNYXRjaGVzIChTVFJJTkcsIFNUUklORywgU1RSSU5HKSIsICJyZXR1cm5fdHlwZSI6ICJTVFJJTkciLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyBhIGNvcHkgb2YgdGhlIGdpdmVuIHN0cmluZyB3aGVyZSBhbGwgb2NjdXJyZW5jZXMgbWF0Y2hpbmcgdGhlIHJlZ3VsYXIgZXhwcmVzc2lvbiBhcmUgcmVwbGFjZWQgYnkgdGhlIHNwZWNpZmllZCByZXBsYWNlbWVudCBzdHJpbmcuIiwgInBhcmFtZXRlcl9kZXNjIjogIlJlZ0V4SlNpOiB0aGUgcmVndWxhciBleHByZXNzaW9uIHBhdHRlcm4gdG8gbWF0Y2ggYWdhaW5zOyBTVFJJTkc6IHRoZSBpbnB1dCBTVFJJTkcgaW4gd2hpY2ggdG8gc2VhcmNoIGZvciBtYXRjaGVzOyBTVFJJTkc6IHRoZSByZXBsYWNlbWVudCBTVFJJTkcuIiwgImRlc2NyaXB0aW9uIjogIlJldHVybnMgYSBjb3B5IG9mIGdpdmVuIFNUUklORywgd2hlcmUgYWxsIG9jY3VycmVuY2VzIG9mIHJlZ3VsYXIgZXhwcmVzc2lvbiAoMXN0IHBhcmFtZXRlcikgYXJlIHJlcGxhY2VkIGJ5IGdpdmVuIHRoaXJkIHBhcmFtZXRlci5Gb3IgZXhhbXBsZSBTVFJJTkcgXCJwcmU6YWJjIyBwcmU6Y2RlI1wiLCByZWd1bGFyIGV4cHJlc3Npb24gXCJyZWcocHJlOiguKj8pIylcIiBhbmQgcmVwbGFjZSBTVFJJTkcgXCJcXDFcIiB3aWxsIHJlc3VsdCBpbiBcImFiYyBwcmU6Y2RlI1wiIChub3RlIHRoYXQgPyBhZnRlciAqIGluIHJlZ3VsYXIgZXhwcmVzc2lvbiByZXN1bHRzIGluIGEgbm9uIGdyZWVkeSBtYXRjaCEpIiwgImV4YW1wbGVfY29kZSI6ICJTVFJJTkcgaW5wdXRTdHJpbmcgPSBcInByZTphYmMjIHByZTpjZGUjIHByZTplZmcjXCJcblNUUklORyBwYXR0ZXJuID0gXCJyZWcocHJlOiguKj8pIylcIlxuU1RSSU5HIHJlcGxhY2VtZW50ID0gXCJcXDFcIlxuXG5TVFJJTkcgcmVzdWx0ID0gUmVnRXhKU2kuUmVwbGFjZUFsbE1hdGNoZXMocGF0dGVybiwgaW5wdXRTdHJpbmcsIHJlcGxhY2VtZW50KVxuXG4vLyBUaGlzIHdpbGwgb3V0cHV0OiBcImFiYyBwcmU6Y2RlIyBwcmU6ZWZnI1wiIiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiU1RSSU5HIGlucHV0U3RyaW5nID0gXCJwcmU6YWJjIyBwcmU6Y2RlIyBwcmU6ZWZnI1wiXG5TVFJJTkcgcGF0dGVybiA9IFwicmVnKHByZTooLio/KSMpXCJcblNUUklORyByZXBsYWNlbWVudCA9IFwiXHUwMDAxXCJcblxuU1RSSU5HIHJlc3VsdCA9IFJlZ0V4SlNpLlJlcGxhY2VBbGxNYXRjaGVzKHBhdHRlcm4sIGlucHV0U3RyaW5nLCByZXBsYWNlbWVudClcblxuLy8gVGhpcyB3aWxsIG91dHB1dDogXCJhYmMgcHJlOmNkZSMgcHJlOmVmZyNcIiJ9LCB7Im5hbWUiOiAiUmVnRXhKU2kuUmVwbGFjZUZpcnN0TWF0Y2ggKFJlZ0V4SlNpLCBTVFJJTkcsIFNUUklORykiLCAicmV0dXJuX3R5cGUiOiAiU1RSSU5HIiwgInJldHVybl9kZXNjIjogIlJldHVybnMgYSBuZXcgc3RyaW5nIHdpdGggdGhlIGZpcnN0IG1hdGNoIG9mIHRoZSByZWd1bGFyIGV4cHJlc3Npb24gaW4gdGhlIGlucHV0IHN0cmluZyByZXBsYWNlZCBieSB0aGUgc3BlY2lmaWVkIHJlcGxhY2VtZW50IHN0cmluZy4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiUmVnRXhKU2k6IHRoZSByZWd1bGFyIGV4cHJlc3Npb24gcGF0dGVybiB0byBtYXRjaCBhZ2FpbnM7IFNUUklORzogdGhlIGlucHV0IFNUUklORyBpbiB3aGljaCB0byBzZWFyY2ggZm9yIG1hdGNoZXM7IFNUUklORzogdGhlIHJlcGxhY2VtZW50IFNUUklORy4iLCAiZGVzY3JpcHRpb24iOiAiUmV0dXJucyBhIGNvcHkgb2YgZ2l2ZW4gU1RSSU5HLCB3aGVyZSB0aGUgZmlyc3Qgb2NjdXJyZW5jZSBvZiByZWd1bGFyIGV4cHJlc3Npb24gaXMgcmVwbGFjZWQgYnkgZ2l2ZW4gdGhpcmQgcGFyYW1ldGVyLiBGb3IgZXhhbXBsZSBTVFJJTkcgXCJwcmU6YWJjIyBwcmU6Y2RlI1wiLCByZWd1bGFyIGV4cHJlc3Npb24gXCJyZWcocHJlOiguKj8pIylcIiBhbmQgcmVwbGFjZSBTVFJJTkcgXCJcXDFcIiB3aWxsIHJlc3VsdCBpbiBcImFiYyBwcmU6Y2RlI1wiIChub3RlIHRoYXQgPyBhZnRlciAqIGluIHJlZ3VsYXIgZXhwcmVzc2lvbiByZXN1bHRzIGluIGEgbm9uIGdyZWVkeSBtYXRjaCEpIiwgImV4YW1wbGVfY29kZSI6ICIvLyBEZWZpbmUgdGhlIGlucHV0IHN0cmluZ1xuU1RSSU5HIGlucHV0U3RyaW5nID0gXCJwcmU6YWJjIyBwcmU6Y2RlI1wiXG5cbi8vIERlZmluZSB0aGUgcmVndWxhciBleHByZXNzaW9uIHBhdHRlcm5cblJlZ0V4SlNpIHJlZ2V4UGF0dGVybiA9IFwicmVnKHByZTooLio/KSMpXCJcblxuLy8gRGVmaW5lIHRoZSByZXBsYWNlbWVudCBzdHJpbmdcblNUUklORyByZXBsYWNlbWVudFN0cmluZyA9IFwiXFwxXCJcblxuLy8gVXNlIHRoZSBSZXBsYWNlRmlyc3RNYXRjaCBmdW5jdGlvbiB0byByZXBsYWNlIHRoZSBmaXJzdCBtYXRjaFxuU1RSSU5HIHJlc3VsdFN0cmluZyA9IFJlZ0V4SlNpLlJlcGxhY2VGaXJzdE1hdGNoKHJlZ2V4UGF0dGVybiwgaW5wdXRTdHJpbmcsIHJlcGxhY2VtZW50U3RyaW5nKVxuXG4vLyBQcmludCB0aGUgcmVzdWx0IHRvIHRoZSBjb25zb2xlXG4vLyByZXN1bHRTdHJpbmciLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICIvLyBEZWZpbmUgdGhlIGlucHV0IHN0cmluZ1xuU1RSSU5HIGlucHV0U3RyaW5nID0gXCJwcmU6YWJjIyBwcmU6Y2RlI1wiXG5cbi8vIERlZmluZSB0aGUgcmVndWxhciBleHByZXNzaW9uIHBhdHRlcm5cblJlZ0V4SlNpIHJlZ2V4UGF0dGVybiA9IFwicmVnKHByZTooLio/KSMpXCJcblxuLy8gRGVmaW5lIHRoZSByZXBsYWNlbWVudCBzdHJpbmdcblNUUklORyByZXBsYWNlbWVudFN0cmluZyA9IFwiXHUwMDAxXCJcblxuLy8gVXNlIHRoZSBSZXBsYWNlRmlyc3RNYXRjaCBmdW5jdGlvbiB0byByZXBsYWNlIHRoZSBmaXJzdCBtYXRjaFxuU1RSSU5HIHJlc3VsdFN0cmluZyA9IFJlZ0V4SlNpLlJlcGxhY2VGaXJzdE1hdGNoKHJlZ2V4UGF0dGVybiwgaW5wdXRTdHJpbmcsIHJlcGxhY2VtZW50U3RyaW5nKVxuXG4vLyBQcmludCB0aGUgcmVzdWx0IHRvIHRoZSBjb25zb2xlXG4vLyByZXN1bHRTdHJpbmcifSwgeyJuYW1lIjogIlJlZ0V4SlNpLlJlcGxhY2VGaXJzdE1hdGNoIChTVFJJTkcsIFNUUklORywgU1RSSU5HKSIsICJyZXR1cm5fdHlwZSI6ICJTVFJJTkciLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyBhIHN0cmluZyB3aGVyZSB0aGUgZmlyc3Qgb2NjdXJyZW5jZSBtYXRjaGluZyB0aGUgZ2l2ZW4gcmVndWxhciBleHByZXNzaW9uIGlzIHJlcGxhY2VkIGJ5IHRoZSBzcGVjaWZpZWQgcmVwbGFjZW1lbnQgc3RyaW5nLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJTVFJJTkc6IHRoZSByZWd1bGFyIGV4cHJlc3Npb24gdG8gbWF0Y2g7IFNUUklORzogdGhlIGlucHV0IFNUUklORyB0byBzZWFyY2ggd2l0aGluOyBTVFJJTkc6IHRoZSByZXBsYWNlbWVudCBTVFJJTkcuIiwgImRlc2NyaXB0aW9uIjogIlJldHVybnMgYSBjb3B5IG9mIGdpdmVuIFNUUklORywgd2hlcmUgdGhlIGZpcnN0IG9jY3VycmVuY2Ugb2YgcmVndWxhciBleHByZXNzaW9uICgxc3QgcGFyYW1ldGVyKSBpcyByZXBsYWNlZCBieSBnaXZlbiB0aGlyZCBwYXJhbWV0ZXIuRm9yIGV4YW1wbGUgU1RSSU5HIFwicHJlOmFiYyMgcHJlOmNkZSNcIiwgcmVndWxhciBleHByZXNzaW9uIFwicmVnKHByZTooLio/KSMpXCIgYW5kIHJlcGxhY2UgU1RSSU5HIFwiXFwxXCIgd2lsbCByZXN1bHQgaW4gXCJhYmMgcHJlOmNkZSNcIiAobm90ZSB0aGF0ID8gYWZ0ZXIgKiBpbiByZWd1bGFyIGV4cHJlc3Npb24gcmVzdWx0cyBpbiBhIG5vbiBncmVlZHkgbWF0Y2ghKSIsICJleGFtcGxlX2NvZGUiOiAiU1RSSU5HIGlucHV0U3RyaW5nID0gXCJUaGUgcXVpY2sgYnJvd24gZm94IGp1bXBzIG92ZXIgdGhlIGxhenkgZG9nXCI7XG5TVFJJTkcgcGF0dGVybiA9IFwicXVpY2sgKC4qPykgZm94XCI7XG5TVFJJTkcgcmVwbGFjZW1lbnQgPSBcInNsb3cgXFwxIGNhdFwiO1xuXG5TVFJJTkcgcmVzdWx0ID0gUmVnRXhKU2kuUmVwbGFjZUZpcnN0TWF0Y2gocGF0dGVybiwgaW5wdXRTdHJpbmcsIHJlcGxhY2VtZW50KTtcblxuLy8gT3V0cHV0OiBcIlRoZSBzbG93IGJyb3duIGNhdCBqdW1wcyBvdmVyIHRoZSBsYXp5IGRvZ1wiIiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiU1RSSU5HIGlucHV0U3RyaW5nID0gXCJUaGUgcXVpY2sgYnJvd24gZm94IGp1bXBzIG92ZXIgdGhlIGxhenkgZG9nXCI7XG5TVFJJTkcgcGF0dGVybiA9IFwicXVpY2sgKC4qPykgZm94XCI7XG5TVFJJTkcgcmVwbGFjZW1lbnQgPSBcInNsb3cgXHUwMDAxIGNhdFwiO1xuXG5TVFJJTkcgcmVzdWx0ID0gUmVnRXhKU2kuUmVwbGFjZUZpcnN0TWF0Y2gocGF0dGVybiwgaW5wdXRTdHJpbmcsIHJlcGxhY2VtZW50KTtcblxuLy8gT3V0cHV0OiBcIlRoZSBzbG93IGJyb3duIGNhdCBqdW1wcyBvdmVyIHRoZSBsYXp5IGRvZ1wiIn0sIHsibmFtZSI6ICJSZWdFeEpTaS5TZWFyY2ggKFJlZ0V4SlNpLCBTVFJJTkcpIiwgInJldHVybl90eXBlIjogIkJPT0xFQU4iLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyB0cnVlIGlmIHRoZSBnaXZlbiBzdHJpbmcgY29udGFpbnMgYXQgbGVhc3Qgb25lIG1hdGNoIG9yIGNhcHR1cmUgZ3JvdXAgYmFzZWQgb24gdGhlIHNwZWNpZmllZCByZWd1bGFyIGV4cHJlc3Npb24uIiwgInBhcmFtZXRlcl9kZXNjIjogIlJlZ0V4SlNpOiB0aGUgcmVndWxhciBleHByZXNzaW9uIHBhdHRlcm4gdG8gbWF0Y2ggYWdhaW5zOyBTVFJJTkc6IHRoZSBpbnB1dCBTVFJJTkcgaW4gd2hpY2ggdG8gc2VhcmNoIGZvciBtYXRjaGVzLiIsICJkZXNjcmlwdGlvbiI6ICJSZXR1cm5zIFRSVUUgaWYgYXQgbGVhc3Qgb25lIG1hdGNoIG9yIGNhcHR1cmUoaW4gY2FzZSBvZiBjYXB0dXJlIGdyb3VwcykuIiwgImV4YW1wbGVfY29kZSI6ICIvLyBEZWZpbmUgdGhlIHJlZ3VsYXIgZXhwcmVzc2lvbiBwYXR0ZXJuXG5SZWdFeEpTaSBwYXR0ZXJuID0gUmVnRXhKU2koXCJleGFtcGxlLXBhdHRlcm5cIilcblxuLy8gR2V0IHRoZSBjdXJyZW50IFVSTCBhcyBhIHN0cmluZ1xuU1RSSU5HIGN1cnJlbnRVUkwgPSBNV0cuVXJsKCkuVG9TdHJpbmcoKVxuXG4vLyBDaGVjayBpZiB0aGUgVVJMIG1hdGNoZXMgdGhlIHBhdHRlcm5cbklGIFJlZ0V4SlNpLlNlYXJjaChwYXR0ZXJuLCBjdXJyZW50VVJMKSBUSEVOIHtcbiAgICAvLyBCbG9jayB0aGUgcmVxdWVzdCBpZiB0aGUgcGF0dGVybiBpcyBmb3VuZFxuICAgIE1XRy5CbG9jayhcIkJsb2NrZWQgZHVlIHRvIG1hdGNoaW5nIHBhdHRlcm5cIilcbn0gRUxTRSB7XG4gICAgLy8gQWxsb3cgdGhlIHJlcXVlc3QgaWYgdGhlIHBhdHRlcm4gaXMgbm90IGZvdW5kXG4gICAgTVdHLkFsbG93KFwiUGF0dGVybiBub3QgZm91bmRcIilcbn0iLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICIvLyBEZWZpbmUgdGhlIHJlZ3VsYXIgZXhwcmVzc2lvbiBwYXR0ZXJuXG5SZWdFeEpTaSBwYXR0ZXJuID0gUmVnRXhKU2koXCJleGFtcGxlLXBhdHRlcm5cIilcblxuLy8gR2V0IHRoZSBjdXJyZW50IFVSTCBhcyBhIHN0cmluZ1xuU1RSSU5HIGN1cnJlbnRVUkwgPSBNV0cuVXJsKCkuVG9TdHJpbmcoKVxuXG4vLyBDaGVjayBpZiB0aGUgVVJMIG1hdGNoZXMgdGhlIHBhdHRlcm5cbklGIFJlZ0V4SlNpLlNlYXJjaChwYXR0ZXJuLCBjdXJyZW50VVJMKSBUSEVOIHtcbiAgICAvLyBCbG9jayB0aGUgcmVxdWVzdCBpZiB0aGUgcGF0dGVybiBpcyBmb3VuZFxuICAgIE1XRy5CbG9jayhcIkJsb2NrZWQgZHVlIHRvIG1hdGNoaW5nIHBhdHRlcm5cIilcbn0gRUxTRSB7XG4gICAgLy8gQWxsb3cgdGhlIHJlcXVlc3QgaWYgdGhlIHBhdHRlcm4gaXMgbm90IGZvdW5kXG4gICAgTVdHLkFsbG93KFwiUGF0dGVybiBub3QgZm91bmRcIilcbn0ifSwgeyJuYW1lIjogIlJlZ0V4SlNpLlNlYXJjaEFsbE1hdGNoZXMgKFJlZ0V4SlNpLCBTVFJJTkcpIiwgInJldHVybl90eXBlIjogIlZFQ1RPUjxTVFJJTkc+IiwgInJldHVybl9kZXNjIjogIlJldHVybnMgYSB2ZWN0b3IgY29udGFpbmluZyBhbGwgc3Vic3RyaW5ncyBvZiB0aGUgaW5wdXQgc3RyaW5nIHRoYXQgbWF0Y2ggdGhlIGdpdmVuIHJlZ3VsYXIgZXhwcmVzc2lvbi4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiUmVnRXhKU2k6IHRoZSByZWd1bGFyIGV4cHJlc3Npb24gcGF0dGVybiB0byBtYXRjaCBhZ2FpbnM7IFNUUklORzogdGhlIGlucHV0IFNUUklORyBpbiB3aGljaCB0byBzZWFyY2ggZm9yIG1hdGNoZXMuIiwgImRlc2NyaXB0aW9uIjogIlJldHVybnMgbGlzdCBvZiBtYXRjaGVkIHJlZ2V4IGlucHV0IChmb3IgZS5nOiBTVFJJTkc6ICdhMWIyYzNkNGU1JywgUmVnZXg6ICdcXGQnIHRoZSByZXN1bHQgd291bGQgYmUgOiAnMScsICcgMicsICczJywgJzQnLCAnNScpLiIsICJleGFtcGxlX2NvZGUiOiAiLy8gRGVmaW5lIHRoZSBpbnB1dCBzdHJpbmdcblNUUklORyBpbnB1dFN0cmluZyA9IFwiYTFiMmMzZDRlNVwiO1xuXG4vLyBEZWZpbmUgdGhlIHJlZ3VsYXIgZXhwcmVzc2lvbiBwYXR0ZXJuIHRvIG1hdGNoIGRpZ2l0c1xuUmVnRXhKU2kgcmVnZXhQYXR0ZXJuID0gXCJcXGRcIjtcblxuLy8gVXNlIHRoZSBSZWdFeEpTaS5TZWFyY2hBbGxNYXRjaGVzIGZ1bmN0aW9uIHRvIGZpbmQgYWxsIG1hdGNoZXNcblZFQ1RPUjxTVFJJTkc+IG1hdGNoZXMgPSBSZWdFeEpTaS5TZWFyY2hBbGxNYXRjaGVzKHJlZ2V4UGF0dGVybiwgaW5wdXRTdHJpbmcpO1xuXG4vLyBNYXRjaGVzIGZvdW5kOiBcIiArIG1hdGNoZXNcbi8vIEluIHRoaXMgZXhhbXBsZTpcbi8vIC0gVGhlIGBpbnB1dFN0cmluZ2AgaXMgXCJhMWIyYzNkNGU1XCIuXG4vLyAtIFRoZSBgcmVnZXhQYXR0ZXJuYCBpcyBkZWZpbmVkIGFzIGBcIlxcZFwiYCwgd2hpY2ggbWF0Y2hlcyBhbnkgZGlnaXQuXG4vLyAtIFRoZSBgUmVnRXhKU2kuU2VhcmNoQWxsTWF0Y2hlc2AgZnVuY3Rpb24gaXMgY2FsbGVkIHdpdGggdGhlIGByZWdleFBhdHRlcm5gIGFuZCBgaW5wdXRTdHJpbmdgIGFzIGFyZ3VtZW50cywgYW5kIGl0IHJldHVybnMgYSBgVkVDVE9SPFNUUklORz5gIGNvbnRhaW5pbmcgYWxsIHRoZSBtYXRjaGVkIGRpZ2l0IHNlcXVlbmNlcy5cbi8vIC0gVGhlIG1hdGNoZXMgYXJlIHRoZW4gcHJpbnRlZCB0byB0aGUgY29uc29sZSB1c2luZyB0aGUgYERFQlVHYCBmdW5jdGlvbi5cbi8vIFdoZW4gdGhpcyByb3V0aW5lIGlzIGV4ZWN1dGVkLCBpdCB3aWxsIG91dHB1dDpcbi8vIE1hdGNoZXMgZm91bmQ6IDEsIDIsIDMsIDQsIDUiLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICIvLyBEZWZpbmUgdGhlIGlucHV0IHN0cmluZ1xuU1RSSU5HIGlucHV0U3RyaW5nID0gXCJhMWIyYzNkNGU1XCI7XG5cbi8vIERlZmluZSB0aGUgcmVndWxhciBleHByZXNzaW9uIHBhdHRlcm4gdG8gbWF0Y2ggZGlnaXRzXG5SZWdFeEpTaSByZWdleFBhdHRlcm4gPSBcIlxcZFwiO1xuXG4vLyBVc2UgdGhlIFJlZ0V4SlNpLlNlYXJjaEFsbE1hdGNoZXMgZnVuY3Rpb24gdG8gZmluZCBhbGwgbWF0Y2hlc1xuVkVDVE9SPFNUUklORz4gbWF0Y2hlcyA9IFJlZ0V4SlNpLlNlYXJjaEFsbE1hdGNoZXMocmVnZXhQYXR0ZXJuLCBpbnB1dFN0cmluZyk7XG5cbi8vIE1hdGNoZXMgZm91bmQ6IFwiICsgbWF0Y2hlc1xuLy8gSW4gdGhpcyBleGFtcGxlOlxuLy8gLSBUaGUgYGlucHV0U3RyaW5nYCBpcyBcImExYjJjM2Q0ZTVcIi5cbi8vIC0gVGhlIGByZWdleFBhdHRlcm5gIGlzIGRlZmluZWQgYXMgYFwiXFxkXCJgLCB3aGljaCBtYXRjaGVzIGFueSBkaWdpdC5cbi8vIC0gVGhlIGBSZWdFeEpTaS5TZWFyY2hBbGxNYXRjaGVzYCBmdW5jdGlvbiBpcyBjYWxsZWQgd2l0aCB0aGUgYHJlZ2V4UGF0dGVybmAgYW5kIGBpbnB1dFN0cmluZ2AgYXMgYXJndW1lbnRzLCBhbmQgaXQgcmV0dXJucyBhIGBWRUNUT1I8U1RSSU5HPmAgY29udGFpbmluZyBhbGwgdGhlIG1hdGNoZWQgZGlnaXQgc2VxdWVuY2VzLlxuLy8gLSBUaGUgbWF0Y2hlcyBhcmUgdGhlbiBwcmludGVkIHRvIHRoZSBjb25zb2xlIHVzaW5nIHRoZSBgREVCVUdgIGZ1bmN0aW9uLlxuLy8gV2hlbiB0aGlzIHJvdXRpbmUgaXMgZXhlY3V0ZWQsIGl0IHdpbGwgb3V0cHV0OlxuLy8gTWF0Y2hlcyBmb3VuZDogMSwgMiwgMywgNCwgNSJ9LCB7Im5hbWUiOiAiUmVnRXhKU2kuVG9TVFJJTkcgKFJlZ0V4SlNpKSIsICJyZXR1cm5fdHlwZSI6ICJTVFJJTkciLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyB0aGUgcmVndWxhciBleHByZXNzaW9uIGluIHN0cmluZyBmb3JtYXQuIiwgInBhcmFtZXRlcl9kZXNjIjogIlJlZ0V4SlNpOiB0aGUgcmVndWxhciBleHByZXNzaW9uIG9iamVjdCB0byBiZSBjb252ZXJ0ZWQgdG8gYSBTVFJJTkcuIiwgImRlc2NyaXB0aW9uIjogInJldHVybiB0aGUgcmVndWxhciBleHByZXNzaW9uIGFzIGEgU1RSSU5HIiwgImV4YW1wbGVfY29kZSI6ICIvLyBDcmVhdGUgYSBSZWdFeEpTaSBvYmplY3RcblJlZ0V4SlNpIG15UmVnZXggPSBSZWdFeEpTaShcIl5bYS16QS1aMC05XSskXCIpXG5cbi8vIENvbnZlcnQgdGhlIFJlZ0V4SlNpIG9iamVjdCB0byBhIFNUUklOR1xuU1RSSU5HIHJlZ2V4U3RyaW5nID0gUmVnRXhKU2kuVG9TdHJpbmcobXlSZWdleClcblxuLy8gVGhlIHJlZ3VsYXIgZXhwcmVzc2lvbiBpczogXG4vLyByZWdleFN0cmluZyIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIi8vIENyZWF0ZSBhIFJlZ0V4SlNpIG9iamVjdFxuUmVnRXhKU2kgbXlSZWdleCA9IFJlZ0V4SlNpKFwiXlthLXpBLVowLTldKyRcIilcblxuLy8gQ29udmVydCB0aGUgUmVnRXhKU2kgb2JqZWN0IHRvIGEgU1RSSU5HXG5TVFJJTkcgcmVnZXhTdHJpbmcgPSBSZWdFeEpTaS5Ub1N0cmluZyhteVJlZ2V4KVxuXG4vLyBUaGUgcmVndWxhciBleHByZXNzaW9uIGlzOiBcbi8vIHJlZ2V4U3RyaW5nIn0sIHsibmFtZSI6ICJSZWdFeEpTaS5XaWxkY2FyZE1hdGNoIChSZWdFeEpTaSwgU1RSSU5HKSIsICJyZXR1cm5fdHlwZSI6ICJWRUNUT1I8U1RSSU5HPiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIGEgdmVjdG9yIGNvbnRhaW5pbmcgdGhlIHN1YnN0cmluZ3Mgb2YgdGhlIGlucHV0IHN0cmluZyB0aGF0IG1hdGNoIHRoZSBncm91cHMgd2l0aGluIHRoZSBzcGVjaWZpZWQgcmVndWxhciBleHByZXNzaW9uLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJSZWdFeEpTaTogdGhlIHJlZ3VsYXIgZXhwcmVzc2lvbiBwYXR0ZXJuIHRvIG1hdGNoIGFnYWluczsgU1RSSU5HOiB0aGUgaW5wdXQgU1RSSU5HIGluIHdoaWNoIHRvIHNlYXJjaCBmb3IgbWF0Y2hlcy4iLCAiZGVzY3JpcHRpb24iOiAiUmV0dXJucyBhIGxpc3Qgd2l0aCBtYXRjaGVkIGV4cHJlc3Npb25zIG9mIGEgZ2l2ZW4gU1RSSU5HLCBmb3IgZXhhbXBsZSBwcm9wZXJ0eSB3aXRoIFNUUklORyBcImh0dHA6Ly93d3cuZ29vZ2xlLmRlXCIgYW5kIHJlZ3VsYXIgZXhwcmVzc2lvbiBcIi8oZnRwfGh0dHB8aHR0cHMpOlxcL1xcLyhcXHcrKSpcXC4oXFx3K1xcLikqKFxcdyspKi9cIiB3aWxsIHJldHVybiBhIGxpc3Qgd2l0aCB0aGUgZWxlbWVudHMgJ2h0dHAnLCAnd3d3JywgJ2dvb2dsZS4nLCAnZGUnIiwgImV4YW1wbGVfY29kZSI6ICIvLyBEZWZpbmUgdGhlIHdpbGRjYXJkIHBhdHRlcm4gYW5kIHRoZSBzdHJpbmcgdG8gbWF0Y2hcblJlZ0V4SlNpIHBhdHRlcm4gPSBcImV4YW1wbGUqcGF0dGVyblwiXG5TVFJJTkcgaW5wdXRTdHJpbmcgPSBcImV4YW1wbGUxMjNwYXR0ZXJuXCJcblxuLy8gVXNlIHRoZSBXaWxkY2FyZE1hdGNoIGZ1bmN0aW9uIHRvIGNoZWNrIGlmIHRoZSBpbnB1dCBzdHJpbmcgbWF0Y2hlcyB0aGUgcGF0dGVyblxuQk9PTEVBTiBpc01hdGNoID0gUmVnRXhKU2kuV2lsZGNhcmRNYXRjaChwYXR0ZXJuLCBpbnB1dFN0cmluZylcblxuLy8gUHJpbnQgdGhlIHJlc3VsdCB0byB0aGUgY29uc29sZVxuSUYgaXNNYXRjaCBUSEVOIHtcbiAgICAvLyBUaGUgaW5wdXQgc3RyaW5nIG1hdGNoZXMgdGhlIHdpbGRjYXJkIHBhdHRlcm4uXG59IEVMU0Uge1xuICAgIC8vIFRoZSBpbnB1dCBzdHJpbmcgZG9lcyBub3QgbWF0Y2ggdGhlIHdpbGRjYXJkIHBhdHRlcm4uXG59IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiLy8gRGVmaW5lIHRoZSB3aWxkY2FyZCBwYXR0ZXJuIGFuZCB0aGUgc3RyaW5nIHRvIG1hdGNoXG5SZWdFeEpTaSBwYXR0ZXJuID0gXCJleGFtcGxlKnBhdHRlcm5cIlxuU1RSSU5HIGlucHV0U3RyaW5nID0gXCJleGFtcGxlMTIzcGF0dGVyblwiXG5cbi8vIFVzZSB0aGUgV2lsZGNhcmRNYXRjaCBmdW5jdGlvbiB0byBjaGVjayBpZiB0aGUgaW5wdXQgc3RyaW5nIG1hdGNoZXMgdGhlIHBhdHRlcm5cbkJPT0xFQU4gaXNNYXRjaCA9IFJlZ0V4SlNpLldpbGRjYXJkTWF0Y2gocGF0dGVybiwgaW5wdXRTdHJpbmcpXG5cbi8vIFByaW50IHRoZSByZXN1bHQgdG8gdGhlIGNvbnNvbGVcbklGIGlzTWF0Y2ggVEhFTiB7XG4gICAgLy8gVGhlIGlucHV0IHN0cmluZyBtYXRjaGVzIHRoZSB3aWxkY2FyZCBwYXR0ZXJuLlxufSBFTFNFIHtcbiAgICAvLyBUaGUgaW5wdXQgc3RyaW5nIGRvZXMgbm90IG1hdGNoIHRoZSB3aWxkY2FyZCBwYXR0ZXJuLlxufSJ9LCB7Im5hbWUiOiAiUmVnRXhKU2lMaXN0LlRvU1RSSU5HIChSZWdFeEpTaS5MaXN0LCBTVFJJTkcpIiwgInJldHVybl90eXBlIjogIlNUUklORyIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIHRoZSByZWd1bGFyIGV4cHJlc3Npb24gbGlzdCBhcyBhIGRlbGltaXRlZCAoZGVmYXVsdCBcIiwgXCIpIHN0cmluZy4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiUmVnRXhKU2kuTGlzdDogbGlzdCB0byBjb252ZXJ0IHRvIFNUUklORzsgU1RSSU5HOiBkZWxpbWl0ZXIgdG8gdXNlLiIsICJkZXNjcmlwdGlvbiI6ICJyZXR1cm4gdGhlIHJlZ3VsYXIgZXhwcmVzc2lvbiBsaXN0IGFzIGEgZGVsaW1pdGVkIChkZWZhdWx0IFwiLCBcIikgU1RSSU5HIiwgImV4YW1wbGVfY29kZSI6ICIvLyBBc3N1bWUgd2UgaGF2ZSBhIFJlZ0V4SlNpLkxpc3Qgb2JqZWN0IG5hbWVkIHJlZ2V4TGlzdFxuUmVnRXhKU2kuTGlzdCByZWdleExpc3QgPSBbXCJleGFtcGxlX3JlZ2V4X2xpc3RcIl1cblxuLy8gQ29udmVydCB0aGUgUmVnRXhKU2kuTGlzdCB0byBhIFNUUklORyB3aXRoIGEgc3BlY2lmaWVkIGRlbGltaXRlclxuU1RSSU5HIGRlbGltaXRlciA9IFwiLFwiXG5TVFJJTkcgcmVnZXhMaXN0U3RyaW5nID0gUmVnRXhKU2lMaXN0LlRvU3RyaW5nKHJlZ2V4TGlzdCwgZGVsaW1pdGVyKVxuXG4vLyBQcmludCB0aGUgcmVzdWx0aW5nIFNUUklORyB0byB0aGUgY29uc29sZVxuLy8gREVCVUcocmVnZXhMaXN0U3RyaW5nKSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIi8vIEFzc3VtZSB3ZSBoYXZlIGEgUmVnRXhKU2kuTGlzdCBvYmplY3QgbmFtZWQgcmVnZXhMaXN0XG5SZWdFeEpTaS5MaXN0IHJlZ2V4TGlzdCA9IFtcImV4YW1wbGVfcmVnZXhfbGlzdFwiXVxuXG4vLyBDb252ZXJ0IHRoZSBSZWdFeEpTaS5MaXN0IHRvIGEgU1RSSU5HIHdpdGggYSBzcGVjaWZpZWQgZGVsaW1pdGVyXG5TVFJJTkcgZGVsaW1pdGVyID0gXCIsXCJcblNUUklORyByZWdleExpc3RTdHJpbmcgPSBSZWdFeEpTaUxpc3QuVG9TdHJpbmcocmVnZXhMaXN0LCBkZWxpbWl0ZXIpXG5cbi8vIFByaW50IHRoZSByZXN1bHRpbmcgU1RSSU5HIHRvIHRoZSBjb25zb2xlXG4vLyBERUJVRyhyZWdleExpc3RTdHJpbmcpIn0sIHsibmFtZSI6ICJSZWdFeEpTaUxpc3RQdHIuVG9TVFJJTkcgKFJlZ0V4SlNpLkxpc3QsIFNUUklORykiLCAicmV0dXJuX3R5cGUiOiAiU1RSSU5HIiwgInJldHVybl9kZXNjIjogIlJldHVybnMgdGhlIHJlZ3VsYXIgZXhwcmVzc2lvbiBsaXN0IGZvcm1hdHRlZCBhcyBhIHN0cmluZywgd2l0aCBpdGVtcyBzZXBhcmF0ZWQgYnkgYSBzcGVjaWZpZWQgZGVsaW1pdGVyLiBEZWZhdWx0IGlzIFwiLCBcIi4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiUmVnRXhKU2kuTGlzdDogdGhlIGxpc3Qgb2YgcmVndWxhciBleHByZXNzaW9uczsgU1RSSU5HOiB0aGUgZGVsaW1pdGVyIHVzZWQgdG8gam9pbiB0aGVtLiIsICJkZXNjcmlwdGlvbiI6ICJyZXR1cm4gdGhlIHJlZ3VsYXIgZXhwcmVzc2lvbiBsaXN0IGFzIGEgZGVsaW1pdGVkIChkZWZhdWx0IFwiLCBcIikgU1RSSU5HIiwgImV4YW1wbGVfY29kZSI6ICIvLyBDcmVhdGUgYSBuZXcgUmVnRXhKU2kuTGlzdFxuUmVnRXhKU2kuTGlzdCByZWdleExpc3QgPSBSZWdFeEpTaS5MaXN0KClcblxuLy8gQWRkIGEgcmVndWxhciBleHByZXNzaW9uIHRvIHRoZSBsaXN0XG5SZWdFeEpTaS5BZGQocmVnZXhMaXN0LCBcIl5bYS16QS1aMC05Ll8lKy1dK0BbYS16QS1aMC05Li1dK1xcXFwuW2EtekEtWl17Mix9JFwiKVxuXG4vLyBBZGQgYW5vdGhlciByZWd1bGFyIGV4cHJlc3Npb24gdG8gdGhlIGxpc3RcblJlZ0V4SlNpLkFkZChyZWdleExpc3QsIFwiXmh0dHBzPzovL1thLXpBLVowLTkuLV0rXFxcXC5bYS16QS1aXXsyLH0oLy4qKT8kXCIpXG5cbi8vIFJlZ3VsYXIgZXhwcmVzc2lvbnMgYWRkZWQgdG8gdGhlIGxpc3QuIiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiLy8gQ3JlYXRlIGEgbmV3IFJlZ0V4SlNpLkxpc3RcblJlZ0V4SlNpLkxpc3QgcmVnZXhMaXN0ID0gUmVnRXhKU2kuTGlzdCgpXG5cbi8vIEFkZCBhIHJlZ3VsYXIgZXhwcmVzc2lvbiB0byB0aGUgbGlzdFxuUmVnRXhKU2kuQWRkKHJlZ2V4TGlzdCwgXCJeW2EtekEtWjAtOS5fJSstXStAW2EtekEtWjAtOS4tXStcXC5bYS16QS1aXXsyLH0kXCIpXG5cbi8vIEFkZCBhbm90aGVyIHJlZ3VsYXIgZXhwcmVzc2lvbiB0byB0aGUgbGlzdFxuUmVnRXhKU2kuQWRkKHJlZ2V4TGlzdCwgXCJeaHR0cHM/Oi8vW2EtekEtWjAtOS4tXStcXC5bYS16QS1aXXsyLH0oLy4qKT8kXCIpXG5cbi8vIFJlZ3VsYXIgZXhwcmVzc2lvbnMgYWRkZWQgdG8gdGhlIGxpc3QuIn0sIHsibmFtZSI6ICJSZW1vdmUgKE1BUDxTVFJJTkcsIFNUUklORz4sIFNUUklORykiLCAicmV0dXJuX3R5cGUiOiAiTUFQPFNUUklORyxTVFJJTkc+IiwgInJldHVybl9kZXNjIjogIlJldHVybnMgdGhlIHVwZGF0ZWQgbWFwLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJNQVA8U1RSSU5HLCBTVFJJTkc+OiBtYXAgdG8gcmVtb3ZlIGZyb207IFNUUklORzoga2V5IHRvIHJlbW92ZSBmcm9tIG1hcC4iLCAiZGVzY3JpcHRpb24iOiAiRnVjdGlvbnM6IFJldHVybnMgdGhlIG1hcCB3aXRob3V0IHRoZSBnaXZlbiBrZXkiLCAiZXhhbXBsZV9jb2RlIjogIi8vIEluaXRpYWxpemUgYSBtYXAgd2l0aCBzb21lIGtleS12YWx1ZSBwYWlyc1xuTUFQPFNUUklORywgU1RSSU5HPiBleGFtcGxlTWFwID0ge1xuICAgIFwia2V5MVwiOiBcInZhbHVlMVwiLFxuICAgIFwia2V5MlwiOiBcInZhbHVlMlwiLFxuICAgIFwia2V5M1wiOiBcInZhbHVlM1wiXG59XG5cbi8vIE9yaWdpbmFsIE1hcDogZXhhbXBsZU1hcFxuXG4vLyBSZW1vdmUgYSBrZXkgZnJvbSB0aGUgbWFwXG5leGFtcGxlTWFwID0gUmVtb3ZlKGV4YW1wbGVNYXAsIFwia2V5MlwiKVxuXG4vLyBVcGRhdGVkIE1hcDogZXhhbXBsZU1hcCIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIi8vIEluaXRpYWxpemUgYSBtYXAgd2l0aCBzb21lIGtleS12YWx1ZSBwYWlyc1xuTUFQPFNUUklORywgU1RSSU5HPiBleGFtcGxlTWFwID0ge1xuICAgIFwia2V5MVwiOiBcInZhbHVlMVwiLFxuICAgIFwia2V5MlwiOiBcInZhbHVlMlwiLFxuICAgIFwia2V5M1wiOiBcInZhbHVlM1wiXG59XG5cbi8vIE9yaWdpbmFsIE1hcDogZXhhbXBsZU1hcFxuXG4vLyBSZW1vdmUgYSBrZXkgZnJvbSB0aGUgbWFwXG5leGFtcGxlTWFwID0gUmVtb3ZlKGV4YW1wbGVNYXAsIFwia2V5MlwiKVxuXG4vLyBVcGRhdGVkIE1hcDogZXhhbXBsZU1hcCJ9LCB7Im5hbWUiOiAiUmVtb3ZlIChSZWdFeEpTaS5MaXN0LCBOVU1CRVIpIiwgInJldHVybl90eXBlIjogIlJlZ0V4SlNpLkxpc3QiLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyBhIG5ldyBgUmVnRXhKU2lgLkxpc3Qgd2l0aCB0aGUgc3BlY2lmaWVkIGVudHJ5IHJlbW92ZWQuIiwgInBhcmFtZXRlcl9kZXNjIjogIlJlZ0V4SlNpLkxpc3Q6IHRoZSBsaXN0IHRvIHJlbW92ZSBmcm9tOyBOVU1CRVI6IHRoZSB6ZXJvLWJhc2VkIGluZGV4IG9mIHRoZSBlbnRyeSB0byByZW1vdmUuIiwgImRlc2NyaXB0aW9uIjogIlJlbW92ZSBhIGxpc3QgZW50cnkiLCAiZXhhbXBsZV9jb2RlIjogIi8vIEluaXRpYWxpemUgYSBSZWdFeEpTaS5MaXN0IHdpdGggc29tZSBleGFtcGxlIHJlZ3VsYXIgZXhwcmVzc2lvbnNcblJlZ0V4SlNpLkxpc3QgcmVnZXhMaXN0ID0gW1wiXmFiY1wiLCBcImRlZiRcIiwgXCJnaGkuKlwiXVxuXG4vLyBTcGVjaWZ5IHRoZSBpbmRleCBvZiB0aGUgZW50cnkgdG8gcmVtb3ZlXG5OVU1CRVIgaW5kZXhUb1JlbW92ZSA9IDFcblxuLy8gUmVtb3ZlIHRoZSBlbnRyeSBhdCB0aGUgc3BlY2lmaWVkIGluZGV4XG5SZWdFeEpTaS5MaXN0IHVwZGF0ZWRMaXN0ID0gUmVtb3ZlKHJlZ2V4TGlzdCwgaW5kZXhUb1JlbW92ZSlcblxuLy8gUHJpbnQgdGhlIHVwZGF0ZWQgbGlzdCB0byB0aGUgY29uc29sZSBmb3IgZGVidWdnaW5nXG4vLyB1cGRhdGVkTGlzdCIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIi8vIEluaXRpYWxpemUgYSBSZWdFeEpTaS5MaXN0IHdpdGggc29tZSBleGFtcGxlIHJlZ3VsYXIgZXhwcmVzc2lvbnNcblJlZ0V4SlNpLkxpc3QgcmVnZXhMaXN0ID0gW1wiXmFiY1wiLCBcImRlZiRcIiwgXCJnaGkuKlwiXVxuXG4vLyBTcGVjaWZ5IHRoZSBpbmRleCBvZiB0aGUgZW50cnkgdG8gcmVtb3ZlXG5OVU1CRVIgaW5kZXhUb1JlbW92ZSA9IDFcblxuLy8gUmVtb3ZlIHRoZSBlbnRyeSBhdCB0aGUgc3BlY2lmaWVkIGluZGV4XG5SZWdFeEpTaS5MaXN0IHVwZGF0ZWRMaXN0ID0gUmVtb3ZlKHJlZ2V4TGlzdCwgaW5kZXhUb1JlbW92ZSlcblxuLy8gUHJpbnQgdGhlIHVwZGF0ZWQgbGlzdCB0byB0aGUgY29uc29sZSBmb3IgZGVidWdnaW5nXG4vLyB1cGRhdGVkTGlzdCJ9LCB7Im5hbWUiOiAiUmVtb3ZlIChSZWdFeEpTaS5MaXN0LCBOVU1CRVIsIE5VTUJFUikiLCAicmV0dXJuX3R5cGUiOiAiUmVnRXhKU2kuTGlzdCIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIGEgbGlzdCB3aXRoIGVudHJpZXMgcmVtb3ZlZCBiZXR3ZWVuIHRoZSBzcGVjaWZpZWQgc3RhcnQgYW5kIGVuZCBpbmRpY2VzLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJSZWdFeEpTaS5MaXN0OiB0aGUgbGlzdCB0byByZW1vdmUgZnJvbTsgTlVNQkVSOiB0aGUgc3RhcnRpbmcgaW5kZXg7IE5VTUJFUjogdGhlIGVuZGluZyBpbmRleC4iLCAiZGVzY3JpcHRpb24iOiAiUmVtb3ZlIGxpc3QgZW50cmllcyBiZXR3ZWVuIHRoZSBnaXZlbiBpbmRpY2VzIiwgImV4YW1wbGVfY29kZSI6ICIvLyBBc3N1bWUgd2UgaGF2ZSBhIFJlZ0V4SlNpLkxpc3Qgb2JqZWN0IG5hbWVkIHJlZ2V4TGlzdFxuUmVnRXhKU2kuTGlzdCByZWdleExpc3QgPSBbXCJleGFtcGxlX2xpc3RcIl1cblxuLy8gRGVmaW5lIHRoZSBpbmRleCBvZiB0aGUgZWxlbWVudCB0byByZW1vdmVcbk5VTUJFUiBpbmRleFRvUmVtb3ZlID0gMVxuXG4vLyBSZW1vdmUgdGhlIGVsZW1lbnQgYXQgdGhlIHNwZWNpZmllZCBpbmRleFxucmVnZXhMaXN0ID0gUmVtb3ZlKHJlZ2V4TGlzdCwgaW5kZXhUb1JlbW92ZSlcblxuLy8gVXBkYXRlZCByZWdleExpc3Q6IFwiICsgcmVnZXhMaXN0IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiLy8gQXNzdW1lIHdlIGhhdmUgYSBSZWdFeEpTaS5MaXN0IG9iamVjdCBuYW1lZCByZWdleExpc3RcblJlZ0V4SlNpLkxpc3QgcmVnZXhMaXN0ID0gW1wiZXhhbXBsZV9saXN0XCJdXG5cbi8vIERlZmluZSB0aGUgaW5kZXggb2YgdGhlIGVsZW1lbnQgdG8gcmVtb3ZlXG5OVU1CRVIgaW5kZXhUb1JlbW92ZSA9IDFcblxuLy8gUmVtb3ZlIHRoZSBlbGVtZW50IGF0IHRoZSBzcGVjaWZpZWQgaW5kZXhcbnJlZ2V4TGlzdCA9IFJlbW92ZShyZWdleExpc3QsIGluZGV4VG9SZW1vdmUpXG5cbi8vIFVwZGF0ZWQgcmVnZXhMaXN0OiBcIiArIHJlZ2V4TGlzdCJ9LCB7Im5hbWUiOiAiUmVtb3ZlIChSZWdFeEpTaS5MaXN0LCBSZWdFeEpTaS5MaXN0KSIsICJyZXR1cm5fdHlwZSI6ICJSZWdFeEpTaS5MaXN0IiwgInJldHVybl9kZXNjIjogIlJldHVybnMgdGhlIHVwZGF0ZWQgbGlzdC4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiUmVnRXhKU2kuTGlzdDogbGlzdCB0byByZW1vdmUgZnJvbTsgUmVnRXhKU2kuTGlzdDogZWxlbWVudHMgdG8gcmVtb3ZlLiIsICJkZXNjcmlwdGlvbiI6ICJSZW1vdmUgYWxsIGVsZW1lbnRzIGZyb20gdGhlIGZpcnN0IGxpc3QgdGhhdCBtYXRjaCBhbiBlbGVtZW50IGluIHRoZSBzZWNvbmQgbGlzdC4iLCAiZXhhbXBsZV9jb2RlIjogIi8vIEluaXRpYWxpemUgdHdvIFJlZ0V4SlNpLkxpc3Qgb2JqZWN0cyB3aXRoIHNvbWUgZXhhbXBsZSByZWd1bGFyIGV4cHJlc3Npb25zXG5SZWdFeEpTaS5MaXN0IGxpc3QxID0gXCJyZWdleDFcIiwgXCJyZWdleDJcIiwgXCJyZWdleDNcIiwgXCJyZWdleDRcIlxuUmVnRXhKU2kuTGlzdCBsaXN0MiA9IFwicmVnZXgyXCIsIFwicmVnZXg0XCJcblxuLy8gUmVtb3ZlIGVsZW1lbnRzIGZyb20gbGlzdDEgdGhhdCBhcmUgcHJlc2VudCBpbiBsaXN0MlxuUmVnRXhKU2kuTGlzdCB1cGRhdGVkTGlzdCA9IFJlbW92ZShsaXN0MSwgbGlzdDIpXG5cbi8vIERlYnVnIG91dHB1dCB0byB2ZXJpZnkgdGhlIG9wZXJhdGlvbiB3YXMgcmVwbGFjZWQgd2l0aCB0aGlzIGNvbW1lbnRcbi8vIFVwZGF0ZWQgbGlzdDE6ICsgdXBkYXRlZExpc3QiLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICIvLyBJbml0aWFsaXplIHR3byBSZWdFeEpTaS5MaXN0IG9iamVjdHMgd2l0aCBzb21lIGV4YW1wbGUgcmVndWxhciBleHByZXNzaW9uc1xuUmVnRXhKU2kuTGlzdCBsaXN0MSA9IFwicmVnZXgxXCIsIFwicmVnZXgyXCIsIFwicmVnZXgzXCIsIFwicmVnZXg0XCJcblJlZ0V4SlNpLkxpc3QgbGlzdDIgPSBcInJlZ2V4MlwiLCBcInJlZ2V4NFwiXG5cbi8vIFJlbW92ZSBlbGVtZW50cyBmcm9tIGxpc3QxIHRoYXQgYXJlIHByZXNlbnQgaW4gbGlzdDJcblJlZ0V4SlNpLkxpc3QgdXBkYXRlZExpc3QgPSBSZW1vdmUobGlzdDEsIGxpc3QyKVxuXG4vLyBEZWJ1ZyBvdXRwdXQgdG8gdmVyaWZ5IHRoZSBvcGVyYXRpb24gd2FzIHJlcGxhY2VkIHdpdGggdGhpcyBjb21tZW50XG4vLyBVcGRhdGVkIGxpc3QxOiArIHVwZGF0ZWRMaXN0In0sIHsibmFtZSI6ICJSZW1vdmUgKFZFQ1RPUjxNZWRpYVR5cGU+LCBOVU1CRVIsIE5VTUJFUikiLCAicmV0dXJuX3R5cGUiOiAiVkVDVE9SPE1lZGlhVHlwZT4iLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyB0aGUgdXBkYXRlZCBsaXN0LiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJWRUNUT1I8TWVkaWFUeXBlPjogbGlzdCB0byByZW1vdmUgZnJvbTsgTlVNQkVSOiBzdGFydGluZyBpbmRleDsgTlVNQkVSOiBlbmRpbmcgaW5kZXguIiwgImRlc2NyaXB0aW9uIjogIlJlbW92ZSBsaXN0IGVudHJpZXMgYmV0d2VlbiBnaXZlbiBpbmRpY2VzIiwgImV4YW1wbGVfY29kZSI6ICIvLyBJbml0aWFsaXplIGEgVkVDVE9SPE1lZGlhVHlwZT4gd2l0aCBzb21lIGV4YW1wbGUgbWVkaWEgdHlwZXNcblZFQ1RPUjxNZWRpYVR5cGU+IG1lZGlhVHlwZXMgPSBNZWRpYVR5cGUoXCJpbWFnZS9qcGVnXCIpLCBNZWRpYVR5cGUoXCJ2aWRlby9tcDRcIiksIE1lZGlhVHlwZShcImFwcGxpY2F0aW9uL3BkZlwiKSwgTWVkaWFUeXBlKFwidGV4dC9odG1sXCIpXG5cbi8vIE9yaWdpbmFsIG1lZGlhIHR5cGVzOiBcIiArIG1lZGlhVHlwZXNcblxuLy8gUmVtb3ZlIGVsZW1lbnRzIGZyb20gaW5kZXggMSB0byAyIChpbmNsdXNpdmUpXG5SZW1vdmUobWVkaWFUeXBlcywgMSwgMilcblxuLy8gTW9kaWZpZWQgbWVkaWEgdHlwZXM6IFwiICsgbWVkaWFUeXBlcyIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIi8vIEluaXRpYWxpemUgYSBWRUNUT1I8TWVkaWFUeXBlPiB3aXRoIHNvbWUgZXhhbXBsZSBtZWRpYSB0eXBlc1xuVkVDVE9SPE1lZGlhVHlwZT4gbWVkaWFUeXBlcyA9IE1lZGlhVHlwZShcImltYWdlL2pwZWdcIiksIE1lZGlhVHlwZShcInZpZGVvL21wNFwiKSwgTWVkaWFUeXBlKFwiYXBwbGljYXRpb24vcGRmXCIpLCBNZWRpYVR5cGUoXCJ0ZXh0L2h0bWxcIilcblxuLy8gT3JpZ2luYWwgbWVkaWEgdHlwZXM6IFwiICsgbWVkaWFUeXBlc1xuXG4vLyBSZW1vdmUgZWxlbWVudHMgZnJvbSBpbmRleCAxIHRvIDIgKGluY2x1c2l2ZSlcblJlbW92ZShtZWRpYVR5cGVzLCAxLCAyKVxuXG4vLyBNb2RpZmllZCBtZWRpYSB0eXBlczogXCIgKyBtZWRpYVR5cGVzIn0sIHsibmFtZSI6ICJSZW1vdmUgKFZFQ1RPUjxNZWRpYVR5cGU+LCBWRUNUT1I8TWVkaWFUeXBlPikiLCAicmV0dXJuX3R5cGUiOiAiVkVDVE9SPE1lZGlhVHlwZT4iLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyB0aGUgdXBkYXRlZCBsaXN0LiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJWRUNUT1I8TWVkaWFUeXBlPjogbGlzdCB0byByZW1vdmUgZnJvbTsgVkVDVE9SPE1lZGlhVHlwZT46IGVsZW1lbnRzIHRvIHJlbW92ZS4iLCAiZGVzY3JpcHRpb24iOiAiUmVtb3ZlIGFsbCBlbGVtZW50cyBmcm9tIHRoZSBmaXJzdCBsaXN0IHRoYXQgbWF0Y2ggYW4gZWxlbWVudCBpbiB0aGUgc2Vjb25kIGxpc3QuIiwgImV4YW1wbGVfY29kZSI6ICIvLyBEZWZpbmUgYSBWRUNUT1Igb2YgTWVkaWFUeXBlIHdpdGggc29tZSBpbml0aWFsIHZhbHVlc1xuVkVDVE9SPE1lZGlhVHlwZT4gbWVkaWFMaXN0ID0gTWVkaWFUeXBlKFwiaW1hZ2UvanBlZ1wiKSwgTWVkaWFUeXBlKFwidmlkZW8vbXA0XCIpLCBNZWRpYVR5cGUoXCJhcHBsaWNhdGlvbi9wZGZcIiksIE1lZGlhVHlwZShcImltYWdlL3BuZ1wiKVxuXG4vLyBEZWZpbmUgYSBWRUNUT1Igb2YgTWVkaWFUeXBlIHdpdGggZWxlbWVudHMgdG8gcmVtb3ZlXG5WRUNUT1I8TWVkaWFUeXBlPiByZW1vdmVMaXN0ID0gTWVkaWFUeXBlKFwiaW1hZ2UvanBlZ1wiKSwgTWVkaWFUeXBlKFwiYXBwbGljYXRpb24vcGRmXCIpXG5cbi8vIFVzZSB0aGUgUmVtb3ZlIGZ1bmN0aW9uIHRvIHJlbW92ZSBlbGVtZW50cyBmcm9tIG1lZGlhTGlzdCB0aGF0IGFyZSBpbiByZW1vdmVMaXN0XG5WRUNUT1I8TWVkaWFUeXBlPiB1cGRhdGVkTWVkaWFMaXN0ID0gUmVtb3ZlKG1lZGlhTGlzdCwgcmVtb3ZlTGlzdClcblxuLy8gVXBkYXRlZCBNZWRpYSBMaXN0OiBcIiArIHVwZGF0ZWRNZWRpYUxpc3QiLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICIvLyBEZWZpbmUgYSBWRUNUT1Igb2YgTWVkaWFUeXBlIHdpdGggc29tZSBpbml0aWFsIHZhbHVlc1xuVkVDVE9SPE1lZGlhVHlwZT4gbWVkaWFMaXN0ID0gTWVkaWFUeXBlKFwiaW1hZ2UvanBlZ1wiKSwgTWVkaWFUeXBlKFwidmlkZW8vbXA0XCIpLCBNZWRpYVR5cGUoXCJhcHBsaWNhdGlvbi9wZGZcIiksIE1lZGlhVHlwZShcImltYWdlL3BuZ1wiKVxuXG4vLyBEZWZpbmUgYSBWRUNUT1Igb2YgTWVkaWFUeXBlIHdpdGggZWxlbWVudHMgdG8gcmVtb3ZlXG5WRUNUT1I8TWVkaWFUeXBlPiByZW1vdmVMaXN0ID0gTWVkaWFUeXBlKFwiaW1hZ2UvanBlZ1wiKSwgTWVkaWFUeXBlKFwiYXBwbGljYXRpb24vcGRmXCIpXG5cbi8vIFVzZSB0aGUgUmVtb3ZlIGZ1bmN0aW9uIHRvIHJlbW92ZSBlbGVtZW50cyBmcm9tIG1lZGlhTGlzdCB0aGF0IGFyZSBpbiByZW1vdmVMaXN0XG5WRUNUT1I8TWVkaWFUeXBlPiB1cGRhdGVkTWVkaWFMaXN0ID0gUmVtb3ZlKG1lZGlhTGlzdCwgcmVtb3ZlTGlzdClcblxuLy8gVXBkYXRlZCBNZWRpYSBMaXN0OiBcIiArIHVwZGF0ZWRNZWRpYUxpc3QifSwgeyJuYW1lIjogIlJlbW92ZSAoVkVDVE9SPE1XRy5BcHBsaWNhdGlvbkNhdGVnb3J5VHlwZT4sIE5VTUJFUiwgTlVNQkVSKSIsICJyZXR1cm5fdHlwZSI6ICJWRUNUT1I8TVdHLkFwcGxpY2F0aW9uQ2F0ZWdvcnlUeXBlPiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIHRoZSB1cGRhdGVkIGxpc3QuIiwgInBhcmFtZXRlcl9kZXNjIjogIlZFQ1RPUjxNV0cuQXBwbGljYXRpb25DYXRlZ29yeVR5cGU+OiBsaXN0IHRvIHJlbW92ZSBmcm9tOyBOVU1CRVI6IHN0YXJ0aW5nIGluZGV4OyBOVU1CRVI6IGVuZGluZyBpbmRleC4iLCAiZGVzY3JpcHRpb24iOiAiUmVtb3ZlIGxpc3QgZW50cmllcyBiZXR3ZWVuIGdpdmVuIGluZGljZXMiLCAiZXhhbXBsZV9jb2RlIjogIi8vIEluaXRpYWxpemUgYSBWRUNUT1Igb2YgTVdHLkFwcGxpY2F0aW9uQ2F0ZWdvcnlUeXBlXG5WRUNUT1I8TVdHLkFwcGxpY2F0aW9uQ2F0ZWdvcnlUeXBlPiBhcHBDYXRlZ29yaWVzID0gW1wiU29jaWFsIE1lZGlhXCIsIFwiU3RyZWFtaW5nIE1lZGlhXCIsIFwiRmlsZSBTaGFyaW5nXCIsIFwiR2FtaW5nXCIsIFwiTmV3c1wiXVxuXG4vLyBEZWZpbmUgdGhlIHN0YXJ0IGFuZCBlbmQgaW5kaWNlcyBmb3IgcmVtb3ZhbFxuTlVNQkVSIHN0YXJ0SW5kZXggPSAxXG5OVU1CRVIgZW5kSW5kZXggPSAzXG5cbi8vIFJlbW92ZSBlbGVtZW50cyBmcm9tIHRoZSBWRUNUT1JcbmFwcENhdGVnb3JpZXMgPSBSZW1vdmUoYXBwQ2F0ZWdvcmllcywgc3RhcnRJbmRleCwgZW5kSW5kZXgpXG5cbi8vIERlYnVnIHRoZSByZXN1bHQgdG8gc2VlIHRoZSByZW1haW5pbmcgZWxlbWVudHNcbi8vIERFQlVHKGFwcENhdGVnb3JpZXMpIHdhcyByZXBsYWNlZCB3aXRoIHRoaXMgY29tbWVudCB0byBleHBsYWluIHRoZSBjb2RlLiBUaGUgbGluZSBvcmlnaW5hbGx5IG91dHB1dCB0aGUgdmFsdWUgb2YgYXBwQ2F0ZWdvcmllcyB0byB0aGUgY29uc29sZS4iLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICIvLyBJbml0aWFsaXplIGEgVkVDVE9SIG9mIE1XRy5BcHBsaWNhdGlvbkNhdGVnb3J5VHlwZVxuVkVDVE9SPE1XRy5BcHBsaWNhdGlvbkNhdGVnb3J5VHlwZT4gYXBwQ2F0ZWdvcmllcyA9IFtcIlNvY2lhbCBNZWRpYVwiLCBcIlN0cmVhbWluZyBNZWRpYVwiLCBcIkZpbGUgU2hhcmluZ1wiLCBcIkdhbWluZ1wiLCBcIk5ld3NcIl1cblxuLy8gRGVmaW5lIHRoZSBzdGFydCBhbmQgZW5kIGluZGljZXMgZm9yIHJlbW92YWxcbk5VTUJFUiBzdGFydEluZGV4ID0gMVxuTlVNQkVSIGVuZEluZGV4ID0gM1xuXG4vLyBSZW1vdmUgZWxlbWVudHMgZnJvbSB0aGUgVkVDVE9SXG5hcHBDYXRlZ29yaWVzID0gUmVtb3ZlKGFwcENhdGVnb3JpZXMsIHN0YXJ0SW5kZXgsIGVuZEluZGV4KVxuXG4vLyBEZWJ1ZyB0aGUgcmVzdWx0IHRvIHNlZSB0aGUgcmVtYWluaW5nIGVsZW1lbnRzXG4vLyBERUJVRyhhcHBDYXRlZ29yaWVzKSB3YXMgcmVwbGFjZWQgd2l0aCB0aGlzIGNvbW1lbnQgdG8gZXhwbGFpbiB0aGUgY29kZS4gVGhlIGxpbmUgb3JpZ2luYWxseSBvdXRwdXQgdGhlIHZhbHVlIG9mIGFwcENhdGVnb3JpZXMgdG8gdGhlIGNvbnNvbGUuIn0sIHsibmFtZSI6ICJSZW1vdmUgKFZFQ1RPUjxNV0cuQXBwbGljYXRpb25DYXRlZ29yeVR5cGU+LCBWRUNUT1I8TVdHLkFwcGxpY2F0aW9uQ2F0ZWdvcnlUeXBlPikiLCAicmV0dXJuX3R5cGUiOiAiVkVDVE9SPE1XRy5BcHBsaWNhdGlvbkNhdGVnb3J5VHlwZT4iLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyB0aGUgdXBkYXRlZCBsaXN0LiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJWRUNUT1I8TVdHLkFwcGxpY2F0aW9uQ2F0ZWdvcnlUeXBlPjogbGlzdCB0byByZW1vdmUgZnJvbTsgVkVDVE9SPE1XRy5BcHBsaWNhdGlvbkNhdGVnb3J5VHlwZT46IGVsZW1lbnRzIHRvIHJlbW92ZS4iLCAiZGVzY3JpcHRpb24iOiAiUmVtb3ZlIGFsbCBlbGVtZW50cyBmcm9tIHRoZSBmaXJzdCBsaXN0IHRoYXQgbWF0Y2ggYW4gZWxlbWVudCBpbiB0aGUgc2Vjb25kIGxpc3QuIiwgImV4YW1wbGVfY29kZSI6ICIvLyBEZWZpbmUgdHdvIHZlY3RvcnMgb2YgTVdHLkFwcGxpY2F0aW9uQ2F0ZWdvcnlUeXBlXG5WRUNUT1I8TVdHLkFwcGxpY2F0aW9uQ2F0ZWdvcnlUeXBlPiBhbGxDYXRlZ29yaWVzID0gW1wiU29jaWFsIE1lZGlhXCIsIFwiU3RyZWFtaW5nIE1lZGlhXCIsIFwiU2hvcHBpbmdcIiwgXCJOZXdzXCJdXG5WRUNUT1I8TVdHLkFwcGxpY2F0aW9uQ2F0ZWdvcnlUeXBlPiBjYXRlZ29yaWVzVG9SZW1vdmUgPSBbXCJTaG9wcGluZ1wiLCBcIk5ld3NcIl1cblxuLy8gUmVtb3ZlIGNhdGVnb3JpZXNUb1JlbW92ZSBmcm9tIGFsbENhdGVnb3JpZXNcblZFQ1RPUjxNV0cuQXBwbGljYXRpb25DYXRlZ29yeVR5cGU+IHVwZGF0ZWRDYXRlZ29yaWVzID0gUmVtb3ZlKGFsbENhdGVnb3JpZXMsIGNhdGVnb3JpZXNUb1JlbW92ZSlcblxuLy8gVXBkYXRlZCBDYXRlZ29yaWVzOiBcIiArIHVwZGF0ZWRDYXRlZ29yaWVzIiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiLy8gRGVmaW5lIHR3byB2ZWN0b3JzIG9mIE1XRy5BcHBsaWNhdGlvbkNhdGVnb3J5VHlwZVxuVkVDVE9SPE1XRy5BcHBsaWNhdGlvbkNhdGVnb3J5VHlwZT4gYWxsQ2F0ZWdvcmllcyA9IFtcIlNvY2lhbCBNZWRpYVwiLCBcIlN0cmVhbWluZyBNZWRpYVwiLCBcIlNob3BwaW5nXCIsIFwiTmV3c1wiXVxuVkVDVE9SPE1XRy5BcHBsaWNhdGlvbkNhdGVnb3J5VHlwZT4gY2F0ZWdvcmllc1RvUmVtb3ZlID0gW1wiU2hvcHBpbmdcIiwgXCJOZXdzXCJdXG5cbi8vIFJlbW92ZSBjYXRlZ29yaWVzVG9SZW1vdmUgZnJvbSBhbGxDYXRlZ29yaWVzXG5WRUNUT1I8TVdHLkFwcGxpY2F0aW9uQ2F0ZWdvcnlUeXBlPiB1cGRhdGVkQ2F0ZWdvcmllcyA9IFJlbW92ZShhbGxDYXRlZ29yaWVzLCBjYXRlZ29yaWVzVG9SZW1vdmUpXG5cbi8vIFVwZGF0ZWQgQ2F0ZWdvcmllczogXCIgKyB1cGRhdGVkQ2F0ZWdvcmllcyJ9LCB7Im5hbWUiOiAiUmVtb3ZlIChWRUNUT1I8TVdHLkFwcGxpY2F0aW9uVHlwZT4sIE5VTUJFUiwgTlVNQkVSKSIsICJyZXR1cm5fdHlwZSI6ICJWRUNUT1I8TVdHLkFwcGxpY2F0aW9uVHlwZT4iLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyB0aGUgdXBkYXRlZCBsaXN0LiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJWRUNUT1I8TVdHLkFwcGxpY2F0aW9uVHlwZT46IGxpc3QgdG8gcmVtb3ZlIGZyb207IE5VTUJFUjogc3RhcnRpbmcgaW5kZXg7IE5VTUJFUjogZW5kaW5nIGluZGV4LiIsICJkZXNjcmlwdGlvbiI6ICJSZW1vdmUgbGlzdCBlbnRyaWVzIGJldHdlZW4gZ2l2ZW4gaW5kaWNlcyIsICJleGFtcGxlX2NvZGUiOiAiLy8gSW5pdGlhbGl6ZSBhIFZFQ1RPUiBvZiBNV0cuQXBwbGljYXRpb25UeXBlXG5WRUNUT1I8TVdHLkFwcGxpY2F0aW9uVHlwZT4gYXBwVHlwZXMgPSBbXCJBcHBUeXBlMVwiLCBcIkFwcFR5cGUyXCIsIFwiQXBwVHlwZTNcIiwgXCJBcHBUeXBlNFwiLCBcIkFwcFR5cGU1XCJdXG5cbi8vIERlZmluZSB0aGUgc3RhcnQgYW5kIGVuZCBpbmRpY2VzIGZvciByZW1vdmFsXG5OVU1CRVIgc3RhcnRJbmRleCA9IDFcbk5VTUJFUiBlbmRJbmRleCA9IDNcblxuLy8gUmVtb3ZlIGVsZW1lbnRzIGZyb20gdGhlIFZFQ1RPUlxuYXBwVHlwZXMuUmVtb3ZlKHN0YXJ0SW5kZXgsIGVuZEluZGV4KVxuXG4vLyBUaGUgcmVzdWx0aW5nIFZFQ1RPUiBhZnRlciByZW1vdmFsXG4vLyBhcHBUeXBlcyIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIi8vIEluaXRpYWxpemUgYSBWRUNUT1Igb2YgTVdHLkFwcGxpY2F0aW9uVHlwZVxuVkVDVE9SPE1XRy5BcHBsaWNhdGlvblR5cGU+IGFwcFR5cGVzID0gW1wiQXBwVHlwZTFcIiwgXCJBcHBUeXBlMlwiLCBcIkFwcFR5cGUzXCIsIFwiQXBwVHlwZTRcIiwgXCJBcHBUeXBlNVwiXVxuXG4vLyBEZWZpbmUgdGhlIHN0YXJ0IGFuZCBlbmQgaW5kaWNlcyBmb3IgcmVtb3ZhbFxuTlVNQkVSIHN0YXJ0SW5kZXggPSAxXG5OVU1CRVIgZW5kSW5kZXggPSAzXG5cbi8vIFJlbW92ZSBlbGVtZW50cyBmcm9tIHRoZSBWRUNUT1JcbmFwcFR5cGVzLlJlbW92ZShzdGFydEluZGV4LCBlbmRJbmRleClcblxuLy8gVGhlIHJlc3VsdGluZyBWRUNUT1IgYWZ0ZXIgcmVtb3ZhbFxuLy8gYXBwVHlwZXMifSwgeyJuYW1lIjogIlJlbW92ZSAoVkVDVE9SPE1XRy5BcHBsaWNhdGlvblR5cGU+LCBWRUNUT1I8TVdHLkFwcGxpY2F0aW9uVHlwZT4pIiwgInJldHVybl90eXBlIjogIlZFQ1RPUjxNV0cuQXBwbGljYXRpb25UeXBlPiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIHRoZSB1cGRhdGVkIGxpc3QuIiwgInBhcmFtZXRlcl9kZXNjIjogIlZFQ1RPUjxNV0cuQXBwbGljYXRpb25UeXBlPjogbGlzdCB0byByZW1vdmUgZnJvbTsgVkVDVE9SPE1XRy5BcHBsaWNhdGlvblR5cGU+OiBlbGVtZW50cyB0byByZW1vdmUuIiwgImRlc2NyaXB0aW9uIjogIlJlbW92ZSBhbGwgZWxlbWVudHMgZnJvbSB0aGUgZmlyc3QgbGlzdCB0aGF0IG1hdGNoIGFuIGVsZW1lbnQgaW4gdGhlIHNlY29uZCBsaXN0LiIsICJleGFtcGxlX2NvZGUiOiAiLy8gRGVmaW5lIGEgdmVjdG9yIG9mIE1XRy5BcHBsaWNhdGlvblR5cGUgdG8gcmVwcmVzZW50IHRoZSBjdXJyZW50IGFwcGxpY2F0aW9uc1xuVkVDVE9SPE1XRy5BcHBsaWNhdGlvblR5cGU+IGN1cnJlbnRBcHBsaWNhdGlvbnMgPSBbXCJBcHAxXCIsIFwiQXBwMlwiLCBcIkFwcDNcIiwgXCJBcHA0XCJdXG5cbi8vIERlZmluZSBhIHZlY3RvciBvZiBNV0cuQXBwbGljYXRpb25UeXBlIHRvIHJlcHJlc2VudCB0aGUgYXBwbGljYXRpb25zIHRvIGJlIHJlbW92ZWRcblZFQ1RPUjxNV0cuQXBwbGljYXRpb25UeXBlPiBhcHBsaWNhdGlvbnNUb1JlbW92ZSA9IFtcIkFwcDJcIiwgXCJBcHA0XCJdXG5cbi8vIENhbGwgdGhlIFJlbW92ZSBmdW5jdGlvbiB0byByZW1vdmUgdGhlIHNwZWNpZmllZCBhcHBsaWNhdGlvbnMgZnJvbSB0aGUgY3VycmVudCBhcHBsaWNhdGlvbnNcblZFQ1RPUjxNV0cuQXBwbGljYXRpb25UeXBlPiB1cGRhdGVkQXBwbGljYXRpb25zID0gUmVtb3ZlKGN1cnJlbnRBcHBsaWNhdGlvbnMsIGFwcGxpY2F0aW9uc1RvUmVtb3ZlKVxuXG4vLyBVcGRhdGVkIEFwcGxpY2F0aW9uczogXCIgKyB1cGRhdGVkQXBwbGljYXRpb25zIiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiLy8gRGVmaW5lIGEgdmVjdG9yIG9mIE1XRy5BcHBsaWNhdGlvblR5cGUgdG8gcmVwcmVzZW50IHRoZSBjdXJyZW50IGFwcGxpY2F0aW9uc1xuVkVDVE9SPE1XRy5BcHBsaWNhdGlvblR5cGU+IGN1cnJlbnRBcHBsaWNhdGlvbnMgPSBbXCJBcHAxXCIsIFwiQXBwMlwiLCBcIkFwcDNcIiwgXCJBcHA0XCJdXG5cbi8vIERlZmluZSBhIHZlY3RvciBvZiBNV0cuQXBwbGljYXRpb25UeXBlIHRvIHJlcHJlc2VudCB0aGUgYXBwbGljYXRpb25zIHRvIGJlIHJlbW92ZWRcblZFQ1RPUjxNV0cuQXBwbGljYXRpb25UeXBlPiBhcHBsaWNhdGlvbnNUb1JlbW92ZSA9IFtcIkFwcDJcIiwgXCJBcHA0XCJdXG5cbi8vIENhbGwgdGhlIFJlbW92ZSBmdW5jdGlvbiB0byByZW1vdmUgdGhlIHNwZWNpZmllZCBhcHBsaWNhdGlvbnMgZnJvbSB0aGUgY3VycmVudCBhcHBsaWNhdGlvbnNcblZFQ1RPUjxNV0cuQXBwbGljYXRpb25UeXBlPiB1cGRhdGVkQXBwbGljYXRpb25zID0gUmVtb3ZlKGN1cnJlbnRBcHBsaWNhdGlvbnMsIGFwcGxpY2F0aW9uc1RvUmVtb3ZlKVxuXG4vLyBVcGRhdGVkIEFwcGxpY2F0aW9uczogXCIgKyB1cGRhdGVkQXBwbGljYXRpb25zIn0sIHsibmFtZSI6ICJSZW1vdmUgKFZFQ1RPUjxNV0cuSG9zdEFuZENlcnRpZmljYXRlPiwgTlVNQkVSLCBOVU1CRVIpIiwgInJldHVybl90eXBlIjogIlZFQ1RPUjxNV0cuSG9zdEFuZENlcnRpZmljYXRlPiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIHRoZSB1cGRhdGVkIGxpc3QuIiwgInBhcmFtZXRlcl9kZXNjIjogIlZFQ1RPUjxNV0cuSG9zdEFuZENlcnRpZmljYXRlPjogbGlzdCAgdG8gcmVtb3ZlIGZyb207IE5VTUJFUjogc3RhcnRpbmcgaW5kZXg7IE5VTUJFUjogZW5kaW5nIGluZGV4LiIsICJkZXNjcmlwdGlvbiI6ICJSZW1vdmUgbGlzdCBlbnRyaWVzIGJldHdlZW4gZ2l2ZW4gaW5kaWNlcyIsICJleGFtcGxlX2NvZGUiOiAiVkVDVE9SPE1XRy5Ib3N0QW5kQ2VydGlmaWNhdGU+IG9yaWdpbmFsTGlzdCA9IFtcIm9yaWdpbmFsX2xpc3RcIl1cblZFQ1RPUjxNV0cuSG9zdEFuZENlcnRpZmljYXRlPiBlbGVtZW50c1RvUmVtb3ZlID0gW1wiZWxlbWVudHNfdG9fcmVtb3ZlXCJdXG5cblZFQ1RPUjxNV0cuSG9zdEFuZENlcnRpZmljYXRlPiB1cGRhdGVkTGlzdCA9IFJlbW92ZShvcmlnaW5hbExpc3QsIGVsZW1lbnRzVG9SZW1vdmUpXG5cbi8vIFwiVXBkYXRlZCBMaXN0OiBcIiArIHVwZGF0ZWRMaXN0IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiVkVDVE9SPE1XRy5Ib3N0QW5kQ2VydGlmaWNhdGU+IG9yaWdpbmFsTGlzdCA9IFtcIm9yaWdpbmFsX2xpc3RcIl1cblZFQ1RPUjxNV0cuSG9zdEFuZENlcnRpZmljYXRlPiBlbGVtZW50c1RvUmVtb3ZlID0gW1wiZWxlbWVudHNfdG9fcmVtb3ZlXCJdXG5cblZFQ1RPUjxNV0cuSG9zdEFuZENlcnRpZmljYXRlPiB1cGRhdGVkTGlzdCA9IFJlbW92ZShvcmlnaW5hbExpc3QsIGVsZW1lbnRzVG9SZW1vdmUpXG5cbi8vIFwiVXBkYXRlZCBMaXN0OiBcIiArIHVwZGF0ZWRMaXN0In0sIHsibmFtZSI6ICJSZW1vdmUgKFZFQ1RPUjxNV0cuSG9zdEFuZENlcnRpZmljYXRlPiwgVkVDVE9SPE1XRy5Ib3N0QW5kQ2VydGlmaWNhdGU+KSIsICJyZXR1cm5fdHlwZSI6ICJWRUNUT1I8TVdHLkhvc3RBbmRDZXJ0aWZpY2F0ZT4iLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyB0aGUgdXBkYXRlZCBsaXN0LiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJWRUNUT1I8TVdHLkhvc3RBbmRDZXJ0aWZpY2F0ZT46IGxpc3QgdG8gcmVtb3ZlIGZyb207IFZFQ1RPUjxNV0cuSG9zdEFuZENlcnRpZmljYXRlPjogZWxlbWVudHMgdG8gcmVtb3ZlLiIsICJkZXNjcmlwdGlvbiI6ICJSZW1vdmUgYWxsIGVsZW1lbnRzIGZyb20gdGhlIGZpcnN0IGxpc3QgdGhhdCBtYXRjaCBhbiBlbGVtZW50IGluIHRoZSBzZWNvbmQgbGlzdC4iLCAiZXhhbXBsZV9jb2RlIjogIi8vIERlZmluZSB0aGUgaW5pdGlhbCBsaXN0IG9mIE1XRy5Ib3N0QW5kQ2VydGlmaWNhdGUgb2JqZWN0c1xuVkVDVE9SPE1XRy5Ib3N0QW5kQ2VydGlmaWNhdGU+IGluaXRpYWxMaXN0ID0gWyBcImluaXRpYWxfbGlzdFwiIF1cblxuLy8gRGVmaW5lIHRoZSBsaXN0IG9mIE1XRy5Ib3N0QW5kQ2VydGlmaWNhdGUgb2JqZWN0cyB0byBiZSByZW1vdmVkXG5WRUNUT1I8TVdHLkhvc3RBbmRDZXJ0aWZpY2F0ZT4gcmVtb3ZlTGlzdCA9IFsgXCJyZW1vdmVfbGlzdFwiIF1cblxuLy8gQ2FsbCB0aGUgUmVtb3ZlIGZ1bmN0aW9uIHRvIHJlbW92ZSBpdGVtcyBpbiByZW1vdmVMaXN0IGZyb20gaW5pdGlhbExpc3RcblZFQ1RPUjxNV0cuSG9zdEFuZENlcnRpZmljYXRlPiB1cGRhdGVkTGlzdCA9IFJlbW92ZShpbml0aWFsTGlzdCwgcmVtb3ZlTGlzdClcblxuLy8gT3B0aW9uYWxseSwgc2V0IHRoZSB1cGRhdGVkIGxpc3QgdG8gYSBwcm9wZXJ0eSBvciB1c2UgaXQgZnVydGhlciBpbiB0aGUgY29kZVxuTVdHLlNldFByb3BlcnR5VmFsdWUoXCJVcGRhdGVkSG9zdEFuZENlcnRpZmljYXRlTGlzdFwiLCB1cGRhdGVkTGlzdClcblxuLy8gRGVidWcgb3V0cHV0IHRvIHZlcmlmeSB0aGUgcmVzdWx0XG4vLyBVcGRhdGVkIGxpc3QgYWZ0ZXIgcmVtb3ZhbDogXCIgKyB1cGRhdGVkTGlzdCIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIi8vIERlZmluZSB0aGUgaW5pdGlhbCBsaXN0IG9mIE1XRy5Ib3N0QW5kQ2VydGlmaWNhdGUgb2JqZWN0c1xuVkVDVE9SPE1XRy5Ib3N0QW5kQ2VydGlmaWNhdGU+IGluaXRpYWxMaXN0ID0gWyBcImluaXRpYWxfbGlzdFwiIF1cblxuLy8gRGVmaW5lIHRoZSBsaXN0IG9mIE1XRy5Ib3N0QW5kQ2VydGlmaWNhdGUgb2JqZWN0cyB0byBiZSByZW1vdmVkXG5WRUNUT1I8TVdHLkhvc3RBbmRDZXJ0aWZpY2F0ZT4gcmVtb3ZlTGlzdCA9IFsgXCJyZW1vdmVfbGlzdFwiIF1cblxuLy8gQ2FsbCB0aGUgUmVtb3ZlIGZ1bmN0aW9uIHRvIHJlbW92ZSBpdGVtcyBpbiByZW1vdmVMaXN0IGZyb20gaW5pdGlhbExpc3RcblZFQ1RPUjxNV0cuSG9zdEFuZENlcnRpZmljYXRlPiB1cGRhdGVkTGlzdCA9IFJlbW92ZShpbml0aWFsTGlzdCwgcmVtb3ZlTGlzdClcblxuLy8gT3B0aW9uYWxseSwgc2V0IHRoZSB1cGRhdGVkIGxpc3QgdG8gYSBwcm9wZXJ0eSBvciB1c2UgaXQgZnVydGhlciBpbiB0aGUgY29kZVxuTVdHLlNldFByb3BlcnR5VmFsdWUoXCJVcGRhdGVkSG9zdEFuZENlcnRpZmljYXRlTGlzdFwiLCB1cGRhdGVkTGlzdClcblxuLy8gRGVidWcgb3V0cHV0IHRvIHZlcmlmeSB0aGUgcmVzdWx0XG4vLyBVcGRhdGVkIGxpc3QgYWZ0ZXIgcmVtb3ZhbDogXCIgKyB1cGRhdGVkTGlzdCJ9LCB7Im5hbWUiOiAiUmVtb3ZlIChWRUNUT1I8TVdHLlVybENhdGVnb3J5PiwgTlVNQkVSLCBOVU1CRVIpIiwgInJldHVybl90eXBlIjogIlZFQ1RPUjxNV0cuVXJsQ2F0ZWdvcnk+IiwgInJldHVybl9kZXNjIjogIlJldHVybnMgdGhlIHVwZGF0ZWQgbGlzdC4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiVkVDVE9SPE1XRy5VcmxDYXRlZ29yeT46IGxpc3QgdG8gcmVtb3ZlIGZyb207IE5VTUJFUjogc3RhcnRpbmcgaW5kZXg7IE5VTUJFUjogZW5kaW5nIGluZGV4LiIsICJkZXNjcmlwdGlvbiI6ICJSZW1vdmUgbGlzdCBlbnRyaWVzIGJldHdlZW4gZ2l2ZW4gaW5kaWNlcyIsICJleGFtcGxlX2NvZGUiOiAiLy8gSW5pdGlhbGl6ZSBhIFZFQ1RPUiBvZiBNV0cuVXJsQ2F0ZWdvcnlcblZFQ1RPUjxNV0cuVXJsQ2F0ZWdvcnk+IHVybENhdGVnb3JpZXMgPSBbXCJTb2NpYWxNZWRpYVwiLCBcIk5ld3NcIiwgXCJTaG9wcGluZ1wiLCBcIkVudGVydGFpbm1lbnRcIiwgXCJFZHVjYXRpb25cIl1cblxuLy8gT3JpZ2luYWwgVkVDVE9SOiBcIiArIHVybENhdGVnb3JpZXNcblxuLy8gUmVtb3ZlIDIgZWxlbWVudHMgc3RhcnRpbmcgZnJvbSBpbmRleCAxIChpLmUuLCBcIk5ld3NcIiBhbmQgXCJTaG9wcGluZ1wiKVxudXJsQ2F0ZWdvcmllcyA9IFJlbW92ZSh1cmxDYXRlZ29yaWVzLCAxLCAyKVxuXG4vLyBNb2RpZmllZCBWRUNUT1I6IFwiICsgdXJsQ2F0ZWdvcmllcyIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIi8vIEluaXRpYWxpemUgYSBWRUNUT1Igb2YgTVdHLlVybENhdGVnb3J5XG5WRUNUT1I8TVdHLlVybENhdGVnb3J5PiB1cmxDYXRlZ29yaWVzID0gW1wiU29jaWFsTWVkaWFcIiwgXCJOZXdzXCIsIFwiU2hvcHBpbmdcIiwgXCJFbnRlcnRhaW5tZW50XCIsIFwiRWR1Y2F0aW9uXCJdXG5cbi8vIE9yaWdpbmFsIFZFQ1RPUjogXCIgKyB1cmxDYXRlZ29yaWVzXG5cbi8vIFJlbW92ZSAyIGVsZW1lbnRzIHN0YXJ0aW5nIGZyb20gaW5kZXggMSAoaS5lLiwgXCJOZXdzXCIgYW5kIFwiU2hvcHBpbmdcIilcbnVybENhdGVnb3JpZXMgPSBSZW1vdmUodXJsQ2F0ZWdvcmllcywgMSwgMilcblxuLy8gTW9kaWZpZWQgVkVDVE9SOiBcIiArIHVybENhdGVnb3JpZXMifSwgeyJuYW1lIjogIlJlbW92ZSAoVkVDVE9SPE1XRy5VcmxDYXRlZ29yeT4sIFZFQ1RPUjxNV0cuVXJsQ2F0ZWdvcnk+KSIsICJyZXR1cm5fdHlwZSI6ICJWRUNUT1I8TVdHLlVybENhdGVnb3J5PiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIHRoZSB1cGRhdGVkIGxpc3QuIiwgInBhcmFtZXRlcl9kZXNjIjogIlZFQ1RPUjxNV0cuVXJsQ2F0ZWdvcnk+OiBsaXN0IHRvIHJlbW92ZSBmcm9tOyBWRUNUT1I8TVdHLlVybENhdGVnb3J5PjogZWxlbWVudHMgdG8gcmVtb3ZlLiIsICJkZXNjcmlwdGlvbiI6ICJSZW1vdmUgYWxsIGVsZW1lbnRzIGZyb20gdGhlIGZpcnN0IGxpc3QgdGhhdCBtYXRjaCBhbiBlbGVtZW50IGluIHRoZSBzZWNvbmQgbGlzdC4iLCAiZXhhbXBsZV9jb2RlIjogIi8vIERlZmluZSB0d28gdmVjdG9ycyBvZiBNV0cuVXJsQ2F0ZWdvcnlcblZFQ1RPUjxNV0cuVXJsQ2F0ZWdvcnk+IGFsbENhdGVnb3JpZXMgPSBbXCJhbGxfY2F0ZWdvcmllc19saXN0XCJdXG5WRUNUT1I8TVdHLlVybENhdGVnb3J5PiBjYXRlZ29yaWVzVG9SZW1vdmUgPSBbXCJyZW1vdmVfY2F0ZWdvcmllc19saXN0XCJdXG5cbi8vIFJlbW92ZSBjYXRlZ29yaWVzVG9SZW1vdmUgZnJvbSBhbGxDYXRlZ29yaWVzXG5WRUNUT1I8TVdHLlVybENhdGVnb3J5PiB1cGRhdGVkQ2F0ZWdvcmllcyA9IFJlbW92ZShhbGxDYXRlZ29yaWVzLCBjYXRlZ29yaWVzVG9SZW1vdmUpXG5cbi8vIFNldCB0aGUgdXBkYXRlZCBjYXRlZ29yaWVzIHRvIGEgdXNlci1kZWZpbmVkIHZhcmlhYmxlXG5NV0cuU2V0VXNlckRlZmluZWRWYXIoXCJVcGRhdGVkQ2F0ZWdvcmllc1wiLCB1cGRhdGVkQ2F0ZWdvcmllcylcblxuLy8gVXBkYXRlZCBDYXRlZ29yaWVzOiBcIiArIHVwZGF0ZWRDYXRlZ29yaWVzIiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiLy8gRGVmaW5lIHR3byB2ZWN0b3JzIG9mIE1XRy5VcmxDYXRlZ29yeVxuVkVDVE9SPE1XRy5VcmxDYXRlZ29yeT4gYWxsQ2F0ZWdvcmllcyA9IFtcImFsbF9jYXRlZ29yaWVzX2xpc3RcIl1cblZFQ1RPUjxNV0cuVXJsQ2F0ZWdvcnk+IGNhdGVnb3JpZXNUb1JlbW92ZSA9IFtcInJlbW92ZV9jYXRlZ29yaWVzX2xpc3RcIl1cblxuLy8gUmVtb3ZlIGNhdGVnb3JpZXNUb1JlbW92ZSBmcm9tIGFsbENhdGVnb3JpZXNcblZFQ1RPUjxNV0cuVXJsQ2F0ZWdvcnk+IHVwZGF0ZWRDYXRlZ29yaWVzID0gUmVtb3ZlKGFsbENhdGVnb3JpZXMsIGNhdGVnb3JpZXNUb1JlbW92ZSlcblxuLy8gU2V0IHRoZSB1cGRhdGVkIGNhdGVnb3JpZXMgdG8gYSB1c2VyLWRlZmluZWQgdmFyaWFibGVcbk1XRy5TZXRVc2VyRGVmaW5lZFZhcihcIlVwZGF0ZWRDYXRlZ29yaWVzXCIsIHVwZGF0ZWRDYXRlZ29yaWVzKVxuXG4vLyBVcGRhdGVkIENhdGVnb3JpZXM6IFwiICsgdXBkYXRlZENhdGVnb3JpZXMifSwgeyJuYW1lIjogIlJlbW92ZSAoVkVDVE9SPE5ldC5JUD4sIE5VTUJFUiwgTlVNQkVSKSIsICJyZXR1cm5fdHlwZSI6ICJWRUNUT1I8TmV0LklQPiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIHRoZSB1cGRhdGVkIGxpc3QuIiwgInBhcmFtZXRlcl9kZXNjIjogIlZFQ1RPUjxOZXQuSVA+OiBsaXN0IHRvIHJlbW92ZSBmcm9tOyBOVU1CRVI6IHN0YXJ0aW5nIGluZGV4OyBOVU1CRVI6IGVuZGluZyBpbmRleC4iLCAiZGVzY3JpcHRpb24iOiAiUmVtb3ZlIGxpc3QgZW50cmllcyBiZXR3ZWVuIGdpdmVuIGluZGljZXMiLCAiZXhhbXBsZV9jb2RlIjogIi8vIEluaXRpYWxpemUgYSBWRUNUT1Igb2YgTmV0LklQXG5WRUNUT1I8TmV0LklQPiBpcExpc3QgPSBcIjE5Mi4xNjguMS4xXCIsIFwiMTkyLjE2OC4xLjJcIiwgXCIxOTIuMTY4LjEuM1wiLCBcIjE5Mi4xNjguMS40XCIsIFwiMTkyLjE2OC4xLjVcIlxuXG4vLyBPcmlnaW5hbCBJUCBMaXN0OiBcbi8vIERFQlVHKFwiT3JpZ2luYWwgSVAgTGlzdDogXCIgKyBpcExpc3QpXG5cbi8vIFJlbW92ZSAyIGVsZW1lbnRzIHN0YXJ0aW5nIGZyb20gaW5kZXggMVxuUmVtb3ZlKGlwTGlzdCwgMSwgMilcblxuLy8gTW9kaWZpZWQgSVAgTGlzdDogXG4vLyBERUJVRyhcIk1vZGlmaWVkIElQIExpc3Q6IFwiICsgaXBMaXN0KSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIi8vIEluaXRpYWxpemUgYSBWRUNUT1Igb2YgTmV0LklQXG5WRUNUT1I8TmV0LklQPiBpcExpc3QgPSBcIjE5Mi4xNjguMS4xXCIsIFwiMTkyLjE2OC4xLjJcIiwgXCIxOTIuMTY4LjEuM1wiLCBcIjE5Mi4xNjguMS40XCIsIFwiMTkyLjE2OC4xLjVcIlxuXG4vLyBPcmlnaW5hbCBJUCBMaXN0OiBcbi8vIERFQlVHKFwiT3JpZ2luYWwgSVAgTGlzdDogXCIgKyBpcExpc3QpXG5cbi8vIFJlbW92ZSAyIGVsZW1lbnRzIHN0YXJ0aW5nIGZyb20gaW5kZXggMVxuUmVtb3ZlKGlwTGlzdCwgMSwgMilcblxuLy8gTW9kaWZpZWQgSVAgTGlzdDogXG4vLyBERUJVRyhcIk1vZGlmaWVkIElQIExpc3Q6IFwiICsgaXBMaXN0KSJ9LCB7Im5hbWUiOiAiUmVtb3ZlIChWRUNUT1I8TmV0LklQPiwgVkVDVE9SPE5ldC5JUD4pIiwgInJldHVybl90eXBlIjogIlZFQ1RPUjxOZXQuSVA+IiwgInJldHVybl9kZXNjIjogIlJldHVybnMgdGhlIHVwZGF0ZWQgbGlzdC4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiVkVDVE9SPE5ldC5JUD46IGxpc3QgdG8gcmVtb3ZlIGZyb207IFZFQ1RPUjxOZXQuSVA+OiBlbGVtZW50cyB0byByZW1vdmUuIiwgImRlc2NyaXB0aW9uIjogIlJlbW92ZSBhbGwgZWxlbWVudHMgZnJvbSB0aGUgZmlyc3QgbGlzdCB0aGF0IG1hdGNoIGFuIGVsZW1lbnQgaW4gdGhlIHNlY29uZCBsaXN0LiIsICJleGFtcGxlX2NvZGUiOiAiVkVDVE9SPE5ldC5JUD4gaXBMaXN0ID0gTmV0LklQKFwiMTkyLjE2OC4xLjFcIiksIE5ldC5JUChcIjE5Mi4xNjguMS4yXCIpLCBOZXQuSVAoXCIxOTIuMTY4LjEuM1wiKVxuVkVDVE9SPE5ldC5JUD4gaXBzVG9SZW1vdmUgPSBOZXQuSVAoXCIxOTIuMTY4LjEuMlwiKSwgTmV0LklQKFwiMTkyLjE2OC4xLjNcIilcblxuaXBMaXN0ID0gUmVtb3ZlKGlwTGlzdCwgaXBzVG9SZW1vdmUpXG5cbi8vIFVwZGF0ZWQgSVAgTGlzdDogXCIgKyBpcExpc3QiLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICJWRUNUT1I8TmV0LklQPiBpcExpc3QgPSBOZXQuSVAoXCIxOTIuMTY4LjEuMVwiKSwgTmV0LklQKFwiMTkyLjE2OC4xLjJcIiksIE5ldC5JUChcIjE5Mi4xNjguMS4zXCIpXG5WRUNUT1I8TmV0LklQPiBpcHNUb1JlbW92ZSA9IE5ldC5JUChcIjE5Mi4xNjguMS4yXCIpLCBOZXQuSVAoXCIxOTIuMTY4LjEuM1wiKVxuXG5pcExpc3QgPSBSZW1vdmUoaXBMaXN0LCBpcHNUb1JlbW92ZSlcblxuLy8gVXBkYXRlZCBJUCBMaXN0OiBcIiArIGlwTGlzdCJ9LCB7Im5hbWUiOiAiUmVtb3ZlIChWRUNUT1I8TmV0LklQUmFuZ2U+LCBOVU1CRVIsIE5VTUJFUikiLCAicmV0dXJuX3R5cGUiOiAiVkVDVE9SPE5ldC5JUFJhbmdlPiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIHRoZSB1cGRhdGVkIGxpc3QuIiwgInBhcmFtZXRlcl9kZXNjIjogIlZFQ1RPUjxOZXQuSVBSYW5nZT46IGxpc3QgdG8gcmVtb3ZlIGZyb207IE5VTUJFUjogc3RhcnRpbmcgaW5kZXg7IE5VTUJFUjogZW5kaW5nIGluZGV4LiIsICJkZXNjcmlwdGlvbiI6ICJSZW1vdmUgbGlzdCBlbnRyaWVzIGJldHdlZW4gZ2l2ZW4gaW5kaWNlcyIsICJleGFtcGxlX2NvZGUiOiAiLy8gSW5pdGlhbGl6ZSBhIFZFQ1RPUiBvZiBOZXQuSVBSYW5nZVxuVkVDVE9SPE5ldC5JUFJhbmdlPiBpcFJhbmdlcyA9IE5ldC5JUFJhbmdlKFwiMTkyLjE2OC4xLjAvMjRcIiksIE5ldC5JUFJhbmdlKFwiMTAuMC4wLjAvOFwiKSwgTmV0LklQUmFuZ2UoXCIxNzIuMTYuMC4wLzEyXCIpXG5cbi8vIERlZmluZSB0aGUgc3RhcnQgYW5kIGVuZCBpbmRpY2VzIGZvciByZW1vdmFsXG5OVU1CRVIgc3RhcnRJbmRleCA9IDFcbk5VTUJFUiBlbmRJbmRleCA9IDJcblxuLy8gQ3JlYXRlIGEgbmV3IFZFQ1RPUiB0byBzdG9yZSB0aGUgdXBkYXRlZCBsaXN0XG5WRUNUT1I8TmV0LklQUmFuZ2U+IHVwZGF0ZWRJcFJhbmdlc1xuXG4vLyBMb29wIHRocm91Z2ggdGhlIG9yaWdpbmFsIFZFQ1RPUiBhbmQgYWRkIGVsZW1lbnRzIHRoYXQgYXJlIG5vdCBpbiB0aGUgcmVtb3ZhbCByYW5nZVxuRk9SIE5VTUJFUiBpID0gMCBUTyBTSVpFKGlwUmFuZ2VzKSAtIDEge1xuICAgIElGIGkgPCBzdGFydEluZGV4IE9SIGkgPiBlbmRJbmRleCBUSEVOIHtcbiAgICAgICAgdXBkYXRlZElwUmFuZ2VzID0gdXBkYXRlZElwUmFuZ2VzICsgaXBSYW5nZXNbaV1cbiAgICB9XG59XG5cbi8vIEFzc2lnbiB0aGUgdXBkYXRlZCBWRUNUT1IgYmFjayB0byB0aGUgb3JpZ2luYWwgdmFyaWFibGVcbmlwUmFuZ2VzID0gdXBkYXRlZElwUmFuZ2VzXG5cbi8vIENvbW1lbnRlZCBvdXQgZGVidWcgb3V0cHV0IHRvIHZlcmlmeSB0aGUgcmVtb3ZhbFxuLy8gXCJVcGRhdGVkIElQIFJhbmdlczogXCIgKyBpcFJhbmdlcyIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIi8vIEluaXRpYWxpemUgYSBWRUNUT1Igb2YgTmV0LklQUmFuZ2VcblZFQ1RPUjxOZXQuSVBSYW5nZT4gaXBSYW5nZXMgPSBOZXQuSVBSYW5nZShcIjE5Mi4xNjguMS4wLzI0XCIpLCBOZXQuSVBSYW5nZShcIjEwLjAuMC4wLzhcIiksIE5ldC5JUFJhbmdlKFwiMTcyLjE2LjAuMC8xMlwiKVxuXG4vLyBEZWZpbmUgdGhlIHN0YXJ0IGFuZCBlbmQgaW5kaWNlcyBmb3IgcmVtb3ZhbFxuTlVNQkVSIHN0YXJ0SW5kZXggPSAxXG5OVU1CRVIgZW5kSW5kZXggPSAyXG5cbi8vIENyZWF0ZSBhIG5ldyBWRUNUT1IgdG8gc3RvcmUgdGhlIHVwZGF0ZWQgbGlzdFxuVkVDVE9SPE5ldC5JUFJhbmdlPiB1cGRhdGVkSXBSYW5nZXNcblxuLy8gTG9vcCB0aHJvdWdoIHRoZSBvcmlnaW5hbCBWRUNUT1IgYW5kIGFkZCBlbGVtZW50cyB0aGF0IGFyZSBub3QgaW4gdGhlIHJlbW92YWwgcmFuZ2VcbkZPUiBOVU1CRVIgaSA9IDAgVE8gU0laRShpcFJhbmdlcykgLSAxIHtcbiAgICBJRiBpIDwgc3RhcnRJbmRleCBPUiBpID4gZW5kSW5kZXggVEhFTiB7XG4gICAgICAgIHVwZGF0ZWRJcFJhbmdlcyA9IHVwZGF0ZWRJcFJhbmdlcyArIGlwUmFuZ2VzW2ldXG4gICAgfVxufVxuXG4vLyBBc3NpZ24gdGhlIHVwZGF0ZWQgVkVDVE9SIGJhY2sgdG8gdGhlIG9yaWdpbmFsIHZhcmlhYmxlXG5pcFJhbmdlcyA9IHVwZGF0ZWRJcFJhbmdlc1xuXG4vLyBDb21tZW50ZWQgb3V0IGRlYnVnIG91dHB1dCB0byB2ZXJpZnkgdGhlIHJlbW92YWxcbi8vIFwiVXBkYXRlZCBJUCBSYW5nZXM6IFwiICsgaXBSYW5nZXMifSwgeyJuYW1lIjogIlJlbW92ZSAoVkVDVE9SPE5ldC5JUFJhbmdlPiwgVkVDVE9SPE5ldC5JUFJhbmdlPikiLCAicmV0dXJuX3R5cGUiOiAiVkVDVE9SPE5ldC5JUFJhbmdlPiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIHRoZSB1cGRhdGVkIGxpc3QuIiwgInBhcmFtZXRlcl9kZXNjIjogIlZFQ1RPUjxOZXQuSVBSYW5nZT46IGxpc3QgdG8gcmVtb3ZlIGZyb207IFZFQ1RPUjxOZXQuSVBSYW5nZT46IGVsZW1lbnRzIHRvIHJlbW92ZS4iLCAiZGVzY3JpcHRpb24iOiAiUmVtb3ZlIGFsbCBlbGVtZW50cyBmcm9tIHRoZSBmaXJzdCBsaXN0IHRoYXQgbWF0Y2ggYW4gZWxlbWVudCBpbiB0aGUgc2Vjb25kIGxpc3QuIiwgImV4YW1wbGVfY29kZSI6ICJWRUNUT1I8TmV0LklQUmFuZ2U+IGlwTGlzdCA9IFwiMTkyLjE2OC4xLjAvMjRcIiwgXCIxMC4wLjAuMC84XCIsIFwiMTcyLjE2LjAuMC8xMlwiXG5WRUNUT1I8TmV0LklQUmFuZ2U+IGlwVG9SZW1vdmUgPSBcIjEwLjAuMC4wLzhcIlxuXG5WRUNUT1I8TmV0LklQUmFuZ2U+IHVwZGF0ZWRMaXN0ID0gUmVtb3ZlKGlwTGlzdCwgaXBUb1JlbW92ZSlcblxuLy8gVXBkYXRlZCBJUCBMaXN0OiBcIiArIHVwZGF0ZWRMaXN0IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiVkVDVE9SPE5ldC5JUFJhbmdlPiBpcExpc3QgPSBcIjE5Mi4xNjguMS4wLzI0XCIsIFwiMTAuMC4wLjAvOFwiLCBcIjE3Mi4xNi4wLjAvMTJcIlxuVkVDVE9SPE5ldC5JUFJhbmdlPiBpcFRvUmVtb3ZlID0gXCIxMC4wLjAuMC84XCJcblxuVkVDVE9SPE5ldC5JUFJhbmdlPiB1cGRhdGVkTGlzdCA9IFJlbW92ZShpcExpc3QsIGlwVG9SZW1vdmUpXG5cbi8vIFVwZGF0ZWQgSVAgTGlzdDogXCIgKyB1cGRhdGVkTGlzdCJ9LCB7Im5hbWUiOiAiUmVtb3ZlIChWRUNUT1I8TlVNQkVSPiwgTlVNQkVSLCBOVU1CRVIpIiwgInJldHVybl90eXBlIjogIlZFQ1RPUjxOVU1CRVI+IiwgInJldHVybl9kZXNjIjogIlJldHVybnMgdGhlIHVwZGF0ZWQgbGlzdC4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiVkVDVE9SPE5VTUJFUj46IGxpc3QgdG8gcmVtb3ZlIGZyb207IE5VTUJFUjogc3RhcnRpbmcgaW5kZXg7IE5VTUJFUjogZW5kaW5nIGluZGV4LiIsICJkZXNjcmlwdGlvbiI6ICJSZW1vdmUgbGlzdCBlbnRyaWVzIGJldHdlZW4gZ2l2ZW4gaW5kaWNlcyIsICJleGFtcGxlX2NvZGUiOiAiLy8gSW5pdGlhbGl6ZSBhIFZFQ1RPUiBvZiBOVU1CRVJzXG5WRUNUT1I8TlVNQkVSPiBudW1iZXJzID0gMSwgMiwgMywgNCwgNSwgNiwgNywgOCwgOSwgMTBcblxuLy8gT3JpZ2luYWwgVkVDVE9SOiBcbi8vIG51bWJlcnNcblxuLy8gUmVtb3ZlIGVsZW1lbnRzIGZyb20gaW5kZXggMyB0byA1IChpbmNsdXNpdmUpXG5udW1iZXJzID0gUmVtb3ZlKG51bWJlcnMsIDMsIDUpXG5cbi8vIFVwZGF0ZWQgVkVDVE9SOiBcbi8vIG51bWJlcnMiLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICIvLyBJbml0aWFsaXplIGEgVkVDVE9SIG9mIE5VTUJFUnNcblZFQ1RPUjxOVU1CRVI+IG51bWJlcnMgPSAxLCAyLCAzLCA0LCA1LCA2LCA3LCA4LCA5LCAxMFxuXG4vLyBPcmlnaW5hbCBWRUNUT1I6IFxuLy8gbnVtYmVyc1xuXG4vLyBSZW1vdmUgZWxlbWVudHMgZnJvbSBpbmRleCAzIHRvIDUgKGluY2x1c2l2ZSlcbm51bWJlcnMgPSBSZW1vdmUobnVtYmVycywgMywgNSlcblxuLy8gVXBkYXRlZCBWRUNUT1I6IFxuLy8gbnVtYmVycyJ9LCB7Im5hbWUiOiAiUmVtb3ZlIChWRUNUT1I8TlVNQkVSPiwgVkVDVE9SPE5VTUJFUj4pIiwgInJldHVybl90eXBlIjogIlZFQ1RPUjxOVU1CRVI+IiwgInJldHVybl9kZXNjIjogIlJldHVybnMgdGhlIHVwZGF0ZWQgbGlzdC4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiVkVDVE9SPE5VTUJFUj46IGxpc3QgdG8gcmVtb3ZlIGZyb207IFZFQ1RPUjxOVU1CRVI+OiBlbGVtZW50cyB0byByZW1vdmUuIiwgImRlc2NyaXB0aW9uIjogIlJlbW92ZSBhbGwgZWxlbWVudHMgZnJvbSB0aGUgZmlyc3QgbGlzdCB0aGF0IG1hdGNoIGFuIGVsZW1lbnQgaW4gdGhlIHNlY29uZCBsaXN0LiIsICJleGFtcGxlX2NvZGUiOiAiVkVDVE9SPFNUUklORz4gZXhhbXBsZUxpc3QgPSBcIm9uZVwiLCBcInR3b1wiLCBcInRocmVlXCIsIFwiZm91clwiLCBcImZpdmVcIlxuLy8gT3JpZ2luYWwgTGlzdDogXCIgKyBleGFtcGxlTGlzdFxuXG4vLyBSZW1vdmUgZWxlbWVudHMgZnJvbSBpbmRleCAxIHRvIDMgKGluY2x1c2l2ZSlcbmV4YW1wbGVMaXN0ID0gUmVtb3ZlKGV4YW1wbGVMaXN0LCAxLCAzKVxuLy8gVXBkYXRlZCBMaXN0OiBcIiArIGV4YW1wbGVMaXN0IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiVkVDVE9SPFNUUklORz4gZXhhbXBsZUxpc3QgPSBcIm9uZVwiLCBcInR3b1wiLCBcInRocmVlXCIsIFwiZm91clwiLCBcImZpdmVcIlxuLy8gT3JpZ2luYWwgTGlzdDogXCIgKyBleGFtcGxlTGlzdFxuXG4vLyBSZW1vdmUgZWxlbWVudHMgZnJvbSBpbmRleCAxIHRvIDMgKGluY2x1c2l2ZSlcbmV4YW1wbGVMaXN0ID0gUmVtb3ZlKGV4YW1wbGVMaXN0LCAxLCAzKVxuLy8gVXBkYXRlZCBMaXN0OiBcIiArIGV4YW1wbGVMaXN0In0sIHsibmFtZSI6ICJSZW1vdmUgKFZFQ1RPUjxTVFJJTkc+LCBOVU1CRVIsIE5VTUJFUikiLCAicmV0dXJuX3R5cGUiOiAiVkVDVE9SPFNUUklORz4iLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyB0aGUgdXBkYXRlZCBsaXN0LiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJWRUNUT1I8U1RSSU5HPjogbGlzdCB0byByZW1vdmUgZnJvbTsgTlVNQkVSOiBzdGFydGluZyBpbmRleDsgTlVNQkVSOiBlbmRpbmcgaW5kZXguIiwgImRlc2NyaXB0aW9uIjogIlJlbW92ZSBsaXN0IGVudHJpZXMgYmV0d2VlbiBnaXZlbiBpbmRpY2VzIiwgImV4YW1wbGVfY29kZSI6ICIvLyBJbml0aWFsaXplIGEgVkVDVE9SIG9mIFNUUklOR3NcblZFQ1RPUjxTVFJJTkc+IG15TGlzdCA9IFwiYXBwbGVcIiwgXCJiYW5hbmFcIiwgXCJjaGVycnlcIiwgXCJkYXRlXCIsIFwiZWxkZXJiZXJyeVwiXG5cbi8vIE9yaWdpbmFsIGxpc3Q6IFwiICsgbXlMaXN0XG4vLyBSZW1vdmUgZWxlbWVudHMgZnJvbSBpbmRleCAxIHRvIDMgKGluY2x1c2l2ZSlcbm15TGlzdCA9IFJlbW92ZShteUxpc3QsIDEsIDMpXG5cbi8vIFVwZGF0ZWQgbGlzdDogXCIgKyBteUxpc3QiLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICIvLyBJbml0aWFsaXplIGEgVkVDVE9SIG9mIFNUUklOR3NcblZFQ1RPUjxTVFJJTkc+IG15TGlzdCA9IFwiYXBwbGVcIiwgXCJiYW5hbmFcIiwgXCJjaGVycnlcIiwgXCJkYXRlXCIsIFwiZWxkZXJiZXJyeVwiXG5cbi8vIE9yaWdpbmFsIGxpc3Q6IFwiICsgbXlMaXN0XG4vLyBSZW1vdmUgZWxlbWVudHMgZnJvbSBpbmRleCAxIHRvIDMgKGluY2x1c2l2ZSlcbm15TGlzdCA9IFJlbW92ZShteUxpc3QsIDEsIDMpXG5cbi8vIFVwZGF0ZWQgbGlzdDogXCIgKyBteUxpc3QifSwgeyJuYW1lIjogIlJlbW92ZSAoVkVDVE9SPFNUUklORz4sIFZFQ1RPUjxTVFJJTkc+KSIsICJyZXR1cm5fdHlwZSI6ICJWRUNUT1I8U1RSSU5HPiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIHRoZSB1cGRhdGVkIGxpc3QuIiwgInBhcmFtZXRlcl9kZXNjIjogIlZFQ1RPUjxTVFJJTkc+OiBsaXN0IHRvIHJlbW92ZSBmcm9tOyBWRUNUT1I8U1RSSU5HPjogZWxlbWVudHMgdG8gcmVtb3ZlLiIsICJkZXNjcmlwdGlvbiI6ICJSZW1vdmUgYWxsIGVsZW1lbnRzIGZyb20gdGhlIGZpcnN0IGxpc3QgdGhhdCBtYXRjaCBhbiBlbGVtZW50IGluIHRoZSBzZWNvbmQgbGlzdC4iLCAiZXhhbXBsZV9jb2RlIjogIlZFQ1RPUjxTVFJJTkc+IG9yaWdpbmFsTGlzdCA9IFwiYXBwbGVcIiwgXCJiYW5hbmFcIiwgXCJjaGVycnlcIiwgXCJkYXRlXCIsIFwiZmlnXCJcblZFQ1RPUjxTVFJJTkc+IGl0ZW1zVG9SZW1vdmUgPSBcImJhbmFuYVwiLCBcImZpZ1wiXG5cbi8vIFVzaW5nIHRoZSBSZW1vdmUgZnVuY3Rpb24gdG8gcmVtb3ZlIGl0ZW1zIGZyb20gb3JpZ2luYWxMaXN0IHRoYXQgYXJlIHByZXNlbnQgaW4gaXRlbXNUb1JlbW92ZVxuVkVDVE9SPFNUUklORz4gdXBkYXRlZExpc3QgPSBSZW1vdmUob3JpZ2luYWxMaXN0LCBpdGVtc1RvUmVtb3ZlKVxuXG4vLyBPcmlnaW5hbCBMaXN0OiBcIiArIG9yaWdpbmFsTGlzdFxuLy8gSXRlbXMgdG8gUmVtb3ZlOiBcIiArIGl0ZW1zVG9SZW1vdmVcbi8vIFVwZGF0ZWQgTGlzdDogXCIgKyB1cGRhdGVkTGlzdCIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIlZFQ1RPUjxTVFJJTkc+IG9yaWdpbmFsTGlzdCA9IFwiYXBwbGVcIiwgXCJiYW5hbmFcIiwgXCJjaGVycnlcIiwgXCJkYXRlXCIsIFwiZmlnXCJcblZFQ1RPUjxTVFJJTkc+IGl0ZW1zVG9SZW1vdmUgPSBcImJhbmFuYVwiLCBcImZpZ1wiXG5cbi8vIFVzaW5nIHRoZSBSZW1vdmUgZnVuY3Rpb24gdG8gcmVtb3ZlIGl0ZW1zIGZyb20gb3JpZ2luYWxMaXN0IHRoYXQgYXJlIHByZXNlbnQgaW4gaXRlbXNUb1JlbW92ZVxuVkVDVE9SPFNUUklORz4gdXBkYXRlZExpc3QgPSBSZW1vdmUob3JpZ2luYWxMaXN0LCBpdGVtc1RvUmVtb3ZlKVxuXG4vLyBPcmlnaW5hbCBMaXN0OiBcIiArIG9yaWdpbmFsTGlzdFxuLy8gSXRlbXMgdG8gUmVtb3ZlOiBcIiArIGl0ZW1zVG9SZW1vdmVcbi8vIFVwZGF0ZWQgTGlzdDogXCIgKyB1cGRhdGVkTGlzdCJ9LCB7Im5hbWUiOiAiUmVwbGFjZSAoU1RSSU5HLCBOVU1CRVIsIE5VTUJFUiwgU1RSSU5HKSIsICJyZXR1cm5fdHlwZSI6ICJTVFJJTkciLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyBhIHN0cmluZyB3aXRoIHRoZSBzcGVjaWZpZWQgY2hhcmFjdGVyIHJhbmdlIHJlcGxhY2VkIGJ5IHRoZSBzZWNvbmQgc3RyaW5nIGFyZ3VtZW50LiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJTVFJJTkc6IHRoZSBvcmlnaW5hbCBTVFJJTkc7IE5VTUJFUjogc3RhcnQgcG9zaXRpb247IE5VTUJFUjogbGVuZ3RoIG9mIHRoZSByYW5nZTsgU1RSSU5HOiB0aGUgcmVwbGFjZW1lbnQgU1RSSU5HLiIsICJkZXNjcmlwdGlvbiI6ICJSZXBsYWNlcyBjaGFyYWN0ZXIgcmFuZ2UgYnkgc2Vjb25kIFNUUklORyBhcmd1bWVudCBhbmQgcmV0dXJucyB0aGUgcmVzdWx0aW5nIFNUUklORyIsICJleGFtcGxlX2NvZGUiOiAiU1RSSU5HIG9yaWdpbmFsU3RyaW5nID0gXCJIZWxsbywgV29ybGQhXCJcbk5VTUJFUiBzdGFydFBvc2l0aW9uID0gN1xuTlVNQkVSIGxlbmd0aFRvUmVwbGFjZSA9IDVcblNUUklORyByZXBsYWNlbWVudFN0cmluZyA9IFwiTU9XR0xJXCJcblxuU1RSSU5HIHJlc3VsdFN0cmluZyA9IFJlcGxhY2Uob3JpZ2luYWxTdHJpbmcsIHN0YXJ0UG9zaXRpb24sIGxlbmd0aFRvUmVwbGFjZSwgcmVwbGFjZW1lbnRTdHJpbmcpXG4vLyBPcmlnaW5hbCBTdHJpbmc6IEhlbGxvLCBXb3JsZCFcbi8vIE1vZGlmaWVkIFN0cmluZzogSGVsbG8sIE1PV0dMSSEiLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICJTVFJJTkcgb3JpZ2luYWxTdHJpbmcgPSBcIkhlbGxvLCBXb3JsZCFcIlxuTlVNQkVSIHN0YXJ0UG9zaXRpb24gPSA3XG5OVU1CRVIgbGVuZ3RoVG9SZXBsYWNlID0gNVxuU1RSSU5HIHJlcGxhY2VtZW50U3RyaW5nID0gXCJNT1dHTElcIlxuXG5TVFJJTkcgcmVzdWx0U3RyaW5nID0gUmVwbGFjZShvcmlnaW5hbFN0cmluZywgc3RhcnRQb3NpdGlvbiwgbGVuZ3RoVG9SZXBsYWNlLCByZXBsYWNlbWVudFN0cmluZylcbi8vIE9yaWdpbmFsIFN0cmluZzogSGVsbG8sIFdvcmxkIVxuLy8gTW9kaWZpZWQgU3RyaW5nOiBIZWxsbywgTU9XR0xJISJ9LCB7Im5hbWUiOiAiUmVwbGFjZSAoU1RSSU5HLCBOVU1CRVIsIFNUUklORykiLCAicmV0dXJuX3R5cGUiOiAiU1RSSU5HIiwgInJldHVybl9kZXNjIjogIlJldHVybnMgdGhlIG1vZGlmaWVkIHN0cmluZyBhZnRlciByZXBsYWNpbmcgY2hhcmFjdGVycyBpbiB0aGUgZmlyc3Qgc3RyaW5nLCBzdGFydGluZyBhdCB0aGUgZ2l2ZW4gcG9zaXRpb24sIHdpdGggdGhlIHNlY29uZCBzdHJpbmcuIiwgInBhcmFtZXRlcl9kZXNjIjogIlNUUklORzogdGhlIG9yaWdpbmFsIFNUUklORzsgTlVNQkVSOiB0aGUgc3RhcnRpbmcgcG9zaXRpb247IFNUUklORzogdGhlIFNUUklORyB0byBpbnNlcnQuIiwgImRlc2NyaXB0aW9uIjogIlJlcGxhY2VzIGNoYXJhY3RlcnMgb2YgMXN0IFNUUklORyBzdGFydGluZyBhdCBnaXZlbiBwb3N0aW9uIGJ5IHRoZSBzZWNvbmQgU1RSSU5HIGFuZCByZXR1cm5zIHRoZSByZXN1bHQiLCAiZXhhbXBsZV9jb2RlIjogIlNUUklORyBvcmlnaW5hbFN0cmluZyA9IFwiSGVsbG8sIFdvcmxkIVwiXG5OVU1CRVIgc3RhcnRQb3NpdGlvbiA9IDdcblNUUklORyByZXBsYWNlbWVudFN0cmluZyA9IFwiTU9XR0xJXCJcblxuU1RSSU5HIHJlc3VsdFN0cmluZyA9IFJlcGxhY2Uob3JpZ2luYWxTdHJpbmcsIHN0YXJ0UG9zaXRpb24sIHJlcGxhY2VtZW50U3RyaW5nKVxuXG4vLyBUaGlzIHdpbGwgcHJpbnQgXCJIZWxsbywgTU9XR0xJIVwiIiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiU1RSSU5HIG9yaWdpbmFsU3RyaW5nID0gXCJIZWxsbywgV29ybGQhXCJcbk5VTUJFUiBzdGFydFBvc2l0aW9uID0gN1xuU1RSSU5HIHJlcGxhY2VtZW50U3RyaW5nID0gXCJNT1dHTElcIlxuXG5TVFJJTkcgcmVzdWx0U3RyaW5nID0gUmVwbGFjZShvcmlnaW5hbFN0cmluZywgc3RhcnRQb3NpdGlvbiwgcmVwbGFjZW1lbnRTdHJpbmcpXG5cbi8vIFRoaXMgd2lsbCBwcmludCBcIkhlbGxvLCBNT1dHTEkhXCIifSwgeyJuYW1lIjogIlJlcGxhY2VBbGwgKFNUUklORywgU1RSSU5HLCBTVFJJTkcpIiwgInJldHVybl90eXBlIjogIlNUUklORyIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIGEgbmV3IHN0cmluZyB3aXRoIGFsbCBpbnN0YW5jZXMgb2YgdGhlIHNwZWNpZmllZCBzdWJzdHJpbmcgcmVwbGFjZWQgYnkgdGhlIGdpdmVuIHJlcGxhY2VtZW50IHN0cmluZy4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiU1RSSU5HOiB0aGUgb3JpZ2luYWwgdGV4dDsgU1RSSU5HOiB0aGUgc3ViU1RSSU5HIHRvIGJlIHJlcGxhY2VkOyBTVFJJTkc6IHRoZSByZXBsYWNlbWVudCB0ZXh0LiIsICJkZXNjcmlwdGlvbiI6ICJSZXBsYWNlcyBhbGwgb2NjdXJlbmNlcyBvZiB0aGUgZ2l2ZW4gc3ViU1RSSU5HIHdpdGggdGhlIHJlcGxhY2VtZW50IFNUUklORyIsICJleGFtcGxlX2NvZGUiOiAiU1RSSU5HIG9yaWdpbmFsU3RyaW5nID0gXCJUaGUgcXVpY2sgYnJvd24gZm94IGp1bXBzIG92ZXIgdGhlIGxhenkgZG9nXCJcblNUUklORyB0YXJnZXRTdWJzdHJpbmcgPSBcIm9cIlxuU1RSSU5HIHJlcGxhY2VtZW50U3Vic3RyaW5nID0gXCIwXCJcblxuU1RSSU5HIHJlc3VsdFN0cmluZyA9IFJlcGxhY2VBbGwob3JpZ2luYWxTdHJpbmcsIHRhcmdldFN1YnN0cmluZywgcmVwbGFjZW1lbnRTdWJzdHJpbmcpXG5cbi8vIFRoaXMgd2lsbCBwcmludDogXCJUaGUgcXVpY2sgYnIwd24gZjB4IGp1bXBzIDB2ZXIgdGhlIGxhenkgZDBnXCIiLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICJTVFJJTkcgb3JpZ2luYWxTdHJpbmcgPSBcIlRoZSBxdWljayBicm93biBmb3gganVtcHMgb3ZlciB0aGUgbGF6eSBkb2dcIlxuU1RSSU5HIHRhcmdldFN1YnN0cmluZyA9IFwib1wiXG5TVFJJTkcgcmVwbGFjZW1lbnRTdWJzdHJpbmcgPSBcIjBcIlxuXG5TVFJJTkcgcmVzdWx0U3RyaW5nID0gUmVwbGFjZUFsbChvcmlnaW5hbFN0cmluZywgdGFyZ2V0U3Vic3RyaW5nLCByZXBsYWNlbWVudFN1YnN0cmluZylcblxuLy8gVGhpcyB3aWxsIHByaW50OiBcIlRoZSBxdWljayBicjB3biBmMHgganVtcHMgMHZlciB0aGUgbGF6eSBkMGdcIiJ9LCB7Im5hbWUiOiAiUmVwbGFjZUZpcnN0IChTVFJJTkcsIFNUUklORywgU1RSSU5HKSIsICJyZXR1cm5fdHlwZSI6ICJTVFJJTkciLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyB0aGUgbmV3IHN0cmluZyB3aXRoIHRoZSByZXBsYWNlbWVudCBtYWRlLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJTVFJJTkc6IHNvdXJjZSB0byBzZWFyY2ggaW47IFNUUklORzogd2hhdCB0byBzZWFyY2ggZm9yOyBTVFJJTkc6IHdoYXQgdG8gcmVwbGFjZSB3aXRoLiIsICJkZXNjcmlwdGlvbiI6ICJSZXBsYWNlcyB0aGUgZmlyc3Qgb2NjdXJyZW5jZSBvZiB0aGUgc2VhcmNoIFNUUklORyhzZWNvbmQgcGFyYW1ldGVyKSBpbiB0aGUgc291cmNlKGZpcnN0IHBhcmFtZXRlcikgd2l0aCB0aGUgdGhpcmQgcGFyYW1ldGVyIiwgImV4YW1wbGVfY29kZSI6ICJTVFJJTkcgc291cmNlU3RyaW5nID0gXCJIZWxsbyB3b3JsZCwgd2VsY29tZSB0byB0aGUgd29ybGQgb2YgTU9XR0xJXCJcblNUUklORyB0YXJnZXRTdHJpbmcgPSBcIndvcmxkXCJcblNUUklORyByZXBsYWNlbWVudFN0cmluZyA9IFwidW5pdmVyc2VcIlxuXG5TVFJJTkcgcmVzdWx0U3RyaW5nID0gUmVwbGFjZUZpcnN0KHRhcmdldFN0cmluZywgcmVwbGFjZW1lbnRTdHJpbmcsIHNvdXJjZVN0cmluZylcblxuLy8gT3V0cHV0OiBcIkhlbGxvIHVuaXZlcnNlLCB3ZWxjb21lIHRvIHRoZSB3b3JsZCBvZiBNT1dHTElcIiIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIlNUUklORyBzb3VyY2VTdHJpbmcgPSBcIkhlbGxvIHdvcmxkLCB3ZWxjb21lIHRvIHRoZSB3b3JsZCBvZiBNT1dHTElcIlxuU1RSSU5HIHRhcmdldFN0cmluZyA9IFwid29ybGRcIlxuU1RSSU5HIHJlcGxhY2VtZW50U3RyaW5nID0gXCJ1bml2ZXJzZVwiXG5cblNUUklORyByZXN1bHRTdHJpbmcgPSBSZXBsYWNlRmlyc3QodGFyZ2V0U3RyaW5nLCByZXBsYWNlbWVudFN0cmluZywgc291cmNlU3RyaW5nKVxuXG4vLyBPdXRwdXQ6IFwiSGVsbG8gdW5pdmVyc2UsIHdlbGNvbWUgdG8gdGhlIHdvcmxkIG9mIE1PV0dMSVwiIn0sIHsibmFtZSI6ICJSZXBsYWNlSWZFbXB0eSAoTVdHLkludGVybmFsVmFyaWFudCwgU1RSSU5HKSIsICJyZXR1cm5fdHlwZSI6ICJTVFJJTkciLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyB0aGUgZ2l2ZW4gc3RyaW5nIGlmIHRoZSBpbnRlcm5hbCB2YXJpYW50IHN0cmluZyBpcyBlbXB0eS4gT3RoZXJ3aXNlLCBpdCByZXR1cm5zIHRoZSBpbnRlcm5hbCB2YXJpYW50IHN0cmluZy4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiTVdHLkludGVybmFsVmFyaWFudDogdGhlIG9yaWdpbmFsIFNUUklORyB0byBjaGVjazsgU1RSSU5HOiB0aGUgcmVwbGFjZW1lbnQgU1RSSU5HIHRvIHVzZSBpZiB0aGUgb3JpZ2luYWwgaXMgZW1wdHkuIiwgImRlc2NyaXB0aW9uIjogInJlcGxhY2UgYSBTVFJJTkcgaWYgaXQgaXMgZW1wdHkiLCAiZXhhbXBsZV9jb2RlIjogIk1XRy5JbnRlcm5hbFZhcmlhbnQgbXlWYXJpYW50XG5TVFJJTkcgZGVmYXVsdFZhbHVlID0gXCJEZWZhdWx0IFZhbHVlXCJcblxuLy8gQXNzdW1lIG15VmFyaWFudCBpcyBlbXB0eSBhdCB0aGlzIHBvaW50XG5teVZhcmlhbnQgPSBSZXBsYWNlSWZFbXB0eShteVZhcmlhbnQsIGRlZmF1bHRWYWx1ZSlcblxuLy8gVGhlIHZhbHVlIG9mIG15VmFyaWFudCBpczogXCIgKyBteVZhcmlhbnQiLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICJNV0cuSW50ZXJuYWxWYXJpYW50IG15VmFyaWFudFxuU1RSSU5HIGRlZmF1bHRWYWx1ZSA9IFwiRGVmYXVsdCBWYWx1ZVwiXG5cbi8vIEFzc3VtZSBteVZhcmlhbnQgaXMgZW1wdHkgYXQgdGhpcyBwb2ludFxubXlWYXJpYW50ID0gUmVwbGFjZUlmRW1wdHkobXlWYXJpYW50LCBkZWZhdWx0VmFsdWUpXG5cbi8vIFRoZSB2YWx1ZSBvZiBteVZhcmlhbnQgaXM6IFwiICsgbXlWYXJpYW50In0sIHsibmFtZSI6ICJSZXBsYWNlSWZFbXB0eSAoU1RSSU5HLCBTVFJJTkcpIiwgInJldHVybl90eXBlIjogIlNUUklORyIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIHRoZSBzZWNvbmQgc3RyaW5nIGlmIHRoZSBmaXJzdCBzdHJpbmcgaXMgZW1wdHkuIE90aGVyd2lzZSwgaXQgcmV0dXJucyB0aGUgZmlyc3Qgc3RyaW5nLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJTVFJJTkc6IHRoZSB0YXJnZXQgU1RSSU5HIHRvIGNoZWNrOyBTVFJJTkc6IHRoZSByZXBsYWNlbWVudCBTVFJJTkcuIiwgImRlc2NyaXB0aW9uIjogInJlcGxhY2UgYSBTVFJJTkcgaWYgaXQgaXMgZW1wdHkiLCAiZXhhbXBsZV9jb2RlIjogIlNUUklORyBvcmlnaW5hbFN0cmluZyA9IFwiXCJcblNUUklORyByZXBsYWNlbWVudFN0cmluZyA9IFwiRGVmYXVsdCBWYWx1ZVwiXG5cblNUUklORyByZXN1bHRTdHJpbmcgPSBSZXBsYWNlSWZFbXB0eShvcmlnaW5hbFN0cmluZywgcmVwbGFjZW1lbnRTdHJpbmcpXG5cbi8vIFwiUmVzdWx0aW5nIFN0cmluZzogXCIgKyByZXN1bHRTdHJpbmciLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICJTVFJJTkcgb3JpZ2luYWxTdHJpbmcgPSBcIlwiXG5TVFJJTkcgcmVwbGFjZW1lbnRTdHJpbmcgPSBcIkRlZmF1bHQgVmFsdWVcIlxuXG5TVFJJTkcgcmVzdWx0U3RyaW5nID0gUmVwbGFjZUlmRW1wdHkob3JpZ2luYWxTdHJpbmcsIHJlcGxhY2VtZW50U3RyaW5nKVxuXG4vLyBcIlJlc3VsdGluZyBTdHJpbmc6IFwiICsgcmVzdWx0U3RyaW5nIn0sIHsibmFtZSI6ICJSZXBsYWNlSWZFcXVhbHMgKE1XRy5JbnRlcm5hbFZhcmlhbnQsIFNUUklORywgU1RSSU5HKSIsICJyZXR1cm5fdHlwZSI6ICJTVFJJTkciLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyB0aGUgdGhpcmQgc3RyaW5nIGlmIHRoZSBmaXJzdCBhbmQgc2Vjb25kIHN0cmluZ3MgYXJlIGVxdWFsOyBvdGhlcndpc2UsIGl0IHJldHVybnMgdGhlIGZpcnN0IHN0cmluZy4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiTVdHLkludGVybmFsVmFyaWFudDogb3JpZ2luYWwgU1RSSU5HOyB0aGUgU1RSSU5HIHRvIGNvbXBhcmUgYWdhaW5zdCwgYW5kIHRoZSByZXBsYWNlbWVudCBTVFJJTkcuIiwgImRlc2NyaXB0aW9uIjogImNvbXBhcmUgYW5kIHJlcGxhY2UgYSBTVFJJTkciLCAiZXhhbXBsZV9jb2RlIjogIk1XRy5JbnRlcm5hbFZhcmlhbnQgbXlWYXJpYW50ID0gXCJvbGRWYWx1ZVwiXG5TVFJJTkcgdGFyZ2V0VmFsdWUgPSBcIm9sZFZhbHVlXCJcblNUUklORyBuZXdWYWx1ZSA9IFwibmV3VmFsdWVcIlxuXG4vLyBSZXBsYWNlIHRoZSB2YWx1ZSBvZiBteVZhcmlhbnQgaWYgaXQgZXF1YWxzIHRhcmdldFZhbHVlXG5SZXBsYWNlSWZFcXVhbHMobXlWYXJpYW50LCB0YXJnZXRWYWx1ZSwgbmV3VmFsdWUpXG5cbi8vIFRoZSB2YWx1ZSBvZiBteVZhcmlhbnQgaXMgbm93OiBcIiArIG15VmFyaWFudCIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIk1XRy5JbnRlcm5hbFZhcmlhbnQgbXlWYXJpYW50ID0gXCJvbGRWYWx1ZVwiXG5TVFJJTkcgdGFyZ2V0VmFsdWUgPSBcIm9sZFZhbHVlXCJcblNUUklORyBuZXdWYWx1ZSA9IFwibmV3VmFsdWVcIlxuXG4vLyBSZXBsYWNlIHRoZSB2YWx1ZSBvZiBteVZhcmlhbnQgaWYgaXQgZXF1YWxzIHRhcmdldFZhbHVlXG5SZXBsYWNlSWZFcXVhbHMobXlWYXJpYW50LCB0YXJnZXRWYWx1ZSwgbmV3VmFsdWUpXG5cbi8vIFRoZSB2YWx1ZSBvZiBteVZhcmlhbnQgaXMgbm93OiBcIiArIG15VmFyaWFudCJ9LCB7Im5hbWUiOiAiUmVwbGFjZUlmRXF1YWxzIChTVFJJTkcsIFNUUklORywgU1RSSU5HKSIsICJyZXR1cm5fdHlwZSI6ICJTVFJJTkciLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyB0aGUgdGhpcmQgc3RyaW5nIGlmIHRoZSBmaXJzdCBhbmQgc2Vjb25kIHN0cmluZ3MgYXJlIGVxdWFsOyBvdGhlcndpc2UsIGl0IHJldHVybnMgdGhlIGZpcnN0IHN0cmluZy4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiU1RSSU5HOiB0aGUgb3JpZ2luYWwgU1RSSU5HOyBTVFJJTkc6IHRoZSB0ZXh0IHRvIGNvbXBhcmUgYWdhaW5zdDsgU1RSSU5HOiB0aGUgcmVwbGFjZW1lbnQgdGV4dC4iLCAiZGVzY3JpcHRpb24iOiAiY29tcGFyZSBhbmQgcmVwbGFjZSBhIFNUUklORyIsICJleGFtcGxlX2NvZGUiOiAiU1RSSU5HIG9yaWdpbmFsU3RyaW5nID0gXCJoZWxsb1wiXG5TVFJJTkcgdGFyZ2V0U3RyaW5nID0gXCJoZWxsb1wiXG5TVFJJTkcgcmVwbGFjZW1lbnRTdHJpbmcgPSBcIndvcmxkXCJcblxuU1RSSU5HIHJlc3VsdFN0cmluZyA9IFJlcGxhY2VJZkVxdWFscyhvcmlnaW5hbFN0cmluZywgdGFyZ2V0U3RyaW5nLCByZXBsYWNlbWVudFN0cmluZylcblxuLy8gT3JpZ2luYWwgU3RyaW5nOiBcIiArIG9yaWdpbmFsU3RyaW5nXG4vLyBUYXJnZXQgU3RyaW5nOiBcIiArIHRhcmdldFN0cmluZ1xuLy8gUmVwbGFjZW1lbnQgU3RyaW5nOiBcIiArIHJlcGxhY2VtZW50U3RyaW5nXG4vLyBSZXN1bHQgU3RyaW5nOiBcIiArIHJlc3VsdFN0cmluZyIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIlNUUklORyBvcmlnaW5hbFN0cmluZyA9IFwiaGVsbG9cIlxuU1RSSU5HIHRhcmdldFN0cmluZyA9IFwiaGVsbG9cIlxuU1RSSU5HIHJlcGxhY2VtZW50U3RyaW5nID0gXCJ3b3JsZFwiXG5cblNUUklORyByZXN1bHRTdHJpbmcgPSBSZXBsYWNlSWZFcXVhbHMob3JpZ2luYWxTdHJpbmcsIHRhcmdldFN0cmluZywgcmVwbGFjZW1lbnRTdHJpbmcpXG5cbi8vIE9yaWdpbmFsIFN0cmluZzogXCIgKyBvcmlnaW5hbFN0cmluZ1xuLy8gVGFyZ2V0IFN0cmluZzogXCIgKyB0YXJnZXRTdHJpbmdcbi8vIFJlcGxhY2VtZW50IFN0cmluZzogXCIgKyByZXBsYWNlbWVudFN0cmluZ1xuLy8gUmVzdWx0IFN0cmluZzogXCIgKyByZXN1bHRTdHJpbmcifSwgeyJuYW1lIjogIlJldmVyc2UgKFJlZ0V4SlNpLkxpc3QpIiwgInJldHVybl90eXBlIjogIlJlZ0V4SlNpLkxpc3QiLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyBhIGxpc3Qgd2hlcmUgdGhlIGVsZW1lbnRzIGFyZSBpbiB0aGUgb3Bwb3NpdGUgb3JkZXIgZnJvbSB0aGUgb3JpZ2luYWwgbGlzdC4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiUmVnRXhKU2kuTGlzdDogdGhlIGxpc3QgdGhhdCB5b3Ugd2FudCB0byByZXZlcnNlLiIsICJkZXNjcmlwdGlvbiI6ICJSZXR1cm4gYSByZXZlcnNlZCB2ZXJzaW9uIG9mIGEgbGlzdCIsICJleGFtcGxlX2NvZGUiOiAiLy8gQ3JlYXRlIGEgUmVnRXhKU2kuTGlzdCB3aXRoIHNvbWUgcmVndWxhciBleHByZXNzaW9uc1xuUmVnRXhKU2kuTGlzdCByZWdleExpc3QgPSBcInJlZzFcIiwgXCJyZWcyXCIsIFwicmVnM1wiXG5cbi8vIFJldmVyc2UgdGhlIGxpc3RcblJlZ0V4SlNpLkxpc3QgcmV2ZXJzZWRMaXN0ID0gcmVnZXhMaXN0LlJldmVyc2UoKVxuXG4vLyBSZXZlcnNlZCBMaXN0OiBcIiArIHJldmVyc2VkTGlzdCB3YXMgb3JpZ2luYWxseSBwcmludGVkIHRvIHRoZSBjb25zb2xlIGhlcmUuIiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiLy8gQ3JlYXRlIGEgUmVnRXhKU2kuTGlzdCB3aXRoIHNvbWUgcmVndWxhciBleHByZXNzaW9uc1xuUmVnRXhKU2kuTGlzdCByZWdleExpc3QgPSBcInJlZzFcIiwgXCJyZWcyXCIsIFwicmVnM1wiXG5cbi8vIFJldmVyc2UgdGhlIGxpc3RcblJlZ0V4SlNpLkxpc3QgcmV2ZXJzZWRMaXN0ID0gcmVnZXhMaXN0LlJldmVyc2UoKVxuXG4vLyBSZXZlcnNlZCBMaXN0OiBcIiArIHJldmVyc2VkTGlzdCB3YXMgb3JpZ2luYWxseSBwcmludGVkIHRvIHRoZSBjb25zb2xlIGhlcmUuIn0sIHsibmFtZSI6ICJSZXZlcnNlIChWRUNUT1I8TWVkaWFUeXBlPikiLCAicmV0dXJuX3R5cGUiOiAiVkVDVE9SPE1lZGlhVHlwZT4iLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyBhIHJldmVyc2VkIGxpc3QuIiwgInBhcmFtZXRlcl9kZXNjIjogIlZFQ1RPUjogVGhlIGxpc3QgdG8gYmUgcmV2ZXJzZWQuIiwgImRlc2NyaXB0aW9uIjogIlJldHVybiBhIHJldmVyc2VkIGxpc3QiLCAiZXhhbXBsZV9jb2RlIjogIlZFQ1RPUjxNZWRpYVR5cGU+IG9yaWdpbmFsVmVjdG9yID0gW1wiZXhhbXBsZV9tZWRpYV9saXN0XCJdXG5WRUNUT1I8TWVkaWFUeXBlPiByZXZlcnNlZFZlY3RvclxuXG5OVU1CRVIgbGVuZ3RoID0gb3JpZ2luYWxWZWN0b3IuU2l6ZSgpXG5OVU1CRVIgaSA9IGxlbmd0aCAtIDFcblxuV0hJTEUgaSA+PSAwIERPIHtcbiAgICByZXZlcnNlZFZlY3Rvci5QdXNoQmFjayhvcmlnaW5hbFZlY3RvcltpXSlcbiAgICBpID0gaSAtIDFcbn1cblxuLy8gT3B0aW9uYWxseSwgc2V0IHRoZSByZXZlcnNlZCB2ZWN0b3IgdG8gYSB1c2VyLWRlZmluZWQgdmFyaWFibGVcbk1XRy5TZXRVc2VyRGVmaW5lZFZhcihcIlJldmVyc2VkTWVkaWFUeXBlc1wiLCByZXZlcnNlZFZlY3RvcilcblxuLy8gT3JpZ2luYWwgVmVjdG9yOiBcIiArIG9yaWdpbmFsVmVjdG9yXG4vLyBSZXZlcnNlZCBWZWN0b3I6IFwiICsgcmV2ZXJzZWRWZWN0b3IiLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICJWRUNUT1I8TWVkaWFUeXBlPiBvcmlnaW5hbFZlY3RvciA9IFtcImV4YW1wbGVfbWVkaWFfbGlzdFwiXVxuVkVDVE9SPE1lZGlhVHlwZT4gcmV2ZXJzZWRWZWN0b3JcblxuTlVNQkVSIGxlbmd0aCA9IG9yaWdpbmFsVmVjdG9yLlNpemUoKVxuTlVNQkVSIGkgPSBsZW5ndGggLSAxXG5cbldISUxFIGkgPj0gMCBETyB7XG4gICAgcmV2ZXJzZWRWZWN0b3IuUHVzaEJhY2sob3JpZ2luYWxWZWN0b3JbaV0pXG4gICAgaSA9IGkgLSAxXG59XG5cbi8vIE9wdGlvbmFsbHksIHNldCB0aGUgcmV2ZXJzZWQgdmVjdG9yIHRvIGEgdXNlci1kZWZpbmVkIHZhcmlhYmxlXG5NV0cuU2V0VXNlckRlZmluZWRWYXIoXCJSZXZlcnNlZE1lZGlhVHlwZXNcIiwgcmV2ZXJzZWRWZWN0b3IpXG5cbi8vIE9yaWdpbmFsIFZlY3RvcjogXCIgKyBvcmlnaW5hbFZlY3RvclxuLy8gUmV2ZXJzZWQgVmVjdG9yOiBcIiArIHJldmVyc2VkVmVjdG9yIn0sIHsibmFtZSI6ICJSZXZlcnNlIChWRUNUT1I8TVdHLkFwcGxpY2F0aW9uQ2F0ZWdvcnlUeXBlPikiLCAicmV0dXJuX3R5cGUiOiAiVkVDVE9SPE1XRy5BcHBsaWNhdGlvbkNhdGVnb3J5VHlwZT4iLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyBhIHJldmVyc2VkIGxpc3QuIiwgInBhcmFtZXRlcl9kZXNjIjogIlZFQ1RPUjogdGhlIGxpc3QgdG8gYmUgcmV2ZXJzZWQuIiwgImRlc2NyaXB0aW9uIjogIlJldHVybiBhIHJldmVyc2VkIGxpc3QiLCAiZXhhbXBsZV9jb2RlIjogIi8vIEluaXRpYWxpemUgYSBWRUNUT1Igb2YgTVdHLkFwcGxpY2F0aW9uQ2F0ZWdvcnlUeXBlXG5WRUNUT1I8TVdHLkFwcGxpY2F0aW9uQ2F0ZWdvcnlUeXBlPiBhcHBDYXRlZ29yaWVzID0gW1wiU29jaWFsIE1lZGlhXCIsIFwiU3RyZWFtaW5nIE1lZGlhXCIsIFwiRmlsZSBTaGFyaW5nXCJdXG5cbi8vIFJldmVyc2UgdGhlIFZFQ1RPUlxuVkVDVE9SPE1XRy5BcHBsaWNhdGlvbkNhdGVnb3J5VHlwZT4gcmV2ZXJzZWRDYXRlZ29yaWVzID0gUmV2ZXJzZShhcHBDYXRlZ29yaWVzKVxuXG4vLyBSZXZlcnNlZCBBcHBsaWNhdGlvbiBDYXRlZ29yaWVzOiBcIiArIHJldmVyc2VkQ2F0ZWdvcmllcyIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIi8vIEluaXRpYWxpemUgYSBWRUNUT1Igb2YgTVdHLkFwcGxpY2F0aW9uQ2F0ZWdvcnlUeXBlXG5WRUNUT1I8TVdHLkFwcGxpY2F0aW9uQ2F0ZWdvcnlUeXBlPiBhcHBDYXRlZ29yaWVzID0gW1wiU29jaWFsIE1lZGlhXCIsIFwiU3RyZWFtaW5nIE1lZGlhXCIsIFwiRmlsZSBTaGFyaW5nXCJdXG5cbi8vIFJldmVyc2UgdGhlIFZFQ1RPUlxuVkVDVE9SPE1XRy5BcHBsaWNhdGlvbkNhdGVnb3J5VHlwZT4gcmV2ZXJzZWRDYXRlZ29yaWVzID0gUmV2ZXJzZShhcHBDYXRlZ29yaWVzKVxuXG4vLyBSZXZlcnNlZCBBcHBsaWNhdGlvbiBDYXRlZ29yaWVzOiBcIiArIHJldmVyc2VkQ2F0ZWdvcmllcyJ9LCB7Im5hbWUiOiAiUmV2ZXJzZSAoVkVDVE9SPE1XRy5BcHBsaWNhdGlvblR5cGU+KSIsICJyZXR1cm5fdHlwZSI6ICJWRUNUT1I8TVdHLkFwcGxpY2F0aW9uVHlwZT4iLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyBhIHJldmVyc2VkIGxpc3QuIiwgInBhcmFtZXRlcl9kZXNjIjogIlZFQ1RPUjogVGhlIGxpc3QgdG8gYmUgcmV2ZXJzZWQuIiwgImRlc2NyaXB0aW9uIjogIlJldHVybiBhIHJldmVyc2VkIGxpc3QiLCAiZXhhbXBsZV9jb2RlIjogIi8vIEluaXRpYWxpemUgYSBWRUNUT1Igb2YgTVdHLkFwcGxpY2F0aW9uVHlwZVxuVkVDVE9SPE1XRy5BcHBsaWNhdGlvblR5cGU+IGFwcFR5cGVzID0gTVdHLkFwcGxpY2F0aW9uVHlwZShcIkFwcDFcIiksIE1XRy5BcHBsaWNhdGlvblR5cGUoXCJBcHAyXCIpLCBNV0cuQXBwbGljYXRpb25UeXBlKFwiQXBwM1wiKVxuXG4vLyBSZXZlcnNlIHRoZSBWRUNUT1JcblZFQ1RPUjxNV0cuQXBwbGljYXRpb25UeXBlPiByZXZlcnNlZEFwcFR5cGVzID0gUmV2ZXJzZShhcHBUeXBlcylcblxuLy8gUmV2ZXJzZWQgQXBwbGljYXRpb24gVHlwZXM6IFwiICsgcmV2ZXJzZWRBcHBUeXBlcyIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIi8vIEluaXRpYWxpemUgYSBWRUNUT1Igb2YgTVdHLkFwcGxpY2F0aW9uVHlwZVxuVkVDVE9SPE1XRy5BcHBsaWNhdGlvblR5cGU+IGFwcFR5cGVzID0gTVdHLkFwcGxpY2F0aW9uVHlwZShcIkFwcDFcIiksIE1XRy5BcHBsaWNhdGlvblR5cGUoXCJBcHAyXCIpLCBNV0cuQXBwbGljYXRpb25UeXBlKFwiQXBwM1wiKVxuXG4vLyBSZXZlcnNlIHRoZSBWRUNUT1JcblZFQ1RPUjxNV0cuQXBwbGljYXRpb25UeXBlPiByZXZlcnNlZEFwcFR5cGVzID0gUmV2ZXJzZShhcHBUeXBlcylcblxuLy8gUmV2ZXJzZWQgQXBwbGljYXRpb24gVHlwZXM6IFwiICsgcmV2ZXJzZWRBcHBUeXBlcyJ9LCB7Im5hbWUiOiAiUmV2ZXJzZSAoVkVDVE9SPE1XRy5Ib3N0QW5kQ2VydGlmaWNhdGU+KSIsICJyZXR1cm5fdHlwZSI6ICJWRUNUT1I8TVdHLkhvc3RBbmRDZXJ0aWZpY2F0ZT4iLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyBhIHJldmVyc2VkIGxpc3QuIiwgInBhcmFtZXRlcl9kZXNjIjogIlZFQ1RPUjogVGhlIGlucHV0IGxpc3QgdG8gYmUgcmV2ZXJzZWQuIiwgImRlc2NyaXB0aW9uIjogIlJldHVybiBhIHJldmVyc2VkIGxpc3QiLCAiZXhhbXBsZV9jb2RlIjogIlZFQ1RPUjxNV0cuSG9zdEFuZENlcnRpZmljYXRlPiBvcmlnaW5hbFZlY3RvciA9IFtcImV4YW1wbGVfbGlzdFwiXVxuVkVDVE9SPE1XRy5Ib3N0QW5kQ2VydGlmaWNhdGU+IHJldmVyc2VkVmVjdG9yID0gW11cblxuTlVNQkVSIGxlbmd0aCA9IFNJWkUob3JpZ2luYWxWZWN0b3IpXG5OVU1CRVIgaSA9IGxlbmd0aCAtIDFcblxuV0hJTEUgaSA+PSAwIERPIHtcbiAgICByZXZlcnNlZFZlY3RvciA9IEluc2VydChyZXZlcnNlZFZlY3Rvciwgb3JpZ2luYWxWZWN0b3JbaV0sIGxlbmd0aCAtIGkgLSAxKVxuICAgIGkgPSBpIC0gMVxufVxuXG4vLyBPcmlnaW5hbCBWZWN0b3I6IFwiICsgb3JpZ2luYWxWZWN0b3Jcbi8vIFJldmVyc2VkIFZlY3RvcjogXCIgKyByZXZlcnNlZFZlY3RvciIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIlZFQ1RPUjxNV0cuSG9zdEFuZENlcnRpZmljYXRlPiBvcmlnaW5hbFZlY3RvciA9IFtcImV4YW1wbGVfbGlzdFwiXVxuVkVDVE9SPE1XRy5Ib3N0QW5kQ2VydGlmaWNhdGU+IHJldmVyc2VkVmVjdG9yID0gW11cblxuTlVNQkVSIGxlbmd0aCA9IFNJWkUob3JpZ2luYWxWZWN0b3IpXG5OVU1CRVIgaSA9IGxlbmd0aCAtIDFcblxuV0hJTEUgaSA+PSAwIERPIHtcbiAgICByZXZlcnNlZFZlY3RvciA9IEluc2VydChyZXZlcnNlZFZlY3Rvciwgb3JpZ2luYWxWZWN0b3JbaV0sIGxlbmd0aCAtIGkgLSAxKVxuICAgIGkgPSBpIC0gMVxufVxuXG4vLyBPcmlnaW5hbCBWZWN0b3I6IFwiICsgb3JpZ2luYWxWZWN0b3Jcbi8vIFJldmVyc2VkIFZlY3RvcjogXCIgKyByZXZlcnNlZFZlY3RvciJ9LCB7Im5hbWUiOiAiUmV2ZXJzZSAoVkVDVE9SPE1XRy5VcmxDYXRlZ29yeT4pIiwgInJldHVybl90eXBlIjogIlZFQ1RPUjxNV0cuVXJsQ2F0ZWdvcnk+IiwgInJldHVybl9kZXNjIjogIlJldHVybnMgYSByZXZlcnNlZCBsaXN0LiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJWRUNUT1I6IFRoZSBsaXN0IHRvIGJlIHJldmVyc2VkLiIsICJkZXNjcmlwdGlvbiI6ICJSZXR1cm4gYSByZXZlcnNlZCBsaXN0IiwgImV4YW1wbGVfY29kZSI6ICIvLyBJbml0aWFsaXplIGEgVkVDVE9SIG9mIE1XRy5VcmxDYXRlZ29yeVxuVkVDVE9SPE1XRy5VcmxDYXRlZ29yeT4gdXJsQ2F0ZWdvcmllcyA9IFtcImV4YW1wbGVfdXJsX2NhdGVnb3J5X2xpc3RcIl1cblxuLy8gT3JpZ2luYWwgbGlzdDogXG4vLyB1cmxDYXRlZ29yaWVzXG5cbi8vIFJldmVyc2UgdGhlIGxpc3QgdXNpbmcgdGhlIFJldmVyc2UgZnVuY3Rpb25cblZFQ1RPUjxNV0cuVXJsQ2F0ZWdvcnk+IHJldmVyc2VkQ2F0ZWdvcmllcyA9IFJldmVyc2UodXJsQ2F0ZWdvcmllcylcblxuLy8gUmV2ZXJzZWQgbGlzdDogXG4vLyByZXZlcnNlZENhdGVnb3JpZXMiLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICIvLyBJbml0aWFsaXplIGEgVkVDVE9SIG9mIE1XRy5VcmxDYXRlZ29yeVxuVkVDVE9SPE1XRy5VcmxDYXRlZ29yeT4gdXJsQ2F0ZWdvcmllcyA9IFtcImV4YW1wbGVfdXJsX2NhdGVnb3J5X2xpc3RcIl1cblxuLy8gT3JpZ2luYWwgbGlzdDogXG4vLyB1cmxDYXRlZ29yaWVzXG5cbi8vIFJldmVyc2UgdGhlIGxpc3QgdXNpbmcgdGhlIFJldmVyc2UgZnVuY3Rpb25cblZFQ1RPUjxNV0cuVXJsQ2F0ZWdvcnk+IHJldmVyc2VkQ2F0ZWdvcmllcyA9IFJldmVyc2UodXJsQ2F0ZWdvcmllcylcblxuLy8gUmV2ZXJzZWQgbGlzdDogXG4vLyByZXZlcnNlZENhdGVnb3JpZXMifSwgeyJuYW1lIjogIlJldmVyc2UgKFZFQ1RPUjxOZXQuSVA+KSIsICJyZXR1cm5fdHlwZSI6ICJWRUNUT1I8TmV0LklQPiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIGEgcmV2ZXJzZWQgbGlzdC4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiVkVDVE9SOiBUaGUgaW5wdXQgbGlzdCB0byBiZSByZXZlcnNlZC4iLCAiZGVzY3JpcHRpb24iOiAiUmV0dXJuIGEgcmV2ZXJzZWQgbGlzdCIsICJleGFtcGxlX2NvZGUiOiAiLy8gRGVmaW5lIGEgVkVDVE9SIG9mIE5ldC5JUFxuVkVDVE9SPE5ldC5JUD4gaXBBZGRyZXNzZXMgPSBcIjE5Mi4xNjguMS4xXCIsIFwiMTAuMC4wLjFcIiwgXCIxNzIuMTYuMC4xXCJcblxuLy8gUmV2ZXJzZSB0aGUgVkVDVE9SIG9mIE5ldC5JUFxuVkVDVE9SPE5ldC5JUD4gcmV2ZXJzZWRJUEFkZHJlc3NlcyA9IFJldmVyc2UoaXBBZGRyZXNzZXMpXG5cbi8vIE9yaWdpbmFsIElQIEFkZHJlc3NlczogXCIgKyBpcEFkZHJlc3Nlc1xuLy8gUmV2ZXJzZWQgSVAgQWRkcmVzc2VzOiBcIiArIHJldmVyc2VkSVBBZGRyZXNzZXMiLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICIvLyBEZWZpbmUgYSBWRUNUT1Igb2YgTmV0LklQXG5WRUNUT1I8TmV0LklQPiBpcEFkZHJlc3NlcyA9IFwiMTkyLjE2OC4xLjFcIiwgXCIxMC4wLjAuMVwiLCBcIjE3Mi4xNi4wLjFcIlxuXG4vLyBSZXZlcnNlIHRoZSBWRUNUT1Igb2YgTmV0LklQXG5WRUNUT1I8TmV0LklQPiByZXZlcnNlZElQQWRkcmVzc2VzID0gUmV2ZXJzZShpcEFkZHJlc3NlcylcblxuLy8gT3JpZ2luYWwgSVAgQWRkcmVzc2VzOiBcIiArIGlwQWRkcmVzc2VzXG4vLyBSZXZlcnNlZCBJUCBBZGRyZXNzZXM6IFwiICsgcmV2ZXJzZWRJUEFkZHJlc3NlcyJ9LCB7Im5hbWUiOiAiUmV2ZXJzZSAoVkVDVE9SPE5ldC5JUFJhbmdlPikiLCAicmV0dXJuX3R5cGUiOiAiVkVDVE9SPE5ldC5JUFJhbmdlPiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIGEgcmV2ZXJzZWQgbGlzdC4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiVkVDVE9SOiBUaGUgbGlzdCB0byBiZSByZXZlcnNlZC4iLCAiZGVzY3JpcHRpb24iOiAiUmV0dXJuIGEgcmV2ZXJzZWQgbGlzdCIsICJleGFtcGxlX2NvZGUiOiAiVkVDVE9SPE5ldC5JUFJhbmdlPiBpcFJhbmdlcyA9IFtcImV4YW1wbGVfaXBfcmFuZ2VfbGlzdFwiXVxuVkVDVE9SPE5ldC5JUFJhbmdlPiByZXZlcnNlZElQUmFuZ2VzID0gUmV2ZXJzZShpcFJhbmdlcylcblxuLy8gT3JpZ2luYWwgSVAgUmFuZ2VzOiBcIiArIGlwUmFuZ2VzXG4vLyBSZXZlcnNlZCBJUCBSYW5nZXM6IFwiICsgcmV2ZXJzZWRJUFJhbmdlcyIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIlZFQ1RPUjxOZXQuSVBSYW5nZT4gaXBSYW5nZXMgPSBbXCJleGFtcGxlX2lwX3JhbmdlX2xpc3RcIl1cblZFQ1RPUjxOZXQuSVBSYW5nZT4gcmV2ZXJzZWRJUFJhbmdlcyA9IFJldmVyc2UoaXBSYW5nZXMpXG5cbi8vIE9yaWdpbmFsIElQIFJhbmdlczogXCIgKyBpcFJhbmdlc1xuLy8gUmV2ZXJzZWQgSVAgUmFuZ2VzOiBcIiArIHJldmVyc2VkSVBSYW5nZXMifSwgeyJuYW1lIjogIlJldmVyc2UgKFZFQ1RPUjxOVU1CRVI+KSIsICJyZXR1cm5fdHlwZSI6ICJWRUNUT1I8TlVNQkVSPiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIGEgcmV2ZXJzZWQgbGlzdC4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiVkVDVE9SOiBUaGUgbGlzdCB0byBiZSByZXZlcnNlZC4iLCAiZGVzY3JpcHRpb24iOiAiUmV0dXJuIGEgcmV2ZXJzZWQgbGlzdCIsICJleGFtcGxlX2NvZGUiOiAiVkVDVE9SPE5VTUJFUj4gb3JpZ2luYWxOdW1iZXJzID0gMSwgMiwgMywgNCwgNVxuVkVDVE9SPE5VTUJFUj4gcmV2ZXJzZWROdW1iZXJzID0gUmV2ZXJzZShvcmlnaW5hbE51bWJlcnMpXG4vLyBPcmlnaW5hbCBOdW1iZXJzOiBcIiArIG9yaWdpbmFsTnVtYmVyc1xuLy8gUmV2ZXJzZWQgTnVtYmVyczogXCIgKyByZXZlcnNlZE51bWJlcnMiLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICJWRUNUT1I8TlVNQkVSPiBvcmlnaW5hbE51bWJlcnMgPSAxLCAyLCAzLCA0LCA1XG5WRUNUT1I8TlVNQkVSPiByZXZlcnNlZE51bWJlcnMgPSBSZXZlcnNlKG9yaWdpbmFsTnVtYmVycylcbi8vIE9yaWdpbmFsIE51bWJlcnM6IFwiICsgb3JpZ2luYWxOdW1iZXJzXG4vLyBSZXZlcnNlZCBOdW1iZXJzOiBcIiArIHJldmVyc2VkTnVtYmVycyJ9LCB7Im5hbWUiOiAiUmV2ZXJzZSAoVkVDVE9SPFNUUklORz4pIiwgInJldHVybl90eXBlIjogIlZFQ1RPUjxTVFJJTkc+IiwgInJldHVybl9kZXNjIjogIlJldHVybnMgYSByZXZlcnNlZCBsaXN0LiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJWRUNUT1I6IHRoZSBsaXN0IHRvIGJlIHJldmVyc2VkLiIsICJkZXNjcmlwdGlvbiI6ICJSZXR1cm4gYSByZXZlcnNlZCBsaXN0IiwgImV4YW1wbGVfY29kZSI6ICJWRUNUT1I8U1RSSU5HPiBvcmlnaW5hbFZlY3RvciA9IFwiYXBwbGVcIiwgXCJiYW5hbmFcIiwgXCJjaGVycnlcIlxuVkVDVE9SPFNUUklORz4gcmV2ZXJzZWRWZWN0b3IgPSBSZXZlcnNlKG9yaWdpbmFsVmVjdG9yKVxuXG4vLyBPcmlnaW5hbCBWZWN0b3I6IGFwcGxlLCBiYW5hbmEsIGNoZXJyeVxuLy8gUmV2ZXJzZWQgVmVjdG9yOiBjaGVycnksIGJhbmFuYSwgYXBwbGUiLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICJWRUNUT1I8U1RSSU5HPiBvcmlnaW5hbFZlY3RvciA9IFwiYXBwbGVcIiwgXCJiYW5hbmFcIiwgXCJjaGVycnlcIlxuVkVDVE9SPFNUUklORz4gcmV2ZXJzZWRWZWN0b3IgPSBSZXZlcnNlKG9yaWdpbmFsVmVjdG9yKVxuXG4vLyBPcmlnaW5hbCBWZWN0b3I6IGFwcGxlLCBiYW5hbmEsIGNoZXJyeVxuLy8gUmV2ZXJzZWQgVmVjdG9yOiBjaGVycnksIGJhbmFuYSwgYXBwbGUifSwgeyJuYW1lIjogIlJldmVyc2VGaW5kIChTVFJJTkcsIE5VTUJFUiwgU1RSSU5HKSIsICJyZXR1cm5fdHlwZSI6ICJOVU1CRVIiLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyB0aGUgcG9zaXRpb24gKG9yIC0xKSBvZiB0aGUgc2Vjb25kIHN0cmluZyB3aXRoaW4gdGhlIGZpcnN0IHN0cmluZywgc3RhcnRpbmcgdGhlIHNlYXJjaCBmcm9tIGEgc3BlY2lmaWVkIHBvc2l0aW9uLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJTVFJJTkc6IFRoZSBtYWluIFNUUklORyB0byBzZWFyY2ggd2l0aGluOyAgTlVNQkVSOiBUaGUgc3RhcnRpbmcgcG9zaXRpb24gZm9yIHRoZSBzZWFyY2g7ICBTVFJJTkc6IFRoZSBzdWJTVFJJTkcgdG8gZmluZCBpbiB0aGUgbWFpbiBTVFJJTkcuIiwgImRlc2NyaXB0aW9uIjogIlJldHVybnMgdGhlIHBvc2l0aW9uIG9mIHRoZSBzZWNvbmQgU1RSSU5HIGluIHRoZSBmaXJzdCBvbmUgc3RhcnRpbmcgYXQgZ2l2ZW4gcG9zaXRpb24gKG9yIC0xKSIsICJleGFtcGxlX2NvZGUiOiAiU1RSSU5HIG1haW5TdHJpbmcgPSBcIkhlbGxvLCB3b3JsZCEgV2VsY29tZSB0byB0aGUgd29ybGQgb2YgTU9XR0xJLlwiXG5TVFJJTkcgc2VhcmNoU3RyaW5nID0gXCJ3b3JsZFwiXG5OVU1CRVIgc3RhcnRQb3NpdGlvbiA9IDMwXG5OVU1CRVIgcG9zaXRpb24gPSBSZXZlcnNlRmluZChtYWluU3RyaW5nLCBzdGFydFBvc2l0aW9uLCBzZWFyY2hTdHJpbmcpXG5cbi8vIFRoZSBwb3NpdGlvbiBvZiAnc2VhcmNoU3RyaW5nJyBpbiAnbWFpblN0cmluZycgc3RhcnRpbmcgZnJvbSBwb3NpdGlvbiBzdGFydFBvc2l0aW9uIGlzOiBwb3NpdGlvbiIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIlNUUklORyBtYWluU3RyaW5nID0gXCJIZWxsbywgd29ybGQhIFdlbGNvbWUgdG8gdGhlIHdvcmxkIG9mIE1PV0dMSS5cIlxuU1RSSU5HIHNlYXJjaFN0cmluZyA9IFwid29ybGRcIlxuTlVNQkVSIHN0YXJ0UG9zaXRpb24gPSAzMFxuTlVNQkVSIHBvc2l0aW9uID0gUmV2ZXJzZUZpbmQobWFpblN0cmluZywgc3RhcnRQb3NpdGlvbiwgc2VhcmNoU3RyaW5nKVxuXG4vLyBUaGUgcG9zaXRpb24gb2YgJ3NlYXJjaFN0cmluZycgaW4gJ21haW5TdHJpbmcnIHN0YXJ0aW5nIGZyb20gcG9zaXRpb24gc3RhcnRQb3NpdGlvbiBpczogcG9zaXRpb24ifSwgeyJuYW1lIjogIlJldmVyc2VGaW5kIChTVFJJTkcsIFNUUklORykiLCAicmV0dXJuX3R5cGUiOiAiTlVNQkVSIiwgInJldHVybl9kZXNjIjogIlJldHVybnMgdGhlIHBvc2l0aW9uIG9mIHRoZSBzZWNvbmQgc3RyaW5nIHdpdGhpbiB0aGUgZmlyc3Qgc3RyaW5nLCBvciAtMSBpZiBpdCBpcyBub3QgZm91bmQuIiwgInBhcmFtZXRlcl9kZXNjIjogIlNUUklORzogdGhlIFNUUklORyB0byBzZWFyY2ggd2l0aGluOyBTVFJJTkc6IHRoZSBTVFJJTkcgdG8gZmluZC4iLCAiZGVzY3JpcHRpb24iOiAiUmV0dXJucyB0aGUgcG9zaXRpb24gb2YgdGhlIHNlY29uZCBTVFJJTkcgaW4gdGhlIGZpcnN0IG9uZSAob3IgLTEpIiwgImV4YW1wbGVfY29kZSI6ICJTVFJJTkcgbWFpblN0cmluZyA9IFwiSGVsbG8sIHdvcmxkISBXZWxjb21lIHRvIHRoZSB3b3JsZCBvZiBNT1dHTEkuXCJcblNUUklORyBzZWFyY2hTdHJpbmcgPSBcIndvcmxkXCJcblxuTlVNQkVSIHBvc2l0aW9uID0gUmV2ZXJzZUZpbmQobWFpblN0cmluZywgc2VhcmNoU3RyaW5nKVxuXG5JRiBwb3NpdGlvbiAhPSAtMSBUSEVOIHtcbiAgICAvLyBUaGUgbGFzdCBvY2N1cnJlbmNlIG9mICdzZWFyY2hTdHJpbmcnIGlzIGF0IHBvc2l0aW9uOiBwb3NpdGlvblxufSBFTFNFIHtcbiAgICAvLyBUaGUgc3RyaW5nICdzZWFyY2hTdHJpbmcnIHdhcyBub3QgZm91bmQgaW4gdGhlIG1haW4gc3RyaW5nLlxufSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIlNUUklORyBtYWluU3RyaW5nID0gXCJIZWxsbywgd29ybGQhIFdlbGNvbWUgdG8gdGhlIHdvcmxkIG9mIE1PV0dMSS5cIlxuU1RSSU5HIHNlYXJjaFN0cmluZyA9IFwid29ybGRcIlxuXG5OVU1CRVIgcG9zaXRpb24gPSBSZXZlcnNlRmluZChtYWluU3RyaW5nLCBzZWFyY2hTdHJpbmcpXG5cbklGIHBvc2l0aW9uICE9IC0xIFRIRU4ge1xuICAgIC8vIFRoZSBsYXN0IG9jY3VycmVuY2Ugb2YgJ3NlYXJjaFN0cmluZycgaXMgYXQgcG9zaXRpb246IHBvc2l0aW9uXG59IEVMU0Uge1xuICAgIC8vIFRoZSBzdHJpbmcgJ3NlYXJjaFN0cmluZycgd2FzIG5vdCBmb3VuZCBpbiB0aGUgbWFpbiBzdHJpbmcuXG59In0sIHsibmFtZSI6ICJSb3V0aW5lTmFtZSAoKSIsICJyZXR1cm5fdHlwZSI6ICJTVFJJTkciLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyB0aGUgbmFtZSBvZiB0aGUgY3VycmVudGx5IGV4ZWN1dGluZyByb3V0aW5lIGFzIGEgc3RyaW5nLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJOb25lIiwgImRlc2NyaXB0aW9uIjogIlJldHVybnMgdGhlIG5hbWUgb2YgdGhlIGN1cnJlbnQgcm91dGluZSIsICJleGFtcGxlX2NvZGUiOiAiLy8gUm91dGluZU5hbWUgaGFzIGJlZW4gdHJpZ2dlcmVkXG4vLyBBZGQgeW91ciBjb2RlIGhlcmUiLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICIvLyBSb3V0aW5lTmFtZSBoYXMgYmVlbiB0cmlnZ2VyZWRcbi8vIEFkZCB5b3VyIGNvZGUgaGVyZSJ9LCB7Im5hbWUiOiAiU2V0IChNQVA8U1RSSU5HLCBTVFJJTkc+LCBTVFJJTkcsIFNUUklORykiLCAicmV0dXJuX3R5cGUiOiAiTUFQPFNUUklORyxTVFJJTkc+IiwgInJldHVybl9kZXNjIjogIlJldHVybnMgdGhlIG1vZGlmaWVkIG1hcC4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiTUFQPFNUUklORywgU1RSSU5HPjogbWFwIHRvIG1vZGlmeTsgU1RSSU5HOiBrZXkgdG8gbW9kaWZ5OyBTVFJJTkc6IHZhbHVlIHRvIHNldC4iLCAiZGVzY3JpcHRpb24iOiAiQWRkIGEgdmFsdWUta2V5IHBhaXIgdG8gdGhlIG1hcCIsICJleGFtcGxlX2NvZGUiOiAiLy8gSW5pdGlhbGl6ZSBhIE1BUDxTVFJJTkcsU1RSSU5HPlxuTUFQPFNUUklORyxTVFJJTkc+IGV4YW1wbGVNYXBcblxuLy8gU2V0IGEga2V5LXZhbHVlIHBhaXIgaW4gdGhlIG1hcFxuU2V0KGV4YW1wbGVNYXAsIFwidXNlcm5hbWVcIiwgXCJqb2huX2RvZVwiKVxuXG4vLyBTZXQgYW5vdGhlciBrZXktdmFsdWUgcGFpciBpbiB0aGUgbWFwXG5TZXQoZXhhbXBsZU1hcCwgXCJlbWFpbFwiLCBcImpvaG5fZG9lQGV4YW1wbGUuY29tXCIpXG5cbi8vIE1hcCBjb250ZW50czogXCIgKyBleGFtcGxlTWFwIiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiLy8gSW5pdGlhbGl6ZSBhIE1BUDxTVFJJTkcsU1RSSU5HPlxuTUFQPFNUUklORyxTVFJJTkc+IGV4YW1wbGVNYXBcblxuLy8gU2V0IGEga2V5LXZhbHVlIHBhaXIgaW4gdGhlIG1hcFxuU2V0KGV4YW1wbGVNYXAsIFwidXNlcm5hbWVcIiwgXCJqb2huX2RvZVwiKVxuXG4vLyBTZXQgYW5vdGhlciBrZXktdmFsdWUgcGFpciBpbiB0aGUgbWFwXG5TZXQoZXhhbXBsZU1hcCwgXCJlbWFpbFwiLCBcImpvaG5fZG9lQGV4YW1wbGUuY29tXCIpXG5cbi8vIE1hcCBjb250ZW50czogXCIgKyBleGFtcGxlTWFwIn0sIHsibmFtZSI6ICJTZXQgKFJlZ0V4SlNpLkxpc3QsIE5VTUJFUiwgUmVnRXhKU2kpIiwgInJldHVybl90eXBlIjogIlJlZ0V4SlNpLkxpc3QiLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyB0aGUgbW9kaWZpZWQgbGlzdCB3aXRoIHRoZSBuZXcgZWxlbWVudCBpbnNlcnRlZCBhdCB0aGUgc3BlY2lmaWVkIHBvc2l0aW9uLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJSZWdFeEpTaS5MaXN0OiB0aGUgbGlzdCB3aGVyZSBhbiBlbGVtZW50IHdpbGwgYmUgaW5zZXJ0ZWQ7IE5VTUJFUjogdGhlIHBvc2l0aW9uIGF0IHdoaWNoIHRoZSBlbGVtZW50IHdpbGwgYmUgaW5zZXJ0ZWQ7IFJlZ0V4SlNpOiB0aGUgZWxlbWVudCB0byBiZSBpbnNlcnRlZCBpbnRvIHRoZSBsaXN0LiIsICJkZXNjcmlwdGlvbiI6ICJJbnNlcnQgYSBsaXN0IGVsZW1lbnQgYXQgdGhlIGdpdmVuIHBvc2l0aW9uIiwgImV4YW1wbGVfY29kZSI6ICIvLyBDcmVhdGUgYSBuZXcgUmVnRXhKU2kgb2JqZWN0XG5SZWdFeEpTaSByZWdleDEgPSBSZWdFeEpTaShcImV4YW1wbGVQYXR0ZXJuMVwiKVxuUmVnRXhKU2kgcmVnZXgyID0gUmVnRXhKU2koXCJleGFtcGxlUGF0dGVybjJcIilcblxuLy8gQ3JlYXRlIGEgbmV3IFJlZ0V4SlNpLkxpc3Qgb2JqZWN0XG5SZWdFeEpTaS5MaXN0IHJlZ2V4TGlzdCA9IFJlZ0V4SlNpLkxpc3QoKVxuXG4vLyBBZGQgdGhlIGZpcnN0IHJlZ2V4IHRvIHRoZSBsaXN0XG5yZWdleExpc3QuQWRkKHJlZ2V4MSlcblxuLy8gSHlwb3RoZXRpY2FsIFNldCBmdW5jdGlvbiB0byByZXBsYWNlIHRoZSBmaXJzdCByZWdleCB3aXRoIHRoZSBzZWNvbmQgb25lXG5TZXQocmVnZXhMaXN0LCAwLCByZWdleDIpXG5cbi8vIEZpcnN0IHBhdHRlcm4gaW4gbGlzdDogXCIgKyByZWdleExpc3QuR2V0KDApLlBhdHRlcm4oKSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIi8vIENyZWF0ZSBhIG5ldyBSZWdFeEpTaSBvYmplY3RcblJlZ0V4SlNpIHJlZ2V4MSA9IFJlZ0V4SlNpKFwiZXhhbXBsZVBhdHRlcm4xXCIpXG5SZWdFeEpTaSByZWdleDIgPSBSZWdFeEpTaShcImV4YW1wbGVQYXR0ZXJuMlwiKVxuXG4vLyBDcmVhdGUgYSBuZXcgUmVnRXhKU2kuTGlzdCBvYmplY3RcblJlZ0V4SlNpLkxpc3QgcmVnZXhMaXN0ID0gUmVnRXhKU2kuTGlzdCgpXG5cbi8vIEFkZCB0aGUgZmlyc3QgcmVnZXggdG8gdGhlIGxpc3RcbnJlZ2V4TGlzdC5BZGQocmVnZXgxKVxuXG4vLyBIeXBvdGhldGljYWwgU2V0IGZ1bmN0aW9uIHRvIHJlcGxhY2UgdGhlIGZpcnN0IHJlZ2V4IHdpdGggdGhlIHNlY29uZCBvbmVcblNldChyZWdleExpc3QsIDAsIHJlZ2V4MilcblxuLy8gRmlyc3QgcGF0dGVybiBpbiBsaXN0OiBcIiArIHJlZ2V4TGlzdC5HZXQoMCkuUGF0dGVybigpIn0sIHsibmFtZSI6ICJTaXplIChNQVA8U1RSSU5HLCBTVFJJTkc+KSIsICJyZXR1cm5fdHlwZSI6ICJOVU1CRVIiLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyB0aGUgbnVtYmVyIG9mIGtleXMgaW4gdGhlIG1hcC4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiTUFQPFNUUklORywgU1RSSU5HPjogbWFwIHRvIGNvdW50IGVsZW1lbnRzLiIsICJkZXNjcmlwdGlvbiI6ICJGdW5jdGlvbnM6IFJldHVybnMgdGhlIE5VTUJFUiBvZiBtYXAga2V5cyIsICJleGFtcGxlX2NvZGUiOiAiLy8gQ3JlYXRlIGFuIGVtcHR5IG1hcFxuTUFQPFNUUklORywgU1RSSU5HPiBteU1hcCA9IENyZWF0ZU1hcFN0cmluZ1RvU3RyaW5nKClcblxuLy8gQWRkIHNvbWUga2V5LXZhbHVlIHBhaXJzIHRvIHRoZSBtYXBcbm15TWFwID0gU2V0KG15TWFwLCBcImtleTFcIiwgXCJ2YWx1ZTFcIilcbm15TWFwID0gU2V0KG15TWFwLCBcImtleTJcIiwgXCJ2YWx1ZTJcIilcbm15TWFwID0gU2V0KG15TWFwLCBcImtleTNcIiwgXCJ2YWx1ZTNcIilcblxuLy8gR2V0IHRoZSBzaXplIG9mIHRoZSBtYXBcbk5VTUJFUiBtYXBTaXplID0gU2l6ZShteU1hcClcblxuLy8gVGhlIHNpemUgb2YgdGhlIG1hcCBpczogbWFwU2l6ZSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIi8vIENyZWF0ZSBhbiBlbXB0eSBtYXBcbk1BUDxTVFJJTkcsIFNUUklORz4gbXlNYXAgPSBDcmVhdGVNYXBTdHJpbmdUb1N0cmluZygpXG5cbi8vIEFkZCBzb21lIGtleS12YWx1ZSBwYWlycyB0byB0aGUgbWFwXG5teU1hcCA9IFNldChteU1hcCwgXCJrZXkxXCIsIFwidmFsdWUxXCIpXG5teU1hcCA9IFNldChteU1hcCwgXCJrZXkyXCIsIFwidmFsdWUyXCIpXG5teU1hcCA9IFNldChteU1hcCwgXCJrZXkzXCIsIFwidmFsdWUzXCIpXG5cbi8vIEdldCB0aGUgc2l6ZSBvZiB0aGUgbWFwXG5OVU1CRVIgbWFwU2l6ZSA9IFNpemUobXlNYXApXG5cbi8vIFRoZSBzaXplIG9mIHRoZSBtYXAgaXM6IG1hcFNpemUifSwgeyJuYW1lIjogIlNpemUgKE1XRy5DZXJ0aWZpY2F0ZUF1dGhvcml0eUxpc3QpIiwgInJldHVybl90eXBlIjogIk5VTUJFUiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIHRoZSBudW1iZXIgb2YgZWxlbWVudHMgaW4gdGhlIGdpdmVuIGxpc3QuIiwgInBhcmFtZXRlcl9kZXNjIjogIk1XRy5DZXJ0aWZpY2F0ZUF1dGhvcml0eUxpc3Q6IGxpc3QgdG8gY291bnQgZWxlbWVudHMuIiwgImRlc2NyaXB0aW9uIjogIlJldHVybiBhIGNvdW50IG9mIGxpc3QgZWxlbWVudHMiLCAiZXhhbXBsZV9jb2RlIjogIi8vIFJldHJpZXZlIHRoZSBjZXJ0aWZpY2F0ZSBhdXRob3JpdHkgbGlzdCBieSBuYW1lXG5NV0cuQ2VydGlmaWNhdGVBdXRob3JpdHlMaXN0IGNhTGlzdCA9IE1XRy5DQUxpc3RCeU5hbWUoXCJFeGFtcGxlQ0FMaXN0XCIpXG5cbi8vIEdldCB0aGUgc2l6ZSBvZiB0aGUgY2VydGlmaWNhdGUgYXV0aG9yaXR5IGxpc3Rcbk5VTUJFUiBjYUxpc3RTaXplID0gU2l6ZShjYUxpc3QpXG5cbi8vIFRoZSBzaXplIG9mIHRoZSBjZXJ0aWZpY2F0ZSBhdXRob3JpdHkgbGlzdCBpczogXG4vLyBjYUxpc3RTaXplIiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiLy8gUmV0cmlldmUgdGhlIGNlcnRpZmljYXRlIGF1dGhvcml0eSBsaXN0IGJ5IG5hbWVcbk1XRy5DZXJ0aWZpY2F0ZUF1dGhvcml0eUxpc3QgY2FMaXN0ID0gTVdHLkNBTGlzdEJ5TmFtZShcIkV4YW1wbGVDQUxpc3RcIilcblxuLy8gR2V0IHRoZSBzaXplIG9mIHRoZSBjZXJ0aWZpY2F0ZSBhdXRob3JpdHkgbGlzdFxuTlVNQkVSIGNhTGlzdFNpemUgPSBTaXplKGNhTGlzdClcblxuLy8gVGhlIHNpemUgb2YgdGhlIGNlcnRpZmljYXRlIGF1dGhvcml0eSBsaXN0IGlzOiBcbi8vIGNhTGlzdFNpemUifSwgeyJuYW1lIjogIlNpemUgKFJlZ0V4SlNpLkxpc3QpIiwgInJldHVybl90eXBlIjogIk5VTUJFUiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIHRoZSBudW1iZXIgb2YgZWxlbWVudHMgaW4gdGhlIGdpdmVuIGxpc3QuIiwgInBhcmFtZXRlcl9kZXNjIjogIlJlZ0V4SlNpLkxpc3Q6IHRoZSBsaXN0IHRvIGJlIGNvdW50ZWQuIiwgImRlc2NyaXB0aW9uIjogIlJldHVybiBhIGNvdW50IG9mIGxpc3QgZWxlbWVudHMiLCAiZXhhbXBsZV9jb2RlIjogIi8vIEluaXRpYWxpemUgYSBSZWdFeEpTaS5MaXN0XG5SZWdFeEpTaS5MaXN0IG15UmVnRXhMaXN0ID0gUmVnRXhKU2kuTGlzdCgpXG5cbi8vIEFkZCBzb21lIHJlZ3VsYXIgZXhwcmVzc2lvbnMgdG8gdGhlIGxpc3Rcbm15UmVnRXhMaXN0LkFkZChSZWdFeEpTaShcInJlZ2V4MVwiKSlcbm15UmVnRXhMaXN0LkFkZChSZWdFeEpTaShcInJlZ2V4MlwiKSlcbm15UmVnRXhMaXN0LkFkZChSZWdFeEpTaShcInJlZ2V4M1wiKSlcblxuLy8gR2V0IHRoZSBzaXplIG9mIHRoZSBsaXN0XG5OVU1CRVIgbGlzdFNpemUgPSBTaXplKG15UmVnRXhMaXN0KVxuXG4vLyBUaGUgc2l6ZSBvZiB0aGUgUmVnRXggbGlzdCBpczogbGlzdFNpemUiLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICIvLyBJbml0aWFsaXplIGEgUmVnRXhKU2kuTGlzdFxuUmVnRXhKU2kuTGlzdCBteVJlZ0V4TGlzdCA9IFJlZ0V4SlNpLkxpc3QoKVxuXG4vLyBBZGQgc29tZSByZWd1bGFyIGV4cHJlc3Npb25zIHRvIHRoZSBsaXN0XG5teVJlZ0V4TGlzdC5BZGQoUmVnRXhKU2koXCJyZWdleDFcIikpXG5teVJlZ0V4TGlzdC5BZGQoUmVnRXhKU2koXCJyZWdleDJcIikpXG5teVJlZ0V4TGlzdC5BZGQoUmVnRXhKU2koXCJyZWdleDNcIikpXG5cbi8vIEdldCB0aGUgc2l6ZSBvZiB0aGUgbGlzdFxuTlVNQkVSIGxpc3RTaXplID0gU2l6ZShteVJlZ0V4TGlzdClcblxuLy8gVGhlIHNpemUgb2YgdGhlIFJlZ0V4IGxpc3QgaXM6IGxpc3RTaXplIn0sIHsibmFtZSI6ICJTbGljZSAoU1RSSU5HLCBOVU1CRVIpIiwgInJldHVybl90eXBlIjogIlNUUklORyIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIGEgc3Vic3RyaW5nIG9mIHRoZSBnaXZlbiBzdHJpbmcgc3RhcnRpbmcgZnJvbSB0aGUgc3BlY2lmaWVkIHBvc2l0aW9uLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJTVFJJTkc6IHRoZSBpbnB1dCBTVFJJTkcgdG8gc2xpY2U7IE5VTUJFUjogdGhlIHN0YXJ0aW5nIHBvc2l0aW9uLiIsICJkZXNjcmlwdGlvbiI6ICJSZXR1cm5zIHBhcnQgb2YgdGhlIFNUUklORyBzdGFydGluZyBhdCB0aGUgZ2l2ZW4gcG9zaXRpb24iLCAiZXhhbXBsZV9jb2RlIjogIlNUUklORyBvcmlnaW5hbFN0cmluZyA9IFwiSGVsbG8sIFdvcmxkIVwiXG5OVU1CRVIgc3RhcnRQb3NpdGlvbiA9IDdcblxuLy8gVXNlIHRoZSBTbGljZSBmdW5jdGlvbiB0byBnZXQgYSBzdWJzdHJpbmcgc3RhcnRpbmcgZnJvbSB0aGUgc3BlY2lmaWVkIHBvc2l0aW9uXG5TVFJJTkcgcmVzdWx0ID0gU2xpY2Uob3JpZ2luYWxTdHJpbmcsIHN0YXJ0UG9zaXRpb24pXG5cbi8vIFByaW50IHRoZSByZXN1bHQgdG8gdGhlIGNvbnNvbGVcbi8vIHJlc3VsdCIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIlNUUklORyBvcmlnaW5hbFN0cmluZyA9IFwiSGVsbG8sIFdvcmxkIVwiXG5OVU1CRVIgc3RhcnRQb3NpdGlvbiA9IDdcblxuLy8gVXNlIHRoZSBTbGljZSBmdW5jdGlvbiB0byBnZXQgYSBzdWJzdHJpbmcgc3RhcnRpbmcgZnJvbSB0aGUgc3BlY2lmaWVkIHBvc2l0aW9uXG5TVFJJTkcgcmVzdWx0ID0gU2xpY2Uob3JpZ2luYWxTdHJpbmcsIHN0YXJ0UG9zaXRpb24pXG5cbi8vIFByaW50IHRoZSByZXN1bHQgdG8gdGhlIGNvbnNvbGVcbi8vIHJlc3VsdCJ9LCB7Im5hbWUiOiAiU2xpY2UgKFNUUklORywgTlVNQkVSLCBOVU1CRVIpIiwgInJldHVybl90eXBlIjogIlNUUklORyIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIGEgc3Vic3RyaW5nIHRoYXQgYmVnaW5zIGF0IHRoZSBzcGVjaWZpZWQgc3RhcnRpbmcgcG9zaXRpb24gYW5kIGhhcyB0aGUgc3BlY2lmaWVkIGxlbmd0aC4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiU1RSSU5HOiB0aGUgU1RSSU5HIHRvIGV4dHJhY3QgZnJvbTsgTlVNQkVSOiB0aGUgc3RhcnRpbmcgcG9zaXRpb247IE5VTUJFUjogdGhlIGxlbmd0aCBvZiB0aGUgc3ViU1RSSU5HLiIsICJkZXNjcmlwdGlvbiI6ICJSZXR1cm5zIHBhcnQgb2YgdGhlIFNUUklORyBzdGFydGluZyBhdCB0aGUgZ2l2ZW4gcG9zaXRpb24gd2l0aCBnaXZlbiBsZW5ndGgiLCAiZXhhbXBsZV9jb2RlIjogIlNUUklORyBvcmlnaW5hbFN0cmluZyA9IFwiSGVsbG8sIE1PV0dMSSFcIlxuTlVNQkVSIHN0YXJ0UG9zaXRpb24gPSA3XG5OVU1CRVIgbGVuZ3RoID0gNlxuXG5TVFJJTkcgc2xpY2VkU3RyaW5nID0gU2xpY2Uob3JpZ2luYWxTdHJpbmcsIHN0YXJ0UG9zaXRpb24sIGxlbmd0aClcbi8vIFRoaXMgd2lsbCBwcmludCBcIk1PV0dMSVwiIiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiU1RSSU5HIG9yaWdpbmFsU3RyaW5nID0gXCJIZWxsbywgTU9XR0xJIVwiXG5OVU1CRVIgc3RhcnRQb3NpdGlvbiA9IDdcbk5VTUJFUiBsZW5ndGggPSA2XG5cblNUUklORyBzbGljZWRTdHJpbmcgPSBTbGljZShvcmlnaW5hbFN0cmluZywgc3RhcnRQb3NpdGlvbiwgbGVuZ3RoKVxuLy8gVGhpcyB3aWxsIHByaW50IFwiTU9XR0xJXCIifSwgeyJuYW1lIjogIlNwbGl0IChTVFJJTkcsIFNUUklORykiLCAicmV0dXJuX3R5cGUiOiAiVkVDVE9SPFNUUklORz4iLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyBhIHZlY3RvciBjb250YWluaW5nIHN1YnN0cmluZ3Mgb2YgdGhlIG9yaWdpbmFsIHN0cmluZywgZGl2aWRlZCBieSB0aGUgc3BlY2lmaWVkIGRlbGltaXRlci4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiU1RSSU5HOiB0aGUgaW5wdXQgU1RSSU5HIHRvIGJlIHNwbGl0OyBTVFJJTkc6IHRoZSBkZWxpbWl0ZXIuIiwgImRlc2NyaXB0aW9uIjogIlNwbGl0IGEgU1RSSU5HIGJ5IGdpdmVuIGRlbGltaXRlciBpbnRvIGEgU1RSSU5HIGxpc3QiLCAiZXhhbXBsZV9jb2RlIjogIlNUUklORyBpbnB1dFN0cmluZyA9IFwiYXBwbGUsYmFuYW5hLGNoZXJyeVwiXG5TVFJJTkcgZGVsaW1pdGVyID0gXCIsXCJcblxuVkVDVE9SPFNUUklORz4gcmVzdWx0ID0gU3BsaXQoaW5wdXRTdHJpbmcsIGRlbGltaXRlcilcblxuLy8gVGhlIHNwbGl0IHJlc3VsdCBpczogKyByZXN1bHQiLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICJTVFJJTkcgaW5wdXRTdHJpbmcgPSBcImFwcGxlLGJhbmFuYSxjaGVycnlcIlxuU1RSSU5HIGRlbGltaXRlciA9IFwiLFwiXG5cblZFQ1RPUjxTVFJJTkc+IHJlc3VsdCA9IFNwbGl0KGlucHV0U3RyaW5nLCBkZWxpbWl0ZXIpXG5cbi8vIFRoZSBzcGxpdCByZXN1bHQgaXM6ICsgcmVzdWx0In0sIHsibmFtZSI6ICJTcGxpdCAoU1RSSU5HLCBTVFJJTkcsIEJPT0xFQU4pIiwgInJldHVybl90eXBlIjogIlZFQ1RPUjxTVFJJTkc+IiwgInJldHVybl9kZXNjIjogIlJldHVybnMgYSB2ZWN0b3Igb2Ygc3Vic3RyaW5ncyBzcGxpdCBieSB0aGUgc3BlY2lmaWVkIGRlbGltaXRlciBmcm9tIHRoZSBpbnB1dCBzdHJpbmcsIHdpdGggdGhlIGJvb2xlYW4gaW5kaWNhdGluZyBkZWxpbWl0ZXIgdHlwZS4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiU1RSSU5HOiBUaGUgaW5wdXQgU1RSSU5HIHRvIHNwbGl0LlNUUklORzogVGhlIGRlbGltaXRlciB1c2VkIGZvciBzcGxpdHRpbmcuQk9PTEVBTjogU3BlY2lmaWVzIGlmIHRoZSBkZWxpbWl0ZXIgaXMgYSBzaW5nbGUgY2hhcmFjdGVyIChUUlVFKSBvciBhIFNUUklORyAoRkFMU0UpLiIsICJkZXNjcmlwdGlvbiI6ICJTcGxpdCBhIFNUUklORyBieSBnaXZlbiBkZWxpbWl0ZXIgaW50byBhIFNUUklORyBsaXN0LiBUaGUgQk9PTEVBTiBkZXRlcm1pbmVzIGlmIGRlbGltaXRlciBjb250YWlucyBzaW5nbGUgY2hhciBkZWxpbWl0ZXJzIG9yIGEgU1RSSU5HIiwgImV4YW1wbGVfY29kZSI6ICJTVFJJTkcgaW5wdXRTdHJpbmcgPSBcImFwcGxlLGJhbmFuYSxvcmFuZ2UsZ3JhcGVcIlxuU1RSSU5HIGRlbGltaXRlciA9IFwiLFwiXG5CT09MRUFOIGlzU2luZ2xlQ2hhckRlbGltaXRlciA9IFRSVUVcblxuVkVDVE9SPFNUUklORz4gcmVzdWx0ID0gU3BsaXQoaW5wdXRTdHJpbmcsIGRlbGltaXRlciwgaXNTaW5nbGVDaGFyRGVsaW1pdGVyKVxuXG4vLyBTcGxpdCByZXN1bHQ6IFwiICsgcmVzdWx0IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiU1RSSU5HIGlucHV0U3RyaW5nID0gXCJhcHBsZSxiYW5hbmEsb3JhbmdlLGdyYXBlXCJcblNUUklORyBkZWxpbWl0ZXIgPSBcIixcIlxuQk9PTEVBTiBpc1NpbmdsZUNoYXJEZWxpbWl0ZXIgPSBUUlVFXG5cblZFQ1RPUjxTVFJJTkc+IHJlc3VsdCA9IFNwbGl0KGlucHV0U3RyaW5nLCBkZWxpbWl0ZXIsIGlzU2luZ2xlQ2hhckRlbGltaXRlcilcblxuLy8gU3BsaXQgcmVzdWx0OiBcIiArIHJlc3VsdCJ9LCB7Im5hbWUiOiAiU3BsaXQgKFNUUklORywgU1RSSU5HLCBTVFJJTkcpIiwgInJldHVybl90eXBlIjogIlZFQ1RPUjxTVFJJTkc+IiwgInJldHVybl9kZXNjIjogIlJldHVybnMgYSB2ZWN0b3Igb2Ygc3Vic3RyaW5ncyBvYnRhaW5lZCBieSBzcGxpdHRpbmcgdGhlIGlucHV0IHN0cmluZyBhbmQgdHJpbW1pbmcgc3BlY2lmaWVkIGNoYXJhY3RlcnMuIiwgInBhcmFtZXRlcl9kZXNjIjogIlNUUklORzogdGhlIGlucHV0IFNUUklORyB0byBiZSBzcGxpdDsgU1RSSU5HOiB0aGUgZGVsaW1pdGVyIHVzZWQgdG8gc3BsaXQgdGhlIGlucHV0OyBTVFJJTkc6IHRoZSBjaGFyYWN0ZXJzIHRvIHRyaW0gZnJvbSB0aGUgcmVzdWx0aW5nIHN1YlNUUklOR3MuIiwgImRlc2NyaXB0aW9uIjogIlNwbGl0IGEgU1RSSU5HIGludG8gYSBTVFJJTkcgbGlzdCBhbmQgdHJpbSBjaGFyYWN0ZXJzIGRlZmluZWQgYnkgdGhlIGxhc3QgYXJndW1lbnQiLCAiZXhhbXBsZV9jb2RlIjogIlNUUklORyBpbnB1dFN0cmluZyA9IFwiYXBwbGUsIGJhbmFuYSwgY2hlcnJ5LCBkYXRlXCJcblNUUklORyBkZWxpbWl0ZXIgPSBcIixcIlxuU1RSSU5HIHRyaW1DaGFycyA9IFwiIFwiXG5cblZFQ1RPUjxTVFJJTkc+IHJlc3VsdCA9IFNwbGl0KGlucHV0U3RyaW5nLCBkZWxpbWl0ZXIsIHRyaW1DaGFycylcblxuLy8gXCJTcGxpdCByZXN1bHQ6IFwiICsgcmVzdWx0IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiU1RSSU5HIGlucHV0U3RyaW5nID0gXCJhcHBsZSwgYmFuYW5hLCBjaGVycnksIGRhdGVcIlxuU1RSSU5HIGRlbGltaXRlciA9IFwiLFwiXG5TVFJJTkcgdHJpbUNoYXJzID0gXCIgXCJcblxuVkVDVE9SPFNUUklORz4gcmVzdWx0ID0gU3BsaXQoaW5wdXRTdHJpbmcsIGRlbGltaXRlciwgdHJpbUNoYXJzKVxuXG4vLyBcIlNwbGl0IHJlc3VsdDogXCIgKyByZXN1bHQifSwgeyJuYW1lIjogIlN0YXJ0c1dpdGggKFNUUklORywgU1RSSU5HKSIsICJyZXR1cm5fdHlwZSI6ICJCT09MRUFOIiwgInJldHVybl9kZXNjIjogIlJldHVybnNgVFJVRWBpZiB0aGUgZmlyc3QgYFNUUklOR2AgYmVnaW5zIHdpdGggdGhlIHNlY29uZCBgU1RSSU5HYC4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiU1RSSU5HOiB0aGUgbWFpbiBTVFJJTkcgdG8gY2hlY2s7IFNUUklORzogdGhlIHN1YlNUUklORyB0byBjaGVjayBmb3IuIiwgImRlc2NyaXB0aW9uIjogIlJldHVybnMgVFJVRSBpZiB0aGUgU1RSSU5HIHN0YXJ0cyB3aXRoIHRoZSBvdGhlciBTVFJJTkciLCAiZXhhbXBsZV9jb2RlIjogIk1XRy5VUkwgY3VycmVudFVybCA9IE1XRy5VcmwoKVxuU1RSSU5HIHVybFN0cmluZyA9IGN1cnJlbnRVcmwuVG9TdHJpbmcoKVxuXG5JRiBTdGFydHNXaXRoKHVybFN0cmluZywgXCJodHRwczovL1wiKSBUSEVOIHtcbiAgICAvLyBUaGUgVVJMIHN0YXJ0cyB3aXRoICdodHRwczovLydcbn0gRUxTRSB7XG4gICAgLy8gVGhlIFVSTCBkb2VzIG5vdCBzdGFydCB3aXRoICdodHRwczovLydcbn0iLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICJNV0cuVVJMIGN1cnJlbnRVcmwgPSBNV0cuVXJsKClcblNUUklORyB1cmxTdHJpbmcgPSBjdXJyZW50VXJsLlRvU3RyaW5nKClcblxuSUYgU3RhcnRzV2l0aCh1cmxTdHJpbmcsIFwiaHR0cHM6Ly9cIikgVEhFTiB7XG4gICAgLy8gVGhlIFVSTCBzdGFydHMgd2l0aCAnaHR0cHM6Ly8nXG59IEVMU0Uge1xuICAgIC8vIFRoZSBVUkwgZG9lcyBub3Qgc3RhcnQgd2l0aCAnaHR0cHM6Ly8nXG59In0sIHsibmFtZSI6ICJTdGFydHNXaXRoQ2FzZUluc2Vuc2l0aXZlIChTVFJJTkcsIFNUUklORykiLCAicmV0dXJuX3R5cGUiOiAiQk9PTEVBTiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIHRydWUgaWYgdGhlIGZpcnN0IHN0cmluZyBzdGFydHMgd2l0aCB0aGUgc2Vjb25kIHN0cmluZywgaWdub3JpbmcgY2FzZS4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiU1RSSU5HOiB0aGUgbWFpbiBTVFJJTkcgdG8gYmUgY2hlY2tlZDsgU1RSSU5HOiB0aGUgcHJlZml4IFNUUklORyB0byBjaGVjayBhZ2FpbnN0LiIsICJkZXNjcmlwdGlvbiI6ICJSZXR1cm5zIFRSVUUgaWYgdGhlIFNUUklORyBzdGFydHMgKGNhc2UgaW5zZW5zaXRpdmUpIHdpdGggdGhlIG90aGVyIFNUUklORyIsICJleGFtcGxlX2NvZGUiOiAiTVdHLlVSTCBjdXJyZW50VXJsID0gTVdHLlVybCgpXG5TVFJJTkcgdXJsU3RyaW5nID0gY3VycmVudFVybC5Ub1N0cmluZygpXG5cbklGIFN0YXJ0c1dpdGhDYXNlSW5zZW5zaXRpdmUodXJsU3RyaW5nLCBcImh0dHBzOi8vZXhhbXBsZS5jb21cIikgVEhFTiB7XG4gICAgLy8gVGhlIFVSTCBzdGFydHMgd2l0aCAnaHR0cHM6Ly9leGFtcGxlLmNvbScgKGNhc2UgaW5zZW5zaXRpdmUpLlxuICAgIE1XRy5BbGxvdyhcIlVSTCBzdGFydHMgd2l0aCBleGFtcGxlLmNvbVwiKVxufSBFTFNFIHtcbiAgICAvLyBUaGUgVVJMIGRvZXMgbm90IHN0YXJ0IHdpdGggJ2h0dHBzOi8vZXhhbXBsZS5jb20nLlxuICAgIE1XRy5CbG9jayhcIlVSTCBkb2VzIG5vdCBzdGFydCB3aXRoIGV4YW1wbGUuY29tXCIpXG59IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiTVdHLlVSTCBjdXJyZW50VXJsID0gTVdHLlVybCgpXG5TVFJJTkcgdXJsU3RyaW5nID0gY3VycmVudFVybC5Ub1N0cmluZygpXG5cbklGIFN0YXJ0c1dpdGhDYXNlSW5zZW5zaXRpdmUodXJsU3RyaW5nLCBcImh0dHBzOi8vZXhhbXBsZS5jb21cIikgVEhFTiB7XG4gICAgLy8gVGhlIFVSTCBzdGFydHMgd2l0aCAnaHR0cHM6Ly9leGFtcGxlLmNvbScgKGNhc2UgaW5zZW5zaXRpdmUpLlxuICAgIE1XRy5BbGxvdyhcIlVSTCBzdGFydHMgd2l0aCBleGFtcGxlLmNvbVwiKVxufSBFTFNFIHtcbiAgICAvLyBUaGUgVVJMIGRvZXMgbm90IHN0YXJ0IHdpdGggJ2h0dHBzOi8vZXhhbXBsZS5jb20nLlxuICAgIE1XRy5CbG9jayhcIlVSTCBkb2VzIG5vdCBzdGFydCB3aXRoIGV4YW1wbGUuY29tXCIpXG59In0sIHsibmFtZSI6ICJTdG9wV2F0Y2guR2V0TVMgKFNUUklORykiLCAicmV0dXJuX3R5cGUiOiAiTlVNQkVSIiwgInJldHVybl9kZXNjIjogIlJldHVybnMgdGhlIGVsYXBzZWQgdGltZSBpbiBtaWxsaXNlY29uZHMgYXMgYSBudW1iZXIgZnJvbSB0aGUgc3RvcHdhdGNoLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJTVFJJTkc6IFRoZSBpZGVudGlmaWVyIG9mIHRoZSBzdG9wd2F0Y2ggZnJvbSB3aGljaCB0byBnZXQgdGhlIG1pbGxpc2Vjb25kcy4iLCAiZGVzY3JpcHRpb24iOiAiR2V0IG1pbGxpc2Vjb25kcyBmcm9tIHRoZSBzdG9wIHdhdGNoIiwgImV4YW1wbGVfY29kZSI6ICIvLyBTdGFydCB0aGUgc3RvcHdhdGNoIHdpdGggYW4gaWRlbnRpZmllciBcImV4YW1wbGVXYXRjaFwiXG5TdG9wV2F0Y2guU3RhcnQoXCJleGFtcGxlV2F0Y2hcIilcblxuLy8gUGVyZm9ybSBzb21lIG9wZXJhdGlvbnNcbi8vIEZvciBkZW1vbnN0cmF0aW9uLCB3ZSdsbCBqdXN0IHVzZSBhIERFQlVHIHN0YXRlbWVudFxuLy8gUGVyZm9ybWluZyBzb21lIG9wZXJhdGlvbnMuLi5cblxuLy8gR2V0IHRoZSBlbGFwc2VkIHRpbWUgaW4gbWlsbGlzZWNvbmRzIGZyb20gdGhlIHN0b3B3YXRjaFxuTlVNQkVSIGVsYXBzZWRUaW1lID0gU3RvcFdhdGNoLkdldE1TKFwiZXhhbXBsZVdhdGNoXCIpXG5cbi8vIFByaW50IHRoZSBlbGFwc2VkIHRpbWUgdG8gdGhlIGNvbnNvbGVcbi8vIEVsYXBzZWQgdGltZSBpbiBtaWxsaXNlY29uZHM6IFwiICsgZWxhcHNlZFRpbWUiLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICIvLyBTdGFydCB0aGUgc3RvcHdhdGNoIHdpdGggYW4gaWRlbnRpZmllciBcImV4YW1wbGVXYXRjaFwiXG5TdG9wV2F0Y2guU3RhcnQoXCJleGFtcGxlV2F0Y2hcIilcblxuLy8gUGVyZm9ybSBzb21lIG9wZXJhdGlvbnNcbi8vIEZvciBkZW1vbnN0cmF0aW9uLCB3ZSdsbCBqdXN0IHVzZSBhIERFQlVHIHN0YXRlbWVudFxuLy8gUGVyZm9ybWluZyBzb21lIG9wZXJhdGlvbnMuLi5cblxuLy8gR2V0IHRoZSBlbGFwc2VkIHRpbWUgaW4gbWlsbGlzZWNvbmRzIGZyb20gdGhlIHN0b3B3YXRjaFxuTlVNQkVSIGVsYXBzZWRUaW1lID0gU3RvcFdhdGNoLkdldE1TKFwiZXhhbXBsZVdhdGNoXCIpXG5cbi8vIFByaW50IHRoZSBlbGFwc2VkIHRpbWUgdG8gdGhlIGNvbnNvbGVcbi8vIEVsYXBzZWQgdGltZSBpbiBtaWxsaXNlY29uZHM6IFwiICsgZWxhcHNlZFRpbWUifSwgeyJuYW1lIjogIlN0b3BXYXRjaC5HZXRVUyAoU1RSSU5HKSIsICJyZXR1cm5fdHlwZSI6ICJOVU1CRVIiLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyB0aGUgZWxhcHNlZCB0aW1lIGluIG1pY3Jvc2Vjb25kcyBmcm9tIHRoZSBzdG9wd2F0Y2guIiwgInBhcmFtZXRlcl9kZXNjIjogIlNUUklORzogVGhlIGlkZW50aWZpZXIgb2YgdGhlIHN0b3B3YXRjaCBpbnN0YW5jZS4iLCAiZGVzY3JpcHRpb24iOiAiR2V0IG1pY3Jvc2Vjb25kcyBmcm9tIHRoZSBzdG9wIHdhdGNoIiwgImV4YW1wbGVfY29kZSI6ICIvLyBTdGFydCB0aGUgc3RvcHdhdGNoIHdpdGggYW4gaWRlbnRpZmllciBcIm15U3RvcHdhdGNoXCJcblN0b3BXYXRjaC5TdGFydChcIm15U3RvcHdhdGNoXCIpXG5cbi8vIFBlcmZvcm0gc29tZSBvcGVyYXRpb25zIGhlcmVcbi8vIEZvciBkZW1vbnN0cmF0aW9uLCB3ZSdsbCBqdXN0IHVzZSBhIERFQlVHIHN0YXRlbWVudFxuLy8gUGVyZm9ybWluZyBzb21lIG9wZXJhdGlvbnMuLi5cblxuLy8gR2V0IHRoZSBlbGFwc2VkIHRpbWUgaW4gbWljcm9zZWNvbmRzXG5OVU1CRVIgZWxhcHNlZFRpbWUgPSBTdG9wV2F0Y2guR2V0VVMoXCJteVN0b3B3YXRjaFwiKVxuXG4vLyBQcmludCB0aGUgZWxhcHNlZCB0aW1lIHRvIHRoZSBjb25zb2xlXG4vLyBFbGFwc2VkIHRpbWUgaW4gbWljcm9zZWNvbmRzOiBcIiArIGVsYXBzZWRUaW1lIiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiLy8gU3RhcnQgdGhlIHN0b3B3YXRjaCB3aXRoIGFuIGlkZW50aWZpZXIgXCJteVN0b3B3YXRjaFwiXG5TdG9wV2F0Y2guU3RhcnQoXCJteVN0b3B3YXRjaFwiKVxuXG4vLyBQZXJmb3JtIHNvbWUgb3BlcmF0aW9ucyBoZXJlXG4vLyBGb3IgZGVtb25zdHJhdGlvbiwgd2UnbGwganVzdCB1c2UgYSBERUJVRyBzdGF0ZW1lbnRcbi8vIFBlcmZvcm1pbmcgc29tZSBvcGVyYXRpb25zLi4uXG5cbi8vIEdldCB0aGUgZWxhcHNlZCB0aW1lIGluIG1pY3Jvc2Vjb25kc1xuTlVNQkVSIGVsYXBzZWRUaW1lID0gU3RvcFdhdGNoLkdldFVTKFwibXlTdG9wd2F0Y2hcIilcblxuLy8gUHJpbnQgdGhlIGVsYXBzZWQgdGltZSB0byB0aGUgY29uc29sZVxuLy8gRWxhcHNlZCB0aW1lIGluIG1pY3Jvc2Vjb25kczogXCIgKyBlbGFwc2VkVGltZSJ9LCB7Im5hbWUiOiAiU3ViU1RSSU5HQmV0d2VlbiAoU1RSSU5HLCBTVFJJTkcsIFNUUklORykiLCAicmV0dXJuX3R5cGUiOiAiU1RSSU5HIiwgInJldHVybl9kZXNjIjogIlJldHVybnMgdGhlIHN1YnN0cmluZyB0aGF0IGlzIGZvdW5kIGJldHdlZW4gdGhlIHR3byBzcGVjaWZpZWQgc3RyaW5ncyBpbiB0aGUgZ2l2ZW4gaW5wdXQgc3RyaW5nLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJTVFJJTkc6IHRoZSBpbnB1dCBTVFJJTkc7IFNUUklORzogdGhlIHN0YXJ0aW5nIGRlbGltaXRlcjsgU1RSSU5HOiB0aGUgZW5kaW5nIGRlbGltaXRlci4iLCAiZGVzY3JpcHRpb24iOiAiZXh0cmFjdCBhIHN1Yi1TVFJJTkcgYmV0d2VlbiB0d28gU1RSSU5HcyIsICJleGFtcGxlX2NvZGUiOiAiU1RSSU5HIGlucHV0U3RyaW5nID0gXCJIZWxsbyBbV29ybGRdIVwiXG5TVFJJTkcgc3RhcnREZWxpbWl0ZXIgPSBcIltcIlxuU1RSSU5HIGVuZERlbGltaXRlciA9IFwiXVwiXG5cblNUUklORyByZXN1bHQgPSBTdWJzdHJpbmdCZXR3ZWVuKGlucHV0U3RyaW5nLCBzdGFydERlbGltaXRlciwgZW5kRGVsaW1pdGVyKVxuXG4vLyBUaGlzIHdpbGwgcHJpbnQgXCJXb3JsZFwiIHRvIHRoZSBjb25zb2xlIiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiU1RSSU5HIGlucHV0U3RyaW5nID0gXCJIZWxsbyBbV29ybGRdIVwiXG5TVFJJTkcgc3RhcnREZWxpbWl0ZXIgPSBcIltcIlxuU1RSSU5HIGVuZERlbGltaXRlciA9IFwiXVwiXG5cblNUUklORyByZXN1bHQgPSBTdWJzdHJpbmdCZXR3ZWVuKGlucHV0U3RyaW5nLCBzdGFydERlbGltaXRlciwgZW5kRGVsaW1pdGVyKVxuXG4vLyBUaGlzIHdpbGwgcHJpbnQgXCJXb3JsZFwiIHRvIHRoZSBjb25zb2xlIn0sIHsibmFtZSI6ICJUZXh0TGFuZ3VhZ2UgKFNUUklORykiLCAicmV0dXJuX3R5cGUiOiAiU1RSSU5HIiwgInJldHVybl9kZXNjIjogIlJldHVybnMgdGhlIGlucHV0IHRleHQgbGFuZ3VhZ2UgKElTTyA2MzktMSBjb2RlKS4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiU1RSSU5HOiBpbnB1dCB0ZXh0LiIsICJkZXNjcmlwdGlvbiI6ICJSZXR1cm5zIHRoZSBpbnB1dCB0ZXh0IGxhbmd1YWdlIChJU08gNjM5LTEgY29kZSkiLCAiZXhhbXBsZV9jb2RlIjogIlNUUklORyB0ZXh0ID0gXCJIZWxsbywgaG93IGFyZSB5b3U/XCJcblNUUklORyBsYW5ndWFnZUNvZGUgPSBUZXh0TGFuZ3VhZ2UodGV4dClcbi8vIERldGVjdGVkIGxhbmd1YWdlIGNvZGU6IFwiICsgbGFuZ3VhZ2VDb2RlIiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiU1RSSU5HIHRleHQgPSBcIkhlbGxvLCBob3cgYXJlIHlvdT9cIlxuU1RSSU5HIGxhbmd1YWdlQ29kZSA9IFRleHRMYW5ndWFnZSh0ZXh0KVxuLy8gRGV0ZWN0ZWQgbGFuZ3VhZ2UgY29kZTogXCIgKyBsYW5ndWFnZUNvZGUifSwgeyJuYW1lIjogIlRvQm9vbGVhbiAoTVdHLkludGVybmFsVmFyaWFudCkiLCAicmV0dXJuX3R5cGUiOiAiQk9PTEVBTiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIHRoZSBCb29sZWFuIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBpbnRlcm5hbCB2YXJpYW50LiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJNV0cuSW50ZXJuYWxWYXJpYW50OiB2YWx1ZSB0byBjb252ZXJ0IHRvIEJPT0xFQU4uIiwgImRlc2NyaXB0aW9uIjogIkNvbnZlcnQgYW4gaW50ZXJuYWwgdmFyaWFudCB0byBhIEJPT0xFQU4uIiwgImV4YW1wbGVfY29kZSI6ICJNV0cuSW50ZXJuYWxWYXJpYW50IGludGVybmFsVmFsdWUgPSBNV0cuR2V0U29tZUludGVybmFsVmFsdWUoKSAgLy8gQXNzdW1lIHRoaXMgZnVuY3Rpb24gZ2V0cyBhbiBpbnRlcm5hbCB2YXJpYW50IHZhbHVlXG5CT09MRUFOIGJvb2xlYW5WYWx1ZSA9IFRvQm9vbGVhbihpbnRlcm5hbFZhbHVlKVxuXG5JRiBib29sZWFuVmFsdWUgVEhFTiB7XG4gICAgLy8gVGhlIGludGVybmFsIHZhbHVlIGlzIFRSVUVcbn0gRUxTRSB7XG4gICAgLy8gVGhlIGludGVybmFsIHZhbHVlIGlzIEZBTFNFXG59IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiTVdHLkludGVybmFsVmFyaWFudCBpbnRlcm5hbFZhbHVlID0gTVdHLkdldFNvbWVJbnRlcm5hbFZhbHVlKCkgIC8vIEFzc3VtZSB0aGlzIGZ1bmN0aW9uIGdldHMgYW4gaW50ZXJuYWwgdmFyaWFudCB2YWx1ZVxuQk9PTEVBTiBib29sZWFuVmFsdWUgPSBUb0Jvb2xlYW4oaW50ZXJuYWxWYWx1ZSlcblxuSUYgYm9vbGVhblZhbHVlIFRIRU4ge1xuICAgIC8vIFRoZSBpbnRlcm5hbCB2YWx1ZSBpcyBUUlVFXG59IEVMU0Uge1xuICAgIC8vIFRoZSBpbnRlcm5hbCB2YWx1ZSBpcyBGQUxTRVxufSJ9LCB7Im5hbWUiOiAiVG9Cb29sVmVjdG9yIChNV0cuSW50ZXJuYWxWYXJpYW50KSIsICJyZXR1cm5fdHlwZSI6ICJWRUNUT1I8Qk9PTEVBTj4iLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyB0aGUgQm9vbGVhbiB2ZWN0b3IgcmVwcmVzZW50YXRpb24gb2YgdGhlIGludGVybmFsIHZhcmlhbnQuIiwgInBhcmFtZXRlcl9kZXNjIjogIk1XRy5JbnRlcm5hbFZhcmlhbnQ6IHZhbHVlIHRvIGNvbnZlcnQgdG8gVkVDVE9SIG9mIEJPT0xFQU5zLiIsICJkZXNjcmlwdGlvbiI6ICJDb252ZXJ0IGFuIGludGVybmFsIHZhcmlhbnQgdG8gYSBWRUNUT1Igb2YgQk9PTEVBTnMuIiwgImV4YW1wbGVfY29kZSI6ICIvLyBBc3N1bWUgd2UgaGF2ZSBhbiBNV0cuSW50ZXJuYWxWYXJpYW50IG9iamVjdFxuTVdHLkludGVybmFsVmFyaWFudCBpbnRlcm5hbFZhciA9IEdldFNvbWVJbnRlcm5hbFZhcmlhbnQoKVxuXG4vLyBDb252ZXJ0IHRoZSBpbnRlcm5hbCB2YXJpYW50IHRvIGEgVkVDVE9SPEJPT0xFQU4+XG5WRUNUT1I8Qk9PTEVBTj4gYm9vbFZlY3RvciA9IGludGVybmFsVmFyLlRvQm9vbFZlY3RvcigpXG5cbi8vIFVzZSB0aGUgYm9vbGVhbiB2ZWN0b3IgZm9yIHNvbWUgbG9naWNcbklGIGJvb2xWZWN0b3JbMF0gVEhFTiB7XG4gICAgLy8gVGhlIGZpcnN0IGVsZW1lbnQgaW4gdGhlIGJvb2xlYW4gdmVjdG9yIGlzIFRSVUVcbn0gRUxTRSB7XG4gICAgLy8gVGhlIGZpcnN0IGVsZW1lbnQgaW4gdGhlIGJvb2xlYW4gdmVjdG9yIGlzIEZBTFNFXG59IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiLy8gQXNzdW1lIHdlIGhhdmUgYW4gTVdHLkludGVybmFsVmFyaWFudCBvYmplY3Rcbk1XRy5JbnRlcm5hbFZhcmlhbnQgaW50ZXJuYWxWYXIgPSBHZXRTb21lSW50ZXJuYWxWYXJpYW50KClcblxuLy8gQ29udmVydCB0aGUgaW50ZXJuYWwgdmFyaWFudCB0byBhIFZFQ1RPUjxCT09MRUFOPlxuVkVDVE9SPEJPT0xFQU4+IGJvb2xWZWN0b3IgPSBpbnRlcm5hbFZhci5Ub0Jvb2xWZWN0b3IoKVxuXG4vLyBVc2UgdGhlIGJvb2xlYW4gdmVjdG9yIGZvciBzb21lIGxvZ2ljXG5JRiBib29sVmVjdG9yWzBdIFRIRU4ge1xuICAgIC8vIFRoZSBmaXJzdCBlbGVtZW50IGluIHRoZSBib29sZWFuIHZlY3RvciBpcyBUUlVFXG59IEVMU0Uge1xuICAgIC8vIFRoZSBmaXJzdCBlbGVtZW50IGluIHRoZSBib29sZWFuIHZlY3RvciBpcyBGQUxTRVxufSJ9LCB7Im5hbWUiOiAiVG9EYXRhUmVmIChTVFJJTkcpIiwgInJldHVybl90eXBlIjogIkRBVEFSRUYiLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyB0aGUgYERBVEFSRUZgIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBgU1RSSU5HYC4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiU1RSSU5HOiBpbnB1dCB0byBjb252ZXJ0LiIsICJkZXNjcmlwdGlvbiI6ICJDb252ZXJ0IGEgU1RSSU5HIHRvIGEgREFUQVJFRiIsICJleGFtcGxlX2NvZGUiOiAiU1RSSU5HIGV4YW1wbGVTdHJpbmcgPSBcIlRoaXMgaXMgYSB0ZXN0IHN0cmluZ1wiXG5EQVRBUkVGIGV4YW1wbGVEYXRhUmVmID0gVG9EYXRhUmVmKGV4YW1wbGVTdHJpbmcpXG5cbi8vIE9yaWdpbmFsIFNUUklORzogVGhpcyBpcyBhIHRlc3Qgc3RyaW5nXG4vLyBDb252ZXJ0ZWQgREFUQVJFRjogVGhpcyBpcyBhIHRlc3Qgc3RyaW5nIGNvbnZlcnRlZCB0byBEQVRBUkVGIiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiU1RSSU5HIGV4YW1wbGVTdHJpbmcgPSBcIlRoaXMgaXMgYSB0ZXN0IHN0cmluZ1wiXG5EQVRBUkVGIGV4YW1wbGVEYXRhUmVmID0gVG9EYXRhUmVmKGV4YW1wbGVTdHJpbmcpXG5cbi8vIE9yaWdpbmFsIFNUUklORzogVGhpcyBpcyBhIHRlc3Qgc3RyaW5nXG4vLyBDb252ZXJ0ZWQgREFUQVJFRjogVGhpcyBpcyBhIHRlc3Qgc3RyaW5nIGNvbnZlcnRlZCB0byBEQVRBUkVGIn0sIHsibmFtZSI6ICJUb0RMUENsYXNzaWZpY2F0aW9uIChTVFJJTkcpIiwgInJldHVybl90eXBlIjogIkRMUC5DbGFzc2lmaWNhdGlvbiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIGEgRExQLkNsYXNzaWZpY2F0aW9uIG9iamVjdCBjb3JyZXNwb25kaW5nIHRvIGEgZ2l2ZW4gY2xhc3NpZmljYXRpb24gSUQuIiwgInBhcmFtZXRlcl9kZXNjIjogIlNUUklORzogdGhlIGNsYXNzaWZpY2F0aW9uIElEIHRvIGJlIGNvbnZlcnRlZC4iLCAiZGVzY3JpcHRpb24iOiAiY29udmVydCBjbGFzc2lmaWF0aW9uIGlkIHRvIGNsYXNzaWZpYXRpb24iLCAiZXhhbXBsZV9jb2RlIjogIlNUUklORyBjbGFzc2lmaWNhdGlvbklEID0gXCIxMjM0NVwiXG5ETFAuQ2xhc3NpZmljYXRpb24gY2xhc3NpZmljYXRpb24gPSBUb0RMUENsYXNzaWZpY2F0aW9uKGNsYXNzaWZpY2F0aW9uSUQpXG5cbi8vIFRoZSBjbGFzc2lmaWNhdGlvbiBvYmplY3QgZm9yIElEIDEyMzQ1IGlzOiBjbGFzc2lmaWNhdGlvbiIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIlNUUklORyBjbGFzc2lmaWNhdGlvbklEID0gXCIxMjM0NVwiXG5ETFAuQ2xhc3NpZmljYXRpb24gY2xhc3NpZmljYXRpb24gPSBUb0RMUENsYXNzaWZpY2F0aW9uKGNsYXNzaWZpY2F0aW9uSUQpXG5cbi8vIFRoZSBjbGFzc2lmaWNhdGlvbiBvYmplY3QgZm9yIElEIDEyMzQ1IGlzOiBjbGFzc2lmaWNhdGlvbiJ9LCB7Im5hbWUiOiAiVG9Ib3N0QW5kQ2VydGlmaWNhdGUgKE1XRy5JbnRlcm5hbFZhcmlhbnQpIiwgInJldHVybl90eXBlIjogIk1XRy5Ib3N0QW5kQ2VydGlmaWNhdGUiLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyB0aGVgTVdHLkhvc3RBbmRDZXJ0aWZpY2F0ZWByZXByZXNlbnRhdGlvbiBvZiB0aGUgaW50ZXJuYWwgdmFyaWFudC4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiTVdHLkludGVybmFsVmFyaWFudDogdmFsdWUgdG8gY29udmVydC4iLCAiZGVzY3JpcHRpb24iOiAiQ29udmVydCBhbiBpbnRlcm5hbCB2YXJpYW50IHRvIGEgTVdHLkhvc3RBbmRDZXJ0aWZpY2F0ZS4iLCAiZXhhbXBsZV9jb2RlIjogIi8vIEFzc3VtZSB3ZSBoYXZlIGFuIGludGVybmFsIHZhcmlhbnQgdmFsdWVcbk1XRy5JbnRlcm5hbFZhcmlhbnQgaW50ZXJuYWxWYXJpYW50VmFsdWUgPSAuLi4gLy8gc29tZSBpbnRlcm5hbCB2YXJpYW50IHZhbHVlXG5cbi8vIENvbnZlcnQgdGhlIGludGVybmFsIHZhcmlhbnQgdG8gYSBIb3N0QW5kQ2VydGlmaWNhdGUgb2JqZWN0XG5NV0cuSG9zdEFuZENlcnRpZmljYXRlIGhvc3RBbmRDZXJ0ID0gVG9Ib3N0QW5kQ2VydGlmaWNhdGUoaW50ZXJuYWxWYXJpYW50VmFsdWUpXG5cbi8vIFVzZSB0aGUgaG9zdEFuZENlcnQgb2JqZWN0IGZvciBmdXJ0aGVyIHByb2Nlc3Npbmdcbi8vIEhvc3Q6IFwiICsgaG9zdEFuZENlcnQuSG9zdFxuLy8gQ2VydGlmaWNhdGU6IFwiICsgaG9zdEFuZENlcnQuQ2VydGlmaWNhdGUiLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICIvLyBBc3N1bWUgd2UgaGF2ZSBhbiBpbnRlcm5hbCB2YXJpYW50IHZhbHVlXG5NV0cuSW50ZXJuYWxWYXJpYW50IGludGVybmFsVmFyaWFudFZhbHVlID0gLi4uIC8vIHNvbWUgaW50ZXJuYWwgdmFyaWFudCB2YWx1ZVxuXG4vLyBDb252ZXJ0IHRoZSBpbnRlcm5hbCB2YXJpYW50IHRvIGEgSG9zdEFuZENlcnRpZmljYXRlIG9iamVjdFxuTVdHLkhvc3RBbmRDZXJ0aWZpY2F0ZSBob3N0QW5kQ2VydCA9IFRvSG9zdEFuZENlcnRpZmljYXRlKGludGVybmFsVmFyaWFudFZhbHVlKVxuXG4vLyBVc2UgdGhlIGhvc3RBbmRDZXJ0IG9iamVjdCBmb3IgZnVydGhlciBwcm9jZXNzaW5nXG4vLyBIb3N0OiBcIiArIGhvc3RBbmRDZXJ0Lkhvc3Rcbi8vIENlcnRpZmljYXRlOiBcIiArIGhvc3RBbmRDZXJ0LkNlcnRpZmljYXRlIn0sIHsibmFtZSI6ICJUb0lEU1RSSU5HIChNV0cuVXJsQ2F0ZWdvcnkpIiwgInJldHVybl90eXBlIjogIlNUUklORyIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIHRoZSB1bmlxdWUgaWRlbnRpZmllciBzdHJpbmcgb2YgYSBHVEkgY2F0ZWdvcnkgYmFzZWQgb24gdGhlIGdpdmVuIFVSTCBjYXRlZ29yeS4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiTVdHLlVybENhdGVnb3J5OiB0aGUgVVJMIGNhdGVnb3J5IG9iamVjdCB0byBnZXQgdGhlIElEIG9mLiIsICJkZXNjcmlwdGlvbiI6ICJSZXR1cm5zIHRoZSBJRCBvZiBhIEdUSSBjYXRlZ29yeSIsICJleGFtcGxlX2NvZGUiOiAiLy8gQXNzdW1lIHdlIGhhdmUgYW4gTVdHLlVybENhdGVnb3J5IG9iamVjdCBuYW1lZCB1cmxDYXRlZ29yeVxuTVdHLlVybENhdGVnb3J5IHVybENhdGVnb3J5ID0gTVdHLlVybCgpLkdldENhdGVnb3J5KClcblxuLy8gVXNlIHRoZSBUb0lEU3RyaW5nIGZ1bmN0aW9uIHRvIGdldCB0aGUgdW5pcXVlIGlkZW50aWZpZXIgc3RyaW5nIG9mIHRoZSBVUkwgY2F0ZWdvcnlcblNUUklORyBjYXRlZ29yeUlEID0gVG9JRFN0cmluZyh1cmxDYXRlZ29yeSlcblxuLy8gVGhlIGNhdGVnb3J5IElEIGlzOiBcIiArIGNhdGVnb3J5SUQiLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICIvLyBBc3N1bWUgd2UgaGF2ZSBhbiBNV0cuVXJsQ2F0ZWdvcnkgb2JqZWN0IG5hbWVkIHVybENhdGVnb3J5XG5NV0cuVXJsQ2F0ZWdvcnkgdXJsQ2F0ZWdvcnkgPSBNV0cuVXJsKCkuR2V0Q2F0ZWdvcnkoKVxuXG4vLyBVc2UgdGhlIFRvSURTdHJpbmcgZnVuY3Rpb24gdG8gZ2V0IHRoZSB1bmlxdWUgaWRlbnRpZmllciBzdHJpbmcgb2YgdGhlIFVSTCBjYXRlZ29yeVxuU1RSSU5HIGNhdGVnb3J5SUQgPSBUb0lEU3RyaW5nKHVybENhdGVnb3J5KVxuXG4vLyBUaGUgY2F0ZWdvcnkgSUQgaXM6IFwiICsgY2F0ZWdvcnlJRCJ9LCB7Im5hbWUiOiAiVG9JUEFkZHJlc3MgKE1XRy5JbnRlcm5hbFZhcmlhbnQpIiwgInJldHVybl90eXBlIjogIk5ldC5JUCIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIHRoZSBJUCBhZGRyZXNzIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBpbnRlcm5hbCB2YXJpYW50LiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJNV0cuSW50ZXJuYWxWYXJpYW50OiB2YWx1ZSB0byBjb252ZXJ0LiIsICJkZXNjcmlwdGlvbiI6ICJDb252ZXJ0IGFuIGludGVybmFsIHZhcmlhbnQgdG8gYSBOZXQuSVAuIiwgImV4YW1wbGVfY29kZSI6ICJNV0cuSW50ZXJuYWxWYXJpYW50IHZhcmlhbnRJUCA9IFwiMTkyLjE2OC4xLjFcIlxuTmV0LklQIGlwQWRkcmVzcyA9IHZhcmlhbnRJUC5Ub0lQQWRkcmVzcygpXG5cbi8vIENvbnZlcnRlZCBJUCBBZGRyZXNzOiArIGlwQWRkcmVzcyIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIk1XRy5JbnRlcm5hbFZhcmlhbnQgdmFyaWFudElQID0gXCIxOTIuMTY4LjEuMVwiXG5OZXQuSVAgaXBBZGRyZXNzID0gdmFyaWFudElQLlRvSVBBZGRyZXNzKClcblxuLy8gQ29udmVydGVkIElQIEFkZHJlc3M6ICsgaXBBZGRyZXNzIn0sIHsibmFtZSI6ICJUb0lQUmFuZ2UgKE1XRy5JbnRlcm5hbFZhcmlhbnQpIiwgInJldHVybl90eXBlIjogIk5ldC5JUFJhbmdlIiwgInJldHVybl9kZXNjIjogIlJldHVybnMgdGhlIElQIGFkZHJlc3MgcmFuZ2UgcmVwcmVzZW50YXRpb24gb2YgdGhlIGludGVybmFsIHZhcmlhbnQuIiwgInBhcmFtZXRlcl9kZXNjIjogIk1XRy5JbnRlcm5hbFZhcmlhbnQ6IHZhbHVlIHRvIGNvbnZlcnQuIiwgImRlc2NyaXB0aW9uIjogIkNvbnZlcnQgYW4gaW50ZXJuYWwgdmFyaWFudCB0byBhIE5ldC5JUFJhbmdlLiIsICJleGFtcGxlX2NvZGUiOiAiLy8gQXNzdW1lIHdlIGhhdmUgYW4gaW50ZXJuYWwgdmFyaWFudCB2YWx1ZVxuTVdHLkludGVybmFsVmFyaWFudCBpbnRlcm5hbFZhbHVlID0gR2V0SW50ZXJuYWxWYXJpYW50VmFsdWUoKVxuXG4vLyBDb252ZXJ0IHRoZSBpbnRlcm5hbCB2YXJpYW50IHRvIGFuIElQIHJhbmdlXG5OZXQuSVBSYW5nZSBpcFJhbmdlID0gVG9JUFJhbmdlKGludGVybmFsVmFsdWUpXG5cbi8vIFBlcmZvcm0gc29tZSBhY3Rpb24gd2l0aCB0aGUgSVAgcmFuZ2Vcbi8vIENvbnZlcnRlZCBJUCBSYW5nZTogXCIgKyBpcFJhbmdlLlRvU3RyaW5nKClcblxuLy8gRXhhbXBsZSBjb25kaXRpb24gdG8gYmxvY2sgYSBzcGVjaWZpYyBJUCByYW5nZVxuSUYgaXBSYW5nZS5Db250YWlucyhcIjE5Mi4xNjguMS4xXCIpIFRIRU4ge1xuICAgIE1XRy5CbG9jayhcIkFjY2VzcyBmcm9tIHRoaXMgSVAgaXMgbm90IGFsbG93ZWRcIilcbn0gRUxTRSB7XG4gICAgTVdHLkFsbG93KFwiSVAgaXMgYWxsb3dlZFwiKVxufVxuXG4vLyBEdW1teSBmdW5jdGlvbiB0byBzaW11bGF0ZSBnZXR0aW5nIGFuIGludGVybmFsIHZhcmlhbnQgdmFsdWVcbkZVTkNUSU9OIEdldEludGVybmFsVmFyaWFudFZhbHVlKCkgUkVUVVJOUyBNV0cuSW50ZXJuYWxWYXJpYW50IHtcbiAgICAvLyBUaGlzIGlzIGp1c3QgYSBwbGFjZWhvbGRlci4gUmVwbGFjZSB3aXRoIGFjdHVhbCBsb2dpYyB0byBnZXQgdGhlIGludGVybmFsIHZhcmlhbnQuXG4gICAgTVdHLkludGVybmFsVmFyaWFudCB2YXJpYW50XG4gICAgLy8gU2V0IHRoZSB2YXJpYW50IHZhbHVlIGhlcmVcbiAgICBSRVRVUk4gdmFyaWFudFxufSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIi8vIEFzc3VtZSB3ZSBoYXZlIGFuIGludGVybmFsIHZhcmlhbnQgdmFsdWVcbk1XRy5JbnRlcm5hbFZhcmlhbnQgaW50ZXJuYWxWYWx1ZSA9IEdldEludGVybmFsVmFyaWFudFZhbHVlKClcblxuLy8gQ29udmVydCB0aGUgaW50ZXJuYWwgdmFyaWFudCB0byBhbiBJUCByYW5nZVxuTmV0LklQUmFuZ2UgaXBSYW5nZSA9IFRvSVBSYW5nZShpbnRlcm5hbFZhbHVlKVxuXG4vLyBQZXJmb3JtIHNvbWUgYWN0aW9uIHdpdGggdGhlIElQIHJhbmdlXG4vLyBDb252ZXJ0ZWQgSVAgUmFuZ2U6IFwiICsgaXBSYW5nZS5Ub1N0cmluZygpXG5cbi8vIEV4YW1wbGUgY29uZGl0aW9uIHRvIGJsb2NrIGEgc3BlY2lmaWMgSVAgcmFuZ2VcbklGIGlwUmFuZ2UuQ29udGFpbnMoXCIxOTIuMTY4LjEuMVwiKSBUSEVOIHtcbiAgICBNV0cuQmxvY2soXCJBY2Nlc3MgZnJvbSB0aGlzIElQIGlzIG5vdCBhbGxvd2VkXCIpXG59IEVMU0Uge1xuICAgIE1XRy5BbGxvdyhcIklQIGlzIGFsbG93ZWRcIilcbn1cblxuLy8gRHVtbXkgZnVuY3Rpb24gdG8gc2ltdWxhdGUgZ2V0dGluZyBhbiBpbnRlcm5hbCB2YXJpYW50IHZhbHVlXG5GVU5DVElPTiBHZXRJbnRlcm5hbFZhcmlhbnRWYWx1ZSgpIFJFVFVSTlMgTVdHLkludGVybmFsVmFyaWFudCB7XG4gICAgLy8gVGhpcyBpcyBqdXN0IGEgcGxhY2Vob2xkZXIuIFJlcGxhY2Ugd2l0aCBhY3R1YWwgbG9naWMgdG8gZ2V0IHRoZSBpbnRlcm5hbCB2YXJpYW50LlxuICAgIE1XRy5JbnRlcm5hbFZhcmlhbnQgdmFyaWFudFxuICAgIC8vIFNldCB0aGUgdmFyaWFudCB2YWx1ZSBoZXJlXG4gICAgUkVUVVJOIHZhcmlhbnRcbn0ifSwgeyJuYW1lIjogIlRvSVBSYW5nZVZlY3RvciAoTVdHLkludGVybmFsVmFyaWFudCkiLCAicmV0dXJuX3R5cGUiOiAiVkVDVE9SPE5ldC5JUFJhbmdlPiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIHRoZSBJUCBhZGRyZXNzIHJhbmdlIHZlY3RvciByZXByZXNlbnRhdGlvbiBvZiB0aGUgaW50ZXJuYWwgdmFyaWFudC4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiTVdHLkludGVybmFsVmFyaWFudDogdmFsdWUgdG8gY29udmVydC4iLCAiZGVzY3JpcHRpb24iOiAiQ29udmVydCBhbiBpbnRlcm5hbCB2YXJpYW50IHRvIGEgVkVDVE9SIG9mIE5ldC5JUFJhbmdlIiwgImV4YW1wbGVfY29kZSI6ICIvLyBBc3N1bWUgaW50ZXJuYWxWYXJpYW50IGlzIGFuIE1XRy5JbnRlcm5hbFZhcmlhbnQgb2JqZWN0XG5NV0cuSW50ZXJuYWxWYXJpYW50IGludGVybmFsVmFyaWFudCA9IC4uLiAvLyBJbml0aWFsaXplIHRoaXMgd2l0aCB5b3VyIHNwZWNpZmljIGludGVybmFsIHZhcmlhbnRcblxuLy8gQ29udmVydCB0aGUgaW50ZXJuYWwgdmFyaWFudCB0byBhIFZFQ1RPUiBvZiBOZXQuSVBSYW5nZVxuVkVDVE9SPE5ldC5JUFJhbmdlPiBpcFJhbmdlVmVjdG9yID0gVG9JUFJhbmdlVmVjdG9yKGludGVybmFsVmFyaWFudClcblxuLy8gQ29udmVydGVkIElQIFJhbmdlczogXCIgKyBpcFJhbmdlVmVjdG9yIiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiLy8gQXNzdW1lIGludGVybmFsVmFyaWFudCBpcyBhbiBNV0cuSW50ZXJuYWxWYXJpYW50IG9iamVjdFxuTVdHLkludGVybmFsVmFyaWFudCBpbnRlcm5hbFZhcmlhbnQgPSAuLi4gLy8gSW5pdGlhbGl6ZSB0aGlzIHdpdGggeW91ciBzcGVjaWZpYyBpbnRlcm5hbCB2YXJpYW50XG5cbi8vIENvbnZlcnQgdGhlIGludGVybmFsIHZhcmlhbnQgdG8gYSBWRUNUT1Igb2YgTmV0LklQUmFuZ2VcblZFQ1RPUjxOZXQuSVBSYW5nZT4gaXBSYW5nZVZlY3RvciA9IFRvSVBSYW5nZVZlY3RvcihpbnRlcm5hbFZhcmlhbnQpXG5cbi8vIENvbnZlcnRlZCBJUCBSYW5nZXM6IFwiICsgaXBSYW5nZVZlY3RvciJ9LCB7Im5hbWUiOiAiVG9JUFZlY3RvciAoTVdHLkludGVybmFsVmFyaWFudCkiLCAicmV0dXJuX3R5cGUiOiAiVkVDVE9SPE5ldC5JUD4iLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyB0aGUgSVAgYWRkcmVzcyB2ZWN0b3IgcmVwcmVzZW50YXRpb24gb2YgdGhlIGludGVybmFsIHZhcmlhbnQuIiwgInBhcmFtZXRlcl9kZXNjIjogIk1XRy5JbnRlcm5hbFZhcmlhbnQ6IHZhbHVlIHRvIGNvbnZlcnQuIiwgImRlc2NyaXB0aW9uIjogIkNvbnZlcnQgYW4gaW50ZXJuYWwgdmFyaWFudCB0byBhIFZFQ1RPUiBvZiBOZXQuSVAiLCAiZXhhbXBsZV9jb2RlIjogIi8vIEFzc3VtZSBpbnRlcm5hbFZhcmlhbnQgaXMgYW4gTVdHLkludGVybmFsVmFyaWFudCBvYmplY3Qgb2J0YWluZWQgZnJvbSBzb21lIGNvbnRleHRcbk1XRy5JbnRlcm5hbFZhcmlhbnQgaW50ZXJuYWxWYXJpYW50ID0gLi4uIC8vIE9idGFpbiB0aGUgaW50ZXJuYWwgdmFyaWFudCBmcm9tIGNvbnRleHRcblxuLy8gQ29udmVydCB0aGUgaW50ZXJuYWwgdmFyaWFudCB0byBhIFZFQ1RPUiBvZiBOZXQuSVBcblZFQ1RPUjxOZXQuSVA+IGlwVmVjdG9yID0gVG9JUFZlY3RvcihpbnRlcm5hbFZhcmlhbnQpXG5cbi8vIEl0ZXJhdGUgb3ZlciB0aGUgVkVDVE9SIGFuZCBwcmludCBlYWNoIElQIGFkZHJlc3NcbkZPUiBFQUNIIGlwIElOIGlwVmVjdG9yIHtcbiAgICAvLyBJUCBBZGRyZXNzOiBcIiArIGlwXG59IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiLy8gQXNzdW1lIGludGVybmFsVmFyaWFudCBpcyBhbiBNV0cuSW50ZXJuYWxWYXJpYW50IG9iamVjdCBvYnRhaW5lZCBmcm9tIHNvbWUgY29udGV4dFxuTVdHLkludGVybmFsVmFyaWFudCBpbnRlcm5hbFZhcmlhbnQgPSAuLi4gLy8gT2J0YWluIHRoZSBpbnRlcm5hbCB2YXJpYW50IGZyb20gY29udGV4dFxuXG4vLyBDb252ZXJ0IHRoZSBpbnRlcm5hbCB2YXJpYW50IHRvIGEgVkVDVE9SIG9mIE5ldC5JUFxuVkVDVE9SPE5ldC5JUD4gaXBWZWN0b3IgPSBUb0lQVmVjdG9yKGludGVybmFsVmFyaWFudClcblxuLy8gSXRlcmF0ZSBvdmVyIHRoZSBWRUNUT1IgYW5kIHByaW50IGVhY2ggSVAgYWRkcmVzc1xuRk9SIEVBQ0ggaXAgSU4gaXBWZWN0b3Ige1xuICAgIC8vIElQIEFkZHJlc3M6IFwiICsgaXBcbn0ifSwgeyJuYW1lIjogIlRvSlNPTiAoTVdHLkludGVybmFsVmFyaWFudCkiLCAicmV0dXJuX3R5cGUiOiAiSlNPTiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIHRoZSBKU09OIG9iamVjdCByZXByZXNlbnRhdGlvbiBvZiB0aGUgaW50ZXJuYWwgdmFyaWFudC4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiTVdHLkludGVybmFsVmFyaWFudDogdmFsdWUgdG8gY29udmVydC4iLCAiZGVzY3JpcHRpb24iOiAiQ29udmVydCBhbiBpbnRlcm5hbCB2YXJpYW50IHRvIGEgSlNPTiBvYmplY3QuIiwgImV4YW1wbGVfY29kZSI6ICIvLyBBc3N1bWUgd2UgaGF2ZSBhbiBNV0cuSW50ZXJuYWxWYXJpYW50IG9iamVjdFxuTVdHLkludGVybmFsVmFyaWFudCBteVZhcmlhbnRcblxuLy8gUG9wdWxhdGUgdGhlIE1XRy5JbnRlcm5hbFZhcmlhbnQgb2JqZWN0IHdpdGggc29tZSBkYXRhXG5teVZhcmlhbnRbXCJrZXkxXCJdID0gXCJ2YWx1ZTFcIlxubXlWYXJpYW50W1wia2V5MlwiXSA9IDEyMzQ1XG5teVZhcmlhbnRbXCJrZXkzXCJdID0gVFJVRVxuXG4vLyBDb252ZXJ0IHRoZSBNV0cuSW50ZXJuYWxWYXJpYW50IG9iamVjdCB0byBhIEpTT04gc3RyaW5nXG5TVFJJTkcganNvblN0cmluZyA9IG15VmFyaWFudC5Ub0pTT04oKVxuXG4vLyBDb252ZXJ0ZWQgSlNPTjogXCIgKyBqc29uU3RyaW5nIiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiLy8gQXNzdW1lIHdlIGhhdmUgYW4gTVdHLkludGVybmFsVmFyaWFudCBvYmplY3Rcbk1XRy5JbnRlcm5hbFZhcmlhbnQgbXlWYXJpYW50XG5cbi8vIFBvcHVsYXRlIHRoZSBNV0cuSW50ZXJuYWxWYXJpYW50IG9iamVjdCB3aXRoIHNvbWUgZGF0YVxubXlWYXJpYW50W1wia2V5MVwiXSA9IFwidmFsdWUxXCJcbm15VmFyaWFudFtcImtleTJcIl0gPSAxMjM0NVxubXlWYXJpYW50W1wia2V5M1wiXSA9IFRSVUVcblxuLy8gQ29udmVydCB0aGUgTVdHLkludGVybmFsVmFyaWFudCBvYmplY3QgdG8gYSBKU09OIHN0cmluZ1xuU1RSSU5HIGpzb25TdHJpbmcgPSBteVZhcmlhbnQuVG9KU09OKClcblxuLy8gQ29udmVydGVkIEpTT046IFwiICsganNvblN0cmluZyJ9LCB7Im5hbWUiOiAiVG9Mb3dlciAoU1RSSU5HKSIsICJyZXR1cm5fdHlwZSI6ICJTVFJJTkciLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyB0aGUgaW5wdXQgc3RyaW5nIGNvbnZlcnRlZCB0byBhbGwgbG93ZXIgY2FzZSBjaGFyYWN0ZXJzLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJTVFJJTkc6IFRoZSBpbnB1dCBTVFJJTkcgdG8gYmUgY29udmVydGVkIHRvIGxvd2VyIGNhc2UuIiwgImRlc2NyaXB0aW9uIjogIlJldHVybnMgdGhlIGlucHV0IFNUUklORyB3aXRoIHVwcGVyIGNhc2UgY2hhcmFjdGVycyByZXBsYWNlZCBieSBsb3dlciBjYXNlIiwgImV4YW1wbGVfY29kZSI6ICJNV0cuVVJMIGN1cnJlbnRVcmwgPSBNV0cuVXJsKClcblNUUklORyBsb3dlckNhc2VVcmwgPSBUb0xvd2VyKGN1cnJlbnRVcmwpXG4vLyBsb3dlckNhc2VVcmwiLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICJNV0cuVVJMIGN1cnJlbnRVcmwgPSBNV0cuVXJsKClcblNUUklORyBsb3dlckNhc2VVcmwgPSBUb0xvd2VyKGN1cnJlbnRVcmwpXG4vLyBsb3dlckNhc2VVcmwifSwgeyJuYW1lIjogIlRvTWFwIChNV0cuSW50ZXJuYWxWYXJpYW50KSIsICJyZXR1cm5fdHlwZSI6ICJNQVA8U1RSSU5HLE1XRy5JbnRlcm5hbFZhcmlhbnQ+IiwgInJldHVybl9kZXNjIjogIlJldHVybnMgdGhlIG1hcCByZXByZXNlbnRhdGlvbiBvZiB0aGUgaW50ZXJuYWwgdmFyaWFudC4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiTVdHLkludGVybmFsVmFyaWFudDogdmFsdWUgdG8gY29udmVydC4iLCAiZGVzY3JpcHRpb24iOiAiQ29udmVydCBhbiBpbnRlcm5hbCB2YXJpYW50IHRvIGEgbWFwLiIsICJleGFtcGxlX2NvZGUiOiAiLy8gQXNzdW1lIHdlIGhhdmUgYW4gTVdHLkludGVybmFsVmFyaWFudCBvYmplY3QgbmFtZWQgaW50ZXJuYWxWYXJpYW50XG5NV0cuSW50ZXJuYWxWYXJpYW50IGludGVybmFsVmFyaWFudCA9IC4uLiAvLyBzb21lIGluaXRpYWxpemF0aW9uIG9yIGFzc2lnbm1lbnRcblxuLy8gQ29udmVydCB0aGUgaW50ZXJuYWwgdmFyaWFudCB0byBhIG1hcFxuTUFQPFNUUklORywgTVdHLkludGVybmFsVmFyaWFudD4gdmFyaWFudE1hcCA9IFRvTWFwKGludGVybmFsVmFyaWFudClcblxuLy8gSXRlcmF0ZSBvdmVyIHRoZSBtYXAgYW5kIHByaW50IGVhY2gga2V5LXZhbHVlIHBhaXJcbkZPUiBFQUNIIGtleSBJTiB2YXJpYW50TWFwIHtcbiAgICBNV0cuSW50ZXJuYWxWYXJpYW50IHZhbHVlID0gdmFyaWFudE1hcFtrZXldXG4gICAgLy8gS2V5OiBrZXksIFZhbHVlOiB2YWx1ZVxufSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIi8vIEFzc3VtZSB3ZSBoYXZlIGFuIE1XRy5JbnRlcm5hbFZhcmlhbnQgb2JqZWN0IG5hbWVkIGludGVybmFsVmFyaWFudFxuTVdHLkludGVybmFsVmFyaWFudCBpbnRlcm5hbFZhcmlhbnQgPSAuLi4gLy8gc29tZSBpbml0aWFsaXphdGlvbiBvciBhc3NpZ25tZW50XG5cbi8vIENvbnZlcnQgdGhlIGludGVybmFsIHZhcmlhbnQgdG8gYSBtYXBcbk1BUDxTVFJJTkcsIE1XRy5JbnRlcm5hbFZhcmlhbnQ+IHZhcmlhbnRNYXAgPSBUb01hcChpbnRlcm5hbFZhcmlhbnQpXG5cbi8vIEl0ZXJhdGUgb3ZlciB0aGUgbWFwIGFuZCBwcmludCBlYWNoIGtleS12YWx1ZSBwYWlyXG5GT1IgRUFDSCBrZXkgSU4gdmFyaWFudE1hcCB7XG4gICAgTVdHLkludGVybmFsVmFyaWFudCB2YWx1ZSA9IHZhcmlhbnRNYXBba2V5XVxuICAgIC8vIEtleToga2V5LCBWYWx1ZTogdmFsdWVcbn0ifSwgeyJuYW1lIjogIlRvTWVkaWFUeXBlIChNV0cuSW50ZXJuYWxWYXJpYW50KSIsICJyZXR1cm5fdHlwZSI6ICJNZWRpYVR5cGUiLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyB0aGUgYE1lZGlhVHlwZWAgcmVwcmVzZW50YXRpb24gb2YgdGhlIGludGVybmFsIHZhcmlhbnQuIiwgInBhcmFtZXRlcl9kZXNjIjogIk1XRy5JbnRlcm5hbFZhcmlhbnQ6IHZhbHVlIHRvIGNvbnZlcnQuIiwgImRlc2NyaXB0aW9uIjogIkNvbnZlcnQgYW4gaW50ZXJuYWwgdmFyaWFudCB0byBhIE1lZGlhVHlwZS4iLCAiZXhhbXBsZV9jb2RlIjogIi8vIEFzc3VtZSB3ZSBoYXZlIGFuIGludGVybmFsIHZhcmlhbnQgdmFsdWVcbk1XRy5JbnRlcm5hbFZhcmlhbnQgaW50ZXJuYWxWYWx1ZSA9IEdldEludGVybmFsVmFyaWFudFZhbHVlKClcblxuLy8gQ29udmVydCB0aGUgaW50ZXJuYWwgdmFyaWFudCB0byBhIE1lZGlhVHlwZVxuTWVkaWFUeXBlIG1lZGlhVHlwZSA9IFRvTWVkaWFUeXBlKGludGVybmFsVmFsdWUpXG5cbi8vIFBlcmZvcm0gc29tZSBhY3Rpb24gYmFzZWQgb24gdGhlIE1lZGlhVHlwZVxuSUYgbWVkaWFUeXBlID09IFwiYXBwbGljYXRpb24vcGRmXCIgVEhFTiB7XG4gICAgLy8gVGhlIG1lZGlhIHR5cGUgaXMgUERGLlxufSBFTFNFIHtcbiAgICAvLyBUaGUgbWVkaWEgdHlwZSBpcyBub3QgUERGLlxufVxuXG4vLyBEdW1teSBmdW5jdGlvbiB0byBzaW11bGF0ZSBnZXR0aW5nIGFuIGludGVybmFsIHZhcmlhbnQgdmFsdWVcbkZVTkNUSU9OIEdldEludGVybmFsVmFyaWFudFZhbHVlKCkgUkVUVVJOUyBNV0cuSW50ZXJuYWxWYXJpYW50IHtcbiAgICAvLyBUaGlzIGlzIGp1c3QgYSBwbGFjZWhvbGRlci4gUmVwbGFjZSB3aXRoIGFjdHVhbCBsb2dpYyB0byBnZXQgdGhlIGludGVybmFsIHZhcmlhbnQuXG4gICAgTVdHLkludGVybmFsVmFyaWFudCBkdW1teVZhbHVlID0gXCJhcHBsaWNhdGlvbi9wZGZcIlxuICAgIFJFVFVSTiBkdW1teVZhbHVlXG59IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiLy8gQXNzdW1lIHdlIGhhdmUgYW4gaW50ZXJuYWwgdmFyaWFudCB2YWx1ZVxuTVdHLkludGVybmFsVmFyaWFudCBpbnRlcm5hbFZhbHVlID0gR2V0SW50ZXJuYWxWYXJpYW50VmFsdWUoKVxuXG4vLyBDb252ZXJ0IHRoZSBpbnRlcm5hbCB2YXJpYW50IHRvIGEgTWVkaWFUeXBlXG5NZWRpYVR5cGUgbWVkaWFUeXBlID0gVG9NZWRpYVR5cGUoaW50ZXJuYWxWYWx1ZSlcblxuLy8gUGVyZm9ybSBzb21lIGFjdGlvbiBiYXNlZCBvbiB0aGUgTWVkaWFUeXBlXG5JRiBtZWRpYVR5cGUgPT0gXCJhcHBsaWNhdGlvbi9wZGZcIiBUSEVOIHtcbiAgICAvLyBUaGUgbWVkaWEgdHlwZSBpcyBQREYuXG59IEVMU0Uge1xuICAgIC8vIFRoZSBtZWRpYSB0eXBlIGlzIG5vdCBQREYuXG59XG5cbi8vIER1bW15IGZ1bmN0aW9uIHRvIHNpbXVsYXRlIGdldHRpbmcgYW4gaW50ZXJuYWwgdmFyaWFudCB2YWx1ZVxuRlVOQ1RJT04gR2V0SW50ZXJuYWxWYXJpYW50VmFsdWUoKSBSRVRVUk5TIE1XRy5JbnRlcm5hbFZhcmlhbnQge1xuICAgIC8vIFRoaXMgaXMganVzdCBhIHBsYWNlaG9sZGVyLiBSZXBsYWNlIHdpdGggYWN0dWFsIGxvZ2ljIHRvIGdldCB0aGUgaW50ZXJuYWwgdmFyaWFudC5cbiAgICBNV0cuSW50ZXJuYWxWYXJpYW50IGR1bW15VmFsdWUgPSBcImFwcGxpY2F0aW9uL3BkZlwiXG4gICAgUkVUVVJOIGR1bW15VmFsdWVcbn0ifSwgeyJuYW1lIjogIlRvTWVkaWFUeXBlIChTVFJJTkcpIiwgInJldHVybl90eXBlIjogIk1lZGlhVHlwZSIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIHRoZSBgTWVkaWFUeXBlYCByZXByZXNlbnRhdGlvbiBvZiB0aGUgc3RyaW5nLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJTVFJJTkc6IHZhbHVlIHRvIGNvbnZlcnQuIiwgImRlc2NyaXB0aW9uIjogIkNvbnZlcnQgYSBTVFJJTkcgdG8gYSBNZWRpYVR5cGUuIiwgImV4YW1wbGVfY29kZSI6ICJTVFJJTkcgbWVkaWFUeXBlU3RyaW5nID0gXCJhcHBsaWNhdGlvbi9qc29uXCJcbk1lZGlhVHlwZSBtZWRpYVR5cGVPYmplY3QgPSBUb01lZGlhVHlwZShtZWRpYVR5cGVTdHJpbmcpXG5cbi8vIENvbnZlcnRlZCBtZWRpYSB0eXBlOiArIG1lZGlhVHlwZU9iamVjdCIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIlNUUklORyBtZWRpYVR5cGVTdHJpbmcgPSBcImFwcGxpY2F0aW9uL2pzb25cIlxuTWVkaWFUeXBlIG1lZGlhVHlwZU9iamVjdCA9IFRvTWVkaWFUeXBlKG1lZGlhVHlwZVN0cmluZylcblxuLy8gQ29udmVydGVkIG1lZGlhIHR5cGU6ICsgbWVkaWFUeXBlT2JqZWN0In0sIHsibmFtZSI6ICJUb01lZGlhVHlwZVZlY3RvciAoTVdHLkludGVybmFsVmFyaWFudCkiLCAicmV0dXJuX3R5cGUiOiAiVkVDVE9SPE1lZGlhVHlwZT4iLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyB0aGUgYE1lZGlhVHlwZWAgYFZFQ1RPUmByZXByZXNlbnRhdGlvbiBvZiB0aGUgaW50ZXJuYWwgdmFyaWFudC4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiTVdHLkludGVybmFsVmFyaWFudDogdmFsdWUgdG8gY29udmVydC4iLCAiZGVzY3JpcHRpb24iOiAiQ29udmVydCBhbiBpbnRlcm5hbCB2YXJpYW50IHRvIGEgVkVDVE9SIG9mIE1lZGlhVHlwZXMiLCAiZXhhbXBsZV9jb2RlIjogIi8vIEFzc3VtZSB3ZSBoYXZlIGFuIE1XRy5JbnRlcm5hbFZhcmlhbnQgb2JqZWN0XG5NV0cuSW50ZXJuYWxWYXJpYW50IGludGVybmFsVmFyaWFudCA9IC4uLiAvLyBzb21lIGluaXRpYWxpemF0aW9uXG5cbi8vIENvbnZlcnQgdGhlIE1XRy5JbnRlcm5hbFZhcmlhbnQgdG8gYSBWRUNUT1I8TWVkaWFUeXBlPlxuVkVDVE9SPE1lZGlhVHlwZT4gbWVkaWFUeXBlVmVjdG9yID0gaW50ZXJuYWxWYXJpYW50LlRvTWVkaWFUeXBlVmVjdG9yKClcblxuLy8gU2V0IGEgdXNlci1kZWZpbmVkIHZhcmlhYmxlIHdpdGggdGhlIGNvbnZlcnRlZCBWRUNUT1I8TWVkaWFUeXBlPlxuTVdHLlNldFVzZXJEZWZpbmVkVmFyKFwiZXhhbXBsZU1lZGlhVHlwZVZlY3RvclwiLCBtZWRpYVR5cGVWZWN0b3IpXG5cbi8vIENvbnZlcnRlZCBNZWRpYVR5cGVWZWN0b3I6IFwiICsgbWVkaWFUeXBlVmVjdG9yIiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiLy8gQXNzdW1lIHdlIGhhdmUgYW4gTVdHLkludGVybmFsVmFyaWFudCBvYmplY3Rcbk1XRy5JbnRlcm5hbFZhcmlhbnQgaW50ZXJuYWxWYXJpYW50ID0gLi4uIC8vIHNvbWUgaW5pdGlhbGl6YXRpb25cblxuLy8gQ29udmVydCB0aGUgTVdHLkludGVybmFsVmFyaWFudCB0byBhIFZFQ1RPUjxNZWRpYVR5cGU+XG5WRUNUT1I8TWVkaWFUeXBlPiBtZWRpYVR5cGVWZWN0b3IgPSBpbnRlcm5hbFZhcmlhbnQuVG9NZWRpYVR5cGVWZWN0b3IoKVxuXG4vLyBTZXQgYSB1c2VyLWRlZmluZWQgdmFyaWFibGUgd2l0aCB0aGUgY29udmVydGVkIFZFQ1RPUjxNZWRpYVR5cGU+XG5NV0cuU2V0VXNlckRlZmluZWRWYXIoXCJleGFtcGxlTWVkaWFUeXBlVmVjdG9yXCIsIG1lZGlhVHlwZVZlY3RvcilcblxuLy8gQ29udmVydGVkIE1lZGlhVHlwZVZlY3RvcjogXCIgKyBtZWRpYVR5cGVWZWN0b3IifSwgeyJuYW1lIjogIlRvTnVtYmVyIChNV0cuSW50ZXJuYWxWYXJpYW50KSIsICJyZXR1cm5fdHlwZSI6ICJOVU1CRVIiLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyB0aGUgbnVtYmVyIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBpbnRlcm5hbCB2YXJpYW50LiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJNV0cuSW50ZXJuYWxWYXJpYW50OiB2YWx1ZSB0byBjb252ZXJ0LiIsICJkZXNjcmlwdGlvbiI6ICJDb252ZXJ0IGFuIGludGVybmFsIHZhcmlhbnQgdG8gYSBOVU1CRVIuIiwgImV4YW1wbGVfY29kZSI6ICIvLyBEZWZpbmUgYSBzdHJpbmcgdmFyaWFibGVcblNUUklORyBzdHJOdW1iZXIgPSBcIjEyMzQ1XCJcblxuLy8gQ29udmVydCB0aGUgc3RyaW5nIHRvIGEgbnVtYmVyIHVzaW5nIFRvTnVtYmVyXG5OVU1CRVIgbnVtID0gVG9OdW1iZXIoc3RyTnVtYmVyKVxuXG4vLyBQZXJmb3JtIGFuIGFyaXRobWV0aWMgb3BlcmF0aW9uXG5OVU1CRVIgcmVzdWx0ID0gbnVtICsgMTBcblxuLy8gVGhlIHJlc3VsdCBpczogXCIgKyBUb1N0cmluZyhyZXN1bHQpIiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiLy8gRGVmaW5lIGEgc3RyaW5nIHZhcmlhYmxlXG5TVFJJTkcgc3RyTnVtYmVyID0gXCIxMjM0NVwiXG5cbi8vIENvbnZlcnQgdGhlIHN0cmluZyB0byBhIG51bWJlciB1c2luZyBUb051bWJlclxuTlVNQkVSIG51bSA9IFRvTnVtYmVyKHN0ck51bWJlcilcblxuLy8gUGVyZm9ybSBhbiBhcml0aG1ldGljIG9wZXJhdGlvblxuTlVNQkVSIHJlc3VsdCA9IG51bSArIDEwXG5cbi8vIFRoZSByZXN1bHQgaXM6IFwiICsgVG9TdHJpbmcocmVzdWx0KSJ9LCB7Im5hbWUiOiAiVG9OdW1iZXIgKFNUUklORykiLCAicmV0dXJuX3R5cGUiOiAiTlVNQkVSIiwgInJldHVybl9kZXNjIjogIlJldHVybnMgdGhlIG51bWVyaWNhbCByZXByZXNlbnRhdGlvbiBvZiB0aGUgaW5wdXQgc3RyaW5nLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJTVFJJTkc6IFRoZSBTVFJJTkcgdGhhdCB5b3Ugd2FudCB0byBjb252ZXJ0IHRvIGEgTlVNQkVSLiIsICJkZXNjcmlwdGlvbiI6ICJDb252ZXJ0IGEgU1RSSU5HIHRvIGEgTlVNQkVSIiwgImV4YW1wbGVfY29kZSI6ICJTVFJJTkcgc3RyVmFsdWUgPSBcIjEyMzQ1XCJcbk5VTUJFUiBudW1WYWx1ZSA9IFRvTnVtYmVyKHN0clZhbHVlKVxuLy8gVGhlIG51bWVyaWMgdmFsdWUgaXM6IG51bVZhbHVlIiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiU1RSSU5HIHN0clZhbHVlID0gXCIxMjM0NVwiXG5OVU1CRVIgbnVtVmFsdWUgPSBUb051bWJlcihzdHJWYWx1ZSlcbi8vIFRoZSBudW1lcmljIHZhbHVlIGlzOiBudW1WYWx1ZSJ9LCB7Im5hbWUiOiAiVG9OdW1iZXJWZWN0b3IgKE1XRy5JbnRlcm5hbFZhcmlhbnQpIiwgInJldHVybl90eXBlIjogIlZFQ1RPUjxOVU1CRVI+IiwgInJldHVybl9kZXNjIjogIlJldHVybnMgdGhlIG51bWJlciB2ZWN0b3IgcmVwcmVzZW50YXRpb24gb2YgdGhlIGludGVybmFsIHZhcmlhbnQuIiwgInBhcmFtZXRlcl9kZXNjIjogIk1XRy5JbnRlcm5hbFZhcmlhbnQ6IHZhbHVlIHRvIGNvbnZlcnQuIiwgImRlc2NyaXB0aW9uIjogIkNvbnZlcnQgYW4gaW50ZXJuYWwgdmFyaWFudCB0byBhIFZFQ1RPUiBvZiBOVU1CRVJzLiIsICJleGFtcGxlX2NvZGUiOiAiLy8gQXNzdW1lIHdlIGhhdmUgYW4gTVdHLkludGVybmFsVmFyaWFudCB2YWx1ZVxuTVdHLkludGVybmFsVmFyaWFudCBpbnRlcm5hbFZhcmlhbnRWYWx1ZSA9IC4uLiAvLyBzb21lIGludGVybmFsIHZhcmlhbnQgdmFsdWVcblxuLy8gQ29udmVydCB0aGUgaW50ZXJuYWwgdmFyaWFudCB0byBhIFZFQ1RPUjxOVU1CRVI+XG5WRUNUT1I8TlVNQkVSPiBudW1iZXJWZWN0b3IgPSBUb051bWJlclZlY3RvcihpbnRlcm5hbFZhcmlhbnRWYWx1ZSlcblxuLy8gQ29udmVydGVkIFZFQ1RPUjxOVU1CRVI+OiBcIiArIG51bWJlclZlY3RvciIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIi8vIEFzc3VtZSB3ZSBoYXZlIGFuIE1XRy5JbnRlcm5hbFZhcmlhbnQgdmFsdWVcbk1XRy5JbnRlcm5hbFZhcmlhbnQgaW50ZXJuYWxWYXJpYW50VmFsdWUgPSAuLi4gLy8gc29tZSBpbnRlcm5hbCB2YXJpYW50IHZhbHVlXG5cbi8vIENvbnZlcnQgdGhlIGludGVybmFsIHZhcmlhbnQgdG8gYSBWRUNUT1I8TlVNQkVSPlxuVkVDVE9SPE5VTUJFUj4gbnVtYmVyVmVjdG9yID0gVG9OdW1iZXJWZWN0b3IoaW50ZXJuYWxWYXJpYW50VmFsdWUpXG5cbi8vIENvbnZlcnRlZCBWRUNUT1I8TlVNQkVSPjogXCIgKyBudW1iZXJWZWN0b3IifSwgeyJuYW1lIjogIlRvUmVnRXhKU2kgKE1XRy5JbnRlcm5hbFZhcmlhbnQpIiwgInJldHVybl90eXBlIjogIlJlZ0V4SlNpIiwgInJldHVybl9kZXNjIjogIlJldHVybnMgdGhlIHJlZ3VsYXIgZXhwcmVzc2lvbiByZXByZXNlbnRhdGlvbiBvZiB0aGUgaW50ZXJuYWwgdmFyaWFudC4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiTVdHLkludGVybmFsVmFyaWFudDogdmFsdWUgdG8gY29udmVydC4iLCAiZGVzY3JpcHRpb24iOiAiQ29udmVydCBhbiBpbnRlcm5hbCB2YXJpYW50IHRvIGEgcmVndWxhciBleHByZXNzaW9uLiIsICJleGFtcGxlX2NvZGUiOiAiTVdHLlVSTCBjdXJyZW50VXJsID0gTVdHLlVybCgpXG5TVFJJTkcgdXJsU3RyaW5nID0gY3VycmVudFVybC5Ub1N0cmluZygpXG5cbi8vIERlZmluZSB0aGUgcmVndWxhciBleHByZXNzaW9uIHBhdHRlcm5cblNUUklORyBwYXR0ZXJuID0gXCIuKmV4YW1wbGVcXFxcLmNvbS4qXCJcblxuLy8gQ29udmVydCB0aGUgcGF0dGVybiB0byBhIFJlZ0V4SlNpIG9iamVjdFxuUmVnRXhKU2kgcmVnZXggPSBUb1JlZ0V4SlNpKHBhdHRlcm4pXG5cbi8vIENoZWNrIGlmIHRoZSBVUkwgbWF0Y2hlcyB0aGUgcGF0dGVyblxuSUYgcmVnZXguTWF0Y2godXJsU3RyaW5nKSBUSEVOIHtcbiAgICAvLyBVUkwgbWF0Y2hlcyB0aGUgcGF0dGVyblxuICAgIE1XRy5BbGxvdyhcIlVSTCBtYXRjaGVzIHRoZSBwYXR0ZXJuXCIpXG59IEVMU0Uge1xuICAgIC8vIFVSTCBkb2VzIG5vdCBtYXRjaCB0aGUgcGF0dGVyblxuICAgIE1XRy5CbG9jayhcIlVSTCBkb2VzIG5vdCBtYXRjaCB0aGUgcGF0dGVyblwiKVxufSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIk1XRy5VUkwgY3VycmVudFVybCA9IE1XRy5VcmwoKVxuU1RSSU5HIHVybFN0cmluZyA9IGN1cnJlbnRVcmwuVG9TdHJpbmcoKVxuXG4vLyBEZWZpbmUgdGhlIHJlZ3VsYXIgZXhwcmVzc2lvbiBwYXR0ZXJuXG5TVFJJTkcgcGF0dGVybiA9IFwiLipleGFtcGxlXFwuY29tLipcIlxuXG4vLyBDb252ZXJ0IHRoZSBwYXR0ZXJuIHRvIGEgUmVnRXhKU2kgb2JqZWN0XG5SZWdFeEpTaSByZWdleCA9IFRvUmVnRXhKU2kocGF0dGVybilcblxuLy8gQ2hlY2sgaWYgdGhlIFVSTCBtYXRjaGVzIHRoZSBwYXR0ZXJuXG5JRiByZWdleC5NYXRjaCh1cmxTdHJpbmcpIFRIRU4ge1xuICAgIC8vIFVSTCBtYXRjaGVzIHRoZSBwYXR0ZXJuXG4gICAgTVdHLkFsbG93KFwiVVJMIG1hdGNoZXMgdGhlIHBhdHRlcm5cIilcbn0gRUxTRSB7XG4gICAgLy8gVVJMIGRvZXMgbm90IG1hdGNoIHRoZSBwYXR0ZXJuXG4gICAgTVdHLkJsb2NrKFwiVVJMIGRvZXMgbm90IG1hdGNoIHRoZSBwYXR0ZXJuXCIpXG59In0sIHsibmFtZSI6ICJUb1JlZ0V4SlNpIChTVFJJTkcpIiwgInJldHVybl90eXBlIjogIlJlZ0V4SlNpIiwgInJldHVybl9kZXNjIjogIlJldHVybnMgYSByZWd1bGFyIGV4cHJlc3Npb24gb2JqZWN0IGNvbnN0cnVjdGVkIGZyb20gdGhlIGlucHV0IHN0cmluZy4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiU1RSSU5HOiB0aGUgaW5wdXQgdGV4dCB0byBwYXJzZSBhIHJlZ3VsYXIgZXhwcmVzc2lvbiBmcm9tLiIsICJkZXNjcmlwdGlvbiI6ICJDb25zdHJ1Y3QgYSByZWd1bGFyIGV4cHJlc3Npb24gZnJvbSBhIFNUUklORyIsICJleGFtcGxlX2NvZGUiOiAiU1RSSU5HIHBhdHRlcm4gPSBcImV4YW1wbGUuKlwiXG5SZWdFeEpTaSByZWdleCA9IFRvUmVnRXhKU2kocGF0dGVybilcblxuU1RSSU5HIHRlc3RTdHJpbmcgPSBcImV4YW1wbGVTdHJpbmdcIlxuXG5JRiByZWdleC5NYXRjaGVzKHRlc3RTdHJpbmcpIFRIRU4ge1xuICAgIC8vIFRoZSBzdHJpbmcgbWF0Y2hlcyB0aGUgcGF0dGVybi5cbn0gRUxTRSB7XG4gICAgLy8gVGhlIHN0cmluZyBkb2VzIG5vdCBtYXRjaCB0aGUgcGF0dGVybi5cbn0iLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICJTVFJJTkcgcGF0dGVybiA9IFwiZXhhbXBsZS4qXCJcblJlZ0V4SlNpIHJlZ2V4ID0gVG9SZWdFeEpTaShwYXR0ZXJuKVxuXG5TVFJJTkcgdGVzdFN0cmluZyA9IFwiZXhhbXBsZVN0cmluZ1wiXG5cbklGIHJlZ2V4Lk1hdGNoZXModGVzdFN0cmluZykgVEhFTiB7XG4gICAgLy8gVGhlIHN0cmluZyBtYXRjaGVzIHRoZSBwYXR0ZXJuLlxufSBFTFNFIHtcbiAgICAvLyBUaGUgc3RyaW5nIGRvZXMgbm90IG1hdGNoIHRoZSBwYXR0ZXJuLlxufSJ9LCB7Im5hbWUiOiAiVG9SZWdFeEpTaUxpc3QgKE1XRy5JbnRlcm5hbFZhcmlhbnQpIiwgInJldHVybl90eXBlIjogIlJlZ0V4SlNpLkxpc3QiLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyB0aGUgcmVndWxhciBleHByZXNzaW9uIGxpc3QgcmVwcmVzZW50YXRpb24gb2YgdGhlIGludGVybmFsIHZhcmlhbnQuIiwgInBhcmFtZXRlcl9kZXNjIjogIk1XRy5JbnRlcm5hbFZhcmlhbnQ6IHZhbHVlIHRvIGNvbnZlcnQuIiwgImRlc2NyaXB0aW9uIjogIkNvbnZlcnQgYW4gaW50ZXJuYWwgdmFyaWFudCB0byBhIGxpc3Qgb2YgcmVndWxhciBleHByZXNzaW9ucy4iLCAiZXhhbXBsZV9jb2RlIjogIi8vIEFzc3VtZSB3ZSBoYXZlIGFuIGludGVybmFsIHZhcmlhbnRcbk1XRy5JbnRlcm5hbFZhcmlhbnQgaW50ZXJuYWxWYXJpYW50ID0gR2V0SW50ZXJuYWxWYXJpYW50KClcblxuLy8gQ29udmVydCB0aGUgaW50ZXJuYWwgdmFyaWFudCB0byBhIGxpc3Qgb2YgcmVndWxhciBleHByZXNzaW9uc1xuUmVnRXhKU2kuTGlzdCByZWdleExpc3QgPSBUb1JlZ0V4SlNpTGlzdChpbnRlcm5hbFZhcmlhbnQpXG5cbi8vIENvbnZlcnRlZCBSZWdFeCBMaXN0OiBcbi8vIHJlZ2V4TGlzdC5Ub1N0cmluZygpXG5cbi8vIER1bW15IGZ1bmN0aW9uIHRvIHNpbXVsYXRlIGdldHRpbmcgYW4gaW50ZXJuYWwgdmFyaWFudFxuRlVOQ1RJT04gR2V0SW50ZXJuYWxWYXJpYW50KCkgUkVUVVJOUyBNV0cuSW50ZXJuYWxWYXJpYW50IHtcbiAgICAvLyBDcmVhdGUgYW5kIHJldHVybiBhIGR1bW15IGludGVybmFsIHZhcmlhbnRcbiAgICBNV0cuSW50ZXJuYWxWYXJpYW50IHZhcmlhbnRcbiAgICAvLyBQb3B1bGF0ZSB0aGUgdmFyaWFudCB3aXRoIHNvbWUgZGF0YSAodGhpcyBpcyBqdXN0IGFuIGV4YW1wbGUpXG4gICAgdmFyaWFudC5TZXRWYWx1ZShcImV4YW1wbGVLZXlcIiwgXCJleGFtcGxlVmFsdWVcIilcbiAgICBSRVRVUk4gdmFyaWFudFxufSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIi8vIEFzc3VtZSB3ZSBoYXZlIGFuIGludGVybmFsIHZhcmlhbnRcbk1XRy5JbnRlcm5hbFZhcmlhbnQgaW50ZXJuYWxWYXJpYW50ID0gR2V0SW50ZXJuYWxWYXJpYW50KClcblxuLy8gQ29udmVydCB0aGUgaW50ZXJuYWwgdmFyaWFudCB0byBhIGxpc3Qgb2YgcmVndWxhciBleHByZXNzaW9uc1xuUmVnRXhKU2kuTGlzdCByZWdleExpc3QgPSBUb1JlZ0V4SlNpTGlzdChpbnRlcm5hbFZhcmlhbnQpXG5cbi8vIENvbnZlcnRlZCBSZWdFeCBMaXN0OiBcbi8vIHJlZ2V4TGlzdC5Ub1N0cmluZygpXG5cbi8vIER1bW15IGZ1bmN0aW9uIHRvIHNpbXVsYXRlIGdldHRpbmcgYW4gaW50ZXJuYWwgdmFyaWFudFxuRlVOQ1RJT04gR2V0SW50ZXJuYWxWYXJpYW50KCkgUkVUVVJOUyBNV0cuSW50ZXJuYWxWYXJpYW50IHtcbiAgICAvLyBDcmVhdGUgYW5kIHJldHVybiBhIGR1bW15IGludGVybmFsIHZhcmlhbnRcbiAgICBNV0cuSW50ZXJuYWxWYXJpYW50IHZhcmlhbnRcbiAgICAvLyBQb3B1bGF0ZSB0aGUgdmFyaWFudCB3aXRoIHNvbWUgZGF0YSAodGhpcyBpcyBqdXN0IGFuIGV4YW1wbGUpXG4gICAgdmFyaWFudC5TZXRWYWx1ZShcImV4YW1wbGVLZXlcIiwgXCJleGFtcGxlVmFsdWVcIilcbiAgICBSRVRVUk4gdmFyaWFudFxufSJ9LCB7Im5hbWUiOiAiVG9SZWdFeEpTaUxpc3QgKFZFQ1RPUjxTVFJJTkc+KSIsICJyZXR1cm5fdHlwZSI6ICJSZWdFeEpTaS5MaXN0IiwgInJldHVybl9kZXNjIjogIlJldHVybnMgYSBsaXN0IG9mIHJlZ3VsYXIgZXhwcmVzc2lvbnMgY3JlYXRlZCBmcm9tIGEgZ2l2ZW4gdmVjdG9yIG9mIHN0cmluZ3MuIiwgInBhcmFtZXRlcl9kZXNjIjogIlZFQ1RPUjogQSBjb2xsZWN0aW9uIG9mIFNUUklOR3MgdG8gYmUgY29udmVydGVkIGludG8gYSByZWd1bGFyIGV4cHJlc3Npb24gbGlzdC4iLCAiZGVzY3JpcHRpb24iOiAiQ3JlYXRlIGEgcmVndWxhciBleHByZXNzaW9uIGxpc3QgZnJvbSBhIFNUUklORyBWRUNUT1IiLCAiZXhhbXBsZV9jb2RlIjogIi8vIERlZmluZSBhIFZFQ1RPUiBvZiBTVFJJTkdzIGNvbnRhaW5pbmcgcmVndWxhciBleHByZXNzaW9uIHBhdHRlcm5zXG5WRUNUT1I8U1RSSU5HPiBwYXR0ZXJucyA9IFwicGF0dGVybjFcIiwgXCJwYXR0ZXJuMlwiLCBcInBhdHRlcm4zXCJcblxuLy8gQ29udmVydCB0aGUgVkVDVE9SIG9mIFNUUklOR3MgaW50byBhIFJlZ0V4SlNpLkxpc3RcblJlZ0V4SlNpLkxpc3QgcmVnZXhMaXN0ID0gVG9SZWdFeEpTaUxpc3QocGF0dGVybnMpXG5cbi8vIENvbnZlcnRlZCBSZWdFeEpTaS5MaXN0OiByZWdleExpc3QiLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICIvLyBEZWZpbmUgYSBWRUNUT1Igb2YgU1RSSU5HcyBjb250YWluaW5nIHJlZ3VsYXIgZXhwcmVzc2lvbiBwYXR0ZXJuc1xuVkVDVE9SPFNUUklORz4gcGF0dGVybnMgPSBcInBhdHRlcm4xXCIsIFwicGF0dGVybjJcIiwgXCJwYXR0ZXJuM1wiXG5cbi8vIENvbnZlcnQgdGhlIFZFQ1RPUiBvZiBTVFJJTkdzIGludG8gYSBSZWdFeEpTaS5MaXN0XG5SZWdFeEpTaS5MaXN0IHJlZ2V4TGlzdCA9IFRvUmVnRXhKU2lMaXN0KHBhdHRlcm5zKVxuXG4vLyBDb252ZXJ0ZWQgUmVnRXhKU2kuTGlzdDogcmVnZXhMaXN0In0sIHsibmFtZSI6ICJUb1Nob3J0U1RSSU5HIChWRUNUT1I8TVdHLlVybENhdGVnb3J5PikiLCAicmV0dXJuX3R5cGUiOiAiU1RSSU5HIiwgInJldHVybl9kZXNjIjogIlJldHVybnMgR1RJIGNhdGVnb3J5IGxpc3QgYXMgc2hvcnQgbmFtZSBzdHJpbmcuIiwgInBhcmFtZXRlcl9kZXNjIjogIlZFQ1RPUjxNV0cuVXJsQ2F0ZWdvcnk+OiBsaXN0IHRvIGNvbnZlcnQgdG8gc2hvcnQgU1RSSU5HLiIsICJkZXNjcmlwdGlvbiI6ICJSZXR1cm5zIEdUSSBjYXRlZ29yeSBsaXN0IGFzIHNob3J0IG5hbWUgU1RSSU5HIiwgImV4YW1wbGVfY29kZSI6ICIvLyBHZXQgdGhlIGN1cnJlbnQgVVJMXG5NV0cuVVJMIGN1cnJlbnRVcmwgPSBNV0cuVXJsKClcblxuLy8gR2V0IHRoZSBjYXRlZ29yaWVzIG9mIHRoZSBjdXJyZW50IFVSTFxuVkVDVE9SPE1XRy5VcmxDYXRlZ29yeT4gdXJsQ2F0ZWdvcmllcyA9IGN1cnJlbnRVcmwuR2V0Q2F0ZWdvcmllcygpXG5cbi8vIENvbnZlcnQgdGhlIGNhdGVnb3JpZXMgdG8gYSBzaG9ydCBzdHJpbmdcblNUUklORyBzaG9ydENhdGVnb3JpZXMgPSBUb1Nob3J0U3RyaW5nKHVybENhdGVnb3JpZXMpXG5cbi8vIFNob3J0IENhdGVnb3JpZXM6IFwiICsgc2hvcnRDYXRlZ29yaWVzXG4vLyB3YXMgcHJldmlvdXNseSBwcmludGVkIHRvIHRoZSBjb25zb2xlIGhlcmUiLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICIvLyBHZXQgdGhlIGN1cnJlbnQgVVJMXG5NV0cuVVJMIGN1cnJlbnRVcmwgPSBNV0cuVXJsKClcblxuLy8gR2V0IHRoZSBjYXRlZ29yaWVzIG9mIHRoZSBjdXJyZW50IFVSTFxuVkVDVE9SPE1XRy5VcmxDYXRlZ29yeT4gdXJsQ2F0ZWdvcmllcyA9IGN1cnJlbnRVcmwuR2V0Q2F0ZWdvcmllcygpXG5cbi8vIENvbnZlcnQgdGhlIGNhdGVnb3JpZXMgdG8gYSBzaG9ydCBzdHJpbmdcblNUUklORyBzaG9ydENhdGVnb3JpZXMgPSBUb1Nob3J0U3RyaW5nKHVybENhdGVnb3JpZXMpXG5cbi8vIFNob3J0IENhdGVnb3JpZXM6IFwiICsgc2hvcnRDYXRlZ29yaWVzXG4vLyB3YXMgcHJldmlvdXNseSBwcmludGVkIHRvIHRoZSBjb25zb2xlIGhlcmUifSwgeyJuYW1lIjogIlRvU1RSSU5HIChCT09MRUFOKSIsICJyZXR1cm5fdHlwZSI6ICJTVFJJTkciLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIGEgYm9vbGVhbiB2YWx1ZS4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiQk9PTEVBTjogVGhlIEJPT0xFQU4gdmFsdWUgdG8gYmUgY29udmVydGVkIHRvIGEgU1RSSU5HLiIsICJkZXNjcmlwdGlvbiI6ICJDb252ZXJ0IGEgQk9PTEVBTiB0byBhIFNUUklORyIsICJleGFtcGxlX2NvZGUiOiAiQk9PTEVBTiBpc0FsbG93ZWQgPSBUUlVFXG5TVFJJTkcgaXNBbGxvd2VkU3RyID0gVG9TdHJpbmcoaXNBbGxvd2VkKVxuLy8gVGhlIHZhbHVlIG9mIGlzQWxsb3dlZCBpczogXCIgKyBpc0FsbG93ZWRTdHIiLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICJCT09MRUFOIGlzQWxsb3dlZCA9IFRSVUVcblNUUklORyBpc0FsbG93ZWRTdHIgPSBUb1N0cmluZyhpc0FsbG93ZWQpXG4vLyBUaGUgdmFsdWUgb2YgaXNBbGxvd2VkIGlzOiBcIiArIGlzQWxsb3dlZFN0ciJ9LCB7Im5hbWUiOiAiVG9TVFJJTkcgKERBVEFSRUYpIiwgInJldHVybl90eXBlIjogIlNUUklORyIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIHRoZSBkYXRhIHJlZmVyZW5jZWQgYnkgdGhlIGBEQVRBUkVGYCBhcyBhIHN0cmluZy4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiREFUQVJFRjogVGhlIGRhdGEgcmVmZXJlbmNlIHRvIGJlIGNvbnZlcnRlZCB0byBhIFNUUklORy4iLCAiZGVzY3JpcHRpb24iOiAiUmV0dXJucyBkYXRhIGFzIFNUUklORyIsICJleGFtcGxlX2NvZGUiOiAiTlVNQkVSIG15TnVtYmVyID0gNDJcbkJPT0xFQU4gbXlCb29sZWFuID0gVFJVRVxuXG5TVFJJTkcgbnVtYmVyQXNTdHJpbmcgPSBUb1N0cmluZyhteU51bWJlcilcblNUUklORyBib29sZWFuQXNTdHJpbmcgPSBUb1N0cmluZyhteUJvb2xlYW4pXG5cbi8vIFRoZSBudW1iZXIgYXMgYSBzdHJpbmcgaXM6IDQyXG4vLyBUaGUgYm9vbGVhbiBhcyBhIHN0cmluZyBpczogVFJVRSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIk5VTUJFUiBteU51bWJlciA9IDQyXG5CT09MRUFOIG15Qm9vbGVhbiA9IFRSVUVcblxuU1RSSU5HIG51bWJlckFzU3RyaW5nID0gVG9TdHJpbmcobXlOdW1iZXIpXG5TVFJJTkcgYm9vbGVhbkFzU3RyaW5nID0gVG9TdHJpbmcobXlCb29sZWFuKVxuXG4vLyBUaGUgbnVtYmVyIGFzIGEgc3RyaW5nIGlzOiA0MlxuLy8gVGhlIGJvb2xlYW4gYXMgYSBzdHJpbmcgaXM6IFRSVUUifSwgeyJuYW1lIjogIlRvU1RSSU5HIChKU09OKSIsICJyZXR1cm5fdHlwZSI6ICJTVFJJTkciLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBnaXZlbiBKU09OIG9iamVjdC4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiSlNPTjogdGhlIEpTT04gb2JqZWN0IHRvIGJlIGNvbnZlcnRlZCB0byBhIFNUUklORy4iLCAiZGVzY3JpcHRpb24iOiAiQ29udmVydCBhIEpTT04gb2JqZWN0IHRvIGEgU1RSSU5HIiwgImV4YW1wbGVfY29kZSI6ICIvLyBDcmVhdGUgYSBKU09OIG9iamVjdFxuSlNPTiBqc29uT2JqZWN0ID0gSlNPTigpXG5cbi8vIEFkZCBzb21lIGtleS12YWx1ZSBwYWlycyB0byB0aGUgSlNPTiBvYmplY3Rcbmpzb25PYmplY3RbXCJuYW1lXCJdID0gXCJKb2huIERvZVwiXG5qc29uT2JqZWN0W1wiYWdlXCJdID0gMzBcbmpzb25PYmplY3RbXCJpc0VtcGxveWVlXCJdID0gVFJVRVxuXG4vLyBDb252ZXJ0IHRoZSBKU09OIG9iamVjdCB0byBhIHN0cmluZ1xuU1RSSU5HIGpzb25TdHJpbmcgPSBqc29uT2JqZWN0LlRvU3RyaW5nKClcblxuLy8gVGhlIGZvbGxvd2luZyBsaW5lIHdvdWxkIHByaW50IHRoZSBKU09OIHN0cmluZyB0byB0aGUgY29uc29sZVxuLy8ganNvblN0cmluZyIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIi8vIENyZWF0ZSBhIEpTT04gb2JqZWN0XG5KU09OIGpzb25PYmplY3QgPSBKU09OKClcblxuLy8gQWRkIHNvbWUga2V5LXZhbHVlIHBhaXJzIHRvIHRoZSBKU09OIG9iamVjdFxuanNvbk9iamVjdFtcIm5hbWVcIl0gPSBcIkpvaG4gRG9lXCJcbmpzb25PYmplY3RbXCJhZ2VcIl0gPSAzMFxuanNvbk9iamVjdFtcImlzRW1wbG95ZWVcIl0gPSBUUlVFXG5cbi8vIENvbnZlcnQgdGhlIEpTT04gb2JqZWN0IHRvIGEgc3RyaW5nXG5TVFJJTkcganNvblN0cmluZyA9IGpzb25PYmplY3QuVG9TdHJpbmcoKVxuXG4vLyBUaGUgZm9sbG93aW5nIGxpbmUgd291bGQgcHJpbnQgdGhlIEpTT04gc3RyaW5nIHRvIHRoZSBjb25zb2xlXG4vLyBqc29uU3RyaW5nIn0sIHsibmFtZSI6ICJUb1NUUklORyAoTUFQPFNUUklORywgU1RSSU5HPikiLCAicmV0dXJuX3R5cGUiOiAiU1RSSU5HIiwgInJldHVybl9kZXNjIjogIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgZ2l2ZW4gcGFyYW1ldGVyLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJNQVA8U1RSSU5HLCBTVFJJTkc+OiBtYXAgdG8gY29udmVydCB0byBTVFJJTkcuIiwgImRlc2NyaXB0aW9uIjogIkNvbnZlcnQgYSBTVFJJTkcgdG8gU1RSSU5HIG1hcCB0byBhIFNUUklORyIsICJleGFtcGxlX2NvZGUiOiAiLy8gSW5pdGlhbGl6ZSBhIE1BUDxTVFJJTkcsU1RSSU5HPlxuTUFQPFNUUklORyxTVFJJTkc+IGV4YW1wbGVNYXBcbmV4YW1wbGVNYXBbXCJrZXkxXCJdID0gXCJ2YWx1ZTFcIlxuZXhhbXBsZU1hcFtcImtleTJcIl0gPSBcInZhbHVlMlwiXG5leGFtcGxlTWFwW1wia2V5M1wiXSA9IFwidmFsdWUzXCJcblxuLy8gQ29udmVydCB0aGUgbWFwIHRvIGEgc3RyaW5nXG5TVFJJTkcgbWFwQXNTdHJpbmcgPSBUb1N0cmluZyhleGFtcGxlTWFwKVxuXG4vLyBQcmludCB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtYXAgdG8gdGhlIGNvbnNvbGVcbi8vIG1hcEFzU3RyaW5nIiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiLy8gSW5pdGlhbGl6ZSBhIE1BUDxTVFJJTkcsU1RSSU5HPlxuTUFQPFNUUklORyxTVFJJTkc+IGV4YW1wbGVNYXBcbmV4YW1wbGVNYXBbXCJrZXkxXCJdID0gXCJ2YWx1ZTFcIlxuZXhhbXBsZU1hcFtcImtleTJcIl0gPSBcInZhbHVlMlwiXG5leGFtcGxlTWFwW1wia2V5M1wiXSA9IFwidmFsdWUzXCJcblxuLy8gQ29udmVydCB0aGUgbWFwIHRvIGEgc3RyaW5nXG5TVFJJTkcgbWFwQXNTdHJpbmcgPSBUb1N0cmluZyhleGFtcGxlTWFwKVxuXG4vLyBQcmludCB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtYXAgdG8gdGhlIGNvbnNvbGVcbi8vIG1hcEFzU3RyaW5nIn0sIHsibmFtZSI6ICJUb1NUUklORyAoTWVkaWFUeXBlKSIsICJyZXR1cm5fdHlwZSI6ICJTVFJJTkciLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBzcGVjaWZpZWQgbWVkaWEgdHlwZS4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiTWVkaWFUeXBlOiB0aGUgbWVkaWEgdHlwZSB0byBiZSBjb252ZXJ0ZWQgdG8gYSBTVFJJTkcuIiwgImRlc2NyaXB0aW9uIjogIkNvbnZlcnQgYSBtZWRpYSB0eXBlIHRvIGEgU1RSSU5HIiwgImV4YW1wbGVfY29kZSI6ICIvLyBBc3N1bWUgbWVkaWFUeXBlIGlzIGEgTWVkaWFUeXBlIG9iamVjdCBvYnRhaW5lZCBmcm9tIHNvbWUgcHJldmlvdXMgb3BlcmF0aW9uXG5NZWRpYVR5cGUgbWVkaWFUeXBlID0gR2V0TWVkaWFUeXBlRnJvbVNvbWV3aGVyZSgpXG5cbi8vIENvbnZlcnQgdGhlIE1lZGlhVHlwZSB0byBhIFNUUklOR1xuU1RSSU5HIG1lZGlhVHlwZVN0cmluZyA9IFRvU3RyaW5nKG1lZGlhVHlwZSlcblxuLy8gVGhlIG1lZGlhIHR5cGUgYXMgYSBzdHJpbmcgaXM6IFwiICsgbWVkaWFUeXBlU3RyaW5nIiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiLy8gQXNzdW1lIG1lZGlhVHlwZSBpcyBhIE1lZGlhVHlwZSBvYmplY3Qgb2J0YWluZWQgZnJvbSBzb21lIHByZXZpb3VzIG9wZXJhdGlvblxuTWVkaWFUeXBlIG1lZGlhVHlwZSA9IEdldE1lZGlhVHlwZUZyb21Tb21ld2hlcmUoKVxuXG4vLyBDb252ZXJ0IHRoZSBNZWRpYVR5cGUgdG8gYSBTVFJJTkdcblNUUklORyBtZWRpYVR5cGVTdHJpbmcgPSBUb1N0cmluZyhtZWRpYVR5cGUpXG5cbi8vIFRoZSBtZWRpYSB0eXBlIGFzIGEgc3RyaW5nIGlzOiBcIiArIG1lZGlhVHlwZVN0cmluZyJ9LCB7Im5hbWUiOiAiVG9TVFJJTkcgKE1XRy5BcHBsaWNhdGlvbkNhdGVnb3J5VHlwZSkiLCAicmV0dXJuX3R5cGUiOiAiU1RSSU5HIiwgInJldHVybl9kZXNjIjogIlJldHVybnMgYXBwbGljYXRpb24gY2F0ZWdvcnkgdHlwZSBhcyBhIHN0cmluZy4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiTVdHLkFwcGxpY2F0aW9uQ2F0ZWdvcnlUeXBlOiB0byBiZSBjb252ZXJ0ZWQgdG8gU1RSSU5HIiwgImRlc2NyaXB0aW9uIjogIkNvbnZlcnQgYXBwbGljYXRpb24gY2F0ZWdvcnkgdHlwZSB0byBhIFNUUklORyIsICJleGFtcGxlX2NvZGUiOiAiLy8gQXNzdW1lIHdlIGhhdmUgYW4gTVdHLkFwcGxpY2F0aW9uQ2F0ZWdvcnlUeXBlIG9iamVjdFxuTVdHLkFwcGxpY2F0aW9uQ2F0ZWdvcnlUeXBlIGFwcENhdGVnb3J5ID0gR2V0QXBwbGljYXRpb25DYXRlZ29yeSgpXG5cbi8vIENvbnZlcnQgdGhlIGFwcGxpY2F0aW9uIGNhdGVnb3J5IHRvIGEgc3RyaW5nXG5TVFJJTkcgYXBwQ2F0ZWdvcnlTdHJpbmcgPSBhcHBDYXRlZ29yeS5Ub1N0cmluZygpXG5cbi8vIEFwcGxpY2F0aW9uIENhdGVnb3J5OiBhcHBDYXRlZ29yeVN0cmluZ1xuXG4vLyBEdW1teSBmdW5jdGlvbiB0byBzaW11bGF0ZSBnZXR0aW5nIGFuIGFwcGxpY2F0aW9uIGNhdGVnb3J5XG5GVU5DVElPTiBHZXRBcHBsaWNhdGlvbkNhdGVnb3J5KCkgUkVUVVJOUyBNV0cuQXBwbGljYXRpb25DYXRlZ29yeVR5cGUge1xuICAgIC8vIFRoaXMgZnVuY3Rpb24gd291bGQgbm9ybWFsbHkgcmV0cmlldmUgdGhlIGFwcGxpY2F0aW9uIGNhdGVnb3J5XG4gICAgLy8gRm9yIHRoaXMgZXhhbXBsZSwgd2UnbGwganVzdCByZXR1cm4gYSBwbGFjZWhvbGRlciB2YWx1ZVxuICAgIFJFVFVSTiBNV0cuQXBwbGljYXRpb25DYXRlZ29yeVR5cGUoXCJFeGFtcGxlQ2F0ZWdvcnlcIilcbn0iLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICIvLyBBc3N1bWUgd2UgaGF2ZSBhbiBNV0cuQXBwbGljYXRpb25DYXRlZ29yeVR5cGUgb2JqZWN0XG5NV0cuQXBwbGljYXRpb25DYXRlZ29yeVR5cGUgYXBwQ2F0ZWdvcnkgPSBHZXRBcHBsaWNhdGlvbkNhdGVnb3J5KClcblxuLy8gQ29udmVydCB0aGUgYXBwbGljYXRpb24gY2F0ZWdvcnkgdG8gYSBzdHJpbmdcblNUUklORyBhcHBDYXRlZ29yeVN0cmluZyA9IGFwcENhdGVnb3J5LlRvU3RyaW5nKClcblxuLy8gQXBwbGljYXRpb24gQ2F0ZWdvcnk6IGFwcENhdGVnb3J5U3RyaW5nXG5cbi8vIER1bW15IGZ1bmN0aW9uIHRvIHNpbXVsYXRlIGdldHRpbmcgYW4gYXBwbGljYXRpb24gY2F0ZWdvcnlcbkZVTkNUSU9OIEdldEFwcGxpY2F0aW9uQ2F0ZWdvcnkoKSBSRVRVUk5TIE1XRy5BcHBsaWNhdGlvbkNhdGVnb3J5VHlwZSB7XG4gICAgLy8gVGhpcyBmdW5jdGlvbiB3b3VsZCBub3JtYWxseSByZXRyaWV2ZSB0aGUgYXBwbGljYXRpb24gY2F0ZWdvcnlcbiAgICAvLyBGb3IgdGhpcyBleGFtcGxlLCB3ZSdsbCBqdXN0IHJldHVybiBhIHBsYWNlaG9sZGVyIHZhbHVlXG4gICAgUkVUVVJOIE1XRy5BcHBsaWNhdGlvbkNhdGVnb3J5VHlwZShcIkV4YW1wbGVDYXRlZ29yeVwiKVxufSJ9LCB7Im5hbWUiOiAiVG9TVFJJTkcgKE1XRy5BcHBsaWNhdGlvblN1YkNhdGVnb3J5VHlwZSkiLCAicmV0dXJuX3R5cGUiOiAiU1RSSU5HIiwgInJldHVybl9kZXNjIjogIlJldHVybnMgYXBwbGljYXRpb24gc3ViY2F0ZWdvcnkgdHlwZSBhcyBhIHN0cmluZy4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiTVdHLkFwcGxpY2F0aW9uU3ViQ2F0ZWdvcnlUeXBlOiB0byBiZSBjb252ZXJ0ZWQgdG8gU1RSSU5HIiwgImRlc2NyaXB0aW9uIjogIkNvbnZlcnQgYXBwbGljYXRpb24gc3ViY2F0ZWdvcnkgdHlwZSB0byBhIFNUUklORyIsICJleGFtcGxlX2NvZGUiOiAiLy8gQXNzdW1lIHdlIGhhdmUgYW4gTVdHLkFwcGxpY2F0aW9uU3ViQ2F0ZWdvcnlUeXBlIG9iamVjdFxuTVdHLkFwcGxpY2F0aW9uU3ViQ2F0ZWdvcnlUeXBlIGFwcFN1YkNhdGVnb3J5ID0gR2V0QXBwbGljYXRpb25TdWJDYXRlZ29yeSgpXG5cbi8vIENvbnZlcnQgdGhlIE1XRy5BcHBsaWNhdGlvblN1YkNhdGVnb3J5VHlwZSBvYmplY3QgdG8gYSBzdHJpbmdcblNUUklORyBhcHBTdWJDYXRlZ29yeVN0cmluZyA9IGFwcFN1YkNhdGVnb3J5LlRvU3RyaW5nKClcblxuLy8gUHJpbnQgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiB0byB0aGUgY29uc29sZVxuLy8gYXBwU3ViQ2F0ZWdvcnlTdHJpbmdcblxuLy8gRHVtbXkgZnVuY3Rpb24gdG8gc2ltdWxhdGUgb2J0YWluaW5nIGFuIE1XRy5BcHBsaWNhdGlvblN1YkNhdGVnb3J5VHlwZSBvYmplY3RcbkZVTkNUSU9OIE1XRy5BcHBsaWNhdGlvblN1YkNhdGVnb3J5VHlwZSBHZXRBcHBsaWNhdGlvblN1YkNhdGVnb3J5KCkge1xuICAgIC8vIEltcGxlbWVudGF0aW9uIHRvIGdldCB0aGUgTVdHLkFwcGxpY2F0aW9uU3ViQ2F0ZWdvcnlUeXBlIG9iamVjdFxuICAgIC8vIFRoaXMgaXMganVzdCBhIHBsYWNlaG9sZGVyIGZvciB0aGUgYWN0dWFsIGltcGxlbWVudGF0aW9uXG4gICAgUkVUVVJOIHNvbWVBcHBTdWJDYXRlZ29yeU9iamVjdFxufSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIi8vIEFzc3VtZSB3ZSBoYXZlIGFuIE1XRy5BcHBsaWNhdGlvblN1YkNhdGVnb3J5VHlwZSBvYmplY3Rcbk1XRy5BcHBsaWNhdGlvblN1YkNhdGVnb3J5VHlwZSBhcHBTdWJDYXRlZ29yeSA9IEdldEFwcGxpY2F0aW9uU3ViQ2F0ZWdvcnkoKVxuXG4vLyBDb252ZXJ0IHRoZSBNV0cuQXBwbGljYXRpb25TdWJDYXRlZ29yeVR5cGUgb2JqZWN0IHRvIGEgc3RyaW5nXG5TVFJJTkcgYXBwU3ViQ2F0ZWdvcnlTdHJpbmcgPSBhcHBTdWJDYXRlZ29yeS5Ub1N0cmluZygpXG5cbi8vIFByaW50IHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gdG8gdGhlIGNvbnNvbGVcbi8vIGFwcFN1YkNhdGVnb3J5U3RyaW5nXG5cbi8vIER1bW15IGZ1bmN0aW9uIHRvIHNpbXVsYXRlIG9idGFpbmluZyBhbiBNV0cuQXBwbGljYXRpb25TdWJDYXRlZ29yeVR5cGUgb2JqZWN0XG5GVU5DVElPTiBNV0cuQXBwbGljYXRpb25TdWJDYXRlZ29yeVR5cGUgR2V0QXBwbGljYXRpb25TdWJDYXRlZ29yeSgpIHtcbiAgICAvLyBJbXBsZW1lbnRhdGlvbiB0byBnZXQgdGhlIE1XRy5BcHBsaWNhdGlvblN1YkNhdGVnb3J5VHlwZSBvYmplY3RcbiAgICAvLyBUaGlzIGlzIGp1c3QgYSBwbGFjZWhvbGRlciBmb3IgdGhlIGFjdHVhbCBpbXBsZW1lbnRhdGlvblxuICAgIFJFVFVSTiBzb21lQXBwU3ViQ2F0ZWdvcnlPYmplY3Rcbn0ifSwgeyJuYW1lIjogIlRvU1RSSU5HIChNV0cuQXBwbGljYXRpb25UeXBlKSIsICJyZXR1cm5fdHlwZSI6ICJTVFJJTkciLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyB0aGUgYXBwbGljYXRpb24ncyBJRCBhcyBhIHN0cmluZy4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiTVdHLkFwcGxpY2F0aW9uVHlwZTogdGhlIHR5cGUgb2YgYXBwbGljYXRpb24gZm9yIHdoaWNoIHRoZSBJRCBpcyB0byBiZSByZXR1cm5lZCBhcyBhIFNUUklORy4iLCAiZGVzY3JpcHRpb24iOiAiUmV0dXJucyB0aGUgaWQgb2YgYW4gYXBwbGljYXRpb24iLCAiZXhhbXBsZV9jb2RlIjogIi8vIEFzc3VtZSB3ZSBoYXZlIGFuIE1XRy5BcHBsaWNhdGlvblR5cGUgb2JqZWN0XG5NV0cuQXBwbGljYXRpb25UeXBlIGFwcFR5cGUgPSBHZXRBcHBsaWNhdGlvblR5cGUoKSAvLyBUaGlzIGlzIGEgcGxhY2Vob2xkZXIgZm9yIGhvd2V2ZXIgeW91IG9idGFpbiB0aGUgYXBwbGljYXRpb24gdHlwZVxuXG4vLyBDb252ZXJ0IHRoZSBNV0cuQXBwbGljYXRpb25UeXBlIG9iamVjdCB0byBhIFNUUklOR1xuU1RSSU5HIGFwcFR5cGVTdHJpbmcgPSBhcHBUeXBlLlRvU3RyaW5nKClcblxuLy8gUHJpbnQgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiB0byB0aGUgY29uc29sZVxuLy8gQXBwbGljYXRpb24gVHlwZTogXCIgKyBhcHBUeXBlU3RyaW5nIiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiLy8gQXNzdW1lIHdlIGhhdmUgYW4gTVdHLkFwcGxpY2F0aW9uVHlwZSBvYmplY3Rcbk1XRy5BcHBsaWNhdGlvblR5cGUgYXBwVHlwZSA9IEdldEFwcGxpY2F0aW9uVHlwZSgpIC8vIFRoaXMgaXMgYSBwbGFjZWhvbGRlciBmb3IgaG93ZXZlciB5b3Ugb2J0YWluIHRoZSBhcHBsaWNhdGlvbiB0eXBlXG5cbi8vIENvbnZlcnQgdGhlIE1XRy5BcHBsaWNhdGlvblR5cGUgb2JqZWN0IHRvIGEgU1RSSU5HXG5TVFJJTkcgYXBwVHlwZVN0cmluZyA9IGFwcFR5cGUuVG9TdHJpbmcoKVxuXG4vLyBQcmludCB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIHRvIHRoZSBjb25zb2xlXG4vLyBBcHBsaWNhdGlvbiBUeXBlOiBcIiArIGFwcFR5cGVTdHJpbmcifSwgeyJuYW1lIjogIlRvU1RSSU5HIChNV0cuSW50ZXJuYWxWYXJpYW50KSIsICJyZXR1cm5fdHlwZSI6ICJTVFJJTkciLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyBhbiBpbnRlcm5hbCB2YXJpYW50IGFzIGEgc3RyaW5nLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJNV0cuSW50ZXJuYWxWYXJpYW50OiB0byBiZSBjb252ZXJ0ZWQgdG8gU1RSSU5HIiwgImRlc2NyaXB0aW9uIjogIkNvbnZlcnRzIGludGVybmFsIHZhcmlhbnQgdG8gU1RSSU5HIiwgImV4YW1wbGVfY29kZSI6ICIvLyBBc3N1bWUgd2UgaGF2ZSBhbiBNV0cuSW50ZXJuYWxWYXJpYW50IG9iamVjdFxuTVdHLkludGVybmFsVmFyaWFudCB2YXJpYW50ID0gR2V0U29tZUludGVybmFsVmFyaWFudCgpXG5cbi8vIENvbnZlcnQgdGhlIEludGVybmFsVmFyaWFudCB0byBhIHN0cmluZ1xuU1RSSU5HIHZhcmlhbnRTdHJpbmcgPSB2YXJpYW50LlRvU3RyaW5nKClcblxuLy8gUHJpbnQgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiB0byB0aGUgY29uc29sZVxuLy8gdmFyaWFudFN0cmluZ1xuXG4vLyBEdW1teSBmdW5jdGlvbiB0byBzaW11bGF0ZSBvYnRhaW5pbmcgYW4gTVdHLkludGVybmFsVmFyaWFudCBvYmplY3RcbkZVTkNUSU9OIEdldFNvbWVJbnRlcm5hbFZhcmlhbnQoKSBSRVRVUk5TIE1XRy5JbnRlcm5hbFZhcmlhbnQge1xuICAgIC8vIEltcGxlbWVudGF0aW9uIHRvIGdldCBhbiBNV0cuSW50ZXJuYWxWYXJpYW50IG9iamVjdFxuICAgIC8vIFRoaXMgaXMganVzdCBhIHBsYWNlaG9sZGVyIGZvciB0aGUgYWN0dWFsIGltcGxlbWVudGF0aW9uXG4gICAgTVdHLkludGVybmFsVmFyaWFudCBleGFtcGxlVmFyaWFudFxuICAgIC8vIFNldCBzb21lIHZhbHVlIHRvIHRoZSBleGFtcGxlVmFyaWFudFxuICAgIHJldHVybiBleGFtcGxlVmFyaWFudFxufSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIi8vIEFzc3VtZSB3ZSBoYXZlIGFuIE1XRy5JbnRlcm5hbFZhcmlhbnQgb2JqZWN0XG5NV0cuSW50ZXJuYWxWYXJpYW50IHZhcmlhbnQgPSBHZXRTb21lSW50ZXJuYWxWYXJpYW50KClcblxuLy8gQ29udmVydCB0aGUgSW50ZXJuYWxWYXJpYW50IHRvIGEgc3RyaW5nXG5TVFJJTkcgdmFyaWFudFN0cmluZyA9IHZhcmlhbnQuVG9TdHJpbmcoKVxuXG4vLyBQcmludCB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIHRvIHRoZSBjb25zb2xlXG4vLyB2YXJpYW50U3RyaW5nXG5cbi8vIER1bW15IGZ1bmN0aW9uIHRvIHNpbXVsYXRlIG9idGFpbmluZyBhbiBNV0cuSW50ZXJuYWxWYXJpYW50IG9iamVjdFxuRlVOQ1RJT04gR2V0U29tZUludGVybmFsVmFyaWFudCgpIFJFVFVSTlMgTVdHLkludGVybmFsVmFyaWFudCB7XG4gICAgLy8gSW1wbGVtZW50YXRpb24gdG8gZ2V0IGFuIE1XRy5JbnRlcm5hbFZhcmlhbnQgb2JqZWN0XG4gICAgLy8gVGhpcyBpcyBqdXN0IGEgcGxhY2Vob2xkZXIgZm9yIHRoZSBhY3R1YWwgaW1wbGVtZW50YXRpb25cbiAgICBNV0cuSW50ZXJuYWxWYXJpYW50IGV4YW1wbGVWYXJpYW50XG4gICAgLy8gU2V0IHNvbWUgdmFsdWUgdG8gdGhlIGV4YW1wbGVWYXJpYW50XG4gICAgcmV0dXJuIGV4YW1wbGVWYXJpYW50XG59In0sIHsibmFtZSI6ICJUb1NUUklORyAoTVdHLlVybENhdGVnb3J5KSIsICJyZXR1cm5fdHlwZSI6ICJTVFJJTkciLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyB0aGUgR1RJIGNhdGVnb3J5IGFzIGEgc3RyaW5nLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJNV0cuVXJsQ2F0ZWdvcnk6IHRoZSBVUkwgY2F0ZWdvcnkgZnJvbSB3aGljaCB0aGUgZnVuY3Rpb24gd2lsbCBnZW5lcmF0ZSBhIEdUSSBjYXRlZ29yeSBTVFJJTkcuIiwgImRlc2NyaXB0aW9uIjogIlJldHVybnMgR1RJIGNhdGVnb3J5IFNUUklORyIsICJleGFtcGxlX2NvZGUiOiAiTVdHLlVSTCBjdXJyZW50VXJsID0gTVdHLlVybCgpXG5NV0cuVXJsQ2F0ZWdvcnkgdXJsQ2F0ZWdvcnkgPSBjdXJyZW50VXJsLkNhdGVnb3J5KClcblNUUklORyBjYXRlZ29yeVN0cmluZyA9IFRvU3RyaW5nKHVybENhdGVnb3J5KVxuXG4vLyBUaGUgVVJMIGNhdGVnb3J5IGlzOiBjYXRlZ29yeVN0cmluZyIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIk1XRy5VUkwgY3VycmVudFVybCA9IE1XRy5VcmwoKVxuTVdHLlVybENhdGVnb3J5IHVybENhdGVnb3J5ID0gY3VycmVudFVybC5DYXRlZ29yeSgpXG5TVFJJTkcgY2F0ZWdvcnlTdHJpbmcgPSBUb1N0cmluZyh1cmxDYXRlZ29yeSlcblxuLy8gVGhlIFVSTCBjYXRlZ29yeSBpczogY2F0ZWdvcnlTdHJpbmcifSwgeyJuYW1lIjogIlRvU1RSSU5HIChOZXQuSVApIiwgInJldHVybl90eXBlIjogIlNUUklORyIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIGdpdmVuIElQIGFkZHJlc3MuIiwgInBhcmFtZXRlcl9kZXNjIjogIk5ldC5JUDogVGhlIElQIGFkZHJlc3MgdG8gYmUgY29udmVydGVkIHRvIGEgU1RSSU5HLiIsICJkZXNjcmlwdGlvbiI6ICJDb252ZXJ0IGFuIElQIGFkZHJlc3MgdG8gYSBTVFJJTkciLCAiZXhhbXBsZV9jb2RlIjogIi8vIEFzc3VtZSB3ZSBoYXZlIGFuIElQIGFkZHJlc3Mgb2JqZWN0XG5OZXQuSVAgaXBBZGRyZXNzID0gXCIxOTIuMTY4LjEuMVwiXG5cbi8vIENvbnZlcnQgdGhlIElQIGFkZHJlc3MgdG8gYSBzdHJpbmdcblNUUklORyBpcFN0cmluZyA9IE5ldC5Ub1N0cmluZyhpcEFkZHJlc3MpXG5cbi8vIFRoZSBJUCBhZGRyZXNzIGFzIGEgc3RyaW5nIGlzOiBcIiArIGlwU3RyaW5nIiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiLy8gQXNzdW1lIHdlIGhhdmUgYW4gSVAgYWRkcmVzcyBvYmplY3Rcbk5ldC5JUCBpcEFkZHJlc3MgPSBcIjE5Mi4xNjguMS4xXCJcblxuLy8gQ29udmVydCB0aGUgSVAgYWRkcmVzcyB0byBhIHN0cmluZ1xuU1RSSU5HIGlwU3RyaW5nID0gTmV0LlRvU3RyaW5nKGlwQWRkcmVzcylcblxuLy8gVGhlIElQIGFkZHJlc3MgYXMgYSBzdHJpbmcgaXM6IFwiICsgaXBTdHJpbmcifSwgeyJuYW1lIjogIlRvU1RSSU5HIChOZXQuSVBSYW5nZSkiLCAicmV0dXJuX3R5cGUiOiAiU1RSSU5HIiwgInJldHVybl9kZXNjIjogIlJldHVybnMgYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIGdpdmVuIElQIHJhbmdlLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJOZXQuSVBSYW5nZTogdGhlIElQIHJhbmdlIG9iamVjdCB0byBiZSBjb252ZXJ0ZWQgdG8gYSBTVFJJTkcuIiwgImRlc2NyaXB0aW9uIjogIkNvbnZlcnQgSVAgcmFuZ2UgdG8gYSBTVFJJTkciLCAiZXhhbXBsZV9jb2RlIjogIi8vIERlZmluZSBhbiBJUCByYW5nZVxuTmV0LklQUmFuZ2UgaXBSYW5nZSA9IE5ldC5JUFJhbmdlKFwiMTkyLjE2OC4xLjBcIiwgXCIxOTIuMTY4LjEuMjU1XCIpXG5cbi8vIENvbnZlcnQgdGhlIElQIHJhbmdlIHRvIGEgc3RyaW5nXG5TVFJJTkcgaXBSYW5nZVN0cmluZyA9IFRvU3RyaW5nKGlwUmFuZ2UpXG5cbi8vIFRoZSBJUCByYW5nZSBpczogXG4vLyBpcFJhbmdlU3RyaW5nIiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiLy8gRGVmaW5lIGFuIElQIHJhbmdlXG5OZXQuSVBSYW5nZSBpcFJhbmdlID0gTmV0LklQUmFuZ2UoXCIxOTIuMTY4LjEuMFwiLCBcIjE5Mi4xNjguMS4yNTVcIilcblxuLy8gQ29udmVydCB0aGUgSVAgcmFuZ2UgdG8gYSBzdHJpbmdcblNUUklORyBpcFJhbmdlU3RyaW5nID0gVG9TdHJpbmcoaXBSYW5nZSlcblxuLy8gVGhlIElQIHJhbmdlIGlzOiBcbi8vIGlwUmFuZ2VTdHJpbmcifSwgeyJuYW1lIjogIlRvU1RSSU5HIChOVU1CRVIpIiwgInJldHVybl90eXBlIjogIlNUUklORyIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIGdpdmVuIG51bWJlci4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiTlVNQkVSOiB0aGUgbnVtZXJpYyB2YWx1ZSB0byBiZSBjb252ZXJ0ZWQgdG8gYSBTVFJJTkcuIiwgImRlc2NyaXB0aW9uIjogIkNvbnZlcnQgYSBOVU1CRVIgdG8gYSBTVFJJTkciLCAiZXhhbXBsZV9jb2RlIjogIk5VTUJFUiBteU51bWJlciA9IDEyMy40NVxuU1RSSU5HIG15U3RyaW5nID0gVG9TdHJpbmcobXlOdW1iZXIpXG4vLyBPdXRwdXR0aW5nIG15U3RyaW5nIHRvIHRoZSBjb25zb2xlIiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiTlVNQkVSIG15TnVtYmVyID0gMTIzLjQ1XG5TVFJJTkcgbXlTdHJpbmcgPSBUb1N0cmluZyhteU51bWJlcilcbi8vIE91dHB1dHRpbmcgbXlTdHJpbmcgdG8gdGhlIGNvbnNvbGUifSwgeyJuYW1lIjogIlRvU1RSSU5HIChOVU1CRVIsIE5VTUJFUikiLCAicmV0dXJuX3R5cGUiOiAiU1RSSU5HIiwgInJldHVybl9kZXNjIjogIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgZ2l2ZW4gcGFyYW1ldGVyLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJOVU1CRVI6IGlucHV0IHRvIGNvbnZlcnQgdG8gU1RSSU5HOyBOVU1CRVI6IGRlc2lyZWQgYW1vdW50IG9mIGRlY2ltYWwgcGxhY2VzLiIsICJkZXNjcmlwdGlvbiI6ICJSZXR1cm5zIHRoZSBpbnB1dCBkZWNpbWFsIE5VTUJFUiBhcyBTVFJJTkcgd2l0aCB0aGUgaW5wdXQgZGVjaW1hbCBwbGFjZXMoZS5nLiAxMC4xMjM0LCAyIHdpbGwgcmV0dXJuIDEwLjEyKSIsICJleGFtcGxlX2NvZGUiOiAiTlVNQkVSIHZhbHVlID0gMTIzLjQ1NlxuU1RSSU5HIHN0cmluZ1ZhbHVlID0gVG9TdHJpbmcodmFsdWUpXG4vLyBPdXRwdXR0aW5nIHRoZSBzdHJpbmdWYWx1ZSB0byB0aGUgY29uc29sZSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIk5VTUJFUiB2YWx1ZSA9IDEyMy40NTZcblNUUklORyBzdHJpbmdWYWx1ZSA9IFRvU3RyaW5nKHZhbHVlKVxuLy8gT3V0cHV0dGluZyB0aGUgc3RyaW5nVmFsdWUgdG8gdGhlIGNvbnNvbGUifSwgeyJuYW1lIjogIlRvU1RSSU5HIChWRUNUT1I8TWVkaWFUeXBlPikiLCAicmV0dXJuX3R5cGUiOiAiU1RSSU5HIiwgInJldHVybl9kZXNjIjogIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgZ2l2ZW4gcGFyYW1ldGVyLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJWRUNUT1I8TWVkaWFUeXBlPjogbGlzdCB0byBjb252ZXJ0IHRvIFNUUklORy4iLCAiZGVzY3JpcHRpb24iOiAiQ29udmVydCBhIG1lZGlhIHR5cGUgbGlzdCB0byBhIFNUUklORy4gRWxlbWVudHMgYXJlIHNlcGFyYXRlZCBieSAnLCAnIiwgImV4YW1wbGVfY29kZSI6ICIvLyBJbml0aWFsaXplIGEgVkVDVE9SIG9mIE1lZGlhVHlwZVxuVkVDVE9SPE1lZGlhVHlwZT4gbWVkaWFUeXBlcyA9IE1lZGlhVHlwZShcImltYWdlL2pwZWdcIiksIE1lZGlhVHlwZShcImFwcGxpY2F0aW9uL3BkZlwiKSwgTWVkaWFUeXBlKFwidGV4dC9odG1sXCIpO1xuXG4vLyBDb252ZXJ0IHRoZSBWRUNUT1I8TWVkaWFUeXBlPiB0byBhIFNUUklOR1xuU1RSSU5HIG1lZGlhVHlwZXNTdHJpbmcgPSBUb1N0cmluZyhtZWRpYVR5cGVzKTtcblxuLy8gUHJpbnQgdGhlIHJlc3VsdGluZyBTVFJJTkcgdG8gdGhlIGNvbnNvbGVcbi8vIG1lZGlhVHlwZXNTdHJpbmciLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICIvLyBJbml0aWFsaXplIGEgVkVDVE9SIG9mIE1lZGlhVHlwZVxuVkVDVE9SPE1lZGlhVHlwZT4gbWVkaWFUeXBlcyA9IE1lZGlhVHlwZShcImltYWdlL2pwZWdcIiksIE1lZGlhVHlwZShcImFwcGxpY2F0aW9uL3BkZlwiKSwgTWVkaWFUeXBlKFwidGV4dC9odG1sXCIpO1xuXG4vLyBDb252ZXJ0IHRoZSBWRUNUT1I8TWVkaWFUeXBlPiB0byBhIFNUUklOR1xuU1RSSU5HIG1lZGlhVHlwZXNTdHJpbmcgPSBUb1N0cmluZyhtZWRpYVR5cGVzKTtcblxuLy8gUHJpbnQgdGhlIHJlc3VsdGluZyBTVFJJTkcgdG8gdGhlIGNvbnNvbGVcbi8vIG1lZGlhVHlwZXNTdHJpbmcifSwgeyJuYW1lIjogIlRvU1RSSU5HIChWRUNUT1I8TWVkaWFUeXBlPiwgU1RSSU5HKSIsICJyZXR1cm5fdHlwZSI6ICJTVFJJTkciLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBnaXZlbiBwYXJhbWV0ZXIuIiwgInBhcmFtZXRlcl9kZXNjIjogIlZFQ1RPUjxNZWRpYVR5cGU+OiBsaXN0IHRvIGNvbnZlcnQgdG8gU1RSSU5HOyBTVFJJTkc6IHNlcGFyYXRvciB0byBwdXQgYmV0d2VlbiBlbGVtZW50cy4iLCAiZGVzY3JpcHRpb24iOiAiQ29udmVydCBhIG1lZGlhIHR5cGUgbGlzdCB0byBhIFNUUklORy4gRWxlbWVudHMgYXJlIHNlcGFyYXRlZCBieSBnaXZlbiBzZXBhcmF0b3IiLCAiZXhhbXBsZV9jb2RlIjogIi8vIEluaXRpYWxpemUgYSBWRUNUT1Igb2YgTWVkaWFUeXBlXG5WRUNUT1I8TWVkaWFUeXBlPiBtZWRpYVR5cGVzID0gTWVkaWFUeXBlKFwiaW1hZ2UvanBlZ1wiKSwgTWVkaWFUeXBlKFwiYXBwbGljYXRpb24vcGRmXCIpLCBNZWRpYVR5cGUoXCJ0ZXh0L2h0bWxcIik7XG5cbi8vIENvbnZlcnQgdGhlIFZFQ1RPUiB0byBhIFNUUklOR1xuU1RSSU5HIG1lZGlhVHlwZXNTdHJpbmcgPSBUb1N0cmluZyhtZWRpYVR5cGVzKTtcblxuLy8gUHJpbnQgdGhlIFNUUklORyByZXByZXNlbnRhdGlvbiB0byB0aGUgY29uc29sZVxuLy8gbWVkaWFUeXBlc1N0cmluZyIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIi8vIEluaXRpYWxpemUgYSBWRUNUT1Igb2YgTWVkaWFUeXBlXG5WRUNUT1I8TWVkaWFUeXBlPiBtZWRpYVR5cGVzID0gTWVkaWFUeXBlKFwiaW1hZ2UvanBlZ1wiKSwgTWVkaWFUeXBlKFwiYXBwbGljYXRpb24vcGRmXCIpLCBNZWRpYVR5cGUoXCJ0ZXh0L2h0bWxcIik7XG5cbi8vIENvbnZlcnQgdGhlIFZFQ1RPUiB0byBhIFNUUklOR1xuU1RSSU5HIG1lZGlhVHlwZXNTdHJpbmcgPSBUb1N0cmluZyhtZWRpYVR5cGVzKTtcblxuLy8gUHJpbnQgdGhlIFNUUklORyByZXByZXNlbnRhdGlvbiB0byB0aGUgY29uc29sZVxuLy8gbWVkaWFUeXBlc1N0cmluZyJ9LCB7Im5hbWUiOiAiVG9TVFJJTkcgKFZFQ1RPUjxNV0cuVXJsQ2F0ZWdvcnk+KSIsICJyZXR1cm5fdHlwZSI6ICJTVFJJTkciLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBnaXZlbiBwYXJhbWV0ZXIuIiwgInBhcmFtZXRlcl9kZXNjIjogIlZFQ1RPUjxNV0cuVXJsQ2F0ZWdvcnk+OiBsaXN0IHRvIGNvbnZlcnQgdG8gU1RSSU5HLiIsICJkZXNjcmlwdGlvbiI6ICJDb252ZXJ0IGEgdXJsIGNhdGVnb3J5IGxpc3QgdG8gYSBTVFJJTkcuIiwgImV4YW1wbGVfY29kZSI6ICIvLyBBc3N1bWUgd2UgaGF2ZSBhIFZFQ1RPUiBvZiBNV0cuVXJsQ2F0ZWdvcnlcblZFQ1RPUjxNV0cuVXJsQ2F0ZWdvcnk+IHVybENhdGVnb3JpZXMgPSBbXCJleGFtcGxlX3VybF9jYXRlZ29yeV9saXN0XCJdXG5cbi8vIENvbnZlcnQgdGhlIFZFQ1RPUjxNV0cuVXJsQ2F0ZWdvcnk+IHRvIGEgU1RSSU5HXG5TVFJJTkcgdXJsQ2F0ZWdvcmllc1N0cmluZyA9IFRvU3RyaW5nKHVybENhdGVnb3JpZXMpXG5cbi8vIFRoaXMgbGluZSB3b3VsZCBwcmludCB0aGUgU1RSSU5HIHJlcHJlc2VudGF0aW9uIHRvIHRoZSBjb25zb2xlXG4vLyB1cmxDYXRlZ29yaWVzU3RyaW5nIiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiLy8gQXNzdW1lIHdlIGhhdmUgYSBWRUNUT1Igb2YgTVdHLlVybENhdGVnb3J5XG5WRUNUT1I8TVdHLlVybENhdGVnb3J5PiB1cmxDYXRlZ29yaWVzID0gW1wiZXhhbXBsZV91cmxfY2F0ZWdvcnlfbGlzdFwiXVxuXG4vLyBDb252ZXJ0IHRoZSBWRUNUT1I8TVdHLlVybENhdGVnb3J5PiB0byBhIFNUUklOR1xuU1RSSU5HIHVybENhdGVnb3JpZXNTdHJpbmcgPSBUb1N0cmluZyh1cmxDYXRlZ29yaWVzKVxuXG4vLyBUaGlzIGxpbmUgd291bGQgcHJpbnQgdGhlIFNUUklORyByZXByZXNlbnRhdGlvbiB0byB0aGUgY29uc29sZVxuLy8gdXJsQ2F0ZWdvcmllc1N0cmluZyJ9LCB7Im5hbWUiOiAiVG9TVFJJTkcgKFZFQ1RPUjxOZXQuSVA+KSIsICJyZXR1cm5fdHlwZSI6ICJTVFJJTkciLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBnaXZlbiBwYXJhbWV0ZXIuIiwgInBhcmFtZXRlcl9kZXNjIjogIlZFQ1RPUjxOZXQuSVA+OiBsaXN0IHRvIGNvbnZlcnQgdG8gU1RSSU5HLiIsICJkZXNjcmlwdGlvbiI6ICJSZXR1cm4gYW4gSVAgbGlzdCBhcyBhIFNUUklORyIsICJleGFtcGxlX2NvZGUiOiAiVkVDVE9SPE5ldC5JUD4gaXBMaXN0ID0gTmV0LklQKFwiMTkyLjE2OC4xLjFcIiksIE5ldC5JUChcIjEwLjAuMC4xXCIpLCBOZXQuSVAoXCIxNzIuMTYuMC4xXCIpXG5TVFJJTkcgaXBTdHJpbmcgPSBOZXQuVG9TdHJpbmcoaXBMaXN0KVxuLy8gT3V0cHV0IHRoZSBJUCBzdHJpbmcgdG8gdGhlIGNvbnNvbGVcbi8vIGlwU3RyaW5nIiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiVkVDVE9SPE5ldC5JUD4gaXBMaXN0ID0gTmV0LklQKFwiMTkyLjE2OC4xLjFcIiksIE5ldC5JUChcIjEwLjAuMC4xXCIpLCBOZXQuSVAoXCIxNzIuMTYuMC4xXCIpXG5TVFJJTkcgaXBTdHJpbmcgPSBOZXQuVG9TdHJpbmcoaXBMaXN0KVxuLy8gT3V0cHV0IHRoZSBJUCBzdHJpbmcgdG8gdGhlIGNvbnNvbGVcbi8vIGlwU3RyaW5nIn0sIHsibmFtZSI6ICJUb1NUUklORyAoVkVDVE9SPE5ldC5JUD4sIFNUUklORykiLCAicmV0dXJuX3R5cGUiOiAiU1RSSU5HIiwgInJldHVybl9kZXNjIjogIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgZ2l2ZW4gcGFyYW1ldGVyLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJWRUNUT1I8TmV0LklQPjogbGlzdCB0byBjb252ZXJ0IHRvIFNUUklORzsgU1RSSU5HOiBzZXBhcmF0b3IgdG8gcHV0IGJldHdlZW4gZWxlbWVudHMuIiwgImRlc2NyaXB0aW9uIjogIlJldHVybnMgbGlzdCBvZiBJUCBhZGRyZXNzZXMgYXMgYSBTVFJJTkcgd2l0aCB0aGUgaW5wdXQgZGVsaW1pdGVyICh1c2VzIFwiLFwiIGlmIGRlbGltaXRlciBpcyBlbXB0eSkiLCAiZXhhbXBsZV9jb2RlIjogIlZFQ1RPUjxOZXQuSVA+IGlwTGlzdCA9IE5ldC5JUChcIjE5Mi4xNjguMS4xXCIpLCBOZXQuSVAoXCIxMC4wLjAuMVwiKSwgTmV0LklQKFwiMTcyLjE2LjAuMVwiKVxuU1RSSU5HIGlwU3RyaW5nID0gTmV0LlRvU3RyaW5nKGlwTGlzdClcbi8vIE91dHB1dCB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBJUCBsaXN0IHRvIHRoZSBjb25zb2xlXG4vLyBpcFN0cmluZyIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIlZFQ1RPUjxOZXQuSVA+IGlwTGlzdCA9IE5ldC5JUChcIjE5Mi4xNjguMS4xXCIpLCBOZXQuSVAoXCIxMC4wLjAuMVwiKSwgTmV0LklQKFwiMTcyLjE2LjAuMVwiKVxuU1RSSU5HIGlwU3RyaW5nID0gTmV0LlRvU3RyaW5nKGlwTGlzdClcbi8vIE91dHB1dCB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBJUCBsaXN0IHRvIHRoZSBjb25zb2xlXG4vLyBpcFN0cmluZyJ9LCB7Im5hbWUiOiAiVG9TVFJJTkcgKFZFQ1RPUjxOZXQuSVBSYW5nZT4sIFNUUklORykiLCAicmV0dXJuX3R5cGUiOiAiU1RSSU5HIiwgInJldHVybl9kZXNjIjogIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgZ2l2ZW4gcGFyYW1ldGVyLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJWRUNUT1I8TmV0LklQUmFuZ2U+OiBsaXN0IHRvIGNvbnZlcnQgdG8gU1RSSU5HOyBTVFJJTkc6IHNlcGFyYXRvciB0byBwdXQgYmV0d2VlbiBlbGVtZW50cy4iLCAiZGVzY3JpcHRpb24iOiAiUmV0dXJucyBsaXN0IG9mIElQIGFkZHJlc3MgcmFuZ2VzIGFzIGEgU1RSSU5HIHdpdGggdGhlIGlucHV0IGRlbGltaXRlciAodXNlcyBcIixcIiBpZiBkZWxpbWl0ZXIgaXMgZW1wdHkpIiwgImV4YW1wbGVfY29kZSI6ICJWRUNUT1I8TmV0LklQUmFuZ2U+IGlwUmFuZ2VzID0gW1wiZXhhbXBsZV9pcF9yYW5nZV9saXN0XCJdXG5TVFJJTkcgaXBSYW5nZXNTdHJpbmcgPSBOZXQuVG9TdHJpbmcoaXBSYW5nZXMpXG4vLyBPdXRwdXR0aW5nIHRoZSBpcFJhbmdlc1N0cmluZyIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIlZFQ1RPUjxOZXQuSVBSYW5nZT4gaXBSYW5nZXMgPSBbXCJleGFtcGxlX2lwX3JhbmdlX2xpc3RcIl1cblNUUklORyBpcFJhbmdlc1N0cmluZyA9IE5ldC5Ub1N0cmluZyhpcFJhbmdlcylcbi8vIE91dHB1dHRpbmcgdGhlIGlwUmFuZ2VzU3RyaW5nIn0sIHsibmFtZSI6ICJUb1NUUklORyAoVkVDVE9SPE5VTUJFUj4sIFNUUklORykiLCAicmV0dXJuX3R5cGUiOiAiU1RSSU5HIiwgInJldHVybl9kZXNjIjogIlJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgZ2l2ZW4gcGFyYW1ldGVyLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJWRUNUT1I8TlVNQkVSPjogbGlzdCB0byBjb252ZXJ0IHRvIFNUUklORzsgU1RSSU5HOiBzZXBhcmF0b3IgdG8gcHV0IGJldHdlZW4gZWxlbWVudHMuIiwgImRlc2NyaXB0aW9uIjogIlJldHVybnMgbGlzdCBvZiBOVU1CRVJzIGFzIGEgU1RSSU5HIHdpdGggdGhlIGlucHV0IGRlbGltaXRlciAodXNlcyBcIixcIiBpZiBkZWxpbWl0ZXIgaXMgZW1wdHkpIiwgImV4YW1wbGVfY29kZSI6ICIvLyBJbml0aWFsaXplIGEgVkVDVE9SIG9mIE5VTUJFUnNcblZFQ1RPUjxOVU1CRVI+IG51bWJlcnMgPSAxLCAyLCAzLCA0LCA1XG5cbi8vIENvbnZlcnQgdGhlIFZFQ1RPUiB0byBhIFNUUklORyB3aXRoIGEgaHlwaGVuIGFzIHRoZSBzZXBhcmF0b3JcblNUUklORyByZXN1bHQgPSBUb1N0cmluZyhudW1iZXJzLCBcIi1cIilcblxuLy8gUHJpbnQgdGhlIHJlc3VsdCB0byB0aGUgY29uc29sZVxuLy8gREVCVUcocmVzdWx0KSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIi8vIEluaXRpYWxpemUgYSBWRUNUT1Igb2YgTlVNQkVSc1xuVkVDVE9SPE5VTUJFUj4gbnVtYmVycyA9IDEsIDIsIDMsIDQsIDVcblxuLy8gQ29udmVydCB0aGUgVkVDVE9SIHRvIGEgU1RSSU5HIHdpdGggYSBoeXBoZW4gYXMgdGhlIHNlcGFyYXRvclxuU1RSSU5HIHJlc3VsdCA9IFRvU3RyaW5nKG51bWJlcnMsIFwiLVwiKVxuXG4vLyBQcmludCB0aGUgcmVzdWx0IHRvIHRoZSBjb25zb2xlXG4vLyBERUJVRyhyZXN1bHQpIn0sIHsibmFtZSI6ICJUb1NUUklORyAoVkVDVE9SPFNUUklORz4pIiwgInJldHVybl90eXBlIjogIlNUUklORyIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIGdpdmVuIHBhcmFtZXRlci4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiVkVDVE9SPFNUUklORz46IGxpc3QgdG8gY29udmVydCB0byBTVFJJTkcuIiwgImRlc2NyaXB0aW9uIjogIkNvbnZlcnQgYSBTVFJJTkcgVkVDVE9SIHRvIGEgc2luZ2xlIFNUUklORyIsICJleGFtcGxlX2NvZGUiOiAiVkVDVE9SPFNUUklORz4gZXhhbXBsZUxpc3QgPSBcImFwcGxlXCIsIFwiYmFuYW5hXCIsIFwiY2hlcnJ5XCJcblNUUklORyByZXN1bHQgPSBUb1N0cmluZyhleGFtcGxlTGlzdClcbi8vIE91dHB1dCByZXN1bHQgdG8gdGhlIGNvbnNvbGVcbi8vIHJlc3VsdCIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIlZFQ1RPUjxTVFJJTkc+IGV4YW1wbGVMaXN0ID0gXCJhcHBsZVwiLCBcImJhbmFuYVwiLCBcImNoZXJyeVwiXG5TVFJJTkcgcmVzdWx0ID0gVG9TdHJpbmcoZXhhbXBsZUxpc3QpXG4vLyBPdXRwdXQgcmVzdWx0IHRvIHRoZSBjb25zb2xlXG4vLyByZXN1bHQifSwgeyJuYW1lIjogIlRvU1RSSU5HIChWRUNUT1I8U1RSSU5HPiwgU1RSSU5HKSIsICJyZXR1cm5fdHlwZSI6ICJTVFJJTkciLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBnaXZlbiBwYXJhbWV0ZXIuIiwgInBhcmFtZXRlcl9kZXNjIjogIlZFQ1RPUjxTVFJJTkc+OiBsaXN0IHRvIGNvbnZlcnQgdG8gU1RSSU5HOyBTVFJJTkc6IHNlcGFyYXRvciB0byBwdXQgYmV0d2VlbiBlbGVtZW50cy4iLCAiZGVzY3JpcHRpb24iOiAiQ29udmVydCBhIFNUUklORyBWRUNUT1Igd2l0aCBnaXZlbiBkZWxpbWl0ZXIgdG8gYSBzaW5nbGUgU1RSSU5HIiwgImV4YW1wbGVfY29kZSI6ICJWRUNUT1I8U1RSSU5HPiB3b3JkcyA9IFwiSGVsbG9cIiwgXCJ3b3JsZFwiLCBcInRoaXNcIiwgXCJpc1wiLCBcIk1PV0dMSVwiXG5TVFJJTkcgZGVsaW1pdGVyID0gXCIgXCJcblNUUklORyByZXN1bHQgPSBKb2luKHdvcmRzLCBkZWxpbWl0ZXIpXG4vLyBUaGlzIHdpbGwgcHJpbnQgXCJIZWxsbyB3b3JsZCB0aGlzIGlzIE1PV0dMSVwiIiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiVkVDVE9SPFNUUklORz4gd29yZHMgPSBcIkhlbGxvXCIsIFwid29ybGRcIiwgXCJ0aGlzXCIsIFwiaXNcIiwgXCJNT1dHTElcIlxuU1RSSU5HIGRlbGltaXRlciA9IFwiIFwiXG5TVFJJTkcgcmVzdWx0ID0gSm9pbih3b3JkcywgZGVsaW1pdGVyKVxuLy8gVGhpcyB3aWxsIHByaW50IFwiSGVsbG8gd29ybGQgdGhpcyBpcyBNT1dHTElcIiJ9LCB7Im5hbWUiOiAiVG9TVFJJTkcgKFlvdVR1YmVWaWRlb0NhdGVnb3J5KSIsICJyZXR1cm5fdHlwZSI6ICJTVFJJTkciLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyB0aGUgbmFtZSBvZiB0aGUgWW91VHViZSB2aWRlbyBjYXRlZ29yeSBhcyBhIHN0cmluZy4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiWW91VHViZVZpZGVvQ2F0ZWdvcnk6IFRoZSBjYXRlZ29yeSBvZiB0aGUgWW91VHViZSB2aWRlbyB0byBiZSBjb252ZXJ0ZWQgdG8gYSBTVFJJTkcuIiwgImRlc2NyaXB0aW9uIjogIlJldHVybnMgdGhlIFlvdVR1YmVWaWRlbyBjYXRlZ29yeSBuYW1lIiwgImV4YW1wbGVfY29kZSI6ICIvLyBBc3N1bWUgd2UgaGF2ZSBhIFlvdVR1YmVWaWRlb0NhdGVnb3J5IG9iamVjdFxuWW91VHViZVZpZGVvQ2F0ZWdvcnkgY2F0ZWdvcnkgPSBHZXRZb3VUdWJlVmlkZW9DYXRlZ29yeSgpIC8vIFRoaXMgaXMgYSBwbGFjZWhvbGRlciBmb3IgaG93ZXZlciB5b3Ugb2J0YWluIHRoZSBjYXRlZ29yeVxuXG4vLyBDb252ZXJ0IHRoZSBZb3VUdWJlVmlkZW9DYXRlZ29yeSB0byBhIFNUUklOR1xuU1RSSU5HIGNhdGVnb3J5TmFtZSA9IFRvU3RyaW5nKGNhdGVnb3J5KVxuXG4vLyBUaGUgWW91VHViZSB2aWRlbyBjYXRlZ29yeSBpczogXCIgKyBjYXRlZ29yeU5hbWUiLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICIvLyBBc3N1bWUgd2UgaGF2ZSBhIFlvdVR1YmVWaWRlb0NhdGVnb3J5IG9iamVjdFxuWW91VHViZVZpZGVvQ2F0ZWdvcnkgY2F0ZWdvcnkgPSBHZXRZb3VUdWJlVmlkZW9DYXRlZ29yeSgpIC8vIFRoaXMgaXMgYSBwbGFjZWhvbGRlciBmb3IgaG93ZXZlciB5b3Ugb2J0YWluIHRoZSBjYXRlZ29yeVxuXG4vLyBDb252ZXJ0IHRoZSBZb3VUdWJlVmlkZW9DYXRlZ29yeSB0byBhIFNUUklOR1xuU1RSSU5HIGNhdGVnb3J5TmFtZSA9IFRvU3RyaW5nKGNhdGVnb3J5KVxuXG4vLyBUaGUgWW91VHViZSB2aWRlbyBjYXRlZ29yeSBpczogXCIgKyBjYXRlZ29yeU5hbWUifSwgeyJuYW1lIjogIlRvU1RSSU5HVG9TVFJJTkdNYXAgKE1XRy5JbnRlcm5hbFZhcmlhbnQpIiwgInJldHVybl90eXBlIjogIk1BUDxTVFJJTkcsU1RSSU5HPiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIHRoZSBzdHJpbmcgdG8gc3RyaW5nIG1hcCByZXByZXNlbnRhdGlvbiBvZiB0aGUgaW50ZXJuYWwgdmFyaWFudC4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiTVdHLkludGVybmFsVmFyaWFudDogdmFsdWUgdG8gY29udmVydC4iLCAiZGVzY3JpcHRpb24iOiAiQ29udmVydCBhbiBpbnRlcm5hbCB2YXJpYW50IHRvIGEgU1RSSU5HIHRvIFNUUklORyBtYXAuIiwgImV4YW1wbGVfY29kZSI6ICIvLyBDcmVhdGUgYSBNQVA8U1RSSU5HPjxTVFJJTkc+XG5NQVA8U1RSSU5HPjxTVFJJTkc+IHN0cmluZ01hcFxuXG4vLyBQb3B1bGF0ZSB0aGUgbWFwIHdpdGggc29tZSBrZXktdmFsdWUgcGFpcnNcbnN0cmluZ01hcFtcImtleTFcIl0gPSBcInZhbHVlMVwiXG5zdHJpbmdNYXBbXCJrZXkyXCJdID0gXCJ2YWx1ZTJcIlxuc3RyaW5nTWFwW1wia2V5M1wiXSA9IFwidmFsdWUzXCJcblxuLy8gQXNzdW1pbmcgdGhlcmUgaXMgYSBmdW5jdGlvbiB0byBjb252ZXJ0IE1BUDxTVFJJTkc+PFNUUklORz4gdG8gTVdHLkludGVybmFsVmFyaWFudFxuTVdHLkludGVybmFsVmFyaWFudCB2YXJpYW50ID0gQ29udmVydE1hcFRvVmFyaWFudChzdHJpbmdNYXApXG5cbi8vIFVzZSB0aGUgdmFyaWFudCBpbiBzb21lIHdheVxuLy8gQ29udmVydGVkIHZhcmlhbnQ6IFwiICsgdmFyaWFudC5Ub1N0cmluZygpXG5cbi8vIFBsYWNlaG9sZGVyIGZ1bmN0aW9uIGZvciBjb252ZXJ0aW5nIE1BUDxTVFJJTkc+PFNUUklORz4gdG8gTVdHLkludGVybmFsVmFyaWFudFxuTVdHLkludGVybmFsVmFyaWFudCBDb252ZXJ0TWFwVG9WYXJpYW50KE1BUDxTVFJJTkc+PFNUUklORz4gbWFwKSB7XG4gICAgLy8gSW1wbGVtZW50YXRpb24gd291bGQgZ28gaGVyZVxuICAgIC8vIFRoaXMgaXMganVzdCBhIHBsYWNlaG9sZGVyIGFzIHRoZSBhY3R1YWwgZnVuY3Rpb24gaXMgbm90IHNwZWNpZmllZFxuICAgIE1XRy5JbnRlcm5hbFZhcmlhbnQgdmFyaWFudFxuICAgIC8vIENvbnZlcnNpb24gbG9naWNcbiAgICByZXR1cm4gdmFyaWFudFxufSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIi8vIENyZWF0ZSBhIE1BUDxTVFJJTkc+PFNUUklORz5cbk1BUDxTVFJJTkc+PFNUUklORz4gc3RyaW5nTWFwXG5cbi8vIFBvcHVsYXRlIHRoZSBtYXAgd2l0aCBzb21lIGtleS12YWx1ZSBwYWlyc1xuc3RyaW5nTWFwW1wia2V5MVwiXSA9IFwidmFsdWUxXCJcbnN0cmluZ01hcFtcImtleTJcIl0gPSBcInZhbHVlMlwiXG5zdHJpbmdNYXBbXCJrZXkzXCJdID0gXCJ2YWx1ZTNcIlxuXG4vLyBBc3N1bWluZyB0aGVyZSBpcyBhIGZ1bmN0aW9uIHRvIGNvbnZlcnQgTUFQPFNUUklORz48U1RSSU5HPiB0byBNV0cuSW50ZXJuYWxWYXJpYW50XG5NV0cuSW50ZXJuYWxWYXJpYW50IHZhcmlhbnQgPSBDb252ZXJ0TWFwVG9WYXJpYW50KHN0cmluZ01hcClcblxuLy8gVXNlIHRoZSB2YXJpYW50IGluIHNvbWUgd2F5XG4vLyBDb252ZXJ0ZWQgdmFyaWFudDogXCIgKyB2YXJpYW50LlRvU3RyaW5nKClcblxuLy8gUGxhY2Vob2xkZXIgZnVuY3Rpb24gZm9yIGNvbnZlcnRpbmcgTUFQPFNUUklORz48U1RSSU5HPiB0byBNV0cuSW50ZXJuYWxWYXJpYW50XG5NV0cuSW50ZXJuYWxWYXJpYW50IENvbnZlcnRNYXBUb1ZhcmlhbnQoTUFQPFNUUklORz48U1RSSU5HPiBtYXApIHtcbiAgICAvLyBJbXBsZW1lbnRhdGlvbiB3b3VsZCBnbyBoZXJlXG4gICAgLy8gVGhpcyBpcyBqdXN0IGEgcGxhY2Vob2xkZXIgYXMgdGhlIGFjdHVhbCBmdW5jdGlvbiBpcyBub3Qgc3BlY2lmaWVkXG4gICAgTVdHLkludGVybmFsVmFyaWFudCB2YXJpYW50XG4gICAgLy8gQ29udmVyc2lvbiBsb2dpY1xuICAgIHJldHVybiB2YXJpYW50XG59In0sIHsibmFtZSI6ICJUb1NUUklOR1ZlY3RvciAoTVdHLkludGVybmFsVmFyaWFudCkiLCAicmV0dXJuX3R5cGUiOiAiVkVDVE9SPFNUUklORz4iLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyB0aGUgc3RyaW5nIHZlY3RvciByZXByZXNlbnRhdGlvbiBvZiB0aGUgaW50ZXJuYWwgdmFyaWFudC4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiTVdHLkludGVybmFsVmFyaWFudDogdmFsdWUgdG8gY29udmVydC4iLCAiZGVzY3JpcHRpb24iOiAiQ29udmVydCBhbiBpbnRlcm5hbCB2YXJpYW50IHRvIGEgU1RSSU5HIFZFQ1RPUi4iLCAiZXhhbXBsZV9jb2RlIjogIi8vIEFzc3VtZSB3ZSBoYXZlIGFuIE1XRy5JbnRlcm5hbFZhcmlhbnQgb2JqZWN0XG5NV0cuSW50ZXJuYWxWYXJpYW50IHZhcmlhbnRPYmplY3QgPSBHZXRTb21lSW50ZXJuYWxWYXJpYW50KClcblxuLy8gQ29udmVydCB0aGUgTVdHLkludGVybmFsVmFyaWFudCBvYmplY3QgdG8gYSBWRUNUT1I8U1RSSU5HPlxuVkVDVE9SPFNUUklORz4gc3RyaW5nVmVjdG9yID0gdmFyaWFudE9iamVjdC5Ub1N0cmluZ1ZlY3RvcigpXG5cbi8vIFByaW50IHRoZSBjb250ZW50cyBvZiB0aGUgVkVDVE9SPFNUUklORz4gdG8gdGhlIGNvbnNvbGVcbkZPUiBTVFJJTkcgaXRlbSBJTiBzdHJpbmdWZWN0b3Ige1xuICAgIC8vIGl0ZW1cbn1cblxuLy8gRHVtbXkgZnVuY3Rpb24gdG8gc2ltdWxhdGUgb2J0YWluaW5nIGFuIE1XRy5JbnRlcm5hbFZhcmlhbnQgb2JqZWN0XG5GVU5DVElPTiBHZXRTb21lSW50ZXJuYWxWYXJpYW50KCkgUkVUVVJOUyBNV0cuSW50ZXJuYWxWYXJpYW50IHtcbiAgICAvLyBJbXBsZW1lbnRhdGlvbiB0byBnZXQgYW4gTVdHLkludGVybmFsVmFyaWFudCBvYmplY3RcbiAgICAvLyBUaGlzIGlzIGp1c3QgYSBwbGFjZWhvbGRlciBmb3IgdGhlIGFjdHVhbCBpbXBsZW1lbnRhdGlvblxuICAgIE1XRy5JbnRlcm5hbFZhcmlhbnQgdmFyaWFudFxuICAgIC8vIFBvcHVsYXRlIHRoZSB2YXJpYW50IHdpdGggc29tZSBkYXRhXG4gICAgUkVUVVJOIHZhcmlhbnRcbn0iLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICIvLyBBc3N1bWUgd2UgaGF2ZSBhbiBNV0cuSW50ZXJuYWxWYXJpYW50IG9iamVjdFxuTVdHLkludGVybmFsVmFyaWFudCB2YXJpYW50T2JqZWN0ID0gR2V0U29tZUludGVybmFsVmFyaWFudCgpXG5cbi8vIENvbnZlcnQgdGhlIE1XRy5JbnRlcm5hbFZhcmlhbnQgb2JqZWN0IHRvIGEgVkVDVE9SPFNUUklORz5cblZFQ1RPUjxTVFJJTkc+IHN0cmluZ1ZlY3RvciA9IHZhcmlhbnRPYmplY3QuVG9TdHJpbmdWZWN0b3IoKVxuXG4vLyBQcmludCB0aGUgY29udGVudHMgb2YgdGhlIFZFQ1RPUjxTVFJJTkc+IHRvIHRoZSBjb25zb2xlXG5GT1IgU1RSSU5HIGl0ZW0gSU4gc3RyaW5nVmVjdG9yIHtcbiAgICAvLyBpdGVtXG59XG5cbi8vIER1bW15IGZ1bmN0aW9uIHRvIHNpbXVsYXRlIG9idGFpbmluZyBhbiBNV0cuSW50ZXJuYWxWYXJpYW50IG9iamVjdFxuRlVOQ1RJT04gR2V0U29tZUludGVybmFsVmFyaWFudCgpIFJFVFVSTlMgTVdHLkludGVybmFsVmFyaWFudCB7XG4gICAgLy8gSW1wbGVtZW50YXRpb24gdG8gZ2V0IGFuIE1XRy5JbnRlcm5hbFZhcmlhbnQgb2JqZWN0XG4gICAgLy8gVGhpcyBpcyBqdXN0IGEgcGxhY2Vob2xkZXIgZm9yIHRoZSBhY3R1YWwgaW1wbGVtZW50YXRpb25cbiAgICBNV0cuSW50ZXJuYWxWYXJpYW50IHZhcmlhbnRcbiAgICAvLyBQb3B1bGF0ZSB0aGUgdmFyaWFudCB3aXRoIHNvbWUgZGF0YVxuICAgIFJFVFVSTiB2YXJpYW50XG59In0sIHsibmFtZSI6ICJUb1VwcGVyIChTVFJJTkcpIiwgInJldHVybl90eXBlIjogIlNUUklORyIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIGEgc3RyaW5nIHdoZXJlIGFsbCBsb3dlcmNhc2UgY2hhcmFjdGVycyBhcmUgY29udmVydGVkIHRvIHVwcGVyY2FzZS4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiU1RSSU5HOiB0aGUgaW5wdXQgdGV4dCB0byBiZSBjb252ZXJ0ZWQgdG8gdXBwZXIgY2FzZS4iLCAiZGVzY3JpcHRpb24iOiAiUmV0dXJucyB0aGUgaW5wdXQgU1RSSU5HIHdpdGggbG93ZXIgY2FzZSBjaGFyYWN0ZXJzIHJlcGxhY2VkIGJ5IHVwcGVyIGNhc2UiLCAiZXhhbXBsZV9jb2RlIjogIlNUUklORyBvcmlnaW5hbFN0cmluZyA9IFwiaGVsbG8sIHdvcmxkXCJcblNUUklORyB1cHBlclN0cmluZyA9IFRvVXBwZXIob3JpZ2luYWxTdHJpbmcpXG4vLyBEaXNwbGF5IHRoZSBjb252ZXJ0ZWQgc3RyaW5nXG4vLyB1cHBlclN0cmluZyIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIlNUUklORyBvcmlnaW5hbFN0cmluZyA9IFwiaGVsbG8sIHdvcmxkXCJcblNUUklORyB1cHBlclN0cmluZyA9IFRvVXBwZXIob3JpZ2luYWxTdHJpbmcpXG4vLyBEaXNwbGF5IHRoZSBjb252ZXJ0ZWQgc3RyaW5nXG4vLyB1cHBlclN0cmluZyJ9LCB7Im5hbWUiOiAiVG9Wb2x1bWVTVFJJTkcgKE5VTUJFUikiLCAicmV0dXJuX3R5cGUiOiAiU1RSSU5HIiwgInJldHVybl9kZXNjIjogIlJldHVybnMgdGhlIGlucHV0IG51bWJlciBjb252ZXJ0ZWQgdG8gYSB2b2x1bWUgc3RyaW5nLCByb3VuZGVkIHRvIHRoZSBhcHByb3ByaWF0ZSB1bml0IChlLmcuLCAxIEdCIG9yIDMgTUIpLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJOVU1CRVI6IGlucHV0IHRvIGNvbnZlcnQgdG8gdm9sdW1lIFNUUklORy4iLCAiZGVzY3JpcHRpb24iOiAiUmV0dXJucyB0aGUgaW5wdXQgTlVNQkVSIGNvbnZlcnRlZCB0byBhIHZvbHVtZSBTVFJJTkcsIHJvdW5kZWQgdG8gdGhlIGFwcHJvcHJpYXRlIHVuaXQoZS5nLiAxIEdCIG9yIDMgTUIpIiwgImV4YW1wbGVfY29kZSI6ICJOVU1CRVIgc2l6ZUluQnl0ZXMgPSAxMDQ4NTc2XG5TVFJJTkcgdm9sdW1lU3RyaW5nID0gVG9Wb2x1bWVTdHJpbmcoc2l6ZUluQnl0ZXMpXG4vLyBUaGUgdm9sdW1lIGlzOiBcIiArIHZvbHVtZVN0cmluZyIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIk5VTUJFUiBzaXplSW5CeXRlcyA9IDEwNDg1NzZcblNUUklORyB2b2x1bWVTdHJpbmcgPSBUb1ZvbHVtZVN0cmluZyhzaXplSW5CeXRlcylcbi8vIFRoZSB2b2x1bWUgaXM6IFwiICsgdm9sdW1lU3RyaW5nIn0sIHsibmFtZSI6ICJUb1dlYlVybENhdGVnb3J5IChNV0cuSW50ZXJuYWxWYXJpYW50KSIsICJyZXR1cm5fdHlwZSI6ICJNV0cuVXJsQ2F0ZWdvcnkiLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyB0aGUgVVJMIGNhdGVnb3J5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBpbnRlcm5hbCB2YXJpYW50LiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJNV0cuSW50ZXJuYWxWYXJpYW50OiB2YWx1ZSB0byBjb252ZXJ0LiIsICJkZXNjcmlwdGlvbiI6ICJDb252ZXJ0IGFuIGludGVybmFsIHZhcmlhbnQgdG8gYSB1cmwgY2F0ZWdvcnkuIiwgImV4YW1wbGVfY29kZSI6ICJNV0cuSW50ZXJuYWxWYXJpYW50IGludGVybmFsVmFyaWFudCA9IE1XRy5VcmwoKVxuTVdHLlVybENhdGVnb3J5IHVybENhdGVnb3J5ID0gVG9XZWJVcmxDYXRlZ29yeShpbnRlcm5hbFZhcmlhbnQpXG5cbklGIHVybENhdGVnb3J5ID09IFwiU29jaWFsIE1lZGlhXCIgVEhFTiB7XG4gICAgTVdHLkJsb2NrKFwiQWNjZXNzIHRvIHNvY2lhbCBtZWRpYSBzaXRlcyBpcyBub3QgYWxsb3dlZC5cIilcbn0gRUxTRSB7XG4gICAgTVdHLkFsbG93KFwiVVJMIGNhdGVnb3J5IGlzIGFsbG93ZWQuXCIpXG59IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiTVdHLkludGVybmFsVmFyaWFudCBpbnRlcm5hbFZhcmlhbnQgPSBNV0cuVXJsKClcbk1XRy5VcmxDYXRlZ29yeSB1cmxDYXRlZ29yeSA9IFRvV2ViVXJsQ2F0ZWdvcnkoaW50ZXJuYWxWYXJpYW50KVxuXG5JRiB1cmxDYXRlZ29yeSA9PSBcIlNvY2lhbCBNZWRpYVwiIFRIRU4ge1xuICAgIE1XRy5CbG9jayhcIkFjY2VzcyB0byBzb2NpYWwgbWVkaWEgc2l0ZXMgaXMgbm90IGFsbG93ZWQuXCIpXG59IEVMU0Uge1xuICAgIE1XRy5BbGxvdyhcIlVSTCBjYXRlZ29yeSBpcyBhbGxvd2VkLlwiKVxufSJ9LCB7Im5hbWUiOiAiVG9XZWJVcmxDYXRlZ29yeSAoTlVNQkVSKSIsICJyZXR1cm5fdHlwZSI6ICJNV0cuVXJsQ2F0ZWdvcnkiLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyB0aGUgR1RJIGNhdGVnb3J5IGNvcnJlc3BvbmRpbmcgdG8gdGhlIGdpdmVuIG51bWVyaWNhbCBpbnB1dC4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiTlVNQkVSOiB0aGUgaWRlbnRpZmllciBvZiB0aGUgR1RJIGNhdGVnb3J5IHRvIGJlIGNvbnZlcnRlZC4iLCAiZGVzY3JpcHRpb24iOiAiQ29udmVydCBhIE5VTUJFUiB0byBhIEdUSSBjYXRlZ29yeSIsICJleGFtcGxlX2NvZGUiOiAiLy8gRGVmaW5lIGEgTlVNQkVSIHZhcmlhYmxlXG5OVU1CRVIgY2F0ZWdvcnlOdW1iZXIgPSA1XG5cbi8vIENvbnZlcnQgdGhlIE5VTUJFUiB0byBhIEdUSSBjYXRlZ29yeSB1c2luZyBUb1dlYlVybENhdGVnb3J5XG5NV0cuVXJsQ2F0ZWdvcnkgdXJsQ2F0ZWdvcnkgPSBUb1dlYlVybENhdGVnb3J5KGNhdGVnb3J5TnVtYmVyKVxuXG4vLyBUaGUgR1RJIGNhdGVnb3J5IGZvciBudW1iZXIgNSBpcyB1cmxDYXRlZ29yeSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIi8vIERlZmluZSBhIE5VTUJFUiB2YXJpYWJsZVxuTlVNQkVSIGNhdGVnb3J5TnVtYmVyID0gNVxuXG4vLyBDb252ZXJ0IHRoZSBOVU1CRVIgdG8gYSBHVEkgY2F0ZWdvcnkgdXNpbmcgVG9XZWJVcmxDYXRlZ29yeVxuTVdHLlVybENhdGVnb3J5IHVybENhdGVnb3J5ID0gVG9XZWJVcmxDYXRlZ29yeShjYXRlZ29yeU51bWJlcilcblxuLy8gVGhlIEdUSSBjYXRlZ29yeSBmb3IgbnVtYmVyIDUgaXMgdXJsQ2F0ZWdvcnkifSwgeyJuYW1lIjogIlRvV2ViVXJsQ2F0ZWdvcnlMaXN0IChNV0cuSW50ZXJuYWxWYXJpYW50KSIsICJyZXR1cm5fdHlwZSI6ICJWRUNUT1I8TVdHLlVybENhdGVnb3J5PiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIHRoZSBVUkwgY2F0ZWdvcnkgbGlzdCByZXByZXNlbnRhdGlvbiBvZiB0aGUgaW50ZXJuYWwgdmFyaWFudC4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiTVdHLkludGVybmFsVmFyaWFudDogdmFsdWUgdG8gY29udmVydC4iLCAiZGVzY3JpcHRpb24iOiAiQ29udmVydCBhbiBpbnRlcm5hbCB2YXJpYW50IHRvIGEgdXJsIGNhdGVnb3J5IGxpc3QuIiwgImV4YW1wbGVfY29kZSI6ICIvLyBBc3N1bWUgd2UgaGF2ZSBhbiBpbnRlcm5hbCB2YXJpYW50IHZhbHVlXG5NV0cuSW50ZXJuYWxWYXJpYW50IGludGVybmFsVmFyaWFudCA9IEdldEludGVybmFsVmFyaWFudFNvbWVob3coKVxuXG4vLyBDb252ZXJ0IHRoZSBpbnRlcm5hbCB2YXJpYW50IHRvIGEgVVJMIGNhdGVnb3J5IGxpc3RcblZFQ1RPUjxNV0cuVXJsQ2F0ZWdvcnk+IHVybENhdGVnb3JpZXMgPSBUb1dlYlVybENhdGVnb3J5TGlzdChpbnRlcm5hbFZhcmlhbnQpXG5cbi8vIEl0ZXJhdGUgdGhyb3VnaCB0aGUgVVJMIGNhdGVnb3JpZXMgYW5kIHByaW50IHRoZW1cbkZPUiBFQUNIIGNhdGVnb3J5IElOIHVybENhdGVnb3JpZXMge1xuICAgIC8vIFVSTCBDYXRlZ29yeTogXCIgKyBjYXRlZ29yeVxufVxuXG4vLyBUaGlzIGlzIGEgcGxhY2Vob2xkZXIgZnVuY3Rpb24gdG8gc2ltdWxhdGUgb2J0YWluaW5nIGFuIGludGVybmFsIHZhcmlhbnRcbkZVTkNUSU9OIEdldEludGVybmFsVmFyaWFudFNvbWVob3coKSBSRVRVUk5TIE1XRy5JbnRlcm5hbFZhcmlhbnQge1xuICAgIC8vIEltcGxlbWVudGF0aW9uIHRvIGdldCBhbiBpbnRlcm5hbCB2YXJpYW50XG4gICAgLy8gVGhpcyBpcyBqdXN0IGEgcGxhY2Vob2xkZXIgYW5kIHdvdWxkIGJlIHJlcGxhY2VkIHdpdGggYWN0dWFsIGxvZ2ljXG4gICAgTVdHLkludGVybmFsVmFyaWFudCB2YXJpYW50XG4gICAgLy8gUG9wdWxhdGUgdGhlIHZhcmlhbnQgd2l0aCBzb21lIGRhdGFcbiAgICBSRVRVUk4gdmFyaWFudFxufSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIi8vIEFzc3VtZSB3ZSBoYXZlIGFuIGludGVybmFsIHZhcmlhbnQgdmFsdWVcbk1XRy5JbnRlcm5hbFZhcmlhbnQgaW50ZXJuYWxWYXJpYW50ID0gR2V0SW50ZXJuYWxWYXJpYW50U29tZWhvdygpXG5cbi8vIENvbnZlcnQgdGhlIGludGVybmFsIHZhcmlhbnQgdG8gYSBVUkwgY2F0ZWdvcnkgbGlzdFxuVkVDVE9SPE1XRy5VcmxDYXRlZ29yeT4gdXJsQ2F0ZWdvcmllcyA9IFRvV2ViVXJsQ2F0ZWdvcnlMaXN0KGludGVybmFsVmFyaWFudClcblxuLy8gSXRlcmF0ZSB0aHJvdWdoIHRoZSBVUkwgY2F0ZWdvcmllcyBhbmQgcHJpbnQgdGhlbVxuRk9SIEVBQ0ggY2F0ZWdvcnkgSU4gdXJsQ2F0ZWdvcmllcyB7XG4gICAgLy8gVVJMIENhdGVnb3J5OiBcIiArIGNhdGVnb3J5XG59XG5cbi8vIFRoaXMgaXMgYSBwbGFjZWhvbGRlciBmdW5jdGlvbiB0byBzaW11bGF0ZSBvYnRhaW5pbmcgYW4gaW50ZXJuYWwgdmFyaWFudFxuRlVOQ1RJT04gR2V0SW50ZXJuYWxWYXJpYW50U29tZWhvdygpIFJFVFVSTlMgTVdHLkludGVybmFsVmFyaWFudCB7XG4gICAgLy8gSW1wbGVtZW50YXRpb24gdG8gZ2V0IGFuIGludGVybmFsIHZhcmlhbnRcbiAgICAvLyBUaGlzIGlzIGp1c3QgYSBwbGFjZWhvbGRlciBhbmQgd291bGQgYmUgcmVwbGFjZWQgd2l0aCBhY3R1YWwgbG9naWNcbiAgICBNV0cuSW50ZXJuYWxWYXJpYW50IHZhcmlhbnRcbiAgICAvLyBQb3B1bGF0ZSB0aGUgdmFyaWFudCB3aXRoIHNvbWUgZGF0YVxuICAgIFJFVFVSTiB2YXJpYW50XG59In0sIHsibmFtZSI6ICJUb1dlYlVybENhdGVnb3J5TGlzdCAoVkVDVE9SPE5VTUJFUj4pIiwgInJldHVybl90eXBlIjogIlZFQ1RPUjxNV0cuVXJsQ2F0ZWdvcnk+IiwgInJldHVybl9kZXNjIjogIlJldHVybnMgdGhlIEdUSSBjYXRlZ29yeSBsaXN0IGNvcnJlc3BvbmRpbmcgdG8gdGhlIGdpdmVuIG51bWJlciBsaXN0LiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJWRUNUT1I6IGxpc3Qgb2YgTlVNQkVScyB0byBjb252ZXJ0IHRvIEdUSSBjYXRlZ29yaWVzLiIsICJkZXNjcmlwdGlvbiI6ICJDb252ZXJ0IGEgTlVNQkVSIGxpc3QgdG8gYSBHVEkgY2F0ZWdvcnkgbGlzdC4iLCAiZXhhbXBsZV9jb2RlIjogIi8vIERlZmluZSBhIFZFQ1RPUiBvZiBOVU1CRVJzIHJlcHJlc2VudGluZyBjYXRlZ29yeSBJRHNcblZFQ1RPUjxOVU1CRVI+IGNhdGVnb3J5TnVtYmVycyA9IDEsIDIsIDMsIDQsIDVcblxuLy8gQ29udmVydCB0aGUgY2F0ZWdvcnkgbnVtYmVycyB0byBHVEkgY2F0ZWdvcmllc1xuVkVDVE9SPE1XRy5VcmxDYXRlZ29yeT4gZ3RpQ2F0ZWdvcmllcyA9IFRvV2ViVXJsQ2F0ZWdvcnlMaXN0KGNhdGVnb3J5TnVtYmVycylcblxuLy8gR1RJIENhdGVnb3JpZXM6IFwiICsgZ3RpQ2F0ZWdvcmllcyIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIi8vIERlZmluZSBhIFZFQ1RPUiBvZiBOVU1CRVJzIHJlcHJlc2VudGluZyBjYXRlZ29yeSBJRHNcblZFQ1RPUjxOVU1CRVI+IGNhdGVnb3J5TnVtYmVycyA9IDEsIDIsIDMsIDQsIDVcblxuLy8gQ29udmVydCB0aGUgY2F0ZWdvcnkgbnVtYmVycyB0byBHVEkgY2F0ZWdvcmllc1xuVkVDVE9SPE1XRy5VcmxDYXRlZ29yeT4gZ3RpQ2F0ZWdvcmllcyA9IFRvV2ViVXJsQ2F0ZWdvcnlMaXN0KGNhdGVnb3J5TnVtYmVycylcblxuLy8gR1RJIENhdGVnb3JpZXM6IFwiICsgZ3RpQ2F0ZWdvcmllcyJ9LCB7Im5hbWUiOiAiVG9Zb3VUdWJlVmlkZW9DYXRlZ29yeSAoU1RSSU5HKSIsICJyZXR1cm5fdHlwZSI6ICJZb3VUdWJlVmlkZW9DYXRlZ29yeSIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIGEgWW91VHViZVZpZGVvQ2F0ZWdvcnkgb2JqZWN0IGNvcnJlc3BvbmRpbmcgdG8gdGhlIGdpdmVuIGNhdGVnb3J5IElELiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJTVFJJTkc6IHRoZSBJRCBvZiB0aGUgZGVzaXJlZCB5b3V0dWJlIHZpZGVvIGNhdGVnb3J5LiIsICJkZXNjcmlwdGlvbiI6ICJDcmVhdGUgYSBZb3VUdWJlIFZpZGVvIGNhdGVnb3J5IGJ5IElEIiwgImV4YW1wbGVfY29kZSI6ICJTVFJJTkcgY2F0ZWdvcnlOYW1lID0gXCJFZHVjYXRpb25cIlxuWW91VHViZVZpZGVvQ2F0ZWdvcnkgY2F0ZWdvcnkgPSBUb1lvdVR1YmVWaWRlb0NhdGVnb3J5KGNhdGVnb3J5TmFtZSlcblxuLy8gVGhlIFlvdVR1YmUgdmlkZW8gY2F0ZWdvcnkgaXM6IFwiICsgY2F0ZWdvcnkiLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICJTVFJJTkcgY2F0ZWdvcnlOYW1lID0gXCJFZHVjYXRpb25cIlxuWW91VHViZVZpZGVvQ2F0ZWdvcnkgY2F0ZWdvcnkgPSBUb1lvdVR1YmVWaWRlb0NhdGVnb3J5KGNhdGVnb3J5TmFtZSlcblxuLy8gVGhlIFlvdVR1YmUgdmlkZW8gY2F0ZWdvcnkgaXM6IFwiICsgY2F0ZWdvcnkifSwgeyJuYW1lIjogIlRyaWdnZXIgKCkiLCAicmV0dXJuX3R5cGUiOiAiU1RSSU5HIiwgInJldHVybl9kZXNjIjogIlJldHVybnMgYSBzdHJpbmcgcmVwcmVzZW50aW5nIHRoZSBjdXJyZW50bHkgYWN0aXZlIHRyaWdnZXIuIiwgInBhcmFtZXRlcl9kZXNjIjogIk5vbmUiLCAiZGVzY3JpcHRpb24iOiAiUmV0dXJucyB0aGUgY3VycmVudCBUcmlnZ2VyIiwgImV4YW1wbGVfY29kZSI6ICIvLyBUaGlzIHJvdXRpbmUgaXMgdHJpZ2dlcmVkIG9uIGJvdGggV2ViLlJlcXVlc3QgYW5kIFdlYi5SZXNwb25zZSBldmVudHNcbi8vIEFkZCB5b3VyIGNvZGUgaGVyZSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIi8vIFRoaXMgcm91dGluZSBpcyB0cmlnZ2VyZWQgb24gYm90aCBXZWIuUmVxdWVzdCBhbmQgV2ViLlJlc3BvbnNlIGV2ZW50c1xuLy8gQWRkIHlvdXIgY29kZSBoZXJlIn0sIHsibmFtZSI6ICJUcmltIChTVFJJTkcpIiwgInJldHVybl90eXBlIjogIlNUUklORyIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIHRoZSBpbnB1dCBzdHJpbmcgd2l0aCB3aGl0ZXNwYWNlIHJlbW92ZWQgZnJvbSBib3RoIHRoZSBiZWdpbm5pbmcgYW5kIGVuZC4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiU1RSSU5HOiB0aGUgaW5wdXQgdGV4dCB0byByZW1vdmUgbGVhZGluZyBhbmQgdHJhaWxpbmcgd2hpdGVzcGFjZSBmcm9tLiIsICJkZXNjcmlwdGlvbiI6ICJUcmltcyBTVFJJTkcgYnkgcmVtb3Zpbmcgd2hpdGVzcGFjZXMgZnJvbSBib3RoIGVuZHMiLCAiZXhhbXBsZV9jb2RlIjogIlNUUklORyBvcmlnaW5hbFN0cmluZyA9IFwiICAgSGVsbG8sIFdvcmxkISAgIFwiXG5TVFJJTkcgdHJpbW1lZFN0cmluZyA9IFRyaW0ob3JpZ2luYWxTdHJpbmcpXG4vLyBPcmlnaW5hbCBTdHJpbmc6ICcgICBIZWxsbywgV29ybGQhICAgJ1xuLy8gVHJpbW1lZCBTdHJpbmc6ICdIZWxsbywgV29ybGQhJyIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIlNUUklORyBvcmlnaW5hbFN0cmluZyA9IFwiICAgSGVsbG8sIFdvcmxkISAgIFwiXG5TVFJJTkcgdHJpbW1lZFN0cmluZyA9IFRyaW0ob3JpZ2luYWxTdHJpbmcpXG4vLyBPcmlnaW5hbCBTdHJpbmc6ICcgICBIZWxsbywgV29ybGQhICAgJ1xuLy8gVHJpbW1lZCBTdHJpbmc6ICdIZWxsbywgV29ybGQhJyJ9LCB7Im5hbWUiOiAiVHJpbSAoU1RSSU5HLCBTVFJJTkcpIiwgInJldHVybl90eXBlIjogIlNUUklORyIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIGEgc3RyaW5nIHdpdGggdGhlIHNwZWNpZmllZCBjaGFyYWN0ZXJzIHJlbW92ZWQgZnJvbSBib3RoIGl0cyBzdGFydCBhbmQgZW5kLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJTVFJJTkc6IHRoZSBpbnB1dCB0byBiZSB0cmltbWVkOyBTVFJJTkc6IHRoZSBzZXQgb2YgY2hhcmFjdGVycyB0byByZW1vdmUgZnJvbSBib3RoIGVuZHMuIiwgImRlc2NyaXB0aW9uIjogIlRyaW1zIFNUUklORyBieSByZW1vdmluZyBnaXZlbiBjaGFyYWN0ZXJzIGZyb20gYm90aCBlbmRzIiwgImV4YW1wbGVfY29kZSI6ICJTVFJJTkcgb3JpZ2luYWxTdHJpbmcgPSBcIiAgIEhlbGxvLCBXb3JsZCEgICBcIlxuU1RSSU5HIHRyaW1tZWRTdHJpbmcgPSBUcmltKG9yaWdpbmFsU3RyaW5nLCBcIiBcIilcbi8vIE9yaWdpbmFsIFN0cmluZzogXCIgICBIZWxsbywgV29ybGQhICAgXCJcbi8vIFRyaW1tZWQgU3RyaW5nOiBcIkhlbGxvLCBXb3JsZCFcIiIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIlNUUklORyBvcmlnaW5hbFN0cmluZyA9IFwiICAgSGVsbG8sIFdvcmxkISAgIFwiXG5TVFJJTkcgdHJpbW1lZFN0cmluZyA9IFRyaW0ob3JpZ2luYWxTdHJpbmcsIFwiIFwiKVxuLy8gT3JpZ2luYWwgU3RyaW5nOiBcIiAgIEhlbGxvLCBXb3JsZCEgICBcIlxuLy8gVHJpbW1lZCBTdHJpbmc6IFwiSGVsbG8sIFdvcmxkIVwiIn0sIHsibmFtZSI6ICJUcmltTGVmdCAoU1RSSU5HKSIsICJyZXR1cm5fdHlwZSI6ICJTVFJJTkciLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyB0aGUgaW5wdXQgc3RyaW5nIHdpdGggYWxsIGxlYWRpbmcgd2hpdGVzcGFjZXMgcmVtb3ZlZC4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiU1RSSU5HOiBUaGUgaW5wdXQgU1RSSU5HIGZyb20gd2hpY2ggbGVhZGluZyB3aGl0ZXNwYWNlcyB3aWxsIGJlIHJlbW92ZWQuIiwgImRlc2NyaXB0aW9uIjogIlRyaW1zIFNUUklORyBieSByZW1vdmluZyB3aGl0ZXNwYWNlcyBmcm9tIHRoZSBiZWdpbm5pbmciLCAiZXhhbXBsZV9jb2RlIjogIlNUUklORyBvcmlnaW5hbFN0cmluZyA9IFwiICAgSGVsbG8sIFdvcmxkIVwiXG5TVFJJTkcgdHJpbW1lZFN0cmluZyA9IFRyaW1MZWZ0KG9yaWdpbmFsU3RyaW5nKVxuLy8gT3JpZ2luYWwgU3RyaW5nOiAnICAgSGVsbG8sIFdvcmxkISdcbi8vIFRyaW1tZWQgU3RyaW5nOiAnSGVsbG8sIFdvcmxkISciLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICJTVFJJTkcgb3JpZ2luYWxTdHJpbmcgPSBcIiAgIEhlbGxvLCBXb3JsZCFcIlxuU1RSSU5HIHRyaW1tZWRTdHJpbmcgPSBUcmltTGVmdChvcmlnaW5hbFN0cmluZylcbi8vIE9yaWdpbmFsIFN0cmluZzogJyAgIEhlbGxvLCBXb3JsZCEnXG4vLyBUcmltbWVkIFN0cmluZzogJ0hlbGxvLCBXb3JsZCEnIn0sIHsibmFtZSI6ICJUcmltTGVmdCAoU1RSSU5HLCBTVFJJTkcpIiwgInJldHVybl90eXBlIjogIlNUUklORyIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIHRoZSBpbnB1dCBzdHJpbmcgd2l0aCB0aGUgc3BlY2lmaWVkIGNoYXJhY3RlcnMgcmVtb3ZlZCBmcm9tIHRoZSBzdGFydC4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiU1RSSU5HOiB0aGUgaW5wdXQgdGV4dCB0byB0cmltOyBTVFJJTkc6IHRoZSBjaGFyYWN0ZXJzIHRvIHJlbW92ZSBmcm9tIHRoZSBiZWdpbm5pbmcuIiwgImRlc2NyaXB0aW9uIjogIlRyaW1zIFNUUklORyBieSByZW1vdmluZyBnaXZlbiBjaGFyYWN0ZXJzIGZyb20gdGhlIGJlZ2lubmluZyIsICJleGFtcGxlX2NvZGUiOiAiU1RSSU5HIG9yaWdpbmFsU3RyaW5nID0gXCIjIyNIZWxsb1dvcmxkXCJcblNUUklORyBjaGFyYWN0ZXJzVG9UcmltID0gXCIjXCJcblNUUklORyB0cmltbWVkU3RyaW5nID0gVHJpbUxlZnQob3JpZ2luYWxTdHJpbmcsIGNoYXJhY3RlcnNUb1RyaW0pXG5cbi8vIE9yaWdpbmFsIFN0cmluZzogIyMjSGVsbG9Xb3JsZFxuLy8gVHJpbW1lZCBTdHJpbmc6IEhlbGxvV29ybGQiLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICJTVFJJTkcgb3JpZ2luYWxTdHJpbmcgPSBcIiMjI0hlbGxvV29ybGRcIlxuU1RSSU5HIGNoYXJhY3RlcnNUb1RyaW0gPSBcIiNcIlxuU1RSSU5HIHRyaW1tZWRTdHJpbmcgPSBUcmltTGVmdChvcmlnaW5hbFN0cmluZywgY2hhcmFjdGVyc1RvVHJpbSlcblxuLy8gT3JpZ2luYWwgU3RyaW5nOiAjIyNIZWxsb1dvcmxkXG4vLyBUcmltbWVkIFN0cmluZzogSGVsbG9Xb3JsZCJ9LCB7Im5hbWUiOiAiVHJpbVJpZ2h0IChTVFJJTkcpIiwgInJldHVybl90eXBlIjogIlNUUklORyIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIHRoZSBpbnB1dCBzdHJpbmcgd2l0aCBhbGwgdHJhaWxpbmcgd2hpdGVzcGFjZXMgcmVtb3ZlZC4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiU1RSSU5HOiBUaGUgaW5wdXQgU1RSSU5HIGZyb20gd2hpY2ggdHJhaWxpbmcgd2hpdGVzcGFjZSB3aWxsIGJlIHJlbW92ZWQuIiwgImRlc2NyaXB0aW9uIjogIlRyaW1zIFNUUklORyBieSByZW1vdmluZyB3aGl0ZXNwYWNlcyBmcm9tIHRoZSBlbmQiLCAiZXhhbXBsZV9jb2RlIjogIlNUUklORyBvcmlnaW5hbFN0cmluZyA9IFwiSGVsbG8sIFdvcmxkISAgIFwiXG5TVFJJTkcgdHJpbW1lZFN0cmluZyA9IFRyaW1SaWdodChvcmlnaW5hbFN0cmluZylcbi8vIE9yaWdpbmFsIFN0cmluZzogJ0hlbGxvLCBXb3JsZCEgICAnXG4vLyBUcmltbWVkIFN0cmluZzogJ0hlbGxvLCBXb3JsZCEnIiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiU1RSSU5HIG9yaWdpbmFsU3RyaW5nID0gXCJIZWxsbywgV29ybGQhICAgXCJcblNUUklORyB0cmltbWVkU3RyaW5nID0gVHJpbVJpZ2h0KG9yaWdpbmFsU3RyaW5nKVxuLy8gT3JpZ2luYWwgU3RyaW5nOiAnSGVsbG8sIFdvcmxkISAgICdcbi8vIFRyaW1tZWQgU3RyaW5nOiAnSGVsbG8sIFdvcmxkIScifSwgeyJuYW1lIjogIlRyaW1SaWdodCAoU1RSSU5HLCBTVFJJTkcpIiwgInJldHVybl90eXBlIjogIlNUUklORyIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIHRoZSBpbnB1dCBzdHJpbmcgd2l0aCBzcGVjaWZpZWQgY2hhcmFjdGVycyByZW1vdmVkIGZyb20gaXRzIGVuZC4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiU1RSSU5HOiB0aGUgaW5wdXQgdGV4dCB0byBiZSB0cmltbWVkOyBTVFJJTkc6IHRoZSBjaGFyYWN0ZXJzIHRvIHJlbW92ZSBmcm9tIHRoZSBlbmQuIiwgImRlc2NyaXB0aW9uIjogIlRyaW1zIFNUUklORyBieSByZW1vdmluZyBnaXZlbiBjaGFyYWN0ZXJzIGZyb20gdGhlIGVuZCIsICJleGFtcGxlX2NvZGUiOiAiU1RSSU5HIG9yaWdpbmFsU3RyaW5nID0gXCJIZWxsbywgV29ybGQhISFcIlxuU1RSSU5HIGNoYXJhY3RlcnNUb1JlbW92ZSA9IFwiIVwiXG5TVFJJTkcgdHJpbW1lZFN0cmluZyA9IFRyaW1SaWdodChvcmlnaW5hbFN0cmluZywgY2hhcmFjdGVyc1RvUmVtb3ZlKVxuXG4vLyBPcmlnaW5hbCBTdHJpbmc6IFwiICsgb3JpZ2luYWxTdHJpbmdcbi8vIFRyaW1tZWQgU3RyaW5nOiBcIiArIHRyaW1tZWRTdHJpbmciLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICJTVFJJTkcgb3JpZ2luYWxTdHJpbmcgPSBcIkhlbGxvLCBXb3JsZCEhIVwiXG5TVFJJTkcgY2hhcmFjdGVyc1RvUmVtb3ZlID0gXCIhXCJcblNUUklORyB0cmltbWVkU3RyaW5nID0gVHJpbVJpZ2h0KG9yaWdpbmFsU3RyaW5nLCBjaGFyYWN0ZXJzVG9SZW1vdmUpXG5cbi8vIE9yaWdpbmFsIFN0cmluZzogXCIgKyBvcmlnaW5hbFN0cmluZ1xuLy8gVHJpbW1lZCBTdHJpbmc6IFwiICsgdHJpbW1lZFN0cmluZyJ9LCB7Im5hbWUiOiAiVUNFLkFwcEdyb3VwcyAoVUNFLlByaXZhdGVBcHApIiwgInJldHVybl90eXBlIjogIlZFQ1RPUjxTVFJJTkc+IiwgInJldHVybl9kZXNjIjogIlJldHVybnMgYSB2ZWN0b3IgY29udGFpbmluZyB0aGUgY29uZmlndXJlZCBhcHBsaWNhdGlvbiBncm91cHMgZm9yIHRoZSBnaXZlbiBwcml2YXRlIGFwcC4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiVUNFLlByaXZhdGVBcHA6IEFuIGluc3RhbmNlIG9mIHRoZSBwcml2YXRlIGFwcGxpY2F0aW9uLiIsICJkZXNjcmlwdGlvbiI6ICJSZXR1cm5zIHRoZSBjb25maWd1cmVkIGFwcGxpY2F0aW9uIGdyb3VwcyIsICJleGFtcGxlX2NvZGUiOiAiVkVDVE9SPFVDRS5Qcml2YXRlQXBwPiBwcml2YXRlQXBwcyA9IFtcIlByaXZhdGVBcHBMaXN0XCJdXG5cblVDRS5Qcml2YXRlQXBwIHRhcmdldEFwcCA9IFwiRXhhbXBsZUFwcFwiXG5cbklGIHRhcmdldEFwcCBJTiBwcml2YXRlQXBwcyBUSEVOIHtcbiAgICAvLyBUYXJnZXQgYXBwbGljYXRpb24gaXMgaW4gdGhlIGxpc3Qgb2YgcHJpdmF0ZSBhcHBzLlxuICAgIE1XRy5BbGxvdyhcIlByaXZhdGVBcHBBbGxvd2VkXCIpXG59IEVMU0Uge1xuICAgIC8vIFRhcmdldCBhcHBsaWNhdGlvbiBpcyBub3QgaW4gdGhlIGxpc3Qgb2YgcHJpdmF0ZSBhcHBzLlxuICAgIE1XRy5CbG9jayhcIlByaXZhdGVBcHBCbG9ja2VkXCIpXG59IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiVkVDVE9SPFVDRS5Qcml2YXRlQXBwPiBwcml2YXRlQXBwcyA9IFtcIlByaXZhdGVBcHBMaXN0XCJdXG5cblVDRS5Qcml2YXRlQXBwIHRhcmdldEFwcCA9IFwiRXhhbXBsZUFwcFwiXG5cbklGIHRhcmdldEFwcCBJTiBwcml2YXRlQXBwcyBUSEVOIHtcbiAgICAvLyBUYXJnZXQgYXBwbGljYXRpb24gaXMgaW4gdGhlIGxpc3Qgb2YgcHJpdmF0ZSBhcHBzLlxuICAgIE1XRy5BbGxvdyhcIlByaXZhdGVBcHBBbGxvd2VkXCIpXG59IEVMU0Uge1xuICAgIC8vIFRhcmdldCBhcHBsaWNhdGlvbiBpcyBub3QgaW4gdGhlIGxpc3Qgb2YgcHJpdmF0ZSBhcHBzLlxuICAgIE1XRy5CbG9jayhcIlByaXZhdGVBcHBCbG9ja2VkXCIpXG59In0sIHsibmFtZSI6ICJVQ0UuQ29udGFpbnNQcm9maWxlIChWRUNUT1I8VUNFLkRldmljZVByb2ZpbGU+LCBTVFJJTkcpIiwgInJldHVybl90eXBlIjogIkJPT0xFQU4iLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJuc2BUUlVFYGlmIHRoZSBgVkVDVE9SYGNvbnRhaW5zIGEgcHJvZmlsZSB3aXRoIHRoZSBzcGVjaWZpZWQgYFNUUklOR2AgbmFtZSwgb3RoZXJ3aXNlYEZBTFNFYCIsICJwYXJhbWV0ZXJfZGVzYyI6ICJWRUNUT1I6IFRoZSBjb2xsZWN0aW9uIG9mIHByb2ZpbGVzIHRvIHNlYXJjaCB3aXRoaW47IFNUUklORzogVGhlIG5hbWUgb2YgdGhlIHByb2ZpbGUgdG8gZmluZC4iLCAiZGVzY3JpcHRpb24iOiAiUmV0dXJucyBpZiB0aGUgcHJvZmlsZXMgY29udGFpbiBhIHByb2ZpbGUgd2l0aCB0aGUgZ2l2ZW4gbmFtZSIsICJleGFtcGxlX2NvZGUiOiAiVkVDVE9SPFVDRS5EZXZpY2VQcm9maWxlPiBkZXZpY2VQcm9maWxlcyA9IFtcImFsbG93ZWRfcHJvZmlsZXNcIl1cblNUUklORyBwcm9maWxlVG9DaGVjayA9IFwiZXhhbXBsZV9wcm9maWxlXCJcblxuSUYgVUNFLkNvbnRhaW5zUHJvZmlsZShkZXZpY2VQcm9maWxlcywgcHJvZmlsZVRvQ2hlY2spIFRIRU4ge1xuICAgIC8vIFByb2ZpbGUgaXMgYWxsb3dlZFxuICAgIE1XRy5BbGxvdyhcIlByb2ZpbGVDaGVja1wiKVxufSBFTFNFIHtcbiAgICAvLyBQcm9maWxlIGlzIG5vdCBhbGxvd2VkXG4gICAgTVdHLkJsb2NrKFwiUHJvZmlsZUNoZWNrXCIpXG59IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiVkVDVE9SPFVDRS5EZXZpY2VQcm9maWxlPiBkZXZpY2VQcm9maWxlcyA9IFtcImFsbG93ZWRfcHJvZmlsZXNcIl1cblNUUklORyBwcm9maWxlVG9DaGVjayA9IFwiZXhhbXBsZV9wcm9maWxlXCJcblxuSUYgVUNFLkNvbnRhaW5zUHJvZmlsZShkZXZpY2VQcm9maWxlcywgcHJvZmlsZVRvQ2hlY2spIFRIRU4ge1xuICAgIC8vIFByb2ZpbGUgaXMgYWxsb3dlZFxuICAgIE1XRy5BbGxvdyhcIlByb2ZpbGVDaGVja1wiKVxufSBFTFNFIHtcbiAgICAvLyBQcm9maWxlIGlzIG5vdCBhbGxvd2VkXG4gICAgTVdHLkJsb2NrKFwiUHJvZmlsZUNoZWNrXCIpXG59In0sIHsibmFtZSI6ICJVQ0UuQ3VzdG9tRWdyZXNzQXZhaWxhYmxlIChTVFJJTkcpIiwgInJldHVybl90eXBlIjogIkJPT0xFQU4iLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJuc2BUUlVFYGlmIHRoZSBFZ3Jlc3MgSVAgd2FzIGZvdW5kIGluIHRoZSBjdXN0b21lciByZXNvdXJjZS4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiU1RSSU5HOiBpbnB1dCBlZ3Jlc3MgSUQuIiwgImRlc2NyaXB0aW9uIjogIlJldHVybnMgYSBib29sIGlmIHRoZSBFZ3Jlc3MgSVAgd2FzIGZvdW5kIGluIHRoZSBjdXN0b21lciByZXNvdXJjZS4iLCAiZXhhbXBsZV9jb2RlIjogIlNUUklORyBlZ3Jlc3NJRCA9IFwiY3VzdG9tX2VncmVzc19pZFwiXG5cbi8vIEFwcGx5IHRoZSBjdXN0b20gZWdyZXNzIElQXG5VQ0UuQXBwbHlDdXN0b21FZ3Jlc3MoZWdyZXNzSUQpXG5cbi8vIEFwcGxpZWQgY3VzdG9tIGVncmVzcyB3aXRoIElEOiBcIiArIGVncmVzc0lEIiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiU1RSSU5HIGVncmVzc0lEID0gXCJjdXN0b21fZWdyZXNzX2lkXCJcblxuLy8gQXBwbHkgdGhlIGN1c3RvbSBlZ3Jlc3MgSVBcblVDRS5BcHBseUN1c3RvbUVncmVzcyhlZ3Jlc3NJRClcblxuLy8gQXBwbGllZCBjdXN0b20gZWdyZXNzIHdpdGggSUQ6IFwiICsgZWdyZXNzSUQifSwgeyJuYW1lIjogIlVDRS5Eb3VibGVFbmNyeXB0IChVQ0UuUHJpdmF0ZUFwcCkiLCAicmV0dXJuX3R5cGUiOiAiQk9PTEVBTiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIGEgYm9vbGVhbiBpbmRpY2F0aW5nIHdoZXRoZXIgdGhlIHByaXZhdGUgYXBwIHJlcXVpcmVzIGRvdWJsZSBlbmNyeXB0aW9uLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJVQ0UuUHJpdmF0ZUFwcDogQW4gaW5zdGFuY2Ugb2YgdGhlIHByaXZhdGUgYXBwbGljYXRpb24uIiwgImRlc2NyaXB0aW9uIjogIlJldHVybnMgaWYgdGhlIHByaXZhdGUgYXBwIHNob3VsZCBiZSBlbmNyeXB0ZWQgdHdpY2UiLCAiZXhhbXBsZV9jb2RlIjogIlVDRS5Qcml2YXRlQXBwIHByaXZhdGVBcHBJbnN0YW5jZVxuQk9PTEVBTiByZXF1aXJlc0RvdWJsZUVuY3J5cHRpb24gPSBVQ0UuRG91YmxlRW5jcnlwdChwcml2YXRlQXBwSW5zdGFuY2UpXG5cbklGIHJlcXVpcmVzRG91YmxlRW5jcnlwdGlvbiBUSEVOIHtcbiAgICAvLyBUaGUgcHJpdmF0ZSBhcHAgcmVxdWlyZXMgZG91YmxlIGVuY3J5cHRpb24uXG59IEVMU0Uge1xuICAgIC8vIFRoZSBwcml2YXRlIGFwcCBkb2VzIG5vdCByZXF1aXJlIGRvdWJsZSBlbmNyeXB0aW9uLlxufSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIlVDRS5Qcml2YXRlQXBwIHByaXZhdGVBcHBJbnN0YW5jZVxuQk9PTEVBTiByZXF1aXJlc0RvdWJsZUVuY3J5cHRpb24gPSBVQ0UuRG91YmxlRW5jcnlwdChwcml2YXRlQXBwSW5zdGFuY2UpXG5cbklGIHJlcXVpcmVzRG91YmxlRW5jcnlwdGlvbiBUSEVOIHtcbiAgICAvLyBUaGUgcHJpdmF0ZSBhcHAgcmVxdWlyZXMgZG91YmxlIGVuY3J5cHRpb24uXG59IEVMU0Uge1xuICAgIC8vIFRoZSBwcml2YXRlIGFwcCBkb2VzIG5vdCByZXF1aXJlIGRvdWJsZSBlbmNyeXB0aW9uLlxufSJ9LCB7Im5hbWUiOiAiVUNFLkdldEJyb3dzZXJBY2Nlc3MgKFVDRS5Qcml2YXRlQXBwKSIsICJyZXR1cm5fdHlwZSI6ICJCT09MRUFOIiwgInJldHVybl9kZXNjIjogIlJldHVybnMgYSBib29sZWFuIGluZGljYXRpbmcgd2hldGhlciB0aGUgcHJpdmF0ZSBhcHBsaWNhdGlvbiBpcyBhY2Nlc3NpYmxlIHRocm91Z2ggYSBicm93c2VyLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJVQ0UuUHJpdmF0ZUFwcDogQW4gaW5zdGFuY2Ugb2YgdGhlIHByaXZhdGUgYXBwbGljYXRpb24uIiwgImRlc2NyaXB0aW9uIjogIlJldHVybnMgaWYgdGhlIHByaXZhdGUgYXBwIGNhbiBiZSBhY2Nlc3NlZCB2aWEgYnJvd3NlciIsICJleGFtcGxlX2NvZGUiOiAiLy8gQ3JlYXRlIGFuIGluc3RhbmNlIG9mIFVDRS5Qcml2YXRlQXBwXG5VQ0UuUHJpdmF0ZUFwcCBwcml2YXRlQXBwSW5zdGFuY2UgPSAuLi4gLy8gSW5pdGlhbGl6ZSB0aGlzIHdpdGggdGhlIGFwcHJvcHJpYXRlIHByaXZhdGUgYXBwIGluc3RhbmNlXG5cbi8vIENoZWNrIGlmIHRoZSBwcml2YXRlIGFwcGxpY2F0aW9uIGlzIGFjY2Vzc2libGUgdGhyb3VnaCBhIGJyb3dzZXJcbkJPT0xFQU4gaXNBY2Nlc3NpYmxlID0gVUNFLkdldEJyb3dzZXJBY2Nlc3MocHJpdmF0ZUFwcEluc3RhbmNlKVxuXG4vLyBQZXJmb3JtIGFjdGlvbnMgYmFzZWQgb24gdGhlIGFjY2Vzc2liaWxpdHlcbklGIGlzQWNjZXNzaWJsZSBUSEVOIHtcbiAgICAvLyBUaGUgcHJpdmF0ZSBhcHBsaWNhdGlvbiBpcyBhY2Nlc3NpYmxlIHRocm91Z2ggYSBicm93c2VyLlxuICAgIC8vIEFkZGl0aW9uYWwgbG9naWMgZm9yIGFjY2Vzc2libGUgcHJpdmF0ZSBhcHBcbn0gRUxTRSB7XG4gICAgLy8gVGhlIHByaXZhdGUgYXBwbGljYXRpb24gaXMgbm90IGFjY2Vzc2libGUgdGhyb3VnaCBhIGJyb3dzZXIuXG4gICAgLy8gQWRkaXRpb25hbCBsb2dpYyBmb3Igbm9uLWFjY2Vzc2libGUgcHJpdmF0ZSBhcHBcbn0iLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICIvLyBDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgVUNFLlByaXZhdGVBcHBcblVDRS5Qcml2YXRlQXBwIHByaXZhdGVBcHBJbnN0YW5jZSA9IC4uLiAvLyBJbml0aWFsaXplIHRoaXMgd2l0aCB0aGUgYXBwcm9wcmlhdGUgcHJpdmF0ZSBhcHAgaW5zdGFuY2VcblxuLy8gQ2hlY2sgaWYgdGhlIHByaXZhdGUgYXBwbGljYXRpb24gaXMgYWNjZXNzaWJsZSB0aHJvdWdoIGEgYnJvd3NlclxuQk9PTEVBTiBpc0FjY2Vzc2libGUgPSBVQ0UuR2V0QnJvd3NlckFjY2Vzcyhwcml2YXRlQXBwSW5zdGFuY2UpXG5cbi8vIFBlcmZvcm0gYWN0aW9ucyBiYXNlZCBvbiB0aGUgYWNjZXNzaWJpbGl0eVxuSUYgaXNBY2Nlc3NpYmxlIFRIRU4ge1xuICAgIC8vIFRoZSBwcml2YXRlIGFwcGxpY2F0aW9uIGlzIGFjY2Vzc2libGUgdGhyb3VnaCBhIGJyb3dzZXIuXG4gICAgLy8gQWRkaXRpb25hbCBsb2dpYyBmb3IgYWNjZXNzaWJsZSBwcml2YXRlIGFwcFxufSBFTFNFIHtcbiAgICAvLyBUaGUgcHJpdmF0ZSBhcHBsaWNhdGlvbiBpcyBub3QgYWNjZXNzaWJsZSB0aHJvdWdoIGEgYnJvd3Nlci5cbiAgICAvLyBBZGRpdGlvbmFsIGxvZ2ljIGZvciBub24tYWNjZXNzaWJsZSBwcml2YXRlIGFwcFxufSJ9LCB7Im5hbWUiOiAiVUNFLkdldENlcnRDb25maWcgKFVDRS5Qcml2YXRlQXBwKSIsICJyZXR1cm5fdHlwZSI6ICJTVFJJTkciLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyB0aGUgSUQgb2YgdGhlIGBNV0cuQ2xpZW50Q29udGV4dFJldlByb3h5U2V0dGluZyBjb25maWd1cmF0aW9uIGBhcyBhIHN0cmluZy4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiVUNFLlByaXZhdGVBcHA6IEFuIGluc3RhbmNlIG9mIHRoZSBwcml2YXRlIGFwcGxpY2F0aW9uLiIsICJkZXNjcmlwdGlvbiI6ICJSZXR1cm5zIHRoZSBJRCBvZiB0aGUgTVdHLkNsaWVudENvbnRleHRSZXZQcm94eVNldHRpbmcgY29uZmlndXJhdGlvbiIsICJleGFtcGxlX2NvZGUiOiAiLy8gRGVmaW5lIGEgdmFyaWFibGUgdG8gaG9sZCB0aGUgcHJpdmF0ZSBhcHAgY29uZmlndXJhdGlvblxuVUNFLlByaXZhdGVBcHAgcHJpdmF0ZUFwcENvbmZpZ1xuXG4vLyBDYWxsIHRoZSBVQ0UuR2V0Q2VydENvbmZpZyBmdW5jdGlvbiB0byByZXRyaWV2ZSB0aGUgY2VydGlmaWNhdGUgY29uZmlndXJhdGlvblxucHJpdmF0ZUFwcENvbmZpZyA9IFVDRS5HZXRDZXJ0Q29uZmlnKClcblxuLy8gQ2hlY2sgaWYgdGhlIGNvbmZpZ3VyYXRpb24gd2FzIHN1Y2Nlc3NmdWxseSByZXRyaWV2ZWRcbklGIHByaXZhdGVBcHBDb25maWcgIT0gTlVMTCBUSEVOIHtcbiAgICAvLyBDZXJ0aWZpY2F0ZSBDb25maWd1cmF0aW9uIFJldHJpZXZlZDogXG4gICAgLy8gcHJpdmF0ZUFwcENvbmZpZ1xufSBFTFNFIHtcbiAgICAvLyBGYWlsZWQgdG8gcmV0cmlldmUgY2VydGlmaWNhdGUgY29uZmlndXJhdGlvbi5cbn0iLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICIvLyBEZWZpbmUgYSB2YXJpYWJsZSB0byBob2xkIHRoZSBwcml2YXRlIGFwcCBjb25maWd1cmF0aW9uXG5VQ0UuUHJpdmF0ZUFwcCBwcml2YXRlQXBwQ29uZmlnXG5cbi8vIENhbGwgdGhlIFVDRS5HZXRDZXJ0Q29uZmlnIGZ1bmN0aW9uIHRvIHJldHJpZXZlIHRoZSBjZXJ0aWZpY2F0ZSBjb25maWd1cmF0aW9uXG5wcml2YXRlQXBwQ29uZmlnID0gVUNFLkdldENlcnRDb25maWcoKVxuXG4vLyBDaGVjayBpZiB0aGUgY29uZmlndXJhdGlvbiB3YXMgc3VjY2Vzc2Z1bGx5IHJldHJpZXZlZFxuSUYgcHJpdmF0ZUFwcENvbmZpZyAhPSBOVUxMIFRIRU4ge1xuICAgIC8vIENlcnRpZmljYXRlIENvbmZpZ3VyYXRpb24gUmV0cmlldmVkOiBcbiAgICAvLyBwcml2YXRlQXBwQ29uZmlnXG59IEVMU0Uge1xuICAgIC8vIEZhaWxlZCB0byByZXRyaWV2ZSBjZXJ0aWZpY2F0ZSBjb25maWd1cmF0aW9uLlxufSJ9LCB7Im5hbWUiOiAiVUNFLkdldENsaWVudERldmljZVByb2ZpbGVzICgpIiwgInJldHVybl90eXBlIjogIlZFQ1RPUjxVQ0UuRGV2aWNlUHJvZmlsZT4iLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyB0aGUgZGV2aWNlIHByb2ZpbGVzIG9mIHRoZSBjbGllbnQgKE1DUCkuIiwgInBhcmFtZXRlcl9kZXNjIjogIk5vbmUiLCAiZGVzY3JpcHRpb24iOiAiUmV0dXJucyB0aGUgZGV2aWNlIHByb2ZpbGVzIG9mIHRoZSBjbGllbnQgKE1DUCkiLCAiZXhhbXBsZV9jb2RlIjogIlZFQ1RPUjxVQ0UuRGV2aWNlUHJvZmlsZT4gZGV2aWNlUHJvZmlsZXMgPSBVQ0UuR2V0Q2xpZW50RGV2aWNlUHJvZmlsZXMoKVxuXG4vLyBJdGVyYXRlIHRocm91Z2ggdGhlIGRldmljZSBwcm9maWxlcyBhbmQgcHJpbnQgZWFjaCBvbmVcbkZPUiBFQUNIIHByb2ZpbGUgSU4gZGV2aWNlUHJvZmlsZXMge1xuICAgIC8vIERldmljZSBQcm9maWxlOiBcIiArIHByb2ZpbGVcbn0iLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICJWRUNUT1I8VUNFLkRldmljZVByb2ZpbGU+IGRldmljZVByb2ZpbGVzID0gVUNFLkdldENsaWVudERldmljZVByb2ZpbGVzKClcblxuLy8gSXRlcmF0ZSB0aHJvdWdoIHRoZSBkZXZpY2UgcHJvZmlsZXMgYW5kIHByaW50IGVhY2ggb25lXG5GT1IgRUFDSCBwcm9maWxlIElOIGRldmljZVByb2ZpbGVzIHtcbiAgICAvLyBEZXZpY2UgUHJvZmlsZTogXCIgKyBwcm9maWxlXG59In0sIHsibmFtZSI6ICJVQ0UuR2V0T3V0Ym91bmRDb25uZWN0aW9uSW5mbyAoU1RSSU5HKSIsICJyZXR1cm5fdHlwZSI6ICJKU09OIiwgInJldHVybl9kZXNjIjogIlJldHVybnMgYSBKU09OIG9iamVjdCBjb250YWluaW5nIGRldGFpbHMgYWJvdXQgdGhlIG91dGJvdW5kIGNvbm5lY3Rpb24uIiwgInBhcmFtZXRlcl9kZXNjIjogIlNUUklORzogVGhlIGRlc3RpbmF0aW9uIG9yIGNvbm5lY3Rpb24gaWRlbnRpZmllciB0byBnZXQgb3V0Ym91bmQgY29ubmVjdGlvbiBkZXRhaWxzIGZvci4iLCAiZGVzY3JpcHRpb24iOiAiRGV0ZXJtaW5lcyBvdXRib3VuZCBjb25uZWN0aW9uIGRldGFpbHMiLCAiZXhhbXBsZV9jb2RlIjogIlNUUklORyBkZXN0aW5hdGlvbiA9IFwiZXhhbXBsZS5jb21cIlxuSlNPTiBjb25uZWN0aW9uSW5mbyA9IFVDRS5HZXRPdXRib3VuZENvbm5lY3Rpb25JbmZvKGRlc3RpbmF0aW9uKVxuLy8gT3V0Ym91bmQgQ29ubmVjdGlvbiBJbmZvOiBcIiArIGNvbm5lY3Rpb25JbmZvLnRvU3RyaW5nKCkiLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICJTVFJJTkcgZGVzdGluYXRpb24gPSBcImV4YW1wbGUuY29tXCJcbkpTT04gY29ubmVjdGlvbkluZm8gPSBVQ0UuR2V0T3V0Ym91bmRDb25uZWN0aW9uSW5mbyhkZXN0aW5hdGlvbilcbi8vIE91dGJvdW5kIENvbm5lY3Rpb24gSW5mbzogXCIgKyBjb25uZWN0aW9uSW5mby50b1N0cmluZygpIn0sIHsibmFtZSI6ICJVQ0UuR2V0UHJpdmF0ZUFwcCAoKSIsICJyZXR1cm5fdHlwZSI6ICJVQ0UuUHJpdmF0ZUFwcCIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIHRoZSBkZXRlY3RlZCBwcml2YXRlIGFwcC4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiTm9uZSIsICJkZXNjcmlwdGlvbiI6ICJSZXR1cm5zIHRoZSBkZXRlY3RlZCBwcml2YXRlIGFwcCIsICJleGFtcGxlX2NvZGUiOiAiVUNFLlByaXZhdGVBcHAgcHJpdmF0ZUFwcCA9IFVDRS5HZXRQcml2YXRlQXBwKClcblxuSUYgcHJpdmF0ZUFwcCAhPSBOVUxMIFRIRU4ge1xuICAgIC8vIFByaXZhdGUgQXBwIGRldGVjdGVkOiBcIiArIHByaXZhdGVBcHBcbiAgICAvLyBBZGRpdGlvbmFsIGxvZ2ljIGZvciBoYW5kbGluZyB0aGUgcHJpdmF0ZSBhcHAgY2FuIGJlIGFkZGVkIGhlcmVcbn0gRUxTRSB7XG4gICAgLy8gTm8gUHJpdmF0ZSBBcHAgZGV0ZWN0ZWQuXG59IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiVUNFLlByaXZhdGVBcHAgcHJpdmF0ZUFwcCA9IFVDRS5HZXRQcml2YXRlQXBwKClcblxuSUYgcHJpdmF0ZUFwcCAhPSBOVUxMIFRIRU4ge1xuICAgIC8vIFByaXZhdGUgQXBwIGRldGVjdGVkOiBcIiArIHByaXZhdGVBcHBcbiAgICAvLyBBZGRpdGlvbmFsIGxvZ2ljIGZvciBoYW5kbGluZyB0aGUgcHJpdmF0ZSBhcHAgY2FuIGJlIGFkZGVkIGhlcmVcbn0gRUxTRSB7XG4gICAgLy8gTm8gUHJpdmF0ZSBBcHAgZGV0ZWN0ZWQuXG59In0sIHsibmFtZSI6ICJVQ0UuR2V0UHJvdG9jb2wgKFVDRS5Qcml2YXRlQXBwKSIsICJyZXR1cm5fdHlwZSI6ICJTVFJJTkciLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyB0aGUgcHJvdG9jb2wgY29uZmlndXJhdGlvbiBvZiB0aGUgc3BlY2lmaWVkIHByaXZhdGUgYXBwbGljYXRpb24uIiwgInBhcmFtZXRlcl9kZXNjIjogIlVDRS5Qcml2YXRlQXBwOiB0aGUgcHJpdmF0ZSBhcHBsaWNhdGlvbiB3aG9zZSBwcm90b2NvbCB5b3Ugd2FudCB0byByZXRyaWV2ZS4iLCAiZGVzY3JpcHRpb24iOiAiUmV0dXJucyB0aGUgY29uZmlndXJlZCBwcm90b2NvbCBvZiB0aGUgcHJpdmF0ZSBhcHAiLCAiZXhhbXBsZV9jb2RlIjogIi8vIEFzc3VtZSB3ZSBoYXZlIGEgVUNFLlByaXZhdGVBcHAgb2JqZWN0IG5hbWVkIHByaXZhdGVBcHBcblVDRS5Qcml2YXRlQXBwIHByaXZhdGVBcHAgPSAuLi4gLy8gSW5pdGlhbGl6ZSBvciBvYnRhaW4gdGhlIHByaXZhdGVBcHAgb2JqZWN0XG5cbi8vIFJldHJpZXZlIHRoZSBwcm90b2NvbCBjb25maWd1cmF0aW9uIG9mIHRoZSBwcml2YXRlIGFwcFxuU1RSSU5HIHByb3RvY29sID0gVUNFLkdldFByb3RvY29sKHByaXZhdGVBcHApXG5cbi8vIFRoZSBwcm90b2NvbCBjb25maWd1cmF0aW9uIG9mIHRoZSBwcml2YXRlIGFwcCBpczogXCIgKyBwcm90b2NvbFxuLy8gd2FzIHByaW50ZWQgdG8gdGhlIGNvbnNvbGUgZm9yIGRlYnVnZ2luZyBwdXJwb3NlcyIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIi8vIEFzc3VtZSB3ZSBoYXZlIGEgVUNFLlByaXZhdGVBcHAgb2JqZWN0IG5hbWVkIHByaXZhdGVBcHBcblVDRS5Qcml2YXRlQXBwIHByaXZhdGVBcHAgPSAuLi4gLy8gSW5pdGlhbGl6ZSBvciBvYnRhaW4gdGhlIHByaXZhdGVBcHAgb2JqZWN0XG5cbi8vIFJldHJpZXZlIHRoZSBwcm90b2NvbCBjb25maWd1cmF0aW9uIG9mIHRoZSBwcml2YXRlIGFwcFxuU1RSSU5HIHByb3RvY29sID0gVUNFLkdldFByb3RvY29sKHByaXZhdGVBcHApXG5cbi8vIFRoZSBwcm90b2NvbCBjb25maWd1cmF0aW9uIG9mIHRoZSBwcml2YXRlIGFwcCBpczogXCIgKyBwcm90b2NvbFxuLy8gd2FzIHByaW50ZWQgdG8gdGhlIGNvbnNvbGUgZm9yIGRlYnVnZ2luZyBwdXJwb3NlcyJ9LCB7Im5hbWUiOiAiVUNFLklEIChVQ0UuUHJpdmF0ZUFwcCkiLCAicmV0dXJuX3R5cGUiOiAiU1RSSU5HIiwgInJldHVybl9kZXNjIjogIlJldHVybnMgYSBzdHJpbmcgcmVwcmVzZW50aW5nIHRoZSB1bmlxdWUgaWRlbnRpZmllciBvZiB0aGUgcHJpdmF0ZSBhcHAuIiwgInBhcmFtZXRlcl9kZXNjIjogIlVDRS5Qcml2YXRlQXBwOiBBbiBpbnN0YW5jZSBvZiB0aGUgcHJpdmF0ZSBhcHBsaWNhdGlvbi4iLCAiZGVzY3JpcHRpb24iOiAiUmV0dXJucyB0aGUgSUQgb2YgdGhlIHByaXZhdGUgYXBwIiwgImV4YW1wbGVfY29kZSI6ICIvLyBBc3N1bWUgd2UgaGF2ZSBhIFVDRS5Qcml2YXRlQXBwIGluc3RhbmNlIG5hbWVkIHByaXZhdGVBcHBJbnN0YW5jZVxuVUNFLlByaXZhdGVBcHAgcHJpdmF0ZUFwcEluc3RhbmNlID0gLi4uIC8vIEluaXRpYWxpemUgb3Igb2J0YWluIHRoZSBwcml2YXRlIGFwcCBpbnN0YW5jZVxuXG4vLyBHZXQgdGhlIElEIG9mIHRoZSBwcml2YXRlIGFwcFxuU1RSSU5HIHByaXZhdGVBcHBJRCA9IFVDRS5JRChwcml2YXRlQXBwSW5zdGFuY2UpXG5cbi8vIFRoZSBJRCBvZiB0aGUgcHJpdmF0ZSBhcHAgaXM6IFwiICsgcHJpdmF0ZUFwcElEIiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiLy8gQXNzdW1lIHdlIGhhdmUgYSBVQ0UuUHJpdmF0ZUFwcCBpbnN0YW5jZSBuYW1lZCBwcml2YXRlQXBwSW5zdGFuY2VcblVDRS5Qcml2YXRlQXBwIHByaXZhdGVBcHBJbnN0YW5jZSA9IC4uLiAvLyBJbml0aWFsaXplIG9yIG9idGFpbiB0aGUgcHJpdmF0ZSBhcHAgaW5zdGFuY2VcblxuLy8gR2V0IHRoZSBJRCBvZiB0aGUgcHJpdmF0ZSBhcHBcblNUUklORyBwcml2YXRlQXBwSUQgPSBVQ0UuSUQocHJpdmF0ZUFwcEluc3RhbmNlKVxuXG4vLyBUaGUgSUQgb2YgdGhlIHByaXZhdGUgYXBwIGlzOiBcIiArIHByaXZhdGVBcHBJRCJ9LCB7Im5hbWUiOiAiVUNFLkluZ3Jlc3NDb3VudHJ5ICgpIiwgInJldHVybl90eXBlIjogIlNUUklORyIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIGEgc3RyaW5nIG9mIDIgY2hhcmFjdGVycyBpZGVudGlmeWluZyB0aGUgY291bnRyeSBjb2RlIG9mIHRoZSBJbmdyZXNzIFBPUC4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiTm9uZSIsICJkZXNjcmlwdGlvbiI6ICJSZXR1cm5zIGEgU1RSSU5HIG9mIDIgY2hhcmFjdGVycyBpZGVudGlmeWluZyB0aGUgY291bnRyeSBjb2RlIG9mIHRoZSBJbmdyZXNzIFBPUC4iLCAiZXhhbXBsZV9jb2RlIjogIlNUUklORyBjb3VudHJ5Q29kZSA9IFVDRS5JbmdyZXNzQ291bnRyeSgpXG5cbklGIGNvdW50cnlDb2RlID09IFwiVVNcIiBUSEVOIHtcbiAgICAvLyBJbmdyZXNzIGNvdW50cnkgaXMgdGhlIFVuaXRlZCBTdGF0ZXMuXG4gICAgTVdHLkFsbG93KFwiSW5ncmVzcyBmcm9tIFVTXCIpXG59IEVMU0Uge1xuICAgIC8vIEluZ3Jlc3MgY291bnRyeSBpcyBub3QgdGhlIFVuaXRlZCBTdGF0ZXMuXG4gICAgTVdHLkJsb2NrKFwiQWNjZXNzIGJsb2NrZWQgZm9yIG5vbi1VUyBpbmdyZXNzXCIpXG59IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiU1RSSU5HIGNvdW50cnlDb2RlID0gVUNFLkluZ3Jlc3NDb3VudHJ5KClcblxuSUYgY291bnRyeUNvZGUgPT0gXCJVU1wiIFRIRU4ge1xuICAgIC8vIEluZ3Jlc3MgY291bnRyeSBpcyB0aGUgVW5pdGVkIFN0YXRlcy5cbiAgICBNV0cuQWxsb3coXCJJbmdyZXNzIGZyb20gVVNcIilcbn0gRUxTRSB7XG4gICAgLy8gSW5ncmVzcyBjb3VudHJ5IGlzIG5vdCB0aGUgVW5pdGVkIFN0YXRlcy5cbiAgICBNV0cuQmxvY2soXCJBY2Nlc3MgYmxvY2tlZCBmb3Igbm9uLVVTIGluZ3Jlc3NcIilcbn0ifSwgeyJuYW1lIjogIlVDRS5Jc0NvYWNoaW5nU2Vzc2lvbkFjdGl2ZSAoU1RSSU5HKSIsICJyZXR1cm5fdHlwZSI6ICJCT09MRUFOIiwgInJldHVybl9kZXNjIjogIlJldHVybnNgVFJVRWBpZiBhIGNvYWNoaW5nIHNlc3Npb24gd2l0aCB0aGUgZ2l2ZW4gSUQgaXMgY3VycmVudGx5IGFjdGl2ZS4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiU1RSSU5HOiB0aGUgSUQgb2YgdGhlIGNvYWNoaW5nIHNlc3Npb24uIiwgImRlc2NyaXB0aW9uIjogInJldHVybnMgVFJVRSBpZiBhIGNvYWNoaW5nIHNlc3Npb24gd2l0aCBnaXZlbiBJRCBpcyBhY3RpdmUiLCAiZXhhbXBsZV9jb2RlIjogIlNUUklORyBzZXNzaW9uSUQgPSBcIjEyMzQ1XCJcbkJPT0xFQU4gaXNBY3RpdmUgPSBVQ0UuSXNDb2FjaGluZ1Nlc3Npb25BY3RpdmUoc2Vzc2lvbklEKVxuXG5JRiBpc0FjdGl2ZSBUSEVOIHtcbiAgICAvLyBcIkNvYWNoaW5nIHNlc3Npb24gd2l0aCBJRCBcIiArIHNlc3Npb25JRCArIFwiIGlzIGN1cnJlbnRseSBhY3RpdmUuXCJcbn0gRUxTRSB7XG4gICAgLy8gXCJDb2FjaGluZyBzZXNzaW9uIHdpdGggSUQgXCIgKyBzZXNzaW9uSUQgKyBcIiBpcyBub3QgYWN0aXZlLlwiXG59IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiU1RSSU5HIHNlc3Npb25JRCA9IFwiMTIzNDVcIlxuQk9PTEVBTiBpc0FjdGl2ZSA9IFVDRS5Jc0NvYWNoaW5nU2Vzc2lvbkFjdGl2ZShzZXNzaW9uSUQpXG5cbklGIGlzQWN0aXZlIFRIRU4ge1xuICAgIC8vIFwiQ29hY2hpbmcgc2Vzc2lvbiB3aXRoIElEIFwiICsgc2Vzc2lvbklEICsgXCIgaXMgY3VycmVudGx5IGFjdGl2ZS5cIlxufSBFTFNFIHtcbiAgICAvLyBcIkNvYWNoaW5nIHNlc3Npb24gd2l0aCBJRCBcIiArIHNlc3Npb25JRCArIFwiIGlzIG5vdCBhY3RpdmUuXCJcbn0ifSwgeyJuYW1lIjogIlVDRS5Jc01hcmtlZEZvclJCSSAoVUNFLlByaXZhdGVBcHApIiwgInJldHVybl90eXBlIjogIkJPT0xFQU4iLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyB3aGV0aGVyIHRoZSBjb25uZWN0aW9uIHRvIGEgcHJpdmF0ZSBhcHBsaWNhdGlvbiBpcyBtYXJrZWQgZm9yIGlzb2xhdGlvbi4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiVUNFLlByaXZhdGVBcHA6IEFuIGluc3RhbmNlIG9mIHRoZSBwcml2YXRlIGFwcGxpY2F0aW9uLiIsICJkZXNjcmlwdGlvbiI6ICJGdW5jdGlvbnM6IFJldHVybnMgaWYgdGhpcyBjb25uZWN0aW9uIHRvIGEgcHJpdmF0ZSBhcHBsaWNhdGlvbiB3aWxsIGJlIHNlbnQgdG8gaXNvbGF0aW9uIiwgImV4YW1wbGVfY29kZSI6ICIvLyBBc3N1bWUgcHJpdmF0ZUFwcCBpcyBvYnRhaW5lZCBmcm9tIHNvbWUgY29udGV4dCBvciBpbml0aWFsaXphdGlvblxuVUNFLlByaXZhdGVBcHAgcHJpdmF0ZUFwcCA9IC8vIEluaXRpYWxpemF0aW9uIG9yIGNvbnRleHQtc3BlY2lmaWMgY29kZSB0byBnZXQgdGhlIHByaXZhdGUgYXBwXG5cbi8vIENoZWNrIGlmIHRoZSBwcml2YXRlIGFwcCBpcyBtYXJrZWQgZm9yIFJCSVxuSUYgVUNFLklzTWFya2VkRm9yUkJJKHByaXZhdGVBcHApIFRIRU4ge1xuICAgIC8vIFRoZSBwcml2YXRlIGFwcCBpcyBtYXJrZWQgZm9yIFJCSS5cbiAgICAvLyBBZGRpdGlvbmFsIGxvZ2ljIGZvciBoYW5kbGluZyBSQkktbWFya2VkIHByaXZhdGUgYXBwc1xufSBFTFNFIHtcbiAgICAvLyBUaGUgcHJpdmF0ZSBhcHAgaXMgbm90IG1hcmtlZCBmb3IgUkJJLlxuICAgIC8vIEFkZGl0aW9uYWwgbG9naWMgZm9yIGhhbmRsaW5nIG5vbi1SQkktbWFya2VkIHByaXZhdGUgYXBwc1xufSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIi8vIEFzc3VtZSBwcml2YXRlQXBwIGlzIG9idGFpbmVkIGZyb20gc29tZSBjb250ZXh0IG9yIGluaXRpYWxpemF0aW9uXG5VQ0UuUHJpdmF0ZUFwcCBwcml2YXRlQXBwID0gLy8gSW5pdGlhbGl6YXRpb24gb3IgY29udGV4dC1zcGVjaWZpYyBjb2RlIHRvIGdldCB0aGUgcHJpdmF0ZSBhcHBcblxuLy8gQ2hlY2sgaWYgdGhlIHByaXZhdGUgYXBwIGlzIG1hcmtlZCBmb3IgUkJJXG5JRiBVQ0UuSXNNYXJrZWRGb3JSQkkocHJpdmF0ZUFwcCkgVEhFTiB7XG4gICAgLy8gVGhlIHByaXZhdGUgYXBwIGlzIG1hcmtlZCBmb3IgUkJJLlxuICAgIC8vIEFkZGl0aW9uYWwgbG9naWMgZm9yIGhhbmRsaW5nIFJCSS1tYXJrZWQgcHJpdmF0ZSBhcHBzXG59IEVMU0Uge1xuICAgIC8vIFRoZSBwcml2YXRlIGFwcCBpcyBub3QgbWFya2VkIGZvciBSQkkuXG4gICAgLy8gQWRkaXRpb25hbCBsb2dpYyBmb3IgaGFuZGxpbmcgbm9uLVJCSS1tYXJrZWQgcHJpdmF0ZSBhcHBzXG59In0sIHsibmFtZSI6ICJVQ0UuSXNQcml2YXRlQXBwIChVQ0UuUHJpdmF0ZUFwcCkiLCAicmV0dXJuX3R5cGUiOiAiQk9PTEVBTiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zYFRSVUVgaWYgYSBwcml2YXRlIGFwcCBpcyBkZXRlY3RlZC4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiVUNFLlByaXZhdGVBcHA6IEFuIGluc3RhbmNlIG9mIHRoZSBwcml2YXRlIGFwcGxpY2F0aW9uLiIsICJkZXNjcmlwdGlvbiI6ICJSZXR1cm5zIGlmIGEgcHJpdmF0ZSBhcHAgd2FzIGRldGVjdGVkIiwgImV4YW1wbGVfY29kZSI6ICIvLyBHZXQgdGhlIGRldGVjdGVkIHByaXZhdGUgYXBwXG5VQ0UuUHJpdmF0ZUFwcCBwcml2YXRlQXBwID0gVUNFLkdldFByaXZhdGVBcHAoKVxuXG4vLyBDaGVjayBpZiB0aGUgZGV0ZWN0ZWQgYXBwIGlzIGEgcHJpdmF0ZSBhcHBcbklGIFVDRS5Jc1ByaXZhdGVBcHAocHJpdmF0ZUFwcCkgVEhFTiB7XG4gICAgLy8gUGVyZm9ybSBhY3Rpb25zIGlmIGl0IGlzIGEgcHJpdmF0ZSBhcHBcbiAgICAvLyBEZXRlY3RlZCBhIHByaXZhdGUgYXBwOiBcIiArIHByaXZhdGVBcHBcbiAgICBNV0cuQmxvY2soXCJBY2Nlc3MgdG8gcHJpdmF0ZSBhcHBzIGlzIG5vdCBhbGxvd2VkXCIpXG59IEVMU0Uge1xuICAgIC8vIEFsbG93IHRoZSBjb25uZWN0aW9uIGlmIGl0IGlzIG5vdCBhIHByaXZhdGUgYXBwXG4gICAgTVdHLkFsbG93KFwiTm8gcHJpdmF0ZSBhcHAgZGV0ZWN0ZWRcIilcbn0iLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICIvLyBHZXQgdGhlIGRldGVjdGVkIHByaXZhdGUgYXBwXG5VQ0UuUHJpdmF0ZUFwcCBwcml2YXRlQXBwID0gVUNFLkdldFByaXZhdGVBcHAoKVxuXG4vLyBDaGVjayBpZiB0aGUgZGV0ZWN0ZWQgYXBwIGlzIGEgcHJpdmF0ZSBhcHBcbklGIFVDRS5Jc1ByaXZhdGVBcHAocHJpdmF0ZUFwcCkgVEhFTiB7XG4gICAgLy8gUGVyZm9ybSBhY3Rpb25zIGlmIGl0IGlzIGEgcHJpdmF0ZSBhcHBcbiAgICAvLyBEZXRlY3RlZCBhIHByaXZhdGUgYXBwOiBcIiArIHByaXZhdGVBcHBcbiAgICBNV0cuQmxvY2soXCJBY2Nlc3MgdG8gcHJpdmF0ZSBhcHBzIGlzIG5vdCBhbGxvd2VkXCIpXG59IEVMU0Uge1xuICAgIC8vIEFsbG93IHRoZSBjb25uZWN0aW9uIGlmIGl0IGlzIG5vdCBhIHByaXZhdGUgYXBwXG4gICAgTVdHLkFsbG93KFwiTm8gcHJpdmF0ZSBhcHAgZGV0ZWN0ZWRcIilcbn0ifSwgeyJuYW1lIjogIlVDRS5MaWNlbnNlZFNlYXRzICgpIiwgInJldHVybl90eXBlIjogIk5VTUJFUiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIHRoZSBjb3VudCBvZiBsaWNlbnNlZCBzZWF0cyBhcyBhIG51bWJlci4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiTm9uZSIsICJkZXNjcmlwdGlvbiI6ICJSZXR1cm5zIHRoZSBOVU1CRVIgb2YgbGljZW5zZWQgc2VhdHMiLCAiZXhhbXBsZV9jb2RlIjogIk5VTUJFUiBsaWNlbnNlZFNlYXRzID0gVUNFLkxpY2Vuc2VkU2VhdHMoKVxuLy8gVGhlIG51bWJlciBvZiBsaWNlbnNlZCBzZWF0cyBpczogXCIgKyBsaWNlbnNlZFNlYXRzXG5cbklGIGxpY2Vuc2VkU2VhdHMgPCAxMCBUSEVOIHtcbiAgICAvLyBXYXJuaW5nOiBUaGUgbnVtYmVyIG9mIGxpY2Vuc2VkIHNlYXRzIGlzIGJlbG93IHRoZSB0aHJlc2hvbGQuXG59IiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiTlVNQkVSIGxpY2Vuc2VkU2VhdHMgPSBVQ0UuTGljZW5zZWRTZWF0cygpXG4vLyBUaGUgbnVtYmVyIG9mIGxpY2Vuc2VkIHNlYXRzIGlzOiBcIiArIGxpY2Vuc2VkU2VhdHNcblxuSUYgbGljZW5zZWRTZWF0cyA8IDEwIFRIRU4ge1xuICAgIC8vIFdhcm5pbmc6IFRoZSBudW1iZXIgb2YgbGljZW5zZWQgc2VhdHMgaXMgYmVsb3cgdGhlIHRocmVzaG9sZC5cbn0ifSwgeyJuYW1lIjogIlVDRS5OYW1lIChVQ0UuUHJpdmF0ZUFwcCkiLCAicmV0dXJuX3R5cGUiOiAiU1RSSU5HIiwgInJldHVybl9kZXNjIjogIlJldHVybnMgdGhlIG5hbWUgb2YgdGhlIHNwZWNpZmllZCBwcml2YXRlIGFwcCBhcyBhIHN0cmluZy4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiVUNFLlByaXZhdGVBcHA6IEFuIGluc3RhbmNlIG9mIHRoZSBwcml2YXRlIGFwcGxpY2F0aW9uLiIsICJkZXNjcmlwdGlvbiI6ICJSZXR1cm5zIHRoZSBuYW1lIG9mIHRoZSBwcml2YXRlIGFwcCIsICJleGFtcGxlX2NvZGUiOiAiLy8gQXNzdW1lIHdlIGhhdmUgYW4gaW5zdGFuY2Ugb2YgVUNFLlByaXZhdGVBcHBcblVDRS5Qcml2YXRlQXBwIHByaXZhdGVBcHBJbnN0YW5jZSA9IC4uLiAvLyBJbml0aWFsaXplIG9yIG9idGFpbiB0aGUgcHJpdmF0ZSBhcHAgaW5zdGFuY2VcblxuLy8gR2V0IHRoZSBuYW1lIG9mIHRoZSBwcml2YXRlIGFwcFxuU1RSSU5HIGFwcE5hbWUgPSBVQ0UuTmFtZShwcml2YXRlQXBwSW5zdGFuY2UpXG5cbi8vIFRoZSBuYW1lIG9mIHRoZSBwcml2YXRlIGFwcCBpczogXCIgKyBhcHBOYW1lIiwgInJldmlld2VkIjogIkZBTFNFIiwgIm5lZWRfaW5mbyI6ICJGQUxTRSIsICJjb2RlX2V4YW1wbGUiOiAiLy8gQXNzdW1lIHdlIGhhdmUgYW4gaW5zdGFuY2Ugb2YgVUNFLlByaXZhdGVBcHBcblVDRS5Qcml2YXRlQXBwIHByaXZhdGVBcHBJbnN0YW5jZSA9IC4uLiAvLyBJbml0aWFsaXplIG9yIG9idGFpbiB0aGUgcHJpdmF0ZSBhcHAgaW5zdGFuY2VcblxuLy8gR2V0IHRoZSBuYW1lIG9mIHRoZSBwcml2YXRlIGFwcFxuU1RSSU5HIGFwcE5hbWUgPSBVQ0UuTmFtZShwcml2YXRlQXBwSW5zdGFuY2UpXG5cbi8vIFRoZSBuYW1lIG9mIHRoZSBwcml2YXRlIGFwcCBpczogXCIgKyBhcHBOYW1lIn0sIHsibmFtZSI6ICJVQ0UuVXNlZENvbm5lY3RvciAoVUNFLlByaXZhdGVBcHApIiwgInJldHVybl90eXBlIjogIlNUUklORyIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIHRoZSBpbnN0YW5jZSBuYW1lIG9mIHRoZSBjb25uZWN0b3IgY3VycmVudGx5IGluIHVzZSB3aXRoaW4gdGhlIHNwZWNpZmllZCBwcml2YXRlIGFwcC4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiVUNFLlByaXZhdGVBcHA6IEFuIGluc3RhbmNlIG9mIHRoZSBwcml2YXRlIGFwcGxpY2F0aW9uLiIsICJkZXNjcmlwdGlvbiI6ICJSZXR1cm5zIHRoZSB1c2VkIGNvbm5lY3RvciBpbnN0YW5jZSIsICJleGFtcGxlX2NvZGUiOiAiLy8gQXNzdW1lIHdlIGhhdmUgYW4gaW5zdGFuY2Ugb2YgVUNFLlByaXZhdGVBcHBcblVDRS5Qcml2YXRlQXBwIG15UHJpdmF0ZUFwcCA9IEdldFByaXZhdGVBcHBJbnN0YW5jZSgpXG5cbi8vIFJldHJpZXZlIHRoZSBuYW1lIG9mIHRoZSB1c2VkIGNvbm5lY3RvclxuU1RSSU5HIGNvbm5lY3Rvck5hbWUgPSBVQ0UuVXNlZENvbm5lY3RvcihteVByaXZhdGVBcHApXG5cbi8vIFRoZSB1c2VkIGNvbm5lY3RvciBpczogY29ubmVjdG9yTmFtZVxuXG4vLyBEdW1teSBmdW5jdGlvbiB0byBzaW11bGF0ZSBnZXR0aW5nIGEgcHJpdmF0ZSBhcHAgaW5zdGFuY2VcblVDRS5Qcml2YXRlQXBwIEdldFByaXZhdGVBcHBJbnN0YW5jZSgpIHtcbiAgICAvLyBJbXBsZW1lbnRhdGlvbiB0byBnZXQgdGhlIHByaXZhdGUgYXBwIGluc3RhbmNlXG4gICAgLy8gVGhpcyBpcyBqdXN0IGEgcGxhY2Vob2xkZXIgZm9yIHRoZSBhY3R1YWwgbG9naWNcbiAgICBVQ0UuUHJpdmF0ZUFwcCBhcHBJbnN0YW5jZVxuICAgIC8vIC4uLiBwb3B1bGF0ZSBhcHBJbnN0YW5jZSAuLi5cbiAgICByZXR1cm4gYXBwSW5zdGFuY2Vcbn0iLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICIvLyBBc3N1bWUgd2UgaGF2ZSBhbiBpbnN0YW5jZSBvZiBVQ0UuUHJpdmF0ZUFwcFxuVUNFLlByaXZhdGVBcHAgbXlQcml2YXRlQXBwID0gR2V0UHJpdmF0ZUFwcEluc3RhbmNlKClcblxuLy8gUmV0cmlldmUgdGhlIG5hbWUgb2YgdGhlIHVzZWQgY29ubmVjdG9yXG5TVFJJTkcgY29ubmVjdG9yTmFtZSA9IFVDRS5Vc2VkQ29ubmVjdG9yKG15UHJpdmF0ZUFwcClcblxuLy8gVGhlIHVzZWQgY29ubmVjdG9yIGlzOiBjb25uZWN0b3JOYW1lXG5cbi8vIER1bW15IGZ1bmN0aW9uIHRvIHNpbXVsYXRlIGdldHRpbmcgYSBwcml2YXRlIGFwcCBpbnN0YW5jZVxuVUNFLlByaXZhdGVBcHAgR2V0UHJpdmF0ZUFwcEluc3RhbmNlKCkge1xuICAgIC8vIEltcGxlbWVudGF0aW9uIHRvIGdldCB0aGUgcHJpdmF0ZSBhcHAgaW5zdGFuY2VcbiAgICAvLyBUaGlzIGlzIGp1c3QgYSBwbGFjZWhvbGRlciBmb3IgdGhlIGFjdHVhbCBsb2dpY1xuICAgIFVDRS5Qcml2YXRlQXBwIGFwcEluc3RhbmNlXG4gICAgLy8gLi4uIHBvcHVsYXRlIGFwcEluc3RhbmNlIC4uLlxuICAgIHJldHVybiBhcHBJbnN0YW5jZVxufSJ9LCB7Im5hbWUiOiAiVXRpbHMuSXNJblByZVJ1biAoKSIsICJyZXR1cm5fdHlwZSI6ICJCT09MRUFOIiwgInJldHVybl9kZXNjIjogIlJldHVybnNgVFJVRWBpZiB0aGUgY3VycmVudCBzdGF0ZSBpcyBwb2xpY3kgcHJlcnVuLCBvdGhlcndpc2VgRkFMU0VgIiwgInBhcmFtZXRlcl9kZXNjIjogIk5vbmUiLCAiZGVzY3JpcHRpb24iOiAidGVzdCBpZiB3ZSBhcmUgaW4gcG9saWN5IHByZXJ1biIsICJleGFtcGxlX2NvZGUiOiAiSUYgVXRpbHMuSXNJblByZVJ1bigpIFRIRU4ge1xuICAgIC8vIFRoZSBjdXJyZW50IHN0YXRlIGlzIHBvbGljeSBwcmVydW4uXG59IEVMU0Uge1xuICAgIC8vIFRoZSBjdXJyZW50IHN0YXRlIGlzIG5vdCBwb2xpY3kgcHJlcnVuLlxufSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIklGIFV0aWxzLklzSW5QcmVSdW4oKSBUSEVOIHtcbiAgICAvLyBUaGUgY3VycmVudCBzdGF0ZSBpcyBwb2xpY3kgcHJlcnVuLlxufSBFTFNFIHtcbiAgICAvLyBUaGUgY3VycmVudCBzdGF0ZSBpcyBub3QgcG9saWN5IHByZXJ1bi5cbn0ifSwgeyJuYW1lIjogIlZlY3RvclV0aWxzLkVxdWFsc0lnbm9yZU9yZGVyIChWRUNUT1I8TWVkaWFUeXBlPiwgVkVDVE9SPE1lZGlhVHlwZT4pIiwgInJldHVybl90eXBlIjogIkJPT0xFQU4iLCAicmV0dXJuX2Rlc2MiOiAiUmV0dXJucyB0cnVlIGlmIGFsbCBlbGVtZW50cyBvZiBvbmUgdmVjdG9yIGFyZSBpbiB0aGUgb3RoZXIgYW5kIHZpY2UgdmVyc2EuIiwgInBhcmFtZXRlcl9kZXNjIjogIlR3byBWRUNUT1JzIHRvIGNvbXBhcmUuIiwgImRlc2NyaXB0aW9uIjogIlRSVUUgaWYgYWxsIGVsZW1lbnRzIG9mIG9uZSBWRUNUT1IgYXJlIGluIHRoZSBvdGhlciBhbmQgdmljZSB2ZXJzYSIsICJleGFtcGxlX2NvZGUiOiAiVkVDVE9SPE1lZGlhVHlwZT4gbWVkaWFUeXBlczEgPSBcImltYWdlL2pwZWdcIiwgXCJpbWFnZS9wbmdcIiwgXCJhcHBsaWNhdGlvbi9wZGZcIlxuVkVDVE9SPE1lZGlhVHlwZT4gbWVkaWFUeXBlczIgPSBcImFwcGxpY2F0aW9uL3BkZlwiLCBcImltYWdlL3BuZ1wiLCBcImltYWdlL2pwZWdcIlxuXG5CT09MRUFOIGFyZUVxdWFsID0gVmVjdG9yVXRpbHMuRXF1YWxzSWdub3JlT3JkZXIobWVkaWFUeXBlczEsIG1lZGlhVHlwZXMyKVxuXG5JRiBhcmVFcXVhbCBUSEVOIHtcbiAgICAvLyBUaGUgbWVkaWEgdHlwZXMgYXJlIGVxdWFsLlxufSBFTFNFIHtcbiAgICAvLyBUaGUgbWVkaWEgdHlwZXMgYXJlIG5vdCBlcXVhbC5cbn0iLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICJWRUNUT1I8TWVkaWFUeXBlPiBtZWRpYVR5cGVzMSA9IFwiaW1hZ2UvanBlZ1wiLCBcImltYWdlL3BuZ1wiLCBcImFwcGxpY2F0aW9uL3BkZlwiXG5WRUNUT1I8TWVkaWFUeXBlPiBtZWRpYVR5cGVzMiA9IFwiYXBwbGljYXRpb24vcGRmXCIsIFwiaW1hZ2UvcG5nXCIsIFwiaW1hZ2UvanBlZ1wiXG5cbkJPT0xFQU4gYXJlRXF1YWwgPSBWZWN0b3JVdGlscy5FcXVhbHNJZ25vcmVPcmRlcihtZWRpYVR5cGVzMSwgbWVkaWFUeXBlczIpXG5cbklGIGFyZUVxdWFsIFRIRU4ge1xuICAgIC8vIFRoZSBtZWRpYSB0eXBlcyBhcmUgZXF1YWwuXG59IEVMU0Uge1xuICAgIC8vIFRoZSBtZWRpYSB0eXBlcyBhcmUgbm90IGVxdWFsLlxufSJ9LCB7Im5hbWUiOiAiVmVjdG9yVXRpbHMuRXF1YWxzSWdub3JlT3JkZXIgKFZFQ1RPUjxNV0cuVXJsQ2F0ZWdvcnk+LCBWRUNUT1I8TVdHLlVybENhdGVnb3J5PikiLCAicmV0dXJuX3R5cGUiOiAiQk9PTEVBTiIsICJyZXR1cm5fZGVzYyI6ICJSZXR1cm5zIHRydWUgaWYgYWxsIGVsZW1lbnRzIG9mIG9uZSB2ZWN0b3IgYXJlIGluIHRoZSBvdGhlciBhbmQgdmljZSB2ZXJzYS4iLCAicGFyYW1ldGVyX2Rlc2MiOiAiVHdvIFZFQ1RPUnMgdG8gY29tcGFyZS4iLCAiZGVzY3JpcHRpb24iOiAiVFJVRSBpZiBhbGwgZWxlbWVudHMgb2Ygb25lIFZFQ1RPUiBhcmUgaW4gdGhlIG90aGVyIGFuZCB2aWNlIHZlcnNhIiwgImV4YW1wbGVfY29kZSI6ICJWRUNUT1I8TVdHLlVybENhdGVnb3J5PiBjYXRlZ29yeUxpc3QxID0gW1wiQ2F0ZWdvcnlMaXN0MVwiXVxuVkVDVE9SPE1XRy5VcmxDYXRlZ29yeT4gY2F0ZWdvcnlMaXN0MiA9IFtcIkNhdGVnb3J5TGlzdDJcIl1cblxuSUYgVmVjdG9yVXRpbHMuRXF1YWxzSWdub3JlT3JkZXIoY2F0ZWdvcnlMaXN0MSwgY2F0ZWdvcnlMaXN0MikgVEhFTiB7XG4gICAgLy8gVGhlIFVSTCBjYXRlZ29yaWVzIGluIGJvdGggbGlzdHMgYXJlIHRoZSBzYW1lLCBpZ25vcmluZyBvcmRlci5cbn0gRUxTRSB7XG4gICAgLy8gVGhlIFVSTCBjYXRlZ29yaWVzIGluIHRoZSBsaXN0cyBhcmUgZGlmZmVyZW50LlxufSIsICJyZXZpZXdlZCI6ICJGQUxTRSIsICJuZWVkX2luZm8iOiAiRkFMU0UiLCAiY29kZV9leGFtcGxlIjogIlZFQ1RPUjxNV0cuVXJsQ2F0ZWdvcnk+IGNhdGVnb3J5TGlzdDEgPSBbXCJDYXRlZ29yeUxpc3QxXCJdXG5WRUNUT1I8TVdHLlVybENhdGVnb3J5PiBjYXRlZ29yeUxpc3QyID0gW1wiQ2F0ZWdvcnlMaXN0MlwiXVxuXG5JRiBWZWN0b3JVdGlscy5FcXVhbHNJZ25vcmVPcmRlcihjYXRlZ29yeUxpc3QxLCBjYXRlZ29yeUxpc3QyKSBUSEVOIHtcbiAgICAvLyBUaGUgVVJMIGNhdGVnb3JpZXMgaW4gYm90aCBsaXN0cyBhcmUgdGhlIHNhbWUsIGlnbm9yaW5nIG9yZGVyLlxufSBFTFNFIHtcbiAgICAvLyBUaGUgVVJMIGNhdGVnb3JpZXMgaW4gdGhlIGxpc3RzIGFyZSBkaWZmZXJlbnQuXG59In0sIHsibmFtZSI6ICJWZWN0b3JVdGlscy5FcXVhbHNJZ25vcmVPcmRlciAoVkVDVE9SPE5ldC5JUD4sIFZFQ1RPUjxOZXQuSVA+KSIsICJyZXR1cm5fdHlwZSI6ICJCT09MRUFOIiwgInJldHVybl9kZXNjIjogIlJldHVybnMgdHJ1ZSBpZiBhbGwgZWxlbWVudHMgb2Ygb25lIHZlY3RvciBhcmUgaW4gdGhlIG90aGVyIGFuZCB2aWNlIHZlcnNhLiIsICJwYXJhbWV0ZXJfZGVzYyI6ICJUd28gVkVDVE9ScyB0byBjb21wYXJlLiIsICJkZXNjcmlwdGlvbiI6ICJUUlVFIGlmIGFsbCBlbGVtZW50cyBvZiBvbmUgVkVDVE9SIGFyZSBpbiB0aGUgb3RoZXIgYW5kIHZpY2UgdmVyc2EiLCAiZXhhbXBsZV9jb2RlIjogIlZFQ1RPUjxOZXQuSVA+IHZlY3RvcjEgPSBcIjE5Mi4xNjguMS4xXCIsIFwiMTkyLjE2OC4xLjJcIiwgXCIxOTIuMTY4LjEuM1wiXG5WRUNUT1I8TmV0LklQPiB2ZWN0b3IyID0gXCIxOTIuMTY4LjEuM1wiLCBcIjE5Mi4xNjguMS4xXCIsIFwiMTkyLjE2OC4xLjJcIlxuXG5CT09MRUFOIGFyZUVxdWFsID0gVmVjdG9yVXRpbHMuRXF1YWxzSWdub3JlT3JkZXIodmVjdG9yMSwgdmVjdG9yMilcblxuSUYgYXJlRXF1YWwgVEhFTiB7XG4gICAgLy8gVGhlIElQIHZlY3RvcnMgYXJlIGVxdWFsLCBpZ25vcmluZyBvcmRlci5cbn0gRUxTRSB7XG4gICAgLy8gVGhlIElQIHZlY3RvcnMgYXJlIG5vdCBlcXVhbC5cbn0iLCAicmV2aWV3ZWQiOiAiRkFMU0UiLCAibmVlZF9pbmZvIjogIkZBTFNFIiwgImNvZGVfZXhhbXBsZSI6ICJWRUNUT1I8TmV0LklQPiB2ZWN0b3IxID0gXCIxOTIuMTY4LjEuMVwiLCBcIjE5Mi4xNjguMS4yXCIsIFwiMTkyLjE2OC4xLjNcIlxuVkVDVE9SPE5ldC5JUD4gdmVjdG9yMiA9IFwiMTkyLjE2OC4xLjNcIiwgXCIxOTIuMTY4LjEuMVwiLCBcIjE5Mi4xNjguMS4yXCJcblxuQk9PTEVBTiBhcmVFcXVhbCA9IFZlY3RvclV0aWxzLkVxdWFsc0lnbm9yZU9yZGVyKHZlY3RvcjEsIHZlY3RvcjIpXG5cbklGIGFyZUVxdWFsIFRIRU4ge1xuICAgIC8vIFRoZSBJUCB2ZWN0b3JzIGFyZSBlcXVhbCwgaWdub3Jpbmcgb3JkZXIuXG59IEVMU0Uge1xuICAgIC8vIFRoZSBJUCB2ZWN0b3JzIGFyZSBub3QgZXF1YWwuXG59In1d