@eo-sdk/client 11.14.18 → 11.14.20
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/app/eo-framework/form-elements/codesystem/codesystem.component.d.ts +9 -1
- package/app/eo-framework/form-elements/codesystem/codesystem.component.d.ts.map +1 -1
- package/app/eo-framework/form-elements/dynamic-list/dynamic-list.component.d.ts +18 -0
- package/app/eo-framework/form-elements/dynamic-list/dynamic-list.component.d.ts.map +1 -1
- package/app/eo-framework/form-elements/id-reference/reference-finder/reference-finder.component.d.ts +5 -2
- package/app/eo-framework/form-elements/id-reference/reference-finder/reference-finder.component.d.ts.map +1 -1
- package/esm2022/app/eo-client/about-state/about-state.component.mjs +3 -3
- package/esm2022/app/eo-framework/form-elements/codesystem/codesystem.component.mjs +80 -9
- package/esm2022/app/eo-framework/form-elements/dynamic-list/dynamic-list.component.mjs +193 -11
- package/esm2022/app/eo-framework/form-elements/id-reference/id-reference.component.mjs +2 -2
- package/esm2022/app/eo-framework/form-elements/id-reference/reference-finder/reference-finder.component.mjs +31 -14
- package/esm2022/app/eo-framework/grid/filters/codesystem-filter.component.mjs +3 -3
- package/esm2022/app/eo-framework/grid/filters/dynamic-list-filter.component.mjs +3 -3
- package/esm2022/app/eo-framework/object-details/object-links/object-links.component.mjs +2 -2
- package/esm2022/app/eo-framework-core/api/grid.service.mjs +2 -2
- package/fesm2022/eo-sdk-client.mjs +307 -38
- package/fesm2022/eo-sdk-client.mjs.map +1 -1
- package/package.json +2 -2
|
@@ -64,13 +64,13 @@ export class DynamicListFilterComponent extends DynamicListComponent {
|
|
|
64
64
|
this.pickerTitle = this.params.colDef.headerName;
|
|
65
65
|
}
|
|
66
66
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: DynamicListFilterComponent, deps: [{ token: i1.LocalStorageService }, { token: i2.ObjectFormHelperService }, { token: i3.DynamicListService }, { token: i1.EventService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
67
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.0", type: DynamicListFilterComponent, selector: "eo-dynamic-list-filter", viewQueries: [{ propertyName: "eoDialog", first: true, predicate: EoDialogComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<eo-dialog #listDialog [title]=\"pickerTitle\" [visible]=\"display\" [ngClass]=\"{empty: !(list?.entries?.length) && display}\"\n [styleClass]=\"'dynlist-dialog'\" (hide)=\"display = false\">\n\n <eo-tree [tree]=\"tree\" *ngIf=\"display && tree\" [isDisplayed]=\"display\" [options]=\"{multiselect: multiselect}\"\n [(ngModel)]=\"selectedNodes\" (keyup.enter)=\"showDialog($event, false)\"\n (ngModelChange)=\"onTreeSelectionChanged($event)\">\n </eo-tree>\n\n @if (!(list?.entries?.length)) {\n <div class=\"empty\">\n @if (isAutocompleteLoading) {\n <eo-loading-spinner [size]=\"'small'\"></eo-loading-spinner>\n } @else {\n <div translate>eo.form.property.dynamic.list.empty</div>\n }\n </div>\n }\n</eo-dialog>\n\n<div class=\"eo-dynamic-list\" [ngClass]=\"{full: selectedNodes && selectedNodes.length === autocompleteValues.length}\">\n\n @if (isSearch && !isTableElement) {\n <yvc-dropdown [(ngModel)]=\"searchOption\" (ngModelChange)=\"onValueChange()\" [options]=\"availableSearchOptions\"\n [disabled]=\"readonly\" [disableClearButton]=\"true\"></yvc-dropdown>\n }\n\n
|
|
67
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.0", type: DynamicListFilterComponent, selector: "eo-dynamic-list-filter", viewQueries: [{ propertyName: "eoDialog", first: true, predicate: EoDialogComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<eo-dialog #listDialog [title]=\"pickerTitle\" [visible]=\"display\" [ngClass]=\"{empty: !(list?.entries?.length) && display}\"\n [styleClass]=\"'dynlist-dialog'\" (hide)=\"display = false\">\n\n <eo-tree [tree]=\"tree\" *ngIf=\"display && tree\" [isDisplayed]=\"display\" [options]=\"{multiselect: multiselect}\"\n [(ngModel)]=\"selectedNodes\" (keyup.enter)=\"showDialog($event, false)\"\n (ngModelChange)=\"onTreeSelectionChanged($event)\">\n </eo-tree>\n\n @if (!(list?.entries?.length)) {\n <div class=\"empty\">\n @if (isAutocompleteLoading) {\n <eo-loading-spinner [size]=\"'small'\"></eo-loading-spinner>\n } @else {\n <div translate>eo.form.property.dynamic.list.empty</div>\n }\n </div>\n }\n</eo-dialog>\n\n<div class=\"eo-dynamic-list\" [ngClass]=\"{full: selectedNodes && selectedNodes.length === autocompleteValues.length}\">\n\n @if (isSearch && !isTableElement) {\n <yvc-dropdown [(ngModel)]=\"searchOption\" (ngModelChange)=\"onValueChange()\" [options]=\"availableSearchOptions\"\n [disabled]=\"readonly\" [disableClearButton]=\"true\"></yvc-dropdown>\n }\n\n <yvc-autocomplete [(ngModel)]=\"selectedNodes\" #autocomplete (suggestionSelect)=\"onAutoCompleteSelect($event)\" (suggestionUnselect)=\"onAutoCompleteUnselect($event)\" (focus)=\"onAutocompleteFocus()\" (input)=\"onAutocompleteInput($event)\" (keydown)=\"onAutocompleteKeydown($event)\" (blur)=\"onAutocompleteBlur()\" [disabled]=\"readonly\" [forceSelection]=\"true\" [autocompleteValues]=\"autocompleteRes\" (ngModelChange)=\"onAutocompleteModelChange($event)\" field=\"{{ valueField }}\" (autocompleteFnc)=\"autocompleteFn($event)\" [multiple]=\"multiselect\" [ngClass]=\"{ 'hide-inputToken': !hasAutocompleteUrl }\"\n >\n\n <ng-template let-item #chipTemplate>\n <div>\n <div class=\"value\">{{item[valueField]}}</div>\n </div>\n </ng-template>\n\n <ng-template #autocompleteOptionTemplate let-item>\n <div>\n <div class=\"value\">{{item[valueField]}}</div>\n <div class=\"description\" style=\"font-style: italic; color: var(--text-color-caption)\">{{item[descriptionField]}}</div>\n </div>\n </ng-template>\n </yvc-autocomplete>\n\n <button #button class=\"ui-button\" *ngIf=\"!readonly\" [disabled]=\"readonly\" (click)=\"showDialog($event, !!$event.detail)\"\n (keyup.arrowDown)=\"showDialog($event)\" (keyup.enter)=\"showDialog($event)\" (keyup.space)=\"showDialog($event)\">\n <eo-icon [iconSrc]=\"'assets/_default/svg/ic_arrow_down.svg'\"></eo-icon>\n </button>\n</div>\n", styles: [".rtl .form-element .form-field>div label{text-align:left!important}:host .eo-dynamic-list{display:flex;align-items:center;justify-content:space-between}:host .eo-dynamic-list .description{padding-left:0!important}:host .eo-dynamic-list yvc-autocomplete{flex:1 1 auto;border:0;outline:0}:host .eo-dynamic-list>button{flex:0 0 auto;padding:0}:host .eo-dynamic-list>button eo-icon{width:16px;height:16px;margin:auto}:host .eo-dynamic-list.full ::ng-deep yvc-autocomplete.hide-inputToken .inputToken{display:none}:host yvc-dropdown{min-width:min-content;border:0;cursor:pointer;border-radius:2px;outline:1px solid rgba(0,0,0,.2);background-color:var(--list-item-hover-background);margin-right:4px}:host yvc-dropdown:hover{background-color:var(--list-item-selected-background)}:host yvc-dropdown ::ng-deep yvc-icon{display:none}\n"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: i6.EoIconComponent, selector: "eo-icon", inputs: ["objectType", "iconId", "iconSrc", "badge", "iconTitle"] }, { kind: "component", type: i7.LoadingSpinnerComponent, selector: "eo-loading-spinner", inputs: ["size", "mode"] }, { kind: "component", type: i8.EoDialogComponent, selector: "eo-dialog", inputs: ["hasPreviewFile", "title", "subtitle", "styleClass", "dirtyCheck", "minWidth", "minHeight", "height", "width", "focusOnShow", "align", "isFormTable", "showPreview", "closeOnCancelOnly", "visible"], outputs: ["onTogglePreview", "visibleChange", "hide", "show"] }, { kind: "directive", type: i9.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i9.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i10.TreeComponent, selector: "eo-tree", inputs: ["options", "isDisplayed", "readonly", "emptyMessage", "selectionKey", "highlightedNodes", "tree", "treeUpdate"], outputs: ["expandedNodesChanged", "onSelected"] }, { kind: "component", type: i11.AutoComplete, selector: "yvc-autocomplete", inputs: ["field", "placeholder", "minLength", "multiple", "typeahead", "distinctValues", "forceSelection", "autocompleteValues", "disabled"], outputs: ["autocompleteFnc", "blur", "focus", "suggestionUnselect", "suggestionSelect"] }, { kind: "component", type: i12.Dropdown, selector: "yvc-dropdown", inputs: ["options", "filter", "disabled", "multiple", "disableClearButton"], outputs: ["onDropdownOptionsClose"] }] }); }
|
|
68
68
|
}
|
|
69
69
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: DynamicListFilterComponent, decorators: [{
|
|
70
70
|
type: Component,
|
|
71
|
-
args: [{ selector: 'eo-dynamic-list-filter', template: "<eo-dialog #listDialog [title]=\"pickerTitle\" [visible]=\"display\" [ngClass]=\"{empty: !(list?.entries?.length) && display}\"\n [styleClass]=\"'dynlist-dialog'\" (hide)=\"display = false\">\n\n <eo-tree [tree]=\"tree\" *ngIf=\"display && tree\" [isDisplayed]=\"display\" [options]=\"{multiselect: multiselect}\"\n [(ngModel)]=\"selectedNodes\" (keyup.enter)=\"showDialog($event, false)\"\n (ngModelChange)=\"onTreeSelectionChanged($event)\">\n </eo-tree>\n\n @if (!(list?.entries?.length)) {\n <div class=\"empty\">\n @if (isAutocompleteLoading) {\n <eo-loading-spinner [size]=\"'small'\"></eo-loading-spinner>\n } @else {\n <div translate>eo.form.property.dynamic.list.empty</div>\n }\n </div>\n }\n</eo-dialog>\n\n<div class=\"eo-dynamic-list\" [ngClass]=\"{full: selectedNodes && selectedNodes.length === autocompleteValues.length}\">\n\n @if (isSearch && !isTableElement) {\n <yvc-dropdown [(ngModel)]=\"searchOption\" (ngModelChange)=\"onValueChange()\" [options]=\"availableSearchOptions\"\n [disabled]=\"readonly\" [disableClearButton]=\"true\"></yvc-dropdown>\n }\n\n
|
|
71
|
+
args: [{ selector: 'eo-dynamic-list-filter', template: "<eo-dialog #listDialog [title]=\"pickerTitle\" [visible]=\"display\" [ngClass]=\"{empty: !(list?.entries?.length) && display}\"\n [styleClass]=\"'dynlist-dialog'\" (hide)=\"display = false\">\n\n <eo-tree [tree]=\"tree\" *ngIf=\"display && tree\" [isDisplayed]=\"display\" [options]=\"{multiselect: multiselect}\"\n [(ngModel)]=\"selectedNodes\" (keyup.enter)=\"showDialog($event, false)\"\n (ngModelChange)=\"onTreeSelectionChanged($event)\">\n </eo-tree>\n\n @if (!(list?.entries?.length)) {\n <div class=\"empty\">\n @if (isAutocompleteLoading) {\n <eo-loading-spinner [size]=\"'small'\"></eo-loading-spinner>\n } @else {\n <div translate>eo.form.property.dynamic.list.empty</div>\n }\n </div>\n }\n</eo-dialog>\n\n<div class=\"eo-dynamic-list\" [ngClass]=\"{full: selectedNodes && selectedNodes.length === autocompleteValues.length}\">\n\n @if (isSearch && !isTableElement) {\n <yvc-dropdown [(ngModel)]=\"searchOption\" (ngModelChange)=\"onValueChange()\" [options]=\"availableSearchOptions\"\n [disabled]=\"readonly\" [disableClearButton]=\"true\"></yvc-dropdown>\n }\n\n <yvc-autocomplete [(ngModel)]=\"selectedNodes\" #autocomplete (suggestionSelect)=\"onAutoCompleteSelect($event)\" (suggestionUnselect)=\"onAutoCompleteUnselect($event)\" (focus)=\"onAutocompleteFocus()\" (input)=\"onAutocompleteInput($event)\" (keydown)=\"onAutocompleteKeydown($event)\" (blur)=\"onAutocompleteBlur()\" [disabled]=\"readonly\" [forceSelection]=\"true\" [autocompleteValues]=\"autocompleteRes\" (ngModelChange)=\"onAutocompleteModelChange($event)\" field=\"{{ valueField }}\" (autocompleteFnc)=\"autocompleteFn($event)\" [multiple]=\"multiselect\" [ngClass]=\"{ 'hide-inputToken': !hasAutocompleteUrl }\"\n >\n\n <ng-template let-item #chipTemplate>\n <div>\n <div class=\"value\">{{item[valueField]}}</div>\n </div>\n </ng-template>\n\n <ng-template #autocompleteOptionTemplate let-item>\n <div>\n <div class=\"value\">{{item[valueField]}}</div>\n <div class=\"description\" style=\"font-style: italic; color: var(--text-color-caption)\">{{item[descriptionField]}}</div>\n </div>\n </ng-template>\n </yvc-autocomplete>\n\n <button #button class=\"ui-button\" *ngIf=\"!readonly\" [disabled]=\"readonly\" (click)=\"showDialog($event, !!$event.detail)\"\n (keyup.arrowDown)=\"showDialog($event)\" (keyup.enter)=\"showDialog($event)\" (keyup.space)=\"showDialog($event)\">\n <eo-icon [iconSrc]=\"'assets/_default/svg/ic_arrow_down.svg'\"></eo-icon>\n </button>\n</div>\n", styles: [".rtl .form-element .form-field>div label{text-align:left!important}:host .eo-dynamic-list{display:flex;align-items:center;justify-content:space-between}:host .eo-dynamic-list .description{padding-left:0!important}:host .eo-dynamic-list yvc-autocomplete{flex:1 1 auto;border:0;outline:0}:host .eo-dynamic-list>button{flex:0 0 auto;padding:0}:host .eo-dynamic-list>button eo-icon{width:16px;height:16px;margin:auto}:host .eo-dynamic-list.full ::ng-deep yvc-autocomplete.hide-inputToken .inputToken{display:none}:host yvc-dropdown{min-width:min-content;border:0;cursor:pointer;border-radius:2px;outline:1px solid rgba(0,0,0,.2);background-color:var(--list-item-hover-background);margin-right:4px}:host yvc-dropdown:hover{background-color:var(--list-item-selected-background)}:host yvc-dropdown ::ng-deep yvc-icon{display:none}\n"] }]
|
|
72
72
|
}], ctorParameters: () => [{ type: i1.LocalStorageService }, { type: i2.ObjectFormHelperService }, { type: i3.DynamicListService }, { type: i1.EventService }], propDecorators: { eoDialog: [{
|
|
73
73
|
type: ViewChild,
|
|
74
74
|
args: [EoDialogComponent]
|
|
75
75
|
}] } });
|
|
76
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1saXN0LWZpbHRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2VvLWZyYW1ld29yay9ncmlkL2ZpbHRlcnMvZHluYW1pYy1saXN0LWZpbHRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2VvLWZyYW1ld29yay9mb3JtLWVsZW1lbnRzL2R5bmFtaWMtbGlzdC9keW5hbWljLWxpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFbkQsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0seURBQXlELENBQUM7QUFDN0YsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sd0NBQXdDLENBQUM7Ozs7Ozs7Ozs7Ozs7O0FBVXpFLE1BQU0sT0FBTywwQkFBMkIsU0FBUSxvQkFBb0I7SUFRbEUsWUFBWSxtQkFBd0MsRUFBRSx1QkFBZ0QsRUFBRSxrQkFBc0MsRUFBRSxZQUEwQjtRQUN4SyxLQUFLLENBQUMsa0JBQWtCLEVBQUUsbUJBQW1CLEVBQUUsdUJBQXVCLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFSeEYsV0FBTSxHQUFRLEVBQUUsQ0FBQztRQUVqQixnQkFBVyxHQUFHLElBQUksQ0FBQztRQUNuQixjQUFTLEdBQUcsUUFBUSxDQUFDO0lBTXJCLENBQUM7SUFFRCxhQUFhO1FBQ1gsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDdkUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDcEMsQ0FBQztJQUNILENBQUM7SUFFRCxvQkFBb0IsQ0FBQyxJQUFJO1FBQ3ZCLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNqQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUVELHNCQUFzQixDQUFDLElBQUk7UUFDekIsS0FBSyxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ25DLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRUQsc0JBQXNCLENBQUMsR0FBRztRQUN4QixLQUFLLENBQUMsc0JBQXNCLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDbEMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxjQUFjO1FBQ1osT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVELGNBQWMsQ0FBQyxNQUE2QjtRQUMxQyxJQUFJLElBQUksQ0FBQyxhQUFhLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNwRCxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3BELE9BQU8sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7aUJBQzVDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ3RFLENBQUM7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCxRQUFRO1FBQ04sT0FBTyxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztZQUN2QyxVQUFVLEVBQUUsNEJBQTRCO1lBQ3hDLE1BQU0sRUFBRSxJQUFJLENBQUMsS0FBSztTQUNuQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDWCxDQUFDO0lBRUQsUUFBUSxDQUFDLEtBQVU7UUFDakIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN6QixDQUFDO0lBRUQsTUFBTSxDQUFDLE1BQVc7UUFDaEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDckIsSUFBSSxDQUFDLFVBQVUsR0FBRyxFQUFDLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLElBQUksRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDLEtBQUssRUFBQyxDQUFDLENBQUMsRUFBeUIsQ0FBQztRQUM1SCxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQztJQUVuRCxDQUFDOzhHQTlEVSwwQkFBMEI7a0dBQTFCLDBCQUEwQix3R0FNMUIsaUJBQWlCLHVFQ3JCOUIsNDRFQWlEQTs7MkZEbENhLDBCQUEwQjtrQkFMdEMsU0FBUzsrQkFDRSx3QkFBd0I7MExBVUosUUFBUTtzQkFBckMsU0FBUzt1QkFBQyxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0lGaWx0ZXJBbmd1bGFyQ29tcH0gZnJvbSAnQGFnLWdyaWQtY29tbXVuaXR5L2FuZ3VsYXInO1xuaW1wb3J0IHtJRG9lc0ZpbHRlclBhc3NQYXJhbXN9IGZyb20gJ0BhZy1ncmlkLWNvbW11bml0eS9jb3JlJztcbmltcG9ydCB7Q29tcG9uZW50LCBWaWV3Q2hpbGR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtMb2NhbFN0b3JhZ2VTZXJ2aWNlLCBBdXRvY29tcGxldGVSZXNwb25zZSwgRXZlbnRTZXJ2aWNlfSBmcm9tICdAZW8tc2RrL2NvcmUnO1xuaW1wb3J0IHtEeW5hbWljTGlzdENvbXBvbmVudH0gZnJvbSAnLi4vLi4vZm9ybS1lbGVtZW50cy9keW5hbWljLWxpc3QvZHluYW1pYy1saXN0LmNvbXBvbmVudCc7XG5pbXBvcnQge0VvRGlhbG9nQ29tcG9uZW50fSBmcm9tICcuLi8uLi91aS9lby1kaWFsb2cvZW8tZGlhbG9nLmNvbXBvbmVudCc7XG5pbXBvcnQge09iamVjdEZvcm1IZWxwZXJTZXJ2aWNlfSBmcm9tICcuLi8uLi9vYmplY3QtZm9ybS9vYmplY3QtZm9ybS1oZWxwZXIuc2VydmljZSc7XG5pbXBvcnQge0R5bmFtaWNMaXN0U2VydmljZX0gZnJvbSAnLi8uLi8uLi9mb3JtLWVsZW1lbnRzL2R5bmFtaWMtbGlzdC9keW5hbWljLWxpc3Quc2VydmljZSc7XG5cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZW8tZHluYW1pYy1saXN0LWZpbHRlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi4vLi4vZm9ybS1lbGVtZW50cy9keW5hbWljLWxpc3QvZHluYW1pYy1saXN0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4uLy4uL2Zvcm0tZWxlbWVudHMvZHluYW1pYy1saXN0L2R5bmFtaWMtbGlzdC5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIER5bmFtaWNMaXN0RmlsdGVyQ29tcG9uZW50IGV4dGVuZHMgRHluYW1pY0xpc3RDb21wb25lbnQgaW1wbGVtZW50cyBJRmlsdGVyQW5ndWxhckNvbXAge1xuICBwYXJhbXM6IGFueSA9IHt9O1xuICBjb2x1bW46IGFueTtcbiAgbXVsdGlzZWxlY3QgPSB0cnVlO1xuICBzaXR1YXRpb24gPSAnU0VBUkNIJztcblxuICBAVmlld0NoaWxkKEVvRGlhbG9nQ29tcG9uZW50KSBlb0RpYWxvZzogRW9EaWFsb2dDb21wb25lbnQ7XG5cbiAgY29uc3RydWN0b3IobG9jYWxTdG9yYWdlU2VydmljZTogTG9jYWxTdG9yYWdlU2VydmljZSwgb2JqZWN0Rm9ybUhlbHBlclNlcnZpY2U6IE9iamVjdEZvcm1IZWxwZXJTZXJ2aWNlLCBkeW5hbWljTGlzdFNlcnZpY2U6IER5bmFtaWNMaXN0U2VydmljZSwgZXZlbnRTZXJ2aWNlOiBFdmVudFNlcnZpY2UpIHtcbiAgICBzdXBlcihkeW5hbWljTGlzdFNlcnZpY2UsIGxvY2FsU3RvcmFnZVNlcnZpY2UsIG9iamVjdEZvcm1IZWxwZXJTZXJ2aWNlLCBldmVudFNlcnZpY2UpO1xuICB9XG5cbiAgb25WYWx1ZUNoYW5nZSgpIHtcbiAgICBpZiAoIXRoaXMucGFyYW1zLmZpbHRlclBhcmFtcyB8fCAhdGhpcy5wYXJhbXMuZmlsdGVyUGFyYW1zLmFwcGx5QnV0dG9uKSB7XG4gICAgICB0aGlzLnBhcmFtcy5hcGkub25GaWx0ZXJDaGFuZ2VkKCk7XG4gICAgfVxuICB9XG5cbiAgb25BdXRvQ29tcGxldGVTZWxlY3Qobm9kZSkge1xuICAgIHN1cGVyLm9uQXV0b0NvbXBsZXRlU2VsZWN0KG5vZGUpO1xuICAgIHRoaXMub25WYWx1ZUNoYW5nZSgpO1xuICB9XG5cbiAgb25BdXRvQ29tcGxldGVVbnNlbGVjdChub2RlKSB7XG4gICAgc3VwZXIub25BdXRvQ29tcGxldGVVbnNlbGVjdChub2RlKTtcbiAgICB0aGlzLm9uVmFsdWVDaGFuZ2UoKTtcbiAgfVxuXG4gIG9uVHJlZVNlbGVjdGlvbkNoYW5nZWQoZXZ0KSB7XG4gICAgc3VwZXIub25UcmVlU2VsZWN0aW9uQ2hhbmdlZChldnQpO1xuICAgIHRoaXMub25WYWx1ZUNoYW5nZSgpO1xuICB9XG5cbiAgaXNGaWx0ZXJBY3RpdmUoKSB7XG4gICAgcmV0dXJuICEhKHRoaXMudmFsdWUgJiYgdGhpcy52YWx1ZS5sZW5ndGgpO1xuICB9XG5cbiAgZG9lc0ZpbHRlclBhc3MocGFyYW1zOiBJRG9lc0ZpbHRlclBhc3NQYXJhbXMpIHtcbiAgICBpZiAodGhpcy5zZWxlY3RlZE5vZGVzICYmIHRoaXMuc2VsZWN0ZWROb2Rlcy5sZW5ndGgpIHtcbiAgICAgIGNvbnN0IHZhbHVlID0gcGFyYW1zLmRhdGFbdGhpcy5wYXJhbXMuY29sRGVmLmZpZWxkXTtcbiAgICAgIHJldHVybiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkgPyB2YWx1ZSA6IFt2YWx1ZV0pXG4gICAgICAgIC5zb21lKHZhbCA9PiAhIX50aGlzLnNlbGVjdGVkTm9kZXMubWFwKHYgPT4gdi5uYW1lKS5pbmRleE9mKHZhbCkpO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBnZXRNb2RlbCgpIHtcbiAgICByZXR1cm4gdGhpcy52YWx1ZSAmJiB0aGlzLnZhbHVlLmxlbmd0aCA/IHtcbiAgICAgIGZpbHRlclR5cGU6ICdEeW5hbWljTGlzdEZpbHRlckNvbXBvbmVudCcsXG4gICAgICBmaWx0ZXI6IHRoaXMudmFsdWVcbiAgICB9IDogbnVsbDtcbiAgfVxuXG4gIHNldE1vZGVsKHZhbHVlOiBhbnkpIHtcbiAgICB0aGlzLndyaXRlVmFsdWUodmFsdWUpO1xuICB9XG5cbiAgYWdJbml0KHBhcmFtczogYW55KSB7XG4gICAgdGhpcy5wYXJhbXMgPSBwYXJhbXM7XG4gICAgdGhpcy5saXN0T2JqZWN0ID0ge2VudHJpZXM6ICh0aGlzLnBhcmFtcy5jb2xEZWYuZmlsdGVyUGFyYW1zLnZhbHVlcyB8fCBbXSkubWFwKHZhbHVlID0+ICh7dmFsdWV9KSl9IGFzIEF1dG9jb21wbGV0ZVJlc3BvbnNlO1xuICAgIHRoaXMucGlja2VyVGl0bGUgPSB0aGlzLnBhcmFtcy5jb2xEZWYuaGVhZGVyTmFtZTtcblxuICB9XG59XG4iLCI8ZW8tZGlhbG9nICNsaXN0RGlhbG9nIFt0aXRsZV09XCJwaWNrZXJUaXRsZVwiIFt2aXNpYmxlXT1cImRpc3BsYXlcIiBbbmdDbGFzc109XCJ7ZW1wdHk6ICEobGlzdD8uZW50cmllcz8ubGVuZ3RoKSAmJiBkaXNwbGF5fVwiXG4gIFtzdHlsZUNsYXNzXT1cIidkeW5saXN0LWRpYWxvZydcIiAoaGlkZSk9XCJkaXNwbGF5ID0gZmFsc2VcIj5cblxuICA8ZW8tdHJlZSBbdHJlZV09XCJ0cmVlXCIgKm5nSWY9XCJkaXNwbGF5ICYmIHRyZWVcIiBbaXNEaXNwbGF5ZWRdPVwiZGlzcGxheVwiIFtvcHRpb25zXT1cInttdWx0aXNlbGVjdDogbXVsdGlzZWxlY3R9XCJcbiAgICBbKG5nTW9kZWwpXT1cInNlbGVjdGVkTm9kZXNcIiAoa2V5dXAuZW50ZXIpPVwic2hvd0RpYWxvZygkZXZlbnQsIGZhbHNlKVwiXG4gICAgKG5nTW9kZWxDaGFuZ2UpPVwib25UcmVlU2VsZWN0aW9uQ2hhbmdlZCgkZXZlbnQpXCI+XG4gIDwvZW8tdHJlZT5cblxuICBAaWYgKCEobGlzdD8uZW50cmllcz8ubGVuZ3RoKSkge1xuICAgIDxkaXYgY2xhc3M9XCJlbXB0eVwiPlxuICAgICAgQGlmIChpc0F1dG9jb21wbGV0ZUxvYWRpbmcpIHtcbiAgICAgICAgPGVvLWxvYWRpbmctc3Bpbm5lciBbc2l6ZV09XCInc21hbGwnXCI+PC9lby1sb2FkaW5nLXNwaW5uZXI+XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgPGRpdiB0cmFuc2xhdGU+ZW8uZm9ybS5wcm9wZXJ0eS5keW5hbWljLmxpc3QuZW1wdHk8L2Rpdj5cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiAgfVxuPC9lby1kaWFsb2c+XG5cbjxkaXYgY2xhc3M9XCJlby1keW5hbWljLWxpc3RcIiBbbmdDbGFzc109XCJ7ZnVsbDogc2VsZWN0ZWROb2RlcyAmJiBzZWxlY3RlZE5vZGVzLmxlbmd0aCA9PT0gYXV0b2NvbXBsZXRlVmFsdWVzLmxlbmd0aH1cIj5cblxuICBAaWYgKGlzU2VhcmNoICYmICFpc1RhYmxlRWxlbWVudCkge1xuICAgIDx5dmMtZHJvcGRvd24gWyhuZ01vZGVsKV09XCJzZWFyY2hPcHRpb25cIiAobmdNb2RlbENoYW5nZSk9XCJvblZhbHVlQ2hhbmdlKClcIiBbb3B0aW9uc109XCJhdmFpbGFibGVTZWFyY2hPcHRpb25zXCJcbiAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJyZWFkb25seVwiIFtkaXNhYmxlQ2xlYXJCdXR0b25dPVwidHJ1ZVwiPjwveXZjLWRyb3Bkb3duPlxuICB9XG5cbiAgPHl2Yy1hdXRvY29tcGxldGUgWyhuZ01vZGVsKV09XCJzZWxlY3RlZE5vZGVzXCIgI2F1dG9jb21wbGV0ZSAoc3VnZ2VzdGlvblNlbGVjdCk9XCJvbkF1dG9Db21wbGV0ZVNlbGVjdCgkZXZlbnQpXCJcbiAgICBbZGlzYWJsZWRdPVwicmVhZG9ubHlcIiAoc3VnZ2VzdGlvblVuc2VsZWN0KT1cIm9uQXV0b0NvbXBsZXRlVW5zZWxlY3QoJGV2ZW50KVwiIFtmb3JjZVNlbGVjdGlvbl09XCJ0cnVlXCJcbiAgICBbYXV0b2NvbXBsZXRlVmFsdWVzXT1cImF1dG9jb21wbGV0ZVJlc1wiIChuZ01vZGVsQ2hhbmdlKT1cIm9uVHJlZVNlbGVjdGlvbkNoYW5nZWQoJGV2ZW50KVwiIGZpZWxkPVwie3t2YWx1ZUZpZWxkfX1cIiAoYXV0b2NvbXBsZXRlRm5jKT1cImF1dG9jb21wbGV0ZUZuKCRldmVudClcIiBbbXVsdGlwbGVdPVwibXVsdGlzZWxlY3RcIiBbbmdDbGFzc109XCJ7J2hpZGUtaW5wdXRUb2tlbic6ICFoYXNBdXRvY29tcGxldGVVcmx9XCI+XG5cbiAgICA8bmctdGVtcGxhdGUgbGV0LWl0ZW0gI2NoaXBUZW1wbGF0ZT5cbiAgICAgIDxkaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ2YWx1ZVwiPnt7aXRlbVt2YWx1ZUZpZWxkXX19PC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgPG5nLXRlbXBsYXRlICNhdXRvY29tcGxldGVPcHRpb25UZW1wbGF0ZSBsZXQtaXRlbT5cbiAgICAgIDxkaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ2YWx1ZVwiPnt7aXRlbVt2YWx1ZUZpZWxkXX19PC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJkZXNjcmlwdGlvblwiIHN0eWxlPVwiZm9udC1zdHlsZTogaXRhbGljOyBjb2xvcjogdmFyKC0tdGV4dC1jb2xvci1jYXB0aW9uKVwiPnt7aXRlbVtkZXNjcmlwdGlvbkZpZWxkXX19PC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L3l2Yy1hdXRvY29tcGxldGU+XG5cbiAgPGJ1dHRvbiAjYnV0dG9uIGNsYXNzPVwidWktYnV0dG9uXCIgKm5nSWY9XCIhcmVhZG9ubHlcIiBbZGlzYWJsZWRdPVwicmVhZG9ubHlcIiAoY2xpY2spPVwic2hvd0RpYWxvZygkZXZlbnQsICEhJGV2ZW50LmRldGFpbClcIlxuICAgIChrZXl1cC5hcnJvd0Rvd24pPVwic2hvd0RpYWxvZygkZXZlbnQpXCIgKGtleXVwLmVudGVyKT1cInNob3dEaWFsb2coJGV2ZW50KVwiIChrZXl1cC5zcGFjZSk9XCJzaG93RGlhbG9nKCRldmVudClcIj5cbiAgICA8ZW8taWNvbiBbaWNvblNyY109XCInYXNzZXRzL19kZWZhdWx0L3N2Zy9pY19hcnJvd19kb3duLnN2ZydcIj48L2VvLWljb24+XG4gIDwvYnV0dG9uPlxuPC9kaXY+XG4iXX0=
|
|
76
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1saXN0LWZpbHRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2VvLWZyYW1ld29yay9ncmlkL2ZpbHRlcnMvZHluYW1pYy1saXN0LWZpbHRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2VvLWZyYW1ld29yay9mb3JtLWVsZW1lbnRzL2R5bmFtaWMtbGlzdC9keW5hbWljLWxpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFbkQsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0seURBQXlELENBQUM7QUFDN0YsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sd0NBQXdDLENBQUM7Ozs7Ozs7Ozs7Ozs7O0FBVXpFLE1BQU0sT0FBTywwQkFBMkIsU0FBUSxvQkFBb0I7SUFRbEUsWUFBWSxtQkFBd0MsRUFBRSx1QkFBZ0QsRUFBRSxrQkFBc0MsRUFBRSxZQUEwQjtRQUN4SyxLQUFLLENBQUMsa0JBQWtCLEVBQUUsbUJBQW1CLEVBQUUsdUJBQXVCLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFSeEYsV0FBTSxHQUFRLEVBQUUsQ0FBQztRQUVqQixnQkFBVyxHQUFHLElBQUksQ0FBQztRQUNuQixjQUFTLEdBQUcsUUFBUSxDQUFDO0lBTXJCLENBQUM7SUFFRCxhQUFhO1FBQ1gsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDdkUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDcEMsQ0FBQztJQUNILENBQUM7SUFFRCxvQkFBb0IsQ0FBQyxJQUFJO1FBQ3ZCLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNqQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUVELHNCQUFzQixDQUFDLElBQUk7UUFDekIsS0FBSyxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ25DLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRUQsc0JBQXNCLENBQUMsR0FBRztRQUN4QixLQUFLLENBQUMsc0JBQXNCLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDbEMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxjQUFjO1FBQ1osT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVELGNBQWMsQ0FBQyxNQUE2QjtRQUMxQyxJQUFJLElBQUksQ0FBQyxhQUFhLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNwRCxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3BELE9BQU8sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7aUJBQzVDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ3RFLENBQUM7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCxRQUFRO1FBQ04sT0FBTyxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztZQUN2QyxVQUFVLEVBQUUsNEJBQTRCO1lBQ3hDLE1BQU0sRUFBRSxJQUFJLENBQUMsS0FBSztTQUNuQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDWCxDQUFDO0lBRUQsUUFBUSxDQUFDLEtBQVU7UUFDakIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN6QixDQUFDO0lBRUQsTUFBTSxDQUFDLE1BQVc7UUFDaEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDckIsSUFBSSxDQUFDLFVBQVUsR0FBRyxFQUFDLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLElBQUksRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDLEtBQUssRUFBQyxDQUFDLENBQUMsRUFBeUIsQ0FBQztRQUM1SCxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQztJQUVuRCxDQUFDOzhHQTlEVSwwQkFBMEI7a0dBQTFCLDBCQUEwQix3R0FNMUIsaUJBQWlCLHVFQ3JCOUIscWlGQWdEQTs7MkZEakNhLDBCQUEwQjtrQkFMdEMsU0FBUzsrQkFDRSx3QkFBd0I7MExBVUosUUFBUTtzQkFBckMsU0FBUzt1QkFBQyxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0lGaWx0ZXJBbmd1bGFyQ29tcH0gZnJvbSAnQGFnLWdyaWQtY29tbXVuaXR5L2FuZ3VsYXInO1xuaW1wb3J0IHtJRG9lc0ZpbHRlclBhc3NQYXJhbXN9IGZyb20gJ0BhZy1ncmlkLWNvbW11bml0eS9jb3JlJztcbmltcG9ydCB7Q29tcG9uZW50LCBWaWV3Q2hpbGR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtMb2NhbFN0b3JhZ2VTZXJ2aWNlLCBBdXRvY29tcGxldGVSZXNwb25zZSwgRXZlbnRTZXJ2aWNlfSBmcm9tICdAZW8tc2RrL2NvcmUnO1xuaW1wb3J0IHtEeW5hbWljTGlzdENvbXBvbmVudH0gZnJvbSAnLi4vLi4vZm9ybS1lbGVtZW50cy9keW5hbWljLWxpc3QvZHluYW1pYy1saXN0LmNvbXBvbmVudCc7XG5pbXBvcnQge0VvRGlhbG9nQ29tcG9uZW50fSBmcm9tICcuLi8uLi91aS9lby1kaWFsb2cvZW8tZGlhbG9nLmNvbXBvbmVudCc7XG5pbXBvcnQge09iamVjdEZvcm1IZWxwZXJTZXJ2aWNlfSBmcm9tICcuLi8uLi9vYmplY3QtZm9ybS9vYmplY3QtZm9ybS1oZWxwZXIuc2VydmljZSc7XG5pbXBvcnQge0R5bmFtaWNMaXN0U2VydmljZX0gZnJvbSAnLi8uLi8uLi9mb3JtLWVsZW1lbnRzL2R5bmFtaWMtbGlzdC9keW5hbWljLWxpc3Quc2VydmljZSc7XG5cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZW8tZHluYW1pYy1saXN0LWZpbHRlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi4vLi4vZm9ybS1lbGVtZW50cy9keW5hbWljLWxpc3QvZHluYW1pYy1saXN0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4uLy4uL2Zvcm0tZWxlbWVudHMvZHluYW1pYy1saXN0L2R5bmFtaWMtbGlzdC5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIER5bmFtaWNMaXN0RmlsdGVyQ29tcG9uZW50IGV4dGVuZHMgRHluYW1pY0xpc3RDb21wb25lbnQgaW1wbGVtZW50cyBJRmlsdGVyQW5ndWxhckNvbXAge1xuICBwYXJhbXM6IGFueSA9IHt9O1xuICBjb2x1bW46IGFueTtcbiAgbXVsdGlzZWxlY3QgPSB0cnVlO1xuICBzaXR1YXRpb24gPSAnU0VBUkNIJztcblxuICBAVmlld0NoaWxkKEVvRGlhbG9nQ29tcG9uZW50KSBlb0RpYWxvZzogRW9EaWFsb2dDb21wb25lbnQ7XG5cbiAgY29uc3RydWN0b3IobG9jYWxTdG9yYWdlU2VydmljZTogTG9jYWxTdG9yYWdlU2VydmljZSwgb2JqZWN0Rm9ybUhlbHBlclNlcnZpY2U6IE9iamVjdEZvcm1IZWxwZXJTZXJ2aWNlLCBkeW5hbWljTGlzdFNlcnZpY2U6IER5bmFtaWNMaXN0U2VydmljZSwgZXZlbnRTZXJ2aWNlOiBFdmVudFNlcnZpY2UpIHtcbiAgICBzdXBlcihkeW5hbWljTGlzdFNlcnZpY2UsIGxvY2FsU3RvcmFnZVNlcnZpY2UsIG9iamVjdEZvcm1IZWxwZXJTZXJ2aWNlLCBldmVudFNlcnZpY2UpO1xuICB9XG5cbiAgb25WYWx1ZUNoYW5nZSgpIHtcbiAgICBpZiAoIXRoaXMucGFyYW1zLmZpbHRlclBhcmFtcyB8fCAhdGhpcy5wYXJhbXMuZmlsdGVyUGFyYW1zLmFwcGx5QnV0dG9uKSB7XG4gICAgICB0aGlzLnBhcmFtcy5hcGkub25GaWx0ZXJDaGFuZ2VkKCk7XG4gICAgfVxuICB9XG5cbiAgb25BdXRvQ29tcGxldGVTZWxlY3Qobm9kZSkge1xuICAgIHN1cGVyLm9uQXV0b0NvbXBsZXRlU2VsZWN0KG5vZGUpO1xuICAgIHRoaXMub25WYWx1ZUNoYW5nZSgpO1xuICB9XG5cbiAgb25BdXRvQ29tcGxldGVVbnNlbGVjdChub2RlKSB7XG4gICAgc3VwZXIub25BdXRvQ29tcGxldGVVbnNlbGVjdChub2RlKTtcbiAgICB0aGlzLm9uVmFsdWVDaGFuZ2UoKTtcbiAgfVxuXG4gIG9uVHJlZVNlbGVjdGlvbkNoYW5nZWQoZXZ0KSB7XG4gICAgc3VwZXIub25UcmVlU2VsZWN0aW9uQ2hhbmdlZChldnQpO1xuICAgIHRoaXMub25WYWx1ZUNoYW5nZSgpO1xuICB9XG5cbiAgaXNGaWx0ZXJBY3RpdmUoKSB7XG4gICAgcmV0dXJuICEhKHRoaXMudmFsdWUgJiYgdGhpcy52YWx1ZS5sZW5ndGgpO1xuICB9XG5cbiAgZG9lc0ZpbHRlclBhc3MocGFyYW1zOiBJRG9lc0ZpbHRlclBhc3NQYXJhbXMpIHtcbiAgICBpZiAodGhpcy5zZWxlY3RlZE5vZGVzICYmIHRoaXMuc2VsZWN0ZWROb2Rlcy5sZW5ndGgpIHtcbiAgICAgIGNvbnN0IHZhbHVlID0gcGFyYW1zLmRhdGFbdGhpcy5wYXJhbXMuY29sRGVmLmZpZWxkXTtcbiAgICAgIHJldHVybiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkgPyB2YWx1ZSA6IFt2YWx1ZV0pXG4gICAgICAgIC5zb21lKHZhbCA9PiAhIX50aGlzLnNlbGVjdGVkTm9kZXMubWFwKHYgPT4gdi5uYW1lKS5pbmRleE9mKHZhbCkpO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBnZXRNb2RlbCgpIHtcbiAgICByZXR1cm4gdGhpcy52YWx1ZSAmJiB0aGlzLnZhbHVlLmxlbmd0aCA/IHtcbiAgICAgIGZpbHRlclR5cGU6ICdEeW5hbWljTGlzdEZpbHRlckNvbXBvbmVudCcsXG4gICAgICBmaWx0ZXI6IHRoaXMudmFsdWVcbiAgICB9IDogbnVsbDtcbiAgfVxuXG4gIHNldE1vZGVsKHZhbHVlOiBhbnkpIHtcbiAgICB0aGlzLndyaXRlVmFsdWUodmFsdWUpO1xuICB9XG5cbiAgYWdJbml0KHBhcmFtczogYW55KSB7XG4gICAgdGhpcy5wYXJhbXMgPSBwYXJhbXM7XG4gICAgdGhpcy5saXN0T2JqZWN0ID0ge2VudHJpZXM6ICh0aGlzLnBhcmFtcy5jb2xEZWYuZmlsdGVyUGFyYW1zLnZhbHVlcyB8fCBbXSkubWFwKHZhbHVlID0+ICh7dmFsdWV9KSl9IGFzIEF1dG9jb21wbGV0ZVJlc3BvbnNlO1xuICAgIHRoaXMucGlja2VyVGl0bGUgPSB0aGlzLnBhcmFtcy5jb2xEZWYuaGVhZGVyTmFtZTtcblxuICB9XG59XG4iLCI8ZW8tZGlhbG9nICNsaXN0RGlhbG9nIFt0aXRsZV09XCJwaWNrZXJUaXRsZVwiIFt2aXNpYmxlXT1cImRpc3BsYXlcIiBbbmdDbGFzc109XCJ7ZW1wdHk6ICEobGlzdD8uZW50cmllcz8ubGVuZ3RoKSAmJiBkaXNwbGF5fVwiXG4gIFtzdHlsZUNsYXNzXT1cIidkeW5saXN0LWRpYWxvZydcIiAoaGlkZSk9XCJkaXNwbGF5ID0gZmFsc2VcIj5cblxuICA8ZW8tdHJlZSBbdHJlZV09XCJ0cmVlXCIgKm5nSWY9XCJkaXNwbGF5ICYmIHRyZWVcIiBbaXNEaXNwbGF5ZWRdPVwiZGlzcGxheVwiIFtvcHRpb25zXT1cInttdWx0aXNlbGVjdDogbXVsdGlzZWxlY3R9XCJcbiAgICBbKG5nTW9kZWwpXT1cInNlbGVjdGVkTm9kZXNcIiAoa2V5dXAuZW50ZXIpPVwic2hvd0RpYWxvZygkZXZlbnQsIGZhbHNlKVwiXG4gICAgKG5nTW9kZWxDaGFuZ2UpPVwib25UcmVlU2VsZWN0aW9uQ2hhbmdlZCgkZXZlbnQpXCI+XG4gIDwvZW8tdHJlZT5cblxuICBAaWYgKCEobGlzdD8uZW50cmllcz8ubGVuZ3RoKSkge1xuICAgIDxkaXYgY2xhc3M9XCJlbXB0eVwiPlxuICAgICAgQGlmIChpc0F1dG9jb21wbGV0ZUxvYWRpbmcpIHtcbiAgICAgICAgPGVvLWxvYWRpbmctc3Bpbm5lciBbc2l6ZV09XCInc21hbGwnXCI+PC9lby1sb2FkaW5nLXNwaW5uZXI+XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgPGRpdiB0cmFuc2xhdGU+ZW8uZm9ybS5wcm9wZXJ0eS5keW5hbWljLmxpc3QuZW1wdHk8L2Rpdj5cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiAgfVxuPC9lby1kaWFsb2c+XG5cbjxkaXYgY2xhc3M9XCJlby1keW5hbWljLWxpc3RcIiBbbmdDbGFzc109XCJ7ZnVsbDogc2VsZWN0ZWROb2RlcyAmJiBzZWxlY3RlZE5vZGVzLmxlbmd0aCA9PT0gYXV0b2NvbXBsZXRlVmFsdWVzLmxlbmd0aH1cIj5cblxuICBAaWYgKGlzU2VhcmNoICYmICFpc1RhYmxlRWxlbWVudCkge1xuICAgIDx5dmMtZHJvcGRvd24gWyhuZ01vZGVsKV09XCJzZWFyY2hPcHRpb25cIiAobmdNb2RlbENoYW5nZSk9XCJvblZhbHVlQ2hhbmdlKClcIiBbb3B0aW9uc109XCJhdmFpbGFibGVTZWFyY2hPcHRpb25zXCJcbiAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJyZWFkb25seVwiIFtkaXNhYmxlQ2xlYXJCdXR0b25dPVwidHJ1ZVwiPjwveXZjLWRyb3Bkb3duPlxuICB9XG5cbiAgICA8eXZjLWF1dG9jb21wbGV0ZSBbKG5nTW9kZWwpXT1cInNlbGVjdGVkTm9kZXNcIiAjYXV0b2NvbXBsZXRlIChzdWdnZXN0aW9uU2VsZWN0KT1cIm9uQXV0b0NvbXBsZXRlU2VsZWN0KCRldmVudClcIiAoc3VnZ2VzdGlvblVuc2VsZWN0KT1cIm9uQXV0b0NvbXBsZXRlVW5zZWxlY3QoJGV2ZW50KVwiIChmb2N1cyk9XCJvbkF1dG9jb21wbGV0ZUZvY3VzKClcIiAoaW5wdXQpPVwib25BdXRvY29tcGxldGVJbnB1dCgkZXZlbnQpXCIgKGtleWRvd24pPVwib25BdXRvY29tcGxldGVLZXlkb3duKCRldmVudClcIiAoYmx1cik9XCJvbkF1dG9jb21wbGV0ZUJsdXIoKVwiIFtkaXNhYmxlZF09XCJyZWFkb25seVwiIFtmb3JjZVNlbGVjdGlvbl09XCJ0cnVlXCIgW2F1dG9jb21wbGV0ZVZhbHVlc109XCJhdXRvY29tcGxldGVSZXNcIiAobmdNb2RlbENoYW5nZSk9XCJvbkF1dG9jb21wbGV0ZU1vZGVsQ2hhbmdlKCRldmVudClcIiBmaWVsZD1cInt7IHZhbHVlRmllbGQgfX1cIiAoYXV0b2NvbXBsZXRlRm5jKT1cImF1dG9jb21wbGV0ZUZuKCRldmVudClcIiBbbXVsdGlwbGVdPVwibXVsdGlzZWxlY3RcIiBbbmdDbGFzc109XCJ7ICdoaWRlLWlucHV0VG9rZW4nOiAhaGFzQXV0b2NvbXBsZXRlVXJsIH1cIlxuICA+XG5cbiAgICA8bmctdGVtcGxhdGUgbGV0LWl0ZW0gI2NoaXBUZW1wbGF0ZT5cbiAgICAgIDxkaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ2YWx1ZVwiPnt7aXRlbVt2YWx1ZUZpZWxkXX19PC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgPG5nLXRlbXBsYXRlICNhdXRvY29tcGxldGVPcHRpb25UZW1wbGF0ZSBsZXQtaXRlbT5cbiAgICAgIDxkaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ2YWx1ZVwiPnt7aXRlbVt2YWx1ZUZpZWxkXX19PC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJkZXNjcmlwdGlvblwiIHN0eWxlPVwiZm9udC1zdHlsZTogaXRhbGljOyBjb2xvcjogdmFyKC0tdGV4dC1jb2xvci1jYXB0aW9uKVwiPnt7aXRlbVtkZXNjcmlwdGlvbkZpZWxkXX19PC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L3l2Yy1hdXRvY29tcGxldGU+XG5cbiAgPGJ1dHRvbiAjYnV0dG9uIGNsYXNzPVwidWktYnV0dG9uXCIgKm5nSWY9XCIhcmVhZG9ubHlcIiBbZGlzYWJsZWRdPVwicmVhZG9ubHlcIiAoY2xpY2spPVwic2hvd0RpYWxvZygkZXZlbnQsICEhJGV2ZW50LmRldGFpbClcIlxuICAgIChrZXl1cC5hcnJvd0Rvd24pPVwic2hvd0RpYWxvZygkZXZlbnQpXCIgKGtleXVwLmVudGVyKT1cInNob3dEaWFsb2coJGV2ZW50KVwiIChrZXl1cC5zcGFjZSk9XCJzaG93RGlhbG9nKCRldmVudClcIj5cbiAgICA8ZW8taWNvbiBbaWNvblNyY109XCInYXNzZXRzL19kZWZhdWx0L3N2Zy9pY19hcnJvd19kb3duLnN2ZydcIj48L2VvLWljb24+XG4gIDwvYnV0dG9uPlxuPC9kaXY+XG4iXX0=
|
|
@@ -151,7 +151,7 @@ export class ObjectLinksComponent {
|
|
|
151
151
|
entry.folder.forEach(entry2Layer => {
|
|
152
152
|
query.filters[entry2Layer.referencefield] = {
|
|
153
153
|
o: 'in',
|
|
154
|
-
v1: [
|
|
154
|
+
v1: Array.isArray(entry2Layer.referencevalue) ? entry2Layer.referencevalue : [entry2Layer.referencevalue]
|
|
155
155
|
};
|
|
156
156
|
});
|
|
157
157
|
}
|
|
@@ -176,4 +176,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImpor
|
|
|
176
176
|
type: Input,
|
|
177
177
|
args: ['dmsObject']
|
|
178
178
|
}] } });
|
|
179
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LWxpbmtzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvZW8tZnJhbWV3b3JrL29iamVjdC1kZXRhaWxzL29iamVjdC1saW5rcy9vYmplY3QtbGlua3MuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvb2JqZWN0LWRldGFpbHMvb2JqZWN0LWxpbmtzL29iamVjdC1saW5rcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLEtBQUssRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUcvQyxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sTUFBTSxDQUFDOzs7Ozs7Ozs7OztBQVE5QixNQUFNLE9BQU8sb0JBQW9CO0lBYS9CLElBQ0ksU0FBUyxDQUFDLFNBQW9CO1FBQ2hDLElBQUksU0FBUyxFQUFFLENBQUM7WUFDZCxJQUFJLENBQUMsSUFBSSxHQUFHLFNBQVMsQ0FBQztZQUN0QixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3ZCLENBQUM7SUFDSCxDQUFDO0lBRUQsWUFBb0IsZ0JBQWtDLEVBQzVDLEtBQXNCLEVBQ3RCLGFBQTRCO1FBRmxCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDNUMsVUFBSyxHQUFMLEtBQUssQ0FBaUI7UUFDdEIsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFwQnRDLGlCQUFZLEdBQUcsRUFBRSxDQUFDO1FBQ2xCLGtCQUFhLEdBQUcsRUFBRSxDQUFDO1FBRW5CLHFCQUFnQixHQUFHLEVBQUUsQ0FBQztRQUV0QixxQkFBZ0IsR0FBRyxJQUFJLENBQUM7UUFDeEIsc0JBQWlCLEdBQUcsS0FBSyxDQUFDO1FBRTFCLFlBQU8sR0FBRyxLQUFLLENBQUM7SUFhaEIsQ0FBQztJQUVELHNCQUFzQixDQUFDLElB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QUFDO2dCQUMxQyxJQUFJLENBQUMsS0FBSyxLQUFLLENBQUMsTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztvQkFDbEMsS0FBSyxDQUFDLElBQUksSUFBSSxNQUFNLENBQUM7Z0JBQ3ZCLENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQztRQUVELE9BQU8sZ0JBQWdCLGtCQUFrQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFBO0lBQ3BFLENBQUM7OEdBL0tVLG9CQUFvQjtrR0FBcEIsb0JBQW9CLDJGQ1hqQyx3akpBc0dBOzsyRkQzRmEsb0JBQW9CO2tCQUxoQyxTQUFTOytCQUNFLGlCQUFpQjsrSUFrQnZCLFNBQVM7c0JBRFosS0FBSzt1QkFBQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIElucHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7UmVmZXJlbmNlU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vZW8tZnJhbWV3b3JrLWNvcmUvcmVmZXJlbmNlcy9yZWZlcmVuY2Uuc2VydmljZSc7XG5pbXBvcnQge0Rtc09iamVjdCwgQXBwQ2FjaGVTZXJ2aWNlfSBmcm9tICdAZW8tc2RrL2NvcmUnO1xuaW1wb3J0IHtmb3JrSm9pbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1N5c3RlbVNlcnZpY2V9IGZyb20gJ0Blby1zZGsvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2VvLW9iamVjdC1saW5rcycsXG4gIHRlbXBsYXRlVXJsOiAnLi9vYmplY3QtbGlua3MuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9vYmplY3QtbGlua3MuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBPYmplY3RMaW5rc0NvbXBvbmVudCB7XG5cbiAgaXRlbTogRG1zT2JqZWN0O1xuICBpblJlZmVyZW5jZXMgPSBbXTtcbiAgb3V0UmVmZXJlbmNlcyA9IFtdO1xuICBxdWVyaWVzO1xuICBzdXBlclF1ZXJ5UGFyYW1zID0ge307XG5cbiAgc2hvd0luUmVmZXJlbmNlcyA9IHRydWU7XG4gIHNob3dPdXRSZWZlcmVuY2VzID0gZmFsc2U7XG5cbiAgbG9hZGluZyA9IGZhbHNlO1xuXG4gIEBJbnB1dCgnZG1zT2JqZWN0JylcbiAgc2V0IGRtc09iamVjdChkbXNPYmplY3Q6IERtc09iamVjdCkge1xuICAgIGlmIChkbXNPYmplY3QpIHtcbiAgICAgIHRoaXMuaXRlbSA9IGRtc09iamVjdDtcbiAgICAgIHRoaXMuaW5pdChkbXNPYmplY3QpO1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVmZXJlbmNlU2VydmljZTogUmVmZXJlbmNlU2VydmljZSxcbiAgICBwcml2YXRlIGNhY2hlOiBBcHBDYWNoZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBzeXN0ZW1TZXJ2aWNlOiBTeXN0ZW1TZXJ2aWNlKSB7XG4gIH1cblxuICBzd2l0Y2hMaXN0VmlzaWJpbGl0eVRvKGxpc3Q6ICdpbicgfCAnb3V0Jykge1xuICAgIGlmIChsaXN0ID09PSAnaW4nKSB7XG4gICAgICB0aGlzLnNob3dJblJlZmVyZW5jZXMgPSB0cnVlO1xuICAgICAgdGhpcy5zaG93T3V0UmVmZXJlbmNlcyA9IGZhbHNlO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNob3dJblJlZmVyZW5jZXMgPSBmYWxzZTtcbiAgICAgIHRoaXMuc2hvd091dFJlZmVyZW5jZXMgPSB0cnVlO1xuICAgIH1cbiAgICB0aGlzLmNhY2hlLnNldEl0ZW0oJ3l1di5yZWZlcmVuY2UubGlzdC5zaG93LicgKyB0aGlzLml0ZW0udHlwZU5hbWUsIGxpc3QpO1xuICB9XG5cbiAgZ2V0T2JqZWN0VHlwZShuYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5zeXN0ZW1TZXJ2aWNlLmdldE9iamVjdFR5cGUobmFtZSk7XG4gIH1cblxuICBwcml2YXRlIGluaXQoaXRlbSkge1xuICAgIHRoaXMubG9hZGluZyA9IHRydWU7XG4gICAgdGhpcy5jYWNoZS5nZXRJdGVtKCd5dXYucmVmZXJlbmNlLmxpc3Quc2hvdy4nICsgaXRlbS50eXBlTmFtZSkuc3Vic2NyaWJlKHJlcyA9PiB0aGlzLnN3aXRjaExpc3RWaXNpYmlsaXR5VG8ocmVzKSk7XG4gICAgY29uc3Qgb2JzID0gW1xuICAgICAgdGhpcy5yZWZlcmVuY2VTZXJ2aWNlLmdldEluUmVmZXJlbmNlcyhpdGVtKSxcbiAgICAgIHRoaXMucmVmZXJlbmNlU2VydmljZS5nZXRPdXRSZWZlcmVuY2VzKGl0ZW0pXG4gICAgXTtcbiAgICBmb3JrSm9pbihvYnMpXG4gICAgICAuc3Vic2NyaWJlKChyZXN1bHRzOiBhbnlbXVtdKSA9PiB7XG4gICAgICAgIFt0aGlzLmluUmVmZXJlbmNlcywgdGhpcy5vdXRSZWZlcmVuY2VzXSA9IHJlc3VsdHM7XG4gICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICAgICAgfSwgKGVycm9yKSA9PiB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3Ioe2Vycm9yfSk7XG4gICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICAgICAgfSk7XG5cbiAgICB0aGlzLnJlZmVyZW5jZVNlcnZpY2VcbiAgICAgIC5nZXRRdWVyaWVzKGl0ZW0pXG4gICAgICAuc3Vic2NyaWJlKHF1ZXJpZXMgPT4ge1xuICAgICAgICB0aGlzLnF1ZXJpZXMgPSBxdWVyaWVzO1xuICAgICAgICBjb25zdCBzdXBlclF1ZXJ5ID0gdGhpcy5jcmVhdGVTdXBlclF1ZXJ5RnJvbVF1ZXJpZXModGhpcy5xdWVyaWVzKTtcbiAgICAgICAgdGhpcy5zdXBlclF1ZXJ5UGFyYW1zID0geydxdWVyeSc6IGVuY29kZVVSSUNvbXBvbmVudChKU09OLnN0cmluZ2lmeShzdXBlclF1ZXJ5KSksICdzaWxlbnQnOiB0cnVlfTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVTdXBlclF1ZXJ5RnJvbVF1ZXJpZXMocXVlcmllcykge1xuICAgIGxldCBzdXBlclF1ZXJ5ID0ge1xuICAgICAgdGVybTogJycsXG4gICAgICBvcHRpb25zOiB7XG4gICAgICAgIGV4cGVydG1vZGU6IHRydWVcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgcXVlcmllcy5vdXRSZWZlcmVuY2VRdWVyaWVzLmZvckVhY2gocXVlcnkgPT4ge1xuICAgICAgaWYgKHF1ZXJ5LmZpbHRlcnMpIHtcbiAgICAgICAgT2JqZWN0LmtleXMocXVlcnkuZmlsdGVycylcbiAgICAgICAgICAuZm9yRWFjaChmaWx0ZXJOYW1lID0+IHN1cGVyUXVlcnkudGVybSArPSB0aGlzLmNyZWF0ZVN1cGVyUXVlcnlUZXJtUGFydChxdWVyeSwgZmlsdGVyTmFtZSkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc3VwZXJRdWVyeS50ZXJtICs9ICcoJyArIHF1ZXJ5LnRlcm0gKyAnKScgKyAnIE9SICc7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBxdWVyaWVzLmluUmVmZXJlbmNlUXVlcmllcy5mb3JFYWNoKChxdWVyeSkgPT4ge1xuICAgICAgaWYgKHF1ZXJ5LmZpbHRlcnMpIHtcbiAgICAgICAgT2JqZWN0LmtleXMocXVlcnkuZmlsdGVycylcbiAgICAgICAgICAuZm9yRWFjaChmaWx0ZXJOYW1lID0+IHN1cGVyUXVlcnkudGVybSArPSB0aGlzLmNyZWF0ZVN1cGVyUXVlcnlUZXJtUGFydChxdWVyeSwgZmlsdGVyTmFtZSkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc3VwZXJRdWVyeS50ZXJtICs9IHF1ZXJ5LnRlcm07XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBzdXBlclF1ZXJ5LnRlcm0gPSBzdXBlclF1ZXJ5LnRlcm0ucmVwbGFjZShuZXcgUmVnRXhwKCcsJywgJ2cnKSwgJyAnKTsgLy8gcmVwbGFjZSBhbGwgJywnIHdpdGggJyAnXG4gICAgc3VwZXJRdWVyeS50ZXJtID0gc3VwZXJRdWVyeS50ZXJtLnJlcGxhY2UobmV3IFJlZ0V4cCgnIE9SICcgKyAnJCcpLCAnJyk7IC8vIHJlbW92ZSBsYXN0ICcgT1IgJ1xuXG4gICAgcmV0dXJuIHN1cGVyUXVlcnk7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZVN1cGVyUXVlcnlUZXJtUGFydChxdWVyeSwgZmlsdGVyTmFtZSkge1xuICAgIC8vIHJlc2VydmVkIGNoYXJhY3RlcnMgb2YgZWxhc3RpYyBzZWFyY2hcbiAgICAvLyB0b2RvOiBhZGQgJ3x8J1xuICAgIGNvbnN0IHJlc2VydmVkQ2hhcnMgPSBbJ1xcXFwnLCAnLycsICdcXCsnLCAnLScsICc9JywgJyYmJywgJz4nLCAnPCcsICchJywgJ1xcKCcsICdcXCknLCAnXFx7JywgJ1xcfScsICdcXFsnLCAnXFxdJywgJ1xcXicsICdcIicsICdcXH4nLCAnXFwqJywgJ1xcPycsICc6J107XG5cbiAgICBjb25zdCBmaWx0ZXIgPSBxdWVyeS5maWx0ZXJzW2ZpbHRlck5hbWVdO1xuICAgIGxldCB2YWx1ZSA9ICcnICsgZmlsdGVyLnYxICsgJyc7XG4gICAgcmVzZXJ2ZWRDaGFycy5mb3JFYWNoKGNoYXIgPT4ge1xuICAgICAgaWYgKHZhbHVlLmluZGV4T2YoY2hhcikgPiAtMSkge1xuICAgICAgICB2YWx1ZSA9IHZhbHVlLnJlcGxhY2UobmV3IFJlZ0V4cCgnXFxcXCcgKyBjaGFyLCAnZycpLCAnXFxcXCcgKyBjaGFyKTsgLy8gZXNjYXBlcyBhbGwgcmVzZXJ2ZWQgY2hhcmFjdGVyc1xuICAgICAgfVxuICAgIH0pO1xuICAgIGxldCB0eXBlcyA9IHRoaXMuZ2V0U3ViVHlwZXMocXVlcnkudHlwZXNbMF0pO1xuICAgIHR5cGVzLnB1c2gocXVlcnkudHlwZXNbMF0pO1xuICAgIGxldCBpbmRleE5hbWUgPSB0aGlzLmdldEluZGV4TmFtZUJ5UU5hbWUoZmlsdGVyTmFtZSk7XG4gICAgaWYgKCFpbmRleE5hbWUpIHtcbiAgICAgIGluZGV4TmFtZSA9ICdzdHJfJyArIGZpbHRlck5hbWUucmVwbGFjZSgnLicsICdfJyk7XG4gICAgfVxuICAgIHJldHVybiAnKCcgKyBpbmRleE5hbWUgKyAnOignICsgdmFsdWUgKyAnKSBBTkQga2V5X3R5cGU6KCcgKyB0eXBlcyArICcpKSBPUiAnO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRJbmRleE5hbWVCeVFOYW1lKHFuYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IHR5cGVzID0gdGhpcy5zeXN0ZW1TZXJ2aWNlLmdldE9iamVjdFR5cGVzKCk7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0eXBlcy5sZW5ndGg7IGkrKykge1xuICAgICAgY29uc3QgZWxlbWVudCA9IHR5cGVzW2ldLmVsZW1lbnRzLmZpbmQoZWwgPT4gZWwucW5hbWUgPT09IHFuYW1lKTtcbiAgICAgIGlmIChlbGVtZW50KSB7XG4gICAgICAgIHJldHVybiBlbGVtZW50LmluZGV4bmFtZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBwcml2YXRlIGdldFN1YlR5cGVzKHR5cGVOYW1lKSB7XG4gICAgbGV0IHR5cGVzID0gdGhpcy5zeXN0ZW1TZXJ2aWNlLmdldE9iamVjdFR5cGVzKCk7XG4gICAgbGV0IHN1YlR5cGVzID0gW107XG4gICAgdHlwZXMuZm9yRWFjaChvYmplY3RUeXBlID0+IHtcbiAgICAgIGNvbnN0IHZhbGlkYXRvciA9ICEhb2JqZWN0VHlwZS5zdXBlcnR5cGVzLmZpbmQoKHQ6IGFueSkgPT4gdC5uYW1lID09PSB0eXBlTmFtZSk7XG4gICAgICBpZiAodmFsaWRhdG9yKSB7XG4gICAgICAgIHN1YlR5cGVzLnB1c2gob2JqZWN0VHlwZS5xbmFtZSk7XG4gICAgICB9XG4gICAgfVxuICAgICk7XG4gICAgcmV0dXJuIHN1YlR5cGVzO1xuICB9XG5cbiAgbmF2aWdhdGVUb1JlZmVyZW5jZShldmVudCwgZW50cnkpIHtcbiAgICBjb25zdCB1cmwgPSB3aW5kb3cubG9jYXRpb24uaHJlZi5zcGxpdCgvb2JqZWN0fHJlc3VsdHxmYXZvcml0ZXN8aW5ib3h8cHJvY2Vzc3xub3RpZmljYXRpb25zfHJlY3ljbGViaW4vKVswXSArICdvYmplY3QvJyArIGVudHJ5Py5pZDtcbiAgICB3aW5kb3cub3Blbih1cmwsIChldmVudCAmJiBldmVudD8uY3RybEtleSkgPyAnX2JsYW5rJyA6ICdfc2VsZicpO1xuICB9XG5cbiAgZ2V0U2VhcmNoTGluayhlbnRyeSkge1xuICAgIGNvbnN0IHF1ZXJ5ID0ge1xuICAgICAgZmlsdGVyczoge30sXG4gICAgICB0eXBlczogW3RoaXMuc2hvd0luUmVmZXJlbmNlcyA/IGVudHJ5LnR5cGUgOiBlbnRyeS5vYmplY3RUeXBlPy5xbmFtZV0sXG4gICAgICBvcHRpb25zOiB7XG4gICAgICAgIGV4cGVydG1vZGU6IGZhbHNlXG4gICAgICB9LFxuICAgICAgdGVybTogJydcbiAgICB9XG4gICAgaWYgKHRoaXMuc2hvd0luUmVmZXJlbmNlcykge1xuICAgICAgZW50cnkuZm9sZGVyLmZvckVhY2goZW50cnkyTGF5ZXIgPT4ge1xuICAgICAgICBxdWVyeS5maWx0ZXJzW2VudHJ5MkxheWVyLnJlZmVyZW5jZWZpZWxkXSA9IHtcbiAgICAgICAgICBvOiAnaW4nLFxuICAgICAgICAgIHYxOiBbdGhpcy5pdGVtLmlkXVxuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgcXVlcnkub3B0aW9ucy5leHBlcnRtb2RlID0gdHJ1ZTtcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZW50cnkuZm9sZGVyLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIHF1ZXJ5LnRlcm0gKz0gJ19pZDonICsgZW50cnkuZm9sZGVyW2ldLmlkO1xuICAgICAgICBpZiAoaSAhPT0gZW50cnkuZm9sZGVyLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICBxdWVyeS50ZXJtICs9ICcgfHwgJztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBgcmVzdWx0P3F1ZXJ5PSR7ZW5jb2RlVVJJQ29tcG9uZW50KEpTT04uc3RyaW5naWZ5KHF1ZXJ5KSl9YFxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZW8tcmVmZXJlbmNlc1wiPlxuICA8ZGl2IGNsYXNzPVwib2JqZWN0LW5vdC1mb3VuZFwiICpuZ0lmPVwiIWluUmVmZXJlbmNlcz8ubGVuZ3RoICYmICFvdXRSZWZlcmVuY2VzPy5sZW5ndGg7IGVsc2UgcmVmQ29udGFpbmVyXCI+XG4gICAgPGRpdj57eydlby5yZWZlcmVuY2VzLm9iamVjdC5ub3Rmb3VuZCcgfCB0cmFuc2xhdGV9fTwvZGl2PlxuICA8L2Rpdj5cblxuICA8bmctdGVtcGxhdGUgI3JlZkNvbnRhaW5lcj5cbiAgICA8ZGl2IGNsYXNzPVwiZm9ybS1idXR0b25zXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiZ3JpZGxhYmVsc1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJncmlkbGFiZWxcIiBbbmdDbGFzc109XCJ7J2FjdGl2ZSc6IHNob3dJblJlZmVyZW5jZXN9XCIgKGNsaWNrKT1cInN3aXRjaExpc3RWaXNpYmlsaXR5VG8oJ2luJylcIlxuICAgICAgICAgICAgdGl0bGU9XCJ7eydlby5yZWZlcmVuY2VzLnRvLmxhYmVsJyB8IHRyYW5zbGF0ZX19XCI+XG4gICAgICAgICAgICAgIDxzcGFuPnt7J2VvLnJlZmVyZW5jZXMudG8ubGFiZWwnIHwgdHJhbnNsYXRlfX08L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImdyaWRsYWJlbFwiIFtuZ0NsYXNzXT1cInsnYWN0aXZlJzogc2hvd091dFJlZmVyZW5jZXN9XCIgKGNsaWNrKT1cInN3aXRjaExpc3RWaXNpYmlsaXR5VG8oJ291dCcpXCJcbiAgICAgICAgICAgIHRpdGxlPVwie3snZW8ucmVmZXJlbmNlcy5mcm9tLmxhYmVsJyB8IHRyYW5zbGF0ZX19XCI+XG4gICAgICAgICAgICAgIDxzcGFuPnt7J2VvLnJlZmVyZW5jZXMuZnJvbS5sYWJlbCcgfCB0cmFuc2xhdGV9fTwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGEgY2xhc3M9XCJyZXN1bHQtbGlzdC1saW5rXCIgW3JvdXRlckxpbmtdPVwiJy9yZXN1bHQnXCIgW3F1ZXJ5UGFyYW1zXT1cInN1cGVyUXVlcnlQYXJhbXNcIj5cbiAgICAgICAgPGVvLWljb24gY2xhc3M9XCJpY29uXCIgW2ljb25TcmNdPVwiJ2Fzc2V0cy9fZGVmYXVsdC9zdmcvaWNfb3Blbl90YWIuc3ZnJ1wiIFtpY29uVGl0bGVdPVwiKCdlby5yZWZlcmVuY2VzLm9wZW4ucmVzdWx0bGlzdCcgfCB0cmFuc2xhdGUpXCI+PC9lby1pY29uPlxuICAgICAgPC9hPlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cImVvLXJlZmVyZW5jZXMtbGlzdHNcIj5cblxuICAgICAgPCEtLSBsaXN0IG9mIGluUmVmZXJlbmNlcyAtLT5cbiAgICAgIDxkaXYgY2xhc3M9XCJyZXN1bHRsaXN0LWNvbnRhaW5lclwiIFtuZ0NsYXNzXT1cInsnaGlkZGVuJzogIXNob3dJblJlZmVyZW5jZXN9XCI+XG4gICAgICAgIEBpZiAobG9hZGluZykge1xuICAgICAgICAgIDxtYWluIGNsYXNzPVwibG9hZGVyLW92ZXJsYXlfX21hc2tcIj5cbiAgICAgICAgICAgIDxlby1sb2FkaW5nLXNwaW5uZXIgW3NpemVdPVwiJ2xhcmdlJ1wiPjwvZW8tbG9hZGluZy1zcGlubmVyPlxuICAgICAgICAgIDwvbWFpbj5cbiAgICAgICAgfSBAZWxzZSBpZiAoaW5SZWZlcmVuY2VzPy5sZW5ndGgpIHtcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicmVmZXJlbmNlTGlzdFwiPlxuICAgICAgICAgICAgQGZvciAoZW50cnkxTGF5ZXIgb2YgaW5SZWZlcmVuY2VzOyB0cmFjayBlbnRyeTFMYXllcikge1xuICAgICAgICAgICAgICA8ZW8tc2ltcGxlLWFjY29yZGlvblxuICAgICAgICAgICAgICAgIFtoZWFkZXJdPVwiZW50cnkxTGF5ZXIudGl0bGVcIlxuICAgICAgICAgICAgICAgIFtpY29uT2JqZWN0VHlwZV09XCJnZXRPYmplY3RUeXBlKGVudHJ5MUxheWVyLnR5cGUpXCJcbiAgICAgICAgICAgICAgICBbaXRlbUFtb3VudF09XCJlbnRyeTFMYXllci5jb3VudFwiXG4gICAgICAgICAgICAgICAgW3Jlc3VsdExpc3RMaW5rXT1cImdldFNlYXJjaExpbmsoZW50cnkxTGF5ZXIpXCI+XG4gICAgICAgICAgICAgICAgQGZvciAoZW50cnkyTGF5ZXIgb2YgZW50cnkxTGF5ZXIuZm9sZGVyOyB0cmFjayBlbnRyeTJMYXllcikge1xuICAgICAgICAgICAgICAgICAgQGZvciAoZW50cnkzTGF5ZXIgb2YgZW50cnkyTGF5ZXIuZm9sZGVyOyB0cmFjayBlbnRyeTNMYXllcikge1xuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGVudFwiIChjbGljayk9XCJuYXZpZ2F0ZVRvUmVmZXJlbmNlKCRldmVudCwgZW50cnkzTGF5ZXIpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgtcm93XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGl0bGVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAge3tlbnRyeTNMYXllcj8udGl0bGV9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRlc2NyaXB0aW9uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7e2VudHJ5M0xheWVyPy5kZXNjcmlwdGlvbn19XG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJlbW90ZS1lbGVtZW50XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7eydlby5yZWZlcmVuY2VzLmZpZWxkLmxhYmVsJyB8IHRyYW5zbGF0ZX19IHt7ZW50cnkyTGF5ZXIudGl0bGV9fVxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIDwvZW8tc2ltcGxlLWFjY29yZGlvbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm5vdGZvdW5kXCI+e3snZW8ucmVmZXJlbmNlcy5vYmplY3Qubm90Zm91bmQnIHwgdHJhbnNsYXRlfX08L2Rpdj5cbiAgICAgICAgfVxuICAgICAgPC9kaXY+XG5cbiAgICAgIDwhLS0gbGlzdCBvZiBvdXRSZWZlcmVuY2VzIC0tPlxuICAgICAgPGRpdiBjbGFzcz1cInJlc3VsdGxpc3QtY29udGFpbmVyXCIgW25nQ2xhc3NdPVwieydoaWRkZW4nOiAhc2hvd091dFJlZmVyZW5jZXN9XCI+XG4gICAgICAgIEBpZiAobG9hZGluZykge1xuICAgICAgICAgIDxtYWluIGNsYXNzPVwibG9hZGVyLW92ZXJsYXlfX21hc2tcIj5cbiAgICAgICAgICAgIDxlby1sb2FkaW5nLXNwaW5uZXIgW3NpemVdPVwiJ2xhcmdlJ1wiPjwvZW8tbG9hZGluZy1zcGlubmVyPlxuICAgICAgICAgIDwvbWFpbj5cbiAgICAgICAgfSBAZWxzZSBpZiAob3V0UmVmZXJlbmNlcz8ubGVuZ3RoKSB7XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJlZmVyZW5jZUxpc3RcIj5cbiAgICAgICAgICAgIEBmb3IgKGVudHJ5MUxheWVyIG9mIG91dFJlZmVyZW5jZXM7IHRyYWNrIGVudHJ5MUxheWVyKSB7XG4gICAgICAgICAgICAgIDxlby1zaW1wbGUtYWNjb3JkaW9uXG4gICAgICAgICAgICAgICAgW2hlYWRlcl09XCJlbnRyeTFMYXllci50aXRsZVwiXG4gICAgICAgICAgICAgICAgW2ljb25PYmplY3RUeXBlXT1cImVudHJ5MUxheWVyLm9iamVjdFR5cGVcIlxuICAgICAgICAgICAgICAgIFtpdGVtQW1vdW50XT1cImVudHJ5MUxheWVyLmZvbGRlci5sZW5ndGhcIlxuICAgICAgICAgICAgICAgIFtyZXN1bHRMaXN0TGlua109XCJnZXRTZWFyY2hMaW5rKGVudHJ5MUxheWVyKVwiPlxuICAgICAgICAgICAgICAgIEBmb3IgKGVudHJ5MkxheWVyIG9mIGVudHJ5MUxheWVyLmZvbGRlcjsgdHJhY2sgZW50cnkyTGF5ZXIpIHtcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb250ZW50XCIgKGNsaWNrKT1cIm5hdmlnYXRlVG9SZWZlcmVuY2UoJGV2ZW50LCBlbnRyeTJMYXllcilcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgtcm93XCI+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRpdGxlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7e2VudHJ5MkxheWVyPy50aXRsZX19XG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGVzY3JpcHRpb25cIj5cbiAgICAgICAgICAgICAgICAgICAgICB7e2VudHJ5MkxheWVyPy5kZXNjcmlwdGlvbn19XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmVtb3RlLWVsZW1lbnRcIj5cbiAgICAgICAgICAgICAgICAgICAgICB7eydlby5yZWZlcmVuY2VzLmZpZWxkLmxhYmVsJyB8IHRyYW5zbGF0ZX19IHt7ZW50cnkyTGF5ZXIuZmllbGRMYWJlbH19XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA8L2VvLXNpbXBsZS1hY2NvcmRpb24+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgIDxkaXYgY2xhc3M9XCJub3Rmb3VuZFwiPnt7J2VvLnJlZmVyZW5jZXMub2JqZWN0Lm5vdGZvdW5kJyB8IHRyYW5zbGF0ZX19PC9kaXY+XG4gICAgICAgIH1cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L25nLXRlbXBsYXRlPlxuPC9kaXY+XG4iXX0=
|
|
179
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LWxpbmtzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvZW8tZnJhbWV3b3JrL29iamVjdC1kZXRhaWxzL29iamVjdC1saW5rcy9vYmplY3QtbGlua3MuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvb2JqZWN0LWRldGFpbHMvb2JqZWN0LWxpbmtzL29iamVjdC1saW5rcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLEtBQUssRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUcvQyxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sTUFBTSxDQUFDOzs7Ozs7Ozs7OztBQVE5QixNQUFNLE9BQU8sb0JBQW9CO0lBYS9CLElBQ0ksU0FBUyxDQUFDLFNBQW9CO1FBQ2hDLElBQUksU0FBUyxFQUFFLENBQUM7WUFDZCxJQUFJLENBQUMsSUFBSSxHQUFHLFNBQVMsQ0FBQztZQUN0QixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3ZCLENBQUM7SUFDSCxDQUFDO0lBRUQsWUFBb0IsZ0JBQWtDLEVBQzVDLEtBQXNCLEVBQ3RCLGFBQTRCO1FBRmxCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDNUMsVUFBSyxHQUFMLEtBQUssQ0FBaUI7UUFDdEIsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFwQnRDLGlCQUFZLEdBQUcsRUFBRSxDQUFDO1FBQ2xCLGtCQUFhLEdBQUcsRUFBRSxDQUFDO1FBRW5CLHFCQUFnQixHQUFHLEVBQUUsQ0FBQztRQUV0QixxQkFBZ0IsR0FBRyxJQUFJLENBQUM7UUFDeEIsc0JBQWlCLEdBQUcsS0FBSyxDQUFDO1FBRTFCLFlBQU8sR0FBRyxLQUFLLENBQUM7SUFhaEIsQ0FBQztJQUVELHNCQUFzQixDQUFDLElB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QzdDLEtBQUssQ0FBQyxJQUFJLElBQUksTUFBTSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUMxQyxJQUFJLENBQUMsS0FBSyxLQUFLLENBQUMsTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztvQkFDbEMsS0FBSyxDQUFDLElBQUksSUFBSSxNQUFNLENBQUM7Z0JBQ3ZCLENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQztRQUVELE9BQU8sZ0JBQWdCLGtCQUFrQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQ3JFLENBQUM7OEdBL0tVLG9CQUFvQjtrR0FBcEIsb0JBQW9CLDJGQ1hqQyx3akpBc0dBOzsyRkQzRmEsb0JBQW9CO2tCQUxoQyxTQUFTOytCQUNFLGlCQUFpQjsrSUFrQnZCLFNBQVM7c0JBRFosS0FBSzt1QkFBQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIElucHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7UmVmZXJlbmNlU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vZW8tZnJhbWV3b3JrLWNvcmUvcmVmZXJlbmNlcy9yZWZlcmVuY2Uuc2VydmljZSc7XG5pbXBvcnQge0Rtc09iamVjdCwgQXBwQ2FjaGVTZXJ2aWNlfSBmcm9tICdAZW8tc2RrL2NvcmUnO1xuaW1wb3J0IHtmb3JrSm9pbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1N5c3RlbVNlcnZpY2V9IGZyb20gJ0Blby1zZGsvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2VvLW9iamVjdC1saW5rcycsXG4gIHRlbXBsYXRlVXJsOiAnLi9vYmplY3QtbGlua3MuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9vYmplY3QtbGlua3MuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBPYmplY3RMaW5rc0NvbXBvbmVudCB7XG5cbiAgaXRlbTogRG1zT2JqZWN0O1xuICBpblJlZmVyZW5jZXMgPSBbXTtcbiAgb3V0UmVmZXJlbmNlcyA9IFtdO1xuICBxdWVyaWVzO1xuICBzdXBlclF1ZXJ5UGFyYW1zID0ge307XG5cbiAgc2hvd0luUmVmZXJlbmNlcyA9IHRydWU7XG4gIHNob3dPdXRSZWZlcmVuY2VzID0gZmFsc2U7XG5cbiAgbG9hZGluZyA9IGZhbHNlO1xuXG4gIEBJbnB1dCgnZG1zT2JqZWN0JylcbiAgc2V0IGRtc09iamVjdChkbXNPYmplY3Q6IERtc09iamVjdCkge1xuICAgIGlmIChkbXNPYmplY3QpIHtcbiAgICAgIHRoaXMuaXRlbSA9IGRtc09iamVjdDtcbiAgICAgIHRoaXMuaW5pdChkbXNPYmplY3QpO1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVmZXJlbmNlU2VydmljZTogUmVmZXJlbmNlU2VydmljZSxcbiAgICBwcml2YXRlIGNhY2hlOiBBcHBDYWNoZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBzeXN0ZW1TZXJ2aWNlOiBTeXN0ZW1TZXJ2aWNlKSB7XG4gIH1cblxuICBzd2l0Y2hMaXN0VmlzaWJpbGl0eVRvKGxpc3Q6ICdpbicgfCAnb3V0Jykge1xuICAgIGlmIChsaXN0ID09PSAnaW4nKSB7XG4gICAgICB0aGlzLnNob3dJblJlZmVyZW5jZXMgPSB0cnVlO1xuICAgICAgdGhpcy5zaG93T3V0UmVmZXJlbmNlcyA9IGZhbHNlO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNob3dJblJlZmVyZW5jZXMgPSBmYWxzZTtcbiAgICAgIHRoaXMuc2hvd091dFJlZmVyZW5jZXMgPSB0cnVlO1xuICAgIH1cbiAgICB0aGlzLmNhY2hlLnNldEl0ZW0oJ3l1di5yZWZlcmVuY2UubGlzdC5zaG93LicgKyB0aGlzLml0ZW0udHlwZU5hbWUsIGxpc3QpO1xuICB9XG5cbiAgZ2V0T2JqZWN0VHlwZShuYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5zeXN0ZW1TZXJ2aWNlLmdldE9iamVjdFR5cGUobmFtZSk7XG4gIH1cblxuICBwcml2YXRlIGluaXQoaXRlbSkge1xuICAgIHRoaXMubG9hZGluZyA9IHRydWU7XG4gICAgdGhpcy5jYWNoZS5nZXRJdGVtKCd5dXYucmVmZXJlbmNlLmxpc3Quc2hvdy4nICsgaXRlbS50eXBlTmFtZSkuc3Vic2NyaWJlKHJlcyA9PiB0aGlzLnN3aXRjaExpc3RWaXNpYmlsaXR5VG8ocmVzKSk7XG4gICAgY29uc3Qgb2JzID0gW1xuICAgICAgdGhpcy5yZWZlcmVuY2VTZXJ2aWNlLmdldEluUmVmZXJlbmNlcyhpdGVtKSxcbiAgICAgIHRoaXMucmVmZXJlbmNlU2VydmljZS5nZXRPdXRSZWZlcmVuY2VzKGl0ZW0pXG4gICAgXTtcbiAgICBmb3JrSm9pbihvYnMpXG4gICAgICAuc3Vic2NyaWJlKChyZXN1bHRzOiBhbnlbXVtdKSA9PiB7XG4gICAgICAgIFt0aGlzLmluUmVmZXJlbmNlcywgdGhpcy5vdXRSZWZlcmVuY2VzXSA9IHJlc3VsdHM7XG4gICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICAgICAgfSwgKGVycm9yKSA9PiB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3Ioe2Vycm9yfSk7XG4gICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICAgICAgfSk7XG5cbiAgICB0aGlzLnJlZmVyZW5jZVNlcnZpY2VcbiAgICAgIC5nZXRRdWVyaWVzKGl0ZW0pXG4gICAgICAuc3Vic2NyaWJlKHF1ZXJpZXMgPT4ge1xuICAgICAgICB0aGlzLnF1ZXJpZXMgPSBxdWVyaWVzO1xuICAgICAgICBjb25zdCBzdXBlclF1ZXJ5ID0gdGhpcy5jcmVhdGVTdXBlclF1ZXJ5RnJvbVF1ZXJpZXModGhpcy5xdWVyaWVzKTtcbiAgICAgICAgdGhpcy5zdXBlclF1ZXJ5UGFyYW1zID0geydxdWVyeSc6IGVuY29kZVVSSUNvbXBvbmVudChKU09OLnN0cmluZ2lmeShzdXBlclF1ZXJ5KSksICdzaWxlbnQnOiB0cnVlfTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVTdXBlclF1ZXJ5RnJvbVF1ZXJpZXMocXVlcmllcykge1xuICAgIGxldCBzdXBlclF1ZXJ5ID0ge1xuICAgICAgdGVybTogJycsXG4gICAgICBvcHRpb25zOiB7XG4gICAgICAgIGV4cGVydG1vZGU6IHRydWVcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgcXVlcmllcy5vdXRSZWZlcmVuY2VRdWVyaWVzLmZvckVhY2gocXVlcnkgPT4ge1xuICAgICAgaWYgKHF1ZXJ5LmZpbHRlcnMpIHtcbiAgICAgICAgT2JqZWN0LmtleXMocXVlcnkuZmlsdGVycylcbiAgICAgICAgICAuZm9yRWFjaChmaWx0ZXJOYW1lID0+IHN1cGVyUXVlcnkudGVybSArPSB0aGlzLmNyZWF0ZVN1cGVyUXVlcnlUZXJtUGFydChxdWVyeSwgZmlsdGVyTmFtZSkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc3VwZXJRdWVyeS50ZXJtICs9ICcoJyArIHF1ZXJ5LnRlcm0gKyAnKScgKyAnIE9SICc7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBxdWVyaWVzLmluUmVmZXJlbmNlUXVlcmllcy5mb3JFYWNoKChxdWVyeSkgPT4ge1xuICAgICAgaWYgKHF1ZXJ5LmZpbHRlcnMpIHtcbiAgICAgICAgT2JqZWN0LmtleXMocXVlcnkuZmlsdGVycylcbiAgICAgICAgICAuZm9yRWFjaChmaWx0ZXJOYW1lID0+IHN1cGVyUXVlcnkudGVybSArPSB0aGlzLmNyZWF0ZVN1cGVyUXVlcnlUZXJtUGFydChxdWVyeSwgZmlsdGVyTmFtZSkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc3VwZXJRdWVyeS50ZXJtICs9IHF1ZXJ5LnRlcm07XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBzdXBlclF1ZXJ5LnRlcm0gPSBzdXBlclF1ZXJ5LnRlcm0ucmVwbGFjZShuZXcgUmVnRXhwKCcsJywgJ2cnKSwgJyAnKTsgLy8gcmVwbGFjZSBhbGwgJywnIHdpdGggJyAnXG4gICAgc3VwZXJRdWVyeS50ZXJtID0gc3VwZXJRdWVyeS50ZXJtLnJlcGxhY2UobmV3IFJlZ0V4cCgnIE9SICcgKyAnJCcpLCAnJyk7IC8vIHJlbW92ZSBsYXN0ICcgT1IgJ1xuXG4gICAgcmV0dXJuIHN1cGVyUXVlcnk7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZVN1cGVyUXVlcnlUZXJtUGFydChxdWVyeSwgZmlsdGVyTmFtZSkge1xuICAgIC8vIHJlc2VydmVkIGNoYXJhY3RlcnMgb2YgZWxhc3RpYyBzZWFyY2hcbiAgICAvLyB0b2RvOiBhZGQgJ3x8J1xuICAgIGNvbnN0IHJlc2VydmVkQ2hhcnMgPSBbJ1xcXFwnLCAnLycsICdcXCsnLCAnLScsICc9JywgJyYmJywgJz4nLCAnPCcsICchJywgJ1xcKCcsICdcXCknLCAnXFx7JywgJ1xcfScsICdcXFsnLCAnXFxdJywgJ1xcXicsICdcIicsICdcXH4nLCAnXFwqJywgJ1xcPycsICc6J107XG5cbiAgICBjb25zdCBmaWx0ZXIgPSBxdWVyeS5maWx0ZXJzW2ZpbHRlck5hbWVdO1xuICAgIGxldCB2YWx1ZSA9ICcnICsgZmlsdGVyLnYxICsgJyc7XG4gICAgcmVzZXJ2ZWRDaGFycy5mb3JFYWNoKGNoYXIgPT4ge1xuICAgICAgaWYgKHZhbHVlLmluZGV4T2YoY2hhcikgPiAtMSkge1xuICAgICAgICB2YWx1ZSA9IHZhbHVlLnJlcGxhY2UobmV3IFJlZ0V4cCgnXFxcXCcgKyBjaGFyLCAnZycpLCAnXFxcXCcgKyBjaGFyKTsgLy8gZXNjYXBlcyBhbGwgcmVzZXJ2ZWQgY2hhcmFjdGVyc1xuICAgICAgfVxuICAgIH0pO1xuICAgIGxldCB0eXBlcyA9IHRoaXMuZ2V0U3ViVHlwZXMocXVlcnkudHlwZXNbMF0pO1xuICAgIHR5cGVzLnB1c2gocXVlcnkudHlwZXNbMF0pO1xuICAgIGxldCBpbmRleE5hbWUgPSB0aGlzLmdldEluZGV4TmFtZUJ5UU5hbWUoZmlsdGVyTmFtZSk7XG4gICAgaWYgKCFpbmRleE5hbWUpIHtcbiAgICAgIGluZGV4TmFtZSA9ICdzdHJfJyArIGZpbHRlck5hbWUucmVwbGFjZSgnLicsICdfJyk7XG4gICAgfVxuICAgIHJldHVybiAnKCcgKyBpbmRleE5hbWUgKyAnOignICsgdmFsdWUgKyAnKSBBTkQga2V5X3R5cGU6KCcgKyB0eXBlcyArICcpKSBPUiAnO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRJbmRleE5hbWVCeVFOYW1lKHFuYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IHR5cGVzID0gdGhpcy5zeXN0ZW1TZXJ2aWNlLmdldE9iamVjdFR5cGVzKCk7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0eXBlcy5sZW5ndGg7IGkrKykge1xuICAgICAgY29uc3QgZWxlbWVudCA9IHR5cGVzW2ldLmVsZW1lbnRzLmZpbmQoZWwgPT4gZWwucW5hbWUgPT09IHFuYW1lKTtcbiAgICAgIGlmIChlbGVtZW50KSB7XG4gICAgICAgIHJldHVybiBlbGVtZW50LmluZGV4bmFtZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBwcml2YXRlIGdldFN1YlR5cGVzKHR5cGVOYW1lKSB7XG4gICAgbGV0IHR5cGVzID0gdGhpcy5zeXN0ZW1TZXJ2aWNlLmdldE9iamVjdFR5cGVzKCk7XG4gICAgbGV0IHN1YlR5cGVzID0gW107XG4gICAgdHlwZXMuZm9yRWFjaChvYmplY3RUeXBlID0+IHtcbiAgICAgIGNvbnN0IHZhbGlkYXRvciA9ICEhb2JqZWN0VHlwZS5zdXBlcnR5cGVzLmZpbmQoKHQ6IGFueSkgPT4gdC5uYW1lID09PSB0eXBlTmFtZSk7XG4gICAgICBpZiAodmFsaWRhdG9yKSB7XG4gICAgICAgIHN1YlR5cGVzLnB1c2gob2JqZWN0VHlwZS5xbmFtZSk7XG4gICAgICB9XG4gICAgfVxuICAgICk7XG4gICAgcmV0dXJuIHN1YlR5cGVzO1xuICB9XG5cbiAgbmF2aWdhdGVUb1JlZmVyZW5jZShldmVudCwgZW50cnkpIHtcbiAgICBjb25zdCB1cmwgPSB3aW5kb3cubG9jYXRpb24uaHJlZi5zcGxpdCgvb2JqZWN0fHJlc3VsdHxmYXZvcml0ZXN8aW5ib3h8cHJvY2Vzc3xub3RpZmljYXRpb25zfHJlY3ljbGViaW4vKVswXSArICdvYmplY3QvJyArIGVudHJ5Py5pZDtcbiAgICB3aW5kb3cub3Blbih1cmwsIChldmVudCAmJiBldmVudD8uY3RybEtleSkgPyAnX2JsYW5rJyA6ICdfc2VsZicpO1xuICB9XG5cbiAgZ2V0U2VhcmNoTGluayhlbnRyeSkge1xuICAgIGNvbnN0IHF1ZXJ5ID0ge1xuICAgICAgZmlsdGVyczoge30sXG4gICAgICB0eXBlczogW3RoaXMuc2hvd0luUmVmZXJlbmNlcyA/IGVudHJ5LnR5cGUgOiBlbnRyeS5vYmplY3RUeXBlPy5xbmFtZV0sXG4gICAgICBvcHRpb25zOiB7XG4gICAgICAgIGV4cGVydG1vZGU6IGZhbHNlXG4gICAgICB9LFxuICAgICAgdGVybTogJydcbiAgICB9O1xuICAgIGlmICh0aGlzLnNob3dJblJlZmVyZW5jZXMpIHtcbiAgICAgIGVudHJ5LmZvbGRlci5mb3JFYWNoKGVudHJ5MkxheWVyID0+IHtcbiAgICAgICAgcXVlcnkuZmlsdGVyc1tlbnRyeTJMYXllci5yZWZlcmVuY2VmaWVsZF0gPSB7XG4gICAgICAgICAgbzogJ2luJyxcbiAgICAgICAgICB2MTogQXJyYXkuaXNBcnJheShlbnRyeTJMYXllci5yZWZlcmVuY2V2YWx1ZSkgPyBlbnRyeTJMYXllci5yZWZlcmVuY2V2YWx1ZSA6IFtlbnRyeTJMYXllci5yZWZlcmVuY2V2YWx1ZV1cbiAgICAgICAgfTtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBxdWVyeS5vcHRpb25zLmV4cGVydG1vZGUgPSB0cnVlO1xuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBlbnRyeS5mb2xkZXIubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgcXVlcnkudGVybSArPSAnX2lkOicgKyBlbnRyeS5mb2xkZXJbaV0uaWQ7XG4gICAgICAgIGlmIChpICE9PSBlbnRyeS5mb2xkZXIubGVuZ3RoIC0gMSkge1xuICAgICAgICAgIHF1ZXJ5LnRlcm0gKz0gJyB8fCAnO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGByZXN1bHQ/cXVlcnk9JHtlbmNvZGVVUklDb21wb25lbnQoSlNPTi5zdHJpbmdpZnkocXVlcnkpKX1gO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZW8tcmVmZXJlbmNlc1wiPlxuICA8ZGl2IGNsYXNzPVwib2JqZWN0LW5vdC1mb3VuZFwiICpuZ0lmPVwiIWluUmVmZXJlbmNlcz8ubGVuZ3RoICYmICFvdXRSZWZlcmVuY2VzPy5sZW5ndGg7IGVsc2UgcmVmQ29udGFpbmVyXCI+XG4gICAgPGRpdj57eydlby5yZWZlcmVuY2VzLm9iamVjdC5ub3Rmb3VuZCcgfCB0cmFuc2xhdGV9fTwvZGl2PlxuICA8L2Rpdj5cblxuICA8bmctdGVtcGxhdGUgI3JlZkNvbnRhaW5lcj5cbiAgICA8ZGl2IGNsYXNzPVwiZm9ybS1idXR0b25zXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiZ3JpZGxhYmVsc1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJncmlkbGFiZWxcIiBbbmdDbGFzc109XCJ7J2FjdGl2ZSc6IHNob3dJblJlZmVyZW5jZXN9XCIgKGNsaWNrKT1cInN3aXRjaExpc3RWaXNpYmlsaXR5VG8oJ2luJylcIlxuICAgICAgICAgICAgdGl0bGU9XCJ7eydlby5yZWZlcmVuY2VzLnRvLmxhYmVsJyB8IHRyYW5zbGF0ZX19XCI+XG4gICAgICAgICAgICAgIDxzcGFuPnt7J2VvLnJlZmVyZW5jZXMudG8ubGFiZWwnIHwgdHJhbnNsYXRlfX08L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImdyaWRsYWJlbFwiIFtuZ0NsYXNzXT1cInsnYWN0aXZlJzogc2hvd091dFJlZmVyZW5jZXN9XCIgKGNsaWNrKT1cInN3aXRjaExpc3RWaXNpYmlsaXR5VG8oJ291dCcpXCJcbiAgICAgICAgICAgIHRpdGxlPVwie3snZW8ucmVmZXJlbmNlcy5mcm9tLmxhYmVsJyB8IHRyYW5zbGF0ZX19XCI+XG4gICAgICAgICAgICAgIDxzcGFuPnt7J2VvLnJlZmVyZW5jZXMuZnJvbS5sYWJlbCcgfCB0cmFuc2xhdGV9fTwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGEgY2xhc3M9XCJyZXN1bHQtbGlzdC1saW5rXCIgW3JvdXRlckxpbmtdPVwiJy9yZXN1bHQnXCIgW3F1ZXJ5UGFyYW1zXT1cInN1cGVyUXVlcnlQYXJhbXNcIj5cbiAgICAgICAgPGVvLWljb24gY2xhc3M9XCJpY29uXCIgW2ljb25TcmNdPVwiJ2Fzc2V0cy9fZGVmYXVsdC9zdmcvaWNfb3Blbl90YWIuc3ZnJ1wiIFtpY29uVGl0bGVdPVwiKCdlby5yZWZlcmVuY2VzLm9wZW4ucmVzdWx0bGlzdCcgfCB0cmFuc2xhdGUpXCI+PC9lby1pY29uPlxuICAgICAgPC9hPlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cImVvLXJlZmVyZW5jZXMtbGlzdHNcIj5cblxuICAgICAgPCEtLSBsaXN0IG9mIGluUmVmZXJlbmNlcyAtLT5cbiAgICAgIDxkaXYgY2xhc3M9XCJyZXN1bHRsaXN0LWNvbnRhaW5lclwiIFtuZ0NsYXNzXT1cInsnaGlkZGVuJzogIXNob3dJblJlZmVyZW5jZXN9XCI+XG4gICAgICAgIEBpZiAobG9hZGluZykge1xuICAgICAgICAgIDxtYWluIGNsYXNzPVwibG9hZGVyLW92ZXJsYXlfX21hc2tcIj5cbiAgICAgICAgICAgIDxlby1sb2FkaW5nLXNwaW5uZXIgW3NpemVdPVwiJ2xhcmdlJ1wiPjwvZW8tbG9hZGluZy1zcGlubmVyPlxuICAgICAgICAgIDwvbWFpbj5cbiAgICAgICAgfSBAZWxzZSBpZiAoaW5SZWZlcmVuY2VzPy5sZW5ndGgpIHtcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicmVmZXJlbmNlTGlzdFwiPlxuICAgICAgICAgICAgQGZvciAoZW50cnkxTGF5ZXIgb2YgaW5SZWZlcmVuY2VzOyB0cmFjayBlbnRyeTFMYXllcikge1xuICAgICAgICAgICAgICA8ZW8tc2ltcGxlLWFjY29yZGlvblxuICAgICAgICAgICAgICAgIFtoZWFkZXJdPVwiZW50cnkxTGF5ZXIudGl0bGVcIlxuICAgICAgICAgICAgICAgIFtpY29uT2JqZWN0VHlwZV09XCJnZXRPYmplY3RUeXBlKGVudHJ5MUxheWVyLnR5cGUpXCJcbiAgICAgICAgICAgICAgICBbaXRlbUFtb3VudF09XCJlbnRyeTFMYXllci5jb3VudFwiXG4gICAgICAgICAgICAgICAgW3Jlc3VsdExpc3RMaW5rXT1cImdldFNlYXJjaExpbmsoZW50cnkxTGF5ZXIpXCI+XG4gICAgICAgICAgICAgICAgQGZvciAoZW50cnkyTGF5ZXIgb2YgZW50cnkxTGF5ZXIuZm9sZGVyOyB0cmFjayBlbnRyeTJMYXllcikge1xuICAgICAgICAgICAgICAgICAgQGZvciAoZW50cnkzTGF5ZXIgb2YgZW50cnkyTGF5ZXIuZm9sZGVyOyB0cmFjayBlbnRyeTNMYXllcikge1xuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGVudFwiIChjbGljayk9XCJuYXZpZ2F0ZVRvUmVmZXJlbmNlKCRldmVudCwgZW50cnkzTGF5ZXIpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgtcm93XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGl0bGVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAge3tlbnRyeTNMYXllcj8udGl0bGV9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRlc2NyaXB0aW9uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7e2VudHJ5M0xheWVyPy5kZXNjcmlwdGlvbn19XG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJlbW90ZS1lbGVtZW50XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7eydlby5yZWZlcmVuY2VzLmZpZWxkLmxhYmVsJyB8IHRyYW5zbGF0ZX19IHt7ZW50cnkyTGF5ZXIudGl0bGV9fVxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIDwvZW8tc2ltcGxlLWFjY29yZGlvbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm5vdGZvdW5kXCI+e3snZW8ucmVmZXJlbmNlcy5vYmplY3Qubm90Zm91bmQnIHwgdHJhbnNsYXRlfX08L2Rpdj5cbiAgICAgICAgfVxuICAgICAgPC9kaXY+XG5cbiAgICAgIDwhLS0gbGlzdCBvZiBvdXRSZWZlcmVuY2VzIC0tPlxuICAgICAgPGRpdiBjbGFzcz1cInJlc3VsdGxpc3QtY29udGFpbmVyXCIgW25nQ2xhc3NdPVwieydoaWRkZW4nOiAhc2hvd091dFJlZmVyZW5jZXN9XCI+XG4gICAgICAgIEBpZiAobG9hZGluZykge1xuICAgICAgICAgIDxtYWluIGNsYXNzPVwibG9hZGVyLW92ZXJsYXlfX21hc2tcIj5cbiAgICAgICAgICAgIDxlby1sb2FkaW5nLXNwaW5uZXIgW3NpemVdPVwiJ2xhcmdlJ1wiPjwvZW8tbG9hZGluZy1zcGlubmVyPlxuICAgICAgICAgIDwvbWFpbj5cbiAgICAgICAgfSBAZWxzZSBpZiAob3V0UmVmZXJlbmNlcz8ubGVuZ3RoKSB7XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJlZmVyZW5jZUxpc3RcIj5cbiAgICAgICAgICAgIEBmb3IgKGVudHJ5MUxheWVyIG9mIG91dFJlZmVyZW5jZXM7IHRyYWNrIGVudHJ5MUxheWVyKSB7XG4gICAgICAgICAgICAgIDxlby1zaW1wbGUtYWNjb3JkaW9uXG4gICAgICAgICAgICAgICAgW2hlYWRlcl09XCJlbnRyeTFMYXllci50aXRsZVwiXG4gICAgICAgICAgICAgICAgW2ljb25PYmplY3RUeXBlXT1cImVudHJ5MUxheWVyLm9iamVjdFR5cGVcIlxuICAgICAgICAgICAgICAgIFtpdGVtQW1vdW50XT1cImVudHJ5MUxheWVyLmZvbGRlci5sZW5ndGhcIlxuICAgICAgICAgICAgICAgIFtyZXN1bHRMaXN0TGlua109XCJnZXRTZWFyY2hMaW5rKGVudHJ5MUxheWVyKVwiPlxuICAgICAgICAgICAgICAgIEBmb3IgKGVudHJ5MkxheWVyIG9mIGVudHJ5MUxheWVyLmZvbGRlcjsgdHJhY2sgZW50cnkyTGF5ZXIpIHtcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb250ZW50XCIgKGNsaWNrKT1cIm5hdmlnYXRlVG9SZWZlcmVuY2UoJGV2ZW50LCBlbnRyeTJMYXllcilcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgtcm93XCI+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRpdGxlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7e2VudHJ5MkxheWVyPy50aXRsZX19XG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGVzY3JpcHRpb25cIj5cbiAgICAgICAgICAgICAgICAgICAgICB7e2VudHJ5MkxheWVyPy5kZXNjcmlwdGlvbn19XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmVtb3RlLWVsZW1lbnRcIj5cbiAgICAgICAgICAgICAgICAgICAgICB7eydlby5yZWZlcmVuY2VzLmZpZWxkLmxhYmVsJyB8IHRyYW5zbGF0ZX19IHt7ZW50cnkyTGF5ZXIuZmllbGRMYWJlbH19XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA8L2VvLXNpbXBsZS1hY2NvcmRpb24+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgIDxkaXYgY2xhc3M9XCJub3Rmb3VuZFwiPnt7J2VvLnJlZmVyZW5jZXMub2JqZWN0Lm5vdGZvdW5kJyB8IHRyYW5zbGF0ZX19PC9kaXY+XG4gICAgICAgIH1cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L25nLXRlbXBsYXRlPlxuPC9kaXY+XG4iXX0=
|