@ng-nest/ui 14.0.2 → 14.0.5
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/auto-complete/auto-complete.component.d.ts +1 -1
- package/base-form/base-form.component.d.ts +6 -3
- package/button/button.property.d.ts +11 -1
- package/cascade/cascade.component.d.ts +1 -1
- package/color-picker/color-picker.component.d.ts +1 -1
- package/core/config/config.d.ts +5 -0
- package/date-picker/date-picker.component.d.ts +1 -1
- package/date-picker/date-range.component.d.ts +1 -1
- package/dialog/dialog.module.d.ts +2 -1
- package/dialog/dialog.property.d.ts +2 -0
- package/dropdown/dropdown-portal.component.d.ts +3 -0
- package/dropdown/dropdown.property.d.ts +16 -1
- package/esm2020/auto-complete/auto-complete.component.mjs +1 -1
- package/esm2020/base-form/base-form.component.mjs +11 -3
- package/esm2020/button/button.component.mjs +3 -3
- package/esm2020/button/button.property.mjs +7 -2
- package/esm2020/cascade/cascade.component.mjs +4 -3
- package/esm2020/checkbox/checkbox.component.mjs +4 -3
- package/esm2020/color-picker/color-picker-portal.component.mjs +3 -3
- package/esm2020/color-picker/color-picker.component.mjs +4 -3
- package/esm2020/core/config/config.mjs +1 -1
- package/esm2020/date-picker/date-picker.component.mjs +4 -3
- package/esm2020/date-picker/date-range.component.mjs +1 -1
- package/esm2020/dialog/dialog.module.mjs +8 -4
- package/esm2020/dialog/dialog.property.mjs +1 -1
- package/esm2020/dropdown/dropdown-portal.component.mjs +6 -3
- package/esm2020/dropdown/dropdown.component.mjs +4 -1
- package/esm2020/dropdown/dropdown.property.mjs +8 -2
- package/esm2020/find/find.component.mjs +7 -4
- package/esm2020/form/control.component.mjs +37 -25
- package/esm2020/form/form.component.mjs +15 -3
- package/esm2020/form/form.module.mjs +6 -3
- package/esm2020/form/form.property.mjs +10 -3
- package/esm2020/i18n/i18n.property.mjs +1 -1
- package/esm2020/i18n/languages/en_US.mjs +6 -2
- package/esm2020/i18n/languages/zh_CN.mjs +6 -2
- package/esm2020/i18n/languages/zh_TW.mjs +6 -2
- package/esm2020/input/input.component.mjs +21 -9
- package/esm2020/input/input.property.mjs +24 -2
- package/esm2020/input-number/input-number.component.mjs +3 -3
- package/esm2020/list/list.component.mjs +13 -13
- package/esm2020/radio/radio.component.mjs +4 -3
- package/esm2020/rate/rate.component.mjs +8 -3
- package/esm2020/select/select-portal.component.mjs +7 -5
- package/esm2020/select/select.component.mjs +235 -31
- package/esm2020/select/select.module.mjs +35 -4
- package/esm2020/select/select.property.mjs +14 -3
- package/esm2020/slider/slider.component.mjs +27 -7
- package/esm2020/slider/slider.module.mjs +5 -4
- package/esm2020/slider/slider.property.mjs +13 -2
- package/esm2020/slider-select/slider-select.component.mjs +6 -5
- package/esm2020/switch/switch.component.mjs +1 -1
- package/esm2020/table/table-body.component.mjs +13 -9
- package/esm2020/table/table-head.component.mjs +4 -4
- package/esm2020/table/table.component.mjs +23 -5
- package/esm2020/table/table.property.mjs +16 -3
- package/esm2020/tabs/tabs.component.mjs +45 -15
- package/esm2020/tabs/tabs.module.mjs +5 -4
- package/esm2020/tabs/tabs.property.mjs +15 -2
- package/esm2020/tag/tag.component.mjs +5 -5
- package/esm2020/tag/tag.property.mjs +1 -1
- package/esm2020/textarea/textarea.component.mjs +3 -3
- package/esm2020/textarea/textarea.property.mjs +1 -6
- package/esm2020/theme/theme.component.mjs +1 -1
- package/esm2020/time-picker/time-picker.component.mjs +4 -3
- package/esm2020/timeline/timeline.component.mjs +11 -5
- package/esm2020/timeline/timeline.property.mjs +7 -2
- package/esm2020/transfer/transfer.component.mjs +1 -1
- package/esm2020/upload/upload.component.mjs +1 -1
- package/fesm2015/ng-nest-ui-auto-complete.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-base-form.mjs +10 -2
- package/fesm2015/ng-nest-ui-base-form.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-button.mjs +8 -3
- package/fesm2015/ng-nest-ui-button.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-cascade.mjs +3 -2
- package/fesm2015/ng-nest-ui-cascade.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-checkbox.mjs +3 -2
- package/fesm2015/ng-nest-ui-checkbox.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-color-picker.mjs +5 -4
- package/fesm2015/ng-nest-ui-color-picker.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-core.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-date-picker.mjs +3 -2
- package/fesm2015/ng-nest-ui-date-picker.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-dialog.mjs +7 -3
- package/fesm2015/ng-nest-ui-dialog.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-dropdown.mjs +15 -3
- package/fesm2015/ng-nest-ui-dropdown.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-find.mjs +6 -3
- package/fesm2015/ng-nest-ui-find.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-form.mjs +65 -30
- package/fesm2015/ng-nest-ui-form.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-i18n.mjs +15 -3
- package/fesm2015/ng-nest-ui-i18n.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-input-number.mjs +2 -2
- package/fesm2015/ng-nest-ui-input-number.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-input.mjs +43 -9
- package/fesm2015/ng-nest-ui-input.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-list.mjs +12 -12
- package/fesm2015/ng-nest-ui-list.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-radio.mjs +3 -2
- package/fesm2015/ng-nest-ui-radio.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-rate.mjs +7 -2
- package/fesm2015/ng-nest-ui-rate.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-select.mjs +289 -39
- package/fesm2015/ng-nest-ui-select.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-slider-select.mjs +5 -4
- package/fesm2015/ng-nest-ui-slider-select.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-slider.mjs +43 -11
- package/fesm2015/ng-nest-ui-slider.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-switch.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-table.mjs +56 -20
- package/fesm2015/ng-nest-ui-table.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-tabs.mjs +63 -18
- package/fesm2015/ng-nest-ui-tabs.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-tag.mjs +4 -4
- package/fesm2015/ng-nest-ui-tag.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-textarea.mjs +2 -7
- package/fesm2015/ng-nest-ui-textarea.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-theme.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-time-picker.mjs +3 -2
- package/fesm2015/ng-nest-ui-time-picker.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-timeline.mjs +16 -5
- package/fesm2015/ng-nest-ui-timeline.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-transfer.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-upload.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-auto-complete.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-base-form.mjs +10 -2
- package/fesm2020/ng-nest-ui-base-form.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-button.mjs +8 -3
- package/fesm2020/ng-nest-ui-button.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-cascade.mjs +3 -2
- package/fesm2020/ng-nest-ui-cascade.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-checkbox.mjs +3 -2
- package/fesm2020/ng-nest-ui-checkbox.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-color-picker.mjs +5 -4
- package/fesm2020/ng-nest-ui-color-picker.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-core.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-date-picker.mjs +3 -2
- package/fesm2020/ng-nest-ui-date-picker.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-dialog.mjs +7 -3
- package/fesm2020/ng-nest-ui-dialog.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-dropdown.mjs +15 -3
- package/fesm2020/ng-nest-ui-dropdown.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-find.mjs +6 -3
- package/fesm2020/ng-nest-ui-find.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-form.mjs +64 -30
- package/fesm2020/ng-nest-ui-form.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-i18n.mjs +15 -3
- package/fesm2020/ng-nest-ui-i18n.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-input-number.mjs +2 -2
- package/fesm2020/ng-nest-ui-input-number.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-input.mjs +43 -9
- package/fesm2020/ng-nest-ui-input.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-list.mjs +12 -12
- package/fesm2020/ng-nest-ui-list.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-radio.mjs +3 -2
- package/fesm2020/ng-nest-ui-radio.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-rate.mjs +7 -2
- package/fesm2020/ng-nest-ui-rate.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-select.mjs +286 -39
- package/fesm2020/ng-nest-ui-select.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-slider-select.mjs +5 -4
- package/fesm2020/ng-nest-ui-slider-select.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-slider.mjs +43 -11
- package/fesm2020/ng-nest-ui-slider.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-switch.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-table.mjs +52 -17
- package/fesm2020/ng-nest-ui-table.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-tabs.mjs +62 -18
- package/fesm2020/ng-nest-ui-tabs.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-tag.mjs +4 -4
- package/fesm2020/ng-nest-ui-tag.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-textarea.mjs +2 -7
- package/fesm2020/ng-nest-ui-textarea.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-theme.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-time-picker.mjs +3 -2
- package/fesm2020/ng-nest-ui-time-picker.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-timeline.mjs +16 -5
- package/fesm2020/ng-nest-ui-timeline.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-transfer.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-upload.mjs.map +1 -1
- package/find/find.component.d.ts +1 -1
- package/form/control.component.d.ts +6 -3
- package/form/examples/en_US/default/form-vaild/README.md +8 -0
- package/form/examples/zh_CN/default/form-vaild/README.md +8 -0
- package/form/form.component.d.ts +3 -1
- package/form/form.module.d.ts +2 -1
- package/form/form.property.d.ts +7 -2
- package/i18n/i18n.property.d.ts +6 -0
- package/i18n/languages/en_US.d.ts +4 -0
- package/i18n/languages/zh_CN.d.ts +4 -0
- package/i18n/languages/zh_TW.d.ts +4 -0
- package/input/input.component.d.ts +3 -0
- package/input/input.property.d.ts +26 -1
- package/input-number/input-number.component.d.ts +1 -1
- package/package.json +1 -1
- package/rate/rate.component.d.ts +1 -0
- package/select/select.component.d.ts +26 -5
- package/select/select.module.d.ts +4 -2
- package/select/select.property.d.ts +13 -2
- package/slider/examples/en_US/default/expand/README.md +7 -0
- package/slider/examples/zh_CN/default/expand/README.md +7 -0
- package/slider/slider.component.d.ts +2 -0
- package/slider/slider.module.d.ts +2 -1
- package/slider/slider.property.d.ts +11 -1
- package/slider-select/slider-select.component.d.ts +1 -1
- package/switch/switch.component.d.ts +1 -1
- package/table/examples/en_US/default/head/README.md +6 -0
- package/table/examples/zh_CN/default/head/README.md +6 -0
- package/table/table-body.component.d.ts +1 -1
- package/table/table.component.d.ts +5 -2
- package/table/table.property.d.ts +23 -3
- package/tabs/examples/en_US/default/action/README.md +6 -0
- package/tabs/examples/en_US/default/expand/README.md +6 -0
- package/tabs/examples/zh_CN/default/action/README.md +6 -0
- package/tabs/examples/zh_CN/default/expand/README.md +6 -0
- package/tabs/tabs.component.d.ts +9 -2
- package/tabs/tabs.module.d.ts +3 -2
- package/tabs/tabs.property.d.ts +18 -3
- package/tag/tag.component.d.ts +1 -1
- package/tag/tag.property.d.ts +1 -1
- package/time-picker/time-picker.component.d.ts +1 -1
- package/timeline/examples/en_US/default/mode/README.md +6 -0
- package/timeline/examples/zh_CN/default/mode/README.md +6 -0
- package/timeline/timeline.component.d.ts +1 -0
- package/timeline/timeline.property.d.ts +11 -1
|
@@ -94,6 +94,9 @@ export class XDropdownPortalComponent {
|
|
|
94
94
|
Object.assign(componentRef.instance, {
|
|
95
95
|
data: this.node?.children,
|
|
96
96
|
minWidth: this.minWidth,
|
|
97
|
+
maxWidth: this.maxWidth,
|
|
98
|
+
minHeight: this.minHeight,
|
|
99
|
+
maxHeight: this.maxHeight,
|
|
97
100
|
close: () => this.closePortal(),
|
|
98
101
|
placement: this.portalPlacement,
|
|
99
102
|
positionChange: this.portalPositionChange,
|
|
@@ -144,10 +147,10 @@ export class XDropdownPortalComponent {
|
|
|
144
147
|
}
|
|
145
148
|
}
|
|
146
149
|
/** @nocollapse */ XDropdownPortalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: XDropdownPortalComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1.XPortalService }, { token: i2.Overlay }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
147
|
-
/** @nocollapse */ XDropdownPortalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: XDropdownPortalComponent, selector: "x-dropdown-portal", host: { listeners: { "@x-connect-base-animation.done": "done($event)", "@x-connect-base-animation.start": "start($event)", "mouseenter": "mouseenter()", "mouseleave": "mouseleave()" }, properties: { "@x-connect-base-animation": "this.placement" } }, ngImport: i0, template: "<div
|
|
150
|
+
/** @nocollapse */ XDropdownPortalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: XDropdownPortalComponent, selector: "x-dropdown-portal", host: { listeners: { "@x-connect-base-animation.done": "done($event)", "@x-connect-base-animation.start": "start($event)", "mouseenter": "mouseenter()", "mouseleave": "mouseleave()" }, properties: { "@x-connect-base-animation": "this.placement" } }, ngImport: i0, template: "<div\r\n #dropdownPortal\r\n class=\"x-dropdown-portal\"\r\n [style.minWidth]=\"minWidth\"\r\n [style.maxWidth]=\"maxWidth\"\r\n [style.minHeight]=\"minHeight\"\r\n [style.maxHeight]=\"maxHeight\"\r\n>\r\n <x-list\r\n [data]=\"data\"\r\n (nodeClick)=\"nodeClick($event)\"\r\n [(ngModel)]=\"activatedId\"\r\n (nodeMouseenter)=\"onEnter($event)\"\r\n (nodeMouseleave)=\"onLeave()\"\r\n ></x-list>\r\n</div>\r\n", styles: ["x-dropdown-portal{width:100%}.x-dropdown-portal{margin:.0625rem 0;padding:.325rem 0;background-color:var(--x-background);border:var(--x-border-width) var(--x-border-style) var(--x-border);border-radius:var(--x-border-radius);box-shadow:var(--x-box-shadow) var(--x-box-shadow-light-color);overflow:auto}.x-dropdown-portal-child{margin-top:-.3875rem}\n"], dependencies: [{ kind: "component", type: i3.XListComponent, selector: "x-list" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], animations: [XConnectBaseAnimation], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
148
151
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: XDropdownPortalComponent, decorators: [{
|
|
149
152
|
type: Component,
|
|
150
|
-
args: [{ selector: `${XDropdownPortalPrefix}`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, animations: [XConnectBaseAnimation], template: "<div
|
|
153
|
+
args: [{ selector: `${XDropdownPortalPrefix}`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, animations: [XConnectBaseAnimation], template: "<div\r\n #dropdownPortal\r\n class=\"x-dropdown-portal\"\r\n [style.minWidth]=\"minWidth\"\r\n [style.maxWidth]=\"maxWidth\"\r\n [style.minHeight]=\"minHeight\"\r\n [style.maxHeight]=\"maxHeight\"\r\n>\r\n <x-list\r\n [data]=\"data\"\r\n (nodeClick)=\"nodeClick($event)\"\r\n [(ngModel)]=\"activatedId\"\r\n (nodeMouseenter)=\"onEnter($event)\"\r\n (nodeMouseleave)=\"onLeave()\"\r\n ></x-list>\r\n</div>\r\n", styles: ["x-dropdown-portal{width:100%}.x-dropdown-portal{margin:.0625rem 0;padding:.325rem 0;background-color:var(--x-background);border:var(--x-border-width) var(--x-border-style) var(--x-border);border-radius:var(--x-border-radius);box-shadow:var(--x-box-shadow) var(--x-box-shadow-light-color);overflow:auto}.x-dropdown-portal-child{margin-top:-.3875rem}\n"] }]
|
|
151
154
|
}], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1.XPortalService }, { type: i2.Overlay }, { type: i0.ViewContainerRef }]; }, propDecorators: { placement: [{
|
|
152
155
|
type: HostBinding,
|
|
153
156
|
args: ['@x-connect-base-animation']
|
|
@@ -164,4 +167,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
|
|
|
164
167
|
type: HostListener,
|
|
165
168
|
args: ['mouseleave']
|
|
166
169
|
}] } });
|
|
167
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24tcG9ydGFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYi9uZy1uZXN0L3VpL2Ryb3Bkb3duL2Ryb3Bkb3duLXBvcnRhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvbmctbmVzdC91aS9kcm9wZG93bi9kcm9wZG93bi1wb3J0YWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxpQkFBaUIsRUFFakIsVUFBVSxFQUVWLHVCQUF1QixFQUV2QixZQUFZLEVBRVosV0FBVyxFQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxxQkFBcUIsRUFBbUMsTUFBTSxxQkFBcUIsQ0FBQztBQUM3RixPQUFPLEVBQUUsd0JBQXdCLEVBQXFDLE1BQU0sb0JBQW9CLENBQUM7QUFDakcsT0FBTyxFQUFFLHFCQUFxQixFQUFzQixNQUFNLGtCQUFrQixDQUFDO0FBQzdFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7QUFXM0MsTUFBTSxPQUFPLHdCQUF3QjtJQXFDbkMsWUFDUyxRQUFtQixFQUNuQixVQUFzQixFQUN0QixHQUFzQixFQUNyQixhQUE2QixFQUM3QixPQUFnQixFQUNoQixnQkFBa0M7UUFMbkMsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUNuQixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQ3JCLGtCQUFhLEdBQWIsYUFBYSxDQUFnQjtRQUM3QixZQUFPLEdBQVAsT0FBTyxDQUFTO1FBQ2hCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUF6QjVDLHlCQUFvQixHQUFpQixJQUFJLE9BQU8sRUFBRSxDQUFDO1FBR25ELGFBQVEsR0FBRyxHQUFHLENBQUM7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QUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRUQsT0FBTztRQUNMLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRSxFQUFFO1lBQ3pCLElBQUksQ0FBQyxXQUFXLEdBQUcsVUFBVSxDQUFDLEdBQUcsRUFBRTtnQkFDakMsSUFBSSxDQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLENBQUM7WUFDckMsQ0FBQyxDQUFDLENBQUM7U0FDSjtJQUNILENBQUM7O3dJQWhLVSx3QkFBd0I7NEhBQXhCLHdCQUF3QixtVEMzQnJDLG1SQVNBLGd3QkRnQmMsQ0FBQyxxQkFBcUIsQ0FBQzsyRkFFeEIsd0JBQXdCO2tCQVJwQyxTQUFTOytCQUNFLEdBQUcscUJBQXFCLEVBQUUsaUJBR3JCLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsQ0FBQyxxQkFBcUIsQ0FBQzsyT0FHYyxTQUFTO3NCQUF6RCxXQUFXO3VCQUFDLDJCQUEyQjtnQkFDb0IsSUFBSTtzQkFBL0QsWUFBWTt1QkFBQyxnQ0FBZ0MsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFJRyxLQUFLO3NCQUFqRSxZQUFZO3VCQUFDLGlDQUFpQyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQXVCL0IsVUFBVTtzQkFBckMsWUFBWTt1QkFBQyxZQUFZO2dCQUlFLFVBQVU7c0JBQXJDLFlBQVk7dUJBQUMsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxyXG4gIFJlbmRlcmVyMixcclxuICBFbGVtZW50UmVmLFxyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIE9uRGVzdHJveSxcclxuICBIb3N0TGlzdGVuZXIsXHJcbiAgVmlld0NvbnRhaW5lclJlZixcclxuICBIb3N0QmluZGluZ1xyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBYRHJvcGRvd25Qb3J0YWxQcmVmaXgsIFhEcm9wZG93bk5vZGUsIFhEcm9wZG93blRyaWdnZXIgfSBmcm9tICcuL2Ryb3Bkb3duLnByb3BlcnR5JztcclxuaW1wb3J0IHsgWFBvcnRhbENvbm5lY3RlZFBvc2l0aW9uLCBYUG9ydGFsT3ZlcmxheVJlZiwgWFBvcnRhbFNlcnZpY2UgfSBmcm9tICdAbmctbmVzdC91aS9wb3J0YWwnO1xyXG5pbXBvcnQgeyBYQ29ubmVjdEJhc2VBbmltYXRpb24sIFhQb3NpdGlvblRvcEJvdHRvbSB9IGZyb20gJ0BuZy1uZXN0L3VpL2NvcmUnO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgQ29ubmVjdGVkT3ZlcmxheVBvc2l0aW9uQ2hhbmdlLCBGbGV4aWJsZUNvbm5lY3RlZFBvc2l0aW9uU3RyYXRlZ3ksIE92ZXJsYXksIE92ZXJsYXlDb25maWcgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogYCR7WERyb3Bkb3duUG9ydGFsUHJlZml4fWAsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2Ryb3Bkb3duLXBvcnRhbC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZHJvcGRvd24tcG9ydGFsLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICBhbmltYXRpb25zOiBbWENvbm5lY3RCYXNlQW5pbWF0aW9uXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgWERyb3Bkb3duUG9ydGFsQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcclxuICBASG9zdEJpbmRpbmcoJ0B4LWNvbm5lY3QtYmFzZS1hbmltYXRpb24nKSBwdWJsaWMgcGxhY2VtZW50ITogWFBvc2l0aW9uVG9wQm90dG9tO1xyXG4gIEBIb3N0TGlzdGVuZXIoJ0B4LWNvbm5lY3QtYmFzZS1hbmltYXRpb24uZG9uZScsIFsnJGV2ZW50J10pIGRvbmUoZXZlbnQ6IHsgdG9TdGF0ZTogYW55IH0pIHtcclxuICAgIHRoaXMuYW5pbWF0aW5nKGZhbHNlKTtcclxuICAgIGV2ZW50LnRvU3RhdGUgPT09ICd2b2lkJyAmJiB0aGlzLmRlc3Ryb3lQb3J0YWwoKTtcclxuICB9XHJcbiAgQEhvc3RMaXN0ZW5lcignQHgtY29ubmVjdC1iYXNlLWFuaW1hdGlvbi5zdGFydCcsIFsnJGV2ZW50J10pIHN0YXJ0KCkge1xyXG4gICAgdGhpcy5hbmltYXRpbmcodHJ1ZSk7XHJcbiAgfVxyXG4gIGRhdGEhOiBYRHJvcGRvd25Ob2RlW107XHJcbiAgdHJpZ2dlciE6IFhEcm9wZG93blRyaWdnZXI7XHJcbiAgY2xvc2UhOiBGdW5jdGlvbjtcclxuICBub2RlRW1pdCE6IEZ1bmN0aW9uO1xyXG4gIHBvcnRhbEhvdmVyITogRnVuY3Rpb247XHJcbiAgYW5pbWF0aW5nITogRnVuY3Rpb247XHJcbiAgZGVzdHJveVBvcnRhbCE6IEZ1bmN0aW9uO1xyXG4gIHBvcnRhbCE6IFhQb3J0YWxPdmVybGF5UmVmPFhEcm9wZG93blBvcnRhbENvbXBvbmVudD47XHJcbiAgcG9zaXRpb25DaGFuZ2UhOiBTdWJqZWN0PGFueT47XHJcbiAgcG9ydGFsUG9zaXRpb25DaGFuZ2U6IFN1YmplY3Q8YW55PiA9IG5ldyBTdWJqZWN0KCk7XHJcbiAgbm9kZSE6IFhEcm9wZG93bk5vZGU7XHJcbiAgdGltZW91dEhpZGU6IGFueTtcclxuICB0aW1lc3BhbiA9IDIwMDtcclxuICBtaW5XaWR0aCE6IHN0cmluZyB8IG51bWJlcjtcclxuICBwb3J0YWxQbGFjZW1lbnQhOiBYUG9zaXRpb25Ub3BCb3R0b207XHJcbiAgY2hpbGRBbmltYXRpbmcgPSBmYWxzZTtcclxuICBhY3RpdmF0ZWRJZCE6IGFueTtcclxuICBhY3RpdmF0ZWRJZFN1YiE6IFN1YmplY3Q8YW55PjtcclxuICBwcml2YXRlIF91blN1YmplY3QgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG5cclxuICBASG9zdExpc3RlbmVyKCdtb3VzZWVudGVyJykgbW91c2VlbnRlcigpIHtcclxuICAgIHRoaXMucG9ydGFsSG92ZXIodHJ1ZSk7XHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKCdtb3VzZWxlYXZlJykgbW91c2VsZWF2ZSgpIHtcclxuICAgICF0aGlzLnBvcnRhbEF0dGFjaGVkKCkgJiYgdGhpcy5wb3J0YWxIb3ZlcihmYWxzZSk7XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyByZW5kZXJlcjogUmVuZGVyZXIyLFxyXG4gICAgcHVibGljIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXHJcbiAgICBwdWJsaWMgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIHByaXZhdGUgcG9ydGFsU2VydmljZTogWFBvcnRhbFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIG92ZXJsYXk6IE92ZXJsYXksXHJcbiAgICBwcml2YXRlIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWZcclxuICApIHt9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5wb3NpdGlvbkNoYW5nZS5waXBlKHRha2VVbnRpbCh0aGlzLl91blN1YmplY3QpKS5zdWJzY3JpYmUoKHgpID0+IHtcclxuICAgICAgdGhpcy5wbGFjZW1lbnQgPSB4O1xyXG4gICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHt9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fdW5TdWJqZWN0Lm5leHQoKTtcclxuICAgIHRoaXMuX3VuU3ViamVjdC51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxuXHJcbiAgbm9kZUNsaWNrKG5vZGU6IFhEcm9wZG93bk5vZGUpIHtcclxuICAgIGlmICghbm9kZS5sZWFmKSB7XHJcbiAgICAgIHRoaXMuY2xvc2UoKTtcclxuICAgICAgdGhpcy5hY3RpdmF0ZWRJZCA9IG5vZGUuaWQ7XHJcbiAgICAgIHRoaXMuYWN0aXZhdGVkSWRTdWIubmV4dCh0aGlzLmFjdGl2YXRlZElkKTtcclxuICAgIH1cclxuICAgIHRoaXMubm9kZUVtaXQobm9kZSk7XHJcbiAgfVxyXG5cclxuICBwb3J0YWxBdHRhY2hlZCgpIHtcclxuICAgIHJldHVybiB0aGlzLnBvcnRhbD8ub3ZlcmxheVJlZj8uaGFzQXR0YWNoZWQoKTtcclxuICB9XHJcblxyXG4gIGNsb3NlUG9ydGFsKCkge1xyXG4gICAgaWYgKHRoaXMucG9ydGFsQXR0YWNoZWQoKSkge1xyXG4gICAgICB0aGlzLnBvcnRhbD8ub3ZlcmxheVJlZj8uZGlzcG9zZSgpO1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIGNyZWF0ZVBvcnRhbCgpIHtcclxuICAgIGNvbnN0IGNvbmZpZzogT3ZlcmxheUNvbmZpZyA9IHtcclxuICAgICAgYmFja2Ryb3BDbGFzczogJycsXHJcbiAgICAgIHBhbmVsQ2xhc3M6ICd4LWRyb3Bkb3duLXBvcnRhbC1jaGlsZCcsXHJcbiAgICAgIHBvc2l0aW9uU3RyYXRlZ3k6IHRoaXMuc2V0UGxhY2VtZW50KCksXHJcbiAgICAgIHNjcm9sbFN0cmF0ZWd5OiB0aGlzLm92ZXJsYXkuc2Nyb2xsU3RyYXRlZ2llcy5yZXBvc2l0aW9uKCksXHJcbiAgICAgIG1pbldpZHRoOiB0aGlzLm1pbldpZHRoXHJcbiAgICB9O1xyXG4gICAgdGhpcy5zZXRQb3NpdGlvbihjb25maWcpO1xyXG4gICAgdGhpcy5wb3J0YWwgPSB0aGlzLnBvcnRhbFNlcnZpY2UuYXR0YWNoKHtcclxuICAgICAgY29udGVudDogWERyb3Bkb3duUG9ydGFsQ29tcG9uZW50LFxyXG4gICAgICB2aWV3Q29udGFpbmVyUmVmOiB0aGlzLnZpZXdDb250YWluZXJSZWYsXHJcbiAgICAgIG92ZXJsYXlDb25maWc6IGNvbmZpZ1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLnNldEluc3RhbmNlKCk7XHJcbiAgfVxyXG5cclxuICBzZXRQb3NpdGlvbihjb25maWc6IE92ZXJsYXlDb25maWcpIHtcclxuICAgIGxldCBwb3NpdGlvbiA9IGNvbmZpZy5wb3NpdGlvblN0cmF0ZWd5IGFzIEZsZXhpYmxlQ29ubmVjdGVkUG9zaXRpb25TdHJhdGVneTtcclxuICAgIHBvc2l0aW9uLnBvc2l0aW9uQ2hhbmdlcy5waXBlKHRha2VVbnRpbCh0aGlzLl91blN1YmplY3QpKS5zdWJzY3JpYmUoKHBvczogQ29ubmVjdGVkT3ZlcmxheVBvc2l0aW9uQ2hhbmdlKSA9PiB7XHJcbiAgICAgIGNvbnN0IHBsYWNlID0gWFBvcnRhbENvbm5lY3RlZFBvc2l0aW9uLmdldChwb3MuY29ubmVjdGlvblBhaXIpIGFzIFhQb3NpdGlvblRvcEJvdHRvbTtcclxuICAgICAgcGxhY2UgIT09IHRoaXMucG9ydGFsUGxhY2VtZW50ICYmIHRoaXMucG9ydGFsUG9zaXRpb25DaGFuZ2UubmV4dChwbGFjZSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHNldEluc3RhbmNlKCkge1xyXG4gICAgbGV0IGNvbXBvbmVudFJlZiA9IHRoaXMucG9ydGFsPy5jb21wb25lbnRSZWY7XHJcbiAgICBpZiAoIWNvbXBvbmVudFJlZikgcmV0dXJuO1xyXG4gICAgT2JqZWN0LmFzc2lnbihjb21wb25lbnRSZWYuaW5zdGFuY2UsIHtcclxuICAgICAgZGF0YTogdGhpcy5ub2RlPy5jaGlsZHJlbixcclxuICAgICAgbWluV2lkdGg6IHRoaXMubWluV2lkdGgsXHJcbiAgICAgIGNsb3NlOiAoKSA9PiB0aGlzLmNsb3NlUG9ydGFsKCksXHJcbiAgICAgIHBsYWNlbWVudDogdGhpcy5wb3J0YWxQbGFjZW1lbnQsXHJcbiAgICAgIHBvc2l0aW9uQ2hhbmdlOiB0aGlzLnBvcnRhbFBvc2l0aW9uQ2hhbmdlLFxyXG4gICAgICBhY3RpdmF0ZWRJZDogdGhpcy5hY3RpdmF0ZWRJZCxcclxuICAgICAgYWN0aXZhdGVkSWRTdWI6IHRoaXMuYWN0aXZhdGVkSWRTdWIsXHJcbiAgICAgIG5vZGVFbWl0OiAobm9kZTogWERyb3Bkb3duTm9kZSkgPT4gdGhpcy5ub2RlQ2xpY2sobm9kZSksXHJcbiAgICAgIHBvcnRhbEhvdmVyOiAoaG92ZXI6IGJvb2xlYW4pID0+IHRoaXMuaG92ZXIoaG92ZXIpLFxyXG4gICAgICBhbmltYXRpbmc6IChpbmc6IGJvb2xlYW4pID0+ICh0aGlzLmNoaWxkQW5pbWF0aW5nID0gaW5nKVxyXG4gICAgfSk7XHJcbiAgICBjb21wb25lbnRSZWYuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgaG92ZXIoaG92ZXI6IGJvb2xlYW4pIHtcclxuICAgIGlmICh0aGlzLnRpbWVvdXRIaWRlICYmIGhvdmVyKSB7XHJcbiAgICAgIGNsZWFyVGltZW91dCh0aGlzLnRpbWVvdXRIaWRlKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMucG9ydGFsSG92ZXIoZmFsc2UpO1xyXG4gICAgICB0aGlzLm9uTGVhdmUoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNldFBsYWNlbWVudCgpIHtcclxuICAgIHJldHVybiB0aGlzLnBvcnRhbFNlcnZpY2Uuc2V0UGxhY2VtZW50KHtcclxuICAgICAgZWxlbWVudFJlZjogbmV3IEVsZW1lbnRSZWYodGhpcy5ub2RlPy5ldmVudD8udGFyZ2V0KSxcclxuICAgICAgcGxhY2VtZW50OiBbJ3JpZ2h0LXN0YXJ0JywgJ3JpZ2h0LWVuZCcsICdsZWZ0LXN0YXJ0JywgJ2xlZnQtZW5kJ10sXHJcbiAgICAgIHRyYW5zZm9ybU9yaWdpbk9uOiAneC1kcm9wZG93bi1wb3J0YWwnXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG9uRW50ZXIobm9kZTogWERyb3Bkb3duTm9kZSkge1xyXG4gICAgaWYgKCFub2RlLmxlYWYgfHwgbm9kZS5kaXNhYmxlZCB8fCB0aGlzLmNoaWxkQW5pbWF0aW5nKSByZXR1cm47XHJcbiAgICBpZiAodGhpcy50aW1lb3V0SGlkZSkgY2xlYXJUaW1lb3V0KHRoaXMudGltZW91dEhpZGUpO1xyXG4gICAgaWYgKHRoaXMucG9ydGFsQXR0YWNoZWQoKSAmJiB0aGlzLm5vZGU/LmlkICE9PSBub2RlLmlkKSB7XHJcbiAgICAgIHRoaXMucG9ydGFsPy5vdmVybGF5UmVmPy5kaXNwb3NlKCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLm5vZGUgPSBub2RlO1xyXG4gICAgaWYgKCF0aGlzLnBvcnRhbEF0dGFjaGVkKCkpIHtcclxuICAgICAgdGhpcy5jcmVhdGVQb3J0YWwoKTtcclxuICAgIH1cclxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIG9uTGVhdmUoKSB7XHJcbiAgICBpZiAodGhpcy5wb3J0YWxBdHRhY2hlZCgpKSB7XHJcbiAgICAgIHRoaXMudGltZW91dEhpZGUgPSBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICB0aGlzLnBvcnRhbD8ub3ZlcmxheVJlZj8uZGlzcG9zZSgpO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiPGRpdiAjZHJvcGRvd25Qb3J0YWwgY2xhc3M9XCJ4LWRyb3Bkb3duLXBvcnRhbFwiPlxyXG4gIDx4LWxpc3RcclxuICAgIFtkYXRhXT1cImRhdGFcIlxyXG4gICAgKG5vZGVDbGljayk9XCJub2RlQ2xpY2soJGV2ZW50KVwiXHJcbiAgICBbKG5nTW9kZWwpXT1cImFjdGl2YXRlZElkXCJcclxuICAgIChub2RlTW91c2VlbnRlcik9XCJvbkVudGVyKCRldmVudClcIlxyXG4gICAgKG5vZGVNb3VzZWxlYXZlKT1cIm9uTGVhdmUoKVwiXHJcbiAgPjwveC1saXN0PlxyXG48L2Rpdj5cclxuIl19
|
|
170
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24tcG9ydGFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYi9uZy1uZXN0L3VpL2Ryb3Bkb3duL2Ryb3Bkb3duLXBvcnRhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvbmctbmVzdC91aS9kcm9wZG93bi9kcm9wZG93bi1wb3J0YWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxpQkFBaUIsRUFFakIsVUFBVSxFQUVWLHVCQUF1QixFQUV2QixZQUFZLEVBRVosV0FBVyxFQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxxQkFBcUIsRUFBbUMsTUFBTSxxQkFBcUIsQ0FBQztBQUM3RixPQUFPLEVBQUUsd0JBQXdCLEVBQXFDLE1BQU0sb0JBQW9CLENBQUM7QUFDakcsT0FBTyxFQUFFLHFCQUFxQixFQUFzQixNQUFNLGtCQUFrQixDQUFDO0FBQzdFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7QUFXM0MsTUFBTSxPQUFPLHdCQUF3QjtJQXdDbkMsWUFDUyxRQUFtQixFQUNuQixVQUFzQixFQUN0QixHQUFzQixFQUNyQixhQUE2QixFQUM3QixPQUFnQixFQUNoQixnQkFBa0M7UUFMbkMsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUNuQixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQ3JCLGtCQUFhLEdBQWIsYUFBYSxDQUFnQjtRQUM3QixZQUFPLEdBQVAsT0FBTyxDQUFTO1FBQ2hCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUE1QjVDLHlCQUFvQixHQUFpQixJQUFJLE9BQU8sRUFBRSxDQUFDO1FBR25ELGFBQVEsR0FBRyxHQUFHLENBQUM7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Q2pCLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLEVBQUU7WUFDMUIsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1NBQ3JCO1FBQ0QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRUQsT0FBTztRQUNMLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRSxFQUFFO1lBQ3pCLElBQUksQ0FBQyxXQUFXLEdBQUcsVUFBVSxDQUFDLEdBQUcsRUFBRTtnQkFDakMsSUFBSSxDQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLENBQUM7WUFDckMsQ0FBQyxDQUFDLENBQUM7U0FDSjtJQUNILENBQUM7O3dJQXRLVSx3QkFBd0I7NEhBQXhCLHdCQUF3QixtVEMzQnJDLGliQWdCQSw4d0JEU2MsQ0FBQyxxQkFBcUIsQ0FBQzsyRkFFeEIsd0JBQXdCO2tCQVJwQyxTQUFTOytCQUNFLEdBQUcscUJBQXFCLEVBQUUsaUJBR3JCLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsQ0FBQyxxQkFBcUIsQ0FBQzsyT0FHYyxTQUFTO3NCQUF6RCxXQUFXO3VCQUFDLDJCQUEyQjtnQkFDb0IsSUFBSTtzQkFBL0QsWUFBWTt1QkFBQyxnQ0FBZ0MsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFJRyxLQUFLO3NCQUFqRSxZQUFZO3VCQUFDLGlDQUFpQyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQTBCL0IsVUFBVTtzQkFBckMsWUFBWTt1QkFBQyxZQUFZO2dCQUlFLFVBQVU7c0JBQXJDLFlBQVk7dUJBQUMsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxyXG4gIFJlbmRlcmVyMixcclxuICBFbGVtZW50UmVmLFxyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIE9uRGVzdHJveSxcclxuICBIb3N0TGlzdGVuZXIsXHJcbiAgVmlld0NvbnRhaW5lclJlZixcclxuICBIb3N0QmluZGluZ1xyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBYRHJvcGRvd25Qb3J0YWxQcmVmaXgsIFhEcm9wZG93bk5vZGUsIFhEcm9wZG93blRyaWdnZXIgfSBmcm9tICcuL2Ryb3Bkb3duLnByb3BlcnR5JztcclxuaW1wb3J0IHsgWFBvcnRhbENvbm5lY3RlZFBvc2l0aW9uLCBYUG9ydGFsT3ZlcmxheVJlZiwgWFBvcnRhbFNlcnZpY2UgfSBmcm9tICdAbmctbmVzdC91aS9wb3J0YWwnO1xyXG5pbXBvcnQgeyBYQ29ubmVjdEJhc2VBbmltYXRpb24sIFhQb3NpdGlvblRvcEJvdHRvbSB9IGZyb20gJ0BuZy1uZXN0L3VpL2NvcmUnO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgQ29ubmVjdGVkT3ZlcmxheVBvc2l0aW9uQ2hhbmdlLCBGbGV4aWJsZUNvbm5lY3RlZFBvc2l0aW9uU3RyYXRlZ3ksIE92ZXJsYXksIE92ZXJsYXlDb25maWcgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogYCR7WERyb3Bkb3duUG9ydGFsUHJlZml4fWAsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2Ryb3Bkb3duLXBvcnRhbC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZHJvcGRvd24tcG9ydGFsLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICBhbmltYXRpb25zOiBbWENvbm5lY3RCYXNlQW5pbWF0aW9uXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgWERyb3Bkb3duUG9ydGFsQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcclxuICBASG9zdEJpbmRpbmcoJ0B4LWNvbm5lY3QtYmFzZS1hbmltYXRpb24nKSBwdWJsaWMgcGxhY2VtZW50ITogWFBvc2l0aW9uVG9wQm90dG9tO1xyXG4gIEBIb3N0TGlzdGVuZXIoJ0B4LWNvbm5lY3QtYmFzZS1hbmltYXRpb24uZG9uZScsIFsnJGV2ZW50J10pIGRvbmUoZXZlbnQ6IHsgdG9TdGF0ZTogYW55IH0pIHtcclxuICAgIHRoaXMuYW5pbWF0aW5nKGZhbHNlKTtcclxuICAgIGV2ZW50LnRvU3RhdGUgPT09ICd2b2lkJyAmJiB0aGlzLmRlc3Ryb3lQb3J0YWwoKTtcclxuICB9XHJcbiAgQEhvc3RMaXN0ZW5lcignQHgtY29ubmVjdC1iYXNlLWFuaW1hdGlvbi5zdGFydCcsIFsnJGV2ZW50J10pIHN0YXJ0KCkge1xyXG4gICAgdGhpcy5hbmltYXRpbmcodHJ1ZSk7XHJcbiAgfVxyXG4gIGRhdGEhOiBYRHJvcGRvd25Ob2RlW107XHJcbiAgdHJpZ2dlciE6IFhEcm9wZG93blRyaWdnZXI7XHJcbiAgY2xvc2UhOiBGdW5jdGlvbjtcclxuICBub2RlRW1pdCE6IEZ1bmN0aW9uO1xyXG4gIHBvcnRhbEhvdmVyITogRnVuY3Rpb247XHJcbiAgYW5pbWF0aW5nITogRnVuY3Rpb247XHJcbiAgZGVzdHJveVBvcnRhbCE6IEZ1bmN0aW9uO1xyXG4gIHBvcnRhbCE6IFhQb3J0YWxPdmVybGF5UmVmPFhEcm9wZG93blBvcnRhbENvbXBvbmVudD47XHJcbiAgcG9zaXRpb25DaGFuZ2UhOiBTdWJqZWN0PGFueT47XHJcbiAgcG9ydGFsUG9zaXRpb25DaGFuZ2U6IFN1YmplY3Q8YW55PiA9IG5ldyBTdWJqZWN0KCk7XHJcbiAgbm9kZSE6IFhEcm9wZG93bk5vZGU7XHJcbiAgdGltZW91dEhpZGU6IGFueTtcclxuICB0aW1lc3BhbiA9IDIwMDtcclxuICBtaW5XaWR0aCE6IHN0cmluZyB8IG51bWJlcjtcclxuICBtYXhXaWR0aCE6IHN0cmluZyB8IG51bWJlcjtcclxuICBtaW5IZWlnaHQhOiBzdHJpbmcgfCBudW1iZXI7XHJcbiAgbWF4SGVpZ2h0ITogc3RyaW5nIHwgbnVtYmVyO1xyXG4gIHBvcnRhbFBsYWNlbWVudCE6IFhQb3NpdGlvblRvcEJvdHRvbTtcclxuICBjaGlsZEFuaW1hdGluZyA9IGZhbHNlO1xyXG4gIGFjdGl2YXRlZElkITogYW55O1xyXG4gIGFjdGl2YXRlZElkU3ViITogU3ViamVjdDxhbnk+O1xyXG4gIHByaXZhdGUgX3VuU3ViamVjdCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ21vdXNlZW50ZXInKSBtb3VzZWVudGVyKCkge1xyXG4gICAgdGhpcy5wb3J0YWxIb3Zlcih0cnVlKTtcclxuICB9XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ21vdXNlbGVhdmUnKSBtb3VzZWxlYXZlKCkge1xyXG4gICAgIXRoaXMucG9ydGFsQXR0YWNoZWQoKSAmJiB0aGlzLnBvcnRhbEhvdmVyKGZhbHNlKTtcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIHJlbmRlcmVyOiBSZW5kZXJlcjIsXHJcbiAgICBwdWJsaWMgZWxlbWVudFJlZjogRWxlbWVudFJlZixcclxuICAgIHB1YmxpYyBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgcHJpdmF0ZSBwb3J0YWxTZXJ2aWNlOiBYUG9ydGFsU2VydmljZSxcclxuICAgIHByaXZhdGUgb3ZlcmxheTogT3ZlcmxheSxcclxuICAgIHByaXZhdGUgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZlxyXG4gICkge31cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLnBvc2l0aW9uQ2hhbmdlLnBpcGUodGFrZVVudGlsKHRoaXMuX3VuU3ViamVjdCkpLnN1YnNjcmliZSgoeCkgPT4ge1xyXG4gICAgICB0aGlzLnBsYWNlbWVudCA9IHg7XHJcbiAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge31cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLl91blN1YmplY3QubmV4dCgpO1xyXG4gICAgdGhpcy5fdW5TdWJqZWN0LnVuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG5cclxuICBub2RlQ2xpY2sobm9kZTogWERyb3Bkb3duTm9kZSkge1xyXG4gICAgaWYgKCFub2RlLmxlYWYpIHtcclxuICAgICAgdGhpcy5jbG9zZSgpO1xyXG4gICAgICB0aGlzLmFjdGl2YXRlZElkID0gbm9kZS5pZDtcclxuICAgICAgdGhpcy5hY3RpdmF0ZWRJZFN1Yi5uZXh0KHRoaXMuYWN0aXZhdGVkSWQpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5ub2RlRW1pdChub2RlKTtcclxuICB9XHJcblxyXG4gIHBvcnRhbEF0dGFjaGVkKCkge1xyXG4gICAgcmV0dXJuIHRoaXMucG9ydGFsPy5vdmVybGF5UmVmPy5oYXNBdHRhY2hlZCgpO1xyXG4gIH1cclxuXHJcbiAgY2xvc2VQb3J0YWwoKSB7XHJcbiAgICBpZiAodGhpcy5wb3J0YWxBdHRhY2hlZCgpKSB7XHJcbiAgICAgIHRoaXMucG9ydGFsPy5vdmVybGF5UmVmPy5kaXNwb3NlKCk7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgY3JlYXRlUG9ydGFsKCkge1xyXG4gICAgY29uc3QgY29uZmlnOiBPdmVybGF5Q29uZmlnID0ge1xyXG4gICAgICBiYWNrZHJvcENsYXNzOiAnJyxcclxuICAgICAgcGFuZWxDbGFzczogJ3gtZHJvcGRvd24tcG9ydGFsLWNoaWxkJyxcclxuICAgICAgcG9zaXRpb25TdHJhdGVneTogdGhpcy5zZXRQbGFjZW1lbnQoKSxcclxuICAgICAgc2Nyb2xsU3RyYXRlZ3k6IHRoaXMub3ZlcmxheS5zY3JvbGxTdHJhdGVnaWVzLnJlcG9zaXRpb24oKSxcclxuICAgICAgbWluV2lkdGg6IHRoaXMubWluV2lkdGhcclxuICAgIH07XHJcbiAgICB0aGlzLnNldFBvc2l0aW9uKGNvbmZpZyk7XHJcbiAgICB0aGlzLnBvcnRhbCA9IHRoaXMucG9ydGFsU2VydmljZS5hdHRhY2goe1xyXG4gICAgICBjb250ZW50OiBYRHJvcGRvd25Qb3J0YWxDb21wb25lbnQsXHJcbiAgICAgIHZpZXdDb250YWluZXJSZWY6IHRoaXMudmlld0NvbnRhaW5lclJlZixcclxuICAgICAgb3ZlcmxheUNvbmZpZzogY29uZmlnXHJcbiAgICB9KTtcclxuICAgIHRoaXMuc2V0SW5zdGFuY2UoKTtcclxuICB9XHJcblxyXG4gIHNldFBvc2l0aW9uKGNvbmZpZzogT3ZlcmxheUNvbmZpZykge1xyXG4gICAgbGV0IHBvc2l0aW9uID0gY29uZmlnLnBvc2l0aW9uU3RyYXRlZ3kgYXMgRmxleGlibGVDb25uZWN0ZWRQb3NpdGlvblN0cmF0ZWd5O1xyXG4gICAgcG9zaXRpb24ucG9zaXRpb25DaGFuZ2VzLnBpcGUodGFrZVVudGlsKHRoaXMuX3VuU3ViamVjdCkpLnN1YnNjcmliZSgocG9zOiBDb25uZWN0ZWRPdmVybGF5UG9zaXRpb25DaGFuZ2UpID0+IHtcclxuICAgICAgY29uc3QgcGxhY2UgPSBYUG9ydGFsQ29ubmVjdGVkUG9zaXRpb24uZ2V0KHBvcy5jb25uZWN0aW9uUGFpcikgYXMgWFBvc2l0aW9uVG9wQm90dG9tO1xyXG4gICAgICBwbGFjZSAhPT0gdGhpcy5wb3J0YWxQbGFjZW1lbnQgJiYgdGhpcy5wb3J0YWxQb3NpdGlvbkNoYW5nZS5uZXh0KHBsYWNlKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgc2V0SW5zdGFuY2UoKSB7XHJcbiAgICBsZXQgY29tcG9uZW50UmVmID0gdGhpcy5wb3J0YWw/LmNvbXBvbmVudFJlZjtcclxuICAgIGlmICghY29tcG9uZW50UmVmKSByZXR1cm47XHJcbiAgICBPYmplY3QuYXNzaWduKGNvbXBvbmVudFJlZi5pbnN0YW5jZSwge1xyXG4gICAgICBkYXRhOiB0aGlzLm5vZGU/LmNoaWxkcmVuLFxyXG4gICAgICBtaW5XaWR0aDogdGhpcy5taW5XaWR0aCxcclxuICAgICAgbWF4V2lkdGg6IHRoaXMubWF4V2lkdGgsXHJcbiAgICAgIG1pbkhlaWdodDogdGhpcy5taW5IZWlnaHQsXHJcbiAgICAgIG1heEhlaWdodDogdGhpcy5tYXhIZWlnaHQsXHJcbiAgICAgIGNsb3NlOiAoKSA9PiB0aGlzLmNsb3NlUG9ydGFsKCksXHJcbiAgICAgIHBsYWNlbWVudDogdGhpcy5wb3J0YWxQbGFjZW1lbnQsXHJcbiAgICAgIHBvc2l0aW9uQ2hhbmdlOiB0aGlzLnBvcnRhbFBvc2l0aW9uQ2hhbmdlLFxyXG4gICAgICBhY3RpdmF0ZWRJZDogdGhpcy5hY3RpdmF0ZWRJZCxcclxuICAgICAgYWN0aXZhdGVkSWRTdWI6IHRoaXMuYWN0aXZhdGVkSWRTdWIsXHJcbiAgICAgIG5vZGVFbWl0OiAobm9kZTogWERyb3Bkb3duTm9kZSkgPT4gdGhpcy5ub2RlQ2xpY2sobm9kZSksXHJcbiAgICAgIHBvcnRhbEhvdmVyOiAoaG92ZXI6IGJvb2xlYW4pID0+IHRoaXMuaG92ZXIoaG92ZXIpLFxyXG4gICAgICBhbmltYXRpbmc6IChpbmc6IGJvb2xlYW4pID0+ICh0aGlzLmNoaWxkQW5pbWF0aW5nID0gaW5nKVxyXG4gICAgfSk7XHJcbiAgICBjb21wb25lbnRSZWYuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgaG92ZXIoaG92ZXI6IGJvb2xlYW4pIHtcclxuICAgIGlmICh0aGlzLnRpbWVvdXRIaWRlICYmIGhvdmVyKSB7XHJcbiAgICAgIGNsZWFyVGltZW91dCh0aGlzLnRpbWVvdXRIaWRlKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMucG9ydGFsSG92ZXIoZmFsc2UpO1xyXG4gICAgICB0aGlzLm9uTGVhdmUoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNldFBsYWNlbWVudCgpIHtcclxuICAgIHJldHVybiB0aGlzLnBvcnRhbFNlcnZpY2Uuc2V0UGxhY2VtZW50KHtcclxuICAgICAgZWxlbWVudFJlZjogbmV3IEVsZW1lbnRSZWYodGhpcy5ub2RlPy5ldmVudD8udGFyZ2V0KSxcclxuICAgICAgcGxhY2VtZW50OiBbJ3JpZ2h0LXN0YXJ0JywgJ3JpZ2h0LWVuZCcsICdsZWZ0LXN0YXJ0JywgJ2xlZnQtZW5kJ10sXHJcbiAgICAgIHRyYW5zZm9ybU9yaWdpbk9uOiAneC1kcm9wZG93bi1wb3J0YWwnXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG9uRW50ZXIobm9kZTogWERyb3Bkb3duTm9kZSkge1xyXG4gICAgaWYgKCFub2RlLmxlYWYgfHwgbm9kZS5kaXNhYmxlZCB8fCB0aGlzLmNoaWxkQW5pbWF0aW5nKSByZXR1cm47XHJcbiAgICBpZiAodGhpcy50aW1lb3V0SGlkZSkgY2xlYXJUaW1lb3V0KHRoaXMudGltZW91dEhpZGUpO1xyXG4gICAgaWYgKHRoaXMucG9ydGFsQXR0YWNoZWQoKSAmJiB0aGlzLm5vZGU/LmlkICE9PSBub2RlLmlkKSB7XHJcbiAgICAgIHRoaXMucG9ydGFsPy5vdmVybGF5UmVmPy5kaXNwb3NlKCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLm5vZGUgPSBub2RlO1xyXG4gICAgaWYgKCF0aGlzLnBvcnRhbEF0dGFjaGVkKCkpIHtcclxuICAgICAgdGhpcy5jcmVhdGVQb3J0YWwoKTtcclxuICAgIH1cclxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIG9uTGVhdmUoKSB7XHJcbiAgICBpZiAodGhpcy5wb3J0YWxBdHRhY2hlZCgpKSB7XHJcbiAgICAgIHRoaXMudGltZW91dEhpZGUgPSBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICB0aGlzLnBvcnRhbD8ub3ZlcmxheVJlZj8uZGlzcG9zZSgpO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiPGRpdlxyXG4gICNkcm9wZG93blBvcnRhbFxyXG4gIGNsYXNzPVwieC1kcm9wZG93bi1wb3J0YWxcIlxyXG4gIFtzdHlsZS5taW5XaWR0aF09XCJtaW5XaWR0aFwiXHJcbiAgW3N0eWxlLm1heFdpZHRoXT1cIm1heFdpZHRoXCJcclxuICBbc3R5bGUubWluSGVpZ2h0XT1cIm1pbkhlaWdodFwiXHJcbiAgW3N0eWxlLm1heEhlaWdodF09XCJtYXhIZWlnaHRcIlxyXG4+XHJcbiAgPHgtbGlzdFxyXG4gICAgW2RhdGFdPVwiZGF0YVwiXHJcbiAgICAobm9kZUNsaWNrKT1cIm5vZGVDbGljaygkZXZlbnQpXCJcclxuICAgIFsobmdNb2RlbCldPVwiYWN0aXZhdGVkSWRcIlxyXG4gICAgKG5vZGVNb3VzZWVudGVyKT1cIm9uRW50ZXIoJGV2ZW50KVwiXHJcbiAgICAobm9kZU1vdXNlbGVhdmUpPVwib25MZWF2ZSgpXCJcclxuICA+PC94LWxpc3Q+XHJcbjwvZGl2PlxyXG4iXX0=
|
|
@@ -145,6 +145,9 @@ export class XDropdownComponent extends XDropdownProperty {
|
|
|
145
145
|
data: this.nodes,
|
|
146
146
|
trigger: this.trigger,
|
|
147
147
|
minWidth: this.minWidth,
|
|
148
|
+
maxWidth: this.portalMaxWidth,
|
|
149
|
+
minHeight: this.portalMinHeight,
|
|
150
|
+
maxHeight: this.portalMaxHeight,
|
|
148
151
|
activatedId: this.activatedId,
|
|
149
152
|
activatedIdSub: this.activatedIdSub,
|
|
150
153
|
close: () => this.closeSubject.next(),
|
|
@@ -193,4 +196,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
|
|
|
193
196
|
type: ViewChild,
|
|
194
197
|
args: ['dropdown', { static: true }]
|
|
195
198
|
}] } });
|
|
196
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvZHJvcGRvd24vZHJvcGRvd24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvZHJvcGRvd24vZHJvcGRvd24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxpQkFBaUIsRUFJakIsdUJBQXVCLEVBSXZCLFNBQVMsRUFDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZUFBZSxFQUFpQixpQkFBaUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3hGLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQWtELE1BQU0sa0JBQWtCLENBQUM7QUFDL0gsT0FBTyxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDbkMsT0FBTyxFQUFFLHdCQUF3QixFQUFxQyxNQUFNLG9CQUFvQixDQUFDO0FBQ2pHLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7QUFVaEUsTUFBTSxPQUFPLGtCQUFtQixTQUFRLGlCQUFpQjtJQWdCdkQsWUFDUyxRQUFtQixFQUNuQixVQUFzQixFQUN0QixHQUFzQixFQUNyQixhQUE2QixFQUM3QixnQkFBa0MsRUFDbEMsT0FBZ0IsRUFDakIsYUFBNkI7UUFFcEMsS0FBSyxFQUFFLENBQUM7UUFSRCxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQ25CLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFDckIsa0JBQWEsR0FBYixhQUFhLENBQWdCO1FBQzdCLHFC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QUFDLENBQUMsQ0FBQzthQUNoRztpQkFBTTtnQkFDTCxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQzthQUNoQjtZQUNELElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDM0IsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOztrSUE1TFUsa0JBQWtCO3NIQUFsQixrQkFBa0Isa05DM0IvQiw4UEFXQTsyRkRnQmEsa0JBQWtCO2tCQVA5QixTQUFTOytCQUNFLEdBQUcsZUFBZSxFQUFFLGlCQUdmLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU07d1FBR04sUUFBUTtzQkFBaEQsU0FBUzt1QkFBQyxVQUFVLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbiAgUmVuZGVyZXIyLFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgU2ltcGxlQ2hhbmdlcyxcclxuICBPbkNoYW5nZXMsXHJcbiAgVmlld0NvbnRhaW5lclJlZixcclxuICBWaWV3Q2hpbGRcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgWERyb3Bkb3duUHJlZml4LCBYRHJvcGRvd25Ob2RlLCBYRHJvcGRvd25Qcm9wZXJ0eSB9IGZyb20gJy4vZHJvcGRvd24ucHJvcGVydHknO1xyXG5pbXBvcnQgeyBYSXNDaGFuZ2UsIFhJc0VtcHR5LCBYU2V0RGF0YSwgWEdldENoaWxkcmVuLCBYQ29uZmlnU2VydmljZSwgWFBvc2l0aW9uVG9wQm90dG9tLCBYUGxhY2VtZW50IH0gZnJvbSAnQG5nLW5lc3QvdWkvY29yZSc7XHJcbmltcG9ydCB7IG9mLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFhQb3J0YWxDb25uZWN0ZWRQb3NpdGlvbiwgWFBvcnRhbE92ZXJsYXlSZWYsIFhQb3J0YWxTZXJ2aWNlIH0gZnJvbSAnQG5nLW5lc3QvdWkvcG9ydGFsJztcclxuaW1wb3J0IHsgWERyb3Bkb3duUG9ydGFsQ29tcG9uZW50IH0gZnJvbSAnLi9kcm9wZG93bi1wb3J0YWwuY29tcG9uZW50JztcclxuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBkZWxheSwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBDb25uZWN0ZWRPdmVybGF5UG9zaXRpb25DaGFuZ2UsIEZsZXhpYmxlQ29ubmVjdGVkUG9zaXRpb25TdHJhdGVneSwgT3ZlcmxheSwgT3ZlcmxheUNvbmZpZyB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBgJHtYRHJvcGRvd25QcmVmaXh9YCxcclxuICB0ZW1wbGF0ZVVybDogJy4vZHJvcGRvd24uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2Ryb3Bkb3duLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgWERyb3Bkb3duQ29tcG9uZW50IGV4dGVuZHMgWERyb3Bkb3duUHJvcGVydHkgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xyXG4gIEBWaWV3Q2hpbGQoJ2Ryb3Bkb3duJywgeyBzdGF0aWM6IHRydWUgfSkgZHJvcGRvd24hOiBFbGVtZW50UmVmO1xyXG4gIGRhdGFzOiBYRHJvcGRvd25Ob2RlW10gPSBbXTtcclxuICBub2RlczogWERyb3Bkb3duTm9kZVtdID0gW107XHJcbiAgcG9ydGFsITogWFBvcnRhbE92ZXJsYXlSZWY8WERyb3Bkb3duUG9ydGFsQ29tcG9uZW50PjtcclxuICB0aW1lb3V0SGlkZTogYW55O1xyXG4gIHZpc2libGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBhbmltYXRpbmcgPSBmYWxzZTtcclxuICBvdXRzaWRlQ2xpY2sgPSBmYWxzZTtcclxuICBtaW5XaWR0aCE6IHN0cmluZyB8IG51bWJlcjtcclxuICBob3ZlckRlbGF5VW5zdWIgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG4gIHBvc2l0aW9uQ2hhbmdlOiBTdWJqZWN0PGFueT4gPSBuZXcgU3ViamVjdCgpO1xyXG4gIGNsb3NlU3ViamVjdDogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0KCk7XHJcbiAgYWN0aXZhdGVkSWRTdWIgPSBuZXcgU3ViamVjdDxhbnk+KCk7XHJcbiAgcHJpdmF0ZSBfdW5TdWJqZWN0ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgcmVuZGVyZXI6IFJlbmRlcmVyMixcclxuICAgIHB1YmxpYyBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxyXG4gICAgcHVibGljIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBwcml2YXRlIHBvcnRhbFNlcnZpY2U6IFhQb3J0YWxTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLFxyXG4gICAgcHJpdmF0ZSBvdmVybGF5OiBPdmVybGF5LFxyXG4gICAgcHVibGljIGNvbmZpZ1NlcnZpY2U6IFhDb25maWdTZXJ2aWNlXHJcbiAgKSB7XHJcbiAgICBzdXBlcigpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLnNldFN1YmplY3QoKTtcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcclxuICAgIGNvbnN0IHsgZGF0YSB9ID0gY2hhbmdlcztcclxuICAgIFhJc0NoYW5nZShkYXRhKSAmJiB0aGlzLnNldERhdGEoKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fdW5TdWJqZWN0Lm5leHQoKTtcclxuICAgIHRoaXMuX3VuU3ViamVjdC5jb21wbGV0ZSgpO1xyXG4gICAgdGhpcy5ob3ZlckRlbGF5VW5zdWIubmV4dCgpO1xyXG4gICAgdGhpcy5ob3ZlckRlbGF5VW5zdWIuY29tcGxldGUoKTtcclxuICB9XHJcblxyXG4gIHNldFN1YmplY3QoKSB7XHJcbiAgICB0aGlzLmNsb3NlU3ViamVjdC5waXBlKHRha2VVbnRpbCh0aGlzLl91blN1YmplY3QpKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICB0aGlzLmNsb3NlUG9ydGFsKCk7XHJcbiAgICB9KTtcclxuICAgIHRoaXMuYWN0aXZhdGVkSWRTdWIucGlwZSh0YWtlVW50aWwodGhpcy5fdW5TdWJqZWN0KSkuc3Vic2NyaWJlKCh4KSA9PiB7XHJcbiAgICAgIHRoaXMuYWN0aXZhdGVkSWQgPSB4O1xyXG4gICAgICB0aGlzLmFjdGl2YXRlZElkQ2hhbmdlLmVtaXQoeCk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG9uRW50ZXIoKSB7XHJcbiAgICBvZih0cnVlKVxyXG4gICAgICAucGlwZShkZWxheSh0aGlzLmhvdmVyRGVsYXkpLCB0YWtlVW50aWwodGhpcy5ob3ZlckRlbGF5VW5zdWIpKVxyXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICBpZiAodGhpcy5kaXNhYmxlZCB8fCB0aGlzLnRyaWdnZXIgPT09ICdjbGljaycpIHJldHVybjtcclxuICAgICAgICBpZiAodGhpcy50aW1lb3V0SGlkZSkge1xyXG4gICAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMudGltZW91dEhpZGUpO1xyXG4gICAgICAgICAgdGhpcy50aW1lb3V0SGlkZSA9IG51bGw7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICghdGhpcy5wb3J0YWwgfHwgKHRoaXMucG9ydGFsICYmICF0aGlzLnBvcnRhbD8ub3ZlcmxheVJlZj8uaGFzQXR0YWNoZWQoKSkpIHtcclxuICAgICAgICAgIHRoaXMudmlzaWJsZSA9IHRydWU7XHJcbiAgICAgICAgICB0aGlzLmNyZWF0ZVBvcnRhbCgpO1xyXG4gICAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBvbkxlYXZlKCkge1xyXG4gICAgdGhpcy5ob3ZlckRlbGF5VW5zdWIubmV4dCgpO1xyXG4gICAgaWYgKHRoaXMuZGlzYWJsZWQgfHwgdGhpcy50cmlnZ2VyID09PSAnY2xpY2snKSByZXR1cm47XHJcbiAgICBpZiAodGhpcy5wb3J0YWw/Lm92ZXJsYXlSZWY/Lmhhc0F0dGFjaGVkKCkpIHtcclxuICAgICAgdGhpcy50aW1lb3V0SGlkZSA9IHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMudmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMucG9ydGFsPy5vdmVybGF5UmVmPy5kaXNwb3NlKCk7XHJcbiAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNob3dQb3J0YWwoKSB7XHJcbiAgICBpZiAodGhpcy5kaXNhYmxlZCB8fCB0aGlzLnRyaWdnZXIgPT09ICdob3ZlcicgfHwgdGhpcy5hbmltYXRpbmcpIHJldHVybjtcclxuICAgIGlmICh0aGlzLnRyaWdnZXIgPT09ICdjbGljaycgJiYgdGhpcy5wb3J0YWxBdHRhY2hlZCgpKSB7XHJcbiAgICAgIHRoaXMuY2xvc2VTdWJqZWN0Lm5leHQoKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5jcmVhdGVQb3J0YWwoKTtcclxuICB9XHJcblxyXG4gIHBvcnRhbEF0dGFjaGVkKCkge1xyXG4gICAgcmV0dXJuIHRoaXMucG9ydGFsPy5vdmVybGF5UmVmPy5oYXNBdHRhY2hlZCgpO1xyXG4gIH1cclxuXHJcbiAgY2xvc2VQb3J0YWwoKSB7XHJcbiAgICBpZiAodGhpcy5wb3J0YWxBdHRhY2hlZCgpKSB7XHJcbiAgICAgIHRoaXMucG9ydGFsPy5vdmVybGF5UmVmPy5kaXNwb3NlKCk7XHJcbiAgICAgIHRoaXMudmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIGRlc3Ryb3lQb3J0YWwoKSB7XHJcbiAgICB0aGlzLnBvcnRhbD8ub3ZlcmxheVJlZj8uZGlzcG9zZSgpO1xyXG4gIH1cclxuXHJcbiAgY3JlYXRlUG9ydGFsKCkge1xyXG4gICAgbGV0IGJveCA9IHRoaXMuZHJvcGRvd24ubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuICAgIHRoaXMubWluV2lkdGggPSB0aGlzLnBvcnRhbE1pbldpZHRoID8gdGhpcy5wb3J0YWxNaW5XaWR0aCA6IGJveC53aWR0aDtcclxuICAgIGNvbnN0IGNvbmZpZzogT3ZlcmxheUNvbmZpZyA9IHtcclxuICAgICAgYmFja2Ryb3BDbGFzczogJycsXHJcbiAgICAgIHBvc2l0aW9uU3RyYXRlZ3k6IHRoaXMuc2V0UGxhY2VtZW50KCksXHJcbiAgICAgIHNjcm9sbFN0cmF0ZWd5OiB0aGlzLm92ZXJsYXkuc2Nyb2xsU3RyYXRlZ2llcy5yZXBvc2l0aW9uKCksXHJcbiAgICAgIG1pbldpZHRoOiB0aGlzLm1pbldpZHRoXHJcbiAgICB9O1xyXG4gICAgdGhpcy5zZXRQb3NpdGlvbihjb25maWcpO1xyXG4gICAgdGhpcy5wb3J0YWwgPSB0aGlzLnBvcnRhbFNlcnZpY2UuYXR0YWNoKHtcclxuICAgICAgY29udGVudDogWERyb3Bkb3duUG9ydGFsQ29tcG9uZW50LFxyXG4gICAgICB2aWV3Q29udGFpbmVyUmVmOiB0aGlzLnZpZXdDb250YWluZXJSZWYsXHJcbiAgICAgIG92ZXJsYXlDb25maWc6IGNvbmZpZ1xyXG4gICAgfSk7XHJcbiAgICBpZiAodGhpcy50cmlnZ2VyID09PSAnY2xpY2snKSB7XHJcbiAgICAgIHRoaXMucG9ydGFsLm92ZXJsYXlSZWZcclxuICAgICAgICA/Lm91dHNpZGVQb2ludGVyRXZlbnRzKClcclxuICAgICAgICAucGlwZShkZWJvdW5jZVRpbWUoMzApLCB0YWtlVW50aWwodGhpcy5fdW5TdWJqZWN0KSlcclxuICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICAgIHRoaXMuY2xvc2VTdWJqZWN0Lm5leHQoKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICAgIHRoaXMuc2V0SW5zdGFuY2UoKTtcclxuICB9XHJcblxyXG4gIHNldFBvc2l0aW9uKGNvbmZpZzogT3ZlcmxheUNvbmZpZykge1xyXG4gICAgbGV0IHBvc2l0aW9uID0gY29uZmlnLnBvc2l0aW9uU3RyYXRlZ3kgYXMgRmxleGlibGVDb25uZWN0ZWRQb3NpdGlvblN0cmF0ZWd5O1xyXG4gICAgcG9zaXRpb24ucG9zaXRpb25DaGFuZ2VzLnBpcGUodGFrZVVudGlsKHRoaXMuX3VuU3ViamVjdCkpLnN1YnNjcmliZSgocG9zOiBDb25uZWN0ZWRPdmVybGF5UG9zaXRpb25DaGFuZ2UpID0+IHtcclxuICAgICAgY29uc3QgcGxhY2UgPSBYUG9ydGFsQ29ubmVjdGVkUG9zaXRpb24uZ2V0KHBvcy5jb25uZWN0aW9uUGFpcikgYXMgWFBvc2l0aW9uVG9wQm90dG9tO1xyXG4gICAgICBwbGFjZSAhPT0gdGhpcy5wbGFjZW1lbnQgJiYgdGhpcy5wb3NpdGlvbkNoYW5nZS5uZXh0KHBsYWNlKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgc2V0SW5zdGFuY2UoKSB7XHJcbiAgICBsZXQgY29tcG9uZW50UmVmID0gdGhpcy5wb3J0YWw/LmNvbXBvbmVudFJlZjtcclxuICAgIGlmICghY29tcG9uZW50UmVmKSByZXR1cm47XHJcbiAgICBPYmplY3QuYXNzaWduKGNvbXBvbmVudFJlZi5pbnN0YW5jZSwge1xyXG4gICAgICBkYXRhOiB0aGlzLm5vZGVzLFxyXG4gICAgICB0cmlnZ2VyOiB0aGlzLnRyaWdnZXIsXHJcbiAgICAgIG1pbldpZHRoOiB0aGlzLm1pbldpZHRoLFxyXG4gICAgICBhY3RpdmF0ZWRJZDogdGhpcy5hY3RpdmF0ZWRJZCxcclxuICAgICAgYWN0aXZhdGVkSWRTdWI6IHRoaXMuYWN0aXZhdGVkSWRTdWIsXHJcbiAgICAgIGNsb3NlOiAoKSA9PiB0aGlzLmNsb3NlU3ViamVjdC5uZXh0KCksXHJcbiAgICAgIHBvc2l0aW9uQ2hhbmdlOiB0aGlzLnBvc2l0aW9uQ2hhbmdlLFxyXG4gICAgICBkZXN0cm95UG9ydGFsOiAoKSA9PiB0aGlzLmRlc3Ryb3lQb3J0YWwoKSxcclxuICAgICAgbm9kZUVtaXQ6IChub2RlOiBYRHJvcGRvd25Ob2RlKSA9PiB0aGlzLm5vZGVDbGljay5lbWl0KG5vZGUpLFxyXG4gICAgICBwb3J0YWxIb3ZlcjogKGhvdmVyOiBib29sZWFuKSA9PiB0aGlzLnBvcnRhbEhvdmVyKGhvdmVyKSxcclxuICAgICAgYW5pbWF0aW5nOiAoaW5nOiBib29sZWFuKSA9PiAodGhpcy5hbmltYXRpbmcgPSBpbmcpXHJcbiAgICB9KTtcclxuICAgIGNvbXBvbmVudFJlZi5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBwb3J0YWxIb3Zlcihob3ZlcjogYm9vbGVhbikge1xyXG4gICAgaWYgKHRoaXMudGltZW91dEhpZGUgJiYgaG92ZXIpIHtcclxuICAgICAgY2xlYXJUaW1lb3V0KHRoaXMudGltZW91dEhpZGUpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5vbkxlYXZlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXRQbGFjZW1lbnQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5wb3J0YWxTZXJ2aWNlLnNldFBsYWNlbWVudCh7XHJcbiAgICAgIGVsZW1lbnRSZWY6IHRoaXMuZHJvcGRvd24sXHJcbiAgICAgIHBsYWNlbWVudDogW3RoaXMucGxhY2VtZW50IGFzIFhQbGFjZW1lbnQsICdib3R0b20tc3RhcnQnLCAndG9wLXN0YXJ0JywgJ2JvdHRvbS1lbmQnLCAndG9wLWVuZCddLFxyXG4gICAgICB0cmFuc2Zvcm1PcmlnaW5PbjogJ3gtZHJvcGRvd24tcG9ydGFsJ1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldERhdGEoKSB7XHJcbiAgICBYU2V0RGF0YTxYRHJvcGRvd25Ob2RlPih0aGlzLmRhdGEsIHRoaXMuX3VuU3ViamVjdCkuc3Vic2NyaWJlKCh4KSA9PiB7XHJcbiAgICAgIHRoaXMuZGF0YXMgPSB4O1xyXG4gICAgICBpZiAoIXRoaXMuY2hpbGRyZW4pIHtcclxuICAgICAgICB0aGlzLm5vZGVzID0geC5maWx0ZXIoKHkpID0+IFhJc0VtcHR5KHkucGlkKSkubWFwKCh5KSA9PiBYR2V0Q2hpbGRyZW48WERyb3Bkb3duTm9kZT4oeCwgeSwgMCkpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMubm9kZXMgPSB4O1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgIH0pO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2XHJcbiAgI2Ryb3Bkb3duXHJcbiAgY2xhc3M9XCJ4LWRyb3Bkb3duXCJcclxuICBbbmdDbGFzc109XCJjbGFzc01hcFwiXHJcbiAgW2NsYXNzLngtdmlzaWJsZV09XCJ2aXNpYmxlXCJcclxuICAobW91c2VlbnRlcik9XCJvbkVudGVyKClcIlxyXG4gIChtb3VzZWxlYXZlKT1cIm9uTGVhdmUoKVwiXHJcbiAgKGNsaWNrKT1cInNob3dQb3J0YWwoKVwiXHJcbj5cclxuICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XHJcbjwvZGl2PlxyXG4iXX0=
|
|
199
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvZHJvcGRvd24vZHJvcGRvd24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvZHJvcGRvd24vZHJvcGRvd24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxpQkFBaUIsRUFJakIsdUJBQXVCLEVBSXZCLFNBQVMsRUFDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZUFBZSxFQUFpQixpQkFBaUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3hGLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQWtELE1BQU0sa0JBQWtCLENBQUM7QUFDL0gsT0FBTyxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDbkMsT0FBTyxFQUFFLHdCQUF3QixFQUFxQyxNQUFNLG9CQUFvQixDQUFDO0FBQ2pHLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7QUFVaEUsTUFBTSxPQUFPLGtCQUFtQixTQUFRLGlCQUFpQjtJQWdCdkQsWUFDUyxRQUFtQixFQUNuQixVQUFzQixFQUN0QixHQUFzQixFQUNyQixhQUE2QixFQUM3QixnQkFBa0MsRUFDbEMsT0FBZ0IsRUFDakIsYUFBNkI7UUFFcEMsS0FBSyxFQUFFLENBQUM7UUFSRCxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQ25CLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFDckIsa0JBQWEsR0FBYixhQUFhLENBQWdCO1FBQzdCLHFC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LEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxZQUFZLENBQWdCLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUNoRztpQkFBTTtnQkFDTCxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQzthQUNoQjtZQUNELElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDM0IsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOztrSUEvTFUsa0JBQWtCO3NIQUFsQixrQkFBa0Isa05DM0IvQiw4UEFXQTsyRkRnQmEsa0JBQWtCO2tCQVA5QixTQUFTOytCQUNFLEdBQUcsZUFBZSxFQUFFLGlCQUdmLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU07d1FBR04sUUFBUTtzQkFBaEQsU0FBUzt1QkFBQyxVQUFVLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbiAgUmVuZGVyZXIyLFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgU2ltcGxlQ2hhbmdlcyxcclxuICBPbkNoYW5nZXMsXHJcbiAgVmlld0NvbnRhaW5lclJlZixcclxuICBWaWV3Q2hpbGRcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgWERyb3Bkb3duUHJlZml4LCBYRHJvcGRvd25Ob2RlLCBYRHJvcGRvd25Qcm9wZXJ0eSB9IGZyb20gJy4vZHJvcGRvd24ucHJvcGVydHknO1xyXG5pbXBvcnQgeyBYSXNDaGFuZ2UsIFhJc0VtcHR5LCBYU2V0RGF0YSwgWEdldENoaWxkcmVuLCBYQ29uZmlnU2VydmljZSwgWFBvc2l0aW9uVG9wQm90dG9tLCBYUGxhY2VtZW50IH0gZnJvbSAnQG5nLW5lc3QvdWkvY29yZSc7XHJcbmltcG9ydCB7IG9mLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFhQb3J0YWxDb25uZWN0ZWRQb3NpdGlvbiwgWFBvcnRhbE92ZXJsYXlSZWYsIFhQb3J0YWxTZXJ2aWNlIH0gZnJvbSAnQG5nLW5lc3QvdWkvcG9ydGFsJztcclxuaW1wb3J0IHsgWERyb3Bkb3duUG9ydGFsQ29tcG9uZW50IH0gZnJvbSAnLi9kcm9wZG93bi1wb3J0YWwuY29tcG9uZW50JztcclxuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBkZWxheSwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBDb25uZWN0ZWRPdmVybGF5UG9zaXRpb25DaGFuZ2UsIEZsZXhpYmxlQ29ubmVjdGVkUG9zaXRpb25TdHJhdGVneSwgT3ZlcmxheSwgT3ZlcmxheUNvbmZpZyB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBgJHtYRHJvcGRvd25QcmVmaXh9YCxcclxuICB0ZW1wbGF0ZVVybDogJy4vZHJvcGRvd24uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2Ryb3Bkb3duLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgWERyb3Bkb3duQ29tcG9uZW50IGV4dGVuZHMgWERyb3Bkb3duUHJvcGVydHkgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xyXG4gIEBWaWV3Q2hpbGQoJ2Ryb3Bkb3duJywgeyBzdGF0aWM6IHRydWUgfSkgZHJvcGRvd24hOiBFbGVtZW50UmVmO1xyXG4gIGRhdGFzOiBYRHJvcGRvd25Ob2RlW10gPSBbXTtcclxuICBub2RlczogWERyb3Bkb3duTm9kZVtdID0gW107XHJcbiAgcG9ydGFsITogWFBvcnRhbE92ZXJsYXlSZWY8WERyb3Bkb3duUG9ydGFsQ29tcG9uZW50PjtcclxuICB0aW1lb3V0SGlkZTogYW55O1xyXG4gIHZpc2libGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBhbmltYXRpbmcgPSBmYWxzZTtcclxuICBvdXRzaWRlQ2xpY2sgPSBmYWxzZTtcclxuICBtaW5XaWR0aCE6IHN0cmluZyB8IG51bWJlcjtcclxuICBob3ZlckRlbGF5VW5zdWIgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG4gIHBvc2l0aW9uQ2hhbmdlOiBTdWJqZWN0PGFueT4gPSBuZXcgU3ViamVjdCgpO1xyXG4gIGNsb3NlU3ViamVjdDogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0KCk7XHJcbiAgYWN0aXZhdGVkSWRTdWIgPSBuZXcgU3ViamVjdDxhbnk+KCk7XHJcbiAgcHJpdmF0ZSBfdW5TdWJqZWN0ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgcmVuZGVyZXI6IFJlbmRlcmVyMixcclxuICAgIHB1YmxpYyBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxyXG4gICAgcHVibGljIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBwcml2YXRlIHBvcnRhbFNlcnZpY2U6IFhQb3J0YWxTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLFxyXG4gICAgcHJpdmF0ZSBvdmVybGF5OiBPdmVybGF5LFxyXG4gICAgcHVibGljIGNvbmZpZ1NlcnZpY2U6IFhDb25maWdTZXJ2aWNlXHJcbiAgKSB7XHJcbiAgICBzdXBlcigpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLnNldFN1YmplY3QoKTtcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcclxuICAgIGNvbnN0IHsgZGF0YSB9ID0gY2hhbmdlcztcclxuICAgIFhJc0NoYW5nZShkYXRhKSAmJiB0aGlzLnNldERhdGEoKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fdW5TdWJqZWN0Lm5leHQoKTtcclxuICAgIHRoaXMuX3VuU3ViamVjdC5jb21wbGV0ZSgpO1xyXG4gICAgdGhpcy5ob3ZlckRlbGF5VW5zdWIubmV4dCgpO1xyXG4gICAgdGhpcy5ob3ZlckRlbGF5VW5zdWIuY29tcGxldGUoKTtcclxuICB9XHJcblxyXG4gIHNldFN1YmplY3QoKSB7XHJcbiAgICB0aGlzLmNsb3NlU3ViamVjdC5waXBlKHRha2VVbnRpbCh0aGlzLl91blN1YmplY3QpKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICB0aGlzLmNsb3NlUG9ydGFsKCk7XHJcbiAgICB9KTtcclxuICAgIHRoaXMuYWN0aXZhdGVkSWRTdWIucGlwZSh0YWtlVW50aWwodGhpcy5fdW5TdWJqZWN0KSkuc3Vic2NyaWJlKCh4KSA9PiB7XHJcbiAgICAgIHRoaXMuYWN0aXZhdGVkSWQgPSB4O1xyXG4gICAgICB0aGlzLmFjdGl2YXRlZElkQ2hhbmdlLmVtaXQoeCk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG9uRW50ZXIoKSB7XHJcbiAgICBvZih0cnVlKVxyXG4gICAgICAucGlwZShkZWxheSh0aGlzLmhvdmVyRGVsYXkpLCB0YWtlVW50aWwodGhpcy5ob3ZlckRlbGF5VW5zdWIpKVxyXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICBpZiAodGhpcy5kaXNhYmxlZCB8fCB0aGlzLnRyaWdnZXIgPT09ICdjbGljaycpIHJldHVybjtcclxuICAgICAgICBpZiAodGhpcy50aW1lb3V0SGlkZSkge1xyXG4gICAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMudGltZW91dEhpZGUpO1xyXG4gICAgICAgICAgdGhpcy50aW1lb3V0SGlkZSA9IG51bGw7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICghdGhpcy5wb3J0YWwgfHwgKHRoaXMucG9ydGFsICYmICF0aGlzLnBvcnRhbD8ub3ZlcmxheVJlZj8uaGFzQXR0YWNoZWQoKSkpIHtcclxuICAgICAgICAgIHRoaXMudmlzaWJsZSA9IHRydWU7XHJcbiAgICAgICAgICB0aGlzLmNyZWF0ZVBvcnRhbCgpO1xyXG4gICAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBvbkxlYXZlKCkge1xyXG4gICAgdGhpcy5ob3ZlckRlbGF5VW5zdWIubmV4dCgpO1xyXG4gICAgaWYgKHRoaXMuZGlzYWJsZWQgfHwgdGhpcy50cmlnZ2VyID09PSAnY2xpY2snKSByZXR1cm47XHJcbiAgICBpZiAodGhpcy5wb3J0YWw/Lm92ZXJsYXlSZWY/Lmhhc0F0dGFjaGVkKCkpIHtcclxuICAgICAgdGhpcy50aW1lb3V0SGlkZSA9IHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMudmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMucG9ydGFsPy5vdmVybGF5UmVmPy5kaXNwb3NlKCk7XHJcbiAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNob3dQb3J0YWwoKSB7XHJcbiAgICBpZiAodGhpcy5kaXNhYmxlZCB8fCB0aGlzLnRyaWdnZXIgPT09ICdob3ZlcicgfHwgdGhpcy5hbmltYXRpbmcpIHJldHVybjtcclxuICAgIGlmICh0aGlzLnRyaWdnZXIgPT09ICdjbGljaycgJiYgdGhpcy5wb3J0YWxBdHRhY2hlZCgpKSB7XHJcbiAgICAgIHRoaXMuY2xvc2VTdWJqZWN0Lm5leHQoKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5jcmVhdGVQb3J0YWwoKTtcclxuICB9XHJcblxyXG4gIHBvcnRhbEF0dGFjaGVkKCkge1xyXG4gICAgcmV0dXJuIHRoaXMucG9ydGFsPy5vdmVybGF5UmVmPy5oYXNBdHRhY2hlZCgpO1xyXG4gIH1cclxuXHJcbiAgY2xvc2VQb3J0YWwoKSB7XHJcbiAgICBpZiAodGhpcy5wb3J0YWxBdHRhY2hlZCgpKSB7XHJcbiAgICAgIHRoaXMucG9ydGFsPy5vdmVybGF5UmVmPy5kaXNwb3NlKCk7XHJcbiAgICAgIHRoaXMudmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIGRlc3Ryb3lQb3J0YWwoKSB7XHJcbiAgICB0aGlzLnBvcnRhbD8ub3ZlcmxheVJlZj8uZGlzcG9zZSgpO1xyXG4gIH1cclxuXHJcbiAgY3JlYXRlUG9ydGFsKCkge1xyXG4gICAgbGV0IGJveCA9IHRoaXMuZHJvcGRvd24ubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuICAgIHRoaXMubWluV2lkdGggPSB0aGlzLnBvcnRhbE1pbldpZHRoID8gdGhpcy5wb3J0YWxNaW5XaWR0aCA6IGJveC53aWR0aDtcclxuICAgIGNvbnN0IGNvbmZpZzogT3ZlcmxheUNvbmZpZyA9IHtcclxuICAgICAgYmFja2Ryb3BDbGFzczogJycsXHJcbiAgICAgIHBvc2l0aW9uU3RyYXRlZ3k6IHRoaXMuc2V0UGxhY2VtZW50KCksXHJcbiAgICAgIHNjcm9sbFN0cmF0ZWd5OiB0aGlzLm92ZXJsYXkuc2Nyb2xsU3RyYXRlZ2llcy5yZXBvc2l0aW9uKCksXHJcbiAgICAgIG1pbldpZHRoOiB0aGlzLm1pbldpZHRoXHJcbiAgICB9O1xyXG4gICAgdGhpcy5zZXRQb3NpdGlvbihjb25maWcpO1xyXG4gICAgdGhpcy5wb3J0YWwgPSB0aGlzLnBvcnRhbFNlcnZpY2UuYXR0YWNoKHtcclxuICAgICAgY29udGVudDogWERyb3Bkb3duUG9ydGFsQ29tcG9uZW50LFxyXG4gICAgICB2aWV3Q29udGFpbmVyUmVmOiB0aGlzLnZpZXdDb250YWluZXJSZWYsXHJcbiAgICAgIG92ZXJsYXlDb25maWc6IGNvbmZpZ1xyXG4gICAgfSk7XHJcbiAgICBpZiAodGhpcy50cmlnZ2VyID09PSAnY2xpY2snKSB7XHJcbiAgICAgIHRoaXMucG9ydGFsLm92ZXJsYXlSZWZcclxuICAgICAgICA/Lm91dHNpZGVQb2ludGVyRXZlbnRzKClcclxuICAgICAgICAucGlwZShkZWJvdW5jZVRpbWUoMzApLCB0YWtlVW50aWwodGhpcy5fdW5TdWJqZWN0KSlcclxuICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICAgIHRoaXMuY2xvc2VTdWJqZWN0Lm5leHQoKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICAgIHRoaXMuc2V0SW5zdGFuY2UoKTtcclxuICB9XHJcblxyXG4gIHNldFBvc2l0aW9uKGNvbmZpZzogT3ZlcmxheUNvbmZpZykge1xyXG4gICAgbGV0IHBvc2l0aW9uID0gY29uZmlnLnBvc2l0aW9uU3RyYXRlZ3kgYXMgRmxleGlibGVDb25uZWN0ZWRQb3NpdGlvblN0cmF0ZWd5O1xyXG4gICAgcG9zaXRpb24ucG9zaXRpb25DaGFuZ2VzLnBpcGUodGFrZVVudGlsKHRoaXMuX3VuU3ViamVjdCkpLnN1YnNjcmliZSgocG9zOiBDb25uZWN0ZWRPdmVybGF5UG9zaXRpb25DaGFuZ2UpID0+IHtcclxuICAgICAgY29uc3QgcGxhY2UgPSBYUG9ydGFsQ29ubmVjdGVkUG9zaXRpb24uZ2V0KHBvcy5jb25uZWN0aW9uUGFpcikgYXMgWFBvc2l0aW9uVG9wQm90dG9tO1xyXG4gICAgICBwbGFjZSAhPT0gdGhpcy5wbGFjZW1lbnQgJiYgdGhpcy5wb3NpdGlvbkNoYW5nZS5uZXh0KHBsYWNlKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgc2V0SW5zdGFuY2UoKSB7XHJcbiAgICBsZXQgY29tcG9uZW50UmVmID0gdGhpcy5wb3J0YWw/LmNvbXBvbmVudFJlZjtcclxuICAgIGlmICghY29tcG9uZW50UmVmKSByZXR1cm47XHJcbiAgICBPYmplY3QuYXNzaWduKGNvbXBvbmVudFJlZi5pbnN0YW5jZSwge1xyXG4gICAgICBkYXRhOiB0aGlzLm5vZGVzLFxyXG4gICAgICB0cmlnZ2VyOiB0aGlzLnRyaWdnZXIsXHJcbiAgICAgIG1pbldpZHRoOiB0aGlzLm1pbldpZHRoLFxyXG4gICAgICBtYXhXaWR0aDogdGhpcy5wb3J0YWxNYXhXaWR0aCxcclxuICAgICAgbWluSGVpZ2h0OiB0aGlzLnBvcnRhbE1pbkhlaWdodCxcclxuICAgICAgbWF4SGVpZ2h0OiB0aGlzLnBvcnRhbE1heEhlaWdodCxcclxuICAgICAgYWN0aXZhdGVkSWQ6IHRoaXMuYWN0aXZhdGVkSWQsXHJcbiAgICAgIGFjdGl2YXRlZElkU3ViOiB0aGlzLmFjdGl2YXRlZElkU3ViLFxyXG4gICAgICBjbG9zZTogKCkgPT4gdGhpcy5jbG9zZVN1YmplY3QubmV4dCgpLFxyXG4gICAgICBwb3NpdGlvbkNoYW5nZTogdGhpcy5wb3NpdGlvbkNoYW5nZSxcclxuICAgICAgZGVzdHJveVBvcnRhbDogKCkgPT4gdGhpcy5kZXN0cm95UG9ydGFsKCksXHJcbiAgICAgIG5vZGVFbWl0OiAobm9kZTogWERyb3Bkb3duTm9kZSkgPT4gdGhpcy5ub2RlQ2xpY2suZW1pdChub2RlKSxcclxuICAgICAgcG9ydGFsSG92ZXI6IChob3ZlcjogYm9vbGVhbikgPT4gdGhpcy5wb3J0YWxIb3Zlcihob3ZlciksXHJcbiAgICAgIGFuaW1hdGluZzogKGluZzogYm9vbGVhbikgPT4gKHRoaXMuYW5pbWF0aW5nID0gaW5nKVxyXG4gICAgfSk7XHJcbiAgICBjb21wb25lbnRSZWYuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgcG9ydGFsSG92ZXIoaG92ZXI6IGJvb2xlYW4pIHtcclxuICAgIGlmICh0aGlzLnRpbWVvdXRIaWRlICYmIGhvdmVyKSB7XHJcbiAgICAgIGNsZWFyVGltZW91dCh0aGlzLnRpbWVvdXRIaWRlKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMub25MZWF2ZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0UGxhY2VtZW50KCkge1xyXG4gICAgcmV0dXJuIHRoaXMucG9ydGFsU2VydmljZS5zZXRQbGFjZW1lbnQoe1xyXG4gICAgICBlbGVtZW50UmVmOiB0aGlzLmRyb3Bkb3duLFxyXG4gICAgICBwbGFjZW1lbnQ6IFt0aGlzLnBsYWNlbWVudCBhcyBYUGxhY2VtZW50LCAnYm90dG9tLXN0YXJ0JywgJ3RvcC1zdGFydCcsICdib3R0b20tZW5kJywgJ3RvcC1lbmQnXSxcclxuICAgICAgdHJhbnNmb3JtT3JpZ2luT246ICd4LWRyb3Bkb3duLXBvcnRhbCdcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXREYXRhKCkge1xyXG4gICAgWFNldERhdGE8WERyb3Bkb3duTm9kZT4odGhpcy5kYXRhLCB0aGlzLl91blN1YmplY3QpLnN1YnNjcmliZSgoeCkgPT4ge1xyXG4gICAgICB0aGlzLmRhdGFzID0geDtcclxuICAgICAgaWYgKCF0aGlzLmNoaWxkcmVuKSB7XHJcbiAgICAgICAgdGhpcy5ub2RlcyA9IHguZmlsdGVyKCh5KSA9PiBYSXNFbXB0eSh5LnBpZCkpLm1hcCgoeSkgPT4gWEdldENoaWxkcmVuPFhEcm9wZG93bk5vZGU+KHgsIHksIDApKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLm5vZGVzID0geDtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuIiwiPGRpdlxyXG4gICNkcm9wZG93blxyXG4gIGNsYXNzPVwieC1kcm9wZG93blwiXHJcbiAgW25nQ2xhc3NdPVwiY2xhc3NNYXBcIlxyXG4gIFtjbGFzcy54LXZpc2libGVdPVwidmlzaWJsZVwiXHJcbiAgKG1vdXNlZW50ZXIpPVwib25FbnRlcigpXCJcclxuICAobW91c2VsZWF2ZSk9XCJvbkxlYXZlKClcIlxyXG4gIChjbGljayk9XCJzaG93UG9ydGFsKClcIlxyXG4+XHJcbiAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxyXG48L2Rpdj5cclxuIl19
|
|
@@ -38,7 +38,7 @@ export class XDropdownProperty extends XProperty {
|
|
|
38
38
|
}
|
|
39
39
|
}
|
|
40
40
|
/** @nocollapse */ XDropdownProperty.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: XDropdownProperty, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
41
|
-
/** @nocollapse */ XDropdownProperty.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: XDropdownProperty, selector: "ng-component", inputs: { data: "data", trigger: "trigger", placement: "placement", disabled: "disabled", children: "children", portalMinWidth: "portalMinWidth", hoverDelay: "hoverDelay", activatedId: "activatedId" }, outputs: { nodeClick: "nodeClick", activatedIdChange: "activatedIdChange" }, usesInheritance: true, ngImport: i0, template: '', isInline: true });
|
|
41
|
+
/** @nocollapse */ XDropdownProperty.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: XDropdownProperty, selector: "ng-component", inputs: { data: "data", trigger: "trigger", placement: "placement", disabled: "disabled", children: "children", portalMinWidth: "portalMinWidth", portalMaxWidth: "portalMaxWidth", portalMinHeight: "portalMinHeight", portalMaxHeight: "portalMaxHeight", hoverDelay: "hoverDelay", activatedId: "activatedId" }, outputs: { nodeClick: "nodeClick", activatedIdChange: "activatedIdChange" }, usesInheritance: true, ngImport: i0, template: '', isInline: true });
|
|
42
42
|
__decorate([
|
|
43
43
|
XDataConvert()
|
|
44
44
|
], XDropdownProperty.prototype, "data", void 0);
|
|
@@ -69,6 +69,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
|
|
|
69
69
|
type: Input
|
|
70
70
|
}], portalMinWidth: [{
|
|
71
71
|
type: Input
|
|
72
|
+
}], portalMaxWidth: [{
|
|
73
|
+
type: Input
|
|
74
|
+
}], portalMinHeight: [{
|
|
75
|
+
type: Input
|
|
76
|
+
}], portalMaxHeight: [{
|
|
77
|
+
type: Input
|
|
72
78
|
}], hoverDelay: [{
|
|
73
79
|
type: Input
|
|
74
80
|
}], activatedId: [{
|
|
@@ -84,4 +90,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
|
|
|
84
90
|
* @decorator component
|
|
85
91
|
*/
|
|
86
92
|
export const XDropdownPortalPrefix = 'x-dropdown-portal';
|
|
87
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
93
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24ucHJvcGVydHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvbmctbmVzdC91aS9kcm9wZG93bi9kcm9wZG93bi5wcm9wZXJ0eS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFTLFNBQVMsRUFBRSxZQUFZLEVBQUUsYUFBYSxFQUF3QixXQUFXLEVBQVksTUFBTSxrQkFBa0IsQ0FBQztBQUU5SCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUV2RTs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHLFlBQVksQ0FBQztBQUM1QyxNQUFNLGFBQWEsR0FBRyxVQUFVLENBQUM7QUFFakM7O0dBRUc7QUFFSCxNQUFNLE9BQU8saUJBQWtCLFNBQVEsU0FBUztJQURoRDs7UUFFRTs7O1dBR0c7UUFDc0IsU0FBSSxHQUF5QixFQUFFLENBQUM7UUF5Q3pEOzs7V0FHRztRQUNNLGVBQVUsR0FBVyxHQUFHLENBQUM7UUFNbEM7OztXQUdHO1FBQ08sY0FBUyxHQUFHLElBQUksWUFBWSxFQUFpQixDQUFDO1FBQ3hEOzs7V0FHRztRQUNPLHNCQUFpQixHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7S0FDdkQ7O2lJQWxFWSxpQkFBaUI7cUhBQWpCLGlCQUFpQiw0Y0FEUCxFQUFFO0FBTUU7SUFBZixZQUFZLEVBQUU7K0NBQWlDO0FBS087SUFBdEQsV0FBVyxDQUFtQixhQUFhLEVBQUUsT0FBTyxDQUFDO2tEQUE0QjtBQUsxQjtJQUF2RCxXQUFXLENBQWEsYUFBYSxFQUFFLGNBQWMsQ0FBQztvREFBd0I7QUFLOUQ7SUFBaEIsYUFBYSxFQUFFO21EQUFxQjtBQUtwQjtJQUFoQixhQUFhLEVBQUU7bURBQXFCOzJGQXpCbkMsaUJBQWlCO2tCQUQ3QixTQUFTO21CQUFDLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRTs4QkFNQSxJQUFJO3NCQUE1QixLQUFLO2dCQUswRCxPQUFPO3NCQUF0RSxLQUFLO2dCQUsyRCxTQUFTO3NCQUF6RSxLQUFLO2dCQUtvQixRQUFRO3NCQUFqQyxLQUFLO2dCQUtvQixRQUFRO3NCQUFqQyxLQUFLO2dCQUtHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBS0csY0FBYztzQkFBdEIsS0FBSztnQkFLRyxlQUFlO3NCQUF2QixLQUFLO2dCQUtHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBS0csVUFBVTtzQkFBbEIsS0FBSztnQkFLRyxXQUFXO3NCQUFuQixLQUFLO2dCQUtJLFNBQVM7c0JBQWxCLE1BQU07Z0JBS0csaUJBQWlCO3NCQUExQixNQUFNOztBQWVUOzs7O0dBSUc7QUFDSCxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxtQkFBbUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFhEYXRhLCBYUHJvcGVydHksIFhEYXRhQ29udmVydCwgWElucHV0Qm9vbGVhbiwgWEJvb2xlYW4sIFhQbGFjZW1lbnQsIFhXaXRoQ29uZmlnLCBYVHJpZ2dlciB9IGZyb20gJ0BuZy1uZXN0L3VpL2NvcmUnO1xyXG5pbXBvcnQgeyBYTGlzdE5vZGUgfSBmcm9tICdAbmctbmVzdC91aS9saXN0JztcclxuaW1wb3J0IHsgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbi8qKlxyXG4gKiBEcm9wZG93blxyXG4gKiBAc2VsZWN0b3IgeC1kcm9wZG93blxyXG4gKiBAZGVjb3JhdG9yIGNvbXBvbmVudFxyXG4gKi9cclxuZXhwb3J0IGNvbnN0IFhEcm9wZG93blByZWZpeCA9ICd4LWRyb3Bkb3duJztcclxuY29uc3QgWF9DT05GSUdfTkFNRSA9ICdkcm9wZG93bic7XHJcblxyXG4vKipcclxuICogRHJvcGRvd24gUHJvcGVydHlcclxuICovXHJcbkBDb21wb25lbnQoeyB0ZW1wbGF0ZTogJycgfSlcclxuZXhwb3J0IGNsYXNzIFhEcm9wZG93blByb3BlcnR5IGV4dGVuZHMgWFByb3BlcnR5IHtcclxuICAvKipcclxuICAgKiBAemhfQ04g6IqC54K55pWw5o2uXHJcbiAgICogQGVuX1VTIE5vZGUgZGF0YVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYRGF0YUNvbnZlcnQoKSBkYXRhOiBYRGF0YTxYRHJvcGRvd25Ob2RlPiA9IFtdO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDop6blj5HmlrnlvI9cclxuICAgKiBAZW5fVVMgVHJpZ2dlciBtZXRob2RcclxuICAgKi9cclxuICBASW5wdXQoKSBAWFdpdGhDb25maWc8WERyb3Bkb3duVHJpZ2dlcj4oWF9DT05GSUdfTkFNRSwgJ2hvdmVyJykgdHJpZ2dlcj86IFhEcm9wZG93blRyaWdnZXI7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOWxleekuuS9jee9rlxyXG4gICAqIEBlbl9VUyBQbGFjZW1lbnRcclxuICAgKi9cclxuICBASW5wdXQoKSBAWFdpdGhDb25maWc8WFBsYWNlbWVudD4oWF9DT05GSUdfTkFNRSwgJ2JvdHRvbS1zdGFydCcpIHBsYWNlbWVudD86IFhQbGFjZW1lbnQ7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOemgeeUqFxyXG4gICAqIEBlbl9VUyBEaXNhYmxlZFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYSW5wdXRCb29sZWFuKCkgZGlzYWJsZWQ/OiBYQm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g6IqC54K55Lit5bey57uP5YyF5ZCr5a2Q6IqC54K55pWw5o2uXHJcbiAgICogQGVuX1VTIFRoZSBub2RlIGFscmVhZHkgY29udGFpbnMgY2hpbGQgbm9kZSBkYXRhXHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhJbnB1dEJvb2xlYW4oKSBjaGlsZHJlbj86IFhCb29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDlvLnmoYbnmoTmnIDlsI/lrr3luqZcclxuICAgKiBAZW5fVVMgUG9ydGFsIG1pbi13aWR0aFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHBvcnRhbE1pbldpZHRoPzogc3RyaW5nIHwgbnVtYmVyO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDlvLnmoYbnmoTmnIDlpKflrr3luqZcclxuICAgKiBAZW5fVVMgUG9ydGFsIG1heC13aWR0aFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHBvcnRhbE1heFdpZHRoPzogc3RyaW5nIHwgbnVtYmVyO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDlvLnmoYbnmoTmnIDlsI/pq5jluqZcclxuICAgKiBAZW5fVVMgUG9ydGFsIG1pbi1oZWlnaHRcclxuICAgKi9cclxuICBASW5wdXQoKSBwb3J0YWxNaW5IZWlnaHQ/OiBzdHJpbmcgfCBudW1iZXI7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOW8ueahhueahOacgOWkp+mrmOW6plxyXG4gICAqIEBlbl9VUyBQb3J0YWwgbWF4LWhlaWdodFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHBvcnRhbE1heEhlaWdodD86IHN0cmluZyB8IG51bWJlcjtcclxuICAvKipcclxuICAgKiBAemhfQ04gaG92ZXIg5bu26L+f6Kem5Y+R5pe26Ze077yM5Y+q5pyJIHRyaWdnZXIg5Li6ICdob3Zlcicg55Sf5pWIXHJcbiAgICogQGVuX1VTIEhvdmVyIGRlbGF5IHRyaWdnZXIgdGltZSwgb25seSB0cmlnZ2VyIGlzIHRoZSAnaG92ZXInXHJcbiAgICovXHJcbiAgQElucHV0KCkgaG92ZXJEZWxheTogbnVtYmVyID0gMjAwO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDlvZPliY3mv4DmtLvnmoToj5zljZVcclxuICAgKiBAZW5fVVMgVGhlIGN1cnJlbnRseSBhY3RpdmF0ZWQgbWVudVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIGFjdGl2YXRlZElkOiBhbnk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOiKgueCueeCueWHu+S6i+S7tlxyXG4gICAqIEBlbl9VUyBOb2RlIGNsaWNrIGV2ZW50XHJcbiAgICovXHJcbiAgQE91dHB1dCgpIG5vZGVDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8WERyb3Bkb3duTm9kZT4oKTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5b2T5YmN5r+A5rS755qE6I+c5Y2V5LqL5Lu2XHJcbiAgICogQGVuX1VTIFRoZSBjdXJyZW50bHkgYWN0aXZhdGVkIG1lbnUgZXZlbnRcclxuICAgKi9cclxuICBAT3V0cHV0KCkgYWN0aXZhdGVkSWRDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxufVxyXG5cclxuLyoqXHJcbiAqIEB6aF9DTiBEcm9wZG93biDmlbDmja7lr7nosaFcclxuICogQGVuX1VTIERyb3Bkb3duIGRhdGEgb2JqZWN0XHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIFhEcm9wZG93bk5vZGUgZXh0ZW5kcyBYTGlzdE5vZGUge31cclxuXHJcbi8qKlxyXG4gKiBAemhfQ04g5pi+56S65pa55byPXHJcbiAqIEBlbl9VUyBEaXNwbGF5IG1ldGhvZFxyXG4gKi9cclxuZXhwb3J0IHR5cGUgWERyb3Bkb3duVHJpZ2dlciA9IFhUcmlnZ2VyO1xyXG5cclxuLyoqXHJcbiAqIERyb3Bkb3duIFBvcnRhbFxyXG4gKiBAc2VsZWN0b3IgeC1kcm9wZG93bi1wb3J0YWxcclxuICogQGRlY29yYXRvciBjb21wb25lbnRcclxuICovXHJcbmV4cG9ydCBjb25zdCBYRHJvcGRvd25Qb3J0YWxQcmVmaXggPSAneC1kcm9wZG93bi1wb3J0YWwnO1xyXG4iXX0=
|
|
@@ -184,6 +184,7 @@ export class XFindComponent extends XFindProperty {
|
|
|
184
184
|
sure() {
|
|
185
185
|
this.value = this.temp;
|
|
186
186
|
this.onChange(this.value);
|
|
187
|
+
this.formControlValidator();
|
|
187
188
|
this.cdr.detectChanges();
|
|
188
189
|
}
|
|
189
190
|
closeModal() {
|
|
@@ -226,6 +227,7 @@ export class XFindComponent extends XFindProperty {
|
|
|
226
227
|
}
|
|
227
228
|
}
|
|
228
229
|
this.onChange(this.value);
|
|
230
|
+
this.formControlValidator();
|
|
229
231
|
this.cdr.detectChanges();
|
|
230
232
|
}
|
|
231
233
|
tableActivatedRowChange(data) {
|
|
@@ -234,13 +236,14 @@ export class XFindComponent extends XFindProperty {
|
|
|
234
236
|
}
|
|
235
237
|
else {
|
|
236
238
|
this.temp = data;
|
|
237
|
-
this.sure();
|
|
238
239
|
this.dialogVisible = false;
|
|
240
|
+
this.sure();
|
|
239
241
|
}
|
|
240
242
|
}
|
|
241
243
|
rowMultiple(data) {
|
|
242
244
|
if (typeof this.temp === 'undefined')
|
|
243
245
|
this.temp = [];
|
|
246
|
+
// data['$checked'] = !data['$checked'];
|
|
244
247
|
if (data['$checked']) {
|
|
245
248
|
this.temp = [...this.temp, data];
|
|
246
249
|
}
|
|
@@ -327,10 +330,10 @@ export class XFindComponent extends XFindProperty {
|
|
|
327
330
|
}
|
|
328
331
|
}
|
|
329
332
|
/** @nocollapse */ XFindComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: XFindComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }, { token: i1.XConfigService }], target: i0.ɵɵFactoryTarget.Component });
|
|
330
|
-
/** @nocollapse */ XFindComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: XFindComponent, selector: "x-find", providers: [XValueAccessor(XFindComponent)], viewQueries: [{ propertyName: "find", first: true, predicate: ["find"], descendants: true, static: true }, { propertyName: "dialogCom", first: true, predicate: ["dialogCom"], descendants: true }, { propertyName: "tableCom", first: true, predicate: ["tableCom"], descendants: true }, { propertyName: "treeCom", first: true, predicate: ["treeCom"], descendants: true }, { propertyName: "buttonCom", first: true, predicate: ["buttonCom"], descendants: true }, { propertyName: "tableRef", first: true, predicate: ["tableRef"], descendants: true }, { propertyName: "treeRef", first: true, predicate: ["treeRef"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div\r\n #find\r\n class=\"x-find\"\r\n [class.x-flex]=\"justify || align || direction\"\r\n [class.x-checked]=\"value\"\r\n [class.x-disabled]=\"disabled\"\r\n [class.x-required]=\"requiredIsEmpty\"\r\n [class.x-invalid]=\"invalid\"\r\n [ngClass]=\"classMap\"\r\n>\r\n <label *ngIf=\"label\" [style.width]=\"labelWidth\" [ngClass]=\"labelMap\">{{ label }}</label>\r\n <div class=\"x-find-row\">\r\n <x-button #buttonCom icon=\"fto-search\" [onlyIcon]=\"!bordered\" [size]=\"size\" [disabled]=\"disabled\" (click)=\"showModal()\"></x-button>\r\n <div class=\"x-find-tags\">\r\n <ng-container *ngIf=\"multiple; else singleTpl\">\r\n <x-tag\r\n *ngFor=\"let item of value; index as i; trackBy: trackByItem\"\r\n closable\r\n [size]=\"size\"\r\n [bordered]=\"bordered\"\r\n [disabled]=\"disabled\"\r\n (close)=\"tagClose(i)\"\r\n >{{ item[columnLabel] }}</x-tag\r\n >\r\n </ng-container>\r\n <ng-template #singleTpl>\r\n <x-tag *ngIf=\"value\" closable [disabled]=\"disabled\" [bordered]=\"bordered\" [size]=\"size\" (close)=\"tagClose()\">{{\r\n value[columnLabel]\r\n }}</x-tag>\r\n </ng-template>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<x-dialog\r\n #dialogCom\r\n [title]=\"dialogTitle\"\r\n [width]=\"dialogWidth\"\r\n [height]=\"dialogHeight\"\r\n [buttonsCenter]=\"dialogButtonsCenter\"\r\n [(visible)]=\"dialogVisible\"\r\n (visibleChange)=\"dialogVisibleChange.emit($event)\"\r\n (closeDone)=\"dialogCloseDone()\"\r\n (cancel)=\"closeModal()\"\r\n (close)=\"closeModal()\"\r\n (confirm)=\"sure()\"\r\n>\r\n <div class=\"x-find-dialog\" [class.x-find-dialog-tree-table]=\"hasTable && hasTree\">\r\n <div class=\"x-find-dialog-tree\" *ngIf=\"hasTree\" #treeRef [style.height.px]=\"hasTreeTable && multiple && height\">\r\n <x-tree\r\n #treeCom\r\n [data]=\"treeData\"\r\n nodeHeight=\"1.8\"\r\n [(manual)]=\"dialogVisible\"\r\n [activatedId]=\"treeActivatedId\"\r\n [expandedLevel]=\"treeExpandedLevel\"\r\n (activatedChange)=\"treeActivatedClick($event)\"\r\n [checkbox]=\"hasTreeMultiple\"\r\n [checked]=\"treeChecked\"\r\n (checkboxChange)=\"treeCheckboxChange($event)\"\r\n [levelCheck]=\"!hasTreeMultiple\"\r\n ></x-tree>\r\n </div>\r\n <div class=\"x-find-dialog-table\" *ngIf=\"hasTable\" #tableRef>\r\n <div class=\"x-find-search\" *ngIf=\"hasSearch\">\r\n <x-input [label]=\"search.label\" direction=\"row\" (xKeydown)=\"searchKeyDown($event)\" [(ngModel)]=\"search.value\"></x-input>\r\n <x-button type=\"primary\" plain (click)=\"searchClick()\">{{ search.button || '\u67E5\u8BE2' }}</x-button>\r\n </div>\r\n <x-table\r\n #tableCom\r\n [data]=\"tableData\"\r\n [columns]=\"tableColumns\"\r\n [(manual)]=\"dialogVisible\"\r\n [(index)]=\"tableIndex\"\r\n [(size)]=\"tableSize\"\r\n [query]=\"tableQuery\"\r\n [total]=\"tableTotal\"\r\n [allowSelectRow]=\"!multiple\"\r\n [checkedRow]=\"tableCheckedRow\"\r\n [loading]=\"tableLoading\"\r\n (indexChange)=\"tableIndexChange.emit($event)\"\r\n (sortChange)=\"tableSortChange.emit($event)\"\r\n [(activatedRow)]=\"tableActivatedRow\"\r\n (activatedRowChange)=\"tableActivatedRowChange($event)\"\r\n [rowHeight]=\"tableRowHeight\"\r\n [bodyHeight]=\"tableBodyHeight\"\r\n [virtualScroll]=\"tableVirtualScroll\"\r\n [minBufferPx]=\"tableMinBufferPx\"\r\n [maxBufferPx]=\"tableMaxBufferPx\"\r\n [adaptionHeight]=\"tableAdaptionHeight\"\r\n [docPercent]=\"tableDocPercent\"\r\n ></x-table>\r\n </div>\r\n <div *ngIf=\"multiple\" class=\"x-find-dialog-checked\" [class.x-find-empty]=\"getEmpty\" [style.height.px]=\"height\">\r\n <x-empty *ngIf=\"getEmpty\" [content]=\"dialogEmptyContent\"></x-empty>\r\n <div class=\"x-find-dialog-tags\">\r\n <x-tag *ngFor=\"let item of temp; index as i; trackBy: trackByItem\" closable (close)=\"tempClose(i, item)\">\r\n <span>{{ item[columnLabel] }}</span>\r\n </x-tag>\r\n </div>\r\n </div>\r\n </div>\r\n</x-dialog>\r\n\r\n<ng-template #treeLabelTpl let-node=\"$node\">\r\n <div class=\"x-find-dialog-tree-node\">\r\n <span>{{ node.label }} </span>\r\n <x-icon type=\"fto-check\" *ngIf=\"node.$checked\"></x-icon>\r\n </div>\r\n</ng-template>\r\n", styles: ["@charset \"UTF-8\";.x-find{margin:0;padding:0;width:100%}.x-find.x-flex{display:flex}.x-find.x-justify-start{justify-content:flex-start}.x-find.x-justify-center{justify-content:center}.x-find.x-justify-end{justify-content:flex-end}.x-find.x-justify-space-between{justify-content:space-between}.x-find.x-justify-space-around{justify-content:space-around}.x-find.x-align-start{align-items:flex-start}.x-find.x-align-center{align-items:center}.x-find.x-align-end{align-items:flex-end}.x-find.x-direction-column{flex-direction:column}.x-find.x-direction-column-reverse{flex-direction:column-reverse}.x-find.x-direction-row{flex-direction:row}.x-find.x-direction-row-reverse{flex-direction:row-reverse}.x-find>label{display:inline-block;white-space:nowrap;position:relative;color:var(--x-text-300);font-weight:600}.x-find>label.x-text-align-start{text-align:start}.x-find>label.x-text-align-center{text-align:center}.x-find>label.x-text-align-end{text-align:end}.x-find-row{flex:1;display:flex;align-items:flex-start;position:relative}.x-find-tags{margin:-.0625rem -.0625rem -.0625rem .4375rem}.x-find-tags>x-tag{margin:.0625rem}.x-find.x-required>label{color:var(--x-danger)}.x-find.x-direction-row>label{padding:0 .5rem 0 0}.x-find.x-direction-row-reverse>label{padding:0 0 0 .5rem}.x-find.x-direction-column,.x-find.x-direction-column-reverse{align-items:inherit}.x-find-big>label{height:var(--x-height-big);line-height:var(--x-height-big)}.x-find-large>label{height:var(--x-height-large);line-height:var(--x-height-large)}.x-find-medium>label{height:var(--x-height-medium);line-height:var(--x-height-medium)}.x-find-small>label{height:var(--x-height-small);line-height:var(--x-height-small)}.x-find-small .x-find-tags{margin-top:-.1875rem}.x-find-small .x-find-tags>x-tag{margin-top:.125rem}.x-find-mini>label{height:var(--x-height-mini);line-height:var(--x-height-mini)}.x-find-mini .x-find-tags{margin-top:-.25rem}.x-find-mini .x-find-tags>x-tag{margin-top:.125rem}.x-find-dialog{flex:1;display:flex}.x-find-dialog-table{flex:1;min-height:18.75rem;height:-moz-fit-content;height:fit-content}.x-find-dialog-tree{flex:1;min-height:18.75rem;max-height:25rem;overflow-y:auto}.x-find-dialog-tree .x-tree-node-content.x-activated{color:var(--x-primary)}.x-find-dialog-tree-node{flex:1;display:flex;align-items:center;justify-content:space-between}.x-find-dialog-tree-node>span{flex:1;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;-webkit-user-select:none;user-select:none}.x-find-dialog-tree-table .x-find-dialog-tree{flex:initial;min-height:initial;max-height:initial;width:14rem;margin-right:1rem;padding-right:1rem;border-right:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-find-dialog-checked{margin-left:1rem;border-left:var(--x-border-width) var(--x-border-style) var(--x-border);padding-left:1rem;width:10rem;overflow-y:auto;height:100%}.x-find-dialog-checked x-tag{display:block}.x-find-dialog-checked x-tag:not(:first-child){margin-top:.5rem}.x-find-dialog-checked x-tag .x-tag{width:100%;display:flex;justify-content:space-between}.x-find-dialog-checked x-tag .x-tag>span{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.x-find-dialog-checked.x-find-empty{display:flex;align-items:center;justify-content:center}.x-find-search{display:flex;padding:.3rem}.x-find-search .x-input,.x-find-search x-input{width:15rem}.x-find-search .x-button{margin-left:.5rem}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4.XTagComponent, selector: "x-tag" }, { kind: "component", type: i5.XButtonComponent, selector: "x-button" }, { kind: "component", type: i6.XDialogComponent, selector: "x-dialog" }, { kind: "component", type: i7.XTableComponent, selector: "x-table" }, { kind: "component", type: i8.XTreeComponent, selector: "x-tree" }, { kind: "component", type: i9.XIconComponent, selector: "x-icon" }, { kind: "component", type: i10.XEmptyComponent, selector: "x-empty" }, { kind: "component", type: i11.XInputComponent, selector: "x-input" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
333
|
+
/** @nocollapse */ XFindComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: XFindComponent, selector: "x-find", providers: [XValueAccessor(XFindComponent)], viewQueries: [{ propertyName: "find", first: true, predicate: ["find"], descendants: true, static: true }, { propertyName: "dialogCom", first: true, predicate: ["dialogCom"], descendants: true }, { propertyName: "tableCom", first: true, predicate: ["tableCom"], descendants: true }, { propertyName: "treeCom", first: true, predicate: ["treeCom"], descendants: true }, { propertyName: "buttonCom", first: true, predicate: ["buttonCom"], descendants: true }, { propertyName: "tableRef", first: true, predicate: ["tableRef"], descendants: true }, { propertyName: "treeRef", first: true, predicate: ["treeRef"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div\r\n #find\r\n class=\"x-find\"\r\n [class.x-flex]=\"justify || align || direction\"\r\n [class.x-checked]=\"value\"\r\n [class.x-disabled]=\"disabled\"\r\n [class.x-required]=\"requiredIsEmpty\"\r\n [class.x-invalid]=\"invalid\"\r\n [ngClass]=\"classMap\"\r\n>\r\n <label *ngIf=\"label\" [class.x-find-label-required]=\"required\" [style.width]=\"labelWidth\" [ngClass]=\"labelMap\">{{ label }}</label>\r\n <div class=\"x-find-row\">\r\n <x-button\r\n #buttonCom\r\n icon=\"fto-search\"\r\n [onlyIcon]=\"!bordered\"\r\n [size]=\"size\"\r\n [disabled]=\"disabled\"\r\n attrType=\"button\"\r\n (click)=\"showModal()\"\r\n ></x-button>\r\n <div class=\"x-find-tags\">\r\n <ng-container *ngIf=\"multiple; else singleTpl\">\r\n <x-tag\r\n *ngFor=\"let item of value; index as i; trackBy: trackByItem\"\r\n closable\r\n [size]=\"size\"\r\n [bordered]=\"bordered\"\r\n [disabled]=\"disabled\"\r\n (close)=\"tagClose(i)\"\r\n >{{ item[columnLabel] }}</x-tag\r\n >\r\n </ng-container>\r\n <ng-template #singleTpl>\r\n <x-tag *ngIf=\"value\" closable [disabled]=\"disabled\" [bordered]=\"bordered\" [size]=\"size\" (close)=\"tagClose()\">{{\r\n value[columnLabel]\r\n }}</x-tag>\r\n </ng-template>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<x-dialog\r\n #dialogCom\r\n [title]=\"dialogTitle\"\r\n [width]=\"dialogWidth\"\r\n [height]=\"dialogHeight\"\r\n [buttonsCenter]=\"dialogButtonsCenter\"\r\n [(visible)]=\"dialogVisible\"\r\n (visibleChange)=\"dialogVisibleChange.emit($event)\"\r\n (closeDone)=\"dialogCloseDone()\"\r\n (cancel)=\"closeModal()\"\r\n (close)=\"closeModal()\"\r\n (confirm)=\"sure()\"\r\n>\r\n <div class=\"x-find-dialog\" [class.x-find-dialog-tree-table]=\"hasTable && hasTree\">\r\n <div class=\"x-find-dialog-tree\" *ngIf=\"hasTree\" #treeRef [style.height.px]=\"hasTreeTable && multiple && height\">\r\n <x-tree\r\n #treeCom\r\n [data]=\"treeData\"\r\n nodeHeight=\"1.8\"\r\n [(manual)]=\"dialogVisible\"\r\n [activatedId]=\"treeActivatedId\"\r\n [expandedLevel]=\"treeExpandedLevel\"\r\n (activatedChange)=\"treeActivatedClick($event)\"\r\n [checkbox]=\"hasTreeMultiple\"\r\n [checked]=\"treeChecked\"\r\n (checkboxChange)=\"treeCheckboxChange($event)\"\r\n [levelCheck]=\"!hasTreeMultiple\"\r\n ></x-tree>\r\n </div>\r\n <div class=\"x-find-dialog-table\" *ngIf=\"hasTable\" #tableRef>\r\n <div class=\"x-find-search\" *ngIf=\"hasSearch\">\r\n <x-input [label]=\"search.label\" direction=\"row\" (xKeydown)=\"searchKeyDown($event)\" [(ngModel)]=\"search.value\"></x-input>\r\n <x-button type=\"primary\" plain (click)=\"searchClick()\">{{ search.button || '\u67E5\u8BE2' }}</x-button>\r\n </div>\r\n <x-table\r\n #tableCom\r\n [data]=\"tableData\"\r\n [columns]=\"tableColumns\"\r\n [(manual)]=\"dialogVisible\"\r\n [(index)]=\"tableIndex\"\r\n [(size)]=\"tableSize\"\r\n [query]=\"tableQuery\"\r\n [total]=\"tableTotal\"\r\n [allowSelectRow]=\"!multiple\"\r\n [allowCheckRow]=\"multiple\"\r\n [checkedRow]=\"tableCheckedRow\"\r\n [loading]=\"tableLoading\"\r\n (indexChange)=\"tableIndexChange.emit($event)\"\r\n (sortChange)=\"tableSortChange.emit($event)\"\r\n [(activatedRow)]=\"tableActivatedRow\"\r\n (activatedRowChange)=\"tableActivatedRowChange($event)\"\r\n [rowHeight]=\"tableRowHeight\"\r\n [bodyHeight]=\"tableBodyHeight\"\r\n [virtualScroll]=\"tableVirtualScroll\"\r\n [minBufferPx]=\"tableMinBufferPx\"\r\n [maxBufferPx]=\"tableMaxBufferPx\"\r\n [adaptionHeight]=\"tableAdaptionHeight\"\r\n [docPercent]=\"tableDocPercent\"\r\n ></x-table>\r\n </div>\r\n <div *ngIf=\"multiple\" class=\"x-find-dialog-checked\" [class.x-find-empty]=\"getEmpty\" [style.height.px]=\"height\">\r\n <x-empty *ngIf=\"getEmpty\" [content]=\"dialogEmptyContent\"></x-empty>\r\n <div class=\"x-find-dialog-tags\">\r\n <x-tag *ngFor=\"let item of temp; index as i; trackBy: trackByItem\" closable (close)=\"tempClose(i, item)\">\r\n <span>{{ item[columnLabel] }}</span>\r\n </x-tag>\r\n </div>\r\n </div>\r\n </div>\r\n</x-dialog>\r\n\r\n<ng-template #treeLabelTpl let-node=\"$node\">\r\n <div class=\"x-find-dialog-tree-node\">\r\n <span>{{ node.label }} </span>\r\n <x-icon type=\"fto-check\" *ngIf=\"node.$checked\"></x-icon>\r\n </div>\r\n</ng-template>\r\n", styles: ["@charset \"UTF-8\";.x-find{margin:0;padding:0;width:100%}.x-find.x-flex{display:flex}.x-find.x-justify-start{justify-content:flex-start}.x-find.x-justify-center{justify-content:center}.x-find.x-justify-end{justify-content:flex-end}.x-find.x-justify-space-between{justify-content:space-between}.x-find.x-justify-space-around{justify-content:space-around}.x-find.x-align-start{align-items:flex-start}.x-find.x-align-center{align-items:center}.x-find.x-align-end{align-items:flex-end}.x-find.x-direction-column{flex-direction:column}.x-find.x-direction-column-reverse{flex-direction:column-reverse}.x-find.x-direction-row{flex-direction:row}.x-find.x-direction-row-reverse{flex-direction:row-reverse}.x-find>label{display:inline-block;white-space:nowrap;position:relative;color:var(--x-text-300);font-weight:600}.x-find>label.x-text-align-start{text-align:start}.x-find>label.x-text-align-center{text-align:center}.x-find>label.x-text-align-end{text-align:end}.x-find-label-required:before{display:inline-block;margin-right:.25rem;color:var(--x-danger);line-height:1;font-size:var(--x-font-size-small);content:\"*\"}.x-find-row{flex:1;display:flex;align-items:flex-start;position:relative}.x-find-tags{margin:-.0625rem -.0625rem -.0625rem .4375rem}.x-find-tags>x-tag{margin:.0625rem}.x-find.x-required>label{color:var(--x-danger)}.x-find.x-direction-row>label{padding:0 .5rem 0 0}.x-find.x-direction-row-reverse>label{padding:0 0 0 .5rem}.x-find.x-direction-column,.x-find.x-direction-column-reverse{align-items:inherit}.x-find-big>label{height:var(--x-height-big);line-height:var(--x-height-big)}.x-find-large>label{height:var(--x-height-large);line-height:var(--x-height-large)}.x-find-medium>label{height:var(--x-height-medium);line-height:var(--x-height-medium)}.x-find-small>label{height:var(--x-height-small);line-height:var(--x-height-small)}.x-find-small .x-find-tags{margin-top:-.1875rem}.x-find-small .x-find-tags>x-tag{margin-top:.125rem}.x-find-mini>label{height:var(--x-height-mini);line-height:var(--x-height-mini)}.x-find-mini .x-find-tags{margin-top:-.25rem}.x-find-mini .x-find-tags>x-tag{margin-top:.125rem}.x-find-dialog{flex:1;display:flex}.x-find-dialog-table{flex:1;min-height:18.75rem;height:-moz-fit-content;height:fit-content}.x-find-dialog-tree{flex:1;min-height:18.75rem;max-height:25rem;overflow-y:auto}.x-find-dialog-tree .x-tree-node-content.x-activated{color:var(--x-primary)}.x-find-dialog-tree-node{flex:1;display:flex;align-items:center;justify-content:space-between}.x-find-dialog-tree-node>span{flex:1;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;-webkit-user-select:none;user-select:none}.x-find-dialog-tree-table .x-find-dialog-tree{flex:initial;min-height:initial;max-height:initial;width:14rem;margin-right:1rem;padding-right:1rem;border-right:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-find-dialog-checked{margin-left:1rem;border-left:var(--x-border-width) var(--x-border-style) var(--x-border);padding-left:1rem;width:10rem;overflow-y:auto;height:100%}.x-find-dialog-checked x-tag{display:block}.x-find-dialog-checked x-tag:not(:first-child){margin-top:.5rem}.x-find-dialog-checked x-tag .x-tag{width:100%;display:flex;justify-content:space-between}.x-find-dialog-checked x-tag .x-tag>span{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.x-find-dialog-checked.x-find-empty{display:flex;align-items:center;justify-content:center}.x-find-search{display:flex;padding:.3rem}.x-find-search .x-input,.x-find-search x-input{width:15rem}.x-find-search .x-button{margin-left:.5rem}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4.XTagComponent, selector: "x-tag" }, { kind: "component", type: i5.XButtonComponent, selector: "x-button" }, { kind: "component", type: i6.XDialogComponent, selector: "x-dialog" }, { kind: "component", type: i7.XTableComponent, selector: "x-table" }, { kind: "component", type: i8.XTreeComponent, selector: "x-tree" }, { kind: "component", type: i9.XIconComponent, selector: "x-icon" }, { kind: "component", type: i10.XEmptyComponent, selector: "x-empty" }, { kind: "component", type: i11.XInputComponent, selector: "x-input" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
331
334
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: XFindComponent, decorators: [{
|
|
332
335
|
type: Component,
|
|
333
|
-
args: [{ selector: `${XFindPrefix}`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [XValueAccessor(XFindComponent)], template: "<div\r\n #find\r\n class=\"x-find\"\r\n [class.x-flex]=\"justify || align || direction\"\r\n [class.x-checked]=\"value\"\r\n [class.x-disabled]=\"disabled\"\r\n [class.x-required]=\"requiredIsEmpty\"\r\n [class.x-invalid]=\"invalid\"\r\n [ngClass]=\"classMap\"\r\n>\r\n <label *ngIf=\"label\" [style.width]=\"labelWidth\" [ngClass]=\"labelMap\">{{ label }}</label>\r\n <div class=\"x-find-row\">\r\n <x-button
|
|
336
|
+
args: [{ selector: `${XFindPrefix}`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [XValueAccessor(XFindComponent)], template: "<div\r\n #find\r\n class=\"x-find\"\r\n [class.x-flex]=\"justify || align || direction\"\r\n [class.x-checked]=\"value\"\r\n [class.x-disabled]=\"disabled\"\r\n [class.x-required]=\"requiredIsEmpty\"\r\n [class.x-invalid]=\"invalid\"\r\n [ngClass]=\"classMap\"\r\n>\r\n <label *ngIf=\"label\" [class.x-find-label-required]=\"required\" [style.width]=\"labelWidth\" [ngClass]=\"labelMap\">{{ label }}</label>\r\n <div class=\"x-find-row\">\r\n <x-button\r\n #buttonCom\r\n icon=\"fto-search\"\r\n [onlyIcon]=\"!bordered\"\r\n [size]=\"size\"\r\n [disabled]=\"disabled\"\r\n attrType=\"button\"\r\n (click)=\"showModal()\"\r\n ></x-button>\r\n <div class=\"x-find-tags\">\r\n <ng-container *ngIf=\"multiple; else singleTpl\">\r\n <x-tag\r\n *ngFor=\"let item of value; index as i; trackBy: trackByItem\"\r\n closable\r\n [size]=\"size\"\r\n [bordered]=\"bordered\"\r\n [disabled]=\"disabled\"\r\n (close)=\"tagClose(i)\"\r\n >{{ item[columnLabel] }}</x-tag\r\n >\r\n </ng-container>\r\n <ng-template #singleTpl>\r\n <x-tag *ngIf=\"value\" closable [disabled]=\"disabled\" [bordered]=\"bordered\" [size]=\"size\" (close)=\"tagClose()\">{{\r\n value[columnLabel]\r\n }}</x-tag>\r\n </ng-template>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<x-dialog\r\n #dialogCom\r\n [title]=\"dialogTitle\"\r\n [width]=\"dialogWidth\"\r\n [height]=\"dialogHeight\"\r\n [buttonsCenter]=\"dialogButtonsCenter\"\r\n [(visible)]=\"dialogVisible\"\r\n (visibleChange)=\"dialogVisibleChange.emit($event)\"\r\n (closeDone)=\"dialogCloseDone()\"\r\n (cancel)=\"closeModal()\"\r\n (close)=\"closeModal()\"\r\n (confirm)=\"sure()\"\r\n>\r\n <div class=\"x-find-dialog\" [class.x-find-dialog-tree-table]=\"hasTable && hasTree\">\r\n <div class=\"x-find-dialog-tree\" *ngIf=\"hasTree\" #treeRef [style.height.px]=\"hasTreeTable && multiple && height\">\r\n <x-tree\r\n #treeCom\r\n [data]=\"treeData\"\r\n nodeHeight=\"1.8\"\r\n [(manual)]=\"dialogVisible\"\r\n [activatedId]=\"treeActivatedId\"\r\n [expandedLevel]=\"treeExpandedLevel\"\r\n (activatedChange)=\"treeActivatedClick($event)\"\r\n [checkbox]=\"hasTreeMultiple\"\r\n [checked]=\"treeChecked\"\r\n (checkboxChange)=\"treeCheckboxChange($event)\"\r\n [levelCheck]=\"!hasTreeMultiple\"\r\n ></x-tree>\r\n </div>\r\n <div class=\"x-find-dialog-table\" *ngIf=\"hasTable\" #tableRef>\r\n <div class=\"x-find-search\" *ngIf=\"hasSearch\">\r\n <x-input [label]=\"search.label\" direction=\"row\" (xKeydown)=\"searchKeyDown($event)\" [(ngModel)]=\"search.value\"></x-input>\r\n <x-button type=\"primary\" plain (click)=\"searchClick()\">{{ search.button || '\u67E5\u8BE2' }}</x-button>\r\n </div>\r\n <x-table\r\n #tableCom\r\n [data]=\"tableData\"\r\n [columns]=\"tableColumns\"\r\n [(manual)]=\"dialogVisible\"\r\n [(index)]=\"tableIndex\"\r\n [(size)]=\"tableSize\"\r\n [query]=\"tableQuery\"\r\n [total]=\"tableTotal\"\r\n [allowSelectRow]=\"!multiple\"\r\n [allowCheckRow]=\"multiple\"\r\n [checkedRow]=\"tableCheckedRow\"\r\n [loading]=\"tableLoading\"\r\n (indexChange)=\"tableIndexChange.emit($event)\"\r\n (sortChange)=\"tableSortChange.emit($event)\"\r\n [(activatedRow)]=\"tableActivatedRow\"\r\n (activatedRowChange)=\"tableActivatedRowChange($event)\"\r\n [rowHeight]=\"tableRowHeight\"\r\n [bodyHeight]=\"tableBodyHeight\"\r\n [virtualScroll]=\"tableVirtualScroll\"\r\n [minBufferPx]=\"tableMinBufferPx\"\r\n [maxBufferPx]=\"tableMaxBufferPx\"\r\n [adaptionHeight]=\"tableAdaptionHeight\"\r\n [docPercent]=\"tableDocPercent\"\r\n ></x-table>\r\n </div>\r\n <div *ngIf=\"multiple\" class=\"x-find-dialog-checked\" [class.x-find-empty]=\"getEmpty\" [style.height.px]=\"height\">\r\n <x-empty *ngIf=\"getEmpty\" [content]=\"dialogEmptyContent\"></x-empty>\r\n <div class=\"x-find-dialog-tags\">\r\n <x-tag *ngFor=\"let item of temp; index as i; trackBy: trackByItem\" closable (close)=\"tempClose(i, item)\">\r\n <span>{{ item[columnLabel] }}</span>\r\n </x-tag>\r\n </div>\r\n </div>\r\n </div>\r\n</x-dialog>\r\n\r\n<ng-template #treeLabelTpl let-node=\"$node\">\r\n <div class=\"x-find-dialog-tree-node\">\r\n <span>{{ node.label }} </span>\r\n <x-icon type=\"fto-check\" *ngIf=\"node.$checked\"></x-icon>\r\n </div>\r\n</ng-template>\r\n", styles: ["@charset \"UTF-8\";.x-find{margin:0;padding:0;width:100%}.x-find.x-flex{display:flex}.x-find.x-justify-start{justify-content:flex-start}.x-find.x-justify-center{justify-content:center}.x-find.x-justify-end{justify-content:flex-end}.x-find.x-justify-space-between{justify-content:space-between}.x-find.x-justify-space-around{justify-content:space-around}.x-find.x-align-start{align-items:flex-start}.x-find.x-align-center{align-items:center}.x-find.x-align-end{align-items:flex-end}.x-find.x-direction-column{flex-direction:column}.x-find.x-direction-column-reverse{flex-direction:column-reverse}.x-find.x-direction-row{flex-direction:row}.x-find.x-direction-row-reverse{flex-direction:row-reverse}.x-find>label{display:inline-block;white-space:nowrap;position:relative;color:var(--x-text-300);font-weight:600}.x-find>label.x-text-align-start{text-align:start}.x-find>label.x-text-align-center{text-align:center}.x-find>label.x-text-align-end{text-align:end}.x-find-label-required:before{display:inline-block;margin-right:.25rem;color:var(--x-danger);line-height:1;font-size:var(--x-font-size-small);content:\"*\"}.x-find-row{flex:1;display:flex;align-items:flex-start;position:relative}.x-find-tags{margin:-.0625rem -.0625rem -.0625rem .4375rem}.x-find-tags>x-tag{margin:.0625rem}.x-find.x-required>label{color:var(--x-danger)}.x-find.x-direction-row>label{padding:0 .5rem 0 0}.x-find.x-direction-row-reverse>label{padding:0 0 0 .5rem}.x-find.x-direction-column,.x-find.x-direction-column-reverse{align-items:inherit}.x-find-big>label{height:var(--x-height-big);line-height:var(--x-height-big)}.x-find-large>label{height:var(--x-height-large);line-height:var(--x-height-large)}.x-find-medium>label{height:var(--x-height-medium);line-height:var(--x-height-medium)}.x-find-small>label{height:var(--x-height-small);line-height:var(--x-height-small)}.x-find-small .x-find-tags{margin-top:-.1875rem}.x-find-small .x-find-tags>x-tag{margin-top:.125rem}.x-find-mini>label{height:var(--x-height-mini);line-height:var(--x-height-mini)}.x-find-mini .x-find-tags{margin-top:-.25rem}.x-find-mini .x-find-tags>x-tag{margin-top:.125rem}.x-find-dialog{flex:1;display:flex}.x-find-dialog-table{flex:1;min-height:18.75rem;height:-moz-fit-content;height:fit-content}.x-find-dialog-tree{flex:1;min-height:18.75rem;max-height:25rem;overflow-y:auto}.x-find-dialog-tree .x-tree-node-content.x-activated{color:var(--x-primary)}.x-find-dialog-tree-node{flex:1;display:flex;align-items:center;justify-content:space-between}.x-find-dialog-tree-node>span{flex:1;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;-webkit-user-select:none;user-select:none}.x-find-dialog-tree-table .x-find-dialog-tree{flex:initial;min-height:initial;max-height:initial;width:14rem;margin-right:1rem;padding-right:1rem;border-right:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-find-dialog-checked{margin-left:1rem;border-left:var(--x-border-width) var(--x-border-style) var(--x-border);padding-left:1rem;width:10rem;overflow-y:auto;height:100%}.x-find-dialog-checked x-tag{display:block}.x-find-dialog-checked x-tag:not(:first-child){margin-top:.5rem}.x-find-dialog-checked x-tag .x-tag{width:100%;display:flex;justify-content:space-between}.x-find-dialog-checked x-tag .x-tag>span{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.x-find-dialog-checked.x-find-empty{display:flex;align-items:center;justify-content:center}.x-find-search{display:flex;padding:.3rem}.x-find-search .x-input,.x-find-search x-input{width:15rem}.x-find-search .x-button{margin-left:.5rem}\n"] }]
|
|
334
337
|
}], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ChangeDetectorRef }, { type: i1.XConfigService }]; }, propDecorators: { find: [{
|
|
335
338
|
type: ViewChild,
|
|
336
339
|
args: ['find', { static: true }]
|
|
@@ -353,4 +356,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
|
|
|
353
356
|
type: ViewChild,
|
|
354
357
|
args: ['treeRef']
|
|
355
358
|
}] } });
|
|
356
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmluZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvbmctbmVzdC91aS9maW5kL2ZpbmQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvZmluZC9maW5kLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBRVQsaUJBQWlCLEVBQ2pCLHVCQUF1QixFQUl2QixTQUFTLEVBRVYsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGFBQWEsRUFBRSxXQUFXLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFrQixRQUFRLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUkzRyxPQUFPLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7Ozs7Ozs7Ozs7OztBQVV2RCxNQUFNLE9BQU8sY0FBZSxTQUFRLGFBQWE7SUFvRS9DLFlBQW1CLFFBQW1CLEVBQVUsR0FBc0IsRUFBUyxhQUE2QjtRQUMxRyxLQUFLLEVBQUUsQ0FBQztRQURTLGFBQVEsR0FBUixRQUFRLENBQVc7UUFBVSxRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUFTLGtCQUFhLEdBQWIsYUFBYSxDQUFnQjtRQVY1RyxXQUFNLEdBQUcsR0FBRyxDQUFDO1FBRUwsZUFBVSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7SUFVekMsQ0FBQztJQTlERCxJQUFXLFFBQVE7UUFDakIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3hCLENBQUM7SUFDRCxJQUNXLFFBQVEsQ0FBQyxLQUFp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QUMsV0FBVztnQkFDQyxRQUFRO3NCQUE5QixTQUFTO3VCQUFDLFVBQVU7Z0JBQ0MsT0FBTztzQkFBNUIsU0FBUzt1QkFBQyxTQUFTO2dCQUNJLFNBQVM7c0JBQWhDLFNBQVM7dUJBQUMsV0FBVztnQkFPWCxRQUFRO3NCQURsQixTQUFTO3VCQUFDLFVBQVU7Z0JBYVYsT0FBTztzQkFEakIsU0FBUzt1QkFBQyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgT25Jbml0LFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIFJlbmRlcmVyMixcclxuICBFbGVtZW50UmVmLFxyXG4gIFZpZXdDaGlsZCxcclxuICBTaW1wbGVDaGFuZ2VzXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFhGaW5kUHJvcGVydHksIFhGaW5kUHJlZml4IH0gZnJvbSAnLi9maW5kLnByb3BlcnR5JztcclxuaW1wb3J0IHsgWENsZWFyQ2xhc3MsIFhSZXNpemUsIFhJc1VuZGVmaW5lZCwgWElzQ2hhbmdlLCBYQ29uZmlnU2VydmljZSwgWElzRW1wdHkgfSBmcm9tICdAbmctbmVzdC91aS9jb3JlJztcclxuaW1wb3J0IHsgWFRhYmxlQ29tcG9uZW50LCBYVGFibGVSb3cgfSBmcm9tICdAbmctbmVzdC91aS90YWJsZSc7XHJcbmltcG9ydCB7IFhEaWFsb2dDb21wb25lbnQgfSBmcm9tICdAbmctbmVzdC91aS9kaWFsb2cnO1xyXG5pbXBvcnQgeyBYQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnQG5nLW5lc3QvdWkvYnV0dG9uJztcclxuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IFN1YmplY3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgWFRyZWVOb2RlLCBYVHJlZUNvbXBvbmVudCB9IGZyb20gJ0BuZy1uZXN0L3VpL3RyZWUnO1xyXG5pbXBvcnQgeyBYVmFsdWVBY2Nlc3NvciB9IGZyb20gJ0BuZy1uZXN0L3VpL2Jhc2UtZm9ybSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogYCR7WEZpbmRQcmVmaXh9YCxcclxuICB0ZW1wbGF0ZVVybDogJy4vZmluZC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZmluZC5jb21wb25lbnQuc2NzcyddLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgcHJvdmlkZXJzOiBbWFZhbHVlQWNjZXNzb3IoWEZpbmRDb21wb25lbnQpXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgWEZpbmRDb21wb25lbnQgZXh0ZW5kcyBYRmluZFByb3BlcnR5IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBAVmlld0NoaWxkKCdmaW5kJywgeyBzdGF0aWM6IHRydWUgfSkgZmluZCE6IEVsZW1lbnRSZWY7XHJcbiAgQFZpZXdDaGlsZCgnZGlhbG9nQ29tJykgZGlhbG9nQ29tITogWERpYWxvZ0NvbXBvbmVudDtcclxuICBAVmlld0NoaWxkKCd0YWJsZUNvbScpIHRhYmxlQ29tITogWFRhYmxlQ29tcG9uZW50O1xyXG4gIEBWaWV3Q2hpbGQoJ3RyZWVDb20nKSB0cmVlQ29tITogWFRyZWVDb21wb25lbnQ7XHJcbiAgQFZpZXdDaGlsZCgnYnV0dG9uQ29tJykgYnV0dG9uQ29tITogWEJ1dHRvbkNvbXBvbmVudDtcclxuXHJcbiAgcHJpdmF0ZSBfdGFibGVSZWYhOiBFbGVtZW50UmVmO1xyXG4gIHB1YmxpYyBnZXQgdGFibGVSZWYoKTogRWxlbWVudFJlZiB7XHJcbiAgICByZXR1cm4gdGhpcy5fdGFibGVSZWY7XHJcbiAgfVxyXG4gIEBWaWV3Q2hpbGQoJ3RhYmxlUmVmJylcclxuICBwdWJsaWMgc2V0IHRhYmxlUmVmKHZhbHVlOiBFbGVtZW50UmVmKSB7XHJcbiAgICB0aGlzLl90YWJsZVJlZiA9IHZhbHVlO1xyXG4gICAgaWYgKHZhbHVlICYmIHRoaXMubXVsdGlwbGUpIHtcclxuICAgICAgdGhpcy5zZXRTdWJzY3JpYmUoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3RyZWVSZWYhOiBFbGVtZW50UmVmO1xyXG4gIHB1YmxpYyBnZXQgdHJlZVJlZigpOiBFbGVtZW50UmVmIHtcclxuICAgIHJldHVybiB0aGlzLl90cmVlUmVmO1xyXG4gIH1cclxuICBAVmlld0NoaWxkKCd0cmVlUmVmJylcclxuICBwdWJsaWMgc2V0IHRyZWVSZWYodmFsdWU6IEVsZW1lbnRSZWYpIHtcclxuICAgIHRoaXMuX3RyZWVSZWYgPSB2YWx1ZTtcclxuICAgIGlmICh2YWx1ZSAmJiB0aGlzLm11bHRpcGxlKSB7XHJcbiAgICAgIHRoaXMuc2V0U3Vic2NyaWJlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXQgZ2V0RW1wdHkoKSB7XHJcbiAgICByZXR1cm4gIXRoaXMudGVtcCB8fCB0aGlzLnRlbXAubGVuZ3RoID09PSAwO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGhhc1RhYmxlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMudGFibGVDb2x1bW5zPy5sZW5ndGggPiAwO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGhhc1RyZWUoKSB7XHJcbiAgICByZXR1cm4gKFxyXG4gICAgICAoQXJyYXkuaXNBcnJheSh0aGlzLnRyZWVEYXRhKSAmJiB0aGlzLnRyZWVEYXRhLmxlbmd0aCA+IDApIHx8IHRoaXMudHJlZURhdGEgaW5zdGFuY2VvZiBGdW5jdGlvbiB8fCB0aGlzLnRyZWVEYXRhIGluc3RhbmNlb2YgT2JzZXJ2YWJsZVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldCBoYXNUcmVlVGFibGUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5oYXNUYWJsZSAmJiB0aGlzLmhhc1RyZWU7XHJcbiAgfVxyXG5cclxuICBnZXQgaGFzVHJlZU11bHRpcGxlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuaGFzVHJlZSAmJiAhdGhpcy5oYXNUcmVlVGFibGUgJiYgdGhpcy5tdWx0aXBsZTtcclxuICB9XHJcblxyXG4gIGdldCBoYXNTZWFyY2goKSB7XHJcbiAgICByZXR1cm4gdGhpcy5zZWFyY2ggJiYgdGhpcy5oYXNUYWJsZTtcclxuICB9XHJcblxyXG4gIHRlbXA6IGFueTtcclxuICBoZWlnaHQgPSAxMDA7XHJcblxyXG4gIHByaXZhdGUgX3VuU3ViamVjdCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcbiAgcHJpdmF0ZSBfcmVzaXplT2JzZXJ2ZXIhOiBSZXNpemVPYnNlcnZlcjtcclxuXHJcbiAgb3ZlcnJpZGUgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KSB7XHJcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgcmVuZGVyZXI6IFJlbmRlcmVyMiwgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmLCBwdWJsaWMgY29uZmlnU2VydmljZTogWENvbmZpZ1NlcnZpY2UpIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhzaW1wbGVzOiBTaW1wbGVDaGFuZ2VzKSB7XHJcbiAgICBjb25zdCB7IHRhYmxlRGF0YSwgbGFiZWxBbGlnbiwgc2l6ZSB9ID0gc2ltcGxlcztcclxuICAgIFhJc0NoYW5nZSh0YWJsZURhdGEpICYmIHRoaXMuc2V0VGFibGVDaGVja2VkUm93KCk7XHJcbiAgICBYSXNDaGFuZ2UobGFiZWxBbGlnbiwgc2l6ZSkgJiYgdGhpcy5zZXRDbGFzc01hcCgpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLnNldEZsZXgodGhpcy5maW5kLm5hdGl2ZUVsZW1lbnQsIHRoaXMucmVuZGVyZXIsIHRoaXMuanVzdGlmeSwgdGhpcy5hbGlnbiwgdGhpcy5kaXJlY3Rpb24pO1xyXG4gICAgdGhpcy5zZXRDbGFzc01hcCgpO1xyXG4gICAgdGhpcy5zZXRNdWx0aXBsZSgpO1xyXG4gICAgdGhpcy5zZXRXaWR0aCgpO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgaWYgKHRoaXMudmFsdWUpIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fcmVzaXplT2JzZXJ2ZXI/LmRpc2Nvbm5lY3QoKTtcclxuICB9XHJcblxyXG4gIHNldENsYXNzTWFwKCkge1xyXG4gICAgWENsZWFyQ2xhc3ModGhpcy5sYWJlbE1hcCwgdGhpcy5jbGFzc01hcCk7XHJcbiAgICB0aGlzLmxhYmVsTWFwW2B4LXRleHQtYWxpZ24tJHt0aGlzLmxhYmVsQWxpZ259YF0gPSB0aGlzLmxhYmVsQWxpZ24gPyB0cnVlIDogZmFsc2U7XHJcbiAgICB0aGlzLmNsYXNzTWFwW2B4LWZpbmQtJHt0aGlzLnNpemV9YF0gPSAhWElzRW1wdHkodGhpcy5zaXplKTtcclxuICB9XHJcblxyXG4gIHNldFN1YnNjcmliZSgpIHtcclxuICAgIGxldCByZXNpemVSZWY6IEVsZW1lbnRbXSA9IFtdO1xyXG4gICAgaWYgKHRoaXMuaGFzVGFibGUpIHtcclxuICAgICAgcmVzaXplUmVmID0gW3RoaXMudGFibGVSZWY/Lm5hdGl2ZUVsZW1lbnRdO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuaGFzVHJlZSAmJiAhdGhpcy5oYXNUcmVlVGFibGUpIHtcclxuICAgICAgcmVzaXplUmVmLnB1c2godGhpcy50cmVlUmVmPy5uYXRpdmVFbGVtZW50KTtcclxuICAgIH1cclxuICAgIHRoaXMuX3VuU3ViamVjdC5uZXh0KCk7XHJcbiAgICBYUmVzaXplKC4uLnJlc2l6ZVJlZilcclxuICAgICAgLnBpcGUoZGVib3VuY2VUaW1lKDMwKSwgdGFrZVVudGlsKHRoaXMuX3VuU3ViamVjdCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKHgpID0+IHtcclxuICAgICAgICB0aGlzLl9yZXNpemVPYnNlcnZlciA9IHgucmVzaXplT2JzZXJ2ZXI7XHJcbiAgICAgICAgaWYgKHRoaXMudGFibGVSZWYpIHtcclxuICAgICAgICAgIHRoaXMuaGVpZ2h0ID0gdGhpcy50YWJsZVJlZi5uYXRpdmVFbGVtZW50LmNsaWVudEhlaWdodDtcclxuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuaGFzVHJlZSkge1xyXG4gICAgICAgICAgdGhpcy5oZWlnaHQgPSB0aGlzLnRyZWVSZWY/Lm5hdGl2ZUVsZW1lbnQuY2xpZW50SGVpZ2h0O1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgc2V0TXVsdGlwbGUoKSB7XHJcbiAgICBpZiAoIXRoaXMubXVsdGlwbGUpIHJldHVybjtcclxuICAgIGlmICh0aGlzLmhhc1RhYmxlKSB7XHJcbiAgICAgIGlmICghdGhpcy50YWJsZUNvbHVtbnMuZmluZCgoeCkgPT4geC5yb3dDaGVja2VkKSkge1xyXG4gICAgICAgIHRoaXMudGFibGVDb2x1bW5zID0gW1xyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICBpZDogJyRjaGVja2VkJyxcclxuICAgICAgICAgICAgbGFiZWw6IHRoaXMuZGlhbG9nQ2hlY2tib3hMYWJlbCxcclxuICAgICAgICAgICAgcm93Q2hlY2tlZDogdHJ1ZSxcclxuICAgICAgICAgICAgdHlwZTogJ2NoZWNrYm94JyxcclxuICAgICAgICAgICAgd2lkdGg6IHRoaXMuZGlhbG9nQ2hlY2tib3hXaWR0aFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIC4uLnRoaXMudGFibGVDb2x1bW5zXHJcbiAgICAgICAgXTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0V2lkdGgoKSB7XHJcbiAgICBpZiAoWElzVW5kZWZpbmVkKHRoaXMuZGlhbG9nV2lkdGgpKSB7XHJcbiAgICAgIGlmICgodGhpcy5oYXNUYWJsZSAmJiB0aGlzLmhhc1RyZWUpIHx8IHRoaXMuaGFzVGFibGUpIHtcclxuICAgICAgICB0aGlzLmRpYWxvZ1dpZHRoID0gJzUwcmVtJztcclxuICAgICAgfSBlbHNlIGlmICh0aGlzLmhhc1RyZWUgJiYgdGhpcy5tdWx0aXBsZSkge1xyXG4gICAgICAgIHRoaXMuZGlhbG9nV2lkdGggPSAnMzByZW0nO1xyXG4gICAgICB9IGVsc2UgaWYgKHRoaXMuaGFzVHJlZSkge1xyXG4gICAgICAgIHRoaXMuZGlhbG9nV2lkdGggPSAnMjByZW0nO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzaG93TW9kYWwoKSB7XHJcbiAgICBpZiAodGhpcy5kaXNhYmxlZCkgcmV0dXJuO1xyXG4gICAgdGhpcy5kaWFsb2dWaXNpYmxlID0gdHJ1ZTtcclxuICAgIHRoaXMuZGlhbG9nVmlzaWJsZUNoYW5nZS5lbWl0KHRoaXMuZGlhbG9nVmlzaWJsZSk7XHJcbiAgICBpZiAodGhpcy52YWx1ZSkge1xyXG4gICAgICBpZiAodGhpcy5tdWx0aXBsZSkge1xyXG4gICAgICAgIHRoaXMudGVtcCA9ICh0aGlzLnZhbHVlIGFzIEFycmF5PGFueT4pLm1hcCgoeCkgPT4gT2JqZWN0LmFzc2lnbih7fSwgeCkpO1xyXG4gICAgICAgIHRoaXMuc2V0VGFibGVDaGVja2VkUm93KCk7XHJcbiAgICAgICAgdGhpcy5zZXRUcmVlQ2hlY2tlZCgpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMudGFibGVBY3RpdmF0ZWRSb3cgPSB0aGlzLnZhbHVlO1xyXG4gICAgICAgIGlmICghdGhpcy5oYXNUcmVlVGFibGUgJiYgdGhpcy5oYXNUcmVlKSB7XHJcbiAgICAgICAgICB0aGlzLnRyZWVBY3RpdmF0ZWRJZCA9IHRoaXMudmFsdWUuaWQ7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnRlbXAgPSB0aGlzLm11bHRpcGxlID8gW10gOiBudWxsO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuaGFzVGFibGUpIHtcclxuICAgICAgdGhpcy50YWJsZUNvbS52aXJ0dWFsQm9keT8uc2Nyb2xsVG9JbmRleCgwKTtcclxuICAgICAgdGhpcy50YWJsZUNvbS52aXJ0dWFsQm9keT8uY2hlY2tWaWV3cG9ydFNpemUoKTtcclxuICAgIH1cclxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIHNldFRhYmxlQ2hlY2tlZFJvdygpIHtcclxuICAgIGlmICghdGhpcy5tdWx0aXBsZSB8fCBYSXNVbmRlZmluZWQodGhpcy50ZW1wKSkgcmV0dXJuO1xyXG4gICAgY29uc3QgaWRzID0gKHRoaXMudGVtcCBhcyBBcnJheTxhbnk+KS5tYXAoKHgpID0+IHguaWQpO1xyXG4gICAgdGhpcy50YWJsZUNoZWNrZWRSb3cgPSB7XHJcbiAgICAgIC4uLnRoaXMudGFibGVDaGVja2VkUm93LFxyXG4gICAgICAkY2hlY2tlZDogaWRzXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgc2V0VHJlZUNoZWNrZWQoKSB7XHJcbiAgICBpZiAodGhpcy5oYXNUcmVlTXVsdGlwbGUpIHRoaXMudHJlZUNoZWNrZWQgPSB0aGlzLnRlbXAubWFwKCh4OiBhbnkpID0+IHguaWQpO1xyXG4gIH1cclxuXHJcbiAgc3VyZSgpIHtcclxuICAgIHRoaXMudmFsdWUgPSB0aGlzLnRlbXA7XHJcbiAgICB0aGlzLm9uQ2hhbmdlKHRoaXMudmFsdWUpO1xyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgY2xvc2VNb2RhbCgpIHtcclxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIGRpYWxvZ0Nsb3NlRG9uZSgpIHtcclxuICAgIGlmICh0aGlzLmhhc1RyZWUpIHtcclxuICAgICAgdGhpcy50cmVlQWN0aXZhdGVkSWQgPSBudWxsO1xyXG4gICAgICB0aGlzLnRlbXAgPSBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgdGVtcENsb3NlKGluZGV4OiBudW1iZXIsIGl0ZW06IGFueSkge1xyXG4gICAgdGhpcy50ZW1wLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICBpZiAodGhpcy5oYXNUYWJsZSkge1xyXG4gICAgICBsZXQgaXQgPSB0aGlzLnRhYmxlQ29tPy50YWJsZURhdGEuZmluZCgoeCkgPT4gaXRlbS5pZCA9PT0geC5pZCk7XHJcbiAgICAgIGlmIChpdCkge1xyXG4gICAgICAgIGl0WyckY2hlY2tlZCddID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy50YWJsZUNvbT8uYm9keUNoYW5nZSgpO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMuaGFzVHJlZSkge1xyXG4gICAgICBsZXQgaXQgPSB0aGlzLnRyZWVDb20/LnRyZWVEYXRhLmZpbmQoKHgpID0+IGl0ZW0uaWQgPT09IHguaWQpO1xyXG4gICAgICBpZiAoaXQpIHtcclxuICAgICAgICBpdC5jaGVja2VkID0gZmFsc2U7XHJcbiAgICAgICAgaXQuY2hhbmdlICYmIGl0LmNoYW5nZSgpO1xyXG4gICAgICAgIHRoaXMudHJlZUNvbT8uY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIHRhZ0Nsb3NlKGluZGV4OiBudW1iZXIgPSAtMSkge1xyXG4gICAgaWYgKGluZGV4ID49IDApIHtcclxuICAgICAgdGhpcy52YWx1ZS5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy52YWx1ZSA9IG51bGw7XHJcbiAgICAgIHRoaXMudGFibGVBY3RpdmF0ZWRSb3cgPSBudWxsO1xyXG4gICAgICBpZiAoIXRoaXMuaGFzVHJlZVRhYmxlICYmIHRoaXMuaGFzVHJlZSkge1xyXG4gICAgICAgIHRoaXMudHJlZUFjdGl2YXRlZElkID0gbnVsbDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgdGhpcy5vbkNoYW5nZSh0aGlzLnZhbHVlKTtcclxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIHRhYmxlQWN0aXZhdGVkUm93Q2hhbmdlKGRhdGE6IFhUYWJsZVJvdykge1xyXG4gICAgaWYgKHRoaXMubXVsdGlwbGUpIHtcclxuICAgICAgdGhpcy5yb3dNdWx0aXBsZShkYXRhKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMudGVtcCA9IGRhdGE7XHJcbiAgICAgIHRoaXMuc3VyZSgpO1xyXG4gICAgICB0aGlzLmRpYWxvZ1Zpc2libGUgPSBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJvd011bHRpcGxlKGRhdGE6IFhUYWJsZVJvdykge1xyXG4gICAgaWYgKHR5cGVvZiB0aGlzLnRlbXAgPT09ICd1bmRlZmluZWQnKSB0aGlzLnRlbXAgPSBbXTtcclxuICAgIGlmIChkYXRhWyckY2hlY2tlZCddKSB7XHJcbiAgICAgIHRoaXMudGVtcCA9IFsuLi50aGlzLnRlbXAsIGRhdGFdO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy50ZW1wLnNwbGljZShcclxuICAgICAgICAodGhpcy50ZW1wIGFzIEFycmF5PGFueT4pLmZpbmRJbmRleCgoeCkgPT4geC5pZCA9PT0gZGF0YS5pZCksXHJcbiAgICAgICAgMVxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgdHJlZU11bHRpcGxlKG5vZGU6IFhUcmVlTm9kZSkge1xyXG4gICAgaWYgKHR5cGVvZiB0aGlzLnRlbXAgPT09ICd1bmRlZmluZWQnKSB0aGlzLnRlbXAgPSBbXTtcclxuICAgIC8vIG5vZGUuJGNoZWNrZWQgPSAhbm9kZS4kY2hlY2tlZDtcclxuICAgIGlmIChub2RlLmNoZWNrZWQpIHtcclxuICAgICAgdGhpcy50ZW1wID0gWy4uLnRoaXMudGVtcCwgbm9kZV07XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnRlbXAuc3BsaWNlKFxyXG4gICAgICAgICh0aGlzLnRlbXAgYXMgQXJyYXk8YW55PikuZmluZEluZGV4KCh4KSA9PiB4LmlkID09PSBub2RlLmlkKSxcclxuICAgICAgICAxXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICB0cmVlQWN0aXZhdGVkQ2xpY2sobm9kZTogWFRyZWVOb2RlKSB7XHJcbiAgICBpZiAoIXRoaXMuaGFzVHJlZVRhYmxlICYmIHRoaXMuaGFzVHJlZSkge1xyXG4gICAgICBpZiAodGhpcy5tdWx0aXBsZSkge1xyXG4gICAgICAgIC8vIHRoaXMudHJlZU11bHRpcGxlKG5vZGUpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMudGVtcCA9IG5vZGU7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSBpZiAodGhpcy5oYXNUcmVlVGFibGUgJiYgdGhpcy50cmVlVGFibGVDb25uZWN0KSB7XHJcbiAgICAgIGlmICghdGhpcy50YWJsZVF1ZXJ5KSB0aGlzLnRhYmxlUXVlcnkgPSB7fTtcclxuICAgICAgaWYgKCF0aGlzLnRhYmxlUXVlcnkuZmlsdGVyKSB0aGlzLnRhYmxlUXVlcnkuZmlsdGVyID0gW107XHJcbiAgICAgIGxldCBmaWVsZCA9IHRoaXMudGFibGVRdWVyeS5maWx0ZXIuZmluZCgoeCkgPT4geC5maWVsZCA9PT0gdGhpcy50cmVlVGFibGVDb25uZWN0KTtcclxuICAgICAgaWYgKGZpZWxkKSB7XHJcbiAgICAgICAgZmllbGQudmFsdWUgPSBub2RlLmlkO1xyXG4gICAgICAgIGZpZWxkLm9wZXJhdGlvbiA9ICc9JztcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnRhYmxlUXVlcnkuZmlsdGVyID0gWy4uLnRoaXMudGFibGVRdWVyeS5maWx0ZXIsIHsgZmllbGQ6IHRoaXMudHJlZVRhYmxlQ29ubmVjdCwgdmFsdWU6IG5vZGUuaWQsIG9wZXJhdGlvbjogJz0nIH1dO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMudGFibGVDb20uY2hhbmdlKDEpO1xyXG4gICAgICB0aGlzLnRyZWVBY3RpdmF0ZWRJZCA9IG5vZGUuaWQ7XHJcbiAgICB9XHJcbiAgICB0aGlzLnRyZWVBY3RpdmF0ZWRDaGFuZ2UuZW1pdChub2RlKTtcclxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIHRyZWVDaGVja2JveENoYW5nZShub2RlOiBYVHJlZU5vZGUpIHtcclxuICAgIHRoaXMudHJlZU11bHRpcGxlKG5vZGUpO1xyXG4gIH1cclxuXHJcbiAgdHJhY2tCeUl0ZW0oX2luZGV4OiBudW1iZXIsIGl0ZW06IGFueSkge1xyXG4gICAgcmV0dXJuIGl0ZW0uaWQ7XHJcbiAgfVxyXG5cclxuICBmb3JtQ29udHJvbENoYW5nZXMoKSB7XHJcbiAgICB0aGlzLm5nT25Jbml0KCk7XHJcbiAgICB0aGlzLm5nQWZ0ZXJWaWV3SW5pdCgpO1xyXG4gICAgdGhpcy50cmVlQ29tPy5zZXREYXRhKCk7XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBzZWFyY2hLZXlEb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XHJcbiAgICBpZiAoZXZlbnQua2V5ID09PSAnRW50ZXInKSB7XHJcbiAgICAgIHRoaXMuc2VhcmNoQ2xpY2soKTtcclxuICAgIH0gZWxzZSBpZiAoZXZlbnQua2V5ID09PSAnRGVsZXRlJykge1xyXG4gICAgICB0aGlzLnNlYXJjaC52YWx1ZSA9ICcnO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2VhcmNoQ2xpY2soKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMuaGFzU2VhcmNoKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnRhYmxlUXVlcnkgPSB0aGlzLnRhYmxlUXVlcnkgfHwgW107XHJcbiAgICB0aGlzLnRhYmxlUXVlcnkuZmlsdGVyID0gdGhpcy50YWJsZVF1ZXJ5LmZpbHRlciB8fCBbXTtcclxuICAgIGNvbnN0IGZpZWxkID0gdGhpcy50YWJsZVF1ZXJ5LmZpbHRlci5maW5kKCh4KSA9PiB4LmZpZWxkID09PSB0aGlzLnNlYXJjaC5maWVsZCk7XHJcblxyXG4gICAgaWYgKGZpZWxkKSB7XHJcbiAgICAgIGZpZWxkLnZhbHVlID0gdGhpcy5zZWFyY2gudmFsdWUgfHwgJyc7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnRhYmxlUXVlcnkuZmlsdGVyID0gWy4uLnRoaXMudGFibGVRdWVyeT8uZmlsdGVyLCB0aGlzLnNlYXJjaF07XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy50YWJsZUNvbS5jaGFuZ2UoMSk7XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXZcclxuICAjZmluZFxyXG4gIGNsYXNzPVwieC1maW5kXCJcclxuICBbY2xhc3MueC1mbGV4XT1cImp1c3RpZnkgfHwgYWxpZ24gfHwgZGlyZWN0aW9uXCJcclxuICBbY2xhc3MueC1jaGVja2VkXT1cInZhbHVlXCJcclxuICBbY2xhc3MueC1kaXNhYmxlZF09XCJkaXNhYmxlZFwiXHJcbiAgW2NsYXNzLngtcmVxdWlyZWRdPVwicmVxdWlyZWRJc0VtcHR5XCJcclxuICBbY2xhc3MueC1pbnZhbGlkXT1cImludmFsaWRcIlxyXG4gIFtuZ0NsYXNzXT1cImNsYXNzTWFwXCJcclxuPlxyXG4gIDxsYWJlbCAqbmdJZj1cImxhYmVsXCIgW3N0eWxlLndpZHRoXT1cImxhYmVsV2lkdGhcIiBbbmdDbGFzc109XCJsYWJlbE1hcFwiPnt7IGxhYmVsIH19PC9sYWJlbD5cclxuICA8ZGl2IGNsYXNzPVwieC1maW5kLXJvd1wiPlxyXG4gICAgPHgtYnV0dG9uICNidXR0b25Db20gaWNvbj1cImZ0by1zZWFyY2hcIiBbb25seUljb25dPVwiIWJvcmRlcmVkXCIgW3NpemVdPVwic2l6ZVwiIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiIChjbGljayk9XCJzaG93TW9kYWwoKVwiPjwveC1idXR0b24+XHJcbiAgICA8ZGl2IGNsYXNzPVwieC1maW5kLXRhZ3NcIj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIm11bHRpcGxlOyBlbHNlIHNpbmdsZVRwbFwiPlxyXG4gICAgICAgIDx4LXRhZ1xyXG4gICAgICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgdmFsdWU7IGluZGV4IGFzIGk7IHRyYWNrQnk6IHRyYWNrQnlJdGVtXCJcclxuICAgICAgICAgIGNsb3NhYmxlXHJcbiAgICAgICAgICBbc2l6ZV09XCJzaXplXCJcclxuICAgICAgICAgIFtib3JkZXJlZF09XCJib3JkZXJlZFwiXHJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxyXG4gICAgICAgICAgKGNsb3NlKT1cInRhZ0Nsb3NlKGkpXCJcclxuICAgICAgICAgID57eyBpdGVtW2NvbHVtbkxhYmVsXSB9fTwveC10YWdcclxuICAgICAgICA+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8bmctdGVtcGxhdGUgI3NpbmdsZVRwbD5cclxuICAgICAgICA8eC10YWcgKm5nSWY9XCJ2YWx1ZVwiIGNsb3NhYmxlIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiIFtib3JkZXJlZF09XCJib3JkZXJlZFwiIFtzaXplXT1cInNpemVcIiAoY2xvc2UpPVwidGFnQ2xvc2UoKVwiPnt7XHJcbiAgICAgICAgICB2YWx1ZVtjb2x1bW5MYWJlbF1cclxuICAgICAgICB9fTwveC10YWc+XHJcbiAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcblxyXG48eC1kaWFsb2dcclxuICAjZGlhbG9nQ29tXHJcbiAgW3RpdGxlXT1cImRpYWxvZ1RpdGxlXCJcclxuICBbd2lkdGhdPVwiZGlhbG9nV2lkdGhcIlxyXG4gIFtoZWlnaHRdPVwiZGlhbG9nSGVpZ2h0XCJcclxuICBbYnV0dG9uc0NlbnRlcl09XCJkaWFsb2dCdXR0b25zQ2VudGVyXCJcclxuICBbKHZpc2libGUpXT1cImRpYWxvZ1Zpc2libGVcIlxyXG4gICh2aXNpYmxlQ2hhbmdlKT1cImRpYWxvZ1Zpc2libGVDaGFuZ2UuZW1pdCgkZXZlbnQpXCJcclxuICAoY2xvc2VEb25lKT1cImRpYWxvZ0Nsb3NlRG9uZSgpXCJcclxuICAoY2FuY2VsKT1cImNsb3NlTW9kYWwoKVwiXHJcbiAgKGNsb3NlKT1cImNsb3NlTW9kYWwoKVwiXHJcbiAgKGNvbmZpcm0pPVwic3VyZSgpXCJcclxuPlxyXG4gIDxkaXYgY2xhc3M9XCJ4LWZpbmQtZGlhbG9nXCIgW2NsYXNzLngtZmluZC1kaWFsb2ctdHJlZS10YWJsZV09XCJoYXNUYWJsZSAmJiBoYXNUcmVlXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwieC1maW5kLWRpYWxvZy10cmVlXCIgKm5nSWY9XCJoYXNUcmVlXCIgI3RyZWVSZWYgW3N0eWxlLmhlaWdodC5weF09XCJoYXNUcmVlVGFibGUgJiYgbXVsdGlwbGUgJiYgaGVpZ2h0XCI+XHJcbiAgICAgIDx4LXRyZWVcclxuICAgICAgICAjdHJlZUNvbVxyXG4gICAgICAgIFtkYXRhXT1cInRyZWVEYXRhXCJcclxuICAgICAgICBub2RlSGVpZ2h0PVwiMS44XCJcclxuICAgICAgICBbKG1hbnVhbCldPVwiZGlhbG9nVmlzaWJsZVwiXHJcbiAgICAgICAgW2FjdGl2YXRlZElkXT1cInRyZWVBY3RpdmF0ZWRJZFwiXHJcbiAgICAgICAgW2V4cGFuZGVkTGV2ZWxdPVwidHJlZUV4cGFuZGVkTGV2ZWxcIlxyXG4gICAgICAgIChhY3RpdmF0ZWRDaGFuZ2UpPVwidHJlZUFjdGl2YXRlZENsaWNrKCRldmVudClcIlxyXG4gICAgICAgIFtjaGVja2JveF09XCJoYXNUcmVlTXVsdGlwbGVcIlxyXG4gICAgICAgIFtjaGVja2VkXT1cInRyZWVDaGVja2VkXCJcclxuICAgICAgICAoY2hlY2tib3hDaGFuZ2UpPVwidHJlZUNoZWNrYm94Q2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgIFtsZXZlbENoZWNrXT1cIiFoYXNUcmVlTXVsdGlwbGVcIlxyXG4gICAgICA+PC94LXRyZWU+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJ4LWZpbmQtZGlhbG9nLXRhYmxlXCIgKm5nSWY9XCJoYXNUYWJsZVwiICN0YWJsZVJlZj5cclxuICAgICAgPGRpdiBjbGFzcz1cIngtZmluZC1zZWFyY2hcIiAqbmdJZj1cImhhc1NlYXJjaFwiPlxyXG4gICAgICAgIDx4LWlucHV0IFtsYWJlbF09XCJzZWFyY2gubGFiZWxcIiBkaXJlY3Rpb249XCJyb3dcIiAoeEtleWRvd24pPVwic2VhcmNoS2V5RG93bigkZXZlbnQpXCIgWyhuZ01vZGVsKV09XCJzZWFyY2gudmFsdWVcIj48L3gtaW5wdXQ+XHJcbiAgICAgICAgPHgtYnV0dG9uIHR5cGU9XCJwcmltYXJ5XCIgcGxhaW4gKGNsaWNrKT1cInNlYXJjaENsaWNrKClcIj57eyBzZWFyY2guYnV0dG9uIHx8ICfmn6Xor6InIH19PC94LWJ1dHRvbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDx4LXRhYmxlXHJcbiAgICAgICAgI3RhYmxlQ29tXHJcbiAgICAgICAgW2RhdGFdPVwidGFibGVEYXRhXCJcclxuICAgICAgICBbY29sdW1uc109XCJ0YWJsZUNvbHVtbnNcIlxyXG4gICAgICAgIFsobWFudWFsKV09XCJkaWFsb2dWaXNpYmxlXCJcclxuICAgICAgICBbKGluZGV4KV09XCJ0YWJsZUluZGV4XCJcclxuICAgICAgICBbKHNpemUpXT1cInRhYmxlU2l6ZVwiXHJcbiAgICAgICAgW3F1ZXJ5XT1cInRhYmxlUXVlcnlcIlxyXG4gICAgICAgIFt0b3RhbF09XCJ0YWJsZVRvdGFsXCJcclxuICAgICAgICBbYWxsb3dTZWxlY3RSb3ddPVwiIW11bHRpcGxlXCJcclxuICAgICAgICBbY2hlY2tlZFJvd109XCJ0YWJsZUNoZWNrZWRSb3dcIlxyXG4gICAgICAgIFtsb2FkaW5nXT1cInRhYmxlTG9hZGluZ1wiXHJcbiAgICAgICAgKGluZGV4Q2hhbmdlKT1cInRhYmxlSW5kZXhDaGFuZ2UuZW1pdCgkZXZlbnQpXCJcclxuICAgICAgICAoc29ydENoYW5nZSk9XCJ0YWJsZVNvcnRDaGFuZ2UuZW1pdCgkZXZlbnQpXCJcclxuICAgICAgICBbKGFjdGl2YXRlZFJvdyldPVwidGFibGVBY3RpdmF0ZWRSb3dcIlxyXG4gICAgICAgIChhY3RpdmF0ZWRSb3dDaGFuZ2UpPVwidGFibGVBY3RpdmF0ZWRSb3dDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgW3Jvd0hlaWdodF09XCJ0YWJsZVJvd0hlaWdodFwiXHJcbiAgICAgICAgW2JvZHlIZWlnaHRdPVwidGFibGVCb2R5SGVpZ2h0XCJcclxuICAgICAgICBbdmlydHVhbFNjcm9sbF09XCJ0YWJsZVZpcnR1YWxTY3JvbGxcIlxyXG4gICAgICAgIFttaW5CdWZmZXJQeF09XCJ0YWJsZU1pbkJ1ZmZlclB4XCJcclxuICAgICAgICBbbWF4QnVmZmVyUHhdPVwidGFibGVNYXhCdWZmZXJQeFwiXHJcbiAgICAgICAgW2FkYXB0aW9uSGVpZ2h0XT1cInRhYmxlQWRhcHRpb25IZWlnaHRcIlxyXG4gICAgICAgIFtkb2NQZXJjZW50XT1cInRhYmxlRG9jUGVyY2VudFwiXHJcbiAgICAgID48L3gtdGFibGU+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgKm5nSWY9XCJtdWx0aXBsZVwiIGNsYXNzPVwieC1maW5kLWRpYWxvZy1jaGVja2VkXCIgW2NsYXNzLngtZmluZC1lbXB0eV09XCJnZXRFbXB0eVwiIFtzdHlsZS5oZWlnaHQucHhdPVwiaGVpZ2h0XCI+XHJcbiAgICAgIDx4LWVtcHR5ICpuZ0lmPVwiZ2V0RW1wdHlcIiBbY29udGVudF09XCJkaWFsb2dFbXB0eUNvbnRlbnRcIj48L3gtZW1wdHk+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ4LWZpbmQtZGlhbG9nLXRhZ3NcIj5cclxuICAgICAgICA8eC10YWcgKm5nRm9yPVwibGV0IGl0ZW0gb2YgdGVtcDsgaW5kZXggYXMgaTsgdHJhY2tCeTogdHJhY2tCeUl0ZW1cIiBjbG9zYWJsZSAoY2xvc2UpPVwidGVtcENsb3NlKGksIGl0ZW0pXCI+XHJcbiAgICAgICAgICA8c3Bhbj57eyBpdGVtW2NvbHVtbkxhYmVsXSB9fTwvc3Bhbj5cclxuICAgICAgICA8L3gtdGFnPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L3gtZGlhbG9nPlxyXG5cclxuPG5nLXRlbXBsYXRlICN0cmVlTGFiZWxUcGwgbGV0LW5vZGU9XCIkbm9kZVwiPlxyXG4gIDxkaXYgY2xhc3M9XCJ4LWZpbmQtZGlhbG9nLXRyZWUtbm9kZVwiPlxyXG4gICAgPHNwYW4+e3sgbm9kZS5sYWJlbCB9fSA8L3NwYW4+XHJcbiAgICA8eC1pY29uIHR5cGU9XCJmdG8tY2hlY2tcIiAqbmdJZj1cIm5vZGUuJGNoZWNrZWRcIj48L3gtaWNvbj5cclxuICA8L2Rpdj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuIl19
|
|
359
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmluZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvbmctbmVzdC91aS9maW5kL2ZpbmQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvZmluZC9maW5kLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBRVQsaUJBQWlCLEVBQ2pCLHVCQUF1QixFQUl2QixTQUFTLEVBRVYsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGFBQWEsRUFBRSxXQUFXLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFrQixRQUFRLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUkzRyxPQUFPLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7Ozs7Ozs7Ozs7OztBQVV2RCxNQUFNLE9BQU8sY0FBZSxTQUFRLGFBQWE7SUFvRS9DLFlBQW1CLFFBQW1CLEVBQWtCLEdBQXNCLEVBQVMsYUFBNkI7UUFDbEgsS0FBSyxFQUFFLENBQUM7UUFEUyxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQWtCLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQVMsa0JBQWEsR0FBYixhQUFhLENBQWdCO1FBVnBILFdBQU0sR0FBRyxHQUFHLENBQUM7UUFFTCxlQUFVLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztJQVV6QyxDQUFDO0lBOURELElBQVcsUUFBUTtRQUNqQixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDeEIsQ0FBQztJQUNELElBQ1csUUFBUSxDQUFDLEtBQWlCO1FBQ25DLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ3ZCLElBQUksS0FBSyxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDMUIsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1NBQ3JCO0lBQ0gsQ0FBQztJQUdELElBQVcsT0FBTztRQUNoQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDdkIsQ0FBQztJQUNELElBQ1csT0FBTyxDQUFDLEtBQWlCO1FBQ2xDLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ3RCLElBQUksS0FBSyxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDMUIsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1NBQ3JCO0lBQ0gsQ0FBQztJQUVELElBQUksUUFBUTtRQUNWLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRUQsSUFBSSxRQUFRO1FBQ1YsT0FBTyxJQUFJLENBQUMsWUFBWSxFQUFFLE1BQU0sR0FBRyxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVELElBQUksT0FBTztRQUNULE9BQU8sQ0FDTCxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxRQUFRLFlBQVksUUFBUSxJQUFJLElBQUksQ0FBQyxRQUFRLFlBQVksVUFBVSxDQUN2SSxDQUFDO0lBQ0osQ0FBQztJQUVELElBQUksWUFBWTtRQUNkLE9BQU8sSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxJQUFJLGVBQWU7UUFDakIsT0FBTyxJQUFJLENBQUMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQzdELENBQUM7SUFFRCxJQUFJLFNBQVM7UUFDWCxPQUFPLElBQUksQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN0QyxDQUFDO0lBUVEsVUFBVSxDQUFDLEtBQVU7UUFDNUIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBTUQsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLE1BQU0sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxHQUFHLE9BQU8sQ0FBQztRQUNoRCxTQUFTLENBQUMsU0FBUyxDQUFDLElBQUksSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7UUFDbEQsU0FBUyxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDcEQsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUMvRixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDbkIsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ25CLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNsQixDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksSUFBSSxDQUFDLEtBQUs7WUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzNDLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLGVBQWUsRUFBRSxVQUFVLEVBQUUsQ0FBQztJQUNyQyxDQUFDO0lBRUQsV0FBVztRQUNULFdBQVcsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUMxQyxJQUFJLENBQUMsUUFBUSxDQUFDLGdCQUFnQixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUNsRixJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFFRCxZQUFZO1FBQ1YsSUFBSSxTQUFTLEdBQWMsRUFBRSxDQUFDO1FBQzlCLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNqQixTQUFTLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLGFBQWEsQ0FBQyxDQUFDO1NBQzVDO1FBQ0QsSUFBSSxJQUFJLENBQUMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRTtZQUN0QyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsYUFBYSxDQUFDLENBQUM7U0FDN0M7UUFDRCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3ZCLE9BQU8sQ0FBQyxHQUFHLFNBQVMsQ0FBQzthQUNsQixJQUFJLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7YUFDbEQsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDZixJQUFJLENBQUMsZUFBZSxHQUFHLENBQUMsQ0FBQyxjQUFjLENBQUM7WUFDeEMsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO2dCQUNqQixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQzthQUN4RDtpQkFBTSxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUU7Z0JBQ3ZCLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxhQUFhLENBQUMsWUFBWSxDQUFDO2FBQ3hEO1lBQ0QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUMzQixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRO1lBQUUsT0FBTztRQUMzQixJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDakIsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLEVBQUU7Z0JBQ2hELElBQUksQ0FBQyxZQUFZLEdBQUc7b0JBQ2xCO3dCQUNFLEVBQUUsRUFBRSxVQUFVO3dCQUNkLEtBQUssRUFBRSxJQUFJLENBQUMsbUJBQW1CO3dCQUMvQixVQUFVLEVBQUUsSUFBSTt3QkFDaEIsSUFBSSxFQUFFLFVBQVU7d0JBQ2hCLEtBQUssRUFBRSxJQUFJLENBQUMsbUJBQW1CO3FCQUNoQztvQkFDRCxHQUFHLElBQUksQ0FBQyxZQUFZO2lCQUNyQixDQUFDO2FBQ0g7U0FDRjtJQUNILENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxZQUFZLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFFO1lBQ2xDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO2dCQUNwRCxJQUFJLENBQUMsV0FBVyxHQUFHLE9BQU8sQ0FBQzthQUM1QjtpQkFBTSxJQUFJLElBQUksQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtnQkFDeEMsSUFBSSxDQUFDLFdBQVcsR0FBRyxPQUFPLENBQUM7YUFDNUI7aUJBQU0sSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO2dCQUN2QixJQUFJLENBQUMsV0FBVyxHQUFHLE9BQU8sQ0FBQzthQUM1QjtTQUNGO0lBQ0gsQ0FBQztJQUVELFNBQVM7UUFDUCxJQUFJLElBQUksQ0FBQyxRQUFRO1lBQUUsT0FBTztRQUMxQixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztRQUMxQixJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUNsRCxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDZCxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7Z0JBQ2pCLElBQUksQ0FBQyxJQUFJLEdBQUksSUFBSSxDQUFDLEtBQW9CLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUN4RSxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztnQkFDMUIsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO2FBQ3ZCO2lCQUFNO2dCQUNMLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO2dCQUNwQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO29CQUN0QyxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO2lCQUN0QzthQUNGO1NBQ0Y7YUFBTTtZQUNMLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7U0FDdkM7UUFDRCxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDakIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLEVBQUUsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzVDLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUFFLGlCQUFpQixFQUFFLENBQUM7U0FDaEQ7UUFDRCxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRCxrQkFBa0I7UUFDaEIsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLElBQUksWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7WUFBRSxPQUFPO1FBQ3RELE1BQU0sR0FBRyxHQUFJLElBQUksQ0FBQyxJQUFtQixDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZELElBQUksQ0FBQyxlQUFlLEdBQUc7WUFDckIsR0FBRyxJQUFJLENBQUMsZUFBZTtZQUN2QixRQUFRLEVBQUUsR0FBRztTQUNkLENBQUM7SUFDSixDQUFDO0lBRUQsY0FBYztRQUNaLElBQUksSUFBSSxDQUFDLGVBQWU7WUFBRSxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDL0UsQ0FBQztJQUVELElBQUk7UUFDRixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDdkIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDMUIsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7UUFDNUIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRUQsVUFBVTtRQUNSLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDaEIsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUM7WUFDNUIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7U0FDbEI7SUFDSCxDQUFDO0lBRUQsU0FBUyxDQUFDLEtBQWEsRUFBRSxJQUFTO1FBQ2hDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztRQUMzQixJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDakIsSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUNoRSxJQUFJLEVBQUUsRUFBRTtnQkFDTixFQUFFLENBQUMsVUFBVSxDQUFDLEdBQUcsS0FBSyxDQUFDO2dCQUN2QixJQUFJLENBQUMsUUFBUSxFQUFFLFVBQVUsRUFBRSxDQUFDO2FBQzdCO1NBQ0Y7YUFBTSxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDdkIsSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUM5RCxJQUFJLEVBQUUsRUFBRTtnQkFDTixFQUFFLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztnQkFDbkIsRUFBRSxDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUMsTUFBTSxFQUFFLENBQUM7Z0JBQ3pCLElBQUksQ0FBQyxPQUFPLEVBQUUsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO2FBQ25DO1NBQ0Y7UUFFRCxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRCxRQUFRLENBQUMsUUFBZ0IsQ0FBQyxDQUFDO1FBQ3pCLElBQUksS0FBSyxJQUFJLENBQUMsRUFBRTtZQUNkLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztTQUM3QjthQUFNO1lBQ0wsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7WUFDbEIsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQztZQUM5QixJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO2dCQUN0QyxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQzthQUM3QjtTQUNGO1FBQ0QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDMUIsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7UUFDNUIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRUQsdUJBQXVCLENBQUMsSUFBZTtRQUNyQyxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDakIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUN4QjthQUFNO1lBQ0wsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7WUFDakIsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUM7WUFDM0IsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1NBQ2I7SUFDSCxDQUFDO0lBRUQsV0FBVyxDQUFDLElBQWU7UUFDekIsSUFBSSxPQUFPLElBQUksQ0FBQyxJQUFJLEtBQUssV0FBVztZQUFFLElBQUksQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ3JELHdDQUF3QztRQUN4QyxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRTtZQUNwQixJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1NBQ2xDO2FBQU07WUFDTCxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FDYixJQUFJLENBQUMsSUFBbUIsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUM1RCxDQUFDLENBQ0YsQ0FBQztTQUNIO1FBQ0QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRUQsWUFBWSxDQUFDLElBQWU7UUFDMUIsSUFBSSxPQUFPLElBQUksQ0FBQyxJQUFJLEtBQUssV0FBVztZQUFFLElBQUksQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ3JELGtDQUFrQztRQUNsQyxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDaEIsSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztTQUNsQzthQUFNO1lBQ0wsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQ2IsSUFBSSxDQUFDLElBQW1CLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLElBQUksQ0FBQyxFQUFFLENBQUMsRUFDNUQsQ0FBQyxDQUNGLENBQUM7U0FDSDtRQUNELElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVELGtCQUFrQixDQUFDLElBQWU7UUFDaEMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUN0QyxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7Z0JBQ2pCLDJCQUEyQjthQUM1QjtpQkFBTTtnQkFDTCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQzthQUNsQjtTQUNGO2FBQU0sSUFBSSxJQUFJLENBQUMsWUFBWSxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtZQUNyRCxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVU7Z0JBQUUsSUFBSSxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUM7WUFDM0MsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTTtnQkFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUM7WUFDekQsSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxLQUFLLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1lBQ2xGLElBQUksS0FBSyxFQUFFO2dCQUNULEtBQUssQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQztnQkFDdEIsS0FBSyxDQUFDLFNBQVMsR0FBRyxHQUFHLENBQUM7YUFDdkI7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQzthQUN4SDtZQUNELElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3hCLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQztTQUNoQztRQUNELElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDcEMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRUQsa0JBQWtCLENBQUMsSUFBZTtRQUNoQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzFCLENBQUM7SUFFRCxXQUFXLENBQUMsTUFBYyxFQUFFLElBQVM7UUFDbkMsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDO0lBQ2pCLENBQUM7SUFFRCxrQkFBa0I7UUFDaEIsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2hCLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVELGFBQWEsQ0FBQyxLQUFvQjtRQUNoQyxJQUFJLEtBQUssQ0FBQyxHQUFHLEtBQUssT0FBTyxFQUFFO1lBQ3pCLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztTQUNwQjthQUFNLElBQUksS0FBSyxDQUFDLEdBQUcsS0FBSyxRQUFRLEVBQUU7WUFDakMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDO1NBQ3hCO0lBQ0gsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNuQixPQUFPO1NBQ1I7UUFFRCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLElBQUksRUFBRSxDQUFDO1FBQ3hDLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxJQUFJLEVBQUUsQ0FBQztRQUN0RCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLEtBQUssSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUVoRixJQUFJLEtBQUssRUFBRTtZQUNULEtBQUssQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDO1NBQ3ZDO2FBQU07WUFDTCxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQ3BFO1FBRUQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDeEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUMzQixDQUFDOzs4SEF4VlUsY0FBYztrSEFBZCxjQUFjLGlDQUZkLENBQUMsY0FBYyxDQUFDLGNBQWMsQ0FBQyxDQUFDLDRyQkMzQjdDLHVtSkF1SEE7MkZEMUZhLGNBQWM7a0JBUjFCLFNBQVM7K0JBQ0UsR0FBRyxXQUFXLEVBQUUsaUJBR1gsaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTSxhQUNwQyxDQUFDLGNBQWMsZ0JBQWdCLENBQUM7NkpBR04sSUFBSTtzQkFBeEMsU0FBUzt1QkFBQyxNQUFNLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUNYLFNBQVM7c0JBQWhDLFNBQVM7dUJBQUMsV0FBVztnQkFDQyxRQUFRO3NCQUE5QixTQUFTO3VCQUFDLFVBQVU7Z0JBQ0MsT0FBTztzQkFBNUIsU0FBUzt1QkFBQyxTQUFTO2dCQUNJLFNBQVM7c0JBQWhDLFNBQVM7dUJBQUMsV0FBVztnQkFPWCxRQUFRO3NCQURsQixTQUFTO3VCQUFDLFVBQVU7Z0JBYVYsT0FBTztzQkFEakIsU0FBUzt1QkFBQyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgT25Jbml0LFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIFJlbmRlcmVyMixcclxuICBFbGVtZW50UmVmLFxyXG4gIFZpZXdDaGlsZCxcclxuICBTaW1wbGVDaGFuZ2VzXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFhGaW5kUHJvcGVydHksIFhGaW5kUHJlZml4IH0gZnJvbSAnLi9maW5kLnByb3BlcnR5JztcclxuaW1wb3J0IHsgWENsZWFyQ2xhc3MsIFhSZXNpemUsIFhJc1VuZGVmaW5lZCwgWElzQ2hhbmdlLCBYQ29uZmlnU2VydmljZSwgWElzRW1wdHkgfSBmcm9tICdAbmctbmVzdC91aS9jb3JlJztcclxuaW1wb3J0IHsgWFRhYmxlQ29tcG9uZW50LCBYVGFibGVSb3cgfSBmcm9tICdAbmctbmVzdC91aS90YWJsZSc7XHJcbmltcG9ydCB7IFhEaWFsb2dDb21wb25lbnQgfSBmcm9tICdAbmctbmVzdC91aS9kaWFsb2cnO1xyXG5pbXBvcnQgeyBYQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnQG5nLW5lc3QvdWkvYnV0dG9uJztcclxuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IFN1YmplY3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgWFRyZWVOb2RlLCBYVHJlZUNvbXBvbmVudCB9IGZyb20gJ0BuZy1uZXN0L3VpL3RyZWUnO1xyXG5pbXBvcnQgeyBYVmFsdWVBY2Nlc3NvciB9IGZyb20gJ0BuZy1uZXN0L3VpL2Jhc2UtZm9ybSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogYCR7WEZpbmRQcmVmaXh9YCxcclxuICB0ZW1wbGF0ZVVybDogJy4vZmluZC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZmluZC5jb21wb25lbnQuc2NzcyddLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgcHJvdmlkZXJzOiBbWFZhbHVlQWNjZXNzb3IoWEZpbmRDb21wb25lbnQpXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgWEZpbmRDb21wb25lbnQgZXh0ZW5kcyBYRmluZFByb3BlcnR5IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBAVmlld0NoaWxkKCdmaW5kJywgeyBzdGF0aWM6IHRydWUgfSkgZmluZCE6IEVsZW1lbnRSZWY7XHJcbiAgQFZpZXdDaGlsZCgnZGlhbG9nQ29tJykgZGlhbG9nQ29tITogWERpYWxvZ0NvbXBvbmVudDtcclxuICBAVmlld0NoaWxkKCd0YWJsZUNvbScpIHRhYmxlQ29tITogWFRhYmxlQ29tcG9uZW50O1xyXG4gIEBWaWV3Q2hpbGQoJ3RyZWVDb20nKSB0cmVlQ29tITogWFRyZWVDb21wb25lbnQ7XHJcbiAgQFZpZXdDaGlsZCgnYnV0dG9uQ29tJykgYnV0dG9uQ29tITogWEJ1dHRvbkNvbXBvbmVudDtcclxuXHJcbiAgcHJpdmF0ZSBfdGFibGVSZWYhOiBFbGVtZW50UmVmO1xyXG4gIHB1YmxpYyBnZXQgdGFibGVSZWYoKTogRWxlbWVudFJlZiB7XHJcbiAgICByZXR1cm4gdGhpcy5fdGFibGVSZWY7XHJcbiAgfVxyXG4gIEBWaWV3Q2hpbGQoJ3RhYmxlUmVmJylcclxuICBwdWJsaWMgc2V0IHRhYmxlUmVmKHZhbHVlOiBFbGVtZW50UmVmKSB7XHJcbiAgICB0aGlzLl90YWJsZVJlZiA9IHZhbHVlO1xyXG4gICAgaWYgKHZhbHVlICYmIHRoaXMubXVsdGlwbGUpIHtcclxuICAgICAgdGhpcy5zZXRTdWJzY3JpYmUoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3RyZWVSZWYhOiBFbGVtZW50UmVmO1xyXG4gIHB1YmxpYyBnZXQgdHJlZVJlZigpOiBFbGVtZW50UmVmIHtcclxuICAgIHJldHVybiB0aGlzLl90cmVlUmVmO1xyXG4gIH1cclxuICBAVmlld0NoaWxkKCd0cmVlUmVmJylcclxuICBwdWJsaWMgc2V0IHRyZWVSZWYodmFsdWU6IEVsZW1lbnRSZWYpIHtcclxuICAgIHRoaXMuX3RyZWVSZWYgPSB2YWx1ZTtcclxuICAgIGlmICh2YWx1ZSAmJiB0aGlzLm11bHRpcGxlKSB7XHJcbiAgICAgIHRoaXMuc2V0U3Vic2NyaWJlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXQgZ2V0RW1wdHkoKSB7XHJcbiAgICByZXR1cm4gIXRoaXMudGVtcCB8fCB0aGlzLnRlbXAubGVuZ3RoID09PSAwO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGhhc1RhYmxlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMudGFibGVDb2x1bW5zPy5sZW5ndGggPiAwO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGhhc1RyZWUoKSB7XHJcbiAgICByZXR1cm4gKFxyXG4gICAgICAoQXJyYXkuaXNBcnJheSh0aGlzLnRyZWVEYXRhKSAmJiB0aGlzLnRyZWVEYXRhLmxlbmd0aCA+IDApIHx8IHRoaXMudHJlZURhdGEgaW5zdGFuY2VvZiBGdW5jdGlvbiB8fCB0aGlzLnRyZWVEYXRhIGluc3RhbmNlb2YgT2JzZXJ2YWJsZVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldCBoYXNUcmVlVGFibGUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5oYXNUYWJsZSAmJiB0aGlzLmhhc1RyZWU7XHJcbiAgfVxyXG5cclxuICBnZXQgaGFzVHJlZU11bHRpcGxlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuaGFzVHJlZSAmJiAhdGhpcy5oYXNUcmVlVGFibGUgJiYgdGhpcy5tdWx0aXBsZTtcclxuICB9XHJcblxyXG4gIGdldCBoYXNTZWFyY2goKSB7XHJcbiAgICByZXR1cm4gdGhpcy5zZWFyY2ggJiYgdGhpcy5oYXNUYWJsZTtcclxuICB9XHJcblxyXG4gIHRlbXA6IGFueTtcclxuICBoZWlnaHQgPSAxMDA7XHJcblxyXG4gIHByaXZhdGUgX3VuU3ViamVjdCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcbiAgcHJpdmF0ZSBfcmVzaXplT2JzZXJ2ZXIhOiBSZXNpemVPYnNlcnZlcjtcclxuXHJcbiAgb3ZlcnJpZGUgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KSB7XHJcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgcmVuZGVyZXI6IFJlbmRlcmVyMiwgcHVibGljIG92ZXJyaWRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsIHB1YmxpYyBjb25maWdTZXJ2aWNlOiBYQ29uZmlnU2VydmljZSkge1xyXG4gICAgc3VwZXIoKTtcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKHNpbXBsZXM6IFNpbXBsZUNoYW5nZXMpIHtcclxuICAgIGNvbnN0IHsgdGFibGVEYXRhLCBsYWJlbEFsaWduLCBzaXplIH0gPSBzaW1wbGVzO1xyXG4gICAgWElzQ2hhbmdlKHRhYmxlRGF0YSkgJiYgdGhpcy5zZXRUYWJsZUNoZWNrZWRSb3coKTtcclxuICAgIFhJc0NoYW5nZShsYWJlbEFsaWduLCBzaXplKSAmJiB0aGlzLnNldENsYXNzTWFwKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuc2V0RmxleCh0aGlzLmZpbmQubmF0aXZlRWxlbWVudCwgdGhpcy5yZW5kZXJlciwgdGhpcy5qdXN0aWZ5LCB0aGlzLmFsaWduLCB0aGlzLmRpcmVjdGlvbik7XHJcbiAgICB0aGlzLnNldENsYXNzTWFwKCk7XHJcbiAgICB0aGlzLnNldE11bHRpcGxlKCk7XHJcbiAgICB0aGlzLnNldFdpZHRoKCk7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICBpZiAodGhpcy52YWx1ZSkgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLl9yZXNpemVPYnNlcnZlcj8uZGlzY29ubmVjdCgpO1xyXG4gIH1cclxuXHJcbiAgc2V0Q2xhc3NNYXAoKSB7XHJcbiAgICBYQ2xlYXJDbGFzcyh0aGlzLmxhYmVsTWFwLCB0aGlzLmNsYXNzTWFwKTtcclxuICAgIHRoaXMubGFiZWxNYXBbYHgtdGV4dC1hbGlnbi0ke3RoaXMubGFiZWxBbGlnbn1gXSA9IHRoaXMubGFiZWxBbGlnbiA/IHRydWUgOiBmYWxzZTtcclxuICAgIHRoaXMuY2xhc3NNYXBbYHgtZmluZC0ke3RoaXMuc2l6ZX1gXSA9ICFYSXNFbXB0eSh0aGlzLnNpemUpO1xyXG4gIH1cclxuXHJcbiAgc2V0U3Vic2NyaWJlKCkge1xyXG4gICAgbGV0IHJlc2l6ZVJlZjogRWxlbWVudFtdID0gW107XHJcbiAgICBpZiAodGhpcy5oYXNUYWJsZSkge1xyXG4gICAgICByZXNpemVSZWYgPSBbdGhpcy50YWJsZVJlZj8ubmF0aXZlRWxlbWVudF07XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5oYXNUcmVlICYmICF0aGlzLmhhc1RyZWVUYWJsZSkge1xyXG4gICAgICByZXNpemVSZWYucHVzaCh0aGlzLnRyZWVSZWY/Lm5hdGl2ZUVsZW1lbnQpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5fdW5TdWJqZWN0Lm5leHQoKTtcclxuICAgIFhSZXNpemUoLi4ucmVzaXplUmVmKVxyXG4gICAgICAucGlwZShkZWJvdW5jZVRpbWUoMzApLCB0YWtlVW50aWwodGhpcy5fdW5TdWJqZWN0KSlcclxuICAgICAgLnN1YnNjcmliZSgoeCkgPT4ge1xyXG4gICAgICAgIHRoaXMuX3Jlc2l6ZU9ic2VydmVyID0geC5yZXNpemVPYnNlcnZlcjtcclxuICAgICAgICBpZiAodGhpcy50YWJsZVJlZikge1xyXG4gICAgICAgICAgdGhpcy5oZWlnaHQgPSB0aGlzLnRhYmxlUmVmLm5hdGl2ZUVsZW1lbnQuY2xpZW50SGVpZ2h0O1xyXG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5oYXNUcmVlKSB7XHJcbiAgICAgICAgICB0aGlzLmhlaWdodCA9IHRoaXMudHJlZVJlZj8ubmF0aXZlRWxlbWVudC5jbGllbnRIZWlnaHQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBzZXRNdWx0aXBsZSgpIHtcclxuICAgIGlmICghdGhpcy5tdWx0aXBsZSkgcmV0dXJuO1xyXG4gICAgaWYgKHRoaXMuaGFzVGFibGUpIHtcclxuICAgICAgaWYgKCF0aGlzLnRhYmxlQ29sdW1ucy5maW5kKCh4KSA9PiB4LnJvd0NoZWNrZWQpKSB7XHJcbiAgICAgICAgdGhpcy50YWJsZUNvbHVtbnMgPSBbXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIGlkOiAnJGNoZWNrZWQnLFxyXG4gICAgICAgICAgICBsYWJlbDogdGhpcy5kaWFsb2dDaGVja2JveExhYmVsLFxyXG4gICAgICAgICAgICByb3dDaGVja2VkOiB0cnVlLFxyXG4gICAgICAgICAgICB0eXBlOiAnY2hlY2tib3gnLFxyXG4gICAgICAgICAgICB3aWR0aDogdGhpcy5kaWFsb2dDaGVja2JveFdpZHRoXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgLi4udGhpcy50YWJsZUNvbHVtbnNcclxuICAgICAgICBdO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXRXaWR0aCgpIHtcclxuICAgIGlmIChYSXNVbmRlZmluZWQodGhpcy5kaWFsb2dXaWR0aCkpIHtcclxuICAgICAgaWYgKCh0aGlzLmhhc1RhYmxlICYmIHRoaXMuaGFzVHJlZSkgfHwgdGhpcy5oYXNUYWJsZSkge1xyXG4gICAgICAgIHRoaXMuZGlhbG9nV2lkdGggPSAnNTByZW0nO1xyXG4gICAgICB9IGVsc2UgaWYgKHRoaXMuaGFzVHJlZSAmJiB0aGlzLm11bHRpcGxlKSB7XHJcbiAgICAgICAgdGhpcy5kaWFsb2dXaWR0aCA9ICczMHJlbSc7XHJcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5oYXNUcmVlKSB7XHJcbiAgICAgICAgdGhpcy5kaWFsb2dXaWR0aCA9ICcyMHJlbSc7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNob3dNb2RhbCgpIHtcclxuICAgIGlmICh0aGlzLmRpc2FibGVkKSByZXR1cm47XHJcbiAgICB0aGlzLmRpYWxvZ1Zpc2libGUgPSB0cnVlO1xyXG4gICAgdGhpcy5kaWFsb2dWaXNpYmxlQ2hhbmdlLmVtaXQodGhpcy5kaWFsb2dWaXNpYmxlKTtcclxuICAgIGlmICh0aGlzLnZhbHVlKSB7XHJcbiAgICAgIGlmICh0aGlzLm11bHRpcGxlKSB7XHJcbiAgICAgICAgdGhpcy50ZW1wID0gKHRoaXMudmFsdWUgYXMgQXJyYXk8YW55PikubWFwKCh4KSA9PiBPYmplY3QuYXNzaWduKHt9LCB4KSk7XHJcbiAgICAgICAgdGhpcy5zZXRUYWJsZUNoZWNrZWRSb3coKTtcclxuICAgICAgICB0aGlzLnNldFRyZWVDaGVja2VkKCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy50YWJsZUFjdGl2YXRlZFJvdyA9IHRoaXMudmFsdWU7XHJcbiAgICAgICAgaWYgKCF0aGlzLmhhc1RyZWVUYWJsZSAmJiB0aGlzLmhhc1RyZWUpIHtcclxuICAgICAgICAgIHRoaXMudHJlZUFjdGl2YXRlZElkID0gdGhpcy52YWx1ZS5pZDtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMudGVtcCA9IHRoaXMubXVsdGlwbGUgPyBbXSA6IG51bGw7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5oYXNUYWJsZSkge1xyXG4gICAgICB0aGlzLnRhYmxlQ29tLnZpcnR1YWxCb2R5Py5zY3JvbGxUb0luZGV4KDApO1xyXG4gICAgICB0aGlzLnRhYmxlQ29tLnZpcnR1YWxCb2R5Py5jaGVja1ZpZXdwb3J0U2l6ZSgpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgc2V0VGFibGVDaGVja2VkUm93KCkge1xyXG4gICAgaWYgKCF0aGlzLm11bHRpcGxlIHx8IFhJc1VuZGVmaW5lZCh0aGlzLnRlbXApKSByZXR1cm47XHJcbiAgICBjb25zdCBpZHMgPSAodGhpcy50ZW1wIGFzIEFycmF5PGFueT4pLm1hcCgoeCkgPT4geC5pZCk7XHJcbiAgICB0aGlzLnRhYmxlQ2hlY2tlZFJvdyA9IHtcclxuICAgICAgLi4udGhpcy50YWJsZUNoZWNrZWRSb3csXHJcbiAgICAgICRjaGVja2VkOiBpZHNcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBzZXRUcmVlQ2hlY2tlZCgpIHtcclxuICAgIGlmICh0aGlzLmhhc1RyZWVNdWx0aXBsZSkgdGhpcy50cmVlQ2hlY2tlZCA9IHRoaXMudGVtcC5tYXAoKHg6IGFueSkgPT4geC5pZCk7XHJcbiAgfVxyXG5cclxuICBzdXJlKCkge1xyXG4gICAgdGhpcy52YWx1ZSA9IHRoaXMudGVtcDtcclxuICAgIHRoaXMub25DaGFuZ2UodGhpcy52YWx1ZSk7XHJcbiAgICB0aGlzLmZvcm1Db250cm9sVmFsaWRhdG9yKCk7XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBjbG9zZU1vZGFsKCkge1xyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgZGlhbG9nQ2xvc2VEb25lKCkge1xyXG4gICAgaWYgKHRoaXMuaGFzVHJlZSkge1xyXG4gICAgICB0aGlzLnRyZWVBY3RpdmF0ZWRJZCA9IG51bGw7XHJcbiAgICAgIHRoaXMudGVtcCA9IG51bGw7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICB0ZW1wQ2xvc2UoaW5kZXg6IG51bWJlciwgaXRlbTogYW55KSB7XHJcbiAgICB0aGlzLnRlbXAuc3BsaWNlKGluZGV4LCAxKTtcclxuICAgIGlmICh0aGlzLmhhc1RhYmxlKSB7XHJcbiAgICAgIGxldCBpdCA9IHRoaXMudGFibGVDb20/LnRhYmxlRGF0YS5maW5kKCh4KSA9PiBpdGVtLmlkID09PSB4LmlkKTtcclxuICAgICAgaWYgKGl0KSB7XHJcbiAgICAgICAgaXRbJyRjaGVja2VkJ10gPSBmYWxzZTtcclxuICAgICAgICB0aGlzLnRhYmxlQ29tPy5ib2R5Q2hhbmdlKCk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSBpZiAodGhpcy5oYXNUcmVlKSB7XHJcbiAgICAgIGxldCBpdCA9IHRoaXMudHJlZUNvbT8udHJlZURhdGEuZmluZCgoeCkgPT4gaXRlbS5pZCA9PT0geC5pZCk7XHJcbiAgICAgIGlmIChpdCkge1xyXG4gICAgICAgIGl0LmNoZWNrZWQgPSBmYWxzZTtcclxuICAgICAgICBpdC5jaGFuZ2UgJiYgaXQuY2hhbmdlKCk7XHJcbiAgICAgICAgdGhpcy50cmVlQ29tPy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgdGFnQ2xvc2UoaW5kZXg6IG51bWJlciA9IC0xKSB7XHJcbiAgICBpZiAoaW5kZXggPj0gMCkge1xyXG4gICAgICB0aGlzLnZhbHVlLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnZhbHVlID0gbnVsbDtcclxuICAgICAgdGhpcy50YWJsZUFjdGl2YXRlZFJvdyA9IG51bGw7XHJcbiAgICAgIGlmICghdGhpcy5oYXNUcmVlVGFibGUgJiYgdGhpcy5oYXNUcmVlKSB7XHJcbiAgICAgICAgdGhpcy50cmVlQWN0aXZhdGVkSWQgPSBudWxsO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICB0aGlzLm9uQ2hhbmdlKHRoaXMudmFsdWUpO1xyXG4gICAgdGhpcy5mb3JtQ29udHJvbFZhbGlkYXRvcigpO1xyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgdGFibGVBY3RpdmF0ZWRSb3dDaGFuZ2UoZGF0YTogWFRhYmxlUm93KSB7XHJcbiAgICBpZiAodGhpcy5tdWx0aXBsZSkge1xyXG4gICAgICB0aGlzLnJvd011bHRpcGxlKGRhdGEpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy50ZW1wID0gZGF0YTtcclxuICAgICAgdGhpcy5kaWFsb2dWaXNpYmxlID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuc3VyZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcm93TXVsdGlwbGUoZGF0YTogWFRhYmxlUm93KSB7XHJcbiAgICBpZiAodHlwZW9mIHRoaXMudGVtcCA9PT0gJ3VuZGVmaW5lZCcpIHRoaXMudGVtcCA9IFtdO1xyXG4gICAgLy8gZGF0YVsnJGNoZWNrZWQnXSA9ICFkYXRhWyckY2hlY2tlZCddO1xyXG4gICAgaWYgKGRhdGFbJyRjaGVja2VkJ10pIHtcclxuICAgICAgdGhpcy50ZW1wID0gWy4uLnRoaXMudGVtcCwgZGF0YV07XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnRlbXAuc3BsaWNlKFxyXG4gICAgICAgICh0aGlzLnRlbXAgYXMgQXJyYXk8YW55PikuZmluZEluZGV4KCh4KSA9PiB4LmlkID09PSBkYXRhLmlkKSxcclxuICAgICAgICAxXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICB0cmVlTXVsdGlwbGUobm9kZTogWFRyZWVOb2RlKSB7XHJcbiAgICBpZiAodHlwZW9mIHRoaXMudGVtcCA9PT0gJ3VuZGVmaW5lZCcpIHRoaXMudGVtcCA9IFtdO1xyXG4gICAgLy8gbm9kZS4kY2hlY2tlZCA9ICFub2RlLiRjaGVja2VkO1xyXG4gICAgaWYgKG5vZGUuY2hlY2tlZCkge1xyXG4gICAgICB0aGlzLnRlbXAgPSBbLi4udGhpcy50ZW1wLCBub2RlXTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMudGVtcC5zcGxpY2UoXHJcbiAgICAgICAgKHRoaXMudGVtcCBhcyBBcnJheTxhbnk+KS5maW5kSW5kZXgoKHgpID0+IHguaWQgPT09IG5vZGUuaWQpLFxyXG4gICAgICAgIDFcclxuICAgICAgKTtcclxuICAgIH1cclxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIHRyZWVBY3RpdmF0ZWRDbGljayhub2RlOiBYVHJlZU5vZGUpIHtcclxuICAgIGlmICghdGhpcy5oYXNUcmVlVGFibGUgJiYgdGhpcy5oYXNUcmVlKSB7XHJcbiAgICAgIGlmICh0aGlzLm11bHRpcGxlKSB7XHJcbiAgICAgICAgLy8gdGhpcy50cmVlTXVsdGlwbGUobm9kZSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy50ZW1wID0gbm9kZTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIGlmICh0aGlzLmhhc1RyZWVUYWJsZSAmJiB0aGlzLnRyZWVUYWJsZUNvbm5lY3QpIHtcclxuICAgICAgaWYgKCF0aGlzLnRhYmxlUXVlcnkpIHRoaXMudGFibGVRdWVyeSA9IHt9O1xyXG4gICAgICBpZiAoIXRoaXMudGFibGVRdWVyeS5maWx0ZXIpIHRoaXMudGFibGVRdWVyeS5maWx0ZXIgPSBbXTtcclxuICAgICAgbGV0IGZpZWxkID0gdGhpcy50YWJsZVF1ZXJ5LmZpbHRlci5maW5kKCh4KSA9PiB4LmZpZWxkID09PSB0aGlzLnRyZWVUYWJsZUNvbm5lY3QpO1xyXG4gICAgICBpZiAoZmllbGQpIHtcclxuICAgICAgICBmaWVsZC52YWx1ZSA9IG5vZGUuaWQ7XHJcbiAgICAgICAgZmllbGQub3BlcmF0aW9uID0gJz0nO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMudGFibGVRdWVyeS5maWx0ZXIgPSBbLi4udGhpcy50YWJsZVF1ZXJ5LmZpbHRlciwgeyBmaWVsZDogdGhpcy50cmVlVGFibGVDb25uZWN0LCB2YWx1ZTogbm9kZS5pZCwgb3BlcmF0aW9uOiAnPScgfV07XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy50YWJsZUNvbS5jaGFuZ2UoMSk7XHJcbiAgICAgIHRoaXMudHJlZUFjdGl2YXRlZElkID0gbm9kZS5pZDtcclxuICAgIH1cclxuICAgIHRoaXMudHJlZUFjdGl2YXRlZENoYW5nZS5lbWl0KG5vZGUpO1xyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgdHJlZUNoZWNrYm94Q2hhbmdlKG5vZGU6IFhUcmVlTm9kZSkge1xyXG4gICAgdGhpcy50cmVlTXVsdGlwbGUobm9kZSk7XHJcbiAgfVxyXG5cclxuICB0cmFja0J5SXRlbShfaW5kZXg6IG51bWJlciwgaXRlbTogYW55KSB7XHJcbiAgICByZXR1cm4gaXRlbS5pZDtcclxuICB9XHJcblxyXG4gIGZvcm1Db250cm9sQ2hhbmdlcygpIHtcclxuICAgIHRoaXMubmdPbkluaXQoKTtcclxuICAgIHRoaXMubmdBZnRlclZpZXdJbml0KCk7XHJcbiAgICB0aGlzLnRyZWVDb20/LnNldERhdGEoKTtcclxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIHNlYXJjaEtleURvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcclxuICAgIGlmIChldmVudC5rZXkgPT09ICdFbnRlcicpIHtcclxuICAgICAgdGhpcy5zZWFyY2hDbGljaygpO1xyXG4gICAgfSBlbHNlIGlmIChldmVudC5rZXkgPT09ICdEZWxldGUnKSB7XHJcbiAgICAgIHRoaXMuc2VhcmNoLnZhbHVlID0gJyc7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZWFyY2hDbGljaygpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5oYXNTZWFyY2gpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMudGFibGVRdWVyeSA9IHRoaXMudGFibGVRdWVyeSB8fCBbXTtcclxuICAgIHRoaXMudGFibGVRdWVyeS5maWx0ZXIgPSB0aGlzLnRhYmxlUXVlcnkuZmlsdGVyIHx8IFtdO1xyXG4gICAgY29uc3QgZmllbGQgPSB0aGlzLnRhYmxlUXVlcnkuZmlsdGVyLmZpbmQoKHgpID0+IHguZmllbGQgPT09IHRoaXMuc2VhcmNoLmZpZWxkKTtcclxuXHJcbiAgICBpZiAoZmllbGQpIHtcclxuICAgICAgZmllbGQudmFsdWUgPSB0aGlzLnNlYXJjaC52YWx1ZSB8fCAnJztcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMudGFibGVRdWVyeS5maWx0ZXIgPSBbLi4udGhpcy50YWJsZVF1ZXJ5Py5maWx0ZXIsIHRoaXMuc2VhcmNoXTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnRhYmxlQ29tLmNoYW5nZSgxKTtcclxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdlxyXG4gICNmaW5kXHJcbiAgY2xhc3M9XCJ4LWZpbmRcIlxyXG4gIFtjbGFzcy54LWZsZXhdPVwianVzdGlmeSB8fCBhbGlnbiB8fCBkaXJlY3Rpb25cIlxyXG4gIFtjbGFzcy54LWNoZWNrZWRdPVwidmFsdWVcIlxyXG4gIFtjbGFzcy54LWRpc2FibGVkXT1cImRpc2FibGVkXCJcclxuICBbY2xhc3MueC1yZXF1aXJlZF09XCJyZXF1aXJlZElzRW1wdHlcIlxyXG4gIFtjbGFzcy54LWludmFsaWRdPVwiaW52YWxpZFwiXHJcbiAgW25nQ2xhc3NdPVwiY2xhc3NNYXBcIlxyXG4+XHJcbiAgPGxhYmVsICpuZ0lmPVwibGFiZWxcIiBbY2xhc3MueC1maW5kLWxhYmVsLXJlcXVpcmVkXT1cInJlcXVpcmVkXCIgW3N0eWxlLndpZHRoXT1cImxhYmVsV2lkdGhcIiBbbmdDbGFzc109XCJsYWJlbE1hcFwiPnt7IGxhYmVsIH19PC9sYWJlbD5cclxuICA8ZGl2IGNsYXNzPVwieC1maW5kLXJvd1wiPlxyXG4gICAgPHgtYnV0dG9uXHJcbiAgICAgICNidXR0b25Db21cclxuICAgICAgaWNvbj1cImZ0by1zZWFyY2hcIlxyXG4gICAgICBbb25seUljb25dPVwiIWJvcmRlcmVkXCJcclxuICAgICAgW3NpemVdPVwic2l6ZVwiXHJcbiAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXHJcbiAgICAgIGF0dHJUeXBlPVwiYnV0dG9uXCJcclxuICAgICAgKGNsaWNrKT1cInNob3dNb2RhbCgpXCJcclxuICAgID48L3gtYnV0dG9uPlxyXG4gICAgPGRpdiBjbGFzcz1cIngtZmluZC10YWdzXCI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJtdWx0aXBsZTsgZWxzZSBzaW5nbGVUcGxcIj5cclxuICAgICAgICA8eC10YWdcclxuICAgICAgICAgICpuZ0Zvcj1cImxldCBpdGVtIG9mIHZhbHVlOyBpbmRleCBhcyBpOyB0cmFja0J5OiB0cmFja0J5SXRlbVwiXHJcbiAgICAgICAgICBjbG9zYWJsZVxyXG4gICAgICAgICAgW3NpemVdPVwic2l6ZVwiXHJcbiAgICAgICAgICBbYm9yZGVyZWRdPVwiYm9yZGVyZWRcIlxyXG4gICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcclxuICAgICAgICAgIChjbG9zZSk9XCJ0YWdDbG9zZShpKVwiXHJcbiAgICAgICAgICA+e3sgaXRlbVtjb2x1bW5MYWJlbF0gfX08L3gtdGFnXHJcbiAgICAgICAgPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPG5nLXRlbXBsYXRlICNzaW5nbGVUcGw+XHJcbiAgICAgICAgPHgtdGFnICpuZ0lmPVwidmFsdWVcIiBjbG9zYWJsZSBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIiBbYm9yZGVyZWRdPVwiYm9yZGVyZWRcIiBbc2l6ZV09XCJzaXplXCIgKGNsb3NlKT1cInRhZ0Nsb3NlKClcIj57e1xyXG4gICAgICAgICAgdmFsdWVbY29sdW1uTGFiZWxdXHJcbiAgICAgICAgfX08L3gtdGFnPlxyXG4gICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuPHgtZGlhbG9nXHJcbiAgI2RpYWxvZ0NvbVxyXG4gIFt0aXRsZV09XCJkaWFsb2dUaXRsZVwiXHJcbiAgW3dpZHRoXT1cImRpYWxvZ1dpZHRoXCJcclxuICBbaGVpZ2h0XT1cImRpYWxvZ0hlaWdodFwiXHJcbiAgW2J1dHRvbnNDZW50ZXJdPVwiZGlhbG9nQnV0dG9uc0NlbnRlclwiXHJcbiAgWyh2aXNpYmxlKV09XCJkaWFsb2dWaXNpYmxlXCJcclxuICAodmlzaWJsZUNoYW5nZSk9XCJkaWFsb2dWaXNpYmxlQ2hhbmdlLmVtaXQoJGV2ZW50KVwiXHJcbiAgKGNsb3NlRG9uZSk9XCJkaWFsb2dDbG9zZURvbmUoKVwiXHJcbiAgKGNhbmNlbCk9XCJjbG9zZU1vZGFsKClcIlxyXG4gIChjbG9zZSk9XCJjbG9zZU1vZGFsKClcIlxyXG4gIChjb25maXJtKT1cInN1cmUoKVwiXHJcbj5cclxuICA8ZGl2IGNsYXNzPVwieC1maW5kLWRpYWxvZ1wiIFtjbGFzcy54LWZpbmQtZGlhbG9nLXRyZWUtdGFibGVdPVwiaGFzVGFibGUgJiYgaGFzVHJlZVwiPlxyXG4gICAgPGRpdiBjbGFzcz1cIngtZmluZC1kaWFsb2ctdHJlZVwiICpuZ0lmPVwiaGFzVHJlZVwiICN0cmVlUmVmIFtzdHlsZS5oZWlnaHQucHhdPVwiaGFzVHJlZVRhYmxlICYmIG11bHRpcGxlICYmIGhlaWdodFwiPlxyXG4gICAgICA8eC10cmVlXHJcbiAgICAgICAgI3RyZWVDb21cclxuICAgICAgICBbZGF0YV09XCJ0cmVlRGF0YVwiXHJcbiAgICAgICAgbm9kZUhlaWdodD1cIjEuOFwiXHJcbiAgICAgICAgWyhtYW51YWwpXT1cImRpYWxvZ1Zpc2libGVcIlxyXG4gICAgICAgIFthY3RpdmF0ZWRJZF09XCJ0cmVlQWN0aXZhdGVkSWRcIlxyXG4gICAgICAgIFtleHBhbmRlZExldmVsXT1cInRyZWVFeHBhbmRlZExldmVsXCJcclxuICAgICAgICAoYWN0aXZhdGVkQ2hhbmdlKT1cInRyZWVBY3RpdmF0ZWRDbGljaygkZXZlbnQpXCJcclxuICAgICAgICBbY2hlY2tib3hdPVwiaGFzVHJlZU11bHRpcGxlXCJcclxuICAgICAgICBbY2hlY2tlZF09XCJ0cmVlQ2hlY2tlZFwiXHJcbiAgICAgICAgKGNoZWNrYm94Q2hhbmdlKT1cInRyZWVDaGVja2JveENoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgICBbbGV2ZWxDaGVja109XCIhaGFzVHJlZU11bHRpcGxlXCJcclxuICAgICAgPjwveC10cmVlPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwieC1maW5kLWRpYWxvZy10YWJsZVwiICpuZ0lmPVwiaGFzVGFibGVcIiAjdGFibGVSZWY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ4LWZpbmQtc2VhcmNoXCIgKm5nSWY9XCJoYXNTZWFyY2hcIj5cclxuICAgICAgICA8eC1pbnB1dCBbbGFiZWxdPVwic2VhcmNoLmxhYmVsXCIgZGlyZWN0aW9uPVwicm93XCIgKHhLZXlkb3duKT1cInNlYXJjaEtleURvd24oJGV2ZW50KVwiIFsobmdNb2RlbCldPVwic2VhcmNoLnZhbHVlXCI+PC94LWlucHV0PlxyXG4gICAgICAgIDx4LWJ1dHRvbiB0eXBlPVwicHJpbWFyeVwiIHBsYWluIChjbGljayk9XCJzZWFyY2hDbGljaygpXCI+e3sgc2VhcmNoLmJ1dHRvbiB8fCAn5p+l6K+iJyB9fTwveC1idXR0b24+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8eC10YWJsZVxyXG4gICAgICAgICN0YWJsZUNvbVxyXG4gICAgICAgIFtkYXRhXT1cInRhYmxlRGF0YVwiXHJcbiAgICAgICAgW2NvbHVtbnNdPVwidGFibGVDb2x1bW5zXCJcclxuICAgICAgICBbKG1hbnVhbCldPVwiZGlhbG9nVmlzaWJsZVwiXHJcbiAgICAgICAgWyhpbmRleCldPVwidGFibGVJbmRleFwiXHJcbiAgICAgICAgWyhzaXplKV09XCJ0YWJsZVNpemVcIlxyXG4gICAgICAgIFtxdWVyeV09XCJ0YWJsZVF1ZXJ5XCJcclxuICAgICAgICBbdG90YWxdPVwidGFibGVUb3RhbFwiXHJcbiAgICAgICAgW2FsbG93U2VsZWN0Um93XT1cIiFtdWx0aXBsZVwiXHJcbiAgICAgICAgW2FsbG93Q2hlY2tSb3ddPVwibXVsdGlwbGVcIlxyXG4gICAgICAgIFtjaGVja2VkUm93XT1cInRhYmxlQ2hlY2tlZFJvd1wiXHJcbiAgICAgICAgW2xvYWRpbmddPVwidGFibGVMb2FkaW5nXCJcclxuICAgICAgICAoaW5kZXhDaGFuZ2UpPVwidGFibGVJbmRleENoYW5nZS5lbWl0KCRldmVudClcIlxyXG4gICAgICAgIChzb3J0Q2hhbmdlKT1cInRhYmxlU29ydENoYW5nZS5lbWl0KCRldmVudClcIlxyXG4gICAgICAgIFsoYWN0aXZhdGVkUm93KV09XCJ0YWJsZUFjdGl2YXRlZFJvd1wiXHJcbiAgICAgICAgKGFjdGl2YXRlZFJvd0NoYW5nZSk9XCJ0YWJsZUFjdGl2YXRlZFJvd0NoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgICBbcm93SGVpZ2h0XT1cInRhYmxlUm93SGVpZ2h0XCJcclxuICAgICAgICBbYm9keUhlaWdodF09XCJ0YWJsZUJvZHlIZWlnaHRcIlxyXG4gICAgICAgIFt2aXJ0dWFsU2Nyb2xsXT1cInRhYmxlVmlydHVhbFNjcm9sbFwiXHJcbiAgICAgICAgW21pbkJ1ZmZlclB4XT1cInRhYmxlTWluQnVmZmVyUHhcIlxyXG4gICAgICAgIFttYXhCdWZmZXJQeF09XCJ0YWJsZU1heEJ1ZmZlclB4XCJcclxuICAgICAgICBbYWRhcHRpb25IZWlnaHRdPVwidGFibGVBZGFwdGlvbkhlaWdodFwiXHJcbiAgICAgICAgW2RvY1BlcmNlbnRdPVwidGFibGVEb2NQZXJjZW50XCJcclxuICAgICAgPjwveC10YWJsZT5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiAqbmdJZj1cIm11bHRpcGxlXCIgY2xhc3M9XCJ4LWZpbmQtZGlhbG9nLWNoZWNrZWRcIiBbY2xhc3MueC1maW5kLWVtcHR5XT1cImdldEVtcHR5XCIgW3N0eWxlLmhlaWdodC5weF09XCJoZWlnaHRcIj5cclxuICAgICAgPHgtZW1wdHkgKm5nSWY9XCJnZXRFbXB0eVwiIFtjb250ZW50XT1cImRpYWxvZ0VtcHR5Q29udGVudFwiPjwveC1lbXB0eT5cclxuICAgICAgPGRpdiBjbGFzcz1cIngtZmluZC1kaWFsb2ctdGFnc1wiPlxyXG4gICAgICAgIDx4LXRhZyAqbmdGb3I9XCJsZXQgaXRlbSBvZiB0ZW1wOyBpbmRleCBhcyBpOyB0cmFja0J5OiB0cmFja0J5SXRlbVwiIGNsb3NhYmxlIChjbG9zZSk9XCJ0ZW1wQ2xvc2UoaSwgaXRlbSlcIj5cclxuICAgICAgICAgIDxzcGFuPnt7IGl0ZW1bY29sdW1uTGFiZWxdIH19PC9zcGFuPlxyXG4gICAgICAgIDwveC10YWc+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwveC1kaWFsb2c+XHJcblxyXG48bmctdGVtcGxhdGUgI3RyZWVMYWJlbFRwbCBsZXQtbm9kZT1cIiRub2RlXCI+XHJcbiAgPGRpdiBjbGFzcz1cIngtZmluZC1kaWFsb2ctdHJlZS1ub2RlXCI+XHJcbiAgICA8c3Bhbj57eyBub2RlLmxhYmVsIH19IDwvc3Bhbj5cclxuICAgIDx4LWljb24gdHlwZT1cImZ0by1jaGVja1wiICpuZ0lmPVwibm9kZS4kY2hlY2tlZFwiPjwveC1pY29uPlxyXG4gIDwvZGl2PlxyXG48L25nLXRlbXBsYXRlPlxyXG4iXX0=
|