@skyux/tiles 10.31.0 → 10.32.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -165,7 +165,7 @@ export class SkyTileComponent {
165
165
  return idService.generateId();
166
166
  },
167
167
  },
168
- ], queries: [{ propertyName: "titleRef", first: true, predicate: SkyTileTitleComponent, descendants: true, read: ElementRef }], viewQueries: [{ propertyName: "grabHandle", first: true, predicate: ["grabHandle"], descendants: true, read: ElementRef }, { propertyName: "title", first: true, predicate: ["titleContainer"], descendants: true, read: ElementRef }], usesOnChanges: true, ngImport: i0, template: "<section\n class=\"sky-tile\"\n [ngClass]=\"{\n 'sky-tile-collapsed': isCollapsed\n }\"\n [skyThemeClass]=\"{\n 'sky-box sky-elevation-1-bordered sky-padding-even-xl': 'modern'\n }\"\n>\n <header class=\"sky-tile-header\">\n <div class=\"sky-tile-header-content\" (click)=\"titleClick()\">\n <div class=\"sky-tile-header-title\" #titleContainer>\n <ng-content select=\"sky-tile-title\" />\n @if (tileName && (helpKey || helpPopoverContent)) {\n <sky-help-inline\n [helpKey]=\"helpKey\"\n [labelText]=\"tileName\"\n [popoverContent]=\"helpPopoverContent\"\n [popoverTitle]=\"helpPopoverTitle\"\n />\n }\n </div>\n <div class=\"sky-tile-summary sky-font-display-3\">\n <ng-content select=\"sky-tile-summary\" />\n </div>\n </div>\n <div class=\"sky-tile-header-column-tools\">\n <div class=\"sky-tile-tools\">\n <ng-container *skyThemeIf=\"'default'\">\n <button\n *ngIf=\"hasHelp\"\n class=\"sky-btn sky-tile-tools-control sky-tile-help\"\n type=\"button\"\n [attr.aria-label]=\"\n tileName\n ? ('skyux_tile_help' | skyLibResources: tileName)\n : ('skyux_tile_help_default' | skyLibResources)\n \"\n [skyThemeClass]=\"{\n 'sky-btn-icon-borderless': 'modern'\n }\"\n (click)=\"helpButtonClicked()\"\n >\n <sky-icon icon=\"question-circle\" />\n </button>\n </ng-container>\n <sky-chevron\n [ariaControls]=\"tileContent.id\"\n [ariaLabel]=\"\n tileName\n ? ('skyux_tile_expand' | skyLibResources: tileName)\n : ('skyux_tile_expand_default' | skyLibResources)\n \"\n [direction]=\"isCollapsed ? 'down' : 'up'\"\n [skyThemeClass]=\"{\n 'sky-tile-tools-control': 'default',\n 'sky-margin-inline-default': 'modern'\n }\"\n (directionChange)=\"chevronDirectionChange($event)\"\n >\n </sky-chevron>\n <button\n *ngIf=\"hasSettings\"\n class=\"sky-btn sky-tile-settings\"\n type=\"button\"\n [attr.aria-label]=\"\n tileName\n ? ('skyux_tile_settings' | skyLibResources: tileName)\n : ('skyux_tile_settings_default' | skyLibResources)\n \"\n [skyThemeClass]=\"{\n 'sky-tile-tools-control': 'default',\n 'sky-btn-icon-borderless sky-margin-inline-default': 'modern'\n }\"\n (click)=\"settingsButtonClicked()\"\n >\n <sky-icon icon=\"cog\" />\n </button>\n <button\n *ngIf=\"isInDashboardColumn\"\n class=\"sky-btn sky-tile-grab-handle\"\n type=\"button\"\n [attr.aria-label]=\"\n tileName\n ? ('skyux_tile_move' | skyLibResources: tileName)\n : ('skyux_tile_move_default' | skyLibResources)\n \"\n [attr.aria-describedby]=\"ariaDescribedBy\"\n [skyThemeClass]=\"{\n 'sky-tile-tools-control': 'default',\n 'sky-btn-icon-borderless': 'modern'\n }\"\n (click)=\"$event.stopPropagation()\"\n (keydown)=\"moveTile($event)\"\n #grabHandle\n >\n <sky-icon icon=\"tile-drag\" />\n </button>\n </div>\n </div>\n </header>\n <div\n class=\"sky-tile-content\"\n role=\"region\"\n skyId\n [attr.aria-label]=\"tileName\"\n [attr.aria-labelledBy]=\"!tileName && titleRef ? tileTitleId : undefined\"\n [@skyAnimationSlide]=\"isCollapsed ? 'up' : 'down'\"\n #tileContent=\"skyId\"\n >\n <ng-content select=\"sky-tile-content\" />\n </div>\n</section>\n", styles: [".sky-tile{background-color:#fff;margin-bottom:20px}.sky-tile-header{border-color:#cdcfd2;border-style:solid solid none;border-width:4px 0 0;display:flex}.sky-tile-header-content{display:flex;flex:1;align-items:baseline;cursor:pointer}.sky-tile-header-title{display:inline-flex;align-items:baseline;padding:10px 15px}.sky-tile-header-title>sky-help-inline{margin-left:var(--sky-margin-inline-xs)}.sky-tile-summary{color:#0974a1;display:none;padding-right:15px;max-height:30px;overflow:hidden}.sky-tile-collapsed .sky-tile-summary{display:block}.sky-tile-header-column-tools{display:flex;align-items:center;flex:0 0 auto}.sky-tile-tools{display:flex;padding-right:15px}.sky-tile-tools-control{color:#cdcfd2;cursor:pointer;border:0;width:24px;height:24px;padding:0;display:block;margin:0 0 0 9px}.sky-tile-tools-control:hover{color:#979ba2;transition:color .15s}.sky-tile-grab-handle{cursor:move;cursor:-webkit-grab;cursor:-moz-grab;font-size:15px}.sky-tile-content{border-color:#e2e3e4;border-image:none;border-style:solid solid none;border-width:1px 0}:host-context(.sky-theme-modern) .sky-tile-header,:host-context(.sky-theme-modern) .sky-tile-content{border:none}:host-context(.sky-theme-modern) .sky-tile-header-title{padding:0;margin:0 30px 0 0}:host-context(.sky-theme-modern) .sky-tile-header-column-tools{align-items:flex-start}:host-context(.sky-theme-modern) .sky-tile-tools{padding:0}:host-context(.sky-theme-modern) .sky-tile-tools-control{font-size:18px;color:#686c73}:host-context(.sky-theme-modern) .sky-tile-grab-handle{font-size:16px}:host-context(.sky-theme-modern) .sky-tile-content ::ng-deep .sky-tile-content-section{border-bottom:1px dotted #c0c2c5}:host-context(.sky-theme-modern) .sky-tile-content ::ng-deep sky-tile-content-section:first-child .sky-tile-content-section{margin-top:15px}:host-context(.sky-theme-modern) .sky-tile-content ::ng-deep sky-tile-content-section:last-child .sky-tile-content-section{padding-bottom:0;border-bottom:none}:host-context(.sky-theme-modern) :host .sky-tile{border-radius:0}:host-context(.sky-theme-modern) :host-context(.sky-responsive-container-xs) .sky-tile,:host-context(.sky-theme-modern) :host-context(.sky-responsive-container-sm) .sky-tile,:host-context(.sky-theme-modern) :host-context(.sky-responsive-container-md) .sky-tile,:host-context(.sky-theme-modern) :host-context(.sky-responsive-container-lg) .sky-tile{border-radius:0}@media (min-width: 768px){:host-context(.sky-theme-modern) :host .sky-tile{border-radius:6px}}:host-context(.sky-theme-modern) :host-context(.sky-responsive-container-sm) .sky-tile,:host-context(.sky-theme-modern) :host-context(.sky-responsive-container-md) .sky-tile,:host-context(.sky-theme-modern) :host-context(.sky-responsive-container-lg) .sky-tile{border-radius:6px}.sky-theme-modern .sky-tile-header,.sky-theme-modern .sky-tile-content{border:none}.sky-theme-modern .sky-tile-header-title{padding:0;margin:0 30px 0 0}.sky-theme-modern .sky-tile-header-column-tools{align-items:flex-start}.sky-theme-modern .sky-tile-tools{padding:0}.sky-theme-modern .sky-tile-tools-control{font-size:18px;color:#686c73}.sky-theme-modern .sky-tile-grab-handle{font-size:16px}.sky-theme-modern .sky-tile-content ::ng-deep .sky-tile-content-section{border-bottom:1px dotted #c0c2c5}.sky-theme-modern .sky-tile-content ::ng-deep sky-tile-content-section:first-child .sky-tile-content-section{margin-top:15px}.sky-theme-modern .sky-tile-content ::ng-deep sky-tile-content-section:last-child .sky-tile-content-section{padding-bottom:0;border-bottom:none}.sky-theme-modern :host .sky-tile{border-radius:0}.sky-theme-modern :host-context(.sky-responsive-container-xs) .sky-tile,.sky-theme-modern :host-context(.sky-responsive-container-sm) .sky-tile,.sky-theme-modern :host-context(.sky-responsive-container-md) .sky-tile,.sky-theme-modern :host-context(.sky-responsive-container-lg) .sky-tile{border-radius:0}@media (min-width: 768px){.sky-theme-modern :host .sky-tile{border-radius:6px}}.sky-theme-modern :host-context(.sky-responsive-container-sm) .sky-tile,.sky-theme-modern :host-context(.sky-responsive-container-md) .sky-tile,.sky-theme-modern :host-context(.sky-responsive-container-lg) .sky-tile{border-radius:6px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: SkyChevronModule }, { kind: "component", type: i3.λ2, selector: "sky-chevron", inputs: ["ariaControls", "ariaLabel", "direction", "disabled"], outputs: ["directionChange"] }, { kind: "ngmodule", type: SkyHelpInlineModule }, { kind: "component", type: i4.λ1, selector: "sky-help-inline", inputs: ["ariaControls", "ariaExpanded", "ariaLabel", "labelText", "popoverContent", "popoverTitle", "helpKey"], outputs: ["actionClick"] }, { kind: "ngmodule", type: SkyIconModule }, { kind: "component", type: i5.λ1, selector: "sky-icon", inputs: ["icon", "iconType", "size", "fixedWidth", "variant"] }, { kind: "ngmodule", type: SkyIdModule }, { kind: "directive", type: i6.λ2, selector: "[skyId]", exportAs: ["skyId"] }, { kind: "ngmodule", type: SkyThemeModule }, { kind: "directive", type: i7.λ2, selector: "[skyThemeClass]", inputs: ["class", "skyThemeClass"] }, { kind: "directive", type: i7.λ3, selector: "[skyThemeIf]", inputs: ["skyThemeIf"] }, { kind: "ngmodule", type: SkyTilesResourcesModule }, { kind: "pipe", type: i8.SkyLibResourcesPipe, name: "skyLibResources" }], animations: [skyAnimationSlide] }); }
168
+ ], queries: [{ propertyName: "titleRef", first: true, predicate: SkyTileTitleComponent, descendants: true, read: ElementRef }], viewQueries: [{ propertyName: "grabHandle", first: true, predicate: ["grabHandle"], descendants: true, read: ElementRef }, { propertyName: "title", first: true, predicate: ["titleContainer"], descendants: true, read: ElementRef }], usesOnChanges: true, ngImport: i0, template: "<section\n class=\"sky-tile\"\n [ngClass]=\"{\n 'sky-tile-collapsed': isCollapsed\n }\"\n [skyThemeClass]=\"{\n 'sky-box sky-elevation-1-bordered sky-padding-even-xl': 'modern'\n }\"\n>\n <header class=\"sky-tile-header\">\n <div class=\"sky-tile-header-content\" (click)=\"titleClick()\">\n <div class=\"sky-tile-header-title\" #titleContainer>\n <ng-content select=\"sky-tile-title\" />\n @if (tileName && (helpKey || helpPopoverContent)) {\n <sky-help-inline\n [helpKey]=\"helpKey\"\n [labelText]=\"tileName\"\n [popoverContent]=\"helpPopoverContent\"\n [popoverTitle]=\"helpPopoverTitle\"\n />\n }\n </div>\n <div class=\"sky-tile-summary sky-font-display-3\">\n <ng-content select=\"sky-tile-summary\" />\n </div>\n </div>\n <div class=\"sky-tile-header-column-tools\">\n <div class=\"sky-tile-tools\">\n <ng-container *skyThemeIf=\"'default'\">\n <button\n *ngIf=\"hasHelp\"\n class=\"sky-btn sky-tile-tools-control sky-tile-help\"\n type=\"button\"\n [attr.aria-label]=\"\n tileName\n ? ('skyux_tile_help' | skyLibResources: tileName)\n : ('skyux_tile_help_default' | skyLibResources)\n \"\n [skyThemeClass]=\"{\n 'sky-btn-icon-borderless': 'modern'\n }\"\n (click)=\"helpButtonClicked()\"\n >\n <sky-icon icon=\"question-circle\" />\n </button>\n </ng-container>\n <sky-chevron\n [ariaControls]=\"tileContent.id\"\n [ariaLabel]=\"\n tileName\n ? ('skyux_tile_expand' | skyLibResources: tileName)\n : ('skyux_tile_expand_default' | skyLibResources)\n \"\n [direction]=\"isCollapsed ? 'down' : 'up'\"\n [skyThemeClass]=\"{\n 'sky-tile-tools-control': 'default',\n 'sky-margin-inline-default': 'modern'\n }\"\n (directionChange)=\"chevronDirectionChange($event)\"\n >\n </sky-chevron>\n <button\n *ngIf=\"hasSettings\"\n class=\"sky-btn sky-tile-settings\"\n type=\"button\"\n [attr.aria-label]=\"\n tileName\n ? ('skyux_tile_settings' | skyLibResources: tileName)\n : ('skyux_tile_settings_default' | skyLibResources)\n \"\n [skyThemeClass]=\"{\n 'sky-tile-tools-control': 'default',\n 'sky-btn-icon-borderless sky-margin-inline-default': 'modern'\n }\"\n (click)=\"settingsButtonClicked()\"\n >\n <sky-icon icon=\"cog\" />\n </button>\n <button\n *ngIf=\"isInDashboardColumn\"\n class=\"sky-btn sky-tile-grab-handle\"\n type=\"button\"\n [attr.aria-label]=\"\n tileName\n ? ('skyux_tile_move' | skyLibResources: tileName)\n : ('skyux_tile_move_default' | skyLibResources)\n \"\n [attr.aria-describedby]=\"ariaDescribedBy\"\n [skyThemeClass]=\"{\n 'sky-tile-tools-control': 'default',\n 'sky-btn-icon-borderless': 'modern'\n }\"\n (click)=\"$event.stopPropagation()\"\n (keydown)=\"moveTile($event)\"\n #grabHandle\n >\n <sky-icon icon=\"tile-drag\" />\n </button>\n </div>\n </div>\n </header>\n <div\n class=\"sky-tile-content\"\n role=\"region\"\n skyId\n [attr.aria-label]=\"tileName\"\n [attr.aria-labelledBy]=\"!tileName && titleRef ? tileTitleId : undefined\"\n [@skyAnimationSlide]=\"isCollapsed ? 'up' : 'down'\"\n #tileContent=\"skyId\"\n >\n <ng-content select=\"sky-tile-content\" />\n </div>\n</section>\n", styles: [".sky-tile{background-color:#fff;margin-bottom:20px}.sky-tile-header{border-color:#cdcfd2;border-style:solid solid none;border-width:4px 0 0;display:flex}.sky-tile-header-content{display:flex;flex:1;align-items:baseline;cursor:pointer}.sky-tile-header-title{display:inline-flex;align-items:baseline;padding:10px 15px}.sky-tile-header-title>sky-help-inline{margin-left:var(--sky-margin-inline-xs)}.sky-tile-summary{color:#0974a1;display:none;padding-right:15px;max-height:30px;overflow:hidden}.sky-tile-collapsed .sky-tile-summary{display:block}.sky-tile-header-column-tools{display:flex;align-items:center;flex:0 0 auto}.sky-tile-tools{display:flex;padding-right:15px}.sky-tile-tools-control{color:#cdcfd2;cursor:pointer;border:0;width:24px;height:24px;padding:0;display:block;margin:0 0 0 9px}.sky-tile-tools-control:hover{color:#979ba2;transition:color .15s}.sky-tile-grab-handle{cursor:move;cursor:-webkit-grab;cursor:-moz-grab;font-size:15px}.sky-tile-content{border-color:#e2e3e4;border-image:none;border-style:solid solid none;border-width:1px 0}:host-context(.sky-theme-modern) .sky-tile-header,:host-context(.sky-theme-modern) .sky-tile-content{border:none}:host-context(.sky-theme-modern) .sky-tile-header-title{padding:0;margin:0 30px 0 0}:host-context(.sky-theme-modern) .sky-tile-header-column-tools{align-items:flex-start}:host-context(.sky-theme-modern) .sky-tile-tools{padding:0}:host-context(.sky-theme-modern) .sky-tile-tools-control{font-size:18px;color:#686c73}:host-context(.sky-theme-modern) .sky-tile-grab-handle{font-size:16px}:host-context(.sky-theme-modern) .sky-tile-content ::ng-deep .sky-tile-content-section{border-bottom:1px dotted #c0c2c5}:host-context(.sky-theme-modern) .sky-tile-content ::ng-deep sky-tile-content-section:first-child .sky-tile-content-section{margin-top:15px}:host-context(.sky-theme-modern) .sky-tile-content ::ng-deep sky-tile-content-section:last-child .sky-tile-content-section{padding-bottom:0;border-bottom:none}:host-context(.sky-theme-modern) :host .sky-tile{border-radius:0}:host-context(.sky-theme-modern) :host-context(.sky-responsive-container-xs) .sky-tile,:host-context(.sky-theme-modern) :host-context(.sky-responsive-container-sm) .sky-tile,:host-context(.sky-theme-modern) :host-context(.sky-responsive-container-md) .sky-tile,:host-context(.sky-theme-modern) :host-context(.sky-responsive-container-lg) .sky-tile{border-radius:0}@media (min-width: 768px){:host-context(.sky-theme-modern) :host .sky-tile{border-radius:6px}}:host-context(.sky-theme-modern) :host-context(.sky-responsive-container-sm) .sky-tile,:host-context(.sky-theme-modern) :host-context(.sky-responsive-container-md) .sky-tile,:host-context(.sky-theme-modern) :host-context(.sky-responsive-container-lg) .sky-tile{border-radius:6px}.sky-theme-modern .sky-tile-header,.sky-theme-modern .sky-tile-content{border:none}.sky-theme-modern .sky-tile-header-title{padding:0;margin:0 30px 0 0}.sky-theme-modern .sky-tile-header-column-tools{align-items:flex-start}.sky-theme-modern .sky-tile-tools{padding:0}.sky-theme-modern .sky-tile-tools-control{font-size:18px;color:#686c73}.sky-theme-modern .sky-tile-grab-handle{font-size:16px}.sky-theme-modern .sky-tile-content ::ng-deep .sky-tile-content-section{border-bottom:1px dotted #c0c2c5}.sky-theme-modern .sky-tile-content ::ng-deep sky-tile-content-section:first-child .sky-tile-content-section{margin-top:15px}.sky-theme-modern .sky-tile-content ::ng-deep sky-tile-content-section:last-child .sky-tile-content-section{padding-bottom:0;border-bottom:none}.sky-theme-modern :host .sky-tile{border-radius:0}.sky-theme-modern :host-context(.sky-responsive-container-xs) .sky-tile,.sky-theme-modern :host-context(.sky-responsive-container-sm) .sky-tile,.sky-theme-modern :host-context(.sky-responsive-container-md) .sky-tile,.sky-theme-modern :host-context(.sky-responsive-container-lg) .sky-tile{border-radius:0}@media (min-width: 768px){.sky-theme-modern :host .sky-tile{border-radius:6px}}.sky-theme-modern :host-context(.sky-responsive-container-sm) .sky-tile,.sky-theme-modern :host-context(.sky-responsive-container-md) .sky-tile,.sky-theme-modern :host-context(.sky-responsive-container-lg) .sky-tile{border-radius:6px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: SkyChevronModule }, { kind: "component", type: i3.λ2, selector: "sky-chevron", inputs: ["ariaControls", "ariaLabel", "direction", "disabled"], outputs: ["directionChange"] }, { kind: "ngmodule", type: SkyHelpInlineModule }, { kind: "component", type: i4.λ1, selector: "sky-help-inline", inputs: ["ariaControls", "ariaExpanded", "ariaLabel", "labelledBy", "labelText", "popoverContent", "popoverTitle", "helpKey"], outputs: ["actionClick"] }, { kind: "ngmodule", type: SkyIconModule }, { kind: "component", type: i5.λ1, selector: "sky-icon", inputs: ["icon", "iconType", "size", "fixedWidth", "variant"] }, { kind: "ngmodule", type: SkyIdModule }, { kind: "directive", type: i6.λ2, selector: "[skyId]", exportAs: ["skyId"] }, { kind: "ngmodule", type: SkyThemeModule }, { kind: "directive", type: i7.λ2, selector: "[skyThemeClass]", inputs: ["class", "skyThemeClass"] }, { kind: "directive", type: i7.λ3, selector: "[skyThemeIf]", inputs: ["skyThemeIf"] }, { kind: "ngmodule", type: SkyTilesResourcesModule }, { kind: "pipe", type: i8.SkyLibResourcesPipe, name: "skyLibResources" }], animations: [skyAnimationSlide] }); }
169
169
  }
170
170
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: SkyTileComponent, decorators: [{
171
171
  type: Component,
@@ -224,4 +224,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImpor
224
224
  type: ContentChild,
225
225
  args: [SkyTileTitleComponent, { read: ElementRef }]
226
226
  }] } });
227
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvdGlsZXMvc3JjL2xpYi9tb2R1bGVzL3RpbGVzL3RpbGUvdGlsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvdGlsZXMvc3JjL2xpYi9tb2R1bGVzL3RpbGVzL3RpbGUvdGlsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUVMLFNBQVMsRUFDVCxZQUFZLEVBQ1osVUFBVSxFQUNWLFlBQVksRUFDWixLQUFLLEVBR0wsUUFBUSxFQUNSLE1BQU0sRUFHTixTQUFTLEVBQ1QsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLGFBQWEsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN2RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFOUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0MsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFHbEYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7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UixNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7Z0NBQ3ZDLE9BQU8sU0FBUyxDQUFDLFVBQVUsRUFBRSxDQUFDOzRCQUNoQyxDQUFDO3lCQUNGO3FCQUNGOzswQkFpSUUsUUFBUTt5Q0F4SEosT0FBTztzQkFEYixLQUFLO2dCQVVDLGtCQUFrQjtzQkFEeEIsS0FBSztnQkFTQyxnQkFBZ0I7c0JBRHRCLEtBQUs7Z0JBU0MsWUFBWTtzQkFEbEIsS0FBSztnQkFVQyxRQUFRO3NCQURkLEtBQUs7Z0JBUUMsUUFBUTtzQkFEZCxLQUFLO2dCQVFDLGFBQWE7c0JBRG5CLE1BQU07Z0JBUUEsaUJBQWlCO3NCQUR2QixNQUFNO2dCQVNBLFNBQVM7c0JBRGYsTUFBTTtnQkFpQkksV0FBVztzQkFEckIsS0FBSztnQkFtQkMsVUFBVTtzQkFKaEIsU0FBUzt1QkFBQyxZQUFZLEVBQUU7d0JBQ3ZCLElBQUksRUFBRSxVQUFVO3dCQUNoQixNQUFNLEVBQUUsS0FBSztxQkFDZDtnQkFPTSxLQUFLO3NCQUpYLFNBQVM7dUJBQUMsZ0JBQWdCLEVBQUU7d0JBQzNCLElBQUksRUFBRSxVQUFVO3dCQUNoQixNQUFNLEVBQUUsS0FBSztxQkFDZDtnQkFJUyxRQUFRO3NCQURqQixZQUFZO3VCQUFDLHFCQUFxQixFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT25EZXN0cm95LFxuICBPcHRpb25hbCxcbiAgT3V0cHV0LFxuICBTaW1wbGVDaGFuZ2VzLFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NoaWxkLFxuICBpbmplY3QsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgc2t5QW5pbWF0aW9uU2xpZGUgfSBmcm9tICdAc2t5dXgvYW5pbWF0aW9ucyc7XG5pbXBvcnQgeyBTa3lJZE1vZHVsZSwgU2t5SWRTZXJ2aWNlLCBTa3lMb2dTZXJ2aWNlIH0gZnJvbSAnQHNreXV4L2NvcmUnO1xuaW1wb3J0IHsgU2t5SGVscElubGluZU1vZHVsZSB9IGZyb20gJ0Bza3l1eC9oZWxwLWlubGluZSc7XG5pbXBvcnQgeyBTa3lJY29uTW9kdWxlIH0gZnJvbSAnQHNreXV4L2ljb24nO1xuaW1wb3J0IHsgU2t5Q2hldnJvbk1vZHVsZSB9IGZyb20gJ0Bza3l1eC9pbmRpY2F0b3JzJztcbmltcG9ydCB7IFNreVRoZW1lTW9kdWxlIH0gZnJvbSAnQHNreXV4L3RoZW1lJztcblxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBTa3lUaWxlc1Jlc291cmNlc01vZHVsZSB9IGZyb20gJy4uLy4uL3NoYXJlZC9za3ktdGlsZXMtcmVzb3VyY2VzLm1vZHVsZSc7XG5pbXBvcnQgeyBTa3lUaWxlRGFzaGJvYXJkU2VydmljZSB9IGZyb20gJy4uL3RpbGUtZGFzaGJvYXJkL3RpbGUtZGFzaGJvYXJkLnNlcnZpY2UnO1xuXG5pbXBvcnQgeyBTS1lfVElMRV9USVRMRV9JRCB9IGZyb20gJy4vdGlsZS10aXRsZS1pZC10b2tlbic7XG5pbXBvcnQgeyBTa3lUaWxlVGl0bGVDb21wb25lbnQgfSBmcm9tICcuL3RpbGUtdGl0bGUuY29tcG9uZW50JztcblxuLyoqXG4gKiBQcm92aWRlcyBhIGNvbW1vbiBsb29rLWFuZC1mZWVsIGZvciB0YWIgY29udGVudC5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHNlbGVjdG9yOiAnc2t5LXRpbGUnLFxuICBzdHlsZVVybHM6IFsnLi90aWxlLmNvbXBvbmVudC5zY3NzJ10sXG4gIHRlbXBsYXRlVXJsOiAnLi90aWxlLmNvbXBvbmVudC5odG1sJyxcbiAgYW5pbWF0aW9uczogW3NreUFuaW1hdGlvblNsaWRlXSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBTa3lDaGV2cm9uTW9kdWxlLFxuICAgIFNreUhlbHBJbmxpbmVNb2R1bGUsXG4gICAgU2t5SWNvbk1vZHVsZSxcbiAgICBTa3lJZE1vZHVsZSxcbiAgICBTa3lUaGVtZU1vZHVsZSxcbiAgICBTa3lUaWxlc1Jlc291cmNlc01vZHVsZSxcbiAgXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogU0tZX1RJTEVfVElUTEVfSUQsXG4gICAgICB1c2VGYWN0b3J5KCk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IGlkU2VydmljZSA9IGluamVjdChTa3lJZFNlcnZpY2UpO1xuICAgICAgICByZXR1cm4gaWRTZXJ2aWNlLmdlbmVyYXRlSWQoKTtcbiAgICAgIH0sXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5VGlsZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcbiAgLyoqXG4gICAqIEEgaGVscCBrZXkgdGhhdCBpZGVudGlmaWVzIHRoZSBnbG9iYWwgaGVscCBjb250ZW50IHRvIGRpc3BsYXkuIFdoZW4gc3BlY2lmaWVkLCBhIFtoZWxwIGlubGluZV0oaHR0cHM6Ly9kZXZlbG9wZXIuYmxhY2tiYXVkLmNvbS9za3l1eC9jb21wb25lbnRzL2hlbHAtaW5saW5lKSBidXR0b24gaXNcbiAgICogYWRkZWQgdG8gdGhlIHRpbGUgaGVhZGVyLiBDbGlja2luZyB0aGUgYnV0dG9uIGludm9rZXMgZ2xvYmFsIGhlbHAgYXMgY29uZmlndXJlZCBieSB0aGUgYXBwbGljYXRpb24uXG4gICAqIEBwcmV2aWV3XG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgaGVscEtleTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBUaGUgY29udGVudCBvZiB0aGUgaGVscCBwb3BvdmVyLiBXaGVuIHNwZWNpZmllZCwgYSBbaGVscCBpbmxpbmVdKGh0dHBzOi8vZGV2ZWxvcGVyLmJsYWNrYmF1ZC5jb20vc2t5dXgvY29tcG9uZW50cy9oZWxwLWlubGluZSlcbiAgICogYnV0dG9uIGlzIGFkZGVkIHRvIHRoZSB0aWxlIGhlYWRlci4gVGhlIGhlbHAgaW5saW5lIGJ1dHRvbiBkaXNwbGF5cyBhIFtwb3BvdmVyXShodHRwczovL2RldmVsb3Blci5ibGFja2JhdWQuY29tL3NreXV4L2NvbXBvbmVudHMvcG9wb3ZlcilcbiAgICogd2hlbiBjbGlja2VkIHVzaW5nIHRoZSBzcGVjaWZpZWQgY29udGVudCBhbmQgb3B0aW9uYWwgdGl0bGUuXG4gICAqIEBwcmV2aWV3XG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgaGVscFBvcG92ZXJDb250ZW50OiBzdHJpbmcgfCBUZW1wbGF0ZVJlZjx1bmtub3duPiB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogVGhlIHRpdGxlIG9mIHRoZSBoZWxwIHBvcG92ZXIuIFRoaXMgcHJvcGVydHkgb25seSBhcHBsaWVzIHdoZW4gYGhlbHBQb3BvdmVyQ29udGVudGAgaXNcbiAgICogYWxzbyBzcGVjaWZpZWQuXG4gICAqIEBwcmV2aWV3XG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgaGVscFBvcG92ZXJUaXRsZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGRpc3BsYXkgYSBzZXR0aW5ncyBidXR0b24gaW4gdGhlIHRpbGUgaGVhZGVyLiBUbyBkaXNwbGF5IHRoZVxuICAgKiBidXR0b24sIHlvdSBtdXN0IGFsc28gbGlzdGVuIGZvciB0aGUgYHNldHRpbmdzQ2xpY2tgIGV2ZW50LlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2hvd1NldHRpbmdzID0gdHJ1ZTtcblxuICAvKipcbiAgICogV2hldGhlciB0byBkaXNwbGF5IGEgaGVscCBidXR0b24gaW4gdGhlIHRpbGUgaGVhZGVyLiBUbyBkaXNwbGF5IHRoZVxuICAgKiBidXR0b24sIHlvdSBtdXN0IGFsc28gbGlzdGVuIGZvciB0aGUgYGhlbHBDbGlja2AgZXZlbnQuXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICogQGRlcHJlY2F0ZWQgU2V0IHRoZSBgaGVscEtleWAgb3IgYGhlbHBQb3BvdmVyQ29udGVudGAgaW5wdXRzIGluc3RlYWQuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2hvd0hlbHAgPSB0cnVlO1xuXG4gIC8qKlxuICAgKiBUaGUgaHVtYW4tcmVhZGFibGUgbmFtZSBmb3IgdGhlIHRpbGUgdGhhdCBpcyBhdmFpbGFibGUgdG8gdGhlIHRpbGUgY29udHJvbHMgZm9yIG11bHRpcGxlIHB1cnBvc2VzLCBzdWNoIGFzIGFjY2Vzc2liaWxpdHkgYW5kIGluc3RydW1lbnRhdGlvbi4gVGhlIGNvbXBvbmVudCB1c2VzIHRoZSBuYW1lIHRvIGNvbnN0cnVjdCBBUklBIGxhYmVscyBmb3IgdGhlIGhlbHAsIGV4cGFuZC9jb2xsYXBzZSwgc2V0dGluZ3MsIGFuZCBkcmFnIGhhbmRsZSBidXR0b25zIHRvIFtzdXBwb3J0IGFjY2Vzc2liaWxpdHldKGh0dHBzOi8vZGV2ZWxvcGVyLmJsYWNrYmF1ZC5jb20vc2t5dXgvbGVhcm4vYWNjZXNzaWJpbGl0eSkuXG4gICAqIEZvciBleGFtcGxlLCBpZiB0aGUgdGlsZSBuYW1lIGlzIFwiQ29uc3RpdHVlbnRzLFwiIHRoZSBoZWxwIGlucHV0J3MgYGFyaWEtbGFiZWxgIGlzIFwiQ29uc3RpdHVlbnRzIGhlbHBcIiBhbmQgdGhlIGRyYWcgaGFuZGxlJ3MgYGFyaWEtbGFiZWxgIGlzIFwiTW92ZSBDb25zdGl0dWVudHMuXCIgRm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGBhcmlhLWxhYmVsYCBhdHRyaWJ1dGUsIHNlZSB0aGUgW1dBSS1BUklBIGRlZmluaXRpb25dKGh0dHBzOi8vd3d3LnczLm9yZy9UUi93YWktYXJpYS8jYXJpYS1sYWJlbCkuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgdGlsZU5hbWU6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogRmlyZXMgd2hlbiB1c2VycyBzZWxlY3QgdGhlIHNldHRpbmdzIGJ1dHRvbiBpbiB0aGUgdGlsZSBoZWFkZXIuIFRoZSBzZXR0aW5nc1xuICAgKiBidXR0b24gb25seSBhcHBlYXJzIHdoZW4gdGhlIGBzaG93U2V0dGluZ3NgIHByb3BlcnR5IGlzIHNldCB0byBgdHJ1ZWAuXG4gICAqL1xuICBAT3V0cHV0KClcbiAgcHVibGljIHNldHRpbmdzQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgLyoqXG4gICAqIEZpcmVzIHdoZW4gdGhlIHRpbGUncyBjb2xsYXBzZWQgc3RhdGUgY2hhbmdlcy4gUmV0dXJucyBgdHJ1ZWAgd2hlbiB0aGUgdGlsZVxuICAgKiBjb2xsYXBzZXMgYW5kIGBmYWxzZWAgd2hlbiBpdCBleHBhbmRzLlxuICAgKi9cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBpc0NvbGxhcHNlZENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICAvKipcbiAgICogRmlyZXMgd2hlbiB1c2VycyBzZWxlY3QgdGhlIGhlbHAgYnV0dG9uIGluIHRoZSB0aWxlIGhlYWRlci4gVGhlIGhlbHBcbiAgICogYnV0dG9uIG9ubHkgYXBwZWFycyB3aGVuIHRoZSBgc2hvd0hlbHBgIHByb3BlcnR5IGlzIHNldCB0byBgdHJ1ZWAuXG4gICAqIEBkZXByZWNhdGVkIFNldCB0aGUgYGhlbHBLZXlgIG9yIGBoZWxwUG9wb3ZlckNvbnRlbnRgIGlucHV0cyBpbnN0ZWFkLlxuICAgKi9cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBoZWxwQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgcHVibGljIGdldCBpc0NvbGxhcHNlZCgpOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy4jZGFzaGJvYXJkU2VydmljZSkge1xuICAgICAgY29uc3QgY29uZmlnQ29sbGFwc2VkU3RhdGUgPSB0aGlzLiNkYXNoYm9hcmRTZXJ2aWNlLnRpbGVJc0NvbGxhcHNlZCh0aGlzKTtcbiAgICAgIHRoaXMuI19pc0NvbGxhcHNlZCA9IGNvbmZpZ0NvbGxhcHNlZFN0YXRlO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLiNfaXNDb2xsYXBzZWQ7XG4gIH1cblxuICAvKipcbiAgICogV2hldGhlciB0aGUgdGlsZSBpcyBpbiBhIGNvbGxhcHNlZCBzdGF0ZS5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgaXNDb2xsYXBzZWQodmFsdWU6IGJvb2xlYW4gfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLiNfaXNDb2xsYXBzZWQgPSAhIXZhbHVlO1xuXG4gICAgaWYgKHRoaXMuI2Rhc2hib2FyZFNlcnZpY2UpIHtcbiAgICAgIHRoaXMuI2Rhc2hib2FyZFNlcnZpY2Uuc2V0VGlsZUNvbGxhcHNlZCh0aGlzLCB0aGlzLiNfaXNDb2xsYXBzZWQpO1xuICAgIH1cblxuICAgIHRoaXMuaXNDb2xsYXBzZWRDaGFuZ2UuZW1pdCh0aGlzLiNfaXNDb2xsYXBzZWQpO1xuICB9XG5cbiAgcHVibGljIGFyaWFEZXNjcmliZWRCeTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIHB1YmxpYyBpc0luRGFzaGJvYXJkQ29sdW1uID0gZmFsc2U7XG5cbiAgQFZpZXdDaGlsZCgnZ3JhYkhhbmRsZScsIHtcbiAgICByZWFkOiBFbGVtZW50UmVmLFxuICAgIHN0YXRpYzogZmFsc2UsXG4gIH0pXG4gIHB1YmxpYyBncmFiSGFuZGxlOiBFbGVtZW50UmVmIHwgdW5kZWZpbmVkO1xuXG4gIEBWaWV3Q2hpbGQoJ3RpdGxlQ29udGFpbmVyJywge1xuICAgIHJlYWQ6IEVsZW1lbnRSZWYsXG4gICAgc3RhdGljOiBmYWxzZSxcbiAgfSlcbiAgcHVibGljIHRpdGxlOiBFbGVtZW50UmVmIHwgdW5kZWZpbmVkO1xuXG4gIEBDb250ZW50Q2hpbGQoU2t5VGlsZVRpdGxlQ29tcG9uZW50LCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSlcbiAgcHJvdGVjdGVkIHRpdGxlUmVmOiBFbGVtZW50UmVmIHwgdW5kZWZpbmVkO1xuXG4gICNjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWY7XG4gICNkYXNoYm9hcmRTZXJ2aWNlOiBTa3lUaWxlRGFzaGJvYXJkU2VydmljZSB8IHVuZGVmaW5lZDtcbiAgI25nVW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICAjX2lzQ29sbGFwc2VkID0gZmFsc2U7XG5cbiAgcHJvdGVjdGVkIHRpbGVUaXRsZUlkID0gaW5qZWN0KFNLWV9USUxFX1RJVExFX0lEKTtcblxuICByZWFkb25seSAjbG9nU3ZjID0gaW5qZWN0KFNreUxvZ1NlcnZpY2UpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgIGNoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBAT3B0aW9uYWwoKSBkYXNoYm9hcmRTZXJ2aWNlPzogU2t5VGlsZURhc2hib2FyZFNlcnZpY2UsXG4gICkge1xuICAgIHRoaXMuI2NoYW5nZURldGVjdG9yID0gY2hhbmdlRGV0ZWN0b3I7XG4gICAgdGhpcy4jZGFzaGJvYXJkU2VydmljZSA9IGRhc2hib2FyZFNlcnZpY2U7XG4gICAgdGhpcy5pc0luRGFzaGJvYXJkQ29sdW1uID0gISF0aGlzLiNkYXNoYm9hcmRTZXJ2aWNlO1xuXG4gICAgaWYgKHRoaXMuI2Rhc2hib2FyZFNlcnZpY2UpIHtcbiAgICAgIHRoaXMuYXJpYURlc2NyaWJlZEJ5ID0gYCR7dGhpcy4jZGFzaGJvYXJkU2VydmljZS5iYWdJZH0tbW92ZS1pbnN0cnVjdGlvbnNgO1xuXG4gICAgICAvKipcbiAgICAgICAqIFRoaXMgc3Vic2NyaXB0aW9uIGVuc3VyZXMgdGhhdCBpZiBhbnkgdmFsdWVzIHdoaWNoIGNvbWUgaW4gZnJvbSB0aGUgZGFzaGJvYXJkIHNlcnZpY2UgYXJlXG4gICAgICAgKiB1cGRhdGVkIHRoYXQgdGhlIGNvbXBvbmVudCB3aWxsIHVwZGF0ZSBpZiB0aGUgdGlsZSdzIHBhcmVudCBjb21wb25lbnQgdXRpbGl6ZXMgT25QdXNoXG4gICAgICAgKiBjaGFuZ2UgZGV0ZWN0aW9uLlxuICAgICAgICovXG4gICAgICB0aGlzLiNkYXNoYm9hcmRTZXJ2aWNlLmNvbmZpZ0NoYW5nZVxuICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpXG4gICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuI2NoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChjaGFuZ2VzWydzaG93SGVscCddPy5maXJzdENoYW5nZSkge1xuICAgICAgdGhpcy4jbG9nU3ZjLmRlcHJlY2F0ZWQoJ1NreVRpbGVDb21wb25lbnQuc2hvd0hlbHAnLCB7XG4gICAgICAgIGRlcHJlY2F0aW9uTWFqb3JWZXJzaW9uOiAxMCxcbiAgICAgICAgcmVwbGFjZW1lbnRSZWNvbW1lbmRhdGlvbjpcbiAgICAgICAgICAnU2V0IHRoZSBgaGVscEtleWAgb3IgYGhlbHBQb3BvdmVyQ29udGVudGAgaW5wdXRzIGluc3RlYWQuJyxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLiNuZ1Vuc3Vic2NyaWJlLm5leHQoKTtcbiAgICB0aGlzLiNuZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKCk7XG4gIH1cblxuICBwdWJsaWMgc2V0dGluZ3NCdXR0b25DbGlja2VkKCk6IHZvaWQge1xuICAgIHRoaXMuc2V0dGluZ3NDbGljay5lbWl0KHVuZGVmaW5lZCk7XG4gIH1cblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWRcbiAgICovXG4gIHB1YmxpYyBoZWxwQnV0dG9uQ2xpY2tlZCgpOiB2b2lkIHtcbiAgICB0aGlzLmhlbHBDbGljay5lbWl0KHVuZGVmaW5lZCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGhhc1NldHRpbmdzKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnNldHRpbmdzQ2xpY2sub2JzZXJ2ZXJzLmxlbmd0aCA+IDAgJiYgdGhpcy5zaG93U2V0dGluZ3M7XG4gIH1cblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWRcbiAgICovXG4gIHB1YmxpYyBnZXQgaGFzSGVscCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5oZWxwQ2xpY2sub2JzZXJ2ZXJzLmxlbmd0aCA+IDAgJiYgdGhpcy5zaG93SGVscDtcbiAgfVxuXG4gIHB1YmxpYyB0aXRsZUNsaWNrKCk6IHZvaWQge1xuICAgIHRoaXMuaXNDb2xsYXBzZWQgPSAhdGhpcy5pc0NvbGxhcHNlZDtcbiAgfVxuXG4gIHB1YmxpYyBjaGV2cm9uRGlyZWN0aW9uQ2hhbmdlKGRpcmVjdGlvbjogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5pc0NvbGxhcHNlZCA9IGRpcmVjdGlvbiA9PT0gJ2Rvd24nO1xuICB9XG5cbiAgcHVibGljIG1vdmVUaWxlKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICBpZiAodGhpcy4jZGFzaGJvYXJkU2VydmljZSkge1xuICAgICAgY29uc3QgZGlyZWN0aW9uID0gZXZlbnQua2V5LnRvTG93ZXJDYXNlKCkucmVwbGFjZSgnYXJyb3cnLCAnJyk7XG4gICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgaWYgKFxuICAgICAgICBkaXJlY3Rpb24gPT09ICd1cCcgfHxcbiAgICAgICAgZGlyZWN0aW9uID09PSAnZG93bicgfHxcbiAgICAgICAgZGlyZWN0aW9uID09PSAnbGVmdCcgfHxcbiAgICAgICAgZGlyZWN0aW9uID09PSAncmlnaHQnXG4gICAgICApIHtcbiAgICAgICAgdGhpcy4jZGFzaGJvYXJkU2VydmljZS5tb3ZlVGlsZU9uS2V5RG93bihcbiAgICAgICAgICB0aGlzLFxuICAgICAgICAgIGRpcmVjdGlvbixcbiAgICAgICAgICB0aGlzLnRpdGxlXG4gICAgICAgICAgICA/IHRoaXMudGl0bGUubmF0aXZlRWxlbWVudC5pbm5lclRleHRcbiAgICAgICAgICAgIDogLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICAgICAgICAgICAgdW5kZWZpbmVkLFxuICAgICAgICApO1xuICAgICAgICB0aGlzLiNmb2N1c0hhbmRsZSgpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICNmb2N1c0hhbmRsZSgpOiB2b2lkIHtcbiAgICB0aGlzLmdyYWJIYW5kbGU/Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgfVxufVxuIiwiPHNlY3Rpb25cbiAgY2xhc3M9XCJza3ktdGlsZVwiXG4gIFtuZ0NsYXNzXT1cIntcbiAgICAnc2t5LXRpbGUtY29sbGFwc2VkJzogaXNDb2xsYXBzZWRcbiAgfVwiXG4gIFtza3lUaGVtZUNsYXNzXT1cIntcbiAgICAnc2t5LWJveCBza3ktZWxldmF0aW9uLTEtYm9yZGVyZWQgc2t5LXBhZGRpbmctZXZlbi14bCc6ICdtb2Rlcm4nXG4gIH1cIlxuPlxuICA8aGVhZGVyIGNsYXNzPVwic2t5LXRpbGUtaGVhZGVyXCI+XG4gICAgPGRpdiBjbGFzcz1cInNreS10aWxlLWhlYWRlci1jb250ZW50XCIgKGNsaWNrKT1cInRpdGxlQ2xpY2soKVwiPlxuICAgICAgPGRpdiBjbGFzcz1cInNreS10aWxlLWhlYWRlci10aXRsZVwiICN0aXRsZUNvbnRhaW5lcj5cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwic2t5LXRpbGUtdGl0bGVcIiAvPlxuICAgICAgICBAaWYgKHRpbGVOYW1lICYmIChoZWxwS2V5IHx8IGhlbHBQb3BvdmVyQ29udGVudCkpIHtcbiAgICAgICAgICA8c2t5LWhlbHAtaW5saW5lXG4gICAgICAgICAgICBbaGVscEtleV09XCJoZWxwS2V5XCJcbiAgICAgICAgICAgIFtsYWJlbFRleHRdPVwidGlsZU5hbWVcIlxuICAgICAgICAgICAgW3BvcG92ZXJDb250ZW50XT1cImhlbHBQb3BvdmVyQ29udGVudFwiXG4gICAgICAgICAgICBbcG9wb3ZlclRpdGxlXT1cImhlbHBQb3BvdmVyVGl0bGVcIlxuICAgICAgICAgIC8+XG4gICAgICAgIH1cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cInNreS10aWxlLXN1bW1hcnkgc2t5LWZvbnQtZGlzcGxheS0zXCI+XG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cInNreS10aWxlLXN1bW1hcnlcIiAvPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cInNreS10aWxlLWhlYWRlci1jb2x1bW4tdG9vbHNcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJza3ktdGlsZS10b29sc1wiPlxuICAgICAgICA8bmctY29udGFpbmVyICpza3lUaGVtZUlmPVwiJ2RlZmF1bHQnXCI+XG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgKm5nSWY9XCJoYXNIZWxwXCJcbiAgICAgICAgICAgIGNsYXNzPVwic2t5LWJ0biBza3ktdGlsZS10b29scy1jb250cm9sIHNreS10aWxlLWhlbHBcIlxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIlxuICAgICAgICAgICAgICB0aWxlTmFtZVxuICAgICAgICAgICAgICAgID8gKCdza3l1eF90aWxlX2hlbHAnIHwgc2t5TGliUmVzb3VyY2VzOiB0aWxlTmFtZSlcbiAgICAgICAgICAgICAgICA6ICgnc2t5dXhfdGlsZV9oZWxwX2RlZmF1bHQnIHwgc2t5TGliUmVzb3VyY2VzKVxuICAgICAgICAgICAgXCJcbiAgICAgICAgICAgIFtza3lUaGVtZUNsYXNzXT1cIntcbiAgICAgICAgICAgICAgJ3NreS1idG4taWNvbi1ib3JkZXJsZXNzJzogJ21vZGVybidcbiAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgKGNsaWNrKT1cImhlbHBCdXR0b25DbGlja2VkKClcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxza3ktaWNvbiBpY29uPVwicXVlc3Rpb24tY2lyY2xlXCIgLz5cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDxza3ktY2hldnJvblxuICAgICAgICAgIFthcmlhQ29udHJvbHNdPVwidGlsZUNvbnRlbnQuaWRcIlxuICAgICAgICAgIFthcmlhTGFiZWxdPVwiXG4gICAgICAgICAgICB0aWxlTmFtZVxuICAgICAgICAgICAgICA/ICgnc2t5dXhfdGlsZV9leHBhbmQnIHwgc2t5TGliUmVzb3VyY2VzOiB0aWxlTmFtZSlcbiAgICAgICAgICAgICAgOiAoJ3NreXV4X3RpbGVfZXhwYW5kX2RlZmF1bHQnIHwgc2t5TGliUmVzb3VyY2VzKVxuICAgICAgICAgIFwiXG4gICAgICAgICAgW2RpcmVjdGlvbl09XCJpc0NvbGxhcHNlZCA/ICdkb3duJyA6ICd1cCdcIlxuICAgICAgICAgIFtza3lUaGVtZUNsYXNzXT1cIntcbiAgICAgICAgICAgICdza3ktdGlsZS10b29scy1jb250cm9sJzogJ2RlZmF1bHQnLFxuICAgICAgICAgICAgJ3NreS1tYXJnaW4taW5saW5lLWRlZmF1bHQnOiAnbW9kZXJuJ1xuICAgICAgICAgIH1cIlxuICAgICAgICAgIChkaXJlY3Rpb25DaGFuZ2UpPVwiY2hldnJvbkRpcmVjdGlvbkNoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgPlxuICAgICAgICA8L3NreS1jaGV2cm9uPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgKm5nSWY9XCJoYXNTZXR0aW5nc1wiXG4gICAgICAgICAgY2xhc3M9XCJza3ktYnRuIHNreS10aWxlLXNldHRpbmdzXCJcbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIlxuICAgICAgICAgICAgdGlsZU5hbWVcbiAgICAgICAgICAgICAgPyAoJ3NreXV4X3RpbGVfc2V0dGluZ3MnIHwgc2t5TGliUmVzb3VyY2VzOiB0aWxlTmFtZSlcbiAgICAgICAgICAgICAgOiAoJ3NreXV4X3RpbGVfc2V0dGluZ3NfZGVmYXVsdCcgfCBza3lMaWJSZXNvdXJjZXMpXG4gICAgICAgICAgXCJcbiAgICAgICAgICBbc2t5VGhlbWVDbGFzc109XCJ7XG4gICAgICAgICAgICAnc2t5LXRpbGUtdG9vbHMtY29udHJvbCc6ICdkZWZhdWx0JyxcbiAgICAgICAgICAgICdza3ktYnRuLWljb24tYm9yZGVybGVzcyBza3ktbWFyZ2luLWlubGluZS1kZWZhdWx0JzogJ21vZGVybidcbiAgICAgICAgICB9XCJcbiAgICAgICAgICAoY2xpY2spPVwic2V0dGluZ3NCdXR0b25DbGlja2VkKClcIlxuICAgICAgICA+XG4gICAgICAgICAgPHNreS1pY29uIGljb249XCJjb2dcIiAvPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICpuZ0lmPVwiaXNJbkRhc2hib2FyZENvbHVtblwiXG4gICAgICAgICAgY2xhc3M9XCJza3ktYnRuIHNreS10aWxlLWdyYWItaGFuZGxlXCJcbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIlxuICAgICAgICAgICAgdGlsZU5hbWVcbiAgICAgICAgICAgICAgPyAoJ3NreXV4X3RpbGVfbW92ZScgfCBza3lMaWJSZXNvdXJjZXM6IHRpbGVOYW1lKVxuICAgICAgICAgICAgICA6ICgnc2t5dXhfdGlsZV9tb3ZlX2RlZmF1bHQnIHwgc2t5TGliUmVzb3VyY2VzKVxuICAgICAgICAgIFwiXG4gICAgICAgICAgW2F0dHIuYXJpYS1kZXNjcmliZWRieV09XCJhcmlhRGVzY3JpYmVkQnlcIlxuICAgICAgICAgIFtza3lUaGVtZUNsYXNzXT1cIntcbiAgICAgICAgICAgICdza3ktdGlsZS10b29scy1jb250cm9sJzogJ2RlZmF1bHQnLFxuICAgICAgICAgICAgJ3NreS1idG4taWNvbi1ib3JkZXJsZXNzJzogJ21vZGVybidcbiAgICAgICAgICB9XCJcbiAgICAgICAgICAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcbiAgICAgICAgICAoa2V5ZG93bik9XCJtb3ZlVGlsZSgkZXZlbnQpXCJcbiAgICAgICAgICAjZ3JhYkhhbmRsZVxuICAgICAgICA+XG4gICAgICAgICAgPHNreS1pY29uIGljb249XCJ0aWxlLWRyYWdcIiAvPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2hlYWRlcj5cbiAgPGRpdlxuICAgIGNsYXNzPVwic2t5LXRpbGUtY29udGVudFwiXG4gICAgcm9sZT1cInJlZ2lvblwiXG4gICAgc2t5SWRcbiAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInRpbGVOYW1lXCJcbiAgICBbYXR0ci5hcmlhLWxhYmVsbGVkQnldPVwiIXRpbGVOYW1lICYmIHRpdGxlUmVmID8gdGlsZVRpdGxlSWQgOiB1bmRlZmluZWRcIlxuICAgIFtAc2t5QW5pbWF0aW9uU2xpZGVdPVwiaXNDb2xsYXBzZWQgPyAndXAnIDogJ2Rvd24nXCJcbiAgICAjdGlsZUNvbnRlbnQ9XCJza3lJZFwiXG4gID5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJza3ktdGlsZS1jb250ZW50XCIgLz5cbiAgPC9kaXY+XG48L3NlY3Rpb24+XG4iXX0=
227
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvdGlsZXMvc3JjL2xpYi9tb2R1bGVzL3RpbGVzL3RpbGUvdGlsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvdGlsZXMvc3JjL2xpYi9tb2R1bGVzL3RpbGVzL3RpbGUvdGlsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUVMLFNBQVMsRUFDVCxZQUFZLEVBQ1osVUFBVSxFQUNWLFlBQVksRUFDWixLQUFLLEVBR0wsUUFBUSxFQUNSLE1BQU0sRUFHTixTQUFTLEVBQ1QsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLGFBQWEsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN2RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFOUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0MsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFHbEYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDMUQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7Ozs7Ozs7Ozs7QUFFL0Q7O0dBRUc7QUEwQkgsTUFBTSxPQUFPLGdCQUFnQjtJQXdFM0IsSUFBVyxXQUFXO1FBQ3BCLElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDM0IsTUFBTSxvQkFBb0IsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzFFLElBQUksQ0FBQyxhQUFhLEdBQUcsb0JBQW9CLENBQUM7UUFDNUMsQ0FBQztRQUVELE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQztJQUM1QixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsSUFDVyxXQUFXLENBQUMsS0FBMEI7UUFDL0MsSUFBSSxDQUFDLGFBQWEsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDO1FBRTdCLElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDM0IsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGdCQUFnQixDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDcEUsQ0FBQztRQUVELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFxQkQsZUFBZSxDQUFvQjtJQUNuQyxpQkFBaUIsQ0FBc0M7SUFDdkQsY0FBYyxDQUF1QjtJQUNyQyxhQUFhLENBQVM7SUFJYixPQUFPLENBQXlCO0lBRXpDLFlBQ1MsVUFBc0IsRUFDN0IsY0FBaUMsRUFDckIsZ0JBQTBDO1FBRi9DLGVBQVUsR0FBVixVQUFVLENBQVk7UUFuRy9COzs7O1dBSUc7UUFFSSxpQkFBWSxHQUFHLElBQUksQ0FBQztRQUUzQjs7Ozs7V0FLRztRQUVJLGFBQVEsR0FBRyxJQUFJLENBQUM7UUFTdkI7OztXQUdHO1FBRUksa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBRTFDOzs7V0FHRztRQUVJLHNCQUFpQixHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7UUFFdkQ7Ozs7V0FJRztRQUVJLGNBQVMsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBNEIvQix3QkFBbUIsR0FBRyxLQUFLLENBQUM7UUFtQm5DLG1CQUFjLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQUNyQyxrQkFBYSxHQUFHLEtBQUssQ0FBQztRQUVaLGdCQUFXLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFFekMsWUFBTyxHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztRQU92QyxJQUFJLENBQUMsZUFBZSxHQUFHLGNBQWMsQ0FBQztRQUN0QyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsZ0JBQWdCLENBQUM7UUFDMUMsSUFBSSxDQUFDLG1CQUFtQixHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUM7UUFFcEQsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUMzQixJQUFJLENBQUMsZUFBZSxHQUFHLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssb0JBQW9CLENBQUM7WUFFM0U7Ozs7ZUFJRztZQUNILElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZO2lCQUNoQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztpQkFDcEMsU0FBUyxDQUFDLEdBQUcsRUFBRTtnQkFDZCxJQUFJLENBQUMsZUFBZSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3RDLENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQztJQUNILENBQUM7SUFFTSxXQUFXLENBQUMsT0FBc0I7UUFDdkMsSUFBSSxPQUFPLENBQUMsVUFBVSxDQUFDLEVBQUUsV0FBVyxFQUFFLENBQUM7WUFDckMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsMkJBQTJCLEVBQUU7Z0JBQ25ELHVCQUF1QixFQUFFLEVBQUU7Z0JBQzNCLHlCQUF5QixFQUN2QiwyREFBMkQ7YUFDOUQsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztJQUNILENBQUM7SUFFTSxXQUFXO1FBQ2hCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDM0IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNqQyxDQUFDO0lBRU0scUJBQXFCO1FBQzFCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFRDs7T0FFRztJQUNJLGlCQUFpQjtRQUN0QixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQsSUFBVyxXQUFXO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQ3RFLENBQUM7SUFFRDs7T0FFRztJQUNILElBQVcsT0FBTztRQUNoQixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUM5RCxDQUFDO0lBRU0sVUFBVTtRQUNmLElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQ3ZDLENBQUM7SUFFTSxzQkFBc0IsQ0FBQyxTQUFpQjtRQUM3QyxJQUFJLENBQUMsV0FBVyxHQUFHLFNBQVMsS0FBSyxNQUFNLENBQUM7SUFDMUMsQ0FBQztJQUVNLFFBQVEsQ0FBQyxLQUFvQjtRQUNsQywwQkFBMEI7UUFDMUIsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUMzQixNQUFNLFNBQVMsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDL0QsMEJBQTBCO1lBQzFCLElBQ0UsU0FBUyxLQUFLLElBQUk7Z0JBQ2xCLFNBQVMsS0FBSyxNQUFNO2dCQUNwQixTQUFTLEtBQUssTUFBTTtnQkFDcEIsU0FBUyxLQUFLLE9BQU8sRUFDckIsQ0FBQztnQkFDRCxJQUFJLENBQUMsaUJBQWlCLENBQUMsaUJBQWlCLENBQ3RDLElBQUksRUFDSixTQUFTLEVBQ1QsSUFBSSxDQUFDLEtBQUs7b0JBQ1IsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLFNBQVM7b0JBQ3BDLENBQUMsQ0FBQywwQkFBMEI7d0JBQzFCLFNBQVMsQ0FDZCxDQUFDO2dCQUNGLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUN0QixDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRCxZQUFZO1FBQ1YsSUFBSSxDQUFDLFVBQVUsRUFBRSxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDekMsQ0FBQzs4R0E1TlUsZ0JBQWdCO2tHQUFoQixnQkFBZ0IsMFhBVmhCO1lBQ1Q7Z0JBQ0UsT0FBTyxFQUFFLGlCQUFpQjtnQkFDMUIsVUFBVTtvQkFDUixNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7b0JBQ3ZDLE9BQU8sU0FBUyxDQUFDLFVBQVUsRUFBRSxDQUFDO2dCQUNoQyxDQUFDO2FBQ0Y7U0FDRixnRUFrSGEscUJBQXFCLDJCQUFVLFVBQVUsa0hBWC9DLFVBQVUsa0dBTVYsVUFBVSxrREN4S3BCLDh5SEFpSEEsdXFJRHRFSSxZQUFZLGdPQUNaLGdCQUFnQix5TEFDaEIsbUJBQW1CLHdQQUNuQixhQUFhLHVKQUNiLFdBQVcsNEdBQ1gsY0FBYyx5TkFDZCx1QkFBdUIsMEZBUmIsQ0FBQyxpQkFBaUIsQ0FBQzs7MkZBb0JwQixnQkFBZ0I7a0JBekI1QixTQUFTO2lDQUNJLElBQUksWUFDTixVQUFVLGNBR1IsQ0FBQyxpQkFBaUIsQ0FBQyxXQUN0Qjt3QkFDUCxZQUFZO3dCQUNaLGdCQUFnQjt3QkFDaEIsbUJBQW1CO3dCQUNuQixhQUFhO3dCQUNiLFdBQVc7d0JBQ1gsY0FBYzt3QkFDZCx1QkFBdUI7cUJBQ3hCLGFBQ1U7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsVUFBVTtnQ0FDUixNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7Z0NBQ3ZDLE9BQU8sU0FBUyxDQUFDLFVBQVUsRUFBRSxDQUFDOzRCQUNoQyxDQUFDO3lCQUNGO3FCQUNGOzswQkFpSUUsUUFBUTt5Q0F4SEosT0FBTztzQkFEYixLQUFLO2dCQVVDLGtCQUFrQjtzQkFEeEIsS0FBSztnQkFTQyxnQkFBZ0I7c0JBRHRCLEtBQUs7Z0JBU0MsWUFBWTtzQkFEbEIsS0FBSztnQkFVQyxRQUFRO3NCQURkLEtBQUs7Z0JBUUMsUUFBUTtzQkFEZCxLQUFLO2dCQVFDLGFBQWE7c0JBRG5CLE1BQU07Z0JBUUEsaUJBQWlCO3NCQUR2QixNQUFNO2dCQVNBLFNBQVM7c0JBRGYsTUFBTTtnQkFpQkksV0FBVztzQkFEckIsS0FBSztnQkFtQkMsVUFBVTtzQkFKaEIsU0FBUzt1QkFBQyxZQUFZLEVBQUU7d0JBQ3ZCLElBQUksRUFBRSxVQUFVO3dCQUNoQixNQUFNLEVBQUUsS0FBSztxQkFDZDtnQkFPTSxLQUFLO3NCQUpYLFNBQVM7dUJBQUMsZ0JBQWdCLEVBQUU7d0JBQzNCLElBQUksRUFBRSxVQUFVO3dCQUNoQixNQUFNLEVBQUUsS0FBSztxQkFDZDtnQkFJUyxRQUFRO3NCQURqQixZQUFZO3VCQUFDLHFCQUFxQixFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT25EZXN0cm95LFxuICBPcHRpb25hbCxcbiAgT3V0cHV0LFxuICBTaW1wbGVDaGFuZ2VzLFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NoaWxkLFxuICBpbmplY3QsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgc2t5QW5pbWF0aW9uU2xpZGUgfSBmcm9tICdAc2t5dXgvYW5pbWF0aW9ucyc7XG5pbXBvcnQgeyBTa3lJZE1vZHVsZSwgU2t5SWRTZXJ2aWNlLCBTa3lMb2dTZXJ2aWNlIH0gZnJvbSAnQHNreXV4L2NvcmUnO1xuaW1wb3J0IHsgU2t5SGVscElubGluZU1vZHVsZSB9IGZyb20gJ0Bza3l1eC9oZWxwLWlubGluZSc7XG5pbXBvcnQgeyBTa3lJY29uTW9kdWxlIH0gZnJvbSAnQHNreXV4L2ljb24nO1xuaW1wb3J0IHsgU2t5Q2hldnJvbk1vZHVsZSB9IGZyb20gJ0Bza3l1eC9pbmRpY2F0b3JzJztcbmltcG9ydCB7IFNreVRoZW1lTW9kdWxlIH0gZnJvbSAnQHNreXV4L3RoZW1lJztcblxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBTa3lUaWxlc1Jlc291cmNlc01vZHVsZSB9IGZyb20gJy4uLy4uL3NoYXJlZC9za3ktdGlsZXMtcmVzb3VyY2VzLm1vZHVsZSc7XG5pbXBvcnQgeyBTa3lUaWxlRGFzaGJvYXJkU2VydmljZSB9IGZyb20gJy4uL3RpbGUtZGFzaGJvYXJkL3RpbGUtZGFzaGJvYXJkLnNlcnZpY2UnO1xuXG5pbXBvcnQgeyBTS1lfVElMRV9USVRMRV9JRCB9IGZyb20gJy4vdGlsZS10aXRsZS1pZC10b2tlbic7XG5pbXBvcnQgeyBTa3lUaWxlVGl0bGVDb21wb25lbnQgfSBmcm9tICcuL3RpbGUtdGl0bGUuY29tcG9uZW50JztcblxuLyoqXG4gKiBQcm92aWRlcyBhIGNvbW1vbiBsb29rLWFuZC1mZWVsIGZvciB0YWIgY29udGVudC5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHNlbGVjdG9yOiAnc2t5LXRpbGUnLFxuICBzdHlsZVVybHM6IFsnLi90aWxlLmNvbXBvbmVudC5zY3NzJ10sXG4gIHRlbXBsYXRlVXJsOiAnLi90aWxlLmNvbXBvbmVudC5odG1sJyxcbiAgYW5pbWF0aW9uczogW3NreUFuaW1hdGlvblNsaWRlXSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBTa3lDaGV2cm9uTW9kdWxlLFxuICAgIFNreUhlbHBJbmxpbmVNb2R1bGUsXG4gICAgU2t5SWNvbk1vZHVsZSxcbiAgICBTa3lJZE1vZHVsZSxcbiAgICBTa3lUaGVtZU1vZHVsZSxcbiAgICBTa3lUaWxlc1Jlc291cmNlc01vZHVsZSxcbiAgXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogU0tZX1RJTEVfVElUTEVfSUQsXG4gICAgICB1c2VGYWN0b3J5KCk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IGlkU2VydmljZSA9IGluamVjdChTa3lJZFNlcnZpY2UpO1xuICAgICAgICByZXR1cm4gaWRTZXJ2aWNlLmdlbmVyYXRlSWQoKTtcbiAgICAgIH0sXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5VGlsZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcbiAgLyoqXG4gICAqIEEgaGVscCBrZXkgdGhhdCBpZGVudGlmaWVzIHRoZSBnbG9iYWwgaGVscCBjb250ZW50IHRvIGRpc3BsYXkuIFdoZW4gc3BlY2lmaWVkLCBhIFtoZWxwIGlubGluZV0oaHR0cHM6Ly9kZXZlbG9wZXIuYmxhY2tiYXVkLmNvbS9za3l1eC9jb21wb25lbnRzL2hlbHAtaW5saW5lKSBidXR0b24gaXNcbiAgICogYWRkZWQgdG8gdGhlIHRpbGUgaGVhZGVyLiBDbGlja2luZyB0aGUgYnV0dG9uIGludm9rZXMgZ2xvYmFsIGhlbHAgYXMgY29uZmlndXJlZCBieSB0aGUgYXBwbGljYXRpb24uXG4gICAqIEBwcmV2aWV3XG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgaGVscEtleTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBUaGUgY29udGVudCBvZiB0aGUgaGVscCBwb3BvdmVyLiBXaGVuIHNwZWNpZmllZCwgYSBbaGVscCBpbmxpbmVdKGh0dHBzOi8vZGV2ZWxvcGVyLmJsYWNrYmF1ZC5jb20vc2t5dXgvY29tcG9uZW50cy9oZWxwLWlubGluZSlcbiAgICogYnV0dG9uIGlzIGFkZGVkIHRvIHRoZSB0aWxlIGhlYWRlci4gVGhlIGhlbHAgaW5saW5lIGJ1dHRvbiBkaXNwbGF5cyBhIFtwb3BvdmVyXShodHRwczovL2RldmVsb3Blci5ibGFja2JhdWQuY29tL3NreXV4L2NvbXBvbmVudHMvcG9wb3ZlcilcbiAgICogd2hlbiBjbGlja2VkIHVzaW5nIHRoZSBzcGVjaWZpZWQgY29udGVudCBhbmQgb3B0aW9uYWwgdGl0bGUuXG4gICAqIEBwcmV2aWV3XG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgaGVscFBvcG92ZXJDb250ZW50OiBzdHJpbmcgfCBUZW1wbGF0ZVJlZjx1bmtub3duPiB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogVGhlIHRpdGxlIG9mIHRoZSBoZWxwIHBvcG92ZXIuIFRoaXMgcHJvcGVydHkgb25seSBhcHBsaWVzIHdoZW4gYGhlbHBQb3BvdmVyQ29udGVudGAgaXNcbiAgICogYWxzbyBzcGVjaWZpZWQuXG4gICAqIEBwcmV2aWV3XG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgaGVscFBvcG92ZXJUaXRsZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGRpc3BsYXkgYSBzZXR0aW5ncyBidXR0b24gaW4gdGhlIHRpbGUgaGVhZGVyLiBUbyBkaXNwbGF5IHRoZVxuICAgKiBidXR0b24sIHlvdSBtdXN0IGFsc28gbGlzdGVuIGZvciB0aGUgYHNldHRpbmdzQ2xpY2tgIGV2ZW50LlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2hvd1NldHRpbmdzID0gdHJ1ZTtcblxuICAvKipcbiAgICogV2hldGhlciB0byBkaXNwbGF5IGEgaGVscCBidXR0b24gaW4gdGhlIHRpbGUgaGVhZGVyLiBUbyBkaXNwbGF5IHRoZVxuICAgKiBidXR0b24sIHlvdSBtdXN0IGFsc28gbGlzdGVuIGZvciB0aGUgYGhlbHBDbGlja2AgZXZlbnQuXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICogQGRlcHJlY2F0ZWQgU2V0IHRoZSBgaGVscEtleWAgb3IgYGhlbHBQb3BvdmVyQ29udGVudGAgaW5wdXRzIGluc3RlYWQuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2hvd0hlbHAgPSB0cnVlO1xuXG4gIC8qKlxuICAgKiBUaGUgaHVtYW4tcmVhZGFibGUgbmFtZSBmb3IgdGhlIHRpbGUgdGhhdCBpcyBhdmFpbGFibGUgdG8gdGhlIHRpbGUgY29udHJvbHMgZm9yIG11bHRpcGxlIHB1cnBvc2VzLCBzdWNoIGFzIGFjY2Vzc2liaWxpdHkgYW5kIGluc3RydW1lbnRhdGlvbi4gVGhlIGNvbXBvbmVudCB1c2VzIHRoZSBuYW1lIHRvIGNvbnN0cnVjdCBBUklBIGxhYmVscyBmb3IgdGhlIGhlbHAsIGV4cGFuZC9jb2xsYXBzZSwgc2V0dGluZ3MsIGFuZCBkcmFnIGhhbmRsZSBidXR0b25zIHRvIFtzdXBwb3J0IGFjY2Vzc2liaWxpdHldKGh0dHBzOi8vZGV2ZWxvcGVyLmJsYWNrYmF1ZC5jb20vc2t5dXgvbGVhcm4vYWNjZXNzaWJpbGl0eSkuXG4gICAqIEZvciBleGFtcGxlLCBpZiB0aGUgdGlsZSBuYW1lIGlzIFwiQ29uc3RpdHVlbnRzLFwiIHRoZSBoZWxwIGlucHV0J3MgYGFyaWEtbGFiZWxgIGlzIFwiQ29uc3RpdHVlbnRzIGhlbHBcIiBhbmQgdGhlIGRyYWcgaGFuZGxlJ3MgYGFyaWEtbGFiZWxgIGlzIFwiTW92ZSBDb25zdGl0dWVudHMuXCIgRm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGBhcmlhLWxhYmVsYCBhdHRyaWJ1dGUsIHNlZSB0aGUgW1dBSS1BUklBIGRlZmluaXRpb25dKGh0dHBzOi8vd3d3LnczLm9yZy9UUi93YWktYXJpYS8jYXJpYS1sYWJlbCkuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgdGlsZU5hbWU6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogRmlyZXMgd2hlbiB1c2VycyBzZWxlY3QgdGhlIHNldHRpbmdzIGJ1dHRvbiBpbiB0aGUgdGlsZSBoZWFkZXIuIFRoZSBzZXR0aW5nc1xuICAgKiBidXR0b24gb25seSBhcHBlYXJzIHdoZW4gdGhlIGBzaG93U2V0dGluZ3NgIHByb3BlcnR5IGlzIHNldCB0byBgdHJ1ZWAuXG4gICAqL1xuICBAT3V0cHV0KClcbiAgcHVibGljIHNldHRpbmdzQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgLyoqXG4gICAqIEZpcmVzIHdoZW4gdGhlIHRpbGUncyBjb2xsYXBzZWQgc3RhdGUgY2hhbmdlcy4gUmV0dXJucyBgdHJ1ZWAgd2hlbiB0aGUgdGlsZVxuICAgKiBjb2xsYXBzZXMgYW5kIGBmYWxzZWAgd2hlbiBpdCBleHBhbmRzLlxuICAgKi9cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBpc0NvbGxhcHNlZENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICAvKipcbiAgICogRmlyZXMgd2hlbiB1c2VycyBzZWxlY3QgdGhlIGhlbHAgYnV0dG9uIGluIHRoZSB0aWxlIGhlYWRlci4gVGhlIGhlbHBcbiAgICogYnV0dG9uIG9ubHkgYXBwZWFycyB3aGVuIHRoZSBgc2hvd0hlbHBgIHByb3BlcnR5IGlzIHNldCB0byBgdHJ1ZWAuXG4gICAqIEBkZXByZWNhdGVkIFNldCB0aGUgYGhlbHBLZXlgIG9yIGBoZWxwUG9wb3ZlckNvbnRlbnRgIGlucHV0cyBpbnN0ZWFkLlxuICAgKi9cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBoZWxwQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgcHVibGljIGdldCBpc0NvbGxhcHNlZCgpOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy4jZGFzaGJvYXJkU2VydmljZSkge1xuICAgICAgY29uc3QgY29uZmlnQ29sbGFwc2VkU3RhdGUgPSB0aGlzLiNkYXNoYm9hcmRTZXJ2aWNlLnRpbGVJc0NvbGxhcHNlZCh0aGlzKTtcbiAgICAgIHRoaXMuI19pc0NvbGxhcHNlZCA9IGNvbmZpZ0NvbGxhcHNlZFN0YXRlO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLiNfaXNDb2xsYXBzZWQ7XG4gIH1cblxuICAvKipcbiAgICogV2hldGhlciB0aGUgdGlsZSBpcyBpbiBhIGNvbGxhcHNlZCBzdGF0ZS5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgaXNDb2xsYXBzZWQodmFsdWU6IGJvb2xlYW4gfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLiNfaXNDb2xsYXBzZWQgPSAhIXZhbHVlO1xuXG4gICAgaWYgKHRoaXMuI2Rhc2hib2FyZFNlcnZpY2UpIHtcbiAgICAgIHRoaXMuI2Rhc2hib2FyZFNlcnZpY2Uuc2V0VGlsZUNvbGxhcHNlZCh0aGlzLCB0aGlzLiNfaXNDb2xsYXBzZWQpO1xuICAgIH1cblxuICAgIHRoaXMuaXNDb2xsYXBzZWRDaGFuZ2UuZW1pdCh0aGlzLiNfaXNDb2xsYXBzZWQpO1xuICB9XG5cbiAgcHVibGljIGFyaWFEZXNjcmliZWRCeTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIHB1YmxpYyBpc0luRGFzaGJvYXJkQ29sdW1uID0gZmFsc2U7XG5cbiAgQFZpZXdDaGlsZCgnZ3JhYkhhbmRsZScsIHtcbiAgICByZWFkOiBFbGVtZW50UmVmLFxuICAgIHN0YXRpYzogZmFsc2UsXG4gIH0pXG4gIHB1YmxpYyBncmFiSGFuZGxlOiBFbGVtZW50UmVmIHwgdW5kZWZpbmVkO1xuXG4gIEBWaWV3Q2hpbGQoJ3RpdGxlQ29udGFpbmVyJywge1xuICAgIHJlYWQ6IEVsZW1lbnRSZWYsXG4gICAgc3RhdGljOiBmYWxzZSxcbiAgfSlcbiAgcHVibGljIHRpdGxlOiBFbGVtZW50UmVmIHwgdW5kZWZpbmVkO1xuXG4gIEBDb250ZW50Q2hpbGQoU2t5VGlsZVRpdGxlQ29tcG9uZW50LCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSlcbiAgcHJvdGVjdGVkIHRpdGxlUmVmOiBFbGVtZW50UmVmIHwgdW5kZWZpbmVkO1xuXG4gICNjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWY7XG4gICNkYXNoYm9hcmRTZXJ2aWNlOiBTa3lUaWxlRGFzaGJvYXJkU2VydmljZSB8IHVuZGVmaW5lZDtcbiAgI25nVW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICAjX2lzQ29sbGFwc2VkID0gZmFsc2U7XG5cbiAgcHJvdGVjdGVkIHRpbGVUaXRsZUlkID0gaW5qZWN0KFNLWV9USUxFX1RJVExFX0lEKTtcblxuICByZWFkb25seSAjbG9nU3ZjID0gaW5qZWN0KFNreUxvZ1NlcnZpY2UpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgIGNoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBAT3B0aW9uYWwoKSBkYXNoYm9hcmRTZXJ2aWNlPzogU2t5VGlsZURhc2hib2FyZFNlcnZpY2UsXG4gICkge1xuICAgIHRoaXMuI2NoYW5nZURldGVjdG9yID0gY2hhbmdlRGV0ZWN0b3I7XG4gICAgdGhpcy4jZGFzaGJvYXJkU2VydmljZSA9IGRhc2hib2FyZFNlcnZpY2U7XG4gICAgdGhpcy5pc0luRGFzaGJvYXJkQ29sdW1uID0gISF0aGlzLiNkYXNoYm9hcmRTZXJ2aWNlO1xuXG4gICAgaWYgKHRoaXMuI2Rhc2hib2FyZFNlcnZpY2UpIHtcbiAgICAgIHRoaXMuYXJpYURlc2NyaWJlZEJ5ID0gYCR7dGhpcy4jZGFzaGJvYXJkU2VydmljZS5iYWdJZH0tbW92ZS1pbnN0cnVjdGlvbnNgO1xuXG4gICAgICAvKipcbiAgICAgICAqIFRoaXMgc3Vic2NyaXB0aW9uIGVuc3VyZXMgdGhhdCBpZiBhbnkgdmFsdWVzIHdoaWNoIGNvbWUgaW4gZnJvbSB0aGUgZGFzaGJvYXJkIHNlcnZpY2UgYXJlXG4gICAgICAgKiB1cGRhdGVkIHRoYXQgdGhlIGNvbXBvbmVudCB3aWxsIHVwZGF0ZSBpZiB0aGUgdGlsZSdzIHBhcmVudCBjb21wb25lbnQgdXRpbGl6ZXMgT25QdXNoXG4gICAgICAgKiBjaGFuZ2UgZGV0ZWN0aW9uLlxuICAgICAgICovXG4gICAgICB0aGlzLiNkYXNoYm9hcmRTZXJ2aWNlLmNvbmZpZ0NoYW5nZVxuICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpXG4gICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuI2NoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChjaGFuZ2VzWydzaG93SGVscCddPy5maXJzdENoYW5nZSkge1xuICAgICAgdGhpcy4jbG9nU3ZjLmRlcHJlY2F0ZWQoJ1NreVRpbGVDb21wb25lbnQuc2hvd0hlbHAnLCB7XG4gICAgICAgIGRlcHJlY2F0aW9uTWFqb3JWZXJzaW9uOiAxMCxcbiAgICAgICAgcmVwbGFjZW1lbnRSZWNvbW1lbmRhdGlvbjpcbiAgICAgICAgICAnU2V0IHRoZSBgaGVscEtleWAgb3IgYGhlbHBQb3BvdmVyQ29udGVudGAgaW5wdXRzIGluc3RlYWQuJyxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLiNuZ1Vuc3Vic2NyaWJlLm5leHQoKTtcbiAgICB0aGlzLiNuZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKCk7XG4gIH1cblxuICBwdWJsaWMgc2V0dGluZ3NCdXR0b25DbGlja2VkKCk6IHZvaWQge1xuICAgIHRoaXMuc2V0dGluZ3NDbGljay5lbWl0KHVuZGVmaW5lZCk7XG4gIH1cblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWRcbiAgICovXG4gIHB1YmxpYyBoZWxwQnV0dG9uQ2xpY2tlZCgpOiB2b2lkIHtcbiAgICB0aGlzLmhlbHBDbGljay5lbWl0KHVuZGVmaW5lZCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGhhc1NldHRpbmdzKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnNldHRpbmdzQ2xpY2sub2JzZXJ2ZXJzLmxlbmd0aCA+IDAgJiYgdGhpcy5zaG93U2V0dGluZ3M7XG4gIH1cblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWRcbiAgICovXG4gIHB1YmxpYyBnZXQgaGFzSGVscCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5oZWxwQ2xpY2sub2JzZXJ2ZXJzLmxlbmd0aCA+IDAgJiYgdGhpcy5zaG93SGVscDtcbiAgfVxuXG4gIHB1YmxpYyB0aXRsZUNsaWNrKCk6IHZvaWQge1xuICAgIHRoaXMuaXNDb2xsYXBzZWQgPSAhdGhpcy5pc0NvbGxhcHNlZDtcbiAgfVxuXG4gIHB1YmxpYyBjaGV2cm9uRGlyZWN0aW9uQ2hhbmdlKGRpcmVjdGlvbjogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5pc0NvbGxhcHNlZCA9IGRpcmVjdGlvbiA9PT0gJ2Rvd24nO1xuICB9XG5cbiAgcHVibGljIG1vdmVUaWxlKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICBpZiAodGhpcy4jZGFzaGJvYXJkU2VydmljZSkge1xuICAgICAgY29uc3QgZGlyZWN0aW9uID0gZXZlbnQua2V5LnRvTG93ZXJDYXNlKCkucmVwbGFjZSgnYXJyb3cnLCAnJyk7XG4gICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgaWYgKFxuICAgICAgICBkaXJlY3Rpb24gPT09ICd1cCcgfHxcbiAgICAgICAgZGlyZWN0aW9uID09PSAnZG93bicgfHxcbiAgICAgICAgZGlyZWN0aW9uID09PSAnbGVmdCcgfHxcbiAgICAgICAgZGlyZWN0aW9uID09PSAncmlnaHQnXG4gICAgICApIHtcbiAgICAgICAgdGhpcy4jZGFzaGJvYXJkU2VydmljZS5tb3ZlVGlsZU9uS2V5RG93bihcbiAgICAgICAgICB0aGlzLFxuICAgICAgICAgIGRpcmVjdGlvbixcbiAgICAgICAgICB0aGlzLnRpdGxlXG4gICAgICAgICAgICA/IHRoaXMudGl0bGUubmF0aXZlRWxlbWVudC5pbm5lclRleHRcbiAgICAgICAgICAgIDogLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICAgICAgICAgICAgdW5kZWZpbmVkLFxuICAgICAgICApO1xuICAgICAgICB0aGlzLiNmb2N1c0hhbmRsZSgpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICNmb2N1c0hhbmRsZSgpOiB2b2lkIHtcbiAgICB0aGlzLmdyYWJIYW5kbGU/Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgfVxufVxuIiwiPHNlY3Rpb25cbiAgY2xhc3M9XCJza3ktdGlsZVwiXG4gIFtuZ0NsYXNzXT1cIntcbiAgICAnc2t5LXRpbGUtY29sbGFwc2VkJzogaXNDb2xsYXBzZWRcbiAgfVwiXG4gIFtza3lUaGVtZUNsYXNzXT1cIntcbiAgICAnc2t5LWJveCBza3ktZWxldmF0aW9uLTEtYm9yZGVyZWQgc2t5LXBhZGRpbmctZXZlbi14bCc6ICdtb2Rlcm4nXG4gIH1cIlxuPlxuICA8aGVhZGVyIGNsYXNzPVwic2t5LXRpbGUtaGVhZGVyXCI+XG4gICAgPGRpdiBjbGFzcz1cInNreS10aWxlLWhlYWRlci1jb250ZW50XCIgKGNsaWNrKT1cInRpdGxlQ2xpY2soKVwiPlxuICAgICAgPGRpdiBjbGFzcz1cInNreS10aWxlLWhlYWRlci10aXRsZVwiICN0aXRsZUNvbnRhaW5lcj5cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwic2t5LXRpbGUtdGl0bGVcIiAvPlxuICAgICAgICBAaWYgKHRpbGVOYW1lICYmIChoZWxwS2V5IHx8IGhlbHBQb3BvdmVyQ29udGVudCkpIHtcbiAgICAgICAgICA8c2t5LWhlbHAtaW5saW5lXG4gICAgICAgICAgICBbaGVscEtleV09XCJoZWxwS2V5XCJcbiAgICAgICAgICAgIFtsYWJlbFRleHRdPVwidGlsZU5hbWVcIlxuICAgICAgICAgICAgW3BvcG92ZXJDb250ZW50XT1cImhlbHBQb3BvdmVyQ29udGVudFwiXG4gICAgICAgICAgICBbcG9wb3ZlclRpdGxlXT1cImhlbHBQb3BvdmVyVGl0bGVcIlxuICAgICAgICAgIC8+XG4gICAgICAgIH1cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cInNreS10aWxlLXN1bW1hcnkgc2t5LWZvbnQtZGlzcGxheS0zXCI+XG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cInNreS10aWxlLXN1bW1hcnlcIiAvPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cInNreS10aWxlLWhlYWRlci1jb2x1bW4tdG9vbHNcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJza3ktdGlsZS10b29sc1wiPlxuICAgICAgICA8bmctY29udGFpbmVyICpza3lUaGVtZUlmPVwiJ2RlZmF1bHQnXCI+XG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgKm5nSWY9XCJoYXNIZWxwXCJcbiAgICAgICAgICAgIGNsYXNzPVwic2t5LWJ0biBza3ktdGlsZS10b29scy1jb250cm9sIHNreS10aWxlLWhlbHBcIlxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIlxuICAgICAgICAgICAgICB0aWxlTmFtZVxuICAgICAgICAgICAgICAgID8gKCdza3l1eF90aWxlX2hlbHAnIHwgc2t5TGliUmVzb3VyY2VzOiB0aWxlTmFtZSlcbiAgICAgICAgICAgICAgICA6ICgnc2t5dXhfdGlsZV9oZWxwX2RlZmF1bHQnIHwgc2t5TGliUmVzb3VyY2VzKVxuICAgICAgICAgICAgXCJcbiAgICAgICAgICAgIFtza3lUaGVtZUNsYXNzXT1cIntcbiAgICAgICAgICAgICAgJ3NreS1idG4taWNvbi1ib3JkZXJsZXNzJzogJ21vZGVybidcbiAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgKGNsaWNrKT1cImhlbHBCdXR0b25DbGlja2VkKClcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxza3ktaWNvbiBpY29uPVwicXVlc3Rpb24tY2lyY2xlXCIgLz5cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDxza3ktY2hldnJvblxuICAgICAgICAgIFthcmlhQ29udHJvbHNdPVwidGlsZUNvbnRlbnQuaWRcIlxuICAgICAgICAgIFthcmlhTGFiZWxdPVwiXG4gICAgICAgICAgICB0aWxlTmFtZVxuICAgICAgICAgICAgICA/ICgnc2t5dXhfdGlsZV9leHBhbmQnIHwgc2t5TGliUmVzb3VyY2VzOiB0aWxlTmFtZSlcbiAgICAgICAgICAgICAgOiAoJ3NreXV4X3RpbGVfZXhwYW5kX2RlZmF1bHQnIHwgc2t5TGliUmVzb3VyY2VzKVxuICAgICAgICAgIFwiXG4gICAgICAgICAgW2RpcmVjdGlvbl09XCJpc0NvbGxhcHNlZCA/ICdkb3duJyA6ICd1cCdcIlxuICAgICAgICAgIFtza3lUaGVtZUNsYXNzXT1cIntcbiAgICAgICAgICAgICdza3ktdGlsZS10b29scy1jb250cm9sJzogJ2RlZmF1bHQnLFxuICAgICAgICAgICAgJ3NreS1tYXJnaW4taW5saW5lLWRlZmF1bHQnOiAnbW9kZXJuJ1xuICAgICAgICAgIH1cIlxuICAgICAgICAgIChkaXJlY3Rpb25DaGFuZ2UpPVwiY2hldnJvbkRpcmVjdGlvbkNoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgPlxuICAgICAgICA8L3NreS1jaGV2cm9uPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgKm5nSWY9XCJoYXNTZXR0aW5nc1wiXG4gICAgICAgICAgY2xhc3M9XCJza3ktYnRuIHNreS10aWxlLXNldHRpbmdzXCJcbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIlxuICAgICAgICAgICAgdGlsZU5hbWVcbiAgICAgICAgICAgICAgPyAoJ3NreXV4X3RpbGVfc2V0dGluZ3MnIHwgc2t5TGliUmVzb3VyY2VzOiB0aWxlTmFtZSlcbiAgICAgICAgICAgICAgOiAoJ3NreXV4X3RpbGVfc2V0dGluZ3NfZGVmYXVsdCcgfCBza3lMaWJSZXNvdXJjZXMpXG4gICAgICAgICAgXCJcbiAgICAgICAgICBbc2t5VGhlbWVDbGFzc109XCJ7XG4gICAgICAgICAgICAnc2t5LXRpbGUtdG9vbHMtY29udHJvbCc6ICdkZWZhdWx0JyxcbiAgICAgICAgICAgICdza3ktYnRuLWljb24tYm9yZGVybGVzcyBza3ktbWFyZ2luLWlubGluZS1kZWZhdWx0JzogJ21vZGVybidcbiAgICAgICAgICB9XCJcbiAgICAgICAgICAoY2xpY2spPVwic2V0dGluZ3NCdXR0b25DbGlja2VkKClcIlxuICAgICAgICA+XG4gICAgICAgICAgPHNreS1pY29uIGljb249XCJjb2dcIiAvPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICpuZ0lmPVwiaXNJbkRhc2hib2FyZENvbHVtblwiXG4gICAgICAgICAgY2xhc3M9XCJza3ktYnRuIHNreS10aWxlLWdyYWItaGFuZGxlXCJcbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIlxuICAgICAgICAgICAgdGlsZU5hbWVcbiAgICAgICAgICAgICAgPyAoJ3NreXV4X3RpbGVfbW92ZScgfCBza3lMaWJSZXNvdXJjZXM6IHRpbGVOYW1lKVxuICAgICAgICAgICAgICA6ICgnc2t5dXhfdGlsZV9tb3ZlX2RlZmF1bHQnIHwgc2t5TGliUmVzb3VyY2VzKVxuICAgICAgICAgIFwiXG4gICAgICAgICAgW2F0dHIuYXJpYS1kZXNjcmliZWRieV09XCJhcmlhRGVzY3JpYmVkQnlcIlxuICAgICAgICAgIFtza3lUaGVtZUNsYXNzXT1cIntcbiAgICAgICAgICAgICdza3ktdGlsZS10b29scy1jb250cm9sJzogJ2RlZmF1bHQnLFxuICAgICAgICAgICAgJ3NreS1idG4taWNvbi1ib3JkZXJsZXNzJzogJ21vZGVybidcbiAgICAgICAgICB9XCJcbiAgICAgICAgICAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcbiAgICAgICAgICAoa2V5ZG93bik9XCJtb3ZlVGlsZSgkZXZlbnQpXCJcbiAgICAgICAgICAjZ3JhYkhhbmRsZVxuICAgICAgICA+XG4gICAgICAgICAgPHNreS1pY29uIGljb249XCJ0aWxlLWRyYWdcIiAvPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2hlYWRlcj5cbiAgPGRpdlxuICAgIGNsYXNzPVwic2t5LXRpbGUtY29udGVudFwiXG4gICAgcm9sZT1cInJlZ2lvblwiXG4gICAgc2t5SWRcbiAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInRpbGVOYW1lXCJcbiAgICBbYXR0ci5hcmlhLWxhYmVsbGVkQnldPVwiIXRpbGVOYW1lICYmIHRpdGxlUmVmID8gdGlsZVRpdGxlSWQgOiB1bmRlZmluZWRcIlxuICAgIFtAc2t5QW5pbWF0aW9uU2xpZGVdPVwiaXNDb2xsYXBzZWQgPyAndXAnIDogJ2Rvd24nXCJcbiAgICAjdGlsZUNvbnRlbnQ9XCJza3lJZFwiXG4gID5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJza3ktdGlsZS1jb250ZW50XCIgLz5cbiAgPC9kaXY+XG48L3NlY3Rpb24+XG4iXX0=
@@ -808,7 +808,7 @@ class SkyTileComponent {
808
808
  return idService.generateId();
809
809
  },
810
810
  },
811
- ], queries: [{ propertyName: "titleRef", first: true, predicate: SkyTileTitleComponent, descendants: true, read: ElementRef }], viewQueries: [{ propertyName: "grabHandle", first: true, predicate: ["grabHandle"], descendants: true, read: ElementRef }, { propertyName: "title", first: true, predicate: ["titleContainer"], descendants: true, read: ElementRef }], usesOnChanges: true, ngImport: i0, template: "<section\n class=\"sky-tile\"\n [ngClass]=\"{\n 'sky-tile-collapsed': isCollapsed\n }\"\n [skyThemeClass]=\"{\n 'sky-box sky-elevation-1-bordered sky-padding-even-xl': 'modern'\n }\"\n>\n <header class=\"sky-tile-header\">\n <div class=\"sky-tile-header-content\" (click)=\"titleClick()\">\n <div class=\"sky-tile-header-title\" #titleContainer>\n <ng-content select=\"sky-tile-title\" />\n @if (tileName && (helpKey || helpPopoverContent)) {\n <sky-help-inline\n [helpKey]=\"helpKey\"\n [labelText]=\"tileName\"\n [popoverContent]=\"helpPopoverContent\"\n [popoverTitle]=\"helpPopoverTitle\"\n />\n }\n </div>\n <div class=\"sky-tile-summary sky-font-display-3\">\n <ng-content select=\"sky-tile-summary\" />\n </div>\n </div>\n <div class=\"sky-tile-header-column-tools\">\n <div class=\"sky-tile-tools\">\n <ng-container *skyThemeIf=\"'default'\">\n <button\n *ngIf=\"hasHelp\"\n class=\"sky-btn sky-tile-tools-control sky-tile-help\"\n type=\"button\"\n [attr.aria-label]=\"\n tileName\n ? ('skyux_tile_help' | skyLibResources: tileName)\n : ('skyux_tile_help_default' | skyLibResources)\n \"\n [skyThemeClass]=\"{\n 'sky-btn-icon-borderless': 'modern'\n }\"\n (click)=\"helpButtonClicked()\"\n >\n <sky-icon icon=\"question-circle\" />\n </button>\n </ng-container>\n <sky-chevron\n [ariaControls]=\"tileContent.id\"\n [ariaLabel]=\"\n tileName\n ? ('skyux_tile_expand' | skyLibResources: tileName)\n : ('skyux_tile_expand_default' | skyLibResources)\n \"\n [direction]=\"isCollapsed ? 'down' : 'up'\"\n [skyThemeClass]=\"{\n 'sky-tile-tools-control': 'default',\n 'sky-margin-inline-default': 'modern'\n }\"\n (directionChange)=\"chevronDirectionChange($event)\"\n >\n </sky-chevron>\n <button\n *ngIf=\"hasSettings\"\n class=\"sky-btn sky-tile-settings\"\n type=\"button\"\n [attr.aria-label]=\"\n tileName\n ? ('skyux_tile_settings' | skyLibResources: tileName)\n : ('skyux_tile_settings_default' | skyLibResources)\n \"\n [skyThemeClass]=\"{\n 'sky-tile-tools-control': 'default',\n 'sky-btn-icon-borderless sky-margin-inline-default': 'modern'\n }\"\n (click)=\"settingsButtonClicked()\"\n >\n <sky-icon icon=\"cog\" />\n </button>\n <button\n *ngIf=\"isInDashboardColumn\"\n class=\"sky-btn sky-tile-grab-handle\"\n type=\"button\"\n [attr.aria-label]=\"\n tileName\n ? ('skyux_tile_move' | skyLibResources: tileName)\n : ('skyux_tile_move_default' | skyLibResources)\n \"\n [attr.aria-describedby]=\"ariaDescribedBy\"\n [skyThemeClass]=\"{\n 'sky-tile-tools-control': 'default',\n 'sky-btn-icon-borderless': 'modern'\n }\"\n (click)=\"$event.stopPropagation()\"\n (keydown)=\"moveTile($event)\"\n #grabHandle\n >\n <sky-icon icon=\"tile-drag\" />\n </button>\n </div>\n </div>\n </header>\n <div\n class=\"sky-tile-content\"\n role=\"region\"\n skyId\n [attr.aria-label]=\"tileName\"\n [attr.aria-labelledBy]=\"!tileName && titleRef ? tileTitleId : undefined\"\n [@skyAnimationSlide]=\"isCollapsed ? 'up' : 'down'\"\n #tileContent=\"skyId\"\n >\n <ng-content select=\"sky-tile-content\" />\n </div>\n</section>\n", styles: [".sky-tile{background-color:#fff;margin-bottom:20px}.sky-tile-header{border-color:#cdcfd2;border-style:solid solid none;border-width:4px 0 0;display:flex}.sky-tile-header-content{display:flex;flex:1;align-items:baseline;cursor:pointer}.sky-tile-header-title{display:inline-flex;align-items:baseline;padding:10px 15px}.sky-tile-header-title>sky-help-inline{margin-left:var(--sky-margin-inline-xs)}.sky-tile-summary{color:#0974a1;display:none;padding-right:15px;max-height:30px;overflow:hidden}.sky-tile-collapsed .sky-tile-summary{display:block}.sky-tile-header-column-tools{display:flex;align-items:center;flex:0 0 auto}.sky-tile-tools{display:flex;padding-right:15px}.sky-tile-tools-control{color:#cdcfd2;cursor:pointer;border:0;width:24px;height:24px;padding:0;display:block;margin:0 0 0 9px}.sky-tile-tools-control:hover{color:#979ba2;transition:color .15s}.sky-tile-grab-handle{cursor:move;cursor:-webkit-grab;cursor:-moz-grab;font-size:15px}.sky-tile-content{border-color:#e2e3e4;border-image:none;border-style:solid solid none;border-width:1px 0}:host-context(.sky-theme-modern) .sky-tile-header,:host-context(.sky-theme-modern) .sky-tile-content{border:none}:host-context(.sky-theme-modern) .sky-tile-header-title{padding:0;margin:0 30px 0 0}:host-context(.sky-theme-modern) .sky-tile-header-column-tools{align-items:flex-start}:host-context(.sky-theme-modern) .sky-tile-tools{padding:0}:host-context(.sky-theme-modern) .sky-tile-tools-control{font-size:18px;color:#686c73}:host-context(.sky-theme-modern) .sky-tile-grab-handle{font-size:16px}:host-context(.sky-theme-modern) .sky-tile-content ::ng-deep .sky-tile-content-section{border-bottom:1px dotted #c0c2c5}:host-context(.sky-theme-modern) .sky-tile-content ::ng-deep sky-tile-content-section:first-child .sky-tile-content-section{margin-top:15px}:host-context(.sky-theme-modern) .sky-tile-content ::ng-deep sky-tile-content-section:last-child .sky-tile-content-section{padding-bottom:0;border-bottom:none}:host-context(.sky-theme-modern) :host .sky-tile{border-radius:0}:host-context(.sky-theme-modern) :host-context(.sky-responsive-container-xs) .sky-tile,:host-context(.sky-theme-modern) :host-context(.sky-responsive-container-sm) .sky-tile,:host-context(.sky-theme-modern) :host-context(.sky-responsive-container-md) .sky-tile,:host-context(.sky-theme-modern) :host-context(.sky-responsive-container-lg) .sky-tile{border-radius:0}@media (min-width: 768px){:host-context(.sky-theme-modern) :host .sky-tile{border-radius:6px}}:host-context(.sky-theme-modern) :host-context(.sky-responsive-container-sm) .sky-tile,:host-context(.sky-theme-modern) :host-context(.sky-responsive-container-md) .sky-tile,:host-context(.sky-theme-modern) :host-context(.sky-responsive-container-lg) .sky-tile{border-radius:6px}.sky-theme-modern .sky-tile-header,.sky-theme-modern .sky-tile-content{border:none}.sky-theme-modern .sky-tile-header-title{padding:0;margin:0 30px 0 0}.sky-theme-modern .sky-tile-header-column-tools{align-items:flex-start}.sky-theme-modern .sky-tile-tools{padding:0}.sky-theme-modern .sky-tile-tools-control{font-size:18px;color:#686c73}.sky-theme-modern .sky-tile-grab-handle{font-size:16px}.sky-theme-modern .sky-tile-content ::ng-deep .sky-tile-content-section{border-bottom:1px dotted #c0c2c5}.sky-theme-modern .sky-tile-content ::ng-deep sky-tile-content-section:first-child .sky-tile-content-section{margin-top:15px}.sky-theme-modern .sky-tile-content ::ng-deep sky-tile-content-section:last-child .sky-tile-content-section{padding-bottom:0;border-bottom:none}.sky-theme-modern :host .sky-tile{border-radius:0}.sky-theme-modern :host-context(.sky-responsive-container-xs) .sky-tile,.sky-theme-modern :host-context(.sky-responsive-container-sm) .sky-tile,.sky-theme-modern :host-context(.sky-responsive-container-md) .sky-tile,.sky-theme-modern :host-context(.sky-responsive-container-lg) .sky-tile{border-radius:0}@media (min-width: 768px){.sky-theme-modern :host .sky-tile{border-radius:6px}}.sky-theme-modern :host-context(.sky-responsive-container-sm) .sky-tile,.sky-theme-modern :host-context(.sky-responsive-container-md) .sky-tile,.sky-theme-modern :host-context(.sky-responsive-container-lg) .sky-tile{border-radius:6px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: SkyChevronModule }, { kind: "component", type: i3.λ2, selector: "sky-chevron", inputs: ["ariaControls", "ariaLabel", "direction", "disabled"], outputs: ["directionChange"] }, { kind: "ngmodule", type: SkyHelpInlineModule }, { kind: "component", type: i4$1.λ1, selector: "sky-help-inline", inputs: ["ariaControls", "ariaExpanded", "ariaLabel", "labelText", "popoverContent", "popoverTitle", "helpKey"], outputs: ["actionClick"] }, { kind: "ngmodule", type: SkyIconModule }, { kind: "component", type: i5.λ1, selector: "sky-icon", inputs: ["icon", "iconType", "size", "fixedWidth", "variant"] }, { kind: "ngmodule", type: SkyIdModule }, { kind: "directive", type: i2.λ2, selector: "[skyId]", exportAs: ["skyId"] }, { kind: "ngmodule", type: SkyThemeModule }, { kind: "directive", type: i7.λ2, selector: "[skyThemeClass]", inputs: ["class", "skyThemeClass"] }, { kind: "directive", type: i7.λ3, selector: "[skyThemeIf]", inputs: ["skyThemeIf"] }, { kind: "ngmodule", type: SkyTilesResourcesModule }, { kind: "pipe", type: i3$1.SkyLibResourcesPipe, name: "skyLibResources" }], animations: [skyAnimationSlide] }); }
811
+ ], queries: [{ propertyName: "titleRef", first: true, predicate: SkyTileTitleComponent, descendants: true, read: ElementRef }], viewQueries: [{ propertyName: "grabHandle", first: true, predicate: ["grabHandle"], descendants: true, read: ElementRef }, { propertyName: "title", first: true, predicate: ["titleContainer"], descendants: true, read: ElementRef }], usesOnChanges: true, ngImport: i0, template: "<section\n class=\"sky-tile\"\n [ngClass]=\"{\n 'sky-tile-collapsed': isCollapsed\n }\"\n [skyThemeClass]=\"{\n 'sky-box sky-elevation-1-bordered sky-padding-even-xl': 'modern'\n }\"\n>\n <header class=\"sky-tile-header\">\n <div class=\"sky-tile-header-content\" (click)=\"titleClick()\">\n <div class=\"sky-tile-header-title\" #titleContainer>\n <ng-content select=\"sky-tile-title\" />\n @if (tileName && (helpKey || helpPopoverContent)) {\n <sky-help-inline\n [helpKey]=\"helpKey\"\n [labelText]=\"tileName\"\n [popoverContent]=\"helpPopoverContent\"\n [popoverTitle]=\"helpPopoverTitle\"\n />\n }\n </div>\n <div class=\"sky-tile-summary sky-font-display-3\">\n <ng-content select=\"sky-tile-summary\" />\n </div>\n </div>\n <div class=\"sky-tile-header-column-tools\">\n <div class=\"sky-tile-tools\">\n <ng-container *skyThemeIf=\"'default'\">\n <button\n *ngIf=\"hasHelp\"\n class=\"sky-btn sky-tile-tools-control sky-tile-help\"\n type=\"button\"\n [attr.aria-label]=\"\n tileName\n ? ('skyux_tile_help' | skyLibResources: tileName)\n : ('skyux_tile_help_default' | skyLibResources)\n \"\n [skyThemeClass]=\"{\n 'sky-btn-icon-borderless': 'modern'\n }\"\n (click)=\"helpButtonClicked()\"\n >\n <sky-icon icon=\"question-circle\" />\n </button>\n </ng-container>\n <sky-chevron\n [ariaControls]=\"tileContent.id\"\n [ariaLabel]=\"\n tileName\n ? ('skyux_tile_expand' | skyLibResources: tileName)\n : ('skyux_tile_expand_default' | skyLibResources)\n \"\n [direction]=\"isCollapsed ? 'down' : 'up'\"\n [skyThemeClass]=\"{\n 'sky-tile-tools-control': 'default',\n 'sky-margin-inline-default': 'modern'\n }\"\n (directionChange)=\"chevronDirectionChange($event)\"\n >\n </sky-chevron>\n <button\n *ngIf=\"hasSettings\"\n class=\"sky-btn sky-tile-settings\"\n type=\"button\"\n [attr.aria-label]=\"\n tileName\n ? ('skyux_tile_settings' | skyLibResources: tileName)\n : ('skyux_tile_settings_default' | skyLibResources)\n \"\n [skyThemeClass]=\"{\n 'sky-tile-tools-control': 'default',\n 'sky-btn-icon-borderless sky-margin-inline-default': 'modern'\n }\"\n (click)=\"settingsButtonClicked()\"\n >\n <sky-icon icon=\"cog\" />\n </button>\n <button\n *ngIf=\"isInDashboardColumn\"\n class=\"sky-btn sky-tile-grab-handle\"\n type=\"button\"\n [attr.aria-label]=\"\n tileName\n ? ('skyux_tile_move' | skyLibResources: tileName)\n : ('skyux_tile_move_default' | skyLibResources)\n \"\n [attr.aria-describedby]=\"ariaDescribedBy\"\n [skyThemeClass]=\"{\n 'sky-tile-tools-control': 'default',\n 'sky-btn-icon-borderless': 'modern'\n }\"\n (click)=\"$event.stopPropagation()\"\n (keydown)=\"moveTile($event)\"\n #grabHandle\n >\n <sky-icon icon=\"tile-drag\" />\n </button>\n </div>\n </div>\n </header>\n <div\n class=\"sky-tile-content\"\n role=\"region\"\n skyId\n [attr.aria-label]=\"tileName\"\n [attr.aria-labelledBy]=\"!tileName && titleRef ? tileTitleId : undefined\"\n [@skyAnimationSlide]=\"isCollapsed ? 'up' : 'down'\"\n #tileContent=\"skyId\"\n >\n <ng-content select=\"sky-tile-content\" />\n </div>\n</section>\n", styles: [".sky-tile{background-color:#fff;margin-bottom:20px}.sky-tile-header{border-color:#cdcfd2;border-style:solid solid none;border-width:4px 0 0;display:flex}.sky-tile-header-content{display:flex;flex:1;align-items:baseline;cursor:pointer}.sky-tile-header-title{display:inline-flex;align-items:baseline;padding:10px 15px}.sky-tile-header-title>sky-help-inline{margin-left:var(--sky-margin-inline-xs)}.sky-tile-summary{color:#0974a1;display:none;padding-right:15px;max-height:30px;overflow:hidden}.sky-tile-collapsed .sky-tile-summary{display:block}.sky-tile-header-column-tools{display:flex;align-items:center;flex:0 0 auto}.sky-tile-tools{display:flex;padding-right:15px}.sky-tile-tools-control{color:#cdcfd2;cursor:pointer;border:0;width:24px;height:24px;padding:0;display:block;margin:0 0 0 9px}.sky-tile-tools-control:hover{color:#979ba2;transition:color .15s}.sky-tile-grab-handle{cursor:move;cursor:-webkit-grab;cursor:-moz-grab;font-size:15px}.sky-tile-content{border-color:#e2e3e4;border-image:none;border-style:solid solid none;border-width:1px 0}:host-context(.sky-theme-modern) .sky-tile-header,:host-context(.sky-theme-modern) .sky-tile-content{border:none}:host-context(.sky-theme-modern) .sky-tile-header-title{padding:0;margin:0 30px 0 0}:host-context(.sky-theme-modern) .sky-tile-header-column-tools{align-items:flex-start}:host-context(.sky-theme-modern) .sky-tile-tools{padding:0}:host-context(.sky-theme-modern) .sky-tile-tools-control{font-size:18px;color:#686c73}:host-context(.sky-theme-modern) .sky-tile-grab-handle{font-size:16px}:host-context(.sky-theme-modern) .sky-tile-content ::ng-deep .sky-tile-content-section{border-bottom:1px dotted #c0c2c5}:host-context(.sky-theme-modern) .sky-tile-content ::ng-deep sky-tile-content-section:first-child .sky-tile-content-section{margin-top:15px}:host-context(.sky-theme-modern) .sky-tile-content ::ng-deep sky-tile-content-section:last-child .sky-tile-content-section{padding-bottom:0;border-bottom:none}:host-context(.sky-theme-modern) :host .sky-tile{border-radius:0}:host-context(.sky-theme-modern) :host-context(.sky-responsive-container-xs) .sky-tile,:host-context(.sky-theme-modern) :host-context(.sky-responsive-container-sm) .sky-tile,:host-context(.sky-theme-modern) :host-context(.sky-responsive-container-md) .sky-tile,:host-context(.sky-theme-modern) :host-context(.sky-responsive-container-lg) .sky-tile{border-radius:0}@media (min-width: 768px){:host-context(.sky-theme-modern) :host .sky-tile{border-radius:6px}}:host-context(.sky-theme-modern) :host-context(.sky-responsive-container-sm) .sky-tile,:host-context(.sky-theme-modern) :host-context(.sky-responsive-container-md) .sky-tile,:host-context(.sky-theme-modern) :host-context(.sky-responsive-container-lg) .sky-tile{border-radius:6px}.sky-theme-modern .sky-tile-header,.sky-theme-modern .sky-tile-content{border:none}.sky-theme-modern .sky-tile-header-title{padding:0;margin:0 30px 0 0}.sky-theme-modern .sky-tile-header-column-tools{align-items:flex-start}.sky-theme-modern .sky-tile-tools{padding:0}.sky-theme-modern .sky-tile-tools-control{font-size:18px;color:#686c73}.sky-theme-modern .sky-tile-grab-handle{font-size:16px}.sky-theme-modern .sky-tile-content ::ng-deep .sky-tile-content-section{border-bottom:1px dotted #c0c2c5}.sky-theme-modern .sky-tile-content ::ng-deep sky-tile-content-section:first-child .sky-tile-content-section{margin-top:15px}.sky-theme-modern .sky-tile-content ::ng-deep sky-tile-content-section:last-child .sky-tile-content-section{padding-bottom:0;border-bottom:none}.sky-theme-modern :host .sky-tile{border-radius:0}.sky-theme-modern :host-context(.sky-responsive-container-xs) .sky-tile,.sky-theme-modern :host-context(.sky-responsive-container-sm) .sky-tile,.sky-theme-modern :host-context(.sky-responsive-container-md) .sky-tile,.sky-theme-modern :host-context(.sky-responsive-container-lg) .sky-tile{border-radius:0}@media (min-width: 768px){.sky-theme-modern :host .sky-tile{border-radius:6px}}.sky-theme-modern :host-context(.sky-responsive-container-sm) .sky-tile,.sky-theme-modern :host-context(.sky-responsive-container-md) .sky-tile,.sky-theme-modern :host-context(.sky-responsive-container-lg) .sky-tile{border-radius:6px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: SkyChevronModule }, { kind: "component", type: i3.λ2, selector: "sky-chevron", inputs: ["ariaControls", "ariaLabel", "direction", "disabled"], outputs: ["directionChange"] }, { kind: "ngmodule", type: SkyHelpInlineModule }, { kind: "component", type: i4$1.λ1, selector: "sky-help-inline", inputs: ["ariaControls", "ariaExpanded", "ariaLabel", "labelledBy", "labelText", "popoverContent", "popoverTitle", "helpKey"], outputs: ["actionClick"] }, { kind: "ngmodule", type: SkyIconModule }, { kind: "component", type: i5.λ1, selector: "sky-icon", inputs: ["icon", "iconType", "size", "fixedWidth", "variant"] }, { kind: "ngmodule", type: SkyIdModule }, { kind: "directive", type: i2.λ2, selector: "[skyId]", exportAs: ["skyId"] }, { kind: "ngmodule", type: SkyThemeModule }, { kind: "directive", type: i7.λ2, selector: "[skyThemeClass]", inputs: ["class", "skyThemeClass"] }, { kind: "directive", type: i7.λ3, selector: "[skyThemeIf]", inputs: ["skyThemeIf"] }, { kind: "ngmodule", type: SkyTilesResourcesModule }, { kind: "pipe", type: i3$1.SkyLibResourcesPipe, name: "skyLibResources" }], animations: [skyAnimationSlide] }); }
812
812
  }
813
813
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: SkyTileComponent, decorators: [{
814
814
  type: Component,