@eui/components 17.1.0-snapshot-1704853368511 → 17.1.0-snapshot-1704939776889
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.
- package/docs/components/EuiDropdownComponent.html +24 -0
- package/docs/components/EuiMessageBoxComponent.html +40 -2
- package/docs/dependencies.html +2 -2
- package/docs/js/search/search_index.js +2 -2
- package/esm2022/eui-buttons/eui-buttons.component.mjs +1 -1
- package/esm2022/eui-card/components/eui-card-footer/eui-card-footer-menu-content.component.mjs +1 -1
- package/esm2022/eui-dropdown/dropdown-item/eui-dropdown-item.component.mjs +2 -2
- package/esm2022/eui-dropdown/eui-dropdown.component.mjs +16 -4
- package/esm2022/eui-message-box/eui-message-box.component.mjs +15 -3
- package/esm2022/eui-table/sortable-col/eui-table-sortable-col.component.mjs +1 -1
- package/esm2022/eui-timepicker/eui-timepicker.component.mjs +38 -33
- package/esm2022/eui-tree/eui-tree.component.mjs +1 -1
- package/esm2022/layout/eui-breadcrumb/collapsed-breadcrumb/collapsed-breadcrumb.component.mjs +1 -1
- package/esm2022/layout/eui-language-selector/language-selector.component.mjs +1 -1
- package/esm2022/layout/eui-user-profile/user-profile.component.mjs +1 -1
- package/eui-dropdown/eui-dropdown.component.d.ts +2 -1
- package/eui-dropdown/eui-dropdown.component.d.ts.map +1 -1
- package/eui-message-box/eui-message-box.component.d.ts +10 -1
- package/eui-message-box/eui-message-box.component.d.ts.map +1 -1
- package/eui-timepicker/eui-timepicker.component.d.ts.map +1 -1
- package/fesm2022/eui-components-eui-buttons.mjs +1 -1
- package/fesm2022/eui-components-eui-buttons.mjs.map +1 -1
- package/fesm2022/eui-components-eui-card.mjs +1 -1
- package/fesm2022/eui-components-eui-card.mjs.map +1 -1
- package/fesm2022/eui-components-eui-dropdown.mjs +17 -5
- package/fesm2022/eui-components-eui-dropdown.mjs.map +1 -1
- package/fesm2022/eui-components-eui-message-box.mjs +14 -2
- package/fesm2022/eui-components-eui-message-box.mjs.map +1 -1
- package/fesm2022/eui-components-eui-table.mjs +1 -1
- package/fesm2022/eui-components-eui-table.mjs.map +1 -1
- package/fesm2022/eui-components-eui-timepicker.mjs +37 -32
- package/fesm2022/eui-components-eui-timepicker.mjs.map +1 -1
- package/fesm2022/eui-components-eui-tree.mjs +1 -1
- package/fesm2022/eui-components-eui-tree.mjs.map +1 -1
- package/fesm2022/eui-components-layout.mjs +3 -3
- package/fesm2022/eui-components-layout.mjs.map +1 -1
- package/package.json +7 -7
@@ -72,7 +72,7 @@ export class EuiButtonsComponent extends BaseDirective {
|
|
72
72
|
return window.location.origin + currentRoute;
|
73
73
|
}
|
74
74
|
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: EuiButtonsComponent, deps: [{ token: i1.EuiAppShellService }, { token: i2.Router }], target: i0.ɵɵFactoryTarget.Component }); }
|
75
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.8", type: EuiButtonsComponent, selector: "eui-buttons", inputs: { localMenuLabel: "localMenuLabel", hasLocalMenu: "hasLocalMenu", isBookmarkable: "isBookmarkable", isBookmarked: "isBookmarked" }, outputs: { bookmark: "bookmark" }, host: { properties: { "class": "this.cssClasses" } }, queries: [{ propertyName: "customActionsContent", first: true, predicate: i0.forwardRef(() => EuiButtonsActionsContentTagDirective), descendants: true }, { propertyName: "customLocalMenuContent", first: true, predicate: i0.forwardRef(() => EuiButtonsLocalMenuContentTagDirective), descendants: true }], usesInheritance: true, ngImport: i0, template: "<div\n class=\"eui-buttons-wrapper\"\n [class.eui-buttons-wrapper--mobile]=\"(asService.breakpoints$ | async).isMobile || (asService.breakpoints$ | async).isTablet\">\n <div class=\"eui-buttons__actions-container\">\n <!-- ACTION BUTTONS -->\n <ng-container *ngIf=\"!((asService.breakpoints$ | async).isMobile || (asService.breakpoints$ | async).isTablet)\">\n <ng-container *ngTemplateOutlet=\"actionsButtons\"></ng-container>\n </ng-container>\n\n <!-- BOOKMARK BUTTON -->\n <button\n *ngIf=\"isBookmarkable && !((asService.breakpoints$ | async).isMobile || (asService.breakpoints$ | async).isTablet)\"\n euiButton\n euiOutline\n euiSecondary\n type=\"button\"\n [title]=\"\n isBookmarked ? ('eui.pageHeader.REMOVE-BOOKMARK.tooltip' | translate) : ('eui.pageHeader.ADD-BOOKMARK.tooltip' | translate)\n \"\n [attr.aria-label]=\"\n isBookmarked ? ('eui.pageHeader.REMOVE-BOOKMARK.tooltip' | translate) : ('eui.pageHeader.ADD-BOOKMARK.tooltip' | translate)\n \"\n (click)=\"onBookmarkToggle()\">\n <eui-icon-svg *ngIf=\"isBookmarked\" icon=\"eui-bookmark\"></eui-icon-svg>\n <eui-icon-svg *ngIf=\"!isBookmarked\" icon=\"eui-bookmark-outline\"></eui-icon-svg>\n <span *ngIf=\"isBookmarked\">{{ 'eui.pageHeader.REMOVE-BOOKMARK' | translate }}</span>\n <span *ngIf=\"!isBookmarked\">{{ 'eui.pageHeader.ADD-BOOKMARK' | translate }}</span>\n </button>\n\n <!-- LOCAL MENU WHEN IN MOBILE/TABLET MODE -->\n <div\n *ngIf=\"hasLocalMenu || (asService.breakpoints$ | async).isMobile || (asService.breakpoints$ | async).isTablet\"\n class=\"eui-buttons__local-menu\"\n [class.eui-buttons__local-menu--mobile]=\"(asService.breakpoints$ | async).isMobile || (asService.breakpoints$ | async).isTablet\"\n euiSizeS>\n <eui-dropdown>\n <button\n euiButton\n euiPrimary\n type=\"button\"\n [euiOutline]=\"localMenuLabel\"\n [euiBasicButton]=\"!localMenuLabel\"\n [euiRounded]=\"!localMenuLabel\"\n [euiIconButton]=\"!localMenuLabel\">\n <span *ngIf=\"localMenuLabel\" euiLabel>{{ localMenuLabel }}</span>\n <eui-icon-svg icon=\"eui-ellipsis-vertical\"></eui-icon-svg>\n </button>\n <eui-dropdown-content>\n <!-- Action buttons -->\n <ng-container\n *ngIf=\"\n customActionsContent && ((asService.breakpoints$ | async).isMobile || (asService.breakpoints$ | async).isTablet)\n \">\n <ng-container *ngTemplateOutlet=\"actionsButtons\"></ng-container>\n </ng-container>\n\n <!-- Local menu items -->\n <ng-container *ngIf=\"hasLocalMenu && customLocalMenuContent && customLocalMenuContent.length !== 0\">\n <ng-container *ngTemplateOutlet=\"localMenu\"></ng-container>\n </ng-container>\n\n <!-- Extra menu items -->\n <ul euiList class=\"eui-buttons__local-menu-extras\">\n <li\n *ngIf=\"\n isBookmarkable && ((asService.breakpoints$ | async).isMobile || (asService.breakpoints$ | async).isTablet)\n \"\n euiListItem\n [title]=\"\n isBookmarked\n ? ('eui.pageHeader.REMOVE-BOOKMARK-TOOLTIP' | translate)\n : ('eui.pageHeader.ADD-BOOKMARK-TOOLTIP' | translate)\n \"\n [attr.aria-label]=\"\n isBookmarked\n ? ('eui.pageHeader.REMOVE-BOOKMARK-TOOLTIP' | translate)\n : ('eui.pageHeader.ADD-BOOKMARK-TOOLTIP' | translate)\n \"\n (click)=\"onBookmarkToggle()\">\n <eui-icon-svg *ngIf=\"isBookmarked\" icon=\"eui-bookmark\" fillColor=\"info-100\" size=\"s\"></eui-icon-svg>\n <eui-icon-svg *ngIf=\"!isBookmarked\" icon=\"eui-bookmark-outline\" fillColor=\"info-100\" size=\"s\"></eui-icon-svg>\n <span *ngIf=\"isBookmarked\" euiLabel>{{ 'eui.pageHeader.REMOVE-BOOKMARK' | translate }}</span>\n <span *ngIf=\"!isBookmarked\" euiLabel>{{ 'eui.pageHeader.ADD-BOOKMARK' | translate }}</span>\n </li>\n </ul>\n </eui-dropdown-content>\n </eui-dropdown>\n </div>\n </div>\n</div>\n\n<ng-template #actionsButtons>\n <div\n class=\"eui-buttons__actions-content-wrapper\"\n [class.eui-buttons__actions-content--mobile]=\"\n (asService.breakpoints$ | async).isMobile || (asService.breakpoints$ | async).isTablet\n \">\n <ng-content select=\"euiButtonsActionsContent\"></ng-content>\n </div>\n</ng-template>\n\n<ng-template #localMenu>\n <div\n class=\"eui-buttons__local-menu-content-wrapper\"\n [class.eui-buttons__local-menu-content--mobile]=\"\n (asService.breakpoints$ | async).isMobile || (asService.breakpoints$ | async).isTablet\n \">\n <ng-content select=\"euiButtonsLocalMenuContent\"></ng-content>\n </div>\n</ng-template>\n", styles: [".eui-buttons{display:flex;flex-direction:column;width:100%}.eui-buttons-wrapper{max-width:100%;align-items:center;display:flex;width:100%}.eui-buttons__actions-container{align-items:center;display:flex;flex:1 0 auto;justify-content:flex-end}.eui-buttons__actions-container button{margin-left:var(--eui-base-spacing-xs)}.eui-buttons__actions-content-wrapper{align-items:center;display:flex;flex-direction:row;overflow:visible}.eui-buttons__actions-content-wrapper--mobile{display:block;width:100%}.eui-buttons__actions-content-wrapper--mobile .eui-buttons__actions-content{display:block;margin:var(--eui-base-spacing-xs);position:relative}.eui-buttons__actions-content-wrapper--mobile .eui-buttons__actions-content button{align-items:center;display:flex;margin-bottom:var(--eui-base-spacing-xs);min-height:calc(2 * var(--eui-base-spacing-m));width:100%}.eui-buttons__local-menu{align-items:center;display:flex}.eui-buttons__local-menu__action-buttons{margin:0 var(--eui-base-spacing-s)}.eui-buttons__local-menu__action-buttons button,.eui-buttons__local-menu__action-buttons div{margin-bottom:var(--eui-base-spacing-xs)}.eui-buttons__local-menu__action-buttons--mobile,.eui-buttons__local-menu-content-wrapper{display:block;width:100%}.eui-buttons__local-menu-content-wrapper .eui-buttons__local-menu-content{display:block;position:relative;width:100%}.eui-buttons__local-menu-content-wrapper .eui-buttons__local-menu-content button{align-items:center;display:flex;margin-bottom:var(--eui-base-spacing-xs);margin-top:var(--eui-base-spacing-xs);min-height:calc(2 * var(--eui-base-spacing-m));width:100%}.eui-buttons__local-menu-content-wrapper--mobile .container{padding-left:var(--eui-base-spacing-xs);padding-right:var(--eui-base-spacing-xs)}.eui-buttons__local-menu-extras{border-top:1px ridge var(--eui-base-color-grey-20);color:var(--eui-base-color-info-100)}.eui-buttons--size-s .eui-button{min-height:calc(2 * var(--eui-base-spacing-m))}.eui-buttons--size-m .eui-button{min-height:42px;min-width:42px}.eui-buttons--size-l .eui-button{height:calc(3.25 * var(--eui-base-spacing-m));min-height:calc(3.25 * var(--eui-base-spacing-m))}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i4.EuiButtonComponent, selector: "button[euiButton], a[euiButton]", inputs: ["e2eAttr", "id", "euiBasicButton", "euiButtonCall", "euiBlockButton", "isLoading", "euiIconButton", "euiLineWrap"], outputs: ["buttonClick"] }, { kind: "component", type: i5.EuiDropdownComponent, selector: "eui-dropdown", inputs: ["e2eAttr", "tabIndex", "width", "position", "isDropDownRightAligned", "isClosedOnClickInside", "isLabelUpdatedFromSelectedItem", "isExpandOnHover", "hasTabNavigation"] }, { kind: "directive", type: i5.EuiDropdownContentDirective, selector: "eui-dropdown-content" }, { kind: "component", type: i6.EuiIconSvgComponent, selector: "eui-icon-svg, span[euiIconSvg], i[euiIconSvg]", inputs: ["icon", "size", "fillColor", "set", "ariaLabelledby", "role", "style", "iconUrl", "transform", "aria-label", "ariaHidden", "focusable", "isLoading"] }, { kind: "component", type: i7.EuiLabelComponent, selector: "label[euiLabel], span[euiLabel], div[euiLabel], a[euiLabel], eui-label, label[euiSublabel], span[euiSublabel], div[euiSublabel], a[euiSublabel], eui-sublabel", inputs: ["euiRequired", "euiReadonly", "euiSublabel"] }, { kind: "component", type: i8.EuiListComponent, selector: "[euiList], eui-list", inputs: ["isCollapsible"] }, { kind: "component", type: i8.EuiListItemComponent, selector: "[euiListItem], eui-list-item", inputs: ["disabled", "isCollapsible", "isCollapsed", "isActive"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i9.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
75
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.8", type: EuiButtonsComponent, selector: "eui-buttons", inputs: { localMenuLabel: "localMenuLabel", hasLocalMenu: "hasLocalMenu", isBookmarkable: "isBookmarkable", isBookmarked: "isBookmarked" }, outputs: { bookmark: "bookmark" }, host: { properties: { "class": "this.cssClasses" } }, queries: [{ propertyName: "customActionsContent", first: true, predicate: i0.forwardRef(() => EuiButtonsActionsContentTagDirective), descendants: true }, { propertyName: "customLocalMenuContent", first: true, predicate: i0.forwardRef(() => EuiButtonsLocalMenuContentTagDirective), descendants: true }], usesInheritance: true, ngImport: i0, template: "<div\n class=\"eui-buttons-wrapper\"\n [class.eui-buttons-wrapper--mobile]=\"(asService.breakpoints$ | async).isMobile || (asService.breakpoints$ | async).isTablet\">\n <div class=\"eui-buttons__actions-container\">\n <!-- ACTION BUTTONS -->\n <ng-container *ngIf=\"!((asService.breakpoints$ | async).isMobile || (asService.breakpoints$ | async).isTablet)\">\n <ng-container *ngTemplateOutlet=\"actionsButtons\"></ng-container>\n </ng-container>\n\n <!-- BOOKMARK BUTTON -->\n <button\n *ngIf=\"isBookmarkable && !((asService.breakpoints$ | async).isMobile || (asService.breakpoints$ | async).isTablet)\"\n euiButton\n euiOutline\n euiSecondary\n type=\"button\"\n [title]=\"\n isBookmarked ? ('eui.pageHeader.REMOVE-BOOKMARK.tooltip' | translate) : ('eui.pageHeader.ADD-BOOKMARK.tooltip' | translate)\n \"\n [attr.aria-label]=\"\n isBookmarked ? ('eui.pageHeader.REMOVE-BOOKMARK.tooltip' | translate) : ('eui.pageHeader.ADD-BOOKMARK.tooltip' | translate)\n \"\n (click)=\"onBookmarkToggle()\">\n <eui-icon-svg *ngIf=\"isBookmarked\" icon=\"eui-bookmark\"></eui-icon-svg>\n <eui-icon-svg *ngIf=\"!isBookmarked\" icon=\"eui-bookmark-outline\"></eui-icon-svg>\n <span *ngIf=\"isBookmarked\">{{ 'eui.pageHeader.REMOVE-BOOKMARK' | translate }}</span>\n <span *ngIf=\"!isBookmarked\">{{ 'eui.pageHeader.ADD-BOOKMARK' | translate }}</span>\n </button>\n\n <!-- LOCAL MENU WHEN IN MOBILE/TABLET MODE -->\n <div\n *ngIf=\"hasLocalMenu || (asService.breakpoints$ | async).isMobile || (asService.breakpoints$ | async).isTablet\"\n class=\"eui-buttons__local-menu\"\n [class.eui-buttons__local-menu--mobile]=\"(asService.breakpoints$ | async).isMobile || (asService.breakpoints$ | async).isTablet\"\n euiSizeS>\n <eui-dropdown>\n <button\n euiButton\n euiPrimary\n type=\"button\"\n [euiOutline]=\"localMenuLabel\"\n [euiBasicButton]=\"!localMenuLabel\"\n [euiRounded]=\"!localMenuLabel\"\n [euiIconButton]=\"!localMenuLabel\">\n <span *ngIf=\"localMenuLabel\" euiLabel>{{ localMenuLabel }}</span>\n <eui-icon-svg icon=\"eui-ellipsis-vertical\"></eui-icon-svg>\n </button>\n <eui-dropdown-content>\n <!-- Action buttons -->\n <ng-container\n *ngIf=\"\n customActionsContent && ((asService.breakpoints$ | async).isMobile || (asService.breakpoints$ | async).isTablet)\n \">\n <ng-container *ngTemplateOutlet=\"actionsButtons\"></ng-container>\n </ng-container>\n\n <!-- Local menu items -->\n <ng-container *ngIf=\"hasLocalMenu && customLocalMenuContent && customLocalMenuContent.length !== 0\">\n <ng-container *ngTemplateOutlet=\"localMenu\"></ng-container>\n </ng-container>\n\n <!-- Extra menu items -->\n <ul euiList class=\"eui-buttons__local-menu-extras\">\n <li\n *ngIf=\"\n isBookmarkable && ((asService.breakpoints$ | async).isMobile || (asService.breakpoints$ | async).isTablet)\n \"\n euiListItem\n [title]=\"\n isBookmarked\n ? ('eui.pageHeader.REMOVE-BOOKMARK-TOOLTIP' | translate)\n : ('eui.pageHeader.ADD-BOOKMARK-TOOLTIP' | translate)\n \"\n [attr.aria-label]=\"\n isBookmarked\n ? ('eui.pageHeader.REMOVE-BOOKMARK-TOOLTIP' | translate)\n : ('eui.pageHeader.ADD-BOOKMARK-TOOLTIP' | translate)\n \"\n (click)=\"onBookmarkToggle()\">\n <eui-icon-svg *ngIf=\"isBookmarked\" icon=\"eui-bookmark\" fillColor=\"info-100\" size=\"s\"></eui-icon-svg>\n <eui-icon-svg *ngIf=\"!isBookmarked\" icon=\"eui-bookmark-outline\" fillColor=\"info-100\" size=\"s\"></eui-icon-svg>\n <span *ngIf=\"isBookmarked\" euiLabel>{{ 'eui.pageHeader.REMOVE-BOOKMARK' | translate }}</span>\n <span *ngIf=\"!isBookmarked\" euiLabel>{{ 'eui.pageHeader.ADD-BOOKMARK' | translate }}</span>\n </li>\n </ul>\n </eui-dropdown-content>\n </eui-dropdown>\n </div>\n </div>\n</div>\n\n<ng-template #actionsButtons>\n <div\n class=\"eui-buttons__actions-content-wrapper\"\n [class.eui-buttons__actions-content--mobile]=\"\n (asService.breakpoints$ | async).isMobile || (asService.breakpoints$ | async).isTablet\n \">\n <ng-content select=\"euiButtonsActionsContent\"></ng-content>\n </div>\n</ng-template>\n\n<ng-template #localMenu>\n <div\n class=\"eui-buttons__local-menu-content-wrapper\"\n [class.eui-buttons__local-menu-content--mobile]=\"\n (asService.breakpoints$ | async).isMobile || (asService.breakpoints$ | async).isTablet\n \">\n <ng-content select=\"euiButtonsLocalMenuContent\"></ng-content>\n </div>\n</ng-template>\n", styles: [".eui-buttons{display:flex;flex-direction:column;width:100%}.eui-buttons-wrapper{max-width:100%;align-items:center;display:flex;width:100%}.eui-buttons__actions-container{align-items:center;display:flex;flex:1 0 auto;justify-content:flex-end}.eui-buttons__actions-container button{margin-left:var(--eui-base-spacing-xs)}.eui-buttons__actions-content-wrapper{align-items:center;display:flex;flex-direction:row;overflow:visible}.eui-buttons__actions-content-wrapper--mobile{display:block;width:100%}.eui-buttons__actions-content-wrapper--mobile .eui-buttons__actions-content{display:block;margin:var(--eui-base-spacing-xs);position:relative}.eui-buttons__actions-content-wrapper--mobile .eui-buttons__actions-content button{align-items:center;display:flex;margin-bottom:var(--eui-base-spacing-xs);min-height:calc(2 * var(--eui-base-spacing-m));width:100%}.eui-buttons__local-menu{align-items:center;display:flex}.eui-buttons__local-menu__action-buttons{margin:0 var(--eui-base-spacing-s)}.eui-buttons__local-menu__action-buttons button,.eui-buttons__local-menu__action-buttons div{margin-bottom:var(--eui-base-spacing-xs)}.eui-buttons__local-menu__action-buttons--mobile,.eui-buttons__local-menu-content-wrapper{display:block;width:100%}.eui-buttons__local-menu-content-wrapper .eui-buttons__local-menu-content{display:block;position:relative;width:100%}.eui-buttons__local-menu-content-wrapper .eui-buttons__local-menu-content button{align-items:center;display:flex;margin-bottom:var(--eui-base-spacing-xs);margin-top:var(--eui-base-spacing-xs);min-height:calc(2 * var(--eui-base-spacing-m));width:100%}.eui-buttons__local-menu-content-wrapper--mobile .container{padding-left:var(--eui-base-spacing-xs);padding-right:var(--eui-base-spacing-xs)}.eui-buttons__local-menu-extras{border-top:1px ridge var(--eui-base-color-grey-20);color:var(--eui-base-color-info-100)}.eui-buttons--size-s .eui-button{min-height:calc(2 * var(--eui-base-spacing-m))}.eui-buttons--size-m .eui-button{min-height:42px;min-width:42px}.eui-buttons--size-l .eui-button{height:calc(3.25 * var(--eui-base-spacing-m));min-height:calc(3.25 * var(--eui-base-spacing-m))}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i4.EuiButtonComponent, selector: "button[euiButton], a[euiButton]", inputs: ["e2eAttr", "id", "euiBasicButton", "euiButtonCall", "euiBlockButton", "isLoading", "euiIconButton", "euiLineWrap"], outputs: ["buttonClick"] }, { kind: "component", type: i5.EuiDropdownComponent, selector: "eui-dropdown", inputs: ["e2eAttr", "tabIndex", "width", "position", "isBlock", "isDropDownRightAligned", "isClosedOnClickInside", "isLabelUpdatedFromSelectedItem", "isExpandOnHover", "hasTabNavigation"] }, { kind: "directive", type: i5.EuiDropdownContentDirective, selector: "eui-dropdown-content" }, { kind: "component", type: i6.EuiIconSvgComponent, selector: "eui-icon-svg, span[euiIconSvg], i[euiIconSvg]", inputs: ["icon", "size", "fillColor", "set", "ariaLabelledby", "role", "style", "iconUrl", "transform", "aria-label", "ariaHidden", "focusable", "isLoading"] }, { kind: "component", type: i7.EuiLabelComponent, selector: "label[euiLabel], span[euiLabel], div[euiLabel], a[euiLabel], eui-label, label[euiSublabel], span[euiSublabel], div[euiSublabel], a[euiSublabel], eui-sublabel", inputs: ["euiRequired", "euiReadonly", "euiSublabel"] }, { kind: "component", type: i8.EuiListComponent, selector: "[euiList], eui-list", inputs: ["isCollapsible"] }, { kind: "component", type: i8.EuiListItemComponent, selector: "[euiListItem], eui-list-item", inputs: ["disabled", "isCollapsible", "isCollapsed", "isActive"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i9.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
76
76
|
}
|
77
77
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: EuiButtonsComponent, decorators: [{
|
78
78
|
type: Component,
|
package/esm2022/eui-card/components/eui-card-footer/eui-card-footer-menu-content.component.mjs
CHANGED
@@ -10,7 +10,7 @@ export class EuiCardFooterMenuContentComponent {
|
|
10
10
|
this.string = 'eui-card-footer-menu-content';
|
11
11
|
}
|
12
12
|
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: EuiCardFooterMenuContentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
13
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.8", type: EuiCardFooterMenuContentComponent, selector: "eui-card-footer-menu-content", inputs: { tooltipText: "tooltipText" }, host: { properties: { "class": "this.string" } }, ngImport: i0, template: "<eui-dropdown>\n <button\n euiButton\n euiRounded\n euiIconButton\n euiBasicButton\n euiSecondary\n type=\"button\"\n euiTooltip=\"{{ tooltipText }}\"\n [attr.aria-label]=\"tooltipText\">\n <eui-icon-svg icon=\"eui-ellipsis-vertical\"></eui-icon-svg>\n </button>\n <eui-dropdown-content>\n <ng-content></ng-content>\n </eui-dropdown-content>\n</eui-dropdown>\n", dependencies: [{ kind: "component", type: i1.EuiIconSvgComponent, selector: "eui-icon-svg, span[euiIconSvg], i[euiIconSvg]", inputs: ["icon", "size", "fillColor", "set", "ariaLabelledby", "role", "style", "iconUrl", "transform", "aria-label", "ariaHidden", "focusable", "isLoading"] }, { kind: "component", type: i2.EuiButtonComponent, selector: "button[euiButton], a[euiButton]", inputs: ["e2eAttr", "id", "euiBasicButton", "euiButtonCall", "euiBlockButton", "isLoading", "euiIconButton", "euiLineWrap"], outputs: ["buttonClick"] }, { kind: "component", type: i3.EuiDropdownComponent, selector: "eui-dropdown", inputs: ["e2eAttr", "tabIndex", "width", "position", "isDropDownRightAligned", "isClosedOnClickInside", "isLabelUpdatedFromSelectedItem", "isExpandOnHover", "hasTabNavigation"] }, { kind: "directive", type: i3.EuiDropdownContentDirective, selector: "eui-dropdown-content" }, { kind: "directive", type: i4.EuiTooltipDirective, selector: "[euiTooltip]", inputs: ["e2eAttr", "showDelay", "hideDelay", "contentAlignment", "position", "isDisabled", "euiTooltip", "euiTooltipPrimary", "euiTooltipSecondary", "euiTooltipInfo", "euiTooltipSuccess", "euiTooltipWarning", "euiTooltipDanger", "euiTooltipAccent"], exportAs: ["euiTooltip"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
13
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.8", type: EuiCardFooterMenuContentComponent, selector: "eui-card-footer-menu-content", inputs: { tooltipText: "tooltipText" }, host: { properties: { "class": "this.string" } }, ngImport: i0, template: "<eui-dropdown>\n <button\n euiButton\n euiRounded\n euiIconButton\n euiBasicButton\n euiSecondary\n type=\"button\"\n euiTooltip=\"{{ tooltipText }}\"\n [attr.aria-label]=\"tooltipText\">\n <eui-icon-svg icon=\"eui-ellipsis-vertical\"></eui-icon-svg>\n </button>\n <eui-dropdown-content>\n <ng-content></ng-content>\n </eui-dropdown-content>\n</eui-dropdown>\n", dependencies: [{ kind: "component", type: i1.EuiIconSvgComponent, selector: "eui-icon-svg, span[euiIconSvg], i[euiIconSvg]", inputs: ["icon", "size", "fillColor", "set", "ariaLabelledby", "role", "style", "iconUrl", "transform", "aria-label", "ariaHidden", "focusable", "isLoading"] }, { kind: "component", type: i2.EuiButtonComponent, selector: "button[euiButton], a[euiButton]", inputs: ["e2eAttr", "id", "euiBasicButton", "euiButtonCall", "euiBlockButton", "isLoading", "euiIconButton", "euiLineWrap"], outputs: ["buttonClick"] }, { kind: "component", type: i3.EuiDropdownComponent, selector: "eui-dropdown", inputs: ["e2eAttr", "tabIndex", "width", "position", "isBlock", "isDropDownRightAligned", "isClosedOnClickInside", "isLabelUpdatedFromSelectedItem", "isExpandOnHover", "hasTabNavigation"] }, { kind: "directive", type: i3.EuiDropdownContentDirective, selector: "eui-dropdown-content" }, { kind: "directive", type: i4.EuiTooltipDirective, selector: "[euiTooltip]", inputs: ["e2eAttr", "showDelay", "hideDelay", "contentAlignment", "position", "isDisabled", "euiTooltip", "euiTooltipPrimary", "euiTooltipSecondary", "euiTooltipInfo", "euiTooltipSuccess", "euiTooltipWarning", "euiTooltipDanger", "euiTooltipAccent"], exportAs: ["euiTooltip"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
14
14
|
}
|
15
15
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: EuiCardFooterMenuContentComponent, decorators: [{
|
16
16
|
type: Component,
|
@@ -41,11 +41,11 @@ export class EuiDropdownItemComponent {
|
|
41
41
|
this.elementRef.nativeElement.dispatchEvent(mouseenterEvent);
|
42
42
|
}
|
43
43
|
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: EuiDropdownItemComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
44
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.8", type: EuiDropdownItemComponent, selector: "eui-dropdown-item, [euiDropdownItem]", inputs: { subDropdown: "subDropdown", isActive: "isActive" }, host: { properties: { "attr.role": "this.role", "class": "this.cssClasses" } }, ngImport: i0, template: "<div class=\"eui-dropdown-item__container\">\n <div class=\"eui-dropdown-item__content\">\n <div class=\"eui-dropdown-item__content-text\">\n <ng-content></ng-content>\n </div>\n <div *ngIf=\"subDropdown\" class=\"eui-dropdown-item__content-icon\">\n <eui-icon-svg icon=\"eui-chevron-forward\" set=\"eui\" size=\"s\" fillColor=\"grey-100\"></eui-icon-svg>\n </div>\n </div>\n</div>\n", styles: [".eui-dropdown .eui-dropdown{display:none}.eui-dropdown .eui-dropdown__trigger-container{display:
|
44
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.8", type: EuiDropdownItemComponent, selector: "eui-dropdown-item, [euiDropdownItem]", inputs: { subDropdown: "subDropdown", isActive: "isActive" }, host: { properties: { "attr.role": "this.role", "class": "this.cssClasses" } }, ngImport: i0, template: "<div class=\"eui-dropdown-item__container\">\n <div class=\"eui-dropdown-item__content\">\n <div class=\"eui-dropdown-item__content-text\">\n <ng-content></ng-content>\n </div>\n <div *ngIf=\"subDropdown\" class=\"eui-dropdown-item__content-icon\">\n <eui-icon-svg icon=\"eui-chevron-forward\" set=\"eui\" size=\"s\" fillColor=\"grey-100\"></eui-icon-svg>\n </div>\n </div>\n</div>\n", styles: [".eui-dropdown .eui-dropdown{display:none}.eui-dropdown .eui-dropdown__trigger-container{display:inherit}.eui-dropdown__panel{position:inherit}.eui-dropdown__panel eui-dropdown-content{display:block}.eui-dropdown__panel-container{background:var(--eui-base-color-white);border-radius:var(--eui-base-border-radius);box-shadow:0 2px 4px -1px #0003,0 4px 5px #00000024,0 1px 10px #0000001f;display:block;height:auto;min-width:8rem;overflow:auto;position:relative}.eui-dropdown__panel-container::-webkit-scrollbar{display:inherit;height:5px;width:5px;background-color:var(--eui-base-color-grey-5)}.eui-dropdown__panel-container::-webkit-scrollbar-thumb{background-color:var(--eui-base-color-grey-20);border-radius:5rem}.eui-dropdown__panel-container::-webkit-scrollbar-thumb:hover{background-color:var(--eui-base-color-grey-50)}.eui-dropdown__panel-container::-webkit-scrollbar-track{background-color:var(--eui-base-color-grey-5);border-radius:0}.eui-dropdown__panel-container .eui-dropdown-item{background:none;border:none;box-shadow:none;cursor:pointer;display:block;outline:none;padding:var(--eui-base-spacing-xs) var(--eui-base-spacing-s);position:relative;-webkit-tap-highlight-color:transparent;text-align:left;text-decoration:none;-webkit-user-select:none;user-select:none;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.eui-dropdown__panel-container .eui-dropdown-item--has-subdropdown+*:not(.eui-dropdown-item){display:none}.eui-dropdown__panel-container .eui-dropdown-item .eui-dropdown-item__container{align-items:center;display:flex;min-height:calc(var(--eui-base-spacing-m) + var(--eui-base-spacing-2xs))}.eui-dropdown__panel-container .eui-dropdown-item .eui-dropdown-item__container .eui-dropdown-item__content{align-items:center;display:flex;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.eui-dropdown__panel-container .eui-dropdown-item .eui-dropdown-item__container .eui-dropdown-item__content .eui-dropdown-item__content-text{align-items:center;display:flex;width:100%}.eui-dropdown__panel-container .eui-dropdown-item .eui-dropdown-item__container .eui-dropdown-item__content .eui-dropdown-item__content-text .eui-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.eui-dropdown__panel-container .eui-dropdown-item .eui-dropdown-item__container .eui-dropdown-item__content .eui-dropdown-item__content-icon{align-items:center;display:flex;margin-left:var(--eui-base-spacing-s)}.eui-dropdown-item:hover{background-color:var(--eui-base-color-grey-5)}.eui-dropdown-item:disabled{pointer-events:none;color:var(--eui-base-color-grey-50);font:normal normal 400 1rem/1.25rem var(--eui-base-font-family);font-style:italic}.eui-dropdown-item:disabled:hover,.eui-dropdown-item:disabled:focus{background:none}.eui-dropdown-item--active{background-color:var(--eui-base-color-primary-10)!important;outline:2px solid var(--eui-base-color-accessible-focus)!important;outline-offset:-2px!important}.eui-dropdown-item--active:disabled{background:none!important}.eui-dropdown--block .eui-dropdown__trigger-container .eui-button{display:block;width:100%}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.EuiIconSvgComponent, selector: "eui-icon-svg, span[euiIconSvg], i[euiIconSvg]", inputs: ["icon", "size", "fillColor", "set", "ariaLabelledby", "role", "style", "iconUrl", "transform", "aria-label", "ariaHidden", "focusable", "isLoading"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
45
45
|
}
|
46
46
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: EuiDropdownItemComponent, decorators: [{
|
47
47
|
type: Component,
|
48
|
-
args: [{ selector: 'eui-dropdown-item, [euiDropdownItem]', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<div class=\"eui-dropdown-item__container\">\n <div class=\"eui-dropdown-item__content\">\n <div class=\"eui-dropdown-item__content-text\">\n <ng-content></ng-content>\n </div>\n <div *ngIf=\"subDropdown\" class=\"eui-dropdown-item__content-icon\">\n <eui-icon-svg icon=\"eui-chevron-forward\" set=\"eui\" size=\"s\" fillColor=\"grey-100\"></eui-icon-svg>\n </div>\n </div>\n</div>\n", styles: [".eui-dropdown .eui-dropdown{display:none}.eui-dropdown .eui-dropdown__trigger-container{display:
|
48
|
+
args: [{ selector: 'eui-dropdown-item, [euiDropdownItem]', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<div class=\"eui-dropdown-item__container\">\n <div class=\"eui-dropdown-item__content\">\n <div class=\"eui-dropdown-item__content-text\">\n <ng-content></ng-content>\n </div>\n <div *ngIf=\"subDropdown\" class=\"eui-dropdown-item__content-icon\">\n <eui-icon-svg icon=\"eui-chevron-forward\" set=\"eui\" size=\"s\" fillColor=\"grey-100\"></eui-icon-svg>\n </div>\n </div>\n</div>\n", styles: [".eui-dropdown .eui-dropdown{display:none}.eui-dropdown .eui-dropdown__trigger-container{display:inherit}.eui-dropdown__panel{position:inherit}.eui-dropdown__panel eui-dropdown-content{display:block}.eui-dropdown__panel-container{background:var(--eui-base-color-white);border-radius:var(--eui-base-border-radius);box-shadow:0 2px 4px -1px #0003,0 4px 5px #00000024,0 1px 10px #0000001f;display:block;height:auto;min-width:8rem;overflow:auto;position:relative}.eui-dropdown__panel-container::-webkit-scrollbar{display:inherit;height:5px;width:5px;background-color:var(--eui-base-color-grey-5)}.eui-dropdown__panel-container::-webkit-scrollbar-thumb{background-color:var(--eui-base-color-grey-20);border-radius:5rem}.eui-dropdown__panel-container::-webkit-scrollbar-thumb:hover{background-color:var(--eui-base-color-grey-50)}.eui-dropdown__panel-container::-webkit-scrollbar-track{background-color:var(--eui-base-color-grey-5);border-radius:0}.eui-dropdown__panel-container .eui-dropdown-item{background:none;border:none;box-shadow:none;cursor:pointer;display:block;outline:none;padding:var(--eui-base-spacing-xs) var(--eui-base-spacing-s);position:relative;-webkit-tap-highlight-color:transparent;text-align:left;text-decoration:none;-webkit-user-select:none;user-select:none;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.eui-dropdown__panel-container .eui-dropdown-item--has-subdropdown+*:not(.eui-dropdown-item){display:none}.eui-dropdown__panel-container .eui-dropdown-item .eui-dropdown-item__container{align-items:center;display:flex;min-height:calc(var(--eui-base-spacing-m) + var(--eui-base-spacing-2xs))}.eui-dropdown__panel-container .eui-dropdown-item .eui-dropdown-item__container .eui-dropdown-item__content{align-items:center;display:flex;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.eui-dropdown__panel-container .eui-dropdown-item .eui-dropdown-item__container .eui-dropdown-item__content .eui-dropdown-item__content-text{align-items:center;display:flex;width:100%}.eui-dropdown__panel-container .eui-dropdown-item .eui-dropdown-item__container .eui-dropdown-item__content .eui-dropdown-item__content-text .eui-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.eui-dropdown__panel-container .eui-dropdown-item .eui-dropdown-item__container .eui-dropdown-item__content .eui-dropdown-item__content-icon{align-items:center;display:flex;margin-left:var(--eui-base-spacing-s)}.eui-dropdown-item:hover{background-color:var(--eui-base-color-grey-5)}.eui-dropdown-item:disabled{pointer-events:none;color:var(--eui-base-color-grey-50);font:normal normal 400 1rem/1.25rem var(--eui-base-font-family);font-style:italic}.eui-dropdown-item:disabled:hover,.eui-dropdown-item:disabled:focus{background:none}.eui-dropdown-item--active{background-color:var(--eui-base-color-primary-10)!important;outline:2px solid var(--eui-base-color-accessible-focus)!important;outline-offset:-2px!important}.eui-dropdown-item--active:disabled{background:none!important}.eui-dropdown--block .eui-dropdown__trigger-container .eui-button{display:block;width:100%}\n"] }]
|
49
49
|
}], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { subDropdown: [{
|
50
50
|
type: Input
|
51
51
|
}], role: [{
|
@@ -14,7 +14,10 @@ import * as i2 from "./eui-dropdown.service";
|
|
14
14
|
import * as i3 from "@angular/cdk/a11y";
|
15
15
|
export class EuiDropdownComponent extends BaseDirective {
|
16
16
|
get cssClasses() {
|
17
|
-
return [
|
17
|
+
return [
|
18
|
+
this.isBlock ? 'eui-dropdown--block' : '',
|
19
|
+
super.getCssClasses('eui-dropdown'),
|
20
|
+
].join(' ').trim();
|
18
21
|
}
|
19
22
|
constructor(overlay, viewContainerRef, scrollDispatcher, dropdownService, _renderer) {
|
20
23
|
super();
|
@@ -28,6 +31,7 @@ export class EuiDropdownComponent extends BaseDirective {
|
|
28
31
|
this.width = 'auto';
|
29
32
|
this.position = 'bottom';
|
30
33
|
this.trapFocusAutoCapture = true;
|
34
|
+
this.isBlock = false;
|
31
35
|
this.isDropDownRightAligned = false;
|
32
36
|
this.isClosedOnClickInside = true;
|
33
37
|
this.isLabelUpdatedFromSelectedItem = false;
|
@@ -97,6 +101,9 @@ export class EuiDropdownComponent extends BaseDirective {
|
|
97
101
|
if (!e.target.querySelector('.disabled') &&
|
98
102
|
!e.target.querySelector(':disabled') &&
|
99
103
|
!this.isOpen) {
|
104
|
+
if (this.isBlock) {
|
105
|
+
this.width = this.triggerRef.nativeElement.offsetWidth + 'px';
|
106
|
+
}
|
100
107
|
this.openDropdown(e.target);
|
101
108
|
e.stopPropagation();
|
102
109
|
}
|
@@ -345,8 +352,11 @@ export class EuiDropdownComponent extends BaseDirective {
|
|
345
352
|
}
|
346
353
|
}
|
347
354
|
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: EuiDropdownComponent, deps: [{ token: i1.Overlay }, { token: i0.ViewContainerRef }, { token: i1.ScrollDispatcher }, { token: i2.EuiDropdownService }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }
|
348
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.8", type: EuiDropdownComponent, selector: "eui-dropdown", inputs: { e2eAttr: "e2eAttr", tabIndex: "tabIndex", width: "width", position: "position", isDropDownRightAligned: "isDropDownRightAligned", isClosedOnClickInside: "isClosedOnClickInside", isLabelUpdatedFromSelectedItem: "isLabelUpdatedFromSelectedItem", isExpandOnHover: "isExpandOnHover", hasTabNavigation: "hasTabNavigation" }, host: { properties: { "class": "this.cssClasses" } }, queries: [{ propertyName: "euiDropdownItems", predicate: EuiDropdownItemComponent, descendants: true }], viewQueries: [{ propertyName: "templatePortalContent", first: true, predicate: ["templatePortalContent"], descendants: true }, { propertyName: "triggerRef", first: true, predicate: ["triggerRef"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div #triggerRef class=\"eui-dropdown__trigger-container\" (click)=\"onTriggerClicked($event)\">\n <ng-content></ng-content>\n</div>\n\n<ng-template #templatePortalContent>\n <div\n attr.data-e2e=\"{{ e2eAttr }}\"\n [@openClose]=\"isOpen ? 'open' : 'closed'\"\n cdkTrapFocus\n [cdkTrapFocusAutoCapture]=\"trapFocusAutoCapture\"\n role=\"dialog\"\n aria-label=\"eUI dropdown panel\"\n class=\"eui-dropdown__panel-container\"\n [style.width]=\"width\"\n [tabindex]=\"tabIndex\"\n (click)=\"onClick()\">\n <ng-content select=\"eui-dropdown-content\"></ng-content>\n </div>\n</ng-template>\n", styles: [".eui-dropdown .eui-dropdown{display:none}.eui-dropdown .eui-dropdown__trigger-container{display:
|
355
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.8", type: EuiDropdownComponent, selector: "eui-dropdown", inputs: { e2eAttr: "e2eAttr", tabIndex: "tabIndex", width: "width", position: "position", isBlock: "isBlock", isDropDownRightAligned: "isDropDownRightAligned", isClosedOnClickInside: "isClosedOnClickInside", isLabelUpdatedFromSelectedItem: "isLabelUpdatedFromSelectedItem", isExpandOnHover: "isExpandOnHover", hasTabNavigation: "hasTabNavigation" }, host: { properties: { "class": "this.cssClasses" } }, queries: [{ propertyName: "euiDropdownItems", predicate: EuiDropdownItemComponent, descendants: true }], viewQueries: [{ propertyName: "templatePortalContent", first: true, predicate: ["templatePortalContent"], descendants: true }, { propertyName: "triggerRef", first: true, predicate: ["triggerRef"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div #triggerRef class=\"eui-dropdown__trigger-container\" (click)=\"onTriggerClicked($event)\">\n <ng-content></ng-content>\n</div>\n\n<ng-template #templatePortalContent>\n <div\n attr.data-e2e=\"{{ e2eAttr }}\"\n [@openClose]=\"isOpen ? 'open' : 'closed'\"\n cdkTrapFocus\n [cdkTrapFocusAutoCapture]=\"trapFocusAutoCapture\"\n role=\"dialog\"\n aria-label=\"eUI dropdown panel\"\n class=\"eui-dropdown__panel-container\"\n [style.width]=\"width\"\n [tabindex]=\"tabIndex\"\n (click)=\"onClick()\">\n <ng-content select=\"eui-dropdown-content\"></ng-content>\n </div>\n</ng-template>\n", styles: [".eui-dropdown .eui-dropdown{display:none}.eui-dropdown .eui-dropdown__trigger-container{display:inherit}.eui-dropdown__panel{position:inherit}.eui-dropdown__panel eui-dropdown-content{display:block}.eui-dropdown__panel-container{background:var(--eui-base-color-white);border-radius:var(--eui-base-border-radius);box-shadow:0 2px 4px -1px #0003,0 4px 5px #00000024,0 1px 10px #0000001f;display:block;height:auto;min-width:8rem;overflow:auto;position:relative}.eui-dropdown__panel-container::-webkit-scrollbar{display:inherit;height:5px;width:5px;background-color:var(--eui-base-color-grey-5)}.eui-dropdown__panel-container::-webkit-scrollbar-thumb{background-color:var(--eui-base-color-grey-20);border-radius:5rem}.eui-dropdown__panel-container::-webkit-scrollbar-thumb:hover{background-color:var(--eui-base-color-grey-50)}.eui-dropdown__panel-container::-webkit-scrollbar-track{background-color:var(--eui-base-color-grey-5);border-radius:0}.eui-dropdown__panel-container .eui-dropdown-item{background:none;border:none;box-shadow:none;cursor:pointer;display:block;outline:none;padding:var(--eui-base-spacing-xs) var(--eui-base-spacing-s);position:relative;-webkit-tap-highlight-color:transparent;text-align:left;text-decoration:none;-webkit-user-select:none;user-select:none;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.eui-dropdown__panel-container .eui-dropdown-item--has-subdropdown+*:not(.eui-dropdown-item){display:none}.eui-dropdown__panel-container .eui-dropdown-item .eui-dropdown-item__container{align-items:center;display:flex;min-height:calc(var(--eui-base-spacing-m) + var(--eui-base-spacing-2xs))}.eui-dropdown__panel-container .eui-dropdown-item .eui-dropdown-item__container .eui-dropdown-item__content{align-items:center;display:flex;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.eui-dropdown__panel-container .eui-dropdown-item .eui-dropdown-item__container .eui-dropdown-item__content .eui-dropdown-item__content-text{align-items:center;display:flex;width:100%}.eui-dropdown__panel-container .eui-dropdown-item .eui-dropdown-item__container .eui-dropdown-item__content .eui-dropdown-item__content-text .eui-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.eui-dropdown__panel-container .eui-dropdown-item .eui-dropdown-item__container .eui-dropdown-item__content .eui-dropdown-item__content-icon{align-items:center;display:flex;margin-left:var(--eui-base-spacing-s)}.eui-dropdown-item:hover{background-color:var(--eui-base-color-grey-5)}.eui-dropdown-item:disabled{pointer-events:none;color:var(--eui-base-color-grey-50);font:normal normal 400 1rem/1.25rem var(--eui-base-font-family);font-style:italic}.eui-dropdown-item:disabled:hover,.eui-dropdown-item:disabled:focus{background:none}.eui-dropdown-item--active{background-color:var(--eui-base-color-primary-10)!important;outline:2px solid var(--eui-base-color-accessible-focus)!important;outline-offset:-2px!important}.eui-dropdown-item--active:disabled{background:none!important}.eui-dropdown--block .eui-dropdown__trigger-container .eui-button{display:block;width:100%}\n"], dependencies: [{ kind: "directive", type: i3.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }], animations: [openClose], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
349
356
|
}
|
357
|
+
__decorate([
|
358
|
+
coerceBoolean
|
359
|
+
], EuiDropdownComponent.prototype, "isBlock", void 0);
|
350
360
|
__decorate([
|
351
361
|
coerceBoolean
|
352
362
|
], EuiDropdownComponent.prototype, "isDropDownRightAligned", void 0);
|
@@ -364,7 +374,7 @@ __decorate([
|
|
364
374
|
], EuiDropdownComponent.prototype, "hasTabNavigation", void 0);
|
365
375
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: EuiDropdownComponent, decorators: [{
|
366
376
|
type: Component,
|
367
|
-
args: [{ selector: 'eui-dropdown', animations: [openClose], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<div #triggerRef class=\"eui-dropdown__trigger-container\" (click)=\"onTriggerClicked($event)\">\n <ng-content></ng-content>\n</div>\n\n<ng-template #templatePortalContent>\n <div\n attr.data-e2e=\"{{ e2eAttr }}\"\n [@openClose]=\"isOpen ? 'open' : 'closed'\"\n cdkTrapFocus\n [cdkTrapFocusAutoCapture]=\"trapFocusAutoCapture\"\n role=\"dialog\"\n aria-label=\"eUI dropdown panel\"\n class=\"eui-dropdown__panel-container\"\n [style.width]=\"width\"\n [tabindex]=\"tabIndex\"\n (click)=\"onClick()\">\n <ng-content select=\"eui-dropdown-content\"></ng-content>\n </div>\n</ng-template>\n", styles: [".eui-dropdown .eui-dropdown{display:none}.eui-dropdown .eui-dropdown__trigger-container{display:
|
377
|
+
args: [{ selector: 'eui-dropdown', animations: [openClose], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<div #triggerRef class=\"eui-dropdown__trigger-container\" (click)=\"onTriggerClicked($event)\">\n <ng-content></ng-content>\n</div>\n\n<ng-template #templatePortalContent>\n <div\n attr.data-e2e=\"{{ e2eAttr }}\"\n [@openClose]=\"isOpen ? 'open' : 'closed'\"\n cdkTrapFocus\n [cdkTrapFocusAutoCapture]=\"trapFocusAutoCapture\"\n role=\"dialog\"\n aria-label=\"eUI dropdown panel\"\n class=\"eui-dropdown__panel-container\"\n [style.width]=\"width\"\n [tabindex]=\"tabIndex\"\n (click)=\"onClick()\">\n <ng-content select=\"eui-dropdown-content\"></ng-content>\n </div>\n</ng-template>\n", styles: [".eui-dropdown .eui-dropdown{display:none}.eui-dropdown .eui-dropdown__trigger-container{display:inherit}.eui-dropdown__panel{position:inherit}.eui-dropdown__panel eui-dropdown-content{display:block}.eui-dropdown__panel-container{background:var(--eui-base-color-white);border-radius:var(--eui-base-border-radius);box-shadow:0 2px 4px -1px #0003,0 4px 5px #00000024,0 1px 10px #0000001f;display:block;height:auto;min-width:8rem;overflow:auto;position:relative}.eui-dropdown__panel-container::-webkit-scrollbar{display:inherit;height:5px;width:5px;background-color:var(--eui-base-color-grey-5)}.eui-dropdown__panel-container::-webkit-scrollbar-thumb{background-color:var(--eui-base-color-grey-20);border-radius:5rem}.eui-dropdown__panel-container::-webkit-scrollbar-thumb:hover{background-color:var(--eui-base-color-grey-50)}.eui-dropdown__panel-container::-webkit-scrollbar-track{background-color:var(--eui-base-color-grey-5);border-radius:0}.eui-dropdown__panel-container .eui-dropdown-item{background:none;border:none;box-shadow:none;cursor:pointer;display:block;outline:none;padding:var(--eui-base-spacing-xs) var(--eui-base-spacing-s);position:relative;-webkit-tap-highlight-color:transparent;text-align:left;text-decoration:none;-webkit-user-select:none;user-select:none;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.eui-dropdown__panel-container .eui-dropdown-item--has-subdropdown+*:not(.eui-dropdown-item){display:none}.eui-dropdown__panel-container .eui-dropdown-item .eui-dropdown-item__container{align-items:center;display:flex;min-height:calc(var(--eui-base-spacing-m) + var(--eui-base-spacing-2xs))}.eui-dropdown__panel-container .eui-dropdown-item .eui-dropdown-item__container .eui-dropdown-item__content{align-items:center;display:flex;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.eui-dropdown__panel-container .eui-dropdown-item .eui-dropdown-item__container .eui-dropdown-item__content .eui-dropdown-item__content-text{align-items:center;display:flex;width:100%}.eui-dropdown__panel-container .eui-dropdown-item .eui-dropdown-item__container .eui-dropdown-item__content .eui-dropdown-item__content-text .eui-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.eui-dropdown__panel-container .eui-dropdown-item .eui-dropdown-item__container .eui-dropdown-item__content .eui-dropdown-item__content-icon{align-items:center;display:flex;margin-left:var(--eui-base-spacing-s)}.eui-dropdown-item:hover{background-color:var(--eui-base-color-grey-5)}.eui-dropdown-item:disabled{pointer-events:none;color:var(--eui-base-color-grey-50);font:normal normal 400 1rem/1.25rem var(--eui-base-font-family);font-style:italic}.eui-dropdown-item:disabled:hover,.eui-dropdown-item:disabled:focus{background:none}.eui-dropdown-item--active{background-color:var(--eui-base-color-primary-10)!important;outline:2px solid var(--eui-base-color-accessible-focus)!important;outline-offset:-2px!important}.eui-dropdown-item--active:disabled{background:none!important}.eui-dropdown--block .eui-dropdown__trigger-container .eui-button{display:block;width:100%}\n"] }]
|
368
378
|
}], ctorParameters: () => [{ type: i1.Overlay }, { type: i0.ViewContainerRef }, { type: i1.ScrollDispatcher }, { type: i2.EuiDropdownService }, { type: i0.Renderer2 }], propDecorators: { e2eAttr: [{
|
369
379
|
type: Input
|
370
380
|
}], tabIndex: [{
|
@@ -382,6 +392,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImpor
|
|
382
392
|
}], euiDropdownItems: [{
|
383
393
|
type: ContentChildren,
|
384
394
|
args: [EuiDropdownItemComponent, { descendants: true }]
|
395
|
+
}], isBlock: [{
|
396
|
+
type: Input
|
385
397
|
}], isDropDownRightAligned: [{
|
386
398
|
type: Input
|
387
399
|
}], isClosedOnClickInside: [{
|
@@ -396,4 +408,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImpor
|
|
396
408
|
type: HostBinding,
|
397
409
|
args: ['class']
|
398
410
|
}] } });
|
399
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXVpLWRyb3Bkb3duLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2V1aS1kcm9wZG93bi9ldWktZHJvcGRvd24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vZXVpLWRyb3Bkb3duL2V1aS1kcm9wZG93bi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNILFNBQVMsRUFDVCx1QkFBdUIsRUFDdkIsV0FBVyxFQUNYLGlCQUFpQixFQUNqQixLQUFLLEVBS0wsU0FBUyxFQUVULGVBQWUsR0FJbEIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUVILHNCQUFzQixHQU16QixNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sRUFBRSxlQUFlLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsMEJBQTBCLEVBQWlCLE1BQU0sbUJBQW1CLENBQUM7QUFFOUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFMUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3BELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDZDQUE2QyxDQUFDOzs7OztBQVV2RixNQUFNLE9BQU8sb0JBQXFCLFNBQVEsYUFBYTtJQTRDbkQsSUFDSSxVQUFVO1FBQ1YsT0FBTyxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDbEUsQ0FBQztJQUVELFlBQ1ksT0FBZ0IsRUFDaEIsZ0JBQWtDLEVBQ2xDLGdCQUFrQyxFQUNsQyxlQUFtQyxFQUNqQyxTQUFvQjtRQUU5QixLQUFLLEVBQUUsQ0FBQztRQU5BLFlBQU8sR0FBUCxPQUFPLENBQVM7UUFDaEIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2xDLG9CQUFlLEdBQWYsZUFBZSxDQUFvQjtRQUNqQyxjQUFTLEdBQVQsU0FBUyxDQUFXO1FBckR6QixZQUFPLEdBQUcsY0FBYyxDQUFDO1FBQ3pCLGFBQVEsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUNkLFVBQUssR0FBRyxNQUFNLENBQUM7UUFDZixhQUFRLEdBQXdDLFFBQVEsQ0FBQztRQU0zRCx5QkFBb0IsR0FBRyxJQUFJLENBQUM7UUFLbkMsMkJBQXNCLEdBQWdCLEtBQUssQ0FBQztRQUc1QywwQkFBcUIsR0FBZ0IsSUFBSSxDQUFDO1FBRzFDLG1DQUE4QixHQUFnQixLQUFLLENBQUM7UUFHcEQsb0JBQWUsR0FBZ0IsS0FBSyxDQUFDO1FBR3JDLHFCQUFnQixHQUFnQixLQUFLLENBQUM7UUFFOUIsWUFBTyxHQUErQixPQUFPLENBQUM7UUFDOUMsWUFBTyxHQUFnQyxRQUFRLENBQUM7UUFDaEQsYUFBUSxHQUErQixPQUFPLENBQUM7UUFDL0MsYUFBUSxHQUFnQyxLQUFLLENBQUM7UUFHOUMsYUFBUSxHQUFHLElBQUksT0FBTyxFQUFXLENBQUM7UUFDbEMsWUFBTyxHQUFHLElBQUksZUFBZSxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBQzlDLGlDQUE0QixHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDbEQsZ0NBQTJCLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNqRCx1Q0FBa0MsR0FBbUIsRUFBRSxDQUFDO1FBQ3hELGlEQUE0QyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7SUFpQjFFLENBQUM7SUFFRCxRQUFRO1FBQ0osd0VBQXdFO1FBQ3hFLElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFO1lBQ3ZCLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxLQUFLLENBQUM7U0FDckM7YUFBTTtZQUNILElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUM7U0FDcEM7UUFFRCxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtZQUN2QixJQUFJLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFDO1lBQ2pDLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxLQUFLLENBQUM7U0FDdEM7UUFFRCxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUVELGVBQWU7UUFDWCxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksY0FBYyxDQUFDLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUU1RixJQUFHLElBQUksQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsVUFBVSxFQUFDO1lBQzNELElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLFVBQVUsRUFBRSxlQUFlLEVBQUUsTUFBTSxDQUFDLENBQUM7U0FDbEc7SUFDTCxDQUFDO0lBRUQsV0FBVztRQUNQLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDNUIsSUFBSSxDQUFDLGtDQUFrQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLGlDQUFpQyxFQUFFLEVBQUU7WUFDbEYsaUNBQWlDLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDcEQsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsMkJBQTJCLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDL0MsSUFBSSxDQUFDLDRCQUE0QixDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ2hELElBQUksQ0FBQyw0Q0FBNEMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNoRSxJQUFJLENBQUMsVUFBVSxFQUFFLE9BQU8sRUFBRSxDQUFDO1FBQzNCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO1FBQ3ZCLElBQUksQ0FBQywwQkFBMEIsR0FBRyxJQUFJLENBQUM7SUFDM0MsQ0FBQztJQUVEOzs7Ozs7Ozs7O09BVUc7SUFDSCxJQUFJLE1BQU07UUFDTixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO0lBQzlCLENBQUM7SUFFRCxtSEFBbUg7SUFDbkgsOERBQThEO0lBQ3ZELGdCQUFnQixDQUFDLENBQU07UUFDMUIsSUFDSSxDQUFFLENBQUMsQ0FBQyxNQUFzQixDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUM7WUFDckQsQ0FBRSxDQUFDLENBQUMsTUFBc0IsQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDO1lBQ3JELENBQUMsSUFBSSxDQUFDLE1BQU0sRUFDZDtZQUNFLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLE1BQXFCLENBQUMsQ0FBQztZQUMzQyxDQUFDLENBQUMsZUFBZSxFQUFFLENBQUM7U0FDdkI7SUFDTCxDQUFDO0lBRU0sT0FBTztRQUNWLElBQ0ksSUFBSSxDQUFDLHFCQUFxQjtZQUMxQixDQUFDLElBQUksQ0FBQywwQkFBMEIsRUFBRSxVQUFVLENBQUMsV0FBVztZQUN4RCxDQUFDLElBQUksQ0FBQywwQkFBMEIsRUFBRSxVQUFVLENBQUMsVUFBVSxFQUFFLGFBQWEsRUFBRSxRQUFRLEVBQ2xGO1lBQ0UsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUM1QjtJQUNMLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksWUFBWSxDQUFDLE1BQW1CO1FBQ25DLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBRXJCLElBQUksQ0FBQyxJQUFJLENBQUMseUJBQXlCLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDekMsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLHdCQUF3QixDQUFDLElBQUssSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsVUFBMEIsQ0FBQztZQUVwSCxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRTtnQkFDZCxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7YUFDckM7WUFFRCxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRTtnQkFDZCxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQzthQUN4QjtTQUNKO1FBRUQsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDZCxJQUFJLENBQUMsNEJBQTRCLEdBQUcsSUFBSSxDQUFDLGdCQUFnQjtpQkFDcEQsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQztpQkFDN0IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7aUJBQzlCLFNBQVMsQ0FBQyxDQUFDLEtBQW9CLEVBQUUsRUFBRTtnQkFDaEMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxhQUFhLEVBQUUsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRTtvQkFDNUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO2lCQUN4QjtZQUNMLENBQUMsQ0FBQyxDQUFDO1lBRVAsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztZQUNwRCxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxFQUFFLGNBQWMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBRXhGLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUM7Z0JBQ2xDLFdBQVcsRUFBRSxLQUFLO2dCQUNsQixhQUFhLEVBQUUsd0JBQXdCO2dCQUN2QyxVQUFVLEVBQUUscUJBQXFCO2dCQUNqQyxnQkFBZ0I7Z0JBQ2hCLGNBQWM7Z0JBQ2QsbUJBQW1CLEVBQUUsSUFBSTthQUM1QixDQUFDLENBQUM7WUFDSCxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7WUFFNUMsSUFBSSxDQUFDLFVBQVU7aUJBQ1Ysb0JBQW9CLEVBQUU7aUJBQ3RCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2lCQUM5QixTQUFTLENBQUMsR0FBRyxFQUFFO2dCQUNaLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUN6QixDQUFDLENBQUMsQ0FBQztZQUNQLElBQUksQ0FBQyxVQUFVO2lCQUNWLGFBQWEsRUFBRTtpQkFDZixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztpQkFDOUIsU0FBUyxDQUFDLEdBQUcsRUFBRTtnQkFDWixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDekIsQ0FBQyxDQUFDLENBQUM7WUFDUCxJQUFJLENBQUMsVUFBVTtpQkFDVixhQUFhLEVBQUU7aUJBQ2YsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7aUJBQzlCLFNBQVMsQ0FBQyxDQUFDLGFBQWEsRUFBRSxFQUFFO2dCQUN6QixJQUFJLGFBQWEsQ0FBQyxHQUFHLEVBQUUsV0FBVyxFQUFFLEtBQUssUUFBUSxFQUFFO29CQUMvQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7aUJBQ3hCO1lBQ0wsQ0FBQyxDQUFDLENBQUM7WUFFUCxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtnQkFDdkIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLGVBQWUsRUFBRSxDQUFDLEVBQUUsRUFBRTtvQkFDM0QsSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFO3dCQUN0QixJQUFJLENBQUMsa0NBQWtDLENBQUMsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUNsRCxlQUFlLENBQUMsVUFBVSxDQUFDLGFBQWEsRUFDeEMsWUFBWSxDQUNmLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBYSxFQUFFLEVBQUU7NEJBQzFCLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxhQUFhLENBQUMsZUFBZSxDQUFDLENBQUM7NEJBQy9ELElBQUksSUFBSSxDQUFDLDBCQUEwQixDQUFDLFVBQVUsQ0FBQyxXQUFXLEVBQUU7Z0NBQ3hELElBQUksQ0FBQywwQkFBMEIsQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDO2dDQUMvRSxJQUFJLENBQUMsMEJBQTBCLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsY0FBYyxFQUFFLENBQUM7Z0NBQ25GLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxXQUFXLEVBQUUsQ0FBQzs2QkFDbEQ7NEJBRUQsTUFBTSwyQkFBMkIsR0FBRyxDQUFDLFdBQWlDLEVBQVEsRUFBRTtnQ0FDNUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0NBRXZELElBQUksV0FBVyxFQUFFLGdCQUFnQixFQUFFO29DQUMvQixXQUFXLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7d0NBQ2pELDJCQUEyQixDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQztvQ0FDL0MsQ0FBQyxDQUFDLENBQUM7aUNBQ047NEJBQ0wsQ0FBQyxDQUFDOzRCQUVGLElBQUksQ0FBQyxnQkFBZ0I7aUNBQ2hCLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO2lDQUNoQyxPQUFPLENBQUMsQ0FBQyxnQ0FBZ0MsRUFBRSxFQUFFO2dDQUMxQywyQkFBMkIsQ0FBQyxnQ0FBZ0MsQ0FBQyxXQUFXLENBQUMsQ0FBQzs0QkFDOUUsQ0FBQyxDQUFDLENBQUM7d0JBQ1gsQ0FBQyxDQUFDLENBQUM7cUJBQ047eUJBQU07d0JBQ0gsSUFBSSxDQUFDLGtDQUFrQyxDQUFDLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDLGFBQWEsRUFBRSxPQUFPLENBQUMsQ0FBQyxTQUFTLENBQy9HLEdBQUcsRUFBRTs0QkFDRCxJQUFJLENBQUMsMEJBQTBCLENBQUMsYUFBYSxDQUFDLGVBQWUsQ0FBQyxDQUFDOzRCQUMvRCxJQUFJLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxVQUFVLENBQUMsV0FBVyxFQUFFO2dDQUN4RCxJQUFJLENBQUMsMEJBQTBCLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQ0FDL0UsSUFBSSxDQUFDLDBCQUEwQixDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLGNBQWMsRUFBRSxDQUFDO2dDQUNuRixJQUFJLENBQUMsMkJBQTJCLENBQUMsV0FBVyxFQUFFLENBQUM7NkJBQ2xEOzRCQUVELE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDOzRCQUN0RixJQUFJLElBQUksQ0FBQyw4QkFBOEIsSUFBSSxZQUFZLEVBQUU7Z0NBQ3BELFlBQTRCLENBQUMsU0FBUyxHQUFHLGVBQWUsQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQzs2QkFDaEc7d0JBQ0wsQ0FBQyxDQUNKLENBQUM7cUJBQ0w7Z0JBQ0wsQ0FBQyxDQUFDLENBQUM7Z0JBRUgsSUFBSSxDQUFDLDBCQUEwQixHQUFHLElBQUksMEJBQTBCLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDO3FCQUNsRixjQUFjLENBQUMsSUFBSSxDQUFDO3FCQUNwQix1QkFBdUIsQ0FBQyxJQUFJLENBQUM7cUJBQzdCLFFBQVEsRUFBRSxDQUFDO2dCQUNoQixJQUFJLENBQUMsMEJBQTBCLENBQUMsa0JBQWtCLEVBQUUsQ0FBQzthQUN4RDtZQUVELElBQUksQ0FBQyxpQ0FBaUMsRUFBRSxDQUFDO1lBQ3pDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3hCLElBQUksQ0FBQyxlQUFlLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUNsRDtJQUNMLENBQUM7SUFFRDs7T0FFRztJQUNJLGFBQWEsQ0FBQyxXQUFXLEdBQUcsS0FBSztRQUNwQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN6QixJQUFJLENBQUMsa0NBQWtDLENBQUMsT0FBTyxDQUFDLENBQUMsaUNBQWlDLEVBQUUsRUFBRTtZQUNsRixpQ0FBaUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNwRCxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQywyQkFBMkIsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUMvQyxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtZQUN2QixJQUFJLENBQUMsMEJBQTBCLEVBQUUsa0JBQWtCLEVBQUUsQ0FBQztTQUN6RDtRQUNELElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNoRCxJQUFJLENBQUMsNENBQTRDLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDaEUsSUFBSSxDQUFDLFVBQVUsRUFBRSxPQUFPLEVBQUUsQ0FBQztRQUMzQixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztRQUN2QixJQUFJLENBQUMsMEJBQTBCLEdBQUcsSUFBSSxDQUFDO1FBQ3ZDLElBQUksSUFBSSxDQUFDLG9CQUFvQixFQUFFO1lBQzNCLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUM7U0FDdkI7UUFDRCxJQUFJLFdBQVcsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQ3BDLElBQUksQ0FBQyxjQUFjLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQzNDO1FBRUQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFFTSxpQ0FBaUM7UUFDcEMsSUFBSSxDQUFDLDJCQUEyQixHQUFHLFNBQVMsQ0FBQyxRQUFRLEVBQUUsU0FBUyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsS0FBb0IsRUFBRSxFQUFFO1lBQ2pHLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRTtnQkFDYixJQUNJLEtBQUssQ0FBQyxJQUFJLEtBQUssT0FBTztvQkFDdEIsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCO29CQUN0QixDQUFDLElBQUksQ0FBQywwQkFBMEIsRUFBRSxVQUFVLENBQUMsVUFBVSxFQUFFLGFBQWEsRUFBRSxRQUFRLEVBQ2xGO29CQUNFLElBQUksQ0FBQywwQkFBMEIsRUFBRSxVQUFVLENBQUMsS0FBSyxFQUFFLENBQUM7b0JBQ3BELElBQUksQ0FBQyxlQUFlO3dCQUNoQixDQUFDLENBQUMsSUFBSSxDQUFDLDBCQUEwQixDQUFDLFVBQVUsQ0FBQyxVQUFVLEVBQUU7d0JBQ3pELENBQUMsQ0FBQyxJQUFJLENBQUMsMEJBQTBCLEVBQUUsVUFBVSxDQUFDLEtBQUssRUFBRSxDQUFDO29CQUUxRCxJQUFJLElBQUksQ0FBQywwQkFBMEIsRUFBRSxVQUFVLENBQUMsV0FBVyxFQUFFO3dCQUN6RCxJQUFJLENBQUMsMEJBQTBCLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQzt3QkFDL0UsSUFBSSxDQUFDLDJCQUEyQixDQUFDLFdBQVcsRUFBRSxDQUFDO3FCQUNsRDt5QkFBTTt3QkFDSCxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7cUJBQ3hCO29CQUNELEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztpQkFDMUI7cUJBQU0sSUFBSSxLQUFLLENBQUMsSUFBSSxLQUFLLFdBQVcsRUFBRTtvQkFDbkMsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFO3dCQUNyQixJQUFJLENBQUMsY0FBYyxDQUFDLGlDQUFpQyxFQUFFLENBQUM7d0JBQ3hELElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztxQkFDeEI7b0JBQ0QsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO2lCQUMxQjtxQkFBTSxJQUFJLEtBQUssQ0FBQyxJQUFJLEtBQUssWUFBWSxFQUFFO29CQUNwQyxJQUFJLElBQUksQ0FBQywwQkFBMEIsRUFBRSxVQUFVLENBQUMsV0FBVyxFQUFFO3dCQUN6RCxJQUFJLENBQUMsMEJBQTBCLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRSxDQUFDO3dCQUNuRCxJQUFJLENBQUMsZUFBZTs0QkFDaEIsQ0FBQyxDQUFDLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxVQUFVLENBQUMsVUFBVSxFQUFFOzRCQUN6RCxDQUFDLENBQUMsSUFBSSxDQUFDLDBCQUEwQixDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUUsQ0FBQzt3QkFDekQsSUFBSSxDQUFDLDBCQUEwQixDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUM7d0JBQy9FLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxXQUFXLEVBQUUsQ0FBQztxQkFDbEQ7b0JBQ0QsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO2lCQUMxQjtxQkFBTSxJQUFJLEtBQUssQ0FBQyxJQUFJLEtBQUssS0FBSyxJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFO29CQUN2RCxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO2lCQUM1QjtxQkFBTTtvQkFDSCxJQUFJLENBQUMsMEJBQTBCLEVBQUUsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO2lCQUNyRDthQUNKO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU0saUJBQWlCLENBQUMsY0FBb0M7UUFDekQsSUFBSSxDQUFDLGNBQWMsR0FBRyxjQUFjLENBQUM7UUFDckMsSUFBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUM7UUFDeEIsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBRW5CLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7UUFDcEQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxzQkFBc0IsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFRCxJQUFZLGdCQUFnQjtRQUN4QixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxNQUFNLEdBQUcsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFTyxtQkFBbUI7UUFDdkIsT0FBTyxJQUFJLENBQUMsT0FBTzthQUNkLFFBQVEsRUFBRTthQUNWLG1CQUFtQixDQUFDLElBQUksQ0FBQyxNQUFpRCxDQUFDO2FBQzNFLGFBQWEsQ0FBQztZQUNYLElBQUksc0JBQXNCLENBQ3RCLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFDaEQsRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUN2RDtTQUNKLENBQUM7YUFDRCxzQkFBc0IsQ0FBQyxLQUFLLENBQUM7YUFDN0Isa0JBQWtCLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVPLFNBQVMsQ0FBQyxNQUFtQixFQUFFLGdCQUE2QjtRQUNoRSxNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMscUJBQXFCLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDakQsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLHFCQUFxQixFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDL0UsTUFBTSxzQkFBc0IsR0FBRyxnQkFBZ0IsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUM7UUFFcEYsT0FBTyxDQUNILENBQUMsT0FBTyxHQUFHLENBQUMsSUFBSSxPQUFPLEdBQUcsc0JBQXNCLENBQUM7WUFDakQsQ0FBQyxPQUFPLEdBQUcsaUJBQWlCLEdBQUcsQ0FBQyxJQUFJLE9BQU8sR0FBRyxpQkFBaUIsR0FBRyxzQkFBc0IsQ0FBQyxDQUM1RixDQUFDO0lBQ04sQ0FBQztJQUVPLHlCQUF5QixDQUFDLE1BQW1CO1FBQ2pELE9BQU8sTUFBTSxDQUFDLE9BQU8sQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDM0UsQ0FBQztJQUVPLFdBQVc7UUFDZixJQUFJLElBQUksQ0FBQyxRQUFRLEtBQUssS0FBSyxFQUFFO1lBQ3pCLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1lBQ3JCLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1lBRXpCLElBQUksSUFBSSxDQUFDLHNCQUFzQixFQUFFO2dCQUM3QixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztnQkFDckIsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7YUFDekI7U0FDSjtRQUNELElBQUksSUFBSSxDQUFDLFFBQVEsS0FBSyxPQUFPLEVBQUU7WUFDM0IsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7WUFDckIsSUFBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUM7WUFDeEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7U0FDNUI7UUFDRCxJQUFJLElBQUksQ0FBQyxRQUFRLEtBQUssUUFBUSxFQUFFO1lBQzVCLElBQUksQ0FBQyxPQUFPLEdBQUcsUUFBUSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO1lBRXRCLElBQUksSUFBSSxDQUFDLHNCQUFzQixFQUFFO2dCQUM3QixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztnQkFDckIsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7YUFDekI7U0FDSjtRQUNELElBQUksSUFBSSxDQUFDLFFBQVEsS0FBSyxNQUFNLEVBQUU7WUFDMUIsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7WUFDdkIsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7WUFDdEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7U0FDNUI7SUFDTCxDQUFDO2lJQXBaUSxvQkFBb0I7cUhBQXBCLG9CQUFvQixxZEFRWix3QkFBd0Isa1NDckQ3QyxtcUJBbUJBLG9wR0RzQmdCLENBQUMsU0FBUyxDQUFDOztBQW1CdkI7SUFEQyxhQUFhO29FQUM4QjtBQUc1QztJQURDLGFBQWE7bUVBQzRCO0FBRzFDO0lBREMsYUFBYTs0RUFDc0M7QUFHcEQ7SUFEQyxhQUFhOzZEQUN1QjtBQUdyQztJQURDLGFBQWE7OERBQ3dCOzJGQTNCN0Isb0JBQW9CO2tCQVJoQyxTQUFTOytCQUNJLGNBQWMsY0FHWixDQUFDLFNBQVMsQ0FBQyxtQkFDTix1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJO21NQUc1QixPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFFOEIscUJBQXFCO3NCQUF4RCxTQUFTO3VCQUFDLHVCQUF1QjtnQkFDVCxVQUFVO3NCQUFsQyxTQUFTO3VCQUFDLFlBQVk7Z0JBQzJDLGdCQUFnQjtzQkFBakYsZUFBZTt1QkFBQyx3QkFBd0IsRUFBRSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUU7Z0JBT2hFLHNCQUFzQjtzQkFGckIsS0FBSztnQkFLTixxQkFBcUI7c0JBRnBCLEtBQUs7Z0JBS04sOEJBQThCO3NCQUY3QixLQUFLO2dCQUtOLGVBQWU7c0JBRmQsS0FBSztnQkFLTixnQkFBZ0I7c0JBRmYsS0FBSztnQkFvQkYsVUFBVTtzQkFEYixXQUFXO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENvbXBvbmVudCxcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBIb3N0QmluZGluZyxcbiAgICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgICBJbnB1dCxcbiAgICBPbkluaXQsXG4gICAgT25EZXN0cm95LFxuICAgIEFmdGVyVmlld0luaXQsXG4gICAgVmlld0NvbnRhaW5lclJlZixcbiAgICBWaWV3Q2hpbGQsXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgQ29udGVudENoaWxkcmVuLFxuICAgIFF1ZXJ5TGlzdCxcbiAgICBFbGVtZW50UmVmLFxuICAgIFJlbmRlcmVyMixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBjb2VyY2VCb29sZWFuUHJvcGVydHksIEJvb2xlYW5JbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQge1xuICAgIENka1Njcm9sbGFibGUsXG4gICAgQ29ubmVjdGlvblBvc2l0aW9uUGFpcixcbiAgICBGbGV4aWJsZUNvbm5lY3RlZFBvc2l0aW9uU3RyYXRlZ3ksXG4gICAgRmxleGlibGVDb25uZWN0ZWRQb3NpdGlvblN0cmF0ZWd5T3JpZ2luLFxuICAgIE92ZXJsYXksXG4gICAgT3ZlcmxheVJlZixcbiAgICBTY3JvbGxEaXNwYXRjaGVyLFxufSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGZyb21FdmVudCwgU3ViamVjdCwgU3Vic2NyaXB0aW9uLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFRlbXBsYXRlUG9ydGFsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5pbXBvcnQgeyBBY3RpdmVEZXNjZW5kYW50S2V5TWFuYWdlciwgSGlnaGxpZ2h0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcblxuaW1wb3J0IHsgQmFzZURpcmVjdGl2ZSB9IGZyb20gJ0BldWkvY29tcG9uZW50cy9zaGFyZWQnO1xuaW1wb3J0IHsgY29lcmNlQm9vbGVhbiB9IGZyb20gJ0BldWkvYmFzZSc7XG5cbmltcG9ydCB7IG9wZW5DbG9zZSB9IGZyb20gJy4vYW5pbWF0aW9ucy9vcGVuLWNsb3NlJztcbmltcG9ydCB7IEV1aURyb3Bkb3duSXRlbUNvbXBvbmVudCB9IGZyb20gJy4vZHJvcGRvd24taXRlbS9ldWktZHJvcGRvd24taXRlbS5jb21wb25lbnQnO1xuaW1wb3J0IHsgRXVpRHJvcGRvd25TZXJ2aWNlIH0gZnJvbSAnLi9ldWktZHJvcGRvd24uc2VydmljZSc7XG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2V1aS1kcm9wZG93bicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2V1aS1kcm9wZG93bi5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vc3R5bGVzL19pbmRleC5zY3NzJ10sXG4gICAgYW5pbWF0aW9uczogW29wZW5DbG9zZV0sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbn0pXG5leHBvcnQgY2xhc3MgRXVpRHJvcGRvd25Db21wb25lbnQgZXh0ZW5kcyBCYXNlRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIEFmdGVyVmlld0luaXQge1xuICAgIEBJbnB1dCgpIGUyZUF0dHIgPSAnZXVpLWRyb3Bkb3duJztcbiAgICBASW5wdXQoKSB0YWJJbmRleCA9IC0xO1xuICAgIEBJbnB1dCgpIHdpZHRoID0gJ2F1dG8nO1xuICAgIEBJbnB1dCgpIHBvc2l0aW9uOiAndG9wJyB8ICdyaWdodCcgfCAnYm90dG9tJyB8ICdsZWZ0JyA9ICdib3R0b20nO1xuXG4gICAgQFZpZXdDaGlsZCgndGVtcGxhdGVQb3J0YWxDb250ZW50JykgdGVtcGxhdGVQb3J0YWxDb250ZW50OiBUZW1wbGF0ZVJlZjx1bmtub3duPjtcbiAgICBAVmlld0NoaWxkKCd0cmlnZ2VyUmVmJykgdHJpZ2dlclJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG4gICAgQENvbnRlbnRDaGlsZHJlbihFdWlEcm9wZG93bkl0ZW1Db21wb25lbnQsIHsgZGVzY2VuZGFudHM6IHRydWUgfSkgZXVpRHJvcGRvd25JdGVtczogUXVlcnlMaXN0PEhpZ2hsaWdodGFibGUgJiBFdWlEcm9wZG93bkl0ZW1Db21wb25lbnQ+O1xuXG4gICAgcHVibGljIHRyYXBGb2N1c0F1dG9DYXB0dXJlID0gdHJ1ZTtcbiAgICBwdWJsaWMgcGFyZW50RHJvcGRvd246IEV1aURyb3Bkb3duQ29tcG9uZW50O1xuXG4gICAgQElucHV0KClcbiAgICBAY29lcmNlQm9vbGVhblxuICAgIGlzRHJvcERvd25SaWdodEFsaWduZWQ6Qm9vbGVhbklucHV0ID0gZmFsc2U7XG4gICAgQElucHV0KClcbiAgICBAY29lcmNlQm9vbGVhblxuICAgIGlzQ2xvc2VkT25DbGlja0luc2lkZTpCb29sZWFuSW5wdXQgPSB0cnVlO1xuICAgIEBJbnB1dCgpXG4gICAgQGNvZXJjZUJvb2xlYW5cbiAgICBpc0xhYmVsVXBkYXRlZEZyb21TZWxlY3RlZEl0ZW06Qm9vbGVhbklucHV0ID0gZmFsc2U7XG4gICAgQElucHV0KClcbiAgICBAY29lcmNlQm9vbGVhblxuICAgIGlzRXhwYW5kT25Ib3ZlcjpCb29sZWFuSW5wdXQgPSBmYWxzZTtcbiAgICBASW5wdXQoKVxuICAgIEBjb2VyY2VCb29sZWFuXG4gICAgaGFzVGFiTmF2aWdhdGlvbjpCb29sZWFuSW5wdXQgPSBmYWxzZTtcblxuICAgIHByaXZhdGUgb3JpZ2luWDogJ3N0YXJ0JyB8ICdlbmQnIHwgJ2NlbnRlcicgPSAnc3RhcnQnO1xuICAgIHByaXZhdGUgb3JpZ2luWTogJ3RvcCcgfCAnYm90dG9tJyB8ICdjZW50ZXInID0gJ2JvdHRvbSc7XG4gICAgcHJpdmF0ZSBvdmVybGF5WDogJ3N0YXJ0JyB8ICdlbmQnIHwgJ2NlbnRlcicgPSAnc3RhcnQnO1xuICAgIHByaXZhdGUgb3ZlcmxheVk6ICd0b3AnIHwgJ2JvdHRvbScgfCAnY2VudGVyJyA9ICd0b3AnO1xuICAgIHByaXZhdGUgdGVtcGxhdGVQb3J0YWw6IFRlbXBsYXRlUG9ydGFsO1xuICAgIHByaXZhdGUgb3ZlcmxheVJlZjogT3ZlcmxheVJlZjtcbiAgICBwcml2YXRlIGRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcbiAgICBwcml2YXRlIGlzT3BlbiQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgICBwcml2YXRlIHNjcm9sbERpc3BhdGNoZXJTdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG4gICAgcHJpdmF0ZSBrZXlkb3duTGlzdGVuZXJTdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG4gICAgcHJpdmF0ZSBldWlEcm9wZG93bkl0ZW1zRXZlbnRTdWJzY3JpcHRpb25zOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xuICAgIHByaXZhdGUgYWN0aXZlRGVzY2VuZGFudEtleU1hbmFnZXJDaGFuZ2VTdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG4gICAgcHJpdmF0ZSBhY3RpdmVEZXNjZW5kYW50S2V5TWFuYWdlcjogQWN0aXZlRGVzY2VuZGFudEtleU1hbmFnZXI8RXVpRHJvcGRvd25JdGVtQ29tcG9uZW50PjtcbiAgICBwcml2YXRlIG9yaWdpbjogSFRNTEVsZW1lbnQ7XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcbiAgICBnZXQgY3NzQ2xhc3NlcygpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gW3N1cGVyLmdldENzc0NsYXNzZXMoJ2V1aS1kcm9wZG93bicpXS5qb2luKCcgJykudHJpbSgpO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIG92ZXJsYXk6IE92ZXJsYXksXG4gICAgICAgIHByaXZhdGUgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZixcbiAgICAgICAgcHJpdmF0ZSBzY3JvbGxEaXNwYXRjaGVyOiBTY3JvbGxEaXNwYXRjaGVyLFxuICAgICAgICBwcml2YXRlIGRyb3Bkb3duU2VydmljZTogRXVpRHJvcGRvd25TZXJ2aWNlLFxuICAgICAgICBwcm90ZWN0ZWQgX3JlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIC8vIEN1cnJlbnRseSB0aGUgYGNka1RyYXBGb2N1c0F1dG9DYXB0dXJlYCBpcyBvbmx5IGNoZWNrZWQgb25jZSBvbiBpbml0LlxuICAgICAgICBpZiAodGhpcy5oYXNEcm9wZG93bkl0ZW1zKSB7XG4gICAgICAgICAgICB0aGlzLnRyYXBGb2N1c0F1dG9DYXB0dXJlID0gZmFsc2U7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnRyYXBGb2N1c0F1dG9DYXB0dXJlID0gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmhhc1RhYk5hdmlnYXRpb24pIHtcbiAgICAgICAgICAgIHRoaXMudHJhcEZvY3VzQXV0b0NhcHR1cmUgPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy5pc0Nsb3NlZE9uQ2xpY2tJbnNpZGUgPSBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuc2V0UG9zaXRpb24oKTtcbiAgICB9XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMudGVtcGxhdGVQb3J0YWwgPSBuZXcgVGVtcGxhdGVQb3J0YWwodGhpcy50ZW1wbGF0ZVBvcnRhbENvbnRlbnQsIHRoaXMudmlld0NvbnRhaW5lclJlZik7XG5cbiAgICAgICAgaWYodGhpcy50cmlnZ2VyUmVmICYmIHRoaXMudHJpZ2dlclJlZi5uYXRpdmVFbGVtZW50LmZpcnN0Q2hpbGQpe1xuICAgICAgICAgICAgdGhpcy5fcmVuZGVyZXIuc2V0QXR0cmlidXRlKHRoaXMudHJpZ2dlclJlZi5uYXRpdmVFbGVtZW50LmZpcnN0Q2hpbGQsICdhcmlhLWhhc3BvcHVwJywgJ3RydWUnKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLm5leHQodHJ1ZSk7XG4gICAgICAgIHRoaXMuZGVzdHJveSQudW5zdWJzY3JpYmUoKTtcbiAgICAgICAgdGhpcy5ldWlEcm9wZG93bkl0ZW1zRXZlbnRTdWJzY3JpcHRpb25zLmZvckVhY2goKGV1aURyb3Bkb3duSXRlbXNFdmVudFN1YnNjcmlwdGlvbikgPT4ge1xuICAgICAgICAgICAgZXVpRHJvcGRvd25JdGVtc0V2ZW50U3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmtleWRvd25MaXN0ZW5lclN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICB0aGlzLnNjcm9sbERpc3BhdGNoZXJTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgdGhpcy5hY3RpdmVEZXNjZW5kYW50S2V5TWFuYWdlckNoYW5nZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICB0aGlzLm92ZXJsYXlSZWY/LmRpc3Bvc2UoKTtcbiAgICAgICAgdGhpcy5vdmVybGF5UmVmID0gbnVsbDtcbiAgICAgICAgdGhpcy5hY3RpdmVEZXNjZW5kYW50S2V5TWFuYWdlciA9IG51bGw7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogV2hldGhlciB0aGUgZXVpLWRyb3Bkb3duIGlzIG9wZW4uXG4gICAgICpcbiAgICAgKiBAdXNhZ2VOb3Rlc1xuICAgICAqIGBgYGh0bWxcbiAgICAgKiA8ZXVpLWRyb3Bkb3duICNkcm9wZG93bj5cbiAgICAgKiAgICAgIDxteS1jb21wb25lbnQgKm5nSWY9XCJkcm9wZG93bi5pc09wZW5cIj48L215LWNvbXBvbmVudD5cbiAgICAgKiA8L2V1aS1kcm9wZG93bj5cbiAgICAgKiBgYGBcbiAgICAgKiBAcmV0dXJucyBBIGJvb2xlYW4gd2l0aCB2YWx1ZSBgdHJ1ZWAgd2hlbiBvcGVuLCBvdGhlcndpc2UgYGZhbHNlYC5cbiAgICAgKi9cbiAgICBnZXQgaXNPcGVuKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5pc09wZW4kLnZhbHVlO1xuICAgIH1cblxuICAgIC8vIFRPRE86IGZpbmQgdGhlIGNvcnJlY3QgdHlwZSBvciB0dXJuIGludG8gYSBnZW5lcmljLCBodHRwczovL3d3dy50eXBlc2NyaXB0bGFuZy5vcmcvZG9jcy9oYW5kYm9vay8yL2dlbmVyaWNzLmh0bWxcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIHB1YmxpYyBvblRyaWdnZXJDbGlja2VkKGU6IGFueSk6IHZvaWQge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgICAhKGUudGFyZ2V0IGFzIEhUTUxFbGVtZW50KS5xdWVyeVNlbGVjdG9yKCcuZGlzYWJsZWQnKSAmJlxuICAgICAgICAgICAgIShlLnRhcmdldCBhcyBIVE1MRWxlbWVudCkucXVlcnlTZWxlY3RvcignOmRpc2FibGVkJykgJiZcbiAgICAgICAgICAgICF0aGlzLmlzT3BlblxuICAgICAgICApIHtcbiAgICAgICAgICAgIHRoaXMub3BlbkRyb3Bkb3duKGUudGFyZ2V0IGFzIEhUTUxFbGVtZW50KTtcbiAgICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgb25DbGljaygpOiB2b2lkIHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgdGhpcy5pc0Nsb3NlZE9uQ2xpY2tJbnNpZGUgJiZcbiAgICAgICAgICAgICF0aGlzLmFjdGl2ZURlc2NlbmRhbnRLZXlNYW5hZ2VyPy5hY3RpdmVJdGVtLnN1YkRyb3Bkb3duICYmXG4gICAgICAgICAgICAhdGhpcy5hY3RpdmVEZXNjZW5kYW50S2V5TWFuYWdlcj8uYWN0aXZlSXRlbS5lbGVtZW50UmVmPy5uYXRpdmVFbGVtZW50Py5kaXNhYmxlZFxuICAgICAgICApIHtcbiAgICAgICAgICAgIHRoaXMuY2xvc2VEcm9wZG93bih0cnVlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE9wZW4gYSBkcm9wZG93blxuICAgICAqXG4gICAgICogQHBhcmFtIG9yaWdpbiBPcmlnaW4gb2YgdGhlIGRyb3Bkb3duIHBvc2l0aW9uXG4gICAgICovXG4gICAgcHVibGljIG9wZW5Ecm9wZG93bihvcmlnaW46IEhUTUxFbGVtZW50KTogdm9pZCB7XG4gICAgICAgIHRoaXMub3JpZ2luID0gb3JpZ2luO1xuXG4gICAgICAgIGlmICghdGhpcy5pc1RyaWdnZXJGb2N1c2FibGVPbkNsb3NlKG9yaWdpbikpIHtcbiAgICAgICAgICAgIHRoaXMub3JpZ2luID0gb3JpZ2luLmNsb3Nlc3QoJ2J1dHRvbjpub3QoW2Rpc2FibGVkXSknKSB8fCAodGhpcy50cmlnZ2VyUmVmLm5hdGl2ZUVsZW1lbnQuZmlyc3RDaGlsZCBhcyBIVE1MRWxlbWVudCk7XG5cbiAgICAgICAgICAgIGlmICghdGhpcy5vcmlnaW4pIHtcbiAgICAgICAgICAgICAgICB0aGlzLm9yaWdpbiA9IG9yaWdpbi5jbG9zZXN0KCdhJyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICghdGhpcy5vcmlnaW4pIHtcbiAgICAgICAgICAgICAgICB0aGlzLm9yaWdpbiA9IG9yaWdpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghdGhpcy5pc09wZW4pIHtcbiAgICAgICAgICAgIHRoaXMuc2Nyb2xsRGlzcGF0Y2hlclN1YnNjcmlwdGlvbiA9IHRoaXMuc2Nyb2xsRGlzcGF0Y2hlclxuICAgICAgICAgICAgICAgIC5hbmNlc3RvclNjcm9sbGVkKHRoaXMub3JpZ2luKVxuICAgICAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKChldmVudDogQ2RrU2Nyb2xsYWJsZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoIXRoaXMuaXNWaXNpYmxlKHRoaXMub3JpZ2luLCBldmVudCA/IGV2ZW50LmdldEVsZW1lbnRSZWYoKS5uYXRpdmVFbGVtZW50IDogZG9jdW1lbnQucXVlcnlTZWxlY3RvcignYm9keScpKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jbG9zZURyb3Bkb3duKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgY29uc3QgcG9zaXRpb25TdHJhdGVneSA9IHRoaXMuZ2V0UG9zaXRpb25TdHJhdGVneSgpO1xuICAgICAgICAgICAgY29uc3Qgc2Nyb2xsU3RyYXRlZ3kgPSB0aGlzLm92ZXJsYXkuc2Nyb2xsU3RyYXRlZ2llcy5yZXBvc2l0aW9uKHsgc2Nyb2xsVGhyb3R0bGU6IDEwIH0pO1xuXG4gICAgICAgICAgICB0aGlzLm92ZXJsYXlSZWYgPSB0aGlzLm92ZXJsYXkuY3JlYXRlKHtcbiAgICAgICAgICAgICAgICBoYXNCYWNrZHJvcDogZmFsc2UsXG4gICAgICAgICAgICAgICAgYmFja2Ryb3BDbGFzczogJ2V1aS1kcm9wZG93bl9fYmFja2Ryb3AnLFxuICAgICAgICAgICAgICAgIHBhbmVsQ2xhc3M6ICdldWktZHJvcGRvd25fX3BhbmVsJyxcbiAgICAgICAgICAgICAgICBwb3NpdGlvblN0cmF0ZWd5LFxuICAgICAgICAgICAgICAgIHNjcm9sbFN0cmF0ZWd5LFxuICAgICAgICAgICAgICAgIGRpc3Bvc2VPbk5hdmlnYXRpb246IHRydWUsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHRoaXMub3ZlcmxheVJlZi5hdHRhY2godGhpcy50ZW1wbGF0ZVBvcnRhbCk7XG5cbiAgICAgICAgICAgIHRoaXMub3ZlcmxheVJlZlxuICAgICAgICAgICAgICAgIC5vdXRzaWRlUG9pbnRlckV2ZW50cygpXG4gICAgICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNsb3NlRHJvcGRvd24oKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHRoaXMub3ZlcmxheVJlZlxuICAgICAgICAgICAgICAgIC5iYWNrZHJvcENsaWNrKClcbiAgICAgICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2xvc2VEcm9wZG93bigpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGhpcy5vdmVybGF5UmVmXG4gICAgICAgICAgICAgICAgLmtleWRvd25FdmVudHMoKVxuICAgICAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKChrZXlib2FyZEV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChrZXlib2FyZEV2ZW50LmtleT8udG9Mb3dlckNhc2UoKSA9PT0gJ2VzY2FwZScpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY2xvc2VEcm9wZG93bigpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIGlmICh0aGlzLmhhc0Ryb3Bkb3duSXRlbXMpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmV1aURyb3Bkb3duSXRlbXMudG9BcnJheSgpLmZvckVhY2goKGV1aURyb3Bkb3duSXRlbSwgaSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5pc0V4cGFuZE9uSG92ZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZXVpRHJvcGRvd25JdGVtc0V2ZW50U3Vic2NyaXB0aW9uc1tpXSA9IGZyb21FdmVudChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBldWlEcm9wZG93bkl0ZW0uZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICdtb3VzZWVudGVyJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICkuc3Vic2NyaWJlKChlOiBNb3VzZUV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5hY3RpdmVEZXNjZW5kYW50S2V5TWFuYWdlci5zZXRBY3RpdmVJdGVtKGV1aURyb3Bkb3duSXRlbSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuYWN0aXZlRGVzY2VuZGFudEtleU1hbmFnZXIuYWN0aXZlSXRlbS5zdWJEcm9wZG93bikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmFjdGl2ZURlc2NlbmRhbnRLZXlNYW5hZ2VyLmFjdGl2ZUl0ZW0uc3ViRHJvcGRvd24uc2V0UGFyZW50RHJvcGRvd24odGhpcyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYWN0aXZlRGVzY2VuZGFudEtleU1hbmFnZXIuYWN0aXZlSXRlbS5zdWJEcm9wZG93bi5vdmVybGF5UmVmLmRldGFjaEJhY2tkcm9wKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMua2V5ZG93bkxpc3RlbmVyU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdHJpZ2dlck91dHNpZGVQb2ludGVyRXZlbnRzID0gKHN1YkRyb3Bkb3duOiBFdWlEcm9wZG93bkNvbXBvbmVudCk6IHZvaWQgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWJEcm9wZG93bj8ub3ZlcmxheVJlZj8uX291dHNpZGVQb2ludGVyRXZlbnRzLm5leHQoZSk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHN1YkRyb3Bkb3duPy5oYXNEcm9wZG93bkl0ZW1zKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWJEcm9wZG93bi5ldWlEcm9wZG93bkl0ZW1zLnRvQXJyYXkoKS5mb3JFYWNoKChzKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJpZ2dlck91dHNpZGVQb2ludGVyRXZlbnRzKHMuc3ViRHJvcGRvd24pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5ldWlEcm9wZG93bkl0ZW1zXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5maWx0ZXIoKGl0ZW0pID0+ICFpdGVtLmlzQWN0aXZlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuZm9yRWFjaCgoZXVpRHJvcGRvd25JdGVtSGF2aW5nU3ViRHJvcGRvd24pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyaWdnZXJPdXRzaWRlUG9pbnRlckV2ZW50cyhldWlEcm9wZG93bkl0ZW1IYXZpbmdTdWJEcm9wZG93bi5zdWJEcm9wZG93bik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmV1aURyb3Bkb3duSXRlbXNFdmVudFN1YnNjcmlwdGlvbnNbaV0gPSBmcm9tRXZlbnQoZXVpRHJvcGRvd25JdGVtLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ2NsaWNrJykuc3Vic2NyaWJlKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5hY3RpdmVEZXNjZW5kYW50S2V5TWFuYWdlci5zZXRBY3RpdmVJdGVtKGV1aURyb3Bkb3duSXRlbSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmFjdGl2ZURlc2NlbmRhbnRLZXlNYW5hZ2VyLmFjdGl2ZUl0ZW0uc3ViRHJvcGRvd24pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYWN0aXZlRGVzY2VuZGFudEtleU1hbmFnZXIuYWN0aXZlSXRlbS5zdWJEcm9wZG93bi5zZXRQYXJlbnREcm9wZG93bih0aGlzKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYWN0aXZlRGVzY2VuZGFudEtleU1hbmFnZXIuYWN0aXZlSXRlbS5zdWJEcm9wZG93bi5vdmVybGF5UmVmLmRldGFjaEJhY2tkcm9wKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmtleWRvd25MaXN0ZW5lclN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbGFiZWxFbGVtZW50ID0gdGhpcy50cmlnZ2VyUmVmLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignYnV0dG9uIC5ldWktbGFiZWwnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuaXNMYWJlbFVwZGF0ZWRGcm9tU2VsZWN0ZWRJdGVtICYmIGxhYmVsRWxlbWVudCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxhYmVsRWxlbWVudCBhcyBIVE1MRWxlbWVudCkuaW5uZXJUZXh0ID0gZXVpRHJvcGRvd25JdGVtLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5pbm5lclRleHQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgdGhpcy5hY3RpdmVEZXNjZW5kYW50S2V5TWFuYWdlciA9IG5ldyBBY3RpdmVEZXNjZW5kYW50S2V5TWFuYWdlcih0aGlzLmV1aURyb3Bkb3duSXRlbXMpXG4gICAgICAgICAgICAgICAgICAgIC53aXRoSG9tZUFuZEVuZCh0cnVlKVxuICAgICAgICAgICAgICAgICAgICAud2l0aFZlcnRpY2FsT3JpZW50YXRpb24odHJ1ZSlcbiAgICAgICAgICAgICAgICAgICAgLndpdGhXcmFwKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5hY3RpdmVEZXNjZW5kYW50S2V5TWFuYWdlci5zZXRGaXJzdEl0ZW1BY3RpdmUoKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5jcmVhdGVLZXlib2FyZEhhbmRsZXJTdWJzY3JpcHRpb24oKTtcbiAgICAgICAgICAgIHRoaXMuaXNPcGVuJC5uZXh0KHRydWUpO1xuICAgICAgICAgICAgdGhpcy5kcm9wZG93blNlcnZpY2UuaXNEcm9wZG93bk9wZW4uZW1pdCh0cnVlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENsb3NlIGEgZHJvcGRvd25cbiAgICAgKi9cbiAgICBwdWJsaWMgY2xvc2VEcm9wZG93bihyZWN1cnNpdmVseSA9IGZhbHNlKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaXNPcGVuJC5uZXh0KGZhbHNlKTtcbiAgICAgICAgdGhpcy5ldWlEcm9wZG93bkl0ZW1zRXZlbnRTdWJzY3JpcHRpb25zLmZvckVhY2goKGV1aURyb3Bkb3duSXRlbXNFdmVudFN1YnNjcmlwdGlvbikgPT4ge1xuICAgICAgICAgICAgZXVpRHJvcGRvd25JdGVtc0V2ZW50U3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmtleWRvd25MaXN0ZW5lclN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICBpZiAodGhpcy5oYXNEcm9wZG93bkl0ZW1zKSB7XG4gICAgICAgICAgICB0aGlzLmFjdGl2ZURlc2NlbmRhbnRLZXlNYW5hZ2VyPy5zZXRGaXJzdEl0ZW1BY3RpdmUoKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnNjcm9sbERpc3BhdGNoZXJTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgdGhpcy5hY3RpdmVEZXNjZW5kYW50S2V5TWFuYWdlckNoYW5nZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICB0aGlzLm92ZXJsYXlSZWY/LmRpc3Bvc2UoKTtcbiAgICAgICAgdGhpcy5vdmVybGF5UmVmID0gbnVsbDtcbiAgICAgICAgdGhpcy5hY3RpdmVEZXNjZW5kYW50S2V5TWFuYWdlciA9IG51bGw7XG4gICAgICAgIGlmICh0aGlzLnRyYXBGb2N1c0F1dG9DYXB0dXJlKSB7XG4gICAgICAgICAgICB0aGlzLm9yaWdpbi5mb2N1cygpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChyZWN1cnNpdmVseSAmJiB0aGlzLnBhcmVudERyb3Bkb3duKSB7XG4gICAgICAgICAgICB0aGlzLnBhcmVudERyb3Bkb3duLmNsb3NlRHJvcGRvd24odHJ1ZSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmRyb3Bkb3duU2VydmljZS5pc0Ryb3Bkb3duT3Blbi5lbWl0KGZhbHNlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY3JlYXRlS2V5Ym9hcmRIYW5kbGVyU3Vic2NyaXB0aW9uKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmtleWRvd25MaXN0ZW5lclN1YnNjcmlwdGlvbiA9IGZyb21FdmVudChkb2N1bWVudCwgJ2tleWRvd24nKS5zdWJzY3JpYmUoKGV2ZW50OiBLZXlib2FyZEV2ZW50KSA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy5pc09wZW4pIHtcbiAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICAgIGV2ZW50LmNvZGUgPT09ICdFbnRlcicgJiZcbiAgICAgICAgICAgICAgICAgICAgIXRoaXMuaGFzVGFiTmF2aWdhdGlvbiAmJlxuICAgICAgICAgICAgICAgICAgICAhdGhpcy5hY3RpdmVEZXNjZW5kYW50S2V5TWFuYWdlcj8uYWN0aXZlSXRlbS5lbGVtZW50UmVmPy5uYXRpdmVFbGVtZW50Py5kaXNhYmxlZFxuICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmFjdGl2ZURlc2NlbmRhbnRLZXlNYW5hZ2VyPy5hY3RpdmVJdGVtLmZvY3VzKCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaXNFeHBhbmRPbkhvdmVyXG4gICAgICAgICAgICAgICAgICAgICAgICA/IHRoaXMuYWN0aXZlRGVzY2VuZGFudEtleU1hbmFnZXIuYWN0aXZlSXRlbS5tb3VzZWVudGVyKClcbiAgICAgICAgICAgICAgICAgICAgICAgIDogdGhpcy5hY3RpdmVEZXNjZW5kYW50S2V5TWFuYWdlcj8uYWN0aXZlSXRlbS5jbGljaygpO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmFjdGl2ZURlc2NlbmRhbnRLZXlNYW5hZ2VyPy5hY3RpdmVJdGVtLnN1YkRyb3Bkb3duKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmFjdGl2ZURlc2NlbmRhbnRLZXlNYW5hZ2VyLmFjdGl2ZUl0ZW0uc3ViRHJvcGRvd24uc2V0UGFyZW50RHJvcGRvd24odGhpcyk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmtleWRvd25MaXN0ZW5lclN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jbG9zZURyb3Bkb3duKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGV2ZW50LmNvZGUgPT09ICdBcnJvd0xlZnQnKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLnBhcmVudERyb3Bkb3duKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnBhcmVudERyb3Bkb3duLmNyZWF0ZUtleWJvYXJkSGFuZGxlclN1YnNjcmlwdGlvbigpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jbG9zZURyb3Bkb3duKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGV2ZW50LmNvZGUgPT09ICdBcnJvd1JpZ2h0Jykge1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5hY3RpdmVEZXNjZW5kYW50S2V5TWFuYWdlcj8uYWN0aXZlSXRlbS5zdWJEcm9wZG93bikge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5hY3RpdmVEZXNjZW5kYW50S2V5TWFuYWdlci5hY3RpdmVJdGVtLmZvY3VzKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmlzRXhwYW5kT25Ib3ZlclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gdGhpcy5hY3RpdmVEZXNjZW5kYW50S2V5TWFuYWdlci5hY3RpdmVJdGVtLm1vdXNlZW50ZXIoKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogdGhpcy5hY3RpdmVEZXNjZW5kYW50S2V5TWFuYWdlci5hY3RpdmVJdGVtLmNsaWNrKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmFjdGl2ZURlc2NlbmRhbnRLZXlNYW5hZ2VyLmFjdGl2ZUl0ZW0uc3ViRHJvcGRvd24uc2V0UGFyZW50RHJvcGRvd24odGhpcyk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmtleWRvd25MaXN0ZW5lclN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChldmVudC5jb2RlID09PSAnVGFiJyAmJiAhdGhpcy5oYXNUYWJOYXZpZ2F0aW9uKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2xvc2VEcm9wZG93bih0cnVlKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmFjdGl2ZURlc2NlbmRhbnRLZXlNYW5hZ2VyPy5vbktleWRvd24oZXZlbnQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIHNldFBhcmVudERyb3Bkb3duKHBhcmVudERyb3Bkb3duOiBFdWlEcm9wZG93bkNvbXBvbmVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLnBhcmVudERyb3Bkb3duID0gcGFyZW50RHJvcGRvd247XG4gICAgICAgIHRoaXMucG9zaXRpb24gPSAncmlnaHQnO1xuICAgICAgICB0aGlzLnNldFBvc2l0aW9uKCk7XG5cbiAgICAgICAgY29uc3QgcG9zaXRpb25TdHJhdGVneSA9IHRoaXMuZ2V0UG9zaXRpb25TdHJhdGVneSgpO1xuICAgICAgICB0aGlzLm92ZXJsYXlSZWYudXBkYXRlUG9zaXRpb25TdHJhdGVneShwb3NpdGlvblN0cmF0ZWd5KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldCBoYXNEcm9wZG93bkl0ZW1zKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5ldWlEcm9wZG93bkl0ZW1zPy5sZW5ndGggPiAwO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0UG9zaXRpb25TdHJhdGVneSgpOiBGbGV4aWJsZUNvbm5lY3RlZFBvc2l0aW9uU3RyYXRlZ3kge1xuICAgICAgICByZXR1cm4gdGhpcy5vdmVybGF5XG4gICAgICAgICAgICAucG9zaXRpb24oKVxuICAgICAgICAgICAgLmZsZXhpYmxlQ29ubmVjdGVkVG8odGhpcy5vcmlnaW4gYXMgRmxleGlibGVDb25uZWN0ZWRQb3NpdGlvblN0cmF0ZWd5T3JpZ2luKVxuICAgICAgICAgICAgLndpdGhQb3NpdGlvbnMoW1xuICAgICAgICAgICAgICAgIG5ldyBDb25uZWN0aW9uUG9zaXRpb25QYWlyKFxuICAgICAgICAgICAgICAgICAgICB7IG9yaWdpblg6IHRoaXMub3JpZ2luWCwgb3JpZ2luWTogdGhpcy5vcmlnaW5ZIH0sXG4gICAgICAgICAgICAgICAgICAgIHsgb3ZlcmxheVg6IHRoaXMub3ZlcmxheVgsIG92ZXJsYXlZOiB0aGlzLm92ZXJsYXlZIH0sXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIF0pXG4gICAgICAgICAgICAud2l0aEZsZXhpYmxlRGltZW5zaW9ucyhmYWxzZSlcbiAgICAgICAgICAgIC53aXRoTG9ja2VkUG9zaXRpb24odHJ1ZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpc1Zpc2libGUob3JpZ2luOiBIVE1MRWxlbWVudCwgc2Nyb2xsYWJsZVBhcmVudDogSFRNTEVsZW1lbnQpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3Qgb3JpZ2luWSA9IG9yaWdpbi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS55O1xuICAgICAgICBjb25zdCBzY3JvbGxhYmxlUGFyZW50WSA9IE1hdGguYWJzKHNjcm9sbGFibGVQYXJlbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkueSk7XG4gICAgICAgIGNvbnN0IHNjcm9sbGFibGVQYXJlbnRIZWlnaHQgPSBzY3JvbGxhYmxlUGFyZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmhlaWdodCAtIDUwO1xuXG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAob3JpZ2luWSA+IDAgJiYgb3JpZ2luWSA8IHNjcm9sbGFibGVQYXJlbnRIZWlnaHQpIHx8XG4gICAgICAgICAgICAob3JpZ2luWSAtIHNjcm9sbGFibGVQYXJlbnRZID4gMCAmJiBvcmlnaW5ZIDwgc2Nyb2xsYWJsZVBhcmVudFkgKyBzY3JvbGxhYmxlUGFyZW50SGVpZ2h0KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgaXNUcmlnZ2VyRm9jdXNhYmxlT25DbG9zZShvcmlnaW46IEhUTUxFbGVtZW50KTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBvcmlnaW4ubWF0Y2hlcygnYnV0dG9uOm5vdChbZGlzYWJsZWRdKScpIHx8IG9yaWdpbi5tYXRjaGVzKCdhJyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRQb3NpdGlvbigpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMucG9zaXRpb24gPT09ICd0b3AnKSB7XG4gICAgICAgICAgICB0aGlzLm9yaWdpblkgPSAndG9wJztcbiAgICAgICAgICAgIHRoaXMub3ZlcmxheVkgPSAnYm90dG9tJztcblxuICAgICAgICAgICAgaWYgKHRoaXMuaXNEcm9wRG93blJpZ2h0QWxpZ25lZCkge1xuICAgICAgICAgICAgICAgIHRoaXMub3JpZ2luWCA9ICdlbmQnO1xuICAgICAgICAgICAgICAgIHRoaXMub3ZlcmxheVggPSAnZW5kJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5wb3NpdGlvbiA9PT0gJ3JpZ2h0Jykge1xuICAgICAgICAgICAgdGhpcy5vcmlnaW5YID0gJ2VuZCc7XG4gICAgICAgICAgICB0aGlzLm92ZXJsYXlYID0gJ3N0YXJ0JztcbiAgICAgICAgICAgIHRoaXMub3ZlcmxheVkgPSAnY2VudGVyJztcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5wb3NpdGlvbiA9PT0gJ2JvdHRvbScpIHtcbiAgICAgICAgICAgIHRoaXMub3JpZ2luWSA9ICdib3R0b20nO1xuICAgICAgICAgICAgdGhpcy5vdmVybGF5WSA9ICd0b3AnO1xuXG4gICAgICAgICAgICBpZiAodGhpcy5pc0Ryb3BEb3duUmlnaHRBbGlnbmVkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5vcmlnaW5YID0gJ2VuZCc7XG4gICAgICAgICAgICAgICAgdGhpcy5vdmVybGF5WCA9ICdlbmQnO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLnBvc2l0aW9uID09PSAnbGVmdCcpIHtcbiAgICAgICAgICAgIHRoaXMub3JpZ2luWCA9ICdzdGFydCc7XG4gICAgICAgICAgICB0aGlzLm92ZXJsYXlYID0gJ2VuZCc7XG4gICAgICAgICAgICB0aGlzLm92ZXJsYXlZID0gJ2NlbnRlcic7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCI8ZGl2ICN0cmlnZ2VyUmVmIGNsYXNzPVwiZXVpLWRyb3Bkb3duX190cmlnZ2VyLWNvbnRhaW5lclwiIChjbGljayk9XCJvblRyaWdnZXJDbGlja2VkKCRldmVudClcIj5cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlICN0ZW1wbGF0ZVBvcnRhbENvbnRlbnQ+XG4gICAgPGRpdlxuICAgICAgICBhdHRyLmRhdGEtZTJlPVwie3sgZTJlQXR0ciB9fVwiXG4gICAgICAgIFtAb3BlbkNsb3NlXT1cImlzT3BlbiA/ICdvcGVuJyA6ICdjbG9zZWQnXCJcbiAgICAgICAgY2RrVHJhcEZvY3VzXG4gICAgICAgIFtjZGtUcmFwRm9jdXNBdXRvQ2FwdHVyZV09XCJ0cmFwRm9jdXNBdXRvQ2FwdHVyZVwiXG4gICAgICAgIHJvbGU9XCJkaWFsb2dcIlxuICAgICAgICBhcmlhLWxhYmVsPVwiZVVJIGRyb3Bkb3duIHBhbmVsXCJcbiAgICAgICAgY2xhc3M9XCJldWktZHJvcGRvd25fX3BhbmVsLWNvbnRhaW5lclwiXG4gICAgICAgIFtzdHlsZS53aWR0aF09XCJ3aWR0aFwiXG4gICAgICAgIFt0YWJpbmRleF09XCJ0YWJJbmRleFwiXG4gICAgICAgIChjbGljayk9XCJvbkNsaWNrKClcIj5cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiZXVpLWRyb3Bkb3duLWNvbnRlbnRcIj48L25nLWNvbnRlbnQ+XG4gICAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
|
411
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXVpLWRyb3Bkb3duLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2V1aS1kcm9wZG93bi9ldWktZHJvcGRvd24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vZXVpLWRyb3Bkb3duL2V1aS1kcm9wZG93bi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNILFNBQVMsRUFDVCx1QkFBdUIsRUFDdkIsV0FBVyxFQUNYLGlCQUFpQixFQUNqQixLQUFLLEVBS0wsU0FBUyxFQUVULGVBQWUsR0FJbEIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUVILHNCQUFzQixHQU16QixNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sRUFBRSxlQUFlLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsMEJBQTBCLEVBQWlCLE1BQU0sbUJBQW1CLENBQUM7QUFFOUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFMUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3BELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDZDQUE2QyxDQUFDOzs7OztBQVV2RixNQUFNLE9BQU8sb0JBQXFCLFNBQVEsYUFBYTtJQStDbkQsSUFDSSxVQUFVO1FBQ1YsT0FBTztZQUNILElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ3pDLEtBQUssQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDO1NBQ3RDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUks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QUZmLEtBQUs7Z0JBb0JGLFVBQVU7c0JBRGIsV0FBVzt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDb21wb25lbnQsXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgVmlld0VuY2Fwc3VsYXRpb24sXG4gICAgSW5wdXQsXG4gICAgT25Jbml0LFxuICAgIE9uRGVzdHJveSxcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIFZpZXdDb250YWluZXJSZWYsXG4gICAgVmlld0NoaWxkLFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIENvbnRlbnRDaGlsZHJlbixcbiAgICBRdWVyeUxpc3QsXG4gICAgRWxlbWVudFJlZixcbiAgICBSZW5kZXJlcjIsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5LCBCb29sZWFuSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuaW1wb3J0IHtcbiAgICBDZGtTY3JvbGxhYmxlLFxuICAgIENvbm5lY3Rpb25Qb3NpdGlvblBhaXIsXG4gICAgRmxleGlibGVDb25uZWN0ZWRQb3NpdGlvblN0cmF0ZWd5LFxuICAgIEZsZXhpYmxlQ29ubmVjdGVkUG9zaXRpb25TdHJhdGVneU9yaWdpbixcbiAgICBPdmVybGF5LFxuICAgIE92ZXJsYXlSZWYsXG4gICAgU2Nyb2xsRGlzcGF0Y2hlcixcbn0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBmcm9tRXZlbnQsIFN1YmplY3QsIFN1YnNjcmlwdGlvbiwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBUZW1wbGF0ZVBvcnRhbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHsgQWN0aXZlRGVzY2VuZGFudEtleU1hbmFnZXIsIEhpZ2hsaWdodGFibGUgfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XG5cbmltcG9ydCB7IEJhc2VEaXJlY3RpdmUgfSBmcm9tICdAZXVpL2NvbXBvbmVudHMvc2hhcmVkJztcbmltcG9ydCB7IGNvZXJjZUJvb2xlYW4gfSBmcm9tICdAZXVpL2Jhc2UnO1xuXG5pbXBvcnQgeyBvcGVuQ2xvc2UgfSBmcm9tICcuL2FuaW1hdGlvbnMvb3Blbi1jbG9zZSc7XG5pbXBvcnQgeyBFdWlEcm9wZG93bkl0ZW1Db21wb25lbnQgfSBmcm9tICcuL2Ryb3Bkb3duLWl0ZW0vZXVpLWRyb3Bkb3duLWl0ZW0uY29tcG9uZW50JztcbmltcG9ydCB7IEV1aURyb3Bkb3duU2VydmljZSB9IGZyb20gJy4vZXVpLWRyb3Bkb3duLnNlcnZpY2UnO1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdldWktZHJvcGRvd24nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9ldWktZHJvcGRvd24uY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3N0eWxlcy9faW5kZXguc2NzcyddLFxuICAgIGFuaW1hdGlvbnM6IFtvcGVuQ2xvc2VdLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG59KVxuZXhwb3J0IGNsYXNzIEV1aURyb3Bkb3duQ29tcG9uZW50IGV4dGVuZHMgQmFzZURpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBBZnRlclZpZXdJbml0IHtcbiAgICBASW5wdXQoKSBlMmVBdHRyID0gJ2V1aS1kcm9wZG93bic7XG4gICAgQElucHV0KCkgdGFiSW5kZXggPSAtMTtcbiAgICBASW5wdXQoKSB3aWR0aCA9ICdhdXRvJztcbiAgICBASW5wdXQoKSBwb3NpdGlvbjogJ3RvcCcgfCAncmlnaHQnIHwgJ2JvdHRvbScgfCAnbGVmdCcgPSAnYm90dG9tJztcblxuICAgIEBWaWV3Q2hpbGQoJ3RlbXBsYXRlUG9ydGFsQ29udGVudCcpIHRlbXBsYXRlUG9ydGFsQ29udGVudDogVGVtcGxhdGVSZWY8dW5rbm93bj47XG4gICAgQFZpZXdDaGlsZCgndHJpZ2dlclJlZicpIHRyaWdnZXJSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuICAgIEBDb250ZW50Q2hpbGRyZW4oRXVpRHJvcGRvd25JdGVtQ29tcG9uZW50LCB7IGRlc2NlbmRhbnRzOiB0cnVlIH0pIGV1aURyb3Bkb3duSXRlbXM6IFF1ZXJ5TGlzdDxIaWdobGlnaHRhYmxlICYgRXVpRHJvcGRvd25JdGVtQ29tcG9uZW50PjtcblxuICAgIHB1YmxpYyB0cmFwRm9jdXNBdXRvQ2FwdHVyZSA9IHRydWU7XG4gICAgcHVibGljIHBhcmVudERyb3Bkb3duOiBFdWlEcm9wZG93bkNvbXBvbmVudDtcblxuICAgIEBJbnB1dCgpXG4gICAgQGNvZXJjZUJvb2xlYW5cbiAgICBpc0Jsb2NrOkJvb2xlYW5JbnB1dCA9IGZhbHNlO1xuICAgIEBJbnB1dCgpXG4gICAgQGNvZXJjZUJvb2xlYW5cbiAgICBpc0Ryb3BEb3duUmlnaHRBbGlnbmVkOkJvb2xlYW5JbnB1dCA9IGZhbHNlO1xuICAgIEBJbnB1dCgpXG4gICAgQGNvZXJjZUJvb2xlYW5cbiAgICBpc0Nsb3NlZE9uQ2xpY2tJbnNpZGU6Qm9vbGVhbklucHV0ID0gdHJ1ZTtcbiAgICBASW5wdXQoKVxuICAgIEBjb2VyY2VCb29sZWFuXG4gICAgaXNMYWJlbFVwZGF0ZWRGcm9tU2VsZWN0ZWRJdGVtOkJvb2xlYW5JbnB1dCA9IGZhbHNlO1xuICAgIEBJbnB1dCgpXG4gICAgQGNvZXJjZUJvb2xlYW5cbiAgICBpc0V4cGFuZE9uSG92ZXI6Qm9vbGVhbklucHV0ID0gZmFsc2U7XG4gICAgQElucHV0KClcbiAgICBAY29lcmNlQm9vbGVhblxuICAgIGhhc1RhYk5hdmlnYXRpb246Qm9vbGVhbklucHV0ID0gZmFsc2U7XG5cbiAgICBwcml2YXRlIG9yaWdpblg6ICdzdGFydCcgfCAnZW5kJyB8ICdjZW50ZXInID0gJ3N0YXJ0JztcbiAgICBwcml2YXRlIG9yaWdpblk6ICd0b3AnIHwgJ2JvdHRvbScgfCAnY2VudGVyJyA9ICdib3R0b20nO1xuICAgIHByaXZhdGUgb3ZlcmxheVg6ICdzdGFydCcgfCAnZW5kJyB8ICdjZW50ZXInID0gJ3N0YXJ0JztcbiAgICBwcml2YXRlIG92ZXJsYXlZOiAndG9wJyB8ICdib3R0b20nIHwgJ2NlbnRlcicgPSAndG9wJztcbiAgICBwcml2YXRlIHRlbXBsYXRlUG9ydGFsOiBUZW1wbGF0ZVBvcnRhbDtcbiAgICBwcml2YXRlIG92ZXJsYXlSZWY6IE92ZXJsYXlSZWY7XG4gICAgcHJpdmF0ZSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG4gICAgcHJpdmF0ZSBpc09wZW4kID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG4gICAgcHJpdmF0ZSBzY3JvbGxEaXNwYXRjaGVyU3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuICAgIHByaXZhdGUga2V5ZG93bkxpc3RlbmVyU3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuICAgIHByaXZhdGUgZXVpRHJvcGRvd25JdGVtc0V2ZW50U3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9uW10gPSBbXTtcbiAgICBwcml2YXRlIGFjdGl2ZURlc2NlbmRhbnRLZXlNYW5hZ2VyQ2hhbmdlU3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuICAgIHByaXZhdGUgYWN0aXZlRGVzY2VuZGFudEtleU1hbmFnZXI6IEFjdGl2ZURlc2NlbmRhbnRLZXlNYW5hZ2VyPEV1aURyb3Bkb3duSXRlbUNvbXBvbmVudD47XG4gICAgcHJpdmF0ZSBvcmlnaW46IEhUTUxFbGVtZW50O1xuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXG4gICAgZ2V0IGNzc0NsYXNzZXMoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIHRoaXMuaXNCbG9jayA/ICdldWktZHJvcGRvd24tLWJsb2NrJyA6ICcnLFxuICAgICAgICAgICAgc3VwZXIuZ2V0Q3NzQ2xhc3NlcygnZXVpLWRyb3Bkb3duJyksXG4gICAgICAgIF0uam9pbignICcpLnRyaW0oKTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBvdmVybGF5OiBPdmVybGF5LFxuICAgICAgICBwcml2YXRlIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsXG4gICAgICAgIHByaXZhdGUgc2Nyb2xsRGlzcGF0Y2hlcjogU2Nyb2xsRGlzcGF0Y2hlcixcbiAgICAgICAgcHJpdmF0ZSBkcm9wZG93blNlcnZpY2U6IEV1aURyb3Bkb3duU2VydmljZSxcbiAgICAgICAgcHJvdGVjdGVkIF9yZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgICkge1xuICAgICAgICBzdXBlcigpO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICAvLyBDdXJyZW50bHkgdGhlIGBjZGtUcmFwRm9jdXNBdXRvQ2FwdHVyZWAgaXMgb25seSBjaGVja2VkIG9uY2Ugb24gaW5pdC5cbiAgICAgICAgaWYgKHRoaXMuaGFzRHJvcGRvd25JdGVtcykge1xuICAgICAgICAgICAgdGhpcy50cmFwRm9jdXNBdXRvQ2FwdHVyZSA9IGZhbHNlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy50cmFwRm9jdXNBdXRvQ2FwdHVyZSA9IHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5oYXNUYWJOYXZpZ2F0aW9uKSB7XG4gICAgICAgICAgICB0aGlzLnRyYXBGb2N1c0F1dG9DYXB0dXJlID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMuaXNDbG9zZWRPbkNsaWNrSW5zaWRlID0gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnNldFBvc2l0aW9uKCk7XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnRlbXBsYXRlUG9ydGFsID0gbmV3IFRlbXBsYXRlUG9ydGFsKHRoaXMudGVtcGxhdGVQb3J0YWxDb250ZW50LCB0aGlzLnZpZXdDb250YWluZXJSZWYpO1xuXG4gICAgICAgIGlmKHRoaXMudHJpZ2dlclJlZiAmJiB0aGlzLnRyaWdnZXJSZWYubmF0aXZlRWxlbWVudC5maXJzdENoaWxkKXtcbiAgICAgICAgICAgIHRoaXMuX3JlbmRlcmVyLnNldEF0dHJpYnV0ZSh0aGlzLnRyaWdnZXJSZWYubmF0aXZlRWxlbWVudC5maXJzdENoaWxkLCAnYXJpYS1oYXNwb3B1cCcsICd0cnVlJyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kZXN0cm95JC5uZXh0KHRydWUpO1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIHRoaXMuZXVpRHJvcGRvd25JdGVtc0V2ZW50U3Vic2NyaXB0aW9ucy5mb3JFYWNoKChldWlEcm9wZG93bkl0ZW1zRXZlbnRTdWJzY3JpcHRpb24pID0+IHtcbiAgICAgICAgICAgIGV1aURyb3Bkb3duSXRlbXNFdmVudFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5rZXlkb3duTGlzdGVuZXJTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgdGhpcy5zY3JvbGxEaXNwYXRjaGVyU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIHRoaXMuYWN0aXZlRGVzY2VuZGFudEtleU1hbmFnZXJDaGFuZ2VTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgdGhpcy5vdmVybGF5UmVmPy5kaXNwb3NlKCk7XG4gICAgICAgIHRoaXMub3ZlcmxheVJlZiA9IG51bGw7XG4gICAgICAgIHRoaXMuYWN0aXZlRGVzY2VuZGFudEtleU1hbmFnZXIgPSBudWxsO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdGhlIGV1aS1kcm9wZG93biBpcyBvcGVuLlxuICAgICAqXG4gICAgICogQHVzYWdlTm90ZXNcbiAgICAgKiBgYGBodG1sXG4gICAgICogPGV1aS1kcm9wZG93biAjZHJvcGRvd24+XG4gICAgICogICAgICA8bXktY29tcG9uZW50ICpuZ0lmPVwiZHJvcGRvd24uaXNPcGVuXCI+PC9teS1jb21wb25lbnQ+XG4gICAgICogPC9ldWktZHJvcGRvd24+XG4gICAgICogYGBgXG4gICAgICogQHJldHVybnMgQSBib29sZWFuIHdpdGggdmFsdWUgYHRydWVgIHdoZW4gb3Blbiwgb3RoZXJ3aXNlIGBmYWxzZWAuXG4gICAgICovXG4gICAgZ2V0IGlzT3BlbigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNPcGVuJC52YWx1ZTtcbiAgICB9XG5cbiAgICAvLyBUT0RPOiBmaW5kIHRoZSBjb3JyZWN0IHR5cGUgb3IgdHVybiBpbnRvIGEgZ2VuZXJpYywgaHR0cHM6Ly93d3cudHlwZXNjcmlwdGxhbmcub3JnL2RvY3MvaGFuZGJvb2svMi9nZW5lcmljcy5odG1sXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICBwdWJsaWMgb25UcmlnZ2VyQ2xpY2tlZChlOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgIShlLnRhcmdldCBhcyBIVE1MRWxlbWVudCkucXVlcnlTZWxlY3RvcignLmRpc2FibGVkJykgJiZcbiAgICAgICAgICAgICEoZS50YXJnZXQgYXMgSFRNTEVsZW1lbnQpLnF1ZXJ5U2VsZWN0b3IoJzpkaXNhYmxlZCcpICYmXG4gICAgICAgICAgICAhdGhpcy5pc09wZW5cbiAgICAgICAgKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5pc0Jsb2NrKSB7XG4gICAgICAgICAgICAgICAgdGhpcy53aWR0aCA9IHRoaXMudHJpZ2dlclJlZi5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoICsgJ3B4JztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMub3BlbkRyb3Bkb3duKGUudGFyZ2V0IGFzIEhUTUxFbGVtZW50KTtcbiAgICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgb25DbGljaygpOiB2b2lkIHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgdGhpcy5pc0Nsb3NlZE9uQ2xpY2tJbnNpZGUgJiZcbiAgICAgICAgICAgICF0aGlzLmFjdGl2ZURlc2NlbmRhbnRLZXlNYW5hZ2VyPy5hY3RpdmVJdGVtLnN1YkRyb3Bkb3duICYmXG4gICAgICAgICAgICAhdGhpcy5hY3RpdmVEZXNjZW5kYW50S2V5TWFuYWdlcj8uYWN0aXZlSXRlbS5lbGVtZW50UmVmPy5uYXRpdmVFbGVtZW50Py5kaXNhYmxlZFxuICAgICAgICApIHtcbiAgICAgICAgICAgIHRoaXMuY2xvc2VEcm9wZG93bih0cnVlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE9wZW4gYSBkcm9wZG93blxuICAgICAqXG4gICAgICogQHBhcmFtIG9yaWdpbiBPcmlnaW4gb2YgdGhlIGRyb3Bkb3duIHBvc2l0aW9uXG4gICAgICovXG4gICAgcHVibGljIG9wZW5Ecm9wZG93bihvcmlnaW46IEhUTUxFbGVtZW50KTogdm9pZCB7XG4gICAgICAgIHRoaXMub3JpZ2luID0gb3JpZ2luO1xuXG4gICAgICAgIGlmICghdGhpcy5pc1RyaWdnZXJGb2N1c2FibGVPbkNsb3NlKG9yaWdpbikpIHtcbiAgICAgICAgICAgIHRoaXMub3JpZ2luID0gb3JpZ2luLmNsb3Nlc3QoJ2J1dHRvbjpub3QoW2Rpc2FibGVkXSknKSB8fCAodGhpcy50cmlnZ2VyUmVmLm5hdGl2ZUVsZW1lbnQuZmlyc3RDaGlsZCBhcyBIVE1MRWxlbWVudCk7XG5cbiAgICAgICAgICAgIGlmICghdGhpcy5vcmlnaW4pIHtcbiAgICAgICAgICAgICAgICB0aGlzLm9yaWdpbiA9IG9yaWdpbi5jbG9zZXN0KCdhJyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICghdGhpcy5vcmlnaW4pIHtcbiAgICAgICAgICAgICAgICB0aGlzLm9yaWdpbiA9IG9yaWdpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghdGhpcy5pc09wZW4pIHtcbiAgICAgICAgICAgIHRoaXMuc2Nyb2xsRGlzcGF0Y2hlclN1YnNjcmlwdGlvbiA9IHRoaXMuc2Nyb2xsRGlzcGF0Y2hlclxuICAgICAgICAgICAgICAgIC5hbmNlc3RvclNjcm9sbGVkKHRoaXMub3JpZ2luKVxuICAgICAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKChldmVudDogQ2RrU2Nyb2xsYWJsZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoIXRoaXMuaXNWaXNpYmxlKHRoaXMub3JpZ2luLCBldmVudCA/IGV2ZW50LmdldEVsZW1lbnRSZWYoKS5uYXRpdmVFbGVtZW50IDogZG9jdW1lbnQucXVlcnlTZWxlY3RvcignYm9keScpKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jbG9zZURyb3Bkb3duKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgY29uc3QgcG9zaXRpb25TdHJhdGVneSA9IHRoaXMuZ2V0UG9zaXRpb25TdHJhdGVneSgpO1xuICAgICAgICAgICAgY29uc3Qgc2Nyb2xsU3RyYXRlZ3kgPSB0aGlzLm92ZXJsYXkuc2Nyb2xsU3RyYXRlZ2llcy5yZXBvc2l0aW9uKHsgc2Nyb2xsVGhyb3R0bGU6IDEwIH0pO1xuXG4gICAgICAgICAgICB0aGlzLm92ZXJsYXlSZWYgPSB0aGlzLm92ZXJsYXkuY3JlYXRlKHtcbiAgICAgICAgICAgICAgICBoYXNCYWNrZHJvcDogZmFsc2UsXG4gICAgICAgICAgICAgICAgYmFja2Ryb3BDbGFzczogJ2V1aS1kcm9wZG93bl9fYmFja2Ryb3AnLFxuICAgICAgICAgICAgICAgIHBhbmVsQ2xhc3M6ICdldWktZHJvcGRvd25fX3BhbmVsJyxcbiAgICAgICAgICAgICAgICBwb3NpdGlvblN0cmF0ZWd5LFxuICAgICAgICAgICAgICAgIHNjcm9sbFN0cmF0ZWd5LFxuICAgICAgICAgICAgICAgIGRpc3Bvc2VPbk5hdmlnYXRpb246IHRydWUsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHRoaXMub3ZlcmxheVJlZi5hdHRhY2godGhpcy50ZW1wbGF0ZVBvcnRhbCk7XG5cbiAgICAgICAgICAgIHRoaXMub3ZlcmxheVJlZlxuICAgICAgICAgICAgICAgIC5vdXRzaWRlUG9pbnRlckV2ZW50cygpXG4gICAgICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNsb3NlRHJvcGRvd24oKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHRoaXMub3ZlcmxheVJlZlxuICAgICAgICAgICAgICAgIC5iYWNrZHJvcENsaWNrKClcbiAgICAgICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2xvc2VEcm9wZG93bigpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGhpcy5vdmVybGF5UmVmXG4gICAgICAgICAgICAgICAgLmtleWRvd25FdmVudHMoKVxuICAgICAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKChrZXlib2FyZEV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChrZXlib2FyZEV2ZW50LmtleT8udG9Mb3dlckNhc2UoKSA9PT0gJ2VzY2FwZScpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY2xvc2VEcm9wZG93bigpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIGlmICh0aGlzLmhhc0Ryb3Bkb3duSXRlbXMpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmV1aURyb3Bkb3duSXRlbXMudG9BcnJheSgpLmZvckVhY2goKGV1aURyb3Bkb3duSXRlbSwgaSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5pc0V4cGFuZE9uSG92ZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZXVpRHJvcGRvd25JdGVtc0V2ZW50U3Vic2NyaXB0aW9uc1tpXSA9IGZyb21FdmVudChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBldWlEcm9wZG93bkl0ZW0uZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICdtb3VzZWVudGVyJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICkuc3Vic2NyaWJlKChlOiBNb3VzZUV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5hY3RpdmVEZXNjZW5kYW50S2V5TWFuYWdlci5zZXRBY3RpdmVJdGVtKGV1aURyb3Bkb3duSXRlbSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuYWN0aXZlRGVzY2VuZGFudEtleU1hbmFnZXIuYWN0aXZlSXRlbS5zdWJEcm9wZG93bikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmFjdGl2ZURlc2NlbmRhbnRLZXlNYW5hZ2VyLmFjdGl2ZUl0ZW0uc3ViRHJvcGRvd24uc2V0UGFyZW50RHJvcGRvd24odGhpcyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYWN0aXZlRGVzY2VuZGFudEtleU1hbmFnZXIuYWN0aXZlSXRlbS5zdWJEcm9wZG93bi5vdmVybGF5UmVmLmRldGFjaEJhY2tkcm9wKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMua2V5ZG93bkxpc3RlbmVyU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdHJpZ2dlck91dHNpZGVQb2ludGVyRXZlbnRzID0gKHN1YkRyb3Bkb3duOiBFdWlEcm9wZG93bkNvbXBvbmVudCk6IHZvaWQgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWJEcm9wZG93bj8ub3ZlcmxheVJlZj8uX291dHNpZGVQb2ludGVyRXZlbnRzLm5leHQoZSk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHN1YkRyb3Bkb3duPy5oYXNEcm9wZG93bkl0ZW1zKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWJEcm9wZG93bi5ldWlEcm9wZG93bkl0ZW1zLnRvQXJyYXkoKS5mb3JFYWNoKChzKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJpZ2dlck91dHNpZGVQb2ludGVyRXZlbnRzKHMuc3ViRHJvcGRvd24pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5ldWlEcm9wZG93bkl0ZW1zXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5maWx0ZXIoKGl0ZW0pID0+ICFpdGVtLmlzQWN0aXZlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuZm9yRWFjaCgoZXVpRHJvcGRvd25JdGVtSGF2aW5nU3ViRHJvcGRvd24pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyaWdnZXJPdXRzaWRlUG9pbnRlckV2ZW50cyhldWlEcm9wZG93bkl0ZW1IYXZpbmdTdWJEcm9wZG93bi5zdWJEcm9wZG93bik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmV1aURyb3Bkb3duSXRlbXNFdmVudFN1YnNjcmlwdGlvbnNbaV0gPSBmcm9tRXZlbnQoZXVpRHJvcGRvd25JdGVtLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ2NsaWNrJykuc3Vic2NyaWJlKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5hY3RpdmVEZXNjZW5kYW50S2V5TWFuYWdlci5zZXRBY3RpdmVJdGVtKGV1aURyb3Bkb3duSXRlbSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmFjdGl2ZURlc2NlbmRhbnRLZXlNYW5hZ2VyLmFjdGl2ZUl0ZW0uc3ViRHJvcGRvd24pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYWN0aXZlRGVzY2VuZGFudEtleU1hbmFnZXIuYWN0aXZlSXRlbS5zdWJEcm9wZG93bi5zZXRQYXJlbnREcm9wZG93bih0aGlzKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYWN0aXZlRGVzY2VuZGFudEtleU1hbmFnZXIuYWN0aXZlSXRlbS5zdWJEcm9wZG93bi5vdmVybGF5UmVmLmRldGFjaEJhY2tkcm9wKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmtleWRvd25MaXN0ZW5lclN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbGFiZWxFbGVtZW50ID0gdGhpcy50cmlnZ2VyUmVmLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignYnV0dG9uIC5ldWktbGFiZWwnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuaXNMYWJlbFVwZGF0ZWRGcm9tU2VsZWN0ZWRJdGVtICYmIGxhYmVsRWxlbWVudCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxhYmVsRWxlbWVudCBhcyBIVE1MRWxlbWVudCkuaW5uZXJUZXh0ID0gZXVpRHJvcGRvd25JdGVtLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5pbm5lclRleHQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgdGhpcy5hY3RpdmVEZXNjZW5kYW50S2V5TWFuYWdlciA9IG5ldyBBY3RpdmVEZXNjZW5kYW50S2V5TWFuYWdlcih0aGlzLmV1aURyb3Bkb3duSXRlbXMpXG4gICAgICAgICAgICAgICAgICAgIC53aXRoSG9tZUFuZEVuZCh0cnVlKVxuICAgICAgICAgICAgICAgICAgICAud2l0aFZlcnRpY2FsT3JpZW50YXRpb24odHJ1ZSlcbiAgICAgICAgICAgICAgICAgICAgLndpdGhXcmFwKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5hY3RpdmVEZXNjZW5kYW50S2V5TWFuYWdlci5zZXRGaXJzdEl0ZW1BY3RpdmUoKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5jcmVhdGVLZXlib2FyZEhhbmRsZXJTdWJzY3JpcHRpb24oKTtcbiAgICAgICAgICAgIHRoaXMuaXNPcGVuJC5uZXh0KHRydWUpO1xuICAgICAgICAgICAgdGhpcy5kcm9wZG93blNlcnZpY2UuaXNEcm9wZG93bk9wZW4uZW1pdCh0cnVlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENsb3NlIGEgZHJvcGRvd25cbiAgICAgKi9cbiAgICBwdWJsaWMgY2xvc2VEcm9wZG93bihyZWN1cnNpdmVseSA9IGZhbHNlKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaXNPcGVuJC5uZXh0KGZhbHNlKTtcbiAgICAgICAgdGhpcy5ldWlEcm9wZG93bkl0ZW1zRXZlbnRTdWJzY3JpcHRpb25zLmZvckVhY2goKGV1aURyb3Bkb3duSXRlbXNFdmVudFN1YnNjcmlwdGlvbikgPT4ge1xuICAgICAgICAgICAgZXVpRHJvcGRvd25JdGVtc0V2ZW50U3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmtleWRvd25MaXN0ZW5lclN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICBpZiAodGhpcy5oYXNEcm9wZG93bkl0ZW1zKSB7XG4gICAgICAgICAgICB0aGlzLmFjdGl2ZURlc2NlbmRhbnRLZXlNYW5hZ2VyPy5zZXRGaXJzdEl0ZW1BY3RpdmUoKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnNjcm9sbERpc3BhdGNoZXJTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgdGhpcy5hY3RpdmVEZXNjZW5kYW50S2V5TWFuYWdlckNoYW5nZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICB0aGlzLm92ZXJsYXlSZWY/LmRpc3Bvc2UoKTtcbiAgICAgICAgdGhpcy5vdmVybGF5UmVmID0gbnVsbDtcbiAgICAgICAgdGhpcy5hY3RpdmVEZXNjZW5kYW50S2V5TWFuYWdlciA9IG51bGw7XG4gICAgICAgIGlmICh0aGlzLnRyYXBGb2N1c0F1dG9DYXB0dXJlKSB7XG4gICAgICAgICAgICB0aGlzLm9yaWdpbi5mb2N1cygpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChyZWN1cnNpdmVseSAmJiB0aGlzLnBhcmVudERyb3Bkb3duKSB7XG4gICAgICAgICAgICB0aGlzLnBhcmVudERyb3Bkb3duLmNsb3NlRHJvcGRvd24odHJ1ZSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmRyb3Bkb3duU2VydmljZS5pc0Ryb3Bkb3duT3Blbi5lbWl0KGZhbHNlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY3JlYXRlS2V5Ym9hcmRIYW5kbGVyU3Vic2NyaXB0aW9uKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmtleWRvd25MaXN0ZW5lclN1YnNjcmlwdGlvbiA9IGZyb21FdmVudChkb2N1bWVudCwgJ2tleWRvd24nKS5zdWJzY3JpYmUoKGV2ZW50OiBLZXlib2FyZEV2ZW50KSA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy5pc09wZW4pIHtcbiAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICAgIGV2ZW50LmNvZGUgPT09ICdFbnRlcicgJiZcbiAgICAgICAgICAgICAgICAgICAgIXRoaXMuaGFzVGFiTmF2aWdhdGlvbiAmJlxuICAgICAgICAgICAgICAgICAgICAhdGhpcy5hY3RpdmVEZXNjZW5kYW50S2V5TWFuYWdlcj8uYWN0aXZlSXRlbS5lbGVtZW50UmVmPy5uYXRpdmVFbGVtZW50Py5kaXNhYmxlZFxuICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmFjdGl2ZURlc2NlbmRhbnRLZXlNYW5hZ2VyPy5hY3RpdmVJdGVtLmZvY3VzKCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaXNFeHBhbmRPbkhvdmVyXG4gICAgICAgICAgICAgICAgICAgICAgICA/IHRoaXMuYWN0aXZlRGVzY2VuZGFudEtleU1hbmFnZXIuYWN0aXZlSXRlbS5tb3VzZWVudGVyKClcbiAgICAgICAgICAgICAgICAgICAgICAgIDogdGhpcy5hY3RpdmVEZXNjZW5kYW50S2V5TWFuYWdlcj8uYWN0aXZlSXRlbS5jbGljaygpO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmFjdGl2ZURlc2NlbmRhbnRLZXlNYW5hZ2VyPy5hY3RpdmVJdGVtLnN1YkRyb3Bkb3duKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmFjdGl2ZURlc2NlbmRhbnRLZXlNYW5hZ2VyLmFjdGl2ZUl0ZW0uc3ViRHJvcGRvd24uc2V0UGFyZW50RHJvcGRvd24odGhpcyk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmtleWRvd25MaXN0ZW5lclN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jbG9zZURyb3Bkb3duKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGV2ZW50LmNvZGUgPT09ICdBcnJvd0xlZnQnKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLnBhcmVudERyb3Bkb3duKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnBhcmVudERyb3Bkb3duLmNyZWF0ZUtleWJvYXJkSGFuZGxlclN1YnNjcmlwdGlvbigpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jbG9zZURyb3Bkb3duKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGV2ZW50LmNvZGUgPT09ICdBcnJvd1JpZ2h0Jykge1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5hY3RpdmVEZXNjZW5kYW50S2V5TWFuYWdlcj8uYWN0aXZlSXRlbS5zdWJEcm9wZG93bikge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5hY3RpdmVEZXNjZW5kYW50S2V5TWFuYWdlci5hY3RpdmVJdGVtLmZvY3VzKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmlzRXhwYW5kT25Ib3ZlclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gdGhpcy5hY3RpdmVEZXNjZW5kYW50S2V5TWFuYWdlci5hY3RpdmVJdGVtLm1vdXNlZW50ZXIoKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogdGhpcy5hY3RpdmVEZXNjZW5kYW50S2V5TWFuYWdlci5hY3RpdmVJdGVtLmNsaWNrKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmFjdGl2ZURlc2NlbmRhbnRLZXlNYW5hZ2VyLmFjdGl2ZUl0ZW0uc3ViRHJvcGRvd24uc2V0UGFyZW50RHJvcGRvd24odGhpcyk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmtleWRvd25MaXN0ZW5lclN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChldmVudC5jb2RlID09PSAnVGFiJyAmJiAhdGhpcy5oYXNUYWJOYXZpZ2F0aW9uKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2xvc2VEcm9wZG93bih0cnVlKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmFjdGl2ZURlc2NlbmRhbnRLZXlNYW5hZ2VyPy5vbktleWRvd24oZXZlbnQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIHNldFBhcmVudERyb3Bkb3duKHBhcmVudERyb3Bkb3duOiBFdWlEcm9wZG93bkNvbXBvbmVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLnBhcmVudERyb3Bkb3duID0gcGFyZW50RHJvcGRvd247XG4gICAgICAgIHRoaXMucG9zaXRpb24gPSAncmlnaHQnO1xuICAgICAgICB0aGlzLnNldFBvc2l0aW9uKCk7XG5cbiAgICAgICAgY29uc3QgcG9zaXRpb25TdHJhdGVneSA9IHRoaXMuZ2V0UG9zaXRpb25TdHJhdGVneSgpO1xuICAgICAgICB0aGlzLm92ZXJsYXlSZWYudXBkYXRlUG9zaXRpb25TdHJhdGVneShwb3NpdGlvblN0cmF0ZWd5KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldCBoYXNEcm9wZG93bkl0ZW1zKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5ldWlEcm9wZG93bkl0ZW1zPy5sZW5ndGggPiAwO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0UG9zaXRpb25TdHJhdGVneSgpOiBGbGV4aWJsZUNvbm5lY3RlZFBvc2l0aW9uU3RyYXRlZ3kge1xuICAgICAgICByZXR1cm4gdGhpcy5vdmVybGF5XG4gICAgICAgICAgICAucG9zaXRpb24oKVxuICAgICAgICAgICAgLmZsZXhpYmxlQ29ubmVjdGVkVG8odGhpcy5vcmlnaW4gYXMgRmxleGlibGVDb25uZWN0ZWRQb3NpdGlvblN0cmF0ZWd5T3JpZ2luKVxuICAgICAgICAgICAgLndpdGhQb3NpdGlvbnMoW1xuICAgICAgICAgICAgICAgIG5ldyBDb25uZWN0aW9uUG9zaXRpb25QYWlyKFxuICAgICAgICAgICAgICAgICAgICB7IG9yaWdpblg6IHRoaXMub3JpZ2luWCwgb3JpZ2luWTogdGhpcy5vcmlnaW5ZIH0sXG4gICAgICAgICAgICAgICAgICAgIHsgb3ZlcmxheVg6IHRoaXMub3ZlcmxheVgsIG92ZXJsYXlZOiB0aGlzLm92ZXJsYXlZIH0sXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIF0pXG4gICAgICAgICAgICAud2l0aEZsZXhpYmxlRGltZW5zaW9ucyhmYWxzZSlcbiAgICAgICAgICAgIC53aXRoTG9ja2VkUG9zaXRpb24odHJ1ZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpc1Zpc2libGUob3JpZ2luOiBIVE1MRWxlbWVudCwgc2Nyb2xsYWJsZVBhcmVudDogSFRNTEVsZW1lbnQpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3Qgb3JpZ2luWSA9IG9yaWdpbi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS55O1xuICAgICAgICBjb25zdCBzY3JvbGxhYmxlUGFyZW50WSA9IE1hdGguYWJzKHNjcm9sbGFibGVQYXJlbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkueSk7XG4gICAgICAgIGNvbnN0IHNjcm9sbGFibGVQYXJlbnRIZWlnaHQgPSBzY3JvbGxhYmxlUGFyZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmhlaWdodCAtIDUwO1xuXG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAob3JpZ2luWSA+IDAgJiYgb3JpZ2luWSA8IHNjcm9sbGFibGVQYXJlbnRIZWlnaHQpIHx8XG4gICAgICAgICAgICAob3JpZ2luWSAtIHNjcm9sbGFibGVQYXJlbnRZID4gMCAmJiBvcmlnaW5ZIDwgc2Nyb2xsYWJsZVBhcmVudFkgKyBzY3JvbGxhYmxlUGFyZW50SGVpZ2h0KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgaXNUcmlnZ2VyRm9jdXNhYmxlT25DbG9zZShvcmlnaW46IEhUTUxFbGVtZW50KTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBvcmlnaW4ubWF0Y2hlcygnYnV0dG9uOm5vdChbZGlzYWJsZWRdKScpIHx8IG9yaWdpbi5tYXRjaGVzKCdhJyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRQb3NpdGlvbigpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMucG9zaXRpb24gPT09ICd0b3AnKSB7XG4gICAgICAgICAgICB0aGlzLm9yaWdpblkgPSAndG9wJztcbiAgICAgICAgICAgIHRoaXMub3ZlcmxheVkgPSAnYm90dG9tJztcblxuICAgICAgICAgICAgaWYgKHRoaXMuaXNEcm9wRG93blJpZ2h0QWxpZ25lZCkge1xuICAgICAgICAgICAgICAgIHRoaXMub3JpZ2luWCA9ICdlbmQnO1xuICAgICAgICAgICAgICAgIHRoaXMub3ZlcmxheVggPSAnZW5kJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5wb3NpdGlvbiA9PT0gJ3JpZ2h0Jykge1xuICAgICAgICAgICAgdGhpcy5vcmlnaW5YID0gJ2VuZCc7XG4gICAgICAgICAgICB0aGlzLm92ZXJsYXlYID0gJ3N0YXJ0JztcbiAgICAgICAgICAgIHRoaXMub3ZlcmxheVkgPSAnY2VudGVyJztcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5wb3NpdGlvbiA9PT0gJ2JvdHRvbScpIHtcbiAgICAgICAgICAgIHRoaXMub3JpZ2luWSA9ICdib3R0b20nO1xuICAgICAgICAgICAgdGhpcy5vdmVybGF5WSA9ICd0b3AnO1xuXG4gICAgICAgICAgICBpZiAodGhpcy5pc0Ryb3BEb3duUmlnaHRBbGlnbmVkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5vcmlnaW5YID0gJ2VuZCc7XG4gICAgICAgICAgICAgICAgdGhpcy5vdmVybGF5WCA9ICdlbmQnO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLnBvc2l0aW9uID09PSAnbGVmdCcpIHtcbiAgICAgICAgICAgIHRoaXMub3JpZ2luWCA9ICdzdGFydCc7XG4gICAgICAgICAgICB0aGlzLm92ZXJsYXlYID0gJ2VuZCc7XG4gICAgICAgICAgICB0aGlzLm92ZXJsYXlZID0gJ2NlbnRlcic7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCI8ZGl2ICN0cmlnZ2VyUmVmIGNsYXNzPVwiZXVpLWRyb3Bkb3duX190cmlnZ2VyLWNvbnRhaW5lclwiIChjbGljayk9XCJvblRyaWdnZXJDbGlja2VkKCRldmVudClcIj5cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlICN0ZW1wbGF0ZVBvcnRhbENvbnRlbnQ+XG4gICAgPGRpdlxuICAgICAgICBhdHRyLmRhdGEtZTJlPVwie3sgZTJlQXR0ciB9fVwiXG4gICAgICAgIFtAb3BlbkNsb3NlXT1cImlzT3BlbiA/ICdvcGVuJyA6ICdjbG9zZWQnXCJcbiAgICAgICAgY2RrVHJhcEZvY3VzXG4gICAgICAgIFtjZGtUcmFwRm9jdXNBdXRvQ2FwdHVyZV09XCJ0cmFwRm9jdXNBdXRvQ2FwdHVyZVwiXG4gICAgICAgIHJvbGU9XCJkaWFsb2dcIlxuICAgICAgICBhcmlhLWxhYmVsPVwiZVVJIGRyb3Bkb3duIHBhbmVsXCJcbiAgICAgICAgY2xhc3M9XCJldWktZHJvcGRvd25fX3BhbmVsLWNvbnRhaW5lclwiXG4gICAgICAgIFtzdHlsZS53aWR0aF09XCJ3aWR0aFwiXG4gICAgICAgIFt0YWJpbmRleF09XCJ0YWJJbmRleFwiXG4gICAgICAgIChjbGljayk9XCJvbkNsaWNrKClcIj5cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiZXVpLWRyb3Bkb3duLWNvbnRlbnRcIj48L25nLWNvbnRlbnQ+XG4gICAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
|
@@ -48,6 +48,10 @@ export class EuiMessageBoxComponent extends BaseDirective {
|
|
48
48
|
set hasNoBodyPadding(value) {
|
49
49
|
this._hasNoBodyPadding = coerceBooleanProperty(value);
|
50
50
|
}
|
51
|
+
/**
|
52
|
+
* @deprecated eui-message-box is always closed on escape, for accessibility reasons. This input has no effect.
|
53
|
+
* To be removed in eUI-18
|
54
|
+
*/
|
51
55
|
get isClosedOnEscape() {
|
52
56
|
return this._isClosedOnEscape;
|
53
57
|
}
|
@@ -64,7 +68,12 @@ export class EuiMessageBoxComponent extends BaseDirective {
|
|
64
68
|
this.acceptLabel = 'eui.OK';
|
65
69
|
this.dismissLabel = 'eui.CANCEL';
|
66
70
|
this.typeClass = 'primary';
|
71
|
+
/**
|
72
|
+
* @deprecated messageBoxopen is deprecated, please use messageBoxOpen instead.
|
73
|
+
* To be removed in eUI-18
|
74
|
+
*/
|
67
75
|
this.messageBoxopen = new EventEmitter();
|
76
|
+
this.messageBoxOpen = new EventEmitter();
|
68
77
|
this.messageBoxClose = new EventEmitter();
|
69
78
|
this.dismiss = new EventEmitter();
|
70
79
|
this.accept = new EventEmitter();
|
@@ -127,7 +136,7 @@ export class EuiMessageBoxComponent extends BaseDirective {
|
|
127
136
|
hasAcceptButton: this.hasAcceptButton,
|
128
137
|
hasDismissButton: this.hasDismissButton,
|
129
138
|
isClosedOnClickOutside: false,
|
130
|
-
isClosedOnEscape:
|
139
|
+
isClosedOnEscape: true,
|
131
140
|
isHandleCloseOnDismiss: this.isHandleCloseOnDismiss,
|
132
141
|
isHandleCloseOnClose: this.isHandleCloseOnClose,
|
133
142
|
isHandleCloseOnAccept: this.isHandleCloseOnAccept,
|
@@ -140,6 +149,7 @@ export class EuiMessageBoxComponent extends BaseDirective {
|
|
140
149
|
isMessageBox: true,
|
141
150
|
open: () => {
|
142
151
|
this.messageBoxopen.emit();
|
152
|
+
this.messageBoxOpen.emit();
|
143
153
|
},
|
144
154
|
close: () => {
|
145
155
|
this.messageBoxClose.emit();
|
@@ -160,7 +170,7 @@ export class EuiMessageBoxComponent extends BaseDirective {
|
|
160
170
|
this.euiMessageBoxService.closeMessageBox();
|
161
171
|
}
|
162
172
|
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: EuiMessageBoxComponent, deps: [{ token: i0.ViewContainerRef }, { token: i1.EuiMessageBoxService }], target: i0.ɵɵFactoryTarget.Component }); }
|
163
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.8", type: EuiMessageBoxComponent, selector: "eui-message-box", inputs: { e2eAttr: "e2eAttr", title: "title", width: "width", height: "height", hasAcceptButton: "hasAcceptButton", hasDismissButton: "hasDismissButton", acceptLabel: "acceptLabel", dismissLabel: "dismissLabel", typeClass: "typeClass", isHandleCloseOnDismiss: "isHandleCloseOnDismiss", isHandleCloseOnClose: "isHandleCloseOnClose", isHandleCloseOnAccept: "isHandleCloseOnAccept", isDraggable: "isDraggable", hasNoBodyPadding: "hasNoBodyPadding", isClosedOnEscape: "isClosedOnEscape" }, outputs: { messageBoxopen: "messageBoxopen", messageBoxClose: "messageBoxClose", dismiss: "dismiss", accept: "accept" }, queries: [{ propertyName: "euiMessageBoxFooterDirective", first: true, predicate: i0.forwardRef(() => EuiMessageBoxFooterDirective), descendants: true }], viewQueries: [{ propertyName: "templateRefContent", first: true, predicate: ["templateRefContent"], descendants: true }, { propertyName: "templateRefFooter", first: true, predicate: ["templateRefFooter"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-template #templateRefContent>\n <ng-content></ng-content>\n</ng-template>\n<ng-template #templateRefFooter>\n <ng-content select=\"eui-message-box-footer\"></ng-content>\n</ng-template>\n", changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
173
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.8", type: EuiMessageBoxComponent, selector: "eui-message-box", inputs: { e2eAttr: "e2eAttr", title: "title", width: "width", height: "height", hasAcceptButton: "hasAcceptButton", hasDismissButton: "hasDismissButton", acceptLabel: "acceptLabel", dismissLabel: "dismissLabel", typeClass: "typeClass", isHandleCloseOnDismiss: "isHandleCloseOnDismiss", isHandleCloseOnClose: "isHandleCloseOnClose", isHandleCloseOnAccept: "isHandleCloseOnAccept", isDraggable: "isDraggable", hasNoBodyPadding: "hasNoBodyPadding", isClosedOnEscape: "isClosedOnEscape" }, outputs: { messageBoxopen: "messageBoxopen", messageBoxOpen: "messageBoxOpen", messageBoxClose: "messageBoxClose", dismiss: "dismiss", accept: "accept" }, queries: [{ propertyName: "euiMessageBoxFooterDirective", first: true, predicate: i0.forwardRef(() => EuiMessageBoxFooterDirective), descendants: true }], viewQueries: [{ propertyName: "templateRefContent", first: true, predicate: ["templateRefContent"], descendants: true }, { propertyName: "templateRefFooter", first: true, predicate: ["templateRefFooter"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-template #templateRefContent>\n <ng-content></ng-content>\n</ng-template>\n<ng-template #templateRefFooter>\n <ng-content select=\"eui-message-box-footer\"></ng-content>\n</ng-template>\n", changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
164
174
|
}
|
165
175
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: EuiMessageBoxComponent, decorators: [{
|
166
176
|
type: Component,
|
@@ -197,6 +207,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImpor
|
|
197
207
|
type: Input
|
198
208
|
}], messageBoxopen: [{
|
199
209
|
type: Output
|
210
|
+
}], messageBoxOpen: [{
|
211
|
+
type: Output
|
200
212
|
}], messageBoxClose: [{
|
201
213
|
type: Output
|
202
214
|
}], dismiss: [{
|
@@ -222,4 +234,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImpor
|
|
222
234
|
type: Directive,
|
223
235
|
args: [{ selector: 'eui-message-box-footer' }]
|
224
236
|
}] });
|
225
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXVpLW1lc3NhZ2UtYm94LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2V1aS1tZXNzYWdlLWJveC9ldWktbWVzc2FnZS1ib3guY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vZXVpLW1lc3NhZ2UtYm94L2V1aS1tZXNzYWdlLWJveC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUNULHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsS0FBSyxFQUNMLFNBQVMsRUFLVCxNQUFNLEVBQ04sWUFBWSxFQUNaLFNBQVMsRUFDVCxZQUFZLEVBQ1osVUFBVSxHQUliLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxxQkFBcUIsRUFBZ0IsTUFBTSx1QkFBdUIsQ0FBQztBQUM1RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7OztBQVd2RCxNQUFNLE9BQU8sc0JBQXVCLFNBQVEsYUFBYTtJQUtyRCxJQUNJLGVBQWU7UUFDZixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztJQUNqQyxDQUFDO0lBQ0QsSUFBSSxlQUFlLENBQUMsS0FBbUI7UUFDbkMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFDRCxJQUNJLGdCQUFnQjtRQUNoQixPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztJQUNsQyxDQUFDO0lBQ0QsSUFBSSxnQkFBZ0IsQ0FBQyxLQUFtQjtRQUNwQyxJQUFJLENBQUMsaUJBQWlCLEdBQUcscUJBQXFCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUlELElBQ0ksc0JBQXNCO1FBQ3RCLE9BQU8sSUFBSSxD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RUFBRSx3QkFBd0IsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ29tcG9uZW50LFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uLFxuICAgIElucHV0LFxuICAgIFZpZXdDaGlsZCxcbiAgICBUZW1wbGF0ZVJlZixcbiAgICBWaWV3Q29udGFpbmVyUmVmLFxuICAgIEFmdGVyVmlld0luaXQsXG4gICAgT25EZXN0cm95LFxuICAgIE91dHB1dCxcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgRGlyZWN0aXZlLFxuICAgIENvbnRlbnRDaGlsZCxcbiAgICBmb3J3YXJkUmVmLFxuICAgIFF1ZXJ5TGlzdCxcbiAgICBFbGVtZW50UmVmLFxuICAgIE9uSW5pdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUZW1wbGF0ZVBvcnRhbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5LCBCb29sZWFuSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuaW1wb3J0IHsgQmFzZURpcmVjdGl2ZSB9IGZyb20gJ0BldWkvY29tcG9uZW50cy9zaGFyZWQnO1xuaW1wb3J0IHsgRXVpRGlhbG9nSW50ZXJmYWNlIH0gZnJvbSAnQGV1aS9jb21wb25lbnRzL2V1aS1kaWFsb2cnO1xuXG5pbXBvcnQgeyBFdWlNZXNzYWdlQm94U2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvZXVpLW1lc3NhZ2UtYm94LnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2V1aS1tZXNzYWdlLWJveCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2V1aS1tZXNzYWdlLWJveC5jb21wb25lbnQuaHRtbCcsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbn0pXG5leHBvcnQgY2xhc3MgRXVpTWVzc2FnZUJveENvbXBvbmVudCBleHRlbmRzIEJhc2VEaXJlY3RpdmUgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3ksIE9uSW5pdCB7XG4gICAgQElucHV0KCkgZTJlQXR0ciA9ICdldWktZGlhbG9nJztcbiAgICBASW5wdXQoKSB0aXRsZTogc3RyaW5nO1xuICAgIEBJbnB1dCgpIHdpZHRoID0gJzMzcmVtJztcbiAgICBASW5wdXQoKSBoZWlnaHQgPSAnYXV0byc7XG4gICAgQElucHV0KClcbiAgICBnZXQgaGFzQWNjZXB0QnV0dG9uKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faGFzQWNjZXB0QnV0dG9uO1xuICAgIH1cbiAgICBzZXQgaGFzQWNjZXB0QnV0dG9uKHZhbHVlOiBCb29sZWFuSW5wdXQpIHtcbiAgICAgICAgdGhpcy5faGFzQWNjZXB0QnV0dG9uID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICB9XG4gICAgQElucHV0KClcbiAgICBnZXQgaGFzRGlzbWlzc0J1dHRvbigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2hhc0Rpc21pc3NCdXR0b247XG4gICAgfVxuICAgIHNldCBoYXNEaXNtaXNzQnV0dG9uKHZhbHVlOiBCb29sZWFuSW5wdXQpIHtcbiAgICAgICAgdGhpcy5faGFzRGlzbWlzc0J1dHRvbiA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgfVxuICAgIEBJbnB1dCgpIGFjY2VwdExhYmVsID0gJ2V1aS5PSyc7XG4gICAgQElucHV0KCkgZGlzbWlzc0xhYmVsID0gJ2V1aS5DQU5DRUwnO1xuICAgIEBJbnB1dCgpIHR5cGVDbGFzczogJ3ByaW1hcnknIHwgJ3NlY29uZGFyeScgfCAnaW5mbycgfCAnc3VjY2VzcycgfCAnd2FybmluZycgfCAnZGFuZ2VyJyB8ICdhY2NlbnQnID0gJ3ByaW1hcnknO1xuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGlzSGFuZGxlQ2xvc2VPbkRpc21pc3MoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc0hhbmRsZUNsb3NlT25EaXNtaXNzO1xuICAgIH1cbiAgICBzZXQgaXNIYW5kbGVDbG9zZU9uRGlzbWlzcyh2YWx1ZTogQm9vbGVhbklucHV0KSB7XG4gICAgICAgIHRoaXMuX2lzSGFuZGxlQ2xvc2VPbkRpc21pc3MgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIH1cbiAgICBASW5wdXQoKVxuICAgIGdldCBpc0hhbmRsZUNsb3NlT25DbG9zZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzSGFuZGxlQ2xvc2VPbkNsb3NlO1xuICAgIH1cbiAgICBzZXQgaXNIYW5kbGVDbG9zZU9uQ2xvc2UodmFsdWU6IEJvb2xlYW5JbnB1dCkge1xuICAgICAgICB0aGlzLl9pc0hhbmRsZUNsb3NlT25DbG9zZSA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgfVxuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGlzSGFuZGxlQ2xvc2VPbkFjY2VwdCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzSGFuZGxlQ2xvc2VPbkFjY2VwdDtcbiAgICB9XG4gICAgc2V0IGlzSGFuZGxlQ2xvc2VPbkFjY2VwdCh2YWx1ZTogQm9vbGVhbklucHV0KSB7XG4gICAgICAgIHRoaXMuX2lzSGFuZGxlQ2xvc2VPbkFjY2VwdCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgfVxuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGlzRHJhZ2dhYmxlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faXNEcmFnZ2FibGU7XG4gICAgfVxuXG4gICAgc2V0IGlzRHJhZ2dhYmxlKHZhbHVlOiBCb29sZWFuSW5wdXQpIHtcbiAgICAgICAgdGhpcy5faXNEcmFnZ2FibGUgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIH1cbiAgICBASW5wdXQoKVxuICAgIGdldCBoYXNOb0JvZHlQYWRkaW5nKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faGFzTm9Cb2R5UGFkZGluZztcbiAgICB9XG4gICAgc2V0IGhhc05vQm9keVBhZGRpbmcodmFsdWU6IEJvb2xlYW5JbnB1dCkge1xuICAgICAgICB0aGlzLl9oYXNOb0JvZHlQYWRkaW5nID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICB9XG4gICAgQElucHV0KClcbiAgICBnZXQgaXNDbG9zZWRPbkVzY2FwZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzQ2xvc2VkT25Fc2NhcGU7XG4gICAgfVxuICAgIHNldCBpc0Nsb3NlZE9uRXNjYXBlKHZhbHVlOiBCb29sZWFuSW5wdXQpIHtcbiAgICAgICAgdGhpcy5faXNDbG9zZWRPbkVzY2FwZSA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgfVxuXG4gICAgQE91dHB1dCgpIG1lc3NhZ2VCb3hvcGVuID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIEBPdXRwdXQoKSBtZXNzYWdlQm94Q2xvc2UgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQE91dHB1dCgpIGRpc21pc3MgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQE91dHB1dCgpIGFjY2VwdCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBwdWJsaWMgY29udGVudDogc3RyaW5nIHwgVGVtcGxhdGVQb3J0YWw7XG5cbiAgICBAVmlld0NoaWxkKCd0ZW1wbGF0ZVJlZkNvbnRlbnQnKSB0ZW1wbGF0ZVJlZkNvbnRlbnQ6IFRlbXBsYXRlUmVmPEVsZW1lbnRSZWY+O1xuICAgIEBWaWV3Q2hpbGQoJ3RlbXBsYXRlUmVmRm9vdGVyJykgdGVtcGxhdGVSZWZGb290ZXI6IFRlbXBsYXRlUmVmPEV1aU1lc3NhZ2VCb3hGb290ZXJEaXJlY3RpdmU+O1xuICAgIEBDb250ZW50Q2hpbGQoZm9yd2FyZFJlZigoKSA9PiBFdWlNZXNzYWdlQm94Rm9vdGVyRGlyZWN0aXZlKSkgZXVpTWVzc2FnZUJveEZvb3RlckRpcmVjdGl2ZTogUXVlcnlMaXN0PEV1aU1lc3NhZ2VCb3hGb290ZXJEaXJlY3RpdmU+O1xuXG4gICAgcHJpdmF0ZSBfaGFzQWNjZXB0QnV0dG9uID0gdHJ1ZTtcbiAgICBwcml2YXRlIF9oYXNEaXNtaXNzQnV0dG9uID0gdHJ1ZTtcbiAgICBwcml2YXRlIF9pc0hhbmRsZUNsb3NlT25EaXNtaXNzID0gZmFsc2U7XG4gICAgcHJpdmF0ZSBfaXNIYW5kbGVDbG9zZU9uQ2xvc2UgPSBmYWxzZTtcbiAgICBwcml2YXRlIF9pc0hhbmRsZUNsb3NlT25BY2NlcHQgPSBmYWxzZTtcbiAgICBwcml2YXRlIF9pc0RyYWdnYWJsZSA9IGZhbHNlO1xuICAgIHByaXZhdGUgX2hhc05vQm9keVBhZGRpbmcgPSBmYWxzZTtcbiAgICBwcml2YXRlIF9pc0Nsb3NlZE9uRXNjYXBlID0gdHJ1ZTtcbiAgICBwcml2YXRlIHRlbXBsYXRlUG9ydGFsQ29udGVudDogVGVtcGxhdGVQb3J0YWw8RWxlbWVudFJlZj47XG4gICAgcHJpdmF0ZSB0ZW1wbGF0ZVBvcnRhbEZvb3RlcjogVGVtcGxhdGVQb3J0YWw8RXVpTWVzc2FnZUJveEZvb3RlckRpcmVjdGl2ZT47XG4gICAgcHJpdmF0ZSBkZXN0cm95JDogU3ViamVjdDxib29sZWFuPiA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLFxuICAgICAgICBwcml2YXRlIGV1aU1lc3NhZ2VCb3hTZXJ2aWNlOiBFdWlNZXNzYWdlQm94U2VydmljZSxcbiAgICApIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuZXVpUHJpbWFyeSkge1xuICAgICAgICAgICAgdGhpcy50eXBlQ2xhc3MgPSAncHJpbWFyeSc7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuZXVpU2Vjb25kYXJ5KSB7XG4gICAgICAgICAgICB0aGlzLnR5cGVDbGFzcyA9ICdzZWNvbmRhcnknO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmV1aUluZm8pIHtcbiAgICAgICAgICAgIHRoaXMudHlwZUNsYXNzID0gJ2luZm8nO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmV1aVN1Y2Nlc3MpIHtcbiAgICAgICAgICAgIHRoaXMudHlwZUNsYXNzID0gJ3N1Y2Nlc3MnO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmV1aVdhcm5pbmcpIHtcbiAgICAgICAgICAgIHRoaXMudHlwZUNsYXNzID0gJ3dhcm5pbmcnO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmV1aURhbmdlcikge1xuICAgICAgICAgICAgdGhpcy50eXBlQ2xhc3MgPSAnZGFuZ2VyJztcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5ldWlBY2NlbnQpIHtcbiAgICAgICAgICAgIHRoaXMudHlwZUNsYXNzID0gJ2FjY2VudCc7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMudGVtcGxhdGVQb3J0YWxDb250ZW50ID0gbmV3IFRlbXBsYXRlUG9ydGFsKHRoaXMudGVtcGxhdGVSZWZDb250ZW50LCB0aGlzLnZpZXdDb250YWluZXJSZWYpO1xuXG4gICAgICAgIGlmICh0aGlzLmV1aU1lc3NhZ2VCb3hGb290ZXJEaXJlY3RpdmUpIHtcbiAgICAgICAgICAgIHRoaXMudGVtcGxhdGVQb3J0YWxGb290ZXIgPSBuZXcgVGVtcGxhdGVQb3J0YWwodGhpcy50ZW1wbGF0ZVJlZkZvb3RlciwgdGhpcy52aWV3Q29udGFpbmVyUmVmKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLm5leHQodHJ1ZSk7XG4gICAgICAgIHRoaXMuZGVzdHJveSQudW5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBPcGVuIGEgTWVzc2FnZSBCb3guXG4gICAgICovXG4gICAgcHVibGljIG9wZW5NZXNzYWdlQm94PEhDLCBIQ0MsIEJDLCBCQ0MsIEZDLCBGQ0M+KCk6IHZvaWQge1xuICAgICAgICBjb25zdCBjb25maWc6IEV1aURpYWxvZ0ludGVyZmFjZTxIQywgSENDLCBCQywgQkNDLCBGQywgRkNDPiA9IHtcbiAgICAgICAgICAgIGUyZUF0dHI6IHRoaXMuZTJlQXR0cixcbiAgICAgICAgICAgIHRpdGxlOiB0aGlzLnRpdGxlLFxuICAgICAgICAgICAgd2lkdGg6IHRoaXMud2lkdGgsXG4gICAgICAgICAgICBoZWlnaHQ6IHRoaXMuaGVpZ2h0LFxuICAgICAgICAgICAgdHlwZUNsYXNzOiB0aGlzLnR5cGVDbGFzcyxcbiAgICAgICAgICAgIGFjY2VwdExhYmVsOiB0aGlzLmFjY2VwdExhYmVsLFxuICAgICAgICAgICAgZGlzbWlzc0xhYmVsOiB0aGlzLmRpc21pc3NMYWJlbCxcbiAgICAgICAgICAgIGhhc0Nsb3NlQnV0dG9uOiBmYWxzZSxcbiAgICAgICAgICAgIGhhc0FjY2VwdEJ1dHRvbjogdGhpcy5oYXNBY2NlcHRCdXR0b24sXG4gICAgICAgICAgICBoYXNEaXNtaXNzQnV0dG9uOiB0aGlzLmhhc0Rpc21pc3NCdXR0b24sXG4gICAgICAgICAgICBpc0Nsb3NlZE9uQ2xpY2tPdXRzaWRlOiBmYWxzZSxcbiAgICAgICAgICAgIGlzQ2xvc2VkT25Fc2NhcGU6IHRoaXMuaXNDbG9zZWRPbkVzY2FwZSxcbiAgICAgICAgICAgIGlzSGFuZGxlQ2xvc2VPbkRpc21pc3M6IHRoaXMuaXNIYW5kbGVDbG9zZU9uRGlzbWlzcyxcbiAgICAgICAgICAgIGlzSGFuZGxlQ2xvc2VPbkNsb3NlOiB0aGlzLmlzSGFuZGxlQ2xvc2VPbkNsb3NlLFxuICAgICAgICAgICAgaXNIYW5kbGVDbG9zZU9uQWNjZXB0OiB0aGlzLmlzSGFuZGxlQ2xvc2VPbkFjY2VwdCxcbiAgICAgICAgICAgIGlzSGFuZGxlQ2xvc2VPbkNsaWNrT3V0c2lkZTogZmFsc2UsXG4gICAgICAgICAgICBpc0hhbmRsZUNsb3NlT25Fc2NhcGU6IGZhbHNlLFxuICAgICAgICAgICAgaXNEcmFnZ2FibGU6IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh0aGlzLmlzRHJhZ2dhYmxlKSxcbiAgICAgICAgICAgIGhhc05vQm9keVBhZGRpbmc6IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh0aGlzLmhhc05vQm9keVBhZGRpbmcpLFxuICAgICAgICAgICAgY29udGVudDogdGhpcy50ZW1wbGF0ZVBvcnRhbENvbnRlbnQsXG4gICAgICAgICAgICBmb290ZXI6IHRoaXMudGVtcGxhdGVQb3J0YWxGb290ZXIsXG4gICAgICAgICAgICBpc01lc3NhZ2VCb3g6IHRydWUsXG4gICAgICAgICAgICBvcGVuOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5tZXNzYWdlQm94b3Blbi5lbWl0KCk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgY2xvc2U6ICgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLm1lc3NhZ2VCb3hDbG9zZS5lbWl0KCk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZGlzbWlzczogKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuZGlzbWlzcy5lbWl0KCk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgYWNjZXB0OiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5hY2NlcHQuZW1pdCgpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgfTtcblxuICAgICAgICB0aGlzLmV1aU1lc3NhZ2VCb3hTZXJ2aWNlLm9wZW5NZXNzYWdlQm94KGNvbmZpZyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2xvc2UgYSBNZXNzYWdlIEJveC5cbiAgICAgKi9cbiAgICBwdWJsaWMgY2xvc2VNZXNzYWdlQm94KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmV1aU1lc3NhZ2VCb3hTZXJ2aWNlLmNsb3NlTWVzc2FnZUJveCgpO1xuICAgIH1cbn1cblxuLyogZXNsaW50LWRpc2FibGUgKi9cbkBEaXJlY3RpdmUoeyBzZWxlY3RvcjogJ2V1aS1tZXNzYWdlLWJveC1mb290ZXInIH0pXG5leHBvcnQgY2xhc3MgRXVpTWVzc2FnZUJveEZvb3RlckRpcmVjdGl2ZSB7fVxuLyogZXNsaW50LWVuYWJsZSAqL1xuIiwiPG5nLXRlbXBsYXRlICN0ZW1wbGF0ZVJlZkNvbnRlbnQ+XG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuPC9uZy10ZW1wbGF0ZT5cbjxuZy10ZW1wbGF0ZSAjdGVtcGxhdGVSZWZGb290ZXI+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiZXVpLW1lc3NhZ2UtYm94LWZvb3RlclwiPjwvbmctY29udGVudD5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
237
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXVpLW1lc3NhZ2UtYm94LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2V1aS1tZXNzYWdlLWJveC9ldWktbWVzc2FnZS1ib3guY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vZXVpLW1lc3NhZ2UtYm94L2V1aS1tZXNzYWdlLWJveC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUNULHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsS0FBSyxFQUNMLFNBQVMsRUFLVCxNQUFNLEVBQ04sWUFBWSxFQUNaLFNBQVMsRUFDVCxZQUFZLEVBQ1osVUFBVSxHQUliLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxxQkFBcUIsRUFBZ0IsTUFBTSx1QkFBdUIsQ0FBQztBQUM1RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7OztBQVd2RCxNQUFNLE9BQU8sc0JBQXVCLFNBQVEsYUFBYTtJQUtyRCxJQUNJLGVBQWU7UUFDZixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztJQUNqQyxDQUFDO0lBQ0QsSUFBSSxlQUFlLENBQUMsS0FBbUI7UUFDbkMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFDRCxJQUNJLGdCQUFnQjtRQUNoQixPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztJQUNsQyxDQUFDO0lBQ0QsSUFBSSxnQkFBZ0IsQ0FBQyxLQUFtQjtRQUNwQyxJQUFJLENBQUMsaUJBQWlCLEdBQUcscUJBQXFCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUlELElBQ0ksc0JBQXNCO1FBQ3RCLE9BQU8sSUFBSSxD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Q0FBQzs7QUErR2hFLG9CQUFvQjtBQUVwQixNQUFNLE9BQU8sNEJBQTRCO2lJQUE1Qiw0QkFBNEI7cUhBQTVCLDRCQUE0Qjs7MkZBQTVCLDRCQUE0QjtrQkFEeEMsU0FBUzttQkFBQyxFQUFFLFFBQVEsRUFBRSx3QkFBd0IsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ29tcG9uZW50LFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uLFxuICAgIElucHV0LFxuICAgIFZpZXdDaGlsZCxcbiAgICBUZW1wbGF0ZVJlZixcbiAgICBWaWV3Q29udGFpbmVyUmVmLFxuICAgIEFmdGVyVmlld0luaXQsXG4gICAgT25EZXN0cm95LFxuICAgIE91dHB1dCxcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgRGlyZWN0aXZlLFxuICAgIENvbnRlbnRDaGlsZCxcbiAgICBmb3J3YXJkUmVmLFxuICAgIFF1ZXJ5TGlzdCxcbiAgICBFbGVtZW50UmVmLFxuICAgIE9uSW5pdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUZW1wbGF0ZVBvcnRhbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5LCBCb29sZWFuSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuaW1wb3J0IHsgQmFzZURpcmVjdGl2ZSB9IGZyb20gJ0BldWkvY29tcG9uZW50cy9zaGFyZWQnO1xuaW1wb3J0IHsgRXVpRGlhbG9nSW50ZXJmYWNlIH0gZnJvbSAnQGV1aS9jb21wb25lbnRzL2V1aS1kaWFsb2cnO1xuXG5pbXBvcnQgeyBFdWlNZXNzYWdlQm94U2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvZXVpLW1lc3NhZ2UtYm94LnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2V1aS1tZXNzYWdlLWJveCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2V1aS1tZXNzYWdlLWJveC5jb21wb25lbnQuaHRtbCcsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbn0pXG5leHBvcnQgY2xhc3MgRXVpTWVzc2FnZUJveENvbXBvbmVudCBleHRlbmRzIEJhc2VEaXJlY3RpdmUgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3ksIE9uSW5pdCB7XG4gICAgQElucHV0KCkgZTJlQXR0ciA9ICdldWktZGlhbG9nJztcbiAgICBASW5wdXQoKSB0aXRsZTogc3RyaW5nO1xuICAgIEBJbnB1dCgpIHdpZHRoID0gJzMzcmVtJztcbiAgICBASW5wdXQoKSBoZWlnaHQgPSAnYXV0byc7XG4gICAgQElucHV0KClcbiAgICBnZXQgaGFzQWNjZXB0QnV0dG9uKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faGFzQWNjZXB0QnV0dG9uO1xuICAgIH1cbiAgICBzZXQgaGFzQWNjZXB0QnV0dG9uKHZhbHVlOiBCb29sZWFuSW5wdXQpIHtcbiAgICAgICAgdGhpcy5faGFzQWNjZXB0QnV0dG9uID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICB9XG4gICAgQElucHV0KClcbiAgICBnZXQgaGFzRGlzbWlzc0J1dHRvbigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2hhc0Rpc21pc3NCdXR0b247XG4gICAgfVxuICAgIHNldCBoYXNEaXNtaXNzQnV0dG9uKHZhbHVlOiBCb29sZWFuSW5wdXQpIHtcbiAgICAgICAgdGhpcy5faGFzRGlzbWlzc0J1dHRvbiA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgfVxuICAgIEBJbnB1dCgpIGFjY2VwdExhYmVsID0gJ2V1aS5PSyc7XG4gICAgQElucHV0KCkgZGlzbWlzc0xhYmVsID0gJ2V1aS5DQU5DRUwnO1xuICAgIEBJbnB1dCgpIHR5cGVDbGFzczogJ3ByaW1hcnknIHwgJ3NlY29uZGFyeScgfCAnaW5mbycgfCAnc3VjY2VzcycgfCAnd2FybmluZycgfCAnZGFuZ2VyJyB8ICdhY2NlbnQnID0gJ3ByaW1hcnknO1xuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGlzSGFuZGxlQ2xvc2VPbkRpc21pc3MoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc0hhbmRsZUNsb3NlT25EaXNtaXNzO1xuICAgIH1cbiAgICBzZXQgaXNIYW5kbGVDbG9zZU9uRGlzbWlzcyh2YWx1ZTogQm9vbGVhbklucHV0KSB7XG4gICAgICAgIHRoaXMuX2lzSGFuZGxlQ2xvc2VPbkRpc21pc3MgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIH1cbiAgICBASW5wdXQoKVxuICAgIGdldCBpc0hhbmRsZUNsb3NlT25DbG9zZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzSGFuZGxlQ2xvc2VPbkNsb3NlO1xuICAgIH1cbiAgICBzZXQgaXNIYW5kbGVDbG9zZU9uQ2xvc2UodmFsdWU6IEJvb2xlYW5JbnB1dCkge1xuICAgICAgICB0aGlzLl9pc0hhbmRsZUNsb3NlT25DbG9zZSA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgfVxuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGlzSGFuZGxlQ2xvc2VPbkFjY2VwdCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzSGFuZGxlQ2xvc2VPbkFjY2VwdDtcbiAgICB9XG4gICAgc2V0IGlzSGFuZGxlQ2xvc2VPbkFjY2VwdCh2YWx1ZTogQm9vbGVhbklucHV0KSB7XG4gICAgICAgIHRoaXMuX2lzSGFuZGxlQ2xvc2VPbkFjY2VwdCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgfVxuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGlzRHJhZ2dhYmxlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faXNEcmFnZ2FibGU7XG4gICAgfVxuXG4gICAgc2V0IGlzRHJhZ2dhYmxlKHZhbHVlOiBCb29sZWFuSW5wdXQpIHtcbiAgICAgICAgdGhpcy5faXNEcmFnZ2FibGUgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIH1cbiAgICBASW5wdXQoKVxuICAgIGdldCBoYXNOb0JvZHlQYWRkaW5nKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faGFzTm9Cb2R5UGFkZGluZztcbiAgICB9XG4gICAgc2V0IGhhc05vQm9keVBhZGRpbmcodmFsdWU6IEJvb2xlYW5JbnB1dCkge1xuICAgICAgICB0aGlzLl9oYXNOb0JvZHlQYWRkaW5nID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQGRlcHJlY2F0ZWQgZXVpLW1lc3NhZ2UtYm94IGlzIGFsd2F5cyBjbG9zZWQgb24gZXNjYXBlLCBmb3IgYWNjZXNzaWJpbGl0eSByZWFzb25zLiBUaGlzIGlucHV0IGhhcyBubyBlZmZlY3QuXG4gICAgICogVG8gYmUgcmVtb3ZlZCBpbiBlVUktMThcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGdldCBpc0Nsb3NlZE9uRXNjYXBlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faXNDbG9zZWRPbkVzY2FwZTtcbiAgICB9XG4gICAgc2V0IGlzQ2xvc2VkT25Fc2NhcGUodmFsdWU6IEJvb2xlYW5JbnB1dCkge1xuICAgICAgICB0aGlzLl9pc0Nsb3NlZE9uRXNjYXBlID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAZGVwcmVjYXRlZCBtZXNzYWdlQm94b3BlbiBpcyBkZXByZWNhdGVkLCBwbGVhc2UgdXNlIG1lc3NhZ2VCb3hPcGVuIGluc3RlYWQuXG4gICAgICogVG8gYmUgcmVtb3ZlZCBpbiBlVUktMThcbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgbWVzc2FnZUJveG9wZW4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQE91dHB1dCgpIG1lc3NhZ2VCb3hPcGVuID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIEBPdXRwdXQoKSBtZXNzYWdlQm94Q2xvc2UgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQE91dHB1dCgpIGRpc21pc3MgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQE91dHB1dCgpIGFjY2VwdCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBwdWJsaWMgY29udGVudDogc3RyaW5nIHwgVGVtcGxhdGVQb3J0YWw7XG5cbiAgICBAVmlld0NoaWxkKCd0ZW1wbGF0ZVJlZkNvbnRlbnQnKSB0ZW1wbGF0ZVJlZkNvbnRlbnQ6IFRlbXBsYXRlUmVmPEVsZW1lbnRSZWY+O1xuICAgIEBWaWV3Q2hpbGQoJ3RlbXBsYXRlUmVmRm9vdGVyJykgdGVtcGxhdGVSZWZGb290ZXI6IFRlbXBsYXRlUmVmPEV1aU1lc3NhZ2VCb3hGb290ZXJEaXJlY3RpdmU+O1xuICAgIEBDb250ZW50Q2hpbGQoZm9yd2FyZFJlZigoKSA9PiBFdWlNZXNzYWdlQm94Rm9vdGVyRGlyZWN0aXZlKSkgZXVpTWVzc2FnZUJveEZvb3RlckRpcmVjdGl2ZTogUXVlcnlMaXN0PEV1aU1lc3NhZ2VCb3hGb290ZXJEaXJlY3RpdmU+O1xuXG4gICAgcHJpdmF0ZSBfaGFzQWNjZXB0QnV0dG9uID0gdHJ1ZTtcbiAgICBwcml2YXRlIF9oYXNEaXNtaXNzQnV0dG9uID0gdHJ1ZTtcbiAgICBwcml2YXRlIF9pc0hhbmRsZUNsb3NlT25EaXNtaXNzID0gZmFsc2U7XG4gICAgcHJpdmF0ZSBfaXNIYW5kbGVDbG9zZU9uQ2xvc2UgPSBmYWxzZTtcbiAgICBwcml2YXRlIF9pc0hhbmRsZUNsb3NlT25BY2NlcHQgPSBmYWxzZTtcbiAgICBwcml2YXRlIF9pc0RyYWdnYWJsZSA9IGZhbHNlO1xuICAgIHByaXZhdGUgX2hhc05vQm9keVBhZGRpbmcgPSBmYWxzZTtcbiAgICBwcml2YXRlIF9pc0Nsb3NlZE9uRXNjYXBlID0gdHJ1ZTtcbiAgICBwcml2YXRlIHRlbXBsYXRlUG9ydGFsQ29udGVudDogVGVtcGxhdGVQb3J0YWw8RWxlbWVudFJlZj47XG4gICAgcHJpdmF0ZSB0ZW1wbGF0ZVBvcnRhbEZvb3RlcjogVGVtcGxhdGVQb3J0YWw8RXVpTWVzc2FnZUJveEZvb3RlckRpcmVjdGl2ZT47XG4gICAgcHJpdmF0ZSBkZXN0cm95JDogU3ViamVjdDxib29sZWFuPiA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLFxuICAgICAgICBwcml2YXRlIGV1aU1lc3NhZ2VCb3hTZXJ2aWNlOiBFdWlNZXNzYWdlQm94U2VydmljZSxcbiAgICApIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuZXVpUHJpbWFyeSkge1xuICAgICAgICAgICAgdGhpcy50eXBlQ2xhc3MgPSAncHJpbWFyeSc7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuZXVpU2Vjb25kYXJ5KSB7XG4gICAgICAgICAgICB0aGlzLnR5cGVDbGFzcyA9ICdzZWNvbmRhcnknO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmV1aUluZm8pIHtcbiAgICAgICAgICAgIHRoaXMudHlwZUNsYXNzID0gJ2luZm8nO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmV1aVN1Y2Nlc3MpIHtcbiAgICAgICAgICAgIHRoaXMudHlwZUNsYXNzID0gJ3N1Y2Nlc3MnO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmV1aVdhcm5pbmcpIHtcbiAgICAgICAgICAgIHRoaXMudHlwZUNsYXNzID0gJ3dhcm5pbmcnO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmV1aURhbmdlcikge1xuICAgICAgICAgICAgdGhpcy50eXBlQ2xhc3MgPSAnZGFuZ2VyJztcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5ldWlBY2NlbnQpIHtcbiAgICAgICAgICAgIHRoaXMudHlwZUNsYXNzID0gJ2FjY2VudCc7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMudGVtcGxhdGVQb3J0YWxDb250ZW50ID0gbmV3IFRlbXBsYXRlUG9ydGFsKHRoaXMudGVtcGxhdGVSZWZDb250ZW50LCB0aGlzLnZpZXdDb250YWluZXJSZWYpO1xuXG4gICAgICAgIGlmICh0aGlzLmV1aU1lc3NhZ2VCb3hGb290ZXJEaXJlY3RpdmUpIHtcbiAgICAgICAgICAgIHRoaXMudGVtcGxhdGVQb3J0YWxGb290ZXIgPSBuZXcgVGVtcGxhdGVQb3J0YWwodGhpcy50ZW1wbGF0ZVJlZkZvb3RlciwgdGhpcy52aWV3Q29udGFpbmVyUmVmKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLm5leHQodHJ1ZSk7XG4gICAgICAgIHRoaXMuZGVzdHJveSQudW5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBPcGVuIGEgTWVzc2FnZSBCb3guXG4gICAgICovXG4gICAgcHVibGljIG9wZW5NZXNzYWdlQm94PEhDLCBIQ0MsIEJDLCBCQ0MsIEZDLCBGQ0M+KCk6IHZvaWQge1xuICAgICAgICBjb25zdCBjb25maWc6IEV1aURpYWxvZ0ludGVyZmFjZTxIQywgSENDLCBCQywgQkNDLCBGQywgRkNDPiA9IHtcbiAgICAgICAgICAgIGUyZUF0dHI6IHRoaXMuZTJlQXR0cixcbiAgICAgICAgICAgIHRpdGxlOiB0aGlzLnRpdGxlLFxuICAgICAgICAgICAgd2lkdGg6IHRoaXMud2lkdGgsXG4gICAgICAgICAgICBoZWlnaHQ6IHRoaXMuaGVpZ2h0LFxuICAgICAgICAgICAgdHlwZUNsYXNzOiB0aGlzLnR5cGVDbGFzcyxcbiAgICAgICAgICAgIGFjY2VwdExhYmVsOiB0aGlzLmFjY2VwdExhYmVsLFxuICAgICAgICAgICAgZGlzbWlzc0xhYmVsOiB0aGlzLmRpc21pc3NMYWJlbCxcbiAgICAgICAgICAgIGhhc0Nsb3NlQnV0dG9uOiBmYWxzZSxcbiAgICAgICAgICAgIGhhc0FjY2VwdEJ1dHRvbjogdGhpcy5oYXNBY2NlcHRCdXR0b24sXG4gICAgICAgICAgICBoYXNEaXNtaXNzQnV0dG9uOiB0aGlzLmhhc0Rpc21pc3NCdXR0b24sXG4gICAgICAgICAgICBpc0Nsb3NlZE9uQ2xpY2tPdXRzaWRlOiBmYWxzZSxcbiAgICAgICAgICAgIGlzQ2xvc2VkT25Fc2NhcGU6IHRydWUsXG4gICAgICAgICAgICBpc0hhbmRsZUNsb3NlT25EaXNtaXNzOiB0aGlzLmlzSGFuZGxlQ2xvc2VPbkRpc21pc3MsXG4gICAgICAgICAgICBpc0hhbmRsZUNsb3NlT25DbG9zZTogdGhpcy5pc0hhbmRsZUNsb3NlT25DbG9zZSxcbiAgICAgICAgICAgIGlzSGFuZGxlQ2xvc2VPbkFjY2VwdDogdGhpcy5pc0hhbmRsZUNsb3NlT25BY2NlcHQsXG4gICAgICAgICAgICBpc0hhbmRsZUNsb3NlT25DbGlja091dHNpZGU6IGZhbHNlLFxuICAgICAgICAgICAgaXNIYW5kbGVDbG9zZU9uRXNjYXBlOiBmYWxzZSxcbiAgICAgICAgICAgIGlzRHJhZ2dhYmxlOiBjb2VyY2VCb29sZWFuUHJvcGVydHkodGhpcy5pc0RyYWdnYWJsZSksXG4gICAgICAgICAgICBoYXNOb0JvZHlQYWRkaW5nOiBjb2VyY2VCb29sZWFuUHJvcGVydHkodGhpcy5oYXNOb0JvZHlQYWRkaW5nKSxcbiAgICAgICAgICAgIGNvbnRlbnQ6IHRoaXMudGVtcGxhdGVQb3J0YWxDb250ZW50LFxuICAgICAgICAgICAgZm9vdGVyOiB0aGlzLnRlbXBsYXRlUG9ydGFsRm9vdGVyLFxuICAgICAgICAgICAgaXNNZXNzYWdlQm94OiB0cnVlLFxuICAgICAgICAgICAgb3BlbjogKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMubWVzc2FnZUJveG9wZW4uZW1pdCgpO1xuICAgICAgICAgICAgICAgIHRoaXMubWVzc2FnZUJveE9wZW4uZW1pdCgpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGNsb3NlOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5tZXNzYWdlQm94Q2xvc2UuZW1pdCgpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGRpc21pc3M6ICgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmRpc21pc3MuZW1pdCgpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGFjY2VwdDogKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuYWNjZXB0LmVtaXQoKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH07XG5cbiAgICAgICAgdGhpcy5ldWlNZXNzYWdlQm94U2VydmljZS5vcGVuTWVzc2FnZUJveChjb25maWcpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENsb3NlIGEgTWVzc2FnZSBCb3guXG4gICAgICovXG4gICAgcHVibGljIGNsb3NlTWVzc2FnZUJveCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5ldWlNZXNzYWdlQm94U2VydmljZS5jbG9zZU1lc3NhZ2VCb3goKTtcbiAgICB9XG59XG5cbi8qIGVzbGludC1kaXNhYmxlICovXG5ARGlyZWN0aXZlKHsgc2VsZWN0b3I6ICdldWktbWVzc2FnZS1ib3gtZm9vdGVyJyB9KVxuZXhwb3J0IGNsYXNzIEV1aU1lc3NhZ2VCb3hGb290ZXJEaXJlY3RpdmUge31cbi8qIGVzbGludC1lbmFibGUgKi9cbiIsIjxuZy10ZW1wbGF0ZSAjdGVtcGxhdGVSZWZDb250ZW50PlxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbjwvbmctdGVtcGxhdGU+XG48bmctdGVtcGxhdGUgI3RlbXBsYXRlUmVmRm9vdGVyPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImV1aS1tZXNzYWdlLWJveC1mb290ZXJcIj48L25nLWNvbnRlbnQ+XG48L25nLXRlbXBsYXRlPlxuIl19
|