imm-element-ui 2.7.8 → 2.8.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/form/form/form.component.mjs +5 -3
- package/esm2022/lib/grid/cell-edit/cell-edit-textarea.component.mjs +12 -2
- package/esm2022/lib/grid/grid/grid.component.mjs +130 -4
- package/esm2022/lib/page-form/page-form.component.mjs +21 -4
- package/esm2022/lib/page-grid-list/page-grid-list.component.mjs +2 -2
- package/esm2022/lib/row-selector/row-selector.component.mjs +2 -2
- package/esm2022/lib/share/utils.mjs +4 -2
- package/fesm2022/imm-element-ui.mjs +167 -11
- package/fesm2022/imm-element-ui.mjs.map +1 -1
- package/lib/crumb-action/crumb-action.component.d.ts +1 -1
- package/lib/form/form/form.component.d.ts +2 -1
- package/lib/grid/cell-edit/cell-edit-textarea.component.d.ts +1 -0
- package/lib/grid/grid/grid.component.d.ts +16 -1
- package/lib/page-form/page-form.component.d.ts +3 -0
- package/package.json +1 -1
|
@@ -42,7 +42,7 @@ export class PageGridListComponent extends AmComponent {
|
|
|
42
42
|
return searchPrm;
|
|
43
43
|
}
|
|
44
44
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PageGridListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
45
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.13", type: PageGridListComponent, isStandalone: true, selector: "app-page-grid-list", inputs: { params: { classPropertyName: "params", publicName: "params", isSignal: true, isRequired: false, transformFunction: null }, actions: { classPropertyName: "actions", publicName: "actions", isSignal: true, isRequired: false, transformFunction: null }, menus: { classPropertyName: "menus", publicName: "menus", isSignal: true, isRequired: false, transformFunction: null }, gridOptions: { classPropertyName: "gridOptions", publicName: "gridOptions", isSignal: true, isRequired: false, transformFunction: null }, authLevel: { classPropertyName: "authLevel", publicName: "authLevel", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "customGrid", first: true, predicate: ["customGrid"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"flex flex-col h-full\">\n\t<div class=\"flex flex-wrap items-center py-1 px-1 bg-white\">\n\t\t<div class=\"lg:basis-1/6 md:basis-1/4 basis-1/2 flex justify-start order-1\">\n\t\t\t<app-crumb-action\n\t\t\t\t[addVisible]=\"params().addVisible\"\n\t\t\t\t[exportVisible]=\"params().exportVisible ?? true\"\n\t\t\t\t[importVisible]=\"params().importVisible ?? true\"\n\t\t\t\t[newUrl]=\"params().newUrl\"\n\t\t\t\t[onExport]=\"params().onExport\"\n\t\t\t\t[isList]=\"true\"\n\t\t\t\t[isShowCog]=\"true\"\n\t\t\t\t[menus]=\"menus()\"\n\t\t\t\t[authLevel]=\"authLevel()\">\n\t\t\t</app-crumb-action>\n\t\t</div>\n\t\t<div class=\"lg:basis-4/6 md:basis-1/2 basis-full flex justify-center items-center md:order-2 order-last\">\n\t\t\t<custom-head\n\t\t\t\tclass=\"max-lg:min-w-full\"\n\t\t\t\t[actions]=\"actions()\"\n\t\t\t\t[grid]=\"customGrid\"\n\t\t\t\t[authLevel]=\"authLevel()\"\n\t\t\t\t[gridOptions]=\"gridOptions()\"></custom-head>\n\t\t</div>\n\t\t<div class=\"lg:basis-1/6 md:basis-1/4 basis-1/2 flex justify-end order-3\">\n\t\t\t<custom-pager></custom-pager>\n\t\t</div>\n\t</div>\n\t<div class=\"flex-1\">\n\t\t<custom-grid\n\t\t\t#customGrid\n\t\t\t[upsert]=\"upsertPrm\"\n\t\t\t[searchPrm]=\"searchPrm\"\n\t\t\t[showAct]=\"false\"\n\t\t\t[gridOptions]=\"gridOptions()!\">\n\t\t</custom-grid>\n\t</div>\n</div>\n<app-import\n\t[fileName]=\"params()?.importFileName\"\n\t[funcName]=\"params()?.importFuncName\"\n\t[orgVisible]=\"params()?.importOrgVisible\"\n\t[orgField]=\"params()?.importOrgField\"\n\t[grid]=\"customGrid\"\n\t[modelName]=\"gridOptions()!.modelName ?? ''\"\n\t[importOrgValueField]=\"params()?.importOrgValueField ?? 'deptId'\">\n</app-import>\n", styles: [".ms-grid{background-color:#efefef}.ms-content{border-top:solid 1px #dbdbdb;background-color:#f9fafb}.mode-hide{display:none}\n"], dependencies: [{ kind: "component", type: GridComponent, selector: "custom-grid", inputs: ["gridOptions", "selectionKeys", "upsert", "rowData", "searchPrm", "addType", "selectData", "showAct", "actPos", "authLevel", "showDelete", "deleteHidden", "addHidden", "gridDisable", "addSort", "subSaveVisible", "subSaveHidden", "subSaveLabel", "subSaveDisabled"], outputs: ["deleteEmit", "addEmit", "subSaveEmit"] }, { kind: "component", type: CrumbActionComponent, selector: "app-crumb-action", inputs: ["isShowCog", "addVisible", "importVisible", "exportVisible", "newUrl", "configNewPath", "onExport", "outlined", "isList", "authLevel", "actionList", "data", "menus", "saveBtnDisable", "showSaveButton"], outputs: ["saveEvent", "cancelEvent", "actionEvent"] }, { kind: "component", type: PagerComponent, selector: "custom-pager" }, { kind: "component", type: HeadComponent, selector: "custom-head", inputs: ["gridOptions", "grid", "actions", "authLevel"] }, { kind: "component", type: ImportComponent, selector: "app-import", inputs: ["visible", "fileName", "funcName", "orgVisible", "orgField", "modelName", "grid", "importOrgValueField"], outputs: ["visibleChange"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
45
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.13", type: PageGridListComponent, isStandalone: true, selector: "app-page-grid-list", inputs: { params: { classPropertyName: "params", publicName: "params", isSignal: true, isRequired: false, transformFunction: null }, actions: { classPropertyName: "actions", publicName: "actions", isSignal: true, isRequired: false, transformFunction: null }, menus: { classPropertyName: "menus", publicName: "menus", isSignal: true, isRequired: false, transformFunction: null }, gridOptions: { classPropertyName: "gridOptions", publicName: "gridOptions", isSignal: true, isRequired: false, transformFunction: null }, authLevel: { classPropertyName: "authLevel", publicName: "authLevel", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "customGrid", first: true, predicate: ["customGrid"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"flex flex-col h-full\">\n\t<div class=\"flex flex-wrap items-center py-1 px-1 bg-white\">\n\t\t<div class=\"lg:basis-1/6 md:basis-1/4 basis-1/2 flex justify-start order-1\">\n\t\t\t<app-crumb-action\n\t\t\t\t[addVisible]=\"params().addVisible\"\n\t\t\t\t[exportVisible]=\"params().exportVisible ?? true\"\n\t\t\t\t[importVisible]=\"params().importVisible ?? true\"\n\t\t\t\t[newUrl]=\"params().newUrl\"\n\t\t\t\t[onExport]=\"params().onExport\"\n\t\t\t\t[isList]=\"true\"\n\t\t\t\t[isShowCog]=\"true\"\n\t\t\t\t[menus]=\"menus()\"\n\t\t\t\t[authLevel]=\"authLevel()\">\n\t\t\t</app-crumb-action>\n\t\t</div>\n\t\t<div class=\"lg:basis-4/6 md:basis-1/2 basis-full flex justify-center items-center md:order-2 order-last\">\n\t\t\t<custom-head\n\t\t\t\tclass=\"max-lg:min-w-full\"\n\t\t\t\t[actions]=\"actions()\"\n\t\t\t\t[grid]=\"customGrid\"\n\t\t\t\t[authLevel]=\"authLevel()\"\n\t\t\t\t[gridOptions]=\"gridOptions()\"></custom-head>\n\t\t</div>\n\t\t<div class=\"lg:basis-1/6 md:basis-1/4 basis-1/2 flex justify-end order-3\">\n\t\t\t<custom-pager></custom-pager>\n\t\t</div>\n\t</div>\n\t<div class=\"flex-1\">\n\t\t<custom-grid\n\t\t\t#customGrid\n\t\t\t[upsert]=\"upsertPrm\"\n\t\t\t[searchPrm]=\"searchPrm\"\n\t\t\t[showAct]=\"false\"\n\t\t\t[gridOptions]=\"gridOptions()!\">\n\t\t</custom-grid>\n\t</div>\n</div>\n<app-import\n\t[fileName]=\"params()?.importFileName\"\n\t[funcName]=\"params()?.importFuncName\"\n\t[orgVisible]=\"params()?.importOrgVisible\"\n\t[orgField]=\"params()?.importOrgField\"\n\t[grid]=\"customGrid\"\n\t[modelName]=\"gridOptions()!.modelName ?? ''\"\n\t[importOrgValueField]=\"params()?.importOrgValueField ?? 'deptId'\">\n</app-import>\n", styles: [".ms-grid{background-color:#efefef}.ms-content{border-top:solid 1px #dbdbdb;background-color:#f9fafb}.mode-hide{display:none}\n"], dependencies: [{ kind: "component", type: GridComponent, selector: "custom-grid", inputs: ["gridOptions", "selectionKeys", "upsert", "rowData", "hideExpressionData", "hideExpressionVersion", "searchPrm", "addType", "selectData", "showAct", "actPos", "authLevel", "showDelete", "deleteHidden", "addHidden", "gridDisable", "addSort", "subSaveVisible", "subSaveHidden", "subSaveLabel", "subSaveDisabled"], outputs: ["deleteEmit", "addEmit", "gridDataChanged", "subSaveEmit"] }, { kind: "component", type: CrumbActionComponent, selector: "app-crumb-action", inputs: ["isShowCog", "addVisible", "importVisible", "exportVisible", "newUrl", "configNewPath", "onExport", "outlined", "isList", "authLevel", "actionList", "data", "menus", "saveBtnDisable", "showSaveButton"], outputs: ["saveEvent", "cancelEvent", "actionEvent"] }, { kind: "component", type: PagerComponent, selector: "custom-pager" }, { kind: "component", type: HeadComponent, selector: "custom-head", inputs: ["gridOptions", "grid", "actions", "authLevel"] }, { kind: "component", type: ImportComponent, selector: "app-import", inputs: ["visible", "fileName", "funcName", "orgVisible", "orgField", "modelName", "grid", "importOrgValueField"], outputs: ["visibleChange"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
46
46
|
}
|
|
47
47
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PageGridListComponent, decorators: [{
|
|
48
48
|
type: Component,
|
|
@@ -51,4 +51,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
51
51
|
type: ViewChild,
|
|
52
52
|
args: ['customGrid']
|
|
53
53
|
}] } });
|
|
54
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
54
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS1ncmlkLWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaW1tLWVsZW1lbnQtdWkvc3JjL2xpYi9wYWdlLWdyaWQtbGlzdC9wYWdlLWdyaWQtbGlzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pbW0tZWxlbWVudC11aS9zcmMvbGliL3BhZ2UtZ3JpZC1saXN0L3BhZ2UtZ3JpZC1saXN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFFLE1BQU0sRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0YsT0FBTyxFQUFpQixlQUFlLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM1RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGFBQWEsRUFBZSxNQUFNLDZCQUE2QixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxXQUFXLEVBQVUsTUFBTSxvQkFBb0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDL0QsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7O0FBVTlFLE1BQU0sT0FBTyxxQkFBc0IsU0FBUSxXQUFXO0lBT3JEO1FBQ0MsS0FBSyxFQUFFLENBQUM7UUFOVCxXQUFNLEdBQUcsS0FBSyxFQUFPLENBQUM7UUFDdEIsWUFBTyxHQUFHLEtBQUssQ0FBUSxFQUFFLENBQUMsQ0FBQztRQUMzQixVQUFLLEdBQUcsS0FBSyxDQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQ3pCLGdCQUFXLEdBQUcsS0FBSyxFQUFlLENBQUM7UUFDbkMsY0FBUyxHQUFHLEtBQUssQ0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRzdCLElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO1FBRXBCLE1BQU0sQ0FBQyxHQUFHLEVBQUU7WUFDWCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUcsQ0FBQyxTQUFVLENBQUM7WUFDaEQsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUcsQ0FBQyxjQUFjLEVBQUUsQ0FBQztnQkFDekMsSUFBSSxDQUFDLFdBQVcsRUFBRyxDQUFDLGNBQWMsR0FBRyxFQUFFLENBQUM7WUFDekMsQ0FBQztZQUNELElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3RDLENBQUMsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUVELFlBQVk7UUFDWCxNQUFNLFNBQVMsR0FBVztZQUN6QixTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVM7WUFDekIsUUFBUSxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRO1lBQ2hDLE1BQU0sRUFBRSxDQUFDO1lBQ1QsS0FBSyxFQUFFLElBQUksQ0FBQyxXQUFXLEVBQUcsQ0FBQyxjQUFjO1lBQ3pDLEtBQUssRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLENBQUM7WUFDN0MsS0FBSyxFQUFFLElBQUk7U0FDWCxDQUFDO1FBQ0YsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLEVBQUUsU0FBUyxFQUFFLGFBQWEsRUFBRSxDQUFDO1lBQzdDLFNBQVMsQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUM7UUFDakUsQ0FBQztRQUNELElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsQ0FBQztZQUNyQyxTQUFTLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDO1FBQ2pELENBQUM7UUFDRCxPQUFPLFNBQVMsQ0FBQztJQUNsQixDQUFDOytHQXJDVyxxQkFBcUI7bUdBQXJCLHFCQUFxQiwwMUJDaEJsQyx1cERBOENBLHdMRG5DVyxhQUFhLCtiQUFFLG9CQUFvQix1VUFBRSxjQUFjLHlEQUFFLGFBQWEsaUhBQUUsZUFBZTs7NEZBS2pGLHFCQUFxQjtrQkFSakMsU0FBUzsrQkFDQyxvQkFBb0IsY0FDbEIsSUFBSSxXQUNQLENBQUMsYUFBYSxFQUFFLG9CQUFvQixFQUFFLGNBQWMsRUFBRSxhQUFhLEVBQUUsZUFBZSxDQUFDLGlCQUcvRSxpQkFBaUIsQ0FBQyxJQUFJO3dEQUdaLFVBQVU7c0JBQWxDLFNBQVM7dUJBQUMsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBpbnB1dCwgZWZmZWN0LCBWaWV3RW5jYXBzdWxhdGlvbiwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJbXBvcnRPcHRpb25zLCBJbXBvcnRDb21wb25lbnQgfSBmcm9tICcuLi9pbXBvcnQvaW1wb3J0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBIZWFkQ29tcG9uZW50IH0gZnJvbSAnLi4vaGVhZC9oZWFkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBHcmlkQ29tcG9uZW50LCBHcmlkT3B0aW9ucyB9IGZyb20gJy4uL2dyaWQvZ3JpZC9ncmlkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBbUNvbXBvbmVudCwgU2VhcmNoIH0gZnJvbSAnLi4vYW0vYW0uY29tcG9uZW50JztcbmltcG9ydCB7IFBhZ2VyQ29tcG9uZW50IH0gZnJvbSAnLi4vZ3JpZC9wYWdlci9wYWdlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ3J1bWJBY3Rpb25Db21wb25lbnQgfSBmcm9tICcuLi9jcnVtYi1hY3Rpb24vY3J1bWItYWN0aW9uLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ2FwcC1wYWdlLWdyaWQtbGlzdCcsXG5cdHN0YW5kYWxvbmU6IHRydWUsXG5cdGltcG9ydHM6IFtHcmlkQ29tcG9uZW50LCBDcnVtYkFjdGlvbkNvbXBvbmVudCwgUGFnZXJDb21wb25lbnQsIEhlYWRDb21wb25lbnQsIEltcG9ydENvbXBvbmVudF0sXG5cdHRlbXBsYXRlVXJsOiAnLi9wYWdlLWdyaWQtbGlzdC5jb21wb25lbnQuaHRtbCcsXG5cdHN0eWxlVXJsOiAnLi9wYWdlLWdyaWQtbGlzdC5jb21wb25lbnQuc2NzcycsXG5cdGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG59KVxuZXhwb3J0IGNsYXNzIFBhZ2VHcmlkTGlzdENvbXBvbmVudCBleHRlbmRzIEFtQ29tcG9uZW50IHtcblx0QFZpZXdDaGlsZCgnY3VzdG9tR3JpZCcpIGN1c3RvbUdyaWQhOiBHcmlkQ29tcG9uZW50O1xuXHRwYXJhbXMgPSBpbnB1dDxhbnk+KCk7XG5cdGFjdGlvbnMgPSBpbnB1dDxhbnlbXT4oW10pO1xuXHRtZW51cyA9IGlucHV0PGFueVtdPihbXSk7XG5cdGdyaWRPcHRpb25zID0gaW5wdXQ8R3JpZE9wdGlvbnM+KCk7XG5cdGF1dGhMZXZlbCA9IGlucHV0PG51bWJlcj4oLTEpO1xuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHRzdXBlcigpO1xuXHRcdHRoaXMuZXhwb3J0UHJtID0ge307XG5cdFx0dGhpcy5pbXBvcnRQcm0gPSB7fTtcblxuXHRcdGVmZmVjdCgoKSA9PiB7XG5cdFx0XHR0aGlzLm1vZGVsTmFtZSA9IHRoaXMuZ3JpZE9wdGlvbnMoKSEubW9kZWxOYW1lITtcblx0XHRcdGlmICghdGhpcy5ncmlkT3B0aW9ucygpIS5jYWNoZUJsb2NrU2l6ZSkge1xuXHRcdFx0XHR0aGlzLmdyaWRPcHRpb25zKCkhLmNhY2hlQmxvY2tTaXplID0gNTA7XG5cdFx0XHR9XG5cdFx0XHR0aGlzLnNlYXJjaFBybSA9IHRoaXMuZ2VuU2VhcmNoUHJtKCk7XG5cdFx0fSk7XG5cdH1cblxuXHRnZW5TZWFyY2hQcm0oKSB7XG5cdFx0Y29uc3Qgc2VhcmNoUHJtOiBTZWFyY2ggPSB7XG5cdFx0XHRtb2RlbE5hbWU6IHRoaXMubW9kZWxOYW1lLFxuXHRcdFx0b3JnRmllbGQ6IHRoaXMucGFyYW1zKCkub3JnRmllbGQsXG5cdFx0XHRvZmZzZXQ6IDAsXG5cdFx0XHRsaW1pdDogdGhpcy5ncmlkT3B0aW9ucygpIS5jYWNoZUJsb2NrU2l6ZSxcblx0XHRcdHNvcnRzOiBbeyBmaWVsZDogJ2NyZWF0ZWRBdCcsIGlzQXNjOiBmYWxzZSB9XSxcblx0XHRcdGNvdW50OiB0cnVlLFxuXHRcdH07XG5cdFx0aWYgKHRoaXMucGFyYW1zKCk/LnNlYXJjaFBybT8uY29sdW1uRmlsdGVycykge1xuXHRcdFx0c2VhcmNoUHJtLmNvbHVtbkZpbHRlcnMgPSB0aGlzLnBhcmFtcygpLnNlYXJjaFBybS5jb2x1bW5GaWx0ZXJzO1xuXHRcdH1cblx0XHRpZiAodGhpcy5wYXJhbXMoKT8uc2VhcmNoUHJtPy5zb3J0cykge1xuXHRcdFx0c2VhcmNoUHJtLnNvcnRzID0gdGhpcy5wYXJhbXMoKS5zZWFyY2hQcm0uc29ydHM7XG5cdFx0fVxuXHRcdHJldHVybiBzZWFyY2hQcm07XG5cdH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGgtZnVsbFwiPlxuXHQ8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXdyYXAgaXRlbXMtY2VudGVyIHB5LTEgcHgtMSBiZy13aGl0ZVwiPlxuXHRcdDxkaXYgY2xhc3M9XCJsZzpiYXNpcy0xLzYgbWQ6YmFzaXMtMS80IGJhc2lzLTEvMiBmbGV4IGp1c3RpZnktc3RhcnQgb3JkZXItMVwiPlxuXHRcdFx0PGFwcC1jcnVtYi1hY3Rpb25cblx0XHRcdFx0W2FkZFZpc2libGVdPVwicGFyYW1zKCkuYWRkVmlzaWJsZVwiXG5cdFx0XHRcdFtleHBvcnRWaXNpYmxlXT1cInBhcmFtcygpLmV4cG9ydFZpc2libGUgPz8gdHJ1ZVwiXG5cdFx0XHRcdFtpbXBvcnRWaXNpYmxlXT1cInBhcmFtcygpLmltcG9ydFZpc2libGUgPz8gdHJ1ZVwiXG5cdFx0XHRcdFtuZXdVcmxdPVwicGFyYW1zKCkubmV3VXJsXCJcblx0XHRcdFx0W29uRXhwb3J0XT1cInBhcmFtcygpLm9uRXhwb3J0XCJcblx0XHRcdFx0W2lzTGlzdF09XCJ0cnVlXCJcblx0XHRcdFx0W2lzU2hvd0NvZ109XCJ0cnVlXCJcblx0XHRcdFx0W21lbnVzXT1cIm1lbnVzKClcIlxuXHRcdFx0XHRbYXV0aExldmVsXT1cImF1dGhMZXZlbCgpXCI+XG5cdFx0XHQ8L2FwcC1jcnVtYi1hY3Rpb24+XG5cdFx0PC9kaXY+XG5cdFx0PGRpdiBjbGFzcz1cImxnOmJhc2lzLTQvNiBtZDpiYXNpcy0xLzIgYmFzaXMtZnVsbCBmbGV4IGp1c3RpZnktY2VudGVyIGl0ZW1zLWNlbnRlciBtZDpvcmRlci0yIG9yZGVyLWxhc3RcIj5cblx0XHRcdDxjdXN0b20taGVhZFxuXHRcdFx0XHRjbGFzcz1cIm1heC1sZzptaW4tdy1mdWxsXCJcblx0XHRcdFx0W2FjdGlvbnNdPVwiYWN0aW9ucygpXCJcblx0XHRcdFx0W2dyaWRdPVwiY3VzdG9tR3JpZFwiXG5cdFx0XHRcdFthdXRoTGV2ZWxdPVwiYXV0aExldmVsKClcIlxuXHRcdFx0XHRbZ3JpZE9wdGlvbnNdPVwiZ3JpZE9wdGlvbnMoKVwiPjwvY3VzdG9tLWhlYWQ+XG5cdFx0PC9kaXY+XG5cdFx0PGRpdiBjbGFzcz1cImxnOmJhc2lzLTEvNiBtZDpiYXNpcy0xLzQgYmFzaXMtMS8yIGZsZXgganVzdGlmeS1lbmQgb3JkZXItM1wiPlxuXHRcdFx0PGN1c3RvbS1wYWdlcj48L2N1c3RvbS1wYWdlcj5cblx0XHQ8L2Rpdj5cblx0PC9kaXY+XG5cdDxkaXYgY2xhc3M9XCJmbGV4LTFcIj5cblx0XHQ8Y3VzdG9tLWdyaWRcblx0XHRcdCNjdXN0b21HcmlkXG5cdFx0XHRbdXBzZXJ0XT1cInVwc2VydFBybVwiXG5cdFx0XHRbc2VhcmNoUHJtXT1cInNlYXJjaFBybVwiXG5cdFx0XHRbc2hvd0FjdF09XCJmYWxzZVwiXG5cdFx0XHRbZ3JpZE9wdGlvbnNdPVwiZ3JpZE9wdGlvbnMoKSFcIj5cblx0XHQ8L2N1c3RvbS1ncmlkPlxuXHQ8L2Rpdj5cbjwvZGl2PlxuPGFwcC1pbXBvcnRcblx0W2ZpbGVOYW1lXT1cInBhcmFtcygpPy5pbXBvcnRGaWxlTmFtZVwiXG5cdFtmdW5jTmFtZV09XCJwYXJhbXMoKT8uaW1wb3J0RnVuY05hbWVcIlxuXHRbb3JnVmlzaWJsZV09XCJwYXJhbXMoKT8uaW1wb3J0T3JnVmlzaWJsZVwiXG5cdFtvcmdGaWVsZF09XCJwYXJhbXMoKT8uaW1wb3J0T3JnRmllbGRcIlxuXHRbZ3JpZF09XCJjdXN0b21HcmlkXCJcblx0W21vZGVsTmFtZV09XCJncmlkT3B0aW9ucygpIS5tb2RlbE5hbWUgPz8gJydcIlxuXHRbaW1wb3J0T3JnVmFsdWVGaWVsZF09XCJwYXJhbXMoKT8uaW1wb3J0T3JnVmFsdWVGaWVsZCA/PyAnZGVwdElkJ1wiPlxuPC9hcHAtaW1wb3J0PlxuIl19
|
|
@@ -86,7 +86,7 @@ export class RowSelectorComponent {
|
|
|
86
86
|
}
|
|
87
87
|
}
|
|
88
88
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RowSelectorComponent, deps: [{ token: i1.ActionService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
89
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: RowSelectorComponent, isStandalone: true, selector: "row-selector", inputs: { title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, selectionKeys: { classPropertyName: "selectionKeys", publicName: "selectionKeys", isSignal: true, isRequired: false, transformFunction: null }, gridOptions: { classPropertyName: "gridOptions", publicName: "gridOptions", isSignal: true, isRequired: false, transformFunction: null }, searchPrm: { classPropertyName: "searchPrm", publicName: "searchPrm", isSignal: true, isRequired: false, transformFunction: null }, visible: { classPropertyName: "visible", publicName: "visible", isSignal: true, isRequired: false, transformFunction: null }, showSearch: { classPropertyName: "showSearch", publicName: "showSearch", isSignal: true, isRequired: false, transformFunction: null }, selectModelCode: { classPropertyName: "selectModelCode", publicName: "selectModelCode", isSignal: true, isRequired: false, transformFunction: null }, customListFormByDialog: { classPropertyName: "customListFormByDialog", publicName: "customListFormByDialog", isSignal: true, isRequired: false, transformFunction: null }, customListFormByDialogContext: { classPropertyName: "customListFormByDialogContext", publicName: "customListFormByDialogContext", isSignal: true, isRequired: false, transformFunction: null }, customListDialogMap: { classPropertyName: "customListDialogMap", publicName: "customListDialogMap", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onOk: "onOk", visible: "visibleChange", cancelSelect: "cancelSelect" }, viewQueries: [{ propertyName: "grid", first: true, predicate: GridComponent, descendants: true }], ngImport: i0, template: "<p-dialog\n\t[header]=\"title()\"\n\t[modal]=\"true\"\n\t[style]=\"{ width: '50vw' }\"\n\t[maximizable]=\"true\"\n\t[appendTo]=\"'body'\"\n\t[focusOnShow]=\"false\"\n\t(onShow)=\"onShow()\"\n\t(onHide)=\"onHide()\"\n\t(onMaximize)=\"onMaximize($event)\"\n\t[(visible)]=\"visible\">\n\t@if (innerVisible) {\n\t\t<div class=\"flex flex-col gap-2\">\n @if (customListFormByDialog()) {\n <ng-container *ngTemplateOutlet=\"customListFormByDialog(); context: customListFormByDialogContext() || {}\"></ng-container>\n }\n\t\t\t@if (showSearch()) {\n\t\t\t\t<custom-search [gridOptions]=\"gridOptions()\"></custom-search>\n\t\t\t}\n\t\t\t<custom-grid\n\t\t\t\t[showAct]=\"false\"\n\t\t\t\t[searchPrm]=\"searchPrm()\"\n\t\t\t\t[selectionKeys]=\"selectionKeys()\"\n\t\t\t\t[gridOptions]=\"gridOptions()\"></custom-grid>\n\t\t\t<div class=\"flex justify-end gap-2\">\n\t\t\t\t<p-button\n\t\t\t\t\tlabel=\"\u53D6\u6D88\"\n\t\t\t\t\t[text]=\"true\"\n\t\t\t\t\tseverity=\"secondary\"\n\t\t\t\t\t(click)=\"cancel()\" />\n\t\t\t\t<p-button\n\t\t\t\t\tlabel=\"\u786E\u5B9A\"\n\t\t\t\t\t[outlined]=\"true\"\n\t\t\t\t\t(click)=\"ok()\" />\n\t\t\t</div>\n\t\t</div>\n\t}\n</p-dialog>\n", styles: [":host ::ng-deep .p-disabled,:host ::ng-deep .p-component:disabled{opacity:1}:host ::ng-deep .p-inputtext{border-width:0;border-radius:0;box-shadow:none;background:#fff;padding:0}:host ::ng-deep .p-inputtext:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-inputtext:not(:disabled):hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-inputtext:not(:disabled).ng-hovered{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-inputtext:focus{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .ng-hovered .p-autocomplete-input:not(.p-disabled){border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select-label{padding:0}:host ::ng-deep .p-select{border-width:0;border-radius:0;box-shadow:none;background:#fff}:host ::ng-deep .p-select .p-select-dropdown{display:none}:host ::ng-deep .p-select .p-select-clear-icon{display:none}:host ::ng-deep .p-select:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-select-open{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select-open .p-select-dropdown{display:flex}:host ::ng-deep .p-select-open .p-select-clear-icon{display:flex}:host ::ng-deep .p-select:hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select:hover .p-select-dropdown{display:flex}:host ::ng-deep .p-select:hover .p-select-clear-icon{display:flex}:host ::ng-deep .p-select.ng-hovered{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select.ng-hovered .p-select-dropdown{display:flex}:host ::ng-deep .p-select.ng-hovered .p-select-clear-icon{display:flex}:host ::ng-deep .p-multiselect-label{padding:0}:host ::ng-deep .p-multiselect{border-width:0;border-radius:0;background:#fff;box-shadow:none}:host ::ng-deep .p-multiselect .p-multiselect-dropdown{display:none}:host ::ng-deep .p-multiselect:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-multiselect-open{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect-open .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-multiselect:not(.p-disabled).p-focus{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect:not(.p-disabled).p-focus .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-multiselect:not(.p-disabled):hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect:not(.p-disabled):hover .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-multiselect:not(.p-disabled).ng-hovered{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect:not(.p-disabled).ng-hovered .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-textarea{border-radius:0;box-shadow:none;padding:0 .25rem;background:#fff;resize:none}:host ::ng-deep .p-textarea:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border:1px solid var(--p-red-500)!important}:host ::ng-deep .p-textarea:not(:disabled):hover{border:1px solid var(--p-primary-color);resize:vertical}:host ::ng-deep .p-textarea:not(:disabled).ng-hovered{border:1px solid var(--p-primary-color);resize:vertical}:host ::ng-deep .p-textarea:focus{border:1px solid var(--p-primary-color);resize:vertical}:host ::ng-deep .p-treeselect-label{padding:0}:host ::ng-deep .p-treeselect{border-width:0;border-radius:0;box-shadow:none;background:#fff}:host ::ng-deep .p-treeselect .p-treeselect-dropdown{display:none}:host ::ng-deep .ng-invalid.ng-dirty>.p-treeselect{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-treeselect-open{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-treeselect-open .p-treeselect-dropdown{display:flex}:host ::ng-deep .p-treeselect:not(.p-disabled).p-focus{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-treeselect:not(.p-disabled).p-focus .p-treeselect-dropdown{display:flex}:host ::ng-deep .p-treeselect:not(.p-disabled):hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-treeselect:not(.p-disabled):hover .p-treeselect-dropdown{display:flex}:host ::ng-deep .ng-hovered>.p-treeselect:not(.p-disabled){border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .ng-hovered>.p-treeselect:not(.p-disabled) .p-treeselect-dropdown{display:flex}:host ::ng-deep .p-menubar{border-width:0;padding:0}:host ::ng-deep .p-menubar-submenu{z-index:3}:host ::ng-deep .p-fileupload-advanced{border-width:0;border-radius:0;background-color:#fff}:host ::ng-deep .p-fileupload-header{padding:0}:host ::ng-deep .p-fileupload-content{padding:0;display:block;border-width:0}:host ::ng-deep .p-inputnumber:not(.ng-valid).ng-dirty>.p-inputtext{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-inputnumber.ng-hovered:not(.p-disabled)>.p-inputtext{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .ng-invalid.ng-dirty>.p-datepicker .p-inputtext{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .ng-hovered>.p-datepicker:not(.p-disabled) .p-inputtext{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .cm-editor{border:1px solid #cbd5e1}:host ::ng-deep .cm-editor.cm-focused{outline:none!important;border:1px solid var(--p-primary-color)}:host ::ng-deep .cm-editor:hover{border:1px solid var(--p-primary-color)}:host ::ng-deep .cm-editor.ng-hovered{border:1px solid var(--p-primary-color)}:host ::ng-deep .cm-gutters{background-color:#fff;border:\"none\"}:host ::ng-deep .cm-activeLineGutter{background-color:#fff}\n"], dependencies: [{ kind: "ngmodule", type: ButtonModule }, { kind: "component", type: i2.Button, selector: "p-button", inputs: ["type", "iconPos", "icon", "badge", "label", "disabled", "loading", "loadingIcon", "raised", "rounded", "text", "plain", "severity", "outlined", "link", "tabindex", "size", "variant", "style", "styleClass", "badgeClass", "badgeSeverity", "ariaLabel", "autofocus", "fluid", "buttonProps"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "ngmodule", type: DialogModule }, { kind: "component", type: i3.Dialog, selector: "p-dialog", inputs: ["header", "draggable", "resizable", "positionLeft", "positionTop", "contentStyle", "contentStyleClass", "modal", "closeOnEscape", "dismissableMask", "rtl", "closable", "responsive", "appendTo", "breakpoints", "styleClass", "maskStyleClass", "maskStyle", "showHeader", "breakpoint", "blockScroll", "autoZIndex", "baseZIndex", "minX", "minY", "focusOnShow", "maximizable", "keepInViewport", "focusTrap", "transitionOptions", "closeIcon", "closeAriaLabel", "closeTabindex", "minimizeIcon", "maximizeIcon", "closeButtonProps", "maximizeButtonProps", "visible", "style", "position", "role", "content", "contentTemplate", "footerTemplate", "closeIconTemplate", "maximizeIconTemplate", "minimizeIconTemplate", "headlessTemplate"], outputs: ["onShow", "onHide", "visibleChange", "onResizeInit", "onResizeEnd", "onDragEnd", "onMaximize"] }, { kind: "component", type: GridComponent, selector: "custom-grid", inputs: ["gridOptions", "selectionKeys", "upsert", "rowData", "searchPrm", "addType", "selectData", "showAct", "actPos", "authLevel", "showDelete", "deleteHidden", "addHidden", "gridDisable", "addSort", "subSaveVisible", "subSaveHidden", "subSaveLabel", "subSaveDisabled"], outputs: ["deleteEmit", "addEmit", "subSaveEmit"] }, { kind: "component", type: SearchComponent, selector: "custom-search", inputs: ["searchPrm", "gridOptions"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] }); }
|
|
89
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: RowSelectorComponent, isStandalone: true, selector: "row-selector", inputs: { title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, selectionKeys: { classPropertyName: "selectionKeys", publicName: "selectionKeys", isSignal: true, isRequired: false, transformFunction: null }, gridOptions: { classPropertyName: "gridOptions", publicName: "gridOptions", isSignal: true, isRequired: false, transformFunction: null }, searchPrm: { classPropertyName: "searchPrm", publicName: "searchPrm", isSignal: true, isRequired: false, transformFunction: null }, visible: { classPropertyName: "visible", publicName: "visible", isSignal: true, isRequired: false, transformFunction: null }, showSearch: { classPropertyName: "showSearch", publicName: "showSearch", isSignal: true, isRequired: false, transformFunction: null }, selectModelCode: { classPropertyName: "selectModelCode", publicName: "selectModelCode", isSignal: true, isRequired: false, transformFunction: null }, customListFormByDialog: { classPropertyName: "customListFormByDialog", publicName: "customListFormByDialog", isSignal: true, isRequired: false, transformFunction: null }, customListFormByDialogContext: { classPropertyName: "customListFormByDialogContext", publicName: "customListFormByDialogContext", isSignal: true, isRequired: false, transformFunction: null }, customListDialogMap: { classPropertyName: "customListDialogMap", publicName: "customListDialogMap", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onOk: "onOk", visible: "visibleChange", cancelSelect: "cancelSelect" }, viewQueries: [{ propertyName: "grid", first: true, predicate: GridComponent, descendants: true }], ngImport: i0, template: "<p-dialog\n\t[header]=\"title()\"\n\t[modal]=\"true\"\n\t[style]=\"{ width: '50vw' }\"\n\t[maximizable]=\"true\"\n\t[appendTo]=\"'body'\"\n\t[focusOnShow]=\"false\"\n\t(onShow)=\"onShow()\"\n\t(onHide)=\"onHide()\"\n\t(onMaximize)=\"onMaximize($event)\"\n\t[(visible)]=\"visible\">\n\t@if (innerVisible) {\n\t\t<div class=\"flex flex-col gap-2\">\n @if (customListFormByDialog()) {\n <ng-container *ngTemplateOutlet=\"customListFormByDialog(); context: customListFormByDialogContext() || {}\"></ng-container>\n }\n\t\t\t@if (showSearch()) {\n\t\t\t\t<custom-search [gridOptions]=\"gridOptions()\"></custom-search>\n\t\t\t}\n\t\t\t<custom-grid\n\t\t\t\t[showAct]=\"false\"\n\t\t\t\t[searchPrm]=\"searchPrm()\"\n\t\t\t\t[selectionKeys]=\"selectionKeys()\"\n\t\t\t\t[gridOptions]=\"gridOptions()\"></custom-grid>\n\t\t\t<div class=\"flex justify-end gap-2\">\n\t\t\t\t<p-button\n\t\t\t\t\tlabel=\"\u53D6\u6D88\"\n\t\t\t\t\t[text]=\"true\"\n\t\t\t\t\tseverity=\"secondary\"\n\t\t\t\t\t(click)=\"cancel()\" />\n\t\t\t\t<p-button\n\t\t\t\t\tlabel=\"\u786E\u5B9A\"\n\t\t\t\t\t[outlined]=\"true\"\n\t\t\t\t\t(click)=\"ok()\" />\n\t\t\t</div>\n\t\t</div>\n\t}\n</p-dialog>\n", styles: [":host ::ng-deep .p-disabled,:host ::ng-deep .p-component:disabled{opacity:1}:host ::ng-deep .p-inputtext{border-width:0;border-radius:0;box-shadow:none;background:#fff;padding:0}:host ::ng-deep .p-inputtext:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-inputtext:not(:disabled):hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-inputtext:not(:disabled).ng-hovered{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-inputtext:focus{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .ng-hovered .p-autocomplete-input:not(.p-disabled){border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select-label{padding:0}:host ::ng-deep .p-select{border-width:0;border-radius:0;box-shadow:none;background:#fff}:host ::ng-deep .p-select .p-select-dropdown{display:none}:host ::ng-deep .p-select .p-select-clear-icon{display:none}:host ::ng-deep .p-select:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-select-open{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select-open .p-select-dropdown{display:flex}:host ::ng-deep .p-select-open .p-select-clear-icon{display:flex}:host ::ng-deep .p-select:hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select:hover .p-select-dropdown{display:flex}:host ::ng-deep .p-select:hover .p-select-clear-icon{display:flex}:host ::ng-deep .p-select.ng-hovered{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select.ng-hovered .p-select-dropdown{display:flex}:host ::ng-deep .p-select.ng-hovered .p-select-clear-icon{display:flex}:host ::ng-deep .p-multiselect-label{padding:0}:host ::ng-deep .p-multiselect{border-width:0;border-radius:0;background:#fff;box-shadow:none}:host ::ng-deep .p-multiselect .p-multiselect-dropdown{display:none}:host ::ng-deep .p-multiselect:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-multiselect-open{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect-open .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-multiselect:not(.p-disabled).p-focus{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect:not(.p-disabled).p-focus .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-multiselect:not(.p-disabled):hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect:not(.p-disabled):hover .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-multiselect:not(.p-disabled).ng-hovered{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect:not(.p-disabled).ng-hovered .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-textarea{border-radius:0;box-shadow:none;padding:0 .25rem;background:#fff;resize:none}:host ::ng-deep .p-textarea:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border:1px solid var(--p-red-500)!important}:host ::ng-deep .p-textarea:not(:disabled):hover{border:1px solid var(--p-primary-color);resize:vertical}:host ::ng-deep .p-textarea:not(:disabled).ng-hovered{border:1px solid var(--p-primary-color);resize:vertical}:host ::ng-deep .p-textarea:focus{border:1px solid var(--p-primary-color);resize:vertical}:host ::ng-deep .p-treeselect-label{padding:0}:host ::ng-deep .p-treeselect{border-width:0;border-radius:0;box-shadow:none;background:#fff}:host ::ng-deep .p-treeselect .p-treeselect-dropdown{display:none}:host ::ng-deep .ng-invalid.ng-dirty>.p-treeselect{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-treeselect-open{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-treeselect-open .p-treeselect-dropdown{display:flex}:host ::ng-deep .p-treeselect:not(.p-disabled).p-focus{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-treeselect:not(.p-disabled).p-focus .p-treeselect-dropdown{display:flex}:host ::ng-deep .p-treeselect:not(.p-disabled):hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-treeselect:not(.p-disabled):hover .p-treeselect-dropdown{display:flex}:host ::ng-deep .ng-hovered>.p-treeselect:not(.p-disabled){border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .ng-hovered>.p-treeselect:not(.p-disabled) .p-treeselect-dropdown{display:flex}:host ::ng-deep .p-menubar{border-width:0;padding:0}:host ::ng-deep .p-menubar-submenu{z-index:3}:host ::ng-deep .p-fileupload-advanced{border-width:0;border-radius:0;background-color:#fff}:host ::ng-deep .p-fileupload-header{padding:0}:host ::ng-deep .p-fileupload-content{padding:0;display:block;border-width:0}:host ::ng-deep .p-inputnumber:not(.ng-valid).ng-dirty>.p-inputtext{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-inputnumber.ng-hovered:not(.p-disabled)>.p-inputtext{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .ng-invalid.ng-dirty>.p-datepicker .p-inputtext{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .ng-hovered>.p-datepicker:not(.p-disabled) .p-inputtext{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .cm-editor{border:1px solid #cbd5e1}:host ::ng-deep .cm-editor.cm-focused{outline:none!important;border:1px solid var(--p-primary-color)}:host ::ng-deep .cm-editor:hover{border:1px solid var(--p-primary-color)}:host ::ng-deep .cm-editor.ng-hovered{border:1px solid var(--p-primary-color)}:host ::ng-deep .cm-gutters{background-color:#fff;border:\"none\"}:host ::ng-deep .cm-activeLineGutter{background-color:#fff}\n"], dependencies: [{ kind: "ngmodule", type: ButtonModule }, { kind: "component", type: i2.Button, selector: "p-button", inputs: ["type", "iconPos", "icon", "badge", "label", "disabled", "loading", "loadingIcon", "raised", "rounded", "text", "plain", "severity", "outlined", "link", "tabindex", "size", "variant", "style", "styleClass", "badgeClass", "badgeSeverity", "ariaLabel", "autofocus", "fluid", "buttonProps"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "ngmodule", type: DialogModule }, { kind: "component", type: i3.Dialog, selector: "p-dialog", inputs: ["header", "draggable", "resizable", "positionLeft", "positionTop", "contentStyle", "contentStyleClass", "modal", "closeOnEscape", "dismissableMask", "rtl", "closable", "responsive", "appendTo", "breakpoints", "styleClass", "maskStyleClass", "maskStyle", "showHeader", "breakpoint", "blockScroll", "autoZIndex", "baseZIndex", "minX", "minY", "focusOnShow", "maximizable", "keepInViewport", "focusTrap", "transitionOptions", "closeIcon", "closeAriaLabel", "closeTabindex", "minimizeIcon", "maximizeIcon", "closeButtonProps", "maximizeButtonProps", "visible", "style", "position", "role", "content", "contentTemplate", "footerTemplate", "closeIconTemplate", "maximizeIconTemplate", "minimizeIconTemplate", "headlessTemplate"], outputs: ["onShow", "onHide", "visibleChange", "onResizeInit", "onResizeEnd", "onDragEnd", "onMaximize"] }, { kind: "component", type: GridComponent, selector: "custom-grid", inputs: ["gridOptions", "selectionKeys", "upsert", "rowData", "hideExpressionData", "hideExpressionVersion", "searchPrm", "addType", "selectData", "showAct", "actPos", "authLevel", "showDelete", "deleteHidden", "addHidden", "gridDisable", "addSort", "subSaveVisible", "subSaveHidden", "subSaveLabel", "subSaveDisabled"], outputs: ["deleteEmit", "addEmit", "gridDataChanged", "subSaveEmit"] }, { kind: "component", type: SearchComponent, selector: "custom-search", inputs: ["searchPrm", "gridOptions"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] }); }
|
|
90
90
|
}
|
|
91
91
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RowSelectorComponent, decorators: [{
|
|
92
92
|
type: Component,
|
|
@@ -99,4 +99,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
99
99
|
}], cancelSelect: [{
|
|
100
100
|
type: Output
|
|
101
101
|
}] } });
|
|
102
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm93LXNlbGVjdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2ltbS1lbGVtZW50LXVpL3NyYy9saWIvcm93LXNlbGVjdG9yL3Jvdy1zZWxlY3Rvci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pbW0tZWxlbWVudC11aS9zcmMvbGliL3Jvdy1zZWxlY3Rvci9yb3ctc2VsZWN0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBZSxNQUFNLGVBQWUsQ0FBQztBQUN0SCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRzlDLE9BQU8sRUFBRSxhQUFhLEVBQWUsTUFBTSw2QkFBNkIsQ0FBQztBQUN6RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFFcEUsT0FBTyxFQUFFLFFBQVEsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7OztBQVM3RCxNQUFNLE9BQU8sb0JBQW9CO0lBa0JoQyxZQUFvQixNQUFxQjtRQUFyQixXQUFNLEdBQU4sTUFBTSxDQUFlO1FBakIvQixTQUFJLEdBQUcsSUFBSSxZQUFZLEVBQVMsQ0FBQztRQUUzQyxhQUFRLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzVCLFVBQUssR0FBRyxLQUFLLENBQVMsSUFBSSxDQUFDLENBQUM7UUFDNUIsa0JBQWEsR0FBRyxLQUFLLENBQVEsRUFBRSxDQUFDLENBQUM7UUFDakMsZ0JBQVcsR0FBRyxLQUFLLENBQWMsRUFBRSxDQUFDLENBQUM7UUFDckMsY0FBUyxHQUFHLEtBQUss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QyxZQUFZLEVBQUUsWUFBWSxFQUFFLGFBQWEsRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLENBQUM7a0ZBSzdFLElBQUk7c0JBQWIsTUFBTTtnQkFDbUIsSUFBSTtzQkFBN0IsU0FBUzt1QkFBQyxhQUFhO2dCQWVkLFlBQVk7c0JBQXJCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIFZpZXdDaGlsZCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIGlucHV0LCBtb2RlbCwgZWZmZWN0LCBpbmplY3QsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCdXR0b25Nb2R1bGUgfSBmcm9tICdwcmltZW5nL2J1dHRvbic7XG5pbXBvcnQgeyBEaWFsb2dNb2R1bGUgfSBmcm9tICdwcmltZW5nL2RpYWxvZyc7XG5pbXBvcnQgeyBTZWFyY2ggfSBmcm9tICcuLi9hbS9hbS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ3VzdG9tTGlzdERpYWxvZywgQ3VzdG9tTGlzdEZvcm1UZW1wbGF0ZUNvbnRleHQgfSBmcm9tICcuLi9wYWdlLWZvcm0vcGFnZS1mb3JtLmludGVyZmFjZSc7XG5pbXBvcnQgeyBHcmlkQ29tcG9uZW50LCBHcmlkT3B0aW9ucyB9IGZyb20gJy4uL2dyaWQvZ3JpZC9ncmlkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTZWFyY2hDb21wb25lbnQgfSBmcm9tICcuLi9zZWFyY2gvc2VhcmNoL3NlYXJjaC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQWN0aW9uU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2UvYWN0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgRGF0ZVBpcGUsIE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICdyb3ctc2VsZWN0b3InLFxuXHRzdGFuZGFsb25lOiB0cnVlLFxuXHRpbXBvcnRzOiBbQnV0dG9uTW9kdWxlLCBEaWFsb2dNb2R1bGUsIEdyaWRDb21wb25lbnQsIFNlYXJjaENvbXBvbmVudCwgTmdUZW1wbGF0ZU91dGxldF0sXG5cdHRlbXBsYXRlVXJsOiAnLi9yb3ctc2VsZWN0b3IuY29tcG9uZW50Lmh0bWwnLFxuXHRzdHlsZVVybDogJy4vcm93LXNlbGVjdG9yLmNvbXBvbmVudC5zY3NzJyxcbn0pXG5leHBvcnQgY2xhc3MgUm93U2VsZWN0b3JDb21wb25lbnQge1xuXHRAT3V0cHV0KCkgb25PayA9IG5ldyBFdmVudEVtaXR0ZXI8YW55W10+KCk7XG5cdEBWaWV3Q2hpbGQoR3JpZENvbXBvbmVudCkgZ3JpZCE6IEdyaWRDb21wb25lbnQ7XG5cdGRhdGVQaXBlID0gaW5qZWN0KERhdGVQaXBlKTtcblx0dGl0bGUgPSBpbnB1dDxzdHJpbmc+KCfpgInmi6knKTtcblx0c2VsZWN0aW9uS2V5cyA9IGlucHV0PGFueVtdPihbXSk7XG5cdGdyaWRPcHRpb25zID0gaW5wdXQ8R3JpZE9wdGlvbnM+KHt9KTtcblx0c2VhcmNoUHJtID0gaW5wdXQ8U2VhcmNoPih7fSk7XG5cdHZpc2libGUgPSBtb2RlbDxib29sZWFuPihmYWxzZSk7XG5cdGlubmVyVmlzaWJsZTogYm9vbGVhbiA9IGZhbHNlO1xuXHRzaG93U2VhcmNoID0gaW5wdXQ8Ym9vbGVhbj4odHJ1ZSk7XG5cdHNlbGVjdENhbmNlbDogYW55W10gPSBbXTtcblx0c2VsZWN0TW9kZWxDb2RlID0gaW5wdXQ8c3RyaW5nPigpO1xuXHRjdXN0b21MaXN0Rm9ybUJ5RGlhbG9nID0gaW5wdXQ8VGVtcGxhdGVSZWY8Q3VzdG9tTGlzdEZvcm1UZW1wbGF0ZUNvbnRleHQ+IHwgbnVsbD4obnVsbCk7XG5cdGN1c3RvbUxpc3RGb3JtQnlEaWFsb2dDb250ZXh0ID0gaW5wdXQ8Q3VzdG9tTGlzdEZvcm1UZW1wbGF0ZUNvbnRleHQgfCBudWxsPihudWxsKTtcblx0Y3VzdG9tTGlzdERpYWxvZ01hcCA9IGlucHV0PFJlY29yZDxzdHJpbmcsIEN1c3RvbUxpc3REaWFsb2cgfCB1bmRlZmluZWQ+IHwgbnVsbD4obnVsbCk7XG5cblx0QE91dHB1dCgpIGNhbmNlbFNlbGVjdCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55W10+KCk7XG5cdGNvbnN0cnVjdG9yKHByaXZhdGUgYWN0aW9uOiBBY3Rpb25TZXJ2aWNlKSB7fVxuXG5cdGFwaSgpIHtcblx0XHRyZXR1cm4gdGhpcy5ncmlkLmdldEdyaWQoKS5hcGk7XG5cdH1cblxuXHRjYW5jZWwoKSB7XG5cdFx0dGhpcy52aXNpYmxlLnNldChmYWxzZSk7XG5cdH1cblxuXHRvaygpIHtcblx0XHRjb25zdCBzZWxlY3RNb2RlbENvZGUgPSB0aGlzLnNlbGVjdE1vZGVsQ29kZSgpO1xuXHRcdGNvbnN0IGN1c3RvbUxpc3REaWFsb2cgPSBzZWxlY3RNb2RlbENvZGUgPyB0aGlzLmN1c3RvbUxpc3REaWFsb2dNYXAoKT8uW3NlbGVjdE1vZGVsQ29kZV0gPz8gbnVsbCA6IG51bGw7XG5cdFx0Y29uc3QgcmVzdWx0ID0gY3VzdG9tTGlzdERpYWxvZ1xuXHRcdFx0PyBjdXN0b21MaXN0RGlhbG9nLmdldFJlc3VsdCgpXG5cdFx0XHQ6IHRoaXMuZ2V0U2VsZWN0ZWREYXRhKCkubWFwKChpdGVtKSA9PiB7XG5cdFx0XHRcdGNvbnN0IHJlc3VsdDogYW55ID0ge307XG5cdFx0XHRcdHRoaXMuZ3JpZE9wdGlvbnMoKS5jb2x1bW5EZWZzPy5mb3JFYWNoKChjb2w6IGFueSkgPT4ge1xuXHRcdFx0XHRcdHJlc3VsdFtjb2wuZmllbGRdID0gaXRlbVtjb2wuZmllbGRdO1xuXHRcdFx0XHR9KTtcblx0XHRcdFx0cmV0dXJuIHJlc3VsdDtcblx0XHRcdH0pO1xuXHRcdHRoaXMub25Pay5lbWl0KHJlc3VsdCk7XG5cdFx0dGhpcy5zZWxlY3RDYW5jZWwubGVuZ3RoID4gMCAmJiB0aGlzLmNhbmNlbFNlbGVjdC5lbWl0KHRoaXMuc2VsZWN0Q2FuY2VsKTtcblx0XHR0aGlzLnNlbGVjdENhbmNlbCA9IFtdO1xuXHRcdHRoaXMudmlzaWJsZS5zZXQoZmFsc2UpO1xuXHR9XG5cblx0Z2V0U2VsZWN0ZWREYXRhKCk6IGFueVtdIHtcblx0XHR0aGlzLnNlbGVjdENhbmNlbCA9IFtdO1xuXHRcdGNvbnN0IHJlc3VsdDogYW55W10gPSBbXTtcblx0XHRjb25zdCBzZWxlY3Rpb25LZXlzID0gdGhpcy5zZWxlY3Rpb25LZXlzKCk7XG5cdFx0Y29uc3QgZGF0YUtleSA9IHRoaXMuZ3JpZE9wdGlvbnMoKS5kYXRhS2V5IHx8ICdpZCc7XG5cdFx0dGhpcy5hcGkoKS5mb3JFYWNoTm9kZSgobm9kZTogYW55KSA9PiB7XG5cdFx0XHRjb25zdCBrZXlWYWx1ZSA9IG5vZGUuZGF0YSA/IG5vZGUuZGF0YVtkYXRhS2V5XSA6IC0xO1xuXHRcdFx0aWYgKCFub2RlLmlzU2VsZWN0ZWQoKSAmJiBzZWxlY3Rpb25LZXlzLmluY2x1ZGVzKGtleVZhbHVlKSkge1xuXHRcdFx0XHR0aGlzLnNlbGVjdENhbmNlbC5wdXNoKG5vZGUuZGF0YSk7XG5cdFx0XHR9XG5cblx0XHRcdG5vZGUuaXNTZWxlY3RlZCgpICYmIHJlc3VsdC5wdXNoKHsgLi4ubm9kZS5kYXRhIH0pO1xuXHRcdH0pO1xuXHRcdHJldHVybiByZXN1bHQ7XG5cdH1cblxuXHRvblNob3coKSB7XG5cdFx0dGhpcy5zZWxlY3RDYW5jZWwgPSBbXTtcblx0XHR0aGlzLmlubmVyVmlzaWJsZSA9IHRydWU7XG5cdFx0dGhpcy5hY3Rpb24uc2V0UG9wTW9kZSh0cnVlKTtcblx0fVxuXG5cdG9uSGlkZSgpIHtcblx0XHR0aGlzLnNlbGVjdENhbmNlbCA9IFtdO1xuXHRcdHRoaXMuY2FuY2VsKCk7XG5cdFx0dGhpcy5pbm5lclZpc2libGUgPSBmYWxzZTtcblx0XHRzZXRUaW1lb3V0KCgpID0+IHtcblx0XHRcdHRoaXMuYWN0aW9uLnNldFBvcE1vZGUoZmFsc2UpO1xuXHRcdH0pO1xuXHR9XG5cblx0b25NYXhpbWl6ZShldmVudDogYW55KSB7XG5cdFx0aWYgKGV2ZW50Lm1heGltaXplZCkge1xuXHRcdFx0dGhpcy5ncmlkLnNldFNjcm9sbEhlaWdodCgnY2FsYygxMDB2aCAtIDE1MHB4KScpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHR0aGlzLmdyaWQuc2V0U2Nyb2xsSGVpZ2h0KCk7XG5cdFx0fVxuXHR9XG59XG4iLCI8cC1kaWFsb2dcblx0W2hlYWRlcl09XCJ0aXRsZSgpXCJcblx0W21vZGFsXT1cInRydWVcIlxuXHRbc3R5bGVdPVwieyB3aWR0aDogJzUwdncnIH1cIlxuXHRbbWF4aW1pemFibGVdPVwidHJ1ZVwiXG5cdFthcHBlbmRUb109XCInYm9keSdcIlxuXHRbZm9jdXNPblNob3ddPVwiZmFsc2VcIlxuXHQob25TaG93KT1cIm9uU2hvdygpXCJcblx0KG9uSGlkZSk9XCJvbkhpZGUoKVwiXG5cdChvbk1heGltaXplKT1cIm9uTWF4aW1pemUoJGV2ZW50KVwiXG5cdFsodmlzaWJsZSldPVwidmlzaWJsZVwiPlxuXHRAaWYgKGlubmVyVmlzaWJsZSkge1xuXHRcdDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGdhcC0yXCI+XG4gICAgICBAaWYgKGN1c3RvbUxpc3RGb3JtQnlEaWFsb2coKSkge1xuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY3VzdG9tTGlzdEZvcm1CeURpYWxvZygpOyBjb250ZXh0OiBjdXN0b21MaXN0Rm9ybUJ5RGlhbG9nQ29udGV4dCgpIHx8IHt9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICB9XG5cdFx0XHRAaWYgKHNob3dTZWFyY2goKSkge1xuXHRcdFx0XHQ8Y3VzdG9tLXNlYXJjaCBbZ3JpZE9wdGlvbnNdPVwiZ3JpZE9wdGlvbnMoKVwiPjwvY3VzdG9tLXNlYXJjaD5cblx0XHRcdH1cblx0XHRcdDxjdXN0b20tZ3JpZFxuXHRcdFx0XHRbc2hvd0FjdF09XCJmYWxzZVwiXG5cdFx0XHRcdFtzZWFyY2hQcm1dPVwic2VhcmNoUHJtKClcIlxuXHRcdFx0XHRbc2VsZWN0aW9uS2V5c109XCJzZWxlY3Rpb25LZXlzKClcIlxuXHRcdFx0XHRbZ3JpZE9wdGlvbnNdPVwiZ3JpZE9wdGlvbnMoKVwiPjwvY3VzdG9tLWdyaWQ+XG5cdFx0XHQ8ZGl2IGNsYXNzPVwiZmxleCBqdXN0aWZ5LWVuZCBnYXAtMlwiPlxuXHRcdFx0XHQ8cC1idXR0b25cblx0XHRcdFx0XHRsYWJlbD1cIuWPlua2iFwiXG5cdFx0XHRcdFx0W3RleHRdPVwidHJ1ZVwiXG5cdFx0XHRcdFx0c2V2ZXJpdHk9XCJzZWNvbmRhcnlcIlxuXHRcdFx0XHRcdChjbGljayk9XCJjYW5jZWwoKVwiIC8+XG5cdFx0XHRcdDxwLWJ1dHRvblxuXHRcdFx0XHRcdGxhYmVsPVwi56Gu5a6aXCJcblx0XHRcdFx0XHRbb3V0bGluZWRdPVwidHJ1ZVwiXG5cdFx0XHRcdFx0KGNsaWNrKT1cIm9rKClcIiAvPlxuXHRcdFx0PC9kaXY+XG5cdFx0PC9kaXY+XG5cdH1cbjwvcC1kaWFsb2c+XG4iXX0=
|
|
102
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm93LXNlbGVjdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2ltbS1lbGVtZW50LXVpL3NyYy9saWIvcm93LXNlbGVjdG9yL3Jvdy1zZWxlY3Rvci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pbW0tZWxlbWVudC11aS9zcmMvbGliL3Jvdy1zZWxlY3Rvci9yb3ctc2VsZWN0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBZSxNQUFNLGVBQWUsQ0FBQztBQUN0SCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRzlDLE9BQU8sRUFBRSxhQUFhLEVBQWUsTUFBTSw2QkFBNkIsQ0FBQztBQUN6RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFFcEUsT0FBTyxFQUFFLFFBQVEsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7OztBQVM3RCxNQUFNLE9BQU8sb0JBQW9CO0lBa0JoQyxZQUFvQixNQUFxQjtRQUFyQixXQUFNLEdBQU4sTUFBTSxDQUFlO1FBakIvQixTQUFJLEdBQUcsSUFBSSxZQUFZLEVBQVMsQ0FBQztRQUUzQyxhQUFRLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzVCLFVBQUssR0FBRyxLQUFLLENBQVMsSUFBSSxDQUFDLENBQUM7UUFDNUIsa0JBQWEsR0FBRyxLQUFLLENBQVEsRUFBRSxDQUFDLENBQUM7UUFDakMsZ0JBQVcsR0FBRyxLQUFLLENBQWMsRUFBRSxDQUFDLENBQUM7UUFDckMsY0FBUyxHQUFHLEtBQUss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QyxZQUFZLEVBQUUsWUFBWSxFQUFFLGFBQWEsRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLENBQUM7a0ZBSzdFLElBQUk7c0JBQWIsTUFBTTtnQkFDbUIsSUFBSTtzQkFBN0IsU0FBUzt1QkFBQyxhQUFhO2dCQWVkLFlBQVk7c0JBQXJCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIFZpZXdDaGlsZCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIGlucHV0LCBtb2RlbCwgZWZmZWN0LCBpbmplY3QsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCdXR0b25Nb2R1bGUgfSBmcm9tICdwcmltZW5nL2J1dHRvbic7XG5pbXBvcnQgeyBEaWFsb2dNb2R1bGUgfSBmcm9tICdwcmltZW5nL2RpYWxvZyc7XG5pbXBvcnQgeyBTZWFyY2ggfSBmcm9tICcuLi9hbS9hbS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ3VzdG9tTGlzdERpYWxvZywgQ3VzdG9tTGlzdEZvcm1UZW1wbGF0ZUNvbnRleHQgfSBmcm9tICcuLi9wYWdlLWZvcm0vcGFnZS1mb3JtLmludGVyZmFjZSc7XG5pbXBvcnQgeyBHcmlkQ29tcG9uZW50LCBHcmlkT3B0aW9ucyB9IGZyb20gJy4uL2dyaWQvZ3JpZC9ncmlkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTZWFyY2hDb21wb25lbnQgfSBmcm9tICcuLi9zZWFyY2gvc2VhcmNoL3NlYXJjaC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQWN0aW9uU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2UvYWN0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgRGF0ZVBpcGUsIE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICdyb3ctc2VsZWN0b3InLFxuXHRzdGFuZGFsb25lOiB0cnVlLFxuXHRpbXBvcnRzOiBbQnV0dG9uTW9kdWxlLCBEaWFsb2dNb2R1bGUsIEdyaWRDb21wb25lbnQsIFNlYXJjaENvbXBvbmVudCwgTmdUZW1wbGF0ZU91dGxldF0sXG5cdHRlbXBsYXRlVXJsOiAnLi9yb3ctc2VsZWN0b3IuY29tcG9uZW50Lmh0bWwnLFxuXHRzdHlsZVVybDogJy4vcm93LXNlbGVjdG9yLmNvbXBvbmVudC5zY3NzJyxcbn0pXG5leHBvcnQgY2xhc3MgUm93U2VsZWN0b3JDb21wb25lbnQge1xuXHRAT3V0cHV0KCkgb25PayA9IG5ldyBFdmVudEVtaXR0ZXI8YW55W10+KCk7XG5cdEBWaWV3Q2hpbGQoR3JpZENvbXBvbmVudCkgZ3JpZCE6IEdyaWRDb21wb25lbnQ7XG5cdGRhdGVQaXBlID0gaW5qZWN0KERhdGVQaXBlKTtcblx0dGl0bGUgPSBpbnB1dDxzdHJpbmc+KCfpgInmi6knKTtcblx0c2VsZWN0aW9uS2V5cyA9IGlucHV0PGFueVtdPihbXSk7XG5cdGdyaWRPcHRpb25zID0gaW5wdXQ8R3JpZE9wdGlvbnM+KHt9KTtcblx0c2VhcmNoUHJtID0gaW5wdXQ8U2VhcmNoPih7fSk7XG5cdHZpc2libGUgPSBtb2RlbDxib29sZWFuPihmYWxzZSk7XG5cdGlubmVyVmlzaWJsZTogYm9vbGVhbiA9IGZhbHNlO1xuXHRzaG93U2VhcmNoID0gaW5wdXQ8Ym9vbGVhbj4odHJ1ZSk7XG5cdHNlbGVjdENhbmNlbDogYW55W10gPSBbXTtcblx0c2VsZWN0TW9kZWxDb2RlID0gaW5wdXQ8c3RyaW5nPigpO1xuXHRjdXN0b21MaXN0Rm9ybUJ5RGlhbG9nID0gaW5wdXQ8VGVtcGxhdGVSZWY8Q3VzdG9tTGlzdEZvcm1UZW1wbGF0ZUNvbnRleHQ+IHwgbnVsbD4obnVsbCk7XG5cdGN1c3RvbUxpc3RGb3JtQnlEaWFsb2dDb250ZXh0ID0gaW5wdXQ8Q3VzdG9tTGlzdEZvcm1UZW1wbGF0ZUNvbnRleHQgfCBudWxsPihudWxsKTtcblx0Y3VzdG9tTGlzdERpYWxvZ01hcCA9IGlucHV0PFJlY29yZDxzdHJpbmcsIEN1c3RvbUxpc3REaWFsb2cgfCB1bmRlZmluZWQ+IHwgbnVsbD4obnVsbCk7XG5cblx0QE91dHB1dCgpIGNhbmNlbFNlbGVjdCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55W10+KCk7XG5cdGNvbnN0cnVjdG9yKHByaXZhdGUgYWN0aW9uOiBBY3Rpb25TZXJ2aWNlKSB7fVxuXG5cdGFwaSgpIHtcblx0XHRyZXR1cm4gdGhpcy5ncmlkLmdldEdyaWQoKS5hcGk7XG5cdH1cblxuXHRjYW5jZWwoKSB7XG5cdFx0dGhpcy52aXNpYmxlLnNldChmYWxzZSk7XG5cdH1cblxuXHRvaygpIHtcblx0XHRjb25zdCBzZWxlY3RNb2RlbENvZGUgPSB0aGlzLnNlbGVjdE1vZGVsQ29kZSgpO1xuXHRcdGNvbnN0IGN1c3RvbUxpc3REaWFsb2cgPSBzZWxlY3RNb2RlbENvZGUgPyB0aGlzLmN1c3RvbUxpc3REaWFsb2dNYXAoKT8uW3NlbGVjdE1vZGVsQ29kZV0gPz8gbnVsbCA6IG51bGw7XG5cdFx0Y29uc3QgcmVzdWx0ID0gY3VzdG9tTGlzdERpYWxvZ1xuXHRcdFx0PyBjdXN0b21MaXN0RGlhbG9nLmdldFJlc3VsdCgpXG5cdFx0XHQ6IHRoaXMuZ2V0U2VsZWN0ZWREYXRhKCkubWFwKChpdGVtKSA9PiB7XG5cdFx0XHRcdGNvbnN0IHJlc3VsdDogYW55ID0ge307XG5cdFx0XHRcdHRoaXMuZ3JpZE9wdGlvbnMoKS5jb2x1bW5EZWZzPy5mb3JFYWNoKChjb2w6IGFueSkgPT4ge1xuXHRcdFx0XHRcdHJlc3VsdFtjb2wuZmllbGRdID0gaXRlbVtjb2wuZmllbGRdO1xuXHRcdFx0XHR9KTtcblx0XHRcdFx0cmV0dXJuIHJlc3VsdDtcblx0XHRcdH0pO1xuXHRcdHRoaXMub25Pay5lbWl0KHJlc3VsdCk7XG5cdFx0dGhpcy5zZWxlY3RDYW5jZWwubGVuZ3RoID4gMCAmJiB0aGlzLmNhbmNlbFNlbGVjdC5lbWl0KHRoaXMuc2VsZWN0Q2FuY2VsKTtcblx0XHR0aGlzLnNlbGVjdENhbmNlbCA9IFtdO1xuXHRcdHRoaXMudmlzaWJsZS5zZXQoZmFsc2UpO1xuXHR9XG5cblx0Z2V0U2VsZWN0ZWREYXRhKCk6IGFueVtdIHtcblx0XHR0aGlzLnNlbGVjdENhbmNlbCA9IFtdO1xuXHRcdGNvbnN0IHJlc3VsdDogYW55W10gPSBbXTtcblx0XHRjb25zdCBzZWxlY3Rpb25LZXlzID0gdGhpcy5zZWxlY3Rpb25LZXlzKCk7XG5cdFx0Y29uc3QgZGF0YUtleSA9IHRoaXMuZ3JpZE9wdGlvbnMoKS5kYXRhS2V5IHx8ICdpZCc7XG5cdFx0dGhpcy5hcGkoKS5mb3JFYWNoTm9kZSgobm9kZTogYW55KSA9PiB7XG5cdFx0XHRjb25zdCBrZXlWYWx1ZSA9IG5vZGUuZGF0YSA/IG5vZGUuZGF0YVtkYXRhS2V5XSA6IC0xO1xuXHRcdFx0aWYgKCFub2RlLmlzU2VsZWN0ZWQoKSAmJiBzZWxlY3Rpb25LZXlzLmluY2x1ZGVzKGtleVZhbHVlKSkge1xuXHRcdFx0XHR0aGlzLnNlbGVjdENhbmNlbC5wdXNoKG5vZGUuZGF0YSk7XG5cdFx0XHR9XG5cblx0XHRcdG5vZGUuaXNTZWxlY3RlZCgpICYmIHJlc3VsdC5wdXNoKHsgLi4ubm9kZS5kYXRhIH0pO1xuXHRcdH0pO1xuXHRcdHJldHVybiByZXN1bHQ7XG5cdH1cblxuXHRvblNob3coKSB7XG5cdFx0dGhpcy5zZWxlY3RDYW5jZWwgPSBbXTtcblx0XHR0aGlzLmlubmVyVmlzaWJsZSA9IHRydWU7XG5cdFx0dGhpcy5hY3Rpb24uc2V0UG9wTW9kZSh0cnVlKTtcblx0fVxuXG5cdG9uSGlkZSgpIHtcblx0XHR0aGlzLnNlbGVjdENhbmNlbCA9IFtdO1xuXHRcdHRoaXMuY2FuY2VsKCk7XG5cdFx0dGhpcy5pbm5lclZpc2libGUgPSBmYWxzZTtcblx0XHRzZXRUaW1lb3V0KCgpID0+IHtcblx0XHRcdHRoaXMuYWN0aW9uLnNldFBvcE1vZGUoZmFsc2UpO1xuXHRcdH0pO1xuXHR9XG5cblx0b25NYXhpbWl6ZShldmVudDogYW55KSB7XG5cdFx0aWYgKGV2ZW50Lm1heGltaXplZCkge1xuXHRcdFx0dGhpcy5ncmlkLnNldFNjcm9sbEhlaWdodCgnY2FsYygxMDB2aCAtIDE1MHB4KScpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHR0aGlzLmdyaWQuc2V0U2Nyb2xsSGVpZ2h0KCk7XG5cdFx0fVxuXHR9XG59XG4iLCI8cC1kaWFsb2dcblx0W2hlYWRlcl09XCJ0aXRsZSgpXCJcblx0W21vZGFsXT1cInRydWVcIlxuXHRbc3R5bGVdPVwieyB3aWR0aDogJzUwdncnIH1cIlxuXHRbbWF4aW1pemFibGVdPVwidHJ1ZVwiXG5cdFthcHBlbmRUb109XCInYm9keSdcIlxuXHRbZm9jdXNPblNob3ddPVwiZmFsc2VcIlxuXHQob25TaG93KT1cIm9uU2hvdygpXCJcblx0KG9uSGlkZSk9XCJvbkhpZGUoKVwiXG5cdChvbk1heGltaXplKT1cIm9uTWF4aW1pemUoJGV2ZW50KVwiXG5cdFsodmlzaWJsZSldPVwidmlzaWJsZVwiPlxuXHRAaWYgKGlubmVyVmlzaWJsZSkge1xuXHRcdDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGdhcC0yXCI+XG4gICAgICBAaWYgKGN1c3RvbUxpc3RGb3JtQnlEaWFsb2coKSkge1xuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY3VzdG9tTGlzdEZvcm1CeURpYWxvZygpOyBjb250ZXh0OiBjdXN0b21MaXN0Rm9ybUJ5RGlhbG9nQ29udGV4dCgpIHx8IHt9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICB9XG5cdFx0XHRAaWYgKHNob3dTZWFyY2goKSkge1xuXHRcdFx0XHQ8Y3VzdG9tLXNlYXJjaCBbZ3JpZE9wdGlvbnNdPVwiZ3JpZE9wdGlvbnMoKVwiPjwvY3VzdG9tLXNlYXJjaD5cblx0XHRcdH1cblx0XHRcdDxjdXN0b20tZ3JpZFxuXHRcdFx0XHRbc2hvd0FjdF09XCJmYWxzZVwiXG5cdFx0XHRcdFtzZWFyY2hQcm1dPVwic2VhcmNoUHJtKClcIlxuXHRcdFx0XHRbc2VsZWN0aW9uS2V5c109XCJzZWxlY3Rpb25LZXlzKClcIlxuXHRcdFx0XHRbZ3JpZE9wdGlvbnNdPVwiZ3JpZE9wdGlvbnMoKVwiPjwvY3VzdG9tLWdyaWQ+XG5cdFx0XHQ8ZGl2IGNsYXNzPVwiZmxleCBqdXN0aWZ5LWVuZCBnYXAtMlwiPlxuXHRcdFx0XHQ8cC1idXR0b25cblx0XHRcdFx0XHRsYWJlbD1cIuWPlua2iFwiXG5cdFx0XHRcdFx0W3RleHRdPVwidHJ1ZVwiXG5cdFx0XHRcdFx0c2V2ZXJpdHk9XCJzZWNvbmRhcnlcIlxuXHRcdFx0XHRcdChjbGljayk9XCJjYW5jZWwoKVwiIC8+XG5cdFx0XHRcdDxwLWJ1dHRvblxuXHRcdFx0XHRcdGxhYmVsPVwi56Gu5a6aXCJcblx0XHRcdFx0XHRbb3V0bGluZWRdPVwidHJ1ZVwiXG5cdFx0XHRcdFx0KGNsaWNrKT1cIm9rKClcIiAvPlxuXHRcdFx0PC9kaXY+XG5cdFx0PC9kaXY+XG5cdH1cbjwvcC1kaWFsb2c+XG4iXX0=
|
|
@@ -301,7 +301,9 @@ export const convertCol = (options, col, authLevel, dragSort) => {
|
|
|
301
301
|
const isI18n = window.appIsI18n;
|
|
302
302
|
// console.log('isI18n-----',isI18n)
|
|
303
303
|
col.forEach((item, index) => {
|
|
304
|
-
item.hide
|
|
304
|
+
if (typeof item.hide !== 'function' && typeof item.hide !== 'string') {
|
|
305
|
+
item.hide = item.hideCol === true || item.hide === true;
|
|
306
|
+
}
|
|
305
307
|
if (authLevel < 3) {
|
|
306
308
|
item.editable = false;
|
|
307
309
|
}
|
|
@@ -588,4 +590,4 @@ export const deepClone = (source, that, cache) => {
|
|
|
588
590
|
return source;
|
|
589
591
|
}
|
|
590
592
|
};
|
|
591
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pbW0tZWxlbWVudC11aS9zcmMvbGliL3NoYXJlL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsVUFBVSxFQUFFLEVBQUUsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxjQUFjLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2pHLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyQyxPQUFPLEtBQUssRUFBRSxNQUFNLFlBQVksQ0FBQztBQUNqQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDbkQsT0FBTyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFJbEMsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsQ0FBQyxJQUFTLEVBQW1CLEVBQUU7SUFDaEUsNkJBQTZCO0lBQzdCLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNYLE9BQU8sVUFBVSxDQUFDO0lBQ25CLENBQUM7SUFDRCxPQUFPLElBQUksQ0FBQztBQUNiLENBQUMsQ0FBQztBQUNGLE1BQU0sQ0FBQyxJQUFJLFlBQVksR0FBRyxDQUFDLEdBQVcsRUFBRSxFQUFFLENBQ3pDLEdBQUc7S0FDRCxPQUFPLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDLFdBQVc7S0FDOUIsT0FBTyxDQUFDLGlCQUFpQixFQUFFLE9BQU8sQ0FBQyxDQUFDLFdBQVc7S0FDL0MsV0FBVyxFQUFFLENBQUMsT0FBTztLQUNyQixLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsUUFBUTtLQUNyQixHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMs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QVMsRUFBRSxFQUFFO29CQUN6QixPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUM7Z0JBQ3hDLENBQUMsQ0FBQztZQUNILENBQUM7UUFDRixDQUFDO2FBQU0sSUFBSSxNQUFNLFlBQVksS0FBSyxFQUFFLENBQUM7WUFDcEMsTUFBTSxHQUFHLEVBQUUsQ0FBQztRQUNiLENBQUM7YUFBTSxJQUFJLE1BQU0sWUFBWSxJQUFJLEVBQUUsQ0FBQztZQUNuQyxNQUFNLEdBQUcsSUFBSSxJQUFJLENBQUUsTUFBYyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ3hDLENBQUM7YUFBTSxJQUFJLE1BQU0sWUFBWSxNQUFNLEVBQUUsQ0FBQztZQUNyQyxNQUFNLEdBQUcsSUFBSSxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbEQsQ0FBQzthQUFNLENBQUM7WUFDUCxNQUFNLEdBQUcsRUFBRSxDQUFDO1FBQ2IsQ0FBQztRQUNELEtBQUssQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQzFCLEtBQUssSUFBSSxHQUFHLElBQUksTUFBTSxFQUFFLENBQUM7WUFDeEIsSUFBSSxNQUFNLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQ2hDLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxTQUFTLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztZQUNuRCxDQUFDO1FBQ0YsQ0FBQztRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2YsQ0FBQztTQUFNLENBQUM7UUFDUCxPQUFPLE1BQU0sQ0FBQztJQUNmLENBQUM7QUFDRixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mLCBzaGFyZVJlcGxheSwgcGlwZSwgZm9ya0pvaW4sIGZpcnN0VmFsdWVGcm9tLCBpc09ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgKiBhcyB0cyBmcm9tICd0eXBlc2NyaXB0JztcclxuaW1wb3J0IHsgZm9ybVR5cGVUb1Byb3BzIH0gZnJvbSAnLi4vLi4vcHVibGljLWFwaSc7XHJcbmltcG9ydCBOUCBmcm9tICdudW1iZXItcHJlY2lzaW9uJztcclxuXHJcbmV4cG9ydCB0eXBlIEZpbHRlck1hdGNoTW9kZSA9ICdlbmRzV2l0aCcgfCAnc3RhcnRzV2l0aCcgfCAnY29udGFpbnMnIHwgJ2VxdWFscycgfCAnbm90RXF1YWxzJyB8ICdpbicgfCAnbHQnIHwgJ2x0ZScgfCAnZ3QnIHwgJ2d0ZSc7XHJcblxyXG5leHBvcnQgY29uc3QgZ2V0RmlsdGVyTWF0Y2hNb2RlID0gKG1vZGU6IGFueSk6IEZpbHRlck1hdGNoTW9kZSA9PiB7XHJcblx0Ly8g5pyq6YWN572u5pe25L2/55SoIFByaW1lTkcg6buY6K6kIGNvbnRhaW5zXHJcblx0aWYgKCFtb2RlKSB7XHJcblx0XHRyZXR1cm4gJ2NvbnRhaW5zJztcclxuXHR9XHJcblx0cmV0dXJuIG1vZGU7XHJcbn07XHJcbmV4cG9ydCBsZXQgdG9QYXNjYWxDYXNlID0gKHN0cjogc3RyaW5nKSA9PlxyXG5cdHN0clxyXG5cdFx0LnJlcGxhY2UoL18vZywgJyAnKSAvLyDkuIvliJLnur/mm7/mjaLkuLrnqbrmoLxcclxuXHRcdC5yZXBsYWNlKC8oW2Etel0pKFtBLVpdKS9nLCAnJDEgJDInKSAvLyDlsI/pqbzls7DliIblibLkuLrljZXor41cclxuXHRcdC50b0xvd2VyQ2FzZSgpIC8vIOi9rOS4uuWwj+WGmVxyXG5cdFx0LnNwbGl0KC9cXHMrLykgLy8g5oyJ56m65qC85YiG5YmyXHJcblx0XHQubWFwKCh3b3JkKSA9PiAod29yZCA/IHdvcmRbMF0udG9VcHBlckNhc2UoKSArIHdvcmQuc2xpY2UoMSkgOiAnJykpXHJcblx0XHQuam9pbignJyk7XHJcblxyXG5leHBvcnQgY29uc3QgZ2VuZXJhdGVVbmlxdWVJZCA9ICgpID0+IHtcclxuXHRjb25zdCB0aW1lc3RhbXAgPSBEYXRlLm5vdygpLnRvU3RyaW5nKDM2KTsgLy8g5pe26Ze05oiz6L2sMzbov5vliLbnvKnnn63plb/luqZcclxuXHRjb25zdCByYW5kb20gPSBNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHJpbmcoMiwgNCk7IC8vIOmaj+acuumDqOWIhlxyXG5cdHJldHVybiBgJHt0aW1lc3RhbXB9JHtyYW5kb219YDtcclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCBjcmVhdGVDaXJjdWxhckl0ZXJhdG9yID0gKGFycmF5OiBhbnlbXSkgPT4ge1xyXG5cdGxldCBpbmRleCA9IC0xO1xyXG5cdHJldHVybiB7XHJcblx0XHRuZXh0OiAoKSA9PiB7XHJcblx0XHRcdGluZGV4Kys7XHJcblx0XHRcdHJldHVybiBhcnJheVtpbmRleCAlIGFycmF5Lmxlbmd0aF07XHJcblx0XHR9LFxyXG5cdFx0cHJldjogKCkgPT4ge1xyXG5cdFx0XHRpbmRleC0tO1xyXG5cdFx0XHRyZXR1cm4gYXJyYXlbKChpbmRleCAlIGFycmF5Lmxlbmd0aCkgKyBhcnJheS5sZW5ndGgpICUgYXJyYXkubGVuZ3RoXTtcclxuXHRcdH0sXHJcblx0fTtcclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCBwYXJzZUZ1bmN0aW9ucyA9IChvYmo6IGFueSwgX3RoaXM6IGFueSk6IGFueSA9PiB7XHJcblx0aWYgKHR5cGVvZiBvYmogPT09ICdzdHJpbmcnKSB7XHJcblx0XHQvLyDlsJ3or5Xmo4DmtYvmmK/lkKbmmK/lh73mlbDlrZfnrKbkuLJcclxuXHRcdGlmICgob2JqLmluY2x1ZGVzKCc9PicpIHx8IG9iai5pbmNsdWRlcygnUHJvbWlzZScpKSAmJiAhaXNKU09OUGFyc2FibGUob2JqKSkge1xyXG5cdFx0XHRjb25zdCBvID0gY29tcGlsZVRzVG9KcyhvYmopO1xyXG5cdFx0XHQvLyBjb25zb2xlLmxvZygn6Kej5p6Q5Ye95pWwOicsIG9iaik7XHJcblx0XHRcdHRyeSB7XHJcblx0XHRcdFx0Y29uc3Qgc2FuZGJveCA9IHtcclxuXHRcdFx0XHRcdE9ic2VydmFibGUsXHJcblx0XHRcdFx0XHRvZixcclxuXHRcdFx0XHRcdGZvcmtKb2luLFxyXG5cdFx0XHRcdFx0bWFwLFxyXG5cdFx0XHRcdFx0c2hhcmVSZXBsYXksXHJcblx0XHRcdFx0XHRwaXBlLFxyXG5cdFx0XHRcdFx0UHJvbWlzZSwgLy8g5re75YqgIFByb21pc2Ug5YiwIHNhbmRib3hcclxuXHRcdFx0XHRcdGFzeW5jOiB0cnVlLCAvLyDmoIforrDmlK/mjIHlvILmraVcclxuXHRcdFx0XHRcdHJlc29sdmU6IFByb21pc2UucmVzb2x2ZS5iaW5kKFByb21pc2UpLFxyXG5cdFx0XHRcdFx0cmVqZWN0OiBQcm9taXNlLnJlamVjdC5iaW5kKFByb21pc2UpLFxyXG5cdFx0XHRcdFx0TlAsXHJcblx0XHRcdFx0XHRmaXJzdFZhbHVlRnJvbSxcclxuXHRcdFx0XHR9O1xyXG5cclxuXHRcdFx0XHQvLyDlpITnkIYgUHJvbWlzZSDmnoTpgKDlh73mlbDnmoTmg4XlhrVcclxuXHRcdFx0XHRpZiAob2JqLmluY2x1ZGVzKCduZXcgUHJvbWlzZScpKSB7XHJcblx0XHRcdFx0XHRyZXR1cm4gbmV3IEZ1bmN0aW9uKFxyXG5cdFx0XHRcdFx0XHQnc2FuZGJveCcsXHJcblx0XHRcdFx0XHRcdGBcclxuXHRcdFx0XHRcdFx0XHR3aXRoKHNhbmRib3gpIHtcclxuXHRcdFx0XHRcdFx0XHRcdHJldHVybiAke299O1xyXG5cdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0YCxcclxuXHRcdFx0XHRcdCkuYmluZChfdGhpcykoc2FuZGJveCk7XHJcblx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHQvLyDlpITnkIbmma7pgJrlh73mlbDlkoznrq3lpLTlh73mlbBcclxuXHRcdFx0XHRyZXR1cm4gbmV3IEZ1bmN0aW9uKFxyXG5cdFx0XHRcdFx0J3NhbmRib3gnLFxyXG5cdFx0XHRcdFx0YFxyXG5cdFx0XHRcdFx0XHR3aXRoKHNhbmRib3gpIHtcclxuXHRcdFx0XHRcdFx0XHRyZXR1cm4gKCR7b30pO1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRgLFxyXG5cdFx0XHRcdCkuYmluZChfdGhpcykoc2FuZGJveCk7XHJcblx0XHRcdH0gY2F0Y2ggKGUpIHtcclxuXHRcdFx0XHRjb25zb2xlLmVycm9yKCflh73mlbDop6PmnpDlpLHotKU6JywgZSwgJ1xcbuWOn+Wni+Wtl+espuS4sjonLCBvYmopO1xyXG5cdFx0XHRcdHJldHVybiBvYmo7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdGlmIChpc0pTT05QYXJzYWJsZShvYmopKSB7XHJcblx0XHRcdGxldCBqc29uID0gSlNPTi5wYXJzZShvYmopO1xyXG5cdFx0XHRyZXR1cm4gcGFyc2VGdW5jdGlvbnMoanNvbiwgX3RoaXMpO1xyXG5cdFx0fVxyXG5cdFx0cmV0dXJuIG9iajtcclxuXHR9XHJcblx0aWYgKEFycmF5LmlzQXJyYXkob2JqKSkge1xyXG5cdFx0cmV0dXJuIG9iai5tYXAoKGl0ZW06IGFueSkgPT4gcGFyc2VGdW5jdGlvbnMoaXRlbSwgX3RoaXMpKTtcclxuXHR9XHJcblx0aWYgKHR5cGVvZiBvYmogPT09ICdvYmplY3QnICYmIG9iaiAhPT0gbnVsbCkge1xyXG5cdFx0Y29uc3QgcmVzdWx0OiBhbnkgPSB7fTtcclxuXHRcdGZvciAoY29uc3Qga2V5IGluIG9iaikge1xyXG5cdFx0XHRpZiAob2JqLmhhc093blByb3BlcnR5KGtleSkpIHtcclxuXHRcdFx0XHRyZXN1bHRba2V5XSA9IHBhcnNlRnVuY3Rpb25zKG9ialtrZXldLCBfdGhpcyk7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdHJldHVybiByZXN1bHQ7XHJcblx0fVxyXG5cclxuXHRyZXR1cm4gb2JqO1xyXG59O1xyXG5cclxuLy8g6L6F5Yqp5Ye95pWw77ya5qOA5p+l5piv5ZCm5YyF5ZCrIFByb21pc2Ug5p6E6YCg5Ye95pWwXHJcbmNvbnN0IGNvbnRhaW5zUHJvbWlzZUNvbnN0cnVjdG9yID0gKHN0cjogc3RyaW5nKTogYm9vbGVhbiA9PiB7XHJcblx0cmV0dXJuIC9uZXdcXHMrUHJvbWlzZS8udGVzdChzdHIpO1xyXG59O1xyXG5cclxuLy8g5L+u5pS5IGNvbXBpbGVUc1RvSnMg5Ye95pWw5Lul5pu05aW95Zyw5aSE55CGIFByb21pc2VcclxuZXhwb3J0IGNvbnN0IGNvbXBpbGVUc1RvSnMgPSAodHNDb2RlOiBzdHJpbmcpOiBzdHJpbmcgPT4ge1xyXG5cdC8vIOWmguaenOaYryBQcm9taXNlIOaehOmAoOWHveaVsO+8jOS4jemcgOimgemineWkluWkhOeQhlxyXG5cdGlmIChjb250YWluc1Byb21pc2VDb25zdHJ1Y3Rvcih0c0NvZGUpKSB7XHJcblx0XHRyZXR1cm4gdHNDb2RlO1xyXG5cdH1cclxuXHJcblx0Y29uc3QgcmVzdWx0ID0gdHMudHJhbnNwaWxlTW9kdWxlKHRzQ29kZSwge1xyXG5cdFx0Y29tcGlsZXJPcHRpb25zOiB7XHJcblx0XHRcdG1vZHVsZTogdHMuTW9kdWxlS2luZC5Db21tb25KUyxcclxuXHRcdFx0dGFyZ2V0OiB0cy5TY3JpcHRUYXJnZXQuRVMyMDE1LFxyXG5cdFx0XHQvLyDlkK/nlKjlvILmraXlh73mlbDmlK/mjIFcclxuXHRcdFx0bGliOiBbJ2VzMjAxNScsICdlczIwMTUucHJvbWlzZScsICdkb20nXSxcclxuXHRcdH0sXHJcblx0fSk7XHJcblx0cmV0dXJuIHJlbW92ZVRyYWlsaW5nU2VtaWNvbG9uKHJlc3VsdC5vdXRwdXRUZXh0KTtcclxufTtcclxuXHJcbmNvbnN0IHJlbW92ZVRyYWlsaW5nU2VtaWNvbG9uID0gKGZ1bmNTdHI6IHN0cmluZyk6IHN0cmluZyA9PiB7XHJcblx0Ly8g5YWI5Y676Zmk5YmN5ZCO56m655m9XHJcblx0Y29uc3QgdHJpbW1lZCA9IGZ1bmNTdHIudHJpbSgpO1xyXG5cdC8vIOWPquabv+aNouacgOWQjuS4gOS4quWIhuWPt++8iOWmguaenOWug+S4jeWcqOiKseaLrOWPt+WGhe+8iVxyXG5cdGlmICh0cmltbWVkLmVuZHNXaXRoKCc7JykpIHtcclxuXHRcdHJldHVybiB0cmltbWVkLnNsaWNlKDAsIC0xKTtcclxuXHR9XHJcblx0cmV0dXJuIHRyaW1tZWQ7XHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgaXNKU09OUGFyc2FibGUgPSAoc3RyOiBhbnkpID0+IHtcclxuXHR0cnkge1xyXG5cdFx0SlNPTi5wYXJzZShzdHIpO1xyXG5cdFx0cmV0dXJuIHRydWU7XHJcblx0fSBjYXRjaCAoZSkge1xyXG5cdFx0Ly8gbGV0IHN0cklzT2JqID0gL1xce1tefV0qXFx9fFxcW1teXFxdXSpcXF0vLnRlc3Qoc3RyKVxyXG5cdFx0Ly8gaWYoc3RySXNPYmope1xyXG5cdFx0Ly8gXHRjb25zb2xlLmVycm9yKCdKU09OIOino+aekOWksei0pTonLCBlLCAnXFxu5Y6f5aeL5a2X56ym5LiyOicsIHN0cilcclxuXHRcdC8vIH1cclxuXHRcdHJldHVybiBmYWxzZTtcclxuXHR9XHJcbn07XHJcblxyXG4vKipcclxuICog5qC55o2u5oyH5a6a55qE6ZSu5pWw57uE6L+H5ruk5a+56LGhXHJcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmogLSDopoHov4fmu6TnmoTljp/lp4vlr7nosaFcclxuICogQHBhcmFtIHtBcnJheX0ga2V5cyAtIOmcgOimgeS/neeVmeeahOmUruaVsOe7hFxyXG4gKiBAcmV0dXJucyB7T2JqZWN0fSDov4fmu6TlkI7nmoTmlrDlr7nosaFcclxuICovXHJcbmV4cG9ydCBjb25zdCBmaWx0ZXJPYmplY3RCeUtleXMgPSAob2JqOiBhbnksIGtleXM6IHN0cmluZ1tdKSA9PiB7XHJcblx0Ly8g5Y+C5pWw5qCh6aqMXHJcblx0aWYgKHR5cGVvZiBvYmogIT09ICdvYmplY3QnIHx8IG9iaiA9PT0gbnVsbCB8fCBBcnJheS5pc0FycmF5KG9iaikpIHtcclxuXHRcdHRocm93IG5ldyBUeXBlRXJyb3IoJ+esrOS4gOS4quWPguaVsOW/hemhu+aYr+aZrumAmuWvueixoScpO1xyXG5cdH1cclxuXHJcblx0aWYgKCFBcnJheS5pc0FycmF5KGtleXMpKSB7XHJcblx0XHR0aHJvdyBuZXcgVHlwZUVycm9yKCfnrKzkuozkuKrlj4LmlbDlv4XpobvmmK/mlbDnu4QnKTtcclxuXHR9XHJcblxyXG5cdC8vIOS9v+eUqHJlZHVjZeWIm+W7uuaWsOWvueixoVxyXG5cdHJldHVybiBrZXlzLnJlZHVjZSgoYWNjOiBhbnksIGtleTogc3RyaW5nKSA9PiB7XHJcblx0XHQvLyDlj6rmnInlvZPljp/lr7nosaHmnInor6XlsZ7mgKfml7bmiY3mt7vliqDliLDmlrDlr7nosaFcclxuXHRcdGlmIChrZXkgaW4gb2JqKSB7XHJcblx0XHRcdGFjY1trZXldID0gb2JqW2tleV07XHJcblx0XHR9XHJcblx0XHRyZXR1cm4gYWNjO1xyXG5cdH0sIHt9KTtcclxufTtcclxuLyoqXHJcbiAqIOiHquWumuS5ieWHveaVsOWOu+mZpOepuuWtl+espuS4slxyXG4gKiBAcGFyYW0gYWN0XHJcbiAqIEByZXR1cm5zXHJcbiAqL1xyXG5leHBvcnQgY29uc3QgY29udmVydEFjdCA9IChhY3Q6IGFueSkgPT4ge1xyXG5cdGFjdC5mb3JFYWNoKCh2OiBhbnkpID0+IHtcclxuXHRcdGlmICh2Lmhhc093blByb3BlcnR5KCdidG5IaWRkZW4nKSAmJiB0eXBlb2Ygdi5idG5IaWRkZW4gIT0gJ2Z1bmN0aW9uJykge1xyXG5cdFx0XHRkZWxldGUgdi5idG5IaWRkZW47XHJcblx0XHR9XHJcblx0XHRpZiAodi5oYXNPd25Qcm9wZXJ0eSgnYnRuRGlzYWJsZWQnKSAmJiB0eXBlb2Ygdi5idG5EaXNhYmxlZCAhPSAnZnVuY3Rpb24nKSB7XHJcblx0XHRcdGRlbGV0ZSB2LmJ0bkRpc2FibGVkO1xyXG5cdFx0fVxyXG5cdFx0aWYgKHYuaGFzT3duUHJvcGVydHkoJ29uQ2xpY2snKSAmJiB0eXBlb2Ygdi5vbkNsaWNrICE9ICdmdW5jdGlvbicpIHtcclxuXHRcdFx0ZGVsZXRlIHYub25DbGljaztcclxuXHRcdH1cclxuXHR9KTtcclxuXHRyZXR1cm4gYWN0O1xyXG59O1xyXG5cclxuLyoqXHJcbiAqIGZvcm1wYWdlIOmAmueUqGNvbnRlbnTlh73mlbDovaznp7tcclxuICogQHBhcmFtIGNvbnRlbnRcclxuICogQHBhcmFtIHRoaXNBcmdcclxuICovXHJcbmV4cG9ydCBjb25zdCBjaGFuZ2VDb250ZW50ID0gKGNvbnRlbnQ6IGFueSwgdGhpc0FyZzogYW55KSA9PiB7XHJcblx0Ly8gQHRzLWlnbm9yZVxyXG5cdGNvbnN0IGlzSTE4biA9IHdpbmRvdy5hcHBJc0kxOG47XHJcblx0Y29udGVudCA9IHBhcnNlRnVuY3Rpb25zKGNvbnRlbnQsIHRoaXNBcmcpO1xyXG5cdHRoaXNBcmcucGFnZUNvbnRlbnQgPSBjb250ZW50O1xyXG5cdGxldCB7IGdyaWRMaXN0LCBocmVmQnRuTGlzdCwgZ2V0UHJtLCBncm91cHMsIHN0YXR1c0tleSwgc3RhdHVzLCBzdGF0dXNTdGVwcywgc3RhdHVzQ29uZiA9IG51bGwgfSA9IGNvbnRlbnQ7XHJcblx0aWYgKHN0YXR1c0tleSkge1xyXG5cdFx0dGhpc0FyZy5zdGF0dXNLZXkgPSBzdGF0dXNLZXk7XHJcblx0XHRzdGF0dXNTdGVwcy5mb3JFYWNoKChpdGVtOiBhbnkpID0+IHtcclxuXHRcdFx0aWYgKGlzSTE4biAmJiAoIWl0ZW0uaGFzT3duUHJvcGVydHkoJ2kxOG5LZXknKSB8fCBpdGVtLmkxOG5LZXkgPT0gJycpKSB7XHJcblx0XHRcdFx0aXRlbS5pMThuS2V5ID0gYHRhYmxlcy4ke2dldFBybS5tb2RlbE5hbWV9LiR7c3RhdHVzS2V5fSR7aXRlbS52YWx1ZX1gO1xyXG5cdFx0XHR9XHJcblx0XHR9KTtcclxuXHRcdHRoaXNBcmcuc3RlcHMgPSBzdGF0dXNTdGVwcztcclxuXHRcdHN0YXR1c0NvbmYgJiYgKHRoaXNBcmcuc3RhdHVzQ29uZiA9IHN0YXR1c0NvbmYpO1xyXG5cdH1cclxuXHJcblx0dGhpc0FyZy5hY3Rpb25zID0gY29udmVydEFjdChjb250ZW50LmFjdGlvbnMpO1xyXG5cdGNvbnRlbnQuZm9ybURpc2FibGVkICYmICh0aGlzQXJnLmZvcm1EaXNhYmxlZCA9IGNvbnRlbnQuZm9ybURpc2FibGVkKTtcclxuXHR0aGlzQXJnLmdldFBybSA9IGdldFBybTtcclxuXHR0aGlzQXJnLmdldFBybS5vcmdGaWVsZCA9IGNvbnRlbnQub3JnRmllbGQgfHwgJyc7XHJcblx0dGhpc0FyZy5ncmlkcyA9IFtdO1xyXG5cdGxldCBmaXRlclByZWxvYWRzOiBhbnlbXSA9IFtdO1xyXG5cclxuXHRjb252ZXJ0Rm9ybSh0aGlzQXJnLCBncm91cHMsIGNvbnRlbnQuc291cmNlRGF0YSk7XHJcblx0Y29udmVydEdyaWQodGhpc0FyZywgZ3JpZExpc3QsIGZpdGVyUHJlbG9hZHMpO1xyXG5cclxuXHR0aGlzQXJnLmZvcm1EZXRhaWwgPSBjb250ZW50LmZvcm1EZXRhaWw7XHJcblx0dGhpc0FyZy5zYXZlRnVuYyA9IGNvbnRlbnQuc2F2ZUZ1bmM7XHJcblx0dGhpc0FyZy5pc0xvZyA9IGNvbnRlbnQuc291cmNlRGF0YS5tb2RlbC5sb2c7XHJcblx0dGhpc0FyZy5nZXRQcm1bJ2dldExvZyddID0gY29udGVudC5zb3VyY2VEYXRhLm1vZGVsLmxvZztcclxuXHR0aGlzQXJnLmdldFBybVsnZml0ZXJQcmVsb2FkcyddID0gZml0ZXJQcmVsb2FkcztcclxuXHR0aGlzQXJnLmhyZWZCdG5MaXN0ID0gaHJlZkJ0bkxpc3Q7XHJcblx0dGhpc0FyZy5ydW50aW1lQ29udGV4dEluaXQgPSBjb250ZW50LnJ1bnRpbWVDb250ZXh0SW5pdDtcclxuXHRleGVjdXRlUnVudGltZUNvbnRleHRJbml0KHRoaXNBcmcpO1xyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IGV4ZWN1dGVSdW50aW1lQ29udGV4dEluaXQgPSAodGhpc0FyZzogYW55KSA9PiB7XHJcblx0aWYgKHR5cGVvZiB0aGlzQXJnLnJ1bnRpbWVDb250ZXh0SW5pdCAhPT0gJ2Z1bmN0aW9uJykge1xyXG5cdFx0cmV0dXJuO1xyXG5cdH1cclxuXHRjb25zdCBjb250ZXh0ID0ge1xyXG5cdFx0Y29tcG9uZW50OiB0aGlzQXJnLFxyXG5cdFx0aHR0cDogdGhpc0FyZy5odHRwLFxyXG5cdFx0cm91dGU6IHRoaXNBcmcucm91dGUsXHJcblx0XHRyb3V0ZXI6IHRoaXNBcmcucm91dGVyLFxyXG5cdFx0cnVudGltZUNvbnRleHQ6IHRoaXNBcmcucnVudGltZUNvbnRleHQsXHJcblx0fTtcclxuXHRjb25zdCByZXN1bHQgPSB0aGlzQXJnLnJ1bnRpbWVDb250ZXh0SW5pdChjb250ZXh0KTtcclxuXHRyZXNvbHZlUnVudGltZUNvbnRleHRSZXN1bHQodGhpc0FyZywgcmVzdWx0KTtcclxufTtcclxuXHJcbmNvbnN0IHJlc29sdmVSdW50aW1lQ29udGV4dFJlc3VsdCA9IGFzeW5jICh0aGlzQXJnOiBhbnksIHJlc3VsdDogYW55KSA9PiB7XHJcblx0bGV0IHJlc29sdmVkID0gcmVzdWx0O1xyXG5cdGlmIChpc09ic2VydmFibGUocmVzdWx0KSkge1xyXG5cdFx0cmVzb2x2ZWQgPSBhd2FpdCBmaXJzdFZhbHVlRnJvbShyZXN1bHQpO1xyXG5cdH0gZWxzZSBpZiAocmVzdWx0IGluc3RhbmNlb2YgUHJvbWlzZSkge1xyXG5cdFx0cmVzb2x2ZWQgPSBhd2FpdCByZXN1bHQ7XHJcblx0fVxyXG5cdGlmIChyZXNvbHZlZCAmJiB0eXBlb2YgcmVzb2x2ZWQgPT09ICdvYmplY3QnICYmICFBcnJheS5pc0FycmF5KHJlc29sdmVkKSkge1xyXG5cdFx0dGhpc0FyZy5ydW50aW1lQ29udGV4dCA9IHtcclxuXHRcdFx0Li4uKHRoaXNBcmcucnVudGltZUNvbnRleHQgfHwge30pLFxyXG5cdFx0XHQuLi5yZXNvbHZlZCxcclxuXHRcdH07XHJcblx0fSBlbHNlIGlmIChyZXNvbHZlZCAhPT0gdW5kZWZpbmVkKSB7XHJcblx0XHR0aGlzQXJnLnJ1bnRpbWVDb250ZXh0ID0ge1xyXG5cdFx0XHQuLi4odGhpc0FyZy5ydW50aW1lQ29udGV4dCB8fCB7fSksXHJcblx0XHRcdHZhbHVlOiByZXNvbHZlZCxcclxuXHRcdH07XHJcblx0fSBlbHNlIHtcclxuXHRcdHRoaXNBcmcucnVudGltZUNvbnRleHQgPSB7fTtcclxuXHR9XHJcblx0dGhpc0FyZy5jZHI/Lm1hcmtGb3JDaGVjaz8uKCk7XHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgY2FsY1Jvd1NwYW4gPSAocGFyYW1zOiBhbnksIGZpZWxkPzogc3RyaW5nKSA9PiB7XG5cdGZpZWxkID0gZmllbGQgfHwgcGFyYW1zLmNvbERlZi5maWVsZDtcclxuXHRjb25zdCBjdXJyZW50VmFsdWUgPSBwYXJhbXMuZGF0YVtmaWVsZCFdO1xyXG5cdGNvbnN0IGN1cnJlbnRSb3dJbmRleCA9IHBhcmFtcy5ub2RlLnJvd0luZGV4O1xyXG5cclxuXHRsZXQgcm93U3BhbiA9IDE7XHJcblxyXG5cdGZvciAobGV0IGkgPSBjdXJyZW50Um93SW5kZXggKyAxOyBpIDwgcGFyYW1zLmFwaS5nZXREaXNwbGF5ZWRSb3dDb3VudCgpOyBpKyspIHtcclxuXHRcdGNvbnN0IG5vZGUgPSBwYXJhbXMuYXBpLmdldERpc3BsYXllZFJvd0F0SW5kZXgoaSk7XHJcblx0XHRpZiAobm9kZS5kYXRhW2ZpZWxkIV0gPT09IGN1cnJlbnRWYWx1ZSkge1xyXG5cdFx0XHRyb3dTcGFuKys7XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHRicmVhaztcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdGlmIChjdXJyZW50Um93SW5kZXggPiAwICYmIHBhcmFtcy5hcGkuZ2V0RGlzcGxheWVkUm93QXRJbmRleChjdXJyZW50Um93SW5kZXggLSAxKS5kYXRhW2ZpZWxkIV0gPT09IGN1cnJlbnRWYWx1ZSkge1xyXG5cdFx0cmV0dXJuIDE7XHJcblx0fVxyXG5cdHJldHVybiByb3dTcGFuO1xufTtcblxuY29uc3QgYXBwZW5kQ2VsbENsYXNzID0gKGNlbGxDbGFzczogYW55LCBjbGFzc05hbWU6IHN0cmluZykgPT4ge1xuXHRpZiAoQXJyYXkuaXNBcnJheShjZWxsQ2xhc3MpKSB7XG5cdFx0cmV0dXJuIGNlbGxDbGFzcy5pbmNsdWRlcyhjbGFzc05hbWUpID8gY2VsbENsYXNzIDogWy4uLmNlbGxDbGFzcywgY2xhc3NOYW1lXTtcblx0fVxuXHRpZiAodHlwZW9mIGNlbGxDbGFzcyA9PT0gJ3N0cmluZycgJiYgY2VsbENsYXNzLmxlbmd0aCA+IDApIHtcblx0XHRyZXR1cm4gY2VsbENsYXNzLnNwbGl0KC9cXHMrLykuaW5jbHVkZXMoY2xhc3NOYW1lKSA/IGNlbGxDbGFzcyA6IGAke2NlbGxDbGFzc30gJHtjbGFzc05hbWV9YDtcblx0fVxuXHRyZXR1cm4gY2xhc3NOYW1lO1xufTtcblxuY29uc3Qgc3VwcHJlc3NUZXh0YXJlYVNoaWZ0RW50ZXIgPSAoY29sOiBhbnkpID0+IHtcblx0Y29uc3QgcmF3U3VwcHJlc3NLZXlib2FyZEV2ZW50ID0gY29sLnN1cHByZXNzS2V5Ym9hcmRFdmVudDtcblx0Y29sLnN1cHByZXNzS2V5Ym9hcmRFdmVudCA9IChwYXJhbXM6IGFueSkgPT4ge1xuXHRcdGlmICh0eXBlb2YgcmF3U3VwcHJlc3NLZXlib2FyZEV2ZW50ID09PSAnZnVuY3Rpb24nICYmIHJhd1N1cHByZXNzS2V5Ym9hcmRFdmVudChwYXJhbXMpKSB7XG5cdFx0XHRyZXR1cm4gdHJ1ZTtcblx0XHR9XG5cdFx0Y29uc3QgZXZlbnQgPSBwYXJhbXM/LmV2ZW50O1xuXHRcdHJldHVybiAhIXBhcmFtcz8uZWRpdGluZyAmJiBldmVudD8ua2V5ID09PSAnRW50ZXInICYmICEhZXZlbnQ/LnNoaWZ0S2V5O1xuXHR9O1xufTtcblxuZXhwb3J0IGNvbnN0IGNvbnZlcnRDb2wgPSAob3B0aW9uczogYW55LCBjb2w6IGFueVtdLCBhdXRoTGV2ZWw6IG51bWJlciwgZHJhZ1NvcnQ/OiBzdHJpbmcpID0+IHtcblx0Ly8gQHRzLWlnbm9yZVxyXG5cdGNvbnN0IGlzSTE4biA9IHdpbmRvdy5hcHBJc0kxOG47XHJcblx0Ly8gY29uc29sZS5sb2coJ2lzSTE4bi0tLS0tJyxpc0kxOG4pXHJcblx0Y29sLmZvckVhY2goKGl0ZW06IGFueSwgaW5kZXg6IG51bWJlcikgPT4ge1xyXG5cdFx0aXRlbS5oaWRlID0gaXRlbS5oaWRlQ29sO1xyXG5cdFx0aWYgKGF1dGhMZXZlbCA8IDMpIHtcclxuXHRcdFx0aXRlbS5lZGl0YWJsZSA9IGZhbHNlO1xyXG5cdFx0fVxyXG5cdFx0aWYgKGRyYWdTb3J0ICYmIGluZGV4ID09PSAwKSB7XHJcblx0XHRcdGl0ZW0ucm93RHJhZyA9IHRydWU7XHJcblx0XHR9XHJcblx0XHRpZiAoaXNJMThuICYmICghaXRlbS5oYXNPd25Qcm9wZXJ0eSgnaTE4bktleScpIHx8IGl0ZW0uaTE4bktleSA9PSAnJykpIHtcblx0XHRcdGl0ZW0uaTE4bktleSA9IGB0YWJsZXMuJHtvcHRpb25zLm1vZGVsTmFtZX0uJHtpdGVtLmZpZWxkfWA7XG5cdFx0fVxuXHRcdGlmIChpdGVtLmhhc093blByb3BlcnR5KCd0ZXh0V3JhcCcpICYmIGl0ZW0udGV4dFdyYXAgJiYgaXRlbS5jZWxsRWRpdG9yICE9PSAnY2VsbEVkaXRUZXh0YXJlYUNvbXBvbmVudCcpIHtcblx0XHRcdGl0ZW0uYXV0b0hlaWdodCA9IHRydWU7XG5cdFx0XHRpdGVtLmNlbGxDbGFzcyA9ICdjZWxsLXdyYXAtdGV4dCc7XG5cdFx0fVxuXHRcdGlmIChpdGVtLmNlbGxFZGl0b3IgPT09ICdjZWxsRWRpdFRleHRhcmVhQ29tcG9uZW50Jykge1xuXHRcdFx0aXRlbS53cmFwVGV4dCA9IHRydWU7XG5cdFx0XHRpdGVtLmF1dG9IZWlnaHQgPSB0cnVlO1xuXHRcdFx0aXRlbS5jZWxsQ2xhc3MgPSBhcHBlbmRDZWxsQ2xhc3MoaXRlbS5jZWxsQ2xhc3MsICdjZWxsLXRleHRhcmVhLXdyYXAtdGV4dCcpO1xuXHRcdFx0c3VwcHJlc3NUZXh0YXJlYVNoaWZ0RW50ZXIoaXRlbSk7XG5cdFx0fVxuXHRcdGlmIChpdGVtLmZpZWxkVHlwZSA9PSAnVkFSQ0hBUicpIHtcblx0XHRcdGl0ZW0uY2VsbERhdGFUeXBlID0gZmFsc2U7XG5cdFx0fVxuXHRcdGl0ZW0uaGVhZGVyVmFsdWVHZXR0ZXIgPSB3cmFwSGVhZGVyVmFsdWVHZXR0ZXIoaXRlbS5oZWFkZXJWYWx1ZUdldHRlciwgaXRlbSk7XHJcblx0XHRpZiAoaXRlbS5yb3dTcGFuQ29uZikge1xyXG5cdFx0XHRsZXQgcm93U3BhbiA9IHtcclxuXHRcdFx0XHRyb3dTcGFuOiAocGFyYW1zOiBhbnkpID0+IGNhbGNSb3dTcGFuKHBhcmFtcyksXHJcblx0XHRcdFx0Y2VsbFJlbmRlcmVyOiAncm93U3BhblJlbmRlcmVyJyxcclxuXHRcdFx0XHRjZWxsUmVuZGVyZXJQYXJhbXM6IHtcclxuXHRcdFx0XHRcdHJvd1NwYW46IChwYXJhbXM6IGFueSkgPT4gY2FsY1Jvd1NwYW4ocGFyYW1zKSxcclxuXHRcdFx0XHR9LFxyXG5cdFx0XHR9O1xyXG5cdFx0XHRPYmplY3QuYXNzaWduKGl0ZW0sIHJvd1NwYW4pO1xyXG5cdFx0XHRvcHRpb25zLnN1cHByZXNzUm93VHJhbnNmb3JtID0gdHJ1ZTtcclxuXHRcdFx0b3B0aW9ucy5yb3dDbGFzcyA9ICdyb3dTcGFuJztcclxuXHRcdH1cclxuXHRcdC8vIGlmKGl0ZW0uZWRpdGFibGUpe1xyXG5cdFx0Ly8gXHRpdGVtLmhlYWRlckNsYXNzID0gaXRlbS5oYXNPd25Qcm9wZXJ0eSgnaGVhZGVyQ2xhc3MnKVxyXG5cdFx0Ly8gXHRcdD8gYCR7aXRlbS5oZWFkZXJDbGFzc30gZWRpdGFibGUtY29sdW1uLWhlYWRlcmBcclxuXHRcdC8vIFx0XHQ6ICdlZGl0YWJsZS1jb2x1bW4taGVhZGVyJ1xyXG5cdFx0Ly8gfVxyXG5cdH0pO1xyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IGdyaWRPcHRpb25zSG9va2VyID0gKGdyaWRPcHRpb25zOiBhbnkpID0+IHtcclxuXHRncmlkT3B0aW9ucz8uY29sdW1uRGVmcz8uZm9yRWFjaCgoY29sOiBhbnkpID0+IHtcclxuXHRcdGlmIChjb2wuaGlkZUNvbCkge1xyXG5cdFx0XHRjb2wuaGlkZSA9IGNvbC5oaWRlQ29sO1xyXG5cdFx0XHRkZWxldGUgY29sLmhpZGVDb2w7XHJcblx0XHR9XHJcblx0XHQvLyBAdHMtaWdub3JlXHJcblx0XHRjb25zdCBpc0kxOG4gPSB3aW5kb3cuYXBwSXNJMThuO1xyXG5cdFx0aWYgKGlzSTE4biAmJiAoIWNvbC5oYXNPd25Qcm9wZXJ0eSgnaTE4bktleScpIHx8IGNvbC5pMThuS2V5ID09ICcnKSkge1xuXHRcdFx0Y29sLmkxOG5LZXkgPSBgdGFibGVzLiR7Z3JpZE9wdGlvbnMubW9kZWxOYW1lfS4ke2NvbC5maWVsZH1gO1xuXHRcdH1cblx0XHRpZiAoY29sLmhhc093blByb3BlcnR5KCd0ZXh0V3JhcCcpICYmIGNvbC50ZXh0V3JhcCAmJiBjb2wuY2VsbEVkaXRvciAhPT0gJ2NlbGxFZGl0VGV4dGFyZWFDb21wb25lbnQnKSB7XG5cdFx0XHRjb2wuYXV0b0hlaWdodCA9IHRydWU7XG5cdFx0XHRjb2wuY2VsbENsYXNzID0gJ2NlbGwtd3JhcC10ZXh0Jztcblx0XHR9XG5cdFx0aWYgKGNvbC5jZWxsRWRpdG9yID09PSAnY2VsbEVkaXRUZXh0YXJlYUNvbXBvbmVudCcpIHtcblx0XHRcdGNvbC53cmFwVGV4dCA9IHRydWU7XG5cdFx0XHRjb2wuYXV0b0hlaWdodCA9IHRydWU7XG5cdFx0XHRjb2wuY2VsbENsYXNzID0gYXBwZW5kQ2VsbENsYXNzKGNvbC5jZWxsQ2xhc3MsICdjZWxsLXRleHRhcmVhLXdyYXAtdGV4dCcpO1xuXHRcdFx0c3VwcHJlc3NUZXh0YXJlYVNoaWZ0RW50ZXIoY29sKTtcblx0XHR9XG5cdFx0Y29sLmhlYWRlclZhbHVlR2V0dGVyID0gd3JhcEhlYWRlclZhbHVlR2V0dGVyKGNvbC5oZWFkZXJWYWx1ZUdldHRlciwgY29sKTtcblx0XHRpZiAoY29sLnJvd1NwYW5Db25mKSB7XHJcblx0XHRcdGxldCByb3dTcGFuID0ge1xyXG5cdFx0XHRcdHJvd1NwYW46IChwYXJhbXM6IGFueSkgPT4gY2FsY1Jvd1NwYW4ocGFyYW1zKSxcclxuXHRcdFx0XHRjZWxsUmVuZGVyZXI6ICdyb3dTcGFuUmVuZGVyZXInLFxyXG5cdFx0XHRcdGNlbGxSZW5kZXJlclBhcmFtczoge1xyXG5cdFx0XHRcdFx0cm93U3BhbjogKHBhcmFtczogYW55KSA9PiBjYWxjUm93U3BhbihwYXJhbXMpLFxyXG5cdFx0XHRcdH0sXHJcblx0XHRcdH07XHJcblx0XHRcdE9iamVjdC5hc3NpZ24oY29sLCByb3dTcGFuKTtcclxuXHRcdFx0Z3JpZE9wdGlvbnMuc3VwcHJlc3NSb3dUcmFuc2Zvcm0gPSB0cnVlO1xyXG5cdFx0XHRncmlkT3B0aW9ucy5yb3dDbGFzcyA9ICdyb3dTcGFuJztcclxuXHRcdH1cclxuXHR9KTtcclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCB3cmFwSGVhZGVyVmFsdWVHZXR0ZXIgPSAoZ2V0dGVyOiBhbnksIGNvbERlZjogYW55KSA9PiB7XHJcblx0aWYgKHR5cGVvZiBnZXR0ZXIgIT09ICdmdW5jdGlvbicpIHtcclxuXHRcdHJldHVybiBnZXR0ZXI7XHJcblx0fVxyXG5cdHJldHVybiAocGFyYW1zOiBhbnkpID0+IHtcclxuXHRcdHRyeSB7XHJcblx0XHRcdGNvbnN0IHZhbHVlID0gZ2V0dGVyKHBhcmFtcyk7XHJcblx0XHRcdGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkIHx8IHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSAnJykge1xyXG5cdFx0XHRcdHJldHVybiByZXNvbHZlSGVhZGVyRmFsbGJhY2socGFyYW1zPy5jb2xEZWYgfHwgY29sRGVmKTtcclxuXHRcdFx0fVxyXG5cdFx0XHRyZXR1cm4gdmFsdWU7XHJcblx0XHR9IGNhdGNoIChlcnJvcikge1xyXG5cdFx0XHRjb25zb2xlLmVycm9yKCdoZWFkZXJWYWx1ZUdldHRlciDmiafooYzlpLHotKU6JywgZXJyb3IsIGNvbERlZik7XHJcblx0XHRcdHJldHVybiByZXNvbHZlSGVhZGVyRmFsbGJhY2socGFyYW1zPy5jb2xEZWYgfHwgY29sRGVmKTtcclxuXHRcdH1cclxuXHR9O1xyXG59O1xyXG5cclxuY29uc3QgcmVzb2x2ZUhlYWRlckZhbGxiYWNrID0gKGNvbERlZjogYW55KSA9PiB7XHJcblx0cmV0dXJuIGNvbERlZj8uaGVhZGVyTmFtZSB8fCBjb2xEZWY/LmZpZWxkIHx8ICcnO1xyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IGNvbnZlcnRHcmlkID0gKHRoaXNBcmc6IGFueSwgZ3JpZExpc3Q6IGFueSwgZml0ZXJQcmVsb2FkczogYW55KSA9PiB7XHJcblx0Z3JpZExpc3QuZm9yRWFjaChhc3luYyAoaXRlbTogYW55KSA9PiB7XHJcblx0XHQhaXRlbS50eXBlICYmIChpdGVtLnR5cGUgPSAnZ3JpZCcpO1xyXG5cdFx0bGV0IGdyaWQ6IGFueSA9IHsgdHlwZTogaXRlbS50eXBlIH07XHJcblx0XHRpZiAoaXRlbS5maXRlclByZWxvYWRzIGluc3RhbmNlb2YgQXJyYXkpIHtcclxuXHRcdFx0Zml0ZXJQcmVsb2Fkcy5wdXNoKC4uLml0ZW0uZml0ZXJQcmVsb2Fkcyk7XHJcblx0XHR9XHJcblx0XHRpZiAoaXRlbS50eXBlID09ICdncmlkJykge1xyXG5cdFx0XHRsZXQge1xyXG5cdFx0XHRcdGdyaWRPcHRpb25zOiB7IGNvbHVtbkRlZnMsIC4uLnJlc3RHcmlkT3B0aW9ucyB9LFxyXG5cdFx0XHRcdHN1YlRhYmxlU291cmNlLFxyXG5cdFx0XHRcdHN1YkRhdGFLZXksXHJcblx0XHRcdFx0dGl0bGUsXHJcblx0XHRcdFx0c2VsZWN0RGF0YUNiLFxyXG5cdFx0XHRcdGZrLFxyXG5cdFx0XHRcdG1haW5GaWVsZCxcclxuXHRcdFx0XHR1bmlxdWVGaWVsZCxcclxuXHRcdFx0XHRhZGREYXRhQ2IsXHJcblx0XHRcdFx0ZGVsZXRlRnVuYyxcclxuXHRcdFx0XHRkZWxldGVIaWRkZW4sXHJcblx0XHRcdFx0c2hvd0RlbGV0ZSA9IHRydWUsXHJcblx0XHRcdFx0YWRkSGlkZGVuLFxyXG5cdFx0XHRcdHNjcm9sbEhlaWdodCxcclxuXHRcdFx0XHRkcmFnU29ydCxcclxuXHRcdFx0XHRzZWxlY3Rpb25Nb2RlLFxyXG5cdFx0XHRcdGlzUm93U2VsZWN0YWJsZSxcclxuXHRcdFx0XHRhZGRTb3J0LFxyXG5cdFx0XHRcdHJlZmVyZW5jZSxcclxuXHRcdFx0XHRzbG90S2V5LFxyXG5cdFx0XHRcdHN1YlNhdmUsXHJcblx0XHRcdFx0Z3JpZEN1c3RvbURpc2FibGVkXHJcblx0XHRcdH0gPSBpdGVtO1xyXG5cdFx0XHRncmlkID0geyBzdWJUYWJsZVNvdXJjZSwgc3ViRGF0YUtleSwgdGl0bGUsIHNob3dEZWxldGUsIHNsb3RLZXksIHN1YlNhdmUsIGRlbGV0ZUZ1bmMsIGRlbGV0ZUhpZGRlbiwgYWRkSGlkZGVuLCBncmlkQ3VzdG9tRGlzYWJsZWQsIC4uLmdyaWQgfTtcclxuXHRcdFx0bGV0IGdyaWRPcHRpb25zID0ge1xyXG5cdFx0XHRcdC4uLnJlc3RHcmlkT3B0aW9ucyxcclxuXHRcdFx0XHRmayxcclxuXHRcdFx0XHRzdWJUYWJsZVNvdXJjZSxcclxuXHRcdFx0XHRzdWJEYXRhS2V5LFxyXG5cdFx0XHRcdG1haW5GaWVsZCxcclxuXHRcdFx0XHRyZWZlcmVuY2UsXHJcblx0XHRcdH07XHJcblx0XHRcdC8vIEB0cy1pZ25vcmVcclxuXHRcdFx0aWYgKHdpbmRvdy5hcHBJc0kxOG4gJiYgKCFpdGVtLmhhc093blByb3BlcnR5KCdpMThuS2V5JykgfHwgaXRlbS5pMThuS2V5ID09ICcnKSkge1xyXG5cdFx0XHRcdGdyaWQuaTE4bktleSA9IGB0YWJsZXMuJHt0aGlzQXJnLmdldFBybS5tb2RlbE5hbWV9LiR7c3ViRGF0YUtleX1gO1xyXG5cdFx0XHR9XHJcblx0XHRcdGlmIChncmlkT3B0aW9ucy5yb3dNb2RlbFR5cGUgPT0gJ2NsaWVudFNpZGUnKSB7XHJcblx0XHRcdFx0Z3JpZE9wdGlvbnMuc3VwcHJlc3NSb3dWaXJ0dWFsaXNhdGlvbiA9IHRydWU7XHJcblx0XHRcdH1cclxuXHRcdFx0aWYgKHNjcm9sbEhlaWdodCkge1xyXG5cdFx0XHRcdGdyaWRPcHRpb25zLnNjcm9sbEhlaWdodCA9IHNjcm9sbEhlaWdodDtcclxuXHRcdFx0fVxyXG5cdFx0XHRpZiAoZHJhZ1NvcnQpIHtcclxuXHRcdFx0XHRncmlkT3B0aW9ucy5yb3dEcmFnTWFuYWdlZCA9IHRydWU7XHJcblx0XHRcdFx0Z3JpZE9wdGlvbnMuZHJhZ1NvcnQgPSBkcmFnU29ydDtcclxuXHRcdFx0fVxyXG5cdFx0XHRpZiAoc2VsZWN0aW9uTW9kZSkge1xyXG5cdFx0XHRcdGdyaWRPcHRpb25zLnNlbGVjdGlvbk1vZGUgPSBzZWxlY3Rpb25Nb2RlO1xyXG5cdFx0XHRcdGlmIChzZWxlY3Rpb25Nb2RlICE9ICdub25lJykge1xyXG5cdFx0XHRcdFx0Z3JpZE9wdGlvbnMucm93U2VsZWN0aW9uID0ge1xyXG5cdFx0XHRcdFx0XHRtb2RlOiBzZWxlY3Rpb25Nb2RlID09ICdzaW5nbGUnID8gJ3NpbmdsZVJvdycgOiAnbXVsdGlSb3cnLFxyXG5cdFx0XHRcdFx0XHRpc1Jvd1NlbGVjdGFibGU6IGlzUm93U2VsZWN0YWJsZSA/IGlzUm93U2VsZWN0YWJsZSA6IG51bGwsXHJcblx0XHRcdFx0XHR9O1xyXG5cdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRncmlkT3B0aW9ucy5yb3dTZWxlY3Rpb24gPSB1bmRlZmluZWQ7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHRcdGNvbnZlcnRDb2woZ3JpZE9wdGlvbnMsIGNvbHVtbkRlZnMsIHRoaXNBcmcuYXV0aExldmVsLCBkcmFnU29ydCk7XHJcblx0XHRcdGdyaWRPcHRpb25zLmNvbHVtbkRlZnMgPSBjb2x1bW5EZWZzO1xyXG5cdFx0XHRpZiAoc3ViVGFibGVTb3VyY2UgPT09ICdzZWxlY3QnICYmIGl0ZW0uc2VsZWN0TW9kZWxDb2RlKSB7XHJcblx0XHRcdFx0dGhpc0FyZy53ZWJnZXQoeyBjb2RlOiBpdGVtLnNlbGVjdE1vZGVsQ29kZSB9KS5zdWJzY3JpYmUoKHJlczogYW55KSA9PiB7XHJcblx0XHRcdFx0XHRsZXQgc2VsZWN0Q29udGVudCA9IHBhcnNlRnVuY3Rpb25zKEpTT04ucGFyc2UocmVzLmNvbnRlbnQpLCB0aGlzQXJnKTtcclxuXHRcdFx0XHRcdGdyaWQuc2VsZWN0T3B0aW9ucyA9IHNlbGVjdENvbnRlbnQ/LmdyaWRPcHRpb25zO1xyXG5cdFx0XHRcdFx0Z3JpZC5zZWxlY3RPcHRpb25zLnJvd01vZGVsVHlwZSA9IGdyaWQuc2VsZWN0T3B0aW9ucy5yb3dNb2RlbFR5cGUgfHwgJ3NlcnZlclNpZGUnO1xyXG5cdFx0XHRcdFx0aWYgKGdyaWQuc2VsZWN0T3B0aW9ucy5yb3dNb2RlbFR5cGUgPT0gJ3NlcnZlclNpZGUnKSB7XHJcblx0XHRcdFx0XHRcdGdyaWQuc2VsZWN0T3B0aW9ucy5zZXJ2ZXJGdW5jID0gZ3JpZC5zZWxlY3RPcHRpb25zLnNlcnZlckZ1bmMgfHwgdGhpc0FyZy53ZWJfc2VhcmNoLmJpbmQodGhpc0FyZyk7XHJcblx0XHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0XHRncmlkLnNlbGVjdE9wdGlvbnMuY2xpZW50RnVuYyA9IGdyaWQuc2VsZWN0T3B0aW9ucy5jbGllbnRGdW5jIHx8IHRoaXNBcmcud2ViX3NlYXJjaC5iaW5kKHRoaXNBcmcpO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0Z3JpZC51bmlxdWVGaWVsZCA9IHVuaXF1ZUZpZWxkO1xyXG5cdFx0XHRcdFx0Z3JpZC5zZWxlY3REYXRhQ2IgPSBzZWxlY3REYXRhQ2I7XHJcblx0XHRcdFx0XHRncmlkLnNlbGVjdE9wdGlvbnMuc2Nyb2xsSGVpZ2h0ID0gJzMwMHB4JztcclxuXHRcdFx0XHRcdGdyaWQuc2VsZWN0T3B0aW9ucy5zZWFyY2hQcm0gPSBzZWxlY3RDb250ZW50LnNlYXJjaFBybTtcclxuXHRcdFx0XHRcdGdyaWQuc2VsZWN0TW9kZWxDb2RlID0gaXRlbS5zZWxlY3RNb2RlbENvZGU7XHJcblx0XHRcdFx0XHRjb252ZXJ0Q29sKGdyaWQuc2VsZWN0T3B0aW9ucywgZ3JpZC5zZWxlY3RPcHRpb25zLmNvbHVtbkRlZnMhLCAxKTtcclxuXHRcdFx0XHR9KTtcclxuXHRcdFx0XHRncmlkLnNlYXJjaFBybSA9IHsgLi4udGhpc0FyZy5zZWFyY2hQcm0gfTtcclxuXHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRhZGREYXRhQ2IgJiYgKGdyaWRPcHRpb25zLmFkZERhdGFDYiA9IGFkZERhdGFDYik7XHJcblx0XHRcdH1cclxuXHRcdFx0Z3JpZC5ncmlkT3B0aW9ucyA9IGdyaWRPcHRpb25zO1xyXG5cdFx0XHRhZGRTb3J0ICYmIChncmlkLmFkZFNvcnQgPSBhZGRTb3J0KTtcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdGl0ZW0uaW50ZXJhY3RpdmVMYWJlbCA9IHRydWU7XHJcblx0XHRcdGdyaWQgPSB7XHJcblx0XHRcdFx0Li4uaXRlbSxcclxuXHRcdFx0fTtcclxuXHRcdFx0Z3JpZC5mb3JtID0gbmV3IEZvcm1Hcm91cCh7fSk7XHJcblx0XHR9XHJcblx0XHR0aGlzQXJnLmdyaWRzLnB1c2goZ3JpZCk7XHJcblx0fSk7XHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgY29udmVydEZvcm0gPSAodGhpc0FyZzogYW55LCBncm91cEFycjogYW55LCBzb3VyY2VEYXRhOiBhbnkpID0+IHtcclxuXHRncm91cEFyci5mb3JFYWNoKChpdGVtOiBhbnkpID0+IHtcclxuXHRcdGlmICh0aGlzQXJnLmF1dGhMZXZlbCA8IDMpIHtcclxuXHRcdFx0aXRlbVtmb3JtVHlwZVRvUHJvcHNbaXRlbS50eXBlXV0uZGlzYWJsZWQgPSB0cnVlO1xyXG5cdFx0fVxyXG5cdH0pO1xyXG5cdHRoaXNBcmcuZm9ybU9wdGlvbnMgPSB7XHJcblx0XHRmaWVsZHM6IFtcclxuXHRcdFx0e1xyXG5cdFx0XHRcdGdyb3VwQ2xhc3M6ICdmbGV4IGZsZXgtcm93IGZsZXgtd3JhcCcsXHJcblx0XHRcdFx0Z3JvdXA6IGdyb3VwQXJyLFxyXG5cdFx0XHR9LFxyXG5cdFx0XSxcclxuXHRcdGZvcm06IG5ldyBGb3JtR3JvdXAoe30pLFxyXG5cdFx0bWFpbkZpZWxkOiBzb3VyY2VEYXRhLm1vZGVsLm1haW5GaWVsZHMsXHJcblx0XHRtb2RlbE5hbWU6IHNvdXJjZURhdGEubW9kZWwubW9kZWxOYW1lLFxyXG5cdFx0ZXh0cmE6IHsgdGhpc0FyZyB9LFxyXG5cdH07XHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgY2xlYXJMb2NhbCA9ICgpID0+IHtcclxuXHRsZXQgdGhlbWVDb25maWdTdGF0ZSA9IHdpbmRvdy5sb2NhbFN0b3JhZ2UuZ2V0SXRlbSgndGhlbWVDb25maWdTdGF0ZScpO1xyXG5cdHdpbmRvdy5sb2NhbFN0b3JhZ2UuY2xlYXIoKTtcclxuXHRpZiAodGhlbWVDb25maWdTdGF0ZSkge1xyXG5cdFx0d2luZG93LmxvY2FsU3RvcmFnZS5zZXRJdGVtKCd0aGVtZUNvbmZpZ1N0YXRlJywgdGhlbWVDb25maWdTdGF0ZSk7XHJcblx0fVxyXG5cdHdpbmRvdy5zZXNzaW9uU3RvcmFnZS5jbGVhcigpO1xyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IHBhZ2VMaXN0R3JpZE9wdGlvbnMgPSAoZ3JpZE9wdGlvbnM6IGFueSwgdGhpc0FyZzogYW55KSA9PiB7XHJcblx0Z3JpZE9wdGlvbnMuc2Nyb2xsSGVpZ2h0ID0gJ2NhbGMoMTAwdmggLSA5NXB4KSc7XHJcblx0Z3JpZE9wdGlvbnMucm93TW9kZWxUeXBlID0gZ3JpZE9wdGlvbnMucm93TW9kZWxUeXBlIHx8ICdzZXJ2ZXJTaWRlJztcclxuXHRpZiAoZ3JpZE9wdGlvbnMucm93TW9kZWxUeXBlID09ICdzZXJ2ZXJTaWRlJykge1xyXG5cdFx0Z3JpZE9wdGlvbnMuc2VydmVyRnVuYyA9IGdyaWRPcHRpb25zLnNlcnZlckZ1bmMgfHwgdGhpc0FyZy53ZWJfc2VhcmNoLmJpbmQodGhpc0FyZyk7XHJcblx0fSBlbHNlIHtcclxuXHRcdGdyaWRPcHRpb25zLmNsaWVudEZ1bmMgPSBncmlkT3B0aW9ucy5jbGllbnRGdW5jIHx8IHRoaXNBcmcud2ViX3NlYXJjaC5iaW5kKHRoaXNBcmcpO1xyXG5cdH1cclxuXHRpZiAoZ3JpZE9wdGlvbnMuc2VsZWN0aW9uTW9kZSkge1xyXG5cdFx0Ly8gZ3JpZE9wdGlvbnMuc2VsZWN0aW9uTW9kZSA9IHNlbGVjdGlvbk1vZGVcclxuXHRcdGlmIChncmlkT3B0aW9ucy5zZWxlY3Rpb25Nb2RlICE9ICdub25lJykge1xyXG5cdFx0XHRncmlkT3B0aW9ucy5yb3dTZWxlY3Rpb24gPSB7XHJcblx0XHRcdFx0bW9kZTogZ3JpZE9wdGlvbnMuc2VsZWN0aW9uTW9kZSA9PSAnc2luZ2xlJyA/ICdzaW5nbGVSb3cnIDogJ211bHRpUm93JyxcclxuXHRcdFx0XHRpc1Jvd1NlbGVjdGFibGU6IGdyaWRPcHRpb25zLmlzUm93U2VsZWN0YWJsZSA/IGdyaWRPcHRpb25zLmlzUm93U2VsZWN0YWJsZSA6IHVuZGVmaW5lZCxcclxuXHRcdFx0fTtcclxuXHRcdFx0aWYgKGdyaWRPcHRpb25zLmhhc093blByb3BlcnR5KCdoZWFkZXJDaGVja2JveCcpICYmIGdyaWRPcHRpb25zLnJvd1NlbGVjdGlvbi5tb2RlID09ICdtdWx0aVJvdycpIHtcclxuXHRcdFx0XHRncmlkT3B0aW9ucy5yb3dTZWxlY3Rpb24uaGVhZGVyQ2hlY2tib3ggPSBncmlkT3B0aW9ucy5oZWFkZXJDaGVja2JveDtcclxuXHRcdFx0fVxyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0Z3JpZE9wdGlvbnMucm93U2VsZWN0aW9uID0gdW5kZWZpbmVkO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRjb252ZXJ0Q29sKGdyaWRPcHRpb25zLCBncmlkT3B0aW9ucy5jb2x1bW5EZWZzISwgMSk7XHJcblx0cmV0dXJuIGdyaWRPcHRpb25zO1xyXG59O1xyXG4vLyDmt7Hluqbmi7fotJ1cclxuZXhwb3J0IGNvbnN0IGRlZXBDbG9uZSA9IChzb3VyY2U6IGFueSwgdGhhdDogYW55LCBjYWNoZT86IGFueSkgPT4ge1xyXG5cdGlmICghY2FjaGUpIHtcclxuXHRcdGNhY2hlID0gbmV3IE1hcCgpO1xyXG5cdH1cclxuXHRpZiAoaXNPYnNlcnZhYmxlKHNvdXJjZSkpIHtcclxuXHRcdHJldHVybiBzb3VyY2U7XHJcblx0fVxyXG5cdGlmIChzb3VyY2UgaW5zdGFuY2VvZiBPYmplY3QpIHtcclxuXHRcdC8vIOS4jeiAg+iZkei3qCBpZnJhbWVcclxuXHRcdGlmIChjYWNoZS5nZXQoc291cmNlKSkge1xyXG5cdFx0XHRyZXR1cm4gY2FjaGUuZ2V0KHNvdXJjZSk7XHJcblx0XHR9XHJcblx0XHRsZXQgcmVzdWx0OiBhbnk7XHJcblx0XHRpZiAoc291cmNlIGluc3RhbmNlb2YgRnVuY3Rpb24pIHtcclxuXHRcdFx0aWYgKHNvdXJjZS5wcm90b3R5cGUpIHtcclxuXHRcdFx0XHQvLyDmnIkgcHJvdG90eXBlIOWwseaYr+aZrumAmuWHveaVsFxyXG5cdFx0XHRcdHJlc3VsdCA9IGZ1bmN0aW9uICgpIHtcclxuXHRcdFx0XHRcdHJldHVybiBzb3VyY2UuYXBwbHkodGhhdCwgYXJndW1lbnRzKTtcclxuXHRcdFx0XHR9O1xyXG5cdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdHJlc3VsdCA9ICguLi5hcmdzOiBhbnkpID0+IHtcclxuXHRcdFx0XHRcdHJldHVybiBzb3VyY2UuY2FsbCh1bmRlZmluZWQsIC4uLmFyZ3MpO1xyXG5cdFx0XHRcdH07XHJcblx0XHRcdH1cclxuXHRcdH0gZWxzZSBpZiAoc291cmNlIGluc3RhbmNlb2YgQXJyYXkpIHtcclxuXHRcdFx0cmVzdWx0ID0gW107XHJcblx0XHR9IGVsc2UgaWYgKHNvdXJjZSBpbnN0YW5jZW9mIERhdGUpIHtcclxuXHRcdFx0cmVzdWx0ID0gbmV3IERhdGUoKHNvdXJjZSBhcyBhbnkpIC0gMCk7XHJcblx0XHR9IGVsc2UgaWYgKHNvdXJjZSBpbnN0YW5jZW9mIFJlZ0V4cCkge1xyXG5cdFx0XHRyZXN1bHQgPSBuZXcgUmVnRXhwKHNvdXJjZS5zb3VyY2UsIHNvdXJjZS5mbGFncyk7XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHRyZXN1bHQgPSB7fTtcclxuXHRcdH1cclxuXHRcdGNhY2hlLnNldChzb3VyY2UsIHJlc3VsdCk7XHJcblx0XHRmb3IgKGxldCBrZXkgaW4gc291cmNlKSB7XHJcblx0XHRcdGlmIChzb3VyY2UuaGFzT3duUHJvcGVydHkoa2V5KSkge1xyXG5cdFx0XHRcdHJlc3VsdFtrZXldID0gZGVlcENsb25lKHNvdXJjZVtrZXldLCB0aGF0LCBjYWNoZSk7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdHJldHVybiByZXN1bHQ7XHJcblx0fSBlbHNlIHtcclxuXHRcdHJldHVybiBzb3VyY2U7XHJcblx0fVxyXG59O1xyXG4iXX0=
|
|
593
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pbW0tZWxlbWVudC11aS9zcmMvbGliL3NoYXJlL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsVUFBVSxFQUFFLEVBQUUsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxjQUFjLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2pHLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyQyxPQUFPLEtBQUssRUFBRSxNQUFNLFlBQVksQ0FBQztBQUNqQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDbkQsT0FBTyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFJbEMsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsQ0FBQyxJQUFTLEVBQW1CLEVBQUU7SUFDaEUsNkJBQTZCO0lBQzdCLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNYLE9BQU8sVUFBVSxDQUFDO0lBQ25CLENBQUM7SUFDRCxPQUFPLElBQUksQ0FBQztBQUNiLENBQUMsQ0FBQztBQUNGLE1BQU0sQ0FBQyxJQUFJLFlBQVksR0FBRyxDQUFDLEdBQVcsRUFBRSxFQUFFLENBQ3pDLEdBQUc7S0FDRCxPQUFPLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDLFdBQVc7S0FDOUIsT0FBTyxDQUFDLGlCQUFpQixFQUFFLE9BQU8sQ0FBQyxDQUFDLFdBQVc7S0FDL0MsV0FBVyxFQUFFLENBQUMsT0FBTztLQUNyQixLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsUUFBUTtLQUNyQixHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMs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QUM7SUFDZixDQUFDO0FBQ0YsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiwgc2hhcmVSZXBsYXksIHBpcGUsIGZvcmtKb2luLCBmaXJzdFZhbHVlRnJvbSwgaXNPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0ICogYXMgdHMgZnJvbSAndHlwZXNjcmlwdCc7XHJcbmltcG9ydCB7IGZvcm1UeXBlVG9Qcm9wcyB9IGZyb20gJy4uLy4uL3B1YmxpYy1hcGknO1xyXG5pbXBvcnQgTlAgZnJvbSAnbnVtYmVyLXByZWNpc2lvbic7XHJcblxyXG5leHBvcnQgdHlwZSBGaWx0ZXJNYXRjaE1vZGUgPSAnZW5kc1dpdGgnIHwgJ3N0YXJ0c1dpdGgnIHwgJ2NvbnRhaW5zJyB8ICdlcXVhbHMnIHwgJ25vdEVxdWFscycgfCAnaW4nIHwgJ2x0JyB8ICdsdGUnIHwgJ2d0JyB8ICdndGUnO1xyXG5cclxuZXhwb3J0IGNvbnN0IGdldEZpbHRlck1hdGNoTW9kZSA9IChtb2RlOiBhbnkpOiBGaWx0ZXJNYXRjaE1vZGUgPT4ge1xyXG5cdC8vIOacqumFjee9ruaXtuS9v+eUqCBQcmltZU5HIOm7mOiupCBjb250YWluc1xyXG5cdGlmICghbW9kZSkge1xyXG5cdFx0cmV0dXJuICdjb250YWlucyc7XHJcblx0fVxyXG5cdHJldHVybiBtb2RlO1xyXG59O1xyXG5leHBvcnQgbGV0IHRvUGFzY2FsQ2FzZSA9IChzdHI6IHN0cmluZykgPT5cclxuXHRzdHJcclxuXHRcdC5yZXBsYWNlKC9fL2csICcgJykgLy8g5LiL5YiS57q/5pu/5o2i5Li656m65qC8XHJcblx0XHQucmVwbGFjZSgvKFthLXpdKShbQS1aXSkvZywgJyQxICQyJykgLy8g5bCP6am85bOw5YiG5Ymy5Li65Y2V6K+NXHJcblx0XHQudG9Mb3dlckNhc2UoKSAvLyDovazkuLrlsI/lhplcclxuXHRcdC5zcGxpdCgvXFxzKy8pIC8vIOaMieepuuagvOWIhuWJslxyXG5cdFx0Lm1hcCgod29yZCkgPT4gKHdvcmQgPyB3b3JkWzBdLnRvVXBwZXJDYXNlKCkgKyB3b3JkLnNsaWNlKDEpIDogJycpKVxyXG5cdFx0LmpvaW4oJycpO1xyXG5cclxuZXhwb3J0IGNvbnN0IGdlbmVyYXRlVW5pcXVlSWQgPSAoKSA9PiB7XHJcblx0Y29uc3QgdGltZXN0YW1wID0gRGF0ZS5ub3coKS50b1N0cmluZygzNik7IC8vIOaXtumXtOaIs+i9rDM26L+b5Yi257yp55+t6ZW/5bqmXHJcblx0Y29uc3QgcmFuZG9tID0gTWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyaW5nKDIsIDQpOyAvLyDpmo/mnLrpg6jliIZcclxuXHRyZXR1cm4gYCR7dGltZXN0YW1wfSR7cmFuZG9tfWA7XHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgY3JlYXRlQ2lyY3VsYXJJdGVyYXRvciA9IChhcnJheTogYW55W10pID0+IHtcclxuXHRsZXQgaW5kZXggPSAtMTtcclxuXHRyZXR1cm4ge1xyXG5cdFx0bmV4dDogKCkgPT4ge1xyXG5cdFx0XHRpbmRleCsrO1xyXG5cdFx0XHRyZXR1cm4gYXJyYXlbaW5kZXggJSBhcnJheS5sZW5ndGhdO1xyXG5cdFx0fSxcclxuXHRcdHByZXY6ICgpID0+IHtcclxuXHRcdFx0aW5kZXgtLTtcclxuXHRcdFx0cmV0dXJuIGFycmF5WygoaW5kZXggJSBhcnJheS5sZW5ndGgpICsgYXJyYXkubGVuZ3RoKSAlIGFycmF5Lmxlbmd0aF07XHJcblx0XHR9LFxyXG5cdH07XHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgcGFyc2VGdW5jdGlvbnMgPSAob2JqOiBhbnksIF90aGlzOiBhbnkpOiBhbnkgPT4ge1xyXG5cdGlmICh0eXBlb2Ygb2JqID09PSAnc3RyaW5nJykge1xyXG5cdFx0Ly8g5bCd6K+V5qOA5rWL5piv5ZCm5piv5Ye95pWw5a2X56ym5LiyXHJcblx0XHRpZiAoKG9iai5pbmNsdWRlcygnPT4nKSB8fCBvYmouaW5jbHVkZXMoJ1Byb21pc2UnKSkgJiYgIWlzSlNPTlBhcnNhYmxlKG9iaikpIHtcclxuXHRcdFx0Y29uc3QgbyA9IGNvbXBpbGVUc1RvSnMob2JqKTtcclxuXHRcdFx0Ly8gY29uc29sZS5sb2coJ+ino+aekOWHveaVsDonLCBvYmopO1xyXG5cdFx0XHR0cnkge1xyXG5cdFx0XHRcdGNvbnN0IHNhbmRib3ggPSB7XHJcblx0XHRcdFx0XHRPYnNlcnZhYmxlLFxyXG5cdFx0XHRcdFx0b2YsXHJcblx0XHRcdFx0XHRmb3JrSm9pbixcclxuXHRcdFx0XHRcdG1hcCxcclxuXHRcdFx0XHRcdHNoYXJlUmVwbGF5LFxyXG5cdFx0XHRcdFx0cGlwZSxcclxuXHRcdFx0XHRcdFByb21pc2UsIC8vIOa3u+WKoCBQcm9taXNlIOWIsCBzYW5kYm94XHJcblx0XHRcdFx0XHRhc3luYzogdHJ1ZSwgLy8g5qCH6K6w5pSv5oyB5byC5q2lXHJcblx0XHRcdFx0XHRyZXNvbHZlOiBQcm9taXNlLnJlc29sdmUuYmluZChQcm9taXNlKSxcclxuXHRcdFx0XHRcdHJlamVjdDogUHJvbWlzZS5yZWplY3QuYmluZChQcm9taXNlKSxcclxuXHRcdFx0XHRcdE5QLFxyXG5cdFx0XHRcdFx0Zmlyc3RWYWx1ZUZyb20sXHJcblx0XHRcdFx0fTtcclxuXHJcblx0XHRcdFx0Ly8g5aSE55CGIFByb21pc2Ug5p6E6YCg5Ye95pWw55qE5oOF5Ya1XHJcblx0XHRcdFx0aWYgKG9iai5pbmNsdWRlcygnbmV3IFByb21pc2UnKSkge1xyXG5cdFx0XHRcdFx0cmV0dXJuIG5ldyBGdW5jdGlvbihcclxuXHRcdFx0XHRcdFx0J3NhbmRib3gnLFxyXG5cdFx0XHRcdFx0XHRgXHJcblx0XHRcdFx0XHRcdFx0d2l0aChzYW5kYm94KSB7XHJcblx0XHRcdFx0XHRcdFx0XHRyZXR1cm4gJHtvfTtcclxuXHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdGAsXHJcblx0XHRcdFx0XHQpLmJpbmQoX3RoaXMpKHNhbmRib3gpO1xyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0Ly8g5aSE55CG5pmu6YCa5Ye95pWw5ZKM566t5aS05Ye95pWwXHJcblx0XHRcdFx0cmV0dXJuIG5ldyBGdW5jdGlvbihcclxuXHRcdFx0XHRcdCdzYW5kYm94JyxcclxuXHRcdFx0XHRcdGBcclxuXHRcdFx0XHRcdFx0d2l0aChzYW5kYm94KSB7XHJcblx0XHRcdFx0XHRcdFx0cmV0dXJuICgke299KTtcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0YCxcclxuXHRcdFx0XHQpLmJpbmQoX3RoaXMpKHNhbmRib3gpO1xyXG5cdFx0XHR9IGNhdGNoIChlKSB7XHJcblx0XHRcdFx0Y29uc29sZS5lcnJvcign5Ye95pWw6Kej5p6Q5aSx6LSlOicsIGUsICdcXG7ljp/lp4vlrZfnrKbkuLI6Jywgb2JqKTtcclxuXHRcdFx0XHRyZXR1cm4gb2JqO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHRpZiAoaXNKU09OUGFyc2FibGUob2JqKSkge1xyXG5cdFx0XHRsZXQganNvbiA9IEpTT04ucGFyc2Uob2JqKTtcclxuXHRcdFx0cmV0dXJuIHBhcnNlRnVuY3Rpb25zKGpzb24sIF90aGlzKTtcclxuXHRcdH1cclxuXHRcdHJldHVybiBvYmo7XHJcblx0fVxyXG5cdGlmIChBcnJheS5pc0FycmF5KG9iaikpIHtcclxuXHRcdHJldHVybiBvYmoubWFwKChpdGVtOiBhbnkpID0+IHBhcnNlRnVuY3Rpb25zKGl0ZW0sIF90aGlzKSk7XHJcblx0fVxyXG5cdGlmICh0eXBlb2Ygb2JqID09PSAnb2JqZWN0JyAmJiBvYmogIT09IG51bGwpIHtcclxuXHRcdGNvbnN0IHJlc3VsdDogYW55ID0ge307XHJcblx0XHRmb3IgKGNvbnN0IGtleSBpbiBvYmopIHtcclxuXHRcdFx0aWYgKG9iai5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XHJcblx0XHRcdFx0cmVzdWx0W2tleV0gPSBwYXJzZUZ1bmN0aW9ucyhvYmpba2V5XSwgX3RoaXMpO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHRyZXR1cm4gcmVzdWx0O1xyXG5cdH1cclxuXHJcblx0cmV0dXJuIG9iajtcclxufTtcclxuXHJcbi8vIOi+heWKqeWHveaVsO+8muajgOafpeaYr+WQpuWMheWQqyBQcm9taXNlIOaehOmAoOWHveaVsFxyXG5jb25zdCBjb250YWluc1Byb21pc2VDb25zdHJ1Y3RvciA9IChzdHI6IHN0cmluZyk6IGJvb2xlYW4gPT4ge1xyXG5cdHJldHVybiAvbmV3XFxzK1Byb21pc2UvLnRlc3Qoc3RyKTtcclxufTtcclxuXHJcbi8vIOS/ruaUuSBjb21waWxlVHNUb0pzIOWHveaVsOS7peabtOWlveWcsOWkhOeQhiBQcm9taXNlXHJcbmV4cG9ydCBjb25zdCBjb21waWxlVHNUb0pzID0gKHRzQ29kZTogc3RyaW5nKTogc3RyaW5nID0+IHtcclxuXHQvLyDlpoLmnpzmmK8gUHJvbWlzZSDmnoTpgKDlh73mlbDvvIzkuI3pnIDopoHpop3lpJblpITnkIZcclxuXHRpZiAoY29udGFpbnNQcm9taXNlQ29uc3RydWN0b3IodHNDb2RlKSkge1xyXG5cdFx0cmV0dXJuIHRzQ29kZTtcclxuXHR9XHJcblxyXG5cdGNvbnN0IHJlc3VsdCA9IHRzLnRyYW5zcGlsZU1vZHVsZSh0c0NvZGUsIHtcclxuXHRcdGNvbXBpbGVyT3B0aW9uczoge1xyXG5cdFx0XHRtb2R1bGU6IHRzLk1vZHVsZUtpbmQuQ29tbW9uSlMsXHJcblx0XHRcdHRhcmdldDogdHMuU2NyaXB0VGFyZ2V0LkVTMjAxNSxcclxuXHRcdFx0Ly8g5ZCv55So5byC5q2l5Ye95pWw5pSv5oyBXHJcblx0XHRcdGxpYjogWydlczIwMTUnLCAnZXMyMDE1LnByb21pc2UnLCAnZG9tJ10sXHJcblx0XHR9LFxyXG5cdH0pO1xyXG5cdHJldHVybiByZW1vdmVUcmFpbGluZ1NlbWljb2xvbihyZXN1bHQub3V0cHV0VGV4dCk7XHJcbn07XHJcblxyXG5jb25zdCByZW1vdmVUcmFpbGluZ1NlbWljb2xvbiA9IChmdW5jU3RyOiBzdHJpbmcpOiBzdHJpbmcgPT4ge1xyXG5cdC8vIOWFiOWOu+mZpOWJjeWQjuepuueZvVxyXG5cdGNvbnN0IHRyaW1tZWQgPSBmdW5jU3RyLnRyaW0oKTtcclxuXHQvLyDlj6rmm7/mjaLmnIDlkI7kuIDkuKrliIblj7fvvIjlpoLmnpzlroPkuI3lnKjoirHmi6zlj7flhoXvvIlcclxuXHRpZiAodHJpbW1lZC5lbmRzV2l0aCgnOycpKSB7XHJcblx0XHRyZXR1cm4gdHJpbW1lZC5zbGljZSgwLCAtMSk7XHJcblx0fVxyXG5cdHJldHVybiB0cmltbWVkO1xyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IGlzSlNPTlBhcnNhYmxlID0gKHN0cjogYW55KSA9PiB7XHJcblx0dHJ5IHtcclxuXHRcdEpTT04ucGFyc2Uoc3RyKTtcclxuXHRcdHJldHVybiB0cnVlO1xyXG5cdH0gY2F0Y2ggKGUpIHtcclxuXHRcdC8vIGxldCBzdHJJc09iaiA9IC9cXHtbXn1dKlxcfXxcXFtbXlxcXV0qXFxdLy50ZXN0KHN0cilcclxuXHRcdC8vIGlmKHN0cklzT2JqKXtcclxuXHRcdC8vIFx0Y29uc29sZS5lcnJvcignSlNPTiDop6PmnpDlpLHotKU6JywgZSwgJ1xcbuWOn+Wni+Wtl+espuS4sjonLCBzdHIpXHJcblx0XHQvLyB9XHJcblx0XHRyZXR1cm4gZmFsc2U7XHJcblx0fVxyXG59O1xyXG5cclxuLyoqXHJcbiAqIOagueaNruaMh+WumueahOmUruaVsOe7hOi/h+a7pOWvueixoVxyXG4gKiBAcGFyYW0ge09iamVjdH0gb2JqIC0g6KaB6L+H5ruk55qE5Y6f5aeL5a+56LGhXHJcbiAqIEBwYXJhbSB7QXJyYXl9IGtleXMgLSDpnIDopoHkv53nlZnnmoTplK7mlbDnu4RcclxuICogQHJldHVybnMge09iamVjdH0g6L+H5ruk5ZCO55qE5paw5a+56LGhXHJcbiAqL1xyXG5leHBvcnQgY29uc3QgZmlsdGVyT2JqZWN0QnlLZXlzID0gKG9iajogYW55LCBrZXlzOiBzdHJpbmdbXSkgPT4ge1xyXG5cdC8vIOWPguaVsOagoemqjFxyXG5cdGlmICh0eXBlb2Ygb2JqICE9PSAnb2JqZWN0JyB8fCBvYmogPT09IG51bGwgfHwgQXJyYXkuaXNBcnJheShvYmopKSB7XHJcblx0XHR0aHJvdyBuZXcgVHlwZUVycm9yKCfnrKzkuIDkuKrlj4LmlbDlv4XpobvmmK/mma7pgJrlr7nosaEnKTtcclxuXHR9XHJcblxyXG5cdGlmICghQXJyYXkuaXNBcnJheShrZXlzKSkge1xyXG5cdFx0dGhyb3cgbmV3IFR5cGVFcnJvcign56ys5LqM5Liq5Y+C5pWw5b+F6aG75piv5pWw57uEJyk7XHJcblx0fVxyXG5cclxuXHQvLyDkvb/nlKhyZWR1Y2XliJvlu7rmlrDlr7nosaFcclxuXHRyZXR1cm4ga2V5cy5yZWR1Y2UoKGFjYzogYW55LCBrZXk6IHN0cmluZykgPT4ge1xyXG5cdFx0Ly8g5Y+q5pyJ5b2T5Y6f5a+56LGh5pyJ6K+l5bGe5oCn5pe25omN5re75Yqg5Yiw5paw5a+56LGhXHJcblx0XHRpZiAoa2V5IGluIG9iaikge1xyXG5cdFx0XHRhY2Nba2V5XSA9IG9ialtrZXldO1xyXG5cdFx0fVxyXG5cdFx0cmV0dXJuIGFjYztcclxuXHR9LCB7fSk7XHJcbn07XHJcbi8qKlxyXG4gKiDoh6rlrprkuYnlh73mlbDljrvpmaTnqbrlrZfnrKbkuLJcclxuICogQHBhcmFtIGFjdFxyXG4gKiBAcmV0dXJuc1xyXG4gKi9cclxuZXhwb3J0IGNvbnN0IGNvbnZlcnRBY3QgPSAoYWN0OiBhbnkpID0+IHtcclxuXHRhY3QuZm9yRWFjaCgodjogYW55KSA9PiB7XHJcblx0XHRpZiAodi5oYXNPd25Qcm9wZXJ0eSgnYnRuSGlkZGVuJykgJiYgdHlwZW9mIHYuYnRuSGlkZGVuICE9ICdmdW5jdGlvbicpIHtcclxuXHRcdFx0ZGVsZXRlIHYuYnRuSGlkZGVuO1xyXG5cdFx0fVxyXG5cdFx0aWYgKHYuaGFzT3duUHJvcGVydHkoJ2J0bkRpc2FibGVkJykgJiYgdHlwZW9mIHYuYnRuRGlzYWJsZWQgIT0gJ2Z1bmN0aW9uJykge1xyXG5cdFx0XHRkZWxldGUgdi5idG5EaXNhYmxlZDtcclxuXHRcdH1cclxuXHRcdGlmICh2Lmhhc093blByb3BlcnR5KCdvbkNsaWNrJykgJiYgdHlwZW9mIHYub25DbGljayAhPSAnZnVuY3Rpb24nKSB7XHJcblx0XHRcdGRlbGV0ZSB2Lm9uQ2xpY2s7XHJcblx0XHR9XHJcblx0fSk7XHJcblx0cmV0dXJuIGFjdDtcclxufTtcclxuXHJcbi8qKlxyXG4gKiBmb3JtcGFnZSDpgJrnlKhjb250ZW505Ye95pWw6L2s56e7XHJcbiAqIEBwYXJhbSBjb250ZW50XHJcbiAqIEBwYXJhbSB0aGlzQXJnXHJcbiAqL1xyXG5leHBvcnQgY29uc3QgY2hhbmdlQ29udGVudCA9IChjb250ZW50OiBhbnksIHRoaXNBcmc6IGFueSkgPT4ge1xyXG5cdC8vIEB0cy1pZ25vcmVcclxuXHRjb25zdCBpc0kxOG4gPSB3aW5kb3cuYXBwSXNJMThuO1xyXG5cdGNvbnRlbnQgPSBwYXJzZUZ1bmN0aW9ucyhjb250ZW50LCB0aGlzQXJnKTtcclxuXHR0aGlzQXJnLnBhZ2VDb250ZW50ID0gY29udGVudDtcclxuXHRsZXQgeyBncmlkTGlzdCwgaHJlZkJ0bkxpc3QsIGdldFBybSwgZ3JvdXBzLCBzdGF0dXNLZXksIHN0YXR1cywgc3RhdHVzU3RlcHMsIHN0YXR1c0NvbmYgPSBudWxsIH0gPSBjb250ZW50O1xyXG5cdGlmIChzdGF0dXNLZXkpIHtcclxuXHRcdHRoaXNBcmcuc3RhdHVzS2V5ID0gc3RhdHVzS2V5O1xyXG5cdFx0c3RhdHVzU3RlcHMuZm9yRWFjaCgoaXRlbTogYW55KSA9PiB7XHJcblx0XHRcdGlmIChpc0kxOG4gJiYgKCFpdGVtLmhhc093blByb3BlcnR5KCdpMThuS2V5JykgfHwgaXRlbS5pMThuS2V5ID09ICcnKSkge1xyXG5cdFx0XHRcdGl0ZW0uaTE4bktleSA9IGB0YWJsZXMuJHtnZXRQcm0ubW9kZWxOYW1lfS4ke3N0YXR1c0tleX0ke2l0ZW0udmFsdWV9YDtcclxuXHRcdFx0fVxyXG5cdFx0fSk7XHJcblx0XHR0aGlzQXJnLnN0ZXBzID0gc3RhdHVzU3RlcHM7XHJcblx0XHRzdGF0dXNDb25mICYmICh0aGlzQXJnLnN0YXR1c0NvbmYgPSBzdGF0dXNDb25mKTtcclxuXHR9XHJcblxyXG5cdHRoaXNBcmcuYWN0aW9ucyA9IGNvbnZlcnRBY3QoY29udGVudC5hY3Rpb25zKTtcclxuXHRjb250ZW50LmZvcm1EaXNhYmxlZCAmJiAodGhpc0FyZy5mb3JtRGlzYWJsZWQgPSBjb250ZW50LmZvcm1EaXNhYmxlZCk7XHJcblx0dGhpc0FyZy5nZXRQcm0gPSBnZXRQcm07XHJcblx0dGhpc0FyZy5nZXRQcm0ub3JnRmllbGQgPSBjb250ZW50Lm9yZ0ZpZWxkIHx8ICcnO1xyXG5cdHRoaXNBcmcuZ3JpZHMgPSBbXTtcclxuXHRsZXQgZml0ZXJQcmVsb2FkczogYW55W10gPSBbXTtcclxuXHJcblx0Y29udmVydEZvcm0odGhpc0FyZywgZ3JvdXBzLCBjb250ZW50LnNvdXJjZURhdGEpO1xyXG5cdGNvbnZlcnRHcmlkKHRoaXNBcmcsIGdyaWRMaXN0LCBmaXRlclByZWxvYWRzKTtcclxuXHJcblx0dGhpc0FyZy5mb3JtRGV0YWlsID0gY29udGVudC5mb3JtRGV0YWlsO1xyXG5cdHRoaXNBcmcuc2F2ZUZ1bmMgPSBjb250ZW50LnNhdmVGdW5jO1xyXG5cdHRoaXNBcmcuaXNMb2cgPSBjb250ZW50LnNvdXJjZURhdGEubW9kZWwubG9nO1xyXG5cdHRoaXNBcmcuZ2V0UHJtWydnZXRMb2cnXSA9IGNvbnRlbnQuc291cmNlRGF0YS5tb2RlbC5sb2c7XHJcblx0dGhpc0FyZy5nZXRQcm1bJ2ZpdGVyUHJlbG9hZHMnXSA9IGZpdGVyUHJlbG9hZHM7XHJcblx0dGhpc0FyZy5ocmVmQnRuTGlzdCA9IGhyZWZCdG5MaXN0O1xyXG5cdHRoaXNBcmcucnVudGltZUNvbnRleHRJbml0ID0gY29udGVudC5ydW50aW1lQ29udGV4dEluaXQ7XHJcblx0ZXhlY3V0ZVJ1bnRpbWVDb250ZXh0SW5pdCh0aGlzQXJnKTtcclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCBleGVjdXRlUnVudGltZUNvbnRleHRJbml0ID0gKHRoaXNBcmc6IGFueSkgPT4ge1xyXG5cdGlmICh0eXBlb2YgdGhpc0FyZy5ydW50aW1lQ29udGV4dEluaXQgIT09ICdmdW5jdGlvbicpIHtcclxuXHRcdHJldHVybjtcclxuXHR9XHJcblx0Y29uc3QgY29udGV4dCA9IHtcclxuXHRcdGNvbXBvbmVudDogdGhpc0FyZyxcclxuXHRcdGh0dHA6IHRoaXNBcmcuaHR0cCxcclxuXHRcdHJvdXRlOiB0aGlzQXJnLnJvdXRlLFxyXG5cdFx0cm91dGVyOiB0aGlzQXJnLnJvdXRlcixcclxuXHRcdHJ1bnRpbWVDb250ZXh0OiB0aGlzQXJnLnJ1bnRpbWVDb250ZXh0LFxyXG5cdH07XHJcblx0Y29uc3QgcmVzdWx0ID0gdGhpc0FyZy5ydW50aW1lQ29udGV4dEluaXQoY29udGV4dCk7XHJcblx0cmVzb2x2ZVJ1bnRpbWVDb250ZXh0UmVzdWx0KHRoaXNBcmcsIHJlc3VsdCk7XHJcbn07XHJcblxyXG5jb25zdCByZXNvbHZlUnVudGltZUNvbnRleHRSZXN1bHQgPSBhc3luYyAodGhpc0FyZzogYW55LCByZXN1bHQ6IGFueSkgPT4ge1xyXG5cdGxldCByZXNvbHZlZCA9IHJlc3VsdDtcclxuXHRpZiAoaXNPYnNlcnZhYmxlKHJlc3VsdCkpIHtcclxuXHRcdHJlc29sdmVkID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20ocmVzdWx0KTtcclxuXHR9IGVsc2UgaWYgKHJlc3VsdCBpbnN0YW5jZW9mIFByb21pc2UpIHtcclxuXHRcdHJlc29sdmVkID0gYXdhaXQgcmVzdWx0O1xyXG5cdH1cclxuXHRpZiAocmVzb2x2ZWQgJiYgdHlwZW9mIHJlc29sdmVkID09PSAnb2JqZWN0JyAmJiAhQXJyYXkuaXNBcnJheShyZXNvbHZlZCkpIHtcclxuXHRcdHRoaXNBcmcucnVudGltZUNvbnRleHQgPSB7XHJcblx0XHRcdC4uLih0aGlzQXJnLnJ1bnRpbWVDb250ZXh0IHx8IHt9KSxcclxuXHRcdFx0Li4ucmVzb2x2ZWQsXHJcblx0XHR9O1xyXG5cdH0gZWxzZSBpZiAocmVzb2x2ZWQgIT09IHVuZGVmaW5lZCkge1xyXG5cdFx0dGhpc0FyZy5ydW50aW1lQ29udGV4dCA9IHtcclxuXHRcdFx0Li4uKHRoaXNBcmcucnVudGltZUNvbnRleHQgfHwge30pLFxyXG5cdFx0XHR2YWx1ZTogcmVzb2x2ZWQsXHJcblx0XHR9O1xyXG5cdH0gZWxzZSB7XHJcblx0XHR0aGlzQXJnLnJ1bnRpbWVDb250ZXh0ID0ge307XHJcblx0fVxyXG5cdHRoaXNBcmcuY2RyPy5tYXJrRm9yQ2hlY2s/LigpO1xyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IGNhbGNSb3dTcGFuID0gKHBhcmFtczogYW55LCBmaWVsZD86IHN0cmluZykgPT4ge1xuXHRmaWVsZCA9IGZpZWxkIHx8IHBhcmFtcy5jb2xEZWYuZmllbGQ7XHJcblx0Y29uc3QgY3VycmVudFZhbHVlID0gcGFyYW1zLmRhdGFbZmllbGQhXTtcclxuXHRjb25zdCBjdXJyZW50Um93SW5kZXggPSBwYXJhbXMubm9kZS5yb3dJbmRleDtcclxuXHJcblx0bGV0IHJvd1NwYW4gPSAxO1xyXG5cclxuXHRmb3IgKGxldCBpID0gY3VycmVudFJvd0luZGV4ICsgMTsgaSA8IHBhcmFtcy5hcGkuZ2V0RGlzcGxheWVkUm93Q291bnQoKTsgaSsrKSB7XHJcblx0XHRjb25zdCBub2RlID0gcGFyYW1zLmFwaS5nZXREaXNwbGF5ZWRSb3dBdEluZGV4KGkpO1xyXG5cdFx0aWYgKG5vZGUuZGF0YVtmaWVsZCFdID09PSBjdXJyZW50VmFsdWUpIHtcclxuXHRcdFx0cm93U3BhbisrO1xyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0YnJlYWs7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRpZiAoY3VycmVudFJvd0luZGV4ID4gMCAmJiBwYXJhbXMuYXBpLmdldERpc3BsYXllZFJvd0F0SW5kZXgoY3VycmVudFJvd0luZGV4IC0gMSkuZGF0YVtmaWVsZCFdID09PSBjdXJyZW50VmFsdWUpIHtcclxuXHRcdHJldHVybiAxO1xyXG5cdH1cclxuXHRyZXR1cm4gcm93U3Bhbjtcbn07XG5cbmNvbnN0IGFwcGVuZENlbGxDbGFzcyA9IChjZWxsQ2xhc3M6IGFueSwgY2xhc3NOYW1lOiBzdHJpbmcpID0+IHtcblx0aWYgKEFycmF5LmlzQXJyYXkoY2VsbENsYXNzKSkge1xuXHRcdHJldHVybiBjZWxsQ2xhc3MuaW5jbHVkZXMoY2xhc3NOYW1lKSA/IGNlbGxDbGFzcyA6IFsuLi5jZWxsQ2xhc3MsIGNsYXNzTmFtZV07XG5cdH1cblx0aWYgKHR5cGVvZiBjZWxsQ2xhc3MgPT09ICdzdHJpbmcnICYmIGNlbGxDbGFzcy5sZW5ndGggPiAwKSB7XG5cdFx0cmV0dXJuIGNlbGxDbGFzcy5zcGxpdCgvXFxzKy8pLmluY2x1ZGVzKGNsYXNzTmFtZSkgPyBjZWxsQ2xhc3MgOiBgJHtjZWxsQ2xhc3N9ICR7Y2xhc3NOYW1lfWA7XG5cdH1cblx0cmV0dXJuIGNsYXNzTmFtZTtcbn07XG5cbmNvbnN0IHN1cHByZXNzVGV4dGFyZWFTaGlmdEVudGVyID0gKGNvbDogYW55KSA9PiB7XG5cdGNvbnN0IHJhd1N1cHByZXNzS2V5Ym9hcmRFdmVudCA9IGNvbC5zdXBwcmVzc0tleWJvYXJkRXZlbnQ7XG5cdGNvbC5zdXBwcmVzc0tleWJvYXJkRXZlbnQgPSAocGFyYW1zOiBhbnkpID0+IHtcblx0XHRpZiAodHlwZW9mIHJhd1N1cHByZXNzS2V5Ym9hcmRFdmVudCA9PT0gJ2Z1bmN0aW9uJyAmJiByYXdTdXBwcmVzc0tleWJvYXJkRXZlbnQocGFyYW1zKSkge1xuXHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0fVxuXHRcdGNvbnN0IGV2ZW50ID0gcGFyYW1zPy5ldmVudDtcblx0XHRyZXR1cm4gISFwYXJhbXM/LmVkaXRpbmcgJiYgZXZlbnQ/LmtleSA9PT0gJ0VudGVyJyAmJiAhIWV2ZW50Py5zaGlmdEtleTtcblx0fTtcbn07XG5cbmV4cG9ydCBjb25zdCBjb252ZXJ0Q29sID0gKG9wdGlvbnM6IGFueSwgY29sOiBhbnlbXSwgYXV0aExldmVsOiBudW1iZXIsIGRyYWdTb3J0Pzogc3RyaW5nKSA9PiB7XG5cdC8vIEB0cy1pZ25vcmVcblx0Y29uc3QgaXNJMThuID0gd2luZG93LmFwcElzSTE4bjtcblx0Ly8gY29uc29sZS5sb2coJ2lzSTE4bi0tLS0tJyxpc0kxOG4pXG5cdGNvbC5mb3JFYWNoKChpdGVtOiBhbnksIGluZGV4OiBudW1iZXIpID0+IHtcblx0XHRpZiAodHlwZW9mIGl0ZW0uaGlkZSAhPT0gJ2Z1bmN0aW9uJyAmJiB0eXBlb2YgaXRlbS5oaWRlICE9PSAnc3RyaW5nJykge1xuXHRcdFx0aXRlbS5oaWRlID0gaXRlbS5oaWRlQ29sID09PSB0cnVlIHx8IGl0ZW0uaGlkZSA9PT0gdHJ1ZTtcblx0XHR9XG5cdFx0aWYgKGF1dGhMZXZlbCA8IDMpIHtcblx0XHRcdGl0ZW0uZWRpdGFibGUgPSBmYWxzZTtcblx0XHR9XG5cdFx0aWYgKGRyYWdTb3J0ICYmIGluZGV4ID09PSAwKSB7XHJcblx0XHRcdGl0ZW0ucm93RHJhZyA9IHRydWU7XHJcblx0XHR9XHJcblx0XHRpZiAoaXNJMThuICYmICghaXRlbS5oYXNPd25Qcm9wZXJ0eSgnaTE4bktleScpIHx8IGl0ZW0uaTE4bktleSA9PSAnJykpIHtcblx0XHRcdGl0ZW0uaTE4bktleSA9IGB0YWJsZXMuJHtvcHRpb25zLm1vZGVsTmFtZX0uJHtpdGVtLmZpZWxkfWA7XG5cdFx0fVxuXHRcdGlmIChpdGVtLmhhc093blByb3BlcnR5KCd0ZXh0V3JhcCcpICYmIGl0ZW0udGV4dFdyYXAgJiYgaXRlbS5jZWxsRWRpdG9yICE9PSAnY2VsbEVkaXRUZXh0YXJlYUNvbXBvbmVudCcpIHtcblx0XHRcdGl0ZW0uYXV0b0hlaWdodCA9IHRydWU7XG5cdFx0XHRpdGVtLmNlbGxDbGFzcyA9ICdjZWxsLXdyYXAtdGV4dCc7XG5cdFx0fVxuXHRcdGlmIChpdGVtLmNlbGxFZGl0b3IgPT09ICdjZWxsRWRpdFRleHRhcmVhQ29tcG9uZW50Jykge1xuXHRcdFx0aXRlbS53cmFwVGV4dCA9IHRydWU7XG5cdFx0XHRpdGVtLmF1dG9IZWlnaHQgPSB0cnVlO1xuXHRcdFx0aXRlbS5jZWxsQ2xhc3MgPSBhcHBlbmRDZWxsQ2xhc3MoaXRlbS5jZWxsQ2xhc3MsICdjZWxsLXRleHRhcmVhLXdyYXAtdGV4dCcpO1xuXHRcdFx0c3VwcHJlc3NUZXh0YXJlYVNoaWZ0RW50ZXIoaXRlbSk7XG5cdFx0fVxuXHRcdGlmIChpdGVtLmZpZWxkVHlwZSA9PSAnVkFSQ0hBUicpIHtcblx0XHRcdGl0ZW0uY2VsbERhdGFUeXBlID0gZmFsc2U7XG5cdFx0fVxuXHRcdGl0ZW0uaGVhZGVyVmFsdWVHZXR0ZXIgPSB3cmFwSGVhZGVyVmFsdWVHZXR0ZXIoaXRlbS5oZWFkZXJWYWx1ZUdldHRlciwgaXRlbSk7XHJcblx0XHRpZiAoaXRlbS5yb3dTcGFuQ29uZikge1xyXG5cdFx0XHRsZXQgcm93U3BhbiA9IHtcclxuXHRcdFx0XHRyb3dTcGFuOiAocGFyYW1zOiBhbnkpID0+IGNhbGNSb3dTcGFuKHBhcmFtcyksXHJcblx0XHRcdFx0Y2VsbFJlbmRlcmVyOiAncm93U3BhblJlbmRlcmVyJyxcclxuXHRcdFx0XHRjZWxsUmVuZGVyZXJQYXJhbXM6IHtcclxuXHRcdFx0XHRcdHJvd1NwYW46IChwYXJhbXM6IGFueSkgPT4gY2FsY1Jvd1NwYW4ocGFyYW1zKSxcclxuXHRcdFx0XHR9LFxyXG5cdFx0XHR9O1xyXG5cdFx0XHRPYmplY3QuYXNzaWduKGl0ZW0sIHJvd1NwYW4pO1xyXG5cdFx0XHRvcHRpb25zLnN1cHByZXNzUm93VHJhbnNmb3JtID0gdHJ1ZTtcclxuXHRcdFx0b3B0aW9ucy5yb3dDbGFzcyA9ICdyb3dTcGFuJztcclxuXHRcdH1cclxuXHRcdC8vIGlmKGl0ZW0uZWRpdGFibGUpe1xyXG5cdFx0Ly8gXHRpdGVtLmhlYWRlckNsYXNzID0gaXRlbS5oYXNPd25Qcm9wZXJ0eSgnaGVhZGVyQ2xhc3MnKVxyXG5cdFx0Ly8gXHRcdD8gYCR7aXRlbS5oZWFkZXJDbGFzc30gZWRpdGFibGUtY29sdW1uLWhlYWRlcmBcclxuXHRcdC8vIFx0XHQ6ICdlZGl0YWJsZS1jb2x1bW4taGVhZGVyJ1xyXG5cdFx0Ly8gfVxyXG5cdH0pO1xyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IGdyaWRPcHRpb25zSG9va2VyID0gKGdyaWRPcHRpb25zOiBhbnkpID0+IHtcclxuXHRncmlkT3B0aW9ucz8uY29sdW1uRGVmcz8uZm9yRWFjaCgoY29sOiBhbnkpID0+IHtcclxuXHRcdGlmIChjb2wuaGlkZUNvbCkge1xyXG5cdFx0XHRjb2wuaGlkZSA9IGNvbC5oaWRlQ29sO1xyXG5cdFx0XHRkZWxldGUgY29sLmhpZGVDb2w7XHJcblx0XHR9XHJcblx0XHQvLyBAdHMtaWdub3JlXHJcblx0XHRjb25zdCBpc0kxOG4gPSB3aW5kb3cuYXBwSXNJMThuO1xyXG5cdFx0aWYgKGlzSTE4biAmJiAoIWNvbC5oYXNPd25Qcm9wZXJ0eSgnaTE4bktleScpIHx8IGNvbC5pMThuS2V5ID09ICcnKSkge1xuXHRcdFx0Y29sLmkxOG5LZXkgPSBgdGFibGVzLiR7Z3JpZE9wdGlvbnMubW9kZWxOYW1lfS4ke2NvbC5maWVsZH1gO1xuXHRcdH1cblx0XHRpZiAoY29sLmhhc093blByb3BlcnR5KCd0ZXh0V3JhcCcpICYmIGNvbC50ZXh0V3JhcCAmJiBjb2wuY2VsbEVkaXRvciAhPT0gJ2NlbGxFZGl0VGV4dGFyZWFDb21wb25lbnQnKSB7XG5cdFx0XHRjb2wuYXV0b0hlaWdodCA9IHRydWU7XG5cdFx0XHRjb2wuY2VsbENsYXNzID0gJ2NlbGwtd3JhcC10ZXh0Jztcblx0XHR9XG5cdFx0aWYgKGNvbC5jZWxsRWRpdG9yID09PSAnY2VsbEVkaXRUZXh0YXJlYUNvbXBvbmVudCcpIHtcblx0XHRcdGNvbC53cmFwVGV4dCA9IHRydWU7XG5cdFx0XHRjb2wuYXV0b0hlaWdodCA9IHRydWU7XG5cdFx0XHRjb2wuY2VsbENsYXNzID0gYXBwZW5kQ2VsbENsYXNzKGNvbC5jZWxsQ2xhc3MsICdjZWxsLXRleHRhcmVhLXdyYXAtdGV4dCcpO1xuXHRcdFx0c3VwcHJlc3NUZXh0YXJlYVNoaWZ0RW50ZXIoY29sKTtcblx0XHR9XG5cdFx0Y29sLmhlYWRlclZhbHVlR2V0dGVyID0gd3JhcEhlYWRlclZhbHVlR2V0dGVyKGNvbC5oZWFkZXJWYWx1ZUdldHRlciwgY29sKTtcblx0XHRpZiAoY29sLnJvd1NwYW5Db25mKSB7XHJcblx0XHRcdGxldCByb3dTcGFuID0ge1xyXG5cdFx0XHRcdHJvd1NwYW46IChwYXJhbXM6IGFueSkgPT4gY2FsY1Jvd1NwYW4ocGFyYW1zKSxcclxuXHRcdFx0XHRjZWxsUmVuZGVyZXI6ICdyb3dTcGFuUmVuZGVyZXInLFxyXG5cdFx0XHRcdGNlbGxSZW5kZXJlclBhcmFtczoge1xyXG5cdFx0XHRcdFx0cm93U3BhbjogKHBhcmFtczogYW55KSA9PiBjYWxjUm93U3BhbihwYXJhbXMpLFxyXG5cdFx0XHRcdH0sXHJcblx0XHRcdH07XHJcblx0XHRcdE9iamVjdC5hc3NpZ24oY29sLCByb3dTcGFuKTtcclxuXHRcdFx0Z3JpZE9wdGlvbnMuc3VwcHJlc3NSb3dUcmFuc2Zvcm0gPSB0cnVlO1xyXG5cdFx0XHRncmlkT3B0aW9ucy5yb3dDbGFzcyA9ICdyb3dTcGFuJztcclxuXHRcdH1cclxuXHR9KTtcclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCB3cmFwSGVhZGVyVmFsdWVHZXR0ZXIgPSAoZ2V0dGVyOiBhbnksIGNvbERlZjogYW55KSA9PiB7XHJcblx0aWYgKHR5cGVvZiBnZXR0ZXIgIT09ICdmdW5jdGlvbicpIHtcclxuXHRcdHJldHVybiBnZXR0ZXI7XHJcblx0fVxyXG5cdHJldHVybiAocGFyYW1zOiBhbnkpID0+IHtcclxuXHRcdHRyeSB7XHJcblx0XHRcdGNvbnN0IHZhbHVlID0gZ2V0dGVyKHBhcmFtcyk7XHJcblx0XHRcdGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkIHx8IHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSAnJykge1xyXG5cdFx0XHRcdHJldHVybiByZXNvbHZlSGVhZGVyRmFsbGJhY2socGFyYW1zPy5jb2xEZWYgfHwgY29sRGVmKTtcclxuXHRcdFx0fVxyXG5cdFx0XHRyZXR1cm4gdmFsdWU7XHJcblx0XHR9IGNhdGNoIChlcnJvcikge1xyXG5cdFx0XHRjb25zb2xlLmVycm9yKCdoZWFkZXJWYWx1ZUdldHRlciDmiafooYzlpLHotKU6JywgZXJyb3IsIGNvbERlZik7XHJcblx0XHRcdHJldHVybiByZXNvbHZlSGVhZGVyRmFsbGJhY2socGFyYW1zPy5jb2xEZWYgfHwgY29sRGVmKTtcclxuXHRcdH1cclxuXHR9O1xyXG59O1xyXG5cclxuY29uc3QgcmVzb2x2ZUhlYWRlckZhbGxiYWNrID0gKGNvbERlZjogYW55KSA9PiB7XHJcblx0cmV0dXJuIGNvbERlZj8uaGVhZGVyTmFtZSB8fCBjb2xEZWY/LmZpZWxkIHx8ICcnO1xyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IGNvbnZlcnRHcmlkID0gKHRoaXNBcmc6IGFueSwgZ3JpZExpc3Q6IGFueSwgZml0ZXJQcmVsb2FkczogYW55KSA9PiB7XHJcblx0Z3JpZExpc3QuZm9yRWFjaChhc3luYyAoaXRlbTogYW55KSA9PiB7XHJcblx0XHQhaXRlbS50eXBlICYmIChpdGVtLnR5cGUgPSAnZ3JpZCcpO1xyXG5cdFx0bGV0IGdyaWQ6IGFueSA9IHsgdHlwZTogaXRlbS50eXBlIH07XHJcblx0XHRpZiAoaXRlbS5maXRlclByZWxvYWRzIGluc3RhbmNlb2YgQXJyYXkpIHtcclxuXHRcdFx0Zml0ZXJQcmVsb2Fkcy5wdXNoKC4uLml0ZW0uZml0ZXJQcmVsb2Fkcyk7XHJcblx0XHR9XHJcblx0XHRpZiAoaXRlbS50eXBlID09ICdncmlkJykge1xyXG5cdFx0XHRsZXQge1xyXG5cdFx0XHRcdGdyaWRPcHRpb25zOiB7IGNvbHVtbkRlZnMsIC4uLnJlc3RHcmlkT3B0aW9ucyB9LFxyXG5cdFx0XHRcdHN1YlRhYmxlU291cmNlLFxyXG5cdFx0XHRcdHN1YkRhdGFLZXksXHJcblx0XHRcdFx0dGl0bGUsXHJcblx0XHRcdFx0c2VsZWN0RGF0YUNiLFxyXG5cdFx0XHRcdGZrLFxyXG5cdFx0XHRcdG1haW5GaWVsZCxcclxuXHRcdFx0XHR1bmlxdWVGaWVsZCxcclxuXHRcdFx0XHRhZGREYXRhQ2IsXHJcblx0XHRcdFx0ZGVsZXRlRnVuYyxcclxuXHRcdFx0XHRkZWxldGVIaWRkZW4sXHJcblx0XHRcdFx0c2hvd0RlbGV0ZSA9IHRydWUsXHJcblx0XHRcdFx0YWRkSGlkZGVuLFxyXG5cdFx0XHRcdHNjcm9sbEhlaWdodCxcclxuXHRcdFx0XHRkcmFnU29ydCxcclxuXHRcdFx0XHRzZWxlY3Rpb25Nb2RlLFxyXG5cdFx0XHRcdGlzUm93U2VsZWN0YWJsZSxcclxuXHRcdFx0XHRhZGRTb3J0LFxyXG5cdFx0XHRcdHJlZmVyZW5jZSxcclxuXHRcdFx0XHRzbG90S2V5LFxyXG5cdFx0XHRcdHN1YlNhdmUsXHJcblx0XHRcdFx0Z3JpZEN1c3RvbURpc2FibGVkXHJcblx0XHRcdH0gPSBpdGVtO1xyXG5cdFx0XHRncmlkID0geyBzdWJUYWJsZVNvdXJjZSwgc3ViRGF0YUtleSwgdGl0bGUsIHNob3dEZWxldGUsIHNsb3RLZXksIHN1YlNhdmUsIGRlbGV0ZUZ1bmMsIGRlbGV0ZUhpZGRlbiwgYWRkSGlkZGVuLCBncmlkQ3VzdG9tRGlzYWJsZWQsIC4uLmdyaWQgfTtcclxuXHRcdFx0bGV0IGdyaWRPcHRpb25zID0ge1xyXG5cdFx0XHRcdC4uLnJlc3RHcmlkT3B0aW9ucyxcclxuXHRcdFx0XHRmayxcclxuXHRcdFx0XHRzdWJUYWJsZVNvdXJjZSxcclxuXHRcdFx0XHRzdWJEYXRhS2V5LFxyXG5cdFx0XHRcdG1haW5GaWVsZCxcclxuXHRcdFx0XHRyZWZlcmVuY2UsXHJcblx0XHRcdH07XHJcblx0XHRcdC8vIEB0cy1pZ25vcmVcclxuXHRcdFx0aWYgKHdpbmRvdy5hcHBJc0kxOG4gJiYgKCFpdGVtLmhhc093blByb3BlcnR5KCdpMThuS2V5JykgfHwgaXRlbS5pMThuS2V5ID09ICcnKSkge1xyXG5cdFx0XHRcdGdyaWQuaTE4bktleSA9IGB0YWJsZXMuJHt0aGlzQXJnLmdldFBybS5tb2RlbE5hbWV9LiR7c3ViRGF0YUtleX1gO1xyXG5cdFx0XHR9XHJcblx0XHRcdGlmIChncmlkT3B0aW9ucy5yb3dNb2RlbFR5cGUgPT0gJ2NsaWVudFNpZGUnKSB7XHJcblx0XHRcdFx0Z3JpZE9wdGlvbnMuc3VwcHJlc3NSb3dWaXJ0dWFsaXNhdGlvbiA9IHRydWU7XHJcblx0XHRcdH1cclxuXHRcdFx0aWYgKHNjcm9sbEhlaWdodCkge1xyXG5cdFx0XHRcdGdyaWRPcHRpb25zLnNjcm9sbEhlaWdodCA9IHNjcm9sbEhlaWdodDtcclxuXHRcdFx0fVxyXG5cdFx0XHRpZiAoZHJhZ1NvcnQpIHtcclxuXHRcdFx0XHRncmlkT3B0aW9ucy5yb3dEcmFnTWFuYWdlZCA9IHRydWU7XHJcblx0XHRcdFx0Z3JpZE9wdGlvbnMuZHJhZ1NvcnQgPSBkcmFnU29ydDtcclxuXHRcdFx0fVxyXG5cdFx0XHRpZiAoc2VsZWN0aW9uTW9kZSkge1xyXG5cdFx0XHRcdGdyaWRPcHRpb25zLnNlbGVjdGlvbk1vZGUgPSBzZWxlY3Rpb25Nb2RlO1xyXG5cdFx0XHRcdGlmIChzZWxlY3Rpb25Nb2RlICE9ICdub25lJykge1xyXG5cdFx0XHRcdFx0Z3JpZE9wdGlvbnMucm93U2VsZWN0aW9uID0ge1xyXG5cdFx0XHRcdFx0XHRtb2RlOiBzZWxlY3Rpb25Nb2RlID09ICdzaW5nbGUnID8gJ3NpbmdsZVJvdycgOiAnbXVsdGlSb3cnLFxyXG5cdFx0XHRcdFx0XHRpc1Jvd1NlbGVjdGFibGU6IGlzUm93U2VsZWN0YWJsZSA/IGlzUm93U2VsZWN0YWJsZSA6IG51bGwsXHJcblx0XHRcdFx0XHR9O1xyXG5cdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRncmlkT3B0aW9ucy5yb3dTZWxlY3Rpb24gPSB1bmRlZmluZWQ7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHRcdGNvbnZlcnRDb2woZ3JpZE9wdGlvbnMsIGNvbHVtbkRlZnMsIHRoaXNBcmcuYXV0aExldmVsLCBkcmFnU29ydCk7XHJcblx0XHRcdGdyaWRPcHRpb25zLmNvbHVtbkRlZnMgPSBjb2x1bW5EZWZzO1xyXG5cdFx0XHRpZiAoc3ViVGFibGVTb3VyY2UgPT09ICdzZWxlY3QnICYmIGl0ZW0uc2VsZWN0TW9kZWxDb2RlKSB7XHJcblx0XHRcdFx0dGhpc0FyZy53ZWJnZXQoeyBjb2RlOiBpdGVtLnNlbGVjdE1vZGVsQ29kZSB9KS5zdWJzY3JpYmUoKHJlczogYW55KSA9PiB7XHJcblx0XHRcdFx0XHRsZXQgc2VsZWN0Q29udGVudCA9IHBhcnNlRnVuY3Rpb25zKEpTT04ucGFyc2UocmVzLmNvbnRlbnQpLCB0aGlzQXJnKTtcclxuXHRcdFx0XHRcdGdyaWQuc2VsZWN0T3B0aW9ucyA9IHNlbGVjdENvbnRlbnQ/LmdyaWRPcHRpb25zO1xyXG5cdFx0XHRcdFx0Z3JpZC5zZWxlY3RPcHRpb25zLnJvd01vZGVsVHlwZSA9IGdyaWQuc2VsZWN0T3B0aW9ucy5yb3dNb2RlbFR5cGUgfHwgJ3NlcnZlclNpZGUnO1xyXG5cdFx0XHRcdFx0aWYgKGdyaWQuc2VsZWN0T3B0aW9ucy5yb3dNb2RlbFR5cGUgPT0gJ3NlcnZlclNpZGUnKSB7XHJcblx0XHRcdFx0XHRcdGdyaWQuc2VsZWN0T3B0aW9ucy5zZXJ2ZXJGdW5jID0gZ3JpZC5zZWxlY3RPcHRpb25zLnNlcnZlckZ1bmMgfHwgdGhpc0FyZy53ZWJfc2VhcmNoLmJpbmQodGhpc0FyZyk7XHJcblx0XHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0XHRncmlkLnNlbGVjdE9wdGlvbnMuY2xpZW50RnVuYyA9IGdyaWQuc2VsZWN0T3B0aW9ucy5jbGllbnRGdW5jIHx8IHRoaXNBcmcud2ViX3NlYXJjaC5iaW5kKHRoaXNBcmcpO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0Z3JpZC51bmlxdWVGaWVsZCA9IHVuaXF1ZUZpZWxkO1xyXG5cdFx0XHRcdFx0Z3JpZC5zZWxlY3REYXRhQ2IgPSBzZWxlY3REYXRhQ2I7XHJcblx0XHRcdFx0XHRncmlkLnNlbGVjdE9wdGlvbnMuc2Nyb2xsSGVpZ2h0ID0gJzMwMHB4JztcclxuXHRcdFx0XHRcdGdyaWQuc2VsZWN0T3B0aW9ucy5zZWFyY2hQcm0gPSBzZWxlY3RDb250ZW50LnNlYXJjaFBybTtcclxuXHRcdFx0XHRcdGdyaWQuc2VsZWN0TW9kZWxDb2RlID0gaXRlbS5zZWxlY3RNb2RlbENvZGU7XHJcblx0XHRcdFx0XHRjb252ZXJ0Q29sKGdyaWQuc2VsZWN0T3B0aW9ucywgZ3JpZC5zZWxlY3RPcHRpb25zLmNvbHVtbkRlZnMhLCAxKTtcclxuXHRcdFx0XHR9KTtcclxuXHRcdFx0XHRncmlkLnNlYXJjaFBybSA9IHsgLi4udGhpc0FyZy5zZWFyY2hQcm0gfTtcclxuXHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRhZGREYXRhQ2IgJiYgKGdyaWRPcHRpb25zLmFkZERhdGFDYiA9IGFkZERhdGFDYik7XHJcblx0XHRcdH1cclxuXHRcdFx0Z3JpZC5ncmlkT3B0aW9ucyA9IGdyaWRPcHRpb25zO1xyXG5cdFx0XHRhZGRTb3J0ICYmIChncmlkLmFkZFNvcnQgPSBhZGRTb3J0KTtcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdGl0ZW0uaW50ZXJhY3RpdmVMYWJlbCA9IHRydWU7XHJcblx0XHRcdGdyaWQgPSB7XHJcblx0XHRcdFx0Li4uaXRlbSxcclxuXHRcdFx0fTtcclxuXHRcdFx0Z3JpZC5mb3JtID0gbmV3IEZvcm1Hcm91cCh7fSk7XHJcblx0XHR9XHJcblx0XHR0aGlzQXJnLmdyaWRzLnB1c2goZ3JpZCk7XHJcblx0fSk7XHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgY29udmVydEZvcm0gPSAodGhpc0FyZzogYW55LCBncm91cEFycjogYW55LCBzb3VyY2VEYXRhOiBhbnkpID0+IHtcclxuXHRncm91cEFyci5mb3JFYWNoKChpdGVtOiBhbnkpID0+IHtcclxuXHRcdGlmICh0aGlzQXJnLmF1dGhMZXZlbCA8IDMpIHtcclxuXHRcdFx0aXRlbVtmb3JtVHlwZVRvUHJvcHNbaXRlbS50eXBlXV0uZGlzYWJsZWQgPSB0cnVlO1xyXG5cdFx0fVxyXG5cdH0pO1xyXG5cdHRoaXNBcmcuZm9ybU9wdGlvbnMgPSB7XHJcblx0XHRmaWVsZHM6IFtcclxuXHRcdFx0e1xyXG5cdFx0XHRcdGdyb3VwQ2xhc3M6ICdmbGV4IGZsZXgtcm93IGZsZXgtd3JhcCcsXHJcblx0XHRcdFx0Z3JvdXA6IGdyb3VwQXJyLFxyXG5cdFx0XHR9LFxyXG5cdFx0XSxcclxuXHRcdGZvcm06IG5ldyBGb3JtR3JvdXAoe30pLFxyXG5cdFx0bWFpbkZpZWxkOiBzb3VyY2VEYXRhLm1vZGVsLm1haW5GaWVsZHMsXHJcblx0XHRtb2RlbE5hbWU6IHNvdXJjZURhdGEubW9kZWwubW9kZWxOYW1lLFxyXG5cdFx0ZXh0cmE6IHsgdGhpc0FyZyB9LFxyXG5cdH07XHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgY2xlYXJMb2NhbCA9ICgpID0+IHtcclxuXHRsZXQgdGhlbWVDb25maWdTdGF0ZSA9IHdpbmRvdy5sb2NhbFN0b3JhZ2UuZ2V0SXRlbSgndGhlbWVDb25maWdTdGF0ZScpO1xyXG5cdHdpbmRvdy5sb2NhbFN0b3JhZ2UuY2xlYXIoKTtcclxuXHRpZiAodGhlbWVDb25maWdTdGF0ZSkge1xyXG5cdFx0d2luZG93LmxvY2FsU3RvcmFnZS5zZXRJdGVtKCd0aGVtZUNvbmZpZ1N0YXRlJywgdGhlbWVDb25maWdTdGF0ZSk7XHJcblx0fVxyXG5cdHdpbmRvdy5zZXNzaW9uU3RvcmFnZS5jbGVhcigpO1xyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IHBhZ2VMaXN0R3JpZE9wdGlvbnMgPSAoZ3JpZE9wdGlvbnM6IGFueSwgdGhpc0FyZzogYW55KSA9PiB7XHJcblx0Z3JpZE9wdGlvbnMuc2Nyb2xsSGVpZ2h0ID0gJ2NhbGMoMTAwdmggLSA5NXB4KSc7XHJcblx0Z3JpZE9wdGlvbnMucm93TW9kZWxUeXBlID0gZ3JpZE9wdGlvbnMucm93TW9kZWxUeXBlIHx8ICdzZXJ2ZXJTaWRlJztcclxuXHRpZiAoZ3JpZE9wdGlvbnMucm93TW9kZWxUeXBlID09ICdzZXJ2ZXJTaWRlJykge1xyXG5cdFx0Z3JpZE9wdGlvbnMuc2VydmVyRnVuYyA9IGdyaWRPcHRpb25zLnNlcnZlckZ1bmMgfHwgdGhpc0FyZy53ZWJfc2VhcmNoLmJpbmQodGhpc0FyZyk7XHJcblx0fSBlbHNlIHtcclxuXHRcdGdyaWRPcHRpb25zLmNsaWVudEZ1bmMgPSBncmlkT3B0aW9ucy5jbGllbnRGdW5jIHx8IHRoaXNBcmcud2ViX3NlYXJjaC5iaW5kKHRoaXNBcmcpO1xyXG5cdH1cclxuXHRpZiAoZ3JpZE9wdGlvbnMuc2VsZWN0aW9uTW9kZSkge1xyXG5cdFx0Ly8gZ3JpZE9wdGlvbnMuc2VsZWN0aW9uTW9kZSA9IHNlbGVjdGlvbk1vZGVcclxuXHRcdGlmIChncmlkT3B0aW9ucy5zZWxlY3Rpb25Nb2RlICE9ICdub25lJykge1xyXG5cdFx0XHRncmlkT3B0aW9ucy5yb3dTZWxlY3Rpb24gPSB7XHJcblx0XHRcdFx0bW9kZTogZ3JpZE9wdGlvbnMuc2VsZWN0aW9uTW9kZSA9PSAnc2luZ2xlJyA/ICdzaW5nbGVSb3cnIDogJ211bHRpUm93JyxcclxuXHRcdFx0XHRpc1Jvd1NlbGVjdGFibGU6IGdyaWRPcHRpb25zLmlzUm93U2VsZWN0YWJsZSA/IGdyaWRPcHRpb25zLmlzUm93U2VsZWN0YWJsZSA6IHVuZGVmaW5lZCxcclxuXHRcdFx0fTtcclxuXHRcdFx0aWYgKGdyaWRPcHRpb25zLmhhc093blByb3BlcnR5KCdoZWFkZXJDaGVja2JveCcpICYmIGdyaWRPcHRpb25zLnJvd1NlbGVjdGlvbi5tb2RlID09ICdtdWx0aVJvdycpIHtcclxuXHRcdFx0XHRncmlkT3B0aW9ucy5yb3dTZWxlY3Rpb24uaGVhZGVyQ2hlY2tib3ggPSBncmlkT3B0aW9ucy5oZWFkZXJDaGVja2JveDtcclxuXHRcdFx0fVxyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0Z3JpZE9wdGlvbnMucm93U2VsZWN0aW9uID0gdW5kZWZpbmVkO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRjb252ZXJ0Q29sKGdyaWRPcHRpb25zLCBncmlkT3B0aW9ucy5jb2x1bW5EZWZzISwgMSk7XHJcblx0cmV0dXJuIGdyaWRPcHRpb25zO1xyXG59O1xyXG4vLyDmt7Hluqbmi7fotJ1cclxuZXhwb3J0IGNvbnN0IGRlZXBDbG9uZSA9IChzb3VyY2U6IGFueSwgdGhhdDogYW55LCBjYWNoZT86IGFueSkgPT4ge1xyXG5cdGlmICghY2FjaGUpIHtcclxuXHRcdGNhY2hlID0gbmV3IE1hcCgpO1xyXG5cdH1cclxuXHRpZiAoaXNPYnNlcnZhYmxlKHNvdXJjZSkpIHtcclxuXHRcdHJldHVybiBzb3VyY2U7XHJcblx0fVxyXG5cdGlmIChzb3VyY2UgaW5zdGFuY2VvZiBPYmplY3QpIHtcclxuXHRcdC8vIOS4jeiAg+iZkei3qCBpZnJhbWVcclxuXHRcdGlmIChjYWNoZS5nZXQoc291cmNlKSkge1xyXG5cdFx0XHRyZXR1cm4gY2FjaGUuZ2V0KHNvdXJjZSk7XHJcblx0XHR9XHJcblx0XHRsZXQgcmVzdWx0OiBhbnk7XHJcblx0XHRpZiAoc291cmNlIGluc3RhbmNlb2YgRnVuY3Rpb24pIHtcclxuXHRcdFx0aWYgKHNvdXJjZS5wcm90b3R5cGUpIHtcclxuXHRcdFx0XHQvLyDmnIkgcHJvdG90eXBlIOWwseaYr+aZrumAmuWHveaVsFxyXG5cdFx0XHRcdHJlc3VsdCA9IGZ1bmN0aW9uICgpIHtcclxuXHRcdFx0XHRcdHJldHVybiBzb3VyY2UuYXBwbHkodGhhdCwgYXJndW1lbnRzKTtcclxuXHRcdFx0XHR9O1xyXG5cdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdHJlc3VsdCA9ICguLi5hcmdzOiBhbnkpID0+IHtcclxuXHRcdFx0XHRcdHJldHVybiBzb3VyY2UuY2FsbCh1bmRlZmluZWQsIC4uLmFyZ3MpO1xyXG5cdFx0XHRcdH07XHJcblx0XHRcdH1cclxuXHRcdH0gZWxzZSBpZiAoc291cmNlIGluc3RhbmNlb2YgQXJyYXkpIHtcclxuXHRcdFx0cmVzdWx0ID0gW107XHJcblx0XHR9IGVsc2UgaWYgKHNvdXJjZSBpbnN0YW5jZW9mIERhdGUpIHtcclxuXHRcdFx0cmVzdWx0ID0gbmV3IERhdGUoKHNvdXJjZSBhcyBhbnkpIC0gMCk7XHJcblx0XHR9IGVsc2UgaWYgKHNvdXJjZSBpbnN0YW5jZW9mIFJlZ0V4cCkge1xyXG5cdFx0XHRyZXN1bHQgPSBuZXcgUmVnRXhwKHNvdXJjZS5zb3VyY2UsIHNvdXJjZS5mbGFncyk7XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHRyZXN1bHQgPSB7fTtcclxuXHRcdH1cclxuXHRcdGNhY2hlLnNldChzb3VyY2UsIHJlc3VsdCk7XHJcblx0XHRmb3IgKGxldCBrZXkgaW4gc291cmNlKSB7XHJcblx0XHRcdGlmIChzb3VyY2UuaGFzT3duUHJvcGVydHkoa2V5KSkge1xyXG5cdFx0XHRcdHJlc3VsdFtrZXldID0gZGVlcENsb25lKHNvdXJjZVtrZXldLCB0aGF0LCBjYWNoZSk7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdHJldHVybiByZXN1bHQ7XHJcblx0fSBlbHNlIHtcclxuXHRcdHJldHVybiBzb3VyY2U7XHJcblx0fVxyXG59O1xyXG4iXX0=
|