@esfaenza/admin-module 15.2.36 → 15.2.38

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.
@@ -80,7 +80,7 @@ export class AdmDynamicViewsComponent {
80
80
  var view = JSON.parse(JSON.stringify(this.searchView));
81
81
  view.page = 1;
82
82
  view.itemsperpageoverride = 9999999;
83
- let tmp = this.searchView = await this.adms.getDynamicViewData(view);
83
+ let tmp = await this.adms.getDynamicViewData(view);
84
84
  callback(tmp.items, GenericItem);
85
85
  }
86
86
  async POSTGetItems() {
@@ -112,4 +112,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
112
112
  type: Inject,
113
113
  args: [ADM_MODULE_PATH]
114
114
  }] }]; } });
115
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRtX2R5bmFtaWNfdmlld3MuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWRtaW4tbW9kdWxlL3NyYy9saWIvY29tcG9uZW50cy9keW5hbWljX3ZpZXdzL2FkbV9keW5hbWljX3ZpZXdzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FkbWluLW1vZHVsZS9zcmMvbGliL2NvbXBvbmVudHMvZHluYW1pY192aWV3cy9hZG1fZHluYW1pY192aWV3cy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxVQUFVO0FBQ1YsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFJbEQsaUJBQWlCO0FBQ2pCLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRTlELE9BQU8sRUFBRSxtQkFBbUIsRUFBbUIsTUFBTSxzQkFBc0IsQ0FBQztBQUM1RSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFL0MsZUFBZTtBQUNmLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBRTVFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFL0MsaUJBQWlCO0FBQ2pCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBRXZFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7Ozs7Ozs7Ozs7QUFPcEQsTUFBTSxPQUFPLHdCQUF3QjtJQVlqQyxZQUNXLEVBQXVCLEVBQ3RCLFFBQXlCLEVBQ3pCLFlBQWdDLEVBQ2hDLEtBQXFCLEVBQ3JCLFFBQWtCLEVBQ2xCLElBQTRCLEVBQ0gsR0FBVztRQU5yQyxPQUFFLEdBQUYsRUFBRSxDQUFxQjtRQUN0QixhQUFRLEdBQVIsUUFBUSxDQUFpQjtRQUN6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QUFDLFVBQVUsQ0FBQyxnQkFBZ0IsR0FBRyxLQUFLLENBQUM7UUFDekMsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsZUFBZSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUM1RSxDQUFDOztzSEFqR1Esd0JBQXdCLGtOQW1CckIsZUFBZTswR0FuQmxCLHdCQUF3Qix5REMxQnJDLDB0RkFzQ00sbzlFRGZhLENBQUMsRUFBRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsUUFBUSxFQUFFLGtCQUFrQixFQUFFLENBQUM7NEZBR3RFLHdCQUF3QjtrQkFMcEMsU0FBUzsrQkFDSSxtQkFBbUIsaUJBQ2QsQ0FBQyxFQUFFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxRQUFRLEVBQUUsa0JBQWtCLEVBQUUsQ0FBQzs7MEJBc0IxRSxNQUFNOzJCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBBbmd1bGFyXHJcbmltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tIFwiQGFuZ3VsYXIvcm91dGVyXCI7XHJcbmltcG9ydCB7IExvY2F0aW9uIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xyXG5cclxuLy8gQ29uZmlndXJhemlvbmlcclxuaW1wb3J0IHsgTG9jYWxpemF0aW9uU2VydmljZSB9IGZyb20gXCJAZXNmYWVuemEvbG9jYWxpemF0aW9uc1wiO1xyXG5pbXBvcnQgeyBQcmVmZXJlbmNlc1NlcnZpY2UgfSBmcm9tIFwiQGVzZmFlbnphL3ByZWZlcmVuY2VzXCI7XHJcbmltcG9ydCB7IEluYm91bmRNZXNzYWdlVHlwZXMsIEludGVyQ29tU2VydmljZSB9IGZyb20gXCJAZXNmYWVuemEvZXh0ZW5zaW9uc1wiO1xyXG5pbXBvcnQgeyBBcHBTZWFyY2ggfSBmcm9tIFwiQGVzZmFlbnphL2VzLXRhYmxlXCI7XHJcblxyXG4vLyBBcHBsaWNhemlvbmVcclxuaW1wb3J0IHsgRHluYW1pY1ZpZXdzVmlldyB9IGZyb20gXCIuLi8uLi9tb2RlbHMvY29tcG9uZW50cy9EeW5hbWljVmlld3NWaWV3XCI7XHJcbmltcG9ydCB7IEtleVZhbHVlIH0gZnJvbSBcIi4uLy4uL21vZGVscy9zaGFyZWQvS2V5VmFsdWVcIjtcclxuaW1wb3J0IHsgQURNX01PRFVMRV9QQVRIIH0gZnJvbSBcIi4uLy4uL3Rva2Vuc1wiO1xyXG5cclxuLy8gTG9jYWxpenphemlvbmVcclxuaW1wb3J0IHsgQWRtRHluYW1pY1ZpZXdzTG9jIH0gZnJvbSBcIi4vYWRtX2R5bmFtaWNfdmlld3MuY29tcG9uZW50LmxvY1wiO1xyXG5pbXBvcnQgeyBBZG1pbk1vZHVsZUJhc2VTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL3NlcnZpY2VzL2FkbWluLW1vZHVsZS5iYXNlLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgR2VuZXJpY0l0ZW0gfSBmcm9tIFwiQGVzZmFlbnphL2NvcmUvZG9tYWluXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiBcImFkbV9keW5hbWljX3ZpZXdzXCIsXHJcbiAgICB2aWV3UHJvdmlkZXJzOiBbeyBwcm92aWRlOiBMb2NhbGl6YXRpb25TZXJ2aWNlLCB1c2VDbGFzczogQWRtRHluYW1pY1ZpZXdzTG9jIH1dLFxyXG4gICAgdGVtcGxhdGVVcmw6IFwiLi9hZG1fZHluYW1pY192aWV3cy5jb21wb25lbnQuaHRtbFwiXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBZG1EeW5hbWljVmlld3NDb21wb25lbnQge1xyXG5cclxuICAgIHB1YmxpYyBzZWFyY2hWaWV3OiBEeW5hbWljVmlld3NWaWV3ID0gbmV3IER5bmFtaWNWaWV3c1ZpZXcoKTtcclxuICAgIHB1YmxpYyBOYW1lczogS2V5VmFsdWVbXSA9IFtdO1xyXG4gICAgcHVibGljIHN0b3JhZ2VTdWI6IGFueTtcclxuICAgIHB1YmxpYyBiYWRTZWFyY2g6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICBwdWJsaWMgY3VycmVudE5hbWU6IHN0cmluZyA9IFwiXCI7XHJcblxyXG4gICAgLy8gU3RhY2NhdG8gZGFsbGEgdmlldyBwZXJjaMOpIGRldmUgZXNzZXJlIGRpc3RydXR0YSBlIHJpY3JlYXRhIGRpIGNvbnRpbnVvXHJcbiAgICBwdWJsaWMgZmlsdGVyTmFtZTpzdHJpbmcgPSBcIlwiO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHB1YmxpYyBsYzogTG9jYWxpemF0aW9uU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIGludGVyY29tOiBJbnRlckNvbVNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBsb2NhbFN0b3JhZ2U6IFByZWZlcmVuY2VzU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcclxuICAgICAgICBwcml2YXRlIGxvY2F0aW9uOiBMb2NhdGlvbixcclxuICAgICAgICBwcml2YXRlIGFkbXM6IEFkbWluTW9kdWxlQmFzZVNlcnZpY2UsXHJcbiAgICAgICAgQEluamVjdChBRE1fTU9EVUxFX1BBVEgpIHByaXZhdGUgbW9kOiBzdHJpbmcpIHtcclxuXHJcbiAgICAgICAgdGhpcy5pbnRlcmNvbS5zZW5kKEluYm91bmRNZXNzYWdlVHlwZXMuTmF2aWdhdGlvbiwgeyBzdWI6IGZhbHNlLCByb3V0ZVRpdGxlOiB0aGlzLmxjLmxvYyh0aGlzLnJvdXRlLnNuYXBzaG90LmRhdGFbXCJ0aXRsZVwiXSkgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgbmdPbkluaXQoKSB7XHJcbiAgICAgICAgdGhpcy5OYW1lcyA9IGF3YWl0IHRoaXMuYWRtcy5nZXREeW5hbWljVmlld3MoKTtcclxuICAgICAgICB0aGlzLnN0b3JhZ2VTdWIgPSB0aGlzLnJvdXRlLnF1ZXJ5UGFyYW1zLnN1YnNjcmliZShwYXJhbXMgPT4geyB0aGlzLkluaXQocGFyYW1zW1wiaWdub3JlU3RvcmFnZVwiXSk7IH0pO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25EZXN0cm95KCkge1xyXG4gICAgICAgIGlmICh0aGlzLnN0b3JhZ2VTdWIpXHJcbiAgICAgICAgICAgIHRoaXMuc3RvcmFnZVN1Yi51bnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIEluaXQoaWdub3JlU3RvcmFnZSkge1xyXG4gICAgICAgIGxldCBpdGVtID0gYXdhaXQgdGhpcy5sb2NhbFN0b3JhZ2UuZ2V0SXRlbTxEeW5hbWljVmlld3NWaWV3PihcIkhvdERpbmFtaXRhdG9cIikudG9Qcm9taXNlKCk7XHJcbiAgICAgICAgaWYgKCFpZ25vcmVTdG9yYWdlICYmIGl0ZW0pIHtcclxuICAgICAgICAgICAgdGhpcy5pbml0KGl0ZW0pO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuaW5pdChudWxsKTtcclxuICAgICAgICAgICAgdGhpcy5sb2NhdGlvbi5yZXBsYWNlU3RhdGUoYC9wYWdlcy8ke3RoaXMubW9kfS9zZXJ2ZXJ2aWV3c2ApO1xyXG4gICAgICAgICAgICB0aGlzLnJvdXRlLnNuYXBzaG90LnF1ZXJ5UGFyYW1zID0gW107XHJcbiAgICAgICAgICAgIGF3YWl0IHRoaXMubG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oXCJIb3REaW5hbWl0YXRvXCIpLnRvUHJvbWlzZSgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBpbml0KEhvdFBvdGF0bzogRHluYW1pY1ZpZXdzVmlldykge1xyXG4gICAgICAgIC8vU2UgaG8gbGEgSG90UG90YXRvIHZ1b2wgZGlyZSBjaGUgc29ubyBhcHBlbmEgdG9ybmF0byBkYWxsJ2VkaXQvbnVvdm8uIFJpZmFjY2lvIGxhIHJpY2VyY2EgaW4gYmFzZSBhaSBmaWx0cmkgcHJlY2VkZW50aVxyXG4gICAgICAgIC8vQWx0aXJtZW50aSBnZW5lcm8gaWwgbW9kZWxsbyBudW92byBub3JtYWxtZW50ZVxyXG4gICAgICAgIGlmIChIb3RQb3RhdG8pIHtcclxuICAgICAgICAgICAgdGhpcy5zZWFyY2hWaWV3ID0gSG90UG90YXRvO1xyXG4gICAgICAgICAgICB0aGlzLlBPU1RHZXRJdGVtcygpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5zZWFyY2hWaWV3ID0gbmV3IER5bmFtaWNWaWV3c1ZpZXcoKTtcclxuICAgICAgICAgICAgdGhpcy5zZW5kU2VhcmNoKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHNlbmRTZWFyY2gocmVzZXRQYWdlOiBib29sZWFuID0gdHJ1ZSkge1xyXG4gICAgICAgIHRoaXMuc2VhcmNoVmlldy5zZWFyY2hpbnByb2dyZXNzID0gdHJ1ZTtcclxuICAgICAgICBpZiAocmVzZXRQYWdlKVxyXG4gICAgICAgICAgICB0aGlzLnNlYXJjaFZpZXcucGFnZSA9IDE7XHJcblxyXG4gICAgICAgIHRoaXMuc2VhcmNoVmlldy5maWx0ZXJuYW1lID0gdGhpcy5maWx0ZXJOYW1lO1xyXG4gICAgICAgIHRoaXMuUE9TVEdldEl0ZW1zKCk7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgcHJlcGFyZUV4cG9ydER5bmFtaWNWaWV3KGNhbGxiYWNrKSB7XHJcbiAgICAgICAgdmFyIHZpZXcgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMuc2VhcmNoVmlldykpO1xyXG4gICAgICAgIHZpZXcucGFnZSA9IDE7XHJcbiAgICAgICAgdmlldy5pdGVtc3BlcnBhZ2VvdmVycmlkZSA9IDk5OTk5OTk7XHJcbiAgICAgICAgbGV0IHRtcCA9IHRoaXMuc2VhcmNoVmlldyA9IGF3YWl0IHRoaXMuYWRtcy5nZXREeW5hbWljVmlld0RhdGEodmlldyk7XHJcbiAgICAgICAgY2FsbGJhY2sodG1wLml0ZW1zLCBHZW5lcmljSXRlbSk7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgUE9TVEdldEl0ZW1zKCkge1xyXG4gICAgICAgIGlmICghdGhpcy5zZWFyY2hWaWV3LmZpbHRlcm5hbWUpIHtcclxuICAgICAgICAgICAgdGhpcy5iYWRTZWFyY2ggPSB0cnVlO1xyXG4gICAgICAgICAgICBBcHBTZWFyY2gucmVzZXQodGhpcy5zZWFyY2hWaWV3KTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlXHJcbiAgICAgICAgICAgIHRoaXMuYmFkU2VhcmNoID0gZmFsc2U7XHJcblxyXG4gICAgICAgIC8vIFBlciBmb3JjZS1yZXNldHRhcmUgbCdlc3RhYmxlXHJcbiAgICAgICAgaWYgKHRoaXMuY3VycmVudE5hbWUgIT0gdGhpcy5zZWFyY2hWaWV3LmZpbHRlcm5hbWUpIHtcclxuICAgICAgICAgICAgdGhpcy5jdXJyZW50TmFtZSA9IHRoaXMuc2VhcmNoVmlldy5maWx0ZXJuYW1lO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5zZWFyY2hWaWV3ID0gbmV3IER5bmFtaWNWaWV3c1ZpZXcoKTtcclxuICAgICAgICAgICAgdGhpcy5zZWFyY2hWaWV3LnBhZ2UgPSAxO1xyXG4gICAgICAgICAgICB0aGlzLnNlYXJjaFZpZXcuZmlsdGVybmFtZSA9IHRoaXMuY3VycmVudE5hbWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIFxyXG4gICAgICAgIHRoaXMuc2VhcmNoVmlldyA9IGF3YWl0IHRoaXMuYWRtcy5nZXREeW5hbWljVmlld0RhdGEodGhpcy5zZWFyY2hWaWV3KTtcclxuICAgICAgICB0aGlzLnNlYXJjaFZpZXcuc2VhcmNoaW5wcm9ncmVzcyA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMubG9jYWxTdG9yYWdlLnNldEl0ZW0oXCJIb3REaW5hbWl0YXRvXCIsIHRoaXMuc2VhcmNoVmlldykuc3Vic2NyaWJlKCk7XHJcbiAgICB9XHJcbn0iLCI8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY29sLTEyXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQgYXBwLW92ZXJmbG93LXZpc2libGVcIiB3aWRnZXQ+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWhlYWRlclwiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXVwcGVyY2FzZVwiPnt7J1JpY2VyY2EgVmlzdGUgRGluYW1pY2hlIEFwcGxpY2F0aXZlJyB8IGxvY2FsaXplOiBsY319PC9zcGFuPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keSB3aWRnZXQtYm9keVwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMiBib3R0b20tMTVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8Zm9ybSByb2xlPVwiZm9ybVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IGFwcC1maXJzdC1maWx0ZXItbGluZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC14bC0yIGNvbC1sZy0yIGNvbC1tZC0xMiBhcHAtZmlsdGVyLXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Zm9ybS1zZWxlY3QgW0Zvcm1MYXlvdXRdPVwiZmFsc2VcIiBbVmFsaWRhdGlvbl09XCJmYWxzZVwiIFsobmdNb2RlbCldPVwiZmlsdGVyTmFtZVwiIG5hbWU9XCJmaWx0ZXJuYW1lXCIgW1NvdXJjZV09XCJOYW1lc1wiIFtTZWxlY3RMYWJlbF09XCInTm9tZScgfCBsb2NhbGl6ZTogbGNcIj48L2Zvcm0tc2VsZWN0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiaW5wdXQtZ3JvdXAtYWRkb24gYnRuIGFwcC1idG4tc2VhcmNoIGFwcC1tYXJnaW4tdG9wLTIwXCIgKGNsaWNrKT1cInNlbmRTZWFyY2goKVwiIHR5cGU9XCJzdWJtaXRcIj48aSBjbGFzcz1cImZhIGZhLXNlYXJjaFwiPjwvaT48L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9mb3JtPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImJhZFNlYXJjaFwiIGNsYXNzPVwiY2FyZCBjYXJkLWluZm8gYXBwLXdoaXRlLXRleHQgYXBwLXBhZGRpbmctMTBcIj57eydJbCBub21lIGRlbGxhIHZpc3RhIMOoIG9iYmxpZ2F0b3JpbyBwZXIgbGUgb3BlcmF6aW9uaSBkaSByaWNlcmNhJyB8IGxvY2FsaXplOiBsY319PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFiYWRTZWFyY2hcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgKm5nSWY9XCIhc2VhcmNoVmlld1wiPjxlbT57eydDYXJpY28gbGUgVmlzdGUgRGluYW1pY2hlIEFwcGxpY2F0aXZlJyB8IGxvY2FsaXplOiBsY319Li4uPC9lbT48L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJzZWFyY2hWaWV3ICYmIHNlYXJjaFZpZXcuaXRlbXMubGVuZ3RoID4gMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGVzLXRhYmxlIFsobmdNb2RlbCldPVwic2VhcmNoVmlld1wiIFtBdXRvVXBkYXRlXT1cInRydWVcIiBbRXhwb3J0RnVuY3Rpb25dPVwicHJlcGFyZUV4cG9ydER5bmFtaWNWaWV3LmJpbmQodGhpcylcIiBbRXhwb3J0XT1cInRydWVcIiBbT3JkZXJCeUNvbHVtbl09XCJ0cnVlXCIgKG9uU2VhcmNoUmVxdWVzdCk9XCJzZW5kU2VhcmNoKCRldmVudCk7XCI+PC9lcy10YWJsZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJzZWFyY2hWaWV3ICYmIHNlYXJjaFZpZXcuaXRlbXMubGVuZ3RoID09IDAgJiYgIXNlYXJjaFZpZXcuc2VhcmNoaW5wcm9ncmVzc1wiIGNsYXNzPVwiY2FyZCBjYXJkLWluZm8gYXBwLXdoaXRlLXRleHQgYXBwLXBhZGRpbmctMTBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7J05lc3N1biBlbGVtZW50byB0cm92YXRvIHBlciBsYSB2aXN0YSBkaW5hbWljYScgfCBsb2NhbGl6ZTogbGN9fSZuYnNwOzxzdHJvbmc+e3tzZWFyY2hWaWV3LmZpbHRlcm5hbWV9fTwvc3Ryb25nPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj4iXX0=
115
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRtX2R5bmFtaWNfdmlld3MuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWRtaW4tbW9kdWxlL3NyYy9saWIvY29tcG9uZW50cy9keW5hbWljX3ZpZXdzL2FkbV9keW5hbWljX3ZpZXdzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FkbWluLW1vZHVsZS9zcmMvbGliL2NvbXBvbmVudHMvZHluYW1pY192aWV3cy9hZG1fZHluYW1pY192aWV3cy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxVQUFVO0FBQ1YsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFJbEQsaUJBQWlCO0FBQ2pCLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRTlELE9BQU8sRUFBRSxtQkFBbUIsRUFBbUIsTUFBTSxzQkFBc0IsQ0FBQztBQUM1RSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFL0MsZUFBZTtBQUNmLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBRTVFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFL0MsaUJBQWlCO0FBQ2pCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBRXZFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7Ozs7Ozs7Ozs7QUFPcEQsTUFBTSxPQUFPLHdCQUF3QjtJQVlqQyxZQUNXLEVBQXVCLEVBQ3RCLFFBQXlCLEVBQ3pCLFlBQWdDLEVBQ2hDLEtBQXFCLEVBQ3JCLFFBQWtCLEVBQ2xCLElBQTRCLEVBQ0gsR0FBVztRQU5yQyxPQUFFLEdBQUYsRUFBRSxDQUFxQjtRQUN0QixhQUFRLEdBQVIsUUFBUSxDQUFpQjtRQUN6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LEdBQUcsS0FBSyxDQUFDO1FBQ3pDLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLGVBQWUsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDNUUsQ0FBQzs7c0hBakdRLHdCQUF3QixrTkFtQnJCLGVBQWU7MEdBbkJsQix3QkFBd0IseURDMUJyQywwdEZBc0NNLG85RURmYSxDQUFDLEVBQUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLFFBQVEsRUFBRSxrQkFBa0IsRUFBRSxDQUFDOzRGQUd0RSx3QkFBd0I7a0JBTHBDLFNBQVM7K0JBQ0ksbUJBQW1CLGlCQUNkLENBQUMsRUFBRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsUUFBUSxFQUFFLGtCQUFrQixFQUFFLENBQUM7OzBCQXNCMUUsTUFBTTsyQkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQW5ndWxhclxyXG5pbXBvcnQgeyBDb21wb25lbnQsIEluamVjdCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlIH0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xyXG5pbXBvcnQgeyBMb2NhdGlvbiB9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcclxuXHJcbi8vIENvbmZpZ3VyYXppb25pXHJcbmltcG9ydCB7IExvY2FsaXphdGlvblNlcnZpY2UgfSBmcm9tIFwiQGVzZmFlbnphL2xvY2FsaXphdGlvbnNcIjtcclxuaW1wb3J0IHsgUHJlZmVyZW5jZXNTZXJ2aWNlIH0gZnJvbSBcIkBlc2ZhZW56YS9wcmVmZXJlbmNlc1wiO1xyXG5pbXBvcnQgeyBJbmJvdW5kTWVzc2FnZVR5cGVzLCBJbnRlckNvbVNlcnZpY2UgfSBmcm9tIFwiQGVzZmFlbnphL2V4dGVuc2lvbnNcIjtcclxuaW1wb3J0IHsgQXBwU2VhcmNoIH0gZnJvbSBcIkBlc2ZhZW56YS9lcy10YWJsZVwiO1xyXG5cclxuLy8gQXBwbGljYXppb25lXHJcbmltcG9ydCB7IER5bmFtaWNWaWV3c1ZpZXcgfSBmcm9tIFwiLi4vLi4vbW9kZWxzL2NvbXBvbmVudHMvRHluYW1pY1ZpZXdzVmlld1wiO1xyXG5pbXBvcnQgeyBLZXlWYWx1ZSB9IGZyb20gXCIuLi8uLi9tb2RlbHMvc2hhcmVkL0tleVZhbHVlXCI7XHJcbmltcG9ydCB7IEFETV9NT0RVTEVfUEFUSCB9IGZyb20gXCIuLi8uLi90b2tlbnNcIjtcclxuXHJcbi8vIExvY2FsaXp6YXppb25lXHJcbmltcG9ydCB7IEFkbUR5bmFtaWNWaWV3c0xvYyB9IGZyb20gXCIuL2FkbV9keW5hbWljX3ZpZXdzLmNvbXBvbmVudC5sb2NcIjtcclxuaW1wb3J0IHsgQWRtaW5Nb2R1bGVCYXNlU2VydmljZSB9IGZyb20gXCIuLi8uLi9zZXJ2aWNlcy9hZG1pbi1tb2R1bGUuYmFzZS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IEdlbmVyaWNJdGVtIH0gZnJvbSBcIkBlc2ZhZW56YS9jb3JlL2RvbWFpblwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogXCJhZG1fZHluYW1pY192aWV3c1wiLFxyXG4gICAgdmlld1Byb3ZpZGVyczogW3sgcHJvdmlkZTogTG9jYWxpemF0aW9uU2VydmljZSwgdXNlQ2xhc3M6IEFkbUR5bmFtaWNWaWV3c0xvYyB9XSxcclxuICAgIHRlbXBsYXRlVXJsOiBcIi4vYWRtX2R5bmFtaWNfdmlld3MuY29tcG9uZW50Lmh0bWxcIlxyXG59KVxyXG5leHBvcnQgY2xhc3MgQWRtRHluYW1pY1ZpZXdzQ29tcG9uZW50IHtcclxuXHJcbiAgICBwdWJsaWMgc2VhcmNoVmlldzogRHluYW1pY1ZpZXdzVmlldyA9IG5ldyBEeW5hbWljVmlld3NWaWV3KCk7XHJcbiAgICBwdWJsaWMgTmFtZXM6IEtleVZhbHVlW10gPSBbXTtcclxuICAgIHB1YmxpYyBzdG9yYWdlU3ViOiBhbnk7XHJcbiAgICBwdWJsaWMgYmFkU2VhcmNoOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgcHVibGljIGN1cnJlbnROYW1lOiBzdHJpbmcgPSBcIlwiO1xyXG5cclxuICAgIC8vIFN0YWNjYXRvIGRhbGxhIHZpZXcgcGVyY2jDqSBkZXZlIGVzc2VyZSBkaXN0cnV0dGEgZSByaWNyZWF0YSBkaSBjb250aW51b1xyXG4gICAgcHVibGljIGZpbHRlck5hbWU6c3RyaW5nID0gXCJcIjtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwdWJsaWMgbGM6IExvY2FsaXphdGlvblNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBpbnRlcmNvbTogSW50ZXJDb21TZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgbG9jYWxTdG9yYWdlOiBQcmVmZXJlbmNlc1NlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXHJcbiAgICAgICAgcHJpdmF0ZSBsb2NhdGlvbjogTG9jYXRpb24sXHJcbiAgICAgICAgcHJpdmF0ZSBhZG1zOiBBZG1pbk1vZHVsZUJhc2VTZXJ2aWNlLFxyXG4gICAgICAgIEBJbmplY3QoQURNX01PRFVMRV9QQVRIKSBwcml2YXRlIG1vZDogc3RyaW5nKSB7XHJcblxyXG4gICAgICAgIHRoaXMuaW50ZXJjb20uc2VuZChJbmJvdW5kTWVzc2FnZVR5cGVzLk5hdmlnYXRpb24sIHsgc3ViOiBmYWxzZSwgcm91dGVUaXRsZTogdGhpcy5sYy5sb2ModGhpcy5yb3V0ZS5zbmFwc2hvdC5kYXRhW1widGl0bGVcIl0pIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIG5nT25Jbml0KCkge1xyXG4gICAgICAgIHRoaXMuTmFtZXMgPSBhd2FpdCB0aGlzLmFkbXMuZ2V0RHluYW1pY1ZpZXdzKCk7XHJcbiAgICAgICAgdGhpcy5zdG9yYWdlU3ViID0gdGhpcy5yb3V0ZS5xdWVyeVBhcmFtcy5zdWJzY3JpYmUocGFyYW1zID0+IHsgdGhpcy5Jbml0KHBhcmFtc1tcImlnbm9yZVN0b3JhZ2VcIl0pOyB9KTtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uRGVzdHJveSgpIHtcclxuICAgICAgICBpZiAodGhpcy5zdG9yYWdlU3ViKVxyXG4gICAgICAgICAgICB0aGlzLnN0b3JhZ2VTdWIudW5zdWJzY3JpYmUoKTtcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBJbml0KGlnbm9yZVN0b3JhZ2UpIHtcclxuICAgICAgICBsZXQgaXRlbSA9IGF3YWl0IHRoaXMubG9jYWxTdG9yYWdlLmdldEl0ZW08RHluYW1pY1ZpZXdzVmlldz4oXCJIb3REaW5hbWl0YXRvXCIpLnRvUHJvbWlzZSgpO1xyXG4gICAgICAgIGlmICghaWdub3JlU3RvcmFnZSAmJiBpdGVtKSB7XHJcbiAgICAgICAgICAgIHRoaXMuaW5pdChpdGVtKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLmluaXQobnVsbCk7XHJcbiAgICAgICAgICAgIHRoaXMubG9jYXRpb24ucmVwbGFjZVN0YXRlKGAvcGFnZXMvJHt0aGlzLm1vZH0vc2VydmVydmlld3NgKTtcclxuICAgICAgICAgICAgdGhpcy5yb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtcyA9IFtdO1xyXG4gICAgICAgICAgICBhd2FpdCB0aGlzLmxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKFwiSG90RGluYW1pdGF0b1wiKS50b1Byb21pc2UoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaW5pdChIb3RQb3RhdG86IER5bmFtaWNWaWV3c1ZpZXcpIHtcclxuICAgICAgICAvL1NlIGhvIGxhIEhvdFBvdGF0byB2dW9sIGRpcmUgY2hlIHNvbm8gYXBwZW5hIHRvcm5hdG8gZGFsbCdlZGl0L251b3ZvLiBSaWZhY2NpbyBsYSByaWNlcmNhIGluIGJhc2UgYWkgZmlsdHJpIHByZWNlZGVudGlcclxuICAgICAgICAvL0FsdGlybWVudGkgZ2VuZXJvIGlsIG1vZGVsbG8gbnVvdm8gbm9ybWFsbWVudGVcclxuICAgICAgICBpZiAoSG90UG90YXRvKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2VhcmNoVmlldyA9IEhvdFBvdGF0bztcclxuICAgICAgICAgICAgdGhpcy5QT1NUR2V0SXRlbXMoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2VhcmNoVmlldyA9IG5ldyBEeW5hbWljVmlld3NWaWV3KCk7XHJcbiAgICAgICAgICAgIHRoaXMuc2VuZFNlYXJjaCgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBzZW5kU2VhcmNoKHJlc2V0UGFnZTogYm9vbGVhbiA9IHRydWUpIHtcclxuICAgICAgICB0aGlzLnNlYXJjaFZpZXcuc2VhcmNoaW5wcm9ncmVzcyA9IHRydWU7XHJcbiAgICAgICAgaWYgKHJlc2V0UGFnZSlcclxuICAgICAgICAgICAgdGhpcy5zZWFyY2hWaWV3LnBhZ2UgPSAxO1xyXG5cclxuICAgICAgICB0aGlzLnNlYXJjaFZpZXcuZmlsdGVybmFtZSA9IHRoaXMuZmlsdGVyTmFtZTtcclxuICAgICAgICB0aGlzLlBPU1RHZXRJdGVtcygpO1xyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIHByZXBhcmVFeHBvcnREeW5hbWljVmlldyhjYWxsYmFjaykge1xyXG4gICAgICAgIHZhciB2aWV3ID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLnNlYXJjaFZpZXcpKTtcclxuICAgICAgICB2aWV3LnBhZ2UgPSAxO1xyXG4gICAgICAgIHZpZXcuaXRlbXNwZXJwYWdlb3ZlcnJpZGUgPSA5OTk5OTk5O1xyXG4gICAgICAgIGxldCB0bXAgPSBhd2FpdCB0aGlzLmFkbXMuZ2V0RHluYW1pY1ZpZXdEYXRhKHZpZXcpO1xyXG4gICAgICAgIGNhbGxiYWNrKHRtcC5pdGVtcywgR2VuZXJpY0l0ZW0pO1xyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIFBPU1RHZXRJdGVtcygpIHtcclxuICAgICAgICBpZiAoIXRoaXMuc2VhcmNoVmlldy5maWx0ZXJuYW1lKSB7XHJcbiAgICAgICAgICAgIHRoaXMuYmFkU2VhcmNoID0gdHJ1ZTtcclxuICAgICAgICAgICAgQXBwU2VhcmNoLnJlc2V0KHRoaXMuc2VhcmNoVmlldyk7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZVxyXG4gICAgICAgICAgICB0aGlzLmJhZFNlYXJjaCA9IGZhbHNlO1xyXG5cclxuICAgICAgICAvLyBQZXIgZm9yY2UtcmVzZXR0YXJlIGwnZXN0YWJsZVxyXG4gICAgICAgIGlmICh0aGlzLmN1cnJlbnROYW1lICE9IHRoaXMuc2VhcmNoVmlldy5maWx0ZXJuYW1lKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY3VycmVudE5hbWUgPSB0aGlzLnNlYXJjaFZpZXcuZmlsdGVybmFtZTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuc2VhcmNoVmlldyA9IG5ldyBEeW5hbWljVmlld3NWaWV3KCk7XHJcbiAgICAgICAgICAgIHRoaXMuc2VhcmNoVmlldy5wYWdlID0gMTtcclxuICAgICAgICAgICAgdGhpcy5zZWFyY2hWaWV3LmZpbHRlcm5hbWUgPSB0aGlzLmN1cnJlbnROYW1lO1xyXG4gICAgICAgIH1cclxuICAgICAgICBcclxuICAgICAgICB0aGlzLnNlYXJjaFZpZXcgPSBhd2FpdCB0aGlzLmFkbXMuZ2V0RHluYW1pY1ZpZXdEYXRhKHRoaXMuc2VhcmNoVmlldyk7XHJcbiAgICAgICAgdGhpcy5zZWFyY2hWaWV3LnNlYXJjaGlucHJvZ3Jlc3MgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmxvY2FsU3RvcmFnZS5zZXRJdGVtKFwiSG90RGluYW1pdGF0b1wiLCB0aGlzLnNlYXJjaFZpZXcpLnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG59IiwiPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgPGRpdiBjbGFzcz1cImNvbC0xMlwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkIGFwcC1vdmVyZmxvdy12aXNpYmxlXCIgd2lkZ2V0PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1oZWFkZXJcIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC11cHBlcmNhc2VcIj57eydSaWNlcmNhIFZpc3RlIERpbmFtaWNoZSBBcHBsaWNhdGl2ZScgfCBsb2NhbGl6ZTogbGN9fTwvc3Bhbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHkgd2lkZ2V0LWJvZHlcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTIgYm90dG9tLTE1XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGZvcm0gcm9sZT1cImZvcm1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBhcHAtZmlyc3QtZmlsdGVyLWxpbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wteGwtMiBjb2wtbGctMiBjb2wtbWQtMTIgYXBwLWZpbHRlci13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZvcm0tc2VsZWN0IFtGb3JtTGF5b3V0XT1cImZhbHNlXCIgW1ZhbGlkYXRpb25dPVwiZmFsc2VcIiBbKG5nTW9kZWwpXT1cImZpbHRlck5hbWVcIiBuYW1lPVwiZmlsdGVybmFtZVwiIFtTb3VyY2VdPVwiTmFtZXNcIiBbU2VsZWN0TGFiZWxdPVwiJ05vbWUnIHwgbG9jYWxpemU6IGxjXCI+PC9mb3JtLXNlbGVjdD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImlucHV0LWdyb3VwLWFkZG9uIGJ0biBhcHAtYnRuLXNlYXJjaCBhcHAtbWFyZ2luLXRvcC0yMFwiIChjbGljayk9XCJzZW5kU2VhcmNoKClcIiB0eXBlPVwic3VibWl0XCI+PGkgY2xhc3M9XCJmYSBmYS1zZWFyY2hcIj48L2k+PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZm9ybT5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJiYWRTZWFyY2hcIiBjbGFzcz1cImNhcmQgY2FyZC1pbmZvIGFwcC13aGl0ZS10ZXh0IGFwcC1wYWRkaW5nLTEwXCI+e3snSWwgbm9tZSBkZWxsYSB2aXN0YSDDqCBvYmJsaWdhdG9yaW8gcGVyIGxlIG9wZXJhemlvbmkgZGkgcmljZXJjYScgfCBsb2NhbGl6ZTogbGN9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhYmFkU2VhcmNoXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwICpuZ0lmPVwiIXNlYXJjaFZpZXdcIj48ZW0+e3snQ2FyaWNvIGxlIFZpc3RlIERpbmFtaWNoZSBBcHBsaWNhdGl2ZScgfCBsb2NhbGl6ZTogbGN9fS4uLjwvZW0+PC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwic2VhcmNoVmlldyAmJiBzZWFyY2hWaWV3Lml0ZW1zLmxlbmd0aCA+IDBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxlcy10YWJsZSBbKG5nTW9kZWwpXT1cInNlYXJjaFZpZXdcIiBbQXV0b1VwZGF0ZV09XCJ0cnVlXCIgW0V4cG9ydEZ1bmN0aW9uXT1cInByZXBhcmVFeHBvcnREeW5hbWljVmlldy5iaW5kKHRoaXMpXCIgW0V4cG9ydF09XCJ0cnVlXCIgW09yZGVyQnlDb2x1bW5dPVwidHJ1ZVwiIChvblNlYXJjaFJlcXVlc3QpPVwic2VuZFNlYXJjaCgkZXZlbnQpO1wiPjwvZXMtdGFibGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwic2VhcmNoVmlldyAmJiBzZWFyY2hWaWV3Lml0ZW1zLmxlbmd0aCA9PSAwICYmICFzZWFyY2hWaWV3LnNlYXJjaGlucHJvZ3Jlc3NcIiBjbGFzcz1cImNhcmQgY2FyZC1pbmZvIGFwcC13aGl0ZS10ZXh0IGFwcC1wYWRkaW5nLTEwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eydOZXNzdW4gZWxlbWVudG8gdHJvdmF0byBwZXIgbGEgdmlzdGEgZGluYW1pY2EnIHwgbG9jYWxpemU6IGxjfX0mbmJzcDs8c3Ryb25nPnt7c2VhcmNoVmlldy5maWx0ZXJuYW1lfX08L3N0cm9uZz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+Il19
@@ -14,26 +14,25 @@ import * as i0 from "@angular/core";
14
14
  import * as i1 from "@esfaenza/extensions";
15
15
  import * as i2 from "@esfaenza/localizations";
16
16
  import * as i3 from "@esfaenza/preferences";
17
- import * as i4 from "@esfaenza/httpservice";
18
- import * as i5 from "@angular/router";
19
- import * as i6 from "@angular/common";
20
- import * as i7 from "../../services/admin-module.base.service";
21
- import * as i8 from "@angular/forms";
22
- import * as i9 from "ngx-bootstrap/modal";
23
- import * as i10 from "@esfaenza/es-table";
24
- import * as i11 from "@esfaenza/forms-and-validations";
17
+ import * as i4 from "@angular/router";
18
+ import * as i5 from "@angular/common";
19
+ import * as i6 from "../../services/admin-module.base.service";
20
+ import * as i7 from "@angular/forms";
21
+ import * as i8 from "ngx-bootstrap/modal";
22
+ import * as i9 from "@esfaenza/es-table";
23
+ import * as i10 from "@esfaenza/forms-and-validations";
25
24
  export class AdmWrkComponent {
26
- constructor(utiExts, msgExts, lc, localStorage, intercom, http, route, location, adms, mod) {
25
+ constructor(utiExts, msgExts, lc, localStorage, intercom, route, location, adms, mod) {
27
26
  this.utiExts = utiExts;
28
27
  this.msgExts = msgExts;
29
28
  this.lc = lc;
30
29
  this.localStorage = localStorage;
31
30
  this.intercom = intercom;
32
- this.http = http;
33
31
  this.route = route;
34
32
  this.location = location;
35
33
  this.adms = adms;
36
34
  this.mod = mod;
35
+ this.globalFilterValue = null;
37
36
  this.searchView = new ProcessesView();
38
37
  this.DynamicOps = [];
39
38
  this.valueToShow = "";
@@ -98,9 +97,24 @@ export class AdmWrkComponent {
98
97
  this.POSTGetServerWorkers();
99
98
  }
100
99
  async POSTGetServerWorkers() {
101
- this.searchView = await this.adms.getServerWorkers(this.searchView);
102
- this.searchView.searchinprogress = false;
103
- this.localStorage.setItem("HotProcessato", this.searchView).subscribe();
100
+ // Switch cattivo per resettare la tabella quando cambia il global (dato che potrebbero cambiare le colonne)
101
+ // La casistica è esplicitamente non supportata dall'estable quindi abbozzo un hard refresh da qui...
102
+ if (this.globalFilterValue != null && this.globalFilterValue != this.searchView.filterglobal) {
103
+ let prevSearchView = this.utiExts.deepClone(this.searchView);
104
+ this.searchView = null;
105
+ requestAnimationFrame(async () => {
106
+ this.globalFilterValue = this.searchView.filterglobal;
107
+ this.searchView = await this.adms.getServerWorkers(prevSearchView);
108
+ this.searchView.searchinprogress = false;
109
+ this.localStorage.setItem("HotProcessato", this.searchView).subscribe();
110
+ });
111
+ }
112
+ else {
113
+ this.globalFilterValue = this.searchView.filterglobal;
114
+ this.searchView = await this.adms.getServerWorkers(this.searchView);
115
+ this.searchView.searchinprogress = false;
116
+ this.localStorage.setItem("HotProcessato", this.searchView).subscribe();
117
+ }
104
118
  }
105
119
  back() {
106
120
  this.location.back();
@@ -153,12 +167,12 @@ export class AdmWrkComponent {
153
167
  return true;
154
168
  }
155
169
  }
156
- AdmWrkComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AdmWrkComponent, deps: [{ token: i1.UtilityService }, { token: i1.MessageService }, { token: i2.LocalizationService }, { token: i3.PreferencesService }, { token: i1.InterComService }, { token: i4.HTTPService }, { token: i5.ActivatedRoute }, { token: i6.Location }, { token: i7.AdminModuleBaseService }, { token: ADM_MODULE_PATH }], target: i0.ɵɵFactoryTarget.Component });
157
- AdmWrkComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: AdmWrkComponent, selector: "adm_wrk", viewQueries: [{ propertyName: "cgFrom", first: true, predicate: ["cgFrom"], descendants: true }, { propertyName: "dlgChangeCg", first: true, predicate: ["dlgChangeCg"], descendants: true }], ngImport: i0, template: "<div class=\"row\">\r\n <div class=\"col-12\">\r\n <div class=\"card app-overflow-visible\" widget>\r\n <div class=\"card-header\">\r\n <span class=\"text-uppercase\">{{'Ricerca Processi Applicativi' | localize: lc}}</span>\r\n </div>\r\n <div class=\"card-body widget-body\">\r\n <div class=\"col-md-12\">\r\n <form role=\"form\">\r\n <div class=\"row app-first-filter-line\">\r\n <div class=\"col-xl-2 col-lg-2 col-md-12 app-filter-wrapper\">\r\n <form-select [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filtertype\" name=\"filtertype\" [SelectLabel]=\"'Tipo' | localize: lc\" [Source]=\"Types\"></form-select>\r\n </div>\r\n <div class=\"col-xl-1 col-lg-1 col-md-12 app-filter-wrapper\">\r\n <form-input [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filtertenant\" name=\"filterTenant\" [Placeholder]=\"'Operatore' | localize: lc\"></form-input>\r\n </div>\r\n <div class=\"col-xl-1 col-lg-1 col-md-12 app-filter-wrapper\">\r\n <form-input [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filteruser\" name=\"filterUser\" [Placeholder]=\"'Utente' | localize: lc\"></form-input>\r\n </div>\r\n <div class=\"col-xl-1 col-lg-1 col-md-12 app-filter-wrapper\">\r\n <form-select [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filterstate\" name=\"filterState\" [SelectLabel]=\"'Stato' | localize: lc\" [Source]=\"States\"></form-select>\r\n </div>\r\n <div class=\"col-xl-2 col-lg-2 col-md-12 app-filter-wrapper\">\r\n <form-select [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filterthreadtype\" name=\"filterthreadtype\" [SelectLabel]=\"'Tipo Thread' | localize: lc\" [Source]=\"ThreadTypes\"></form-select>\r\n </div>\r\n <div class=\"col-xl-1 col-lg-1 col-md-12 app-filter-wrapper\">\r\n <form-select [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filterthreadstatus\" name=\"filterthreadstatus\" [SelectLabel]=\"'Stato Thread' | localize: lc\" [Source]=\"ThreadStatuses\"></form-select>\r\n </div>\r\n <div class=\"col-xl-1 col-lg-1 col-md-12 app-filter-wrapper\" style=\"display: flex; height: 38px;\">\r\n <form-checkbox [FormLayout]=\"false\" [SliderMode]=\"true\" [Validation]=\"false\" [(ngModel)]=\"searchView.filterglobal\" name=\"filterglobal\"></form-checkbox>&nbsp;\r\n <span class=\"app-pointer app-padding-top-5 app-padding-left-5\" (click)=\"searchView.filterglobal = !searchView.filterglobal\">{{'Globale' | localize: lc}}</span>\r\n </div>\r\n <div class=\"col-xl-1 col-lg-1 col-md-12 app-filter-wrapper\" style=\"display: flex; height: 38px;\">\r\n <form-checkbox [FormLayout]=\"false\" [SliderMode]=\"true\" [Validation]=\"false\" [(ngModel)]=\"searchView.filterinwait\" name=\"filterinwait\"></form-checkbox>&nbsp;\r\n <span class=\"app-pointer app-padding-top-5 app-padding-left-5\" (click)=\"searchView.filterinwait = !searchView.filterinwait\">{{'In Attesa' | localize: lc}}</span>\r\n </div>\r\n <button [disabled]=\"searchView.searchinprogress\" class=\"input-group-addon btn app-btn-search app-margin-top-20\" (click)=\"sendSearch()\" type=\"submit\"><i class=\"fa fa-search\"></i></button>\r\n </div>\r\n </form>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-12\">\r\n <p *ngIf=\"!searchView\"><em>{{'Carico i Processi Applicativi' | localize: lc}}...</em></p>\r\n <div *ngIf=\"searchView\">\r\n <es-table [(ngModel)]=\"searchView\" [DynamicOperations]=\"DynamicOps\" [AutoUpdate]=\"true\" [OrderByColumn]=\"true\" (onSearchRequest)=\"sendSearch($event);\" (onDynamicOperation)=\"onOperation($event)\">\r\n <span class=\"app-nowrap\" *td=\"'full_wait_stack'; let value\">\r\n <span class=\"fa fa-list app-pointer\" (click)=\"valueToShow = value; dlgValue.show();\"></span>&nbsp;\r\n {{value.length > 70 ? value.substr(0, 67) + '...' : value}}\r\n </span>\r\n </es-table>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"app-margin-top-15\">\r\n <button class=\"btn btn-secondary pull-left\" type=\"button\" (click)=\"back()\">{{'Indietro' | localize: lc}}</button>\r\n <div class=\"clearfix\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<div bsModal #dlgChangeCg=\"bs-modal\" class=\"modal fade\" role=\"dialog\" aria-hidden=\"true\">\r\n <div class=\"modal-dialog modal-lg\" emaDraggable>\r\n <div class=\"modal-content\">\r\n <div class=\"modal-header\">\r\n <h4 class=\"modal-title pull-left\">{{'Modifica Gruppo di Consumo' | localize: lc}}</h4>\r\n <button type=\"button\" class=\"close pull-right\" (click)=\"dlgChangeCg.hide()\" aria-label=\"Close\">\r\n <span aria-hidden=\"true\">&times;</span>\r\n </button>\r\n </div>\r\n <form novalidate #cgFrom=\"ngForm\" (ngSubmit)=\"cgFrom.valid && doChangeCg() && dlgChangeCg.hide()\">\r\n <div class=\"modal-body\">\r\n <form-select [Label]=\"'Nuovo Gruppo di Consumo' | localize: lc\" [(ngModel)]=\"newCg\" name=\"newCg\" [Source]=\"CGs\" required [Last]=\"true\"></form-select>\r\n </div>\r\n <div class=\"modal-footer\">\r\n <button type=\"button\" class=\"btn btn-secondary app-margin-right-5\" (click)=\"dlgChangeCg.hide()\">{{'Chiudi' | localize: lc}}</button>\r\n <button type=\"submit\" class=\"btn btn-primary\">{{'Conferma' | localize: lc}}</button>\r\n </div>\r\n </form>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n\r\n<div bsModal #dlgValue=\"bs-modal\" class=\"modal fade\" role=\"dialog\" aria-hidden=\"true\">\r\n <div class=\"modal-dialog modal-xl\" app-draggable=\".modal-header\">\r\n <div class=\"modal-content\">\r\n <div class=\"modal-header\">\r\n <h5 class=\"modal-title pull-left\">\r\n Full Wait Stack\r\n </h5>\r\n <button type=\"button\" class=\"close pull-right\" (click)=\"dlgValue.hide()\" aria-label=\"Close\">\r\n <span aria-hidden=\"true\">&times;</span>\r\n </button>\r\n </div>\r\n <div class=\"modal-body app-padidng-bottom-20 app-padding-top-20\">\r\n <span class=\"app-wrap\">\r\n {{valueToShow}}\r\n </span>\r\n </div>\r\n <div class=\"modal-footer\">\r\n <button type=\"button\" class=\"btn btn-primary\" (click)=\"dlgValue.hide()\">Chiudi</button>\r\n </div>\r\n </div>\r\n </div>\r\n</div>", dependencies: [{ kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i8.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i8.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i8.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i8.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i8.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i8.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i9.ModalDirective, selector: "[bsModal]", inputs: ["config", "closeInterceptor"], outputs: ["onShow", "onShown", "onHide", "onHidden"], exportAs: ["bs-modal"] }, { kind: "directive", type: i10.EsTdDirective, selector: "[td]", inputs: ["tdVisible", "td", "tdForProperty", "tdIf", "tdClass", "tdPropertyAccessor", "tdAlignment", "tdFormat", "tdIconClass", "tdConditionField", "tdConditionValue", "tdTitle", "tdContent"] }, { kind: "component", type: i10.EsTableComponent, selector: "es-table", inputs: ["EsTableTemplate", "CornerMenuOptions", "ColumnsResizable", "ColumnsPinnable", "AutoUpdate", "Height", "EmptySpaceBackgroundColor", "EsTableHandledSearch", "MaxHeight", "ContainerClass", "XLSXExport", "CSVExport", "AllSearch", "HighCellDensity", "Selection", "ShowLoadingOnBootstrap", "Removal", "RemovalCondition", "Export", "ShiftClick", "CountLabel", "HidePaging", "HidePagingCount", "HidePagingButtons", "ContextMenu", "ExportFileName", "TableClass", "ExportFunction", "ExportOnlyVisibleColumns", "HasHeaderGroup", "HasSecondaryHeaderGroup", "HeaderHidden", "BodyHidden", "SelectionDisabled", "SingleSelection", "RowClassAssigner", "OrderByColumn", "MultipleOrderingDirectives", "HiddenColumns", "ColumnsOrdering", "SearchView", "SelectAll", "UseArrayModePaging", "DynamicRowColumnsDefinition", "DynamicOperations", "Hierarchy", "ParentKey", "OwnKey", "StartsExpanded", "SavePreferences", "DefaultAlignment", "PagingStyle", "RowGroupingPagingStyle", "ItemSourceProperty", "UseSelectionCache", "ShowItemGroupsColumns", "Editable", "RangeSelection", "SearchThrottle", "ArraymodeItemsPerPage"], outputs: ["onOrderChanged", "onSearchRequest", "onSelectionChanged", "onRemoval", "onAbortRemoval", "onModelChange", "onOpenContextMenu", "onCornerAction", "onDynamicOperation"] }, { kind: "component", type: i11.FormCheckboxComponent, selector: "form-checkbox", inputs: ["SliderMode"] }, { kind: "component", type: i11.FormInputComponent, selector: "form-input", inputs: ["Password"], outputs: ["onSuffixAction", "onPrefixAction"] }, { kind: "component", type: i11.FormSelectComponent, selector: "form-select", inputs: ["SelectLabel", "PlaceholderValue", "RequiredPlaceholder", "EmptyFieldValue", "ShowValidationSymbol", "OptionTemplate"] }, { kind: "pipe", type: i2.LocalizePipe, name: "localize" }], viewProviders: [{ provide: LocalizationService, useClass: AdmWrkLoc }] });
170
+ AdmWrkComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AdmWrkComponent, deps: [{ token: i1.UtilityService }, { token: i1.MessageService }, { token: i2.LocalizationService }, { token: i3.PreferencesService }, { token: i1.InterComService }, { token: i4.ActivatedRoute }, { token: i5.Location }, { token: i6.AdminModuleBaseService }, { token: ADM_MODULE_PATH }], target: i0.ɵɵFactoryTarget.Component });
171
+ AdmWrkComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: AdmWrkComponent, selector: "adm_wrk", viewQueries: [{ propertyName: "cgFrom", first: true, predicate: ["cgFrom"], descendants: true }, { propertyName: "dlgChangeCg", first: true, predicate: ["dlgChangeCg"], descendants: true }], ngImport: i0, template: "<div class=\"row\">\r\n <div class=\"col-12\">\r\n <div class=\"card app-overflow-visible\" widget>\r\n <div class=\"card-header\">\r\n <span class=\"text-uppercase\">{{'Ricerca Processi Applicativi' | localize: lc}}</span>\r\n </div>\r\n <div class=\"card-body widget-body\">\r\n <div class=\"col-md-12\">\r\n <form role=\"form\">\r\n <div class=\"row app-first-filter-line\">\r\n <div class=\"col-xl-2 col-lg-2 col-md-12 app-filter-wrapper\">\r\n <form-select [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filtertype\" name=\"filtertype\" [SelectLabel]=\"'Tipo' | localize: lc\" [Source]=\"Types\"></form-select>\r\n </div>\r\n <div class=\"col-xl-1 col-lg-1 col-md-12 app-filter-wrapper\">\r\n <form-input [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filtertenant\" name=\"filterTenant\" [Placeholder]=\"'Operatore' | localize: lc\"></form-input>\r\n </div>\r\n <div class=\"col-xl-1 col-lg-1 col-md-12 app-filter-wrapper\">\r\n <form-input [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filteruser\" name=\"filterUser\" [Placeholder]=\"'Utente' | localize: lc\"></form-input>\r\n </div>\r\n <div class=\"col-xl-1 col-lg-1 col-md-12 app-filter-wrapper\">\r\n <form-select [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filterstate\" name=\"filterState\" [SelectLabel]=\"'Stato' | localize: lc\" [Source]=\"States\"></form-select>\r\n </div>\r\n <div class=\"col-xl-2 col-lg-2 col-md-12 app-filter-wrapper\">\r\n <form-select [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filterthreadtype\" name=\"filterthreadtype\" [SelectLabel]=\"'Tipo Thread' | localize: lc\" [Source]=\"ThreadTypes\"></form-select>\r\n </div>\r\n <div class=\"col-xl-1 col-lg-1 col-md-12 app-filter-wrapper\">\r\n <form-select [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filterthreadstatus\" name=\"filterthreadstatus\" [SelectLabel]=\"'Stato Thread' | localize: lc\" [Source]=\"ThreadStatuses\"></form-select>\r\n </div>\r\n <div class=\"col-xl-1 col-lg-1 col-md-12 app-filter-wrapper\" style=\"display: flex; height: 38px;\">\r\n <form-checkbox [FormLayout]=\"false\" [SliderMode]=\"true\" [Validation]=\"false\" [(ngModel)]=\"searchView.filterglobal\" name=\"filterglobal\"></form-checkbox>&nbsp;\r\n <span class=\"app-pointer app-padding-top-5 app-padding-left-5\" (click)=\"searchView.filterglobal = !searchView.filterglobal\">{{'Globale' | localize: lc}}</span>\r\n </div>\r\n <div class=\"col-xl-1 col-lg-1 col-md-12 app-filter-wrapper\" style=\"display: flex; height: 38px;\">\r\n <form-checkbox [FormLayout]=\"false\" [SliderMode]=\"true\" [Validation]=\"false\" [(ngModel)]=\"searchView.filterinwait\" name=\"filterinwait\"></form-checkbox>&nbsp;\r\n <span class=\"app-pointer app-padding-top-5 app-padding-left-5\" (click)=\"searchView.filterinwait = !searchView.filterinwait\">{{'In Attesa' | localize: lc}}</span>\r\n </div>\r\n <button [disabled]=\"searchView.searchinprogress\" class=\"input-group-addon btn app-btn-search app-margin-top-20\" (click)=\"sendSearch()\" type=\"submit\"><i class=\"fa fa-search\"></i></button>\r\n </div>\r\n </form>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-12\">\r\n <p *ngIf=\"!searchView\"><em>{{'Carico i Processi Applicativi' | localize: lc}}...</em></p>\r\n <div *ngIf=\"searchView\">\r\n <es-table [(ngModel)]=\"searchView\" [DynamicOperations]=\"DynamicOps\" [AutoUpdate]=\"true\" [OrderByColumn]=\"true\" (onSearchRequest)=\"sendSearch($event);\" (onDynamicOperation)=\"onOperation($event)\">\r\n <span class=\"app-nowrap\" *td=\"'full_wait_stack'; let value\">\r\n <span class=\"fa fa-list app-pointer\" (click)=\"valueToShow = value; dlgValue.show();\"></span>&nbsp;\r\n {{value.length > 70 ? value.substr(0, 67) + '...' : value}}\r\n </span>\r\n </es-table>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"app-margin-top-15\">\r\n <button class=\"btn btn-secondary pull-left\" type=\"button\" (click)=\"back()\">{{'Indietro' | localize: lc}}</button>\r\n <div class=\"clearfix\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<div bsModal #dlgChangeCg=\"bs-modal\" class=\"modal fade\" role=\"dialog\" aria-hidden=\"true\">\r\n <div class=\"modal-dialog modal-lg\" emaDraggable>\r\n <div class=\"modal-content\">\r\n <div class=\"modal-header\">\r\n <h4 class=\"modal-title pull-left\">{{'Modifica Gruppo di Consumo' | localize: lc}}</h4>\r\n <button type=\"button\" class=\"close pull-right\" (click)=\"dlgChangeCg.hide()\" aria-label=\"Close\">\r\n <span aria-hidden=\"true\">&times;</span>\r\n </button>\r\n </div>\r\n <form novalidate #cgFrom=\"ngForm\" (ngSubmit)=\"cgFrom.valid && doChangeCg() && dlgChangeCg.hide()\">\r\n <div class=\"modal-body\">\r\n <form-select [Label]=\"'Nuovo Gruppo di Consumo' | localize: lc\" [(ngModel)]=\"newCg\" name=\"newCg\" [Source]=\"CGs\" required [Last]=\"true\"></form-select>\r\n </div>\r\n <div class=\"modal-footer\">\r\n <button type=\"button\" class=\"btn btn-secondary app-margin-right-5\" (click)=\"dlgChangeCg.hide()\">{{'Chiudi' | localize: lc}}</button>\r\n <button type=\"submit\" class=\"btn btn-primary\">{{'Conferma' | localize: lc}}</button>\r\n </div>\r\n </form>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n\r\n<div bsModal #dlgValue=\"bs-modal\" class=\"modal fade\" role=\"dialog\" aria-hidden=\"true\">\r\n <div class=\"modal-dialog modal-xl\" app-draggable=\".modal-header\">\r\n <div class=\"modal-content\">\r\n <div class=\"modal-header\">\r\n <h5 class=\"modal-title pull-left\">\r\n Full Wait Stack\r\n </h5>\r\n <button type=\"button\" class=\"close pull-right\" (click)=\"dlgValue.hide()\" aria-label=\"Close\">\r\n <span aria-hidden=\"true\">&times;</span>\r\n </button>\r\n </div>\r\n <div class=\"modal-body app-padidng-bottom-20 app-padding-top-20\">\r\n <span class=\"app-wrap\">\r\n {{valueToShow}}\r\n </span>\r\n </div>\r\n <div class=\"modal-footer\">\r\n <button type=\"button\" class=\"btn btn-primary\" (click)=\"dlgValue.hide()\">Chiudi</button>\r\n </div>\r\n </div>\r\n </div>\r\n</div>", dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i7.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i7.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i7.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i7.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i7.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i8.ModalDirective, selector: "[bsModal]", inputs: ["config", "closeInterceptor"], outputs: ["onShow", "onShown", "onHide", "onHidden"], exportAs: ["bs-modal"] }, { kind: "directive", type: i9.EsTdDirective, selector: "[td]", inputs: ["tdVisible", "td", "tdForProperty", "tdIf", "tdClass", "tdPropertyAccessor", "tdAlignment", "tdFormat", "tdIconClass", "tdConditionField", "tdConditionValue", "tdTitle", "tdContent"] }, { kind: "component", type: i9.EsTableComponent, selector: "es-table", inputs: ["EsTableTemplate", "CornerMenuOptions", "ColumnsResizable", "ColumnsPinnable", "AutoUpdate", "Height", "EmptySpaceBackgroundColor", "EsTableHandledSearch", "MaxHeight", "ContainerClass", "XLSXExport", "CSVExport", "AllSearch", "HighCellDensity", "Selection", "ShowLoadingOnBootstrap", "Removal", "RemovalCondition", "Export", "ShiftClick", "CountLabel", "HidePaging", "HidePagingCount", "HidePagingButtons", "ContextMenu", "ExportFileName", "TableClass", "ExportFunction", "ExportOnlyVisibleColumns", "HasHeaderGroup", "HasSecondaryHeaderGroup", "HeaderHidden", "BodyHidden", "SelectionDisabled", "SingleSelection", "RowClassAssigner", "OrderByColumn", "MultipleOrderingDirectives", "HiddenColumns", "ColumnsOrdering", "SearchView", "SelectAll", "UseArrayModePaging", "DynamicRowColumnsDefinition", "DynamicOperations", "Hierarchy", "ParentKey", "OwnKey", "StartsExpanded", "SavePreferences", "DefaultAlignment", "PagingStyle", "RowGroupingPagingStyle", "ItemSourceProperty", "UseSelectionCache", "ShowItemGroupsColumns", "Editable", "RangeSelection", "SearchThrottle", "ArraymodeItemsPerPage"], outputs: ["onOrderChanged", "onSearchRequest", "onSelectionChanged", "onRemoval", "onAbortRemoval", "onModelChange", "onOpenContextMenu", "onCornerAction", "onDynamicOperation"] }, { kind: "component", type: i10.FormCheckboxComponent, selector: "form-checkbox", inputs: ["SliderMode"] }, { kind: "component", type: i10.FormInputComponent, selector: "form-input", inputs: ["Password"], outputs: ["onSuffixAction", "onPrefixAction"] }, { kind: "component", type: i10.FormSelectComponent, selector: "form-select", inputs: ["SelectLabel", "PlaceholderValue", "RequiredPlaceholder", "EmptyFieldValue", "ShowValidationSymbol", "OptionTemplate"] }, { kind: "pipe", type: i2.LocalizePipe, name: "localize" }], viewProviders: [{ provide: LocalizationService, useClass: AdmWrkLoc }] });
158
172
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AdmWrkComponent, decorators: [{
159
173
  type: Component,
160
174
  args: [{ selector: "adm_wrk", viewProviders: [{ provide: LocalizationService, useClass: AdmWrkLoc }], template: "<div class=\"row\">\r\n <div class=\"col-12\">\r\n <div class=\"card app-overflow-visible\" widget>\r\n <div class=\"card-header\">\r\n <span class=\"text-uppercase\">{{'Ricerca Processi Applicativi' | localize: lc}}</span>\r\n </div>\r\n <div class=\"card-body widget-body\">\r\n <div class=\"col-md-12\">\r\n <form role=\"form\">\r\n <div class=\"row app-first-filter-line\">\r\n <div class=\"col-xl-2 col-lg-2 col-md-12 app-filter-wrapper\">\r\n <form-select [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filtertype\" name=\"filtertype\" [SelectLabel]=\"'Tipo' | localize: lc\" [Source]=\"Types\"></form-select>\r\n </div>\r\n <div class=\"col-xl-1 col-lg-1 col-md-12 app-filter-wrapper\">\r\n <form-input [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filtertenant\" name=\"filterTenant\" [Placeholder]=\"'Operatore' | localize: lc\"></form-input>\r\n </div>\r\n <div class=\"col-xl-1 col-lg-1 col-md-12 app-filter-wrapper\">\r\n <form-input [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filteruser\" name=\"filterUser\" [Placeholder]=\"'Utente' | localize: lc\"></form-input>\r\n </div>\r\n <div class=\"col-xl-1 col-lg-1 col-md-12 app-filter-wrapper\">\r\n <form-select [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filterstate\" name=\"filterState\" [SelectLabel]=\"'Stato' | localize: lc\" [Source]=\"States\"></form-select>\r\n </div>\r\n <div class=\"col-xl-2 col-lg-2 col-md-12 app-filter-wrapper\">\r\n <form-select [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filterthreadtype\" name=\"filterthreadtype\" [SelectLabel]=\"'Tipo Thread' | localize: lc\" [Source]=\"ThreadTypes\"></form-select>\r\n </div>\r\n <div class=\"col-xl-1 col-lg-1 col-md-12 app-filter-wrapper\">\r\n <form-select [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filterthreadstatus\" name=\"filterthreadstatus\" [SelectLabel]=\"'Stato Thread' | localize: lc\" [Source]=\"ThreadStatuses\"></form-select>\r\n </div>\r\n <div class=\"col-xl-1 col-lg-1 col-md-12 app-filter-wrapper\" style=\"display: flex; height: 38px;\">\r\n <form-checkbox [FormLayout]=\"false\" [SliderMode]=\"true\" [Validation]=\"false\" [(ngModel)]=\"searchView.filterglobal\" name=\"filterglobal\"></form-checkbox>&nbsp;\r\n <span class=\"app-pointer app-padding-top-5 app-padding-left-5\" (click)=\"searchView.filterglobal = !searchView.filterglobal\">{{'Globale' | localize: lc}}</span>\r\n </div>\r\n <div class=\"col-xl-1 col-lg-1 col-md-12 app-filter-wrapper\" style=\"display: flex; height: 38px;\">\r\n <form-checkbox [FormLayout]=\"false\" [SliderMode]=\"true\" [Validation]=\"false\" [(ngModel)]=\"searchView.filterinwait\" name=\"filterinwait\"></form-checkbox>&nbsp;\r\n <span class=\"app-pointer app-padding-top-5 app-padding-left-5\" (click)=\"searchView.filterinwait = !searchView.filterinwait\">{{'In Attesa' | localize: lc}}</span>\r\n </div>\r\n <button [disabled]=\"searchView.searchinprogress\" class=\"input-group-addon btn app-btn-search app-margin-top-20\" (click)=\"sendSearch()\" type=\"submit\"><i class=\"fa fa-search\"></i></button>\r\n </div>\r\n </form>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-12\">\r\n <p *ngIf=\"!searchView\"><em>{{'Carico i Processi Applicativi' | localize: lc}}...</em></p>\r\n <div *ngIf=\"searchView\">\r\n <es-table [(ngModel)]=\"searchView\" [DynamicOperations]=\"DynamicOps\" [AutoUpdate]=\"true\" [OrderByColumn]=\"true\" (onSearchRequest)=\"sendSearch($event);\" (onDynamicOperation)=\"onOperation($event)\">\r\n <span class=\"app-nowrap\" *td=\"'full_wait_stack'; let value\">\r\n <span class=\"fa fa-list app-pointer\" (click)=\"valueToShow = value; dlgValue.show();\"></span>&nbsp;\r\n {{value.length > 70 ? value.substr(0, 67) + '...' : value}}\r\n </span>\r\n </es-table>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"app-margin-top-15\">\r\n <button class=\"btn btn-secondary pull-left\" type=\"button\" (click)=\"back()\">{{'Indietro' | localize: lc}}</button>\r\n <div class=\"clearfix\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<div bsModal #dlgChangeCg=\"bs-modal\" class=\"modal fade\" role=\"dialog\" aria-hidden=\"true\">\r\n <div class=\"modal-dialog modal-lg\" emaDraggable>\r\n <div class=\"modal-content\">\r\n <div class=\"modal-header\">\r\n <h4 class=\"modal-title pull-left\">{{'Modifica Gruppo di Consumo' | localize: lc}}</h4>\r\n <button type=\"button\" class=\"close pull-right\" (click)=\"dlgChangeCg.hide()\" aria-label=\"Close\">\r\n <span aria-hidden=\"true\">&times;</span>\r\n </button>\r\n </div>\r\n <form novalidate #cgFrom=\"ngForm\" (ngSubmit)=\"cgFrom.valid && doChangeCg() && dlgChangeCg.hide()\">\r\n <div class=\"modal-body\">\r\n <form-select [Label]=\"'Nuovo Gruppo di Consumo' | localize: lc\" [(ngModel)]=\"newCg\" name=\"newCg\" [Source]=\"CGs\" required [Last]=\"true\"></form-select>\r\n </div>\r\n <div class=\"modal-footer\">\r\n <button type=\"button\" class=\"btn btn-secondary app-margin-right-5\" (click)=\"dlgChangeCg.hide()\">{{'Chiudi' | localize: lc}}</button>\r\n <button type=\"submit\" class=\"btn btn-primary\">{{'Conferma' | localize: lc}}</button>\r\n </div>\r\n </form>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n\r\n<div bsModal #dlgValue=\"bs-modal\" class=\"modal fade\" role=\"dialog\" aria-hidden=\"true\">\r\n <div class=\"modal-dialog modal-xl\" app-draggable=\".modal-header\">\r\n <div class=\"modal-content\">\r\n <div class=\"modal-header\">\r\n <h5 class=\"modal-title pull-left\">\r\n Full Wait Stack\r\n </h5>\r\n <button type=\"button\" class=\"close pull-right\" (click)=\"dlgValue.hide()\" aria-label=\"Close\">\r\n <span aria-hidden=\"true\">&times;</span>\r\n </button>\r\n </div>\r\n <div class=\"modal-body app-padidng-bottom-20 app-padding-top-20\">\r\n <span class=\"app-wrap\">\r\n {{valueToShow}}\r\n </span>\r\n </div>\r\n <div class=\"modal-footer\">\r\n <button type=\"button\" class=\"btn btn-primary\" (click)=\"dlgValue.hide()\">Chiudi</button>\r\n </div>\r\n </div>\r\n </div>\r\n</div>" }]
161
- }], ctorParameters: function () { return [{ type: i1.UtilityService }, { type: i1.MessageService }, { type: i2.LocalizationService }, { type: i3.PreferencesService }, { type: i1.InterComService }, { type: i4.HTTPService }, { type: i5.ActivatedRoute }, { type: i6.Location }, { type: i7.AdminModuleBaseService }, { type: undefined, decorators: [{
175
+ }], ctorParameters: function () { return [{ type: i1.UtilityService }, { type: i1.MessageService }, { type: i2.LocalizationService }, { type: i3.PreferencesService }, { type: i1.InterComService }, { type: i4.ActivatedRoute }, { type: i5.Location }, { type: i6.AdminModuleBaseService }, { type: undefined, decorators: [{
162
176
  type: Inject,
163
177
  args: [ADM_MODULE_PATH]
164
178
  }] }]; }, propDecorators: { cgFrom: [{
@@ -168,4 +182,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
168
182
  type: ViewChild,
169
183
  args: ["dlgChangeCg"]
170
184
  }] } });
171
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRtX3dyay5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hZG1pbi1tb2R1bGUvc3JjL2xpYi9jb21wb25lbnRzL3dvcmtlcnMvYWRtX3dyay5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hZG1pbi1tb2R1bGUvc3JjL2xpYi9jb21wb25lbnRzL3dvcmtlcnMvYWRtX3dyay5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxVQUFVO0FBQ1YsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBTTdELGlCQUFpQjtBQUNqQixPQUFPLEVBQUUsbUJBQW1CLEVBQW1ELE1BQU0sc0JBQXNCLENBQUM7QUFDNUcsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDaEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFPOUQsZUFBZTtBQUNmLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDdEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUUvQyxpQkFBaUI7QUFDakIsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHlCQUF5QixDQUFDOzs7Ozs7Ozs7Ozs7O0FBUXBELE1BQU0sT0FBTyxlQUFlO0lBWXhCLFlBQ1ksT0FBdUIsRUFDdkIsT0FBdUIsRUFDeEIsRUFBdUIsRUFDdEIsWUFBZ0MsRUFDaEMsUUFBeUIsRUFDekIsSUFBaUIsRUFDakIsS0FBcUIsRUFDckIsUUFBa0IsRUFDbEIsSUFBNEIsRUFDSCxHQUFXO1FBVHBDLFlBQU8sR0FBUCxPQUFPLENBQWdCO1FBQ3ZCLFlBQU8sR0FBUCxPQUFPLENBQWdCO1FB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QW5ndWxhclxyXG5pbXBvcnQgeyBDb21wb25lbnQsIEluamVjdCwgVmlld0NoaWxkIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgSHR0cFBhcmFtcyB9IGZyb20gXCJAYW5ndWxhci9jb21tb24vaHR0cFwiO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gXCJAYW5ndWxhci9yb3V0ZXJcIjtcclxuaW1wb3J0IHsgTG9jYXRpb24gfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XHJcbmltcG9ydCB7IE5nRm9ybSB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5cclxuLy8gQ29uZmlndXJhemlvbmlcclxuaW1wb3J0IHsgSW5ib3VuZE1lc3NhZ2VUeXBlcywgSW50ZXJDb21TZXJ2aWNlLCBNZXNzYWdlU2VydmljZSwgVXRpbGl0eVNlcnZpY2UgfSBmcm9tIFwiQGVzZmFlbnphL2V4dGVuc2lvbnNcIjtcclxuaW1wb3J0IHsgRXNUYWJsZU9wZXJhdGlvbkRlZmluaXRpb24gfSBmcm9tIFwiQGVzZmFlbnphL2VzLXRhYmxlXCI7XHJcbmltcG9ydCB7IExvY2FsaXphdGlvblNlcnZpY2UgfSBmcm9tIFwiQGVzZmFlbnphL2xvY2FsaXphdGlvbnNcIjtcclxuaW1wb3J0IHsgUHJlZmVyZW5jZXNTZXJ2aWNlIH0gZnJvbSBcIkBlc2ZhZW56YS9wcmVmZXJlbmNlc1wiO1xyXG5pbXBvcnQgeyBIVFRQU2VydmljZSB9IGZyb20gXCJAZXNmYWVuemEvaHR0cHNlcnZpY2VcIjtcclxuXHJcbi8vIERpcmV0dGl2ZSwgQ29tcG9uZW50aSwgTGlicmVyaWVcclxuaW1wb3J0IHsgTW9kYWxEaXJlY3RpdmUgfSBmcm9tIFwibmd4LWJvb3RzdHJhcC9tb2RhbFwiO1xyXG5cclxuLy8gQXBwbGljYXppb25lXHJcbmltcG9ydCB7IEtleVZhbHVlIH0gZnJvbSBcIi4uLy4uL21vZGVscy9zaGFyZWQvS2V5VmFsdWVcIjtcclxuaW1wb3J0IHsgUHJvY2Vzc2VzVmlldyB9IGZyb20gXCIuLi8uLi9tb2RlbHMvY29tcG9uZW50cy9Qcm9jZXNzZXNWaWV3XCI7XHJcbmltcG9ydCB7IEFETV9NT0RVTEVfUEFUSCB9IGZyb20gXCIuLi8uLi90b2tlbnNcIjtcclxuXHJcbi8vIExvY2FsaXp6YXppb25lXHJcbmltcG9ydCB7IEFkbVdya0xvYyB9IGZyb20gXCIuL2FkbV93cmsuY29tcG9uZW50LmxvY1wiO1xyXG5pbXBvcnQgeyBBZG1pbk1vZHVsZUJhc2VTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL3NlcnZpY2VzL2FkbWluLW1vZHVsZS5iYXNlLnNlcnZpY2VcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6IFwiYWRtX3dya1wiLFxyXG4gICAgdmlld1Byb3ZpZGVyczogW3sgcHJvdmlkZTogTG9jYWxpemF0aW9uU2VydmljZSwgdXNlQ2xhc3M6IEFkbVdya0xvYyB9XSxcclxuICAgIHRlbXBsYXRlVXJsOiBcIi4vYWRtX3dyay5jb21wb25lbnQuaHRtbFwiXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBZG1XcmtDb21wb25lbnQge1xyXG5cclxuICAgIHB1YmxpYyBzZWFyY2hWaWV3OiBQcm9jZXNzZXNWaWV3ID0gbmV3IFByb2Nlc3Nlc1ZpZXcoKTtcclxuICAgIHB1YmxpYyBEeW5hbWljT3BzOiBFc1RhYmxlT3BlcmF0aW9uRGVmaW5pdGlvbltdID0gW107XHJcbiAgICBwdWJsaWMgc3RvcmFnZVN1YjogYW55O1xyXG4gICAgcHVibGljIHZhbHVlVG9TaG93OiBzdHJpbmcgPSBcIlwiO1xyXG5cclxuICAgIHB1YmxpYyBUeXBlczogS2V5VmFsdWVbXSA9IFtdO1xyXG4gICAgcHVibGljIFN0YXRlczogS2V5VmFsdWVbXSA9IFtdO1xyXG4gICAgcHVibGljIFRocmVhZFR5cGVzOiBLZXlWYWx1ZVtdID0gW107XHJcbiAgICBwdWJsaWMgVGhyZWFkU3RhdHVzZXM6IEtleVZhbHVlW10gPSBbXTtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcml2YXRlIHV0aUV4dHM6IFV0aWxpdHlTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgbXNnRXh0czogTWVzc2FnZVNlcnZpY2UsXHJcbiAgICAgICAgcHVibGljIGxjOiBMb2NhbGl6YXRpb25TZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgbG9jYWxTdG9yYWdlOiBQcmVmZXJlbmNlc1NlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBpbnRlcmNvbTogSW50ZXJDb21TZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgaHR0cDogSFRUUFNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXHJcbiAgICAgICAgcHJpdmF0ZSBsb2NhdGlvbjogTG9jYXRpb24sXHJcbiAgICAgICAgcHJpdmF0ZSBhZG1zOiBBZG1pbk1vZHVsZUJhc2VTZXJ2aWNlLFxyXG4gICAgICAgIEBJbmplY3QoQURNX01PRFVMRV9QQVRIKSBwcml2YXRlIG1vZDogc3RyaW5nKSB7XHJcblxyXG4gICAgICAgIHRoaXMuaW50ZXJjb20uc2VuZChJbmJvdW5kTWVzc2FnZVR5cGVzLk5hdmlnYXRpb24sIHsgc3ViOiBmYWxzZSwgcm91dGVUaXRsZTogdGhpcy5sYy5sb2ModGhpcy5yb3V0ZS5zbmFwc2hvdC5kYXRhW1widGl0bGVcIl0pIH0pO1xyXG5cclxuICAgICAgICB0aGlzLkR5bmFtaWNPcHMgPSBbXHJcbiAgICAgICAgICAgIG5ldyBFc1RhYmxlT3BlcmF0aW9uRGVmaW5pdGlvbihcInRyYWNlX29uXCIsIHRoaXMubGMubG9jKFwiQXR0aXZhIFRyYWNpbmcgUHJvY2Vzc29cIiksIFwiZmEgZmEtY2lyY2xlIHRleHQtZGFuZ2VyXCIsIFwiXCIsIFwidHJhY2VfZW5hYmxlZFwiLCBcIk5cIiksXHJcbiAgICAgICAgICAgIG5ldyBFc1RhYmxlT3BlcmF0aW9uRGVmaW5pdGlvbihcInRyYWNlX29mZlwiLCB0aGlzLmxjLmxvYyhcIkRpc2F0dGl2YSBUcmFjaW5nIFByb2dldHRvXCIpLCBcImZhIGZhLWNpcmNsZSB0ZXh0LXN1Y2Nlc3NcIiwgXCJcIiwgXCJ0cmFjZV9lbmFibGVkXCIsIFwiWVwiKSxcclxuICAgICAgICAgICAgbmV3IEVzVGFibGVPcGVyYXRpb25EZWZpbml0aW9uKFwia2lsbFwiLCB0aGlzLmxjLmxvYyhcIkFtbWF6emEgUHJvY2Vzc29cIiksIFwiZmEgZmEtYmFuIHRleHQtZGFuZ2VyXCIpLFxyXG4gICAgICAgICAgICBuZXcgRXNUYWJsZU9wZXJhdGlvbkRlZmluaXRpb24oXCJjaGFuZ2VfY2dcIiwgdGhpcy5sYy5sb2MoXCJNb2RpZmljYSBHcnVwcG8gZGkgQ29uc3Vtb1wiKSwgXCJmYSBmYS1lZGl0IHRleHQtaW5mb1wiKVxyXG4gICAgICAgIF07XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkluaXQoKSB7XHJcbiAgICAgICAgdGhpcy5zdG9yYWdlU3ViID0gdGhpcy5yb3V0ZS5xdWVyeVBhcmFtcy5zdWJzY3JpYmUocGFyYW1zID0+IHtcclxuICAgICAgICAgICAgdGhpcy5Jbml0KHBhcmFtc1tcImlnbm9yZVN0b3JhZ2VcIl0pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25EZXN0cm95KCkge1xyXG4gICAgICAgIGlmICh0aGlzLnN0b3JhZ2VTdWIpXHJcbiAgICAgICAgICAgIHRoaXMuc3RvcmFnZVN1Yi51bnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIEluaXQoaWdub3JlU3RvcmFnZSkge1xyXG4gICAgICAgIHRoaXMuVHlwZXMgPSBbbmV3IEtleVZhbHVlKFwiVVNFUlwiLCBcIlVTRVJcIiksIG5ldyBLZXlWYWx1ZShcIkJBQ0tHUk9VTkRcIiwgXCJCQUNLR1JPVU5EXCIpLCBuZXcgS2V5VmFsdWUoXCJKT0JcIiwgXCJKT0JcIildO1xyXG4gICAgICAgIHRoaXMuU3RhdGVzID0gW25ldyBLZXlWYWx1ZShcIkFDVElWRVwiLCBcIkFDVElWRVwiKSwgbmV3IEtleVZhbHVlKFwiSU5BQ1RJVkVcIiwgXCJJTkFDVElWRVwiKSwgbmV3IEtleVZhbHVlKFwiS0lMTEVEXCIsIFwiS0lMTEVEXCIpXTtcclxuICAgICAgICB0aGlzLlRocmVhZFR5cGVzID0gW1wiQVBJVEhSRUFEXCIsIFwiQVBJUFVTSFRIUkVBRFwiLCBcIkJBQ0tHUk9VTkRUSFJFQURcIiwgXCJKT0JUSFJFQURcIiwgXCJQQVJBTExFTFNMQVZFVEhSRUFEXCJdLm1hcCh0ID0+IG5ldyBLZXlWYWx1ZSh0LCB0KSk7XHJcbiAgICAgICAgdGhpcy5UaHJlYWRTdGF0dXNlcyA9IFtcIkFDVElWRVwiLCBcIklETEVcIiwgXCJUSFJPVFRMSU5HXCIsIFwiS0lMTEVEXCJdLm1hcCh0ID0+IG5ldyBLZXlWYWx1ZSh0LCB0KSk7XHJcbiAgICAgICAgdGhpcy5kb0luaXQoaWdub3JlU3RvcmFnZSk7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgZG9Jbml0KGlnbm9yZVN0b3JhZ2UpIHtcclxuICAgICAgICBsZXQgaXRlbSA9IGF3YWl0IHRoaXMubG9jYWxTdG9yYWdlLmdldEl0ZW08UHJvY2Vzc2VzVmlldz4oXCJIb3RQcm9jZXNzYXRvXCIpLnRvUHJvbWlzZSgpO1xyXG4gICAgICAgIGlmICghaWdub3JlU3RvcmFnZSAmJiBpdGVtKSB7XHJcbiAgICAgICAgICAgIHRoaXMuaW5pdChpdGVtKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLmluaXQobnVsbCk7XHJcbiAgICAgICAgICAgIHRoaXMubG9jYXRpb24ucmVwbGFjZVN0YXRlKGAvcGFnZXMvJHt0aGlzLm1vZH0vc2VydmVyd29ya2Vyc2ApO1xyXG4gICAgICAgICAgICB0aGlzLnJvdXRlLnNuYXBzaG90LnF1ZXJ5UGFyYW1zID0gW107XHJcbiAgICAgICAgICAgIGF3YWl0IHRoaXMubG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oXCJIb3RQcm9jZXNzYXRvXCIpLnRvUHJvbWlzZSgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBpbml0KEhvdFBvdGF0bzogUHJvY2Vzc2VzVmlldykge1xyXG4gICAgICAgIGlmIChIb3RQb3RhdG8pIHtcclxuICAgICAgICAgICAgdGhpcy5zZWFyY2hWaWV3ID0gSG90UG90YXRvO1xyXG4gICAgICAgICAgICB0aGlzLlBPU1RHZXRTZXJ2ZXJXb3JrZXJzKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLnNlYXJjaFZpZXcgPSBuZXcgUHJvY2Vzc2VzVmlldygpO1xyXG4gICAgICAgICAgICB0aGlzLnNlbmRTZWFyY2goKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgc2VuZFNlYXJjaChyZXNldFBhZ2U6IGJvb2xlYW4gPSB0cnVlKSB7XHJcbiAgICAgICAgdGhpcy5zZWFyY2hWaWV3LnNlYXJjaGlucHJvZ3Jlc3MgPSB0cnVlO1xyXG4gICAgICAgIGlmIChyZXNldFBhZ2UpXHJcbiAgICAgICAgICAgIHRoaXMuc2VhcmNoVmlldy5wYWdlID0gMTtcclxuXHJcbiAgICAgICAgdGhpcy5QT1NUR2V0U2VydmVyV29ya2VycygpO1xyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIFBPU1RHZXRTZXJ2ZXJXb3JrZXJzKCkge1xyXG4gICAgICAgIHRoaXMuc2VhcmNoVmlldyA9IGF3YWl0IHRoaXMuYWRtcy5nZXRTZXJ2ZXJXb3JrZXJzKHRoaXMuc2VhcmNoVmlldyk7XHJcbiAgICAgICAgdGhpcy5zZWFyY2hWaWV3LnNlYXJjaGlucHJvZ3Jlc3MgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmxvY2FsU3RvcmFnZS5zZXRJdGVtKFwiSG90UHJvY2Vzc2F0b1wiLCB0aGlzLnNlYXJjaFZpZXcpLnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIGJhY2soKSB7XHJcbiAgICAgICAgdGhpcy5sb2NhdGlvbi5iYWNrKCk7XHJcbiAgICB9XHJcblxyXG4gICAgb25PcGVyYXRpb24oZXZlbnQ6IHsgaWQ6IHN0cmluZywgaXRlbTogYW55IH0pIHtcclxuICAgICAgICBzd2l0Y2ggKGV2ZW50LmlkKSB7XHJcbiAgICAgICAgICAgIGNhc2UgXCJ0cmFjZV9vblwiOiB0aGlzLnRvZ2dsZVRyYWNpbmcoZXZlbnQuaXRlbSwgdHJ1ZSk7IGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlIFwidHJhY2Vfb2ZmXCI6IHRoaXMudG9nZ2xlVHJhY2luZyhldmVudC5pdGVtLCBmYWxzZSk7IGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlIFwia2lsbFwiOiB0aGlzLmtpbGxQcm9jZXNzKGV2ZW50Lml0ZW0pOyBicmVhaztcclxuICAgICAgICAgICAgY2FzZSBcImNoYW5nZV9jZ1wiOiB0aGlzLmNoYW5nZVByb2Nlc3NDZyhldmVudC5pdGVtKTsgYnJlYWs7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIHRvZ2dsZVRyYWNpbmcocHJvY2VzczogYW55LCB0cmFjaW5nOiBib29sZWFuKSB7XHJcbiAgICAgICAgbGV0IHJlcyA9IGF3YWl0IHRoaXMuYWRtcy5kb1NldFByb2Nlc3NUcmFjaW5nKHByb2Nlc3MucHJvcGVydGllc1tcImluc3RfaWRcIl0gfHwgcHJvY2Vzcy5wcm9wZXJ0aWVzW1wiSU5TVF9JRFwiXSwgcHJvY2Vzcy5wcm9wZXJ0aWVzW1wic2lkXCJdIHx8IHByb2Nlc3MucHJvcGVydGllc1tcIlNJRFwiXSwgcHJvY2Vzcy5wcm9wZXJ0aWVzW1wic2VyaWFsXCJdIHx8IHByb2Nlc3MucHJvcGVydGllc1tcIlNFUklBTFwiXSwgdHJhY2luZy50b1N0cmluZygpKTtcclxuICAgICAgICB0aGlzLm1zZ0V4dHMubWFuYWdlU3RyaW5nUmVzcG9uc2UocmVzLCBcIlwiLCB0aGlzLmxjLmxvYyhcIkVycm9yaSBuZWxsYSBtb2RpZmljYSBkZWwgVHJhY2luZyBkZWwgUHJvY2Vzc29cIiksICgpID0+IHRoaXMuc2VuZFNlYXJjaCgpKTtcclxuICAgIH1cclxuXHJcbiAgICBraWxsUHJvY2Vzcyhwcm9jZXNzOiBhbnkpIHtcclxuICAgICAgICB0aGlzLm1zZ0V4dHMuc2ltcGxlV2FybmluZ1dpdGhDaG9pY2UoXHJcbiAgICAgICAgICAgIHRoaXMubGMubG9jKFwiQ29uZmVybWEgVGVybWluYXppb25lIGRlbCBQcm9jZXNzb1wiKSxcclxuICAgICAgICAgICAgdGhpcy5sYy5sb2MoXCJTZWkgc2ljdXJvIGRpIHZvbGVyIFRlcm1pbmFyZSBpbCBwcm9jZXNzbyBzZWxlemlvbmF0bz8gTCd1dGVudGUgcmVsYXRpdm8gc2FyYScgZGlzY29ubmVzc29cIiksXHJcbiAgICAgICAgICAgIGFzeW5jICgpID0+IHtcclxuICAgICAgICAgICAgICAgIGxldCByZXMgPSBhd2FpdCB0aGlzLmFkbXMuZG9LaWxsUHJvY2Vzcyhwcm9jZXNzLnByb3BlcnRpZXNbXCJpbnN0X2lkXCJdIHx8IHByb2Nlc3MucHJvcGVydGllc1tcIklOU1RfSURcIl0sIHByb2Nlc3MucHJvcGVydGllc1tcInNpZFwiXSB8fCBwcm9jZXNzLnByb3BlcnRpZXNbXCJTSURcIl0sIHByb2Nlc3MucHJvcGVydGllc1tcInNlcmlhbFwiXSB8fCBwcm9jZXNzLnByb3BlcnRpZXNbXCJTRVJJQUxcIl0pO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5tc2dFeHRzLm1hbmFnZVN0cmluZ1Jlc3BvbnNlKHJlcywgdGhpcy5sYy5sb2MoXCJQcm9jZXNzbyB1Y2Npc28gY29uIHN1Y2Nlc3NvXCIpLCB0aGlzLmxjLmxvYyhcIkVycm9yaSBkdXJhbnRlIGxhIEtpbGwgZGVsIFByb2Nlc3NvXCIpLCAoKSA9PiB0aGlzLnNlbmRTZWFyY2goKSk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIC8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiBHZXN0aW9uZSBtb2RpZmljYSBDb25zdW1lciBHcm91cCAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuXHJcbiAgICBuZXdDZzogc3RyaW5nID0gXCJcIjtcclxuICAgIENHczogS2V5VmFsdWVbXSA9IFtdO1xyXG4gICAgQ2dEaWN0aW9uYXJpZXNMb2FkZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIFByb2Nlc3NPbkVkaXQ6IGFueTtcclxuXHJcbiAgICBAVmlld0NoaWxkKFwiY2dGcm9tXCIpIGNnRnJvbTogTmdGb3JtO1xyXG4gICAgQFZpZXdDaGlsZChcImRsZ0NoYW5nZUNnXCIpIGRsZ0NoYW5nZUNnOiBNb2RhbERpcmVjdGl2ZTtcclxuXHJcbiAgICBjaGFuZ2VQcm9jZXNzQ2cocHJvY2VzczogYW55KSB7XHJcbiAgICAgICAgdGhpcy5Qcm9jZXNzT25FZGl0ID0gcHJvY2VzcztcclxuICAgICAgICBpZiAoIXRoaXMuQ2dEaWN0aW9uYXJpZXNMb2FkZWQpIHtcclxuICAgICAgICAgICAgdGhpcy5sb2FkQ2dEaWN0aW9uYXJpZXMoKTtcclxuICAgICAgICAgICAgdGhpcy5DZ0RpY3Rpb25hcmllc0xvYWRlZCA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuc2V0dXBDaGFuZ2VDZygpO1xyXG4gICAgICAgIHRoaXMuZGxnQ2hhbmdlQ2cuc2hvdygpO1xyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIGxvYWRDZ0RpY3Rpb25hcmllcygpIHtcclxuICAgICAgICB0aGlzLkNHcyA9IGF3YWl0IHRoaXMuYWRtcy5nZXRDb25zdW1lckdyb3VwcygpO1xyXG4gICAgfVxyXG5cclxuICAgIHNldHVwQ2hhbmdlQ2coKSB7XHJcbiAgICAgICAgdGhpcy51dGlFeHRzLmNsZWFuRm9ybSh0aGlzLmNnRnJvbSlcclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHsgdGhpcy5uZXdDZyA9IFwiXCIgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgZG9DaGFuZ2VDZygpIHtcclxuICAgICAgICBsZXQgcmVzID0gYXdhaXQgdGhpcy5hZG1zLmRvQ2hhbmdlUHJvY2Vzc0NvbnN1bWVyR3JvdXAodGhpcy5Qcm9jZXNzT25FZGl0LnByb3BlcnRpZXNbXCJpbnN0X2lkXCJdIHx8IHRoaXMuUHJvY2Vzc09uRWRpdC5wcm9wZXJ0aWVzW1wiSU5TVF9JRFwiXSwgdGhpcy5Qcm9jZXNzT25FZGl0LnByb3BlcnRpZXNbXCJzaWRcIl0gfHwgdGhpcy5Qcm9jZXNzT25FZGl0LnByb3BlcnRpZXNbXCJTSURcIl0sIHRoaXMuUHJvY2Vzc09uRWRpdC5wcm9wZXJ0aWVzW1wic2VyaWFsXCJdIHx8IHRoaXMuUHJvY2Vzc09uRWRpdC5wcm9wZXJ0aWVzW1wiU0VSSUFMXCJdLCB0aGlzLm5ld0NnKTtcclxuICAgICAgICB0aGlzLm1zZ0V4dHMubWFuYWdlU3RyaW5nUmVzcG9uc2UocmVzLCB0aGlzLmxjLmxvYyhcIkdydXBwbyBkaSBDb25zdW1vIG1vZGlmaWNhdG8gY29uIHN1Y2Nlc3NvXCIpLCB0aGlzLmxjLmxvYyhcIkVycm9yaSBuZWxsYSBtb2RpZmljYSBkZWwgR3J1cHBvIGRpIENvbnN1bW9cIiksICgpID0+IHRoaXMuc2VuZFNlYXJjaCgpKTtcclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxufSIsIjxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjb2wtMTJcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZCBhcHAtb3ZlcmZsb3ctdmlzaWJsZVwiIHdpZGdldD5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtaGVhZGVyXCI+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtdXBwZXJjYXNlXCI+e3snUmljZXJjYSBQcm9jZXNzaSBBcHBsaWNhdGl2aScgfCBsb2NhbGl6ZTogbGN9fTwvc3Bhbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHkgd2lkZ2V0LWJvZHlcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8Zm9ybSByb2xlPVwiZm9ybVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IGFwcC1maXJzdC1maWx0ZXItbGluZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC14bC0yIGNvbC1sZy0yIGNvbC1tZC0xMiBhcHAtZmlsdGVyLXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Zm9ybS1zZWxlY3QgW0Zvcm1MYXlvdXRdPVwiZmFsc2VcIiBbVmFsaWRhdGlvbl09XCJmYWxzZVwiIFsobmdNb2RlbCldPVwic2VhcmNoVmlldy5maWx0ZXJ0eXBlXCIgbmFtZT1cImZpbHRlcnR5cGVcIiBbU2VsZWN0TGFiZWxdPVwiJ1RpcG8nIHwgbG9jYWxpemU6IGxjXCIgW1NvdXJjZV09XCJUeXBlc1wiPjwvZm9ybS1zZWxlY3Q+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wteGwtMSBjb2wtbGctMSBjb2wtbWQtMTIgYXBwLWZpbHRlci13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZvcm0taW5wdXQgW0Zvcm1MYXlvdXRdPVwiZmFsc2VcIiBbVmFsaWRhdGlvbl09XCJmYWxzZVwiIFsobmdNb2RlbCldPVwic2VhcmNoVmlldy5maWx0ZXJ0ZW5hbnRcIiBuYW1lPVwiZmlsdGVyVGVuYW50XCIgW1BsYWNlaG9sZGVyXT1cIidPcGVyYXRvcmUnIHwgbG9jYWxpemU6IGxjXCI+PC9mb3JtLWlucHV0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXhsLTEgY29sLWxnLTEgY29sLW1kLTEyIGFwcC1maWx0ZXItd3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmb3JtLWlucHV0IFtGb3JtTGF5b3V0XT1cImZhbHNlXCIgW1ZhbGlkYXRpb25dPVwiZmFsc2VcIiBbKG5nTW9kZWwpXT1cInNlYXJjaFZpZXcuZmlsdGVydXNlclwiIG5hbWU9XCJmaWx0ZXJVc2VyXCIgW1BsYWNlaG9sZGVyXT1cIidVdGVudGUnIHwgbG9jYWxpemU6IGxjXCI+PC9mb3JtLWlucHV0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXhsLTEgY29sLWxnLTEgY29sLW1kLTEyIGFwcC1maWx0ZXItd3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmb3JtLXNlbGVjdCBbRm9ybUxheW91dF09XCJmYWxzZVwiIFtWYWxpZGF0aW9uXT1cImZhbHNlXCIgWyhuZ01vZGVsKV09XCJzZWFyY2hWaWV3LmZpbHRlcnN0YXRlXCIgbmFtZT1cImZpbHRlclN0YXRlXCIgW1NlbGVjdExhYmVsXT1cIidTdGF0bycgfCBsb2NhbGl6ZTogbGNcIiBbU291cmNlXT1cIlN0YXRlc1wiPjwvZm9ybS1zZWxlY3Q+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wteGwtMiBjb2wtbGctMiBjb2wtbWQtMTIgYXBwLWZpbHRlci13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZvcm0tc2VsZWN0IFtGb3JtTGF5b3V0XT1cImZhbHNlXCIgW1ZhbGlkYXRpb25dPVwiZmFsc2VcIiBbKG5nTW9kZWwpXT1cInNlYXJjaFZpZXcuZmlsdGVydGhyZWFkdHlwZVwiIG5hbWU9XCJmaWx0ZXJ0aHJlYWR0eXBlXCIgW1NlbGVjdExhYmVsXT1cIidUaXBvIFRocmVhZCcgfCBsb2NhbGl6ZTogbGNcIiBbU291cmNlXT1cIlRocmVhZFR5cGVzXCI+PC9mb3JtLXNlbGVjdD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC14bC0xIGNvbC1sZy0xIGNvbC1tZC0xMiBhcHAtZmlsdGVyLXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Zm9ybS1zZWxlY3QgW0Zvcm1MYXlvdXRdPVwiZmFsc2VcIiBbVmFsaWRhdGlvbl09XCJmYWxzZVwiIFsobmdNb2RlbCldPVwic2VhcmNoVmlldy5maWx0ZXJ0aHJlYWRzdGF0dXNcIiBuYW1lPVwiZmlsdGVydGhyZWFkc3RhdHVzXCIgW1NlbGVjdExhYmVsXT1cIidTdGF0byBUaHJlYWQnIHwgbG9jYWxpemU6IGxjXCIgW1NvdXJjZV09XCJUaHJlYWRTdGF0dXNlc1wiPjwvZm9ybS1zZWxlY3Q+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wteGwtMSBjb2wtbGctMSBjb2wtbWQtMTIgYXBwLWZpbHRlci13cmFwcGVyXCIgc3R5bGU9XCJkaXNwbGF5OiBmbGV4OyBoZWlnaHQ6IDM4cHg7XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZvcm0tY2hlY2tib3ggW0Zvcm1MYXlvdXRdPVwiZmFsc2VcIiBbU2xpZGVyTW9kZV09XCJ0cnVlXCIgW1ZhbGlkYXRpb25dPVwiZmFsc2VcIiBbKG5nTW9kZWwpXT1cInNlYXJjaFZpZXcuZmlsdGVyZ2xvYmFsXCIgbmFtZT1cImZpbHRlcmdsb2JhbFwiPjwvZm9ybS1jaGVja2JveD4mbmJzcDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImFwcC1wb2ludGVyIGFwcC1wYWRkaW5nLXRvcC01IGFwcC1wYWRkaW5nLWxlZnQtNVwiIChjbGljayk9XCJzZWFyY2hWaWV3LmZpbHRlcmdsb2JhbCA9ICFzZWFyY2hWaWV3LmZpbHRlcmdsb2JhbFwiPnt7J0dsb2JhbGUnIHwgbG9jYWxpemU6IGxjfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wteGwtMSBjb2wtbGctMSBjb2wtbWQtMTIgYXBwLWZpbHRlci13cmFwcGVyXCIgc3R5bGU9XCJkaXNwbGF5OiBmbGV4OyBoZWlnaHQ6IDM4cHg7XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZvcm0tY2hlY2tib3ggW0Zvcm1MYXlvdXRdPVwiZmFsc2VcIiBbU2xpZGVyTW9kZV09XCJ0cnVlXCIgW1ZhbGlkYXRpb25dPVwiZmFsc2VcIiBbKG5nTW9kZWwpXT1cInNlYXJjaFZpZXcuZmlsdGVyaW53YWl0XCIgbmFtZT1cImZpbHRlcmlud2FpdFwiPjwvZm9ybS1jaGVja2JveD4mbmJzcDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImFwcC1wb2ludGVyIGFwcC1wYWRkaW5nLXRvcC01IGFwcC1wYWRkaW5nLWxlZnQtNVwiIChjbGljayk9XCJzZWFyY2hWaWV3LmZpbHRlcmlud2FpdCA9ICFzZWFyY2hWaWV3LmZpbHRlcmlud2FpdFwiPnt7J0luIEF0dGVzYScgfCBsb2NhbGl6ZTogbGN9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBbZGlzYWJsZWRdPVwic2VhcmNoVmlldy5zZWFyY2hpbnByb2dyZXNzXCIgY2xhc3M9XCJpbnB1dC1ncm91cC1hZGRvbiBidG4gYXBwLWJ0bi1zZWFyY2ggYXBwLW1hcmdpbi10b3AtMjBcIiAoY2xpY2spPVwic2VuZFNlYXJjaCgpXCIgdHlwZT1cInN1Ym1pdFwiPjxpIGNsYXNzPVwiZmEgZmEtc2VhcmNoXCI+PC9pPjwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Zvcm0+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxwICpuZ0lmPVwiIXNlYXJjaFZpZXdcIj48ZW0+e3snQ2FyaWNvIGkgUHJvY2Vzc2kgQXBwbGljYXRpdmknIHwgbG9jYWxpemU6IGxjfX0uLi48L2VtPjwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInNlYXJjaFZpZXdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxlcy10YWJsZSBbKG5nTW9kZWwpXT1cInNlYXJjaFZpZXdcIiBbRHluYW1pY09wZXJhdGlvbnNdPVwiRHluYW1pY09wc1wiIFtBdXRvVXBkYXRlXT1cInRydWVcIiBbT3JkZXJCeUNvbHVtbl09XCJ0cnVlXCIgKG9uU2VhcmNoUmVxdWVzdCk9XCJzZW5kU2VhcmNoKCRldmVudCk7XCIgKG9uRHluYW1pY09wZXJhdGlvbik9XCJvbk9wZXJhdGlvbigkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJhcHAtbm93cmFwXCIgKnRkPVwiJ2Z1bGxfd2FpdF9zdGFjayc7IGxldCB2YWx1ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZhIGZhLWxpc3QgYXBwLXBvaW50ZXJcIiAoY2xpY2spPVwidmFsdWVUb1Nob3cgPSB2YWx1ZTsgZGxnVmFsdWUuc2hvdygpO1wiPjwvc3Bhbj4mbmJzcDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3t2YWx1ZS5sZW5ndGggPiA3MCA/IHZhbHVlLnN1YnN0cigwLCA2NykgKyAnLi4uJyA6IHZhbHVlfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2VzLXRhYmxlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFwcC1tYXJnaW4tdG9wLTE1XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tc2Vjb25kYXJ5IHB1bGwtbGVmdFwiIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwiYmFjaygpXCI+e3snSW5kaWV0cm8nIHwgbG9jYWxpemU6IGxjfX08L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2xlYXJmaXhcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj5cclxuXHJcbjxkaXYgYnNNb2RhbCAjZGxnQ2hhbmdlQ2c9XCJicy1tb2RhbFwiIGNsYXNzPVwibW9kYWwgZmFkZVwiIHJvbGU9XCJkaWFsb2dcIiBhcmlhLWhpZGRlbj1cInRydWVcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1kaWFsb2cgbW9kYWwtbGdcIiBlbWFEcmFnZ2FibGU+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsLWNvbnRlbnRcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsLWhlYWRlclwiPlxyXG4gICAgICAgICAgICAgICAgPGg0IGNsYXNzPVwibW9kYWwtdGl0bGUgcHVsbC1sZWZ0XCI+e3snTW9kaWZpY2EgR3J1cHBvIGRpIENvbnN1bW8nIHwgbG9jYWxpemU6IGxjfX08L2g0PlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJjbG9zZSBwdWxsLXJpZ2h0XCIgKGNsaWNrKT1cImRsZ0NoYW5nZUNnLmhpZGUoKVwiIGFyaWEtbGFiZWw9XCJDbG9zZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPiZ0aW1lczs8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxmb3JtIG5vdmFsaWRhdGUgI2NnRnJvbT1cIm5nRm9ybVwiIChuZ1N1Ym1pdCk9XCJjZ0Zyb20udmFsaWQgJiYgZG9DaGFuZ2VDZygpICYmIGRsZ0NoYW5nZUNnLmhpZGUoKVwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsLWJvZHlcIj5cclxuICAgICAgICAgICAgICAgICAgICA8Zm9ybS1zZWxlY3QgW0xhYmVsXT1cIidOdW92byBHcnVwcG8gZGkgQ29uc3VtbycgfCBsb2NhbGl6ZTogbGNcIiBbKG5nTW9kZWwpXT1cIm5ld0NnXCIgbmFtZT1cIm5ld0NnXCIgW1NvdXJjZV09XCJDR3NcIiByZXF1aXJlZCBbTGFzdF09XCJ0cnVlXCI+PC9mb3JtLXNlbGVjdD5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsLWZvb3RlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1zZWNvbmRhcnkgYXBwLW1hcmdpbi1yaWdodC01XCIgKGNsaWNrKT1cImRsZ0NoYW5nZUNnLmhpZGUoKVwiPnt7J0NoaXVkaScgfCBsb2NhbGl6ZTogbGN9fTwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cInN1Ym1pdFwiIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5XCI+e3snQ29uZmVybWEnIHwgbG9jYWxpemU6IGxjfX08L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Zvcm0+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+XHJcblxyXG5cclxuPGRpdiBic01vZGFsICNkbGdWYWx1ZT1cImJzLW1vZGFsXCIgY2xhc3M9XCJtb2RhbCBmYWRlXCIgcm9sZT1cImRpYWxvZ1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPlxyXG4gICAgPGRpdiBjbGFzcz1cIm1vZGFsLWRpYWxvZyBtb2RhbC14bFwiIGFwcC1kcmFnZ2FibGU9XCIubW9kYWwtaGVhZGVyXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsLWNvbnRlbnRcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsLWhlYWRlclwiPlxyXG4gICAgICAgICAgICAgICAgPGg1IGNsYXNzPVwibW9kYWwtdGl0bGUgcHVsbC1sZWZ0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgRnVsbCBXYWl0IFN0YWNrXHJcbiAgICAgICAgICAgICAgICA8L2g1PlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJjbG9zZSBwdWxsLXJpZ2h0XCIgKGNsaWNrKT1cImRsZ1ZhbHVlLmhpZGUoKVwiIGFyaWEtbGFiZWw9XCJDbG9zZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPiZ0aW1lczs8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1ib2R5IGFwcC1wYWRpZG5nLWJvdHRvbS0yMCBhcHAtcGFkZGluZy10b3AtMjBcIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYXBwLXdyYXBcIj5cclxuICAgICAgICAgICAgICAgICAgICB7e3ZhbHVlVG9TaG93fX1cclxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1mb290ZXJcIj5cclxuICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5XCIgKGNsaWNrKT1cImRsZ1ZhbHVlLmhpZGUoKVwiPkNoaXVkaTwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj4iXX0=
185
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRtX3dyay5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hZG1pbi1tb2R1bGUvc3JjL2xpYi9jb21wb25lbnRzL3dvcmtlcnMvYWRtX3dyay5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hZG1pbi1tb2R1bGUvc3JjL2xpYi9jb21wb25lbnRzL3dvcmtlcnMvYWRtX3dyay5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxVQUFVO0FBQ1YsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSzdELGlCQUFpQjtBQUNqQixPQUFPLEVBQUUsbUJBQW1CLEVBQW1ELE1BQU0sc0JBQXNCLENBQUM7QUFDNUcsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDaEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFNOUQsZUFBZTtBQUNmLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDdEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUUvQyxpQkFBaUI7QUFDakIsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHlCQUF5QixDQUFDOzs7Ozs7Ozs7Ozs7QUFRcEQsTUFBTSxPQUFPLGVBQWU7SUFjeEIsWUFDWSxPQUF1QixFQUN2QixPQUF1QixFQUN4QixFQUF1QixFQUN0QixZQUFnQyxFQUNoQyxRQUF5QixFQUN6QixLQUFxQixFQUNyQixRQUFrQixFQUNsQixJQUE0QixFQUNILEdBQVc7UUFScEMsWUFBTyxHQUFQLE9BQU8sQ0FBZ0I7UUFDdkIsWUFBTyxHQUFQLE9BQU8sQ0FBZ0I7UUFDeEIsT0FBRSxHQUFGLEVBQUUsQ0FBcUI7UUFDdEIsaUJBQVksR0FBWixZQUFZLENBQW9CO1FBQ2hDLGFBQVEsR0FBUixRQUFRLENBQWlCO1FBQ3pCLFVBQUssR0FBTCxLQUFLLENBQWdCO1FBQ3JCLGFBQVEsR0FBUixRQUFRLENBQVU7UUFDbEIsU0FBSSxHQUFKLElBQUksQ0FBd0I7UUFDSCxRQUFHLEdBQUgsR0FBRyxDQUFRO1FBckJ4QyxzQkFBaUIsR0FBRyxJQUFJLENBQUM7UUFFMUIsZUFBVSxHQUFrQixJQUFJLGFBQWEsRUFBRSxDQUFDO1FBQ2hELGVBQVUsR0FBaUMsRUFBRSxDQUFDO1FBRTlDLGdCQUFXLEdBQVcsRUFBRSxDQUFDO1FBRXpCLFVBQUssR0FBZSxFQUFFLENBQUM7UUFDdkIsV0FBTSxHQUFlLEVBQUUsQ0FBQztRQUN4QixnQkFBVyxHQUFlLEVBQUUsQ0FBQztRQUM3QixtQkFBYyxHQUFlLEVBQUUsQ0FBQztRQTBIdkMseUhBQXlIO1FBRXpILFVBQUssR0FBVyxFQUFFLENBQUM7UUFDbkIsUUFBRyxHQUFlLEVBQUUsQ0FBQztRQUNyQix5QkFBb0IsR0FBWSxLQUFLLENBQUM7UUFqSGxDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFVBQVUsRUFBRSxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUUvSCxJQUFJLENBQUMsVUFBVSxHQUFHO1lBQ2QsSUFBSSwwQkFBMEIsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMseUJBQXlCLENBQUMsRUFBRSwwQkFBMEIsRUFBRSxFQUFFLEVBQUUsZUFBZSxFQUFFLEdBQUcsQ0FBQztZQUN4SSxJQUFJLDBCQUEwQixDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyw0QkFBNEIsQ0FBQyxFQUFFLDJCQUEyQixFQUFFLEVBQUUsRUFBRSxlQUFlLEVBQUUsR0FBRyxDQUFDO1lBQzdJLElBQUksMEJBQTBCLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLGtCQUFrQixDQUFDLEVBQUUsdUJBQXVCLENBQUM7WUFDaEcsSUFBSSwwQkFBMEIsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsNEJBQTRCLENBQUMsRUFBRSxzQkFBc0IsQ0FBQztTQUNqSCxDQUFDO0lBQ04sQ0FBQztJQUVELFFBQVE7UUFDSixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUN4RCxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDO1FBQ3ZDLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELFdBQVc7UUFDUCxJQUFJLElBQUksQ0FBQyxVQUFVO1lBQ2YsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN0QyxDQUFDO0lBRUQsSUFBSSxDQUFDLGFBQWE7UUFDZCxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsSUFBSSxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLElBQUksUUFBUSxDQUFDLFlBQVksRUFBRSxZQUFZLENBQUMsRUFBRSxJQUFJLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNsSCxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxRQUFRLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxFQUFFLElBQUksUUFBUSxDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUMsRUFBRSxJQUFJLFFBQVEsQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQztRQUN6SCxJQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsV0FBVyxFQUFFLGVBQWUsRUFBRSxrQkFBa0IsRUFBRSxXQUFXLEVBQUUscUJBQXFCLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLFFBQVEsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN2SSxJQUFJLENBQUMsY0FBYyxHQUFHLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsUUFBUSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxRQUFRLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDOUYsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRUQsS0FBSyxDQUFDLE1BQU0sQ0FBQyxhQUFhO1FBQ3RCLElBQUksSUFBSSxHQUFHLE1BQU0sSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQWdCLGVBQWUsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ3ZGLElBQUksQ0FBQyxhQUFhLElBQUksSUFBSSxFQUFFO1lBQ3hCLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDbkI7YUFBTTtZQUNILElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDaEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsVUFBVSxJQUFJLENBQUMsR0FBRyxnQkFBZ0IsQ0FBQyxDQUFDO1lBQy9ELElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLFdBQVcsR0FBRyxFQUFFLENBQUM7WUFDckMsTUFBTSxJQUFJLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxlQUFlLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztTQUNuRTtJQUNMLENBQUM7SUFFRCxJQUFJLENBQUMsU0FBd0I7UUFDekIsSUFBSSxTQUFTLEVBQUU7WUFDWCxJQUFJLENBQUMsVUFBVSxHQUFHLFNBQVMsQ0FBQztZQUM1QixJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztTQUMvQjthQUNJO1lBQ0QsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLGFBQWEsRUFBRSxDQUFDO1lBQ3RDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztTQUNyQjtJQUNMLENBQUM7SUFFRCxVQUFVLENBQUMsWUFBcUIsSUFBSTtRQUNoQyxJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQztRQUN4QyxJQUFJLFNBQVM7WUFDVCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksR0FBRyxDQUFDLENBQUM7UUFFN0IsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7SUFDaEMsQ0FBQztJQUVELEtBQUssQ0FBQyxvQkFBb0I7UUFDdEIsNEdBQTRHO1FBQzVHLHFHQUFxRztRQUNyRyxJQUFJLElBQUksQ0FBQyxpQkFBaUIsSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLGlCQUFpQixJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsWUFBWSxFQUFFO1lBQzFGLElBQUksY0FBYyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUM3RCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztZQUN2QixxQkFBcUIsQ0FBQyxLQUFLLElBQUksRUFBRTtnQkFDN0IsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDO2dCQUN0RCxJQUFJLENBQUMsVUFBVSxHQUFHLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxjQUFjLENBQUMsQ0FBQztnQkFDbkUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsR0FBRyxLQUFLLENBQUM7Z0JBQ3pDLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLGVBQWUsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDNUUsQ0FBQyxDQUFDLENBQUM7U0FDTjthQUNJO1lBQ0QsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDO1lBQ3RELElBQUksQ0FBQyxVQUFVLEdBQUcsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUNwRSxJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQixHQUFHLEtBQUssQ0FBQztZQUN6QyxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO1NBQzNFO0lBQ0wsQ0FBQztJQUVELElBQUk7UUFDQSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxXQUFXLENBQUMsS0FBZ0M7UUFDeEMsUUFBUSxLQUFLLENBQUMsRUFBRSxFQUFFO1lBQ2QsS0FBSyxVQUFVO2dCQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztnQkFBQyxNQUFNO1lBQzdELEtBQUssV0FBVztnQkFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7Z0JBQUMsTUFBTTtZQUMvRCxLQUFLLE1BQU07Z0JBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQUMsTUFBTTtZQUNqRCxLQUFLLFdBQVc7Z0JBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQUMsTUFBTTtTQUM3RDtJQUNMLENBQUM7SUFFRCxLQUFLLENBQUMsYUFBYSxDQUFDLE9BQVksRUFBRSxPQUFnQjtRQUM5QyxJQUFJLEdBQUcsR0FBRyxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsSUFBSSxPQUFPLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLElBQUksT0FBTyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsRUFBRSxPQUFPLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLEVBQUUsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDeFAsSUFBSSxDQUFDLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLGdEQUFnRCxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUM7SUFDdkksQ0FBQztJQUVELFdBQVcsQ0FBQyxPQUFZO1FBQ3BCLElBQUksQ0FBQyxPQUFPLENBQUMsdUJBQXVCLENBQ2hDLElBQUksQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLG9DQUFvQyxDQUFDLEVBQ2pELElBQUksQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLDRGQUE0RixDQUFDLEVBQ3pHLEtBQUssSUFBSSxFQUFFO1lBQ1AsSUFBSSxHQUFHLEdBQUcsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLEVBQUUsT0FBTyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsSUFBSSxPQUFPLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxFQUFFLE9BQU8sQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLElBQUksT0FBTyxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1lBQzlOLElBQUksQ0FBQyxPQUFPLENBQUMsb0JBQW9CLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLDhCQUE4QixDQUFDLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMscUNBQXFDLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQztRQUNySyxDQUFDLENBQUMsQ0FBQztJQUNYLENBQUM7SUFZRCxlQUFlLENBQUMsT0FBWTtRQUN4QixJQUFJLENBQUMsYUFBYSxHQUFHLE9BQU8sQ0FBQztRQUM3QixJQUFJLENBQUMsSUFBSSxDQUFDLG9CQUFvQixFQUFFO1lBQzVCLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1lBQzFCLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUM7U0FDcEM7UUFDRCxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRUQsS0FBSyxDQUFDLGtCQUFrQjtRQUNwQixJQUFJLENBQUMsR0FBRyxHQUFHLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO0lBQ25ELENBQUM7SUFFRCxhQUFhO1FBQ1QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFBO1FBQ25DLFVBQVUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFRCxLQUFLLENBQUMsVUFBVTtRQUNaLElBQUksR0FBRyxHQUFHLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDM1QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsMkNBQTJDLENBQUMsRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyw2Q0FBNkMsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDO1FBQ3RMLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7OzZHQXZLUSxlQUFlLDhRQXVCWixlQUFlO2lHQXZCbEIsZUFBZSw4T0M3QjVCLGt3UEEwR00sODJHRGhGYSxDQUFDLEVBQUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsQ0FBQzs0RkFHN0QsZUFBZTtrQkFMM0IsU0FBUzsrQkFDSSxTQUFTLGlCQUNKLENBQUMsRUFBRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxDQUFDOzswQkEwQmpFLE1BQU07MkJBQUMsZUFBZTs0Q0FzSE4sTUFBTTtzQkFBMUIsU0FBUzt1QkFBQyxRQUFRO2dCQUNPLFdBQVc7c0JBQXBDLFNBQVM7dUJBQUMsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbIi8vIEFuZ3VsYXJcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3QsIFZpZXdDaGlsZCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlIH0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xyXG5pbXBvcnQgeyBMb2NhdGlvbiB9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcclxuaW1wb3J0IHsgTmdGb3JtIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcblxyXG4vLyBDb25maWd1cmF6aW9uaVxyXG5pbXBvcnQgeyBJbmJvdW5kTWVzc2FnZVR5cGVzLCBJbnRlckNvbVNlcnZpY2UsIE1lc3NhZ2VTZXJ2aWNlLCBVdGlsaXR5U2VydmljZSB9IGZyb20gXCJAZXNmYWVuemEvZXh0ZW5zaW9uc1wiO1xyXG5pbXBvcnQgeyBFc1RhYmxlT3BlcmF0aW9uRGVmaW5pdGlvbiB9IGZyb20gXCJAZXNmYWVuemEvZXMtdGFibGVcIjtcclxuaW1wb3J0IHsgTG9jYWxpemF0aW9uU2VydmljZSB9IGZyb20gXCJAZXNmYWVuemEvbG9jYWxpemF0aW9uc1wiO1xyXG5pbXBvcnQgeyBQcmVmZXJlbmNlc1NlcnZpY2UgfSBmcm9tIFwiQGVzZmFlbnphL3ByZWZlcmVuY2VzXCI7XHJcblxyXG4vLyBEaXJldHRpdmUsIENvbXBvbmVudGksIExpYnJlcmllXHJcbmltcG9ydCB7IE1vZGFsRGlyZWN0aXZlIH0gZnJvbSBcIm5neC1ib290c3RyYXAvbW9kYWxcIjtcclxuXHJcbi8vIEFwcGxpY2F6aW9uZVxyXG5pbXBvcnQgeyBLZXlWYWx1ZSB9IGZyb20gXCIuLi8uLi9tb2RlbHMvc2hhcmVkL0tleVZhbHVlXCI7XHJcbmltcG9ydCB7IFByb2Nlc3Nlc1ZpZXcgfSBmcm9tIFwiLi4vLi4vbW9kZWxzL2NvbXBvbmVudHMvUHJvY2Vzc2VzVmlld1wiO1xyXG5pbXBvcnQgeyBBRE1fTU9EVUxFX1BBVEggfSBmcm9tIFwiLi4vLi4vdG9rZW5zXCI7XHJcblxyXG4vLyBMb2NhbGl6emF6aW9uZVxyXG5pbXBvcnQgeyBBZG1XcmtMb2MgfSBmcm9tIFwiLi9hZG1fd3JrLmNvbXBvbmVudC5sb2NcIjtcclxuaW1wb3J0IHsgQWRtaW5Nb2R1bGVCYXNlU2VydmljZSB9IGZyb20gXCIuLi8uLi9zZXJ2aWNlcy9hZG1pbi1tb2R1bGUuYmFzZS5zZXJ2aWNlXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiBcImFkbV93cmtcIixcclxuICAgIHZpZXdQcm92aWRlcnM6IFt7IHByb3ZpZGU6IExvY2FsaXphdGlvblNlcnZpY2UsIHVzZUNsYXNzOiBBZG1XcmtMb2MgfV0sXHJcbiAgICB0ZW1wbGF0ZVVybDogXCIuL2FkbV93cmsuY29tcG9uZW50Lmh0bWxcIlxyXG59KVxyXG5leHBvcnQgY2xhc3MgQWRtV3JrQ29tcG9uZW50IHtcclxuXHJcbiAgICBwcml2YXRlIGdsb2JhbEZpbHRlclZhbHVlID0gbnVsbDtcclxuXHJcbiAgICBwdWJsaWMgc2VhcmNoVmlldzogUHJvY2Vzc2VzVmlldyA9IG5ldyBQcm9jZXNzZXNWaWV3KCk7XHJcbiAgICBwdWJsaWMgRHluYW1pY09wczogRXNUYWJsZU9wZXJhdGlvbkRlZmluaXRpb25bXSA9IFtdO1xyXG4gICAgcHVibGljIHN0b3JhZ2VTdWI6IGFueTtcclxuICAgIHB1YmxpYyB2YWx1ZVRvU2hvdzogc3RyaW5nID0gXCJcIjtcclxuXHJcbiAgICBwdWJsaWMgVHlwZXM6IEtleVZhbHVlW10gPSBbXTtcclxuICAgIHB1YmxpYyBTdGF0ZXM6IEtleVZhbHVlW10gPSBbXTtcclxuICAgIHB1YmxpYyBUaHJlYWRUeXBlczogS2V5VmFsdWVbXSA9IFtdO1xyXG4gICAgcHVibGljIFRocmVhZFN0YXR1c2VzOiBLZXlWYWx1ZVtdID0gW107XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHJpdmF0ZSB1dGlFeHRzOiBVdGlsaXR5U2VydmljZSxcclxuICAgICAgICBwcml2YXRlIG1zZ0V4dHM6IE1lc3NhZ2VTZXJ2aWNlLFxyXG4gICAgICAgIHB1YmxpYyBsYzogTG9jYWxpemF0aW9uU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIGxvY2FsU3RvcmFnZTogUHJlZmVyZW5jZXNTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgaW50ZXJjb206IEludGVyQ29tU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcclxuICAgICAgICBwcml2YXRlIGxvY2F0aW9uOiBMb2NhdGlvbixcclxuICAgICAgICBwcml2YXRlIGFkbXM6IEFkbWluTW9kdWxlQmFzZVNlcnZpY2UsXHJcbiAgICAgICAgQEluamVjdChBRE1fTU9EVUxFX1BBVEgpIHByaXZhdGUgbW9kOiBzdHJpbmcpIHtcclxuXHJcbiAgICAgICAgdGhpcy5pbnRlcmNvbS5zZW5kKEluYm91bmRNZXNzYWdlVHlwZXMuTmF2aWdhdGlvbiwgeyBzdWI6IGZhbHNlLCByb3V0ZVRpdGxlOiB0aGlzLmxjLmxvYyh0aGlzLnJvdXRlLnNuYXBzaG90LmRhdGFbXCJ0aXRsZVwiXSkgfSk7XHJcblxyXG4gICAgICAgIHRoaXMuRHluYW1pY09wcyA9IFtcclxuICAgICAgICAgICAgbmV3IEVzVGFibGVPcGVyYXRpb25EZWZpbml0aW9uKFwidHJhY2Vfb25cIiwgdGhpcy5sYy5sb2MoXCJBdHRpdmEgVHJhY2luZyBQcm9jZXNzb1wiKSwgXCJmYSBmYS1jaXJjbGUgdGV4dC1kYW5nZXJcIiwgXCJcIiwgXCJ0cmFjZV9lbmFibGVkXCIsIFwiTlwiKSxcclxuICAgICAgICAgICAgbmV3IEVzVGFibGVPcGVyYXRpb25EZWZpbml0aW9uKFwidHJhY2Vfb2ZmXCIsIHRoaXMubGMubG9jKFwiRGlzYXR0aXZhIFRyYWNpbmcgUHJvZ2V0dG9cIiksIFwiZmEgZmEtY2lyY2xlIHRleHQtc3VjY2Vzc1wiLCBcIlwiLCBcInRyYWNlX2VuYWJsZWRcIiwgXCJZXCIpLFxyXG4gICAgICAgICAgICBuZXcgRXNUYWJsZU9wZXJhdGlvbkRlZmluaXRpb24oXCJraWxsXCIsIHRoaXMubGMubG9jKFwiQW1tYXp6YSBQcm9jZXNzb1wiKSwgXCJmYSBmYS1iYW4gdGV4dC1kYW5nZXJcIiksXHJcbiAgICAgICAgICAgIG5ldyBFc1RhYmxlT3BlcmF0aW9uRGVmaW5pdGlvbihcImNoYW5nZV9jZ1wiLCB0aGlzLmxjLmxvYyhcIk1vZGlmaWNhIEdydXBwbyBkaSBDb25zdW1vXCIpLCBcImZhIGZhLWVkaXQgdGV4dC1pbmZvXCIpXHJcbiAgICAgICAgXTtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uSW5pdCgpIHtcclxuICAgICAgICB0aGlzLnN0b3JhZ2VTdWIgPSB0aGlzLnJvdXRlLnF1ZXJ5UGFyYW1zLnN1YnNjcmliZShwYXJhbXMgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLkluaXQocGFyYW1zW1wiaWdub3JlU3RvcmFnZVwiXSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuc3RvcmFnZVN1YilcclxuICAgICAgICAgICAgdGhpcy5zdG9yYWdlU3ViLnVuc3Vic2NyaWJlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgSW5pdChpZ25vcmVTdG9yYWdlKSB7XHJcbiAgICAgICAgdGhpcy5UeXBlcyA9IFtuZXcgS2V5VmFsdWUoXCJVU0VSXCIsIFwiVVNFUlwiKSwgbmV3IEtleVZhbHVlKFwiQkFDS0dST1VORFwiLCBcIkJBQ0tHUk9VTkRcIiksIG5ldyBLZXlWYWx1ZShcIkpPQlwiLCBcIkpPQlwiKV07XHJcbiAgICAgICAgdGhpcy5TdGF0ZXMgPSBbbmV3IEtleVZhbHVlKFwiQUNUSVZFXCIsIFwiQUNUSVZFXCIpLCBuZXcgS2V5VmFsdWUoXCJJTkFDVElWRVwiLCBcIklOQUNUSVZFXCIpLCBuZXcgS2V5VmFsdWUoXCJLSUxMRURcIiwgXCJLSUxMRURcIildO1xyXG4gICAgICAgIHRoaXMuVGhyZWFkVHlwZXMgPSBbXCJBUElUSFJFQURcIiwgXCJBUElQVVNIVEhSRUFEXCIsIFwiQkFDS0dST1VORFRIUkVBRFwiLCBcIkpPQlRIUkVBRFwiLCBcIlBBUkFMTEVMU0xBVkVUSFJFQURcIl0ubWFwKHQgPT4gbmV3IEtleVZhbHVlKHQsIHQpKTtcclxuICAgICAgICB0aGlzLlRocmVhZFN0YXR1c2VzID0gW1wiQUNUSVZFXCIsIFwiSURMRVwiLCBcIlRIUk9UVExJTkdcIiwgXCJLSUxMRURcIl0ubWFwKHQgPT4gbmV3IEtleVZhbHVlKHQsIHQpKTtcclxuICAgICAgICB0aGlzLmRvSW5pdChpZ25vcmVTdG9yYWdlKTtcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBkb0luaXQoaWdub3JlU3RvcmFnZSkge1xyXG4gICAgICAgIGxldCBpdGVtID0gYXdhaXQgdGhpcy5sb2NhbFN0b3JhZ2UuZ2V0SXRlbTxQcm9jZXNzZXNWaWV3PihcIkhvdFByb2Nlc3NhdG9cIikudG9Qcm9taXNlKCk7XHJcbiAgICAgICAgaWYgKCFpZ25vcmVTdG9yYWdlICYmIGl0ZW0pIHtcclxuICAgICAgICAgICAgdGhpcy5pbml0KGl0ZW0pO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuaW5pdChudWxsKTtcclxuICAgICAgICAgICAgdGhpcy5sb2NhdGlvbi5yZXBsYWNlU3RhdGUoYC9wYWdlcy8ke3RoaXMubW9kfS9zZXJ2ZXJ3b3JrZXJzYCk7XHJcbiAgICAgICAgICAgIHRoaXMucm91dGUuc25hcHNob3QucXVlcnlQYXJhbXMgPSBbXTtcclxuICAgICAgICAgICAgYXdhaXQgdGhpcy5sb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShcIkhvdFByb2Nlc3NhdG9cIikudG9Qcm9taXNlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGluaXQoSG90UG90YXRvOiBQcm9jZXNzZXNWaWV3KSB7XHJcbiAgICAgICAgaWYgKEhvdFBvdGF0bykge1xyXG4gICAgICAgICAgICB0aGlzLnNlYXJjaFZpZXcgPSBIb3RQb3RhdG87XHJcbiAgICAgICAgICAgIHRoaXMuUE9TVEdldFNlcnZlcldvcmtlcnMoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2VhcmNoVmlldyA9IG5ldyBQcm9jZXNzZXNWaWV3KCk7XHJcbiAgICAgICAgICAgIHRoaXMuc2VuZFNlYXJjaCgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBzZW5kU2VhcmNoKHJlc2V0UGFnZTogYm9vbGVhbiA9IHRydWUpIHtcclxuICAgICAgICB0aGlzLnNlYXJjaFZpZXcuc2VhcmNoaW5wcm9ncmVzcyA9IHRydWU7XHJcbiAgICAgICAgaWYgKHJlc2V0UGFnZSlcclxuICAgICAgICAgICAgdGhpcy5zZWFyY2hWaWV3LnBhZ2UgPSAxO1xyXG5cclxuICAgICAgICB0aGlzLlBPU1RHZXRTZXJ2ZXJXb3JrZXJzKCk7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgUE9TVEdldFNlcnZlcldvcmtlcnMoKSB7XHJcbiAgICAgICAgLy8gU3dpdGNoIGNhdHRpdm8gcGVyIHJlc2V0dGFyZSBsYSB0YWJlbGxhIHF1YW5kbyBjYW1iaWEgaWwgZ2xvYmFsIChkYXRvIGNoZSBwb3RyZWJiZXJvIGNhbWJpYXJlIGxlIGNvbG9ubmUpXHJcbiAgICAgICAgLy8gTGEgY2FzaXN0aWNhIMOoIGVzcGxpY2l0YW1lbnRlIG5vbiBzdXBwb3J0YXRhIGRhbGwnZXN0YWJsZSBxdWluZGkgYWJib3p6byB1biBoYXJkIHJlZnJlc2ggZGEgcXVpLi4uXHJcbiAgICAgICAgaWYgKHRoaXMuZ2xvYmFsRmlsdGVyVmFsdWUgIT0gbnVsbCAmJiB0aGlzLmdsb2JhbEZpbHRlclZhbHVlICE9IHRoaXMuc2VhcmNoVmlldy5maWx0ZXJnbG9iYWwpIHtcclxuICAgICAgICAgICAgbGV0IHByZXZTZWFyY2hWaWV3ID0gdGhpcy51dGlFeHRzLmRlZXBDbG9uZSh0aGlzLnNlYXJjaFZpZXcpO1xyXG4gICAgICAgICAgICB0aGlzLnNlYXJjaFZpZXcgPSBudWxsO1xyXG4gICAgICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoYXN5bmMgKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5nbG9iYWxGaWx0ZXJWYWx1ZSA9IHRoaXMuc2VhcmNoVmlldy5maWx0ZXJnbG9iYWw7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNlYXJjaFZpZXcgPSBhd2FpdCB0aGlzLmFkbXMuZ2V0U2VydmVyV29ya2VycyhwcmV2U2VhcmNoVmlldyk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNlYXJjaFZpZXcuc2VhcmNoaW5wcm9ncmVzcyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5sb2NhbFN0b3JhZ2Uuc2V0SXRlbShcIkhvdFByb2Nlc3NhdG9cIiwgdGhpcy5zZWFyY2hWaWV3KS5zdWJzY3JpYmUoKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLmdsb2JhbEZpbHRlclZhbHVlID0gdGhpcy5zZWFyY2hWaWV3LmZpbHRlcmdsb2JhbDtcclxuICAgICAgICAgICAgdGhpcy5zZWFyY2hWaWV3ID0gYXdhaXQgdGhpcy5hZG1zLmdldFNlcnZlcldvcmtlcnModGhpcy5zZWFyY2hWaWV3KTtcclxuICAgICAgICAgICAgdGhpcy5zZWFyY2hWaWV3LnNlYXJjaGlucHJvZ3Jlc3MgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5sb2NhbFN0b3JhZ2Uuc2V0SXRlbShcIkhvdFByb2Nlc3NhdG9cIiwgdGhpcy5zZWFyY2hWaWV3KS5zdWJzY3JpYmUoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgYmFjaygpIHtcclxuICAgICAgICB0aGlzLmxvY2F0aW9uLmJhY2soKTtcclxuICAgIH1cclxuXHJcbiAgICBvbk9wZXJhdGlvbihldmVudDogeyBpZDogc3RyaW5nLCBpdGVtOiBhbnkgfSkge1xyXG4gICAgICAgIHN3aXRjaCAoZXZlbnQuaWQpIHtcclxuICAgICAgICAgICAgY2FzZSBcInRyYWNlX29uXCI6IHRoaXMudG9nZ2xlVHJhY2luZyhldmVudC5pdGVtLCB0cnVlKTsgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgXCJ0cmFjZV9vZmZcIjogdGhpcy50b2dnbGVUcmFjaW5nKGV2ZW50Lml0ZW0sIGZhbHNlKTsgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgXCJraWxsXCI6IHRoaXMua2lsbFByb2Nlc3MoZXZlbnQuaXRlbSk7IGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlIFwiY2hhbmdlX2NnXCI6IHRoaXMuY2hhbmdlUHJvY2Vzc0NnKGV2ZW50Lml0ZW0pOyBicmVhaztcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgdG9nZ2xlVHJhY2luZyhwcm9jZXNzOiBhbnksIHRyYWNpbmc6IGJvb2xlYW4pIHtcclxuICAgICAgICBsZXQgcmVzID0gYXdhaXQgdGhpcy5hZG1zLmRvU2V0UHJvY2Vzc1RyYWNpbmcocHJvY2Vzcy5wcm9wZXJ0aWVzW1wiaW5zdF9pZFwiXSB8fCBwcm9jZXNzLnByb3BlcnRpZXNbXCJJTlNUX0lEXCJdLCBwcm9jZXNzLnByb3BlcnRpZXNbXCJzaWRcIl0gfHwgcHJvY2Vzcy5wcm9wZXJ0aWVzW1wiU0lEXCJdLCBwcm9jZXNzLnByb3BlcnRpZXNbXCJzZXJpYWxcIl0gfHwgcHJvY2Vzcy5wcm9wZXJ0aWVzW1wiU0VSSUFMXCJdLCB0cmFjaW5nLnRvU3RyaW5nKCkpO1xyXG4gICAgICAgIHRoaXMubXNnRXh0cy5tYW5hZ2VTdHJpbmdSZXNwb25zZShyZXMsIFwiXCIsIHRoaXMubGMubG9jKFwiRXJyb3JpIG5lbGxhIG1vZGlmaWNhIGRlbCBUcmFjaW5nIGRlbCBQcm9jZXNzb1wiKSwgKCkgPT4gdGhpcy5zZW5kU2VhcmNoKCkpO1xyXG4gICAgfVxyXG5cclxuICAgIGtpbGxQcm9jZXNzKHByb2Nlc3M6IGFueSkge1xyXG4gICAgICAgIHRoaXMubXNnRXh0cy5zaW1wbGVXYXJuaW5nV2l0aENob2ljZShcclxuICAgICAgICAgICAgdGhpcy5sYy5sb2MoXCJDb25mZXJtYSBUZXJtaW5hemlvbmUgZGVsIFByb2Nlc3NvXCIpLFxyXG4gICAgICAgICAgICB0aGlzLmxjLmxvYyhcIlNlaSBzaWN1cm8gZGkgdm9sZXIgVGVybWluYXJlIGlsIHByb2Nlc3NvIHNlbGV6aW9uYXRvPyBMJ3V0ZW50ZSByZWxhdGl2byBzYXJhJyBkaXNjb25uZXNzb1wiKSxcclxuICAgICAgICAgICAgYXN5bmMgKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgbGV0IHJlcyA9IGF3YWl0IHRoaXMuYWRtcy5kb0tpbGxQcm9jZXNzKHByb2Nlc3MucHJvcGVydGllc1tcImluc3RfaWRcIl0gfHwgcHJvY2Vzcy5wcm9wZXJ0aWVzW1wiSU5TVF9JRFwiXSwgcHJvY2Vzcy5wcm9wZXJ0aWVzW1wic2lkXCJdIHx8IHByb2Nlc3MucHJvcGVydGllc1tcIlNJRFwiXSwgcHJvY2Vzcy5wcm9wZXJ0aWVzW1wic2VyaWFsXCJdIHx8IHByb2Nlc3MucHJvcGVydGllc1tcIlNFUklBTFwiXSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm1zZ0V4dHMubWFuYWdlU3RyaW5nUmVzcG9uc2UocmVzLCB0aGlzLmxjLmxvYyhcIlByb2Nlc3NvIHVjY2lzbyBjb24gc3VjY2Vzc29cIiksIHRoaXMubGMubG9jKFwiRXJyb3JpIGR1cmFudGUgbGEgS2lsbCBkZWwgUHJvY2Vzc29cIiksICgpID0+IHRoaXMuc2VuZFNlYXJjaCgpKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIEdlc3Rpb25lIG1vZGlmaWNhIENvbnN1bWVyIEdyb3VwICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cclxuICAgIG5ld0NnOiBzdHJpbmcgPSBcIlwiO1xyXG4gICAgQ0dzOiBLZXlWYWx1ZVtdID0gW107XHJcbiAgICBDZ0RpY3Rpb25hcmllc0xvYWRlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgUHJvY2Vzc09uRWRpdDogYW55O1xyXG5cclxuICAgIEBWaWV3Q2hpbGQoXCJjZ0Zyb21cIikgY2dGcm9tOiBOZ0Zvcm07XHJcbiAgICBAVmlld0NoaWxkKFwiZGxnQ2hhbmdlQ2dcIikgZGxnQ2hhbmdlQ2c6IE1vZGFsRGlyZWN0aXZlO1xyXG5cclxuICAgIGNoYW5nZVByb2Nlc3NDZyhwcm9jZXNzOiBhbnkpIHtcclxuICAgICAgICB0aGlzLlByb2Nlc3NPbkVkaXQgPSBwcm9jZXNzO1xyXG4gICAgICAgIGlmICghdGhpcy5DZ0RpY3Rpb25hcmllc0xvYWRlZCkge1xyXG4gICAgICAgICAgICB0aGlzLmxvYWRDZ0RpY3Rpb25hcmllcygpO1xyXG4gICAgICAgICAgICB0aGlzLkNnRGljdGlvbmFyaWVzTG9hZGVkID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5zZXR1cENoYW5nZUNnKCk7XHJcbiAgICAgICAgdGhpcy5kbGdDaGFuZ2VDZy5zaG93KCk7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgbG9hZENnRGljdGlvbmFyaWVzKCkge1xyXG4gICAgICAgIHRoaXMuQ0dzID0gYXdhaXQgdGhpcy5hZG1zLmdldENvbnN1bWVyR3JvdXBzKCk7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0dXBDaGFuZ2VDZygpIHtcclxuICAgICAgICB0aGlzLnV0aUV4dHMuY2xlYW5Gb3JtKHRoaXMuY2dGcm9tKVxyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4geyB0aGlzLm5ld0NnID0gXCJcIiB9KTtcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBkb0NoYW5nZUNnKCkge1xyXG4gICAgICAgIGxldCByZXMgPSBhd2FpdCB0aGlzLmFkbXMuZG9DaGFuZ2VQcm9jZXNzQ29uc3VtZXJHcm91cCh0aGlzLlByb2Nlc3NPbkVkaXQucHJvcGVydGllc1tcImluc3RfaWRcIl0gfHwgdGhpcy5Qcm9jZXNzT25FZGl0LnByb3BlcnRpZXNbXCJJTlNUX0lEXCJdLCB0aGlzLlByb2Nlc3NPbkVkaXQucHJvcGVydGllc1tcInNpZFwiXSB8fCB0aGlzLlByb2Nlc3NPbkVkaXQucHJvcGVydGllc1tcIlNJRFwiXSwgdGhpcy5Qcm9jZXNzT25FZGl0LnByb3BlcnRpZXNbXCJzZXJpYWxcIl0gfHwgdGhpcy5Qcm9jZXNzT25FZGl0LnByb3BlcnRpZXNbXCJTRVJJQUxcIl0sIHRoaXMubmV3Q2cpO1xyXG4gICAgICAgIHRoaXMubXNnRXh0cy5tYW5hZ2VTdHJpbmdSZXNwb25zZShyZXMsIHRoaXMubGMubG9jKFwiR3J1cHBvIGRpIENvbnN1bW8gbW9kaWZpY2F0byBjb24gc3VjY2Vzc29cIiksIHRoaXMubGMubG9jKFwiRXJyb3JpIG5lbGxhIG1vZGlmaWNhIGRlbCBHcnVwcG8gZGkgQ29uc3Vtb1wiKSwgKCkgPT4gdGhpcy5zZW5kU2VhcmNoKCkpO1xyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG59IiwiPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgPGRpdiBjbGFzcz1cImNvbC0xMlwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkIGFwcC1vdmVyZmxvdy12aXNpYmxlXCIgd2lkZ2V0PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1oZWFkZXJcIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC11cHBlcmNhc2VcIj57eydSaWNlcmNhIFByb2Nlc3NpIEFwcGxpY2F0aXZpJyB8IGxvY2FsaXplOiBsY319PC9zcGFuPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keSB3aWRnZXQtYm9keVwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxmb3JtIHJvbGU9XCJmb3JtXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgYXBwLWZpcnN0LWZpbHRlci1saW5lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXhsLTIgY29sLWxnLTIgY29sLW1kLTEyIGFwcC1maWx0ZXItd3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmb3JtLXNlbGVjdCBbRm9ybUxheW91dF09XCJmYWxzZVwiIFtWYWxpZGF0aW9uXT1cImZhbHNlXCIgWyhuZ01vZGVsKV09XCJzZWFyY2hWaWV3LmZpbHRlcnR5cGVcIiBuYW1lPVwiZmlsdGVydHlwZVwiIFtTZWxlY3RMYWJlbF09XCInVGlwbycgfCBsb2NhbGl6ZTogbGNcIiBbU291cmNlXT1cIlR5cGVzXCI+PC9mb3JtLXNlbGVjdD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC14bC0xIGNvbC1sZy0xIGNvbC1tZC0xMiBhcHAtZmlsdGVyLXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Zm9ybS1pbnB1dCBbRm9ybUxheW91dF09XCJmYWxzZVwiIFtWYWxpZGF0aW9uXT1cImZhbHNlXCIgWyhuZ01vZGVsKV09XCJzZWFyY2hWaWV3LmZpbHRlcnRlbmFudFwiIG5hbWU9XCJmaWx0ZXJUZW5hbnRcIiBbUGxhY2Vob2xkZXJdPVwiJ09wZXJhdG9yZScgfCBsb2NhbGl6ZTogbGNcIj48L2Zvcm0taW5wdXQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wteGwtMSBjb2wtbGctMSBjb2wtbWQtMTIgYXBwLWZpbHRlci13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZvcm0taW5wdXQgW0Zvcm1MYXlvdXRdPVwiZmFsc2VcIiBbVmFsaWRhdGlvbl09XCJmYWxzZVwiIFsobmdNb2RlbCldPVwic2VhcmNoVmlldy5maWx0ZXJ1c2VyXCIgbmFtZT1cImZpbHRlclVzZXJcIiBbUGxhY2Vob2xkZXJdPVwiJ1V0ZW50ZScgfCBsb2NhbGl6ZTogbGNcIj48L2Zvcm0taW5wdXQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wteGwtMSBjb2wtbGctMSBjb2wtbWQtMTIgYXBwLWZpbHRlci13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZvcm0tc2VsZWN0IFtGb3JtTGF5b3V0XT1cImZhbHNlXCIgW1ZhbGlkYXRpb25dPVwiZmFsc2VcIiBbKG5nTW9kZWwpXT1cInNlYXJjaFZpZXcuZmlsdGVyc3RhdGVcIiBuYW1lPVwiZmlsdGVyU3RhdGVcIiBbU2VsZWN0TGFiZWxdPVwiJ1N0YXRvJyB8IGxvY2FsaXplOiBsY1wiIFtTb3VyY2VdPVwiU3RhdGVzXCI+PC9mb3JtLXNlbGVjdD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC14bC0yIGNvbC1sZy0yIGNvbC1tZC0xMiBhcHAtZmlsdGVyLXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Zm9ybS1zZWxlY3QgW0Zvcm1MYXlvdXRdPVwiZmFsc2VcIiBbVmFsaWRhdGlvbl09XCJmYWxzZVwiIFsobmdNb2RlbCldPVwic2VhcmNoVmlldy5maWx0ZXJ0aHJlYWR0eXBlXCIgbmFtZT1cImZpbHRlcnRocmVhZHR5cGVcIiBbU2VsZWN0TGFiZWxdPVwiJ1RpcG8gVGhyZWFkJyB8IGxvY2FsaXplOiBsY1wiIFtTb3VyY2VdPVwiVGhyZWFkVHlwZXNcIj48L2Zvcm0tc2VsZWN0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXhsLTEgY29sLWxnLTEgY29sLW1kLTEyIGFwcC1maWx0ZXItd3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmb3JtLXNlbGVjdCBbRm9ybUxheW91dF09XCJmYWxzZVwiIFtWYWxpZGF0aW9uXT1cImZhbHNlXCIgWyhuZ01vZGVsKV09XCJzZWFyY2hWaWV3LmZpbHRlcnRocmVhZHN0YXR1c1wiIG5hbWU9XCJmaWx0ZXJ0aHJlYWRzdGF0dXNcIiBbU2VsZWN0TGFiZWxdPVwiJ1N0YXRvIFRocmVhZCcgfCBsb2NhbGl6ZTogbGNcIiBbU291cmNlXT1cIlRocmVhZFN0YXR1c2VzXCI+PC9mb3JtLXNlbGVjdD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC14bC0xIGNvbC1sZy0xIGNvbC1tZC0xMiBhcHAtZmlsdGVyLXdyYXBwZXJcIiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7IGhlaWdodDogMzhweDtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Zm9ybS1jaGVja2JveCBbRm9ybUxheW91dF09XCJmYWxzZVwiIFtTbGlkZXJNb2RlXT1cInRydWVcIiBbVmFsaWRhdGlvbl09XCJmYWxzZVwiIFsobmdNb2RlbCldPVwic2VhcmNoVmlldy5maWx0ZXJnbG9iYWxcIiBuYW1lPVwiZmlsdGVyZ2xvYmFsXCI+PC9mb3JtLWNoZWNrYm94PiZuYnNwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYXBwLXBvaW50ZXIgYXBwLXBhZGRpbmctdG9wLTUgYXBwLXBhZGRpbmctbGVmdC01XCIgKGNsaWNrKT1cInNlYXJjaFZpZXcuZmlsdGVyZ2xvYmFsID0gIXNlYXJjaFZpZXcuZmlsdGVyZ2xvYmFsXCI+e3snR2xvYmFsZScgfCBsb2NhbGl6ZTogbGN9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC14bC0xIGNvbC1sZy0xIGNvbC1tZC0xMiBhcHAtZmlsdGVyLXdyYXBwZXJcIiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7IGhlaWdodDogMzhweDtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Zm9ybS1jaGVja2JveCBbRm9ybUxheW91dF09XCJmYWxzZVwiIFtTbGlkZXJNb2RlXT1cInRydWVcIiBbVmFsaWRhdGlvbl09XCJmYWxzZVwiIFsobmdNb2RlbCldPVwic2VhcmNoVmlldy5maWx0ZXJpbndhaXRcIiBuYW1lPVwiZmlsdGVyaW53YWl0XCI+PC9mb3JtLWNoZWNrYm94PiZuYnNwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYXBwLXBvaW50ZXIgYXBwLXBhZGRpbmctdG9wLTUgYXBwLXBhZGRpbmctbGVmdC01XCIgKGNsaWNrKT1cInNlYXJjaFZpZXcuZmlsdGVyaW53YWl0ID0gIXNlYXJjaFZpZXcuZmlsdGVyaW53YWl0XCI+e3snSW4gQXR0ZXNhJyB8IGxvY2FsaXplOiBsY319PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIFtkaXNhYmxlZF09XCJzZWFyY2hWaWV3LnNlYXJjaGlucHJvZ3Jlc3NcIiBjbGFzcz1cImlucHV0LWdyb3VwLWFkZG9uIGJ0biBhcHAtYnRuLXNlYXJjaCBhcHAtbWFyZ2luLXRvcC0yMFwiIChjbGljayk9XCJzZW5kU2VhcmNoKClcIiB0eXBlPVwic3VibWl0XCI+PGkgY2xhc3M9XCJmYSBmYS1zZWFyY2hcIj48L2k+PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZm9ybT5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHAgKm5nSWY9XCIhc2VhcmNoVmlld1wiPjxlbT57eydDYXJpY28gaSBQcm9jZXNzaSBBcHBsaWNhdGl2aScgfCBsb2NhbGl6ZTogbGN9fS4uLjwvZW0+PC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwic2VhcmNoVmlld1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGVzLXRhYmxlIFsobmdNb2RlbCldPVwic2VhcmNoVmlld1wiIFtEeW5hbWljT3BlcmF0aW9uc109XCJEeW5hbWljT3BzXCIgW0F1dG9VcGRhdGVdPVwidHJ1ZVwiIFtPcmRlckJ5Q29sdW1uXT1cInRydWVcIiAob25TZWFyY2hSZXF1ZXN0KT1cInNlbmRTZWFyY2goJGV2ZW50KTtcIiAob25EeW5hbWljT3BlcmF0aW9uKT1cIm9uT3BlcmF0aW9uKCRldmVudClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImFwcC1ub3dyYXBcIiAqdGQ9XCInZnVsbF93YWl0X3N0YWNrJzsgbGV0IHZhbHVlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZmEgZmEtbGlzdCBhcHAtcG9pbnRlclwiIChjbGljayk9XCJ2YWx1ZVRvU2hvdyA9IHZhbHVlOyBkbGdWYWx1ZS5zaG93KCk7XCI+PC9zcGFuPiZuYnNwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e3ZhbHVlLmxlbmd0aCA+IDcwID8gdmFsdWUuc3Vic3RyKDAsIDY3KSArICcuLi4nIDogdmFsdWV9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZXMtdGFibGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXBwLW1hcmdpbi10b3AtMTVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1zZWNvbmRhcnkgcHVsbC1sZWZ0XCIgdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJiYWNrKClcIj57eydJbmRpZXRybycgfCBsb2NhbGl6ZTogbGN9fTwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjbGVhcmZpeFwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuPGRpdiBic01vZGFsICNkbGdDaGFuZ2VDZz1cImJzLW1vZGFsXCIgY2xhc3M9XCJtb2RhbCBmYWRlXCIgcm9sZT1cImRpYWxvZ1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPlxyXG4gICAgPGRpdiBjbGFzcz1cIm1vZGFsLWRpYWxvZyBtb2RhbC1sZ1wiIGVtYURyYWdnYWJsZT5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibW9kYWwtY29udGVudFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibW9kYWwtaGVhZGVyXCI+XHJcbiAgICAgICAgICAgICAgICA8aDQgY2xhc3M9XCJtb2RhbC10aXRsZSBwdWxsLWxlZnRcIj57eydNb2RpZmljYSBHcnVwcG8gZGkgQ29uc3VtbycgfCBsb2NhbGl6ZTogbGN9fTwvaDQ+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImNsb3NlIHB1bGwtcmlnaHRcIiAoY2xpY2spPVwiZGxnQ2hhbmdlQ2cuaGlkZSgpXCIgYXJpYS1sYWJlbD1cIkNsb3NlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gYXJpYS1oaWRkZW49XCJ0cnVlXCI+JnRpbWVzOzwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGZvcm0gbm92YWxpZGF0ZSAjY2dGcm9tPVwibmdGb3JtXCIgKG5nU3VibWl0KT1cImNnRnJvbS52YWxpZCAmJiBkb0NoYW5nZUNnKCkgJiYgZGxnQ2hhbmdlQ2cuaGlkZSgpXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibW9kYWwtYm9keVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxmb3JtLXNlbGVjdCBbTGFiZWxdPVwiJ051b3ZvIEdydXBwbyBkaSBDb25zdW1vJyB8IGxvY2FsaXplOiBsY1wiIFsobmdNb2RlbCldPVwibmV3Q2dcIiBuYW1lPVwibmV3Q2dcIiBbU291cmNlXT1cIkNHc1wiIHJlcXVpcmVkIFtMYXN0XT1cInRydWVcIj48L2Zvcm0tc2VsZWN0PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibW9kYWwtZm9vdGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLXNlY29uZGFyeSBhcHAtbWFyZ2luLXJpZ2h0LTVcIiAoY2xpY2spPVwiZGxnQ2hhbmdlQ2cuaGlkZSgpXCI+e3snQ2hpdWRpJyB8IGxvY2FsaXplOiBsY319PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwic3VibWl0XCIgY2xhc3M9XCJidG4gYnRuLXByaW1hcnlcIj57eydDb25mZXJtYScgfCBsb2NhbGl6ZTogbGN9fTwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZm9ybT5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj5cclxuXHJcblxyXG48ZGl2IGJzTW9kYWwgI2RsZ1ZhbHVlPVwiYnMtbW9kYWxcIiBjbGFzcz1cIm1vZGFsIGZhZGVcIiByb2xlPVwiZGlhbG9nXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwibW9kYWwtZGlhbG9nIG1vZGFsLXhsXCIgYXBwLWRyYWdnYWJsZT1cIi5tb2RhbC1oZWFkZXJcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibW9kYWwtY29udGVudFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibW9kYWwtaGVhZGVyXCI+XHJcbiAgICAgICAgICAgICAgICA8aDUgY2xhc3M9XCJtb2RhbC10aXRsZSBwdWxsLWxlZnRcIj5cclxuICAgICAgICAgICAgICAgICAgICBGdWxsIFdhaXQgU3RhY2tcclxuICAgICAgICAgICAgICAgIDwvaDU+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImNsb3NlIHB1bGwtcmlnaHRcIiAoY2xpY2spPVwiZGxnVmFsdWUuaGlkZSgpXCIgYXJpYS1sYWJlbD1cIkNsb3NlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gYXJpYS1oaWRkZW49XCJ0cnVlXCI+JnRpbWVzOzwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsLWJvZHkgYXBwLXBhZGlkbmctYm90dG9tLTIwIGFwcC1wYWRkaW5nLXRvcC0yMFwiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJhcHAtd3JhcFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIHt7dmFsdWVUb1Nob3d9fVxyXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsLWZvb3RlclwiPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLXByaW1hcnlcIiAoY2xpY2spPVwiZGxnVmFsdWUuaGlkZSgpXCI+Q2hpdWRpPC9idXR0b24+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PiJdfQ==