@acorex/components 16.18.14 → 16.18.16
Sign up to get free protection for your applications and to get access to all the features.
- package/esm2022/lib/base/element.class.mjs +8 -2
- package/esm2022/lib/button/button.component.mjs +3 -3
- package/esm2022/lib/calendar/calendar-box/calendar-box.component.mjs +9 -3
- package/esm2022/lib/calendar/scheduler/toolbars/scheduler-toolbar-navigator.mjs +1 -1
- package/esm2022/lib/calendar/scheduler/toolbars/scheduler-toolbar-views.mjs +1 -1
- package/esm2022/lib/checkbox/checkbox.component.mjs +3 -3
- package/esm2022/lib/color-picker/color-picker.component.mjs +3 -3
- package/esm2022/lib/context-menu/context-menu.component.mjs +9 -3
- package/esm2022/lib/data-filter/filter-panel/filter-panel.component.mjs +9 -3
- package/esm2022/lib/data-filter/toolbar/filter-toolbar.component.mjs +1 -1
- package/esm2022/lib/data-list/list/list.component.mjs +3 -3
- package/esm2022/lib/date-picker/date-picker.component.mjs +3 -3
- package/esm2022/lib/dropdown/dropdown.component.mjs +3 -3
- package/esm2022/lib/fieldset/fieldset.component.mjs +10 -3
- package/esm2022/lib/form-group/form-group.component.mjs +3 -3
- package/esm2022/lib/label/label.component.mjs +4 -3
- package/esm2022/lib/loading/loading-indicator.component.mjs +9 -3
- package/esm2022/lib/loading/loading-panel.component.mjs +9 -3
- package/esm2022/lib/menu/menu.component.mjs +9 -3
- package/esm2022/lib/number-box/number-box.component.mjs +3 -3
- package/esm2022/lib/panel-box/panel-box.component.mjs +9 -3
- package/esm2022/lib/password-box/password-box.component.mjs +3 -3
- package/esm2022/lib/popover/popover.component.mjs +10 -3
- package/esm2022/lib/popup/popup.component.mjs +9 -7
- package/esm2022/lib/popup/popup.service.mjs +6 -2
- package/esm2022/lib/progress-bar/progress-bar.component.mjs +3 -3
- package/esm2022/lib/search-bar/search-bar.component.mjs +9 -3
- package/esm2022/lib/searchbox/searchbox.component.mjs +3 -3
- package/esm2022/lib/selectbox/selectbox.component.mjs +3 -3
- package/esm2022/lib/selection-list/selection-list.component.mjs +3 -3
- package/esm2022/lib/switch/switch.component.mjs +8 -7
- package/esm2022/lib/tab-page/tab-page-Renderer.component.mjs +3 -1
- package/esm2022/lib/tab-page/tab-page-host.component.mjs +7 -6
- package/esm2022/lib/tab-page/tab-page.service.mjs +7 -3
- package/esm2022/lib/tab-strip/tab-strip.component.mjs +9 -3
- package/esm2022/lib/tab-view/tab-view.component.mjs +10 -4
- package/esm2022/lib/tab-view/tab.component.mjs +9 -3
- package/esm2022/lib/textarea/textarea.component.mjs +9 -5
- package/esm2022/lib/textbox/textbox.component.mjs +9 -5
- package/esm2022/lib/time-picker/time-picker.component.mjs +3 -3
- package/esm2022/lib/toast/toast-message/toast-message.component.mjs +9 -3
- package/esm2022/lib/toolbar/group-button/toolbar-group-button.component.mjs +27 -18
- package/esm2022/lib/toolbar/menu/toolbar-menu.component.mjs +9 -3
- package/esm2022/lib/toolbar/search/toolbar-search.component.mjs +9 -3
- package/esm2022/lib/toolbar/title/toolbar-title.component.mjs +23 -8
- package/esm2022/lib/toolbar/toolbar.component.mjs +11 -5
- package/esm2022/lib/tree-side-menu/tree-side-menu.component.mjs +3 -3
- package/esm2022/lib/tree-view/tree-view.component.mjs +3 -3
- package/esm2022/lib/upload-file/upload-file.component.mjs +3 -3
- package/fesm2022/acorex-components.mjs +269 -117
- package/fesm2022/acorex-components.mjs.map +1 -1
- package/lib/base/element.class.d.ts +3 -1
- package/lib/calendar/calendar-box/calendar-box.component.d.ts +3 -1
- package/lib/context-menu/context-menu.component.d.ts +3 -1
- package/lib/data-filter/filter-panel/filter-panel.component.d.ts +3 -1
- package/lib/fieldset/fieldset.component.d.ts +3 -1
- package/lib/loading/loading-indicator.component.d.ts +3 -1
- package/lib/loading/loading-panel.component.d.ts +3 -1
- package/lib/menu/menu.component.d.ts +3 -1
- package/lib/panel-box/panel-box.component.d.ts +3 -1
- package/lib/popover/popover.component.d.ts +3 -1
- package/lib/popup/popup.service.d.ts +2 -0
- package/lib/search-bar/search-bar.component.d.ts +3 -1
- package/lib/tab-page/tab-page.service.d.ts +2 -0
- package/lib/tab-strip/tab-strip.component.d.ts +3 -1
- package/lib/tab-view/tab-view.component.d.ts +3 -1
- package/lib/tab-view/tab.component.d.ts +3 -1
- package/lib/toast/toast-message/toast-message.component.d.ts +3 -1
- package/lib/toolbar/group-button/toolbar-group-button.component.d.ts +6 -4
- package/lib/toolbar/menu/toolbar-menu.component.d.ts +3 -1
- package/lib/toolbar/search/toolbar-search.component.d.ts +3 -1
- package/lib/toolbar/title/toolbar-title.component.d.ts +3 -2
- package/lib/toolbar/toolbar.component.d.ts +3 -1
- package/package.json +1 -1
@@ -50,6 +50,8 @@ export class AXSearchBarComponent {
|
|
50
50
|
.map((value, key) => ({ row: key, items: value }))
|
51
51
|
.value();
|
52
52
|
}
|
53
|
+
axId;
|
54
|
+
axClass;
|
53
55
|
onValueChange = new EventEmitter();
|
54
56
|
onSearchValue = new EventEmitter();
|
55
57
|
_items = [];
|
@@ -251,11 +253,11 @@ export class AXSearchBarComponent {
|
|
251
253
|
this.searchPopover.close();
|
252
254
|
}
|
253
255
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: AXSearchBarComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
254
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.7", type: AXSearchBarComponent, selector: "ax-search-bar", inputs: { sizeButton: "sizeButton", size: "size", disabled: "disabled", fitParent: "fitParent", popoverWidth: "popoverWidth", rtl: "rtl", loadOnInit: "loadOnInit", caption: "caption", block: "block", items: "items" }, outputs: { onValueChange: "onValueChange", onSearchValue: "onSearchValue" }, viewQueries: [{ propertyName: "searchPopover", first: true, predicate: ["searchPop"], descendants: true }, { propertyName: "form", first: true, predicate: AXValidationFormComponent, descendants: true }, { propertyName: "_editors", predicate: AXPropertyEditorRendererDirective, descendants: true }], ngImport: i0, template: "<ax-button [block]=\"block\" end icon=\"far fa-sliders-h icon\" [selected]=\"_searchCount? true:false\"\n [type]=\"
|
256
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.7", type: AXSearchBarComponent, selector: "ax-search-bar", inputs: { sizeButton: "sizeButton", size: "size", disabled: "disabled", fitParent: "fitParent", popoverWidth: "popoverWidth", rtl: "rtl", loadOnInit: "loadOnInit", caption: "caption", block: "block", items: "items", axId: "axId", axClass: "axClass" }, outputs: { onValueChange: "onValueChange", onSearchValue: "onSearchValue" }, viewQueries: [{ propertyName: "searchPopover", first: true, predicate: ["searchPop"], descendants: true }, { propertyName: "form", first: true, predicate: AXValidationFormComponent, descendants: true }, { propertyName: "_editors", predicate: AXPropertyEditorRendererDirective, descendants: true }], ngImport: i0, template: "<ax-button [block]=\"block\" end icon=\"far fa-sliders-h icon\" [selected]=\"_searchCount ? true : false\"\n [type]=\"_searchCount ? 'primary' : 'primary outline'\" [disabled]=\"disabled\" [size]=\"sizeButton\" [tabIndex]=\"-1\"\n (click)=\"handleButtonClick()\" [attr.id]=\"axId + '-search-button'\" [ngClass]=\"axClass\">\n {{ caption ? caption : 'common.search' | trans }}\n <span *ngIf=\"_searchCount\" class=\"search-count\" [attr.id]=\"axId + '-search-count'\">\n {{ _searchCount }}\n </span>\n</ax-button>\n\n<ax-popover #searchPop [target]=\"ref\" [rtl]=\"rtl\"\n [position]=\"{ originX: 'end', originY: 'bottom', overlayX: 'end', overlayY: 'top', offsetY: 10 }\"\n [attr.id]=\"axId + '-popover'\" [ngClass]=\"axClass\">\n <div class=\"panel-box ax-dropdown-container-bordered {{ size }}\" [attr.id]=\"axId + '-panel-box'\">\n <ax-validation-form #form [attr.id]=\"axId + '-validation-form'\">\n <ng-container *ngFor=\"let item of _items\" [attr.id]=\"axId + '-item-' + item.property.id\">\n <div class=\"row\" [attr.id]=\"axId + '-row-' + item.property.id\">\n <ng-container *ngFor=\"let prop of item.items\">\n <div *ngIf=\"prop.property.visible != false\" class=\"{{ renderCol(prop.property.col) }}\"\n [attr.id]=\"axId + '-col-' + prop.property.id\">\n <div [attr.id]=\"axId + '-label-container-' + prop.property.id\">\n <ax-label [attr.id]=\"axId + '-label-' + prop.property.id\">\n {{ prop.property.title }}\n </ax-label>\n <ng-container ax-property-editor-renderer [validationForm]=\"form\" [property]=\"prop\"\n [context]=\"_context\" (onValueChange)=\"handleValueChange($event)\"\n [attr.id]=\"axId + '-editor-' + prop.property.id\"></ng-container>\n </div>\n </div>\n </ng-container>\n </div>\n </ng-container>\n <div class=\"footer-button\" [attr.id]=\"axId + '-footer-button'\">\n <ax-button (click)=\"search()\" [attr.id]=\"axId + '-search-footer-button'\">\n {{ 'common.search' | trans }}\n </ax-button>\n <ax-button type=\"blank danger\" (click)=\"clear()\" [attr.id]=\"axId + '-reset-footer-button'\">\n {{ 'common.reset' | trans }}\n </ax-button>\n </div>\n </ax-validation-form>\n </div>\n</ax-popover>", styles: [".panel-box{padding:1rem}.panel-box.ax-dropdown-container-bordered{background:var(--ax-white-color);border:1px solid;border-color:var(--ax-border-color);border-radius:var(--ax-border-radius-size);box-shadow:0 5px 10px #0000004d}.panel-box .footer-button{margin-top:1rem;display:flex;align-items:center;gap:.5rem}.panel-box.sm{width:30vw}.panel-box.md{width:50vw}.panel-box.lg{width:70vw}.panel-box.full{width:80vw}@media all and (min-width: 1280px){.panel-box.sm{width:420px!important}.panel-box.md{width:680px!important}.panel-box.lg{width:1024px!important}}@media all and (min-width: 1024px) and (max-width: 1279px){.panel-box.sm{width:100vw;max-height:100vh}.panel-box.md{width:500px!important}.panel-box.lg{width:900px!important}}@media all and (min-width: 768px) and (max-width: 1023px){.panel-box.sm{width:100vw;max-height:100vh}.panel-box.md{width:500px!important}.panel-box.lg{width:700px!important}}@media all and (min-width: 425px) and (max-width: 767px){.panel-box.sm{width:100vw;max-height:100vh}.panel-box.md,.panel-box.lg{width:460px!important}}@media all and (min-width: 0px) and (max-width: 424px){.panel-box.sm,.panel-box.md,.panel-box.lg{width:100vw;max-height:100vh}}.search-count{background:#fff3;border-radius:50%;color:var(--ax-white-color);padding:.125rem;width:1.75rem;height:1.75rem;font-size:.875rem;display:inline-flex;align-items:center;justify-content:center;margin-inline-start:.5rem}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.AXButtonComponent, selector: "ax-button", inputs: ["type", "icon", "submitBehavior", "cancelBehavior", "block", "loading", "selected"] }, { kind: "directive", type: i3.AXPropertyEditorRendererDirective, selector: "[ax-property-editor-renderer]", inputs: ["property", "validationForm", "context", "host", "groupId"], outputs: ["onValueChange"] }, { kind: "component", type: i4.AXLabelComponent, selector: "ax-label", inputs: ["size"] }, { kind: "component", type: i5.AXValidationFormComponent, selector: "ax-validation-form", inputs: ["validateOn"], outputs: ["onInit"] }, { kind: "component", type: i6.AXPopoverComponent, selector: "ax-popover", inputs: ["target", "position", "openMode", "closeMode", "rtl", "axId", "axClass", "visible"], outputs: ["onOutSideClick"] }, { kind: "pipe", type: i7.AXTranslatorPipe, name: "trans" }] });
|
255
257
|
}
|
256
258
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: AXSearchBarComponent, decorators: [{
|
257
259
|
type: Component,
|
258
|
-
args: [{ selector: 'ax-search-bar', template: "<ax-button [block]=\"block\" end icon=\"far fa-sliders-h icon\" [selected]=\"_searchCount? true:false\"\n [type]=\"
|
260
|
+
args: [{ selector: 'ax-search-bar', template: "<ax-button [block]=\"block\" end icon=\"far fa-sliders-h icon\" [selected]=\"_searchCount ? true : false\"\n [type]=\"_searchCount ? 'primary' : 'primary outline'\" [disabled]=\"disabled\" [size]=\"sizeButton\" [tabIndex]=\"-1\"\n (click)=\"handleButtonClick()\" [attr.id]=\"axId + '-search-button'\" [ngClass]=\"axClass\">\n {{ caption ? caption : 'common.search' | trans }}\n <span *ngIf=\"_searchCount\" class=\"search-count\" [attr.id]=\"axId + '-search-count'\">\n {{ _searchCount }}\n </span>\n</ax-button>\n\n<ax-popover #searchPop [target]=\"ref\" [rtl]=\"rtl\"\n [position]=\"{ originX: 'end', originY: 'bottom', overlayX: 'end', overlayY: 'top', offsetY: 10 }\"\n [attr.id]=\"axId + '-popover'\" [ngClass]=\"axClass\">\n <div class=\"panel-box ax-dropdown-container-bordered {{ size }}\" [attr.id]=\"axId + '-panel-box'\">\n <ax-validation-form #form [attr.id]=\"axId + '-validation-form'\">\n <ng-container *ngFor=\"let item of _items\" [attr.id]=\"axId + '-item-' + item.property.id\">\n <div class=\"row\" [attr.id]=\"axId + '-row-' + item.property.id\">\n <ng-container *ngFor=\"let prop of item.items\">\n <div *ngIf=\"prop.property.visible != false\" class=\"{{ renderCol(prop.property.col) }}\"\n [attr.id]=\"axId + '-col-' + prop.property.id\">\n <div [attr.id]=\"axId + '-label-container-' + prop.property.id\">\n <ax-label [attr.id]=\"axId + '-label-' + prop.property.id\">\n {{ prop.property.title }}\n </ax-label>\n <ng-container ax-property-editor-renderer [validationForm]=\"form\" [property]=\"prop\"\n [context]=\"_context\" (onValueChange)=\"handleValueChange($event)\"\n [attr.id]=\"axId + '-editor-' + prop.property.id\"></ng-container>\n </div>\n </div>\n </ng-container>\n </div>\n </ng-container>\n <div class=\"footer-button\" [attr.id]=\"axId + '-footer-button'\">\n <ax-button (click)=\"search()\" [attr.id]=\"axId + '-search-footer-button'\">\n {{ 'common.search' | trans }}\n </ax-button>\n <ax-button type=\"blank danger\" (click)=\"clear()\" [attr.id]=\"axId + '-reset-footer-button'\">\n {{ 'common.reset' | trans }}\n </ax-button>\n </div>\n </ax-validation-form>\n </div>\n</ax-popover>", styles: [".panel-box{padding:1rem}.panel-box.ax-dropdown-container-bordered{background:var(--ax-white-color);border:1px solid;border-color:var(--ax-border-color);border-radius:var(--ax-border-radius-size);box-shadow:0 5px 10px #0000004d}.panel-box .footer-button{margin-top:1rem;display:flex;align-items:center;gap:.5rem}.panel-box.sm{width:30vw}.panel-box.md{width:50vw}.panel-box.lg{width:70vw}.panel-box.full{width:80vw}@media all and (min-width: 1280px){.panel-box.sm{width:420px!important}.panel-box.md{width:680px!important}.panel-box.lg{width:1024px!important}}@media all and (min-width: 1024px) and (max-width: 1279px){.panel-box.sm{width:100vw;max-height:100vh}.panel-box.md{width:500px!important}.panel-box.lg{width:900px!important}}@media all and (min-width: 768px) and (max-width: 1023px){.panel-box.sm{width:100vw;max-height:100vh}.panel-box.md{width:500px!important}.panel-box.lg{width:700px!important}}@media all and (min-width: 425px) and (max-width: 767px){.panel-box.sm{width:100vw;max-height:100vh}.panel-box.md,.panel-box.lg{width:460px!important}}@media all and (min-width: 0px) and (max-width: 424px){.panel-box.sm,.panel-box.md,.panel-box.lg{width:100vw;max-height:100vh}}.search-count{background:#fff3;border-radius:50%;color:var(--ax-white-color);padding:.125rem;width:1.75rem;height:1.75rem;font-size:.875rem;display:inline-flex;align-items:center;justify-content:center;margin-inline-start:.5rem}\n"] }]
|
259
261
|
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }], propDecorators: { searchPopover: [{
|
260
262
|
type: ViewChild,
|
261
263
|
args: ['searchPop']
|
@@ -285,9 +287,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImpor
|
|
285
287
|
type: Input
|
286
288
|
}], items: [{
|
287
289
|
type: Input
|
290
|
+
}], axId: [{
|
291
|
+
type: Input
|
292
|
+
}], axClass: [{
|
293
|
+
type: Input
|
288
294
|
}], onValueChange: [{
|
289
295
|
type: Output
|
290
296
|
}], onSearchValue: [{
|
291
297
|
type: Output
|
292
298
|
}] } });
|
293
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvc3JjL2xpYi9zZWFyY2gtYmFyL3NlYXJjaC1iYXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3NyYy9saWIvc2VhcmNoLWJhci9zZWFyY2gtYmFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3BELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFJLE9BQU8sS0FBSyxDQUFDLE1BQU0sUUFBUSxDQUFDO0FBRTVCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxpQ0FBaUMsRUFBRSxNQUFNLHVEQUF1RCxDQUFDO0FBRTFHLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDOzs7Ozs7Ozs7QUFpQnBGLE1BQU0sT0FBTyxvQkFBb0I7SUFDWDtJQUErQjtJQUFuRCxZQUFvQixHQUFzQixFQUFTLEdBQStCO1FBQTlELFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQVMsUUFBRyxHQUFILEdBQUcsQ0FBNEI7SUFBSSxDQUFDO0lBRS9ELGFBQWEsQ0FBcUI7SUFDVCxRQUFRLENBQStDO0lBQ2xFLElBQUksQ0FBNEI7SUFHdEUsVUFBVSxHQUFrQixJQUFJLENBQUM7SUFHakMsSUFBSSxHQUFnQyxJQUFJLENBQUM7SUFHekMsUUFBUSxHQUFZLEtBQUssQ0FBQztJQUcxQixTQUFTLEdBQVksS0FBSyxDQUFDO0lBRzNCLFlB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SUFBSTtRQUNULFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQzFCLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDekIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUMxQixDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDVixDQUFDO0lBRU0sS0FBSztRQUNWLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDN0IsQ0FBQzt1R0F6UVUsb0JBQW9COzJGQUFwQixvQkFBb0IsK2RBS3BCLHlCQUF5Qiw4REFEdEIsaUNBQWlDLGdEQzVCakQsbXZEQTZCYTs7MkZETEEsb0JBQW9CO2tCQUxoQyxTQUFTOytCQUNFLGVBQWU7K0dBT0QsYUFBYTtzQkFBcEMsU0FBUzt1QkFBQyxXQUFXO2dCQUMyQixRQUFRO3NCQUF4RCxZQUFZO3VCQUFDLGlDQUFpQztnQkFDVCxJQUFJO3NCQUF6QyxTQUFTO3VCQUFDLHlCQUF5QjtnQkFHcEMsVUFBVTtzQkFEVCxLQUFLO2dCQUlOLElBQUk7c0JBREgsS0FBSztnQkFJTixRQUFRO3NCQURQLEtBQUs7Z0JBSU4sU0FBUztzQkFEUixLQUFLO2dCQUlOLFlBQVk7c0JBRFgsS0FBSztnQkFJTixHQUFHO3NCQURGLEtBQUs7Z0JBSU4sVUFBVTtzQkFEVCxLQUFLO2dCQUlOLE9BQU87c0JBRE4sS0FBSztnQkFJTixLQUFLO3NCQURKLEtBQUs7Z0JBSUssS0FBSztzQkFEZixLQUFLO2dCQXNCTixhQUFhO3NCQURaLE1BQU07Z0JBSVAsYUFBYTtzQkFEWixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhDb25maWcsIEFYRGF0ZVRpbWUgfSBmcm9tICdAYWNvcmV4L2NvcmUnO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0LCBRdWVyeUxpc3QsIFZpZXdDaGlsZCwgVmlld0NoaWxkcmVuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgKiBhcyBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBBWEVsZW1lbnRTaXplIH0gZnJvbSAnLi4vYmFzZS9lbGVtZW50LmNsYXNzJztcbmltcG9ydCB7IEFYUG9wb3ZlckNvbXBvbmVudCB9IGZyb20gJy4uL3BvcG92ZXIvcG9wb3Zlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgQVhQcm9wZXJ0eUVkaXRvclJlbmRlcmVyRGlyZWN0aXZlIH0gZnJvbSAnLi4vcHJvcGVydHktZWRpdG9yL3Byb3BlcnR5LWVkaXRvci1yZW5kZXJlci5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgQVhQcm9wZXJ0eUNvbERlZiwgQVhQcm9wZXJ0eUNvbmZpZywgQVhQcm9wZXJ5RWRpdG9yVmFsdWVDaGFuZ2VFdmVudCwgRmlsdGVyTW9kZWwgfSBmcm9tICcuLi9wcm9wZXJ0eS1lZGl0b3IvcHJvcGVydHktZWRpdG9yLmNsYXNzJztcbmltcG9ydCB7IEFYVmFsaWRhdGlvbkZvcm1Db21wb25lbnQgfSBmcm9tICcuLi92YWxpZGF0aW9uL3ZhbGlkYXRpb24tZm9ybS5jb21wb25lbnQnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEZpbHRlclRleHRJdGVtc01vZGVsIHtcbiAgbmFtZTogc3RyaW5nO1xuICB0aXRsZTogc3RyaW5nO1xuICB2YWx1ZTogYW55O1xuICB0ZXh0VmFsdWU6IHN0cmluZztcbiAgZmlsdGVyT3B0aW9ucz86IEZpbHRlck1vZGVsO1xuICBjb21wb25lbnQ6IEFYUHJvcGVydHlDb25maWc7XG4gIHVuaXF1ZU51bWJlcj86IG51bWJlcjtcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXgtc2VhcmNoLWJhcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9zZWFyY2gtYmFyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc2VhcmNoLWJhci5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIEFYU2VhcmNoQmFyQ29tcG9uZW50IHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmLCBwdWJsaWMgcmVmOiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PikgeyB9XG5cbiAgQFZpZXdDaGlsZCgnc2VhcmNoUG9wJykgc2VhcmNoUG9wb3ZlcjogQVhQb3BvdmVyQ29tcG9uZW50O1xuICBAVmlld0NoaWxkcmVuKEFYUHJvcGVydHlFZGl0b3JSZW5kZXJlckRpcmVjdGl2ZSkgX2VkaXRvcnM6IFF1ZXJ5TGlzdDxBWFByb3BlcnR5RWRpdG9yUmVuZGVyZXJEaXJlY3RpdmU+O1xuICBAVmlld0NoaWxkKEFYVmFsaWRhdGlvbkZvcm1Db21wb25lbnQpIGZvcm06IEFYVmFsaWRhdGlvbkZvcm1Db21wb25lbnQ7XG5cbiAgQElucHV0KClcbiAgc2l6ZUJ1dHRvbjogQVhFbGVtZW50U2l6ZSA9ICdtZCc7XG5cbiAgQElucHV0KClcbiAgc2l6ZTogJ3NtJyB8ICdtZCcgfCAnbGcnIHwgJ2Z1bGwnID0gJ3NtJztcblxuICBASW5wdXQoKVxuICBkaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIGZpdFBhcmVudDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIHBvcG92ZXJXaWR0aDogc3RyaW5nID0gJzY1dncnO1xuXG4gIEBJbnB1dCgpXG4gIHJ0bDogYm9vbGVhbiA9IEFYQ29uZmlnLmdldCgnbGF5b3V0LnJ0bCcpO1xuXG4gIEBJbnB1dCgpXG4gIGxvYWRPbkluaXQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBjYXB0aW9uOiBzdHJpbmdcblxuICBASW5wdXQoKVxuICBibG9jazogYm9vbGVhbiA9IGZhbHNlXG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBpdGVtcyh2OiBBWFByb3BlcnR5Q29uZmlnW10pIHtcbiAgICB0aGlzLl9kZWZ1bHRWYWx1ZUNvdW50ID0gdi5maWx0ZXIoKHgpID0+IHgudmFsdWUpO1xuICAgIHYuZm9yRWFjaCgoZWwpID0+IHtcbiAgICAgIGVsLnByb3BlcnR5LnVuaXF1ZU51bWJlciA9IE1hdGgucmFuZG9tKCk7XG4gICAgICBpZiAoZWwudmFsdWUgIT0gbnVsbCkge1xuICAgICAgICB0aGlzLl9maWx0ZXJJdGVtcy5wdXNoKHtcbiAgICAgICAgICBuYW1lOiBlbC5wcm9wZXJ0eS5uYW1lLFxuICAgICAgICAgIHRpdGxlOiBlbC5wcm9wZXJ0eS50aXRsZSxcbiAgICAgICAgICB0ZXh0VmFsdWU6IHRoaXMuX2hhbmRsZVRleHRWYWx1ZShlbCksXG4gICAgICAgICAgdmFsdWU6IGVsLnZhbHVlID8gdGhpcy5faGFuZGxlRGVmdWx0VmxhdWUoZWwpIDogbnVsbCxcbiAgICAgICAgICBjb21wb25lbnQ6IGVsXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHRoaXMuX2l0ZW1zID0gXy5jaGFpbih2KVxuICAgICAgLmdyb3VwQnkoKHgpID0+IHgucHJvcGVydHkucm93KVxuICAgICAgLm1hcCgodmFsdWUsIGtleSkgPT4gKHsgcm93OiBrZXksIGl0ZW1zOiB2YWx1ZSB9KSlcbiAgICAgIC52YWx1ZSgpO1xuICB9XG5cbiAgQE91dHB1dCgpXG4gIG9uVmFsdWVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIEBPdXRwdXQoKVxuICBvblNlYXJjaFZhbHVlOiBFdmVudEVtaXR0ZXI8RmlsdGVyVGV4dEl0ZW1zTW9kZWxbXT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgX2l0ZW1zOiBhbnlbXSA9IFtdO1xuICBfZmlsdGVySXRlbXM6IEZpbHRlclRleHRJdGVtc01vZGVsW10gPSBbXTtcbiAgX2ZpbHRlckl0ZW1zQ2xvbmU6IEZpbHRlclRleHRJdGVtc01vZGVsW10gPSBbXTtcbiAgX2RlZnVsdFZhbHVlQ291bnQ6IGFueSA9IFtdO1xuICBfY29udGV4dDogYW55ID0ge307XG4gIF9pc0VtaXR0ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgX3NlYXJjaENvdW50OiBudW1iZXJcblxuICBwdWJsaWMgZGlzYWJsZUl0ZW0obmFtZTogc3RyaW5nLCBkaXNhYmxlVmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9lZGl0b3JzLmZpbmQoKHgpID0+IHgucHJvcGVydHkucHJvcGVydHkubmFtZSA9PT0gbmFtZSkuZGlzYWJlbGQoZGlzYWJsZVZhbHVlKVxuICB9XG4gIHB1YmxpYyBjbGVhckl0ZW0obmFtZTogc3RyaW5nKSB7XG4gICAgdGhpcy5fZWRpdG9ycy5maW5kKCh4KSA9PiB4LnByb3BlcnR5LnByb3BlcnR5Lm5hbWUgPT09IG5hbWUpLmNsZWFyKCk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5ydGwgPT0gbnVsbCkge1xuICAgICAgdGhpcy5ydGwgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0aGlzLnJlZi5uYXRpdmVFbGVtZW50LCBudWxsKS5nZXRQcm9wZXJ0eVZhbHVlKCdkaXJlY3Rpb24nKSA9PT0gJ3J0bCc7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHJlZnJlc2goKSB7XG4gICAgdGhpcy5sb2FkT25Jbml0ID0gdHJ1ZTtcbiAgICB0aGlzLl9kZWZ1bHRWYWx1ZUNvdW50ID0gW107XG4gICAgdGhpcy5fZmlsdGVySXRlbXMgPSBbXTtcbiAgICB0aGlzLl9maWx0ZXJJdGVtc0Nsb25lID0gW107XG4gICAgdGhpcy5pdGVtcyA9IHRoaXMuX2l0ZW1zWzBdLml0ZW1zO1xuICAgICh0aGlzLmZvcm0gYXMgYW55KS53aWRnZXRzID0gW107XG4gICAgKHRoaXMuZm9ybSBhcyBhbnkpLndpZGdldHNRdWVyeS5mb3JFYWNoKChlbCkgPT4ge1xuICAgICAgKHRoaXMuZm9ybSBhcyBhbnkpLndpZGdldHMucHVzaChlbCk7XG4gICAgfSk7XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgaGFuZGxlQnV0dG9uQ2xpY2soKSB7XG4gICAgdGhpcy5zZWFyY2hQb3BvdmVyLm9wZW4oKTtcbiAgfVxuXG4gIGFzeW5jIGhhbmRsZVZhbHVlQ2hhbmdlKGU6IEFYUHJvcGVyeUVkaXRvclZhbHVlQ2hhbmdlRXZlbnQpIHtcbiAgICBhd2FpdCB0aGlzLl9oYW5kbGVJbml0VmxhdWUoZSk7XG4gICAgdGhpcy5vblZhbHVlQ2hhbmdlLmVtaXQoZSk7XG4gIH1cblxuICBoYW5kbGVJdGVtUmVtb3ZlQ2xpY2soaXRlbTogRmlsdGVyVGV4dEl0ZW1zTW9kZWwpIHtcbiAgICB0aGlzLl9lZGl0b3JzLmZvckVhY2goKGUpID0+IHtcbiAgICAgIGlmIChlLnByb3BlcnR5LnByb3BlcnR5Lm5hbWUgPT0gaXRlbS5uYW1lKSB7XG4gICAgICAgIGUuY2xlYXIoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICB0aGlzLl9maWx0ZXJJdGVtcyA9IHRoaXMuX2ZpbHRlckl0ZW1zLmZpbHRlcigoZWwpID0+IGVsLm5hbWUgIT0gaXRlbS5uYW1lKTtcbiAgfVxuXG4gIHB1YmxpYyBzZWFyY2goKSB7XG4gICAgdGhpcy5mb3JtLnZhbGlkYXRlKCkudGhlbigoYykgPT4ge1xuICAgICAgaWYgKGMucmVzdWx0KSB7XG4gICAgICAgIHRoaXMuX2ZpbHRlckl0ZW1zID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLl9maWx0ZXJJdGVtc0Nsb25lLmZpbHRlcigoZWwpID0+IGVsLnZhbHVlID09PSAwIHx8IGVsLnZhbHVlICE9IG51bGwgJiYgZWwudmFsdWUgIT0gJycpKSk7XG4gICAgICAgIHRoaXMuX3NlYXJjaENvdW50ID0gdGhpcy5fZmlsdGVySXRlbXMuZmlsdGVyKCh4KSA9PiB4LmNvbXBvbmVudC5wcm9wZXJ0eS52aXNpYmxlICE9IGZhbHNlKS5sZW5ndGhcbiAgICAgICAgdGhpcy5zZWFyY2hQb3BvdmVyLmNsb3NlKCk7XG4gICAgICAgIHRoaXMub25TZWFyY2hWYWx1ZS5lbWl0KHRoaXMuX2ZpbHRlckl0ZW1zKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIGNsZWFyKCkge1xuICAgIHRoaXMuX2VkaXRvcnMuZm9yRWFjaCgoZSkgPT4ge1xuICAgICAgZS5jbGVhcigpO1xuICAgIH0pO1xuICAgIHRoaXMuX2ZpbHRlckl0ZW1zID0gW107XG4gICAgdGhpcy5fZmlsdGVySXRlbXNDbG9uZSA9IFtdO1xuICAgIHRoaXMuc2VhcmNoUG9wb3Zlci5jbG9zZSgpO1xuICAgIHRoaXMuX3NlYXJjaENvdW50ID0gbnVsbFxuICAgIHRoaXMub25TZWFyY2hWYWx1ZS5lbWl0KHRoaXMuX2ZpbHRlckl0ZW1zKTtcbiAgfVxuXG4gIHJlbmRlckNvbChlOiBudW1iZXIgfCBBWFByb3BlcnR5Q29sRGVmKSB7XG4gICAgbGV0IGNsYXNzTmFtZTogc3RyaW5nW10gPSBbXTtcbiAgICBpZiAodHlwZW9mIGUgPT0gJ251bWJlcicpIHtcbiAgICAgIGNsYXNzTmFtZS5wdXNoKGBjb2wtJHtlfWApO1xuICAgIH0gZWxzZSB7XG4gICAgICBmb3IgKGNvbnN0IGtleSBpbiBlKSB7XG4gICAgICAgIHN3aXRjaCAoa2V5KSB7XG4gICAgICAgICAgY2FzZSAnbGcnOlxuICAgICAgICAgICAgY2xhc3NOYW1lLnB1c2goYGNvbC1sZy0ke2Vba2V5XX1gKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgJ21kJzpcbiAgICAgICAgICAgIGNsYXNzTmFtZS5wdXNoKGBjb2wtbWQtJHtlW2tleV19YCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlICdzbSc6XG4gICAgICAgICAgICBjbGFzc05hbWUucHVzaChgY29sLXNtLSR7ZVtrZXldfWApO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAneHMnOlxuICAgICAgICAgICAgY2xhc3NOYW1lLnB1c2goYGNvbC14cy0ke2Vba2V5XX1gKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBjbGFzc05hbWUudG9TdHJpbmcoKS5yZXBsYWNlKC8sL2csICcgJyk7XG4gIH1cblxuICBfaGFuZGxlU2hvd1RpdGxlU2VsZWN0ZWQoaXRlbSkge1xuICAgIGlmIChpdGVtLnRpdGxlKSB7XG4gICAgICByZXR1cm4gaXRlbS50aXRsZSArICc6JztcbiAgICB9XG4gIH1cblxuICBfaGFuZGxlU2hvd1ZhbHVlU2VsZWN0ZWQoaXRlbSkge1xuICAgIGlmIChpdGVtLmNvbXBvbmVudC5wcm9wZXJ0eS5lZGl0b3JDbGFzcyA9PT0gJ2F4L2VkaXRvcnMvY2hlY2snKSB7XG4gICAgICByZXR1cm4gaXRlbS5jb21wb25lbnQucHJvcGVydHkuZWRpdG9yT3B0aW9ucy5sYWJlbDtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGl0ZW0udGV4dFZhbHVlO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2hhbmRsZVRleHRWYWx1ZShkYXRhSXRlbTogYW55KSB7XG4gICAgbGV0IHRleHQgPSAnJztcbiAgICBpZiAoQXJyYXkuaXNBcnJheShkYXRhSXRlbS52YWx1ZSkpIHtcbiAgICAgIGlmIChkYXRhSXRlbS52YWx1ZS5sZW5ndGgpIHtcbiAgICAgICAgZGF0YUl0ZW0udmFsdWUuZm9yRWFjaCgoZWxlbWVudCwgaW5kZXgpID0+IHtcbiAgICAgICAgICB0ZXh0ICs9XG4gICAgICAgICAgICBpbmRleCA9PT0gZGF0YUl0ZW0udmFsdWUubGVuZ3RoIC0gMVxuICAgICAgICAgICAgICA/IGVsZW1lbnRbZGF0YUl0ZW0ucHJvcGVydHkuZWRpdG9yT3B0aW9ucy50ZXh0RmllbGRdXG4gICAgICAgICAgICAgIDogZWxlbWVudFtkYXRhSXRlbS5wcm9wZXJ0eS5lZGl0b3JPcHRpb25zLnRleHRGaWVsZF0gKyAnLCc7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRleHQ7XG4gICAgfSBlbHNlIGlmIChkYXRhSXRlbS5wcm9wZXJ0eS5lZGl0b3JDbGFzcyA9PT0gJ2F4L2VkaXRvcnMvZGF0ZScpIHtcbiAgICAgIGlmIChkYXRhSXRlbS52YWx1ZSkge1xuICAgICAgICByZXR1cm4gbmV3IEFYRGF0ZVRpbWUoZGF0YUl0ZW0udmFsdWUsICdqYWxhbGknKS5mb3JtYXQoJ3l5eXkvTU0vREQnKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgX2hhbmRsZURlZnVsdFZsYXVlKGRhdGFJdGVtOiBhbnkpIHtcbiAgICBhd2FpdCB0aGlzLl9oYW5kbGVJbml0VmxhdWUoZGF0YUl0ZW0pO1xuICAgIHRoaXMuX2ZpbHRlckl0ZW1zID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLl9maWx0ZXJJdGVtc0Nsb25lLmZpbHRlcigoZWwpID0+IGVsLnZhbHVlID09PSAwIHx8IGVsLnZhbHVlICE9IG51bGwgJiYgZWwudmFsdWUgIT0gJycpKSk7XG4gICAgaWYgKHRoaXMuX2ZpbHRlckl0ZW1zLmxlbmd0aCA9PT0gdGhpcy5fZGVmdWx0VmFsdWVDb3VudC5sZW5ndGggJiYgdGhpcy5sb2FkT25Jbml0ICYmICF0aGlzLl9pc0VtaXR0ZWQpIHtcbiAgICAgIHRoaXMuX2lzRW1pdHRlZCA9IHRydWU7XG4gICAgICB0aGlzLl9zZWFyY2hDb3VudCA9IHRoaXMuX2ZpbHRlckl0ZW1zLmZpbHRlcigoeCkgPT4geC5jb21wb25lbnQucHJvcGVydHkudmlzaWJsZSAhPSBmYWxzZSkubGVuZ3RoXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy5vblNlYXJjaFZhbHVlLmVtaXQodGhpcy5fZmlsdGVySXRlbXMpO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBfaGFuZGxlSW5pdFZsYXVlKGUpIHtcbiAgICBsZXQgdmFsdWUgPSBbXTtcbiAgICBsZXQgdGV4dDogYW55ID0gW107XG4gICAgaWYgKGUucHJvcGVydHkuZWRpdG9yT3B0aW9ucz8udmFsdWVGaWVsZCAmJiBlLnZhbHVlICE9IG51bGwpIHtcbiAgICAgIGlmIChlLnByb3BlcnR5LmVkaXRvck9wdGlvbnMucmV0dXJuQWxsRGF0YSkge1xuICAgICAgICB2YWx1ZSA9IGUudmFsdWU7XG4gICAgICAgIHRleHQgPSBhd2FpdCB0aGlzLl9oYW5kbGVUZXh0VmFsdWUoZSk7XG4gICAgICB9IGVsc2UgaWYgKGUucHJvcGVydHkuZWRpdG9yT3B0aW9ucz8ubW9kZSA9PSAnbXVsdGlwbGUnKSB7XG4gICAgICAgIGUudmFsdWUuZm9yRWFjaCgoZWxlbWVudCkgPT4ge1xuICAgICAgICAgIHZhbHVlLnB1c2goZWxlbWVudFtlLnByb3BlcnR5LmVkaXRvck9wdGlvbnMudmFsdWVGaWVsZF0pO1xuICAgICAgICAgIHRleHQucHVzaChlbGVtZW50W2UucHJvcGVydHkuZWRpdG9yT3B0aW9ucy50ZXh0RmllbGRdKTtcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAoZS52YWx1ZS5sZW5ndGgpIHtcbiAgICAgICAgICB2YWx1ZSA9IGUudmFsdWVbMF1bZS5wcm9wZXJ0eS5lZGl0b3JPcHRpb25zLnZhbHVlRmllbGRdO1xuICAgICAgICAgIHRleHQgPSBlLnZhbHVlWzBdW2UucHJvcGVydHkuZWRpdG9yT3B0aW9ucy50ZXh0RmllbGRdO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhbHVlID0gZS52YWx1ZTtcbiAgICAgIHRleHQgPSBlLnZhbHVlO1xuICAgIH1cbiAgICBjb25zdCBmaW5kRWwgPSB0aGlzLl9maWx0ZXJJdGVtc0Nsb25lLmZpbmQoKGVsKSA9PiBlbC51bmlxdWVOdW1iZXIgPT0gZS5wcm9wZXJ0eS51bmlxdWVOdW1iZXIpO1xuICAgIGlmIChmaW5kRWwpIHtcbiAgICAgIGZpbmRFbC52YWx1ZSA9IHZhbHVlO1xuICAgICAgZmluZEVsLnRleHRWYWx1ZSA9IGUucHJvcGVydHkuZWRpdG9yQ2xhc3MgPT09ICdheC9lZGl0b3JzL2RhdGUnID8gbmV3IEFYRGF0ZVRpbWUodGV4dCwgJ2phbGFsaScpLmZvcm1hdCgneXl5eS9NTS9ERCcpIDogdGV4dDtcbiAgICB9IGVsc2UgaWYgKGUudmFsdWUgIT0gbnVsbCkge1xuICAgICAgdGhpcy5fZmlsdGVySXRlbXNDbG9uZS5wdXNoKHtcbiAgICAgICAgbmFtZTogZS5wcm9wZXJ0eS5uYW1lLFxuICAgICAgICB0aXRsZTogZS5wcm9wZXJ0eS50aXRsZSxcbiAgICAgICAgdW5pcXVlTnVtYmVyOiBlLnByb3BlcnR5LnVuaXF1ZU51bWJlcixcbiAgICAgICAgdmFsdWUsXG4gICAgICAgIHRleHRWYWx1ZTogZS5wcm9wZXJ0eS5lZGl0b3JDbGFzcyA9PT0gJ2F4L2VkaXRvcnMvZGF0ZScgPyBuZXcgQVhEYXRlVGltZSh0ZXh0LCAnamFsYWxpJykuZm9ybWF0KCd5eXl5L01NL0REJykgOiB0ZXh0LFxuICAgICAgICBjb21wb25lbnQ6IGUsXG4gICAgICAgIGZpbHRlck9wdGlvbnM6IHtcbiAgICAgICAgICBmaWx0ZXJzOiBlLnByb3BlcnR5Py5maWx0ZXJPcHRpb25zPy5maWx0ZXJzID8gZS5wcm9wZXJ0eS5maWx0ZXJPcHRpb25zLmZpbHRlcnMgOiBbXSxcbiAgICAgICAgICBsb2dpYzogZS5wcm9wZXJ0eT8uZmlsdGVyT3B0aW9ucz8ubG9naWMgPyBlLnByb3BlcnR5LmZpbHRlck9wdGlvbnMubG9naWMgOiAnYW5kJyxcbiAgICAgICAgICBpZ25vcmVDYXNlOiBlLnByb3BlcnR5Py5maWx0ZXJPcHRpb25zPy5pZ25vcmVDYXNlID8gZS5wcm9wZXJ0eS5maWx0ZXJPcHRpb25zLmlnbm9yZUNhc2UgOiB0cnVlLFxuICAgICAgICAgIGpvaW5UeXBlOiBlLnByb3BlcnR5Py5maWx0ZXJPcHRpb25zPy5qb2luVHlwZSA/IGUucHJvcGVydHkuZmlsdGVyT3B0aW9ucy5qb2luVHlwZSA6ICdJTk5FUicsXG4gICAgICAgICAgb3BlcmF0b3I6IGUucHJvcGVydHk/LmZpbHRlck9wdGlvbnM/Lm9wZXJhdG9yID8gZS5wcm9wZXJ0eS5maWx0ZXJPcHRpb25zLm9wZXJhdG9yIDogbnVsbCxcbiAgICAgICAgICB0cnVuY2F0ZURhdGU6IGUucHJvcGVydHk/LmZpbHRlck9wdGlvbnM/LnRydW5jYXRlRGF0ZSA/IGUucHJvcGVydHkuZmlsdGVyT3B0aW9ucy50cnVuY2F0ZURhdGUgOiB0cnVlXG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvcGVuKCkge1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5zZWFyY2hQb3BvdmVyLm9wZW4oKTtcbiAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgIH0sIDEwMCk7XG4gIH1cblxuICBwdWJsaWMgY2xvc2UoKSB7XG4gICAgdGhpcy5zZWFyY2hQb3BvdmVyLmNsb3NlKCk7XG4gIH1cbn1cbiIsIjxheC1idXR0b24gW2Jsb2NrXT1cImJsb2NrXCIgZW5kIGljb249XCJmYXIgZmEtc2xpZGVycy1oIGljb25cIiBbc2VsZWN0ZWRdPVwiX3NlYXJjaENvdW50PyB0cnVlOmZhbHNlXCJcbiAgICBbdHlwZV09XCIgX3NlYXJjaENvdW50ID8gJ3ByaW1hcnknOidwcmltYXJ5IG91dGxpbmUnXCIgW2Rpc2FibGVkXT1cImRpc2FibGVkXCIgW3NpemVdPVwic2l6ZUJ1dHRvblwiIFt0YWJJbmRleF09XCItMVwiXG4gICAgKGNsaWNrKT1cImhhbmRsZUJ1dHRvbkNsaWNrKClcIj4ge3tjYXB0aW9uPyBjYXB0aW9uOidjb21tb24uc2VhcmNoJyB8IHRyYW5zfX1cbiAgICA8c3BhbiAqbmdJZj1cIl9zZWFyY2hDb3VudFwiIGNsYXNzPVwic2VhcmNoLWNvdW50XCI+e3tfc2VhcmNoQ291bnR9fTwvc3Bhbj48L2F4LWJ1dHRvbj5cblxuXG48YXgtcG9wb3ZlciAjc2VhcmNoUG9wIFt0YXJnZXRdPVwicmVmXCIgW3J0bF09XCJydGxcIlxuICAgIFtwb3NpdGlvbl09XCJ7b3JpZ2luWDonZW5kJyxvcmlnaW5ZOidib3R0b20nLG92ZXJsYXlYOidlbmQnLG92ZXJsYXlZOid0b3AnLG9mZnNldFk6MTB9XCI+XG4gICAgPGRpdiBjbGFzcz1cInBhbmVsLWJveCBheC1kcm9wZG93bi1jb250YWluZXItYm9yZGVyZWQge3tzaXplfX1cIj5cbiAgICAgICAgPGF4LXZhbGlkYXRpb24tZm9ybSAjZm9ybT5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgX2l0ZW1zXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBwcm9wIG9mIGl0ZW0uaXRlbXNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJwcm9wLnByb3BlcnR5LnZpc2libGUgIT0gZmFsc2VcIiBjbGFzcz1cInt7cmVuZGVyQ29sKHByb3AucHJvcGVydHkuY29sKX19XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGF4LWxhYmVsPnt7cHJvcC5wcm9wZXJ0eS50aXRsZX19PC9heC1sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBheC1wcm9wZXJ0eS1lZGl0b3ItcmVuZGVyZXIgW3ZhbGlkYXRpb25Gb3JtXT1cImZvcm1cIiBbcHJvcGVydHldPVwicHJvcFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY29udGV4dF09XCJfY29udGV4dFwiIChvblZhbHVlQ2hhbmdlKT1cImhhbmRsZVZhbHVlQ2hhbmdlKCRldmVudClcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvb3Rlci1idXR0b25cIj5cbiAgICAgICAgICAgICAgICA8YXgtYnV0dG9uIChjbGljayk9XCJzZWFyY2goKVwiPnt7J2NvbW1vbi5zZWFyY2gnIHwgdHJhbnN9fTwvYXgtYnV0dG9uPlxuICAgICAgICAgICAgICAgIDxheC1idXR0b24gdHlwZT1cImJsYW5rIGRhbmdlclwiIChjbGljayk9XCJjbGVhcigpXCI+e3snY29tbW9uLnJlc2V0JyB8IHRyYW5zfX08L2F4LWJ1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2F4LXZhbGlkYXRpb24tZm9ybT5cbiAgICA8L2Rpdj5cbjwvYXgtcG9wb3Zlcj4iXX0=
|
299
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvc3JjL2xpYi9zZWFyY2gtYmFyL3NlYXJjaC1iYXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3NyYy9saWIvc2VhcmNoLWJhci9zZWFyY2gtYmFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3BELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFJLE9BQU8sS0FBSyxDQUFDLE1BQU0sUUFBUSxDQUFDO0FBRTVCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxpQ0FBaUMsRUFBRSxNQUFNLHVEQUF1RCxDQUFDO0FBRTFHLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDOzs7Ozs7Ozs7QUFpQnBGLE1BQU0sT0FBTyxvQkFBb0I7SUFDWDtJQUErQjtJQUFuRCxZQUFvQixHQUFzQixFQUFTLEdBQStCO1FBQTlELFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQVMsUUFBRyxHQUFILEdBQUcsQ0FBNEI7SUFBSSxDQUFDO0lBRS9ELGFBQWEsQ0FBcUI7SUFDVCxRQUFRLENBQStDO0lBQ2xFLElBQUksQ0FBNEI7SUFHdEUsVUFBVSxHQUFrQixJQUFJLENBQUM7SUFHakMsSUFBSSxHQUFnQyxJQUFJLENBQUM7SUFHekMsUUFBUSxHQUFZLEtBQUssQ0FBQztJQUcxQixTQUFTLEdBQVksS0FBSyxDQUFDO0lBRzNCLFlB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LENBQUM7UUFDTCxDQUFDO0lBQ0gsQ0FBQztJQUVNLElBQUk7UUFDVCxVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUMxQixJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ3pCLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDMUIsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ1YsQ0FBQztJQUVNLEtBQUs7UUFDVixJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQzdCLENBQUM7dUdBN1FVLG9CQUFvQjsyRkFBcEIsb0JBQW9CLGlnQkFLcEIseUJBQXlCLDhEQUR0QixpQ0FBaUMsZ0RDNUJqRCx5cEZBeUNhOzsyRkRqQkEsb0JBQW9CO2tCQUxoQyxTQUFTOytCQUNFLGVBQWU7K0dBT0QsYUFBYTtzQkFBcEMsU0FBUzt1QkFBQyxXQUFXO2dCQUMyQixRQUFRO3NCQUF4RCxZQUFZO3VCQUFDLGlDQUFpQztnQkFDVCxJQUFJO3NCQUF6QyxTQUFTO3VCQUFDLHlCQUF5QjtnQkFHcEMsVUFBVTtzQkFEVCxLQUFLO2dCQUlOLElBQUk7c0JBREgsS0FBSztnQkFJTixRQUFRO3NCQURQLEtBQUs7Z0JBSU4sU0FBUztzQkFEUixLQUFLO2dCQUlOLFlBQVk7c0JBRFgsS0FBSztnQkFJTixHQUFHO3NCQURGLEtBQUs7Z0JBSU4sVUFBVTtzQkFEVCxLQUFLO2dCQUlOLE9BQU87c0JBRE4sS0FBSztnQkFJTixLQUFLO3NCQURKLEtBQUs7Z0JBSUssS0FBSztzQkFEZixLQUFLO2dCQXFCRyxJQUFJO3NCQUFaLEtBQUs7Z0JBRUcsT0FBTztzQkFBZixLQUFLO2dCQUdOLGFBQWE7c0JBRFosTUFBTTtnQkFJUCxhQUFhO3NCQURaLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWENvbmZpZywgQVhEYXRlVGltZSB9IGZyb20gJ0BhY29yZXgvY29yZSc7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQsIFF1ZXJ5TGlzdCwgVmlld0NoaWxkLCBWaWV3Q2hpbGRyZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCAqIGFzIF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IEFYRWxlbWVudFNpemUgfSBmcm9tICcuLi9iYXNlL2VsZW1lbnQuY2xhc3MnO1xuaW1wb3J0IHsgQVhQb3BvdmVyQ29tcG9uZW50IH0gZnJvbSAnLi4vcG9wb3Zlci9wb3BvdmVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBWFByb3BlcnR5RWRpdG9yUmVuZGVyZXJEaXJlY3RpdmUgfSBmcm9tICcuLi9wcm9wZXJ0eS1lZGl0b3IvcHJvcGVydHktZWRpdG9yLXJlbmRlcmVyLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBBWFByb3BlcnR5Q29sRGVmLCBBWFByb3BlcnR5Q29uZmlnLCBBWFByb3BlcnlFZGl0b3JWYWx1ZUNoYW5nZUV2ZW50LCBGaWx0ZXJNb2RlbCB9IGZyb20gJy4uL3Byb3BlcnR5LWVkaXRvci9wcm9wZXJ0eS1lZGl0b3IuY2xhc3MnO1xuaW1wb3J0IHsgQVhWYWxpZGF0aW9uRm9ybUNvbXBvbmVudCB9IGZyb20gJy4uL3ZhbGlkYXRpb24vdmFsaWRhdGlvbi1mb3JtLmNvbXBvbmVudCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmlsdGVyVGV4dEl0ZW1zTW9kZWwge1xuICBuYW1lOiBzdHJpbmc7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIHZhbHVlOiBhbnk7XG4gIHRleHRWYWx1ZTogc3RyaW5nO1xuICBmaWx0ZXJPcHRpb25zPzogRmlsdGVyTW9kZWw7XG4gIGNvbXBvbmVudDogQVhQcm9wZXJ0eUNvbmZpZztcbiAgdW5pcXVlTnVtYmVyPzogbnVtYmVyO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdheC1zZWFyY2gtYmFyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NlYXJjaC1iYXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zZWFyY2gtYmFyLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQVhTZWFyY2hCYXJDb21wb25lbnQge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsIHB1YmxpYyByZWY6IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+KSB7IH1cblxuICBAVmlld0NoaWxkKCdzZWFyY2hQb3AnKSBzZWFyY2hQb3BvdmVyOiBBWFBvcG92ZXJDb21wb25lbnQ7XG4gIEBWaWV3Q2hpbGRyZW4oQVhQcm9wZXJ0eUVkaXRvclJlbmRlcmVyRGlyZWN0aXZlKSBfZWRpdG9yczogUXVlcnlMaXN0PEFYUHJvcGVydHlFZGl0b3JSZW5kZXJlckRpcmVjdGl2ZT47XG4gIEBWaWV3Q2hpbGQoQVhWYWxpZGF0aW9uRm9ybUNvbXBvbmVudCkgZm9ybTogQVhWYWxpZGF0aW9uRm9ybUNvbXBvbmVudDtcblxuICBASW5wdXQoKVxuICBzaXplQnV0dG9uOiBBWEVsZW1lbnRTaXplID0gJ21kJztcblxuICBASW5wdXQoKVxuICBzaXplOiAnc20nIHwgJ21kJyB8ICdsZycgfCAnZnVsbCcgPSAnc20nO1xuXG4gIEBJbnB1dCgpXG4gIGRpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgZml0UGFyZW50OiBib29sZWFuID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgcG9wb3ZlcldpZHRoOiBzdHJpbmcgPSAnNjV2dyc7XG5cbiAgQElucHV0KClcbiAgcnRsOiBib29sZWFuID0gQVhDb25maWcuZ2V0KCdsYXlvdXQucnRsJyk7XG5cbiAgQElucHV0KClcbiAgbG9hZE9uSW5pdDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIGNhcHRpb246IHN0cmluZ1xuXG4gIEBJbnB1dCgpXG4gIGJsb2NrOiBib29sZWFuID0gZmFsc2VcblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGl0ZW1zKHY6IEFYUHJvcGVydHlDb25maWdbXSkge1xuICAgIHRoaXMuX2RlZnVsdFZhbHVlQ291bnQgPSB2LmZpbHRlcigoeCkgPT4geC52YWx1ZSk7XG4gICAgdi5mb3JFYWNoKChlbCkgPT4ge1xuICAgICAgZWwucHJvcGVydHkudW5pcXVlTnVtYmVyID0gTWF0aC5yYW5kb20oKTtcbiAgICAgIGlmIChlbC52YWx1ZSAhPSBudWxsKSB7XG4gICAgICAgIHRoaXMuX2ZpbHRlckl0ZW1zLnB1c2goe1xuICAgICAgICAgIG5hbWU6IGVsLnByb3BlcnR5Lm5hbWUsXG4gICAgICAgICAgdGl0bGU6IGVsLnByb3BlcnR5LnRpdGxlLFxuICAgICAgICAgIHRleHRWYWx1ZTogdGhpcy5faGFuZGxlVGV4dFZhbHVlKGVsKSxcbiAgICAgICAgICB2YWx1ZTogZWwudmFsdWUgPyB0aGlzLl9oYW5kbGVEZWZ1bHRWbGF1ZShlbCkgOiBudWxsLFxuICAgICAgICAgIGNvbXBvbmVudDogZWxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgdGhpcy5faXRlbXMgPSBfLmNoYWluKHYpXG4gICAgICAuZ3JvdXBCeSgoeCkgPT4geC5wcm9wZXJ0eS5yb3cpXG4gICAgICAubWFwKCh2YWx1ZSwga2V5KSA9PiAoeyByb3c6IGtleSwgaXRlbXM6IHZhbHVlIH0pKVxuICAgICAgLnZhbHVlKCk7XG4gIH1cblxuICBASW5wdXQoKSBheElkOiBzdHJpbmc7XG4gIFxuICBASW5wdXQoKSBheENsYXNzOiBzdHJpbmc7XG5cbiAgQE91dHB1dCgpXG4gIG9uVmFsdWVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIEBPdXRwdXQoKVxuICBvblNlYXJjaFZhbHVlOiBFdmVudEVtaXR0ZXI8RmlsdGVyVGV4dEl0ZW1zTW9kZWxbXT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgX2l0ZW1zOiBhbnlbXSA9IFtdO1xuICBfZmlsdGVySXRlbXM6IEZpbHRlclRleHRJdGVtc01vZGVsW10gPSBbXTtcbiAgX2ZpbHRlckl0ZW1zQ2xvbmU6IEZpbHRlclRleHRJdGVtc01vZGVsW10gPSBbXTtcbiAgX2RlZnVsdFZhbHVlQ291bnQ6IGFueSA9IFtdO1xuICBfY29udGV4dDogYW55ID0ge307XG4gIF9pc0VtaXR0ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgX3NlYXJjaENvdW50OiBudW1iZXJcblxuICBwdWJsaWMgZGlzYWJsZUl0ZW0obmFtZTogc3RyaW5nLCBkaXNhYmxlVmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9lZGl0b3JzLmZpbmQoKHgpID0+IHgucHJvcGVydHkucHJvcGVydHkubmFtZSA9PT0gbmFtZSkuZGlzYWJlbGQoZGlzYWJsZVZhbHVlKVxuICB9XG4gIHB1YmxpYyBjbGVhckl0ZW0obmFtZTogc3RyaW5nKSB7XG4gICAgdGhpcy5fZWRpdG9ycy5maW5kKCh4KSA9PiB4LnByb3BlcnR5LnByb3BlcnR5Lm5hbWUgPT09IG5hbWUpLmNsZWFyKCk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5ydGwgPT0gbnVsbCkge1xuICAgICAgdGhpcy5ydGwgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0aGlzLnJlZi5uYXRpdmVFbGVtZW50LCBudWxsKS5nZXRQcm9wZXJ0eVZhbHVlKCdkaXJlY3Rpb24nKSA9PT0gJ3J0bCc7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHJlZnJlc2goKSB7XG4gICAgdGhpcy5sb2FkT25Jbml0ID0gdHJ1ZTtcbiAgICB0aGlzLl9kZWZ1bHRWYWx1ZUNvdW50ID0gW107XG4gICAgdGhpcy5fZmlsdGVySXRlbXMgPSBbXTtcbiAgICB0aGlzLl9maWx0ZXJJdGVtc0Nsb25lID0gW107XG4gICAgdGhpcy5pdGVtcyA9IHRoaXMuX2l0ZW1zWzBdLml0ZW1zO1xuICAgICh0aGlzLmZvcm0gYXMgYW55KS53aWRnZXRzID0gW107XG4gICAgKHRoaXMuZm9ybSBhcyBhbnkpLndpZGdldHNRdWVyeS5mb3JFYWNoKChlbCkgPT4ge1xuICAgICAgKHRoaXMuZm9ybSBhcyBhbnkpLndpZGdldHMucHVzaChlbCk7XG4gICAgfSk7XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgaGFuZGxlQnV0dG9uQ2xpY2soKSB7XG4gICAgdGhpcy5zZWFyY2hQb3BvdmVyLm9wZW4oKTtcbiAgfVxuXG4gIGFzeW5jIGhhbmRsZVZhbHVlQ2hhbmdlKGU6IEFYUHJvcGVyeUVkaXRvclZhbHVlQ2hhbmdlRXZlbnQpIHtcbiAgICBhd2FpdCB0aGlzLl9oYW5kbGVJbml0VmxhdWUoZSk7XG4gICAgdGhpcy5vblZhbHVlQ2hhbmdlLmVtaXQoZSk7XG4gIH1cblxuICBoYW5kbGVJdGVtUmVtb3ZlQ2xpY2soaXRlbTogRmlsdGVyVGV4dEl0ZW1zTW9kZWwpIHtcbiAgICB0aGlzLl9lZGl0b3JzLmZvckVhY2goKGUpID0+IHtcbiAgICAgIGlmIChlLnByb3BlcnR5LnByb3BlcnR5Lm5hbWUgPT0gaXRlbS5uYW1lKSB7XG4gICAgICAgIGUuY2xlYXIoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICB0aGlzLl9maWx0ZXJJdGVtcyA9IHRoaXMuX2ZpbHRlckl0ZW1zLmZpbHRlcigoZWwpID0+IGVsLm5hbWUgIT0gaXRlbS5uYW1lKTtcbiAgfVxuXG4gIHB1YmxpYyBzZWFyY2goKSB7XG4gICAgdGhpcy5mb3JtLnZhbGlkYXRlKCkudGhlbigoYykgPT4ge1xuICAgICAgaWYgKGMucmVzdWx0KSB7XG4gICAgICAgIHRoaXMuX2ZpbHRlckl0ZW1zID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLl9maWx0ZXJJdGVtc0Nsb25lLmZpbHRlcigoZWwpID0+IGVsLnZhbHVlID09PSAwIHx8IGVsLnZhbHVlICE9IG51bGwgJiYgZWwudmFsdWUgIT0gJycpKSk7XG4gICAgICAgIHRoaXMuX3NlYXJjaENvdW50ID0gdGhpcy5fZmlsdGVySXRlbXMuZmlsdGVyKCh4KSA9PiB4LmNvbXBvbmVudC5wcm9wZXJ0eS52aXNpYmxlICE9IGZhbHNlKS5sZW5ndGhcbiAgICAgICAgdGhpcy5zZWFyY2hQb3BvdmVyLmNsb3NlKCk7XG4gICAgICAgIHRoaXMub25TZWFyY2hWYWx1ZS5lbWl0KHRoaXMuX2ZpbHRlckl0ZW1zKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIGNsZWFyKCkge1xuICAgIHRoaXMuX2VkaXRvcnMuZm9yRWFjaCgoZSkgPT4ge1xuICAgICAgZS5jbGVhcigpO1xuICAgIH0pO1xuICAgIHRoaXMuX2ZpbHRlckl0ZW1zID0gW107XG4gICAgdGhpcy5fZmlsdGVySXRlbXNDbG9uZSA9IFtdO1xuICAgIHRoaXMuc2VhcmNoUG9wb3Zlci5jbG9zZSgpO1xuICAgIHRoaXMuX3NlYXJjaENvdW50ID0gbnVsbFxuICAgIHRoaXMub25TZWFyY2hWYWx1ZS5lbWl0KHRoaXMuX2ZpbHRlckl0ZW1zKTtcbiAgfVxuXG4gIHJlbmRlckNvbChlOiBudW1iZXIgfCBBWFByb3BlcnR5Q29sRGVmKSB7XG4gICAgbGV0IGNsYXNzTmFtZTogc3RyaW5nW10gPSBbXTtcbiAgICBpZiAodHlwZW9mIGUgPT0gJ251bWJlcicpIHtcbiAgICAgIGNsYXNzTmFtZS5wdXNoKGBjb2wtJHtlfWApO1xuICAgIH0gZWxzZSB7XG4gICAgICBmb3IgKGNvbnN0IGtleSBpbiBlKSB7XG4gICAgICAgIHN3aXRjaCAoa2V5KSB7XG4gICAgICAgICAgY2FzZSAnbGcnOlxuICAgICAgICAgICAgY2xhc3NOYW1lLnB1c2goYGNvbC1sZy0ke2Vba2V5XX1gKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgJ21kJzpcbiAgICAgICAgICAgIGNsYXNzTmFtZS5wdXNoKGBjb2wtbWQtJHtlW2tleV19YCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlICdzbSc6XG4gICAgICAgICAgICBjbGFzc05hbWUucHVzaChgY29sLXNtLSR7ZVtrZXldfWApO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAneHMnOlxuICAgICAgICAgICAgY2xhc3NOYW1lLnB1c2goYGNvbC14cy0ke2Vba2V5XX1gKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBjbGFzc05hbWUudG9TdHJpbmcoKS5yZXBsYWNlKC8sL2csICcgJyk7XG4gIH1cblxuICBfaGFuZGxlU2hvd1RpdGxlU2VsZWN0ZWQoaXRlbSkge1xuICAgIGlmIChpdGVtLnRpdGxlKSB7XG4gICAgICByZXR1cm4gaXRlbS50aXRsZSArICc6JztcbiAgICB9XG4gIH1cblxuICBfaGFuZGxlU2hvd1ZhbHVlU2VsZWN0ZWQoaXRlbSkge1xuICAgIGlmIChpdGVtLmNvbXBvbmVudC5wcm9wZXJ0eS5lZGl0b3JDbGFzcyA9PT0gJ2F4L2VkaXRvcnMvY2hlY2snKSB7XG4gICAgICByZXR1cm4gaXRlbS5jb21wb25lbnQucHJvcGVydHkuZWRpdG9yT3B0aW9ucy5sYWJlbDtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGl0ZW0udGV4dFZhbHVlO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2hhbmRsZVRleHRWYWx1ZShkYXRhSXRlbTogYW55KSB7XG4gICAgbGV0IHRleHQgPSAnJztcbiAgICBpZiAoQXJyYXkuaXNBcnJheShkYXRhSXRlbS52YWx1ZSkpIHtcbiAgICAgIGlmIChkYXRhSXRlbS52YWx1ZS5sZW5ndGgpIHtcbiAgICAgICAgZGF0YUl0ZW0udmFsdWUuZm9yRWFjaCgoZWxlbWVudCwgaW5kZXgpID0+IHtcbiAgICAgICAgICB0ZXh0ICs9XG4gICAgICAgICAgICBpbmRleCA9PT0gZGF0YUl0ZW0udmFsdWUubGVuZ3RoIC0gMVxuICAgICAgICAgICAgICA/IGVsZW1lbnRbZGF0YUl0ZW0ucHJvcGVydHkuZWRpdG9yT3B0aW9ucy50ZXh0RmllbGRdXG4gICAgICAgICAgICAgIDogZWxlbWVudFtkYXRhSXRlbS5wcm9wZXJ0eS5lZGl0b3JPcHRpb25zLnRleHRGaWVsZF0gKyAnLCc7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRleHQ7XG4gICAgfSBlbHNlIGlmIChkYXRhSXRlbS5wcm9wZXJ0eS5lZGl0b3JDbGFzcyA9PT0gJ2F4L2VkaXRvcnMvZGF0ZScpIHtcbiAgICAgIGlmIChkYXRhSXRlbS52YWx1ZSkge1xuICAgICAgICByZXR1cm4gbmV3IEFYRGF0ZVRpbWUoZGF0YUl0ZW0udmFsdWUsICdqYWxhbGknKS5mb3JtYXQoJ3l5eXkvTU0vREQnKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgX2hhbmRsZURlZnVsdFZsYXVlKGRhdGFJdGVtOiBhbnkpIHtcbiAgICBhd2FpdCB0aGlzLl9oYW5kbGVJbml0VmxhdWUoZGF0YUl0ZW0pO1xuICAgIHRoaXMuX2ZpbHRlckl0ZW1zID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLl9maWx0ZXJJdGVtc0Nsb25lLmZpbHRlcigoZWwpID0+IGVsLnZhbHVlID09PSAwIHx8IGVsLnZhbHVlICE9IG51bGwgJiYgZWwudmFsdWUgIT0gJycpKSk7XG4gICAgaWYgKHRoaXMuX2ZpbHRlckl0ZW1zLmxlbmd0aCA9PT0gdGhpcy5fZGVmdWx0VmFsdWVDb3VudC5sZW5ndGggJiYgdGhpcy5sb2FkT25Jbml0ICYmICF0aGlzLl9pc0VtaXR0ZWQpIHtcbiAgICAgIHRoaXMuX2lzRW1pdHRlZCA9IHRydWU7XG4gICAgICB0aGlzLl9zZWFyY2hDb3VudCA9IHRoaXMuX2ZpbHRlckl0ZW1zLmZpbHRlcigoeCkgPT4geC5jb21wb25lbnQucHJvcGVydHkudmlzaWJsZSAhPSBmYWxzZSkubGVuZ3RoXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy5vblNlYXJjaFZhbHVlLmVtaXQodGhpcy5fZmlsdGVySXRlbXMpO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBfaGFuZGxlSW5pdFZsYXVlKGUpIHtcbiAgICBsZXQgdmFsdWUgPSBbXTtcbiAgICBsZXQgdGV4dDogYW55ID0gW107XG4gICAgaWYgKGUucHJvcGVydHkuZWRpdG9yT3B0aW9ucz8udmFsdWVGaWVsZCAmJiBlLnZhbHVlICE9IG51bGwpIHtcbiAgICAgIGlmIChlLnByb3BlcnR5LmVkaXRvck9wdGlvbnMucmV0dXJuQWxsRGF0YSkge1xuICAgICAgICB2YWx1ZSA9IGUudmFsdWU7XG4gICAgICAgIHRleHQgPSBhd2FpdCB0aGlzLl9oYW5kbGVUZXh0VmFsdWUoZSk7XG4gICAgICB9IGVsc2UgaWYgKGUucHJvcGVydHkuZWRpdG9yT3B0aW9ucz8ubW9kZSA9PSAnbXVsdGlwbGUnKSB7XG4gICAgICAgIGUudmFsdWUuZm9yRWFjaCgoZWxlbWVudCkgPT4ge1xuICAgICAgICAgIHZhbHVlLnB1c2goZWxlbWVudFtlLnByb3BlcnR5LmVkaXRvck9wdGlvbnMudmFsdWVGaWVsZF0pO1xuICAgICAgICAgIHRleHQucHVzaChlbGVtZW50W2UucHJvcGVydHkuZWRpdG9yT3B0aW9ucy50ZXh0RmllbGRdKTtcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAoZS52YWx1ZS5sZW5ndGgpIHtcbiAgICAgICAgICB2YWx1ZSA9IGUudmFsdWVbMF1bZS5wcm9wZXJ0eS5lZGl0b3JPcHRpb25zLnZhbHVlRmllbGRdO1xuICAgICAgICAgIHRleHQgPSBlLnZhbHVlWzBdW2UucHJvcGVydHkuZWRpdG9yT3B0aW9ucy50ZXh0RmllbGRdO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhbHVlID0gZS52YWx1ZTtcbiAgICAgIHRleHQgPSBlLnZhbHVlO1xuICAgIH1cbiAgICBjb25zdCBmaW5kRWwgPSB0aGlzLl9maWx0ZXJJdGVtc0Nsb25lLmZpbmQoKGVsKSA9PiBlbC51bmlxdWVOdW1iZXIgPT0gZS5wcm9wZXJ0eS51bmlxdWVOdW1iZXIpO1xuICAgIGlmIChmaW5kRWwpIHtcbiAgICAgIGZpbmRFbC52YWx1ZSA9IHZhbHVlO1xuICAgICAgZmluZEVsLnRleHRWYWx1ZSA9IGUucHJvcGVydHkuZWRpdG9yQ2xhc3MgPT09ICdheC9lZGl0b3JzL2RhdGUnID8gbmV3IEFYRGF0ZVRpbWUodGV4dCwgJ2phbGFsaScpLmZvcm1hdCgneXl5eS9NTS9ERCcpIDogdGV4dDtcbiAgICB9IGVsc2UgaWYgKGUudmFsdWUgIT0gbnVsbCkge1xuICAgICAgdGhpcy5fZmlsdGVySXRlbXNDbG9uZS5wdXNoKHtcbiAgICAgICAgbmFtZTogZS5wcm9wZXJ0eS5uYW1lLFxuICAgICAgICB0aXRsZTogZS5wcm9wZXJ0eS50aXRsZSxcbiAgICAgICAgdW5pcXVlTnVtYmVyOiBlLnByb3BlcnR5LnVuaXF1ZU51bWJlcixcbiAgICAgICAgdmFsdWUsXG4gICAgICAgIHRleHRWYWx1ZTogZS5wcm9wZXJ0eS5lZGl0b3JDbGFzcyA9PT0gJ2F4L2VkaXRvcnMvZGF0ZScgPyBuZXcgQVhEYXRlVGltZSh0ZXh0LCAnamFsYWxpJykuZm9ybWF0KCd5eXl5L01NL0REJykgOiB0ZXh0LFxuICAgICAgICBjb21wb25lbnQ6IGUsXG4gICAgICAgIGZpbHRlck9wdGlvbnM6IHtcbiAgICAgICAgICBmaWx0ZXJzOiBlLnByb3BlcnR5Py5maWx0ZXJPcHRpb25zPy5maWx0ZXJzID8gZS5wcm9wZXJ0eS5maWx0ZXJPcHRpb25zLmZpbHRlcnMgOiBbXSxcbiAgICAgICAgICBsb2dpYzogZS5wcm9wZXJ0eT8uZmlsdGVyT3B0aW9ucz8ubG9naWMgPyBlLnByb3BlcnR5LmZpbHRlck9wdGlvbnMubG9naWMgOiAnYW5kJyxcbiAgICAgICAgICBpZ25vcmVDYXNlOiBlLnByb3BlcnR5Py5maWx0ZXJPcHRpb25zPy5pZ25vcmVDYXNlID8gZS5wcm9wZXJ0eS5maWx0ZXJPcHRpb25zLmlnbm9yZUNhc2UgOiB0cnVlLFxuICAgICAgICAgIGpvaW5UeXBlOiBlLnByb3BlcnR5Py5maWx0ZXJPcHRpb25zPy5qb2luVHlwZSA/IGUucHJvcGVydHkuZmlsdGVyT3B0aW9ucy5qb2luVHlwZSA6ICdJTk5FUicsXG4gICAgICAgICAgb3BlcmF0b3I6IGUucHJvcGVydHk/LmZpbHRlck9wdGlvbnM/Lm9wZXJhdG9yID8gZS5wcm9wZXJ0eS5maWx0ZXJPcHRpb25zLm9wZXJhdG9yIDogbnVsbCxcbiAgICAgICAgICB0cnVuY2F0ZURhdGU6IGUucHJvcGVydHk/LmZpbHRlck9wdGlvbnM/LnRydW5jYXRlRGF0ZSA/IGUucHJvcGVydHkuZmlsdGVyT3B0aW9ucy50cnVuY2F0ZURhdGUgOiB0cnVlXG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvcGVuKCkge1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5zZWFyY2hQb3BvdmVyLm9wZW4oKTtcbiAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgIH0sIDEwMCk7XG4gIH1cblxuICBwdWJsaWMgY2xvc2UoKSB7XG4gICAgdGhpcy5zZWFyY2hQb3BvdmVyLmNsb3NlKCk7XG4gIH1cbn1cbiIsIjxheC1idXR0b24gW2Jsb2NrXT1cImJsb2NrXCIgZW5kIGljb249XCJmYXIgZmEtc2xpZGVycy1oIGljb25cIiBbc2VsZWN0ZWRdPVwiX3NlYXJjaENvdW50ID8gdHJ1ZSA6IGZhbHNlXCJcbiAgICBbdHlwZV09XCJfc2VhcmNoQ291bnQgPyAncHJpbWFyeScgOiAncHJpbWFyeSBvdXRsaW5lJ1wiIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiIFtzaXplXT1cInNpemVCdXR0b25cIiBbdGFiSW5kZXhdPVwiLTFcIlxuICAgIChjbGljayk9XCJoYW5kbGVCdXR0b25DbGljaygpXCIgW2F0dHIuaWRdPVwiYXhJZCArICctc2VhcmNoLWJ1dHRvbidcIiBbbmdDbGFzc109XCJheENsYXNzXCI+XG4gICAge3sgY2FwdGlvbiA/IGNhcHRpb24gOiAnY29tbW9uLnNlYXJjaCcgfCB0cmFucyB9fVxuICAgIDxzcGFuICpuZ0lmPVwiX3NlYXJjaENvdW50XCIgY2xhc3M9XCJzZWFyY2gtY291bnRcIiBbYXR0ci5pZF09XCJheElkICsgJy1zZWFyY2gtY291bnQnXCI+XG4gICAgICAgIHt7IF9zZWFyY2hDb3VudCB9fVxuICAgIDwvc3Bhbj5cbjwvYXgtYnV0dG9uPlxuXG48YXgtcG9wb3ZlciAjc2VhcmNoUG9wIFt0YXJnZXRdPVwicmVmXCIgW3J0bF09XCJydGxcIlxuICAgIFtwb3NpdGlvbl09XCJ7IG9yaWdpblg6ICdlbmQnLCBvcmlnaW5ZOiAnYm90dG9tJywgb3ZlcmxheVg6ICdlbmQnLCBvdmVybGF5WTogJ3RvcCcsIG9mZnNldFk6IDEwIH1cIlxuICAgIFthdHRyLmlkXT1cImF4SWQgKyAnLXBvcG92ZXInXCIgW25nQ2xhc3NdPVwiYXhDbGFzc1wiPlxuICAgIDxkaXYgY2xhc3M9XCJwYW5lbC1ib3ggYXgtZHJvcGRvd24tY29udGFpbmVyLWJvcmRlcmVkIHt7IHNpemUgfX1cIiBbYXR0ci5pZF09XCJheElkICsgJy1wYW5lbC1ib3gnXCI+XG4gICAgICAgIDxheC12YWxpZGF0aW9uLWZvcm0gI2Zvcm0gW2F0dHIuaWRdPVwiYXhJZCArICctdmFsaWRhdGlvbi1mb3JtJ1wiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBfaXRlbXNcIiBbYXR0ci5pZF09XCJheElkICsgJy1pdGVtLScgKyBpdGVtLnByb3BlcnR5LmlkXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiIFthdHRyLmlkXT1cImF4SWQgKyAnLXJvdy0nICsgaXRlbS5wcm9wZXJ0eS5pZFwiPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBwcm9wIG9mIGl0ZW0uaXRlbXNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJwcm9wLnByb3BlcnR5LnZpc2libGUgIT0gZmFsc2VcIiBjbGFzcz1cInt7IHJlbmRlckNvbChwcm9wLnByb3BlcnR5LmNvbCkgfX1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmlkXT1cImF4SWQgKyAnLWNvbC0nICsgcHJvcC5wcm9wZXJ0eS5pZFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgW2F0dHIuaWRdPVwiYXhJZCArICctbGFiZWwtY29udGFpbmVyLScgKyBwcm9wLnByb3BlcnR5LmlkXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxheC1sYWJlbCBbYXR0ci5pZF09XCJheElkICsgJy1sYWJlbC0nICsgcHJvcC5wcm9wZXJ0eS5pZFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgcHJvcC5wcm9wZXJ0eS50aXRsZSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2F4LWxhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyIGF4LXByb3BlcnR5LWVkaXRvci1yZW5kZXJlciBbdmFsaWRhdGlvbkZvcm1dPVwiZm9ybVwiIFtwcm9wZXJ0eV09XCJwcm9wXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjb250ZXh0XT1cIl9jb250ZXh0XCIgKG9uVmFsdWVDaGFuZ2UpPVwiaGFuZGxlVmFsdWVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5pZF09XCJheElkICsgJy1lZGl0b3ItJyArIHByb3AucHJvcGVydHkuaWRcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvb3Rlci1idXR0b25cIiBbYXR0ci5pZF09XCJheElkICsgJy1mb290ZXItYnV0dG9uJ1wiPlxuICAgICAgICAgICAgICAgIDxheC1idXR0b24gKGNsaWNrKT1cInNlYXJjaCgpXCIgW2F0dHIuaWRdPVwiYXhJZCArICctc2VhcmNoLWZvb3Rlci1idXR0b24nXCI+XG4gICAgICAgICAgICAgICAgICAgIHt7ICdjb21tb24uc2VhcmNoJyB8IHRyYW5zIH19XG4gICAgICAgICAgICAgICAgPC9heC1idXR0b24+XG4gICAgICAgICAgICAgICAgPGF4LWJ1dHRvbiB0eXBlPVwiYmxhbmsgZGFuZ2VyXCIgKGNsaWNrKT1cImNsZWFyKClcIiBbYXR0ci5pZF09XCJheElkICsgJy1yZXNldC1mb290ZXItYnV0dG9uJ1wiPlxuICAgICAgICAgICAgICAgICAgICB7eyAnY29tbW9uLnJlc2V0JyB8IHRyYW5zIH19XG4gICAgICAgICAgICAgICAgPC9heC1idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9heC12YWxpZGF0aW9uLWZvcm0+XG4gICAgPC9kaXY+XG48L2F4LXBvcG92ZXI+Il19
|
@@ -117,11 +117,11 @@ export class AXSearchBoxComponent extends AXBaseTextComponent {
|
|
117
117
|
// this.searchChangeObserver.next(this.text);
|
118
118
|
}
|
119
119
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: AXSearchBoxComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
120
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.7", type: AXSearchBoxComponent, selector: "ax-search-box", inputs: { placeholder: "placeholder", onDemandTranslate: "onDemandTranslate", text: "text", delay: "delay" }, outputs: { textChanged: "textChanged", onButtonClick: "onButtonClick" }, host: { styleAttribute: "width: 100%" }, usesInheritance: true, ngImport: i0, template: "<div
|
120
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.7", type: AXSearchBoxComponent, selector: "ax-search-box", inputs: { placeholder: "placeholder", onDemandTranslate: "onDemandTranslate", text: "text", delay: "delay" }, outputs: { textChanged: "textChanged", onButtonClick: "onButtonClick" }, host: { styleAttribute: "width: 100%" }, usesInheritance: true, ngImport: i0, template: "<div\n class=\"ax form-item\"\n [class.disabled]=\"disabled\"\n [attr.id]=\"axId ? axId : uid\"\n [ngClass]=\"axClass\"\n>\n <div class=\"ax items-wrapper\" [attr.id]=\"axId + '-wrapper-start'\">\n <ng-content select=\"[start]\"></ng-content>\n <i\n class=\"form-item-icon {{icon}}\"\n *ngIf=\"icon\"\n [attr.id]=\"axId + '-icon'\"\n ></i>\n </div>\n\n <div class=\"content\" #content [attr.id]=\"axId + '-content'\">\n <div\n class=\"ax input form-control {{size}}\"\n [class.disabled]=\"disabled\"\n [class.readonly]=\"readonly\"\n [class.icon]=\"icon\"\n [attr.id]=\"axId + '-input-container'\"\n >\n <input\n #input\n type=\"text\"\n class=\"ax {{size}}\"\n [(ngModel)]=\"value\"\n (input)=\"onSearchChanged($event.target.value)\"\n [placeholder]=\"placeholder\"\n [readonly]=\"readonly\"\n [disabled]=\"disabled\"\n [ngClass]=\"setTextAlign()\"\n [class.clear]=\"value && allowClear\"\n (focus)=\"handleInputFocus($event)\"\n (blur)=\"handleInputBlur($event)\"\n (keyup)=\"handleKeyEvent($event)\"\n (keydown)=\"handleKeyEvent($event)\"\n [attr.id]=\"axId + '-input'\"\n />\n </div>\n </div>\n\n <div class=\"ax items-wrapper\" [attr.id]=\"axId + '-wrapper-end'\">\n <ax-button\n [size]=\"size\"\n *ngIf=\"value && allowClear\"\n icon=\"far fa-times\"\n type=\"danger blank\"\n (click)=\"clear()\"\n [tabIndex]=\"-1\"\n [attr.id]=\"axId + '-clear-button'\"\n >\n </ax-button>\n <ax-button\n [size]=\"size\"\n type=\"light blank\"\n icon=\"far fa-search\"\n end\n (click)=\"click($event)\"\n [tabIndex]=\"-1\"\n [attr.id]=\"axId + '-search-button'\"\n >\n </ax-button>\n <ng-content select=\"[end]\"></ng-content>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.AXButtonComponent, selector: "ax-button", inputs: ["type", "icon", "submitBehavior", "cancelBehavior", "block", "loading", "selected"] }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { 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"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
121
121
|
}
|
122
122
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: AXSearchBoxComponent, decorators: [{
|
123
123
|
type: Component,
|
124
|
-
args: [{ selector: 'ax-search-box', host: { style: 'width: 100%' }, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div
|
124
|
+
args: [{ selector: 'ax-search-box', host: { style: 'width: 100%' }, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n class=\"ax form-item\"\n [class.disabled]=\"disabled\"\n [attr.id]=\"axId ? axId : uid\"\n [ngClass]=\"axClass\"\n>\n <div class=\"ax items-wrapper\" [attr.id]=\"axId + '-wrapper-start'\">\n <ng-content select=\"[start]\"></ng-content>\n <i\n class=\"form-item-icon {{icon}}\"\n *ngIf=\"icon\"\n [attr.id]=\"axId + '-icon'\"\n ></i>\n </div>\n\n <div class=\"content\" #content [attr.id]=\"axId + '-content'\">\n <div\n class=\"ax input form-control {{size}}\"\n [class.disabled]=\"disabled\"\n [class.readonly]=\"readonly\"\n [class.icon]=\"icon\"\n [attr.id]=\"axId + '-input-container'\"\n >\n <input\n #input\n type=\"text\"\n class=\"ax {{size}}\"\n [(ngModel)]=\"value\"\n (input)=\"onSearchChanged($event.target.value)\"\n [placeholder]=\"placeholder\"\n [readonly]=\"readonly\"\n [disabled]=\"disabled\"\n [ngClass]=\"setTextAlign()\"\n [class.clear]=\"value && allowClear\"\n (focus)=\"handleInputFocus($event)\"\n (blur)=\"handleInputBlur($event)\"\n (keyup)=\"handleKeyEvent($event)\"\n (keydown)=\"handleKeyEvent($event)\"\n [attr.id]=\"axId + '-input'\"\n />\n </div>\n </div>\n\n <div class=\"ax items-wrapper\" [attr.id]=\"axId + '-wrapper-end'\">\n <ax-button\n [size]=\"size\"\n *ngIf=\"value && allowClear\"\n icon=\"far fa-times\"\n type=\"danger blank\"\n (click)=\"clear()\"\n [tabIndex]=\"-1\"\n [attr.id]=\"axId + '-clear-button'\"\n >\n </ax-button>\n <ax-button\n [size]=\"size\"\n type=\"light blank\"\n icon=\"far fa-search\"\n end\n (click)=\"click($event)\"\n [tabIndex]=\"-1\"\n [attr.id]=\"axId + '-search-button'\"\n >\n </ax-button>\n <ng-content select=\"[end]\"></ng-content>\n </div>\n</div>\n" }]
|
125
125
|
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }], propDecorators: { textChanged: [{
|
126
126
|
type: Output
|
127
127
|
}], onButtonClick: [{
|
@@ -135,4 +135,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImpor
|
|
135
135
|
}], delay: [{
|
136
136
|
type: Input
|
137
137
|
}] } });
|
138
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoYm94LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9zcmMvbGliL3NlYXJjaGJveC9zZWFyY2hib3guY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3NyYy9saWIvc2VhcmNoYm94L3NlYXJjaGJveC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUVULEtBQUssRUFDTCxNQUFNLEVBQ04sWUFBWSxFQUNaLGlCQUFpQixFQUNqQixVQUFVLEVBQ1YsdUJBQXVCLEdBRXhCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDbEMsT0FBTyxFQUFFLFlBQVksRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRTVELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxjQUFjLENBQUM7Ozs7O0FBUTVDLE1BQU0sT0FBTyxvQkFBcUIsU0FBUSxtQkFBbUI7SUFnQnJDO0lBZGYsV0FBVyxHQUFvQyxJQUFJLFlBQVksRUFFbkUsQ0FBQztJQUVKLGFBQWEsR0FBb0MsSUFBSSxZQUFZLEVBRTlELENBQUM7SUFHSixXQUFXLEdBQVcsWUFBWSxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUd4RCxpQkFBaUIsR0FBWSxLQUFLLENBQUM7SUFFbkMsWUFBc0IsR0FBc0IsRUFBRSxHQUFlO1FBQzNELEtBQUssQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFESSxRQUFHLEdBQUgsR0FBRyxDQUFtQjtJQUU1QyxDQUFDO0lBRU8sS0FBSyxDQUFTO0lBQ3RCLElBQ1csSUFBSTtRQUNiLE9BQU8sSUFBSSxDQUFDLEtBQUss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T3V0cHV0LFxuICBFdmVudEVtaXR0ZXIsXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBFbGVtZW50UmVmLFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgZGlzdGluY3RVbnRpbENoYW5nZWQgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBBWEJhc2VUZXh0Q29tcG9uZW50IH0gZnJvbSAnLi4vYmFzZS9lbGVtZW50LmNsYXNzJztcbmltcG9ydCB7IEFYQmFzZUV2ZW50LCBBWFZhbHVlRXZlbnQgfSBmcm9tICcuLi9iYXNlL2V2ZW50cy5jbGFzcyc7XG5pbXBvcnQgeyBBWFRyYW5zbGF0b3IgfSBmcm9tICdAYWNvcmV4L2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdheC1zZWFyY2gtYm94JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NlYXJjaGJveC5jb21wb25lbnQuaHRtbCcsXG4gIGhvc3Q6IHsgc3R5bGU6ICd3aWR0aDogMTAwJScgfSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIEFYU2VhcmNoQm94Q29tcG9uZW50IGV4dGVuZHMgQVhCYXNlVGV4dENvbXBvbmVudCB7XG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgdGV4dENoYW5nZWQ6IEV2ZW50RW1pdHRlcjxBWFZhbHVlRXZlbnQ8YW55Pj4gPSBuZXcgRXZlbnRFbWl0dGVyPFxuICAgIEFYVmFsdWVFdmVudDxhbnk+XG4gID4oKTtcbiAgQE91dHB1dCgpXG4gIG9uQnV0dG9uQ2xpY2s6IEV2ZW50RW1pdHRlcjxBWFZhbHVlRXZlbnQ8YW55Pj4gPSBuZXcgRXZlbnRFbWl0dGVyPFxuICAgIEFYVmFsdWVFdmVudDxhbnk+XG4gID4oKTtcblxuICBASW5wdXQoKVxuICBwbGFjZWhvbGRlcjogc3RyaW5nID0gQVhUcmFuc2xhdG9yLmdldCgnY29tbW9uLnNlYXJjaCcpO1xuXG4gIEBJbnB1dCgpXG4gIG9uRGVtYW5kVHJhbnNsYXRlOiBib29sZWFuID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsIHJlZjogRWxlbWVudFJlZikge1xuICAgIHN1cGVyKGNkciwgcmVmKTtcbiAgfVxuXG4gIHByaXZhdGUgX3RleHQ6IHN0cmluZztcbiAgQElucHV0KClcbiAgcHVibGljIGdldCB0ZXh0KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX3RleHQ7XG4gIH1cbiAgcHVibGljIHNldCB0ZXh0KHY6IHN0cmluZykge1xuICAgIGlmICh2ICE9PSB0aGlzLl90ZXh0KSB7XG4gICAgICBjb25zdCBvbGQgPSB0aGlzLl90ZXh0O1xuICAgICAgdGhpcy5fdGV4dCA9IHY7XG4gICAgICB0aGlzLnRleHRDaGFuZ2VkLmVtaXQoe1xuICAgICAgICBjb21wb25lbnQ6IHRoaXMsXG4gICAgICAgIHZhbHVlOiB2LFxuICAgICAgICBvbGRWYWx1ZTogb2xkLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy52YWx1ZSA9ICcnO1xuICAgIHRoaXMudGV4dCA9ICcnO1xuICB9XG5cbiAgb25TZWFyY2hDaGFuZ2VkKHRleHQ6IHN0cmluZykge1xuICAgIGlmICh0aGlzLm9uRGVtYW5kVHJhbnNsYXRlKSB7XG4gICAgICBjb25zdCBsYXRpblBhdHRlcm4gPSAvW0EtWmEtejsnXFwvXFxcXFtcXF0sXS87XG4gICAgICBjb25zdCBhc2NpaVRvUGVyc2lhbk1hcCA9IHtcbiAgICAgICAgMTEzOiAn2LYnLFxuICAgICAgICAxMTk6ICfYtScsXG4gICAgICAgIDEwMTogJ9irJyxcbiAgICAgICAgMTE0OiAn2YInLFxuICAgICAgICAxMTY6ICfZgScsXG4gICAgICAgIDEyMTogJ9i6JyxcbiAgICAgICAgMTE3OiAn2LknLFxuICAgICAgICAxMDU6ICfZhycsXG4gICAgICAgIDExMTogJ9iuJyxcbiAgICAgICAgMTEyOiAn2K0nLFxuICAgICAgICA5NzogJ9i0JyxcbiAgICAgICAgMTE1OiAn2LMnLFxuICAgICAgICAxMDA6ICfbjCcsXG4gICAgICAgIDEwMjogJ9ioJyxcbiAgICAgICAgMTAzOiAn2YQnLFxuICAgICAgICAxMDQ6ICfYpycsXG4gICAgICAgIDEwNjogJ9iqJyxcbiAgICAgICAgMTA3OiAn2YYnLFxuICAgICAgICAxMDg6ICfZhScsXG4gICAgICAgIDU5OiAn2qknLFxuICAgICAgICAxMjI6ICfYuCcsXG4gICAgICAgIDEyMDogJ9i3JyxcbiAgICAgICAgOTk6ICfYsicsXG4gICAgICAgIDExODogJ9ixJyxcbiAgICAgICAgOTg6ICfYsCcsXG4gICAgICAgIDExMDogJ9ivJyxcbiAgICAgICAgNDQ6ICfZiCcsXG4gICAgICAgIDM5OiAn2q8nLFxuICAgICAgICA2NzogJ9qYJyxcbiAgICAgICAgOTM6ICfahicsXG4gICAgICAgIDkxOiAn2KwnLFxuICAgICAgICA5MjogJ9m+JyxcbiAgICAgICAgMTA5OiAn2KYnLFxuICAgICAgfTtcblxuICAgICAgaWYgKGxhdGluUGF0dGVybi50ZXN0KHRleHQpKSB7XG4gICAgICAgIHRleHQgPSB0ZXh0XG4gICAgICAgICAgLnNwbGl0KCcnKVxuICAgICAgICAgIC5tYXAoKGNoYXIpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGFzY2lpVmFsdWUgPSBjaGFyLmNoYXJDb2RlQXQoMCk7XG4gICAgICAgICAgICBpZiAoYXNjaWlUb1BlcnNpYW5NYXBbYXNjaWlWYWx1ZV0pIHtcbiAgICAgICAgICAgICAgcmV0dXJuIGFzY2lpVG9QZXJzaWFuTWFwW2FzY2lpVmFsdWVdO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgcmV0dXJuIGNoYXI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSlcbiAgICAgICAgICAuam9pbignJyk7XG4gICAgICB9XG4gICAgfVxuICAgIGlmICghdGhpcy5zZWFyY2hDaGFuZ2VPYnNlcnZlcikge1xuICAgICAgT2JzZXJ2YWJsZS5jcmVhdGUoKG9ic2VydmVyKSA9PiB7XG4gICAgICAgIHRoaXMuc2VhcmNoQ2hhbmdlT2JzZXJ2ZXIgPSBvYnNlcnZlcjtcbiAgICAgIH0pXG4gICAgICAgIC5waXBlKGRlYm91bmNlVGltZSh0aGlzLmRlbGF5KSlcbiAgICAgICAgLnBpcGUoZGlzdGluY3RVbnRpbENoYW5nZWQoKSlcbiAgICAgICAgLnN1YnNjcmliZSgoYykgPT4ge1xuICAgICAgICAgIHRoaXMudGV4dCA9IGM7XG4gICAgICAgICAgdGhpcy52YWx1ZSA9IGM7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHRoaXMuc2VhcmNoQ2hhbmdlT2JzZXJ2ZXIubmV4dCh0ZXh0KTtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIGRlbGF5OiBudW1iZXIgPSA1MDA7XG5cbiAgcHJpdmF0ZSBzZWFyY2hDaGFuZ2VPYnNlcnZlcjogYW55O1xuXG4gIGhhbmRsZUtleUV2ZW50KGU6IEtleWJvYXJkRXZlbnQpIHtcbiAgICAvLyAgdGhpcy5zZWFyY2hDaGFuZ2VPYnNlcnZlci5uZXh0KHRoaXMudGV4dCk7XG4gICAgdGhpcy5vbmtleS5lbWl0KGUpO1xuICB9XG5cbiAgY2xpY2soZTogTW91c2VFdmVudCkge1xuICAgIHRoaXMub25CdXR0b25DbGljay5lbWl0KHtcbiAgICAgIGNvbXBvbmVudDogdGhpcyxcbiAgICAgIGh0bWxFbGVtZW50OiB0aGlzLnJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgdmFsdWU6IHRoaXMudGV4dCxcbiAgICB9KTtcbiAgICAvLyB0aGlzLnNlYXJjaENoYW5nZU9ic2VydmVyLm5leHQodGhpcy50ZXh0KTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImF4IGZvcm0taXRlbVwiIFtjbGFzcy5kaXNhYmxlZF09XCJkaXNhYmxlZFwiIFthdHRyLmlkXT1cInVpZFwiPlxuICAgIDxkaXYgY2xhc3M9XCJheCBpdGVtcy13cmFwcGVyXCI+XG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltzdGFydF1cIj5cbiAgICAgICAgPC9uZy1jb250ZW50PlxuICAgICAgICA8aSBjbGFzcz1cImZvcm0taXRlbS1pY29uIHt7aWNvbn19XCIgKm5nSWY9XCJpY29uXCI+PC9pPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJjb250ZW50XCIgI2NvbnRlbnQ+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJheCBpbnB1dCBmb3JtLWNvbnRyb2wge3tzaXplfX1cIiBbY2xhc3MuZGlzYWJsZWRdPVwiZGlzYWJsZWRcIiBbY2xhc3MucmVhZG9ubHldPVwicmVhZG9ubHlcIlxuICAgICAgICAgICAgW2NsYXNzLmljb25dPVwiaWNvblwiPlxuICAgICAgICAgICAgPGlucHV0ICNpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiYXgge3tzaXplfX1cIiBbKG5nTW9kZWwpXT1cInZhbHVlXCJcbiAgICAgICAgICAgICAgICAoaW5wdXQpPVwib25TZWFyY2hDaGFuZ2VkKCRldmVudC50YXJnZXQudmFsdWUpXCIgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCIgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIiBbbmdDbGFzc109XCJzZXRUZXh0QWxpZ24oKVwiIFtjbGFzcy5jbGVhcl09XCJ2YWx1ZSAmJiBhbGxvd0NsZWFyXCJcbiAgICAgICAgICAgICAgICAoZm9jdXMpPVwiaGFuZGxlSW5wdXRGb2N1cygkZXZlbnQpXCIgKGJsdXIpPVwiaGFuZGxlSW5wdXRCbHVyKCRldmVudClcIiAoa2V5dXApPVwiaGFuZGxlS2V5RXZlbnQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgKGtleWRvd24pPVwiaGFuZGxlS2V5RXZlbnQoJGV2ZW50KVwiPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiYXggaXRlbXMtd3JhcHBlclwiPlxuICAgICAgICA8YXgtYnV0dG9uIFtzaXplXT1cInNpemVcIiAqbmdJZj1cInZhbHVlICYmIGFsbG93Q2xlYXJcIiBpY29uPVwiZmFyIGZhLXRpbWVzXCIgdHlwZT1cImRhbmdlciBibGFua1wiIChjbGljayk9XCJjbGVhcigpXCIgIFt0YWJJbmRleF09XCItMVwiPlxuICAgICAgICA8L2F4LWJ1dHRvbj5cbiAgICAgICAgPGF4LWJ1dHRvbiBbc2l6ZV09XCJzaXplXCIgdHlwZT1cImxpZ2h0IGJsYW5rXCIgaWNvbj1cImZhciBmYS1zZWFyY2hcIiBlbmQgKGNsaWNrKT1cImNsaWNrKCRldmVudClcIiAgW3RhYkluZGV4XT1cIi0xXCI+XG4gICAgICAgIDwvYXgtYnV0dG9uPlxuICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbZW5kXVwiPlxuICAgICAgICA8L25nLWNvbnRlbnQ+XG4gICAgPC9kaXY+XG48L2Rpdj4iXX0=
|
138
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoYm94LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9zcmMvbGliL3NlYXJjaGJveC9zZWFyY2hib3guY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3NyYy9saWIvc2VhcmNoYm94L3NlYXJjaGJveC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUVULEtBQUssRUFDTCxNQUFNLEVBQ04sWUFBWSxFQUNaLGlCQUFpQixFQUNqQixVQUFVLEVBQ1YsdUJBQXVCLEdBRXhCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDbEMsT0FBTyxFQUFFLFlBQVksRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRTVELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxjQUFjLENBQUM7Ozs7O0FBUTVDLE1BQU0sT0FBTyxvQkFBcUIsU0FBUSxtQkFBbUI7SUFnQnJDO0lBZGYsV0FBVyxHQUFvQyxJQUFJLFlBQVksRUFFbkUsQ0FBQztJQUVKLGFBQWEsR0FBb0MsSUFBSSxZQUFZLEVBRTlELENBQUM7SUFHSixXQUFXLEdBQVcsWUFBWSxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUd4RCxpQkFBaUIsR0FBWSxLQUFLLENBQUM7SUFFbkMsWUFBc0IsR0FBc0IsRUFBRSxHQUFlO1FBQzNELEtBQUssQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFESSxRQUFHLEdBQUgsR0FBRyxDQUFtQjtJQUU1QyxDQUFDO0lBRU8sS0FBSyxDQUFTO0lBQ3RCLElBQ1csSUFBSTtRQUNiLE9BQU8sSUFBSSxDQUFDLEtBQUss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IE91dHB1dCxcbiAgRXZlbnRFbWl0dGVyLFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgRWxlbWVudFJlZixcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQVhCYXNlVGV4dENvbXBvbmVudCB9IGZyb20gJy4uL2Jhc2UvZWxlbWVudC5jbGFzcyc7XG5pbXBvcnQgeyBBWEJhc2VFdmVudCwgQVhWYWx1ZUV2ZW50IH0gZnJvbSAnLi4vYmFzZS9ldmVudHMuY2xhc3MnO1xuaW1wb3J0IHsgQVhUcmFuc2xhdG9yIH0gZnJvbSAnQGFjb3JleC9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXgtc2VhcmNoLWJveCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9zZWFyY2hib3guY29tcG9uZW50Lmh0bWwnLFxuICBob3N0OiB7IHN0eWxlOiAnd2lkdGg6IDEwMCUnIH0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBBWFNlYXJjaEJveENvbXBvbmVudCBleHRlbmRzIEFYQmFzZVRleHRDb21wb25lbnQge1xuICBAT3V0cHV0KClcbiAgcHVibGljIHRleHRDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8QVhWYWx1ZUV2ZW50PGFueT4+ID0gbmV3IEV2ZW50RW1pdHRlcjxcbiAgICBBWFZhbHVlRXZlbnQ8YW55PlxuICA+KCk7XG4gIEBPdXRwdXQoKVxuICBvbkJ1dHRvbkNsaWNrOiBFdmVudEVtaXR0ZXI8QVhWYWx1ZUV2ZW50PGFueT4+ID0gbmV3IEV2ZW50RW1pdHRlcjxcbiAgICBBWFZhbHVlRXZlbnQ8YW55PlxuICA+KCk7XG5cbiAgQElucHV0KClcbiAgcGxhY2Vob2xkZXI6IHN0cmluZyA9IEFYVHJhbnNsYXRvci5nZXQoJ2NvbW1vbi5zZWFyY2gnKTtcblxuICBASW5wdXQoKVxuICBvbkRlbWFuZFRyYW5zbGF0ZTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBjZHI6IENoYW5nZURldGVjdG9yUmVmLCByZWY6IEVsZW1lbnRSZWYpIHtcbiAgICBzdXBlcihjZHIsIHJlZik7XG4gIH1cblxuICBwcml2YXRlIF90ZXh0OiBzdHJpbmc7XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBnZXQgdGV4dCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl90ZXh0O1xuICB9XG4gIHB1YmxpYyBzZXQgdGV4dCh2OiBzdHJpbmcpIHtcbiAgICBpZiAodiAhPT0gdGhpcy5fdGV4dCkge1xuICAgICAgY29uc3Qgb2xkID0gdGhpcy5fdGV4dDtcbiAgICAgIHRoaXMuX3RleHQgPSB2O1xuICAgICAgdGhpcy50ZXh0Q2hhbmdlZC5lbWl0KHtcbiAgICAgICAgY29tcG9uZW50OiB0aGlzLFxuICAgICAgICB2YWx1ZTogdixcbiAgICAgICAgb2xkVmFsdWU6IG9sZCxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMudmFsdWUgPSAnJztcbiAgICB0aGlzLnRleHQgPSAnJztcbiAgfVxuXG4gIG9uU2VhcmNoQ2hhbmdlZCh0ZXh0OiBzdHJpbmcpIHtcbiAgICBpZiAodGhpcy5vbkRlbWFuZFRyYW5zbGF0ZSkge1xuICAgICAgY29uc3QgbGF0aW5QYXR0ZXJuID0gL1tBLVphLXo7J1xcL1xcXFxbXFxdLF0vO1xuICAgICAgY29uc3QgYXNjaWlUb1BlcnNpYW5NYXAgPSB7XG4gICAgICAgIDExMzogJ9i2JyxcbiAgICAgICAgMTE5OiAn2LUnLFxuICAgICAgICAxMDE6ICfYqycsXG4gICAgICAgIDExNDogJ9mCJyxcbiAgICAgICAgMTE2OiAn2YEnLFxuICAgICAgICAxMjE6ICfYuicsXG4gICAgICAgIDExNzogJ9i5JyxcbiAgICAgICAgMTA1OiAn2YcnLFxuICAgICAgICAxMTE6ICfYricsXG4gICAgICAgIDExMjogJ9itJyxcbiAgICAgICAgOTc6ICfYtCcsXG4gICAgICAgIDExNTogJ9izJyxcbiAgICAgICAgMTAwOiAn24wnLFxuICAgICAgICAxMDI6ICfYqCcsXG4gICAgICAgIDEwMzogJ9mEJyxcbiAgICAgICAgMTA0OiAn2KcnLFxuICAgICAgICAxMDY6ICfYqicsXG4gICAgICAgIDEwNzogJ9mGJyxcbiAgICAgICAgMTA4OiAn2YUnLFxuICAgICAgICA1OTogJ9qpJyxcbiAgICAgICAgMTIyOiAn2LgnLFxuICAgICAgICAxMjA6ICfYtycsXG4gICAgICAgIDk5OiAn2LInLFxuICAgICAgICAxMTg6ICfYsScsXG4gICAgICAgIDk4OiAn2LAnLFxuICAgICAgICAxMTA6ICfYrycsXG4gICAgICAgIDQ0OiAn2YgnLFxuICAgICAgICAzOTogJ9qvJyxcbiAgICAgICAgNjc6ICfamCcsXG4gICAgICAgIDkzOiAn2oYnLFxuICAgICAgICA5MTogJ9isJyxcbiAgICAgICAgOTI6ICfZvicsXG4gICAgICAgIDEwOTogJ9imJyxcbiAgICAgIH07XG5cbiAgICAgIGlmIChsYXRpblBhdHRlcm4udGVzdCh0ZXh0KSkge1xuICAgICAgICB0ZXh0ID0gdGV4dFxuICAgICAgICAgIC5zcGxpdCgnJylcbiAgICAgICAgICAubWFwKChjaGFyKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBhc2NpaVZhbHVlID0gY2hhci5jaGFyQ29kZUF0KDApO1xuICAgICAgICAgICAgaWYgKGFzY2lpVG9QZXJzaWFuTWFwW2FzY2lpVmFsdWVdKSB7XG4gICAgICAgICAgICAgIHJldHVybiBhc2NpaVRvUGVyc2lhbk1hcFthc2NpaVZhbHVlXTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHJldHVybiBjaGFyO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pXG4gICAgICAgICAgLmpvaW4oJycpO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAoIXRoaXMuc2VhcmNoQ2hhbmdlT2JzZXJ2ZXIpIHtcbiAgICAgIE9ic2VydmFibGUuY3JlYXRlKChvYnNlcnZlcikgPT4ge1xuICAgICAgICB0aGlzLnNlYXJjaENoYW5nZU9ic2VydmVyID0gb2JzZXJ2ZXI7XG4gICAgICB9KVxuICAgICAgICAucGlwZShkZWJvdW5jZVRpbWUodGhpcy5kZWxheSkpXG4gICAgICAgIC5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpXG4gICAgICAgIC5zdWJzY3JpYmUoKGMpID0+IHtcbiAgICAgICAgICB0aGlzLnRleHQgPSBjO1xuICAgICAgICAgIHRoaXMudmFsdWUgPSBjO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICB0aGlzLnNlYXJjaENoYW5nZU9ic2VydmVyLm5leHQodGV4dCk7XG4gIH1cblxuICBASW5wdXQoKVxuICBkZWxheTogbnVtYmVyID0gNTAwO1xuXG4gIHByaXZhdGUgc2VhcmNoQ2hhbmdlT2JzZXJ2ZXI6IGFueTtcblxuICBoYW5kbGVLZXlFdmVudChlOiBLZXlib2FyZEV2ZW50KSB7XG4gICAgLy8gIHRoaXMuc2VhcmNoQ2hhbmdlT2JzZXJ2ZXIubmV4dCh0aGlzLnRleHQpO1xuICAgIHRoaXMub25rZXkuZW1pdChlKTtcbiAgfVxuXG4gIGNsaWNrKGU6IE1vdXNlRXZlbnQpIHtcbiAgICB0aGlzLm9uQnV0dG9uQ2xpY2suZW1pdCh7XG4gICAgICBjb21wb25lbnQ6IHRoaXMsXG4gICAgICBodG1sRWxlbWVudDogdGhpcy5yZWYubmF0aXZlRWxlbWVudCxcbiAgICAgIHZhbHVlOiB0aGlzLnRleHQsXG4gICAgfSk7XG4gICAgLy8gdGhpcy5zZWFyY2hDaGFuZ2VPYnNlcnZlci5uZXh0KHRoaXMudGV4dCk7XG4gIH1cbn1cbiIsIjxkaXZcbiAgY2xhc3M9XCJheCBmb3JtLWl0ZW1cIlxuICBbY2xhc3MuZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICBbYXR0ci5pZF09XCJheElkID8gYXhJZCA6IHVpZFwiXG4gIFtuZ0NsYXNzXT1cImF4Q2xhc3NcIlxuPlxuICA8ZGl2IGNsYXNzPVwiYXggaXRlbXMtd3JhcHBlclwiIFthdHRyLmlkXT1cImF4SWQgKyAnLXdyYXBwZXItc3RhcnQnXCI+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW3N0YXJ0XVwiPjwvbmctY29udGVudD5cbiAgICA8aVxuICAgICAgY2xhc3M9XCJmb3JtLWl0ZW0taWNvbiB7e2ljb259fVwiXG4gICAgICAqbmdJZj1cImljb25cIlxuICAgICAgW2F0dHIuaWRdPVwiYXhJZCArICctaWNvbidcIlxuICAgID48L2k+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJjb250ZW50XCIgI2NvbnRlbnQgW2F0dHIuaWRdPVwiYXhJZCArICctY29udGVudCdcIj5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cImF4IGlucHV0IGZvcm0tY29udHJvbCB7e3NpemV9fVwiXG4gICAgICBbY2xhc3MuZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgW2NsYXNzLnJlYWRvbmx5XT1cInJlYWRvbmx5XCJcbiAgICAgIFtjbGFzcy5pY29uXT1cImljb25cIlxuICAgICAgW2F0dHIuaWRdPVwiYXhJZCArICctaW5wdXQtY29udGFpbmVyJ1wiXG4gICAgPlxuICAgICAgPGlucHV0XG4gICAgICAgICNpbnB1dFxuICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgIGNsYXNzPVwiYXgge3tzaXplfX1cIlxuICAgICAgICBbKG5nTW9kZWwpXT1cInZhbHVlXCJcbiAgICAgICAgKGlucHV0KT1cIm9uU2VhcmNoQ2hhbmdlZCgkZXZlbnQudGFyZ2V0LnZhbHVlKVwiXG4gICAgICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gICAgICAgIFtyZWFkb25seV09XCJyZWFkb25seVwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgIFtuZ0NsYXNzXT1cInNldFRleHRBbGlnbigpXCJcbiAgICAgICAgW2NsYXNzLmNsZWFyXT1cInZhbHVlICYmIGFsbG93Q2xlYXJcIlxuICAgICAgICAoZm9jdXMpPVwiaGFuZGxlSW5wdXRGb2N1cygkZXZlbnQpXCJcbiAgICAgICAgKGJsdXIpPVwiaGFuZGxlSW5wdXRCbHVyKCRldmVudClcIlxuICAgICAgICAoa2V5dXApPVwiaGFuZGxlS2V5RXZlbnQoJGV2ZW50KVwiXG4gICAgICAgIChrZXlkb3duKT1cImhhbmRsZUtleUV2ZW50KCRldmVudClcIlxuICAgICAgICBbYXR0ci5pZF09XCJheElkICsgJy1pbnB1dCdcIlxuICAgICAgLz5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cImF4IGl0ZW1zLXdyYXBwZXJcIiBbYXR0ci5pZF09XCJheElkICsgJy13cmFwcGVyLWVuZCdcIj5cbiAgICA8YXgtYnV0dG9uXG4gICAgICBbc2l6ZV09XCJzaXplXCJcbiAgICAgICpuZ0lmPVwidmFsdWUgJiYgYWxsb3dDbGVhclwiXG4gICAgICBpY29uPVwiZmFyIGZhLXRpbWVzXCJcbiAgICAgIHR5cGU9XCJkYW5nZXIgYmxhbmtcIlxuICAgICAgKGNsaWNrKT1cImNsZWFyKClcIlxuICAgICAgW3RhYkluZGV4XT1cIi0xXCJcbiAgICAgIFthdHRyLmlkXT1cImF4SWQgKyAnLWNsZWFyLWJ1dHRvbidcIlxuICAgID5cbiAgICA8L2F4LWJ1dHRvbj5cbiAgICA8YXgtYnV0dG9uXG4gICAgICBbc2l6ZV09XCJzaXplXCJcbiAgICAgIHR5cGU9XCJsaWdodCBibGFua1wiXG4gICAgICBpY29uPVwiZmFyIGZhLXNlYXJjaFwiXG4gICAgICBlbmRcbiAgICAgIChjbGljayk9XCJjbGljaygkZXZlbnQpXCJcbiAgICAgIFt0YWJJbmRleF09XCItMVwiXG4gICAgICBbYXR0ci5pZF09XCJheElkICsgJy1zZWFyY2gtYnV0dG9uJ1wiXG4gICAgPlxuICAgIDwvYXgtYnV0dG9uPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltlbmRdXCI+PC9uZy1jb250ZW50PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|