@dsivd/prestations-ng 17.0.0-beta.6 → 17.0.0-beta.7

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.
Files changed (30) hide show
  1. package/CHANGELOG.md +5 -0
  2. package/ESLINT_MIGRATION_GUIDE.md +2 -1
  3. package/dsivd-prestations-ng-17.0.0-beta.7.tgz +0 -0
  4. package/esm2022/foehn-address/foehn-input-foreign-street.component.mjs +3 -4
  5. package/esm2022/foehn-agenda/foehn-agenda-timeslot-panel/foehn-agenda-timeslot-panel.component.mjs +3 -3
  6. package/esm2022/foehn-checkables/foehn-checkable-group.component.mjs +33 -31
  7. package/esm2022/foehn-confirm-modal/foehn-confirm-modal.component.mjs +3 -3
  8. package/esm2022/foehn-date-picker/foehn-date-picker.component.mjs +3 -3
  9. package/esm2022/foehn-dropdown-menu/foehn-dropdown-menu.component.mjs +3 -3
  10. package/esm2022/foehn-list/foehn-list.component.mjs +3 -3
  11. package/esm2022/foehn-menu-prestation/foehn-list-summary/foehn-list-summary.component.mjs +3 -3
  12. package/esm2022/foehn-modal/foehn-modal.component.mjs +3 -3
  13. package/esm2022/foehn-multiselect-autocomplete/foehn-multiselect-autocomplete.component.mjs +3 -3
  14. package/esm2022/foehn-page/foehn-page-expiration-timer/interval.helper.mjs +2 -2
  15. package/esm2022/foehn-page/foehn-page.component.mjs +3 -3
  16. package/esm2022/foehn-table/foehn-table.component.mjs +7 -3
  17. package/esm2022/foehn-upload/foehn-bo-multi-upload/bo-multi-upload.service.mjs +2 -2
  18. package/esm2022/foehn-upload/foehn-multi-upload/multi-upload.service.mjs +2 -2
  19. package/esm2022/foehn-upload/uploader.helper.mjs +5 -13
  20. package/esm2022/gesdem-action-recovery/gesdem-action-recovery-registration/gesdem-action-recovery-registration.component.mjs +3 -3
  21. package/esm2022/sdk-dictionary/default-dictionary.mjs +2 -1
  22. package/esm2022/sdk-drafts/drafts-container.component.mjs +3 -3
  23. package/esm2022/sdk-support-alert/support-alert-container.component.mjs +3 -3
  24. package/esm2022/sdk-support-alert/support-alert.component.mjs +10 -12
  25. package/fesm2022/dsivd-prestations-ng.mjs +81 -84
  26. package/fesm2022/dsivd-prestations-ng.mjs.map +1 -1
  27. package/foehn-checkables/foehn-checkable-group.component.d.ts +2 -1
  28. package/foehn-table/foehn-table.component.d.ts +3 -1
  29. package/package.json +1 -1
  30. package/dsivd-prestations-ng-17.0.0-beta.6.tgz +0 -0
@@ -95,11 +95,11 @@ export class FoehnListComponent {
95
95
  this.filteredList = this._list.slice(start, start + this.itemsPerPage);
96
96
  }
97
97
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: FoehnListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
98
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.3", type: FoehnListComponent, selector: "foehn-list", inputs: { itemsPerPage: "itemsPerPage", id: "id", previousLabel: "previousLabel", nextLabel: "nextLabel", fixedPageCount: "fixedPageCount", list: "list", trackByFn: "trackByFn" }, outputs: { pageChange: "pageChange" }, queries: [{ propertyName: "templateVariable", first: true, predicate: TemplateRef, descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"row\" [id]=\"id\">\n <div class=\"col-lg-12 col-md-12 col-sm-12 col-xs-12\">\n <ul class=\"list-unstyled\">\n <li\n *ngFor=\"\n let item of filteredList;\n let index = index;\n trackBy: trackByFn\n \"\n >\n <ng-template\n [ngTemplateOutlet]=\"templateVariable\"\n [ngTemplateOutletContext]=\"{ item: item, index: index }\"\n ></ng-template>\n </li>\n </ul>\n\n <div class=\"row d-flex justify-content-between p-1\">\n <div class=\"col-lg-3 col-md-3 col-sm-6 col-xs-6\">\n <nav\n class=\"vd-pagination\"\n aria-label=\"Pagination\"\n *ngIf=\"hasPreviousPage()\"\n >\n <ul class=\"vd-pagination__list\">\n <li\n class=\"vd-pagination__item vd-pagination__item--previous\"\n >\n <button\n class=\"btn-link vd-pagination__link btn-no-extra vd-pagination__link-reset\"\n (click)=\"previousPage()\"\n >\n <span class=\"vd-pagination__title\">\n <foehn-icon-chevron-left></foehn-icon-chevron-left>\n {{ previousLabel }}\n </span>\n <span class=\"visually-hidden\">:</span>\n <span class=\"vd-pagination__label\">\n {{ currentPage - 1 }} sur {{ pagesCount() }}\n </span>\n </button>\n </li>\n </ul>\n </nav>\n </div>\n\n <div class=\"col-lg-3 col-md-3 col-sm-6 col-xs-6\">\n <nav\n class=\"vd-pagination\"\n aria-label=\"Pagination\"\n *ngIf=\"hasNextPage()\"\n >\n <ul class=\"vd-pagination__list\">\n <li\n class=\"vd-pagination__item vd-pagination__item--next\"\n >\n <button\n class=\"btn-link vd-pagination__link btn-no-extra vd-pagination__link-reset\"\n (click)=\"nextPage()\"\n >\n <span class=\"vd-pagination__title\">\n {{ nextLabel }}\n <foehn-icon-chevron-right></foehn-icon-chevron-right>\n </span>\n <span class=\"visually-hidden\">:</span>\n <span class=\"vd-pagination__label\">\n {{ currentPage + 1 }} sur {{ pagesCount() }}\n </span>\n </button>\n </li>\n </ul>\n </nav>\n </div>\n </div>\n </div>\n</div>\n", styles: [".btn-no-extra{padding:0;border:none;font-weight:400;text-decoration-line:none}.vd-pagination__link-reset{background:none;border:none;font-weight:inherit;text-decoration-line:none;text-align:inherit;cursor:pointer}.vd-pagination__link-reset:focus{background-color:var(--vd-focus)}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.FoehnIconChevronLeftComponent, selector: "foehn-icon-chevron-left" }, { kind: "component", type: i3.FoehnIconChevronRightComponent, selector: "foehn-icon-chevron-right" }] }); }
98
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.3", type: FoehnListComponent, selector: "foehn-list", inputs: { itemsPerPage: "itemsPerPage", id: "id", previousLabel: "previousLabel", nextLabel: "nextLabel", fixedPageCount: "fixedPageCount", list: "list", trackByFn: "trackByFn" }, outputs: { pageChange: "pageChange" }, queries: [{ propertyName: "templateVariable", first: true, predicate: TemplateRef, descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"row\" [id]=\"id\">\n <div class=\"col-lg-12 col-md-12 col-sm-12 col-xs-12\">\n <ul class=\"list-unstyled\">\n <li\n *ngFor=\"\n let item of filteredList;\n let index = index;\n trackBy: trackByFn\n \"\n >\n <ng-template\n [ngTemplateOutlet]=\"templateVariable\"\n [ngTemplateOutletContext]=\"{ item: item, index: index }\"\n ></ng-template>\n </li>\n </ul>\n\n <div class=\"row d-flex justify-content-between p-1\">\n <div class=\"col-lg-3 col-md-3 col-sm-6 col-xs-6\">\n <nav\n class=\"vd-pagination\"\n aria-label=\"Pagination\"\n *ngIf=\"hasPreviousPage()\"\n >\n <ul class=\"vd-pagination__list\">\n <li\n class=\"vd-pagination__item vd-pagination__item--previous\"\n >\n <button\n type=\"button\"\n class=\"btn-link vd-pagination__link btn-no-extra vd-pagination__link-reset\"\n (click)=\"previousPage()\"\n >\n <span class=\"vd-pagination__title\">\n <foehn-icon-chevron-left></foehn-icon-chevron-left>\n {{ previousLabel }}\n </span>\n <span class=\"visually-hidden\">:</span>\n <span class=\"vd-pagination__label\">\n {{ currentPage - 1 }} sur {{ pagesCount() }}\n </span>\n </button>\n </li>\n </ul>\n </nav>\n </div>\n\n <div class=\"col-lg-3 col-md-3 col-sm-6 col-xs-6\">\n <nav\n class=\"vd-pagination\"\n aria-label=\"Pagination\"\n *ngIf=\"hasNextPage()\"\n >\n <ul class=\"vd-pagination__list\">\n <li\n class=\"vd-pagination__item vd-pagination__item--next\"\n >\n <button\n type=\"button\"\n class=\"btn-link vd-pagination__link btn-no-extra vd-pagination__link-reset\"\n (click)=\"nextPage()\"\n >\n <span class=\"vd-pagination__title\">\n {{ nextLabel }}\n <foehn-icon-chevron-right></foehn-icon-chevron-right>\n </span>\n <span class=\"visually-hidden\">:</span>\n <span class=\"vd-pagination__label\">\n {{ currentPage + 1 }} sur {{ pagesCount() }}\n </span>\n </button>\n </li>\n </ul>\n </nav>\n </div>\n </div>\n </div>\n</div>\n", styles: [".btn-no-extra{padding:0;border:none;font-weight:400;text-decoration-line:none}.vd-pagination__link-reset{background:none;border:none;font-weight:inherit;text-decoration-line:none;text-align:inherit;cursor:pointer}.vd-pagination__link-reset:focus{background-color:var(--vd-focus)}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.FoehnIconChevronLeftComponent, selector: "foehn-icon-chevron-left" }, { kind: "component", type: i3.FoehnIconChevronRightComponent, selector: "foehn-icon-chevron-right" }] }); }
99
99
  }
100
100
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: FoehnListComponent, decorators: [{
101
101
  type: Component,
102
- args: [{ selector: 'foehn-list', template: "<div class=\"row\" [id]=\"id\">\n <div class=\"col-lg-12 col-md-12 col-sm-12 col-xs-12\">\n <ul class=\"list-unstyled\">\n <li\n *ngFor=\"\n let item of filteredList;\n let index = index;\n trackBy: trackByFn\n \"\n >\n <ng-template\n [ngTemplateOutlet]=\"templateVariable\"\n [ngTemplateOutletContext]=\"{ item: item, index: index }\"\n ></ng-template>\n </li>\n </ul>\n\n <div class=\"row d-flex justify-content-between p-1\">\n <div class=\"col-lg-3 col-md-3 col-sm-6 col-xs-6\">\n <nav\n class=\"vd-pagination\"\n aria-label=\"Pagination\"\n *ngIf=\"hasPreviousPage()\"\n >\n <ul class=\"vd-pagination__list\">\n <li\n class=\"vd-pagination__item vd-pagination__item--previous\"\n >\n <button\n class=\"btn-link vd-pagination__link btn-no-extra vd-pagination__link-reset\"\n (click)=\"previousPage()\"\n >\n <span class=\"vd-pagination__title\">\n <foehn-icon-chevron-left></foehn-icon-chevron-left>\n {{ previousLabel }}\n </span>\n <span class=\"visually-hidden\">:</span>\n <span class=\"vd-pagination__label\">\n {{ currentPage - 1 }} sur {{ pagesCount() }}\n </span>\n </button>\n </li>\n </ul>\n </nav>\n </div>\n\n <div class=\"col-lg-3 col-md-3 col-sm-6 col-xs-6\">\n <nav\n class=\"vd-pagination\"\n aria-label=\"Pagination\"\n *ngIf=\"hasNextPage()\"\n >\n <ul class=\"vd-pagination__list\">\n <li\n class=\"vd-pagination__item vd-pagination__item--next\"\n >\n <button\n class=\"btn-link vd-pagination__link btn-no-extra vd-pagination__link-reset\"\n (click)=\"nextPage()\"\n >\n <span class=\"vd-pagination__title\">\n {{ nextLabel }}\n <foehn-icon-chevron-right></foehn-icon-chevron-right>\n </span>\n <span class=\"visually-hidden\">:</span>\n <span class=\"vd-pagination__label\">\n {{ currentPage + 1 }} sur {{ pagesCount() }}\n </span>\n </button>\n </li>\n </ul>\n </nav>\n </div>\n </div>\n </div>\n</div>\n", styles: [".btn-no-extra{padding:0;border:none;font-weight:400;text-decoration-line:none}.vd-pagination__link-reset{background:none;border:none;font-weight:inherit;text-decoration-line:none;text-align:inherit;cursor:pointer}.vd-pagination__link-reset:focus{background-color:var(--vd-focus)}\n"] }]
102
+ args: [{ selector: 'foehn-list', template: "<div class=\"row\" [id]=\"id\">\n <div class=\"col-lg-12 col-md-12 col-sm-12 col-xs-12\">\n <ul class=\"list-unstyled\">\n <li\n *ngFor=\"\n let item of filteredList;\n let index = index;\n trackBy: trackByFn\n \"\n >\n <ng-template\n [ngTemplateOutlet]=\"templateVariable\"\n [ngTemplateOutletContext]=\"{ item: item, index: index }\"\n ></ng-template>\n </li>\n </ul>\n\n <div class=\"row d-flex justify-content-between p-1\">\n <div class=\"col-lg-3 col-md-3 col-sm-6 col-xs-6\">\n <nav\n class=\"vd-pagination\"\n aria-label=\"Pagination\"\n *ngIf=\"hasPreviousPage()\"\n >\n <ul class=\"vd-pagination__list\">\n <li\n class=\"vd-pagination__item vd-pagination__item--previous\"\n >\n <button\n type=\"button\"\n class=\"btn-link vd-pagination__link btn-no-extra vd-pagination__link-reset\"\n (click)=\"previousPage()\"\n >\n <span class=\"vd-pagination__title\">\n <foehn-icon-chevron-left></foehn-icon-chevron-left>\n {{ previousLabel }}\n </span>\n <span class=\"visually-hidden\">:</span>\n <span class=\"vd-pagination__label\">\n {{ currentPage - 1 }} sur {{ pagesCount() }}\n </span>\n </button>\n </li>\n </ul>\n </nav>\n </div>\n\n <div class=\"col-lg-3 col-md-3 col-sm-6 col-xs-6\">\n <nav\n class=\"vd-pagination\"\n aria-label=\"Pagination\"\n *ngIf=\"hasNextPage()\"\n >\n <ul class=\"vd-pagination__list\">\n <li\n class=\"vd-pagination__item vd-pagination__item--next\"\n >\n <button\n type=\"button\"\n class=\"btn-link vd-pagination__link btn-no-extra vd-pagination__link-reset\"\n (click)=\"nextPage()\"\n >\n <span class=\"vd-pagination__title\">\n {{ nextLabel }}\n <foehn-icon-chevron-right></foehn-icon-chevron-right>\n </span>\n <span class=\"visually-hidden\">:</span>\n <span class=\"vd-pagination__label\">\n {{ currentPage + 1 }} sur {{ pagesCount() }}\n </span>\n </button>\n </li>\n </ul>\n </nav>\n </div>\n </div>\n </div>\n</div>\n", styles: [".btn-no-extra{padding:0;border:none;font-weight:400;text-decoration-line:none}.vd-pagination__link-reset{background:none;border:none;font-weight:inherit;text-decoration-line:none;text-align:inherit;cursor:pointer}.vd-pagination__link-reset:focus{background-color:var(--vd-focus)}\n"] }]
103
103
  }], propDecorators: {
104
104
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
105
105
  templateVariable: [{
@@ -124,4 +124,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImpor
124
124
  trackByFn: [{
125
125
  type: Input
126
126
  }] } });
127
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9laG4tbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVzdGF0aW9ucy1uZy9zcmMvZm9laG4tbGlzdC9mb2Vobi1saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3Byb2plY3RzL3ByZXN0YXRpb25zLW5nL3NyYy9mb2Vobi1saXN0L2ZvZWhuLWxpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFDVCxZQUFZLEVBQ1osWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBR04sV0FBVyxFQUNkLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7Ozs7QUFHeEQsTUFBTSxlQUFlLEdBQUcsQ0FBQyxNQUFvQixFQUFXLEVBQUUsQ0FDdEQsTUFBTSxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsYUFBYSxFQUFFLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztBQU8vRSxNQUFNLE9BQU8sa0JBQWtCO0lBTC9CO1FBV0ksaUJBQVksR0FBRyxFQUFFLENBQUM7UUFHbEIsT0FBRSxHQUFHLFlBQVksQ0FBQztRQUdsQixrQkFBYSxHQUFHLFdBQVcsQ0FBQztRQUc1QixjQUFTLEdBQUcsU0FBUyxDQUFDO1FBTXRCLGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBbUIsQ0FBQztRQUVqRCxnQkFBVyxHQUFHLENBQUMsQ0FBQztRQUVoQiw4REFBOEQ7UUFDOUQsaUJBQVksR0FBVSxFQUFFLENBQUM7UUFhekIsY0FBUyxHQUFHLENBQUMsS0FBYSxFQUFFLElBQVMsRUFBVSxFQUFFLENBQUMsS0FBSyxDQUFDO0tBOEYzRDtJQXRHRyxJQUVJLElBQUksQ0FBQyxJQUFXO1FBQ2hCLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO0lBQ3RCLENBQUM7SUFN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QUMsWUFBWSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7WUFDL0IsT0FBTztRQUNYLENBQUM7UUFFRCxNQUFNLGlCQUFpQixHQUNuQixDQUFDLElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLFlBQVksSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQztRQUNwRSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUNyQixJQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQztRQUN6QixDQUFDO1FBQ0QsTUFBTSxLQUFLLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUM7UUFDekQsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsS0FBSyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUMzRSxDQUFDOzhHQXBJUSxrQkFBa0I7a0dBQWxCLGtCQUFrQiwyVEFDYixXQUFXLHFFQ3hCN0IsZ3pHQTRFQTs7MkZEckRhLGtCQUFrQjtrQkFMOUIsU0FBUzsrQkFDSSxZQUFZOztRQU10Qiw4REFBOEQ7UUFDOUQsZ0JBQWdCO3NCQUZmLFlBQVk7dUJBQUMsV0FBVztnQkFLekIsWUFBWTtzQkFEWCxLQUFLO2dCQUlOLEVBQUU7c0JBREQsS0FBSztnQkFJTixhQUFhO3NCQURaLEtBQUs7Z0JBSU4sU0FBUztzQkFEUixLQUFLO2dCQUlOLGNBQWM7c0JBRGIsS0FBSztnQkFJTixVQUFVO3NCQURULE1BQU07Z0JBYUgsSUFBSTtzQkFGUCxLQUFLOztRQU9OLGdHQUFnRztRQUNoRyxTQUFTO3NCQUZSLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENvbXBvbmVudCxcbiAgICBDb250ZW50Q2hpbGQsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIElucHV0LFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPdXRwdXQsXG4gICAgU2ltcGxlQ2hhbmdlLFxuICAgIFNpbXBsZUNoYW5nZXMsXG4gICAgVGVtcGxhdGVSZWZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IE9iamVjdEhlbHBlciB9IGZyb20gJy4uL2hlbHBlcnMvb2JqZWN0LmhlbHBlcic7XG5pbXBvcnQgeyBQYWdlQ2hhbmdlRXZlbnQgfSBmcm9tICcuL3BhZ2UtY2hhbmdlLWV2ZW50JztcblxuY29uc3QgaGFzSW5wdXRDaGFuZ2VkID0gKGNoYW5nZTogU2ltcGxlQ2hhbmdlKTogYm9vbGVhbiA9PlxuICAgIGNoYW5nZSAmJiAhT2JqZWN0SGVscGVyLmlzRXF1YWwoY2hhbmdlLnByZXZpb3VzVmFsdWUsIGNoYW5nZS5jdXJyZW50VmFsdWUpO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2ZvZWhuLWxpc3QnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9mb2Vobi1saXN0LmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9mb2Vobi1saXN0LmNvbXBvbmVudC5jc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBGb2Vobkxpc3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICAgIEBDb250ZW50Q2hpbGQoVGVtcGxhdGVSZWYpXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICB0ZW1wbGF0ZVZhcmlhYmxlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgQElucHV0KClcbiAgICBpdGVtc1BlclBhZ2UgPSAxMDtcblxuICAgIEBJbnB1dCgpXG4gICAgaWQgPSAnZm9laG4tbGlzdCc7XG5cbiAgICBASW5wdXQoKVxuICAgIHByZXZpb3VzTGFiZWwgPSAnUHLDqWPDqWRlbnQnO1xuXG4gICAgQElucHV0KClcbiAgICBuZXh0TGFiZWwgPSAnU3VpdmFudCc7XG5cbiAgICBASW5wdXQoKVxuICAgIGZpeGVkUGFnZUNvdW50OiBudW1iZXI7XG5cbiAgICBAT3V0cHV0KClcbiAgICBwYWdlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxQYWdlQ2hhbmdlRXZlbnQ+KCk7XG5cbiAgICBjdXJyZW50UGFnZSA9IDE7XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIGZpbHRlcmVkTGlzdDogYW55W10gPSBbXTtcblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgcHJpdmF0ZSBfbGlzdDogYW55W107XG5cbiAgICBASW5wdXQoKVxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgc2V0IGxpc3QobGlzdDogYW55W10pIHtcbiAgICAgICAgdGhpcy5fbGlzdCA9IGxpc3Q7XG4gICAgfVxuXG4gICAgQElucHV0KClcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSxAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgICB0cmFja0J5Rm4gPSAoaW5kZXg6IG51bWJlciwgaXRlbTogYW55KTogbnVtYmVyID0+IGluZGV4O1xuXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICBjb25zdCBpdGVtc1BlclBhZ2VDaGFuZ2U6IFNpbXBsZUNoYW5nZSA9IGNoYW5nZXMuaXRlbXNQZXJQYWdlO1xuICAgICAgICBjb25zdCBsaXN0Q2hhbmdlOiBTaW1wbGVDaGFuZ2UgPSBjaGFuZ2VzLmxpc3Q7XG4gICAgICAgIGNvbnN0IGZpeGVkUGFnZUNvdW50Q2hhbmdlOiBTaW1wbGVDaGFuZ2UgPSBjaGFuZ2VzLmZpeGVkUGFnZUNvdW50O1xuXG4gICAgICAgIGlmIChcbiAgICAgICAgICAgICFoYXNJbnB1dENoYW5nZWQoaXRlbXNQZXJQYWdlQ2hhbmdlKSAmJlxuICAgICAgICAgICAgIWhhc0lucHV0Q2hhbmdlZChsaXN0Q2hhbmdlKSAmJlxuICAgICAgICAgICAgIWhhc0lucHV0Q2hhbmdlZChmaXhlZFBhZ2VDb3VudENoYW5nZSlcbiAgICAgICAgKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmJ1aWxkRmlsdGVyZWRMaXN0KCk7XG4gICAgfVxuXG4gICAgcHJldmlvdXNQYWdlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmN1cnJlbnRQYWdlID0gdGhpcy5jdXJyZW50UGFnZSAtIDE7XG4gICAgICAgIHRoaXMuYnVpbGRGaWx0ZXJlZExpc3QoKTtcbiAgICAgICAgdGhpcy5wYWdlQ2hhbmdlLm5leHQoe1xuICAgICAgICAgICAgcHJldmlvdXNQYWdlOiB0aGlzLmN1cnJlbnRQYWdlICsgMSxcbiAgICAgICAgICAgIGN1cnJlbnRQYWdlOiB0aGlzLmN1cnJlbnRQYWdlLFxuICAgICAgICAgICAgcGFnZUNvdW50OiB0aGlzLnBhZ2VzQ291bnQoKVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBoYXNQcmV2aW91c1BhZ2UoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmN1cnJlbnRQYWdlID4gMTtcbiAgICB9XG5cbiAgICBuZXh0UGFnZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jdXJyZW50UGFnZSA9IHRoaXMuY3VycmVudFBhZ2UgKyAxO1xuICAgICAgICB0aGlzLmJ1aWxkRmlsdGVyZWRMaXN0KCk7XG5cbiAgICAgICAgdGhpcy5wYWdlQ2hhbmdlLm5leHQoe1xuICAgICAgICAgICAgcHJldmlvdXNQYWdlOiB0aGlzLmN1cnJlbnRQYWdlIC0gMSxcbiAgICAgICAgICAgIGN1cnJlbnRQYWdlOiB0aGlzLmN1cnJlbnRQYWdlLFxuICAgICAgICAgICAgcGFnZUNvdW50OiB0aGlzLnBhZ2VzQ291bnQoKVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBoYXNOZXh0UGFnZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY3VycmVudFBhZ2UgPCB0aGlzLnBhZ2VzQ291bnQoKTtcbiAgICB9XG5cbiAgICBzaG93UGFnZShwYWdlOiBudW1iZXIsIGVtaXRQYWdlQ2hhbmdlRXZlbnQ6IGJvb2xlYW4gPSBmYWxzZSk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5jdXJyZW50UGFnZSA9PT0gcGFnZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcHJldmlvdXNQYWdlID0gdGhpcy5jdXJyZW50UGFnZTtcbiAgICAgICAgdGhpcy5jdXJyZW50UGFnZSA9IHBhZ2U7XG4gICAgICAgIHRoaXMuYnVpbGRGaWx0ZXJlZExpc3QoKTtcblxuICAgICAgICBpZiAoZW1pdFBhZ2VDaGFuZ2VFdmVudCkge1xuICAgICAgICAgICAgdGhpcy5wYWdlQ2hhbmdlLm5leHQoe1xuICAgICAgICAgICAgICAgIHByZXZpb3VzUGFnZSxcbiAgICAgICAgICAgICAgICBjdXJyZW50UGFnZTogdGhpcy5jdXJyZW50UGFnZSxcbiAgICAgICAgICAgICAgICBwYWdlQ291bnQ6IHRoaXMucGFnZXNDb3VudCgpXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHBhZ2VzQ291bnQoKTogbnVtYmVyIHtcbiAgICAgICAgaWYgKCEhdGhpcy5maXhlZFBhZ2VDb3VudCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZml4ZWRQYWdlQ291bnQ7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5fbGlzdFxuICAgICAgICAgICAgPyBNYXRoLmNlaWwodGhpcy5fbGlzdC5sZW5ndGggLyB0aGlzLml0ZW1zUGVyUGFnZSlcbiAgICAgICAgICAgIDogMDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGJ1aWxkRmlsdGVyZWRMaXN0KCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuX2xpc3QpIHtcbiAgICAgICAgICAgIHRoaXMuZmlsdGVyZWRMaXN0ID0gW107XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoISF0aGlzLmZpeGVkUGFnZUNvdW50KSB7XG4gICAgICAgICAgICB0aGlzLmZpbHRlcmVkTGlzdCA9IHRoaXMuX2xpc3Q7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBjdXJyZW50UGFnZUV4aXN0cyA9XG4gICAgICAgICAgICAodGhpcy5jdXJyZW50UGFnZSAtIDEpICogdGhpcy5pdGVtc1BlclBhZ2UgPD0gdGhpcy5fbGlzdC5sZW5ndGg7XG4gICAgICAgIGlmICghY3VycmVudFBhZ2VFeGlzdHMpIHtcbiAgICAgICAgICAgIHRoaXMuY3VycmVudFBhZ2UgPSAxO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHN0YXJ0ID0gKHRoaXMuY3VycmVudFBhZ2UgLSAxKSAqIHRoaXMuaXRlbXNQZXJQYWdlO1xuICAgICAgICB0aGlzLmZpbHRlcmVkTGlzdCA9IHRoaXMuX2xpc3Quc2xpY2Uoc3RhcnQsIHN0YXJ0ICsgdGhpcy5pdGVtc1BlclBhZ2UpO1xuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJyb3dcIiBbaWRdPVwiaWRcIj5cbiAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTEyIGNvbC1tZC0xMiBjb2wtc20tMTIgY29sLXhzLTEyXCI+XG4gICAgICAgIDx1bCBjbGFzcz1cImxpc3QtdW5zdHlsZWRcIj5cbiAgICAgICAgICAgIDxsaVxuICAgICAgICAgICAgICAgICpuZ0Zvcj1cIlxuICAgICAgICAgICAgICAgICAgICBsZXQgaXRlbSBvZiBmaWx0ZXJlZExpc3Q7XG4gICAgICAgICAgICAgICAgICAgIGxldCBpbmRleCA9IGluZGV4O1xuICAgICAgICAgICAgICAgICAgICB0cmFja0J5OiB0cmFja0J5Rm5cbiAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJ0ZW1wbGF0ZVZhcmlhYmxlXCJcbiAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgaXRlbTogaXRlbSwgaW5kZXg6IGluZGV4IH1cIlxuICAgICAgICAgICAgICAgID48L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgPC9saT5cbiAgICAgICAgPC91bD5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwicm93IGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBwLTFcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctMyBjb2wtbWQtMyBjb2wtc20tNiBjb2wteHMtNlwiPlxuICAgICAgICAgICAgICAgIDxuYXZcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ2ZC1wYWdpbmF0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD1cIlBhZ2luYXRpb25cIlxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImhhc1ByZXZpb3VzUGFnZSgpXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz1cInZkLXBhZ2luYXRpb25fX2xpc3RcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxsaVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidmQtcGFnaW5hdGlvbl9faXRlbSB2ZC1wYWdpbmF0aW9uX19pdGVtLS1wcmV2aW91c1wiXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0bi1saW5rIHZkLXBhZ2luYXRpb25fX2xpbmsgYnRuLW5vLWV4dHJhIHZkLXBhZ2luYXRpb25fX2xpbmstcmVzZXRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwicHJldmlvdXNQYWdlKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2ZC1wYWdpbmF0aW9uX190aXRsZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZvZWhuLWljb24tY2hldnJvbi1sZWZ0PjwvZm9laG4taWNvbi1jaGV2cm9uLWxlZnQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBwcmV2aW91c0xhYmVsIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2aXN1YWxseS1oaWRkZW5cIj46PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInZkLXBhZ2luYXRpb25fX2xhYmVsXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBjdXJyZW50UGFnZSAtIDEgfX0gc3VyIHt7IHBhZ2VzQ291bnQoKSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICA8L3VsPlxuICAgICAgICAgICAgICAgIDwvbmF2PlxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctMyBjb2wtbWQtMyBjb2wtc20tNiBjb2wteHMtNlwiPlxuICAgICAgICAgICAgICAgIDxuYXZcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ2ZC1wYWdpbmF0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD1cIlBhZ2luYXRpb25cIlxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImhhc05leHRQYWdlKClcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPVwidmQtcGFnaW5hdGlvbl9fbGlzdFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGxpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ2ZC1wYWdpbmF0aW9uX19pdGVtIHZkLXBhZ2luYXRpb25fX2l0ZW0tLW5leHRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4tbGluayB2ZC1wYWdpbmF0aW9uX19saW5rIGJ0bi1uby1leHRyYSB2ZC1wYWdpbmF0aW9uX19saW5rLXJlc2V0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm5leHRQYWdlKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2ZC1wYWdpbmF0aW9uX190aXRsZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgbmV4dExhYmVsIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Zm9laG4taWNvbi1jaGV2cm9uLXJpZ2h0PjwvZm9laG4taWNvbi1jaGV2cm9uLXJpZ2h0PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidmlzdWFsbHktaGlkZGVuXCI+Ojwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2ZC1wYWdpbmF0aW9uX19sYWJlbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgY3VycmVudFBhZ2UgKyAxIH19IHN1ciB7eyBwYWdlc0NvdW50KCkgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICAgICAgICA8L25hdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuIl19
127
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9laG4tbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVzdGF0aW9ucy1uZy9zcmMvZm9laG4tbGlzdC9mb2Vobi1saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3Byb2plY3RzL3ByZXN0YXRpb25zLW5nL3NyYy9mb2Vobi1saXN0L2ZvZWhuLWxpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFDVCxZQUFZLEVBQ1osWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBR04sV0FBVyxFQUNkLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7Ozs7QUFHeEQsTUFBTSxlQUFlLEdBQUcsQ0FBQyxNQUFvQixFQUFXLEVBQUUsQ0FDdEQsTUFBTSxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsYUFBYSxFQUFFLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztBQU8vRSxNQUFNLE9BQU8sa0JBQWtCO0lBTC9CO1FBV0ksaUJBQVksR0FBRyxFQUFFLENBQUM7UUFHbEIsT0FBRSxHQUFHLFlBQVksQ0FBQztRQUdsQixrQkFBYSxHQUFHLFdBQVcsQ0FBQztRQUc1QixjQUFTLEdBQUcsU0FBUyxDQUFDO1FBTXRCLGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBbUIsQ0FBQztRQUVqRCxnQkFBVyxHQUFHLENBQUMsQ0FBQztRQUVoQiw4REFBOEQ7UUFDOUQsaUJBQVksR0FBVSxFQUFFLENBQUM7UUFhekIsY0FBUyxHQUFHLENBQUMsS0FBYSxFQUFFLElBQVMsRUFBVSxFQUFFLENBQUMsS0FBSyxDQUFDO0tBOEYzRDtJQXRHRyxJQUVJLElBQUksQ0FBQyxJQUFXO1FBQ2hCLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO0lBQ3RCLENBQUM7SUFNRCxXQUFXLENBQUMsT0FBc0I7UUFDOUIsTUFBTSxrQkFBa0IsR0FBaUIsT0FBTyxDQUFDLFlBQVksQ0FBQztRQUM5RCxNQUFNLFVBQVUsR0FBaUIsT0FBTyxDQUFDLElBQUksQ0FBQztRQUM5QyxNQUFNLG9CQUFvQixHQUFpQixPQUFPLENBQUMsY0FBYyxDQUFDO1FBRWxFLElBQ0ksQ0FBQyxlQUFlLENBQUMsa0JBQWtCLENBQUM7WUFDcEMsQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDO1lBQzVCLENBQUMsZUFBZSxDQUFDLG9CQUFvQixDQUFDLEVBQ3hDLENBQUM7WUFDQyxPQUFPO1FBQ1gsQ0FBQztRQUVELElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFRCxZQUFZO1FBQ1IsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQztRQUN4QyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUN6QixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQztZQUNqQixZQUFZLEVBQUUsSUFBSSxDQUFDLFdBQVcsR0FBRyxDQUFDO1lBQ2xDLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVztZQUM3QixTQUFTLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRTtTQUMvQixDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsZUFBZTtRQUNYLE9BQU8sSUFBSSxDQUFDLFdBQVcsR0FBRyxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVELFFBQVE7UUFDSixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxDQUFDO1FBQ3hDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBRXpCLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDO1lBQ2pCLFlBQVksRUFBRSxJQUFJLENBQUMsV0FBVyxHQUFHLENBQUM7WUFDbEMsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXO1lBQzdCLFNBQVMsRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFO1NBQy9CLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxXQUFXO1FBQ1AsT0FBTyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUNoRCxDQUFDO0lBRUQsUUFBUSxDQUFDLElBQVksRUFBRSxzQkFBK0IsS0FBSztRQUN2RCxJQUFJLElBQUksQ0FBQyxXQUFXLEtBQUssSUFBSSxFQUFFLENBQUM7WUFDNUIsT0FBTztRQUNYLENBQUM7UUFFRCxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDO1FBQ3RDLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBRXpCLElBQUksbUJBQW1CLEVBQUUsQ0FBQztZQUN0QixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQztnQkFDakIsWUFBWTtnQkFDWixXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVc7Z0JBQzdCLFNBQVMsRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFO2FBQy9CLENBQUMsQ0FBQztRQUNQLENBQUM7SUFDTCxDQUFDO0lBRUQsVUFBVTtRQUNOLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN4QixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUM7UUFDL0IsQ0FBQztRQUVELE9BQU8sSUFBSSxDQUFDLEtBQUs7WUFDYixDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDO1lBQ2xELENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDWixDQUFDO0lBRU8saUJBQWlCO1FBQ3JCLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDZCxJQUFJLENBQUMsWUFBWSxHQUFHLEVBQUUsQ0FBQztZQUN2QixPQUFPO1FBQ1gsQ0FBQztRQUVELElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN4QixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7WUFDL0IsT0FBTztRQUNYLENBQUM7UUFFRCxNQUFNLGlCQUFpQixHQUNuQixDQUFDLElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLFlBQVksSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQztRQUNwRSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUNyQixJQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQztRQUN6QixDQUFDO1FBQ0QsTUFBTSxLQUFLLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUM7UUFDekQsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsS0FBSyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUMzRSxDQUFDOzhHQXBJUSxrQkFBa0I7a0dBQWxCLGtCQUFrQiwyVEFDYixXQUFXLHFFQ3hCN0IsazVHQThFQTs7MkZEdkRhLGtCQUFrQjtrQkFMOUIsU0FBUzsrQkFDSSxZQUFZOztRQU10Qiw4REFBOEQ7UUFDOUQsZ0JBQWdCO3NCQUZmLFlBQVk7dUJBQUMsV0FBVztnQkFLekIsWUFBWTtzQkFEWCxLQUFLO2dCQUlOLEVBQUU7c0JBREQsS0FBSztnQkFJTixhQUFhO3NCQURaLEtBQUs7Z0JBSU4sU0FBUztzQkFEUixLQUFLO2dCQUlOLGNBQWM7c0JBRGIsS0FBSztnQkFJTixVQUFVO3NCQURULE1BQU07Z0JBYUgsSUFBSTtzQkFGUCxLQUFLOztRQU9OLGdHQUFnRztRQUNoRyxTQUFTO3NCQUZSLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENvbXBvbmVudCxcbiAgICBDb250ZW50Q2hpbGQsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIElucHV0LFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPdXRwdXQsXG4gICAgU2ltcGxlQ2hhbmdlLFxuICAgIFNpbXBsZUNoYW5nZXMsXG4gICAgVGVtcGxhdGVSZWZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IE9iamVjdEhlbHBlciB9IGZyb20gJy4uL2hlbHBlcnMvb2JqZWN0LmhlbHBlcic7XG5pbXBvcnQgeyBQYWdlQ2hhbmdlRXZlbnQgfSBmcm9tICcuL3BhZ2UtY2hhbmdlLWV2ZW50JztcblxuY29uc3QgaGFzSW5wdXRDaGFuZ2VkID0gKGNoYW5nZTogU2ltcGxlQ2hhbmdlKTogYm9vbGVhbiA9PlxuICAgIGNoYW5nZSAmJiAhT2JqZWN0SGVscGVyLmlzRXF1YWwoY2hhbmdlLnByZXZpb3VzVmFsdWUsIGNoYW5nZS5jdXJyZW50VmFsdWUpO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2ZvZWhuLWxpc3QnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9mb2Vobi1saXN0LmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9mb2Vobi1saXN0LmNvbXBvbmVudC5jc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBGb2Vobkxpc3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICAgIEBDb250ZW50Q2hpbGQoVGVtcGxhdGVSZWYpXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICB0ZW1wbGF0ZVZhcmlhYmxlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgQElucHV0KClcbiAgICBpdGVtc1BlclBhZ2UgPSAxMDtcblxuICAgIEBJbnB1dCgpXG4gICAgaWQgPSAnZm9laG4tbGlzdCc7XG5cbiAgICBASW5wdXQoKVxuICAgIHByZXZpb3VzTGFiZWwgPSAnUHLDqWPDqWRlbnQnO1xuXG4gICAgQElucHV0KClcbiAgICBuZXh0TGFiZWwgPSAnU3VpdmFudCc7XG5cbiAgICBASW5wdXQoKVxuICAgIGZpeGVkUGFnZUNvdW50OiBudW1iZXI7XG5cbiAgICBAT3V0cHV0KClcbiAgICBwYWdlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxQYWdlQ2hhbmdlRXZlbnQ+KCk7XG5cbiAgICBjdXJyZW50UGFnZSA9IDE7XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIGZpbHRlcmVkTGlzdDogYW55W10gPSBbXTtcblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgcHJpdmF0ZSBfbGlzdDogYW55W107XG5cbiAgICBASW5wdXQoKVxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgc2V0IGxpc3QobGlzdDogYW55W10pIHtcbiAgICAgICAgdGhpcy5fbGlzdCA9IGxpc3Q7XG4gICAgfVxuXG4gICAgQElucHV0KClcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSxAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgICB0cmFja0J5Rm4gPSAoaW5kZXg6IG51bWJlciwgaXRlbTogYW55KTogbnVtYmVyID0+IGluZGV4O1xuXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICBjb25zdCBpdGVtc1BlclBhZ2VDaGFuZ2U6IFNpbXBsZUNoYW5nZSA9IGNoYW5nZXMuaXRlbXNQZXJQYWdlO1xuICAgICAgICBjb25zdCBsaXN0Q2hhbmdlOiBTaW1wbGVDaGFuZ2UgPSBjaGFuZ2VzLmxpc3Q7XG4gICAgICAgIGNvbnN0IGZpeGVkUGFnZUNvdW50Q2hhbmdlOiBTaW1wbGVDaGFuZ2UgPSBjaGFuZ2VzLmZpeGVkUGFnZUNvdW50O1xuXG4gICAgICAgIGlmIChcbiAgICAgICAgICAgICFoYXNJbnB1dENoYW5nZWQoaXRlbXNQZXJQYWdlQ2hhbmdlKSAmJlxuICAgICAgICAgICAgIWhhc0lucHV0Q2hhbmdlZChsaXN0Q2hhbmdlKSAmJlxuICAgICAgICAgICAgIWhhc0lucHV0Q2hhbmdlZChmaXhlZFBhZ2VDb3VudENoYW5nZSlcbiAgICAgICAgKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmJ1aWxkRmlsdGVyZWRMaXN0KCk7XG4gICAgfVxuXG4gICAgcHJldmlvdXNQYWdlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmN1cnJlbnRQYWdlID0gdGhpcy5jdXJyZW50UGFnZSAtIDE7XG4gICAgICAgIHRoaXMuYnVpbGRGaWx0ZXJlZExpc3QoKTtcbiAgICAgICAgdGhpcy5wYWdlQ2hhbmdlLm5leHQoe1xuICAgICAgICAgICAgcHJldmlvdXNQYWdlOiB0aGlzLmN1cnJlbnRQYWdlICsgMSxcbiAgICAgICAgICAgIGN1cnJlbnRQYWdlOiB0aGlzLmN1cnJlbnRQYWdlLFxuICAgICAgICAgICAgcGFnZUNvdW50OiB0aGlzLnBhZ2VzQ291bnQoKVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBoYXNQcmV2aW91c1BhZ2UoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmN1cnJlbnRQYWdlID4gMTtcbiAgICB9XG5cbiAgICBuZXh0UGFnZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jdXJyZW50UGFnZSA9IHRoaXMuY3VycmVudFBhZ2UgKyAxO1xuICAgICAgICB0aGlzLmJ1aWxkRmlsdGVyZWRMaXN0KCk7XG5cbiAgICAgICAgdGhpcy5wYWdlQ2hhbmdlLm5leHQoe1xuICAgICAgICAgICAgcHJldmlvdXNQYWdlOiB0aGlzLmN1cnJlbnRQYWdlIC0gMSxcbiAgICAgICAgICAgIGN1cnJlbnRQYWdlOiB0aGlzLmN1cnJlbnRQYWdlLFxuICAgICAgICAgICAgcGFnZUNvdW50OiB0aGlzLnBhZ2VzQ291bnQoKVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBoYXNOZXh0UGFnZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY3VycmVudFBhZ2UgPCB0aGlzLnBhZ2VzQ291bnQoKTtcbiAgICB9XG5cbiAgICBzaG93UGFnZShwYWdlOiBudW1iZXIsIGVtaXRQYWdlQ2hhbmdlRXZlbnQ6IGJvb2xlYW4gPSBmYWxzZSk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5jdXJyZW50UGFnZSA9PT0gcGFnZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcHJldmlvdXNQYWdlID0gdGhpcy5jdXJyZW50UGFnZTtcbiAgICAgICAgdGhpcy5jdXJyZW50UGFnZSA9IHBhZ2U7XG4gICAgICAgIHRoaXMuYnVpbGRGaWx0ZXJlZExpc3QoKTtcblxuICAgICAgICBpZiAoZW1pdFBhZ2VDaGFuZ2VFdmVudCkge1xuICAgICAgICAgICAgdGhpcy5wYWdlQ2hhbmdlLm5leHQoe1xuICAgICAgICAgICAgICAgIHByZXZpb3VzUGFnZSxcbiAgICAgICAgICAgICAgICBjdXJyZW50UGFnZTogdGhpcy5jdXJyZW50UGFnZSxcbiAgICAgICAgICAgICAgICBwYWdlQ291bnQ6IHRoaXMucGFnZXNDb3VudCgpXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHBhZ2VzQ291bnQoKTogbnVtYmVyIHtcbiAgICAgICAgaWYgKCEhdGhpcy5maXhlZFBhZ2VDb3VudCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZml4ZWRQYWdlQ291bnQ7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5fbGlzdFxuICAgICAgICAgICAgPyBNYXRoLmNlaWwodGhpcy5fbGlzdC5sZW5ndGggLyB0aGlzLml0ZW1zUGVyUGFnZSlcbiAgICAgICAgICAgIDogMDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGJ1aWxkRmlsdGVyZWRMaXN0KCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuX2xpc3QpIHtcbiAgICAgICAgICAgIHRoaXMuZmlsdGVyZWRMaXN0ID0gW107XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoISF0aGlzLmZpeGVkUGFnZUNvdW50KSB7XG4gICAgICAgICAgICB0aGlzLmZpbHRlcmVkTGlzdCA9IHRoaXMuX2xpc3Q7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBjdXJyZW50UGFnZUV4aXN0cyA9XG4gICAgICAgICAgICAodGhpcy5jdXJyZW50UGFnZSAtIDEpICogdGhpcy5pdGVtc1BlclBhZ2UgPD0gdGhpcy5fbGlzdC5sZW5ndGg7XG4gICAgICAgIGlmICghY3VycmVudFBhZ2VFeGlzdHMpIHtcbiAgICAgICAgICAgIHRoaXMuY3VycmVudFBhZ2UgPSAxO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHN0YXJ0ID0gKHRoaXMuY3VycmVudFBhZ2UgLSAxKSAqIHRoaXMuaXRlbXNQZXJQYWdlO1xuICAgICAgICB0aGlzLmZpbHRlcmVkTGlzdCA9IHRoaXMuX2xpc3Quc2xpY2Uoc3RhcnQsIHN0YXJ0ICsgdGhpcy5pdGVtc1BlclBhZ2UpO1xuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJyb3dcIiBbaWRdPVwiaWRcIj5cbiAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTEyIGNvbC1tZC0xMiBjb2wtc20tMTIgY29sLXhzLTEyXCI+XG4gICAgICAgIDx1bCBjbGFzcz1cImxpc3QtdW5zdHlsZWRcIj5cbiAgICAgICAgICAgIDxsaVxuICAgICAgICAgICAgICAgICpuZ0Zvcj1cIlxuICAgICAgICAgICAgICAgICAgICBsZXQgaXRlbSBvZiBmaWx0ZXJlZExpc3Q7XG4gICAgICAgICAgICAgICAgICAgIGxldCBpbmRleCA9IGluZGV4O1xuICAgICAgICAgICAgICAgICAgICB0cmFja0J5OiB0cmFja0J5Rm5cbiAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJ0ZW1wbGF0ZVZhcmlhYmxlXCJcbiAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgaXRlbTogaXRlbSwgaW5kZXg6IGluZGV4IH1cIlxuICAgICAgICAgICAgICAgID48L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgPC9saT5cbiAgICAgICAgPC91bD5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwicm93IGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBwLTFcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctMyBjb2wtbWQtMyBjb2wtc20tNiBjb2wteHMtNlwiPlxuICAgICAgICAgICAgICAgIDxuYXZcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ2ZC1wYWdpbmF0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD1cIlBhZ2luYXRpb25cIlxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImhhc1ByZXZpb3VzUGFnZSgpXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz1cInZkLXBhZ2luYXRpb25fX2xpc3RcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxsaVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidmQtcGFnaW5hdGlvbl9faXRlbSB2ZC1wYWdpbmF0aW9uX19pdGVtLS1wcmV2aW91c1wiXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4tbGluayB2ZC1wYWdpbmF0aW9uX19saW5rIGJ0bi1uby1leHRyYSB2ZC1wYWdpbmF0aW9uX19saW5rLXJlc2V0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInByZXZpb3VzUGFnZSgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidmQtcGFnaW5hdGlvbl9fdGl0bGVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmb2Vobi1pY29uLWNoZXZyb24tbGVmdD48L2ZvZWhuLWljb24tY2hldnJvbi1sZWZ0PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgcHJldmlvdXNMYWJlbCB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidmlzdWFsbHktaGlkZGVuXCI+Ojwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2ZC1wYWdpbmF0aW9uX19sYWJlbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgY3VycmVudFBhZ2UgLSAxIH19IHN1ciB7eyBwYWdlc0NvdW50KCkgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICAgICAgICA8L25hdj5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTMgY29sLW1kLTMgY29sLXNtLTYgY29sLXhzLTZcIj5cbiAgICAgICAgICAgICAgICA8bmF2XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidmQtcGFnaW5hdGlvblwiXG4gICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJQYWdpbmF0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJoYXNOZXh0UGFnZSgpXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz1cInZkLXBhZ2luYXRpb25fX2xpc3RcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxsaVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidmQtcGFnaW5hdGlvbl9faXRlbSB2ZC1wYWdpbmF0aW9uX19pdGVtLS1uZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0bi1saW5rIHZkLXBhZ2luYXRpb25fX2xpbmsgYnRuLW5vLWV4dHJhIHZkLXBhZ2luYXRpb25fX2xpbmstcmVzZXRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwibmV4dFBhZ2UoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInZkLXBhZ2luYXRpb25fX3RpdGxlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBuZXh0TGFiZWwgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmb2Vobi1pY29uLWNoZXZyb24tcmlnaHQ+PC9mb2Vobi1pY29uLWNoZXZyb24tcmlnaHQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2aXN1YWxseS1oaWRkZW5cIj46PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInZkLXBhZ2luYXRpb25fX2xhYmVsXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBjdXJyZW50UGFnZSArIDEgfX0gc3VyIHt7IHBhZ2VzQ291bnQoKSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICA8L3VsPlxuICAgICAgICAgICAgICAgIDwvbmF2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9kaXY+XG4iXX0=
@@ -127,7 +127,7 @@ export class FoehnListSummaryComponent extends FoehnInputComponent {
127
127
  useExisting: forwardRef(() => FoehnListSummaryComponent),
128
128
  multi: true
129
129
  }
130
- ], viewQueries: [{ propertyName: "tableActionButtons", first: true, predicate: ["tableActionButtons"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<section\n class=\"form-group clearable-input-form-group\"\n [class.has-danger]=\"hasErrorsToDisplay()\"\n [class.vd-form-group-danger]=\"hasErrorsToDisplay()\"\n [attr.id]=\"buildId('Container')\"\n tabindex=\"-1\"\n>\n <label\n class=\"form-label\"\n [attr.for]=\"buildChildId()\"\n *ngIf=\"label && type !== 'hidden'\"\n [ngClass]=\"isLabelSrOnly ? 'visually-hidden' : labelStyleModifier\"\n >\n <span [innerHTML]=\"label\"></span>\n <span\n *ngIf=\"!required && !hideNotRequiredExtraLabel\"\n aria-hidden=\"true\"\n >\n {{ 'foehn-input.optional' | fromDictionary }}\n </span>\n </label>\n\n <foehn-validation-alerts [component]=\"this\"></foehn-validation-alerts>\n\n <small\n *ngIf=\"helpText && type !== 'hidden'\"\n [attr.id]=\"buildChildId() + 'Help'\"\n class=\"form-text text-secondary\"\n [innerHTML]=\"helpText\"\n ></small>\n\n <section *ngIf=\"!showAsTable\">\n <ul class=\"list-unstyled\" aria-describedby=\"sommaire-help-alt\">\n <li\n [id]=\"'list-summary-' + item.trackingIndex\"\n class=\"mt-3 border-bottom\"\n *ngFor=\"\n let item of list;\n let itemIndex = index;\n trackBy: trackFoehnListItem\n \"\n >\n <div class=\"d-flex align-items-baseline flex-wrap\">\n <h4 class=\"mt-0 me-3\">{{ getListItemTitle(item) }}</h4>\n <span class=\"ms-auto\">\n <foehn-error-pill\n [incompleteIndicatorOnly]=\"true\"\n [errorPrefix]=\"name + '[' + itemIndex + ']'\"\n ></foehn-error-pill>\n </span>\n </div>\n <dl class=\"mb-0\">\n <ng-container\n *ngFor=\"\n let itemParam of listItemDescriptions;\n trackBy: trackFoehnListItemDescription\n \"\n >\n <div\n class=\"d-flex flex-wrap item-line\"\n *ngIf=\"showLine(item, itemParam)\"\n >\n <dt class=\"me-1\">\n {{ itemParam.label }}\n </dt>\n <dd class=\"ms-auto text-end\">\n {{ itemParam.getFormattedValue(item) }}\n </dd>\n </div>\n </ng-container>\n </dl>\n <ul class=\"list-inline mb-3 mt-0\">\n <li class=\"list-inline-item\">\n <a\n [id]=\"buildChildId('-edit-link-' + itemIndex)\"\n href=\"#\"\n (click)=\"\n $event.preventDefault(); editItem(itemIndex)\n \"\n >\n Modifier\n </a>\n <span class=\"visually-hidden\">\n {{ getListItemTitle(item) }}\n </span>\n </li>\n <li class=\"list-inline-item\">\n &nbsp;\n <a\n [id]=\"buildChildId('-delete-link-' + itemIndex)\"\n href=\"#\"\n (click)=\"\n $event.preventDefault(); removeItem(itemIndex)\n \"\n >\n Supprimer\n <span class=\"visually-hidden\">\n {{ getListItemTitle(item) }}\n </span>\n </a>\n </li>\n </ul>\n </li>\n </ul>\n </section>\n\n <section *ngIf=\"showAsTable && !!tableConfiguration?.length\">\n <foehn-table\n [id]=\"buildChildName('table')\"\n *ngIf=\"!!listCopyForTable?.length\"\n [list]=\"listCopyForTable\"\n [itemsPerPage]=\"1000000\"\n [columnsConfiguration]=\"tableConfiguration\"\n [sort]=\"tableSort\"\n (sortChange)=\"changeSort($event)\"\n [trackByFn]=\"trackFoehnListItem\"\n ></foehn-table>\n </section>\n\n <section [ngClass]=\"{ 'mt-5': !showAsTable }\">\n <h2 class=\"visually-hidden\">Action</h2>\n <ul class=\"list-inline mb-3\">\n <li class=\"list-inline-item\">\n <button\n [id]=\"buildChildId('-add-button')\"\n class=\"btn btn-primary\"\n (click)=\"editItem()\"\n >\n Ajouter\n </button>\n </li>\n </ul>\n </section>\n</section>\n\n<ng-template #tableActionButtons let-index=\"index\">\n <div class=\"d-inline-flex\">\n <button\n [id]=\"buildChildId('-edit-button-' + index)\"\n class=\"btn bg-transparent me-3\"\n (click)=\"editItem(index)\"\n >\n <foehn-icon-edit [title]=\"'Modifier'\"></foehn-icon-edit>\n </button>\n <button\n [id]=\"buildChildId('-delete-button-' + index)\"\n class=\"btn bg-transparent\"\n (click)=\"removeItem(index)\"\n >\n <foehn-icon-trash-alt [title]=\"'Supprimer'\"></foehn-icon-trash-alt>\n </button>\n </div>\n</ng-template>\n", styles: [":host ::ng-deep .bg-transparent.btn .svg-inline--fa{color:var(--vd-neutral-darker)!important}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.FoehnValidationAlertsComponent, selector: "foehn-validation-alerts", inputs: ["component", "shouldErrorsBeLive"] }, { kind: "component", type: i4.FoehnTableComponent, selector: "foehn-table", inputs: ["itemsPerPage", "id", "previousLabel", "nextLabel", "totalElements", "fixedPageCount", "columnsConfiguration", "sort", "list", "trackByFn"], outputs: ["pageChange", "sortChange"] }, { kind: "component", type: i5.FoehnIconEditComponent, selector: "foehn-icon-edit" }, { kind: "component", type: i6.FoehnIconTrashAltComponent, selector: "foehn-icon-trash-alt" }, { kind: "component", type: i7.FoehnErrorPillComponent, selector: "foehn-error-pill", inputs: ["errorPrefix", "incompleteIndicatorOnly"] }, { kind: "pipe", type: i8.SdkDictionaryPipe, name: "fromDictionary" }] }); }
130
+ ], viewQueries: [{ propertyName: "tableActionButtons", first: true, predicate: ["tableActionButtons"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<section\n class=\"form-group clearable-input-form-group\"\n [class.has-danger]=\"hasErrorsToDisplay()\"\n [class.vd-form-group-danger]=\"hasErrorsToDisplay()\"\n [attr.id]=\"buildId('Container')\"\n tabindex=\"-1\"\n>\n <label\n class=\"form-label\"\n [attr.for]=\"buildChildId()\"\n *ngIf=\"label && type !== 'hidden'\"\n [ngClass]=\"isLabelSrOnly ? 'visually-hidden' : labelStyleModifier\"\n >\n <span [innerHTML]=\"label\"></span>\n <span\n *ngIf=\"!required && !hideNotRequiredExtraLabel\"\n aria-hidden=\"true\"\n >\n {{ 'foehn-input.optional' | fromDictionary }}\n </span>\n </label>\n\n <foehn-validation-alerts [component]=\"this\"></foehn-validation-alerts>\n\n <small\n *ngIf=\"helpText && type !== 'hidden'\"\n [attr.id]=\"buildChildId() + 'Help'\"\n class=\"form-text text-secondary\"\n [innerHTML]=\"helpText\"\n ></small>\n\n <section *ngIf=\"!showAsTable\">\n <ul class=\"list-unstyled\" aria-describedby=\"sommaire-help-alt\">\n <li\n [id]=\"'list-summary-' + item.trackingIndex\"\n class=\"mt-3 border-bottom\"\n *ngFor=\"\n let item of list;\n let itemIndex = index;\n trackBy: trackFoehnListItem\n \"\n >\n <div class=\"d-flex align-items-baseline flex-wrap\">\n <h4 class=\"mt-0 me-3\">{{ getListItemTitle(item) }}</h4>\n <span class=\"ms-auto\">\n <foehn-error-pill\n [incompleteIndicatorOnly]=\"true\"\n [errorPrefix]=\"name + '[' + itemIndex + ']'\"\n ></foehn-error-pill>\n </span>\n </div>\n <dl class=\"mb-0\">\n <ng-container\n *ngFor=\"\n let itemParam of listItemDescriptions;\n trackBy: trackFoehnListItemDescription\n \"\n >\n <div\n class=\"d-flex flex-wrap item-line\"\n *ngIf=\"showLine(item, itemParam)\"\n >\n <dt class=\"me-1\">\n {{ itemParam.label }}\n </dt>\n <dd class=\"ms-auto text-end\">\n {{ itemParam.getFormattedValue(item) }}\n </dd>\n </div>\n </ng-container>\n </dl>\n <ul class=\"list-inline mb-3 mt-0\">\n <li class=\"list-inline-item\">\n <a\n [id]=\"buildChildId('-edit-link-' + itemIndex)\"\n href=\"#\"\n (click)=\"\n $event.preventDefault(); editItem(itemIndex)\n \"\n >\n Modifier\n </a>\n <span class=\"visually-hidden\">\n {{ getListItemTitle(item) }}\n </span>\n </li>\n <li class=\"list-inline-item\">\n &nbsp;\n <a\n [id]=\"buildChildId('-delete-link-' + itemIndex)\"\n href=\"#\"\n (click)=\"\n $event.preventDefault(); removeItem(itemIndex)\n \"\n >\n Supprimer\n <span class=\"visually-hidden\">\n {{ getListItemTitle(item) }}\n </span>\n </a>\n </li>\n </ul>\n </li>\n </ul>\n </section>\n\n <section *ngIf=\"showAsTable && !!tableConfiguration?.length\">\n <foehn-table\n [id]=\"buildChildName('table')\"\n *ngIf=\"!!listCopyForTable?.length\"\n [list]=\"listCopyForTable\"\n [itemsPerPage]=\"1000000\"\n [columnsConfiguration]=\"tableConfiguration\"\n [sort]=\"tableSort\"\n (sortChange)=\"changeSort($event)\"\n [trackByFn]=\"trackFoehnListItem\"\n ></foehn-table>\n </section>\n\n <section [ngClass]=\"{ 'mt-5': !showAsTable }\">\n <h2 class=\"visually-hidden\">Action</h2>\n <ul class=\"list-inline mb-3\">\n <li class=\"list-inline-item\">\n <button\n [id]=\"buildChildId('-add-button')\"\n type=\"button\"\n class=\"btn btn-primary\"\n (click)=\"editItem()\"\n >\n Ajouter\n </button>\n </li>\n </ul>\n </section>\n</section>\n\n<ng-template #tableActionButtons let-index=\"index\">\n <div class=\"d-inline-flex\">\n <button\n [id]=\"buildChildId('-edit-button-' + index)\"\n type=\"button\"\n class=\"btn bg-transparent me-3\"\n (click)=\"editItem(index)\"\n >\n <foehn-icon-edit [title]=\"'Modifier'\"></foehn-icon-edit>\n </button>\n <button\n [id]=\"buildChildId('-delete-button-' + index)\"\n type=\"button\"\n class=\"btn bg-transparent\"\n (click)=\"removeItem(index)\"\n >\n <foehn-icon-trash-alt [title]=\"'Supprimer'\"></foehn-icon-trash-alt>\n </button>\n </div>\n</ng-template>\n", styles: [":host ::ng-deep .bg-transparent.btn .svg-inline--fa{color:var(--vd-neutral-darker)!important}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.FoehnValidationAlertsComponent, selector: "foehn-validation-alerts", inputs: ["component", "shouldErrorsBeLive"] }, { kind: "component", type: i4.FoehnTableComponent, selector: "foehn-table", inputs: ["itemsPerPage", "id", "title", "titleSrOnly", "previousLabel", "nextLabel", "totalElements", "fixedPageCount", "columnsConfiguration", "sort", "list", "trackByFn"], outputs: ["pageChange", "sortChange"] }, { kind: "component", type: i5.FoehnIconEditComponent, selector: "foehn-icon-edit" }, { kind: "component", type: i6.FoehnIconTrashAltComponent, selector: "foehn-icon-trash-alt" }, { kind: "component", type: i7.FoehnErrorPillComponent, selector: "foehn-error-pill", inputs: ["errorPrefix", "incompleteIndicatorOnly"] }, { kind: "pipe", type: i8.SdkDictionaryPipe, name: "fromDictionary" }] }); }
131
131
  }
132
132
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: FoehnListSummaryComponent, decorators: [{
133
133
  type: Component,
@@ -137,7 +137,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImpor
137
137
  useExisting: forwardRef(() => FoehnListSummaryComponent),
138
138
  multi: true
139
139
  }
140
- ], template: "<section\n class=\"form-group clearable-input-form-group\"\n [class.has-danger]=\"hasErrorsToDisplay()\"\n [class.vd-form-group-danger]=\"hasErrorsToDisplay()\"\n [attr.id]=\"buildId('Container')\"\n tabindex=\"-1\"\n>\n <label\n class=\"form-label\"\n [attr.for]=\"buildChildId()\"\n *ngIf=\"label && type !== 'hidden'\"\n [ngClass]=\"isLabelSrOnly ? 'visually-hidden' : labelStyleModifier\"\n >\n <span [innerHTML]=\"label\"></span>\n <span\n *ngIf=\"!required && !hideNotRequiredExtraLabel\"\n aria-hidden=\"true\"\n >\n {{ 'foehn-input.optional' | fromDictionary }}\n </span>\n </label>\n\n <foehn-validation-alerts [component]=\"this\"></foehn-validation-alerts>\n\n <small\n *ngIf=\"helpText && type !== 'hidden'\"\n [attr.id]=\"buildChildId() + 'Help'\"\n class=\"form-text text-secondary\"\n [innerHTML]=\"helpText\"\n ></small>\n\n <section *ngIf=\"!showAsTable\">\n <ul class=\"list-unstyled\" aria-describedby=\"sommaire-help-alt\">\n <li\n [id]=\"'list-summary-' + item.trackingIndex\"\n class=\"mt-3 border-bottom\"\n *ngFor=\"\n let item of list;\n let itemIndex = index;\n trackBy: trackFoehnListItem\n \"\n >\n <div class=\"d-flex align-items-baseline flex-wrap\">\n <h4 class=\"mt-0 me-3\">{{ getListItemTitle(item) }}</h4>\n <span class=\"ms-auto\">\n <foehn-error-pill\n [incompleteIndicatorOnly]=\"true\"\n [errorPrefix]=\"name + '[' + itemIndex + ']'\"\n ></foehn-error-pill>\n </span>\n </div>\n <dl class=\"mb-0\">\n <ng-container\n *ngFor=\"\n let itemParam of listItemDescriptions;\n trackBy: trackFoehnListItemDescription\n \"\n >\n <div\n class=\"d-flex flex-wrap item-line\"\n *ngIf=\"showLine(item, itemParam)\"\n >\n <dt class=\"me-1\">\n {{ itemParam.label }}\n </dt>\n <dd class=\"ms-auto text-end\">\n {{ itemParam.getFormattedValue(item) }}\n </dd>\n </div>\n </ng-container>\n </dl>\n <ul class=\"list-inline mb-3 mt-0\">\n <li class=\"list-inline-item\">\n <a\n [id]=\"buildChildId('-edit-link-' + itemIndex)\"\n href=\"#\"\n (click)=\"\n $event.preventDefault(); editItem(itemIndex)\n \"\n >\n Modifier\n </a>\n <span class=\"visually-hidden\">\n {{ getListItemTitle(item) }}\n </span>\n </li>\n <li class=\"list-inline-item\">\n &nbsp;\n <a\n [id]=\"buildChildId('-delete-link-' + itemIndex)\"\n href=\"#\"\n (click)=\"\n $event.preventDefault(); removeItem(itemIndex)\n \"\n >\n Supprimer\n <span class=\"visually-hidden\">\n {{ getListItemTitle(item) }}\n </span>\n </a>\n </li>\n </ul>\n </li>\n </ul>\n </section>\n\n <section *ngIf=\"showAsTable && !!tableConfiguration?.length\">\n <foehn-table\n [id]=\"buildChildName('table')\"\n *ngIf=\"!!listCopyForTable?.length\"\n [list]=\"listCopyForTable\"\n [itemsPerPage]=\"1000000\"\n [columnsConfiguration]=\"tableConfiguration\"\n [sort]=\"tableSort\"\n (sortChange)=\"changeSort($event)\"\n [trackByFn]=\"trackFoehnListItem\"\n ></foehn-table>\n </section>\n\n <section [ngClass]=\"{ 'mt-5': !showAsTable }\">\n <h2 class=\"visually-hidden\">Action</h2>\n <ul class=\"list-inline mb-3\">\n <li class=\"list-inline-item\">\n <button\n [id]=\"buildChildId('-add-button')\"\n class=\"btn btn-primary\"\n (click)=\"editItem()\"\n >\n Ajouter\n </button>\n </li>\n </ul>\n </section>\n</section>\n\n<ng-template #tableActionButtons let-index=\"index\">\n <div class=\"d-inline-flex\">\n <button\n [id]=\"buildChildId('-edit-button-' + index)\"\n class=\"btn bg-transparent me-3\"\n (click)=\"editItem(index)\"\n >\n <foehn-icon-edit [title]=\"'Modifier'\"></foehn-icon-edit>\n </button>\n <button\n [id]=\"buildChildId('-delete-button-' + index)\"\n class=\"btn bg-transparent\"\n (click)=\"removeItem(index)\"\n >\n <foehn-icon-trash-alt [title]=\"'Supprimer'\"></foehn-icon-trash-alt>\n </button>\n </div>\n</ng-template>\n", styles: [":host ::ng-deep .bg-transparent.btn .svg-inline--fa{color:var(--vd-neutral-darker)!important}\n"] }]
140
+ ], template: "<section\n class=\"form-group clearable-input-form-group\"\n [class.has-danger]=\"hasErrorsToDisplay()\"\n [class.vd-form-group-danger]=\"hasErrorsToDisplay()\"\n [attr.id]=\"buildId('Container')\"\n tabindex=\"-1\"\n>\n <label\n class=\"form-label\"\n [attr.for]=\"buildChildId()\"\n *ngIf=\"label && type !== 'hidden'\"\n [ngClass]=\"isLabelSrOnly ? 'visually-hidden' : labelStyleModifier\"\n >\n <span [innerHTML]=\"label\"></span>\n <span\n *ngIf=\"!required && !hideNotRequiredExtraLabel\"\n aria-hidden=\"true\"\n >\n {{ 'foehn-input.optional' | fromDictionary }}\n </span>\n </label>\n\n <foehn-validation-alerts [component]=\"this\"></foehn-validation-alerts>\n\n <small\n *ngIf=\"helpText && type !== 'hidden'\"\n [attr.id]=\"buildChildId() + 'Help'\"\n class=\"form-text text-secondary\"\n [innerHTML]=\"helpText\"\n ></small>\n\n <section *ngIf=\"!showAsTable\">\n <ul class=\"list-unstyled\" aria-describedby=\"sommaire-help-alt\">\n <li\n [id]=\"'list-summary-' + item.trackingIndex\"\n class=\"mt-3 border-bottom\"\n *ngFor=\"\n let item of list;\n let itemIndex = index;\n trackBy: trackFoehnListItem\n \"\n >\n <div class=\"d-flex align-items-baseline flex-wrap\">\n <h4 class=\"mt-0 me-3\">{{ getListItemTitle(item) }}</h4>\n <span class=\"ms-auto\">\n <foehn-error-pill\n [incompleteIndicatorOnly]=\"true\"\n [errorPrefix]=\"name + '[' + itemIndex + ']'\"\n ></foehn-error-pill>\n </span>\n </div>\n <dl class=\"mb-0\">\n <ng-container\n *ngFor=\"\n let itemParam of listItemDescriptions;\n trackBy: trackFoehnListItemDescription\n \"\n >\n <div\n class=\"d-flex flex-wrap item-line\"\n *ngIf=\"showLine(item, itemParam)\"\n >\n <dt class=\"me-1\">\n {{ itemParam.label }}\n </dt>\n <dd class=\"ms-auto text-end\">\n {{ itemParam.getFormattedValue(item) }}\n </dd>\n </div>\n </ng-container>\n </dl>\n <ul class=\"list-inline mb-3 mt-0\">\n <li class=\"list-inline-item\">\n <a\n [id]=\"buildChildId('-edit-link-' + itemIndex)\"\n href=\"#\"\n (click)=\"\n $event.preventDefault(); editItem(itemIndex)\n \"\n >\n Modifier\n </a>\n <span class=\"visually-hidden\">\n {{ getListItemTitle(item) }}\n </span>\n </li>\n <li class=\"list-inline-item\">\n &nbsp;\n <a\n [id]=\"buildChildId('-delete-link-' + itemIndex)\"\n href=\"#\"\n (click)=\"\n $event.preventDefault(); removeItem(itemIndex)\n \"\n >\n Supprimer\n <span class=\"visually-hidden\">\n {{ getListItemTitle(item) }}\n </span>\n </a>\n </li>\n </ul>\n </li>\n </ul>\n </section>\n\n <section *ngIf=\"showAsTable && !!tableConfiguration?.length\">\n <foehn-table\n [id]=\"buildChildName('table')\"\n *ngIf=\"!!listCopyForTable?.length\"\n [list]=\"listCopyForTable\"\n [itemsPerPage]=\"1000000\"\n [columnsConfiguration]=\"tableConfiguration\"\n [sort]=\"tableSort\"\n (sortChange)=\"changeSort($event)\"\n [trackByFn]=\"trackFoehnListItem\"\n ></foehn-table>\n </section>\n\n <section [ngClass]=\"{ 'mt-5': !showAsTable }\">\n <h2 class=\"visually-hidden\">Action</h2>\n <ul class=\"list-inline mb-3\">\n <li class=\"list-inline-item\">\n <button\n [id]=\"buildChildId('-add-button')\"\n type=\"button\"\n class=\"btn btn-primary\"\n (click)=\"editItem()\"\n >\n Ajouter\n </button>\n </li>\n </ul>\n </section>\n</section>\n\n<ng-template #tableActionButtons let-index=\"index\">\n <div class=\"d-inline-flex\">\n <button\n [id]=\"buildChildId('-edit-button-' + index)\"\n type=\"button\"\n class=\"btn bg-transparent me-3\"\n (click)=\"editItem(index)\"\n >\n <foehn-icon-edit [title]=\"'Modifier'\"></foehn-icon-edit>\n </button>\n <button\n [id]=\"buildChildId('-delete-button-' + index)\"\n type=\"button\"\n class=\"btn bg-transparent\"\n (click)=\"removeItem(index)\"\n >\n <foehn-icon-trash-alt [title]=\"'Supprimer'\"></foehn-icon-trash-alt>\n </button>\n </div>\n</ng-template>\n", styles: [":host ::ng-deep .bg-transparent.btn .svg-inline--fa{color:var(--vd-neutral-darker)!important}\n"] }]
141
141
  }], ctorParameters: () => [{ type: i1.FoehnConfirmModalService }, { type: i0.NgZone }], propDecorators: { tableActionButtons: [{
142
142
  type: ViewChild,
143
143
  args: ['tableActionButtons']
@@ -154,4 +154,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImpor
154
154
  }], listItemDescriptions: [{
155
155
  type: Input
156
156
  }] } });
157
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9laG4tbGlzdC1zdW1tYXJ5LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ByZXN0YXRpb25zLW5nL3NyYy9mb2Vobi1tZW51LXByZXN0YXRpb24vZm9laG4tbGlzdC1zdW1tYXJ5L2ZvZWhuLWxpc3Qtc3VtbWFyeS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVzdGF0aW9ucy1uZy9zcmMvZm9laG4tbWVudS1wcmVzdGF0aW9uL2ZvZWhuLWxpc3Qtc3VtbWFyeS9mb2Vobi1saXN0LXN1bW1hcnkuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVILFNBQVMsRUFDVCxZQUFZLEVBQ1osVUFBVSxFQUNWLEtBQUssRUFHTCxNQUFNLEVBSU4sU0FBUyxFQUNaLE1BQU0sZUFBZSxDQUFDO0FBR3ZCLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBRzlFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7Ozs7Ozs7OztBQWdCM0QsTUFBTSxPQUFPLHlCQUNULFNBQVEsbUJBQW9DO0lBK0I1QyxZQUNZLG1CQUE2QyxFQUM3QyxNQUFjO1FBRXRCLEtBQUssRUFBRSxDQUFDO1FBSEEsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUEwQjtRQUM3QyxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBdkIxQixnQkFBVyxHQUFHLEtBQUssQ0FBQztRQUdwQixnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFHdkMsYUFBUSxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFRdEMsY0FBUyxHQUFjO1lBQ25CLGFBQWEsRUFBRSxLQUFLO1NBQ3ZCLENBQUM7UUFFTSxVQUFLLEdBQW9CLEVBQUUsQ0FBQztRQUM1QiwwQkFBcUIsR0FBK0IsRUFBRSxDQUFDO1FBZ0MvRCx1QkFBa0IsR0FBbUMsQ0FD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ICAgIEV2ZW50RW1pdHRlcixcbiAgICBmb3J3YXJkUmVmLFxuICAgIElucHV0LFxuICAgIE5nWm9uZSxcbiAgICBPbkNoYW5nZXMsXG4gICAgT3V0cHV0LFxuICAgIFNpbXBsZUNoYW5nZXMsXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgVHJhY2tCeUZ1bmN0aW9uLFxuICAgIFZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgRm9laG5Db25maXJtTW9kYWxTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vZm9laG4tY29uZmlybS1tb2RhbC9mb2Vobi1jb25maXJtLW1vZGFsLnNlcnZpY2UnO1xuaW1wb3J0IHsgRm9laG5JbnB1dENvbXBvbmVudCB9IGZyb20gJy4uLy4uL2ZvZWhuLWlucHV0L2ZvZWhuLWlucHV0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGb2VoblRhYmxlQ29sdW1uQ29uZmlndXJhdGlvbiB9IGZyb20gJy4uLy4uL2ZvZWhuLXRhYmxlL2ZvZWhuLXRhYmxlLWNvbHVtbi1jb25maWd1cmF0aW9uJztcbmltcG9ydCB7IFRhYmxlU29ydCB9IGZyb20gJy4uLy4uL2ZvZWhuLXRhYmxlL3RhYmxlU29ydCc7XG5pbXBvcnQgeyBPYmplY3RIZWxwZXIgfSBmcm9tICcuLi8uLi9oZWxwZXJzL29iamVjdC5oZWxwZXInO1xuaW1wb3J0IHsgRm9laG5MaXN0SXRlbSB9IGZyb20gJy4vZm9laG4tbGlzdC1pdGVtJztcbmltcG9ydCB7IEZvZWhuTGlzdEl0ZW1EZXNjcmlwdGlvbiB9IGZyb20gJy4vZm9laG4tbGlzdC1pdGVtLWRlc2NyaXB0aW9uJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdmb2Vobi1saXN0LXN1bW1hcnknLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9mb2Vobi1saXN0LXN1bW1hcnkuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2ZvZWhuLWxpc3Qtc3VtbWFyeS5jb21wb25lbnQuY3NzJ10sXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IEZvZWhuSW5wdXRDb21wb25lbnQsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBGb2Vobkxpc3RTdW1tYXJ5Q29tcG9uZW50KSxcbiAgICAgICAgICAgIG11bHRpOiB0cnVlXG4gICAgICAgIH1cbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIEZvZWhuTGlzdFN1bW1hcnlDb21wb25lbnRcbiAgICBleHRlbmRzIEZvZWhuSW5wdXRDb21wb25lbnQ8Rm9laG5MaXN0SXRlbVtdPlxuICAgIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25DaGFuZ2VzXG57XG4gICAgQFZpZXdDaGlsZCgndGFibGVBY3Rpb25CdXR0b25zJylcbiAgICB0YWJsZUFjdGlvbkJ1dHRvbnM6IFRlbXBsYXRlUmVmPHVua25vd24+O1xuXG4gICAgQElucHV0KClcbiAgICBnZXRMaXN0SXRlbVRpdGxlOiAoaXRlbTogRm9laG5MaXN0SXRlbSkgPT4gc3RyaW5nO1xuXG4gICAgQElucHV0KClcbiAgICBzaG93QXNUYWJsZSA9IGZhbHNlO1xuXG4gICAgQE91dHB1dCgpXG4gICAgaXRlbVJlbW92ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgICBAT3V0cHV0KClcbiAgICBpdGVtRWRpdCA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuXG4gICAgLy8gc28gZm9laG4tdGFibGUncyBOZ09uQ2hhbmdlcyBjYW4gZGV0ZWN0IGNoYW5nZXNcbiAgICAvLyB3ZSBtYWludGFpbiBhIDJuZCBsaXN0IHRoYXQgaXMgcmVnZW5lcmF0ZWQgd2hlbiB0aGUgbWFpbiBsaXN0IGlzIHVwZGF0ZWRcbiAgICBsaXN0Q29weUZvclRhYmxlOiBGb2Vobkxpc3RJdGVtW107XG5cbiAgICB0YWJsZUNvbmZpZ3VyYXRpb246IEZvZWhuVGFibGVDb2x1bW5Db25maWd1cmF0aW9uPEZvZWhuTGlzdEl0ZW0+W107XG5cbiAgICB0YWJsZVNvcnQ6IFRhYmxlU29ydCA9IHtcbiAgICAgICAgc29ydERpcmVjdGlvbjogJ0FTQydcbiAgICB9O1xuXG4gICAgcHJpdmF0ZSBsaXN0XzogRm9laG5MaXN0SXRlbVtdID0gW107XG4gICAgcHJpdmF0ZSBsaXN0SXRlbURlc2NyaXB0aW9uc186IEZvZWhuTGlzdEl0ZW1EZXNjcmlwdGlvbltdID0gW107XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBjb25maXJtTW9kYWxTZXJ2aWNlOiBGb2VobkNvbmZpcm1Nb2RhbFNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgbmdab25lOiBOZ1pvbmVcbiAgICApIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICB9XG5cbiAgICBnZXQgbGlzdCgpOiBGb2Vobkxpc3RJdGVtW10ge1xuICAgICAgICByZXR1cm4gdGhpcy5saXN0XztcbiAgICB9XG5cbiAgICBASW5wdXQoKVxuICAgIHNldCBsaXN0KGl0ZW1zOiBGb2Vobkxpc3RJdGVtW10pIHtcbiAgICAgICAgaWYgKE9iamVjdEhlbHBlci5pc0RpZmZlcmVudChpdGVtcywgdGhpcy5saXN0XykpIHtcbiAgICAgICAgICAgIHRoaXMubGlzdF8gPSBpdGVtcztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbWVtYmVyLW9yZGVyaW5nXG4gICAgZ2V0IGxpc3RJdGVtRGVzY3JpcHRpb25zKCk6IEZvZWhuTGlzdEl0ZW1EZXNjcmlwdGlvbltdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubGlzdEl0ZW1EZXNjcmlwdGlvbnNfO1xuICAgIH1cblxuICAgIEBJbnB1dCgpXG4gICAgc2V0IGxpc3RJdGVtRGVzY3JpcHRpb25zKGl0ZW1zOiBGb2Vobkxpc3RJdGVtRGVzY3JpcHRpb25bXSkge1xuICAgICAgICBpZiAoT2JqZWN0SGVscGVyLmlzRGlmZmVyZW50KGl0ZW1zLCB0aGlzLmxpc3RJdGVtRGVzY3JpcHRpb25zXykpIHtcbiAgICAgICAgICAgIHRoaXMubGlzdEl0ZW1EZXNjcmlwdGlvbnNfID0gaXRlbXM7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB0cmFja0ZvZWhuTGlzdEl0ZW06IFRyYWNrQnlGdW5jdGlvbjxGb2Vobkxpc3RJdGVtPiA9IChcbiAgICAgICAgaW5kZXg6IG51bWJlcixcbiAgICAgICAgaXRlbTogRm9laG5MaXN0SXRlbVxuICAgICkgPT4gaXRlbS50cmFja2luZ0luZGV4IHx8IGluZGV4O1xuXG4gICAgdHJhY2tGb2Vobkxpc3RJdGVtRGVzY3JpcHRpb246IFRyYWNrQnlGdW5jdGlvbjxGb2Vobkxpc3RJdGVtRGVzY3JpcHRpb24+ID0gKFxuICAgICAgICBpbmRleDogbnVtYmVyLFxuICAgICAgICBpdGVtOiBGb2Vobkxpc3RJdGVtRGVzY3JpcHRpb25cbiAgICApID0+IGl0ZW0ubGFiZWwgfHwgaW5kZXg7XG5cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIGlmICghIWNoYW5nZXM/Lmxpc3Q/LmN1cnJlbnRWYWx1ZT8ubGVuZ3RoIHx8ICEhY2hhbmdlcy5zaG93QXNUYWJsZSkge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVMaXN0Q29weUZvclRhYmxlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nQWZ0ZXJWaWV3SW5pdCgpO1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcnhqcy1hbmd1bGFyL3ByZWZlci1hc3luYy1waXBlXG4gICAgICAgIHRoaXMubmdab25lLm9uTWljcm90YXNrRW1wdHkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMudGFibGVDb25maWd1cmF0aW9uID0gdGhpcy5saXN0SXRlbURlc2NyaXB0aW9ucy5tYXAoXG4gICAgICAgICAgICAgICAgKGl0ZW0sIGluZGV4KSA9PiAoe1xuICAgICAgICAgICAgICAgICAgICBpZDogYGNvbC0ke2luZGV4fWAsXG4gICAgICAgICAgICAgICAgICAgIHNvcnRBdHRyaWJ1dGU6IGluZGV4LnRvU3RyaW5nKCksXG4gICAgICAgICAgICAgICAgICAgIGNvbHVtbkxhYmVsS2V5OiBpdGVtLmxhYmVsLFxuICAgICAgICAgICAgICAgICAgICB2YWx1ZUdldHRlcjogKGk6IEZvZWhuTGlzdEl0ZW0pID0+XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmxpc3RJdGVtRGVzY3JpcHRpb25zW2luZGV4XS5nZXRGb3JtYXR0ZWRWYWx1ZShpKVxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgdGhpcy50YWJsZUNvbmZpZ3VyYXRpb24ucHVzaCh7XG4gICAgICAgICAgICAgICAgaWQ6ICdhY3Rpb25zJyxcbiAgICAgICAgICAgICAgICBjb2x1bW5MYWJlbEtleTogJ2ZvZWhuLXRhYmxlLmhlYWRlci5hY3Rpb25zJyxcbiAgICAgICAgICAgICAgICB0ZW1wbGF0ZTogdGhpcy50YWJsZUFjdGlvbkJ1dHRvbnNcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBzaG93TGluZShcbiAgICAgICAgaXRlbTogRm9laG5MaXN0SXRlbSxcbiAgICAgICAgaXRlbVBhcmFtOiBGb2Vobkxpc3RJdGVtRGVzY3JpcHRpb25cbiAgICApOiBib29sZWFuIHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSBpdGVtUGFyYW0uZ2V0Rm9ybWF0dGVkVmFsdWUoaXRlbSk7XG4gICAgICAgIGNvbnN0IGhpZGVJZkVtcHR5RXhpc3RzID0gISFpdGVtUGFyYW0uaGlkZUlmRW1wdHk7XG4gICAgICAgIGlmICh2YWx1ZSB8fCAhaGlkZUlmRW1wdHlFeGlzdHMpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIGl0ZW1QYXJhbS5oaWRlSWZFbXB0eShpdGVtKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGVkaXRJdGVtKGluZGV4OiBudW1iZXIgPSBudWxsKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaXRlbUVkaXQubmV4dChpbmRleCk7XG4gICAgfVxuXG4gICAgcmVtb3ZlSXRlbShpbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY29uZmlybU1vZGFsU2VydmljZVxuICAgICAgICAgICAgLm9wZW5Db25maXJtTW9kYWwoe1xuICAgICAgICAgICAgICAgIGh0bWxDb250ZW50OiAnU291aGFpdGV6LXZvdXMgdnJhaW1lbnQgc3VwcHJpbWVyIGNldCDDqWzDqW1lbnQgPydcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAudGhlbihcbiAgICAgICAgICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubGlzdC5zcGxpY2UoaW5kZXgsIDEpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZUxpc3RDb3B5Rm9yVGFibGUoKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pdGVtUmVtb3ZlZC5uZXh0KCk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIC8vIG5vdGhpbmcgdG8gZG9cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICApO1xuICAgIH1cblxuICAgIGNoYW5nZVNvcnQoc29ydEV2ZW50OiBUYWJsZVNvcnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zb3J0Tm93KHRoaXMubGlzdCwgc29ydEV2ZW50KTtcbiAgICAgICAgdGhpcy51cGRhdGVMaXN0Q29weUZvclRhYmxlKCk7XG4gICAgICAgIHRoaXMudGFibGVTb3J0ID0gc29ydEV2ZW50O1xuICAgIH1cblxuICAgIHByaXZhdGUgc29ydE5vdyhlbGVtczogRm9laG5MaXN0SXRlbVtdLCBzb3J0RXZlbnQ6IFRhYmxlU29ydCk6IHZvaWQge1xuICAgICAgICBlbGVtcy5zb3J0KChhLCBiKSA9PiB7XG4gICAgICAgICAgICBjb25zdCB2YWx1ZUEgPVxuICAgICAgICAgICAgICAgIHRoaXMubGlzdEl0ZW1EZXNjcmlwdGlvbnNbXG4gICAgICAgICAgICAgICAgICAgIHNvcnRFdmVudC5zb3J0QXR0cmlidXRlXG4gICAgICAgICAgICAgICAgXS5nZXRGb3JtYXR0ZWRWYWx1ZShhKTtcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlQiA9XG4gICAgICAgICAgICAgICAgdGhpcy5saXN0SXRlbURlc2NyaXB0aW9uc1tcbiAgICAgICAgICAgICAgICAgICAgc29ydEV2ZW50LnNvcnRBdHRyaWJ1dGVcbiAgICAgICAgICAgICAgICBdLmdldEZvcm1hdHRlZFZhbHVlKGIpO1xuXG4gICAgICAgICAgICBpZiAoIXZhbHVlQSkge1xuICAgICAgICAgICAgICAgIHJldHVybiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCF2YWx1ZUIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gLTE7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoc29ydEV2ZW50LnNvcnREaXJlY3Rpb24gPT09ICdBU0MnKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlQS5sb2NhbGVDb21wYXJlKHZhbHVlQik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdmFsdWVCLmxvY2FsZUNvbXBhcmUodmFsdWVBKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVMaXN0Q29weUZvclRhYmxlKCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuc2hvd0FzVGFibGUpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5saXN0Q29weUZvclRhYmxlID0gT2JqZWN0SGVscGVyLmRlZXBDb3B5KHRoaXMubGlzdCk7XG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiIsIjxzZWN0aW9uXG4gICAgY2xhc3M9XCJmb3JtLWdyb3VwIGNsZWFyYWJsZS1pbnB1dC1mb3JtLWdyb3VwXCJcbiAgICBbY2xhc3MuaGFzLWRhbmdlcl09XCJoYXNFcnJvcnNUb0Rpc3BsYXkoKVwiXG4gICAgW2NsYXNzLnZkLWZvcm0tZ3JvdXAtZGFuZ2VyXT1cImhhc0Vycm9yc1RvRGlzcGxheSgpXCJcbiAgICBbYXR0ci5pZF09XCJidWlsZElkKCdDb250YWluZXInKVwiXG4gICAgdGFiaW5kZXg9XCItMVwiXG4+XG4gICAgPGxhYmVsXG4gICAgICAgIGNsYXNzPVwiZm9ybS1sYWJlbFwiXG4gICAgICAgIFthdHRyLmZvcl09XCJidWlsZENoaWxkSWQoKVwiXG4gICAgICAgICpuZ0lmPVwibGFiZWwgJiYgdHlwZSAhPT0gJ2hpZGRlbidcIlxuICAgICAgICBbbmdDbGFzc109XCJpc0xhYmVsU3JPbmx5ID8gJ3Zpc3VhbGx5LWhpZGRlbicgOiBsYWJlbFN0eWxlTW9kaWZpZXJcIlxuICAgID5cbiAgICAgICAgPHNwYW4gW2lubmVySFRNTF09XCJsYWJlbFwiPjwvc3Bhbj5cbiAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICpuZ0lmPVwiIXJlcXVpcmVkICYmICFoaWRlTm90UmVxdWlyZWRFeHRyYUxhYmVsXCJcbiAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgID5cbiAgICAgICAgICAgIHt7ICdmb2Vobi1pbnB1dC5vcHRpb25hbCcgfCBmcm9tRGljdGlvbmFyeSB9fVxuICAgICAgICA8L3NwYW4+XG4gICAgPC9sYWJlbD5cblxuICAgIDxmb2Vobi12YWxpZGF0aW9uLWFsZXJ0cyBbY29tcG9uZW50XT1cInRoaXNcIj48L2ZvZWhuLXZhbGlkYXRpb24tYWxlcnRzPlxuXG4gICAgPHNtYWxsXG4gICAgICAgICpuZ0lmPVwiaGVscFRleHQgJiYgdHlwZSAhPT0gJ2hpZGRlbidcIlxuICAgICAgICBbYXR0ci5pZF09XCJidWlsZENoaWxkSWQoKSArICdIZWxwJ1wiXG4gICAgICAgIGNsYXNzPVwiZm9ybS10ZXh0IHRleHQtc2Vjb25kYXJ5XCJcbiAgICAgICAgW2lubmVySFRNTF09XCJoZWxwVGV4dFwiXG4gICAgPjwvc21hbGw+XG5cbiAgICA8c2VjdGlvbiAqbmdJZj1cIiFzaG93QXNUYWJsZVwiPlxuICAgICAgICA8dWwgY2xhc3M9XCJsaXN0LXVuc3R5bGVkXCIgYXJpYS1kZXNjcmliZWRieT1cInNvbW1haXJlLWhlbHAtYWx0XCI+XG4gICAgICAgICAgICA8bGlcbiAgICAgICAgICAgICAgICBbaWRdPVwiJ2xpc3Qtc3VtbWFyeS0nICsgaXRlbS50cmFja2luZ0luZGV4XCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cIm10LTMgYm9yZGVyLWJvdHRvbVwiXG4gICAgICAgICAgICAgICAgKm5nRm9yPVwiXG4gICAgICAgICAgICAgICAgICAgIGxldCBpdGVtIG9mIGxpc3Q7XG4gICAgICAgICAgICAgICAgICAgIGxldCBpdGVtSW5kZXggPSBpbmRleDtcbiAgICAgICAgICAgICAgICAgICAgdHJhY2tCeTogdHJhY2tGb2Vobkxpc3RJdGVtXG4gICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWJhc2VsaW5lIGZsZXgtd3JhcFwiPlxuICAgICAgICAgICAgICAgICAgICA8aDQgY2xhc3M9XCJtdC0wIG1lLTNcIj57eyBnZXRMaXN0SXRlbVRpdGxlKGl0ZW0pIH19PC9oND5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtcy1hdXRvXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8Zm9laG4tZXJyb3ItcGlsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpbmNvbXBsZXRlSW5kaWNhdG9yT25seV09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZXJyb3JQcmVmaXhdPVwibmFtZSArICdbJyArIGl0ZW1JbmRleCArICddJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICA+PC9mb2Vobi1lcnJvci1waWxsPlxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRsIGNsYXNzPVwibWItMFwiPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgaXRlbVBhcmFtIG9mIGxpc3RJdGVtRGVzY3JpcHRpb25zO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYWNrQnk6IHRyYWNrRm9laG5MaXN0SXRlbURlc2NyaXB0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJkLWZsZXggZmxleC13cmFwIGl0ZW0tbGluZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJzaG93TGluZShpdGVtLCBpdGVtUGFyYW0pXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZHQgY2xhc3M9XCJtZS0xXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGl0ZW1QYXJhbS5sYWJlbCB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZHQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRkIGNsYXNzPVwibXMtYXV0byB0ZXh0LWVuZFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBpdGVtUGFyYW0uZ2V0Rm9ybWF0dGVkVmFsdWUoaXRlbSkgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwvZGw+XG4gICAgICAgICAgICAgICAgPHVsIGNsYXNzPVwibGlzdC1pbmxpbmUgbWItMyBtdC0wXCI+XG4gICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz1cImxpc3QtaW5saW5lLWl0ZW1cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2lkXT1cImJ1aWxkQ2hpbGRJZCgnLWVkaXQtbGluay0nICsgaXRlbUluZGV4KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaHJlZj1cIiNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7IGVkaXRJdGVtKGl0ZW1JbmRleClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1vZGlmaWVyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInZpc3VhbGx5LWhpZGRlblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGdldExpc3RJdGVtVGl0bGUoaXRlbSkgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPVwibGlzdC1pbmxpbmUtaXRlbVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgJm5ic3A7XG4gICAgICAgICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpZF09XCJidWlsZENoaWxkSWQoJy1kZWxldGUtbGluay0nICsgaXRlbUluZGV4KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaHJlZj1cIiNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7IHJlbW92ZUl0ZW0oaXRlbUluZGV4KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgU3VwcHJpbWVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2aXN1YWxseS1oaWRkZW5cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgZ2V0TGlzdEl0ZW1UaXRsZShpdGVtKSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICA8L3VsPlxuICAgICAgICAgICAgPC9saT5cbiAgICAgICAgPC91bD5cbiAgICA8L3NlY3Rpb24+XG5cbiAgICA8c2VjdGlvbiAqbmdJZj1cInNob3dBc1RhYmxlICYmICEhdGFibGVDb25maWd1cmF0aW9uPy5sZW5ndGhcIj5cbiAgICAgICAgPGZvZWhuLXRhYmxlXG4gICAgICAgICAgICBbaWRdPVwiYnVpbGRDaGlsZE5hbWUoJ3RhYmxlJylcIlxuICAgICAgICAgICAgKm5nSWY9XCIhIWxpc3RDb3B5Rm9yVGFibGU/Lmxlbmd0aFwiXG4gICAgICAgICAgICBbbGlzdF09XCJsaXN0Q29weUZvclRhYmxlXCJcbiAgICAgICAgICAgIFtpdGVtc1BlclBhZ2VdPVwiMTAwMDAwMFwiXG4gICAgICAgICAgICBbY29sdW1uc0NvbmZpZ3VyYXRpb25dPVwidGFibGVDb25maWd1cmF0aW9uXCJcbiAgICAgICAgICAgIFtzb3J0XT1cInRhYmxlU29ydFwiXG4gICAgICAgICAgICAoc29ydENoYW5nZSk9XCJjaGFuZ2VTb3J0KCRldmVudClcIlxuICAgICAgICAgICAgW3RyYWNrQnlGbl09XCJ0cmFja0ZvZWhuTGlzdEl0ZW1cIlxuICAgICAgICA+PC9mb2Vobi10YWJsZT5cbiAgICA8L3NlY3Rpb24+XG5cbiAgICA8c2VjdGlvbiBbbmdDbGFzc109XCJ7ICdtdC01JzogIXNob3dBc1RhYmxlIH1cIj5cbiAgICAgICAgPGgyIGNsYXNzPVwidmlzdWFsbHktaGlkZGVuXCI+QWN0aW9uPC9oMj5cbiAgICAgICAgPHVsIGNsYXNzPVwibGlzdC1pbmxpbmUgbWItM1wiPlxuICAgICAgICAgICAgPGxpIGNsYXNzPVwibGlzdC1pbmxpbmUtaXRlbVwiPlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgW2lkXT1cImJ1aWxkQ2hpbGRJZCgnLWFkZC1idXR0b24nKVwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5XCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImVkaXRJdGVtKClcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgQWpvdXRlclxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9saT5cbiAgICAgICAgPC91bD5cbiAgICA8L3NlY3Rpb24+XG48L3NlY3Rpb24+XG5cbjxuZy10ZW1wbGF0ZSAjdGFibGVBY3Rpb25CdXR0b25zIGxldC1pbmRleD1cImluZGV4XCI+XG4gICAgPGRpdiBjbGFzcz1cImQtaW5saW5lLWZsZXhcIj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgW2lkXT1cImJ1aWxkQ2hpbGRJZCgnLWVkaXQtYnV0dG9uLScgKyBpbmRleClcIlxuICAgICAgICAgICAgY2xhc3M9XCJidG4gYmctdHJhbnNwYXJlbnQgbWUtM1wiXG4gICAgICAgICAgICAoY2xpY2spPVwiZWRpdEl0ZW0oaW5kZXgpXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPGZvZWhuLWljb24tZWRpdCBbdGl0bGVdPVwiJ01vZGlmaWVyJ1wiPjwvZm9laG4taWNvbi1lZGl0PlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgW2lkXT1cImJ1aWxkQ2hpbGRJZCgnLWRlbGV0ZS1idXR0b24tJyArIGluZGV4KVwiXG4gICAgICAgICAgICBjbGFzcz1cImJ0biBiZy10cmFuc3BhcmVudFwiXG4gICAgICAgICAgICAoY2xpY2spPVwicmVtb3ZlSXRlbShpbmRleClcIlxuICAgICAgICA+XG4gICAgICAgICAgICA8Zm9laG4taWNvbi10cmFzaC1hbHQgW3RpdGxlXT1cIidTdXBwcmltZXInXCI+PC9mb2Vobi1pY29uLXRyYXNoLWFsdD5cbiAgICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
157
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9laG4tbGlzdC1zdW1tYXJ5LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ByZXN0YXRpb25zLW5nL3NyYy9mb2Vobi1tZW51LXByZXN0YXRpb24vZm9laG4tbGlzdC1zdW1tYXJ5L2ZvZWhuLWxpc3Qtc3VtbWFyeS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVzdGF0aW9ucy1uZy9zcmMvZm9laG4tbWVudS1wcmVzdGF0aW9uL2ZvZWhuLWxpc3Qtc3VtbWFyeS9mb2Vobi1saXN0LXN1bW1hcnkuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVILFNBQVMsRUFDVCxZQUFZLEVBQ1osVUFBVSxFQUNWLEtBQUssRUFHTCxNQUFNLEVBSU4sU0FBUyxFQUNaLE1BQU0sZUFBZSxDQUFDO0FBR3ZCLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBRzlFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7Ozs7Ozs7OztBQWdCM0QsTUFBTSxPQUFPLHlCQUNULFNBQVEsbUJBQW9DO0lBK0I1QyxZQUNZLG1CQUE2QyxFQUM3QyxNQUFjO1FBRXRCLEtBQUssRUFBRSxDQUFDO1FBSEEsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUEwQjtRQUM3QyxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBdkIxQixnQkFBVyxHQUFHLEtBQUssQ0FBQztRQUdwQixnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFHdkMsYUFBUSxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFRdEMsY0FBUyxHQUFjO1lBQ25CLGFBQWEsRUFBRSxLQUFLO1NBQ3ZCLENBQUM7UUFFTSxVQUFLLEdBQW9CLEVBQUUsQ0FBQztRQUM1QiwwQkFBcUIsR0FBK0IsRUFBRSxDQUFDO1FBZ0MvRCx1QkFBa0IsR0FBbUMsQ0FD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ICAgIEV2ZW50RW1pdHRlcixcbiAgICBmb3J3YXJkUmVmLFxuICAgIElucHV0LFxuICAgIE5nWm9uZSxcbiAgICBPbkNoYW5nZXMsXG4gICAgT3V0cHV0LFxuICAgIFNpbXBsZUNoYW5nZXMsXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgVHJhY2tCeUZ1bmN0aW9uLFxuICAgIFZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgRm9laG5Db25maXJtTW9kYWxTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vZm9laG4tY29uZmlybS1tb2RhbC9mb2Vobi1jb25maXJtLW1vZGFsLnNlcnZpY2UnO1xuaW1wb3J0IHsgRm9laG5JbnB1dENvbXBvbmVudCB9IGZyb20gJy4uLy4uL2ZvZWhuLWlucHV0L2ZvZWhuLWlucHV0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGb2VoblRhYmxlQ29sdW1uQ29uZmlndXJhdGlvbiB9IGZyb20gJy4uLy4uL2ZvZWhuLXRhYmxlL2ZvZWhuLXRhYmxlLWNvbHVtbi1jb25maWd1cmF0aW9uJztcbmltcG9ydCB7IFRhYmxlU29ydCB9IGZyb20gJy4uLy4uL2ZvZWhuLXRhYmxlL3RhYmxlU29ydCc7XG5pbXBvcnQgeyBPYmplY3RIZWxwZXIgfSBmcm9tICcuLi8uLi9oZWxwZXJzL29iamVjdC5oZWxwZXInO1xuaW1wb3J0IHsgRm9laG5MaXN0SXRlbSB9IGZyb20gJy4vZm9laG4tbGlzdC1pdGVtJztcbmltcG9ydCB7IEZvZWhuTGlzdEl0ZW1EZXNjcmlwdGlvbiB9IGZyb20gJy4vZm9laG4tbGlzdC1pdGVtLWRlc2NyaXB0aW9uJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdmb2Vobi1saXN0LXN1bW1hcnknLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9mb2Vobi1saXN0LXN1bW1hcnkuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2ZvZWhuLWxpc3Qtc3VtbWFyeS5jb21wb25lbnQuY3NzJ10sXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IEZvZWhuSW5wdXRDb21wb25lbnQsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBGb2Vobkxpc3RTdW1tYXJ5Q29tcG9uZW50KSxcbiAgICAgICAgICAgIG11bHRpOiB0cnVlXG4gICAgICAgIH1cbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIEZvZWhuTGlzdFN1bW1hcnlDb21wb25lbnRcbiAgICBleHRlbmRzIEZvZWhuSW5wdXRDb21wb25lbnQ8Rm9laG5MaXN0SXRlbVtdPlxuICAgIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25DaGFuZ2VzXG57XG4gICAgQFZpZXdDaGlsZCgndGFibGVBY3Rpb25CdXR0b25zJylcbiAgICB0YWJsZUFjdGlvbkJ1dHRvbnM6IFRlbXBsYXRlUmVmPHVua25vd24+O1xuXG4gICAgQElucHV0KClcbiAgICBnZXRMaXN0SXRlbVRpdGxlOiAoaXRlbTogRm9laG5MaXN0SXRlbSkgPT4gc3RyaW5nO1xuXG4gICAgQElucHV0KClcbiAgICBzaG93QXNUYWJsZSA9IGZhbHNlO1xuXG4gICAgQE91dHB1dCgpXG4gICAgaXRlbVJlbW92ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgICBAT3V0cHV0KClcbiAgICBpdGVtRWRpdCA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuXG4gICAgLy8gc28gZm9laG4tdGFibGUncyBOZ09uQ2hhbmdlcyBjYW4gZGV0ZWN0IGNoYW5nZXNcbiAgICAvLyB3ZSBtYWludGFpbiBhIDJuZCBsaXN0IHRoYXQgaXMgcmVnZW5lcmF0ZWQgd2hlbiB0aGUgbWFpbiBsaXN0IGlzIHVwZGF0ZWRcbiAgICBsaXN0Q29weUZvclRhYmxlOiBGb2Vobkxpc3RJdGVtW107XG5cbiAgICB0YWJsZUNvbmZpZ3VyYXRpb246IEZvZWhuVGFibGVDb2x1bW5Db25maWd1cmF0aW9uPEZvZWhuTGlzdEl0ZW0+W107XG5cbiAgICB0YWJsZVNvcnQ6IFRhYmxlU29ydCA9IHtcbiAgICAgICAgc29ydERpcmVjdGlvbjogJ0FTQydcbiAgICB9O1xuXG4gICAgcHJpdmF0ZSBsaXN0XzogRm9laG5MaXN0SXRlbVtdID0gW107XG4gICAgcHJpdmF0ZSBsaXN0SXRlbURlc2NyaXB0aW9uc186IEZvZWhuTGlzdEl0ZW1EZXNjcmlwdGlvbltdID0gW107XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBjb25maXJtTW9kYWxTZXJ2aWNlOiBGb2VobkNvbmZpcm1Nb2RhbFNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgbmdab25lOiBOZ1pvbmVcbiAgICApIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICB9XG5cbiAgICBnZXQgbGlzdCgpOiBGb2Vobkxpc3RJdGVtW10ge1xuICAgICAgICByZXR1cm4gdGhpcy5saXN0XztcbiAgICB9XG5cbiAgICBASW5wdXQoKVxuICAgIHNldCBsaXN0KGl0ZW1zOiBGb2Vobkxpc3RJdGVtW10pIHtcbiAgICAgICAgaWYgKE9iamVjdEhlbHBlci5pc0RpZmZlcmVudChpdGVtcywgdGhpcy5saXN0XykpIHtcbiAgICAgICAgICAgIHRoaXMubGlzdF8gPSBpdGVtcztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbWVtYmVyLW9yZGVyaW5nXG4gICAgZ2V0IGxpc3RJdGVtRGVzY3JpcHRpb25zKCk6IEZvZWhuTGlzdEl0ZW1EZXNjcmlwdGlvbltdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubGlzdEl0ZW1EZXNjcmlwdGlvbnNfO1xuICAgIH1cblxuICAgIEBJbnB1dCgpXG4gICAgc2V0IGxpc3RJdGVtRGVzY3JpcHRpb25zKGl0ZW1zOiBGb2Vobkxpc3RJdGVtRGVzY3JpcHRpb25bXSkge1xuICAgICAgICBpZiAoT2JqZWN0SGVscGVyLmlzRGlmZmVyZW50KGl0ZW1zLCB0aGlzLmxpc3RJdGVtRGVzY3JpcHRpb25zXykpIHtcbiAgICAgICAgICAgIHRoaXMubGlzdEl0ZW1EZXNjcmlwdGlvbnNfID0gaXRlbXM7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB0cmFja0ZvZWhuTGlzdEl0ZW06IFRyYWNrQnlGdW5jdGlvbjxGb2Vobkxpc3RJdGVtPiA9IChcbiAgICAgICAgaW5kZXg6IG51bWJlcixcbiAgICAgICAgaXRlbTogRm9laG5MaXN0SXRlbVxuICAgICkgPT4gaXRlbS50cmFja2luZ0luZGV4IHx8IGluZGV4O1xuXG4gICAgdHJhY2tGb2Vobkxpc3RJdGVtRGVzY3JpcHRpb246IFRyYWNrQnlGdW5jdGlvbjxGb2Vobkxpc3RJdGVtRGVzY3JpcHRpb24+ID0gKFxuICAgICAgICBpbmRleDogbnVtYmVyLFxuICAgICAgICBpdGVtOiBGb2Vobkxpc3RJdGVtRGVzY3JpcHRpb25cbiAgICApID0+IGl0ZW0ubGFiZWwgfHwgaW5kZXg7XG5cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIGlmICghIWNoYW5nZXM/Lmxpc3Q/LmN1cnJlbnRWYWx1ZT8ubGVuZ3RoIHx8ICEhY2hhbmdlcy5zaG93QXNUYWJsZSkge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVMaXN0Q29weUZvclRhYmxlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nQWZ0ZXJWaWV3SW5pdCgpO1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcnhqcy1hbmd1bGFyL3ByZWZlci1hc3luYy1waXBlXG4gICAgICAgIHRoaXMubmdab25lLm9uTWljcm90YXNrRW1wdHkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMudGFibGVDb25maWd1cmF0aW9uID0gdGhpcy5saXN0SXRlbURlc2NyaXB0aW9ucy5tYXAoXG4gICAgICAgICAgICAgICAgKGl0ZW0sIGluZGV4KSA9PiAoe1xuICAgICAgICAgICAgICAgICAgICBpZDogYGNvbC0ke2luZGV4fWAsXG4gICAgICAgICAgICAgICAgICAgIHNvcnRBdHRyaWJ1dGU6IGluZGV4LnRvU3RyaW5nKCksXG4gICAgICAgICAgICAgICAgICAgIGNvbHVtbkxhYmVsS2V5OiBpdGVtLmxhYmVsLFxuICAgICAgICAgICAgICAgICAgICB2YWx1ZUdldHRlcjogKGk6IEZvZWhuTGlzdEl0ZW0pID0+XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmxpc3RJdGVtRGVzY3JpcHRpb25zW2luZGV4XS5nZXRGb3JtYXR0ZWRWYWx1ZShpKVxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgdGhpcy50YWJsZUNvbmZpZ3VyYXRpb24ucHVzaCh7XG4gICAgICAgICAgICAgICAgaWQ6ICdhY3Rpb25zJyxcbiAgICAgICAgICAgICAgICBjb2x1bW5MYWJlbEtleTogJ2ZvZWhuLXRhYmxlLmhlYWRlci5hY3Rpb25zJyxcbiAgICAgICAgICAgICAgICB0ZW1wbGF0ZTogdGhpcy50YWJsZUFjdGlvbkJ1dHRvbnNcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBzaG93TGluZShcbiAgICAgICAgaXRlbTogRm9laG5MaXN0SXRlbSxcbiAgICAgICAgaXRlbVBhcmFtOiBGb2Vobkxpc3RJdGVtRGVzY3JpcHRpb25cbiAgICApOiBib29sZWFuIHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSBpdGVtUGFyYW0uZ2V0Rm9ybWF0dGVkVmFsdWUoaXRlbSk7XG4gICAgICAgIGNvbnN0IGhpZGVJZkVtcHR5RXhpc3RzID0gISFpdGVtUGFyYW0uaGlkZUlmRW1wdHk7XG4gICAgICAgIGlmICh2YWx1ZSB8fCAhaGlkZUlmRW1wdHlFeGlzdHMpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIGl0ZW1QYXJhbS5oaWRlSWZFbXB0eShpdGVtKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGVkaXRJdGVtKGluZGV4OiBudW1iZXIgPSBudWxsKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaXRlbUVkaXQubmV4dChpbmRleCk7XG4gICAgfVxuXG4gICAgcmVtb3ZlSXRlbShpbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY29uZmlybU1vZGFsU2VydmljZVxuICAgICAgICAgICAgLm9wZW5Db25maXJtTW9kYWwoe1xuICAgICAgICAgICAgICAgIGh0bWxDb250ZW50OiAnU291aGFpdGV6LXZvdXMgdnJhaW1lbnQgc3VwcHJpbWVyIGNldCDDqWzDqW1lbnQgPydcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAudGhlbihcbiAgICAgICAgICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubGlzdC5zcGxpY2UoaW5kZXgsIDEpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZUxpc3RDb3B5Rm9yVGFibGUoKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pdGVtUmVtb3ZlZC5uZXh0KCk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIC8vIG5vdGhpbmcgdG8gZG9cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICApO1xuICAgIH1cblxuICAgIGNoYW5nZVNvcnQoc29ydEV2ZW50OiBUYWJsZVNvcnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zb3J0Tm93KHRoaXMubGlzdCwgc29ydEV2ZW50KTtcbiAgICAgICAgdGhpcy51cGRhdGVMaXN0Q29weUZvclRhYmxlKCk7XG4gICAgICAgIHRoaXMudGFibGVTb3J0ID0gc29ydEV2ZW50O1xuICAgIH1cblxuICAgIHByaXZhdGUgc29ydE5vdyhlbGVtczogRm9laG5MaXN0SXRlbVtdLCBzb3J0RXZlbnQ6IFRhYmxlU29ydCk6IHZvaWQge1xuICAgICAgICBlbGVtcy5zb3J0KChhLCBiKSA9PiB7XG4gICAgICAgICAgICBjb25zdCB2YWx1ZUEgPVxuICAgICAgICAgICAgICAgIHRoaXMubGlzdEl0ZW1EZXNjcmlwdGlvbnNbXG4gICAgICAgICAgICAgICAgICAgIHNvcnRFdmVudC5zb3J0QXR0cmlidXRlXG4gICAgICAgICAgICAgICAgXS5nZXRGb3JtYXR0ZWRWYWx1ZShhKTtcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlQiA9XG4gICAgICAgICAgICAgICAgdGhpcy5saXN0SXRlbURlc2NyaXB0aW9uc1tcbiAgICAgICAgICAgICAgICAgICAgc29ydEV2ZW50LnNvcnRBdHRyaWJ1dGVcbiAgICAgICAgICAgICAgICBdLmdldEZvcm1hdHRlZFZhbHVlKGIpO1xuXG4gICAgICAgICAgICBpZiAoIXZhbHVlQSkge1xuICAgICAgICAgICAgICAgIHJldHVybiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCF2YWx1ZUIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gLTE7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoc29ydEV2ZW50LnNvcnREaXJlY3Rpb24gPT09ICdBU0MnKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlQS5sb2NhbGVDb21wYXJlKHZhbHVlQik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdmFsdWVCLmxvY2FsZUNvbXBhcmUodmFsdWVBKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVMaXN0Q29weUZvclRhYmxlKCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuc2hvd0FzVGFibGUpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5saXN0Q29weUZvclRhYmxlID0gT2JqZWN0SGVscGVyLmRlZXBDb3B5KHRoaXMubGlzdCk7XG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiIsIjxzZWN0aW9uXG4gICAgY2xhc3M9XCJmb3JtLWdyb3VwIGNsZWFyYWJsZS1pbnB1dC1mb3JtLWdyb3VwXCJcbiAgICBbY2xhc3MuaGFzLWRhbmdlcl09XCJoYXNFcnJvcnNUb0Rpc3BsYXkoKVwiXG4gICAgW2NsYXNzLnZkLWZvcm0tZ3JvdXAtZGFuZ2VyXT1cImhhc0Vycm9yc1RvRGlzcGxheSgpXCJcbiAgICBbYXR0ci5pZF09XCJidWlsZElkKCdDb250YWluZXInKVwiXG4gICAgdGFiaW5kZXg9XCItMVwiXG4+XG4gICAgPGxhYmVsXG4gICAgICAgIGNsYXNzPVwiZm9ybS1sYWJlbFwiXG4gICAgICAgIFthdHRyLmZvcl09XCJidWlsZENoaWxkSWQoKVwiXG4gICAgICAgICpuZ0lmPVwibGFiZWwgJiYgdHlwZSAhPT0gJ2hpZGRlbidcIlxuICAgICAgICBbbmdDbGFzc109XCJpc0xhYmVsU3JPbmx5ID8gJ3Zpc3VhbGx5LWhpZGRlbicgOiBsYWJlbFN0eWxlTW9kaWZpZXJcIlxuICAgID5cbiAgICAgICAgPHNwYW4gW2lubmVySFRNTF09XCJsYWJlbFwiPjwvc3Bhbj5cbiAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICpuZ0lmPVwiIXJlcXVpcmVkICYmICFoaWRlTm90UmVxdWlyZWRFeHRyYUxhYmVsXCJcbiAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgID5cbiAgICAgICAgICAgIHt7ICdmb2Vobi1pbnB1dC5vcHRpb25hbCcgfCBmcm9tRGljdGlvbmFyeSB9fVxuICAgICAgICA8L3NwYW4+XG4gICAgPC9sYWJlbD5cblxuICAgIDxmb2Vobi12YWxpZGF0aW9uLWFsZXJ0cyBbY29tcG9uZW50XT1cInRoaXNcIj48L2ZvZWhuLXZhbGlkYXRpb24tYWxlcnRzPlxuXG4gICAgPHNtYWxsXG4gICAgICAgICpuZ0lmPVwiaGVscFRleHQgJiYgdHlwZSAhPT0gJ2hpZGRlbidcIlxuICAgICAgICBbYXR0ci5pZF09XCJidWlsZENoaWxkSWQoKSArICdIZWxwJ1wiXG4gICAgICAgIGNsYXNzPVwiZm9ybS10ZXh0IHRleHQtc2Vjb25kYXJ5XCJcbiAgICAgICAgW2lubmVySFRNTF09XCJoZWxwVGV4dFwiXG4gICAgPjwvc21hbGw+XG5cbiAgICA8c2VjdGlvbiAqbmdJZj1cIiFzaG93QXNUYWJsZVwiPlxuICAgICAgICA8dWwgY2xhc3M9XCJsaXN0LXVuc3R5bGVkXCIgYXJpYS1kZXNjcmliZWRieT1cInNvbW1haXJlLWhlbHAtYWx0XCI+XG4gICAgICAgICAgICA8bGlcbiAgICAgICAgICAgICAgICBbaWRdPVwiJ2xpc3Qtc3VtbWFyeS0nICsgaXRlbS50cmFja2luZ0luZGV4XCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cIm10LTMgYm9yZGVyLWJvdHRvbVwiXG4gICAgICAgICAgICAgICAgKm5nRm9yPVwiXG4gICAgICAgICAgICAgICAgICAgIGxldCBpdGVtIG9mIGxpc3Q7XG4gICAgICAgICAgICAgICAgICAgIGxldCBpdGVtSW5kZXggPSBpbmRleDtcbiAgICAgICAgICAgICAgICAgICAgdHJhY2tCeTogdHJhY2tGb2Vobkxpc3RJdGVtXG4gICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWJhc2VsaW5lIGZsZXgtd3JhcFwiPlxuICAgICAgICAgICAgICAgICAgICA8aDQgY2xhc3M9XCJtdC0wIG1lLTNcIj57eyBnZXRMaXN0SXRlbVRpdGxlKGl0ZW0pIH19PC9oND5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtcy1hdXRvXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8Zm9laG4tZXJyb3ItcGlsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpbmNvbXBsZXRlSW5kaWNhdG9yT25seV09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZXJyb3JQcmVmaXhdPVwibmFtZSArICdbJyArIGl0ZW1JbmRleCArICddJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICA+PC9mb2Vobi1lcnJvci1waWxsPlxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRsIGNsYXNzPVwibWItMFwiPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgaXRlbVBhcmFtIG9mIGxpc3RJdGVtRGVzY3JpcHRpb25zO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYWNrQnk6IHRyYWNrRm9laG5MaXN0SXRlbURlc2NyaXB0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJkLWZsZXggZmxleC13cmFwIGl0ZW0tbGluZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJzaG93TGluZShpdGVtLCBpdGVtUGFyYW0pXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZHQgY2xhc3M9XCJtZS0xXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGl0ZW1QYXJhbS5sYWJlbCB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZHQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRkIGNsYXNzPVwibXMtYXV0byB0ZXh0LWVuZFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBpdGVtUGFyYW0uZ2V0Rm9ybWF0dGVkVmFsdWUoaXRlbSkgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwvZGw+XG4gICAgICAgICAgICAgICAgPHVsIGNsYXNzPVwibGlzdC1pbmxpbmUgbWItMyBtdC0wXCI+XG4gICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz1cImxpc3QtaW5saW5lLWl0ZW1cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2lkXT1cImJ1aWxkQ2hpbGRJZCgnLWVkaXQtbGluay0nICsgaXRlbUluZGV4KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaHJlZj1cIiNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7IGVkaXRJdGVtKGl0ZW1JbmRleClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1vZGlmaWVyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInZpc3VhbGx5LWhpZGRlblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGdldExpc3RJdGVtVGl0bGUoaXRlbSkgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPVwibGlzdC1pbmxpbmUtaXRlbVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgJm5ic3A7XG4gICAgICAgICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpZF09XCJidWlsZENoaWxkSWQoJy1kZWxldGUtbGluay0nICsgaXRlbUluZGV4KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaHJlZj1cIiNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7IHJlbW92ZUl0ZW0oaXRlbUluZGV4KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgU3VwcHJpbWVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2aXN1YWxseS1oaWRkZW5cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgZ2V0TGlzdEl0ZW1UaXRsZShpdGVtKSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICA8L3VsPlxuICAgICAgICAgICAgPC9saT5cbiAgICAgICAgPC91bD5cbiAgICA8L3NlY3Rpb24+XG5cbiAgICA8c2VjdGlvbiAqbmdJZj1cInNob3dBc1RhYmxlICYmICEhdGFibGVDb25maWd1cmF0aW9uPy5sZW5ndGhcIj5cbiAgICAgICAgPGZvZWhuLXRhYmxlXG4gICAgICAgICAgICBbaWRdPVwiYnVpbGRDaGlsZE5hbWUoJ3RhYmxlJylcIlxuICAgICAgICAgICAgKm5nSWY9XCIhIWxpc3RDb3B5Rm9yVGFibGU/Lmxlbmd0aFwiXG4gICAgICAgICAgICBbbGlzdF09XCJsaXN0Q29weUZvclRhYmxlXCJcbiAgICAgICAgICAgIFtpdGVtc1BlclBhZ2VdPVwiMTAwMDAwMFwiXG4gICAgICAgICAgICBbY29sdW1uc0NvbmZpZ3VyYXRpb25dPVwidGFibGVDb25maWd1cmF0aW9uXCJcbiAgICAgICAgICAgIFtzb3J0XT1cInRhYmxlU29ydFwiXG4gICAgICAgICAgICAoc29ydENoYW5nZSk9XCJjaGFuZ2VTb3J0KCRldmVudClcIlxuICAgICAgICAgICAgW3RyYWNrQnlGbl09XCJ0cmFja0ZvZWhuTGlzdEl0ZW1cIlxuICAgICAgICA+PC9mb2Vobi10YWJsZT5cbiAgICA8L3NlY3Rpb24+XG5cbiAgICA8c2VjdGlvbiBbbmdDbGFzc109XCJ7ICdtdC01JzogIXNob3dBc1RhYmxlIH1cIj5cbiAgICAgICAgPGgyIGNsYXNzPVwidmlzdWFsbHktaGlkZGVuXCI+QWN0aW9uPC9oMj5cbiAgICAgICAgPHVsIGNsYXNzPVwibGlzdC1pbmxpbmUgbWItM1wiPlxuICAgICAgICAgICAgPGxpIGNsYXNzPVwibGlzdC1pbmxpbmUtaXRlbVwiPlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgW2lkXT1cImJ1aWxkQ2hpbGRJZCgnLWFkZC1idXR0b24nKVwiXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tcHJpbWFyeVwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJlZGl0SXRlbSgpXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIEFqb3V0ZXJcbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvbGk+XG4gICAgICAgIDwvdWw+XG4gICAgPC9zZWN0aW9uPlxuPC9zZWN0aW9uPlxuXG48bmctdGVtcGxhdGUgI3RhYmxlQWN0aW9uQnV0dG9ucyBsZXQtaW5kZXg9XCJpbmRleFwiPlxuICAgIDxkaXYgY2xhc3M9XCJkLWlubGluZS1mbGV4XCI+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIFtpZF09XCJidWlsZENoaWxkSWQoJy1lZGl0LWJ1dHRvbi0nICsgaW5kZXgpXCJcbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgY2xhc3M9XCJidG4gYmctdHJhbnNwYXJlbnQgbWUtM1wiXG4gICAgICAgICAgICAoY2xpY2spPVwiZWRpdEl0ZW0oaW5kZXgpXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPGZvZWhuLWljb24tZWRpdCBbdGl0bGVdPVwiJ01vZGlmaWVyJ1wiPjwvZm9laG4taWNvbi1lZGl0PlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgW2lkXT1cImJ1aWxkQ2hpbGRJZCgnLWRlbGV0ZS1idXR0b24tJyArIGluZGV4KVwiXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJnLXRyYW5zcGFyZW50XCJcbiAgICAgICAgICAgIChjbGljayk9XCJyZW1vdmVJdGVtKGluZGV4KVwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxmb2Vobi1pY29uLXRyYXNoLWFsdCBbdGl0bGVdPVwiJ1N1cHByaW1lcidcIj48L2ZvZWhuLWljb24tdHJhc2gtYWx0PlxuICAgICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
@@ -52,11 +52,11 @@ export class FoehnModalComponent {
52
52
  }
53
53
  }
54
54
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: FoehnModalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
55
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.3", type: FoehnModalComponent, selector: "foehn-modal", inputs: { id: "id", name: "name", modalSize: "modalSize", modalBodyText: "modalBodyText", modalHeaderText: "modalHeaderText", closeable: "closeable", modalTriggerHtmlElement: "modalTriggerHtmlElement", isModalVisible: "isModalVisible" }, outputs: { isModalVisibleChange: "isModalVisibleChange" }, host: { listeners: { "keyup": "handleKeyboardEvent($event)" } }, viewQueries: [{ propertyName: "modalBody", first: true, predicate: ["modalBody"], descendants: true }, { propertyName: "modalTitle", first: true, predicate: ["modalTitle"], descendants: true }, { propertyName: "specificfooter", first: true, predicate: ["specificfooter"], descendants: true }, { propertyName: "modalDefaultCloseBtn", first: true, predicate: ["modalDefaultCloseBtn"], descendants: true }], ngImport: i0, template: "<div\n class=\"modal\"\n [id]=\"id || name\"\n role=\"dialog\"\n aria-labelledby=\"modalTitle\"\n aria-describedby=\"modalBody\"\n style=\"display: block\"\n *ngIf=\"isModalVisible\"\n cdkTrapFocus\n>\n <div class=\"modal-dialog modal-dialog-centered\" [ngClass]=\"modalSize\">\n <div class=\"modal-content\">\n <div\n class=\"modal-header d-flex\"\n [ngClass]=\"{ 'flex-row-reverse': closeable }\"\n >\n <button\n *ngIf=\"closeable\"\n (click)=\"isModalVisible = false\"\n type=\"button\"\n class=\"btn btn-close\"\n [attr.aria-label]=\"\n 'foehn-modal.btn-close.aria-label' | fromDictionary\n \"\n id=\"closeButton\"\n ></button>\n <h2\n class=\"modal-title h5\"\n id=\"modalTitle\"\n #modalTitle\n [innerHTML]=\"modalHeaderText\"\n ></h2>\n </div>\n <div class=\"modal-body\" id=\"modalBody\" #modalBody tabindex=\"-1\">\n <div *ngIf=\"modalBodyText\" [innerHTML]=\"modalBodyText\"></div>\n <ng-content></ng-content>\n </div>\n <div class=\"modal-footer w-100 d-block\">\n <div #specificfooter id=\"specificfooter\">\n <ng-content select=\"[modal-footer]\"></ng-content>\n </div>\n <ng-container *ngIf=\"!specificfooter.innerHTML.trim()\">\n <div modal-footer class=\"w-100\">\n <div class=\"d-md-flex\">\n <div class=\"ms-md-auto me-md-2 mb-2 mt-2\">\n <button\n (click)=\"isModalVisible = false\"\n class=\"btn btn-secondary w-100\"\n [attr.aria-label]=\"\n 'foehn-modal.btn-close.aria-label'\n | fromDictionary\n \"\n #modalDefaultCloseBtn\n >\n {{\n 'foehn-modal.btn-close.title'\n | fromDictionary\n }}\n </button>\n </div>\n </div>\n </div>\n </ng-container>\n </div>\n </div>\n </div>\n</div>\n", styles: [".modal{top:0;left:0;height:100%;width:100%;position:fixed;z-index:9999;overflow:auto;background-color:#000;background-color:#0006}.modal-title{margin-top:.5em!important}.modal-logo{width:30px}.modal-footer{padding-top:20px}.modal-content{-webkit-animation-name:redirect-animatetop;-webkit-animation-duration:.4s;animation-name:redirect-animatetop;animation-duration:.4s}@-webkit-keyframes redirect-animatetop{0%{top:-300px;opacity:0}to{top:0;opacity:1}}@keyframes redirect-animatetop{0%{top:-300px;opacity:0}to{top:0;opacity:1}}.redirect-modal-header{padding:14px 16px 10px;background-color:#152025;color:#fff}.redirect-modal-body{padding:10px 16px}.redirect-modal-footer{padding:14px 16px 10px;background-color:#152025;color:#fff}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "pipe", type: i3.SdkDictionaryPipe, name: "fromDictionary" }] }); }
55
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.3", type: FoehnModalComponent, selector: "foehn-modal", inputs: { id: "id", name: "name", modalSize: "modalSize", modalBodyText: "modalBodyText", modalHeaderText: "modalHeaderText", closeable: "closeable", modalTriggerHtmlElement: "modalTriggerHtmlElement", isModalVisible: "isModalVisible" }, outputs: { isModalVisibleChange: "isModalVisibleChange" }, host: { listeners: { "keyup": "handleKeyboardEvent($event)" } }, viewQueries: [{ propertyName: "modalBody", first: true, predicate: ["modalBody"], descendants: true }, { propertyName: "modalTitle", first: true, predicate: ["modalTitle"], descendants: true }, { propertyName: "specificfooter", first: true, predicate: ["specificfooter"], descendants: true }, { propertyName: "modalDefaultCloseBtn", first: true, predicate: ["modalDefaultCloseBtn"], descendants: true }], ngImport: i0, template: "<div\n class=\"modal\"\n [id]=\"id || name\"\n role=\"dialog\"\n aria-labelledby=\"modalTitle\"\n aria-describedby=\"modalBody\"\n style=\"display: block\"\n *ngIf=\"isModalVisible\"\n cdkTrapFocus\n>\n <div class=\"modal-dialog modal-dialog-centered\" [ngClass]=\"modalSize\">\n <div class=\"modal-content\">\n <div\n class=\"modal-header d-flex\"\n [ngClass]=\"{ 'flex-row-reverse': closeable }\"\n >\n <button\n *ngIf=\"closeable\"\n (click)=\"isModalVisible = false\"\n type=\"button\"\n class=\"btn btn-close\"\n [attr.aria-label]=\"\n 'foehn-modal.btn-close.aria-label' | fromDictionary\n \"\n id=\"closeButton\"\n ></button>\n <h2\n class=\"modal-title h5\"\n id=\"modalTitle\"\n #modalTitle\n [innerHTML]=\"modalHeaderText\"\n ></h2>\n </div>\n <div class=\"modal-body\" id=\"modalBody\" #modalBody tabindex=\"-1\">\n <div *ngIf=\"modalBodyText\" [innerHTML]=\"modalBodyText\"></div>\n <ng-content></ng-content>\n </div>\n <div class=\"modal-footer w-100 d-block\">\n <div #specificfooter id=\"specificfooter\">\n <ng-content select=\"[modal-footer]\"></ng-content>\n </div>\n <ng-container *ngIf=\"!specificfooter.innerHTML.trim()\">\n <div modal-footer class=\"w-100\">\n <div class=\"d-md-flex\">\n <div class=\"ms-md-auto me-md-2 mb-2 mt-2\">\n <button\n type=\"button\"\n (click)=\"isModalVisible = false\"\n class=\"btn btn-secondary w-100\"\n [attr.aria-label]=\"\n 'foehn-modal.btn-close.aria-label'\n | fromDictionary\n \"\n #modalDefaultCloseBtn\n >\n {{\n 'foehn-modal.btn-close.title'\n | fromDictionary\n }}\n </button>\n </div>\n </div>\n </div>\n </ng-container>\n </div>\n </div>\n </div>\n</div>\n", styles: [".modal{top:0;left:0;height:100%;width:100%;position:fixed;z-index:9999;overflow:auto;background-color:#000;background-color:#0006}.modal-title{margin-top:.5em!important}.modal-logo{width:30px}.modal-footer{padding-top:20px}.modal-content{-webkit-animation-name:redirect-animatetop;-webkit-animation-duration:.4s;animation-name:redirect-animatetop;animation-duration:.4s}@-webkit-keyframes redirect-animatetop{0%{top:-300px;opacity:0}to{top:0;opacity:1}}@keyframes redirect-animatetop{0%{top:-300px;opacity:0}to{top:0;opacity:1}}.redirect-modal-header{padding:14px 16px 10px;background-color:#152025;color:#fff}.redirect-modal-body{padding:10px 16px}.redirect-modal-footer{padding:14px 16px 10px;background-color:#152025;color:#fff}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "pipe", type: i3.SdkDictionaryPipe, name: "fromDictionary" }] }); }
56
56
  }
57
57
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: FoehnModalComponent, decorators: [{
58
58
  type: Component,
59
- args: [{ selector: 'foehn-modal', template: "<div\n class=\"modal\"\n [id]=\"id || name\"\n role=\"dialog\"\n aria-labelledby=\"modalTitle\"\n aria-describedby=\"modalBody\"\n style=\"display: block\"\n *ngIf=\"isModalVisible\"\n cdkTrapFocus\n>\n <div class=\"modal-dialog modal-dialog-centered\" [ngClass]=\"modalSize\">\n <div class=\"modal-content\">\n <div\n class=\"modal-header d-flex\"\n [ngClass]=\"{ 'flex-row-reverse': closeable }\"\n >\n <button\n *ngIf=\"closeable\"\n (click)=\"isModalVisible = false\"\n type=\"button\"\n class=\"btn btn-close\"\n [attr.aria-label]=\"\n 'foehn-modal.btn-close.aria-label' | fromDictionary\n \"\n id=\"closeButton\"\n ></button>\n <h2\n class=\"modal-title h5\"\n id=\"modalTitle\"\n #modalTitle\n [innerHTML]=\"modalHeaderText\"\n ></h2>\n </div>\n <div class=\"modal-body\" id=\"modalBody\" #modalBody tabindex=\"-1\">\n <div *ngIf=\"modalBodyText\" [innerHTML]=\"modalBodyText\"></div>\n <ng-content></ng-content>\n </div>\n <div class=\"modal-footer w-100 d-block\">\n <div #specificfooter id=\"specificfooter\">\n <ng-content select=\"[modal-footer]\"></ng-content>\n </div>\n <ng-container *ngIf=\"!specificfooter.innerHTML.trim()\">\n <div modal-footer class=\"w-100\">\n <div class=\"d-md-flex\">\n <div class=\"ms-md-auto me-md-2 mb-2 mt-2\">\n <button\n (click)=\"isModalVisible = false\"\n class=\"btn btn-secondary w-100\"\n [attr.aria-label]=\"\n 'foehn-modal.btn-close.aria-label'\n | fromDictionary\n \"\n #modalDefaultCloseBtn\n >\n {{\n 'foehn-modal.btn-close.title'\n | fromDictionary\n }}\n </button>\n </div>\n </div>\n </div>\n </ng-container>\n </div>\n </div>\n </div>\n</div>\n", styles: [".modal{top:0;left:0;height:100%;width:100%;position:fixed;z-index:9999;overflow:auto;background-color:#000;background-color:#0006}.modal-title{margin-top:.5em!important}.modal-logo{width:30px}.modal-footer{padding-top:20px}.modal-content{-webkit-animation-name:redirect-animatetop;-webkit-animation-duration:.4s;animation-name:redirect-animatetop;animation-duration:.4s}@-webkit-keyframes redirect-animatetop{0%{top:-300px;opacity:0}to{top:0;opacity:1}}@keyframes redirect-animatetop{0%{top:-300px;opacity:0}to{top:0;opacity:1}}.redirect-modal-header{padding:14px 16px 10px;background-color:#152025;color:#fff}.redirect-modal-body{padding:10px 16px}.redirect-modal-footer{padding:14px 16px 10px;background-color:#152025;color:#fff}\n"] }]
59
+ args: [{ selector: 'foehn-modal', template: "<div\n class=\"modal\"\n [id]=\"id || name\"\n role=\"dialog\"\n aria-labelledby=\"modalTitle\"\n aria-describedby=\"modalBody\"\n style=\"display: block\"\n *ngIf=\"isModalVisible\"\n cdkTrapFocus\n>\n <div class=\"modal-dialog modal-dialog-centered\" [ngClass]=\"modalSize\">\n <div class=\"modal-content\">\n <div\n class=\"modal-header d-flex\"\n [ngClass]=\"{ 'flex-row-reverse': closeable }\"\n >\n <button\n *ngIf=\"closeable\"\n (click)=\"isModalVisible = false\"\n type=\"button\"\n class=\"btn btn-close\"\n [attr.aria-label]=\"\n 'foehn-modal.btn-close.aria-label' | fromDictionary\n \"\n id=\"closeButton\"\n ></button>\n <h2\n class=\"modal-title h5\"\n id=\"modalTitle\"\n #modalTitle\n [innerHTML]=\"modalHeaderText\"\n ></h2>\n </div>\n <div class=\"modal-body\" id=\"modalBody\" #modalBody tabindex=\"-1\">\n <div *ngIf=\"modalBodyText\" [innerHTML]=\"modalBodyText\"></div>\n <ng-content></ng-content>\n </div>\n <div class=\"modal-footer w-100 d-block\">\n <div #specificfooter id=\"specificfooter\">\n <ng-content select=\"[modal-footer]\"></ng-content>\n </div>\n <ng-container *ngIf=\"!specificfooter.innerHTML.trim()\">\n <div modal-footer class=\"w-100\">\n <div class=\"d-md-flex\">\n <div class=\"ms-md-auto me-md-2 mb-2 mt-2\">\n <button\n type=\"button\"\n (click)=\"isModalVisible = false\"\n class=\"btn btn-secondary w-100\"\n [attr.aria-label]=\"\n 'foehn-modal.btn-close.aria-label'\n | fromDictionary\n \"\n #modalDefaultCloseBtn\n >\n {{\n 'foehn-modal.btn-close.title'\n | fromDictionary\n }}\n </button>\n </div>\n </div>\n </div>\n </ng-container>\n </div>\n </div>\n </div>\n</div>\n", styles: [".modal{top:0;left:0;height:100%;width:100%;position:fixed;z-index:9999;overflow:auto;background-color:#000;background-color:#0006}.modal-title{margin-top:.5em!important}.modal-logo{width:30px}.modal-footer{padding-top:20px}.modal-content{-webkit-animation-name:redirect-animatetop;-webkit-animation-duration:.4s;animation-name:redirect-animatetop;animation-duration:.4s}@-webkit-keyframes redirect-animatetop{0%{top:-300px;opacity:0}to{top:0;opacity:1}}@keyframes redirect-animatetop{0%{top:-300px;opacity:0}to{top:0;opacity:1}}.redirect-modal-header{padding:14px 16px 10px;background-color:#152025;color:#fff}.redirect-modal-body{padding:10px 16px}.redirect-modal-footer{padding:14px 16px 10px;background-color:#152025;color:#fff}\n"] }]
60
60
  }], propDecorators: { id: [{
61
61
  type: Input
62
62
  }], name: [{
@@ -91,4 +91,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImpor
91
91
  type: HostListener,
92
92
  args: ['keyup', ['$event']]
93
93
  }] } });
94
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9laG4tbW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJlc3RhdGlvbnMtbmcvc3JjL2ZvZWhuLW1vZGFsL2ZvZWhuLW1vZGFsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3Byb2plY3RzL3ByZXN0YXRpb25zLW5nL3NyYy9mb2Vobi1tb2RhbC9mb2Vobi1tb2RhbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUVULFlBQVksRUFDWixZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFDTixTQUFTLEVBQ1osTUFBTSxlQUFlLENBQUM7Ozs7O0FBT3ZCLE1BQU0sT0FBTyxtQkFBbUI7SUFMaEM7UUFzQkksY0FBUyxHQUFHLElBQUksQ0FBQztRQU1qQix5QkFBb0IsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBY2xDLGNBQVMsR0FBRyxLQUFLLENBQUM7S0FrRDdCO0lBaERHLElBQUksY0FBYztRQUNkLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUMxQixDQUFDO0lBRUQsSUFDSSxjQUFjLENBQUMsR0FBWTtRQUMzQiw0RUFBNEU7UUFDNUUsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUUvQixJQUFJLENBQUMsU0FBUyxHQUFHLEdBQUcsQ0FBQztRQUNyQixJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUMvQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDM0IsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBR0QsbUJBQW1CLENBQUMsS0FBb0I7UUFDcEMsSUFBSSxJQUFJLENBQUMsU0FBUyxJQUFJLEtBQUssQ0FBQyxHQUFHLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDM0MsSUFBSSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUM7UUFDaEMsQ0FBQztJQUNMLENBQUM7SUFFTyxnQkFBZ0IsQ0FBQyxTQUFrQjtRQUN2QyxzRkFBc0Y7UUFDdEYsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNaLElBQUksU0FBUyxFQUFFLENBQUM7Z0JBQ1osSUFBSSxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztvQkFDNUIsSUFBSSxDQUFDLG9CQUFvQixDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDcEQsQ0FBQztxQkFBTSxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztvQkFDeEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQ3pDLENBQUM7Z0JBQ0QsMkZBQTJGO2dCQUMzRiwwQ0FBMEM7Z0JBQzFDLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO29CQUNsQixJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxjQUFjLEVBQUUsQ0FBQztnQkFDbkQsQ0FBQztZQUNMLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTyxtQkFBbUIsQ0FBQyxPQUFnQixFQUFFLFNBQWtCO1FBQzVELGlHQUFpRztRQUNqRywwRUFBMEU7UUFDMUUsaUNBQWlDO1FBQ2pDLElBQUksT0FBTyxJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxDQUFDO1lBQ3hELElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUN6QyxDQUFDO0lBQ0wsQ0FBQzs4R0F0RlEsbUJBQW1CO2tHQUFuQixtQkFBbUIsa3pCQ2ZoQyw4dUZBbUVBOzsyRkRwRGEsbUJBQW1CO2tCQUwvQixTQUFTOytCQUNJLGFBQWE7OEJBTXZCLEVBQUU7c0JBREQsS0FBSztnQkFJTixJQUFJO3NCQURILEtBQUs7Z0JBSU4sU0FBUztzQkFEUixLQUFLO2dCQUlOLGFBQWE7c0JBRFosS0FBSztnQkFJTixlQUFlO3NCQURkLEtBQUs7Z0JBSU4sU0FBUztzQkFEUixLQUFLO2dCQUlOLHVCQUF1QjtzQkFEdEIsS0FBSztnQkFJTixvQkFBb0I7c0JBRG5CLE1BQU07Z0JBSVAsU0FBUztzQkFEUixTQUFTO3VCQUFDLFdBQVc7Z0JBSXRCLFVBQVU7c0JBRFQsU0FBUzt1QkFBQyxZQUFZO2dCQUl2QixjQUFjO3NCQURiLFNBQVM7dUJBQUMsZ0JBQWdCO2dCQUkzQixvQkFBb0I7c0JBRG5CLFNBQVM7dUJBQUMsc0JBQXNCO2dCQVU3QixjQUFjO3NCQURqQixLQUFLO2dCQVlOLG1CQUFtQjtzQkFEbEIsWUFBWTt1QkFBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENvbXBvbmVudCxcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBIb3N0TGlzdGVuZXIsXG4gICAgSW5wdXQsXG4gICAgT3V0cHV0LFxuICAgIFZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdmb2Vobi1tb2RhbCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2ZvZWhuLW1vZGFsLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9mb2Vobi1tb2RhbC5jb21wb25lbnQuY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgRm9laG5Nb2RhbENvbXBvbmVudCB7XG4gICAgQElucHV0KClcbiAgICBpZDogc3RyaW5nO1xuXG4gICAgQElucHV0KClcbiAgICBuYW1lOiBzdHJpbmc7XG5cbiAgICBASW5wdXQoKVxuICAgIG1vZGFsU2l6ZTogc3RyaW5nO1xuXG4gICAgQElucHV0KClcbiAgICBtb2RhbEJvZHlUZXh0OiBzdHJpbmc7XG5cbiAgICBASW5wdXQoKVxuICAgIG1vZGFsSGVhZGVyVGV4dDogc3RyaW5nO1xuXG4gICAgQElucHV0KClcbiAgICBjbG9zZWFibGUgPSB0cnVlO1xuXG4gICAgQElucHV0KClcbiAgICBtb2RhbFRyaWdnZXJIdG1sRWxlbWVudDogSFRNTEVsZW1lbnQ7XG5cbiAgICBAT3V0cHV0KClcbiAgICBpc01vZGFsVmlzaWJsZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIEBWaWV3Q2hpbGQoJ21vZGFsQm9keScpXG4gICAgbW9kYWxCb2R5OiBFbGVtZW50UmVmO1xuXG4gICAgQFZpZXdDaGlsZCgnbW9kYWxUaXRsZScpXG4gICAgbW9kYWxUaXRsZTogRWxlbWVudFJlZjtcblxuICAgIEBWaWV3Q2hpbGQoJ3NwZWNpZmljZm9vdGVyJylcbiAgICBzcGVjaWZpY2Zvb3RlcjogRWxlbWVudFJlZjtcblxuICAgIEBWaWV3Q2hpbGQoJ21vZGFsRGVmYXVsdENsb3NlQnRuJylcbiAgICBtb2RhbERlZmF1bHRDbG9zZUJ0bjogRWxlbWVudFJlZjtcblxuICAgIHByaXZhdGUgaXNWaXNpYmxlID0gZmFsc2U7XG5cbiAgICBnZXQgaXNNb2RhbFZpc2libGUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzVmlzaWJsZTtcbiAgICB9XG5cbiAgICBASW5wdXQoKVxuICAgIHNldCBpc01vZGFsVmlzaWJsZSh2YWw6IGJvb2xlYW4pIHtcbiAgICAgICAgLy8gU3RvcmUgdGhlIHByZXZpb3VzIHZhbHVlIHRvIGhhbmRsZSB0cmFuc2l0aW9ucyBmcm9tIG9uZSBzdGF0ZSB0byBhbm90aGVyLlxuICAgICAgICBjb25zdCB3YXNPcGVuID0gdGhpcy5pc1Zpc2libGU7XG5cbiAgICAgICAgdGhpcy5pc1Zpc2libGUgPSB2YWw7XG4gICAgICAgIHRoaXMuaXNNb2RhbFZpc2libGVDaGFuZ2UuZW1pdCh0aGlzLmlzVmlzaWJsZSk7XG4gICAgICAgIHRoaXMuZm9jdXNPbkNvbnRhaW5lcih2YWwpO1xuICAgICAgICB0aGlzLmZvY3VzT25Nb2RhbFRyaWdnZXIod2FzT3BlbiwgdmFsKTtcbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdrZXl1cCcsIFsnJGV2ZW50J10pXG4gICAgaGFuZGxlS2V5Ym9hcmRFdmVudChldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5jbG9zZWFibGUgJiYgZXZlbnQua2V5ID09PSAnRXNjYXBlJykge1xuICAgICAgICAgICAgdGhpcy5pc01vZGFsVmlzaWJsZSA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBmb2N1c09uQ29udGFpbmVyKGlzVmlzaWJsZTogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICAvLyBIYXMgdG8gYmUgYSBzZXRUaW1lb3V0IGFzIHdlJ3JlIGFmZmVjdGluZyB0aGUgRE9NIG91dHNpZGUgb2YgdGhlIEFuZ3VsYXIgbGlmZWN5Y2xlLlxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIGlmIChpc1Zpc2libGUpIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5tb2RhbERlZmF1bHRDbG9zZUJ0bikge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm1vZGFsRGVmYXVsdENsb3NlQnRuLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMubW9kYWxCb2R5KSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubW9kYWxCb2R5Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLy8gdGhpcyBjb25kaXRpb24gaXMgdXNlbGVzcyBiZWNhdXNlIHRoaXMubW9kYWxUaXRsZSBzaG91bGQgYWx3YXlzIGJlIGhlcmUgd2hlbiBcImlzVmlzaWJsZVwiXG4gICAgICAgICAgICAgICAgLy8gYnV0IG5vdCBpbiB0ZXN0cywgc28gd2Uga2VlcCBpdCBmb3Igbm93XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMubW9kYWxUaXRsZSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm1vZGFsVGl0bGUubmF0aXZlRWxlbWVudC5zY3JvbGxJbnRvVmlldygpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBmb2N1c09uTW9kYWxUcmlnZ2VyKHdhc09wZW46IGJvb2xlYW4sIGlzVmlzaWJsZTogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICAvLyBGb2N1cyBiYWNrIG9uIHRoZSB0cmlnZ2VyLiBObyBuZWVkIGZvciBhIHNldFRpbWVvdXQgYXMgdGhlIHRyaWdnZXIgc2hvdWxkIHN0aWxsIGJlIGluIHRoZSBET00uXG4gICAgICAgIC8vIE9ubHkgZG9lcyBpdCB3aGVuIHRoZSBtb2RhbCBpcyBjbG9zZWQgZnJvbSBhIG9wZW4gc3RhdGUgdG8gYXZvaWQgdG8gc2V0XG4gICAgICAgIC8vIHRoZSBmb2N1cyB3aGVuIHRoZSBwYWdlIGxvYWRzLlxuICAgICAgICBpZiAod2FzT3BlbiAmJiAhaXNWaXNpYmxlICYmIHRoaXMubW9kYWxUcmlnZ2VySHRtbEVsZW1lbnQpIHtcbiAgICAgICAgICAgIHRoaXMubW9kYWxUcmlnZ2VySHRtbEVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIjxkaXZcbiAgICBjbGFzcz1cIm1vZGFsXCJcbiAgICBbaWRdPVwiaWQgfHwgbmFtZVwiXG4gICAgcm9sZT1cImRpYWxvZ1wiXG4gICAgYXJpYS1sYWJlbGxlZGJ5PVwibW9kYWxUaXRsZVwiXG4gICAgYXJpYS1kZXNjcmliZWRieT1cIm1vZGFsQm9keVwiXG4gICAgc3R5bGU9XCJkaXNwbGF5OiBibG9ja1wiXG4gICAgKm5nSWY9XCJpc01vZGFsVmlzaWJsZVwiXG4gICAgY2RrVHJhcEZvY3VzXG4+XG4gICAgPGRpdiBjbGFzcz1cIm1vZGFsLWRpYWxvZyBtb2RhbC1kaWFsb2ctY2VudGVyZWRcIiBbbmdDbGFzc109XCJtb2RhbFNpemVcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsLWNvbnRlbnRcIj5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBjbGFzcz1cIm1vZGFsLWhlYWRlciBkLWZsZXhcIlxuICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ2ZsZXgtcm93LXJldmVyc2UnOiBjbG9zZWFibGUgfVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImNsb3NlYWJsZVwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJpc01vZGFsVmlzaWJsZSA9IGZhbHNlXCJcbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1jbG9zZVwiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAnZm9laG4tbW9kYWwuYnRuLWNsb3NlLmFyaWEtbGFiZWwnIHwgZnJvbURpY3Rpb25hcnlcbiAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgaWQ9XCJjbG9zZUJ1dHRvblwiXG4gICAgICAgICAgICAgICAgPjwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDxoMlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm1vZGFsLXRpdGxlIGg1XCJcbiAgICAgICAgICAgICAgICAgICAgaWQ9XCJtb2RhbFRpdGxlXCJcbiAgICAgICAgICAgICAgICAgICAgI21vZGFsVGl0bGVcbiAgICAgICAgICAgICAgICAgICAgW2lubmVySFRNTF09XCJtb2RhbEhlYWRlclRleHRcIlxuICAgICAgICAgICAgICAgID48L2gyPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibW9kYWwtYm9keVwiIGlkPVwibW9kYWxCb2R5XCIgI21vZGFsQm9keSB0YWJpbmRleD1cIi0xXCI+XG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIm1vZGFsQm9keVRleHRcIiBbaW5uZXJIVE1MXT1cIm1vZGFsQm9keVRleHRcIj48L2Rpdj5cbiAgICAgICAgICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1mb290ZXIgdy0xMDAgZC1ibG9ja1wiPlxuICAgICAgICAgICAgICAgIDxkaXYgI3NwZWNpZmljZm9vdGVyIGlkPVwic3BlY2lmaWNmb290ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW21vZGFsLWZvb3Rlcl1cIj48L25nLWNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFzcGVjaWZpY2Zvb3Rlci5pbm5lckhUTUwudHJpbSgpXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgbW9kYWwtZm9vdGVyIGNsYXNzPVwidy0xMDBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLW1kLWZsZXhcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXMtbWQtYXV0byBtZS1tZC0yIG1iLTIgbXQtMlwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiaXNNb2RhbFZpc2libGUgPSBmYWxzZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tc2Vjb25kYXJ5IHctMTAwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2ZvZWhuLW1vZGFsLmJ0bi1jbG9zZS5hcmlhLWxhYmVsJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGZyb21EaWN0aW9uYXJ5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI21vZGFsRGVmYXVsdENsb3NlQnRuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2ZvZWhuLW1vZGFsLmJ0bi1jbG9zZS50aXRsZSdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBmcm9tRGljdGlvbmFyeVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
94
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9laG4tbW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJlc3RhdGlvbnMtbmcvc3JjL2ZvZWhuLW1vZGFsL2ZvZWhuLW1vZGFsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3Byb2plY3RzL3ByZXN0YXRpb25zLW5nL3NyYy9mb2Vobi1tb2RhbC9mb2Vobi1tb2RhbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUVULFlBQVksRUFDWixZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFDTixTQUFTLEVBQ1osTUFBTSxlQUFlLENBQUM7Ozs7O0FBT3ZCLE1BQU0sT0FBTyxtQkFBbUI7SUFMaEM7UUFzQkksY0FBUyxHQUFHLElBQUksQ0FBQztRQU1qQix5QkFBb0IsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBY2xDLGNBQVMsR0FBRyxLQUFLLENBQUM7S0FrRDdCO0lBaERHLElBQUksY0FBYztRQUNkLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUMxQixDQUFDO0lBRUQsSUFDSSxjQUFjLENBQUMsR0FBWTtRQUMzQiw0RUFBNEU7UUFDNUUsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUUvQixJQUFJLENBQUMsU0FBUyxHQUFHLEdBQUcsQ0FBQztRQUNyQixJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUMvQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDM0IsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBR0QsbUJBQW1CLENBQUMsS0FBb0I7UUFDcEMsSUFBSSxJQUFJLENBQUMsU0FBUyxJQUFJLEtBQUssQ0FBQyxHQUFHLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDM0MsSUFBSSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUM7UUFDaEMsQ0FBQztJQUNMLENBQUM7SUFFTyxnQkFBZ0IsQ0FBQyxTQUFrQjtRQUN2QyxzRkFBc0Y7UUFDdEYsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNaLElBQUksU0FBUyxFQUFFLENBQUM7Z0JBQ1osSUFBSSxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztvQkFDNUIsSUFBSSxDQUFDLG9CQUFvQixDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDcEQsQ0FBQztxQkFBTSxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztvQkFDeEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQ3pDLENBQUM7Z0JBQ0QsMkZBQTJGO2dCQUMzRiwwQ0FBMEM7Z0JBQzFDLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO29CQUNsQixJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxjQUFjLEVBQUUsQ0FBQztnQkFDbkQsQ0FBQztZQUNMLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTyxtQkFBbUIsQ0FBQyxPQUFnQixFQUFFLFNBQWtCO1FBQzVELGlHQUFpRztRQUNqRywwRUFBMEU7UUFDMUUsaUNBQWlDO1FBQ2pDLElBQUksT0FBTyxJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxDQUFDO1lBQ3hELElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUN6QyxDQUFDO0lBQ0wsQ0FBQzs4R0F0RlEsbUJBQW1CO2tHQUFuQixtQkFBbUIsa3pCQ2ZoQyxteUZBb0VBOzsyRkRyRGEsbUJBQW1CO2tCQUwvQixTQUFTOytCQUNJLGFBQWE7OEJBTXZCLEVBQUU7c0JBREQsS0FBSztnQkFJTixJQUFJO3NCQURILEtBQUs7Z0JBSU4sU0FBUztzQkFEUixLQUFLO2dCQUlOLGFBQWE7c0JBRFosS0FBSztnQkFJTixlQUFlO3NCQURkLEtBQUs7Z0JBSU4sU0FBUztzQkFEUixLQUFLO2dCQUlOLHVCQUF1QjtzQkFEdEIsS0FBSztnQkFJTixvQkFBb0I7c0JBRG5CLE1BQU07Z0JBSVAsU0FBUztzQkFEUixTQUFTO3VCQUFDLFdBQVc7Z0JBSXRCLFVBQVU7c0JBRFQsU0FBUzt1QkFBQyxZQUFZO2dCQUl2QixjQUFjO3NCQURiLFNBQVM7dUJBQUMsZ0JBQWdCO2dCQUkzQixvQkFBb0I7c0JBRG5CLFNBQVM7dUJBQUMsc0JBQXNCO2dCQVU3QixjQUFjO3NCQURqQixLQUFLO2dCQVlOLG1CQUFtQjtzQkFEbEIsWUFBWTt1QkFBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENvbXBvbmVudCxcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBIb3N0TGlzdGVuZXIsXG4gICAgSW5wdXQsXG4gICAgT3V0cHV0LFxuICAgIFZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdmb2Vobi1tb2RhbCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2ZvZWhuLW1vZGFsLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9mb2Vobi1tb2RhbC5jb21wb25lbnQuY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgRm9laG5Nb2RhbENvbXBvbmVudCB7XG4gICAgQElucHV0KClcbiAgICBpZDogc3RyaW5nO1xuXG4gICAgQElucHV0KClcbiAgICBuYW1lOiBzdHJpbmc7XG5cbiAgICBASW5wdXQoKVxuICAgIG1vZGFsU2l6ZTogc3RyaW5nO1xuXG4gICAgQElucHV0KClcbiAgICBtb2RhbEJvZHlUZXh0OiBzdHJpbmc7XG5cbiAgICBASW5wdXQoKVxuICAgIG1vZGFsSGVhZGVyVGV4dDogc3RyaW5nO1xuXG4gICAgQElucHV0KClcbiAgICBjbG9zZWFibGUgPSB0cnVlO1xuXG4gICAgQElucHV0KClcbiAgICBtb2RhbFRyaWdnZXJIdG1sRWxlbWVudDogSFRNTEVsZW1lbnQ7XG5cbiAgICBAT3V0cHV0KClcbiAgICBpc01vZGFsVmlzaWJsZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIEBWaWV3Q2hpbGQoJ21vZGFsQm9keScpXG4gICAgbW9kYWxCb2R5OiBFbGVtZW50UmVmO1xuXG4gICAgQFZpZXdDaGlsZCgnbW9kYWxUaXRsZScpXG4gICAgbW9kYWxUaXRsZTogRWxlbWVudFJlZjtcblxuICAgIEBWaWV3Q2hpbGQoJ3NwZWNpZmljZm9vdGVyJylcbiAgICBzcGVjaWZpY2Zvb3RlcjogRWxlbWVudFJlZjtcblxuICAgIEBWaWV3Q2hpbGQoJ21vZGFsRGVmYXVsdENsb3NlQnRuJylcbiAgICBtb2RhbERlZmF1bHRDbG9zZUJ0bjogRWxlbWVudFJlZjtcblxuICAgIHByaXZhdGUgaXNWaXNpYmxlID0gZmFsc2U7XG5cbiAgICBnZXQgaXNNb2RhbFZpc2libGUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzVmlzaWJsZTtcbiAgICB9XG5cbiAgICBASW5wdXQoKVxuICAgIHNldCBpc01vZGFsVmlzaWJsZSh2YWw6IGJvb2xlYW4pIHtcbiAgICAgICAgLy8gU3RvcmUgdGhlIHByZXZpb3VzIHZhbHVlIHRvIGhhbmRsZSB0cmFuc2l0aW9ucyBmcm9tIG9uZSBzdGF0ZSB0byBhbm90aGVyLlxuICAgICAgICBjb25zdCB3YXNPcGVuID0gdGhpcy5pc1Zpc2libGU7XG5cbiAgICAgICAgdGhpcy5pc1Zpc2libGUgPSB2YWw7XG4gICAgICAgIHRoaXMuaXNNb2RhbFZpc2libGVDaGFuZ2UuZW1pdCh0aGlzLmlzVmlzaWJsZSk7XG4gICAgICAgIHRoaXMuZm9jdXNPbkNvbnRhaW5lcih2YWwpO1xuICAgICAgICB0aGlzLmZvY3VzT25Nb2RhbFRyaWdnZXIod2FzT3BlbiwgdmFsKTtcbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdrZXl1cCcsIFsnJGV2ZW50J10pXG4gICAgaGFuZGxlS2V5Ym9hcmRFdmVudChldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5jbG9zZWFibGUgJiYgZXZlbnQua2V5ID09PSAnRXNjYXBlJykge1xuICAgICAgICAgICAgdGhpcy5pc01vZGFsVmlzaWJsZSA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBmb2N1c09uQ29udGFpbmVyKGlzVmlzaWJsZTogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICAvLyBIYXMgdG8gYmUgYSBzZXRUaW1lb3V0IGFzIHdlJ3JlIGFmZmVjdGluZyB0aGUgRE9NIG91dHNpZGUgb2YgdGhlIEFuZ3VsYXIgbGlmZWN5Y2xlLlxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIGlmIChpc1Zpc2libGUpIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5tb2RhbERlZmF1bHRDbG9zZUJ0bikge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm1vZGFsRGVmYXVsdENsb3NlQnRuLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMubW9kYWxCb2R5KSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubW9kYWxCb2R5Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLy8gdGhpcyBjb25kaXRpb24gaXMgdXNlbGVzcyBiZWNhdXNlIHRoaXMubW9kYWxUaXRsZSBzaG91bGQgYWx3YXlzIGJlIGhlcmUgd2hlbiBcImlzVmlzaWJsZVwiXG4gICAgICAgICAgICAgICAgLy8gYnV0IG5vdCBpbiB0ZXN0cywgc28gd2Uga2VlcCBpdCBmb3Igbm93XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMubW9kYWxUaXRsZSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm1vZGFsVGl0bGUubmF0aXZlRWxlbWVudC5zY3JvbGxJbnRvVmlldygpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBmb2N1c09uTW9kYWxUcmlnZ2VyKHdhc09wZW46IGJvb2xlYW4sIGlzVmlzaWJsZTogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICAvLyBGb2N1cyBiYWNrIG9uIHRoZSB0cmlnZ2VyLiBObyBuZWVkIGZvciBhIHNldFRpbWVvdXQgYXMgdGhlIHRyaWdnZXIgc2hvdWxkIHN0aWxsIGJlIGluIHRoZSBET00uXG4gICAgICAgIC8vIE9ubHkgZG9lcyBpdCB3aGVuIHRoZSBtb2RhbCBpcyBjbG9zZWQgZnJvbSBhIG9wZW4gc3RhdGUgdG8gYXZvaWQgdG8gc2V0XG4gICAgICAgIC8vIHRoZSBmb2N1cyB3aGVuIHRoZSBwYWdlIGxvYWRzLlxuICAgICAgICBpZiAod2FzT3BlbiAmJiAhaXNWaXNpYmxlICYmIHRoaXMubW9kYWxUcmlnZ2VySHRtbEVsZW1lbnQpIHtcbiAgICAgICAgICAgIHRoaXMubW9kYWxUcmlnZ2VySHRtbEVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIjxkaXZcbiAgICBjbGFzcz1cIm1vZGFsXCJcbiAgICBbaWRdPVwiaWQgfHwgbmFtZVwiXG4gICAgcm9sZT1cImRpYWxvZ1wiXG4gICAgYXJpYS1sYWJlbGxlZGJ5PVwibW9kYWxUaXRsZVwiXG4gICAgYXJpYS1kZXNjcmliZWRieT1cIm1vZGFsQm9keVwiXG4gICAgc3R5bGU9XCJkaXNwbGF5OiBibG9ja1wiXG4gICAgKm5nSWY9XCJpc01vZGFsVmlzaWJsZVwiXG4gICAgY2RrVHJhcEZvY3VzXG4+XG4gICAgPGRpdiBjbGFzcz1cIm1vZGFsLWRpYWxvZyBtb2RhbC1kaWFsb2ctY2VudGVyZWRcIiBbbmdDbGFzc109XCJtb2RhbFNpemVcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsLWNvbnRlbnRcIj5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBjbGFzcz1cIm1vZGFsLWhlYWRlciBkLWZsZXhcIlxuICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ2ZsZXgtcm93LXJldmVyc2UnOiBjbG9zZWFibGUgfVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImNsb3NlYWJsZVwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJpc01vZGFsVmlzaWJsZSA9IGZhbHNlXCJcbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1jbG9zZVwiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAnZm9laG4tbW9kYWwuYnRuLWNsb3NlLmFyaWEtbGFiZWwnIHwgZnJvbURpY3Rpb25hcnlcbiAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgaWQ9XCJjbG9zZUJ1dHRvblwiXG4gICAgICAgICAgICAgICAgPjwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDxoMlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm1vZGFsLXRpdGxlIGg1XCJcbiAgICAgICAgICAgICAgICAgICAgaWQ9XCJtb2RhbFRpdGxlXCJcbiAgICAgICAgICAgICAgICAgICAgI21vZGFsVGl0bGVcbiAgICAgICAgICAgICAgICAgICAgW2lubmVySFRNTF09XCJtb2RhbEhlYWRlclRleHRcIlxuICAgICAgICAgICAgICAgID48L2gyPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibW9kYWwtYm9keVwiIGlkPVwibW9kYWxCb2R5XCIgI21vZGFsQm9keSB0YWJpbmRleD1cIi0xXCI+XG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIm1vZGFsQm9keVRleHRcIiBbaW5uZXJIVE1MXT1cIm1vZGFsQm9keVRleHRcIj48L2Rpdj5cbiAgICAgICAgICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1mb290ZXIgdy0xMDAgZC1ibG9ja1wiPlxuICAgICAgICAgICAgICAgIDxkaXYgI3NwZWNpZmljZm9vdGVyIGlkPVwic3BlY2lmaWNmb290ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW21vZGFsLWZvb3Rlcl1cIj48L25nLWNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFzcGVjaWZpY2Zvb3Rlci5pbm5lckhUTUwudHJpbSgpXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgbW9kYWwtZm9vdGVyIGNsYXNzPVwidy0xMDBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLW1kLWZsZXhcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXMtbWQtYXV0byBtZS1tZC0yIG1iLTIgbXQtMlwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJpc01vZGFsVmlzaWJsZSA9IGZhbHNlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1zZWNvbmRhcnkgdy0xMDBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZm9laG4tbW9kYWwuYnRuLWNsb3NlLmFyaWEtbGFiZWwnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgZnJvbURpY3Rpb25hcnlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjbW9kYWxEZWZhdWx0Q2xvc2VCdG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZm9laG4tbW9kYWwuYnRuLWNsb3NlLnRpdGxlJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGZyb21EaWN0aW9uYXJ5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuIl19