@valtimo/dossier 12.5.0 → 12.6.0

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 (41) hide show
  1. package/esm2022/lib/components/dossier-detail/dossier-detail.component.mjs +104 -57
  2. package/esm2022/lib/components/dossier-detail/tab/notes/notes.component.mjs +3 -3
  3. package/esm2022/lib/components/dossier-detail/tab/widgets/components/field/widget-field.component.mjs +14 -15
  4. package/esm2022/lib/components/dossier-detail/tab/widgets/components/widget-block/widget-block.component.mjs +2 -5
  5. package/esm2022/lib/components/dossier-detail-task-detail/dossier-detail-task-detail.component.mjs +11 -10
  6. package/esm2022/lib/components/dossier-detail-task-list/dossier-detail-task-list.component.mjs +52 -47
  7. package/esm2022/lib/components/dossier-supporting-process-start-modal/dossier-supporting-process-start-modal.component.mjs +49 -7
  8. package/esm2022/lib/components/note-modal/note-modal.component.mjs +3 -3
  9. package/esm2022/lib/models/case-widget-content.model.mjs +1 -1
  10. package/esm2022/lib/models/case-widget-display.model.mjs +1 -1
  11. package/esm2022/lib/models/case-widget.model.mjs +1 -1
  12. package/esm2022/lib/models/tabs.model.mjs +2 -1
  13. package/esm2022/lib/permissions/dossier-detail.permissions.mjs +6 -2
  14. package/esm2022/lib/services/dossier-detail-layout.service.mjs +10 -10
  15. package/esm2022/lib/services/dossier-parameter.service.mjs +6 -3
  16. package/fesm2022/valtimo-dossier.mjs +270 -171
  17. package/fesm2022/valtimo-dossier.mjs.map +1 -1
  18. package/lib/components/dossier-detail/dossier-detail.component.d.ts +18 -9
  19. package/lib/components/dossier-detail/dossier-detail.component.d.ts.map +1 -1
  20. package/lib/components/dossier-detail/tab/widgets/components/field/widget-field.component.d.ts +1 -0
  21. package/lib/components/dossier-detail/tab/widgets/components/field/widget-field.component.d.ts.map +1 -1
  22. package/lib/components/dossier-detail/tab/widgets/components/widget-block/widget-block.component.d.ts +0 -1
  23. package/lib/components/dossier-detail/tab/widgets/components/widget-block/widget-block.component.d.ts.map +1 -1
  24. package/lib/components/dossier-detail-task-detail/dossier-detail-task-detail.component.d.ts +5 -3
  25. package/lib/components/dossier-detail-task-detail/dossier-detail-task-detail.component.d.ts.map +1 -1
  26. package/lib/components/dossier-detail-task-list/dossier-detail-task-list.component.d.ts +14 -13
  27. package/lib/components/dossier-detail-task-list/dossier-detail-task-list.component.d.ts.map +1 -1
  28. package/lib/components/dossier-supporting-process-start-modal/dossier-supporting-process-start-modal.component.d.ts +8 -3
  29. package/lib/components/dossier-supporting-process-start-modal/dossier-supporting-process-start-modal.component.d.ts.map +1 -1
  30. package/lib/models/case-widget-content.model.d.ts.map +1 -1
  31. package/lib/models/case-widget-display.model.d.ts +6 -2
  32. package/lib/models/case-widget-display.model.d.ts.map +1 -1
  33. package/lib/models/case-widget.model.d.ts +1 -0
  34. package/lib/models/case-widget.model.d.ts.map +1 -1
  35. package/lib/models/tabs.model.d.ts.map +1 -1
  36. package/lib/permissions/dossier-detail.permissions.d.ts +2 -1
  37. package/lib/permissions/dossier-detail.permissions.d.ts.map +1 -1
  38. package/lib/services/dossier-detail-layout.service.d.ts +4 -5
  39. package/lib/services/dossier-detail-layout.service.d.ts.map +1 -1
  40. package/lib/services/dossier-parameter.service.d.ts.map +1 -1
  41. package/package.json +1 -1
@@ -159,13 +159,13 @@ export class DossierDetailTabNotesComponent {
159
159
  });
160
160
  }
161
161
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DossierDetailTabNotesComponent, deps: [{ token: i1.NotesService }, { token: i2.PermissionService }, { token: i3.PromptService }, { token: i4.ActivatedRoute }, { token: i5.ToastrService }, { token: i6.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
162
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: DossierDetailTabNotesComponent, selector: "valtimo-dossier-detail-tab-notes", host: { properties: { "class.tab--no-margin": "this.noMargin" } }, ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n<ng-container\n *ngIf=\"{\n canAdd: canAdd$ | async,\n notes: notes$ | async,\n pagination: pagination$ | async,\n loading: loading$ | async,\n } as obs\"\n>\n <div class=\"cds--toolbar-content\">\n <button\n cdsButton=\"primary\"\n *ngIf=\"obs.canAdd\"\n [disabled]=\"obs.loading\"\n (click)=\"showAddModal()\"\n aria-expanded=\"false\"\n aria-haspopup=\"true\"\n >\n {{ 'dossier.notes.addNote' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"add\" size=\"16\"></svg>\n </button>\n </div>\n\n <div *ngIf=\"timelineItems\">\n <valtimo-timeline\n *ngIf=\"timelineItems.length > 0\"\n [actions]=\"actions\"\n [items]=\"timelineItems\"\n ></valtimo-timeline>\n <valtimo-no-results\n *ngIf=\"timelineItems.length === 0\"\n [description]=\"'dossier.notes.noResults.description' | translate\"\n [title]=\"'dossier.notes.noResults.title' | translate\"\n illustration=\"valtimo-layout/img/emptystate-no-result.svg\"\n ></valtimo-no-results>\n </div>\n\n <valtimo-spinner\n [useBootstrapSpinner]=\"false\"\n name=\"auditSpinner\"\n bdColor=\"rgba(125, 125, 125, 0.35)\"\n color=\"#264251\"\n type=\"square-jelly-box\"\n >\n </valtimo-spinner>\n\n <div *ngIf=\"obs.pagination\" class=\"d-flex justify-content-end row mr-0 ml-0\">\n <ngb-pagination\n *ngIf=\"obs.pagination.collectionSize > obs.pagination.size\"\n [collectionSize]=\"obs.pagination.collectionSize\"\n [maxSize]=\"obs.pagination.size\"\n [pageSize]=\"obs.pagination.size\"\n [rotate]=\"true\"\n [(page)]=\"obs.pagination.page\"\n (pageChange)=\"paginationClicked($event)\"\n ></ngb-pagination>\n </div>\n</ng-container>\n\n<valtimo-note-modal\n [customData]=\"customData$ | async\"\n (createNoteEvent)=\"createNewNote($event)\"\n (editNoteEvent)=\"editNoteEvent($event)\"\n></valtimo-note-modal>\n", styles: [":host{display:flex;flex-direction:column}.add-note{align-self:flex-end}\n/*!\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"], dependencies: [{ kind: "directive", type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.TimelineComponent, selector: "valtimo-timeline", inputs: ["items", "actions"] }, { kind: "component", type: i3.SpinnerComponent, selector: "valtimo-spinner", inputs: ["useBootstrapSpinner", "name", "type", "size", "color", "bdColor", "fullScreen", "noMarginTop"] }, { kind: "component", type: i8.NgbPagination, selector: "ngb-pagination", inputs: ["disabled", "boundaryLinks", "directionLinks", "ellipses", "rotate", "collectionSize", "maxSize", "page", "pageSize", "size"], outputs: ["pageChange"] }, { kind: "directive", type: i9.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "directive", type: i9.IconDirective, selector: "[cdsIcon], [ibmIcon]", inputs: ["ibmIcon", "cdsIcon", "size", "title", "ariaLabel", "ariaLabelledBy", "ariaHidden", "isFocusable"] }, { kind: "component", type: i3.CarbonNoResultsComponent, selector: "valtimo-no-results", inputs: ["action", "description", "illustration", "title", "smallPadding", "collapseVertically", "alwaysRenderVertically"] }, { kind: "component", type: i10.NoteModalComponent, selector: "valtimo-note-modal", inputs: ["customData"], outputs: ["createNoteEvent", "editNoteEvent"] }, { kind: "pipe", type: i7.AsyncPipe, name: "async" }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }] }); }
162
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: DossierDetailTabNotesComponent, selector: "valtimo-dossier-detail-tab-notes", host: { properties: { "class.tab--no-margin": "this.noMargin" } }, ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n<ng-container\n *ngIf=\"{\n canAdd: canAdd$ | async,\n notes: notes$ | async,\n pagination: pagination$ | async,\n loading: loading$ | async,\n } as obs\"\n>\n <div class=\"cds--toolbar-content\">\n <button\n cdsButton=\"primary\"\n *ngIf=\"obs.canAdd\"\n [disabled]=\"obs.loading\"\n (click)=\"showAddModal()\"\n aria-expanded=\"false\"\n aria-haspopup=\"true\"\n >\n {{ 'dossier.notes.addNote' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"add\" size=\"16\"></svg>\n </button>\n </div>\n\n <div *ngIf=\"timelineItems\">\n <valtimo-timeline\n *ngIf=\"timelineItems.length > 0\"\n [actions]=\"actions\"\n [items]=\"timelineItems\"\n ></valtimo-timeline>\n\n <valtimo-no-results\n *ngIf=\"timelineItems.length === 0\"\n [description]=\"'dossier.notes.noResults.description' | translate\"\n [title]=\"'dossier.notes.noResults.title' | translate\"\n illustration=\"valtimo-layout/img/emptystate-no-result.svg\"\n ></valtimo-no-results>\n </div>\n\n <valtimo-spinner\n [useBootstrapSpinner]=\"false\"\n name=\"auditSpinner\"\n bdColor=\"rgba(125, 125, 125, 0.35)\"\n color=\"#264251\"\n type=\"square-jelly-box\"\n >\n </valtimo-spinner>\n\n <div *ngIf=\"obs.pagination\" class=\"d-flex justify-content-end row mr-0 ml-0\">\n <ngb-pagination\n *ngIf=\"obs.pagination.collectionSize > obs.pagination.size\"\n [collectionSize]=\"obs.pagination.collectionSize\"\n [maxSize]=\"obs.pagination.size\"\n [pageSize]=\"obs.pagination.size\"\n [rotate]=\"true\"\n [(page)]=\"obs.pagination.page\"\n (pageChange)=\"paginationClicked($event)\"\n ></ngb-pagination>\n </div>\n</ng-container>\n\n<valtimo-note-modal\n [customData]=\"customData$ | async\"\n (createNoteEvent)=\"createNewNote($event)\"\n (editNoteEvent)=\"editNoteEvent($event)\"\n></valtimo-note-modal>\n", styles: [":host{display:flex;flex-direction:column}.add-note{align-self:flex-end}\n/*!\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"], dependencies: [{ kind: "directive", type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.TimelineComponent, selector: "valtimo-timeline", inputs: ["items", "actions"] }, { kind: "component", type: i3.SpinnerComponent, selector: "valtimo-spinner", inputs: ["useBootstrapSpinner", "name", "type", "size", "color", "bdColor", "fullScreen", "noMarginTop"] }, { kind: "component", type: i8.NgbPagination, selector: "ngb-pagination", inputs: ["disabled", "boundaryLinks", "directionLinks", "ellipses", "rotate", "collectionSize", "maxSize", "page", "pageSize", "size"], outputs: ["pageChange"] }, { kind: "directive", type: i9.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "directive", type: i9.IconDirective, selector: "[cdsIcon], [ibmIcon]", inputs: ["ibmIcon", "cdsIcon", "size", "title", "ariaLabel", "ariaLabelledBy", "ariaHidden", "isFocusable"] }, { kind: "component", type: i3.CarbonNoResultsComponent, selector: "valtimo-no-results", inputs: ["action", "description", "illustration", "title", "smallPadding", "collapseVertically", "alwaysRenderVertically"] }, { kind: "component", type: i10.NoteModalComponent, selector: "valtimo-note-modal", inputs: ["customData"], outputs: ["createNoteEvent", "editNoteEvent"] }, { kind: "pipe", type: i7.AsyncPipe, name: "async" }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }] }); }
163
163
  }
164
164
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DossierDetailTabNotesComponent, decorators: [{
165
165
  type: Component,
166
- args: [{ selector: 'valtimo-dossier-detail-tab-notes', template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n<ng-container\n *ngIf=\"{\n canAdd: canAdd$ | async,\n notes: notes$ | async,\n pagination: pagination$ | async,\n loading: loading$ | async,\n } as obs\"\n>\n <div class=\"cds--toolbar-content\">\n <button\n cdsButton=\"primary\"\n *ngIf=\"obs.canAdd\"\n [disabled]=\"obs.loading\"\n (click)=\"showAddModal()\"\n aria-expanded=\"false\"\n aria-haspopup=\"true\"\n >\n {{ 'dossier.notes.addNote' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"add\" size=\"16\"></svg>\n </button>\n </div>\n\n <div *ngIf=\"timelineItems\">\n <valtimo-timeline\n *ngIf=\"timelineItems.length > 0\"\n [actions]=\"actions\"\n [items]=\"timelineItems\"\n ></valtimo-timeline>\n <valtimo-no-results\n *ngIf=\"timelineItems.length === 0\"\n [description]=\"'dossier.notes.noResults.description' | translate\"\n [title]=\"'dossier.notes.noResults.title' | translate\"\n illustration=\"valtimo-layout/img/emptystate-no-result.svg\"\n ></valtimo-no-results>\n </div>\n\n <valtimo-spinner\n [useBootstrapSpinner]=\"false\"\n name=\"auditSpinner\"\n bdColor=\"rgba(125, 125, 125, 0.35)\"\n color=\"#264251\"\n type=\"square-jelly-box\"\n >\n </valtimo-spinner>\n\n <div *ngIf=\"obs.pagination\" class=\"d-flex justify-content-end row mr-0 ml-0\">\n <ngb-pagination\n *ngIf=\"obs.pagination.collectionSize > obs.pagination.size\"\n [collectionSize]=\"obs.pagination.collectionSize\"\n [maxSize]=\"obs.pagination.size\"\n [pageSize]=\"obs.pagination.size\"\n [rotate]=\"true\"\n [(page)]=\"obs.pagination.page\"\n (pageChange)=\"paginationClicked($event)\"\n ></ngb-pagination>\n </div>\n</ng-container>\n\n<valtimo-note-modal\n [customData]=\"customData$ | async\"\n (createNoteEvent)=\"createNewNote($event)\"\n (editNoteEvent)=\"editNoteEvent($event)\"\n></valtimo-note-modal>\n", styles: [":host{display:flex;flex-direction:column}.add-note{align-self:flex-end}\n/*!\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"] }]
166
+ args: [{ selector: 'valtimo-dossier-detail-tab-notes', template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n<ng-container\n *ngIf=\"{\n canAdd: canAdd$ | async,\n notes: notes$ | async,\n pagination: pagination$ | async,\n loading: loading$ | async,\n } as obs\"\n>\n <div class=\"cds--toolbar-content\">\n <button\n cdsButton=\"primary\"\n *ngIf=\"obs.canAdd\"\n [disabled]=\"obs.loading\"\n (click)=\"showAddModal()\"\n aria-expanded=\"false\"\n aria-haspopup=\"true\"\n >\n {{ 'dossier.notes.addNote' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"add\" size=\"16\"></svg>\n </button>\n </div>\n\n <div *ngIf=\"timelineItems\">\n <valtimo-timeline\n *ngIf=\"timelineItems.length > 0\"\n [actions]=\"actions\"\n [items]=\"timelineItems\"\n ></valtimo-timeline>\n\n <valtimo-no-results\n *ngIf=\"timelineItems.length === 0\"\n [description]=\"'dossier.notes.noResults.description' | translate\"\n [title]=\"'dossier.notes.noResults.title' | translate\"\n illustration=\"valtimo-layout/img/emptystate-no-result.svg\"\n ></valtimo-no-results>\n </div>\n\n <valtimo-spinner\n [useBootstrapSpinner]=\"false\"\n name=\"auditSpinner\"\n bdColor=\"rgba(125, 125, 125, 0.35)\"\n color=\"#264251\"\n type=\"square-jelly-box\"\n >\n </valtimo-spinner>\n\n <div *ngIf=\"obs.pagination\" class=\"d-flex justify-content-end row mr-0 ml-0\">\n <ngb-pagination\n *ngIf=\"obs.pagination.collectionSize > obs.pagination.size\"\n [collectionSize]=\"obs.pagination.collectionSize\"\n [maxSize]=\"obs.pagination.size\"\n [pageSize]=\"obs.pagination.size\"\n [rotate]=\"true\"\n [(page)]=\"obs.pagination.page\"\n (pageChange)=\"paginationClicked($event)\"\n ></ngb-pagination>\n </div>\n</ng-container>\n\n<valtimo-note-modal\n [customData]=\"customData$ | async\"\n (createNoteEvent)=\"createNewNote($event)\"\n (editNoteEvent)=\"editNoteEvent($event)\"\n></valtimo-note-modal>\n", styles: [":host{display:flex;flex-direction:column}.add-note{align-self:flex-end}\n/*!\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"] }]
167
167
  }], ctorParameters: () => [{ type: i1.NotesService }, { type: i2.PermissionService }, { type: i3.PromptService }, { type: i4.ActivatedRoute }, { type: i5.ToastrService }, { type: i6.TranslateService }], propDecorators: { noMargin: [{
168
168
  type: HostBinding,
169
169
  args: ['class.tab--no-margin']
170
170
  }] } });
171
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90ZXMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9kb3NzaWVyL3NyYy9saWIvY29tcG9uZW50cy9kb3NzaWVyLWRldGFpbC90YWIvbm90ZXMvbm90ZXMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9kb3NzaWVyL3NyYy9saWIvY29tcG9uZW50cy9kb3NzaWVyLWRldGFpbC90YWIvbm90ZXMvbm90ZXMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFDSCxPQUFPLEVBQUMsU0FBUyxFQUFFLFdBQVcsRUFBUyxNQUFNLGVBQWUsQ0FBQztBQUk3RCxPQUFPLEVBQTBDLGdCQUFnQixFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFFOUYsT0FBTyxNQUFNLE1BQU0sUUFBUSxDQUFDO0FBRTVCLE9BQU8sRUFBQyxlQUFlLEVBQUUsYUFBYSxFQUFFLEdBQUcsRUFBYyxFQUFFLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDekUsT0FBTyxFQUFDLFNBQVMsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFcEQsT0FBTyxFQUNMLHVCQUF1QixFQUN2QiwwQkFBMEIsRUFDMUIsd0JBQXdCLEVBQ3hCLGtDQUFrQyxHQUNuQyxNQUFNLHlCQUF5QixDQUFDOzs7Ozs7Ozs7Ozs7QUFRakMsTUFBTSxPQUFPLDhCQUE4QjtJQThHekMsWUFDbUIsWUFBMEIsRUFDMUIsaUJBQW9DLEVBQ3BDLGFBQTRCLEVBQzVCLEtBQXFCLEVBQ3JCLGFBQTRCLEVBQzVCLGdCQUFrQztRQUxsQyxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBQ3BDLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FB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QWMsRUFBRSxJQUFJO1lBQ3BCLGFBQWEsRUFBRSxJQUFJO1lBQ25CLHVCQUF1QixFQUFFLEdBQUcsRUFBRTtnQkFDNUIsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO29CQUM5RCxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sRUFBRSxDQUFDO29CQUM1QixJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FDeEIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxpREFBaUQsQ0FBQyxDQUNqRixDQUFDO2dCQUNKLENBQUMsQ0FBQyxDQUFDO1lBQ0wsQ0FBQztTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7K0dBeExVLDhCQUE4QjttR0FBOUIsOEJBQThCLDJJQ3ZDM0MscWlGQStFQTs7NEZEeENhLDhCQUE4QjtrQkFMMUMsU0FBUzsrQkFDRSxrQ0FBa0M7cU9BS1AsUUFBUTtzQkFBNUMsV0FBVzt1QkFBQyxzQkFBc0IiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMTUtMjAyNCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuaW1wb3J0IHtDb21wb25lbnQsIEhvc3RCaW5kaW5nLCBPbkluaXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtBY3RpdmF0ZWRSb3V0ZX0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7VHJhbnNsYXRlU2VydmljZX0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQge1Blcm1pc3Npb25TZXJ2aWNlfSBmcm9tICdAdmFsdGltby9hY2Nlc3MtY29udHJvbCc7XG5pbXBvcnQge1BhZ2luYXRpb24sIFByb21wdFNlcnZpY2UsIFRpbWVsaW5lSXRlbSwgVGltZWxpbmVJdGVtSW1wbH0gZnJvbSAnQHZhbHRpbW8vY29tcG9uZW50cyc7XG5pbXBvcnQge1BhZ2V9IGZyb20gJ0B2YWx0aW1vL2NvbmZpZyc7XG5pbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudCc7XG5pbXBvcnQge1RvYXN0clNlcnZpY2V9IGZyb20gJ25neC10b2FzdHInO1xuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIG1hcCwgT2JzZXJ2YWJsZSwgb2Z9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtzd2l0Y2hNYXAsIHRha2UsIHRhcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtOb3RlfSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbHMvbm90ZXMubW9kZWwnO1xuaW1wb3J0IHtcbiAgQ0FOX0FERF9OT1RFX1BFUk1JU1NJT04sXG4gIENBTl9ERUxFVEVfTk9URV9QRVJNSVNTSU9OLFxuICBDQU5fRURJVF9OT1RFX1BFUk1JU1NJT04sXG4gIERPU1NJRVJfREVUQUlMX1BFUk1JU1NJT05fUkVTT1VSQ0UsXG59IGZyb20gJy4uLy4uLy4uLy4uL3Blcm1pc3Npb25zJztcbmltcG9ydCB7Tm90ZXNTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2aWNlcy9ub3Rlcy5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsdGltby1kb3NzaWVyLWRldGFpbC10YWItbm90ZXMnLFxuICB0ZW1wbGF0ZVVybDogJy4vbm90ZXMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9ub3Rlcy5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBEb3NzaWVyRGV0YWlsVGFiTm90ZXNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzLnRhYi0tbm8tbWFyZ2luJykgbm9NYXJnaW4gPSB0cnVlO1xuXG4gIHB1YmxpYyB0aW1lbGluZUl0ZW1zOiBUaW1lbGluZUl0ZW1bXSA9IFtdO1xuXG4gIHB1YmxpYyByZWFkb25seSBsb2FkaW5nJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4odHJ1ZSk7XG4gIHB1YmxpYyByZWFkb25seSBmaWVsZHMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxBcnJheTx7a2V5OiBzdHJpbmc7IGxhYmVsOiBzdHJpbmd9Pj4oW10pO1xuICBwdWJsaWMgcmVhZG9ubHkgY3VzdG9tRGF0YSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PG9iamVjdD4oe30pO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgZG9jdW1lbnRJZCQgPSB0aGlzLnJvdXRlLnBhcmFtcy5waXBlKG1hcChwYXJhbXMgPT4gcGFyYW1zLmRvY3VtZW50SWQpKTtcbiAgcHVibGljIHJlYWRvbmx5IGFjdGlvbnMgPSBbXG4gICAge2lkOiAnZWRpdCcsIGxhYmVsOiAnRWRpdCcsIGljb246ICdtZGktcGVuY2lsJywgY2FsbGJhY2s6IHRoaXMuZWRpdE5vdGUuYmluZCh0aGlzKX0sXG4gICAge2lkOiAnZGVsZXRlJywgbGFiZWw6ICdEZWxldGUnLCBpY29uOiAnbWRpLWRlbGV0ZScsIGNhbGxiYWNrOiB0aGlzLmRlbGV0ZU5vdGUuYmluZCh0aGlzKX0sXG4gIF07XG5cbiAgcHVibGljIHJlYWRvbmx5IGNhbkFkZCQ6IE9ic2VydmFibGU8Ym9vbGVhbj4gPSB0aGlzLmRvY3VtZW50SWQkLnBpcGUoXG4gICAgc3dpdGNoTWFwKChpZGVudGlmaWVyOiBzdHJpbmcpID0+XG4gICAgICB0aGlzLnBlcm1pc3Npb25TZXJ2aWNlLnJlcXVlc3RQZXJtaXNzaW9uKENBTl9BRERfTk9URV9QRVJNSVNTSU9OLCB7XG4gICAgICAgIHJlc291cmNlOiBET1NTSUVSX0RFVEFJTF9QRVJNSVNTSU9OX1JFU09VUkNFLmpzb25TY2hlbWFEb2N1bWVudCxcbiAgICAgICAgaWRlbnRpZmllcixcbiAgICAgIH0pXG4gICAgKVxuICApO1xuXG4gIHB1YmxpYyByZWFkb25seSBjdXJyZW50UGFnZUFuZFNpemUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxQYXJ0aWFsPFBhZ2luYXRpb24+Pih7XG4gICAgcGFnZTogMCxcbiAgICBzaXplOiAxMCxcbiAgfSk7XG5cbiAgcHVibGljIHJlYWRvbmx5IHBhZ2VTaXplcyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFBhcnRpYWw8UGFnaW5hdGlvbj4+KHtcbiAgICBjb2xsZWN0aW9uU2l6ZTogMCxcbiAgfSk7XG5cbiAgcHVibGljIHJlYWRvbmx5IHBhZ2luYXRpb24kOiBPYnNlcnZhYmxlPFBhZ2luYXRpb24+ID0gY29tYmluZUxhdGVzdChbXG4gICAgdGhpcy5jdXJyZW50UGFnZUFuZFNpemUkLFxuICAgIHRoaXMucGFnZVNpemVzJCxcbiAgXSkucGlwZShcbiAgICBtYXAoXG4gICAgICAoW2N1cnJlbnRQYWdlLCBzaXplc10pID0+XG4gICAgICAgICh7Li4uY3VycmVudFBhZ2UsIC4uLnNpemVzLCBwYWdlOiAoY3VycmVudFBhZ2UucGFnZSA/PyAwKSArIDF9KSBhcyBQYWdpbmF0aW9uXG4gICAgKVxuICApO1xuXG4gIHB1YmxpYyByZWFkb25seSBub3RlcyQ6IE9ic2VydmFibGU8QXJyYXk8Tm90ZT4+ID0gY29tYmluZUxhdGVzdChbXG4gICAgdGhpcy5kb2N1bWVudElkJCxcbiAgICB0aGlzLmN1cnJlbnRQYWdlQW5kU2l6ZSQsXG4gICAgdGhpcy5ub3Rlc1NlcnZpY2UucmVmcmVzaCQsXG4gICAgdGhpcy5ub3Rlc1NlcnZpY2UucmVmcmVzaCQsXG4gIF0pLnBpcGUoXG4gICAgdGFwKCgpID0+ICh0aGlzLnRpbWVsaW5lSXRlbXMgPSBbXSkpLFxuICAgIHN3aXRjaE1hcCgoW2RvY3VtZW50SWQsIGN1cnJlbnRQYWdlXSkgPT5cbiAgICAgIHRoaXMubm90ZXNTZXJ2aWNlLmdldERvY3VtZW50Tm90ZXMoZG9jdW1lbnRJZCwge1xuICAgICAgICBwYWdlOiBjdXJyZW50UGFnZS5wYWdlLFxuICAgICAgICBzaXplOiBjdXJyZW50UGFnZS5zaXplLFxuICAgICAgfSlcbiAgICApLFxuICAgIHRhcCgocmVzOiBQYWdlPE5vdGU+KSA9PiB7XG4gICAgICB0aGlzLnRpbWVsaW5lSXRlbXMgPSBbXTtcbiAgICAgIHRoaXMucGFnZVNpemVzJC5waXBlKHRha2UoMSkpLnN1YnNjcmliZShzaXplcyA9PiB7XG4gICAgICAgIHRoaXMucGFnZVNpemVzJC5uZXh0KHsuLi5zaXplcywgY29sbGVjdGlvblNpemU6IHJlcy50b3RhbEVsZW1lbnRzfSk7XG4gICAgICB9KTtcbiAgICB9KSxcbiAgICBzd2l0Y2hNYXAocmVzID0+XG4gICAgICBjb21iaW5lTGF0ZXN0KFtcbiAgICAgICAgb2YocmVzKSxcbiAgICAgICAgLi4ucmVzLmNvbnRlbnQubWFwKG5vdGUgPT5cbiAgICAgICAgICB0aGlzLnBlcm1pc3Npb25TZXJ2aWNlLnJlcXVlc3RQZXJtaXNzaW9uKENBTl9ERUxFVEVfTk9URV9QRVJNSVNTSU9OLCB7XG4gICAgICAgICAgICByZXNvdXJjZTogRE9TU0lFUl9ERVRBSUxfUEVSTUlTU0lPTl9SRVNPVVJDRS5ub3RlLFxuICAgICAgICAgICAgaWRlbnRpZmllcjogbm90ZS5pZCxcbiAgICAgICAgICB9KVxuICAgICAgICApLFxuICAgICAgICAuLi5yZXMuY29udGVudC5tYXAobm90ZSA9PlxuICAgICAgICAgIHRoaXMucGVybWlzc2lvblNlcnZpY2UucmVxdWVzdFBlcm1pc3Npb24oQ0FOX0VESVRfTk9URV9QRVJNSVNTSU9OLCB7XG4gICAgICAgICAgICByZXNvdXJjZTogRE9TU0lFUl9ERVRBSUxfUEVSTUlTU0lPTl9SRVNPVVJDRS5ub3RlLFxuICAgICAgICAgICAgaWRlbnRpZmllcjogbm90ZS5pZCxcbiAgICAgICAgICB9KVxuICAgICAgICApLFxuICAgICAgXSlcbiAgICApLFxuICAgIG1hcChjb21iaW5lZFJlc3VsdHMgPT4ge1xuICAgICAgY29uc3QgcGVybWlzc2lvblJlc3VsdHMgPSBjb21iaW5lZFJlc3VsdHMuZmlsdGVyKChjdXJyLCBpbmRleCkgPT4gaW5kZXggIT09IDApO1xuICAgICAgY29uc3QgaGFsZkluZGV4ID0gTWF0aC5jZWlsKHBlcm1pc3Npb25SZXN1bHRzLmxlbmd0aCAvIDIpO1xuICAgICAgY29uc3QgZGVsZXRlUGVybWlzc2lvbnMgPSBwZXJtaXNzaW9uUmVzdWx0cy5zbGljZSgwLCBoYWxmSW5kZXgpO1xuICAgICAgY29uc3QgZWRpdFBlcm1pc3Npb25zID0gcGVybWlzc2lvblJlc3VsdHMuc2xpY2UoaGFsZkluZGV4KTtcblxuICAgICAgcmV0dXJuIGNvbWJpbmVkUmVzdWx0c1swXS5jb250ZW50Lm1hcCgobm90ZTogTm90ZSwgaW5kZXgpID0+IHtcbiAgICAgICAgY29uc3Qgbm90ZUNyZWF0ZWREYXRlID0gbW9tZW50KG5vdGUuY3JlYXRlZERhdGUpLmxvY2FsZSh0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuY3VycmVudExhbmcpO1xuICAgICAgICB0aGlzLnRpbWVsaW5lSXRlbXMucHVzaChcbiAgICAgICAgICBuZXcgVGltZWxpbmVJdGVtSW1wbChcbiAgICAgICAgICAgIG5vdGVDcmVhdGVkRGF0ZS5mb3JtYXQoJ0REIE1NTSBZWVlZJyksXG4gICAgICAgICAgICBub3RlQ3JlYXRlZERhdGUuZm9ybWF0KCdISDptbScpLFxuICAgICAgICAgICAgbm90ZS5jcmVhdGVkQnlVc2VyRnVsbE5hbWUsXG4gICAgICAgICAgICBub3RlQ3JlYXRlZERhdGUuZnJvbU5vdygpLFxuICAgICAgICAgICAgbm90ZS5jb250ZW50LFxuICAgICAgICAgICAge30sXG4gICAgICAgICAgICB7aWQ6IG5vdGUuaWR9LFxuICAgICAgICAgICAgW1xuICAgICAgICAgICAgICAuLi4oZGVsZXRlUGVybWlzc2lvbnNbaW5kZXhdID8gWydkZWxldGUnXSA6IFtdKSxcbiAgICAgICAgICAgICAgLi4uKGVkaXRQZXJtaXNzaW9uc1tpbmRleF0gPyBbJ2VkaXQnXSA6IFtdKSxcbiAgICAgICAgICAgIF1cbiAgICAgICAgICApXG4gICAgICAgICk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLi4ubm90ZSxcbiAgICAgICAgfTtcbiAgICAgIH0pO1xuICAgIH0pLFxuICAgIHRhcCgoKSA9PiB0aGlzLmxvYWRpbmckLm5leHQoZmFsc2UpKVxuICApO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgbm90ZXNTZXJ2aWNlOiBOb3Rlc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBwZXJtaXNzaW9uU2VydmljZTogUGVybWlzc2lvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBwcm9tcHRTZXJ2aWNlOiBQcm9tcHRTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgdG9hc3RyU2VydmljZTogVG9hc3RyU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2VcbiAgKSB7fVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2Uub25MYW5nQ2hhbmdlLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLm5vdGVzU2VydmljZS5yZWZyZXNoKCk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgcGFnaW5hdGlvbkNsaWNrZWQobmV3UGFnZU51bWJlcik6IHZvaWQge1xuICAgIHRoaXMuY3VycmVudFBhZ2VBbmRTaXplJC5waXBlKHRha2UoMSkpLnN1YnNjcmliZShjdXJyZW50UGFnZSA9PiB7XG4gICAgICB0aGlzLmN1cnJlbnRQYWdlQW5kU2l6ZSQubmV4dCh7Li4uY3VycmVudFBhZ2UsIHBhZ2U6IG5ld1BhZ2VOdW1iZXIgLSAxfSk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgc2hvd0FkZE1vZGFsKCk6IHZvaWQge1xuICAgIHRoaXMuY3VzdG9tRGF0YSQubmV4dCh7fSk7XG4gICAgdGhpcy5ub3Rlc1NlcnZpY2Uuc2V0TW9kYWxUeXBlKCdhZGQnKTtcbiAgICB0aGlzLm5vdGVzU2VydmljZS5zaG93TW9kYWwoKTtcbiAgfVxuXG4gIHB1YmxpYyBjcmVhdGVOZXdOb3RlKGNvbnRlbnQpOiB2b2lkIHtcbiAgICB0aGlzLmRvY3VtZW50SWQkXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZSgxKSxcbiAgICAgICAgc3dpdGNoTWFwKChkb2N1bWVudElkOiBzdHJpbmcpID0+IHRoaXMubm90ZXNTZXJ2aWNlLmNyZWF0ZURvY3VtZW50Tm90ZShkb2N1bWVudElkLCBjb250ZW50KSlcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLm5vdGVzU2VydmljZS5yZWZyZXNoKCk7XG4gICAgICAgIHRoaXMubm90ZXNTZXJ2aWNlLmhpZGVNb2RhbCgpO1xuICAgICAgfSk7XG4gIH1cblxuICBwdWJsaWMgZWRpdE5vdGVFdmVudChjb250ZW50KTogdm9pZCB7XG4gICAgdGhpcy5ub3Rlc1NlcnZpY2UudXBkYXRlTm90ZShjb250ZW50LmRhdGEuY3VzdG9tRGF0YS5pZCwgY29udGVudC5mb3JtRGF0YSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMubm90ZXNTZXJ2aWNlLnJlZnJlc2goKTtcbiAgICAgIHRoaXMubm90ZXNTZXJ2aWNlLmhpZGVNb2RhbCgpO1xuICAgICAgdGhpcy50b2FzdHJTZXJ2aWNlLnN1Y2Nlc3ModGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ2Rvc3NpZXIubm90ZXMuZWRpdGVkTWVzc2FnZScpKTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBlZGl0Tm90ZShkYXRhKTogdm9pZCB7XG4gICAgdGhpcy5jdXN0b21EYXRhJC5uZXh0KGRhdGEpO1xuICAgIHRoaXMubm90ZXNTZXJ2aWNlLnNldE1vZGFsVHlwZSgnbW9kaWZ5Jyk7XG4gICAgdGhpcy5ub3Rlc1NlcnZpY2Uuc2hvd01vZGFsKCk7XG4gIH1cblxuICBwdWJsaWMgZGVsZXRlTm90ZShkYXRhKTogdm9pZCB7XG4gICAgdGhpcy5wcm9tcHRTZXJ2aWNlLm9wZW5Qcm9tcHQoe1xuICAgICAgaGVhZGVyVGV4dDogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ2Rvc3NpZXIubm90ZXMuZGVsZXRlQ29uZmlybWF0aW9uLnRpdGxlJyksXG4gICAgICBib2R5VGV4dDogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ2Rvc3NpZXIubm90ZXMuZGVsZXRlQ29uZmlybWF0aW9uLmRlc2NyaXB0aW9uJyksXG4gICAgICBjYW5jZWxCdXR0b25UZXh0OiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnZG9zc2llci5kZWxldGVDb25maXJtYXRpb24uY2FuY2VsJyksXG4gICAgICBjb25maXJtQnV0dG9uVGV4dDogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ2Rvc3NpZXIuZGVsZXRlQ29uZmlybWF0aW9uLmRlbGV0ZScpLFxuICAgICAgY2FuY2VsTWRpSWNvbjogJ2NhbmNlbCcsXG4gICAgICBjb25maXJtTWRpSWNvbjogJ2RlbGV0ZScsXG4gICAgICBjYW5jZWxCdXR0b25UeXBlOiAnc2Vjb25kYXJ5JyxcbiAgICAgIGNvbmZpcm1CdXR0b25UeXBlOiAncHJpbWFyeScsXG4gICAgICBjbG9zZU9uQ29uZmlybTogdHJ1ZSxcbiAgICAgIGNsb3NlT25DYW5jZWw6IHRydWUsXG4gICAgICBjb25maXJtQ2FsbEJhY2tGdW5jdGlvbjogKCkgPT4ge1xuICAgICAgICB0aGlzLm5vdGVzU2VydmljZS5kZWxldGVOb3RlKGRhdGEuY3VzdG9tRGF0YS5pZCkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICB0aGlzLm5vdGVzU2VydmljZS5yZWZyZXNoKCk7XG4gICAgICAgICAgdGhpcy50b2FzdHJTZXJ2aWNlLnN1Y2Nlc3MoXG4gICAgICAgICAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnZG9zc2llci5ub3Rlcy5kZWxldGVDb25maXJtYXRpb24uZGVsZXRlZE1lc3NhZ2UnKVxuICAgICAgICAgICk7XG4gICAgICAgIH0pO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxufVxuIiwiPCEtLVxuICB+IENvcHlyaWdodCAyMDE1LTIwMjQgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICB+XG4gIH4gTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gIH4geW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICB+IFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICB+XG4gIH4gaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICB+XG4gIH4gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICB+IGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAgfiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAgfiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gIH4gbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gIC0tPlxuPG5nLWNvbnRhaW5lclxuICAqbmdJZj1cIntcbiAgICBjYW5BZGQ6IGNhbkFkZCQgfCBhc3luYyxcbiAgICBub3Rlczogbm90ZXMkIHwgYXN5bmMsXG4gICAgcGFnaW5hdGlvbjogcGFnaW5hdGlvbiQgfCBhc3luYyxcbiAgICBsb2FkaW5nOiBsb2FkaW5nJCB8IGFzeW5jLFxuICB9IGFzIG9ic1wiXG4+XG4gIDxkaXYgY2xhc3M9XCJjZHMtLXRvb2xiYXItY29udGVudFwiPlxuICAgIDxidXR0b25cbiAgICAgIGNkc0J1dHRvbj1cInByaW1hcnlcIlxuICAgICAgKm5nSWY9XCJvYnMuY2FuQWRkXCJcbiAgICAgIFtkaXNhYmxlZF09XCJvYnMubG9hZGluZ1wiXG4gICAgICAoY2xpY2spPVwic2hvd0FkZE1vZGFsKClcIlxuICAgICAgYXJpYS1leHBhbmRlZD1cImZhbHNlXCJcbiAgICAgIGFyaWEtaGFzcG9wdXA9XCJ0cnVlXCJcbiAgICA+XG4gICAgICB7eyAnZG9zc2llci5ub3Rlcy5hZGROb3RlJyB8IHRyYW5zbGF0ZSB9fVxuXG4gICAgICA8c3ZnIGNsYXNzPVwiY2RzLS1idG5fX2ljb25cIiBjZHNJY29uPVwiYWRkXCIgc2l6ZT1cIjE2XCI+PC9zdmc+XG4gICAgPC9idXR0b24+XG4gIDwvZGl2PlxuXG4gIDxkaXYgKm5nSWY9XCJ0aW1lbGluZUl0ZW1zXCI+XG4gICAgPHZhbHRpbW8tdGltZWxpbmVcbiAgICAgICpuZ0lmPVwidGltZWxpbmVJdGVtcy5sZW5ndGggPiAwXCJcbiAgICAgIFthY3Rpb25zXT1cImFjdGlvbnNcIlxuICAgICAgW2l0ZW1zXT1cInRpbWVsaW5lSXRlbXNcIlxuICAgID48L3ZhbHRpbW8tdGltZWxpbmU+XG4gICAgPHZhbHRpbW8tbm8tcmVzdWx0c1xuICAgICAgKm5nSWY9XCJ0aW1lbGluZUl0ZW1zLmxlbmd0aCA9PT0gMFwiXG4gICAgICBbZGVzY3JpcHRpb25dPVwiJ2Rvc3NpZXIubm90ZXMubm9SZXN1bHRzLmRlc2NyaXB0aW9uJyB8IHRyYW5zbGF0ZVwiXG4gICAgICBbdGl0bGVdPVwiJ2Rvc3NpZXIubm90ZXMubm9SZXN1bHRzLnRpdGxlJyB8IHRyYW5zbGF0ZVwiXG4gICAgICBpbGx1c3RyYXRpb249XCJ2YWx0aW1vLWxheW91dC9pbWcvZW1wdHlzdGF0ZS1uby1yZXN1bHQuc3ZnXCJcbiAgICA+PC92YWx0aW1vLW5vLXJlc3VsdHM+XG4gIDwvZGl2PlxuXG4gIDx2YWx0aW1vLXNwaW5uZXJcbiAgICBbdXNlQm9vdHN0cmFwU3Bpbm5lcl09XCJmYWxzZVwiXG4gICAgbmFtZT1cImF1ZGl0U3Bpbm5lclwiXG4gICAgYmRDb2xvcj1cInJnYmEoMTI1LCAxMjUsIDEyNSwgMC4zNSlcIlxuICAgIGNvbG9yPVwiIzI2NDI1MVwiXG4gICAgdHlwZT1cInNxdWFyZS1qZWxseS1ib3hcIlxuICA+XG4gIDwvdmFsdGltby1zcGlubmVyPlxuXG4gIDxkaXYgKm5nSWY9XCJvYnMucGFnaW5hdGlvblwiIGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1lbmQgcm93IG1yLTAgbWwtMFwiPlxuICAgIDxuZ2ItcGFnaW5hdGlvblxuICAgICAgKm5nSWY9XCJvYnMucGFnaW5hdGlvbi5jb2xsZWN0aW9uU2l6ZSA+IG9icy5wYWdpbmF0aW9uLnNpemVcIlxuICAgICAgW2NvbGxlY3Rpb25TaXplXT1cIm9icy5wYWdpbmF0aW9uLmNvbGxlY3Rpb25TaXplXCJcbiAgICAgIFttYXhTaXplXT1cIm9icy5wYWdpbmF0aW9uLnNpemVcIlxuICAgICAgW3BhZ2VTaXplXT1cIm9icy5wYWdpbmF0aW9uLnNpemVcIlxuICAgICAgW3JvdGF0ZV09XCJ0cnVlXCJcbiAgICAgIFsocGFnZSldPVwib2JzLnBhZ2luYXRpb24ucGFnZVwiXG4gICAgICAocGFnZUNoYW5nZSk9XCJwYWdpbmF0aW9uQ2xpY2tlZCgkZXZlbnQpXCJcbiAgICA+PC9uZ2ItcGFnaW5hdGlvbj5cbiAgPC9kaXY+XG48L25nLWNvbnRhaW5lcj5cblxuPHZhbHRpbW8tbm90ZS1tb2RhbFxuICBbY3VzdG9tRGF0YV09XCJjdXN0b21EYXRhJCB8IGFzeW5jXCJcbiAgKGNyZWF0ZU5vdGVFdmVudCk9XCJjcmVhdGVOZXdOb3RlKCRldmVudClcIlxuICAoZWRpdE5vdGVFdmVudCk9XCJlZGl0Tm90ZUV2ZW50KCRldmVudClcIlxuPjwvdmFsdGltby1ub3RlLW1vZGFsPlxuIl19
171
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90ZXMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9kb3NzaWVyL3NyYy9saWIvY29tcG9uZW50cy9kb3NzaWVyLWRldGFpbC90YWIvbm90ZXMvbm90ZXMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9kb3NzaWVyL3NyYy9saWIvY29tcG9uZW50cy9kb3NzaWVyLWRldGFpbC90YWIvbm90ZXMvbm90ZXMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFDSCxPQUFPLEVBQUMsU0FBUyxFQUFFLFdBQVcsRUFBUyxNQUFNLGVBQWUsQ0FBQztBQUk3RCxPQUFPLEVBQTBDLGdCQUFnQixFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFFOUYsT0FBTyxNQUFNLE1BQU0sUUFBUSxDQUFDO0FBRTVCLE9BQU8sRUFBQyxlQUFlLEVBQUUsYUFBYSxFQUFFLEdBQUcsRUFBYyxFQUFFLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDekUsT0FBTyxFQUFDLFNBQVMsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFcEQsT0FBTyxFQUNMLHVCQUF1QixFQUN2QiwwQkFBMEIsRUFDMUIsd0JBQXdCLEVBQ3hCLGtDQUFrQyxHQUNuQyxNQUFNLHlCQUF5QixDQUFDOzs7Ozs7Ozs7Ozs7QUFRakMsTUFBTSxPQUFPLDhCQUE4QjtJQThHekMsWUFDbUIsWUFBMEIsRUFDMUIsaUJBQW9DLEVBQ3BDLGFBQTRCLEVBQzVCLEtBQXFCLEVBQ3JCLGFBQTRCLEVBQzVCLGdCQUFrQztRQUxsQyxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBQ3BDLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FB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QWMsRUFBRSxJQUFJO1lBQ3BCLGFBQWEsRUFBRSxJQUFJO1lBQ25CLHVCQUF1QixFQUFFLEdBQUcsRUFBRTtnQkFDNUIsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO29CQUM5RCxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sRUFBRSxDQUFDO29CQUM1QixJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FDeEIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxpREFBaUQsQ0FBQyxDQUNqRixDQUFDO2dCQUNKLENBQUMsQ0FBQyxDQUFDO1lBQ0wsQ0FBQztTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7K0dBeExVLDhCQUE4QjttR0FBOUIsOEJBQThCLDJJQ3ZDM0MsdWlGQWdGQTs7NEZEekNhLDhCQUE4QjtrQkFMMUMsU0FBUzsrQkFDRSxrQ0FBa0M7cU9BS1AsUUFBUTtzQkFBNUMsV0FBVzt1QkFBQyxzQkFBc0IiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMTUtMjAyNCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuaW1wb3J0IHtDb21wb25lbnQsIEhvc3RCaW5kaW5nLCBPbkluaXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtBY3RpdmF0ZWRSb3V0ZX0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7VHJhbnNsYXRlU2VydmljZX0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQge1Blcm1pc3Npb25TZXJ2aWNlfSBmcm9tICdAdmFsdGltby9hY2Nlc3MtY29udHJvbCc7XG5pbXBvcnQge1BhZ2luYXRpb24sIFByb21wdFNlcnZpY2UsIFRpbWVsaW5lSXRlbSwgVGltZWxpbmVJdGVtSW1wbH0gZnJvbSAnQHZhbHRpbW8vY29tcG9uZW50cyc7XG5pbXBvcnQge1BhZ2V9IGZyb20gJ0B2YWx0aW1vL2NvbmZpZyc7XG5pbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudCc7XG5pbXBvcnQge1RvYXN0clNlcnZpY2V9IGZyb20gJ25neC10b2FzdHInO1xuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIG1hcCwgT2JzZXJ2YWJsZSwgb2Z9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtzd2l0Y2hNYXAsIHRha2UsIHRhcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtOb3RlfSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbHMvbm90ZXMubW9kZWwnO1xuaW1wb3J0IHtcbiAgQ0FOX0FERF9OT1RFX1BFUk1JU1NJT04sXG4gIENBTl9ERUxFVEVfTk9URV9QRVJNSVNTSU9OLFxuICBDQU5fRURJVF9OT1RFX1BFUk1JU1NJT04sXG4gIERPU1NJRVJfREVUQUlMX1BFUk1JU1NJT05fUkVTT1VSQ0UsXG59IGZyb20gJy4uLy4uLy4uLy4uL3Blcm1pc3Npb25zJztcbmltcG9ydCB7Tm90ZXNTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2aWNlcy9ub3Rlcy5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsdGltby1kb3NzaWVyLWRldGFpbC10YWItbm90ZXMnLFxuICB0ZW1wbGF0ZVVybDogJy4vbm90ZXMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9ub3Rlcy5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBEb3NzaWVyRGV0YWlsVGFiTm90ZXNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzLnRhYi0tbm8tbWFyZ2luJykgbm9NYXJnaW4gPSB0cnVlO1xuXG4gIHB1YmxpYyB0aW1lbGluZUl0ZW1zOiBUaW1lbGluZUl0ZW1bXSA9IFtdO1xuXG4gIHB1YmxpYyByZWFkb25seSBsb2FkaW5nJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4odHJ1ZSk7XG4gIHB1YmxpYyByZWFkb25seSBmaWVsZHMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxBcnJheTx7a2V5OiBzdHJpbmc7IGxhYmVsOiBzdHJpbmd9Pj4oW10pO1xuICBwdWJsaWMgcmVhZG9ubHkgY3VzdG9tRGF0YSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PG9iamVjdD4oe30pO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgZG9jdW1lbnRJZCQgPSB0aGlzLnJvdXRlLnBhcmFtcy5waXBlKG1hcChwYXJhbXMgPT4gcGFyYW1zLmRvY3VtZW50SWQpKTtcbiAgcHVibGljIHJlYWRvbmx5IGFjdGlvbnMgPSBbXG4gICAge2lkOiAnZWRpdCcsIGxhYmVsOiAnRWRpdCcsIGljb246ICdtZGktcGVuY2lsJywgY2FsbGJhY2s6IHRoaXMuZWRpdE5vdGUuYmluZCh0aGlzKX0sXG4gICAge2lkOiAnZGVsZXRlJywgbGFiZWw6ICdEZWxldGUnLCBpY29uOiAnbWRpLWRlbGV0ZScsIGNhbGxiYWNrOiB0aGlzLmRlbGV0ZU5vdGUuYmluZCh0aGlzKX0sXG4gIF07XG5cbiAgcHVibGljIHJlYWRvbmx5IGNhbkFkZCQ6IE9ic2VydmFibGU8Ym9vbGVhbj4gPSB0aGlzLmRvY3VtZW50SWQkLnBpcGUoXG4gICAgc3dpdGNoTWFwKChpZGVudGlmaWVyOiBzdHJpbmcpID0+XG4gICAgICB0aGlzLnBlcm1pc3Npb25TZXJ2aWNlLnJlcXVlc3RQZXJtaXNzaW9uKENBTl9BRERfTk9URV9QRVJNSVNTSU9OLCB7XG4gICAgICAgIHJlc291cmNlOiBET1NTSUVSX0RFVEFJTF9QRVJNSVNTSU9OX1JFU09VUkNFLmpzb25TY2hlbWFEb2N1bWVudCxcbiAgICAgICAgaWRlbnRpZmllcixcbiAgICAgIH0pXG4gICAgKVxuICApO1xuXG4gIHB1YmxpYyByZWFkb25seSBjdXJyZW50UGFnZUFuZFNpemUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxQYXJ0aWFsPFBhZ2luYXRpb24+Pih7XG4gICAgcGFnZTogMCxcbiAgICBzaXplOiAxMCxcbiAgfSk7XG5cbiAgcHVibGljIHJlYWRvbmx5IHBhZ2VTaXplcyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFBhcnRpYWw8UGFnaW5hdGlvbj4+KHtcbiAgICBjb2xsZWN0aW9uU2l6ZTogMCxcbiAgfSk7XG5cbiAgcHVibGljIHJlYWRvbmx5IHBhZ2luYXRpb24kOiBPYnNlcnZhYmxlPFBhZ2luYXRpb24+ID0gY29tYmluZUxhdGVzdChbXG4gICAgdGhpcy5jdXJyZW50UGFnZUFuZFNpemUkLFxuICAgIHRoaXMucGFnZVNpemVzJCxcbiAgXSkucGlwZShcbiAgICBtYXAoXG4gICAgICAoW2N1cnJlbnRQYWdlLCBzaXplc10pID0+XG4gICAgICAgICh7Li4uY3VycmVudFBhZ2UsIC4uLnNpemVzLCBwYWdlOiAoY3VycmVudFBhZ2UucGFnZSA/PyAwKSArIDF9KSBhcyBQYWdpbmF0aW9uXG4gICAgKVxuICApO1xuXG4gIHB1YmxpYyByZWFkb25seSBub3RlcyQ6IE9ic2VydmFibGU8QXJyYXk8Tm90ZT4+ID0gY29tYmluZUxhdGVzdChbXG4gICAgdGhpcy5kb2N1bWVudElkJCxcbiAgICB0aGlzLmN1cnJlbnRQYWdlQW5kU2l6ZSQsXG4gICAgdGhpcy5ub3Rlc1NlcnZpY2UucmVmcmVzaCQsXG4gICAgdGhpcy5ub3Rlc1NlcnZpY2UucmVmcmVzaCQsXG4gIF0pLnBpcGUoXG4gICAgdGFwKCgpID0+ICh0aGlzLnRpbWVsaW5lSXRlbXMgPSBbXSkpLFxuICAgIHN3aXRjaE1hcCgoW2RvY3VtZW50SWQsIGN1cnJlbnRQYWdlXSkgPT5cbiAgICAgIHRoaXMubm90ZXNTZXJ2aWNlLmdldERvY3VtZW50Tm90ZXMoZG9jdW1lbnRJZCwge1xuICAgICAgICBwYWdlOiBjdXJyZW50UGFnZS5wYWdlLFxuICAgICAgICBzaXplOiBjdXJyZW50UGFnZS5zaXplLFxuICAgICAgfSlcbiAgICApLFxuICAgIHRhcCgocmVzOiBQYWdlPE5vdGU+KSA9PiB7XG4gICAgICB0aGlzLnRpbWVsaW5lSXRlbXMgPSBbXTtcbiAgICAgIHRoaXMucGFnZVNpemVzJC5waXBlKHRha2UoMSkpLnN1YnNjcmliZShzaXplcyA9PiB7XG4gICAgICAgIHRoaXMucGFnZVNpemVzJC5uZXh0KHsuLi5zaXplcywgY29sbGVjdGlvblNpemU6IHJlcy50b3RhbEVsZW1lbnRzfSk7XG4gICAgICB9KTtcbiAgICB9KSxcbiAgICBzd2l0Y2hNYXAocmVzID0+XG4gICAgICBjb21iaW5lTGF0ZXN0KFtcbiAgICAgICAgb2YocmVzKSxcbiAgICAgICAgLi4ucmVzLmNvbnRlbnQubWFwKG5vdGUgPT5cbiAgICAgICAgICB0aGlzLnBlcm1pc3Npb25TZXJ2aWNlLnJlcXVlc3RQZXJtaXNzaW9uKENBTl9ERUxFVEVfTk9URV9QRVJNSVNTSU9OLCB7XG4gICAgICAgICAgICByZXNvdXJjZTogRE9TU0lFUl9ERVRBSUxfUEVSTUlTU0lPTl9SRVNPVVJDRS5ub3RlLFxuICAgICAgICAgICAgaWRlbnRpZmllcjogbm90ZS5pZCxcbiAgICAgICAgICB9KVxuICAgICAgICApLFxuICAgICAgICAuLi5yZXMuY29udGVudC5tYXAobm90ZSA9PlxuICAgICAgICAgIHRoaXMucGVybWlzc2lvblNlcnZpY2UucmVxdWVzdFBlcm1pc3Npb24oQ0FOX0VESVRfTk9URV9QRVJNSVNTSU9OLCB7XG4gICAgICAgICAgICByZXNvdXJjZTogRE9TU0lFUl9ERVRBSUxfUEVSTUlTU0lPTl9SRVNPVVJDRS5ub3RlLFxuICAgICAgICAgICAgaWRlbnRpZmllcjogbm90ZS5pZCxcbiAgICAgICAgICB9KVxuICAgICAgICApLFxuICAgICAgXSlcbiAgICApLFxuICAgIG1hcChjb21iaW5lZFJlc3VsdHMgPT4ge1xuICAgICAgY29uc3QgcGVybWlzc2lvblJlc3VsdHMgPSBjb21iaW5lZFJlc3VsdHMuZmlsdGVyKChjdXJyLCBpbmRleCkgPT4gaW5kZXggIT09IDApO1xuICAgICAgY29uc3QgaGFsZkluZGV4ID0gTWF0aC5jZWlsKHBlcm1pc3Npb25SZXN1bHRzLmxlbmd0aCAvIDIpO1xuICAgICAgY29uc3QgZGVsZXRlUGVybWlzc2lvbnMgPSBwZXJtaXNzaW9uUmVzdWx0cy5zbGljZSgwLCBoYWxmSW5kZXgpO1xuICAgICAgY29uc3QgZWRpdFBlcm1pc3Npb25zID0gcGVybWlzc2lvblJlc3VsdHMuc2xpY2UoaGFsZkluZGV4KTtcblxuICAgICAgcmV0dXJuIGNvbWJpbmVkUmVzdWx0c1swXS5jb250ZW50Lm1hcCgobm90ZTogTm90ZSwgaW5kZXgpID0+IHtcbiAgICAgICAgY29uc3Qgbm90ZUNyZWF0ZWREYXRlID0gbW9tZW50KG5vdGUuY3JlYXRlZERhdGUpLmxvY2FsZSh0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuY3VycmVudExhbmcpO1xuICAgICAgICB0aGlzLnRpbWVsaW5lSXRlbXMucHVzaChcbiAgICAgICAgICBuZXcgVGltZWxpbmVJdGVtSW1wbChcbiAgICAgICAgICAgIG5vdGVDcmVhdGVkRGF0ZS5mb3JtYXQoJ0REIE1NTSBZWVlZJyksXG4gICAgICAgICAgICBub3RlQ3JlYXRlZERhdGUuZm9ybWF0KCdISDptbScpLFxuICAgICAgICAgICAgbm90ZS5jcmVhdGVkQnlVc2VyRnVsbE5hbWUsXG4gICAgICAgICAgICBub3RlQ3JlYXRlZERhdGUuZnJvbU5vdygpLFxuICAgICAgICAgICAgbm90ZS5jb250ZW50LFxuICAgICAgICAgICAge30sXG4gICAgICAgICAgICB7aWQ6IG5vdGUuaWR9LFxuICAgICAgICAgICAgW1xuICAgICAgICAgICAgICAuLi4oZGVsZXRlUGVybWlzc2lvbnNbaW5kZXhdID8gWydkZWxldGUnXSA6IFtdKSxcbiAgICAgICAgICAgICAgLi4uKGVkaXRQZXJtaXNzaW9uc1tpbmRleF0gPyBbJ2VkaXQnXSA6IFtdKSxcbiAgICAgICAgICAgIF1cbiAgICAgICAgICApXG4gICAgICAgICk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLi4ubm90ZSxcbiAgICAgICAgfTtcbiAgICAgIH0pO1xuICAgIH0pLFxuICAgIHRhcCgoKSA9PiB0aGlzLmxvYWRpbmckLm5leHQoZmFsc2UpKVxuICApO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgbm90ZXNTZXJ2aWNlOiBOb3Rlc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBwZXJtaXNzaW9uU2VydmljZTogUGVybWlzc2lvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBwcm9tcHRTZXJ2aWNlOiBQcm9tcHRTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgdG9hc3RyU2VydmljZTogVG9hc3RyU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2VcbiAgKSB7fVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2Uub25MYW5nQ2hhbmdlLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLm5vdGVzU2VydmljZS5yZWZyZXNoKCk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgcGFnaW5hdGlvbkNsaWNrZWQobmV3UGFnZU51bWJlcik6IHZvaWQge1xuICAgIHRoaXMuY3VycmVudFBhZ2VBbmRTaXplJC5waXBlKHRha2UoMSkpLnN1YnNjcmliZShjdXJyZW50UGFnZSA9PiB7XG4gICAgICB0aGlzLmN1cnJlbnRQYWdlQW5kU2l6ZSQubmV4dCh7Li4uY3VycmVudFBhZ2UsIHBhZ2U6IG5ld1BhZ2VOdW1iZXIgLSAxfSk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgc2hvd0FkZE1vZGFsKCk6IHZvaWQge1xuICAgIHRoaXMuY3VzdG9tRGF0YSQubmV4dCh7fSk7XG4gICAgdGhpcy5ub3Rlc1NlcnZpY2Uuc2V0TW9kYWxUeXBlKCdhZGQnKTtcbiAgICB0aGlzLm5vdGVzU2VydmljZS5zaG93TW9kYWwoKTtcbiAgfVxuXG4gIHB1YmxpYyBjcmVhdGVOZXdOb3RlKGNvbnRlbnQpOiB2b2lkIHtcbiAgICB0aGlzLmRvY3VtZW50SWQkXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZSgxKSxcbiAgICAgICAgc3dpdGNoTWFwKChkb2N1bWVudElkOiBzdHJpbmcpID0+IHRoaXMubm90ZXNTZXJ2aWNlLmNyZWF0ZURvY3VtZW50Tm90ZShkb2N1bWVudElkLCBjb250ZW50KSlcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLm5vdGVzU2VydmljZS5yZWZyZXNoKCk7XG4gICAgICAgIHRoaXMubm90ZXNTZXJ2aWNlLmhpZGVNb2RhbCgpO1xuICAgICAgfSk7XG4gIH1cblxuICBwdWJsaWMgZWRpdE5vdGVFdmVudChjb250ZW50KTogdm9pZCB7XG4gICAgdGhpcy5ub3Rlc1NlcnZpY2UudXBkYXRlTm90ZShjb250ZW50LmRhdGEuY3VzdG9tRGF0YS5pZCwgY29udGVudC5mb3JtRGF0YSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMubm90ZXNTZXJ2aWNlLnJlZnJlc2goKTtcbiAgICAgIHRoaXMubm90ZXNTZXJ2aWNlLmhpZGVNb2RhbCgpO1xuICAgICAgdGhpcy50b2FzdHJTZXJ2aWNlLnN1Y2Nlc3ModGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ2Rvc3NpZXIubm90ZXMuZWRpdGVkTWVzc2FnZScpKTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBlZGl0Tm90ZShkYXRhKTogdm9pZCB7XG4gICAgdGhpcy5jdXN0b21EYXRhJC5uZXh0KGRhdGEpO1xuICAgIHRoaXMubm90ZXNTZXJ2aWNlLnNldE1vZGFsVHlwZSgnbW9kaWZ5Jyk7XG4gICAgdGhpcy5ub3Rlc1NlcnZpY2Uuc2hvd01vZGFsKCk7XG4gIH1cblxuICBwdWJsaWMgZGVsZXRlTm90ZShkYXRhKTogdm9pZCB7XG4gICAgdGhpcy5wcm9tcHRTZXJ2aWNlLm9wZW5Qcm9tcHQoe1xuICAgICAgaGVhZGVyVGV4dDogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ2Rvc3NpZXIubm90ZXMuZGVsZXRlQ29uZmlybWF0aW9uLnRpdGxlJyksXG4gICAgICBib2R5VGV4dDogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ2Rvc3NpZXIubm90ZXMuZGVsZXRlQ29uZmlybWF0aW9uLmRlc2NyaXB0aW9uJyksXG4gICAgICBjYW5jZWxCdXR0b25UZXh0OiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnZG9zc2llci5kZWxldGVDb25maXJtYXRpb24uY2FuY2VsJyksXG4gICAgICBjb25maXJtQnV0dG9uVGV4dDogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ2Rvc3NpZXIuZGVsZXRlQ29uZmlybWF0aW9uLmRlbGV0ZScpLFxuICAgICAgY2FuY2VsTWRpSWNvbjogJ2NhbmNlbCcsXG4gICAgICBjb25maXJtTWRpSWNvbjogJ2RlbGV0ZScsXG4gICAgICBjYW5jZWxCdXR0b25UeXBlOiAnc2Vjb25kYXJ5JyxcbiAgICAgIGNvbmZpcm1CdXR0b25UeXBlOiAncHJpbWFyeScsXG4gICAgICBjbG9zZU9uQ29uZmlybTogdHJ1ZSxcbiAgICAgIGNsb3NlT25DYW5jZWw6IHRydWUsXG4gICAgICBjb25maXJtQ2FsbEJhY2tGdW5jdGlvbjogKCkgPT4ge1xuICAgICAgICB0aGlzLm5vdGVzU2VydmljZS5kZWxldGVOb3RlKGRhdGEuY3VzdG9tRGF0YS5pZCkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICB0aGlzLm5vdGVzU2VydmljZS5yZWZyZXNoKCk7XG4gICAgICAgICAgdGhpcy50b2FzdHJTZXJ2aWNlLnN1Y2Nlc3MoXG4gICAgICAgICAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnZG9zc2llci5ub3Rlcy5kZWxldGVDb25maXJtYXRpb24uZGVsZXRlZE1lc3NhZ2UnKVxuICAgICAgICAgICk7XG4gICAgICAgIH0pO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxufVxuIiwiPCEtLVxuICB+IENvcHlyaWdodCAyMDE1LTIwMjQgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICB+XG4gIH4gTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gIH4geW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICB+IFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICB+XG4gIH4gaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICB+XG4gIH4gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICB+IGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAgfiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAgfiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gIH4gbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gIC0tPlxuPG5nLWNvbnRhaW5lclxuICAqbmdJZj1cIntcbiAgICBjYW5BZGQ6IGNhbkFkZCQgfCBhc3luYyxcbiAgICBub3Rlczogbm90ZXMkIHwgYXN5bmMsXG4gICAgcGFnaW5hdGlvbjogcGFnaW5hdGlvbiQgfCBhc3luYyxcbiAgICBsb2FkaW5nOiBsb2FkaW5nJCB8IGFzeW5jLFxuICB9IGFzIG9ic1wiXG4+XG4gIDxkaXYgY2xhc3M9XCJjZHMtLXRvb2xiYXItY29udGVudFwiPlxuICAgIDxidXR0b25cbiAgICAgIGNkc0J1dHRvbj1cInByaW1hcnlcIlxuICAgICAgKm5nSWY9XCJvYnMuY2FuQWRkXCJcbiAgICAgIFtkaXNhYmxlZF09XCJvYnMubG9hZGluZ1wiXG4gICAgICAoY2xpY2spPVwic2hvd0FkZE1vZGFsKClcIlxuICAgICAgYXJpYS1leHBhbmRlZD1cImZhbHNlXCJcbiAgICAgIGFyaWEtaGFzcG9wdXA9XCJ0cnVlXCJcbiAgICA+XG4gICAgICB7eyAnZG9zc2llci5ub3Rlcy5hZGROb3RlJyB8IHRyYW5zbGF0ZSB9fVxuXG4gICAgICA8c3ZnIGNsYXNzPVwiY2RzLS1idG5fX2ljb25cIiBjZHNJY29uPVwiYWRkXCIgc2l6ZT1cIjE2XCI+PC9zdmc+XG4gICAgPC9idXR0b24+XG4gIDwvZGl2PlxuXG4gIDxkaXYgKm5nSWY9XCJ0aW1lbGluZUl0ZW1zXCI+XG4gICAgPHZhbHRpbW8tdGltZWxpbmVcbiAgICAgICpuZ0lmPVwidGltZWxpbmVJdGVtcy5sZW5ndGggPiAwXCJcbiAgICAgIFthY3Rpb25zXT1cImFjdGlvbnNcIlxuICAgICAgW2l0ZW1zXT1cInRpbWVsaW5lSXRlbXNcIlxuICAgID48L3ZhbHRpbW8tdGltZWxpbmU+XG5cbiAgICA8dmFsdGltby1uby1yZXN1bHRzXG4gICAgICAqbmdJZj1cInRpbWVsaW5lSXRlbXMubGVuZ3RoID09PSAwXCJcbiAgICAgIFtkZXNjcmlwdGlvbl09XCInZG9zc2llci5ub3Rlcy5ub1Jlc3VsdHMuZGVzY3JpcHRpb24nIHwgdHJhbnNsYXRlXCJcbiAgICAgIFt0aXRsZV09XCInZG9zc2llci5ub3Rlcy5ub1Jlc3VsdHMudGl0bGUnIHwgdHJhbnNsYXRlXCJcbiAgICAgIGlsbHVzdHJhdGlvbj1cInZhbHRpbW8tbGF5b3V0L2ltZy9lbXB0eXN0YXRlLW5vLXJlc3VsdC5zdmdcIlxuICAgID48L3ZhbHRpbW8tbm8tcmVzdWx0cz5cbiAgPC9kaXY+XG5cbiAgPHZhbHRpbW8tc3Bpbm5lclxuICAgIFt1c2VCb290c3RyYXBTcGlubmVyXT1cImZhbHNlXCJcbiAgICBuYW1lPVwiYXVkaXRTcGlubmVyXCJcbiAgICBiZENvbG9yPVwicmdiYSgxMjUsIDEyNSwgMTI1LCAwLjM1KVwiXG4gICAgY29sb3I9XCIjMjY0MjUxXCJcbiAgICB0eXBlPVwic3F1YXJlLWplbGx5LWJveFwiXG4gID5cbiAgPC92YWx0aW1vLXNwaW5uZXI+XG5cbiAgPGRpdiAqbmdJZj1cIm9icy5wYWdpbmF0aW9uXCIgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWVuZCByb3cgbXItMCBtbC0wXCI+XG4gICAgPG5nYi1wYWdpbmF0aW9uXG4gICAgICAqbmdJZj1cIm9icy5wYWdpbmF0aW9uLmNvbGxlY3Rpb25TaXplID4gb2JzLnBhZ2luYXRpb24uc2l6ZVwiXG4gICAgICBbY29sbGVjdGlvblNpemVdPVwib2JzLnBhZ2luYXRpb24uY29sbGVjdGlvblNpemVcIlxuICAgICAgW21heFNpemVdPVwib2JzLnBhZ2luYXRpb24uc2l6ZVwiXG4gICAgICBbcGFnZVNpemVdPVwib2JzLnBhZ2luYXRpb24uc2l6ZVwiXG4gICAgICBbcm90YXRlXT1cInRydWVcIlxuICAgICAgWyhwYWdlKV09XCJvYnMucGFnaW5hdGlvbi5wYWdlXCJcbiAgICAgIChwYWdlQ2hhbmdlKT1cInBhZ2luYXRpb25DbGlja2VkKCRldmVudClcIlxuICAgID48L25nYi1wYWdpbmF0aW9uPlxuICA8L2Rpdj5cbjwvbmctY29udGFpbmVyPlxuXG48dmFsdGltby1ub3RlLW1vZGFsXG4gIFtjdXN0b21EYXRhXT1cImN1c3RvbURhdGEkIHwgYXN5bmNcIlxuICAoY3JlYXRlTm90ZUV2ZW50KT1cImNyZWF0ZU5ld05vdGUoJGV2ZW50KVwiXG4gIChlZGl0Tm90ZUV2ZW50KT1cImVkaXROb3RlRXZlbnQoJGV2ZW50KVwiXG4+PC92YWx0aW1vLW5vdGUtbW9kYWw+XG4iXX0=
@@ -13,17 +13,16 @@
13
13
  * See the License for the specific language governing permissions and
14
14
  * limitations under the License.
15
15
  */
16
- import { ChangeDetectionStrategy, Component, HostBinding, Input, signal, ViewChild, ViewEncapsulation, } from '@angular/core';
17
- import { CarbonListModule } from '@valtimo/components';
18
16
  import { CommonModule } from '@angular/common';
19
- import { BehaviorSubject, combineLatest, map } from 'rxjs';
20
- import { InputModule } from 'carbon-components-angular';
17
+ import { ChangeDetectionStrategy, Component, HostBinding, Input, signal, ViewChild, ViewEncapsulation, } from '@angular/core';
21
18
  import { TranslateModule } from '@ngx-translate/core';
19
+ import { CarbonListModule, EllipsisPipe, ViewType } from '@valtimo/components';
20
+ import { InputModule } from 'carbon-components-angular';
21
+ import { BehaviorSubject, combineLatest, map } from 'rxjs';
22
22
  import * as i0 from "@angular/core";
23
23
  import * as i1 from "@valtimo/components";
24
24
  import * as i2 from "@angular/common";
25
- import * as i3 from "carbon-components-angular";
26
- import * as i4 from "@ngx-translate/core";
25
+ import * as i3 from "@ngx-translate/core";
27
26
  export class WidgetFieldComponent {
28
27
  set widgetConfiguration(value) {
29
28
  if (!value)
@@ -50,12 +49,12 @@ export class WidgetFieldComponent {
50
49
  ? [
51
50
  {
52
51
  title: property.title,
53
- value: widgetData[property.key] !== null && widgetData[property.key] !== undefined
54
- ? this.viewContentService.get(widgetData[property.key], {
55
- ...property.displayProperties,
56
- viewType: property.displayProperties?.type ?? 'text',
57
- })
58
- : '-',
52
+ ellipsisCharacterLimit: property.displayProperties
53
+ ?.ellipsisCharacterLimit ?? null,
54
+ value: this.viewContentService.get(widgetData[property.key], {
55
+ ...property.displayProperties,
56
+ viewType: property.displayProperties?.type ?? ViewType.TEXT,
57
+ }),
59
58
  },
60
59
  ]
61
60
  : []),
@@ -95,11 +94,11 @@ export class WidgetFieldComponent {
95
94
  return widgetData && Object.keys(widgetData).length === 0;
96
95
  }
97
96
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: WidgetFieldComponent, deps: [{ token: i1.ViewContentService }], target: i0.ɵɵFactoryTarget.Component }); }
98
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: WidgetFieldComponent, isStandalone: true, selector: "valtimo-widget-field", inputs: { collapseVertically: "collapseVertically", widgetConfiguration: "widgetConfiguration", widgetData: "widgetData" }, host: { properties: { "class": "this.class" } }, viewQueries: [{ propertyName: "_widgetFieldRef", first: true, predicate: ["widgetField"], descendants: true }], ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container\n *ngIf=\"{\n widgetConfiguration: widgetConfiguration$ | async,\n widgetPropertyValue: widgetPropertyValue$ | async,\n widgetData: widgetData$ | async,\n isEmptyWidgetData: isEmptyWidgetData$ | async,\n } as obs\"\n>\n <h4 class=\"widget-field__title\">{{ obs?.widgetConfiguration?.title }}</h4>\n\n @if (obs?.isEmptyWidgetData) {\n <valtimo-no-results\n [collapseVertically]=\"true\"\n [description]=\"'dossier.widgets.noData' | translate\"\n [smallPadding]=\"true\"\n ></valtimo-no-results>\n } @else {\n <div\n #widgetField\n [ngClass]=\"{\n 'widget-field__render-vertically': renderVertically() === 1,\n 'widget-field__render-two-columns': renderVertically() === 2,\n 'widget-field__render-three-columns': renderVertically() === 3,\n 'widget-field__container': renderVertically() === 4,\n }\"\n >\n @for (column of obs?.widgetPropertyValue; track column.key) {\n <div class=\"widget-field__column\">\n @for (property of column; track property) {\n <cds-label>\n <span [attr.title]=\"property?.title\"> {{ property?.title }}</span>\n\n <input cdsText [value]=\"property?.value\" [readonly]=\"true\" />\n </cds-label>\n }\n </div>\n }\n </div>\n }\n</ng-container>\n", styles: [".widget-field{padding:24px}.widget-field,.widget-field__column{display:flex;flex-direction:column;gap:16px;width:100%;overflow:hidden}.widget-field__title{color:var(--cds-text-primary);font-weight:600;font-size:16px;line-height:24px}.widget-field__container{display:grid;grid-gap:24px;grid-template-columns:repeat(4,1fr)}.widget-field .cds--label{width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.widget-field__render-vertically,.widget-field__render-two-columns,.widget-field__render-three-columns{display:grid;align-items:stretch;gap:24px}.widget-field__render-vertically{grid-template-columns:repeat(1,1fr)}.widget-field__render-two-columns{grid-template-columns:repeat(2,1fr)}.widget-field__render-three-columns{grid-template-columns:repeat(3,1fr)}\n/*!\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "ngmodule", type: InputModule }, { kind: "component", type: i3.Label, selector: "cds-label, ibm-label", inputs: ["labelInputID", "disabled", "skeleton", "helperText", "invalidText", "invalid", "warn", "warnText", "ariaLabel"] }, { kind: "directive", type: i3.TextInput, selector: "[cdsText], [ibmText]", inputs: ["theme", "size", "invalid", "warn", "skeleton"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: CarbonListModule }, { kind: "component", type: i1.CarbonNoResultsComponent, selector: "valtimo-no-results", inputs: ["action", "description", "illustration", "title", "smallPadding", "collapseVertically", "alwaysRenderVertically"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
97
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: WidgetFieldComponent, isStandalone: true, selector: "valtimo-widget-field", inputs: { collapseVertically: "collapseVertically", widgetConfiguration: "widgetConfiguration", widgetData: "widgetData" }, host: { properties: { "class": "this.class" } }, viewQueries: [{ propertyName: "_widgetFieldRef", first: true, predicate: ["widgetField"], descendants: true }], ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container\n *ngIf=\"{\n widgetConfiguration: widgetConfiguration$ | async,\n widgetPropertyValue: widgetPropertyValue$ | async,\n widgetData: widgetData$ | async,\n isEmptyWidgetData: isEmptyWidgetData$ | async,\n } as obs\"\n>\n <h4 class=\"widget-field__title\">{{ obs?.widgetConfiguration?.title }}</h4>\n\n @if (obs?.isEmptyWidgetData) {\n <valtimo-no-results\n [collapseVertically]=\"true\"\n [description]=\"'dossier.widgets.noData' | translate\"\n [smallPadding]=\"true\"\n ></valtimo-no-results>\n } @else {\n <div\n #widgetField\n [ngClass]=\"{\n 'widget-field__render-vertically': renderVertically() === 1,\n 'widget-field__render-two-columns': renderVertically() === 2,\n 'widget-field__render-three-columns': renderVertically() === 3,\n 'widget-field__container': renderVertically() === 4,\n }\"\n >\n @for (column of obs?.widgetPropertyValue; track column.key) {\n <div class=\"widget-field__column\">\n @for (property of column; track property) {\n <div class=\"widget-field__field\">\n <label class=\"widget-field__field-label\" [attr.title]=\"property?.title\">\n {{ property?.title }}</label\n >\n\n <div [attr.title]=\"property?.value\" class=\"widget-field__field-value\">\n {{ property?.value | valtimoEllipsis: property?.ellipsisCharacterLimit }}\n </div>\n </div>\n }\n </div>\n }\n </div>\n }\n</ng-container>\n", styles: [".widget-field{padding:24px}.widget-field,.widget-field__column{display:flex;flex-direction:column;gap:16px;width:100%;overflow:hidden}.widget-field__title{color:var(--cds-text-primary);font-weight:600;font-size:16px;line-height:24px}.widget-field__container{display:grid;grid-gap:24px;grid-template-columns:repeat(4,1fr)}.widget-field__field{display:flex;width:100%;flex-direction:column;gap:8px}.widget-field__field-label{font-size:12px;color:var(--cds-text-secondary)}.widget-field__field-value{color:var(--cds-text-primary);padding:8px 16px;border-bottom:1px solid var(--cds-border-subtle-01);font-size:14px}.widget-field .cds--label{width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.widget-field__render-vertically,.widget-field__render-two-columns,.widget-field__render-three-columns{display:grid;align-items:stretch;gap:24px}.widget-field__render-vertically{grid-template-columns:repeat(1,1fr)}.widget-field__render-two-columns{grid-template-columns:repeat(2,1fr)}.widget-field__render-three-columns{grid-template-columns:repeat(3,1fr)}\n/*!\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "ngmodule", type: InputModule }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: CarbonListModule }, { kind: "component", type: i1.CarbonNoResultsComponent, selector: "valtimo-no-results", inputs: ["action", "description", "illustration", "title", "smallPadding", "collapseVertically", "alwaysRenderVertically"] }, { kind: "pipe", type: EllipsisPipe, name: "valtimoEllipsis" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
99
98
  }
100
99
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: WidgetFieldComponent, decorators: [{
101
100
  type: Component,
102
- args: [{ selector: 'valtimo-widget-field', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, standalone: true, imports: [CommonModule, WidgetFieldComponent, InputModule, TranslateModule, CarbonListModule], template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container\n *ngIf=\"{\n widgetConfiguration: widgetConfiguration$ | async,\n widgetPropertyValue: widgetPropertyValue$ | async,\n widgetData: widgetData$ | async,\n isEmptyWidgetData: isEmptyWidgetData$ | async,\n } as obs\"\n>\n <h4 class=\"widget-field__title\">{{ obs?.widgetConfiguration?.title }}</h4>\n\n @if (obs?.isEmptyWidgetData) {\n <valtimo-no-results\n [collapseVertically]=\"true\"\n [description]=\"'dossier.widgets.noData' | translate\"\n [smallPadding]=\"true\"\n ></valtimo-no-results>\n } @else {\n <div\n #widgetField\n [ngClass]=\"{\n 'widget-field__render-vertically': renderVertically() === 1,\n 'widget-field__render-two-columns': renderVertically() === 2,\n 'widget-field__render-three-columns': renderVertically() === 3,\n 'widget-field__container': renderVertically() === 4,\n }\"\n >\n @for (column of obs?.widgetPropertyValue; track column.key) {\n <div class=\"widget-field__column\">\n @for (property of column; track property) {\n <cds-label>\n <span [attr.title]=\"property?.title\"> {{ property?.title }}</span>\n\n <input cdsText [value]=\"property?.value\" [readonly]=\"true\" />\n </cds-label>\n }\n </div>\n }\n </div>\n }\n</ng-container>\n", styles: [".widget-field{padding:24px}.widget-field,.widget-field__column{display:flex;flex-direction:column;gap:16px;width:100%;overflow:hidden}.widget-field__title{color:var(--cds-text-primary);font-weight:600;font-size:16px;line-height:24px}.widget-field__container{display:grid;grid-gap:24px;grid-template-columns:repeat(4,1fr)}.widget-field .cds--label{width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.widget-field__render-vertically,.widget-field__render-two-columns,.widget-field__render-three-columns{display:grid;align-items:stretch;gap:24px}.widget-field__render-vertically{grid-template-columns:repeat(1,1fr)}.widget-field__render-two-columns{grid-template-columns:repeat(2,1fr)}.widget-field__render-three-columns{grid-template-columns:repeat(3,1fr)}\n/*!\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"] }]
101
+ args: [{ selector: 'valtimo-widget-field', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, standalone: true, imports: [CommonModule, InputModule, TranslateModule, CarbonListModule, EllipsisPipe], template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container\n *ngIf=\"{\n widgetConfiguration: widgetConfiguration$ | async,\n widgetPropertyValue: widgetPropertyValue$ | async,\n widgetData: widgetData$ | async,\n isEmptyWidgetData: isEmptyWidgetData$ | async,\n } as obs\"\n>\n <h4 class=\"widget-field__title\">{{ obs?.widgetConfiguration?.title }}</h4>\n\n @if (obs?.isEmptyWidgetData) {\n <valtimo-no-results\n [collapseVertically]=\"true\"\n [description]=\"'dossier.widgets.noData' | translate\"\n [smallPadding]=\"true\"\n ></valtimo-no-results>\n } @else {\n <div\n #widgetField\n [ngClass]=\"{\n 'widget-field__render-vertically': renderVertically() === 1,\n 'widget-field__render-two-columns': renderVertically() === 2,\n 'widget-field__render-three-columns': renderVertically() === 3,\n 'widget-field__container': renderVertically() === 4,\n }\"\n >\n @for (column of obs?.widgetPropertyValue; track column.key) {\n <div class=\"widget-field__column\">\n @for (property of column; track property) {\n <div class=\"widget-field__field\">\n <label class=\"widget-field__field-label\" [attr.title]=\"property?.title\">\n {{ property?.title }}</label\n >\n\n <div [attr.title]=\"property?.value\" class=\"widget-field__field-value\">\n {{ property?.value | valtimoEllipsis: property?.ellipsisCharacterLimit }}\n </div>\n </div>\n }\n </div>\n }\n </div>\n }\n</ng-container>\n", styles: [".widget-field{padding:24px}.widget-field,.widget-field__column{display:flex;flex-direction:column;gap:16px;width:100%;overflow:hidden}.widget-field__title{color:var(--cds-text-primary);font-weight:600;font-size:16px;line-height:24px}.widget-field__container{display:grid;grid-gap:24px;grid-template-columns:repeat(4,1fr)}.widget-field__field{display:flex;width:100%;flex-direction:column;gap:8px}.widget-field__field-label{font-size:12px;color:var(--cds-text-secondary)}.widget-field__field-value{color:var(--cds-text-primary);padding:8px 16px;border-bottom:1px solid var(--cds-border-subtle-01);font-size:14px}.widget-field .cds--label{width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.widget-field__render-vertically,.widget-field__render-two-columns,.widget-field__render-three-columns{display:grid;align-items:stretch;gap:24px}.widget-field__render-vertically{grid-template-columns:repeat(1,1fr)}.widget-field__render-two-columns{grid-template-columns:repeat(2,1fr)}.widget-field__render-three-columns{grid-template-columns:repeat(3,1fr)}\n/*!\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"] }]
103
102
  }], ctorParameters: () => [{ type: i1.ViewContentService }], propDecorators: { class: [{
104
103
  type: HostBinding,
105
104
  args: ['class']
@@ -113,4 +112,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
113
112
  }], widgetData: [{
114
113
  type: Input
115
114
  }] } });
116
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LWZpZWxkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vZG9zc2llci9zcmMvbGliL2NvbXBvbmVudHMvZG9zc2llci1kZXRhaWwvdGFiL3dpZGdldHMvY29tcG9uZW50cy9maWVsZC93aWRnZXQtZmllbGQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9kb3NzaWVyL3NyYy9saWIvY29tcG9uZW50cy9kb3NzaWVyLWRldGFpbC90YWIvd2lkZ2V0cy9jb21wb25lbnRzL2ZpZWxkL3dpZGdldC1maWVsZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUVILE9BQU8sRUFFTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUVULFdBQVcsRUFDWCxLQUFLLEVBRUwsTUFBTSxFQUNOLFNBQVMsRUFDVCxpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLGdCQUFnQixFQUFxQixNQUFNLHFCQUFxQixDQUFDO0FBQ3pFLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQUMsZUFBZSxFQUFFLGFBQWEsRUFBRSxHQUFHLEVBQWEsTUFBTSxNQUFNLENBQUM7QUFFckUsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQ3RELE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQzs7Ozs7O0FBV3BELE1BQU0sT0FBTyxvQkFBb0I7SUFNL0IsSUFBb0IsbUJBQW1CLENBQUMsS0FBdUI7UUFDN0QsSUFBSSxDQUFDLEtBQUs7WUFBRSxPQUFPO1FBQ25CLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFD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O3NCQUFoRCxTQUFTO3VCQUFDLGFBQWE7Z0JBRWYsa0JBQWtCO3NCQUExQixLQUFLO2dCQUNjLG1CQUFtQjtzQkFBdEMsS0FBSztnQkFNYyxVQUFVO3NCQUE3QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDE1LTIwMjQgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgSG9zdEJpbmRpbmcsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIHNpZ25hbCxcbiAgVmlld0NoaWxkLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0NhcmJvbkxpc3RNb2R1bGUsIFZpZXdDb250ZW50U2VydmljZX0gZnJvbSAnQHZhbHRpbW8vY29tcG9uZW50cyc7XG5pbXBvcnQge0NvbW1vbk1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBtYXAsIE9ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtGaWVsZHNDYXNlV2lkZ2V0fSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHtJbnB1dE1vZHVsZX0gZnJvbSAnY2FyYm9uLWNvbXBvbmVudHMtYW5ndWxhcic7XG5pbXBvcnQge1RyYW5zbGF0ZU1vZHVsZX0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbHRpbW8td2lkZ2V0LWZpZWxkJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3dpZGdldC1maWVsZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3dpZGdldC1maWVsZC5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgV2lkZ2V0RmllbGRDb21wb25lbnQsIElucHV0TW9kdWxlLCBUcmFuc2xhdGVNb2R1bGUsIENhcmJvbkxpc3RNb2R1bGVdLFxufSlcbmV4cG9ydCBjbGFzcyBXaWRnZXRGaWVsZENvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gIEBIb3N0QmluZGluZygnY2xhc3MnKSBwdWJsaWMgcmVhZG9ubHkgY2xhc3MgPSAnd2lkZ2V0LWZpZWxkJztcblxuICBAVmlld0NoaWxkKCd3aWRnZXRGaWVsZCcpIHByaXZhdGUgX3dpZGdldEZpZWxkUmVmOiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PjtcblxuICBASW5wdXQoKSBjb2xsYXBzZVZlcnRpY2FsbHkgPSBmYWxzZTtcbiAgQElucHV0KCkgcHVibGljIHNldCB3aWRnZXRDb25maWd1cmF0aW9uKHZhbHVlOiBGaWVsZHNDYXNlV2lkZ2V0KSB7XG4gICAgaWYgKCF2YWx1ZSkgcmV0dXJuO1xuICAgIHRoaXMud2lkZ2V0Q29uZmlndXJhdGlvbiQubmV4dCh2YWx1ZSk7XG4gIH1cbiAgcHVibGljIHJlYWRvbmx5IGlzRW1wdHlXaWRnZXREYXRhJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gIEBJbnB1dCgpIHB1YmxpYyBzZXQgd2lkZ2V0RGF0YSh2YWx1ZTogb2JqZWN0KSB7XG4gICAgaWYgKCF2YWx1ZSkgcmV0dXJuO1xuICAgIHRoaXMud2lkZ2V0RGF0YSQubmV4dCh2YWx1ZSk7XG4gICAgdGhpcy5pc0VtcHR5V2lkZ2V0RGF0YSQubmV4dCh0aGlzLmNoZWNrRW1wdHlXaWRnZXREYXRhKHZhbHVlKSk7XG4gIH1cblxuICBwdWJsaWMgcmVhZG9ubHkgcmVuZGVyVmVydGljYWxseSA9IHNpZ25hbCgwKTtcbiAgcHVibGljIHJlYWRvbmx5IHdpZGdldENvbmZpZ3VyYXRpb24kID0gbmV3IEJlaGF2aW9yU3ViamVjdDxGaWVsZHNDYXNlV2lkZ2V0IHwgbnVsbD4obnVsbCk7XG4gIHB1YmxpYyByZWFkb25seSB3aWRnZXREYXRhJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8b2JqZWN0IHwgbnVsbD4obnVsbCk7XG5cbiAgcHVibGljIHJlYWRvbmx5IHdpZGdldFByb3BlcnR5VmFsdWUkOiBPYnNlcnZhYmxlPHt0aXRsZTogc3RyaW5nOyB2YWx1ZTogc3RyaW5nfVtdW10+ID1cbiAgICBjb21iaW5lTGF0ZXN0KFt0aGlzLndpZGdldENvbmZpZ3VyYXRpb24kLCB0aGlzLndpZGdldERhdGEkXSkucGlwZShcbiAgICAgIG1hcCgoW3dpZGdldCwgd2lkZ2V0RGF0YV0pID0+XG4gICAgICAgIHdpZGdldD8ucHJvcGVydGllcy5jb2x1bW5zLm1hcChjb2x1bW4gPT5cbiAgICAgICAgICBjb2x1bW4ucmVkdWNlKFxuICAgICAgICAgICAgKGNvbHVtbkZpZWxkcywgcHJvcGVydHkpID0+IFtcbiAgICAgICAgICAgICAgLi4uY29sdW1uRmllbGRzLFxuICAgICAgICAgICAgICAuLi4od2lkZ2V0RGF0YT8uaGFzT3duUHJvcGVydHkocHJvcGVydHkua2V5KVxuICAgICAgICAgICAgICAgID8gW1xuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgdGl0bGU6IHByb3BlcnR5LnRpdGxlLFxuICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOlxuICAgICAgICAgICAgICAgICAgICAgICAgd2lkZ2V0RGF0YVtwcm9wZXJ0eS5rZXldICE9PSBudWxsICYmIHdpZGdldERhdGFbcHJvcGVydHkua2V5XSAhPT0gdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgID8gdGhpcy52aWV3Q29udGVudFNlcnZpY2UuZ2V0KHdpZGdldERhdGFbcHJvcGVydHkua2V5XSwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4ucHJvcGVydHkuZGlzcGxheVByb3BlcnRpZXMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3VHlwZTogcHJvcGVydHkuZGlzcGxheVByb3BlcnRpZXM/LnR5cGUgPz8gJ3RleHQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDogJy0nLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgICAgIDogW10pLFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIFtdXG4gICAgICAgICAgKVxuICAgICAgICApXG4gICAgICApXG4gICAgKTtcblxuICBwcml2YXRlIF9vYnNlcnZlciE6IFJlc2l6ZU9ic2VydmVyO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgdmlld0NvbnRlbnRTZXJ2aWNlOiBWaWV3Q29udGVudFNlcnZpY2UpIHt9XG5cbiAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5jb2xsYXBzZVZlcnRpY2FsbHkgJiYgdGhpcy5fd2lkZ2V0RmllbGRSZWYpIHRoaXMub3BlbldpZHRoT2JzZXJ2ZXIoKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9vYnNlcnZlcj8uZGlzY29ubmVjdCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBvcGVuV2lkdGhPYnNlcnZlcigpOiB2b2lkIHtcbiAgICB0aGlzLl9vYnNlcnZlciA9IG5ldyBSZXNpemVPYnNlcnZlcihldmVudCA9PiB7XG4gICAgICB0aGlzLm9ic2VydmVyTXV0YXRpb24oZXZlbnQpO1xuICAgIH0pO1xuICAgIHRoaXMuX29ic2VydmVyLm9ic2VydmUodGhpcy5fd2lkZ2V0RmllbGRSZWYubmF0aXZlRWxlbWVudCk7XG4gIH1cblxuICBwcml2YXRlIG9ic2VydmVyTXV0YXRpb24oZXZlbnQ6IEFycmF5PFJlc2l6ZU9ic2VydmVyRW50cnk+KTogdm9pZCB7XG4gICAgY29uc3QgZWxlbWVudFdpZHRoID0gZXZlbnRbMF0/LmJvcmRlckJveFNpemVbMF0/LmlubGluZVNpemU7XG5cbiAgICBpZiAodHlwZW9mIGVsZW1lbnRXaWR0aCA9PT0gJ251bWJlcicgJiYgZWxlbWVudFdpZHRoICE9PSAwKSB7XG4gICAgICBpZiAoZWxlbWVudFdpZHRoIDwgNjQwKSB7XG4gICAgICAgIHRoaXMucmVuZGVyVmVydGljYWxseS5zZXQoMSk7XG4gICAgICB9IGVsc2UgaWYgKGVsZW1lbnRXaWR0aCA+IDY0MCAmJiBlbGVtZW50V2lkdGggPD0gNzY4KSB7XG4gICAgICAgIHRoaXMucmVuZGVyVmVydGljYWxseS5zZXQoMik7XG4gICAgICB9IGVsc2UgaWYgKGVsZW1lbnRXaWR0aCA+IDc2OCAmJiBlbGVtZW50V2lkdGggPD0gMTA4MCkge1xuICAgICAgICB0aGlzLnJlbmRlclZlcnRpY2FsbHkuc2V0KDMpO1xuICAgICAgfSBlbHNlIGlmIChlbGVtZW50V2lkdGggPiAxMDgwKSB7XG4gICAgICAgIHRoaXMucmVuZGVyVmVydGljYWxseS5zZXQoNCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBjaGVja0VtcHR5V2lkZ2V0RGF0YSh3aWRnZXREYXRhOiBPYmplY3QpOiBib29sZWFuIHtcbiAgICByZXR1cm4gd2lkZ2V0RGF0YSAmJiBPYmplY3Qua2V5cyh3aWRnZXREYXRhKS5sZW5ndGggPT09IDA7XG4gIH1cbn1cbiIsIjwhLS1cbiAgfiBDb3B5cmlnaHQgMjAxNS0yMDI0IFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAgflxuICB+IExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICB+IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAgfiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAgflxuICB+IGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAgflxuICB+IFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAgfiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gIH4gV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gIH4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICB+IGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICAtLT5cblxuPG5nLWNvbnRhaW5lclxuICAqbmdJZj1cIntcbiAgICB3aWRnZXRDb25maWd1cmF0aW9uOiB3aWRnZXRDb25maWd1cmF0aW9uJCB8IGFzeW5jLFxuICAgIHdpZGdldFByb3BlcnR5VmFsdWU6IHdpZGdldFByb3BlcnR5VmFsdWUkIHwgYXN5bmMsXG4gICAgd2lkZ2V0RGF0YTogd2lkZ2V0RGF0YSQgfCBhc3luYyxcbiAgICBpc0VtcHR5V2lkZ2V0RGF0YTogaXNFbXB0eVdpZGdldERhdGEkIHwgYXN5bmMsXG4gIH0gYXMgb2JzXCJcbj5cbiAgPGg0IGNsYXNzPVwid2lkZ2V0LWZpZWxkX190aXRsZVwiPnt7IG9icz8ud2lkZ2V0Q29uZmlndXJhdGlvbj8udGl0bGUgfX08L2g0PlxuXG4gIEBpZiAob2JzPy5pc0VtcHR5V2lkZ2V0RGF0YSkge1xuICAgIDx2YWx0aW1vLW5vLXJlc3VsdHNcbiAgICAgIFtjb2xsYXBzZVZlcnRpY2FsbHldPVwidHJ1ZVwiXG4gICAgICBbZGVzY3JpcHRpb25dPVwiJ2Rvc3NpZXIud2lkZ2V0cy5ub0RhdGEnIHwgdHJhbnNsYXRlXCJcbiAgICAgIFtzbWFsbFBhZGRpbmddPVwidHJ1ZVwiXG4gICAgPjwvdmFsdGltby1uby1yZXN1bHRzPlxuICB9IEBlbHNlIHtcbiAgICA8ZGl2XG4gICAgICAjd2lkZ2V0RmllbGRcbiAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgJ3dpZGdldC1maWVsZF9fcmVuZGVyLXZlcnRpY2FsbHknOiByZW5kZXJWZXJ0aWNhbGx5KCkgPT09IDEsXG4gICAgICAgICd3aWRnZXQtZmllbGRfX3JlbmRlci10d28tY29sdW1ucyc6IHJlbmRlclZlcnRpY2FsbHkoKSA9PT0gMixcbiAgICAgICAgJ3dpZGdldC1maWVsZF9fcmVuZGVyLXRocmVlLWNvbHVtbnMnOiByZW5kZXJWZXJ0aWNhbGx5KCkgPT09IDMsXG4gICAgICAgICd3aWRnZXQtZmllbGRfX2NvbnRhaW5lcic6IHJlbmRlclZlcnRpY2FsbHkoKSA9PT0gNCxcbiAgICAgIH1cIlxuICAgID5cbiAgICAgIEBmb3IgKGNvbHVtbiBvZiBvYnM/LndpZGdldFByb3BlcnR5VmFsdWU7IHRyYWNrIGNvbHVtbi5rZXkpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cIndpZGdldC1maWVsZF9fY29sdW1uXCI+XG4gICAgICAgICAgQGZvciAocHJvcGVydHkgb2YgY29sdW1uOyB0cmFjayBwcm9wZXJ0eSkge1xuICAgICAgICAgICAgPGNkcy1sYWJlbD5cbiAgICAgICAgICAgICAgPHNwYW4gW2F0dHIudGl0bGVdPVwicHJvcGVydHk/LnRpdGxlXCI+IHt7IHByb3BlcnR5Py50aXRsZSB9fTwvc3Bhbj5cblxuICAgICAgICAgICAgICA8aW5wdXQgY2RzVGV4dCBbdmFsdWVdPVwicHJvcGVydHk/LnZhbHVlXCIgW3JlYWRvbmx5XT1cInRydWVcIiAvPlxuICAgICAgICAgICAgPC9jZHMtbGFiZWw+XG4gICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiAgfVxuPC9uZy1jb250YWluZXI+XG4iXX0=
115
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LWZpZWxkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vZG9zc2llci9zcmMvbGliL2NvbXBvbmVudHMvZG9zc2llci1kZXRhaWwvdGFiL3dpZGdldHMvY29tcG9uZW50cy9maWVsZC93aWRnZXQtZmllbGQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9kb3NzaWVyL3NyYy9saWIvY29tcG9uZW50cy9kb3NzaWVyLWRldGFpbC90YWIvd2lkZ2V0cy9jb21wb25lbnRzL2ZpZWxkL3dpZGdldC1maWVsZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUNILE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFFVCxXQUFXLEVBQ1gsS0FBSyxFQUVMLE1BQU0sRUFDTixTQUFTLEVBQ1QsaUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUNwRCxPQUFPLEVBQUMsZ0JBQWdCLEVBQUUsWUFBWSxFQUFzQixRQUFRLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUNqRyxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDdEQsT0FBTyxFQUFDLGVBQWUsRUFBRSxhQUFhLEVBQUUsR0FBRyxFQUFhLE1BQU0sTUFBTSxDQUFDOzs7OztBQVlyRSxNQUFNLE9BQU8sb0JBQW9CO0lBTS9CLElBQW9CLG1CQUFtQixDQUFDLEtBQXVCO1FBQzdELElBQUksQ0FBQyxLQUFLO1lBQUUsT0FBTztRQUNuQixJQUFJLENBQUMsb0JBQW9CLENBQUMs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QUFTO3VCQUFDLGFBQWE7Z0JBRWYsa0JBQWtCO3NCQUExQixLQUFLO2dCQUNjLG1CQUFtQjtzQkFBdEMsS0FBSztnQkFNYyxVQUFVO3NCQUE3QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDE1LTIwMjQgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbmltcG9ydCB7Q29tbW9uTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgSG9zdEJpbmRpbmcsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIHNpZ25hbCxcbiAgVmlld0NoaWxkLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1RyYW5zbGF0ZU1vZHVsZX0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQge0NhcmJvbkxpc3RNb2R1bGUsIEVsbGlwc2lzUGlwZSwgVmlld0NvbnRlbnRTZXJ2aWNlLCBWaWV3VHlwZX0gZnJvbSAnQHZhbHRpbW8vY29tcG9uZW50cyc7XG5pbXBvcnQge0lucHV0TW9kdWxlfSBmcm9tICdjYXJib24tY29tcG9uZW50cy1hbmd1bGFyJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBtYXAsIE9ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtDYXNlV2lkZ2V0VGV4dERpc3BsYXlUeXBlLCBGaWVsZHNDYXNlV2lkZ2V0fSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9tb2RlbHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWx0aW1vLXdpZGdldC1maWVsZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi93aWRnZXQtZmllbGQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi93aWRnZXQtZmllbGQuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIElucHV0TW9kdWxlLCBUcmFuc2xhdGVNb2R1bGUsIENhcmJvbkxpc3RNb2R1bGUsIEVsbGlwc2lzUGlwZV0sXG59KVxuZXhwb3J0IGNsYXNzIFdpZGdldEZpZWxkQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcycpIHB1YmxpYyByZWFkb25seSBjbGFzcyA9ICd3aWRnZXQtZmllbGQnO1xuXG4gIEBWaWV3Q2hpbGQoJ3dpZGdldEZpZWxkJykgcHJpdmF0ZSBfd2lkZ2V0RmllbGRSZWY6IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+O1xuXG4gIEBJbnB1dCgpIGNvbGxhcHNlVmVydGljYWxseSA9IGZhbHNlO1xuICBASW5wdXQoKSBwdWJsaWMgc2V0IHdpZGdldENvbmZpZ3VyYXRpb24odmFsdWU6IEZpZWxkc0Nhc2VXaWRnZXQpIHtcbiAgICBpZiAoIXZhbHVlKSByZXR1cm47XG4gICAgdGhpcy53aWRnZXRDb25maWd1cmF0aW9uJC5uZXh0KHZhbHVlKTtcbiAgfVxuICBwdWJsaWMgcmVhZG9ubHkgaXNFbXB0eVdpZGdldERhdGEkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG5cbiAgQElucHV0KCkgcHVibGljIHNldCB3aWRnZXREYXRhKHZhbHVlOiBvYmplY3QpIHtcbiAgICBpZiAoIXZhbHVlKSByZXR1cm47XG4gICAgdGhpcy53aWRnZXREYXRhJC5uZXh0KHZhbHVlKTtcbiAgICB0aGlzLmlzRW1wdHlXaWRnZXREYXRhJC5uZXh0KHRoaXMuY2hlY2tFbXB0eVdpZGdldERhdGEodmFsdWUpKTtcbiAgfVxuXG4gIHB1YmxpYyByZWFkb25seSByZW5kZXJWZXJ0aWNhbGx5ID0gc2lnbmFsKDApO1xuICBwdWJsaWMgcmVhZG9ubHkgd2lkZ2V0Q29uZmlndXJhdGlvbiQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEZpZWxkc0Nhc2VXaWRnZXQgfCBudWxsPihudWxsKTtcbiAgcHVibGljIHJlYWRvbmx5IHdpZGdldERhdGEkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxvYmplY3QgfCBudWxsPihudWxsKTtcblxuICBwdWJsaWMgcmVhZG9ubHkgd2lkZ2V0UHJvcGVydHlWYWx1ZSQ6IE9ic2VydmFibGU8XG4gICAge3RpdGxlOiBzdHJpbmc7IHZhbHVlOiBzdHJpbmc7IGVsbGlwc2lzQ2hhcmFjdGVyTGltaXQ6IG51bWJlciB8IG51bGx9W11bXVxuICA+ID0gY29tYmluZUxhdGVzdChbdGhpcy53aWRnZXRDb25maWd1cmF0aW9uJCwgdGhpcy53aWRnZXREYXRhJF0pLnBpcGUoXG4gICAgbWFwKChbd2lkZ2V0LCB3aWRnZXREYXRhXSkgPT5cbiAgICAgIHdpZGdldD8ucHJvcGVydGllcy5jb2x1bW5zLm1hcChjb2x1bW4gPT5cbiAgICAgICAgY29sdW1uLnJlZHVjZShcbiAgICAgICAgICAoY29sdW1uRmllbGRzLCBwcm9wZXJ0eSkgPT4gW1xuICAgICAgICAgICAgLi4uY29sdW1uRmllbGRzLFxuICAgICAgICAgICAgLi4uKHdpZGdldERhdGE/Lmhhc093blByb3BlcnR5KHByb3BlcnR5LmtleSlcbiAgICAgICAgICAgICAgPyBbXG4gICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHRpdGxlOiBwcm9wZXJ0eS50aXRsZSxcbiAgICAgICAgICAgICAgICAgICAgZWxsaXBzaXNDaGFyYWN0ZXJMaW1pdDpcbiAgICAgICAgICAgICAgICAgICAgICAocHJvcGVydHkuZGlzcGxheVByb3BlcnRpZXMgYXMgQ2FzZVdpZGdldFRleHREaXNwbGF5VHlwZSlcbiAgICAgICAgICAgICAgICAgICAgICAgID8uZWxsaXBzaXNDaGFyYWN0ZXJMaW1pdCA/PyBudWxsLFxuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogdGhpcy52aWV3Q29udGVudFNlcnZpY2UuZ2V0KHdpZGdldERhdGFbcHJvcGVydHkua2V5XSwge1xuICAgICAgICAgICAgICAgICAgICAgIC4uLnByb3BlcnR5LmRpc3BsYXlQcm9wZXJ0aWVzLFxuICAgICAgICAgICAgICAgICAgICAgIHZpZXdUeXBlOiBwcm9wZXJ0eS5kaXNwbGF5UHJvcGVydGllcz8udHlwZSA/PyBWaWV3VHlwZS5URVhULFxuICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgICA6IFtdKSxcbiAgICAgICAgICBdLFxuICAgICAgICAgIFtdXG4gICAgICAgIClcbiAgICAgIClcbiAgICApXG4gICk7XG5cbiAgcHJpdmF0ZSBfb2JzZXJ2ZXIhOiBSZXNpemVPYnNlcnZlcjtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHZpZXdDb250ZW50U2VydmljZTogVmlld0NvbnRlbnRTZXJ2aWNlKSB7fVxuXG4gIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuY29sbGFwc2VWZXJ0aWNhbGx5ICYmIHRoaXMuX3dpZGdldEZpZWxkUmVmKSB0aGlzLm9wZW5XaWR0aE9ic2VydmVyKCk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fb2JzZXJ2ZXI/LmRpc2Nvbm5lY3QoKTtcbiAgfVxuXG4gIHByaXZhdGUgb3BlbldpZHRoT2JzZXJ2ZXIoKTogdm9pZCB7XG4gICAgdGhpcy5fb2JzZXJ2ZXIgPSBuZXcgUmVzaXplT2JzZXJ2ZXIoZXZlbnQgPT4ge1xuICAgICAgdGhpcy5vYnNlcnZlck11dGF0aW9uKGV2ZW50KTtcbiAgICB9KTtcbiAgICB0aGlzLl9vYnNlcnZlci5vYnNlcnZlKHRoaXMuX3dpZGdldEZpZWxkUmVmLm5hdGl2ZUVsZW1lbnQpO1xuICB9XG5cbiAgcHJpdmF0ZSBvYnNlcnZlck11dGF0aW9uKGV2ZW50OiBBcnJheTxSZXNpemVPYnNlcnZlckVudHJ5Pik6IHZvaWQge1xuICAgIGNvbnN0IGVsZW1lbnRXaWR0aCA9IGV2ZW50WzBdPy5ib3JkZXJCb3hTaXplWzBdPy5pbmxpbmVTaXplO1xuXG4gICAgaWYgKHR5cGVvZiBlbGVtZW50V2lkdGggPT09ICdudW1iZXInICYmIGVsZW1lbnRXaWR0aCAhPT0gMCkge1xuICAgICAgaWYgKGVsZW1lbnRXaWR0aCA8IDY0MCkge1xuICAgICAgICB0aGlzLnJlbmRlclZlcnRpY2FsbHkuc2V0KDEpO1xuICAgICAgfSBlbHNlIGlmIChlbGVtZW50V2lkdGggPiA2NDAgJiYgZWxlbWVudFdpZHRoIDw9IDc2OCkge1xuICAgICAgICB0aGlzLnJlbmRlclZlcnRpY2FsbHkuc2V0KDIpO1xuICAgICAgfSBlbHNlIGlmIChlbGVtZW50V2lkdGggPiA3NjggJiYgZWxlbWVudFdpZHRoIDw9IDEwODApIHtcbiAgICAgICAgdGhpcy5yZW5kZXJWZXJ0aWNhbGx5LnNldCgzKTtcbiAgICAgIH0gZWxzZSBpZiAoZWxlbWVudFdpZHRoID4gMTA4MCkge1xuICAgICAgICB0aGlzLnJlbmRlclZlcnRpY2FsbHkuc2V0KDQpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgY2hlY2tFbXB0eVdpZGdldERhdGEod2lkZ2V0RGF0YTogT2JqZWN0KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHdpZGdldERhdGEgJiYgT2JqZWN0LmtleXMod2lkZ2V0RGF0YSkubGVuZ3RoID09PSAwO1xuICB9XG59XG4iLCI8IS0tXG4gIH4gQ29weXJpZ2h0IDIwMTUtMjAyNCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gIH5cbiAgfiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAgfiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gIH4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gIH5cbiAgfiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gIH5cbiAgfiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gIH4gZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICB+IFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICB+IFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAgfiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAgLS0+XG5cbjxuZy1jb250YWluZXJcbiAgKm5nSWY9XCJ7XG4gICAgd2lkZ2V0Q29uZmlndXJhdGlvbjogd2lkZ2V0Q29uZmlndXJhdGlvbiQgfCBhc3luYyxcbiAgICB3aWRnZXRQcm9wZXJ0eVZhbHVlOiB3aWRnZXRQcm9wZXJ0eVZhbHVlJCB8IGFzeW5jLFxuICAgIHdpZGdldERhdGE6IHdpZGdldERhdGEkIHwgYXN5bmMsXG4gICAgaXNFbXB0eVdpZGdldERhdGE6IGlzRW1wdHlXaWRnZXREYXRhJCB8IGFzeW5jLFxuICB9IGFzIG9ic1wiXG4+XG4gIDxoNCBjbGFzcz1cIndpZGdldC1maWVsZF9fdGl0bGVcIj57eyBvYnM/LndpZGdldENvbmZpZ3VyYXRpb24/LnRpdGxlIH19PC9oND5cblxuICBAaWYgKG9icz8uaXNFbXB0eVdpZGdldERhdGEpIHtcbiAgICA8dmFsdGltby1uby1yZXN1bHRzXG4gICAgICBbY29sbGFwc2VWZXJ0aWNhbGx5XT1cInRydWVcIlxuICAgICAgW2Rlc2NyaXB0aW9uXT1cIidkb3NzaWVyLndpZGdldHMubm9EYXRhJyB8IHRyYW5zbGF0ZVwiXG4gICAgICBbc21hbGxQYWRkaW5nXT1cInRydWVcIlxuICAgID48L3ZhbHRpbW8tbm8tcmVzdWx0cz5cbiAgfSBAZWxzZSB7XG4gICAgPGRpdlxuICAgICAgI3dpZGdldEZpZWxkXG4gICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICd3aWRnZXQtZmllbGRfX3JlbmRlci12ZXJ0aWNhbGx5JzogcmVuZGVyVmVydGljYWxseSgpID09PSAxLFxuICAgICAgICAnd2lkZ2V0LWZpZWxkX19yZW5kZXItdHdvLWNvbHVtbnMnOiByZW5kZXJWZXJ0aWNhbGx5KCkgPT09IDIsXG4gICAgICAgICd3aWRnZXQtZmllbGRfX3JlbmRlci10aHJlZS1jb2x1bW5zJzogcmVuZGVyVmVydGljYWxseSgpID09PSAzLFxuICAgICAgICAnd2lkZ2V0LWZpZWxkX19jb250YWluZXInOiByZW5kZXJWZXJ0aWNhbGx5KCkgPT09IDQsXG4gICAgICB9XCJcbiAgICA+XG4gICAgICBAZm9yIChjb2x1bW4gb2Ygb2JzPy53aWRnZXRQcm9wZXJ0eVZhbHVlOyB0cmFjayBjb2x1bW4ua2V5KSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ3aWRnZXQtZmllbGRfX2NvbHVtblwiPlxuICAgICAgICAgIEBmb3IgKHByb3BlcnR5IG9mIGNvbHVtbjsgdHJhY2sgcHJvcGVydHkpIHtcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3aWRnZXQtZmllbGRfX2ZpZWxkXCI+XG4gICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cIndpZGdldC1maWVsZF9fZmllbGQtbGFiZWxcIiBbYXR0ci50aXRsZV09XCJwcm9wZXJ0eT8udGl0bGVcIj5cbiAgICAgICAgICAgICAgICB7eyBwcm9wZXJ0eT8udGl0bGUgfX08L2xhYmVsXG4gICAgICAgICAgICAgID5cblxuICAgICAgICAgICAgICA8ZGl2IFthdHRyLnRpdGxlXT1cInByb3BlcnR5Py52YWx1ZVwiIGNsYXNzPVwid2lkZ2V0LWZpZWxkX19maWVsZC12YWx1ZVwiPlxuICAgICAgICAgICAgICAgIHt7IHByb3BlcnR5Py52YWx1ZSB8IHZhbHRpbW9FbGxpcHNpczogcHJvcGVydHk/LmVsbGlwc2lzQ2hhcmFjdGVyTGltaXQgfX1cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgICAgfVxuICAgIDwvZGl2PlxuICB9XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
@@ -126,7 +126,7 @@ export class WidgetBlockComponent {
126
126
  return `size=${widgetConfiguration.properties.defaultPageSize}`;
127
127
  }
128
128
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: WidgetBlockComponent, deps: [{ token: i1.DossierWidgetsLayoutService }, { token: i1.DossierTabService }, { token: i2.ActivatedRoute }, { token: i1.DossierWidgetsApiService }, { token: i3.CdsThemeService }, { token: i0.Renderer2 }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Component }); }
129
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: WidgetBlockComponent, isStandalone: true, selector: "valtimo-dossier-widget-block", inputs: { widget: "widget" }, viewQueries: [{ propertyName: "_widgetBlockContentRef", first: true, predicate: ["widgetBlockContent"], descendants: true }, { propertyName: "_widgetBlockRef", first: true, predicate: ["widgetBlock"], descendants: true }], ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container\n *ngIf=\"{\n documentId: documentId$ | async,\n tabKey: tabKey$ | async,\n widgetConfiguration: widget$ | async,\n widgetData: widgetData$ | async,\n theme: theme$ | async,\n blockHeightPx: blockHeightPx$ | async,\n blockWidthPercentage: blockWidthPercentage$ | async,\n } as obs\"\n>\n <div #widgetBlock class=\"widget-block\" [attr.data-carbon-theme]=\"obs.theme\">\n <div #widgetBlockContent class=\"widget-block__content\">\n @if (obs.widgetData) {\n @switch (obs.widgetConfiguration.type) {\n @case (CaseWidgetType.TABLE) {\n <valtimo-widget-table\n [documentId]=\"obs.documentId\"\n [tabKey]=\"obs.tabKey\"\n [widgetConfiguration]=\"obs.widgetConfiguration\"\n [widgetData]=\"obs.widgetData\"\n ></valtimo-widget-table>\n }\n\n @case (CaseWidgetType.COLLECTION) {\n <valtimo-widget-collection\n [documentId]=\"obs.documentId\"\n [tabKey]=\"obs.tabKey\"\n [widgetConfiguration]=\"obs.widgetConfiguration\"\n [widgetData]=\"obs.widgetData\"\n ></valtimo-widget-collection>\n }\n\n @case (CaseWidgetType.CUSTOM) {\n <valtimo-widget-custom [widgetConfig]=\"obs.widgetConfiguration\"></valtimo-widget-custom>\n }\n\n @case (CaseWidgetType.FIELDS) {\n <valtimo-widget-field\n [collapseVertically]=\"true\"\n [widgetConfiguration]=\"obs.widgetConfiguration\"\n [widgetData]=\"obs.widgetData\"\n ></valtimo-widget-field>\n }\n\n @case (CaseWidgetType.FORMIO) {\n <valtimo-widget-formio\n [widgetConfiguration]=\"obs.widgetConfiguration\"\n [documentId]=\"obs.documentId\"\n ></valtimo-widget-formio>\n }\n\n @default {\n <div class=\"widget-block__not-available\">\n <valtimo-no-results\n [collapseVertically]=\"true\"\n [description]=\"'dossier.widgets.noWidget' | translate\"\n [smallPadding]=\"true\"\n ></valtimo-no-results>\n </div>\n }\n }\n } @else {\n <div class=\"widget-block__not-available\">\n <valtimo-no-results\n [collapseVertically]=\"true\"\n [description]=\"'dossier.widgets.noData' | translate\"\n [smallPadding]=\"true\"\n ></valtimo-no-results>\n </div>\n }\n </div>\n </div>\n</ng-container>\n", styles: [":host{display:block;position:absolute}.widget-block{width:100%;height:100%;box-sizing:border-box;padding:8px;overflow-wrap:break-word;background-color:var(--cds-layer-01);background-clip:content-box}.widget-block__not-available{padding:16px}\n/*!\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "ngmodule", type: LoadingModule }, { kind: "component", type: WidgetTableComponent, selector: "valtimo-widget-table", inputs: ["documentId", "tabKey", "widgetConfiguration", "widgetData"] }, { kind: "component", type: WidgetCustomComponent, selector: "valtimo-widget-custom", inputs: ["widgetConfig"] }, { kind: "ngmodule", type: CarbonListModule }, { kind: "component", type: i3.CarbonNoResultsComponent, selector: "valtimo-no-results", inputs: ["action", "description", "illustration", "title", "smallPadding", "collapseVertically", "alwaysRenderVertically"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: TilesModule }, { kind: "component", type: WidgetFieldComponent, selector: "valtimo-widget-field", inputs: ["collapseVertically", "widgetConfiguration", "widgetData"] }, { kind: "component", type: WidgetFormioComponent, selector: "valtimo-widget-formio", inputs: ["documentId", "widgetConfiguration"] }, { kind: "component", type: WidgetCollectionComponent, selector: "valtimo-widget-collection", inputs: ["documentId", "tabKey", "widgetConfiguration", "widgetData"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
129
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: WidgetBlockComponent, isStandalone: true, selector: "valtimo-dossier-widget-block", inputs: { widget: "widget" }, viewQueries: [{ propertyName: "_widgetBlockContentRef", first: true, predicate: ["widgetBlockContent"], descendants: true }], ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container\n *ngIf=\"{\n documentId: documentId$ | async,\n tabKey: tabKey$ | async,\n widgetConfiguration: widget$ | async,\n widgetData: widgetData$ | async,\n theme: theme$ | async,\n blockHeightPx: blockHeightPx$ | async,\n blockWidthPercentage: blockWidthPercentage$ | async,\n } as obs\"\n>\n <div #widgetBlock class=\"widget-block\" [attr.data-carbon-theme]=\"obs.theme\">\n <div #widgetBlockContent class=\"widget-block__content\">\n @if (obs.widgetData) {\n @switch (obs.widgetConfiguration.type) {\n @case (CaseWidgetType.TABLE) {\n <valtimo-widget-table\n [documentId]=\"obs.documentId\"\n [tabKey]=\"obs.tabKey\"\n [widgetConfiguration]=\"obs.widgetConfiguration\"\n [widgetData]=\"obs.widgetData\"\n ></valtimo-widget-table>\n }\n\n @case (CaseWidgetType.COLLECTION) {\n <valtimo-widget-collection\n [documentId]=\"obs.documentId\"\n [tabKey]=\"obs.tabKey\"\n [widgetConfiguration]=\"obs.widgetConfiguration\"\n [widgetData]=\"obs.widgetData\"\n ></valtimo-widget-collection>\n }\n\n @case (CaseWidgetType.CUSTOM) {\n <valtimo-widget-custom [widgetConfig]=\"obs.widgetConfiguration\"></valtimo-widget-custom>\n }\n\n @case (CaseWidgetType.FIELDS) {\n <valtimo-widget-field\n [collapseVertically]=\"true\"\n [widgetConfiguration]=\"obs.widgetConfiguration\"\n [widgetData]=\"obs.widgetData\"\n ></valtimo-widget-field>\n }\n\n @case (CaseWidgetType.FORMIO) {\n <valtimo-widget-formio\n [widgetConfiguration]=\"obs.widgetConfiguration\"\n [documentId]=\"obs.documentId\"\n ></valtimo-widget-formio>\n }\n\n @default {\n <div class=\"widget-block__not-available\">\n <valtimo-no-results\n [collapseVertically]=\"true\"\n [description]=\"'dossier.widgets.noWidget' | translate\"\n [smallPadding]=\"true\"\n ></valtimo-no-results>\n </div>\n }\n }\n } @else {\n <div class=\"widget-block__not-available\">\n <valtimo-no-results\n [collapseVertically]=\"true\"\n [description]=\"'dossier.widgets.noData' | translate\"\n [smallPadding]=\"true\"\n ></valtimo-no-results>\n </div>\n }\n </div>\n </div>\n</ng-container>\n", styles: [":host{display:block;position:absolute}.widget-block{width:100%;height:100%;box-sizing:border-box;padding:8px;overflow-wrap:break-word;background-color:var(--cds-layer-01);background-clip:content-box}.widget-block__not-available{padding:16px}\n/*!\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "ngmodule", type: LoadingModule }, { kind: "component", type: WidgetTableComponent, selector: "valtimo-widget-table", inputs: ["documentId", "tabKey", "widgetConfiguration", "widgetData"] }, { kind: "component", type: WidgetCustomComponent, selector: "valtimo-widget-custom", inputs: ["widgetConfig"] }, { kind: "ngmodule", type: CarbonListModule }, { kind: "component", type: i3.CarbonNoResultsComponent, selector: "valtimo-no-results", inputs: ["action", "description", "illustration", "title", "smallPadding", "collapseVertically", "alwaysRenderVertically"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: TilesModule }, { kind: "component", type: WidgetFieldComponent, selector: "valtimo-widget-field", inputs: ["collapseVertically", "widgetConfiguration", "widgetData"] }, { kind: "component", type: WidgetFormioComponent, selector: "valtimo-widget-formio", inputs: ["documentId", "widgetConfiguration"] }, { kind: "component", type: WidgetCollectionComponent, selector: "valtimo-widget-collection", inputs: ["documentId", "tabKey", "widgetConfiguration", "widgetData"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
130
130
  }
131
131
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: WidgetBlockComponent, decorators: [{
132
132
  type: Component,
@@ -145,10 +145,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
145
145
  }], ctorParameters: () => [{ type: i1.DossierWidgetsLayoutService }, { type: i1.DossierTabService }, { type: i2.ActivatedRoute }, { type: i1.DossierWidgetsApiService }, { type: i3.CdsThemeService }, { type: i0.Renderer2 }, { type: i0.ViewContainerRef }], propDecorators: { _widgetBlockContentRef: [{
146
146
  type: ViewChild,
147
147
  args: ['widgetBlockContent']
148
- }], _widgetBlockRef: [{
149
- type: ViewChild,
150
- args: ['widgetBlock']
151
148
  }], widget: [{
152
149
  type: Input
153
150
  }] } });
154
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LWJsb2NrLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vZG9zc2llci9zcmMvbGliL2NvbXBvbmVudHMvZG9zc2llci1kZXRhaWwvdGFiL3dpZGdldHMvY29tcG9uZW50cy93aWRnZXQtYmxvY2svd2lkZ2V0LWJsb2NrLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vZG9zc2llci9zcmMvbGliL2NvbXBvbmVudHMvZG9zc2llci1kZXRhaWwvdGFiL3dpZGdldHMvY29tcG9uZW50cy93aWRnZXQtYmxvY2svd2lkZ2V0LWJsb2NrLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBQ0gsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBRTdDLE9BQU8sRUFFTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUVULEtBQUssRUFHTCxTQUFTLEdBRVYsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ3BELE9BQU8sRUFDTCxZQUFZLEVBQ1osZ0JBQWdCLEVBRWhCLGtCQUFrQixHQUNuQixNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFBQyxhQUFhLEVBQUUsV0FBVyxFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDckUsT0FBTyxFQUNMLGVBQWUsRUFDZixVQUFVLEVBQ1YsYUFBYSxFQUNiLE1BQU0sRUFDTixHQUFHLEVBRUgsRUFBRSxFQUNGLFlBQVksRUFDWixTQUFTLEVBQ1QsR0FBRyxHQUNKLE1BQU0sTUFBTSxDQUFDO0FBQ2QsT0FBTyxFQUFDLGNBQWMsRUFBeUMsTUFBTSwwQkFBMEIsQ0FBQztBQU1oRyxPQUFPLEVBQUMscUJB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YUFBYSwrQkFDYixvQkFBb0Isd0lBQ3BCLHFCQUFxQiwyRkFDckIsZ0JBQWdCLG9QQUNoQixlQUFlLDJGQUNmLFdBQVcsK0JBQ1gsb0JBQW9CLHNJQUNwQixxQkFBcUIsaUhBQ3JCLHlCQUF5Qjs7NEZBSWhCLG9CQUFvQjtrQkFuQmhDLFNBQVM7K0JBQ0UsOEJBQThCLGNBRzVCLElBQUksV0FDUDt3QkFDUCxZQUFZO3dCQUNaLGFBQWE7d0JBQ2Isb0JBQW9CO3dCQUNwQixxQkFBcUI7d0JBQ3JCLGdCQUFnQjt3QkFDaEIsZUFBZTt3QkFDZixXQUFXO3dCQUNYLG9CQUFvQjt3QkFDcEIscUJBQXFCO3dCQUNyQix5QkFBeUI7cUJBQzFCLG1CQUNnQix1QkFBdUIsQ0FBQyxNQUFNO3lSQUdOLHNCQUFzQjtzQkFBOUQsU0FBUzt1QkFBQyxvQkFBb0I7Z0JBQ0csZUFBZTtzQkFBaEQsU0FBUzt1QkFBQyxhQUFhO2dCQUVKLE1BQU07c0JBQXpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMTUtMjAyNCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuaW1wb3J0IHtDb21tb25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge0h0dHBFcnJvclJlc3BvbnNlfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBSZW5kZXJlcjIsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0NvbnRhaW5lclJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0FjdGl2YXRlZFJvdXRlfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtUcmFuc2xhdGVNb2R1bGV9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHtcbiAgQ0FSQk9OX1RIRU1FLFxuICBDYXJib25MaXN0TW9kdWxlLFxuICBDZHNUaGVtZVNlcnZpY2UsXG4gIEN1cnJlbnRDYXJib25UaGVtZSxcbn0gZnJvbSAnQHZhbHRpbW8vY29tcG9uZW50cyc7XG5pbXBvcnQge0xvYWRpbmdNb2R1bGUsIFRpbGVzTW9kdWxlfSBmcm9tICdjYXJib24tY29tcG9uZW50cy1hbmd1bGFyJztcbmltcG9ydCB7XG4gIEJlaGF2aW9yU3ViamVjdCxcbiAgY2F0Y2hFcnJvcixcbiAgY29tYmluZUxhdGVzdCxcbiAgZmlsdGVyLFxuICBtYXAsXG4gIE9ic2VydmFibGUsXG4gIG9mLFxuICBTdWJzY3JpcHRpb24sXG4gIHN3aXRjaE1hcCxcbiAgdGFwLFxufSBmcm9tICdyeGpzJztcbmltcG9ydCB7Q2FzZVdpZGdldFR5cGUsIENhc2VXaWRnZXRXaXRoVXVpZCwgV2lkZ2V0VGFibGVDb250ZW50fSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHtcbiAgRG9zc2llclRhYlNlcnZpY2UsXG4gIERvc3NpZXJXaWRnZXRzQXBpU2VydmljZSxcbiAgRG9zc2llcldpZGdldHNMYXlvdXRTZXJ2aWNlLFxufSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9zZXJ2aWNlcyc7XG5pbXBvcnQge1dpZGdldEN1c3RvbUNvbXBvbmVudH0gZnJvbSAnLi4vY3VzdG9tL3dpZGdldC1jdXN0b20uY29tcG9uZW50JztcbmltcG9ydCB7V2lkZ2V0RmllbGRDb21wb25lbnR9IGZyb20gJy4uL2ZpZWxkL3dpZGdldC1maWVsZC5jb21wb25lbnQnO1xuaW1wb3J0IHtXaWRnZXRGb3JtaW9Db21wb25lbnR9IGZyb20gJy4uL2Zvcm1pby93aWRnZXQtZm9ybWlvLmNvbXBvbmVudCc7XG5pbXBvcnQge1dpZGdldFRhYmxlQ29tcG9uZW50fSBmcm9tICcuLi90YWJsZS93aWRnZXQtdGFibGUuY29tcG9uZW50JztcbmltcG9ydCB7V2lkZ2V0Q29sbGVjdGlvbkNvbXBvbmVudH0gZnJvbSAnLi4vY29sbGVjdGlvbi93aWRnZXQtY29sbGVjdGlvbi5jb21wb25lbnQnO1xuaW1wb3J0IHtXSURHRVRfSEVJR0hUXzFYfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9jb25zdGFudHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWx0aW1vLWRvc3NpZXItd2lkZ2V0LWJsb2NrJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3dpZGdldC1ibG9jay5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3dpZGdldC1ibG9jay5jb21wb25lbnQuc2NzcyddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIExvYWRpbmdNb2R1bGUsXG4gICAgV2lkZ2V0VGFibGVDb21wb25lbnQsXG4gICAgV2lkZ2V0Q3VzdG9tQ29tcG9uZW50LFxuICAgIENhcmJvbkxpc3RNb2R1bGUsXG4gICAgVHJhbnNsYXRlTW9kdWxlLFxuICAgIFRpbGVzTW9kdWxlLFxuICAgIFdpZGdldEZpZWxkQ29tcG9uZW50LFxuICAgIFdpZGdldEZvcm1pb0NvbXBvbmVudCxcbiAgICBXaWRnZXRDb2xsZWN0aW9uQ29tcG9uZW50LFxuICBdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgV2lkZ2V0QmxvY2tDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuICBAVmlld0NoaWxkKCd3aWRnZXRCbG9ja0NvbnRlbnQnKSBwcml2YXRlIF93aWRnZXRCbG9ja0NvbnRlbnRSZWY6IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+O1xuICBAVmlld0NoaWxkKCd3aWRnZXRCbG9jaycpIHByaXZhdGUgX3dpZGdldEJsb2NrUmVmOiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PjtcblxuICBASW5wdXQoKSBwdWJsaWMgc2V0IHdpZGdldCh2YWx1ZTogQ2FzZVdpZGdldFdpdGhVdWlkKSB7XG4gICAgdGhpcy5fd2lkZ2V0VXVpZCA9IHZhbHVlLnV1aWQ7XG4gICAgdGhpcy5fd2lkZ2V0JC5uZXh0KHZhbHVlKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVhZG9ubHkgX3dpZGdldCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PENhc2VXaWRnZXRXaXRoVXVpZCB8IG51bGw+KG51bGwpO1xuXG4gIHB1YmxpYyBnZXQgd2lkZ2V0JCgpOiBPYnNlcnZhYmxlPENhc2VXaWRnZXRXaXRoVXVpZD4ge1xuICAgIHJldHVybiB0aGlzLl93aWRnZXQkLnBpcGUoZmlsdGVyKHdpZGdldCA9PiB3aWRnZXQgIT09IG51bGwpKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVhZG9ubHkgX3ZpZXdDb250YWluZXJSZWZTdWJqZWN0JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Vmlld0NvbnRhaW5lclJlZiB8IG51bGw+KG51bGwpO1xuXG4gIHByaXZhdGUgZ2V0IF92aWV3Q29udGFpbmVyUmVmJCgpOiBPYnNlcnZhYmxlPFZpZXdDb250YWluZXJSZWY+IHtcbiAgICByZXR1cm4gdGhpcy5fdmlld0NvbnRhaW5lclJlZlN1YmplY3QkLnBpcGUoZmlsdGVyKHJlZiA9PiAhIXJlZikpO1xuICB9XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfY29udGVudEhlaWdodCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PG51bWJlcj4oMCk7XG5cbiAgcHVibGljIHJlYWRvbmx5IGJsb2NrSGVpZ2h0UHgkID0gY29tYmluZUxhdGVzdChbXG4gICAgdGhpcy5fY29udGVudEhlaWdodCQsXG4gICAgdGhpcy5fdmlld0NvbnRhaW5lclJlZiQsXG4gIF0pLnBpcGUoXG4gICAgZmlsdGVyKChbY29udGVudEhlaWdodF0pID0+IGNvbnRlbnRIZWlnaHQgIT09IDApLFxuICAgIHRhcCgoW2NvbnRlbnRIZWlnaHQsIHZpZXdSZWZdKSA9PiB7XG4gICAgICBjb25zdCBibG9ja0hlaWdodCA9IE1hdGguY2VpbCgoY29udGVudEhlaWdodCArIDE2KSAvIFdJREdFVF9IRUlHSFRfMVgpICogV0lER0VUX0hFSUdIVF8xWDtcblxuICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh2aWV3UmVmLmVsZW1lbnQubmF0aXZlRWxlbWVudCwgJ2hlaWdodCcsIGAke2Jsb2NrSGVpZ2h0fXB4YCk7XG4gICAgICB0aGlzLmRvc3NpZXJXaWRnZXRzTGF5b3V0U2VydmljZS50cmlnZ2VyTXV1cmlMYXlvdXQoKTtcbiAgICB9KVxuICApO1xuXG4gIHB1YmxpYyByZWFkb25seSBibG9ja1dpZHRoUGVyY2VudGFnZSQgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICB0aGlzLmRvc3NpZXJXaWRnZXRzTGF5b3V0U2VydmljZS5hbW91bnRPZkNvbHVtbnMkLFxuICAgIHRoaXMud2lkZ2V0JCxcbiAgICB0aGlzLl92aWV3Q29udGFpbmVyUmVmJCxcbiAgXSkucGlwZShcbiAgICB0YXAoKFthbW91bnRPZkNvbHVtbnMsIHdpZGdldCwgdmlld1JlZl0pID0+IHtcbiAgICAgIGNvbnN0IHBlcmNlbnRhZ2UgPVxuICAgICAgICB3aWRnZXQud2lkdGggPiBhbW91bnRPZkNvbHVtbnMgPyAxMDAgOiAod2lkZ2V0LndpZHRoIC8gYW1vdW50T2ZDb2x1bW5zKSAqIDEwMDtcblxuICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh2aWV3UmVmLmVsZW1lbnQubmF0aXZlRWxlbWVudCwgJ3dpZHRoJywgYCR7cGVyY2VudGFnZX0lYCk7XG4gICAgICB0aGlzLmRvc3NpZXJXaWRnZXRzTGF5b3V0U2VydmljZS50cmlnZ2VyTXV1cmlMYXlvdXQoKTtcbiAgICB9KVxuICApO1xuXG4gIHB1YmxpYyByZWFkb25seSBDYXNlV2lkZ2V0VHlwZSA9IENhc2VXaWRnZXRUeXBlO1xuXG4gIHB1YmxpYyByZWFkb25seSBkb2N1bWVudElkJCA9IHRoaXMucm91dGUucGFyYW1zLnBpcGUoXG4gICAgbWFwKHBhcmFtcyA9PiBwYXJhbXM/LmRvY3VtZW50SWQpLFxuICAgIGZpbHRlcihkb2N1bWVudElkID0+ICEhZG9jdW1lbnRJZClcbiAgKTtcblxuICBwdWJsaWMgcmVhZG9ubHkgdGFiS2V5JDogT2JzZXJ2YWJsZTxzdHJpbmc+ID0gdGhpcy5kb3NzaWVyVGFiU2VydmljZS5hY3RpdmVUYWJLZXkkO1xuXG4gIHB1YmxpYyByZWFkb25seSB3aWRnZXREYXRhJDogT2JzZXJ2YWJsZTxhbnlbXSB8IHt9IHwgbnVsbD4gPSBjb21iaW5lTGF0ZXN0KFtcbiAgICB0aGlzLndpZGdldCQsXG4gICAgdGhpcy50YWJLZXkkLFxuICAgIHRoaXMuZG9jdW1lbnRJZCQsXG4gIF0pLnBpcGUoXG4gICAgc3dpdGNoTWFwKChbd2lkZ2V0LCB0YWJrZXksIGRvY3VtZW50SWRdKSA9PlxuICAgICAgLy8gY3VzdG9tIGNvbXBvbmVudCBhbmQgZm9ybWlvIHdpZGdldHMgZG8gbm90IGZldGNoIGFkZGl0aW9uYWwgZGF0YVxuICAgICAgd2lkZ2V0LnR5cGUgPT09IENhc2VXaWRnZXRUeXBlLkNVU1RPTSB8fCB3aWRnZXQudHlwZSA9PT0gQ2FzZVdpZGdldFR5cGUuRk9STUlPXG4gICAgICAgID8gb2Yoe30pXG4gICAgICAgIDogdGhpcy53aWRnZXRzQXBpU2VydmljZS5nZXRXaWRnZXREYXRhKFxuICAgICAgICAgICAgZG9jdW1lbnRJZCxcbiAgICAgICAgICAgIHRhYmtleSxcbiAgICAgICAgICAgIHdpZGdldC5rZXksXG4gICAgICAgICAgICB3aWRnZXQudHlwZSA9PT0gQ2FzZVdpZGdldFR5cGUuVEFCTEUgfHwgd2lkZ2V0LnR5cGUgPT09IENhc2VXaWRnZXRUeXBlLkNPTExFQ1RJT05cbiAgICAgICAgICAgICAgPyB0aGlzLmdldFBhZ2VTaXplUGFyYW0od2lkZ2V0KVxuICAgICAgICAgICAgICA6IHVuZGVmaW5lZFxuICAgICAgICAgIClcbiAgICApLFxuICAgIHRhcCgoKSA9PiB7XG4gICAgICB0aGlzLmRvc3NpZXJXaWRnZXRzTGF5b3V0U2VydmljZS5zZXRDYXNlV2lkZ2V0RGF0YUxvYWRlZCh0aGlzLl93aWRnZXRVdWlkKTtcbiAgICB9KSxcbiAgICBjYXRjaEVycm9yKChlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpID0+IHtcbiAgICAgIGlmIChlcnJvci5zdGF0dXMgPT09IDQwNClcbiAgICAgICAgdGhpcy5kb3NzaWVyV2lkZ2V0c0xheW91dFNlcnZpY2Uuc2V0Q2FzZVdpZGdldERhdGFMb2FkZWQodGhpcy5fd2lkZ2V0VXVpZCk7XG5cbiAgICAgIHJldHVybiBvZihudWxsKTtcbiAgICB9KVxuICApO1xuXG4gIHB1YmxpYyByZWFkb25seSB0aGVtZSQgPSBjb21iaW5lTGF0ZXN0KFt0aGlzLmNkc1RoZW1lU2VydmljZS5jdXJyZW50VGhlbWUkLCB0aGlzLndpZGdldCRdKS5waXBlKFxuICAgIG1hcCgoW2N1cnJlbnRUaGVtZSwgd2lkZ2V0Q29uZmlndXJhdGlvbl0pID0+IHtcbiAgICAgIHJldHVybiBjdXJyZW50VGhlbWUgPT09IEN1cnJlbnRDYXJib25UaGVtZS5HMTBcbiAgICAgICAgPyB3aWRnZXRDb25maWd1cmF0aW9uLmhpZ2hDb250cmFzdFxuICAgICAgICAgID8gQ0FSQk9OX1RIRU1FLkcxMDBcbiAgICAgICAgICA6IENBUkJPTl9USEVNRS5HMTBcbiAgICAgICAgOiB3aWRnZXRDb25maWd1cmF0aW9uLmhpZ2hDb250cmFzdFxuICAgICAgICAgID8gQ0FSQk9OX1RIRU1FLldISVRFXG4gICAgICAgICAgOiBDQVJCT05fVEhFTUUuRzkwO1xuICAgIH0pXG4gICk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfc3Vic2NyaXB0aW9ucyA9IG5ldyBTdWJzY3JpcHRpb24oKTtcblxuICBwcml2YXRlIF9vYnNlcnZlciE6IFJlc2l6ZU9ic2VydmVyO1xuXG4gIHByaXZhdGUgX3dpZGdldFV1aWQhOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBkb3NzaWVyV2lkZ2V0c0xheW91dFNlcnZpY2U6IERvc3NpZXJXaWRnZXRzTGF5b3V0U2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRvc3NpZXJUYWJTZXJ2aWNlOiBEb3NzaWVyVGFiU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHdpZGdldHNBcGlTZXJ2aWNlOiBEb3NzaWVyV2lkZ2V0c0FwaVNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBjZHNUaGVtZVNlcnZpY2U6IENkc1RoZW1lU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgcHJpdmF0ZSByZWFkb25seSB2aWV3UmVmOiBWaWV3Q29udGFpbmVyUmVmXG4gICkge31cblxuICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuX3ZpZXdDb250YWluZXJSZWZTdWJqZWN0JC5uZXh0KHRoaXMudmlld1JlZik7XG4gICAgdGhpcy5vcGVuQ29udGVudEhlaWdodE9ic2VydmVyKCk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fc3Vic2NyaXB0aW9ucy51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMuX29ic2VydmVyPy5kaXNjb25uZWN0KCk7XG4gIH1cblxuICBwcml2YXRlIG9wZW5Db250ZW50SGVpZ2h0T2JzZXJ2ZXIoKTogdm9pZCB7XG4gICAgdGhpcy5fb2JzZXJ2ZXIgPSBuZXcgUmVzaXplT2JzZXJ2ZXIoZXZlbnQgPT4ge1xuICAgICAgdGhpcy5vYnNlcnZlck11dGF0aW9uKGV2ZW50KTtcbiAgICB9KTtcbiAgICB0aGlzLl9vYnNlcnZlci5vYnNlcnZlKHRoaXMuX3dpZGdldEJsb2NrQ29udGVudFJlZi5uYXRpdmVFbGVtZW50KTtcbiAgfVxuXG4gIHByaXZhdGUgb2JzZXJ2ZXJNdXRhdGlvbihldmVudDogQXJyYXk8UmVzaXplT2JzZXJ2ZXJFbnRyeT4pOiB2b2lkIHtcbiAgICBjb25zdCB3aWRnZXRDb250ZW50SGVpZ2h0ID0gZXZlbnRbMF0/LmJvcmRlckJveFNpemVbMF0/LmJsb2NrU2l6ZTtcblxuICAgIGlmICh0eXBlb2Ygd2lkZ2V0Q29udGVudEhlaWdodCA9PT0gJ251bWJlcicgJiYgd2lkZ2V0Q29udGVudEhlaWdodCAhPT0gMCkge1xuICAgICAgdGhpcy5fY29udGVudEhlaWdodCQubmV4dCh3aWRnZXRDb250ZW50SGVpZ2h0KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGdldFBhZ2VTaXplUGFyYW0od2lkZ2V0Q29uZmlndXJhdGlvbjogQ2FzZVdpZGdldFdpdGhVdWlkKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYHNpemU9JHsod2lkZ2V0Q29uZmlndXJhdGlvbi5wcm9wZXJ0aWVzIGFzIFdpZGdldFRhYmxlQ29udGVudCkuZGVmYXVsdFBhZ2VTaXplfWA7XG4gIH1cbn1cbiIsIjwhLS1cbiAgfiBDb3B5cmlnaHQgMjAxNS0yMDI0IFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAgflxuICB+IExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICB+IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAgfiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAgflxuICB+IGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAgflxuICB+IFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAgfiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gIH4gV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gIH4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICB+IGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICAtLT5cblxuPG5nLWNvbnRhaW5lclxuICAqbmdJZj1cIntcbiAgICBkb2N1bWVudElkOiBkb2N1bWVudElkJCB8IGFzeW5jLFxuICAgIHRhYktleTogdGFiS2V5JCB8IGFzeW5jLFxuICAgIHdpZGdldENvbmZpZ3VyYXRpb246IHdpZGdldCQgfCBhc3luYyxcbiAgICB3aWRnZXREYXRhOiB3aWRnZXREYXRhJCB8IGFzeW5jLFxuICAgIHRoZW1lOiB0aGVtZSQgfCBhc3luYyxcbiAgICBibG9ja0hlaWdodFB4OiBibG9ja0hlaWdodFB4JCB8IGFzeW5jLFxuICAgIGJsb2NrV2lkdGhQZXJjZW50YWdlOiBibG9ja1dpZHRoUGVyY2VudGFnZSQgfCBhc3luYyxcbiAgfSBhcyBvYnNcIlxuPlxuICA8ZGl2ICN3aWRnZXRCbG9jayBjbGFzcz1cIndpZGdldC1ibG9ja1wiIFthdHRyLmRhdGEtY2FyYm9uLXRoZW1lXT1cIm9icy50aGVtZVwiPlxuICAgIDxkaXYgI3dpZGdldEJsb2NrQ29udGVudCBjbGFzcz1cIndpZGdldC1ibG9ja19fY29udGVudFwiPlxuICAgICAgQGlmIChvYnMud2lkZ2V0RGF0YSkge1xuICAgICAgICBAc3dpdGNoIChvYnMud2lkZ2V0Q29uZmlndXJhdGlvbi50eXBlKSB7XG4gICAgICAgICAgQGNhc2UgKENhc2VXaWRnZXRUeXBlLlRBQkxFKSB7XG4gICAgICAgICAgICA8dmFsdGltby13aWRnZXQtdGFibGVcbiAgICAgICAgICAgICAgW2RvY3VtZW50SWRdPVwib2JzLmRvY3VtZW50SWRcIlxuICAgICAgICAgICAgICBbdGFiS2V5XT1cIm9icy50YWJLZXlcIlxuICAgICAgICAgICAgICBbd2lkZ2V0Q29uZmlndXJhdGlvbl09XCJvYnMud2lkZ2V0Q29uZmlndXJhdGlvblwiXG4gICAgICAgICAgICAgIFt3aWRnZXREYXRhXT1cIm9icy53aWRnZXREYXRhXCJcbiAgICAgICAgICAgID48L3ZhbHRpbW8td2lkZ2V0LXRhYmxlPlxuICAgICAgICAgIH1cblxuICAgICAgICAgIEBjYXNlIChDYXNlV2lkZ2V0VHlwZS5DT0xMRUNUSU9OKSB7XG4gICAgICAgICAgICA8dmFsdGltby13aWRnZXQtY29sbGVjdGlvblxuICAgICAgICAgICAgICBbZG9jdW1lbnRJZF09XCJvYnMuZG9jdW1lbnRJZFwiXG4gICAgICAgICAgICAgIFt0YWJLZXldPVwib2JzLnRhYktleVwiXG4gICAgICAgICAgICAgIFt3aWRnZXRDb25maWd1cmF0aW9uXT1cIm9icy53aWRnZXRDb25maWd1cmF0aW9uXCJcbiAgICAgICAgICAgICAgW3dpZGdldERhdGFdPVwib2JzLndpZGdldERhdGFcIlxuICAgICAgICAgICAgPjwvdmFsdGltby13aWRnZXQtY29sbGVjdGlvbj5cbiAgICAgICAgICB9XG5cbiAgICAgICAgICBAY2FzZSAoQ2FzZVdpZGdldFR5cGUuQ1VTVE9NKSB7XG4gICAgICAgICAgICA8dmFsdGltby13aWRnZXQtY3VzdG9tIFt3aWRnZXRDb25maWddPVwib2JzLndpZGdldENvbmZpZ3VyYXRpb25cIj48L3ZhbHRpbW8td2lkZ2V0LWN1c3RvbT5cbiAgICAgICAgICB9XG5cbiAgICAgICAgICBAY2FzZSAoQ2FzZVdpZGdldFR5cGUuRklFTERTKSB7XG4gICAgICAgICAgICA8dmFsdGltby13aWRnZXQtZmllbGRcbiAgICAgICAgICAgICAgW2NvbGxhcHNlVmVydGljYWxseV09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgW3dpZGdldENvbmZpZ3VyYXRpb25dPVwib2JzLndpZGdldENvbmZpZ3VyYXRpb25cIlxuICAgICAgICAgICAgICBbd2lkZ2V0RGF0YV09XCJvYnMud2lkZ2V0RGF0YVwiXG4gICAgICAgICAgICA+PC92YWx0aW1vLXdpZGdldC1maWVsZD5cbiAgICAgICAgICB9XG5cbiAgICAgICAgICBAY2FzZSAoQ2FzZVdpZGdldFR5cGUuRk9STUlPKSB7XG4gICAgICAgICAgICA8dmFsdGltby13aWRnZXQtZm9ybWlvXG4gICAgICAgICAgICAgIFt3aWRnZXRDb25maWd1cmF0aW9uXT1cIm9icy53aWRnZXRDb25maWd1cmF0aW9uXCJcbiAgICAgICAgICAgICAgW2RvY3VtZW50SWRdPVwib2JzLmRvY3VtZW50SWRcIlxuICAgICAgICAgICAgPjwvdmFsdGltby13aWRnZXQtZm9ybWlvPlxuICAgICAgICAgIH1cblxuICAgICAgICAgIEBkZWZhdWx0IHtcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3aWRnZXQtYmxvY2tfX25vdC1hdmFpbGFibGVcIj5cbiAgICAgICAgICAgICAgPHZhbHRpbW8tbm8tcmVzdWx0c1xuICAgICAgICAgICAgICAgIFtjb2xsYXBzZVZlcnRpY2FsbHldPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgW2Rlc2NyaXB0aW9uXT1cIidkb3NzaWVyLndpZGdldHMubm9XaWRnZXQnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICBbc21hbGxQYWRkaW5nXT1cInRydWVcIlxuICAgICAgICAgICAgICA+PC92YWx0aW1vLW5vLXJlc3VsdHM+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICA8ZGl2IGNsYXNzPVwid2lkZ2V0LWJsb2NrX19ub3QtYXZhaWxhYmxlXCI+XG4gICAgICAgICAgPHZhbHRpbW8tbm8tcmVzdWx0c1xuICAgICAgICAgICAgW2NvbGxhcHNlVmVydGljYWxseV09XCJ0cnVlXCJcbiAgICAgICAgICAgIFtkZXNjcmlwdGlvbl09XCInZG9zc2llci53aWRnZXRzLm5vRGF0YScgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgW3NtYWxsUGFkZGluZ109XCJ0cnVlXCJcbiAgICAgICAgICA+PC92YWx0aW1vLW5vLXJlc3VsdHM+XG4gICAgICAgIDwvZGl2PlxuICAgICAgfVxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvbmctY29udGFpbmVyPlxuIl19
151
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LWJsb2NrLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vZG9zc2llci9zcmMvbGliL2NvbXBvbmVudHMvZG9zc2llci1kZXRhaWwvdGFiL3dpZGdldHMvY29tcG9uZW50cy93aWRnZXQtYmxvY2svd2lkZ2V0LWJsb2NrLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vZG9zc2llci9zcmMvbGliL2NvbXBvbmVudHMvZG9zc2llci1kZXRhaWwvdGFiL3dpZGdldHMvY29tcG9uZW50cy93aWRnZXQtYmxvY2svd2lkZ2V0LWJsb2NrLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBQ0gsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBRTdDLE9BQU8sRUFFTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUVULEtBQUssRUFHTCxTQUFTLEdBRVYsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ3BELE9BQU8sRUFDTCxZQUFZLEVBQ1osZ0JBQWdCLEVBRWhCLGtCQUFrQixHQUNuQixNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFBQyxhQUFhLEVBQUUsV0FBVyxFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDckUsT0FBTyxFQUNMLGVBQWUsRUFDZixVQUFVLEVBQ1YsYUFBYSxFQUNiLE1BQU0sRUFDTixHQUFHLEVBRUgsRUFBRSxFQUNGLFlBQVksRUFDWixTQUFTLEVBQ1QsR0FBRyxHQUNKLE1BQU0sTUFBTSxDQUFDO0FBQ2QsT0FBTyxFQUFDLGNBQWMsRUFBeUMsTUFBTSwwQkFBMEIsQ0FBQztBQU1oRyxPQUFPLEVBQUMscUJB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YUFBYSwrQkFDYixvQkFBb0Isd0lBQ3BCLHFCQUFxQiwyRkFDckIsZ0JBQWdCLG9QQUNoQixlQUFlLDJGQUNmLFdBQVcsK0JBQ1gsb0JBQW9CLHNJQUNwQixxQkFBcUIsaUhBQ3JCLHlCQUF5Qjs7NEZBSWhCLG9CQUFvQjtrQkFuQmhDLFNBQVM7K0JBQ0UsOEJBQThCLGNBRzVCLElBQUksV0FDUDt3QkFDUCxZQUFZO3dCQUNaLGFBQWE7d0JBQ2Isb0JBQW9CO3dCQUNwQixxQkFBcUI7d0JBQ3JCLGdCQUFnQjt3QkFDaEIsZUFBZTt3QkFDZixXQUFXO3dCQUNYLG9CQUFvQjt3QkFDcEIscUJBQXFCO3dCQUNyQix5QkFBeUI7cUJBQzFCLG1CQUNnQix1QkFBdUIsQ0FBQyxNQUFNO3lSQUdOLHNCQUFzQjtzQkFBOUQsU0FBUzt1QkFBQyxvQkFBb0I7Z0JBRVgsTUFBTTtzQkFBekIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAxNS0yMDI0IFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqIGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5pbXBvcnQge0NvbW1vbk1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7SHR0cEVycm9yUmVzcG9uc2V9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIFJlbmRlcmVyMixcbiAgVmlld0NoaWxkLFxuICBWaWV3Q29udGFpbmVyUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QWN0aXZhdGVkUm91dGV9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge1RyYW5zbGF0ZU1vZHVsZX0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQge1xuICBDQVJCT05fVEhFTUUsXG4gIENhcmJvbkxpc3RNb2R1bGUsXG4gIENkc1RoZW1lU2VydmljZSxcbiAgQ3VycmVudENhcmJvblRoZW1lLFxufSBmcm9tICdAdmFsdGltby9jb21wb25lbnRzJztcbmltcG9ydCB7TG9hZGluZ01vZHVsZSwgVGlsZXNNb2R1bGV9IGZyb20gJ2NhcmJvbi1jb21wb25lbnRzLWFuZ3VsYXInO1xuaW1wb3J0IHtcbiAgQmVoYXZpb3JTdWJqZWN0LFxuICBjYXRjaEVycm9yLFxuICBjb21iaW5lTGF0ZXN0LFxuICBmaWx0ZXIsXG4gIG1hcCxcbiAgT2JzZXJ2YWJsZSxcbiAgb2YsXG4gIFN1YnNjcmlwdGlvbixcbiAgc3dpdGNoTWFwLFxuICB0YXAsXG59IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtDYXNlV2lkZ2V0VHlwZSwgQ2FzZVdpZGdldFdpdGhVdWlkLCBXaWRnZXRUYWJsZUNvbnRlbnR9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL21vZGVscyc7XG5pbXBvcnQge1xuICBEb3NzaWVyVGFiU2VydmljZSxcbiAgRG9zc2llcldpZGdldHNBcGlTZXJ2aWNlLFxuICBEb3NzaWVyV2lkZ2V0c0xheW91dFNlcnZpY2UsXG59IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL3NlcnZpY2VzJztcbmltcG9ydCB7V2lkZ2V0Q3VzdG9tQ29tcG9uZW50fSBmcm9tICcuLi9jdXN0b20vd2lkZ2V0LWN1c3RvbS5jb21wb25lbnQnO1xuaW1wb3J0IHtXaWRnZXRGaWVsZENvbXBvbmVudH0gZnJvbSAnLi4vZmllbGQvd2lkZ2V0LWZpZWxkLmNvbXBvbmVudCc7XG5pbXBvcnQge1dpZGdldEZvcm1pb0NvbXBvbmVudH0gZnJvbSAnLi4vZm9ybWlvL3dpZGdldC1mb3JtaW8uY29tcG9uZW50JztcbmltcG9ydCB7V2lkZ2V0VGFibGVDb21wb25lbnR9IGZyb20gJy4uL3RhYmxlL3dpZGdldC10YWJsZS5jb21wb25lbnQnO1xuaW1wb3J0IHtXaWRnZXRDb2xsZWN0aW9uQ29tcG9uZW50fSBmcm9tICcuLi9jb2xsZWN0aW9uL3dpZGdldC1jb2xsZWN0aW9uLmNvbXBvbmVudCc7XG5pbXBvcnQge1dJREdFVF9IRUlHSFRfMVh9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2NvbnN0YW50cyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbHRpbW8tZG9zc2llci13aWRnZXQtYmxvY2snLFxuICB0ZW1wbGF0ZVVybDogJy4vd2lkZ2V0LWJsb2NrLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vd2lkZ2V0LWJsb2NrLmNvbXBvbmVudC5zY3NzJ10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgTG9hZGluZ01vZHVsZSxcbiAgICBXaWRnZXRUYWJsZUNvbXBvbmVudCxcbiAgICBXaWRnZXRDdXN0b21Db21wb25lbnQsXG4gICAgQ2FyYm9uTGlzdE1vZHVsZSxcbiAgICBUcmFuc2xhdGVNb2R1bGUsXG4gICAgVGlsZXNNb2R1bGUsXG4gICAgV2lkZ2V0RmllbGRDb21wb25lbnQsXG4gICAgV2lkZ2V0Rm9ybWlvQ29tcG9uZW50LFxuICAgIFdpZGdldENvbGxlY3Rpb25Db21wb25lbnQsXG4gIF0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBXaWRnZXRCbG9ja0NvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gIEBWaWV3Q2hpbGQoJ3dpZGdldEJsb2NrQ29udGVudCcpIHByaXZhdGUgX3dpZGdldEJsb2NrQ29udGVudFJlZjogRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD47XG5cbiAgQElucHV0KCkgcHVibGljIHNldCB3aWRnZXQodmFsdWU6IENhc2VXaWRnZXRXaXRoVXVpZCkge1xuICAgIHRoaXMuX3dpZGdldFV1aWQgPSB2YWx1ZS51dWlkO1xuICAgIHRoaXMuX3dpZGdldCQubmV4dCh2YWx1ZSk7XG4gIH1cblxuICBwcml2YXRlIHJlYWRvbmx5IF93aWRnZXQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxDYXNlV2lkZ2V0V2l0aFV1aWQgfCBudWxsPihudWxsKTtcblxuICBwdWJsaWMgZ2V0IHdpZGdldCQoKTogT2JzZXJ2YWJsZTxDYXNlV2lkZ2V0V2l0aFV1aWQ+IHtcbiAgICByZXR1cm4gdGhpcy5fd2lkZ2V0JC5waXBlKGZpbHRlcih3aWRnZXQgPT4gd2lkZ2V0ICE9PSBudWxsKSk7XG4gIH1cblxuICBwcml2YXRlIHJlYWRvbmx5IF92aWV3Q29udGFpbmVyUmVmU3ViamVjdCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFZpZXdDb250YWluZXJSZWYgfCBudWxsPihudWxsKTtcblxuICBwcml2YXRlIGdldCBfdmlld0NvbnRhaW5lclJlZiQoKTogT2JzZXJ2YWJsZTxWaWV3Q29udGFpbmVyUmVmPiB7XG4gICAgcmV0dXJuIHRoaXMuX3ZpZXdDb250YWluZXJSZWZTdWJqZWN0JC5waXBlKGZpbHRlcihyZWYgPT4gISFyZWYpKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2NvbnRlbnRIZWlnaHQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxudW1iZXI+KDApO1xuXG4gIHB1YmxpYyByZWFkb25seSBibG9ja0hlaWdodFB4JCA9IGNvbWJpbmVMYXRlc3QoW1xuICAgIHRoaXMuX2NvbnRlbnRIZWlnaHQkLFxuICAgIHRoaXMuX3ZpZXdDb250YWluZXJSZWYkLFxuICBdKS5waXBlKFxuICAgIGZpbHRlcigoW2NvbnRlbnRIZWlnaHRdKSA9PiBjb250ZW50SGVpZ2h0ICE9PSAwKSxcbiAgICB0YXAoKFtjb250ZW50SGVpZ2h0LCB2aWV3UmVmXSkgPT4ge1xuICAgICAgY29uc3QgYmxvY2tIZWlnaHQgPSBNYXRoLmNlaWwoKGNvbnRlbnRIZWlnaHQgKyAxNikgLyBXSURHRVRfSEVJR0hUXzFYKSAqIFdJREdFVF9IRUlHSFRfMVg7XG5cbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodmlld1JlZi5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQsICdoZWlnaHQnLCBgJHtibG9ja0hlaWdodH1weGApO1xuICAgICAgdGhpcy5kb3NzaWVyV2lkZ2V0c0xheW91dFNlcnZpY2UudHJpZ2dlck11dXJpTGF5b3V0KCk7XG4gICAgfSlcbiAgKTtcblxuICBwdWJsaWMgcmVhZG9ubHkgYmxvY2tXaWR0aFBlcmNlbnRhZ2UkID0gY29tYmluZUxhdGVzdChbXG4gICAgdGhpcy5kb3NzaWVyV2lkZ2V0c0xheW91dFNlcnZpY2UuYW1vdW50T2ZDb2x1bW5zJCxcbiAgICB0aGlzLndpZGdldCQsXG4gICAgdGhpcy5fdmlld0NvbnRhaW5lclJlZiQsXG4gIF0pLnBpcGUoXG4gICAgdGFwKChbYW1vdW50T2ZDb2x1bW5zLCB3aWRnZXQsIHZpZXdSZWZdKSA9PiB7XG4gICAgICBjb25zdCBwZXJjZW50YWdlID1cbiAgICAgICAgd2lkZ2V0LndpZHRoID4gYW1vdW50T2ZDb2x1bW5zID8gMTAwIDogKHdpZGdldC53aWR0aCAvIGFtb3VudE9mQ29sdW1ucykgKiAxMDA7XG5cbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodmlld1JlZi5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQsICd3aWR0aCcsIGAke3BlcmNlbnRhZ2V9JWApO1xuICAgICAgdGhpcy5kb3NzaWVyV2lkZ2V0c0xheW91dFNlcnZpY2UudHJpZ2dlck11dXJpTGF5b3V0KCk7XG4gICAgfSlcbiAgKTtcblxuICBwdWJsaWMgcmVhZG9ubHkgQ2FzZVdpZGdldFR5cGUgPSBDYXNlV2lkZ2V0VHlwZTtcblxuICBwdWJsaWMgcmVhZG9ubHkgZG9jdW1lbnRJZCQgPSB0aGlzLnJvdXRlLnBhcmFtcy5waXBlKFxuICAgIG1hcChwYXJhbXMgPT4gcGFyYW1zPy5kb2N1bWVudElkKSxcbiAgICBmaWx0ZXIoZG9jdW1lbnRJZCA9PiAhIWRvY3VtZW50SWQpXG4gICk7XG5cbiAgcHVibGljIHJlYWRvbmx5IHRhYktleSQ6IE9ic2VydmFibGU8c3RyaW5nPiA9IHRoaXMuZG9zc2llclRhYlNlcnZpY2UuYWN0aXZlVGFiS2V5JDtcblxuICBwdWJsaWMgcmVhZG9ubHkgd2lkZ2V0RGF0YSQ6IE9ic2VydmFibGU8YW55W10gfCB7fSB8IG51bGw+ID0gY29tYmluZUxhdGVzdChbXG4gICAgdGhpcy53aWRnZXQkLFxuICAgIHRoaXMudGFiS2V5JCxcbiAgICB0aGlzLmRvY3VtZW50SWQkLFxuICBdKS5waXBlKFxuICAgIHN3aXRjaE1hcCgoW3dpZGdldCwgdGFia2V5LCBkb2N1bWVudElkXSkgPT5cbiAgICAgIC8vIGN1c3RvbSBjb21wb25lbnQgYW5kIGZvcm1pbyB3aWRnZXRzIGRvIG5vdCBmZXRjaCBhZGRpdGlvbmFsIGRhdGFcbiAgICAgIHdpZGdldC50eXBlID09PSBDYXNlV2lkZ2V0VHlwZS5DVVNUT00gfHwgd2lkZ2V0LnR5cGUgPT09IENhc2VXaWRnZXRUeXBlLkZPUk1JT1xuICAgICAgICA/IG9mKHt9KVxuICAgICAgICA6IHRoaXMud2lkZ2V0c0FwaVNlcnZpY2UuZ2V0V2lkZ2V0RGF0YShcbiAgICAgICAgICAgIGRvY3VtZW50SWQsXG4gICAgICAgICAgICB0YWJrZXksXG4gICAgICAgICAgICB3aWRnZXQua2V5LFxuICAgICAgICAgICAgd2lkZ2V0LnR5cGUgPT09IENhc2VXaWRnZXRUeXBlLlRBQkxFIHx8IHdpZGdldC50eXBlID09PSBDYXNlV2lkZ2V0VHlwZS5DT0xMRUNUSU9OXG4gICAgICAgICAgICAgID8gdGhpcy5nZXRQYWdlU2l6ZVBhcmFtKHdpZGdldClcbiAgICAgICAgICAgICAgOiB1bmRlZmluZWRcbiAgICAgICAgICApXG4gICAgKSxcbiAgICB0YXAoKCkgPT4ge1xuICAgICAgdGhpcy5kb3NzaWVyV2lkZ2V0c0xheW91dFNlcnZpY2Uuc2V0Q2FzZVdpZGdldERhdGFMb2FkZWQodGhpcy5fd2lkZ2V0VXVpZCk7XG4gICAgfSksXG4gICAgY2F0Y2hFcnJvcigoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiB7XG4gICAgICBpZiAoZXJyb3Iuc3RhdHVzID09PSA0MDQpXG4gICAgICAgIHRoaXMuZG9zc2llcldpZGdldHNMYXlvdXRTZXJ2aWNlLnNldENhc2VXaWRnZXREYXRhTG9hZGVkKHRoaXMuX3dpZGdldFV1aWQpO1xuXG4gICAgICByZXR1cm4gb2YobnVsbCk7XG4gICAgfSlcbiAgKTtcblxuICBwdWJsaWMgcmVhZG9ubHkgdGhlbWUkID0gY29tYmluZUxhdGVzdChbdGhpcy5jZHNUaGVtZVNlcnZpY2UuY3VycmVudFRoZW1lJCwgdGhpcy53aWRnZXQkXSkucGlwZShcbiAgICBtYXAoKFtjdXJyZW50VGhlbWUsIHdpZGdldENvbmZpZ3VyYXRpb25dKSA9PiB7XG4gICAgICByZXR1cm4gY3VycmVudFRoZW1lID09PSBDdXJyZW50Q2FyYm9uVGhlbWUuRzEwXG4gICAgICAgID8gd2lkZ2V0Q29uZmlndXJhdGlvbi5oaWdoQ29udHJhc3RcbiAgICAgICAgICA/IENBUkJPTl9USEVNRS5HMTAwXG4gICAgICAgICAgOiBDQVJCT05fVEhFTUUuRzEwXG4gICAgICAgIDogd2lkZ2V0Q29uZmlndXJhdGlvbi5oaWdoQ29udHJhc3RcbiAgICAgICAgICA/IENBUkJPTl9USEVNRS5XSElURVxuICAgICAgICAgIDogQ0FSQk9OX1RIRU1FLkc5MDtcbiAgICB9KVxuICApO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX3N1YnNjcmlwdGlvbnMgPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG5cbiAgcHJpdmF0ZSBfb2JzZXJ2ZXIhOiBSZXNpemVPYnNlcnZlcjtcblxuICBwcml2YXRlIF93aWRnZXRVdWlkITogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZG9zc2llcldpZGdldHNMYXlvdXRTZXJ2aWNlOiBEb3NzaWVyV2lkZ2V0c0xheW91dFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBkb3NzaWVyVGFiU2VydmljZTogRG9zc2llclRhYlNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgcHJpdmF0ZSByZWFkb25seSB3aWRnZXRzQXBpU2VydmljZTogRG9zc2llcldpZGdldHNBcGlTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY2RzVGhlbWVTZXJ2aWNlOiBDZHNUaGVtZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgdmlld1JlZjogVmlld0NvbnRhaW5lclJlZlxuICApIHt9XG5cbiAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLl92aWV3Q29udGFpbmVyUmVmU3ViamVjdCQubmV4dCh0aGlzLnZpZXdSZWYpO1xuICAgIHRoaXMub3BlbkNvbnRlbnRIZWlnaHRPYnNlcnZlcigpO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX3N1YnNjcmlwdGlvbnMudW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLl9vYnNlcnZlcj8uZGlzY29ubmVjdCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBvcGVuQ29udGVudEhlaWdodE9ic2VydmVyKCk6IHZvaWQge1xuICAgIHRoaXMuX29ic2VydmVyID0gbmV3IFJlc2l6ZU9ic2VydmVyKGV2ZW50ID0+IHtcbiAgICAgIHRoaXMub2JzZXJ2ZXJNdXRhdGlvbihldmVudCk7XG4gICAgfSk7XG4gICAgdGhpcy5fb2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzLl93aWRnZXRCbG9ja0NvbnRlbnRSZWYubmF0aXZlRWxlbWVudCk7XG4gIH1cblxuICBwcml2YXRlIG9ic2VydmVyTXV0YXRpb24oZXZlbnQ6IEFycmF5PFJlc2l6ZU9ic2VydmVyRW50cnk+KTogdm9pZCB7XG4gICAgY29uc3Qgd2lkZ2V0Q29udGVudEhlaWdodCA9IGV2ZW50WzBdPy5ib3JkZXJCb3hTaXplWzBdPy5ibG9ja1NpemU7XG5cbiAgICBpZiAodHlwZW9mIHdpZGdldENvbnRlbnRIZWlnaHQgPT09ICdudW1iZXInICYmIHdpZGdldENvbnRlbnRIZWlnaHQgIT09IDApIHtcbiAgICAgIHRoaXMuX2NvbnRlbnRIZWlnaHQkLm5leHQod2lkZ2V0Q29udGVudEhlaWdodCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBnZXRQYWdlU2l6ZVBhcmFtKHdpZGdldENvbmZpZ3VyYXRpb246IENhc2VXaWRnZXRXaXRoVXVpZCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGBzaXplPSR7KHdpZGdldENvbmZpZ3VyYXRpb24ucHJvcGVydGllcyBhcyBXaWRnZXRUYWJsZUNvbnRlbnQpLmRlZmF1bHRQYWdlU2l6ZX1gO1xuICB9XG59XG4iLCI8IS0tXG4gIH4gQ29weXJpZ2h0IDIwMTUtMjAyNCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gIH5cbiAgfiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAgfiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gIH4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gIH5cbiAgfiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gIH5cbiAgfiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gIH4gZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICB+IFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICB+IFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAgfiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAgLS0+XG5cbjxuZy1jb250YWluZXJcbiAgKm5nSWY9XCJ7XG4gICAgZG9jdW1lbnRJZDogZG9jdW1lbnRJZCQgfCBhc3luYyxcbiAgICB0YWJLZXk6IHRhYktleSQgfCBhc3luYyxcbiAgICB3aWRnZXRDb25maWd1cmF0aW9uOiB3aWRnZXQkIHwgYXN5bmMsXG4gICAgd2lkZ2V0RGF0YTogd2lkZ2V0RGF0YSQgfCBhc3luYyxcbiAgICB0aGVtZTogdGhlbWUkIHwgYXN5bmMsXG4gICAgYmxvY2tIZWlnaHRQeDogYmxvY2tIZWlnaHRQeCQgfCBhc3luYyxcbiAgICBibG9ja1dpZHRoUGVyY2VudGFnZTogYmxvY2tXaWR0aFBlcmNlbnRhZ2UkIHwgYXN5bmMsXG4gIH0gYXMgb2JzXCJcbj5cbiAgPGRpdiAjd2lkZ2V0QmxvY2sgY2xhc3M9XCJ3aWRnZXQtYmxvY2tcIiBbYXR0ci5kYXRhLWNhcmJvbi10aGVtZV09XCJvYnMudGhlbWVcIj5cbiAgICA8ZGl2ICN3aWRnZXRCbG9ja0NvbnRlbnQgY2xhc3M9XCJ3aWRnZXQtYmxvY2tfX2NvbnRlbnRcIj5cbiAgICAgIEBpZiAob2JzLndpZGdldERhdGEpIHtcbiAgICAgICAgQHN3aXRjaCAob2JzLndpZGdldENvbmZpZ3VyYXRpb24udHlwZSkge1xuICAgICAgICAgIEBjYXNlIChDYXNlV2lkZ2V0VHlwZS5UQUJMRSkge1xuICAgICAgICAgICAgPHZhbHRpbW8td2lkZ2V0LXRhYmxlXG4gICAgICAgICAgICAgIFtkb2N1bWVudElkXT1cIm9icy5kb2N1bWVudElkXCJcbiAgICAgICAgICAgICAgW3RhYktleV09XCJvYnMudGFiS2V5XCJcbiAgICAgICAgICAgICAgW3dpZGdldENvbmZpZ3VyYXRpb25dPVwib2JzLndpZGdldENvbmZpZ3VyYXRpb25cIlxuICAgICAgICAgICAgICBbd2lkZ2V0RGF0YV09XCJvYnMud2lkZ2V0RGF0YVwiXG4gICAgICAgICAgICA+PC92YWx0aW1vLXdpZGdldC10YWJsZT5cbiAgICAgICAgICB9XG5cbiAgICAgICAgICBAY2FzZSAoQ2FzZVdpZGdldFR5cGUuQ09MTEVDVElPTikge1xuICAgICAgICAgICAgPHZhbHRpbW8td2lkZ2V0LWNvbGxlY3Rpb25cbiAgICAgICAgICAgICAgW2RvY3VtZW50SWRdPVwib2JzLmRvY3VtZW50SWRcIlxuICAgICAgICAgICAgICBbdGFiS2V5XT1cIm9icy50YWJLZXlcIlxuICAgICAgICAgICAgICBbd2lkZ2V0Q29uZmlndXJhdGlvbl09XCJvYnMud2lkZ2V0Q29uZmlndXJhdGlvblwiXG4gICAgICAgICAgICAgIFt3aWRnZXREYXRhXT1cIm9icy53aWRnZXREYXRhXCJcbiAgICAgICAgICAgID48L3ZhbHRpbW8td2lkZ2V0LWNvbGxlY3Rpb24+XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgQGNhc2UgKENhc2VXaWRnZXRUeXBlLkNVU1RPTSkge1xuICAgICAgICAgICAgPHZhbHRpbW8td2lkZ2V0LWN1c3RvbSBbd2lkZ2V0Q29uZmlnXT1cIm9icy53aWRnZXRDb25maWd1cmF0aW9uXCI+PC92YWx0aW1vLXdpZGdldC1jdXN0b20+XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgQGNhc2UgKENhc2VXaWRnZXRUeXBlLkZJRUxEUykge1xuICAgICAgICAgICAgPHZhbHRpbW8td2lkZ2V0LWZpZWxkXG4gICAgICAgICAgICAgIFtjb2xsYXBzZVZlcnRpY2FsbHldPVwidHJ1ZVwiXG4gICAgICAgICAgICAgIFt3aWRnZXRDb25maWd1cmF0aW9uXT1cIm9icy53aWRnZXRDb25maWd1cmF0aW9uXCJcbiAgICAgICAgICAgICAgW3dpZGdldERhdGFdPVwib2JzLndpZGdldERhdGFcIlxuICAgICAgICAgICAgPjwvdmFsdGltby13aWRnZXQtZmllbGQ+XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgQGNhc2UgKENhc2VXaWRnZXRUeXBlLkZPUk1JTykge1xuICAgICAgICAgICAgPHZhbHRpbW8td2lkZ2V0LWZvcm1pb1xuICAgICAgICAgICAgICBbd2lkZ2V0Q29uZmlndXJhdGlvbl09XCJvYnMud2lkZ2V0Q29uZmlndXJhdGlvblwiXG4gICAgICAgICAgICAgIFtkb2N1bWVudElkXT1cIm9icy5kb2N1bWVudElkXCJcbiAgICAgICAgICAgID48L3ZhbHRpbW8td2lkZ2V0LWZvcm1pbz5cbiAgICAgICAgICB9XG5cbiAgICAgICAgICBAZGVmYXVsdCB7XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwid2lkZ2V0LWJsb2NrX19ub3QtYXZhaWxhYmxlXCI+XG4gICAgICAgICAgICAgIDx2YWx0aW1vLW5vLXJlc3VsdHNcbiAgICAgICAgICAgICAgICBbY29sbGFwc2VWZXJ0aWNhbGx5XT1cInRydWVcIlxuICAgICAgICAgICAgICAgIFtkZXNjcmlwdGlvbl09XCInZG9zc2llci53aWRnZXRzLm5vV2lkZ2V0JyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgW3NtYWxsUGFkZGluZ109XCJ0cnVlXCJcbiAgICAgICAgICAgICAgPjwvdmFsdGltby1uby1yZXN1bHRzPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cIndpZGdldC1ibG9ja19fbm90LWF2YWlsYWJsZVwiPlxuICAgICAgICAgIDx2YWx0aW1vLW5vLXJlc3VsdHNcbiAgICAgICAgICAgIFtjb2xsYXBzZVZlcnRpY2FsbHldPVwidHJ1ZVwiXG4gICAgICAgICAgICBbZGVzY3JpcHRpb25dPVwiJ2Rvc3NpZXIud2lkZ2V0cy5ub0RhdGEnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgIFtzbWFsbFBhZGRpbmddPVwidHJ1ZVwiXG4gICAgICAgICAgPjwvdmFsdGltby1uby1yZXN1bHRzPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==