qms-angular 1.1.55 → 1.1.57
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/qms-angular.umd.js +32 -18
- package/bundles/qms-angular.umd.js.map +1 -1
- package/esm2015/lib/components/qms-nav-drawer/qms-nav-drawer.component.js +3 -3
- package/esm2015/lib/components/related/popup/related-popup.component.js +17 -7
- package/esm2015/lib/components/select-access-dialog/select-access-dialog.component.js +5 -2
- package/esm2015/lib/components/select-department-tree/select-department-tree.component.js +2 -2
- package/esm2015/lib/model/en.js +5 -3
- package/esm2015/lib/model/no.js +5 -3
- package/esm2015/lib/model/sv.js +5 -3
- package/esm2015/lib/qms-ckeditor-components/qms-ckeditor.component.js +1 -4
- package/fesm2015/qms-angular.js +35 -20
- package/fesm2015/qms-angular.js.map +1 -1
- package/lib/model/en.d.ts +2 -0
- package/lib/model/no.d.ts +2 -0
- package/lib/model/sv.d.ts +2 -0
- package/package.json +1 -1
- package/qms-angular.metadata.json +1 -1
package/esm2015/lib/model/sv.js
CHANGED
@@ -65,7 +65,7 @@ export const sv = {
|
|
65
65
|
"SEARCH_DEPARTMENT_UNIT": "Sökavdelning/enhet",
|
66
66
|
"FILTER": "Använd filter",
|
67
67
|
"TYPE": "Typ",
|
68
|
-
"SEARCH_WITH_NAME": "Sök
|
68
|
+
"SEARCH_WITH_NAME": "Sök namn och användarnamn",
|
69
69
|
"RESULT_SEARCH_FOR": "Sök resultat efter",
|
70
70
|
"TOOLTIP_INCLUDE_SUB_DEPARTMENT": "{0} – inkluderar {1} barn",
|
71
71
|
"TOOLTIP_INCLUDE_SUB_ITEM": "{0} – innehåller {1} underelement",
|
@@ -431,7 +431,9 @@ export const sv = {
|
|
431
431
|
"SELECT_TEMPLATE": "Välj mall",
|
432
432
|
"DELETE_TEMPLATE": "Ta bort mall",
|
433
433
|
"SAVE_AS_TEMPLATE": "Spara som mall",
|
434
|
-
"RESET_TO_LAST_SAVE": "Släng osparade ändringar"
|
434
|
+
"RESET_TO_LAST_SAVE": "Släng osparade ändringar",
|
435
|
+
"PLACE_NEXT_TO": "Placera bredvid",
|
436
|
+
"PLACE_UNDER": "Placera under",
|
435
437
|
}
|
436
438
|
};
|
437
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3YuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9xbXMtYW5ndWxhci9zcmMvbGliL21vZGVsL3N2LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLEVBQUUsR0FBRztJQUNoQixTQUFTLEVBQUUsVUFBVTtJQUNyQixjQUFjLEVBQUUsZ0JBQWdCO0lBQ2hDLGFBQWEsRUFBRSxnQkFBZ0I7SUFDL0IsY0FBYyxFQUFFLGVBQWU7SUFDL0IsYUFBYSxFQUFFLE9BQU87SUFDdEIsZUFBZSxFQUFFLFdBQVc7SUFDNUIsd0JBQXdCLEVBQUUsZ0NBQWdDO0lBQzFELFFBQVEsRUFBRSxPQUFPO0lBQ2pCLE1BQU0sRUFBRSxVQUFVO0lBQ2xCLFFBQVEsRUFBRSxRQUFRO0lBQ2xCLE1BQU0sRUFBRSxPQUFPO0lBQ2YsUUFBUSxFQUFFLFdBQVc7SUFDckIsZ0JBQWdCLEVBQUUsa0JBQWtCO0lBQ3BDLFdBQVcsRUFBRSxTQUFTO0lBQ3RCLHNCQUFzQixFQUFFLDBDQUEwQztJQUNsRSwyQkFBMkIsRUFBRSw2QkFBNkI7SUFDMUQsa0JBQWtCLEVBQUUsdUJBQXVCO0lBQzNDLFFBQVEsRUFBRSxNQUFNO0lBQ2hCLFdBQVcsRUFBRSxXQUFXO0lBQ3hCLFdBQVcsRUFBRSxVQUFVO0lBQ3ZCLFdBQVcsRUFBRSxZQUFZO0lBQ3pCLFdBQVcsRUFBRSxhQUFhO0lBQzFCLFlBQVksRUFBRSxXQUFXO0lBQ3pCLEtBQUssRUFBRSxXQUFXO0lBQ2xCLFFBQVEsRUFBRSxLQUFLO0lBQ2YsZUFBZSxFQUFFLHlEQUF5RDtJQUMxRSxlQUFlLEVBQUUsaUZBQWlGO0lBQ2xHLGlCQUFpQixFQUFFLGdCQUFnQjtJQUNuQyxVQUFVLEVBQUUsU0FBUztJQUNyQixZQUFZLEVBQUUsSUFBSTtJQUNsQixhQUFhLEVBQUUsSUFBSTtJQUNuQixjQUFjLEVBQUUsZ0JBQWdCO0lBQ2hDLFFBQVEsRUFBRSxNQUFNO0lBQ2hCLGdC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L0MsYUFBYSxFQUFFLGdCQUFnQjtRQUMvQixXQUFXLEVBQUUsVUFBVTtRQUN2QixPQUFPLEVBQUUsTUFBTTtRQUNmLE9BQU8sRUFBRSxPQUFPO1FBQ2hCLFlBQVksRUFBRSxVQUFVO1FBQ3hCLFFBQVEsRUFBRSxTQUFTO1FBQ25CLGFBQWEsRUFBRSxZQUFZO1FBQzNCLGNBQWMsRUFBRSxVQUFVO1FBQzFCLDBCQUEwQixFQUFFLHFCQUFxQjtRQUNqRCxLQUFLLEVBQUUsS0FBSztRQUNaLEtBQUssRUFBRSxRQUFRO1FBQ2YsUUFBUSxFQUFFLFNBQVM7UUFDbkIsYUFBYSxFQUFFLGFBQWE7UUFDNUIsU0FBUyxFQUFFLFNBQVM7UUFDcEIsT0FBTyxFQUFFLE9BQU87UUFDaEIsV0FBVyxFQUFFLFlBQVk7UUFDekIsVUFBVSxFQUFFLFVBQVU7UUFDdEIsUUFBUSxFQUFFLFFBQVE7UUFDbEIsTUFBTSxFQUFFLE9BQU87UUFDZixNQUFNLEVBQUUsVUFBVTtRQUNsQixhQUFhLEVBQUUsYUFBYTtRQUM1QixZQUFZLEVBQUUsMEJBQTBCO1FBQ3hDLFlBQVksRUFBRSwwQkFBMEI7UUFDeEMsT0FBTyxFQUFFLDZCQUE2QjtRQUN0QyxlQUFlLEVBQUUsbUJBQW1CO1FBQ3BDLGNBQWMsRUFBRSw2QkFBNkI7UUFDN0MsbUJBQW1CLEVBQUUsa0JBQWtCO1FBQ3ZDLGFBQWEsRUFBRSxxQkFBcUI7UUFDcEMsVUFBVSxFQUFFLFVBQVU7UUFDdEIsU0FBUyxFQUFFLFVBQVU7UUFDckIsa0JBQWtCLEVBQUUsc0JBQXNCO1FBQzFDLFdBQVcsRUFBRSxzQkFBc0I7UUFDbkMsWUFBWSxFQUFFLHFCQUFxQjtRQUNuQyxpQkFBaUIsRUFBRSxXQUFXO1FBQzlCLGlCQUFpQixFQUFFLGNBQWM7UUFDakMsa0JBQWtCLEVBQUUsZ0JBQWdCO1FBQ3BDLG9CQUFvQixFQUFFLDBCQUEwQjtLQUNqRDtDQUNGLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3Qgc3YgPSB7XG4gIFwiUkVTVUxUU1wiOiBcIlJlc3VsdGF0XCIsXG4gIFwiUk9XX1BFUl9QQUdFXCI6IFwiUmFkZXIgcGVyIHNpZGFcIixcbiAgXCJKVU1fVE9fUEFHRVwiOiBcIkhvcHBhIMOldCBzaWRhblwiLFxuICBcIk1ZX0NPTVBPTkVOVFwiOiBcIk1pbiBrb21wb25lbnRcIixcbiAgXCJTQVZFX0JVVFRPTlwiOiBcIlNwYXJhXCIsXG4gIFwiQ0FOQ0VMX0JVVFRPTlwiOiBcIkFubnVsbGVyYVwiLFxuICBcIkRFTEVURV9NRVNTQUdFX0NPTU1FTlRcIjogXCJEZXR0YSBtZWRkZWxhbmRlIGhhciByYWRlcmF0cy5cIixcbiAgXCJSRUdSRVRcIjogXCLDhW5ncmFcIixcbiAgXCJFRElUXCI6IFwiUmVkaWdlcmFcIixcbiAgXCJERUxFVEVcIjogXCJSYWRlcmFcIixcbiAgXCJTQVZFXCI6IFwiU3BhcmFcIixcbiAgXCJDQU5DRUxcIjogXCJBbm51bGxlcmFcIixcbiAgXCJFRElUX0ZJTEVfTkFNRVwiOiBcIlJlZGlnZXJhIGZpbG5hbW5cIixcbiAgXCJGSUxFX05BTUVcIjogXCJGaWxuYW1uXCIsXG4gIFwiVVBMT0FEX0xFQVZFX1dBUk5JTkdcIjogXCJGaWxlcm5hIGR1IGxhZGRhciB1cHAga2Fuc2tlIGludGUgc3BhcmFzXCIsXG4gIFwiU09NRV9GSUxFU19XRVJFX05PVF9BRERFRFwiOiBcIlZpc3NhIGZpbGVyIGxhZGVzIGludGUgdGlsbFwiLFxuICBcIllPVV9DQU5fT05MWV9BRERcIjogXCJEdSBrYW4gYmFyYSBsYWRkYSB1cHBcIixcbiAgXCJTRUxFQ1RcIjogXCJWw6RsalwiLFxuICBcIlBST0NFU1NFU1wiOiBcIlByb2Nlc3NlclwiLFxuICBcIkRPQ1VNRU5UU1wiOiBcIkRva3VtZW50XCIsXG4gIFwiREVWSUFUSU9OXCI6IFwiS2F0ZWdvcmllclwiLFxuICBcIkNIRUNLTElTVFwiOiBcIkNoZWNrbGlzdG9yXCIsXG4gIFwiQVNTRVNTTUVOVFwiOiBcIkFuYWx5c2VyYVwiLFxuICBcIkFERFwiOiBcIkzDpGdnIHRpbGxcIixcbiAgXCJTRUFSQ0hcIjogXCJTw7ZrXCIsXG4gIFwiUkVHVUxBUl9USVRMRVwiOiBcIlZpbGthIGjDpG5kZWxzZXIgdmlsbCBkdSBoYSBtZWQgaSByaXNrYW5hbHlzZW4vcmlza2VybmE/XCIsXG4gIFwiQ0FQVElPTl9USVRMRVwiOiBcIkkgb3JzYWtzYW5hbHlzZXIgbMOkZ2dzIGFsbGEgb3JzYWtlciByZWxhdGVyYWRlIHRpbGwgaMOkbmRlbHNlbiBhdXRvbWF0aXNrdCB0aWxsLlwiLFxuICBcIkNBVVNBTF9BTkFMWVpFU1wiOiBcIlZhbGRhIGFuYWx5c2VyXCIsXG4gIFwiRklOSVNIRURcIjogXCJGw6RyZGlnYVwiLFxuICBcIlBST0NFU1NfSURcIjogXCJJRFwiLFxuICBcIkRPQ1VNRU5UX0lEXCI6IFwiSURcIixcbiAgXCJQUk9DRVNTX0FSRUFcIjogXCJQcm9jZXNzb21yw6VkZW5cIixcbiAgXCJGT0xERVJcIjogXCJtYXBwXCIsXG4gIFwiREVWSUFUSU9OX1RZUEVcIjogXCJGYWxsIHR5cFwiLFxuICBcIkNIRUNLTElTVF9DQVRFR09SWVwiOiBcIkthdGVnb3JpZXJcIixcbiAgXCJFVkVOVFwiOiBcIkjDpG5kZWxzZVwiLFxuICBcIkFSRUFfT0ZfSU1QQUNUXCI6IFwiS29uc2VrdmVuc29tcsOlZGVcIixcbiAgXCJSRVNVTFRcIjogXCJSZXN1bHRhdFwiLFxuICBcIk5PVF9BQ0NFUFRFRFwiOiBcIkludGUgYWNjZXB0ZXJhZFwiLFxuICBcIk1VU1RfQkVfRVZBTFVBVEVEXCI6IFwiTcOlc3RlIMO2dmVydsOkZ2FzXCIsXG4gIFwiQUNDRVBURURcIjogXCJBY2NlcHRlcmFkXCIsXG4gIFwiQVJDSElWRURcIjogXCJBcmtpdmVyYWRcIixcbiAgXCJDQVVTRVwiOiBcIk9yc2FrXCIsXG4gIFwiUEFHRVwiOiBcIlNpZGFcIixcbiAgXCJPRlwiOiBcImF2XCIsXG4gIFwiUkVQT1JUX0ZPUlwiOiBcIlJhcHBvcnQgZsO2clwiLFxuICBcIlNFTEVDVEVEXCI6IFwiVmFsZ3RlXCIsXG4gIFwiQ0hPT1NFX0FMTFwiOiBcInbDpGxqIGFsbGFcIixcbiAgXCJCUkVBRENSVU1CXCI6IFwiU3Ryw7ZicsO2ZFwiLFxuICBcIk5BVklHQVRFX1RPXCI6IFwiTmF2aWdlcmEgdGlsbFwiLFxuICBcIkZJTEVfU0laRV9MSU1JVFwiOiBcIkZpbHN0b3JsZWtzZ3LDpG5zXCIsXG4gIFwiU1VQUE9SVEVEX0VYVEVOU0lPTlNcIjogXCJUaWxsw6RnZyBzb20gc3TDtmRzXCIsXG4gIFwiRklMRVNfQVJFX05PVF9TVVBQT1JURURcIjogXCJGaWwoZXIpIHN0w7ZkcyBpbnRlXCIsXG4gIFwiRklMRVNfRVhDRUVEX1VQTE9BRF9MSU1JVFwiOiBcIkZpbChlcikgw7Z2ZXJza3JpZGVyIGdyw6Ruc2VuIGbDtnIgdXBwbGFkZG5pbmdzc3Rvcmxla1wiLFxuICBcIlNFTEVDVF9BQ0NFU1NcIjogXCJWw6RsaiBhbnN2YXJpZ2EgcGVyc29uZXJcIixcbiAgXCJQRVJTT05cIjogXCJQZXJzb25cIixcbiAgXCJVU0VSX0dST1VQXCI6IFwiQW52w6RuZGFyZ3J1cHBcIixcbiAgXCJERVBBUlRNRU5UXCI6IFwiQXZkZWxuaW5nXCIsXG4gIFwiUk9MRVwiOiBcIlJvbGxcIixcbiAgXCJERVBBUlRNRU5UX1VOSVRcIjogXCJBdmRlbG5pbmcvZW5oZXRcIixcbiAgXCJJTkNMVURFX1NVQl9ERVBBUlRNRU5UU1wiOiBcIklua2x1ZGVyYSBhdXRvbWF0aXNrdCB1bmRlcmF2ZGVsbmluZ2FyXCIsXG4gIFwiTkFNRVwiOiBcIm5hbW5cIixcbiAgXCJTRUFSQ0hfVVNFUl9HUk9VUFwiOiBcIlPDtmsgYW52w6RuZGFyZ3J1cHBcIixcbiAgXCJTRUFSQ0hfREVQQVJUTUVOVF9VTklUXCI6IFwiU8O2a2F2ZGVsbmluZy9lbmhldFwiLFxuICBcIkZJTFRFUlwiOiBcIkFudsOkbmQgZmlsdGVyXCIsXG4gIFwiVFlQRVwiOiBcIlR5cFwiLFxuICBcIlNFQVJDSF9XSVRIX05BTUVcIjogXCJTw7ZrIGVmdGVyIGbDtnItIG9jaCBlZnRlcm5hbW5cIixcbiAgXCJSRVNVTFRfU0VBUkNIX0ZPUlwiOiBcIlPDtmsgcmVzdWx0YXQgZWZ0ZXJcIixcbiAgXCJUT09MVElQX0lOQ0xVREVfU1VCX0RFUEFSVE1FTlRcIjogXCJ7MH0g4oCTIGlua2x1ZGVyYXIgezF9IGJhcm5cIixcbiAgXCJUT09MVElQX0lOQ0xVREVfU1VCX0lURU1cIjogXCJ7MH0g4oCTIGlubmVow6VsbGVyIHsxfSB1bmRlcmVsZW1lbnRcIixcbiAgXCJOT19SRVNVTFRcIjogXCJJbmdldCByZXN1bHRhdFwiLFxuICBcIklURU1fTk9UX01BVENIX1RPX1RSRUVcIjogXCJEZW5uYSBhcnRpa2VsIG1hdGNoYXIgaW50ZSB0csOkZGV0XCIsXG4gIFwiRVJST1JcIjoge1xuICAgIFwiU0VMRUNUX0RBTkdFUlwiOiBcIkR1IG3DpXN0ZSB2w6RsamEgZW4gZWxsZXIgZmxlcmEgaMOkbmRlbHNlclwiXG4gIH0sXG4gIFwiTUVTU0FHRVwiOiB7XG4gICAgXCJQUk9DRVNTRVNfSU5cIjogXCJQcm9jZXNzZXIgaVwiLFxuICAgIFwiRE9DVU1FTlRTX0lOXCI6IFwiRG9rdW1lbnQgaVwiXG4gIH0sXG4gIFwiU0VMRUNUX0lOQ0xVREVfQ0hJTERcIjogXCJTZWxlY3QgaW5rbHVkZXJhciBiYXJuXCIsXG4gIFwiQkFDS19UT19UUkVFXCI6IFwiVGlsbGJha2EgdGlsbCBldHQgdHLDpGRcIixcbiAgXCJHT1RPX1NFQUNIX1JFU1VMVFwiOiBcIkfDpSB0aWxsIHPDtmtyZXN1bHRhdGV0XCIsXG4gIFwiUU1TQ0tFRElUT1JcIjoge1xuICAgIFwiSURcIjogXCJJRFwiLFxuICAgIFwiSU5GT1JNQVRJT05cIjogXCJJbmZvcm1hdGlvblwiLFxuICAgIFwiUkVNT1ZFX01BUFwiOiBcIlRhIGJvcnQga2FydGFuXCIsXG4gICAgXCJJTUFHRV9NQVBfUFJPUEVSVElFU1wiOiBcIkJpbGRrYXJ0YSBlZ2Vuc2thcGVyXCIsXG4gICAgXCJJTlNFUlRfVE9PTFRJUFwiOiBcIlPDpHR0IGkgZW4gdmVya3R5Z3NzcGV0c1wiLFxuICAgIFwiQ09OVEVOVFwiOiBcIklubmVow6VsbFwiLFxuICAgIFwiVEVNUExBVEVcIjogXCJNYWxsXCIsXG4gICAgXCJDT05URU5UX1RFTVBMQVRFXCI6IFwiSW5uZWjDpWxsc21hbGxcIixcbiAgICBcIkNSRUFURV9ORVdfVEVNUExBVEVcIjogXCJTa2FwYSBlbiBueSBtYWxsXCIsXG4gICAgXCJVUERBVEVfVEVNUExBVEVcIjogXCJVcHBkYXRlcmEgbWFsbFwiLFxuICAgIFwiVElUTEVcIjogXCJUaXRlbFwiLFxuICAgIFwiREVTQ1JJUFRJT05cIjogXCJCZXNrcml2bmluZ1wiLFxuICAgIFwiU0FWRVwiOiBcIlNwYXJhXCIsXG4gICAgXCJDSE9PU0VfVEVNUExBVEVcIjogXCJWw6RsaiBtYWxsZW4gZHUgdmlsbCDDtnBwbmEgaSBlZGl0b3JuXCIsXG4gICAgXCJSRVBMQUNFX0NPTlRFTlRcIjogXCJCeXQgdXQgZGV0IGZha3Rpc2thIGlubmVow6VsbGV0XCIsXG4gICAgXCJTQVZFRFwiOiBcIlNwYXJhZFwiLFxuICAgIFwiU0FWRV9GQUlMRURcIjogXCJTcGFybmluZ2VuIG1pc3NseWNrYWRlc1wiLFxuICAgIFwiREVMRVRFXCI6IFwiUmFkZXJhXCIsXG4gICAgXCJERUxFVEVEXCI6IFwicmFkZXJhZGVcIixcbiAgICBcIkRFTEVURV9GQUlMRURcIjogXCJEZXQgZ2ljayBpbnRlIGF0dCB0YSBib3J0XCIsXG4gICAgXCJERUxFVEVfVEVNUExBVEVcIjogXCJUYSBib3J0IG1hbGxcIixcbiAgICBcIkNIQU5HRV9URU1QTEFURVwiOiBcIsOEbmRyYSBtYWxsXCIsXG4gICAgXCJDQU5DRUxcIjogXCJBbm51bGxlcmFcIixcbiAgICBcIkxJTktcIjogXCJJbmZvZ2EvcmVkaWdlcmEgbMOkbmtcIixcbiAgICBcIkxJTktfVFlQRVwiOiBcIktvcHBsaW5nc3R5cFwiLFxuICAgIFwiWk9PTVwiOiBcIlpvb21cIixcbiAgICBcIkxJTktfVVJMXCI6IFwiVVJMXCIsXG4gICAgXCJMSU5LX0FOQ0hPUl9JTl9URVhUXCI6IFwiTMOkbmsgdGlsbCBhbmthcmUgaSB0ZXh0ZW5cIixcbiAgICBcIkxJTktfRU1BSUxcIjogXCJFLXBvc3RcIixcbiAgICBcIkxJTktfQU5DSE9SX0RPQ1VNRU5UXCI6IFwiRsO2cmFua3JhIGkgZXR0IGFubmF0IGRva3VtZW50XCIsXG4gICAgXCJUQVJHRVRcIjogXCJNw6VsXCIsXG4gICAgXCJUQVJUR0VUX05FV1wiOiBcIk55dHQgZsO2bnN0ZXIgKF9ibGFuaylcIixcbiAgICBcIlRBUkdFVF9UT1BNT1NUXCI6IFwiRGV0IMO2dnJlIGbDtm5zdHJldCAoX3RvcClcIixcbiAgICBcIlRBUkdFVF9TQU1FXCI6IFwiU2FtbWEgZsO2bnN0ZXIgKHNqw6RsdilcIixcbiAgICBcIlRBUkdFVF9QQVJFTlRcIjogXCLDlnZlcm9yZG5hdCBmw7Zuc3RlciAoX2bDtnLDpGxkZXIpXCIsXG4gICAgXCJQUk9UT0NPTFwiOiBcIlByb3Rva29sbFwiLFxuICAgIFwiUFJPVE9DT0xfSFRUUFwiOiBcImh0dHA6Ly9cIixcbiAgICBcIlBST1RPQ09MX0hUVFBTXCI6IFwiaHR0cHM6Ly9cIixcbiAgICBcIlBST1RPQ09MX0ZUUFwiOiBcImZ0cDovL1wiLFxuICAgIFwiUFJPVE9DT0xfTkVXXCI6IFwibnloZXRlcjovL1wiLFxuICAgIFwiUFJPVE9DT0xfT1RIRVJcIjogXCI8YW5uYXQ+XCIsXG4gICAgXCJBRFZJU09SWV9USVRMRVwiOiBcIlLDpWRnaXZhbmRlIHRpdGVsXCIsXG4gICAgXCJIQU5EQk9PS1wiOiBcImUtaGFuZGJva1wiLFxuICAgIFwiQVRUQUNITUVOVFwiOiBcIlZlZGxlZ2dcIixcbiAgICBcIk9LXCI6IFwiT0tcIixcbiAgICBcIlVSTF9IRUFERVJcIjogXCJVUkwtaW5mb3JtYXRpb25cIixcbiAgICBcIkFOQ0hPUl9URVhUX0hFQURFUlwiOiBcIlbDpGxqIGV0IGFua2VyXCIsXG4gICAgXCJBTkNIT1JfQllfTkFNRVwiOiBcIkFua2VyIHZlZCBuYW1uXCIsXG4gICAgXCJFTUFJTF9IRUFERVJcIjogXCJFLXBvc3RpbmZvcm1hdGlvblwiLFxuICAgIFwiRU1BSUxfQUREUkVTU1wiOiBcIkFkcmVzc1wiLFxuICAgIFwiRU1BSUxfU1VCSkVDVFwiOiBcIkVtbmVcIixcbiAgICBcIkVNQUlMX0JPRFlcIjogXCJLcm9wcFwiLFxuICAgIFwiQU5DSE9SX0FUVEFDSE1FTlRcIjogXCJWZWRsZWdnXCIsXG4gICAgXCJBTkNIT1JfUkVMQVRFRF9ET0NVTUVOVFwiOiBcIlJlbGF0ZXJ0ZSBkb2t1bWVudFwiLFxuICAgIFwiQUREX0RPQ1VNRU5UX1BST0NFU1NcIjogXCJMw6RnZyB0aWxsIGRva3VtZW50IC8gcHJvY2Vzc1wiLFxuICAgIFwiQUREX0RPQ1VNRU5UXCI6IFwiTMOkZ2cgdGlsbCBkb2t1bWVudFwiLFxuICAgIFwiQUREXCI6IFwiTMOkZ2cgdGlsbFwiLFxuICAgIFwiUFJPU0VTU0VSXCI6IFwiUHJvY2Vzc2VyXCIsXG4gICAgXCJET0NVTUVOVFNcIjogXCJEb2t1bWVudFwiLFxuICAgIFwiVVBEQVRFXCI6IFwiVXBwZGF0ZXJpbmdcIixcbiAgICBcIkRPQ1VNRU5UXCI6IFwiRG9rdW1lbnRcIixcbiAgICBcIkNPTkZJUk1cIjogXCJCZWtyw6RmdGFcIixcbiAgICBcIlNFQVJDSFwiOiBcIlPDtmtcIixcbiAgICBcIklNQUdFX01PREVfUE9JTlRFUlwiOiBcIlBla2FyXCIsXG4gICAgXCJJTUFHRV9NT0RFX1JFQ1RBTkdMRVwiOiBcIlJla3RhbmdlbFwiLFxuICAgIFwiSU1BR0VfTU9ERV9DSVJDTEVcIjogXCJDaXJrZWxcIixcbiAgICBcIklNQUdFX01PREVfUE9MWUdPTlwiOiBcIlBvbHlnb25cIixcbiAgICBcIklNQUdFX01PREVfUkVNT1ZFXCI6IFwiVGEgYm9ydFwiLFxuICAgIFwiUE9MWUdPTl9EUkFXXCI6IFwiQW52w6RuZCBTS0lGVCArIGtsaWNrYSBmw7ZyIGRlbiBzaXN0YSBrb250cm9sbHB1bmt0ZW5cIixcbiAgICBcIlJFQ1RBTkdMRV9EUkFXXCI6IFwiSMOlbGwgbmVkIFNISUZUIGbDtnIga3ZhZHJhdGzDpGdlXCIsXG4gICAgXCJTUVVBUkVfRFJBV1wiOiBcIlNsw6RwcCBTSElGVCBmw7ZyIHJla3RhbmdlbGzDpGdlXCIsXG4gICAgXCJJTlZBTElEX1VSTFwiOiBcIk9naWx0aWcgVVJMXCIsXG4gICAgXCJSRVFVSVJFRF9VUkxcIjogXCJVUkwga3LDpHZzXCIsXG4gICAgXCJDTE9TRVwiOiBcIlN0w6RuZ2FcIixcbiAgICBcIkRPQ1VNRU5UX1BST0NFU1NcIjogXCJEb2t1bWVudCAvIFByb2Nlc3NcIixcbiAgICBcIlVQTE9BRF9GSUxFX05PVF9WQUxJRF9GT1JNQVRcIjogXCJEZW4gdXBwbGFkZGFkZSBmaWxlbiDDpHIgb2dpbHRpZ3QgZm9ybWF0LiBGaWxmb3JtYXQgc29tIHN0w7ZkczogezB9XCIsXG4gICAgXCJVUExPQURfRklMRV9PVkVSU0laRVwiOiBcIkZpbGVuIHNvbSBsYWRkYXMgdXBwIMOkciDDtnZlciBzdG9ybGVrc2dyw6Ruc2VuLiBTdG9ybGVrc2dyw6Ruc2VuIMOkciB7MH1NQlwiLFxuICAgIFwiVVBMT0FEX0ZJTEVfRkFJTEVEXCI6IFwiRGV0IGdpY2sgaW50ZSBhdHQgbGFkZGEgdXBwIGZpbGVuLlwiLFxuICAgIFwiQVNTSVNUSVZFX1RFWFRcIjogXCJIasOkbHBzYW0gdGV4dFwiLFxuICAgIFwiV09SRFNcIjogXCJPcmRcIixcbiAgICBcIkNIQVJBQ1RFUlNcIjogXCJUZWNrZW5cIixcbiAgICBcIlNFTEVDVF9WSURFT19GUk9NX0FSQ0hJVkVcIjogXCJWw6RsaiB2aWRlbyBmcsOlbiBhcmtpdmV0XCIsXG4gICAgXCJTRUxFQ1RfVklERU9fSU1BR0VcIjogXCJWw6RsaiB2aWRlb2JpbGRcIixcbiAgICBcIkRPQ1VNRU5UX0hFQURFUlwiOiBcIkRva3VtZW50aW5mb3JtYXRpb25cIixcbiAgICBcIkFERF9JTUFHRVwiOiBcIkzDpGdnIHRpbGwgZXR0IGZvdG9cIixcbiAgICBcIklNQUdFX0lORk9cIjogXCJCaWxkaW5mb3JtYXRpb25cIixcbiAgICBcIkFERF9BX0ZJTEVcIjogXCJMw6RnZyB0aWxsIGVuIGZpbFwiLFxuICAgIFwiRVhURU5TSU9OX0lTX05PVF9TVVBQT1JURURcIjogXCJUaWxsw6RnZ2V0IHN0w7ZkcyBpbnRlLlwiLFxuICAgIFwiQUNDRVBUX01QNF9PTkxZXCI6IFwiU3TDtmRlciBpbnRlIGRlbm5hIHZpZGVvdHlwLiBBY2NlcHRlcmEgZW5kYXN0IE1QNC5cIixcbiAgICBcIk1BWElNSVpFXCI6IFwiTWF4aW1lcmFcIixcbiAgICBcIk1JTklNSVpFXCI6IFwiTWluaW1lcmFcIixcbiAgICBcIkhFQURJTkdcIjogXCJTdHlja2Vmb3JtYXRcIixcbiAgICBcIkZPTlRfU0laRVwiOiBcIlN0b3JsZWtcIixcbiAgICBcIkZPTlRfRkFNSUxZXCI6IFwiRm9udC1mYW1pbGpcIixcbiAgICBcIkZPTlRfQ09MT1JcIjogXCJUZXh0IGbDpHJnXCIsXG4gICAgXCJGT05UX0JBQ0tHUk9VTkRfQ09MT1JcIjogXCJCYWtncnVuZHNmw6RyZ1wiLFxuICAgIFwiQk9MRFwiOiBcIkZldFwiLFxuICAgIFwiSVRBTElDXCI6IFwiS3Vyc2l2XCIsXG4gICAgXCJVTkRFUkxJTkVcIjogXCJVbmRlcnN0cnlrbmluZ1wiLFxuICAgIFwiU1RSSUtFVEhST1VHSFwiOiBcIsOWdmVyc3RyeWtuaW5nXCIsXG4gICAgXCJIT1JJWk9OVEFMX0xJTkVcIjogXCJJbmZvZ2EgaG9yaXNvbnRlbGwgbGluamVcIixcbiAgICBcIlBBR0VfQlJFQUtcIjogXCJJbmZvZ2Egc2lkYnJ5dG5pbmcgZsO2ciB1dHNrcmlmdFwiLFxuICAgIFwiVEVYVF9BTElHTk1FTlRcIjogXCJUZXh0cGxhY2VyaW5nXCIsXG4gICAgXCJCVUxMRVRFRF9MSVNUXCI6IFwiTMOkZ2cgdGlsbC90YSBib3J0IHB1bmt0bGlzdGFcIixcbiAgICBcIk5VTUJFUkVEX0xJU1RcIjogXCJMw6RnZyB0aWxsL3RhIGJvcnQgbnVtcmVyYWQgbGlzdGFcIixcbiAgICBcIkRFQ1JFQVNFX0lOREVOVFwiOiBcIk1pbnNrYSBpbmRyYWdlblwiLFxuICAgIFwiSU5DUkVBU0VfSU5ERU5UXCI6IFwiw5ZrYSBpbmRyYWdldFwiLFxuICAgIFwiU1VCU0NSSVBUXCI6IFwiTmVkc8Okbmt0IHNrcmlmdFwiLFxuICAgIFwiU1VQRVJTQ1JJUFRcIjogXCJVcHBow7ZqZCBza3JpZnRcIixcbiAgICBcIlVORE9cIjogXCLDhW5ncmFcIixcbiAgICBcIlJFRE9cIjogXCJHw7ZyIGlnZW5cIixcbiAgICBcIlNQRUNJQUxfQ0hBUkFDVEVSU1wiOiBcIkluZm9nYSBzeW1ib2xcIixcbiAgICBcIkJMT0NLUVVPVEVcIjogXCJCbG9jayBjaXRhdFwiLFxuICAgIFwiSU5TRVJUX0lNQUdFXCI6IFwiQmxpZFwiLFxuICAgIFwiSU5TRVJUX01FRElBXCI6IFwiU8OkdHQgaSBtZWRpYVwiLFxuICAgIFwiQlJPV1NFX1ZJREVPXCI6IFwiVmlkZW9cIixcbiAgICBcIklOU0VSVF9UQUJMRVwiOiBcIlRhYmVsbFwiLFxuICAgIFwiQU5DSE9SXCI6IFwiSW5mb2dhL3JlZGlnZXJhIGFua2FyZVwiLFxuICAgIFwiVE9PTFRJUFwiOiBcIkluZm9nYSBmw7Zya2xhcmluZ1wiLFxuICAgIFwiVElNRVNUQU1QXCI6IFwiSW5zZXJ0IHRpbWVzdGFtcFwiLFxuICAgIFwiQUREX1RFTVBMQVRFXCI6IFwiU2thcGEvw4RuZHJhIGlubmVow6VsbHNtYWxsYXJcIixcbiAgICBcIlRFTVBMQVRFU1wiOiBcIklubmVow6VsbHNtYWxsYXJcIixcbiAgICBcIlJFTU9WRV9GT1JNQVRcIjogXCJUYSBib3J0IGZvcm1hdGVyaW5nXCIsXG4gICAgXCJGSU5EX0FORF9SRVBMQUNFXCI6IFwiU8O2ayBvY2ggZXJzw6R0dFwiLFxuICAgIFwiRkxPV0NIQVJUXCI6IFwiTMOkZ2cgdGlsbCBmbMO2ZGVzc2NoZW1hXCIsXG4gICAgXCJCUE1OXCI6IFwiQWZmw6Ryc3Byb2Nlc3Ntb2RlbGwgb2NoIG5vdGF0aW9uXCIsXG4gICAgXCJBQk9VVF9DS0VESVRPUlwiOiBcIk9tIENLRWRpdG9yXCIsXG4gICAgXCJDUkVBVEVfVEFCTEVfT0ZfQ09OVEVOVFNcIjogXCJTa2FwYSBpbm5laMOlbGxzZsO2cnRlY2tuaW5nXCIsXG4gICAgXCJTT1VSQ0VcIjogXCJLw6RsbGFcIixcbiAgICBcIlRPR0dMRV9UT09MQkFSXCI6IFwiQnl0IHZlcmt0eWdzZsOkbHRcIixcbiAgfSxcbiAgXCJBQk9VVFwiOiB7XG4gICAgXCJBQk9VVF9DS0VESVRPUlwiOiBcIk9tIENLRWRpdG9yXCIsXG4gICAgXCJDS0VESVRPUjVfVkVSU0lPTlwiOiBcIkNLRWRpdG9yIDUgdmVyc2lvblwiLFxuICAgIFwiRk9SX0xJQ0VOU0lOR19JTkZPUk1BVElPTl9QTEVBU0VfVklTSVRfT1VSX1dFQlNJVEVcIjogXCJGw7ZyIGxpY2Vuc2luZm9ybWF0aW9uLCBiZXPDtmsgdsOlciB3ZWJicGxhdHNcIixcbiAgICBcIkFMTF9SSUdIVFNfUkVTRVJWRURcIjogXCJBbGxhIHLDpHR0aWdoZXRlciBmw7ZyYmVow6VsbG5hXCIsXG4gICAgXCJDSEVDS1wiOiBcIlNlXCIsXG4gICAgXCJGT1JfSEVMUFwiOiBcImbDtnIgaGrDpGxwXCIsXG4gICAgXCJDS0VESVRPUl9VU0VSU19HVUlERVwiOiBcImFudsOkbmRhcm1hbnVhbGVuIGbDtnIgQ0tFZGl0b3JcIixcbiAgICBcIkNPUFlSSUdIVFwiOiBcIlVwcGhvdnNyw6R0dCDCqVwiXG4gIH0sXG4gIFwiQlBNTlwiOiB7XG4gICAgXCJERUZBVUxUXCI6IFwiU3RhbmRhcmRcIixcbiAgICBcIlRZUEVcIjogXCJUeXBcIixcbiAgICBcIk5BTUVcIjogXCJOYW1uXCIsXG4gICAgXCJFWENMVVNJVkVcIjogXCJFeGtsdXNpdlwiLFxuICAgIFwiSU5DTFVTSVZFXCI6IFwiSW5rbHVzaXZlXCIsXG4gICAgXCJQQVJBTExFTFwiOiBcIlBhcmFsbGVsbFwiLFxuICAgIFwiQVBQRUFSQU5DRVwiOiBcIlV0c2VlbmRlXCIsXG4gICAgXCJCT0RZX0NPTE9SXCI6IFwiRsOkcmdcIixcbiAgICBcIlRFWFRfQUxJR05NRU5UXCI6IFwiVGV4dHBsYWNlcmluZ1wiLFxuICAgIFwiTEVGVFwiOiBcIlbDpG5zdGVyXCIsXG4gICAgXCJDRU5URVJcIjogXCJNaXR0anVzdGVyYXJlXCIsXG4gICAgXCJSSUdIVFwiOiBcIkjDtmdlclwiLFxuICAgIFwiRk9OVF9GQU1JTFlcIjogXCJGb250LWZhbWlsalwiLFxuICAgIFwiRk9OVF9TSVpFXCI6IFwiRm9udHN0b3JsZWtcIixcbiAgICBcIkNPTlRFTlRcIjogXCJJbm5laMOlbGxcIixcbiAgICBcIklDT05cIjogXCJJa29uXCIsXG4gICAgXCJOT05FXCI6IFwiSW5nZW5cIixcbiAgICBcIk1FU1NBR0VcIjogXCJNZWRkZWxhbmRlXCIsXG4gICAgXCJVU0VSXCI6IFwiQW52w6RuZGFyZVwiLFxuICAgIFwiVEFTS1wiOiBcIlVwcGdpZnRcIixcbiAgICBcIlRSQU5TQUNUSU9OXCI6IFwiVHJhbnNha3Rpb25cIixcbiAgICBcIkVWRU5UX1NVQl9QUk9DRVNTXCI6IFwiZXZlbnQtc3ViLXByb2Nlc3NcIixcbiAgICBcIkNBTExfQUNUSVZJVFlcIjogXCJzYW10YWxzYWt0aXZpdGV0XCIsXG4gICAgXCJTVUJfUFJPQ0VTU1wiOiBcIlN1Yi1wcm9jZXNzXCIsXG4gICAgXCJTVEFSVFwiOiBcIlN0YXJ0XCIsXG4gICAgXCJFTkRcIjogXCJTbHV0XCIsXG4gICAgXCJJTlRFUk1FRElBVEVcIjogXCJNZWxsYW5saWdnYW5kZVwiLFxuICAgIFwiQ0FOQ0VMXCI6IFwiQW5udWxsZXJhXCIsXG4gICAgXCJDQU5DRUxfT1VMSU5FRFwiOiBcIkF2YnJ5dCBza2lzc2VyYWRcIixcbiAgICBcIkNBTkNFTF9GSUxMRURcIjogXCJBdmJyeXQgZnlsbGRcIixcbiAgICBcIkNPTVBFTlNBVElPTl9PVUxJTkVEXCI6IFwiRXJzw6R0dG5pbmcgc2tpc3NlcmFkXCIsXG4gICAgXCJDT01QRU5TQVRJT05fRklMTEVEXCI6IFwiRXJzw6R0dG5pbmdlbiBmeWxsZFwiLFxuICAgIFwiQ09ORElUSU9OQUxcIjogXCJWaWxsa29ybGlnXCIsXG4gICAgXCJFUlJPUl9PVUxJTkVEXCI6IFwiRmVsIGFuZ2l2ZXRcIixcbiAgICBcIkVSUk9SX0ZJTExFRFwiOiBcIkZlbGV0IGZ5bGx0XCIsXG4gICAgXCJFU0NBTEFUSU9OX09VTElORURcIjogXCJFc2thbGVyaW5nIGZvZHJhZFwiLFxuICAgIFwiRVNDQUxBVElPTl9GSUxMRURcIjogXCJFc2thbGVyaW5nIGZ5bGxkXCIsXG4gICAgXCJMSU5LX09VTElORURcIjogXCJMw6Rua2tvbnR1clwiLFxuICAgIFwiTElOS19GSUxMRURcIjogXCJMw6Rua2VuIGZ5bGxkXCIsXG4gICAgXCJNRVNTQUdFX09VTElORURcIjogXCJNZWRkZWxhbmRldCBza2lzc2VyYXRcIixcbiAgICBcIk1FU1NBR0VfRklMTEVEXCI6IFwiTWVkZGVsYW5kZXQgZnlsbHRcIixcbiAgICBcIk1VTFRJUExFX09VTElORURcIjogXCJGbGVyYSBza2lzc2VyYWRlXCIsXG4gICAgXCJNVUxUSVBMRV9GSUxMRURcIjogXCJGbGVyYSBmeWxsZGFcIixcbiAgICBcIlBBUkFMTEVMX01VTFRJUExFXCI6IFwiUGFyYWxsZWxsIG11bHRpcGVsXCIsXG4gICAgXCJURVJNSU5BVElPTl9PVUxJTkVEXCI6IFwiVXBwc8OkZ25pbmcgc2tpc3NlcmFkXCIsXG4gICAgXCJURVJNSU5BVElPTl9GSUxMRURcIjogXCJVcHBzw6RnbmluZyBmeWxsZFwiLFxuICAgIFwiVElNRVJcIjogXCJUaW1lclwiLFxuICAgIFwiU0lHTkFMX09VTElORURcIjogXCJTaWduYWxlbiBza2lzc2VyYWRcIixcbiAgICBcIlNJR05BTF9GSUxMRURcIjogXCJTaWduYWxlbiBmeWxsZFwiLFxuICAgIFwiUEFSQUxMRUxfT1VMSU5FRFwiOiBcIlBhcmFsbGVsbHQga29udHVyXCIsXG4gICAgXCJQQVJBTExFTF9GSUxMRURcIjogXCJQYXJhbGxlbGx0IGZ5bGxkXCIsXG4gICAgXCJTVUJfVFlQRVwiOiBcIlVuZGVydHlwXCIsXG4gICAgXCJUUkFOU1BBUkVOQ1lcIjogXCJHZW5vbXNraW5saWdoZXRcIixcbiAgICBcIkxBQkVMXCI6IFwiTcOkcmthXCIsXG4gICAgXCJURVhUXCI6IFwiVGV4dFwiLFxuICAgIFwiUE9TSVRJT05cIjogXCJQbGFjZXJpbmdcIixcbiAgICBcIkxBQkVMU1wiOiBcIkV0aWtldHRlclwiLFxuICAgIFwiTk9STUFMXCI6IFwiVmFubGlndFwiLFxuICAgIFwiQVNTT0NJQVRJT05cIjogXCJBc3NvY2lhdGlvblwiLFxuICAgIFwiQ09OVkVSU0FUSU9OXCI6IFwiS29udmVyc2F0aW9uXCIsXG4gICAgXCJQQVJUSUNQQU5UU1wiOiBcIkRlbHRhZ2FyZVwiLFxuICAgIFwiSU5JVElBVElOR19QQVJUSUNJUEFOVFwiOiBcIkluaXRpZXJhbmRlIGRlbHRhZ2FyZVwiLFxuICAgIFwiUFJJTUFSWV9DT0xPUlwiOiBcIkh1dnVkZsOkcmdcIixcbiAgICBcIlNFQ09OREFSWV9DT0xPUlwiOiBcIlNla3VuZMOkciBmw6RyZ1wiLFxuICAgIFwiQ0FMTC1DT05WRVJTQVRJT05cIjogXCJSaW5nIHNhbXRhbGV0XCIsXG4gICAgXCJBRERfTEFORVNcIjogXCJMw6RnZyB0aWxsIGvDtnJmw6RsdFwiLFxuICAgIFwiUEVSQ0VOVEFHRVwiOiBcIlByb2NlbnRzYXRzXCIsXG4gICAgXCJBRERfU1VCTEFORVNcIjogXCJMw6RnZyB0aWxsIGvDtnJmw6RsdFwiLFxuICAgIFwiSEVBREVSX0NPTE9SXCI6IFwiUnVicmlrZsOkcmdcIixcbiAgICBcIkxBTkVfQk9EWV9DT0xPUlwiOiBcIkxhbmUgQm9keSBDb2xvclwiLFxuICAgIFwiTEFORV9IRUFERVJfQ09MT1JcIjogXCJGaWxodXZ1ZGV0cyBmw6RyZ1wiLFxuICAgIFwiT1BFTl9BX1BSSU5UX0RJQUxPR1wiOiBcIsOWcHBuYSBlbiB1dHNrcmlmdHNkaWFsb2dydXRhXCIsXG4gICAgXCJPUEVOX0FTX0pTT05cIjogXCLDlnBwbmEgc29tIEpTT05cIixcbiAgICBcIlpPT01fSU5cIjogXCJab29tYSBpblwiLFxuICAgIFwiWk9PTV9PVVRcIjogXCJab29tYSB1dFwiLFxuICAgIFwiWk9PTV9UT19GSVRcIjogXCJab29tYSBmw7ZyIGF0dCBwYXNzYVwiLFxuICAgIFwiU0VORF9UT19GUk9OVFwiOiBcIlNraWNrYSB0aWxsIGZyb250ZW5cIixcbiAgICBcIkJSSU5HX09CSkVDVF9UT19GUk9OVFwiOiBcIkZseXR0YSBvYmpla3RldCBmcmFtw6V0IHRpbGwgZnJvbnRlblwiLFxuICAgIFwiU0VORF9UT19CQUNLXCI6IFwiU2tpY2thIGkgcnlnZ2VuXCIsXG4gICAgXCJCUklOR19PQkpFQ1RfVE9fQkFDS1wiOiBcIkZseXR0YSBvYmpla3RldCBiYWvDpXRcIixcbiAgICBcIkNMRUFSX1BBUEVSXCI6IFwiVMO2bW1hXCIsXG4gICAgXCJVTkRPXCI6IFwiw4VuZ3JhXCIsXG4gICAgXCJSRURPXCI6IFwiVXBwcmVwYVwiLFxuICAgIFwiU0VMRUNUX1RFTVBMQVRFXCI6IFwiVsOkbGogbWFsbFwiLFxuICAgIFwiREVMRVRFX1RFTVBMQVRFXCI6IFwiVGEgYm9ydCBtYWxsXCIsXG4gICAgXCJTQVZFX0FTX1RFTVBMQVRFXCI6IFwiU3BhcmEgc29tIG1hbGxcIixcbiAgICBcIlJFU0VUX1RPX0xBU1RfU0FWRVwiOiBcIlNsw6RuZyBvc3BhcmFkZSDDpG5kcmluZ2FyXCIsXG4gICAgXCJHUklEX1NJWkVcIjogXCJSdXRuw6R0c3N0b3JsZWtcIixcbiAgICBcIkNIQU5HRV9HUklEX1NJWkVcIjogXCLDpG5kcmEgcnV0c3Rvcmxla1wiLFxuICAgIFwiU05BUExJTkVTXCI6IFwiSGrDpGxwbGluamVyOlwiLFxuICAgIFwiRU5BQkxFX0RJU0FCTEVfU05BUExJTkVTXCI6IFwiQWt0aXZlcmEvaW5ha3RpdmVyYSBoasOkbHBsaW5qZXJcIixcbiAgICBcIkxJTkVfQ09MT1JcIjogXCJMaW5qZWbDpHJnXCIsXG4gICAgXCJCT0RZX0xJTkVfQ09MT1JcIjogXCJLcm9wcHNsaW5qZWbDpHJnXCIsXG4gICAgXCJUWVBFX0NPTE9SXCI6IFwiVHlwIEbDpHJnXCIsXG4gICAgXCJNQVJLRVJcIjogXCJNYXJrw7ZyZXJcIixcbiAgICBcIk1BUktFUl9DT0xPUlwiOiBcIk1hcmvDtnJlciBGw6RyZ1wiLFxuICAgIFwiVE9QX0NPTE9SXCI6IFwiVG9wcGbDpHJnXCIsXG4gICAgXCJUT1BfTElORV9DT0xPUlwiOiBcIlRvcCBMaW5lIEbDpHJnXCIsXG4gICAgXCJDT0xMRUNUSU9OXCI6IFwiU2FtbGluZ1wiLFxuICAgIFwiQ09MTEVDVElPTl9DT0xPUlwiOiBcIlNhbWxpbmcgRsOkcmdcIixcbiAgICBcIlNJWkVcIjogXCJTdG9ybGVrXCIsXG4gICAgXCJIRUFERVJfU0laRVwiOiBcIlJ1YnJpa3N0b3JsZWtcIixcbiAgICBcIkhFQURFUlwiOiBcIlJ1YnJpa1wiLFxuICAgIFwiSEVBREVSX1NUUk9LRV9DT0xPUlwiOiBcIlJ1YnJpa2VucyBzdHJlY2tmw6RyZ1wiLFxuICAgIFwiSEVBREVSX0xBQkVMX0NPTE9SXCI6IFwiUnVicmlrZXRpa2V0dGVucyBmw6RyZ1wiLFxuICAgIFwiTEFORV9TVFJPS0VfQ09MT1JcIjogXCJMYW5lIFN0cm9rZSBGw6RyZ1wiLFxuICAgIFwiTEFORV9IRUFERVJfU1RST0tFXCI6IFwiTGFuZSBIZWFkZXIgU3Ryb2tlXCIsXG4gICAgXCJMQU5FX0xBQkVMX0NPTE9SXCI6IFwiTGFuZSBMYWJlbCBGw6RyZ1wiLFxuICAgIFwiTUlMRVNUT05FX0hFQURFUl9GSUxMXCI6IFwiTWlsc3RvbHBlIEhlYWRlciBGeWxsXCIsXG4gICAgXCJNSUxFU1RPTkVfU1RST0tFXCI6IFwiTWlsc3RvbHBlIFN0cm9rZVwiLFxuICAgIFwiTUlMRVNUT05FX0xBQkVMX0NPTE9SXCI6IFwiTWlsc3RvbHBlIGV0aWtldHQgZsOkcmdcIixcbiAgICBcIk1JTEVTVE9ORV9MSU5FX0NPTE9SXCI6IFwiTWlsZXN0b25lIExpbmUgQ29sb3JcIixcbiAgICBcIkhFQURFUl9BTElHTk1FTlRcIjogXCJSdWJyaWtqdXN0ZXJpbmdcIixcbiAgICBcIkhFQURFUl9GT05UX0ZBTUlMWVwiOiBcIkhlYWRlciBGb250IGZhbWlsalwiLFxuICAgIFwiSEVBREVSX0ZPTlRfU0laRVwiOiBcIkhlYWRlciBGb250IHN0b3JsZWtcIixcbiAgICBcIkxBTkVfQUxJR05NRU5UXCI6IFwiS8O2cmbDpGx0c2lucmlrdG5pbmdcIixcbiAgICBcIkxBTkVfRk9OVF9GQU1JTFlcIjogXCJMYW5lIEZvbnQgZmFtaWxqXCIsXG4gICAgXCJMQU5FX0ZPTlRfU0laRVwiOiBcIkxhbmUgVGVja2Vuc3Rvcmxla1wiLFxuICAgIFwiTUlMRVNUT05FX0FMSUdOTUVOVFwiOiBcIk1pbHN0b2xwZWp1c3RlcmluZ1wiLFxuICAgIFwiTUlMRVNUT05FX0ZPTlRfRkFNSUxZXCI6IFwiTWlsZXN0b25lIEZvbnQgZmFtaWx5XCIsXG4gICAgXCJNSUxFU1RPTkVfRk9OVF9TSVpFXCI6IFwiTWlsZXN0b25lIEZvbnQgZmFtaWx5XCIsXG4gICAgXCJURVhUX0NPTE9SXCI6IFwiVGV4dCBGYXJnZVwiLFxuICAgIFwiVEVYVF9IRUFERVJfQ09MT1JcIjogXCJIZWFkZXIgVGV4dCBGYXJnZVwiLFxuICAgIFwiVEVYVF9CQUNLR1JPVU5EX0NPTE9SXCI6IFwiQmFrZ3J1bmQgVGV4dCBGYXJnZVwiLFxuICAgIFwiVEVYVF9JTlNJREVfU0hBUEVcIjogXCJWaXMgdGV4dGVuIGlubmkgZmlndXJcIixcbiAgICBcIlRFTVBMQVRFX05BTUVcIjogXCJNYWxuYW1uXCIsXG4gICAgXCJURU1QTEFURV9JTkZPXCI6IFwiVsOkbmxpZ2VuIHNrcml2IGRpdHQgbmFtblwiLFxuICAgIFwiU0VMRUNUX1RFTVBMQVRFX0lORk9STUFUSU9OXCI6IFwiRHUgbcOlIHbDpGxqYSBlbiBtYWxlbiBpbm5hbiBkdSB1dGbDtnIgZGVubmEgaGFuZGxpbmcuXCIsXG4gICAgXCJDT05ORUNUSU9OXCI6IFwiRsO2cmJpbmRlbHNlXCIsXG4gICAgXCJQUk9QRVJUSUVTXCI6IFwiRWdlbnNrYXBlclwiLFxuICAgIFwiQlVTSU5FU1NfUFJPQ0VTU19NT0RFTF9BTkRfTk9UQVRJT05cIjogXCJBZmbDpHJzcHJvY2Vzc21vZGVsbCBvY2ggbm90YXRpb25cIixcbiAgICBcIkNPTk5FQ1RFRF9BVFRBQ0hNRU5UXCI6IFwiQmlmb2dhZCBiaWxhZ2FcIixcbiAgICBcIkNPTk5FQ1RFRF9ET0NVTUVOVF9PUl9QUk9DRVNTXCI6IFwiTMOkbmthZGUgZG9rdW1lbnRldC9wcm9jZXNzZW5cIixcbiAgICBcIkRFTEVURV9BVFRBQ0hNRU5UXCI6IFwiVGEgYm9ydCBiaWxhZ29yXCIsXG4gICAgXCJERUxFVEVfRE9DVU1FTlRfT1JfUFJPQ0VTU1wiOiBcIlRhIGJvcnQgZG9rdW1lbnRldC9wcm9jZXNzZW5cIixcbiAgICBcIkNIT09TRV9BTkNIT1JfSU5fVEVYVF9PUFRJT05BTFwiOiBcIlbDpGxqIGFua2FyZSBpIHRleHQgKHZhbGZyaXR0KVwiLFxuICAgIFwiUkVMT0FEX0FOQ0hPUlNcIjogXCJMYWRkYSBvbSBhbmthcmVcIixcbiAgICBcIlJFU0VUX1RPX09SSUdJTkFMXCI6IFwiSWdub3JlcmEgw6RuZHJpbmdhclwiLFxuICAgIFwiQVVUT19MQVlPVVRfR1JBUEhcIjogXCJBdXRvLWxheW91dCBncmFmXCIsXG4gICAgXCJGVUxMU0NSRUVOXCI6IFwiSGVsc2vDpHJtc3Zpc25pbmdcIixcbiAgICBcIkZMT1dDSEFSVFwiOiBcIkZsw7ZkZXNzY2hlbWFcIixcbiAgICBcIkhBTkRCT09LXCI6IFwiZS1oYW5kYm9rXCIsXG4gICAgXCJUT0dHTEVfRlVMTF9TQ1JFRU5cIjogXCJWw6R4bGEgbWVsbGFuIGhlbHNrw6RybVwiLFxuICB9LFxuICBcIlFNU0NLRURJVE9SX01FU1NBR0VcIjoge1xuICAgIFwiQ09ORklSTV9ERUxFVEVfVEVNUExBVEVcIjogXCLDhHIgZHUgc8Oka2VyIHDDpSBhdHQgZHUgdmlsbCB0YSBib3J0IGRlbiBow6RyIG1hbGxlbj8/XCIsXG4gICAgXCJDT05GSVJNX0NIQU5HRV9URU1QTEFURVwiOiBcIsOEciBkdSBzw6RrZXIgcMOlIGF0dCBkdSB2aWxsIGFudsOkbmRhIGRlbiBow6RyIG1hbGxlbiBpIHJlZGlnZXJhcmVuPz9cIixcbiAgICBcIkNPTkZJUk1fREVMRVRFX0VYSVNUSU5HX0NPTk5FQ1RJT05cIjogXCJEdSBtw6VzdGUgdGEgYm9ydCBkZW4gYmVmaW50bGlnYSBhbnNsdXRuaW5nZW4gaW5uYW4gZHUgdXRmw7ZyIGRlbiBow6RyIMOldGfDpHJkZW4uXCIsXG4gICAgXCJDT05GSVJNX0RFTEVURV9BVFRBQ0hNRU5UXCI6IFwiw4RyIGR1IHPDpGtlciBww6UgYXR0IGR1IHZpbGwgdGEgYm9ydCBkZW4gaMOkciBsw6Rua2VuP1wiLFxuICAgIFwiQ09ORklSTV9ERUxFVEVfRE9DVU1FTlRfT1JfUFJPQ0VTU1wiOiBcIsOEciBkdSBzw6RrZXIgcMOlIGF0dCBkdSB2aWxsIHRhIGJvcnQgZGV0IGjDpHIgZG9rdW1lbnRldC9wcm9jZXNzZW4/XCIsXG4gIH0sXG4gIFwiRkxPV0NIQVJUXCI6IHtcbiAgICBcIlJFTU9WRV9FTEVNRU5UXCI6ICdLbGlja2EgZsO2ciBhdHQgdGEgYm9ydCBvYmpla3RldCcsXG4gICAgXCJDTE9ORV9BTkRfQ09OTkVDVFwiOiAnS2xpY2thIG9jaCBkcmEgZsO2ciBhdHQga2xvbmEgb2NoIGJpZm9nYSBvYmpla3RldCBww6UgZW4gZ8OlbmcnLFxuICAgIFwiQ0xPTkVcIjogJ0tsaWNrYSBvY2ggZHJhIGbDtnIgYXR0IGtsb25hIG9iamVrdGV0JyxcbiAgICBcIkJSRUFLX0FMTF9DT05ORUNUSU9OU1wiOiAnS2xpY2thIGbDtnIgYXR0IGJyeXRhIGFsbGEga29wcGxpbmdhciB0aWxsIGFuZHJhIG9iamVrdCcsXG4gICAgXCJDT05ORUNUXCI6ICdLbGlja2Egb2NoIGRyYSBmw7ZyIGF0dCBhbnNsdXRhIHRpbGwgb2JqZWt0ZXQnLFxuICAgIFwiUk9UQVRFXCI6ICdLbGlja2Egb2NoIGRyYSBmw7ZyIGF0dCByb3RlcmEgb2JqZWt0ZXQnLFxuICAgIFwiUkVNT1ZFX1NFTEVDVEVEX0VMRU1FTlRcIjogJ0tsaWNrYSBmw7ZyIGF0dCB0YSBib3J0IGRlIG1hcmtlcmFkZSBvYmpla3RlbicsXG4gICAgXCJST1RBVEVfU0VMRUNURURfRUxFTUVOVFwiOiAnS2xpY2thIG9jaCBkcmEgZsO2ciBhdHQgcm90ZXJhIGRlIG1hcmtlcmFkZSBvYmpla3RlbicsXG4gICAgXCJSRVNJWkVfU0VMRUNURURfRUxFTUVOVFwiOiAnS2xpY2thIG9jaCBkcmEgZsO2ciBhdHQgw6RuZHJhIHN0b3JsZWsgcMOlIGRlIG1hcmtlcmFkZSBvYmpla3RlbicsXG4gICAgXCJSRUNUQU5HTEVcIjogJ1Jla3RhbmdlbCcsXG4gICAgXCJFTExJUFNFXCI6ICdFbGxpcHMnLFxuICAgIFwiUkVDVEFOR0xFX1dJVEhfUE9SVFNcIjogJ1Jla3RhbmdlbCBtZWQgZ3JpbmRhcicsXG4gICAgXCJFTExJUFNFX1dJVEhfUE9SVFNcIjogJ0VsbGlwcyBtZWQgZ3JpbmRhcicsXG4gICAgXCJSSE9NQlVTXCI6ICdSb21iJyxcbiAgICBcIkNZTElOREVSXCI6ICdTeWxpbmRlcicsXG4gICAgXCJJTUFHRVwiOiAnQmlsZCcsXG4gICAgXCJDQVJEXCI6ICdLb3J0JyxcbiAgICBcIklDT05cIjogJ0lrb24nLFxuICAgIFwiUkVDVEFOR0xFX1dJVEhfSEVBREVSXCI6ICdSZWt0YW5nZWwgbWVkIHJ1YnJpaycsXG4gICAgXCJTVEFSVF9TVEFURVwiOiAnSW5pdGlhbCBzdGF0dXMnLFxuICAgIFwiRU5EX1NUQVRFXCI6ICdTbHV0bMOkZ2UnLFxuICAgIFwiU1RBVEVcIjogJ1N0YXQnLFxuICAgIFwiUExBQ0VcIjogJ1BsYXRzJyxcbiAgICBcIlRSQU5TSVRJT05cIjogJ8OWdmVyZ8OlbmcnLFxuICAgIFwiRU5USVRZXCI6ICdFbnRpdGV0JyxcbiAgICBcIldFQUtfRU5USVRZXCI6ICdTdmFnIGVuaGV0JyxcbiAgICBcIlJFTEFUSU9OU0hJUFwiOiAnUmVsYXRpb24nLFxuICAgIFwiSURFTlRJRllJTkdfUkVMQVRJT05TSElQXCI6ICdJZGVudGlmaWVyYSB2aWxsa29yJyxcbiAgICBcIklTQVwiOiAnSVNBJyxcbiAgICBcIktFWVwiOiAnTnlja2VsJyxcbiAgICBcIk5PUk1BTFwiOiAnVmFubGlndCcsXG4gICAgXCJNVUxUSVZBTFVFRFwiOiAnRmxlcnbDpHJkaWd0JyxcbiAgICBcIkRFUklWRURcIjogJ0jDpHJsZWRkJyxcbiAgICBcIkNMQVNTXCI6ICdLbGFzcycsXG4gICAgXCJJTlRFUkZBQ0VcIjogJ0dyw6Ruc3NuaXR0JyxcbiAgICBcIkFCU1RSQUNUXCI6ICdBYnN0cmFrdCcsXG4gICAgXCJNRU1CRVJcIjogJ01lZGxlbScsXG4gICAgXCJVTkRPXCI6ICfDhW5ncmEnLFxuICAgIFwiUkVET1wiOiAnRsO2csOkbmRyYScsXG4gICAgXCJDTEVBUl9QQVBFUlwiOiAnVG9tdCBwYXBwZXInLFxuICAgIFwiRVhQT1JUX1NWR1wiOiAnw5ZwcG5hIHNvbSBTVkcgaSBlbiBwb3B1cCcsXG4gICAgXCJFWFBPUlRfUE5HXCI6ICfDlnBwbmEgc29tIFBORyBpIGVuIHBvcHVwJyxcbiAgICBcIlBSSU5UXCI6ICfDhXBuZSBlbiB1dHNrcmlmdHNkaWFsb2dib2tzJyxcbiAgICBcIlNFTkRfVE9fRlJPTlRcIjogJ1RhIGZyYW0gZsO2cmVtw6VsZXQnLFxuICAgIFwiU0VORF9UT19CQUNLXCI6ICdTa2lja2Egb2JqZWt0IHRpbGwgYmFrc2lkYW4nLFxuICAgIFwiQVVUT19MQVlPVVRfR1JBUEhcIjogJ0F1dG8tbGF5b3V0IGdyYWYnLFxuICAgIFwiWk9PTV9UT19GSVRcIjogJ1pvb21hIGbDtnIgYXR0IHBhc3NhJyxcbiAgICBcIlpPT01fT1VUXCI6ICdab29tYSB1dCcsXG4gICAgXCJaT09NX0lOXCI6ICdab29tYSBpbicsXG4gICAgXCJDSEFOR0VfR1JJRF9TSVpFXCI6ICfDhG5kcmEgcnV0bsOkdHNzdG9ybGVrJyxcbiAgICBcIlNOQVBMSU5FU1wiOiAnw4RuZHJhIHJ1dG7DpHRzc3RvcmxlaycsXG4gICAgXCJGVUxMU0NSRUVOXCI6ICdWw6R4bGEgaGVsc2vDpHJtc2zDpGdlJyxcbiAgICBcIlNFTEVDVF9URU1QTEFURVwiOiBcIlbDpGxqIG1hbGxcIixcbiAgICBcIkRFTEVURV9URU1QTEFURVwiOiBcIlRhIGJvcnQgbWFsbFwiLFxuICAgIFwiU0FWRV9BU19URU1QTEFURVwiOiBcIlNwYXJhIHNvbSBtYWxsXCIsXG4gICAgXCJSRVNFVF9UT19MQVNUX1NBVkVcIjogXCJTbMOkbmcgb3NwYXJhZGUgw6RuZHJpbmdhclwiXG4gIH1cbn1cbiJdfQ==
|
439
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3YuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9xbXMtYW5ndWxhci9zcmMvbGliL21vZGVsL3N2LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLEVBQUUsR0FBRztJQUNoQixTQUFTLEVBQUUsVUFBVTtJQUNyQixjQUFjLEVBQUUsZ0JBQWdCO0lBQ2hDLGFBQWEsRUFBRSxnQkFBZ0I7SUFDL0IsY0FBYyxFQUFFLGVBQWU7SUFDL0IsYUFBYSxFQUFFLE9BQU87SUFDdEIsZUFBZSxFQUFFLFdBQVc7SUFDNUIsd0JBQXdCLEVBQUUsZ0NBQWdDO0lBQzFELFFBQVEsRUFBRSxPQUFPO0lBQ2pCLE1BQU0sRUFBRSxVQUFVO0lBQ2xCLFFBQVEsRUFBRSxRQUFRO0lBQ2xCLE1BQU0sRUFBRSxPQUFPO0lBQ2YsUUFBUSxFQUFFLFdBQVc7SUFDckIsZ0JBQWdCLEVBQUUsa0JBQWtCO0lBQ3BDLFdBQVcsRUFBRSxTQUFTO0lBQ3RCLHNCQUFzQixFQUFFLDBDQUEwQztJQUNsRSwyQkFBMkIsRUFBRSw2QkFBNkI7SUFDMUQsa0JBQWtCLEVBQUUsdUJBQXVCO0lBQzNDLFFBQVEsRUFBRSxNQUFNO0lBQ2hCLFdBQVcsRUFBRSxXQUFXO0lBQ3hCLFdBQVcsRUFBRSxVQUFVO0lBQ3ZCLFdBQVcsRUFBRSxZQUFZO0lBQ3pCLFdBQVcsRUFBRSxhQUFhO0lBQzFCLFlBQVksRUFBRSxXQUFXO0lBQ3pCLEtBQUssRUFBRSxXQUFXO0lBQ2xCLFFBQVEsRUFBRSxLQUFLO0lBQ2YsZUFBZSxFQUFFLHlEQUF5RDtJQUMxRSxlQUFlLEVBQUUsaUZBQWlGO0lBQ2xHLGlCQUFpQixFQUFFLGdCQUFnQjtJQUNuQyxVQUFVLEVBQUUsU0FBUztJQUNyQixZQUFZLEVBQUUsSUFBSTtJQUNsQixhQUFhLEVBQUUsSUFBSTtJQUNuQixjQUFjLEVBQUUsZ0JBQWdCO0lBQ2hDLFFBQVEsRUFBRSxNQUFNO0lBQ2hCLGdC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b25zdCBzdiA9IHtcbiAgXCJSRVNVTFRTXCI6IFwiUmVzdWx0YXRcIixcbiAgXCJST1dfUEVSX1BBR0VcIjogXCJSYWRlciBwZXIgc2lkYVwiLFxuICBcIkpVTV9UT19QQUdFXCI6IFwiSG9wcGEgw6V0IHNpZGFuXCIsXG4gIFwiTVlfQ09NUE9ORU5UXCI6IFwiTWluIGtvbXBvbmVudFwiLFxuICBcIlNBVkVfQlVUVE9OXCI6IFwiU3BhcmFcIixcbiAgXCJDQU5DRUxfQlVUVE9OXCI6IFwiQW5udWxsZXJhXCIsXG4gIFwiREVMRVRFX01FU1NBR0VfQ09NTUVOVFwiOiBcIkRldHRhIG1lZGRlbGFuZGUgaGFyIHJhZGVyYXRzLlwiLFxuICBcIlJFR1JFVFwiOiBcIsOFbmdyYVwiLFxuICBcIkVESVRcIjogXCJSZWRpZ2VyYVwiLFxuICBcIkRFTEVURVwiOiBcIlJhZGVyYVwiLFxuICBcIlNBVkVcIjogXCJTcGFyYVwiLFxuICBcIkNBTkNFTFwiOiBcIkFubnVsbGVyYVwiLFxuICBcIkVESVRfRklMRV9OQU1FXCI6IFwiUmVkaWdlcmEgZmlsbmFtblwiLFxuICBcIkZJTEVfTkFNRVwiOiBcIkZpbG5hbW5cIixcbiAgXCJVUExPQURfTEVBVkVfV0FSTklOR1wiOiBcIkZpbGVybmEgZHUgbGFkZGFyIHVwcCBrYW5za2UgaW50ZSBzcGFyYXNcIixcbiAgXCJTT01FX0ZJTEVTX1dFUkVfTk9UX0FEREVEXCI6IFwiVmlzc2EgZmlsZXIgbGFkZXMgaW50ZSB0aWxsXCIsXG4gIFwiWU9VX0NBTl9PTkxZX0FERFwiOiBcIkR1IGthbiBiYXJhIGxhZGRhIHVwcFwiLFxuICBcIlNFTEVDVFwiOiBcIlbDpGxqXCIsXG4gIFwiUFJPQ0VTU0VTXCI6IFwiUHJvY2Vzc2VyXCIsXG4gIFwiRE9DVU1FTlRTXCI6IFwiRG9rdW1lbnRcIixcbiAgXCJERVZJQVRJT05cIjogXCJLYXRlZ29yaWVyXCIsXG4gIFwiQ0hFQ0tMSVNUXCI6IFwiQ2hlY2tsaXN0b3JcIixcbiAgXCJBU1NFU1NNRU5UXCI6IFwiQW5hbHlzZXJhXCIsXG4gIFwiQUREXCI6IFwiTMOkZ2cgdGlsbFwiLFxuICBcIlNFQVJDSFwiOiBcIlPDtmtcIixcbiAgXCJSRUdVTEFSX1RJVExFXCI6IFwiVmlsa2EgaMOkbmRlbHNlciB2aWxsIGR1IGhhIG1lZCBpIHJpc2thbmFseXNlbi9yaXNrZXJuYT9cIixcbiAgXCJDQVBUSU9OX1RJVExFXCI6IFwiSSBvcnNha3NhbmFseXNlciBsw6RnZ3MgYWxsYSBvcnNha2VyIHJlbGF0ZXJhZGUgdGlsbCBow6RuZGVsc2VuIGF1dG9tYXRpc2t0IHRpbGwuXCIsXG4gIFwiQ0FVU0FMX0FOQUxZWkVTXCI6IFwiVmFsZGEgYW5hbHlzZXJcIixcbiAgXCJGSU5JU0hFRFwiOiBcIkbDpHJkaWdhXCIsXG4gIFwiUFJPQ0VTU19JRFwiOiBcIklEXCIsXG4gIFwiRE9DVU1FTlRfSURcIjogXCJJRFwiLFxuICBcIlBST0NFU1NfQVJFQVwiOiBcIlByb2Nlc3NvbXLDpWRlblwiLFxuICBcIkZPTERFUlwiOiBcIm1hcHBcIixcbiAgXCJERVZJQVRJT05fVFlQRVwiOiBcIkZhbGwgdHlwXCIsXG4gIFwiQ0hFQ0tMSVNUX0NBVEVHT1JZXCI6IFwiS2F0ZWdvcmllclwiLFxuICBcIkVWRU5UXCI6IFwiSMOkbmRlbHNlXCIsXG4gIFwiQVJFQV9PRl9JTVBBQ1RcIjogXCJLb25zZWt2ZW5zb21yw6VkZVwiLFxuICBcIlJFU1VMVFwiOiBcIlJlc3VsdGF0XCIsXG4gIFwiTk9UX0FDQ0VQVEVEXCI6IFwiSW50ZSBhY2NlcHRlcmFkXCIsXG4gIFwiTVVTVF9CRV9FVkFMVUFURURcIjogXCJNw6VzdGUgw7Z2ZXJ2w6RnYXNcIixcbiAgXCJBQ0NFUFRFRFwiOiBcIkFjY2VwdGVyYWRcIixcbiAgXCJBUkNISVZFRFwiOiBcIkFya2l2ZXJhZFwiLFxuICBcIkNBVVNFXCI6IFwiT3JzYWtcIixcbiAgXCJQQUdFXCI6IFwiU2lkYVwiLFxuICBcIk9GXCI6IFwiYXZcIixcbiAgXCJSRVBPUlRfRk9SXCI6IFwiUmFwcG9ydCBmw7ZyXCIsXG4gIFwiU0VMRUNURURcIjogXCJWYWxndGVcIixcbiAgXCJDSE9PU0VfQUxMXCI6IFwidsOkbGogYWxsYVwiLFxuICBcIkJSRUFEQ1JVTUJcIjogXCJTdHLDtmJyw7ZkXCIsXG4gIFwiTkFWSUdBVEVfVE9cIjogXCJOYXZpZ2VyYSB0aWxsXCIsXG4gIFwiRklMRV9TSVpFX0xJTUlUXCI6IFwiRmlsc3Rvcmxla3NncsOkbnNcIixcbiAgXCJTVVBQT1JURURfRVhURU5TSU9OU1wiOiBcIlRpbGzDpGdnIHNvbSBzdMO2ZHNcIixcbiAgXCJGSUxFU19BUkVfTk9UX1NVUFBPUlRFRFwiOiBcIkZpbChlcikgc3TDtmRzIGludGVcIixcbiAgXCJGSUxFU19FWENFRURfVVBMT0FEX0xJTUlUXCI6IFwiRmlsKGVyKSDDtnZlcnNrcmlkZXIgZ3LDpG5zZW4gZsO2ciB1cHBsYWRkbmluZ3NzdG9ybGVrXCIsXG4gIFwiU0VMRUNUX0FDQ0VTU1wiOiBcIlbDpGxqIGFuc3ZhcmlnYSBwZXJzb25lclwiLFxuICBcIlBFUlNPTlwiOiBcIlBlcnNvblwiLFxuICBcIlVTRVJfR1JPVVBcIjogXCJBbnbDpG5kYXJncnVwcFwiLFxuICBcIkRFUEFSVE1FTlRcIjogXCJBdmRlbG5pbmdcIixcbiAgXCJST0xFXCI6IFwiUm9sbFwiLFxuICBcIkRFUEFSVE1FTlRfVU5JVFwiOiBcIkF2ZGVsbmluZy9lbmhldFwiLFxuICBcIklOQ0xVREVfU1VCX0RFUEFSVE1FTlRTXCI6IFwiSW5rbHVkZXJhIGF1dG9tYXRpc2t0IHVuZGVyYXZkZWxuaW5nYXJcIixcbiAgXCJOQU1FXCI6IFwibmFtblwiLFxuICBcIlNFQVJDSF9VU0VSX0dST1VQXCI6IFwiU8O2ayBhbnbDpG5kYXJncnVwcFwiLFxuICBcIlNFQVJDSF9ERVBBUlRNRU5UX1VOSVRcIjogXCJTw7ZrYXZkZWxuaW5nL2VuaGV0XCIsXG4gIFwiRklMVEVSXCI6IFwiQW52w6RuZCBmaWx0ZXJcIixcbiAgXCJUWVBFXCI6IFwiVHlwXCIsXG4gIFwiU0VBUkNIX1dJVEhfTkFNRVwiOiBcIlPDtmsgbmFtbiBvY2ggYW52w6RuZGFybmFtblwiLFxuICBcIlJFU1VMVF9TRUFSQ0hfRk9SXCI6IFwiU8O2ayByZXN1bHRhdCBlZnRlclwiLFxuICBcIlRPT0xUSVBfSU5DTFVERV9TVUJfREVQQVJUTUVOVFwiOiBcInswfSDigJMgaW5rbHVkZXJhciB7MX0gYmFyblwiLFxuICBcIlRPT0xUSVBfSU5DTFVERV9TVUJfSVRFTVwiOiBcInswfSDigJMgaW5uZWjDpWxsZXIgezF9IHVuZGVyZWxlbWVudFwiLFxuICBcIk5PX1JFU1VMVFwiOiBcIkluZ2V0IHJlc3VsdGF0XCIsXG4gIFwiSVRFTV9OT1RfTUFUQ0hfVE9fVFJFRVwiOiBcIkRlbm5hIGFydGlrZWwgbWF0Y2hhciBpbnRlIHRyw6RkZXRcIixcbiAgXCJFUlJPUlwiOiB7XG4gICAgXCJTRUxFQ1RfREFOR0VSXCI6IFwiRHUgbcOlc3RlIHbDpGxqYSBlbiBlbGxlciBmbGVyYSBow6RuZGVsc2VyXCJcbiAgfSxcbiAgXCJNRVNTQUdFXCI6IHtcbiAgICBcIlBST0NFU1NFU19JTlwiOiBcIlByb2Nlc3NlciBpXCIsXG4gICAgXCJET0NVTUVOVFNfSU5cIjogXCJEb2t1bWVudCBpXCJcbiAgfSxcbiAgXCJTRUxFQ1RfSU5DTFVERV9DSElMRFwiOiBcIlNlbGVjdCBpbmtsdWRlcmFyIGJhcm5cIixcbiAgXCJCQUNLX1RPX1RSRUVcIjogXCJUaWxsYmFrYSB0aWxsIGV0dCB0csOkZFwiLFxuICBcIkdPVE9fU0VBQ0hfUkVTVUxUXCI6IFwiR8OlIHRpbGwgc8O2a3Jlc3VsdGF0ZXRcIixcbiAgXCJRTVNDS0VESVRPUlwiOiB7XG4gICAgXCJJRFwiOiBcIklEXCIsXG4gICAgXCJJTkZPUk1BVElPTlwiOiBcIkluZm9ybWF0aW9uXCIsXG4gICAgXCJSRU1PVkVfTUFQXCI6IFwiVGEgYm9ydCBrYXJ0YW5cIixcbiAgICBcIklNQUdFX01BUF9QUk9QRVJUSUVTXCI6IFwiQmlsZGthcnRhIGVnZW5za2FwZXJcIixcbiAgICBcIklOU0VSVF9UT09MVElQXCI6IFwiU8OkdHQgaSBlbiB2ZXJrdHlnc3NwZXRzXCIsXG4gICAgXCJDT05URU5UXCI6IFwiSW5uZWjDpWxsXCIsXG4gICAgXCJURU1QTEFURVwiOiBcIk1hbGxcIixcbiAgICBcIkNPTlRFTlRfVEVNUExBVEVcIjogXCJJbm5laMOlbGxzbWFsbFwiLFxuICAgIFwiQ1JFQVRFX05FV19URU1QTEFURVwiOiBcIlNrYXBhIGVuIG55IG1hbGxcIixcbiAgICBcIlVQREFURV9URU1QTEFURVwiOiBcIlVwcGRhdGVyYSBtYWxsXCIsXG4gICAgXCJUSVRMRVwiOiBcIlRpdGVsXCIsXG4gICAgXCJERVNDUklQVElPTlwiOiBcIkJlc2tyaXZuaW5nXCIsXG4gICAgXCJTQVZFXCI6IFwiU3BhcmFcIixcbiAgICBcIkNIT09TRV9URU1QTEFURVwiOiBcIlbDpGxqIG1hbGxlbiBkdSB2aWxsIMO2cHBuYSBpIGVkaXRvcm5cIixcbiAgICBcIlJFUExBQ0VfQ09OVEVOVFwiOiBcIkJ5dCB1dCBkZXQgZmFrdGlza2EgaW5uZWjDpWxsZXRcIixcbiAgICBcIlNBVkVEXCI6IFwiU3BhcmFkXCIsXG4gICAgXCJTQVZFX0ZBSUxFRFwiOiBcIlNwYXJuaW5nZW4gbWlzc2x5Y2thZGVzXCIsXG4gICAgXCJERUxFVEVcIjogXCJSYWRlcmFcIixcbiAgICBcIkRFTEVURURcIjogXCJyYWRlcmFkZVwiLFxuICAgIFwiREVMRVRFX0ZBSUxFRFwiOiBcIkRldCBnaWNrIGludGUgYXR0IHRhIGJvcnRcIixcbiAgICBcIkRFTEVURV9URU1QTEFURVwiOiBcIlRhIGJvcnQgbWFsbFwiLFxuICAgIFwiQ0hBTkdFX1RFTVBMQVRFXCI6IFwiw4RuZHJhIG1hbGxcIixcbiAgICBcIkNBTkNFTFwiOiBcIkFubnVsbGVyYVwiLFxuICAgIFwiTElOS1wiOiBcIkluZm9nYS9yZWRpZ2VyYSBsw6Rua1wiLFxuICAgIFwiTElOS19UWVBFXCI6IFwiS29wcGxpbmdzdHlwXCIsXG4gICAgXCJaT09NXCI6IFwiWm9vbVwiLFxuICAgIFwiTElOS19VUkxcIjogXCJVUkxcIixcbiAgICBcIkxJTktfQU5DSE9SX0lOX1RFWFRcIjogXCJMw6RuayB0aWxsIGFua2FyZSBpIHRleHRlblwiLFxuICAgIFwiTElOS19FTUFJTFwiOiBcIkUtcG9zdFwiLFxuICAgIFwiTElOS19BTkNIT1JfRE9DVU1FTlRcIjogXCJGw7ZyYW5rcmEgaSBldHQgYW5uYXQgZG9rdW1lbnRcIixcbiAgICBcIlRBUkdFVFwiOiBcIk3DpWxcIixcbiAgICBcIlRBUlRHRVRfTkVXXCI6IFwiTnl0dCBmw7Zuc3RlciAoX2JsYW5rKVwiLFxuICAgIFwiVEFSR0VUX1RPUE1PU1RcIjogXCJEZXQgw7Z2cmUgZsO2bnN0cmV0IChfdG9wKVwiLFxuICAgIFwiVEFSR0VUX1NBTUVcIjogXCJTYW1tYSBmw7Zuc3RlciAoc2rDpGx2KVwiLFxuICAgIFwiVEFSR0VUX1BBUkVOVFwiOiBcIsOWdmVyb3JkbmF0IGbDtm5zdGVyIChfZsO2csOkbGRlcilcIixcbiAgICBcIlBST1RPQ09MXCI6IFwiUHJvdG9rb2xsXCIsXG4gICAgXCJQUk9UT0NPTF9IVFRQXCI6IFwiaHR0cDovL1wiLFxuICAgIFwiUFJPVE9DT0xfSFRUUFNcIjogXCJodHRwczovL1wiLFxuICAgIFwiUFJPVE9DT0xfRlRQXCI6IFwiZnRwOi8vXCIsXG4gICAgXCJQUk9UT0NPTF9ORVdcIjogXCJueWhldGVyOi8vXCIsXG4gICAgXCJQUk9UT0NPTF9PVEhFUlwiOiBcIjxhbm5hdD5cIixcbiAgICBcIkFEVklTT1JZX1RJVExFXCI6IFwiUsOlZGdpdmFuZGUgdGl0ZWxcIixcbiAgICBcIkhBTkRCT09LXCI6IFwiZS1oYW5kYm9rXCIsXG4gICAgXCJBVFRBQ0hNRU5UXCI6IFwiVmVkbGVnZ1wiLFxuICAgIFwiT0tcIjogXCJPS1wiLFxuICAgIFwiVVJMX0hFQURFUlwiOiBcIlVSTC1pbmZvcm1hdGlvblwiLFxuICAgIFwiQU5DSE9SX1RFWFRfSEVBREVSXCI6IFwiVsOkbGogZXQgYW5rZXJcIixcbiAgICBcIkFOQ0hPUl9CWV9OQU1FXCI6IFwiQW5rZXIgdmVkIG5hbW5cIixcbiAgICBcIkVNQUlMX0hFQURFUlwiOiBcIkUtcG9zdGluZm9ybWF0aW9uXCIsXG4gICAgXCJFTUFJTF9BRERSRVNTXCI6IFwiQWRyZXNzXCIsXG4gICAgXCJFTUFJTF9TVUJKRUNUXCI6IFwiRW1uZVwiLFxuICAgIFwiRU1BSUxfQk9EWVwiOiBcIktyb3BwXCIsXG4gICAgXCJBTkNIT1JfQVRUQUNITUVOVFwiOiBcIlZlZGxlZ2dcIixcbiAgICBcIkFOQ0hPUl9SRUxBVEVEX0RPQ1VNRU5UXCI6IFwiUmVsYXRlcnRlIGRva3VtZW50XCIsXG4gICAgXCJBRERfRE9DVU1FTlRfUFJPQ0VTU1wiOiBcIkzDpGdnIHRpbGwgZG9rdW1lbnQgLyBwcm9jZXNzXCIsXG4gICAgXCJBRERfRE9DVU1FTlRcIjogXCJMw6RnZyB0aWxsIGRva3VtZW50XCIsXG4gICAgXCJBRERcIjogXCJMw6RnZyB0aWxsXCIsXG4gICAgXCJQUk9TRVNTRVJcIjogXCJQcm9jZXNzZXJcIixcbiAgICBcIkRPQ1VNRU5UU1wiOiBcIkRva3VtZW50XCIsXG4gICAgXCJVUERBVEVcIjogXCJVcHBkYXRlcmluZ1wiLFxuICAgIFwiRE9DVU1FTlRcIjogXCJEb2t1bWVudFwiLFxuICAgIFwiQ09ORklSTVwiOiBcIkJla3LDpGZ0YVwiLFxuICAgIFwiU0VBUkNIXCI6IFwiU8O2a1wiLFxuICAgIFwiSU1BR0VfTU9ERV9QT0lOVEVSXCI6IFwiUGVrYXJcIixcbiAgICBcIklNQUdFX01PREVfUkVDVEFOR0xFXCI6IFwiUmVrdGFuZ2VsXCIsXG4gICAgXCJJTUFHRV9NT0RFX0NJUkNMRVwiOiBcIkNpcmtlbFwiLFxuICAgIFwiSU1BR0VfTU9ERV9QT0xZR09OXCI6IFwiUG9seWdvblwiLFxuICAgIFwiSU1BR0VfTU9ERV9SRU1PVkVcIjogXCJUYSBib3J0XCIsXG4gICAgXCJQT0xZR09OX0RSQVdcIjogXCJBbnbDpG5kIFNLSUZUICsga2xpY2thIGbDtnIgZGVuIHNpc3RhIGtvbnRyb2xscHVua3RlblwiLFxuICAgIFwiUkVDVEFOR0xFX0RSQVdcIjogXCJIw6VsbCBuZWQgU0hJRlQgZsO2ciBrdmFkcmF0bMOkZ2VcIixcbiAgICBcIlNRVUFSRV9EUkFXXCI6IFwiU2zDpHBwIFNISUZUIGbDtnIgcmVrdGFuZ2VsbMOkZ2VcIixcbiAgICBcIklOVkFMSURfVVJMXCI6IFwiT2dpbHRpZyBVUkxcIixcbiAgICBcIlJFUVVJUkVEX1VSTFwiOiBcIlVSTCBrcsOkdnNcIixcbiAgICBcIkNMT1NFXCI6IFwiU3TDpG5nYVwiLFxuICAgIFwiRE9DVU1FTlRfUFJPQ0VTU1wiOiBcIkRva3VtZW50IC8gUHJvY2Vzc1wiLFxuICAgIFwiVVBMT0FEX0ZJTEVfTk9UX1ZBTElEX0ZPUk1BVFwiOiBcIkRlbiB1cHBsYWRkYWRlIGZpbGVuIMOkciBvZ2lsdGlndCBmb3JtYXQuIEZpbGZvcm1hdCBzb20gc3TDtmRzOiB7MH1cIixcbiAgICBcIlVQTE9BRF9GSUxFX09WRVJTSVpFXCI6IFwiRmlsZW4gc29tIGxhZGRhcyB1cHAgw6RyIMO2dmVyIHN0b3JsZWtzZ3LDpG5zZW4uIFN0b3JsZWtzZ3LDpG5zZW4gw6RyIHswfU1CXCIsXG4gICAgXCJVUExPQURfRklMRV9GQUlMRURcIjogXCJEZXQgZ2ljayBpbnRlIGF0dCBsYWRkYSB1cHAgZmlsZW4uXCIsXG4gICAgXCJBU1NJU1RJVkVfVEVYVFwiOiBcIkhqw6RscHNhbSB0ZXh0XCIsXG4gICAgXCJXT1JEU1wiOiBcIk9yZFwiLFxuICAgIFwiQ0hBUkFDVEVSU1wiOiBcIlRlY2tlblwiLFxuICAgIFwiU0VMRUNUX1ZJREVPX0ZST01fQVJDSElWRVwiOiBcIlbDpGxqIHZpZGVvIGZyw6VuIGFya2l2ZXRcIixcbiAgICBcIlNFTEVDVF9WSURFT19JTUFHRVwiOiBcIlbDpGxqIHZpZGVvYmlsZFwiLFxuICAgIFwiRE9DVU1FTlRfSEVBREVSXCI6IFwiRG9rdW1lbnRpbmZvcm1hdGlvblwiLFxuICAgIFwiQUREX0lNQUdFXCI6IFwiTMOkZ2cgdGlsbCBldHQgZm90b1wiLFxuICAgIFwiSU1BR0VfSU5GT1wiOiBcIkJpbGRpbmZvcm1hdGlvblwiLFxuICAgIFwiQUREX0FfRklMRVwiOiBcIkzDpGdnIHRpbGwgZW4gZmlsXCIsXG4gICAgXCJFWFRFTlNJT05fSVNfTk9UX1NVUFBPUlRFRFwiOiBcIlRpbGzDpGdnZXQgc3TDtmRzIGludGUuXCIsXG4gICAgXCJBQ0NFUFRfTVA0X09OTFlcIjogXCJTdMO2ZGVyIGludGUgZGVubmEgdmlkZW90eXAuIEFjY2VwdGVyYSBlbmRhc3QgTVA0LlwiLFxuICAgIFwiTUFYSU1JWkVcIjogXCJNYXhpbWVyYVwiLFxuICAgIFwiTUlOSU1JWkVcIjogXCJNaW5pbWVyYVwiLFxuICAgIFwiSEVBRElOR1wiOiBcIlN0eWNrZWZvcm1hdFwiLFxuICAgIFwiRk9OVF9TSVpFXCI6IFwiU3Rvcmxla1wiLFxuICAgIFwiRk9OVF9GQU1JTFlcIjogXCJGb250LWZhbWlsalwiLFxuICAgIFwiRk9OVF9DT0xPUlwiOiBcIlRleHQgZsOkcmdcIixcbiAgICBcIkZPTlRfQkFDS0dST1VORF9DT0xPUlwiOiBcIkJha2dydW5kc2bDpHJnXCIsXG4gICAgXCJCT0xEXCI6IFwiRmV0XCIsXG4gICAgXCJJVEFMSUNcIjogXCJLdXJzaXZcIixcbiAgICBcIlVOREVSTElORVwiOiBcIlVuZGVyc3RyeWtuaW5nXCIsXG4gICAgXCJTVFJJS0VUSFJPVUdIXCI6IFwiw5Z2ZXJzdHJ5a25pbmdcIixcbiAgICBcIkhPUklaT05UQUxfTElORVwiOiBcIkluZm9nYSBob3Jpc29udGVsbCBsaW5qZVwiLFxuICAgIFwiUEFHRV9CUkVBS1wiOiBcIkluZm9nYSBzaWRicnl0bmluZyBmw7ZyIHV0c2tyaWZ0XCIsXG4gICAgXCJURVhUX0FMSUdOTUVOVFwiOiBcIlRleHRwbGFjZXJpbmdcIixcbiAgICBcIkJVTExFVEVEX0xJU1RcIjogXCJMw6RnZyB0aWxsL3RhIGJvcnQgcHVua3RsaXN0YVwiLFxuICAgIFwiTlVNQkVSRURfTElTVFwiOiBcIkzDpGdnIHRpbGwvdGEgYm9ydCBudW1yZXJhZCBsaXN0YVwiLFxuICAgIFwiREVDUkVBU0VfSU5ERU5UXCI6IFwiTWluc2thIGluZHJhZ2VuXCIsXG4gICAgXCJJTkNSRUFTRV9JTkRFTlRcIjogXCLDlmthIGluZHJhZ2V0XCIsXG4gICAgXCJTVUJTQ1JJUFRcIjogXCJOZWRzw6Rua3Qgc2tyaWZ0XCIsXG4gICAgXCJTVVBFUlNDUklQVFwiOiBcIlVwcGjDtmpkIHNrcmlmdFwiLFxuICAgIFwiVU5ET1wiOiBcIsOFbmdyYVwiLFxuICAgIFwiUkVET1wiOiBcIkfDtnIgaWdlblwiLFxuICAgIFwiU1BFQ0lBTF9DSEFSQUNURVJTXCI6IFwiSW5mb2dhIHN5bWJvbFwiLFxuICAgIFwiQkxPQ0tRVU9URVwiOiBcIkJsb2NrIGNpdGF0XCIsXG4gICAgXCJJTlNFUlRfSU1BR0VcIjogXCJCbGlkXCIsXG4gICAgXCJJTlNFUlRfTUVESUFcIjogXCJTw6R0dCBpIG1lZGlhXCIsXG4gICAgXCJCUk9XU0VfVklERU9cIjogXCJWaWRlb1wiLFxuICAgIFwiSU5TRVJUX1RBQkxFXCI6IFwiVGFiZWxsXCIsXG4gICAgXCJBTkNIT1JcIjogXCJJbmZvZ2EvcmVkaWdlcmEgYW5rYXJlXCIsXG4gICAgXCJUT09MVElQXCI6IFwiSW5mb2dhIGbDtnJrbGFyaW5nXCIsXG4gICAgXCJUSU1FU1RBTVBcIjogXCJJbnNlcnQgdGltZXN0YW1wXCIsXG4gICAgXCJBRERfVEVNUExBVEVcIjogXCJTa2FwYS/DhG5kcmEgaW5uZWjDpWxsc21hbGxhclwiLFxuICAgIFwiVEVNUExBVEVTXCI6IFwiSW5uZWjDpWxsc21hbGxhclwiLFxuICAgIFwiUkVNT1ZFX0ZPUk1BVFwiOiBcIlRhIGJvcnQgZm9ybWF0ZXJpbmdcIixcbiAgICBcIkZJTkRfQU5EX1JFUExBQ0VcIjogXCJTw7ZrIG9jaCBlcnPDpHR0XCIsXG4gICAgXCJGTE9XQ0hBUlRcIjogXCJMw6RnZyB0aWxsIGZsw7ZkZXNzY2hlbWFcIixcbiAgICBcIkJQTU5cIjogXCJBZmbDpHJzcHJvY2Vzc21vZGVsbCBvY2ggbm90YXRpb25cIixcbiAgICBcIkFCT1VUX0NLRURJVE9SXCI6IFwiT20gQ0tFZGl0b3JcIixcbiAgICBcIkNSRUFURV9UQUJMRV9PRl9DT05URU5UU1wiOiBcIlNrYXBhIGlubmVow6VsbHNmw7ZydGVja25pbmdcIixcbiAgICBcIlNPVVJDRVwiOiBcIkvDpGxsYVwiLFxuICAgIFwiVE9HR0xFX1RPT0xCQVJcIjogXCJCeXQgdmVya3R5Z3Nmw6RsdFwiLFxuICB9LFxuICBcIkFCT1VUXCI6IHtcbiAgICBcIkFCT1VUX0NLRURJVE9SXCI6IFwiT20gQ0tFZGl0b3JcIixcbiAgICBcIkNLRURJVE9SNV9WRVJTSU9OXCI6IFwiQ0tFZGl0b3IgNSB2ZXJzaW9uXCIsXG4gICAgXCJGT1JfTElDRU5TSU5HX0lORk9STUFUSU9OX1BMRUFTRV9WSVNJVF9PVVJfV0VCU0lURVwiOiBcIkbDtnIgbGljZW5zaW5mb3JtYXRpb24sIGJlc8O2ayB2w6VyIHdlYmJwbGF0c1wiLFxuICAgIFwiQUxMX1JJR0hUU19SRVNFUlZFRFwiOiBcIkFsbGEgcsOkdHRpZ2hldGVyIGbDtnJiZWjDpWxsbmFcIixcbiAgICBcIkNIRUNLXCI6IFwiU2VcIixcbiAgICBcIkZPUl9IRUxQXCI6IFwiZsO2ciBoasOkbHBcIixcbiAgICBcIkNLRURJVE9SX1VTRVJTX0dVSURFXCI6IFwiYW52w6RuZGFybWFudWFsZW4gZsO2ciBDS0VkaXRvclwiLFxuICAgIFwiQ09QWVJJR0hUXCI6IFwiVXBwaG92c3LDpHR0IMKpXCJcbiAgfSxcbiAgXCJCUE1OXCI6IHtcbiAgICBcIkRFRkFVTFRcIjogXCJTdGFuZGFyZFwiLFxuICAgIFwiVFlQRVwiOiBcIlR5cFwiLFxuICAgIFwiTkFNRVwiOiBcIk5hbW5cIixcbiAgICBcIkVYQ0xVU0lWRVwiOiBcIkV4a2x1c2l2XCIsXG4gICAgXCJJTkNMVVNJVkVcIjogXCJJbmtsdXNpdmVcIixcbiAgICBcIlBBUkFMTEVMXCI6IFwiUGFyYWxsZWxsXCIsXG4gICAgXCJBUFBFQVJBTkNFXCI6IFwiVXRzZWVuZGVcIixcbiAgICBcIkJPRFlfQ09MT1JcIjogXCJGw6RyZ1wiLFxuICAgIFwiVEVYVF9BTElHTk1FTlRcIjogXCJUZXh0cGxhY2VyaW5nXCIsXG4gICAgXCJMRUZUXCI6IFwiVsOkbnN0ZXJcIixcbiAgICBcIkNFTlRFUlwiOiBcIk1pdHRqdXN0ZXJhcmVcIixcbiAgICBcIlJJR0hUXCI6IFwiSMO2Z2VyXCIsXG4gICAgXCJGT05UX0ZBTUlMWVwiOiBcIkZvbnQtZmFtaWxqXCIsXG4gICAgXCJGT05UX1NJWkVcIjogXCJGb250c3Rvcmxla1wiLFxuICAgIFwiQ09OVEVOVFwiOiBcIklubmVow6VsbFwiLFxuICAgIFwiSUNPTlwiOiBcIklrb25cIixcbiAgICBcIk5PTkVcIjogXCJJbmdlblwiLFxuICAgIFwiTUVTU0FHRVwiOiBcIk1lZGRlbGFuZGVcIixcbiAgICBcIlVTRVJcIjogXCJBbnbDpG5kYXJlXCIsXG4gICAgXCJUQVNLXCI6IFwiVXBwZ2lmdFwiLFxuICAgIFwiVFJBTlNBQ1RJT05cIjogXCJUcmFuc2FrdGlvblwiLFxuICAgIFwiRVZFTlRfU1VCX1BST0NFU1NcIjogXCJldmVudC1zdWItcHJvY2Vzc1wiLFxuICAgIFwiQ0FMTF9BQ1RJVklUWVwiOiBcInNhbXRhbHNha3Rpdml0ZXRcIixcbiAgICBcIlNVQl9QUk9DRVNTXCI6IFwiU3ViLXByb2Nlc3NcIixcbiAgICBcIlNUQVJUXCI6IFwiU3RhcnRcIixcbiAgICBcIkVORFwiOiBcIlNsdXRcIixcbiAgICBcIklOVEVSTUVESUFURVwiOiBcIk1lbGxhbmxpZ2dhbmRlXCIsXG4gICAgXCJDQU5DRUxcIjogXCJBbm51bGxlcmFcIixcbiAgICBcIkNBTkNFTF9PVUxJTkVEXCI6IFwiQXZicnl0IHNraXNzZXJhZFwiLFxuICAgIFwiQ0FOQ0VMX0ZJTExFRFwiOiBcIkF2YnJ5dCBmeWxsZFwiLFxuICAgIFwiQ09NUEVOU0FUSU9OX09VTElORURcIjogXCJFcnPDpHR0bmluZyBza2lzc2VyYWRcIixcbiAgICBcIkNPTVBFTlNBVElPTl9GSUxMRURcIjogXCJFcnPDpHR0bmluZ2VuIGZ5bGxkXCIsXG4gICAgXCJDT05ESVRJT05BTFwiOiBcIlZpbGxrb3JsaWdcIixcbiAgICBcIkVSUk9SX09VTElORURcIjogXCJGZWwgYW5naXZldFwiLFxuICAgIFwiRVJST1JfRklMTEVEXCI6IFwiRmVsZXQgZnlsbHRcIixcbiAgICBcIkVTQ0FMQVRJT05fT1VMSU5FRFwiOiBcIkVza2FsZXJpbmcgZm9kcmFkXCIsXG4gICAgXCJFU0NBTEFUSU9OX0ZJTExFRFwiOiBcIkVza2FsZXJpbmcgZnlsbGRcIixcbiAgICBcIkxJTktfT1VMSU5FRFwiOiBcIkzDpG5ra29udHVyXCIsXG4gICAgXCJMSU5LX0ZJTExFRFwiOiBcIkzDpG5rZW4gZnlsbGRcIixcbiAgICBcIk1FU1NBR0VfT1VMSU5FRFwiOiBcIk1lZGRlbGFuZGV0IHNraXNzZXJhdFwiLFxuICAgIFwiTUVTU0FHRV9GSUxMRURcIjogXCJNZWRkZWxhbmRldCBmeWxsdFwiLFxuICAgIFwiTVVMVElQTEVfT1VMSU5FRFwiOiBcIkZsZXJhIHNraXNzZXJhZGVcIixcbiAgICBcIk1VTFRJUExFX0ZJTExFRFwiOiBcIkZsZXJhIGZ5bGxkYVwiLFxuICAgIFwiUEFSQUxMRUxfTVVMVElQTEVcIjogXCJQYXJhbGxlbGwgbXVsdGlwZWxcIixcbiAgICBcIlRFUk1JTkFUSU9OX09VTElORURcIjogXCJVcHBzw6RnbmluZyBza2lzc2VyYWRcIixcbiAgICBcIlRFUk1JTkFUSU9OX0ZJTExFRFwiOiBcIlVwcHPDpGduaW5nIGZ5bGxkXCIsXG4gICAgXCJUSU1FUlwiOiBcIlRpbWVyXCIsXG4gICAgXCJTSUdOQUxfT1VMSU5FRFwiOiBcIlNpZ25hbGVuIHNraXNzZXJhZFwiLFxuICAgIFwiU0lHTkFMX0ZJTExFRFwiOiBcIlNpZ25hbGVuIGZ5bGxkXCIsXG4gICAgXCJQQVJBTExFTF9PVUxJTkVEXCI6IFwiUGFyYWxsZWxsdCBrb250dXJcIixcbiAgICBcIlBBUkFMTEVMX0ZJTExFRFwiOiBcIlBhcmFsbGVsbHQgZnlsbGRcIixcbiAgICBcIlNVQl9UWVBFXCI6IFwiVW5kZXJ0eXBcIixcbiAgICBcIlRSQU5TUEFSRU5DWVwiOiBcIkdlbm9tc2tpbmxpZ2hldFwiLFxuICAgIFwiTEFCRUxcIjogXCJNw6Rya2FcIixcbiAgICBcIlRFWFRcIjogXCJUZXh0XCIsXG4gICAgXCJQT1NJVElPTlwiOiBcIlBsYWNlcmluZ1wiLFxuICAgIFwiTEFCRUxTXCI6IFwiRXRpa2V0dGVyXCIsXG4gICAgXCJOT1JNQUxcIjogXCJWYW5saWd0XCIsXG4gICAgXCJBU1NPQ0lBVElPTlwiOiBcIkFzc29jaWF0aW9uXCIsXG4gICAgXCJDT05WRVJTQVRJT05cIjogXCJLb252ZXJzYXRpb25cIixcbiAgICBcIlBBUlRJQ1BBTlRTXCI6IFwiRGVsdGFnYXJlXCIsXG4gICAgXCJJTklUSUFUSU5HX1BBUlRJQ0lQQU5UXCI6IFwiSW5pdGllcmFuZGUgZGVsdGFnYXJlXCIsXG4gICAgXCJQUklNQVJZX0NPTE9SXCI6IFwiSHV2dWRmw6RyZ1wiLFxuICAgIFwiU0VDT05EQVJZX0NPTE9SXCI6IFwiU2VrdW5kw6RyIGbDpHJnXCIsXG4gICAgXCJDQUxMLUNPTlZFUlNBVElPTlwiOiBcIlJpbmcgc2FtdGFsZXRcIixcbiAgICBcIkFERF9MQU5FU1wiOiBcIkzDpGdnIHRpbGwga8O2cmbDpGx0XCIsXG4gICAgXCJQRVJDRU5UQUdFXCI6IFwiUHJvY2VudHNhdHNcIixcbiAgICBcIkFERF9TVUJMQU5FU1wiOiBcIkzDpGdnIHRpbGwga8O2cmbDpGx0XCIsXG4gICAgXCJIRUFERVJfQ09MT1JcIjogXCJSdWJyaWtmw6RyZ1wiLFxuICAgIFwiTEFORV9CT0RZX0NPTE9SXCI6IFwiTGFuZSBCb2R5IENvbG9yXCIsXG4gICAgXCJMQU5FX0hFQURFUl9DT0xPUlwiOiBcIkZpbGh1dnVkZXRzIGbDpHJnXCIsXG4gICAgXCJPUEVOX0FfUFJJTlRfRElBTE9HXCI6IFwiw5ZwcG5hIGVuIHV0c2tyaWZ0c2RpYWxvZ3J1dGFcIixcbiAgICBcIk9QRU5fQVNfSlNPTlwiOiBcIsOWcHBuYSBzb20gSlNPTlwiLFxuICAgIFwiWk9PTV9JTlwiOiBcIlpvb21hIGluXCIsXG4gICAgXCJaT09NX09VVFwiOiBcIlpvb21hIHV0XCIsXG4gICAgXCJaT09NX1RPX0ZJVFwiOiBcIlpvb21hIGbDtnIgYXR0IHBhc3NhXCIsXG4gICAgXCJTRU5EX1RPX0ZST05UXCI6IFwiU2tpY2thIHRpbGwgZnJvbnRlblwiLFxuICAgIFwiQlJJTkdfT0JKRUNUX1RPX0ZST05UXCI6IFwiRmx5dHRhIG9iamVrdGV0IGZyYW3DpXQgdGlsbCBmcm9udGVuXCIsXG4gICAgXCJTRU5EX1RPX0JBQ0tcIjogXCJTa2lja2EgaSByeWdnZW5cIixcbiAgICBcIkJSSU5HX09CSkVDVF9UT19CQUNLXCI6IFwiRmx5dHRhIG9iamVrdGV0IGJha8OldFwiLFxuICAgIFwiQ0xFQVJfUEFQRVJcIjogXCJUw7ZtbWFcIixcbiAgICBcIlVORE9cIjogXCLDhW5ncmFcIixcbiAgICBcIlJFRE9cIjogXCJVcHByZXBhXCIsXG4gICAgXCJTRUxFQ1RfVEVNUExBVEVcIjogXCJWw6RsaiBtYWxsXCIsXG4gICAgXCJERUxFVEVfVEVNUExBVEVcIjogXCJUYSBib3J0IG1hbGxcIixcbiAgICBcIlNBVkVfQVNfVEVNUExBVEVcIjogXCJTcGFyYSBzb20gbWFsbFwiLFxuICAgIFwiUkVTRVRfVE9fTEFTVF9TQVZFXCI6IFwiU2zDpG5nIG9zcGFyYWRlIMOkbmRyaW5nYXJcIixcbiAgICBcIkdSSURfU0laRVwiOiBcIlJ1dG7DpHRzc3Rvcmxla1wiLFxuICAgIFwiQ0hBTkdFX0dSSURfU0laRVwiOiBcIsOkbmRyYSBydXRzdG9ybGVrXCIsXG4gICAgXCJTTkFQTElORVNcIjogXCJIasOkbHBsaW5qZXI6XCIsXG4gICAgXCJFTkFCTEVfRElTQUJMRV9TTkFQTElORVNcIjogXCJBa3RpdmVyYS9pbmFrdGl2ZXJhIGhqw6RscGxpbmplclwiLFxuICAgIFwiTElORV9DT0xPUlwiOiBcIkxpbmplZsOkcmdcIixcbiAgICBcIkJPRFlfTElORV9DT0xPUlwiOiBcIktyb3Bwc2xpbmplZsOkcmdcIixcbiAgICBcIlRZUEVfQ09MT1JcIjogXCJUeXAgRsOkcmdcIixcbiAgICBcIk1BUktFUlwiOiBcIk1hcmvDtnJlclwiLFxuICAgIFwiTUFSS0VSX0NPTE9SXCI6IFwiTWFya8O2cmVyIEbDpHJnXCIsXG4gICAgXCJUT1BfQ09MT1JcIjogXCJUb3BwZsOkcmdcIixcbiAgICBcIlRPUF9MSU5FX0NPTE9SXCI6IFwiVG9wIExpbmUgRsOkcmdcIixcbiAgICBcIkNPTExFQ1RJT05cIjogXCJTYW1saW5nXCIsXG4gICAgXCJDT0xMRUNUSU9OX0NPTE9SXCI6IFwiU2FtbGluZyBGw6RyZ1wiLFxuICAgIFwiU0laRVwiOiBcIlN0b3JsZWtcIixcbiAgICBcIkhFQURFUl9TSVpFXCI6IFwiUnVicmlrc3Rvcmxla1wiLFxuICAgIFwiSEVBREVSXCI6IFwiUnVicmlrXCIsXG4gICAgXCJIRUFERVJfU1RST0tFX0NPTE9SXCI6IFwiUnVicmlrZW5zIHN0cmVja2bDpHJnXCIsXG4gICAgXCJIRUFERVJfTEFCRUxfQ09MT1JcIjogXCJSdWJyaWtldGlrZXR0ZW5zIGbDpHJnXCIsXG4gICAgXCJMQU5FX1NUUk9LRV9DT0xPUlwiOiBcIkxhbmUgU3Ryb2tlIEbDpHJnXCIsXG4gICAgXCJMQU5FX0hFQURFUl9TVFJPS0VcIjogXCJMYW5lIEhlYWRlciBTdHJva2VcIixcbiAgICBcIkxBTkVfTEFCRUxfQ09MT1JcIjogXCJMYW5lIExhYmVsIEbDpHJnXCIsXG4gICAgXCJNSUxFU1RPTkVfSEVBREVSX0ZJTExcIjogXCJNaWxzdG9scGUgSGVhZGVyIEZ5bGxcIixcbiAgICBcIk1JTEVTVE9ORV9TVFJPS0VcIjogXCJNaWxzdG9scGUgU3Ryb2tlXCIsXG4gICAgXCJNSUxFU1RPTkVfTEFCRUxfQ09MT1JcIjogXCJNaWxzdG9scGUgZXRpa2V0dCBmw6RyZ1wiLFxuICAgIFwiTUlMRVNUT05FX0xJTkVfQ09MT1JcIjogXCJNaWxlc3RvbmUgTGluZSBDb2xvclwiLFxuICAgIFwiSEVBREVSX0FMSUdOTUVOVFwiOiBcIlJ1YnJpa2p1c3RlcmluZ1wiLFxuICAgIFwiSEVBREVSX0ZPTlRfRkFNSUxZXCI6IFwiSGVhZGVyIEZvbnQgZmFtaWxqXCIsXG4gICAgXCJIRUFERVJfRk9OVF9TSVpFXCI6IFwiSGVhZGVyIEZvbnQgc3Rvcmxla1wiLFxuICAgIFwiTEFORV9BTElHTk1FTlRcIjogXCJLw7ZyZsOkbHRzaW5yaWt0bmluZ1wiLFxuICAgIFwiTEFORV9GT05UX0ZBTUlMWVwiOiBcIkxhbmUgRm9udCBmYW1pbGpcIixcbiAgICBcIkxBTkVfRk9OVF9TSVpFXCI6IFwiTGFuZSBUZWNrZW5zdG9ybGVrXCIsXG4gICAgXCJNSUxFU1RPTkVfQUxJR05NRU5UXCI6IFwiTWlsc3RvbHBlanVzdGVyaW5nXCIsXG4gICAgXCJNSUxFU1RPTkVfRk9OVF9GQU1JTFlcIjogXCJNaWxlc3RvbmUgRm9udCBmYW1pbHlcIixcbiAgICBcIk1JTEVTVE9ORV9GT05UX1NJWkVcIjogXCJNaWxlc3RvbmUgRm9udCBmYW1pbHlcIixcbiAgICBcIlRFWFRfQ09MT1JcIjogXCJUZXh0IEZhcmdlXCIsXG4gICAgXCJURVhUX0hFQURFUl9DT0xPUlwiOiBcIkhlYWRlciBUZXh0IEZhcmdlXCIsXG4gICAgXCJURVhUX0JBQ0tHUk9VTkRfQ09MT1JcIjogXCJCYWtncnVuZCBUZXh0IEZhcmdlXCIsXG4gICAgXCJURVhUX0lOU0lERV9TSEFQRVwiOiBcIlZpcyB0ZXh0ZW4gaW5uaSBmaWd1clwiLFxuICAgIFwiVEVNUExBVEVfTkFNRVwiOiBcIk1hbG5hbW5cIixcbiAgICBcIlRFTVBMQVRFX0lORk9cIjogXCJWw6RubGlnZW4gc2tyaXYgZGl0dCBuYW1uXCIsXG4gICAgXCJTRUxFQ1RfVEVNUExBVEVfSU5GT1JNQVRJT05cIjogXCJEdSBtw6UgdsOkbGphIGVuIG1hbGVuIGlubmFuIGR1IHV0ZsO2ciBkZW5uYSBoYW5kbGluZy5cIixcbiAgICBcIkNPTk5FQ1RJT05cIjogXCJGw7ZyYmluZGVsc2VcIixcbiAgICBcIlBST1BFUlRJRVNcIjogXCJFZ2Vuc2thcGVyXCIsXG4gICAgXCJCVVNJTkVTU19QUk9DRVNTX01PREVMX0FORF9OT1RBVElPTlwiOiBcIkFmZsOkcnNwcm9jZXNzbW9kZWxsIG9jaCBub3RhdGlvblwiLFxuICAgIFwiQ09OTkVDVEVEX0FUVEFDSE1FTlRcIjogXCJCaWZvZ2FkIGJpbGFnYVwiLFxuICAgIFwiQ09OTkVDVEVEX0RPQ1VNRU5UX09SX1BST0NFU1NcIjogXCJMw6Rua2FkZSBkb2t1bWVudGV0L3Byb2Nlc3NlblwiLFxuICAgIFwiREVMRVRFX0FUVEFDSE1FTlRcIjogXCJUYSBib3J0IGJpbGFnb3JcIixcbiAgICBcIkRFTEVURV9ET0NVTUVOVF9PUl9QUk9DRVNTXCI6IFwiVGEgYm9ydCBkb2t1bWVudGV0L3Byb2Nlc3NlblwiLFxuICAgIFwiQ0hPT1NFX0FOQ0hPUl9JTl9URVhUX09QVElPTkFMXCI6IFwiVsOkbGogYW5rYXJlIGkgdGV4dCAodmFsZnJpdHQpXCIsXG4gICAgXCJSRUxPQURfQU5DSE9SU1wiOiBcIkxhZGRhIG9tIGFua2FyZVwiLFxuICAgIFwiUkVTRVRfVE9fT1JJR0lOQUxcIjogXCJJZ25vcmVyYSDDpG5kcmluZ2FyXCIsXG4gICAgXCJBVVRPX0xBWU9VVF9HUkFQSFwiOiBcIkF1dG8tbGF5b3V0IGdyYWZcIixcbiAgICBcIkZVTExTQ1JFRU5cIjogXCJIZWxza8Okcm1zdmlzbmluZ1wiLFxuICAgIFwiRkxPV0NIQVJUXCI6IFwiRmzDtmRlc3NjaGVtYVwiLFxuICAgIFwiSEFOREJPT0tcIjogXCJlLWhhbmRib2tcIixcbiAgICBcIlRPR0dMRV9GVUxMX1NDUkVFTlwiOiBcIlbDpHhsYSBtZWxsYW4gaGVsc2vDpHJtXCIsXG4gIH0sXG4gIFwiUU1TQ0tFRElUT1JfTUVTU0FHRVwiOiB7XG4gICAgXCJDT05GSVJNX0RFTEVURV9URU1QTEFURVwiOiBcIsOEciBkdSBzw6RrZXIgcMOlIGF0dCBkdSB2aWxsIHRhIGJvcnQgZGVuIGjDpHIgbWFsbGVuPz9cIixcbiAgICBcIkNPTkZJUk1fQ0hBTkdFX1RFTVBMQVRFXCI6IFwiw4RyIGR1IHPDpGtlciBww6UgYXR0IGR1IHZpbGwgYW52w6RuZGEgZGVuIGjDpHIgbWFsbGVuIGkgcmVkaWdlcmFyZW4/P1wiLFxuICAgIFwiQ09ORklSTV9ERUxFVEVfRVhJU1RJTkdfQ09OTkVDVElPTlwiOiBcIkR1IG3DpXN0ZSB0YSBib3J0IGRlbiBiZWZpbnRsaWdhIGFuc2x1dG5pbmdlbiBpbm5hbiBkdSB1dGbDtnIgZGVuIGjDpHIgw6V0Z8OkcmRlbi5cIixcbiAgICBcIkNPTkZJUk1fREVMRVRFX0FUVEFDSE1FTlRcIjogXCLDhHIgZHUgc8Oka2VyIHDDpSBhdHQgZHUgdmlsbCB0YSBib3J0IGRlbiBow6RyIGzDpG5rZW4/XCIsXG4gICAgXCJDT05GSVJNX0RFTEVURV9ET0NVTUVOVF9PUl9QUk9DRVNTXCI6IFwiw4RyIGR1IHPDpGtlciBww6UgYXR0IGR1IHZpbGwgdGEgYm9ydCBkZXQgaMOkciBkb2t1bWVudGV0L3Byb2Nlc3Nlbj9cIixcbiAgfSxcbiAgXCJGTE9XQ0hBUlRcIjoge1xuICAgIFwiUkVNT1ZFX0VMRU1FTlRcIjogJ0tsaWNrYSBmw7ZyIGF0dCB0YSBib3J0IG9iamVrdGV0JyxcbiAgICBcIkNMT05FX0FORF9DT05ORUNUXCI6ICdLbGlja2Egb2NoIGRyYSBmw7ZyIGF0dCBrbG9uYSBvY2ggYmlmb2dhIG9iamVrdGV0IHDDpSBlbiBnw6VuZycsXG4gICAgXCJDTE9ORVwiOiAnS2xpY2thIG9jaCBkcmEgZsO2ciBhdHQga2xvbmEgb2JqZWt0ZXQnLFxuICAgIFwiQlJFQUtfQUxMX0NPTk5FQ1RJT05TXCI6ICdLbGlja2EgZsO2ciBhdHQgYnJ5dGEgYWxsYSBrb3BwbGluZ2FyIHRpbGwgYW5kcmEgb2JqZWt0JyxcbiAgICBcIkNPTk5FQ1RcIjogJ0tsaWNrYSBvY2ggZHJhIGbDtnIgYXR0IGFuc2x1dGEgdGlsbCBvYmpla3RldCcsXG4gICAgXCJST1RBVEVcIjogJ0tsaWNrYSBvY2ggZHJhIGbDtnIgYXR0IHJvdGVyYSBvYmpla3RldCcsXG4gICAgXCJSRU1PVkVfU0VMRUNURURfRUxFTUVOVFwiOiAnS2xpY2thIGbDtnIgYXR0IHRhIGJvcnQgZGUgbWFya2VyYWRlIG9iamVrdGVuJyxcbiAgICBcIlJPVEFURV9TRUxFQ1RFRF9FTEVNRU5UXCI6ICdLbGlja2Egb2NoIGRyYSBmw7ZyIGF0dCByb3RlcmEgZGUgbWFya2VyYWRlIG9iamVrdGVuJyxcbiAgICBcIlJFU0laRV9TRUxFQ1RFRF9FTEVNRU5UXCI6ICdLbGlja2Egb2NoIGRyYSBmw7ZyIGF0dCDDpG5kcmEgc3RvcmxlayBww6UgZGUgbWFya2VyYWRlIG9iamVrdGVuJyxcbiAgICBcIlJFQ1RBTkdMRVwiOiAnUmVrdGFuZ2VsJyxcbiAgICBcIkVMTElQU0VcIjogJ0VsbGlwcycsXG4gICAgXCJSRUNUQU5HTEVfV0lUSF9QT1JUU1wiOiAnUmVrdGFuZ2VsIG1lZCBncmluZGFyJyxcbiAgICBcIkVMTElQU0VfV0lUSF9QT1JUU1wiOiAnRWxsaXBzIG1lZCBncmluZGFyJyxcbiAgICBcIlJIT01CVVNcIjogJ1JvbWInLFxuICAgIFwiQ1lMSU5ERVJcIjogJ1N5bGluZGVyJyxcbiAgICBcIklNQUdFXCI6ICdCaWxkJyxcbiAgICBcIkNBUkRcIjogJ0tvcnQnLFxuICAgIFwiSUNPTlwiOiAnSWtvbicsXG4gICAgXCJSRUNUQU5HTEVfV0lUSF9IRUFERVJcIjogJ1Jla3RhbmdlbCBtZWQgcnVicmlrJyxcbiAgICBcIlNUQVJUX1NUQVRFXCI6ICdJbml0aWFsIHN0YXR1cycsXG4gICAgXCJFTkRfU1RBVEVcIjogJ1NsdXRsw6RnZScsXG4gICAgXCJTVEFURVwiOiAnU3RhdCcsXG4gICAgXCJQTEFDRVwiOiAnUGxhdHMnLFxuICAgIFwiVFJBTlNJVElPTlwiOiAnw5Z2ZXJnw6VuZycsXG4gICAgXCJFTlRJVFlcIjogJ0VudGl0ZXQnLFxuICAgIFwiV0VBS19FTlRJVFlcIjogJ1N2YWcgZW5oZXQnLFxuICAgIFwiUkVMQVRJT05TSElQXCI6ICdSZWxhdGlvbicsXG4gICAgXCJJREVOVElGWUlOR19SRUxBVElPTlNISVBcIjogJ0lkZW50aWZpZXJhIHZpbGxrb3InLFxuICAgIFwiSVNBXCI6ICdJU0EnLFxuICAgIFwiS0VZXCI6ICdOeWNrZWwnLFxuICAgIFwiTk9STUFMXCI6ICdWYW5saWd0JyxcbiAgICBcIk1VTFRJVkFMVUVEXCI6ICdGbGVydsOkcmRpZ3QnLFxuICAgIFwiREVSSVZFRFwiOiAnSMOkcmxlZGQnLFxuICAgIFwiQ0xBU1NcIjogJ0tsYXNzJyxcbiAgICBcIklOVEVSRkFDRVwiOiAnR3LDpG5zc25pdHQnLFxuICAgIFwiQUJTVFJBQ1RcIjogJ0Fic3RyYWt0JyxcbiAgICBcIk1FTUJFUlwiOiAnTWVkbGVtJyxcbiAgICBcIlVORE9cIjogJ8OFbmdyYScsXG4gICAgXCJSRURPXCI6ICdGw7Zyw6RuZHJhJyxcbiAgICBcIkNMRUFSX1BBUEVSXCI6ICdUb210IHBhcHBlcicsXG4gICAgXCJFWFBPUlRfU1ZHXCI6ICfDlnBwbmEgc29tIFNWRyBpIGVuIHBvcHVwJyxcbiAgICBcIkVYUE9SVF9QTkdcIjogJ8OWcHBuYSBzb20gUE5HIGkgZW4gcG9wdXAnLFxuICAgIFwiUFJJTlRcIjogJ8OFcG5lIGVuIHV0c2tyaWZ0c2RpYWxvZ2Jva3MnLFxuICAgIFwiU0VORF9UT19GUk9OVFwiOiAnVGEgZnJhbSBmw7ZyZW3DpWxldCcsXG4gICAgXCJTRU5EX1RPX0JBQ0tcIjogJ1NraWNrYSBvYmpla3QgdGlsbCBiYWtzaWRhbicsXG4gICAgXCJBVVRPX0xBWU9VVF9HUkFQSFwiOiAnQXV0by1sYXlvdXQgZ3JhZicsXG4gICAgXCJaT09NX1RPX0ZJVFwiOiAnWm9vbWEgZsO2ciBhdHQgcGFzc2EnLFxuICAgIFwiWk9PTV9PVVRcIjogJ1pvb21hIHV0JyxcbiAgICBcIlpPT01fSU5cIjogJ1pvb21hIGluJyxcbiAgICBcIkNIQU5HRV9HUklEX1NJWkVcIjogJ8OEbmRyYSBydXRuw6R0c3N0b3JsZWsnLFxuICAgIFwiU05BUExJTkVTXCI6ICfDhG5kcmEgcnV0bsOkdHNzdG9ybGVrJyxcbiAgICBcIkZVTExTQ1JFRU5cIjogJ1bDpHhsYSBoZWxza8Okcm1zbMOkZ2UnLFxuICAgIFwiU0VMRUNUX1RFTVBMQVRFXCI6IFwiVsOkbGogbWFsbFwiLFxuICAgIFwiREVMRVRFX1RFTVBMQVRFXCI6IFwiVGEgYm9ydCBtYWxsXCIsXG4gICAgXCJTQVZFX0FTX1RFTVBMQVRFXCI6IFwiU3BhcmEgc29tIG1hbGxcIixcbiAgICBcIlJFU0VUX1RPX0xBU1RfU0FWRVwiOiBcIlNsw6RuZyBvc3BhcmFkZSDDpG5kcmluZ2FyXCIsXG4gICAgXCJQTEFDRV9ORVhUX1RPXCI6IFwiUGxhY2VyYSBicmVkdmlkXCIsXG4gICAgXCJQTEFDRV9VTkRFUlwiOiBcIlBsYWNlcmEgdW5kZXJcIixcbiAgfVxufVxuIl19
|
@@ -135,9 +135,6 @@ export class QMSCKEditorComponent extends QMSCKEditorBaseComponent {
|
|
135
135
|
}
|
136
136
|
}
|
137
137
|
ngOnDestroy() {
|
138
|
-
if (this.editorInstance) {
|
139
|
-
this.editorInstance.destroy();
|
140
|
-
}
|
141
138
|
$(document).off();
|
142
139
|
}
|
143
140
|
registerOnChange(fn) {
|
@@ -739,4 +736,4 @@ QMSCKEditorComponent.propDecorators = {
|
|
739
736
|
qmsckContentOutput: [{ type: Output }],
|
740
737
|
onMessage: [{ type: HostListener, args: ["window:message", ["$event"],] }]
|
741
738
|
};
|
742
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicW1zLWNrZWRpdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Ftcy1hbmd1bGFyL3NyYy9saWIvcW1zLWNrZWRpdG9yLWNvbXBvbmVudHMvcW1zLWNrZWRpdG9yLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0wsT0FBTyxFQUFlLGFBQWEsRUFBRSxpQkFBaUIsRUFBYSxNQUFNLGdCQUFnQixDQUFDO0FBQzFGLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDbkYsT0FBTyxFQUFFLGdCQUFnQixFQUEwQixNQUFNLG1DQUFtQyxDQUFDO0FBQzdGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQy9FLE9BQU8sdUJBQXVCLE1BQU0sb0NBQW9DLENBQUM7QUFHekUsT0FBTyxlQUFlLE1BQU0sd0NBQXdDLENBQUM7QUFDckUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sNERBQTRELENBQUM7QUFDdEcsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sd0VBQXdFLENBQUM7QUFDeEgsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sb0VBQW9FLENBQUM7QUFDbEgsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sNERBQTRELENBQUM7QUFDdEcsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sOEVBQThFLENBQUM7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U3RyYXRlZ3ksIENvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBmb3J3YXJkUmVmLCBIb3N0TGlzdGVuZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCwgUmVuZGVyZXIyLCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIE5HX1ZBTElEQVRPUlMsIE5HX1ZBTFVFX0FDQ0VTU09SLCBWYWxpZGF0b3IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgVHJhbnNsYXRlTGlicmFyeVNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy90cmFuc2xhdGlvbi1yZWdpc3RyeS5zZXJ2aWNlJztcbmltcG9ydCB7IFFtc1VwbG9hZEFkYXB0ZXIsIFFtc1VwbG9hZEFkYXB0ZXJDb25maWcgfSBmcm9tICcuL2NvbW1vbi9jbGFzc2VzL3Ftc1VwbG9hZEFkYXB0ZXInO1xuaW1wb3J0IHsgQ0tFZGl0b3JFdmVudENvbnN0IH0gZnJvbSAnLi9jb21tb24vY29uc3RhbnRzL2NrZWRpdG9yRXZlbnQuY29uc3RhbnQnO1xuaW1wb3J0IENLRWRpdG9yQ29tbW9uRnVuY3Rpb25zIGZyb20gJy4vY29tbW9uL2Z1bmN0aW9ucy9jb21tb24uZnVuY3Rpb24nO1xuaW1wb3J0IHsgUU1TQ0tFZGl0b3JEYXRhIH0gZnJvbSAnLi9jb21tb24vbW9kZWxzL3Ftcy1ja2VkaXRvci1kYXRhLm1vZGVsJztcbmltcG9ydCB7IFFNU0NLRWRpdG9yUGx1Z2luIH0gZnJvbSAnLi9jb21tb24vbW9kZWxzL3Ftcy1ja2VkaXRvci1wbHVnaW4ubW9kZWwnO1xuaW1wb3J0IFFNU0NLRWRpdG9yTGluayBmcm9tICcuL2NvbW1vbi9tb2RlbHMvcW1zLWNrZWRpdG9yLXVybC5tb2RlbCc7XG5pbXBvcnQgeyBRTVNDS0VkaXRvckJwbW5Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcW1zLWNrZWRpdG9yLWJwbW4vcW1zLWNrZWRpdG9yLWJwbW4uY29tcG9uZW50JztcbmltcG9ydCB7IFFNU0NLRWRpdG9yRnVsbHNjcmVlbkNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9xbXMtY2tlZGl0b3ItZnVsbHNjcmVlbi9xbXMtY2tlZGl0b3ItZnVsbHNjcmVlbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgUU1TQ0tFZGl0b3JJbWFnZU1hcENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9xbXMtY2tlZGl0b3ItaW1hZ2VtYXAvcW1zLWNrZWRpdG9yLWltYWdlbWFwLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBRTVNDS0VkaXRvckxpbmtDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcW1zLWNrZWRpdG9yLWxpbmsvcW1zLWNrZWRpdG9yLWxpbmsuY29tcG9uZW50JztcbmltcG9ydCB7IFFNU0NLRWRpdG9yTG9hZFRlbXBsYXRlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3Ftcy1ja2VkaXRvci1sb2FkLXRlbXBsYXRlL3Ftcy1ja2VkaXRvci1sb2FkLXRlbXBsYXRlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBRTVNDS0VkaXRvclRlbXBsYXRlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3Ftcy1ja2VkaXRvci10ZW1wbGF0ZS9xbXMtY2tlZGl0b3ItdGVtcGxhdGUuY29tcG9uZW50JztcbmltcG9ydCB7IFFNU0NLRWRpdG9yVG9vbHRpcENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9xbXMtY2tlZGl0b3ItdG9vbHRpcC9xbXMtY2tlZGl0b3ItdG9vbHRpcC5jb21wb25lbnQnO1xuaW1wb3J0IHsgUU1TQ0tFZGl0b3JJbWFnZU1hcCB9IGZyb20gJy4vbW9kZWxzL3Ftcy1ja2VkaXRvci1pbWFnZW1hcC5tb2RlbCc7XG5pbXBvcnQgeyBRTVNDS0VkaXRvclRlbXBsYXRlIH0gZnJvbSAnLi9tb2RlbHMvcW1zLWNrZWRpdG9yLXRlbXBsYXRlLm1vZGVsJztcbmltcG9ydCB7IFFNU0NLRWRpdG9yVG9vbHRpcCB9IGZyb20gJy4vbW9kZWxzL3Ftcy1ja2VkaXRvci10b29sdGlwLm1vZGVsJztcbmltcG9ydCB7IFFNU0NLRWRpdG9yQmFzZUNvbXBvbmVudCB9IGZyb20gJy4vcW1zLWNrZWRpdG9yLWJhc2UuY29tcG9uZW50JztcbmltcG9ydCB7IFFNU0NLRWRpdG9yR2xvYmFsU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvcW1zLWNrZWRpdG9yLWdsb2JhbC5zZXJ2aWNlJztcbmltcG9ydCB7IFFNU0NLRWRpdG9yQWJvdXRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcW1zLWNrZWRpdG9yLWFib3V0L3Ftcy1ja2VkaXRvci1hYm91dC5jb21wb25lbnQnO1xuLy8gaW1wb3J0IHsgQ0tFZGl0b3I1IH0gZnJvbSAnQGNrZWRpdG9yL2NrZWRpdG9yNS1hbmd1bGFyL2NrZWRpdG9yJztcbmltcG9ydCB7IFFNU0NLRWRpdG9yQnBtbkRhdGEgfSBmcm9tIFwiLi9tb2RlbHMvcW1zLWNrZWRpdG9yLWJwbW4tZGF0YS5tb2RlbFwiO1xuaW1wb3J0IHsgUG9wdXBEYXRhIH0gZnJvbSBcIi4uL2NvbXBvbmVudHMvcmVsYXRlZC9tb2RlbC9wb3B1cC1kYXRhLm1vZGVsXCI7XG5pbXBvcnQgeyBSZWxhdGVkUG9wdXBDb21wb25lbnQgfSBmcm9tIFwiLi4vY29tcG9uZW50cy9yZWxhdGVkL3BvcHVwL3JlbGF0ZWQtcG9wdXAuY29tcG9uZW50XCI7XG5pbXBvcnQgeyBRTVNDS0VkaXRvclRyZWVTZXJ2aWNlIH0gZnJvbSBcIi4vc2VydmljZXMvcW1zLWNrZWRpdG9yLXRyZWUuc2VydmljZVwiO1xuaW1wb3J0IHsgUU1TQ0tFZGl0b3JGbG93Y2hhcnRDb21wb25lbnQgfSBmcm9tIFwiLi9jb21wb25lbnRzL3Ftcy1ja2VkaXRvci1mbG93Y2hhcnQvcW1zLWNrZWRpdG9yLWZsb3djaGFydC5jb21wb25lbnRcIjtcbmltcG9ydCB7IFFtc0NrZWRpdG9yTGlua1NpbXBsZUNvbXBvbmVudCB9IGZyb20gXCIuL2NvbXBvbmVudHMvcW1zLWNrZWRpdG9yLWxpbmstc2ltcGxlL3Ftcy1ja2VkaXRvci1saW5rLXNpbXBsZS5jb21wb25lbnRcIjtcbmltcG9ydCB7IENLRWRpdG9ySW1hZ2VVcGxvYWRUeXBlQ29uc3QgfSBmcm9tICcuL2NvbW1vbi9jb25zdGFudHMvY2tlZGl0b3JJbWFnZVVwbG9hZFR5cGUuY29uc3QnO1xuaW1wb3J0IHsgVmlkZW9VcGxvYWRNb2RlIH0gZnJvbSAnLi9jb21tb24vZW51bXMvdmlkZW8tdXBsb2FkLW1vZGUuZW51bSc7XG5pbXBvcnQgeyBRTVNDS0VkaXRvclZpZGVvIH0gZnJvbSAnLi9tb2RlbHMvcW1zLWNrZWRpdG9yLXZpZGVvLm1vZGVsJztcbmltcG9ydCB7IFZpZGVvQ29uc3QgfSBmcm9tICcuLi9jb21wb25lbnRzL3JlbGF0ZWQvY29tbW9uL3ZpZGVvLmNvbnN0JztcbmltcG9ydCB7IERhdGFUeXBlIH0gZnJvbSAnLi4vY29tbW9uL2VudW0vZGF0YS10eXBlLmVudW0nO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogXCJxbXMtY2tlZGl0b3JcIixcbiAgICB0ZW1wbGF0ZVVybDogXCIuL3Ftcy1ja2VkaXRvci5jb21wb25lbnQuaHRtbFwiLFxuICAgIHN0eWxlVXJsczogW1wiLi9xbXMtY2tlZGl0b3IuY29tcG9uZW50LnNjc3NcIl0sXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIFFNU0NLRWRpdG9yRnVsbHNjcmVlbkNvbXBvbmVudCxcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBRTVNDS0VkaXRvckNvbXBvbmVudCksXG4gICAgICAgICAgICBtdWx0aTogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogTkdfVkFMSURBVE9SUyxcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFFNU0NLRWRpdG9yQ29tcG9uZW50KSxcbiAgICAgICAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgICB9LFxuICAgIF0sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgUU1TQ0tFZGl0b3JDb21wb25lbnRcbiAgICBleHRlbmRzIFFNU0NLRWRpdG9yQmFzZUNvbXBvbmVudFxuICAgIGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0LCBWYWxpZGF0b3Ige1xuICAgIEBJbnB1dCgpIHFtc2NrRGF0YTogUU1TQ0tFZGl0b3JEYXRhO1xuICAgIEBJbnB1dCgpIHFtc2NrUGx1Z2luOiBRTVNDS0VkaXRvclBsdWdpbjtcbiAgICBASW5wdXQoKSBxbXNja0NvbnRlbnRJbnB1dDogc3RyaW5nO1xuICAgIEBJbnB1dCgpIHFtc2NrQ29udGVudEZpZWxkcz86IFtdO1xuICAgIEBJbnB1dCgpIHFtc2NrSXNHZXRBbmNob3JNb3JlQ29udGVudD86IGJvb2xlYW47XG4gICAgQElucHV0KCdkaXNhYmxlZCcpIGlzRGlzYWJsZWQ6IGJvb2xlYW47XG4gICAgQElucHV0KCdyZXF1aXJlZCcpIHJlcXVpcmVkOiBib29sZWFuID0gZmFsc2U7XG4gICAgQElucHV0KCkgZWRpdG9ySWQgPSAncW1zY2tlZGl0b3InO1xuICAgIEBPdXRwdXQoKSBxbXNja0NvbnRlbnRPdXRwdXQ6IEV2ZW50RW1pdHRlcjxzdHJpbmc+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgTEFORzogYW55O1xuICAgIGNrRWRpdG9yOiBhbnk7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIGNrZWRpdG9yQ29uZmlnOiBhbnk7XG4gICAgY2tFZGl0b3JFdmVudENvbnN0ID0gQ0tFZGl0b3JFdmVudENvbnN0O1xuICAgIGNvdW50V29yZDogbnVtYmVyO1xuICAgIGNvdW50Q2hhcjogbnVtYmVyO1xuICAgIGVkaXRvckluc3RhbmNlOiBhbnk7XG4gICAgY2tUYWduYW1lOiBzdHJpbmc7XG4gICAgdG9vbGJhckl0ZW1QcmVmaXhJZDogc3RyaW5nO1xuICAgIGlzVG9vbGJhckl0ZW1zSWRTZXQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBsYW5ndWFnZTogc3RyaW5nID0gJ2VuJztcbiAgICBASG9zdExpc3RlbmVyKFwid2luZG93Om1lc3NhZ2VcIiwgW1wiJGV2ZW50XCJdKVxuICAgIG9uTWVzc2FnZShldmVudCkge1xuICAgICAgICBzd2l0Y2ggKGV2ZW50LmRhdGEuZXZlbnROYW1lKSB7XG4gICAgICAgICAgICBjYXNlIHRoaXMuY2tFZGl0b3JFdmVudENvbnN0LlFNU0NLX1RFTVBMQVRFX1BMVUdJTl9NU0cgKyB0aGlzLmVkaXRvckluc3RhbmNlLmlkOlxuICAgICAgICAgICAgICAgIHRoaXMudGVtcGxhdGVFdmVudEhhbmRsaW5nKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIHRoaXMuY2tFZGl0b3JFdmVudENvbnN0LlFNU0NLX0xPQURfVEVNUExBVEVfUExVR0lOX01TRyArIHRoaXMuZWRpdG9ySW5zdGFuY2UuaWQ6XG4gICAgICAgICAgICAgICAgdGhpcy5sb2FkVGVtcGxhdGVFdmVudEhhbmRsaW5nKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIHRoaXMuY2tFZGl0b3JFdmVudENvbnN0LlFNU0NLX0xJTktfUExVR0lOX01TRyArIHRoaXMuZWRpdG9ySW5zdGFuY2UuaWQ6XG4gICAgICAgICAgICAgICAgdGhpcy5saW5rRXZlbnRIYW5kbGluZyhcbiAgICAgICAgICAgICAgICAgICAgZXZlbnQuZGF0YS52YWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5xbXNja0NvbnRlbnRGaWVsZHMsXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucW1zY2tJc0dldEFuY2hvck1vcmVDb250ZW50XG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgdGhpcy5ja0VkaXRvckV2ZW50Q29uc3QuUU1TQ0tfVE9PTFRJUF9QTFVHSU5fTVNHICsgdGhpcy5lZGl0b3JJbnN0YW5jZS5pZDpcbiAgICAgICAgICAgICAgICB0aGlzLnRvb2x0aXBFdmVudEhhbmRsaW5nKGV2ZW50LmRhdGEudmFsdWUpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSB0aGlzLmNrRWRpdG9yRXZlbnRDb25zdC5RTVNDS19JTUFHRU1BUF9QTFVHSU5fTVNHICsgdGhpcy5lZGl0b3JJbnN0YW5jZS5pZDpcbiAgICAgICAgICAgICAgICB0aGlzLmltYWdlTWFwRXZlbnRIYW5kbGluZyhldmVudC5kYXRhLnZhbHVlKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgdGhpcy5ja0VkaXRvckV2ZW50Q29uc3QuUU1TQ0tfQlBNTl9QTFVHSU5fTVNHICsgdGhpcy5lZGl0b3JJbnN0YW5jZS5pZDpcbiAgICAgICAgICAgICAgICB0aGlzLmJwbW5FdmVudEhhbmRsaW5nKGV2ZW50LmRhdGEudmFsdWUpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSB0aGlzLmNrRWRpdG9yRXZlbnRDb25zdC5RTVNDS19BQk9VVF9DS0VESVRPUl9QTFVHSU5fTVNHICsgdGhpcy5lZGl0b3JJbnN0YW5jZS5pZDpcbiAgICAgICAgICAgICAgICB0aGlzLmFib3V0Q0tFZGl0b3JFdmVudEhhbmRsaW5nKGV2ZW50LmRhdGEudmFsdWUpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSB0aGlzLmNrRWRpdG9yRXZlbnRDb25zdC5RTVNDS19GTE9XQ0hBUlRfUExVR0lOX01TRyArIHRoaXMuZWRpdG9ySW5zdGFuY2UuaWQ6XG4gICAgICAgICAgICAgICAgdGhpcy5mbG93Y2hhcnRFdmVudEhhbmRsaW5nKGV2ZW50LmRhdGEudmFsdWUpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSB0aGlzLmNrRWRpdG9yRXZlbnRDb25zdC5RTVNDS19UT0dHTEVfVE9PTEJBUl9NU0cgKyB0aGlzLmVkaXRvckluc3RhbmNlLmlkOlxuICAgICAgICAgICAgICAgIHRoaXMudG9nZ2xlVG9vbGJhckV2ZW50SGFuZGxpbmcoKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgdGhpcy5ja0VkaXRvckV2ZW50Q29uc3QuUU1TQ0tfQlJPV1NFX1ZJREVPX01TRyArIHRoaXMuZWRpdG9ySW5zdGFuY2UuaWQ6XG4gICAgICAgICAgICAgICAgdGhpcy5icm93c2VWaWRlb0V2ZW50SGFuZGxpbmcoZXZlbnQuZGF0YS52YWx1ZSk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ29uc3RydWN0b3JcbiAgICAgKi9cblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGRpYWxvZzogTWF0RGlhbG9nLFxuICAgICAgICBwcml2YXRlIHRyYW5zbGF0ZTogVHJhbnNsYXRlTGlicmFyeVNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgZ2xvYmFsU2VydmljZTogUU1TQ0tFZGl0b3JHbG9iYWxTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHRyZWVTZXJ2aWNlOiBRTVNDS0VkaXRvclRyZWVTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHFtc0NLRWRpdG9yRnVsbHNjcmVlbkNvbXBvbmVudDogUU1TQ0tFZGl0b3JGdWxsc2NyZWVuQ29tcG9uZW50LFxuICAgICAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgICAgIHByaXZhdGUgZWxSZWY6IEVsZW1lbnRSZWZcbiAgICApIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5ja1RhZ25hbWUgPSBcImRpdlwiO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnRvb2xiYXJJdGVtUHJlZml4SWQgPSBgJHt0aGlzLmVkaXRvcklkfV90b29sYmFyX2l0ZW1fYDtcbiAgICAgICAgdGhpcy5uYW1lID0gJ0NLRWRpdG9yIGN1c3RvbSBidWlsZCc7XG4gICAgICAgIHRoaXMuY2tFZGl0b3IgPSB0aGlzLnFtc2NrUGx1Z2luLnBsdWdpbk9iamVjdDtcbiAgICAgICAgdGhpcy50cmFuc2xhdGUuZ2V0TGFuZ3VhZ2VTdWJqZWN0JC5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJjcmliZSkpLnN1YnNjcmliZSgocmVzKSA9PiB7XG4gICAgICAgICAgICBpZiAocmVzKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5sYW5ndWFnZSA9IHJlcztcbiAgICAgICAgICAgICAgICB0aGlzLkxBTkcgPSB0aGlzLnRyYW5zbGF0ZS5nZXRPYmplY3RMYW5nKHJlcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICBsZXQgdG9vbGJhckl0ZW1zID0gdGhpcy5xbXNja1BsdWdpbi5pdGVtVG9vbGJhcjtcbiAgICAgICAgaWYgKHRoaXMuaXNFbmFibGVkVG9nZ2xlVG9vbGJhcigpICYmIHRoaXMucW1zY2tEYXRhLnRvZ2dsZWRUb29sYmFySXRlbXMpIHtcbiAgICAgICAgICAgIC8vIGxldCBzdHJUb29sYmFycyA9IHRoaXMucW1zY2tEYXRhLnRvZ2dsZWRUb29sYmFySXRlbXMucmVwbGFjZSgvcW1zRmxvd2NoYXJ0LC9nLCBcIlwiKTtcbiAgICAgICAgICAgIGxldCBzdHJUb29sYmFycyA9IHRoaXMucW1zY2tEYXRhLnRvZ2dsZWRUb29sYmFySXRlbXM7XG4gICAgICAgICAgICBpZiAoIXRoaXMucW1zY2tEYXRhLmVuYWJsZVRlbXBsYXRlKSB7XG4gICAgICAgICAgICAgICAgc3RyVG9vbGJhcnMgPSBzdHJUb29sYmFycy5yZXBsYWNlKC9xbXNUZW1wbGF0ZSwvZywgXCJcIik7IC8vIGRpc2FibGUgcW1zVGVtcGxhdGUgaWYgdXNlciBkb24ndCBoYXZlIGhhbmRib29rQWRtaW4gUm9sZVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCF0aGlzLnFtc2NrRGF0YS52aWRlb1VwbG9hZE1vZGUpIHtcbiAgICAgICAgICAgICAgICBzdHJUb29sYmFycyA9IHN0clRvb2xiYXJzLnJlcGxhY2UoL3ZpZGVvVXBsb2FkLC9nLCBcIlwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRvb2xiYXJJdGVtcyArPSAnLCcgKyBzdHJUb29sYmFyczsgLy8gZGlzYWJsZSBxbXNGbG93Y2hhcnQgdW50aWwgTkstNDQwIGRvbmVcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmNrZWRpdG9yQ29uZmlnID0gQ0tFZGl0b3JDb21tb25GdW5jdGlvbnMuZ2V0Q0tFZGl0b3JDb25maWd1cmF0aW9uKHRvb2xiYXJJdGVtcywgdGhpcy5MQU5HLCB0aGlzLmxhbmd1YWdlKTtcbiAgICAgICAgaWYgKHRoaXMuY2tlZGl0b3JDb25maWcpXG4gICAgICAgICAgICB0aGlzLmNrZWRpdG9yQ29uZmlnLmNvbnRhaW5lcklkID0gdGhpcy5lZGl0b3JJZDtcblxuICAgICAgICBpZiAodGhpcy5xbXNja0RhdGEuaGlkZUltZ09wdGlvbnMpIHtcbiAgICAgICAgICAgIHRoaXMuY2tlZGl0b3JDb25maWcgPSB0aGlzLmhpZGVJbWFnZU9wdGlvbnModGhpcy5ja2VkaXRvckNvbmZpZywgdGhpcy5xbXNja0RhdGEuaGlkZUltZ09wdGlvbnMpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZ2xvYmFsU2VydmljZS5zZXRBcGlVcmwodGhpcy5xbXNja0RhdGEuYXBpVXJsKTtcbiAgICAgICAgaWYgKHRoaXMuaXNFbmFibGVkTWF0aHR5cGVDb25maWcoKSkge1xuICAgICAgICAgICAgdGhpcy5hZGRNYXRoVHlwZUNvbmZpZygpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuaXNFbmFibGVkVGltZXN0YW1wQ29uZmlnKCkpIHtcbiAgICAgICAgICAgIHRoaXMuYWRkVGltZXN0YW1wQ29uZmlnKCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5pc0VuYWJsZWRXUHJvb2ZyZWFkZXIoKSkge1xuICAgICAgICAgICAgdGhpcy5hZGRXUHJvb2ZyZWFkZXJDb25maWcoKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5pc0VuYWJsZWRUT0NUb29sYmFyKCkpIHtcbiAgICAgICAgICAgIHRoaXMuYWRkVG9nZ2xlVE9DQ29uZmlnKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuaXNFbmFibGVkRnVsbFNjcmVlbkNvbmZpZygpKSB7XG4gICAgICAgICAgICB0aGlzLmFkZEZ1bGxTY3JlZW5Db25maWcoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICBpZiAodGhpcy5lZGl0b3JJbnN0YW5jZSkge1xuICAgICAgICAgICAgdGhpcy5lZGl0b3JJbnN0YW5jZS5kZXN0cm95KCk7XG4gICAgICAgIH1cbiAgICAgICAgJChkb2N1bWVudCkub2ZmKCk7XG4gICAgfVxuXG4gICAgb25DaGFuZ2U6IChjb250ZW50OiBhbnkpID0+IHZvaWQ7XG4gICAgb25Ub3VjaGVkOiAoKSA9PiB2b2lkO1xuXG4gICAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgICB9XG4gICAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAgICAgaWYgKHRoaXMuaXNEaXNhYmxlZCkge1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQsIFwiY2stZGlzYWJsZWRcIik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBpc0VuYWJsZWRXUHJvb2ZyZWFkZXIoKTogYm9vbGVhbiB7XG4gICAgICAgIGNvbnN0IHBhdHRlcm4gPSAvKHdwcm9vZnJlYWRlcikvZ2ltO1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgISF0aGlzLnFtc2NrRGF0YS53cHJvb2ZyZWFkZXIgJiZcbiAgICAgICAgICAgICEhdGhpcy5xbXNja0RhdGEud3Byb29mcmVhZGVyLnNyY1VybCAmJlxuICAgICAgICAgICAgISF0aGlzLnFtc2NrUGx1Z2luLml0ZW1Ub29sYmFyICYmXG4gICAgICAgICAgICB0aGlzLnFtc2NrUGx1Z2luLml0ZW1Ub29sYmFyLnNlYXJjaChwYXR0ZXJuKSA+IC0xXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgYWRkV1Byb29mcmVhZGVyQ29uZmlnKCkge1xuICAgICAgICBjb25zdCB3cHJvb2ZyZWFkZXJDb25maWcgPSB7XG4gICAgICAgICAgICB3cHJvb2ZyZWFkZXI6IHtcbiAgICAgICAgICAgICAgICAuLi50aGlzLnFtc2NrRGF0YS53cHJvb2ZyZWFkZXIsXG4gICAgICAgICAgICB9LFxuICAgICAgICB9O1xuICAgICAgICBpZiAoXG4gICAgICAgICAgICAhdGhpcy5xbXNja0RhdGEud3Byb29mcmVhZGVyLnNlcnZpY2VJZCB8fFxuICAgICAgICAgICAgdGhpcy5xbXNja0RhdGEud3Byb29mcmVhZGVyLnNlcnZpY2VJZC5sZW5ndGggPT0gMFxuICAgICAgICApIHtcbiAgICAgICAgICAgIC8vRmFsbGJhY2sgdmFsdWUgb2Ygc2VydmljZUlkIHByb3BlcnR5IHRvIGRlbW8gc2VydmljZUlkXG4gICAgICAgICAgICB0aGlzLnFtc2NrRGF0YS53cHJvb2ZyZWFkZXIuc2VydmljZUlkID1cbiAgICAgICAgICAgICAgICBcIjE6S3BrdlEyLTZLTlVqLUwxVzN1Mi1DOWowSzEtWnYydFkxLUNmRE94LVdmR1JnMi1xWHRjaS1ZeXlFMzQtajA5SDQyLWIwYUN0My1kOWFcIjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmNrRWRpdG9yLmRlZmF1bHRDb25maWcgPSBPYmplY3QuYXNzaWduKFxuICAgICAgICAgICAgdGhpcy5ja0VkaXRvci5kZWZhdWx0Q29uZmlnIHx8IHt9LFxuICAgICAgICAgICAgd3Byb29mcmVhZGVyQ29uZmlnXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgaXNFbmFibGVkVG9nZ2xlVG9vbGJhcigpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3QgcGF0dGVybiA9IC8odG9nZ2xlVG9vbGJhcikvZ21pO1xuICAgICAgICByZXR1cm4gISF0aGlzLnFtc2NrRGF0YS50b2dnbGVkVG9vbGJhckl0ZW1zXG4gICAgICAgICAgICAmJiAhIXRoaXMucW1zY2tQbHVnaW4uaXRlbVRvb2xiYXJcbiAgICAgICAgICAgICYmIHRoaXMucW1zY2tQbHVnaW4uaXRlbVRvb2xiYXIuc2VhcmNoKHBhdHRlcm4pID4gLTE7XG4gICAgfVxuXG4gICAgYWRkVG9nZ2xlVG9vbGJhckNvbmZpZygpIHtcbiAgICAgICAgY29uc3QgaXRlbXMgPSB0aGlzLnFtc2NrRGF0YS50b2dnbGVkVG9vbGJhckl0ZW1zLnNwbGl0KCcsJyk7XG5cbiAgICAgICAgY29uc3QgdG9nZ2xlVG9vbGJhckNvbmZpZyA9IHtcbiAgICAgICAgICAgIHRvZ2dsZVRvb2xiYXJDb25maWc6IHtcbiAgICAgICAgICAgICAgICB0b29sYmFyOiBpdGVtcyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuY2tFZGl0b3IuZGVmYXVsdENvbmZpZyA9IE9iamVjdC5hc3NpZ24oXG4gICAgICAgICAgICB0aGlzLmNrRWRpdG9yLmRlZmF1bHRDb25maWcgfHwge30sXG4gICAgICAgICAgICB0b2dnbGVUb29sYmFyQ29uZmlnXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgaXNFbmFibGVkRnVsbFNjcmVlbkNvbmZpZygpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3QgcGF0dGVybiA9IC8ocW1zRnVsbHNjcmVlbikvZ2ltO1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgISF0aGlzLnFtc2NrUGx1Z2luLml0ZW1Ub29sYmFyICYmXG4gICAgICAgICAgICAhIXRoaXMucW1zY2tEYXRhLmZ1bGxTY3JlZW5DbGFzcyAmJlxuICAgICAgICAgICAgdGhpcy5xbXNja1BsdWdpbi5pdGVtVG9vbGJhci5zZWFyY2gocGF0dGVybikgPiAtMVxuICAgICAgICApO1xuICAgIH1cblxuICAgIGFkZEZ1bGxTY3JlZW5Db25maWcoKSB7XG4gICAgICAgIGNvbnN0IGZ1bGxTY3JlZW5Db25maWcgPSB7XG4gICAgICAgICAgICBmdWxsU2NyZWVuQ29uZmlnOiB7XG4gICAgICAgICAgICAgICAgY2xhc3M6IHRoaXMucW1zY2tEYXRhLmZ1bGxTY3JlZW5DbGFzcyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuY2tFZGl0b3IuZGVmYXVsdENvbmZpZyA9IE9iamVjdC5hc3NpZ24oXG4gICAgICAgICAgICB0aGlzLmNrRWRpdG9yLmRlZmF1bHRDb25maWcgfHwge30sXG4gICAgICAgICAgICBmdWxsU2NyZWVuQ29uZmlnXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgaXNFbmFibGVkVE9DVG9vbGJhcigpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3QgcGF0dGVybiA9IC8odGFibGVPZkNvbnRlbnRzKS9naW07XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAhIXRoaXMucW1zY2tEYXRhLnRhYmxlT2ZDb250ZW50SGVhZGluZ3MgJiZcbiAgICAgICAgICAgICEhdGhpcy5xbXNja1BsdWdpbi5pdGVtVG9vbGJhciAmJlxuICAgICAgICAgICAgdGhpcy5xbXNja1BsdWdpbi5pdGVtVG9vbGJhci5zZWFyY2gocGF0dGVybikgPiAtMVxuICAgICAgICApO1xuICAgIH1cblxuICAgIGFkZFRvZ2dsZVRPQ0NvbmZpZygpIHtcbiAgICAgICAgY29uc3QgaXRlbXMgPSB0aGlzLnFtc2NrRGF0YS50YWJsZU9mQ29udGVudEhlYWRpbmdzLnNwbGl0KFwiLFwiKTtcbiAgICAgICAgY29uc3QgdGFibGVPZkNvbnRlbnRzID0ge1xuICAgICAgICAgICAgdGFibGVPZkNvbnRlbnRzOiB7XG4gICAgICAgICAgICAgICAgc3VwcG9ydGVkSGVhZGluZ3M6IGl0ZW1zLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5ja0VkaXRvci5kZWZhdWx0Q29uZmlnID0gT2JqZWN0LmFzc2lnbihcbiAgICAgICAgICAgIHRoaXMuY2tFZGl0b3IuZGVmYXVsdENvbmZpZyB8fCB7fSxcbiAgICAgICAgICAgIHRhYmxlT2ZDb250ZW50c1xuICAgICAgICApO1xuICAgIH1cblxuICAgIGlzRW5hYmxlZFRpbWVzdGFtcENvbmZpZygpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3QgcGF0dGVybiA9IC8odGltZXN0YW1wKS9naW07XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAhIXRoaXMucW1zY2tEYXRhLnRpbWVzdGFtcEZvcm1hdCAmJlxuICAgICAgICAgICAgISF0aGlzLnFtc2NrUGx1Z2luLml0ZW1Ub29sYmFyICYmXG4gICAgICAgICAgICB0aGlzLnFtc2NrUGx1Z2luLml0ZW1Ub29sYmFyLnNlYXJjaChwYXR0ZXJuKSA+IC0xXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgYWRkVGltZXN0YW1wQ29uZmlnKCkge1xuICAgICAgICBjb25zdCB0aW1lc3RhbXBDb25maWcgPSB7XG4gICAgICAgICAgICB0aW1lc3RhbXBDb25maWc6IHtcbiAgICAgICAgICAgICAgICBkYXRldGltZUZvcm1hdDogdGhpcy5xbXNja0RhdGEudGltZXN0YW1wRm9ybWF0LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5ja0VkaXRvci5kZWZhdWx0Q29uZmlnID0gT2JqZWN0LmFzc2lnbihcbiAgICAgICAgICAgIHRoaXMuY2tFZGl0b3IuZGVmYXVsdENvbmZpZyB8fCB7fSxcbiAgICAgICAgICAgIHRpbWVzdGFtcENvbmZpZ1xuICAgICAgICApO1xuICAgIH1cblxuICAgIGlzRW5hYmxlZE1hdGh0eXBlQ29uZmlnKCk6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCBwYXR0ZXJuID0gLyhNYXRoVHlwZSl8KENoZW1UeXBlKS9naW07XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAhIXRoaXMucW1zY2tEYXRhLm1hdGh0eXBlU2VydmljZVVybCAmJlxuICAgICAgICAgICAgISF0aGlzLnFtc2NrUGx1Z2luLml0ZW1Ub29sYmFyICYmXG4gICAgICAgICAgICB0aGlzLnFtc2NrUGx1Z2luLml0ZW1Ub29sYmFyLnNlYXJjaChwYXR0ZXJuKSA+IC0xXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgYWRkTWF0aFR5cGVDb25maWcoKSB7XG4gICAgICAgIGNvbnN0IG1hdGhUeXBlQ29uZmlnID0ge1xuICAgICAgICAgICAgbWF0aFR5cGVQYXJhbWV0ZXJzOiB7XG4gICAgICAgICAgICAgICAgc2VydmljZVByb3ZpZGVyUHJvcGVydGllczoge1xuICAgICAgICAgICAgICAgICAgICBVUkk6IHRoaXMucW1zY2tEYXRhLm1hdGh0eXBlU2VydmljZVVybCxcbiAgICAgICAgICAgICAgICAgICAgc2VydmVyOiBcImFzcHhcIixcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5ja0VkaXRvci5kZWZhdWx0Q29uZmlnID0gT2JqZWN0LmFzc2lnbihcbiAgICAgICAgICAgIHRoaXMuY2tFZGl0b3IuZGVmYXVsdENvbmZpZyB8fCB7fSxcbiAgICAgICAgICAgIG1hdGhUeXBlQ29uZmlnXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHVibGljIG9uQ2hhbmdlZCh7IGVkaXRvciB9KSB7XG4gICAgICAgIC8vIHRoaXMucW1zY2tDb250ZW50SW5wdXQgPSBlZGl0b3IuZ2V0RGF0YSgpO1xuICAgICAgICB0aGlzLnFtc2NrQ29udGVudE91dHB1dC5lbWl0KHRoaXMucW1zY2tDb250ZW50SW5wdXQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvbkJsdXIoeyBlZGl0b3IgfSkge1xuICAgICAgICB0aGlzLnFtc2NrQ29udGVudElucHV0ID0gZWRpdG9yLmdldERhdGEoKTtcbiAgICAgICAgdGhpcy5xbXNja0NvbnRlbnRPdXRwdXQuZW1pdCh0aGlzLnFtc2NrQ29udGVudElucHV0KTtcbiAgICB9XG5cbiAgICB2YWxpZGF0ZShjOiBGb3JtQ29udHJvbCkge1xuICAgICAgICBpZiAoIXRoaXMucmVxdWlyZWQpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLnFtc2NrQ29udGVudElucHV0ICYmICF0aGlzLnJlcXVpcmVkXG4gICAgICAgICAgICA/IG51bGxcbiAgICAgICAgICAgIDoge1xuICAgICAgICAgICAgICAgIHR5cGU6IHtcbiAgICAgICAgICAgICAgICAgICAgdmFsaWQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICBhY3R1YWw6IGMudmFsdWUsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH07XG4gICAgfVxuXG4gICAgaGlkZUltYWdlT3B0aW9ucyhjb25maWcsIG9wdGlvbnMpIHtcbiAgICAgICAgY29uc3QgaXRlbUFycmF5ID0gb3B0aW9ucy5zcGxpdCgnLCcpO1xuICAgICAgICBpdGVtQXJyYXkuZm9yRWFjaChlbGVtZW50ID0+IHtcbiAgICAgICAgICAgIGNvbmZpZy5pbWFnZS50b29sYmFyID0gY29uZmlnLmltYWdlLnRvb2xiYXIuZmlsdGVyKGZ1bmN0aW9uIChpdGVtKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGl0ZW0gIT09IGVsZW1lbnQ7XG4gICAgICAgICAgICB9KVxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIGNvbmZpZztcbiAgICB9XG4gICAgLyoqXG4gICAgICogb25SZWFkeVxuICAgICAqL1xuICAgIHB1YmxpYyBvblJlYWR5KGVkaXRvcikge1xuICAgICAgICB0aGlzLmVkaXRvckluc3RhbmNlID0gZWRpdG9yO1xuICAgICAgICBpZiAodGhpcy5xbXNja0NvbnRlbnRJbnB1dCkge1xuICAgICAgICAgICAgZWRpdG9yLnNldERhdGEodGhpcy5xbXNja0NvbnRlbnRJbnB1dCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5pbml0RWRpdG9yKGVkaXRvcik7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpbml0RWRpdG9yKGVkaXRvcikge1xuICAgICAgICBjb25zdCBpbWFnZVVwbG9hZFR5cGVzID0gQ0tFZGl0b3JJbWFnZVVwbG9hZFR5cGVDb25zdC5RTVNDS19JTUFHRV9UWVBFU19TVVBQT1JUX0RFRkFVTFQ7XG4gICAgICAgIGNvbnN0IGNvbmZpZzogUW1zVXBsb2FkQWRhcHRlckNvbmZpZyA9IHtcbiAgICAgICAgICAgIGFwaVVybDogdGhpcy5xbXNja0RhdGEuYXBpVXJsLFxuICAgICAgICAgICAgTEFORzogdGhpcy5MQU5HLFxuICAgICAgICAgICAgaW1hZ2VVcGxvYWRUeXBlc1xuICAgICAgICB9O1xuICAgICAgICBlZGl0b3IucGx1Z2lucy5nZXQoXCJGaWxlUmVwb3NpdG9yeVwiKS5jcmVhdGVVcGxvYWRBZGFwdGVyID0gKGxvYWRlcikgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBRbXNVcGxvYWRBZGFwdGVyKGxvYWRlciwgY29uZmlnKTtcbiAgICAgICAgfTtcblxuICAgICAgICBlZGl0b3IudWlcbiAgICAgICAgICAgIC5nZXRFZGl0YWJsZUVsZW1lbnQoKVxuICAgICAgICAgICAgLnBhcmVudEVsZW1lbnQuaW5zZXJ0QmVmb3JlKFxuICAgICAgICAgICAgICAgIGVkaXRvci51aS52aWV3LnRvb2xiYXIuZWxlbWVudCxcbiAgICAgICAgICAgICAgICBlZGl0b3IudWkuZ2V0RWRpdGFibGVFbGVtZW50KClcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgLy8gQXBwZWQgV29yZGNvdW50IHRvIENLZWRpdG9yXG4gICAgICAgIGVkaXRvci5wbHVnaW5zLmdldChcIldvcmRDb3VudFwiKS5vbihcInVwZGF0ZVwiLCAoZXZ0LCBzdGF0cykgPT4ge1xuICAgICAgICAgICAgLy8gUHJpbnRzIHRoZSBjdXJyZW50IGNvbnRlbnQgc3RhdGlzdGljcy5cbiAgICAgICAgICAgIGNvbnN0IHdvcmRzQm94ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcIiNcIiArIHRoaXMuZWRpdG9ySWQgKyBcIiAud29yZGNvdW50LWNvbnRlbnRcIik7XG4gICAgICAgICAgICBpZiAoISF3b3Jkc0JveCkge1xuICAgICAgICAgICAgICAgIHdvcmRzQm94LnRleHRDb250ZW50ID0gYCR7dGhpcy5MQU5HLlFNU0NLRURJVE9SLldPUkRTfTogJHtzdGF0cy53b3Jkc30gLyAke3RoaXMuTEFORy5RTVNDS0VESVRPUi5DSEFSQUNURVJTfTogJHtzdGF0cy5jaGFyYWN0ZXJzfWA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmICh0aGlzLnFtc2NrRGF0YS5pc1JlYWRPbmx5KSB7XG4gICAgICAgICAgICBlZGl0b3IuaXNSZWFkT25seSA9IHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9zZXRFZGl0b3JJbnN0YW5jZU9ic2VydmVyKHRoaXMuZWRpdG9ySWQpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFkZCB0ZW1wbGF0ZSAtIExvYWQgdGVtcGxhdGVcbiAgICAgKi9cbiAgICBwdWJsaWMgdGVtcGxhdGVFdmVudEhhbmRsaW5nKCkge1xuICAgICAgICBjb25zdCBkYXRhOiBRTVNDS0VkaXRvclRlbXBsYXRlID0gbmV3IFFNU0NLRWRpdG9yVGVtcGxhdGUoKTtcbiAgICAgICAgZGF0YS5pZCA9IDA7XG4gICAgICAgIGRhdGEuaHRtbCA9IHRoaXMucW1zY2tDb250ZW50SW5wdXQ7XG4gICAgICAgIGRhdGEuZWRpdCA9IGZhbHNlO1xuICAgICAgICBjb25zdCBkaWFsb2dUZW1wbGF0ZSA9IHRoaXMuZGlhbG9nLm9wZW4oUU1TQ0tFZGl0b3JUZW1wbGF0ZUNvbXBvbmVudCwge1xuICAgICAgICAgICAgd2lkdGg6IFwiNjUwcHhcIixcbiAgICAgICAgICAgIGhlaWdodDogXCI1NDBweFwiLFxuICAgICAgICAgICAgZGF0YSxcbiAgICAgICAgICAgIGRpc2FibGVDbG9zZTogdHJ1ZVxuICAgICAgICB9KTtcbiAgICAgICAgZGlhbG9nVGVtcGxhdGUuY29tcG9uZW50SW5zdGFuY2UuY2tFZGl0b3IgPSB0aGlzLmVkaXRvckluc3RhbmNlO1xuICAgICAgICBkaWFsb2dUZW1wbGF0ZVxuICAgICAgICAgICAgLmFmdGVyQ2xvc2VkKClcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJjcmliZSkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChyZXN1bHQpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAocmVzdWx0KSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIFRET1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFkZCB0ZW1wbGF0ZSAtIExvYWQgdGVtcGxhdGVcbiAgICAgKi9cbiAgICBwdWJsaWMgbG9hZFRlbXBsYXRlRXZlbnRIYW5kbGluZygpIHtcbiAgICAgICAgY29uc3QgZGlhbG9nVGVtcGxhdGUgPSB0aGlzLmRpYWxvZy5vcGVuKFFNU0NLRWRpdG9yTG9hZFRlbXBsYXRlQ29tcG9uZW50LCB7XG4gICAgICAgICAgICB3aWR0aDogXCI2NTBweFwiLFxuICAgICAgICAgICAgaGVpZ2h0OiBcIjcwMHB4XCIsXG4gICAgICAgICAgICBkYXRhOiB7IGVuYWJsZUVkaXRUZW1wbGF0ZTogdGhpcy5xbXNja0RhdGEuZW5hYmxlVGVtcGxhdGUgfSxcbiAgICAgICAgICAgIGRpc2FibGVDbG9zZTogdHJ1ZSxcbiAgICAgICAgfSk7XG4gICAgICAgIGRpYWxvZ1RlbXBsYXRlLmNvbXBvbmVudEluc3RhbmNlLmNrRWRpdG9yID0gdGhpcy5lZGl0b3JJbnN0YW5jZTtcbiAgICAgICAgZGlhbG9nVGVtcGxhdGVcbiAgICAgICAgICAgIC5hZnRlckNsb3NlZCgpXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5uZ1Vuc3ViY3JpYmUpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgocmVzdWx0KSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHJlc3VsdCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBldnQgPSBuZXcgQ3VzdG9tRXZlbnQoXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNrRWRpdG9yRXZlbnRDb25zdC5RTVNDS19MT0FEX1RFTVBMQVRFX1BMVUdJTl9SRVNQLFxuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRldGFpbDogcmVzdWx0LFxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICB3aW5kb3cuZGlzcGF0Y2hFdmVudChldnQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFuY2hvciAtIExpbmsgLSBJbWFnZSBtYXBwaW5nXG4gICAgICovXG4gICAgcHVibGljIGxpbmtFdmVudEhhbmRsaW5nKFxuICAgICAgICBsaW5rLFxuICAgICAgICBxbXNja0NvbnRlbnRGaWVsZHM/LFxuICAgICAgICBxbXNja0lzR2V0QW5jaG9yTW9yZUNvbnRlbnQ/XG4gICAgKSB7XG4gICAgICAgIGlmIChsaW5rLmNrZWRpdG9ySWQgIT0gdGhpcy5lZGl0b3JJbnN0YW5jZS5pZClcbiAgICAgICAgICAgIHJldHVybjtcblxuICAgICAgICBsZXQgZGF0YSA9IG5ldyBRTVNDS0VkaXRvckxpbmsoKTtcbiAgICAgICAgZGF0YSA9IGxpbms7XG4gICAgICAgIGRhdGEuZWRpdG9yQ29udGVudCA9IHRoaXMucW1zY2tDb250ZW50SW5wdXQ7XG4gICAgICAgIGRhdGEubW9kdWxlID0gdGhpcy5xbXNja0RhdGEubW9kdWxlO1xuICAgICAgICBkYXRhLmVudGl0eUlkID0gdGhpcy5xbXNja0RhdGEuZW50aXR5SWQ7XG4gICAgICAgIGlmIChxbXNja0NvbnRlbnRGaWVsZHMgJiYgcW1zY2tJc0dldEFuY2hvck1vcmVDb250ZW50KSB7XG4gICAgICAgICAgICBkYXRhLnFtc2NrQ29udGVudEZpZWxkcyA9IHFtc2NrQ29udGVudEZpZWxkcztcbiAgICAgICAgICAgIGRhdGEucW1zY2tJc0dldEFuY2hvck1vcmVDb250ZW50ID0gcW1zY2tJc0dldEFuY2hvck1vcmVDb250ZW50O1xuICAgICAgICB9XG4gICAgICAgIGRhdGEuZGVmYXVsdFRhcmdldE5ld1dpbmRvdyA9IHRoaXMucW1zY2tEYXRhLmRlZmF1bHRUYXJnZXROZXdXaW5kb3c7XG4gICAgICAgIGRhdGEuZW5hYmxlZEludGVyY29ubmVjdGVkID0gdGhpcy5xbXNja0RhdGEuZW5hYmxlZEludGVyY29ubmVjdGVkO1xuXG4gICAgICAgIGxldCBkaWFsb2dUZW1wbGF0ZTtcbiAgICAgICAgaWYgKCF0aGlzLnFtc2NrUGx1Z2luLnNpbXBsZU1vZGUpIHtcbiAgICAgICAgICAgIGRpYWxvZ1RlbXBsYXRlID0gdGhpcy5kaWFsb2cub3BlbihRTVNDS0VkaXRvckxpbmtDb21wb25lbnQsIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogXCI2NTBweFwiLFxuICAgICAgICAgICAgICAgIGhlaWdodDogXCI2NjBweFwiLFxuICAgICAgICAgICAgICAgIGRhdGEsXG4gICAgICAgICAgICAgICAgZGlzYWJsZUNsb3NlOiB0cnVlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBkaWFsb2dUZW1wbGF0ZSA9IHRoaXMuZGlhbG9nLm9wZW4oUW1zQ2tlZGl0b3JMaW5rU2ltcGxlQ29tcG9uZW50LCB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IFwiNjUwcHhcIixcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IFwiMjAwcHhcIixcbiAgICAgICAgICAgICAgICBkYXRhLFxuICAgICAgICAgICAgICAgIGRpc2FibGVDbG9zZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICBhdXRvRm9jdXM6IGZhbHNlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgZGlhbG9nVGVtcGxhdGUuY29tcG9uZW50SW5zdGFuY2UuY2tFZGl0b3IgPSB0aGlzLmVkaXRvckluc3RhbmNlO1xuICAgICAgICBkaWFsb2dUZW1wbGF0ZVxuICAgICAgICAgICAgLmFmdGVyQ2xvc2VkKClcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJjcmliZSkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChyZXN1bHQpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBldnQgPSBuZXcgQ3VzdG9tRXZlbnQodGhpcy5ja0VkaXRvckV2ZW50Q29uc3QuUU1TQ0tfTElOS19QTFVHSU5fUkVTUCwge1xuICAgICAgICAgICAgICAgICAgICBkZXRhaWw6IHJlc3VsdFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHdpbmRvdy5kaXNwYXRjaEV2ZW50KGV2dCk7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUb29sdGlwIG1hcHBpbmdcbiAgICAgKi9cbiAgICBwdWJsaWMgdG9vbHRpcEV2ZW50SGFuZGxpbmcodmFsdWUpIHtcbiAgICAgICAgbGV0IGRhdGEgPSBuZXcgUU1TQ0tFZGl0b3JUb29sdGlwKCk7XG4gICAgICAgIGRhdGEudGV4dCA9IHZhbHVlLnRleHQ7XG4gICAgICAgIGRhdGEuY29udGVudCA9IHZhbHVlLmNvbnRlbnQ7XG4gICAgICAgIGRhdGEuY2tFZGl0b3IgPSB0aGlzLnFtc2NrUGx1Z2luLnBsdWdpbk9iamVjdDtcblxuICAgICAgICBjb25zdCBkaWFsb2dUZW1wbGF0ZSA9IHRoaXMuZGlhbG9nLm9wZW4oUU1TQ0tFZGl0b3JUb29sdGlwQ29tcG9uZW50LCB7XG4gICAgICAgICAgICB3aWR0aDogXCI2NTBweFwiLFxuICAgICAgICAgICAgaGVpZ2h0OiBcIjU1NXB4XCIsXG4gICAgICAgICAgICBkYXRhLFxuICAgICAgICAgICAgZGlzYWJsZUNsb3NlOiB0cnVlLFxuICAgICAgICB9KTtcbiAgICAgICAgZGlhbG9nVGVtcGxhdGUuY29tcG9uZW50SW5zdGFuY2UuY2tFZGl0b3IgPSB0aGlzLmVkaXRvckluc3RhbmNlO1xuICAgICAgICBkaWFsb2dUZW1wbGF0ZVxuICAgICAgICAgICAgLmFmdGVyQ2xvc2VkKClcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJjcmliZSkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChyZXN1bHQpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAocmVzdWx0KSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGV2dCA9IG5ldyBDdXN0b21FdmVudChcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY2tFZGl0b3JFdmVudENvbnN0LlFNU0NLX1RPT0xUSVBfUExVR0lOX1JFU1AsXG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGV0YWlsOiByZXN1bHQsXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIHdpbmRvdy5kaXNwYXRjaEV2ZW50KGV2dCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSW1hZ2VNYXAgbWFwcGluZ1xuICAgICAqL1xuICAgIHB1YmxpYyBpbWFnZU1hcEV2ZW50SGFuZGxpbmcodmFsdWUpIHtcbiAgICAgICAgbGV0IGRhdGEgPSBuZXcgUU1TQ0tFZGl0b3JJbWFnZU1hcCgpO1xuICAgICAgICBkYXRhLm5hbWUgPSB2YWx1ZS5uYW1lO1xuICAgICAgICBkYXRhLmFyZWFzID0gdmFsdWUuYXJlYXM7XG4gICAgICAgIGRhdGEuaW1hZ2VVcmwgPSB2YWx1ZS5pbWFnZVVybDtcbiAgICAgICAgZGF0YS5pbWFnZVdpZHRoID0gdmFsdWUuaW1hZ2VXaWR0aDtcbiAgICAgICAgZGF0YS5pbWFnZUhlaWdodCA9IHZhbHVlLmltYWdlSGVpZ2h0O1xuICAgICAgICBkYXRhLm1vZHVsZSA9IHRoaXMucW1zY2tEYXRhLm1vZHVsZTtcbiAgICAgICAgZGF0YS5lbnRpdHlJZCA9IHRoaXMucW1zY2tEYXRhLmVudGl0eUlkO1xuICAgICAgICBkYXRhLmVkaXRvckNvbnRlbnQgPSB0aGlzLnFtc2NrQ29udGVudElucHV0O1xuICAgICAgICBkYXRhLmxpbmtKYXZhU2NyaXB0TGlua3NBbGxvd2VkID0gdGhpcy5xbXNja0RhdGEubGlua0phdmFTY3JpcHRMaW5rc0FsbG93ZWQ7XG4gICAgICAgIGRhdGEuZW5hYmxlZEludGVyY29ubmVjdGVkID0gdGhpcy5xbXNja0RhdGEuZW5hYmxlZEludGVyY29ubmVjdGVkO1xuICAgICAgICBkYXRhLmRlZmF1bHRUYXJnZXROZXdXaW5kb3cgPSB0aGlzLnFtc2NrRGF0YS5kZWZhdWx0VGFyZ2V0TmV3V2luZG93O1xuXG4gICAgICAgIGNvbnN0IGRpYWxvZ1RlbXBsYXRlID0gdGhpcy5kaWFsb2cub3BlbihRTVNDS0VkaXRvckltYWdlTWFwQ29tcG9uZW50LCB7XG4gICAgICAgICAgICBkYXRhLFxuICAgICAgICAgICAgZGlzYWJsZUNsb3NlOiB0cnVlLFxuICAgICAgICB9KTtcbiAgICAgICAgZGlhbG9nVGVtcGxhdGUuY29tcG9uZW50SW5zdGFuY2UuY2tFZGl0b3IgPSB0aGlzLmVkaXRvckluc3RhbmNlO1xuICAgICAgICBkaWFsb2dUZW1wbGF0ZVxuICAgICAgICAgICAgLmFmdGVyQ2xvc2VkKClcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJjcmliZSkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChyZXN1bHQpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAocmVzdWx0KSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGV2dCA9IG5ldyBDdXN0b21FdmVudChcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY2tFZGl0b3JFdmVudENvbnN0LlFNU0NLX0lNQUdFTUFQX1BMVUdJTl9SRVNQLFxuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRldGFpbDogcmVzdWx0LFxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICB3aW5kb3cuZGlzcGF0Y2hFdmVudChldnQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qXG4gICAgICBCdXNpbmVzcyBQcm9jZXNzIE1vZGVsIGFuZCBOb3RhdGlvblxuICAgICovXG4gICAgcHVibGljIGJwbW5FdmVudEhhbmRsaW5nKGlkOiBzdHJpbmcpIHtcbiAgICAgICAgbGV0IGRhdGEgPSBuZXcgUU1TQ0tFZGl0b3JCcG1uRGF0YSgpO1xuICAgICAgICBkYXRhLmlkID0gaWQ7XG4gICAgICAgIGRhdGEubW9kdWxlID0gdGhpcy5xbXNja0RhdGEubW9kdWxlO1xuICAgICAgICBkYXRhLmVudGl0eUlkID0gdGhpcy5xbXNja0RhdGEuZW50aXR5SWQ7XG4gICAgICAgIGRhdGEuZWRpdG9yQ29udGVudCA9IHRoaXMucW1zY2tDb250ZW50SW5wdXQ7XG4gICAgICAgIGRhdGEuc2hvd1Byb2Nlc3NEb2N1bWVudFRyZWVEYXRhSW5TcGxpdFZpZXcgPSB0aGlzLnFtc2NrRGF0YS5zaG93UHJvY2Vzc0RvY3VtZW50VHJlZURhdGFJblNwbGl0VmlldztcbiAgICAgICAgZGF0YS5lbmFibGVkSW50ZXJjb25uZWN0ZWQgPSB0aGlzLnFtc2NrRGF0YS5lbmFibGVkSW50ZXJjb25uZWN0ZWQ7XG4gICAgICAgIGRhdGEuZW5hYmxlZERldmlhdGlvbk1vZHVsZSA9IHRoaXMucW1zY2tEYXRhLmVuYWJsZWREZXZpYXRpb25Nb2R1bGU7XG4gICAgICAgIGRhdGEuZW5hYmxlZENoZWNrbGlzdE1vZHVsZSA9IHRoaXMucW1zY2tEYXRhLmVuYWJsZWRDaGVja2xpc3RNb2R1bGU7XG4gICAgICAgIGNvbnN0IGRpYWxvZ1RlbXBsYXRlID0gdGhpcy5kaWFsb2cub3BlbihRTVNDS0VkaXRvckJwbW5Db21wb25lbnQsIHtcbiAgICAgICAgICAgIHdpZHRoOiBcIjEwMCVcIixcbiAgICAgICAgICAgIG1heFdpZHRoOiBcIjEwMHZ3XCIsXG4gICAgICAgICAgICBoZWlnaHQ6IFwiMTAwJVwiLFxuICAgICAgICAgICAgbWF4SGVpZ2h0OiBcIjEwMHZ3XCIsXG4gICAgICAgICAgICBkYXRhOiBkYXRhLFxuICAgICAgICAgICAgZGlzYWJsZUNsb3NlOiB0cnVlLFxuICAgICAgICB9KTtcbiAgICAgICAgZGlhbG9nVGVtcGxhdGUuY29tcG9uZW50SW5zdGFuY2UuY2tFZGl0b3IgPSB0aGlzLmVkaXRvckluc3RhbmNlO1xuICAgICAgICBkaWFsb2dUZW1wbGF0ZVxuICAgICAgICAgICAgLmFmdGVyQ2xvc2VkKClcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJjcmliZSkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChyZXN1bHQpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAocmVzdWx0KSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGV2dCA9IG5ldyBDdXN0b21FdmVudChcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY2tFZGl0b3JFdmVudENvbnN0LlFNU0NLX0JQTU5fUExVR0lOX1JFU1AsXG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGV0YWlsOiByZXN1bHQsXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIHdpbmRvdy5kaXNwYXRjaEV2ZW50KGV2dCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgfVxuICAgIC8qXG4gICAgIEFib3V0IENLRWRpdG9yXG4gICAqL1xuICAgIHB1YmxpYyBhYm91dENLRWRpdG9yRXZlbnRIYW5kbGluZyh2ZXJzaW9uOiBzdHJpbmcpIHtcbiAgICAgICAgY29uc3QgZGlhbG9nVGVtcGxhdGUgPSB0aGlzLmRpYWxvZy5vcGVuKFFNU0NLRWRpdG9yQWJvdXRDb21wb25lbnQsIHtcbiAgICAgICAgICAgIHdpZHRoOiBcIjUwMHB4XCIsXG4gICAgICAgICAgICBkYXRhOiB2ZXJzaW9uLFxuICAgICAgICAgICAgZGlzYWJsZUNsb3NlOiB0cnVlLFxuICAgICAgICB9KTtcbiAgICAgICAgZGlhbG9nVGVtcGxhdGUuY29tcG9uZW50SW5zdGFuY2UuY2tFZGl0b3IgPSB0aGlzLmVkaXRvckluc3RhbmNlO1xuICAgICAgICBkaWFsb2dUZW1wbGF0ZVxuICAgICAgICAgICAgLmFmdGVyQ2xvc2VkKClcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJjcmliZSkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChyZXN1bHQpID0+IHsgfSk7XG4gICAgfVxuXG4gICAgLypcbiAgICAgIFRvb2xiYXIgdG9nZ2xlXG4gIFxuICAgICAgVGhpcyBpcyBhIHRlbXBvcmFyeSB3b3JrYXJvdW5kLlxuICAgICAgVHJhY2tpbmcgc3RhdHVzIGFuZCBwcm9ncmVzcyBvZiB0aGUgaXNzdWUgaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvNzM4M1xuICBcbiAgICAgIC0gUmVuZGVyIGJvdGggZGVmYXVsdCB0b29sYmFyIGFuZCB0b2dnbGUgdG9vbGJhciBhdCBpbml0IHRpbWVcbiAgICAgIC0gU2V0IElEIGZvciB0b29sYmFyIGl0ZW1zIHVzaW5nIGluZGV4OlxuICAgICAgICArIEZyb20gaW5kZXggMCB0byB0b29sYmFyTGVuZ3RoIC0gMSBpcyB0aGUgZGVmYXVsdCB0b29sYmFyXG4gICAgICAgICsgRnJvbSBpbmRleCB0b29sYmFyTGVuZ3RoIG9uIGlzIHRoZSB0b2dnbGUgdG9vbGJhclxuICAgICAgLSBTaG93L2hpZGUgZGVmYXVsdCBhbmQgdG9nZ2xlIHRvb2xiYXIgYnkgc2V0IGRpc3BsYXkgbm9uZSB0byBjb3JyZXNwb25kaW5nIHRvb2xiYXIgaXRlbXMgYmFzZWQgb24gSURcbiAgICAqL1xuICAgIHB1YmxpYyB0b2dnbGVUb29sYmFyRXZlbnRIYW5kbGluZygpIHtcbiAgICAgICAgY29uc3QgcW1zY2tlZGl0b3IgPSB3aW5kb3cuZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5lZGl0b3JJZCk7XG4gICAgICAgIGNvbnN0IHRvZ2dsZUF0dHJpYnV0ZSA9ICdpc1RvZ2dsZVRvb2xiYXInO1xuXG4gICAgICAgIGlmIChxbXNja2VkaXRvcikge1xuICAgICAgICAgICAgY29uc3QgaXNUb2dnbGVUb29sYmFyID1cbiAgICAgICAgICAgICAgICBxbXNja2VkaXRvci5nZXRBdHRyaWJ1dGUodG9nZ2xlQXR0cmlidXRlKSA9PSBcInRydWVcIjtcbiAgICAgICAgICAgIGlmIChpc1RvZ2dsZVRvb2xiYXIpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zZXRUb29sYmFyVmlld01vZGUodHJ1ZSk7XG4gICAgICAgICAgICAgICAgcW1zY2tlZGl0b3Iuc2V0QXR0cmlidXRlKHRvZ2dsZUF0dHJpYnV0ZSwgJ2ZhbHNlJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zZXRUb29sYmFyVmlld01vZGUoZmFsc2UpO1xuICAgICAgICAgICAgICAgIHFtc2NrZWRpdG9yLnNldEF0dHJpYnV0ZSh0b2dnbGVBdHRyaWJ1dGUsICd0cnVlJylcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgX3NldFRvb2xiYXJWaWV3TW9kZShzaG93VG9nZ2xlVG9vbGJhcjogYm9vbGVhbikge1xuICAgICAgICBjb25zdCB0b29sYmFyTGVuZ3RoID0gdGhpcy5xbXNja1BsdWdpbi5pdGVtVG9vbGJhcj8uc3BsaXQoJywnKS5sZW5ndGggfHwgMDtcbiAgICAgICAgLypcbiAgICAgICAgICBJdGVtcyBpbiB0b29sYmFyIGFyZSBpbmRleGVkOlxuICAgICAgICAgIC0gRnJvbSBpbmRleCAwIHRvIHRvb2xiYXJMZW5ndGggLSAxIGlzIHRoZSBkZWZhdWx0IHRvb2xiYXJcbiAgICAgICAgICAtIEZyb20gaW5kZXggdG9vbGJhckxlbmd0aCBvbiBpcyB0aGUgdG9nZ2xlIHRvb2xiYXJcbiAgICAgICAgKi9cbiAgICAgICAgJChgIyR7dGhpcy50b29sYmFySXRlbVByZWZpeElkfSR7dG9vbGJhckxlbmd0aCAtIDF9YCk/LnByZXZBbGwoKS5lYWNoKChpbmRleCwgZWxlbWVudCkgPT4ge1xuICAgICAgICAgICAgZWxlbWVudC5zdHlsZS5kaXNwbGF5ID0gc2hvd1RvZ2dsZVRvb2xiYXIgPyAnbm9uZScgOiAnJztcbiAgICAgICAgfSlcblxuICAgICAgICAkKGAjJHt0aGlzLnRvb2xiYXJJdGVtUHJlZml4SWR9JHt0b29sYmFyTGVuZ3RoIC0gMX1gKT8uY3NzKCdkaXNwbGF5Jywgc2hvd1RvZ2dsZVRvb2xiYXIgPyAnbm9uZScgOiAnJyk7XG5cbiAgICAgICAgJChgIyR7dGhpcy50b29sYmFySXRlbVByZWZpeElkfSR7dG9vbGJhckxlbmd0aCAtIDF9YCk/Lm5leHRBbGwoKS5lYWNoKChpbmRleCwgZWxlbWVudCkgPT4ge1xuICAgICAgICAgICAgZWxlbWVudC5zdHlsZS5kaXNwbGF5ID0gc2hvd1RvZ2dsZVRvb2xiYXIgPyAnJyA6ICdub25lJztcbiAgICAgICAgfSlcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBGbG93Y2hhcnRcbiAgICAgKi9cbiAgICBwdWJsaWMgZmxvd2NoYXJ0RXZlbnRIYW5kbGluZyhpZDogc3RyaW5nKSB7XG4gICAgICAgIGNvbnN0IGRpYWxvZ1RlbXBsYXRlID0gdGhpcy5kaWFsb2cub3BlbihRTVNDS0VkaXRvckZsb3djaGFydENvbXBvbmVudCwge1xuICAgICAgICAgICAgd2lkdGg6IFwiODl2d1wiLFxuICAgICAgICAgICAgbWF4V2lkdGg6IFwiMTAwdndcIixcbiAgICAgICAgICAgIGhlaWdodDogXCI3MjVweFwiLFxuICAgICAgICAgICAgbWF4SGVpZ2h0OiBcIjEwMHZ3XCIsXG4gICAgICAgICAgICBkYXRhOiBpZCxcbiAgICAgICAgICAgIGRpc2FibGVDbG9zZTogdHJ1ZSxcbiAgICAgICAgfSk7XG4gICAgICAgIGRpYWxvZ1RlbXBsYXRlLmNvbXBvbmVudEluc3RhbmNlLmNrRWRpdG9yID0gdGhpcy5lZGl0b3JJbnN0YW5jZTtcbiAgICAgICAgZGlhbG9nVGVtcGxhdGVcbiAgICAgICAgICAgIC5hZnRlckNsb3NlZCgpXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5uZ1Vuc3ViY3JpYmUpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgocmVzdWx0KSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHJlc3VsdCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBldnQgPSBuZXcgQ3VzdG9tRXZlbnQoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5ja0VkaXRvckV2ZW50Q29uc3QuUU1TQ0tfRkxPV0NIQVJUX1BMVUdJTl9SRVNQLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGV0YWlsOiByZXN1bHQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpbmRvdy5kaXNwYXRjaEV2ZW50KGV2dCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBCcm93c2UgVmlkZW9cbiAgICAgKi9cbiAgICBwdWJsaWMgYnJvd3NlVmlkZW9FdmVudEhhbmRsaW5nKHZhbHVlKSB7XG4gICAgICAgIHRoaXMudHJlZVNlcnZpY2VcbiAgICAgICAgICAgIC5nZXRVcGxvYWRWaWRlb0xpc3QoKVxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMubmdVbnN1YmNyaWJlKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgdmlkZW9zID0gcmVzcG9uc2UgfHwgW107XG4gICAgICAgICAgICAgICAgY29uc3QgY29uZmlnID0ge1xuICAgICAgICAgICAgICAgICAgICBhbGxvd1NlbGVjdEZvbGRlcjogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIGFyZWFPZkN1cnJlbnRQcm9jZXNzOiBcIlwiLFxuICAgICAgICAgICAgICAgICAgICBzaG93Q2hlY2tCb3g6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIGFsbG93TXVsdGlwbGVDaGVjazogdGhpcy5xbXNja0RhdGEudXBsb2FkVmlkZW9BbGxvd011bHRpcGxlQ2hlY2ssXG4gICAgICAgICAgICAgICAgICAgIG9ubHlDaGVja0JveEZvckNoaWxkOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICBtb2R1bGVJZDogRGF0YVR5cGUuZG9jdW1lbnQsXG4gICAgICAgICAgICAgICAgICAgIG9wZW5JY29uOiBcImZvbGRlcl9vcGVuXCIsXG4gICAgICAgICAgICAgICAgICAgIG9wZW5JY29uQ29sb3I6IFwiIzE5NTRBOVwiLFxuICAgICAgICAgICAgICAgICAgICBjbG9zZUljb246IFwiZm9sZGVyX2ZpbGxlZFwiLFxuICAgICAgICAgICAgICAgICAgICBjbG9zZUljb25Db2xvcjogXCIjNGFjYWZmXCIsXG4gICAgICAgICAgICAgICAgICAgIGl0ZW1JY29uOiBcImluc2VydF9kcml2ZV9maWxlXCIsXG4gICAgICAgICAgICAgICAgICAgIGl0ZW1JY29uUGF0aDogXCJcIixcbiAgICAgICAgICAgICAgICAgICAgaXRlbUljb25CYXNlNjQ6IFwiXCIsXG4gICAgICAgICAgICAgICAgICAgIHNpbmdsZVNlbGVjdGVkTm9kZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgZXhwYW5kQWxsOiB0cnVlLFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgY29uc3QgZGF0YTogUG9wdXBEYXRhID0gbmV3IFBvcHVwRGF0YSgpO1xuICAgICAgICAgICAgICAgIGRhdGEubW9kdWxlSWQgPSAyO1xuICAgICAgICAgICAgICAgIGRhdGEubW9kdWxlTmFtZSA9IHRoaXMuTEFORy5RTVNDS0VESVRPUi5TRUxFQ1RfVklERU9fRlJPTV9BUkNISVZFO1xuICAgICAgICAgICAgICAgIGRhdGEubW9kdWxlVXBsb2FkSW1hZ2VOYW1lID0gdGhpcy5MQU5HLlFNU0NLRURJVE9SLlNFTEVDVF9WSURFT19JTUFHRTtcbiAgICAgICAgICAgICAgICBkYXRhLm1vZHVsZVVwbG9hZEZpbGVOYW1lID0gdGhpcy5MQU5HLlFNU0NLRURJVE9SLkFERF9BX0ZJTEU7XG5cbiAgICAgICAgICAgICAgICBkYXRhLnZpZGVvRGF0YSA9IG5ldyBRTVNDS0VkaXRvclZpZGVvKHZhbHVlLmlkLCB2YWx1ZS5zcmMsIHRydWUsIHZhbHVlLnBvc3RlclxuICAgICAgICAgICAgICAgICAgICAsIHZhbHVlLndpZHRoPy50b1N0cmluZygpPy5pbmRleE9mKCclJykgPCAwID8gdmFsdWUud2lkdGg/LnRvU3RyaW5nKCk/Lm1hdGNoKC9cXGQvZyk/LmpvaW4oJycpIDogbnVsbFxuICAgICAgICAgICAgICAgICAgICAsIHZhbHVlLmhlaWdodD8udG9TdHJpbmcoKT8ubWF0Y2goL1xcZC9nKT8uam9pbignJykpO1xuICAgICAgICAgICAgICAgIGRhdGEuY2FuVXBkYXRlVmlkZW9Qcm9wZXJ0aWVzID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBkYXRhLnRyZWVEYXRhMSA9IHZpZGVvcy5tYXAoKGl0ZW0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJvb3RJZDogYHJvb3QtJHtpdGVtLnJvb3RJZH1gLFxuICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50SWQ6IChpdGVtLnBhcmVudElkICE9PSBudWxsICYmIGl0ZW0ucGFyZW50SWQgIT09IFwiXCIpID8gYHJvb3QtJHtpdGVtLnBhcmVudElkfWAgOiBpdGVtLnBhcmVudElkLFxuICAgICAgICAgICAgICAgICAgICAgICAgcm9vdE5hbWU6IGl0ZW0ucm9vdE5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICBzdWJOYW1lOiBpdGVtLnN1Yk5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICBjaGlsZElkOiBpdGVtLmNoaWxkSWQsXG4gICAgICAgICAgICAgICAgICAgICAgICBjaGlsZE5hbWU6IGl0ZW0uY2hpbGROYW1lLFxuICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzSWQ6IGl0ZW0uc3RhdHVzSWQsXG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5SWQ6IGl0ZW0uZGlzcGxheUlkLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudFR5cGU6IGl0ZW0uY29udGVudFR5cGUsXG4gICAgICAgICAgICAgICAgICAgICAgICB1cmw6IGl0ZW0udXJsLFxuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgZGF0YS50cmVlRGF0YTIgPSBbXTtcbiAgICAgICAgICAgICAgICBkYXRhLnRyZWVDb25maWcxID0gY29uZmlnO1xuICAgICAgICAgICAgICAgIGRhdGEuY2FuVXBsb2FkSW1hZ2UgPSB2aWRlb3MubGVuZ3RoID8gdHJ1ZSA6IGZhbHNlO1xuICAgICAgICAgICAgICAgIGRhdGEuY2FuVXBsb2FkVmlkZW8gPSB0aGlzLnFtc2NrRGF0YS52aWRlb1VwbG9hZE1vZGUgPT09IFZpZGVvVXBsb2FkTW9kZS5BbGxvd1VwbG9hZDtcbiAgICAgICAgICAgICAgICBkYXRhLm1heFZpZGVvVGh1bWJuYWlsU2l6ZUtCID0gdGhpcy5xbXNja0RhdGEubWF4VmlkZW9UaHVtYm5haWxTaXplS0I7XG4gICAgICAgICAgICAgICAgZGF0YS5lbnRpdHlJZCA9IHRoaXMucW1zY2tEYXRhLmVudGl0eUlkO1xuXG4gICAgICAgICAgICAgICAgaWYgKHZhbHVlLnNlbGVjdGVkSWQpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZGlzYWJsZWRMaXN0ID0gW2RhdGEudHJlZURhdGExLmZpbmQoeCA9PiB4LmNoaWxkSWQgPT09IHZhbHVlLnNlbGVjdGVkSWQpXSB8fCBbXTtcbiAgICAgICAgICAgICAgICAgICAgZGF0YS5kaXNhYmxlZExpc3QgPSBkaXNhYmxlZExpc3QubWFwKHggPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZDogeC5jaGlsZElkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1OYW1lOiB4LmNoaWxkTmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5SWQ6IHguZGlzcGxheUlkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmVudElkOiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKFJlbGF0ZWRQb3B1cENvbXBvbmVudCwge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogXCI4MDBweFwiLFxuICAgICAgICAgICAgICAgICAgICBtaW5IZWlnaHQ6IFwiNjMwcHhcIixcbiAgICAgICAgICAgICAgICAgICAgZGF0YSxcbiAgICAgICAgICAgICAgICAgICAgcGFuZWxDbGFzczogXCJxbXNja2VkaXRvci1icm93c2UtdmlkZW8tcG9wdXBcIixcbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBzZWFyY2hCb3ggPSB3aW5kb3cuZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiLnFtc2NrZWRpdG9yLWJyb3dzZS12aWRlby1wb3B1cCAjcW1zbGliX3JlbGF0ZWRfcG9wdXBfc2VhcmNoXCJcbiAgICAgICAgICAgICAgICAgICAgKSBhcyBIVE1MRWxlbWVudDtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHNlYXJjaEJveCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgc2VhcmNoQm94LnN0eWxlLmRpc3BsYXkgPSBcIm5vbmVcIjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sIDEwMCk7XG5cbiAgICAgICAgICAgICAgICBkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUoKHJlc3VsdCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0ICYmIHJlc3VsdC5zcmMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCB1cmxzID0gW107XG4gICAgICAgICAgICAgICAgICAgICAgICB1cmxzID0gW3Jlc3VsdC5zcmNdO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFyZXN1bHQud2lkdGggfHwgcmVzdWx0LndpZHRoIDw9IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQud2lkdGggPSBWaWRlb0NvbnN0LkRFRkFVTFRfVklERU9fV0lEVEg7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXJlc3VsdC5oZWlnaHQgfHwgcmVzdWx0LmhlaWdodCA8PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmhlaWdodCA9IFZpZGVvQ29uc3QuREVGQVVMVF9WSURFT19IRUlHSFQ7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBldnQgPSBuZXcgQ3VzdG9tRXZlbnQoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5ja0VkaXRvckV2ZW50Q29uc3QuUU1TQ0tfQlJPV1NFX1ZJREVPX1JFU1AsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgeyBkZXRhaWw6IHsgdXJsczogdXJscywgdGh1bWJuYWlsVXJsOiByZXN1bHQucG9zdGVyLCBpZDogcmVzdWx0LmlkLCB3aWR0aDogcmVzdWx0LndpZHRoLCBoZWlnaHQ6IHJlc3VsdC5oZWlnaHQgfSB9XG4gICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgd2luZG93LmRpc3BhdGNoRXZlbnQoZXZ0KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfc2V0RWRpdG9ySW5zdGFuY2VPYnNlcnZlcihlZGl0b3JJZDogc3RyaW5nKSB7XG4gICAgICAgICQoZG9jdW1lbnQpLm9mZignRE9NTm9kZUluc2VydGVkJykub24oJ0RPTU5vZGVJbnNlcnRlZCcsIChlKSA9PiB7XG4gICAgICAgICAgICBpZiAoIXRoaXMuaXNUb29sYmFySXRlbXNJZFNldCAmJiAkKGUudGFyZ2V0KS5oYXMoJyMnICsgZWRpdG9ySWQpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc2V0SWRGb3JUb29sYmFySXRlbXMoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfc2V0SWRGb3JUb29sYmFySXRlbXMoKSB7XG4gICAgICAgIGNvbnN0IHRvb2xiYXJJdGVtcyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoYCR7dGhpcy5lZGl0b3JJZCA/ICcjJyArIHRoaXMuZWRpdG9ySWQgOiAnJ30gLmNrLXRvb2xiYXJfX2l0ZW1zYCk/LmNoaWxkcmVuIHx8IFtdO1xuICAgICAgICBpZiAoIXRvb2xiYXJJdGVtcy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmlzVG9vbGJhckl0ZW1zSWRTZXQgPSB0cnVlO1xuICAgICAgICAoQXJyYXkuZnJvbSh0b29sYmFySXRlbXMpIGFzIEhUTUxFbGVtZW50W10pLmZvckVhY2goKGl0ZW0sIGluZGV4KSA9PiB7XG4gICAgICAgICAgICBpdGVtLmlkID0gYCR7dGhpcy50b29sYmFySXRlbVByZWZpeElkfSR7aW5kZXh9YDtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy50b2dnbGVUb29sYmFyRXZlbnRIYW5kbGluZygpO1xuICAgIH1cbn1cbiJdfQ==
|
739
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicW1zLWNrZWRpdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Ftcy1hbmd1bGFyL3NyYy9saWIvcW1zLWNrZWRpdG9yLWNvbXBvbmVudHMvcW1zLWNrZWRpdG9yLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0wsT0FBTyxFQUFlLGFBQWEsRUFBRSxpQkFBaUIsRUFBYSxNQUFNLGdCQUFnQixDQUFDO0FBQzFGLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDbkYsT0FBTyxFQUFFLGdCQUFnQixFQUEwQixNQUFNLG1DQUFtQyxDQUFDO0FBQzdGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQy9FLE9BQU8sdUJBQXVCLE1BQU0sb0NBQW9DLENBQUM7QUFHekUsT0FBTyxlQUFlLE1BQU0sd0NBQXdDLENBQUM7QUFDckUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sNERBQTRELENBQUM7QUFDdEcsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sd0VBQXdFLENBQUM7QUFDeEgsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sb0VBQW9FLENBQUM7QUFDbEgsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sNERBQTRELENBQUM7QUFDdEcsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sOEVBQThFLENBQUM7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LENBQUMsRUFBRSxHQUFHLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixHQUFHLEtBQUssRUFBRSxDQUFDO1FBQ3BELENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLDBCQUEwQixFQUFFLENBQUM7SUFDdEMsQ0FBQzs7O1lBcnpCSixTQUFTLFNBQUM7Z0JBQ1AsUUFBUSxFQUFFLGNBQWM7Z0JBQ3hCLHdoQkFBNEM7Z0JBRTVDLFNBQVMsRUFBRTtvQkFDUCw4QkFBOEI7b0JBQzlCO3dCQUNJLE9BQU8sRUFBRSxpQkFBaUI7d0JBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsb0JBQW9CLENBQUM7d0JBQ25ELEtBQUssRUFBRSxJQUFJO3FCQUNkO29CQUNEO3dCQUNJLE9BQU8sRUFBRSxhQUFhO3dCQUN0QixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLG9CQUFvQixDQUFDO3dCQUNuRCxLQUFLLEVBQUUsSUFBSTtxQkFDZDtpQkFDSjtnQkFDRCxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtnQkFDckMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07O2FBQ2xEOzs7WUF0RFEsU0FBUztZQUVULHVCQUF1QjtZQWtCdkIsd0JBQXdCO1lBTXhCLHNCQUFzQjtZQWhCdEIsOEJBQThCO1lBWmdHLFNBQVM7WUFBcEYsVUFBVTs7O3dCQTREakUsS0FBSzswQkFDTCxLQUFLO2dDQUNMLEtBQUs7aUNBQ0wsS0FBSzswQ0FDTCxLQUFLO3lCQUNMLEtBQUssU0FBQyxVQUFVO3VCQUNoQixLQUFLLFNBQUMsVUFBVTt1QkFDaEIsS0FBSztpQ0FDTCxNQUFNO3dCQWNOLFlBQVksU0FBQyxnQkFBZ0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgZm9yd2FyZFJlZiwgSG9zdExpc3RlbmVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFJlbmRlcmVyMiwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Db250cm9sLCBOR19WQUxJREFUT1JTLCBOR19WQUxVRV9BQ0NFU1NPUiwgVmFsaWRhdG9yIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTWF0RGlhbG9nIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFRyYW5zbGF0ZUxpYnJhcnlTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvdHJhbnNsYXRpb24tcmVnaXN0cnkuc2VydmljZSc7XG5pbXBvcnQgeyBRbXNVcGxvYWRBZGFwdGVyLCBRbXNVcGxvYWRBZGFwdGVyQ29uZmlnIH0gZnJvbSAnLi9jb21tb24vY2xhc3Nlcy9xbXNVcGxvYWRBZGFwdGVyJztcbmltcG9ydCB7IENLRWRpdG9yRXZlbnRDb25zdCB9IGZyb20gJy4vY29tbW9uL2NvbnN0YW50cy9ja2VkaXRvckV2ZW50LmNvbnN0YW50JztcbmltcG9ydCBDS0VkaXRvckNvbW1vbkZ1bmN0aW9ucyBmcm9tICcuL2NvbW1vbi9mdW5jdGlvbnMvY29tbW9uLmZ1bmN0aW9uJztcbmltcG9ydCB7IFFNU0NLRWRpdG9yRGF0YSB9IGZyb20gJy4vY29tbW9uL21vZGVscy9xbXMtY2tlZGl0b3ItZGF0YS5tb2RlbCc7XG5pbXBvcnQgeyBRTVNDS0VkaXRvclBsdWdpbiB9IGZyb20gJy4vY29tbW9uL21vZGVscy9xbXMtY2tlZGl0b3ItcGx1Z2luLm1vZGVsJztcbmltcG9ydCBRTVNDS0VkaXRvckxpbmsgZnJvbSAnLi9jb21tb24vbW9kZWxzL3Ftcy1ja2VkaXRvci11cmwubW9kZWwnO1xuaW1wb3J0IHsgUU1TQ0tFZGl0b3JCcG1uQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3Ftcy1ja2VkaXRvci1icG1uL3Ftcy1ja2VkaXRvci1icG1uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBRTVNDS0VkaXRvckZ1bGxzY3JlZW5Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcW1zLWNrZWRpdG9yLWZ1bGxzY3JlZW4vcW1zLWNrZWRpdG9yLWZ1bGxzY3JlZW4uY29tcG9uZW50JztcbmltcG9ydCB7IFFNU0NLRWRpdG9ySW1hZ2VNYXBDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcW1zLWNrZWRpdG9yLWltYWdlbWFwL3Ftcy1ja2VkaXRvci1pbWFnZW1hcC5jb21wb25lbnQnO1xuaW1wb3J0IHsgUU1TQ0tFZGl0b3JMaW5rQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3Ftcy1ja2VkaXRvci1saW5rL3Ftcy1ja2VkaXRvci1saW5rLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBRTVNDS0VkaXRvckxvYWRUZW1wbGF0ZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9xbXMtY2tlZGl0b3ItbG9hZC10ZW1wbGF0ZS9xbXMtY2tlZGl0b3ItbG9hZC10ZW1wbGF0ZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgUU1TQ0tFZGl0b3JUZW1wbGF0ZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9xbXMtY2tlZGl0b3ItdGVtcGxhdGUvcW1zLWNrZWRpdG9yLXRlbXBsYXRlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBRTVNDS0VkaXRvclRvb2x0aXBDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcW1zLWNrZWRpdG9yLXRvb2x0aXAvcW1zLWNrZWRpdG9yLXRvb2x0aXAuY29tcG9uZW50JztcbmltcG9ydCB7IFFNU0NLRWRpdG9ySW1hZ2VNYXAgfSBmcm9tICcuL21vZGVscy9xbXMtY2tlZGl0b3ItaW1hZ2VtYXAubW9kZWwnO1xuaW1wb3J0IHsgUU1TQ0tFZGl0b3JUZW1wbGF0ZSB9IGZyb20gJy4vbW9kZWxzL3Ftcy1ja2VkaXRvci10ZW1wbGF0ZS5tb2RlbCc7XG5pbXBvcnQgeyBRTVNDS0VkaXRvclRvb2x0aXAgfSBmcm9tICcuL21vZGVscy9xbXMtY2tlZGl0b3ItdG9vbHRpcC5tb2RlbCc7XG5pbXBvcnQgeyBRTVNDS0VkaXRvckJhc2VDb21wb25lbnQgfSBmcm9tICcuL3Ftcy1ja2VkaXRvci1iYXNlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBRTVNDS0VkaXRvckdsb2JhbFNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL3Ftcy1ja2VkaXRvci1nbG9iYWwuc2VydmljZSc7XG5pbXBvcnQgeyBRTVNDS0VkaXRvckFib3V0Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3Ftcy1ja2VkaXRvci1hYm91dC9xbXMtY2tlZGl0b3ItYWJvdXQuY29tcG9uZW50Jztcbi8vIGltcG9ydCB7IENLRWRpdG9yNSB9IGZyb20gJ0Bja2VkaXRvci9ja2VkaXRvcjUtYW5ndWxhci9ja2VkaXRvcic7XG5pbXBvcnQgeyBRTVNDS0VkaXRvckJwbW5EYXRhIH0gZnJvbSBcIi4vbW9kZWxzL3Ftcy1ja2VkaXRvci1icG1uLWRhdGEubW9kZWxcIjtcbmltcG9ydCB7IFBvcHVwRGF0YSB9IGZyb20gXCIuLi9jb21wb25lbnRzL3JlbGF0ZWQvbW9kZWwvcG9wdXAtZGF0YS5tb2RlbFwiO1xuaW1wb3J0IHsgUmVsYXRlZFBvcHVwQ29tcG9uZW50IH0gZnJvbSBcIi4uL2NvbXBvbmVudHMvcmVsYXRlZC9wb3B1cC9yZWxhdGVkLXBvcHVwLmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgUU1TQ0tFZGl0b3JUcmVlU2VydmljZSB9IGZyb20gXCIuL3NlcnZpY2VzL3Ftcy1ja2VkaXRvci10cmVlLnNlcnZpY2VcIjtcbmltcG9ydCB7IFFNU0NLRWRpdG9yRmxvd2NoYXJ0Q29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50cy9xbXMtY2tlZGl0b3ItZmxvd2NoYXJ0L3Ftcy1ja2VkaXRvci1mbG93Y2hhcnQuY29tcG9uZW50XCI7XG5pbXBvcnQgeyBRbXNDa2VkaXRvckxpbmtTaW1wbGVDb21wb25lbnQgfSBmcm9tIFwiLi9jb21wb25lbnRzL3Ftcy1ja2VkaXRvci1saW5rLXNpbXBsZS9xbXMtY2tlZGl0b3ItbGluay1zaW1wbGUuY29tcG9uZW50XCI7XG5pbXBvcnQgeyBDS0VkaXRvckltYWdlVXBsb2FkVHlwZUNvbnN0IH0gZnJvbSAnLi9jb21tb24vY29uc3RhbnRzL2NrZWRpdG9ySW1hZ2VVcGxvYWRUeXBlLmNvbnN0JztcbmltcG9ydCB7IFZpZGVvVXBsb2FkTW9kZSB9IGZyb20gJy4vY29tbW9uL2VudW1zL3ZpZGVvLXVwbG9hZC1tb2RlLmVudW0nO1xuaW1wb3J0IHsgUU1TQ0tFZGl0b3JWaWRlbyB9IGZyb20gJy4vbW9kZWxzL3Ftcy1ja2VkaXRvci12aWRlby5tb2RlbCc7XG5pbXBvcnQgeyBWaWRlb0NvbnN0IH0gZnJvbSAnLi4vY29tcG9uZW50cy9yZWxhdGVkL2NvbW1vbi92aWRlby5jb25zdCc7XG5pbXBvcnQgeyBEYXRhVHlwZSB9IGZyb20gJy4uL2NvbW1vbi9lbnVtL2RhdGEtdHlwZS5lbnVtJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6IFwicW1zLWNrZWRpdG9yXCIsXG4gICAgdGVtcGxhdGVVcmw6IFwiLi9xbXMtY2tlZGl0b3IuY29tcG9uZW50Lmh0bWxcIixcbiAgICBzdHlsZVVybHM6IFtcIi4vcW1zLWNrZWRpdG9yLmNvbXBvbmVudC5zY3NzXCJdLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICBRTVNDS0VkaXRvckZ1bGxzY3JlZW5Db21wb25lbnQsXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gUU1TQ0tFZGl0b3JDb21wb25lbnQpLFxuICAgICAgICAgICAgbXVsdGk6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IE5HX1ZBTElEQVRPUlMsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBRTVNDS0VkaXRvckNvbXBvbmVudCksXG4gICAgICAgICAgICBtdWx0aTogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICBdLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFFNU0NLRWRpdG9yQ29tcG9uZW50XG4gICAgZXh0ZW5kcyBRTVNDS0VkaXRvckJhc2VDb21wb25lbnRcbiAgICBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgVmFsaWRhdG9yIHtcbiAgICBASW5wdXQoKSBxbXNja0RhdGE6IFFNU0NLRWRpdG9yRGF0YTtcbiAgICBASW5wdXQoKSBxbXNja1BsdWdpbjogUU1TQ0tFZGl0b3JQbHVnaW47XG4gICAgQElucHV0KCkgcW1zY2tDb250ZW50SW5wdXQ6IHN0cmluZztcbiAgICBASW5wdXQoKSBxbXNja0NvbnRlbnRGaWVsZHM/OiBbXTtcbiAgICBASW5wdXQoKSBxbXNja0lzR2V0QW5jaG9yTW9yZUNvbnRlbnQ/OiBib29sZWFuO1xuICAgIEBJbnB1dCgnZGlzYWJsZWQnKSBpc0Rpc2FibGVkOiBib29sZWFuO1xuICAgIEBJbnB1dCgncmVxdWlyZWQnKSByZXF1aXJlZDogYm9vbGVhbiA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIGVkaXRvcklkID0gJ3Ftc2NrZWRpdG9yJztcbiAgICBAT3V0cHV0KCkgcW1zY2tDb250ZW50T3V0cHV0OiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIExBTkc6IGFueTtcbiAgICBja0VkaXRvcjogYW55O1xuICAgIG5hbWU6IHN0cmluZztcbiAgICBja2VkaXRvckNvbmZpZzogYW55O1xuICAgIGNrRWRpdG9yRXZlbnRDb25zdCA9IENLRWRpdG9yRXZlbnRDb25zdDtcbiAgICBjb3VudFdvcmQ6IG51bWJlcjtcbiAgICBjb3VudENoYXI6IG51bWJlcjtcbiAgICBlZGl0b3JJbnN0YW5jZTogYW55O1xuICAgIGNrVGFnbmFtZTogc3RyaW5nO1xuICAgIHRvb2xiYXJJdGVtUHJlZml4SWQ6IHN0cmluZztcbiAgICBpc1Rvb2xiYXJJdGVtc0lkU2V0OiBib29sZWFuID0gZmFsc2U7XG4gICAgbGFuZ3VhZ2U6IHN0cmluZyA9ICdlbic7XG4gICAgQEhvc3RMaXN0ZW5lcihcIndpbmRvdzptZXNzYWdlXCIsIFtcIiRldmVudFwiXSlcbiAgICBvbk1lc3NhZ2UoZXZlbnQpIHtcbiAgICAgICAgc3dpdGNoIChldmVudC5kYXRhLmV2ZW50TmFtZSkge1xuICAgICAgICAgICAgY2FzZSB0aGlzLmNrRWRpdG9yRXZlbnRDb25zdC5RTVNDS19URU1QTEFURV9QTFVHSU5fTVNHICsgdGhpcy5lZGl0b3JJbnN0YW5jZS5pZDpcbiAgICAgICAgICAgICAgICB0aGlzLnRlbXBsYXRlRXZlbnRIYW5kbGluZygpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSB0aGlzLmNrRWRpdG9yRXZlbnRDb25zdC5RTVNDS19MT0FEX1RFTVBMQVRFX1BMVUdJTl9NU0cgKyB0aGlzLmVkaXRvckluc3RhbmNlLmlkOlxuICAgICAgICAgICAgICAgIHRoaXMubG9hZFRlbXBsYXRlRXZlbnRIYW5kbGluZygpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSB0aGlzLmNrRWRpdG9yRXZlbnRDb25zdC5RTVNDS19MSU5LX1BMVUdJTl9NU0cgKyB0aGlzLmVkaXRvckluc3RhbmNlLmlkOlxuICAgICAgICAgICAgICAgIHRoaXMubGlua0V2ZW50SGFuZGxpbmcoXG4gICAgICAgICAgICAgICAgICAgIGV2ZW50LmRhdGEudmFsdWUsXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucW1zY2tDb250ZW50RmllbGRzLFxuICAgICAgICAgICAgICAgICAgICB0aGlzLnFtc2NrSXNHZXRBbmNob3JNb3JlQ29udGVudFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIHRoaXMuY2tFZGl0b3JFdmVudENvbnN0LlFNU0NLX1RPT0xUSVBfUExVR0lOX01TRyArIHRoaXMuZWRpdG9ySW5zdGFuY2UuaWQ6XG4gICAgICAgICAgICAgICAgdGhpcy50b29sdGlwRXZlbnRIYW5kbGluZyhldmVudC5kYXRhLnZhbHVlKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgdGhpcy5ja0VkaXRvckV2ZW50Q29uc3QuUU1TQ0tfSU1BR0VNQVBfUExVR0lOX01TRyArIHRoaXMuZWRpdG9ySW5zdGFuY2UuaWQ6XG4gICAgICAgICAgICAgICAgdGhpcy5pbWFnZU1hcEV2ZW50SGFuZGxpbmcoZXZlbnQuZGF0YS52YWx1ZSk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIHRoaXMuY2tFZGl0b3JFdmVudENvbnN0LlFNU0NLX0JQTU5fUExVR0lOX01TRyArIHRoaXMuZWRpdG9ySW5zdGFuY2UuaWQ6XG4gICAgICAgICAgICAgICAgdGhpcy5icG1uRXZlbnRIYW5kbGluZyhldmVudC5kYXRhLnZhbHVlKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgdGhpcy5ja0VkaXRvckV2ZW50Q29uc3QuUU1TQ0tfQUJPVVRfQ0tFRElUT1JfUExVR0lOX01TRyArIHRoaXMuZWRpdG9ySW5zdGFuY2UuaWQ6XG4gICAgICAgICAgICAgICAgdGhpcy5hYm91dENLRWRpdG9yRXZlbnRIYW5kbGluZyhldmVudC5kYXRhLnZhbHVlKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgdGhpcy5ja0VkaXRvckV2ZW50Q29uc3QuUU1TQ0tfRkxPV0NIQVJUX1BMVUdJTl9NU0cgKyB0aGlzLmVkaXRvckluc3RhbmNlLmlkOlxuICAgICAgICAgICAgICAgIHRoaXMuZmxvd2NoYXJ0RXZlbnRIYW5kbGluZyhldmVudC5kYXRhLnZhbHVlKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgdGhpcy5ja0VkaXRvckV2ZW50Q29uc3QuUU1TQ0tfVE9HR0xFX1RPT0xCQVJfTVNHICsgdGhpcy5lZGl0b3JJbnN0YW5jZS5pZDpcbiAgICAgICAgICAgICAgICB0aGlzLnRvZ2dsZVRvb2xiYXJFdmVudEhhbmRsaW5nKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIHRoaXMuY2tFZGl0b3JFdmVudENvbnN0LlFNU0NLX0JST1dTRV9WSURFT19NU0cgKyB0aGlzLmVkaXRvckluc3RhbmNlLmlkOlxuICAgICAgICAgICAgICAgIHRoaXMuYnJvd3NlVmlkZW9FdmVudEhhbmRsaW5nKGV2ZW50LmRhdGEudmFsdWUpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENvbnN0cnVjdG9yXG4gICAgICovXG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBkaWFsb2c6IE1hdERpYWxvZyxcbiAgICAgICAgcHJpdmF0ZSB0cmFuc2xhdGU6IFRyYW5zbGF0ZUxpYnJhcnlTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGdsb2JhbFNlcnZpY2U6IFFNU0NLRWRpdG9yR2xvYmFsU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSB0cmVlU2VydmljZTogUU1TQ0tFZGl0b3JUcmVlU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBxbXNDS0VkaXRvckZ1bGxzY3JlZW5Db21wb25lbnQ6IFFNU0NLRWRpdG9yRnVsbHNjcmVlbkNvbXBvbmVudCxcbiAgICAgICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgICAgICBwcml2YXRlIGVsUmVmOiBFbGVtZW50UmVmXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuY2tUYWduYW1lID0gXCJkaXZcIjtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy50b29sYmFySXRlbVByZWZpeElkID0gYCR7dGhpcy5lZGl0b3JJZH1fdG9vbGJhcl9pdGVtX2A7XG4gICAgICAgIHRoaXMubmFtZSA9ICdDS0VkaXRvciBjdXN0b20gYnVpbGQnO1xuICAgICAgICB0aGlzLmNrRWRpdG9yID0gdGhpcy5xbXNja1BsdWdpbi5wbHVnaW5PYmplY3Q7XG4gICAgICAgIHRoaXMudHJhbnNsYXRlLmdldExhbmd1YWdlU3ViamVjdCQucGlwZSh0YWtlVW50aWwodGhpcy5uZ1Vuc3ViY3JpYmUpKS5zdWJzY3JpYmUoKHJlcykgPT4ge1xuICAgICAgICAgICAgaWYgKHJlcykge1xuICAgICAgICAgICAgICAgIHRoaXMubGFuZ3VhZ2UgPSByZXM7XG4gICAgICAgICAgICAgICAgdGhpcy5MQU5HID0gdGhpcy50cmFuc2xhdGUuZ2V0T2JqZWN0TGFuZyhyZXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgbGV0IHRvb2xiYXJJdGVtcyA9IHRoaXMucW1zY2tQbHVnaW4uaXRlbVRvb2xiYXI7XG4gICAgICAgIGlmICh0aGlzLmlzRW5hYmxlZFRvZ2dsZVRvb2xiYXIoKSAmJiB0aGlzLnFtc2NrRGF0YS50b2dnbGVkVG9vbGJhckl0ZW1zKSB7XG4gICAgICAgICAgICAvLyBsZXQgc3RyVG9vbGJhcnMgPSB0aGlzLnFtc2NrRGF0YS50b2dnbGVkVG9vbGJhckl0ZW1zLnJlcGxhY2UoL3Ftc0Zsb3djaGFydCwvZywgXCJcIik7XG4gICAgICAgICAgICBsZXQgc3RyVG9vbGJhcnMgPSB0aGlzLnFtc2NrRGF0YS50b2dnbGVkVG9vbGJhckl0ZW1zO1xuICAgICAgICAgICAgaWYgKCF0aGlzLnFtc2NrRGF0YS5lbmFibGVUZW1wbGF0ZSkge1xuICAgICAgICAgICAgICAgIHN0clRvb2xiYXJzID0gc3RyVG9vbGJhcnMucmVwbGFjZSgvcW1zVGVtcGxhdGUsL2csIFwiXCIpOyAvLyBkaXNhYmxlIHFtc1RlbXBsYXRlIGlmIHVzZXIgZG9uJ3QgaGF2ZSBoYW5kYm9va0FkbWluIFJvbGVcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghdGhpcy5xbXNja0RhdGEudmlkZW9VcGxvYWRNb2RlKSB7XG4gICAgICAgICAgICAgICAgc3RyVG9vbGJhcnMgPSBzdHJUb29sYmFycy5yZXBsYWNlKC92aWRlb1VwbG9hZCwvZywgXCJcIik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0b29sYmFySXRlbXMgKz0gJywnICsgc3RyVG9vbGJhcnM7IC8vIGRpc2FibGUgcW1zRmxvd2NoYXJ0IHVudGlsIE5LLTQ0MCBkb25lXG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5ja2VkaXRvckNvbmZpZyA9IENLRWRpdG9yQ29tbW9uRnVuY3Rpb25zLmdldENLRWRpdG9yQ29uZmlndXJhdGlvbih0b29sYmFySXRlbXMsIHRoaXMuTEFORywgdGhpcy5sYW5ndWFnZSk7XG4gICAgICAgIGlmICh0aGlzLmNrZWRpdG9yQ29uZmlnKVxuICAgICAgICAgICAgdGhpcy5ja2VkaXRvckNvbmZpZy5jb250YWluZXJJZCA9IHRoaXMuZWRpdG9ySWQ7XG5cbiAgICAgICAgaWYgKHRoaXMucW1zY2tEYXRhLmhpZGVJbWdPcHRpb25zKSB7XG4gICAgICAgICAgICB0aGlzLmNrZWRpdG9yQ29uZmlnID0gdGhpcy5oaWRlSW1hZ2VPcHRpb25zKHRoaXMuY2tlZGl0b3JDb25maWcsIHRoaXMucW1zY2tEYXRhLmhpZGVJbWdPcHRpb25zKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmdsb2JhbFNlcnZpY2Uuc2V0QXBpVXJsKHRoaXMucW1zY2tEYXRhLmFwaVVybCk7XG4gICAgICAgIGlmICh0aGlzLmlzRW5hYmxlZE1hdGh0eXBlQ29uZmlnKCkpIHtcbiAgICAgICAgICAgIHRoaXMuYWRkTWF0aFR5cGVDb25maWcoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmlzRW5hYmxlZFRpbWVzdGFtcENvbmZpZygpKSB7XG4gICAgICAgICAgICB0aGlzLmFkZFRpbWVzdGFtcENvbmZpZygpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuaXNFbmFibGVkV1Byb29mcmVhZGVyKCkpIHtcbiAgICAgICAgICAgIHRoaXMuYWRkV1Byb29mcmVhZGVyQ29uZmlnKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuaXNFbmFibGVkVE9DVG9vbGJhcigpKSB7XG4gICAgICAgICAgICB0aGlzLmFkZFRvZ2dsZVRPQ0NvbmZpZygpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmlzRW5hYmxlZEZ1bGxTY3JlZW5Db25maWcoKSkge1xuICAgICAgICAgICAgdGhpcy5hZGRGdWxsU2NyZWVuQ29uZmlnKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgJChkb2N1bWVudCkub2ZmKCk7XG4gICAgfVxuXG4gICAgb25DaGFuZ2U6IChjb250ZW50OiBhbnkpID0+IHZvaWQ7XG4gICAgb25Ub3VjaGVkOiAoKSA9PiB2b2lkO1xuXG4gICAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgICB9XG4gICAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAgICAgaWYgKHRoaXMuaXNEaXNhYmxlZCkge1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQsIFwiY2stZGlzYWJsZWRcIik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBpc0VuYWJsZWRXUHJvb2ZyZWFkZXIoKTogYm9vbGVhbiB7XG4gICAgICAgIGNvbnN0IHBhdHRlcm4gPSAvKHdwcm9vZnJlYWRlcikvZ2ltO1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgISF0aGlzLnFtc2NrRGF0YS53cHJvb2ZyZWFkZXIgJiZcbiAgICAgICAgICAgICEhdGhpcy5xbXNja0RhdGEud3Byb29mcmVhZGVyLnNyY1VybCAmJlxuICAgICAgICAgICAgISF0aGlzLnFtc2NrUGx1Z2luLml0ZW1Ub29sYmFyICYmXG4gICAgICAgICAgICB0aGlzLnFtc2NrUGx1Z2luLml0ZW1Ub29sYmFyLnNlYXJjaChwYXR0ZXJuKSA+IC0xXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgYWRkV1Byb29mcmVhZGVyQ29uZmlnKCkge1xuICAgICAgICBjb25zdCB3cHJvb2ZyZWFkZXJDb25maWcgPSB7XG4gICAgICAgICAgICB3cHJvb2ZyZWFkZXI6IHtcbiAgICAgICAgICAgICAgICAuLi50aGlzLnFtc2NrRGF0YS53cHJvb2ZyZWFkZXIsXG4gICAgICAgICAgICB9LFxuICAgICAgICB9O1xuICAgICAgICBpZiAoXG4gICAgICAgICAgICAhdGhpcy5xbXNja0RhdGEud3Byb29mcmVhZGVyLnNlcnZpY2VJZCB8fFxuICAgICAgICAgICAgdGhpcy5xbXNja0RhdGEud3Byb29mcmVhZGVyLnNlcnZpY2VJZC5sZW5ndGggPT0gMFxuICAgICAgICApIHtcbiAgICAgICAgICAgIC8vRmFsbGJhY2sgdmFsdWUgb2Ygc2VydmljZUlkIHByb3BlcnR5IHRvIGRlbW8gc2VydmljZUlkXG4gICAgICAgICAgICB0aGlzLnFtc2NrRGF0YS53cHJvb2ZyZWFkZXIuc2VydmljZUlkID1cbiAgICAgICAgICAgICAgICBcIjE6S3BrdlEyLTZLTlVqLUwxVzN1Mi1DOWowSzEtWnYydFkxLUNmRE94LVdmR1JnMi1xWHRjaS1ZeXlFMzQtajA5SDQyLWIwYUN0My1kOWFcIjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmNrRWRpdG9yLmRlZmF1bHRDb25maWcgPSBPYmplY3QuYXNzaWduKFxuICAgICAgICAgICAgdGhpcy5ja0VkaXRvci5kZWZhdWx0Q29uZmlnIHx8IHt9LFxuICAgICAgICAgICAgd3Byb29mcmVhZGVyQ29uZmlnXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgaXNFbmFibGVkVG9nZ2xlVG9vbGJhcigpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3QgcGF0dGVybiA9IC8odG9nZ2xlVG9vbGJhcikvZ21pO1xuICAgICAgICByZXR1cm4gISF0aGlzLnFtc2NrRGF0YS50b2dnbGVkVG9vbGJhckl0ZW1zXG4gICAgICAgICAgICAmJiAhIXRoaXMucW1zY2tQbHVnaW4uaXRlbVRvb2xiYXJcbiAgICAgICAgICAgICYmIHRoaXMucW1zY2tQbHVnaW4uaXRlbVRvb2xiYXIuc2VhcmNoKHBhdHRlcm4pID4gLTE7XG4gICAgfVxuXG4gICAgYWRkVG9nZ2xlVG9vbGJhckNvbmZpZygpIHtcbiAgICAgICAgY29uc3QgaXRlbXMgPSB0aGlzLnFtc2NrRGF0YS50b2dnbGVkVG9vbGJhckl0ZW1zLnNwbGl0KCcsJyk7XG5cbiAgICAgICAgY29uc3QgdG9nZ2xlVG9vbGJhckNvbmZpZyA9IHtcbiAgICAgICAgICAgIHRvZ2dsZVRvb2xiYXJDb25maWc6IHtcbiAgICAgICAgICAgICAgICB0b29sYmFyOiBpdGVtcyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuY2tFZGl0b3IuZGVmYXVsdENvbmZpZyA9IE9iamVjdC5hc3NpZ24oXG4gICAgICAgICAgICB0aGlzLmNrRWRpdG9yLmRlZmF1bHRDb25maWcgfHwge30sXG4gICAgICAgICAgICB0b2dnbGVUb29sYmFyQ29uZmlnXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgaXNFbmFibGVkRnVsbFNjcmVlbkNvbmZpZygpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3QgcGF0dGVybiA9IC8ocW1zRnVsbHNjcmVlbikvZ2ltO1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgISF0aGlzLnFtc2NrUGx1Z2luLml0ZW1Ub29sYmFyICYmXG4gICAgICAgICAgICAhIXRoaXMucW1zY2tEYXRhLmZ1bGxTY3JlZW5DbGFzcyAmJlxuICAgICAgICAgICAgdGhpcy5xbXNja1BsdWdpbi5pdGVtVG9vbGJhci5zZWFyY2gocGF0dGVybikgPiAtMVxuICAgICAgICApO1xuICAgIH1cblxuICAgIGFkZEZ1bGxTY3JlZW5Db25maWcoKSB7XG4gICAgICAgIGNvbnN0IGZ1bGxTY3JlZW5Db25maWcgPSB7XG4gICAgICAgICAgICBmdWxsU2NyZWVuQ29uZmlnOiB7XG4gICAgICAgICAgICAgICAgY2xhc3M6IHRoaXMucW1zY2tEYXRhLmZ1bGxTY3JlZW5DbGFzcyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuY2tFZGl0b3IuZGVmYXVsdENvbmZpZyA9IE9iamVjdC5hc3NpZ24oXG4gICAgICAgICAgICB0aGlzLmNrRWRpdG9yLmRlZmF1bHRDb25maWcgfHwge30sXG4gICAgICAgICAgICBmdWxsU2NyZWVuQ29uZmlnXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgaXNFbmFibGVkVE9DVG9vbGJhcigpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3QgcGF0dGVybiA9IC8odGFibGVPZkNvbnRlbnRzKS9naW07XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAhIXRoaXMucW1zY2tEYXRhLnRhYmxlT2ZDb250ZW50SGVhZGluZ3MgJiZcbiAgICAgICAgICAgICEhdGhpcy5xbXNja1BsdWdpbi5pdGVtVG9vbGJhciAmJlxuICAgICAgICAgICAgdGhpcy5xbXNja1BsdWdpbi5pdGVtVG9vbGJhci5zZWFyY2gocGF0dGVybikgPiAtMVxuICAgICAgICApO1xuICAgIH1cblxuICAgIGFkZFRvZ2dsZVRPQ0NvbmZpZygpIHtcbiAgICAgICAgY29uc3QgaXRlbXMgPSB0aGlzLnFtc2NrRGF0YS50YWJsZU9mQ29udGVudEhlYWRpbmdzLnNwbGl0KFwiLFwiKTtcbiAgICAgICAgY29uc3QgdGFibGVPZkNvbnRlbnRzID0ge1xuICAgICAgICAgICAgdGFibGVPZkNvbnRlbnRzOiB7XG4gICAgICAgICAgICAgICAgc3VwcG9ydGVkSGVhZGluZ3M6IGl0ZW1zLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5ja0VkaXRvci5kZWZhdWx0Q29uZmlnID0gT2JqZWN0LmFzc2lnbihcbiAgICAgICAgICAgIHRoaXMuY2tFZGl0b3IuZGVmYXVsdENvbmZpZyB8fCB7fSxcbiAgICAgICAgICAgIHRhYmxlT2ZDb250ZW50c1xuICAgICAgICApO1xuICAgIH1cblxuICAgIGlzRW5hYmxlZFRpbWVzdGFtcENvbmZpZygpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3QgcGF0dGVybiA9IC8odGltZXN0YW1wKS9naW07XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAhIXRoaXMucW1zY2tEYXRhLnRpbWVzdGFtcEZvcm1hdCAmJlxuICAgICAgICAgICAgISF0aGlzLnFtc2NrUGx1Z2luLml0ZW1Ub29sYmFyICYmXG4gICAgICAgICAgICB0aGlzLnFtc2NrUGx1Z2luLml0ZW1Ub29sYmFyLnNlYXJjaChwYXR0ZXJuKSA+IC0xXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgYWRkVGltZXN0YW1wQ29uZmlnKCkge1xuICAgICAgICBjb25zdCB0aW1lc3RhbXBDb25maWcgPSB7XG4gICAgICAgICAgICB0aW1lc3RhbXBDb25maWc6IHtcbiAgICAgICAgICAgICAgICBkYXRldGltZUZvcm1hdDogdGhpcy5xbXNja0RhdGEudGltZXN0YW1wRm9ybWF0LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5ja0VkaXRvci5kZWZhdWx0Q29uZmlnID0gT2JqZWN0LmFzc2lnbihcbiAgICAgICAgICAgIHRoaXMuY2tFZGl0b3IuZGVmYXVsdENvbmZpZyB8fCB7fSxcbiAgICAgICAgICAgIHRpbWVzdGFtcENvbmZpZ1xuICAgICAgICApO1xuICAgIH1cblxuICAgIGlzRW5hYmxlZE1hdGh0eXBlQ29uZmlnKCk6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCBwYXR0ZXJuID0gLyhNYXRoVHlwZSl8KENoZW1UeXBlKS9naW07XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAhIXRoaXMucW1zY2tEYXRhLm1hdGh0eXBlU2VydmljZVVybCAmJlxuICAgICAgICAgICAgISF0aGlzLnFtc2NrUGx1Z2luLml0ZW1Ub29sYmFyICYmXG4gICAgICAgICAgICB0aGlzLnFtc2NrUGx1Z2luLml0ZW1Ub29sYmFyLnNlYXJjaChwYXR0ZXJuKSA+IC0xXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgYWRkTWF0aFR5cGVDb25maWcoKSB7XG4gICAgICAgIGNvbnN0IG1hdGhUeXBlQ29uZmlnID0ge1xuICAgICAgICAgICAgbWF0aFR5cGVQYXJhbWV0ZXJzOiB7XG4gICAgICAgICAgICAgICAgc2VydmljZVByb3ZpZGVyUHJvcGVydGllczoge1xuICAgICAgICAgICAgICAgICAgICBVUkk6IHRoaXMucW1zY2tEYXRhLm1hdGh0eXBlU2VydmljZVVybCxcbiAgICAgICAgICAgICAgICAgICAgc2VydmVyOiBcImFzcHhcIixcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5ja0VkaXRvci5kZWZhdWx0Q29uZmlnID0gT2JqZWN0LmFzc2lnbihcbiAgICAgICAgICAgIHRoaXMuY2tFZGl0b3IuZGVmYXVsdENvbmZpZyB8fCB7fSxcbiAgICAgICAgICAgIG1hdGhUeXBlQ29uZmlnXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHVibGljIG9uQ2hhbmdlZCh7IGVkaXRvciB9KSB7XG4gICAgICAgIC8vIHRoaXMucW1zY2tDb250ZW50SW5wdXQgPSBlZGl0b3IuZ2V0RGF0YSgpO1xuICAgICAgICB0aGlzLnFtc2NrQ29udGVudE91dHB1dC5lbWl0KHRoaXMucW1zY2tDb250ZW50SW5wdXQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvbkJsdXIoeyBlZGl0b3IgfSkge1xuICAgICAgICB0aGlzLnFtc2NrQ29udGVudElucHV0ID0gZWRpdG9yLmdldERhdGEoKTtcbiAgICAgICAgdGhpcy5xbXNja0NvbnRlbnRPdXRwdXQuZW1pdCh0aGlzLnFtc2NrQ29udGVudElucHV0KTtcbiAgICB9XG5cbiAgICB2YWxpZGF0ZShjOiBGb3JtQ29udHJvbCkge1xuICAgICAgICBpZiAoIXRoaXMucmVxdWlyZWQpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLnFtc2NrQ29udGVudElucHV0ICYmICF0aGlzLnJlcXVpcmVkXG4gICAgICAgICAgICA/IG51bGxcbiAgICAgICAgICAgIDoge1xuICAgICAgICAgICAgICAgIHR5cGU6IHtcbiAgICAgICAgICAgICAgICAgICAgdmFsaWQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICBhY3R1YWw6IGMudmFsdWUsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH07XG4gICAgfVxuXG4gICAgaGlkZUltYWdlT3B0aW9ucyhjb25maWcsIG9wdGlvbnMpIHtcbiAgICAgICAgY29uc3QgaXRlbUFycmF5ID0gb3B0aW9ucy5zcGxpdCgnLCcpO1xuICAgICAgICBpdGVtQXJyYXkuZm9yRWFjaChlbGVtZW50ID0+IHtcbiAgICAgICAgICAgIGNvbmZpZy5pbWFnZS50b29sYmFyID0gY29uZmlnLmltYWdlLnRvb2xiYXIuZmlsdGVyKGZ1bmN0aW9uIChpdGVtKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGl0ZW0gIT09IGVsZW1lbnQ7XG4gICAgICAgICAgICB9KVxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIGNvbmZpZztcbiAgICB9XG4gICAgLyoqXG4gICAgICogb25SZWFkeVxuICAgICAqL1xuICAgIHB1YmxpYyBvblJlYWR5KGVkaXRvcikge1xuICAgICAgICB0aGlzLmVkaXRvckluc3RhbmNlID0gZWRpdG9yO1xuICAgICAgICBpZiAodGhpcy5xbXNja0NvbnRlbnRJbnB1dCkge1xuICAgICAgICAgICAgZWRpdG9yLnNldERhdGEodGhpcy5xbXNja0NvbnRlbnRJbnB1dCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5pbml0RWRpdG9yKGVkaXRvcik7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpbml0RWRpdG9yKGVkaXRvcikge1xuICAgICAgICBjb25zdCBpbWFnZVVwbG9hZFR5cGVzID0gQ0tFZGl0b3JJbWFnZVVwbG9hZFR5cGVDb25zdC5RTVNDS19JTUFHRV9UWVBFU19TVVBQT1JUX0RFRkFVTFQ7XG4gICAgICAgIGNvbnN0IGNvbmZpZzogUW1zVXBsb2FkQWRhcHRlckNvbmZpZyA9IHtcbiAgICAgICAgICAgIGFwaVVybDogdGhpcy5xbXNja0RhdGEuYXBpVXJsLFxuICAgICAgICAgICAgTEFORzogdGhpcy5MQU5HLFxuICAgICAgICAgICAgaW1hZ2VVcGxvYWRUeXBlc1xuICAgICAgICB9O1xuICAgICAgICBlZGl0b3IucGx1Z2lucy5nZXQoXCJGaWxlUmVwb3NpdG9yeVwiKS5jcmVhdGVVcGxvYWRBZGFwdGVyID0gKGxvYWRlcikgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBRbXNVcGxvYWRBZGFwdGVyKGxvYWRlciwgY29uZmlnKTtcbiAgICAgICAgfTtcblxuICAgICAgICBlZGl0b3IudWlcbiAgICAgICAgICAgIC5nZXRFZGl0YWJsZUVsZW1lbnQoKVxuICAgICAgICAgICAgLnBhcmVudEVsZW1lbnQuaW5zZXJ0QmVmb3JlKFxuICAgICAgICAgICAgICAgIGVkaXRvci51aS52aWV3LnRvb2xiYXIuZWxlbWVudCxcbiAgICAgICAgICAgICAgICBlZGl0b3IudWkuZ2V0RWRpdGFibGVFbGVtZW50KClcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgLy8gQXBwZWQgV29yZGNvdW50IHRvIENLZWRpdG9yXG4gICAgICAgIGVkaXRvci5wbHVnaW5zLmdldChcIldvcmRDb3VudFwiKS5vbihcInVwZGF0ZVwiLCAoZXZ0LCBzdGF0cykgPT4ge1xuICAgICAgICAgICAgLy8gUHJpbnRzIHRoZSBjdXJyZW50IGNvbnRlbnQgc3RhdGlzdGljcy5cbiAgICAgICAgICAgIGNvbnN0IHdvcmRzQm94ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcIiNcIiArIHRoaXMuZWRpdG9ySWQgKyBcIiAud29yZGNvdW50LWNvbnRlbnRcIik7XG4gICAgICAgICAgICBpZiAoISF3b3Jkc0JveCkge1xuICAgICAgICAgICAgICAgIHdvcmRzQm94LnRleHRDb250ZW50ID0gYCR7dGhpcy5MQU5HLlFNU0NLRURJVE9SLldPUkRTfTogJHtzdGF0cy53b3Jkc30gLyAke3RoaXMuTEFORy5RTVNDS0VESVRPUi5DSEFSQUNURVJTfTogJHtzdGF0cy5jaGFyYWN0ZXJzfWA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmICh0aGlzLnFtc2NrRGF0YS5pc1JlYWRPbmx5KSB7XG4gICAgICAgICAgICBlZGl0b3IuaXNSZWFkT25seSA9IHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9zZXRFZGl0b3JJbnN0YW5jZU9ic2VydmVyKHRoaXMuZWRpdG9ySWQpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFkZCB0ZW1wbGF0ZSAtIExvYWQgdGVtcGxhdGVcbiAgICAgKi9cbiAgICBwdWJsaWMgdGVtcGxhdGVFdmVudEhhbmRsaW5nKCkge1xuICAgICAgICBjb25zdCBkYXRhOiBRTVNDS0VkaXRvclRlbXBsYXRlID0gbmV3IFFNU0NLRWRpdG9yVGVtcGxhdGUoKTtcbiAgICAgICAgZGF0YS5pZCA9IDA7XG4gICAgICAgIGRhdGEuaHRtbCA9IHRoaXMucW1zY2tDb250ZW50SW5wdXQ7XG4gICAgICAgIGRhdGEuZWRpdCA9IGZhbHNlO1xuICAgICAgICBjb25zdCBkaWFsb2dUZW1wbGF0ZSA9IHRoaXMuZGlhbG9nLm9wZW4oUU1TQ0tFZGl0b3JUZW1wbGF0ZUNvbXBvbmVudCwge1xuICAgICAgICAgICAgd2lkdGg6IFwiNjUwcHhcIixcbiAgICAgICAgICAgIGhlaWdodDogXCI1NDBweFwiLFxuICAgICAgICAgICAgZGF0YSxcbiAgICAgICAgICAgIGRpc2FibGVDbG9zZTogdHJ1ZVxuICAgICAgICB9KTtcbiAgICAgICAgZGlhbG9nVGVtcGxhdGUuY29tcG9uZW50SW5zdGFuY2UuY2tFZGl0b3IgPSB0aGlzLmVkaXRvckluc3RhbmNlO1xuICAgICAgICBkaWFsb2dUZW1wbGF0ZVxuICAgICAgICAgICAgLmFmdGVyQ2xvc2VkKClcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJjcmliZSkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChyZXN1bHQpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAocmVzdWx0KSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIFRET1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFkZCB0ZW1wbGF0ZSAtIExvYWQgdGVtcGxhdGVcbiAgICAgKi9cbiAgICBwdWJsaWMgbG9hZFRlbXBsYXRlRXZlbnRIYW5kbGluZygpIHtcbiAgICAgICAgY29uc3QgZGlhbG9nVGVtcGxhdGUgPSB0aGlzLmRpYWxvZy5vcGVuKFFNU0NLRWRpdG9yTG9hZFRlbXBsYXRlQ29tcG9uZW50LCB7XG4gICAgICAgICAgICB3aWR0aDogXCI2NTBweFwiLFxuICAgICAgICAgICAgaGVpZ2h0OiBcIjcwMHB4XCIsXG4gICAgICAgICAgICBkYXRhOiB7IGVuYWJsZUVkaXRUZW1wbGF0ZTogdGhpcy5xbXNja0RhdGEuZW5hYmxlVGVtcGxhdGUgfSxcbiAgICAgICAgICAgIGRpc2FibGVDbG9zZTogdHJ1ZSxcbiAgICAgICAgfSk7XG4gICAgICAgIGRpYWxvZ1RlbXBsYXRlLmNvbXBvbmVudEluc3RhbmNlLmNrRWRpdG9yID0gdGhpcy5lZGl0b3JJbnN0YW5jZTtcbiAgICAgICAgZGlhbG9nVGVtcGxhdGVcbiAgICAgICAgICAgIC5hZnRlckNsb3NlZCgpXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5uZ1Vuc3ViY3JpYmUpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgocmVzdWx0KSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHJlc3VsdCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBldnQgPSBuZXcgQ3VzdG9tRXZlbnQoXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNrRWRpdG9yRXZlbnRDb25zdC5RTVNDS19MT0FEX1RFTVBMQVRFX1BMVUdJTl9SRVNQLFxuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRldGFpbDogcmVzdWx0LFxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICB3aW5kb3cuZGlzcGF0Y2hFdmVudChldnQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFuY2hvciAtIExpbmsgLSBJbWFnZSBtYXBwaW5nXG4gICAgICovXG4gICAgcHVibGljIGxpbmtFdmVudEhhbmRsaW5nKFxuICAgICAgICBsaW5rLFxuICAgICAgICBxbXNja0NvbnRlbnRGaWVsZHM/LFxuICAgICAgICBxbXNja0lzR2V0QW5jaG9yTW9yZUNvbnRlbnQ/XG4gICAgKSB7XG4gICAgICAgIGlmIChsaW5rLmNrZWRpdG9ySWQgIT0gdGhpcy5lZGl0b3JJbnN0YW5jZS5pZClcbiAgICAgICAgICAgIHJldHVybjtcblxuICAgICAgICBsZXQgZGF0YSA9IG5ldyBRTVNDS0VkaXRvckxpbmsoKTtcbiAgICAgICAgZGF0YSA9IGxpbms7XG4gICAgICAgIGRhdGEuZWRpdG9yQ29udGVudCA9IHRoaXMucW1zY2tDb250ZW50SW5wdXQ7XG4gICAgICAgIGRhdGEubW9kdWxlID0gdGhpcy5xbXNja0RhdGEubW9kdWxlO1xuICAgICAgICBkYXRhLmVudGl0eUlkID0gdGhpcy5xbXNja0RhdGEuZW50aXR5SWQ7XG4gICAgICAgIGlmIChxbXNja0NvbnRlbnRGaWVsZHMgJiYgcW1zY2tJc0dldEFuY2hvck1vcmVDb250ZW50KSB7XG4gICAgICAgICAgICBkYXRhLnFtc2NrQ29udGVudEZpZWxkcyA9IHFtc2NrQ29udGVudEZpZWxkcztcbiAgICAgICAgICAgIGRhdGEucW1zY2tJc0dldEFuY2hvck1vcmVDb250ZW50ID0gcW1zY2tJc0dldEFuY2hvck1vcmVDb250ZW50O1xuICAgICAgICB9XG4gICAgICAgIGRhdGEuZGVmYXVsdFRhcmdldE5ld1dpbmRvdyA9IHRoaXMucW1zY2tEYXRhLmRlZmF1bHRUYXJnZXROZXdXaW5kb3c7XG4gICAgICAgIGRhdGEuZW5hYmxlZEludGVyY29ubmVjdGVkID0gdGhpcy5xbXNja0RhdGEuZW5hYmxlZEludGVyY29ubmVjdGVkO1xuXG4gICAgICAgIGxldCBkaWFsb2dUZW1wbGF0ZTtcbiAgICAgICAgaWYgKCF0aGlzLnFtc2NrUGx1Z2luLnNpbXBsZU1vZGUpIHtcbiAgICAgICAgICAgIGRpYWxvZ1RlbXBsYXRlID0gdGhpcy5kaWFsb2cub3BlbihRTVNDS0VkaXRvckxpbmtDb21wb25lbnQsIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogXCI2NTBweFwiLFxuICAgICAgICAgICAgICAgIGhlaWdodDogXCI2NjBweFwiLFxuICAgICAgICAgICAgICAgIGRhdGEsXG4gICAgICAgICAgICAgICAgZGlzYWJsZUNsb3NlOiB0cnVlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBkaWFsb2dUZW1wbGF0ZSA9IHRoaXMuZGlhbG9nLm9wZW4oUW1zQ2tlZGl0b3JMaW5rU2ltcGxlQ29tcG9uZW50LCB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IFwiNjUwcHhcIixcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IFwiMjAwcHhcIixcbiAgICAgICAgICAgICAgICBkYXRhLFxuICAgICAgICAgICAgICAgIGRpc2FibGVDbG9zZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICBhdXRvRm9jdXM6IGZhbHNlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgZGlhbG9nVGVtcGxhdGUuY29tcG9uZW50SW5zdGFuY2UuY2tFZGl0b3IgPSB0aGlzLmVkaXRvckluc3RhbmNlO1xuICAgICAgICBkaWFsb2dUZW1wbGF0ZVxuICAgICAgICAgICAgLmFmdGVyQ2xvc2VkKClcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJjcmliZSkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChyZXN1bHQpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBldnQgPSBuZXcgQ3VzdG9tRXZlbnQodGhpcy5ja0VkaXRvckV2ZW50Q29uc3QuUU1TQ0tfTElOS19QTFVHSU5fUkVTUCwge1xuICAgICAgICAgICAgICAgICAgICBkZXRhaWw6IHJlc3VsdFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHdpbmRvdy5kaXNwYXRjaEV2ZW50KGV2dCk7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUb29sdGlwIG1hcHBpbmdcbiAgICAgKi9cbiAgICBwdWJsaWMgdG9vbHRpcEV2ZW50SGFuZGxpbmcodmFsdWUpIHtcbiAgICAgICAgbGV0IGRhdGEgPSBuZXcgUU1TQ0tFZGl0b3JUb29sdGlwKCk7XG4gICAgICAgIGRhdGEudGV4dCA9IHZhbHVlLnRleHQ7XG4gICAgICAgIGRhdGEuY29udGVudCA9IHZhbHVlLmNvbnRlbnQ7XG4gICAgICAgIGRhdGEuY2tFZGl0b3IgPSB0aGlzLnFtc2NrUGx1Z2luLnBsdWdpbk9iamVjdDtcblxuICAgICAgICBjb25zdCBkaWFsb2dUZW1wbGF0ZSA9IHRoaXMuZGlhbG9nLm9wZW4oUU1TQ0tFZGl0b3JUb29sdGlwQ29tcG9uZW50LCB7XG4gICAgICAgICAgICB3aWR0aDogXCI2NTBweFwiLFxuICAgICAgICAgICAgaGVpZ2h0OiBcIjU1NXB4XCIsXG4gICAgICAgICAgICBkYXRhLFxuICAgICAgICAgICAgZGlzYWJsZUNsb3NlOiB0cnVlLFxuICAgICAgICB9KTtcbiAgICAgICAgZGlhbG9nVGVtcGxhdGUuY29tcG9uZW50SW5zdGFuY2UuY2tFZGl0b3IgPSB0aGlzLmVkaXRvckluc3RhbmNlO1xuICAgICAgICBkaWFsb2dUZW1wbGF0ZVxuICAgICAgICAgICAgLmFmdGVyQ2xvc2VkKClcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJjcmliZSkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChyZXN1bHQpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAocmVzdWx0KSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGV2dCA9IG5ldyBDdXN0b21FdmVudChcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY2tFZGl0b3JFdmVudENvbnN0LlFNU0NLX1RPT0xUSVBfUExVR0lOX1JFU1AsXG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGV0YWlsOiByZXN1bHQsXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIHdpbmRvdy5kaXNwYXRjaEV2ZW50KGV2dCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSW1hZ2VNYXAgbWFwcGluZ1xuICAgICAqL1xuICAgIHB1YmxpYyBpbWFnZU1hcEV2ZW50SGFuZGxpbmcodmFsdWUpIHtcbiAgICAgICAgbGV0IGRhdGEgPSBuZXcgUU1TQ0tFZGl0b3JJbWFnZU1hcCgpO1xuICAgICAgICBkYXRhLm5hbWUgPSB2YWx1ZS5uYW1lO1xuICAgICAgICBkYXRhLmFyZWFzID0gdmFsdWUuYXJlYXM7XG4gICAgICAgIGRhdGEuaW1hZ2VVcmwgPSB2YWx1ZS5pbWFnZVVybDtcbiAgICAgICAgZGF0YS5pbWFnZVdpZHRoID0gdmFsdWUuaW1hZ2VXaWR0aDtcbiAgICAgICAgZGF0YS5pbWFnZUhlaWdodCA9IHZhbHVlLmltYWdlSGVpZ2h0O1xuICAgICAgICBkYXRhLm1vZHVsZSA9IHRoaXMucW1zY2tEYXRhLm1vZHVsZTtcbiAgICAgICAgZGF0YS5lbnRpdHlJZCA9IHRoaXMucW1zY2tEYXRhLmVudGl0eUlkO1xuICAgICAgICBkYXRhLmVkaXRvckNvbnRlbnQgPSB0aGlzLnFtc2NrQ29udGVudElucHV0O1xuICAgICAgICBkYXRhLmxpbmtKYXZhU2NyaXB0TGlua3NBbGxvd2VkID0gdGhpcy5xbXNja0RhdGEubGlua0phdmFTY3JpcHRMaW5rc0FsbG93ZWQ7XG4gICAgICAgIGRhdGEuZW5hYmxlZEludGVyY29ubmVjdGVkID0gdGhpcy5xbXNja0RhdGEuZW5hYmxlZEludGVyY29ubmVjdGVkO1xuICAgICAgICBkYXRhLmRlZmF1bHRUYXJnZXROZXdXaW5kb3cgPSB0aGlzLnFtc2NrRGF0YS5kZWZhdWx0VGFyZ2V0TmV3V2luZG93O1xuXG4gICAgICAgIGNvbnN0IGRpYWxvZ1RlbXBsYXRlID0gdGhpcy5kaWFsb2cub3BlbihRTVNDS0VkaXRvckltYWdlTWFwQ29tcG9uZW50LCB7XG4gICAgICAgICAgICBkYXRhLFxuICAgICAgICAgICAgZGlzYWJsZUNsb3NlOiB0cnVlLFxuICAgICAgICB9KTtcbiAgICAgICAgZGlhbG9nVGVtcGxhdGUuY29tcG9uZW50SW5zdGFuY2UuY2tFZGl0b3IgPSB0aGlzLmVkaXRvckluc3RhbmNlO1xuICAgICAgICBkaWFsb2dUZW1wbGF0ZVxuICAgICAgICAgICAgLmFmdGVyQ2xvc2VkKClcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJjcmliZSkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChyZXN1bHQpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAocmVzdWx0KSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGV2dCA9IG5ldyBDdXN0b21FdmVudChcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY2tFZGl0b3JFdmVudENvbnN0LlFNU0NLX0lNQUdFTUFQX1BMVUdJTl9SRVNQLFxuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRldGFpbDogcmVzdWx0LFxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICB3aW5kb3cuZGlzcGF0Y2hFdmVudChldnQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qXG4gICAgICBCdXNpbmVzcyBQcm9jZXNzIE1vZGVsIGFuZCBOb3RhdGlvblxuICAgICovXG4gICAgcHVibGljIGJwbW5FdmVudEhhbmRsaW5nKGlkOiBzdHJpbmcpIHtcbiAgICAgICAgbGV0IGRhdGEgPSBuZXcgUU1TQ0tFZGl0b3JCcG1uRGF0YSgpO1xuICAgICAgICBkYXRhLmlkID0gaWQ7XG4gICAgICAgIGRhdGEubW9kdWxlID0gdGhpcy5xbXNja0RhdGEubW9kdWxlO1xuICAgICAgICBkYXRhLmVudGl0eUlkID0gdGhpcy5xbXNja0RhdGEuZW50aXR5SWQ7XG4gICAgICAgIGRhdGEuZWRpdG9yQ29udGVudCA9IHRoaXMucW1zY2tDb250ZW50SW5wdXQ7XG4gICAgICAgIGRhdGEuc2hvd1Byb2Nlc3NEb2N1bWVudFRyZWVEYXRhSW5TcGxpdFZpZXcgPSB0aGlzLnFtc2NrRGF0YS5zaG93UHJvY2Vzc0RvY3VtZW50VHJlZURhdGFJblNwbGl0VmlldztcbiAgICAgICAgZGF0YS5lbmFibGVkSW50ZXJjb25uZWN0ZWQgPSB0aGlzLnFtc2NrRGF0YS5lbmFibGVkSW50ZXJjb25uZWN0ZWQ7XG4gICAgICAgIGRhdGEuZW5hYmxlZERldmlhdGlvbk1vZHVsZSA9IHRoaXMucW1zY2tEYXRhLmVuYWJsZWREZXZpYXRpb25Nb2R1bGU7XG4gICAgICAgIGRhdGEuZW5hYmxlZENoZWNrbGlzdE1vZHVsZSA9IHRoaXMucW1zY2tEYXRhLmVuYWJsZWRDaGVja2xpc3RNb2R1bGU7XG4gICAgICAgIGNvbnN0IGRpYWxvZ1RlbXBsYXRlID0gdGhpcy5kaWFsb2cub3BlbihRTVNDS0VkaXRvckJwbW5Db21wb25lbnQsIHtcbiAgICAgICAgICAgIHdpZHRoOiBcIjEwMCVcIixcbiAgICAgICAgICAgIG1heFdpZHRoOiBcIjEwMHZ3XCIsXG4gICAgICAgICAgICBoZWlnaHQ6IFwiMTAwJVwiLFxuICAgICAgICAgICAgbWF4SGVpZ2h0OiBcIjEwMHZ3XCIsXG4gICAgICAgICAgICBkYXRhOiBkYXRhLFxuICAgICAgICAgICAgZGlzYWJsZUNsb3NlOiB0cnVlLFxuICAgICAgICB9KTtcbiAgICAgICAgZGlhbG9nVGVtcGxhdGUuY29tcG9uZW50SW5zdGFuY2UuY2tFZGl0b3IgPSB0aGlzLmVkaXRvckluc3RhbmNlO1xuICAgICAgICBkaWFsb2dUZW1wbGF0ZVxuICAgICAgICAgICAgLmFmdGVyQ2xvc2VkKClcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJjcmliZSkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChyZXN1bHQpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAocmVzdWx0KSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGV2dCA9IG5ldyBDdXN0b21FdmVudChcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY2tFZGl0b3JFdmVudENvbnN0LlFNU0NLX0JQTU5fUExVR0lOX1JFU1AsXG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGV0YWlsOiByZXN1bHQsXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIHdpbmRvdy5kaXNwYXRjaEV2ZW50KGV2dCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgfVxuICAgIC8qXG4gICAgIEFib3V0IENLRWRpdG9yXG4gICAqL1xuICAgIHB1YmxpYyBhYm91dENLRWRpdG9yRXZlbnRIYW5kbGluZyh2ZXJzaW9uOiBzdHJpbmcpIHtcbiAgICAgICAgY29uc3QgZGlhbG9nVGVtcGxhdGUgPSB0aGlzLmRpYWxvZy5vcGVuKFFNU0NLRWRpdG9yQWJvdXRDb21wb25lbnQsIHtcbiAgICAgICAgICAgIHdpZHRoOiBcIjUwMHB4XCIsXG4gICAgICAgICAgICBkYXRhOiB2ZXJzaW9uLFxuICAgICAgICAgICAgZGlzYWJsZUNsb3NlOiB0cnVlLFxuICAgICAgICB9KTtcbiAgICAgICAgZGlhbG9nVGVtcGxhdGUuY29tcG9uZW50SW5zdGFuY2UuY2tFZGl0b3IgPSB0aGlzLmVkaXRvckluc3RhbmNlO1xuICAgICAgICBkaWFsb2dUZW1wbGF0ZVxuICAgICAgICAgICAgLmFmdGVyQ2xvc2VkKClcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJjcmliZSkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChyZXN1bHQpID0+IHsgfSk7XG4gICAgfVxuXG4gICAgLypcbiAgICAgIFRvb2xiYXIgdG9nZ2xlXG4gIFxuICAgICAgVGhpcyBpcyBhIHRlbXBvcmFyeSB3b3JrYXJvdW5kLlxuICAgICAgVHJhY2tpbmcgc3RhdHVzIGFuZCBwcm9ncmVzcyBvZiB0aGUgaXNzdWUgaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvNzM4M1xuICBcbiAgICAgIC0gUmVuZGVyIGJvdGggZGVmYXVsdCB0b29sYmFyIGFuZCB0b2dnbGUgdG9vbGJhciBhdCBpbml0IHRpbWVcbiAgICAgIC0gU2V0IElEIGZvciB0b29sYmFyIGl0ZW1zIHVzaW5nIGluZGV4OlxuICAgICAgICArIEZyb20gaW5kZXggMCB0byB0b29sYmFyTGVuZ3RoIC0gMSBpcyB0aGUgZGVmYXVsdCB0b29sYmFyXG4gICAgICAgICsgRnJvbSBpbmRleCB0b29sYmFyTGVuZ3RoIG9uIGlzIHRoZSB0b2dnbGUgdG9vbGJhclxuICAgICAgLSBTaG93L2hpZGUgZGVmYXVsdCBhbmQgdG9nZ2xlIHRvb2xiYXIgYnkgc2V0IGRpc3BsYXkgbm9uZSB0byBjb3JyZXNwb25kaW5nIHRvb2xiYXIgaXRlbXMgYmFzZWQgb24gSURcbiAgICAqL1xuICAgIHB1YmxpYyB0b2dnbGVUb29sYmFyRXZlbnRIYW5kbGluZygpIHtcbiAgICAgICAgY29uc3QgcW1zY2tlZGl0b3IgPSB3aW5kb3cuZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5lZGl0b3JJZCk7XG4gICAgICAgIGNvbnN0IHRvZ2dsZUF0dHJpYnV0ZSA9ICdpc1RvZ2dsZVRvb2xiYXInO1xuXG4gICAgICAgIGlmIChxbXNja2VkaXRvcikge1xuICAgICAgICAgICAgY29uc3QgaXNUb2dnbGVUb29sYmFyID1cbiAgICAgICAgICAgICAgICBxbXNja2VkaXRvci5nZXRBdHRyaWJ1dGUodG9nZ2xlQXR0cmlidXRlKSA9PSBcInRydWVcIjtcbiAgICAgICAgICAgIGlmIChpc1RvZ2dsZVRvb2xiYXIpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zZXRUb29sYmFyVmlld01vZGUodHJ1ZSk7XG4gICAgICAgICAgICAgICAgcW1zY2tlZGl0b3Iuc2V0QXR0cmlidXRlKHRvZ2dsZUF0dHJpYnV0ZSwgJ2ZhbHNlJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zZXRUb29sYmFyVmlld01vZGUoZmFsc2UpO1xuICAgICAgICAgICAgICAgIHFtc2NrZWRpdG9yLnNldEF0dHJpYnV0ZSh0b2dnbGVBdHRyaWJ1dGUsICd0cnVlJylcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgX3NldFRvb2xiYXJWaWV3TW9kZShzaG93VG9nZ2xlVG9vbGJhcjogYm9vbGVhbikge1xuICAgICAgICBjb25zdCB0b29sYmFyTGVuZ3RoID0gdGhpcy5xbXNja1BsdWdpbi5pdGVtVG9vbGJhcj8uc3BsaXQoJywnKS5sZW5ndGggfHwgMDtcbiAgICAgICAgLypcbiAgICAgICAgICBJdGVtcyBpbiB0b29sYmFyIGFyZSBpbmRleGVkOlxuICAgICAgICAgIC0gRnJvbSBpbmRleCAwIHRvIHRvb2xiYXJMZW5ndGggLSAxIGlzIHRoZSBkZWZhdWx0IHRvb2xiYXJcbiAgICAgICAgICAtIEZyb20gaW5kZXggdG9vbGJhckxlbmd0aCBvbiBpcyB0aGUgdG9nZ2xlIHRvb2xiYXJcbiAgICAgICAgKi9cbiAgICAgICAgJChgIyR7dGhpcy50b29sYmFySXRlbVByZWZpeElkfSR7dG9vbGJhckxlbmd0aCAtIDF9YCk/LnByZXZBbGwoKS5lYWNoKChpbmRleCwgZWxlbWVudCkgPT4ge1xuICAgICAgICAgICAgZWxlbWVudC5zdHlsZS5kaXNwbGF5ID0gc2hvd1RvZ2dsZVRvb2xiYXIgPyAnbm9uZScgOiAnJztcbiAgICAgICAgfSlcblxuICAgICAgICAkKGAjJHt0aGlzLnRvb2xiYXJJdGVtUHJlZml4SWR9JHt0b29sYmFyTGVuZ3RoIC0gMX1gKT8uY3NzKCdkaXNwbGF5Jywgc2hvd1RvZ2dsZVRvb2xiYXIgPyAnbm9uZScgOiAnJyk7XG5cbiAgICAgICAgJChgIyR7dGhpcy50b29sYmFySXRlbVByZWZpeElkfSR7dG9vbGJhckxlbmd0aCAtIDF9YCk/Lm5leHRBbGwoKS5lYWNoKChpbmRleCwgZWxlbWVudCkgPT4ge1xuICAgICAgICAgICAgZWxlbWVudC5zdHlsZS5kaXNwbGF5ID0gc2hvd1RvZ2dsZVRvb2xiYXIgPyAnJyA6ICdub25lJztcbiAgICAgICAgfSlcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBGbG93Y2hhcnRcbiAgICAgKi9cbiAgICBwdWJsaWMgZmxvd2NoYXJ0RXZlbnRIYW5kbGluZyhpZDogc3RyaW5nKSB7XG4gICAgICAgIGNvbnN0IGRpYWxvZ1RlbXBsYXRlID0gdGhpcy5kaWFsb2cub3BlbihRTVNDS0VkaXRvckZsb3djaGFydENvbXBvbmVudCwge1xuICAgICAgICAgICAgd2lkdGg6IFwiODl2d1wiLFxuICAgICAgICAgICAgbWF4V2lkdGg6IFwiMTAwdndcIixcbiAgICAgICAgICAgIGhlaWdodDogXCI3MjVweFwiLFxuICAgICAgICAgICAgbWF4SGVpZ2h0OiBcIjEwMHZ3XCIsXG4gICAgICAgICAgICBkYXRhOiBpZCxcbiAgICAgICAgICAgIGRpc2FibGVDbG9zZTogdHJ1ZSxcbiAgICAgICAgfSk7XG4gICAgICAgIGRpYWxvZ1RlbXBsYXRlLmNvbXBvbmVudEluc3RhbmNlLmNrRWRpdG9yID0gdGhpcy5lZGl0b3JJbnN0YW5jZTtcbiAgICAgICAgZGlhbG9nVGVtcGxhdGVcbiAgICAgICAgICAgIC5hZnRlckNsb3NlZCgpXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5uZ1Vuc3ViY3JpYmUpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgocmVzdWx0KSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHJlc3VsdCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBldnQgPSBuZXcgQ3VzdG9tRXZlbnQoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5ja0VkaXRvckV2ZW50Q29uc3QuUU1TQ0tfRkxPV0NIQVJUX1BMVUdJTl9SRVNQLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGV0YWlsOiByZXN1bHQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpbmRvdy5kaXNwYXRjaEV2ZW50KGV2dCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBCcm93c2UgVmlkZW9cbiAgICAgKi9cbiAgICBwdWJsaWMgYnJvd3NlVmlkZW9FdmVudEhhbmRsaW5nKHZhbHVlKSB7XG4gICAgICAgIHRoaXMudHJlZVNlcnZpY2VcbiAgICAgICAgICAgIC5nZXRVcGxvYWRWaWRlb0xpc3QoKVxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMubmdVbnN1YmNyaWJlKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgdmlkZW9zID0gcmVzcG9uc2UgfHwgW107XG4gICAgICAgICAgICAgICAgY29uc3QgY29uZmlnID0ge1xuICAgICAgICAgICAgICAgICAgICBhbGxvd1NlbGVjdEZvbGRlcjogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIGFyZWFPZkN1cnJlbnRQcm9jZXNzOiBcIlwiLFxuICAgICAgICAgICAgICAgICAgICBzaG93Q2hlY2tCb3g6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIGFsbG93TXVsdGlwbGVDaGVjazogdGhpcy5xbXNja0RhdGEudXBsb2FkVmlkZW9BbGxvd011bHRpcGxlQ2hlY2ssXG4gICAgICAgICAgICAgICAgICAgIG9ubHlDaGVja0JveEZvckNoaWxkOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICBtb2R1bGVJZDogRGF0YVR5cGUuZG9jdW1lbnQsXG4gICAgICAgICAgICAgICAgICAgIG9wZW5JY29uOiBcImZvbGRlcl9vcGVuXCIsXG4gICAgICAgICAgICAgICAgICAgIG9wZW5JY29uQ29sb3I6IFwiIzE5NTRBOVwiLFxuICAgICAgICAgICAgICAgICAgICBjbG9zZUljb246IFwiZm9sZGVyX2ZpbGxlZFwiLFxuICAgICAgICAgICAgICAgICAgICBjbG9zZUljb25Db2xvcjogXCIjNGFjYWZmXCIsXG4gICAgICAgICAgICAgICAgICAgIGl0ZW1JY29uOiBcImluc2VydF9kcml2ZV9maWxlXCIsXG4gICAgICAgICAgICAgICAgICAgIGl0ZW1JY29uUGF0aDogXCJcIixcbiAgICAgICAgICAgICAgICAgICAgaXRlbUljb25CYXNlNjQ6IFwiXCIsXG4gICAgICAgICAgICAgICAgICAgIHNpbmdsZVNlbGVjdGVkTm9kZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgZXhwYW5kQWxsOiB0cnVlLFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgY29uc3QgZGF0YTogUG9wdXBEYXRhID0gbmV3IFBvcHVwRGF0YSgpO1xuICAgICAgICAgICAgICAgIGRhdGEubW9kdWxlSWQgPSAyO1xuICAgICAgICAgICAgICAgIGRhdGEubW9kdWxlTmFtZSA9IHRoaXMuTEFORy5RTVNDS0VESVRPUi5TRUxFQ1RfVklERU9fRlJPTV9BUkNISVZFO1xuICAgICAgICAgICAgICAgIGRhdGEubW9kdWxlVXBsb2FkSW1hZ2VOYW1lID0gdGhpcy5MQU5HLlFNU0NLRURJVE9SLlNFTEVDVF9WSURFT19JTUFHRTtcbiAgICAgICAgICAgICAgICBkYXRhLm1vZHVsZVVwbG9hZEZpbGVOYW1lID0gdGhpcy5MQU5HLlFNU0NLRURJVE9SLkFERF9BX0ZJTEU7XG5cbiAgICAgICAgICAgICAgICBkYXRhLnZpZGVvRGF0YSA9IG5ldyBRTVNDS0VkaXRvclZpZGVvKHZhbHVlLmlkLCB2YWx1ZS5zcmMsIHRydWUsIHZhbHVlLnBvc3RlclxuICAgICAgICAgICAgICAgICAgICAsIHZhbHVlLndpZHRoPy50b1N0cmluZygpPy5pbmRleE9mKCclJykgPCAwID8gdmFsdWUud2lkdGg/LnRvU3RyaW5nKCk/Lm1hdGNoKC9cXGQvZyk/LmpvaW4oJycpIDogbnVsbFxuICAgICAgICAgICAgICAgICAgICAsIHZhbHVlLmhlaWdodD8udG9TdHJpbmcoKT8ubWF0Y2goL1xcZC9nKT8uam9pbignJykpO1xuICAgICAgICAgICAgICAgIGRhdGEuY2FuVXBkYXRlVmlkZW9Qcm9wZXJ0aWVzID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBkYXRhLnRyZWVEYXRhMSA9IHZpZGVvcy5tYXAoKGl0ZW0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJvb3RJZDogYHJvb3QtJHtpdGVtLnJvb3RJZH1gLFxuICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50SWQ6IChpdGVtLnBhcmVudElkICE9PSBudWxsICYmIGl0ZW0ucGFyZW50SWQgIT09IFwiXCIpID8gYHJvb3QtJHtpdGVtLnBhcmVudElkfWAgOiBpdGVtLnBhcmVudElkLFxuICAgICAgICAgICAgICAgICAgICAgICAgcm9vdE5hbWU6IGl0ZW0ucm9vdE5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICBzdWJOYW1lOiBpdGVtLnN1Yk5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICBjaGlsZElkOiBpdGVtLmNoaWxkSWQsXG4gICAgICAgICAgICAgICAgICAgICAgICBjaGlsZE5hbWU6IGl0ZW0uY2hpbGROYW1lLFxuICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzSWQ6IGl0ZW0uc3RhdHVzSWQsXG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5SWQ6IGl0ZW0uZGlzcGxheUlkLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudFR5cGU6IGl0ZW0uY29udGVudFR5cGUsXG4gICAgICAgICAgICAgICAgICAgICAgICB1cmw6IGl0ZW0udXJsLFxuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgZGF0YS50cmVlRGF0YTIgPSBbXTtcbiAgICAgICAgICAgICAgICBkYXRhLnRyZWVDb25maWcxID0gY29uZmlnO1xuICAgICAgICAgICAgICAgIGRhdGEuY2FuVXBsb2FkSW1hZ2UgPSB2aWRlb3MubGVuZ3RoID8gdHJ1ZSA6IGZhbHNlO1xuICAgICAgICAgICAgICAgIGRhdGEuY2FuVXBsb2FkVmlkZW8gPSB0aGlzLnFtc2NrRGF0YS52aWRlb1VwbG9hZE1vZGUgPT09IFZpZGVvVXBsb2FkTW9kZS5BbGxvd1VwbG9hZDtcbiAgICAgICAgICAgICAgICBkYXRhLm1heFZpZGVvVGh1bWJuYWlsU2l6ZUtCID0gdGhpcy5xbXNja0RhdGEubWF4VmlkZW9UaHVtYm5haWxTaXplS0I7XG4gICAgICAgICAgICAgICAgZGF0YS5lbnRpdHlJZCA9IHRoaXMucW1zY2tEYXRhLmVudGl0eUlkO1xuXG4gICAgICAgICAgICAgICAgaWYgKHZhbHVlLnNlbGVjdGVkSWQpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZGlzYWJsZWRMaXN0ID0gW2RhdGEudHJlZURhdGExLmZpbmQoeCA9PiB4LmNoaWxkSWQgPT09IHZhbHVlLnNlbGVjdGVkSWQpXSB8fCBbXTtcbiAgICAgICAgICAgICAgICAgICAgZGF0YS5kaXNhYmxlZExpc3QgPSBkaXNhYmxlZExpc3QubWFwKHggPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZDogeC5jaGlsZElkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1OYW1lOiB4LmNoaWxkTmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5SWQ6IHguZGlzcGxheUlkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmVudElkOiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKFJlbGF0ZWRQb3B1cENvbXBvbmVudCwge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogXCI4MDBweFwiLFxuICAgICAgICAgICAgICAgICAgICBtaW5IZWlnaHQ6IFwiNjMwcHhcIixcbiAgICAgICAgICAgICAgICAgICAgZGF0YSxcbiAgICAgICAgICAgICAgICAgICAgcGFuZWxDbGFzczogXCJxbXNja2VkaXRvci1icm93c2UtdmlkZW8tcG9wdXBcIixcbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBzZWFyY2hCb3ggPSB3aW5kb3cuZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiLnFtc2NrZWRpdG9yLWJyb3dzZS12aWRlby1wb3B1cCAjcW1zbGliX3JlbGF0ZWRfcG9wdXBfc2VhcmNoXCJcbiAgICAgICAgICAgICAgICAgICAgKSBhcyBIVE1MRWxlbWVudDtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHNlYXJjaEJveCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgc2VhcmNoQm94LnN0eWxlLmRpc3BsYXkgPSBcIm5vbmVcIjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sIDEwMCk7XG5cbiAgICAgICAgICAgICAgICBkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUoKHJlc3VsdCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0ICYmIHJlc3VsdC5zcmMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCB1cmxzID0gW107XG4gICAgICAgICAgICAgICAgICAgICAgICB1cmxzID0gW3Jlc3VsdC5zcmNdO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFyZXN1bHQud2lkdGggfHwgcmVzdWx0LndpZHRoIDw9IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQud2lkdGggPSBWaWRlb0NvbnN0LkRFRkFVTFRfVklERU9fV0lEVEg7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXJlc3VsdC5oZWlnaHQgfHwgcmVzdWx0LmhlaWdodCA8PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmhlaWdodCA9IFZpZGVvQ29uc3QuREVGQVVMVF9WSURFT19IRUlHSFQ7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBldnQgPSBuZXcgQ3VzdG9tRXZlbnQoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5ja0VkaXRvckV2ZW50Q29uc3QuUU1TQ0tfQlJPV1NFX1ZJREVPX1JFU1AsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgeyBkZXRhaWw6IHsgdXJsczogdXJscywgdGh1bWJuYWlsVXJsOiByZXN1bHQucG9zdGVyLCBpZDogcmVzdWx0LmlkLCB3aWR0aDogcmVzdWx0LndpZHRoLCBoZWlnaHQ6IHJlc3VsdC5oZWlnaHQgfSB9XG4gICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgd2luZG93LmRpc3BhdGNoRXZlbnQoZXZ0KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfc2V0RWRpdG9ySW5zdGFuY2VPYnNlcnZlcihlZGl0b3JJZDogc3RyaW5nKSB7XG4gICAgICAgICQoZG9jdW1lbnQpLm9mZignRE9NTm9kZUluc2VydGVkJykub24oJ0RPTU5vZGVJbnNlcnRlZCcsIChlKSA9PiB7XG4gICAgICAgICAgICBpZiAoIXRoaXMuaXNUb29sYmFySXRlbXNJZFNldCAmJiAkKGUudGFyZ2V0KS5oYXMoJyMnICsgZWRpdG9ySWQpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc2V0SWRGb3JUb29sYmFySXRlbXMoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfc2V0SWRGb3JUb29sYmFySXRlbXMoKSB7XG4gICAgICAgIGNvbnN0IHRvb2xiYXJJdGVtcyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoYCR7dGhpcy5lZGl0b3JJZCA/ICcjJyArIHRoaXMuZWRpdG9ySWQgOiAnJ30gLmNrLXRvb2xiYXJfX2l0ZW1zYCk/LmNoaWxkcmVuIHx8IFtdO1xuICAgICAgICBpZiAoIXRvb2xiYXJJdGVtcy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmlzVG9vbGJhckl0ZW1zSWRTZXQgPSB0cnVlO1xuICAgICAgICAoQXJyYXkuZnJvbSh0b29sYmFySXRlbXMpIGFzIEhUTUxFbGVtZW50W10pLmZvckVhY2goKGl0ZW0sIGluZGV4KSA9PiB7XG4gICAgICAgICAgICBpdGVtLmlkID0gYCR7dGhpcy50b29sYmFySXRlbVByZWZpeElkfSR7aW5kZXh9YDtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy50b2dnbGVUb29sYmFyRXZlbnRIYW5kbGluZygpO1xuICAgIH1cbn1cbiJdfQ==
|