@smarterplan/ngx-smarterplan-locations 0.1.11 → 0.2.1

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.
@@ -232,4 +232,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImpor
232
232
  type: ViewChild,
233
233
  args: ["content", { static: false }]
234
234
  }] } });
235
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlzaXRzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zbWFydGVycGxhbi1sb2NhdGlvbnMvc3JjL2xpYi9jb21wb25lbnRzL3Zpc2l0cy92aXNpdHMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNtYXJ0ZXJwbGFuLWxvY2F0aW9ucy9zcmMvbGliL2NvbXBvbmVudHMvdmlzaXRzL3Zpc2l0cy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLEVBQTBCLFVBQVUsRUFBbUIsTUFBTSxnQkFBZ0IsQ0FBQztBQUVyRixPQUFPLEVBQVksbUJBQW1CLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMzRSxPQUFPLEVBQTJHLGFBQWEsRUFBVyxNQUFNLG1DQUFtQyxDQUFDOzs7Ozs7Ozs7O0FBT3BMLE1BQU0sT0FBTyxlQUFlO0lBK0J4QixZQUNZLEVBQWUsRUFDZix1QkFBZ0QsRUFDaEQsY0FBOEIsRUFDOUIsV0FBd0IsRUFDeEIsWUFBMEIsRUFDMUIsS0FBcUIsRUFDckIsWUFBc0IsRUFDdEIsWUFBMEI7UUFQMUIsT0FBRSxHQUFGLEVBQUUsQ0FBYTtRQUNmLDRCQUF1QixHQUF2Qix1QkFBdUIsQ0FBeUI7UUFDaEQsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLFVBQUssR0FBTCxLQUFLLENBQWdCO1FBQ3JCLGlCQUFZLEdBQVosWUFBWSxDQUFVO1FBQ3RCLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBcEN0QyxzQkFBaUIsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUl2QixjQUFTLEdBQVksS0FBSyxDQUFDO1FBRTNCLG1C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Q0FBQyxDQUFDO0lBQ2hFLENBQUM7OzRHQWpSUSxlQUFlO2dHQUFmLGVBQWUsc0pDWDVCLHlyUEEySE07MkZEaEhPLGVBQWU7a0JBTDNCLFNBQVM7K0JBQ0ksWUFBWTt5U0F1QjJCLE9BQU87c0JBQXZELFNBQVM7dUJBQUMsU0FBUyxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Hcm91cCwgRm9ybUJ1aWxkZXIsIFZhbGlkYXRvcnMsIEFic3RyYWN0Q29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IE5nYk1vZGFsLCBNb2RhbERpc21pc3NSZWFzb25zIH0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xuaW1wb3J0IHsgTm9kZSwgVmlzaXQsIE1lbnVJdGVtLCBNYXR0ZXJwb3J0SW1wb3J0U2VydmljZSwgQ2FwdHVyZVNlcnZpY2UsIE5vZGVTZXJ2aWNlLCBTcGFjZVNlcnZpY2UsIFZpc2l0U2VydmljZSwgQ2FwdHVyZVZpZXdlciwgQ2FwdHVyZSB9IGZyb20gJ0BzbWFydGVycGxhbi9uZ3gtc21hcnRlcnBsYW4tY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbGliLXZpc2l0cycsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3Zpc2l0cy5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vdmlzaXRzLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgVmlzaXRzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBzcGFjZUlkOiBzdHJpbmc7XG5cbiAgICB2aXNpdEluZGV4RGV0YWlscyA9IC0xO1xuXG4gICAgdmlzaXRGb3JtOiBGb3JtR3JvdXA7XG5cbiAgICBpc0VkaXRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIHZpc2l0U3VibWl0dGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBjYXB0dXJlRGF0ZTogbnVtYmVyO1xuXG4gICAgY3VycmVudFNwYWNlID0geyB6b25lczogW10gfSBhcyBhbnk7XG5cbiAgICB2aXNpdHM6IFZpc2l0W10gPSBbXTtcblxuICAgIGNsb3NlUmVzdWx0OiBzdHJpbmc7XG5cbiAgICBAVmlld0NoaWxkKFwiY29udGVudFwiLCB7IHN0YXRpYzogZmFsc2UgfSkgcHJpdmF0ZSBjb250ZW50O1xuXG4gICAgbW9kYWxSZWZlcmVuY2U6IGFueTtcblxuICAgIGNhbkNhbmNlbEltcG9ydCA9IGZhbHNlO1xuXG4gICAgaW1hZ2VzUHJvY2Vzc2VkOiBudW1iZXIgPSAwO1xuXG4gICAgdG90YWxJbWFnZXM6IG51bWJlciA9IDA7XG5cbiAgICBtZW51SXRlbXM6IE1lbnVJdGVtW10gPSBbXTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGZiOiBGb3JtQnVpbGRlcixcbiAgICAgICAgcHJpdmF0ZSBtYXR0ZXJwb3J0SW1wb3J0U2VydmljZTogTWF0dGVycG9ydEltcG9ydFNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgY2FwdHVyZVNlcnZpY2U6IENhcHR1cmVTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIG5vZGVTZXJ2aWNlOiBOb2RlU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBzcGFjZVNlcnZpY2U6IFNwYWNlU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgICAgIHByaXZhdGUgbW9kYWxTZXJ2aWNlOiBOZ2JNb2RhbCxcbiAgICAgICAgcHJpdmF0ZSB2aXNpdFNlcnZpY2U6IFZpc2l0U2VydmljZSxcbiAgICApIHtcbiAgICAgICAgdGhpcy5tYXR0ZXJwb3J0SW1wb3J0U2VydmljZS5pbXBvcnRpbmdJbWFnZXMuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuY2FuQ2FuY2VsSW1wb3J0ID0gdHJ1ZTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMubWF0dGVycG9ydEltcG9ydFNlcnZpY2Uuc3dlZXBQcm9jZXNzZWRDb3VudC5zdWJzY3JpYmUoKGNvdW50KSA9PiB7XG4gICAgICAgICAgICB0aGlzLmltYWdlc1Byb2Nlc3NlZCA9IGNvdW50ICsgMTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMubWF0dGVycG9ydEltcG9ydFNlcnZpY2UudG90YWxTd2VlcHNDb3VudC5zdWJzY3JpYmUoKGNvdW50KSA9PiB7XG4gICAgICAgICAgICB0aGlzLnRvdGFsSW1hZ2VzID0gY291bnQ7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNwYWNlSWQgPSB0aGlzLnJvdXRlLnNuYXBzaG90LnBhcmFtTWFwLmdldChcImlkXCIpO1xuICAgICAgICB0aGlzLnJlc2V0VmlzaXRzKCk7XG4gICAgfVxuXG4gICAgLypcbiAgVmlzaXQgPSB7XG4gICAgY2FwdHVyZUlEOiBzdHJpbmcsXG4gICAgbW9kZWwzZDogc3RyaW5nLFxuICAgIHRha2VuQXQ6IG51bWJlcixcbiAgICBzcGFjZUlEOiBzdHJpbmcsXG4gICAgdmlld2VyOiBDYXB0dXJlVmlld2VyLFxuICAgIHN1cmZhY2U6IG51bWJlcixcbiAgICBub2RlOiBOb2RlLFxuICAgIG5hbWU/OiBzdHJpbmcgfCBudWxsXG4gIH1cbiAgKi9cbiAgICBzZXR1cE1lbnVJdGVtcygpIHtcbiAgICAgICAgdGhpcy5tZW51SXRlbXMgPSBbXG4gICAgICAgICAgICB7IGxhYmVsOiBcIkxvY2F0aW9uc1wiLCB1cmw6IFwiL2xvY2FsaXNhdGlvblwiIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbGFiZWw6IHRoaXMuY3VycmVudFNwYWNlLm5hbWUsXG4gICAgICAgICAgICAgICAgdXJsOiBgL2xvY2FsaXNhdGlvbi8ke3RoaXMuY3VycmVudFNwYWNlLmlkfWAsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGxhYmVsOiBcIlZpcnR1YWwgdmlzaXRzXCIsXG4gICAgICAgICAgICAgICAgdXJsOiBgL2xvY2FsaXNhdGlvbi8ke3RoaXMuY3VycmVudFNwYWNlLmlkfS92aXNpdHNgLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgXTtcbiAgICB9XG5cbiAgICBvbkdvQmFjaygpIHtcbiAgICAgICAgdGhpcy5vbkNhbmNlbCgpO1xuICAgIH1cblxuICAgIGFzeW5jIHJlc2V0VmlzaXRzKCkge1xuICAgICAgICB0aGlzLnZpc2l0cyA9IFtdO1xuICAgICAgICB0aGlzLmN1cnJlbnRTcGFjZSA9IGF3YWl0IHRoaXMuc3BhY2VTZXJ2aWNlLmdldFNwYWNlKHRoaXMuc3BhY2VJZCk7XG4gICAgICAgIHRoaXMuc2V0dXBNZW51SXRlbXMoKTtcbiAgICAgICAgYXdhaXQgdGhpcy52aXNpdFNlcnZpY2VcbiAgICAgICAgICAgIC5nZXRWaXNpdHNGb3JTcGFjZUZvclVzZXIodGhpcy5zcGFjZUlkKVxuICAgICAgICAgICAgLnRoZW4oKHZpc2l0cykgPT4ge1xuICAgICAgICAgICAgICAgIGlmICh2aXNpdHMpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy52aXNpdHMgPSB2aXNpdHM7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgaW5pdFZpc2l0Rm9ybShpbnB1dDogVmlzaXQgPSBudWxsKSB7XG4gICAgICAgIGlmIChpbnB1dCkge1xuICAgICAgICAgICAgdGhpcy52aXNpdEZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcbiAgICAgICAgICAgICAgICBjYXB0dXJlSUQ6IGlucHV0LmNhcHR1cmVJRCxcbiAgICAgICAgICAgICAgICBub2RlSUQ6IGlucHV0Lm5vZGUuaWQsXG4gICAgICAgICAgICAgICAgbmFtZTogW2lucHV0Lm5hbWUsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXG4gICAgICAgICAgICAgICAgbW9kZWwzRDogW2lucHV0Lm1vZGVsM2QsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXG4gICAgICAgICAgICAgICAgdmlld2VyOiBpbnB1dC52aWV3ZXIgPyBpbnB1dC52aWV3ZXIgOiBDYXB0dXJlVmlld2VyLk1BVFRFUlBPUlQsXG4gICAgICAgICAgICAgICAgc3VyZmFjZTogaW5wdXQuc3VyZmFjZSA/IGlucHV0LnN1cmZhY2UgOiBudWxsLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB0aGlzLmNhcHR1cmVEYXRlID0gaW5wdXQudGFrZW5BdDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMudmlzaXRGb3JtID0gdGhpcy5mYi5ncm91cCh7XG4gICAgICAgICAgICAgICAgbW9kZWwzRDogW251bGwsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXG4gICAgICAgICAgICAgICAgdmlld2VyOiBDYXB0dXJlVmlld2VyLk1BVFRFUlBPUlQsXG4gICAgICAgICAgICAgICAgc3VyZmFjZTogbnVsbCxcbiAgICAgICAgICAgICAgICBuYW1lOiBbbnVsbCwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25Ub2dnbGVEZXRhaWwoaW5kZXgpIHtcbiAgICAgICAgdGhpcy52aXNpdEluZGV4RGV0YWlscyA9IGluZGV4ID09PSB0aGlzLnZpc2l0SW5kZXhEZXRhaWxzID8gLTEgOiBpbmRleDtcbiAgICB9XG5cbiAgICBvbkFkZFZpc2l0KCkge1xuICAgICAgICB0aGlzLmluaXRWaXNpdEZvcm0oKTtcbiAgICAgICAgdGhpcy5tZW51SXRlbXMucHVzaCh7IGxhYmVsOiBcIk5ld1wiIH0pO1xuICAgIH1cblxuICAgIG9uRWRpdCh2aXNpdCkge1xuICAgICAgICB0aGlzLmluaXRWaXNpdEZvcm0odmlzaXQpO1xuICAgICAgICB0aGlzLmlzRWRpdGluZyA9IHRydWU7XG4gICAgICAgIHRoaXMubWVudUl0ZW1zLnB1c2goeyBsYWJlbDogdmlzaXQubmFtZSB9KTtcbiAgICB9XG5cbiAgICBhc3luYyBvblN1Ym1pdFZpc2l0KCkge1xuICAgICAgICB0aGlzLnZpc2l0U3VibWl0dGVkID0gdHJ1ZTtcbiAgICAgICAgaWYgKCF0aGlzLnZpc2l0Rm9ybS52YWxpZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGZvcm1WYWx1ZSA9IHRoaXMudmlzaXRGb3JtLnZhbHVlO1xuICAgICAgICBjb25zdCBjYXB0dXJlID0ge1xuICAgICAgICAgICAgdmlld2VyOiBmb3JtVmFsdWUudmlld2VyLFxuICAgICAgICAgICAgdGFrZW5BdDogdGhpcy5jYXB0dXJlRGF0ZSxcbiAgICAgICAgICAgIHN1cmZhY2U6IGZvcm1WYWx1ZS5zdXJmYWNlLFxuICAgICAgICAgICAgc3BhY2VJRDogdGhpcy5jdXJyZW50U3BhY2UuaWQsXG4gICAgICAgIH0gYXMgQ2FwdHVyZTtcblxuICAgICAgICBpZiAodGhpcy5pc0VkaXRpbmcpIHtcbiAgICAgICAgICAgIGNhcHR1cmUuaWQgPSBmb3JtVmFsdWUuY2FwdHVyZUlEO1xuICAgICAgICAgICAgYXdhaXQgdGhpcy5jYXB0dXJlU2VydmljZS51cGRhdGVDYXB0dXJlKGNhcHR1cmUpO1xuICAgICAgICAgICAgY29uc3Qgbm9kZSA9IHtcbiAgICAgICAgICAgICAgICBpZDogZm9ybVZhbHVlLm5vZGVJRCxcbiAgICAgICAgICAgICAgICBtb2RlbDNEOiBmb3JtVmFsdWUubW9kZWwzRCxcbiAgICAgICAgICAgICAgICBtZXRhZGF0YTogZm9ybVZhbHVlLm5hbWUsXG4gICAgICAgICAgICB9IGFzIE5vZGU7XG4gICAgICAgICAgICBhd2FpdCB0aGlzLm5vZGVTZXJ2aWNlLnVwZGF0ZU5vZGUobm9kZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBsZXQgY3JlYXRlZE5vZGU7XG4gICAgICAgICAgICBhd2FpdCB0aGlzLmNhcHR1cmVTZXJ2aWNlLmNyZWF0ZUNhcHR1cmUoY2FwdHVyZSkudGhlbihhc3luYyAocmVzKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHJlcykge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBub2RlID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgbW9kZWwzRDogZm9ybVZhbHVlLm1vZGVsM0QsXG4gICAgICAgICAgICAgICAgICAgICAgICBjYXB0dXJlSUQ6IHJlcy5pZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1ldGFkYXRhOiBmb3JtVmFsdWUubmFtZSxcbiAgICAgICAgICAgICAgICAgICAgfSBhcyBOb2RlO1xuICAgICAgICAgICAgICAgICAgICBjcmVhdGVkTm9kZSA9IGF3YWl0IHRoaXMubm9kZVNlcnZpY2UuY3JlYXRlTm9kZShub2RlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHRoaXMubGF1bmNoSW1wb3J0KFxuICAgICAgICAgICAgICAgIGZvcm1WYWx1ZS5tb2RlbDNELFxuICAgICAgICAgICAgICAgIGZvcm1WYWx1ZS5zdXJmYWNlLFxuICAgICAgICAgICAgICAgIGNyZWF0ZWROb2RlLFxuICAgICAgICAgICAgICAgIGZhbHNlLFxuICAgICAgICAgICAgKS50aGVuKChzdWNjZXNzKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5tb2RhbFJlZmVyZW5jZS5jbG9zZShcImltcG9ydCBlbmRlZCB3aXRoIHN1Y2Nlc3NcIik7XG4gICAgICAgICAgICB9KS5jYXRjaCgoZSkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMubW9kYWxSZWZlcmVuY2UuY2xvc2UoYEVycm9yIHdoaWxlIGltcG9ydDogJHtlfWApO1xuICAgICAgICAgICAgICAgIGFsZXJ0KGBFcnJvciB3aGlsZSBpbXBvcnQ6ICR7ZX1gKTtcbiAgICAgICAgICAgICAgICB0aGlzLm9uRGVsZXRlKHsgbm9kZTogY3JlYXRlZE5vZGUsIGNhcHR1cmVJRDogY3JlYXRlZE5vZGUuY2FwdHVyZUlEIH0gYXMgVmlzaXQpO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgfVxuICAgICAgICBhd2FpdCB0aGlzLnJlc2V0VmlzaXRzKCk7XG4gICAgICAgIHRoaXMub25DYW5jZWwoKTtcbiAgICB9XG5cbiAgICBnZXQgbW9kZWwzRCgpOiBBYnN0cmFjdENvbnRyb2wge1xuICAgICAgICByZXR1cm4gdGhpcy52aXNpdEZvcm0uZ2V0KFwibW9kZWwzRFwiKTtcbiAgICB9XG5cbiAgICBnZXQgbmFtZSgpOiBBYnN0cmFjdENvbnRyb2wge1xuICAgICAgICByZXR1cm4gdGhpcy52aXNpdEZvcm0uZ2V0KFwibmFtZVwiKTtcbiAgICB9XG5cbiAgICBvbkNhbmNlbCgpIHtcbiAgICAgICAgdGhpcy52aXNpdFN1Ym1pdHRlZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLnZpc2l0Rm9ybSA9IG51bGw7XG4gICAgICAgIHRoaXMuaXNFZGl0aW5nID0gZmFsc2U7XG4gICAgICAgIHRoaXMuY2FuQ2FuY2VsSW1wb3J0ID0gZmFsc2U7XG4gICAgICAgIHRoaXMudG90YWxJbWFnZXMgPSAwO1xuICAgICAgICB0aGlzLmltYWdlc1Byb2Nlc3NlZCA9IDA7XG4gICAgICAgIHRoaXMuc2V0dXBNZW51SXRlbXMoKTtcbiAgICB9XG5cbiAgICBhc3luYyBvbkRlbGV0ZSh2aXNpdDogVmlzaXQpIHtcbiAgICAgICAgYXdhaXQgdGhpcy52aXNpdFNlcnZpY2UuZGVsZXRlVmlzaXQodmlzaXQsIHRoaXMuc3BhY2VJZCk7XG4gICAgICAgIHRoaXMucmVzZXRWaXNpdHMoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldERpc21pc3NSZWFzb24ocmVhc29uOiBhbnkpOiBzdHJpbmcge1xuICAgICAgICBpZiAocmVhc29uID09PSBNb2RhbERpc21pc3NSZWFzb25zLkVTQykge1xuICAgICAgICAgICAgcmV0dXJuIFwiYnkgcHJlc3NpbmcgRVNDXCI7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHJlYXNvbiA9PT0gTW9kYWxEaXNtaXNzUmVhc29ucy5CQUNLRFJPUF9DTElDSykge1xuICAgICAgICAgICAgcmV0dXJuIFwiYnkgY2xpY2tpbmcgb24gYSBiYWNrZHJvcFwiO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBgd2l0aDogJHtyZWFzb259YDtcbiAgICB9XG5cbiAgICBhc3luYyBsYXVuY2hJbXBvcnQoXG4gICAgICAgIG1vZGVsM0QsXG4gICAgICAgIHN1cmZhY2UsXG4gICAgICAgIG5vZGUsXG4gICAgICAgIGltYWdlc09ubHkgPSBmYWxzZSxcbiAgICApOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICAgICAgdGhpcy5tb2RhbFJlZmVyZW5jZSA9IHRoaXMubW9kYWxTZXJ2aWNlLm9wZW4odGhpcy5jb250ZW50LCB7XG4gICAgICAgICAgICBhcmlhTGFiZWxsZWRCeTogXCJtb2RhbC1iYXNpYy10aXRsZVwiLFxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5tb2RhbFJlZmVyZW5jZS5yZXN1bHQudGhlbihcbiAgICAgICAgICAgIChyZXN1bHQpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmNsb3NlUmVzdWx0ID0gYENsb3NlZCB3aXRoOiAke3Jlc3VsdH1gO1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKHRoaXMuY2xvc2VSZXN1bHQpO1xuICAgICAgICAgICAgICAgIHRoaXMuY2FuY2VsSW1wb3J0KCk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgKGVycm9yKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5jbG9zZVJlc3VsdCA9IGBEaXNtaXNzZWQgJHt0aGlzLmdldERpc21pc3NSZWFzb24oZXJyb3IpfWA7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2codGhpcy5jbG9zZVJlc3VsdCk7XG4gICAgICAgICAgICAgICAgdGhpcy5jYW5jZWxJbXBvcnQoKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICk7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBhd2FpdCB0aGlzLm1hdHRlcnBvcnRJbXBvcnRTZXJ2aWNlLmluaXRTZGtGb3JNb2RlbChcbiAgICAgICAgICAgICAgICBtb2RlbDNELFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHJldHVybiBpbWFnZXNPbmx5XG4gICAgICAgICAgICAgICAgPyB0aGlzLm1hdHRlcnBvcnRJbXBvcnRTZXJ2aWNlLmltcG9ydERhdGEoXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3BhY2VJZCxcbiAgICAgICAgICAgICAgICAgICAgc3VyZmFjZSxcbiAgICAgICAgICAgICAgICAgICAgdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgbm9kZSxcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgOiB0aGlzLm1hdHRlcnBvcnRJbXBvcnRTZXJ2aWNlLmltcG9ydERhdGEoXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3BhY2VJZCxcbiAgICAgICAgICAgICAgICAgICAgc3VyZmFjZSxcbiAgICAgICAgICAgICAgICAgICAgZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIG5vZGUsXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGVycm9yKTtcbiAgICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdChlcnJvcik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGNhbmNlbEltcG9ydCgpIHtcbiAgICAgICAgdGhpcy5tYXR0ZXJwb3J0SW1wb3J0U2VydmljZS5hYmFuZG9uKCk7XG4gICAgICAgIHRoaXMub25DYW5jZWwoKTtcbiAgICAgICAgdGhpcy5yZXNldFZpc2l0cygpO1xuICAgIH1cblxuICAgIG9uSW1wb3J0KHZpc2l0OiBWaXNpdCkge1xuICAgICAgICB0aGlzLmxhdW5jaEltcG9ydCh2aXNpdC5tb2RlbDNkLCBudWxsLCB2aXNpdC5ub2RlLmlkLCB0cnVlKTtcbiAgICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiY29udGFpbmVyLWZsdWlkXCIgY2xhc3M9XCJkYXNoYm9hcmQtdGFiXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwibS0zXCI+XHJcbiAgICAgICAgPGxpYi10YWItbmF2aWdhdGlvbiBbbWVudUl0ZW1zXT0nbWVudUl0ZW1zJyAob25Hb0JhY2spPVwib25Hb0JhY2soKVwiPjwvbGliLXRhYi1uYXZpZ2F0aW9uPlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cInJvdyBtYWluLWZvcm0tY29udGFpbmVyXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02IGZvcm0tY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgIDx1bCBjbGFzcz1cImxpc3QtZ3JvdXAgbGlzdC1ncm91cC1mbHVzaFwiICpuZ0lmPVwiIXZpc2l0Rm9ybVwiPlxyXG4gICAgICAgICAgICAgICAgPGxpIGNsYXNzPVwibGlzdC1ncm91cC1pdGVtIGxpc3QtZ3JvdXAtaXRlbS1hY3Rpb25cIiAqbmdGb3I9XCJsZXQgdmlzaXQgb2YgdmlzaXRzOyBpbmRleCBhcyBpbmRleFwiXHJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uVG9nZ2xlRGV0YWlsKGluZGV4KVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7dmlzaXQubmFtZSA/IHZpc2l0Lm5hbWUgOiB2aXNpdC5tb2RlbDNkIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxsaWItY2hldnJvbiBbY29uZGl0aW9uU2hvd2luZ109XCJpbmRleD09dmlzaXRJbmRleERldGFpbHNcIj48L2xpYi1jaGV2cm9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJpbmRleD09dmlzaXRJbmRleERldGFpbHNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPVwibGlzdC1ncm91cCBsaXN0LWdyb3VwLWZsdXNoXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9XCJsaXN0LWdyb3VwLWl0ZW0gYmctdHJhbnNwYXJlbnRcIj57eydOYW1lJyB8IHRyYW5zbGF0ZX19IDoge3sgdmlzaXQubmFtZSA/XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlzaXQubmFtZSA6IFwiTm90IHByb3ZpZGVkXCIgfCB0cmFuc2xhdGV9fTwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9XCJsaXN0LWdyb3VwLWl0ZW0gYmctdHJhbnNwYXJlbnRcIj57eyczRCBNb2RlbCcgfCB0cmFuc2xhdGV9fSA6IHt7IHZpc2l0Lm1vZGVsM2QgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9XCJsaXN0LWdyb3VwLWl0ZW0gYmctdHJhbnNwYXJlbnRcIj57eydTdXJmYWNlJyB8IHRyYW5zbGF0ZX19LCBtPHN1cD4yPC9zdXA+OiB7e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpc2l0LnN1cmZhY2UgP1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpc2l0LnN1cmZhY2UgOiAnTm90IHByb3ZpZGVkJyB8IHRyYW5zbGF0ZX19PC9saT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz1cImxpc3QtZ3JvdXAtaXRlbSBiZy10cmFuc3BhcmVudFwiPnt7J1ZpZXdlcicgfCB0cmFuc2xhdGV9fSA6IHt7IHZpc2l0LnZpZXdlciB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz1cImxpc3QtZ3JvdXAtaXRlbSBiZy10cmFuc3BhcmVudFwiPnt7J0RhdGUgb2YgY2FwdHVyZScgfCB0cmFuc2xhdGV9fSA6IHt7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlzaXQudGFrZW5BdCB8IHRpbWVEYXRlU3RyaW5nIHwgYXN5bmN9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPVwibGlzdC1ncm91cC1pdGVtIGJnLXRyYW5zcGFyZW50XCI+e3snSW1hZ2VzIGFyZSBpbXBvcnRlZCcgfCB0cmFuc2xhdGV9fSA6IHt7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlzaXQuaW1hZ2VzSW1wb3J0ZWQgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lLXByaW1hcnkgcm91bmRlZC1waWxsIG1lLTJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCIhdmlzaXQuaW1hZ2VzSW1wb3J0ZWRcIiAoY2xpY2spPVwib25JbXBvcnQodmlzaXQpXCI+e3snSW1wb3J0IGltYWdlcycgfFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNsYXRlfX08L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLW91dGxpbmUtcHJpbWFyeSByb3VuZGVkLXBpbGwgbWUtMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25FZGl0KHZpc2l0KVwiPnt7J0VkaXQnIHwgdHJhbnNsYXRlfX08L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLW91dGxpbmUtcHJpbWFyeSByb3VuZGVkLXBpbGxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uRGVsZXRlKHZpc2l0KVwiPnt7J0RlbGV0ZScgfCB0cmFuc2xhdGV9fTwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgPC91bD5cclxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cInZpc2l0Rm9ybVwiPlxyXG4gICAgICAgICAgICAgICAgPGZvcm0gKG5nU3VibWl0KT1cIm9uU3VibWl0VmlzaXQoKVwiIFtmb3JtR3JvdXBdPVwidmlzaXRGb3JtXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTMgcm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImNvbC1zbS0yIGNvbC1mb3JtLWxhYmVsXCI+e3snTmFtZScgfCB0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtc20tMTBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgZm9ybUNvbnRyb2xOYW1lPVwibmFtZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItMyByb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiY29sLXNtLTIgY29sLWZvcm0tbGFiZWxcIj57eydSZWZlcmVuY2UgM0QgbW9kZWwnIHwgdHJhbnNsYXRlfX0gKjwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtc20tMTBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgW3JlYWRvbmx5XT1cImlzRWRpdGluZ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmlzLWludmFsaWRdPVwibW9kZWwzRC5pbnZhbGlkICYmIHZpc2l0U3VibWl0dGVkXCIgcmVxdWlyZWRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJtb2RlbDNEXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW52YWxpZC1mZWVkYmFja1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7J1BsZWFzZSBwcm92aWRlIHRoZSAzRCBtb2RlbCByZWZlcmVuY2UnIHwgdHJhbnNsYXRlfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImlzRWRpdGluZ1wiIGNsYXNzPVwidGV4dC1kYW5nZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eydDYW5ub3QgY2hhbmdlIDNEIG1vZGVsIHJlZmVyZW5jZS4gUGxlYXNlIGFkZCBuZXcgbW9kZWwuJyB8IHRyYW5zbGF0ZX19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zIHJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJjb2wtc20tMiBjb2wtZm9ybS1sYWJlbFwiPnt7J1ZpZXdlcicgfCB0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtc20tMTBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgZm9ybUNvbnRyb2xOYW1lPVwidmlld2VyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItMyByb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiY29sLXNtLTIgY29sLWZvcm0tbGFiZWxcIj57eydTdXJmYWNlJyB8IHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1zbS0xMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBmb3JtQ29udHJvbE5hbWU9XCJzdXJmYWNlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItMyByb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiY29sLXNtLTIgY29sLWZvcm0tbGFiZWxcIj57eydDYXB0dXJlIERhdGUnIHwgdHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtZ3JvdXBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImZvcm0tY29udHJvbFwiIHBsYWNlaG9sZGVyPVwiZGQvbW0veXl5eVwiIFsobmdNb2RlbCldPVwiY2FwdHVyZURhdGVcIiBuZ2JEYXRlcGlja2VyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI2QxPVwibmdiRGF0ZXBpY2tlclwiIFtuZ01vZGVsT3B0aW9uc109XCJ7c3RhbmRhbG9uZTogdHJ1ZX1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cC1hcHBlbmRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lLXNlY29uZGFyeSBjYWxlbmRhclwiIChjbGljayk9XCJkMS50b2dnbGUoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIj48L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJzdWJtaXRcIiBjbGFzcz1cImJ0biBidG4tb3V0bGluZS1wcmltYXJ5IHJvdW5kZWQtcGlsbCBtZS0yXCI+e3snU2F2ZScgfFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2xhdGV9fTwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJvbkNhbmNlbCgpXCIgY2xhc3M9XCJidG4gYnRuLW91dGxpbmUtcHJpbWFyeSByb3VuZGVkLXBpbGxcIj57eydDYW5jZWwnIHxcclxuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNsYXRlfX08L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDwvZm9ybT5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCIhdmlzaXRGb3JtXCI+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lLXByaW1hcnkgcm91bmRlZC1waWxsXCIgKGNsaWNrKT1cIm9uQWRkVmlzaXQoKVwiPnt7J0FkZCAzRCB2aXNpdCcgfFxyXG4gICAgICAgICAgICAgICAgICAgIHRyYW5zbGF0ZX19PC9idXR0b24+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgaWQ9XCJ2aWV3ZXItZnJhbWVcIiBzdHlsZT1cIndpZHRoOiAxMDAlOyBhc3BlY3QtcmF0aW86IDIvMTtcIj48L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPG5nLXRlbXBsYXRlICNjb250ZW50IGxldC1tb2RhbD5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibW9kYWwtaGVhZGVyXCI+XHJcbiAgICAgICAgICAgIDxoNCBjbGFzcz1cIm1vZGFsLXRpdGxlXCIgaWQ9XCJtb2RhbC1iYXNpYy10aXRsZVwiPnt7J0ltcG9ydGluZyBEYXRhJyB8IHRyYW5zbGF0ZX19PC9oND5cclxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJjbG9zZVwiIGFyaWEtbGFiZWw9XCJDbG9zZVwiIChjbGljayk9XCJtb2RhbC5kaXNtaXNzKCdDcm9zcyBjbGljaycpXCI+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBhcmlhLWhpZGRlbj1cInRydWVcIj7Dlzwvc3Bhbj5cclxuICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsLWJvZHlcIj5cclxuICAgICAgICAgICAge3snUGxlYXNlIGRvIG5vdCBsZWF2ZSBvciByZWZyZXNoIHRoaXMgcGFnZS4uLicgfCB0cmFuc2xhdGV9fVxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwidG90YWxJbWFnZXMgIT0gMFwiPkltcG9ydGVkIHt7aW1hZ2VzUHJvY2Vzc2VkfX0gb3V0IG9mIHt7dG90YWxJbWFnZXN9fSBpbWFnZXMuPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNwaW5uZXItYm9yZGVyXCIgcm9sZT1cInN0YXR1c1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidmlzdWFsbHktaGlkZGVuXCI+e3snTG9hZGluZycgfCB0cmFuc2xhdGV9fS4uLjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibW9kYWwtZm9vdGVyXCI+XHJcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lLWRhcmtcIiBbZGlzYWJsZWRdPVwiIWNhbkNhbmNlbEltcG9ydFwiXHJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwibW9kYWwuY2xvc2UoJ0NhbmNlbCBjbGljaycpXCI+e3snQ2FuY2VsIGltcG9ydCBvZiBpbWFnZXMnIHwgdHJhbnNsYXRlfX08L2J1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcbjwvZGl2PiJdfQ==
235
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlzaXRzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zbWFydGVycGxhbi1sb2NhdGlvbnMvc3JjL2xpYi9jb21wb25lbnRzL3Zpc2l0cy92aXNpdHMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNtYXJ0ZXJwbGFuLWxvY2F0aW9ucy9zcmMvbGliL2NvbXBvbmVudHMvdmlzaXRzL3Zpc2l0cy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLEVBQTBCLFVBQVUsRUFBbUIsTUFBTSxnQkFBZ0IsQ0FBQztBQUVyRixPQUFPLEVBQVksbUJBQW1CLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMzRSxPQUFPLEVBQTJHLGFBQWEsRUFBVyxNQUFNLG1DQUFtQyxDQUFDOzs7Ozs7Ozs7O0FBT3BMLE1BQU0sT0FBTyxlQUFlO0lBK0J4QixZQUNZLEVBQWUsRUFDZix1QkFBZ0QsRUFDaEQsY0FBOEIsRUFDOUIsV0FBd0IsRUFDeEIsWUFBMEIsRUFDMUIsS0FBcUIsRUFDckIsWUFBc0IsRUFDdEIsWUFBMEI7UUFQMUIsT0FBRSxHQUFGLEVBQUUsQ0FBYTtRQUNmLDRCQUF1QixHQUF2Qix1QkFBdUIsQ0FBeUI7UUFDaEQsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLFVBQUssR0FBTCxLQUFLLENBQWdCO1FBQ3JCLGlCQUFZLEdBQVosWUFBWSxDQUFVO1FBQ3RCLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBcEN0QyxzQkFBaUIsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUl2QixjQUFTLEdBQVksS0FBSyxDQUFDO1FBRTNCLG1C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Q0FBQyxDQUFDO0lBQ2hFLENBQUM7OzRHQWpSUSxlQUFlO2dHQUFmLGVBQWUsc0pDWDVCLHlyUEEySE07MkZEaEhPLGVBQWU7a0JBTDNCLFNBQVM7K0JBQ0ksWUFBWTt5U0F1QjJCLE9BQU87c0JBQXZELFNBQVM7dUJBQUMsU0FBUyxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUdyb3VwLCBGb3JtQnVpbGRlciwgVmFsaWRhdG9ycywgQWJzdHJhY3RDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IE5nYk1vZGFsLCBNb2RhbERpc21pc3NSZWFzb25zIH0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xyXG5pbXBvcnQgeyBOb2RlLCBWaXNpdCwgTWVudUl0ZW0sIE1hdHRlcnBvcnRJbXBvcnRTZXJ2aWNlLCBDYXB0dXJlU2VydmljZSwgTm9kZVNlcnZpY2UsIFNwYWNlU2VydmljZSwgVmlzaXRTZXJ2aWNlLCBDYXB0dXJlVmlld2VyLCBDYXB0dXJlIH0gZnJvbSAnQHNtYXJ0ZXJwbGFuL25neC1zbWFydGVycGxhbi1jb3JlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdsaWItdmlzaXRzJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi92aXNpdHMuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vdmlzaXRzLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFZpc2l0c0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgICBzcGFjZUlkOiBzdHJpbmc7XHJcblxyXG4gICAgdmlzaXRJbmRleERldGFpbHMgPSAtMTtcclxuXHJcbiAgICB2aXNpdEZvcm06IEZvcm1Hcm91cDtcclxuXHJcbiAgICBpc0VkaXRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICB2aXNpdFN1Ym1pdHRlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIGNhcHR1cmVEYXRlOiBudW1iZXI7XHJcblxyXG4gICAgY3VycmVudFNwYWNlID0geyB6b25lczogW10gfSBhcyBhbnk7XHJcblxyXG4gICAgdmlzaXRzOiBWaXNpdFtdID0gW107XHJcblxyXG4gICAgY2xvc2VSZXN1bHQ6IHN0cmluZztcclxuXHJcbiAgICBAVmlld0NoaWxkKFwiY29udGVudFwiLCB7IHN0YXRpYzogZmFsc2UgfSkgcHJpdmF0ZSBjb250ZW50O1xyXG5cclxuICAgIG1vZGFsUmVmZXJlbmNlOiBhbnk7XHJcblxyXG4gICAgY2FuQ2FuY2VsSW1wb3J0ID0gZmFsc2U7XHJcblxyXG4gICAgaW1hZ2VzUHJvY2Vzc2VkOiBudW1iZXIgPSAwO1xyXG5cclxuICAgIHRvdGFsSW1hZ2VzOiBudW1iZXIgPSAwO1xyXG5cclxuICAgIG1lbnVJdGVtczogTWVudUl0ZW1bXSA9IFtdO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyLFxyXG4gICAgICAgIHByaXZhdGUgbWF0dGVycG9ydEltcG9ydFNlcnZpY2U6IE1hdHRlcnBvcnRJbXBvcnRTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgY2FwdHVyZVNlcnZpY2U6IENhcHR1cmVTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgbm9kZVNlcnZpY2U6IE5vZGVTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgc3BhY2VTZXJ2aWNlOiBTcGFjZVNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXHJcbiAgICAgICAgcHJpdmF0ZSBtb2RhbFNlcnZpY2U6IE5nYk1vZGFsLFxyXG4gICAgICAgIHByaXZhdGUgdmlzaXRTZXJ2aWNlOiBWaXNpdFNlcnZpY2UsXHJcbiAgICApIHtcclxuICAgICAgICB0aGlzLm1hdHRlcnBvcnRJbXBvcnRTZXJ2aWNlLmltcG9ydGluZ0ltYWdlcy5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmNhbkNhbmNlbEltcG9ydCA9IHRydWU7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdGhpcy5tYXR0ZXJwb3J0SW1wb3J0U2VydmljZS5zd2VlcFByb2Nlc3NlZENvdW50LnN1YnNjcmliZSgoY291bnQpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5pbWFnZXNQcm9jZXNzZWQgPSBjb3VudCArIDE7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdGhpcy5tYXR0ZXJwb3J0SW1wb3J0U2VydmljZS50b3RhbFN3ZWVwc0NvdW50LnN1YnNjcmliZSgoY291bnQpID0+IHtcclxuICAgICAgICAgICAgdGhpcy50b3RhbEltYWdlcyA9IGNvdW50O1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuc3BhY2VJZCA9IHRoaXMucm91dGUuc25hcHNob3QucGFyYW1NYXAuZ2V0KFwiaWRcIik7XHJcbiAgICAgICAgdGhpcy5yZXNldFZpc2l0cygpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qXHJcbiAgVmlzaXQgPSB7XHJcbiAgICBjYXB0dXJlSUQ6IHN0cmluZyxcclxuICAgIG1vZGVsM2Q6IHN0cmluZyxcclxuICAgIHRha2VuQXQ6IG51bWJlcixcclxuICAgIHNwYWNlSUQ6IHN0cmluZyxcclxuICAgIHZpZXdlcjogQ2FwdHVyZVZpZXdlcixcclxuICAgIHN1cmZhY2U6IG51bWJlcixcclxuICAgIG5vZGU6IE5vZGUsXHJcbiAgICBuYW1lPzogc3RyaW5nIHwgbnVsbFxyXG4gIH1cclxuICAqL1xyXG4gICAgc2V0dXBNZW51SXRlbXMoKSB7XHJcbiAgICAgICAgdGhpcy5tZW51SXRlbXMgPSBbXHJcbiAgICAgICAgICAgIHsgbGFiZWw6IFwiTG9jYXRpb25zXCIsIHVybDogXCIvbG9jYWxpc2F0aW9uXCIgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgbGFiZWw6IHRoaXMuY3VycmVudFNwYWNlLm5hbWUsXHJcbiAgICAgICAgICAgICAgICB1cmw6IGAvbG9jYWxpc2F0aW9uLyR7dGhpcy5jdXJyZW50U3BhY2UuaWR9YCxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgbGFiZWw6IFwiVmlydHVhbCB2aXNpdHNcIixcclxuICAgICAgICAgICAgICAgIHVybDogYC9sb2NhbGlzYXRpb24vJHt0aGlzLmN1cnJlbnRTcGFjZS5pZH0vdmlzaXRzYCxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICBdO1xyXG4gICAgfVxyXG5cclxuICAgIG9uR29CYWNrKCkge1xyXG4gICAgICAgIHRoaXMub25DYW5jZWwoKTtcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyByZXNldFZpc2l0cygpIHtcclxuICAgICAgICB0aGlzLnZpc2l0cyA9IFtdO1xyXG4gICAgICAgIHRoaXMuY3VycmVudFNwYWNlID0gYXdhaXQgdGhpcy5zcGFjZVNlcnZpY2UuZ2V0U3BhY2UodGhpcy5zcGFjZUlkKTtcclxuICAgICAgICB0aGlzLnNldHVwTWVudUl0ZW1zKCk7XHJcbiAgICAgICAgYXdhaXQgdGhpcy52aXNpdFNlcnZpY2VcclxuICAgICAgICAgICAgLmdldFZpc2l0c0ZvclNwYWNlRm9yVXNlcih0aGlzLnNwYWNlSWQpXHJcbiAgICAgICAgICAgIC50aGVuKCh2aXNpdHMpID0+IHtcclxuICAgICAgICAgICAgICAgIGlmICh2aXNpdHMpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnZpc2l0cyA9IHZpc2l0cztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgaW5pdFZpc2l0Rm9ybShpbnB1dDogVmlzaXQgPSBudWxsKSB7XHJcbiAgICAgICAgaWYgKGlucHV0KSB7XHJcbiAgICAgICAgICAgIHRoaXMudmlzaXRGb3JtID0gdGhpcy5mYi5ncm91cCh7XHJcbiAgICAgICAgICAgICAgICBjYXB0dXJlSUQ6IGlucHV0LmNhcHR1cmVJRCxcclxuICAgICAgICAgICAgICAgIG5vZGVJRDogaW5wdXQubm9kZS5pZCxcclxuICAgICAgICAgICAgICAgIG5hbWU6IFtpbnB1dC5uYW1lLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxyXG4gICAgICAgICAgICAgICAgbW9kZWwzRDogW2lucHV0Lm1vZGVsM2QsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXHJcbiAgICAgICAgICAgICAgICB2aWV3ZXI6IGlucHV0LnZpZXdlciA/IGlucHV0LnZpZXdlciA6IENhcHR1cmVWaWV3ZXIuTUFUVEVSUE9SVCxcclxuICAgICAgICAgICAgICAgIHN1cmZhY2U6IGlucHV0LnN1cmZhY2UgPyBpbnB1dC5zdXJmYWNlIDogbnVsbCxcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIHRoaXMuY2FwdHVyZURhdGUgPSBpbnB1dC50YWtlbkF0O1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMudmlzaXRGb3JtID0gdGhpcy5mYi5ncm91cCh7XHJcbiAgICAgICAgICAgICAgICBtb2RlbDNEOiBbbnVsbCwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSxcclxuICAgICAgICAgICAgICAgIHZpZXdlcjogQ2FwdHVyZVZpZXdlci5NQVRURVJQT1JULFxyXG4gICAgICAgICAgICAgICAgc3VyZmFjZTogbnVsbCxcclxuICAgICAgICAgICAgICAgIG5hbWU6IFtudWxsLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgb25Ub2dnbGVEZXRhaWwoaW5kZXgpIHtcclxuICAgICAgICB0aGlzLnZpc2l0SW5kZXhEZXRhaWxzID0gaW5kZXggPT09IHRoaXMudmlzaXRJbmRleERldGFpbHMgPyAtMSA6IGluZGV4O1xyXG4gICAgfVxyXG5cclxuICAgIG9uQWRkVmlzaXQoKSB7XHJcbiAgICAgICAgdGhpcy5pbml0VmlzaXRGb3JtKCk7XHJcbiAgICAgICAgdGhpcy5tZW51SXRlbXMucHVzaCh7IGxhYmVsOiBcIk5ld1wiIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIG9uRWRpdCh2aXNpdCkge1xyXG4gICAgICAgIHRoaXMuaW5pdFZpc2l0Rm9ybSh2aXNpdCk7XHJcbiAgICAgICAgdGhpcy5pc0VkaXRpbmcgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMubWVudUl0ZW1zLnB1c2goeyBsYWJlbDogdmlzaXQubmFtZSB9KTtcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBvblN1Ym1pdFZpc2l0KCkge1xyXG4gICAgICAgIHRoaXMudmlzaXRTdWJtaXR0ZWQgPSB0cnVlO1xyXG4gICAgICAgIGlmICghdGhpcy52aXNpdEZvcm0udmFsaWQpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCBmb3JtVmFsdWUgPSB0aGlzLnZpc2l0Rm9ybS52YWx1ZTtcclxuICAgICAgICBjb25zdCBjYXB0dXJlID0ge1xyXG4gICAgICAgICAgICB2aWV3ZXI6IGZvcm1WYWx1ZS52aWV3ZXIsXHJcbiAgICAgICAgICAgIHRha2VuQXQ6IHRoaXMuY2FwdHVyZURhdGUsXHJcbiAgICAgICAgICAgIHN1cmZhY2U6IGZvcm1WYWx1ZS5zdXJmYWNlLFxyXG4gICAgICAgICAgICBzcGFjZUlEOiB0aGlzLmN1cnJlbnRTcGFjZS5pZCxcclxuICAgICAgICB9IGFzIENhcHR1cmU7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLmlzRWRpdGluZykge1xyXG4gICAgICAgICAgICBjYXB0dXJlLmlkID0gZm9ybVZhbHVlLmNhcHR1cmVJRDtcclxuICAgICAgICAgICAgYXdhaXQgdGhpcy5jYXB0dXJlU2VydmljZS51cGRhdGVDYXB0dXJlKGNhcHR1cmUpO1xyXG4gICAgICAgICAgICBjb25zdCBub2RlID0ge1xyXG4gICAgICAgICAgICAgICAgaWQ6IGZvcm1WYWx1ZS5ub2RlSUQsXHJcbiAgICAgICAgICAgICAgICBtb2RlbDNEOiBmb3JtVmFsdWUubW9kZWwzRCxcclxuICAgICAgICAgICAgICAgIG1ldGFkYXRhOiBmb3JtVmFsdWUubmFtZSxcclxuICAgICAgICAgICAgfSBhcyBOb2RlO1xyXG4gICAgICAgICAgICBhd2FpdCB0aGlzLm5vZGVTZXJ2aWNlLnVwZGF0ZU5vZGUobm9kZSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgbGV0IGNyZWF0ZWROb2RlO1xyXG4gICAgICAgICAgICBhd2FpdCB0aGlzLmNhcHR1cmVTZXJ2aWNlLmNyZWF0ZUNhcHR1cmUoY2FwdHVyZSkudGhlbihhc3luYyAocmVzKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAocmVzKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgbm9kZSA9IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbW9kZWwzRDogZm9ybVZhbHVlLm1vZGVsM0QsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhcHR1cmVJRDogcmVzLmlkLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBtZXRhZGF0YTogZm9ybVZhbHVlLm5hbWUsXHJcbiAgICAgICAgICAgICAgICAgICAgfSBhcyBOb2RlO1xyXG4gICAgICAgICAgICAgICAgICAgIGNyZWF0ZWROb2RlID0gYXdhaXQgdGhpcy5ub2RlU2VydmljZS5jcmVhdGVOb2RlKG5vZGUpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgdGhpcy5sYXVuY2hJbXBvcnQoXHJcbiAgICAgICAgICAgICAgICBmb3JtVmFsdWUubW9kZWwzRCxcclxuICAgICAgICAgICAgICAgIGZvcm1WYWx1ZS5zdXJmYWNlLFxyXG4gICAgICAgICAgICAgICAgY3JlYXRlZE5vZGUsXHJcbiAgICAgICAgICAgICAgICBmYWxzZSxcclxuICAgICAgICAgICAgKS50aGVuKChzdWNjZXNzKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm1vZGFsUmVmZXJlbmNlLmNsb3NlKFwiaW1wb3J0IGVuZGVkIHdpdGggc3VjY2Vzc1wiKTtcclxuICAgICAgICAgICAgfSkuY2F0Y2goKGUpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMubW9kYWxSZWZlcmVuY2UuY2xvc2UoYEVycm9yIHdoaWxlIGltcG9ydDogJHtlfWApO1xyXG4gICAgICAgICAgICAgICAgYWxlcnQoYEVycm9yIHdoaWxlIGltcG9ydDogJHtlfWApO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5vbkRlbGV0ZSh7IG5vZGU6IGNyZWF0ZWROb2RlLCBjYXB0dXJlSUQ6IGNyZWF0ZWROb2RlLmNhcHR1cmVJRCB9IGFzIFZpc2l0KTtcclxuICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIH1cclxuICAgICAgICBhd2FpdCB0aGlzLnJlc2V0VmlzaXRzKCk7XHJcbiAgICAgICAgdGhpcy5vbkNhbmNlbCgpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBtb2RlbDNEKCk6IEFic3RyYWN0Q29udHJvbCB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMudmlzaXRGb3JtLmdldChcIm1vZGVsM0RcIik7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IG5hbWUoKTogQWJzdHJhY3RDb250cm9sIHtcclxuICAgICAgICByZXR1cm4gdGhpcy52aXNpdEZvcm0uZ2V0KFwibmFtZVwiKTtcclxuICAgIH1cclxuXHJcbiAgICBvbkNhbmNlbCgpIHtcclxuICAgICAgICB0aGlzLnZpc2l0U3VibWl0dGVkID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy52aXNpdEZvcm0gPSBudWxsO1xyXG4gICAgICAgIHRoaXMuaXNFZGl0aW5nID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5jYW5DYW5jZWxJbXBvcnQgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLnRvdGFsSW1hZ2VzID0gMDtcclxuICAgICAgICB0aGlzLmltYWdlc1Byb2Nlc3NlZCA9IDA7XHJcbiAgICAgICAgdGhpcy5zZXR1cE1lbnVJdGVtcygpO1xyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIG9uRGVsZXRlKHZpc2l0OiBWaXNpdCkge1xyXG4gICAgICAgIGF3YWl0IHRoaXMudmlzaXRTZXJ2aWNlLmRlbGV0ZVZpc2l0KHZpc2l0LCB0aGlzLnNwYWNlSWQpO1xyXG4gICAgICAgIHRoaXMucmVzZXRWaXNpdHMoKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGdldERpc21pc3NSZWFzb24ocmVhc29uOiBhbnkpOiBzdHJpbmcge1xyXG4gICAgICAgIGlmIChyZWFzb24gPT09IE1vZGFsRGlzbWlzc1JlYXNvbnMuRVNDKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBcImJ5IHByZXNzaW5nIEVTQ1wiO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAocmVhc29uID09PSBNb2RhbERpc21pc3NSZWFzb25zLkJBQ0tEUk9QX0NMSUNLKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBcImJ5IGNsaWNraW5nIG9uIGEgYmFja2Ryb3BcIjtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGB3aXRoOiAke3JlYXNvbn1gO1xyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIGxhdW5jaEltcG9ydChcclxuICAgICAgICBtb2RlbDNELFxyXG4gICAgICAgIHN1cmZhY2UsXHJcbiAgICAgICAgbm9kZSxcclxuICAgICAgICBpbWFnZXNPbmx5ID0gZmFsc2UsXHJcbiAgICApOiBQcm9taXNlPGJvb2xlYW4+IHtcclxuICAgICAgICB0aGlzLm1vZGFsUmVmZXJlbmNlID0gdGhpcy5tb2RhbFNlcnZpY2Uub3Blbih0aGlzLmNvbnRlbnQsIHtcclxuICAgICAgICAgICAgYXJpYUxhYmVsbGVkQnk6IFwibW9kYWwtYmFzaWMtdGl0bGVcIixcclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLm1vZGFsUmVmZXJlbmNlLnJlc3VsdC50aGVuKFxyXG4gICAgICAgICAgICAocmVzdWx0KSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNsb3NlUmVzdWx0ID0gYENsb3NlZCB3aXRoOiAke3Jlc3VsdH1gO1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2codGhpcy5jbG9zZVJlc3VsdCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNhbmNlbEltcG9ydCgpO1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAoZXJyb3IpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuY2xvc2VSZXN1bHQgPSBgRGlzbWlzc2VkICR7dGhpcy5nZXREaXNtaXNzUmVhc29uKGVycm9yKX1gO1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2codGhpcy5jbG9zZVJlc3VsdCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNhbmNlbEltcG9ydCgpO1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICk7XHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgYXdhaXQgdGhpcy5tYXR0ZXJwb3J0SW1wb3J0U2VydmljZS5pbml0U2RrRm9yTW9kZWwoXHJcbiAgICAgICAgICAgICAgICBtb2RlbDNELFxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgICByZXR1cm4gaW1hZ2VzT25seVxyXG4gICAgICAgICAgICAgICAgPyB0aGlzLm1hdHRlcnBvcnRJbXBvcnRTZXJ2aWNlLmltcG9ydERhdGEoXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zcGFjZUlkLFxyXG4gICAgICAgICAgICAgICAgICAgIHN1cmZhY2UsXHJcbiAgICAgICAgICAgICAgICAgICAgdHJ1ZSxcclxuICAgICAgICAgICAgICAgICAgICBub2RlLFxyXG4gICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAgICAgOiB0aGlzLm1hdHRlcnBvcnRJbXBvcnRTZXJ2aWNlLmltcG9ydERhdGEoXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zcGFjZUlkLFxyXG4gICAgICAgICAgICAgICAgICAgIHN1cmZhY2UsXHJcbiAgICAgICAgICAgICAgICAgICAgZmFsc2UsXHJcbiAgICAgICAgICAgICAgICAgICAgbm9kZSxcclxuICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgICAgICAgY29uc29sZS5sb2coZXJyb3IpO1xyXG4gICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QoZXJyb3IpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGNhbmNlbEltcG9ydCgpIHtcclxuICAgICAgICB0aGlzLm1hdHRlcnBvcnRJbXBvcnRTZXJ2aWNlLmFiYW5kb24oKTtcclxuICAgICAgICB0aGlzLm9uQ2FuY2VsKCk7XHJcbiAgICAgICAgdGhpcy5yZXNldFZpc2l0cygpO1xyXG4gICAgfVxyXG5cclxuICAgIG9uSW1wb3J0KHZpc2l0OiBWaXNpdCkge1xyXG4gICAgICAgIHRoaXMubGF1bmNoSW1wb3J0KHZpc2l0Lm1vZGVsM2QsIG51bGwsIHZpc2l0Lm5vZGUuaWQsIHRydWUpO1xyXG4gICAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJjb250YWluZXItZmx1aWRcIiBjbGFzcz1cImRhc2hib2FyZC10YWJcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJtLTNcIj5cclxuICAgICAgICA8bGliLXRhYi1uYXZpZ2F0aW9uIFttZW51SXRlbXNdPSdtZW51SXRlbXMnIChvbkdvQmFjayk9XCJvbkdvQmFjaygpXCI+PC9saWItdGFiLW5hdmlnYXRpb24+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwicm93IG1haW4tZm9ybS1jb250YWluZXJcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTYgZm9ybS1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgPHVsIGNsYXNzPVwibGlzdC1ncm91cCBsaXN0LWdyb3VwLWZsdXNoXCIgKm5nSWY9XCIhdmlzaXRGb3JtXCI+XHJcbiAgICAgICAgICAgICAgICA8bGkgY2xhc3M9XCJsaXN0LWdyb3VwLWl0ZW0gbGlzdC1ncm91cC1pdGVtLWFjdGlvblwiICpuZ0Zvcj1cImxldCB2aXNpdCBvZiB2aXNpdHM7IGluZGV4IGFzIGluZGV4XCJcclxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25Ub2dnbGVEZXRhaWwoaW5kZXgpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3t2aXNpdC5uYW1lID8gdmlzaXQubmFtZSA6IHZpc2l0Lm1vZGVsM2QgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGxpYi1jaGV2cm9uIFtjb25kaXRpb25TaG93aW5nXT1cImluZGV4PT12aXNpdEluZGV4RGV0YWlsc1wiPjwvbGliLWNoZXZyb24+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImluZGV4PT12aXNpdEluZGV4RGV0YWlsc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9XCJsaXN0LWdyb3VwIGxpc3QtZ3JvdXAtZmx1c2hcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz1cImxpc3QtZ3JvdXAtaXRlbSBiZy10cmFuc3BhcmVudFwiPnt7J05hbWUnIHwgdHJhbnNsYXRlfX0gOiB7eyB2aXNpdC5uYW1lID9cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aXNpdC5uYW1lIDogXCJOb3QgcHJvdmlkZWRcIiB8IHRyYW5zbGF0ZX19PC9saT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz1cImxpc3QtZ3JvdXAtaXRlbSBiZy10cmFuc3BhcmVudFwiPnt7JzNEIE1vZGVsJyB8IHRyYW5zbGF0ZX19IDoge3sgdmlzaXQubW9kZWwzZCB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz1cImxpc3QtZ3JvdXAtaXRlbSBiZy10cmFuc3BhcmVudFwiPnt7J1N1cmZhY2UnIHwgdHJhbnNsYXRlfX0sIG08c3VwPjI8L3N1cD46IHt7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlzaXQuc3VyZmFjZSA/XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlzaXQuc3VyZmFjZSA6ICdOb3QgcHJvdmlkZWQnIHwgdHJhbnNsYXRlfX08L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPVwibGlzdC1ncm91cC1pdGVtIGJnLXRyYW5zcGFyZW50XCI+e3snVmlld2VyJyB8IHRyYW5zbGF0ZX19IDoge3sgdmlzaXQudmlld2VyIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPVwibGlzdC1ncm91cC1pdGVtIGJnLXRyYW5zcGFyZW50XCI+e3snRGF0ZSBvZiBjYXB0dXJlJyB8IHRyYW5zbGF0ZX19IDoge3tcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aXNpdC50YWtlbkF0IHwgdGltZURhdGVTdHJpbmcgfCBhc3luY319XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9XCJsaXN0LWdyb3VwLWl0ZW0gYmctdHJhbnNwYXJlbnRcIj57eydJbWFnZXMgYXJlIGltcG9ydGVkJyB8IHRyYW5zbGF0ZX19IDoge3tcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aXNpdC5pbWFnZXNJbXBvcnRlZCB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC91bD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLW91dGxpbmUtcHJpbWFyeSByb3VuZGVkLXBpbGwgbWUtMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIiF2aXNpdC5pbWFnZXNJbXBvcnRlZFwiIChjbGljayk9XCJvbkltcG9ydCh2aXNpdClcIj57eydJbXBvcnQgaW1hZ2VzJyB8XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2xhdGV9fTwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tb3V0bGluZS1wcmltYXJ5IHJvdW5kZWQtcGlsbCBtZS0yXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvbkVkaXQodmlzaXQpXCI+e3snRWRpdCcgfCB0cmFuc2xhdGV9fTwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tb3V0bGluZS1wcmltYXJ5IHJvdW5kZWQtcGlsbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25EZWxldGUodmlzaXQpXCI+e3snRGVsZXRlJyB8IHRyYW5zbGF0ZX19PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICA8L3VsPlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwidmlzaXRGb3JtXCI+XHJcbiAgICAgICAgICAgICAgICA8Zm9ybSAobmdTdWJtaXQpPVwib25TdWJtaXRWaXNpdCgpXCIgW2Zvcm1Hcm91cF09XCJ2aXNpdEZvcm1cIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItMyByb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiY29sLXNtLTIgY29sLWZvcm0tbGFiZWxcIj57eydOYW1lJyB8IHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1zbS0xMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBmb3JtQ29udHJvbE5hbWU9XCJuYW1lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zIHJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJjb2wtc20tMiBjb2wtZm9ybS1sYWJlbFwiPnt7J1JlZmVyZW5jZSAzRCBtb2RlbCcgfCB0cmFuc2xhdGV9fSAqPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1zbS0xMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBbcmVhZG9ubHldPVwiaXNFZGl0aW5nXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuaXMtaW52YWxpZF09XCJtb2RlbDNELmludmFsaWQgJiYgdmlzaXRTdWJtaXR0ZWRcIiByZXF1aXJlZFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cIm1vZGVsM0RcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnZhbGlkLWZlZWRiYWNrXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3snUGxlYXNlIHByb3ZpZGUgdGhlIDNEIG1vZGVsIHJlZmVyZW5jZScgfCB0cmFuc2xhdGV9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiaXNFZGl0aW5nXCIgY2xhc3M9XCJ0ZXh0LWRhbmdlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7J0Nhbm5vdCBjaGFuZ2UgM0QgbW9kZWwgcmVmZXJlbmNlLiBQbGVhc2UgYWRkIG5ldyBtb2RlbC4nIHwgdHJhbnNsYXRlfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTMgcm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImNvbC1zbS0yIGNvbC1mb3JtLWxhYmVsXCI+e3snVmlld2VyJyB8IHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1zbS0xMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBmb3JtQ29udHJvbE5hbWU9XCJ2aWV3ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zIHJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJjb2wtc20tMiBjb2wtZm9ybS1sYWJlbFwiPnt7J1N1cmZhY2UnIHwgdHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXNtLTEwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIGZvcm1Db250cm9sTmFtZT1cInN1cmZhY2VcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zIHJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJjb2wtc20tMiBjb2wtZm9ybS1sYWJlbFwiPnt7J0NhcHR1cmUgRGF0ZScgfCB0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZm9ybS1jb250cm9sXCIgcGxhY2Vob2xkZXI9XCJkZC9tbS95eXl5XCIgWyhuZ01vZGVsKV09XCJjYXB0dXJlRGF0ZVwiIG5nYkRhdGVwaWNrZXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjZDE9XCJuZ2JEYXRlcGlja2VyXCIgW25nTW9kZWxPcHRpb25zXT1cIntzdGFuZGFsb25lOiB0cnVlfVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwLWFwcGVuZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLW91dGxpbmUtc2Vjb25kYXJ5IGNhbGVuZGFyXCIgKGNsaWNrKT1cImQxLnRvZ2dsZSgpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiPjwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cInN1Ym1pdFwiIGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lLXByaW1hcnkgcm91bmRlZC1waWxsIG1lLTJcIj57eydTYXZlJyB8XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zbGF0ZX19PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cIm9uQ2FuY2VsKClcIiBjbGFzcz1cImJ0biBidG4tb3V0bGluZS1wcmltYXJ5IHJvdW5kZWQtcGlsbFwiPnt7J0NhbmNlbCcgfFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2xhdGV9fTwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPC9mb3JtPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cIiF2aXNpdEZvcm1cIj5cclxuICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLW91dGxpbmUtcHJpbWFyeSByb3VuZGVkLXBpbGxcIiAoY2xpY2spPVwib25BZGRWaXNpdCgpXCI+e3snQWRkIDNEIHZpc2l0JyB8XHJcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNsYXRlfX08L2J1dHRvbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBpZD1cInZpZXdlci1mcmFtZVwiIHN0eWxlPVwid2lkdGg6IDEwMCU7IGFzcGVjdC1yYXRpbzogMi8xO1wiPjwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8bmctdGVtcGxhdGUgI2NvbnRlbnQgbGV0LW1vZGFsPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1oZWFkZXJcIj5cclxuICAgICAgICAgICAgPGg0IGNsYXNzPVwibW9kYWwtdGl0bGVcIiBpZD1cIm1vZGFsLWJhc2ljLXRpdGxlXCI+e3snSW1wb3J0aW5nIERhdGEnIHwgdHJhbnNsYXRlfX08L2g0PlxyXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImNsb3NlXCIgYXJpYS1sYWJlbD1cIkNsb3NlXCIgKGNsaWNrKT1cIm1vZGFsLmRpc21pc3MoJ0Nyb3NzIGNsaWNrJylcIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPsOXPC9zcGFuPlxyXG4gICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibW9kYWwtYm9keVwiPlxyXG4gICAgICAgICAgICB7eydQbGVhc2UgZG8gbm90IGxlYXZlIG9yIHJlZnJlc2ggdGhpcyBwYWdlLi4uJyB8IHRyYW5zbGF0ZX19XHJcbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJ0b3RhbEltYWdlcyAhPSAwXCI+SW1wb3J0ZWQge3tpbWFnZXNQcm9jZXNzZWR9fSBvdXQgb2Yge3t0b3RhbEltYWdlc319IGltYWdlcy48L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Bpbm5lci1ib3JkZXJcIiByb2xlPVwic3RhdHVzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2aXN1YWxseS1oaWRkZW5cIj57eydMb2FkaW5nJyB8IHRyYW5zbGF0ZX19Li4uPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1mb290ZXJcIj5cclxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLW91dGxpbmUtZGFya1wiIFtkaXNhYmxlZF09XCIhY2FuQ2FuY2VsSW1wb3J0XCJcclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJtb2RhbC5jbG9zZSgnQ2FuY2VsIGNsaWNrJylcIj57eydDYW5jZWwgaW1wb3J0IG9mIGltYWdlcycgfCB0cmFuc2xhdGV9fTwvYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuPC9kaXY+Il19
@@ -0,0 +1,162 @@
1
+ import { Component, EventEmitter, Input, Output } from '@angular/core';
2
+ import { Validators } from '@angular/forms';
3
+ import { CommentType } from '@smarterplan/ngx-smarterplan-core';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/forms";
6
+ import * as i2 from "@smarterplan/ngx-smarterplan-core";
7
+ import * as i3 from "@ngx-translate/core";
8
+ import * as i4 from "../add-zone/sweep-plan-selection/sweep-plan-selection.component";
9
+ import * as i5 from "@angular/common";
10
+ import * as i6 from "@ng-bootstrap/ng-bootstrap";
11
+ export class AddAudioZoneComponent {
12
+ constructor(fb, zoneService, layerService, userService, navigationService, commentService, translate) {
13
+ this.fb = fb;
14
+ this.zoneService = zoneService;
15
+ this.layerService = layerService;
16
+ this.userService = userService;
17
+ this.navigationService = navigationService;
18
+ this.commentService = commentService;
19
+ this.translate = translate;
20
+ this.updatedZone = new EventEmitter();
21
+ this.isSubmitted = false;
22
+ this.fromPlan = false;
23
+ this.chosenScansOnPlan = [];
24
+ this.isAddingAudio = false;
25
+ this.scansModified = false;
26
+ }
27
+ ngOnInit() {
28
+ if (this.currentAudioZone) {
29
+ // we are editing zone
30
+ this.chosenAudio = this.currentAudioZone.audio;
31
+ this.chosenScansOnPlan = this.currentAudioZone.sweepIDs;
32
+ }
33
+ this.setup();
34
+ }
35
+ async setup() {
36
+ const mission = this.userService.currentMission(this.spaceID);
37
+ this.currentOrgId = mission.organisationID;
38
+ let layers = await this.layerService.getLayerForOrganisation(this.currentOrgId);
39
+ this.audioLayer = layers.find((layer) => layer.name === "AUDIO");
40
+ if (!this.audioLayer) {
41
+ // firts time creating Audio Zone
42
+ this.audioLayer = await this.layerService.createLayerForOrganisation("AUDIO", this.currentOrgId);
43
+ }
44
+ this.audioZones = this.zones.filter((zone) => zone.layerID === this.audioLayer.id);
45
+ await this.getAudios();
46
+ this.commentForm = this.fb.group({
47
+ title: [null, Validators.required],
48
+ spaceID: this.spaceID,
49
+ type: CommentType.AUDIO,
50
+ ownerID: mission.id,
51
+ });
52
+ }
53
+ async onSubmit() {
54
+ this.isSubmitted = true;
55
+ if (this.currentAudioZone) {
56
+ await this.zoneService.updateZone({
57
+ id: this.currentAudioZone.id,
58
+ sweepIDs: this.chosenScansOnPlan,
59
+ });
60
+ this.updatedZone.emit(this.currentAudioZone.id);
61
+ }
62
+ else {
63
+ const zoneInput = {
64
+ name: this.chosenAudio.title,
65
+ surface: 0,
66
+ spaceID: this.spaceID,
67
+ layerID: this.audioLayer.id,
68
+ parentID: this.defaultZone.id,
69
+ isMuseumVisitZone: false,
70
+ isMultipleFloorZone: true,
71
+ audioID: this.chosenAudio.id,
72
+ };
73
+ try {
74
+ await this.setSweepsAndNodeForZoneInput(zoneInput);
75
+ await this.zoneService
76
+ .create(zoneInput)
77
+ .then(zoneCreated => {
78
+ this.updatedZone.emit(zoneCreated.id);
79
+ });
80
+ }
81
+ catch (error) {
82
+ console.error(error);
83
+ }
84
+ }
85
+ }
86
+ async setSweepsAndNodeForZoneInput(zoneInput) {
87
+ if (this.chosenScansOnPlan.length > 0) {
88
+ zoneInput.sweepIDs = this.chosenScansOnPlan;
89
+ }
90
+ if (zoneInput.sweepIDs && zoneInput.sweepIDs.length > 0) {
91
+ const navForSweep = await this.navigationService.getNavigationsForMatterportIDForSpace(zoneInput.sweepIDs[0], this.spaceID);
92
+ zoneInput.nodeIDs = [navForSweep[0].nodeID];
93
+ }
94
+ }
95
+ onCancel() {
96
+ if (this.scansModified) {
97
+ const message = this.translate.instant("confirm.cancelEditZone");
98
+ if (!window.confirm(message)) {
99
+ return;
100
+ }
101
+ }
102
+ this.commentForm = null;
103
+ this.chosenScansOnPlan = [];
104
+ this.updatedZone.emit(false);
105
+ }
106
+ togglePlan() {
107
+ this.fromPlan = true;
108
+ }
109
+ onSelectedSweepsFromPlan(sweeps) {
110
+ if (sweeps) {
111
+ this.chosenScansOnPlan = sweeps;
112
+ this.scansModified = true;
113
+ }
114
+ this.fromPlan = false;
115
+ }
116
+ handleFileInput(event) {
117
+ const target = event.target;
118
+ this.fileToUpload = target.files[0];
119
+ }
120
+ async onUploadAudio() {
121
+ const commentInput = this.commentForm.value;
122
+ const newAudio = await this.commentService.createCommentWithFile(commentInput, this.fileToUpload);
123
+ this.audiosForSpace.push(newAudio);
124
+ this.isAddingAudio = false;
125
+ }
126
+ async getAudios() {
127
+ const attachments = await this.commentService.getCommentsBySpaceID(this.spaceID);
128
+ if (attachments) {
129
+ this.audiosForSpace = attachments.filter((attachment) => attachment.type === CommentType.AUDIO);
130
+ }
131
+ }
132
+ onCancelAudioUpload() {
133
+ this.commentForm = null;
134
+ this.isAddingAudio = false;
135
+ this.fileToUpload = null;
136
+ }
137
+ onChooseAudio(audio) {
138
+ this.chosenAudio = audio;
139
+ this.currentAudioZone = this.audioZones.find((zone) => zone.audioID === this.chosenAudio.id);
140
+ if (this.currentAudioZone) {
141
+ this.chosenScansOnPlan = this.currentAudioZone.sweepIDs;
142
+ console.log("upd track", this.chosenScansOnPlan.length);
143
+ }
144
+ }
145
+ }
146
+ AddAudioZoneComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: AddAudioZoneComponent, deps: [{ token: i1.FormBuilder }, { token: i2.ZoneService }, { token: i2.LayerService }, { token: i2.BaseUserService }, { token: i2.NavigationService }, { token: i2.CommentService }, { token: i3.TranslateService }], target: i0.ɵɵFactoryTarget.Component });
147
+ AddAudioZoneComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: AddAudioZoneComponent, selector: "lib-add-audio-zone", inputs: { spaceID: "spaceID", defaultZone: "defaultZone", zones: "zones", currentAudioZone: "currentAudioZone" }, outputs: { updatedZone: "updatedZone" }, ngImport: i0, template: "<div class=\"main-container\">\r\n <div class=\"col-lg-6 col-md-6 col-sm-7\" *ngIf=\"isAddingAudio\">\r\n <form (ngSubmit)=\"onUploadAudio()\" [formGroup]=\"commentForm\">\r\n <div class=\"mb-3 row\">\r\n <label class=\"col-sm-2 col-form-label\">{{'Name' | translate}} *</label>\r\n <div class=\"col-sm-10\">\r\n <input type=\"text\" class=\"form-control\" required formControlName=\"title\">\r\n </div>\r\n </div>\r\n <div>\r\n <label for=\"file\" class=\"btn btn-label-file rounded-pill\">\r\n <input type=\"file\" id=\"file\" (change)=\"handleFileInput($event)\" />\r\n {{'Choose File' | translate}}</label>\r\n <p *ngIf=\"fileToUpload\">{{ fileToUpload.name}}</p>\r\n </div>\r\n <div class=\"mt-3\">\r\n <button type=\"submit\" class=\"btn btn-primary rounded-pill me-2\" [disabled]=\"fromPlan\">{{'Upload' | translate}}</button>\r\n <button type=\"button\" (click)=\"onCancelAudioUpload()\" class=\"btn btn-outline-primary rounded-pill me-2\">\r\n {{'Cancel' | translate}}</button>\r\n </div>\r\n </form>\r\n </div>\r\n <div class=\"col-7\" *ngIf=\"!isAddingAudio\">\r\n <div class=\"choose-audio-div\" *ngIf=\"audiosForSpace\">\r\n <div ngbDropdown class=\"row d-inline-block dropdown\">\r\n <div>\r\n <button type=\"button\" class=\"btn btn-label-file rounded-pill\" id=\"dropdownBasic1\"\r\n ngbDropdownToggle>{{chosenAudio ?\r\n chosenAudio.title : ('choose-audio' | translate) }}</button>\r\n <div ngbDropdownMenu aria-labelledby=\"dropdownBasic1\">\r\n <button type=\"button\" ngbDropdownItem *ngFor=\"let audio of audiosForSpace\" \r\n (click)=\"onChooseAudio(audio)\">{{ audio.title }}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <p>{{'or' | translate}}</p>\r\n <button (click)=\"isAddingAudio=true\" class=\"btn btn-primary rounded-pill me-2\"> {{'add-audio' | translate}}</button>\r\n </div>\r\n <div class=\"row mb-3 mt-3\">\r\n <div class=\"col\">\r\n <button type=\"button\" class=\"btn btn-outline-primary rounded-pill me-2\" (click)=\"togglePlan()\">{{'Choose scan points on plan' |\r\n translate}}</button>\r\n </div>\r\n </div>\r\n <div *ngIf=\"chosenAudio\">\r\n <p>{{ chosenScansOnPlan.length }} {{'scans-chosen-audio' | translate}}</p>\r\n </div>\r\n\r\n <div class=\"mt-3\">\r\n <button class=\"btn btn-primary rounded-pill me-2\" [disabled]=\"fromPlan\" (click)=\"onSubmit()\">{{'Save' | translate}}</button>\r\n <button (click)=\"onCancel()\" class=\"btn btn-outline-primary rounded-pill me-2\">\r\n {{'Cancel' | translate}}</button>\r\n </div>\r\n </div>\r\n <div class=\"edit-plan\" *ngIf=\"fromPlan\">\r\n <lib-sweep-plan-selection style=\"width: 100%;\" [navIDsZoneEdit]=\"chosenScansOnPlan\" [spaceID]=\"spaceID\"\r\n (sweepsSelected)=\"onSelectedSweepsFromPlan($event)\"></lib-sweep-plan-selection>\r\n </div>\r\n</div>\r\n", styles: [".choose-audio-div{display:flex;align-items:center}.choose-audio-div button{margin-bottom:0}.choose-audio-div p{margin-bottom:0;margin-left:5px;margin-right:5px}\n"], components: [{ type: i4.SweepPlanSelectionComponent, selector: "lib-sweep-plan-selection", inputs: ["spaceID", "chosenScansOnPlan", "newZoneData", "navIDsZoneEdit"], outputs: ["sweepsSelected"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { type: i6.NgbDropdown, selector: "[ngbDropdown]", inputs: ["autoClose", "dropdownClass", "open", "placement", "container", "display"], outputs: ["openChange"], exportAs: ["ngbDropdown"] }, { type: i6.NgbDropdownToggle, selector: "[ngbDropdownToggle]" }, { type: i6.NgbDropdownMenu, selector: "[ngbDropdownMenu]" }, { type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i6.NgbDropdownItem, selector: "[ngbDropdownItem]", inputs: ["disabled"] }], pipes: { "translate": i3.TranslatePipe } });
148
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: AddAudioZoneComponent, decorators: [{
149
+ type: Component,
150
+ args: [{ selector: 'lib-add-audio-zone', template: "<div class=\"main-container\">\r\n <div class=\"col-lg-6 col-md-6 col-sm-7\" *ngIf=\"isAddingAudio\">\r\n <form (ngSubmit)=\"onUploadAudio()\" [formGroup]=\"commentForm\">\r\n <div class=\"mb-3 row\">\r\n <label class=\"col-sm-2 col-form-label\">{{'Name' | translate}} *</label>\r\n <div class=\"col-sm-10\">\r\n <input type=\"text\" class=\"form-control\" required formControlName=\"title\">\r\n </div>\r\n </div>\r\n <div>\r\n <label for=\"file\" class=\"btn btn-label-file rounded-pill\">\r\n <input type=\"file\" id=\"file\" (change)=\"handleFileInput($event)\" />\r\n {{'Choose File' | translate}}</label>\r\n <p *ngIf=\"fileToUpload\">{{ fileToUpload.name}}</p>\r\n </div>\r\n <div class=\"mt-3\">\r\n <button type=\"submit\" class=\"btn btn-primary rounded-pill me-2\" [disabled]=\"fromPlan\">{{'Upload' | translate}}</button>\r\n <button type=\"button\" (click)=\"onCancelAudioUpload()\" class=\"btn btn-outline-primary rounded-pill me-2\">\r\n {{'Cancel' | translate}}</button>\r\n </div>\r\n </form>\r\n </div>\r\n <div class=\"col-7\" *ngIf=\"!isAddingAudio\">\r\n <div class=\"choose-audio-div\" *ngIf=\"audiosForSpace\">\r\n <div ngbDropdown class=\"row d-inline-block dropdown\">\r\n <div>\r\n <button type=\"button\" class=\"btn btn-label-file rounded-pill\" id=\"dropdownBasic1\"\r\n ngbDropdownToggle>{{chosenAudio ?\r\n chosenAudio.title : ('choose-audio' | translate) }}</button>\r\n <div ngbDropdownMenu aria-labelledby=\"dropdownBasic1\">\r\n <button type=\"button\" ngbDropdownItem *ngFor=\"let audio of audiosForSpace\" \r\n (click)=\"onChooseAudio(audio)\">{{ audio.title }}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <p>{{'or' | translate}}</p>\r\n <button (click)=\"isAddingAudio=true\" class=\"btn btn-primary rounded-pill me-2\"> {{'add-audio' | translate}}</button>\r\n </div>\r\n <div class=\"row mb-3 mt-3\">\r\n <div class=\"col\">\r\n <button type=\"button\" class=\"btn btn-outline-primary rounded-pill me-2\" (click)=\"togglePlan()\">{{'Choose scan points on plan' |\r\n translate}}</button>\r\n </div>\r\n </div>\r\n <div *ngIf=\"chosenAudio\">\r\n <p>{{ chosenScansOnPlan.length }} {{'scans-chosen-audio' | translate}}</p>\r\n </div>\r\n\r\n <div class=\"mt-3\">\r\n <button class=\"btn btn-primary rounded-pill me-2\" [disabled]=\"fromPlan\" (click)=\"onSubmit()\">{{'Save' | translate}}</button>\r\n <button (click)=\"onCancel()\" class=\"btn btn-outline-primary rounded-pill me-2\">\r\n {{'Cancel' | translate}}</button>\r\n </div>\r\n </div>\r\n <div class=\"edit-plan\" *ngIf=\"fromPlan\">\r\n <lib-sweep-plan-selection style=\"width: 100%;\" [navIDsZoneEdit]=\"chosenScansOnPlan\" [spaceID]=\"spaceID\"\r\n (sweepsSelected)=\"onSelectedSweepsFromPlan($event)\"></lib-sweep-plan-selection>\r\n </div>\r\n</div>\r\n", styles: [".choose-audio-div{display:flex;align-items:center}.choose-audio-div button{margin-bottom:0}.choose-audio-div p{margin-bottom:0;margin-left:5px;margin-right:5px}\n"] }]
151
+ }], ctorParameters: function () { return [{ type: i1.FormBuilder }, { type: i2.ZoneService }, { type: i2.LayerService }, { type: i2.BaseUserService }, { type: i2.NavigationService }, { type: i2.CommentService }, { type: i3.TranslateService }]; }, propDecorators: { spaceID: [{
152
+ type: Input
153
+ }], updatedZone: [{
154
+ type: Output
155
+ }], defaultZone: [{
156
+ type: Input
157
+ }], zones: [{
158
+ type: Input
159
+ }], currentAudioZone: [{
160
+ type: Input
161
+ }] } });
162
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLWF1ZGlvLXpvbmUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNtYXJ0ZXJwbGFuLWxvY2F0aW9ucy9zcmMvbGliL2NvbXBvbmVudHMvem9uZXMvYWRkLWF1ZGlvLXpvbmUvYWRkLWF1ZGlvLXpvbmUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNtYXJ0ZXJwbGFuLWxvY2F0aW9ucy9zcmMvbGliL2NvbXBvbmVudHMvem9uZXMvYWRkLWF1ZGlvLXpvbmUvYWRkLWF1ZGlvLXpvbmUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQTBCLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXBFLE9BQU8sRUFBOEUsV0FBVyxFQUFrRCxNQUFNLG1DQUFtQyxDQUFDOzs7Ozs7OztBQVE1TCxNQUFNLE9BQU8scUJBQXFCO0lBb0M5QixZQUNZLEVBQWUsRUFDZixXQUF3QixFQUN4QixZQUEwQixFQUMxQixXQUE0QixFQUM1QixpQkFBb0MsRUFDcEMsY0FBOEIsRUFDOUIsU0FBMkI7UUFOM0IsT0FBRSxHQUFGLEVBQUUsQ0FBYTtRQUNmLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLGdCQUFXLEdBQVgsV0FBVyxDQUFpQjtRQUM1QixzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBQ3BDLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QixjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQXZDN0IsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBTWhELGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBRXBCLGFB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IElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtR3JvdXAsIEZvcm1CdWlsZGVyLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XHJcbmltcG9ydCB7IFpvbmVTZXJ2aWNlLCBMYXllclNlcnZpY2UsIEJhc2VVc2VyU2VydmljZSwgTmF2aWdhdGlvblNlcnZpY2UsIExheWVyLCBab25lLCBDb21tZW50VHlwZSwgQ29tbWVudFNlcnZpY2UsIENvbW1lbnQsIGZpbHRlclVuaXF1ZUFycmF5QnlJRCB9IGZyb20gJ0BzbWFydGVycGxhbi9uZ3gtc21hcnRlcnBsYW4tY29yZSc7XHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2xpYi1hZGQtYXVkaW8tem9uZScsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vYWRkLWF1ZGlvLXpvbmUuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vYWRkLWF1ZGlvLXpvbmUuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQWRkQXVkaW9ab25lQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgICBASW5wdXQoKSBzcGFjZUlEOiBzdHJpbmc7XHJcblxyXG4gICAgQE91dHB1dCgpIHVwZGF0ZWRab25lID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblxyXG4gICAgQElucHV0KCkgZGVmYXVsdFpvbmU6IFpvbmU7XHJcblxyXG4gICAgQElucHV0KCkgem9uZXM6IFpvbmVbXTtcclxuXHJcbiAgICBpc1N1Ym1pdHRlZCA9IGZhbHNlO1xyXG5cclxuICAgIGZyb21QbGFuOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgY2hvc2VuU2NhbnNPblBsYW46IHN0cmluZ1tdID0gW107XHJcblxyXG4gICAgY3VycmVudE9yZ0lkOiBzdHJpbmc7XHJcblxyXG4gICAgYXVkaW9MYXllcjogTGF5ZXI7XHJcblxyXG4gICAgY29tbWVudEZvcm06IEZvcm1Hcm91cDtcclxuXHJcbiAgICBmaWxlVG9VcGxvYWQ6IEZpbGU7XHJcblxyXG4gICAgYXVkaW9zRm9yU3BhY2U6IENvbW1lbnRbXTtcclxuXHJcbiAgICBpc0FkZGluZ0F1ZGlvID0gZmFsc2U7XHJcblxyXG4gICAgY2hvc2VuQXVkaW86IENvbW1lbnQ7XHJcblxyXG4gICAgYXVkaW9ab25lczogWm9uZVtdO1xyXG5cclxuICAgIEBJbnB1dCgpIGN1cnJlbnRBdWRpb1pvbmU6IFpvbmU7XHJcblxyXG4gICAgc2NhbnNNb2RpZmllZCA9IGZhbHNlO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyLFxyXG4gICAgICAgIHByaXZhdGUgem9uZVNlcnZpY2U6IFpvbmVTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgbGF5ZXJTZXJ2aWNlOiBMYXllclNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSB1c2VyU2VydmljZTogQmFzZVVzZXJTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgbmF2aWdhdGlvblNlcnZpY2U6IE5hdmlnYXRpb25TZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgY29tbWVudFNlcnZpY2U6IENvbW1lbnRTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxyXG4gICAgKSB7IH1cclxuXHJcbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy5jdXJyZW50QXVkaW9ab25lKSB7XHJcbiAgICAgICAgICAgIC8vIHdlIGFyZSBlZGl0aW5nIHpvbmVcclxuICAgICAgICAgICAgdGhpcy5jaG9zZW5BdWRpbyA9IHRoaXMuY3VycmVudEF1ZGlvWm9uZS5hdWRpbztcclxuICAgICAgICAgICAgdGhpcy5jaG9zZW5TY2Fuc09uUGxhbiA9IHRoaXMuY3VycmVudEF1ZGlvWm9uZS5zd2VlcElEcztcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5zZXR1cCgpO1xyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIHNldHVwKCkge1xyXG4gICAgICAgIGNvbnN0IG1pc3Npb24gPSB0aGlzLnVzZXJTZXJ2aWNlLmN1cnJlbnRNaXNzaW9uKHRoaXMuc3BhY2VJRCk7XHJcbiAgICAgICAgdGhpcy5jdXJyZW50T3JnSWQgPSBtaXNzaW9uLm9yZ2FuaXNhdGlvbklEO1xyXG4gICAgICAgIGxldCBsYXllcnMgPSBhd2FpdCB0aGlzLmxheWVyU2VydmljZS5nZXRMYXllckZvck9yZ2FuaXNhdGlvbihcclxuICAgICAgICAgICAgdGhpcy5jdXJyZW50T3JnSWQsXHJcbiAgICAgICAgKTtcclxuICAgICAgICB0aGlzLmF1ZGlvTGF5ZXIgPSBsYXllcnMuZmluZCgobGF5ZXIpID0+IGxheWVyLm5hbWUgPT09IFwiQVVESU9cIik7XHJcbiAgICAgICAgaWYgKCF0aGlzLmF1ZGlvTGF5ZXIpIHtcclxuICAgICAgICAgICAgLy8gZmlydHMgdGltZSBjcmVhdGluZyBBdWRpbyBab25lIFxyXG4gICAgICAgICAgICB0aGlzLmF1ZGlvTGF5ZXIgPSBhd2FpdCB0aGlzLmxheWVyU2VydmljZS5jcmVhdGVMYXllckZvck9yZ2FuaXNhdGlvbihcIkFVRElPXCIsIHRoaXMuY3VycmVudE9yZ0lkKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5hdWRpb1pvbmVzID0gdGhpcy56b25lcy5maWx0ZXIoKHpvbmUpID0+IHpvbmUubGF5ZXJJRCA9PT0gdGhpcy5hdWRpb0xheWVyLmlkKTtcclxuICAgICAgICBhd2FpdCB0aGlzLmdldEF1ZGlvcygpO1xyXG4gICAgICAgIHRoaXMuY29tbWVudEZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcclxuICAgICAgICAgICAgdGl0bGU6IFtudWxsLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcclxuICAgICAgICAgICAgc3BhY2VJRDogdGhpcy5zcGFjZUlELFxyXG4gICAgICAgICAgICB0eXBlOiBDb21tZW50VHlwZS5BVURJTyxcclxuICAgICAgICAgICAgb3duZXJJRDogbWlzc2lvbi5pZCxcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBvblN1Ym1pdCgpIHtcclxuICAgICAgICB0aGlzLmlzU3VibWl0dGVkID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuY3VycmVudEF1ZGlvWm9uZSkge1xyXG4gICAgICAgICAgICBhd2FpdCB0aGlzLnpvbmVTZXJ2aWNlLnVwZGF0ZVpvbmUoe1xyXG4gICAgICAgICAgICAgICAgaWQ6IHRoaXMuY3VycmVudEF1ZGlvWm9uZS5pZCxcclxuICAgICAgICAgICAgICAgIHN3ZWVwSURzOiB0aGlzLmNob3NlblNjYW5zT25QbGFuLFxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgdGhpcy51cGRhdGVkWm9uZS5lbWl0KHRoaXMuY3VycmVudEF1ZGlvWm9uZS5pZCk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgY29uc3Qgem9uZUlucHV0ID0ge1xyXG4gICAgICAgICAgICAgICAgbmFtZTogdGhpcy5jaG9zZW5BdWRpby50aXRsZSxcclxuICAgICAgICAgICAgICAgIHN1cmZhY2U6IDAsXHJcbiAgICAgICAgICAgICAgICBzcGFjZUlEOiB0aGlzLnNwYWNlSUQsXHJcbiAgICAgICAgICAgICAgICBsYXllcklEOiB0aGlzLmF1ZGlvTGF5ZXIuaWQsXHJcbiAgICAgICAgICAgICAgICBwYXJlbnRJRDogdGhpcy5kZWZhdWx0Wm9uZS5pZCxcclxuICAgICAgICAgICAgICAgIGlzTXVzZXVtVmlzaXRab25lOiBmYWxzZSxcclxuICAgICAgICAgICAgICAgIGlzTXVsdGlwbGVGbG9vclpvbmU6IHRydWUsXHJcbiAgICAgICAgICAgICAgICBhdWRpb0lEOiB0aGlzLmNob3NlbkF1ZGlvLmlkLFxyXG4gICAgICAgICAgICB9IGFzIFpvbmU7XHJcblxyXG4gICAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5zZXRTd2VlcHNBbmROb2RlRm9yWm9uZUlucHV0KHpvbmVJbnB1dCk7XHJcbiAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLnpvbmVTZXJ2aWNlXHJcbiAgICAgICAgICAgICAgICAgICAgLmNyZWF0ZSh6b25lSW5wdXQpXHJcbiAgICAgICAgICAgICAgICAgICAgLnRoZW4oem9uZUNyZWF0ZWQgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZWRab25lLmVtaXQoem9uZUNyZWF0ZWQuaWQpO1xyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihlcnJvcik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIHNldFN3ZWVwc0FuZE5vZGVGb3Jab25lSW5wdXQoem9uZUlucHV0OiBab25lKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuY2hvc2VuU2NhbnNPblBsYW4ubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICB6b25lSW5wdXQuc3dlZXBJRHMgPSB0aGlzLmNob3NlblNjYW5zT25QbGFuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoem9uZUlucHV0LnN3ZWVwSURzICYmIHpvbmVJbnB1dC5zd2VlcElEcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IG5hdkZvclN3ZWVwID1cclxuICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMubmF2aWdhdGlvblNlcnZpY2UuZ2V0TmF2aWdhdGlvbnNGb3JNYXR0ZXJwb3J0SURGb3JTcGFjZShcclxuICAgICAgICAgICAgICAgICAgICB6b25lSW5wdXQuc3dlZXBJRHNbMF0sXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zcGFjZUlELFxyXG4gICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgem9uZUlucHV0Lm5vZGVJRHMgPSBbbmF2Rm9yU3dlZXBbMF0ubm9kZUlEXTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgb25DYW5jZWwoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuc2NhbnNNb2RpZmllZCkge1xyXG4gICAgICAgICAgICBjb25zdCBtZXNzYWdlID0gdGhpcy50cmFuc2xhdGUuaW5zdGFudChcImNvbmZpcm0uY2FuY2VsRWRpdFpvbmVcIik7XHJcbiAgICAgICAgICAgIGlmICghd2luZG93LmNvbmZpcm0obWVzc2FnZSkpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmNvbW1lbnRGb3JtID0gbnVsbDtcclxuICAgICAgICB0aGlzLmNob3NlblNjYW5zT25QbGFuID0gW107XHJcbiAgICAgICAgdGhpcy51cGRhdGVkWm9uZS5lbWl0KGZhbHNlKTtcclxuICAgIH1cclxuXHJcbiAgICB0b2dnbGVQbGFuKCkge1xyXG4gICAgICAgIHRoaXMuZnJvbVBsYW4gPSB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIG9uU2VsZWN0ZWRTd2VlcHNGcm9tUGxhbihzd2VlcHM6IHN0cmluZ1tdKSB7XHJcbiAgICAgICAgaWYgKHN3ZWVwcykge1xyXG4gICAgICAgICAgICB0aGlzLmNob3NlblNjYW5zT25QbGFuID0gc3dlZXBzO1xyXG4gICAgICAgICAgICB0aGlzLnNjYW5zTW9kaWZpZWQgPSB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmZyb21QbGFuID0gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgaGFuZGxlRmlsZUlucHV0KGV2ZW50OiBFdmVudCkge1xyXG4gICAgICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50O1xyXG4gICAgICAgIHRoaXMuZmlsZVRvVXBsb2FkID0gKHRhcmdldC5maWxlcyBhcyBGaWxlTGlzdClbMF07XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgb25VcGxvYWRBdWRpbygpIHtcclxuICAgICAgICBjb25zdCBjb21tZW50SW5wdXQgPSB0aGlzLmNvbW1lbnRGb3JtLnZhbHVlO1xyXG4gICAgICAgIGNvbnN0IG5ld0F1ZGlvID0gYXdhaXQgdGhpcy5jb21tZW50U2VydmljZS5jcmVhdGVDb21tZW50V2l0aEZpbGUoXHJcbiAgICAgICAgICAgIGNvbW1lbnRJbnB1dCxcclxuICAgICAgICAgICAgdGhpcy5maWxlVG9VcGxvYWQsXHJcbiAgICAgICAgKTtcclxuICAgICAgICB0aGlzLmF1ZGlvc0ZvclNwYWNlLnB1c2gobmV3QXVkaW8pO1xyXG4gICAgICAgIHRoaXMuaXNBZGRpbmdBdWRpbyA9IGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIGdldEF1ZGlvcygpIHtcclxuICAgICAgICBjb25zdCBhdHRhY2htZW50cyA9IGF3YWl0IHRoaXMuY29tbWVudFNlcnZpY2UuZ2V0Q29tbWVudHNCeVNwYWNlSUQodGhpcy5zcGFjZUlEKTtcclxuICAgICAgICBpZiAoYXR0YWNobWVudHMpIHtcclxuICAgICAgICAgICAgdGhpcy5hdWRpb3NGb3JTcGFjZSA9IGF0dGFjaG1lbnRzLmZpbHRlcigoYXR0YWNobWVudCkgPT4gYXR0YWNobWVudC50eXBlID09PSBDb21tZW50VHlwZS5BVURJTyk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgIH1cclxuXHJcbiAgICBvbkNhbmNlbEF1ZGlvVXBsb2FkKCkge1xyXG4gICAgICAgIHRoaXMuY29tbWVudEZvcm0gPSBudWxsO1xyXG4gICAgICAgIHRoaXMuaXNBZGRpbmdBdWRpbyA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuZmlsZVRvVXBsb2FkID0gbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICBvbkNob29zZUF1ZGlvKGF1ZGlvOiBDb21tZW50KSB7XHJcbiAgICAgICAgdGhpcy5jaG9zZW5BdWRpbyA9IGF1ZGlvO1xyXG4gICAgICAgIHRoaXMuY3VycmVudEF1ZGlvWm9uZSA9IHRoaXMuYXVkaW9ab25lcy5maW5kKCh6b25lKSA9PiB6b25lLmF1ZGlvSUQgPT09IHRoaXMuY2hvc2VuQXVkaW8uaWQpO1xyXG4gICAgICAgIGlmICh0aGlzLmN1cnJlbnRBdWRpb1pvbmUpIHtcclxuICAgICAgICAgICAgdGhpcy5jaG9zZW5TY2Fuc09uUGxhbiA9IHRoaXMuY3VycmVudEF1ZGlvWm9uZS5zd2VlcElEcztcclxuICAgICAgICAgICAgY29uc29sZS5sb2coXCJ1cGQgdHJhY2tcIiwgdGhpcy5jaG9zZW5TY2Fuc09uUGxhbi5sZW5ndGgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cIm1haW4tY29udGFpbmVyXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTYgY29sLW1kLTYgY29sLXNtLTdcIiAqbmdJZj1cImlzQWRkaW5nQXVkaW9cIj5cclxuICAgICAgICA8Zm9ybSAobmdTdWJtaXQpPVwib25VcGxvYWRBdWRpbygpXCIgW2Zvcm1Hcm91cF09XCJjb21tZW50Rm9ybVwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTMgcm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiY29sLXNtLTIgY29sLWZvcm0tbGFiZWxcIj57eydOYW1lJyB8IHRyYW5zbGF0ZX19ICo8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtc20tMTBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiByZXF1aXJlZCBmb3JtQ29udHJvbE5hbWU9XCJ0aXRsZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJmaWxlXCIgY2xhc3M9XCJidG4gYnRuLWxhYmVsLWZpbGUgcm91bmRlZC1waWxsXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwiZmlsZVwiIGlkPVwiZmlsZVwiIChjaGFuZ2UpPVwiaGFuZGxlRmlsZUlucHV0KCRldmVudClcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7eydDaG9vc2UgRmlsZScgfCB0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgPHAgKm5nSWY9XCJmaWxlVG9VcGxvYWRcIj57eyBmaWxlVG9VcGxvYWQubmFtZX19PC9wPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXQtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cInN1Ym1pdFwiIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IHJvdW5kZWQtcGlsbCBtZS0yXCIgW2Rpc2FibGVkXT1cImZyb21QbGFuXCI+e3snVXBsb2FkJyB8IHRyYW5zbGF0ZX19PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cIm9uQ2FuY2VsQXVkaW9VcGxvYWQoKVwiIGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lLXByaW1hcnkgcm91bmRlZC1waWxsIG1lLTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3snQ2FuY2VsJyB8IHRyYW5zbGF0ZX19PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Zvcm0+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJjb2wtN1wiICpuZ0lmPVwiIWlzQWRkaW5nQXVkaW9cIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2hvb3NlLWF1ZGlvLWRpdlwiICpuZ0lmPVwiYXVkaW9zRm9yU3BhY2VcIj5cclxuICAgICAgICAgICAgPGRpdiBuZ2JEcm9wZG93biBjbGFzcz1cInJvdyBkLWlubGluZS1ibG9jayBkcm9wZG93blwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLWxhYmVsLWZpbGUgcm91bmRlZC1waWxsXCIgaWQ9XCJkcm9wZG93bkJhc2ljMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZ2JEcm9wZG93blRvZ2dsZT57e2Nob3NlbkF1ZGlvID9cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaG9zZW5BdWRpby50aXRsZSA6ICgnY2hvb3NlLWF1ZGlvJyB8IHRyYW5zbGF0ZSkgfX08L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBuZ2JEcm9wZG93bk1lbnUgYXJpYS1sYWJlbGxlZGJ5PVwiZHJvcGRvd25CYXNpYzFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIG5nYkRyb3Bkb3duSXRlbSAqbmdGb3I9XCJsZXQgYXVkaW8gb2YgYXVkaW9zRm9yU3BhY2VcIiBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25DaG9vc2VBdWRpbyhhdWRpbylcIj57eyBhdWRpby50aXRsZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8cD57eydvcicgfCB0cmFuc2xhdGV9fTwvcD5cclxuICAgICAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwiaXNBZGRpbmdBdWRpbz10cnVlXCIgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgcm91bmRlZC1waWxsIG1lLTJcIj4ge3snYWRkLWF1ZGlvJyB8IHRyYW5zbGF0ZX19PC9idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBtYi0zIG10LTNcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbFwiPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLW91dGxpbmUtcHJpbWFyeSByb3VuZGVkLXBpbGwgbWUtMlwiIChjbGljayk9XCJ0b2dnbGVQbGFuKClcIj57eydDaG9vc2Ugc2NhbiBwb2ludHMgb24gcGxhbicgfFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2xhdGV9fTwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2ICpuZ0lmPVwiY2hvc2VuQXVkaW9cIj5cclxuICAgICAgICAgICAgPHA+e3sgY2hvc2VuU2NhbnNPblBsYW4ubGVuZ3RoIH19IHt7J3NjYW5zLWNob3Nlbi1hdWRpbycgfCB0cmFuc2xhdGV9fTwvcD5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm10LTNcIj5cclxuICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSByb3VuZGVkLXBpbGwgbWUtMlwiIFtkaXNhYmxlZF09XCJmcm9tUGxhblwiIChjbGljayk9XCJvblN1Ym1pdCgpXCI+e3snU2F2ZScgfCB0cmFuc2xhdGV9fTwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8YnV0dG9uIChjbGljayk9XCJvbkNhbmNlbCgpXCIgY2xhc3M9XCJidG4gYnRuLW91dGxpbmUtcHJpbWFyeSByb3VuZGVkLXBpbGwgbWUtMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgIHt7J0NhbmNlbCcgfCB0cmFuc2xhdGV9fTwvYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZWRpdC1wbGFuXCIgKm5nSWY9XCJmcm9tUGxhblwiPlxyXG4gICAgICAgIDxsaWItc3dlZXAtcGxhbi1zZWxlY3Rpb24gc3R5bGU9XCJ3aWR0aDogMTAwJTtcIiBbbmF2SURzWm9uZUVkaXRdPVwiY2hvc2VuU2NhbnNPblBsYW5cIiBbc3BhY2VJRF09XCJzcGFjZUlEXCJcclxuICAgICAgICAoc3dlZXBzU2VsZWN0ZWQpPVwib25TZWxlY3RlZFN3ZWVwc0Zyb21QbGFuKCRldmVudClcIj48L2xpYi1zd2VlcC1wbGFuLXNlbGVjdGlvbj5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19