ets-fe-ng-sdk 17.0.113 → 17.0.115

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.
Files changed (30) hide show
  1. package/esm2022/lib/Reusables/reusable-comps/find-item/find-item.component.mjs +2 -2
  2. package/esm2022/lib/Shared/components/editable-text-case/editable-text-case.component.mjs +2 -2
  3. package/esm2022/lib/Shared/components/form-error/form-error.component.mjs +15 -11
  4. package/esm2022/lib/Shared/components/form-generator/form-generator.component.mjs +2 -2
  5. package/esm2022/lib/Shared/components/input/date-input/date-input.component.mjs +6 -7
  6. package/esm2022/lib/Shared/components/input/day-hour-min-input/day-hour-min-input.component.mjs +7 -9
  7. package/esm2022/lib/Shared/components/input/input-base.component.mjs +26 -2
  8. package/esm2022/lib/Shared/components/input/input-basic.component.mjs +3 -26
  9. package/esm2022/lib/Shared/components/input/input-control.component.mjs +3 -3
  10. package/esm2022/lib/Shared/components/input/input-label/input-label.component.mjs +24 -49
  11. package/esm2022/lib/Shared/components/input/input-td-rf.component.mjs +4 -4
  12. package/esm2022/lib/Shared/components/input/input.component.mjs +3 -7
  13. package/esm2022/lib/Shared/components/input/year-month-td-rf/year-month-td-rf.component.mjs +5 -7
  14. package/esm2022/lib/Shared/components/input-table/input-table.component.mjs +2 -2
  15. package/esm2022/lib/Shared/components/table-input/table-input-row/table-input-row.component.mjs +2 -2
  16. package/esm2022/lib/Shared/components/table-plain/table-plain.component.mjs +2 -2
  17. package/esm2022/public-api.mjs +4 -1
  18. package/fesm2022/ets-fe-ng-sdk.mjs +87 -117
  19. package/fesm2022/ets-fe-ng-sdk.mjs.map +1 -1
  20. package/lib/Services/utility.service.d.ts +1 -1
  21. package/lib/Shared/components/form-error/form-error.component.d.ts +4 -3
  22. package/lib/Shared/components/input/date-input/date-input.component.d.ts +2 -2
  23. package/lib/Shared/components/input/day-hour-min-input/day-hour-min-input.component.d.ts +2 -2
  24. package/lib/Shared/components/input/input-base.component.d.ts +5 -1
  25. package/lib/Shared/components/input/input-basic.component.d.ts +1 -4
  26. package/lib/Shared/components/input/input-label/input-label.component.d.ts +19 -19
  27. package/lib/Shared/components/input/input.component.d.ts +1 -3
  28. package/lib/Shared/components/input/year-month-td-rf/year-month-td-rf.component.d.ts +2 -2
  29. package/package.json +1 -1
  30. package/public-api.d.ts +3 -0
@@ -283,7 +283,7 @@ export class FindItemComponent extends BaseFormGenerator {
283
283
  return this.tableHTTPSREF?.selectedItems || this.tablePlainRef?.selectedItems;
284
284
  }
285
285
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: FindItemComponent, deps: [{ token: i1.UtilityService }, { token: i2.UserActivityService }, { token: i3.Router }, { token: i3.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
286
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.0", type: FindItemComponent, isStandalone: true, selector: "app-find-item,find-item", inputs: { autoFormatSchema: "autoFormatSchema", autoOrder: "autoOrder", centerCells: "centerCells", displayedColumns: "displayedColumns", gridClass: "gridClass", hideForm: "hideForm", expandedRowTemplate: "expandedRowTemplate", isTablePaginated: "isTablePaginated", isExpandable: "isExpandable", label: "label", nowrap: "nowrap", options: ["rowOptions", "options"], orderDirection: "orderDirection", orderField: "orderField", pageSize: "pageSize", searchFunction: "searchFunction", showData: "showData", showExport: "showExport", showFilter: "showFilter", showRefreshBtn: "showRefreshBtn", startSectionTemplate: "startSectionTemplate", showSearchBtn: "showSearchBtn", showClearBtn: "showClearBtn", showValidationMsg: "showValidationMsg", showAdditionalColumns: "showAdditionalColumns", smallerFonts: "smallerFonts", useSelection: "useSelection", createButton: "createButton", _formSchema: ["formSchema", "_formSchema"], searchObservableFunc: "searchObservableFunc" }, outputs: { _rowClick: "rowClick" }, viewQueries: [{ propertyName: "tableHTTPSREF", first: true, predicate: TableHttpsComponent, descendants: true }, { propertyName: "tablePlainRef", first: true, predicate: TablePlainComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<loader [loading]=\"loading\">\n @if (!hideForm && searchForm) {\n <form [formGroup]=\"searchForm\" (ngSubmit)=\"search()\">\n <div class=\"row align-items-center\">\n @for (scheme of formSchema(); track scheme) {\n <div class=\"{{ gridClass }} \">\n <div class=\"row align-items-end\">\n @switch (true) {\n @case (scheme.type == 'tel') {\n <div class=\"col\">\n <app-phone-number\n [form]=\"scheme.form\"\n [label]=\"scheme.label\"\n [name]=\"scheme.field\"\n [showLabel]=\"false\"\n [showValidation]=\"scheme.showValidation\"\n [showValidationIcon]=\"scheme.showValidationIcon\"\n [countryCode3]=\"cellCountryCode3s[scheme.getCountryCode3Key] || scheme.countryCode3\"\n [disabled]=\"scheme.disabledIf | functionCaller2: searchForm.value : (scheme.field | toAny)\"\n #inputTag />\n @if (showValidationMsg) {\n <app-validation-message [input]=\"inputTag\" />\n }\n </div>\n }\n @case (scheme.type == 'autocomplete') {\n <div class=\"col\">\n <app-autocomplete\n [form]=\"scheme.form\"\n [label]=\"scheme.label\"\n [labelField]=\"scheme.labelField\"\n [autoPickValueField]=\"scheme.autoPickValueField\"\n [labelType]=\"scheme.labelType | toAny\"\n [optionsFunc]=\"scheme.optionsFunc\"\n [name]=\"scheme.field\"\n [optionFormatter]=\"scheme.optionFormatter\"\n [valueField]=\"scheme.valueField\"\n [options]=\"scheme.options || cellOptions[scheme.field | toAny]\"\n [hint]=\"scheme.hint\"\n [disabled]=\"scheme.disabledIf | functionCaller2: searchForm.value : (scheme.field | toAny)\"\n #inputTag />\n @if (showValidationMsg) {\n <app-validation-message [input]=\"inputTag\" />\n }\n </div>\n }\n @default {\n <div class=\"col\">\n <form>\n <div class=\"gx-2 row align-items-end\">\n <div class=\"col\">\n <app-input-basic\n #formField\n [name]=\"scheme.field\"\n [form]=\"scheme.form\"\n [type]=\"scheme.type\"\n [autoPickValueField]=\"scheme.autoPickValueField\"\n [valueField]=\"scheme.valueField\"\n [labelType]=\"scheme.labelType | toAny\"\n [checked]=\"scheme.checked\"\n [showValidation]=\"!!scheme.asyncValidators\"\n [showValidationIcon]=\"!!scheme.asyncValidators\"\n [noFormat]=\"true\"\n [labelField]=\"scheme.labelField\"\n [optionFormatter]=\"scheme.optionFormatter\"\n [options]=\"scheme.options || cellOptions[scheme.field | toAny]\"\n [decimalPoints]=\"scheme.decimalPoints\"\n [hint]=\"scheme.hint\"\n [max]=\"scheme.max\"\n [min]=\"scheme.min\"\n [placeholder]=\"scheme.placeholder\"\n [label]=\"scheme.label\"\n [disabled]=\"scheme.disabledIf | functionCaller2: searchForm.value : (scheme.field | toAny)\" />\n </div>\n @if (scheme.standalone && scheme.action) {\n <div class=\"col-auto\">\n <app-btn\n group=\"show\"\n [disabled]=\"!formField?.validSignal()\"\n actionType=\"submit\"\n (mclick)=\"scheme.action(allSearchFormValue, formField.valueSignal(), searchForm)\" />\n </div>\n }\n @if (scheme.action && !scheme.standalone) {\n <div class=\"col-auto\">\n <app-btn\n [icon]=\"scheme.icon\"\n [iconBtn]=\"true\"\n actionType=\"submit\"\n (mclick)=\"scheme.action(allSearchFormValue, formField.valueSignal(), searchForm)\" />\n </div>\n }\n </div>\n </form>\n </div>\n @if (showValidationMsg) {\n <app-validation-message [input]=\"formField\" />\n }\n }\n }\n </div>\n </div>\n }\n <div class=\"col-md justify-content-end d-flex\">\n @if (showClearBtn) {\n <app-btn type=\"danger-outline\" text=\"Clear\" icon=\"delete\" (mclick)=\"clearFilters()\" />\n }\n <span class=\"mx-1\"></span>\n @if (showSearchBtn) {\n <app-btn\n [group]=\"'search'\"\n [iconBtn]=\"true\"\n text=\"Search\"\n actionType=\"submit\"\n [excludeLogging]=\"true\"\n [disabled]=\"!searchFunction && !isTablePaginated\"\n (mclick)=\"search()\" />\n }\n @if (createButton) {\n <span class=\"mx-1\"></span>\n <app-btn type=\"outline\" text=\"Create\" icon=\"add\" routerLink=\"../create\" />\n }\n </div>\n </div>\n </form>\n }\n\n <ng-content select=\"[tablePanel]\"></ng-content>\n\n @if (displayedColumns?.length) {\n <div class=\"mt-3\" [hidden]=\"!showData || (!data && !isTablePaginated)\">\n <ng-container>\n @if (isTablePaginated) {\n <table-https\n #tableHTTPS\n [displayedColumns]=\"displayedColumns\"\n [showExport]=\"showExport\"\n [startSectionTemplate]=\"startSectionTemplate\"\n [useSelection]=\"useSelection\"\n [showRefreshBtn]=\"showRefreshBtn\"\n [observableFunc]=\"searchObservableFunc\"\n noItemTxt=\"No results found\"\n [isExpandable]=\"isExpandable\"\n [expandedRowTemplate]=\"expandedRowTemplate\"\n [centerCells]=\"centerCells\"\n [smallerFonts]=\"smallerFonts\"\n [nowrap]=\"nowrap\"\n [pageSize]=\"pageSize\"\n [label]=\"label\"\n [showAdditionalColumns]=\"showAdditionalColumns\"\n [orderField]=\"orderField\"\n [rowOptions]=\"options\"\n [orderDirection]=\"orderDirection\"\n (rowClick)=\"rowClick($event)\" />\n } @else {\n <table-plain\n [distinct]=\"true\"\n [showPager]=\"true\"\n [pageSize]=\"pageSize\"\n [centerCells]=\"false\"\n [startSectionTemplate]=\"startSectionTemplate\"\n [smallerFonts]=\"smallerFonts\"\n [nowrap]=\"nowrap\"\n [showFilter]=\"showFilter\"\n [showExport]=\"showExport\"\n [isExpandable]=\"isExpandable\"\n [expandedRowTemplate]=\"expandedRowTemplate\"\n [label]=\"label\"\n noItemTxt=\"No results found\"\n (rowClick)=\"rowClick($event)\"\n [orderField]=\"orderField\"\n [rowOptions]=\"options\"\n [showAdditionalColumns]=\"showAdditionalColumns\"\n [orderDirection]=\"orderDirection\"\n [displayedColumns]=\"displayedColumns\"\n [data]=\"data\" />\n }\n </ng-container>\n </div>\n }\n</loader>\n", styles: [""], dependencies: [{ kind: "component", type: LoaderComponent, selector: "loader", inputs: ["class", "text", "loading", "height"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: PhoneNumberComponent, selector: "app-phone-number", inputs: ["showLabel", "countryCode3", "config"], outputs: ["onCountrySelect"] }, { kind: "component", type: ValidationMessageComponent, selector: "app-validation-message", inputs: ["validationKey", "control", "input", "label", "minLength", "maxLength", "ignoreDirtiness", "customMessage"] }, { kind: "component", type: AutocompleteComponent, selector: "app-autocomplete,autocomplete", inputs: ["showRequiredTag", "validate", "options"] }, { kind: "component", type: InputBasicComponent, selector: "app-input-basic,app-input", inputs: ["accept", "autocomplete", "autoPickValueField", "clearOnDisable", "cls", "input", "colored", "checked", "contextData", "debug", "decimalPoints", "files", "noFormat", "hide", "hint", "labelLink", "labelField", "labelType", "lblCl", "light", "loading", "minLength", "maxLength", "multiple", "optionFormatter", "optionsFunc", "placeholder", "suffix", "theme", "translateOptions", "valueField", "vms", "xsmall", "setCurrentDate", "disabled", "options", "mvalue"], outputs: ["mchange", "mSelectOptionChange", "mSelectedOptionLabel"] }, { kind: "component", type: BtnComponent, selector: "app-btn", inputs: ["formSchema", "centerBtn", "danger", "warning", "icon", "rightIcon", "leftIcon", "type", "group", "actionType", "animate", "excludeLogging", "loggingValue", "badge", "class", "customIcon", "disabled", "form", "forms", "help", "iconBtn", "loading", "mclass", "showHelpIcon", "rightCustomIcon", "leftCustomIcon", "text", "valid", "mini", "onFormInvalid"], outputs: ["mclick"] }, { kind: "component", type: TableHttpsComponent, selector: "table-https", inputs: ["observableFunc", "pageNumber", "queryData", "showRefreshBtn"], outputs: ["dataFetched"] }, { kind: "component", type: TablePlainComponent, selector: "table-plain", inputs: ["customSelectClass", "idField", "obsDataSource", "showFilter", "showPager", "disableSelectionByField", "data", "filterFields", "filterFieldsMap", "selectionPerPage"], outputs: ["view", "dataChanged", "filterChange", "listMutated"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "pipe", type: FunctionCaller2, name: "functionCaller2" }, { kind: "pipe", type: ToAnyPipe, name: "toAny" }] }); }
286
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.0", type: FindItemComponent, isStandalone: true, selector: "app-find-item,find-item", inputs: { autoFormatSchema: "autoFormatSchema", autoOrder: "autoOrder", centerCells: "centerCells", displayedColumns: "displayedColumns", gridClass: "gridClass", hideForm: "hideForm", expandedRowTemplate: "expandedRowTemplate", isTablePaginated: "isTablePaginated", isExpandable: "isExpandable", label: "label", nowrap: "nowrap", options: ["rowOptions", "options"], orderDirection: "orderDirection", orderField: "orderField", pageSize: "pageSize", searchFunction: "searchFunction", showData: "showData", showExport: "showExport", showFilter: "showFilter", showRefreshBtn: "showRefreshBtn", startSectionTemplate: "startSectionTemplate", showSearchBtn: "showSearchBtn", showClearBtn: "showClearBtn", showValidationMsg: "showValidationMsg", showAdditionalColumns: "showAdditionalColumns", smallerFonts: "smallerFonts", useSelection: "useSelection", createButton: "createButton", _formSchema: ["formSchema", "_formSchema"], searchObservableFunc: "searchObservableFunc" }, outputs: { _rowClick: "rowClick" }, viewQueries: [{ propertyName: "tableHTTPSREF", first: true, predicate: TableHttpsComponent, descendants: true }, { propertyName: "tablePlainRef", first: true, predicate: TablePlainComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<loader [loading]=\"loading\">\n @if (!hideForm && searchForm) {\n <form [formGroup]=\"searchForm\" (ngSubmit)=\"search()\">\n <div class=\"row align-items-center\">\n @for (scheme of formSchema(); track scheme) {\n <div class=\"{{ gridClass }} \">\n <div class=\"row align-items-end\">\n @switch (true) {\n @case (scheme.type == 'tel') {\n <div class=\"col\">\n <app-phone-number\n [form]=\"scheme.form\"\n [label]=\"scheme.label\"\n [name]=\"scheme.field\"\n [showLabel]=\"false\"\n [showValidation]=\"scheme.showValidation\"\n [showValidationIcon]=\"scheme.showValidationIcon\"\n [countryCode3]=\"cellCountryCode3s[scheme.getCountryCode3Key] || scheme.countryCode3\"\n [disabled]=\"scheme.disabledIf | functionCaller2: searchForm.value : (scheme.field | toAny)\"\n #inputTag />\n @if (showValidationMsg) {\n <app-validation-message [input]=\"inputTag\" />\n }\n </div>\n }\n @case (scheme.type == 'autocomplete') {\n <div class=\"col\">\n <app-autocomplete\n [form]=\"scheme.form\"\n [label]=\"scheme.label\"\n [labelField]=\"scheme.labelField\"\n [autoPickValueField]=\"scheme.autoPickValueField\"\n [labelType]=\"scheme.labelType | toAny\"\n [optionsFunc]=\"scheme.optionsFunc\"\n [name]=\"scheme.field\"\n [optionFormatter]=\"scheme.optionFormatter\"\n [valueField]=\"scheme.valueField\"\n [options]=\"scheme.options || cellOptions[scheme.field | toAny]\"\n [hint]=\"scheme.hint\"\n [disabled]=\"scheme.disabledIf | functionCaller2: searchForm.value : (scheme.field | toAny)\"\n #inputTag />\n @if (showValidationMsg) {\n <app-validation-message [input]=\"inputTag\" />\n }\n </div>\n }\n @default {\n <div class=\"col\">\n <form>\n <div class=\"gx-2 row align-items-end\">\n <div class=\"col\">\n <app-input-basic\n #formField\n [name]=\"scheme.field\"\n [form]=\"scheme.form\"\n [type]=\"scheme.type\"\n [autoPickValueField]=\"scheme.autoPickValueField\"\n [valueField]=\"scheme.valueField\"\n [labelType]=\"scheme.labelType | toAny\"\n [checked]=\"scheme.checked\"\n [showValidation]=\"!!scheme.asyncValidators\"\n [showValidationIcon]=\"!!scheme.asyncValidators\"\n [noFormat]=\"true\"\n [labelField]=\"scheme.labelField\"\n [optionFormatter]=\"scheme.optionFormatter\"\n [options]=\"scheme.options || cellOptions[scheme.field | toAny]\"\n [decimalPoints]=\"scheme.decimalPoints\"\n [hint]=\"scheme.hint\"\n [max]=\"scheme.max\"\n [min]=\"scheme.min\"\n [placeholder]=\"scheme.placeholder\"\n [label]=\"scheme.label\"\n [disabled]=\"scheme.disabledIf | functionCaller2: searchForm.value : (scheme.field | toAny)\" />\n </div>\n @if (scheme.standalone && scheme.action) {\n <div class=\"col-auto\">\n <app-btn\n group=\"show\"\n [disabled]=\"!formField?.validSignal()\"\n actionType=\"submit\"\n (mclick)=\"scheme.action(allSearchFormValue, formField.valueSignal(), searchForm)\" />\n </div>\n }\n @if (scheme.action && !scheme.standalone) {\n <div class=\"col-auto\">\n <app-btn\n [icon]=\"scheme.icon\"\n [iconBtn]=\"true\"\n actionType=\"submit\"\n (mclick)=\"scheme.action(allSearchFormValue, formField.valueSignal(), searchForm)\" />\n </div>\n }\n </div>\n </form>\n </div>\n @if (showValidationMsg) {\n <app-validation-message [input]=\"formField\" />\n }\n }\n }\n </div>\n </div>\n }\n <div class=\"col-md justify-content-end d-flex\">\n @if (showClearBtn) {\n <app-btn type=\"danger-outline\" text=\"Clear\" icon=\"delete\" (mclick)=\"clearFilters()\" />\n }\n <span class=\"mx-1\"></span>\n @if (showSearchBtn) {\n <app-btn\n [group]=\"'search'\"\n [iconBtn]=\"true\"\n text=\"Search\"\n actionType=\"submit\"\n [excludeLogging]=\"true\"\n [disabled]=\"!searchFunction && !isTablePaginated\"\n (mclick)=\"search()\" />\n }\n @if (createButton) {\n <span class=\"mx-1\"></span>\n <app-btn type=\"outline\" text=\"Create\" icon=\"add\" routerLink=\"../create\" />\n }\n </div>\n </div>\n </form>\n }\n\n <ng-content select=\"[tablePanel]\"></ng-content>\n\n @if (displayedColumns?.length) {\n <div class=\"mt-3\" [hidden]=\"!showData || (!data && !isTablePaginated)\">\n <ng-container>\n @if (isTablePaginated) {\n <table-https\n #tableHTTPS\n [displayedColumns]=\"displayedColumns\"\n [showExport]=\"showExport\"\n [startSectionTemplate]=\"startSectionTemplate\"\n [useSelection]=\"useSelection\"\n [showRefreshBtn]=\"showRefreshBtn\"\n [observableFunc]=\"searchObservableFunc\"\n noItemTxt=\"No results found\"\n [isExpandable]=\"isExpandable\"\n [expandedRowTemplate]=\"expandedRowTemplate\"\n [centerCells]=\"centerCells\"\n [smallerFonts]=\"smallerFonts\"\n [nowrap]=\"nowrap\"\n [pageSize]=\"pageSize\"\n [label]=\"label\"\n [showAdditionalColumns]=\"showAdditionalColumns\"\n [orderField]=\"orderField\"\n [rowOptions]=\"options\"\n [orderDirection]=\"orderDirection\"\n (rowClick)=\"rowClick($event)\" />\n } @else {\n <table-plain\n [distinct]=\"true\"\n [showPager]=\"true\"\n [pageSize]=\"pageSize\"\n [centerCells]=\"false\"\n [startSectionTemplate]=\"startSectionTemplate\"\n [smallerFonts]=\"smallerFonts\"\n [nowrap]=\"nowrap\"\n [showFilter]=\"showFilter\"\n [showExport]=\"showExport\"\n [isExpandable]=\"isExpandable\"\n [expandedRowTemplate]=\"expandedRowTemplate\"\n [label]=\"label\"\n noItemTxt=\"No results found\"\n (rowClick)=\"rowClick($event)\"\n [orderField]=\"orderField\"\n [rowOptions]=\"options\"\n [showAdditionalColumns]=\"showAdditionalColumns\"\n [orderDirection]=\"orderDirection\"\n [displayedColumns]=\"displayedColumns\"\n [data]=\"data\" />\n }\n </ng-container>\n </div>\n }\n</loader>\n", styles: [""], dependencies: [{ kind: "component", type: LoaderComponent, selector: "loader", inputs: ["class", "text", "loading", "height"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: PhoneNumberComponent, selector: "app-phone-number", inputs: ["showLabel", "countryCode3", "config"], outputs: ["onCountrySelect"] }, { kind: "component", type: ValidationMessageComponent, selector: "app-validation-message", inputs: ["validationKey", "control", "input", "label", "minLength", "maxLength", "ignoreDirtiness", "customMessage"] }, { kind: "component", type: AutocompleteComponent, selector: "app-autocomplete,autocomplete", inputs: ["showRequiredTag", "validate", "options"] }, { kind: "component", type: InputBasicComponent, selector: "app-input-basic,app-input", inputs: ["accept", "autocomplete", "autoPickValueField", "cls", "input", "colored", "checked", "contextData", "decimalPoints", "files", "noFormat", "hide", "hint", "labelLink", "labelField", "labelType", "lblCl", "light", "loading", "minLength", "maxLength", "multiple", "optionFormatter", "optionsFunc", "placeholder", "suffix", "theme", "translateOptions", "valueField", "vms", "xsmall", "setCurrentDate", "options", "mvalue"], outputs: ["mchange", "mSelectOptionChange", "mSelectedOptionLabel"] }, { kind: "component", type: BtnComponent, selector: "app-btn", inputs: ["formSchema", "centerBtn", "danger", "warning", "icon", "rightIcon", "leftIcon", "type", "group", "actionType", "animate", "excludeLogging", "loggingValue", "badge", "class", "customIcon", "disabled", "form", "forms", "help", "iconBtn", "loading", "mclass", "showHelpIcon", "rightCustomIcon", "leftCustomIcon", "text", "valid", "mini", "onFormInvalid"], outputs: ["mclick"] }, { kind: "component", type: TableHttpsComponent, selector: "table-https", inputs: ["observableFunc", "pageNumber", "queryData", "showRefreshBtn"], outputs: ["dataFetched"] }, { kind: "component", type: TablePlainComponent, selector: "table-plain", inputs: ["customSelectClass", "idField", "obsDataSource", "showFilter", "showPager", "disableSelectionByField", "data", "filterFields", "filterFieldsMap", "selectionPerPage"], outputs: ["view", "dataChanged", "filterChange", "listMutated"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "pipe", type: FunctionCaller2, name: "functionCaller2" }, { kind: "pipe", type: ToAnyPipe, name: "toAny" }] }); }
287
287
  }
288
288
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: FindItemComponent, decorators: [{
289
289
  type: Component,
@@ -379,4 +379,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImpor
379
379
  }], searchObservableFunc: [{
380
380
  type: Input
381
381
  }] } });
382
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmluZC1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V0cy1mZS1uZy1zZGsvc3JjL2xpYi9SZXVzYWJsZXMvcmV1c2FibGUtY29tcHMvZmluZC1pdGVtL2ZpbmQtaXRlbS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ldHMtZmUtbmctc2RrL3NyYy9saWIvUmV1c2FibGVzL3JldXNhYmxlLWNvbXBzL2ZpbmQtaXRlbS9maW5kLWl0ZW0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQWUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9HLE9BQU8sRUFBbUIsU0FBUyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlGLE9BQU8sRUFBRSxlQUFlLEVBQTRCLFlBQVksRUFBRSxNQUFNLEVBQUUsYUFBYSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBR3RHLE9BQU8sRUFBb0IsbUJBQW1CLEVBQUUsTUFBTSw4REFBOEQsQ0FBQztBQUdySCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sa0VBQWtFLENBQUM7QUFDdkYsT0FBTyxFQUFFLGVBQWUsRUFBRSxTQUFTLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNoRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw4REFBOEQsQ0FBQztBQUNuRyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDNUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sd0RBQXdELENBQUM7QUFDN0YsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sZ0VBQWdFLENBQUM7QUFDdkcsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1B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Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxvQkFBb0I7c0JBQTVCLEtBQUs7Z0JBS0csYUFBYTtzQkFBckIsS0FBSztnQkFJRyxZQUFZO3NCQUFwQixLQUFLO2dCQUlHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFJRyxxQkFBcUI7c0JBQTdCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFFRyxZQUFZO3NCQUFwQixLQUFLO2dCQUdjLFNBQVM7c0JBQTVCLE1BQU07dUJBQUMsVUFBVTtnQkFDYyxhQUFhO3NCQUE1QyxTQUFTO3VCQUFDLG1CQUFtQjtnQkFDRSxhQUFhO3NCQUE1QyxTQUFTO3VCQUFDLG1CQUFtQjtnQkFTckIsWUFBWTtzQkFBcEIsS0FBSztnQkFFbUIsV0FBVztzQkFBbkMsS0FBSzt1QkFBQyxZQUFZO2dCQUlWLG9CQUFvQjtzQkFBNUIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIFZpZXdDaGlsZCwgVGVtcGxhdGVSZWYsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBGb3JtR3JvdXAsIEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb24sIGRlYm91bmNlVGltZSwgZmlsdGVyLCBsYXN0VmFsdWVGcm9tIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBVc2VyQWN0aXZpdHlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vUmV1c2FibGVzL3JldXNhYmxlLXBhZ2VzL3VzZXItYWN0aXZpdHkvdWEtZXh0cmFzL3VzZXItYWN0aXZpdHkuc2VydmljZSc7XG5pbXBvcnQgeyBVdGlsaXR5U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL1NlcnZpY2VzL3V0aWxpdHkuc2VydmljZSc7XG5pbXBvcnQgeyBJVGFibGVTZWFyY2hSZXNwLCBUYWJsZUh0dHBzQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vU2hhcmVkL2NvbXBvbmVudHMvdGFibGUtaHR0cHMvdGFibGUtaHR0cHMuY29tcG9uZW50JztcbmltcG9ydCB7IElGb3JtT3B0aW9ucyB9IGZyb20gJy4uLy4uLy4uL1NoYXJlZC9tb2RlbHMvZm9ybS1zY2hlbWEubW9kZWwnO1xuaW1wb3J0IHsgSU9iamVjdExpdGVyYWwsIElSb3dPcHRpb24sIElTdHJpY3RGb3JtR3JvdXAsIFNvcnRUeXBlLCBUYWJsZUNvbCB9IGZyb20gJy4uLy4uLy4uL1NoYXJlZC9tb2RlbHMvaW5kZXgubW9kZWwnO1xuaW1wb3J0IHsgRVVBIH0gZnJvbSAnLi4vLi4vcmV1c2FibGUtcGFnZXMvdXNlci1hY3Rpdml0eS91YS1leHRyYXMvdXNlci1hY3Rpdml0eS5tb2RlbCc7XG5pbXBvcnQgeyBGdW5jdGlvbkNhbGxlcjIsIFRvQW55UGlwZSB9IGZyb20gJy4uLy4uLy4uL1NoYXJlZC9waXBlcy91dGlsaXR5LnBpcGUnO1xuaW1wb3J0IHsgVGFibGVQbGFpbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL1NoYXJlZC9jb21wb25lbnRzL3RhYmxlLXBsYWluL3RhYmxlLXBsYWluLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCdG5Db21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9TaGFyZWQvY29tcG9uZW50cy9idG4vYnRuLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJbnB1dEJhc2ljQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vU2hhcmVkL2NvbXBvbmVudHMvaW5wdXQvaW5wdXQtYmFzaWMuY29tcG9uZW50JztcbmltcG9ydCB7IEF1dG9jb21wbGV0ZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL1NoYXJlZC9jb21wb25lbnRzL2F1dG9jb21wbGV0ZS9hdXRvY29tcGxldGUuY29tcG9uZW50JztcbmltcG9ydCB7IFZhbGlkYXRpb25NZXNzYWdlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vU2hhcmVkL2NvbXBvbmVudHMvaW5wdXQvdmFsaWRhdGlvbi1tZXNzYWdlL3ZhbGlkYXRpb24tbWVzc2FnZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgUGhvbmVOdW1iZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9TaGFyZWQvY29tcG9uZW50cy9waG9uZS1udW1iZXIvcGhvbmUtbnVtYmVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBOZ0lmLCBOZ0ZvciwgTmdTd2l0Y2gsIE5nU3dpdGNoQ2FzZSwgTmdTd2l0Y2hEZWZhdWx0LCBBc3luY1BpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTG9hZGVyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vU2hhcmVkL2NvbXBvbmVudHMvbG9hZGVyL2xvYWRlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgY2xvbmVEZWVwIH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IENvbmZpZyB9IGZyb20gJy4uLy4uLy4uL2NvbmZpZ3MvaW5kZXguY29uZmlnJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgQmFzZUZvcm1HZW5lcmF0b3IsIElCYXNlRm9ybVNjaGVtYSB9IGZyb20gJy4uLy4uLy4uL1NoYXJlZC9jb21wb25lbnRzL2Zvcm0tZ2VuZXJhdG9yL2Zvcm0tZ2VuZXJhdG9yLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1maW5kLWl0ZW0sZmluZC1pdGVtJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2ZpbmQtaXRlbS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2ZpbmQtaXRlbS5jb21wb25lbnQuc2NzcyddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgTG9hZGVyQ29tcG9uZW50LFxuICAgIE5nSWYsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgTmdGb3IsXG4gICAgTmdTd2l0Y2gsXG4gICAgTmdTd2l0Y2hDYXNlLFxuICAgIFBob25lTnVtYmVyQ29tcG9uZW50LFxuICAgIFZhbGlkYXRpb25NZXNzYWdlQ29tcG9uZW50LFxuICAgIEF1dG9jb21wbGV0ZUNvbXBvbmVudCxcbiAgICBOZ1N3aXRjaERlZmF1bHQsXG4gICAgSW5wdXRCYXNpY0NvbXBvbmVudCxcbiAgICBCdG5Db21wb25lbnQsXG4gICAgVGFibGVIdHRwc0NvbXBvbmVudCxcbiAgICBUYWJsZVBsYWluQ29tcG9uZW50LFxuICAgIEFzeW5jUGlwZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIEZ1bmN0aW9uQ2FsbGVyMixcbiAgICBUb0FueVBpcGUsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEZpbmRJdGVtQ29tcG9uZW50PFRRdWVyeSBleHRlbmRzIElPYmplY3RMaXRlcmFsID0gYW55LCBUUm93IGV4dGVuZHMgSU9iamVjdExpdGVyYWwgPSBhbnk+XG4gIGV4dGVuZHMgQmFzZUZvcm1HZW5lcmF0b3I8VFF1ZXJ5PlxuICBpbXBsZW1lbnRzIE9uSW5pdFxue1xuICAvKipcbiAgICogV2hldGhlciB0byBzb3J0IHNjaGVtYVxuICAgKi9cbiAgQElucHV0KCkgYXV0b0Zvcm1hdFNjaGVtYSA9IHRydWU7XG4gIEBJbnB1dCgpIGF1dG9PcmRlciA9IHRydWU7XG4gIEBJbnB1dCgpIGNlbnRlckNlbGxzOiBib29sZWFuO1xuICBASW5wdXQoKSBkaXNwbGF5ZWRDb2x1bW5zOiBUYWJsZUNvbFtdO1xuICAvKipcbiAgICogUm93IGdyaWQgY29uZmlndXJhdGlvblxuICAgKi9cbiAgQElucHV0KCkgZ3JpZENsYXNzID0gJ2NvbC1tZC00IGNvbC14eGwtMyc7XG4gIEBJbnB1dCgpIGhpZGVGb3JtID0gZmFsc2U7XG4gIEBJbnB1dCgpIGV4cGFuZGVkUm93VGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG4gIEBJbnB1dCgpIGlzVGFibGVQYWdpbmF0ZWQgPSBmYWxzZTtcbiAgQElucHV0KCkgaXNFeHBhbmRhYmxlID0gZmFsc2U7XG4gIEBJbnB1dCgpIGxhYmVsOiBzdHJpbmc7XG4gIEBJbnB1dCgpIG5vd3JhcCA9IGZhbHNlO1xuICBASW5wdXQoJ3Jvd09wdGlvbnMnKSBvcHRpb25zOiBJUm93T3B0aW9uW107XG4gIEBJbnB1dCgpIG9yZGVyRGlyZWN0aW9uOiBTb3J0VHlwZSA9ICdhc2MnO1xuICBASW5wdXQoKSBvcmRlckZpZWxkOiBrZXlvZiBUUm93O1xuICBASW5wdXQoKSBwYWdlU2l6ZSA9IDEwO1xuICBASW5wdXQoKSBzZWFyY2hGdW5jdGlvbjogKGRhdGE6IGFueSkgPT4gT2JzZXJ2YWJsZTxUUm93W10gfCB7IGNvbnRlbnQ6IFRSb3dbXSB9PjtcbiAgQElucHV0KCkgc2hvd0RhdGEgPSB0cnVlO1xuICBASW5wdXQoKSBzaG93RXhwb3J0ID0gdHJ1ZTtcbiAgQElucHV0KCkgc2hvd0ZpbHRlciA9IGZhbHNlO1xuICBASW5wdXQoKSBzaG93UmVmcmVzaEJ0bjogYm9vbGVhbjtcbiAgQElucHV0KCkgc3RhcnRTZWN0aW9uVGVtcGxhdGU6IFRlbXBsYXRlUmVmPEhUTUxFbGVtZW50PjtcbiAgZm9ybTogRm9ybUdyb3VwO1xuICAvKipcbiAgICogVXNlZCB0byBzcGVjaWZ5IGlmIHRoZSBzZWFyY2ggYnV0dG9uIHNob3VsZCBiZSBzaG93blxuICAgKi9cbiAgQElucHV0KCkgc2hvd1NlYXJjaEJ0biA9IHRydWU7XG4gIC8qKlxuICAgKiBVc2VkIHRvIHNwZWNpZnkgaWYgdGhlIGNsZWFyIGZvcm0gYnV0dG9uIHNob3VsZCBiZSBzaG93blxuICAgKi9cbiAgQElucHV0KCkgc2hvd0NsZWFyQnRuID0gdHJ1ZTtcbiAgLyoqXG4gICAqIFVzZWQgdG8gc3BlY2lmeSBpZiB2YWxpZGF0aW9uIG1lc3NhZ2VzIHNob3VsZCBiZSBzaG93blxuICAgKi9cbiAgQElucHV0KCkgc2hvd1ZhbGlkYXRpb25Nc2cgPSB0cnVlO1xuICAvKipcbiAgICogVXNlZCB0byBzcGVjaWZ5IGlmIHNob3cgYWRkaXRpb25hbCBjb2x1bW4gYnV0dG9uIHdpaWwgYmUgZGlzcGxheWVkIG9yIG5vdC5cbiAgICovXG4gIEBJbnB1dCgpIHNob3dBZGRpdGlvbmFsQ29sdW1ucyA9IHRydWU7XG4gIEBJbnB1dCgpIHNtYWxsZXJGb250cyA9IGZhbHNlO1xuICAvKiogVXNlIGNoZWNrYm94ZXMgKi9cbiAgQElucHV0KCkgdXNlU2VsZWN0aW9uID0gZmFsc2U7XG4gIGNlbGxPcHRpb25zOiBJRm9ybU9wdGlvbnMgPSB7fTtcbiAgY2VsbENvdW50cnlDb2RlM3M6IElGb3JtT3B0aW9ucyA9IHt9O1xuICBAT3V0cHV0KCdyb3dDbGljaycpIF9yb3dDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBAVmlld0NoaWxkKFRhYmxlSHR0cHNDb21wb25lbnQpIHRhYmxlSFRUUFNSRUY6IFRhYmxlSHR0cHNDb21wb25lbnQ8VFJvdz47XG4gIEBWaWV3Q2hpbGQoVGFibGVQbGFpbkNvbXBvbmVudCkgdGFibGVQbGFpblJlZjogVGFibGVQbGFpbkNvbXBvbmVudDxUUm93PjtcbiAgZGF0YTogVFJvd1tdO1xuICBvdmVycmlkZSBmb3JtU2NoZW1hID0gc2lnbmFsPElTZWFyY2hGb3JtU2NoZW1hPFRRdWVyeSwgVFJvdz5bXT4oW10pO1xuICBsb2FkaW5nOiBib29sZWFuO1xuICBzZWFyY2hGb3JtOiBGb3JtR3JvdXA7XG4gIHN0YW5kYWxvbmVGb3JtOiBGb3JtR3JvdXA7XG4gIC8qKlxuICAgKiBVc2VkIHRvIHNwZWNpZnkgaWYgc2hvdyBjcmVhdGUgYnV0dG9uIGlzIG5lZWRlZC5cbiAgICovXG4gIEBJbnB1dCgpIGNyZWF0ZUJ1dHRvbjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIEBJbnB1dCgnZm9ybVNjaGVtYScpIHNldCBfZm9ybVNjaGVtYSh2OiBJU2VhcmNoRm9ybVNjaGVtYTxUUXVlcnksIFRSb3c+W10pIHtcbiAgICB0aGlzLmluaXQoY2xvbmVEZWVwKHY/LmZpbHRlcigoeCkgPT4geCkpKTtcbiAgfVxuXG4gIEBJbnB1dCgpIHNlYXJjaE9ic2VydmFibGVGdW5jOiAoZGF0YTogYW55KSA9PiBPYnNlcnZhYmxlPElUYWJsZVNlYXJjaFJlc3A8VFJvdz4+O1xuICByZWFkb25seSBkZWxpbWl0ZXJGaWVsZCA9ICd+fn4nO1xuICByZWFkb25seSBkZWxpbWl0ZXJXb3JkID0gJ35+JztcbiAgcHJvdGVjdGVkIHN1YnM6IHsgZmllbGROYW1lOiBzdHJpbmc7IHN1YjogU3Vic2NyaXB0aW9uIH1bXSA9IFtdO1xuICBwcm90ZWN0ZWQgc2VhcmNoVHJpZ2dlciA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICBwcm90ZWN0ZWQgc3ViczIgPSB0aGlzLnVTLmNyZWF0ZVN1YnNjcmlwdGlvbk1hbmFnZXIoKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgdVM6IFV0aWxpdHlTZXJ2aWNlLFxuICAgIHB1YmxpYyB1YVM6IFVzZXJBY3Rpdml0eVNlcnZpY2UsXG4gICAgcHVibGljIHJvdXRlcjogUm91dGVyLFxuICAgIHB1YmxpYyByb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAvLyAgdGhpcy5mZXRjaFNhdmVkUXVlcnkoKVxuICAgIHRoaXMuc3ViczIucHVzaChcbiAgICAgIHRoaXMuc2VhcmNoVHJpZ2dlclxuICAgICAgICAucGlwZShcbiAgICAgICAgICBkZWJvdW5jZVRpbWUoMTAwKSxcbiAgICAgICAgICBmaWx0ZXIoKHgpID0+IHgpLFxuICAgICAgICApXG4gICAgICAgIC5zdWJzY3JpYmUoKHIpID0+IHtcbiAgICAgICAgICAvLyBkZWJ1Z2dlcjtcbiAgICAgICAgICB0aGlzLl9zZWFyY2goKTtcbiAgICAgICAgfSksXG4gICAgKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuc3Vicy5mb3JFYWNoKChzKSA9PiB7XG4gICAgICBzPy5zdWI/LnVuc3Vic2NyaWJlKCk7XG4gICAgfSk7XG4gICAgdGhpcy5zdWJzID0gW107XG4gICAgdGhpcy5zdWJzMj8uY2xlYXIoKTtcbiAgfVxuXG4gIGZldGNoU2F2ZWRRdWVyeSgpIHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcHJldlF1ZXJ5U3RyaW5nID0gdGhpcy5yb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtTWFwLmdldCgncScpO1xuICAgICAgaWYgKHByZXZRdWVyeVN0cmluZykge1xuICAgICAgICBjb25zdCBwcmV2UXVlcnk6IHsgW2Y6IHN0cmluZ106IGFueSB9ID0ge307XG4gICAgICAgIGNvbnN0IGZpZWxkcyA9IHByZXZRdWVyeVN0cmluZy5zcGxpdCh0aGlzLmRlbGltaXRlckZpZWxkKTtcbiAgICAgICAgZm9yIChjb25zdCBmaWVsZCBvZiBmaWVsZHMpIHtcbiAgICAgICAgICBjb25zdCBmID0gZmllbGQuc3BsaXQodGhpcy5kZWxpbWl0ZXJXb3JkKTtcbiAgICAgICAgICAvLyBkZWJ1Z2dlcjtcbiAgICAgICAgICBpZiAoZlsxXSA9PSBudWxsIHx8IGZbMV0gPT0gJ251bGwnKSBjb250aW51ZTtcbiAgICAgICAgICBwcmV2UXVlcnlbZlswXV0gPSBmWzFdO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc2VhcmNoRm9ybT8ucGF0Y2hWYWx1ZShwcmV2UXVlcnkpO1xuICAgICAgICBpZiAoT2JqZWN0LnZhbHVlcyhwcmV2UXVlcnkpLnNvbWUoKHgpID0+IHggIT0gbnVsbCkpIHRoaXMuc2VhcmNoKCk7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpO1xuICAgIH1cbiAgfVxuXG4gIGluaXQoc2NoZW1hOiBJU2VhcmNoRm9ybVNjaGVtYTxUUXVlcnksIFRSb3c+W10pIHtcbiAgICB0aGlzLm5nT25EZXN0cm95KCk7XG4gICAgaWYgKCFzY2hlbWE/Lmxlbmd0aCkge1xuICAgICAgdGhpcy5mb3JtU2NoZW1hLnNldChzY2hlbWEpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICAvLyBkZWJ1Z2dlcjtcbiAgICB0aGlzLmhhbmRsZUFsbFNjaGVtYShzY2hlbWEpO1xuICAgIGZvciAoY29uc3Qgc2NoZW1lIG9mIHRoaXMuZm9ybVNjaGVtYSgpKSB0aGlzLmhhbmRsZUZvcm1TY2hlbWUoc2NoZW1lKTtcbiAgICBmb3IgKGNvbnN0IHNjaGVtZSBvZiB0aGlzLmZvcm1TY2hlbWEoKSlcbiAgICAgIGlmIChzY2hlbWUudHJpZ2dlck9uQ2hhbmdlT25Jbml0KSBzY2hlbWUub25DaGFuZ2VGdW5jKHRoaXMuZm9ybS5nZXRSYXdWYWx1ZSgpLCB0aGlzLmZvcm0uZ2V0UmF3VmFsdWUoKVtzY2hlbWUuZmllbGRdLCB0aGlzKTtcbiAgfVxuXG4gIGhhbmRsZUFsbFNjaGVtYShzY2hlbWE6IElTZWFyY2hGb3JtU2NoZW1hPFRRdWVyeSwgVFJvdz5bXSkge1xuICAgIHNjaGVtYS5mb3JFYWNoKCh4KSA9PiAoeC50eXBlID0geC50eXBlIHx8ICd0ZXh0JykpO1xuICAgIGlmICh0aGlzLmF1dG9Gb3JtYXRTY2hlbWEgfHwgdGhpcy5hdXRvT3JkZXIpIHtcbiAgICAgIGlmICh0aGlzLmF1dG9Gb3JtYXRTY2hlbWEpIHtcbiAgICAgICAgc2NoZW1hXG4gICAgICAgICAgLmZpbHRlcigoeCkgPT4geC50eXBlID09ICdzZWxlY3QnKVxuICAgICAgICAgIC5mb3JFYWNoKCh4KSA9PiB7XG4gICAgICAgICAgICBpZiAoeC5vcHRpb25zPy5sZW5ndGggPiA1IHx8ICF4Lm9wdGlvbnMpIHgudHlwZSA9ICdhdXRvY29tcGxldGUnO1xuICAgICAgICAgIH0pO1xuICAgICAgICBzY2hlbWFcbiAgICAgICAgICAuZmlsdGVyKCh4KSA9PiB4LnR5cGUgPT0gJ2NoZWNrYm94JylcbiAgICAgICAgICAuZm9yRWFjaCgoeCkgPT4ge1xuICAgICAgICAgICAgeC50eXBlID0gJ3NlbGVjdCc7XG4gICAgICAgICAgICB4Lm9wdGlvbnMgPSBDb25maWcuYm9vbExpc3Q7XG4gICAgICAgICAgICB4LmxhYmVsRmllbGQgPSAndGl0bGUnO1xuICAgICAgICAgICAgeC52YWx1ZUZpZWxkID0gJ2NvZGUnO1xuICAgICAgICAgIH0pO1xuICAgICAgICB0aGlzLmZvcm1TY2hlbWEuc2V0KHNjaGVtYSk7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5hdXRvT3JkZXIpIHtcbiAgICAgICAgc2NoZW1hID0gc2NoZW1hLnNvcnQyKCdsYWJlbCcsIHRydWUpO1xuICAgICAgICB0aGlzLmZvcm1TY2hlbWEuc2V0KFtcbiAgICAgICAgICAuLi5zY2hlbWE/LmZpbHRlcigoeCkgPT4geC5hY3Rpb24gJiYgeC50eXBlICE9ICdjaGVja2JveCcpLFxuICAgICAgICAgIC4uLnNjaGVtYT8uZmlsdGVyKCh4KSA9PiAheC5hY3Rpb24gJiYgeC50eXBlICE9ICdjaGVja2JveCcpLFxuICAgICAgICAgIC4uLnNjaGVtYT8uZmlsdGVyKCh4KSA9PiB4LnR5cGUgPT0gJ2NoZWNrYm94JyksXG4gICAgICAgIF0pO1xuICAgICAgfVxuICAgIH0gZWxzZSB0aGlzLmZvcm1TY2hlbWEuc2V0KHNjaGVtYSk7XG4gICAgdGhpcy5zZWFyY2hGb3JtID0gbmV3IEZvcm1Hcm91cCh0aGlzLnVTLmZvcm1TY2hlbWFUb0Zvcm1Db250cm9sczxJU2VhcmNoRm9ybVNjaGVtYTxUUXVlcnksIFRSb3c+PihzY2hlbWEuZmlsdGVyKCh4KSA9PiAheC5zdGFuZGFsb25lKSkpO1xuICAgIHRoaXMuc3RhbmRhbG9uZUZvcm0gPSBuZXcgRm9ybUdyb3VwKHRoaXMudVMuZm9ybVNjaGVtYVRvRm9ybUNvbnRyb2xzPElTZWFyY2hGb3JtU2NoZW1hPFRRdWVyeSwgVFJvdz4+KHNjaGVtYS5maWx0ZXIoKHgpID0+IHguc3RhbmRhbG9uZSkpKTtcbiAgfVxuICBoYW5kbGVGb3JtU2NoZW1lKHNjaGVtZTogSVNlYXJjaEZvcm1TY2hlbWE8VFF1ZXJ5LCBUUm93Pikge1xuICAgIHNjaGVtZS5pZCA9IHRoaXMudVMuZ2VuZXJhdGVVVUlEKCk7XG5cbiAgICBpZiAoc2NoZW1lLm9wdGlvbnNJbml0RnVuYylcbiAgICAgIHNjaGVtZS5vcHRpb25zSW5pdEZ1bmMuc3Vic2NyaWJlKChyKSA9PiB7XG4gICAgICAgIHNjaGVtZS5vcHRpb25zID0gcjtcbiAgICAgICAgLy8gdGhpcy5vcHRpb25zTWFwW3NjaGVtZS5maWVsZF0gPSByO1xuICAgICAgfSk7XG4gICAgaWYgKHNjaGVtZS5vcHRpb25zSW5pdEZ1bmMyKVxuICAgICAgc2NoZW1lLm9wdGlvbnNJbml0RnVuYzIoKS5zdWJzY3JpYmUoKHIpID0+IHtcbiAgICAgICAgc2NoZW1lLm9wdGlvbnMgPSByO1xuICAgICAgICAvLyB0aGlzLm9wdGlvbnNNYXBbc2NoZW1lLmZpZWxkXSA9IHI7XG4gICAgICB9KTtcbiAgICBpZiAoc2NoZW1lLm9uQ2hhbmdlRnVuYykge1xuICAgICAgY29uc3Qgc3ViID0gdGhpcy5zZWFyY2hGb3JtPy5jb250cm9sc1tzY2hlbWUuZmllbGQ/LnRvU3RyaW5nKCldPy52YWx1ZUNoYW5nZXNcbiAgICAgICAgLnBpcGUoZGVib3VuY2VUaW1lKDApKVxuICAgICAgICAuc3Vic2NyaWJlKChyKSA9PiBzY2hlbWUub25DaGFuZ2VGdW5jKHRoaXMuc2VhcmNoRm9ybT8uZ2V0UmF3VmFsdWUoKSwgciwgdGhpcykpO1xuICAgICAgdGhpcy5zdWJzLnB1c2goeyBzdWI6IHN1YiwgZmllbGROYW1lOiBzY2hlbWUuZmllbGQ/LnRvU3RyaW5nKCkgfSk7XG4gICAgfVxuICAgIGlmIChzY2hlbWUuc3RhbmRhbG9uZSkgc2NoZW1lLmZvcm0gPSB0aGlzLnN0YW5kYWxvbmVGb3JtO1xuICAgIGVsc2Ugc2NoZW1lLmZvcm0gPSB0aGlzLnNlYXJjaEZvcm07XG4gIH1cbiAgZGV0YWNoRm9ybVNjaGVtZShzY2hlbWVJbmRleD86IG51bWJlciwgZmllbGROYW1lPzogc3RyaW5nKSB7XG4gICAgdGhpcy5zdWJzLmZpbmQoKHgpID0+IHguZmllbGROYW1lID09IHRoaXMuZm9ybVNjaGVtYVtzY2hlbWVJbmRleF0/LmZpZWxkIHx8IHguZmllbGROYW1lID09IGZpZWxkTmFtZSk/LnN1Yj8udW5zdWJzY3JpYmUoKTtcbiAgfVxuICBhbWVuZEZvcm1TY2hlbWUgPSAoZmllbGROYW1lOiBrZXlvZiBUUXVlcnksIGZvcm1TY2hlbWU6IFBhcnRpYWw8SVNlYXJjaEZvcm1TY2hlbWE8eyBbayBpbiBrZXlvZiBUUXVlcnldOiBBYnN0cmFjdENvbnRyb2w8YW55LCBhbnk+IHwgYW55IH0+PikgPT4ge1xuICAgIC8vIGRlYnVnZ2VyO1xuICAgIHRoaXMuZm9ybVNjaGVtYS51cGRhdGUoKGZvcm1TY2hlbWEpID0+IHtcbiAgICAgIGNvbnN0IGluZCA9IGZvcm1TY2hlbWEuZmluZEluZGV4KCh4KSA9PiB4LmZpZWxkID09IGZpZWxkTmFtZSk7XG4gICAgICBpZiAoaW5kID4gLTEpIHtcbiAgICAgICAgZm9ybVNjaGVtYVtpbmRdID0ge1xuICAgICAgICAgIC4uLmZvcm1TY2hlbWFbaW5kXSxcbiAgICAgICAgICAuLi4oZm9ybVNjaGVtZSBhcyBhbnkpLFxuICAgICAgICB9O1xuICAgICAgfVxuICAgICAgcmV0dXJuIGZvcm1TY2hlbWE7XG4gICAgfSk7XG4gIH07XG5cbiAgZ2V0IGFsbFNlYXJjaEZvcm1WYWx1ZSgpIHtcbiAgICByZXR1cm4geyAuLi50aGlzLnNlYXJjaEZvcm0/LnZhbHVlLCAuLi50aGlzLnN0YW5kYWxvbmVGb3JtLnZhbHVlIH07XG4gIH1cblxuICB0cmFja0J5Um93SUQgPSAoaW5kZXgsIGl0ZW0pID0+IHtcbiAgICByZXR1cm4gaXRlbT8udmFsdWU/Ll9fcm93SUQ7XG4gIH07XG5cbiAgY2xlYXJGaWx0ZXJzKCkge1xuICAgIHRoaXMuc2VhcmNoRm9ybT8ucmVzZXQoKTtcbiAgICB0aGlzLnNlYXJjaCgpO1xuICB9XG5cbiAgcmVmcmVzaCgpIHtcbiAgICB0aGlzLnNlYXJjaCgpO1xuICB9XG4gIHNlYXJjaCgpIHtcbiAgICB0aGlzLnNlYXJjaFRyaWdnZXIubmV4dCh0cnVlKTtcbiAgfVxuICBhc3luYyBfc2VhcmNoKCkge1xuICAgIC8vIGRlYnVnZ2VyO1xuICAgIGlmICghdGhpcy5zZWFyY2hGb3JtKSByZXR1cm47XG4gICAgY29uc3QgcmVxID0gdGhpcy51Uy5kZWxldGVOdWxsKGNsb25lRGVlcCh0aGlzLnNlYXJjaEZvcm0/LmdldFJhd1ZhbHVlKCkpKTtcbiAgICAvLyBkZWJ1Z2dlcjtcbiAgICBpZiAodGhpcy5pc1RhYmxlUGFnaW5hdGVkKSB7XG4gICAgICBpZiAoIXRoaXMuZGF0YSkgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcbiAgICAgIHRoaXMuZGF0YSA9IFtdO1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMudGFibGVIVFRQU1JFRj8uc2VhcmNoKHJlcSk7XG4gICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICAgICAgfSwgNTAwKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuc2VhcmNoRnVuY3Rpb24pIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHRoaXMubG9hZGluZyA9IHRydWU7XG4gICAgICAgIGNvbnN0IGRhdGEgPSBhd2FpdCBsYXN0VmFsdWVGcm9tKFxuICAgICAgICAgIHRoaXMuc2VhcmNoRnVuY3Rpb24oe1xuICAgICAgICAgICAgLi4ucmVxLFxuICAgICAgICAgICAgc29ydEJ5OiB0aGlzLm9yZGVyRmllbGQgfHwgJ2NyZWF0ZWRPbicsXG4gICAgICAgICAgICBzb3J0RGlyZWN0aW9uOiB0aGlzLm9yZGVyRGlyZWN0aW9uPy50b1VwcGVyQ2FzZSgpIHx8ICdERVNDJyxcbiAgICAgICAgICB9KSxcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5kYXRhID0gZGF0YT8uWydjb250ZW50J10gfHwgZGF0YTtcbiAgICAgICAgY29uc29sZS5sb2coZGF0YSk7XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBjb25zb2xlLmVycm9yKEVycm9yKTtcbiAgICAgIH1cbiAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICAgIH1cbiAgICB0cnkge1xuICAgICAgdGhpcy51YVMuYWRkKHtcbiAgICAgICAgY29kZTogRVVBLnNlYXJjaGVkLFxuICAgICAgICBhY3Rpdml0eURlc2NyaXB0aW9uOiB0aGlzLmxhYmVsICsgJyAnICsgSlNPTi5zdHJpbmdpZnkocmVxKSxcbiAgICAgIH0pO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBkZWJ1Z2dlcjtcbiAgICB9XG4gIH1cblxuICBzYXZlUXVlcnkocXVlcnkgPSB0aGlzLnNlYXJjaEZvcm0/LnZhbHVlKSB7XG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW10sIHtcbiAgICAgIHF1ZXJ5UGFyYW1zOiB7XG4gICAgICAgIHE6IE9iamVjdC5rZXlzKHF1ZXJ5KVxuICAgICAgICAgIC5maWx0ZXIoKHgpID0+IHF1ZXJ5W3hdICE9IG51bGwpXG4gICAgICAgICAgLm1hcCgoaykgPT4gYCR7a30ke3RoaXMuZGVsaW1pdGVyV29yZH0ke3F1ZXJ5W2tdfWApXG4gICAgICAgICAgLmpvaW4odGhpcy5kZWxpbWl0ZXJGaWVsZCksXG4gICAgICB9LFxuICAgICAgcmVwbGFjZVVybDogdHJ1ZSxcbiAgICAgIHJlbGF0aXZlVG86IHRoaXMucm91dGUsXG4gICAgICBxdWVyeVBhcmFtc0hhbmRsaW5nOiAnbWVyZ2UnLFxuICAgIH0pO1xuICB9XG4gIHJvd0NsaWNrKGUpIHtcbiAgICB0aGlzLl9yb3dDbGljay5lbWl0KGUpO1xuICB9XG5cbiAgZ2V0IHNlbGVjdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy50YWJsZUhUVFBTUkVGPy5zZWxlY3RlZEl0ZW1zIHx8IHRoaXMudGFibGVQbGFpblJlZj8uc2VsZWN0ZWRJdGVtcztcbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIElTZWFyY2hGb3JtU2NoZW1hPFRRdWVyeSBleHRlbmRzIElPYmplY3RMaXRlcmFsID0gYW55LCBUUm93IGV4dGVuZHMgSU9iamVjdExpdGVyYWwgPSBhbnk+XG4gIGV4dGVuZHMgSUJhc2VGb3JtU2NoZW1hPFxuICAgIFRRdWVyeSxcbiAgICBGaW5kSXRlbUNvbXBvbmVudDxUUXVlcnksIFRSb3c+LFxuICAgIHtcbiAgICAgIFtLIGluIGtleW9mIFRRdWVyeV06IEFic3RyYWN0Q29udHJvbDxhbnksIGFueT47XG4gICAgfVxuICA+IHtcbiAgc3RhbmRhbG9uZT86IGJvb2xlYW47XG4gIGFjdGlvbj86IChyb3c6IGFueSwgY2VsbDogYW55LCBmb3JtPzogRm9ybUdyb3VwPElTdHJpY3RGb3JtR3JvdXA8VFF1ZXJ5Pj4pID0+IGFueTtcbn1cbiIsIjxsb2FkZXIgW2xvYWRpbmddPVwibG9hZGluZ1wiPlxuICBAaWYgKCFoaWRlRm9ybSAmJiBzZWFyY2hGb3JtKSB7XG4gICAgPGZvcm0gW2Zvcm1Hcm91cF09XCJzZWFyY2hGb3JtXCIgKG5nU3VibWl0KT1cInNlYXJjaCgpXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwicm93IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxuICAgICAgICBAZm9yIChzY2hlbWUgb2YgZm9ybVNjaGVtYSgpOyB0cmFjayBzY2hlbWUpIHtcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwie3sgZ3JpZENsYXNzIH19IFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBhbGlnbi1pdGVtcy1lbmRcIj5cbiAgICAgICAgICAgICAgQHN3aXRjaCAodHJ1ZSkge1xuICAgICAgICAgICAgICAgIEBjYXNlIChzY2hlbWUudHlwZSA9PSAndGVsJykge1xuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbFwiPlxuICAgICAgICAgICAgICAgICAgICA8YXBwLXBob25lLW51bWJlclxuICAgICAgICAgICAgICAgICAgICAgIFtmb3JtXT1cInNjaGVtZS5mb3JtXCJcbiAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwic2NoZW1lLmxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgICBbbmFtZV09XCJzY2hlbWUuZmllbGRcIlxuICAgICAgICAgICAgICAgICAgICAgIFtzaG93TGFiZWxdPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgICAgICAgIFtzaG93VmFsaWRhdGlvbl09XCJzY2hlbWUuc2hvd1ZhbGlkYXRpb25cIlxuICAgICAgICAgICAgICAgICAgICAgIFtzaG93VmFsaWRhdGlvbkljb25dPVwic2NoZW1lLnNob3dWYWxpZGF0aW9uSWNvblwiXG4gICAgICAgICAgICAgICAgICAgICAgW2NvdW50cnlDb2RlM109XCJjZWxsQ291bnRyeUNvZGUzc1tzY2hlbWUuZ2V0Q291bnRyeUNvZGUzS2V5XSB8fCBzY2hlbWUuY291bnRyeUNvZGUzXCJcbiAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwic2NoZW1lLmRpc2FibGVkSWYgfCBmdW5jdGlvbkNhbGxlcjI6IHNlYXJjaEZvcm0udmFsdWUgOiAoc2NoZW1lLmZpZWxkIHwgdG9BbnkpXCJcbiAgICAgICAgICAgICAgICAgICAgICAjaW5wdXRUYWcgLz5cbiAgICAgICAgICAgICAgICAgICAgQGlmIChzaG93VmFsaWRhdGlvbk1zZykge1xuICAgICAgICAgICAgICAgICAgICAgIDxhcHAtdmFsaWRhdGlvbi1tZXNzYWdlIFtpbnB1dF09XCJpbnB1dFRhZ1wiIC8+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBAY2FzZSAoc2NoZW1lLnR5cGUgPT0gJ2F1dG9jb21wbGV0ZScpIHtcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2xcIj5cbiAgICAgICAgICAgICAgICAgICAgPGFwcC1hdXRvY29tcGxldGVcbiAgICAgICAgICAgICAgICAgICAgICBbZm9ybV09XCJzY2hlbWUuZm9ybVwiXG4gICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cInNjaGVtZS5sYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgICAgW2xhYmVsRmllbGRdPVwic2NoZW1lLmxhYmVsRmllbGRcIlxuICAgICAgICAgICAgICAgICAgICAgIFthdXRvUGlja1ZhbHVlRmllbGRdPVwic2NoZW1lLmF1dG9QaWNrVmFsdWVGaWVsZFwiXG4gICAgICAgICAgICAgICAgICAgICAgW2xhYmVsVHlwZV09XCJzY2hlbWUubGFiZWxUeXBlIHwgdG9BbnlcIlxuICAgICAgICAgICAgICAgICAgICAgIFtvcHRpb25zRnVuY109XCJzY2hlbWUub3B0aW9uc0Z1bmNcIlxuICAgICAgICAgICAgICAgICAgICAgIFtuYW1lXT1cInNjaGVtZS5maWVsZFwiXG4gICAgICAgICAgICAgICAgICAgICAgW29wdGlvbkZvcm1hdHRlcl09XCJzY2hlbWUub3B0aW9uRm9ybWF0dGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICBbdmFsdWVGaWVsZF09XCJzY2hlbWUudmFsdWVGaWVsZFwiXG4gICAgICAgICAgICAgICAgICAgICAgW29wdGlvbnNdPVwic2NoZW1lLm9wdGlvbnMgfHwgY2VsbE9wdGlvbnNbc2NoZW1lLmZpZWxkIHwgdG9BbnldXCJcbiAgICAgICAgICAgICAgICAgICAgICBbaGludF09XCJzY2hlbWUuaGludFwiXG4gICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cInNjaGVtZS5kaXNhYmxlZElmIHwgZnVuY3Rpb25DYWxsZXIyOiBzZWFyY2hGb3JtLnZhbHVlIDogKHNjaGVtZS5maWVsZCB8IHRvQW55KVwiXG4gICAgICAgICAgICAgICAgICAgICAgI2lucHV0VGFnIC8+XG4gICAgICAgICAgICAgICAgICAgIEBpZiAoc2hvd1ZhbGlkYXRpb25Nc2cpIHtcbiAgICAgICAgICAgICAgICAgICAgICA8YXBwLXZhbGlkYXRpb24tbWVzc2FnZSBbaW5wdXRdPVwiaW5wdXRUYWdcIiAvPlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgQGRlZmF1bHQge1xuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbFwiPlxuICAgICAgICAgICAgICAgICAgICA8Zm9ybT5cbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ3gtMiByb3cgYWxpZ24taXRlbXMtZW5kXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxhcHAtaW5wdXQtYmFzaWNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAjZm9ybUZpZWxkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW25hbWVdPVwic2NoZW1lLmZpZWxkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZm9ybV09XCJzY2hlbWUuZm9ybVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3R5cGVdPVwic2NoZW1lLnR5cGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdXRvUGlja1ZhbHVlRmllbGRdPVwic2NoZW1lLmF1dG9QaWNrVmFsdWVGaWVsZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlRmllbGRdPVwic2NoZW1lLnZhbHVlRmllbGRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbFR5cGVdPVwic2NoZW1lLmxhYmVsVHlwZSB8IHRvQW55XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2hlY2tlZF09XCJzY2hlbWUuY2hlY2tlZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3Nob3dWYWxpZGF0aW9uXT1cIiEhc2NoZW1lLmFzeW5jVmFsaWRhdG9yc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3Nob3dWYWxpZGF0aW9uSWNvbl09XCIhIXNjaGVtZS5hc3luY1ZhbGlkYXRvcnNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtub0Zvcm1hdF09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxGaWVsZF09XCJzY2hlbWUubGFiZWxGaWVsZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW29wdGlvbkZvcm1hdHRlcl09XCJzY2hlbWUub3B0aW9uRm9ybWF0dGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbb3B0aW9uc109XCJzY2hlbWUub3B0aW9ucyB8fCBjZWxsT3B0aW9uc1tzY2hlbWUuZmllbGQgfCB0b0FueV1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkZWNpbWFsUG9pbnRzXT1cInNjaGVtZS5kZWNpbWFsUG9pbnRzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaGludF09XCJzY2hlbWUuaGludFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW21heF09XCJzY2hlbWUubWF4XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbWluXT1cInNjaGVtZS5taW5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJzY2hlbWUucGxhY2Vob2xkZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCJzY2hlbWUubGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJzY2hlbWUuZGlzYWJsZWRJZiB8IGZ1bmN0aW9uQ2FsbGVyMjogc2VhcmNoRm9ybS52YWx1ZSA6IChzY2hlbWUuZmllbGQgfCB0b0FueSlcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICBAaWYgKHNjaGVtZS5zdGFuZGFsb25lICYmIHNjaGVtZS5hY3Rpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1hdXRvXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFwcC1idG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyb3VwPVwic2hvd1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiIWZvcm1GaWVsZD8udmFsaWRTaWduYWwoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3Rpb25UeXBlPVwic3VibWl0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtY2xpY2spPVwic2NoZW1lLmFjdGlvbihhbGxTZWFyY2hGb3JtVmFsdWUsIGZvcm1GaWVsZC52YWx1ZVNpZ25hbCgpLCBzZWFyY2hGb3JtKVwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChzY2hlbWUuYWN0aW9uICYmICFzY2hlbWUuc3RhbmRhbG9uZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWF1dG9cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YXBwLWJ0blxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2ljb25dPVwic2NoZW1lLmljb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2ljb25CdG5dPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3Rpb25UeXBlPVwic3VibWl0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtY2xpY2spPVwic2NoZW1lLmFjdGlvbihhbGxTZWFyY2hGb3JtVmFsdWUsIGZvcm1GaWVsZC52YWx1ZVNpZ25hbCgpLCBzZWFyY2hGb3JtKVwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Zvcm0+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIEBpZiAoc2hvd1ZhbGlkYXRpb25Nc2cpIHtcbiAgICAgICAgICAgICAgICAgICAgPGFwcC12YWxpZGF0aW9uLW1lc3NhZ2UgW2lucHV0XT1cImZvcm1GaWVsZFwiIC8+XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kIGp1c3RpZnktY29udGVudC1lbmQgZC1mbGV4XCI+XG4gICAgICAgICAgQGlmIChzaG93Q2xlYXJCdG4pIHtcbiAgICAgICAgICAgIDxhcHAtYnRuIHR5cGU9XCJkYW5nZXItb3V0bGluZVwiIHRleHQ9XCJDbGVhclwiIGljb249XCJkZWxldGVcIiAobWNsaWNrKT1cImNsZWFyRmlsdGVycygpXCIgLz5cbiAgICAgICAgICB9XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJteC0xXCI+PC9zcGFuPlxuICAgICAgICAgIEBpZiAoc2hvd1NlYXJjaEJ0bikge1xuICAgICAgICAgICAgPGFwcC1idG5cbiAgICAgICAgICAgICAgW2dyb3VwXT1cIidzZWFyY2gnXCJcbiAgICAgICAgICAgICAgW2ljb25CdG5dPVwidHJ1ZVwiXG4gICAgICAgICAgICAgIHRleHQ9XCJTZWFyY2hcIlxuICAgICAgICAgICAgICBhY3Rpb25UeXBlPVwic3VibWl0XCJcbiAgICAgICAgICAgICAgW2V4Y2x1ZGVMb2dnaW5nXT1cInRydWVcIlxuICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiIXNlYXJjaEZ1bmN0aW9uICYmICFpc1RhYmxlUGFnaW5hdGVkXCJcbiAgICAgICAgICAgICAgKG1jbGljayk9XCJzZWFyY2goKVwiIC8+XG4gICAgICAgICAgfVxuICAgICAgICAgIEBpZiAoY3JlYXRlQnV0dG9uKSB7XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm14LTFcIj48L3NwYW4+XG4gICAgICAgICAgICA8YXBwLWJ0biB0eXBlPVwib3V0bGluZVwiIHRleHQ9XCJDcmVhdGVcIiBpY29uPVwiYWRkXCIgcm91dGVyTGluaz1cIi4uL2NyZWF0ZVwiIC8+XG4gICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZm9ybT5cbiAgfVxuXG4gIDxuZy1jb250ZW50IHNlbGVjdD1cIlt0YWJsZVBhbmVsXVwiPjwvbmctY29udGVudD5cblxuICBAaWYgKGRpc3BsYXllZENvbHVtbnM/Lmxlbmd0aCkge1xuICAgIDxkaXYgY2xhc3M9XCJtdC0zXCIgW2hpZGRlbl09XCIhc2hvd0RhdGEgfHwgKCFkYXRhICYmICFpc1RhYmxlUGFnaW5hdGVkKVwiPlxuICAgICAgPG5nLWNvbnRhaW5lcj5cbiAgICAgICAgQGlmIChpc1RhYmxlUGFnaW5hdGVkKSB7XG4gICAgICAgICAgPHRhYmxlLWh0dHBzXG4gICAgICAgICAgICAjdGFibGVIVFRQU1xuICAgICAgICAgICAgW2Rpc3BsYXllZENvbHVtbnNdPVwiZGlzcGxheWVkQ29sdW1uc1wiXG4gICAgICAgICAgICBbc2hvd0V4cG9ydF09XCJzaG93RXhwb3J0XCJcbiAgICAgICAgICAgIFtzdGFydFNlY3Rpb25UZW1wbGF0ZV09XCJzdGFydFNlY3Rpb25UZW1wbGF0ZVwiXG4gICAgICAgICAgICBbdXNlU2VsZWN0aW9uXT1cInVzZVNlbGVjdGlvblwiXG4gICAgICAgICAgICBbc2hvd1JlZnJlc2hCdG5dPVwic2hvd1JlZnJlc2hCdG5cIlxuICAgICAgICAgICAgW29ic2VydmFibGVGdW5jXT1cInNlYXJjaE9ic2VydmFibGVGdW5jXCJcbiAgICAgICAgICAgIG5vSXRlbVR4dD1cIk5vIHJlc3VsdHMgZm91bmRcIlxuICAgICAgICAgICAgW2lzRXhwYW5kYWJsZV09XCJpc0V4cGFuZGFibGVcIlxuICAgICAgICAgICAgW2V4cGFuZGVkUm93VGVtcGxhdGVdPVwiZXhwYW5kZWRSb3dUZW1wbGF0ZVwiXG4gICAgICAgICAgICBbY2VudGVyQ2VsbHNdPVwiY2VudGVyQ2VsbHNcIlxuICAgICAgICAgICAgW3NtYWxsZXJGb250c109XCJzbWFsbGVyRm9udHNcIlxuICAgICAgICAgICAgW25vd3JhcF09XCJub3dyYXBcIlxuICAgICAgICAgICAgW3BhZ2VTaXplXT1cInBhZ2VTaXplXCJcbiAgICAgICAgICAgIFtsYWJlbF09XCJsYWJlbFwiXG4gICAgICAgICAgICBbc2hvd0FkZGl0aW9uYWxDb2x1bW5zXT1cInNob3dBZGRpdGlvbmFsQ29sdW1uc1wiXG4gICAgICAgICAgICBbb3JkZXJGaWVsZF09XCJvcmRlckZpZWxkXCJcbiAgICAgICAgICAgIFtyb3dPcHRpb25zXT1cIm9wdGlvbnNcIlxuICAgICAgICAgICAgW29yZGVyRGlyZWN0aW9uXT1cIm9yZGVyRGlyZWN0aW9uXCJcbiAgICAgICAgICAgIChyb3dDbGljayk9XCJyb3dDbGljaygkZXZlbnQpXCIgLz5cbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgPHRhYmxlLXBsYWluXG4gICAgICAgICAgICBbZGlzdGluY3RdPVwidHJ1ZVwiXG4gICAgICAgICAgICBbc2hvd1BhZ2VyXT1cInRydWVcIlxuICAgICAgICAgICAgW3BhZ2VTaXplXT1cInBhZ2VTaXplXCJcbiAgICAgICAgICAgIFtjZW50ZXJDZWxsc109XCJmYWxzZVwiXG4gICAgICAgICAgICBbc3RhcnRTZWN0aW9uVGVtcGxhdGVdPVwic3RhcnRTZWN0aW9uVGVtcGxhdGVcIlxuICAgICAgICAgICAgW3NtYWxsZXJGb250c109XCJzbWFsbGVyRm9udHNcIlxuICAgICAgICAgICAgW25vd3JhcF09XCJub3dyYXBcIlxuICAgICAgICAgICAgW3Nob3dGaWx0ZXJdPVwic2hvd0ZpbHRlclwiXG4gICAgICAgICAgICBbc2hvd0V4cG9ydF09XCJzaG93RXhwb3J0XCJcbiAgICAgICAgICAgIFtpc0V4cGFuZGFibGVdPVwiaXNFeHBhbmRhYmxlXCJcbiAgICAgICAgICAgIFtleHBhbmRlZFJvd1RlbXBsYXRlXT1cImV4cGFuZGVkUm93VGVtcGxhdGVcIlxuICAgICAgICAgICAgW2xhYmVsXT1cImxhYmVsXCJcbiAgICAgICAgICAgIG5vSXRlbVR4dD1cIk5vIHJlc3VsdHMgZm91bmRcIlxuICAgICAgICAgICAgKHJvd0NsaWNrKT1cInJvd0NsaWNrKCRldmVudClcIlxuICAgICAgICAgICAgW29yZGVyRmllbGRdPVwib3JkZXJGaWVsZFwiXG4gICAgICAgICAgICBbcm93T3B0aW9uc109XCJvcHRpb25zXCJcbiAgICAgICAgICAgIFtzaG93QWRkaXRpb25hbENvbHVtbnNdPVwic2hvd0FkZGl0aW9uYWxDb2x1bW5zXCJcbiAgICAgICAgICAgIFtvcmRlckRpcmVjdGlvbl09XCJvcmRlckRpcmVjdGlvblwiXG4gICAgICAgICAgICBbZGlzcGxheWVkQ29sdW1uc109XCJkaXNwbGF5ZWRDb2x1bW5zXCJcbiAgICAgICAgICAgIFtkYXRhXT1cImRhdGFcIiAvPlxuICAgICAgICB9XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbiAgfVxuPC9sb2FkZXI+XG4iXX0=
382
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmluZC1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V0cy1mZS1uZy1zZGsvc3JjL2xpYi9SZXVzYWJsZXMvcmV1c2FibGUtY29tcHMvZmluZC1pdGVtL2ZpbmQtaXRlbS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ldHMtZmUtbmctc2RrL3NyYy9saWIvUmV1c2FibGVzL3JldXNhYmxlLWNvbXBzL2ZpbmQtaXRlbS9maW5kLWl0ZW0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQWUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9HLE9BQU8sRUFBbUIsU0FBUyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlGLE9BQU8sRUFBRSxlQUFlLEVBQTRCLFlBQVksRUFBRSxNQUFNLEVBQUUsYUFBYSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBR3RHLE9BQU8sRUFBb0IsbUJBQW1CLEVBQUUsTUFBTSw4REFBOEQsQ0FBQztBQUdySCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sa0VBQWtFLENBQUM7QUFDdkYsT0FBTyxFQUFFLGVBQWUsRUFBRSxTQUFTLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNoRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw4REFBOEQsQ0FBQztBQUNuRyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDNUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sd0RBQXdELENBQUM7QUFDN0YsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sZ0VBQWdFLENBQUM7QUFDdkcsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1B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Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxvQkFBb0I7c0JBQTVCLEtBQUs7Z0JBS0csYUFBYTtzQkFBckIsS0FBSztnQkFJRyxZQUFZO3NCQUFwQixLQUFLO2dCQUlHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFJRyxxQkFBcUI7c0JBQTdCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFFRyxZQUFZO3NCQUFwQixLQUFLO2dCQUdjLFNBQVM7c0JBQTVCLE1BQU07dUJBQUMsVUFBVTtnQkFDYyxhQUFhO3NCQUE1QyxTQUFTO3VCQUFDLG1CQUFtQjtnQkFDRSxhQUFhO3NCQUE1QyxTQUFTO3VCQUFDLG1CQUFtQjtnQkFTckIsWUFBWTtzQkFBcEIsS0FBSztnQkFFbUIsV0FBVztzQkFBbkMsS0FBSzt1QkFBQyxZQUFZO2dCQUlWLG9CQUFvQjtzQkFBNUIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIFZpZXdDaGlsZCwgVGVtcGxhdGVSZWYsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBGb3JtR3JvdXAsIEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb24sIGRlYm91bmNlVGltZSwgZmlsdGVyLCBsYXN0VmFsdWVGcm9tIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBVc2VyQWN0aXZpdHlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vUmV1c2FibGVzL3JldXNhYmxlLXBhZ2VzL3VzZXItYWN0aXZpdHkvdWEtZXh0cmFzL3VzZXItYWN0aXZpdHkuc2VydmljZSc7XG5pbXBvcnQgeyBVdGlsaXR5U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL1NlcnZpY2VzL3V0aWxpdHkuc2VydmljZSc7XG5pbXBvcnQgeyBJVGFibGVTZWFyY2hSZXNwLCBUYWJsZUh0dHBzQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vU2hhcmVkL2NvbXBvbmVudHMvdGFibGUtaHR0cHMvdGFibGUtaHR0cHMuY29tcG9uZW50JztcbmltcG9ydCB7IElGb3JtT3B0aW9ucyB9IGZyb20gJy4uLy4uLy4uL1NoYXJlZC9tb2RlbHMvZm9ybS1zY2hlbWEubW9kZWwnO1xuaW1wb3J0IHsgSU9iamVjdExpdGVyYWwsIElSb3dPcHRpb24sIElTdHJpY3RGb3JtR3JvdXAsIFNvcnRUeXBlLCBUYWJsZUNvbCB9IGZyb20gJy4uLy4uLy4uL1NoYXJlZC9tb2RlbHMvaW5kZXgubW9kZWwnO1xuaW1wb3J0IHsgRVVBIH0gZnJvbSAnLi4vLi4vcmV1c2FibGUtcGFnZXMvdXNlci1hY3Rpdml0eS91YS1leHRyYXMvdXNlci1hY3Rpdml0eS5tb2RlbCc7XG5pbXBvcnQgeyBGdW5jdGlvbkNhbGxlcjIsIFRvQW55UGlwZSB9IGZyb20gJy4uLy4uLy4uL1NoYXJlZC9waXBlcy91dGlsaXR5LnBpcGUnO1xuaW1wb3J0IHsgVGFibGVQbGFpbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL1NoYXJlZC9jb21wb25lbnRzL3RhYmxlLXBsYWluL3RhYmxlLXBsYWluLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCdG5Db21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9TaGFyZWQvY29tcG9uZW50cy9idG4vYnRuLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJbnB1dEJhc2ljQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vU2hhcmVkL2NvbXBvbmVudHMvaW5wdXQvaW5wdXQtYmFzaWMuY29tcG9uZW50JztcbmltcG9ydCB7IEF1dG9jb21wbGV0ZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL1NoYXJlZC9jb21wb25lbnRzL2F1dG9jb21wbGV0ZS9hdXRvY29tcGxldGUuY29tcG9uZW50JztcbmltcG9ydCB7IFZhbGlkYXRpb25NZXNzYWdlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vU2hhcmVkL2NvbXBvbmVudHMvaW5wdXQvdmFsaWRhdGlvbi1tZXNzYWdlL3ZhbGlkYXRpb24tbWVzc2FnZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgUGhvbmVOdW1iZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9TaGFyZWQvY29tcG9uZW50cy9waG9uZS1udW1iZXIvcGhvbmUtbnVtYmVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBOZ0lmLCBOZ0ZvciwgTmdTd2l0Y2gsIE5nU3dpdGNoQ2FzZSwgTmdTd2l0Y2hEZWZhdWx0LCBBc3luY1BpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTG9hZGVyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vU2hhcmVkL2NvbXBvbmVudHMvbG9hZGVyL2xvYWRlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgY2xvbmVEZWVwIH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IENvbmZpZyB9IGZyb20gJy4uLy4uLy4uL2NvbmZpZ3MvaW5kZXguY29uZmlnJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgQmFzZUZvcm1HZW5lcmF0b3IsIElCYXNlRm9ybVNjaGVtYSB9IGZyb20gJy4uLy4uLy4uL1NoYXJlZC9jb21wb25lbnRzL2Zvcm0tZ2VuZXJhdG9yL2Zvcm0tZ2VuZXJhdG9yLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1maW5kLWl0ZW0sZmluZC1pdGVtJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2ZpbmQtaXRlbS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2ZpbmQtaXRlbS5jb21wb25lbnQuc2NzcyddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgTG9hZGVyQ29tcG9uZW50LFxuICAgIE5nSWYsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgTmdGb3IsXG4gICAgTmdTd2l0Y2gsXG4gICAgTmdTd2l0Y2hDYXNlLFxuICAgIFBob25lTnVtYmVyQ29tcG9uZW50LFxuICAgIFZhbGlkYXRpb25NZXNzYWdlQ29tcG9uZW50LFxuICAgIEF1dG9jb21wbGV0ZUNvbXBvbmVudCxcbiAgICBOZ1N3aXRjaERlZmF1bHQsXG4gICAgSW5wdXRCYXNpY0NvbXBvbmVudCxcbiAgICBCdG5Db21wb25lbnQsXG4gICAgVGFibGVIdHRwc0NvbXBvbmVudCxcbiAgICBUYWJsZVBsYWluQ29tcG9uZW50LFxuICAgIEFzeW5jUGlwZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIEZ1bmN0aW9uQ2FsbGVyMixcbiAgICBUb0FueVBpcGUsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEZpbmRJdGVtQ29tcG9uZW50PFRRdWVyeSBleHRlbmRzIElPYmplY3RMaXRlcmFsID0gYW55LCBUUm93IGV4dGVuZHMgSU9iamVjdExpdGVyYWwgPSBhbnk+XG4gIGV4dGVuZHMgQmFzZUZvcm1HZW5lcmF0b3I8VFF1ZXJ5PlxuICBpbXBsZW1lbnRzIE9uSW5pdFxue1xuICAvKipcbiAgICogV2hldGhlciB0byBzb3J0IHNjaGVtYVxuICAgKi9cbiAgQElucHV0KCkgYXV0b0Zvcm1hdFNjaGVtYSA9IHRydWU7XG4gIEBJbnB1dCgpIGF1dG9PcmRlciA9IHRydWU7XG4gIEBJbnB1dCgpIGNlbnRlckNlbGxzOiBib29sZWFuO1xuICBASW5wdXQoKSBkaXNwbGF5ZWRDb2x1bW5zOiBUYWJsZUNvbFtdO1xuICAvKipcbiAgICogUm93IGdyaWQgY29uZmlndXJhdGlvblxuICAgKi9cbiAgQElucHV0KCkgZ3JpZENsYXNzID0gJ2NvbC1tZC00IGNvbC14eGwtMyc7XG4gIEBJbnB1dCgpIGhpZGVGb3JtID0gZmFsc2U7XG4gIEBJbnB1dCgpIGV4cGFuZGVkUm93VGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG4gIEBJbnB1dCgpIGlzVGFibGVQYWdpbmF0ZWQgPSBmYWxzZTtcbiAgQElucHV0KCkgaXNFeHBhbmRhYmxlID0gZmFsc2U7XG4gIEBJbnB1dCgpIGxhYmVsOiBzdHJpbmc7XG4gIEBJbnB1dCgpIG5vd3JhcCA9IGZhbHNlO1xuICBASW5wdXQoJ3Jvd09wdGlvbnMnKSBvcHRpb25zOiBJUm93T3B0aW9uW107XG4gIEBJbnB1dCgpIG9yZGVyRGlyZWN0aW9uOiBTb3J0VHlwZSA9ICdhc2MnO1xuICBASW5wdXQoKSBvcmRlckZpZWxkOiBrZXlvZiBUUm93O1xuICBASW5wdXQoKSBwYWdlU2l6ZSA9IDEwO1xuICBASW5wdXQoKSBzZWFyY2hGdW5jdGlvbjogKGRhdGE6IGFueSkgPT4gT2JzZXJ2YWJsZTxUUm93W10gfCB7IGNvbnRlbnQ6IFRSb3dbXSB9PjtcbiAgQElucHV0KCkgc2hvd0RhdGEgPSB0cnVlO1xuICBASW5wdXQoKSBzaG93RXhwb3J0ID0gdHJ1ZTtcbiAgQElucHV0KCkgc2hvd0ZpbHRlciA9IGZhbHNlO1xuICBASW5wdXQoKSBzaG93UmVmcmVzaEJ0bjogYm9vbGVhbjtcbiAgQElucHV0KCkgc3RhcnRTZWN0aW9uVGVtcGxhdGU6IFRlbXBsYXRlUmVmPEhUTUxFbGVtZW50PjtcbiAgZm9ybTogRm9ybUdyb3VwO1xuICAvKipcbiAgICogVXNlZCB0byBzcGVjaWZ5IGlmIHRoZSBzZWFyY2ggYnV0dG9uIHNob3VsZCBiZSBzaG93blxuICAgKi9cbiAgQElucHV0KCkgc2hvd1NlYXJjaEJ0biA9IHRydWU7XG4gIC8qKlxuICAgKiBVc2VkIHRvIHNwZWNpZnkgaWYgdGhlIGNsZWFyIGZvcm0gYnV0dG9uIHNob3VsZCBiZSBzaG93blxuICAgKi9cbiAgQElucHV0KCkgc2hvd0NsZWFyQnRuID0gdHJ1ZTtcbiAgLyoqXG4gICAqIFVzZWQgdG8gc3BlY2lmeSBpZiB2YWxpZGF0aW9uIG1lc3NhZ2VzIHNob3VsZCBiZSBzaG93blxuICAgKi9cbiAgQElucHV0KCkgc2hvd1ZhbGlkYXRpb25Nc2cgPSB0cnVlO1xuICAvKipcbiAgICogVXNlZCB0byBzcGVjaWZ5IGlmIHNob3cgYWRkaXRpb25hbCBjb2x1bW4gYnV0dG9uIHdpaWwgYmUgZGlzcGxheWVkIG9yIG5vdC5cbiAgICovXG4gIEBJbnB1dCgpIHNob3dBZGRpdGlvbmFsQ29sdW1ucyA9IHRydWU7XG4gIEBJbnB1dCgpIHNtYWxsZXJGb250cyA9IGZhbHNlO1xuICAvKiogVXNlIGNoZWNrYm94ZXMgKi9cbiAgQElucHV0KCkgdXNlU2VsZWN0aW9uID0gZmFsc2U7XG4gIGNlbGxPcHRpb25zOiBJRm9ybU9wdGlvbnMgPSB7fTtcbiAgY2VsbENvdW50cnlDb2RlM3M6IElGb3JtT3B0aW9ucyA9IHt9O1xuICBAT3V0cHV0KCdyb3dDbGljaycpIF9yb3dDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBAVmlld0NoaWxkKFRhYmxlSHR0cHNDb21wb25lbnQpIHRhYmxlSFRUUFNSRUY6IFRhYmxlSHR0cHNDb21wb25lbnQ8VFJvdz47XG4gIEBWaWV3Q2hpbGQoVGFibGVQbGFpbkNvbXBvbmVudCkgdGFibGVQbGFpblJlZjogVGFibGVQbGFpbkNvbXBvbmVudDxUUm93PjtcbiAgZGF0YTogVFJvd1tdO1xuICBvdmVycmlkZSBmb3JtU2NoZW1hID0gc2lnbmFsPElTZWFyY2hGb3JtU2NoZW1hPFRRdWVyeSwgVFJvdz5bXT4oW10pO1xuICBsb2FkaW5nOiBib29sZWFuO1xuICBzZWFyY2hGb3JtOiBGb3JtR3JvdXA7XG4gIHN0YW5kYWxvbmVGb3JtOiBGb3JtR3JvdXA7XG4gIC8qKlxuICAgKiBVc2VkIHRvIHNwZWNpZnkgaWYgc2hvdyBjcmVhdGUgYnV0dG9uIGlzIG5lZWRlZC5cbiAgICovXG4gIEBJbnB1dCgpIGNyZWF0ZUJ1dHRvbjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIEBJbnB1dCgnZm9ybVNjaGVtYScpIHNldCBfZm9ybVNjaGVtYSh2OiBJU2VhcmNoRm9ybVNjaGVtYTxUUXVlcnksIFRSb3c+W10pIHtcbiAgICB0aGlzLmluaXQoY2xvbmVEZWVwKHY/LmZpbHRlcigoeCkgPT4geCkpKTtcbiAgfVxuXG4gIEBJbnB1dCgpIHNlYXJjaE9ic2VydmFibGVGdW5jOiAoZGF0YTogYW55KSA9PiBPYnNlcnZhYmxlPElUYWJsZVNlYXJjaFJlc3A8VFJvdz4+O1xuICByZWFkb25seSBkZWxpbWl0ZXJGaWVsZCA9ICd+fn4nO1xuICByZWFkb25seSBkZWxpbWl0ZXJXb3JkID0gJ35+JztcbiAgcHJvdGVjdGVkIHN1YnM6IHsgZmllbGROYW1lOiBzdHJpbmc7IHN1YjogU3Vic2NyaXB0aW9uIH1bXSA9IFtdO1xuICBwcm90ZWN0ZWQgc2VhcmNoVHJpZ2dlciA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICBwcm90ZWN0ZWQgc3ViczIgPSB0aGlzLnVTLmNyZWF0ZVN1YnNjcmlwdGlvbk1hbmFnZXIoKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgdVM6IFV0aWxpdHlTZXJ2aWNlLFxuICAgIHB1YmxpYyB1YVM6IFVzZXJBY3Rpdml0eVNlcnZpY2UsXG4gICAgcHVibGljIHJvdXRlcjogUm91dGVyLFxuICAgIHB1YmxpYyByb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAvLyAgdGhpcy5mZXRjaFNhdmVkUXVlcnkoKVxuICAgIHRoaXMuc3ViczIucHVzaChcbiAgICAgIHRoaXMuc2VhcmNoVHJpZ2dlclxuICAgICAgICAucGlwZShcbiAgICAgICAgICBkZWJvdW5jZVRpbWUoMTAwKSxcbiAgICAgICAgICBmaWx0ZXIoKHgpID0+IHgpLFxuICAgICAgICApXG4gICAgICAgIC5zdWJzY3JpYmUoKHIpID0+IHtcbiAgICAgICAgICAvLyBkZWJ1Z2dlcjtcbiAgICAgICAgICB0aGlzLl9zZWFyY2goKTtcbiAgICAgICAgfSksXG4gICAgKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuc3Vicy5mb3JFYWNoKChzKSA9PiB7XG4gICAgICBzPy5zdWI/LnVuc3Vic2NyaWJlKCk7XG4gICAgfSk7XG4gICAgdGhpcy5zdWJzID0gW107XG4gICAgdGhpcy5zdWJzMj8uY2xlYXIoKTtcbiAgfVxuXG4gIGZldGNoU2F2ZWRRdWVyeSgpIHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcHJldlF1ZXJ5U3RyaW5nID0gdGhpcy5yb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtTWFwLmdldCgncScpO1xuICAgICAgaWYgKHByZXZRdWVyeVN0cmluZykge1xuICAgICAgICBjb25zdCBwcmV2UXVlcnk6IHsgW2Y6IHN0cmluZ106IGFueSB9ID0ge307XG4gICAgICAgIGNvbnN0IGZpZWxkcyA9IHByZXZRdWVyeVN0cmluZy5zcGxpdCh0aGlzLmRlbGltaXRlckZpZWxkKTtcbiAgICAgICAgZm9yIChjb25zdCBmaWVsZCBvZiBmaWVsZHMpIHtcbiAgICAgICAgICBjb25zdCBmID0gZmllbGQuc3BsaXQodGhpcy5kZWxpbWl0ZXJXb3JkKTtcbiAgICAgICAgICAvLyBkZWJ1Z2dlcjtcbiAgICAgICAgICBpZiAoZlsxXSA9PSBudWxsIHx8IGZbMV0gPT0gJ251bGwnKSBjb250aW51ZTtcbiAgICAgICAgICBwcmV2UXVlcnlbZlswXV0gPSBmWzFdO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc2VhcmNoRm9ybT8ucGF0Y2hWYWx1ZShwcmV2UXVlcnkpO1xuICAgICAgICBpZiAoT2JqZWN0LnZhbHVlcyhwcmV2UXVlcnkpLnNvbWUoKHgpID0+IHggIT0gbnVsbCkpIHRoaXMuc2VhcmNoKCk7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpO1xuICAgIH1cbiAgfVxuXG4gIGluaXQoc2NoZW1hOiBJU2VhcmNoRm9ybVNjaGVtYTxUUXVlcnksIFRSb3c+W10pIHtcbiAgICB0aGlzLm5nT25EZXN0cm95KCk7XG4gICAgaWYgKCFzY2hlbWE/Lmxlbmd0aCkge1xuICAgICAgdGhpcy5mb3JtU2NoZW1hLnNldChzY2hlbWEpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICAvLyBkZWJ1Z2dlcjtcbiAgICB0aGlzLmhhbmRsZUFsbFNjaGVtYShzY2hlbWEpO1xuICAgIGZvciAoY29uc3Qgc2NoZW1lIG9mIHRoaXMuZm9ybVNjaGVtYSgpKSB0aGlzLmhhbmRsZUZvcm1TY2hlbWUoc2NoZW1lKTtcbiAgICBmb3IgKGNvbnN0IHNjaGVtZSBvZiB0aGlzLmZvcm1TY2hlbWEoKSlcbiAgICAgIGlmIChzY2hlbWUudHJpZ2dlck9uQ2hhbmdlT25Jbml0KSBzY2hlbWUub25DaGFuZ2VGdW5jKHRoaXMuZm9ybS5nZXRSYXdWYWx1ZSgpLCB0aGlzLmZvcm0uZ2V0UmF3VmFsdWUoKVtzY2hlbWUuZmllbGRdLCB0aGlzKTtcbiAgfVxuXG4gIGhhbmRsZUFsbFNjaGVtYShzY2hlbWE6IElTZWFyY2hGb3JtU2NoZW1hPFRRdWVyeSwgVFJvdz5bXSkge1xuICAgIHNjaGVtYS5mb3JFYWNoKCh4KSA9PiAoeC50eXBlID0geC50eXBlIHx8ICd0ZXh0JykpO1xuICAgIGlmICh0aGlzLmF1dG9Gb3JtYXRTY2hlbWEgfHwgdGhpcy5hdXRvT3JkZXIpIHtcbiAgICAgIGlmICh0aGlzLmF1dG9Gb3JtYXRTY2hlbWEpIHtcbiAgICAgICAgc2NoZW1hXG4gICAgICAgICAgLmZpbHRlcigoeCkgPT4geC50eXBlID09ICdzZWxlY3QnKVxuICAgICAgICAgIC5mb3JFYWNoKCh4KSA9PiB7XG4gICAgICAgICAgICBpZiAoeC5vcHRpb25zPy5sZW5ndGggPiA1IHx8ICF4Lm9wdGlvbnMpIHgudHlwZSA9ICdhdXRvY29tcGxldGUnO1xuICAgICAgICAgIH0pO1xuICAgICAgICBzY2hlbWFcbiAgICAgICAgICAuZmlsdGVyKCh4KSA9PiB4LnR5cGUgPT0gJ2NoZWNrYm94JylcbiAgICAgICAgICAuZm9yRWFjaCgoeCkgPT4ge1xuICAgICAgICAgICAgeC50eXBlID0gJ3NlbGVjdCc7XG4gICAgICAgICAgICB4Lm9wdGlvbnMgPSBDb25maWcuYm9vbExpc3Q7XG4gICAgICAgICAgICB4LmxhYmVsRmllbGQgPSAndGl0bGUnO1xuICAgICAgICAgICAgeC52YWx1ZUZpZWxkID0gJ2NvZGUnO1xuICAgICAgICAgIH0pO1xuICAgICAgICB0aGlzLmZvcm1TY2hlbWEuc2V0KHNjaGVtYSk7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5hdXRvT3JkZXIpIHtcbiAgICAgICAgc2NoZW1hID0gc2NoZW1hLnNvcnQyKCdsYWJlbCcsIHRydWUpO1xuICAgICAgICB0aGlzLmZvcm1TY2hlbWEuc2V0KFtcbiAgICAgICAgICAuLi5zY2hlbWE/LmZpbHRlcigoeCkgPT4geC5hY3Rpb24gJiYgeC50eXBlICE9ICdjaGVja2JveCcpLFxuICAgICAgICAgIC4uLnNjaGVtYT8uZmlsdGVyKCh4KSA9PiAheC5hY3Rpb24gJiYgeC50eXBlICE9ICdjaGVja2JveCcpLFxuICAgICAgICAgIC4uLnNjaGVtYT8uZmlsdGVyKCh4KSA9PiB4LnR5cGUgPT0gJ2NoZWNrYm94JyksXG4gICAgICAgIF0pO1xuICAgICAgfVxuICAgIH0gZWxzZSB0aGlzLmZvcm1TY2hlbWEuc2V0KHNjaGVtYSk7XG4gICAgdGhpcy5zZWFyY2hGb3JtID0gbmV3IEZvcm1Hcm91cCh0aGlzLnVTLmZvcm1TY2hlbWFUb0Zvcm1Db250cm9sczxJU2VhcmNoRm9ybVNjaGVtYTxUUXVlcnksIFRSb3c+PihzY2hlbWEuZmlsdGVyKCh4KSA9PiAheC5zdGFuZGFsb25lKSkpO1xuICAgIHRoaXMuc3RhbmRhbG9uZUZvcm0gPSBuZXcgRm9ybUdyb3VwKHRoaXMudVMuZm9ybVNjaGVtYVRvRm9ybUNvbnRyb2xzPElTZWFyY2hGb3JtU2NoZW1hPFRRdWVyeSwgVFJvdz4+KHNjaGVtYS5maWx0ZXIoKHgpID0+IHguc3RhbmRhbG9uZSkpKTtcbiAgfVxuICBoYW5kbGVGb3JtU2NoZW1lKHNjaGVtZTogSVNlYXJjaEZvcm1TY2hlbWE8VFF1ZXJ5LCBUUm93Pikge1xuICAgIHNjaGVtZS5pZCA9IHRoaXMudVMuZ2VuZXJhdGVVVUlEKCk7XG5cbiAgICBpZiAoc2NoZW1lLm9wdGlvbnNJbml0RnVuYylcbiAgICAgIHNjaGVtZS5vcHRpb25zSW5pdEZ1bmMuc3Vic2NyaWJlKChyKSA9PiB7XG4gICAgICAgIHNjaGVtZS5vcHRpb25zID0gcjtcbiAgICAgICAgLy8gdGhpcy5vcHRpb25zTWFwW3NjaGVtZS5maWVsZF0gPSByO1xuICAgICAgfSk7XG4gICAgaWYgKHNjaGVtZS5vcHRpb25zSW5pdEZ1bmMyKVxuICAgICAgc2NoZW1lLm9wdGlvbnNJbml0RnVuYzIoKS5zdWJzY3JpYmUoKHIpID0+IHtcbiAgICAgICAgc2NoZW1lLm9wdGlvbnMgPSByO1xuICAgICAgICAvLyB0aGlzLm9wdGlvbnNNYXBbc2NoZW1lLmZpZWxkXSA9IHI7XG4gICAgICB9KTtcbiAgICBpZiAoc2NoZW1lLm9uQ2hhbmdlRnVuYykge1xuICAgICAgY29uc3Qgc3ViID0gdGhpcy5zZWFyY2hGb3JtPy5jb250cm9sc1tzY2hlbWUuZmllbGQ/LnRvU3RyaW5nKCldPy52YWx1ZUNoYW5nZXNcbiAgICAgICAgLnBpcGUoZGVib3VuY2VUaW1lKDApKVxuICAgICAgICAuc3Vic2NyaWJlKChyKSA9PiBzY2hlbWUub25DaGFuZ2VGdW5jKHRoaXMuc2VhcmNoRm9ybT8uZ2V0UmF3VmFsdWUoKSwgciwgdGhpcykpO1xuICAgICAgdGhpcy5zdWJzLnB1c2goeyBzdWI6IHN1YiwgZmllbGROYW1lOiBzY2hlbWUuZmllbGQ/LnRvU3RyaW5nKCkgfSk7XG4gICAgfVxuICAgIGlmIChzY2hlbWUuc3RhbmRhbG9uZSkgc2NoZW1lLmZvcm0gPSB0aGlzLnN0YW5kYWxvbmVGb3JtO1xuICAgIGVsc2Ugc2NoZW1lLmZvcm0gPSB0aGlzLnNlYXJjaEZvcm07XG4gIH1cbiAgZGV0YWNoRm9ybVNjaGVtZShzY2hlbWVJbmRleD86IG51bWJlciwgZmllbGROYW1lPzogc3RyaW5nKSB7XG4gICAgdGhpcy5zdWJzLmZpbmQoKHgpID0+IHguZmllbGROYW1lID09IHRoaXMuZm9ybVNjaGVtYVtzY2hlbWVJbmRleF0/LmZpZWxkIHx8IHguZmllbGROYW1lID09IGZpZWxkTmFtZSk/LnN1Yj8udW5zdWJzY3JpYmUoKTtcbiAgfVxuICBhbWVuZEZvcm1TY2hlbWUgPSAoZmllbGROYW1lOiBrZXlvZiBUUXVlcnksIGZvcm1TY2hlbWU6IFBhcnRpYWw8SVNlYXJjaEZvcm1TY2hlbWE8eyBbayBpbiBrZXlvZiBUUXVlcnldOiBBYnN0cmFjdENvbnRyb2w8YW55LCBhbnk+IHwgYW55IH0+PikgPT4ge1xuICAgIC8vIGRlYnVnZ2VyO1xuICAgIHRoaXMuZm9ybVNjaGVtYS51cGRhdGUoKGZvcm1TY2hlbWEpID0+IHtcbiAgICAgIGNvbnN0IGluZCA9IGZvcm1TY2hlbWEuZmluZEluZGV4KCh4KSA9PiB4LmZpZWxkID09IGZpZWxkTmFtZSk7XG4gICAgICBpZiAoaW5kID4gLTEpIHtcbiAgICAgICAgZm9ybVNjaGVtYVtpbmRdID0ge1xuICAgICAgICAgIC4uLmZvcm1TY2hlbWFbaW5kXSxcbiAgICAgICAgICAuLi4oZm9ybVNjaGVtZSBhcyBhbnkpLFxuICAgICAgICB9O1xuICAgICAgfVxuICAgICAgcmV0dXJuIGZvcm1TY2hlbWE7XG4gICAgfSk7XG4gIH07XG5cbiAgZ2V0IGFsbFNlYXJjaEZvcm1WYWx1ZSgpIHtcbiAgICByZXR1cm4geyAuLi50aGlzLnNlYXJjaEZvcm0/LnZhbHVlLCAuLi50aGlzLnN0YW5kYWxvbmVGb3JtLnZhbHVlIH07XG4gIH1cblxuICB0cmFja0J5Um93SUQgPSAoaW5kZXgsIGl0ZW0pID0+IHtcbiAgICByZXR1cm4gaXRlbT8udmFsdWU/Ll9fcm93SUQ7XG4gIH07XG5cbiAgY2xlYXJGaWx0ZXJzKCkge1xuICAgIHRoaXMuc2VhcmNoRm9ybT8ucmVzZXQoKTtcbiAgICB0aGlzLnNlYXJjaCgpO1xuICB9XG5cbiAgcmVmcmVzaCgpIHtcbiAgICB0aGlzLnNlYXJjaCgpO1xuICB9XG4gIHNlYXJjaCgpIHtcbiAgICB0aGlzLnNlYXJjaFRyaWdnZXIubmV4dCh0cnVlKTtcbiAgfVxuICBhc3luYyBfc2VhcmNoKCkge1xuICAgIC8vIGRlYnVnZ2VyO1xuICAgIGlmICghdGhpcy5zZWFyY2hGb3JtKSByZXR1cm47XG4gICAgY29uc3QgcmVxID0gdGhpcy51Uy5kZWxldGVOdWxsKGNsb25lRGVlcCh0aGlzLnNlYXJjaEZvcm0/LmdldFJhd1ZhbHVlKCkpKTtcbiAgICAvLyBkZWJ1Z2dlcjtcbiAgICBpZiAodGhpcy5pc1RhYmxlUGFnaW5hdGVkKSB7XG4gICAgICBpZiAoIXRoaXMuZGF0YSkgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcbiAgICAgIHRoaXMuZGF0YSA9IFtdO1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMudGFibGVIVFRQU1JFRj8uc2VhcmNoKHJlcSk7XG4gICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICAgICAgfSwgNTAwKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuc2VhcmNoRnVuY3Rpb24pIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHRoaXMubG9hZGluZyA9IHRydWU7XG4gICAgICAgIGNvbnN0IGRhdGEgPSBhd2FpdCBsYXN0VmFsdWVGcm9tKFxuICAgICAgICAgIHRoaXMuc2VhcmNoRnVuY3Rpb24oe1xuICAgICAgICAgICAgLi4ucmVxLFxuICAgICAgICAgICAgc29ydEJ5OiB0aGlzLm9yZGVyRmllbGQgfHwgJ2NyZWF0ZWRPbicsXG4gICAgICAgICAgICBzb3J0RGlyZWN0aW9uOiB0aGlzLm9yZGVyRGlyZWN0aW9uPy50b1VwcGVyQ2FzZSgpIHx8ICdERVNDJyxcbiAgICAgICAgICB9KSxcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5kYXRhID0gZGF0YT8uWydjb250ZW50J10gfHwgZGF0YTtcbiAgICAgICAgY29uc29sZS5sb2coZGF0YSk7XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBjb25zb2xlLmVycm9yKEVycm9yKTtcbiAgICAgIH1cbiAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICAgIH1cbiAgICB0cnkge1xuICAgICAgdGhpcy51YVMuYWRkKHtcbiAgICAgICAgY29kZTogRVVBLnNlYXJjaGVkLFxuICAgICAgICBhY3Rpdml0eURlc2NyaXB0aW9uOiB0aGlzLmxhYmVsICsgJyAnICsgSlNPTi5zdHJpbmdpZnkocmVxKSxcbiAgICAgIH0pO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBkZWJ1Z2dlcjtcbiAgICB9XG4gIH1cblxuICBzYXZlUXVlcnkocXVlcnkgPSB0aGlzLnNlYXJjaEZvcm0/LnZhbHVlKSB7XG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW10sIHtcbiAgICAgIHF1ZXJ5UGFyYW1zOiB7XG4gICAgICAgIHE6IE9iamVjdC5rZXlzKHF1ZXJ5KVxuICAgICAgICAgIC5maWx0ZXIoKHgpID0+IHF1ZXJ5W3hdICE9IG51bGwpXG4gICAgICAgICAgLm1hcCgoaykgPT4gYCR7a30ke3RoaXMuZGVsaW1pdGVyV29yZH0ke3F1ZXJ5W2tdfWApXG4gICAgICAgICAgLmpvaW4odGhpcy5kZWxpbWl0ZXJGaWVsZCksXG4gICAgICB9LFxuICAgICAgcmVwbGFjZVVybDogdHJ1ZSxcbiAgICAgIHJlbGF0aXZlVG86IHRoaXMucm91dGUsXG4gICAgICBxdWVyeVBhcmFtc0hhbmRsaW5nOiAnbWVyZ2UnLFxuICAgIH0pO1xuICB9XG4gIHJvd0NsaWNrKGUpIHtcbiAgICB0aGlzLl9yb3dDbGljay5lbWl0KGUpO1xuICB9XG5cbiAgZ2V0IHNlbGVjdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy50YWJsZUhUVFBTUkVGPy5zZWxlY3RlZEl0ZW1zIHx8IHRoaXMudGFibGVQbGFpblJlZj8uc2VsZWN0ZWRJdGVtcztcbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIElTZWFyY2hGb3JtU2NoZW1hPFRRdWVyeSBleHRlbmRzIElPYmplY3RMaXRlcmFsID0gYW55LCBUUm93IGV4dGVuZHMgSU9iamVjdExpdGVyYWwgPSBhbnk+XG4gIGV4dGVuZHMgSUJhc2VGb3JtU2NoZW1hPFxuICAgIFRRdWVyeSxcbiAgICBGaW5kSXRlbUNvbXBvbmVudDxUUXVlcnksIFRSb3c+LFxuICAgIHtcbiAgICAgIFtLIGluIGtleW9mIFRRdWVyeV06IEFic3RyYWN0Q29udHJvbDxhbnksIGFueT47XG4gICAgfVxuICA+IHtcbiAgc3RhbmRhbG9uZT86IGJvb2xlYW47XG4gIGFjdGlvbj86IChyb3c6IGFueSwgY2VsbDogYW55LCBmb3JtPzogRm9ybUdyb3VwPElTdHJpY3RGb3JtR3JvdXA8VFF1ZXJ5Pj4pID0+IGFueTtcbn1cbiIsIjxsb2FkZXIgW2xvYWRpbmddPVwibG9hZGluZ1wiPlxuICBAaWYgKCFoaWRlRm9ybSAmJiBzZWFyY2hGb3JtKSB7XG4gICAgPGZvcm0gW2Zvcm1Hcm91cF09XCJzZWFyY2hGb3JtXCIgKG5nU3VibWl0KT1cInNlYXJjaCgpXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwicm93IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxuICAgICAgICBAZm9yIChzY2hlbWUgb2YgZm9ybVNjaGVtYSgpOyB0cmFjayBzY2hlbWUpIHtcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwie3sgZ3JpZENsYXNzIH19IFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBhbGlnbi1pdGVtcy1lbmRcIj5cbiAgICAgICAgICAgICAgQHN3aXRjaCAodHJ1ZSkge1xuICAgICAgICAgICAgICAgIEBjYXNlIChzY2hlbWUudHlwZSA9PSAndGVsJykge1xuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbFwiPlxuICAgICAgICAgICAgICAgICAgICA8YXBwLXBob25lLW51bWJlclxuICAgICAgICAgICAgICAgICAgICAgIFtmb3JtXT1cInNjaGVtZS5mb3JtXCJcbiAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwic2NoZW1lLmxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgICBbbmFtZV09XCJzY2hlbWUuZmllbGRcIlxuICAgICAgICAgICAgICAgICAgICAgIFtzaG93TGFiZWxdPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgICAgICAgIFtzaG93VmFsaWRhdGlvbl09XCJzY2hlbWUuc2hvd1ZhbGlkYXRpb25cIlxuICAgICAgICAgICAgICAgICAgICAgIFtzaG93VmFsaWRhdGlvbkljb25dPVwic2NoZW1lLnNob3dWYWxpZGF0aW9uSWNvblwiXG4gICAgICAgICAgICAgICAgICAgICAgW2NvdW50cnlDb2RlM109XCJjZWxsQ291bnRyeUNvZGUzc1tzY2hlbWUuZ2V0Q291bnRyeUNvZGUzS2V5XSB8fCBzY2hlbWUuY291bnRyeUNvZGUzXCJcbiAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwic2NoZW1lLmRpc2FibGVkSWYgfCBmdW5jdGlvbkNhbGxlcjI6IHNlYXJjaEZvcm0udmFsdWUgOiAoc2NoZW1lLmZpZWxkIHwgdG9BbnkpXCJcbiAgICAgICAgICAgICAgICAgICAgICAjaW5wdXRUYWcgLz5cbiAgICAgICAgICAgICAgICAgICAgQGlmIChzaG93VmFsaWRhdGlvbk1zZykge1xuICAgICAgICAgICAgICAgICAgICAgIDxhcHAtdmFsaWRhdGlvbi1tZXNzYWdlIFtpbnB1dF09XCJpbnB1dFRhZ1wiIC8+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBAY2FzZSAoc2NoZW1lLnR5cGUgPT0gJ2F1dG9jb21wbGV0ZScpIHtcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2xcIj5cbiAgICAgICAgICAgICAgICAgICAgPGFwcC1hdXRvY29tcGxldGVcbiAgICAgICAgICAgICAgICAgICAgICBbZm9ybV09XCJzY2hlbWUuZm9ybVwiXG4gICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cInNjaGVtZS5sYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgICAgW2xhYmVsRmllbGRdPVwic2NoZW1lLmxhYmVsRmllbGRcIlxuICAgICAgICAgICAgICAgICAgICAgIFthdXRvUGlja1ZhbHVlRmllbGRdPVwic2NoZW1lLmF1dG9QaWNrVmFsdWVGaWVsZFwiXG4gICAgICAgICAgICAgICAgICAgICAgW2xhYmVsVHlwZV09XCJzY2hlbWUubGFiZWxUeXBlIHwgdG9BbnlcIlxuICAgICAgICAgICAgICAgICAgICAgIFtvcHRpb25zRnVuY109XCJzY2hlbWUub3B0aW9uc0Z1bmNcIlxuICAgICAgICAgICAgICAgICAgICAgIFtuYW1lXT1cInNjaGVtZS5maWVsZFwiXG4gICAgICAgICAgICAgICAgICAgICAgW29wdGlvbkZvcm1hdHRlcl09XCJzY2hlbWUub3B0aW9uRm9ybWF0dGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICBbdmFsdWVGaWVsZF09XCJzY2hlbWUudmFsdWVGaWVsZFwiXG4gICAgICAgICAgICAgICAgICAgICAgW29wdGlvbnNdPVwic2NoZW1lLm9wdGlvbnMgfHwgY2VsbE9wdGlvbnNbc2NoZW1lLmZpZWxkIHwgdG9BbnldXCJcbiAgICAgICAgICAgICAgICAgICAgICBbaGludF09XCJzY2hlbWUuaGludFwiXG4gICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cInNjaGVtZS5kaXNhYmxlZElmIHwgZnVuY3Rpb25DYWxsZXIyOiBzZWFyY2hGb3JtLnZhbHVlIDogKHNjaGVtZS5maWVsZCB8IHRvQW55KVwiXG4gICAgICAgICAgICAgICAgICAgICAgI2lucHV0VGFnIC8+XG4gICAgICAgICAgICAgICAgICAgIEBpZiAoc2hvd1ZhbGlkYXRpb25Nc2cpIHtcbiAgICAgICAgICAgICAgICAgICAgICA8YXBwLXZhbGlkYXRpb24tbWVzc2FnZSBbaW5wdXRdPVwiaW5wdXRUYWdcIiAvPlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgQGRlZmF1bHQge1xuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbFwiPlxuICAgICAgICAgICAgICAgICAgICA8Zm9ybT5cbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ3gtMiByb3cgYWxpZ24taXRlbXMtZW5kXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxhcHAtaW5wdXQtYmFzaWNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAjZm9ybUZpZWxkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW25hbWVdPVwic2NoZW1lLmZpZWxkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZm9ybV09XCJzY2hlbWUuZm9ybVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3R5cGVdPVwic2NoZW1lLnR5cGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdXRvUGlja1ZhbHVlRmllbGRdPVwic2NoZW1lLmF1dG9QaWNrVmFsdWVGaWVsZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlRmllbGRdPVwic2NoZW1lLnZhbHVlRmllbGRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbFR5cGVdPVwic2NoZW1lLmxhYmVsVHlwZSB8IHRvQW55XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2hlY2tlZF09XCJzY2hlbWUuY2hlY2tlZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3Nob3dWYWxpZGF0aW9uXT1cIiEhc2NoZW1lLmFzeW5jVmFsaWRhdG9yc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3Nob3dWYWxpZGF0aW9uSWNvbl09XCIhIXNjaGVtZS5hc3luY1ZhbGlkYXRvcnNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtub0Zvcm1hdF09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxGaWVsZF09XCJzY2hlbWUubGFiZWxGaWVsZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW29wdGlvbkZvcm1hdHRlcl09XCJzY2hlbWUub3B0aW9uRm9ybWF0dGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbb3B0aW9uc109XCJzY2hlbWUub3B0aW9ucyB8fCBjZWxsT3B0aW9uc1tzY2hlbWUuZmllbGQgfCB0b0FueV1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkZWNpbWFsUG9pbnRzXT1cInNjaGVtZS5kZWNpbWFsUG9pbnRzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaGludF09XCJzY2hlbWUuaGludFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW21heF09XCJzY2hlbWUubWF4XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbWluXT1cInNjaGVtZS5taW5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJzY2hlbWUucGxhY2Vob2xkZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCJzY2hlbWUubGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJzY2hlbWUuZGlzYWJsZWRJZiB8IGZ1bmN0aW9uQ2FsbGVyMjogc2VhcmNoRm9ybS52YWx1ZSA6IChzY2hlbWUuZmllbGQgfCB0b0FueSlcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICBAaWYgKHNjaGVtZS5zdGFuZGFsb25lICYmIHNjaGVtZS5hY3Rpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1hdXRvXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFwcC1idG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyb3VwPVwic2hvd1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiIWZvcm1GaWVsZD8udmFsaWRTaWduYWwoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3Rpb25UeXBlPVwic3VibWl0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtY2xpY2spPVwic2NoZW1lLmFjdGlvbihhbGxTZWFyY2hGb3JtVmFsdWUsIGZvcm1GaWVsZC52YWx1ZVNpZ25hbCgpLCBzZWFyY2hGb3JtKVwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChzY2hlbWUuYWN0aW9uICYmICFzY2hlbWUuc3RhbmRhbG9uZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWF1dG9cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YXBwLWJ0blxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2ljb25dPVwic2NoZW1lLmljb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2ljb25CdG5dPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3Rpb25UeXBlPVwic3VibWl0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtY2xpY2spPVwic2NoZW1lLmFjdGlvbihhbGxTZWFyY2hGb3JtVmFsdWUsIGZvcm1GaWVsZC52YWx1ZVNpZ25hbCgpLCBzZWFyY2hGb3JtKVwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Zvcm0+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIEBpZiAoc2hvd1ZhbGlkYXRpb25Nc2cpIHtcbiAgICAgICAgICAgICAgICAgICAgPGFwcC12YWxpZGF0aW9uLW1lc3NhZ2UgW2lucHV0XT1cImZvcm1GaWVsZFwiIC8+XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kIGp1c3RpZnktY29udGVudC1lbmQgZC1mbGV4XCI+XG4gICAgICAgICAgQGlmIChzaG93Q2xlYXJCdG4pIHtcbiAgICAgICAgICAgIDxhcHAtYnRuIHR5cGU9XCJkYW5nZXItb3V0bGluZVwiIHRleHQ9XCJDbGVhclwiIGljb249XCJkZWxldGVcIiAobWNsaWNrKT1cImNsZWFyRmlsdGVycygpXCIgLz5cbiAgICAgICAgICB9XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJteC0xXCI+PC9zcGFuPlxuICAgICAgICAgIEBpZiAoc2hvd1NlYXJjaEJ0bikge1xuICAgICAgICAgICAgPGFwcC1idG5cbiAgICAgICAgICAgICAgW2dyb3VwXT1cIidzZWFyY2gnXCJcbiAgICAgICAgICAgICAgW2ljb25CdG5dPVwidHJ1ZVwiXG4gICAgICAgICAgICAgIHRleHQ9XCJTZWFyY2hcIlxuICAgICAgICAgICAgICBhY3Rpb25UeXBlPVwic3VibWl0XCJcbiAgICAgICAgICAgICAgW2V4Y2x1ZGVMb2dnaW5nXT1cInRydWVcIlxuICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiIXNlYXJjaEZ1bmN0aW9uICYmICFpc1RhYmxlUGFnaW5hdGVkXCJcbiAgICAgICAgICAgICAgKG1jbGljayk9XCJzZWFyY2goKVwiIC8+XG4gICAgICAgICAgfVxuICAgICAgICAgIEBpZiAoY3JlYXRlQnV0dG9uKSB7XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm14LTFcIj48L3NwYW4+XG4gICAgICAgICAgICA8YXBwLWJ0biB0eXBlPVwib3V0bGluZVwiIHRleHQ9XCJDcmVhdGVcIiBpY29uPVwiYWRkXCIgcm91dGVyTGluaz1cIi4uL2NyZWF0ZVwiIC8+XG4gICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZm9ybT5cbiAgfVxuXG4gIDxuZy1jb250ZW50IHNlbGVjdD1cIlt0YWJsZVBhbmVsXVwiPjwvbmctY29udGVudD5cblxuICBAaWYgKGRpc3BsYXllZENvbHVtbnM/Lmxlbmd0aCkge1xuICAgIDxkaXYgY2xhc3M9XCJtdC0zXCIgW2hpZGRlbl09XCIhc2hvd0RhdGEgfHwgKCFkYXRhICYmICFpc1RhYmxlUGFnaW5hdGVkKVwiPlxuICAgICAgPG5nLWNvbnRhaW5lcj5cbiAgICAgICAgQGlmIChpc1RhYmxlUGFnaW5hdGVkKSB7XG4gICAgICAgICAgPHRhYmxlLWh0dHBzXG4gICAgICAgICAgICAjdGFibGVIVFRQU1xuICAgICAgICAgICAgW2Rpc3BsYXllZENvbHVtbnNdPVwiZGlzcGxheWVkQ29sdW1uc1wiXG4gICAgICAgICAgICBbc2hvd0V4cG9ydF09XCJzaG93RXhwb3J0XCJcbiAgICAgICAgICAgIFtzdGFydFNlY3Rpb25UZW1wbGF0ZV09XCJzdGFydFNlY3Rpb25UZW1wbGF0ZVwiXG4gICAgICAgICAgICBbdXNlU2VsZWN0aW9uXT1cInVzZVNlbGVjdGlvblwiXG4gICAgICAgICAgICBbc2hvd1JlZnJlc2hCdG5dPVwic2hvd1JlZnJlc2hCdG5cIlxuICAgICAgICAgICAgW29ic2VydmFibGVGdW5jXT1cInNlYXJjaE9ic2VydmFibGVGdW5jXCJcbiAgICAgICAgICAgIG5vSXRlbVR4dD1cIk5vIHJlc3VsdHMgZm91bmRcIlxuICAgICAgICAgICAgW2lzRXhwYW5kYWJsZV09XCJpc0V4cGFuZGFibGVcIlxuICAgICAgICAgICAgW2V4cGFuZGVkUm93VGVtcGxhdGVdPVwiZXhwYW5kZWRSb3dUZW1wbGF0ZVwiXG4gICAgICAgICAgICBbY2VudGVyQ2VsbHNdPVwiY2VudGVyQ2VsbHNcIlxuICAgICAgICAgICAgW3NtYWxsZXJGb250c109XCJzbWFsbGVyRm9udHNcIlxuICAgICAgICAgICAgW25vd3JhcF09XCJub3dyYXBcIlxuICAgICAgICAgICAgW3BhZ2VTaXplXT1cInBhZ2VTaXplXCJcbiAgICAgICAgICAgIFtsYWJlbF09XCJsYWJlbFwiXG4gICAgICAgICAgICBbc2hvd0FkZGl0aW9uYWxDb2x1bW5zXT1cInNob3dBZGRpdGlvbmFsQ29sdW1uc1wiXG4gICAgICAgICAgICBbb3JkZXJGaWVsZF09XCJvcmRlckZpZWxkXCJcbiAgICAgICAgICAgIFtyb3dPcHRpb25zXT1cIm9wdGlvbnNcIlxuICAgICAgICAgICAgW29yZGVyRGlyZWN0aW9uXT1cIm9yZGVyRGlyZWN0aW9uXCJcbiAgICAgICAgICAgIChyb3dDbGljayk9XCJyb3dDbGljaygkZXZlbnQpXCIgLz5cbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgPHRhYmxlLXBsYWluXG4gICAgICAgICAgICBbZGlzdGluY3RdPVwidHJ1ZVwiXG4gICAgICAgICAgICBbc2hvd1BhZ2VyXT1cInRydWVcIlxuICAgICAgICAgICAgW3BhZ2VTaXplXT1cInBhZ2VTaXplXCJcbiAgICAgICAgICAgIFtjZW50ZXJDZWxsc109XCJmYWxzZVwiXG4gICAgICAgICAgICBbc3RhcnRTZWN0aW9uVGVtcGxhdGVdPVwic3RhcnRTZWN0aW9uVGVtcGxhdGVcIlxuICAgICAgICAgICAgW3NtYWxsZXJGb250c109XCJzbWFsbGVyRm9udHNcIlxuICAgICAgICAgICAgW25vd3JhcF09XCJub3dyYXBcIlxuICAgICAgICAgICAgW3Nob3dGaWx0ZXJdPVwic2hvd0ZpbHRlclwiXG4gICAgICAgICAgICBbc2hvd0V4cG9ydF09XCJzaG93RXhwb3J0XCJcbiAgICAgICAgICAgIFtpc0V4cGFuZGFibGVdPVwiaXNFeHBhbmRhYmxlXCJcbiAgICAgICAgICAgIFtleHBhbmRlZFJvd1RlbXBsYXRlXT1cImV4cGFuZGVkUm93VGVtcGxhdGVcIlxuICAgICAgICAgICAgW2xhYmVsXT1cImxhYmVsXCJcbiAgICAgICAgICAgIG5vSXRlbVR4dD1cIk5vIHJlc3VsdHMgZm91bmRcIlxuICAgICAgICAgICAgKHJvd0NsaWNrKT1cInJvd0NsaWNrKCRldmVudClcIlxuICAgICAgICAgICAgW29yZGVyRmllbGRdPVwib3JkZXJGaWVsZFwiXG4gICAgICAgICAgICBbcm93T3B0aW9uc109XCJvcHRpb25zXCJcbiAgICAgICAgICAgIFtzaG93QWRkaXRpb25hbENvbHVtbnNdPVwic2hvd0FkZGl0aW9uYWxDb2x1bW5zXCJcbiAgICAgICAgICAgIFtvcmRlckRpcmVjdGlvbl09XCJvcmRlckRpcmVjdGlvblwiXG4gICAgICAgICAgICBbZGlzcGxheWVkQ29sdW1uc109XCJkaXNwbGF5ZWRDb2x1bW5zXCJcbiAgICAgICAgICAgIFtkYXRhXT1cImRhdGFcIiAvPlxuICAgICAgICB9XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbiAgfVxuPC9sb2FkZXI+XG4iXX0=
@@ -24,7 +24,7 @@ export class EditableTextCaseComponent {
24
24
  }
25
25
  }
26
26
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: EditableTextCaseComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
27
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.0", type: EditableTextCaseComponent, isStandalone: true, selector: "app-editable-text-case", inputs: { action: "action", coloredLbl: "coloredLbl", coloredVal: "coloredVal", form: "form", formatter: "formatter", hint: "hint", valueHint: "valueHint", label: "label", light: "light", mini: "mini", name: "name", route: "route", routeFunc: "routeFunc", showEditing: "showEditing", stacked: "stacked", type: "type", value: "value", wrapLabel: "wrapLabel" }, ngImport: i0, template: "<div class=\"row align-items-center\">\n <label\n [matTooltip]=\"hint\"\n class=\"col-md-{{\n stacked ? '12 pb-0' : mini ? 'auto' : ''\n }} m-0 hide-scroll-x\"\n [ngClass]=\"{\n 'text-primary': coloredLbl,\n light,\n 'overflow-x-auto': wrapLabel\n }\"\n >\n {{ label | appTranslate | async }}\n </label>\n <div class=\"{{ stacked ? 'col-12' : 'col-md' }} position-relative\">\n <div class=\"row align-items-center\">\n @if (editing) {\n <div class=\"col-9 pe-0\">\n <app-input-basic\n [form]=\"form\"\n [stacked]=\"true\"\n [showLabel]=\"false\"\n [name]=\"name\"\n [type]=\"type\"\n >\n </app-input-basic>\n </div>\n <div class=\"col-auto\">\n <i\n (click)=\"reset()\"\n class=\"ps-1 pointer fas fa-undo-alt text-danger\"\n ></i>\n </div>\n } @else {\n <a\n [matTooltip]=\"valueHint\"\n [mrouterLink]=\"route || (routeFunc | functionCaller1: value | async)\"\n class=\"{{ !coloredVal ? '' : 'text-primary' }} col-{{\n !stacked ? 'auto' : showEditing ? '9' : '12'\n }} lbl\"\n >\n <div class=\"hide-scroll-x overflow-x-auto\">\n {{ (value | valueFormatter: formatter | async) || \"-\" }}\n </div>\n </a>\n <div class=\"col-auto\" *ngIf=\"showEditing\">\n <i\n (click)=\"unreset()\"\n class=\"ps-1 pointer fas fa-pencil-alt {{\n !coloredVal ? '' : 'text-primary'\n }}\"\n ></i>\n </div>\n }\n <ng-template #elseTemplate>\n <a\n [matTooltip]=\"valueHint\"\n [mrouterLink]=\"route || (routeFunc | functionCaller1: value | async)\"\n class=\"{{ !coloredVal ? '' : 'text-primary' }} col-{{\n !stacked ? 'auto' : showEditing ? '9' : '12'\n }} lbl\"\n >\n <div class=\"hide-scroll-x overflow-x-auto\">\n {{ (value | valueFormatter: formatter | async) || \"-\" }}\n </div>\n </a>\n @if (showEditing) {\n <div class=\"col-auto\">\n <i\n (click)=\"unreset()\"\n class=\"ps-1 pointer fas fa-pencil-alt {{\n !coloredVal ? '' : 'text-primary'\n }}\"\n ></i>\n </div>\n }\n </ng-template>\n </div>\n </div>\n</div>\n", styles: [".lbl{display:flex;align-items:center}.light{font-weight:500}.fas{font-size:.7rem}\n"], dependencies: [{ kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i1.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: InputBasicComponent, selector: "app-input-basic,app-input", inputs: ["accept", "autocomplete", "autoPickValueField", "clearOnDisable", "cls", "input", "colored", "checked", "contextData", "debug", "decimalPoints", "files", "noFormat", "hide", "hint", "labelLink", "labelField", "labelType", "lblCl", "light", "loading", "minLength", "maxLength", "multiple", "optionFormatter", "optionsFunc", "placeholder", "suffix", "theme", "translateOptions", "valueField", "vms", "xsmall", "setCurrentDate", "disabled", "options", "mvalue"], outputs: ["mchange", "mSelectOptionChange", "mSelectedOptionLabel"] }, { kind: "directive", type: MrouterLinkirective, selector: "[mrouterLink]", inputs: ["mrouterLink", "mrouterLinkActivatedRoute", "mqueryParams", "isPhone", "isEmail"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: FunctionCaller1, name: "functionCaller1" }, { kind: "pipe", type: TranslatePipe, name: "appTranslate" }, { kind: "pipe", type: ValueFormatterPipe, name: "valueFormatter" }] }); }
27
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.0", type: EditableTextCaseComponent, isStandalone: true, selector: "app-editable-text-case", inputs: { action: "action", coloredLbl: "coloredLbl", coloredVal: "coloredVal", form: "form", formatter: "formatter", hint: "hint", valueHint: "valueHint", label: "label", light: "light", mini: "mini", name: "name", route: "route", routeFunc: "routeFunc", showEditing: "showEditing", stacked: "stacked", type: "type", value: "value", wrapLabel: "wrapLabel" }, ngImport: i0, template: "<div class=\"row align-items-center\">\n <label\n [matTooltip]=\"hint\"\n class=\"col-md-{{\n stacked ? '12 pb-0' : mini ? 'auto' : ''\n }} m-0 hide-scroll-x\"\n [ngClass]=\"{\n 'text-primary': coloredLbl,\n light,\n 'overflow-x-auto': wrapLabel\n }\"\n >\n {{ label | appTranslate | async }}\n </label>\n <div class=\"{{ stacked ? 'col-12' : 'col-md' }} position-relative\">\n <div class=\"row align-items-center\">\n @if (editing) {\n <div class=\"col-9 pe-0\">\n <app-input-basic\n [form]=\"form\"\n [stacked]=\"true\"\n [showLabel]=\"false\"\n [name]=\"name\"\n [type]=\"type\"\n >\n </app-input-basic>\n </div>\n <div class=\"col-auto\">\n <i\n (click)=\"reset()\"\n class=\"ps-1 pointer fas fa-undo-alt text-danger\"\n ></i>\n </div>\n } @else {\n <a\n [matTooltip]=\"valueHint\"\n [mrouterLink]=\"route || (routeFunc | functionCaller1: value | async)\"\n class=\"{{ !coloredVal ? '' : 'text-primary' }} col-{{\n !stacked ? 'auto' : showEditing ? '9' : '12'\n }} lbl\"\n >\n <div class=\"hide-scroll-x overflow-x-auto\">\n {{ (value | valueFormatter: formatter | async) || \"-\" }}\n </div>\n </a>\n <div class=\"col-auto\" *ngIf=\"showEditing\">\n <i\n (click)=\"unreset()\"\n class=\"ps-1 pointer fas fa-pencil-alt {{\n !coloredVal ? '' : 'text-primary'\n }}\"\n ></i>\n </div>\n }\n <ng-template #elseTemplate>\n <a\n [matTooltip]=\"valueHint\"\n [mrouterLink]=\"route || (routeFunc | functionCaller1: value | async)\"\n class=\"{{ !coloredVal ? '' : 'text-primary' }} col-{{\n !stacked ? 'auto' : showEditing ? '9' : '12'\n }} lbl\"\n >\n <div class=\"hide-scroll-x overflow-x-auto\">\n {{ (value | valueFormatter: formatter | async) || \"-\" }}\n </div>\n </a>\n @if (showEditing) {\n <div class=\"col-auto\">\n <i\n (click)=\"unreset()\"\n class=\"ps-1 pointer fas fa-pencil-alt {{\n !coloredVal ? '' : 'text-primary'\n }}\"\n ></i>\n </div>\n }\n </ng-template>\n </div>\n </div>\n</div>\n", styles: [".lbl{display:flex;align-items:center}.light{font-weight:500}.fas{font-size:.7rem}\n"], dependencies: [{ kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i1.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: InputBasicComponent, selector: "app-input-basic,app-input", inputs: ["accept", "autocomplete", "autoPickValueField", "cls", "input", "colored", "checked", "contextData", "decimalPoints", "files", "noFormat", "hide", "hint", "labelLink", "labelField", "labelType", "lblCl", "light", "loading", "minLength", "maxLength", "multiple", "optionFormatter", "optionsFunc", "placeholder", "suffix", "theme", "translateOptions", "valueField", "vms", "xsmall", "setCurrentDate", "options", "mvalue"], outputs: ["mchange", "mSelectOptionChange", "mSelectedOptionLabel"] }, { kind: "directive", type: MrouterLinkirective, selector: "[mrouterLink]", inputs: ["mrouterLink", "mrouterLinkActivatedRoute", "mqueryParams", "isPhone", "isEmail"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: FunctionCaller1, name: "functionCaller1" }, { kind: "pipe", type: TranslatePipe, name: "appTranslate" }, { kind: "pipe", type: ValueFormatterPipe, name: "valueFormatter" }] }); }
28
28
  }
29
29
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: EditableTextCaseComponent, decorators: [{
30
30
  type: Component,
@@ -76,4 +76,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImpor
76
76
  }], wrapLabel: [{
77
77
  type: Input
78
78
  }] } });
79
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdGFibGUtdGV4dC1jYXNlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V0cy1mZS1uZy1zZGsvc3JjL2xpYi9TaGFyZWQvY29tcG9uZW50cy9lZGl0YWJsZS10ZXh0LWNhc2UvZWRpdGFibGUtdGV4dC1jYXNlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V0cy1mZS1uZy1zZGsvc3JjL2xpYi9TaGFyZWQvY29tcG9uZW50cy9lZGl0YWJsZS10ZXh0LWNhc2UvZWRpdGFibGUtdGV4dC1jYXNlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXpELE9BQU8sRUFBRSxlQUFlLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMvRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDM0QsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDdkUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDckUsT0FBTyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7OztBQW9CN0QsTUFBTSxPQUFPLHlCQUF5QjtJQW9CcEM7UUFGUyxjQUFTLEdBQVksSUFBSSxDQUFDO0lBRXBCLENBQUM7SUFFaEIsUUFBUSxLQUFVLENBQUM7SUFDbkIsS0FBSztRQUNILElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO0lBQ3ZCLENBQUM7SUFDRCxPQUFPO1FBQ0wsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ2YsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1NBQ2Y7YUFBTTtZQUNMLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1NBQ3JCO0lBQ0gsQ0FBQzs4R0FoQ1UseUJBQXlCO2tHQUF6Qix5QkFBeUIsMGJDM0J0Qyw0OEVBZ0ZBLDRJRGhFSSxnQkFBZ0IsNlRBQ2hCLE9BQU8sb0ZBQ1AsSUFBSSw2RkFDSixtQkFBbUIsZ21CQUNuQixtQkFBbUIsaUpBQ25CLFNBQVMseUNBQ1QsZUFBZSxtREFDZixhQUFhLGdEQUNiLGtCQUFrQjs7MkZBR1QseUJBQXlCO2tCQWpCckMsU0FBUzsrQkFDRSx3QkFBd0IsY0FHdEIsSUFBSSxXQUNQO3dCQUNQLGdCQUFnQjt3QkFDaEIsT0FBTzt3QkFDUCxJQUFJO3dCQUNKLG1CQUFtQjt3QkFDbkIsbUJBQW1CO3dCQUNuQixTQUFTO3dCQUNULGVBQWU7d0JBQ2YsYUFBYTt3QkFDYixrQkFBa0I7cUJBQ25CO3dEQUdRLE1BQU07c0JBQWQsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRnVuY3Rpb25DYWxsZXIxLCBWYWx1ZUZvcm1hdHRlclBpcGUgfSBmcm9tICcuLi8uLi9waXBlcy91dGlsaXR5LnBpcGUnO1xuaW1wb3J0IHsgVHJhbnNsYXRlUGlwZSB9IGZyb20gJy4uLy4uL3BpcGVzL3RyYW5zbGF0ZS5waXBlJztcbmltcG9ydCB7IE1yb3V0ZXJMaW5raXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL2luZGV4LmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBJbnB1dEJhc2ljQ29tcG9uZW50IH0gZnJvbSAnLi4vaW5wdXQvaW5wdXQtYmFzaWMuY29tcG9uZW50JztcbmltcG9ydCB7IE5nQ2xhc3MsIE5nSWYsIEFzeW5jUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBNYXRUb29sdGlwTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbHRpcCc7XG5pbXBvcnQgeyBJbnB1dFR5cGUgfSBmcm9tICcuLi8uLi9tb2RlbHMvaW5kZXgubW9kZWwnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtZWRpdGFibGUtdGV4dC1jYXNlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2VkaXRhYmxlLXRleHQtY2FzZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2VkaXRhYmxlLXRleHQtY2FzZS5jb21wb25lbnQuc2NzcyddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgTWF0VG9vbHRpcE1vZHVsZSxcbiAgICBOZ0NsYXNzLFxuICAgIE5nSWYsXG4gICAgSW5wdXRCYXNpY0NvbXBvbmVudCxcbiAgICBNcm91dGVyTGlua2lyZWN0aXZlLFxuICAgIEFzeW5jUGlwZSxcbiAgICBGdW5jdGlvbkNhbGxlcjEsXG4gICAgVHJhbnNsYXRlUGlwZSxcbiAgICBWYWx1ZUZvcm1hdHRlclBpcGUsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEVkaXRhYmxlVGV4dENhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSBhY3Rpb246IGFueTtcbiAgQElucHV0KCkgY29sb3JlZExibDogYm9vbGVhbjtcbiAgQElucHV0KCkgY29sb3JlZFZhbDogYm9vbGVhbjtcbiAgQElucHV0KCkgZm9ybTogYW55O1xuICBASW5wdXQoKSBmb3JtYXR0ZXI6IChpdGVtKSA9PiBzdHJpbmcgfCBQcm9taXNlPHN0cmluZz4gfCBPYnNlcnZhYmxlPHN0cmluZz47XG4gIEBJbnB1dCgpIGhpbnQ6IHN0cmluZztcbiAgQElucHV0KCkgdmFsdWVIaW50OiBzdHJpbmc7XG4gIEBJbnB1dCgpIGxhYmVsOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGxpZ2h0OiBib29sZWFuO1xuICBASW5wdXQoKSBtaW5pOiBib29sZWFuO1xuICBASW5wdXQoKSBuYW1lOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHJvdXRlOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHJvdXRlRnVuYzogKGl0ZW0pID0+IFByb21pc2U8c3RyaW5nPiB8IE9ic2VydmFibGU8c3RyaW5nPjtcbiAgQElucHV0KCkgc2hvd0VkaXRpbmc6IGJvb2xlYW47XG4gIEBJbnB1dCgpIHN0YWNrZWQ6IGJvb2xlYW47XG4gIEBJbnB1dCgpIHR5cGU6IElucHV0VHlwZTtcbiAgQElucHV0KCkgdmFsdWU6IGFueTtcbiAgQElucHV0KCkgd3JhcExhYmVsOiBib29sZWFuID0gdHJ1ZTtcbiAgZWRpdGluZzogYm9vbGVhbjtcbiAgY29uc3RydWN0b3IoKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge31cbiAgcmVzZXQoKSB7XG4gICAgdGhpcy5lZGl0aW5nID0gZmFsc2U7XG4gIH1cbiAgdW5yZXNldCgpIHtcbiAgICBpZiAodGhpcy5hY3Rpb24pIHtcbiAgICAgIHRoaXMuYWN0aW9uKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZWRpdGluZyA9IHRydWU7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwicm93IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxuICA8bGFiZWxcbiAgICBbbWF0VG9vbHRpcF09XCJoaW50XCJcbiAgICBjbGFzcz1cImNvbC1tZC17e1xuICAgICAgc3RhY2tlZCA/ICcxMiBwYi0wJyA6IG1pbmkgPyAnYXV0bycgOiAnJ1xuICAgIH19IG0tMCBoaWRlLXNjcm9sbC14XCJcbiAgICBbbmdDbGFzc109XCJ7XG4gICAgICAndGV4dC1wcmltYXJ5JzogY29sb3JlZExibCxcbiAgICAgIGxpZ2h0LFxuICAgICAgJ292ZXJmbG93LXgtYXV0byc6IHdyYXBMYWJlbFxuICAgIH1cIlxuICA+XG4gICAge3sgbGFiZWwgfCBhcHBUcmFuc2xhdGUgfCBhc3luYyB9fVxuICA8L2xhYmVsPlxuICA8ZGl2IGNsYXNzPVwie3sgc3RhY2tlZCA/ICdjb2wtMTInIDogJ2NvbC1tZCcgfX0gcG9zaXRpb24tcmVsYXRpdmVcIj5cbiAgICA8ZGl2IGNsYXNzPVwicm93IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxuICAgICAgQGlmIChlZGl0aW5nKSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtOSBwZS0wXCI+XG4gICAgICAgICAgPGFwcC1pbnB1dC1iYXNpY1xuICAgICAgICAgICAgW2Zvcm1dPVwiZm9ybVwiXG4gICAgICAgICAgICBbc3RhY2tlZF09XCJ0cnVlXCJcbiAgICAgICAgICAgIFtzaG93TGFiZWxdPVwiZmFsc2VcIlxuICAgICAgICAgICAgW25hbWVdPVwibmFtZVwiXG4gICAgICAgICAgICBbdHlwZV09XCJ0eXBlXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgPC9hcHAtaW5wdXQtYmFzaWM+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWF1dG9cIj5cbiAgICAgICAgICA8aVxuICAgICAgICAgICAgKGNsaWNrKT1cInJlc2V0KClcIlxuICAgICAgICAgICAgY2xhc3M9XCJwcy0xIHBvaW50ZXIgZmFzIGZhLXVuZG8tYWx0IHRleHQtZGFuZ2VyXCJcbiAgICAgICAgICA+PC9pPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICA8YVxuICAgICAgICAgIFttYXRUb29sdGlwXT1cInZhbHVlSGludFwiXG4gICAgICAgICAgW21yb3V0ZXJMaW5rXT1cInJvdXRlIHx8IChyb3V0ZUZ1bmMgfCBmdW5jdGlvbkNhbGxlcjE6IHZhbHVlIHwgYXN5bmMpXCJcbiAgICAgICAgICBjbGFzcz1cInt7ICFjb2xvcmVkVmFsID8gJycgOiAndGV4dC1wcmltYXJ5JyB9fSBjb2wte3tcbiAgICAgICAgICAgICFzdGFja2VkID8gJ2F1dG8nIDogc2hvd0VkaXRpbmcgPyAnOScgOiAnMTInXG4gICAgICAgICAgfX0gbGJsXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJoaWRlLXNjcm9sbC14IG92ZXJmbG93LXgtYXV0b1wiPlxuICAgICAgICAgICAge3sgKHZhbHVlIHwgdmFsdWVGb3JtYXR0ZXI6IGZvcm1hdHRlciB8IGFzeW5jKSB8fCBcIi1cIiB9fVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2E+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtYXV0b1wiICpuZ0lmPVwic2hvd0VkaXRpbmdcIj5cbiAgICAgICAgICA8aVxuICAgICAgICAgICAgKGNsaWNrKT1cInVucmVzZXQoKVwiXG4gICAgICAgICAgICBjbGFzcz1cInBzLTEgcG9pbnRlciBmYXMgZmEtcGVuY2lsLWFsdCB7e1xuICAgICAgICAgICAgICAhY29sb3JlZFZhbCA/ICcnIDogJ3RleHQtcHJpbWFyeSdcbiAgICAgICAgICAgIH19XCJcbiAgICAgICAgICA+PC9pPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIH1cbiAgICAgIDxuZy10ZW1wbGF0ZSAjZWxzZVRlbXBsYXRlPlxuICAgICAgICA8YVxuICAgICAgICAgIFttYXRUb29sdGlwXT1cInZhbHVlSGludFwiXG4gICAgICAgICAgW21yb3V0ZXJMaW5rXT1cInJvdXRlIHx8IChyb3V0ZUZ1bmMgfCBmdW5jdGlvbkNhbGxlcjE6IHZhbHVlIHwgYXN5bmMpXCJcbiAgICAgICAgICBjbGFzcz1cInt7ICFjb2xvcmVkVmFsID8gJycgOiAndGV4dC1wcmltYXJ5JyB9fSBjb2wte3tcbiAgICAgICAgICAgICFzdGFja2VkID8gJ2F1dG8nIDogc2hvd0VkaXRpbmcgPyAnOScgOiAnMTInXG4gICAgICAgICAgfX0gbGJsXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJoaWRlLXNjcm9sbC14IG92ZXJmbG93LXgtYXV0b1wiPlxuICAgICAgICAgICAge3sgKHZhbHVlIHwgdmFsdWVGb3JtYXR0ZXI6IGZvcm1hdHRlciB8IGFzeW5jKSB8fCBcIi1cIiB9fVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2E+XG4gICAgICAgIEBpZiAoc2hvd0VkaXRpbmcpIHtcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWF1dG9cIj5cbiAgICAgICAgICAgIDxpXG4gICAgICAgICAgICAgIChjbGljayk9XCJ1bnJlc2V0KClcIlxuICAgICAgICAgICAgICBjbGFzcz1cInBzLTEgcG9pbnRlciBmYXMgZmEtcGVuY2lsLWFsdCB7e1xuICAgICAgICAgICAgICAgICFjb2xvcmVkVmFsID8gJycgOiAndGV4dC1wcmltYXJ5J1xuICAgICAgICAgICAgICB9fVwiXG4gICAgICAgICAgICA+PC9pPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
79
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdGFibGUtdGV4dC1jYXNlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V0cy1mZS1uZy1zZGsvc3JjL2xpYi9TaGFyZWQvY29tcG9uZW50cy9lZGl0YWJsZS10ZXh0LWNhc2UvZWRpdGFibGUtdGV4dC1jYXNlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V0cy1mZS1uZy1zZGsvc3JjL2xpYi9TaGFyZWQvY29tcG9uZW50cy9lZGl0YWJsZS10ZXh0LWNhc2UvZWRpdGFibGUtdGV4dC1jYXNlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXpELE9BQU8sRUFBRSxlQUFlLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMvRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDM0QsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDdkUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDckUsT0FBTyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7OztBQW9CN0QsTUFBTSxPQUFPLHlCQUF5QjtJQW9CcEM7UUFGUyxjQUFTLEdBQVksSUFBSSxDQUFDO0lBRXBCLENBQUM7SUFFaEIsUUFBUSxLQUFVLENBQUM7SUFDbkIsS0FBSztRQUNILElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO0lBQ3ZCLENBQUM7SUFDRCxPQUFPO1FBQ0wsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ2YsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1NBQ2Y7YUFBTTtZQUNMLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1NBQ3JCO0lBQ0gsQ0FBQzs4R0FoQ1UseUJBQXlCO2tHQUF6Qix5QkFBeUIsMGJDM0J0Qyw0OEVBZ0ZBLDRJRGhFSSxnQkFBZ0IsNlRBQ2hCLE9BQU8sb0ZBQ1AsSUFBSSw2RkFDSixtQkFBbUIseWpCQUNuQixtQkFBbUIsaUpBQ25CLFNBQVMseUNBQ1QsZUFBZSxtREFDZixhQUFhLGdEQUNiLGtCQUFrQjs7MkZBR1QseUJBQXlCO2tCQWpCckMsU0FBUzsrQkFDRSx3QkFBd0IsY0FHdEIsSUFBSSxXQUNQO3dCQUNQLGdCQUFnQjt3QkFDaEIsT0FBTzt3QkFDUCxJQUFJO3dCQUNKLG1CQUFtQjt3QkFDbkIsbUJBQW1CO3dCQUNuQixTQUFTO3dCQUNULGVBQWU7d0JBQ2YsYUFBYTt3QkFDYixrQkFBa0I7cUJBQ25CO3dEQUdRLE1BQU07c0JBQWQsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRnVuY3Rpb25DYWxsZXIxLCBWYWx1ZUZvcm1hdHRlclBpcGUgfSBmcm9tICcuLi8uLi9waXBlcy91dGlsaXR5LnBpcGUnO1xuaW1wb3J0IHsgVHJhbnNsYXRlUGlwZSB9IGZyb20gJy4uLy4uL3BpcGVzL3RyYW5zbGF0ZS5waXBlJztcbmltcG9ydCB7IE1yb3V0ZXJMaW5raXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL2luZGV4LmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBJbnB1dEJhc2ljQ29tcG9uZW50IH0gZnJvbSAnLi4vaW5wdXQvaW5wdXQtYmFzaWMuY29tcG9uZW50JztcbmltcG9ydCB7IE5nQ2xhc3MsIE5nSWYsIEFzeW5jUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBNYXRUb29sdGlwTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbHRpcCc7XG5pbXBvcnQgeyBJbnB1dFR5cGUgfSBmcm9tICcuLi8uLi9tb2RlbHMvaW5kZXgubW9kZWwnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtZWRpdGFibGUtdGV4dC1jYXNlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2VkaXRhYmxlLXRleHQtY2FzZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2VkaXRhYmxlLXRleHQtY2FzZS5jb21wb25lbnQuc2NzcyddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgTWF0VG9vbHRpcE1vZHVsZSxcbiAgICBOZ0NsYXNzLFxuICAgIE5nSWYsXG4gICAgSW5wdXRCYXNpY0NvbXBvbmVudCxcbiAgICBNcm91dGVyTGlua2lyZWN0aXZlLFxuICAgIEFzeW5jUGlwZSxcbiAgICBGdW5jdGlvbkNhbGxlcjEsXG4gICAgVHJhbnNsYXRlUGlwZSxcbiAgICBWYWx1ZUZvcm1hdHRlclBpcGUsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEVkaXRhYmxlVGV4dENhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSBhY3Rpb246IGFueTtcbiAgQElucHV0KCkgY29sb3JlZExibDogYm9vbGVhbjtcbiAgQElucHV0KCkgY29sb3JlZFZhbDogYm9vbGVhbjtcbiAgQElucHV0KCkgZm9ybTogYW55O1xuICBASW5wdXQoKSBmb3JtYXR0ZXI6IChpdGVtKSA9PiBzdHJpbmcgfCBQcm9taXNlPHN0cmluZz4gfCBPYnNlcnZhYmxlPHN0cmluZz47XG4gIEBJbnB1dCgpIGhpbnQ6IHN0cmluZztcbiAgQElucHV0KCkgdmFsdWVIaW50OiBzdHJpbmc7XG4gIEBJbnB1dCgpIGxhYmVsOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGxpZ2h0OiBib29sZWFuO1xuICBASW5wdXQoKSBtaW5pOiBib29sZWFuO1xuICBASW5wdXQoKSBuYW1lOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHJvdXRlOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHJvdXRlRnVuYzogKGl0ZW0pID0+IFByb21pc2U8c3RyaW5nPiB8IE9ic2VydmFibGU8c3RyaW5nPjtcbiAgQElucHV0KCkgc2hvd0VkaXRpbmc6IGJvb2xlYW47XG4gIEBJbnB1dCgpIHN0YWNrZWQ6IGJvb2xlYW47XG4gIEBJbnB1dCgpIHR5cGU6IElucHV0VHlwZTtcbiAgQElucHV0KCkgdmFsdWU6IGFueTtcbiAgQElucHV0KCkgd3JhcExhYmVsOiBib29sZWFuID0gdHJ1ZTtcbiAgZWRpdGluZzogYm9vbGVhbjtcbiAgY29uc3RydWN0b3IoKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge31cbiAgcmVzZXQoKSB7XG4gICAgdGhpcy5lZGl0aW5nID0gZmFsc2U7XG4gIH1cbiAgdW5yZXNldCgpIHtcbiAgICBpZiAodGhpcy5hY3Rpb24pIHtcbiAgICAgIHRoaXMuYWN0aW9uKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZWRpdGluZyA9IHRydWU7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwicm93IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxuICA8bGFiZWxcbiAgICBbbWF0VG9vbHRpcF09XCJoaW50XCJcbiAgICBjbGFzcz1cImNvbC1tZC17e1xuICAgICAgc3RhY2tlZCA/ICcxMiBwYi0wJyA6IG1pbmkgPyAnYXV0bycgOiAnJ1xuICAgIH19IG0tMCBoaWRlLXNjcm9sbC14XCJcbiAgICBbbmdDbGFzc109XCJ7XG4gICAgICAndGV4dC1wcmltYXJ5JzogY29sb3JlZExibCxcbiAgICAgIGxpZ2h0LFxuICAgICAgJ292ZXJmbG93LXgtYXV0byc6IHdyYXBMYWJlbFxuICAgIH1cIlxuICA+XG4gICAge3sgbGFiZWwgfCBhcHBUcmFuc2xhdGUgfCBhc3luYyB9fVxuICA8L2xhYmVsPlxuICA8ZGl2IGNsYXNzPVwie3sgc3RhY2tlZCA/ICdjb2wtMTInIDogJ2NvbC1tZCcgfX0gcG9zaXRpb24tcmVsYXRpdmVcIj5cbiAgICA8ZGl2IGNsYXNzPVwicm93IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxuICAgICAgQGlmIChlZGl0aW5nKSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtOSBwZS0wXCI+XG4gICAgICAgICAgPGFwcC1pbnB1dC1iYXNpY1xuICAgICAgICAgICAgW2Zvcm1dPVwiZm9ybVwiXG4gICAgICAgICAgICBbc3RhY2tlZF09XCJ0cnVlXCJcbiAgICAgICAgICAgIFtzaG93TGFiZWxdPVwiZmFsc2VcIlxuICAgICAgICAgICAgW25hbWVdPVwibmFtZVwiXG4gICAgICAgICAgICBbdHlwZV09XCJ0eXBlXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgPC9hcHAtaW5wdXQtYmFzaWM+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWF1dG9cIj5cbiAgICAgICAgICA8aVxuICAgICAgICAgICAgKGNsaWNrKT1cInJlc2V0KClcIlxuICAgICAgICAgICAgY2xhc3M9XCJwcy0xIHBvaW50ZXIgZmFzIGZhLXVuZG8tYWx0IHRleHQtZGFuZ2VyXCJcbiAgICAgICAgICA+PC9pPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICA8YVxuICAgICAgICAgIFttYXRUb29sdGlwXT1cInZhbHVlSGludFwiXG4gICAgICAgICAgW21yb3V0ZXJMaW5rXT1cInJvdXRlIHx8IChyb3V0ZUZ1bmMgfCBmdW5jdGlvbkNhbGxlcjE6IHZhbHVlIHwgYXN5bmMpXCJcbiAgICAgICAgICBjbGFzcz1cInt7ICFjb2xvcmVkVmFsID8gJycgOiAndGV4dC1wcmltYXJ5JyB9fSBjb2wte3tcbiAgICAgICAgICAgICFzdGFja2VkID8gJ2F1dG8nIDogc2hvd0VkaXRpbmcgPyAnOScgOiAnMTInXG4gICAgICAgICAgfX0gbGJsXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJoaWRlLXNjcm9sbC14IG92ZXJmbG93LXgtYXV0b1wiPlxuICAgICAgICAgICAge3sgKHZhbHVlIHwgdmFsdWVGb3JtYXR0ZXI6IGZvcm1hdHRlciB8IGFzeW5jKSB8fCBcIi1cIiB9fVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2E+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtYXV0b1wiICpuZ0lmPVwic2hvd0VkaXRpbmdcIj5cbiAgICAgICAgICA8aVxuICAgICAgICAgICAgKGNsaWNrKT1cInVucmVzZXQoKVwiXG4gICAgICAgICAgICBjbGFzcz1cInBzLTEgcG9pbnRlciBmYXMgZmEtcGVuY2lsLWFsdCB7e1xuICAgICAgICAgICAgICAhY29sb3JlZFZhbCA/ICcnIDogJ3RleHQtcHJpbWFyeSdcbiAgICAgICAgICAgIH19XCJcbiAgICAgICAgICA+PC9pPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIH1cbiAgICAgIDxuZy10ZW1wbGF0ZSAjZWxzZVRlbXBsYXRlPlxuICAgICAgICA8YVxuICAgICAgICAgIFttYXRUb29sdGlwXT1cInZhbHVlSGludFwiXG4gICAgICAgICAgW21yb3V0ZXJMaW5rXT1cInJvdXRlIHx8IChyb3V0ZUZ1bmMgfCBmdW5jdGlvbkNhbGxlcjE6IHZhbHVlIHwgYXN5bmMpXCJcbiAgICAgICAgICBjbGFzcz1cInt7ICFjb2xvcmVkVmFsID8gJycgOiAndGV4dC1wcmltYXJ5JyB9fSBjb2wte3tcbiAgICAgICAgICAgICFzdGFja2VkID8gJ2F1dG8nIDogc2hvd0VkaXRpbmcgPyAnOScgOiAnMTInXG4gICAgICAgICAgfX0gbGJsXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJoaWRlLXNjcm9sbC14IG92ZXJmbG93LXgtYXV0b1wiPlxuICAgICAgICAgICAge3sgKHZhbHVlIHwgdmFsdWVGb3JtYXR0ZXI6IGZvcm1hdHRlciB8IGFzeW5jKSB8fCBcIi1cIiB9fVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2E+XG4gICAgICAgIEBpZiAoc2hvd0VkaXRpbmcpIHtcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWF1dG9cIj5cbiAgICAgICAgICAgIDxpXG4gICAgICAgICAgICAgIChjbGljayk9XCJ1bnJlc2V0KClcIlxuICAgICAgICAgICAgICBjbGFzcz1cInBzLTEgcG9pbnRlciBmYXMgZmEtcGVuY2lsLWFsdCB7e1xuICAgICAgICAgICAgICAgICFjb2xvcmVkVmFsID8gJycgOiAndGV4dC1wcmltYXJ5J1xuICAgICAgICAgICAgICB9fVwiXG4gICAgICAgICAgICA+PC9pPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
@@ -1,13 +1,14 @@
1
1
  import { CommonModule } from '@angular/common';
2
- import { Component, ElementRef, Input, inject } from '@angular/core';
2
+ import { Component, Input } from '@angular/core';
3
3
  import { FormArray, FormGroup } from '@angular/forms';
4
4
  import { debounceTime, merge } from 'rxjs';
5
5
  import { ValidationMessageComponent } from '../input/validation-message/validation-message.component';
6
6
  import { BtnComponent } from '../btn/btn.component';
7
7
  import { TranslatePipe } from '../../pipes/translate.pipe';
8
- import { UtilityService } from '../../../Services/utility.service';
8
+ import { uniqBy } from 'lodash-es';
9
9
  import * as i0 from "@angular/core";
10
- import * as i1 from "@angular/common";
10
+ import * as i1 from "../../../Services/utility.service";
11
+ import * as i2 from "@angular/common";
11
12
  export class FormErrorComponent {
12
13
  set _form(v) {
13
14
  if (Array.isArray(v)) {
@@ -17,7 +18,7 @@ export class FormErrorComponent {
17
18
  .subscribe((r) => {
18
19
  // debugger;
19
20
  if (r == 'INVALID' || v.some((f) => f.status == 'INVALID'))
20
- this.errors = v.flatMap((f) => this.getErrorMessages(f));
21
+ this.errors = uniqBy(v.flatMap((f) => this.getErrorMessages(f)), 'message');
21
22
  else {
22
23
  this.errors = [];
23
24
  }
@@ -37,11 +38,11 @@ export class FormErrorComponent {
37
38
  });
38
39
  }
39
40
  }
40
- constructor() {
41
+ constructor(el, uS) {
42
+ this.el = el;
43
+ this.uS = uS;
41
44
  this.lgGridNo = 2;
42
45
  this.xxlGridNo = 3;
43
- this.el = inject((ElementRef));
44
- this.uS = inject(UtilityService);
45
46
  }
46
47
  getErrorMessages(form, formName, _index) {
47
48
  // debugger;
@@ -70,16 +71,19 @@ export class FormErrorComponent {
70
71
  // debugger;
71
72
  // console.log('message', this.message);
72
73
  }
74
+ ngAfterViewInit() {
75
+ console.log(this.el);
76
+ }
73
77
  ngOnDestroy() {
74
78
  this.sub?.unsubscribe();
75
79
  }
76
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: FormErrorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
77
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.0", type: FormErrorComponent, isStandalone: true, selector: "form-error", inputs: { lgGridNo: "lgGridNo", xxlGridNo: "xxlGridNo", _form: ["form", "_form"] }, ngImport: i0, template: "@if (errors?.length) {\n\n <div class=\"d-flex justify-content-end mt-2\">\n <app-btn text=\"Form Errors\" icon=\"info\" type=\"clear\" mclass=\"btn-outline-warning\" (mclick)=\"errCont.hidden=!errCont.hidden\" />\n </div>\n <div class=\"border rounded-10 p-3 mt-2\" #errCont [hidden]=\"true\">\n <div class=\"row row-cols-lg-{{lgGridNo}} row-cols-xxl-{{xxlGridNo}}\">\n @if (false) {\n<div class=\"col-lg-12 d-flex\">\n <div>\n <div class=\"pe-3\">{{'Form errors'|appTranslate|async}}</div>\n <!-- <hr class=\"my-0\"> -->\n </div>\n </div>\n}\n @for (item of errors; track item) {\n <div class=\" \">\n <app-validation-message [label]=\"item.label|titlecase\" [ignoreDirtiness]=\"true\"\n [control]=\"item.formControl\" />\n </div>\n}\n </div>\n </div>\n\n\n}", styles: [":host ::ng-deep .errormssg{color:#870000}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i1.TitleCasePipe, name: "titlecase" }, { kind: "pipe", type: TranslatePipe, name: "appTranslate" }, { kind: "component", type: ValidationMessageComponent, selector: "app-validation-message", inputs: ["validationKey", "control", "input", "label", "minLength", "maxLength", "ignoreDirtiness", "customMessage"] }, { kind: "component", type: BtnComponent, selector: "app-btn", inputs: ["formSchema", "centerBtn", "danger", "warning", "icon", "rightIcon", "leftIcon", "type", "group", "actionType", "animate", "excludeLogging", "loggingValue", "badge", "class", "customIcon", "disabled", "form", "forms", "help", "iconBtn", "loading", "mclass", "showHelpIcon", "rightCustomIcon", "leftCustomIcon", "text", "valid", "mini", "onFormInvalid"], outputs: ["mclick"] }] }); }
80
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: FormErrorComponent, deps: [{ token: i0.ElementRef }, { token: i1.UtilityService }], target: i0.ɵɵFactoryTarget.Component }); }
81
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.0", type: FormErrorComponent, isStandalone: true, selector: "form-error", inputs: { lgGridNo: "lgGridNo", xxlGridNo: "xxlGridNo", _form: ["form", "_form"] }, ngImport: i0, template: "@if (errors?.length) {\n\n <div class=\"d-flex justify-content-end mt-2\">\n <app-btn text=\"Form Errors\" icon=\"info\" type=\"clear\" mclass=\"btn-outline-warning\" (mclick)=\"errCont.hidden=!errCont.hidden\" />\n </div>\n <div class=\"border rounded-10 p-3 mt-2\" #errCont [hidden]=\"true\">\n <div class=\"row row-cols-lg-{{lgGridNo}} row-cols-xxl-{{xxlGridNo}}\">\n @if (false) {\n<div class=\"col-lg-12 d-flex\">\n <div>\n <div class=\"pe-3\">{{'Form errors'|appTranslate|async}}</div>\n <!-- <hr class=\"my-0\"> -->\n </div>\n </div>\n}\n @for (item of errors; track item) {\n <div class=\" \">\n <app-validation-message [label]=\"item.label|titlecase\" [ignoreDirtiness]=\"true\"\n [control]=\"item.formControl\" />\n </div>\n}\n </div>\n </div>\n\n\n}", styles: [":host ::ng-deep .errormssg{color:#870000}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.TitleCasePipe, name: "titlecase" }, { kind: "pipe", type: TranslatePipe, name: "appTranslate" }, { kind: "component", type: ValidationMessageComponent, selector: "app-validation-message", inputs: ["validationKey", "control", "input", "label", "minLength", "maxLength", "ignoreDirtiness", "customMessage"] }, { kind: "component", type: BtnComponent, selector: "app-btn", inputs: ["formSchema", "centerBtn", "danger", "warning", "icon", "rightIcon", "leftIcon", "type", "group", "actionType", "animate", "excludeLogging", "loggingValue", "badge", "class", "customIcon", "disabled", "form", "forms", "help", "iconBtn", "loading", "mclass", "showHelpIcon", "rightCustomIcon", "leftCustomIcon", "text", "valid", "mini", "onFormInvalid"], outputs: ["mclick"] }] }); }
78
82
  }
79
83
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: FormErrorComponent, decorators: [{
80
84
  type: Component,
81
85
  args: [{ selector: 'form-error', standalone: true, imports: [CommonModule, TranslatePipe, ValidationMessageComponent, BtnComponent], template: "@if (errors?.length) {\n\n <div class=\"d-flex justify-content-end mt-2\">\n <app-btn text=\"Form Errors\" icon=\"info\" type=\"clear\" mclass=\"btn-outline-warning\" (mclick)=\"errCont.hidden=!errCont.hidden\" />\n </div>\n <div class=\"border rounded-10 p-3 mt-2\" #errCont [hidden]=\"true\">\n <div class=\"row row-cols-lg-{{lgGridNo}} row-cols-xxl-{{xxlGridNo}}\">\n @if (false) {\n<div class=\"col-lg-12 d-flex\">\n <div>\n <div class=\"pe-3\">{{'Form errors'|appTranslate|async}}</div>\n <!-- <hr class=\"my-0\"> -->\n </div>\n </div>\n}\n @for (item of errors; track item) {\n <div class=\" \">\n <app-validation-message [label]=\"item.label|titlecase\" [ignoreDirtiness]=\"true\"\n [control]=\"item.formControl\" />\n </div>\n}\n </div>\n </div>\n\n\n}", styles: [":host ::ng-deep .errormssg{color:#870000}\n"] }]
82
- }], ctorParameters: () => [], propDecorators: { lgGridNo: [{
86
+ }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.UtilityService }], propDecorators: { lgGridNo: [{
83
87
  type: Input
84
88
  }], xxlGridNo: [{
85
89
  type: Input
@@ -94,4 +98,4 @@ function hasError(control) {
94
98
  return true;
95
99
  return false;
96
100
  }
97
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1lcnJvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ldHMtZmUtbmctc2RrL3NyYy9saWIvU2hhcmVkL2NvbXBvbmVudHMvZm9ybS1lcnJvci9mb3JtLWVycm9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V0cy1mZS1uZy1zZGsvc3JjL2xpYi9TaGFyZWQvY29tcG9uZW50cy9mb3JtLWVycm9yL2Zvcm0tZXJyb3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckUsT0FBTyxFQUFtQixTQUFTLEVBQWUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDcEYsT0FBTyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBQ3pELE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLDBEQUEwRCxDQUFDO0FBQ3RHLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNwRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1DQUFtQyxDQUFDOzs7QUFTbkUsTUFBTSxPQUFPLGtCQUFrQjtJQU83QixJQUE4QyxLQUFLLENBQUMsQ0FBZ0I7UUFDbEUsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ3BCLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDO1lBQ2YsSUFBSSxDQUFDLEdBQUcsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFD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bmltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5wdXQsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBGb3JtQXJyYXksIEZvcm1Db250cm9sLCBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIG1lcmdlLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFZhbGlkYXRpb25NZXNzYWdlQ29tcG9uZW50IH0gZnJvbSAnLi4vaW5wdXQvdmFsaWRhdGlvbi1tZXNzYWdlL3ZhbGlkYXRpb24tbWVzc2FnZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQnRuQ29tcG9uZW50IH0gZnJvbSAnLi4vYnRuL2J0bi5jb21wb25lbnQnO1xuaW1wb3J0IHsgVHJhbnNsYXRlUGlwZSB9IGZyb20gJy4uLy4uL3BpcGVzL3RyYW5zbGF0ZS5waXBlJztcbmltcG9ydCB7IFV0aWxpdHlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vU2VydmljZXMvdXRpbGl0eS5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZm9ybS1lcnJvcicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHRlbXBsYXRlVXJsOiAnLi9mb3JtLWVycm9yLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZm9ybS1lcnJvci5jb21wb25lbnQuc2NzcyddLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBUcmFuc2xhdGVQaXBlLCBWYWxpZGF0aW9uTWVzc2FnZUNvbXBvbmVudCwgQnRuQ29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgRm9ybUVycm9yQ29tcG9uZW50IHtcbiAgZXJyb3JzOiB7IG1lc3NhZ2U/OiBzdHJpbmc7IGZvcm1Db250cm9sOiBBYnN0cmFjdENvbnRyb2w7IGxhYmVsOiBzdHJpbmcgfVtdO1xuICBmb3JtOiBGb3JtO1xuICBmb3JtczogRm9ybVtdO1xuICBASW5wdXQoKSBsZ0dyaWRObzogbnVtYmVyIHwgJ2F1dG8nID0gMjtcbiAgQElucHV0KCkgeHhsR3JpZE5vOiBudW1iZXIgfCAnYXV0bycgPSAzO1xuXG4gIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlLCBhbGlhczogJ2Zvcm0nIH0pIHNldCBfZm9ybSh2OiBGb3JtIHwgRm9ybVtdKSB7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkodikpIHtcbiAgICAgIHRoaXMuZm9ybXMgPSB2O1xuICAgICAgdGhpcy5zdWIgPSBtZXJnZSguLi52Lm1hcCgoZikgPT4gZi5zdGF0dXNDaGFuZ2VzKSlcbiAgICAgICAgLnBpcGUoZGVib3VuY2VUaW1lKDYwMCkpXG4gICAgICAgIC5zdWJzY3JpYmUoKHIpID0+IHtcbiAgICAgICAgICAvLyBkZWJ1Z2dlcjtcbiAgICAgICAgICBpZiAociA9PSAnSU5WQUxJRCcgfHwgdi5zb21lKChmKSA9PiBmLnN0YXR1cyA9PSAnSU5WQUxJRCcpKSB0aGlzLmVycm9ycyA9IHYuZmxhdE1hcCgoZikgPT4gdGhpcy5nZXRFcnJvck1lc3NhZ2VzKGYpKTtcbiAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZXJyb3JzID0gW107XG4gICAgICAgICAgfVxuICAgICAgICAgIC8vIGNvbnNvbGUubG9nKHIsIHYuc3RhdHVzLCB0aGlzLmVycm9ycyk7XG4gICAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmZvcm0gPSB2O1xuICAgICAgdGhpcy5zdWIgPSB2LnN0YXR1c0NoYW5nZXMucGlwZShkZWJvdW5jZVRpbWUoNjAwKSkuc3Vic2NyaWJlKChyKSA9PiB7XG4gICAgICAgIC8vIGRlYnVnZ2VyO1xuICAgICAgICBpZiAociA9PSAnSU5WQUxJRCcgfHwgdi5zdGF0dXMgPT0gJ0lOVkFMSUQnKSB0aGlzLmVycm9ycyA9IHRoaXMuZ2V0RXJyb3JNZXNzYWdlcyh2KTtcbiAgICAgICAgZWxzZSBpZiAodi5zdGF0dXMgPT0gJ1ZBTElEJykge1xuICAgICAgICAgIHRoaXMuZXJyb3JzID0gW107XG4gICAgICAgIH1cbiAgICAgICAgLy8gY29uc29sZS5sb2cociwgdi5zdGF0dXMsIHRoaXMuZXJyb3JzKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHN1YjogU3Vic2NyaXB0aW9uO1xuICBwdWJsaWMgZWwgPSBpbmplY3QoRWxlbWVudFJlZjxIVE1MRWxlbWVudD4pO1xuICBwdWJsaWMgdVMgPSBpbmplY3QoVXRpbGl0eVNlcnZpY2UpO1xuXG4gIGNvbnN0cnVjdG9yKCkge30gXG5cbiAgZ2V0RXJyb3JNZXNzYWdlcyhmb3JtOiBGb3JtIHwgQWJzdHJhY3RDb250cm9sLCBmb3JtTmFtZT86IHN0cmluZywgX2luZGV4PzogbnVtYmVyKTogdHlwZW9mIHRoaXMuZXJyb3JzIHtcbiAgICAvLyBkZWJ1Z2dlcjtcbiAgICBsZXQgbWVzc2FnZXM6IHR5cGVvZiB0aGlzLmVycm9ycyA9IFtdO1xuICAgIGlmIChoYXNFcnJvcihmb3JtKSkge1xuICAgICAgLy8gZGVidWdnZXI7XG4gICAgICBtZXNzYWdlcy5wdXNoKHtcbiAgICAgICAgZm9ybUNvbnRyb2w6IGZvcm0sXG4gICAgICAgIGxhYmVsOlxuICAgICAgICAgIChfaW5kZXggPyBgSXRlbSAke19pbmRleH06IGAgOiAnJykgK1xuICAgICAgICAgIChmb3JtLmxhYmVsVmFsdWUgfHwgdGhpcy51Uy5mb3JtYXRGaWVsZChmb3JtTmFtZSkgfHwgZm9ybU5hbWU/LnRvU2VudGVuY2VDYXNlKCkpLFxuICAgICAgfSk7XG4gICAgfVxuICAgIGlmIChmb3JtIGluc3RhbmNlb2YgRm9ybUdyb3VwKVxuICAgICAgZm9yIChjb25zdCBrZXkgaW4gZm9ybS5jb250cm9scykge1xuICAgICAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGZvcm0uY29udHJvbHMsIGtleSkpIHtcbiAgICAgICAgICBjb25zdCBjb250cm9sID0gZm9ybS5jb250cm9sc1trZXldO1xuICAgICAgICAgIG1lc3NhZ2VzLnB1c2goLi4udGhpcy5nZXRFcnJvck1lc3NhZ2VzKGNvbnRyb2wsIGtleSwgX2luZGV4KSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICBlbHNlIGlmIChmb3JtIGluc3RhbmNlb2YgRm9ybUFycmF5KVxuICAgICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IGZvcm0ubGVuZ3RoOyBpbmRleCsrKSB7XG4gICAgICAgIGNvbnN0IGNvbnRyb2wgPSBmb3JtLmNvbnRyb2xzW2luZGV4XTtcbiAgICAgICAgbWVzc2FnZXMucHVzaCguLi50aGlzLmdldEVycm9yTWVzc2FnZXMoY29udHJvbCwgbnVsbCwgaW5kZXggKyAxKSk7XG4gICAgICB9XG4gICAgcmV0dXJuIG1lc3NhZ2VzO1xuICAgIC8vIGRlYnVnZ2VyO1xuICAgIC8vIGNvbnNvbGUubG9nKCdtZXNzYWdlJywgdGhpcy5tZXNzYWdlKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuc3ViPy51bnN1YnNjcmliZSgpO1xuICB9XG59XG50eXBlIEZvcm0gPSBGb3JtR3JvdXAgfCBGb3JtQ29udHJvbCB8IEZvcm1BcnJheTtcblxuZnVuY3Rpb24gaGFzRXJyb3IoY29udHJvbDogQWJzdHJhY3RDb250cm9sKSB7XG4gIGlmICghY29udHJvbD8uZXJyb3JzKSByZXR1cm4gZmFsc2U7XG4gIGVsc2UgaWYgKE9iamVjdC5rZXlzKGNvbnRyb2wuZXJyb3JzKS5sZW5ndGgpIHJldHVybiB0cnVlO1xuICByZXR1cm4gZmFsc2U7XG59XG4iLCJAaWYgKGVycm9ycz8ubGVuZ3RoKSB7XG5cbiAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1lbmQgbXQtMlwiPlxuICAgICAgICA8YXBwLWJ0biB0ZXh0PVwiRm9ybSBFcnJvcnNcIiBpY29uPVwiaW5mb1wiIHR5cGU9XCJjbGVhclwiIG1jbGFzcz1cImJ0bi1vdXRsaW5lLXdhcm5pbmdcIiAobWNsaWNrKT1cImVyckNvbnQuaGlkZGVuPSFlcnJDb250LmhpZGRlblwiIC8+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImJvcmRlciByb3VuZGVkLTEwIHAtMyBtdC0yXCIgI2VyckNvbnQgW2hpZGRlbl09XCJ0cnVlXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgcm93LWNvbHMtbGcte3tsZ0dyaWROb319IHJvdy1jb2xzLXh4bC17e3h4bEdyaWROb319XCI+XG4gICAgICAgICAgICBAaWYgKGZhbHNlKSB7XG48ZGl2IGNsYXNzPVwiY29sLWxnLTEyIGQtZmxleFwiPlxuICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwZS0zXCI+e3snRm9ybSBlcnJvcnMnfGFwcFRyYW5zbGF0ZXxhc3luY319PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwhLS0gPGhyIGNsYXNzPVwibXktMFwiPiAtLT5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxufVxuICAgICAgICAgICAgQGZvciAoaXRlbSBvZiBlcnJvcnM7IHRyYWNrIGl0ZW0pIHtcbiAgPGRpdiBjbGFzcz1cIiBcIj5cbiAgICAgICAgICAgICAgICA8YXBwLXZhbGlkYXRpb24tbWVzc2FnZSBbbGFiZWxdPVwiaXRlbS5sYWJlbHx0aXRsZWNhc2VcIiBbaWdub3JlRGlydGluZXNzXT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICBbY29udHJvbF09XCJpdGVtLmZvcm1Db250cm9sXCIgLz5cbiAgICAgICAgICAgIDwvZGl2PlxufVxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuXG59Il19
101
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1lcnJvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ldHMtZmUtbmctc2RrL3NyYy9saWIvU2hhcmVkL2NvbXBvbmVudHMvZm9ybS1lcnJvci9mb3JtLWVycm9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V0cy1mZS1uZy1zZGsvc3JjL2xpYi9TaGFyZWQvY29tcG9uZW50cy9mb3JtLWVycm9yL2Zvcm0tZXJyb3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQWMsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ3JFLE9BQU8sRUFBbUIsU0FBUyxFQUFlLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3BGLE9BQU8sRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUN6RCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSwwREFBMEQsQ0FBQztBQUN0RyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDcEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRTNELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxXQUFXLENBQUM7Ozs7QUFTbkMsTUFBTSxPQUFPLGtCQUFrQjtJQU83QixJQUE4QyxLQUFLLENBQUMsQ0FBZ0I7UUFDbEUsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ3BCLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDO1lBQ2YsSUFBSSxDQUFDLEdBQUcsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUs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ZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIElucHV0LCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgRm9ybUFycmF5LCBGb3JtQ29udHJvbCwgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBtZXJnZSwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBWYWxpZGF0aW9uTWVzc2FnZUNvbXBvbmVudCB9IGZyb20gJy4uL2lucHV0L3ZhbGlkYXRpb24tbWVzc2FnZS92YWxpZGF0aW9uLW1lc3NhZ2UuY29tcG9uZW50JztcbmltcG9ydCB7IEJ0bkNvbXBvbmVudCB9IGZyb20gJy4uL2J0bi9idG4uY29tcG9uZW50JztcbmltcG9ydCB7IFRyYW5zbGF0ZVBpcGUgfSBmcm9tICcuLi8uLi9waXBlcy90cmFuc2xhdGUucGlwZSc7XG5pbXBvcnQgeyBVdGlsaXR5U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL1NlcnZpY2VzL3V0aWxpdHkuc2VydmljZSc7XG5pbXBvcnQgeyB1bmlxQnkgfSBmcm9tICdsb2Rhc2gtZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdmb3JtLWVycm9yJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgdGVtcGxhdGVVcmw6ICcuL2Zvcm0tZXJyb3IuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9mb3JtLWVycm9yLmNvbXBvbmVudC5zY3NzJ10sXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFRyYW5zbGF0ZVBpcGUsIFZhbGlkYXRpb25NZXNzYWdlQ29tcG9uZW50LCBCdG5Db21wb25lbnRdLFxufSlcbmV4cG9ydCBjbGFzcyBGb3JtRXJyb3JDb21wb25lbnQge1xuICBlcnJvcnM6IHsgbWVzc2FnZT86IHN0cmluZzsgZm9ybUNvbnRyb2w6IEFic3RyYWN0Q29udHJvbDsgbGFiZWw6IHN0cmluZyB9W107XG4gIGZvcm06IEZvcm07XG4gIGZvcm1zOiBGb3JtW107XG4gIEBJbnB1dCgpIGxnR3JpZE5vOiBudW1iZXIgfCAnYXV0bycgPSAyO1xuICBASW5wdXQoKSB4eGxHcmlkTm86IG51bWJlciB8ICdhdXRvJyA9IDM7XG5cbiAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUsIGFsaWFzOiAnZm9ybScgfSkgc2V0IF9mb3JtKHY6IEZvcm0gfCBGb3JtW10pIHtcbiAgICBpZiAoQXJyYXkuaXNBcnJheSh2KSkge1xuICAgICAgdGhpcy5mb3JtcyA9IHY7XG4gICAgICB0aGlzLnN1YiA9IG1lcmdlKC4uLnYubWFwKChmKSA9PiBmLnN0YXR1c0NoYW5nZXMpKVxuICAgICAgICAucGlwZShkZWJvdW5jZVRpbWUoNjAwKSlcbiAgICAgICAgLnN1YnNjcmliZSgocikgPT4ge1xuICAgICAgICAgIC8vIGRlYnVnZ2VyO1xuICAgICAgICAgIGlmIChyID09ICdJTlZBTElEJyB8fCB2LnNvbWUoKGYpID0+IGYuc3RhdHVzID09ICdJTlZBTElEJykpXG4gICAgICAgICAgICB0aGlzLmVycm9ycyA9IHVuaXFCeShcbiAgICAgICAgICAgICAgdi5mbGF0TWFwKChmKSA9PiB0aGlzLmdldEVycm9yTWVzc2FnZXMoZikpLFxuICAgICAgICAgICAgICAnbWVzc2FnZScsXG4gICAgICAgICAgICApO1xuICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5lcnJvcnMgPSBbXTtcbiAgICAgICAgICB9XG4gICAgICAgICAgLy8gY29uc29sZS5sb2cociwgdi5zdGF0dXMsIHRoaXMuZXJyb3JzKTtcbiAgICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZm9ybSA9IHY7XG4gICAgICB0aGlzLnN1YiA9IHYuc3RhdHVzQ2hhbmdlcy5waXBlKGRlYm91bmNlVGltZSg2MDApKS5zdWJzY3JpYmUoKHIpID0+IHtcbiAgICAgICAgLy8gZGVidWdnZXI7XG4gICAgICAgIGlmIChyID09ICdJTlZBTElEJyB8fCB2LnN0YXR1cyA9PSAnSU5WQUxJRCcpIHRoaXMuZXJyb3JzID0gdGhpcy5nZXRFcnJvck1lc3NhZ2VzKHYpO1xuICAgICAgICBlbHNlIGlmICh2LnN0YXR1cyA9PSAnVkFMSUQnKSB7XG4gICAgICAgICAgdGhpcy5lcnJvcnMgPSBbXTtcbiAgICAgICAgfVxuICAgICAgICAvLyBjb25zb2xlLmxvZyhyLCB2LnN0YXR1cywgdGhpcy5lcnJvcnMpO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgc3ViOiBTdWJzY3JpcHRpb247XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGVsOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PixcbiAgICBwdWJsaWMgdVM6IFV0aWxpdHlTZXJ2aWNlLFxuICApIHt9XG5cbiAgZ2V0RXJyb3JNZXNzYWdlcyhmb3JtOiBGb3JtIHwgQWJzdHJhY3RDb250cm9sLCBmb3JtTmFtZT86IHN0cmluZywgX2luZGV4PzogbnVtYmVyKTogdHlwZW9mIHRoaXMuZXJyb3JzIHtcbiAgICAvLyBkZWJ1Z2dlcjtcbiAgICBsZXQgbWVzc2FnZXM6IHR5cGVvZiB0aGlzLmVycm9ycyA9IFtdO1xuICAgIGlmIChoYXNFcnJvcihmb3JtKSkge1xuICAgICAgLy8gZGVidWdnZXI7XG4gICAgICBtZXNzYWdlcy5wdXNoKHtcbiAgICAgICAgZm9ybUNvbnRyb2w6IGZvcm0sXG4gICAgICAgIGxhYmVsOlxuICAgICAgICAgIChfaW5kZXggPyBgSXRlbSAke19pbmRleH06IGAgOiAnJykgK1xuICAgICAgICAgIChmb3JtLmxhYmVsVmFsdWUgfHwgdGhpcy51Uy5mb3JtYXRGaWVsZChmb3JtTmFtZSkgfHwgZm9ybU5hbWU/LnRvU2VudGVuY2VDYXNlKCkpLFxuICAgICAgfSk7XG4gICAgfVxuICAgIGlmIChmb3JtIGluc3RhbmNlb2YgRm9ybUdyb3VwKVxuICAgICAgZm9yIChjb25zdCBrZXkgaW4gZm9ybS5jb250cm9scykge1xuICAgICAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGZvcm0uY29udHJvbHMsIGtleSkpIHtcbiAgICAgICAgICBjb25zdCBjb250cm9sID0gZm9ybS5jb250cm9sc1trZXldO1xuICAgICAgICAgIG1lc3NhZ2VzLnB1c2goLi4udGhpcy5nZXRFcnJvck1lc3NhZ2VzKGNvbnRyb2wsIGtleSwgX2luZGV4KSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICBlbHNlIGlmIChmb3JtIGluc3RhbmNlb2YgRm9ybUFycmF5KVxuICAgICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IGZvcm0ubGVuZ3RoOyBpbmRleCsrKSB7XG4gICAgICAgIGNvbnN0IGNvbnRyb2wgPSBmb3JtLmNvbnRyb2xzW2luZGV4XTtcbiAgICAgICAgbWVzc2FnZXMucHVzaCguLi50aGlzLmdldEVycm9yTWVzc2FnZXMoY29udHJvbCwgbnVsbCwgaW5kZXggKyAxKSk7XG4gICAgICB9XG4gICAgcmV0dXJuIG1lc3NhZ2VzO1xuICAgIC8vIGRlYnVnZ2VyO1xuICAgIC8vIGNvbnNvbGUubG9nKCdtZXNzYWdlJywgdGhpcy5tZXNzYWdlKTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICBjb25zb2xlLmxvZyh0aGlzLmVsKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuc3ViPy51bnN1YnNjcmliZSgpO1xuICB9XG59XG50eXBlIEZvcm0gPSBGb3JtR3JvdXAgfCBGb3JtQ29udHJvbCB8IEZvcm1BcnJheTtcblxuZnVuY3Rpb24gaGFzRXJyb3IoY29udHJvbDogQWJzdHJhY3RDb250cm9sKSB7XG4gIGlmICghY29udHJvbD8uZXJyb3JzKSByZXR1cm4gZmFsc2U7XG4gIGVsc2UgaWYgKE9iamVjdC5rZXlzKGNvbnRyb2wuZXJyb3JzKS5sZW5ndGgpIHJldHVybiB0cnVlO1xuICByZXR1cm4gZmFsc2U7XG59XG4iLCJAaWYgKGVycm9ycz8ubGVuZ3RoKSB7XG5cbiAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1lbmQgbXQtMlwiPlxuICAgICAgICA8YXBwLWJ0biB0ZXh0PVwiRm9ybSBFcnJvcnNcIiBpY29uPVwiaW5mb1wiIHR5cGU9XCJjbGVhclwiIG1jbGFzcz1cImJ0bi1vdXRsaW5lLXdhcm5pbmdcIiAobWNsaWNrKT1cImVyckNvbnQuaGlkZGVuPSFlcnJDb250LmhpZGRlblwiIC8+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImJvcmRlciByb3VuZGVkLTEwIHAtMyBtdC0yXCIgI2VyckNvbnQgW2hpZGRlbl09XCJ0cnVlXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgcm93LWNvbHMtbGcte3tsZ0dyaWROb319IHJvdy1jb2xzLXh4bC17e3h4bEdyaWROb319XCI+XG4gICAgICAgICAgICBAaWYgKGZhbHNlKSB7XG48ZGl2IGNsYXNzPVwiY29sLWxnLTEyIGQtZmxleFwiPlxuICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwZS0zXCI+e3snRm9ybSBlcnJvcnMnfGFwcFRyYW5zbGF0ZXxhc3luY319PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwhLS0gPGhyIGNsYXNzPVwibXktMFwiPiAtLT5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxufVxuICAgICAgICAgICAgQGZvciAoaXRlbSBvZiBlcnJvcnM7IHRyYWNrIGl0ZW0pIHtcbiAgPGRpdiBjbGFzcz1cIiBcIj5cbiAgICAgICAgICAgICAgICA8YXBwLXZhbGlkYXRpb24tbWVzc2FnZSBbbGFiZWxdPVwiaXRlbS5sYWJlbHx0aXRsZWNhc2VcIiBbaWdub3JlRGlydGluZXNzXT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICBbY29udHJvbF09XCJpdGVtLmZvcm1Db250cm9sXCIgLz5cbiAgICAgICAgICAgIDwvZGl2PlxufVxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuXG59Il19