@onecx/angular-accelerator 5.25.0 → 5.26.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/angular-accelerator-primeng.module.mjs +5 -5
- package/esm2022/lib/angular-accelerator.module.mjs +5 -5
- package/esm2022/lib/components/column-group-selection/column-group-selection.component.mjs +4 -4
- package/esm2022/lib/components/custom-group-column-selector/custom-group-column-selector.component.mjs +4 -4
- package/esm2022/lib/components/data-layout-selection/data-layout-selection.component.mjs +4 -4
- package/esm2022/lib/components/data-list-grid/data-list-grid.component.mjs +4 -4
- package/esm2022/lib/components/data-list-grid-sorting/data-list-grid-sorting.component.mjs +4 -4
- package/esm2022/lib/components/data-loading-error/data-loading-error.component.mjs +4 -4
- package/esm2022/lib/components/data-table/data-table.component.mjs +4 -4
- package/esm2022/lib/components/data-view/data-view.component.mjs +4 -4
- package/esm2022/lib/components/diagram/diagram.component.mjs +4 -4
- package/esm2022/lib/components/filter-view/filter-view.component.mjs +4 -4
- package/esm2022/lib/components/group-by-count-diagram/group-by-count-diagram.component.mjs +4 -4
- package/esm2022/lib/components/interactive-data-view/interactive-data-view.component.mjs +4 -4
- package/esm2022/lib/components/page-header/page-header.component.mjs +4 -4
- package/esm2022/lib/components/search-header/search-header.component.mjs +4 -4
- package/esm2022/lib/directives/advanced.directive.mjs +4 -4
- package/esm2022/lib/directives/if-breakpoint.directive.mjs +4 -4
- package/esm2022/lib/directives/if-permission.directive.mjs +4 -4
- package/esm2022/lib/directives/src.directive.mjs +20 -14
- package/esm2022/lib/directives/tooltipOnOverflow.directive.mjs +4 -4
- package/esm2022/lib/pipes/dynamic.pipe.mjs +4 -4
- package/esm2022/lib/pipes/ocxtimeago.pipe.mjs +4 -4
- package/esm2022/lib/services/breadcrumb.service.mjs +4 -4
- package/esm2022/lib/services/translation-cache.service.mjs +4 -4
- package/esm2022/lib/utils/dateutils.mjs +4 -4
- package/fesm2022/onecx-angular-accelerator.mjs +96 -90
- package/fesm2022/onecx-angular-accelerator.mjs.map +1 -1
- package/package.json +5 -5
|
@@ -133,10 +133,10 @@ export class DiagramComponent {
|
|
|
133
133
|
activeDiagramType: event.value.layout,
|
|
134
134
|
});
|
|
135
135
|
}
|
|
136
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
137
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.
|
|
136
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: DiagramComponent, deps: [{ token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
137
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.12", type: DiagramComponent, selector: "ocx-diagram", inputs: { data: "data", sumKey: "sumKey", diagramType: "diagramType", supportedDiagramTypes: "supportedDiagramTypes" }, outputs: { dataSelected: "dataSelected", diagramTypeChanged: "diagramTypeChanged", componentStateChanged: "componentStateChanged" }, usesOnChanges: true, ngImport: i0, template: "<ng-container *ngIf=\"this.data\">\n <div class=\"flex justify-content-center pb-2\" *ngIf=\"shownDiagramTypes.length > 1\">\n <p-selectButton\n [options]=\"shownDiagramTypes\"\n [(ngModel)]=\"selectedDiagramType\"\n optionLabel=\"id\"\n (onChange)=\"onDiagramTypeChanged($event)\"\n name=\"diagram-type-select-button\"\n >\n <ng-template let-item pTemplate>\n <i\n [class]=\"item.icon\"\n [pTooltip]=\"item.tooltip || (item.tooltipKey | translate)\"\n tooltipPosition=\"top\"\n tooltipEvent=\"hover\"\n ></i>\n <label style=\"display: none\" id=\"{{item.id}}\"> {{item.label ? item.label : item.labelKey | translate}} </label>\n </ng-template>\n </p-selectButton>\n </div>\n <div class=\"w-full flex justify-content-center\">\n <p-chart\n id=\"diagram\"\n [type]=\"chartType\"\n [data]=\"chartData\"\n [responsive]=\"false\"\n [options]=\"chartOptions\"\n (onDataSelect)=\"dataClicked($event)\"\n [ariaLabel]=\"(data ? 'OCX_DIAGRAM.ARIA_LABEL' : 'OCX_DIAGRAM.EMPTY_ARIA_LABEL') | translate: {total: generateTotal(data), valueString: generateDiagramValueString(data)}\"\n ></p-chart>\n </div>\n <div class=\"w-full flex justify-content-center mt-2 sumKey\">\n <p class=\"text-md font-medium text-700\">\n <span name=\"sumLabel\"> {{ sumKey | translate }}</span> : <span name=\"amountOfData\">{{ amountOfData}}</span>\n </p>\n </div>\n</ng-container>\n\n<div *ngIf=\"!this.data\" class=\"w-full flex justify-content-center\">\n <p-message severity=\"info\" text=\"{{ 'OCX_DIAGRAM.NO_DATA' | translate }}\"></p-message>\n</div>\n", styles: ["::ng-deep .p-buttonset .p-button{min-width:auto}::ng-deep .p-buttonset{display:flex}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { kind: "directive", type: i4.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "component", type: i5.SelectButton, selector: "p-selectButton", inputs: ["options", "optionLabel", "optionValue", "optionDisabled", "unselectable", "tabindex", "multiple", "allowEmpty", "style", "styleClass", "ariaLabelledBy", "disabled", "dataKey", "autofocus"], outputs: ["onOptionClick", "onChange"] }, { kind: "component", type: i6.UIChart, selector: "p-chart", inputs: ["type", "plugins", "width", "height", "responsive", "ariaLabel", "ariaLabelledBy", "data", "options"], outputs: ["onDataSelect"] }, { kind: "component", type: i7.UIMessage, selector: "p-message", inputs: ["severity", "text", "escape", "style", "styleClass"] }, { kind: "directive", type: i8.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i8.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }] }); }
|
|
138
138
|
}
|
|
139
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
139
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: DiagramComponent, decorators: [{
|
|
140
140
|
type: Component,
|
|
141
141
|
args: [{ selector: 'ocx-diagram', template: "<ng-container *ngIf=\"this.data\">\n <div class=\"flex justify-content-center pb-2\" *ngIf=\"shownDiagramTypes.length > 1\">\n <p-selectButton\n [options]=\"shownDiagramTypes\"\n [(ngModel)]=\"selectedDiagramType\"\n optionLabel=\"id\"\n (onChange)=\"onDiagramTypeChanged($event)\"\n name=\"diagram-type-select-button\"\n >\n <ng-template let-item pTemplate>\n <i\n [class]=\"item.icon\"\n [pTooltip]=\"item.tooltip || (item.tooltipKey | translate)\"\n tooltipPosition=\"top\"\n tooltipEvent=\"hover\"\n ></i>\n <label style=\"display: none\" id=\"{{item.id}}\"> {{item.label ? item.label : item.labelKey | translate}} </label>\n </ng-template>\n </p-selectButton>\n </div>\n <div class=\"w-full flex justify-content-center\">\n <p-chart\n id=\"diagram\"\n [type]=\"chartType\"\n [data]=\"chartData\"\n [responsive]=\"false\"\n [options]=\"chartOptions\"\n (onDataSelect)=\"dataClicked($event)\"\n [ariaLabel]=\"(data ? 'OCX_DIAGRAM.ARIA_LABEL' : 'OCX_DIAGRAM.EMPTY_ARIA_LABEL') | translate: {total: generateTotal(data), valueString: generateDiagramValueString(data)}\"\n ></p-chart>\n </div>\n <div class=\"w-full flex justify-content-center mt-2 sumKey\">\n <p class=\"text-md font-medium text-700\">\n <span name=\"sumLabel\"> {{ sumKey | translate }}</span> : <span name=\"amountOfData\">{{ amountOfData}}</span>\n </p>\n </div>\n</ng-container>\n\n<div *ngIf=\"!this.data\" class=\"w-full flex justify-content-center\">\n <p-message severity=\"info\" text=\"{{ 'OCX_DIAGRAM.NO_DATA' | translate }}\"></p-message>\n</div>\n", styles: ["::ng-deep .p-buttonset .p-button{min-width:auto}::ng-deep .p-buttonset{display:flex}\n"] }]
|
|
142
142
|
}], ctorParameters: () => [{ type: i1.TranslateService }], propDecorators: { data: [{
|
|
@@ -157,4 +157,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImpor
|
|
|
157
157
|
function interpolateColors(amountOfData, colorScale, colorRangeInfo) {
|
|
158
158
|
return ColorUtils.interpolateColors(amountOfData, colorScale, colorRangeInfo);
|
|
159
159
|
}
|
|
160
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhZ3JhbS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItYWNjZWxlcmF0b3Ivc3JjL2xpYi9jb21wb25lbnRzL2RpYWdyYW0vZGlhZ3JhbS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItYWNjZWxlcmF0b3Ivc3JjL2xpYi9jb21wb25lbnRzL2RpYWdyYW0vZGlhZ3JhbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUN6RixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUV0RCxPQUFPLEtBQUssRUFBRSxNQUFNLG9CQUFvQixDQUFBO0FBQ3hDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxhQUFhLENBQUE7QUFHeEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHdCQUF3QixDQUFBOzs7Ozs7Ozs7O0FBaUJuRCxNQUFNLGVBQWUsR0FBcUI7SUFDeEM7UUFDRSxFQUFFLEVBQUUsYUFBYTtRQUNqQixJQUFJLEVBQUUsVUFBVSxDQUFDLFNBQVM7UUFDMUIsTUFBTSw2QkFBaUI7UUFDdkIsVUFBVSxFQUFFLHFDQUFxQztRQUNqRCxRQUFRLEVBQUUscUNBQXFDO0tBQ2hEO0lBQ0Q7UUFDRSxFQUFFLEVBQUUsd0JBQXdCO1FBQzVCLElBQUksRUFBRSxVQUFVLENBQUMsSUFBSTtRQUNyQixNQUFNLG1EQUE0QjtRQUNsQyxVQUFVLEVBQUUsZ0RBQWdEO1FBQzVELFFBQVEsRUFBRSxnREFBZ0Q7S0FDM0Q7SUFDRDtRQUNFLEVBQUUsRUFBRSxzQkFBc0I7UUFDMUIsSUFBSSxFQUFFLFVBQVUsQ0FBQyxTQUFTO1FBQzFCLE1BQU0sK0NBQTBCO1FBQ2hDLFVBQVUsRUFBRSw4Q0FBOEM7UUFDMUQsUUFBUSxFQUFFLDhDQUE4QztLQUN6RDtDQUNGLENBQUE7QUFPRCxNQUFNLE9BQU8sZ0JBQWdCO0lBTTNCLElBQ0ksV0FBVztRQUNiLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQTtJQUMxQixDQUFDO0lBQ0QsSUFBSSxXQUFXLENBQUMsS0FBa0I7UUFDaEMsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUE7UUFDekIsSUFBSSxDQUFDLG1CQUFtQixHQUFHLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLEtBQUssS0FBSyxDQUFDLENBQUE7UUFDMUUsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDckQsQ0FBQztJQUVELElBQ0kscUJBQXFCO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLHNCQUFzQixDQUFBO0lBQ3BDLENBQUM7SUFDRCxJQUFJLHFCQUFxQixDQUFDLEtBQW9CO1FBQzVDLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxLQUFLLENBQUE7UUFDbkMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLGVBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUE7SUFDekcsQ0FBQztJQWlCRCxZQUFvQixnQkFBa0M7UUFBbEMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQXRDN0MsV0FBTSxHQUFHLGlCQUFpQixDQUFBO1FBQzNCLGlCQUFZLCtCQUErQjtRQUU1QyxjQUFTLEdBQXVGLEtBQUssQ0FBQTtRQVVwRywyQkFBc0IsR0FBa0IsRUFBRSxDQUFBO1FBU3hDLGlCQUFZLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUE7UUFDcEQsdUJBQWtCLEdBQThCLElBQUksWUFBWSxFQUFFLENBQUE7UUFDbEUsMEJBQXFCLEdBQXdDLElBQUksWUFBWSxFQUFFLENBQUE7UUFJekYsc0JBQWlCLEdBQXFCLEVBQUUsQ0FBQTtRQUN4QywwRkFBMEY7UUFDbEYsbUJBQWMsR0FBRztZQUN2QixVQUFVLEVBQUUsQ0FBQztZQUNiLFFBQVEsRUFBRSxDQUFDO1lBQ1gsYUFBYSxFQUFFLEtBQUs7U0FDckIsQ0FBQTtRQUNELHFGQUFxRjtRQUM3RSxlQUFVLEdBQUcsRUFBRSxDQUFDLGVBQWUsQ0FBQTtJQUVrQixDQUFDO0lBRTFELFdBQVc7UUFDVCxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFBO0lBQzFELENBQUM7SUFDRCxRQUFRO1FBQ04sSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQTtJQUMxRCxDQUFDO0lBRU0sYUFBYSxDQUFDLFVBQWUsRUFBRSxjQUFtQjtRQUN2RCxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNkLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUE7WUFFbkUsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxPQUFPLEVBQUUsRUFBRSxDQUFDLEdBQUcsR0FBRyxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFBO1lBQzlFLE1BQU0sTUFBTSxHQUFHLGlCQUFpQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLFVBQVUsRUFBRSxjQUFjLENBQUMsQ0FBQTtZQUM5RSxJQUFJLENBQUMsU0FBUyxHQUFHO2dCQUNmLE1BQU0sRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztnQkFDM0MsUUFBUSxFQUFFO29CQUNSO3dCQUNFLElBQUksRUFBRSxTQUFTO3dCQUNmLGVBQWUsRUFBRSxNQUFNO3FCQUN4QjtpQkFDRjthQUNGLENBQUE7UUFDSCxDQUFDO1FBRUQsSUFBSSxDQUFDLFlBQVksR0FBRztZQUNsQixPQUFPLEVBQUU7Z0JBQ1AsTUFBTSxFQUFFO29CQUNOLFFBQVEsRUFBRSxRQUFRO2lCQUNuQjthQUNGO1lBQ0QsbUJBQW1CLEVBQUUsS0FBSztZQUMxQixHQUFHLENBQUMsSUFBSSxDQUFDLFlBQVksa0RBQTZCLElBQUk7Z0JBQ3BELE9BQU8sRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsRUFBRTtnQkFDdkMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsU0FBUyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUU7YUFDM0MsQ0FBQztZQUNGLEdBQUcsQ0FBQyxJQUFJLENBQUMsWUFBWSxzREFBK0IsSUFBSTtnQkFDdEQsU0FBUyxFQUFFLEdBQUc7Z0JBQ2QsT0FBTyxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxFQUFFO2dCQUN2QyxNQUFNLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxTQUFTLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRTthQUMzQyxDQUFDO1NBQ0gsQ0FBQTtJQUNILENBQUM7SUFFRCxhQUFhLENBQUMsSUFBbUI7UUFDL0IsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLE9BQU8sRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFHLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUE7SUFDOUQsQ0FBQztJQUVELDBCQUEwQixDQUFDLElBQW1CO1FBQzVDLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQTtJQUNyRSxDQUFDO0lBRU8sc0JBQXNCLENBQzVCLEtBQWtCO1FBRWxCLElBQUksS0FBSyxnQ0FBb0I7WUFBRSxPQUFPLEtBQUssQ0FBQTthQUN0QyxJQUFJLEtBQUssc0RBQStCLElBQUksS0FBSyxrREFBNkI7WUFBRSxPQUFPLEtBQUssQ0FBQTtRQUNqRyxPQUFPLEtBQUssQ0FBQTtJQUNkLENBQUM7SUFFRCxXQUFXLENBQUMsS0FBUztRQUNuQixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUE7SUFDdEMsQ0FBQztJQUVELG9CQUFvQixDQUFDLEtBQVU7UUFDN0IsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQTtRQUNyQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFBO1FBQ3hELElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQUNoRCxJQUFJLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDO1lBQzlCLGlCQUFpQixFQUFFLEtBQUssQ0FBQyxLQUFLLENBQUMsTUFBTTtTQUN0QyxDQUFDLENBQUE7SUFDSixDQUFDOzhHQWhIVSxnQkFBZ0I7a0dBQWhCLGdCQUFnQixxVUNyRDdCLHlwREF5Q0E7OzJGRFlhLGdCQUFnQjtrQkFMNUIsU0FBUzsrQkFDRSxhQUFhO3FGQUtkLElBQUk7c0JBQVosS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBS0YsV0FBVztzQkFEZCxLQUFLO2dCQVdGLHFCQUFxQjtzQkFEeEIsS0FBSztnQkFRSSxZQUFZO3NCQUFyQixNQUFNO2dCQUNHLGtCQUFrQjtzQkFBM0IsTUFBTTtnQkFDRyxxQkFBcUI7c0JBQTlCLE1BQU07O0FBd0ZULFNBQVMsaUJBQWlCLENBQUMsWUFBb0IsRUFBRSxVQUFlLEVBQUUsY0FBbUI7SUFDbkYsT0FBTyxVQUFVLENBQUMsaUJBQWlCLENBQUMsWUFBWSxFQUFFLFVBQVUsRUFBRSxjQUFjLENBQUMsQ0FBQTtBQUMvRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkNoYW5nZXMsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJ1xuaW1wb3J0IHsgQ2hhcnREYXRhLCBDaGFydE9wdGlvbnMgfSBmcm9tICdjaGFydC5qcydcbmltcG9ydCAqIGFzIGQzIGZyb20gJ2QzLXNjYWxlLWNocm9tYXRpYydcbmltcG9ydCB7IFByaW1lSWNvbnMgfSBmcm9tICdwcmltZW5nL2FwaSdcbmltcG9ydCB7IERpYWdyYW1EYXRhIH0gZnJvbSAnLi4vLi4vbW9kZWwvZGlhZ3JhbS1kYXRhJ1xuaW1wb3J0IHsgRGlhZ3JhbVR5cGUgfSBmcm9tICcuLi8uLi9tb2RlbC9kaWFncmFtLXR5cGUnXG5pbXBvcnQgeyBDb2xvclV0aWxzIH0gZnJvbSAnLi4vLi4vdXRpbHMvY29sb3J1dGlscydcbmltcG9ydCB7IFByaW1lSWNvbiB9IGZyb20gJy4uLy4uL3V0aWxzL3ByaW1laWNvbi51dGlscydcblxuZXhwb3J0IGludGVyZmFjZSBEaWFncmFtTGF5b3V0cyB7XG4gIGlkOiBzdHJpbmdcbiAgaWNvbjogUHJpbWVJY29uXG4gIGxheW91dDogRGlhZ3JhbVR5cGVcbiAgdG9vbHRpcD86IHN0cmluZ1xuICB0b29sdGlwS2V5OiBzdHJpbmdcbiAgbGFiZWw/OiBzdHJpbmdcbiAgbGFiZWxLZXk6IHN0cmluZ1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERpYWdyYW1Db21wb25lbnRTdGF0ZSB7XG4gIGFjdGl2ZURpYWdyYW1UeXBlPzogRGlhZ3JhbVR5cGVcbn1cblxuY29uc3QgYWxsRGlhZ3JhbVR5cGVzOiBEaWFncmFtTGF5b3V0c1tdID0gW1xuICB7XG4gICAgaWQ6ICdkaWFncmFtLXBpZScsXG4gICAgaWNvbjogUHJpbWVJY29ucy5DSEFSVF9QSUUsXG4gICAgbGF5b3V0OiBEaWFncmFtVHlwZS5QSUUsXG4gICAgdG9vbHRpcEtleTogJ09DWF9ESUFHUkFNLlNXSVRDSF9ESUFHUkFNX1RZUEUuUElFJyxcbiAgICBsYWJlbEtleTogJ09DWF9ESUFHUkFNLlNXSVRDSF9ESUFHUkFNX1RZUEUuUElFJyxcbiAgfSxcbiAge1xuICAgIGlkOiAnZGlhZ3JhbS1ob3Jpem9udGFsLWJhcicsXG4gICAgaWNvbjogUHJpbWVJY29ucy5CQVJTLFxuICAgIGxheW91dDogRGlhZ3JhbVR5cGUuSE9SSVpPTlRBTF9CQVIsXG4gICAgdG9vbHRpcEtleTogJ09DWF9ESUFHUkFNLlNXSVRDSF9ESUFHUkFNX1RZUEUuSE9SSVpPTlRBTF9CQVInLFxuICAgIGxhYmVsS2V5OiAnT0NYX0RJQUdSQU0uU1dJVENIX0RJQUdSQU1fVFlQRS5IT1JJWk9OVEFMX0JBUicsXG4gIH0sXG4gIHtcbiAgICBpZDogJ2RpYWdyYW0tdmVydGljYWwtYmFyJyxcbiAgICBpY29uOiBQcmltZUljb25zLkNIQVJUX0JBUixcbiAgICBsYXlvdXQ6IERpYWdyYW1UeXBlLlZFUlRJQ0FMX0JBUixcbiAgICB0b29sdGlwS2V5OiAnT0NYX0RJQUdSQU0uU1dJVENIX0RJQUdSQU1fVFlQRS5WRVJUSUNBTF9CQVInLFxuICAgIGxhYmVsS2V5OiAnT0NYX0RJQUdSQU0uU1dJVENIX0RJQUdSQU1fVFlQRS5WRVJUSUNBTF9CQVInLFxuICB9LFxuXVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdvY3gtZGlhZ3JhbScsXG4gIHRlbXBsYXRlVXJsOiAnLi9kaWFncmFtLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZGlhZ3JhbS5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBEaWFncmFtQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xuICBASW5wdXQoKSBkYXRhOiBEaWFncmFtRGF0YVtdIHwgdW5kZWZpbmVkXG4gIEBJbnB1dCgpIHN1bUtleSA9ICdPQ1hfRElBR1JBTS5TVU0nXG4gIHByaXZhdGUgX2RpYWdyYW1UeXBlOiBEaWFncmFtVHlwZSA9IERpYWdyYW1UeXBlLlBJRVxuICBzZWxlY3RlZERpYWdyYW1UeXBlOiBEaWFncmFtTGF5b3V0cyB8IHVuZGVmaW5lZFxuICBwdWJsaWMgY2hhcnRUeXBlOiAnYmFyJyB8ICdsaW5lJyB8ICdzY2F0dGVyJyB8ICdidWJibGUnIHwgJ3BpZScgfCAnZG91Z2hudXQnIHwgJ3BvbGFyQXJlYScgfCAncmFkYXInID0gJ3BpZSdcbiAgQElucHV0KClcbiAgZ2V0IGRpYWdyYW1UeXBlKCk6IERpYWdyYW1UeXBlIHtcbiAgICByZXR1cm4gdGhpcy5fZGlhZ3JhbVR5cGVcbiAgfVxuICBzZXQgZGlhZ3JhbVR5cGUodmFsdWU6IERpYWdyYW1UeXBlKSB7XG4gICAgdGhpcy5fZGlhZ3JhbVR5cGUgPSB2YWx1ZVxuICAgIHRoaXMuc2VsZWN0ZWREaWFncmFtVHlwZSA9IGFsbERpYWdyYW1UeXBlcy5maW5kKCh2KSA9PiB2LmxheW91dCA9PT0gdmFsdWUpXG4gICAgdGhpcy5jaGFydFR5cGUgPSB0aGlzLmRpYWdyYW1UeXBlVG9DaGFydFR5cGUodmFsdWUpXG4gIH1cbiAgcHJpdmF0ZSBfc3VwcG9ydGVkRGlhZ3JhbVR5cGVzOiBEaWFncmFtVHlwZVtdID0gW11cbiAgQElucHV0KClcbiAgZ2V0IHN1cHBvcnRlZERpYWdyYW1UeXBlcygpOiBEaWFncmFtVHlwZVtdIHtcbiAgICByZXR1cm4gdGhpcy5fc3VwcG9ydGVkRGlhZ3JhbVR5cGVzXG4gIH1cbiAgc2V0IHN1cHBvcnRlZERpYWdyYW1UeXBlcyh2YWx1ZTogRGlhZ3JhbVR5cGVbXSkge1xuICAgIHRoaXMuX3N1cHBvcnRlZERpYWdyYW1UeXBlcyA9IHZhbHVlXG4gICAgdGhpcy5zaG93bkRpYWdyYW1UeXBlcyA9IGFsbERpYWdyYW1UeXBlcy5maWx0ZXIoKHZsKSA9PiB0aGlzLnN1cHBvcnRlZERpYWdyYW1UeXBlcy5pbmNsdWRlcyh2bC5sYXlvdXQpKVxuICB9XG4gIEBPdXRwdXQoKSBkYXRhU2VsZWN0ZWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpXG4gIEBPdXRwdXQoKSBkaWFncmFtVHlwZUNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxEaWFncmFtVHlwZT4gPSBuZXcgRXZlbnRFbWl0dGVyKClcbiAgQE91dHB1dCgpIGNvbXBvbmVudFN0YXRlQ2hhbmdlZDogRXZlbnRFbWl0dGVyPERpYWdyYW1Db21wb25lbnRTdGF0ZT4gPSBuZXcgRXZlbnRFbWl0dGVyKClcbiAgY2hhcnRPcHRpb25zOiBDaGFydE9wdGlvbnMgfCB1bmRlZmluZWRcbiAgY2hhcnREYXRhOiBDaGFydERhdGEgfCB1bmRlZmluZWRcbiAgYW1vdW50T2ZEYXRhOiBudW1iZXIgfCB1bmRlZmluZWQgfCBudWxsXG4gIHNob3duRGlhZ3JhbVR5cGVzOiBEaWFncmFtTGF5b3V0c1tdID0gW11cbiAgLy8gQ2hhbmdpbmcgdGhlIGNvbG9yUmFuZ2VJbmZvLCB3aWxsIGNoYW5nZSB0aGUgcmFuZ2Ugb2YgdGhlIGNvbG9yIHBhbGV0dGUgb2YgdGhlIGRpYWdyYW0uXG4gIHByaXZhdGUgY29sb3JSYW5nZUluZm8gPSB7XG4gICAgY29sb3JTdGFydDogMCxcbiAgICBjb2xvckVuZDogMSxcbiAgICB1c2VFbmRBc1N0YXJ0OiBmYWxzZSxcbiAgfVxuICAvLyBDaGFuZ2luZyB0aGUgY29sb3JTY2FsZSwgd2lsbCBjaGFuZ2UgdGhlIHRoZW1hdGljIGNvbG9yIGFwcGVhcmFuY2Ugb2YgdGhlIGRpYWdyYW0uXG4gIHByaXZhdGUgY29sb3JTY2FsZSA9IGQzLmludGVycG9sYXRlQ29vbFxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSkge31cblxuICBuZ09uQ2hhbmdlcygpOiB2b2lkIHtcbiAgICB0aGlzLmdlbmVyYXRlQ2hhcnQodGhpcy5jb2xvclNjYWxlLCB0aGlzLmNvbG9yUmFuZ2VJbmZvKVxuICB9XG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuZ2VuZXJhdGVDaGFydCh0aGlzLmNvbG9yU2NhbGUsIHRoaXMuY29sb3JSYW5nZUluZm8pXG4gIH1cblxuICBwdWJsaWMgZ2VuZXJhdGVDaGFydChjb2xvclNjYWxlOiBhbnksIGNvbG9yUmFuZ2VJbmZvOiBhbnkpIHtcbiAgICBpZiAodGhpcy5kYXRhKSB7XG4gICAgICBjb25zdCBpbnB1dERhdGEgPSB0aGlzLmRhdGEubWFwKChkaWFncmFtRGF0YSkgPT4gZGlhZ3JhbURhdGEudmFsdWUpXG5cbiAgICAgIHRoaXMuYW1vdW50T2ZEYXRhID0gdGhpcy5kYXRhLnJlZHVjZSgoYWNjLCBjdXJyZW50KSA9PiBhY2MgKyBjdXJyZW50LnZhbHVlLCAwKVxuICAgICAgY29uc3QgQ09MT1JTID0gaW50ZXJwb2xhdGVDb2xvcnModGhpcy5kYXRhLmxlbmd0aCwgY29sb3JTY2FsZSwgY29sb3JSYW5nZUluZm8pXG4gICAgICB0aGlzLmNoYXJ0RGF0YSA9IHtcbiAgICAgICAgbGFiZWxzOiB0aGlzLmRhdGEubWFwKChkYXRhKSA9PiBkYXRhLmxhYmVsKSxcbiAgICAgICAgZGF0YXNldHM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBkYXRhOiBpbnB1dERhdGEsXG4gICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IENPTE9SUyxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuY2hhcnRPcHRpb25zID0ge1xuICAgICAgcGx1Z2luczoge1xuICAgICAgICBsZWdlbmQ6IHtcbiAgICAgICAgICBwb3NpdGlvbjogJ2JvdHRvbScsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgbWFpbnRhaW5Bc3BlY3RSYXRpbzogZmFsc2UsXG4gICAgICAuLi4odGhpcy5fZGlhZ3JhbVR5cGUgPT09IERpYWdyYW1UeXBlLlZFUlRJQ0FMX0JBUiAmJiB7XG4gICAgICAgIHBsdWdpbnM6IHsgbGVnZW5kOiB7IGRpc3BsYXk6IGZhbHNlIH0gfSxcbiAgICAgICAgc2NhbGVzOiB7IHk6IHsgdGlja3M6IHsgcHJlY2lzaW9uOiAwIH0gfSB9LFxuICAgICAgfSksXG4gICAgICAuLi4odGhpcy5fZGlhZ3JhbVR5cGUgPT09IERpYWdyYW1UeXBlLkhPUklaT05UQUxfQkFSICYmIHtcbiAgICAgICAgaW5kZXhBeGlzOiAneScsXG4gICAgICAgIHBsdWdpbnM6IHsgbGVnZW5kOiB7IGRpc3BsYXk6IGZhbHNlIH0gfSxcbiAgICAgICAgc2NhbGVzOiB7IHg6IHsgdGlja3M6IHsgcHJlY2lzaW9uOiAwIH0gfSB9LFxuICAgICAgfSksXG4gICAgfVxuICB9XG5cbiAgZ2VuZXJhdGVUb3RhbChkYXRhOiBEaWFncmFtRGF0YVtdKTogbnVtYmVyIHtcbiAgICByZXR1cm4gZGF0YS5yZWR1Y2UoKGFjYywgY3VycmVudCkgPT4gYWNjICsgY3VycmVudC52YWx1ZSwgMClcbiAgfVxuXG4gIGdlbmVyYXRlRGlhZ3JhbVZhbHVlU3RyaW5nKGRhdGE6IERpYWdyYW1EYXRhW10pOiBzdHJpbmcge1xuICAgIHJldHVybiBkYXRhLm1hcCgoaXRlbSkgPT4gYCR7aXRlbS5sYWJlbH06JHtpdGVtLnZhbHVlfWApLmpvaW4oJywgJylcbiAgfVxuXG4gIHByaXZhdGUgZGlhZ3JhbVR5cGVUb0NoYXJ0VHlwZShcbiAgICB2YWx1ZTogRGlhZ3JhbVR5cGVcbiAgKTogJ2JhcicgfCAnbGluZScgfCAnc2NhdHRlcicgfCAnYnViYmxlJyB8ICdwaWUnIHwgJ2RvdWdobnV0JyB8ICdwb2xhckFyZWEnIHwgJ3JhZGFyJyB7XG4gICAgaWYgKHZhbHVlID09PSBEaWFncmFtVHlwZS5QSUUpIHJldHVybiAncGllJ1xuICAgIGVsc2UgaWYgKHZhbHVlID09PSBEaWFncmFtVHlwZS5IT1JJWk9OVEFMX0JBUiB8fCB2YWx1ZSA9PT0gRGlhZ3JhbVR5cGUuVkVSVElDQUxfQkFSKSByZXR1cm4gJ2JhcidcbiAgICByZXR1cm4gJ3BpZSdcbiAgfVxuXG4gIGRhdGFDbGlja2VkKGV2ZW50OiBbXSkge1xuICAgIHRoaXMuZGF0YVNlbGVjdGVkLmVtaXQoZXZlbnQubGVuZ3RoKVxuICB9XG5cbiAgb25EaWFncmFtVHlwZUNoYW5nZWQoZXZlbnQ6IGFueSkge1xuICAgIHRoaXMuZGlhZ3JhbVR5cGUgPSBldmVudC52YWx1ZS5sYXlvdXRcbiAgICB0aGlzLmdlbmVyYXRlQ2hhcnQodGhpcy5jb2xvclNjYWxlLCB0aGlzLmNvbG9yUmFuZ2VJbmZvKVxuICAgIHRoaXMuZGlhZ3JhbVR5cGVDaGFuZ2VkLmVtaXQoZXZlbnQudmFsdWUubGF5b3V0KVxuICAgIHRoaXMuY29tcG9uZW50U3RhdGVDaGFuZ2VkLmVtaXQoe1xuICAgICAgYWN0aXZlRGlhZ3JhbVR5cGU6IGV2ZW50LnZhbHVlLmxheW91dCxcbiAgICB9KVxuICB9XG59XG5mdW5jdGlvbiBpbnRlcnBvbGF0ZUNvbG9ycyhhbW91bnRPZkRhdGE6IG51bWJlciwgY29sb3JTY2FsZTogYW55LCBjb2xvclJhbmdlSW5mbzogYW55KSB7XG4gIHJldHVybiBDb2xvclV0aWxzLmludGVycG9sYXRlQ29sb3JzKGFtb3VudE9mRGF0YSwgY29sb3JTY2FsZSwgY29sb3JSYW5nZUluZm8pXG59XG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwidGhpcy5kYXRhXCI+XG4gIDxkaXYgY2xhc3M9XCJmbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgcGItMlwiICpuZ0lmPVwic2hvd25EaWFncmFtVHlwZXMubGVuZ3RoID4gMVwiPlxuICAgIDxwLXNlbGVjdEJ1dHRvblxuICAgICAgW29wdGlvbnNdPVwic2hvd25EaWFncmFtVHlwZXNcIlxuICAgICAgWyhuZ01vZGVsKV09XCJzZWxlY3RlZERpYWdyYW1UeXBlXCJcbiAgICAgIG9wdGlvbkxhYmVsPVwiaWRcIlxuICAgICAgKG9uQ2hhbmdlKT1cIm9uRGlhZ3JhbVR5cGVDaGFuZ2VkKCRldmVudClcIlxuICAgICAgbmFtZT1cImRpYWdyYW0tdHlwZS1zZWxlY3QtYnV0dG9uXCJcbiAgICA+XG4gICAgICA8bmctdGVtcGxhdGUgbGV0LWl0ZW0gcFRlbXBsYXRlPlxuICAgICAgICA8aVxuICAgICAgICAgIFtjbGFzc109XCJpdGVtLmljb25cIlxuICAgICAgICAgIFtwVG9vbHRpcF09XCJpdGVtLnRvb2x0aXAgfHwgKGl0ZW0udG9vbHRpcEtleSB8IHRyYW5zbGF0ZSlcIlxuICAgICAgICAgIHRvb2x0aXBQb3NpdGlvbj1cInRvcFwiXG4gICAgICAgICAgdG9vbHRpcEV2ZW50PVwiaG92ZXJcIlxuICAgICAgICA+PC9pPlxuICAgICAgICA8bGFiZWwgc3R5bGU9XCJkaXNwbGF5OiBub25lXCIgaWQ9XCJ7e2l0ZW0uaWR9fVwiPiB7e2l0ZW0ubGFiZWwgPyBpdGVtLmxhYmVsIDogaXRlbS5sYWJlbEtleSB8IHRyYW5zbGF0ZX19IDwvbGFiZWw+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvcC1zZWxlY3RCdXR0b24+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwidy1mdWxsIGZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxuICAgIDxwLWNoYXJ0XG4gICAgICBpZD1cImRpYWdyYW1cIlxuICAgICAgW3R5cGVdPVwiY2hhcnRUeXBlXCJcbiAgICAgIFtkYXRhXT1cImNoYXJ0RGF0YVwiXG4gICAgICBbcmVzcG9uc2l2ZV09XCJmYWxzZVwiXG4gICAgICBbb3B0aW9uc109XCJjaGFydE9wdGlvbnNcIlxuICAgICAgKG9uRGF0YVNlbGVjdCk9XCJkYXRhQ2xpY2tlZCgkZXZlbnQpXCJcbiAgICAgIFthcmlhTGFiZWxdPVwiKGRhdGEgPyAnT0NYX0RJQUdSQU0uQVJJQV9MQUJFTCcgOiAnT0NYX0RJQUdSQU0uRU1QVFlfQVJJQV9MQUJFTCcpIHwgdHJhbnNsYXRlOiB7dG90YWw6IGdlbmVyYXRlVG90YWwoZGF0YSksIHZhbHVlU3RyaW5nOiBnZW5lcmF0ZURpYWdyYW1WYWx1ZVN0cmluZyhkYXRhKX1cIlxuICAgID48L3AtY2hhcnQ+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwidy1mdWxsIGZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBtdC0yIHN1bUtleVwiPlxuICAgIDxwIGNsYXNzPVwidGV4dC1tZCBmb250LW1lZGl1bSB0ZXh0LTcwMFwiPlxuICAgICAgPHNwYW4gbmFtZT1cInN1bUxhYmVsXCI+IHt7IHN1bUtleSB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj4gOiA8c3BhbiBuYW1lPVwiYW1vdW50T2ZEYXRhXCI+e3sgYW1vdW50T2ZEYXRhfX08L3NwYW4+XG4gICAgPC9wPlxuICA8L2Rpdj5cbjwvbmctY29udGFpbmVyPlxuXG48ZGl2ICpuZ0lmPVwiIXRoaXMuZGF0YVwiIGNsYXNzPVwidy1mdWxsIGZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxuICA8cC1tZXNzYWdlIHNldmVyaXR5PVwiaW5mb1wiIHRleHQ9XCJ7eyAnT0NYX0RJQUdSQU0uTk9fREFUQScgfCB0cmFuc2xhdGUgfX1cIj48L3AtbWVzc2FnZT5cbjwvZGl2PlxuIl19
|
|
160
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhZ3JhbS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItYWNjZWxlcmF0b3Ivc3JjL2xpYi9jb21wb25lbnRzL2RpYWdyYW0vZGlhZ3JhbS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItYWNjZWxlcmF0b3Ivc3JjL2xpYi9jb21wb25lbnRzL2RpYWdyYW0vZGlhZ3JhbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUN6RixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUV0RCxPQUFPLEtBQUssRUFBRSxNQUFNLG9CQUFvQixDQUFBO0FBQ3hDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxhQUFhLENBQUE7QUFHeEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHdCQUF3QixDQUFBOzs7Ozs7Ozs7O0FBaUJuRCxNQUFNLGVBQWUsR0FBcUI7SUFDeEM7UUFDRSxFQUFFLEVBQUUsYUFBYTtRQUNqQixJQUFJLEVBQUUsVUFBVSxDQUFDLFNBQVM7UUFDMUIsTUFBTSw2QkFBaUI7UUFDdkIsVUFBVSxFQUFFLHFDQUFxQztRQUNqRCxRQUFRLEVBQUUscUNBQXFDO0tBQ2hEO0lBQ0Q7UUFDRSxFQUFFLEVBQUUsd0JBQXdCO1FBQzVCLElBQUksRUFBRSxVQUFVLENBQUMsSUFBSTtRQUNyQixNQUFNLG1EQUE0QjtRQUNsQyxVQUFVLEVBQUUsZ0RBQWdEO1FBQzVELFFBQVEsRUFBRSxnREFBZ0Q7S0FDM0Q7SUFDRDtRQUNFLEVBQUUsRUFBRSxzQkFBc0I7UUFDMUIsSUFBSSxFQUFFLFVBQVUsQ0FBQyxTQUFTO1FBQzFCLE1BQU0sK0NBQTBCO1FBQ2hDLFVBQVUs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LENBQUMsWUFBb0IsRUFBRSxVQUFlLEVBQUUsY0FBbUI7SUFDbkYsT0FBTyxVQUFVLENBQUMsaUJBQWlCLENBQUMsWUFBWSxFQUFFLFVBQVUsRUFBRSxjQUFjLENBQUMsQ0FBQTtBQUMvRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkNoYW5nZXMsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJ1xuaW1wb3J0IHsgQ2hhcnREYXRhLCBDaGFydE9wdGlvbnMgfSBmcm9tICdjaGFydC5qcydcbmltcG9ydCAqIGFzIGQzIGZyb20gJ2QzLXNjYWxlLWNocm9tYXRpYydcbmltcG9ydCB7IFByaW1lSWNvbnMgfSBmcm9tICdwcmltZW5nL2FwaSdcbmltcG9ydCB7IERpYWdyYW1EYXRhIH0gZnJvbSAnLi4vLi4vbW9kZWwvZGlhZ3JhbS1kYXRhJ1xuaW1wb3J0IHsgRGlhZ3JhbVR5cGUgfSBmcm9tICcuLi8uLi9tb2RlbC9kaWFncmFtLXR5cGUnXG5pbXBvcnQgeyBDb2xvclV0aWxzIH0gZnJvbSAnLi4vLi4vdXRpbHMvY29sb3J1dGlscydcbmltcG9ydCB7IFByaW1lSWNvbiB9IGZyb20gJy4uLy4uL3V0aWxzL3ByaW1laWNvbi51dGlscydcblxuZXhwb3J0IGludGVyZmFjZSBEaWFncmFtTGF5b3V0cyB7XG4gIGlkOiBzdHJpbmdcbiAgaWNvbjogUHJpbWVJY29uXG4gIGxheW91dDogRGlhZ3JhbVR5cGVcbiAgdG9vbHRpcD86IHN0cmluZ1xuICB0b29sdGlwS2V5OiBzdHJpbmdcbiAgbGFiZWw/OiBzdHJpbmdcbiAgbGFiZWxLZXk6IHN0cmluZ1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERpYWdyYW1Db21wb25lbnRTdGF0ZSB7XG4gIGFjdGl2ZURpYWdyYW1UeXBlPzogRGlhZ3JhbVR5cGVcbn1cblxuY29uc3QgYWxsRGlhZ3JhbVR5cGVzOiBEaWFncmFtTGF5b3V0c1tdID0gW1xuICB7XG4gICAgaWQ6ICdkaWFncmFtLXBpZScsXG4gICAgaWNvbjogUHJpbWVJY29ucy5DSEFSVF9QSUUsXG4gICAgbGF5b3V0OiBEaWFncmFtVHlwZS5QSUUsXG4gICAgdG9vbHRpcEtleTogJ09DWF9ESUFHUkFNLlNXSVRDSF9ESUFHUkFNX1RZUEUuUElFJyxcbiAgICBsYWJlbEtleTogJ09DWF9ESUFHUkFNLlNXSVRDSF9ESUFHUkFNX1RZUEUuUElFJyxcbiAgfSxcbiAge1xuICAgIGlkOiAnZGlhZ3JhbS1ob3Jpem9udGFsLWJhcicsXG4gICAgaWNvbjogUHJpbWVJY29ucy5CQVJTLFxuICAgIGxheW91dDogRGlhZ3JhbVR5cGUuSE9SSVpPTlRBTF9CQVIsXG4gICAgdG9vbHRpcEtleTogJ09DWF9ESUFHUkFNLlNXSVRDSF9ESUFHUkFNX1RZUEUuSE9SSVpPTlRBTF9CQVInLFxuICAgIGxhYmVsS2V5OiAnT0NYX0RJQUdSQU0uU1dJVENIX0RJQUdSQU1fVFlQRS5IT1JJWk9OVEFMX0JBUicsXG4gIH0sXG4gIHtcbiAgICBpZDogJ2RpYWdyYW0tdmVydGljYWwtYmFyJyxcbiAgICBpY29uOiBQcmltZUljb25zLkNIQVJUX0JBUixcbiAgICBsYXlvdXQ6IERpYWdyYW1UeXBlLlZFUlRJQ0FMX0JBUixcbiAgICB0b29sdGlwS2V5OiAnT0NYX0RJQUdSQU0uU1dJVENIX0RJQUdSQU1fVFlQRS5WRVJUSUNBTF9CQVInLFxuICAgIGxhYmVsS2V5OiAnT0NYX0RJQUdSQU0uU1dJVENIX0RJQUdSQU1fVFlQRS5WRVJUSUNBTF9CQVInLFxuICB9LFxuXVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdvY3gtZGlhZ3JhbScsXG4gIHRlbXBsYXRlVXJsOiAnLi9kaWFncmFtLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZGlhZ3JhbS5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBEaWFncmFtQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xuICBASW5wdXQoKSBkYXRhOiBEaWFncmFtRGF0YVtdIHwgdW5kZWZpbmVkXG4gIEBJbnB1dCgpIHN1bUtleSA9ICdPQ1hfRElBR1JBTS5TVU0nXG4gIHByaXZhdGUgX2RpYWdyYW1UeXBlOiBEaWFncmFtVHlwZSA9IERpYWdyYW1UeXBlLlBJRVxuICBzZWxlY3RlZERpYWdyYW1UeXBlOiBEaWFncmFtTGF5b3V0cyB8IHVuZGVmaW5lZFxuICBwdWJsaWMgY2hhcnRUeXBlOiAnYmFyJyB8ICdsaW5lJyB8ICdzY2F0dGVyJyB8ICdidWJibGUnIHwgJ3BpZScgfCAnZG91Z2hudXQnIHwgJ3BvbGFyQXJlYScgfCAncmFkYXInID0gJ3BpZSdcbiAgQElucHV0KClcbiAgZ2V0IGRpYWdyYW1UeXBlKCk6IERpYWdyYW1UeXBlIHtcbiAgICByZXR1cm4gdGhpcy5fZGlhZ3JhbVR5cGVcbiAgfVxuICBzZXQgZGlhZ3JhbVR5cGUodmFsdWU6IERpYWdyYW1UeXBlKSB7XG4gICAgdGhpcy5fZGlhZ3JhbVR5cGUgPSB2YWx1ZVxuICAgIHRoaXMuc2VsZWN0ZWREaWFncmFtVHlwZSA9IGFsbERpYWdyYW1UeXBlcy5maW5kKCh2KSA9PiB2LmxheW91dCA9PT0gdmFsdWUpXG4gICAgdGhpcy5jaGFydFR5cGUgPSB0aGlzLmRpYWdyYW1UeXBlVG9DaGFydFR5cGUodmFsdWUpXG4gIH1cbiAgcHJpdmF0ZSBfc3VwcG9ydGVkRGlhZ3JhbVR5cGVzOiBEaWFncmFtVHlwZVtdID0gW11cbiAgQElucHV0KClcbiAgZ2V0IHN1cHBvcnRlZERpYWdyYW1UeXBlcygpOiBEaWFncmFtVHlwZVtdIHtcbiAgICByZXR1cm4gdGhpcy5fc3VwcG9ydGVkRGlhZ3JhbVR5cGVzXG4gIH1cbiAgc2V0IHN1cHBvcnRlZERpYWdyYW1UeXBlcyh2YWx1ZTogRGlhZ3JhbVR5cGVbXSkge1xuICAgIHRoaXMuX3N1cHBvcnRlZERpYWdyYW1UeXBlcyA9IHZhbHVlXG4gICAgdGhpcy5zaG93bkRpYWdyYW1UeXBlcyA9IGFsbERpYWdyYW1UeXBlcy5maWx0ZXIoKHZsKSA9PiB0aGlzLnN1cHBvcnRlZERpYWdyYW1UeXBlcy5pbmNsdWRlcyh2bC5sYXlvdXQpKVxuICB9XG4gIEBPdXRwdXQoKSBkYXRhU2VsZWN0ZWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpXG4gIEBPdXRwdXQoKSBkaWFncmFtVHlwZUNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxEaWFncmFtVHlwZT4gPSBuZXcgRXZlbnRFbWl0dGVyKClcbiAgQE91dHB1dCgpIGNvbXBvbmVudFN0YXRlQ2hhbmdlZDogRXZlbnRFbWl0dGVyPERpYWdyYW1Db21wb25lbnRTdGF0ZT4gPSBuZXcgRXZlbnRFbWl0dGVyKClcbiAgY2hhcnRPcHRpb25zOiBDaGFydE9wdGlvbnMgfCB1bmRlZmluZWRcbiAgY2hhcnREYXRhOiBDaGFydERhdGEgfCB1bmRlZmluZWRcbiAgYW1vdW50T2ZEYXRhOiBudW1iZXIgfCB1bmRlZmluZWQgfCBudWxsXG4gIHNob3duRGlhZ3JhbVR5cGVzOiBEaWFncmFtTGF5b3V0c1tdID0gW11cbiAgLy8gQ2hhbmdpbmcgdGhlIGNvbG9yUmFuZ2VJbmZvLCB3aWxsIGNoYW5nZSB0aGUgcmFuZ2Ugb2YgdGhlIGNvbG9yIHBhbGV0dGUgb2YgdGhlIGRpYWdyYW0uXG4gIHByaXZhdGUgY29sb3JSYW5nZUluZm8gPSB7XG4gICAgY29sb3JTdGFydDogMCxcbiAgICBjb2xvckVuZDogMSxcbiAgICB1c2VFbmRBc1N0YXJ0OiBmYWxzZSxcbiAgfVxuICAvLyBDaGFuZ2luZyB0aGUgY29sb3JTY2FsZSwgd2lsbCBjaGFuZ2UgdGhlIHRoZW1hdGljIGNvbG9yIGFwcGVhcmFuY2Ugb2YgdGhlIGRpYWdyYW0uXG4gIHByaXZhdGUgY29sb3JTY2FsZSA9IGQzLmludGVycG9sYXRlQ29vbFxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSkge31cblxuICBuZ09uQ2hhbmdlcygpOiB2b2lkIHtcbiAgICB0aGlzLmdlbmVyYXRlQ2hhcnQodGhpcy5jb2xvclNjYWxlLCB0aGlzLmNvbG9yUmFuZ2VJbmZvKVxuICB9XG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuZ2VuZXJhdGVDaGFydCh0aGlzLmNvbG9yU2NhbGUsIHRoaXMuY29sb3JSYW5nZUluZm8pXG4gIH1cblxuICBwdWJsaWMgZ2VuZXJhdGVDaGFydChjb2xvclNjYWxlOiBhbnksIGNvbG9yUmFuZ2VJbmZvOiBhbnkpIHtcbiAgICBpZiAodGhpcy5kYXRhKSB7XG4gICAgICBjb25zdCBpbnB1dERhdGEgPSB0aGlzLmRhdGEubWFwKChkaWFncmFtRGF0YSkgPT4gZGlhZ3JhbURhdGEudmFsdWUpXG5cbiAgICAgIHRoaXMuYW1vdW50T2ZEYXRhID0gdGhpcy5kYXRhLnJlZHVjZSgoYWNjLCBjdXJyZW50KSA9PiBhY2MgKyBjdXJyZW50LnZhbHVlLCAwKVxuICAgICAgY29uc3QgQ09MT1JTID0gaW50ZXJwb2xhdGVDb2xvcnModGhpcy5kYXRhLmxlbmd0aCwgY29sb3JTY2FsZSwgY29sb3JSYW5nZUluZm8pXG4gICAgICB0aGlzLmNoYXJ0RGF0YSA9IHtcbiAgICAgICAgbGFiZWxzOiB0aGlzLmRhdGEubWFwKChkYXRhKSA9PiBkYXRhLmxhYmVsKSxcbiAgICAgICAgZGF0YXNldHM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBkYXRhOiBpbnB1dERhdGEsXG4gICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IENPTE9SUyxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuY2hhcnRPcHRpb25zID0ge1xuICAgICAgcGx1Z2luczoge1xuICAgICAgICBsZWdlbmQ6IHtcbiAgICAgICAgICBwb3NpdGlvbjogJ2JvdHRvbScsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgbWFpbnRhaW5Bc3BlY3RSYXRpbzogZmFsc2UsXG4gICAgICAuLi4odGhpcy5fZGlhZ3JhbVR5cGUgPT09IERpYWdyYW1UeXBlLlZFUlRJQ0FMX0JBUiAmJiB7XG4gICAgICAgIHBsdWdpbnM6IHsgbGVnZW5kOiB7IGRpc3BsYXk6IGZhbHNlIH0gfSxcbiAgICAgICAgc2NhbGVzOiB7IHk6IHsgdGlja3M6IHsgcHJlY2lzaW9uOiAwIH0gfSB9LFxuICAgICAgfSksXG4gICAgICAuLi4odGhpcy5fZGlhZ3JhbVR5cGUgPT09IERpYWdyYW1UeXBlLkhPUklaT05UQUxfQkFSICYmIHtcbiAgICAgICAgaW5kZXhBeGlzOiAneScsXG4gICAgICAgIHBsdWdpbnM6IHsgbGVnZW5kOiB7IGRpc3BsYXk6IGZhbHNlIH0gfSxcbiAgICAgICAgc2NhbGVzOiB7IHg6IHsgdGlja3M6IHsgcHJlY2lzaW9uOiAwIH0gfSB9LFxuICAgICAgfSksXG4gICAgfVxuICB9XG5cbiAgZ2VuZXJhdGVUb3RhbChkYXRhOiBEaWFncmFtRGF0YVtdKTogbnVtYmVyIHtcbiAgICByZXR1cm4gZGF0YS5yZWR1Y2UoKGFjYywgY3VycmVudCkgPT4gYWNjICsgY3VycmVudC52YWx1ZSwgMClcbiAgfVxuXG4gIGdlbmVyYXRlRGlhZ3JhbVZhbHVlU3RyaW5nKGRhdGE6IERpYWdyYW1EYXRhW10pOiBzdHJpbmcge1xuICAgIHJldHVybiBkYXRhLm1hcCgoaXRlbSkgPT4gYCR7aXRlbS5sYWJlbH06JHtpdGVtLnZhbHVlfWApLmpvaW4oJywgJylcbiAgfVxuXG4gIHByaXZhdGUgZGlhZ3JhbVR5cGVUb0NoYXJ0VHlwZShcbiAgICB2YWx1ZTogRGlhZ3JhbVR5cGVcbiAgKTogJ2JhcicgfCAnbGluZScgfCAnc2NhdHRlcicgfCAnYnViYmxlJyB8ICdwaWUnIHwgJ2RvdWdobnV0JyB8ICdwb2xhckFyZWEnIHwgJ3JhZGFyJyB7XG4gICAgaWYgKHZhbHVlID09PSBEaWFncmFtVHlwZS5QSUUpIHJldHVybiAncGllJ1xuICAgIGVsc2UgaWYgKHZhbHVlID09PSBEaWFncmFtVHlwZS5IT1JJWk9OVEFMX0JBUiB8fCB2YWx1ZSA9PT0gRGlhZ3JhbVR5cGUuVkVSVElDQUxfQkFSKSByZXR1cm4gJ2JhcidcbiAgICByZXR1cm4gJ3BpZSdcbiAgfVxuXG4gIGRhdGFDbGlja2VkKGV2ZW50OiBbXSkge1xuICAgIHRoaXMuZGF0YVNlbGVjdGVkLmVtaXQoZXZlbnQubGVuZ3RoKVxuICB9XG5cbiAgb25EaWFncmFtVHlwZUNoYW5nZWQoZXZlbnQ6IGFueSkge1xuICAgIHRoaXMuZGlhZ3JhbVR5cGUgPSBldmVudC52YWx1ZS5sYXlvdXRcbiAgICB0aGlzLmdlbmVyYXRlQ2hhcnQodGhpcy5jb2xvclNjYWxlLCB0aGlzLmNvbG9yUmFuZ2VJbmZvKVxuICAgIHRoaXMuZGlhZ3JhbVR5cGVDaGFuZ2VkLmVtaXQoZXZlbnQudmFsdWUubGF5b3V0KVxuICAgIHRoaXMuY29tcG9uZW50U3RhdGVDaGFuZ2VkLmVtaXQoe1xuICAgICAgYWN0aXZlRGlhZ3JhbVR5cGU6IGV2ZW50LnZhbHVlLmxheW91dCxcbiAgICB9KVxuICB9XG59XG5mdW5jdGlvbiBpbnRlcnBvbGF0ZUNvbG9ycyhhbW91bnRPZkRhdGE6IG51bWJlciwgY29sb3JTY2FsZTogYW55LCBjb2xvclJhbmdlSW5mbzogYW55KSB7XG4gIHJldHVybiBDb2xvclV0aWxzLmludGVycG9sYXRlQ29sb3JzKGFtb3VudE9mRGF0YSwgY29sb3JTY2FsZSwgY29sb3JSYW5nZUluZm8pXG59XG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwidGhpcy5kYXRhXCI+XG4gIDxkaXYgY2xhc3M9XCJmbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgcGItMlwiICpuZ0lmPVwic2hvd25EaWFncmFtVHlwZXMubGVuZ3RoID4gMVwiPlxuICAgIDxwLXNlbGVjdEJ1dHRvblxuICAgICAgW29wdGlvbnNdPVwic2hvd25EaWFncmFtVHlwZXNcIlxuICAgICAgWyhuZ01vZGVsKV09XCJzZWxlY3RlZERpYWdyYW1UeXBlXCJcbiAgICAgIG9wdGlvbkxhYmVsPVwiaWRcIlxuICAgICAgKG9uQ2hhbmdlKT1cIm9uRGlhZ3JhbVR5cGVDaGFuZ2VkKCRldmVudClcIlxuICAgICAgbmFtZT1cImRpYWdyYW0tdHlwZS1zZWxlY3QtYnV0dG9uXCJcbiAgICA+XG4gICAgICA8bmctdGVtcGxhdGUgbGV0LWl0ZW0gcFRlbXBsYXRlPlxuICAgICAgICA8aVxuICAgICAgICAgIFtjbGFzc109XCJpdGVtLmljb25cIlxuICAgICAgICAgIFtwVG9vbHRpcF09XCJpdGVtLnRvb2x0aXAgfHwgKGl0ZW0udG9vbHRpcEtleSB8IHRyYW5zbGF0ZSlcIlxuICAgICAgICAgIHRvb2x0aXBQb3NpdGlvbj1cInRvcFwiXG4gICAgICAgICAgdG9vbHRpcEV2ZW50PVwiaG92ZXJcIlxuICAgICAgICA+PC9pPlxuICAgICAgICA8bGFiZWwgc3R5bGU9XCJkaXNwbGF5OiBub25lXCIgaWQ9XCJ7e2l0ZW0uaWR9fVwiPiB7e2l0ZW0ubGFiZWwgPyBpdGVtLmxhYmVsIDogaXRlbS5sYWJlbEtleSB8IHRyYW5zbGF0ZX19IDwvbGFiZWw+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvcC1zZWxlY3RCdXR0b24+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwidy1mdWxsIGZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxuICAgIDxwLWNoYXJ0XG4gICAgICBpZD1cImRpYWdyYW1cIlxuICAgICAgW3R5cGVdPVwiY2hhcnRUeXBlXCJcbiAgICAgIFtkYXRhXT1cImNoYXJ0RGF0YVwiXG4gICAgICBbcmVzcG9uc2l2ZV09XCJmYWxzZVwiXG4gICAgICBbb3B0aW9uc109XCJjaGFydE9wdGlvbnNcIlxuICAgICAgKG9uRGF0YVNlbGVjdCk9XCJkYXRhQ2xpY2tlZCgkZXZlbnQpXCJcbiAgICAgIFthcmlhTGFiZWxdPVwiKGRhdGEgPyAnT0NYX0RJQUdSQU0uQVJJQV9MQUJFTCcgOiAnT0NYX0RJQUdSQU0uRU1QVFlfQVJJQV9MQUJFTCcpIHwgdHJhbnNsYXRlOiB7dG90YWw6IGdlbmVyYXRlVG90YWwoZGF0YSksIHZhbHVlU3RyaW5nOiBnZW5lcmF0ZURpYWdyYW1WYWx1ZVN0cmluZyhkYXRhKX1cIlxuICAgID48L3AtY2hhcnQ+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwidy1mdWxsIGZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBtdC0yIHN1bUtleVwiPlxuICAgIDxwIGNsYXNzPVwidGV4dC1tZCBmb250LW1lZGl1bSB0ZXh0LTcwMFwiPlxuICAgICAgPHNwYW4gbmFtZT1cInN1bUxhYmVsXCI+IHt7IHN1bUtleSB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj4gOiA8c3BhbiBuYW1lPVwiYW1vdW50T2ZEYXRhXCI+e3sgYW1vdW50T2ZEYXRhfX08L3NwYW4+XG4gICAgPC9wPlxuICA8L2Rpdj5cbjwvbmctY29udGFpbmVyPlxuXG48ZGl2ICpuZ0lmPVwiIXRoaXMuZGF0YVwiIGNsYXNzPVwidy1mdWxsIGZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxuICA8cC1tZXNzYWdlIHNldmVyaXR5PVwiaW5mb1wiIHRleHQ9XCJ7eyAnT0NYX0RJQUdSQU0uTk9fREFUQScgfCB0cmFuc2xhdGUgfX1cIj48L3AtbWVzc2FnZT5cbjwvZGl2PlxuIl19
|
|
@@ -224,10 +224,10 @@ export class FilterViewComponent {
|
|
|
224
224
|
[row['valueColumnId']]: row['value'],
|
|
225
225
|
};
|
|
226
226
|
}
|
|
227
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
228
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.6", type: FilterViewComponent, selector: "ocx-filter-view", inputs: { filters: "filters", columns: "columns", displayMode: "displayMode", selectDisplayedChips: "selectDisplayedChips", chipStyleClass: "chipStyleClass", tableStyle: "tableStyle", panelStyle: "panelStyle", templates: "templates" }, outputs: { filtered: "filtered", componentStateChanged: "componentStateChanged" }, viewQueries: [{ propertyName: "panel", first: true, predicate: OverlayPanel, descendants: true }, { propertyName: "manageButton", first: true, predicate: ["manageButton"], descendants: true }, { propertyName: "defaultTemplates", predicate: PrimeTemplate, descendants: true }], ngImport: i0, template: "<ng-container *ngIf=\"columns$ | async as columns\">\n <div *ngIf=\"filters$ | async as filters\" class=\"flex flex-wrap align-items-center gap-2\">\n <ng-container *ngIf=\"displayMode === 'chips'; else noChipsContent\">\n <ng-container *ocxIfBreakpoint=\"'desktop'; elseTemplate: noChipsContent\">\n <ng-container *ngIf=\"selectDisplayedChips(filters, columns) as selectedFilters\">\n <p-button\n #chipFilterResetButton\n id=\"ocxFilterViewReset\"\n (onClick)=\"onResetFilersClick()\"\n icon=\"pi pi-eraser\"\n pTooltip=\"{{ 'OCX_FILTER_VIEW.RESET_FILTERS_BUTTON.DETAIL' | translate }}\"\n tooltipPosition=\"top\"\n tooltipEvent=\"hover\"\n [ariaLabel]=\"'OCX_FILTER_VIEW.RESET_FILTERS_BUTTON.ARIA_LABEL' | translate\"\n ></p-button>\n <ng-container *ngIf=\"filters.length <= 0\">\n <ng-container\n *ngIf=\"_fitlerViewNoSelection; else defaultNoFilters\"\n [ngTemplateOutlet]=\"_fitlerViewNoSelection\"\n >\n </ng-container>\n <ng-template #defaultNoFilters>\n <span id=\"ocxFilterViewNoFilters\">{{ 'OCX_FILTER_VIEW.NO_FILTERS' | translate }}</span>\n </ng-template>\n </ng-container>\n <ng-container *ngIf=\"(chipTemplates$ | async) ?? {} as templates\">\n <ng-container *ngFor=\"let filter of selectedFilters\">\n <ng-container *ngIf=\"getColumnForFilter(filter, columns) as column\">\n <p-chip [removable]=\"true\" (onRemove)=\"onChipRemove(filter)\" [styleClass]=\"chipStyleClass\">\n <ng-container\n *ngIf=\"_filterViewChipContent; else chipContentTemplate\"\n [ngTemplateOutlet]=\"_filterViewChipContent\"\n [ngTemplateOutletContext]=\"{\n filter: filter,\n column: column,\n filterValueTemplates: templates,\n truthyTemplate: truthyTemplate,\n filterValueTemplate: chipTemplate\n }\"\n >\n </ng-container>\n <ng-template #chipContentTemplate>\n <span\n *ngIf=\"columns$ | async as columns\"\n style=\"white-space: nowrap\"\n class=\"p-chip-text flex flex-nowrap\"\n >{{column?.nameKey ?? '' | translate }}:<ng-container\n *ngIf=\"filter.filterType === FilterType.EQUAL || !filter.filterType\"\n [ngTemplateOutlet]=\"chipTemplate\"\n [ngTemplateOutletContext]=\"{\n templates: templates,\n filter: filter,\n column: column\n }\"\n ></ng-container>\n <ng-container *ngIf=\"filter.filterType === FilterType.TRUTHY\">\n <ng-container\n [ngTemplateOutlet]=\"truthyTemplate\"\n [ngTemplateOutletContext]=\"{\n value: filter.value\n }\"\n ></ng-container>\n </ng-container>\n </span>\n </ng-template>\n </p-chip>\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"selectedFilters.length < filters.length\">\n <p-chip\n #showMoreChip\n id=\"ocxFilterViewShowMore\"\n tabindex=\"0\"\n role=\"button\"\n (click)=\"showPanel($event)\"\n class=\"cursor-pointer filter-view-focusable\"\n (keydown.enter)=\"showPanel($event)\"\n (keydown.space)=\"showPanel($event)\"\n >\n <ng-container\n *ngIf=\"_filterViewShowMoreChip; else showMoreChipTemplate\"\n [ngTemplateOutlet]=\"_filterViewShowMoreChip\"\n [ngTemplateOutletContext]=\"{\n $implicit: filters.length - selectedFilters.length\n }\"\n >\n </ng-container>\n <ng-template #showMoreChipTemplate>\n <span class=\"p-chip-text flex flex-nowrap\"> +{{filters.length - selectedFilters.length}} </span>\n </ng-template>\n <ng-container [ngTemplateOutlet]=\"filterTablePanel\"></ng-container>\n </p-chip>\n </ng-container>\n </ng-container>\n </ng-container>\n </ng-container>\n </ng-container>\n <ng-template #noChipsContent>\n <p-button\n #manageButton\n id=\"ocxFilterViewManage\"\n (onClick)=\"showPanel($event)\"\n icon=\"pi pi-sliders-h\"\n label=\"{{ 'OCX_FILTER_VIEW.MANAGE_FILTERS_BUTTON.LABEL' | translate }}\"\n pTooltip=\"{{ 'OCX_FILTER_VIEW.MANAGE_FILTERS_BUTTON.DETAIL' | translate }}\"\n tooltipPosition=\"top\"\n tooltipEvent=\"hover\"\n [badge]=\"filters.length.toString()\"\n [ariaLabel]=\"'OCX_FILTER_VIEW.MANAGE_FILTERS_BUTTON.ARIA_LABEL' | translate\"\n ></p-button>\n <ng-container [ngTemplateOutlet]=\"filterTablePanel\"></ng-container>\n </ng-template>\n\n <ng-template #filterTablePanel>\n <p-overlayPanel *ngIf=\"tableTemplates$ | async as templates\" #op [style]=\"panelStyle\" (onHide)=\"focusTrigger()\">\n <ng-template pTemplate=\"content\">\n <div pFocusTrap>\n <div class=\"flex justify-content-between align-items-center mb-2\">\n <span class=\"text-2xl font-medium\">{{'OCX_FILTER_VIEW.PANEL_TITLE' | translate}}</span>\n <div>\n <p-button\n pAutoFocus\n [autofocus]=\"true\"\n id=\"ocxFilterViewOverlayReset\"\n (onClick)=\"onResetFilersClick()\"\n icon=\"pi pi-eraser\"\n pTooltip=\"{{ 'OCX_FILTER_VIEW.RESET_FILTERS_BUTTON.DETAIL' | translate }}\"\n tooltipPosition=\"top\"\n tooltipEvent=\"hover\"\n [ariaLabel]=\"'OCX_FILTER_VIEW.RESET_FILTERS_BUTTON.ARIA_LABEL' | translate\"\n ></p-button>\n </div>\n </div>\n <ocx-data-table\n id=\"ocxFilterViewDataTable\"\n [rows]=\"(columnFilterDataRows$ | async) ?? []\"\n [columns]=\"columnFilterTableColumns\"\n [emptyResultsMessage]=\"'OCX_FILTER_VIEW.NO_FILTERS' | translate\"\n [paginator]=\"false\"\n [tableStyle]=\"tableStyle\"\n >\n <ng-template pTemplate=\"columnIdCell\" let-rowObject=\"rowObject\" let-column=\"column\">\n <ng-container\n [ngTemplateOutlet]=\"templates[column.id]\"\n [ngTemplateOutletContext]=\"{\n rowObject: rowObject,\n column: column,\n }\"\n >\n </ng-container>\n </ng-template>\n <ng-template pTemplate=\"valueIdCell\" let-rowObject=\"rowObject\" let-column=\"column\">\n <ng-container *ngIf=\"getColumn(rowObject['valueColumnId'], columns) as valueColumn\">\n <ng-container\n *ngIf=\"!valueColumn.filterType || valueColumn.filterType === FilterType.EQUAL\"\n [ngTemplateOutlet]=\"templates[valueColumn.id]\"\n [ngTemplateOutletContext]=\"{\n rowObject: getRowForValueColumn(rowObject),\n column: valueColumn\n }\"\n >\n </ng-container>\n <ng-container\n *ngIf=\"valueColumn.filterType === FilterType.TRUTHY\"\n [ngTemplateOutlet]=\"truthyTemplate\"\n [ngTemplateOutletContext]=\"{\n value: resolveFieldData(rowObject, column.id)\n }\"\n >\n </ng-container>\n </ng-container>\n </ng-template>\n <ng-template pTemplate=\"actionsIdCell\" let-rowObject=\"rowObject\" let-column=\"column\">\n <div>\n <button\n pButton\n class=\"p-button-rounded p-button-danger p-button-text\"\n title=\"{{ 'OCX_FILTER_VIEW.TABLE.REMOVE_FILTER_TITLE' | translate }}\"\n [attr.aria-label]=\"'OCX_FILTER_VIEW.TABLE.REMOVE_FILTER_ARIA_LABEL' | translate\"\n icon=\"pi pi-trash\"\n (click)=\"onFilterDelete(rowObject)\"\n ></button>\n </div>\n </ng-template>\n </ocx-data-table>\n </div>\n </ng-template>\n </p-overlayPanel>\n </ng-template>\n </div>\n</ng-container>\n\n<ng-template #chipTemplate let-templates=\"templates\" let-filter=\"filter\" let-column=\"column\">\n <ng-container\n *ngIf=\"templates[column.id] as template\"\n [ngTemplateOutlet]=\"template\"\n [ngTemplateOutletContext]=\"{\n rowObject: getRowObjectFromFiterData(filter),\n column: column\n }\"\n >\n </ng-container>\n</ng-template>\n\n<ng-template #truthyTemplate let-value=\"value\">\n <ng-container *ngIf=\"value\"> {{'OCX_FILTER_VIEW.FILTER_YES' | translate}} </ng-container>\n <ng-container *ngIf=\"!value\"> {{'OCX_FILTER_VIEW.FILTER_NO' | translate}} </ng-container>\n</ng-template>\n\n<ng-template pTemplate=\"defaultStringValue\" let-rowObject=\"rowObject\" let-column=\"column\">\n <ng-container> {{ resolveFieldData(rowObject, column.id)}} </ng-container>\n</ng-template>\n\n<ng-template pTemplate=\"defaultNumberValue\" let-rowObject=\"rowObject\" let-column=\"column\">\n <ng-container> {{ resolveFieldData(rowObject, column.id) | number }} </ng-container>\n</ng-template>\n\n<ng-template pTemplate=\"defaultCustomValue\" let-rowObject=\"rowObject\" let-column=\"column\"> </ng-template>\n\n<ng-template pTemplate=\"defaultDateValue\" let-rowObject=\"rowObject\" let-column=\"column\">\n <ng-container> {{ resolveFieldData(rowObject, column.id) | date: column.dateFormat ?? 'medium' }} </ng-container>\n</ng-template>\n\n<ng-template pTemplate=\"defaultRelativeDateValue\" let-rowObject=\"rowObject\" let-column=\"column\">\n <ng-container>\n {{ 'OCX_DATA_TABLE.EDITED' | translate }} {{ resolveFieldData(rowObject, column.id) | timeago }}\n </ng-container>\n</ng-template>\n\n<ng-template pTemplate=\"defaultTranslationKeyValue\" let-rowObject=\"rowObject\" let-column=\"column\">\n <ng-container> {{ resolveFieldData(rowObject, column.id) | translate }}</ng-container>\n</ng-template>\n", styles: [".filter-view-focusable:focus{outline:1px solid var(--primary-color);outline-offset:2px;box-shadow:none;border-radius:var(--chip-border-radius)}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { kind: "directive", type: i3.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "component", type: i4.Chip, selector: "p-chip", inputs: ["label", "icon", "image", "alt", "style", "styleClass", "removable", "removeIcon"], outputs: ["onRemove", "onImageError"] }, { kind: "directive", type: i5.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading", "severity", "raised", "rounded", "text", "outlined", "size", "plain"] }, { kind: "component", type: i5.Button, selector: "p-button", inputs: ["type", "iconPos", "icon", "badge", "label", "disabled", "loading", "loadingIcon", "raised", "rounded", "text", "plain", "severity", "outlined", "link", "tabindex", "size", "style", "styleClass", "badgeClass", "ariaLabel", "autofocus"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "component", type: i6.OverlayPanel, selector: "p-overlayPanel", inputs: ["ariaLabel", "ariaLabelledBy", "dismissable", "showCloseIcon", "style", "styleClass", "appendTo", "autoZIndex", "ariaCloseLabel", "baseZIndex", "focusOnShow", "showTransitionOptions", "hideTransitionOptions"], outputs: ["onShow", "onHide"] }, { kind: "directive", type: i7.FocusTrap, selector: "[pFocusTrap]", inputs: ["pFocusTrapDisabled"] }, { kind: "component", type: i8.DataTableComponent, selector: "ocx-data-table", inputs: ["rows", "selectedRows", "filters", "sortDirection", "sortColumn", "columns", "clientSideFiltering", "clientSideSorting", "sortStates", "pageSizes", "pageSize", "emptyResultsMessage", "name", "deletePermission", "viewPermission", "editPermission", "deleteActionVisibleField", "deleteActionEnabledField", "viewActionVisibleField", "viewActionEnabledField", "editActionVisibleField", "editActionEnabledField", "selectionEnabledField", "allowSelectAll", "paginator", "page", "tableStyle", "totalRecordsOnServer", "currentPageShowingKey", "currentPageShowingWithTotalOnServerKey", "stringCellTemplate", "numberCellTemplate", "customCellTemplate", "dateCellTemplate", "relativeDateCellTemplate", "cellTemplate", "translationKeyCellTemplate", "stringFilterCellTemplate", "numberFilterCellTemplate", "customFilterCellTemplate", "dateFilterCellTemplate", "relativeDateFilterCellTemplate", "filterCellTemplate", "translationKeyFilterCellTemplate", "additionalActions", "frozenActionColumn", "actionColumnPosition", "parentTemplates"], outputs: ["filtered", "sorted", "viewTableRow", "editTableRow", "deleteTableRow", "selectionChanged", "pageChanged", "pageSizeChanged", "componentStateChanged"] }, { kind: "directive", type: i9.IfBreakpointDirective, selector: "[ocxIfBreakpoint]", inputs: ["ocxIfBreakpoint", "ocxIfBreakpointElseTemplate"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i1.DecimalPipe, name: "number" }, { kind: "pipe", type: i1.DatePipe, name: "date" }, { kind: "pipe", type: i10.TranslatePipe, name: "translate" }, { kind: "pipe", type: i11.OcxTimeAgoPipe, name: "timeago" }] }); }
|
|
227
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: FilterViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
228
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.12", type: FilterViewComponent, selector: "ocx-filter-view", inputs: { filters: "filters", columns: "columns", displayMode: "displayMode", selectDisplayedChips: "selectDisplayedChips", chipStyleClass: "chipStyleClass", tableStyle: "tableStyle", panelStyle: "panelStyle", templates: "templates" }, outputs: { filtered: "filtered", componentStateChanged: "componentStateChanged" }, viewQueries: [{ propertyName: "panel", first: true, predicate: OverlayPanel, descendants: true }, { propertyName: "manageButton", first: true, predicate: ["manageButton"], descendants: true }, { propertyName: "defaultTemplates", predicate: PrimeTemplate, descendants: true }], ngImport: i0, template: "<ng-container *ngIf=\"columns$ | async as columns\">\n <div *ngIf=\"filters$ | async as filters\" class=\"flex flex-wrap align-items-center gap-2\">\n <ng-container *ngIf=\"displayMode === 'chips'; else noChipsContent\">\n <ng-container *ocxIfBreakpoint=\"'desktop'; elseTemplate: noChipsContent\">\n <ng-container *ngIf=\"selectDisplayedChips(filters, columns) as selectedFilters\">\n <p-button\n #chipFilterResetButton\n id=\"ocxFilterViewReset\"\n (onClick)=\"onResetFilersClick()\"\n icon=\"pi pi-eraser\"\n pTooltip=\"{{ 'OCX_FILTER_VIEW.RESET_FILTERS_BUTTON.DETAIL' | translate }}\"\n tooltipPosition=\"top\"\n tooltipEvent=\"hover\"\n [ariaLabel]=\"'OCX_FILTER_VIEW.RESET_FILTERS_BUTTON.ARIA_LABEL' | translate\"\n ></p-button>\n <ng-container *ngIf=\"filters.length <= 0\">\n <ng-container\n *ngIf=\"_fitlerViewNoSelection; else defaultNoFilters\"\n [ngTemplateOutlet]=\"_fitlerViewNoSelection\"\n >\n </ng-container>\n <ng-template #defaultNoFilters>\n <span id=\"ocxFilterViewNoFilters\">{{ 'OCX_FILTER_VIEW.NO_FILTERS' | translate }}</span>\n </ng-template>\n </ng-container>\n <ng-container *ngIf=\"(chipTemplates$ | async) ?? {} as templates\">\n <ng-container *ngFor=\"let filter of selectedFilters\">\n <ng-container *ngIf=\"getColumnForFilter(filter, columns) as column\">\n <p-chip [removable]=\"true\" (onRemove)=\"onChipRemove(filter)\" [styleClass]=\"chipStyleClass\">\n <ng-container\n *ngIf=\"_filterViewChipContent; else chipContentTemplate\"\n [ngTemplateOutlet]=\"_filterViewChipContent\"\n [ngTemplateOutletContext]=\"{\n filter: filter,\n column: column,\n filterValueTemplates: templates,\n truthyTemplate: truthyTemplate,\n filterValueTemplate: chipTemplate\n }\"\n >\n </ng-container>\n <ng-template #chipContentTemplate>\n <span\n *ngIf=\"columns$ | async as columns\"\n style=\"white-space: nowrap\"\n class=\"p-chip-text flex flex-nowrap\"\n >{{column?.nameKey ?? '' | translate }}:<ng-container\n *ngIf=\"filter.filterType === FilterType.EQUAL || !filter.filterType\"\n [ngTemplateOutlet]=\"chipTemplate\"\n [ngTemplateOutletContext]=\"{\n templates: templates,\n filter: filter,\n column: column\n }\"\n ></ng-container>\n <ng-container *ngIf=\"filter.filterType === FilterType.TRUTHY\">\n <ng-container\n [ngTemplateOutlet]=\"truthyTemplate\"\n [ngTemplateOutletContext]=\"{\n value: filter.value\n }\"\n ></ng-container>\n </ng-container>\n </span>\n </ng-template>\n </p-chip>\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"selectedFilters.length < filters.length\">\n <p-chip\n #showMoreChip\n id=\"ocxFilterViewShowMore\"\n tabindex=\"0\"\n role=\"button\"\n (click)=\"showPanel($event)\"\n class=\"cursor-pointer filter-view-focusable\"\n (keydown.enter)=\"showPanel($event)\"\n (keydown.space)=\"showPanel($event)\"\n >\n <ng-container\n *ngIf=\"_filterViewShowMoreChip; else showMoreChipTemplate\"\n [ngTemplateOutlet]=\"_filterViewShowMoreChip\"\n [ngTemplateOutletContext]=\"{\n $implicit: filters.length - selectedFilters.length\n }\"\n >\n </ng-container>\n <ng-template #showMoreChipTemplate>\n <span class=\"p-chip-text flex flex-nowrap\"> +{{filters.length - selectedFilters.length}} </span>\n </ng-template>\n <ng-container [ngTemplateOutlet]=\"filterTablePanel\"></ng-container>\n </p-chip>\n </ng-container>\n </ng-container>\n </ng-container>\n </ng-container>\n </ng-container>\n <ng-template #noChipsContent>\n <p-button\n #manageButton\n id=\"ocxFilterViewManage\"\n (onClick)=\"showPanel($event)\"\n icon=\"pi pi-sliders-h\"\n label=\"{{ 'OCX_FILTER_VIEW.MANAGE_FILTERS_BUTTON.LABEL' | translate }}\"\n pTooltip=\"{{ 'OCX_FILTER_VIEW.MANAGE_FILTERS_BUTTON.DETAIL' | translate }}\"\n tooltipPosition=\"top\"\n tooltipEvent=\"hover\"\n [badge]=\"filters.length.toString()\"\n [ariaLabel]=\"'OCX_FILTER_VIEW.MANAGE_FILTERS_BUTTON.ARIA_LABEL' | translate\"\n ></p-button>\n <ng-container [ngTemplateOutlet]=\"filterTablePanel\"></ng-container>\n </ng-template>\n\n <ng-template #filterTablePanel>\n <p-overlayPanel *ngIf=\"tableTemplates$ | async as templates\" #op [style]=\"panelStyle\" (onHide)=\"focusTrigger()\">\n <ng-template pTemplate=\"content\">\n <div pFocusTrap>\n <div class=\"flex justify-content-between align-items-center mb-2\">\n <span class=\"text-2xl font-medium\">{{'OCX_FILTER_VIEW.PANEL_TITLE' | translate}}</span>\n <div>\n <p-button\n pAutoFocus\n [autofocus]=\"true\"\n id=\"ocxFilterViewOverlayReset\"\n (onClick)=\"onResetFilersClick()\"\n icon=\"pi pi-eraser\"\n pTooltip=\"{{ 'OCX_FILTER_VIEW.RESET_FILTERS_BUTTON.DETAIL' | translate }}\"\n tooltipPosition=\"top\"\n tooltipEvent=\"hover\"\n [ariaLabel]=\"'OCX_FILTER_VIEW.RESET_FILTERS_BUTTON.ARIA_LABEL' | translate\"\n ></p-button>\n </div>\n </div>\n <ocx-data-table\n id=\"ocxFilterViewDataTable\"\n [rows]=\"(columnFilterDataRows$ | async) ?? []\"\n [columns]=\"columnFilterTableColumns\"\n [emptyResultsMessage]=\"'OCX_FILTER_VIEW.NO_FILTERS' | translate\"\n [paginator]=\"false\"\n [tableStyle]=\"tableStyle\"\n >\n <ng-template pTemplate=\"columnIdCell\" let-rowObject=\"rowObject\" let-column=\"column\">\n <ng-container\n [ngTemplateOutlet]=\"templates[column.id]\"\n [ngTemplateOutletContext]=\"{\n rowObject: rowObject,\n column: column,\n }\"\n >\n </ng-container>\n </ng-template>\n <ng-template pTemplate=\"valueIdCell\" let-rowObject=\"rowObject\" let-column=\"column\">\n <ng-container *ngIf=\"getColumn(rowObject['valueColumnId'], columns) as valueColumn\">\n <ng-container\n *ngIf=\"!valueColumn.filterType || valueColumn.filterType === FilterType.EQUAL\"\n [ngTemplateOutlet]=\"templates[valueColumn.id]\"\n [ngTemplateOutletContext]=\"{\n rowObject: getRowForValueColumn(rowObject),\n column: valueColumn\n }\"\n >\n </ng-container>\n <ng-container\n *ngIf=\"valueColumn.filterType === FilterType.TRUTHY\"\n [ngTemplateOutlet]=\"truthyTemplate\"\n [ngTemplateOutletContext]=\"{\n value: resolveFieldData(rowObject, column.id)\n }\"\n >\n </ng-container>\n </ng-container>\n </ng-template>\n <ng-template pTemplate=\"actionsIdCell\" let-rowObject=\"rowObject\" let-column=\"column\">\n <div>\n <button\n pButton\n class=\"p-button-rounded p-button-danger p-button-text\"\n title=\"{{ 'OCX_FILTER_VIEW.TABLE.REMOVE_FILTER_TITLE' | translate }}\"\n [attr.aria-label]=\"'OCX_FILTER_VIEW.TABLE.REMOVE_FILTER_ARIA_LABEL' | translate\"\n icon=\"pi pi-trash\"\n (click)=\"onFilterDelete(rowObject)\"\n ></button>\n </div>\n </ng-template>\n </ocx-data-table>\n </div>\n </ng-template>\n </p-overlayPanel>\n </ng-template>\n </div>\n</ng-container>\n\n<ng-template #chipTemplate let-templates=\"templates\" let-filter=\"filter\" let-column=\"column\">\n <ng-container\n *ngIf=\"templates[column.id] as template\"\n [ngTemplateOutlet]=\"template\"\n [ngTemplateOutletContext]=\"{\n rowObject: getRowObjectFromFiterData(filter),\n column: column\n }\"\n >\n </ng-container>\n</ng-template>\n\n<ng-template #truthyTemplate let-value=\"value\">\n <ng-container *ngIf=\"value\"> {{'OCX_FILTER_VIEW.FILTER_YES' | translate}} </ng-container>\n <ng-container *ngIf=\"!value\"> {{'OCX_FILTER_VIEW.FILTER_NO' | translate}} </ng-container>\n</ng-template>\n\n<ng-template pTemplate=\"defaultStringValue\" let-rowObject=\"rowObject\" let-column=\"column\">\n <ng-container> {{ resolveFieldData(rowObject, column.id)}} </ng-container>\n</ng-template>\n\n<ng-template pTemplate=\"defaultNumberValue\" let-rowObject=\"rowObject\" let-column=\"column\">\n <ng-container> {{ resolveFieldData(rowObject, column.id) | number }} </ng-container>\n</ng-template>\n\n<ng-template pTemplate=\"defaultCustomValue\" let-rowObject=\"rowObject\" let-column=\"column\"> </ng-template>\n\n<ng-template pTemplate=\"defaultDateValue\" let-rowObject=\"rowObject\" let-column=\"column\">\n <ng-container> {{ resolveFieldData(rowObject, column.id) | date: column.dateFormat ?? 'medium' }} </ng-container>\n</ng-template>\n\n<ng-template pTemplate=\"defaultRelativeDateValue\" let-rowObject=\"rowObject\" let-column=\"column\">\n <ng-container>\n {{ 'OCX_DATA_TABLE.EDITED' | translate }} {{ resolveFieldData(rowObject, column.id) | timeago }}\n </ng-container>\n</ng-template>\n\n<ng-template pTemplate=\"defaultTranslationKeyValue\" let-rowObject=\"rowObject\" let-column=\"column\">\n <ng-container> {{ resolveFieldData(rowObject, column.id) | translate }}</ng-container>\n</ng-template>\n", styles: [".filter-view-focusable:focus{outline:1px solid var(--primary-color);outline-offset:2px;box-shadow:none;border-radius:var(--chip-border-radius)}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { kind: "directive", type: i3.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "component", type: i4.Chip, selector: "p-chip", inputs: ["label", "icon", "image", "alt", "style", "styleClass", "removable", "removeIcon"], outputs: ["onRemove", "onImageError"] }, { kind: "directive", type: i5.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading", "severity", "raised", "rounded", "text", "outlined", "size", "plain"] }, { kind: "component", type: i5.Button, selector: "p-button", inputs: ["type", "iconPos", "icon", "badge", "label", "disabled", "loading", "loadingIcon", "raised", "rounded", "text", "plain", "severity", "outlined", "link", "tabindex", "size", "style", "styleClass", "badgeClass", "ariaLabel", "autofocus"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "component", type: i6.OverlayPanel, selector: "p-overlayPanel", inputs: ["ariaLabel", "ariaLabelledBy", "dismissable", "showCloseIcon", "style", "styleClass", "appendTo", "autoZIndex", "ariaCloseLabel", "baseZIndex", "focusOnShow", "showTransitionOptions", "hideTransitionOptions"], outputs: ["onShow", "onHide"] }, { kind: "directive", type: i7.FocusTrap, selector: "[pFocusTrap]", inputs: ["pFocusTrapDisabled"] }, { kind: "component", type: i8.DataTableComponent, selector: "ocx-data-table", inputs: ["rows", "selectedRows", "filters", "sortDirection", "sortColumn", "columns", "clientSideFiltering", "clientSideSorting", "sortStates", "pageSizes", "pageSize", "emptyResultsMessage", "name", "deletePermission", "viewPermission", "editPermission", "deleteActionVisibleField", "deleteActionEnabledField", "viewActionVisibleField", "viewActionEnabledField", "editActionVisibleField", "editActionEnabledField", "selectionEnabledField", "allowSelectAll", "paginator", "page", "tableStyle", "totalRecordsOnServer", "currentPageShowingKey", "currentPageShowingWithTotalOnServerKey", "stringCellTemplate", "numberCellTemplate", "customCellTemplate", "dateCellTemplate", "relativeDateCellTemplate", "cellTemplate", "translationKeyCellTemplate", "stringFilterCellTemplate", "numberFilterCellTemplate", "customFilterCellTemplate", "dateFilterCellTemplate", "relativeDateFilterCellTemplate", "filterCellTemplate", "translationKeyFilterCellTemplate", "additionalActions", "frozenActionColumn", "actionColumnPosition", "parentTemplates"], outputs: ["filtered", "sorted", "viewTableRow", "editTableRow", "deleteTableRow", "selectionChanged", "pageChanged", "pageSizeChanged", "componentStateChanged"] }, { kind: "directive", type: i9.IfBreakpointDirective, selector: "[ocxIfBreakpoint]", inputs: ["ocxIfBreakpoint", "ocxIfBreakpointElseTemplate"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i1.DecimalPipe, name: "number" }, { kind: "pipe", type: i1.DatePipe, name: "date" }, { kind: "pipe", type: i10.TranslatePipe, name: "translate" }, { kind: "pipe", type: i11.OcxTimeAgoPipe, name: "timeago" }] }); }
|
|
229
229
|
}
|
|
230
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
230
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: FilterViewComponent, decorators: [{
|
|
231
231
|
type: Component,
|
|
232
232
|
args: [{ selector: 'ocx-filter-view', template: "<ng-container *ngIf=\"columns$ | async as columns\">\n <div *ngIf=\"filters$ | async as filters\" class=\"flex flex-wrap align-items-center gap-2\">\n <ng-container *ngIf=\"displayMode === 'chips'; else noChipsContent\">\n <ng-container *ocxIfBreakpoint=\"'desktop'; elseTemplate: noChipsContent\">\n <ng-container *ngIf=\"selectDisplayedChips(filters, columns) as selectedFilters\">\n <p-button\n #chipFilterResetButton\n id=\"ocxFilterViewReset\"\n (onClick)=\"onResetFilersClick()\"\n icon=\"pi pi-eraser\"\n pTooltip=\"{{ 'OCX_FILTER_VIEW.RESET_FILTERS_BUTTON.DETAIL' | translate }}\"\n tooltipPosition=\"top\"\n tooltipEvent=\"hover\"\n [ariaLabel]=\"'OCX_FILTER_VIEW.RESET_FILTERS_BUTTON.ARIA_LABEL' | translate\"\n ></p-button>\n <ng-container *ngIf=\"filters.length <= 0\">\n <ng-container\n *ngIf=\"_fitlerViewNoSelection; else defaultNoFilters\"\n [ngTemplateOutlet]=\"_fitlerViewNoSelection\"\n >\n </ng-container>\n <ng-template #defaultNoFilters>\n <span id=\"ocxFilterViewNoFilters\">{{ 'OCX_FILTER_VIEW.NO_FILTERS' | translate }}</span>\n </ng-template>\n </ng-container>\n <ng-container *ngIf=\"(chipTemplates$ | async) ?? {} as templates\">\n <ng-container *ngFor=\"let filter of selectedFilters\">\n <ng-container *ngIf=\"getColumnForFilter(filter, columns) as column\">\n <p-chip [removable]=\"true\" (onRemove)=\"onChipRemove(filter)\" [styleClass]=\"chipStyleClass\">\n <ng-container\n *ngIf=\"_filterViewChipContent; else chipContentTemplate\"\n [ngTemplateOutlet]=\"_filterViewChipContent\"\n [ngTemplateOutletContext]=\"{\n filter: filter,\n column: column,\n filterValueTemplates: templates,\n truthyTemplate: truthyTemplate,\n filterValueTemplate: chipTemplate\n }\"\n >\n </ng-container>\n <ng-template #chipContentTemplate>\n <span\n *ngIf=\"columns$ | async as columns\"\n style=\"white-space: nowrap\"\n class=\"p-chip-text flex flex-nowrap\"\n >{{column?.nameKey ?? '' | translate }}:<ng-container\n *ngIf=\"filter.filterType === FilterType.EQUAL || !filter.filterType\"\n [ngTemplateOutlet]=\"chipTemplate\"\n [ngTemplateOutletContext]=\"{\n templates: templates,\n filter: filter,\n column: column\n }\"\n ></ng-container>\n <ng-container *ngIf=\"filter.filterType === FilterType.TRUTHY\">\n <ng-container\n [ngTemplateOutlet]=\"truthyTemplate\"\n [ngTemplateOutletContext]=\"{\n value: filter.value\n }\"\n ></ng-container>\n </ng-container>\n </span>\n </ng-template>\n </p-chip>\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"selectedFilters.length < filters.length\">\n <p-chip\n #showMoreChip\n id=\"ocxFilterViewShowMore\"\n tabindex=\"0\"\n role=\"button\"\n (click)=\"showPanel($event)\"\n class=\"cursor-pointer filter-view-focusable\"\n (keydown.enter)=\"showPanel($event)\"\n (keydown.space)=\"showPanel($event)\"\n >\n <ng-container\n *ngIf=\"_filterViewShowMoreChip; else showMoreChipTemplate\"\n [ngTemplateOutlet]=\"_filterViewShowMoreChip\"\n [ngTemplateOutletContext]=\"{\n $implicit: filters.length - selectedFilters.length\n }\"\n >\n </ng-container>\n <ng-template #showMoreChipTemplate>\n <span class=\"p-chip-text flex flex-nowrap\"> +{{filters.length - selectedFilters.length}} </span>\n </ng-template>\n <ng-container [ngTemplateOutlet]=\"filterTablePanel\"></ng-container>\n </p-chip>\n </ng-container>\n </ng-container>\n </ng-container>\n </ng-container>\n </ng-container>\n <ng-template #noChipsContent>\n <p-button\n #manageButton\n id=\"ocxFilterViewManage\"\n (onClick)=\"showPanel($event)\"\n icon=\"pi pi-sliders-h\"\n label=\"{{ 'OCX_FILTER_VIEW.MANAGE_FILTERS_BUTTON.LABEL' | translate }}\"\n pTooltip=\"{{ 'OCX_FILTER_VIEW.MANAGE_FILTERS_BUTTON.DETAIL' | translate }}\"\n tooltipPosition=\"top\"\n tooltipEvent=\"hover\"\n [badge]=\"filters.length.toString()\"\n [ariaLabel]=\"'OCX_FILTER_VIEW.MANAGE_FILTERS_BUTTON.ARIA_LABEL' | translate\"\n ></p-button>\n <ng-container [ngTemplateOutlet]=\"filterTablePanel\"></ng-container>\n </ng-template>\n\n <ng-template #filterTablePanel>\n <p-overlayPanel *ngIf=\"tableTemplates$ | async as templates\" #op [style]=\"panelStyle\" (onHide)=\"focusTrigger()\">\n <ng-template pTemplate=\"content\">\n <div pFocusTrap>\n <div class=\"flex justify-content-between align-items-center mb-2\">\n <span class=\"text-2xl font-medium\">{{'OCX_FILTER_VIEW.PANEL_TITLE' | translate}}</span>\n <div>\n <p-button\n pAutoFocus\n [autofocus]=\"true\"\n id=\"ocxFilterViewOverlayReset\"\n (onClick)=\"onResetFilersClick()\"\n icon=\"pi pi-eraser\"\n pTooltip=\"{{ 'OCX_FILTER_VIEW.RESET_FILTERS_BUTTON.DETAIL' | translate }}\"\n tooltipPosition=\"top\"\n tooltipEvent=\"hover\"\n [ariaLabel]=\"'OCX_FILTER_VIEW.RESET_FILTERS_BUTTON.ARIA_LABEL' | translate\"\n ></p-button>\n </div>\n </div>\n <ocx-data-table\n id=\"ocxFilterViewDataTable\"\n [rows]=\"(columnFilterDataRows$ | async) ?? []\"\n [columns]=\"columnFilterTableColumns\"\n [emptyResultsMessage]=\"'OCX_FILTER_VIEW.NO_FILTERS' | translate\"\n [paginator]=\"false\"\n [tableStyle]=\"tableStyle\"\n >\n <ng-template pTemplate=\"columnIdCell\" let-rowObject=\"rowObject\" let-column=\"column\">\n <ng-container\n [ngTemplateOutlet]=\"templates[column.id]\"\n [ngTemplateOutletContext]=\"{\n rowObject: rowObject,\n column: column,\n }\"\n >\n </ng-container>\n </ng-template>\n <ng-template pTemplate=\"valueIdCell\" let-rowObject=\"rowObject\" let-column=\"column\">\n <ng-container *ngIf=\"getColumn(rowObject['valueColumnId'], columns) as valueColumn\">\n <ng-container\n *ngIf=\"!valueColumn.filterType || valueColumn.filterType === FilterType.EQUAL\"\n [ngTemplateOutlet]=\"templates[valueColumn.id]\"\n [ngTemplateOutletContext]=\"{\n rowObject: getRowForValueColumn(rowObject),\n column: valueColumn\n }\"\n >\n </ng-container>\n <ng-container\n *ngIf=\"valueColumn.filterType === FilterType.TRUTHY\"\n [ngTemplateOutlet]=\"truthyTemplate\"\n [ngTemplateOutletContext]=\"{\n value: resolveFieldData(rowObject, column.id)\n }\"\n >\n </ng-container>\n </ng-container>\n </ng-template>\n <ng-template pTemplate=\"actionsIdCell\" let-rowObject=\"rowObject\" let-column=\"column\">\n <div>\n <button\n pButton\n class=\"p-button-rounded p-button-danger p-button-text\"\n title=\"{{ 'OCX_FILTER_VIEW.TABLE.REMOVE_FILTER_TITLE' | translate }}\"\n [attr.aria-label]=\"'OCX_FILTER_VIEW.TABLE.REMOVE_FILTER_ARIA_LABEL' | translate\"\n icon=\"pi pi-trash\"\n (click)=\"onFilterDelete(rowObject)\"\n ></button>\n </div>\n </ng-template>\n </ocx-data-table>\n </div>\n </ng-template>\n </p-overlayPanel>\n </ng-template>\n </div>\n</ng-container>\n\n<ng-template #chipTemplate let-templates=\"templates\" let-filter=\"filter\" let-column=\"column\">\n <ng-container\n *ngIf=\"templates[column.id] as template\"\n [ngTemplateOutlet]=\"template\"\n [ngTemplateOutletContext]=\"{\n rowObject: getRowObjectFromFiterData(filter),\n column: column\n }\"\n >\n </ng-container>\n</ng-template>\n\n<ng-template #truthyTemplate let-value=\"value\">\n <ng-container *ngIf=\"value\"> {{'OCX_FILTER_VIEW.FILTER_YES' | translate}} </ng-container>\n <ng-container *ngIf=\"!value\"> {{'OCX_FILTER_VIEW.FILTER_NO' | translate}} </ng-container>\n</ng-template>\n\n<ng-template pTemplate=\"defaultStringValue\" let-rowObject=\"rowObject\" let-column=\"column\">\n <ng-container> {{ resolveFieldData(rowObject, column.id)}} </ng-container>\n</ng-template>\n\n<ng-template pTemplate=\"defaultNumberValue\" let-rowObject=\"rowObject\" let-column=\"column\">\n <ng-container> {{ resolveFieldData(rowObject, column.id) | number }} </ng-container>\n</ng-template>\n\n<ng-template pTemplate=\"defaultCustomValue\" let-rowObject=\"rowObject\" let-column=\"column\"> </ng-template>\n\n<ng-template pTemplate=\"defaultDateValue\" let-rowObject=\"rowObject\" let-column=\"column\">\n <ng-container> {{ resolveFieldData(rowObject, column.id) | date: column.dateFormat ?? 'medium' }} </ng-container>\n</ng-template>\n\n<ng-template pTemplate=\"defaultRelativeDateValue\" let-rowObject=\"rowObject\" let-column=\"column\">\n <ng-container>\n {{ 'OCX_DATA_TABLE.EDITED' | translate }} {{ resolveFieldData(rowObject, column.id) | timeago }}\n </ng-container>\n</ng-template>\n\n<ng-template pTemplate=\"defaultTranslationKeyValue\" let-rowObject=\"rowObject\" let-column=\"column\">\n <ng-container> {{ resolveFieldData(rowObject, column.id) | translate }}</ng-container>\n</ng-template>\n", styles: [".filter-view-focusable:focus{outline:1px solid var(--primary-color);outline-offset:2px;box-shadow:none;border-radius:var(--chip-border-radius)}\n"] }]
|
|
233
233
|
}], propDecorators: { filters: [{
|
|
@@ -260,4 +260,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImpor
|
|
|
260
260
|
}], templates: [{
|
|
261
261
|
type: Input
|
|
262
262
|
}] } });
|
|
263
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLXZpZXcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLWFjY2VsZXJhdG9yL3NyYy9saWIvY29tcG9uZW50cy9maWx0ZXItdmlldy9maWx0ZXItdmlldy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItYWNjZWxlcmF0b3Ivc3JjL2xpYi9jb21wb25lbnRzL2ZpbHRlci12aWV3L2ZpbHRlci12aWV3LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBR04sU0FBUyxFQUNULFlBQVksR0FDYixNQUFNLGVBQWUsQ0FBQTtBQUN0QixPQUFPLEVBQVUsVUFBVSxFQUFFLE1BQU0sMEJBQTBCLENBQUE7QUFFN0QsT0FBTyxFQUFFLGVBQWUsRUFBYyxhQUFhLEVBQUUsWUFBWSxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQTtBQUNwRixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUE7QUFDMUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGFBQWEsQ0FBQTtBQUMzQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNEJBQTRCLENBQUE7QUFDekQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHlCQUF5QixDQUFBO0FBQ3JELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQTtBQUNoRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFFbkQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFBOzs7Ozs7Ozs7Ozs7O0FBcUJ2QyxNQUFNLE9BQU8sbUJBQW1CO0lBTGhDO1FBTUUsZUFBVSxHQUFHLFVBQVUsQ0FBQTtRQUN2QixlQUFVLEdBQUcsVUFBVSxD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c0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgUXVlcnlMaXN0LFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NoaWxkLFxuICBWaWV3Q2hpbGRyZW4sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBGaWx0ZXIsIEZpbHRlclR5cGUgfSBmcm9tICcuLi8uLi9tb2RlbC9maWx0ZXIubW9kZWwnXG5pbXBvcnQgeyBEYXRhVGFibGVDb2x1bW4gfSBmcm9tICcuLi8uLi9tb2RlbC9kYXRhLXRhYmxlLWNvbHVtbi5tb2RlbCdcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgY29tYmluZUxhdGVzdCwgZGVib3VuY2VUaW1lLCBtYXAgfSBmcm9tICdyeGpzJ1xuaW1wb3J0IHsgQ29sdW1uVHlwZSB9IGZyb20gJy4uLy4uL21vZGVsL2NvbHVtbi10eXBlLm1vZGVsJ1xuaW1wb3J0IHsgUHJpbWVUZW1wbGF0ZSB9IGZyb20gJ3ByaW1lbmcvYXBpJ1xuaW1wb3J0IHsgZmluZFRlbXBsYXRlIH0gZnJvbSAnLi4vLi4vdXRpbHMvdGVtcGxhdGUudXRpbHMnXG5pbXBvcnQgeyBPYmplY3RVdGlscyB9IGZyb20gJy4uLy4uL3V0aWxzL29iamVjdHV0aWxzJ1xuaW1wb3J0IHsgbGltaXQgfSBmcm9tICcuLi8uLi91dGlscy9maWx0ZXIudXRpbHMnXG5pbXBvcnQgeyBPdmVybGF5UGFuZWwgfSBmcm9tICdwcmltZW5nL292ZXJsYXlwYW5lbCdcbmltcG9ydCB7IFJvdyB9IGZyb20gJy4uL2RhdGEtdGFibGUvZGF0YS10YWJsZS5jb21wb25lbnQnXG5pbXBvcnQgeyBCdXR0b24gfSBmcm9tICdwcmltZW5nL2J1dHRvbidcblxuZXhwb3J0IHR5cGUgRmlsdGVyVmlld0Rpc3BsYXlNb2RlID0gJ2NoaXBzJyB8ICdidXR0b24nXG5leHBvcnQgdHlwZSBGaWx0ZXJWaWV3Um93RGlzcGxheURhdGEgPSB7XG4gIGlkOiBzdHJpbmdcbiAgY29sdW1uOiBzdHJpbmdcbiAgdmFsdWU6IHVua25vd25cbn1cbmV4cG9ydCB0eXBlIEZpbHRlclZpZXdSb3dEZXRhaWxEYXRhID0gRmlsdGVyVmlld1Jvd0Rpc3BsYXlEYXRhICYge1xuICB2YWx1ZUNvbHVtbklkOiBzdHJpbmdcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGaWx0ZXJWaWV3Q29tcG9uZW50U3RhdGUge1xuICBmaWx0ZXJzPzogRmlsdGVyW11cbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnb2N4LWZpbHRlci12aWV3JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2ZpbHRlci12aWV3LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZmlsdGVyLXZpZXcuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgRmlsdGVyVmlld0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIENvbHVtblR5cGUgPSBDb2x1bW5UeXBlXG4gIEZpbHRlclR5cGUgPSBGaWx0ZXJUeXBlXG4gIGZpbHRlcnMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxGaWx0ZXJbXT4oW10pXG4gIEBJbnB1dCgpXG4gIGdldCBmaWx0ZXJzKCk6IEZpbHRlcltdIHtcbiAgICByZXR1cm4gdGhpcy5maWx0ZXJzJC5nZXRWYWx1ZSgpXG4gIH1cbiAgc2V0IGZpbHRlcnModmFsdWU6IEZpbHRlcltdKSB7XG4gICAgdGhpcy5maWx0ZXJzJC5uZXh0KHZhbHVlKVxuICB9XG4gIGNvbHVtbnMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxEYXRhVGFibGVDb2x1bW5bXT4oW10pXG4gIEBJbnB1dCgpXG4gIGdldCBjb2x1bW5zKCk6IERhdGFUYWJsZUNvbHVtbltdIHtcbiAgICByZXR1cm4gdGhpcy5jb2x1bW5zJC5nZXRWYWx1ZSgpXG4gIH1cbiAgc2V0IGNvbHVtbnModmFsdWU6IERhdGFUYWJsZUNvbHVtbltdKSB7XG4gICAgdGhpcy5jb2x1bW5zJC5uZXh0KHZhbHVlKVxuICAgIGNvbnN0IGNoaXBPYnMgPSB2YWx1ZS5tYXAoKGMpID0+IHRoaXMuZ2V0VGVtcGxhdGUoYywgdGhpcy5jaGlwVGVtcGxhdGVOYW1lcywgdGhpcy5jaGlwVGVtcGxhdGVzLCB0aGlzLmNoaXBJZFN1ZmZpeCkpXG4gICAgdGhpcy5jaGlwVGVtcGxhdGVzJCA9IGNvbWJpbmVMYXRlc3QoY2hpcE9icykucGlwZShcbiAgICAgIG1hcCgodmFsdWVzKSA9PiBPYmplY3QuZnJvbUVudHJpZXModmFsdWUubWFwKChjLCBpKSA9PiBbYy5pZCwgdmFsdWVzW2ldXSkpKVxuICAgIClcblxuICAgIGNvbnN0IHRhYmxlVGVtcGxhdGVDb2x1bW5zID0gdmFsdWUuY29uY2F0KHRoaXMuY29sdW1uRmlsdGVyVGFibGVDb2x1bW5zKVxuICAgIHRoaXMudGFibGVUZW1wbGF0ZXMkID0gY29tYmluZUxhdGVzdChcbiAgICAgIHRhYmxlVGVtcGxhdGVDb2x1bW5zLm1hcCgoYykgPT5cbiAgICAgICAgdGhpcy5nZXRUZW1wbGF0ZShjLCB0aGlzLnRhYmxlVGVtcGxhdGVOYW1lcywgdGhpcy50YWJsZVRlbXBsYXRlcywgdGhpcy50YWJsZUlkU3VmZml4KVxuICAgICAgKVxuICAgICkucGlwZShtYXAoKHZhbHVlcykgPT4gT2JqZWN0LmZyb21FbnRyaWVzKHRhYmxlVGVtcGxhdGVDb2x1bW5zLm1hcCgoYywgaSkgPT4gW2MuaWQsIHZhbHVlc1tpXV0pKSkpXG4gIH1cblxuICBjb2x1bW5GaWx0ZXJEYXRhUm93cyQ6IE9ic2VydmFibGU8RmlsdGVyVmlld1Jvd0Rpc3BsYXlEYXRhW10+IHwgdW5kZWZpbmVkXG5cbiAgQElucHV0KCkgZGlzcGxheU1vZGU6IEZpbHRlclZpZXdEaXNwbGF5TW9kZSA9ICdidXR0b24nXG4gIEBJbnB1dCgpIHNlbGVjdERpc3BsYXllZENoaXBzOiAoZmlsdGVyczogRmlsdGVyW10sIGNvbHVtbnM6IERhdGFUYWJsZUNvbHVtbltdKSA9PiBGaWx0ZXJbXSA9IChmaWx0ZXJzKSA9PlxuICAgIGxpbWl0KGZpbHRlcnMsIDMsIHsgcmV2ZXJzZTogdHJ1ZSB9KVxuICBASW5wdXQoKSBjaGlwU3R5bGVDbGFzcyA9ICcnXG4gIEBJbnB1dCgpIHRhYmxlU3R5bGU6IHsgW2tsYXNzOiBzdHJpbmddOiBhbnkgfSA9IHsgJ21heC1oZWlnaHQnOiAnNTB2aCcgfVxuICBASW5wdXQoKSBwYW5lbFN0eWxlOiB7IFtrbGFzczogc3RyaW5nXTogYW55IH0gPSB7ICdtYXgtd2lkdGgnOiAnOTAlJyB9XG5cbiAgQE91dHB1dCgpIGZpbHRlcmVkOiBFdmVudEVtaXR0ZXI8RmlsdGVyW10+ID0gbmV3IEV2ZW50RW1pdHRlcigpXG4gIEBPdXRwdXQoKSBjb21wb25lbnRTdGF0ZUNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxGaWx0ZXJWaWV3Q29tcG9uZW50U3RhdGU+ID0gbmV3IEV2ZW50RW1pdHRlcigpXG5cbiAgY29sdW1uRmlsdGVyVGFibGVDb2x1bW5zOiBEYXRhVGFibGVDb2x1bW5bXSA9IFtcbiAgICB7XG4gICAgICBpZDogJ2NvbHVtbicsXG4gICAgICBjb2x1bW5UeXBlOiBDb2x1bW5UeXBlLlRSQU5TTEFUSU9OX0tFWSxcbiAgICAgIG5hbWVLZXk6ICdPQ1hfRklMVEVSX1ZJRVcuVEFCTEUuQ09MVU1OX05BTUUnLFxuICAgIH0sXG4gICAgeyBpZDogJ3ZhbHVlJywgY29sdW1uVHlwZTogQ29sdW1uVHlwZS5TVFJJTkcsIG5hbWVLZXk6ICdPQ1hfRklMVEVSX1ZJRVcuVEFCTEUuVkFMVUUnIH0sXG4gICAge1xuICAgICAgaWQ6ICdhY3Rpb25zJyxcbiAgICAgIGNvbHVtblR5cGU6IENvbHVtblR5cGUuU1RSSU5HLFxuICAgICAgbmFtZUtleTogJ09DWF9GSUxURVJfVklFVy5UQUJMRS5BQ1RJT05TJyxcbiAgICB9LFxuICBdXG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5jb2x1bW5GaWx0ZXJEYXRhUm93cyQgPSBjb21iaW5lTGF0ZXN0KFt0aGlzLmZpbHRlcnMkLCB0aGlzLmNvbHVtbnMkXSkucGlwZShcbiAgICAgIG1hcCgoW2ZpbHRlcnMsIGNvbHVtbnNdKSA9PiB7XG4gICAgICAgIGNvbnN0IGNvbHVtbklkcyA9IGNvbHVtbnMubWFwKChjKSA9PiBjLmlkKVxuICAgICAgICByZXR1cm4gZmlsdGVyc1xuICAgICAgICAgIC5tYXAoKGYpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGZpbHRlckNvbHVtbiA9IHRoaXMuZ2V0Q29sdW1uRm9yRmlsdGVyKGYsIGNvbHVtbnMpXG4gICAgICAgICAgICBpZiAoIWZpbHRlckNvbHVtbikgcmV0dXJuIHVuZGVmaW5lZFxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgaWQ6IGAke2YuY29sdW1uSWR9LSR7Zi52YWx1ZX1gLFxuICAgICAgICAgICAgICBjb2x1bW46IGZpbHRlckNvbHVtbi5uYW1lS2V5LFxuICAgICAgICAgICAgICB2YWx1ZTogZi52YWx1ZSxcbiAgICAgICAgICAgICAgdmFsdWVDb2x1bW5JZDogZmlsdGVyQ29sdW1uLmlkLFxuICAgICAgICAgICAgfSBzYXRpc2ZpZXMgRmlsdGVyVmlld1Jvd0RldGFpbERhdGFcbiAgICAgICAgICB9KVxuICAgICAgICAgIC5maWx0ZXIoKHYpOiB2IGlzIEZpbHRlclZpZXdSb3dEZXRhaWxEYXRhID0+IHYgIT09IHVuZGVmaW5lZClcbiAgICAgICAgICAuc2xpY2UoKVxuICAgICAgICAgIC5zb3J0KChhLCBiKSA9PiBjb2x1bW5JZHMuaW5kZXhPZihhLnZhbHVlQ29sdW1uSWQpIC0gY29sdW1uSWRzLmluZGV4T2YoYi52YWx1ZUNvbHVtbklkKSlcbiAgICAgIH0pXG4gICAgKVxuICAgIHRoaXMuY29tcG9uZW50U3RhdGVDaGFuZ2VkLmVtaXQoe1xuICAgICAgZmlsdGVyczogdGhpcy5maWx0ZXJzLFxuICAgIH0pXG4gIH1cblxuICBAVmlld0NoaWxkKE92ZXJsYXlQYW5lbCkgcGFuZWwhOiBPdmVybGF5UGFuZWxcbiAgQFZpZXdDaGlsZCgnbWFuYWdlQnV0dG9uJykgbWFuYWdlQnV0dG9uITogQnV0dG9uXG4gIHRyaWdnZXI6IEhUTUxFbGVtZW50IHwgdW5kZWZpbmVkXG5cbiAgZml0bGVyVmlld05vU2VsZWN0aW9uOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkXG4gIGdldCBfZml0bGVyVmlld05vU2VsZWN0aW9uKCk6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLmZpdGxlclZpZXdOb1NlbGVjdGlvblxuICB9XG5cbiAgZmlsdGVyVmlld0NoaXBDb250ZW50OiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkXG4gIGdldCBfZmlsdGVyVmlld0NoaXBDb250ZW50KCk6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLmZpbHRlclZpZXdDaGlwQ29udGVudFxuICB9XG5cbiAgZmlsdGVyVmlld1Nob3dNb3JlQ2hpcDogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZFxuICBnZXQgX2ZpbHRlclZpZXdTaG93TW9yZUNoaXAoKTogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuZmlsdGVyVmlld1Nob3dNb3JlQ2hpcFxuICB9XG5cbiAgZGVmYXVsdFRlbXBsYXRlcyQ6IEJlaGF2aW9yU3ViamVjdDxRdWVyeUxpc3Q8UHJpbWVUZW1wbGF0ZT4gfCB1bmRlZmluZWQ+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxcbiAgICBRdWVyeUxpc3Q8UHJpbWVUZW1wbGF0ZT4gfCB1bmRlZmluZWRcbiAgPih1bmRlZmluZWQpXG4gIEBWaWV3Q2hpbGRyZW4oUHJpbWVUZW1wbGF0ZSlcbiAgc2V0IGRlZmF1bHRUZW1wbGF0ZXModmFsdWU6IFF1ZXJ5TGlzdDxQcmltZVRlbXBsYXRlPiB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuZGVmYXVsdFRlbXBsYXRlcyQubmV4dCh2YWx1ZSlcbiAgfVxuXG4gIHBhcmVudFRlbXBsYXRlcyQ6IEJlaGF2aW9yU3ViamVjdDxRdWVyeUxpc3Q8UHJpbWVUZW1wbGF0ZT4gfCBudWxsIHwgdW5kZWZpbmVkPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8XG4gICAgUXVlcnlMaXN0PFByaW1lVGVtcGxhdGU+IHwgbnVsbCB8IHVuZGVmaW5lZFxuICA+KHVuZGVmaW5lZClcbiAgQElucHV0KClcbiAgc2V0IHRlbXBsYXRlcyh2YWx1ZTogUXVlcnlMaXN0PFByaW1lVGVtcGxhdGU+IHwgbnVsbCB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMucGFyZW50VGVtcGxhdGVzJC5uZXh0KHZhbHVlKVxuICAgIHZhbHVlPy5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICBzd2l0Y2ggKGl0ZW0uZ2V0VHlwZSgpKSB7XG4gICAgICAgIGNhc2UgJ2ZpdGxlclZpZXdOb1NlbGVjdGlvbic6XG4gICAgICAgICAgdGhpcy5maXRsZXJWaWV3Tm9TZWxlY3Rpb24gPSBpdGVtLnRlbXBsYXRlXG4gICAgICAgICAgYnJlYWtcbiAgICAgICAgY2FzZSAnZmlsdGVyVmlld0NoaXBDb250ZW50JzpcbiAgICAgICAgICB0aGlzLmZpbHRlclZpZXdDaGlwQ29udGVudCA9IGl0ZW0udGVtcGxhdGVcbiAgICAgICAgICBicmVha1xuICAgICAgICBjYXNlICdmaWx0ZXJWaWV3U2hvd01vcmVDaGlwJzpcbiAgICAgICAgICB0aGlzLmZpbHRlclZpZXdTaG93TW9yZUNoaXAgPSBpdGVtLnRlbXBsYXRlXG4gICAgICAgICAgYnJlYWtcbiAgICAgIH1cbiAgICB9KVxuICB9XG5cbiAgY2hpcFRlbXBsYXRlcyQ6IE9ic2VydmFibGU8UmVjb3JkPHN0cmluZywgVGVtcGxhdGVSZWY8YW55PiB8IG51bGw+PiB8IHVuZGVmaW5lZFxuICB0YWJsZVRlbXBsYXRlcyQ6IE9ic2VydmFibGU8UmVjb3JkPHN0cmluZywgVGVtcGxhdGVSZWY8YW55PiB8IG51bGw+PiB8IHVuZGVmaW5lZFxuXG4gIGNoaXBJZFN1ZmZpeDogQXJyYXk8c3RyaW5nPiA9IFsnSWRGaWx0ZXJDaGlwJywgJ0lkVGFibGVGaWx0ZXJDZWxsJywgJ0lkVGFibGVDZWxsJ11cbiAgY2hpcFRlbXBsYXRlTmFtZXM6IFJlY29yZDxDb2x1bW5UeXBlLCBBcnJheTxzdHJpbmc+PiA9IHtcbiAgICBbQ29sdW1uVHlwZS5EQVRFXTogWydkYXRlRmlsdGVyQ2hpcFZhbHVlJywgJ2RhdGVUYWJsZUZpbHRlckNlbGwnLCAnZGF0ZVRhYmxlQ2VsbCcsICdkZWZhdWx0RGF0ZVZhbHVlJ10sXG4gICAgW0NvbHVtblR5cGUuTlVNQkVSXTogWydudW1iZXJGaWx0ZXJDaGlwVmFsdWUnLCAnbnVtYmVyVGFibGVGaWx0ZXJDZWxsJywgJ251bWJlclRhYmxlQ2VsbCcsICdkZWZhdWx0TnVtYmVyVmFsdWUnXSxcbiAgICBbQ29sdW1uVHlwZS5SRUxBVElWRV9EQVRFXTogW1xuICAgICAgJ3JlbGF0aXZlRGF0ZUZpbHRlckNoaXBWYWx1ZScsXG4gICAgICAncmVsYXRpdmVEYXRlVGFibGVGaWx0ZXJDZWxsJyxcbiAgICAgICdyZWxhdGl2ZURhdGVUYWJsZUNlbGwnLFxuICAgICAgJ2RlZmF1bHRSZWxhdGl2ZURhdGVWYWx1ZScsXG4gICAgXSxcbiAgICBbQ29sdW1uVHlwZS5UUkFOU0xBVElPTl9LRVldOiBbXG4gICAgICAndHJhbnNsYXRpb25LZXlGaWx0ZXJDaGlwVmFsdWUnLFxuICAgICAgJ3RyYW5zbGF0aW9uS2V5VGFibGVGaWx0ZXJDZWxsJyxcbiAgICAgICd0cmFuc2xhdGlvbktleVRhYmxlQ2VsbCcsXG4gICAgICAnZGVmYXVsdFRyYW5zbGF0aW9uS2V5VmFsdWUnLFxuICAgIF0sXG4gICAgW0NvbHVtblR5cGUuQ1VTVE9NXTogWydjdXN0b21GaWx0ZXJDaGlwVmFsdWUnLCAnY3VzdG9tVGFibGVGaWx0ZXJDZWxsJywgJ2N1c3RvbVRhYmxlQ2VsbCcsICdkZWZhdWx0Q3VzdG9tVmFsdWUnXSxcbiAgICBbQ29sdW1uVHlwZS5TVFJJTkddOiBbJ3N0cmluZ0ZpbHRlckNoaXBWYWx1ZScsICdzdHJpbmdUYWJsZUZpbHRlckNlbGwnLCAnc3RyaW5nVGFibGVDZWxsJywgJ2RlZmF1bHRTdHJpbmdWYWx1ZSddLFxuICB9XG4gIGNoaXBUZW1wbGF0ZXM6IFJlY29yZDxzdHJpbmcsIE9ic2VydmFibGU8VGVtcGxhdGVSZWY8YW55PiB8IG51bGw+PiA9IHt9XG5cbiAgdGFibGVJZFN1ZmZpeDogQXJyYXk8c3RyaW5nPiA9IFsnSWRGaWx0ZXJWaWV3Q2VsbCcsICdJZFRhYmxlRmlsdGVyQ2VsbCcsICdJZFRhYmxlQ2VsbCddXG4gIHRhYmxlVGVtcGxhdGVOYW1lczogUmVjb3JkPENvbHVtblR5cGUsIEFycmF5PHN0cmluZz4+ID0ge1xuICAgIFtDb2x1bW5UeXBlLkRBVEVdOiBbJ2RhdGVGaWx0ZXJWaWV3Q2VsbCcsICdkYXRlVGFibGVGaWx0ZXJDZWxsJywgJ2RhdGVUYWJsZUNlbGwnLCAnZGVmYXVsdERhdGVWYWx1ZSddLFxuICAgIFtDb2x1bW5UeXBlLk5VTUJFUl06IFsnbnVtYmVyRmlsdGVyVmlld0NlbGwnLCAnbnVtYmVyVGFibGVGaWx0ZXJDZWxsJywgJ251bWJlclRhYmxlQ2VsbCcsICdkZWZhdWx0TnVtYmVyVmFsdWUnXSxcbiAgICBbQ29sdW1uVHlwZS5SRUxBVElWRV9EQVRFXTogW1xuICAgICAgJ3JlbGF0aXZlRGF0ZUZpbHRlclZpZXdDZWxsJyxcbiAgICAgICdyZWxhdGl2ZURhdGVUYWJsZUZpbHRlckNlbGwnLFxuICAgICAgJ3JlbGF0aXZlRGF0ZVRhYmxlQ2VsbCcsXG4gICAgICAnZGVmYXVsdFJlbGF0aXZlRGF0ZVZhbHVlJyxcbiAgICBdLFxuICAgIFtDb2x1bW5UeXBlLlRSQU5TTEFUSU9OX0tFWV06IFtcbiAgICAgICd0cmFuc2xhdGlvbktleScsXG4gICAgICAndHJhbnNsYXRpb25LZXlUYWJsZUZpbHRlckNlbGwnLFxuICAgICAgJ3RyYW5zbGF0aW9uS2V5VGFibGVDZWxsJyxcbiAgICAgICdkZWZhdWx0VHJhbnNsYXRpb25LZXlWYWx1ZScsXG4gICAgXSxcbiAgICBbQ29sdW1uVHlwZS5DVVNUT01dOiBbJ2N1c3RvbUZpbHRlclZpZXdDZWxsJywgJ2N1c3RvbVRhYmxlRmlsdGVyQ2VsbCcsICdjdXN0b21UYWJsZUNlbGwnLCAnZGVmYXVsdEN1c3RvbVZhbHVlJ10sXG4gICAgW0NvbHVtblR5cGUuU1RSSU5HXTogWydzdHJpbmdGaWx0ZXJWaWV3Q2VsbCcsICdzdHJpbmdUYWJsZUZpbHRlckNlbGwnLCAnc3RyaW5nVGFibGVDZWxsJywgJ2RlZmF1bHRTdHJpbmdWYWx1ZSddLFxuICB9XG4gIHRhYmxlVGVtcGxhdGVzOiBSZWNvcmQ8c3RyaW5nLCBPYnNlcnZhYmxlPFRlbXBsYXRlUmVmPGFueT4gfCBudWxsPj4gPSB7fVxuXG4gIGdldFRlbXBsYXRlKFxuICAgIGNvbHVtbjogRGF0YVRhYmxlQ29sdW1uLFxuICAgIHRlbXBsYXRlTmFtZXM6IFJlY29yZDxDb2x1bW5UeXBlLCBBcnJheTxzdHJpbmc+PixcbiAgICB0ZW1wbGF0ZXM6IFJlY29yZDxzdHJpbmcsIE9ic2VydmFibGU8VGVtcGxhdGVSZWY8YW55PiB8IG51bGw+PixcbiAgICBpZFN1ZmZpeDogQXJyYXk8c3RyaW5nPlxuICApOiBPYnNlcnZhYmxlPFRlbXBsYXRlUmVmPGFueT4gfCBudWxsPiB7XG4gICAgaWYgKCF0ZW1wbGF0ZXNbY29sdW1uLmlkXSkge1xuICAgICAgdGVtcGxhdGVzW2NvbHVtbi5pZF0gPSBjb21iaW5lTGF0ZXN0KFt0aGlzLmRlZmF1bHRUZW1wbGF0ZXMkLCB0aGlzLnBhcmVudFRlbXBsYXRlcyRdKS5waXBlKFxuICAgICAgICBtYXAoKFtkdCwgdF0pID0+IHtcbiAgICAgICAgICBjb25zdCB0ZW1wbGF0ZXMgPSBbLi4uKGR0ID8/IFtdKSwgLi4uKHQgPz8gW10pXVxuICAgICAgICAgIGNvbnN0IGNvbHVtblRlbXBsYXRlID0gZmluZFRlbXBsYXRlKFxuICAgICAgICAgICAgdGVtcGxhdGVzLFxuICAgICAgICAgICAgaWRTdWZmaXgubWFwKChzdWZmaXgpID0+IGNvbHVtbi5pZCArIHN1ZmZpeClcbiAgICAgICAgICApPy50ZW1wbGF0ZVxuICAgICAgICAgIGlmIChjb2x1bW5UZW1wbGF0ZSkge1xuICAgICAgICAgICAgcmV0dXJuIGNvbHVtblRlbXBsYXRlXG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBmaW5kVGVtcGxhdGUodGVtcGxhdGVzLCB0ZW1wbGF0ZU5hbWVzW2NvbHVtbi5jb2x1bW5UeXBlXSk/LnRlbXBsYXRlID8/IG51bGxcbiAgICAgICAgfSksXG4gICAgICAgIGRlYm91bmNlVGltZSg1MClcbiAgICAgIClcbiAgICB9XG4gICAgcmV0dXJuIHRlbXBsYXRlc1tjb2x1bW4uaWRdXG4gIH1cblxuICBvblJlc2V0RmlsZXJzQ2xpY2soKSB7XG4gICAgdGhpcy5maWx0ZXJzID0gW11cbiAgICB0aGlzLmZpbHRlcmVkLmVtaXQoW10pXG4gICAgdGhpcy5jb21wb25lbnRTdGF0ZUNoYW5nZWQuZW1pdCh7XG4gICAgICBmaWx0ZXJzOiBbXSxcbiAgICB9KVxuICB9XG5cbiAgb25DaGlwUmVtb3ZlKGZpbHRlcjogRmlsdGVyKSB7XG4gICAgY29uc3QgZmlsdGVycyA9IHRoaXMuZmlsdGVycy5maWx0ZXIoKGYpID0+IGYudmFsdWUgIT09IGZpbHRlci52YWx1ZSlcbiAgICB0aGlzLmZpbHRlcnMgPSBmaWx0ZXJzXG4gICAgdGhpcy5maWx0ZXJlZC5lbWl0KGZpbHRlcnMpXG4gICAgdGhpcy5jb21wb25lbnRTdGF0ZUNoYW5nZWQuZW1pdCh7XG4gICAgICBmaWx0ZXJzOiBmaWx0ZXJzLFxuICAgIH0pXG4gIH1cblxuICBvbkZpbHRlckRlbGV0ZShyb3c6IFJvdykge1xuICAgIGNvbnN0IGZpbHRlcnMgPSB0aGlzLmZpbHRlcnMuZmlsdGVyKChmKSA9PiAhKGYuY29sdW1uSWQgPT09IHJvd1sndmFsdWVDb2x1bW5JZCddICYmIGYudmFsdWUgPT09IHJvd1sndmFsdWUnXSkpXG4gICAgdGhpcy5maWx0ZXJzID0gZmlsdGVyc1xuICAgIHRoaXMuZmlsdGVyZWQuZW1pdChmaWx0ZXJzKVxuICAgIHRoaXMuY29tcG9uZW50U3RhdGVDaGFuZ2VkLmVtaXQoe1xuICAgICAgZmlsdGVyczogZmlsdGVycyxcbiAgICB9KVxuICB9XG5cbiAgZm9jdXNUcmlnZ2VyKCkge1xuICAgIGlmICh0aGlzLnRyaWdnZXI/LmlkID09PSAnb2N4RmlsdGVyVmlld1Nob3dNb3JlJykge1xuICAgICAgdGhpcy50cmlnZ2VyPy5mb2N1cygpXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubWFuYWdlQnV0dG9uLmZvY3VzKClcbiAgICB9XG4gIH1cblxuICBzaG93UGFuZWwoZXZlbnQ6IGFueSkge1xuICAgIHRoaXMudHJpZ2dlciA9IGV2ZW50LnNyY0VsZW1lbnRcbiAgICB0aGlzLnBhbmVsLnRvZ2dsZShldmVudClcbiAgfVxuXG4gIGdldENvbHVtbkZvckZpbHRlcihmaWx0ZXI6IEZpbHRlciwgY29sdW1uczogRGF0YVRhYmxlQ29sdW1uW10pIHtcbiAgICByZXR1cm4gY29sdW1ucy5maW5kKChjKSA9PiBjLmlkID09PSBmaWx0ZXIuY29sdW1uSWQpXG4gIH1cblxuICBnZXRDb2x1bW4oY29sSWQ6IHN0cmluZywgY29sdW1uczogRGF0YVRhYmxlQ29sdW1uW10pIHtcbiAgICByZXR1cm4gY29sdW1ucy5maW5kKChjKSA9PiBjLmlkID09PSBjb2xJZClcbiAgfVxuXG4gIHJlc29sdmVGaWVsZERhdGEob2JqZWN0OiBhbnksIGtleTogYW55KSB7XG4gICAgcmV0dXJuIE9iamVjdFV0aWxzLnJlc29sdmVGaWVsZERhdGEob2JqZWN0LCBrZXkpXG4gIH1cblxuICBnZXRSb3dPYmplY3RGcm9tRml0ZXJEYXRhKGZpbHRlcjogRmlsdGVyKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIFtmaWx0ZXIuY29sdW1uSWRdOiBmaWx0ZXIudmFsdWUsXG4gICAgfVxuICB9XG5cbiAgZ2V0Um93Rm9yVmFsdWVDb2x1bW4ocm93OiBSb3cpOiBSb3cge1xuICAgIHJldHVybiB7XG4gICAgICBpZDogcm93LmlkLFxuICAgICAgW3Jvd1sndmFsdWVDb2x1bW5JZCddIGFzIHN0cmluZ106IHJvd1sndmFsdWUnXSxcbiAgICB9XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJjb2x1bW5zJCB8IGFzeW5jIGFzIGNvbHVtbnNcIj5cbiAgPGRpdiAqbmdJZj1cImZpbHRlcnMkIHwgYXN5bmMgYXMgZmlsdGVyc1wiIGNsYXNzPVwiZmxleCBmbGV4LXdyYXAgYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImRpc3BsYXlNb2RlID09PSAnY2hpcHMnOyBlbHNlIG5vQ2hpcHNDb250ZW50XCI+XG4gICAgICA8bmctY29udGFpbmVyICpvY3hJZkJyZWFrcG9pbnQ9XCInZGVza3RvcCc7IGVsc2VUZW1wbGF0ZTogbm9DaGlwc0NvbnRlbnRcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNlbGVjdERpc3BsYXllZENoaXBzKGZpbHRlcnMsIGNvbHVtbnMpIGFzIHNlbGVjdGVkRmlsdGVyc1wiPlxuICAgICAgICAgIDxwLWJ1dHRvblxuICAgICAgICAgICAgI2NoaXBGaWx0ZXJSZXNldEJ1dHRvblxuICAgICAgICAgICAgaWQ9XCJvY3hGaWx0ZXJWaWV3UmVzZXRcIlxuICAgICAgICAgICAgKG9uQ2xpY2spPVwib25SZXNldEZpbGVyc0NsaWNrKClcIlxuICAgICAgICAgICAgaWNvbj1cInBpIHBpLWVyYXNlclwiXG4gICAgICAgICAgICBwVG9vbHRpcD1cInt7ICdPQ1hfRklMVEVSX1ZJRVcuUkVTRVRfRklMVEVSU19CVVRUT04uREVUQUlMJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgICAgICB0b29sdGlwUG9zaXRpb249XCJ0b3BcIlxuICAgICAgICAgICAgdG9vbHRpcEV2ZW50PVwiaG92ZXJcIlxuICAgICAgICAgICAgW2FyaWFMYWJlbF09XCInT0NYX0ZJTFRFUl9WSUVXLlJFU0VUX0ZJTFRFUlNfQlVUVE9OLkFSSUFfTEFCRUwnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICA+PC9wLWJ1dHRvbj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZmlsdGVycy5sZW5ndGggPD0gMFwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAqbmdJZj1cIl9maXRsZXJWaWV3Tm9TZWxlY3Rpb247IGVsc2UgZGVmYXVsdE5vRmlsdGVyc1wiXG4gICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIl9maXRsZXJWaWV3Tm9TZWxlY3Rpb25cIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI2RlZmF1bHROb0ZpbHRlcnM+XG4gICAgICAgICAgICAgIDxzcGFuIGlkPVwib2N4RmlsdGVyVmlld05vRmlsdGVyc1wiPnt7ICdPQ1hfRklMVEVSX1ZJRVcuTk9fRklMVEVSUycgfCB0cmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIoY2hpcFRlbXBsYXRlcyQgfCBhc3luYykgPz8ge30gYXMgdGVtcGxhdGVzXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBmaWx0ZXIgb2Ygc2VsZWN0ZWRGaWx0ZXJzXCI+XG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJnZXRDb2x1bW5Gb3JGaWx0ZXIoZmlsdGVyLCBjb2x1bW5zKSBhcyBjb2x1bW5cIj5cbiAgICAgICAgICAgICAgICA8cC1jaGlwIFtyZW1vdmFibGVdPVwidHJ1ZVwiIChvblJlbW92ZSk9XCJvbkNoaXBSZW1vdmUoZmlsdGVyKVwiIFtzdHlsZUNsYXNzXT1cImNoaXBTdHlsZUNsYXNzXCI+XG4gICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiX2ZpbHRlclZpZXdDaGlwQ29udGVudDsgZWxzZSBjaGlwQ29udGVudFRlbXBsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiX2ZpbHRlclZpZXdDaGlwQ29udGVudFwiXG4gICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7XG4gICAgICAgICAgICAgICAgZmlsdGVyOiBmaWx0ZXIsXG4gICAgICAgICAgICAgICAgY29sdW1uOiBjb2x1bW4sXG4gICAgICAgICAgICAgICAgZmlsdGVyVmFsdWVUZW1wbGF0ZXM6IHRlbXBsYXRlcyxcbiAgICAgICAgICAgICAgICB0cnV0aHlUZW1wbGF0ZTogdHJ1dGh5VGVtcGxhdGUsXG4gICAgICAgICAgICAgICAgZmlsdGVyVmFsdWVUZW1wbGF0ZTogY2hpcFRlbXBsYXRlXG4gICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2NoaXBDb250ZW50VGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJjb2x1bW5zJCB8IGFzeW5jIGFzIGNvbHVtbnNcIlxuICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPVwid2hpdGUtc3BhY2U6IG5vd3JhcFwiXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwLWNoaXAtdGV4dCBmbGV4IGZsZXgtbm93cmFwXCJcbiAgICAgICAgICAgICAgICAgICAgICA+e3tjb2x1bW4/Lm5hbWVLZXkgPz8gJycgfCB0cmFuc2xhdGUgfX06PG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJmaWx0ZXIuZmlsdGVyVHlwZSA9PT0gRmlsdGVyVHlwZS5FUVVBTCB8fCAhZmlsdGVyLmZpbHRlclR5cGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiY2hpcFRlbXBsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7XG4gICAgICAgICAgICAgICAgICAgICAgICB0ZW1wbGF0ZXM6IHRlbXBsYXRlcyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlcjogZmlsdGVyLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1uOiBjb2x1bW5cbiAgICAgICAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImZpbHRlci5maWx0ZXJUeXBlID09PSBGaWx0ZXJUeXBlLlRSVVRIWVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJ0cnV0aHlUZW1wbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7XG4gICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IGZpbHRlci52YWx1ZVxuICAgICAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICA8L3AtY2hpcD5cbiAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzZWxlY3RlZEZpbHRlcnMubGVuZ3RoIDwgZmlsdGVycy5sZW5ndGhcIj5cbiAgICAgICAgICAgICAgPHAtY2hpcFxuICAgICAgICAgICAgICAgICNzaG93TW9yZUNoaXBcbiAgICAgICAgICAgICAgICBpZD1cIm9jeEZpbHRlclZpZXdTaG93TW9yZVwiXG4gICAgICAgICAgICAgICAgdGFiaW5kZXg9XCIwXCJcbiAgICAgICAgICAgICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwic2hvd1BhbmVsKCRldmVudClcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXIgZmlsdGVyLXZpZXctZm9jdXNhYmxlXCJcbiAgICAgICAgICAgICAgICAoa2V5ZG93bi5lbnRlcik9XCJzaG93UGFuZWwoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgKGtleWRvd24uc3BhY2UpPVwic2hvd1BhbmVsKCRldmVudClcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgKm5nSWY9XCJfZmlsdGVyVmlld1Nob3dNb3JlQ2hpcDsgZWxzZSBzaG93TW9yZUNoaXBUZW1wbGF0ZVwiXG4gICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJfZmlsdGVyVmlld1Nob3dNb3JlQ2hpcFwiXG4gICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwie1xuICAgICAgICAgICAgJGltcGxpY2l0OiBmaWx0ZXJzLmxlbmd0aCAtIHNlbGVjdGVkRmlsdGVycy5sZW5ndGhcbiAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNzaG93TW9yZUNoaXBUZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicC1jaGlwLXRleHQgZmxleCBmbGV4LW5vd3JhcFwiPiAre3tmaWx0ZXJzLmxlbmd0aCAtIHNlbGVjdGVkRmlsdGVycy5sZW5ndGh9fSA8L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImZpbHRlclRhYmxlUGFuZWxcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgPC9wLWNoaXA+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctdGVtcGxhdGUgI25vQ2hpcHNDb250ZW50PlxuICAgICAgPHAtYnV0dG9uXG4gICAgICAgICNtYW5hZ2VCdXR0b25cbiAgICAgICAgaWQ9XCJvY3hGaWx0ZXJWaWV3TWFuYWdlXCJcbiAgICAgICAgKG9uQ2xpY2spPVwic2hvd1BhbmVsKCRldmVudClcIlxuICAgICAgICBpY29uPVwicGkgcGktc2xpZGVycy1oXCJcbiAgICAgICAgbGFiZWw9XCJ7eyAnT0NYX0ZJTFRFUl9WSUVXLk1BTkFHRV9GSUxURVJTX0JVVFRPTi5MQUJFTCcgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICBwVG9vbHRpcD1cInt7ICdPQ1hfRklMVEVSX1ZJRVcuTUFOQUdFX0ZJTFRFUlNfQlVUVE9OLkRFVEFJTCcgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICB0b29sdGlwUG9zaXRpb249XCJ0b3BcIlxuICAgICAgICB0b29sdGlwRXZlbnQ9XCJob3ZlclwiXG4gICAgICAgIFtiYWRnZV09XCJmaWx0ZXJzLmxlbmd0aC50b1N0cmluZygpXCJcbiAgICAgICAgW2FyaWFMYWJlbF09XCInT0NYX0ZJTFRFUl9WSUVXLk1BTkFHRV9GSUxURVJTX0JVVFRPTi5BUklBX0xBQkVMJyB8IHRyYW5zbGF0ZVwiXG4gICAgICA+PC9wLWJ1dHRvbj5cbiAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiZmlsdGVyVGFibGVQYW5lbFwiPjwvbmctY29udGFpbmVyPlxuICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICA8bmctdGVtcGxhdGUgI2ZpbHRlclRhYmxlUGFuZWw+XG4gICAgICA8cC1vdmVybGF5UGFuZWwgKm5nSWY9XCJ0YWJsZVRlbXBsYXRlcyQgfCBhc3luYyBhcyB0ZW1wbGF0ZXNcIiAjb3AgW3N0eWxlXT1cInBhbmVsU3R5bGVcIiAob25IaWRlKT1cImZvY3VzVHJpZ2dlcigpXCI+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJjb250ZW50XCI+XG4gICAgICAgICAgPGRpdiBwRm9jdXNUcmFwPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtY2VudGVyIG1iLTJcIj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LTJ4bCBmb250LW1lZGl1bVwiPnt7J09DWF9GSUxURVJfVklFVy5QQU5FTF9USVRMRScgfCB0cmFuc2xhdGV9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICA8cC1idXR0b25cbiAgICAgICAgICAgICAgICAgIHBBdXRvRm9jdXNcbiAgICAgICAgICAgICAgICAgIFthdXRvZm9jdXNdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICBpZD1cIm9jeEZpbHRlclZpZXdPdmVybGF5UmVzZXRcIlxuICAgICAgICAgICAgICAgICAgKG9uQ2xpY2spPVwib25SZXNldEZpbGVyc0NsaWNrKClcIlxuICAgICAgICAgICAgICAgICAgaWNvbj1cInBpIHBpLWVyYXNlclwiXG4gICAgICAgICAgICAgICAgICBwVG9vbHRpcD1cInt7ICdPQ1hfRklMVEVSX1ZJRVcuUkVTRVRfRklMVEVSU19CVVRUT04uREVUQUlMJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgICAgICAgICAgICB0b29sdGlwUG9zaXRpb249XCJ0b3BcIlxuICAgICAgICAgICAgICAgICAgdG9vbHRpcEV2ZW50PVwiaG92ZXJcIlxuICAgICAgICAgICAgICAgICAgW2FyaWFMYWJlbF09XCInT0NYX0ZJTFRFUl9WSUVXLlJFU0VUX0ZJTFRFUlNfQlVUVE9OLkFSSUFfTEFCRUwnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICA+PC9wLWJ1dHRvbj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxvY3gtZGF0YS10YWJsZVxuICAgICAgICAgICAgICBpZD1cIm9jeEZpbHRlclZpZXdEYXRhVGFibGVcIlxuICAgICAgICAgICAgICBbcm93c109XCIoY29sdW1uRmlsdGVyRGF0YVJvd3MkIHwgYXN5bmMpID8/IFtdXCJcbiAgICAgICAgICAgICAgW2NvbHVtbnNdPVwiY29sdW1uRmlsdGVyVGFibGVDb2x1bW5zXCJcbiAgICAgICAgICAgICAgW2VtcHR5UmVzdWx0c01lc3NhZ2VdPVwiJ09DWF9GSUxURVJfVklFVy5OT19GSUxURVJTJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgIFtwYWdpbmF0b3JdPVwiZmFsc2VcIlxuICAgICAgICAgICAgICBbdGFibGVTdHlsZV09XCJ0YWJsZVN0eWxlXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImNvbHVtbklkQ2VsbFwiIGxldC1yb3dPYmplY3Q9XCJyb3dPYmplY3RcIiBsZXQtY29sdW1uPVwiY29sdW1uXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwidGVtcGxhdGVzW2NvbHVtbi5pZF1cIlxuICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cIntcbiAgICAgICAgICAgIHJvd09iamVjdDogcm93T2JqZWN0LFxuICAgICAgICAgICAgY29sdW1uOiBjb2x1bW4sXG4gICAgICAgICAgfVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwidmFsdWVJZENlbGxcIiBsZXQtcm93T2JqZWN0PVwicm93T2JqZWN0XCIgbGV0LWNvbHVtbj1cImNvbHVtblwiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJnZXRDb2x1bW4ocm93T2JqZWN0Wyd2YWx1ZUNvbHVtbklkJ10sIGNvbHVtbnMpIGFzIHZhbHVlQ29sdW1uXCI+XG4gICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiIXZhbHVlQ29sdW1uLmZpbHRlclR5cGUgfHwgdmFsdWVDb2x1bW4uZmlsdGVyVHlwZSA9PT0gRmlsdGVyVHlwZS5FUVVBTFwiXG4gICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInRlbXBsYXRlc1t2YWx1ZUNvbHVtbi5pZF1cIlxuICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwie1xuICAgICAgICAgICAgICByb3dPYmplY3Q6IGdldFJvd0ZvclZhbHVlQ29sdW1uKHJvd09iamVjdCksXG4gICAgICAgICAgICAgIGNvbHVtbjogdmFsdWVDb2x1bW5cbiAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwidmFsdWVDb2x1bW4uZmlsdGVyVHlwZSA9PT0gRmlsdGVyVHlwZS5UUlVUSFlcIlxuICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJ0cnV0aHlUZW1wbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7XG4gICAgICAgIHZhbHVlOiByZXNvbHZlRmllbGREYXRhKHJvd09iamVjdCwgY29sdW1uLmlkKVxuICAgICAgfVwiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImFjdGlvbnNJZENlbGxcIiBsZXQtcm93T2JqZWN0PVwicm93T2JqZWN0XCIgbGV0LWNvbHVtbj1cImNvbHVtblwiPlxuICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIHBCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwLWJ1dHRvbi1yb3VuZGVkIHAtYnV0dG9uLWRhbmdlciBwLWJ1dHRvbi10ZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgdGl0bGU9XCJ7eyAnT0NYX0ZJTFRFUl9WSUVXLlRBQkxFLlJFTU9WRV9GSUxURVJfVElUTEUnIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInT0NYX0ZJTFRFUl9WSUVXLlRBQkxFLlJFTU9WRV9GSUxURVJfQVJJQV9MQUJFTCcgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgICAgICBpY29uPVwicGkgcGktdHJhc2hcIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25GaWx0ZXJEZWxldGUocm93T2JqZWN0KVwiXG4gICAgICAgICAgICAgICAgICA+PC9idXR0b24+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICA8L29jeC1kYXRhLXRhYmxlPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgPC9wLW92ZXJsYXlQYW5lbD5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L2Rpdj5cbjwvbmctY29udGFpbmVyPlxuXG48bmctdGVtcGxhdGUgI2NoaXBUZW1wbGF0ZSBsZXQtdGVtcGxhdGVzPVwidGVtcGxhdGVzXCIgbGV0LWZpbHRlcj1cImZpbHRlclwiIGxldC1jb2x1bW49XCJjb2x1bW5cIj5cbiAgPG5nLWNvbnRhaW5lclxuICAgICpuZ0lmPVwidGVtcGxhdGVzW2NvbHVtbi5pZF0gYXMgdGVtcGxhdGVcIlxuICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInRlbXBsYXRlXCJcbiAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwie1xuICAgICAgICAgICAgcm93T2JqZWN0OiBnZXRSb3dPYmplY3RGcm9tRml0ZXJEYXRhKGZpbHRlciksXG4gICAgICAgICAgICBjb2x1bW46IGNvbHVtblxuICAgICAgICAgIH1cIlxuICA+XG4gIDwvbmctY29udGFpbmVyPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICN0cnV0aHlUZW1wbGF0ZSBsZXQtdmFsdWU9XCJ2YWx1ZVwiPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwidmFsdWVcIj4ge3snT0NYX0ZJTFRFUl9WSUVXLkZJTFRFUl9ZRVMnIHwgdHJhbnNsYXRlfX0gPC9uZy1jb250YWluZXI+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCIhdmFsdWVcIj4ge3snT0NYX0ZJTFRFUl9WSUVXLkZJTFRFUl9OTycgfCB0cmFuc2xhdGV9fSA8L25nLWNvbnRhaW5lcj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJkZWZhdWx0U3RyaW5nVmFsdWVcIiBsZXQtcm93T2JqZWN0PVwicm93T2JqZWN0XCIgbGV0LWNvbHVtbj1cImNvbHVtblwiPlxuICA8bmctY29udGFpbmVyPiB7eyByZXNvbHZlRmllbGREYXRhKHJvd09iamVjdCwgY29sdW1uLmlkKX19IDwvbmctY29udGFpbmVyPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImRlZmF1bHROdW1iZXJWYWx1ZVwiIGxldC1yb3dPYmplY3Q9XCJyb3dPYmplY3RcIiBsZXQtY29sdW1uPVwiY29sdW1uXCI+XG4gIDxuZy1jb250YWluZXI+IHt7IHJlc29sdmVGaWVsZERhdGEocm93T2JqZWN0LCBjb2x1bW4uaWQpIHwgbnVtYmVyIH19IDwvbmctY29udGFpbmVyPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImRlZmF1bHRDdXN0b21WYWx1ZVwiIGxldC1yb3dPYmplY3Q9XCJyb3dPYmplY3RcIiBsZXQtY29sdW1uPVwiY29sdW1uXCI+IDwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJkZWZhdWx0RGF0ZVZhbHVlXCIgbGV0LXJvd09iamVjdD1cInJvd09iamVjdFwiIGxldC1jb2x1bW49XCJjb2x1bW5cIj5cbiAgPG5nLWNvbnRhaW5lcj4ge3sgcmVzb2x2ZUZpZWxkRGF0YShyb3dPYmplY3QsIGNvbHVtbi5pZCkgfCBkYXRlOiBjb2x1bW4uZGF0ZUZvcm1hdCA/PyAnbWVkaXVtJyB9fSA8L25nLWNvbnRhaW5lcj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJkZWZhdWx0UmVsYXRpdmVEYXRlVmFsdWVcIiBsZXQtcm93T2JqZWN0PVwicm93T2JqZWN0XCIgbGV0LWNvbHVtbj1cImNvbHVtblwiPlxuICA8bmctY29udGFpbmVyPlxuICAgIHt7ICdPQ1hfREFUQV9UQUJMRS5FRElURUQnIHwgdHJhbnNsYXRlIH19IHt7IHJlc29sdmVGaWVsZERhdGEocm93T2JqZWN0LCBjb2x1bW4uaWQpIHwgdGltZWFnbyB9fVxuICA8L25nLWNvbnRhaW5lcj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJkZWZhdWx0VHJhbnNsYXRpb25LZXlWYWx1ZVwiIGxldC1yb3dPYmplY3Q9XCJyb3dPYmplY3RcIiBsZXQtY29sdW1uPVwiY29sdW1uXCI+XG4gIDxuZy1jb250YWluZXI+IHt7IHJlc29sdmVGaWVsZERhdGEocm93T2JqZWN0LCBjb2x1bW4uaWQpIHwgdHJhbnNsYXRlIH19PC9uZy1jb250YWluZXI+XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
263
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLXZpZXcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLWFjY2VsZXJhdG9yL3NyYy9saWIvY29tcG9uZW50cy9maWx0ZXItdmlldy9maWx0ZXItdmlldy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItYWNjZWxlcmF0b3Ivc3JjL2xpYi9jb21wb25lbnRzL2ZpbHRlci12aWV3L2ZpbHRlci12aWV3LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBR04sU0FBUyxFQUNULFlBQVksR0FDYixNQUFNLGVBQWUsQ0FBQTtBQUN0QixPQUFPLEVBQVUsVUFBVSxFQUFFLE1BQU0sMEJBQTBCLENBQUE7QUFFN0QsT0FBTyxFQUFFLGVBQWUsRUFBYyxhQUFhLEVBQUUsWUFBWSxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQTtBQUNwRixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUE7QUFDMUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGFBQWEsQ0FBQTtBQUMzQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNEJBQTRCLENBQUE7QUFDekQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHlCQUF5QixDQUFBO0FBQ3JELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQTtBQUNoRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFFbkQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFBOzs7Ozs7Ozs7Ozs7O0FBcUJ2QyxNQUFNLE9BQU8sbUJBQW1CO0lBTGhDO1FBTUUsZUFBVSxHQUFHLFVBQVUsQ0FBQTtRQUN2QixlQUFVLEdBQUcsVUFBVSxD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c0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgUXVlcnlMaXN0LFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NoaWxkLFxuICBWaWV3Q2hpbGRyZW4sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBGaWx0ZXIsIEZpbHRlclR5cGUgfSBmcm9tICcuLi8uLi9tb2RlbC9maWx0ZXIubW9kZWwnXG5pbXBvcnQgeyBEYXRhVGFibGVDb2x1bW4gfSBmcm9tICcuLi8uLi9tb2RlbC9kYXRhLXRhYmxlLWNvbHVtbi5tb2RlbCdcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgY29tYmluZUxhdGVzdCwgZGVib3VuY2VUaW1lLCBtYXAgfSBmcm9tICdyeGpzJ1xuaW1wb3J0IHsgQ29sdW1uVHlwZSB9IGZyb20gJy4uLy4uL21vZGVsL2NvbHVtbi10eXBlLm1vZGVsJ1xuaW1wb3J0IHsgUHJpbWVUZW1wbGF0ZSB9IGZyb20gJ3ByaW1lbmcvYXBpJ1xuaW1wb3J0IHsgZmluZFRlbXBsYXRlIH0gZnJvbSAnLi4vLi4vdXRpbHMvdGVtcGxhdGUudXRpbHMnXG5pbXBvcnQgeyBPYmplY3RVdGlscyB9IGZyb20gJy4uLy4uL3V0aWxzL29iamVjdHV0aWxzJ1xuaW1wb3J0IHsgbGltaXQgfSBmcm9tICcuLi8uLi91dGlscy9maWx0ZXIudXRpbHMnXG5pbXBvcnQgeyBPdmVybGF5UGFuZWwgfSBmcm9tICdwcmltZW5nL292ZXJsYXlwYW5lbCdcbmltcG9ydCB7IFJvdyB9IGZyb20gJy4uL2RhdGEtdGFibGUvZGF0YS10YWJsZS5jb21wb25lbnQnXG5pbXBvcnQgeyBCdXR0b24gfSBmcm9tICdwcmltZW5nL2J1dHRvbidcblxuZXhwb3J0IHR5cGUgRmlsdGVyVmlld0Rpc3BsYXlNb2RlID0gJ2NoaXBzJyB8ICdidXR0b24nXG5leHBvcnQgdHlwZSBGaWx0ZXJWaWV3Um93RGlzcGxheURhdGEgPSB7XG4gIGlkOiBzdHJpbmdcbiAgY29sdW1uOiBzdHJpbmdcbiAgdmFsdWU6IHVua25vd25cbn1cbmV4cG9ydCB0eXBlIEZpbHRlclZpZXdSb3dEZXRhaWxEYXRhID0gRmlsdGVyVmlld1Jvd0Rpc3BsYXlEYXRhICYge1xuICB2YWx1ZUNvbHVtbklkOiBzdHJpbmdcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGaWx0ZXJWaWV3Q29tcG9uZW50U3RhdGUge1xuICBmaWx0ZXJzPzogRmlsdGVyW11cbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnb2N4LWZpbHRlci12aWV3JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2ZpbHRlci12aWV3LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZmlsdGVyLXZpZXcuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgRmlsdGVyVmlld0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIENvbHVtblR5cGUgPSBDb2x1bW5UeXBlXG4gIEZpbHRlclR5cGUgPSBGaWx0ZXJUeXBlXG4gIGZpbHRlcnMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxGaWx0ZXJbXT4oW10pXG4gIEBJbnB1dCgpXG4gIGdldCBmaWx0ZXJzKCk6IEZpbHRlcltdIHtcbiAgICByZXR1cm4gdGhpcy5maWx0ZXJzJC5nZXRWYWx1ZSgpXG4gIH1cbiAgc2V0IGZpbHRlcnModmFsdWU6IEZpbHRlcltdKSB7XG4gICAgdGhpcy5maWx0ZXJzJC5uZXh0KHZhbHVlKVxuICB9XG4gIGNvbHVtbnMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxEYXRhVGFibGVDb2x1bW5bXT4oW10pXG4gIEBJbnB1dCgpXG4gIGdldCBjb2x1bW5zKCk6IERhdGFUYWJsZUNvbHVtbltdIHtcbiAgICByZXR1cm4gdGhpcy5jb2x1bW5zJC5nZXRWYWx1ZSgpXG4gIH1cbiAgc2V0IGNvbHVtbnModmFsdWU6IERhdGFUYWJsZUNvbHVtbltdKSB7XG4gICAgdGhpcy5jb2x1bW5zJC5uZXh0KHZhbHVlKVxuICAgIGNvbnN0IGNoaXBPYnMgPSB2YWx1ZS5tYXAoKGMpID0+IHRoaXMuZ2V0VGVtcGxhdGUoYywgdGhpcy5jaGlwVGVtcGxhdGVOYW1lcywgdGhpcy5jaGlwVGVtcGxhdGVzLCB0aGlzLmNoaXBJZFN1ZmZpeCkpXG4gICAgdGhpcy5jaGlwVGVtcGxhdGVzJCA9IGNvbWJpbmVMYXRlc3QoY2hpcE9icykucGlwZShcbiAgICAgIG1hcCgodmFsdWVzKSA9PiBPYmplY3QuZnJvbUVudHJpZXModmFsdWUubWFwKChjLCBpKSA9PiBbYy5pZCwgdmFsdWVzW2ldXSkpKVxuICAgIClcblxuICAgIGNvbnN0IHRhYmxlVGVtcGxhdGVDb2x1bW5zID0gdmFsdWUuY29uY2F0KHRoaXMuY29sdW1uRmlsdGVyVGFibGVDb2x1bW5zKVxuICAgIHRoaXMudGFibGVUZW1wbGF0ZXMkID0gY29tYmluZUxhdGVzdChcbiAgICAgIHRhYmxlVGVtcGxhdGVDb2x1bW5zLm1hcCgoYykgPT5cbiAgICAgICAgdGhpcy5nZXRUZW1wbGF0ZShjLCB0aGlzLnRhYmxlVGVtcGxhdGVOYW1lcywgdGhpcy50YWJsZVRlbXBsYXRlcywgdGhpcy50YWJsZUlkU3VmZml4KVxuICAgICAgKVxuICAgICkucGlwZShtYXAoKHZhbHVlcykgPT4gT2JqZWN0LmZyb21FbnRyaWVzKHRhYmxlVGVtcGxhdGVDb2x1bW5zLm1hcCgoYywgaSkgPT4gW2MuaWQsIHZhbHVlc1tpXV0pKSkpXG4gIH1cblxuICBjb2x1bW5GaWx0ZXJEYXRhUm93cyQ6IE9ic2VydmFibGU8RmlsdGVyVmlld1Jvd0Rpc3BsYXlEYXRhW10+IHwgdW5kZWZpbmVkXG5cbiAgQElucHV0KCkgZGlzcGxheU1vZGU6IEZpbHRlclZpZXdEaXNwbGF5TW9kZSA9ICdidXR0b24nXG4gIEBJbnB1dCgpIHNlbGVjdERpc3BsYXllZENoaXBzOiAoZmlsdGVyczogRmlsdGVyW10sIGNvbHVtbnM6IERhdGFUYWJsZUNvbHVtbltdKSA9PiBGaWx0ZXJbXSA9IChmaWx0ZXJzKSA9PlxuICAgIGxpbWl0KGZpbHRlcnMsIDMsIHsgcmV2ZXJzZTogdHJ1ZSB9KVxuICBASW5wdXQoKSBjaGlwU3R5bGVDbGFzcyA9ICcnXG4gIEBJbnB1dCgpIHRhYmxlU3R5bGU6IHsgW2tsYXNzOiBzdHJpbmddOiBhbnkgfSA9IHsgJ21heC1oZWlnaHQnOiAnNTB2aCcgfVxuICBASW5wdXQoKSBwYW5lbFN0eWxlOiB7IFtrbGFzczogc3RyaW5nXTogYW55IH0gPSB7ICdtYXgtd2lkdGgnOiAnOTAlJyB9XG5cbiAgQE91dHB1dCgpIGZpbHRlcmVkOiBFdmVudEVtaXR0ZXI8RmlsdGVyW10+ID0gbmV3IEV2ZW50RW1pdHRlcigpXG4gIEBPdXRwdXQoKSBjb21wb25lbnRTdGF0ZUNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxGaWx0ZXJWaWV3Q29tcG9uZW50U3RhdGU+ID0gbmV3IEV2ZW50RW1pdHRlcigpXG5cbiAgY29sdW1uRmlsdGVyVGFibGVDb2x1bW5zOiBEYXRhVGFibGVDb2x1bW5bXSA9IFtcbiAgICB7XG4gICAgICBpZDogJ2NvbHVtbicsXG4gICAgICBjb2x1bW5UeXBlOiBDb2x1bW5UeXBlLlRSQU5TTEFUSU9OX0tFWSxcbiAgICAgIG5hbWVLZXk6ICdPQ1hfRklMVEVSX1ZJRVcuVEFCTEUuQ09MVU1OX05BTUUnLFxuICAgIH0sXG4gICAgeyBpZDogJ3ZhbHVlJywgY29sdW1uVHlwZTogQ29sdW1uVHlwZS5TVFJJTkcsIG5hbWVLZXk6ICdPQ1hfRklMVEVSX1ZJRVcuVEFCTEUuVkFMVUUnIH0sXG4gICAge1xuICAgICAgaWQ6ICdhY3Rpb25zJyxcbiAgICAgIGNvbHVtblR5cGU6IENvbHVtblR5cGUuU1RSSU5HLFxuICAgICAgbmFtZUtleTogJ09DWF9GSUxURVJfVklFVy5UQUJMRS5BQ1RJT05TJyxcbiAgICB9LFxuICBdXG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5jb2x1bW5GaWx0ZXJEYXRhUm93cyQgPSBjb21iaW5lTGF0ZXN0KFt0aGlzLmZpbHRlcnMkLCB0aGlzLmNvbHVtbnMkXSkucGlwZShcbiAgICAgIG1hcCgoW2ZpbHRlcnMsIGNvbHVtbnNdKSA9PiB7XG4gICAgICAgIGNvbnN0IGNvbHVtbklkcyA9IGNvbHVtbnMubWFwKChjKSA9PiBjLmlkKVxuICAgICAgICByZXR1cm4gZmlsdGVyc1xuICAgICAgICAgIC5tYXAoKGYpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGZpbHRlckNvbHVtbiA9IHRoaXMuZ2V0Q29sdW1uRm9yRmlsdGVyKGYsIGNvbHVtbnMpXG4gICAgICAgICAgICBpZiAoIWZpbHRlckNvbHVtbikgcmV0dXJuIHVuZGVmaW5lZFxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgaWQ6IGAke2YuY29sdW1uSWR9LSR7Zi52YWx1ZX1gLFxuICAgICAgICAgICAgICBjb2x1bW46IGZpbHRlckNvbHVtbi5uYW1lS2V5LFxuICAgICAgICAgICAgICB2YWx1ZTogZi52YWx1ZSxcbiAgICAgICAgICAgICAgdmFsdWVDb2x1bW5JZDogZmlsdGVyQ29sdW1uLmlkLFxuICAgICAgICAgICAgfSBzYXRpc2ZpZXMgRmlsdGVyVmlld1Jvd0RldGFpbERhdGFcbiAgICAgICAgICB9KVxuICAgICAgICAgIC5maWx0ZXIoKHYpOiB2IGlzIEZpbHRlclZpZXdSb3dEZXRhaWxEYXRhID0+IHYgIT09IHVuZGVmaW5lZClcbiAgICAgICAgICAuc2xpY2UoKVxuICAgICAgICAgIC5zb3J0KChhLCBiKSA9PiBjb2x1bW5JZHMuaW5kZXhPZihhLnZhbHVlQ29sdW1uSWQpIC0gY29sdW1uSWRzLmluZGV4T2YoYi52YWx1ZUNvbHVtbklkKSlcbiAgICAgIH0pXG4gICAgKVxuICAgIHRoaXMuY29tcG9uZW50U3RhdGVDaGFuZ2VkLmVtaXQoe1xuICAgICAgZmlsdGVyczogdGhpcy5maWx0ZXJzLFxuICAgIH0pXG4gIH1cblxuICBAVmlld0NoaWxkKE92ZXJsYXlQYW5lbCkgcGFuZWwhOiBPdmVybGF5UGFuZWxcbiAgQFZpZXdDaGlsZCgnbWFuYWdlQnV0dG9uJykgbWFuYWdlQnV0dG9uITogQnV0dG9uXG4gIHRyaWdnZXI6IEhUTUxFbGVtZW50IHwgdW5kZWZpbmVkXG5cbiAgZml0bGVyVmlld05vU2VsZWN0aW9uOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkXG4gIGdldCBfZml0bGVyVmlld05vU2VsZWN0aW9uKCk6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLmZpdGxlclZpZXdOb1NlbGVjdGlvblxuICB9XG5cbiAgZmlsdGVyVmlld0NoaXBDb250ZW50OiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkXG4gIGdldCBfZmlsdGVyVmlld0NoaXBDb250ZW50KCk6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLmZpbHRlclZpZXdDaGlwQ29udGVudFxuICB9XG5cbiAgZmlsdGVyVmlld1Nob3dNb3JlQ2hpcDogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZFxuICBnZXQgX2ZpbHRlclZpZXdTaG93TW9yZUNoaXAoKTogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuZmlsdGVyVmlld1Nob3dNb3JlQ2hpcFxuICB9XG5cbiAgZGVmYXVsdFRlbXBsYXRlcyQ6IEJlaGF2aW9yU3ViamVjdDxRdWVyeUxpc3Q8UHJpbWVUZW1wbGF0ZT4gfCB1bmRlZmluZWQ+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxcbiAgICBRdWVyeUxpc3Q8UHJpbWVUZW1wbGF0ZT4gfCB1bmRlZmluZWRcbiAgPih1bmRlZmluZWQpXG4gIEBWaWV3Q2hpbGRyZW4oUHJpbWVUZW1wbGF0ZSlcbiAgc2V0IGRlZmF1bHRUZW1wbGF0ZXModmFsdWU6IFF1ZXJ5TGlzdDxQcmltZVRlbXBsYXRlPiB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuZGVmYXVsdFRlbXBsYXRlcyQubmV4dCh2YWx1ZSlcbiAgfVxuXG4gIHBhcmVudFRlbXBsYXRlcyQ6IEJlaGF2aW9yU3ViamVjdDxRdWVyeUxpc3Q8UHJpbWVUZW1wbGF0ZT4gfCBudWxsIHwgdW5kZWZpbmVkPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8XG4gICAgUXVlcnlMaXN0PFByaW1lVGVtcGxhdGU+IHwgbnVsbCB8IHVuZGVmaW5lZFxuICA+KHVuZGVmaW5lZClcbiAgQElucHV0KClcbiAgc2V0IHRlbXBsYXRlcyh2YWx1ZTogUXVlcnlMaXN0PFByaW1lVGVtcGxhdGU+IHwgbnVsbCB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMucGFyZW50VGVtcGxhdGVzJC5uZXh0KHZhbHVlKVxuICAgIHZhbHVlPy5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICBzd2l0Y2ggKGl0ZW0uZ2V0VHlwZSgpKSB7XG4gICAgICAgIGNhc2UgJ2ZpdGxlclZpZXdOb1NlbGVjdGlvbic6XG4gICAgICAgICAgdGhpcy5maXRsZXJWaWV3Tm9TZWxlY3Rpb24gPSBpdGVtLnRlbXBsYXRlXG4gICAgICAgICAgYnJlYWtcbiAgICAgICAgY2FzZSAnZmlsdGVyVmlld0NoaXBDb250ZW50JzpcbiAgICAgICAgICB0aGlzLmZpbHRlclZpZXdDaGlwQ29udGVudCA9IGl0ZW0udGVtcGxhdGVcbiAgICAgICAgICBicmVha1xuICAgICAgICBjYXNlICdmaWx0ZXJWaWV3U2hvd01vcmVDaGlwJzpcbiAgICAgICAgICB0aGlzLmZpbHRlclZpZXdTaG93TW9yZUNoaXAgPSBpdGVtLnRlbXBsYXRlXG4gICAgICAgICAgYnJlYWtcbiAgICAgIH1cbiAgICB9KVxuICB9XG5cbiAgY2hpcFRlbXBsYXRlcyQ6IE9ic2VydmFibGU8UmVjb3JkPHN0cmluZywgVGVtcGxhdGVSZWY8YW55PiB8IG51bGw+PiB8IHVuZGVmaW5lZFxuICB0YWJsZVRlbXBsYXRlcyQ6IE9ic2VydmFibGU8UmVjb3JkPHN0cmluZywgVGVtcGxhdGVSZWY8YW55PiB8IG51bGw+PiB8IHVuZGVmaW5lZFxuXG4gIGNoaXBJZFN1ZmZpeDogQXJyYXk8c3RyaW5nPiA9IFsnSWRGaWx0ZXJDaGlwJywgJ0lkVGFibGVGaWx0ZXJDZWxsJywgJ0lkVGFibGVDZWxsJ11cbiAgY2hpcFRlbXBsYXRlTmFtZXM6IFJlY29yZDxDb2x1bW5UeXBlLCBBcnJheTxzdHJpbmc+PiA9IHtcbiAgICBbQ29sdW1uVHlwZS5EQVRFXTogWydkYXRlRmlsdGVyQ2hpcFZhbHVlJywgJ2RhdGVUYWJsZUZpbHRlckNlbGwnLCAnZGF0ZVRhYmxlQ2VsbCcsICdkZWZhdWx0RGF0ZVZhbHVlJ10sXG4gICAgW0NvbHVtblR5cGUuTlVNQkVSXTogWydudW1iZXJGaWx0ZXJDaGlwVmFsdWUnLCAnbnVtYmVyVGFibGVGaWx0ZXJDZWxsJywgJ251bWJlclRhYmxlQ2VsbCcsICdkZWZhdWx0TnVtYmVyVmFsdWUnXSxcbiAgICBbQ29sdW1uVHlwZS5SRUxBVElWRV9EQVRFXTogW1xuICAgICAgJ3JlbGF0aXZlRGF0ZUZpbHRlckNoaXBWYWx1ZScsXG4gICAgICAncmVsYXRpdmVEYXRlVGFibGVGaWx0ZXJDZWxsJyxcbiAgICAgICdyZWxhdGl2ZURhdGVUYWJsZUNlbGwnLFxuICAgICAgJ2RlZmF1bHRSZWxhdGl2ZURhdGVWYWx1ZScsXG4gICAgXSxcbiAgICBbQ29sdW1uVHlwZS5UUkFOU0xBVElPTl9LRVldOiBbXG4gICAgICAndHJhbnNsYXRpb25LZXlGaWx0ZXJDaGlwVmFsdWUnLFxuICAgICAgJ3RyYW5zbGF0aW9uS2V5VGFibGVGaWx0ZXJDZWxsJyxcbiAgICAgICd0cmFuc2xhdGlvbktleVRhYmxlQ2VsbCcsXG4gICAgICAnZGVmYXVsdFRyYW5zbGF0aW9uS2V5VmFsdWUnLFxuICAgIF0sXG4gICAgW0NvbHVtblR5cGUuQ1VTVE9NXTogWydjdXN0b21GaWx0ZXJDaGlwVmFsdWUnLCAnY3VzdG9tVGFibGVGaWx0ZXJDZWxsJywgJ2N1c3RvbVRhYmxlQ2VsbCcsICdkZWZhdWx0Q3VzdG9tVmFsdWUnXSxcbiAgICBbQ29sdW1uVHlwZS5TVFJJTkddOiBbJ3N0cmluZ0ZpbHRlckNoaXBWYWx1ZScsICdzdHJpbmdUYWJsZUZpbHRlckNlbGwnLCAnc3RyaW5nVGFibGVDZWxsJywgJ2RlZmF1bHRTdHJpbmdWYWx1ZSddLFxuICB9XG4gIGNoaXBUZW1wbGF0ZXM6IFJlY29yZDxzdHJpbmcsIE9ic2VydmFibGU8VGVtcGxhdGVSZWY8YW55PiB8IG51bGw+PiA9IHt9XG5cbiAgdGFibGVJZFN1ZmZpeDogQXJyYXk8c3RyaW5nPiA9IFsnSWRGaWx0ZXJWaWV3Q2VsbCcsICdJZFRhYmxlRmlsdGVyQ2VsbCcsICdJZFRhYmxlQ2VsbCddXG4gIHRhYmxlVGVtcGxhdGVOYW1lczogUmVjb3JkPENvbHVtblR5cGUsIEFycmF5PHN0cmluZz4+ID0ge1xuICAgIFtDb2x1bW5UeXBlLkRBVEVdOiBbJ2RhdGVGaWx0ZXJWaWV3Q2VsbCcsICdkYXRlVGFibGVGaWx0ZXJDZWxsJywgJ2RhdGVUYWJsZUNlbGwnLCAnZGVmYXVsdERhdGVWYWx1ZSddLFxuICAgIFtDb2x1bW5UeXBlLk5VTUJFUl06IFsnbnVtYmVyRmlsdGVyVmlld0NlbGwnLCAnbnVtYmVyVGFibGVGaWx0ZXJDZWxsJywgJ251bWJlclRhYmxlQ2VsbCcsICdkZWZhdWx0TnVtYmVyVmFsdWUnXSxcbiAgICBbQ29sdW1uVHlwZS5SRUxBVElWRV9EQVRFXTogW1xuICAgICAgJ3JlbGF0aXZlRGF0ZUZpbHRlclZpZXdDZWxsJyxcbiAgICAgICdyZWxhdGl2ZURhdGVUYWJsZUZpbHRlckNlbGwnLFxuICAgICAgJ3JlbGF0aXZlRGF0ZVRhYmxlQ2VsbCcsXG4gICAgICAnZGVmYXVsdFJlbGF0aXZlRGF0ZVZhbHVlJyxcbiAgICBdLFxuICAgIFtDb2x1bW5UeXBlLlRSQU5TTEFUSU9OX0tFWV06IFtcbiAgICAgICd0cmFuc2xhdGlvbktleScsXG4gICAgICAndHJhbnNsYXRpb25LZXlUYWJsZUZpbHRlckNlbGwnLFxuICAgICAgJ3RyYW5zbGF0aW9uS2V5VGFibGVDZWxsJyxcbiAgICAgICdkZWZhdWx0VHJhbnNsYXRpb25LZXlWYWx1ZScsXG4gICAgXSxcbiAgICBbQ29sdW1uVHlwZS5DVVNUT01dOiBbJ2N1c3RvbUZpbHRlclZpZXdDZWxsJywgJ2N1c3RvbVRhYmxlRmlsdGVyQ2VsbCcsICdjdXN0b21UYWJsZUNlbGwnLCAnZGVmYXVsdEN1c3RvbVZhbHVlJ10sXG4gICAgW0NvbHVtblR5cGUuU1RSSU5HXTogWydzdHJpbmdGaWx0ZXJWaWV3Q2VsbCcsICdzdHJpbmdUYWJsZUZpbHRlckNlbGwnLCAnc3RyaW5nVGFibGVDZWxsJywgJ2RlZmF1bHRTdHJpbmdWYWx1ZSddLFxuICB9XG4gIHRhYmxlVGVtcGxhdGVzOiBSZWNvcmQ8c3RyaW5nLCBPYnNlcnZhYmxlPFRlbXBsYXRlUmVmPGFueT4gfCBudWxsPj4gPSB7fVxuXG4gIGdldFRlbXBsYXRlKFxuICAgIGNvbHVtbjogRGF0YVRhYmxlQ29sdW1uLFxuICAgIHRlbXBsYXRlTmFtZXM6IFJlY29yZDxDb2x1bW5UeXBlLCBBcnJheTxzdHJpbmc+PixcbiAgICB0ZW1wbGF0ZXM6IFJlY29yZDxzdHJpbmcsIE9ic2VydmFibGU8VGVtcGxhdGVSZWY8YW55PiB8IG51bGw+PixcbiAgICBpZFN1ZmZpeDogQXJyYXk8c3RyaW5nPlxuICApOiBPYnNlcnZhYmxlPFRlbXBsYXRlUmVmPGFueT4gfCBudWxsPiB7XG4gICAgaWYgKCF0ZW1wbGF0ZXNbY29sdW1uLmlkXSkge1xuICAgICAgdGVtcGxhdGVzW2NvbHVtbi5pZF0gPSBjb21iaW5lTGF0ZXN0KFt0aGlzLmRlZmF1bHRUZW1wbGF0ZXMkLCB0aGlzLnBhcmVudFRlbXBsYXRlcyRdKS5waXBlKFxuICAgICAgICBtYXAoKFtkdCwgdF0pID0+IHtcbiAgICAgICAgICBjb25zdCB0ZW1wbGF0ZXMgPSBbLi4uKGR0ID8/IFtdKSwgLi4uKHQgPz8gW10pXVxuICAgICAgICAgIGNvbnN0IGNvbHVtblRlbXBsYXRlID0gZmluZFRlbXBsYXRlKFxuICAgICAgICAgICAgdGVtcGxhdGVzLFxuICAgICAgICAgICAgaWRTdWZmaXgubWFwKChzdWZmaXgpID0+IGNvbHVtbi5pZCArIHN1ZmZpeClcbiAgICAgICAgICApPy50ZW1wbGF0ZVxuICAgICAgICAgIGlmIChjb2x1bW5UZW1wbGF0ZSkge1xuICAgICAgICAgICAgcmV0dXJuIGNvbHVtblRlbXBsYXRlXG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBmaW5kVGVtcGxhdGUodGVtcGxhdGVzLCB0ZW1wbGF0ZU5hbWVzW2NvbHVtbi5jb2x1bW5UeXBlXSk/LnRlbXBsYXRlID8/IG51bGxcbiAgICAgICAgfSksXG4gICAgICAgIGRlYm91bmNlVGltZSg1MClcbiAgICAgIClcbiAgICB9XG4gICAgcmV0dXJuIHRlbXBsYXRlc1tjb2x1bW4uaWRdXG4gIH1cblxuICBvblJlc2V0RmlsZXJzQ2xpY2soKSB7XG4gICAgdGhpcy5maWx0ZXJzID0gW11cbiAgICB0aGlzLmZpbHRlcmVkLmVtaXQoW10pXG4gICAgdGhpcy5jb21wb25lbnRTdGF0ZUNoYW5nZWQuZW1pdCh7XG4gICAgICBmaWx0ZXJzOiBbXSxcbiAgICB9KVxuICB9XG5cbiAgb25DaGlwUmVtb3ZlKGZpbHRlcjogRmlsdGVyKSB7XG4gICAgY29uc3QgZmlsdGVycyA9IHRoaXMuZmlsdGVycy5maWx0ZXIoKGYpID0+IGYudmFsdWUgIT09IGZpbHRlci52YWx1ZSlcbiAgICB0aGlzLmZpbHRlcnMgPSBmaWx0ZXJzXG4gICAgdGhpcy5maWx0ZXJlZC5lbWl0KGZpbHRlcnMpXG4gICAgdGhpcy5jb21wb25lbnRTdGF0ZUNoYW5nZWQuZW1pdCh7XG4gICAgICBmaWx0ZXJzOiBmaWx0ZXJzLFxuICAgIH0pXG4gIH1cblxuICBvbkZpbHRlckRlbGV0ZShyb3c6IFJvdykge1xuICAgIGNvbnN0IGZpbHRlcnMgPSB0aGlzLmZpbHRlcnMuZmlsdGVyKChmKSA9PiAhKGYuY29sdW1uSWQgPT09IHJvd1sndmFsdWVDb2x1bW5JZCddICYmIGYudmFsdWUgPT09IHJvd1sndmFsdWUnXSkpXG4gICAgdGhpcy5maWx0ZXJzID0gZmlsdGVyc1xuICAgIHRoaXMuZmlsdGVyZWQuZW1pdChmaWx0ZXJzKVxuICAgIHRoaXMuY29tcG9uZW50U3RhdGVDaGFuZ2VkLmVtaXQoe1xuICAgICAgZmlsdGVyczogZmlsdGVycyxcbiAgICB9KVxuICB9XG5cbiAgZm9jdXNUcmlnZ2VyKCkge1xuICAgIGlmICh0aGlzLnRyaWdnZXI/LmlkID09PSAnb2N4RmlsdGVyVmlld1Nob3dNb3JlJykge1xuICAgICAgdGhpcy50cmlnZ2VyPy5mb2N1cygpXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubWFuYWdlQnV0dG9uLmZvY3VzKClcbiAgICB9XG4gIH1cblxuICBzaG93UGFuZWwoZXZlbnQ6IGFueSkge1xuICAgIHRoaXMudHJpZ2dlciA9IGV2ZW50LnNyY0VsZW1lbnRcbiAgICB0aGlzLnBhbmVsLnRvZ2dsZShldmVudClcbiAgfVxuXG4gIGdldENvbHVtbkZvckZpbHRlcihmaWx0ZXI6IEZpbHRlciwgY29sdW1uczogRGF0YVRhYmxlQ29sdW1uW10pIHtcbiAgICByZXR1cm4gY29sdW1ucy5maW5kKChjKSA9PiBjLmlkID09PSBmaWx0ZXIuY29sdW1uSWQpXG4gIH1cblxuICBnZXRDb2x1bW4oY29sSWQ6IHN0cmluZywgY29sdW1uczogRGF0YVRhYmxlQ29sdW1uW10pIHtcbiAgICByZXR1cm4gY29sdW1ucy5maW5kKChjKSA9PiBjLmlkID09PSBjb2xJZClcbiAgfVxuXG4gIHJlc29sdmVGaWVsZERhdGEob2JqZWN0OiBhbnksIGtleTogYW55KSB7XG4gICAgcmV0dXJuIE9iamVjdFV0aWxzLnJlc29sdmVGaWVsZERhdGEob2JqZWN0LCBrZXkpXG4gIH1cblxuICBnZXRSb3dPYmplY3RGcm9tRml0ZXJEYXRhKGZpbHRlcjogRmlsdGVyKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIFtmaWx0ZXIuY29sdW1uSWRdOiBmaWx0ZXIudmFsdWUsXG4gICAgfVxuICB9XG5cbiAgZ2V0Um93Rm9yVmFsdWVDb2x1bW4ocm93OiBSb3cpOiBSb3cge1xuICAgIHJldHVybiB7XG4gICAgICBpZDogcm93LmlkLFxuICAgICAgW3Jvd1sndmFsdWVDb2x1bW5JZCddIGFzIHN0cmluZ106IHJvd1sndmFsdWUnXSxcbiAgICB9XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJjb2x1bW5zJCB8IGFzeW5jIGFzIGNvbHVtbnNcIj5cbiAgPGRpdiAqbmdJZj1cImZpbHRlcnMkIHwgYXN5bmMgYXMgZmlsdGVyc1wiIGNsYXNzPVwiZmxleCBmbGV4LXdyYXAgYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImRpc3BsYXlNb2RlID09PSAnY2hpcHMnOyBlbHNlIG5vQ2hpcHNDb250ZW50XCI+XG4gICAgICA8bmctY29udGFpbmVyICpvY3hJZkJyZWFrcG9pbnQ9XCInZGVza3RvcCc7IGVsc2VUZW1wbGF0ZTogbm9DaGlwc0NvbnRlbnRcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNlbGVjdERpc3BsYXllZENoaXBzKGZpbHRlcnMsIGNvbHVtbnMpIGFzIHNlbGVjdGVkRmlsdGVyc1wiPlxuICAgICAgICAgIDxwLWJ1dHRvblxuICAgICAgICAgICAgI2NoaXBGaWx0ZXJSZXNldEJ1dHRvblxuICAgICAgICAgICAgaWQ9XCJvY3hGaWx0ZXJWaWV3UmVzZXRcIlxuICAgICAgICAgICAgKG9uQ2xpY2spPVwib25SZXNldEZpbGVyc0NsaWNrKClcIlxuICAgICAgICAgICAgaWNvbj1cInBpIHBpLWVyYXNlclwiXG4gICAgICAgICAgICBwVG9vbHRpcD1cInt7ICdPQ1hfRklMVEVSX1ZJRVcuUkVTRVRfRklMVEVSU19CVVRUT04uREVUQUlMJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgICAgICB0b29sdGlwUG9zaXRpb249XCJ0b3BcIlxuICAgICAgICAgICAgdG9vbHRpcEV2ZW50PVwiaG92ZXJcIlxuICAgICAgICAgICAgW2FyaWFMYWJlbF09XCInT0NYX0ZJTFRFUl9WSUVXLlJFU0VUX0ZJTFRFUlNfQlVUVE9OLkFSSUFfTEFCRUwnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICA+PC9wLWJ1dHRvbj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZmlsdGVycy5sZW5ndGggPD0gMFwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAqbmdJZj1cIl9maXRsZXJWaWV3Tm9TZWxlY3Rpb247IGVsc2UgZGVmYXVsdE5vRmlsdGVyc1wiXG4gICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIl9maXRsZXJWaWV3Tm9TZWxlY3Rpb25cIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI2RlZmF1bHROb0ZpbHRlcnM+XG4gICAgICAgICAgICAgIDxzcGFuIGlkPVwib2N4RmlsdGVyVmlld05vRmlsdGVyc1wiPnt7ICdPQ1hfRklMVEVSX1ZJRVcuTk9fRklMVEVSUycgfCB0cmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIoY2hpcFRlbXBsYXRlcyQgfCBhc3luYykgPz8ge30gYXMgdGVtcGxhdGVzXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBmaWx0ZXIgb2Ygc2VsZWN0ZWRGaWx0ZXJzXCI+XG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJnZXRDb2x1bW5Gb3JGaWx0ZXIoZmlsdGVyLCBjb2x1bW5zKSBhcyBjb2x1bW5cIj5cbiAgICAgICAgICAgICAgICA8cC1jaGlwIFtyZW1vdmFibGVdPVwidHJ1ZVwiIChvblJlbW92ZSk9XCJvbkNoaXBSZW1vdmUoZmlsdGVyKVwiIFtzdHlsZUNsYXNzXT1cImNoaXBTdHlsZUNsYXNzXCI+XG4gICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiX2ZpbHRlclZpZXdDaGlwQ29udGVudDsgZWxzZSBjaGlwQ29udGVudFRlbXBsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiX2ZpbHRlclZpZXdDaGlwQ29udGVudFwiXG4gICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7XG4gICAgICAgICAgICAgICAgZmlsdGVyOiBmaWx0ZXIsXG4gICAgICAgICAgICAgICAgY29sdW1uOiBjb2x1bW4sXG4gICAgICAgICAgICAgICAgZmlsdGVyVmFsdWVUZW1wbGF0ZXM6IHRlbXBsYXRlcyxcbiAgICAgICAgICAgICAgICB0cnV0aHlUZW1wbGF0ZTogdHJ1dGh5VGVtcGxhdGUsXG4gICAgICAgICAgICAgICAgZmlsdGVyVmFsdWVUZW1wbGF0ZTogY2hpcFRlbXBsYXRlXG4gICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2NoaXBDb250ZW50VGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJjb2x1bW5zJCB8IGFzeW5jIGFzIGNvbHVtbnNcIlxuICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPVwid2hpdGUtc3BhY2U6IG5vd3JhcFwiXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwLWNoaXAtdGV4dCBmbGV4IGZsZXgtbm93cmFwXCJcbiAgICAgICAgICAgICAgICAgICAgICA+e3tjb2x1bW4/Lm5hbWVLZXkgPz8gJycgfCB0cmFuc2xhdGUgfX06PG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJmaWx0ZXIuZmlsdGVyVHlwZSA9PT0gRmlsdGVyVHlwZS5FUVVBTCB8fCAhZmlsdGVyLmZpbHRlclR5cGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiY2hpcFRlbXBsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7XG4gICAgICAgICAgICAgICAgICAgICAgICB0ZW1wbGF0ZXM6IHRlbXBsYXRlcyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlcjogZmlsdGVyLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1uOiBjb2x1bW5cbiAgICAgICAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImZpbHRlci5maWx0ZXJUeXBlID09PSBGaWx0ZXJUeXBlLlRSVVRIWVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJ0cnV0aHlUZW1wbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7XG4gICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IGZpbHRlci52YWx1ZVxuICAgICAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICA8L3AtY2hpcD5cbiAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzZWxlY3RlZEZpbHRlcnMubGVuZ3RoIDwgZmlsdGVycy5sZW5ndGhcIj5cbiAgICAgICAgICAgICAgPHAtY2hpcFxuICAgICAgICAgICAgICAgICNzaG93TW9yZUNoaXBcbiAgICAgICAgICAgICAgICBpZD1cIm9jeEZpbHRlclZpZXdTaG93TW9yZVwiXG4gICAgICAgICAgICAgICAgdGFiaW5kZXg9XCIwXCJcbiAgICAgICAgICAgICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwic2hvd1BhbmVsKCRldmVudClcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXIgZmlsdGVyLXZpZXctZm9jdXNhYmxlXCJcbiAgICAgICAgICAgICAgICAoa2V5ZG93bi5lbnRlcik9XCJzaG93UGFuZWwoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgKGtleWRvd24uc3BhY2UpPVwic2hvd1BhbmVsKCRldmVudClcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgKm5nSWY9XCJfZmlsdGVyVmlld1Nob3dNb3JlQ2hpcDsgZWxzZSBzaG93TW9yZUNoaXBUZW1wbGF0ZVwiXG4gICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJfZmlsdGVyVmlld1Nob3dNb3JlQ2hpcFwiXG4gICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwie1xuICAgICAgICAgICAgJGltcGxpY2l0OiBmaWx0ZXJzLmxlbmd0aCAtIHNlbGVjdGVkRmlsdGVycy5sZW5ndGhcbiAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNzaG93TW9yZUNoaXBUZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicC1jaGlwLXRleHQgZmxleCBmbGV4LW5vd3JhcFwiPiAre3tmaWx0ZXJzLmxlbmd0aCAtIHNlbGVjdGVkRmlsdGVycy5sZW5ndGh9fSA8L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImZpbHRlclRhYmxlUGFuZWxcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgPC9wLWNoaXA+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctdGVtcGxhdGUgI25vQ2hpcHNDb250ZW50PlxuICAgICAgPHAtYnV0dG9uXG4gICAgICAgICNtYW5hZ2VCdXR0b25cbiAgICAgICAgaWQ9XCJvY3hGaWx0ZXJWaWV3TWFuYWdlXCJcbiAgICAgICAgKG9uQ2xpY2spPVwic2hvd1BhbmVsKCRldmVudClcIlxuICAgICAgICBpY29uPVwicGkgcGktc2xpZGVycy1oXCJcbiAgICAgICAgbGFiZWw9XCJ7eyAnT0NYX0ZJTFRFUl9WSUVXLk1BTkFHRV9GSUxURVJTX0JVVFRPTi5MQUJFTCcgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICBwVG9vbHRpcD1cInt7ICdPQ1hfRklMVEVSX1ZJRVcuTUFOQUdFX0ZJTFRFUlNfQlVUVE9OLkRFVEFJTCcgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICB0b29sdGlwUG9zaXRpb249XCJ0b3BcIlxuICAgICAgICB0b29sdGlwRXZlbnQ9XCJob3ZlclwiXG4gICAgICAgIFtiYWRnZV09XCJmaWx0ZXJzLmxlbmd0aC50b1N0cmluZygpXCJcbiAgICAgICAgW2FyaWFMYWJlbF09XCInT0NYX0ZJTFRFUl9WSUVXLk1BTkFHRV9GSUxURVJTX0JVVFRPTi5BUklBX0xBQkVMJyB8IHRyYW5zbGF0ZVwiXG4gICAgICA+PC9wLWJ1dHRvbj5cbiAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiZmlsdGVyVGFibGVQYW5lbFwiPjwvbmctY29udGFpbmVyPlxuICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICA8bmctdGVtcGxhdGUgI2ZpbHRlclRhYmxlUGFuZWw+XG4gICAgICA8cC1vdmVybGF5UGFuZWwgKm5nSWY9XCJ0YWJsZVRlbXBsYXRlcyQgfCBhc3luYyBhcyB0ZW1wbGF0ZXNcIiAjb3AgW3N0eWxlXT1cInBhbmVsU3R5bGVcIiAob25IaWRlKT1cImZvY3VzVHJpZ2dlcigpXCI+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJjb250ZW50XCI+XG4gICAgICAgICAgPGRpdiBwRm9jdXNUcmFwPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtY2VudGVyIG1iLTJcIj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LTJ4bCBmb250LW1lZGl1bVwiPnt7J09DWF9GSUxURVJfVklFVy5QQU5FTF9USVRMRScgfCB0cmFuc2xhdGV9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICA8cC1idXR0b25cbiAgICAgICAgICAgICAgICAgIHBBdXRvRm9jdXNcbiAgICAgICAgICAgICAgICAgIFthdXRvZm9jdXNdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICBpZD1cIm9jeEZpbHRlclZpZXdPdmVybGF5UmVzZXRcIlxuICAgICAgICAgICAgICAgICAgKG9uQ2xpY2spPVwib25SZXNldEZpbGVyc0NsaWNrKClcIlxuICAgICAgICAgICAgICAgICAgaWNvbj1cInBpIHBpLWVyYXNlclwiXG4gICAgICAgICAgICAgICAgICBwVG9vbHRpcD1cInt7ICdPQ1hfRklMVEVSX1ZJRVcuUkVTRVRfRklMVEVSU19CVVRUT04uREVUQUlMJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgICAgICAgICAgICB0b29sdGlwUG9zaXRpb249XCJ0b3BcIlxuICAgICAgICAgICAgICAgICAgdG9vbHRpcEV2ZW50PVwiaG92ZXJcIlxuICAgICAgICAgICAgICAgICAgW2FyaWFMYWJlbF09XCInT0NYX0ZJTFRFUl9WSUVXLlJFU0VUX0ZJTFRFUlNfQlVUVE9OLkFSSUFfTEFCRUwnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICA+PC9wLWJ1dHRvbj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxvY3gtZGF0YS10YWJsZVxuICAgICAgICAgICAgICBpZD1cIm9jeEZpbHRlclZpZXdEYXRhVGFibGVcIlxuICAgICAgICAgICAgICBbcm93c109XCIoY29sdW1uRmlsdGVyRGF0YVJvd3MkIHwgYXN5bmMpID8/IFtdXCJcbiAgICAgICAgICAgICAgW2NvbHVtbnNdPVwiY29sdW1uRmlsdGVyVGFibGVDb2x1bW5zXCJcbiAgICAgICAgICAgICAgW2VtcHR5UmVzdWx0c01lc3NhZ2VdPVwiJ09DWF9GSUxURVJfVklFVy5OT19GSUxURVJTJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgIFtwYWdpbmF0b3JdPVwiZmFsc2VcIlxuICAgICAgICAgICAgICBbdGFibGVTdHlsZV09XCJ0YWJsZVN0eWxlXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImNvbHVtbklkQ2VsbFwiIGxldC1yb3dPYmplY3Q9XCJyb3dPYmplY3RcIiBsZXQtY29sdW1uPVwiY29sdW1uXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwidGVtcGxhdGVzW2NvbHVtbi5pZF1cIlxuICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cIntcbiAgICAgICAgICAgIHJvd09iamVjdDogcm93T2JqZWN0LFxuICAgICAgICAgICAgY29sdW1uOiBjb2x1bW4sXG4gICAgICAgICAgfVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwidmFsdWVJZENlbGxcIiBsZXQtcm93T2JqZWN0PVwicm93T2JqZWN0XCIgbGV0LWNvbHVtbj1cImNvbHVtblwiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJnZXRDb2x1bW4ocm93T2JqZWN0Wyd2YWx1ZUNvbHVtbklkJ10sIGNvbHVtbnMpIGFzIHZhbHVlQ29sdW1uXCI+XG4gICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiIXZhbHVlQ29sdW1uLmZpbHRlclR5cGUgfHwgdmFsdWVDb2x1bW4uZmlsdGVyVHlwZSA9PT0gRmlsdGVyVHlwZS5FUVVBTFwiXG4gICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInRlbXBsYXRlc1t2YWx1ZUNvbHVtbi5pZF1cIlxuICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwie1xuICAgICAgICAgICAgICByb3dPYmplY3Q6IGdldFJvd0ZvclZhbHVlQ29sdW1uKHJvd09iamVjdCksXG4gICAgICAgICAgICAgIGNvbHVtbjogdmFsdWVDb2x1bW5cbiAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwidmFsdWVDb2x1bW4uZmlsdGVyVHlwZSA9PT0gRmlsdGVyVHlwZS5UUlVUSFlcIlxuICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJ0cnV0aHlUZW1wbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7XG4gICAgICAgIHZhbHVlOiByZXNvbHZlRmllbGREYXRhKHJvd09iamVjdCwgY29sdW1uLmlkKVxuICAgICAgfVwiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImFjdGlvbnNJZENlbGxcIiBsZXQtcm93T2JqZWN0PVwicm93T2JqZWN0XCIgbGV0LWNvbHVtbj1cImNvbHVtblwiPlxuICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIHBCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwLWJ1dHRvbi1yb3VuZGVkIHAtYnV0dG9uLWRhbmdlciBwLWJ1dHRvbi10ZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgdGl0bGU9XCJ7eyAnT0NYX0ZJTFRFUl9WSUVXLlRBQkxFLlJFTU9WRV9GSUxURVJfVElUTEUnIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInT0NYX0ZJTFRFUl9WSUVXLlRBQkxFLlJFTU9WRV9GSUxURVJfQVJJQV9MQUJFTCcgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgICAgICBpY29uPVwicGkgcGktdHJhc2hcIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25GaWx0ZXJEZWxldGUocm93T2JqZWN0KVwiXG4gICAgICAgICAgICAgICAgICA+PC9idXR0b24+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICA8L29jeC1kYXRhLXRhYmxlPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgPC9wLW92ZXJsYXlQYW5lbD5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L2Rpdj5cbjwvbmctY29udGFpbmVyPlxuXG48bmctdGVtcGxhdGUgI2NoaXBUZW1wbGF0ZSBsZXQtdGVtcGxhdGVzPVwidGVtcGxhdGVzXCIgbGV0LWZpbHRlcj1cImZpbHRlclwiIGxldC1jb2x1bW49XCJjb2x1bW5cIj5cbiAgPG5nLWNvbnRhaW5lclxuICAgICpuZ0lmPVwidGVtcGxhdGVzW2NvbHVtbi5pZF0gYXMgdGVtcGxhdGVcIlxuICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInRlbXBsYXRlXCJcbiAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwie1xuICAgICAgICAgICAgcm93T2JqZWN0OiBnZXRSb3dPYmplY3RGcm9tRml0ZXJEYXRhKGZpbHRlciksXG4gICAgICAgICAgICBjb2x1bW46IGNvbHVtblxuICAgICAgICAgIH1cIlxuICA+XG4gIDwvbmctY29udGFpbmVyPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICN0cnV0aHlUZW1wbGF0ZSBsZXQtdmFsdWU9XCJ2YWx1ZVwiPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwidmFsdWVcIj4ge3snT0NYX0ZJTFRFUl9WSUVXLkZJTFRFUl9ZRVMnIHwgdHJhbnNsYXRlfX0gPC9uZy1jb250YWluZXI+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCIhdmFsdWVcIj4ge3snT0NYX0ZJTFRFUl9WSUVXLkZJTFRFUl9OTycgfCB0cmFuc2xhdGV9fSA8L25nLWNvbnRhaW5lcj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJkZWZhdWx0U3RyaW5nVmFsdWVcIiBsZXQtcm93T2JqZWN0PVwicm93T2JqZWN0XCIgbGV0LWNvbHVtbj1cImNvbHVtblwiPlxuICA8bmctY29udGFpbmVyPiB7eyByZXNvbHZlRmllbGREYXRhKHJvd09iamVjdCwgY29sdW1uLmlkKX19IDwvbmctY29udGFpbmVyPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImRlZmF1bHROdW1iZXJWYWx1ZVwiIGxldC1yb3dPYmplY3Q9XCJyb3dPYmplY3RcIiBsZXQtY29sdW1uPVwiY29sdW1uXCI+XG4gIDxuZy1jb250YWluZXI+IHt7IHJlc29sdmVGaWVsZERhdGEocm93T2JqZWN0LCBjb2x1bW4uaWQpIHwgbnVtYmVyIH19IDwvbmctY29udGFpbmVyPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImRlZmF1bHRDdXN0b21WYWx1ZVwiIGxldC1yb3dPYmplY3Q9XCJyb3dPYmplY3RcIiBsZXQtY29sdW1uPVwiY29sdW1uXCI+IDwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJkZWZhdWx0RGF0ZVZhbHVlXCIgbGV0LXJvd09iamVjdD1cInJvd09iamVjdFwiIGxldC1jb2x1bW49XCJjb2x1bW5cIj5cbiAgPG5nLWNvbnRhaW5lcj4ge3sgcmVzb2x2ZUZpZWxkRGF0YShyb3dPYmplY3QsIGNvbHVtbi5pZCkgfCBkYXRlOiBjb2x1bW4uZGF0ZUZvcm1hdCA/PyAnbWVkaXVtJyB9fSA8L25nLWNvbnRhaW5lcj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJkZWZhdWx0UmVsYXRpdmVEYXRlVmFsdWVcIiBsZXQtcm93T2JqZWN0PVwicm93T2JqZWN0XCIgbGV0LWNvbHVtbj1cImNvbHVtblwiPlxuICA8bmctY29udGFpbmVyPlxuICAgIHt7ICdPQ1hfREFUQV9UQUJMRS5FRElURUQnIHwgdHJhbnNsYXRlIH19IHt7IHJlc29sdmVGaWVsZERhdGEocm93T2JqZWN0LCBjb2x1bW4uaWQpIHwgdGltZWFnbyB9fVxuICA8L25nLWNvbnRhaW5lcj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJkZWZhdWx0VHJhbnNsYXRpb25LZXlWYWx1ZVwiIGxldC1yb3dPYmplY3Q9XCJyb3dPYmplY3RcIiBsZXQtY29sdW1uPVwiY29sdW1uXCI+XG4gIDxuZy1jb250YWluZXI+IHt7IHJlc29sdmVGaWVsZERhdGEocm93T2JqZWN0LCBjb2x1bW4uaWQpIHwgdHJhbnNsYXRlIH19PC9uZy1jb250YWluZXI+XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
@@ -83,10 +83,10 @@ export class GroupByCountDiagramComponent {
|
|
|
83
83
|
activeDiagramType: newDiagramType
|
|
84
84
|
});
|
|
85
85
|
}
|
|
86
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
87
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.
|
|
86
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: GroupByCountDiagramComponent, deps: [{ token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
87
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.12", type: GroupByCountDiagramComponent, selector: "ocx-group-by-count-diagram", inputs: { sumKey: "sumKey", diagramType: "diagramType", type: "type", supportedDiagramTypes: "supportedDiagramTypes", data: "data", columnType: "columnType", columnField: "columnField", column: "column" }, outputs: { dataSelected: "dataSelected", diagramTypeChanged: "diagramTypeChanged", componentStateChanged: "componentStateChanged" }, ngImport: i0, template: "<ocx-diagram\n [data]=\"(diagramData$ | async) || []\"\n [sumKey]=\"sumKey\"\n [diagramType]=\"diagramType\"\n (onDataSelect)=\"dataClicked($event)\"\n [supportedDiagramTypes]=\"supportedDiagramTypes\"\n (diagramTypeChanged)=\"onDiagramTypeChanged($event)\"\n></ocx-diagram>\n", dependencies: [{ kind: "component", type: i2.DiagramComponent, selector: "ocx-diagram", inputs: ["data", "sumKey", "diagramType", "supportedDiagramTypes"], outputs: ["dataSelected", "diagramTypeChanged", "componentStateChanged"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }] }); }
|
|
88
88
|
}
|
|
89
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
89
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: GroupByCountDiagramComponent, decorators: [{
|
|
90
90
|
type: Component,
|
|
91
91
|
args: [{ selector: 'ocx-group-by-count-diagram', template: "<ocx-diagram\n [data]=\"(diagramData$ | async) || []\"\n [sumKey]=\"sumKey\"\n [diagramType]=\"diagramType\"\n (onDataSelect)=\"dataClicked($event)\"\n [supportedDiagramTypes]=\"supportedDiagramTypes\"\n (diagramTypeChanged)=\"onDiagramTypeChanged($event)\"\n></ocx-diagram>\n" }]
|
|
92
92
|
}], ctorParameters: () => [{ type: i1.TranslateService }], propDecorators: { sumKey: [{
|
|
@@ -112,4 +112,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImpor
|
|
|
112
112
|
}], componentStateChanged: [{
|
|
113
113
|
type: Output
|
|
114
114
|
}] } });
|
|
115
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JvdXAtYnktY291bnQtZGlhZ3JhbS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItYWNjZWxlcmF0b3Ivc3JjL2xpYi9jb21wb25lbnRzL2dyb3VwLWJ5LWNvdW50LWRpYWdyYW0vZ3JvdXAtYnktY291bnQtZGlhZ3JhbS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItYWNjZWxlcmF0b3Ivc3JjL2xpYi9jb21wb25lbnRzL2dyb3VwLWJ5LWNvdW50LWRpYWdyYW0vZ3JvdXAtYnktY291bnQtZGlhZ3JhbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQzlFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBQ3RELE9BQU8sRUFBRSxlQUFlLEVBQWMsYUFBYSxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBQ3BGLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQTtBQUUxRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0seUJBQXlCLENBQUE7Ozs7O0FBWXJELE1BQU0sT0FBTyw0QkFBNEI7SUFHdkM7O09BRUc7SUFDSCxJQUNJLElBQUk7UUFDTixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUE7SUFDekIsQ0FBQztJQUNELElBQUksSUFBSSxDQUFDLEtBQWtCO1FBQ3pCLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFBO0lBQzFCLENBQUM7SUFHRCxJQUNJLElBQUk7UUFDTixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUE7SUFDL0IsQ0FBQztJQUNELElBQUksSUFBSSxD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QkFBN0IsS0FBSztnQkFHRixJQUFJO3NCQURQLEtBQUs7Z0JBV0YsVUFBVTtzQkFEYixLQUFLO2dCQVVGLFdBQVc7c0JBRGQsS0FBSztnQkFTRixNQUFNO3NCQURULEtBQUs7Z0JBU0ksWUFBWTtzQkFBckIsTUFBTTtnQkFDRyxrQkFBa0I7c0JBQTNCLE1BQU07Z0JBQ0cscUJBQXFCO3NCQUE5QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSdcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgY29tYmluZUxhdGVzdCwgbWFwLCBtZXJnZU1hcCwgb2YgfSBmcm9tICdyeGpzJ1xuaW1wb3J0IHsgQ29sdW1uVHlwZSB9IGZyb20gJy4uLy4uL21vZGVsL2NvbHVtbi10eXBlLm1vZGVsJ1xuaW1wb3J0IHsgRGlhZ3JhbUNvbHVtbiB9IGZyb20gJy4uLy4uL21vZGVsL2RpYWdyYW0tY29sdW1uJ1xuaW1wb3J0IHsgT2JqZWN0VXRpbHMgfSBmcm9tICcuLi8uLi91dGlscy9vYmplY3R1dGlscydcbmltcG9ydCB7IERpYWdyYW1EYXRhIH0gZnJvbSAnLi4vLi4vbW9kZWwvZGlhZ3JhbS1kYXRhJ1xuaW1wb3J0IHsgRGlhZ3JhbVR5cGUgfSBmcm9tICcuLi8uLi9tb2RlbC9kaWFncmFtLXR5cGUnXG5cbmV4cG9ydCBpbnRlcmZhY2UgR3JvdXBCeUNvdW50RGlhZ3JhbUNvbXBvbmVudFN0YXRlIHtcbiAgYWN0aXZlRGlhZ3JhbVR5cGU/OiBEaWFncmFtVHlwZVxufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdvY3gtZ3JvdXAtYnktY291bnQtZGlhZ3JhbScsXG4gIHRlbXBsYXRlVXJsOiAnLi9ncm91cC1ieS1jb3VudC1kaWFncmFtLmNvbXBvbmVudC5odG1sJyxcbn0pXG5leHBvcnQgY2xhc3MgR3JvdXBCeUNvdW50RGlhZ3JhbUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIHN1bUtleSA9ICdTRUFSQ0guU1VNTUFSWV9USVRMRSdcbiAgQElucHV0KCkgZGlhZ3JhbVR5cGUgPSBEaWFncmFtVHlwZS5QSUVcbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIFdpbGwgYmUgcmVwbGFjZWQgYnkgZGlhZ3JhbVR5cGVcbiAgICovXG4gIEBJbnB1dCgpXG4gIGdldCB0eXBlKCk6IERpYWdyYW1UeXBlIHtcbiAgICByZXR1cm4gdGhpcy5kaWFncmFtVHlwZVxuICB9XG4gIHNldCB0eXBlKHZhbHVlOiBEaWFncmFtVHlwZSkge1xuICAgIHRoaXMuZGlhZ3JhbVR5cGUgPSB2YWx1ZVxuICB9XG4gIEBJbnB1dCgpIHN1cHBvcnRlZERpYWdyYW1UeXBlczogRGlhZ3JhbVR5cGVbXSA9IFtdXG4gIHByaXZhdGUgX2RhdGEkID0gbmV3IEJlaGF2aW9yU3ViamVjdDx1bmtub3duW10+KFtdKVxuICBASW5wdXQoKVxuICBnZXQgZGF0YSgpOiB1bmtub3duW10ge1xuICAgIHJldHVybiB0aGlzLl9kYXRhJC5nZXRWYWx1ZSgpXG4gIH1cbiAgc2V0IGRhdGEodmFsdWU6IHVua25vd25bXSkge1xuICAgIHRoaXMuX2RhdGEkLm5leHQodmFsdWUpXG4gIH1cbiAgZGlhZ3JhbURhdGEkOiBPYnNlcnZhYmxlPERpYWdyYW1EYXRhW10+IHwgdW5kZWZpbmVkXG5cbiAgcHJpdmF0ZSBfY29sdW1uVHlwZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PENvbHVtblR5cGU+KENvbHVtblR5cGUuU1RSSU5HKVxuICBASW5wdXQoKVxuICBnZXQgY29sdW1uVHlwZSgpOiBDb2x1bW5UeXBlIHtcbiAgICByZXR1cm4gdGhpcy5fY29sdW1uVHlwZSQuZ2V0VmFsdWUoKVxuICB9XG4gIHNldCBjb2x1bW5UeXBlKHZhbHVlOiBDb2x1bW5UeXBlKSB7XG4gICAgdGhpcy5fY29sdW1uVHlwZSQubmV4dCh2YWx1ZSlcbiAgfVxuXG4gIHByaXZhdGUgX2NvbHVtbkZpZWxkJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPignJylcbiAgQElucHV0KClcbiAgZ2V0IGNvbHVtbkZpZWxkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX2NvbHVtbkZpZWxkJC5nZXRWYWx1ZSgpXG4gIH1cbiAgc2V0IGNvbHVtbkZpZWxkKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9jb2x1bW5GaWVsZCQubmV4dCh2YWx1ZSlcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIGdldCBjb2x1bW4oKTogRGlhZ3JhbUNvbHVtbiB7XG4gICAgcmV0dXJuIHsgY29sdW1uVHlwZTogdGhpcy5jb2x1bW5UeXBlLCBpZDogdGhpcy5jb2x1bW5GaWVsZCB9XG4gIH1cbiAgc2V0IGNvbHVtbih2YWx1ZTogRGlhZ3JhbUNvbHVtbikge1xuICAgIHRoaXMuY29sdW1uVHlwZSA9IHZhbHVlLmNvbHVtblR5cGVcbiAgICB0aGlzLmNvbHVtbkZpZWxkID0gdmFsdWUuaWRcbiAgfVxuXG4gIEBPdXRwdXQoKSBkYXRhU2VsZWN0ZWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpXG4gIEBPdXRwdXQoKSBkaWFncmFtVHlwZUNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxEaWFncmFtVHlwZT4gPSBuZXcgRXZlbnRFbWl0dGVyKClcbiAgQE91dHB1dCgpIGNvbXBvbmVudFN0YXRlQ2hhbmdlZDogRXZlbnRFbWl0dGVyPEdyb3VwQnlDb3VudERpYWdyYW1Db21wb25lbnRTdGF0ZT4gPSBuZXcgRXZlbnRFbWl0dGVyKClcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UpIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5kaWFncmFtRGF0YSQgPSBjb21iaW5lTGF0ZXN0KFt0aGlzLl9kYXRhJCwgdGhpcy5fY29sdW1uRmllbGQkLCB0aGlzLl9jb2x1bW5UeXBlJF0pLnBpcGUoXG4gICAgICBtZXJnZU1hcCgoW2RhdGEsIGNvbHVtbkZpZWxkLCBjb2x1bW5UeXBlXSkgPT4ge1xuICAgICAgICBjb25zdCBjb2x1bW5EYXRhID0gZGF0YS5tYXAoKGQpID0+IE9iamVjdFV0aWxzLnJlc29sdmVGaWVsZERhdGEoZCwgY29sdW1uRmllbGQpKVxuICAgICAgICBjb25zdCBvY2N1cnJlbmNlcyA9IGNvbHVtbkRhdGEucmVkdWNlKChhY2MsIGN1cnJlbnQpID0+IHtcbiAgICAgICAgICByZXR1cm4gYWNjLnNvbWUoKGU6IHsgbGFiZWw6IGFueSB9KSA9PiBlLmxhYmVsID09PSBjdXJyZW50KVxuICAgICAgICAgICAgPyAoYWNjLmZpbmQoKGU6IHsgbGFiZWw6IGFueSB9KSA9PiBlLmxhYmVsID09PSBjdXJyZW50KS52YWx1ZSsrLCBhY2MpXG4gICAgICAgICAgICA6IFsuLi5hY2MsIHsgbGFiZWw6IGN1cnJlbnQsIHZhbHVlOiAxIH1dXG4gICAgICAgIH0sIFtdKVxuICAgICAgICBpZiAoY29sdW1uVHlwZSA9PT0gQ29sdW1uVHlwZS5UUkFOU0xBVElPTl9LRVkgJiYgb2NjdXJyZW5jZXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuZ2V0KG9jY3VycmVuY2VzLm1hcCgobzogeyBsYWJlbDogYW55IH0pID0+IG8ubGFiZWwpKS5waXBlKFxuICAgICAgICAgICAgbWFwKCh0cmFuc2xhdGlvbnM6IHsgW3g6IHN0cmluZ106IGFueSB9KSA9PlxuICAgICAgICAgICAgICBvY2N1cnJlbmNlcy5tYXAoKG86IHsgbGFiZWw6IHN0cmluZzsgdmFsdWU6IGFueSB9KSA9PiAoe1xuICAgICAgICAgICAgICAgIGxhYmVsOiB0cmFuc2xhdGlvbnNbby5sYWJlbF0sXG4gICAgICAgICAgICAgICAgdmFsdWU6IG8udmFsdWUsXG4gICAgICAgICAgICAgIH0pKVxuICAgICAgICAgICAgKVxuICAgICAgICAgIClcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gb2Yob2NjdXJyZW5jZXMpXG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgKVxuICB9XG5cbiAgZGF0YUNsaWNrZWQoZXZlbnQ6IGFueSkge1xuICAgIHRoaXMuZGF0YVNlbGVjdGVkLmVtaXQoZXZlbnQpXG4gIH1cblxuICBvbkRpYWdyYW1UeXBlQ2hhbmdlZChuZXdEaWFncmFtVHlwZTogRGlhZ3JhbVR5cGUpIHtcbiAgICB0aGlzLmRpYWdyYW1UeXBlID0gbmV3RGlhZ3JhbVR5cGVcbiAgICB0aGlzLmRpYWdyYW1UeXBlQ2hhbmdlZC5lbWl0KG5ld0RpYWdyYW1UeXBlKVxuICAgIHRoaXMuY29tcG9uZW50U3RhdGVDaGFuZ2VkLmVtaXQoe1xuICAgICAgYWN0aXZlRGlhZ3JhbVR5cGU6IG5ld0RpYWdyYW1UeXBlXG4gICAgfSlcbiAgfVxufVxuIiwiPG9jeC1kaWFncmFtXG4gIFtkYXRhXT1cIihkaWFncmFtRGF0YSQgfCBhc3luYykgfHwgW11cIlxuICBbc3VtS2V5XT1cInN1bUtleVwiXG4gIFtkaWFncmFtVHlwZV09XCJkaWFncmFtVHlwZVwiXG4gIChvbkRhdGFTZWxlY3QpPVwiZGF0YUNsaWNrZWQoJGV2ZW50KVwiXG4gIFtzdXBwb3J0ZWREaWFncmFtVHlwZXNdPVwic3VwcG9ydGVkRGlhZ3JhbVR5cGVzXCJcbiAgKGRpYWdyYW1UeXBlQ2hhbmdlZCk9XCJvbkRpYWdyYW1UeXBlQ2hhbmdlZCgkZXZlbnQpXCJcbj48L29jeC1kaWFncmFtPlxuIl19
|
|
115
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JvdXAtYnktY291bnQtZGlhZ3JhbS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItYWNjZWxlcmF0b3Ivc3JjL2xpYi9jb21wb25lbnRzL2dyb3VwLWJ5LWNvdW50LWRpYWdyYW0vZ3JvdXAtYnktY291bnQtZGlhZ3JhbS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItYWNjZWxlcmF0b3Ivc3JjL2xpYi9jb21wb25lbnRzL2dyb3VwLWJ5LWNvdW50LWRpYWdyYW0vZ3JvdXAtYnktY291bnQtZGlhZ3JhbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQzlFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBQ3RELE9BQU8sRUFBRSxlQUFlLEVBQWMsYUFBYSxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBQ3BGLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQTtBQUUxRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0seUJBQXlCLENBQUE7Ozs7O0FBWXJELE1BQU0sT0FBTyw0QkFBNEI7SUFHdkM7O09BRUc7SUFDSCxJQUNJLElBQUk7UUFDTixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUE7SUFDekIsQ0FBQztJQUNELElBQUksSUFBSSxDQUFDLEtBQWtCO1FBQ3pCLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFBO0lBQzFCLENBQUM7SUFHRCxJQUNJLElBQUk7UUFDTixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUE7SUFDL0IsQ0FBQztJQUNELElBQUksSUFBSSxDQUFDLEtBQWdCO1FBQ3ZCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQ3pCLENBQUM7SUFJRCxJQUNJLFVBQVU7UUFDWixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLENBQUE7SUFDckMsQ0FBQztJQUNELElBQUksVUFBVSxDQUFDLEtBQWlCO1FBQzlCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQy9CLENBQUM7SUFHRCxJQUNJLFdBQVc7UUFDYixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFFLENBQUE7SUFDdEMsQ0FBQztJQUNELElBQUksV0FBVyxDQUFDLEtBQWE7UUFDM0IsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDaEMsQ0FBQztJQUVELElBQ0ksTUFBTTtRQUNSLE9BQU8sRUFBRSxVQUFVLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFBO0lBQzlELENBQUM7SUFDRCxJQUFJLE1BQU0sQ0FBQyxLQUFvQjtRQUM3QixJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQyxVQUFVLENBQUE7UUFDbEMsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUMsRUFBRSxDQUFBO0lBQzdCLENBQUM7SUFNRCxZQUFvQixnQkFBa0M7UUFBbEMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQXREN0MsV0FBTSxHQUFHLHNCQUFzQixDQUFBO1FBQy9CLGdCQUFXLCtCQUFrQjtRQVc3QiwwQkFBcUIsR0FBa0IsRUFBRSxDQUFBO1FBQzFDLFdBQU0sR0FBRyxJQUFJLGVBQWUsQ0FBWSxFQUFFLENBQUMsQ0FBQTtRQVUzQyxpQkFBWSxHQUFHLElBQUksZUFBZSxDQUFhLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQVNqRSxrQkFBYSxHQUFHLElBQUksZUFBZSxDQUFTLEVBQUUsQ0FBQyxDQUFBO1FBa0I3QyxpQkFBWSxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFBO1FBQ3BELHVCQUFrQixHQUE4QixJQUFJLFlBQVksRUFBRSxDQUFBO1FBQ2xFLDBCQUFxQixHQUFvRCxJQUFJLFlBQVksRUFBRSxDQUFBO0lBRTVDLENBQUM7SUFFMUQsUUFBUTtRQUNOLElBQUksQ0FBQyxZQUFZLEdBQUcsYUFBYSxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FDMUYsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsV0FBVyxFQUFFLFVBQVUsQ0FBQyxFQUFFLEVBQUU7WUFDM0MsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsV0FBVyxDQUFDLGdCQUFnQixDQUFDLENBQUMsRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFBO1lBQ2hGLE1BQU0sV0FBVyxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsT0FBTyxFQUFFLEVBQUU7Z0JBQ3JELE9BQU8sR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQWlCLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLEtBQUssT0FBTyxDQUFDO29CQUN6RCxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBaUIsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssS0FBSyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxHQUFHLENBQUM7b0JBQ3JFLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxFQUFFLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQTtZQUM1QyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUE7WUFDTixJQUFJLFVBQVUsS0FBSyxVQUFVLENBQUMsZUFBZSxJQUFJLFdBQVcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQ3hFLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBaUIsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUNwRixHQUFHLENBQUMsQ0FBQyxZQUFrQyxFQUFFLEVBQUUsQ0FDekMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQWdDLEVBQUUsRUFBRSxDQUFDLENBQUM7b0JBQ3JELEtBQUssRUFBRSxZQUFZLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztvQkFDNUIsS0FBSyxFQUFFLENBQUMsQ0FBQyxLQUFLO2lCQUNmLENBQUMsQ0FBQyxDQUNKLENBQ0YsQ0FBQTtZQUNILENBQUM7aUJBQU0sQ0FBQztnQkFDTixPQUFPLEVBQUUsQ0FBQyxXQUFXLENBQUMsQ0FBQTtZQUN4QixDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQ0gsQ0FBQTtJQUNILENBQUM7SUFFRCxXQUFXLENBQUMsS0FBVTtRQUNwQixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUMvQixDQUFDO0lBRUQsb0JBQW9CLENBQUMsY0FBMkI7UUFDOUMsSUFBSSxDQUFDLFdBQVcsR0FBRyxjQUFjLENBQUE7UUFDakMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQTtRQUM1QyxJQUFJLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDO1lBQzlCLGlCQUFpQixFQUFFLGNBQWM7U0FDbEMsQ0FBQyxDQUFBO0lBQ0osQ0FBQzsrR0E1RlUsNEJBQTRCO21HQUE1Qiw0QkFBNEIscVpDakJ6Qyw0UkFRQTs7NEZEU2EsNEJBQTRCO2tCQUp4QyxTQUFTOytCQUNFLDRCQUE0QjtxRkFJN0IsTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBS0YsSUFBSTtzQkFEUCxLQUFLO2dCQU9HLHFCQUFxQjtzQkFBN0IsS0FBSztnQkFHRixJQUFJO3NCQURQLEtBQUs7Z0JBV0YsVUFBVTtzQkFEYixLQUFLO2dCQVVGLFdBQVc7c0JBRGQsS0FBSztnQkFTRixNQUFNO3NCQURULEtBQUs7Z0JBU0ksWUFBWTtzQkFBckIsTUFBTTtnQkFDRyxrQkFBa0I7c0JBQTNCLE1BQU07Z0JBQ0cscUJBQXFCO3NCQUE5QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSdcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgY29tYmluZUxhdGVzdCwgbWFwLCBtZXJnZU1hcCwgb2YgfSBmcm9tICdyeGpzJ1xuaW1wb3J0IHsgQ29sdW1uVHlwZSB9IGZyb20gJy4uLy4uL21vZGVsL2NvbHVtbi10eXBlLm1vZGVsJ1xuaW1wb3J0IHsgRGlhZ3JhbUNvbHVtbiB9IGZyb20gJy4uLy4uL21vZGVsL2RpYWdyYW0tY29sdW1uJ1xuaW1wb3J0IHsgT2JqZWN0VXRpbHMgfSBmcm9tICcuLi8uLi91dGlscy9vYmplY3R1dGlscydcbmltcG9ydCB7IERpYWdyYW1EYXRhIH0gZnJvbSAnLi4vLi4vbW9kZWwvZGlhZ3JhbS1kYXRhJ1xuaW1wb3J0IHsgRGlhZ3JhbVR5cGUgfSBmcm9tICcuLi8uLi9tb2RlbC9kaWFncmFtLXR5cGUnXG5cbmV4cG9ydCBpbnRlcmZhY2UgR3JvdXBCeUNvdW50RGlhZ3JhbUNvbXBvbmVudFN0YXRlIHtcbiAgYWN0aXZlRGlhZ3JhbVR5cGU/OiBEaWFncmFtVHlwZVxufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdvY3gtZ3JvdXAtYnktY291bnQtZGlhZ3JhbScsXG4gIHRlbXBsYXRlVXJsOiAnLi9ncm91cC1ieS1jb3VudC1kaWFncmFtLmNvbXBvbmVudC5odG1sJyxcbn0pXG5leHBvcnQgY2xhc3MgR3JvdXBCeUNvdW50RGlhZ3JhbUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIHN1bUtleSA9ICdTRUFSQ0guU1VNTUFSWV9USVRMRSdcbiAgQElucHV0KCkgZGlhZ3JhbVR5cGUgPSBEaWFncmFtVHlwZS5QSUVcbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIFdpbGwgYmUgcmVwbGFjZWQgYnkgZGlhZ3JhbVR5cGVcbiAgICovXG4gIEBJbnB1dCgpXG4gIGdldCB0eXBlKCk6IERpYWdyYW1UeXBlIHtcbiAgICByZXR1cm4gdGhpcy5kaWFncmFtVHlwZVxuICB9XG4gIHNldCB0eXBlKHZhbHVlOiBEaWFncmFtVHlwZSkge1xuICAgIHRoaXMuZGlhZ3JhbVR5cGUgPSB2YWx1ZVxuICB9XG4gIEBJbnB1dCgpIHN1cHBvcnRlZERpYWdyYW1UeXBlczogRGlhZ3JhbVR5cGVbXSA9IFtdXG4gIHByaXZhdGUgX2RhdGEkID0gbmV3IEJlaGF2aW9yU3ViamVjdDx1bmtub3duW10+KFtdKVxuICBASW5wdXQoKVxuICBnZXQgZGF0YSgpOiB1bmtub3duW10ge1xuICAgIHJldHVybiB0aGlzLl9kYXRhJC5nZXRWYWx1ZSgpXG4gIH1cbiAgc2V0IGRhdGEodmFsdWU6IHVua25vd25bXSkge1xuICAgIHRoaXMuX2RhdGEkLm5leHQodmFsdWUpXG4gIH1cbiAgZGlhZ3JhbURhdGEkOiBPYnNlcnZhYmxlPERpYWdyYW1EYXRhW10+IHwgdW5kZWZpbmVkXG5cbiAgcHJpdmF0ZSBfY29sdW1uVHlwZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PENvbHVtblR5cGU+KENvbHVtblR5cGUuU1RSSU5HKVxuICBASW5wdXQoKVxuICBnZXQgY29sdW1uVHlwZSgpOiBDb2x1bW5UeXBlIHtcbiAgICByZXR1cm4gdGhpcy5fY29sdW1uVHlwZSQuZ2V0VmFsdWUoKVxuICB9XG4gIHNldCBjb2x1bW5UeXBlKHZhbHVlOiBDb2x1bW5UeXBlKSB7XG4gICAgdGhpcy5fY29sdW1uVHlwZSQubmV4dCh2YWx1ZSlcbiAgfVxuXG4gIHByaXZhdGUgX2NvbHVtbkZpZWxkJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPignJylcbiAgQElucHV0KClcbiAgZ2V0IGNvbHVtbkZpZWxkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX2NvbHVtbkZpZWxkJC5nZXRWYWx1ZSgpXG4gIH1cbiAgc2V0IGNvbHVtbkZpZWxkKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9jb2x1bW5GaWVsZCQubmV4dCh2YWx1ZSlcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIGdldCBjb2x1bW4oKTogRGlhZ3JhbUNvbHVtbiB7XG4gICAgcmV0dXJuIHsgY29sdW1uVHlwZTogdGhpcy5jb2x1bW5UeXBlLCBpZDogdGhpcy5jb2x1bW5GaWVsZCB9XG4gIH1cbiAgc2V0IGNvbHVtbih2YWx1ZTogRGlhZ3JhbUNvbHVtbikge1xuICAgIHRoaXMuY29sdW1uVHlwZSA9IHZhbHVlLmNvbHVtblR5cGVcbiAgICB0aGlzLmNvbHVtbkZpZWxkID0gdmFsdWUuaWRcbiAgfVxuXG4gIEBPdXRwdXQoKSBkYXRhU2VsZWN0ZWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpXG4gIEBPdXRwdXQoKSBkaWFncmFtVHlwZUNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxEaWFncmFtVHlwZT4gPSBuZXcgRXZlbnRFbWl0dGVyKClcbiAgQE91dHB1dCgpIGNvbXBvbmVudFN0YXRlQ2hhbmdlZDogRXZlbnRFbWl0dGVyPEdyb3VwQnlDb3VudERpYWdyYW1Db21wb25lbnRTdGF0ZT4gPSBuZXcgRXZlbnRFbWl0dGVyKClcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UpIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5kaWFncmFtRGF0YSQgPSBjb21iaW5lTGF0ZXN0KFt0aGlzLl9kYXRhJCwgdGhpcy5fY29sdW1uRmllbGQkLCB0aGlzLl9jb2x1bW5UeXBlJF0pLnBpcGUoXG4gICAgICBtZXJnZU1hcCgoW2RhdGEsIGNvbHVtbkZpZWxkLCBjb2x1bW5UeXBlXSkgPT4ge1xuICAgICAgICBjb25zdCBjb2x1bW5EYXRhID0gZGF0YS5tYXAoKGQpID0+IE9iamVjdFV0aWxzLnJlc29sdmVGaWVsZERhdGEoZCwgY29sdW1uRmllbGQpKVxuICAgICAgICBjb25zdCBvY2N1cnJlbmNlcyA9IGNvbHVtbkRhdGEucmVkdWNlKChhY2MsIGN1cnJlbnQpID0+IHtcbiAgICAgICAgICByZXR1cm4gYWNjLnNvbWUoKGU6IHsgbGFiZWw6IGFueSB9KSA9PiBlLmxhYmVsID09PSBjdXJyZW50KVxuICAgICAgICAgICAgPyAoYWNjLmZpbmQoKGU6IHsgbGFiZWw6IGFueSB9KSA9PiBlLmxhYmVsID09PSBjdXJyZW50KS52YWx1ZSsrLCBhY2MpXG4gICAgICAgICAgICA6IFsuLi5hY2MsIHsgbGFiZWw6IGN1cnJlbnQsIHZhbHVlOiAxIH1dXG4gICAgICAgIH0sIFtdKVxuICAgICAgICBpZiAoY29sdW1uVHlwZSA9PT0gQ29sdW1uVHlwZS5UUkFOU0xBVElPTl9LRVkgJiYgb2NjdXJyZW5jZXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuZ2V0KG9jY3VycmVuY2VzLm1hcCgobzogeyBsYWJlbDogYW55IH0pID0+IG8ubGFiZWwpKS5waXBlKFxuICAgICAgICAgICAgbWFwKCh0cmFuc2xhdGlvbnM6IHsgW3g6IHN0cmluZ106IGFueSB9KSA9PlxuICAgICAgICAgICAgICBvY2N1cnJlbmNlcy5tYXAoKG86IHsgbGFiZWw6IHN0cmluZzsgdmFsdWU6IGFueSB9KSA9PiAoe1xuICAgICAgICAgICAgICAgIGxhYmVsOiB0cmFuc2xhdGlvbnNbby5sYWJlbF0sXG4gICAgICAgICAgICAgICAgdmFsdWU6IG8udmFsdWUsXG4gICAgICAgICAgICAgIH0pKVxuICAgICAgICAgICAgKVxuICAgICAgICAgIClcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gb2Yob2NjdXJyZW5jZXMpXG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgKVxuICB9XG5cbiAgZGF0YUNsaWNrZWQoZXZlbnQ6IGFueSkge1xuICAgIHRoaXMuZGF0YVNlbGVjdGVkLmVtaXQoZXZlbnQpXG4gIH1cblxuICBvbkRpYWdyYW1UeXBlQ2hhbmdlZChuZXdEaWFncmFtVHlwZTogRGlhZ3JhbVR5cGUpIHtcbiAgICB0aGlzLmRpYWdyYW1UeXBlID0gbmV3RGlhZ3JhbVR5cGVcbiAgICB0aGlzLmRpYWdyYW1UeXBlQ2hhbmdlZC5lbWl0KG5ld0RpYWdyYW1UeXBlKVxuICAgIHRoaXMuY29tcG9uZW50U3RhdGVDaGFuZ2VkLmVtaXQoe1xuICAgICAgYWN0aXZlRGlhZ3JhbVR5cGU6IG5ld0RpYWdyYW1UeXBlXG4gICAgfSlcbiAgfVxufVxuIiwiPG9jeC1kaWFncmFtXG4gIFtkYXRhXT1cIihkaWFncmFtRGF0YSQgfCBhc3luYykgfHwgW11cIlxuICBbc3VtS2V5XT1cInN1bUtleVwiXG4gIFtkaWFncmFtVHlwZV09XCJkaWFncmFtVHlwZVwiXG4gIChvbkRhdGFTZWxlY3QpPVwiZGF0YUNsaWNrZWQoJGV2ZW50KVwiXG4gIFtzdXBwb3J0ZWREaWFncmFtVHlwZXNdPVwic3VwcG9ydGVkRGlhZ3JhbVR5cGVzXCJcbiAgKGRpYWdyYW1UeXBlQ2hhbmdlZCk9XCJvbkRpYWdyYW1UeXBlQ2hhbmdlZCgkZXZlbnQpXCJcbj48L29jeC1kaWFncmFtPlxuIl19
|