imm-element-ui 0.9.7 → 0.9.9

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.
@@ -330,7 +330,7 @@ export class PageFormComponent extends AmComponent {
330
330
  }, 0);
331
331
  }
332
332
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PageFormComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
333
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: PageFormComponent, isStandalone: true, selector: "app-page-form", inputs: { addVisible: { classPropertyName: "addVisible", publicName: "addVisible", isSignal: true, isRequired: false, transformFunction: null }, gridList: { classPropertyName: "gridList", publicName: "gridList", isSignal: true, isRequired: false, transformFunction: null }, form: { classPropertyName: "form", publicName: "form", isSignal: true, isRequired: true, transformFunction: null }, getPrmInput: { classPropertyName: "getPrmInput", publicName: "getPrmInput", isSignal: true, isRequired: true, transformFunction: null }, statusSteps: { classPropertyName: "statusSteps", publicName: "statusSteps", isSignal: true, isRequired: false, transformFunction: null }, statusKey: { classPropertyName: "statusKey", publicName: "statusKey", isSignal: true, isRequired: false, transformFunction: null }, hrefBtnList: { classPropertyName: "hrefBtnList", publicName: "hrefBtnList", isSignal: true, isRequired: false, transformFunction: null }, setTitle: { classPropertyName: "setTitle", publicName: "setTitle", isSignal: true, isRequired: false, transformFunction: null }, actionList: { classPropertyName: "actionList", publicName: "actionList", isSignal: true, isRequired: false, transformFunction: null }, modelLog: { classPropertyName: "modelLog", publicName: "modelLog", isSignal: true, isRequired: false, transformFunction: null }, formDisabled: { classPropertyName: "formDisabled", publicName: "formDisabled", isSignal: true, isRequired: false, transformFunction: null }, statusConf: { classPropertyName: "statusConf", publicName: "statusConf", isSignal: true, isRequired: false, transformFunction: null }, formDetail: { classPropertyName: "formDetail", publicName: "formDetail", isSignal: true, isRequired: false, transformFunction: null }, saveFunc: { classPropertyName: "saveFunc", publicName: "saveFunc", isSignal: true, isRequired: false, transformFunction: null }, authLevel: { classPropertyName: "authLevel", publicName: "authLevel", isSignal: true, isRequired: false, transformFunction: null } }, providers: [], viewQueries: [{ propertyName: "cForm", first: true, predicate: ["cForm"], descendants: true }, { propertyName: "customGrid", predicate: ["customGrid"], descendants: true }, { propertyName: "tabForm", predicate: ["tabForm"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"md:overflow-hidden\">\r\n\t<div class=\"flex md:flex-wrap lg:flex-nowrap items-center md:justify-between py-1 px-1 border-b-[1px] border-[#dbdbdb] bg-white\">\r\n\t\t<div class=\"md:basis-1/3 order-1\">\r\n\t\t\t<app-crumb-action\r\n\t\t\t\t[addVisible]=\"addVisible()\"\r\n\t\t\t\t[newUrl]=\"newUrl\"\r\n\t\t\t\t[isShowCog]=\"true\"\r\n\t\t\t\t[outlined]=\"true\"\r\n\t\t\t\t[authLevel]=\"authLevel()\"\r\n\t\t\t\t[actionList]=\"actionList()\"\r\n\t\t\t\t[data]=\"getPrm.data ?? {}\"\r\n\t\t\t\t[saveBtnDisable]=\"saveBtnDisable\"\r\n\t\t\t\t(actionEvent)=\"authClick($event)\"\r\n\t\t\t\t(saveEvent)=\"submitForm()\">\r\n\t\t\t</app-crumb-action>\r\n\t\t</div>\r\n\r\n\t\t<div class=\"basis-1/5 lg:basis-2/3 order-2 lg:order-2 md:order-last md:basis-full md:mt-[6px]\">\r\n\t\t\t<href-btn-list\r\n\t\t\t\t[hrefs]=\"hrefBtnList()\"\r\n\t\t\t\t(hrefClick)=\"goRun($event)\"></href-btn-list>\r\n\t\t\t<!-- @if (id) {\r\n\t\t\t\t@for (btn of hrefBtnList(); track btn) {\r\n\t\t\t\t\t<p-button\r\n\t\t\t\t\t\t[variant]=\"btn?.variant\"\r\n\t\t\t\t\t\t[severity]=\"btn?.severity\"\r\n\t\t\t\t\t\tclass=\"mr-[6px]\"\r\n\t\t\t\t\t\tsize=\"small\"\r\n\t\t\t\t\t\t[icon]=\"btn?.icon\"\r\n\t\t\t\t\t\tlabel=\"{{ btn.i18nKey ? i18n.fanyi(btn.i18nKey) : btn.label }}\"\r\n\t\t\t\t\t\t(click)=\"goRun(btn)\">\r\n\t\t\t\t\t</p-button>\r\n\t\t\t\t}\r\n\t\t\t} -->\r\n\t\t</div>\r\n\t\t<div class=\"basis-1/3 order-3\"></div>\r\n\t</div>\r\n\t<div class=\"flex\">\r\n\t\t<div class=\"px-2 flex flex-wrap items-center flex-1\">\r\n\t\t\t<div class=\"hidden md:basis-1/3 py-1 basis-full md:flex items-center flex-row order-1\">\r\n\t\t\t\t@for (action of actionList(); let i = $index; track action) {\r\n\t\t\t\t\t<p-button\r\n\t\t\t\t\t\tsize=\"small\"\r\n\t\t\t\t\t\t[icon]=\"getPrm.data?.icon\"\r\n\t\t\t\t\t\t[label]=\"action.i18nKey ? (action.i18nKey | translate) : action.label\"\r\n\t\t\t\t\t\t[disabled]=\"action.btnDisabled ? action.btnDisabled(getPrm.data) : false\"\r\n\t\t\t\t\t\t[styleClass]=\"\r\n\t\t\t\t\t\t\t(action.auth || 0) > (authLevel() || 0) || !!action.btnHidden?.(getPrm.data)\r\n\t\t\t\t\t\t\t\t? 'form-action hidden'\r\n\t\t\t\t\t\t\t\t: 'form-action block mr-[.5rem]'\r\n\t\t\t\t\t\t\"\r\n\t\t\t\t\t\t(onClick)=\"action.onClick != '' && action.onClick?.(getPrm.data)\">\r\n\t\t\t\t\t</p-button>\r\n\t\t\t\t}\r\n\t\t\t</div>\r\n\t\t\t<div class=\"md:basis-2/3 basis-full flex md:flex-row-reverse flex-row md:order-2 order-first w-full\">\r\n\t\t\t\t<custom-steps\r\n\t\t\t\t\t#customSteps\r\n\t\t\t\t\tclass=\"w-full\"\r\n\t\t\t\t\t[steps]=\"statusSteps()\"\r\n\t\t\t\t\t[modelLog]=\"modelLog()\"\r\n\t\t\t\t\t[current]=\"getPrm.data && getPrm.data[statusKey()] !== undefined ? getPrm.data[statusKey()] : 0\"\r\n\t\t\t\t\t[authLevel]=\"authLevel()\"\r\n\t\t\t\t\t[isClick]=\"this.statusConf().isClick\"\r\n\t\t\t\t\t(change)=\"statusChange($event, customSteps)\">\r\n\t\t\t\t</custom-steps>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t\t@if (modelLog()) {\r\n\t\t\t<div class=\"md:w-[400px]\"></div>\r\n\t\t}\r\n\t</div>\r\n\t<div class=\"main flex flex-wrap md:overflow-y-hidden\">\r\n\t\t<div class=\"w-full md:flex-1 md:h-full overflow-y-auto\">\r\n\t\t\t<div class=\"bg-white mx-2 form-panel\">\r\n\t\t\t\t<div class=\"p-2 flex-1\">\r\n\t\t\t\t\t<form [formGroup]=\"form().form!\">\r\n\t\t\t\t\t\t<custom-form\r\n\t\t\t\t\t\t\t#cForm\r\n\t\t\t\t\t\t\t[options]=\"formOptions\"\r\n\t\t\t\t\t\t\t[upsert]=\"upsertPrm\"\r\n\t\t\t\t\t\t\t[model]=\"getPrm.data ?? {}\"></custom-form>\r\n\t\t\t\t\t</form>\r\n\t\t\t\t</div>\r\n\t\t\t\t@if (gridList() && gridList().length > 0) {\r\n\t\t\t\t\t<div class=\"relative mb-2\">\r\n\t\t\t\t\t\t<p-tabs [(value)]=\"indexValue\">\r\n\t\t\t\t\t\t\t<p-tablist>\r\n\t\t\t\t\t\t\t\t@for (fchild of gridList(); let i = $index; track fchild) {\r\n\t\t\t\t\t\t\t\t\t<p-tab\r\n\t\t\t\t\t\t\t\t\t\t[value]=\"i\"\r\n\t\t\t\t\t\t\t\t\t\t(click)=\"tabClick()\">\r\n\t\t\t\t\t\t\t\t\t\t{{ fchild.i18nKey ? i18n.fanyi(fchild.i18nKey) : fchild.title }}\r\n\t\t\t\t\t\t\t\t\t</p-tab>\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t</p-tablist>\r\n\t\t\t\t\t\t</p-tabs>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t}\r\n\t\t\t\t@for (grid of gridList(); let i = $index; track grid) {\r\n\t\t\t\t\t@if (grid.type == 'grid') {\r\n\t\t\t\t\t\t<custom-grid\r\n\t\t\t\t\t\t\t#customGrid\r\n\t\t\t\t\t\t\t[hidden]=\"indexValue != i\"\r\n\t\t\t\t\t\t\t[rowData]=\"getPrm.data?.[grid.subDataKey!] || []\"\r\n\t\t\t\t\t\t\t[upsert]=\"upsertPrm\"\r\n\t\t\t\t\t\t\t(deleteEmit)=\"delRows($event)\"\r\n\t\t\t\t\t\t\t[addType]=\"grid.subTableSource\"\r\n\t\t\t\t\t\t\t(addEmit)=\"dataSourceShow()\"\r\n\t\t\t\t\t\t\t[gridOptions]=\"grid.gridOptions\"\r\n\t\t\t\t\t\t\t[gridDisable]=\"gridDisable\"\r\n\t\t\t\t\t\t\t[authLevel]=\"authLevel()\"\r\n\t\t\t\t\t\t\t[showDelete]=\"grid.showDelete\"\r\n\t\t\t\t\t\t\t[selectData]=\"grid.selectData\">\r\n\t\t\t\t\t\t</custom-grid>\r\n\t\t\t\t\t} @else {\r\n\t\t\t\t\t\t<!-- @if(indexValue == i){\r\n\t\t\t\t\t\t\t<form [formGroup]=\"grid.form!\">\r\n\t\t\t\t\t\t\t\t<custom-form\r\n\t\t\t\t\t\t\t\t[options]=\"grid\"\r\n\t\t\t\t\t\t\t\t[upsert]=\"upsertPrm\"\r\n\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t</custom-form>\r\n\t\t\t\t\t\t\t</form>\r\n\t\t\t\t\t\t} -->\r\n\t\t\t\t\t\t<custom-form\r\n\t\t\t\t\t\t\t#tabForm\r\n\t\t\t\t\t\t\t[hidden]=\"indexValue != i\"\r\n\t\t\t\t\t\t\t[options]=\"grid\"\r\n\t\t\t\t\t\t\t[upsert]=\"upsertPrm\"\r\n\t\t\t\t\t\t\t[model]=\"subFormModel[grid.subDataKey!] || {}\">\r\n\t\t\t\t\t\t</custom-form>\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t\t@if (modelLog()) {\r\n\t\t\t<div class=\"w-full md:w-[400px] md:h-full overflow-y-auto\">\r\n\t\t\t\t<custom-log [logs]=\"getPrm.data?.log ?? []\"></custom-log>\r\n\t\t\t</div>\r\n\t\t}\r\n\t</div>\r\n</div>\r\n<row-selector\r\n\t[(visible)]=\"visible\"\r\n\t[searchPrm]=\"dialogSearchPrm\"\r\n\t[gridOptions]=\"selectOptions\"\r\n\t[selectionKeys]=\"selectionKeys\"\r\n\t(onOk)=\"onOk($event)\">\r\n</row-selector>\r\n", styles: ["@charset \"UTF-8\";.main{height:calc(100vh - 128px)}:host ::ng-deep .main .ag-root-wrapper{border-left:none!important;border-right:none!important;border-bottom:none!important}:host ::ng-deep .form-action{background:#e7e9ed!important;color:var(--ag-text-color)!important;border-color:#e7e9ed!important}:host ::ng-deep .form-action:not(:disabled):hover{background-color:#d8dadd!important;border-color:#d8dadd}.form-panel{border:solid 1px #dbdbdb}\n"], dependencies: [{ kind: "ngmodule", type: ButtonModule }, { kind: "component", type: i1.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: ReactiveFormsModule }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: FormComponent, selector: "custom-form", inputs: ["options", "model", "upsert"] }, { kind: "component", type: LogComponent, selector: "custom-log", inputs: ["logs", "id"] }, { kind: "component", type: CrumbActionComponent, selector: "app-crumb-action", inputs: ["isShowCog", "addVisible", "newUrl", "onExport", "outlined", "isList", "authLevel", "actionList", "data", "menus", "saveBtnDisable"], outputs: ["saveEvent", "cancelEvent", "actionEvent"] }, { kind: "component", type: StepsComponent, selector: "custom-steps", inputs: ["modelLog", "needSelfAdjusting", "steps", "current", "authLevel", "isClick"], outputs: ["change"] }, { kind: "component", type: GridComponent, selector: "custom-grid", inputs: ["gridOptions", "selectionKeys", "upsert", "rowData", "searchPrm", "addType", "selectData", "showAct", "actPos", "authLevel", "showDelete", "gridDisable"], outputs: ["deleteEmit", "addEmit"] }, { kind: "ngmodule", type: TabsModule }, { kind: "component", type: i3.Tabs, selector: "p-tabs", inputs: ["value", "scrollable", "lazy", "selectOnFocus", "showNavigators", "tabindex"], outputs: ["valueChange"] }, { kind: "component", type: i3.TabList, selector: "p-tablist" }, { kind: "component", type: i3.Tab, selector: "p-tab", inputs: ["value", "disabled"], outputs: ["valueChange"] }, { kind: "component", type: RowSelectorComponent, selector: "row-selector", inputs: ["title", "selectionKeys", "gridOptions", "searchPrm", "visible"], outputs: ["onOk", "visibleChange"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "component", type: HrefBtnListComponent, selector: "href-btn-list", inputs: ["hrefs"], outputs: ["hrefClick"] }] }); }
333
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: PageFormComponent, isStandalone: true, selector: "app-page-form", inputs: { addVisible: { classPropertyName: "addVisible", publicName: "addVisible", isSignal: true, isRequired: false, transformFunction: null }, gridList: { classPropertyName: "gridList", publicName: "gridList", isSignal: true, isRequired: false, transformFunction: null }, form: { classPropertyName: "form", publicName: "form", isSignal: true, isRequired: true, transformFunction: null }, getPrmInput: { classPropertyName: "getPrmInput", publicName: "getPrmInput", isSignal: true, isRequired: true, transformFunction: null }, statusSteps: { classPropertyName: "statusSteps", publicName: "statusSteps", isSignal: true, isRequired: false, transformFunction: null }, statusKey: { classPropertyName: "statusKey", publicName: "statusKey", isSignal: true, isRequired: false, transformFunction: null }, hrefBtnList: { classPropertyName: "hrefBtnList", publicName: "hrefBtnList", isSignal: true, isRequired: false, transformFunction: null }, setTitle: { classPropertyName: "setTitle", publicName: "setTitle", isSignal: true, isRequired: false, transformFunction: null }, actionList: { classPropertyName: "actionList", publicName: "actionList", isSignal: true, isRequired: false, transformFunction: null }, modelLog: { classPropertyName: "modelLog", publicName: "modelLog", isSignal: true, isRequired: false, transformFunction: null }, formDisabled: { classPropertyName: "formDisabled", publicName: "formDisabled", isSignal: true, isRequired: false, transformFunction: null }, statusConf: { classPropertyName: "statusConf", publicName: "statusConf", isSignal: true, isRequired: false, transformFunction: null }, formDetail: { classPropertyName: "formDetail", publicName: "formDetail", isSignal: true, isRequired: false, transformFunction: null }, saveFunc: { classPropertyName: "saveFunc", publicName: "saveFunc", isSignal: true, isRequired: false, transformFunction: null }, authLevel: { classPropertyName: "authLevel", publicName: "authLevel", isSignal: true, isRequired: false, transformFunction: null } }, providers: [], viewQueries: [{ propertyName: "cForm", first: true, predicate: ["cForm"], descendants: true }, { propertyName: "customGrid", predicate: ["customGrid"], descendants: true }, { propertyName: "tabForm", predicate: ["tabForm"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"md:overflow-hidden\">\n\t<div class=\"flex md:flex-wrap lg:flex-nowrap items-center md:justify-between py-1 px-1 border-b-[1px] border-[#dbdbdb] bg-white\">\n\t\t<div class=\"md:basis-1/3 order-1\">\n\t\t\t<app-crumb-action\n\t\t\t\t[addVisible]=\"addVisible()\"\n\t\t\t\t[newUrl]=\"newUrl\"\n\t\t\t\t[isShowCog]=\"true\"\n\t\t\t\t[outlined]=\"true\"\n\t\t\t\t[authLevel]=\"authLevel()\"\n\t\t\t\t[actionList]=\"actionList()\"\n\t\t\t\t[data]=\"getPrm.data ?? {}\"\n\t\t\t\t[saveBtnDisable]=\"saveBtnDisable\"\n\t\t\t\t(actionEvent)=\"authClick($event)\"\n\t\t\t\t(saveEvent)=\"submitForm()\">\n\t\t\t</app-crumb-action>\n\t\t</div>\n\n\t\t<div class=\"basis-1/5 lg:basis-2/3 order-2 lg:order-2 md:order-last md:basis-full md:mt-[6px]\">\n\t\t\t<href-btn-list\n\t\t\t\t[hrefs]=\"hrefBtnList()\"\n\t\t\t\t(hrefClick)=\"goRun($event)\"></href-btn-list>\n\t\t\t<!-- @if (id) {\n\t\t\t\t@for (btn of hrefBtnList(); track btn) {\n\t\t\t\t\t<p-button\n\t\t\t\t\t\t[variant]=\"btn?.variant\"\n\t\t\t\t\t\t[severity]=\"btn?.severity\"\n\t\t\t\t\t\tclass=\"mr-[6px]\"\n\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t[icon]=\"btn?.icon\"\n\t\t\t\t\t\tlabel=\"{{ btn.i18nKey ? i18n.fanyi(btn.i18nKey) : btn.label }}\"\n\t\t\t\t\t\t(click)=\"goRun(btn)\">\n\t\t\t\t\t</p-button>\n\t\t\t\t}\n\t\t\t} -->\n\t\t</div>\n\t\t<div class=\"basis-1/3 order-3\"></div>\n\t</div>\n\t<div class=\"flex\">\n\t\t<div class=\"px-2 flex flex-wrap items-center flex-1\">\n\t\t\t<div class=\"hidden md:basis-1/3 py-1 basis-full md:flex items-center flex-row order-1\">\n\t\t\t\t@for (action of actionList(); let i = $index; track action) {\n\t\t\t\t\t<p-button\n\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t[icon]=\"getPrm.data?.icon\"\n\t\t\t\t\t\t[label]=\"action.i18nKey ? (action.i18nKey | translate) : action.label\"\n\t\t\t\t\t\t[disabled]=\"action.btnDisabled ? action.btnDisabled(getPrm.data) : false\"\n\t\t\t\t\t\t[styleClass]=\"\n\t\t\t\t\t\t\t(action.auth || 0) > (authLevel() || 0) || !!action.btnHidden?.(getPrm.data)\n\t\t\t\t\t\t\t\t? 'form-action hidden'\n\t\t\t\t\t\t\t\t: 'form-action block mr-[.5rem]'\n\t\t\t\t\t\t\"\n\t\t\t\t\t\t(onClick)=\"action.onClick != '' && action.onClick?.(getPrm.data)\">\n\t\t\t\t\t</p-button>\n\t\t\t\t}\n\t\t\t</div>\n\t\t\t<div class=\"md:basis-2/3 basis-full flex md:flex-row-reverse flex-row md:order-2 order-first w-full\">\n\t\t\t\t<custom-steps\n\t\t\t\t\t#customSteps\n\t\t\t\t\tclass=\"w-full\"\n\t\t\t\t\t[steps]=\"statusSteps()\"\n\t\t\t\t\t[modelLog]=\"modelLog()\"\n\t\t\t\t\t[current]=\"getPrm.data && getPrm.data[statusKey()] !== undefined ? getPrm.data[statusKey()] : 0\"\n\t\t\t\t\t[authLevel]=\"authLevel()\"\n\t\t\t\t\t[isClick]=\"this.statusConf().isClick\"\n\t\t\t\t\t(change)=\"statusChange($event, customSteps)\">\n\t\t\t\t</custom-steps>\n\t\t\t</div>\n\t\t</div>\n\t\t@if (modelLog()) {\n\t\t\t<div class=\"md:w-[400px]\"></div>\n\t\t}\n\t</div>\n\t<div class=\"main flex flex-wrap md:overflow-y-hidden\">\n\t\t<div class=\"w-full md:flex-1 md:h-full overflow-y-auto\">\n\t\t\t<div class=\"bg-white mx-2 form-panel\">\n\t\t\t\t<div class=\"p-2 flex-1\">\n\t\t\t\t\t<form [formGroup]=\"form().form!\">\n\t\t\t\t\t\t<custom-form\n\t\t\t\t\t\t\t#cForm\n\t\t\t\t\t\t\t[options]=\"formOptions\"\n\t\t\t\t\t\t\t[upsert]=\"upsertPrm\"\n\t\t\t\t\t\t\t[model]=\"getPrm.data ?? {}\"></custom-form>\n\t\t\t\t\t</form>\n\t\t\t\t</div>\n\t\t\t\t@if (gridList() && gridList().length > 0) {\n\t\t\t\t\t<div class=\"relative mb-2\">\n\t\t\t\t\t\t<p-tabs [(value)]=\"indexValue\">\n\t\t\t\t\t\t\t<p-tablist>\n\t\t\t\t\t\t\t\t@for (fchild of gridList(); let i = $index; track fchild) {\n\t\t\t\t\t\t\t\t\t<p-tab\n\t\t\t\t\t\t\t\t\t\t[value]=\"i\"\n\t\t\t\t\t\t\t\t\t\t(click)=\"tabClick()\">\n\t\t\t\t\t\t\t\t\t\t{{ fchild.i18nKey ? i18n.fanyi(fchild.i18nKey) : fchild.title }}\n\t\t\t\t\t\t\t\t\t</p-tab>\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t</p-tablist>\n\t\t\t\t\t\t</p-tabs>\n\t\t\t\t\t</div>\n\t\t\t\t}\n\t\t\t\t@for (grid of gridList(); let i = $index; track grid) {\n\t\t\t\t\t@if (grid.type == 'grid') {\n\t\t\t\t\t\t<custom-grid\n\t\t\t\t\t\t\t#customGrid\n\t\t\t\t\t\t\t[hidden]=\"indexValue != i\"\n\t\t\t\t\t\t\t[rowData]=\"getPrm.data?.[grid.subDataKey!] || []\"\n\t\t\t\t\t\t\t[upsert]=\"upsertPrm\"\n\t\t\t\t\t\t\t(deleteEmit)=\"delRows($event)\"\n\t\t\t\t\t\t\t[addType]=\"grid.subTableSource\"\n\t\t\t\t\t\t\t(addEmit)=\"dataSourceShow()\"\n\t\t\t\t\t\t\t[gridOptions]=\"grid.gridOptions\"\n\t\t\t\t\t\t\t[gridDisable]=\"gridDisable\"\n\t\t\t\t\t\t\t[authLevel]=\"authLevel()\"\n\t\t\t\t\t\t\t[showDelete]=\"grid.showDelete\"\n\t\t\t\t\t\t\t[selectData]=\"grid.selectData\">\n\t\t\t\t\t\t</custom-grid>\n\t\t\t\t\t} @else {\n\t\t\t\t\t\t<!-- @if(indexValue == i){\n\t\t\t\t\t\t\t<form [formGroup]=\"grid.form!\">\n\t\t\t\t\t\t\t\t<custom-form\n\t\t\t\t\t\t\t\t[options]=\"grid\"\n\t\t\t\t\t\t\t\t[upsert]=\"upsertPrm\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t</custom-form>\n\t\t\t\t\t\t\t</form>\n\t\t\t\t\t\t} -->\n\t\t\t\t\t\t<custom-form\n\t\t\t\t\t\t\t#tabForm\n\t\t\t\t\t\t\t[hidden]=\"indexValue != i\"\n\t\t\t\t\t\t\t[options]=\"grid\"\n\t\t\t\t\t\t\t[upsert]=\"upsertPrm\"\n\t\t\t\t\t\t\t[model]=\"subFormModel[grid.subDataKey!] || {}\">\n\t\t\t\t\t\t</custom-form>\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t</div>\n\t\t</div>\n\t\t@if (modelLog()) {\n\t\t\t<div class=\"w-full md:w-[400px] md:h-full overflow-y-auto\">\n\t\t\t\t<custom-log [logs]=\"getPrm.data?.log ?? []\"></custom-log>\n\t\t\t</div>\n\t\t}\n\t</div>\n</div>\n<row-selector\n\t[(visible)]=\"visible\"\n\t[searchPrm]=\"dialogSearchPrm\"\n\t[gridOptions]=\"selectOptions\"\n\t[selectionKeys]=\"selectionKeys\"\n\t(onOk)=\"onOk($event)\">\n</row-selector>\n", styles: ["@charset \"UTF-8\";.main{height:calc(100vh - 128px)}:host ::ng-deep .main .ag-root-wrapper{border-left:none!important;border-right:none!important;border-bottom:none!important}:host ::ng-deep .form-action{background:#e7e9ed!important;color:var(--ag-text-color)!important;border-color:#e7e9ed!important}:host ::ng-deep .form-action:not(:disabled):hover{background-color:#d8dadd!important;border-color:#d8dadd}.form-panel{border:solid 1px #dbdbdb}\n"], dependencies: [{ kind: "ngmodule", type: ButtonModule }, { kind: "component", type: i1.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: ReactiveFormsModule }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: FormComponent, selector: "custom-form", inputs: ["options", "model", "upsert"] }, { kind: "component", type: LogComponent, selector: "custom-log", inputs: ["logs", "id"] }, { kind: "component", type: CrumbActionComponent, selector: "app-crumb-action", inputs: ["isShowCog", "addVisible", "newUrl", "onExport", "outlined", "isList", "authLevel", "actionList", "data", "menus", "saveBtnDisable"], outputs: ["saveEvent", "cancelEvent", "actionEvent"] }, { kind: "component", type: StepsComponent, selector: "custom-steps", inputs: ["modelLog", "needSelfAdjusting", "steps", "current", "authLevel", "isClick"], outputs: ["change"] }, { kind: "component", type: GridComponent, selector: "custom-grid", inputs: ["gridOptions", "selectionKeys", "upsert", "rowData", "searchPrm", "addType", "selectData", "showAct", "actPos", "authLevel", "showDelete", "gridDisable"], outputs: ["deleteEmit", "addEmit"] }, { kind: "ngmodule", type: TabsModule }, { kind: "component", type: i3.Tabs, selector: "p-tabs", inputs: ["value", "scrollable", "lazy", "selectOnFocus", "showNavigators", "tabindex"], outputs: ["valueChange"] }, { kind: "component", type: i3.TabList, selector: "p-tablist" }, { kind: "component", type: i3.Tab, selector: "p-tab", inputs: ["value", "disabled"], outputs: ["valueChange"] }, { kind: "component", type: RowSelectorComponent, selector: "row-selector", inputs: ["title", "selectionKeys", "gridOptions", "searchPrm", "visible"], outputs: ["onOk", "visibleChange"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "component", type: HrefBtnListComponent, selector: "href-btn-list", inputs: ["hrefs"], outputs: ["hrefClick"] }] }); }
334
334
  }
335
335
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PageFormComponent, decorators: [{
336
336
  type: Component,
@@ -346,7 +346,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
346
346
  RowSelectorComponent,
347
347
  TranslatePipe,
348
348
  HrefBtnListComponent,
349
- ], providers: [], template: "<div class=\"md:overflow-hidden\">\r\n\t<div class=\"flex md:flex-wrap lg:flex-nowrap items-center md:justify-between py-1 px-1 border-b-[1px] border-[#dbdbdb] bg-white\">\r\n\t\t<div class=\"md:basis-1/3 order-1\">\r\n\t\t\t<app-crumb-action\r\n\t\t\t\t[addVisible]=\"addVisible()\"\r\n\t\t\t\t[newUrl]=\"newUrl\"\r\n\t\t\t\t[isShowCog]=\"true\"\r\n\t\t\t\t[outlined]=\"true\"\r\n\t\t\t\t[authLevel]=\"authLevel()\"\r\n\t\t\t\t[actionList]=\"actionList()\"\r\n\t\t\t\t[data]=\"getPrm.data ?? {}\"\r\n\t\t\t\t[saveBtnDisable]=\"saveBtnDisable\"\r\n\t\t\t\t(actionEvent)=\"authClick($event)\"\r\n\t\t\t\t(saveEvent)=\"submitForm()\">\r\n\t\t\t</app-crumb-action>\r\n\t\t</div>\r\n\r\n\t\t<div class=\"basis-1/5 lg:basis-2/3 order-2 lg:order-2 md:order-last md:basis-full md:mt-[6px]\">\r\n\t\t\t<href-btn-list\r\n\t\t\t\t[hrefs]=\"hrefBtnList()\"\r\n\t\t\t\t(hrefClick)=\"goRun($event)\"></href-btn-list>\r\n\t\t\t<!-- @if (id) {\r\n\t\t\t\t@for (btn of hrefBtnList(); track btn) {\r\n\t\t\t\t\t<p-button\r\n\t\t\t\t\t\t[variant]=\"btn?.variant\"\r\n\t\t\t\t\t\t[severity]=\"btn?.severity\"\r\n\t\t\t\t\t\tclass=\"mr-[6px]\"\r\n\t\t\t\t\t\tsize=\"small\"\r\n\t\t\t\t\t\t[icon]=\"btn?.icon\"\r\n\t\t\t\t\t\tlabel=\"{{ btn.i18nKey ? i18n.fanyi(btn.i18nKey) : btn.label }}\"\r\n\t\t\t\t\t\t(click)=\"goRun(btn)\">\r\n\t\t\t\t\t</p-button>\r\n\t\t\t\t}\r\n\t\t\t} -->\r\n\t\t</div>\r\n\t\t<div class=\"basis-1/3 order-3\"></div>\r\n\t</div>\r\n\t<div class=\"flex\">\r\n\t\t<div class=\"px-2 flex flex-wrap items-center flex-1\">\r\n\t\t\t<div class=\"hidden md:basis-1/3 py-1 basis-full md:flex items-center flex-row order-1\">\r\n\t\t\t\t@for (action of actionList(); let i = $index; track action) {\r\n\t\t\t\t\t<p-button\r\n\t\t\t\t\t\tsize=\"small\"\r\n\t\t\t\t\t\t[icon]=\"getPrm.data?.icon\"\r\n\t\t\t\t\t\t[label]=\"action.i18nKey ? (action.i18nKey | translate) : action.label\"\r\n\t\t\t\t\t\t[disabled]=\"action.btnDisabled ? action.btnDisabled(getPrm.data) : false\"\r\n\t\t\t\t\t\t[styleClass]=\"\r\n\t\t\t\t\t\t\t(action.auth || 0) > (authLevel() || 0) || !!action.btnHidden?.(getPrm.data)\r\n\t\t\t\t\t\t\t\t? 'form-action hidden'\r\n\t\t\t\t\t\t\t\t: 'form-action block mr-[.5rem]'\r\n\t\t\t\t\t\t\"\r\n\t\t\t\t\t\t(onClick)=\"action.onClick != '' && action.onClick?.(getPrm.data)\">\r\n\t\t\t\t\t</p-button>\r\n\t\t\t\t}\r\n\t\t\t</div>\r\n\t\t\t<div class=\"md:basis-2/3 basis-full flex md:flex-row-reverse flex-row md:order-2 order-first w-full\">\r\n\t\t\t\t<custom-steps\r\n\t\t\t\t\t#customSteps\r\n\t\t\t\t\tclass=\"w-full\"\r\n\t\t\t\t\t[steps]=\"statusSteps()\"\r\n\t\t\t\t\t[modelLog]=\"modelLog()\"\r\n\t\t\t\t\t[current]=\"getPrm.data && getPrm.data[statusKey()] !== undefined ? getPrm.data[statusKey()] : 0\"\r\n\t\t\t\t\t[authLevel]=\"authLevel()\"\r\n\t\t\t\t\t[isClick]=\"this.statusConf().isClick\"\r\n\t\t\t\t\t(change)=\"statusChange($event, customSteps)\">\r\n\t\t\t\t</custom-steps>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t\t@if (modelLog()) {\r\n\t\t\t<div class=\"md:w-[400px]\"></div>\r\n\t\t}\r\n\t</div>\r\n\t<div class=\"main flex flex-wrap md:overflow-y-hidden\">\r\n\t\t<div class=\"w-full md:flex-1 md:h-full overflow-y-auto\">\r\n\t\t\t<div class=\"bg-white mx-2 form-panel\">\r\n\t\t\t\t<div class=\"p-2 flex-1\">\r\n\t\t\t\t\t<form [formGroup]=\"form().form!\">\r\n\t\t\t\t\t\t<custom-form\r\n\t\t\t\t\t\t\t#cForm\r\n\t\t\t\t\t\t\t[options]=\"formOptions\"\r\n\t\t\t\t\t\t\t[upsert]=\"upsertPrm\"\r\n\t\t\t\t\t\t\t[model]=\"getPrm.data ?? {}\"></custom-form>\r\n\t\t\t\t\t</form>\r\n\t\t\t\t</div>\r\n\t\t\t\t@if (gridList() && gridList().length > 0) {\r\n\t\t\t\t\t<div class=\"relative mb-2\">\r\n\t\t\t\t\t\t<p-tabs [(value)]=\"indexValue\">\r\n\t\t\t\t\t\t\t<p-tablist>\r\n\t\t\t\t\t\t\t\t@for (fchild of gridList(); let i = $index; track fchild) {\r\n\t\t\t\t\t\t\t\t\t<p-tab\r\n\t\t\t\t\t\t\t\t\t\t[value]=\"i\"\r\n\t\t\t\t\t\t\t\t\t\t(click)=\"tabClick()\">\r\n\t\t\t\t\t\t\t\t\t\t{{ fchild.i18nKey ? i18n.fanyi(fchild.i18nKey) : fchild.title }}\r\n\t\t\t\t\t\t\t\t\t</p-tab>\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t</p-tablist>\r\n\t\t\t\t\t\t</p-tabs>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t}\r\n\t\t\t\t@for (grid of gridList(); let i = $index; track grid) {\r\n\t\t\t\t\t@if (grid.type == 'grid') {\r\n\t\t\t\t\t\t<custom-grid\r\n\t\t\t\t\t\t\t#customGrid\r\n\t\t\t\t\t\t\t[hidden]=\"indexValue != i\"\r\n\t\t\t\t\t\t\t[rowData]=\"getPrm.data?.[grid.subDataKey!] || []\"\r\n\t\t\t\t\t\t\t[upsert]=\"upsertPrm\"\r\n\t\t\t\t\t\t\t(deleteEmit)=\"delRows($event)\"\r\n\t\t\t\t\t\t\t[addType]=\"grid.subTableSource\"\r\n\t\t\t\t\t\t\t(addEmit)=\"dataSourceShow()\"\r\n\t\t\t\t\t\t\t[gridOptions]=\"grid.gridOptions\"\r\n\t\t\t\t\t\t\t[gridDisable]=\"gridDisable\"\r\n\t\t\t\t\t\t\t[authLevel]=\"authLevel()\"\r\n\t\t\t\t\t\t\t[showDelete]=\"grid.showDelete\"\r\n\t\t\t\t\t\t\t[selectData]=\"grid.selectData\">\r\n\t\t\t\t\t\t</custom-grid>\r\n\t\t\t\t\t} @else {\r\n\t\t\t\t\t\t<!-- @if(indexValue == i){\r\n\t\t\t\t\t\t\t<form [formGroup]=\"grid.form!\">\r\n\t\t\t\t\t\t\t\t<custom-form\r\n\t\t\t\t\t\t\t\t[options]=\"grid\"\r\n\t\t\t\t\t\t\t\t[upsert]=\"upsertPrm\"\r\n\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t</custom-form>\r\n\t\t\t\t\t\t\t</form>\r\n\t\t\t\t\t\t} -->\r\n\t\t\t\t\t\t<custom-form\r\n\t\t\t\t\t\t\t#tabForm\r\n\t\t\t\t\t\t\t[hidden]=\"indexValue != i\"\r\n\t\t\t\t\t\t\t[options]=\"grid\"\r\n\t\t\t\t\t\t\t[upsert]=\"upsertPrm\"\r\n\t\t\t\t\t\t\t[model]=\"subFormModel[grid.subDataKey!] || {}\">\r\n\t\t\t\t\t\t</custom-form>\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t\t@if (modelLog()) {\r\n\t\t\t<div class=\"w-full md:w-[400px] md:h-full overflow-y-auto\">\r\n\t\t\t\t<custom-log [logs]=\"getPrm.data?.log ?? []\"></custom-log>\r\n\t\t\t</div>\r\n\t\t}\r\n\t</div>\r\n</div>\r\n<row-selector\r\n\t[(visible)]=\"visible\"\r\n\t[searchPrm]=\"dialogSearchPrm\"\r\n\t[gridOptions]=\"selectOptions\"\r\n\t[selectionKeys]=\"selectionKeys\"\r\n\t(onOk)=\"onOk($event)\">\r\n</row-selector>\r\n", styles: ["@charset \"UTF-8\";.main{height:calc(100vh - 128px)}:host ::ng-deep .main .ag-root-wrapper{border-left:none!important;border-right:none!important;border-bottom:none!important}:host ::ng-deep .form-action{background:#e7e9ed!important;color:var(--ag-text-color)!important;border-color:#e7e9ed!important}:host ::ng-deep .form-action:not(:disabled):hover{background-color:#d8dadd!important;border-color:#d8dadd}.form-panel{border:solid 1px #dbdbdb}\n"] }]
349
+ ], providers: [], template: "<div class=\"md:overflow-hidden\">\n\t<div class=\"flex md:flex-wrap lg:flex-nowrap items-center md:justify-between py-1 px-1 border-b-[1px] border-[#dbdbdb] bg-white\">\n\t\t<div class=\"md:basis-1/3 order-1\">\n\t\t\t<app-crumb-action\n\t\t\t\t[addVisible]=\"addVisible()\"\n\t\t\t\t[newUrl]=\"newUrl\"\n\t\t\t\t[isShowCog]=\"true\"\n\t\t\t\t[outlined]=\"true\"\n\t\t\t\t[authLevel]=\"authLevel()\"\n\t\t\t\t[actionList]=\"actionList()\"\n\t\t\t\t[data]=\"getPrm.data ?? {}\"\n\t\t\t\t[saveBtnDisable]=\"saveBtnDisable\"\n\t\t\t\t(actionEvent)=\"authClick($event)\"\n\t\t\t\t(saveEvent)=\"submitForm()\">\n\t\t\t</app-crumb-action>\n\t\t</div>\n\n\t\t<div class=\"basis-1/5 lg:basis-2/3 order-2 lg:order-2 md:order-last md:basis-full md:mt-[6px]\">\n\t\t\t<href-btn-list\n\t\t\t\t[hrefs]=\"hrefBtnList()\"\n\t\t\t\t(hrefClick)=\"goRun($event)\"></href-btn-list>\n\t\t\t<!-- @if (id) {\n\t\t\t\t@for (btn of hrefBtnList(); track btn) {\n\t\t\t\t\t<p-button\n\t\t\t\t\t\t[variant]=\"btn?.variant\"\n\t\t\t\t\t\t[severity]=\"btn?.severity\"\n\t\t\t\t\t\tclass=\"mr-[6px]\"\n\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t[icon]=\"btn?.icon\"\n\t\t\t\t\t\tlabel=\"{{ btn.i18nKey ? i18n.fanyi(btn.i18nKey) : btn.label }}\"\n\t\t\t\t\t\t(click)=\"goRun(btn)\">\n\t\t\t\t\t</p-button>\n\t\t\t\t}\n\t\t\t} -->\n\t\t</div>\n\t\t<div class=\"basis-1/3 order-3\"></div>\n\t</div>\n\t<div class=\"flex\">\n\t\t<div class=\"px-2 flex flex-wrap items-center flex-1\">\n\t\t\t<div class=\"hidden md:basis-1/3 py-1 basis-full md:flex items-center flex-row order-1\">\n\t\t\t\t@for (action of actionList(); let i = $index; track action) {\n\t\t\t\t\t<p-button\n\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t[icon]=\"getPrm.data?.icon\"\n\t\t\t\t\t\t[label]=\"action.i18nKey ? (action.i18nKey | translate) : action.label\"\n\t\t\t\t\t\t[disabled]=\"action.btnDisabled ? action.btnDisabled(getPrm.data) : false\"\n\t\t\t\t\t\t[styleClass]=\"\n\t\t\t\t\t\t\t(action.auth || 0) > (authLevel() || 0) || !!action.btnHidden?.(getPrm.data)\n\t\t\t\t\t\t\t\t? 'form-action hidden'\n\t\t\t\t\t\t\t\t: 'form-action block mr-[.5rem]'\n\t\t\t\t\t\t\"\n\t\t\t\t\t\t(onClick)=\"action.onClick != '' && action.onClick?.(getPrm.data)\">\n\t\t\t\t\t</p-button>\n\t\t\t\t}\n\t\t\t</div>\n\t\t\t<div class=\"md:basis-2/3 basis-full flex md:flex-row-reverse flex-row md:order-2 order-first w-full\">\n\t\t\t\t<custom-steps\n\t\t\t\t\t#customSteps\n\t\t\t\t\tclass=\"w-full\"\n\t\t\t\t\t[steps]=\"statusSteps()\"\n\t\t\t\t\t[modelLog]=\"modelLog()\"\n\t\t\t\t\t[current]=\"getPrm.data && getPrm.data[statusKey()] !== undefined ? getPrm.data[statusKey()] : 0\"\n\t\t\t\t\t[authLevel]=\"authLevel()\"\n\t\t\t\t\t[isClick]=\"this.statusConf().isClick\"\n\t\t\t\t\t(change)=\"statusChange($event, customSteps)\">\n\t\t\t\t</custom-steps>\n\t\t\t</div>\n\t\t</div>\n\t\t@if (modelLog()) {\n\t\t\t<div class=\"md:w-[400px]\"></div>\n\t\t}\n\t</div>\n\t<div class=\"main flex flex-wrap md:overflow-y-hidden\">\n\t\t<div class=\"w-full md:flex-1 md:h-full overflow-y-auto\">\n\t\t\t<div class=\"bg-white mx-2 form-panel\">\n\t\t\t\t<div class=\"p-2 flex-1\">\n\t\t\t\t\t<form [formGroup]=\"form().form!\">\n\t\t\t\t\t\t<custom-form\n\t\t\t\t\t\t\t#cForm\n\t\t\t\t\t\t\t[options]=\"formOptions\"\n\t\t\t\t\t\t\t[upsert]=\"upsertPrm\"\n\t\t\t\t\t\t\t[model]=\"getPrm.data ?? {}\"></custom-form>\n\t\t\t\t\t</form>\n\t\t\t\t</div>\n\t\t\t\t@if (gridList() && gridList().length > 0) {\n\t\t\t\t\t<div class=\"relative mb-2\">\n\t\t\t\t\t\t<p-tabs [(value)]=\"indexValue\">\n\t\t\t\t\t\t\t<p-tablist>\n\t\t\t\t\t\t\t\t@for (fchild of gridList(); let i = $index; track fchild) {\n\t\t\t\t\t\t\t\t\t<p-tab\n\t\t\t\t\t\t\t\t\t\t[value]=\"i\"\n\t\t\t\t\t\t\t\t\t\t(click)=\"tabClick()\">\n\t\t\t\t\t\t\t\t\t\t{{ fchild.i18nKey ? i18n.fanyi(fchild.i18nKey) : fchild.title }}\n\t\t\t\t\t\t\t\t\t</p-tab>\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t</p-tablist>\n\t\t\t\t\t\t</p-tabs>\n\t\t\t\t\t</div>\n\t\t\t\t}\n\t\t\t\t@for (grid of gridList(); let i = $index; track grid) {\n\t\t\t\t\t@if (grid.type == 'grid') {\n\t\t\t\t\t\t<custom-grid\n\t\t\t\t\t\t\t#customGrid\n\t\t\t\t\t\t\t[hidden]=\"indexValue != i\"\n\t\t\t\t\t\t\t[rowData]=\"getPrm.data?.[grid.subDataKey!] || []\"\n\t\t\t\t\t\t\t[upsert]=\"upsertPrm\"\n\t\t\t\t\t\t\t(deleteEmit)=\"delRows($event)\"\n\t\t\t\t\t\t\t[addType]=\"grid.subTableSource\"\n\t\t\t\t\t\t\t(addEmit)=\"dataSourceShow()\"\n\t\t\t\t\t\t\t[gridOptions]=\"grid.gridOptions\"\n\t\t\t\t\t\t\t[gridDisable]=\"gridDisable\"\n\t\t\t\t\t\t\t[authLevel]=\"authLevel()\"\n\t\t\t\t\t\t\t[showDelete]=\"grid.showDelete\"\n\t\t\t\t\t\t\t[selectData]=\"grid.selectData\">\n\t\t\t\t\t\t</custom-grid>\n\t\t\t\t\t} @else {\n\t\t\t\t\t\t<!-- @if(indexValue == i){\n\t\t\t\t\t\t\t<form [formGroup]=\"grid.form!\">\n\t\t\t\t\t\t\t\t<custom-form\n\t\t\t\t\t\t\t\t[options]=\"grid\"\n\t\t\t\t\t\t\t\t[upsert]=\"upsertPrm\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t</custom-form>\n\t\t\t\t\t\t\t</form>\n\t\t\t\t\t\t} -->\n\t\t\t\t\t\t<custom-form\n\t\t\t\t\t\t\t#tabForm\n\t\t\t\t\t\t\t[hidden]=\"indexValue != i\"\n\t\t\t\t\t\t\t[options]=\"grid\"\n\t\t\t\t\t\t\t[upsert]=\"upsertPrm\"\n\t\t\t\t\t\t\t[model]=\"subFormModel[grid.subDataKey!] || {}\">\n\t\t\t\t\t\t</custom-form>\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t</div>\n\t\t</div>\n\t\t@if (modelLog()) {\n\t\t\t<div class=\"w-full md:w-[400px] md:h-full overflow-y-auto\">\n\t\t\t\t<custom-log [logs]=\"getPrm.data?.log ?? []\"></custom-log>\n\t\t\t</div>\n\t\t}\n\t</div>\n</div>\n<row-selector\n\t[(visible)]=\"visible\"\n\t[searchPrm]=\"dialogSearchPrm\"\n\t[gridOptions]=\"selectOptions\"\n\t[selectionKeys]=\"selectionKeys\"\n\t(onOk)=\"onOk($event)\">\n</row-selector>\n", styles: ["@charset \"UTF-8\";.main{height:calc(100vh - 128px)}:host ::ng-deep .main .ag-root-wrapper{border-left:none!important;border-right:none!important;border-bottom:none!important}:host ::ng-deep .form-action{background:#e7e9ed!important;color:var(--ag-text-color)!important;border-color:#e7e9ed!important}:host ::ng-deep .form-action:not(:disabled):hover{background-color:#d8dadd!important;border-color:#d8dadd}.form-panel{border:solid 1px #dbdbdb}\n"] }]
350
350
  }], ctorParameters: () => [], propDecorators: { cForm: [{
351
351
  type: ViewChild,
352
352
  args: ['cForm']
@@ -357,4 +357,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
357
357
  type: ViewChildren,
358
358
  args: ['tabForm']
359
359
  }] } });
360
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2ltbS1lbGVtZW50LXVpL3NyYy9saWIvcGFnZS1mb3JtL3BhZ2UtZm9ybS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pbW0tZWxlbWVudC11aS9zcmMvbGliL3BhZ2UtZm9ybS9wYWdlLWZvcm0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDcEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQVUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQTJCLFlBQVksRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUN0SSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsYUFBYSxFQUFlLE1BQU0sNkJBQTZCLENBQUM7QUFDekUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDOUUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUM5RSxPQUFPLEVBQUUsY0FBYyxFQUFRLE1BQU0sMEJBQTBCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGFBQWEsRUFBZSxNQUFNLDZCQUE2QixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDMUMsT0FBTyxFQUFFLFdBQVcsRUFBTyxNQUFNLG9CQUFvQixDQUFDO0FBR3RELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsV0FBVyxFQUFF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QkFBQyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVXNlckhpc3RvcnlTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZS91c2VySGlzdG9yeS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBpbmplY3QsIE9uSW5pdCwgVmlld0NoaWxkLCBpbnB1dCwgZWZmZWN0LCBjb21wdXRlZCwgSW5wdXQsIHNpZ25hbCwgVmlld0NoaWxkcmVuLCBRdWVyeUxpc3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgRm9ybUNvbXBvbmVudCwgRm9ybU9wdGlvbnMgfSBmcm9tICcuLi9mb3JtL2Zvcm0vZm9ybS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBSb3dTZWxlY3RvckNvbXBvbmVudCB9IGZyb20gJy4uL3Jvdy1zZWxlY3Rvci9yb3ctc2VsZWN0b3IuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTG9nQ29tcG9uZW50IH0gZnJvbSAnLi4vbG9nL2xvZy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBCdXR0b25Nb2R1bGUgfSBmcm9tICdwcmltZW5nL2J1dHRvbic7XHJcbmltcG9ydCB7IENydW1iQWN0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi4vY3J1bWItYWN0aW9uL2NydW1iLWFjdGlvbi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBTdGVwc0NvbXBvbmVudCwgU3RlcCB9IGZyb20gJy4uL3N0ZXBzL3N0ZXBzLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEdyaWRDb21wb25lbnQsIEdyaWRPcHRpb25zIH0gZnJvbSAnLi4vZ3JpZC9ncmlkL2dyaWQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVGFic01vZHVsZSB9IGZyb20gJ3ByaW1lbmcvdGFicyc7XHJcbmltcG9ydCB7IEFtQ29tcG9uZW50LCBHZXQgfSBmcm9tICcuLi9hbS9hbS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBTZWFyY2ggfSBmcm9tICcuLi9hbS9hbS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBIcmVmQnRuTGlzdCwgR3JpZExpc3QgfSBmcm9tICcuL3BhZ2UtZm9ybS5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVQaXBlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XHJcbmltcG9ydCB7IEkxOG5TZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZS9pMThuLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBQZXJtaXNzaW9uQnRuIH0gZnJvbSAnLi9wYWdlLWZvcm0uaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgZm9ybVR5cGVUb1Byb3BzIH0gZnJvbSAnLi9wYWdlLWZvcm0uaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgSHJlZkJ0bkxpc3RDb21wb25lbnQgfSBmcm9tICcuLi9ocmVmLWJ0bi1saXN0L2hyZWYtYnRuLWxpc3QuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQWN0aW9uU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2UvYWN0aW9uLnNlcnZpY2UnO1xyXG5AQ29tcG9uZW50KHtcclxuXHRzZWxlY3RvcjogJ2FwcC1wYWdlLWZvcm0nLFxyXG5cdHN0YW5kYWxvbmU6IHRydWUsXHJcblx0aW1wb3J0czogW1xyXG5cdFx0QnV0dG9uTW9kdWxlLFxyXG5cdFx0UmVhY3RpdmVGb3Jtc01vZHVsZSxcclxuXHRcdEZvcm1Db21wb25lbnQsXHJcblx0XHRMb2dDb21wb25lbnQsXHJcblx0XHRDcnVtYkFjdGlvbkNvbXBvbmVudCxcclxuXHRcdFN0ZXBzQ29tcG9uZW50LFxyXG5cdFx0R3JpZENvbXBvbmVudCxcclxuXHRcdFRhYnNNb2R1bGUsXHJcblx0XHRSb3dTZWxlY3RvckNvbXBvbmVudCxcclxuXHRcdFRyYW5zbGF0ZVBpcGUsXHJcblx0XHRIcmVmQnRuTGlzdENvbXBvbmVudCxcclxuXHRdLFxyXG5cdHRlbXBsYXRlVXJsOiAnLi9wYWdlLWZvcm0uY29tcG9uZW50Lmh0bWwnLFxyXG5cdHN0eWxlVXJsOiAnLi9wYWdlLWZvcm0uY29tcG9uZW50LnNjc3MnLFxyXG5cdHByb3ZpZGVyczogW10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBQYWdlRm9ybUNvbXBvbmVudCBleHRlbmRzIEFtQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHRAVmlld0NoaWxkKCdjRm9ybScpIGNGb3JtITogRm9ybUNvbXBvbmVudDtcclxuXHRAVmlld0NoaWxkcmVuKCdjdXN0b21HcmlkJykgY3VzdG9tR3JpZCE6IFF1ZXJ5TGlzdDxHcmlkQ29tcG9uZW50PjtcclxuXHRAVmlld0NoaWxkcmVuKCd0YWJGb3JtJykgdGFiRm9ybSE6IFF1ZXJ5TGlzdDxGb3JtQ29tcG9uZW50PjtcclxuXHRhZGRWaXNpYmxlID0gaW5wdXQ8Ym9vbGVhbj4oKTtcclxuXHRncmlkTGlzdCA9IGlucHV0PGFueVtdPihbXSk7XHJcblx0Zm9ybSA9IGlucHV0LnJlcXVpcmVkPEZvcm1PcHRpb25zPih7fSk7XHJcblx0Z2V0UHJtSW5wdXQgPSBpbnB1dC5yZXF1aXJlZDxHZXQ+KHt9KTtcclxuXHRzdGF0dXNTdGVwcyA9IGlucHV0PFN0ZXBbXT4oW10pO1xyXG5cdHN0YXR1c0tleSA9IGlucHV0KCdzdGF0dXMnKTtcclxuXHRocmVmQnRuTGlzdCA9IGlucHV0PEhyZWZCdG5MaXN0W10+KFtdKTtcclxuXHRzZXRUaXRsZSA9IGlucHV0PHN0cmluZz4oKTtcclxuXHRhY3Rpb25MaXN0ID0gaW5wdXQ8UGVybWlzc2lvbkJ0bltdPihbXSk7XHJcblx0bW9kZWxMb2cgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XHJcblx0Zm9ybURpc2FibGVkID0gaW5wdXQ8RnVuY3Rpb24+KCk7XHJcblx0c3RhdHVzQ29uZiA9IGlucHV0PGFueT4oKVxyXG5cdGZvcm1EZXRhaWwgPSBpbnB1dDxhbnk+KClcclxuXHRzYXZlRnVuYyA9IGlucHV0PGFueT4oKVxyXG5cclxuXHR1c2VySGlzdG9yeVNlcnZpY2UgPSBpbmplY3QoVXNlckhpc3RvcnlTZXJ2aWNlKTtcclxuXHRpbmRleFZhbHVlID0gMDtcclxuXHR2aXNpYmxlID0gZmFsc2U7XHJcblx0ZGlhbG9nU2VhcmNoUHJtITogU2VhcmNoO1xyXG5cdHNlbGVjdE9wdGlvbnMhOiBHcmlkT3B0aW9ucztcclxuXHRzZWxlY3REYXRhOiBhbnlbXSA9IFtdO1xyXG5cdHBhZ2VVcmwgPSAnJztcclxuXHRuZXdVcmwgPSAnJztcclxuXHRpMThuID0gaW5qZWN0KEkxOG5TZXJ2aWNlKTtcclxuXHRhdXRoTGV2ZWwgPSBpbnB1dDxudW1iZXI+KC0xKTtcclxuXHRocmVmczogYW55W10gPSBbXTtcclxuXHRhY3Rpb24gPSBpbmplY3QoQWN0aW9uU2VydmljZSk7XHJcblx0c3ViRm9ybU1vZGVsOmFueSA9IHt9XHJcblx0c2F2ZUJ0bkRpc2FibGUgPSBmYWxzZVxyXG5cdGdyaWREaXNhYmxlID0gZmFsc2UgXHJcblx0c2VsZWN0aW9uS2V5czogYW55W10gPSBbXTtcclxuXHRjb25zdHJ1Y3RvcigpIHtcclxuXHRcdHN1cGVyKCk7XHJcblx0XHR0aGlzLmlkID0gTnVtYmVyKHRoaXMucm91dGUuc25hcHNob3QucGFyYW1NYXAuZ2V0KCdpZCcpKTtcclxuXHRcdHRoaXMucGFnZVVybCA9IHRoaXMucm91dGUuc25hcHNob3QudXJsXHJcblx0XHRcdC5tYXAoKHNlZ21lbnQpID0+IHNlZ21lbnQucGF0aClcclxuXHRcdFx0LmpvaW4oJy8nKVxyXG5cdFx0XHQucmVwbGFjZSgvKFteXFwvXSopJC8sICcnKTtcclxuXHRcdHRoaXMubmV3VXJsID0gYCR7dGhpcy5wYWdlVXJsfW5ld2A7XHJcblx0XHRlZmZlY3QoXHJcblx0XHRcdCgpID0+IHtcclxuXHRcdFx0XHR0aGlzLm1vZGVsTmFtZSA9IHRoaXMuZ2V0UHJtSW5wdXQoKS5tb2RlbE5hbWUhO1xyXG5cdFx0XHRcdHRoaXMuZ2V0UHJtID0geyAuLi50aGlzLmdldFBybUlucHV0KCkgfTtcclxuXHRcdFx0XHR0aGlzLmlkICYmICh0aGlzLmdldFBybS5pZCA9IHRoaXMuaWQpO1xyXG5cdFx0XHRcdGlmKHRoaXMuaWQpe1xyXG5cdFx0XHRcdFx0Y29uc29sZS5sb2codHlwZW9mIHRoaXMuZm9ybURldGFpbCgpLCdmb3JtLS0tLScpXHJcblx0XHRcdFx0XHR0eXBlb2YgdGhpcy5mb3JtRGV0YWlsKCkgPT0gJ2Z1bmN0aW9uJyA/IHRoaXMuZm9ybURldGFpbCgpKHRoaXMuaWQpIDogdGhpcy5nZXREZXRhaWwoKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0sXHJcblx0XHRcdHsgYWxsb3dTaWduYWxXcml0ZXM6IHRydWUgfSxcclxuXHRcdCk7XHJcblxyXG5cdFx0ZWZmZWN0KCgpID0+IHtcclxuXHRcdFx0dGhpcy5mb3JtT3B0aW9ucyA9IHsgLi4udGhpcy5mb3JtKCkgfTtcclxuXHRcdH0pO1xyXG5cdFx0ZWZmZWN0KFxyXG5cdFx0XHQoKSA9PiB7XHJcblx0XHRcdFx0dGhpcy5pc0xvZyA9IHRoaXMubW9kZWxMb2coKTtcclxuXHRcdFx0fSxcclxuXHRcdFx0eyBhbGxvd1NpZ25hbFdyaXRlczogdHJ1ZSB9LFxyXG5cdFx0KTtcclxuXHRcdGVmZmVjdChcclxuXHRcdFx0KCkgPT4ge1xyXG5cdFx0XHRcdGlmICh0aGlzLnN0YXR1c1N0ZXBzKCkubGVuZ3RoID4gMCAmJiAhdGhpcy5pZCkge1xyXG5cdFx0XHRcdFx0dGhpcy51cHNlcnRQcm0uYWRkRGF0YSFbdGhpcy5zdGF0dXNLZXkoKV0gPSB0aGlzLnN0YXR1c1N0ZXBzKClbMF1bJ3ZhbHVlJ107XHJcblx0XHRcdFx0XHR0aGlzLmdldFBybS5kYXRhID0gT2JqZWN0LmFzc2lnbih0aGlzLmdldFBybS5kYXRhIHx8IHt9LCB7XHJcblx0XHRcdFx0XHRcdFt0aGlzLnN0YXR1c0tleSgpXTogdGhpcy5zdGF0dXNTdGVwcygpWzBdWyd2YWx1ZSddLFxyXG5cdFx0XHRcdFx0fSk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9LFxyXG5cdFx0XHR7IGFsbG93U2lnbmFsV3JpdGVzOiB0cnVlIH0sXHJcblx0XHQpO1xyXG5cdFx0ZWZmZWN0KCgpID0+IHtcclxuXHRcdFx0aWYodGhpcy5hdXRoTGV2ZWwoKSA8IDMpe1xyXG5cdFx0XHRcdHRoaXMuc2V0RGlzYWJsZWQoKVxyXG5cdFx0XHR9XHJcblx0XHR9LHthbGxvd1NpZ25hbFdyaXRlczp0cnVlfSlcclxuXHR9XHJcblx0bmdPbkluaXQoKTogdm9pZCB7XHJcblx0XHR0aGlzLnVwQ2IgPSB0aGlzLnVwQ2IuYmluZCh0aGlzKTtcclxuXHR9XHJcblxyXG5cdHN1Ym1pdEZvcm0oKTogYW55IHtcclxuXHRcdC8vIHRoaXMudGFiRm9ybS52YWxpZGF0ZSgpXHJcblx0XHRsZXQgc3ViRm9ybSA9IHRydWVcclxuXHRcdGlmKHRoaXMudGFiRm9ybS5sZW5ndGggPiAwKXtcclxuXHRcdFx0dGhpcy50YWJGb3JtLmZvckVhY2goaXRlbSA9PiB7XHJcblx0XHRcdFx0aWYoIWl0ZW0udmFsaWRhdGUoKSl7XHJcblx0XHRcdFx0XHRzdWJGb3JtID0gZmFsc2VcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0pXHJcblx0XHR9XHJcblx0XHRpZiAodGhpcy5jRm9ybS52YWxpZGF0ZSgpICYmIHN1YkZvcm0pIHtcclxuXHRcdFx0bGV0IGNiOiBhbnkgPSB0aGlzLmlkID09PSAwID8gbnVsbCA6IHRoaXMudXBDYjtcclxuXHRcdFx0dHlwZW9mIHRoaXMuc2F2ZUZ1bmMoKSA9PSAnZnVuY3Rpb24nID8gdGhpcy5zYXZlRnVuYygpKHRoaXMudXBzZXJ0UHJtLHRoaXMuaWQsY2IpIDogdGhpcy51cHNlcnQobnVsbCwgY2IpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0ZGVsUm93cyhlOiBhbnkpIHtcclxuXHRcdGNvbnN0IGdyaWRUYWIgPSB0aGlzLmdyaWRMaXN0KClbdGhpcy5pbmRleFZhbHVlXTtcclxuXHRcdGNvbnN0IGRlbGV0ZUZ1bmMgPSBncmlkVGFiLmRlbGV0ZUZ1bmM7XHJcblx0XHRjb25zdCBzdWJUYWJsZSA9IGdyaWRUYWIuZ3JpZE9wdGlvbnMubW9kZWxOYW1lO1xyXG5cclxuXHRcdGxldCBwcm0gPSB7XHJcblx0XHRcdG1vZGVsTmFtZTogc3ViVGFibGUsXHJcblx0XHRcdGlkczogZSxcclxuXHRcdH07XHJcblx0XHRpZiAoIWRlbGV0ZUZ1bmMpIHtcclxuXHRcdFx0dGhpcy53ZWJfcmVtb3ZlKHBybSkuc3Vic2NyaWJlKChyZXMpID0+IHtcclxuXHRcdFx0XHR0aGlzLmdldCgpO1xyXG5cdFx0XHR9KTtcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdGRlbGV0ZUZ1bmMoKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG5cdFx0XHRcdHRoaXMuZ2V0KCk7XHJcblx0XHRcdH0pO1xyXG5cdFx0fVxyXG5cdH1cclxuXHR1cENiKHJlcz86IGFueSkge1xyXG5cdFx0aWYgKHJlcy5pZCA9PSAwKSB7XHJcblx0XHRcdHR5cGVvZiB0aGlzLmZvcm1EZXRhaWwoKSA9PSAnZnVuY3Rpb24nID8gdGhpcy5mb3JtRGV0YWlsKCkodGhpcy5pZCkgOiB0aGlzLmdldERldGFpbCgpO1xyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0c2V0VGltZW91dCgoKSA9PiB7XHJcblx0XHRcdFx0bGV0IGVkaXRVcmwgPSBgJHt0aGlzLnBhZ2VVcmx9JHtyZXMuaWR9YDtcclxuXHRcdFx0XHR0aGlzLnJvdXRlci5uYXZpZ2F0ZShbZWRpdFVybF0pO1xyXG5cdFx0XHR9LCAxNTAwKTtcclxuXHRcdH1cclxuXHRcdHRoaXMuYWN0aW9uLnNhdmVTaWduYWwuc2V0KGZhbHNlKTtcclxuXHRcdHRoaXMuY0Zvcm0uZmluYWxpemUoKTtcclxuXHR9XHJcblx0Ly8gVE9ETyDmmK/lkKbpnIDopoHmlbDmja7ovazmjaLlm57osIPlh73mlbBcclxuXHRvbk9rKGU6IGFueSkge1xyXG5cdFx0Y29uc3QgZ3JpZCA9IHRoaXMuZ3JpZExpc3QoKVt0aGlzLmluZGV4VmFsdWVdO1xyXG5cdFx0dGhpcy5ncmlkTGlzdCgpW3RoaXMuaW5kZXhWYWx1ZV0uc2VsZWN0RGF0YSA9IFtdO1xyXG5cdFx0aWYgKGUubGVuZ3RoID4gMCkge1xyXG5cdFx0XHRsZXQgdW5pcXVlS2V5cyA9IFtdO1xyXG5cdFx0XHRpZiAoZ3JpZC51bmlxdWVGaWVsZCkge1xyXG5cdFx0XHRcdGNvbnN0IHJvd0RhdGEgPSB0aGlzLmN1c3RvbUdyaWQuZ2V0KHRoaXMuaW5kZXhWYWx1ZSkhXHJcblx0XHRcdFx0XHQuZ2V0R3JpZCgpXHJcblx0XHRcdFx0XHQuYXBpLmdldFJlbmRlcmVkTm9kZXMoKVxyXG5cdFx0XHRcdFx0Lm1hcCgobm9kZSkgPT4gbm9kZS5kYXRhKTtcclxuXHRcdFx0XHR1bmlxdWVLZXlzID0gcm93RGF0YS5tYXAoKGl0ZW06IGFueSkgPT4gaXRlbVtncmlkLnVuaXF1ZUZpZWxkIV0pO1xyXG5cdFx0XHR9XHJcblx0XHRcdGUuZm9yRWFjaCgoaXRlbTogYW55KSA9PiB7XHJcblx0XHRcdFx0bGV0IG9iaiA9IGdyaWQuc2VsZWN0RGF0YUNiID8gZ3JpZC5zZWxlY3REYXRhQ2IoaXRlbSkgOiB7IC4uLml0ZW0gfTtcclxuXHRcdFx0XHRpZiAoZ3JpZC51bmlxdWVGaWVsZCAmJiB1bmlxdWVLZXlzLmluY2x1ZGVzKG9ialtncmlkLnVuaXF1ZUZpZWxkIV0gfHwgJycpKSB7XHJcblx0XHRcdFx0XHRyZXR1cm47XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdGdyaWQuc2VsZWN0RGF0YSEucHVzaChvYmopO1xyXG5cdFx0XHR9KTtcclxuXHRcdFx0dGhpcy5hY3Rpb24uc2F2ZVNpZ25hbC5zZXQodHJ1ZSk7XHJcblx0XHR9XHJcblx0fVxyXG5cdGdldERldGFpbCgpIHtcclxuXHRcdHRoaXMud2ViX2dldCh0aGlzLmdldFBybSkuc3Vic2NyaWJlKChyZXMpID0+IHtcclxuXHRcdFx0dGhpcy5kZXRhaWxDYihyZXMpXHJcblx0XHR9KTtcclxuXHR9XHJcblx0Ly8g6I635Y+W6K+m5oOF5Zue6LCDXHJcblx0ZGV0YWlsQ2IocmVzOmFueSl7XHJcblx0XHR0aGlzLnVwZGF0ZVRpdGxlKHJlcyk7XHJcblx0XHRpZih0eXBlb2YgdGhpcy5mb3JtRGlzYWJsZWQoKSA9PSAnZnVuY3Rpb24nKXtcclxuXHRcdFx0dGhpcy5mb3JtRGlzRnVuYygpO1xyXG5cdFx0fVxyXG5cdFx0aWYgKHRoaXMuaHJlZkJ0bkxpc3QoKS5sZW5ndGggPiAwKSB7XHJcblx0XHRcdHRoaXMuc2V0SHJlZlZhbHVlKCk7XHJcblx0XHR9XHJcblx0XHR0aGlzLmdyaWRMaXN0KCkuZm9yRWFjaCh2ID0+IHtcclxuXHRcdFx0aWYodi50eXBlID09ICdmb3JtJyl7XHJcblx0XHRcdFx0dGhpcy5zdWJGb3JtTW9kZWxbdi5zdWJEYXRhS2V5XSA9IHJlc1t2LnN1YkRhdGFLZXldWzBdXHJcblx0XHRcdH1cclxuXHRcdH0pXHJcblx0fVxyXG5cdHNldEhyZWZWYWx1ZSgpIHtcclxuXHRcdHRoaXMuaHJlZkJ0bkxpc3QoKS5tYXAoKGl0ZW06IGFueSkgPT4ge1xyXG5cdFx0XHRpZiAoaXRlbS5oYXNPd25Qcm9wZXJ0eSgnc2VhcmNoQ291bnQnKSAmJiB0eXBlb2YgaXRlbS5zZWFyY2hDb3VudCA9PSAnb2JqZWN0Jykge1xyXG5cdFx0XHRcdGl0ZW0uc2VhcmNoQ291bnQuY29sdW1uRmlsdGVycy5mb3JFYWNoKCh2OiBhbnkpID0+IHtcclxuXHRcdFx0XHRcdGlmICh0eXBlb2Ygdi5maXRlciA9PT0gJ2Z1bmN0aW9uJykge1xyXG5cdFx0XHRcdFx0XHR2LmZpdGVyID0gdi5maXRlcih0aGlzLmdldFBybS5kYXRhKTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9KTtcclxuXHRcdFx0XHR0aGlzLndlYl9zZWFyY2hDb3VudChpdGVtLnNlYXJjaENvdW50KS5zdWJzY3JpYmUoKHJlcykgPT4ge1xyXG5cdFx0XHRcdFx0aXRlbS52YWx1ZSA9IHJlcy50b3RhbE51bSB8fCAwO1xyXG5cdFx0XHRcdH0pO1xyXG5cdFx0XHR9XHJcblx0XHR9KTtcclxuXHR9XHJcblx0dXBkYXRlVGl0bGUocmVzOiBhbnkpIHtcclxuXHRcdGxldCBtYWluRmllbGQgPSB0aGlzLmZvcm0oKS5tYWluRmllbGQ7XHJcblx0XHRsZXQgdGl0bGUgPSByZXNbbWFpbkZpZWxkIV07XHJcblx0XHR0aGlzLnVzZXJIaXN0b3J5U2VydmljZS5zZXRMYXN0VGl0bGUodGl0bGUpO1xyXG5cdH1cclxuXHRkYXRhU291cmNlU2hvdygpIHtcclxuXHRcdGNvbnN0IGdyaWQgPSB0aGlzLmdyaWRMaXN0KClbdGhpcy5pbmRleFZhbHVlXTtcclxuXHRcdHRoaXMuZGlhbG9nU2VhcmNoUHJtID0geyAuLi50aGlzLmdyaWRMaXN0KClbdGhpcy5pbmRleFZhbHVlXVsnc2VhcmNoUHJtJ10hIH07XHJcblx0XHR0aGlzLnNlbGVjdE9wdGlvbnMgPSB0aGlzLmdyaWRMaXN0KClbdGhpcy5pbmRleFZhbHVlXVsnc2VsZWN0T3B0aW9ucyddITtcclxuXHRcdGNvbnNvbGUubG9nKCdzZWxldGMtLS0tLScsIHRoaXMuc2VsZWN0T3B0aW9ucyk7XHJcblx0XHR0aGlzLmRpYWxvZ1NlYXJjaFBybS5tb2RlbE5hbWUgPSB0aGlzLnNlbGVjdE9wdGlvbnMubW9kZWxOYW1lO1xyXG5cdFx0aWYoZ3JpZC51bmlxdWVGaWVsZCkge1xyXG5cdFx0XHR0aGlzLnNlbGVjdGlvbktleXMgPSB0aGlzLmdldFBybS5kYXRhPy5bZ3JpZC5zdWJEYXRhS2V5IV0/Lm1hcCgoaXRlbTogYW55KSA9PiBpdGVtW2dyaWQudW5pcXVlRmllbGQhXSkgfHwgW107XHJcblx0XHR9IGVsc2V7XHJcblx0XHRcdHRoaXMuc2VsZWN0aW9uS2V5cyA9IFtdO1xyXG5cdFx0fVxyXG5cdFx0dGhpcy52aXNpYmxlID0gdHJ1ZTtcclxuXHR9XHJcblxyXG5cdGdvUnVuKGRhdGE6IGFueSkge1xyXG5cdFx0aWYgKHR5cGVvZiBkYXRhLnVybCA9PT0gJ2Z1bmN0aW9uJykge1xyXG5cdFx0XHRsZXQgdXJsID0gZGF0YS51cmwodGhpcy5nZXRQcm0uZGF0YSk7XHJcblx0XHRcdHRoaXMucm91dGVyLm5hdmlnYXRlKFt1cmxdKTtcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdHRoaXMubWVzc2FnZVNlcnZpY2UuYWRkKHsgc2V2ZXJpdHk6ICd3YXJuJywgc3VtbWFyeTogJ1dhcm4nLCBkZXRhaWw6ICfor7fphY3nva7ot7Povazpk77mjqUnIH0pO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0YXV0aENsaWNrKGJ0bjogYW55KSB7XHJcblx0XHRpZiAoYnRuLmhhc093blByb3BlcnR5KCdvbkNsaWNrJykpIHtcclxuXHRcdFx0YnRuLm9uQ2xpY2sodGhpcy5nZXRQcm0uZGF0YSk7XHJcblx0XHR9XHJcblx0fVxyXG5cdHN0YXR1c0NoYW5nZSh2YWx1ZTogYW55LCBjdXN0b21TdGVwczogU3RlcHNDb21wb25lbnQpIHtcclxuXHRcdGlmICh0aGlzLmF1dGhMZXZlbCgpIDwgNCB8fCAhdGhpcy5zdGF0dXNDb25mKCkuaXNDbGljaykgcmV0dXJuO1xyXG5cdFx0aWYgKHRoaXMuaWQpIHtcclxuXHRcdFx0bGV0IHBhcmFtOiBhbnkgPSB7XHJcblx0XHRcdFx0bW9kZWxOYW1lOiB0aGlzLm1vZGVsTmFtZSxcclxuXHRcdFx0XHRkYXRhOiB7IGlkOiB0aGlzLmlkLCBbdGhpcy5zdGF0dXNLZXkoKV06IHZhbHVlIH0sXHJcblx0XHRcdH07XHJcblx0XHRcdGlmICh0aGlzLmlzTG9nKSB7XHJcblx0XHRcdFx0cGFyYW0ubG9nTW9kZWwgPSBgJHt0aGlzLm1vZGVsTmFtZX1Mb2dgO1xyXG5cdFx0XHRcdHBhcmFtLmxvZyA9IHtcclxuXHRcdFx0XHRcdHBpZDogdGhpcy5pZCxcclxuXHRcdFx0XHRcdGNvbnRlbnQ6IGBb54q25oCBXSAke3RoaXMuZ2V0UHJtLmRhdGEhW3RoaXMuc3RhdHVzS2V5KCldfSAtPiAke3ZhbHVlfWAsXHJcblx0XHRcdFx0fTtcclxuXHRcdFx0fVxyXG5cdFx0XHR0aGlzLndlYl93cml0ZShwYXJhbSkuc3Vic2NyaWJlKChyZXMpID0+IHtcclxuXHRcdFx0XHR0aGlzLmdldERldGFpbCgpO1xyXG5cdFx0XHR9KTtcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdHRoaXMuZ2V0UHJtLmRhdGEgPSBPYmplY3QuYXNzaWduKHRoaXMuZ2V0UHJtLmRhdGEgfHwge30sIHtcclxuXHRcdFx0XHRbdGhpcy5zdGF0dXNLZXkoKV06IHZhbHVlLFxyXG5cdFx0XHR9KTtcclxuXHRcdFx0dGhpcy51cHNlcnRQcm0uYWRkRGF0YSFbdGhpcy5zdGF0dXNLZXkoKV0gPSB2YWx1ZTtcclxuXHRcdFx0dGhpcy5jRm9ybS50cmlnZ2VyTW9kZWxFZmZlY3QoeyBbdGhpcy5zdGF0dXNLZXkoKV06IHZhbHVlIH0pO1xyXG5cdFx0XHQvLyBjdXN0b21TdGVwcy5yZWZyZXNoU3RlcHMoKVxyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0Zm9ybURpc0Z1bmMoKSB7XHJcblx0XHRsZXQgZGF0YSA9IHRoaXMuZm9ybURpc2FibGVkKCkhKHRoaXMuZ2V0UHJtLmRhdGEpO1xyXG5cdFx0aWYodHlwZW9mIGRhdGEgPT09ICdib29sZWFuJyl7XHJcblx0XHRcdHRoaXMuc2F2ZUJ0bkRpc2FibGUgPSBkYXRhXHJcblx0XHRcdHRoaXMuZ3JpZERpc2FibGUgPSBkYXRhXHJcblx0XHRcdHRoaXMuZGlzYWJsZUZvcm0oZGF0YSlcclxuXHRcdFx0dGhpcy5kaXNhYmVsZENoaWxkKGRhdGEpXHJcblx0XHR9XHJcblx0XHRpZih0eXBlb2YgZGF0YSA9PT0gJ29iamVjdCcpe1xyXG5cdFx0XHRjb25zdCBkaXNhYmVsZCA9IGRhdGEuZGlzYWJsZWRcclxuXHRcdFx0Y29uc3QgZmlsdGVycyA9IGRhdGEuZmlsdGVycyB8fCBbXVxyXG5cdFx0XHRpZighZmlsdGVycy5pbmNsdWRlcygnZm9ybScpKXtcclxuXHRcdFx0XHR0aGlzLmRpc2FibGVGb3JtKGRpc2FiZWxkKVxyXG5cdFx0XHR9XHJcblx0XHRcdGlmKCFmaWx0ZXJzLmluY2x1ZGVzKCdncmlkJykpe1xyXG5cdFx0XHRcdHRoaXMuZ3JpZERpc2FibGUgPSBkaXNhYmVsZFxyXG5cdFx0XHRcdHRoaXMuZGlzYWJlbGRDaGlsZChkaXNhYmVsZClcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHRkaXNhYmxlRm9ybShkaXNhYmxlOmJvb2xlYW4pe1xyXG5cdFx0dGhpcy5mb3JtT3B0aW9ucy5maWVsZHM/LmZvckVhY2goKHYpID0+IHtcclxuXHRcdFx0di5ncm91cD8uZm9yRWFjaCgoZzogYW55KSA9PiB7XHJcblx0XHRcdFx0bGV0IGZpZWxkRGlzYWJsZWQgPSBnW2Zvcm1UeXBlVG9Qcm9wc1tnLnR5cGVdXS5kaXNhYmxlZCB8fCBmYWxzZTtcclxuXHRcdFx0XHRpZiAoZGlzYWJsZSkge1xyXG5cdFx0XHRcdFx0dGhpcy5jRm9ybS5nZXRGaWVsZChnLmtleSk/LmZpZWxkQ29udHJvbCEubWFya0FzUHJpc3RpbmUoe2VtaXRFdmVudDogZmFsc2V9KTtcclxuXHRcdFx0XHRcdHRoaXMuY0Zvcm0uZ2V0RmllbGQoZy5rZXkpPy5maWVsZENvbnRyb2whLmRpc2FibGUoeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xyXG5cdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHQhZmllbGREaXNhYmxlZCAmJiB0aGlzLmNGb3JtLmdldEZpZWxkKGcua2V5KT8uZmllbGRDb250cm9sIS5lbmFibGUoeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSk7XHJcblx0XHR9KTtcdFx0XHJcblx0fVxyXG5cdGRpc2FiZWxkQ2hpbGQoZGlzYWJlbGQ6Ym9vbGVhbil7XHJcblx0XHR0aGlzLmdyaWRMaXN0KCkuZm9yRWFjaCgodixpbmRleDphbnkpID0+IHtcclxuXHRcdFx0aWYodi50eXBlID09ICdncmlkJyl7XHJcblx0XHRcdFx0di5ncmlkT3B0aW9ucy5jb2x1bW5EZWZzLmZvckVhY2goKGl0ZW06YW55KSA9PiB7XHJcblx0XHRcdFx0XHRpZihkaXNhYmVsZCAmJiBpdGVtLmhhc093blByb3BlcnR5KCdlZGl0YWJsZScpKXtcclxuXHRcdFx0XHRcdFx0aXRlbS5lZGl0YWJsZSA9IGZhbHNlXHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fSlcclxuXHRcdFx0XHR0aGlzLmN1c3RvbUdyaWQuZ2V0KGluZGV4KSEuZ2V0R3JpZCgpLmFwaS5zZXRHcmlkT3B0aW9uKFxyXG5cdFx0XHRcdFx0J2NvbHVtbkRlZnMnLCBcclxuXHRcdFx0XHRcdHYuZ3JpZE9wdGlvbnMuY29sdW1uRGVmc1xyXG5cdFx0XHRcdClcclxuXHRcdFx0fSBlbHNlIGlmKHYudHlwZSA9PSAnZm9ybScpe1xyXG5cdFx0XHRcdHYuZmllbGRzPy5mb3JFYWNoKChpdGVtOmFueSwpID0+IHtcclxuXHRcdFx0XHRcdGl0ZW0uZ3JvdXA/LmZvckVhY2goKGc6IGFueSkgPT4ge1xyXG5cdFx0XHRcdFx0XHRsZXQgZmllbGREaXNhYmxlZCA9IGdbZm9ybVR5cGVUb1Byb3BzW2cudHlwZV1dLmRpc2FibGVkIHx8IGZhbHNlO1xyXG5cdFx0XHRcdFx0XHRpZiAoZGlzYWJlbGQpIHtcclxuXHRcdFx0XHRcdFx0XHR0aGlzLnRhYkZvcm0uZ2V0KGluZGV4KSEuZ2V0RmllbGQoZy5rZXkpPy5maWVsZENvbnRyb2whLm1hcmtBc1ByaXN0aW5lKHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcclxuXHRcdFx0XHRcdFx0XHR0aGlzLnRhYkZvcm0uZ2V0KGluZGV4KSEuZ2V0RmllbGQoZy5rZXkpPy5maWVsZENvbnRyb2whLmRpc2FibGUoeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xyXG5cdFx0XHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0XHRcdCFmaWVsZERpc2FibGVkICYmIHRoaXMuY0Zvcm0uZ2V0RmllbGQoZy5rZXkpPy5maWVsZENvbnRyb2whLmVuYWJsZSh7IGVtaXRFdmVudDogZmFsc2UgfSk7XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH0pO1xyXG5cdFx0XHRcdH0pO1xyXG5cdFx0XHR9XHJcblx0XHR9KVxyXG5cdH1cclxuXHRzZXREaXNhYmxlZCgpe1xyXG5cdFx0dGhpcy5ncmlkTGlzdCgpLmZvckVhY2goKHYsaW5kZXg6YW55KSA9PiB7XHJcblx0XHRcdGlmKHYudHlwZSA9PSAnZm9ybScpe1xyXG5cdFx0XHRcdHYuZmllbGRzPy5mb3JFYWNoKChpdGVtOmFueSwpID0+IHtcclxuXHRcdFx0XHRcdGl0ZW0uZ3JvdXA/LmZvckVhY2goKGc6IGFueSkgPT4ge1xyXG5cdFx0XHRcdFx0XHR0aGlzLnRhYkZvcm0uZ2V0KGluZGV4KSEuZ2V0RmllbGQoZy5rZXkpPy5maWVsZENvbnRyb2whLmRpc2FibGUoeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xyXG5cdFx0XHRcdFx0fSk7XHJcblx0XHRcdFx0fSk7XHJcblx0XHRcdH1cclxuXHRcdH0pXHJcblx0fVxyXG5cdHRhYkNsaWNrKCl7XHJcblx0XHRzZXRUaW1lb3V0KCgpID0+IHtcclxuXHRcdFx0dGhpcy50YWJGb3JtLmdldCh0aGlzLmluZGV4VmFsdWUpICYmIHRoaXMudGFiRm9ybS5nZXQodGhpcy5pbmRleFZhbHVlKSEucmVDYWxjTGFiZWxTaXplKClcclxuXHRcdH0sMClcclxuXHR9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cIm1kOm92ZXJmbG93LWhpZGRlblwiPlxyXG5cdDxkaXYgY2xhc3M9XCJmbGV4IG1kOmZsZXgtd3JhcCBsZzpmbGV4LW5vd3JhcCBpdGVtcy1jZW50ZXIgbWQ6anVzdGlmeS1iZXR3ZWVuIHB5LTEgcHgtMSBib3JkZXItYi1bMXB4XSBib3JkZXItWyNkYmRiZGJdIGJnLXdoaXRlXCI+XHJcblx0XHQ8ZGl2IGNsYXNzPVwibWQ6YmFzaXMtMS8zIG9yZGVyLTFcIj5cclxuXHRcdFx0PGFwcC1jcnVtYi1hY3Rpb25cclxuXHRcdFx0XHRbYWRkVmlzaWJsZV09XCJhZGRWaXNpYmxlKClcIlxyXG5cdFx0XHRcdFtuZXdVcmxdPVwibmV3VXJsXCJcclxuXHRcdFx0XHRbaXNTaG93Q29nXT1cInRydWVcIlxyXG5cdFx0XHRcdFtvdXRsaW5lZF09XCJ0cnVlXCJcclxuXHRcdFx0XHRbYXV0aExldmVsXT1cImF1dGhMZXZlbCgpXCJcclxuXHRcdFx0XHRbYWN0aW9uTGlzdF09XCJhY3Rpb25MaXN0KClcIlxyXG5cdFx0XHRcdFtkYXRhXT1cImdldFBybS5kYXRhID8/IHt9XCJcclxuXHRcdFx0XHRbc2F2ZUJ0bkRpc2FibGVdPVwic2F2ZUJ0bkRpc2FibGVcIlxyXG5cdFx0XHRcdChhY3Rpb25FdmVudCk9XCJhdXRoQ2xpY2soJGV2ZW50KVwiXHJcblx0XHRcdFx0KHNhdmVFdmVudCk9XCJzdWJtaXRGb3JtKClcIj5cclxuXHRcdFx0PC9hcHAtY3J1bWItYWN0aW9uPlxyXG5cdFx0PC9kaXY+XHJcblxyXG5cdFx0PGRpdiBjbGFzcz1cImJhc2lzLTEvNSBsZzpiYXNpcy0yLzMgb3JkZXItMiBsZzpvcmRlci0yIG1kOm9yZGVyLWxhc3QgbWQ6YmFzaXMtZnVsbCBtZDptdC1bNnB4XVwiPlxyXG5cdFx0XHQ8aHJlZi1idG4tbGlzdFxyXG5cdFx0XHRcdFtocmVmc109XCJocmVmQnRuTGlzdCgpXCJcclxuXHRcdFx0XHQoaHJlZkNsaWNrKT1cImdvUnVuKCRldmVudClcIj48L2hyZWYtYnRuLWxpc3Q+XHJcblx0XHRcdDwhLS0gQGlmIChpZCkge1xyXG5cdFx0XHRcdEBmb3IgKGJ0biBvZiBocmVmQnRuTGlzdCgpOyB0cmFjayBidG4pIHtcclxuXHRcdFx0XHRcdDxwLWJ1dHRvblxyXG5cdFx0XHRcdFx0XHRbdmFyaWFudF09XCJidG4/LnZhcmlhbnRcIlxyXG5cdFx0XHRcdFx0XHRbc2V2ZXJpdHldPVwiYnRuPy5zZXZlcml0eVwiXHJcblx0XHRcdFx0XHRcdGNsYXNzPVwibXItWzZweF1cIlxyXG5cdFx0XHRcdFx0XHRzaXplPVwic21hbGxcIlxyXG5cdFx0XHRcdFx0XHRbaWNvbl09XCJidG4/Lmljb25cIlxyXG5cdFx0XHRcdFx0XHRsYWJlbD1cInt7IGJ0bi5pMThuS2V5ID8gaTE4bi5mYW55aShidG4uaTE4bktleSkgOiBidG4ubGFiZWwgfX1cIlxyXG5cdFx0XHRcdFx0XHQoY2xpY2spPVwiZ29SdW4oYnRuKVwiPlxyXG5cdFx0XHRcdFx0PC9wLWJ1dHRvbj5cclxuXHRcdFx0XHR9XHJcblx0XHRcdH0gLS0+XHJcblx0XHQ8L2Rpdj5cclxuXHRcdDxkaXYgY2xhc3M9XCJiYXNpcy0xLzMgb3JkZXItM1wiPjwvZGl2PlxyXG5cdDwvZGl2PlxyXG5cdDxkaXYgY2xhc3M9XCJmbGV4XCI+XHJcblx0XHQ8ZGl2IGNsYXNzPVwicHgtMiBmbGV4IGZsZXgtd3JhcCBpdGVtcy1jZW50ZXIgZmxleC0xXCI+XHJcblx0XHRcdDxkaXYgY2xhc3M9XCJoaWRkZW4gbWQ6YmFzaXMtMS8zIHB5LTEgYmFzaXMtZnVsbCBtZDpmbGV4IGl0ZW1zLWNlbnRlciBmbGV4LXJvdyBvcmRlci0xXCI+XHJcblx0XHRcdFx0QGZvciAoYWN0aW9uIG9mIGFjdGlvbkxpc3QoKTsgbGV0IGkgPSAkaW5kZXg7IHRyYWNrIGFjdGlvbikge1xyXG5cdFx0XHRcdFx0PHAtYnV0dG9uXHJcblx0XHRcdFx0XHRcdHNpemU9XCJzbWFsbFwiXHJcblx0XHRcdFx0XHRcdFtpY29uXT1cImdldFBybS5kYXRhPy5pY29uXCJcclxuXHRcdFx0XHRcdFx0W2xhYmVsXT1cImFjdGlvbi5pMThuS2V5ID8gKGFjdGlvbi5pMThuS2V5IHwgdHJhbnNsYXRlKSA6IGFjdGlvbi5sYWJlbFwiXHJcblx0XHRcdFx0XHRcdFtkaXNhYmxlZF09XCJhY3Rpb24uYnRuRGlzYWJsZWQgPyBhY3Rpb24uYnRuRGlzYWJsZWQoZ2V0UHJtLmRhdGEpIDogZmFsc2VcIlxyXG5cdFx0XHRcdFx0XHRbc3R5bGVDbGFzc109XCJcclxuXHRcdFx0XHRcdFx0XHQoYWN0aW9uLmF1dGggfHwgMCkgPiAoYXV0aExldmVsKCkgfHwgMCkgfHwgISFhY3Rpb24uYnRuSGlkZGVuPy4oZ2V0UHJtLmRhdGEpXHJcblx0XHRcdFx0XHRcdFx0XHQ/ICdmb3JtLWFjdGlvbiBoaWRkZW4nXHJcblx0XHRcdFx0XHRcdFx0XHQ6ICdmb3JtLWFjdGlvbiBibG9jayBtci1bLjVyZW1dJ1xyXG5cdFx0XHRcdFx0XHRcIlxyXG5cdFx0XHRcdFx0XHQob25DbGljayk9XCJhY3Rpb24ub25DbGljayAhPSAnJyAmJiBhY3Rpb24ub25DbGljaz8uKGdldFBybS5kYXRhKVwiPlxyXG5cdFx0XHRcdFx0PC9wLWJ1dHRvbj5cclxuXHRcdFx0XHR9XHJcblx0XHRcdDwvZGl2PlxyXG5cdFx0XHQ8ZGl2IGNsYXNzPVwibWQ6YmFzaXMtMi8zIGJhc2lzLWZ1bGwgZmxleCBtZDpmbGV4LXJvdy1yZXZlcnNlIGZsZXgtcm93IG1kOm9yZGVyLTIgb3JkZXItZmlyc3Qgdy1mdWxsXCI+XHJcblx0XHRcdFx0PGN1c3RvbS1zdGVwc1xyXG5cdFx0XHRcdFx0I2N1c3RvbVN0ZXBzXHJcblx0XHRcdFx0XHRjbGFzcz1cInctZnVsbFwiXHJcblx0XHRcdFx0XHRbc3RlcHNdPVwic3RhdHVzU3RlcHMoKVwiXHJcblx0XHRcdFx0XHRbbW9kZWxMb2ddPVwibW9kZWxMb2coKVwiXHJcblx0XHRcdFx0XHRbY3VycmVudF09XCJnZXRQcm0uZGF0YSAmJiBnZXRQcm0uZGF0YVtzdGF0dXNLZXkoKV0gIT09IHVuZGVmaW5lZCA/IGdldFBybS5kYXRhW3N0YXR1c0tleSgpXSA6IDBcIlxyXG5cdFx0XHRcdFx0W2F1dGhMZXZlbF09XCJhdXRoTGV2ZWwoKVwiXHJcblx0XHRcdFx0XHRbaXNDbGlja109XCJ0aGlzLnN0YXR1c0NvbmYoKS5pc0NsaWNrXCJcclxuXHRcdFx0XHRcdChjaGFuZ2UpPVwic3RhdHVzQ2hhbmdlKCRldmVudCwgY3VzdG9tU3RlcHMpXCI+XHJcblx0XHRcdFx0PC9jdXN0b20tc3RlcHM+XHJcblx0XHRcdDwvZGl2PlxyXG5cdFx0PC9kaXY+XHJcblx0XHRAaWYgKG1vZGVsTG9nKCkpIHtcclxuXHRcdFx0PGRpdiBjbGFzcz1cIm1kOnctWzQwMHB4XVwiPjwvZGl2PlxyXG5cdFx0fVxyXG5cdDwvZGl2PlxyXG5cdDxkaXYgY2xhc3M9XCJtYWluIGZsZXggZmxleC13cmFwIG1kOm92ZXJmbG93LXktaGlkZGVuXCI+XHJcblx0XHQ8ZGl2IGNsYXNzPVwidy1mdWxsIG1kOmZsZXgtMSBtZDpoLWZ1bGwgb3ZlcmZsb3cteS1hdXRvXCI+XHJcblx0XHRcdDxkaXYgY2xhc3M9XCJiZy13aGl0ZSBteC0yIGZvcm0tcGFuZWxcIj5cclxuXHRcdFx0XHQ8ZGl2IGNsYXNzPVwicC0yIGZsZXgtMVwiPlxyXG5cdFx0XHRcdFx0PGZvcm0gW2Zvcm1Hcm91cF09XCJmb3JtKCkuZm9ybSFcIj5cclxuXHRcdFx0XHRcdFx0PGN1c3RvbS1mb3JtXHJcblx0XHRcdFx0XHRcdFx0I2NGb3JtXHJcblx0XHRcdFx0XHRcdFx0W29wdGlvbnNdPVwiZm9ybU9wdGlvbnNcIlxyXG5cdFx0XHRcdFx0XHRcdFt1cHNlcnRdPVwidXBzZXJ0UHJtXCJcclxuXHRcdFx0XHRcdFx0XHRbbW9kZWxdPVwiZ2V0UHJtLmRhdGEgPz8ge31cIj48L2N1c3RvbS1mb3JtPlxyXG5cdFx0XHRcdFx0PC9mb3JtPlxyXG5cdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdEBpZiAoZ3JpZExpc3QoKSAmJiBncmlkTGlzdCgpLmxlbmd0aCA+IDApIHtcclxuXHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJyZWxhdGl2ZSBtYi0yXCI+XHJcblx0XHRcdFx0XHRcdDxwLXRhYnMgWyh2YWx1ZSldPVwiaW5kZXhWYWx1ZVwiPlxyXG5cdFx0XHRcdFx0XHRcdDxwLXRhYmxpc3Q+XHJcblx0XHRcdFx0XHRcdFx0XHRAZm9yIChmY2hpbGQgb2YgZ3JpZExpc3QoKTsgbGV0IGkgPSAkaW5kZXg7IHRyYWNrIGZjaGlsZCkge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8cC10YWJcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRbdmFsdWVdPVwiaVwiXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0KGNsaWNrKT1cInRhYkNsaWNrKClcIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHR7eyBmY2hpbGQuaTE4bktleSA/IGkxOG4uZmFueWkoZmNoaWxkLmkxOG5LZXkpIDogZmNoaWxkLnRpdGxlIH19XHJcblx0XHRcdFx0XHRcdFx0XHRcdDwvcC10YWI+XHJcblx0XHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFx0PC9wLXRhYmxpc3Q+XHJcblx0XHRcdFx0XHRcdDwvcC10YWJzPlxyXG5cdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdEBmb3IgKGdyaWQgb2YgZ3JpZExpc3QoKTsgbGV0IGkgPSAkaW5kZXg7IHRyYWNrIGdyaWQpIHtcclxuXHRcdFx0XHRcdEBpZiAoZ3JpZC50eXBlID09ICdncmlkJykge1xyXG5cdFx0XHRcdFx0XHQ8Y3VzdG9tLWdyaWRcclxuXHRcdFx0XHRcdFx0XHQjY3VzdG9tR3JpZFxyXG5cdFx0XHRcdFx0XHRcdFtoaWRkZW5dPVwiaW5kZXhWYWx1ZSAhPSBpXCJcclxuXHRcdFx0XHRcdFx0XHRbcm93RGF0YV09XCJnZXRQcm0uZGF0YT8uW2dyaWQuc3ViRGF0YUtleSFdIHx8IFtdXCJcclxuXHRcdFx0XHRcdFx0XHRbdXBzZXJ0XT1cInVwc2VydFBybVwiXHJcblx0XHRcdFx0XHRcdFx0KGRlbGV0ZUVtaXQpPVwiZGVsUm93cygkZXZlbnQpXCJcclxuXHRcdFx0XHRcdFx0XHRbYWRkVHlwZV09XCJncmlkLnN1YlRhYmxlU291cmNlXCJcclxuXHRcdFx0XHRcdFx0XHQoYWRkRW1pdCk9XCJkYXRhU291cmNlU2hvdygpXCJcclxuXHRcdFx0XHRcdFx0XHRbZ3JpZE9wdGlvbnNdPVwiZ3JpZC5ncmlkT3B0aW9uc1wiXHJcblx0XHRcdFx0XHRcdFx0W2dyaWREaXNhYmxlXT1cImdyaWREaXNhYmxlXCJcclxuXHRcdFx0XHRcdFx0XHRbYXV0aExldmVsXT1cImF1dGhMZXZlbCgpXCJcclxuXHRcdFx0XHRcdFx0XHRbc2hvd0RlbGV0ZV09XCJncmlkLnNob3dEZWxldGVcIlxyXG5cdFx0XHRcdFx0XHRcdFtzZWxlY3REYXRhXT1cImdyaWQuc2VsZWN0RGF0YVwiPlxyXG5cdFx0XHRcdFx0XHQ8L2N1c3RvbS1ncmlkPlxyXG5cdFx0XHRcdFx0fSBAZWxzZSB7XHJcblx0XHRcdFx0XHRcdDwhLS0gQGlmKGluZGV4VmFsdWUgPT0gaSl7XHJcblx0XHRcdFx0XHRcdFx0PGZvcm0gW2Zvcm1Hcm91cF09XCJncmlkLmZvcm0hXCI+XHJcblx0XHRcdFx0XHRcdFx0XHQ8Y3VzdG9tLWZvcm1cclxuXHRcdFx0XHRcdFx0XHRcdFtvcHRpb25zXT1cImdyaWRcIlxyXG5cdFx0XHRcdFx0XHRcdFx0W3Vwc2VydF09XCJ1cHNlcnRQcm1cIlxyXG5cdFx0XHRcdFx0XHRcdFx0PlxyXG5cdFx0XHRcdFx0XHRcdDwvY3VzdG9tLWZvcm0+XHJcblx0XHRcdFx0XHRcdFx0PC9mb3JtPlxyXG5cdFx0XHRcdFx0XHR9IC0tPlxyXG5cdFx0XHRcdFx0XHQ8Y3VzdG9tLWZvcm1cclxuXHRcdFx0XHRcdFx0XHQjdGFiRm9ybVxyXG5cdFx0XHRcdFx0XHRcdFtoaWRkZW5dPVwiaW5kZXhWYWx1ZSAhPSBpXCJcclxuXHRcdFx0XHRcdFx0XHRbb3B0aW9uc109XCJncmlkXCJcclxuXHRcdFx0XHRcdFx0XHRbdXBzZXJ0XT1cInVwc2VydFBybVwiXHJcblx0XHRcdFx0XHRcdFx0W21vZGVsXT1cInN1YkZvcm1Nb2RlbFtncmlkLnN1YkRhdGFLZXkhXSB8fCB7fVwiPlxyXG5cdFx0XHRcdFx0XHQ8L2N1c3RvbS1mb3JtPlxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0PC9kaXY+XHJcblx0XHQ8L2Rpdj5cclxuXHRcdEBpZiAobW9kZWxMb2coKSkge1xyXG5cdFx0XHQ8ZGl2IGNsYXNzPVwidy1mdWxsIG1kOnctWzQwMHB4XSBtZDpoLWZ1bGwgb3ZlcmZsb3cteS1hdXRvXCI+XHJcblx0XHRcdFx0PGN1c3RvbS1sb2cgW2xvZ3NdPVwiZ2V0UHJtLmRhdGE/LmxvZyA/PyBbXVwiPjwvY3VzdG9tLWxvZz5cclxuXHRcdFx0PC9kaXY+XHJcblx0XHR9XHJcblx0PC9kaXY+XHJcbjwvZGl2PlxyXG48cm93LXNlbGVjdG9yXHJcblx0Wyh2aXNpYmxlKV09XCJ2aXNpYmxlXCJcclxuXHRbc2VhcmNoUHJtXT1cImRpYWxvZ1NlYXJjaFBybVwiXHJcblx0W2dyaWRPcHRpb25zXT1cInNlbGVjdE9wdGlvbnNcIlxyXG5cdFtzZWxlY3Rpb25LZXlzXT1cInNlbGVjdGlvbktleXNcIlxyXG5cdChvbk9rKT1cIm9uT2soJGV2ZW50KVwiPlxyXG48L3Jvdy1zZWxlY3Rvcj5cclxuIl19
360
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2ltbS1lbGVtZW50LXVpL3NyYy9saWIvcGFnZS1mb3JtL3BhZ2UtZm9ybS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pbW0tZWxlbWVudC11aS9zcmMvbGliL3BhZ2UtZm9ybS9wYWdlLWZvcm0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDcEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQVUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQTJCLFlBQVksRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUN0SSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsYUFBYSxFQUFlLE1BQU0sNkJBQTZCLENBQUM7QUFDekUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDOUUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUM5RSxPQUFPLEVBQUUsY0FBYyxFQUFRLE1BQU0sMEJBQTBCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGFBQWEsRUFBZSxNQUFNLDZCQUE2QixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDMUMsT0FBTyxFQUFFLFdBQVcsRUFBTyxNQUFNLG9CQUFvQixDQUFDO0FBR3RELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsV0FBVyxFQUFF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QkFBQyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVXNlckhpc3RvcnlTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZS91c2VySGlzdG9yeS5zZXJ2aWNlJztcbmltcG9ydCB7IENvbXBvbmVudCwgaW5qZWN0LCBPbkluaXQsIFZpZXdDaGlsZCwgaW5wdXQsIGVmZmVjdCwgY29tcHV0ZWQsIElucHV0LCBzaWduYWwsIFZpZXdDaGlsZHJlbiwgUXVlcnlMaXN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRm9ybUNvbXBvbmVudCwgRm9ybU9wdGlvbnMgfSBmcm9tICcuLi9mb3JtL2Zvcm0vZm9ybS5jb21wb25lbnQnO1xuaW1wb3J0IHsgUm93U2VsZWN0b3JDb21wb25lbnQgfSBmcm9tICcuLi9yb3ctc2VsZWN0b3Ivcm93LXNlbGVjdG9yLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBMb2dDb21wb25lbnQgfSBmcm9tICcuLi9sb2cvbG9nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCdXR0b25Nb2R1bGUgfSBmcm9tICdwcmltZW5nL2J1dHRvbic7XG5pbXBvcnQgeyBDcnVtYkFjdGlvbkNvbXBvbmVudCB9IGZyb20gJy4uL2NydW1iLWFjdGlvbi9jcnVtYi1hY3Rpb24uY29tcG9uZW50JztcbmltcG9ydCB7IFN0ZXBzQ29tcG9uZW50LCBTdGVwIH0gZnJvbSAnLi4vc3RlcHMvc3RlcHMuY29tcG9uZW50JztcbmltcG9ydCB7IEdyaWRDb21wb25lbnQsIEdyaWRPcHRpb25zIH0gZnJvbSAnLi4vZ3JpZC9ncmlkL2dyaWQuY29tcG9uZW50JztcbmltcG9ydCB7IFRhYnNNb2R1bGUgfSBmcm9tICdwcmltZW5nL3RhYnMnO1xuaW1wb3J0IHsgQW1Db21wb25lbnQsIEdldCB9IGZyb20gJy4uL2FtL2FtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTZWFyY2ggfSBmcm9tICcuLi9hbS9hbS5jb21wb25lbnQnO1xuaW1wb3J0IHsgSHJlZkJ0bkxpc3QsIEdyaWRMaXN0IH0gZnJvbSAnLi9wYWdlLWZvcm0uaW50ZXJmYWNlJztcbmltcG9ydCB7IFRyYW5zbGF0ZVBpcGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IEkxOG5TZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZS9pMThuLnNlcnZpY2UnO1xuaW1wb3J0IHsgUGVybWlzc2lvbkJ0biB9IGZyb20gJy4vcGFnZS1mb3JtLmludGVyZmFjZSc7XG5pbXBvcnQgeyBmb3JtVHlwZVRvUHJvcHMgfSBmcm9tICcuL3BhZ2UtZm9ybS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSHJlZkJ0bkxpc3RDb21wb25lbnQgfSBmcm9tICcuLi9ocmVmLWJ0bi1saXN0L2hyZWYtYnRuLWxpc3QuY29tcG9uZW50JztcbmltcG9ydCB7IEFjdGlvblNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlL2FjdGlvbi5zZXJ2aWNlJztcbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ2FwcC1wYWdlLWZvcm0nLFxuXHRzdGFuZGFsb25lOiB0cnVlLFxuXHRpbXBvcnRzOiBbXG5cdFx0QnV0dG9uTW9kdWxlLFxuXHRcdFJlYWN0aXZlRm9ybXNNb2R1bGUsXG5cdFx0Rm9ybUNvbXBvbmVudCxcblx0XHRMb2dDb21wb25lbnQsXG5cdFx0Q3J1bWJBY3Rpb25Db21wb25lbnQsXG5cdFx0U3RlcHNDb21wb25lbnQsXG5cdFx0R3JpZENvbXBvbmVudCxcblx0XHRUYWJzTW9kdWxlLFxuXHRcdFJvd1NlbGVjdG9yQ29tcG9uZW50LFxuXHRcdFRyYW5zbGF0ZVBpcGUsXG5cdFx0SHJlZkJ0bkxpc3RDb21wb25lbnQsXG5cdF0sXG5cdHRlbXBsYXRlVXJsOiAnLi9wYWdlLWZvcm0uY29tcG9uZW50Lmh0bWwnLFxuXHRzdHlsZVVybDogJy4vcGFnZS1mb3JtLmNvbXBvbmVudC5zY3NzJyxcblx0cHJvdmlkZXJzOiBbXSxcbn0pXG5leHBvcnQgY2xhc3MgUGFnZUZvcm1Db21wb25lbnQgZXh0ZW5kcyBBbUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cdEBWaWV3Q2hpbGQoJ2NGb3JtJykgY0Zvcm0hOiBGb3JtQ29tcG9uZW50O1xuXHRAVmlld0NoaWxkcmVuKCdjdXN0b21HcmlkJykgY3VzdG9tR3JpZCE6IFF1ZXJ5TGlzdDxHcmlkQ29tcG9uZW50Pjtcblx0QFZpZXdDaGlsZHJlbigndGFiRm9ybScpIHRhYkZvcm0hOiBRdWVyeUxpc3Q8Rm9ybUNvbXBvbmVudD47XG5cdGFkZFZpc2libGUgPSBpbnB1dDxib29sZWFuPigpO1xuXHRncmlkTGlzdCA9IGlucHV0PGFueVtdPihbXSk7XG5cdGZvcm0gPSBpbnB1dC5yZXF1aXJlZDxGb3JtT3B0aW9ucz4oe30pO1xuXHRnZXRQcm1JbnB1dCA9IGlucHV0LnJlcXVpcmVkPEdldD4oe30pO1xuXHRzdGF0dXNTdGVwcyA9IGlucHV0PFN0ZXBbXT4oW10pO1xuXHRzdGF0dXNLZXkgPSBpbnB1dCgnc3RhdHVzJyk7XG5cdGhyZWZCdG5MaXN0ID0gaW5wdXQ8SHJlZkJ0bkxpc3RbXT4oW10pO1xuXHRzZXRUaXRsZSA9IGlucHV0PHN0cmluZz4oKTtcblx0YWN0aW9uTGlzdCA9IGlucHV0PFBlcm1pc3Npb25CdG5bXT4oW10pO1xuXHRtb2RlbExvZyA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcblx0Zm9ybURpc2FibGVkID0gaW5wdXQ8RnVuY3Rpb24+KCk7XG5cdHN0YXR1c0NvbmYgPSBpbnB1dDxhbnk+KClcblx0Zm9ybURldGFpbCA9IGlucHV0PGFueT4oKVxuXHRzYXZlRnVuYyA9IGlucHV0PGFueT4oKVxuXG5cdHVzZXJIaXN0b3J5U2VydmljZSA9IGluamVjdChVc2VySGlzdG9yeVNlcnZpY2UpO1xuXHRpbmRleFZhbHVlID0gMDtcblx0dmlzaWJsZSA9IGZhbHNlO1xuXHRkaWFsb2dTZWFyY2hQcm0hOiBTZWFyY2g7XG5cdHNlbGVjdE9wdGlvbnMhOiBHcmlkT3B0aW9ucztcblx0c2VsZWN0RGF0YTogYW55W10gPSBbXTtcblx0cGFnZVVybCA9ICcnO1xuXHRuZXdVcmwgPSAnJztcblx0aTE4biA9IGluamVjdChJMThuU2VydmljZSk7XG5cdGF1dGhMZXZlbCA9IGlucHV0PG51bWJlcj4oLTEpO1xuXHRocmVmczogYW55W10gPSBbXTtcblx0YWN0aW9uID0gaW5qZWN0KEFjdGlvblNlcnZpY2UpO1xuXHRzdWJGb3JtTW9kZWw6YW55ID0ge31cblx0c2F2ZUJ0bkRpc2FibGUgPSBmYWxzZVxuXHRncmlkRGlzYWJsZSA9IGZhbHNlIFxuXHRzZWxlY3Rpb25LZXlzOiBhbnlbXSA9IFtdO1xuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHRzdXBlcigpO1xuXHRcdHRoaXMuaWQgPSBOdW1iZXIodGhpcy5yb3V0ZS5zbmFwc2hvdC5wYXJhbU1hcC5nZXQoJ2lkJykpO1xuXHRcdHRoaXMucGFnZVVybCA9IHRoaXMucm91dGUuc25hcHNob3QudXJsXG5cdFx0XHQubWFwKChzZWdtZW50KSA9PiBzZWdtZW50LnBhdGgpXG5cdFx0XHQuam9pbignLycpXG5cdFx0XHQucmVwbGFjZSgvKFteXFwvXSopJC8sICcnKTtcblx0XHR0aGlzLm5ld1VybCA9IGAke3RoaXMucGFnZVVybH1uZXdgO1xuXHRcdGVmZmVjdChcblx0XHRcdCgpID0+IHtcblx0XHRcdFx0dGhpcy5tb2RlbE5hbWUgPSB0aGlzLmdldFBybUlucHV0KCkubW9kZWxOYW1lITtcblx0XHRcdFx0dGhpcy5nZXRQcm0gPSB7IC4uLnRoaXMuZ2V0UHJtSW5wdXQoKSB9O1xuXHRcdFx0XHR0aGlzLmlkICYmICh0aGlzLmdldFBybS5pZCA9IHRoaXMuaWQpO1xuXHRcdFx0XHRpZih0aGlzLmlkKXtcblx0XHRcdFx0XHRjb25zb2xlLmxvZyh0eXBlb2YgdGhpcy5mb3JtRGV0YWlsKCksJ2Zvcm0tLS0tJylcblx0XHRcdFx0XHR0eXBlb2YgdGhpcy5mb3JtRGV0YWlsKCkgPT0gJ2Z1bmN0aW9uJyA/IHRoaXMuZm9ybURldGFpbCgpKHRoaXMuaWQpIDogdGhpcy5nZXREZXRhaWwoKTtcblx0XHRcdFx0fVxuXHRcdFx0fSxcblx0XHRcdHsgYWxsb3dTaWduYWxXcml0ZXM6IHRydWUgfSxcblx0XHQpO1xuXG5cdFx0ZWZmZWN0KCgpID0+IHtcblx0XHRcdHRoaXMuZm9ybU9wdGlvbnMgPSB7IC4uLnRoaXMuZm9ybSgpIH07XG5cdFx0fSk7XG5cdFx0ZWZmZWN0KFxuXHRcdFx0KCkgPT4ge1xuXHRcdFx0XHR0aGlzLmlzTG9nID0gdGhpcy5tb2RlbExvZygpO1xuXHRcdFx0fSxcblx0XHRcdHsgYWxsb3dTaWduYWxXcml0ZXM6IHRydWUgfSxcblx0XHQpO1xuXHRcdGVmZmVjdChcblx0XHRcdCgpID0+IHtcblx0XHRcdFx0aWYgKHRoaXMuc3RhdHVzU3RlcHMoKS5sZW5ndGggPiAwICYmICF0aGlzLmlkKSB7XG5cdFx0XHRcdFx0dGhpcy51cHNlcnRQcm0uYWRkRGF0YSFbdGhpcy5zdGF0dXNLZXkoKV0gPSB0aGlzLnN0YXR1c1N0ZXBzKClbMF1bJ3ZhbHVlJ107XG5cdFx0XHRcdFx0dGhpcy5nZXRQcm0uZGF0YSA9IE9iamVjdC5hc3NpZ24odGhpcy5nZXRQcm0uZGF0YSB8fCB7fSwge1xuXHRcdFx0XHRcdFx0W3RoaXMuc3RhdHVzS2V5KCldOiB0aGlzLnN0YXR1c1N0ZXBzKClbMF1bJ3ZhbHVlJ10sXG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdH1cblx0XHRcdH0sXG5cdFx0XHR7IGFsbG93U2lnbmFsV3JpdGVzOiB0cnVlIH0sXG5cdFx0KTtcblx0XHRlZmZlY3QoKCkgPT4ge1xuXHRcdFx0aWYodGhpcy5hdXRoTGV2ZWwoKSA8IDMpe1xuXHRcdFx0XHR0aGlzLnNldERpc2FibGVkKClcblx0XHRcdH1cblx0XHR9LHthbGxvd1NpZ25hbFdyaXRlczp0cnVlfSlcblx0fVxuXHRuZ09uSW5pdCgpOiB2b2lkIHtcblx0XHR0aGlzLnVwQ2IgPSB0aGlzLnVwQ2IuYmluZCh0aGlzKTtcblx0fVxuXG5cdHN1Ym1pdEZvcm0oKTogYW55IHtcblx0XHQvLyB0aGlzLnRhYkZvcm0udmFsaWRhdGUoKVxuXHRcdGxldCBzdWJGb3JtID0gdHJ1ZVxuXHRcdGlmKHRoaXMudGFiRm9ybS5sZW5ndGggPiAwKXtcblx0XHRcdHRoaXMudGFiRm9ybS5mb3JFYWNoKGl0ZW0gPT4ge1xuXHRcdFx0XHRpZighaXRlbS52YWxpZGF0ZSgpKXtcblx0XHRcdFx0XHRzdWJGb3JtID0gZmFsc2Vcblx0XHRcdFx0fVxuXHRcdFx0fSlcblx0XHR9XG5cdFx0aWYgKHRoaXMuY0Zvcm0udmFsaWRhdGUoKSAmJiBzdWJGb3JtKSB7XG5cdFx0XHRsZXQgY2I6IGFueSA9IHRoaXMuaWQgPT09IDAgPyBudWxsIDogdGhpcy51cENiO1xuXHRcdFx0dHlwZW9mIHRoaXMuc2F2ZUZ1bmMoKSA9PSAnZnVuY3Rpb24nID8gdGhpcy5zYXZlRnVuYygpKHRoaXMudXBzZXJ0UHJtLHRoaXMuaWQsY2IpIDogdGhpcy51cHNlcnQobnVsbCwgY2IpO1xuXHRcdH1cblx0fVxuXG5cdGRlbFJvd3MoZTogYW55KSB7XG5cdFx0Y29uc3QgZ3JpZFRhYiA9IHRoaXMuZ3JpZExpc3QoKVt0aGlzLmluZGV4VmFsdWVdO1xuXHRcdGNvbnN0IGRlbGV0ZUZ1bmMgPSBncmlkVGFiLmRlbGV0ZUZ1bmM7XG5cdFx0Y29uc3Qgc3ViVGFibGUgPSBncmlkVGFiLmdyaWRPcHRpb25zLm1vZGVsTmFtZTtcblxuXHRcdGxldCBwcm0gPSB7XG5cdFx0XHRtb2RlbE5hbWU6IHN1YlRhYmxlLFxuXHRcdFx0aWRzOiBlLFxuXHRcdH07XG5cdFx0aWYgKCFkZWxldGVGdW5jKSB7XG5cdFx0XHR0aGlzLndlYl9yZW1vdmUocHJtKS5zdWJzY3JpYmUoKHJlcykgPT4ge1xuXHRcdFx0XHR0aGlzLmdldCgpO1xuXHRcdFx0fSk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdGRlbGV0ZUZ1bmMoKS5zdWJzY3JpYmUoKCkgPT4ge1xuXHRcdFx0XHR0aGlzLmdldCgpO1xuXHRcdFx0fSk7XG5cdFx0fVxuXHR9XG5cdHVwQ2IocmVzPzogYW55KSB7XG5cdFx0aWYgKHJlcy5pZCA9PSAwKSB7XG5cdFx0XHR0eXBlb2YgdGhpcy5mb3JtRGV0YWlsKCkgPT0gJ2Z1bmN0aW9uJyA/IHRoaXMuZm9ybURldGFpbCgpKHRoaXMuaWQpIDogdGhpcy5nZXREZXRhaWwoKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0c2V0VGltZW91dCgoKSA9PiB7XG5cdFx0XHRcdGxldCBlZGl0VXJsID0gYCR7dGhpcy5wYWdlVXJsfSR7cmVzLmlkfWA7XG5cdFx0XHRcdHRoaXMucm91dGVyLm5hdmlnYXRlKFtlZGl0VXJsXSk7XG5cdFx0XHR9LCAxNTAwKTtcblx0XHR9XG5cdFx0dGhpcy5hY3Rpb24uc2F2ZVNpZ25hbC5zZXQoZmFsc2UpO1xuXHRcdHRoaXMuY0Zvcm0uZmluYWxpemUoKTtcblx0fVxuXHQvLyBUT0RPIOaYr+WQpumcgOimgeaVsOaNrui9rOaNouWbnuiwg+WHveaVsFxuXHRvbk9rKGU6IGFueSkge1xuXHRcdGNvbnN0IGdyaWQgPSB0aGlzLmdyaWRMaXN0KClbdGhpcy5pbmRleFZhbHVlXTtcblx0XHR0aGlzLmdyaWRMaXN0KClbdGhpcy5pbmRleFZhbHVlXS5zZWxlY3REYXRhID0gW107XG5cdFx0aWYgKGUubGVuZ3RoID4gMCkge1xuXHRcdFx0bGV0IHVuaXF1ZUtleXMgPSBbXTtcblx0XHRcdGlmIChncmlkLnVuaXF1ZUZpZWxkKSB7XG5cdFx0XHRcdGNvbnN0IHJvd0RhdGEgPSB0aGlzLmN1c3RvbUdyaWQuZ2V0KHRoaXMuaW5kZXhWYWx1ZSkhXG5cdFx0XHRcdFx0LmdldEdyaWQoKVxuXHRcdFx0XHRcdC5hcGkuZ2V0UmVuZGVyZWROb2RlcygpXG5cdFx0XHRcdFx0Lm1hcCgobm9kZSkgPT4gbm9kZS5kYXRhKTtcblx0XHRcdFx0dW5pcXVlS2V5cyA9IHJvd0RhdGEubWFwKChpdGVtOiBhbnkpID0+IGl0ZW1bZ3JpZC51bmlxdWVGaWVsZCFdKTtcblx0XHRcdH1cblx0XHRcdGUuZm9yRWFjaCgoaXRlbTogYW55KSA9PiB7XG5cdFx0XHRcdGxldCBvYmogPSBncmlkLnNlbGVjdERhdGFDYiA/IGdyaWQuc2VsZWN0RGF0YUNiKGl0ZW0pIDogeyAuLi5pdGVtIH07XG5cdFx0XHRcdGlmIChncmlkLnVuaXF1ZUZpZWxkICYmIHVuaXF1ZUtleXMuaW5jbHVkZXMob2JqW2dyaWQudW5pcXVlRmllbGQhXSB8fCAnJykpIHtcblx0XHRcdFx0XHRyZXR1cm47XG5cdFx0XHRcdH1cblx0XHRcdFx0Z3JpZC5zZWxlY3REYXRhIS5wdXNoKG9iaik7XG5cdFx0XHR9KTtcblx0XHRcdHRoaXMuYWN0aW9uLnNhdmVTaWduYWwuc2V0KHRydWUpO1xuXHRcdH1cblx0fVxuXHRnZXREZXRhaWwoKSB7XG5cdFx0dGhpcy53ZWJfZ2V0KHRoaXMuZ2V0UHJtKS5zdWJzY3JpYmUoKHJlcykgPT4ge1xuXHRcdFx0dGhpcy5kZXRhaWxDYihyZXMpXG5cdFx0fSk7XG5cdH1cblx0Ly8g6I635Y+W6K+m5oOF5Zue6LCDXG5cdGRldGFpbENiKHJlczphbnkpe1xuXHRcdHRoaXMudXBkYXRlVGl0bGUocmVzKTtcblx0XHRpZih0eXBlb2YgdGhpcy5mb3JtRGlzYWJsZWQoKSA9PSAnZnVuY3Rpb24nKXtcblx0XHRcdHRoaXMuZm9ybURpc0Z1bmMoKTtcblx0XHR9XG5cdFx0aWYgKHRoaXMuaHJlZkJ0bkxpc3QoKS5sZW5ndGggPiAwKSB7XG5cdFx0XHR0aGlzLnNldEhyZWZWYWx1ZSgpO1xuXHRcdH1cblx0XHR0aGlzLmdyaWRMaXN0KCkuZm9yRWFjaCh2ID0+IHtcblx0XHRcdGlmKHYudHlwZSA9PSAnZm9ybScpe1xuXHRcdFx0XHR0aGlzLnN1YkZvcm1Nb2RlbFt2LnN1YkRhdGFLZXldID0gcmVzW3Yuc3ViRGF0YUtleV1bMF1cblx0XHRcdH1cblx0XHR9KVxuXHR9XG5cdHNldEhyZWZWYWx1ZSgpIHtcblx0XHR0aGlzLmhyZWZCdG5MaXN0KCkubWFwKChpdGVtOiBhbnkpID0+IHtcblx0XHRcdGlmIChpdGVtLmhhc093blByb3BlcnR5KCdzZWFyY2hDb3VudCcpICYmIHR5cGVvZiBpdGVtLnNlYXJjaENvdW50ID09ICdvYmplY3QnKSB7XG5cdFx0XHRcdGl0ZW0uc2VhcmNoQ291bnQuY29sdW1uRmlsdGVycy5mb3JFYWNoKCh2OiBhbnkpID0+IHtcblx0XHRcdFx0XHRpZiAodHlwZW9mIHYuZml0ZXIgPT09ICdmdW5jdGlvbicpIHtcblx0XHRcdFx0XHRcdHYuZml0ZXIgPSB2LmZpdGVyKHRoaXMuZ2V0UHJtLmRhdGEpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSk7XG5cdFx0XHRcdHRoaXMud2ViX3NlYXJjaENvdW50KGl0ZW0uc2VhcmNoQ291bnQpLnN1YnNjcmliZSgocmVzKSA9PiB7XG5cdFx0XHRcdFx0aXRlbS52YWx1ZSA9IHJlcy50b3RhbE51bSB8fCAwO1xuXHRcdFx0XHR9KTtcblx0XHRcdH1cblx0XHR9KTtcblx0fVxuXHR1cGRhdGVUaXRsZShyZXM6IGFueSkge1xuXHRcdGxldCBtYWluRmllbGQgPSB0aGlzLmZvcm0oKS5tYWluRmllbGQ7XG5cdFx0bGV0IHRpdGxlID0gcmVzW21haW5GaWVsZCFdO1xuXHRcdHRoaXMudXNlckhpc3RvcnlTZXJ2aWNlLnNldExhc3RUaXRsZSh0aXRsZSk7XG5cdH1cblx0ZGF0YVNvdXJjZVNob3coKSB7XG5cdFx0Y29uc3QgZ3JpZCA9IHRoaXMuZ3JpZExpc3QoKVt0aGlzLmluZGV4VmFsdWVdO1xuXHRcdHRoaXMuZGlhbG9nU2VhcmNoUHJtID0geyAuLi50aGlzLmdyaWRMaXN0KClbdGhpcy5pbmRleFZhbHVlXVsnc2VhcmNoUHJtJ10hIH07XG5cdFx0dGhpcy5zZWxlY3RPcHRpb25zID0gdGhpcy5ncmlkTGlzdCgpW3RoaXMuaW5kZXhWYWx1ZV1bJ3NlbGVjdE9wdGlvbnMnXSE7XG5cdFx0Y29uc29sZS5sb2coJ3NlbGV0Yy0tLS0tJywgdGhpcy5zZWxlY3RPcHRpb25zKTtcblx0XHR0aGlzLmRpYWxvZ1NlYXJjaFBybS5tb2RlbE5hbWUgPSB0aGlzLnNlbGVjdE9wdGlvbnMubW9kZWxOYW1lO1xuXHRcdGlmKGdyaWQudW5pcXVlRmllbGQpIHtcblx0XHRcdHRoaXMuc2VsZWN0aW9uS2V5cyA9IHRoaXMuZ2V0UHJtLmRhdGE/LltncmlkLnN1YkRhdGFLZXkhXT8ubWFwKChpdGVtOiBhbnkpID0+IGl0ZW1bZ3JpZC51bmlxdWVGaWVsZCFdKSB8fCBbXTtcblx0XHR9IGVsc2V7XG5cdFx0XHR0aGlzLnNlbGVjdGlvbktleXMgPSBbXTtcblx0XHR9XG5cdFx0dGhpcy52aXNpYmxlID0gdHJ1ZTtcblx0fVxuXG5cdGdvUnVuKGRhdGE6IGFueSkge1xuXHRcdGlmICh0eXBlb2YgZGF0YS51cmwgPT09ICdmdW5jdGlvbicpIHtcblx0XHRcdGxldCB1cmwgPSBkYXRhLnVybCh0aGlzLmdldFBybS5kYXRhKTtcblx0XHRcdHRoaXMucm91dGVyLm5hdmlnYXRlKFt1cmxdKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0dGhpcy5tZXNzYWdlU2VydmljZS5hZGQoeyBzZXZlcml0eTogJ3dhcm4nLCBzdW1tYXJ5OiAnV2FybicsIGRldGFpbDogJ+ivt+mFjee9rui3s+i9rOmTvuaOpScgfSk7XG5cdFx0fVxuXHR9XG5cblx0YXV0aENsaWNrKGJ0bjogYW55KSB7XG5cdFx0aWYgKGJ0bi5oYXNPd25Qcm9wZXJ0eSgnb25DbGljaycpKSB7XG5cdFx0XHRidG4ub25DbGljayh0aGlzLmdldFBybS5kYXRhKTtcblx0XHR9XG5cdH1cblx0c3RhdHVzQ2hhbmdlKHZhbHVlOiBhbnksIGN1c3RvbVN0ZXBzOiBTdGVwc0NvbXBvbmVudCkge1xuXHRcdGlmICh0aGlzLmF1dGhMZXZlbCgpIDwgNCB8fCAhdGhpcy5zdGF0dXNDb25mKCkuaXNDbGljaykgcmV0dXJuO1xuXHRcdGlmICh0aGlzLmlkKSB7XG5cdFx0XHRsZXQgcGFyYW06IGFueSA9IHtcblx0XHRcdFx0bW9kZWxOYW1lOiB0aGlzLm1vZGVsTmFtZSxcblx0XHRcdFx0ZGF0YTogeyBpZDogdGhpcy5pZCwgW3RoaXMuc3RhdHVzS2V5KCldOiB2YWx1ZSB9LFxuXHRcdFx0fTtcblx0XHRcdGlmICh0aGlzLmlzTG9nKSB7XG5cdFx0XHRcdHBhcmFtLmxvZ01vZGVsID0gYCR7dGhpcy5tb2RlbE5hbWV9TG9nYDtcblx0XHRcdFx0cGFyYW0ubG9nID0ge1xuXHRcdFx0XHRcdHBpZDogdGhpcy5pZCxcblx0XHRcdFx0XHRjb250ZW50OiBgW+eKtuaAgV0gJHt0aGlzLmdldFBybS5kYXRhIVt0aGlzLnN0YXR1c0tleSgpXX0gLT4gJHt2YWx1ZX1gLFxuXHRcdFx0XHR9O1xuXHRcdFx0fVxuXHRcdFx0dGhpcy53ZWJfd3JpdGUocGFyYW0pLnN1YnNjcmliZSgocmVzKSA9PiB7XG5cdFx0XHRcdHRoaXMuZ2V0RGV0YWlsKCk7XG5cdFx0XHR9KTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0dGhpcy5nZXRQcm0uZGF0YSA9IE9iamVjdC5hc3NpZ24odGhpcy5nZXRQcm0uZGF0YSB8fCB7fSwge1xuXHRcdFx0XHRbdGhpcy5zdGF0dXNLZXkoKV06IHZhbHVlLFxuXHRcdFx0fSk7XG5cdFx0XHR0aGlzLnVwc2VydFBybS5hZGREYXRhIVt0aGlzLnN0YXR1c0tleSgpXSA9IHZhbHVlO1xuXHRcdFx0dGhpcy5jRm9ybS50cmlnZ2VyTW9kZWxFZmZlY3QoeyBbdGhpcy5zdGF0dXNLZXkoKV06IHZhbHVlIH0pO1xuXHRcdFx0Ly8gY3VzdG9tU3RlcHMucmVmcmVzaFN0ZXBzKClcblx0XHR9XG5cdH1cblxuXHRmb3JtRGlzRnVuYygpIHtcblx0XHRsZXQgZGF0YSA9IHRoaXMuZm9ybURpc2FibGVkKCkhKHRoaXMuZ2V0UHJtLmRhdGEpO1xuXHRcdGlmKHR5cGVvZiBkYXRhID09PSAnYm9vbGVhbicpe1xuXHRcdFx0dGhpcy5zYXZlQnRuRGlzYWJsZSA9IGRhdGFcblx0XHRcdHRoaXMuZ3JpZERpc2FibGUgPSBkYXRhXG5cdFx0XHR0aGlzLmRpc2FibGVGb3JtKGRhdGEpXG5cdFx0XHR0aGlzLmRpc2FiZWxkQ2hpbGQoZGF0YSlcblx0XHR9XG5cdFx0aWYodHlwZW9mIGRhdGEgPT09ICdvYmplY3QnKXtcblx0XHRcdGNvbnN0IGRpc2FiZWxkID0gZGF0YS5kaXNhYmxlZFxuXHRcdFx0Y29uc3QgZmlsdGVycyA9IGRhdGEuZmlsdGVycyB8fCBbXVxuXHRcdFx0aWYoIWZpbHRlcnMuaW5jbHVkZXMoJ2Zvcm0nKSl7XG5cdFx0XHRcdHRoaXMuZGlzYWJsZUZvcm0oZGlzYWJlbGQpXG5cdFx0XHR9XG5cdFx0XHRpZighZmlsdGVycy5pbmNsdWRlcygnZ3JpZCcpKXtcblx0XHRcdFx0dGhpcy5ncmlkRGlzYWJsZSA9IGRpc2FiZWxkXG5cdFx0XHRcdHRoaXMuZGlzYWJlbGRDaGlsZChkaXNhYmVsZClcblx0XHRcdH1cblx0XHR9XG5cdH1cblx0ZGlzYWJsZUZvcm0oZGlzYWJsZTpib29sZWFuKXtcblx0XHR0aGlzLmZvcm1PcHRpb25zLmZpZWxkcz8uZm9yRWFjaCgodikgPT4ge1xuXHRcdFx0di5ncm91cD8uZm9yRWFjaCgoZzogYW55KSA9PiB7XG5cdFx0XHRcdGxldCBmaWVsZERpc2FibGVkID0gZ1tmb3JtVHlwZVRvUHJvcHNbZy50eXBlXV0uZGlzYWJsZWQgfHwgZmFsc2U7XG5cdFx0XHRcdGlmIChkaXNhYmxlKSB7XG5cdFx0XHRcdFx0dGhpcy5jRm9ybS5nZXRGaWVsZChnLmtleSk/LmZpZWxkQ29udHJvbCEubWFya0FzUHJpc3RpbmUoe2VtaXRFdmVudDogZmFsc2V9KTtcblx0XHRcdFx0XHR0aGlzLmNGb3JtLmdldEZpZWxkKGcua2V5KT8uZmllbGRDb250cm9sIS5kaXNhYmxlKHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHQhZmllbGREaXNhYmxlZCAmJiB0aGlzLmNGb3JtLmdldEZpZWxkKGcua2V5KT8uZmllbGRDb250cm9sIS5lbmFibGUoeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuXHRcdFx0XHR9XG5cdFx0XHR9KTtcblx0XHR9KTtcdFx0XG5cdH1cblx0ZGlzYWJlbGRDaGlsZChkaXNhYmVsZDpib29sZWFuKXtcblx0XHR0aGlzLmdyaWRMaXN0KCkuZm9yRWFjaCgodixpbmRleDphbnkpID0+IHtcblx0XHRcdGlmKHYudHlwZSA9PSAnZ3JpZCcpe1xuXHRcdFx0XHR2LmdyaWRPcHRpb25zLmNvbHVtbkRlZnMuZm9yRWFjaCgoaXRlbTphbnkpID0+IHtcblx0XHRcdFx0XHRpZihkaXNhYmVsZCAmJiBpdGVtLmhhc093blByb3BlcnR5KCdlZGl0YWJsZScpKXtcblx0XHRcdFx0XHRcdGl0ZW0uZWRpdGFibGUgPSBmYWxzZVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSlcblx0XHRcdFx0dGhpcy5jdXN0b21HcmlkLmdldChpbmRleCkhLmdldEdyaWQoKS5hcGkuc2V0R3JpZE9wdGlvbihcblx0XHRcdFx0XHQnY29sdW1uRGVmcycsIFxuXHRcdFx0XHRcdHYuZ3JpZE9wdGlvbnMuY29sdW1uRGVmc1xuXHRcdFx0XHQpXG5cdFx0XHR9IGVsc2UgaWYodi50eXBlID09ICdmb3JtJyl7XG5cdFx0XHRcdHYuZmllbGRzPy5mb3JFYWNoKChpdGVtOmFueSwpID0+IHtcblx0XHRcdFx0XHRpdGVtLmdyb3VwPy5mb3JFYWNoKChnOiBhbnkpID0+IHtcblx0XHRcdFx0XHRcdGxldCBmaWVsZERpc2FibGVkID0gZ1tmb3JtVHlwZVRvUHJvcHNbZy50eXBlXV0uZGlzYWJsZWQgfHwgZmFsc2U7XG5cdFx0XHRcdFx0XHRpZiAoZGlzYWJlbGQpIHtcblx0XHRcdFx0XHRcdFx0dGhpcy50YWJGb3JtLmdldChpbmRleCkhLmdldEZpZWxkKGcua2V5KT8uZmllbGRDb250cm9sIS5tYXJrQXNQcmlzdGluZSh7IGVtaXRFdmVudDogZmFsc2UgfSk7XG5cdFx0XHRcdFx0XHRcdHRoaXMudGFiRm9ybS5nZXQoaW5kZXgpIS5nZXRGaWVsZChnLmtleSk/LmZpZWxkQ29udHJvbCEuZGlzYWJsZSh7IGVtaXRFdmVudDogZmFsc2UgfSk7XG5cdFx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0XHQhZmllbGREaXNhYmxlZCAmJiB0aGlzLmNGb3JtLmdldEZpZWxkKGcua2V5KT8uZmllbGRDb250cm9sIS5lbmFibGUoeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHR9KTtcblx0XHRcdH1cblx0XHR9KVxuXHR9XG5cdHNldERpc2FibGVkKCl7XG5cdFx0dGhpcy5ncmlkTGlzdCgpLmZvckVhY2goKHYsaW5kZXg6YW55KSA9PiB7XG5cdFx0XHRpZih2LnR5cGUgPT0gJ2Zvcm0nKXtcblx0XHRcdFx0di5maWVsZHM/LmZvckVhY2goKGl0ZW06YW55LCkgPT4ge1xuXHRcdFx0XHRcdGl0ZW0uZ3JvdXA/LmZvckVhY2goKGc6IGFueSkgPT4ge1xuXHRcdFx0XHRcdFx0dGhpcy50YWJGb3JtLmdldChpbmRleCkhLmdldEZpZWxkKGcua2V5KT8uZmllbGRDb250cm9sIS5kaXNhYmxlKHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0fSk7XG5cdFx0XHR9XG5cdFx0fSlcblx0fVxuXHR0YWJDbGljaygpe1xuXHRcdHNldFRpbWVvdXQoKCkgPT4ge1xuXHRcdFx0dGhpcy50YWJGb3JtLmdldCh0aGlzLmluZGV4VmFsdWUpICYmIHRoaXMudGFiRm9ybS5nZXQodGhpcy5pbmRleFZhbHVlKSEucmVDYWxjTGFiZWxTaXplKClcblx0XHR9LDApXG5cdH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJtZDpvdmVyZmxvdy1oaWRkZW5cIj5cblx0PGRpdiBjbGFzcz1cImZsZXggbWQ6ZmxleC13cmFwIGxnOmZsZXgtbm93cmFwIGl0ZW1zLWNlbnRlciBtZDpqdXN0aWZ5LWJldHdlZW4gcHktMSBweC0xIGJvcmRlci1iLVsxcHhdIGJvcmRlci1bI2RiZGJkYl0gYmctd2hpdGVcIj5cblx0XHQ8ZGl2IGNsYXNzPVwibWQ6YmFzaXMtMS8zIG9yZGVyLTFcIj5cblx0XHRcdDxhcHAtY3J1bWItYWN0aW9uXG5cdFx0XHRcdFthZGRWaXNpYmxlXT1cImFkZFZpc2libGUoKVwiXG5cdFx0XHRcdFtuZXdVcmxdPVwibmV3VXJsXCJcblx0XHRcdFx0W2lzU2hvd0NvZ109XCJ0cnVlXCJcblx0XHRcdFx0W291dGxpbmVkXT1cInRydWVcIlxuXHRcdFx0XHRbYXV0aExldmVsXT1cImF1dGhMZXZlbCgpXCJcblx0XHRcdFx0W2FjdGlvbkxpc3RdPVwiYWN0aW9uTGlzdCgpXCJcblx0XHRcdFx0W2RhdGFdPVwiZ2V0UHJtLmRhdGEgPz8ge31cIlxuXHRcdFx0XHRbc2F2ZUJ0bkRpc2FibGVdPVwic2F2ZUJ0bkRpc2FibGVcIlxuXHRcdFx0XHQoYWN0aW9uRXZlbnQpPVwiYXV0aENsaWNrKCRldmVudClcIlxuXHRcdFx0XHQoc2F2ZUV2ZW50KT1cInN1Ym1pdEZvcm0oKVwiPlxuXHRcdFx0PC9hcHAtY3J1bWItYWN0aW9uPlxuXHRcdDwvZGl2PlxuXG5cdFx0PGRpdiBjbGFzcz1cImJhc2lzLTEvNSBsZzpiYXNpcy0yLzMgb3JkZXItMiBsZzpvcmRlci0yIG1kOm9yZGVyLWxhc3QgbWQ6YmFzaXMtZnVsbCBtZDptdC1bNnB4XVwiPlxuXHRcdFx0PGhyZWYtYnRuLWxpc3Rcblx0XHRcdFx0W2hyZWZzXT1cImhyZWZCdG5MaXN0KClcIlxuXHRcdFx0XHQoaHJlZkNsaWNrKT1cImdvUnVuKCRldmVudClcIj48L2hyZWYtYnRuLWxpc3Q+XG5cdFx0XHQ8IS0tIEBpZiAoaWQpIHtcblx0XHRcdFx0QGZvciAoYnRuIG9mIGhyZWZCdG5MaXN0KCk7IHRyYWNrIGJ0bikge1xuXHRcdFx0XHRcdDxwLWJ1dHRvblxuXHRcdFx0XHRcdFx0W3ZhcmlhbnRdPVwiYnRuPy52YXJpYW50XCJcblx0XHRcdFx0XHRcdFtzZXZlcml0eV09XCJidG4/LnNldmVyaXR5XCJcblx0XHRcdFx0XHRcdGNsYXNzPVwibXItWzZweF1cIlxuXHRcdFx0XHRcdFx0c2l6ZT1cInNtYWxsXCJcblx0XHRcdFx0XHRcdFtpY29uXT1cImJ0bj8uaWNvblwiXG5cdFx0XHRcdFx0XHRsYWJlbD1cInt7IGJ0bi5pMThuS2V5ID8gaTE4bi5mYW55aShidG4uaTE4bktleSkgOiBidG4ubGFiZWwgfX1cIlxuXHRcdFx0XHRcdFx0KGNsaWNrKT1cImdvUnVuKGJ0bilcIj5cblx0XHRcdFx0XHQ8L3AtYnV0dG9uPlxuXHRcdFx0XHR9XG5cdFx0XHR9IC0tPlxuXHRcdDwvZGl2PlxuXHRcdDxkaXYgY2xhc3M9XCJiYXNpcy0xLzMgb3JkZXItM1wiPjwvZGl2PlxuXHQ8L2Rpdj5cblx0PGRpdiBjbGFzcz1cImZsZXhcIj5cblx0XHQ8ZGl2IGNsYXNzPVwicHgtMiBmbGV4IGZsZXgtd3JhcCBpdGVtcy1jZW50ZXIgZmxleC0xXCI+XG5cdFx0XHQ8ZGl2IGNsYXNzPVwiaGlkZGVuIG1kOmJhc2lzLTEvMyBweS0xIGJhc2lzLWZ1bGwgbWQ6ZmxleCBpdGVtcy1jZW50ZXIgZmxleC1yb3cgb3JkZXItMVwiPlxuXHRcdFx0XHRAZm9yIChhY3Rpb24gb2YgYWN0aW9uTGlzdCgpOyBsZXQgaSA9ICRpbmRleDsgdHJhY2sgYWN0aW9uKSB7XG5cdFx0XHRcdFx0PHAtYnV0dG9uXG5cdFx0XHRcdFx0XHRzaXplPVwic21hbGxcIlxuXHRcdFx0XHRcdFx0W2ljb25dPVwiZ2V0UHJtLmRhdGE/Lmljb25cIlxuXHRcdFx0XHRcdFx0W2xhYmVsXT1cImFjdGlvbi5pMThuS2V5ID8gKGFjdGlvbi5pMThuS2V5IHwgdHJhbnNsYXRlKSA6IGFjdGlvbi5sYWJlbFwiXG5cdFx0XHRcdFx0XHRbZGlzYWJsZWRdPVwiYWN0aW9uLmJ0bkRpc2FibGVkID8gYWN0aW9uLmJ0bkRpc2FibGVkKGdldFBybS5kYXRhKSA6IGZhbHNlXCJcblx0XHRcdFx0XHRcdFtzdHlsZUNsYXNzXT1cIlxuXHRcdFx0XHRcdFx0XHQoYWN0aW9uLmF1dGggfHwgMCkgPiAoYXV0aExldmVsKCkgfHwgMCkgfHwgISFhY3Rpb24uYnRuSGlkZGVuPy4oZ2V0UHJtLmRhdGEpXG5cdFx0XHRcdFx0XHRcdFx0PyAnZm9ybS1hY3Rpb24gaGlkZGVuJ1xuXHRcdFx0XHRcdFx0XHRcdDogJ2Zvcm0tYWN0aW9uIGJsb2NrIG1yLVsuNXJlbV0nXG5cdFx0XHRcdFx0XHRcIlxuXHRcdFx0XHRcdFx0KG9uQ2xpY2spPVwiYWN0aW9uLm9uQ2xpY2sgIT0gJycgJiYgYWN0aW9uLm9uQ2xpY2s/LihnZXRQcm0uZGF0YSlcIj5cblx0XHRcdFx0XHQ8L3AtYnV0dG9uPlxuXHRcdFx0XHR9XG5cdFx0XHQ8L2Rpdj5cblx0XHRcdDxkaXYgY2xhc3M9XCJtZDpiYXNpcy0yLzMgYmFzaXMtZnVsbCBmbGV4IG1kOmZsZXgtcm93LXJldmVyc2UgZmxleC1yb3cgbWQ6b3JkZXItMiBvcmRlci1maXJzdCB3LWZ1bGxcIj5cblx0XHRcdFx0PGN1c3RvbS1zdGVwc1xuXHRcdFx0XHRcdCNjdXN0b21TdGVwc1xuXHRcdFx0XHRcdGNsYXNzPVwidy1mdWxsXCJcblx0XHRcdFx0XHRbc3RlcHNdPVwic3RhdHVzU3RlcHMoKVwiXG5cdFx0XHRcdFx0W21vZGVsTG9nXT1cIm1vZGVsTG9nKClcIlxuXHRcdFx0XHRcdFtjdXJyZW50XT1cImdldFBybS5kYXRhICYmIGdldFBybS5kYXRhW3N0YXR1c0tleSgpXSAhPT0gdW5kZWZpbmVkID8gZ2V0UHJtLmRhdGFbc3RhdHVzS2V5KCldIDogMFwiXG5cdFx0XHRcdFx0W2F1dGhMZXZlbF09XCJhdXRoTGV2ZWwoKVwiXG5cdFx0XHRcdFx0W2lzQ2xpY2tdPVwidGhpcy5zdGF0dXNDb25mKCkuaXNDbGlja1wiXG5cdFx0XHRcdFx0KGNoYW5nZSk9XCJzdGF0dXNDaGFuZ2UoJGV2ZW50LCBjdXN0b21TdGVwcylcIj5cblx0XHRcdFx0PC9jdXN0b20tc3RlcHM+XG5cdFx0XHQ8L2Rpdj5cblx0XHQ8L2Rpdj5cblx0XHRAaWYgKG1vZGVsTG9nKCkpIHtcblx0XHRcdDxkaXYgY2xhc3M9XCJtZDp3LVs0MDBweF1cIj48L2Rpdj5cblx0XHR9XG5cdDwvZGl2PlxuXHQ8ZGl2IGNsYXNzPVwibWFpbiBmbGV4IGZsZXgtd3JhcCBtZDpvdmVyZmxvdy15LWhpZGRlblwiPlxuXHRcdDxkaXYgY2xhc3M9XCJ3LWZ1bGwgbWQ6ZmxleC0xIG1kOmgtZnVsbCBvdmVyZmxvdy15LWF1dG9cIj5cblx0XHRcdDxkaXYgY2xhc3M9XCJiZy13aGl0ZSBteC0yIGZvcm0tcGFuZWxcIj5cblx0XHRcdFx0PGRpdiBjbGFzcz1cInAtMiBmbGV4LTFcIj5cblx0XHRcdFx0XHQ8Zm9ybSBbZm9ybUdyb3VwXT1cImZvcm0oKS5mb3JtIVwiPlxuXHRcdFx0XHRcdFx0PGN1c3RvbS1mb3JtXG5cdFx0XHRcdFx0XHRcdCNjRm9ybVxuXHRcdFx0XHRcdFx0XHRbb3B0aW9uc109XCJmb3JtT3B0aW9uc1wiXG5cdFx0XHRcdFx0XHRcdFt1cHNlcnRdPVwidXBzZXJ0UHJtXCJcblx0XHRcdFx0XHRcdFx0W21vZGVsXT1cImdldFBybS5kYXRhID8/IHt9XCI+PC9jdXN0b20tZm9ybT5cblx0XHRcdFx0XHQ8L2Zvcm0+XG5cdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRAaWYgKGdyaWRMaXN0KCkgJiYgZ3JpZExpc3QoKS5sZW5ndGggPiAwKSB7XG5cdFx0XHRcdFx0PGRpdiBjbGFzcz1cInJlbGF0aXZlIG1iLTJcIj5cblx0XHRcdFx0XHRcdDxwLXRhYnMgWyh2YWx1ZSldPVwiaW5kZXhWYWx1ZVwiPlxuXHRcdFx0XHRcdFx0XHQ8cC10YWJsaXN0PlxuXHRcdFx0XHRcdFx0XHRcdEBmb3IgKGZjaGlsZCBvZiBncmlkTGlzdCgpOyBsZXQgaSA9ICRpbmRleDsgdHJhY2sgZmNoaWxkKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHQ8cC10YWJcblx0XHRcdFx0XHRcdFx0XHRcdFx0W3ZhbHVlXT1cImlcIlxuXHRcdFx0XHRcdFx0XHRcdFx0XHQoY2xpY2spPVwidGFiQ2xpY2soKVwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHR7eyBmY2hpbGQuaTE4bktleSA/IGkxOG4uZmFueWkoZmNoaWxkLmkxOG5LZXkpIDogZmNoaWxkLnRpdGxlIH19XG5cdFx0XHRcdFx0XHRcdFx0XHQ8L3AtdGFiPlxuXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0PC9wLXRhYmxpc3Q+XG5cdFx0XHRcdFx0XHQ8L3AtdGFicz5cblx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0fVxuXHRcdFx0XHRAZm9yIChncmlkIG9mIGdyaWRMaXN0KCk7IGxldCBpID0gJGluZGV4OyB0cmFjayBncmlkKSB7XG5cdFx0XHRcdFx0QGlmIChncmlkLnR5cGUgPT0gJ2dyaWQnKSB7XG5cdFx0XHRcdFx0XHQ8Y3VzdG9tLWdyaWRcblx0XHRcdFx0XHRcdFx0I2N1c3RvbUdyaWRcblx0XHRcdFx0XHRcdFx0W2hpZGRlbl09XCJpbmRleFZhbHVlICE9IGlcIlxuXHRcdFx0XHRcdFx0XHRbcm93RGF0YV09XCJnZXRQcm0uZGF0YT8uW2dyaWQuc3ViRGF0YUtleSFdIHx8IFtdXCJcblx0XHRcdFx0XHRcdFx0W3Vwc2VydF09XCJ1cHNlcnRQcm1cIlxuXHRcdFx0XHRcdFx0XHQoZGVsZXRlRW1pdCk9XCJkZWxSb3dzKCRldmVudClcIlxuXHRcdFx0XHRcdFx0XHRbYWRkVHlwZV09XCJncmlkLnN1YlRhYmxlU291cmNlXCJcblx0XHRcdFx0XHRcdFx0KGFkZEVtaXQpPVwiZGF0YVNvdXJjZVNob3coKVwiXG5cdFx0XHRcdFx0XHRcdFtncmlkT3B0aW9uc109XCJncmlkLmdyaWRPcHRpb25zXCJcblx0XHRcdFx0XHRcdFx0W2dyaWREaXNhYmxlXT1cImdyaWREaXNhYmxlXCJcblx0XHRcdFx0XHRcdFx0W2F1dGhMZXZlbF09XCJhdXRoTGV2ZWwoKVwiXG5cdFx0XHRcdFx0XHRcdFtzaG93RGVsZXRlXT1cImdyaWQuc2hvd0RlbGV0ZVwiXG5cdFx0XHRcdFx0XHRcdFtzZWxlY3REYXRhXT1cImdyaWQuc2VsZWN0RGF0YVwiPlxuXHRcdFx0XHRcdFx0PC9jdXN0b20tZ3JpZD5cblx0XHRcdFx0XHR9IEBlbHNlIHtcblx0XHRcdFx0XHRcdDwhLS0gQGlmKGluZGV4VmFsdWUgPT0gaSl7XG5cdFx0XHRcdFx0XHRcdDxmb3JtIFtmb3JtR3JvdXBdPVwiZ3JpZC5mb3JtIVwiPlxuXHRcdFx0XHRcdFx0XHRcdDxjdXN0b20tZm9ybVxuXHRcdFx0XHRcdFx0XHRcdFtvcHRpb25zXT1cImdyaWRcIlxuXHRcdFx0XHRcdFx0XHRcdFt1cHNlcnRdPVwidXBzZXJ0UHJtXCJcblx0XHRcdFx0XHRcdFx0XHQ+XG5cdFx0XHRcdFx0XHRcdDwvY3VzdG9tLWZvcm0+XG5cdFx0XHRcdFx0XHRcdDwvZm9ybT5cblx0XHRcdFx0XHRcdH0gLS0+XG5cdFx0XHRcdFx0XHQ8Y3VzdG9tLWZvcm1cblx0XHRcdFx0XHRcdFx0I3RhYkZvcm1cblx0XHRcdFx0XHRcdFx0W2hpZGRlbl09XCJpbmRleFZhbHVlICE9IGlcIlxuXHRcdFx0XHRcdFx0XHRbb3B0aW9uc109XCJncmlkXCJcblx0XHRcdFx0XHRcdFx0W3Vwc2VydF09XCJ1cHNlcnRQcm1cIlxuXHRcdFx0XHRcdFx0XHRbbW9kZWxdPVwic3ViRm9ybU1vZGVsW2dyaWQuc3ViRGF0YUtleSFdIHx8IHt9XCI+XG5cdFx0XHRcdFx0XHQ8L2N1c3RvbS1mb3JtPlxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0PC9kaXY+XG5cdFx0PC9kaXY+XG5cdFx0QGlmIChtb2RlbExvZygpKSB7XG5cdFx0XHQ8ZGl2IGNsYXNzPVwidy1mdWxsIG1kOnctWzQwMHB4XSBtZDpoLWZ1bGwgb3ZlcmZsb3cteS1hdXRvXCI+XG5cdFx0XHRcdDxjdXN0b20tbG9nIFtsb2dzXT1cImdldFBybS5kYXRhPy5sb2cgPz8gW11cIj48L2N1c3RvbS1sb2c+XG5cdFx0XHQ8L2Rpdj5cblx0XHR9XG5cdDwvZGl2PlxuPC9kaXY+XG48cm93LXNlbGVjdG9yXG5cdFsodmlzaWJsZSldPVwidmlzaWJsZVwiXG5cdFtzZWFyY2hQcm1dPVwiZGlhbG9nU2VhcmNoUHJtXCJcblx0W2dyaWRPcHRpb25zXT1cInNlbGVjdE9wdGlvbnNcIlxuXHRbc2VsZWN0aW9uS2V5c109XCJzZWxlY3Rpb25LZXlzXCJcblx0KG9uT2spPVwib25PaygkZXZlbnQpXCI+XG48L3Jvdy1zZWxlY3Rvcj5cbiJdfQ==
@@ -61,15 +61,15 @@ export class RowSelectorComponent {
61
61
  }
62
62
  }
63
63
  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 }); }
64
- 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 } }, outputs: { onOk: "onOk", visible: "visibleChange" }, viewQueries: [{ propertyName: "grid", first: true, predicate: GridComponent, descendants: true }], ngImport: i0, template: "<p-dialog\r\n\t[header]=\"title()\"\r\n\t[modal]=\"true\"\r\n\t[style]=\"{ width: '50vw' }\"\r\n\t(onHide)=\"cancel()\"\r\n\t[maximizable]=\"true\"\r\n\t[appendTo]=\"'body'\"\r\n\t[focusOnShow]=\"false\"\r\n\t(onShow)=\"onShow()\"\r\n\t(onHide)=\"onHide()\"\r\n\t(onMaximize)=\"onMaximize($event)\"\r\n\t[(visible)]=\"visible\">\r\n\t@if (innerVisible) {\r\n\t\t<div class=\"flex flex-col gap-2\">\r\n\t\t\t<custom-search [gridOptions]=\"gridOptions()\"></custom-search>\r\n\t\t\t<custom-grid\r\n\t\t\t\t[showAct]=\"false\"\r\n\t\t\t\t[searchPrm]=\"searchPrm()\"\r\n\t\t\t\t[selectionKeys]=\"selectionKeys()\"\r\n\t\t\t\t[gridOptions]=\"gridOptions()\"></custom-grid>\r\n\t\t\t<div class=\"flex justify-end gap-2\">\r\n\t\t\t\t<p-button\r\n\t\t\t\t\tlabel=\"\u53D6\u6D88\"\r\n\t\t\t\t\t[text]=\"true\"\r\n\t\t\t\t\tseverity=\"secondary\"\r\n\t\t\t\t\t(click)=\"cancel()\" />\r\n\t\t\t\t<p-button\r\n\t\t\t\t\tlabel=\"\u786E\u5B9A\"\r\n\t\t\t\t\t[outlined]=\"true\"\r\n\t\t\t\t\t(click)=\"ok()\" />\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t}\r\n</p-dialog>\r\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;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", "gridDisable"], outputs: ["deleteEmit", "addEmit"] }, { kind: "component", type: SearchComponent, selector: "custom-search", inputs: ["searchPrm", "gridOptions"] }] }); }
64
+ 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 } }, outputs: { onOk: "onOk", visible: "visibleChange" }, 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(onHide)=\"cancel()\"\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\t\t\t<custom-search [gridOptions]=\"gridOptions()\"></custom-search>\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;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", "gridDisable"], outputs: ["deleteEmit", "addEmit"] }, { kind: "component", type: SearchComponent, selector: "custom-search", inputs: ["searchPrm", "gridOptions"] }] }); }
65
65
  }
66
66
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RowSelectorComponent, decorators: [{
67
67
  type: Component,
68
- args: [{ selector: 'row-selector', standalone: true, imports: [ButtonModule, DialogModule, GridComponent, SearchComponent], template: "<p-dialog\r\n\t[header]=\"title()\"\r\n\t[modal]=\"true\"\r\n\t[style]=\"{ width: '50vw' }\"\r\n\t(onHide)=\"cancel()\"\r\n\t[maximizable]=\"true\"\r\n\t[appendTo]=\"'body'\"\r\n\t[focusOnShow]=\"false\"\r\n\t(onShow)=\"onShow()\"\r\n\t(onHide)=\"onHide()\"\r\n\t(onMaximize)=\"onMaximize($event)\"\r\n\t[(visible)]=\"visible\">\r\n\t@if (innerVisible) {\r\n\t\t<div class=\"flex flex-col gap-2\">\r\n\t\t\t<custom-search [gridOptions]=\"gridOptions()\"></custom-search>\r\n\t\t\t<custom-grid\r\n\t\t\t\t[showAct]=\"false\"\r\n\t\t\t\t[searchPrm]=\"searchPrm()\"\r\n\t\t\t\t[selectionKeys]=\"selectionKeys()\"\r\n\t\t\t\t[gridOptions]=\"gridOptions()\"></custom-grid>\r\n\t\t\t<div class=\"flex justify-end gap-2\">\r\n\t\t\t\t<p-button\r\n\t\t\t\t\tlabel=\"\u53D6\u6D88\"\r\n\t\t\t\t\t[text]=\"true\"\r\n\t\t\t\t\tseverity=\"secondary\"\r\n\t\t\t\t\t(click)=\"cancel()\" />\r\n\t\t\t\t<p-button\r\n\t\t\t\t\tlabel=\"\u786E\u5B9A\"\r\n\t\t\t\t\t[outlined]=\"true\"\r\n\t\t\t\t\t(click)=\"ok()\" />\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t}\r\n</p-dialog>\r\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;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"] }]
68
+ args: [{ selector: 'row-selector', standalone: true, imports: [ButtonModule, DialogModule, GridComponent, SearchComponent], template: "<p-dialog\n\t[header]=\"title()\"\n\t[modal]=\"true\"\n\t[style]=\"{ width: '50vw' }\"\n\t(onHide)=\"cancel()\"\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\t\t\t<custom-search [gridOptions]=\"gridOptions()\"></custom-search>\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;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"] }]
69
69
  }], ctorParameters: () => [{ type: i1.ActionService }], propDecorators: { onOk: [{
70
70
  type: Output
71
71
  }], grid: [{
72
72
  type: ViewChild,
73
73
  args: [GridComponent]
74
74
  }] } });
75
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm93LXNlbGVjdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2ltbS1lbGVtZW50LXVpL3NyYy9saWIvcm93LXNlbGVjdG9yL3Jvdy1zZWxlY3Rvci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pbW0tZWxlbWVudC11aS9zcmMvbGliL3Jvdy1zZWxlY3Rvci9yb3ctc2VsZWN0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ2pHLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFOUMsT0FBTyxFQUFFLGFBQWEsRUFBZSxNQUFNLDZCQUE2QixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQzs7Ozs7QUFVcEUsTUFBTSxPQUFPLG9CQUFvQjtJQVVoQyxZQUFvQixNQUFxQjtRQUFyQixXQUFNLEdBQU4sTUFBTSxDQUFlO1FBVC9CLFNBQUksR0FBRyxJQUFJLFlBQVksRUFBUyxDQUFDO1FBRTNDLFVBQUssR0FBRyxLQUFLLENBQVMsSUFBSSxDQUFDLENBQUM7UUFDNUIsa0JBQWEsR0FBRyxLQUFLLENBQVEsRUFBRSxDQUFDLENBQUM7UUFDakMsZ0JBQVcsR0FBRyxLQUFLLENBQWMsRUFBRSxDQUFDLENBQUM7UUFDckMsY0FBUyxHQUFHLEtBQUssQ0FBUyxFQUFFLENBQUMsQ0FBQztRQUM5QixZQUFPLEdBQUcsS0FBSyxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBQ2hDLGlCQUFZLEdBQVksS0FBSyxDQUFDO0lBRWMsQ0FBQztJQUU3QyxHQUFHO1FBQ0YsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLEdBQUcsQ0FBQztJQUNoQyxDQUFDO0lBRUQsTUFBTTtRQUNMLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3pCLENBQUM7SUFFRCxFQUFFO1FBQ0QsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ2xELE1BQU0sTUFBTSxHQUFRLEVBQUUsQ0FBQztZQUN2QixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsVUFBVSxFQUFFLE9BQU8sQ0FBQyxDQUFDLEdBQVEsRUFBRSxFQUFFO2dCQUNuRCxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDckMsQ0FBQyxDQUFDLENBQUM7WUFDSCxPQUFPLE1BQU0sQ0FBQztRQUNmLENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDdkIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDekIsQ0FBQztJQUVELGVBQWU7UUFDZCxNQUFNLE1BQU0sR0FBVSxFQUFFLENBQUM7UUFDekIsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLFdBQVcsQ0FBQyxDQUFDLElBQVMsRUFBRSxFQUFFO1lBQ3BDLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUNwRCxDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8sTUFBTSxDQUFDO0lBQ2YsQ0FBQztJQUVELE1BQU07UUFDTCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztRQUN6QixJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRUQsTUFBTTtRQUNMLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO1FBQzFCLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZixJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMvQixDQUFDLENBQUMsQ0FBQztJQUNKLENBQUM7SUFFRCxVQUFVLENBQUMsS0FBVTtRQUNwQixJQUFJLEtBQUssQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNyQixJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBQ2xELENBQUM7YUFBTSxDQUFDO1lBQ1AsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUM3QixDQUFDO0lBQ0YsQ0FBQzsrR0ExRFcsb0JBQW9CO21HQUFwQixvQkFBb0IsbTBCQUVyQixhQUFhLGdEQ2pCekIsK2hDQWtDQSxnckxEdkJXLFlBQVksaWJBQUUsWUFBWSxvNkJBQUUsYUFBYSxnUUFBRSxlQUFlOzs0RkFJeEQsb0JBQW9CO2tCQVBoQyxTQUFTOytCQUNDLGNBQWMsY0FDWixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsWUFBWSxFQUFFLGFBQWEsRUFBRSxlQUFlLENBQUM7a0ZBSzNELElBQUk7c0JBQWIsTUFBTTtnQkFDbUIsSUFBSTtzQkFBN0IsU0FBUzt1QkFBQyxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBWaWV3Q2hpbGQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBpbnB1dCwgbW9kZWwsIGVmZmVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBCdXR0b25Nb2R1bGUgfSBmcm9tICdwcmltZW5nL2J1dHRvbic7XHJcbmltcG9ydCB7IERpYWxvZ01vZHVsZSB9IGZyb20gJ3ByaW1lbmcvZGlhbG9nJztcclxuaW1wb3J0IHsgU2VhcmNoIH0gZnJvbSAnLi4vYW0vYW0uY29tcG9uZW50JztcclxuaW1wb3J0IHsgR3JpZENvbXBvbmVudCwgR3JpZE9wdGlvbnMgfSBmcm9tICcuLi9ncmlkL2dyaWQvZ3JpZC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBTZWFyY2hDb21wb25lbnQgfSBmcm9tICcuLi9zZWFyY2gvc2VhcmNoL3NlYXJjaC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBBY3Rpb25TZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZS9hY3Rpb24uc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuXHRzZWxlY3RvcjogJ3Jvdy1zZWxlY3RvcicsXHJcblx0c3RhbmRhbG9uZTogdHJ1ZSxcclxuXHRpbXBvcnRzOiBbQnV0dG9uTW9kdWxlLCBEaWFsb2dNb2R1bGUsIEdyaWRDb21wb25lbnQsIFNlYXJjaENvbXBvbmVudF0sXHJcblx0dGVtcGxhdGVVcmw6ICcuL3Jvdy1zZWxlY3Rvci5jb21wb25lbnQuaHRtbCcsXHJcblx0c3R5bGVVcmw6ICcuL3Jvdy1zZWxlY3Rvci5jb21wb25lbnQuc2NzcycsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBSb3dTZWxlY3RvckNvbXBvbmVudCB7XHJcblx0QE91dHB1dCgpIG9uT2sgPSBuZXcgRXZlbnRFbWl0dGVyPGFueVtdPigpO1xyXG5cdEBWaWV3Q2hpbGQoR3JpZENvbXBvbmVudCkgZ3JpZCE6IEdyaWRDb21wb25lbnQ7XHJcblx0dGl0bGUgPSBpbnB1dDxzdHJpbmc+KCfpgInmi6knKTtcclxuXHRzZWxlY3Rpb25LZXlzID0gaW5wdXQ8YW55W10+KFtdKTtcclxuXHRncmlkT3B0aW9ucyA9IGlucHV0PEdyaWRPcHRpb25zPih7fSk7XHJcblx0c2VhcmNoUHJtID0gaW5wdXQ8U2VhcmNoPih7fSk7XHJcblx0dmlzaWJsZSA9IG1vZGVsPGJvb2xlYW4+KGZhbHNlKTtcclxuXHRpbm5lclZpc2libGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcblx0Y29uc3RydWN0b3IocHJpdmF0ZSBhY3Rpb246IEFjdGlvblNlcnZpY2UpIHt9XHJcblxyXG5cdGFwaSgpIHtcclxuXHRcdHJldHVybiB0aGlzLmdyaWQuZ2V0R3JpZCgpLmFwaTtcclxuXHR9XHJcblxyXG5cdGNhbmNlbCgpIHtcclxuXHRcdHRoaXMudmlzaWJsZS5zZXQoZmFsc2UpO1xyXG5cdH1cclxuXHJcblx0b2soKSB7XHJcblx0XHRjb25zdCByZXN1bHQgPSB0aGlzLmdldFNlbGVjdGVkRGF0YSgpLm1hcCgoaXRlbSkgPT4ge1xyXG5cdFx0XHRjb25zdCByZXN1bHQ6IGFueSA9IHt9O1xyXG5cdFx0XHR0aGlzLmdyaWRPcHRpb25zKCkuY29sdW1uRGVmcz8uZm9yRWFjaCgoY29sOiBhbnkpID0+IHtcclxuXHRcdFx0XHRyZXN1bHRbY29sLmZpZWxkXSA9IGl0ZW1bY29sLmZpZWxkXTtcclxuXHRcdFx0fSk7XHJcblx0XHRcdHJldHVybiByZXN1bHQ7XHJcblx0XHR9KTtcclxuXHRcdHRoaXMub25Pay5lbWl0KHJlc3VsdCk7XHJcblx0XHR0aGlzLnZpc2libGUuc2V0KGZhbHNlKTtcclxuXHR9XHJcblxyXG5cdGdldFNlbGVjdGVkRGF0YSgpOiBhbnlbXSB7XHJcblx0XHRjb25zdCByZXN1bHQ6IGFueVtdID0gW107XHJcblx0XHR0aGlzLmFwaSgpLmZvckVhY2hOb2RlKChub2RlOiBhbnkpID0+IHtcclxuXHRcdFx0bm9kZS5pc1NlbGVjdGVkKCkgJiYgcmVzdWx0LnB1c2goeyAuLi5ub2RlLmRhdGEgfSk7XHJcblx0XHR9KTtcclxuXHRcdHJldHVybiByZXN1bHQ7XHJcblx0fVxyXG5cclxuXHRvblNob3coKSB7XHJcblx0XHR0aGlzLmlubmVyVmlzaWJsZSA9IHRydWU7XHJcblx0XHR0aGlzLmFjdGlvbi5zZXRQb3BNb2RlKHRydWUpO1xyXG5cdH1cclxuXHJcblx0b25IaWRlKCkge1xyXG5cdFx0dGhpcy5pbm5lclZpc2libGUgPSBmYWxzZTtcclxuXHRcdHNldFRpbWVvdXQoKCkgPT4ge1xyXG5cdFx0XHR0aGlzLmFjdGlvbi5zZXRQb3BNb2RlKGZhbHNlKTtcclxuXHRcdH0pO1xyXG5cdH1cclxuXHJcblx0b25NYXhpbWl6ZShldmVudDogYW55KSB7XHJcblx0XHRpZiAoZXZlbnQubWF4aW1pemVkKSB7XHJcblx0XHRcdHRoaXMuZ3JpZC5zZXRTY3JvbGxIZWlnaHQoJ2NhbGMoMTAwdmggLSAxNTBweCknKTtcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdHRoaXMuZ3JpZC5zZXRTY3JvbGxIZWlnaHQoKTtcclxuXHRcdH1cclxuXHR9XHJcbn1cclxuIiwiPHAtZGlhbG9nXHJcblx0W2hlYWRlcl09XCJ0aXRsZSgpXCJcclxuXHRbbW9kYWxdPVwidHJ1ZVwiXHJcblx0W3N0eWxlXT1cInsgd2lkdGg6ICc1MHZ3JyB9XCJcclxuXHQob25IaWRlKT1cImNhbmNlbCgpXCJcclxuXHRbbWF4aW1pemFibGVdPVwidHJ1ZVwiXHJcblx0W2FwcGVuZFRvXT1cIidib2R5J1wiXHJcblx0W2ZvY3VzT25TaG93XT1cImZhbHNlXCJcclxuXHQob25TaG93KT1cIm9uU2hvdygpXCJcclxuXHQob25IaWRlKT1cIm9uSGlkZSgpXCJcclxuXHQob25NYXhpbWl6ZSk9XCJvbk1heGltaXplKCRldmVudClcIlxyXG5cdFsodmlzaWJsZSldPVwidmlzaWJsZVwiPlxyXG5cdEBpZiAoaW5uZXJWaXNpYmxlKSB7XHJcblx0XHQ8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBnYXAtMlwiPlxyXG5cdFx0XHQ8Y3VzdG9tLXNlYXJjaCBbZ3JpZE9wdGlvbnNdPVwiZ3JpZE9wdGlvbnMoKVwiPjwvY3VzdG9tLXNlYXJjaD5cclxuXHRcdFx0PGN1c3RvbS1ncmlkXHJcblx0XHRcdFx0W3Nob3dBY3RdPVwiZmFsc2VcIlxyXG5cdFx0XHRcdFtzZWFyY2hQcm1dPVwic2VhcmNoUHJtKClcIlxyXG5cdFx0XHRcdFtzZWxlY3Rpb25LZXlzXT1cInNlbGVjdGlvbktleXMoKVwiXHJcblx0XHRcdFx0W2dyaWRPcHRpb25zXT1cImdyaWRPcHRpb25zKClcIj48L2N1c3RvbS1ncmlkPlxyXG5cdFx0XHQ8ZGl2IGNsYXNzPVwiZmxleCBqdXN0aWZ5LWVuZCBnYXAtMlwiPlxyXG5cdFx0XHRcdDxwLWJ1dHRvblxyXG5cdFx0XHRcdFx0bGFiZWw9XCLlj5bmtohcIlxyXG5cdFx0XHRcdFx0W3RleHRdPVwidHJ1ZVwiXHJcblx0XHRcdFx0XHRzZXZlcml0eT1cInNlY29uZGFyeVwiXHJcblx0XHRcdFx0XHQoY2xpY2spPVwiY2FuY2VsKClcIiAvPlxyXG5cdFx0XHRcdDxwLWJ1dHRvblxyXG5cdFx0XHRcdFx0bGFiZWw9XCLnoa7lrppcIlxyXG5cdFx0XHRcdFx0W291dGxpbmVkXT1cInRydWVcIlxyXG5cdFx0XHRcdFx0KGNsaWNrKT1cIm9rKClcIiAvPlxyXG5cdFx0XHQ8L2Rpdj5cclxuXHRcdDwvZGl2PlxyXG5cdH1cclxuPC9wLWRpYWxvZz5cclxuIl19
75
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm93LXNlbGVjdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2ltbS1lbGVtZW50LXVpL3NyYy9saWIvcm93LXNlbGVjdG9yL3Jvdy1zZWxlY3Rvci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pbW0tZWxlbWVudC11aS9zcmMvbGliL3Jvdy1zZWxlY3Rvci9yb3ctc2VsZWN0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ2pHLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFOUMsT0FBTyxFQUFFLGFBQWEsRUFBZSxNQUFNLDZCQUE2QixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQzs7Ozs7QUFVcEUsTUFBTSxPQUFPLG9CQUFvQjtJQVVoQyxZQUFvQixNQUFxQjtRQUFyQixXQUFNLEdBQU4sTUFBTSxDQUFlO1FBVC9CLFNBQUksR0FBRyxJQUFJLFlBQVksRUFBUyxDQUFDO1FBRTNDLFVBQUssR0FBRyxLQUFLLENBQVMsSUFBSSxDQUFDLENBQUM7UUFDNUIsa0JBQWEsR0FBRyxLQUFLLENBQVEsRUFBRSxDQUFDLENBQUM7UUFDakMsZ0JBQVcsR0FBRyxLQUFLLENBQWMsRUFBRSxDQUFDLENBQUM7UUFDckMsY0FBUyxHQUFHLEtBQUssQ0FBUyxFQUFFLENBQUMsQ0FBQztRQUM5QixZQUFPLEdBQUcsS0FBSyxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBQ2hDLGlCQUFZLEdBQVksS0FBSyxDQUFDO0lBRWMsQ0FBQztJQUU3QyxHQUFHO1FBQ0YsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLEdBQUcsQ0FBQztJQUNoQyxDQUFDO0lBRUQsTUFBTTtRQUNMLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3pCLENBQUM7SUFFRCxFQUFFO1FBQ0QsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ2xELE1BQU0sTUFBTSxHQUFRLEVBQUUsQ0FBQztZQUN2QixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsVUFBVSxFQUFFLE9BQU8sQ0FBQyxDQUFDLEdBQVEsRUFBRSxFQUFFO2dCQUNuRCxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDckMsQ0FBQyxDQUFDLENBQUM7WUFDSCxPQUFPLE1BQU0sQ0FBQztRQUNmLENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDdkIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDekIsQ0FBQztJQUVELGVBQWU7UUFDZCxNQUFNLE1BQU0sR0FBVSxFQUFFLENBQUM7UUFDekIsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLFdBQVcsQ0FBQyxDQUFDLElBQVMsRUFBRSxFQUFFO1lBQ3BDLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUNwRCxDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8sTUFBTSxDQUFDO0lBQ2YsQ0FBQztJQUVELE1BQU07UUFDTCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztRQUN6QixJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRUQsTUFBTTtRQUNMLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO1FBQzFCLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZixJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMvQixDQUFDLENBQUMsQ0FBQztJQUNKLENBQUM7SUFFRCxVQUFVLENBQUMsS0FBVTtRQUNwQixJQUFJLEtBQUssQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNyQixJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBQ2xELENBQUM7YUFBTSxDQUFDO1lBQ1AsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUM3QixDQUFDO0lBQ0YsQ0FBQzsrR0ExRFcsb0JBQW9CO21HQUFwQixvQkFBb0IsbTBCQUVyQixhQUFhLGdEQ2pCekIsMjlCQWtDQSxnckxEdkJXLFlBQVksaWJBQUUsWUFBWSxvNkJBQUUsYUFBYSxnUUFBRSxlQUFlOzs0RkFJeEQsb0JBQW9CO2tCQVBoQyxTQUFTOytCQUNDLGNBQWMsY0FDWixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsWUFBWSxFQUFFLGFBQWEsRUFBRSxlQUFlLENBQUM7a0ZBSzNELElBQUk7c0JBQWIsTUFBTTtnQkFDbUIsSUFBSTtzQkFBN0IsU0FBUzt1QkFBQyxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBWaWV3Q2hpbGQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBpbnB1dCwgbW9kZWwsIGVmZmVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQnV0dG9uTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9idXR0b24nO1xuaW1wb3J0IHsgRGlhbG9nTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9kaWFsb2cnO1xuaW1wb3J0IHsgU2VhcmNoIH0gZnJvbSAnLi4vYW0vYW0uY29tcG9uZW50JztcbmltcG9ydCB7IEdyaWRDb21wb25lbnQsIEdyaWRPcHRpb25zIH0gZnJvbSAnLi4vZ3JpZC9ncmlkL2dyaWQuY29tcG9uZW50JztcbmltcG9ydCB7IFNlYXJjaENvbXBvbmVudCB9IGZyb20gJy4uL3NlYXJjaC9zZWFyY2gvc2VhcmNoLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBY3Rpb25TZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZS9hY3Rpb24uc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ3Jvdy1zZWxlY3RvcicsXG5cdHN0YW5kYWxvbmU6IHRydWUsXG5cdGltcG9ydHM6IFtCdXR0b25Nb2R1bGUsIERpYWxvZ01vZHVsZSwgR3JpZENvbXBvbmVudCwgU2VhcmNoQ29tcG9uZW50XSxcblx0dGVtcGxhdGVVcmw6ICcuL3Jvdy1zZWxlY3Rvci5jb21wb25lbnQuaHRtbCcsXG5cdHN0eWxlVXJsOiAnLi9yb3ctc2VsZWN0b3IuY29tcG9uZW50LnNjc3MnLFxufSlcbmV4cG9ydCBjbGFzcyBSb3dTZWxlY3RvckNvbXBvbmVudCB7XG5cdEBPdXRwdXQoKSBvbk9rID0gbmV3IEV2ZW50RW1pdHRlcjxhbnlbXT4oKTtcblx0QFZpZXdDaGlsZChHcmlkQ29tcG9uZW50KSBncmlkITogR3JpZENvbXBvbmVudDtcblx0dGl0bGUgPSBpbnB1dDxzdHJpbmc+KCfpgInmi6knKTtcblx0c2VsZWN0aW9uS2V5cyA9IGlucHV0PGFueVtdPihbXSk7XG5cdGdyaWRPcHRpb25zID0gaW5wdXQ8R3JpZE9wdGlvbnM+KHt9KTtcblx0c2VhcmNoUHJtID0gaW5wdXQ8U2VhcmNoPih7fSk7XG5cdHZpc2libGUgPSBtb2RlbDxib29sZWFuPihmYWxzZSk7XG5cdGlubmVyVmlzaWJsZTogYm9vbGVhbiA9IGZhbHNlO1xuXG5cdGNvbnN0cnVjdG9yKHByaXZhdGUgYWN0aW9uOiBBY3Rpb25TZXJ2aWNlKSB7fVxuXG5cdGFwaSgpIHtcblx0XHRyZXR1cm4gdGhpcy5ncmlkLmdldEdyaWQoKS5hcGk7XG5cdH1cblxuXHRjYW5jZWwoKSB7XG5cdFx0dGhpcy52aXNpYmxlLnNldChmYWxzZSk7XG5cdH1cblxuXHRvaygpIHtcblx0XHRjb25zdCByZXN1bHQgPSB0aGlzLmdldFNlbGVjdGVkRGF0YSgpLm1hcCgoaXRlbSkgPT4ge1xuXHRcdFx0Y29uc3QgcmVzdWx0OiBhbnkgPSB7fTtcblx0XHRcdHRoaXMuZ3JpZE9wdGlvbnMoKS5jb2x1bW5EZWZzPy5mb3JFYWNoKChjb2w6IGFueSkgPT4ge1xuXHRcdFx0XHRyZXN1bHRbY29sLmZpZWxkXSA9IGl0ZW1bY29sLmZpZWxkXTtcblx0XHRcdH0pO1xuXHRcdFx0cmV0dXJuIHJlc3VsdDtcblx0XHR9KTtcblx0XHR0aGlzLm9uT2suZW1pdChyZXN1bHQpO1xuXHRcdHRoaXMudmlzaWJsZS5zZXQoZmFsc2UpO1xuXHR9XG5cblx0Z2V0U2VsZWN0ZWREYXRhKCk6IGFueVtdIHtcblx0XHRjb25zdCByZXN1bHQ6IGFueVtdID0gW107XG5cdFx0dGhpcy5hcGkoKS5mb3JFYWNoTm9kZSgobm9kZTogYW55KSA9PiB7XG5cdFx0XHRub2RlLmlzU2VsZWN0ZWQoKSAmJiByZXN1bHQucHVzaCh7IC4uLm5vZGUuZGF0YSB9KTtcblx0XHR9KTtcblx0XHRyZXR1cm4gcmVzdWx0O1xuXHR9XG5cblx0b25TaG93KCkge1xuXHRcdHRoaXMuaW5uZXJWaXNpYmxlID0gdHJ1ZTtcblx0XHR0aGlzLmFjdGlvbi5zZXRQb3BNb2RlKHRydWUpO1xuXHR9XG5cblx0b25IaWRlKCkge1xuXHRcdHRoaXMuaW5uZXJWaXNpYmxlID0gZmFsc2U7XG5cdFx0c2V0VGltZW91dCgoKSA9PiB7XG5cdFx0XHR0aGlzLmFjdGlvbi5zZXRQb3BNb2RlKGZhbHNlKTtcblx0XHR9KTtcblx0fVxuXG5cdG9uTWF4aW1pemUoZXZlbnQ6IGFueSkge1xuXHRcdGlmIChldmVudC5tYXhpbWl6ZWQpIHtcblx0XHRcdHRoaXMuZ3JpZC5zZXRTY3JvbGxIZWlnaHQoJ2NhbGMoMTAwdmggLSAxNTBweCknKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0dGhpcy5ncmlkLnNldFNjcm9sbEhlaWdodCgpO1xuXHRcdH1cblx0fVxufVxuIiwiPHAtZGlhbG9nXG5cdFtoZWFkZXJdPVwidGl0bGUoKVwiXG5cdFttb2RhbF09XCJ0cnVlXCJcblx0W3N0eWxlXT1cInsgd2lkdGg6ICc1MHZ3JyB9XCJcblx0KG9uSGlkZSk9XCJjYW5jZWwoKVwiXG5cdFttYXhpbWl6YWJsZV09XCJ0cnVlXCJcblx0W2FwcGVuZFRvXT1cIidib2R5J1wiXG5cdFtmb2N1c09uU2hvd109XCJmYWxzZVwiXG5cdChvblNob3cpPVwib25TaG93KClcIlxuXHQob25IaWRlKT1cIm9uSGlkZSgpXCJcblx0KG9uTWF4aW1pemUpPVwib25NYXhpbWl6ZSgkZXZlbnQpXCJcblx0Wyh2aXNpYmxlKV09XCJ2aXNpYmxlXCI+XG5cdEBpZiAoaW5uZXJWaXNpYmxlKSB7XG5cdFx0PGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgZ2FwLTJcIj5cblx0XHRcdDxjdXN0b20tc2VhcmNoIFtncmlkT3B0aW9uc109XCJncmlkT3B0aW9ucygpXCI+PC9jdXN0b20tc2VhcmNoPlxuXHRcdFx0PGN1c3RvbS1ncmlkXG5cdFx0XHRcdFtzaG93QWN0XT1cImZhbHNlXCJcblx0XHRcdFx0W3NlYXJjaFBybV09XCJzZWFyY2hQcm0oKVwiXG5cdFx0XHRcdFtzZWxlY3Rpb25LZXlzXT1cInNlbGVjdGlvbktleXMoKVwiXG5cdFx0XHRcdFtncmlkT3B0aW9uc109XCJncmlkT3B0aW9ucygpXCI+PC9jdXN0b20tZ3JpZD5cblx0XHRcdDxkaXYgY2xhc3M9XCJmbGV4IGp1c3RpZnktZW5kIGdhcC0yXCI+XG5cdFx0XHRcdDxwLWJ1dHRvblxuXHRcdFx0XHRcdGxhYmVsPVwi5Y+W5raIXCJcblx0XHRcdFx0XHRbdGV4dF09XCJ0cnVlXCJcblx0XHRcdFx0XHRzZXZlcml0eT1cInNlY29uZGFyeVwiXG5cdFx0XHRcdFx0KGNsaWNrKT1cImNhbmNlbCgpXCIgLz5cblx0XHRcdFx0PHAtYnV0dG9uXG5cdFx0XHRcdFx0bGFiZWw9XCLnoa7lrppcIlxuXHRcdFx0XHRcdFtvdXRsaW5lZF09XCJ0cnVlXCJcblx0XHRcdFx0XHQoY2xpY2spPVwib2soKVwiIC8+XG5cdFx0XHQ8L2Rpdj5cblx0XHQ8L2Rpdj5cblx0fVxuPC9wLWRpYWxvZz5cbiJdfQ==
@@ -107,4 +107,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
107
107
  type: Injectable,
108
108
  args: [{ providedIn: 'root' }]
109
109
  }], ctorParameters: () => [{ type: i1.Router }, { type: i1.ActivatedRoute }] });
110
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlckhpc3Rvcnkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2ltbS1lbGVtZW50LXVpL3NyYy9saWIvc2VydmljZS91c2VySGlzdG9yeS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUMxRCxPQUFPLEVBQTBDLGFBQWEsRUFBVSxNQUFNLGlCQUFpQixDQUFDO0FBQ2hHLE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFVLE1BQU0sTUFBTSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7O0FBVzdDLE1BQU0sT0FBTyxrQkFBa0I7SUFZN0IsWUFBbUIsTUFBYyxFQUFRLEtBQXFCO1FBQTNDLFdBQU0sR0FBTixNQUFNLENBQVE7UUFBUSxVQUFLLEdBQUwsS0FBSyxDQUFnQjtRQVg5RCxnQkFBVyxHQUFHLE1BQU0sQ0FBZ0IsRUFBRSxDQUFDLENBQUE7UUFDdkMsWUFBTyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTTthQUN6QixJQUFJLENBQ0gsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxZQUFZLGFBQWEsQ0FBQyxFQUMvQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNaLGlDQUFpQztZQUNqQyxPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUE7UUFDdEUsQ0FBQyxDQUFDLENBQ0gsQ0FBQTtRQUNILGVBQVUsR0FBRyxFQUFFLENBQUE7UUFDZixTQUFJLEdBQUUsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFBO1FBR3ZCLHNEQUFzRDtRQUN0RCxxRkFBcUY7UUFDckYsS0FBSztRQUNMLHlD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QUFFLENBQUE7UUFDdkIsSUFBRyxJQUFJLEVBQUUsQ0FBQztZQUNSLFVBQVUsR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxJQUFJLENBQUMsQ0FBQTtRQUM3RCxDQUFDO1FBQ0QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUE7SUFDbEMsQ0FBQztJQUVELG1CQUFtQjtJQUNuQixZQUFZLENBQUMsS0FBWTtRQUN2QixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsR0FBRyxFQUFpQixDQUFBO1FBQ3BELElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLEVBQUMsRUFBQyxHQUFHLElBQUksRUFBQyxLQUFLLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtRQUNoRSxPQUFPLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQTtRQUM1QyxpRUFBaUU7SUFFbkUsQ0FBQzsrR0F0R1Usa0JBQWtCO21IQUFsQixrQkFBa0IsY0FEUCxNQUFNOzs0RkFDakIsa0JBQWtCO2tCQUQ5QixVQUFVO21CQUFDLEVBQUMsVUFBVSxFQUFDLE1BQU0sRUFBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIE5hdmlnYXRpb25FbmQsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IGZpbHRlciwgbWFwLCBjb25maWcgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgSTE4blNlcnZpY2UgfSBmcm9tICcuL2kxOG4uc2VydmljZSc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEhpc3RvcnlJdGVtIHtcclxuICAvLyB0eXBlOiAncm91dGVyTGluaycgfCAnY3JlYXRlJyxcclxuICB0aXRsZTogc3RyaW5nLFxyXG4gIHVybDogc3RyaW5nLFxyXG4gIGNvbmZpZ1BhdGg6IHN0cmluZyxcclxuICBpMThuS2V5OnN0cmluZ1xyXG59XHJcblxyXG5ASW5qZWN0YWJsZSh7cHJvdmlkZWRJbjoncm9vdCd9KVxyXG5leHBvcnQgY2xhc3MgVXNlckhpc3RvcnlTZXJ2aWNlIHtcclxuICBoaXN0b3J5TGlzdCA9IHNpZ25hbDxIaXN0b3J5SXRlbVtdPihbXSlcclxuICByb3V0ZXIkID0gdGhpcy5yb3V0ZXIuZXZlbnRzXHJcbiAgICAucGlwZShcclxuICAgICAgZmlsdGVyKGV2ZW50ID0+IGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvbkVuZCksXHJcbiAgICAgIG1hcCgoZXZlbnQpID0+e1xyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKCdldmVudC0tLS0nLGV2ZW50KVxyXG4gICAgICAgIHJldHVybiB0aGlzLmNyZWF0ZUJyZWFkY3J1bWJzKHRoaXMucm91dGVyLnJvdXRlclN0YXRlLnNuYXBzaG90LnJvb3QpXHJcbiAgICAgIH0pXHJcbiAgICApXHJcbiAgZGV0YWlsTmFtZSA9ICcnXHJcbiAgaTE4biA9aW5qZWN0KEkxOG5TZXJ2aWNlKVxyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyByb3V0ZXI6IFJvdXRlcixwdWJsaWMgcm91dGU6IEFjdGl2YXRlZFJvdXRlKXtcclxuXHJcbiAgICAvLyB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignYmVmb3JldW5sb2FkJywoZXZlbnQpID0+IHtcclxuICAgIC8vICAgd2luZG93LnNlc3Npb25TdG9yYWdlLnNldEl0ZW0oJ2NydW1iQWN0aW9uJywgSlNPTi5zdHJpbmdpZnkodGhpcy5oaXN0b3J5TGlzdCgpKSlcclxuICAgIC8vIH0pXHJcbiAgICAvLyB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsKCkgPT4ge1xyXG4gICAgLy8gICBsZXQgaGlzdG9yeSA9IHdpbmRvdy5zZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCdjcnVtYkFjdGlvbicpXHJcbiAgICAvLyAgIGNvbnNvbGUubG9nKCdjcnVtYkFjdGlvbi1sb2NhbHN0b3J5JyxoaXN0b3J5KVxyXG4gICAgLy8gICBpZihoaXN0b3J5KXtcclxuICAgIC8vICAgICB0aGlzLmhpc3RvcnlMaXN0LnNldChKU09OLnBhcnNlKGhpc3RvcnkpKVxyXG4gICAgLy8gICB9XHJcbiAgICAvLyB9KVxyXG4gIH1cclxuXHJcblxyXG5cclxuICBcclxuICBwcml2YXRlIGNyZWF0ZUJyZWFkY3J1bWJzKHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCB1cmw6IHN0cmluZyA9ICcnLCBicmVhZGNydW1iczogYW55W10gPSBbXSk6YW55IHtcclxuICAgIGNvbnN0IGNoaWxkcmVuOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90W10gPSByb3V0ZS5jaGlsZHJlbjtcclxuICAgIGlmKGNoaWxkcmVuLmxlbmd0aCA9PSAwKSByZXR1cm4gXHJcbiAgICBjb25zdCBjaGlsZCA9IGNoaWxkcmVuWzBdO1xyXG4gICAgY29uc3Qgcm91dGVVUkw6IHN0cmluZyA9IGNoaWxkLnVybC5tYXAoc2VnbWVudCA9PiBzZWdtZW50LnBhdGgpLmpvaW4oJy8nKTtcclxuICAgIGNvbnN0IHF1ZXJ5S2V5cyA9IE9iamVjdC5rZXlzKGNoaWxkLnF1ZXJ5UGFyYW1zKSAgfHwgW11cclxuICAgIGlmIChyb3V0ZVVSTCAhPT0gJycpIHtcclxuICAgICAgdXJsICs9IGAvJHtyb3V0ZVVSTH1gO1xyXG4gICAgfVxyXG4gICAgaWYocXVlcnlLZXlzLmxlbmd0aCA+IDApe1xyXG4gICAgICB1cmwrPSc/J1xyXG4gICAgICBxdWVyeUtleXMuZm9yRWFjaCh2ID0+IHtcclxuICAgICAgICB1cmwrPWAke3Z9PSR7Y2hpbGQucXVlcnlQYXJhbXNbdl19YFxyXG4gICAgICB9KVxyXG4gICAgfVxyXG4gICAgbGV0IHRpdGxlOiBzdHJpbmcgPSAnJztcclxuICAgIGlmIChjaGlsZC5kYXRhWyd0aXRsZSddKSB7XHJcbiAgICAgIGlmICh0eXBlb2YgY2hpbGQuZGF0YVsndGl0bGUnXSA9PT0gJ2Z1bmN0aW9uJykge1xyXG4gICAgICAgIHRpdGxlID0gY2hpbGQuZGF0YVsndGl0bGUnXShjaGlsZCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGl0bGUgPSBjaGlsZC5kYXRhWyd0aXRsZSddXHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGNvbnN0IGkxOG5LZXkgPSBjaGlsZC5kYXRhWydpMThuS2V5J10gPyBjaGlsZC5kYXRhWydpMThuS2V5J10gOiAnJ1xyXG4gICAgLy8gY29uc3QgY29uZmlnUGF0aDogc3RyaW5nID0gY2hpbGQucm91dGVDb25maWc/LnBhdGggYXMgc3RyaW5nXHJcbiAgICBjb25zdCBjb25maWdQYXRoID0gY2hpbGQucGFyYW1zLmhhc093blByb3BlcnR5KCdpZCcpID8gdXJsLnJlcGxhY2UoLyhbXlxcL10qKSQvLCBcIlwiKSA6IHVybFxyXG4gICAgY29uc3QgcGFyYW1zS2V5cyA9IE9iamVjdC5rZXlzKGNoaWxkLnBhcmFtcylcclxuICAgIGNvbnNvbGUubG9nKCd0aXRsZScsY2hpbGQsY29uZmlnUGF0aCx1cmwpXHJcbiAgICBpZih0aXRsZSAmJiBjb25maWdQYXRoKXtcclxuICAgICAgbGV0IGlzRXhpdCA9IHRoaXMuaGlzdG9yeUxpc3QoKS5maWx0ZXIodiA9PiB2LmNvbmZpZ1BhdGggPT0gY29uZmlnUGF0aCkgXHJcbiAgICAgIC8vIGNvbmZpZ1BhdGguaW5kZXhPZignOicpID4gLTEgJiYgcGFyYW1zS2V5cy5sZW5ndGggPiAwICYmICggdGl0bGUgPSB0aGlzLmRldGFpbE5hbWUpXHJcbiAgICAgIGlmKGlzRXhpdC5sZW5ndGggPT0gMCl7XHJcbiAgICAgICAgdGhpcy5oaXN0b3J5TGlzdC51cGRhdGUoKHZhbHVlKSA9PiBbLi4udmFsdWUse3RpdGxlLHVybCxjb25maWdQYXRoLGkxOG5LZXl9XSlcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmJhY2tVcmwodXJsKVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICAvLyBjb25zb2xlLmxvZygnaGlzdG9yeS0tLS0nLHRoaXMuaGlzdG9yeUxpc3QoKSlcclxuICAgIHJldHVybiB0aGlzLmNyZWF0ZUJyZWFkY3J1bWJzKGNoaWxkLCB1cmwsIGJyZWFkY3J1bWJzKTtcclxuICB9XHJcbiAgYWRkSGlzdG9yeUxpc3QoaXRlbTogSGlzdG9yeUl0ZW0pe1xyXG4gICAgdGhpcy5oaXN0b3J5TGlzdC51cGRhdGUoKHZhbHVlKSA9PiBbLi4udmFsdWUsaXRlbV0pXHJcbiAgfVxyXG5cclxuICBiYWNrVXJsKHVybDpzdHJpbmcpe1xyXG4gICAgbGV0IGluZGV4ID0gdGhpcy5oaXN0b3J5TGlzdCgpLmZpbmRJbmRleCh2ID0+IHYudXJsID09IHVybClcclxuICAgIGxldCBsZW5ndGggPSB0aGlzLmhpc3RvcnlMaXN0KCkubGVuZ3RoXHJcbiAgICBpZihpbmRleCArIDEgIT09IGxlbmd0aCl7XHJcbiAgICAgIGxldCBuZXdIaXN0b3J5ID0gdGhpcy5oaXN0b3J5TGlzdCgpLnNsaWNlKDAsaW5kZXgpXHJcbiAgICAgIHRoaXMuaGlzdG9yeUxpc3Quc2V0KG5ld0hpc3RvcnkpXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBsYXN0UG9wKCl7XHJcbiAgICB0aGlzLmhpc3RvcnlMaXN0KCkucG9wKClcclxuICB9XHJcbiAgLy8g5riF56m6aGlzdG9yeVxyXG4gIGNsZWFyKHBhdGg/OnN0cmluZyl7XHJcbiAgICB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UucmVtb3ZlSXRlbSgnY3J1bWJBY3Rpb24nKVxyXG4gICAgbGV0IG5ld0hpc3RvcnkgOmFueT0gW11cclxuICAgIGlmKHBhdGgpIHtcclxuICAgICAgbmV3SGlzdG9yeSA9IHRoaXMuaGlzdG9yeUxpc3QoKS5maWx0ZXIodiA9PiB2LnVybCA9PT0gcGF0aClcclxuICAgIH1cclxuICAgIHRoaXMuaGlzdG9yeUxpc3Quc2V0KG5ld0hpc3RvcnkpXHJcbiAgfVxyXG5cclxuICAvLyDmiYvliqjop6blj5Hor6bmg4XpobXpnaLojrflj5Z0aXRsZSBcclxuICBzZXRMYXN0VGl0bGUodGl0bGU6c3RyaW5nKXtcclxuICAgIGNvbnN0IGxhc3QgPSB0aGlzLmhpc3RvcnlMaXN0KCkucG9wKCkgYXMgSGlzdG9yeUl0ZW1cclxuICAgIHRoaXMuaGlzdG9yeUxpc3QudXBkYXRlKCh2YWx1ZSkgPT4gKFsuLi52YWx1ZSx7Li4ubGFzdCx0aXRsZX1dKSlcclxuICAgIGNvbnNvbGUubG9nKCdzZXQtLXRpdGxlJyx0aGlzLmhpc3RvcnlMaXN0KCkpXHJcbiAgICAvLyBjb25zdCBsYXN0ID0gdGhpcy5oaXN0b3J5TGlzdCgpW3RoaXMuaGlzdG9yeUxpc3QoKS5sZW5ndGggLSAxXVxyXG5cclxuICB9XHJcblxyXG59Il19
110
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlckhpc3Rvcnkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2ltbS1lbGVtZW50LXVpL3NyYy9saWIvc2VydmljZS91c2VySGlzdG9yeS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUMxRCxPQUFPLEVBQTBDLGFBQWEsRUFBVSxNQUFNLGlCQUFpQixDQUFDO0FBQ2hHLE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFVLE1BQU0sTUFBTSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7O0FBVzdDLE1BQU0sT0FBTyxrQkFBa0I7SUFZN0IsWUFBbUIsTUFBYyxFQUFRLEtBQXFCO1FBQTNDLFdBQU0sR0FBTixNQUFNLENBQVE7UUFBUSxVQUFLLEdBQUwsS0FBSyxDQUFnQjtRQVg5RCxnQkFBVyxHQUFHLE1BQU0sQ0FBZ0IsRUFBRSxDQUFDLENBQUE7UUFDdkMsWUFBTyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTTthQUN6QixJQUFJLENBQ0gsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxZQUFZLGFBQWEsQ0FBQyxFQUMvQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNaLGlDQUFpQztZQUNqQyxPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUE7UUFDdEUsQ0FBQyxDQUFDLENBQ0gsQ0FBQTtRQUNILGVBQVUsR0FBRyxFQUFFLENBQUE7UUFDZixTQUFJLEdBQUUsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFBO1FBR3ZCLHNEQUFzRDtRQUN0RCxxRkFBcUY7UUFDckYsS0FBSztRQUNMLHlD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QUFFLENBQUE7UUFDdkIsSUFBRyxJQUFJLEVBQUUsQ0FBQztZQUNSLFVBQVUsR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxJQUFJLENBQUMsQ0FBQTtRQUM3RCxDQUFDO1FBQ0QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUE7SUFDbEMsQ0FBQztJQUVELG1CQUFtQjtJQUNuQixZQUFZLENBQUMsS0FBWTtRQUN2QixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsR0FBRyxFQUFpQixDQUFBO1FBQ3BELElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLEVBQUMsRUFBQyxHQUFHLElBQUksRUFBQyxLQUFLLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtRQUNoRSxPQUFPLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQTtRQUM1QyxpRUFBaUU7SUFFbkUsQ0FBQzsrR0F0R1Usa0JBQWtCO21IQUFsQixrQkFBa0IsY0FEUCxNQUFNOzs0RkFDakIsa0JBQWtCO2tCQUQ5QixVQUFVO21CQUFDLEVBQUMsVUFBVSxFQUFDLE1BQU0sRUFBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBOYXZpZ2F0aW9uRW5kLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgZmlsdGVyLCBtYXAsIGNvbmZpZyB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgSTE4blNlcnZpY2UgfSBmcm9tICcuL2kxOG4uc2VydmljZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSGlzdG9yeUl0ZW0ge1xuICAvLyB0eXBlOiAncm91dGVyTGluaycgfCAnY3JlYXRlJyxcbiAgdGl0bGU6IHN0cmluZyxcbiAgdXJsOiBzdHJpbmcsXG4gIGNvbmZpZ1BhdGg6IHN0cmluZyxcbiAgaTE4bktleTpzdHJpbmdcbn1cblxuQEluamVjdGFibGUoe3Byb3ZpZGVkSW46J3Jvb3QnfSlcbmV4cG9ydCBjbGFzcyBVc2VySGlzdG9yeVNlcnZpY2Uge1xuICBoaXN0b3J5TGlzdCA9IHNpZ25hbDxIaXN0b3J5SXRlbVtdPihbXSlcbiAgcm91dGVyJCA9IHRoaXMucm91dGVyLmV2ZW50c1xuICAgIC5waXBlKFxuICAgICAgZmlsdGVyKGV2ZW50ID0+IGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvbkVuZCksXG4gICAgICBtYXAoKGV2ZW50KSA9PntcbiAgICAgICAgLy8gY29uc29sZS5sb2coJ2V2ZW50LS0tLScsZXZlbnQpXG4gICAgICAgIHJldHVybiB0aGlzLmNyZWF0ZUJyZWFkY3J1bWJzKHRoaXMucm91dGVyLnJvdXRlclN0YXRlLnNuYXBzaG90LnJvb3QpXG4gICAgICB9KVxuICAgIClcbiAgZGV0YWlsTmFtZSA9ICcnXG4gIGkxOG4gPWluamVjdChJMThuU2VydmljZSlcbiAgY29uc3RydWN0b3IocHVibGljIHJvdXRlcjogUm91dGVyLHB1YmxpYyByb3V0ZTogQWN0aXZhdGVkUm91dGUpe1xuXG4gICAgLy8gd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2JlZm9yZXVubG9hZCcsKGV2ZW50KSA9PiB7XG4gICAgLy8gICB3aW5kb3cuc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSgnY3J1bWJBY3Rpb24nLCBKU09OLnN0cmluZ2lmeSh0aGlzLmhpc3RvcnlMaXN0KCkpKVxuICAgIC8vIH0pXG4gICAgLy8gd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCgpID0+IHtcbiAgICAvLyAgIGxldCBoaXN0b3J5ID0gd2luZG93LnNlc3Npb25TdG9yYWdlLmdldEl0ZW0oJ2NydW1iQWN0aW9uJylcbiAgICAvLyAgIGNvbnNvbGUubG9nKCdjcnVtYkFjdGlvbi1sb2NhbHN0b3J5JyxoaXN0b3J5KVxuICAgIC8vICAgaWYoaGlzdG9yeSl7XG4gICAgLy8gICAgIHRoaXMuaGlzdG9yeUxpc3Quc2V0KEpTT04ucGFyc2UoaGlzdG9yeSkpXG4gICAgLy8gICB9XG4gICAgLy8gfSlcbiAgfVxuXG5cblxuICBcbiAgcHJpdmF0ZSBjcmVhdGVCcmVhZGNydW1icyhyb3V0ZTogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgdXJsOiBzdHJpbmcgPSAnJywgYnJlYWRjcnVtYnM6IGFueVtdID0gW10pOmFueSB7XG4gICAgY29uc3QgY2hpbGRyZW46IEFjdGl2YXRlZFJvdXRlU25hcHNob3RbXSA9IHJvdXRlLmNoaWxkcmVuO1xuICAgIGlmKGNoaWxkcmVuLmxlbmd0aCA9PSAwKSByZXR1cm4gXG4gICAgY29uc3QgY2hpbGQgPSBjaGlsZHJlblswXTtcbiAgICBjb25zdCByb3V0ZVVSTDogc3RyaW5nID0gY2hpbGQudXJsLm1hcChzZWdtZW50ID0+IHNlZ21lbnQucGF0aCkuam9pbignLycpO1xuICAgIGNvbnN0IHF1ZXJ5S2V5cyA9IE9iamVjdC5rZXlzKGNoaWxkLnF1ZXJ5UGFyYW1zKSAgfHwgW11cbiAgICBpZiAocm91dGVVUkwgIT09ICcnKSB7XG4gICAgICB1cmwgKz0gYC8ke3JvdXRlVVJMfWA7XG4gICAgfVxuICAgIGlmKHF1ZXJ5S2V5cy5sZW5ndGggPiAwKXtcbiAgICAgIHVybCs9Jz8nXG4gICAgICBxdWVyeUtleXMuZm9yRWFjaCh2ID0+IHtcbiAgICAgICAgdXJsKz1gJHt2fT0ke2NoaWxkLnF1ZXJ5UGFyYW1zW3ZdfWBcbiAgICAgIH0pXG4gICAgfVxuICAgIGxldCB0aXRsZTogc3RyaW5nID0gJyc7XG4gICAgaWYgKGNoaWxkLmRhdGFbJ3RpdGxlJ10pIHtcbiAgICAgIGlmICh0eXBlb2YgY2hpbGQuZGF0YVsndGl0bGUnXSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICB0aXRsZSA9IGNoaWxkLmRhdGFbJ3RpdGxlJ10oY2hpbGQpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGl0bGUgPSBjaGlsZC5kYXRhWyd0aXRsZSddXG4gICAgICB9XG4gICAgfVxuICAgIGNvbnN0IGkxOG5LZXkgPSBjaGlsZC5kYXRhWydpMThuS2V5J10gPyBjaGlsZC5kYXRhWydpMThuS2V5J10gOiAnJ1xuICAgIC8vIGNvbnN0IGNvbmZpZ1BhdGg6IHN0cmluZyA9IGNoaWxkLnJvdXRlQ29uZmlnPy5wYXRoIGFzIHN0cmluZ1xuICAgIGNvbnN0IGNvbmZpZ1BhdGggPSBjaGlsZC5wYXJhbXMuaGFzT3duUHJvcGVydHkoJ2lkJykgPyB1cmwucmVwbGFjZSgvKFteXFwvXSopJC8sIFwiXCIpIDogdXJsXG4gICAgY29uc3QgcGFyYW1zS2V5cyA9IE9iamVjdC5rZXlzKGNoaWxkLnBhcmFtcylcbiAgICBjb25zb2xlLmxvZygndGl0bGUnLGNoaWxkLGNvbmZpZ1BhdGgsdXJsKVxuICAgIGlmKHRpdGxlICYmIGNvbmZpZ1BhdGgpe1xuICAgICAgbGV0IGlzRXhpdCA9IHRoaXMuaGlzdG9yeUxpc3QoKS5maWx0ZXIodiA9PiB2LmNvbmZpZ1BhdGggPT0gY29uZmlnUGF0aCkgXG4gICAgICAvLyBjb25maWdQYXRoLmluZGV4T2YoJzonKSA+IC0xICYmIHBhcmFtc0tleXMubGVuZ3RoID4gMCAmJiAoIHRpdGxlID0gdGhpcy5kZXRhaWxOYW1lKVxuICAgICAgaWYoaXNFeGl0Lmxlbmd0aCA9PSAwKXtcbiAgICAgICAgdGhpcy5oaXN0b3J5TGlzdC51cGRhdGUoKHZhbHVlKSA9PiBbLi4udmFsdWUse3RpdGxlLHVybCxjb25maWdQYXRoLGkxOG5LZXl9XSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuYmFja1VybCh1cmwpXG4gICAgICB9XG4gICAgfVxuICAgIC8vIGNvbnNvbGUubG9nKCdoaXN0b3J5LS0tLScsdGhpcy5oaXN0b3J5TGlzdCgpKVxuICAgIHJldHVybiB0aGlzLmNyZWF0ZUJyZWFkY3J1bWJzKGNoaWxkLCB1cmwsIGJyZWFkY3J1bWJzKTtcbiAgfVxuICBhZGRIaXN0b3J5TGlzdChpdGVtOiBIaXN0b3J5SXRlbSl7XG4gICAgdGhpcy5oaXN0b3J5TGlzdC51cGRhdGUoKHZhbHVlKSA9PiBbLi4udmFsdWUsaXRlbV0pXG4gIH1cblxuICBiYWNrVXJsKHVybDpzdHJpbmcpe1xuICAgIGxldCBpbmRleCA9IHRoaXMuaGlzdG9yeUxpc3QoKS5maW5kSW5kZXgodiA9PiB2LnVybCA9PSB1cmwpXG4gICAgbGV0IGxlbmd0aCA9IHRoaXMuaGlzdG9yeUxpc3QoKS5sZW5ndGhcbiAgICBpZihpbmRleCArIDEgIT09IGxlbmd0aCl7XG4gICAgICBsZXQgbmV3SGlzdG9yeSA9IHRoaXMuaGlzdG9yeUxpc3QoKS5zbGljZSgwLGluZGV4KVxuICAgICAgdGhpcy5oaXN0b3J5TGlzdC5zZXQobmV3SGlzdG9yeSlcbiAgICB9XG4gIH1cblxuICBsYXN0UG9wKCl7XG4gICAgdGhpcy5oaXN0b3J5TGlzdCgpLnBvcCgpXG4gIH1cbiAgLy8g5riF56m6aGlzdG9yeVxuICBjbGVhcihwYXRoPzpzdHJpbmcpe1xuICAgIHdpbmRvdy5zZXNzaW9uU3RvcmFnZS5yZW1vdmVJdGVtKCdjcnVtYkFjdGlvbicpXG4gICAgbGV0IG5ld0hpc3RvcnkgOmFueT0gW11cbiAgICBpZihwYXRoKSB7XG4gICAgICBuZXdIaXN0b3J5ID0gdGhpcy5oaXN0b3J5TGlzdCgpLmZpbHRlcih2ID0+IHYudXJsID09PSBwYXRoKVxuICAgIH1cbiAgICB0aGlzLmhpc3RvcnlMaXN0LnNldChuZXdIaXN0b3J5KVxuICB9XG5cbiAgLy8g5omL5Yqo6Kem5Y+R6K+m5oOF6aG16Z2i6I635Y+WdGl0bGUgXG4gIHNldExhc3RUaXRsZSh0aXRsZTpzdHJpbmcpe1xuICAgIGNvbnN0IGxhc3QgPSB0aGlzLmhpc3RvcnlMaXN0KCkucG9wKCkgYXMgSGlzdG9yeUl0ZW1cbiAgICB0aGlzLmhpc3RvcnlMaXN0LnVwZGF0ZSgodmFsdWUpID0+IChbLi4udmFsdWUsey4uLmxhc3QsdGl0bGV9XSkpXG4gICAgY29uc29sZS5sb2coJ3NldC0tdGl0bGUnLHRoaXMuaGlzdG9yeUxpc3QoKSlcbiAgICAvLyBjb25zdCBsYXN0ID0gdGhpcy5oaXN0b3J5TGlzdCgpW3RoaXMuaGlzdG9yeUxpc3QoKS5sZW5ndGggLSAxXVxuXG4gIH1cblxufSJdfQ==