@igo2/integration 17.0.0-next.5 → 17.0.0-next.6

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 (24) hide show
  1. package/esm2022/lib/about/about-tool/about-tool.component.mjs +4 -4
  2. package/esm2022/lib/catalog/catalog-browser-tool/catalog-browser-tool.component.mjs +1 -2
  3. package/esm2022/lib/catalog/catalog-library-tool/catalog-library-tool.component.mjs +2 -2
  4. package/esm2022/lib/context/context-share-tool/context-share-tool.component.mjs +2 -2
  5. package/esm2022/lib/draw/drawing-tool/drawing-tool.component.mjs +2 -2
  6. package/esm2022/lib/filter/spatial-filter-tool/spatial-filter-tool.component.mjs +3 -3
  7. package/esm2022/lib/geometry-form/data-issue-reporter-tool/data-issue-reporter-tool.component.mjs +2 -2
  8. package/esm2022/lib/import-export/import-export-tool/import-export-tool.component.mjs +2 -2
  9. package/esm2022/lib/map/advanced-map-tool/advanced-coordinates/advanced-coordinates.component.mjs +3 -3
  10. package/esm2022/lib/map/advanced-map-tool/advanced-map-tool.component.mjs +2 -2
  11. package/esm2022/lib/map/advanced-map-tool/advanced-swipe/advanced-swipe.component.mjs +3 -3
  12. package/esm2022/lib/map/map-legend/map-legend-tool.component.mjs +2 -2
  13. package/esm2022/lib/map/map-proximity-tool/map-proximity-tool.component.mjs +4 -4
  14. package/esm2022/lib/map/map-proximity.state.mjs +1 -1
  15. package/esm2022/lib/measure/measurer-tool/measurer-tool.component.mjs +2 -2
  16. package/esm2022/lib/print/print-tool/print-tool.component.mjs +2 -2
  17. package/esm2022/lib/search/search-results-tool/search-results-tool.component.mjs +4 -4
  18. package/esm2022/lib/workspace/shared/workspace.utils.mjs +5 -5
  19. package/esm2022/lib/workspace/workspace-button/workspace-button.component.mjs +3 -3
  20. package/fesm2022/igo2-integration.mjs +30 -31
  21. package/fesm2022/igo2-integration.mjs.map +1 -1
  22. package/locale/en.integration.json +1 -1
  23. package/locale/fr.integration.json +1 -1
  24. package/package.json +4 -4
@@ -510,13 +510,13 @@ let SearchResultsToolComponent = class SearchResultsToolComponent {
510
510
  }, 250);
511
511
  }
512
512
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: SearchResultsToolComponent, deps: [{ token: i1.MapState }, { token: i2.SearchState }, { token: i0.ElementRef }, { token: i3.ToolState }, { token: i4.DirectionState }, { token: i5.ConfigService }], target: i0.ɵɵFactoryTarget.Component });
513
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.4", type: SearchResultsToolComponent, isStandalone: true, selector: "igo-search-results-tool", inputs: { showIcons: "showIcons", topPanelStateDefault: "topPanelStateDefault", topPanelState: "topPanelState" }, ngImport: i0, template: "<div\n *ngIf=\"(!store || store.stateView.empty) && (debouncedEmpty$ | async)\"\n style=\"margin: 10px\"\n>\n <section class=\"mat-typography\">\n <h4>\n <strong>{{\n 'igo.integration.searchResultsTool.noResults' | translate\n }}</strong>\n </h4>\n <p>\n <strong>{{\n 'igo.integration.searchResultsTool.doSearch' | translate\n }}</strong>\n </p>\n <div\n [innerHTML]=\"\n 'igo.integration.searchResultsTool.examples' | translate | sanitizeHtml\n \"\n ></div>\n </section>\n</div>\n\n<igo-flexible\n *ngIf=\"(debouncedEmpty$ | async) === false\"\n #topPanel\n initial=\"100%\"\n initialMobile=\"100%\"\n collapsed=\"calc(100% - 58px)\"\n collapsedMobile=\"calc(100% - 58px)\"\n expanded=\"60%\"\n expandedMobile=\"60%\"\n [state]=\"(feature$ | async) ? topPanelState : 'initial'\"\n>\n <div class=\"igo-content\">\n <igo-search-results\n [store]=\"store\"\n [showIcons]=\"showIcons\"\n [term]=\"term\"\n [termSplitter]=\"termSplitter\"\n [settingsChange$]=\"settingsChange$\"\n placeholder=\"false\"\n (resultFocus)=\"onResultFocus($event)\"\n (resultSelect)=\"onResultSelect($event)\"\n (resultUnfocus)=\"onResultUnfocus($event)\"\n (resultMouseenter)=\"onResultFocus($event)\"\n (resultMouseleave)=\"onResultUnfocus($event)\"\n (moreResults)=\"onSearch($event)\"\n [map]=\"map\"\n >\n <ng-template #igoSearchItemToolbar let-result=\"result\">\n <igo-search-add-button\n [map]=\"map\"\n [store]=\"store\"\n [stores]=\"stores\"\n [layer]=\"result\"\n [saveSearchResultInLayer]=\"saveSearchResultInLayer\"\n >\n </igo-search-add-button>\n </ng-template>\n </igo-search-results>\n </div>\n\n <div igoFlexibleFill class=\"igo-content\">\n <igo-panel\n [title]=\"featureTitle\"\n *ngIf=\"feature$ | async\"\n (click)=\"toggleTopPanel($event)\"\n [cursorPointer]=\"true\"\n >\n <button\n mat-icon-button\n panelLeftButton\n class=\"igo-icon-button\"\n (click)=\"toggleTopPanel()\"\n >\n <mat-icon\n [svgIcon]=\"\n (topPanelState$ | async) === 'collapsed' ? 'arrow-up' : 'arrow-down'\n \"\n ></mat-icon>\n </button>\n\n <button\n *ngIf=\"feature.geometry\"\n mat-icon-button\n panelRightButton\n class=\"igo-icon-button\"\n [matTooltip]=\"\n ((isSelectedResultOutOfView$ | async)\n ? 'igo.integration.searchResultsTool.zoomOnFeatureTooltipOutOfView'\n : 'igo.integration.searchResultsTool.zoomOnFeatureTooltip'\n ) | translate\n \"\n matTooltipShowDelay=\"500\"\n (click)=\"zoomToFeatureExtent()\"\n >\n <mat-icon\n aria-hidden=\"false\"\n [matBadge]=\"(isSelectedResultOutOfView$ | async) ? '!' : ''\"\n matBadgeColor=\"accent\"\n matBadgeSize=\"small\"\n [matBadgeHidden]=\"(isSelectedResultOutOfView$ | async) === false\"\n svgIcon=\"magnify-plus-outline\"\n ></mat-icon>\n </button>\n\n <igo-feature-details\n igoFeatureDetailsDirective\n [feature]=\"feature$ | async\"\n [map]=\"map\"\n [toolbox]=\"toolState.toolbox\"\n (routingEvent)=\"getRoute()\"\n >\n </igo-feature-details>\n </igo-panel>\n </div>\n</igo-flexible>\n", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: FlexibleComponent, selector: "igo-flexible", inputs: ["initial", "collapsed", "expanded", "initialMobile", "collapsedMobile", "expandedMobile", "direction", "state"] }, { kind: "component", type: SearchResultsComponent, selector: "igo-search-results", inputs: ["map", "store", "showIcons", "mode", "withZoomButton", "tabsMode", "term", "settingsChange$", "termSplitter"], outputs: ["resultFocus", "resultUnfocus", "resultSelect", "moreResults", "resultMouseenter", "resultMouseleave"] }, { kind: "component", type: SearchResultAddButtonComponent, selector: "igo-search-add-button", inputs: ["layer", "store", "added", "map", "saveSearchResultInLayer", "color", "stores"] }, { kind: "component", type: PanelComponent, selector: "igo-panel", inputs: ["title", "withHeader", "cursorPointer"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i6.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i8.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatBadgeModule }, { kind: "directive", type: i9.MatBadge, selector: "[matBadge]", inputs: ["matBadgeColor", "matBadgeOverlap", "matBadgeDisabled", "matBadgePosition", "matBadge", "matBadgeDescription", "matBadgeSize", "matBadgeHidden"] }, { kind: "component", type: FeatureDetailsComponent, selector: "igo-feature-details", inputs: ["source", "map", "toolbox", "feature"], outputs: ["routeEvent", "selectFeature", "htmlDisplayEvent"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i10.TranslatePipe, name: "translate" }, { kind: "pipe", type: SanitizeHtmlPipe, name: "sanitizeHtml" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
513
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.4", type: SearchResultsToolComponent, isStandalone: true, selector: "igo-search-results-tool", inputs: { showIcons: "showIcons", topPanelStateDefault: "topPanelStateDefault", topPanelState: "topPanelState" }, ngImport: i0, template: "<div\n *ngIf=\"(!store || store.stateView.empty) && (debouncedEmpty$ | async)\"\n style=\"margin: 10px\"\n>\n <section class=\"mat-typography\">\n <h4>\n <strong>{{\n 'igo.integration.searchResultsTool.noResults' | translate\n }}</strong>\n </h4>\n <p>\n <strong>{{\n 'igo.integration.searchResultsTool.doSearch' | translate\n }}</strong>\n </p>\n <div\n [innerHTML]=\"\n 'igo.integration.searchResultsTool.examples' | translate | sanitizeHtml\n \"\n ></div>\n </section>\n</div>\n\n<igo-flexible\n *ngIf=\"(debouncedEmpty$ | async) === false\"\n #topPanel\n initial=\"100%\"\n initialMobile=\"100%\"\n collapsed=\"calc(100% - 58px)\"\n collapsedMobile=\"calc(100% - 58px)\"\n expanded=\"60%\"\n expandedMobile=\"60%\"\n [state]=\"(feature$ | async) ? topPanelState : 'initial'\"\n>\n <div class=\"igo-content\">\n <igo-search-results\n [store]=\"store\"\n [showIcons]=\"showIcons\"\n [term]=\"term\"\n [termSplitter]=\"termSplitter\"\n [settingsChange$]=\"settingsChange$\"\n placeholder=\"false\"\n (resultFocus)=\"onResultFocus($event)\"\n (resultSelect)=\"onResultSelect($event)\"\n (resultUnfocus)=\"onResultUnfocus($event)\"\n (resultMouseenter)=\"onResultFocus($event)\"\n (resultMouseleave)=\"onResultUnfocus($event)\"\n (moreResults)=\"onSearch($event)\"\n [map]=\"map\"\n >\n <ng-template #igoSearchItemToolbar let-result=\"result\">\n <igo-search-add-button\n [map]=\"map\"\n [store]=\"store\"\n [stores]=\"stores\"\n [layer]=\"result\"\n [saveSearchResultInLayer]=\"saveSearchResultInLayer\"\n >\n </igo-search-add-button>\n </ng-template>\n </igo-search-results>\n </div>\n\n <div igoFlexibleFill class=\"igo-content\">\n <igo-panel\n [title]=\"featureTitle\"\n *ngIf=\"feature$ | async\"\n (click)=\"toggleTopPanel($event)\"\n [cursorPointer]=\"true\"\n >\n <button\n mat-icon-button\n panelLeftButton\n class=\"igo-icon-button\"\n (click)=\"toggleTopPanel()\"\n >\n <mat-icon>{{\n (topPanelState$ | async) === 'collapsed'\n ? 'arrow_upward'\n : 'arrow_downward'\n }}</mat-icon>\n </button>\n\n <button\n *ngIf=\"feature.geometry\"\n mat-icon-button\n panelRightButton\n class=\"igo-icon-button\"\n [matTooltip]=\"\n ((isSelectedResultOutOfView$ | async)\n ? 'igo.integration.searchResultsTool.zoomOnFeatureTooltipOutOfView'\n : 'igo.integration.searchResultsTool.zoomOnFeatureTooltip'\n ) | translate\n \"\n matTooltipShowDelay=\"500\"\n (click)=\"zoomToFeatureExtent()\"\n >\n <mat-icon\n aria-hidden=\"false\"\n [matBadge]=\"(isSelectedResultOutOfView$ | async) ? '!' : ''\"\n matBadgeColor=\"accent\"\n matBadgeSize=\"small\"\n [matBadgeHidden]=\"(isSelectedResultOutOfView$ | async) === false\"\n >zoom_in</mat-icon\n >\n </button>\n\n <igo-feature-details\n igoFeatureDetailsDirective\n [feature]=\"feature$ | async\"\n [map]=\"map\"\n [toolbox]=\"toolState.toolbox\"\n (routingEvent)=\"getRoute()\"\n >\n </igo-feature-details>\n </igo-panel>\n </div>\n</igo-flexible>\n", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: FlexibleComponent, selector: "igo-flexible", inputs: ["initial", "collapsed", "expanded", "initialMobile", "collapsedMobile", "expandedMobile", "direction", "state"] }, { kind: "component", type: SearchResultsComponent, selector: "igo-search-results", inputs: ["map", "store", "showIcons", "mode", "withZoomButton", "tabsMode", "term", "settingsChange$", "termSplitter"], outputs: ["resultFocus", "resultUnfocus", "resultSelect", "moreResults", "resultMouseenter", "resultMouseleave"] }, { kind: "component", type: SearchResultAddButtonComponent, selector: "igo-search-add-button", inputs: ["layer", "store", "added", "map", "saveSearchResultInLayer", "color", "stores"] }, { kind: "component", type: PanelComponent, selector: "igo-panel", inputs: ["title", "withHeader", "cursorPointer"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i6.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i8.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatBadgeModule }, { kind: "directive", type: i9.MatBadge, selector: "[matBadge]", inputs: ["matBadgeColor", "matBadgeOverlap", "matBadgeDisabled", "matBadgePosition", "matBadge", "matBadgeDescription", "matBadgeSize", "matBadgeHidden"] }, { kind: "component", type: FeatureDetailsComponent, selector: "igo-feature-details", inputs: ["source", "map", "toolbox", "feature"], outputs: ["routeEvent", "selectFeature", "htmlDisplayEvent"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i10.TranslatePipe, name: "translate" }, { kind: "pipe", type: SanitizeHtmlPipe, name: "sanitizeHtml" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
514
514
  };
515
515
  SearchResultsToolComponent = __decorate([
516
516
  ToolComponent({
517
517
  name: 'searchResults',
518
518
  title: 'igo.integration.tools.searchResults',
519
- icon: 'magnify'
519
+ icon: 'search'
520
520
  }),
521
521
  __metadata("design:paramtypes", [MapState,
522
522
  SearchState,
@@ -542,7 +542,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImpor
542
542
  AsyncPipe,
543
543
  TranslateModule,
544
544
  SanitizeHtmlPipe
545
- ], template: "<div\n *ngIf=\"(!store || store.stateView.empty) && (debouncedEmpty$ | async)\"\n style=\"margin: 10px\"\n>\n <section class=\"mat-typography\">\n <h4>\n <strong>{{\n 'igo.integration.searchResultsTool.noResults' | translate\n }}</strong>\n </h4>\n <p>\n <strong>{{\n 'igo.integration.searchResultsTool.doSearch' | translate\n }}</strong>\n </p>\n <div\n [innerHTML]=\"\n 'igo.integration.searchResultsTool.examples' | translate | sanitizeHtml\n \"\n ></div>\n </section>\n</div>\n\n<igo-flexible\n *ngIf=\"(debouncedEmpty$ | async) === false\"\n #topPanel\n initial=\"100%\"\n initialMobile=\"100%\"\n collapsed=\"calc(100% - 58px)\"\n collapsedMobile=\"calc(100% - 58px)\"\n expanded=\"60%\"\n expandedMobile=\"60%\"\n [state]=\"(feature$ | async) ? topPanelState : 'initial'\"\n>\n <div class=\"igo-content\">\n <igo-search-results\n [store]=\"store\"\n [showIcons]=\"showIcons\"\n [term]=\"term\"\n [termSplitter]=\"termSplitter\"\n [settingsChange$]=\"settingsChange$\"\n placeholder=\"false\"\n (resultFocus)=\"onResultFocus($event)\"\n (resultSelect)=\"onResultSelect($event)\"\n (resultUnfocus)=\"onResultUnfocus($event)\"\n (resultMouseenter)=\"onResultFocus($event)\"\n (resultMouseleave)=\"onResultUnfocus($event)\"\n (moreResults)=\"onSearch($event)\"\n [map]=\"map\"\n >\n <ng-template #igoSearchItemToolbar let-result=\"result\">\n <igo-search-add-button\n [map]=\"map\"\n [store]=\"store\"\n [stores]=\"stores\"\n [layer]=\"result\"\n [saveSearchResultInLayer]=\"saveSearchResultInLayer\"\n >\n </igo-search-add-button>\n </ng-template>\n </igo-search-results>\n </div>\n\n <div igoFlexibleFill class=\"igo-content\">\n <igo-panel\n [title]=\"featureTitle\"\n *ngIf=\"feature$ | async\"\n (click)=\"toggleTopPanel($event)\"\n [cursorPointer]=\"true\"\n >\n <button\n mat-icon-button\n panelLeftButton\n class=\"igo-icon-button\"\n (click)=\"toggleTopPanel()\"\n >\n <mat-icon\n [svgIcon]=\"\n (topPanelState$ | async) === 'collapsed' ? 'arrow-up' : 'arrow-down'\n \"\n ></mat-icon>\n </button>\n\n <button\n *ngIf=\"feature.geometry\"\n mat-icon-button\n panelRightButton\n class=\"igo-icon-button\"\n [matTooltip]=\"\n ((isSelectedResultOutOfView$ | async)\n ? 'igo.integration.searchResultsTool.zoomOnFeatureTooltipOutOfView'\n : 'igo.integration.searchResultsTool.zoomOnFeatureTooltip'\n ) | translate\n \"\n matTooltipShowDelay=\"500\"\n (click)=\"zoomToFeatureExtent()\"\n >\n <mat-icon\n aria-hidden=\"false\"\n [matBadge]=\"(isSelectedResultOutOfView$ | async) ? '!' : ''\"\n matBadgeColor=\"accent\"\n matBadgeSize=\"small\"\n [matBadgeHidden]=\"(isSelectedResultOutOfView$ | async) === false\"\n svgIcon=\"magnify-plus-outline\"\n ></mat-icon>\n </button>\n\n <igo-feature-details\n igoFeatureDetailsDirective\n [feature]=\"feature$ | async\"\n [map]=\"map\"\n [toolbox]=\"toolState.toolbox\"\n (routingEvent)=\"getRoute()\"\n >\n </igo-feature-details>\n </igo-panel>\n </div>\n</igo-flexible>\n" }]
545
+ ], template: "<div\n *ngIf=\"(!store || store.stateView.empty) && (debouncedEmpty$ | async)\"\n style=\"margin: 10px\"\n>\n <section class=\"mat-typography\">\n <h4>\n <strong>{{\n 'igo.integration.searchResultsTool.noResults' | translate\n }}</strong>\n </h4>\n <p>\n <strong>{{\n 'igo.integration.searchResultsTool.doSearch' | translate\n }}</strong>\n </p>\n <div\n [innerHTML]=\"\n 'igo.integration.searchResultsTool.examples' | translate | sanitizeHtml\n \"\n ></div>\n </section>\n</div>\n\n<igo-flexible\n *ngIf=\"(debouncedEmpty$ | async) === false\"\n #topPanel\n initial=\"100%\"\n initialMobile=\"100%\"\n collapsed=\"calc(100% - 58px)\"\n collapsedMobile=\"calc(100% - 58px)\"\n expanded=\"60%\"\n expandedMobile=\"60%\"\n [state]=\"(feature$ | async) ? topPanelState : 'initial'\"\n>\n <div class=\"igo-content\">\n <igo-search-results\n [store]=\"store\"\n [showIcons]=\"showIcons\"\n [term]=\"term\"\n [termSplitter]=\"termSplitter\"\n [settingsChange$]=\"settingsChange$\"\n placeholder=\"false\"\n (resultFocus)=\"onResultFocus($event)\"\n (resultSelect)=\"onResultSelect($event)\"\n (resultUnfocus)=\"onResultUnfocus($event)\"\n (resultMouseenter)=\"onResultFocus($event)\"\n (resultMouseleave)=\"onResultUnfocus($event)\"\n (moreResults)=\"onSearch($event)\"\n [map]=\"map\"\n >\n <ng-template #igoSearchItemToolbar let-result=\"result\">\n <igo-search-add-button\n [map]=\"map\"\n [store]=\"store\"\n [stores]=\"stores\"\n [layer]=\"result\"\n [saveSearchResultInLayer]=\"saveSearchResultInLayer\"\n >\n </igo-search-add-button>\n </ng-template>\n </igo-search-results>\n </div>\n\n <div igoFlexibleFill class=\"igo-content\">\n <igo-panel\n [title]=\"featureTitle\"\n *ngIf=\"feature$ | async\"\n (click)=\"toggleTopPanel($event)\"\n [cursorPointer]=\"true\"\n >\n <button\n mat-icon-button\n panelLeftButton\n class=\"igo-icon-button\"\n (click)=\"toggleTopPanel()\"\n >\n <mat-icon>{{\n (topPanelState$ | async) === 'collapsed'\n ? 'arrow_upward'\n : 'arrow_downward'\n }}</mat-icon>\n </button>\n\n <button\n *ngIf=\"feature.geometry\"\n mat-icon-button\n panelRightButton\n class=\"igo-icon-button\"\n [matTooltip]=\"\n ((isSelectedResultOutOfView$ | async)\n ? 'igo.integration.searchResultsTool.zoomOnFeatureTooltipOutOfView'\n : 'igo.integration.searchResultsTool.zoomOnFeatureTooltip'\n ) | translate\n \"\n matTooltipShowDelay=\"500\"\n (click)=\"zoomToFeatureExtent()\"\n >\n <mat-icon\n aria-hidden=\"false\"\n [matBadge]=\"(isSelectedResultOutOfView$ | async) ? '!' : ''\"\n matBadgeColor=\"accent\"\n matBadgeSize=\"small\"\n [matBadgeHidden]=\"(isSelectedResultOutOfView$ | async) === false\"\n >zoom_in</mat-icon\n >\n </button>\n\n <igo-feature-details\n igoFeatureDetailsDirective\n [feature]=\"feature$ | async\"\n [map]=\"map\"\n [toolbox]=\"toolState.toolbox\"\n (routingEvent)=\"getRoute()\"\n >\n </igo-feature-details>\n </igo-panel>\n </div>\n</igo-flexible>\n" }]
546
546
  }], ctorParameters: () => [{ type: i1.MapState }, { type: i2.SearchState }, { type: i0.ElementRef }, { type: i3.ToolState }, { type: i4.DirectionState }, { type: i5.ConfigService }], propDecorators: { showIcons: [{
547
547
  type: Input
548
548
  }], topPanelStateDefault: [{
@@ -550,4 +550,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImpor
550
550
  }], topPanelState: [{
551
551
  type: Input
552
552
  }] } });
553
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLXJlc3VsdHMtdG9vbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9pbnRlZ3JhdGlvbi9zcmMvbGliL3NlYXJjaC9zZWFyY2gtcmVzdWx0cy10b29sL3NlYXJjaC1yZXN1bHRzLXRvb2wuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvaW50ZWdyYXRpb24vc3JjL2xpYi9zZWFyY2gvc2VhcmNoLXJlc3VsdHMtdG9vbC9zZWFyY2gtcmVzdWx0cy10b29sLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2xELE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFVBQVUsRUFDVixLQUFLLEVBR04sTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFN0QsT0FBTyxFQUdMLGlCQUFpQixFQUVqQixjQUFjLEVBQ2QsZ0JBQWdCLEVBQ2hCLGFBQWEsRUFDYixjQUFjLEVBQ2YsTUFBTSxjQUFjLENBQUM7QUFDdEIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2xELE9BQU8sRUFDTCxPQUFPLEVBRVAsdUJBQXVCLEVBQ3ZCLGFBQWEsRUFLYiw4QkFBOEIsRUFDOUIsc0JBQXNCLEVBQ3RCLHVCQUF1QixFQUN2QixhQUFhLEVBQ2IsV0FBVyxFQUNYLG9CQUFvQixFQUNwQix3QkFBd0IsRUFDeEIsNEJBQTRCLEVB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aUIsbUxBQ2pCLHNCQUFzQix5U0FDdEIsOEJBQThCLDRKQUM5QixjQUFjLHVHQUNkLGVBQWUsMklBQ2YsYUFBYSxtTEFDYixnQkFBZ0IsNFRBQ2hCLGNBQWMsNFBBQ2QsdUJBQXVCLDBLQUN2QixTQUFTLDZDQUNULGVBQWUsd0ZBQ2YsZ0JBQWdCOztBQUdQLDBCQUEwQjtJQTFCdEMsYUFBYSxDQUFDO1FBQ2IsSUFBSSxFQUFFLGVBQWU7UUFDckIsS0FBSyxFQUFFLHFDQUFxQztRQUM1QyxJQUFJLEVBQUUsU0FBUztLQUNoQixDQUFDO3FDQWlIb0IsUUFBUTtRQUNMLFdBQVc7UUFDakIsVUFBVTtRQUNQLFNBQVM7UUFDSCxjQUFjO1FBQ3ZCLGFBQWE7R0FoR25CLDBCQUEwQixDQTBwQnRDOzsyRkExcEJZLDBCQUEwQjtrQkFyQnRDLFNBQVM7K0JBQ0UseUJBQXlCLG1CQUVsQix1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLElBQUksV0FDUDt3QkFDUCxJQUFJO3dCQUNKLGlCQUFpQjt3QkFDakIsc0JBQXNCO3dCQUN0Qiw4QkFBOEI7d0JBQzlCLGNBQWM7d0JBQ2QsZUFBZTt3QkFDZixhQUFhO3dCQUNiLGdCQUFnQjt3QkFDaEIsY0FBYzt3QkFDZCx1QkFBdUI7d0JBQ3ZCLFNBQVM7d0JBQ1QsZUFBZTt3QkFDZixnQkFBZ0I7cUJBQ2pCO2lOQU1RLFNBQVM7c0JBQWpCLEtBQUs7Z0JBS0csb0JBQW9CO3NCQUE1QixLQUFLO2dCQWdFRixhQUFhO3NCQURoQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXN5bmNQaXBlLCBOZ0lmIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdEJhZGdlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYmFkZ2UnO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IE1hdFRvb2x0aXBNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwJztcblxuaW1wb3J0IHtcbiAgRW50aXR5U3RhdGUsXG4gIEVudGl0eVN0b3JlLFxuICBGbGV4aWJsZUNvbXBvbmVudCxcbiAgRmxleGlibGVTdGF0ZSxcbiAgUGFuZWxDb21wb25lbnQsXG4gIFNhbml0aXplSHRtbFBpcGUsXG4gIFRvb2xDb21wb25lbnQsXG4gIGdldEVudGl0eVRpdGxlXG59IGZyb20gJ0BpZ28yL2NvbW1vbic7XG5pbXBvcnQgeyBDb25maWdTZXJ2aWNlIH0gZnJvbSAnQGlnbzIvY29yZS9jb25maWcnO1xuaW1wb3J0IHtcbiAgRkVBVFVSRSxcbiAgRmVhdHVyZSxcbiAgRmVhdHVyZURldGFpbHNDb21wb25lbnQsXG4gIEZlYXR1cmVNb3Rpb24sXG4gIEZlYXR1cmVTdG9yZSxcbiAgSWdvTWFwLFxuICBSZXNlYXJjaCxcbiAgU2VhcmNoUmVzdWx0LFxuICBTZWFyY2hSZXN1bHRBZGRCdXR0b25Db21wb25lbnQsXG4gIFNlYXJjaFJlc3VsdHNDb21wb25lbnQsXG4gIGNvbXB1dGVPbEZlYXR1cmVzRXh0ZW50LFxuICBmZWF0dXJlRnJvbU9sLFxuICBmZWF0dXJlVG9PbCxcbiAgZmVhdHVyZXNBcmVPdXRPZlZpZXcsXG4gIGZlYXR1cmVzQXJlVG9vRGVlcEluVmlldyxcbiAgZ2V0Q29tbW9uVmVjdG9yU2VsZWN0ZWRTdHlsZSxcbiAgZ2V0Q29tbW9uVmVjdG9yU3R5bGUsXG4gIG1vdmVUb09sRmVhdHVyZXMsXG4gIHJvdW5kQ29vcmRUb1xufSBmcm9tICdAaWdvMi9nZW8nO1xuXG5pbXBvcnQgb2xGZWF0dXJlIGZyb20gJ29sL0ZlYXR1cmUnO1xuaW1wb3J0IG9sRm9ybWF0R2VvSlNPTiBmcm9tICdvbC9mb3JtYXQvR2VvSlNPTic7XG5pbXBvcnQgdHlwZSB7IGRlZmF1bHQgYXMgT2xHZW9tZXRyeSB9IGZyb20gJ29sL2dlb20vR2VvbWV0cnknO1xuaW1wb3J0IG9sUG9pbnQgZnJvbSAnb2wvZ2VvbS9Qb2ludCc7XG5pbXBvcnQgKiBhcyBvbFByb2ogZnJvbSAnb2wvcHJvaic7XG5cbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHBvaW50T25GZWF0dXJlIGZyb20gJ0B0dXJmL3BvaW50LW9uLWZlYXR1cmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb24sIGNvbWJpbmVMYXRlc3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBEaXJlY3Rpb25TdGF0ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGlvbnMvZGlyZWN0aW9ucy5zdGF0ZSc7XG5pbXBvcnQgeyBNYXBTdGF0ZSB9IGZyb20gJy4uLy4uL21hcC9tYXAuc3RhdGUnO1xuaW1wb3J0IHsgVG9vbFN0YXRlIH0gZnJvbSAnLi4vLi4vdG9vbC90b29sLnN0YXRlJztcbmltcG9ydCB7IFNlYXJjaFN0YXRlIH0gZnJvbSAnLi4vc2VhcmNoLnN0YXRlJztcblxuLyoqXG4gKiBUb29sIHRvIGJyb3dzZSB0aGUgc2VhcmNoIHJlc3VsdHNcbiAqL1xuQFRvb2xDb21wb25lbnQoe1xuICBuYW1lOiAnc2VhcmNoUmVzdWx0cycsXG4gIHRpdGxlOiAnaWdvLmludGVncmF0aW9uLnRvb2xzLnNlYXJjaFJlc3VsdHMnLFxuICBpY29uOiAnbWFnbmlmeSdcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpZ28tc2VhcmNoLXJlc3VsdHMtdG9vbCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9zZWFyY2gtcmVzdWx0cy10b29sLmNvbXBvbmVudC5odG1sJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBOZ0lmLFxuICAgIEZsZXhpYmxlQ29tcG9uZW50LFxuICAgIFNlYXJjaFJlc3VsdHNDb21wb25lbnQsXG4gICAgU2VhcmNoUmVzdWx0QWRkQnV0dG9uQ29tcG9uZW50LFxuICAgIFBhbmVsQ29tcG9uZW50LFxuICAgIE1hdEJ1dHRvbk1vZHVsZSxcbiAgICBNYXRJY29uTW9kdWxlLFxuICAgIE1hdFRvb2x0aXBNb2R1bGUsXG4gICAgTWF0QmFkZ2VNb2R1bGUsXG4gICAgRmVhdHVyZURldGFpbHNDb21wb25lbnQsXG4gICAgQXN5bmNQaXBlLFxuICAgIFRyYW5zbGF0ZU1vZHVsZSxcbiAgICBTYW5pdGl6ZUh0bWxQaXBlXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgU2VhcmNoUmVzdWx0c1Rvb2xDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIC8qKlxuICAgKiB0byBzaG93IGhpZGUgcmVzdWx0cyBpY29uc1xuICAgKi9cbiAgQElucHV0KCkgc2hvd0ljb25zOiBib29sZWFuID0gdHJ1ZTtcblxuICAvKipcbiAgICogRGV0ZXJtaW5lIHRoZSB0b3AgcGFuZWwgZGVmYXVsdCBzdGF0ZVxuICAgKi9cbiAgQElucHV0KCkgdG9wUGFuZWxTdGF0ZURlZmF1bHQ6IHN0cmluZyA9ICdleHBhbmRlZCc7XG5cbiAgcHJpdmF0ZSBoYXNGZWF0dXJlRW1waGFzaXNPblNlbGVjdGlvbjogYm9vbGVhbiA9IGZhbHNlO1xuICBwdWJsaWMgc2F2ZVNlYXJjaFJlc3VsdEluTGF5ZXI6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBwcml2YXRlIHNob3dSZXN1bHRzR2VvbWV0cmllcyQkOiBTdWJzY3JpcHRpb247XG4gIHByaXZhdGUgZ2V0Um91dGUkJDogU3Vic2NyaXB0aW9uO1xuICBwcml2YXRlIHNob3duUmVzdWx0c0dlb21ldHJpZXM6IEZlYXR1cmVbXSA9IFtdO1xuICBwcml2YXRlIHNob3duUmVzdWx0c0VtcGhhc2lzR2VvbWV0cmllczogRmVhdHVyZVtdID0gW107XG4gIHByaXZhdGUgZm9jdXNlZFJlc3VsdCQ6IEJlaGF2aW9yU3ViamVjdDxTZWFyY2hSZXN1bHQ+ID0gbmV3IEJlaGF2aW9yU3ViamVjdChcbiAgICB1bmRlZmluZWRcbiAgKTtcbiAgcHVibGljIGlzU2VsZWN0ZWRSZXN1bHRPdXRPZlZpZXckID0gbmV3IEJlaGF2aW9yU3ViamVjdChmYWxzZSk7XG4gIHByaXZhdGUgaXNTZWxlY3RlZFJlc3VsdE91dE9mVmlldyQkOiBTdWJzY3JpcHRpb247XG4gIHByaXZhdGUgYWJzdHJhY3RGb2N1c2VkUmVzdWx0OiBGZWF0dXJlO1xuICBwcml2YXRlIGFic3RyYWN0U2VsZWN0ZWRSZXN1bHQ6IEZlYXR1cmU7XG5cbiAgcHVibGljIGRlYm91bmNlZEVtcHR5JDogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IEJlaGF2aW9yU3ViamVjdCh0cnVlKTtcbiAgcHJpdmF0ZSBkZWJvdW5jZWRFbXB0eSQkOiBTdWJzY3JpcHRpb247XG5cbiAgLyoqXG4gICAqIFN0b3JlIGhvbGRpbmcgdGhlIHNlYXJjaCByZXN1bHRzXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgZ2V0IHN0b3JlKCk6IEVudGl0eVN0b3JlPFNlYXJjaFJlc3VsdD4ge1xuICAgIHJldHVybiB0aGlzLnNlYXJjaFN0YXRlLnN0b3JlO1xuICB9XG5cbiAgLyoqXG4gICAqIE1hcCB0byBkaXNwbGF5IHRoZSByZXN1bHRzIG9uXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgZ2V0IG1hcCgpOiBJZ29NYXAge1xuICAgIHJldHVybiB0aGlzLm1hcFN0YXRlLm1hcDtcbiAgfVxuXG4gIGdldCBmZWF0dXJlVGl0bGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5mZWF0dXJlID8gZ2V0RW50aXR5VGl0bGUodGhpcy5mZWF0dXJlKSA6IHVuZGVmaW5lZDtcbiAgfVxuXG4gIGdldCBmZWF0dXJlJCgpOiBPYnNlcnZhYmxlPEZlYXR1cmU+IHtcbiAgICByZXR1cm4gdGhpcy5zdG9yZS5zdGF0ZVZpZXdcbiAgICAgIC5maXJzdEJ5JCgoZSkgPT4gZS5zdGF0ZS5mb2N1c2VkKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcChcbiAgICAgICAgICAoZWxlbWVudCkgPT5cbiAgICAgICAgICAgICh0aGlzLmZlYXR1cmUgPSBlbGVtZW50XG4gICAgICAgICAgICAgID8gKGVsZW1lbnQuZW50aXR5LmRhdGEgYXMgRmVhdHVyZSlcbiAgICAgICAgICAgICAgOiB1bmRlZmluZWQpXG4gICAgICAgIClcbiAgICAgICk7XG4gIH1cblxuICBwdWJsaWMgZmVhdHVyZTogRmVhdHVyZTtcblxuICBwdWJsaWMgdGVybSA9ICcnO1xuICBwcml2YXRlIHNlYXJjaFRlcm0kJDogU3Vic2NyaXB0aW9uO1xuXG4gIHB1YmxpYyBzZXR0aW5nc0NoYW5nZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KHVuZGVmaW5lZCk7XG5cbiAgcHVibGljIHRvcFBhbmVsU3RhdGUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxGbGV4aWJsZVN0YXRlPignaW5pdGlhbCcpO1xuICBwcml2YXRlIHRvcFBhbmVsU3RhdGUkJDogU3Vic2NyaXB0aW9uO1xuXG4gIEBJbnB1dCgpXG4gIHNldCB0b3BQYW5lbFN0YXRlKHZhbHVlOiBGbGV4aWJsZVN0YXRlKSB7XG4gICAgdGhpcy50b3BQYW5lbFN0YXRlJC5uZXh0KHZhbHVlKTtcbiAgfVxuICBnZXQgdG9wUGFuZWxTdGF0ZSgpOiBGbGV4aWJsZVN0YXRlIHtcbiAgICByZXR1cm4gdGhpcy50b3BQYW5lbFN0YXRlJC52YWx1ZTtcbiAgfVxuXG4gIGdldCB0ZXJtU3BsaXR0ZXIoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5zZWFyY2hTdGF0ZS5zZWFyY2hUZXJtU3BsaXR0ZXIkLnZhbHVlO1xuICB9XG5cbiAgcHJpdmF0ZSBmb3JtYXQgPSBuZXcgb2xGb3JtYXRHZW9KU09OKCk7XG5cbiAgZ2V0IHN0b3JlcygpOiBGZWF0dXJlU3RvcmU8RmVhdHVyZT5bXSB7XG4gICAgcmV0dXJuIHRoaXMuc2VhcmNoU3RhdGUuc2VhcmNoTGF5ZXJTdG9yZXM7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIG1hcFN0YXRlOiBNYXBTdGF0ZSxcbiAgICBwcml2YXRlIHNlYXJjaFN0YXRlOiBTZWFyY2hTdGF0ZSxcbiAgICBwcml2YXRlIGVsUmVmOiBFbGVtZW50UmVmLFxuICAgIHB1YmxpYyB0b29sU3RhdGU6IFRvb2xTdGF0ZSxcbiAgICBwcml2YXRlIGRpcmVjdGlvblN0YXRlOiBEaXJlY3Rpb25TdGF0ZSxcbiAgICBjb25maWdTZXJ2aWNlOiBDb25maWdTZXJ2aWNlXG4gICkge1xuICAgIHRoaXMuaGFzRmVhdHVyZUVtcGhhc2lzT25TZWxlY3Rpb24gPSBjb25maWdTZXJ2aWNlLmdldENvbmZpZyhcbiAgICAgICdoYXNGZWF0dXJlRW1waGFzaXNPblNlbGVjdGlvbidcbiAgICApO1xuICAgIHRoaXMuc2F2ZVNlYXJjaFJlc3VsdEluTGF5ZXIgPSBjb25maWdTZXJ2aWNlLmdldENvbmZpZyhcbiAgICAgICdzYXZlU2VhcmNoUmVzdWx0SW5MYXllcidcbiAgICApO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5zZWFyY2hUZXJtJCQgPSB0aGlzLnNlYXJjaFN0YXRlLnNlYXJjaFRlcm0kLnN1YnNjcmliZShcbiAgICAgIChzZWFyY2hUZXJtOiBzdHJpbmcpID0+IHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIHNlYXJjaFRlcm0gIT09IHVuZGVmaW5lZCAmJlxuICAgICAgICAgIHNlYXJjaFRlcm0gIT09IG51bGwgJiZcbiAgICAgICAgICBzZWFyY2hUZXJtICE9PSAnJ1xuICAgICAgICApIHtcbiAgICAgICAgICB0aGlzLnRlcm0gPSBzZWFyY2hUZXJtO1xuICAgICAgICAgIHRoaXMuZGVib3VuY2VkRW1wdHkkLm5leHQoZmFsc2UpO1xuICAgICAgICB9IGVsc2UgaWYgKHNlYXJjaFRlcm0gPT09ICcnKSB7XG4gICAgICAgICAgdGhpcy5kZWJvdW5jZWRFbXB0eSQubmV4dCh0cnVlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICk7XG5cbiAgICBmb3IgKGNvbnN0IHJlcyBvZiB0aGlzLnN0b3JlLnN0YXRlVmlldy5hbGwkKCkudmFsdWUpIHtcbiAgICAgIGlmICh0aGlzLnN0b3JlLnN0YXRlLmdldChyZXMuZW50aXR5KS5zZWxlY3RlZCA9PT0gdHJ1ZSkge1xuICAgICAgICB0aGlzLnRvcFBhbmVsU3RhdGUgPSAnZXhwYW5kZWQnO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuc2VhcmNoU3RhdGUuc2VhcmNoU2V0dGluZ3NDaGFuZ2UkLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLnNldHRpbmdzQ2hhbmdlJC5uZXh0KHRydWUpO1xuICAgIH0pO1xuXG4gICAgdGhpcy50b3BQYW5lbFN0YXRlJCQgPSB0aGlzLnRvcFBhbmVsU3RhdGUkLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICBjb25zdCBpZ29MaXN0ID0gdGhpcy5jb21wdXRlRWxlbWVudFJlZigpWzBdO1xuICAgICAgY29uc3Qgc2VsZWN0ZWQgPSB0aGlzLmNvbXB1dGVFbGVtZW50UmVmKClbMV07XG4gICAgICBpZiAoc2VsZWN0ZWQpIHtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgLy8gVG8gYmUgc3VyZSB0aGUgZmxleGlibGUgY29tcG9uZW50IGhhcyBiZWVuIGRpc3BsYXllZCB5ZXRcbiAgICAgICAgICBpZiAoIXRoaXMuaXNTY3JvbGxlZEludG9WaWV3KGlnb0xpc3QsIHNlbGVjdGVkKSkge1xuICAgICAgICAgICAgdGhpcy5hZGp1c3RUb3BQYW5lbChpZ29MaXN0LCBzZWxlY3RlZCk7XG4gICAgICAgICAgfVxuICAgICAgICB9LCBGbGV4aWJsZUNvbXBvbmVudC50cmFuc2l0aW9uVGltZSArIDUwKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGlmICh0aGlzLmhhc0ZlYXR1cmVFbXBoYXNpc09uU2VsZWN0aW9uKSB7XG4gICAgICBpZiAoIXRoaXMuc2VhcmNoU3RhdGUuZm9jdXNlZE9yUmVzb2x1dGlvbiQkKSB7XG4gICAgICAgIHRoaXMuc2VhcmNoU3RhdGUuZm9jdXNlZE9yUmVzb2x1dGlvbiQkID0gY29tYmluZUxhdGVzdChbXG4gICAgICAgICAgdGhpcy5mb2N1c2VkUmVzdWx0JCxcbiAgICAgICAgICB0aGlzLm1hcC52aWV3Q29udHJvbGxlci5yZXNvbHV0aW9uJFxuICAgICAgICBdKS5zdWJzY3JpYmUoKGJ1bmNoOiBbU2VhcmNoUmVzdWx0PEZlYXR1cmU+LCBudW1iZXJdKSA9PlxuICAgICAgICAgIHRoaXMuYnVpbGRSZXN1bHRFbXBoYXNpcyhidW5jaFswXSwgJ2ZvY3VzZWQnKVxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICBpZiAoIXRoaXMuc2VhcmNoU3RhdGUuc2VsZWN0ZWRPclJlc29sdXRpb24kJCkge1xuICAgICAgICB0aGlzLnNlYXJjaFN0YXRlLnNlbGVjdGVkT3JSZXNvbHV0aW9uJCQgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICAgICAgICB0aGlzLnNlYXJjaFN0YXRlLnNlbGVjdGVkUmVzdWx0JCxcbiAgICAgICAgICB0aGlzLm1hcC52aWV3Q29udHJvbGxlci5yZXNvbHV0aW9uJFxuICAgICAgICBdKS5zdWJzY3JpYmUoKGJ1bmNoOiBbU2VhcmNoUmVzdWx0PEZlYXR1cmU+LCBudW1iZXJdKSA9PlxuICAgICAgICAgIHRoaXMuYnVpbGRSZXN1bHRFbXBoYXNpcyhidW5jaFswXSwgJ3NlbGVjdGVkJylcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5tb25pdG9yUmVzdWx0T3V0T2ZWaWV3KCk7XG5cbiAgICB0aGlzLnNob3dSZXN1bHRzR2VvbWV0cmllcyQkID0gY29tYmluZUxhdGVzdChbXG4gICAgICB0aGlzLnNlYXJjaFN0YXRlLnNlYXJjaFJlc3VsdHNHZW9tZXRyeUVuYWJsZWQkLFxuICAgICAgdGhpcy5zdG9yZS5zdGF0ZVZpZXcuYWxsJCgpLFxuICAgICAgdGhpcy5mb2N1c2VkUmVzdWx0JCxcbiAgICAgIHRoaXMuc2VhcmNoU3RhdGUuc2VsZWN0ZWRSZXN1bHQkLFxuICAgICAgdGhpcy5zZWFyY2hTdGF0ZS5zZWFyY2hUZXJtJCxcbiAgICAgIHRoaXMubWFwLnZpZXdDb250cm9sbGVyLnJlc29sdXRpb24kXG4gICAgXSkuc3Vic2NyaWJlKFxuICAgICAgKFxuICAgICAgICBidW5jaDogW1xuICAgICAgICAgIGJvb2xlYW4sXG4gICAgICAgICAgeyBlbnRpdHk6IFNlYXJjaFJlc3VsdDsgc3RhdGU6IEVudGl0eVN0YXRlIH1bXSxcbiAgICAgICAgICBTZWFyY2hSZXN1bHQsXG4gICAgICAgICAgU2VhcmNoUmVzdWx0LFxuICAgICAgICAgIHN0cmluZyxcbiAgICAgICAgICBudW1iZXJcbiAgICAgICAgXVxuICAgICAgKSA9PiB7XG4gICAgICAgIGNvbnN0IHNlYXJjaFJlc3VsdHNHZW9tZXRyeUVuYWJsZWQgPSBidW5jaFswXTtcbiAgICAgICAgY29uc3Qgc2VhcmNoUmVzdWx0cyA9IGJ1bmNoWzFdO1xuXG4gICAgICAgIGlmICh0aGlzLmhhc0ZlYXR1cmVFbXBoYXNpc09uU2VsZWN0aW9uKSB7XG4gICAgICAgICAgdGhpcy5jbGVhckZlYXR1cmVFbXBoYXNpcygnc2hvd24nKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnNob3duUmVzdWx0c0dlb21ldHJpZXMubWFwKChyZXN1bHQpID0+XG4gICAgICAgICAgdGhpcy5tYXAucXVlcnlSZXN1bHRzT3ZlcmxheS5yZW1vdmVGZWF0dXJlKHJlc3VsdClcbiAgICAgICAgKTtcbiAgICAgICAgY29uc3QgZmVhdHVyZVRvSGFuZGxlR2VvbSA9IHNlYXJjaFJlc3VsdHMuZmlsdGVyKFxuICAgICAgICAgIChyZXN1bHQpID0+XG4gICAgICAgICAgICByZXN1bHQuZW50aXR5Lm1ldGEuZGF0YVR5cGUgPT09IEZFQVRVUkUgJiZcbiAgICAgICAgICAgIHJlc3VsdC5lbnRpdHkuZGF0YS5nZW9tZXRyeSAmJlxuICAgICAgICAgICAgIXJlc3VsdC5zdGF0ZS5zZWxlY3RlZCAmJlxuICAgICAgICAgICAgIXJlc3VsdC5zdGF0ZS5mb2N1c2VkXG4gICAgICAgICk7XG5cbiAgICAgICAgZmVhdHVyZVRvSGFuZGxlR2VvbS5tYXAoKHJlc3VsdCkgPT4ge1xuICAgICAgICAgIGlmIChzZWFyY2hSZXN1bHRzR2VvbWV0cnlFbmFibGVkKSB7XG4gICAgICAgICAgICByZXN1bHQuZW50aXR5LmRhdGEubWV0YS5zdHlsZSA9IGdldENvbW1vblZlY3RvclN0eWxlKFxuICAgICAgICAgICAgICBPYmplY3QuYXNzaWduKFxuICAgICAgICAgICAgICAgIHt9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgIGZlYXR1cmU6IHJlc3VsdC5lbnRpdHkuZGF0YSBhcyBGZWF0dXJlIHwgb2xGZWF0dXJlPE9sR2VvbWV0cnk+XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB0aGlzLnNlYXJjaFN0YXRlLnNlYXJjaE92ZXJsYXlTdHlsZSxcbiAgICAgICAgICAgICAgICByZXN1bHQuZW50aXR5LnN0eWxlPy5iYXNlID8gcmVzdWx0LmVudGl0eS5zdHlsZS5iYXNlIDoge31cbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHRoaXMuc2hvd25SZXN1bHRzR2VvbWV0cmllcy5wdXNoKHJlc3VsdC5lbnRpdHkuZGF0YSBhcyBGZWF0dXJlKTtcbiAgICAgICAgICAgIHRoaXMubWFwLnF1ZXJ5UmVzdWx0c092ZXJsYXkuYWRkRmVhdHVyZShcbiAgICAgICAgICAgICAgcmVzdWx0LmVudGl0eS5kYXRhIGFzIEZlYXR1cmUsXG4gICAgICAgICAgICAgIEZlYXR1cmVNb3Rpb24uTm9uZVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGlmICh0aGlzLmhhc0ZlYXR1cmVFbXBoYXNpc09uU2VsZWN0aW9uKSB7XG4gICAgICAgICAgICAgIHRoaXMuYnVpbGRSZXN1bHRFbXBoYXNpcyhcbiAgICAgICAgICAgICAgICByZXN1bHQuZW50aXR5IGFzIFNlYXJjaFJlc3VsdDxGZWF0dXJlPixcbiAgICAgICAgICAgICAgICAnc2hvd24nXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICApO1xuXG4gICAgdGhpcy5kZWJvdW5jZWRFbXB0eSQkID0gdGhpcy5zdG9yZS5zdGF0ZVZpZXcuZW1wdHkkXG4gICAgICAucGlwZShkZWJvdW5jZVRpbWUoMTUwMCkpXG4gICAgICAuc3Vic2NyaWJlKChlbXB0eSkgPT4gdGhpcy5kZWJvdW5jZWRFbXB0eSQubmV4dChlbXB0eSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBtb25pdG9yUmVzdWx0T3V0T2ZWaWV3KCkge1xuICAgIHRoaXMuaXNTZWxlY3RlZFJlc3VsdE91dE9mVmlldyQkID0gY29tYmluZUxhdGVzdChbXG4gICAgICB0aGlzLm1hcC52aWV3Q29udHJvbGxlci5zdGF0ZSQsXG4gICAgICB0aGlzLnNlYXJjaFN0YXRlLnNlbGVjdGVkUmVzdWx0JFxuICAgIF0pXG4gICAgICAucGlwZShkZWJvdW5jZVRpbWUoMTAwKSlcbiAgICAgIC5zdWJzY3JpYmUoKGJ1bmNoKSA9PiB7XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkUmVzdWx0ID0gYnVuY2hbMV0gYXMgU2VhcmNoUmVzdWx0PEZlYXR1cmU+O1xuICAgICAgICBpZiAoIXNlbGVjdGVkUmVzdWx0KSB7XG4gICAgICAgICAgdGhpcy5pc1NlbGVjdGVkUmVzdWx0T3V0T2ZWaWV3JC5uZXh0KGZhbHNlKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHNlbGVjdGVkUmVzdWx0LmRhdGEuZ2VvbWV0cnkpIHtcbiAgICAgICAgICBjb25zdCBzZWxlY3RlZE9sRmVhdHVyZSA9IGZlYXR1cmVUb09sKFxuICAgICAgICAgICAgc2VsZWN0ZWRSZXN1bHQuZGF0YSxcbiAgICAgICAgICAgIHRoaXMubWFwLnByb2plY3Rpb25cbiAgICAgICAgICApO1xuICAgICAgICAgIGNvbnN0IHNlbGVjdGVkT2xGZWF0dXJlRXh0ZW50ID0gY29tcHV0ZU9sRmVhdHVyZXNFeHRlbnQoXG4gICAgICAgICAgICBbc2VsZWN0ZWRPbEZlYXR1cmVdLFxuICAgICAgICAgICAgdGhpcy5tYXAudmlld0NvbnRyb2xsZXIuZ2V0T2xQcm9qZWN0aW9uKClcbiAgICAgICAgICApO1xuICAgICAgICAgIHRoaXMuaXNTZWxlY3RlZFJlc3VsdE91dE9mVmlldyQubmV4dChcbiAgICAgICAgICAgIGZlYXR1cmVzQXJlT3V0T2ZWaWV3KHRoaXMubWFwLmdldEV4dGVudCgpLCBzZWxlY3RlZE9sRmVhdHVyZUV4dGVudClcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgYnVpbGRSZXN1bHRFbXBoYXNpcyhcbiAgICByZXN1bHQ6IFNlYXJjaFJlc3VsdDxGZWF0dXJlPixcbiAgICB0cmlnZ2VyOiAnc2VsZWN0ZWQnIHwgJ2ZvY3VzZWQnIHwgJ3Nob3duJyB8IHVuZGVmaW5lZFxuICApIHtcbiAgICBpZiAodHJpZ2dlciAhPT0gJ3Nob3duJykge1xuICAgICAgdGhpcy5jbGVhckZlYXR1cmVFbXBoYXNpcyh0cmlnZ2VyKTtcbiAgICB9XG4gICAgaWYgKCFyZXN1bHQgfHwgIXJlc3VsdC5kYXRhLmdlb21ldHJ5KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IG15T2xGZWF0dXJlID0gZmVhdHVyZVRvT2wocmVzdWx0LmRhdGEsIHRoaXMubWFwLnByb2plY3Rpb24pO1xuICAgIGNvbnN0IG9sR2VvbWV0cnkgPSBteU9sRmVhdHVyZS5nZXRHZW9tZXRyeSgpO1xuICAgIGlmIChcbiAgICAgIGZlYXR1cmVzQXJlVG9vRGVlcEluVmlldyhcbiAgICAgICAgdGhpcy5tYXAudmlld0NvbnRyb2xsZXIsXG4gICAgICAgIG9sR2VvbWV0cnkuZ2V0RXh0ZW50KCkgYXMgW251bWJlciwgbnVtYmVyLCBudW1iZXIsIG51bWJlcl0sXG4gICAgICAgIDAuMDAyNVxuICAgICAgKVxuICAgICkge1xuICAgICAgY29uc3QgZXh0ZW50ID0gb2xHZW9tZXRyeS5nZXRFeHRlbnQoKTtcbiAgICAgIGNvbnN0IHggPSBleHRlbnRbMF0gKyAoZXh0ZW50WzJdIC0gZXh0ZW50WzBdKSAvIDI7XG4gICAgICBjb25zdCB5ID0gZXh0ZW50WzFdICsgKGV4dGVudFszXSAtIGV4dGVudFsxXSkgLyAyO1xuICAgICAgY29uc3QgZmVhdHVyZTEgPSBuZXcgb2xGZWF0dXJlKHtcbiAgICAgICAgbmFtZTogYCR7dHJpZ2dlcn1BYnN0cmFjdFJlc3VsdCdgLFxuICAgICAgICBnZW9tZXRyeTogbmV3IG9sUG9pbnQoW3gsIHldKVxuICAgICAgfSk7XG4gICAgICBjb25zdCBhYnN0cmFjdFJlc3VsdCA9IGZlYXR1cmVGcm9tT2woZmVhdHVyZTEsIHRoaXMubWFwLnByb2plY3Rpb24pO1xuXG4gICAgICBsZXQgY29tcHV0ZWRTdHlsZTtcbiAgICAgIGxldCB6SW5kZXhPZmZzZXQgPSAwO1xuXG4gICAgICBzd2l0Y2ggKHRyaWdnZXIpIHtcbiAgICAgICAgY2FzZSAnZm9jdXNlZCc6XG4gICAgICAgICAgY29tcHV0ZWRTdHlsZSA9IGdldENvbW1vblZlY3RvclNlbGVjdGVkU3R5bGUoXG4gICAgICAgICAgICBPYmplY3QuYXNzaWduKFxuICAgICAgICAgICAgICB7fSxcbiAgICAgICAgICAgICAgeyBmZWF0dXJlOiBhYnN0cmFjdFJlc3VsdCB9LFxuICAgICAgICAgICAgICB0aGlzLnNlYXJjaFN0YXRlLnNlYXJjaE92ZXJsYXlTdHlsZUZvY3VzLFxuICAgICAgICAgICAgICByZXN1bHQuc3R5bGU/LmZvY3VzID8gcmVzdWx0LnN0eWxlLmZvY3VzIDoge31cbiAgICAgICAgICAgIClcbiAgICAgICAgICApO1xuICAgICAgICAgIHpJbmRleE9mZnNldCA9IDI7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ3Nob3duJzpcbiAgICAgICAgICBjb21wdXRlZFN0eWxlID0gZ2V0Q29tbW9uVmVjdG9yU3R5bGUoXG4gICAgICAgICAgICBPYmplY3QuYXNzaWduKFxuICAgICAgICAgICAgICB7fSxcbiAgICAgICAgICAgICAgeyBmZWF0dXJlOiBhYnN0cmFjdFJlc3VsdCB9LFxuICAgICAgICAgICAgICB0aGlzLnNlYXJjaFN0YXRlLnNlYXJjaE92ZXJsYXlTdHlsZSxcbiAgICAgICAgICAgICAgcmVzdWx0LnN0eWxlPy5iYXNlID8gcmVzdWx0LnN0eWxlLmJhc2UgOiB7fVxuICAgICAgICAgICAgKVxuICAgICAgICAgICk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ3NlbGVjdGVkJzpcbiAgICAgICAgICBjb21wdXRlZFN0eWxlID0gZ2V0Q29tbW9uVmVjdG9yU2VsZWN0ZWRTdHlsZShcbiAgICAgICAgICAgIE9iamVjdC5hc3NpZ24oXG4gICAgICAgICAgICAgIHt9LFxuICAgICAgICAgICAgICB7IGZlYXR1cmU6IGFic3RyYWN0UmVzdWx0IH0sXG4gICAgICAgICAgICAgIHRoaXMuc2VhcmNoU3RhdGUuc2VhcmNoT3ZlcmxheVN0eWxlU2VsZWN0aW9uLFxuICAgICAgICAgICAgICByZXN1bHQuc3R5bGU/LnNlbGVjdGlvbiA/IHJlc3VsdC5zdHlsZS5zZWxlY3Rpb24gOiB7fVxuICAgICAgICAgICAgKVxuICAgICAgICAgICk7XG4gICAgICAgICAgekluZGV4T2Zmc2V0ID0gMTtcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGFic3RyYWN0UmVzdWx0Lm1ldGEuc3R5bGUgPSBjb21wdXRlZFN0eWxlO1xuICAgICAgYWJzdHJhY3RSZXN1bHQubWV0YS5zdHlsZS5zZXRaSW5kZXgoMjAwMCArIHpJbmRleE9mZnNldCk7XG4gICAgICB0aGlzLm1hcC5zZWFyY2hSZXN1bHRzT3ZlcmxheS5hZGRGZWF0dXJlKFxuICAgICAgICBhYnN0cmFjdFJlc3VsdCxcbiAgICAgICAgdGhpcy5zZWFyY2hTdGF0ZS5mZWF0dXJlTW90aW9uLmZvY3VzXG4gICAgICApO1xuICAgICAgaWYgKHRyaWdnZXIgPT09ICdmb2N1c2VkJykge1xuICAgICAgICB0aGlzLmFic3RyYWN0Rm9jdXNlZFJlc3VsdCA9IGFic3RyYWN0UmVzdWx0O1xuICAgICAgfVxuICAgICAgaWYgKHRyaWdnZXIgPT09ICdzZWxlY3RlZCcpIHtcbiAgICAgICAgdGhpcy5hYnN0cmFjdFNlbGVjdGVkUmVzdWx0ID0gYWJzdHJhY3RSZXN1bHQ7XG4gICAgICB9XG4gICAgICBpZiAodHJpZ2dlciA9PT0gJ3Nob3duJykge1xuICAgICAgICB0aGlzLnNob3duUmVzdWx0c0VtcGhhc2lzR2VvbWV0cmllcy5wdXNoKGFic3RyYWN0UmVzdWx0KTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jbGVhckZlYXR1cmVFbXBoYXNpcyh0cmlnZ2VyKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNsZWFyRmVhdHVyZUVtcGhhc2lzKHRyaWdnZXI6ICdzZWxlY3RlZCcgfCAnZm9jdXNlZCcgfCAnc2hvd24nKSB7XG4gICAgaWYgKHRyaWdnZXIgPT09ICdmb2N1c2VkJyAmJiB0aGlzLmFic3RyYWN0Rm9jdXNlZFJlc3VsdCkge1xuICAgICAgdGhpcy5tYXAuc2VhcmNoUmVzdWx0c092ZXJsYXkucmVtb3ZlRmVhdHVyZSh0aGlzLmFic3RyYWN0Rm9jdXNlZFJlc3VsdCk7XG4gICAgICB0aGlzLmFic3RyYWN0Rm9jdXNlZFJlc3VsdCA9IHVuZGVmaW5lZDtcbiAgICB9XG4gICAgaWYgKHRyaWdnZXIgPT09ICdzZWxlY3RlZCcgJiYgdGhpcy5hYnN0cmFjdFNlbGVjdGVkUmVzdWx0KSB7XG4gICAgICB0aGlzLm1hcC5zZWFyY2hSZXN1bHRzT3ZlcmxheS5yZW1vdmVGZWF0dXJlKHRoaXMuYWJzdHJhY3RTZWxlY3RlZFJlc3VsdCk7XG4gICAgICB0aGlzLmFic3RyYWN0U2VsZWN0ZWRSZXN1bHQgPSB1bmRlZmluZWQ7XG4gICAgfVxuICAgIGlmICh0cmlnZ2VyID09PSAnc2hvd24nKSB7XG4gICAgICB0aGlzLnNob3duUmVzdWx0c0VtcGhhc2lzR2VvbWV0cmllcy5tYXAoKHNob3duUmVzdWx0KSA9PlxuICAgICAgICB0aGlzLm1hcC5zZWFyY2hSZXN1bHRzT3ZlcmxheS5yZW1vdmVGZWF0dXJlKHNob3duUmVzdWx0KVxuICAgICAgKTtcbiAgICAgIHRoaXMuc2hvd25SZXN1bHRzRW1waGFzaXNHZW9tZXRyaWVzID0gW107XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy50b3BQYW5lbFN0YXRlJCQudW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLnNlYXJjaFRlcm0kJC51bnN1YnNjcmliZSgpO1xuICAgIGlmICh0aGlzLmlzU2VsZWN0ZWRSZXN1bHRPdXRPZlZpZXckJCkge1xuICAgICAgdGhpcy5pc1NlbGVjdGVkUmVzdWx0T3V0T2ZWaWV3JCQudW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuc2hvd1Jlc3VsdHNHZW9tZXRyaWVzJCQpIHtcbiAgICAgIHRoaXMuc2hvd1Jlc3VsdHNHZW9tZXRyaWVzJCQudW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuZ2V0Um91dGUkJCkge1xuICAgICAgdGhpcy5nZXRSb3V0ZSQkLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICAgIGlmICh0aGlzLmRlYm91bmNlZEVtcHR5JCQpIHtcbiAgICAgIHRoaXMuZGVib3VuY2VkRW1wdHkkJC51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBUcnkgdG8gYWRkIGEgZmVhdHVyZSB0byB0aGUgbWFwIHdoZW4gaXQncyBiZWluZyBmb2N1c2VkXG4gICAqIEBpbnRlcm5hbFxuICAgKiBAcGFyYW0gcmVzdWx0IEEgc2VhcmNoIHJlc3VsdCB0aGF0IGNvdWxkIGJlIGEgZmVhdHVyZVxuICAgKi9cbiAgb25SZXN1bHRGb2N1cyhyZXN1bHQ6IFNlYXJjaFJlc3VsdCkge1xuICAgIHRoaXMuZm9jdXNlZFJlc3VsdCQubmV4dChyZXN1bHQpO1xuICAgIGlmIChyZXN1bHQubWV0YS5kYXRhVHlwZSA9PT0gRkVBVFVSRSAmJiByZXN1bHQuZGF0YS5nZW9tZXRyeSkge1xuICAgICAgcmVzdWx0LmRhdGEubWV0YS5zdHlsZSA9IGdldENvbW1vblZlY3RvclNlbGVjdGVkU3R5bGUoXG4gICAgICAgIE9iamVjdC5hc3NpZ24oXG4gICAgICAgICAge30sXG4gICAgICAgICAgeyBmZWF0dXJlOiByZXN1bHQuZGF0YSBhcyBGZWF0dXJlIHwgb2xGZWF0dXJlPE9sR2VvbWV0cnk+IH0sXG4gICAgICAgICAgdGhpcy5zZWFyY2hTdGF0ZS5zZWFyY2hPdmVybGF5U3R5bGVGb2N1cyxcbiAgICAgICAgICByZXN1bHQuc3R5bGU/LmZvY3VzID8gcmVzdWx0LnN0eWxlLmZvY3VzIDoge31cbiAgICAgICAgKVxuICAgICAgKTtcblxuICAgICAgY29uc3QgZmVhdHVyZSA9XG4gICAgICAgIHRoaXMubWFwLnNlYXJjaFJlc3VsdHNPdmVybGF5LmRhdGFTb3VyY2Uub2wuZ2V0RmVhdHVyZUJ5SWQoXG4gICAgICAgICAgcmVzdWx0Lm1ldGEuaWRcbiAgICAgICAgKTtcbiAgICAgIGlmIChmZWF0dXJlKSB7XG4gICAgICAgIGZlYXR1cmUuc2V0U3R5bGUocmVzdWx0LmRhdGEubWV0YS5zdHlsZSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHRoaXMubWFwLnNlYXJjaFJlc3VsdHNPdmVybGF5LmFkZEZlYXR1cmUoXG4gICAgICAgIHJlc3VsdC5kYXRhIGFzIEZlYXR1cmUsXG4gICAgICAgIHRoaXMuc2VhcmNoU3RhdGUuZmVhdHVyZU1vdGlvbi5mb2N1c1xuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBvblJlc3VsdFVuZm9jdXMocmVzdWx0OiBTZWFyY2hSZXN1bHQpIHtcbiAgICB0aGlzLmZvY3VzZWRSZXN1bHQkLm5leHQodW5kZWZpbmVkKTtcbiAgICBpZiAocmVzdWx0Lm1ldGEuZGF0YVR5cGUgIT09IEZFQVRVUkUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5zdG9yZS5zdGF0ZS5nZXQocmVzdWx0KS5zZWxlY3RlZCA9PT0gdHJ1ZSkge1xuICAgICAgY29uc3QgZmVhdHVyZSA9XG4gICAgICAgIHRoaXMubWFwLnNlYXJjaFJlc3VsdHNPdmVybGF5LmRhdGFTb3VyY2Uub2wuZ2V0RmVhdHVyZUJ5SWQoXG4gICAgICAgICAgcmVzdWx0Lm1ldGEuaWRcbiAgICAgICAgKTtcbiAgICAgIGlmIChmZWF0dXJlKSB7XG4gICAgICAgIGNvbnN0IHN0eWxlID0gZ2V0Q29tbW9uVmVjdG9yU2VsZWN0ZWRTdHlsZShcbiAgICAgICAgICBPYmplY3QuYXNzaWduKFxuICAgICAgICAgICAge30sXG4gICAgICAgICAgICB7IGZlYXR1cmU6IHJlc3VsdC5kYXRhIGFzIEZlYXR1cmUgfCBvbEZlYXR1cmU8T2xHZW9tZXRyeT4gfSxcbiAgICAgICAgICAgIHRoaXMuc2VhcmNoU3RhdGUuc2VhcmNoT3ZlcmxheVN0eWxlRm9jdXMsXG4gICAgICAgICAgICByZXN1bHQuc3R5bGU/LmZvY3VzID8gcmVzdWx0LnN0eWxlLmZvY3VzIDoge31cbiAgICAgICAgICApXG4gICAgICAgICk7XG4gICAgICAgIGZlYXR1cmUuc2V0U3R5bGUoc3R5bGUpO1xuICAgICAgfVxuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLm1hcC5zZWFyY2hSZXN1bHRzT3ZlcmxheS5yZW1vdmVGZWF0dXJlKHJlc3VsdC5kYXRhIGFzIEZlYXR1cmUpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRyeSB0byBhZGQgYSBmZWF0dXJlIHRvIHRoZSBtYXAgd2hlbiBpdCdzIGJlaW5nIHNlbGVjdGVkXG4gICAqIEBpbnRlcm5hbFxuICAgKiBAcGFyYW0gcmVzdWx0IEEgc2VhcmNoIHJlc3VsdCB0aGF0IGNvdWxkIGJlIGEgZmVhdHVyZSBvciBzb21lIGxheWVyIG9wdGlvbnNcbiAgICovXG4gIG9uUmVzdWx0U2VsZWN0KHJlc3VsdDogU2VhcmNoUmVzdWx0KSB7XG4gICAgdGhpcy5tYXAuc2VhcmNoUmVzdWx0c092ZXJsYXkuZGF0YVNvdXJjZS5vbC5jbGVhcigpO1xuICAgIHRoaXMudHJ5QWRkRmVhdHVyZVRvTWFwKHJlc3VsdCwgdGhpcy5zZWFyY2hTdGF0ZS5mZWF0dXJlTW90aW9uLnNlbGVjdGVkKTtcbiAgICB0aGlzLnNlYXJjaFN0YXRlLnNldFNlbGVjdGVkUmVzdWx0KHJlc3VsdCk7XG5cbiAgICBpZiAodGhpcy50b3BQYW5lbFN0YXRlID09PSAnaW5pdGlhbCcpIHtcbiAgICAgIGlmICh0aGlzLnRvcFBhbmVsU3RhdGVEZWZhdWx0ICE9PSAnY29sbGFwc2VkJykge1xuICAgICAgICB0aGlzLnRvcFBhbmVsU3RhdGUgPSAnZXhwYW5kZWQnO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy50b3BQYW5lbFN0YXRlID0gJ2NvbGxhcHNlZCc7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHRoaXMudG9wUGFuZWxTdGF0ZSA9PT0gJ2V4cGFuZGVkJykge1xuICAgICAgY29uc3QgaWdvTGlzdCA9IHRoaXMuY29tcHV0ZUVsZW1lbnRSZWYoKVswXTtcbiAgICAgIGNvbnN0IHNlbGVjdGVkID0gdGhpcy5jb21wdXRlRWxlbWVudFJlZigpWzFdO1xuICAgICAgaWYgKCF0aGlzLmlzU2Nyb2xsZWRJbnRvVmlldyhpZ29MaXN0LCBzZWxlY3RlZCkpIHtcbiAgICAgICAgdGhpcy5hZGp1c3RUb3BQYW5lbChpZ29MaXN0LCBzZWxlY3RlZCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgb25TZWFyY2goZXZlbnQ6IHsgcmVzZWFyY2g6IFJlc2VhcmNoOyByZXN1bHRzOiBTZWFyY2hSZXN1bHRbXSB9KSB7XG4gICAgY29uc3QgcmVzdWx0cyA9IGV2ZW50LnJlc3VsdHM7XG4gICAgY29uc3QgbmV3UmVzdWx0cyA9IHRoaXMuc3RvcmUuZW50aXRpZXMkLnZhbHVlXG4gICAgICAuZmlsdGVyKChyZXN1bHQ6IFNlYXJjaFJlc3VsdCkgPT4gcmVzdWx0LnNvdXJjZSAhPT0gZXZlbnQucmVzZWFyY2guc291cmNlKVxuICAgICAgLmNvbmNhdChyZXN1bHRzKTtcblxuICAgIHRoaXMuc3RvcmUubG9hZChuZXdSZXN1bHRzKTtcblxuICAgIGZvciAoY29uc3QgcmVzIG9mIHRoaXMuc3RvcmUuYWxsKCkpIHtcbiAgICAgIGlmIChcbiAgICAgICAgdGhpcy5zdG9yZS5zdGF0ZS5nZXQocmVzKS5mb2N1c2VkID09PSB0cnVlICYmXG4gICAgICAgIHRoaXMuc3RvcmUuc3RhdGUuZ2V0KHJlcykuc2VsZWN0ZWQgIT09IHRydWVcbiAgICAgICkge1xuICAgICAgICB0aGlzLnN0b3JlLnN0YXRlLnVwZGF0ZShyZXMsIHsgZm9jdXNlZDogZmFsc2UgfSwgdHJ1ZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBjb25zdCBpZ29MaXN0ID0gdGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJ2lnby1saXN0Jyk7XG4gICAgICBsZXQgbW9yZVJlc3VsdHM7XG4gICAgICBldmVudC5yZXNlYXJjaC5yZXF1ZXN0LnN1YnNjcmliZSgoc291cmNlKSA9PiB7XG4gICAgICAgIGlmICghc291cmNlWzBdIHx8ICFzb3VyY2VbMF0uc291cmNlKSB7XG4gICAgICAgICAgbW9yZVJlc3VsdHMgPSBudWxsO1xuICAgICAgICB9IGVsc2UgaWYgKHNvdXJjZVswXS5zb3VyY2UuZ2V0SWQoKSA9PT0gJ2ljaGVyY2hlJykge1xuICAgICAgICAgIG1vcmVSZXN1bHRzID0gaWdvTGlzdC5xdWVyeVNlbGVjdG9yKCcuaWNoZXJjaGUgLm1vcmVSZXN1bHRzJyk7XG4gICAgICAgIH0gZWxzZSBpZiAoc291cmNlWzBdLnNvdXJjZS5nZXRJZCgpID09PSAnaWxheWVyJykge1xuICAgICAgICAgIG1vcmVSZXN1bHRzID0gaWdvTGlzdC5xdWVyeVNlbGVjdG9yKCcuaWxheWVyIC5tb3JlUmVzdWx0cycpO1xuICAgICAgICB9IGVsc2UgaWYgKHNvdXJjZVswXS5zb3VyY2UuZ2V0SWQoKSA9PT0gJ25vbWluYXRpbScpIHtcbiAgICAgICAgICBtb3JlUmVzdWx0cyA9IGlnb0xpc3QucXVlcnlTZWxlY3RvcignLm5vbWluYXRpbSAubW9yZVJlc3VsdHMnKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBtb3JlUmVzdWx0cyA9IGlnb0xpc3QucXVlcnlTZWxlY3RvcihcbiAgICAgICAgICAgICcuJyArIHNvdXJjZVswXS5zb3VyY2UuZ2V0SWQoKSArICcgLm1vcmVSZXN1bHRzJ1xuICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoXG4gICAgICAgICAgbW9yZVJlc3VsdHMgIT09IG51bGwgJiZcbiAgICAgICAgICAhdGhpcy5pc1Njcm9sbGVkSW50b1ZpZXcoaWdvTGlzdCwgbW9yZVJlc3VsdHMpXG4gICAgICAgICkge1xuICAgICAgICAgIGlnb0xpc3Quc2Nyb2xsVG9wID1cbiAgICAgICAgICAgIG1vcmVSZXN1bHRzLm9mZnNldFRvcCArXG4gICAgICAgICAgICBtb3JlUmVzdWx0cy5vZmZzZXRIZWlnaHQgLVxuICAgICAgICAgICAgaWdvTGlzdC5jbGllbnRIZWlnaHQ7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0sIDI1MCk7XG4gIH1cblxuICBjb21wdXRlRWxlbWVudFJlZigpIHtcbiAgICBjb25zdCBpdGVtcyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdpZ28tc2VhcmNoLXJlc3VsdHMtaXRlbScpO1xuICAgIGNvbnN0IGlnb0xpc3QgPVxuICAgICAgdGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdpZ28tbGlzdCcpWzBdO1xuICAgIGxldCBzZWxlY3RlZEl0ZW07XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBpdGVtcy5sZW5ndGg7IGkrKykge1xuICAgICAgaWYgKGl0ZW1zW2ldLmNsYXNzTmFtZS5pbmNsdWRlcygnaWdvLWxpc3QtaXRlbS1zZWxlY3RlZCcpKSB7XG4gICAgICAgIHNlbGVjdGVkSXRlbSA9IGl0ZW1zW2ldO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gW2lnb0xpc3QsIHNlbGVjdGVkSXRlbV07XG4gIH1cblxuICBhZGp1c3RUb3BQYW5lbChlbGVtU291cmNlLCBlbGVtKSB7XG4gICAgaWYgKCF0aGlzLmlzU2Nyb2xsZWRJbnRvVmlldyhlbGVtU291cmNlLCBlbGVtKSkge1xuICAgICAgZWxlbVNvdXJjZS5zY3JvbGxUb3AgPVxuICAgICAgICBlbGVtLm9mZnNldFRvcCArXG4gICAgICAgIGVsZW0uY2hpbGRyZW5bMF0ub2Zmc2V0SGVpZ2h0IC1cbiAgICAgICAgZWxlbVNvdXJjZS5jbGllbnRIZWlnaHQ7XG4gICAgfVxuICB9XG5cbiAgdG9nZ2xlVG9wUGFuZWwoZXZlbnQ/OiBNb3VzZUV2ZW50KSB7XG4gICAgaWYgKGV2ZW50ICYmIChldmVudC50YXJnZXQgYXMgYW55KT8uY2xhc3NOYW1lICE9PSAnaWdvLXBhbmVsLXRpdGxlJykge1xuICAgICAgcmV0dXJuO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAodGhpcy50b3BQYW5lbFN0YXRlID09PSAnZXhwYW5kZWQnKSB7XG4gICAgICAgIHRoaXMudG9wUGFuZWxTdGF0ZSA9ICdjb2xsYXBzZWQnO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy50b3BQYW5lbFN0YXRlID0gJ2V4cGFuZGVkJztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICB6b29tVG9GZWF0dXJlRXh0ZW50KCkge1xuICAgIGlmICh0aGlzLmZlYXR1cmUuZ2VvbWV0cnkpIHtcbiAgICAgIGNvbnN0IGxvY2FsT2xGZWF0dXJlID0gdGhpcy5mb3JtYXQucmVhZEZlYXR1cmUodGhpcy5mZWF0dXJlLCB7XG4gICAgICAgIGRhdGFQcm9qZWN0aW9uOiB0aGlzLmZlYXR1cmUucHJvamVjdGlvbixcbiAgICAgICAgZmVhdHVyZVByb2plY3Rpb246IHRoaXMubWFwLnByb2plY3Rpb25Db2RlXG4gICAgICB9KTtcbiAgICAgIG1vdmVUb09sRmVhdHVyZXMoXG4gICAgICAgIHRoaXMubWFwLnZpZXdDb250cm9sbGVyLFxuICAgICAgICBbbG9jYWxPbEZlYXR1cmVdLFxuICAgICAgICBGZWF0dXJlTW90aW9uLlpvb21cbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFRyeSB0byBhZGQgYSBmZWF0dXJlIHRvIHRoZSBtYXAgb3ZlcmxheVxuICAgKiBAcGFyYW0gcmVzdWx0IEEgc2VhcmNoIHJlc3VsdCB0aGF0IGNvdWxkIGJlIGEgZmVhdHVyZVxuICAgKiBAcGFyYW0gbW90aW9uIEEgRmVhdHVyZU1vdGlvbiB0byB0cmlnZ2VyIHdoZW4gYWRkaW5nIHRoZSBzZWFyY2hyZXN1bHQgdG8gdGhlIG1hcCBzZWFyY2ggb3ZlcmxheVxuICAgKi9cbiAgcHJpdmF0ZSB0cnlBZGRGZWF0dXJlVG9NYXAoXG4gICAgcmVzdWx0OiBTZWFyY2hSZXN1bHQsXG4gICAgbW90aW9uOiBGZWF0dXJlTW90aW9uID0gRmVhdHVyZU1vdGlvbi5EZWZhdWx0XG4gICkge1xuICAgIGlmIChyZXN1bHQubWV0YS5kYXRhVHlwZSAhPT0gRkVBVFVSRSkge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gICAgY29uc3QgZmVhdHVyZSA9IChyZXN1bHQgYXMgU2VhcmNoUmVzdWx0PEZlYXR1cmU+KS5kYXRhO1xuXG4gICAgLy8gU29tZXRoaW1lcyBmZWF0dXJlcyBoYXZlIG5vIGdlb21ldHJ5LiBJdCBoYXBwZW5zIHdpdGggc29tZSBHZXRGZWF0dXJlSW5mb1xuICAgIGlmICghZmVhdHVyZS5nZW9tZXRyeSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGZlYXR1cmUubWV0YS5zdHlsZSA9IGdldENvbW1vblZlY3RvclNlbGVjdGVkU3R5bGUoXG4gICAgICBPYmplY3QuYXNzaWduKFxuICAgICAgICB7fSxcbiAgICAgICAgeyBmZWF0dXJlIH0sXG4gICAgICAgIHRoaXMuc2VhcmNoU3RhdGUuc2VhcmNoT3ZlcmxheVN0eWxlU2VsZWN0aW9uLFxuICAgICAgICByZXN1bHQuc3R5bGU/LnNlbGVjdGlvbiA/IHJlc3VsdC5zdHlsZS5zZWxlY3Rpb24gOiB7fVxuICAgICAgKVxuICAgICk7XG5cbiAgICB0aGlzLm1hcC5zZWFyY2hSZXN1bHRzT3ZlcmxheS5hZGRGZWF0dXJlKGZlYXR1cmUsIG1vdGlvbik7XG4gIH1cblxuICBpc1Njcm9sbGVkSW50b1ZpZXcoZWxlbVNvdXJjZSwgZWxlbSkge1xuICAgIGNvbnN0IHBhZGRpbmcgPSA2O1xuICAgIGNvbnN0IGRvY1ZpZXdUb3AgPSBlbGVtU291cmNlLnNjcm9sbFRvcDtcbiAgICBjb25zdCBkb2NWaWV3Qm90dG9tID0gZG9jVmlld1RvcCArIGVsZW1Tb3VyY2UuY2xpZW50SGVpZ2h0O1xuXG4gICAgY29uc3QgZWxlbVRvcCA9IGVsZW0ub2Zmc2V0VG9wO1xuICAgIGNvbnN0IGVsZW1Cb3R0b20gPSBlbGVtVG9wICsgZWxlbS5jbGllbnRIZWlnaHQgKyBwYWRkaW5nO1xuICAgIHJldHVybiBlbGVtQm90dG9tIDw9IGRvY1ZpZXdCb3R0b20gJiYgZWxlbVRvcCA+PSBkb2NWaWV3VG9wO1xuICB9XG5cbiAgZ2V0Um91dGUoKSB7XG4gICAgdGhpcy50b29sU3RhdGUudG9vbGJveC5hY3RpdmF0ZVRvb2woJ2RpcmVjdGlvbnMnKTtcbiAgICB0aGlzLmRpcmVjdGlvblN0YXRlLnN0b3BzU3RvcmUuY2xlYXJTdG9wcygpO1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgbGV0IHJvdXRpbmdDb29yZExvYWRlZCA9IGZhbHNlO1xuICAgICAgaWYgKHRoaXMuZ2V0Um91dGUkJCkge1xuICAgICAgICB0aGlzLmdldFJvdXRlJCQudW5zdWJzY3JpYmUoKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuZ2V0Um91dGUkJCA9XG4gICAgICAgIHRoaXMuZGlyZWN0aW9uU3RhdGUuc3RvcHNTdG9yZS5zdG9yZUluaXRpYWxpemVkJC5zdWJzY3JpYmUoXG4gICAgICAgICAgKGluaXQ6IGJvb2xlYW4pID0+IHtcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgdGhpcy5kaXJlY3Rpb25TdGF0ZS5zdG9wc1N0b3JlLnN0b3JlSW5pdGlhbGl6ZWQkLnZhbHVlICYmXG4gICAgICAgICAgICAgICFyb3V0aW5nQ29vcmRMb2FkZWRcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICByb3V0aW5nQ29vcmRMb2FkZWQgPSB0cnVlO1xuICAgICAgICAgICAgICBjb25zdCBzdG9wID0gdGhpcy5kaXJlY3Rpb25TdGF0ZS5zdG9wc1N0b3JlXG4gICAgICAgICAgICAgICAgLmFsbCgpXG4gICAgICAgICAgICAgICAgLmZpbmQoKGUpID0+IGUucG9zaXRpb24gPT09IDEpO1xuICAgICAgICAgICAgICBsZXQgY29vcmQ7XG4gICAgICAgICAgICAgIGlmICh0aGlzLmZlYXR1cmUuZ2VvbWV0cnkpIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5mZWF0dXJlLmdlb21ldHJ5LnR5cGUgPT09ICdQb2ludCcpIHtcbiAgICAgICAgICAgICAgICAgIGNvb3JkID0gW1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmZlYXR1cmUuZ2VvbWV0cnkuY29vcmRpbmF0ZXNbMF0sXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZmVhdHVyZS5nZW9tZXRyeS5jb29yZGluYXRlc1sxXVxuICAgICAgICAgICAgICAgICAgXTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgY29uc3QgcG9pbnQgPSBwb2ludE9uRmVhdHVyZSh0aGlzLmZlYXR1cmUuZ2VvbWV0cnkpO1xuICAgICAgICAgICAgICAgICAgY29vcmQgPSBbXG4gICAgICAgICAgICAgICAgICAgIHBvaW50Lmdlb21ldHJ5LmNvb3JkaW5hdGVzWzBdLFxuICAgICAgICAgICAgICAgICAgICBwb2ludC5nZW9tZXRyeS5jb29yZGluYXRlc1sxXVxuICAgICAgICAgICAgICAgICAgXTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgc3RvcC50ZXh0ID0gdGhpcy5mZWF0dXJlVGl0bGU7XG4gICAgICAgICAgICAgIHN0b3AuY29vcmRpbmF0ZXMgPSBjb29yZDtcbiAgICAgICAgICAgICAgdGhpcy5kaXJlY3Rpb25TdGF0ZS5zdG9wc1N0b3JlLnVwZGF0ZShzdG9wKTtcbiAgICAgICAgICAgICAgaWYgKHRoaXMubWFwLmdlb2xvY2F0aW9uQ29udHJvbGxlci5wb3NpdGlvbiQudmFsdWUpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBjdXJyZW50UG9zID1cbiAgICAgICAgICAgICAgICAgIHRoaXMubWFwLmdlb2xvY2F0aW9uQ29udHJvbGxlci5wb3NpdGlvbiQudmFsdWU7XG4gICAgICAgICAgICAgICAgY29uc3Qgc3RvcCA9IHRoaXMuZGlyZWN0aW9uU3RhdGUuc3RvcHNTdG9yZVxuICAgICAgICAgICAgICAgICAgLmFsbCgpXG4gICAgICAgICAgICAgICAgICAuZmluZCgoZSkgPT4gZS5wb3NpdGlvbiA9PT0gMCk7XG4gICAgICAgICAgICAgICAgY29uc3QgY3VycmVudENvb3JkID0gb2xQcm9qLnRyYW5zZm9ybShcbiAgICAgICAgICAgICAgICAgIGN1cnJlbnRQb3MucG9zaXRpb24sXG4gICAgICAgICAgICAgICAgICBjdXJyZW50UG9zLnByb2plY3Rpb24sXG4gICAgICAgICAgICAgICAgICAnRVBTRzo0MzI2J1xuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgY29uc3QgY29vcmQ6IFtudW1iZXIsIG51bWJlcl0gPSByb3VuZENvb3JkVG8oXG4gICAgICAgICAgICAgICAgICBbY3VycmVudENvb3JkWzBdLCBjdXJyZW50Q29vcmRbMV1dLFxuICAgICAgICAgICAgICAgICAgNlxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgc3RvcC50ZXh0ID0gY29vcmQuam9pbignLCcpO1xuICAgICAgICAgICAgICAgIHN0b3AuY29vcmRpbmF0ZXMgPSBjb29yZDtcbiAgICAgICAgICAgICAgICB0aGlzLmRpcmVjdGlvblN0YXRlLnN0b3BzU3RvcmUudXBkYXRlKHN0b3ApO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICApO1xuICAgIH0sIDI1MCk7XG4gIH1cbn1cbiIsIjxkaXZcbiAgKm5nSWY9XCIoIXN0b3JlIHx8IHN0b3JlLnN0YXRlVmlldy5lbXB0eSkgJiYgKGRlYm91bmNlZEVtcHR5JCB8IGFzeW5jKVwiXG4gIHN0eWxlPVwibWFyZ2luOiAxMHB4XCJcbj5cbiAgPHNlY3Rpb24gY2xhc3M9XCJtYXQtdHlwb2dyYXBoeVwiPlxuICAgIDxoND5cbiAgICAgIDxzdHJvbmc+e3tcbiAgICAgICAgJ2lnby5pbnRlZ3JhdGlvbi5zZWFyY2hSZXN1bHRzVG9vbC5ub1Jlc3VsdHMnIHwgdHJhbnNsYXRlXG4gICAgICB9fTwvc3Ryb25nPlxuICAgIDwvaDQ+XG4gICAgPHA+XG4gICAgICA8c3Ryb25nPnt7XG4gICAgICAgICdpZ28uaW50ZWdyYXRpb24uc2VhcmNoUmVzdWx0c1Rvb2wuZG9TZWFyY2gnIHwgdHJhbnNsYXRlXG4gICAgICB9fTwvc3Ryb25nPlxuICAgIDwvcD5cbiAgICA8ZGl2XG4gICAgICBbaW5uZXJIVE1MXT1cIlxuICAgICAgICAnaWdvLmludGVncmF0aW9uLnNlYXJjaFJlc3VsdHNUb29sLmV4YW1wbGVzJyB8IHRyYW5zbGF0ZSB8IHNhbml0aXplSHRtbFxuICAgICAgXCJcbiAgICA+PC9kaXY+XG4gIDwvc2VjdGlvbj5cbjwvZGl2PlxuXG48aWdvLWZsZXhpYmxlXG4gICpuZ0lmPVwiKGRlYm91bmNlZEVtcHR5JCB8IGFzeW5jKSA9PT0gZmFsc2VcIlxuICAjdG9wUGFuZWxcbiAgaW5pdGlhbD1cIjEwMCVcIlxuICBpbml0aWFsTW9iaWxlPVwiMTAwJVwiXG4gIGNvbGxhcHNlZD1cImNhbGMoMTAwJSAtIDU4cHgpXCJcbiAgY29sbGFwc2VkTW9iaWxlPVwiY2FsYygxMDAlIC0gNThweClcIlxuICBleHBhbmRlZD1cIjYwJVwiXG4gIGV4cGFuZGVkTW9iaWxlPVwiNjAlXCJcbiAgW3N0YXRlXT1cIihmZWF0dXJlJCB8IGFzeW5jKSA/IHRvcFBhbmVsU3RhdGUgOiAnaW5pdGlhbCdcIlxuPlxuICA8ZGl2IGNsYXNzPVwiaWdvLWNvbnRlbnRcIj5cbiAgICA8aWdvLXNlYXJjaC1yZXN1bHRzXG4gICAgICBbc3RvcmVdPVwic3RvcmVcIlxuICAgICAgW3Nob3dJY29uc109XCJzaG93SWNvbnNcIlxuICAgICAgW3Rlcm1dPVwidGVybVwiXG4gICAgICBbdGVybVNwbGl0dGVyXT1cInRlcm1TcGxpdHRlclwiXG4gICAgICBbc2V0dGluZ3NDaGFuZ2UkXT1cInNldHRpbmdzQ2hhbmdlJFwiXG4gICAgICBwbGFjZWhvbGRlcj1cImZhbHNlXCJcbiAgICAgIChyZXN1bHRGb2N1cyk9XCJvblJlc3VsdEZvY3VzKCRldmVudClcIlxuICAgICAgKHJlc3VsdFNlbGVjdCk9XCJvblJlc3VsdFNlbGVjdCgkZXZlbnQpXCJcbiAgICAgIChyZXN1bHRVbmZvY3VzKT1cIm9uUmVzdWx0VW5mb2N1cygkZXZlbnQpXCJcbiAgICAgIChyZXN1bHRNb3VzZWVudGVyKT1cIm9uUmVzdWx0Rm9jdXMoJGV2ZW50KVwiXG4gICAgICAocmVzdWx0TW91c2VsZWF2ZSk9XCJvblJlc3VsdFVuZm9jdXMoJGV2ZW50KVwiXG4gICAgICAobW9yZVJlc3VsdHMpPVwib25TZWFyY2goJGV2ZW50KVwiXG4gICAgICBbbWFwXT1cIm1hcFwiXG4gICAgPlxuICAgICAgPG5nLXRlbXBsYXRlICNpZ29TZWFyY2hJdGVtVG9vbGJhciBsZXQtcmVzdWx0PVwicmVzdWx0XCI+XG4gICAgICAgIDxpZ28tc2VhcmNoLWFkZC1idXR0b25cbiAgICAgICAgICBbbWFwXT1cIm1hcFwiXG4gICAgICAgICAgW3N0b3JlXT1cInN0b3JlXCJcbiAgICAgICAgICBbc3RvcmVzXT1cInN0b3Jlc1wiXG4gICAgICAgICAgW2xheWVyXT1cInJlc3VsdFwiXG4gICAgICAgICAgW3NhdmVTZWFyY2hSZXN1bHRJbkxheWVyXT1cInNhdmVTZWFyY2hSZXN1bHRJbkxheWVyXCJcbiAgICAgICAgPlxuICAgICAgICA8L2lnby1zZWFyY2gtYWRkLWJ1dHRvbj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9pZ28tc2VhcmNoLXJlc3VsdHM+XG4gIDwvZGl2PlxuXG4gIDxkaXYgaWdvRmxleGlibGVGaWxsIGNsYXNzPVwiaWdvLWNvbnRlbnRcIj5cbiAgICA8aWdvLXBhbmVsXG4gICAgICBbdGl0bGVdPVwiZmVhdHVyZVRpdGxlXCJcbiAgICAgICpuZ0lmPVwiZmVhdHVyZSQgfCBhc3luY1wiXG4gICAgICAoY2xpY2spPVwidG9nZ2xlVG9wUGFuZWwoJGV2ZW50KVwiXG4gICAgICBbY3Vyc29yUG9pbnRlcl09XCJ0cnVlXCJcbiAgICA+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIG1hdC1pY29uLWJ1dHRvblxuICAgICAgICBwYW5lbExlZnRCdXR0b25cbiAgICAgICAgY2xhc3M9XCJpZ28taWNvbi1idXR0b25cIlxuICAgICAgICAoY2xpY2spPVwidG9nZ2xlVG9wUGFuZWwoKVwiXG4gICAgICA+XG4gICAgICAgIDxtYXQtaWNvblxuICAgICAgICAgIFtzdmdJY29uXT1cIlxuICAgICAgICAgICAgKHRvcFBhbmVsU3RhdGUkIHwgYXN5bmMpID09PSAnY29sbGFwc2VkJyA/ICdhcnJvdy11cCcgOiAnYXJyb3ctZG93bidcbiAgICAgICAgICBcIlxuICAgICAgICA+PC9tYXQtaWNvbj5cbiAgICAgIDwvYnV0dG9uPlxuXG4gICAgICA8YnV0dG9uXG4gICAgICAgICpuZ0lmPVwiZmVhdHVyZS5nZW9tZXRyeVwiXG4gICAgICAgIG1hdC1pY29uLWJ1dHRvblxuICAgICAgICBwYW5lbFJpZ2h0QnV0dG9uXG4gICAgICAgIGNsYXNzPVwiaWdvLWljb24tYnV0dG9uXCJcbiAgICAgICAgW21hdFRvb2x0aXBdPVwiXG4gICAgICAgICAgKChpc1NlbGVjdGVkUmVzdWx0T3V0T2ZWaWV3JCB8IGFzeW5jKVxuICAgICAgICAgICAgPyAnaWdvLmludGVncmF0aW9uLnNlYXJjaFJlc3VsdHNUb29sLnpvb21PbkZlYXR1cmVUb29sdGlwT3V0T2ZWaWV3J1xuICAgICAgICAgICAgOiAnaWdvLmludGVncmF0aW9uLnNlYXJjaFJlc3VsdHNUb29sLnpvb21PbkZlYXR1cmVUb29sdGlwJ1xuICAgICAgICAgICkgfCB0cmFuc2xhdGVcbiAgICAgICAgXCJcbiAgICAgICAgbWF0VG9vbHRpcFNob3dEZWxheT1cIjUwMFwiXG4gICAgICAgIChjbGljayk9XCJ6b29tVG9GZWF0dXJlRXh0ZW50KClcIlxuICAgICAgPlxuICAgICAgICA8bWF0LWljb25cbiAgICAgICAgICBhcmlhLWhpZGRlbj1cImZhbHNlXCJcbiAgICAgICAgICBbbWF0QmFkZ2VdPVwiKGlzU2VsZWN0ZWRSZXN1bHRPdXRPZlZpZXckIHwgYXN5bmMpID8gJyEnIDogJydcIlxuICAgICAgICAgIG1hdEJhZGdlQ29sb3I9XCJhY2NlbnRcIlxuICAgICAgICAgIG1hdEJhZGdlU2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICBbbWF0QmFkZ2VIaWRkZW5dPVwiKGlzU2VsZWN0ZWRSZXN1bHRPdXRPZlZpZXckIHwgYXN5bmMpID09PSBmYWxzZVwiXG4gICAgICAgICAgc3ZnSWNvbj1cIm1hZ25pZnktcGx1cy1vdXRsaW5lXCJcbiAgICAgICAgPjwvbWF0LWljb24+XG4gICAgICA8L2J1dHRvbj5cblxuICAgICAgPGlnby1mZWF0dXJlLWRldGFpbHNcbiAgICAgICAgaWdvRmVhdHVyZURldGFpbHNEaXJlY3RpdmVcbiAgICAgICAgW2ZlYXR1cmVdPVwiZmVhdHVyZSQgfCBhc3luY1wiXG4gICAgICAgIFttYXBdPVwibWFwXCJcbiAgICAgICAgW3Rvb2xib3hdPVwidG9vbFN0YXRlLnRvb2xib3hcIlxuICAgICAgICAocm91dGluZ0V2ZW50KT1cImdldFJvdXRlKClcIlxuICAgICAgPlxuICAgICAgPC9pZ28tZmVhdHVyZS1kZXRhaWxzPlxuICAgIDwvaWdvLXBhbmVsPlxuICA8L2Rpdj5cbjwvaWdvLWZsZXhpYmxlPlxuIl19
553
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLXJlc3VsdHMtdG9vbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9pbnRlZ3JhdGlvbi9zcmMvbGliL3NlYXJjaC9zZWFyY2gtcmVzdWx0cy10b29sL3NlYXJjaC1yZXN1bHRzLXRvb2wuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvaW50ZWdyYXRpb24vc3JjL2xpYi9zZWFyY2gvc2VhcmNoLXJlc3VsdHMtdG9vbC9zZWFyY2gtcmVzdWx0cy10b29sLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2xELE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFVBQVUsRUFDVixLQUFLLEVBR04sTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFN0QsT0FBTyxFQUdMLGlCQUFpQixFQUVqQixjQUFjLEVBQ2QsZ0JBQWdCLEVBQ2hCLGFBQWEsRUFDYixjQUFjLEVBQ2YsTUFBTSxjQUFjLENBQUM7QUFDdEIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2xELE9BQU8sRUFDTCxPQUFPLEVBRVAsdUJBQXVCLEVBQ3ZCLGFBQWEsRUFLYiw4QkFBOEIsRUFDOUIsc0JBQXNCLEVBQ3RCLHVCQUF1QixFQUN2QixhQUFhLEVBQ2IsV0FBVyxFQUNYLG9CQUFvQixFQUNwQix3QkFBd0IsRUFDeEIsNEJBQTRCLEVB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aUIsbUxBQ2pCLHNCQUFzQix5U0FDdEIsOEJBQThCLDRKQUM5QixjQUFjLHVHQUNkLGVBQWUsMklBQ2YsYUFBYSxtTEFDYixnQkFBZ0IsNFRBQ2hCLGNBQWMsNFBBQ2QsdUJBQXVCLDBLQUN2QixTQUFTLDZDQUNULGVBQWUsd0ZBQ2YsZ0JBQWdCOztBQUdQLDBCQUEwQjtJQTFCdEMsYUFBYSxDQUFDO1FBQ2IsSUFBSSxFQUFFLGVBQWU7UUFDckIsS0FBSyxFQUFFLHFDQUFxQztRQUM1QyxJQUFJLEVBQUUsUUFBUTtLQUNmLENBQUM7cUNBaUhvQixRQUFRO1FBQ0wsV0FBVztRQUNqQixVQUFVO1FBQ1AsU0FBUztRQUNILGNBQWM7UUFDdkIsYUFBYTtHQWhHbkIsMEJBQTBCLENBMHBCdEM7OzJGQTFwQlksMEJBQTBCO2tCQXJCdEMsU0FBUzsrQkFDRSx5QkFBeUIsbUJBRWxCLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxXQUNQO3dCQUNQLElBQUk7d0JBQ0osaUJBQWlCO3dCQUNqQixzQkFBc0I7d0JBQ3RCLDhCQUE4Qjt3QkFDOUIsY0FBYzt3QkFDZCxlQUFlO3dCQUNmLGFBQWE7d0JBQ2IsZ0JBQWdCO3dCQUNoQixjQUFjO3dCQUNkLHVCQUF1Qjt3QkFDdkIsU0FBUzt3QkFDVCxlQUFlO3dCQUNmLGdCQUFnQjtxQkFDakI7aU5BTVEsU0FBUztzQkFBakIsS0FBSztnQkFLRyxvQkFBb0I7c0JBQTVCLEtBQUs7Z0JBZ0VGLGFBQWE7c0JBRGhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBc3luY1BpcGUsIE5nSWYgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0QmFkZ2VNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9iYWRnZSc7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgTWF0VG9vbHRpcE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXAnO1xuXG5pbXBvcnQge1xuICBFbnRpdHlTdGF0ZSxcbiAgRW50aXR5U3RvcmUsXG4gIEZsZXhpYmxlQ29tcG9uZW50LFxuICBGbGV4aWJsZVN0YXRlLFxuICBQYW5lbENvbXBvbmVudCxcbiAgU2FuaXRpemVIdG1sUGlwZSxcbiAgVG9vbENvbXBvbmVudCxcbiAgZ2V0RW50aXR5VGl0bGVcbn0gZnJvbSAnQGlnbzIvY29tbW9uJztcbmltcG9ydCB7IENvbmZpZ1NlcnZpY2UgfSBmcm9tICdAaWdvMi9jb3JlL2NvbmZpZyc7XG5pbXBvcnQge1xuICBGRUFUVVJFLFxuICBGZWF0dXJlLFxuICBGZWF0dXJlRGV0YWlsc0NvbXBvbmVudCxcbiAgRmVhdHVyZU1vdGlvbixcbiAgRmVhdHVyZVN0b3JlLFxuICBJZ29NYXAsXG4gIFJlc2VhcmNoLFxuICBTZWFyY2hSZXN1bHQsXG4gIFNlYXJjaFJlc3VsdEFkZEJ1dHRvbkNvbXBvbmVudCxcbiAgU2VhcmNoUmVzdWx0c0NvbXBvbmVudCxcbiAgY29tcHV0ZU9sRmVhdHVyZXNFeHRlbnQsXG4gIGZlYXR1cmVGcm9tT2wsXG4gIGZlYXR1cmVUb09sLFxuICBmZWF0dXJlc0FyZU91dE9mVmlldyxcbiAgZmVhdHVyZXNBcmVUb29EZWVwSW5WaWV3LFxuICBnZXRDb21tb25WZWN0b3JTZWxlY3RlZFN0eWxlLFxuICBnZXRDb21tb25WZWN0b3JTdHlsZSxcbiAgbW92ZVRvT2xGZWF0dXJlcyxcbiAgcm91bmRDb29yZFRvXG59IGZyb20gJ0BpZ28yL2dlbyc7XG5cbmltcG9ydCBvbEZlYXR1cmUgZnJvbSAnb2wvRmVhdHVyZSc7XG5pbXBvcnQgb2xGb3JtYXRHZW9KU09OIGZyb20gJ29sL2Zvcm1hdC9HZW9KU09OJztcbmltcG9ydCB0eXBlIHsgZGVmYXVsdCBhcyBPbEdlb21ldHJ5IH0gZnJvbSAnb2wvZ2VvbS9HZW9tZXRyeSc7XG5pbXBvcnQgb2xQb2ludCBmcm9tICdvbC9nZW9tL1BvaW50JztcbmltcG9ydCAqIGFzIG9sUHJvaiBmcm9tICdvbC9wcm9qJztcblxuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgcG9pbnRPbkZlYXR1cmUgZnJvbSAnQHR1cmYvcG9pbnQtb24tZmVhdHVyZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIFN1YnNjcmlwdGlvbiwgY29tYmluZUxhdGVzdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IERpcmVjdGlvblN0YXRlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aW9ucy9kaXJlY3Rpb25zLnN0YXRlJztcbmltcG9ydCB7IE1hcFN0YXRlIH0gZnJvbSAnLi4vLi4vbWFwL21hcC5zdGF0ZSc7XG5pbXBvcnQgeyBUb29sU3RhdGUgfSBmcm9tICcuLi8uLi90b29sL3Rvb2wuc3RhdGUnO1xuaW1wb3J0IHsgU2VhcmNoU3RhdGUgfSBmcm9tICcuLi9zZWFyY2guc3RhdGUnO1xuXG4vKipcbiAqIFRvb2wgdG8gYnJvd3NlIHRoZSBzZWFyY2ggcmVzdWx0c1xuICovXG5AVG9vbENvbXBvbmVudCh7XG4gIG5hbWU6ICdzZWFyY2hSZXN1bHRzJyxcbiAgdGl0bGU6ICdpZ28uaW50ZWdyYXRpb24udG9vbHMuc2VhcmNoUmVzdWx0cycsXG4gIGljb246ICdzZWFyY2gnXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaWdvLXNlYXJjaC1yZXN1bHRzLXRvb2wnLFxuICB0ZW1wbGF0ZVVybDogJy4vc2VhcmNoLXJlc3VsdHMtdG9vbC5jb21wb25lbnQuaHRtbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgTmdJZixcbiAgICBGbGV4aWJsZUNvbXBvbmVudCxcbiAgICBTZWFyY2hSZXN1bHRzQ29tcG9uZW50LFxuICAgIFNlYXJjaFJlc3VsdEFkZEJ1dHRvbkNvbXBvbmVudCxcbiAgICBQYW5lbENvbXBvbmVudCxcbiAgICBNYXRCdXR0b25Nb2R1bGUsXG4gICAgTWF0SWNvbk1vZHVsZSxcbiAgICBNYXRUb29sdGlwTW9kdWxlLFxuICAgIE1hdEJhZGdlTW9kdWxlLFxuICAgIEZlYXR1cmVEZXRhaWxzQ29tcG9uZW50LFxuICAgIEFzeW5jUGlwZSxcbiAgICBUcmFuc2xhdGVNb2R1bGUsXG4gICAgU2FuaXRpemVIdG1sUGlwZVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIFNlYXJjaFJlc3VsdHNUb29sQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAvKipcbiAgICogdG8gc2hvdyBoaWRlIHJlc3VsdHMgaWNvbnNcbiAgICovXG4gIEBJbnB1dCgpIHNob3dJY29uczogYm9vbGVhbiA9IHRydWU7XG5cbiAgLyoqXG4gICAqIERldGVybWluZSB0aGUgdG9wIHBhbmVsIGRlZmF1bHQgc3RhdGVcbiAgICovXG4gIEBJbnB1dCgpIHRvcFBhbmVsU3RhdGVEZWZhdWx0OiBzdHJpbmcgPSAnZXhwYW5kZWQnO1xuXG4gIHByaXZhdGUgaGFzRmVhdHVyZUVtcGhhc2lzT25TZWxlY3Rpb246IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHVibGljIHNhdmVTZWFyY2hSZXN1bHRJbkxheWVyOiBib29sZWFuID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSBzaG93UmVzdWx0c0dlb21ldHJpZXMkJDogU3Vic2NyaXB0aW9uO1xuICBwcml2YXRlIGdldFJvdXRlJCQ6IFN1YnNjcmlwdGlvbjtcbiAgcHJpdmF0ZSBzaG93blJlc3VsdHNHZW9tZXRyaWVzOiBGZWF0dXJlW10gPSBbXTtcbiAgcHJpdmF0ZSBzaG93blJlc3VsdHNFbXBoYXNpc0dlb21ldHJpZXM6IEZlYXR1cmVbXSA9IFtdO1xuICBwcml2YXRlIGZvY3VzZWRSZXN1bHQkOiBCZWhhdmlvclN1YmplY3Q8U2VhcmNoUmVzdWx0PiA9IG5ldyBCZWhhdmlvclN1YmplY3QoXG4gICAgdW5kZWZpbmVkXG4gICk7XG4gIHB1YmxpYyBpc1NlbGVjdGVkUmVzdWx0T3V0T2ZWaWV3JCA9IG5ldyBCZWhhdmlvclN1YmplY3QoZmFsc2UpO1xuICBwcml2YXRlIGlzU2VsZWN0ZWRSZXN1bHRPdXRPZlZpZXckJDogU3Vic2NyaXB0aW9uO1xuICBwcml2YXRlIGFic3RyYWN0Rm9jdXNlZFJlc3VsdDogRmVhdHVyZTtcbiAgcHJpdmF0ZSBhYnN0cmFjdFNlbGVjdGVkUmVzdWx0OiBGZWF0dXJlO1xuXG4gIHB1YmxpYyBkZWJvdW5jZWRFbXB0eSQ6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPiA9IG5ldyBCZWhhdmlvclN1YmplY3QodHJ1ZSk7XG4gIHByaXZhdGUgZGVib3VuY2VkRW1wdHkkJDogU3Vic2NyaXB0aW9uO1xuXG4gIC8qKlxuICAgKiBTdG9yZSBob2xkaW5nIHRoZSBzZWFyY2ggcmVzdWx0c1xuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIGdldCBzdG9yZSgpOiBFbnRpdHlTdG9yZTxTZWFyY2hSZXN1bHQ+IHtcbiAgICByZXR1cm4gdGhpcy5zZWFyY2hTdGF0ZS5zdG9yZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNYXAgdG8gZGlzcGxheSB0aGUgcmVzdWx0cyBvblxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIGdldCBtYXAoKTogSWdvTWFwIHtcbiAgICByZXR1cm4gdGhpcy5tYXBTdGF0ZS5tYXA7XG4gIH1cblxuICBnZXQgZmVhdHVyZVRpdGxlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZmVhdHVyZSA/IGdldEVudGl0eVRpdGxlKHRoaXMuZmVhdHVyZSkgOiB1bmRlZmluZWQ7XG4gIH1cblxuICBnZXQgZmVhdHVyZSQoKTogT2JzZXJ2YWJsZTxGZWF0dXJlPiB7XG4gICAgcmV0dXJuIHRoaXMuc3RvcmUuc3RhdGVWaWV3XG4gICAgICAuZmlyc3RCeSQoKGUpID0+IGUuc3RhdGUuZm9jdXNlZClcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoXG4gICAgICAgICAgKGVsZW1lbnQpID0+XG4gICAgICAgICAgICAodGhpcy5mZWF0dXJlID0gZWxlbWVudFxuICAgICAgICAgICAgICA/IChlbGVtZW50LmVudGl0eS5kYXRhIGFzIEZlYXR1cmUpXG4gICAgICAgICAgICAgIDogdW5kZWZpbmVkKVxuICAgICAgICApXG4gICAgICApO1xuICB9XG5cbiAgcHVibGljIGZlYXR1cmU6IEZlYXR1cmU7XG5cbiAgcHVibGljIHRlcm0gPSAnJztcbiAgcHJpdmF0ZSBzZWFyY2hUZXJtJCQ6IFN1YnNjcmlwdGlvbjtcblxuICBwdWJsaWMgc2V0dGluZ3NDaGFuZ2UkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPih1bmRlZmluZWQpO1xuXG4gIHB1YmxpYyB0b3BQYW5lbFN0YXRlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8RmxleGlibGVTdGF0ZT4oJ2luaXRpYWwnKTtcbiAgcHJpdmF0ZSB0b3BQYW5lbFN0YXRlJCQ6IFN1YnNjcmlwdGlvbjtcblxuICBASW5wdXQoKVxuICBzZXQgdG9wUGFuZWxTdGF0ZSh2YWx1ZTogRmxleGlibGVTdGF0ZSkge1xuICAgIHRoaXMudG9wUGFuZWxTdGF0ZSQubmV4dCh2YWx1ZSk7XG4gIH1cbiAgZ2V0IHRvcFBhbmVsU3RhdGUoKTogRmxleGlibGVTdGF0ZSB7XG4gICAgcmV0dXJuIHRoaXMudG9wUGFuZWxTdGF0ZSQudmFsdWU7XG4gIH1cblxuICBnZXQgdGVybVNwbGl0dGVyKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuc2VhcmNoU3RhdGUuc2VhcmNoVGVybVNwbGl0dGVyJC52YWx1ZTtcbiAgfVxuXG4gIHByaXZhdGUgZm9ybWF0ID0gbmV3IG9sRm9ybWF0R2VvSlNPTigpO1xuXG4gIGdldCBzdG9yZXMoKTogRmVhdHVyZVN0b3JlPEZlYXR1cmU+W10ge1xuICAgIHJldHVybiB0aGlzLnNlYXJjaFN0YXRlLnNlYXJjaExheWVyU3RvcmVzO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBtYXBTdGF0ZTogTWFwU3RhdGUsXG4gICAgcHJpdmF0ZSBzZWFyY2hTdGF0ZTogU2VhcmNoU3RhdGUsXG4gICAgcHJpdmF0ZSBlbFJlZjogRWxlbWVudFJlZixcbiAgICBwdWJsaWMgdG9vbFN0YXRlOiBUb29sU3RhdGUsXG4gICAgcHJpdmF0ZSBkaXJlY3Rpb25TdGF0ZTogRGlyZWN0aW9uU3RhdGUsXG4gICAgY29uZmlnU2VydmljZTogQ29uZmlnU2VydmljZVxuICApIHtcbiAgICB0aGlzLmhhc0ZlYXR1cmVFbXBoYXNpc09uU2VsZWN0aW9uID0gY29uZmlnU2VydmljZS5nZXRDb25maWcoXG4gICAgICAnaGFzRmVhdHVyZUVtcGhhc2lzT25TZWxlY3Rpb24nXG4gICAgKTtcbiAgICB0aGlzLnNhdmVTZWFyY2hSZXN1bHRJbkxheWVyID0gY29uZmlnU2VydmljZS5nZXRDb25maWcoXG4gICAgICAnc2F2ZVNlYXJjaFJlc3VsdEluTGF5ZXInXG4gICAgKTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuc2VhcmNoVGVybSQkID0gdGhpcy5zZWFyY2hTdGF0ZS5zZWFyY2hUZXJtJC5zdWJzY3JpYmUoXG4gICAgICAoc2VhcmNoVGVybTogc3RyaW5nKSA9PiB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICBzZWFyY2hUZXJtICE9PSB1bmRlZmluZWQgJiZcbiAgICAgICAgICBzZWFyY2hUZXJtICE9PSBudWxsICYmXG4gICAgICAgICAgc2VhcmNoVGVybSAhPT0gJydcbiAgICAgICAgKSB7XG4gICAgICAgICAgdGhpcy50ZXJtID0gc2VhcmNoVGVybTtcbiAgICAgICAgICB0aGlzLmRlYm91bmNlZEVtcHR5JC5uZXh0KGZhbHNlKTtcbiAgICAgICAgfSBlbHNlIGlmIChzZWFyY2hUZXJtID09PSAnJykge1xuICAgICAgICAgIHRoaXMuZGVib3VuY2VkRW1wdHkkLm5leHQodHJ1ZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICApO1xuXG4gICAgZm9yIChjb25zdCByZXMgb2YgdGhpcy5zdG9yZS5zdGF0ZVZpZXcuYWxsJCgpLnZhbHVlKSB7XG4gICAgICBpZiAodGhpcy5zdG9yZS5zdGF0ZS5nZXQocmVzLmVudGl0eSkuc2VsZWN0ZWQgPT09IHRydWUpIHtcbiAgICAgICAgdGhpcy50b3BQYW5lbFN0YXRlID0gJ2V4cGFuZGVkJztcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLnNlYXJjaFN0YXRlLnNlYXJjaFNldHRpbmdzQ2hhbmdlJC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5zZXR0aW5nc0NoYW5nZSQubmV4dCh0cnVlKTtcbiAgICB9KTtcblxuICAgIHRoaXMudG9wUGFuZWxTdGF0ZSQkID0gdGhpcy50b3BQYW5lbFN0YXRlJC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgY29uc3QgaWdvTGlzdCA9IHRoaXMuY29tcHV0ZUVsZW1lbnRSZWYoKVswXTtcbiAgICAgIGNvbnN0IHNlbGVjdGVkID0gdGhpcy5jb21wdXRlRWxlbWVudFJlZigpWzFdO1xuICAgICAgaWYgKHNlbGVjdGVkKSB7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgIC8vIFRvIGJlIHN1cmUgdGhlIGZsZXhpYmxlIGNvbXBvbmVudCBoYXMgYmVlbiBkaXNwbGF5ZWQgeWV0XG4gICAgICAgICAgaWYgKCF0aGlzLmlzU2Nyb2xsZWRJbnRvVmlldyhpZ29MaXN0LCBzZWxlY3RlZCkpIHtcbiAgICAgICAgICAgIHRoaXMuYWRqdXN0VG9wUGFuZWwoaWdvTGlzdCwgc2VsZWN0ZWQpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSwgRmxleGlibGVDb21wb25lbnQudHJhbnNpdGlvblRpbWUgKyA1MCk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBpZiAodGhpcy5oYXNGZWF0dXJlRW1waGFzaXNPblNlbGVjdGlvbikge1xuICAgICAgaWYgKCF0aGlzLnNlYXJjaFN0YXRlLmZvY3VzZWRPclJlc29sdXRpb24kJCkge1xuICAgICAgICB0aGlzLnNlYXJjaFN0YXRlLmZvY3VzZWRPclJlc29sdXRpb24kJCA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgICAgIHRoaXMuZm9jdXNlZFJlc3VsdCQsXG4gICAgICAgICAgdGhpcy5tYXAudmlld0NvbnRyb2xsZXIucmVzb2x1dGlvbiRcbiAgICAgICAgXSkuc3Vic2NyaWJlKChidW5jaDogW1NlYXJjaFJlc3VsdDxGZWF0dXJlPiwgbnVtYmVyXSkgPT5cbiAgICAgICAgICB0aGlzLmJ1aWxkUmVzdWx0RW1waGFzaXMoYnVuY2hbMF0sICdmb2N1c2VkJylcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgaWYgKCF0aGlzLnNlYXJjaFN0YXRlLnNlbGVjdGVkT3JSZXNvbHV0aW9uJCQpIHtcbiAgICAgICAgdGhpcy5zZWFyY2hTdGF0ZS5zZWxlY3RlZE9yUmVzb2x1dGlvbiQkID0gY29tYmluZUxhdGVzdChbXG4gICAgICAgICAgdGhpcy5zZWFyY2hTdGF0ZS5zZWxlY3RlZFJlc3VsdCQsXG4gICAgICAgICAgdGhpcy5tYXAudmlld0NvbnRyb2xsZXIucmVzb2x1dGlvbiRcbiAgICAgICAgXSkuc3Vic2NyaWJlKChidW5jaDogW1NlYXJjaFJlc3VsdDxGZWF0dXJlPiwgbnVtYmVyXSkgPT5cbiAgICAgICAgICB0aGlzLmJ1aWxkUmVzdWx0RW1waGFzaXMoYnVuY2hbMF0sICdzZWxlY3RlZCcpXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMubW9uaXRvclJlc3VsdE91dE9mVmlldygpO1xuXG4gICAgdGhpcy5zaG93UmVzdWx0c0dlb21ldHJpZXMkJCA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgdGhpcy5zZWFyY2hTdGF0ZS5zZWFyY2hSZXN1bHRzR2VvbWV0cnlFbmFibGVkJCxcbiAgICAgIHRoaXMuc3RvcmUuc3RhdGVWaWV3LmFsbCQoKSxcbiAgICAgIHRoaXMuZm9jdXNlZFJlc3VsdCQsXG4gICAgICB0aGlzLnNlYXJjaFN0YXRlLnNlbGVjdGVkUmVzdWx0JCxcbiAgICAgIHRoaXMuc2VhcmNoU3RhdGUuc2VhcmNoVGVybSQsXG4gICAgICB0aGlzLm1hcC52aWV3Q29udHJvbGxlci5yZXNvbHV0aW9uJFxuICAgIF0pLnN1YnNjcmliZShcbiAgICAgIChcbiAgICAgICAgYnVuY2g6IFtcbiAgICAgICAgICBib29sZWFuLFxuICAgICAgICAgIHsgZW50aXR5OiBTZWFyY2hSZXN1bHQ7IHN0YXRlOiBFbnRpdHlTdGF0ZSB9W10sXG4gICAgICAgICAgU2VhcmNoUmVzdWx0LFxuICAgICAgICAgIFNlYXJjaFJlc3VsdCxcbiAgICAgICAgICBzdHJpbmcsXG4gICAgICAgICAgbnVtYmVyXG4gICAgICAgIF1cbiAgICAgICkgPT4ge1xuICAgICAgICBjb25zdCBzZWFyY2hSZXN1bHRzR2VvbWV0cnlFbmFibGVkID0gYnVuY2hbMF07XG4gICAgICAgIGNvbnN0IHNlYXJjaFJlc3VsdHMgPSBidW5jaFsxXTtcblxuICAgICAgICBpZiAodGhpcy5oYXNGZWF0dXJlRW1waGFzaXNPblNlbGVjdGlvbikge1xuICAgICAgICAgIHRoaXMuY2xlYXJGZWF0dXJlRW1waGFzaXMoJ3Nob3duJyk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zaG93blJlc3VsdHNHZW9tZXRyaWVzLm1hcCgocmVzdWx0KSA9PlxuICAgICAgICAgIHRoaXMubWFwLnF1ZXJ5UmVzdWx0c092ZXJsYXkucmVtb3ZlRmVhdHVyZShyZXN1bHQpXG4gICAgICAgICk7XG4gICAgICAgIGNvbnN0IGZlYXR1cmVUb0hhbmRsZUdlb20gPSBzZWFyY2hSZXN1bHRzLmZpbHRlcihcbiAgICAgICAgICAocmVzdWx0KSA9PlxuICAgICAgICAgICAgcmVzdWx0LmVudGl0eS5tZXRhLmRhdGFUeXBlID09PSBGRUFUVVJFICYmXG4gICAgICAgICAgICByZXN1bHQuZW50aXR5LmRhdGEuZ2VvbWV0cnkgJiZcbiAgICAgICAgICAgICFyZXN1bHQuc3RhdGUuc2VsZWN0ZWQgJiZcbiAgICAgICAgICAgICFyZXN1bHQuc3RhdGUuZm9jdXNlZFxuICAgICAgICApO1xuXG4gICAgICAgIGZlYXR1cmVUb0hhbmRsZUdlb20ubWFwKChyZXN1bHQpID0+IHtcbiAgICAgICAgICBpZiAoc2VhcmNoUmVzdWx0c0dlb21ldHJ5RW5hYmxlZCkge1xuICAgICAgICAgICAgcmVzdWx0LmVudGl0eS5kYXRhLm1ldGEuc3R5bGUgPSBnZXRDb21tb25WZWN0b3JTdHlsZShcbiAgICAgICAgICAgICAgT2JqZWN0LmFzc2lnbihcbiAgICAgICAgICAgICAgICB7fSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICBmZWF0dXJlOiByZXN1bHQuZW50aXR5LmRhdGEgYXMgRmVhdHVyZSB8IG9sRmVhdHVyZTxPbEdlb21ldHJ5PlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgdGhpcy5zZWFyY2hTdGF0ZS5zZWFyY2hPdmVybGF5U3R5bGUsXG4gICAgICAgICAgICAgICAgcmVzdWx0LmVudGl0eS5zdHlsZT8uYmFzZSA/IHJlc3VsdC5lbnRpdHkuc3R5bGUuYmFzZSA6IHt9XG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICB0aGlzLnNob3duUmVzdWx0c0dlb21ldHJpZXMucHVzaChyZXN1bHQuZW50aXR5LmRhdGEgYXMgRmVhdHVyZSk7XG4gICAgICAgICAgICB0aGlzLm1hcC5xdWVyeVJlc3VsdHNPdmVybGF5LmFkZEZlYXR1cmUoXG4gICAgICAgICAgICAgIHJlc3VsdC5lbnRpdHkuZGF0YSBhcyBGZWF0dXJlLFxuICAgICAgICAgICAgICBGZWF0dXJlTW90aW9uLk5vbmVcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBpZiAodGhpcy5oYXNGZWF0dXJlRW1waGFzaXNPblNlbGVjdGlvbikge1xuICAgICAgICAgICAgICB0aGlzLmJ1aWxkUmVzdWx0RW1waGFzaXMoXG4gICAgICAgICAgICAgICAgcmVzdWx0LmVudGl0eSBhcyBTZWFyY2hSZXN1bHQ8RmVhdHVyZT4sXG4gICAgICAgICAgICAgICAgJ3Nob3duJ1xuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgKTtcblxuICAgIHRoaXMuZGVib3VuY2VkRW1wdHkkJCA9IHRoaXMuc3RvcmUuc3RhdGVWaWV3LmVtcHR5JFxuICAgICAgLnBpcGUoZGVib3VuY2VUaW1lKDE1MDApKVxuICAgICAgLnN1YnNjcmliZSgoZW1wdHkpID0+IHRoaXMuZGVib3VuY2VkRW1wdHkkLm5leHQoZW1wdHkpKTtcbiAgfVxuXG4gIHByaXZhdGUgbW9uaXRvclJlc3VsdE91dE9mVmlldygpIHtcbiAgICB0aGlzLmlzU2VsZWN0ZWRSZXN1bHRPdXRPZlZpZXckJCA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgdGhpcy5tYXAudmlld0NvbnRyb2xsZXIuc3RhdGUkLFxuICAgICAgdGhpcy5zZWFyY2hTdGF0ZS5zZWxlY3RlZFJlc3VsdCRcbiAgICBdKVxuICAgICAgLnBpcGUoZGVib3VuY2VUaW1lKDEwMCkpXG4gICAgICAuc3Vic2NyaWJlKChidW5jaCkgPT4ge1xuICAgICAgICBjb25zdCBzZWxlY3RlZFJlc3VsdCA9IGJ1bmNoWzFdIGFzIFNlYXJjaFJlc3VsdDxGZWF0dXJlPjtcbiAgICAgICAgaWYgKCFzZWxlY3RlZFJlc3VsdCkge1xuICAgICAgICAgIHRoaXMuaXNTZWxlY3RlZFJlc3VsdE91dE9mVmlldyQubmV4dChmYWxzZSk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChzZWxlY3RlZFJlc3VsdC5kYXRhLmdlb21ldHJ5KSB7XG4gICAgICAgICAgY29uc3Qgc2VsZWN0ZWRPbEZlYXR1cmUgPSBmZWF0dXJlVG9PbChcbiAgICAgICAgICAgIHNlbGVjdGVkUmVzdWx0LmRhdGEsXG4gICAgICAgICAgICB0aGlzLm1hcC5wcm9qZWN0aW9uXG4gICAgICAgICAgKTtcbiAgICAgICAgICBjb25zdCBzZWxlY3RlZE9sRmVhdHVyZUV4dGVudCA9IGNvbXB1dGVPbEZlYXR1cmVzRXh0ZW50KFxuICAgICAgICAgICAgW3NlbGVjdGVkT2xGZWF0dXJlXSxcbiAgICAgICAgICAgIHRoaXMubWFwLnZpZXdDb250cm9sbGVyLmdldE9sUHJvamVjdGlvbigpXG4gICAgICAgICAgKTtcbiAgICAgICAgICB0aGlzLmlzU2VsZWN0ZWRSZXN1bHRPdXRPZlZpZXckLm5leHQoXG4gICAgICAgICAgICBmZWF0dXJlc0FyZU91dE9mVmlldyh0aGlzLm1hcC5nZXRFeHRlbnQoKSwgc2VsZWN0ZWRPbEZlYXR1cmVFeHRlbnQpXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGJ1aWxkUmVzdWx0RW1waGFzaXMoXG4gICAgcmVzdWx0OiBTZWFyY2hSZXN1bHQ8RmVhdHVyZT4sXG4gICAgdHJpZ2dlcjogJ3NlbGVjdGVkJyB8ICdmb2N1c2VkJyB8ICdzaG93bicgfCB1bmRlZmluZWRcbiAgKSB7XG4gICAgaWYgKHRyaWdnZXIgIT09ICdzaG93bicpIHtcbiAgICAgIHRoaXMuY2xlYXJGZWF0dXJlRW1waGFzaXModHJpZ2dlcik7XG4gICAgfVxuICAgIGlmICghcmVzdWx0IHx8ICFyZXN1bHQuZGF0YS5nZW9tZXRyeSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBteU9sRmVhdHVyZSA9IGZlYXR1cmVUb09sKHJlc3VsdC5kYXRhLCB0aGlzLm1hcC5wcm9qZWN0aW9uKTtcbiAgICBjb25zdCBvbEdlb21ldHJ5ID0gbXlPbEZlYXR1cmUuZ2V0R2VvbWV0cnkoKTtcbiAgICBpZiAoXG4gICAgICBmZWF0dXJlc0FyZVRvb0RlZXBJblZpZXcoXG4gICAgICAgIHRoaXMubWFwLnZpZXdDb250cm9sbGVyLFxuICAgICAgICBvbEdlb21ldHJ5LmdldEV4dGVudCgpIGFzIFtudW1iZXIsIG51bWJlciwgbnVtYmVyLCBudW1iZXJdLFxuICAgICAgICAwLjAwMjVcbiAgICAgIClcbiAgICApIHtcbiAgICAgIGNvbnN0IGV4dGVudCA9IG9sR2VvbWV0cnkuZ2V0RXh0ZW50KCk7XG4gICAgICBjb25zdCB4ID0gZXh0ZW50WzBdICsgKGV4dGVudFsyXSAtIGV4dGVudFswXSkgLyAyO1xuICAgICAgY29uc3QgeSA9IGV4dGVudFsxXSArIChleHRlbnRbM10gLSBleHRlbnRbMV0pIC8gMjtcbiAgICAgIGNvbnN0IGZlYXR1cmUxID0gbmV3IG9sRmVhdHVyZSh7XG4gICAgICAgIG5hbWU6IGAke3RyaWdnZXJ9QWJzdHJhY3RSZXN1bHQnYCxcbiAgICAgICAgZ2VvbWV0cnk6IG5ldyBvbFBvaW50KFt4LCB5XSlcbiAgICAgIH0pO1xuICAgICAgY29uc3QgYWJzdHJhY3RSZXN1bHQgPSBmZWF0dXJlRnJvbU9sKGZlYXR1cmUxLCB0aGlzLm1hcC5wcm9qZWN0aW9uKTtcblxuICAgICAgbGV0IGNvbXB1dGVkU3R5bGU7XG4gICAgICBsZXQgekluZGV4T2Zmc2V0ID0gMDtcblxuICAgICAgc3dpdGNoICh0cmlnZ2VyKSB7XG4gICAgICAgIGNhc2UgJ2ZvY3VzZWQnOlxuICAgICAgICAgIGNvbXB1dGVkU3R5bGUgPSBnZXRDb21tb25WZWN0b3JTZWxlY3RlZFN0eWxlKFxuICAgICAgICAgICAgT2JqZWN0LmFzc2lnbihcbiAgICAgICAgICAgICAge30sXG4gICAgICAgICAgICAgIHsgZmVhdHVyZTogYWJzdHJhY3RSZXN1bHQgfSxcbiAgICAgICAgICAgICAgdGhpcy5zZWFyY2hTdGF0ZS5zZWFyY2hPdmVybGF5U3R5bGVGb2N1cyxcbiAgICAgICAgICAgICAgcmVzdWx0LnN0eWxlPy5mb2N1cyA/IHJlc3VsdC5zdHlsZS5mb2N1cyA6IHt9XG4gICAgICAgICAgICApXG4gICAgICAgICAgKTtcbiAgICAgICAgICB6SW5kZXhPZmZzZXQgPSAyO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdzaG93bic6XG4gICAgICAgICAgY29tcHV0ZWRTdHlsZSA9IGdldENvbW1vblZlY3RvclN0eWxlKFxuICAgICAgICAgICAgT2JqZWN0LmFzc2lnbihcbiAgICAgICAgICAgICAge30sXG4gICAgICAgICAgICAgIHsgZmVhdHVyZTogYWJzdHJhY3RSZXN1bHQgfSxcbiAgICAgICAgICAgICAgdGhpcy5zZWFyY2hTdGF0ZS5zZWFyY2hPdmVybGF5U3R5bGUsXG4gICAgICAgICAgICAgIHJlc3VsdC5zdHlsZT8uYmFzZSA/IHJlc3VsdC5zdHlsZS5iYXNlIDoge31cbiAgICAgICAgICAgIClcbiAgICAgICAgICApO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdzZWxlY3RlZCc6XG4gICAgICAgICAgY29tcHV0ZWRTdHlsZSA9IGdldENvbW1vblZlY3RvclNlbGVjdGVkU3R5bGUoXG4gICAgICAgICAgICBPYmplY3QuYXNzaWduKFxuICAgICAgICAgICAgICB7fSxcbiAgICAgICAgICAgICAgeyBmZWF0dXJlOiBhYnN0cmFjdFJlc3VsdCB9LFxuICAgICAgICAgICAgICB0aGlzLnNlYXJjaFN0YXRlLnNlYXJjaE92ZXJsYXlTdHlsZVNlbGVjdGlvbixcbiAgICAgICAgICAgICAgcmVzdWx0LnN0eWxlPy5zZWxlY3Rpb24gPyByZXN1bHQuc3R5bGUuc2VsZWN0aW9uIDoge31cbiAgICAgICAgICAgIClcbiAgICAgICAgICApO1xuICAgICAgICAgIHpJbmRleE9mZnNldCA9IDE7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBhYnN0cmFjdFJlc3VsdC5tZXRhLnN0eWxlID0gY29tcHV0ZWRTdHlsZTtcbiAgICAgIGFic3RyYWN0UmVzdWx0Lm1ldGEuc3R5bGUuc2V0WkluZGV4KDIwMDAgKyB6SW5kZXhPZmZzZXQpO1xuICAgICAgdGhpcy5tYXAuc2VhcmNoUmVzdWx0c092ZXJsYXkuYWRkRmVhdHVyZShcbiAgICAgICAgYWJzdHJhY3RSZXN1bHQsXG4gICAgICAgIHRoaXMuc2VhcmNoU3RhdGUuZmVhdHVyZU1vdGlvbi5mb2N1c1xuICAgICAgKTtcbiAgICAgIGlmICh0cmlnZ2VyID09PSAnZm9jdXNlZCcpIHtcbiAgICAgICAgdGhpcy5hYnN0cmFjdEZvY3VzZWRSZXN1bHQgPSBhYnN0cmFjdFJlc3VsdDtcbiAgICAgIH1cbiAgICAgIGlmICh0cmlnZ2VyID09PSAnc2VsZWN0ZWQnKSB7XG4gICAgICAgIHRoaXMuYWJzdHJhY3RTZWxlY3RlZFJlc3VsdCA9IGFic3RyYWN0UmVzdWx0O1xuICAgICAgfVxuICAgICAgaWYgKHRyaWdnZXIgPT09ICdzaG93bicpIHtcbiAgICAgICAgdGhpcy5zaG93blJlc3VsdHNFbXBoYXNpc0dlb21ldHJpZXMucHVzaChhYnN0cmFjdFJlc3VsdCk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY2xlYXJGZWF0dXJlRW1waGFzaXModHJpZ2dlcik7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBjbGVhckZlYXR1cmVFbXBoYXNpcyh0cmlnZ2VyOiAnc2VsZWN0ZWQnIHwgJ2ZvY3VzZWQnIHwgJ3Nob3duJykge1xuICAgIGlmICh0cmlnZ2VyID09PSAnZm9jdXNlZCcgJiYgdGhpcy5hYnN0cmFjdEZvY3VzZWRSZXN1bHQpIHtcbiAgICAgIHRoaXMubWFwLnNlYXJjaFJlc3VsdHNPdmVybGF5LnJlbW92ZUZlYXR1cmUodGhpcy5hYnN0cmFjdEZvY3VzZWRSZXN1bHQpO1xuICAgICAgdGhpcy5hYnN0cmFjdEZvY3VzZWRSZXN1bHQgPSB1bmRlZmluZWQ7XG4gICAgfVxuICAgIGlmICh0cmlnZ2VyID09PSAnc2VsZWN0ZWQnICYmIHRoaXMuYWJzdHJhY3RTZWxlY3RlZFJlc3VsdCkge1xuICAgICAgdGhpcy5tYXAuc2VhcmNoUmVzdWx0c092ZXJsYXkucmVtb3ZlRmVhdHVyZSh0aGlzLmFic3RyYWN0U2VsZWN0ZWRSZXN1bHQpO1xuICAgICAgdGhpcy5hYnN0cmFjdFNlbGVjdGVkUmVzdWx0ID0gdW5kZWZpbmVkO1xuICAgIH1cbiAgICBpZiAodHJpZ2dlciA9PT0gJ3Nob3duJykge1xuICAgICAgdGhpcy5zaG93blJlc3VsdHNFbXBoYXNpc0dlb21ldHJpZXMubWFwKChzaG93blJlc3VsdCkgPT5cbiAgICAgICAgdGhpcy5tYXAuc2VhcmNoUmVzdWx0c092ZXJsYXkucmVtb3ZlRmVhdHVyZShzaG93blJlc3VsdClcbiAgICAgICk7XG4gICAgICB0aGlzLnNob3duUmVzdWx0c0VtcGhhc2lzR2VvbWV0cmllcyA9IFtdO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMudG9wUGFuZWxTdGF0ZSQkLnVuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy5zZWFyY2hUZXJtJCQudW5zdWJzY3JpYmUoKTtcbiAgICBpZiAodGhpcy5pc1NlbGVjdGVkUmVzdWx0T3V0T2ZWaWV3JCQpIHtcbiAgICAgIHRoaXMuaXNTZWxlY3RlZFJlc3VsdE91dE9mVmlldyQkLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICAgIGlmICh0aGlzLnNob3dSZXN1bHRzR2VvbWV0cmllcyQkKSB7XG4gICAgICB0aGlzLnNob3dSZXN1bHRzR2VvbWV0cmllcyQkLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICAgIGlmICh0aGlzLmdldFJvdXRlJCQpIHtcbiAgICAgIHRoaXMuZ2V0Um91dGUkJC51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgICBpZiAodGhpcy5kZWJvdW5jZWRFbXB0eSQkKSB7XG4gICAgICB0aGlzLmRlYm91bmNlZEVtcHR5JCQudW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVHJ5IHRvIGFkZCBhIGZlYXR1cmUgdG8gdGhlIG1hcCB3aGVuIGl0J3MgYmVpbmcgZm9jdXNlZFxuICAgKiBAaW50ZXJuYWxcbiAgICogQHBhcmFtIHJlc3VsdCBBIHNlYXJjaCByZXN1bHQgdGhhdCBjb3VsZCBiZSBhIGZlYXR1cmVcbiAgICovXG4gIG9uUmVzdWx0Rm9jdXMocmVzdWx0OiBTZWFyY2hSZXN1bHQpIHtcbiAgICB0aGlzLmZvY3VzZWRSZXN1bHQkLm5leHQocmVzdWx0KTtcbiAgICBpZiAocmVzdWx0Lm1ldGEuZGF0YVR5cGUgPT09IEZFQVRVUkUgJiYgcmVzdWx0LmRhdGEuZ2VvbWV0cnkpIHtcbiAgICAgIHJlc3VsdC5kYXRhLm1ldGEuc3R5bGUgPSBnZXRDb21tb25WZWN0b3JTZWxlY3RlZFN0eWxlKFxuICAgICAgICBPYmplY3QuYXNzaWduKFxuICAgICAgICAgIHt9LFxuICAgICAgICAgIHsgZmVhdHVyZTogcmVzdWx0LmRhdGEgYXMgRmVhdHVyZSB8IG9sRmVhdHVyZTxPbEdlb21ldHJ5PiB9LFxuICAgICAgICAgIHRoaXMuc2VhcmNoU3RhdGUuc2VhcmNoT3ZlcmxheVN0eWxlRm9jdXMsXG4gICAgICAgICAgcmVzdWx0LnN0eWxlPy5mb2N1cyA/IHJlc3VsdC5zdHlsZS5mb2N1cyA6IHt9XG4gICAgICAgIClcbiAgICAgICk7XG5cbiAgICAgIGNvbnN0IGZlYXR1cmUgPVxuICAgICAgICB0aGlzLm1hcC5zZWFyY2hSZXN1bHRzT3ZlcmxheS5kYXRhU291cmNlLm9sLmdldEZlYXR1cmVCeUlkKFxuICAgICAgICAgIHJlc3VsdC5tZXRhLmlkXG4gICAgICAgICk7XG4gICAgICBpZiAoZmVhdHVyZSkge1xuICAgICAgICBmZWF0dXJlLnNldFN0eWxlKHJlc3VsdC5kYXRhLm1ldGEuc3R5bGUpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICB0aGlzLm1hcC5zZWFyY2hSZXN1bHRzT3ZlcmxheS5hZGRGZWF0dXJlKFxuICAgICAgICByZXN1bHQuZGF0YSBhcyBGZWF0dXJlLFxuICAgICAgICB0aGlzLnNlYXJjaFN0YXRlLmZlYXR1cmVNb3Rpb24uZm9jdXNcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgb25SZXN1bHRVbmZvY3VzKHJlc3VsdDogU2VhcmNoUmVzdWx0KSB7XG4gICAgdGhpcy5mb2N1c2VkUmVzdWx0JC5uZXh0KHVuZGVmaW5lZCk7XG4gICAgaWYgKHJlc3VsdC5tZXRhLmRhdGFUeXBlICE9PSBGRUFUVVJFKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuc3RvcmUuc3RhdGUuZ2V0KHJlc3VsdCkuc2VsZWN0ZWQgPT09IHRydWUpIHtcbiAgICAgIGNvbnN0IGZlYXR1cmUgPVxuICAgICAgICB0aGlzLm1hcC5zZWFyY2hSZXN1bHRzT3ZlcmxheS5kYXRhU291cmNlLm9sLmdldEZlYXR1cmVCeUlkKFxuICAgICAgICAgIHJlc3VsdC5tZXRhLmlkXG4gICAgICAgICk7XG4gICAgICBpZiAoZmVhdHVyZSkge1xuICAgICAgICBjb25zdCBzdHlsZSA9IGdldENvbW1vblZlY3RvclNlbGVjdGVkU3R5bGUoXG4gICAgICAgICAgT2JqZWN0LmFzc2lnbihcbiAgICAgICAgICAgIHt9LFxuICAgICAgICAgICAgeyBmZWF0dXJlOiByZXN1bHQuZGF0YSBhcyBGZWF0dXJlIHwgb2xGZWF0dXJlPE9sR2VvbWV0cnk+IH0sXG4gICAgICAgICAgICB0aGlzLnNlYXJjaFN0YXRlLnNlYXJjaE92ZXJsYXlTdHlsZUZvY3VzLFxuICAgICAgICAgICAgcmVzdWx0LnN0eWxlPy5mb2N1cyA/IHJlc3VsdC5zdHlsZS5mb2N1cyA6IHt9XG4gICAgICAgICAgKVxuICAgICAgICApO1xuICAgICAgICBmZWF0dXJlLnNldFN0eWxlKHN0eWxlKTtcbiAgICAgIH1cbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5tYXAuc2VhcmNoUmVzdWx0c092ZXJsYXkucmVtb3ZlRmVhdHVyZShyZXN1bHQuZGF0YSBhcyBGZWF0dXJlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUcnkgdG8gYWRkIGEgZmVhdHVyZSB0byB0aGUgbWFwIHdoZW4gaXQncyBiZWluZyBzZWxlY3RlZFxuICAgKiBAaW50ZXJuYWxcbiAgICogQHBhcmFtIHJlc3VsdCBBIHNlYXJjaCByZXN1bHQgdGhhdCBjb3VsZCBiZSBhIGZlYXR1cmUgb3Igc29tZSBsYXllciBvcHRpb25zXG4gICAqL1xuICBvblJlc3VsdFNlbGVjdChyZXN1bHQ6IFNlYXJjaFJlc3VsdCkge1xuICAgIHRoaXMubWFwLnNlYXJjaFJlc3VsdHNPdmVybGF5LmRhdGFTb3VyY2Uub2wuY2xlYXIoKTtcbiAgICB0aGlzLnRyeUFkZEZlYXR1cmVUb01hcChyZXN1bHQsIHRoaXMuc2VhcmNoU3RhdGUuZmVhdHVyZU1vdGlvbi5zZWxlY3RlZCk7XG4gICAgdGhpcy5zZWFyY2hTdGF0ZS5zZXRTZWxlY3RlZFJlc3VsdChyZXN1bHQpO1xuXG4gICAgaWYgKHRoaXMudG9wUGFuZWxTdGF0ZSA9PT0gJ2luaXRpYWwnKSB7XG4gICAgICBpZiAodGhpcy50b3BQYW5lbFN0YXRlRGVmYXVsdCAhPT0gJ2NvbGxhcHNlZCcpIHtcbiAgICAgICAgdGhpcy50b3BQYW5lbFN0YXRlID0gJ2V4cGFuZGVkJztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMudG9wUGFuZWxTdGF0ZSA9ICdjb2xsYXBzZWQnO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh0aGlzLnRvcFBhbmVsU3RhdGUgPT09ICdleHBhbmRlZCcpIHtcbiAgICAgIGNvbnN0IGlnb0xpc3QgPSB0aGlzLmNvbXB1dGVFbGVtZW50UmVmKClbMF07XG4gICAgICBjb25zdCBzZWxlY3RlZCA9IHRoaXMuY29tcHV0ZUVsZW1lbnRSZWYoKVsxXTtcbiAgICAgIGlmICghdGhpcy5pc1Njcm9sbGVkSW50b1ZpZXcoaWdvTGlzdCwgc2VsZWN0ZWQpKSB7XG4gICAgICAgIHRoaXMuYWRqdXN0VG9wUGFuZWwoaWdvTGlzdCwgc2VsZWN0ZWQpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIG9uU2VhcmNoKGV2ZW50OiB7IHJlc2VhcmNoOiBSZXNlYXJjaDsgcmVzdWx0czogU2VhcmNoUmVzdWx0W10gfSkge1xuICAgIGNvbnN0IHJlc3VsdHMgPSBldmVudC5yZXN1bHRzO1xuICAgIGNvbnN0IG5ld1Jlc3VsdHMgPSB0aGlzLnN0b3JlLmVudGl0aWVzJC52YWx1ZVxuICAgICAgLmZpbHRlcigocmVzdWx0OiBTZWFyY2hSZXN1bHQpID0+IHJlc3VsdC5zb3VyY2UgIT09IGV2ZW50LnJlc2VhcmNoLnNvdXJjZSlcbiAgICAgIC5jb25jYXQocmVzdWx0cyk7XG5cbiAgICB0aGlzLnN0b3JlLmxvYWQobmV3UmVzdWx0cyk7XG5cbiAgICBmb3IgKGNvbnN0IHJlcyBvZiB0aGlzLnN0b3JlLmFsbCgpKSB7XG4gICAgICBpZiAoXG4gICAgICAgIHRoaXMuc3RvcmUuc3RhdGUuZ2V0KHJlcykuZm9jdXNlZCA9PT0gdHJ1ZSAmJlxuICAgICAgICB0aGlzLnN0b3JlLnN0YXRlLmdldChyZXMpLnNlbGVjdGVkICE9PSB0cnVlXG4gICAgICApIHtcbiAgICAgICAgdGhpcy5zdG9yZS5zdGF0ZS51cGRhdGUocmVzLCB7IGZvY3VzZWQ6IGZhbHNlIH0sIHRydWUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgY29uc3QgaWdvTGlzdCA9IHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCdpZ28tbGlzdCcpO1xuICAgICAgbGV0IG1vcmVSZXN1bHRzO1xuICAgICAgZXZlbnQucmVzZWFyY2gucmVxdWVzdC5zdWJzY3JpYmUoKHNvdXJjZSkgPT4ge1xuICAgICAgICBpZiAoIXNvdXJjZVswXSB8fCAhc291cmNlWzBdLnNvdXJjZSkge1xuICAgICAgICAgIG1vcmVSZXN1bHRzID0gbnVsbDtcbiAgICAgICAgfSBlbHNlIGlmIChzb3VyY2VbMF0uc291cmNlLmdldElkKCkgPT09ICdpY2hlcmNoZScpIHtcbiAgICAgICAgICBtb3JlUmVzdWx0cyA9IGlnb0xpc3QucXVlcnlTZWxlY3RvcignLmljaGVyY2hlIC5tb3JlUmVzdWx0cycpO1xuICAgICAgICB9IGVsc2UgaWYgKHNvdXJjZVswXS5zb3VyY2UuZ2V0SWQoKSA9PT0gJ2lsYXllcicpIHtcbiAgICAgICAgICBtb3JlUmVzdWx0cyA9IGlnb0xpc3QucXVlcnlTZWxlY3RvcignLmlsYXllciAubW9yZVJlc3VsdHMnKTtcbiAgICAgICAgfSBlbHNlIGlmIChzb3VyY2VbMF0uc291cmNlLmdldElkKCkgPT09ICdub21pbmF0aW0nKSB7XG4gICAgICAgICAgbW9yZVJlc3VsdHMgPSBpZ29MaXN0LnF1ZXJ5U2VsZWN0b3IoJy5ub21pbmF0aW0gLm1vcmVSZXN1bHRzJyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgbW9yZVJlc3VsdHMgPSBpZ29MaXN0LnF1ZXJ5U2VsZWN0b3IoXG4gICAgICAgICAgICAnLicgKyBzb3VyY2VbMF0uc291cmNlLmdldElkKCkgKyAnIC5tb3JlUmVzdWx0cydcbiAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKFxuICAgICAgICAgIG1vcmVSZXN1bHRzICE9PSBudWxsICYmXG4gICAgICAgICAgIXRoaXMuaXNTY3JvbGxlZEludG9WaWV3KGlnb0xpc3QsIG1vcmVSZXN1bHRzKVxuICAgICAgICApIHtcbiAgICAgICAgICBpZ29MaXN0LnNjcm9sbFRvcCA9XG4gICAgICAgICAgICBtb3JlUmVzdWx0cy5vZmZzZXRUb3AgK1xuICAgICAgICAgICAgbW9yZVJlc3VsdHMub2Zmc2V0SGVpZ2h0IC1cbiAgICAgICAgICAgIGlnb0xpc3QuY2xpZW50SGVpZ2h0O1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9LCAyNTApO1xuICB9XG5cbiAgY29tcHV0ZUVsZW1lbnRSZWYoKSB7XG4gICAgY29uc3QgaXRlbXMgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnaWdvLXNlYXJjaC1yZXN1bHRzLWl0ZW0nKTtcbiAgICBjb25zdCBpZ29MaXN0ID1cbiAgICAgIHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnaWdvLWxpc3QnKVswXTtcbiAgICBsZXQgc2VsZWN0ZWRJdGVtO1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZVxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgaXRlbXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmIChpdGVtc1tpXS5jbGFzc05hbWUuaW5jbHVkZXMoJ2lnby1saXN0LWl0ZW0tc2VsZWN0ZWQnKSkge1xuICAgICAgICBzZWxlY3RlZEl0ZW0gPSBpdGVtc1tpXTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIFtpZ29MaXN0LCBzZWxlY3RlZEl0ZW1dO1xuICB9XG5cbiAgYWRqdXN0VG9wUGFuZWwoZWxlbVNvdXJjZSwgZWxlbSkge1xuICAgIGlmICghdGhpcy5pc1Njcm9sbGVkSW50b1ZpZXcoZWxlbVNvdXJjZSwgZWxlbSkpIHtcbiAgICAgIGVsZW1Tb3VyY2Uuc2Nyb2xsVG9wID1cbiAgICAgICAgZWxlbS5vZmZzZXRUb3AgK1xuICAgICAgICBlbGVtLmNoaWxkcmVuWzBdLm9mZnNldEhlaWdodCAtXG4gICAgICAgIGVsZW1Tb3VyY2UuY2xpZW50SGVpZ2h0O1xuICAgIH1cbiAgfVxuXG4gIHRvZ2dsZVRvcFBhbmVsKGV2ZW50PzogTW91c2VFdmVudCkge1xuICAgIGlmIChldmVudCAmJiAoZXZlbnQudGFyZ2V0IGFzIGFueSk/LmNsYXNzTmFtZSAhPT0gJ2lnby1wYW5lbC10aXRsZScpIHtcbiAgICAgIHJldHVybjtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHRoaXMudG9wUGFuZWxTdGF0ZSA9PT0gJ2V4cGFuZGVkJykge1xuICAgICAgICB0aGlzLnRvcFBhbmVsU3RhdGUgPSAnY29sbGFwc2VkJztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMudG9wUGFuZWxTdGF0ZSA9ICdleHBhbmRlZCc7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgem9vbVRvRmVhdHVyZUV4dGVudCgpIHtcbiAgICBpZiAodGhpcy5mZWF0dXJlLmdlb21ldHJ5KSB7XG4gICAgICBjb25zdCBsb2NhbE9sRmVhdHVyZSA9IHRoaXMuZm9ybWF0LnJlYWRGZWF0dXJlKHRoaXMuZmVhdHVyZSwge1xuICAgICAgICBkYXRhUHJvamVjdGlvbjogdGhpcy5mZWF0dXJlLnByb2plY3Rpb24sXG4gICAgICAgIGZlYXR1cmVQcm9qZWN0aW9uOiB0aGlzLm1hcC5wcm9qZWN0aW9uQ29kZVxuICAgICAgfSk7XG4gICAgICBtb3ZlVG9PbEZlYXR1cmVzKFxuICAgICAgICB0aGlzLm1hcC52aWV3Q29udHJvbGxlcixcbiAgICAgICAgW2xvY2FsT2xGZWF0dXJlXSxcbiAgICAgICAgRmVhdHVyZU1vdGlvbi5ab29tXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBUcnkgdG8gYWRkIGEgZmVhdHVyZSB0byB0aGUgbWFwIG92ZXJsYXlcbiAgICogQHBhcmFtIHJlc3VsdCBBIHNlYXJjaCByZXN1bHQgdGhhdCBjb3VsZCBiZSBhIGZlYXR1cmVcbiAgICogQHBhcmFtIG1vdGlvbiBBIEZlYXR1cmVNb3Rpb24gdG8gdHJpZ2dlciB3aGVuIGFkZGluZyB0aGUgc2VhcmNocmVzdWx0IHRvIHRoZSBtYXAgc2VhcmNoIG92ZXJsYXlcbiAgICovXG4gIHByaXZhdGUgdHJ5QWRkRmVhdHVyZVRvTWFwKFxuICAgIHJlc3VsdDogU2VhcmNoUmVzdWx0LFxuICAgIG1vdGlvbjogRmVhdHVyZU1vdGlvbiA9IEZlYXR1cmVNb3Rpb24uRGVmYXVsdFxuICApIHtcbiAgICBpZiAocmVzdWx0Lm1ldGEuZGF0YVR5cGUgIT09IEZFQVRVUkUpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICAgIGNvbnN0IGZlYXR1cmUgPSAocmVzdWx0IGFzIFNlYXJjaFJlc3VsdDxGZWF0dXJlPikuZGF0YTtcblxuICAgIC8vIFNvbWV0aGltZXMgZmVhdHVyZXMgaGF2ZSBubyBnZW9tZXRyeS4gSXQgaGFwcGVucyB3aXRoIHNvbWUgR2V0RmVhdHVyZUluZm9cbiAgICBpZiAoIWZlYXR1cmUuZ2VvbWV0cnkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBmZWF0dXJlLm1ldGEuc3R5bGUgPSBnZXRDb21tb25WZWN0b3JTZWxlY3RlZFN0eWxlKFxuICAgICAgT2JqZWN0LmFzc2lnbihcbiAgICAgICAge30sXG4gICAgICAgIHsgZmVhdHVyZSB9LFxuICAgICAgICB0aGlzLnNlYXJjaFN0YXRlLnNlYXJjaE92ZXJsYXlTdHlsZVNlbGVjdGlvbixcbiAgICAgICAgcmVzdWx0LnN0eWxlPy5zZWxlY3Rpb24gPyByZXN1bHQuc3R5bGUuc2VsZWN0aW9uIDoge31cbiAgICAgIClcbiAgICApO1xuXG4gICAgdGhpcy5tYXAuc2VhcmNoUmVzdWx0c092ZXJsYXkuYWRkRmVhdHVyZShmZWF0dXJlLCBtb3Rpb24pO1xuICB9XG5cbiAgaXNTY3JvbGxlZEludG9WaWV3KGVsZW1Tb3VyY2UsIGVsZW0pIHtcbiAgICBjb25zdCBwYWRkaW5nID0gNjtcbiAgICBjb25zdCBkb2NWaWV3VG9wID0gZWxlbVNvdXJjZS5zY3JvbGxUb3A7XG4gICAgY29uc3QgZG9jVmlld0JvdHRvbSA9IGRvY1ZpZXdUb3AgKyBlbGVtU291cmNlLmNsaWVudEhlaWdodDtcblxuICAgIGNvbnN0IGVsZW1Ub3AgPSBlbGVtLm9mZnNldFRvcDtcbiAgICBjb25zdCBlbGVtQm90dG9tID0gZWxlbVRvcCArIGVsZW0uY2xpZW50SGVpZ2h0ICsgcGFkZGluZztcbiAgICByZXR1cm4gZWxlbUJvdHRvbSA8PSBkb2NWaWV3Qm90dG9tICYmIGVsZW1Ub3AgPj0gZG9jVmlld1RvcDtcbiAgfVxuXG4gIGdldFJvdXRlKCkge1xuICAgIHRoaXMudG9vbFN0YXRlLnRvb2xib3guYWN0aXZhdGVUb29sKCdkaXJlY3Rpb25zJyk7XG4gICAgdGhpcy5kaXJlY3Rpb25TdGF0ZS5zdG9wc1N0b3JlLmNsZWFyU3RvcHMoKTtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGxldCByb3V0aW5nQ29vcmRMb2FkZWQgPSBmYWxzZTtcbiAgICAgIGlmICh0aGlzLmdldFJvdXRlJCQpIHtcbiAgICAgICAgdGhpcy5nZXRSb3V0ZSQkLnVuc3Vic2NyaWJlKCk7XG4gICAgICB9XG4gICAgICB0aGlzLmdldFJvdXRlJCQgPVxuICAgICAgICB0aGlzLmRpcmVjdGlvblN0YXRlLnN0b3BzU3RvcmUuc3RvcmVJbml0aWFsaXplZCQuc3Vic2NyaWJlKFxuICAgICAgICAgIChpbml0OiBib29sZWFuKSA9PiB7XG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgIHRoaXMuZGlyZWN0aW9uU3RhdGUuc3RvcHNTdG9yZS5zdG9yZUluaXRpYWxpemVkJC52YWx1ZSAmJlxuICAgICAgICAgICAgICAhcm91dGluZ0Nvb3JkTG9hZGVkXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgcm91dGluZ0Nvb3JkTG9hZGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgY29uc3Qgc3RvcCA9IHRoaXMuZGlyZWN0aW9uU3RhdGUuc3RvcHNTdG9yZVxuICAgICAgICAgICAgICAgIC5hbGwoKVxuICAgICAgICAgICAgICAgIC5maW5kKChlKSA9PiBlLnBvc2l0aW9uID09PSAxKTtcbiAgICAgICAgICAgICAgbGV0IGNvb3JkO1xuICAgICAgICAgICAgICBpZiAodGhpcy5mZWF0dXJlLmdlb21ldHJ5KSB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuZmVhdHVyZS5nZW9tZXRyeS50eXBlID09PSAnUG9pbnQnKSB7XG4gICAgICAgICAgICAgICAgICBjb29yZCA9IFtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mZWF0dXJlLmdlb21ldHJ5LmNvb3JkaW5hdGVzWzBdLFxuICAgICAgICAgICAgICAgICAgICB0aGlzLmZlYXR1cmUuZ2VvbWV0cnkuY29vcmRpbmF0ZXNbMV1cbiAgICAgICAgICAgICAgICAgIF07XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IHBvaW50ID0gcG9pbnRPbkZlYXR1cmUodGhpcy5mZWF0dXJlLmdlb21ldHJ5KTtcbiAgICAgICAgICAgICAgICAgIGNvb3JkID0gW1xuICAgICAgICAgICAgICAgICAgICBwb2ludC5nZW9tZXRyeS5jb29yZGluYXRlc1swXSxcbiAgICAgICAgICAgICAgICAgICAgcG9pbnQuZ2VvbWV0cnkuY29vcmRpbmF0ZXNbMV1cbiAgICAgICAgICAgICAgICAgIF07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHN0b3AudGV4dCA9IHRoaXMuZmVhdHVyZVRpdGxlO1xuICAgICAgICAgICAgICBzdG9wLmNvb3JkaW5hdGVzID0gY29vcmQ7XG4gICAgICAgICAgICAgIHRoaXMuZGlyZWN0aW9uU3RhdGUuc3RvcHNTdG9yZS51cGRhdGUoc3RvcCk7XG4gICAgICAgICAgICAgIGlmICh0aGlzLm1hcC5nZW9sb2NhdGlvbkNvbnRyb2xsZXIucG9zaXRpb24kLnZhbHVlKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgY3VycmVudFBvcyA9XG4gICAgICAgICAgICAgICAgICB0aGlzLm1hcC5nZW9sb2NhdGlvbkNvbnRyb2xsZXIucG9zaXRpb24kLnZhbHVlO1xuICAgICAgICAgICAgICAgIGNvbnN0IHN0b3AgPSB0aGlzLmRpcmVjdGlvblN0YXRlLnN0b3BzU3RvcmVcbiAgICAgICAgICAgICAgICAgIC5hbGwoKVxuICAgICAgICAgICAgICAgICAgLmZpbmQoKGUpID0+IGUucG9zaXRpb24gPT09IDApO1xuICAgICAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRDb29yZCA9IG9sUHJvai50cmFuc2Zvcm0oXG4gICAgICAgICAgICAgICAgICBjdXJyZW50UG9zLnBvc2l0aW9uLFxuICAgICAgICAgICAgICAgICAgY3VycmVudFBvcy5wcm9qZWN0aW9uLFxuICAgICAgICAgICAgICAgICAgJ0VQU0c6NDMyNidcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIGNvbnN0IGNvb3JkOiBbbnVtYmVyLCBudW1iZXJdID0gcm91bmRDb29yZFRvKFxuICAgICAgICAgICAgICAgICAgW2N1cnJlbnRDb29yZFswXSwgY3VycmVudENvb3JkWzFdXSxcbiAgICAgICAgICAgICAgICAgIDZcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIHN0b3AudGV4dCA9IGNvb3JkLmpvaW4oJywnKTtcbiAgICAgICAgICAgICAgICBzdG9wLmNvb3JkaW5hdGVzID0gY29vcmQ7XG4gICAgICAgICAgICAgICAgdGhpcy5kaXJlY3Rpb25TdGF0ZS5zdG9wc1N0b3JlLnVwZGF0ZShzdG9wKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICB9LCAyNTApO1xuICB9XG59XG4iLCI8ZGl2XG4gICpuZ0lmPVwiKCFzdG9yZSB8fCBzdG9yZS5zdGF0ZVZpZXcuZW1wdHkpICYmIChkZWJvdW5jZWRFbXB0eSQgfCBhc3luYylcIlxuICBzdHlsZT1cIm1hcmdpbjogMTBweFwiXG4+XG4gIDxzZWN0aW9uIGNsYXNzPVwibWF0LXR5cG9ncmFwaHlcIj5cbiAgICA8aDQ+XG4gICAgICA8c3Ryb25nPnt7XG4gICAgICAgICdpZ28uaW50ZWdyYXRpb24uc2VhcmNoUmVzdWx0c1Rvb2wubm9SZXN1bHRzJyB8IHRyYW5zbGF0ZVxuICAgICAgfX08L3N0cm9uZz5cbiAgICA8L2g0PlxuICAgIDxwPlxuICAgICAgPHN0cm9uZz57e1xuICAgICAgICAnaWdvLmludGVncmF0aW9uLnNlYXJjaFJlc3VsdHNUb29sLmRvU2VhcmNoJyB8IHRyYW5zbGF0ZVxuICAgICAgfX08L3N0cm9uZz5cbiAgICA8L3A+XG4gICAgPGRpdlxuICAgICAgW2lubmVySFRNTF09XCJcbiAgICAgICAgJ2lnby5pbnRlZ3JhdGlvbi5zZWFyY2hSZXN1bHRzVG9vbC5leGFtcGxlcycgfCB0cmFuc2xhdGUgfCBzYW5pdGl6ZUh0bWxcbiAgICAgIFwiXG4gICAgPjwvZGl2PlxuICA8L3NlY3Rpb24+XG48L2Rpdj5cblxuPGlnby1mbGV4aWJsZVxuICAqbmdJZj1cIihkZWJvdW5jZWRFbXB0eSQgfCBhc3luYykgPT09IGZhbHNlXCJcbiAgI3RvcFBhbmVsXG4gIGluaXRpYWw9XCIxMDAlXCJcbiAgaW5pdGlhbE1vYmlsZT1cIjEwMCVcIlxuICBjb2xsYXBzZWQ9XCJjYWxjKDEwMCUgLSA1OHB4KVwiXG4gIGNvbGxhcHNlZE1vYmlsZT1cImNhbGMoMTAwJSAtIDU4cHgpXCJcbiAgZXhwYW5kZWQ9XCI2MCVcIlxuICBleHBhbmRlZE1vYmlsZT1cIjYwJVwiXG4gIFtzdGF0ZV09XCIoZmVhdHVyZSQgfCBhc3luYykgPyB0b3BQYW5lbFN0YXRlIDogJ2luaXRpYWwnXCJcbj5cbiAgPGRpdiBjbGFzcz1cImlnby1jb250ZW50XCI+XG4gICAgPGlnby1zZWFyY2gtcmVzdWx0c1xuICAgICAgW3N0b3JlXT1cInN0b3JlXCJcbiAgICAgIFtzaG93SWNvbnNdPVwic2hvd0ljb25zXCJcbiAgICAgIFt0ZXJtXT1cInRlcm1cIlxuICAgICAgW3Rlcm1TcGxpdHRlcl09XCJ0ZXJtU3BsaXR0ZXJcIlxuICAgICAgW3NldHRpbmdzQ2hhbmdlJF09XCJzZXR0aW5nc0NoYW5nZSRcIlxuICAgICAgcGxhY2Vob2xkZXI9XCJmYWxzZVwiXG4gICAgICAocmVzdWx0Rm9jdXMpPVwib25SZXN1bHRGb2N1cygkZXZlbnQpXCJcbiAgICAgIChyZXN1bHRTZWxlY3QpPVwib25SZXN1bHRTZWxlY3QoJGV2ZW50KVwiXG4gICAgICAocmVzdWx0VW5mb2N1cyk9XCJvblJlc3VsdFVuZm9jdXMoJGV2ZW50KVwiXG4gICAgICAocmVzdWx0TW91c2VlbnRlcik9XCJvblJlc3VsdEZvY3VzKCRldmVudClcIlxuICAgICAgKHJlc3VsdE1vdXNlbGVhdmUpPVwib25SZXN1bHRVbmZvY3VzKCRldmVudClcIlxuICAgICAgKG1vcmVSZXN1bHRzKT1cIm9uU2VhcmNoKCRldmVudClcIlxuICAgICAgW21hcF09XCJtYXBcIlxuICAgID5cbiAgICAgIDxuZy10ZW1wbGF0ZSAjaWdvU2VhcmNoSXRlbVRvb2xiYXIgbGV0LXJlc3VsdD1cInJlc3VsdFwiPlxuICAgICAgICA8aWdvLXNlYXJjaC1hZGQtYnV0dG9uXG4gICAgICAgICAgW21hcF09XCJtYXBcIlxuICAgICAgICAgIFtzdG9yZV09XCJzdG9yZVwiXG4gICAgICAgICAgW3N0b3Jlc109XCJzdG9yZXNcIlxuICAgICAgICAgIFtsYXllcl09XCJyZXN1bHRcIlxuICAgICAgICAgIFtzYXZlU2VhcmNoUmVzdWx0SW5MYXllcl09XCJzYXZlU2VhcmNoUmVzdWx0SW5MYXllclwiXG4gICAgICAgID5cbiAgICAgICAgPC9pZ28tc2VhcmNoLWFkZC1idXR0b24+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvaWdvLXNlYXJjaC1yZXN1bHRzPlxuICA8L2Rpdj5cblxuICA8ZGl2IGlnb0ZsZXhpYmxlRmlsbCBjbGFzcz1cImlnby1jb250ZW50XCI+XG4gICAgPGlnby1wYW5lbFxuICAgICAgW3RpdGxlXT1cImZlYXR1cmVUaXRsZVwiXG4gICAgICAqbmdJZj1cImZlYXR1cmUkIHwgYXN5bmNcIlxuICAgICAgKGNsaWNrKT1cInRvZ2dsZVRvcFBhbmVsKCRldmVudClcIlxuICAgICAgW2N1cnNvclBvaW50ZXJdPVwidHJ1ZVwiXG4gICAgPlxuICAgICAgPGJ1dHRvblxuICAgICAgICBtYXQtaWNvbi1idXR0b25cbiAgICAgICAgcGFuZWxMZWZ0QnV0dG9uXG4gICAgICAgIGNsYXNzPVwiaWdvLWljb24tYnV0dG9uXCJcbiAgICAgICAgKGNsaWNrKT1cInRvZ2dsZVRvcFBhbmVsKClcIlxuICAgICAgPlxuICAgICAgICA8bWF0LWljb24+e3tcbiAgICAgICAgICAodG9wUGFuZWxTdGF0ZSQgfCBhc3luYykgPT09ICdjb2xsYXBzZWQnXG4gICAgICAgICAgICA/ICdhcnJvd191cHdhcmQnXG4gICAgICAgICAgICA6ICdhcnJvd19kb3dud2FyZCdcbiAgICAgICAgfX08L21hdC1pY29uPlxuICAgICAgPC9idXR0b24+XG5cbiAgICAgIDxidXR0b25cbiAgICAgICAgKm5nSWY9XCJmZWF0dXJlLmdlb21ldHJ5XCJcbiAgICAgICAgbWF0LWljb24tYnV0dG9uXG4gICAgICAgIHBhbmVsUmlnaHRCdXR0b25cbiAgICAgICAgY2xhc3M9XCJpZ28taWNvbi1idXR0b25cIlxuICAgICAgICBbbWF0VG9vbHRpcF09XCJcbiAgICAgICAgICAoKGlzU2VsZWN0ZWRSZXN1bHRPdXRPZlZpZXckIHwgYXN5bmMpXG4gICAgICAgICAgICA/ICdpZ28uaW50ZWdyYXRpb24uc2VhcmNoUmVzdWx0c1Rvb2wuem9vbU9uRmVhdHVyZVRvb2x0aXBPdXRPZlZpZXcnXG4gICAgICAgICAgICA6ICdpZ28uaW50ZWdyYXRpb24uc2VhcmNoUmVzdWx0c1Rvb2wuem9vbU9uRmVhdHVyZVRvb2x0aXAnXG4gICAgICAgICAgKSB8IHRyYW5zbGF0ZVxuICAgICAgICBcIlxuICAgICAgICBtYXRUb29sdGlwU2hvd0RlbGF5PVwiNTAwXCJcbiAgICAgICAgKGNsaWNrKT1cInpvb21Ub0ZlYXR1cmVFeHRlbnQoKVwiXG4gICAgICA+XG4gICAgICAgIDxtYXQtaWNvblxuICAgICAgICAgIGFyaWEtaGlkZGVuPVwiZmFsc2VcIlxuICAgICAgICAgIFttYXRCYWRnZV09XCIoaXNTZWxlY3RlZFJlc3VsdE91dE9mVmlldyQgfCBhc3luYykgPyAnIScgOiAnJ1wiXG4gICAgICAgICAgbWF0QmFkZ2VDb2xvcj1cImFjY2VudFwiXG4gICAgICAgICAgbWF0QmFkZ2VTaXplPVwic21hbGxcIlxuICAgICAgICAgIFttYXRCYWRnZUhpZGRlbl09XCIoaXNTZWxlY3RlZFJlc3VsdE91dE9mVmlldyQgfCBhc3luYykgPT09IGZhbHNlXCJcbiAgICAgICAgICA+em9vbV9pbjwvbWF0LWljb25cbiAgICAgICAgPlxuICAgICAgPC9idXR0b24+XG5cbiAgICAgIDxpZ28tZmVhdHVyZS1kZXRhaWxzXG4gICAgICAgIGlnb0ZlYXR1cmVEZXRhaWxzRGlyZWN0aXZlXG4gICAgICAgIFtmZWF0dXJlXT1cImZlYXR1cmUkIHwgYXN5bmNcIlxuICAgICAgICBbbWFwXT1cIm1hcFwiXG4gICAgICAgIFt0b29sYm94XT1cInRvb2xTdGF0ZS50b29sYm94XCJcbiAgICAgICAgKHJvdXRpbmdFdmVudCk9XCJnZXRSb3V0ZSgpXCJcbiAgICAgID5cbiAgICAgIDwvaWdvLWZlYXR1cmUtZGV0YWlscz5cbiAgICA8L2lnby1wYW5lbD5cbiAgPC9kaXY+XG48L2lnby1mbGV4aWJsZT5cbiJdfQ==
@@ -41,7 +41,7 @@ export function getWorkspaceActions(workspace, rowsInMapExtentCheckCondition$, s
41
41
  },
42
42
  {
43
43
  id: 'clearselection',
44
- icon: 'select-off',
44
+ icon: 'deselect',
45
45
  title: 'igo.integration.workspace.clearSelection.title',
46
46
  tooltip: 'igo.integration.workspace.clearSelection.tooltip',
47
47
  handler: (ws) => {
@@ -54,7 +54,7 @@ export function getWorkspaceActions(workspace, rowsInMapExtentCheckCondition$, s
54
54
  },
55
55
  {
56
56
  id: 'featureDownload',
57
- icon: 'file-export',
57
+ icon: 'file_save',
58
58
  title: 'igo.integration.workspace.download.title',
59
59
  tooltip: 'igo.integration.workspace.download.tooltip',
60
60
  handler: (ws) => {
@@ -76,7 +76,7 @@ export function getWorkspaceActions(workspace, rowsInMapExtentCheckCondition$, s
76
76
  },
77
77
  {
78
78
  id: 'ogcFilter',
79
- icon: 'filter',
79
+ icon: 'filter_alt',
80
80
  title: 'igo.integration.workspace.ogcFilter.title',
81
81
  tooltip: 'igo.integration.workspace.ogcFilter.tooltip',
82
82
  handler: (widget, ws) => {
@@ -115,7 +115,7 @@ export function getWorkspaceActions(workspace, rowsInMapExtentCheckCondition$, s
115
115
  },
116
116
  {
117
117
  id: 'print',
118
- icon: 'printer',
118
+ icon: 'print',
119
119
  title: 'igo.integration.workspace.print.title',
120
120
  tooltip: 'igo.integration.workspace.print.tooltip',
121
121
  handler: (ws) => {
@@ -160,4 +160,4 @@ export function getWorkspaceActions(workspace, rowsInMapExtentCheckCondition$, s
160
160
  : actions.filter((action) => action.id !== 'print');
161
161
  return returnActions;
162
162
  }
163
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya3NwYWNlLnV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvaW50ZWdyYXRpb24vc3JjL2xpYi93b3Jrc3BhY2Uvc2hhcmVkL3dvcmtzcGFjZS51dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsbUNBQW1DLEVBQ25DLGtDQUFrQyxFQUVuQyxNQUFNLGNBQWMsQ0FBQztBQUl0QixPQUFPLEVBR0wsYUFBYSxFQUNiLDZCQUE2QixFQUk3Qiw4QkFBOEIsRUFDOUIsaUJBQWlCLEVBQ2xCLE1BQU0sV0FBVyxDQUFDO0FBQ25CLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFNUMsT0FBTyxLQUFLLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDL0IsT0FBTyxpQkFBaUIsQ0FBQztBQUN6QixPQUFPLEVBQW1CLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUk1QyxNQUFNLFVBQVUsY0FBYyxDQUM1QixTQUE2RCxFQUM3RCxjQUFjO0lBRWQsTUFBTSxZQUFZLEdBQUcsU0FBUyxDQUFDLFdBQVcsQ0FBQyxpQkFBaUIsQ0FDMUQsNkJBQTZCLENBQ0csQ0FBQztJQUNuQyxZQUFZLENBQUMsU0FBUyxDQUNuQixjQUFjLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBYTtRQUN6QyxDQUFDLENBQUMsYUFBYSxDQUFDLE9BQU87UUFDdkIsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQ3ZCLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxVQUFVLG1CQUFtQixDQUNqQyxTQUE2RCxFQUM3RCw4QkFBd0QsRUFDeEQseUJBQW1ELEVBQ25ELGVBQXVCLEVBQ3ZCLFNBQW1DLEVBQ25DLFNBQW1DLEVBQ25DLGNBQThCLEVBQzlCLGVBQWdDLEVBQ2hDLFlBQTBCLEVBQzFCLFNBQW9CO0lBRXBCLE1BQU0sT0FBTyxHQUFHO1FBQ2Q7WUFDRSxFQUFFLEVBQUUsVUFBVTtZ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LE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEtBQUssT0FBTyxDQUFDLENBQUM7SUFDeEQsT0FBTyxhQUFhLENBQUM7QUFDdkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFjdGlvbixcbiAgRW50aXR5U3RvcmVGaWx0ZXJDdXN0b21GdW5jU3RyYXRlZ3ksXG4gIEVudGl0eVN0b3JlRmlsdGVyU2VsZWN0aW9uU3RyYXRlZ3ksXG4gIFdpZGdldFxufSBmcm9tICdAaWdvMi9jb21tb24nO1xuaW1wb3J0IHsgTGFuZ3VhZ2VTZXJ2aWNlIH0gZnJvbSAnQGlnbzIvY29yZS9sYW5ndWFnZSc7XG5pbXBvcnQgeyBNZWRpYVNlcnZpY2UgfSBmcm9tICdAaWdvMi9jb3JlL21lZGlhJztcbmltcG9ydCB7IFN0b3JhZ2VTZXJ2aWNlIH0gZnJvbSAnQGlnbzIvY29yZS9zdG9yYWdlJztcbmltcG9ydCB7XG4gIEVkaXRpb25Xb3Jrc3BhY2UsXG4gIEV4cG9ydE9wdGlvbnMsXG4gIEZlYXR1cmVNb3Rpb24sXG4gIEZlYXR1cmVTdG9yZVNlbGVjdGlvblN0cmF0ZWd5LFxuICBGZWF0dXJlV29ya3NwYWNlLFxuICBPZ2NGaWx0ZXJhYmxlRGF0YVNvdXJjZSxcbiAgV2ZzV29ya3NwYWNlLFxuICBtYXBFeHRlbnRTdHJhdGVneUFjdGl2ZVRvb2xUaXAsXG4gIG5vRWxlbWVudFNlbGVjdGVkXG59IGZyb20gJ0BpZ28yL2dlbyc7XG5pbXBvcnQgeyBkYXRlVHJhbnNmb3JtIH0gZnJvbSAnQGlnbzIvdXRpbHMnO1xuXG5pbXBvcnQgKiBhcyBqc1BERiBmcm9tICdqc3BkZic7XG5pbXBvcnQgJ2pzcGRmLWF1dG90YWJsZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIG1hcCB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBUb29sU3RhdGUgfSBmcm9tICcuLi8uLi90b29sJztcblxuZXhwb3J0IGZ1bmN0aW9uIGhhbmRsZVpvb21BdXRvKFxuICB3b3Jrc3BhY2U6IEZlYXR1cmVXb3Jrc3BhY2UgfCBXZnNXb3Jrc3BhY2UgfCBFZGl0aW9uV29ya3NwYWNlLFxuICBzdG9yYWdlU2VydmljZVxuKSB7XG4gIGNvbnN0IHpvb21TdHJhdGVneSA9IHdvcmtzcGFjZS5lbnRpdHlTdG9yZS5nZXRTdHJhdGVneU9mVHlwZShcbiAgICBGZWF0dXJlU3RvcmVTZWxlY3Rpb25TdHJhdGVneVxuICApIGFzIEZlYXR1cmVTdG9yZVNlbGVjdGlvblN0cmF0ZWd5O1xuICB6b29tU3RyYXRlZ3kuc2V0TW90aW9uKFxuICAgIChzdG9yYWdlU2VydmljZS5nZXQoJ3pvb21BdXRvJykgYXMgYm9vbGVhbilcbiAgICAgID8gRmVhdHVyZU1vdGlvbi5EZWZhdWx0XG4gICAgICA6IEZlYXR1cmVNb3Rpb24uTm9uZVxuICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0V29ya3NwYWNlQWN0aW9ucyhcbiAgd29ya3NwYWNlOiBGZWF0dXJlV29ya3NwYWNlIHwgV2ZzV29ya3NwYWNlIHwgRWRpdGlvbldvcmtzcGFjZSxcbiAgcm93c0luTWFwRXh0ZW50Q2hlY2tDb25kaXRpb24kOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4sXG4gIHNlbGVjdE9ubHlDaGVja0NvbmRpdGlvbiQ6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPixcbiAgb2djRmlsdGVyV2lkZ2V0OiBXaWRnZXQsXG4gIHpvb21BdXRvJDogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+LFxuICBtYXhpbWl6ZSQ6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPixcbiAgc3RvcmFnZVNlcnZpY2U6IFN0b3JhZ2VTZXJ2aWNlLFxuICBsYW5ndWFnZVNlcnZpY2U6IExhbmd1YWdlU2VydmljZSxcbiAgbWVkaWFTZXJ2aWNlOiBNZWRpYVNlcnZpY2UsXG4gIHRvb2xTdGF0ZTogVG9vbFN0YXRlXG4pOiBBY3Rpb25bXSB7XG4gIGNvbnN0IGFjdGlvbnMgPSBbXG4gICAge1xuICAgICAgaWQ6ICd6b29tQXV0bycsXG4gICAgICBjaGVja2JveDogdHJ1ZSxcbiAgICAgIHRpdGxlOiAnaWdvLmludGVncmF0aW9uLndvcmtzcGFjZS56b29tQXV0by50aXRsZScsXG4gICAgICB0b29sdGlwOiAnaWdvLmludGVncmF0aW9uLndvcmtzcGFjZS56b29tQXV0by50b29sdGlwJyxcbiAgICAgIGNoZWNrQ29uZGl0aW9uOiB6b29tQXV0byQsXG4gICAgICBoYW5kbGVyOiAoKSA9PiB7XG4gICAgICAgIGhhbmRsZVpvb21BdXRvKHdvcmtzcGFjZSwgc3RvcmFnZVNlcnZpY2UpO1xuICAgICAgICBzdG9yYWdlU2VydmljZS5zZXQoXG4gICAgICAgICAgJ3pvb21BdXRvJyxcbiAgICAgICAgICAhc3RvcmFnZVNlcnZpY2UuZ2V0KCd6b29tQXV0bycpIGFzIGJvb2xlYW5cbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9LFxuICAgIHtcbiAgICAgIGlkOiAnZmlsdGVySW5NYXBFeHRlbnQnLFxuICAgICAgY2hlY2tib3g6IHRydWUsXG4gICAgICB0aXRsZTogJ2lnby5pbnRlZ3JhdGlvbi53b3Jrc3BhY2UuaW5NYXBFeHRlbnQudGl0bGUnLFxuICAgICAgdG9vbHRpcDogbWFwRXh0ZW50U3RyYXRlZ3lBY3RpdmVUb29sVGlwKHdvcmtzcGFjZSksXG4gICAgICBjaGVja0NvbmRpdGlvbjogcm93c0luTWFwRXh0ZW50Q2hlY2tDb25kaXRpb24kLFxuICAgICAgaGFuZGxlcjogKCkgPT5cbiAgICAgICAgcm93c0luTWFwRXh0ZW50Q2hlY2tDb25kaXRpb24kLm5leHQoXG4gICAgICAgICAgIXJvd3NJbk1hcEV4dGVudENoZWNrQ29uZGl0aW9uJC52YWx1ZVxuICAgICAgICApXG4gICAgfSxcbiAgICB7XG4gICAgICBpZDogJ3NlbGVjdGVkT25seScsXG4gICAgICBjaGVja2JveDogdHJ1ZSxcbiAgICAgIHRpdGxlOiAnaWdvLmludGVncmF0aW9uLndvcmtzcGFjZS5zZWxlY3RlZC50aXRsZScsXG4gICAgICB0b29sdGlwOiAnaWdvLmludGVncmF0aW9uLndvcmtzcGFjZS5zZWxlY3RlZC50b29sdGlwJyxcbiAgICAgIGNoZWNrQ29uZGl0aW9uOiBzZWxlY3RPbmx5Q2hlY2tDb25kaXRpb24kLFxuICAgICAgaGFuZGxlcjogKCkgPT5cbiAgICAgICAgc2VsZWN0T25seUNoZWNrQ29uZGl0aW9uJC5uZXh0KCFzZWxlY3RPbmx5Q2hlY2tDb25kaXRpb24kLnZhbHVlKVxuICAgIH0sXG4gICAge1xuICAgICAgaWQ6ICdjbGVhcnNlbGVjdGlvbicsXG4gICAgICBpY29uOiAnc2VsZWN0LW9mZicsXG4gICAgICB0aXRsZTogJ2lnby5pbnRlZ3JhdGlvbi53b3Jrc3BhY2UuY2xlYXJTZWxlY3Rpb24udGl0bGUnLFxuICAgICAgdG9vbHRpcDogJ2lnby5pbnRlZ3JhdGlvbi53b3Jrc3BhY2UuY2xlYXJTZWxlY3Rpb24udG9vbHRpcCcsXG4gICAgICBoYW5kbGVyOiAod3M6IEZlYXR1cmVXb3Jrc3BhY2UgfCBXZnNXb3Jrc3BhY2UgfCBFZGl0aW9uV29ya3NwYWNlKSA9PiB7XG4gICAgICAgIHdzLmVudGl0eVN0b3JlLnN0YXRlLnVwZGF0ZU1hbnkod3MuZW50aXR5U3RvcmUudmlldy5hbGwoKSwge1xuICAgICAgICAgIHNlbGVjdGVkOiBmYWxzZVxuICAgICAgICB9KTtcbiAgICAgIH0sXG4gICAgICBhcmdzOiBbd29ya3NwYWNlXSxcbiAgICAgIGF2YWlsYWJpbGl0eTogKHdzOiBGZWF0dXJlV29ya3NwYWNlIHwgV2ZzV29ya3NwYWNlIHwgRWRpdGlvbldvcmtzcGFjZSkgPT5cbiAgICAgICAgbm9FbGVtZW50U2VsZWN0ZWQod3MpXG4gICAgfSxcbiAgICB7XG4gICAgICBpZDogJ2ZlYXR1cmVEb3dubG9hZCcsXG4gICAgICBpY29uOiAnZmlsZS1leHBvcnQnLFxuICAgICAgdGl0bGU6ICdpZ28uaW50ZWdyYXRpb24ud29ya3NwYWNlLmRvd25sb2FkLnRpdGxlJyxcbiAgICAgIHRvb2x0aXA6ICdpZ28uaW50ZWdyYXRpb24ud29ya3NwYWNlLmRvd25sb2FkLnRvb2x0aXAnLFxuICAgICAgaGFuZGxlcjogKHdzOiBGZWF0dXJlV29ya3NwYWNlIHwgV2ZzV29ya3NwYWNlIHwgRWRpdGlvbldvcmtzcGFjZSkgPT4ge1xuICAgICAgICBjb25zdCBmaWx0ZXJTdHJhdGVneSA9IHdzLmVudGl0eVN0b3JlLmdldFN0cmF0ZWd5T2ZUeXBlKFxuICAgICAgICAgIEVudGl0eVN0b3JlRmlsdGVyQ3VzdG9tRnVuY1N0cmF0ZWd5XG4gICAgICAgICk7XG4gICAgICAgIGNvbnN0IGZpbHRlclNlbGVjdGlvblN0cmF0ZWd5ID0gd3MuZW50aXR5U3RvcmUuZ2V0U3RyYXRlZ3lPZlR5cGUoXG4gICAgICAgICAgRW50aXR5U3RvcmVGaWx0ZXJTZWxlY3Rpb25TdHJhdGVneVxuICAgICAgICApO1xuICAgICAgICBjb25zdCBsYXllcnNXaXRoU2VsZWN0aW9uID0gZmlsdGVyU2VsZWN0aW9uU3RyYXRlZ3kuYWN0aXZlXG4gICAgICAgICAgPyBbd3MubGF5ZXIuaWRdXG4gICAgICAgICAgOiBbXTtcbiAgICAgICAgdG9vbFN0YXRlLnRvb2xUb0FjdGl2YXRlRnJvbU9wdGlvbnMoe1xuICAgICAgICAgIHRvb2w6ICdpbXBvcnRFeHBvcnQnLFxuICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgIGxheWVyczogW3dzLmxheWVyLmlkXSxcbiAgICAgICAgICAgIGZlYXR1cmVJbk1hcEV4dGVudDogZmlsdGVyU3RyYXRlZ3kuYWN0aXZlLFxuICAgICAgICAgICAgbGF5ZXJzV2l0aFNlbGVjdGlvblxuICAgICAgICAgIH0gYXMgRXhwb3J0T3B0aW9uc1xuICAgICAgICB9KTtcbiAgICAgIH0sXG4gICAgICBhcmdzOiBbd29ya3NwYWNlXVxuICAgIH0sXG4gICAge1xuICAgICAgaWQ6ICdvZ2NGaWx0ZXInLFxuICAgICAgaWNvbjogJ2ZpbHRlcicsXG4gICAgICB0aXRsZTogJ2lnby5pbnRlZ3JhdGlvbi53b3Jrc3BhY2Uub2djRmlsdGVyLnRpdGxlJyxcbiAgICAgIHRvb2x0aXA6ICdpZ28uaW50ZWdyYXRpb24ud29ya3NwYWNlLm9nY0ZpbHRlci50b29sdGlwJyxcbiAgICAgIGhhbmRsZXI6IChcbiAgICAgICAgd2lkZ2V0OiBXaWRnZXQsXG4gICAgICAgIHdzOiBGZWF0dXJlV29ya3NwYWNlIHwgV2ZzV29ya3NwYWNlIHwgRWRpdGlvbldvcmtzcGFjZVxuICAgICAgKSA9PiB7XG4gICAgICAgIHdzLmFjdGl2YXRlV2lkZ2V0KHdpZGdldCwge1xuICAgICAgICAgIG1hcDogd3MubWFwLFxuICAgICAgICAgIGxheWVyOiB3cy5sYXllclxuICAgICAgICB9KTtcbiAgICAgIH0sXG4gICAgICBhcmdzOiBbb2djRmlsdGVyV2lkZ2V0LCB3b3Jrc3BhY2VdXG4gICAgfSxcbiAgICB7XG4gICAgICBpZDogJ21heGltaXplJyxcbiAgICAgIHRpdGxlOiBsYW5ndWFnZVNlcnZpY2UudHJhbnNsYXRlLmluc3RhbnQoXG4gICAgICAgICdpZ28uaW50ZWdyYXRpb24ud29ya3NwYWNlLm1heGltaXplJ1xuICAgICAgKSxcbiAgICAgIHRvb2x0aXA6IGxhbmd1YWdlU2VydmljZS50cmFuc2xhdGUuaW5zdGFudChcbiAgICAgICAgJ2lnby5pbnRlZ3JhdGlvbi53b3Jrc3BhY2UubWF4aW1pemVUb29sdGlwJ1xuICAgICAgKSxcbiAgICAgIGljb246ICdyZXNpemUnLFxuICAgICAgZGlzcGxheTogKCkgPT4ge1xuICAgICAgICByZXR1cm4gbWF4aW1pemUkLnBpcGUobWFwKCh2KSA9PiAhdiAmJiAhbWVkaWFTZXJ2aWNlLmlzTW9iaWxlKCkpKTtcbiAgICAgIH0sXG4gICAgICBoYW5kbGVyOiAoKSA9PiB7XG4gICAgICAgIGlmICghbWVkaWFTZXJ2aWNlLmlzTW9iaWxlKCkpIHtcbiAgICAgICAgICBtYXhpbWl6ZSQubmV4dCh0cnVlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAge1xuICAgICAgaWQ6ICdzdGFuZGFyZEV4dGVudCcsXG4gICAgICB0aXRsZTogbGFuZ3VhZ2VTZXJ2aWNlLnRyYW5zbGF0ZS5pbnN0YW50KFxuICAgICAgICAnaWdvLmludGVncmF0aW9uLndvcmtzcGFjZS5zdGFuZGFyZEV4dGVudCdcbiAgICAgICksXG4gICAgICB0b29sdGlwOiBsYW5ndWFnZVNlcnZpY2UudHJhbnNsYXRlLmluc3RhbnQoXG4gICAgICAgICdpZ28uaW50ZWdyYXRpb24ud29ya3NwYWNlLnN0YW5kYXJkRXh0ZW50VG9vbHRpcCdcbiAgICAgICksXG4gICAgICBpY29uOiAncmVzaXplJyxcbiAgICAgIGRpc3BsYXk6ICgpID0+IHtcbiAgICAgICAgcmV0dXJuIG1heGltaXplJC5waXBlKG1hcCgodikgPT4gdiAmJiAhbWVkaWFTZXJ2aWNlLmlzTW9iaWxlKCkpKTtcbiAgICAgIH0sXG4gICAgICBoYW5kbGVyOiAoKSA9PiB7XG4gICAgICAgIG1heGltaXplJC5uZXh0KGZhbHNlKTtcbiAgICAgIH1cbiAgICB9LFxuICAgIHtcbiAgICAgIGlkOiAncHJpbnQnLFxuICAgICAgaWNvbjogJ3ByaW50ZXInLFxuICAgICAgdGl0bGU6ICdpZ28uaW50ZWdyYXRpb24ud29ya3NwYWNlLnByaW50LnRpdGxlJyxcbiAgICAgIHRvb2x0aXA6ICdpZ28uaW50ZWdyYXRpb24ud29ya3NwYWNlLnByaW50LnRvb2x0aXAnLFxuICAgICAgaGFuZGxlcjogKHdzOiBGZWF0dXJlV29ya3NwYWNlIHwgV2ZzV29ya3NwYWNlIHwgRWRpdGlvbldvcmtzcGFjZSkgPT4ge1xuICAgICAgICBjb25zdCB0aXRsZSA9IGAke3dzLmxheWVyLnRpdGxlfSAoJHtkYXRlVHJhbnNmb3JtKFxuICAgICAgICAgIG5ldyBEYXRlKCksXG4gICAgICAgICAgJ1lZWVktTU0tREQtSEhfbW0nXG4gICAgICAgICl9KWA7XG4gICAgICAgIGNvbnN0IGRvYzogYW55ID0gbmV3IGpzUERGLmRlZmF1bHQoJ2xhbmRzY2FwZScpO1xuICAgICAgICBjb25zdCB0b3RhbFBhZ2VzRXhwID0gJ3t0b3RhbF9wYWdlc19jb3VudF9zdHJpbmd9JztcbiAgICAgICAgZG9jLnRleHQodGl0bGUsIDE0LCAyMCk7XG4gICAgICAgIGRvYy5hdXRvVGFibGUoe1xuICAgICAgICAgIHN0YXJ0WTogMjUsXG4gICAgICAgICAgdGFibGVXaWR0aDogJ3dyYXAnLFxuICAgICAgICAgIGh0bWw6ICcjY3VycmVudFdvcmtzcGFjZVRhYmxlJyxcbiAgICAgICAgICBob3Jpem9udGFsUGFnZUJyZWFrOiB0cnVlLFxuICAgICAgICAgIHN0eWxlczogeyBjZWxsUGFkZGluZzogMC41LCBtaW5DZWxsV2lkdGg6IDIwLCBmb250U2l6ZTogNiB9LFxuICAgICAgICAgIGRpZERyYXdQYWdlOiAoZGF0YSkgPT4ge1xuICAgICAgICAgICAgbGV0IHN0ciA9ICdQYWdlICcgKyBkb2MuaW50ZXJuYWwuZ2V0TnVtYmVyT2ZQYWdlcygpO1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBkb2MucHV0VG90YWxQYWdlcyA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgICBzdHIgPSBzdHIgKyAnIC8gJyArIHRvdGFsUGFnZXNFeHA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkb2Muc2V0Rm9udFNpemUoNik7XG4gICAgICAgICAgICBjb25zdCBwYWdlU2l6ZSA9IGRvYy5pbnRlcm5hbC5wYWdlU2l6ZTtcbiAgICAgICAgICAgIGNvbnN0IHBhZ2VIZWlnaHQgPSBwYWdlU2l6ZS5oZWlnaHRcbiAgICAgICAgICAgICAgPyBwYWdlU2l6ZS5oZWlnaHRcbiAgICAgICAgICAgICAgOiBwYWdlU2l6ZS5nZXRIZWlnaHQoKTtcbiAgICAgICAgICAgIGRvYy50ZXh0KHN0ciwgZGF0YS5zZXR0aW5ncy5tYXJnaW4ubGVmdCwgcGFnZUhlaWdodCAtIDEwKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICBpZiAodHlwZW9mIGRvYy5wdXRUb3RhbFBhZ2VzID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgZG9jLnB1dFRvdGFsUGFnZXModG90YWxQYWdlc0V4cCk7XG4gICAgICAgIH1cbiAgICAgICAgZG9jLnNhdmUoYCR7dGl0bGV9LnBkZmApO1xuICAgICAgfSxcbiAgICAgIGFyZ3M6IFt3b3Jrc3BhY2VdXG4gICAgfVxuICBdO1xuICBsZXQgcmV0dXJuQWN0aW9ucyA9ICh3b3Jrc3BhY2UubGF5ZXIuZGF0YVNvdXJjZSBhcyBPZ2NGaWx0ZXJhYmxlRGF0YVNvdXJjZSlcbiAgICAub3B0aW9ucy5vZ2NGaWx0ZXJzPy5lbmFibGVkXG4gICAgPyBhY3Rpb25zXG4gICAgOiBhY3Rpb25zLmZpbHRlcigoYWN0aW9uKSA9PiBhY3Rpb24uaWQgIT09ICdvZ2NGaWx0ZXInKTtcbiAgcmV0dXJuQWN0aW9ucyA9XG4gICAgd29ya3NwYWNlLmxheWVyLm9wdGlvbnMud29ya3NwYWNlLnByaW50YWJsZSAhPT0gZmFsc2VcbiAgICAgID8gYWN0aW9uc1xuICAgICAgOiBhY3Rpb25zLmZpbHRlcigoYWN0aW9uKSA9PiBhY3Rpb24uaWQgIT09ICdwcmludCcpO1xuICByZXR1cm4gcmV0dXJuQWN0aW9ucztcbn1cbiJdfQ==
163
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya3NwYWNlLnV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvaW50ZWdyYXRpb24vc3JjL2xpYi93b3Jrc3BhY2Uvc2hhcmVkL3dvcmtzcGFjZS51dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsbUNBQW1DLEVBQ25DLGtDQUFrQyxFQUVuQyxNQUFNLGNBQWMsQ0FBQztBQUl0QixPQUFPLEVBR0wsYUFBYSxFQUNiLDZCQUE2QixFQUk3Qiw4QkFBOEIsRUFDOUIsaUJBQWlCLEVBQ2xCLE1BQU0sV0FBVyxDQUFDO0FBQ25CLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFNUMsT0FBTyxLQUFLLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDL0IsT0FBTyxpQkFBaUIsQ0FBQztBQUN6QixPQUFPLEVBQW1CLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUk1QyxNQUFNLFVBQVUsY0FBYyxDQUM1QixTQUE2RCxFQUM3RCxjQUFjO0lBRWQsTUFBTSxZQUFZLEdBQUcsU0FBUyxDQUFDLFdBQVcsQ0FBQyxpQkFBaUIsQ0FDMUQsNkJBQTZCLENBQ0csQ0FBQztJQUNuQyxZQUFZLENBQUMsU0FBUyxDQUNuQixjQUFjLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBYTtRQUN6QyxDQUFDLENBQUMsYUFBYSxDQUFDLE9BQU87UUFDdkIsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQ3ZCLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxVQUFVLG1CQUFtQixDQUNqQyxTQUE2RCxFQUM3RCw4QkFBd0QsRUFDeEQseUJBQW1ELEVBQ25ELGVBQXVCLEVBQ3ZCLFNBQW1DLEVBQ25DLFNBQW1DLEVBQ25DLGNBQThCLEVBQzlCLGVBQWdDLEVBQ2hDLFlBQTBCLEVBQzFCLFNBQW9CO0lBRXBCLE1BQU0sT0FBTyxHQUFHO1FBQ2Q7WUFDRSxFQUFFLEVBQUUsVUFBVTtZ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QyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsRUFBRSxLQUFLLE9BQU8sQ0FBQyxDQUFDO0lBQ3hELE9BQU8sYUFBYSxDQUFDO0FBQ3ZCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBY3Rpb24sXG4gIEVudGl0eVN0b3JlRmlsdGVyQ3VzdG9tRnVuY1N0cmF0ZWd5LFxuICBFbnRpdHlTdG9yZUZpbHRlclNlbGVjdGlvblN0cmF0ZWd5LFxuICBXaWRnZXRcbn0gZnJvbSAnQGlnbzIvY29tbW9uJztcbmltcG9ydCB7IExhbmd1YWdlU2VydmljZSB9IGZyb20gJ0BpZ28yL2NvcmUvbGFuZ3VhZ2UnO1xuaW1wb3J0IHsgTWVkaWFTZXJ2aWNlIH0gZnJvbSAnQGlnbzIvY29yZS9tZWRpYSc7XG5pbXBvcnQgeyBTdG9yYWdlU2VydmljZSB9IGZyb20gJ0BpZ28yL2NvcmUvc3RvcmFnZSc7XG5pbXBvcnQge1xuICBFZGl0aW9uV29ya3NwYWNlLFxuICBFeHBvcnRPcHRpb25zLFxuICBGZWF0dXJlTW90aW9uLFxuICBGZWF0dXJlU3RvcmVTZWxlY3Rpb25TdHJhdGVneSxcbiAgRmVhdHVyZVdvcmtzcGFjZSxcbiAgT2djRmlsdGVyYWJsZURhdGFTb3VyY2UsXG4gIFdmc1dvcmtzcGFjZSxcbiAgbWFwRXh0ZW50U3RyYXRlZ3lBY3RpdmVUb29sVGlwLFxuICBub0VsZW1lbnRTZWxlY3RlZFxufSBmcm9tICdAaWdvMi9nZW8nO1xuaW1wb3J0IHsgZGF0ZVRyYW5zZm9ybSB9IGZyb20gJ0BpZ28yL3V0aWxzJztcblxuaW1wb3J0ICogYXMganNQREYgZnJvbSAnanNwZGYnO1xuaW1wb3J0ICdqc3BkZi1hdXRvdGFibGUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBtYXAgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgVG9vbFN0YXRlIH0gZnJvbSAnLi4vLi4vdG9vbCc7XG5cbmV4cG9ydCBmdW5jdGlvbiBoYW5kbGVab29tQXV0byhcbiAgd29ya3NwYWNlOiBGZWF0dXJlV29ya3NwYWNlIHwgV2ZzV29ya3NwYWNlIHwgRWRpdGlvbldvcmtzcGFjZSxcbiAgc3RvcmFnZVNlcnZpY2Vcbikge1xuICBjb25zdCB6b29tU3RyYXRlZ3kgPSB3b3Jrc3BhY2UuZW50aXR5U3RvcmUuZ2V0U3RyYXRlZ3lPZlR5cGUoXG4gICAgRmVhdHVyZVN0b3JlU2VsZWN0aW9uU3RyYXRlZ3lcbiAgKSBhcyBGZWF0dXJlU3RvcmVTZWxlY3Rpb25TdHJhdGVneTtcbiAgem9vbVN0cmF0ZWd5LnNldE1vdGlvbihcbiAgICAoc3RvcmFnZVNlcnZpY2UuZ2V0KCd6b29tQXV0bycpIGFzIGJvb2xlYW4pXG4gICAgICA/IEZlYXR1cmVNb3Rpb24uRGVmYXVsdFxuICAgICAgOiBGZWF0dXJlTW90aW9uLk5vbmVcbiAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFdvcmtzcGFjZUFjdGlvbnMoXG4gIHdvcmtzcGFjZTogRmVhdHVyZVdvcmtzcGFjZSB8IFdmc1dvcmtzcGFjZSB8IEVkaXRpb25Xb3Jrc3BhY2UsXG4gIHJvd3NJbk1hcEV4dGVudENoZWNrQ29uZGl0aW9uJDogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+LFxuICBzZWxlY3RPbmx5Q2hlY2tDb25kaXRpb24kOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4sXG4gIG9nY0ZpbHRlcldpZGdldDogV2lkZ2V0LFxuICB6b29tQXV0byQ6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPixcbiAgbWF4aW1pemUkOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4sXG4gIHN0b3JhZ2VTZXJ2aWNlOiBTdG9yYWdlU2VydmljZSxcbiAgbGFuZ3VhZ2VTZXJ2aWNlOiBMYW5ndWFnZVNlcnZpY2UsXG4gIG1lZGlhU2VydmljZTogTWVkaWFTZXJ2aWNlLFxuICB0b29sU3RhdGU6IFRvb2xTdGF0ZVxuKTogQWN0aW9uW10ge1xuICBjb25zdCBhY3Rpb25zID0gW1xuICAgIHtcbiAgICAgIGlkOiAnem9vbUF1dG8nLFxuICAgICAgY2hlY2tib3g6IHRydWUsXG4gICAgICB0aXRsZTogJ2lnby5pbnRlZ3JhdGlvbi53b3Jrc3BhY2Uuem9vbUF1dG8udGl0bGUnLFxuICAgICAgdG9vbHRpcDogJ2lnby5pbnRlZ3JhdGlvbi53b3Jrc3BhY2Uuem9vbUF1dG8udG9vbHRpcCcsXG4gICAgICBjaGVja0NvbmRpdGlvbjogem9vbUF1dG8kLFxuICAgICAgaGFuZGxlcjogKCkgPT4ge1xuICAgICAgICBoYW5kbGVab29tQXV0byh3b3Jrc3BhY2UsIHN0b3JhZ2VTZXJ2aWNlKTtcbiAgICAgICAgc3RvcmFnZVNlcnZpY2Uuc2V0KFxuICAgICAgICAgICd6b29tQXV0bycsXG4gICAgICAgICAgIXN0b3JhZ2VTZXJ2aWNlLmdldCgnem9vbUF1dG8nKSBhcyBib29sZWFuXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSxcbiAgICB7XG4gICAgICBpZDogJ2ZpbHRlckluTWFwRXh0ZW50JyxcbiAgICAgIGNoZWNrYm94OiB0cnVlLFxuICAgICAgdGl0bGU6ICdpZ28uaW50ZWdyYXRpb24ud29ya3NwYWNlLmluTWFwRXh0ZW50LnRpdGxlJyxcbiAgICAgIHRvb2x0aXA6IG1hcEV4dGVudFN0cmF0ZWd5QWN0aXZlVG9vbFRpcCh3b3Jrc3BhY2UpLFxuICAgICAgY2hlY2tDb25kaXRpb246IHJvd3NJbk1hcEV4dGVudENoZWNrQ29uZGl0aW9uJCxcbiAgICAgIGhhbmRsZXI6ICgpID0+XG4gICAgICAgIHJvd3NJbk1hcEV4dGVudENoZWNrQ29uZGl0aW9uJC5uZXh0KFxuICAgICAgICAgICFyb3dzSW5NYXBFeHRlbnRDaGVja0NvbmRpdGlvbiQudmFsdWVcbiAgICAgICAgKVxuICAgIH0sXG4gICAge1xuICAgICAgaWQ6ICdzZWxlY3RlZE9ubHknLFxuICAgICAgY2hlY2tib3g6IHRydWUsXG4gICAgICB0aXRsZTogJ2lnby5pbnRlZ3JhdGlvbi53b3Jrc3BhY2Uuc2VsZWN0ZWQudGl0bGUnLFxuICAgICAgdG9vbHRpcDogJ2lnby5pbnRlZ3JhdGlvbi53b3Jrc3BhY2Uuc2VsZWN0ZWQudG9vbHRpcCcsXG4gICAgICBjaGVja0NvbmRpdGlvbjogc2VsZWN0T25seUNoZWNrQ29uZGl0aW9uJCxcbiAgICAgIGhhbmRsZXI6ICgpID0+XG4gICAgICAgIHNlbGVjdE9ubHlDaGVja0NvbmRpdGlvbiQubmV4dCghc2VsZWN0T25seUNoZWNrQ29uZGl0aW9uJC52YWx1ZSlcbiAgICB9LFxuICAgIHtcbiAgICAgIGlkOiAnY2xlYXJzZWxlY3Rpb24nLFxuICAgICAgaWNvbjogJ2Rlc2VsZWN0JyxcbiAgICAgIHRpdGxlOiAnaWdvLmludGVncmF0aW9uLndvcmtzcGFjZS5jbGVhclNlbGVjdGlvbi50aXRsZScsXG4gICAgICB0b29sdGlwOiAnaWdvLmludGVncmF0aW9uLndvcmtzcGFjZS5jbGVhclNlbGVjdGlvbi50b29sdGlwJyxcbiAgICAgIGhhbmRsZXI6ICh3czogRmVhdHVyZVdvcmtzcGFjZSB8IFdmc1dvcmtzcGFjZSB8IEVkaXRpb25Xb3Jrc3BhY2UpID0+IHtcbiAgICAgICAgd3MuZW50aXR5U3RvcmUuc3RhdGUudXBkYXRlTWFueSh3cy5lbnRpdHlTdG9yZS52aWV3LmFsbCgpLCB7XG4gICAgICAgICAgc2VsZWN0ZWQ6IGZhbHNlXG4gICAgICAgIH0pO1xuICAgICAgfSxcbiAgICAgIGFyZ3M6IFt3b3Jrc3BhY2VdLFxuICAgICAgYXZhaWxhYmlsaXR5OiAod3M6IEZlYXR1cmVXb3Jrc3BhY2UgfCBXZnNXb3Jrc3BhY2UgfCBFZGl0aW9uV29ya3NwYWNlKSA9PlxuICAgICAgICBub0VsZW1lbnRTZWxlY3RlZCh3cylcbiAgICB9LFxuICAgIHtcbiAgICAgIGlkOiAnZmVhdHVyZURvd25sb2FkJyxcbiAgICAgIGljb246ICdmaWxlX3NhdmUnLFxuICAgICAgdGl0bGU6ICdpZ28uaW50ZWdyYXRpb24ud29ya3NwYWNlLmRvd25sb2FkLnRpdGxlJyxcbiAgICAgIHRvb2x0aXA6ICdpZ28uaW50ZWdyYXRpb24ud29ya3NwYWNlLmRvd25sb2FkLnRvb2x0aXAnLFxuICAgICAgaGFuZGxlcjogKHdzOiBGZWF0dXJlV29ya3NwYWNlIHwgV2ZzV29ya3NwYWNlIHwgRWRpdGlvbldvcmtzcGFjZSkgPT4ge1xuICAgICAgICBjb25zdCBmaWx0ZXJTdHJhdGVneSA9IHdzLmVudGl0eVN0b3JlLmdldFN0cmF0ZWd5T2ZUeXBlKFxuICAgICAgICAgIEVudGl0eVN0b3JlRmlsdGVyQ3VzdG9tRnVuY1N0cmF0ZWd5XG4gICAgICAgICk7XG4gICAgICAgIGNvbnN0IGZpbHRlclNlbGVjdGlvblN0cmF0ZWd5ID0gd3MuZW50aXR5U3RvcmUuZ2V0U3RyYXRlZ3lPZlR5cGUoXG4gICAgICAgICAgRW50aXR5U3RvcmVGaWx0ZXJTZWxlY3Rpb25TdHJhdGVneVxuICAgICAgICApO1xuICAgICAgICBjb25zdCBsYXllcnNXaXRoU2VsZWN0aW9uID0gZmlsdGVyU2VsZWN0aW9uU3RyYXRlZ3kuYWN0aXZlXG4gICAgICAgICAgPyBbd3MubGF5ZXIuaWRdXG4gICAgICAgICAgOiBbXTtcbiAgICAgICAgdG9vbFN0YXRlLnRvb2xUb0FjdGl2YXRlRnJvbU9wdGlvbnMoe1xuICAgICAgICAgIHRvb2w6ICdpbXBvcnRFeHBvcnQnLFxuICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgIGxheWVyczogW3dzLmxheWVyLmlkXSxcbiAgICAgICAgICAgIGZlYXR1cmVJbk1hcEV4dGVudDogZmlsdGVyU3RyYXRlZ3kuYWN0aXZlLFxuICAgICAgICAgICAgbGF5ZXJzV2l0aFNlbGVjdGlvblxuICAgICAgICAgIH0gYXMgRXhwb3J0T3B0aW9uc1xuICAgICAgICB9KTtcbiAgICAgIH0sXG4gICAgICBhcmdzOiBbd29ya3NwYWNlXVxuICAgIH0sXG4gICAge1xuICAgICAgaWQ6ICdvZ2NGaWx0ZXInLFxuICAgICAgaWNvbjogJ2ZpbHRlcl9hbHQnLFxuICAgICAgdGl0bGU6ICdpZ28uaW50ZWdyYXRpb24ud29ya3NwYWNlLm9nY0ZpbHRlci50aXRsZScsXG4gICAgICB0b29sdGlwOiAnaWdvLmludGVncmF0aW9uLndvcmtzcGFjZS5vZ2NGaWx0ZXIudG9vbHRpcCcsXG4gICAgICBoYW5kbGVyOiAoXG4gICAgICAgIHdpZGdldDogV2lkZ2V0LFxuICAgICAgICB3czogRmVhdHVyZVdvcmtzcGFjZSB8IFdmc1dvcmtzcGFjZSB8IEVkaXRpb25Xb3Jrc3BhY2VcbiAgICAgICkgPT4ge1xuICAgICAgICB3cy5hY3RpdmF0ZVdpZGdldCh3aWRnZXQsIHtcbiAgICAgICAgICBtYXA6IHdzLm1hcCxcbiAgICAgICAgICBsYXllcjogd3MubGF5ZXJcbiAgICAgICAgfSk7XG4gICAgICB9LFxuICAgICAgYXJnczogW29nY0ZpbHRlcldpZGdldCwgd29ya3NwYWNlXVxuICAgIH0sXG4gICAge1xuICAgICAgaWQ6ICdtYXhpbWl6ZScsXG4gICAgICB0aXRsZTogbGFuZ3VhZ2VTZXJ2aWNlLnRyYW5zbGF0ZS5pbnN0YW50KFxuICAgICAgICAnaWdvLmludGVncmF0aW9uLndvcmtzcGFjZS5tYXhpbWl6ZSdcbiAgICAgICksXG4gICAgICB0b29sdGlwOiBsYW5ndWFnZVNlcnZpY2UudHJhbnNsYXRlLmluc3RhbnQoXG4gICAgICAgICdpZ28uaW50ZWdyYXRpb24ud29ya3NwYWNlLm1heGltaXplVG9vbHRpcCdcbiAgICAgICksXG4gICAgICBpY29uOiAncmVzaXplJyxcbiAgICAgIGRpc3BsYXk6ICgpID0+IHtcbiAgICAgICAgcmV0dXJuIG1heGltaXplJC5waXBlKG1hcCgodikgPT4gIXYgJiYgIW1lZGlhU2VydmljZS5pc01vYmlsZSgpKSk7XG4gICAgICB9LFxuICAgICAgaGFuZGxlcjogKCkgPT4ge1xuICAgICAgICBpZiAoIW1lZGlhU2VydmljZS5pc01vYmlsZSgpKSB7XG4gICAgICAgICAgbWF4aW1pemUkLm5leHQodHJ1ZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIHtcbiAgICAgIGlkOiAnc3RhbmRhcmRFeHRlbnQnLFxuICAgICAgdGl0bGU6IGxhbmd1YWdlU2VydmljZS50cmFuc2xhdGUuaW5zdGFudChcbiAgICAgICAgJ2lnby5pbnRlZ3JhdGlvbi53b3Jrc3BhY2Uuc3RhbmRhcmRFeHRlbnQnXG4gICAgICApLFxuICAgICAgdG9vbHRpcDogbGFuZ3VhZ2VTZXJ2aWNlLnRyYW5zbGF0ZS5pbnN0YW50KFxuICAgICAgICAnaWdvLmludGVncmF0aW9uLndvcmtzcGFjZS5zdGFuZGFyZEV4dGVudFRvb2x0aXAnXG4gICAgICApLFxuICAgICAgaWNvbjogJ3Jlc2l6ZScsXG4gICAgICBkaXNwbGF5OiAoKSA9PiB7XG4gICAgICAgIHJldHVybiBtYXhpbWl6ZSQucGlwZShtYXAoKHYpID0+IHYgJiYgIW1lZGlhU2VydmljZS5pc01vYmlsZSgpKSk7XG4gICAgICB9LFxuICAgICAgaGFuZGxlcjogKCkgPT4ge1xuICAgICAgICBtYXhpbWl6ZSQubmV4dChmYWxzZSk7XG4gICAgICB9XG4gICAgfSxcbiAgICB7XG4gICAgICBpZDogJ3ByaW50JyxcbiAgICAgIGljb246ICdwcmludCcsXG4gICAgICB0aXRsZTogJ2lnby5pbnRlZ3JhdGlvbi53b3Jrc3BhY2UucHJpbnQudGl0bGUnLFxuICAgICAgdG9vbHRpcDogJ2lnby5pbnRlZ3JhdGlvbi53b3Jrc3BhY2UucHJpbnQudG9vbHRpcCcsXG4gICAgICBoYW5kbGVyOiAod3M6IEZlYXR1cmVXb3Jrc3BhY2UgfCBXZnNXb3Jrc3BhY2UgfCBFZGl0aW9uV29ya3NwYWNlKSA9PiB7XG4gICAgICAgIGNvbnN0IHRpdGxlID0gYCR7d3MubGF5ZXIudGl0bGV9ICgke2RhdGVUcmFuc2Zvcm0oXG4gICAgICAgICAgbmV3IERhdGUoKSxcbiAgICAgICAgICAnWVlZWS1NTS1ERC1ISF9tbSdcbiAgICAgICAgKX0pYDtcbiAgICAgICAgY29uc3QgZG9jOiBhbnkgPSBuZXcganNQREYuZGVmYXVsdCgnbGFuZHNjYXBlJyk7XG4gICAgICAgIGNvbnN0IHRvdGFsUGFnZXNFeHAgPSAne3RvdGFsX3BhZ2VzX2NvdW50X3N0cmluZ30nO1xuICAgICAgICBkb2MudGV4dCh0aXRsZSwgMTQsIDIwKTtcbiAgICAgICAgZG9jLmF1dG9UYWJsZSh7XG4gICAgICAgICAgc3RhcnRZOiAyNSxcbiAgICAgICAgICB0YWJsZVdpZHRoOiAnd3JhcCcsXG4gICAgICAgICAgaHRtbDogJyNjdXJyZW50V29ya3NwYWNlVGFibGUnLFxuICAgICAgICAgIGhvcml6b250YWxQYWdlQnJlYWs6IHRydWUsXG4gICAgICAgICAgc3R5bGVzOiB7IGNlbGxQYWRkaW5nOiAwLjUsIG1pbkNlbGxXaWR0aDogMjAsIGZvbnRTaXplOiA2IH0sXG4gICAgICAgICAgZGlkRHJhd1BhZ2U6IChkYXRhKSA9PiB7XG4gICAgICAgICAgICBsZXQgc3RyID0gJ1BhZ2UgJyArIGRvYy5pbnRlcm5hbC5nZXROdW1iZXJPZlBhZ2VzKCk7XG4gICAgICAgICAgICBpZiAodHlwZW9mIGRvYy5wdXRUb3RhbFBhZ2VzID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICAgIHN0ciA9IHN0ciArICcgLyAnICsgdG90YWxQYWdlc0V4cDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRvYy5zZXRGb250U2l6ZSg2KTtcbiAgICAgICAgICAgIGNvbnN0IHBhZ2VTaXplID0gZG9jLmludGVybmFsLnBhZ2VTaXplO1xuICAgICAgICAgICAgY29uc3QgcGFnZUhlaWdodCA9IHBhZ2VTaXplLmhlaWdodFxuICAgICAgICAgICAgICA/IHBhZ2VTaXplLmhlaWdodFxuICAgICAgICAgICAgICA6IHBhZ2VTaXplLmdldEhlaWdodCgpO1xuICAgICAgICAgICAgZG9jLnRleHQoc3RyLCBkYXRhLnNldHRpbmdzLm1hcmdpbi5sZWZ0LCBwYWdlSGVpZ2h0IC0gMTApO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIGlmICh0eXBlb2YgZG9jLnB1dFRvdGFsUGFnZXMgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICBkb2MucHV0VG90YWxQYWdlcyh0b3RhbFBhZ2VzRXhwKTtcbiAgICAgICAgfVxuICAgICAgICBkb2Muc2F2ZShgJHt0aXRsZX0ucGRmYCk7XG4gICAgICB9LFxuICAgICAgYXJnczogW3dvcmtzcGFjZV1cbiAgICB9XG4gIF07XG4gIGxldCByZXR1cm5BY3Rpb25zID0gKHdvcmtzcGFjZS5sYXllci5kYXRhU291cmNlIGFzIE9nY0ZpbHRlcmFibGVEYXRhU291cmNlKVxuICAgIC5vcHRpb25zLm9nY0ZpbHRlcnM/LmVuYWJsZWRcbiAgICA/IGFjdGlvbnNcbiAgICA6IGFjdGlvbnMuZmlsdGVyKChhY3Rpb24pID0+IGFjdGlvbi5pZCAhPT0gJ29nY0ZpbHRlcicpO1xuICByZXR1cm5BY3Rpb25zID1cbiAgICB3b3Jrc3BhY2UubGF5ZXIub3B0aW9ucy53b3Jrc3BhY2UucHJpbnRhYmxlICE9PSBmYWxzZVxuICAgICAgPyBhY3Rpb25zXG4gICAgICA6IGFjdGlvbnMuZmlsdGVyKChhY3Rpb24pID0+IGFjdGlvbi5pZCAhPT0gJ3ByaW50Jyk7XG4gIHJldHVybiByZXR1cm5BY3Rpb25zO1xufVxuIl19
@@ -51,7 +51,7 @@ export class WorkspaceButtonComponent {
51
51
  }
52
52
  }
53
53
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: WorkspaceButtonComponent, deps: [{ token: i1.WorkspaceState }], target: i0.ɵɵFactoryTarget.Component });
54
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.4", type: WorkspaceButtonComponent, isStandalone: true, selector: "igo-workspace-button", inputs: { layer: "layer", color: "color" }, ngImport: i0, template: "<button\n *ngIf=\"hasWorkspace$ | async\"\n mat-icon-button\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.integration.workspace.toggleWorkspace' | translate\"\n [color]=\"color\"\n (click)=\"activateWorkspace()\"\n>\n <mat-icon svgIcon=\"table\"></mat-icon>\n</button>\n", styles: [""], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i2.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i3.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
54
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.4", type: WorkspaceButtonComponent, isStandalone: true, selector: "igo-workspace-button", inputs: { layer: "layer", color: "color" }, ngImport: i0, template: "<button\n *ngIf=\"hasWorkspace$ | async\"\n mat-icon-button\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.integration.workspace.toggleWorkspace' | translate\"\n [color]=\"color\"\n (click)=\"activateWorkspace()\"\n>\n <mat-icon>table</mat-icon>\n</button>\n", styles: [""], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i2.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i3.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
55
55
  }
56
56
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: WorkspaceButtonComponent, decorators: [{
57
57
  type: Component,
@@ -62,10 +62,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImpor
62
62
  MatIconModule,
63
63
  AsyncPipe,
64
64
  TranslateModule
65
- ], template: "<button\n *ngIf=\"hasWorkspace$ | async\"\n mat-icon-button\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.integration.workspace.toggleWorkspace' | translate\"\n [color]=\"color\"\n (click)=\"activateWorkspace()\"\n>\n <mat-icon svgIcon=\"table\"></mat-icon>\n</button>\n" }]
65
+ ], template: "<button\n *ngIf=\"hasWorkspace$ | async\"\n mat-icon-button\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.integration.workspace.toggleWorkspace' | translate\"\n [color]=\"color\"\n (click)=\"activateWorkspace()\"\n>\n <mat-icon>table</mat-icon>\n</button>\n" }]
66
66
  }], ctorParameters: () => [{ type: i1.WorkspaceState }], propDecorators: { layer: [{
67
67
  type: Input
68
68
  }], color: [{
69
69
  type: Input
70
70
  }] } });
71
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya3NwYWNlLWJ1dHRvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9pbnRlZ3JhdGlvbi9zcmMvbGliL3dvcmtzcGFjZS93b3Jrc3BhY2UtYnV0dG9uL3dvcmtzcGFjZS1idXR0b24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvaW50ZWdyYXRpb24vc3JjL2xpYi93b3Jrc3BhY2Uvd29ya3NwYWNlLWJ1dHRvbi93b3Jrc3BhY2UtYnV0dG9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbEQsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsS0FBSyxFQUdOLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFJN0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxlQUFlLEVBQWdCLGFBQWEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVwRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7Ozs7Ozs7QUFpQnBELE1BQU0sT0FBTyx3QkFBd0I7SUFrQmY7SUFqQmIsYUFBYSxHQUE2QixJQUFJLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNwRSxjQUFjLENBQWU7SUFFN0IsTUFBTSxDQUFRO0lBQ2QsTUFBTSxHQUEyQixJQUFJLGVBQWUsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUN4RSxJQUNJLEtBQUssQ0FBQyxLQUFZO1FBQ3BCLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQsSUFBSSxLQUFLO1FBQ1AsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3JCLENBQUM7SUFFUSxLQUFLLEdBQVcsU0FBUyxDQUFDO0lBRW5DLFlBQW9CLGNBQThCO1FBQTlCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtJQUFHLENBQUM7SUFFdEQsUUFBUTtRQUNOLElBQUksQ0FBQyxjQUFjLEdBQUcsYUFBYSxDQUFDO1lBQ2xDLElBQUksQ0FBQyxjQUFjLENBQUMsaUJBQWlCO1lBQ3JDLElBQUksQ0FBQyxNQUFNO1NBQ1osQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQ3JCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsT0FBTyxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FDMUUsQ0FBQztJQUNKLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNwQyxDQUFDO0lBRUQsaUJBQWlCO1FBQ2YsSUFDRSxJQUFJLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxLQUFLO1lBQ25DLElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLEtBQWEsQ0FBQyxLQUFLLENBQUMsRUFBRTtnQkFDcEQsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ2YsSUFBSSxDQUFDLGNBQWMsQ0FBQyxzQkFBc0IsRUFDMUMsQ0FBQztZQUNELElBQUksQ0FBQyxjQUFjLENBQUMsc0JBQXNCLEdBQUcsS0FBSyxDQUFDO1FBQ3JELENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLGNBQWMsQ0FBQyxzQkFBc0IsR0FBRyxJQUFJLENBQUM7WUFDbEQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzVELENBQUM7SUFDSCxDQUFDO3VHQTdDVSx3QkFBd0I7MkZBQXhCLHdCQUF3Qiw0SENsQ3JDLDJUQVdBLDBERGVJLElBQUksNEZBQ0osZUFBZSwySUFDZixnQkFBZ0IsNFRBQ2hCLGFBQWEsK0tBQ2IsU0FBUyw2Q0FDVCxlQUFlOzsyRkFHTix3QkFBd0I7a0JBZnBDLFNBQVM7K0JBQ0Usc0JBQXNCLG1CQUdmLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxXQUNQO3dCQUNQLElBQUk7d0JBQ0osZUFBZTt3QkFDZixnQkFBZ0I7d0JBQ2hCLGFBQWE7d0JBQ2IsU0FBUzt3QkFDVCxlQUFlO3FCQUNoQjttRkFTRyxLQUFLO3NCQURSLEtBQUs7Z0JBVUcsS0FBSztzQkFBYixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXN5bmNQaXBlLCBOZ0lmIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQgeyBNYXRUb29sdGlwTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbHRpcCc7XG5cbmltcG9ydCB0eXBlIHsgTGF5ZXIgfSBmcm9tICdAaWdvMi9nZW8nO1xuXG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgU3Vic2NyaXB0aW9uLCBjb21iaW5lTGF0ZXN0IH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IFdvcmtzcGFjZVN0YXRlIH0gZnJvbSAnLi4vd29ya3NwYWNlLnN0YXRlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaWdvLXdvcmtzcGFjZS1idXR0b24nLFxuICB0ZW1wbGF0ZVVybDogJy4vd29ya3NwYWNlLWJ1dHRvbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3dvcmtzcGFjZS1idXR0b24uY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBOZ0lmLFxuICAgIE1hdEJ1dHRvbk1vZHVsZSxcbiAgICBNYXRUb29sdGlwTW9kdWxlLFxuICAgIE1hdEljb25Nb2R1bGUsXG4gICAgQXN5bmNQaXBlLFxuICAgIFRyYW5zbGF0ZU1vZHVsZVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIFdvcmtzcGFjZUJ1dHRvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgcHVibGljIGhhc1dvcmtzcGFjZSQ6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPiA9IG5ldyBCZWhhdmlvclN1YmplY3QoZmFsc2UpO1xuICBwcml2YXRlIGhhc1dvcmtzcGFjZSQkOiBTdWJzY3JpcHRpb247XG5cbiAgcHJpdmF0ZSBfbGF5ZXI6IExheWVyO1xuICBwcml2YXRlIGxheWVyJDogQmVoYXZpb3JTdWJqZWN0PExheWVyPiA9IG5ldyBCZWhhdmlvclN1YmplY3QodW5kZWZpbmVkKTtcbiAgQElucHV0KClcbiAgc2V0IGxheWVyKHZhbHVlOiBMYXllcikge1xuICAgIHRoaXMuX2xheWVyID0gdmFsdWU7XG4gICAgdGhpcy5sYXllciQubmV4dCh0aGlzLl9sYXllcik7XG4gIH1cblxuICBnZXQgbGF5ZXIoKTogTGF5ZXIge1xuICAgIHJldHVybiB0aGlzLl9sYXllcjtcbiAgfVxuXG4gIEBJbnB1dCgpIGNvbG9yOiBzdHJpbmcgPSAncHJpbWFyeSc7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSB3b3Jrc3BhY2VTdGF0ZTogV29ya3NwYWNlU3RhdGUpIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5oYXNXb3Jrc3BhY2UkJCA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgdGhpcy53b3Jrc3BhY2VTdGF0ZS53b3Jrc3BhY2VFbmFibGVkJCxcbiAgICAgIHRoaXMubGF5ZXIkXG4gICAgXSkuc3Vic2NyaWJlKChidW5jaCkgPT5cbiAgICAgIHRoaXMuaGFzV29ya3NwYWNlJC5uZXh0KGJ1bmNoWzBdICYmIGJ1bmNoWzFdPy5vcHRpb25zLndvcmtzcGFjZT8uZW5hYmxlZClcbiAgICApO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5oYXNXb3Jrc3BhY2UkJC51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgYWN0aXZhdGVXb3Jrc3BhY2UoKSB7XG4gICAgaWYgKFxuICAgICAgdGhpcy53b3Jrc3BhY2VTdGF0ZS53b3Jrc3BhY2UkLnZhbHVlICYmXG4gICAgICAodGhpcy53b3Jrc3BhY2VTdGF0ZS53b3Jrc3BhY2UkLnZhbHVlIGFzIGFueSkubGF5ZXIuaWQgPT09XG4gICAgICAgIHRoaXMubGF5ZXIuaWQgJiZcbiAgICAgIHRoaXMud29ya3NwYWNlU3RhdGUud29ya3NwYWNlUGFuZWxFeHBhbmRlZFxuICAgICkge1xuICAgICAgdGhpcy53b3Jrc3BhY2VTdGF0ZS53b3Jrc3BhY2VQYW5lbEV4cGFuZGVkID0gZmFsc2U7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMud29ya3NwYWNlU3RhdGUud29ya3NwYWNlUGFuZWxFeHBhbmRlZCA9IHRydWU7XG4gICAgICB0aGlzLndvcmtzcGFjZVN0YXRlLnNldEFjdGl2ZVdvcmtzcGFjZUJ5SWQodGhpcy5sYXllci5pZCk7XG4gICAgfVxuICB9XG59XG4iLCI8YnV0dG9uXG4gICpuZ0lmPVwiaGFzV29ya3NwYWNlJCB8IGFzeW5jXCJcbiAgbWF0LWljb24tYnV0dG9uXG4gIHRvb2x0aXAtcG9zaXRpb249XCJiZWxvd1wiXG4gIG1hdFRvb2x0aXBTaG93RGVsYXk9XCI1MDBcIlxuICBbbWF0VG9vbHRpcF09XCInaWdvLmludGVncmF0aW9uLndvcmtzcGFjZS50b2dnbGVXb3Jrc3BhY2UnIHwgdHJhbnNsYXRlXCJcbiAgW2NvbG9yXT1cImNvbG9yXCJcbiAgKGNsaWNrKT1cImFjdGl2YXRlV29ya3NwYWNlKClcIlxuPlxuICA8bWF0LWljb24gc3ZnSWNvbj1cInRhYmxlXCI+PC9tYXQtaWNvbj5cbjwvYnV0dG9uPlxuIl19
71
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya3NwYWNlLWJ1dHRvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9pbnRlZ3JhdGlvbi9zcmMvbGliL3dvcmtzcGFjZS93b3Jrc3BhY2UtYnV0dG9uL3dvcmtzcGFjZS1idXR0b24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvaW50ZWdyYXRpb24vc3JjL2xpYi93b3Jrc3BhY2Uvd29ya3NwYWNlLWJ1dHRvbi93b3Jrc3BhY2UtYnV0dG9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbEQsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsS0FBSyxFQUdOLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFJN0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxlQUFlLEVBQWdCLGFBQWEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVwRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7Ozs7Ozs7QUFpQnBELE1BQU0sT0FBTyx3QkFBd0I7SUFrQmY7SUFqQmIsYUFBYSxHQUE2QixJQUFJLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNwRSxjQUFjLENBQWU7SUFFN0IsTUFBTSxDQUFRO0lBQ2QsTUFBTSxHQUEyQixJQUFJLGVBQWUsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUN4RSxJQUNJLEtBQUssQ0FBQyxLQUFZO1FBQ3BCLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQsSUFBSSxLQUFLO1FBQ1AsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3JCLENBQUM7SUFFUSxLQUFLLEdBQVcsU0FBUyxDQUFDO0lBRW5DLFlBQW9CLGNBQThCO1FBQTlCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtJQUFHLENBQUM7SUFFdEQsUUFBUTtRQUNOLElBQUksQ0FBQyxjQUFjLEdBQUcsYUFBYSxDQUFDO1lBQ2xDLElBQUksQ0FBQyxjQUFjLENBQUMsaUJBQWlCO1lBQ3JDLElBQUksQ0FBQyxNQUFNO1NBQ1osQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQ3JCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsT0FBTyxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FDMUUsQ0FBQztJQUNKLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNwQyxDQUFDO0lBRUQsaUJBQWlCO1FBQ2YsSUFDRSxJQUFJLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxLQUFLO1lBQ25DLElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLEtBQWEsQ0FBQyxLQUFLLENBQUMsRUFBRTtnQkFDcEQsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ2YsSUFBSSxDQUFDLGNBQWMsQ0FBQyxzQkFBc0IsRUFDMUMsQ0FBQztZQUNELElBQUksQ0FBQyxjQUFjLENBQUMsc0JBQXNCLEdBQUcsS0FBSyxDQUFDO1FBQ3JELENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLGNBQWMsQ0FBQyxzQkFBc0IsR0FBRyxJQUFJLENBQUM7WUFDbEQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzVELENBQUM7SUFDSCxDQUFDO3VHQTdDVSx3QkFBd0I7MkZBQXhCLHdCQUF3Qiw0SENsQ3JDLDhTQVdBLDBERGVJLElBQUksNEZBQ0osZUFBZSwySUFDZixnQkFBZ0IsNFRBQ2hCLGFBQWEsK0tBQ2IsU0FBUyw2Q0FDVCxlQUFlOzsyRkFHTix3QkFBd0I7a0JBZnBDLFNBQVM7K0JBQ0Usc0JBQXNCLG1CQUdmLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxXQUNQO3dCQUNQLElBQUk7d0JBQ0osZUFBZTt3QkFDZixnQkFBZ0I7d0JBQ2hCLGFBQWE7d0JBQ2IsU0FBUzt3QkFDVCxlQUFlO3FCQUNoQjttRkFTRyxLQUFLO3NCQURSLEtBQUs7Z0JBVUcsS0FBSztzQkFBYixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXN5bmNQaXBlLCBOZ0lmIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQgeyBNYXRUb29sdGlwTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbHRpcCc7XG5cbmltcG9ydCB0eXBlIHsgTGF5ZXIgfSBmcm9tICdAaWdvMi9nZW8nO1xuXG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgU3Vic2NyaXB0aW9uLCBjb21iaW5lTGF0ZXN0IH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IFdvcmtzcGFjZVN0YXRlIH0gZnJvbSAnLi4vd29ya3NwYWNlLnN0YXRlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaWdvLXdvcmtzcGFjZS1idXR0b24nLFxuICB0ZW1wbGF0ZVVybDogJy4vd29ya3NwYWNlLWJ1dHRvbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3dvcmtzcGFjZS1idXR0b24uY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBOZ0lmLFxuICAgIE1hdEJ1dHRvbk1vZHVsZSxcbiAgICBNYXRUb29sdGlwTW9kdWxlLFxuICAgIE1hdEljb25Nb2R1bGUsXG4gICAgQXN5bmNQaXBlLFxuICAgIFRyYW5zbGF0ZU1vZHVsZVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIFdvcmtzcGFjZUJ1dHRvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgcHVibGljIGhhc1dvcmtzcGFjZSQ6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPiA9IG5ldyBCZWhhdmlvclN1YmplY3QoZmFsc2UpO1xuICBwcml2YXRlIGhhc1dvcmtzcGFjZSQkOiBTdWJzY3JpcHRpb247XG5cbiAgcHJpdmF0ZSBfbGF5ZXI6IExheWVyO1xuICBwcml2YXRlIGxheWVyJDogQmVoYXZpb3JTdWJqZWN0PExheWVyPiA9IG5ldyBCZWhhdmlvclN1YmplY3QodW5kZWZpbmVkKTtcbiAgQElucHV0KClcbiAgc2V0IGxheWVyKHZhbHVlOiBMYXllcikge1xuICAgIHRoaXMuX2xheWVyID0gdmFsdWU7XG4gICAgdGhpcy5sYXllciQubmV4dCh0aGlzLl9sYXllcik7XG4gIH1cblxuICBnZXQgbGF5ZXIoKTogTGF5ZXIge1xuICAgIHJldHVybiB0aGlzLl9sYXllcjtcbiAgfVxuXG4gIEBJbnB1dCgpIGNvbG9yOiBzdHJpbmcgPSAncHJpbWFyeSc7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSB3b3Jrc3BhY2VTdGF0ZTogV29ya3NwYWNlU3RhdGUpIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5oYXNXb3Jrc3BhY2UkJCA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgdGhpcy53b3Jrc3BhY2VTdGF0ZS53b3Jrc3BhY2VFbmFibGVkJCxcbiAgICAgIHRoaXMubGF5ZXIkXG4gICAgXSkuc3Vic2NyaWJlKChidW5jaCkgPT5cbiAgICAgIHRoaXMuaGFzV29ya3NwYWNlJC5uZXh0KGJ1bmNoWzBdICYmIGJ1bmNoWzFdPy5vcHRpb25zLndvcmtzcGFjZT8uZW5hYmxlZClcbiAgICApO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5oYXNXb3Jrc3BhY2UkJC51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgYWN0aXZhdGVXb3Jrc3BhY2UoKSB7XG4gICAgaWYgKFxuICAgICAgdGhpcy53b3Jrc3BhY2VTdGF0ZS53b3Jrc3BhY2UkLnZhbHVlICYmXG4gICAgICAodGhpcy53b3Jrc3BhY2VTdGF0ZS53b3Jrc3BhY2UkLnZhbHVlIGFzIGFueSkubGF5ZXIuaWQgPT09XG4gICAgICAgIHRoaXMubGF5ZXIuaWQgJiZcbiAgICAgIHRoaXMud29ya3NwYWNlU3RhdGUud29ya3NwYWNlUGFuZWxFeHBhbmRlZFxuICAgICkge1xuICAgICAgdGhpcy53b3Jrc3BhY2VTdGF0ZS53b3Jrc3BhY2VQYW5lbEV4cGFuZGVkID0gZmFsc2U7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMud29ya3NwYWNlU3RhdGUud29ya3NwYWNlUGFuZWxFeHBhbmRlZCA9IHRydWU7XG4gICAgICB0aGlzLndvcmtzcGFjZVN0YXRlLnNldEFjdGl2ZVdvcmtzcGFjZUJ5SWQodGhpcy5sYXllci5pZCk7XG4gICAgfVxuICB9XG59XG4iLCI8YnV0dG9uXG4gICpuZ0lmPVwiaGFzV29ya3NwYWNlJCB8IGFzeW5jXCJcbiAgbWF0LWljb24tYnV0dG9uXG4gIHRvb2x0aXAtcG9zaXRpb249XCJiZWxvd1wiXG4gIG1hdFRvb2x0aXBTaG93RGVsYXk9XCI1MDBcIlxuICBbbWF0VG9vbHRpcF09XCInaWdvLmludGVncmF0aW9uLndvcmtzcGFjZS50b2dnbGVXb3Jrc3BhY2UnIHwgdHJhbnNsYXRlXCJcbiAgW2NvbG9yXT1cImNvbG9yXCJcbiAgKGNsaWNrKT1cImFjdGl2YXRlV29ya3NwYWNlKClcIlxuPlxuICA8bWF0LWljb24+dGFibGU8L21hdC1pY29uPlxuPC9idXR0b24+XG4iXX0=