verben-workflow-ui 0.5.57 → 0.5.58

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.
@@ -106,11 +106,11 @@ export class SwimlaneDialogComponent {
106
106
  this.searchQuery = '';
107
107
  }
108
108
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SwimlaneDialogComponent, deps: [{ token: i1.FormBuilder }, { token: i2.WorkflowDataService }, { token: i3.SwimlaneService }], target: i0.ɵɵFactoryTarget.Component });
109
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.13", type: SwimlaneDialogComponent, selector: "lib-swimlane-dialog", inputs: { visible: { classPropertyName: "visible", publicName: "visible", isSignal: false, isRequired: false, transformFunction: null }, swimlaneData: { classPropertyName: "swimlaneData", publicName: "swimlaneData", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { closed: "closed", created: "created" }, ngImport: i0, template: "<verben-dialogue\n [showCloseIcon]=\"true\"\n [dismissOutsideClick]=\"true\"\n [closeOnEscape]=\"true\"\n [size]=\"'medium'\"\n [mode]=\"'drawer'\"\n [disableFooter]=\"false\"\n [isVisible]=\"visible\"\n [headerTemplate]=\"headerTemplate\"\n [bodyTemplate]=\"bodyTemplate\"\n [footerTemplate]=\"footerTemplate\"\n (openModal)=\"onDialogOpen($event)\"\n (closeModal)=\"onDialogClose($event)\"\n>\n</verben-dialogue>\n\n<ng-template #headerTemplate>\n <div\n class=\"flex items-center justify-between p-3 text-xs border-b-4 border-[#FFE681]\"\n >\n <button class=\"mr-4\" type=\"button\" (click)=\"onDialogClose($event)\">\n <span\n class=\"block w-2.5 h-2.5 border-t border-l border-[#3E3E3E]/70 transform -rotate-45\"\n ></span>\n </button>\n <div class=\"text-center\">\n <h2 class=\"text-sm font-medium\">Select Tags</h2>\n <span class=\"text-xs text-[#3E3E3E]/70\"\n >{{ this.selectedTags.length }}/{{ tags.length }}</span\n >\n </div>\n <span\n class=\"font-medium cursor-pointer text-[#3E3E3E]/70\"\n (click)=\"applySelection()\"\n >Create</span\n >\n </div>\n</ng-template>\n\n<ng-template #bodyTemplate>\n <div class=\"p-3\">\n <div class=\"mb-4 grid gap-4\">\n <!-- <input\n type=\"text\"\n placeholder=\"Enter Name\"\n class=\"w-full px-4 py-2 rounded-lg border border-[#E7C10B] outline-none\"\n [(ngModel)]=\"workflowName\"\n />\n\n <input\n type=\"search\"\n placeholder=\"Filter Tags\"\n class=\"w-full px-4 py-2 rounded-lg border border-[#E7C10B] outline-none\"\n [(ngModel)]=\"searchQuery\"\n />\n </div>\n\n <div class=\"\">\n <div class=\"py-3\">\n <label class=\"flex items-center\">\n <input type=\"checkbox\" class=\"mr-3\" [(ngModel)]=\"allSelected\" />\n <span class=\"text-sm\">Select All</span>\n </label>\n </div>\n\n <div *ngFor=\"let tag of filteredTags\" class=\"py-3\">\n <label class=\"flex items-center\">\n <input\n type=\"checkbox\"\n class=\"mr-3\"\n [checked]=\"isTagSelected(tag.Name)\"\n (change)=\"toggleTagSelection(tag.Name)\"\n />\n <span class=\"text-sm\">{{ tag.Name }}</span>\n <span *ngIf=\"!tag.IsOptional\" class=\"ml-2 text-xs text-red-500\"\n >(Required)</span\n >\n </label>\n </div> -->\n\n <verbena-input\n [(ngModel)]=\"workflowName\"\n [border]=\"'1px solid #9A9FBF66'\"\n placeHolder=\"Enter Swimlane Label\"\n [bgColor]=\"'white'\"\n ></verbena-input>\n\n <verben-drop-down\n selectKey=\"Code\"\n label=\"Tags\"\n styleClass=\"w-full\"\n width=\"100%\"\n [multiselect]=\"true\"\n placeholder=\"Select\"\n [options]=\"tags\"\n optionLabel=\"Name\"\n id=\"tags\"\n [(ngModel)]=\"selectedTags\"\n class=\"form-control\"\n >\n </verben-drop-down>\n </div>\n </div>\n</ng-template>\n\n<ng-template #footerTemplate>\n <div\n class=\"flex justify-between w-full items-center p-4 border-t border-gray-200\"\n >\n <!-- <button\n class=\"px-4 py-2 mr-2 bg-white border border-gray-200 rounded text-sm font-medium\"\n (click)=\"onDialogClose($event)\"\n >\n Cancel\n </button> -->\n\n <verbena-button\n (click)=\"onDialogClose($event)\"\n text=\"Cancel\"\n styleType=\"ylw-outline\"\n ></verbena-button>\n\n <verbena-button\n type=\"submit\"\n text=\"Save\"\n bgColor=\"#FFE681\"\n textColor=\"#404040\"\n borderRadius=\"10px\"\n pd=\"10px 20px\"\n width=\"114px\"\n height=\"39px\"\n [disable]=\"selectedTags.length < 1\"\n (click)=\"applySelection()\"\n ></verbena-button>\n\n <!-- <verbena-button\n width=\"114px\"\n height=\"39px\"\n text=\"Delete\"\n bgColor=\"#999999\"\n textColor=\"#404040\"\n borderRadius=\"10px\"\n ></verbena-button> -->\n </div>\n</ng-template>\n", styles: [""], dependencies: [{ kind: "component", type: i4.VerbenDialogueComponent, selector: "verben-dialogue", inputs: ["dialogueWidth", "headerTemplate", "bodyTemplate", "footerTemplate", "showCloseIcon", "dismissOutsideClick", "closeOnEscape", "isVisible", "size", "backdropColor", "customClass", "disableFooter", "margin", "padding", "borderRadius", "dialogueBgColor", "width", "closeIconClass", "boxShadow", "enableTransition", "modalData", "mode", "position", "drawerWidth"], outputs: ["openModal", "closeModal"] }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4.VerbenaButtonComponent, selector: "verbena-button", inputs: ["text", "icon", "useIcon", "svgPosition", "iconPosition", "bgColor", "textColor", "border", "borderRadius", "pd", "width", "height", "fontSize", "fontWeight", "disable", "svgSize", "weight", "variant", "styleType", "svg", "svgWidth", "svgHeight", "iconColor", "svgColor", "buttonClass", "buttonTextClass", "isLoading", "spinnerSize", "spinnerColor"] }, { kind: "component", type: i4.DropDownComponent, selector: "verben-drop-down", inputs: ["options", "width", "showHorizontalLine", "horizontalLineColor", "optionLabel", "optionSubLabel", "optionValue", "placeholder", "invalidMessage", "errorPosition", "loadMoreCaption", "display", "showClear", "lazyLoad", "selectKey", "styleClass", "group", "multiselect", "filter", "avoidDuplication", "filterBy", "debounceTime", "minChar", "disabled", "required", "load", "asyncLabel", "search"], outputs: ["optionsChange", "onChange", "onClick", "onClear"] }, { kind: "component", type: i4.VerbenaInputComponent, selector: "verbena-input", inputs: ["label", "placeHolder", "required", "svgPosition", "minLength", "maxLength", "type", "bgColor", "border", "borderRadius", "textColor", "value", "labelPosition", "labelColor", "disable", "readOnly", "min", "max", "showBorder", "showErrorMessage", "errorMessageColor", "errorBorderColor", "errorPosition", "svg", "fontSize", "svgWidth", "svgHeight", "svgColor", "capitalization", "inputContainerClass", "inputFieldClass", "passLength", "inputWrapperClass", "passwordToggle", "customErrorMessages", "icon", "textPass"], outputs: ["valueChange"] }] });
109
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.13", type: SwimlaneDialogComponent, selector: "lib-swimlane-dialog", inputs: { visible: { classPropertyName: "visible", publicName: "visible", isSignal: false, isRequired: false, transformFunction: null }, swimlaneData: { classPropertyName: "swimlaneData", publicName: "swimlaneData", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { closed: "closed", created: "created" }, ngImport: i0, template: "<verben-dialogue\n [showCloseIcon]=\"true\"\n [dismissOutsideClick]=\"true\"\n [closeOnEscape]=\"true\"\n [size]=\"'medium'\"\n [mode]=\"'drawer'\"\n [disableFooter]=\"false\"\n [isVisible]=\"visible\"\n [headerTemplate]=\"headerTemplate\"\n [bodyTemplate]=\"bodyTemplate\"\n [footerTemplate]=\"footerTemplate\"\n (openModal)=\"onDialogOpen($event)\"\n (closeModal)=\"onDialogClose($event)\"\n>\n</verben-dialogue>\n\n<ng-template #headerTemplate>\n <div\n class=\"flex items-center justify-between p-3 text-xs border-b-4 border-[#FFE681]\"\n >\n <button class=\"mr-4\" type=\"button\" (click)=\"onDialogClose($event)\">\n <span\n class=\"block w-2.5 h-2.5 border-t border-l border-[#3E3E3E]/70 transform -rotate-45\"\n ></span>\n </button>\n <div class=\"text-center\">\n <h2 class=\"text-sm font-medium\">Select Tags</h2>\n <span class=\"text-xs text-[#3E3E3E]/70\"\n >{{ this.selectedTags.length }}/{{ tags.length }}</span\n >\n </div>\n <span\n class=\"font-medium cursor-pointer text-[#3E3E3E]/70\"\n (click)=\"applySelection()\"\n >Create</span\n >\n </div>\n</ng-template>\n\n<ng-template #bodyTemplate>\n <div class=\"p-3\">\n <div class=\"mb-4 grid gap-4\">\n <!-- <input\n type=\"text\"\n placeholder=\"Enter Name\"\n class=\"w-full px-4 py-2 rounded-lg border border-[#E7C10B] outline-none\"\n [(ngModel)]=\"workflowName\"\n />\n\n <input\n type=\"search\"\n placeholder=\"Filter Tags\"\n class=\"w-full px-4 py-2 rounded-lg border border-[#E7C10B] outline-none\"\n [(ngModel)]=\"searchQuery\"\n />\n </div>\n\n <div class=\"\">\n <div class=\"py-3\">\n <label class=\"flex items-center\">\n <input type=\"checkbox\" class=\"mr-3\" [(ngModel)]=\"allSelected\" />\n <span class=\"text-sm\">Select All</span>\n </label>\n </div>\n\n <div *ngFor=\"let tag of filteredTags\" class=\"py-3\">\n <label class=\"flex items-center\">\n <input\n type=\"checkbox\"\n class=\"mr-3\"\n [checked]=\"isTagSelected(tag.Name)\"\n (change)=\"toggleTagSelection(tag.Name)\"\n />\n <span class=\"text-sm\">{{ tag.Name }}</span>\n <span *ngIf=\"!tag.IsOptional\" class=\"ml-2 text-xs text-red-500\"\n >(Required)</span\n >\n </label>\n </div> -->\n\n <verbena-input\n [(ngModel)]=\"workflowName\"\n [border]=\"'1px solid #9A9FBF66'\"\n placeHolder=\"Enter Swimlane Label\"\n [bgColor]=\"'white'\"\n ></verbena-input>\n\n <verben-drop-down\n selectKey=\"Code\"\n label=\"Tags\"\n styleClass=\"w-full\"\n width=\"100%\"\n [multiselect]=\"true\"\n placeholder=\"Select\"\n [options]=\"tags\"\n optionLabel=\"Name\"\n id=\"tags\"\n [(ngModel)]=\"selectedTags\"\n class=\"form-control\"\n [filter]=\"true\"\n [filterBy]=\"'Name'\"\n [showClear]=\"true\"\n >\n </verben-drop-down>\n </div>\n </div>\n</ng-template>\n\n<ng-template #footerTemplate>\n <div\n class=\"flex justify-between w-full items-center p-4 border-t border-gray-200\"\n >\n <!-- <button\n class=\"px-4 py-2 mr-2 bg-white border border-gray-200 rounded text-sm font-medium\"\n (click)=\"onDialogClose($event)\"\n >\n Cancel\n </button> -->\n\n <verbena-button\n (click)=\"onDialogClose($event)\"\n text=\"Cancel\"\n styleType=\"ylw-outline\"\n ></verbena-button>\n\n <verbena-button\n type=\"submit\"\n text=\"Save\"\n bgColor=\"#FFE681\"\n textColor=\"#404040\"\n borderRadius=\"10px\"\n pd=\"10px 20px\"\n width=\"114px\"\n height=\"39px\"\n [disable]=\"selectedTags.length < 1\"\n (click)=\"applySelection()\"\n ></verbena-button>\n\n <!-- <verbena-button\n width=\"114px\"\n height=\"39px\"\n text=\"Delete\"\n bgColor=\"#999999\"\n textColor=\"#404040\"\n borderRadius=\"10px\"\n ></verbena-button> -->\n </div>\n</ng-template>\n", styles: [""], dependencies: [{ kind: "component", type: i4.VerbenDialogueComponent, selector: "verben-dialogue", inputs: ["dialogueWidth", "headerTemplate", "bodyTemplate", "footerTemplate", "showCloseIcon", "dismissOutsideClick", "closeOnEscape", "isVisible", "size", "backdropColor", "customClass", "disableFooter", "margin", "padding", "borderRadius", "dialogueBgColor", "width", "closeIconClass", "boxShadow", "enableTransition", "modalData", "mode", "position", "drawerWidth"], outputs: ["openModal", "closeModal"] }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4.VerbenaButtonComponent, selector: "verbena-button", inputs: ["text", "icon", "useIcon", "svgPosition", "iconPosition", "bgColor", "textColor", "border", "borderRadius", "pd", "width", "height", "fontSize", "fontWeight", "disable", "svgSize", "weight", "variant", "styleType", "svg", "svgWidth", "svgHeight", "iconColor", "svgColor", "buttonClass", "buttonTextClass", "isLoading", "spinnerSize", "spinnerColor"] }, { kind: "component", type: i4.DropDownComponent, selector: "verben-drop-down", inputs: ["options", "width", "showHorizontalLine", "horizontalLineColor", "optionLabel", "optionSubLabel", "optionValue", "placeholder", "invalidMessage", "errorPosition", "loadMoreCaption", "display", "showClear", "lazyLoad", "selectKey", "styleClass", "group", "multiselect", "filter", "avoidDuplication", "filterBy", "debounceTime", "minChar", "disabled", "required", "load", "asyncLabel", "search"], outputs: ["optionsChange", "onChange", "onClick", "onClear"] }, { kind: "component", type: i4.VerbenaInputComponent, selector: "verbena-input", inputs: ["label", "placeHolder", "required", "svgPosition", "minLength", "maxLength", "type", "bgColor", "border", "borderRadius", "textColor", "value", "labelPosition", "labelColor", "disable", "readOnly", "min", "max", "showBorder", "showErrorMessage", "errorMessageColor", "errorBorderColor", "errorPosition", "svg", "fontSize", "svgWidth", "svgHeight", "svgColor", "capitalization", "inputContainerClass", "inputFieldClass", "passLength", "inputWrapperClass", "passwordToggle", "customErrorMessages", "icon", "textPass"], outputs: ["valueChange"] }] });
110
110
  }
111
111
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SwimlaneDialogComponent, decorators: [{
112
112
  type: Component,
113
- args: [{ selector: 'lib-swimlane-dialog', template: "<verben-dialogue\n [showCloseIcon]=\"true\"\n [dismissOutsideClick]=\"true\"\n [closeOnEscape]=\"true\"\n [size]=\"'medium'\"\n [mode]=\"'drawer'\"\n [disableFooter]=\"false\"\n [isVisible]=\"visible\"\n [headerTemplate]=\"headerTemplate\"\n [bodyTemplate]=\"bodyTemplate\"\n [footerTemplate]=\"footerTemplate\"\n (openModal)=\"onDialogOpen($event)\"\n (closeModal)=\"onDialogClose($event)\"\n>\n</verben-dialogue>\n\n<ng-template #headerTemplate>\n <div\n class=\"flex items-center justify-between p-3 text-xs border-b-4 border-[#FFE681]\"\n >\n <button class=\"mr-4\" type=\"button\" (click)=\"onDialogClose($event)\">\n <span\n class=\"block w-2.5 h-2.5 border-t border-l border-[#3E3E3E]/70 transform -rotate-45\"\n ></span>\n </button>\n <div class=\"text-center\">\n <h2 class=\"text-sm font-medium\">Select Tags</h2>\n <span class=\"text-xs text-[#3E3E3E]/70\"\n >{{ this.selectedTags.length }}/{{ tags.length }}</span\n >\n </div>\n <span\n class=\"font-medium cursor-pointer text-[#3E3E3E]/70\"\n (click)=\"applySelection()\"\n >Create</span\n >\n </div>\n</ng-template>\n\n<ng-template #bodyTemplate>\n <div class=\"p-3\">\n <div class=\"mb-4 grid gap-4\">\n <!-- <input\n type=\"text\"\n placeholder=\"Enter Name\"\n class=\"w-full px-4 py-2 rounded-lg border border-[#E7C10B] outline-none\"\n [(ngModel)]=\"workflowName\"\n />\n\n <input\n type=\"search\"\n placeholder=\"Filter Tags\"\n class=\"w-full px-4 py-2 rounded-lg border border-[#E7C10B] outline-none\"\n [(ngModel)]=\"searchQuery\"\n />\n </div>\n\n <div class=\"\">\n <div class=\"py-3\">\n <label class=\"flex items-center\">\n <input type=\"checkbox\" class=\"mr-3\" [(ngModel)]=\"allSelected\" />\n <span class=\"text-sm\">Select All</span>\n </label>\n </div>\n\n <div *ngFor=\"let tag of filteredTags\" class=\"py-3\">\n <label class=\"flex items-center\">\n <input\n type=\"checkbox\"\n class=\"mr-3\"\n [checked]=\"isTagSelected(tag.Name)\"\n (change)=\"toggleTagSelection(tag.Name)\"\n />\n <span class=\"text-sm\">{{ tag.Name }}</span>\n <span *ngIf=\"!tag.IsOptional\" class=\"ml-2 text-xs text-red-500\"\n >(Required)</span\n >\n </label>\n </div> -->\n\n <verbena-input\n [(ngModel)]=\"workflowName\"\n [border]=\"'1px solid #9A9FBF66'\"\n placeHolder=\"Enter Swimlane Label\"\n [bgColor]=\"'white'\"\n ></verbena-input>\n\n <verben-drop-down\n selectKey=\"Code\"\n label=\"Tags\"\n styleClass=\"w-full\"\n width=\"100%\"\n [multiselect]=\"true\"\n placeholder=\"Select\"\n [options]=\"tags\"\n optionLabel=\"Name\"\n id=\"tags\"\n [(ngModel)]=\"selectedTags\"\n class=\"form-control\"\n >\n </verben-drop-down>\n </div>\n </div>\n</ng-template>\n\n<ng-template #footerTemplate>\n <div\n class=\"flex justify-between w-full items-center p-4 border-t border-gray-200\"\n >\n <!-- <button\n class=\"px-4 py-2 mr-2 bg-white border border-gray-200 rounded text-sm font-medium\"\n (click)=\"onDialogClose($event)\"\n >\n Cancel\n </button> -->\n\n <verbena-button\n (click)=\"onDialogClose($event)\"\n text=\"Cancel\"\n styleType=\"ylw-outline\"\n ></verbena-button>\n\n <verbena-button\n type=\"submit\"\n text=\"Save\"\n bgColor=\"#FFE681\"\n textColor=\"#404040\"\n borderRadius=\"10px\"\n pd=\"10px 20px\"\n width=\"114px\"\n height=\"39px\"\n [disable]=\"selectedTags.length < 1\"\n (click)=\"applySelection()\"\n ></verbena-button>\n\n <!-- <verbena-button\n width=\"114px\"\n height=\"39px\"\n text=\"Delete\"\n bgColor=\"#999999\"\n textColor=\"#404040\"\n borderRadius=\"10px\"\n ></verbena-button> -->\n </div>\n</ng-template>\n" }]
113
+ args: [{ selector: 'lib-swimlane-dialog', template: "<verben-dialogue\n [showCloseIcon]=\"true\"\n [dismissOutsideClick]=\"true\"\n [closeOnEscape]=\"true\"\n [size]=\"'medium'\"\n [mode]=\"'drawer'\"\n [disableFooter]=\"false\"\n [isVisible]=\"visible\"\n [headerTemplate]=\"headerTemplate\"\n [bodyTemplate]=\"bodyTemplate\"\n [footerTemplate]=\"footerTemplate\"\n (openModal)=\"onDialogOpen($event)\"\n (closeModal)=\"onDialogClose($event)\"\n>\n</verben-dialogue>\n\n<ng-template #headerTemplate>\n <div\n class=\"flex items-center justify-between p-3 text-xs border-b-4 border-[#FFE681]\"\n >\n <button class=\"mr-4\" type=\"button\" (click)=\"onDialogClose($event)\">\n <span\n class=\"block w-2.5 h-2.5 border-t border-l border-[#3E3E3E]/70 transform -rotate-45\"\n ></span>\n </button>\n <div class=\"text-center\">\n <h2 class=\"text-sm font-medium\">Select Tags</h2>\n <span class=\"text-xs text-[#3E3E3E]/70\"\n >{{ this.selectedTags.length }}/{{ tags.length }}</span\n >\n </div>\n <span\n class=\"font-medium cursor-pointer text-[#3E3E3E]/70\"\n (click)=\"applySelection()\"\n >Create</span\n >\n </div>\n</ng-template>\n\n<ng-template #bodyTemplate>\n <div class=\"p-3\">\n <div class=\"mb-4 grid gap-4\">\n <!-- <input\n type=\"text\"\n placeholder=\"Enter Name\"\n class=\"w-full px-4 py-2 rounded-lg border border-[#E7C10B] outline-none\"\n [(ngModel)]=\"workflowName\"\n />\n\n <input\n type=\"search\"\n placeholder=\"Filter Tags\"\n class=\"w-full px-4 py-2 rounded-lg border border-[#E7C10B] outline-none\"\n [(ngModel)]=\"searchQuery\"\n />\n </div>\n\n <div class=\"\">\n <div class=\"py-3\">\n <label class=\"flex items-center\">\n <input type=\"checkbox\" class=\"mr-3\" [(ngModel)]=\"allSelected\" />\n <span class=\"text-sm\">Select All</span>\n </label>\n </div>\n\n <div *ngFor=\"let tag of filteredTags\" class=\"py-3\">\n <label class=\"flex items-center\">\n <input\n type=\"checkbox\"\n class=\"mr-3\"\n [checked]=\"isTagSelected(tag.Name)\"\n (change)=\"toggleTagSelection(tag.Name)\"\n />\n <span class=\"text-sm\">{{ tag.Name }}</span>\n <span *ngIf=\"!tag.IsOptional\" class=\"ml-2 text-xs text-red-500\"\n >(Required)</span\n >\n </label>\n </div> -->\n\n <verbena-input\n [(ngModel)]=\"workflowName\"\n [border]=\"'1px solid #9A9FBF66'\"\n placeHolder=\"Enter Swimlane Label\"\n [bgColor]=\"'white'\"\n ></verbena-input>\n\n <verben-drop-down\n selectKey=\"Code\"\n label=\"Tags\"\n styleClass=\"w-full\"\n width=\"100%\"\n [multiselect]=\"true\"\n placeholder=\"Select\"\n [options]=\"tags\"\n optionLabel=\"Name\"\n id=\"tags\"\n [(ngModel)]=\"selectedTags\"\n class=\"form-control\"\n [filter]=\"true\"\n [filterBy]=\"'Name'\"\n [showClear]=\"true\"\n >\n </verben-drop-down>\n </div>\n </div>\n</ng-template>\n\n<ng-template #footerTemplate>\n <div\n class=\"flex justify-between w-full items-center p-4 border-t border-gray-200\"\n >\n <!-- <button\n class=\"px-4 py-2 mr-2 bg-white border border-gray-200 rounded text-sm font-medium\"\n (click)=\"onDialogClose($event)\"\n >\n Cancel\n </button> -->\n\n <verbena-button\n (click)=\"onDialogClose($event)\"\n text=\"Cancel\"\n styleType=\"ylw-outline\"\n ></verbena-button>\n\n <verbena-button\n type=\"submit\"\n text=\"Save\"\n bgColor=\"#FFE681\"\n textColor=\"#404040\"\n borderRadius=\"10px\"\n pd=\"10px 20px\"\n width=\"114px\"\n height=\"39px\"\n [disable]=\"selectedTags.length < 1\"\n (click)=\"applySelection()\"\n ></verbena-button>\n\n <!-- <verbena-button\n width=\"114px\"\n height=\"39px\"\n text=\"Delete\"\n bgColor=\"#999999\"\n textColor=\"#404040\"\n borderRadius=\"10px\"\n ></verbena-button> -->\n </div>\n</ng-template>\n" }]
114
114
  }], ctorParameters: () => [{ type: i1.FormBuilder }, { type: i2.WorkflowDataService }, { type: i3.SwimlaneService }], propDecorators: { visible: [{
115
115
  type: Input
116
116
  }], closed: [{
@@ -118,4 +118,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
118
118
  }], created: [{
119
119
  type: Output
120
120
  }] } });
121
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3dpbWxhbmUtZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZlcmJlbi13b3JrZmxvdy11aS9zcmMvbGliL2NvbXBvbmVudHMvd29ya2Zsb3ctZGVzaWduZXIvc3dpbWxhbmUtZGlhbG9nL3N3aW1sYW5lLWRpYWxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92ZXJiZW4td29ya2Zsb3ctdWkvc3JjL2xpYi9jb21wb25lbnRzL3dvcmtmbG93LWRlc2lnbmVyL3N3aW1sYW5lLWRpYWxvZy9zd2ltbGFuZS1kaWFsb2cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxNQUFNLEVBQ04sWUFBWSxFQUNaLEtBQUssRUFDTCxLQUFLLEVBRUwsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDOzs7Ozs7QUFXdkIsTUFBTSxPQUFPLHVCQUF1QjtJQWlCeEI7SUFDQTtJQUNBO0lBbEJELE9BQU8sR0FBWSxLQUFLLENBQUM7SUFDbEMsWUFBWSxHQUFHLEtBQUssQ0FBdUMsSUFBSSxDQUFDLENBQUM7SUFDdkQsTUFBTSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7SUFDNUIsT0FBTyxHQUFHLElBQUksWUFBWSxFQUFpQyxDQUFDO0lBRXRFLFdBQVcsR0FBVyxFQUFFLENBQUM7SUFDekIsWUFBWSxHQUFXLEVBQUUsQ0FBQztJQUUxQiwwQ0FBMEM7SUFDMUMsZ0JBQWdCLEdBQWEsRUFBRSxDQUFDO0lBQ2hDLFlBQVksR0FBVSxFQUFFLENBQUM7SUFFekIsWUFBWTtJQUNaLElBQUksR0FBVSxFQUFFLENBQUM7SUFFakIsWUFDVSxFQUFlLEVBQ2YsV0FBZ0MsRUFDaEMsZUFBZ0M7UUFGaEMsT0FBRSxHQUFGLEVBQUUsQ0FBYTtRQUNmLGdCQUFXLEdBQVgsV0FBVyxDQUFxQjtR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Q0csT0FBTztzQkFBaEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgZWZmZWN0LFxuICBFdmVudEVtaXR0ZXIsXG4gIGlucHV0LFxuICBJbnB1dCxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVGFnIH0gZnJvbSAndmVyYmVuLXdvcmtmbG93LXVpL3NyYy9saWIvbW9kZWxzJztcbmltcG9ydCB7IFdvcmtmbG93RGF0YVNlcnZpY2UgfSBmcm9tICcuLi93b3JrZmxvdy1kYXRhLnNlcnZpY2UnO1xuaW1wb3J0IHsgU3dpbWxhbmVTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvc3dpbWxhbmUuc2VydmljZSc7XG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdsaWItc3dpbWxhbmUtZGlhbG9nJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3N3aW1sYW5lLWRpYWxvZy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9zd2ltbGFuZS1kaWFsb2cuY29tcG9uZW50LmNzcycsXG59KVxuZXhwb3J0IGNsYXNzIFN3aW1sYW5lRGlhbG9nQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgdmlzaWJsZTogYm9vbGVhbiA9IGZhbHNlO1xuICBzd2ltbGFuZURhdGEgPSBpbnB1dDx7IG5hbWU6IHN0cmluZzsgdGFnczogVGFnW10gfSB8IG51bGw+KG51bGwpO1xuICBAT3V0cHV0KCkgY2xvc2VkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgY3JlYXRlZCA9IG5ldyBFdmVudEVtaXR0ZXI8eyB0YWdzOiBUYWdbXTsgbmFtZTogc3RyaW5nIH0+KCk7XG5cbiAgc2VhcmNoUXVlcnk6IHN0cmluZyA9ICcnO1xuICB3b3JrZmxvd05hbWU6IHN0cmluZyA9ICcnO1xuXG4gIC8vIFRyYWNrIHNlbGVjdGVkIHRhZ3MgaW4gYSBzZXBhcmF0ZSBhcnJheVxuICBzZWxlY3RlZFRhZ05hbWVzOiBzdHJpbmdbXSA9IFtdO1xuICBzZWxlY3RlZFRhZ3M6IFRhZ1tdID0gW107XG5cbiAgLy8gVGFncyBsaXN0XG4gIHRhZ3M6IFRhZ1tdID0gW107XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIsXG4gICAgcHJpdmF0ZSBkYXRhU2VydmljZTogV29ya2Zsb3dEYXRhU2VydmljZSxcbiAgICBwcml2YXRlIHN3aW1sYW5lU2VydmljZTogU3dpbWxhbmVTZXJ2aWNlXG4gICkge1xuICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICBjb25zdCBzRGF0YSA9IHRoaXMuc3dpbWxhbmVEYXRhKCk7XG4gICAgICAvLyBJZiBlZGl0aW5nIGFuIGV4aXN0aW5nIHN3aW1sYW5lLCBwb3B1bGF0ZSB0aGUgZm9ybVxuICAgICAgaWYgKHNEYXRhKSB7XG4gICAgICAgIHRoaXMud29ya2Zsb3dOYW1lID0gc0RhdGEubmFtZSB8fCAnJztcbiAgICAgICAgLy8gU2V0IHNlbGVjdGVkIHRhZ3NcbiAgICAgICAgdGhpcy5zZWxlY3RlZFRhZ3MgPSBzRGF0YS50YWdzO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgY29uc29sZS5sb2coJ1N3aW1sYW5lIGRpYWxvZyBpbml0aWFsaXplZCB3aXRoIGRhdGE6JywgdGhpcy5zd2ltbGFuZURhdGEpO1xuXG4gICAgLy8gUmVzZXQgZm9ybSBmaWVsZHMgd2hlbiBkaWFsb2cgb3BlbnNcbiAgICAvLyB0aGlzLnNlbGVjdGVkVGFnTmFtZXMgPSBbXTtcbiAgICB0aGlzLndvcmtmbG93TmFtZSA9ICcnO1xuICAgIHRoaXMuc2VhcmNoUXVlcnkgPSAnJztcblxuICAgIC8vIExvYWQgdGFncyBmcm9tIHRoZSBkYXRhIHNlcnZpY2VcbiAgICB0aGlzLmxvYWRUYWdzKCk7XG4gIH1cblxuICAvKipcbiAgICogTG9hZCB0YWdzIGZyb20gdGhlIGRhdGEgc2VydmljZVxuICAgKi9cbiAgcHJpdmF0ZSBsb2FkVGFncygpOiB2b2lkIHtcbiAgICB0aGlzLmRhdGFTZXJ2aWNlLmdldFRhZ3MoKS50aGVuKChkYXRhKSA9PiB7XG4gICAgICB0aGlzLnRhZ3MgPSBkYXRhLlJlc3VsdDtcbiAgICB9KTtcbiAgfVxuXG4gIGdldCBhbGxTZWxlY3RlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy50YWdzLmxlbmd0aCA+IDAgJiYgdGhpcy5zZWxlY3RlZFRhZ05hbWVzLmxlbmd0aCA9PT0gdGhpcy50YWdzLmxlbmd0aFxuICAgICk7XG4gIH1cblxuICBzZXQgYWxsU2VsZWN0ZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRUYWdOYW1lcyA9IHRoaXMudGFncy5tYXAoKHRhZykgPT4gdGFnLk5hbWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNlbGVjdGVkVGFnTmFtZXMgPSBbXTtcbiAgICB9XG4gIH1cblxuICBnZXQgZmlsdGVyZWRUYWdzKCk6IFRhZ1tdIHtcbiAgICBpZiAoIXRoaXMuc2VhcmNoUXVlcnkpIHtcbiAgICAgIHJldHVybiB0aGlzLnRhZ3M7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMudGFncy5maWx0ZXIoKHRhZykgPT5cbiAgICAgIHRhZy5OYW1lLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXModGhpcy5zZWFyY2hRdWVyeS50b0xvd2VyQ2FzZSgpKVxuICAgICk7XG4gIH1cblxuICBpc1RhZ1NlbGVjdGVkKHRhZ05hbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnNlbGVjdGVkVGFnTmFtZXMuaW5jbHVkZXModGFnTmFtZSk7XG4gIH1cblxuICB0b2dnbGVUYWdTZWxlY3Rpb24odGFnTmFtZTogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc3QgaW5kZXggPSB0aGlzLnNlbGVjdGVkVGFnTmFtZXMuaW5kZXhPZih0YWdOYW1lKTtcbiAgICBpZiAoaW5kZXggPiAtMSkge1xuICAgICAgdGhpcy5zZWxlY3RlZFRhZ05hbWVzLnNwbGljZShpbmRleCwgMSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRUYWdOYW1lcy5wdXNoKHRhZ05hbWUpO1xuICAgIH1cbiAgfVxuXG4gIG9uRGlhbG9nQ2xvc2UoZXZlbnREYXRhOiBhbnkpIHtcbiAgICBjb25zb2xlLmxvZygnRGlhbG9nIGNsb3NlZCwgcmVjZWl2ZWQgZGF0YTonLCBldmVudERhdGEpO1xuICAgIHRoaXMuc2VhcmNoUXVlcnkgPSAnJztcbiAgICB0aGlzLndvcmtmbG93TmFtZSA9ICcnO1xuICAgIHRoaXMuc2VsZWN0ZWRUYWdOYW1lcyA9IFtdO1xuICAgIHRoaXMuY2xvc2VkLmVtaXQoKTtcbiAgfVxuXG4gIG9uRGlhbG9nT3BlbihldmVudERhdGE6IGFueSkge1xuICAgIGNvbnNvbGUubG9nKCdEaWFsb2cgb3BlbmVkLCByZWNlaXZlZCBkYXRhOicsIGV2ZW50RGF0YSk7XG4gIH1cblxuICBhcHBseVNlbGVjdGlvbigpIHtcbiAgICBjb25zdCBzZWxlY3RlZFRhZ3MgPSB0aGlzLnRhZ3MuZmlsdGVyKCh0YWcpID0+XG4gICAgICB0aGlzLnNlbGVjdGVkVGFnTmFtZXMuaW5jbHVkZXModGFnLk5hbWUpXG4gICAgKTtcblxuICAgIGNvbnNvbGUubG9nKCdTdWJtaXR0aW5nIHN3aW1sYW5lIGRhdGE6Jywge1xuICAgICAgbmFtZTogdGhpcy53b3JrZmxvd05hbWUsXG4gICAgICB0YWdzOiBzZWxlY3RlZFRhZ3MsXG4gICAgfSk7XG5cbiAgICB0aGlzLmNyZWF0ZWQuZW1pdCh7XG4gICAgICB0YWdzOiB0aGlzLnNlbGVjdGVkVGFncyxcbiAgICAgIG5hbWU6IHRoaXMud29ya2Zsb3dOYW1lLFxuICAgIH0pO1xuXG4gICAgLy8gUmVzZXQgZm9ybSBmaWVsZHMgd2hlbiBkaWFsb2cgb3BlbnNcbiAgICB0aGlzLnNlbGVjdGVkVGFnTmFtZXMgPSBbXTtcbiAgICB0aGlzLnNlbGVjdGVkVGFncyA9IFtdO1xuICAgIHRoaXMud29ya2Zsb3dOYW1lID0gJyc7XG4gICAgdGhpcy5zZWFyY2hRdWVyeSA9ICcnO1xuICB9XG59XG4iLCI8dmVyYmVuLWRpYWxvZ3VlXG4gIFtzaG93Q2xvc2VJY29uXT1cInRydWVcIlxuICBbZGlzbWlzc091dHNpZGVDbGlja109XCJ0cnVlXCJcbiAgW2Nsb3NlT25Fc2NhcGVdPVwidHJ1ZVwiXG4gIFtzaXplXT1cIidtZWRpdW0nXCJcbiAgW21vZGVdPVwiJ2RyYXdlcidcIlxuICBbZGlzYWJsZUZvb3Rlcl09XCJmYWxzZVwiXG4gIFtpc1Zpc2libGVdPVwidmlzaWJsZVwiXG4gIFtoZWFkZXJUZW1wbGF0ZV09XCJoZWFkZXJUZW1wbGF0ZVwiXG4gIFtib2R5VGVtcGxhdGVdPVwiYm9keVRlbXBsYXRlXCJcbiAgW2Zvb3RlclRlbXBsYXRlXT1cImZvb3RlclRlbXBsYXRlXCJcbiAgKG9wZW5Nb2RhbCk9XCJvbkRpYWxvZ09wZW4oJGV2ZW50KVwiXG4gIChjbG9zZU1vZGFsKT1cIm9uRGlhbG9nQ2xvc2UoJGV2ZW50KVwiXG4+XG48L3ZlcmJlbi1kaWFsb2d1ZT5cblxuPG5nLXRlbXBsYXRlICNoZWFkZXJUZW1wbGF0ZT5cbiAgPGRpdlxuICAgIGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuIHAtMyB0ZXh0LXhzIGJvcmRlci1iLTQgYm9yZGVyLVsjRkZFNjgxXVwiXG4gID5cbiAgICA8YnV0dG9uIGNsYXNzPVwibXItNFwiIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwib25EaWFsb2dDbG9zZSgkZXZlbnQpXCI+XG4gICAgICA8c3BhblxuICAgICAgICBjbGFzcz1cImJsb2NrIHctMi41IGgtMi41IGJvcmRlci10IGJvcmRlci1sIGJvcmRlci1bIzNFM0UzRV0vNzAgdHJhbnNmb3JtIC1yb3RhdGUtNDVcIlxuICAgICAgPjwvc3Bhbj5cbiAgICA8L2J1dHRvbj5cbiAgICA8ZGl2IGNsYXNzPVwidGV4dC1jZW50ZXJcIj5cbiAgICAgIDxoMiBjbGFzcz1cInRleHQtc20gZm9udC1tZWRpdW1cIj5TZWxlY3QgVGFnczwvaDI+XG4gICAgICA8c3BhbiBjbGFzcz1cInRleHQteHMgdGV4dC1bIzNFM0UzRV0vNzBcIlxuICAgICAgICA+e3sgdGhpcy5zZWxlY3RlZFRhZ3MubGVuZ3RoIH19L3t7IHRhZ3MubGVuZ3RoIH19PC9zcGFuXG4gICAgICA+XG4gICAgPC9kaXY+XG4gICAgPHNwYW5cbiAgICAgIGNsYXNzPVwiZm9udC1tZWRpdW0gY3Vyc29yLXBvaW50ZXIgdGV4dC1bIzNFM0UzRV0vNzBcIlxuICAgICAgKGNsaWNrKT1cImFwcGx5U2VsZWN0aW9uKClcIlxuICAgICAgPkNyZWF0ZTwvc3BhblxuICAgID5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2JvZHlUZW1wbGF0ZT5cbiAgPGRpdiBjbGFzcz1cInAtM1wiPlxuICAgIDxkaXYgY2xhc3M9XCJtYi00IGdyaWQgZ2FwLTRcIj5cbiAgICAgIDwhLS0gPGlucHV0XG4gICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgcGxhY2Vob2xkZXI9XCJFbnRlciBOYW1lXCJcbiAgICAgICAgY2xhc3M9XCJ3LWZ1bGwgcHgtNCBweS0yIHJvdW5kZWQtbGcgYm9yZGVyIGJvcmRlci1bI0U3QzEwQl0gb3V0bGluZS1ub25lXCJcbiAgICAgICAgWyhuZ01vZGVsKV09XCJ3b3JrZmxvd05hbWVcIlxuICAgICAgLz5cblxuICAgICAgPGlucHV0XG4gICAgICAgIHR5cGU9XCJzZWFyY2hcIlxuICAgICAgICBwbGFjZWhvbGRlcj1cIkZpbHRlciBUYWdzXCJcbiAgICAgICAgY2xhc3M9XCJ3LWZ1bGwgcHgtNCBweS0yIHJvdW5kZWQtbGcgYm9yZGVyIGJvcmRlci1bI0U3QzEwQl0gb3V0bGluZS1ub25lXCJcbiAgICAgICAgWyhuZ01vZGVsKV09XCJzZWFyY2hRdWVyeVwiXG4gICAgICAvPlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cIlwiPlxuICAgICAgPGRpdiBjbGFzcz1cInB5LTNcIj5cbiAgICAgICAgPGxhYmVsIGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgICA8aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgY2xhc3M9XCJtci0zXCIgWyhuZ01vZGVsKV09XCJhbGxTZWxlY3RlZFwiIC8+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXNtXCI+U2VsZWN0IEFsbDwvc3Bhbj5cbiAgICAgICAgPC9sYWJlbD5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2ICpuZ0Zvcj1cImxldCB0YWcgb2YgZmlsdGVyZWRUYWdzXCIgY2xhc3M9XCJweS0zXCI+XG4gICAgICAgIDxsYWJlbCBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyXCI+XG4gICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxuICAgICAgICAgICAgY2xhc3M9XCJtci0zXCJcbiAgICAgICAgICAgIFtjaGVja2VkXT1cImlzVGFnU2VsZWN0ZWQodGFnLk5hbWUpXCJcbiAgICAgICAgICAgIChjaGFuZ2UpPVwidG9nZ2xlVGFnU2VsZWN0aW9uKHRhZy5OYW1lKVwiXG4gICAgICAgICAgLz5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtc21cIj57eyB0YWcuTmFtZSB9fTwvc3Bhbj5cbiAgICAgICAgICA8c3BhbiAqbmdJZj1cIiF0YWcuSXNPcHRpb25hbFwiIGNsYXNzPVwibWwtMiB0ZXh0LXhzIHRleHQtcmVkLTUwMFwiXG4gICAgICAgICAgICA+KFJlcXVpcmVkKTwvc3BhblxuICAgICAgICAgID5cbiAgICAgICAgPC9sYWJlbD5cbiAgICAgIDwvZGl2PiAtLT5cblxuICAgICAgPHZlcmJlbmEtaW5wdXRcbiAgICAgICAgWyhuZ01vZGVsKV09XCJ3b3JrZmxvd05hbWVcIlxuICAgICAgICBbYm9yZGVyXT1cIicxcHggc29saWQgIzlBOUZCRjY2J1wiXG4gICAgICAgIHBsYWNlSG9sZGVyPVwiRW50ZXIgU3dpbWxhbmUgTGFiZWxcIlxuICAgICAgICBbYmdDb2xvcl09XCInd2hpdGUnXCJcbiAgICAgID48L3ZlcmJlbmEtaW5wdXQ+XG5cbiAgICAgIDx2ZXJiZW4tZHJvcC1kb3duXG4gICAgICAgIHNlbGVjdEtleT1cIkNvZGVcIlxuICAgICAgICBsYWJlbD1cIlRhZ3NcIlxuICAgICAgICBzdHlsZUNsYXNzPVwidy1mdWxsXCJcbiAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgW211bHRpc2VsZWN0XT1cInRydWVcIlxuICAgICAgICBwbGFjZWhvbGRlcj1cIlNlbGVjdFwiXG4gICAgICAgIFtvcHRpb25zXT1cInRhZ3NcIlxuICAgICAgICBvcHRpb25MYWJlbD1cIk5hbWVcIlxuICAgICAgICBpZD1cInRhZ3NcIlxuICAgICAgICBbKG5nTW9kZWwpXT1cInNlbGVjdGVkVGFnc1wiXG4gICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcbiAgICAgID5cbiAgICAgIDwvdmVyYmVuLWRyb3AtZG93bj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2Zvb3RlclRlbXBsYXRlPlxuICA8ZGl2XG4gICAgY2xhc3M9XCJmbGV4IGp1c3RpZnktYmV0d2VlbiB3LWZ1bGwgaXRlbXMtY2VudGVyIHAtNCBib3JkZXItdCBib3JkZXItZ3JheS0yMDBcIlxuICA+XG4gICAgPCEtLSA8YnV0dG9uXG4gICAgICBjbGFzcz1cInB4LTQgcHktMiBtci0yIGJnLXdoaXRlIGJvcmRlciBib3JkZXItZ3JheS0yMDAgcm91bmRlZCB0ZXh0LXNtIGZvbnQtbWVkaXVtXCJcbiAgICAgIChjbGljayk9XCJvbkRpYWxvZ0Nsb3NlKCRldmVudClcIlxuICAgID5cbiAgICAgIENhbmNlbFxuICAgIDwvYnV0dG9uPiAtLT5cblxuICAgIDx2ZXJiZW5hLWJ1dHRvblxuICAgICAgKGNsaWNrKT1cIm9uRGlhbG9nQ2xvc2UoJGV2ZW50KVwiXG4gICAgICB0ZXh0PVwiQ2FuY2VsXCJcbiAgICAgIHN0eWxlVHlwZT1cInlsdy1vdXRsaW5lXCJcbiAgICA+PC92ZXJiZW5hLWJ1dHRvbj5cblxuICAgIDx2ZXJiZW5hLWJ1dHRvblxuICAgICAgdHlwZT1cInN1Ym1pdFwiXG4gICAgICB0ZXh0PVwiU2F2ZVwiXG4gICAgICBiZ0NvbG9yPVwiI0ZGRTY4MVwiXG4gICAgICB0ZXh0Q29sb3I9XCIjNDA0MDQwXCJcbiAgICAgIGJvcmRlclJhZGl1cz1cIjEwcHhcIlxuICAgICAgcGQ9XCIxMHB4IDIwcHhcIlxuICAgICAgd2lkdGg9XCIxMTRweFwiXG4gICAgICBoZWlnaHQ9XCIzOXB4XCJcbiAgICAgIFtkaXNhYmxlXT1cInNlbGVjdGVkVGFncy5sZW5ndGggPCAxXCJcbiAgICAgIChjbGljayk9XCJhcHBseVNlbGVjdGlvbigpXCJcbiAgICA+PC92ZXJiZW5hLWJ1dHRvbj5cblxuICAgIDwhLS0gPHZlcmJlbmEtYnV0dG9uXG4gICAgICB3aWR0aD1cIjExNHB4XCJcbiAgICAgIGhlaWdodD1cIjM5cHhcIlxuICAgICAgdGV4dD1cIkRlbGV0ZVwiXG4gICAgICBiZ0NvbG9yPVwiIzk5OTk5OVwiXG4gICAgICB0ZXh0Q29sb3I9XCIjNDA0MDQwXCJcbiAgICAgIGJvcmRlclJhZGl1cz1cIjEwcHhcIlxuICAgID48L3ZlcmJlbmEtYnV0dG9uPiAtLT5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
121
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3dpbWxhbmUtZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZlcmJlbi13b3JrZmxvdy11aS9zcmMvbGliL2NvbXBvbmVudHMvd29ya2Zsb3ctZGVzaWduZXIvc3dpbWxhbmUtZGlhbG9nL3N3aW1sYW5lLWRpYWxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92ZXJiZW4td29ya2Zsb3ctdWkvc3JjL2xpYi9jb21wb25lbnRzL3dvcmtmbG93LWRlc2lnbmVyL3N3aW1sYW5lLWRpYWxvZy9zd2ltbGFuZS1kaWFsb2cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxNQUFNLEVBQ04sWUFBWSxFQUNaLEtBQUssRUFDTCxLQUFLLEVBRUwsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDOzs7Ozs7QUFXdkIsTUFBTSxPQUFPLHVCQUF1QjtJQWlCeEI7SUFDQTtJQUNBO0lBbEJELE9BQU8sR0FBWSxLQUFLLENBQUM7SUFDbEMsWUFBWSxHQUFHLEtBQUssQ0FBdUMsSUFBSSxDQUFDLENBQUM7SUFDdkQsTUFBTSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7SUFDNUIsT0FBTyxHQUFHLElBQUksWUFBWSxFQUFpQyxDQUFDO0lBRXRFLFdBQVcsR0FBVyxFQUFFLENBQUM7SUFDekIsWUFBWSxHQUFXLEVBQUUsQ0FBQztJQUUxQiwwQ0FBMEM7SUFDMUMsZ0JBQWdCLEdBQWEsRUFBRSxDQUFDO0lBQ2hDLFlBQVksR0FBVSxFQUFFLENBQUM7SUFFekIsWUFBWTtJQUNaLElBQUksR0FBVSxFQUFFLENBQUM7SUFFakIsWUFDVSxFQUFlLEVBQ2YsV0FBZ0MsRUFDaEMsZUFBZ0M7UUFGaEMsT0FBRSxHQUFGLEVBQUUsQ0FBYTtRQUNmLGdCQUFXLEdBQVgsV0FBVyxDQUFxQjtR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Q0csT0FBTztzQkFBaEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgZWZmZWN0LFxuICBFdmVudEVtaXR0ZXIsXG4gIGlucHV0LFxuICBJbnB1dCxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVGFnIH0gZnJvbSAndmVyYmVuLXdvcmtmbG93LXVpL3NyYy9saWIvbW9kZWxzJztcbmltcG9ydCB7IFdvcmtmbG93RGF0YVNlcnZpY2UgfSBmcm9tICcuLi93b3JrZmxvdy1kYXRhLnNlcnZpY2UnO1xuaW1wb3J0IHsgU3dpbWxhbmVTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvc3dpbWxhbmUuc2VydmljZSc7XG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdsaWItc3dpbWxhbmUtZGlhbG9nJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3N3aW1sYW5lLWRpYWxvZy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9zd2ltbGFuZS1kaWFsb2cuY29tcG9uZW50LmNzcycsXG59KVxuZXhwb3J0IGNsYXNzIFN3aW1sYW5lRGlhbG9nQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgdmlzaWJsZTogYm9vbGVhbiA9IGZhbHNlO1xuICBzd2ltbGFuZURhdGEgPSBpbnB1dDx7IG5hbWU6IHN0cmluZzsgdGFnczogVGFnW10gfSB8IG51bGw+KG51bGwpO1xuICBAT3V0cHV0KCkgY2xvc2VkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgY3JlYXRlZCA9IG5ldyBFdmVudEVtaXR0ZXI8eyB0YWdzOiBUYWdbXTsgbmFtZTogc3RyaW5nIH0+KCk7XG5cbiAgc2VhcmNoUXVlcnk6IHN0cmluZyA9ICcnO1xuICB3b3JrZmxvd05hbWU6IHN0cmluZyA9ICcnO1xuXG4gIC8vIFRyYWNrIHNlbGVjdGVkIHRhZ3MgaW4gYSBzZXBhcmF0ZSBhcnJheVxuICBzZWxlY3RlZFRhZ05hbWVzOiBzdHJpbmdbXSA9IFtdO1xuICBzZWxlY3RlZFRhZ3M6IFRhZ1tdID0gW107XG5cbiAgLy8gVGFncyBsaXN0XG4gIHRhZ3M6IFRhZ1tdID0gW107XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIsXG4gICAgcHJpdmF0ZSBkYXRhU2VydmljZTogV29ya2Zsb3dEYXRhU2VydmljZSxcbiAgICBwcml2YXRlIHN3aW1sYW5lU2VydmljZTogU3dpbWxhbmVTZXJ2aWNlXG4gICkge1xuICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICBjb25zdCBzRGF0YSA9IHRoaXMuc3dpbWxhbmVEYXRhKCk7XG4gICAgICAvLyBJZiBlZGl0aW5nIGFuIGV4aXN0aW5nIHN3aW1sYW5lLCBwb3B1bGF0ZSB0aGUgZm9ybVxuICAgICAgaWYgKHNEYXRhKSB7XG4gICAgICAgIHRoaXMud29ya2Zsb3dOYW1lID0gc0RhdGEubmFtZSB8fCAnJztcbiAgICAgICAgLy8gU2V0IHNlbGVjdGVkIHRhZ3NcbiAgICAgICAgdGhpcy5zZWxlY3RlZFRhZ3MgPSBzRGF0YS50YWdzO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgY29uc29sZS5sb2coJ1N3aW1sYW5lIGRpYWxvZyBpbml0aWFsaXplZCB3aXRoIGRhdGE6JywgdGhpcy5zd2ltbGFuZURhdGEpO1xuXG4gICAgLy8gUmVzZXQgZm9ybSBmaWVsZHMgd2hlbiBkaWFsb2cgb3BlbnNcbiAgICAvLyB0aGlzLnNlbGVjdGVkVGFnTmFtZXMgPSBbXTtcbiAgICB0aGlzLndvcmtmbG93TmFtZSA9ICcnO1xuICAgIHRoaXMuc2VhcmNoUXVlcnkgPSAnJztcblxuICAgIC8vIExvYWQgdGFncyBmcm9tIHRoZSBkYXRhIHNlcnZpY2VcbiAgICB0aGlzLmxvYWRUYWdzKCk7XG4gIH1cblxuICAvKipcbiAgICogTG9hZCB0YWdzIGZyb20gdGhlIGRhdGEgc2VydmljZVxuICAgKi9cbiAgcHJpdmF0ZSBsb2FkVGFncygpOiB2b2lkIHtcbiAgICB0aGlzLmRhdGFTZXJ2aWNlLmdldFRhZ3MoKS50aGVuKChkYXRhKSA9PiB7XG4gICAgICB0aGlzLnRhZ3MgPSBkYXRhLlJlc3VsdDtcbiAgICB9KTtcbiAgfVxuXG4gIGdldCBhbGxTZWxlY3RlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy50YWdzLmxlbmd0aCA+IDAgJiYgdGhpcy5zZWxlY3RlZFRhZ05hbWVzLmxlbmd0aCA9PT0gdGhpcy50YWdzLmxlbmd0aFxuICAgICk7XG4gIH1cblxuICBzZXQgYWxsU2VsZWN0ZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRUYWdOYW1lcyA9IHRoaXMudGFncy5tYXAoKHRhZykgPT4gdGFnLk5hbWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNlbGVjdGVkVGFnTmFtZXMgPSBbXTtcbiAgICB9XG4gIH1cblxuICBnZXQgZmlsdGVyZWRUYWdzKCk6IFRhZ1tdIHtcbiAgICBpZiAoIXRoaXMuc2VhcmNoUXVlcnkpIHtcbiAgICAgIHJldHVybiB0aGlzLnRhZ3M7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMudGFncy5maWx0ZXIoKHRhZykgPT5cbiAgICAgIHRhZy5OYW1lLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXModGhpcy5zZWFyY2hRdWVyeS50b0xvd2VyQ2FzZSgpKVxuICAgICk7XG4gIH1cblxuICBpc1RhZ1NlbGVjdGVkKHRhZ05hbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnNlbGVjdGVkVGFnTmFtZXMuaW5jbHVkZXModGFnTmFtZSk7XG4gIH1cblxuICB0b2dnbGVUYWdTZWxlY3Rpb24odGFnTmFtZTogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc3QgaW5kZXggPSB0aGlzLnNlbGVjdGVkVGFnTmFtZXMuaW5kZXhPZih0YWdOYW1lKTtcbiAgICBpZiAoaW5kZXggPiAtMSkge1xuICAgICAgdGhpcy5zZWxlY3RlZFRhZ05hbWVzLnNwbGljZShpbmRleCwgMSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRUYWdOYW1lcy5wdXNoKHRhZ05hbWUpO1xuICAgIH1cbiAgfVxuXG4gIG9uRGlhbG9nQ2xvc2UoZXZlbnREYXRhOiBhbnkpIHtcbiAgICBjb25zb2xlLmxvZygnRGlhbG9nIGNsb3NlZCwgcmVjZWl2ZWQgZGF0YTonLCBldmVudERhdGEpO1xuICAgIHRoaXMuc2VhcmNoUXVlcnkgPSAnJztcbiAgICB0aGlzLndvcmtmbG93TmFtZSA9ICcnO1xuICAgIHRoaXMuc2VsZWN0ZWRUYWdOYW1lcyA9IFtdO1xuICAgIHRoaXMuY2xvc2VkLmVtaXQoKTtcbiAgfVxuXG4gIG9uRGlhbG9nT3BlbihldmVudERhdGE6IGFueSkge1xuICAgIGNvbnNvbGUubG9nKCdEaWFsb2cgb3BlbmVkLCByZWNlaXZlZCBkYXRhOicsIGV2ZW50RGF0YSk7XG4gIH1cblxuICBhcHBseVNlbGVjdGlvbigpIHtcbiAgICBjb25zdCBzZWxlY3RlZFRhZ3MgPSB0aGlzLnRhZ3MuZmlsdGVyKCh0YWcpID0+XG4gICAgICB0aGlzLnNlbGVjdGVkVGFnTmFtZXMuaW5jbHVkZXModGFnLk5hbWUpXG4gICAgKTtcblxuICAgIGNvbnNvbGUubG9nKCdTdWJtaXR0aW5nIHN3aW1sYW5lIGRhdGE6Jywge1xuICAgICAgbmFtZTogdGhpcy53b3JrZmxvd05hbWUsXG4gICAgICB0YWdzOiBzZWxlY3RlZFRhZ3MsXG4gICAgfSk7XG5cbiAgICB0aGlzLmNyZWF0ZWQuZW1pdCh7XG4gICAgICB0YWdzOiB0aGlzLnNlbGVjdGVkVGFncyxcbiAgICAgIG5hbWU6IHRoaXMud29ya2Zsb3dOYW1lLFxuICAgIH0pO1xuXG4gICAgLy8gUmVzZXQgZm9ybSBmaWVsZHMgd2hlbiBkaWFsb2cgb3BlbnNcbiAgICB0aGlzLnNlbGVjdGVkVGFnTmFtZXMgPSBbXTtcbiAgICB0aGlzLnNlbGVjdGVkVGFncyA9IFtdO1xuICAgIHRoaXMud29ya2Zsb3dOYW1lID0gJyc7XG4gICAgdGhpcy5zZWFyY2hRdWVyeSA9ICcnO1xuICB9XG59XG4iLCI8dmVyYmVuLWRpYWxvZ3VlXG4gIFtzaG93Q2xvc2VJY29uXT1cInRydWVcIlxuICBbZGlzbWlzc091dHNpZGVDbGlja109XCJ0cnVlXCJcbiAgW2Nsb3NlT25Fc2NhcGVdPVwidHJ1ZVwiXG4gIFtzaXplXT1cIidtZWRpdW0nXCJcbiAgW21vZGVdPVwiJ2RyYXdlcidcIlxuICBbZGlzYWJsZUZvb3Rlcl09XCJmYWxzZVwiXG4gIFtpc1Zpc2libGVdPVwidmlzaWJsZVwiXG4gIFtoZWFkZXJUZW1wbGF0ZV09XCJoZWFkZXJUZW1wbGF0ZVwiXG4gIFtib2R5VGVtcGxhdGVdPVwiYm9keVRlbXBsYXRlXCJcbiAgW2Zvb3RlclRlbXBsYXRlXT1cImZvb3RlclRlbXBsYXRlXCJcbiAgKG9wZW5Nb2RhbCk9XCJvbkRpYWxvZ09wZW4oJGV2ZW50KVwiXG4gIChjbG9zZU1vZGFsKT1cIm9uRGlhbG9nQ2xvc2UoJGV2ZW50KVwiXG4+XG48L3ZlcmJlbi1kaWFsb2d1ZT5cblxuPG5nLXRlbXBsYXRlICNoZWFkZXJUZW1wbGF0ZT5cbiAgPGRpdlxuICAgIGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuIHAtMyB0ZXh0LXhzIGJvcmRlci1iLTQgYm9yZGVyLVsjRkZFNjgxXVwiXG4gID5cbiAgICA8YnV0dG9uIGNsYXNzPVwibXItNFwiIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwib25EaWFsb2dDbG9zZSgkZXZlbnQpXCI+XG4gICAgICA8c3BhblxuICAgICAgICBjbGFzcz1cImJsb2NrIHctMi41IGgtMi41IGJvcmRlci10IGJvcmRlci1sIGJvcmRlci1bIzNFM0UzRV0vNzAgdHJhbnNmb3JtIC1yb3RhdGUtNDVcIlxuICAgICAgPjwvc3Bhbj5cbiAgICA8L2J1dHRvbj5cbiAgICA8ZGl2IGNsYXNzPVwidGV4dC1jZW50ZXJcIj5cbiAgICAgIDxoMiBjbGFzcz1cInRleHQtc20gZm9udC1tZWRpdW1cIj5TZWxlY3QgVGFnczwvaDI+XG4gICAgICA8c3BhbiBjbGFzcz1cInRleHQteHMgdGV4dC1bIzNFM0UzRV0vNzBcIlxuICAgICAgICA+e3sgdGhpcy5zZWxlY3RlZFRhZ3MubGVuZ3RoIH19L3t7IHRhZ3MubGVuZ3RoIH19PC9zcGFuXG4gICAgICA+XG4gICAgPC9kaXY+XG4gICAgPHNwYW5cbiAgICAgIGNsYXNzPVwiZm9udC1tZWRpdW0gY3Vyc29yLXBvaW50ZXIgdGV4dC1bIzNFM0UzRV0vNzBcIlxuICAgICAgKGNsaWNrKT1cImFwcGx5U2VsZWN0aW9uKClcIlxuICAgICAgPkNyZWF0ZTwvc3BhblxuICAgID5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2JvZHlUZW1wbGF0ZT5cbiAgPGRpdiBjbGFzcz1cInAtM1wiPlxuICAgIDxkaXYgY2xhc3M9XCJtYi00IGdyaWQgZ2FwLTRcIj5cbiAgICAgIDwhLS0gPGlucHV0XG4gICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgcGxhY2Vob2xkZXI9XCJFbnRlciBOYW1lXCJcbiAgICAgICAgY2xhc3M9XCJ3LWZ1bGwgcHgtNCBweS0yIHJvdW5kZWQtbGcgYm9yZGVyIGJvcmRlci1bI0U3QzEwQl0gb3V0bGluZS1ub25lXCJcbiAgICAgICAgWyhuZ01vZGVsKV09XCJ3b3JrZmxvd05hbWVcIlxuICAgICAgLz5cblxuICAgICAgPGlucHV0XG4gICAgICAgIHR5cGU9XCJzZWFyY2hcIlxuICAgICAgICBwbGFjZWhvbGRlcj1cIkZpbHRlciBUYWdzXCJcbiAgICAgICAgY2xhc3M9XCJ3LWZ1bGwgcHgtNCBweS0yIHJvdW5kZWQtbGcgYm9yZGVyIGJvcmRlci1bI0U3QzEwQl0gb3V0bGluZS1ub25lXCJcbiAgICAgICAgWyhuZ01vZGVsKV09XCJzZWFyY2hRdWVyeVwiXG4gICAgICAvPlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cIlwiPlxuICAgICAgPGRpdiBjbGFzcz1cInB5LTNcIj5cbiAgICAgICAgPGxhYmVsIGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgICA8aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgY2xhc3M9XCJtci0zXCIgWyhuZ01vZGVsKV09XCJhbGxTZWxlY3RlZFwiIC8+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXNtXCI+U2VsZWN0IEFsbDwvc3Bhbj5cbiAgICAgICAgPC9sYWJlbD5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2ICpuZ0Zvcj1cImxldCB0YWcgb2YgZmlsdGVyZWRUYWdzXCIgY2xhc3M9XCJweS0zXCI+XG4gICAgICAgIDxsYWJlbCBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyXCI+XG4gICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxuICAgICAgICAgICAgY2xhc3M9XCJtci0zXCJcbiAgICAgICAgICAgIFtjaGVja2VkXT1cImlzVGFnU2VsZWN0ZWQodGFnLk5hbWUpXCJcbiAgICAgICAgICAgIChjaGFuZ2UpPVwidG9nZ2xlVGFnU2VsZWN0aW9uKHRhZy5OYW1lKVwiXG4gICAgICAgICAgLz5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtc21cIj57eyB0YWcuTmFtZSB9fTwvc3Bhbj5cbiAgICAgICAgICA8c3BhbiAqbmdJZj1cIiF0YWcuSXNPcHRpb25hbFwiIGNsYXNzPVwibWwtMiB0ZXh0LXhzIHRleHQtcmVkLTUwMFwiXG4gICAgICAgICAgICA+KFJlcXVpcmVkKTwvc3BhblxuICAgICAgICAgID5cbiAgICAgICAgPC9sYWJlbD5cbiAgICAgIDwvZGl2PiAtLT5cblxuICAgICAgPHZlcmJlbmEtaW5wdXRcbiAgICAgICAgWyhuZ01vZGVsKV09XCJ3b3JrZmxvd05hbWVcIlxuICAgICAgICBbYm9yZGVyXT1cIicxcHggc29saWQgIzlBOUZCRjY2J1wiXG4gICAgICAgIHBsYWNlSG9sZGVyPVwiRW50ZXIgU3dpbWxhbmUgTGFiZWxcIlxuICAgICAgICBbYmdDb2xvcl09XCInd2hpdGUnXCJcbiAgICAgID48L3ZlcmJlbmEtaW5wdXQ+XG5cbiAgICAgIDx2ZXJiZW4tZHJvcC1kb3duXG4gICAgICAgIHNlbGVjdEtleT1cIkNvZGVcIlxuICAgICAgICBsYWJlbD1cIlRhZ3NcIlxuICAgICAgICBzdHlsZUNsYXNzPVwidy1mdWxsXCJcbiAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgW211bHRpc2VsZWN0XT1cInRydWVcIlxuICAgICAgICBwbGFjZWhvbGRlcj1cIlNlbGVjdFwiXG4gICAgICAgIFtvcHRpb25zXT1cInRhZ3NcIlxuICAgICAgICBvcHRpb25MYWJlbD1cIk5hbWVcIlxuICAgICAgICBpZD1cInRhZ3NcIlxuICAgICAgICBbKG5nTW9kZWwpXT1cInNlbGVjdGVkVGFnc1wiXG4gICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcbiAgICAgICAgW2ZpbHRlcl09XCJ0cnVlXCJcbiAgICAgICAgW2ZpbHRlckJ5XT1cIidOYW1lJ1wiXG4gICAgICAgIFtzaG93Q2xlYXJdPVwidHJ1ZVwiXG4gICAgICA+XG4gICAgICA8L3ZlcmJlbi1kcm9wLWRvd24+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNmb290ZXJUZW1wbGF0ZT5cbiAgPGRpdlxuICAgIGNsYXNzPVwiZmxleCBqdXN0aWZ5LWJldHdlZW4gdy1mdWxsIGl0ZW1zLWNlbnRlciBwLTQgYm9yZGVyLXQgYm9yZGVyLWdyYXktMjAwXCJcbiAgPlxuICAgIDwhLS0gPGJ1dHRvblxuICAgICAgY2xhc3M9XCJweC00IHB5LTIgbXItMiBiZy13aGl0ZSBib3JkZXIgYm9yZGVyLWdyYXktMjAwIHJvdW5kZWQgdGV4dC1zbSBmb250LW1lZGl1bVwiXG4gICAgICAoY2xpY2spPVwib25EaWFsb2dDbG9zZSgkZXZlbnQpXCJcbiAgICA+XG4gICAgICBDYW5jZWxcbiAgICA8L2J1dHRvbj4gLS0+XG5cbiAgICA8dmVyYmVuYS1idXR0b25cbiAgICAgIChjbGljayk9XCJvbkRpYWxvZ0Nsb3NlKCRldmVudClcIlxuICAgICAgdGV4dD1cIkNhbmNlbFwiXG4gICAgICBzdHlsZVR5cGU9XCJ5bHctb3V0bGluZVwiXG4gICAgPjwvdmVyYmVuYS1idXR0b24+XG5cbiAgICA8dmVyYmVuYS1idXR0b25cbiAgICAgIHR5cGU9XCJzdWJtaXRcIlxuICAgICAgdGV4dD1cIlNhdmVcIlxuICAgICAgYmdDb2xvcj1cIiNGRkU2ODFcIlxuICAgICAgdGV4dENvbG9yPVwiIzQwNDA0MFwiXG4gICAgICBib3JkZXJSYWRpdXM9XCIxMHB4XCJcbiAgICAgIHBkPVwiMTBweCAyMHB4XCJcbiAgICAgIHdpZHRoPVwiMTE0cHhcIlxuICAgICAgaGVpZ2h0PVwiMzlweFwiXG4gICAgICBbZGlzYWJsZV09XCJzZWxlY3RlZFRhZ3MubGVuZ3RoIDwgMVwiXG4gICAgICAoY2xpY2spPVwiYXBwbHlTZWxlY3Rpb24oKVwiXG4gICAgPjwvdmVyYmVuYS1idXR0b24+XG5cbiAgICA8IS0tIDx2ZXJiZW5hLWJ1dHRvblxuICAgICAgd2lkdGg9XCIxMTRweFwiXG4gICAgICBoZWlnaHQ9XCIzOXB4XCJcbiAgICAgIHRleHQ9XCJEZWxldGVcIlxuICAgICAgYmdDb2xvcj1cIiM5OTk5OTlcIlxuICAgICAgdGV4dENvbG9yPVwiIzQwNDA0MFwiXG4gICAgICBib3JkZXJSYWRpdXM9XCIxMHB4XCJcbiAgICA+PC92ZXJiZW5hLWJ1dHRvbj4gLS0+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
@@ -34,7 +34,7 @@ export class WorkflowDataService {
34
34
  return this.httpService.get(url, this.envSvc.environment.AuthAPI);
35
35
  }
36
36
  saveWorkflows(requests) {
37
- const url = `${this.WORKFLOW_MODEL_BASE_PATH}/SaveWorkflows`;
37
+ const url = `${this.WORKFLOW_MODEL_BASE_PATH}/xSaveWorkflows`;
38
38
  // console.log('Saving workflows', requests);
39
39
  return this.httpService.post(url, requests, this.envSvc.environment.WorkFlowAPI);
40
40
  }
@@ -165,4 +165,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
165
165
  providedIn: 'root',
166
166
  }]
167
167
  }], ctorParameters: () => [{ type: i1.HttpWebRequestService }, { type: i1.EnvironmentService }] });
168
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2Zsb3ctZGF0YS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmVyYmVuLXdvcmtmbG93LXVpL3NyYy9saWIvY29tcG9uZW50cy93b3JrZmxvdy1kZXNpZ25lci93b3JrZmxvdy1kYXRhLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQThDLFdBQVcsRUFBMEMsY0FBYyxFQUFFLE1BQU0sRUFBTyxrQkFBa0IsRUFBMkIsTUFBTSxtQ0FBbUMsQ0FBQzs7O0FBTTlOLE1BQU0sT0FBTyxtQkFBbUI7SUFXcEI7SUFDQTtJQVhPLHdCQUF3QixHQUFHLFVBQVUsQ0FBQztJQUN0QyxvQkFBb0IsR0FBRyxNQUFNLENBQUM7SUFDOUIsb0JBQW9CLEdBQUcsTUFBTSxDQUFDO0lBQzlCLDBCQUEwQixHQUFHLFlBQVksQ0FBQztJQUMxQyxrQkFBa0IsR0FBRyxRQUFRLENBQUM7SUFDOUIsY0FBYyxHQUFHLE1BQU0sQ0FBQztJQUN4QixxQkFBcUIsR0FBRyxPQUFPLENBQUM7SUFDaEMsK0JBQStCLEdBQUcsUUFBUSxDQUFDO0lBRTVELFlBQ1UsV0FBa0MsRUFDbEMsTUFBMEI7UUFEMUIsZ0JBQVcsR0FBWCxXQUFXLENBQXVCO1FBQ2xDLFdBQU0sR0FBTixNQUFNLENBQW9CO0lBQ2hDLENBQUM7SUFFTCxvQkFBb0IsQ0FDbEIsS0FBYSxFQUNiLE9BQWUsQ0FBQyxFQUNoQixRQUFnQixDQUFDLEVBQ2pCLFlBQW9CLFdBQVcsRUFDL0IsWUFBb0IsS0FBSztRQUV6QixNQUFNLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyx3QkFBd0IsMEJBQTBCLEtBQUssSUFBSSxJQUFJLElBQUksS0FBSyxJQUFJLFNBQVMsSUFBSSxTQUFTLEVBQUUsQ0FBQztRQUN6SCxPQUFPLElBQUksQ0FBQyxXQUFX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YyxFQUFFLGtCQUFrQixDQUFDLFNBQVM7b0JBQzVDLFdBQVcsRUFBRSxFQUFFO29CQUNmLFFBQVEsRUFBRSxRQUFRO29CQUNsQixXQUFXLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUU7b0JBQzlCLFlBQVksRUFBRSxLQUFLO2lCQUNwQjthQUNGO1NBQ0YsQ0FBQztRQUVGLE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUM7d0dBck9VLG1CQUFtQjs0R0FBbkIsbUJBQW1CLGNBRmxCLE1BQU07OzRGQUVQLG1CQUFtQjtrQkFIL0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RvclRhZywgRXNjYWxhdGlvbiwgRmxvd2FibGVTdGF0dXMsIEZvcm0sIE9iamVjdFN0YXRlLCBPcGVyYXRpb25BY3Rpb24sIFBhZ2VkLCBSZXBvcnRTY2hlZHVsZSwgU3RhZ2VBY3RvclJ1bGUsIFN0YXR1cywgVGFnLCBUYXNrQXNzaWdubWVudFR5cGUsIFdvcmtmbG93LCBXb3JrZmxvd1N0YWdlIH0gZnJvbSAndmVyYmVuLXdvcmtmbG93LXVpL3NyYy9saWIvbW9kZWxzJztcbmltcG9ydCB7IEVudmlyb25tZW50U2VydmljZSwgSHR0cFdlYlJlcXVlc3RTZXJ2aWNlIH0gZnJvbSAndmVyYmVuLXdvcmtmbG93LXVpL3NyYy9saWIvc2VydmljZXMnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgV29ya2Zsb3dEYXRhU2VydmljZSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgV09SS0ZMT1dfTU9ERUxfQkFTRV9QQVRIID0gJ1dvcmtmbG93JztcbiAgcHJpdmF0ZSByZWFkb25seSBBVVRIX01PREVMX0JBU0VfUEFUSCA9ICdVc2VyJztcbiAgcHJpdmF0ZSByZWFkb25seSBGT1JNX01PREVMX0JBU0VfUEFUSCA9ICdGb3JtJztcbiAgcHJpdmF0ZSByZWFkb25seSBFU0NBTEFUSU9OX01PREVMX0JBU0VfUEFUSCA9ICdFc2NhbGF0aW9uJztcbiAgcHJpdmF0ZSByZWFkb25seSBSU19NT0RFTF9CQVNFX1BBVEggPSAnUmVwb3J0JztcbiAgcHJpdmF0ZSByZWFkb25seSBVVElMX0JBU0VfUEFUSCA9ICdVdGlsJztcbiAgcHJpdmF0ZSByZWFkb25seSBBQ1RPUl9NT0RFTF9CQVNFX1BBVEggPSAnQWN0b3InO1xuICBwcml2YXRlIHJlYWRvbmx5IEZMT1dBQkxFX1NUQVRVU19NT0RFTF9CQVNFX1BBVEggPSAnU3RhdHVzJztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGh0dHBTZXJ2aWNlOiBIdHRwV2ViUmVxdWVzdFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBlbnZTdmM6IEVudmlyb25tZW50U2VydmljZVxuICApIHsgfVxuXG4gIGdldFdvcmtmbG93V2l0aFBhcmFtKFxuICAgIHBhcmFtOiBzdHJpbmcsXG4gICAgc2tpcDogbnVtYmVyID0gMCxcbiAgICBsaW1pdDogbnVtYmVyID0gMSxcbiAgICBzb3J0UGFyYW06IHN0cmluZyA9ICdDcmVhdGVkQXQnLFxuICAgIHNvcnRPcmRlcjogc3RyaW5nID0gJ0FzYydcbiAgKTogUHJvbWlzZTxQYWdlZDxXb3JrZmxvdz4+IHtcbiAgICBjb25zdCB1cmwgPSBgJHt0aGlzLldPUktGTE9XX01PREVMX0JBU0VfUEFUSH0vR2V0V29ya2Zsb3dzV2l0aFBhcmFtLyR7cGFyYW19LyR7c2tpcH0vJHtsaW1pdH0vJHtzb3J0UGFyYW19LyR7c29ydE9yZGVyfWA7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFNlcnZpY2UuZ2V0KHVybCkgYXMgUHJvbWlzZTxQYWdlZDxXb3JrZmxvdz4+O1xuICB9XG5cbiAgZ2V0V29ya2Zsb3dzKHNraXA6IG51bWJlciA9IDAsIGxpbWl0OiBudW1iZXIgPSAwKTogUHJvbWlzZTxQYWdlZDxXb3JrZmxvdz4+IHtcbiAgICBjb25zdCB1cmwgPSBgJHt0aGlzLldPUktGTE9XX01PREVMX0JBU0VfUEFUSH0vR2V0V29ya2Zsb3dzLyR7c2tpcH0vJHtsaW1pdH1gO1xuICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlLmdldChcbiAgICAgIHVybCxcbiAgICAgIHRoaXMuZW52U3ZjLmVudmlyb25tZW50LldvcmtGbG93QVBJXG4gICAgKSBhcyBQcm9taXNlPFBhZ2VkPFdvcmtmbG93Pj47XG4gIH1cblxuICBnZXRGb3Jtcyhza2lwOiBudW1iZXIgPSAwLCBsaW1pdDogbnVtYmVyID0gMCk6IFByb21pc2U8UGFnZWQ8Rm9ybT4+IHtcbiAgICBjb25zdCB1cmwgPSBgJHt0aGlzLkZPUk1fTU9ERUxfQkFTRV9QQVRIfS9HZXRGb3Jtcy8ke3NraXB9LyR7bGltaXR9YDtcbiAgICByZXR1cm4gdGhpcy5odHRwU2VydmljZS5nZXQoXG4gICAgICB1cmwsXG4gICAgICB0aGlzLmVudlN2Yy5lbnZpcm9ubWVudC5Xb3JrRmxvd0FQSVxuICAgICkgYXMgUHJvbWlzZTxQYWdlZDxGb3JtPj47XG4gIH1cblxuICBnZXRUYWdzKHNraXA6IG51bWJlciA9IDAsIGxpbWl0OiBudW1iZXIgPSAwKTogUHJvbWlzZTxQYWdlZDxUYWc+PiB7XG4gICAgY29uc3QgdXJsID0gYCR7dGhpcy5BVVRIX01PREVMX0JBU0VfUEFUSH0vR2V0VGFncy8ke3NraXB9LyR7bGltaXR9YDtcbiAgICByZXR1cm4gdGhpcy5odHRwU2VydmljZS5nZXQoXG4gICAgICB1cmwsXG4gICAgICB0aGlzLmVudlN2Yy5lbnZpcm9ubWVudC5BdXRoQVBJXG4gICAgKSBhcyBQcm9taXNlPFBhZ2VkPFRhZz4+O1xuICB9XG5cbiAgc2F2ZVdvcmtmbG93cyhyZXF1ZXN0czogUGFydGlhbDxXb3JrZmxvdz5bXSk6IFByb21pc2U8YW55PiB7XG4gICAgY29uc3QgdXJsID0gYCR7dGhpcy5XT1JLRkxPV19NT0RFTF9CQVNFX1BBVEh9L1NhdmVXb3JrZmxvd3NgO1xuICAgIC8vIGNvbnNvbGUubG9nKCdTYXZpbmcgd29ya2Zsb3dzJywgcmVxdWVzdHMpO1xuICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlLnBvc3QoXG4gICAgICB1cmwsXG4gICAgICByZXF1ZXN0cyxcbiAgICAgIHRoaXMuZW52U3ZjLmVudmlyb25tZW50LldvcmtGbG93QVBJXG4gICAgKTtcbiAgfVxuXG4gIGRlbGV0ZVdvcmtmbG93U3RhZ2VzKHJlcXVlc3RzOiBXb3JrZmxvd1N0YWdlWydDb2RlJ11bXSk6IFByb21pc2U8YW55PiB7XG4gICAgY29uc3QgdXJsID0gYCR7dGhpcy5XT1JLRkxPV19NT0RFTF9CQVNFX1BBVEh9L0RlbGV0ZVdvcmtmbG93U3RhZ2VgO1xuICAgIC8vIGNvbnNvbGUubG9nKCdTYXZpbmcgd29ya2Zsb3dzJywgcmVxdWVzdHMpO1xuICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlLnBvc3QoXG4gICAgICB1cmwsXG4gICAgICByZXF1ZXN0cyxcbiAgICAgIHRoaXMuZW52U3ZjLmVudmlyb25tZW50LldvcmtGbG93QVBJXG4gICAgKTtcbiAgfVxuXG4gIHNhdmVFc2NhbGF0aW9ucyhyZXF1ZXN0czogUGFydGlhbDxFc2NhbGF0aW9uPltdKTogUHJvbWlzZTxFc2NhbGF0aW9uW10+IHtcbiAgICBjb25zdCB1cmwgPSBgJHt0aGlzLkVTQ0FMQVRJT05fTU9ERUxfQkFTRV9QQVRIfS9TYXZlRXNjYWxhdGlvbnNgO1xuICAgIC8vIGNvbnNvbGUubG9nKCdTYXZpbmcgd29ya2Zsb3dzJywgcmVxdWVzdHMpO1xuICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlLnBvc3QoXG4gICAgICB1cmwsXG4gICAgICByZXF1ZXN0cyxcbiAgICAgIHRoaXMuZW52U3ZjLmVudmlyb25tZW50LldvcmtGbG93QVBJXG4gICAgKTtcbiAgfVxuXG4gIGRlbGV0ZUVzY2FsYXRpb25zKHJlcXVlc3RzOiBFc2NhbGF0aW9uWydDb2RlJ11bXSk6IFByb21pc2U8YW55PiB7XG4gICAgY29uc3QgdXJsID0gYCR7dGhpcy5FU0NBTEFUSU9OX01PREVMX0JBU0VfUEFUSH0vRGVsZXRlRXNjYWxhdGlvbmA7XG4gICAgLy8gY29uc29sZS5sb2coJ1NhdmluZyB3b3JrZmxvd3MnLCByZXF1ZXN0cyk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFNlcnZpY2UucG9zdChcbiAgICAgIHVybCxcbiAgICAgIHJlcXVlc3RzLFxuICAgICAgdGhpcy5lbnZTdmMuZW52aXJvbm1lbnQuV29ya0Zsb3dBUElcbiAgICApO1xuICB9XG5cbiAgc2VhcmNoRXNjYWxhdGlvbldpdGhQYXJhbShcbiAgICBwYXJhbXM6IFBpY2s8RXNjYWxhdGlvbiwgJ1dvcmtmbG93JyB8ICdTdGFnZScgfCAnVHlwZSc+LFxuICAgIHNraXA6IG51bWJlciA9IDAsXG4gICAgbGltaXQ6IG51bWJlciA9IDEsXG4gICAgc29ydE9yZGVyOiBzdHJpbmcgPSAnQXNjJ1xuICApOiBQcm9taXNlPFBhZ2VkPEVzY2FsYXRpb24+PiB7XG4gICAgY29uc3QgdXJsID0gYCR7dGhpcy5FU0NBTEFUSU9OX01PREVMX0JBU0VfUEFUSH0vU2VhcmNoRXNjYWxhdGlvbnMvJHtza2lwfS8ke2xpbWl0fWA7XG4gICAgY29uc3QgcGF5bG9hZCA9IE9iamVjdC5lbnRyaWVzKHBhcmFtcykubWFwKChba2V5LCB2YWx1ZV0pID0+ICh7XG4gICAgICBJc0F1dG9Gcm9tRGF0ZTogdHJ1ZSxcbiAgICAgIElzQXV0b0VuZERhdGU6IHRydWUsXG4gICAgICBQcm9wZXJ0eU5hbWU6IGtleSxcbiAgICAgIEVudGl0eVZhbHVlOiB2YWx1ZSxcbiAgICAgIFR5cGU6ICdTdHJpbmcnLFxuICAgICAgT3BlcmF0b3I6ICdBbmQnLFxuICAgICAgU2lnbjogJ0VRJyxcbiAgICAgIFNvcnQ6IHNvcnRPcmRlcixcbiAgICAgIC8vIEZpZWxkczogWydzdHJpbmcnXSxcbiAgICB9KSk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFNlcnZpY2UucG9zdCh1cmwsIHBheWxvYWQpIGFzIFByb21pc2U8UGFnZWQ8RXNjYWxhdGlvbj4+O1xuICB9XG5cbiAgZ2V0RXNjYWxhdGlvbldpdGhQYXJhbShcbiAgICBwYXJhbTogc3RyaW5nLFxuICAgIHNraXA6IG51bWJlciA9IDAsXG4gICAgbGltaXQ6IG51bWJlciA9IDEsXG4gICAgc29ydFBhcmFtOiBzdHJpbmcgPSAnQ3JlYXRlZEF0JyxcbiAgICBzb3J0T3JkZXI6IHN0cmluZyA9ICdBc2MnXG4gICk6IFByb21pc2U8UGFnZWQ8RXNjYWxhdGlvbj4+IHtcbiAgICBjb25zdCB1cmwgPSBgJHt0aGlzLkVTQ0FMQVRJT05fTU9ERUxfQkFTRV9QQVRIfS9HZXRFc2NhbGF0aW9uc1dpdGhQYXJhbS8ke3BhcmFtfS8ke3NraXB9LyR7bGltaXR9LyR7c29ydFBhcmFtfS8ke3NvcnRPcmRlcn1gO1xuICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlLmdldCh1cmwpIGFzIFByb21pc2U8UGFnZWQ8RXNjYWxhdGlvbj4+O1xuICB9XG5cbiAgZ2V0UmVwb3J0U2NoZWR1bGVzKFxuICAgIHNraXA6IG51bWJlciA9IDAsXG4gICAgbGltaXQ6IG51bWJlciA9IDBcbiAgKTogUHJvbWlzZTxQYWdlZDxSZXBvcnRTY2hlZHVsZT4+IHtcbiAgICBjb25zdCB1cmwgPSBgJHt0aGlzLlJTX01PREVMX0JBU0VfUEFUSH0vR2V0UmVwb3J0U2NoZWR1bGVzLyR7c2tpcH0vJHtsaW1pdH1gO1xuICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlLmdldChcbiAgICAgIHVybCxcbiAgICAgIHRoaXMuZW52U3ZjLmVudmlyb25tZW50LlJlcG9ydGluZ0FQSVxuICAgICkgYXMgUHJvbWlzZTxQYWdlZDxSZXBvcnRTY2hlZHVsZT4+O1xuICB9XG5cbiAgZ2V0T3BlcmF0aW9uQWN0aW9ucyhcbiAgICBza2lwOiBudW1iZXIgPSAwLFxuICAgIGxpbWl0OiBudW1iZXIgPSAwXG4gICk6IFByb21pc2U8UGFnZWQ8T3BlcmF0aW9uQWN0aW9uPj4ge1xuICAgIGNvbnN0IHVybCA9IGAke3RoaXMuVVRJTF9CQVNFX1BBVEh9L0dldE9wZXJhdGlvbkFjdGlvbmA7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFNlcnZpY2UuZ2V0KFxuICAgICAgdXJsLFxuICAgICAgLy8gdGhpcy5lbnZTdmMuZW52aXJvbm1lbnQuR0xBUElcbiAgICApIGFzIFByb21pc2U8UGFnZWQ8T3BlcmF0aW9uQWN0aW9uPj47XG4gIH1cblxuICBzYXZlQWN0b3JUYWdzKHJlcXVlc3RzOiBBY3RvclRhZ1tdKTogUHJvbWlzZTxhbnk+IHtcbiAgICBjb25zdCB1cmwgPSBgJHt0aGlzLkFDVE9SX01PREVMX0JBU0VfUEFUSH0vU2F2ZUFjdG9yVGFnc2A7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFNlcnZpY2UucG9zdChcbiAgICAgIHVybCxcbiAgICAgIHJlcXVlc3RzLFxuICAgICAgdGhpcy5lbnZTdmMuZW52aXJvbm1lbnQuV29ya0Zsb3dBUElcbiAgICApO1xuICB9XG5cbiAgZ2V0Rmxvd2FibGVTdGF0dXNlcyhcbiAgICBza2lwOiBudW1iZXIgPSAwLFxuICAgIGxpbWl0OiBudW1iZXIgPSAwXG4gICk6IFByb21pc2U8UGFnZWQ8Rmxvd2FibGVTdGF0dXM+PiB7XG4gICAgY29uc3QgdXJsID0gYCR7dGhpcy5GTE9XQUJMRV9TVEFUVVNfTU9ERUxfQkFTRV9QQVRIfS9HZXRGbG93YWJsZVN0YXR1cy8ke3NraXB9LyR7bGltaXR9L0NyZWF0ZWRBdC9EZXNjYDtcbiAgICByZXR1cm4gdGhpcy5odHRwU2VydmljZS5nZXQodXJsKSBhcyBQcm9taXNlPFBhZ2VkPEZsb3dhYmxlU3RhdHVzPj47XG4gIH1cblxuICAvLyBIZWxwZXIgdG8gY3JlYXRlIGEgbW9jayB3b3JrZmxvdyAoanVzdCBmb3IgZGVtbylcbiAgcHJpdmF0ZSBjcmVhdGVNb2NrV29ya2Zsb3coY29kZTogc3RyaW5nKTogV29ya2Zsb3cge1xuICAgIC8vIFJldHVybiBhIHNpbXBsZSB3b3JrZmxvdyB3aXRoIG9uZSBsYW5lIGFuZCBvbmUgc3RhZ2VcbiAgICBjb25zdCB3b3JrZmxvdzogV29ya2Zsb3cgPSB7XG4gICAgICBJZDogJ3dvcmtmbG93LTEyMycsXG4gICAgICBDb2RlOiBjb2RlLFxuICAgICAgVGVuYW50SWQ6ICd0ZW5hbnQtMScsXG4gICAgICBpZDogJ3dvcmtmbG93LTEyMycsXG4gICAgICBTZXJ2aWNlTmFtZTogJ3dvcmtmbG93LXNlcnZpY2UnLFxuICAgICAgQ3JlYXRlZEF0OiBuZXcgRGF0ZSgpLFxuICAgICAgVXBkYXRlZEF0OiBuZXcgRGF0ZSgpLFxuICAgICAgRGF0YVN0YXRlOiBPYmplY3RTdGF0ZS5VbmNoYW5nZWQsXG4gICAgICBOYW1lOiAnU2FtcGxlIFdvcmtmbG93JyxcbiAgICAgIERlc2NyaXB0aW9uOiAnQSBzYW1wbGUgd29ya2Zsb3cgbG9hZGVkIGZyb20gQVBJJyxcbiAgICAgIFN0YWdlRW50cnlSdWxlOiAnJyxcbiAgICAgIEFzc2lnbm1lbnRUeXBlOiBUYXNrQXNzaWdubWVudFR5cGUuQXV0b1JvdXRlLFxuICAgICAgU3RhdHVzOiBTdGF0dXMuQWN0aXZlLFxuICAgICAgQWN0aW9uczogW10sXG4gICAgICBMYW5lczogW1xuICAgICAgICB7XG4gICAgICAgICAgSWQ6ICdsYW5lLTAnLFxuICAgICAgICAgIENvZGU6ICdsYW5lLTAnLFxuICAgICAgICAgIFRlbmFudElkOiAndGVuYW50LTEnLFxuICAgICAgICAgIGlkOiAnbGFuZS0wJyxcbiAgICAgICAgICBTZXJ2aWNlTmFtZTogJ3dvcmtmbG93LXNlcnZpY2UnLFxuICAgICAgICAgIENyZWF0ZWRBdDogbmV3IERhdGUoKSxcbiAgICAgICAgICBVcGRhdGVkQXQ6IG5ldyBEYXRlKCksXG4gICAgICAgICAgRGF0YVN0YXRlOiBPYmplY3RTdGF0ZS5VbmNoYW5nZWQsXG4gICAgICAgICAgV29ya2Zsb3c6ICd3b3JrZmxvdy0xMjMnLFxuICAgICAgICAgIFRhZ3M6IFtdLFxuICAgICAgICAgIFBvc2l0aW9uOiAwLFxuICAgICAgICAgIENvb3JkaW5hdGVzOiB7IFg6IDAsIFk6IDAgfSxcbiAgICAgICAgICBTaXplOiB7IFdpZHRoOiAzMDAwLCBIZWlnaHQ6IDI2MyB9LFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICAgIFN0YWdlczogW1xuICAgICAgICB7XG4gICAgICAgICAgSWQ6ICdzdGFnZS0xMjMnLFxuICAgICAgICAgIENvZGU6ICdzdGFnZS0xMjMnLFxuICAgICAgICAgIFRlbmFudElkOiAndGVuYW50LTEnLFxuICAgICAgICAgIGlkOiAnc3RhZ2UtMTIzJyxcbiAgICAgICAgICBTZXJ2aWNlTmFtZTogJ3dvcmtmbG93LXNlcnZpY2UnLFxuICAgICAgICAgIENyZWF0ZWRBdDogbmV3IERhdGUoKSxcbiAgICAgICAgICBVcGRhdGVkQXQ6IG5ldyBEYXRlKCksXG4gICAgICAgICAgRGF0YVN0YXRlOiBPYmplY3RTdGF0ZS5VbmNoYW5nZWQsXG4gICAgICAgICAgV29ya2Zsb3c6ICd3b3JrZmxvdy0xMjMnLFxuICAgICAgICAgIE5hbWU6ICdJbml0aWFsIFN0YWdlJyxcbiAgICAgICAgICBEZXNjcmlwdGlvbjogJ1N0YXJ0aW5nIHBvaW50JyxcbiAgICAgICAgICBEdXJhdGlvbjogMjQsXG4gICAgICAgICAgUGFzc09uUnVsZTogJycsXG4gICAgICAgICAgQWN0b3JSdWxlOiBTdGFnZUFjdG9yUnVsZS5Ob25lLFxuICAgICAgICAgIE1pbk5vT2ZBY3RvcjogMSxcbiAgICAgICAgICBJc1BhcmFsbGVsOiBmYWxzZSxcbiAgICAgICAgICBJc0VudHJ5UG9pbnQ6IHRydWUsXG4gICAgICAgICAgSXNFeGl0UG9pbnQ6IGZhbHNlLFxuICAgICAgICAgIFRhZ3M6IFtdLFxuICAgICAgICAgIEZvcm06ICcnLFxuICAgICAgICAgIEFsbG93TXVsdGlTdWJQcm9jZXNzOiBmYWxzZSxcbiAgICAgICAgICBBc3NpZ25tZW50VHlwZTogVGFza0Fzc2lnbm1lbnRUeXBlLkF1dG9Sb3V0ZSxcbiAgICAgICAgICBTdWJXb3JrRmxvdzogJycsXG4gICAgICAgICAgU3dpbUxhbmU6ICdsYW5lLTAnLFxuICAgICAgICAgIENvb3JkaW5hdGVzOiB7IFg6IDEwMCwgWTogNTAgfSxcbiAgICAgICAgICBJc1N1YlByb2Nlc3M6IGZhbHNlLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9O1xuXG4gICAgcmV0dXJuIHdvcmtmbG93O1xuICB9XG59XG4iXX0=
168
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2Zsb3ctZGF0YS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmVyYmVuLXdvcmtmbG93LXVpL3NyYy9saWIvY29tcG9uZW50cy93b3JrZmxvdy1kZXNpZ25lci93b3JrZmxvdy1kYXRhLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQThDLFdBQVcsRUFBMEMsY0FBYyxFQUFFLE1BQU0sRUFBTyxrQkFBa0IsRUFBMkIsTUFBTSxtQ0FBbUMsQ0FBQzs7O0FBTTlOLE1BQU0sT0FBTyxtQkFBbUI7SUFXcEI7SUFDQTtJQVhPLHdCQUF3QixHQUFHLFVBQVUsQ0FBQztJQUN0QyxvQkFBb0IsR0FBRyxNQUFNLENBQUM7SUFDOUIsb0JBQW9CLEdBQUcsTUFBTSxDQUFDO0lBQzlCLDBCQUEwQixHQUFHLFlBQVksQ0FBQztJQUMxQyxrQkFBa0IsR0FBRyxRQUFRLENBQUM7SUFDOUIsY0FBYyxHQUFHLE1BQU0sQ0FBQztJQUN4QixxQkFBcUIsR0FBRyxPQUFPLENBQUM7SUFDaEMsK0JBQStCLEdBQUcsUUFBUSxDQUFDO0lBRTVELFlBQ1UsV0FBa0MsRUFDbEMsTUFBMEI7UUFEMUIsZ0JBQVcsR0FBWCxXQUFXLENBQXVCO1FBQ2xDLFdBQU0sR0FBTixNQUFNLENBQW9CO0lBQ2hDLENBQUM7SUFFTCxvQkFBb0IsQ0FDbEIsS0FBYSxFQUNiLE9BQWUsQ0FBQyxFQUNoQixRQUFnQixDQUFDLEVBQ2pCLFlBQW9CLFdBQVcsRUFDL0IsWUFBb0IsS0FBSztRQUV6QixNQUFNLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyx3QkFBd0IsMEJBQTBCLEtBQUssSUFBSSxJQUFJLElBQUksS0FBSyxJQUFJLFNBQVMsSUFBSSxTQUFTLEVBQUUsQ0FBQztRQUN6SCxPQUFPLElBQUksQ0FBQyxXQUFX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YyxFQUFFLGtCQUFrQixDQUFDLFNBQVM7b0JBQzVDLFdBQVcsRUFBRSxFQUFFO29CQUNmLFFBQVEsRUFBRSxRQUFRO29CQUNsQixXQUFXLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUU7b0JBQzlCLFlBQVksRUFBRSxLQUFLO2lCQUNwQjthQUNGO1NBQ0YsQ0FBQztRQUVGLE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUM7d0dBck9VLG1CQUFtQjs0R0FBbkIsbUJBQW1CLGNBRmxCLE1BQU07OzRGQUVQLG1CQUFtQjtrQkFIL0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RvclRhZywgRXNjYWxhdGlvbiwgRmxvd2FibGVTdGF0dXMsIEZvcm0sIE9iamVjdFN0YXRlLCBPcGVyYXRpb25BY3Rpb24sIFBhZ2VkLCBSZXBvcnRTY2hlZHVsZSwgU3RhZ2VBY3RvclJ1bGUsIFN0YXR1cywgVGFnLCBUYXNrQXNzaWdubWVudFR5cGUsIFdvcmtmbG93LCBXb3JrZmxvd1N0YWdlIH0gZnJvbSAndmVyYmVuLXdvcmtmbG93LXVpL3NyYy9saWIvbW9kZWxzJztcbmltcG9ydCB7IEVudmlyb25tZW50U2VydmljZSwgSHR0cFdlYlJlcXVlc3RTZXJ2aWNlIH0gZnJvbSAndmVyYmVuLXdvcmtmbG93LXVpL3NyYy9saWIvc2VydmljZXMnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgV29ya2Zsb3dEYXRhU2VydmljZSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgV09SS0ZMT1dfTU9ERUxfQkFTRV9QQVRIID0gJ1dvcmtmbG93JztcbiAgcHJpdmF0ZSByZWFkb25seSBBVVRIX01PREVMX0JBU0VfUEFUSCA9ICdVc2VyJztcbiAgcHJpdmF0ZSByZWFkb25seSBGT1JNX01PREVMX0JBU0VfUEFUSCA9ICdGb3JtJztcbiAgcHJpdmF0ZSByZWFkb25seSBFU0NBTEFUSU9OX01PREVMX0JBU0VfUEFUSCA9ICdFc2NhbGF0aW9uJztcbiAgcHJpdmF0ZSByZWFkb25seSBSU19NT0RFTF9CQVNFX1BBVEggPSAnUmVwb3J0JztcbiAgcHJpdmF0ZSByZWFkb25seSBVVElMX0JBU0VfUEFUSCA9ICdVdGlsJztcbiAgcHJpdmF0ZSByZWFkb25seSBBQ1RPUl9NT0RFTF9CQVNFX1BBVEggPSAnQWN0b3InO1xuICBwcml2YXRlIHJlYWRvbmx5IEZMT1dBQkxFX1NUQVRVU19NT0RFTF9CQVNFX1BBVEggPSAnU3RhdHVzJztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGh0dHBTZXJ2aWNlOiBIdHRwV2ViUmVxdWVzdFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBlbnZTdmM6IEVudmlyb25tZW50U2VydmljZVxuICApIHsgfVxuXG4gIGdldFdvcmtmbG93V2l0aFBhcmFtKFxuICAgIHBhcmFtOiBzdHJpbmcsXG4gICAgc2tpcDogbnVtYmVyID0gMCxcbiAgICBsaW1pdDogbnVtYmVyID0gMSxcbiAgICBzb3J0UGFyYW06IHN0cmluZyA9ICdDcmVhdGVkQXQnLFxuICAgIHNvcnRPcmRlcjogc3RyaW5nID0gJ0FzYydcbiAgKTogUHJvbWlzZTxQYWdlZDxXb3JrZmxvdz4+IHtcbiAgICBjb25zdCB1cmwgPSBgJHt0aGlzLldPUktGTE9XX01PREVMX0JBU0VfUEFUSH0vR2V0V29ya2Zsb3dzV2l0aFBhcmFtLyR7cGFyYW19LyR7c2tpcH0vJHtsaW1pdH0vJHtzb3J0UGFyYW19LyR7c29ydE9yZGVyfWA7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFNlcnZpY2UuZ2V0KHVybCkgYXMgUHJvbWlzZTxQYWdlZDxXb3JrZmxvdz4+O1xuICB9XG5cbiAgZ2V0V29ya2Zsb3dzKHNraXA6IG51bWJlciA9IDAsIGxpbWl0OiBudW1iZXIgPSAwKTogUHJvbWlzZTxQYWdlZDxXb3JrZmxvdz4+IHtcbiAgICBjb25zdCB1cmwgPSBgJHt0aGlzLldPUktGTE9XX01PREVMX0JBU0VfUEFUSH0vR2V0V29ya2Zsb3dzLyR7c2tpcH0vJHtsaW1pdH1gO1xuICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlLmdldChcbiAgICAgIHVybCxcbiAgICAgIHRoaXMuZW52U3ZjLmVudmlyb25tZW50LldvcmtGbG93QVBJXG4gICAgKSBhcyBQcm9taXNlPFBhZ2VkPFdvcmtmbG93Pj47XG4gIH1cblxuICBnZXRGb3Jtcyhza2lwOiBudW1iZXIgPSAwLCBsaW1pdDogbnVtYmVyID0gMCk6IFByb21pc2U8UGFnZWQ8Rm9ybT4+IHtcbiAgICBjb25zdCB1cmwgPSBgJHt0aGlzLkZPUk1fTU9ERUxfQkFTRV9QQVRIfS9HZXRGb3Jtcy8ke3NraXB9LyR7bGltaXR9YDtcbiAgICByZXR1cm4gdGhpcy5odHRwU2VydmljZS5nZXQoXG4gICAgICB1cmwsXG4gICAgICB0aGlzLmVudlN2Yy5lbnZpcm9ubWVudC5Xb3JrRmxvd0FQSVxuICAgICkgYXMgUHJvbWlzZTxQYWdlZDxGb3JtPj47XG4gIH1cblxuICBnZXRUYWdzKHNraXA6IG51bWJlciA9IDAsIGxpbWl0OiBudW1iZXIgPSAwKTogUHJvbWlzZTxQYWdlZDxUYWc+PiB7XG4gICAgY29uc3QgdXJsID0gYCR7dGhpcy5BVVRIX01PREVMX0JBU0VfUEFUSH0vR2V0VGFncy8ke3NraXB9LyR7bGltaXR9YDtcbiAgICByZXR1cm4gdGhpcy5odHRwU2VydmljZS5nZXQoXG4gICAgICB1cmwsXG4gICAgICB0aGlzLmVudlN2Yy5lbnZpcm9ubWVudC5BdXRoQVBJXG4gICAgKSBhcyBQcm9taXNlPFBhZ2VkPFRhZz4+O1xuICB9XG5cbiAgc2F2ZVdvcmtmbG93cyhyZXF1ZXN0czogUGFydGlhbDxXb3JrZmxvdz5bXSk6IFByb21pc2U8YW55PiB7XG4gICAgY29uc3QgdXJsID0gYCR7dGhpcy5XT1JLRkxPV19NT0RFTF9CQVNFX1BBVEh9L3hTYXZlV29ya2Zsb3dzYDtcbiAgICAvLyBjb25zb2xlLmxvZygnU2F2aW5nIHdvcmtmbG93cycsIHJlcXVlc3RzKTtcbiAgICByZXR1cm4gdGhpcy5odHRwU2VydmljZS5wb3N0KFxuICAgICAgdXJsLFxuICAgICAgcmVxdWVzdHMsXG4gICAgICB0aGlzLmVudlN2Yy5lbnZpcm9ubWVudC5Xb3JrRmxvd0FQSVxuICAgICk7XG4gIH1cblxuICBkZWxldGVXb3JrZmxvd1N0YWdlcyhyZXF1ZXN0czogV29ya2Zsb3dTdGFnZVsnQ29kZSddW10pOiBQcm9taXNlPGFueT4ge1xuICAgIGNvbnN0IHVybCA9IGAke3RoaXMuV09SS0ZMT1dfTU9ERUxfQkFTRV9QQVRIfS9EZWxldGVXb3JrZmxvd1N0YWdlYDtcbiAgICAvLyBjb25zb2xlLmxvZygnU2F2aW5nIHdvcmtmbG93cycsIHJlcXVlc3RzKTtcbiAgICByZXR1cm4gdGhpcy5odHRwU2VydmljZS5wb3N0KFxuICAgICAgdXJsLFxuICAgICAgcmVxdWVzdHMsXG4gICAgICB0aGlzLmVudlN2Yy5lbnZpcm9ubWVudC5Xb3JrRmxvd0FQSVxuICAgICk7XG4gIH1cblxuICBzYXZlRXNjYWxhdGlvbnMocmVxdWVzdHM6IFBhcnRpYWw8RXNjYWxhdGlvbj5bXSk6IFByb21pc2U8RXNjYWxhdGlvbltdPiB7XG4gICAgY29uc3QgdXJsID0gYCR7dGhpcy5FU0NBTEFUSU9OX01PREVMX0JBU0VfUEFUSH0vU2F2ZUVzY2FsYXRpb25zYDtcbiAgICAvLyBjb25zb2xlLmxvZygnU2F2aW5nIHdvcmtmbG93cycsIHJlcXVlc3RzKTtcbiAgICByZXR1cm4gdGhpcy5odHRwU2VydmljZS5wb3N0KFxuICAgICAgdXJsLFxuICAgICAgcmVxdWVzdHMsXG4gICAgICB0aGlzLmVudlN2Yy5lbnZpcm9ubWVudC5Xb3JrRmxvd0FQSVxuICAgICk7XG4gIH1cblxuICBkZWxldGVFc2NhbGF0aW9ucyhyZXF1ZXN0czogRXNjYWxhdGlvblsnQ29kZSddW10pOiBQcm9taXNlPGFueT4ge1xuICAgIGNvbnN0IHVybCA9IGAke3RoaXMuRVNDQUxBVElPTl9NT0RFTF9CQVNFX1BBVEh9L0RlbGV0ZUVzY2FsYXRpb25gO1xuICAgIC8vIGNvbnNvbGUubG9nKCdTYXZpbmcgd29ya2Zsb3dzJywgcmVxdWVzdHMpO1xuICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlLnBvc3QoXG4gICAgICB1cmwsXG4gICAgICByZXF1ZXN0cyxcbiAgICAgIHRoaXMuZW52U3ZjLmVudmlyb25tZW50LldvcmtGbG93QVBJXG4gICAgKTtcbiAgfVxuXG4gIHNlYXJjaEVzY2FsYXRpb25XaXRoUGFyYW0oXG4gICAgcGFyYW1zOiBQaWNrPEVzY2FsYXRpb24sICdXb3JrZmxvdycgfCAnU3RhZ2UnIHwgJ1R5cGUnPixcbiAgICBza2lwOiBudW1iZXIgPSAwLFxuICAgIGxpbWl0OiBudW1iZXIgPSAxLFxuICAgIHNvcnRPcmRlcjogc3RyaW5nID0gJ0FzYydcbiAgKTogUHJvbWlzZTxQYWdlZDxFc2NhbGF0aW9uPj4ge1xuICAgIGNvbnN0IHVybCA9IGAke3RoaXMuRVNDQUxBVElPTl9NT0RFTF9CQVNFX1BBVEh9L1NlYXJjaEVzY2FsYXRpb25zLyR7c2tpcH0vJHtsaW1pdH1gO1xuICAgIGNvbnN0IHBheWxvYWQgPSBPYmplY3QuZW50cmllcyhwYXJhbXMpLm1hcCgoW2tleSwgdmFsdWVdKSA9PiAoe1xuICAgICAgSXNBdXRvRnJvbURhdGU6IHRydWUsXG4gICAgICBJc0F1dG9FbmREYXRlOiB0cnVlLFxuICAgICAgUHJvcGVydHlOYW1lOiBrZXksXG4gICAgICBFbnRpdHlWYWx1ZTogdmFsdWUsXG4gICAgICBUeXBlOiAnU3RyaW5nJyxcbiAgICAgIE9wZXJhdG9yOiAnQW5kJyxcbiAgICAgIFNpZ246ICdFUScsXG4gICAgICBTb3J0OiBzb3J0T3JkZXIsXG4gICAgICAvLyBGaWVsZHM6IFsnc3RyaW5nJ10sXG4gICAgfSkpO1xuICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlLnBvc3QodXJsLCBwYXlsb2FkKSBhcyBQcm9taXNlPFBhZ2VkPEVzY2FsYXRpb24+PjtcbiAgfVxuXG4gIGdldEVzY2FsYXRpb25XaXRoUGFyYW0oXG4gICAgcGFyYW06IHN0cmluZyxcbiAgICBza2lwOiBudW1iZXIgPSAwLFxuICAgIGxpbWl0OiBudW1iZXIgPSAxLFxuICAgIHNvcnRQYXJhbTogc3RyaW5nID0gJ0NyZWF0ZWRBdCcsXG4gICAgc29ydE9yZGVyOiBzdHJpbmcgPSAnQXNjJ1xuICApOiBQcm9taXNlPFBhZ2VkPEVzY2FsYXRpb24+PiB7XG4gICAgY29uc3QgdXJsID0gYCR7dGhpcy5FU0NBTEFUSU9OX01PREVMX0JBU0VfUEFUSH0vR2V0RXNjYWxhdGlvbnNXaXRoUGFyYW0vJHtwYXJhbX0vJHtza2lwfS8ke2xpbWl0fS8ke3NvcnRQYXJhbX0vJHtzb3J0T3JkZXJ9YDtcbiAgICByZXR1cm4gdGhpcy5odHRwU2VydmljZS5nZXQodXJsKSBhcyBQcm9taXNlPFBhZ2VkPEVzY2FsYXRpb24+PjtcbiAgfVxuXG4gIGdldFJlcG9ydFNjaGVkdWxlcyhcbiAgICBza2lwOiBudW1iZXIgPSAwLFxuICAgIGxpbWl0OiBudW1iZXIgPSAwXG4gICk6IFByb21pc2U8UGFnZWQ8UmVwb3J0U2NoZWR1bGU+PiB7XG4gICAgY29uc3QgdXJsID0gYCR7dGhpcy5SU19NT0RFTF9CQVNFX1BBVEh9L0dldFJlcG9ydFNjaGVkdWxlcy8ke3NraXB9LyR7bGltaXR9YDtcbiAgICByZXR1cm4gdGhpcy5odHRwU2VydmljZS5nZXQoXG4gICAgICB1cmwsXG4gICAgICB0aGlzLmVudlN2Yy5lbnZpcm9ubWVudC5SZXBvcnRpbmdBUElcbiAgICApIGFzIFByb21pc2U8UGFnZWQ8UmVwb3J0U2NoZWR1bGU+PjtcbiAgfVxuXG4gIGdldE9wZXJhdGlvbkFjdGlvbnMoXG4gICAgc2tpcDogbnVtYmVyID0gMCxcbiAgICBsaW1pdDogbnVtYmVyID0gMFxuICApOiBQcm9taXNlPFBhZ2VkPE9wZXJhdGlvbkFjdGlvbj4+IHtcbiAgICBjb25zdCB1cmwgPSBgJHt0aGlzLlVUSUxfQkFTRV9QQVRIfS9HZXRPcGVyYXRpb25BY3Rpb25gO1xuICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlLmdldChcbiAgICAgIHVybCxcbiAgICAgIC8vIHRoaXMuZW52U3ZjLmVudmlyb25tZW50LkdMQVBJXG4gICAgKSBhcyBQcm9taXNlPFBhZ2VkPE9wZXJhdGlvbkFjdGlvbj4+O1xuICB9XG5cbiAgc2F2ZUFjdG9yVGFncyhyZXF1ZXN0czogQWN0b3JUYWdbXSk6IFByb21pc2U8YW55PiB7XG4gICAgY29uc3QgdXJsID0gYCR7dGhpcy5BQ1RPUl9NT0RFTF9CQVNFX1BBVEh9L1NhdmVBY3RvclRhZ3NgO1xuICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlLnBvc3QoXG4gICAgICB1cmwsXG4gICAgICByZXF1ZXN0cyxcbiAgICAgIHRoaXMuZW52U3ZjLmVudmlyb25tZW50LldvcmtGbG93QVBJXG4gICAgKTtcbiAgfVxuXG4gIGdldEZsb3dhYmxlU3RhdHVzZXMoXG4gICAgc2tpcDogbnVtYmVyID0gMCxcbiAgICBsaW1pdDogbnVtYmVyID0gMFxuICApOiBQcm9taXNlPFBhZ2VkPEZsb3dhYmxlU3RhdHVzPj4ge1xuICAgIGNvbnN0IHVybCA9IGAke3RoaXMuRkxPV0FCTEVfU1RBVFVTX01PREVMX0JBU0VfUEFUSH0vR2V0Rmxvd2FibGVTdGF0dXMvJHtza2lwfS8ke2xpbWl0fS9DcmVhdGVkQXQvRGVzY2A7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFNlcnZpY2UuZ2V0KHVybCkgYXMgUHJvbWlzZTxQYWdlZDxGbG93YWJsZVN0YXR1cz4+O1xuICB9XG5cbiAgLy8gSGVscGVyIHRvIGNyZWF0ZSBhIG1vY2sgd29ya2Zsb3cgKGp1c3QgZm9yIGRlbW8pXG4gIHByaXZhdGUgY3JlYXRlTW9ja1dvcmtmbG93KGNvZGU6IHN0cmluZyk6IFdvcmtmbG93IHtcbiAgICAvLyBSZXR1cm4gYSBzaW1wbGUgd29ya2Zsb3cgd2l0aCBvbmUgbGFuZSBhbmQgb25lIHN0YWdlXG4gICAgY29uc3Qgd29ya2Zsb3c6IFdvcmtmbG93ID0ge1xuICAgICAgSWQ6ICd3b3JrZmxvdy0xMjMnLFxuICAgICAgQ29kZTogY29kZSxcbiAgICAgIFRlbmFudElkOiAndGVuYW50LTEnLFxuICAgICAgaWQ6ICd3b3JrZmxvdy0xMjMnLFxuICAgICAgU2VydmljZU5hbWU6ICd3b3JrZmxvdy1zZXJ2aWNlJyxcbiAgICAgIENyZWF0ZWRBdDogbmV3IERhdGUoKSxcbiAgICAgIFVwZGF0ZWRBdDogbmV3IERhdGUoKSxcbiAgICAgIERhdGFTdGF0ZTogT2JqZWN0U3RhdGUuVW5jaGFuZ2VkLFxuICAgICAgTmFtZTogJ1NhbXBsZSBXb3JrZmxvdycsXG4gICAgICBEZXNjcmlwdGlvbjogJ0Egc2FtcGxlIHdvcmtmbG93IGxvYWRlZCBmcm9tIEFQSScsXG4gICAgICBTdGFnZUVudHJ5UnVsZTogJycsXG4gICAgICBBc3NpZ25tZW50VHlwZTogVGFza0Fzc2lnbm1lbnRUeXBlLkF1dG9Sb3V0ZSxcbiAgICAgIFN0YXR1czogU3RhdHVzLkFjdGl2ZSxcbiAgICAgIEFjdGlvbnM6IFtdLFxuICAgICAgTGFuZXM6IFtcbiAgICAgICAge1xuICAgICAgICAgIElkOiAnbGFuZS0wJyxcbiAgICAgICAgICBDb2RlOiAnbGFuZS0wJyxcbiAgICAgICAgICBUZW5hbnRJZDogJ3RlbmFudC0xJyxcbiAgICAgICAgICBpZDogJ2xhbmUtMCcsXG4gICAgICAgICAgU2VydmljZU5hbWU6ICd3b3JrZmxvdy1zZXJ2aWNlJyxcbiAgICAgICAgICBDcmVhdGVkQXQ6IG5ldyBEYXRlKCksXG4gICAgICAgICAgVXBkYXRlZEF0OiBuZXcgRGF0ZSgpLFxuICAgICAgICAgIERhdGFTdGF0ZTogT2JqZWN0U3RhdGUuVW5jaGFuZ2VkLFxuICAgICAgICAgIFdvcmtmbG93OiAnd29ya2Zsb3ctMTIzJyxcbiAgICAgICAgICBUYWdzOiBbXSxcbiAgICAgICAgICBQb3NpdGlvbjogMCxcbiAgICAgICAgICBDb29yZGluYXRlczogeyBYOiAwLCBZOiAwIH0sXG4gICAgICAgICAgU2l6ZTogeyBXaWR0aDogMzAwMCwgSGVpZ2h0OiAyNjMgfSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgICBTdGFnZXM6IFtcbiAgICAgICAge1xuICAgICAgICAgIElkOiAnc3RhZ2UtMTIzJyxcbiAgICAgICAgICBDb2RlOiAnc3RhZ2UtMTIzJyxcbiAgICAgICAgICBUZW5hbnRJZDogJ3RlbmFudC0xJyxcbiAgICAgICAgICBpZDogJ3N0YWdlLTEyMycsXG4gICAgICAgICAgU2VydmljZU5hbWU6ICd3b3JrZmxvdy1zZXJ2aWNlJyxcbiAgICAgICAgICBDcmVhdGVkQXQ6IG5ldyBEYXRlKCksXG4gICAgICAgICAgVXBkYXRlZEF0OiBuZXcgRGF0ZSgpLFxuICAgICAgICAgIERhdGFTdGF0ZTogT2JqZWN0U3RhdGUuVW5jaGFuZ2VkLFxuICAgICAgICAgIFdvcmtmbG93OiAnd29ya2Zsb3ctMTIzJyxcbiAgICAgICAgICBOYW1lOiAnSW5pdGlhbCBTdGFnZScsXG4gICAgICAgICAgRGVzY3JpcHRpb246ICdTdGFydGluZyBwb2ludCcsXG4gICAgICAgICAgRHVyYXRpb246IDI0LFxuICAgICAgICAgIFBhc3NPblJ1bGU6ICcnLFxuICAgICAgICAgIEFjdG9yUnVsZTogU3RhZ2VBY3RvclJ1bGUuTm9uZSxcbiAgICAgICAgICBNaW5Ob09mQWN0b3I6IDEsXG4gICAgICAgICAgSXNQYXJhbGxlbDogZmFsc2UsXG4gICAgICAgICAgSXNFbnRyeVBvaW50OiB0cnVlLFxuICAgICAgICAgIElzRXhpdFBvaW50OiBmYWxzZSxcbiAgICAgICAgICBUYWdzOiBbXSxcbiAgICAgICAgICBGb3JtOiAnJyxcbiAgICAgICAgICBBbGxvd011bHRpU3ViUHJvY2VzczogZmFsc2UsXG4gICAgICAgICAgQXNzaWdubWVudFR5cGU6IFRhc2tBc3NpZ25tZW50VHlwZS5BdXRvUm91dGUsXG4gICAgICAgICAgU3ViV29ya0Zsb3c6ICcnLFxuICAgICAgICAgIFN3aW1MYW5lOiAnbGFuZS0wJyxcbiAgICAgICAgICBDb29yZGluYXRlczogeyBYOiAxMDAsIFk6IDUwIH0sXG4gICAgICAgICAgSXNTdWJQcm9jZXNzOiBmYWxzZSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfTtcblxuICAgIHJldHVybiB3b3JrZmxvdztcbiAgfVxufVxuIl19
@@ -126,7 +126,7 @@ export class WorkflowDesignerComponent {
126
126
  // Create node with original ID
127
127
  const node = {
128
128
  id: stage.Code, // Use original ID
129
- type: stage.SubWorkFlow ? 'subflow' : 'stage',
129
+ type: stage.IsSubProcess ? 'subflow' : 'stage',
130
130
  x: x,
131
131
  y: y,
132
132
  width: 169,
@@ -143,7 +143,7 @@ export class WorkflowDesignerComponent {
143
143
  IsParallel: stage.IsParallel,
144
144
  IsEntryPoint: stage.IsEntryPoint,
145
145
  IsExitPoint: stage.IsExitPoint,
146
- IsSubProcess: stage.SubWorkFlow ? true : false,
146
+ IsSubProcess: stage.IsSubProcess,
147
147
  AssignmentType: stage.AssignmentType,
148
148
  Id: stage.Id, // Keep original ID
149
149
  Code: stage.Code,
@@ -356,4 +356,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
356
356
  }], workflowCode: [{
357
357
  type: Input
358
358
  }] } });
359
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2Zsb3ctZGVzaWduZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmVyYmVuLXdvcmtmbG93LXVpL3NyYy9saWIvY29tcG9uZW50cy93b3JrZmxvdy1kZXNpZ25lci93b3JrZmxvdy1kZXNpZ25lci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92ZXJiZW4td29ya2Zsb3ctdWkvc3JjL2xpYi9jb21wb25lbnRzL3dvcmtmbG93LWRlc2lnbmVyL3dvcmtmbG93LWRlc2lnbmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsS0FBSyxFQUNMLE1BQU0sRUFDTixTQUFTLEdBRVYsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7Ozs7QUFhdkIsTUFBTSxPQUFPLHlCQUF5QjtJQWlCM0I7SUFDQztJQUNBO0lBbEJjLFNBQVMsQ0FBMkI7SUFDbkQsWUFBWSxHQUFrQixJQUFJLENBQUM7SUFFNUMsMEJBQTBCO0lBQzFCLFlBQVksR0FBYSxJQUFJLENBQUM7SUFDOUIsa0JBQWtCLEdBQVksS0FBSyxDQUFDO0lBQ3BDLG1CQUFtQixHQUFZLEtBQUssQ0FBQztJQUVyQyxvQkFBb0IsR0FBa0IsSUFBSSxDQUFDO0lBQzNDLGVBQWUsR0FDYixNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFZixTQUFTLEdBQVksS0FBSyxDQUFDO0lBQzNCLFFBQVEsR0FBWSxLQUFLLENBQUM7SUFFMUIsWUFDUyxLQUE0QixFQUMzQixXQUFnQyxFQUNoQyxXQUF3QjtRQUZ6QixVQUFLLEdBQUwsS0FBSyxDQUF1QjtRQUMzQixnQkFBVyxHQUFYLFdBQVcsQ0FBcUI7UUFDaEMsZ0JBQVcsR0FBWCxXQUFXLENBQWE7SUFDOUIsQ0FBQztJQUVMLFFBQVE7UUFDTix5Q0FBeUM7UUFDekMsSUFBSSxJQUFJLENBQUMs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QW9CLENBQzFCLENBQUM7WUFDRixJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FDdkIsSUFBSSxDQUFDLG9CQUFvQixFQUN6QixLQUFLLENBQUMsSUFBSSxFQUNWLEtBQUssQ0FBQyxJQUFJLENBQ1gsQ0FBQztRQUNKLENBQUM7YUFBTSxDQUFDO1lBQ04sc0JBQXNCO1lBQ3RCLE9BQU8sQ0FBQyxHQUFHLENBQUMsdUJBQXVCLENBQUMsQ0FBQztZQUNyQyxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNqRCxDQUFDO1FBRUQsSUFBSSxDQUFDLGtCQUFrQixHQUFHLEtBQUssQ0FBQztRQUNoQyxJQUFJLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFDO0lBQ25DLENBQUM7SUFJRCxpQkFBaUI7UUFDZix1REFBdUQ7UUFDdkQsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7SUFDM0IsQ0FBQztJQUVELG1CQUFtQjtRQUNqQixJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDO0lBQ2xDLENBQUM7d0dBcmJVLHlCQUF5Qjs0RkFBekIseUJBQXlCLCtNQ25CdEMsZ3dDQTRCQTs7NEZEVGEseUJBQXlCO2tCQUxyQyxTQUFTOytCQUNFLHVCQUF1QjtzSkFLVCxTQUFTO3NCQUFoQyxTQUFTO3VCQUFDLFdBQVc7Z0JBQ2IsWUFBWTtzQkFBcEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgSW5wdXQsXG4gIHNpZ25hbCxcbiAgVmlld0NoaWxkLFxuICBXcml0YWJsZVNpZ25hbCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUYWcsIFdvcmtmbG93IH0gZnJvbSAndmVyYmVuLXdvcmtmbG93LXVpL3NyYy9saWIvbW9kZWxzJztcbmltcG9ydCB7IFV0aWxTZXJ2aWNlIH0gZnJvbSAndmVyYmVuLXdvcmtmbG93LXVpL3NyYy9saWIvc2VydmljZXMnO1xuaW1wb3J0IHsgRGVzaWduZXJDYW52YXNDb21wb25lbnQgfSBmcm9tICcuL2Rlc2lnbmVyLWNhbnZhcy9kZXNpZ25lci1jYW52YXMuY29tcG9uZW50JztcbmltcG9ydCB7IFdvcmtmbG93RGF0YVNlcnZpY2UgfSBmcm9tICcuL3dvcmtmbG93LWRhdGEuc2VydmljZSc7XG5pbXBvcnQgeyBXb3JrZmxvd0Rlc2lnbmVyU3RhdGUgfSBmcm9tICcuL3dvcmtmbG93LWRlc2lnbmVyLnN0YXRlJztcbmltcG9ydCB7IE5vZGUsIFRvb2xUeXBlIH0gZnJvbSAnLi93b3JrZmxvdy1kZXNpZ25lci50eXBlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi13b3JrZmxvdy1kZXNpZ25lcicsXG4gIHRlbXBsYXRlVXJsOiAnLi93b3JrZmxvdy1kZXNpZ25lci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi93b3JrZmxvdy1kZXNpZ25lci5jb21wb25lbnQuY3NzJyxcbn0pXG5leHBvcnQgY2xhc3MgV29ya2Zsb3dEZXNpZ25lckNvbXBvbmVudCB7XG4gIEBWaWV3Q2hpbGQoJ2NhbnZhc1JlZicpIGNhbnZhc1JlZiE6IERlc2lnbmVyQ2FudmFzQ29tcG9uZW50O1xuICBASW5wdXQoKSB3b3JrZmxvd0NvZGU6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuXG4gIC8vIEN1cnJlbnRseSBzZWxlY3RlZCB0b29sXG4gIHNlbGVjdGVkVG9vbDogVG9vbFR5cGUgPSBudWxsO1xuICBzaG93U3dpbWxhbmVEaWFsb2c6IGJvb2xlYW4gPSBmYWxzZTtcbiAgc2hvd0FjdG9yVGFnc0RpYWxvZzogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIGVkaXRpbmdTd2ltbGFuZUluZGV4OiBudW1iZXIgfCBudWxsID0gbnVsbDtcbiAgZWRpdGluZ1N3aW1sYW5lOiBXcml0YWJsZVNpZ25hbDx7IG5hbWU6IHN0cmluZzsgdGFnczogVGFnW10gfSB8IG51bGw+ID1cbiAgICBzaWduYWwobnVsbCk7XG5cbiAgaXNMb2FkaW5nOiBib29sZWFuID0gZmFsc2U7XG4gIGlzU2F2aW5nOiBib29sZWFuID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHN0YXRlOiBXb3JrZmxvd0Rlc2lnbmVyU3RhdGUsXG4gICAgcHJpdmF0ZSBkYXRhU2VydmljZTogV29ya2Zsb3dEYXRhU2VydmljZSxcbiAgICBwcml2YXRlIHV0aWxTZXJ2aWNlOiBVdGlsU2VydmljZVxuICApIHsgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIC8vIExvYWQgd29ya2Zsb3cgZGF0YSBpZiBjb2RlIGlzIHByb3ZpZGVkXG4gICAgaWYgKHRoaXMud29ya2Zsb3dDb2RlKSB7XG4gICAgICB0aGlzLmxvYWRXb3JrZmxvdyh0aGlzLndvcmtmbG93Q29kZSk7XG4gICAgfVxuICB9XG5cbiAgc2F2ZVdvcmtmbG93KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmlzU2F2aW5nKSByZXR1cm47XG5cbiAgICB0aGlzLmlzU2F2aW5nID0gdHJ1ZTtcblxuICAgIC8vIFRyYW5zZm9ybSB0aGUgVUkgbW9kZWwgdG8gdGhlIEFQSSBtb2RlbFxuICAgIGNvbnN0IHdvcmtmbG93TW9kZWwgPSB0aGlzLnN0YXRlLnRyYW5zZm9ybVRvV29ya2Zsb3dNb2RlbCgpO1xuXG4gICAgaWYgKHdvcmtmbG93TW9kZWwpIHtcbiAgICAgIC8vIFNhdmUgdG8gdGhlIGJhY2tlbmRcbiAgICAgIHRoaXMuZGF0YVNlcnZpY2VcbiAgICAgICAgLnNhdmVXb3JrZmxvd3MoW3dvcmtmbG93TW9kZWxdKVxuICAgICAgICAudGhlbigocmVzcG9uc2UpID0+IHtcbiAgICAgICAgICBjb25zb2xlLmxvZygnV29ya2Zsb3cgc2F2ZWQgc3VjY2Vzc2Z1bGx5OicsIHJlc3BvbnNlKTtcbiAgICAgICAgICB0aGlzLnV0aWxTZXJ2aWNlLnNob3dTdWNjZXNzKCdXb3JrZmxvdyBzYXZlZCBzdWNjZXNzZnVsbHknKTtcbiAgICAgICAgICAvLyBJZiB0aGUgQVBJIHJldHVybnMgYW4gdXBkYXRlZCB3b3JrZmxvdywgd2UgbWlnaHQgd2FudCB0byByZWxvYWQgaXRcbiAgICAgICAgICBjb25zdCB1cGRhdGVkV29ya2Zsb3cgPSByZXNwb25zZVswXTtcbiAgICAgICAgICBpZiAodXBkYXRlZFdvcmtmbG93KSB7XG4gICAgICAgICAgICB0aGlzLnN0YXRlLnNldFdvcmtmbG93SWQodXBkYXRlZFdvcmtmbG93LkNvZGUpO1xuICAgICAgICAgICAgdGhpcy5wYXJzZVdvcmtmbG93RGF0YSh1cGRhdGVkV29ya2Zsb3cpO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLmlzU2F2aW5nID0gZmFsc2U7XG4gICAgICAgIH0pXG4gICAgICAgIC5jYXRjaCgoZXJyb3IpID0+IHtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBzYXZpbmcgd29ya2Zsb3c6JywgZXJyb3IpO1xuICAgICAgICAgIHRoaXMuaXNTYXZpbmcgPSBmYWxzZTtcbiAgICAgICAgICAvLyBIYW5kbGUgZXJyb3IgLSBzaG93IGEgbm90aWZpY2F0aW9uLCBldGMuXG4gICAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIGxvYWRXb3JrZmxvdyhjb2RlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XG4gICAgdGhpcy5kYXRhU2VydmljZVxuICAgICAgLmdldFdvcmtmbG93V2l0aFBhcmFtKGNvZGUpXG4gICAgICAudGhlbigocmVzcG9uc2UpID0+IHtcbiAgICAgICAgaWYgKHJlc3BvbnNlICYmIHJlc3BvbnNlLlJlc3VsdCkge1xuICAgICAgICAgIC8vIFN0b3JlIHRoZSB3b3JrZmxvdyBJRFxuICAgICAgICAgIGNvbnN0IHdmID0gcmVzcG9uc2UuUmVzdWx0WzBdO1xuICAgICAgICAgIHRoaXMuc3RhdGUuc2V0V29ya2Zsb3dJZCh3Zi5Db2RlKTtcbiAgICAgICAgICB0aGlzLnBhcnNlV29ya2Zsb3dEYXRhKHdmKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xuICAgICAgfSlcbiAgICAgIC5jYXRjaCgoZXJyb3IpID0+IHtcbiAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgbG9hZGluZyB3b3JrZmxvdzonLCBlcnJvcik7XG4gICAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XG4gICAgICB9KTtcbiAgfVxuXG4gIC8vIE1ldGhvZCB0byBwYXJzZSB3b3JrZmxvdyBkYXRhIGZyb20gQVBJIGFuZCBwb3B1bGF0ZSB0aGUgZGVzaWduZXJcbiAgcGFyc2VXb3JrZmxvd0RhdGEod29ya2Zsb3c6IFdvcmtmbG93KTogdm9pZCB7XG4gICAgLy8gU3RvcmUgdGhlIGNvbXBsZXRlIHdvcmtmbG93XG4gICAgdGhpcy5zdGF0ZS53b3JrZmxvdyA9IHdvcmtmbG93O1xuXG4gICAgLy8gQ2xlYXIgZXhpc3Rpbmcgc3RhdGVcbiAgICB0aGlzLnN0YXRlLnN3aW1sYW5lcyA9IFtdO1xuICAgIHRoaXMuc3RhdGUuY29ubmVjdGlvbnMgPSBbXTtcbiAgICB0aGlzLnN0YXRlLnN3aW1sYW5lUmVjb3JkID0ge307XG4gICAgdGhpcy5zdGF0ZS5zdGFnZVJlY29yZCA9IHt9O1xuICAgIHRoaXMuc3RhdGUuYWN0aW9uUmVjb3JkID0ge307XG5cbiAgICAvLyBTZXQgd29ya2Zsb3cgZm9ybSBpZiBleGlzdHNcbiAgICBpZiAod29ya2Zsb3cuRm9ybSkge1xuICAgICAgdGhpcy5zdGF0ZS5zZXRXb3JrZmxvd0Zvcm0oXG4gICAgICAgIHdvcmtmbG93LkZvcm0sXG4gICAgICAgIHdvcmtmbG93LkZvcm1OYW1lIHx8ICdXb3JrZmxvdyBGb3JtJ1xuICAgICAgKTtcbiAgICB9XG5cbiAgICAvLyBTdG9yZSB0aGUgd29ya2Zsb3cgSURcbiAgICB0aGlzLnN0YXRlLnNldFdvcmtmbG93SWQod29ya2Zsb3cuQ29kZSk7XG5cbiAgICAvLyBQcm9jZXNzIHN3aW1sYW5lcyBmaXJzdFxuICAgIGlmICh3b3JrZmxvdy5MYW5lcyAmJiB3b3JrZmxvdy5MYW5lcy5sZW5ndGgpIHtcbiAgICAgIHdvcmtmbG93LkxhbmVzLnNvcnQoKGEsIGIpID0+IGEuUG9zaXRpb24gLSBiLlBvc2l0aW9uKS5mb3JFYWNoKChsYW5lKSA9PiB7XG4gICAgICAgIC8vIFN0b3JlIG9yaWdpbmFsIGxhbmUgaW4gcmVjb3JkXG4gICAgICAgIHRoaXMuc3RhdGUuc3dpbWxhbmVSZWNvcmRbbGFuZS5Db2RlXSA9IGxhbmU7XG5cbiAgICAgICAgLy8gQWRkIHN3aW1sYW5lIHRvIFVJIG1vZGVsIHdpdGggdGhlIG9yaWdpbmFsIElEXG4gICAgICAgIGNvbnN0IHN3aW1sYW5lID0ge1xuICAgICAgICAgIG9yZGVyOiBsYW5lLlBvc2l0aW9uLFxuICAgICAgICAgIGxhYmVsOiBsYW5lLk5hbWUgfHwgYExhbmUgJHtsYW5lLlBvc2l0aW9ufWAsXG4gICAgICAgICAgdGFnczogbGFuZS5UYWdzIHx8IFtdLFxuICAgICAgICAgIG5vZGVzOiBbXSxcbiAgICAgICAgICBpZDogbGFuZS5Db2RlLCAvLyBTdG9yZSB0aGUgb3JpZ2luYWwgSURcbiAgICAgICAgfTtcblxuICAgICAgICB0aGlzLnN0YXRlLnN3aW1sYW5lcy5wdXNoKHN3aW1sYW5lKTtcblxuICAgICAgICAvLyBSZWdpc3RlciBsb2FkZWQgb2JqZWN0XG4gICAgICAgIHRoaXMuc3RhdGUucmVnaXN0ZXJMb2FkZWRPYmplY3QobGFuZS5JZCwgbGFuZS5Db2RlKTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIC8vIFByb2Nlc3Mgc3RhZ2VzXG4gICAgaWYgKHdvcmtmbG93LlN0YWdlcyAmJiB3b3JrZmxvdy5TdGFnZXMubGVuZ3RoKSB7XG4gICAgICB3b3JrZmxvdy5TdGFnZXMuZm9yRWFjaCgoc3RhZ2UpID0+IHtcbiAgICAgICAgLy8gU3RvcmUgb3JpZ2luYWwgc3RhZ2UgaW4gcmVjb3JkXG4gICAgICAgIHRoaXMuc3RhdGUuc3RhZ2VSZWNvcmRbc3RhZ2UuQ29kZV0gPSBzdGFnZTtcblxuICAgICAgICAvLyBGaW5kIHN3aW1sYW5lIGluZGV4IGJ5IFN3aW1MYW5lIElEXG4gICAgICAgIGNvbnN0IHN3aW1sYW5lSW5kZXggPSB0aGlzLnN0YXRlLnN3aW1sYW5lcy5maW5kSW5kZXgoXG4gICAgICAgICAgKGxhbmUpID0+IGxhbmUuaWQgPT09IHN0YWdlLlN3aW1MYW5lXG4gICAgICAgICk7XG5cbiAgICAgICAgaWYgKHN3aW1sYW5lSW5kZXggIT09IC0xKSB7XG4gICAgICAgICAgY29uc3QgeCA9IHN0YWdlLkNvb3JkaW5hdGVzPy5YIHx8IDEwMDtcbiAgICAgICAgICBjb25zdCB5ID0gc3RhZ2UuQ29vcmRpbmF0ZXM/LlkgfHwgNTA7XG5cbiAgICAgICAgICAvLyBDcmVhdGUgbm9kZSB3aXRoIG9yaWdpbmFsIElEXG4gICAgICAgICAgY29uc3Qgbm9kZTogTm9kZSA9IHtcbiAgICAgICAgICAgIGlkOiBzdGFnZS5Db2RlLCAvLyBVc2Ugb3JpZ2luYWwgSURcbiAgICAgICAgICAgIHR5cGU6IHN0YWdlLlN1YldvcmtGbG93ID8gJ3N1YmZsb3cnIDogKCdzdGFnZScgYXMgY29uc3QpLFxuICAgICAgICAgICAgeDogeCxcbiAgICAgICAgICAgIHk6IHksXG4gICAgICAgICAgICB3aWR0aDogMTY5LFxuICAgICAgICAgICAgaGVpZ2h0OiAxMDAsXG4gICAgICAgICAgICBpc1N0YXJ0Tm9kZTogc3RhZ2UuSXNFbnRyeVBvaW50LFxuICAgICAgICAgICAgc3RhZ2VEYXRhOiB7XG4gICAgICAgICAgICAgIE5hbWU6IHN0YWdlLk5hbWUsXG4gICAgICAgICAgICAgIERlc2NyaXB0aW9uOiBzdGFnZS5EZXNjcmlwdGlvbixcbiAgICAgICAgICAgICAgRHVyYXRpb246IHN0YWdlLkR1cmF0aW9uLFxuICAgICAgICAgICAgICBQYXNzT25SdWxlOiBzdGFnZS5QYXNzT25SdWxlLFxuICAgICAgICAgICAgICBBY3RvclJ1bGU6IHN0YWdlLkFjdG9yUnVsZSxcbiAgICAgICAgICAgICAgTWluTm9PZkFjdG9yOiBzdGFnZS5NaW5Ob09mQWN0b3IsXG4gICAgICAgICAgICAgIFRhZ3M6IHN0YWdlLlRhZ3MgfHwgW10sXG4gICAgICAgICAgICAgIElzUGFyYWxsZWw6IHN0YWdlLklzUGFyYWxsZWwsXG4gICAgICAgICAgICAgIElzRW50cnlQb2ludDogc3RhZ2UuSXNFbnRyeVBvaW50LFxuICAgICAgICAgICAgICBJc0V4aXRQb2ludDogc3RhZ2UuSXNFeGl0UG9pbnQsXG4gICAgICAgICAgICAgIElzU3ViUHJvY2Vzczogc3RhZ2UuU3ViV29ya0Zsb3cgPyB0cnVlIDogZmFsc2UsXG4gICAgICAgICAgICAgIEFzc2lnbm1lbnRUeXBlOiBzdGFnZS5Bc3NpZ25tZW50VHlwZSxcbiAgICAgICAgICAgICAgSWQ6IHN0YWdlLklkLCAvLyBLZWVwIG9yaWdpbmFsIElEXG4gICAgICAgICAgICAgIENvZGU6IHN0YWdlLkNvZGUsXG4gICAgICAgICAgICAgIEZvcm06IHN0YWdlLkZvcm0sXG4gICAgICAgICAgICAgIGZvcm1JZDogc3RhZ2UuRm9ybSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBjb25uZWN0aW9uUG9pbnRzOiBbXSwgLy8gSW5pdGlhbGl6ZSB3aXRoIGVtcHR5IGFycmF5XG4gICAgICAgICAgfTtcblxuICAgICAgICAgIC8vIEdlbmVyYXRlIGNvbm5lY3Rpb24gcG9pbnRzXG4gICAgICAgICAgbm9kZS5jb25uZWN0aW9uUG9pbnRzID0gdGhpcy5zdGF0ZS5nZW5lcmF0ZUNvbm5lY3Rpb25Qb2ludHMobm9kZSk7XG5cbiAgICAgICAgICAvLyBBZGQgbm9kZSB0byBzd2ltbGFuZVxuICAgICAgICAgIHRoaXMuc3RhdGUuc3dpbWxhbmVzW3N3aW1sYW5lSW5kZXhdLm5vZGVzID1cbiAgICAgICAgICAgIHRoaXMuc3RhdGUuc3dpbWxhbmVzW3N3aW1sYW5lSW5kZXhdLm5vZGVzIHx8IFtdO1xuICAgICAgICAgIHRoaXMuc3RhdGUuc3dpbWxhbmVzW3N3aW1sYW5lSW5kZXhdLm5vZGVzLnB1c2gobm9kZSk7XG5cbiAgICAgICAgICAvLyBJZiB0aGlzIGlzIGEgc3RhcnQgbm9kZSwgdXBkYXRlIHN0YXRlXG4gICAgICAgICAgaWYgKHN0YWdlLklzRW50cnlQb2ludCkge1xuICAgICAgICAgICAgdGhpcy5zdGF0ZS5zdGFydE5vZGVJZCA9IHN0YWdlLkNvZGU7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLy8gUmVnaXN0ZXIgbG9hZGVkIHN0YWdlXG4gICAgICAgICAgdGhpcy5zdGF0ZS5yZWdpc3RlckxvYWRlZE9iamVjdChzdGFnZS5JZCwgc3RhZ2UuQ29kZSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cblxuICAgIC8vIFByb2Nlc3MgY29ubmVjdGlvbnMvYWN0aW9uc1xuICAgIGlmICh3b3JrZmxvdy5BY3Rpb25zICYmIHdvcmtmbG93LkFjdGlvbnMubGVuZ3RoKSB7XG4gICAgICB3b3JrZmxvdy5BY3Rpb25zLmZvckVhY2goKGFjdGlvbikgPT4ge1xuICAgICAgICAvLyBTdG9yZSBvcmlnaW5hbCBhY3Rpb24gaW4gcmVjb3JkXG4gICAgICAgIHRoaXMuc3RhdGUuYWN0aW9uUmVjb3JkW2FjdGlvbi5Db2RlXSA9IGFjdGlvbjtcblxuICAgICAgICAvLyBGaW5kIHNvdXJjZSBhbmQgdGFyZ2V0IG5vZGVzXG4gICAgICAgIGNvbnN0IHNvdXJjZU5vZGVJbmZvID0gdGhpcy5zdGF0ZS5maW5kTm9kZUJ5SWQoYWN0aW9uLkZyb21TdGFnZSk7XG4gICAgICAgIGNvbnN0IHRhcmdldE5vZGVJbmZvID0gdGhpcy5zdGF0ZS5maW5kTm9kZUJ5SWQoYWN0aW9uLlRvU3RhZ2UpO1xuXG4gICAgICAgIGNvbnNvbGUubG9nKHNvdXJjZU5vZGVJbmZvLCB0YXJnZXROb2RlSW5mbyk7XG5cbiAgICAgICAgaWYgKHNvdXJjZU5vZGVJbmZvICYmIHRhcmdldE5vZGVJbmZvKSB7XG4gICAgICAgICAgLy8gRmluZCBzdWl0YWJsZSBjb25uZWN0aW9uIHBvaW50c1xuICAgICAgICAgIC8vIGNvbnN0IHNvdXJjZU5vZGUgPSBzb3VyY2VOb2RlSW5mby5ub2RlO1xuICAgICAgICAgIC8vIGNvbnN0IHRhcmdldE5vZGUgPSB0YXJnZXROb2RlSW5mby5ub2RlO1xuXG4gICAgICAgICAgLy8gY29uc3Qgc291cmNlUG9pbnQgPSBzb3VyY2VOb2RlLmNvbm5lY3Rpb25Qb2ludHM/LmZpbmQoXG4gICAgICAgICAgLy8gICAocCkgPT4gcC50eXBlID09PSAncmlnaHQnIHx8IHAudHlwZSA9PT0gJ2JvdHRvbSdcbiAgICAgICAgICAvLyApO1xuXG4gICAgICAgICAgLy8gY29uc3QgdGFyZ2V0UG9pbnQgPSB0YXJnZXROb2RlLmNvbm5lY3Rpb25Qb2ludHM/LmZpbmQoXG4gICAgICAgICAgLy8gICAocCkgPT4gcC50eXBlID09PSAnbGVmdCcgfHwgcC50eXBlID09PSAndG9wJ1xuICAgICAgICAgIC8vICk7XG5cbiAgICAgICAgICBjb25zdCBzb3VyY2VOb2RlID0gc291cmNlTm9kZUluZm8ubm9kZTtcbiAgICAgICAgICBjb25zdCB0YXJnZXROb2RlID0gdGFyZ2V0Tm9kZUluZm8ubm9kZTtcblxuICAgICAgICAgIGxldCBzb3VyY2VQb2ludElkLCB0YXJnZXRQb2ludElkO1xuXG4gICAgICAgICAgY29uc29sZS5sb2coYWN0aW9uLlNvdXJjZVBvaW50VHlwZSwgYWN0aW9uLlRhcmdldFBvaW50VHlwZSk7XG5cbiAgICAgICAgICBpZiAoYWN0aW9uLlNvdXJjZVBvaW50VHlwZSkge1xuICAgICAgICAgICAgLy8gRmluZCBhIHBvaW50IHdpdGggbWF0Y2hpbmcgdHlwZVxuICAgICAgICAgICAgY29uc3Qgc291cmNlUG9pbnQgPSBzb3VyY2VOb2RlLmNvbm5lY3Rpb25Qb2ludHM/LmZpbmQoXG4gICAgICAgICAgICAgIChwKSA9PiBwLnR5cGUgPT09IGFjdGlvbi5Tb3VyY2VQb2ludFR5cGU/LnRvTG93ZXJDYXNlKClcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBzb3VyY2VQb2ludElkID0gc291cmNlUG9pbnQ/LmlkO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBGYWxsYmFjayB0byBmaW5kaW5nIGEgc3VpdGFibGUgcG9pbnRcbiAgICAgICAgICAgIGNvbnN0IHNvdXJjZVBvaW50ID0gc291cmNlTm9kZS5jb25uZWN0aW9uUG9pbnRzPy5maW5kKFxuICAgICAgICAgICAgICAocCkgPT4gcC50eXBlID09PSAncmlnaHQnIHx8IHAudHlwZSA9PT0gJ2JvdHRvbSdcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBzb3VyY2VQb2ludElkID0gc291cmNlUG9pbnQ/LmlkO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChhY3Rpb24uVGFyZ2V0UG9pbnRUeXBlKSB7XG4gICAgICAgICAgICAvLyBGaW5kIGEgcG9pbnQgd2l0aCBtYXRjaGluZyB0eXBlXG4gICAgICAgICAgICBjb25zdCB0YXJnZXRQb2ludCA9IHRhcmdldE5vZGUuY29ubmVjdGlvblBvaW50cz8uZmluZChcbiAgICAgICAgICAgICAgKHApID0+IHAudHlwZSA9PT0gYWN0aW9uLlRhcmdldFBvaW50VHlwZT8udG9Mb3dlckNhc2UoKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHRhcmdldFBvaW50SWQgPSB0YXJnZXRQb2ludD8uaWQ7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIEZhbGxiYWNrIHRvIGZpbmRpbmcgYSBzdWl0YWJsZSBwb2ludFxuICAgICAgICAgICAgY29uc3QgdGFyZ2V0UG9pbnQgPSB0YXJnZXROb2RlLmNvbm5lY3Rpb25Qb2ludHM/LmZpbmQoXG4gICAgICAgICAgICAgIChwKSA9PiBwLnR5cGUgPT09ICdsZWZ0JyB8fCBwLnR5cGUgPT09ICd0b3AnXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgdGFyZ2V0UG9pbnRJZCA9IHRhcmdldFBvaW50Py5pZDtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb25zb2xlLmxvZygnU291cmNlIHBvaW50OicsIHNvdXJjZVBvaW50SWQpO1xuICAgICAgICAgIGNvbnNvbGUubG9nKCdUYXJnZXQgcG9pbnQ6JywgdGFyZ2V0UG9pbnRJZCk7XG5cbiAgICAgICAgICBpZiAoc291cmNlUG9pbnRJZCAmJiB0YXJnZXRQb2ludElkKSB7XG4gICAgICAgICAgICBjb25zdCBjb25uZWN0aW9uID0ge1xuICAgICAgICAgICAgICBpZDogYWN0aW9uLkNvZGUsIC8vIFVzZSBvcmlnaW5hbCBJRFxuICAgICAgICAgICAgICBzb3VyY2VOb2RlSWQ6IGFjdGlvbi5Gcm9tU3RhZ2UsXG4gICAgICAgICAgICAgIHRhcmdldE5vZGVJZDogYWN0aW9uLlRvU3RhZ2UsXG4gICAgICAgICAgICAgIHNvdXJjZVBvaW50SWQ6IHNvdXJjZVBvaW50SWQsXG4gICAgICAgICAgICAgIHRhcmdldFBvaW50SWQ6IHRhcmdldFBvaW50SWQsXG4gICAgICAgICAgICAgIHNvdXJjZVN3aW1sYW5lSW5kZXg6IHNvdXJjZU5vZGVJbmZvLnN3aW1sYW5lSW5kZXgsXG4gICAgICAgICAgICAgIHRhcmdldFN3aW1sYW5lSW5kZXg6IHRhcmdldE5vZGVJbmZvLnN3aW1sYW5lSW5kZXgsXG4gICAgICAgICAgICAgIGNvbmRpdGlvbjogYWN0aW9uLlBhc3NPblJ1bGUgfHwgJycsXG4gICAgICAgICAgICAgIGxhYmVsOiBhY3Rpb24uTmFtZSB8fCAnJyxcbiAgICAgICAgICAgICAgYWN0aW9uOiBhY3Rpb24uT3BlcmF0aW9uQWN0aW9uIHx8IG51bGwsXG4gICAgICAgICAgICAgIHRhcmdldFN0YXR1czogYWN0aW9uLlRhcmdldFN0YXR1cyB8fCB1bmRlZmluZWQsXG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICB0aGlzLnN0YXRlLmNvbm5lY3Rpb25zLnB1c2goY29ubmVjdGlvbik7XG5cbiAgICAgICAgICAgIC8vIFJlZ2lzdGVyIGxvYWRlZCBhY3Rpb25cbiAgICAgICAgICAgIHRoaXMuc3RhdGUucmVnaXN0ZXJMb2FkZWRPYmplY3QoYWN0aW9uLklkLCBhY3Rpb24uQ29kZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICAvLyBIZWxwZXIgbWV0aG9kIHRvIGZpbmQgc3dpbWxhbmUgaW5kZXggYnkgTGFuZSBJRFxuICBmaW5kU3dpbWxhbmVJbmRleEJ5TGFuZUlkKGxhbmVJZDogc3RyaW5nKTogbnVtYmVyIHtcbiAgICAvLyBGaXJzdCBjaGVjayBvdXIgbWFwcGluZ1xuICAgIGlmICh0aGlzLnN0YXRlLmxhbmVJZFRvSW5kZXhNYXAuaGFzKGxhbmVJZCkpIHtcbiAgICAgIHJldHVybiB0aGlzLnN0YXRlLmxhbmVJZFRvSW5kZXhNYXAuZ2V0KGxhbmVJZCkhO1xuICAgIH1cblxuICAgIC8vIEZhbGxiYWNrIHRvIHRoZSBvcmlnaW5hbCBsb2dpYyAoZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkpXG4gICAgY29uc3QgcGFydHMgPSBsYW5lSWQuc3BsaXQoJy0nKTtcbiAgICBpZiAocGFydHMubGVuZ3RoID4gMSkge1xuICAgICAgY29uc3QgaW5kZXggPSBwYXJzZUludChwYXJ0c1sxXSk7XG4gICAgICBpZiAoIWlzTmFOKGluZGV4KSAmJiBpbmRleCA8IHRoaXMuc3RhdGUuc3dpbWxhbmVzLmxlbmd0aCkge1xuICAgICAgICByZXR1cm4gaW5kZXg7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIC0xO1xuICB9XG5cbiAgLy8gSGFuZGxlIHRvb2wgc2VsZWN0aW9uIGZyb20gdG9vbGJhclxuICBvblRvb2xTZWxlY3RlZCh0b29sOiBUb29sVHlwZSk6IHZvaWQge1xuICAgIC8vIFRvZ2dsZSBzZWxlY3Rpb24gaWYgdGhlIHNhbWUgdG9vbCBpcyBjbGlja2VkIGFnYWluXG4gICAgdGhpcy5zZWxlY3RlZFRvb2wgPSB0aGlzLnNlbGVjdGVkVG9vbCA9PT0gdG9vbCA/IG51bGwgOiB0b29sO1xuICAgIGNvbnNvbGUubG9nKCdTZWxlY3RlZCB0b29sOicsIHRoaXMuc2VsZWN0ZWRUb29sKTtcbiAgfVxuXG4gIG9wZW5Td2ltbGFuZURpYWxvZygpIHtcbiAgICBjb25zb2xlLmxvZygnU01MIElOREVYJywgdGhpcy5lZGl0aW5nU3dpbWxhbmVJbmRleCk7XG4gICAgaWYgKHRoaXMuZWRpdGluZ1N3aW1sYW5lSW5kZXggIT09IG51bGwpIHtcbiAgICAgIGNvbnNvbGUubG9nKCdTTUwnLCB0aGlzLnN0YXRlLnN3aW1sYW5lc1t0aGlzLmVkaXRpbmdTd2ltbGFuZUluZGV4XSk7XG4gICAgICB0aGlzLmVkaXRpbmdTd2ltbGFuZS5zZXQoe1xuICAgICAgICBuYW1lOiB0aGlzLnN0YXRlLnN3aW1sYW5lc1t0aGlzLmVkaXRpbmdTd2ltbGFuZUluZGV4XS5sYWJlbCxcbiAgICAgICAgdGFnczogdGhpcy5zdGF0ZS5zd2ltbGFuZXNbdGhpcy5lZGl0aW5nU3dpbWxhbmVJbmRleF0udGFncyxcbiAgICAgIH0pO1xuICAgICAgY29uc29sZS5sb2coJ1NNTF9FRFQnLCB0aGlzLmVkaXRpbmdTd2ltbGFuZSgpKTtcbiAgICB9XG4gICAgdGhpcy5zaG93U3dpbWxhbmVEaWFsb2cgPSB0cnVlO1xuICB9XG5cblxuXG4gIGhhbmRsZUNhbnZhc1Bvc2l0aW9uQ2xpY2soZXZlbnQ6IHsgeDogbnVtYmVyOyB5OiBudW1iZXIgfSkge1xuICAgIGNvbnNvbGUubG9nKGV2ZW50KTtcblxuICAgIC8vIENoZWNrIGlmIHRoaXMgaXMgYW4gZWRpdCBzd2ltbGFuZSBldmVudFxuICAgIGlmIChcbiAgICAgIGV2ZW50LnggPT09IC0xICYmXG4gICAgICBldmVudC55ID49IDAgJiZcbiAgICAgIGV2ZW50LnkgPCB0aGlzLnN0YXRlLnN3aW1sYW5lcy5sZW5ndGhcbiAgICApIHtcbiAgICAgIGNvbnNvbGUubG9nKCdFZGl0aW5nIHN3aW1sYW5lJywgZXZlbnQueSk7XG4gICAgICB0aGlzLmVkaXRpbmdTd2ltbGFuZUluZGV4ID0gZXZlbnQueTtcbiAgICAgIHRoaXMub3BlblN3aW1sYW5lRGlhbG9nKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gTm9ybWFsIGNhbnZhcyBjbGljayBoYW5kbGluZ1xuICAgIGNvbnN0IHN3aW1sYW5lSW5kZXggPSBNYXRoLmZsb29yKGV2ZW50LnkgLyAyNjMpO1xuXG4gICAgc3dpdGNoICh0aGlzLnNlbGVjdGVkVG9vbCkge1xuICAgICAgY2FzZSAnc3dpbWxhbmUnOlxuICAgICAgICBjb25zb2xlLmxvZygnT3BlbmluZyBzd2ltbGFuZSBkaWFsb2cgZm9yIG5ldyBzd2ltbGFuZScpO1xuICAgICAgICB0aGlzLmVkaXRpbmdTd2ltbGFuZUluZGV4ID0gbnVsbDsgLy8gU2V0IHRvIG51bGwgdG8gaW5kaWNhdGUgY3JlYXRpbmcgYSBuZXcgc3dpbWxhbmVcbiAgICAgICAgdGhpcy5vcGVuU3dpbWxhbmVEaWFsb2coKTtcbiAgICAgICAgdGhpcy5zZWxlY3RlZFRvb2wgPSBudWxsO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3N0YWdlJzpcbiAgICAgICAgaWYgKHN3aW1sYW5lSW5kZXggPj0gMCAmJiBzd2ltbGFuZUluZGV4IDwgdGhpcy5zdGF0ZS5zd2ltbGFuZXMubGVuZ3RoKSB7XG4gICAgICAgICAgY29uc29sZS5sb2coXG4gICAgICAgICAgICBgQWRkaW5nICR7dGhpcy5zZWxlY3RlZFRvb2x9IHRvIHN3aW1sYW5lICR7c3dpbWxhbmVJbmRleH1gXG4gICAgICAgICAgKTtcblxuICAgICAgICAgIC8vIENyZWF0ZSB0aGUgc3RhZ2UgZGlyZWN0bHkgd2l0aCBkZWZhdWx0IHByb3BlcnRpZXNcbiAgICAgICAgICBjb25zdCBub2RlID0gdGhpcy5zdGF0ZS5hZGROb2RlKFxuICAgICAgICAgICAgc3dpbWxhbmVJbmRleCxcbiAgICAgICAgICAgICdzdGFnZScsXG4gICAgICAgICAgICBldmVudC54LFxuICAgICAgICAgICAgZXZlbnQueSxcbiAgICAgICAgICAgIHsgTmFtZTogJ05ldyBTdGFnZScgfSAvLyBBZGQgZGVmYXVsdCBwcm9wZXJ0aWVzXG4gICAgICAgICAgKTtcblxuICAgICAgICAgIGlmIChub2RlKSB7XG4gICAgICAgICAgICAvLyBSZXNldCB0aGUgc2VsZWN0ZWQgdG9vbCBhZnRlciBwbGFjaW5nIGEgbm9kZVxuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFRvb2wgPSBudWxsO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2RlY2lzaW9uJzpcbiAgICAgIGNhc2UgJ2Zvcm0nOlxuICAgICAgICBpZiAoc3dpbWxhbmVJbmRleCA+PSAwICYmIHN3aW1sYW5lSW5kZXggPCB0aGlzLnN0YXRlLnN3aW1sYW5lcy5sZW5ndGgpIHtcbiAgICAgICAgICBjb25zb2xlLmxvZyhcbiAgICAgICAgICAgIGBBZGRpbmcgJHt0aGlzLnNlbGVjdGVkVG9vbH0gdG8gc3dpbWxhbmUgJHtzd2ltbGFuZUluZGV4fWBcbiAgICAgICAgICApO1xuICAgICAgICAgIGNvbnN0IG5vZGUgPSB0aGlzLnN0YXRlLmFkZE5vZGUoXG4gICAgICAgICAgICBzd2ltbGFuZUluZGV4LFxuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFRvb2wsXG4gICAgICAgICAgICBldmVudC54LFxuICAgICAgICAgICAgZXZlbnQueVxuICAgICAgICAgICk7XG4gICAgICAgICAgaWYgKG5vZGUpIHtcbiAgICAgICAgICAgIC8vIFJlc2V0IHRoZSBzZWxlY3RlZCB0b29sIGFmdGVyIHBsYWNpbmcgYSBub2RlXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkVG9vbCA9IG51bGw7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnc3ViZmxvdyc6XG4gICAgICAgIGlmIChzd2ltbGFuZUluZGV4ID49IDAgJiYgc3dpbWxhbmVJbmRleCA8IHRoaXMuc3RhdGUuc3dpbWxhbmVzLmxlbmd0aCkge1xuICAgICAgICAgIGNvbnNvbGUubG9nKFxuICAgICAgICAgICAgYEFkZGluZyAke3RoaXMuc2VsZWN0ZWRUb29sfSB0byBzd2ltbGFuZSAke3N3aW1sYW5lSW5kZXh9YFxuICAgICAgICAgICk7XG4gICAgICAgICAgLy8gU2hvdyBzdWJmbG93IHdvcmtmbG93IHNlbGVjdGlvbiBwb3B1cFxuICAgICAgICAgIHRoaXMuY2FudmFzUmVmLnNob3dTdWJmbG93U2VsZWN0aW9uUG9wdXAoXG4gICAgICAgICAgICBldmVudC54LFxuICAgICAgICAgICAgZXZlbnQueSxcbiAgICAgICAgICAgIHN3aW1sYW5lSW5kZXhcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgb25Td2ltbGFuZURpYWxvZ0ZpbGxlZChldmVudDogeyB0YWdzOiBUYWdbXTsgbmFtZTogc3RyaW5nIH0pIHtcbiAgICBjb25zb2xlLmxvZyhcbiAgICAgICdTd2ltbGFuZSBkaWFsb2cgZmlsbGVkOicsXG4gICAgICBldmVudCxcbiAgICAgICdFZGl0aW5nIGluZGV4OicsXG4gICAgICB0aGlzLmVkaXRpbmdTd2ltbGFuZUluZGV4XG4gICAgKTtcblxuICAgIGlmICh0aGlzLmVkaXRpbmdTd2ltbGFuZUluZGV4ICE9PSBudWxsKSB7XG4gICAgICAvLyBVcGRhdGUgZXhpc3Rpbmcgc3dpbWxhbmVcbiAgICAgIGNvbnNvbGUubG9nKFxuICAgICAgICAnVXBkYXRpbmcgZXhpc3Rpbmcgc3dpbWxhbmUgYXQgaW5kZXg6JyxcbiAgICAgICAgdGhpcy5lZGl0aW5nU3dpbWxhbmVJbmRleFxuICAgICAgKTtcbiAgICAgIHRoaXMuc3RhdGUudXBkYXRlU3dpbWxhbmUoXG4gICAgICAgIHRoaXMuZWRpdGluZ1N3aW1sYW5lSW5kZXgsXG4gICAgICAgIGV2ZW50Lm5hbWUsXG4gICAgICAgIGV2ZW50LnRhZ3NcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIENyZWF0ZSBuZXcgc3dpbWxhbmVcbiAgICAgIGNvbnNvbGUubG9nKCdDcmVhdGluZyBuZXcgc3dpbWxhbmUnKTtcbiAgICAgIHRoaXMuc3RhdGUuYWRkU3dpbWxhbmUoZXZlbnQubmFtZSwgZXZlbnQudGFncyk7XG4gICAgfVxuXG4gICAgdGhpcy5zaG93U3dpbWxhbmVEaWFsb2cgPSBmYWxzZTtcbiAgICB0aGlzLmVkaXRpbmdTd2ltbGFuZUluZGV4ID0gbnVsbDtcbiAgfVxuXG5cblxuICBvblN1YmZsb3dTZWxlY3RlZCgpIHtcbiAgICAvLyBSZXNldCB0aGUgc2VsZWN0ZWQgdG9vbCBhZnRlciBwbGFjaW5nIGEgc3ViZmxvdyBub2RlXG4gICAgdGhpcy5zZWxlY3RlZFRvb2wgPSBudWxsO1xuICB9XG5cbiAgb3BlbkFjdG9yVGFnc0RpYWxvZygpIHtcbiAgICB0aGlzLnNob3dBY3RvclRhZ3NEaWFsb2cgPSB0cnVlO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwid29ya2Zsb3ctZGVzaWduZXJcIj5cbiAgPGRpdiBjbGFzcz1cIndvcmtmbG93LWhlYWRlclwiPlxuICAgIDxoMT57eyBzdGF0ZS53b3JrZmxvdz8uTmFtZSB9fTwvaDE+XG4gIDwvZGl2PlxuXG4gIDwhLS0gVG9vbGJhciBDb21wb25lbnQgLS0+XG4gIDxsaWItZGVzaWduZXItdG9vbGJhciBbc2VsZWN0ZWRUb29sXT1cInNlbGVjdGVkVG9vbFwiIFtpc1NhdmluZ109XCJpc1NhdmluZ1wiXG4gICAgW3dvcmtmbG93Q29kZV09XCJzdGF0ZS53b3JrZmxvdz8uQ29kZSB8fCBudWxsXCIgKHRvb2xTZWxlY3RlZCk9XCJvblRvb2xTZWxlY3RlZCgkZXZlbnQpXCJcbiAgICAoc2F2ZVdvcmtmbG93KT1cInNhdmVXb3JrZmxvdygpXCIgKG9wZW5BY3RvclRhZ3MpPVwib3BlbkFjdG9yVGFnc0RpYWxvZygpXCI+XG4gIDwvbGliLWRlc2lnbmVyLXRvb2xiYXI+XG5cbiAgPCEtLSBTaG93IGxvYWRpbmcgaW5kaWNhdG9yIGlmIG5lZWRlZCAtLT5cbiAgPGRpdiAqbmdJZj1cImlzTG9hZGluZ1wiIGNsYXNzPVwibG9hZGluZy1vdmVybGF5XCI+XG4gICAgPGRpdiBjbGFzcz1cImxvYWRpbmctc3Bpbm5lclwiPjwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJsb2FkaW5nLXRleHRcIj5Mb2FkaW5nIHdvcmtmbG93Li4uPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDwhLS0gQ2FudmFzIENvbXBvbmVudCAtLT5cbiAgPGxpYi1kZXNpZ25lci1jYW52YXMgW3NlbGVjdGVkVG9vbF09XCJzZWxlY3RlZFRvb2xcIiAoY2xpY2tlZFBvc2l0aW9uKT1cImhhbmRsZUNhbnZhc1Bvc2l0aW9uQ2xpY2soJGV2ZW50KVwiXG4gICAgKHN1YmZsb3dTZWxlY3RlZCk9XCJvblN1YmZsb3dTZWxlY3RlZCgpXCIgI2NhbnZhc1JlZj5cbiAgPC9saWItZGVzaWduZXItY2FudmFzPlxuXG4gIDxsaWItc3dpbWxhbmUtZGlhbG9nIFt2aXNpYmxlXT1cInNob3dTd2ltbGFuZURpYWxvZ1wiIFtzd2ltbGFuZURhdGFdPVwiZWRpdGluZ1N3aW1sYW5lKClcIlxuICAgIChjcmVhdGVkKT1cIm9uU3dpbWxhbmVEaWFsb2dGaWxsZWQoJGV2ZW50KVwiIChjbG9zZWQpPVwic2hvd1N3aW1sYW5lRGlhbG9nID0gZmFsc2VcIj48L2xpYi1zd2ltbGFuZS1kaWFsb2c+XG5cbiAgPGxpYi1hY3Rvci10YWdzLWRpYWxvZyBbdmlzaWJsZV09XCJzaG93QWN0b3JUYWdzRGlhbG9nXCIgW3dvcmtmbG93Q29kZV09XCJzdGF0ZS53b3JrZmxvdz8uQ29kZSB8fCBudWxsXCJcbiAgICAoY2xvc2VkKT1cInNob3dBY3RvclRhZ3NEaWFsb2cgPSBmYWxzZVwiPjwvbGliLWFjdG9yLXRhZ3MtZGlhbG9nPlxuPC9kaXY+XG4iXX0=
359
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2Zsb3ctZGVzaWduZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmVyYmVuLXdvcmtmbG93LXVpL3NyYy9saWIvY29tcG9uZW50cy93b3JrZmxvdy1kZXNpZ25lci93b3JrZmxvdy1kZXNpZ25lci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92ZXJiZW4td29ya2Zsb3ctdWkvc3JjL2xpYi9jb21wb25lbnRzL3dvcmtmbG93LWRlc2lnbmVyL3dvcmtmbG93LWRlc2lnbmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsS0FBSyxFQUNMLE1BQU0sRUFDTixTQUFTLEdBRVYsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7Ozs7QUFhdkIsTUFBTSxPQUFPLHlCQUF5QjtJQWlCM0I7SUFDQztJQUNBO0lBbEJjLFNBQVMsQ0FBMkI7SUFDbkQsWUFBWSxHQUFrQixJQUFJLENBQUM7SUFFNUMsMEJBQTBCO0lBQzFCLFlBQVksR0FBYSxJQUFJLENBQUM7SUFDOUIsa0JBQWtCLEdBQVksS0FBSyxDQUFDO0lBQ3BDLG1CQUFtQixHQUFZLEtBQUssQ0FBQztJQUVyQyxvQkFBb0IsR0FBa0IsSUFBSSxDQUFDO0lBQzNDLGVBQWUsR0FDYixNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFZixTQUFTLEdBQVksS0FBSyxDQUFDO0lBQzNCLFFBQVEsR0FBWSxLQUFLLENBQUM7SUFFMUIsWUFDUyxLQUE0QixFQUMzQixXQUFnQyxFQUNoQyxXQUF3QjtRQUZ6QixVQUFLLEdBQUwsS0FBSyxDQUF1QjtRQUMzQixnQkFBVyxHQUFYLFdBQVcsQ0FBcUI7UUFDaEMsZ0JBQVcsR0FBWCxXQUFXLENBQWE7SUFDOUIsQ0FBQztJQUVMLFFBQVE7UUFDTix5Q0FBeUM7UUFDekMsSUFBSSxJQUFJLENBQUMs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Y0FBYyxDQUN2QixJQUFJLENBQUMsb0JBQW9CLEVBQ3pCLEtBQUssQ0FBQyxJQUFJLEVBQ1YsS0FBSyxDQUFDLElBQUksQ0FDWCxDQUFDO1FBQ0osQ0FBQzthQUFNLENBQUM7WUFDTixzQkFBc0I7WUFDdEIsT0FBTyxDQUFDLEdBQUcsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO1lBQ3JDLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2pELENBQUM7UUFFRCxJQUFJLENBQUMsa0JBQWtCLEdBQUcsS0FBSyxDQUFDO1FBQ2hDLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUM7SUFDbkMsQ0FBQztJQUlELGlCQUFpQjtRQUNmLHVEQUF1RDtRQUN2RCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztJQUMzQixDQUFDO0lBRUQsbUJBQW1CO1FBQ2pCLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUM7SUFDbEMsQ0FBQzt3R0FyYlUseUJBQXlCOzRGQUF6Qix5QkFBeUIsK01DbkJ0Qyxnd0NBNEJBOzs0RkRUYSx5QkFBeUI7a0JBTHJDLFNBQVM7K0JBQ0UsdUJBQXVCO3NKQUtULFNBQVM7c0JBQWhDLFNBQVM7dUJBQUMsV0FBVztnQkFDYixZQUFZO3NCQUFwQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBJbnB1dCxcbiAgc2lnbmFsLFxuICBWaWV3Q2hpbGQsXG4gIFdyaXRhYmxlU2lnbmFsLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRhZywgV29ya2Zsb3cgfSBmcm9tICd2ZXJiZW4td29ya2Zsb3ctdWkvc3JjL2xpYi9tb2RlbHMnO1xuaW1wb3J0IHsgVXRpbFNlcnZpY2UgfSBmcm9tICd2ZXJiZW4td29ya2Zsb3ctdWkvc3JjL2xpYi9zZXJ2aWNlcyc7XG5pbXBvcnQgeyBEZXNpZ25lckNhbnZhc0NvbXBvbmVudCB9IGZyb20gJy4vZGVzaWduZXItY2FudmFzL2Rlc2lnbmVyLWNhbnZhcy5jb21wb25lbnQnO1xuaW1wb3J0IHsgV29ya2Zsb3dEYXRhU2VydmljZSB9IGZyb20gJy4vd29ya2Zsb3ctZGF0YS5zZXJ2aWNlJztcbmltcG9ydCB7IFdvcmtmbG93RGVzaWduZXJTdGF0ZSB9IGZyb20gJy4vd29ya2Zsb3ctZGVzaWduZXIuc3RhdGUnO1xuaW1wb3J0IHsgTm9kZSwgVG9vbFR5cGUgfSBmcm9tICcuL3dvcmtmbG93LWRlc2lnbmVyLnR5cGVzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGliLXdvcmtmbG93LWRlc2lnbmVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3dvcmtmbG93LWRlc2lnbmVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL3dvcmtmbG93LWRlc2lnbmVyLmNvbXBvbmVudC5jc3MnLFxufSlcbmV4cG9ydCBjbGFzcyBXb3JrZmxvd0Rlc2lnbmVyQ29tcG9uZW50IHtcbiAgQFZpZXdDaGlsZCgnY2FudmFzUmVmJykgY2FudmFzUmVmITogRGVzaWduZXJDYW52YXNDb21wb25lbnQ7XG4gIEBJbnB1dCgpIHdvcmtmbG93Q29kZTogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG5cbiAgLy8gQ3VycmVudGx5IHNlbGVjdGVkIHRvb2xcbiAgc2VsZWN0ZWRUb29sOiBUb29sVHlwZSA9IG51bGw7XG4gIHNob3dTd2ltbGFuZURpYWxvZzogYm9vbGVhbiA9IGZhbHNlO1xuICBzaG93QWN0b3JUYWdzRGlhbG9nOiBib29sZWFuID0gZmFsc2U7XG5cbiAgZWRpdGluZ1N3aW1sYW5lSW5kZXg6IG51bWJlciB8IG51bGwgPSBudWxsO1xuICBlZGl0aW5nU3dpbWxhbmU6IFdyaXRhYmxlU2lnbmFsPHsgbmFtZTogc3RyaW5nOyB0YWdzOiBUYWdbXSB9IHwgbnVsbD4gPVxuICAgIHNpZ25hbChudWxsKTtcblxuICBpc0xvYWRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcbiAgaXNTYXZpbmc6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgc3RhdGU6IFdvcmtmbG93RGVzaWduZXJTdGF0ZSxcbiAgICBwcml2YXRlIGRhdGFTZXJ2aWNlOiBXb3JrZmxvd0RhdGFTZXJ2aWNlLFxuICAgIHByaXZhdGUgdXRpbFNlcnZpY2U6IFV0aWxTZXJ2aWNlXG4gICkgeyB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgLy8gTG9hZCB3b3JrZmxvdyBkYXRhIGlmIGNvZGUgaXMgcHJvdmlkZWRcbiAgICBpZiAodGhpcy53b3JrZmxvd0NvZGUpIHtcbiAgICAgIHRoaXMubG9hZFdvcmtmbG93KHRoaXMud29ya2Zsb3dDb2RlKTtcbiAgICB9XG4gIH1cblxuICBzYXZlV29ya2Zsb3coKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaXNTYXZpbmcpIHJldHVybjtcblxuICAgIHRoaXMuaXNTYXZpbmcgPSB0cnVlO1xuXG4gICAgLy8gVHJhbnNmb3JtIHRoZSBVSSBtb2RlbCB0byB0aGUgQVBJIG1vZGVsXG4gICAgY29uc3Qgd29ya2Zsb3dNb2RlbCA9IHRoaXMuc3RhdGUudHJhbnNmb3JtVG9Xb3JrZmxvd01vZGVsKCk7XG5cbiAgICBpZiAod29ya2Zsb3dNb2RlbCkge1xuICAgICAgLy8gU2F2ZSB0byB0aGUgYmFja2VuZFxuICAgICAgdGhpcy5kYXRhU2VydmljZVxuICAgICAgICAuc2F2ZVdvcmtmbG93cyhbd29ya2Zsb3dNb2RlbF0pXG4gICAgICAgIC50aGVuKChyZXNwb25zZSkgPT4ge1xuICAgICAgICAgIGNvbnNvbGUubG9nKCdXb3JrZmxvdyBzYXZlZCBzdWNjZXNzZnVsbHk6JywgcmVzcG9uc2UpO1xuICAgICAgICAgIHRoaXMudXRpbFNlcnZpY2Uuc2hvd1N1Y2Nlc3MoJ1dvcmtmbG93IHNhdmVkIHN1Y2Nlc3NmdWxseScpO1xuICAgICAgICAgIC8vIElmIHRoZSBBUEkgcmV0dXJucyBhbiB1cGRhdGVkIHdvcmtmbG93LCB3ZSBtaWdodCB3YW50IHRvIHJlbG9hZCBpdFxuICAgICAgICAgIGNvbnN0IHVwZGF0ZWRXb3JrZmxvdyA9IHJlc3BvbnNlWzBdO1xuICAgICAgICAgIGlmICh1cGRhdGVkV29ya2Zsb3cpIHtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUuc2V0V29ya2Zsb3dJZCh1cGRhdGVkV29ya2Zsb3cuQ29kZSk7XG4gICAgICAgICAgICB0aGlzLnBhcnNlV29ya2Zsb3dEYXRhKHVwZGF0ZWRXb3JrZmxvdyk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMuaXNTYXZpbmcgPSBmYWxzZTtcbiAgICAgICAgfSlcbiAgICAgICAgLmNhdGNoKChlcnJvcikgPT4ge1xuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIHNhdmluZyB3b3JrZmxvdzonLCBlcnJvcik7XG4gICAgICAgICAgdGhpcy5pc1NhdmluZyA9IGZhbHNlO1xuICAgICAgICAgIC8vIEhhbmRsZSBlcnJvciAtIHNob3cgYSBub3RpZmljYXRpb24sIGV0Yy5cbiAgICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgbG9hZFdvcmtmbG93KGNvZGU6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuaXNMb2FkaW5nID0gdHJ1ZTtcbiAgICB0aGlzLmRhdGFTZXJ2aWNlXG4gICAgICAuZ2V0V29ya2Zsb3dXaXRoUGFyYW0oY29kZSlcbiAgICAgIC50aGVuKChyZXNwb25zZSkgPT4ge1xuICAgICAgICBpZiAocmVzcG9uc2UgJiYgcmVzcG9uc2UuUmVzdWx0KSB7XG4gICAgICAgICAgLy8gU3RvcmUgdGhlIHdvcmtmbG93IElEXG4gICAgICAgICAgY29uc3Qgd2YgPSByZXNwb25zZS5SZXN1bHRbMF07XG4gICAgICAgICAgdGhpcy5zdGF0ZS5zZXRXb3JrZmxvd0lkKHdmLkNvZGUpO1xuICAgICAgICAgIHRoaXMucGFyc2VXb3JrZmxvd0RhdGEod2YpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XG4gICAgICB9KVxuICAgICAgLmNhdGNoKChlcnJvcikgPT4ge1xuICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBsb2FkaW5nIHdvcmtmbG93OicsIGVycm9yKTtcbiAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcbiAgICAgIH0pO1xuICB9XG5cbiAgLy8gTWV0aG9kIHRvIHBhcnNlIHdvcmtmbG93IGRhdGEgZnJvbSBBUEkgYW5kIHBvcHVsYXRlIHRoZSBkZXNpZ25lclxuICBwYXJzZVdvcmtmbG93RGF0YSh3b3JrZmxvdzogV29ya2Zsb3cpOiB2b2lkIHtcbiAgICAvLyBTdG9yZSB0aGUgY29tcGxldGUgd29ya2Zsb3dcbiAgICB0aGlzLnN0YXRlLndvcmtmbG93ID0gd29ya2Zsb3c7XG5cbiAgICAvLyBDbGVhciBleGlzdGluZyBzdGF0ZVxuICAgIHRoaXMuc3RhdGUuc3dpbWxhbmVzID0gW107XG4gICAgdGhpcy5zdGF0ZS5jb25uZWN0aW9ucyA9IFtdO1xuICAgIHRoaXMuc3RhdGUuc3dpbWxhbmVSZWNvcmQgPSB7fTtcbiAgICB0aGlzLnN0YXRlLnN0YWdlUmVjb3JkID0ge307XG4gICAgdGhpcy5zdGF0ZS5hY3Rpb25SZWNvcmQgPSB7fTtcblxuICAgIC8vIFNldCB3b3JrZmxvdyBmb3JtIGlmIGV4aXN0c1xuICAgIGlmICh3b3JrZmxvdy5Gb3JtKSB7XG4gICAgICB0aGlzLnN0YXRlLnNldFdvcmtmbG93Rm9ybShcbiAgICAgICAgd29ya2Zsb3cuRm9ybSxcbiAgICAgICAgd29ya2Zsb3cuRm9ybU5hbWUgfHwgJ1dvcmtmbG93IEZvcm0nXG4gICAgICApO1xuICAgIH1cblxuICAgIC8vIFN0b3JlIHRoZSB3b3JrZmxvdyBJRFxuICAgIHRoaXMuc3RhdGUuc2V0V29ya2Zsb3dJZCh3b3JrZmxvdy5Db2RlKTtcblxuICAgIC8vIFByb2Nlc3Mgc3dpbWxhbmVzIGZpcnN0XG4gICAgaWYgKHdvcmtmbG93LkxhbmVzICYmIHdvcmtmbG93LkxhbmVzLmxlbmd0aCkge1xuICAgICAgd29ya2Zsb3cuTGFuZXMuc29ydCgoYSwgYikgPT4gYS5Qb3NpdGlvbiAtIGIuUG9zaXRpb24pLmZvckVhY2goKGxhbmUpID0+IHtcbiAgICAgICAgLy8gU3RvcmUgb3JpZ2luYWwgbGFuZSBpbiByZWNvcmRcbiAgICAgICAgdGhpcy5zdGF0ZS5zd2ltbGFuZVJlY29yZFtsYW5lLkNvZGVdID0gbGFuZTtcblxuICAgICAgICAvLyBBZGQgc3dpbWxhbmUgdG8gVUkgbW9kZWwgd2l0aCB0aGUgb3JpZ2luYWwgSURcbiAgICAgICAgY29uc3Qgc3dpbWxhbmUgPSB7XG4gICAgICAgICAgb3JkZXI6IGxhbmUuUG9zaXRpb24sXG4gICAgICAgICAgbGFiZWw6IGxhbmUuTmFtZSB8fCBgTGFuZSAke2xhbmUuUG9zaXRpb259YCxcbiAgICAgICAgICB0YWdzOiBsYW5lLlRhZ3MgfHwgW10sXG4gICAgICAgICAgbm9kZXM6IFtdLFxuICAgICAgICAgIGlkOiBsYW5lLkNvZGUsIC8vIFN0b3JlIHRoZSBvcmlnaW5hbCBJRFxuICAgICAgICB9O1xuXG4gICAgICAgIHRoaXMuc3RhdGUuc3dpbWxhbmVzLnB1c2goc3dpbWxhbmUpO1xuXG4gICAgICAgIC8vIFJlZ2lzdGVyIGxvYWRlZCBvYmplY3RcbiAgICAgICAgdGhpcy5zdGF0ZS5yZWdpc3RlckxvYWRlZE9iamVjdChsYW5lLklkLCBsYW5lLkNvZGUpO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgLy8gUHJvY2VzcyBzdGFnZXNcbiAgICBpZiAod29ya2Zsb3cuU3RhZ2VzICYmIHdvcmtmbG93LlN0YWdlcy5sZW5ndGgpIHtcbiAgICAgIHdvcmtmbG93LlN0YWdlcy5mb3JFYWNoKChzdGFnZSkgPT4ge1xuICAgICAgICAvLyBTdG9yZSBvcmlnaW5hbCBzdGFnZSBpbiByZWNvcmRcbiAgICAgICAgdGhpcy5zdGF0ZS5zdGFnZVJlY29yZFtzdGFnZS5Db2RlXSA9IHN0YWdlO1xuXG4gICAgICAgIC8vIEZpbmQgc3dpbWxhbmUgaW5kZXggYnkgU3dpbUxhbmUgSURcbiAgICAgICAgY29uc3Qgc3dpbWxhbmVJbmRleCA9IHRoaXMuc3RhdGUuc3dpbWxhbmVzLmZpbmRJbmRleChcbiAgICAgICAgICAobGFuZSkgPT4gbGFuZS5pZCA9PT0gc3RhZ2UuU3dpbUxhbmVcbiAgICAgICAgKTtcblxuICAgICAgICBpZiAoc3dpbWxhbmVJbmRleCAhPT0gLTEpIHtcbiAgICAgICAgICBjb25zdCB4ID0gc3RhZ2UuQ29vcmRpbmF0ZXM/LlggfHwgMTAwO1xuICAgICAgICAgIGNvbnN0IHkgPSBzdGFnZS5Db29yZGluYXRlcz8uWSB8fCA1MDtcblxuICAgICAgICAgIC8vIENyZWF0ZSBub2RlIHdpdGggb3JpZ2luYWwgSURcbiAgICAgICAgICBjb25zdCBub2RlOiBOb2RlID0ge1xuICAgICAgICAgICAgaWQ6IHN0YWdlLkNvZGUsIC8vIFVzZSBvcmlnaW5hbCBJRFxuICAgICAgICAgICAgdHlwZTogc3RhZ2UuSXNTdWJQcm9jZXNzID8gJ3N1YmZsb3cnIDogKCdzdGFnZScgYXMgY29uc3QpLFxuICAgICAgICAgICAgeDogeCxcbiAgICAgICAgICAgIHk6IHksXG4gICAgICAgICAgICB3aWR0aDogMTY5LFxuICAgICAgICAgICAgaGVpZ2h0OiAxMDAsXG4gICAgICAgICAgICBpc1N0YXJ0Tm9kZTogc3RhZ2UuSXNFbnRyeVBvaW50LFxuICAgICAgICAgICAgc3RhZ2VEYXRhOiB7XG4gICAgICAgICAgICAgIE5hbWU6IHN0YWdlLk5hbWUsXG4gICAgICAgICAgICAgIERlc2NyaXB0aW9uOiBzdGFnZS5EZXNjcmlwdGlvbixcbiAgICAgICAgICAgICAgRHVyYXRpb246IHN0YWdlLkR1cmF0aW9uLFxuICAgICAgICAgICAgICBQYXNzT25SdWxlOiBzdGFnZS5QYXNzT25SdWxlLFxuICAgICAgICAgICAgICBBY3RvclJ1bGU6IHN0YWdlLkFjdG9yUnVsZSxcbiAgICAgICAgICAgICAgTWluTm9PZkFjdG9yOiBzdGFnZS5NaW5Ob09mQWN0b3IsXG4gICAgICAgICAgICAgIFRhZ3M6IHN0YWdlLlRhZ3MgfHwgW10sXG4gICAgICAgICAgICAgIElzUGFyYWxsZWw6IHN0YWdlLklzUGFyYWxsZWwsXG4gICAgICAgICAgICAgIElzRW50cnlQb2ludDogc3RhZ2UuSXNFbnRyeVBvaW50LFxuICAgICAgICAgICAgICBJc0V4aXRQb2ludDogc3RhZ2UuSXNFeGl0UG9pbnQsXG4gICAgICAgICAgICAgIElzU3ViUHJvY2Vzczogc3RhZ2UuSXNTdWJQcm9jZXNzLFxuICAgICAgICAgICAgICBBc3NpZ25tZW50VHlwZTogc3RhZ2UuQXNzaWdubWVudFR5cGUsXG4gICAgICAgICAgICAgIElkOiBzdGFnZS5JZCwgLy8gS2VlcCBvcmlnaW5hbCBJRFxuICAgICAgICAgICAgICBDb2RlOiBzdGFnZS5Db2RlLFxuICAgICAgICAgICAgICBGb3JtOiBzdGFnZS5Gb3JtLFxuICAgICAgICAgICAgICBmb3JtSWQ6IHN0YWdlLkZvcm0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgY29ubmVjdGlvblBvaW50czogW10sIC8vIEluaXRpYWxpemUgd2l0aCBlbXB0eSBhcnJheVxuICAgICAgICAgIH07XG5cbiAgICAgICAgICAvLyBHZW5lcmF0ZSBjb25uZWN0aW9uIHBvaW50c1xuICAgICAgICAgIG5vZGUuY29ubmVjdGlvblBvaW50cyA9IHRoaXMuc3RhdGUuZ2VuZXJhdGVDb25uZWN0aW9uUG9pbnRzKG5vZGUpO1xuXG4gICAgICAgICAgLy8gQWRkIG5vZGUgdG8gc3dpbWxhbmVcbiAgICAgICAgICB0aGlzLnN0YXRlLnN3aW1sYW5lc1tzd2ltbGFuZUluZGV4XS5ub2RlcyA9XG4gICAgICAgICAgICB0aGlzLnN0YXRlLnN3aW1sYW5lc1tzd2ltbGFuZUluZGV4XS5ub2RlcyB8fCBbXTtcbiAgICAgICAgICB0aGlzLnN0YXRlLnN3aW1sYW5lc1tzd2ltbGFuZUluZGV4XS5ub2Rlcy5wdXNoKG5vZGUpO1xuXG4gICAgICAgICAgLy8gSWYgdGhpcyBpcyBhIHN0YXJ0IG5vZGUsIHVwZGF0ZSBzdGF0ZVxuICAgICAgICAgIGlmIChzdGFnZS5Jc0VudHJ5UG9pbnQpIHtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUuc3RhcnROb2RlSWQgPSBzdGFnZS5Db2RlO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIC8vIFJlZ2lzdGVyIGxvYWRlZCBzdGFnZVxuICAgICAgICAgIHRoaXMuc3RhdGUucmVnaXN0ZXJMb2FkZWRPYmplY3Qoc3RhZ2UuSWQsIHN0YWdlLkNvZGUpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICAvLyBQcm9jZXNzIGNvbm5lY3Rpb25zL2FjdGlvbnNcbiAgICBpZiAod29ya2Zsb3cuQWN0aW9ucyAmJiB3b3JrZmxvdy5BY3Rpb25zLmxlbmd0aCkge1xuICAgICAgd29ya2Zsb3cuQWN0aW9ucy5mb3JFYWNoKChhY3Rpb24pID0+IHtcbiAgICAgICAgLy8gU3RvcmUgb3JpZ2luYWwgYWN0aW9uIGluIHJlY29yZFxuICAgICAgICB0aGlzLnN0YXRlLmFjdGlvblJlY29yZFthY3Rpb24uQ29kZV0gPSBhY3Rpb247XG5cbiAgICAgICAgLy8gRmluZCBzb3VyY2UgYW5kIHRhcmdldCBub2Rlc1xuICAgICAgICBjb25zdCBzb3VyY2VOb2RlSW5mbyA9IHRoaXMuc3RhdGUuZmluZE5vZGVCeUlkKGFjdGlvbi5Gcm9tU3RhZ2UpO1xuICAgICAgICBjb25zdCB0YXJnZXROb2RlSW5mbyA9IHRoaXMuc3RhdGUuZmluZE5vZGVCeUlkKGFjdGlvbi5Ub1N0YWdlKTtcblxuICAgICAgICBjb25zb2xlLmxvZyhzb3VyY2VOb2RlSW5mbywgdGFyZ2V0Tm9kZUluZm8pO1xuXG4gICAgICAgIGlmIChzb3VyY2VOb2RlSW5mbyAmJiB0YXJnZXROb2RlSW5mbykge1xuICAgICAgICAgIC8vIEZpbmQgc3VpdGFibGUgY29ubmVjdGlvbiBwb2ludHNcbiAgICAgICAgICAvLyBjb25zdCBzb3VyY2VOb2RlID0gc291cmNlTm9kZUluZm8ubm9kZTtcbiAgICAgICAgICAvLyBjb25zdCB0YXJnZXROb2RlID0gdGFyZ2V0Tm9kZUluZm8ubm9kZTtcblxuICAgICAgICAgIC8vIGNvbnN0IHNvdXJjZVBvaW50ID0gc291cmNlTm9kZS5jb25uZWN0aW9uUG9pbnRzPy5maW5kKFxuICAgICAgICAgIC8vICAgKHApID0+IHAudHlwZSA9PT0gJ3JpZ2h0JyB8fCBwLnR5cGUgPT09ICdib3R0b20nXG4gICAgICAgICAgLy8gKTtcblxuICAgICAgICAgIC8vIGNvbnN0IHRhcmdldFBvaW50ID0gdGFyZ2V0Tm9kZS5jb25uZWN0aW9uUG9pbnRzPy5maW5kKFxuICAgICAgICAgIC8vICAgKHApID0+IHAudHlwZSA9PT0gJ2xlZnQnIHx8IHAudHlwZSA9PT0gJ3RvcCdcbiAgICAgICAgICAvLyApO1xuXG4gICAgICAgICAgY29uc3Qgc291cmNlTm9kZSA9IHNvdXJjZU5vZGVJbmZvLm5vZGU7XG4gICAgICAgICAgY29uc3QgdGFyZ2V0Tm9kZSA9IHRhcmdldE5vZGVJbmZvLm5vZGU7XG5cbiAgICAgICAgICBsZXQgc291cmNlUG9pbnRJZCwgdGFyZ2V0UG9pbnRJZDtcblxuICAgICAgICAgIGNvbnNvbGUubG9nKGFjdGlvbi5Tb3VyY2VQb2ludFR5cGUsIGFjdGlvbi5UYXJnZXRQb2ludFR5cGUpO1xuXG4gICAgICAgICAgaWYgKGFjdGlvbi5Tb3VyY2VQb2ludFR5cGUpIHtcbiAgICAgICAgICAgIC8vIEZpbmQgYSBwb2ludCB3aXRoIG1hdGNoaW5nIHR5cGVcbiAgICAgICAgICAgIGNvbnN0IHNvdXJjZVBvaW50ID0gc291cmNlTm9kZS5jb25uZWN0aW9uUG9pbnRzPy5maW5kKFxuICAgICAgICAgICAgICAocCkgPT4gcC50eXBlID09PSBhY3Rpb24uU291cmNlUG9pbnRUeXBlPy50b0xvd2VyQ2FzZSgpXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgc291cmNlUG9pbnRJZCA9IHNvdXJjZVBvaW50Py5pZDtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gRmFsbGJhY2sgdG8gZmluZGluZyBhIHN1aXRhYmxlIHBvaW50XG4gICAgICAgICAgICBjb25zdCBzb3VyY2VQb2ludCA9IHNvdXJjZU5vZGUuY29ubmVjdGlvblBvaW50cz8uZmluZChcbiAgICAgICAgICAgICAgKHApID0+IHAudHlwZSA9PT0gJ3JpZ2h0JyB8fCBwLnR5cGUgPT09ICdib3R0b20nXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgc291cmNlUG9pbnRJZCA9IHNvdXJjZVBvaW50Py5pZDtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoYWN0aW9uLlRhcmdldFBvaW50VHlwZSkge1xuICAgICAgICAgICAgLy8gRmluZCBhIHBvaW50IHdpdGggbWF0Y2hpbmcgdHlwZVxuICAgICAgICAgICAgY29uc3QgdGFyZ2V0UG9pbnQgPSB0YXJnZXROb2RlLmNvbm5lY3Rpb25Qb2ludHM/LmZpbmQoXG4gICAgICAgICAgICAgIChwKSA9PiBwLnR5cGUgPT09IGFjdGlvbi5UYXJnZXRQb2ludFR5cGU/LnRvTG93ZXJDYXNlKClcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICB0YXJnZXRQb2ludElkID0gdGFyZ2V0UG9pbnQ/LmlkO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBGYWxsYmFjayB0byBmaW5kaW5nIGEgc3VpdGFibGUgcG9pbnRcbiAgICAgICAgICAgIGNvbnN0IHRhcmdldFBvaW50ID0gdGFyZ2V0Tm9kZS5jb25uZWN0aW9uUG9pbnRzPy5maW5kKFxuICAgICAgICAgICAgICAocCkgPT4gcC50eXBlID09PSAnbGVmdCcgfHwgcC50eXBlID09PSAndG9wJ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHRhcmdldFBvaW50SWQgPSB0YXJnZXRQb2ludD8uaWQ7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc29sZS5sb2coJ1NvdXJjZSBwb2ludDonLCBzb3VyY2VQb2ludElkKTtcbiAgICAgICAgICBjb25zb2xlLmxvZygnVGFyZ2V0IHBvaW50OicsIHRhcmdldFBvaW50SWQpO1xuXG4gICAgICAgICAgaWYgKHNvdXJjZVBvaW50SWQgJiYgdGFyZ2V0UG9pbnRJZCkge1xuICAgICAgICAgICAgY29uc3QgY29ubmVjdGlvbiA9IHtcbiAgICAgICAgICAgICAgaWQ6IGFjdGlvbi5Db2RlLCAvLyBVc2Ugb3JpZ2luYWwgSURcbiAgICAgICAgICAgICAgc291cmNlTm9kZUlkOiBhY3Rpb24uRnJvbVN0YWdlLFxuICAgICAgICAgICAgICB0YXJnZXROb2RlSWQ6IGFjdGlvbi5Ub1N0YWdlLFxuICAgICAgICAgICAgICBzb3VyY2VQb2ludElkOiBzb3VyY2VQb2ludElkLFxuICAgICAgICAgICAgICB0YXJnZXRQb2ludElkOiB0YXJnZXRQb2ludElkLFxuICAgICAgICAgICAgICBzb3VyY2VTd2ltbGFuZUluZGV4OiBzb3VyY2VOb2RlSW5mby5zd2ltbGFuZUluZGV4LFxuICAgICAgICAgICAgICB0YXJnZXRTd2ltbGFuZUluZGV4OiB0YXJnZXROb2RlSW5mby5zd2ltbGFuZUluZGV4LFxuICAgICAgICAgICAgICBjb25kaXRpb246IGFjdGlvbi5QYXNzT25SdWxlIHx8ICcnLFxuICAgICAgICAgICAgICBsYWJlbDogYWN0aW9uLk5hbWUgfHwgJycsXG4gICAgICAgICAgICAgIGFjdGlvbjogYWN0aW9uLk9wZXJhdGlvbkFjdGlvbiB8fCBudWxsLFxuICAgICAgICAgICAgICB0YXJnZXRTdGF0dXM6IGFjdGlvbi5UYXJnZXRTdGF0dXMgfHwgdW5kZWZpbmVkLFxuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgdGhpcy5zdGF0ZS5jb25uZWN0aW9ucy5wdXNoKGNvbm5lY3Rpb24pO1xuXG4gICAgICAgICAgICAvLyBSZWdpc3RlciBsb2FkZWQgYWN0aW9uXG4gICAgICAgICAgICB0aGlzLnN0YXRlLnJlZ2lzdGVyTG9hZGVkT2JqZWN0KGFjdGlvbi5JZCwgYWN0aW9uLkNvZGUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgLy8gSGVscGVyIG1ldGhvZCB0byBmaW5kIHN3aW1sYW5lIGluZGV4IGJ5IExhbmUgSURcbiAgZmluZFN3aW1sYW5lSW5kZXhCeUxhbmVJZChsYW5lSWQ6IHN0cmluZyk6IG51bWJlciB7XG4gICAgLy8gRmlyc3QgY2hlY2sgb3VyIG1hcHBpbmdcbiAgICBpZiAodGhpcy5zdGF0ZS5sYW5lSWRUb0luZGV4TWFwLmhhcyhsYW5lSWQpKSB7XG4gICAgICByZXR1cm4gdGhpcy5zdGF0ZS5sYW5lSWRUb0luZGV4TWFwLmdldChsYW5lSWQpITtcbiAgICB9XG5cbiAgICAvLyBGYWxsYmFjayB0byB0aGUgb3JpZ2luYWwgbG9naWMgKGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5KVxuICAgIGNvbnN0IHBhcnRzID0gbGFuZUlkLnNwbGl0KCctJyk7XG4gICAgaWYgKHBhcnRzLmxlbmd0aCA+IDEpIHtcbiAgICAgIGNvbnN0IGluZGV4ID0gcGFyc2VJbnQocGFydHNbMV0pO1xuICAgICAgaWYgKCFpc05hTihpbmRleCkgJiYgaW5kZXggPCB0aGlzLnN0YXRlLnN3aW1sYW5lcy5sZW5ndGgpIHtcbiAgICAgICAgcmV0dXJuIGluZGV4O1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiAtMTtcbiAgfVxuXG4gIC8vIEhhbmRsZSB0b29sIHNlbGVjdGlvbiBmcm9tIHRvb2xiYXJcbiAgb25Ub29sU2VsZWN0ZWQodG9vbDogVG9vbFR5cGUpOiB2b2lkIHtcbiAgICAvLyBUb2dnbGUgc2VsZWN0aW9uIGlmIHRoZSBzYW1lIHRvb2wgaXMgY2xpY2tlZCBhZ2FpblxuICAgIHRoaXMuc2VsZWN0ZWRUb29sID0gdGhpcy5zZWxlY3RlZFRvb2wgPT09IHRvb2wgPyBudWxsIDogdG9vbDtcbiAgICBjb25zb2xlLmxvZygnU2VsZWN0ZWQgdG9vbDonLCB0aGlzLnNlbGVjdGVkVG9vbCk7XG4gIH1cblxuICBvcGVuU3dpbWxhbmVEaWFsb2coKSB7XG4gICAgY29uc29sZS5sb2coJ1NNTCBJTkRFWCcsIHRoaXMuZWRpdGluZ1N3aW1sYW5lSW5kZXgpO1xuICAgIGlmICh0aGlzLmVkaXRpbmdTd2ltbGFuZUluZGV4ICE9PSBudWxsKSB7XG4gICAgICBjb25zb2xlLmxvZygnU01MJywgdGhpcy5zdGF0ZS5zd2ltbGFuZXNbdGhpcy5lZGl0aW5nU3dpbWxhbmVJbmRleF0pO1xuICAgICAgdGhpcy5lZGl0aW5nU3dpbWxhbmUuc2V0KHtcbiAgICAgICAgbmFtZTogdGhpcy5zdGF0ZS5zd2ltbGFuZXNbdGhpcy5lZGl0aW5nU3dpbWxhbmVJbmRleF0ubGFiZWwsXG4gICAgICAgIHRhZ3M6IHRoaXMuc3RhdGUuc3dpbWxhbmVzW3RoaXMuZWRpdGluZ1N3aW1sYW5lSW5kZXhdLnRhZ3MsXG4gICAgICB9KTtcbiAgICAgIGNvbnNvbGUubG9nKCdTTUxfRURUJywgdGhpcy5lZGl0aW5nU3dpbWxhbmUoKSk7XG4gICAgfVxuICAgIHRoaXMuc2hvd1N3aW1sYW5lRGlhbG9nID0gdHJ1ZTtcbiAgfVxuXG5cblxuICBoYW5kbGVDYW52YXNQb3NpdGlvbkNsaWNrKGV2ZW50OiB7IHg6IG51bWJlcjsgeTogbnVtYmVyIH0pIHtcbiAgICBjb25zb2xlLmxvZyhldmVudCk7XG5cbiAgICAvLyBDaGVjayBpZiB0aGlzIGlzIGFuIGVkaXQgc3dpbWxhbmUgZXZlbnRcbiAgICBpZiAoXG4gICAgICBldmVudC54ID09PSAtMSAmJlxuICAgICAgZXZlbnQueSA+PSAwICYmXG4gICAgICBldmVudC55IDwgdGhpcy5zdGF0ZS5zd2ltbGFuZXMubGVuZ3RoXG4gICAgKSB7XG4gICAgICBjb25zb2xlLmxvZygnRWRpdGluZyBzd2ltbGFuZScsIGV2ZW50LnkpO1xuICAgICAgdGhpcy5lZGl0aW5nU3dpbWxhbmVJbmRleCA9IGV2ZW50Lnk7XG4gICAgICB0aGlzLm9wZW5Td2ltbGFuZURpYWxvZygpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIE5vcm1hbCBjYW52YXMgY2xpY2sgaGFuZGxpbmdcbiAgICBjb25zdCBzd2ltbGFuZUluZGV4ID0gTWF0aC5mbG9vcihldmVudC55IC8gMjYzKTtcblxuICAgIHN3aXRjaCAodGhpcy5zZWxlY3RlZFRvb2wpIHtcbiAgICAgIGNhc2UgJ3N3aW1sYW5lJzpcbiAgICAgICAgY29uc29sZS5sb2coJ09wZW5pbmcgc3dpbWxhbmUgZGlhbG9nIGZvciBuZXcgc3dpbWxhbmUnKTtcbiAgICAgICAgdGhpcy5lZGl0aW5nU3dpbWxhbmVJbmRleCA9IG51bGw7IC8vIFNldCB0byBudWxsIHRvIGluZGljYXRlIGNyZWF0aW5nIGEgbmV3IHN3aW1sYW5lXG4gICAgICAgIHRoaXMub3BlblN3aW1sYW5lRGlhbG9nKCk7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRUb29sID0gbnVsbDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdzdGFnZSc6XG4gICAgICAgIGlmIChzd2ltbGFuZUluZGV4ID49IDAgJiYgc3dpbWxhbmVJbmRleCA8IHRoaXMuc3RhdGUuc3dpbWxhbmVzLmxlbmd0aCkge1xuICAgICAgICAgIGNvbnNvbGUubG9nKFxuICAgICAgICAgICAgYEFkZGluZyAke3RoaXMuc2VsZWN0ZWRUb29sfSB0byBzd2ltbGFuZSAke3N3aW1sYW5lSW5kZXh9YFxuICAgICAgICAgICk7XG5cbiAgICAgICAgICAvLyBDcmVhdGUgdGhlIHN0YWdlIGRpcmVjdGx5IHdpdGggZGVmYXVsdCBwcm9wZXJ0aWVzXG4gICAgICAgICAgY29uc3Qgbm9kZSA9IHRoaXMuc3RhdGUuYWRkTm9kZShcbiAgICAgICAgICAgIHN3aW1sYW5lSW5kZXgsXG4gICAgICAgICAgICAnc3RhZ2UnLFxuICAgICAgICAgICAgZXZlbnQueCxcbiAgICAgICAgICAgIGV2ZW50LnksXG4gICAgICAgICAgICB7IE5hbWU6ICdOZXcgU3RhZ2UnIH0gLy8gQWRkIGRlZmF1bHQgcHJvcGVydGllc1xuICAgICAgICAgICk7XG5cbiAgICAgICAgICBpZiAobm9kZSkge1xuICAgICAgICAgICAgLy8gUmVzZXQgdGhlIHNlbGVjdGVkIHRvb2wgYWZ0ZXIgcGxhY2luZyBhIG5vZGVcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRUb29sID0gbnVsbDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdkZWNpc2lvbic6XG4gICAgICBjYXNlICdmb3JtJzpcbiAgICAgICAgaWYgKHN3aW1sYW5lSW5kZXggPj0gMCAmJiBzd2ltbGFuZUluZGV4IDwgdGhpcy5zdGF0ZS5zd2ltbGFuZXMubGVuZ3RoKSB7XG4gICAgICAgICAgY29uc29sZS5sb2coXG4gICAgICAgICAgICBgQWRkaW5nICR7dGhpcy5zZWxlY3RlZFRvb2x9IHRvIHN3aW1sYW5lICR7c3dpbWxhbmVJbmRleH1gXG4gICAgICAgICAgKTtcbiAgICAgICAgICBjb25zdCBub2RlID0gdGhpcy5zdGF0ZS5hZGROb2RlKFxuICAgICAgICAgICAgc3dpbWxhbmVJbmRleCxcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRUb29sLFxuICAgICAgICAgICAgZXZlbnQueCxcbiAgICAgICAgICAgIGV2ZW50LnlcbiAgICAgICAgICApO1xuICAgICAgICAgIGlmIChub2RlKSB7XG4gICAgICAgICAgICAvLyBSZXNldCB0aGUgc2VsZWN0ZWQgdG9vbCBhZnRlciBwbGFjaW5nIGEgbm9kZVxuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFRvb2wgPSBudWxsO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3N1YmZsb3cnOlxuICAgICAgICBpZiAoc3dpbWxhbmVJbmRleCA+PSAwICYmIHN3aW1sYW5lSW5kZXggPCB0aGlzLnN0YXRlLnN3aW1sYW5lcy5sZW5ndGgpIHtcbiAgICAgICAgICBjb25zb2xlLmxvZyhcbiAgICAgICAgICAgIGBBZGRpbmcgJHt0aGlzLnNlbGVjdGVkVG9vbH0gdG8gc3dpbWxhbmUgJHtzd2ltbGFuZUluZGV4fWBcbiAgICAgICAgICApO1xuICAgICAgICAgIC8vIFNob3cgc3ViZmxvdyB3b3JrZmxvdyBzZWxlY3Rpb24gcG9wdXBcbiAgICAgICAgICB0aGlzLmNhbnZhc1JlZi5zaG93U3ViZmxvd1NlbGVjdGlvblBvcHVwKFxuICAgICAgICAgICAgZXZlbnQueCxcbiAgICAgICAgICAgIGV2ZW50LnksXG4gICAgICAgICAgICBzd2ltbGFuZUluZGV4XG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIG9uU3dpbWxhbmVEaWFsb2dGaWxsZWQoZXZlbnQ6IHsgdGFnczogVGFnW107IG5hbWU6IHN0cmluZyB9KSB7XG4gICAgY29uc29sZS5sb2coXG4gICAgICAnU3dpbWxhbmUgZGlhbG9nIGZpbGxlZDonLFxuICAgICAgZXZlbnQsXG4gICAgICAnRWRpdGluZyBpbmRleDonLFxuICAgICAgdGhpcy5lZGl0aW5nU3dpbWxhbmVJbmRleFxuICAgICk7XG5cbiAgICBpZiAodGhpcy5lZGl0aW5nU3dpbWxhbmVJbmRleCAhPT0gbnVsbCkge1xuICAgICAgLy8gVXBkYXRlIGV4aXN0aW5nIHN3aW1sYW5lXG4gICAgICBjb25zb2xlLmxvZyhcbiAgICAgICAgJ1VwZGF0aW5nIGV4aXN0aW5nIHN3aW1sYW5lIGF0IGluZGV4OicsXG4gICAgICAgIHRoaXMuZWRpdGluZ1N3aW1sYW5lSW5kZXhcbiAgICAgICk7XG4gICAgICB0aGlzLnN0YXRlLnVwZGF0ZVN3aW1sYW5lKFxuICAgICAgICB0aGlzLmVkaXRpbmdTd2ltbGFuZUluZGV4LFxuICAgICAgICBldmVudC5uYW1lLFxuICAgICAgICBldmVudC50YWdzXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBDcmVhdGUgbmV3IHN3aW1sYW5lXG4gICAgICBjb25zb2xlLmxvZygnQ3JlYXRpbmcgbmV3IHN3aW1sYW5lJyk7XG4gICAgICB0aGlzLnN0YXRlLmFkZFN3aW1sYW5lKGV2ZW50Lm5hbWUsIGV2ZW50LnRhZ3MpO1xuICAgIH1cblxuICAgIHRoaXMuc2hvd1N3aW1sYW5lRGlhbG9nID0gZmFsc2U7XG4gICAgdGhpcy5lZGl0aW5nU3dpbWxhbmVJbmRleCA9IG51bGw7XG4gIH1cblxuXG5cbiAgb25TdWJmbG93U2VsZWN0ZWQoKSB7XG4gICAgLy8gUmVzZXQgdGhlIHNlbGVjdGVkIHRvb2wgYWZ0ZXIgcGxhY2luZyBhIHN1YmZsb3cgbm9kZVxuICAgIHRoaXMuc2VsZWN0ZWRUb29sID0gbnVsbDtcbiAgfVxuXG4gIG9wZW5BY3RvclRhZ3NEaWFsb2coKSB7XG4gICAgdGhpcy5zaG93QWN0b3JUYWdzRGlhbG9nID0gdHJ1ZTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cIndvcmtmbG93LWRlc2lnbmVyXCI+XG4gIDxkaXYgY2xhc3M9XCJ3b3JrZmxvdy1oZWFkZXJcIj5cbiAgICA8aDE+e3sgc3RhdGUud29ya2Zsb3c/Lk5hbWUgfX08L2gxPlxuICA8L2Rpdj5cblxuICA8IS0tIFRvb2xiYXIgQ29tcG9uZW50IC0tPlxuICA8bGliLWRlc2lnbmVyLXRvb2xiYXIgW3NlbGVjdGVkVG9vbF09XCJzZWxlY3RlZFRvb2xcIiBbaXNTYXZpbmddPVwiaXNTYXZpbmdcIlxuICAgIFt3b3JrZmxvd0NvZGVdPVwic3RhdGUud29ya2Zsb3c/LkNvZGUgfHwgbnVsbFwiICh0b29sU2VsZWN0ZWQpPVwib25Ub29sU2VsZWN0ZWQoJGV2ZW50KVwiXG4gICAgKHNhdmVXb3JrZmxvdyk9XCJzYXZlV29ya2Zsb3coKVwiIChvcGVuQWN0b3JUYWdzKT1cIm9wZW5BY3RvclRhZ3NEaWFsb2coKVwiPlxuICA8L2xpYi1kZXNpZ25lci10b29sYmFyPlxuXG4gIDwhLS0gU2hvdyBsb2FkaW5nIGluZGljYXRvciBpZiBuZWVkZWQgLS0+XG4gIDxkaXYgKm5nSWY9XCJpc0xvYWRpbmdcIiBjbGFzcz1cImxvYWRpbmctb3ZlcmxheVwiPlxuICAgIDxkaXYgY2xhc3M9XCJsb2FkaW5nLXNwaW5uZXJcIj48L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwibG9hZGluZy10ZXh0XCI+TG9hZGluZyB3b3JrZmxvdy4uLjwvZGl2PlxuICA8L2Rpdj5cblxuICA8IS0tIENhbnZhcyBDb21wb25lbnQgLS0+XG4gIDxsaWItZGVzaWduZXItY2FudmFzIFtzZWxlY3RlZFRvb2xdPVwic2VsZWN0ZWRUb29sXCIgKGNsaWNrZWRQb3NpdGlvbik9XCJoYW5kbGVDYW52YXNQb3NpdGlvbkNsaWNrKCRldmVudClcIlxuICAgIChzdWJmbG93U2VsZWN0ZWQpPVwib25TdWJmbG93U2VsZWN0ZWQoKVwiICNjYW52YXNSZWY+XG4gIDwvbGliLWRlc2lnbmVyLWNhbnZhcz5cblxuICA8bGliLXN3aW1sYW5lLWRpYWxvZyBbdmlzaWJsZV09XCJzaG93U3dpbWxhbmVEaWFsb2dcIiBbc3dpbWxhbmVEYXRhXT1cImVkaXRpbmdTd2ltbGFuZSgpXCJcbiAgICAoY3JlYXRlZCk9XCJvblN3aW1sYW5lRGlhbG9nRmlsbGVkKCRldmVudClcIiAoY2xvc2VkKT1cInNob3dTd2ltbGFuZURpYWxvZyA9IGZhbHNlXCI+PC9saWItc3dpbWxhbmUtZGlhbG9nPlxuXG4gIDxsaWItYWN0b3ItdGFncy1kaWFsb2cgW3Zpc2libGVdPVwic2hvd0FjdG9yVGFnc0RpYWxvZ1wiIFt3b3JrZmxvd0NvZGVdPVwic3RhdGUud29ya2Zsb3c/LkNvZGUgfHwgbnVsbFwiXG4gICAgKGNsb3NlZCk9XCJzaG93QWN0b3JUYWdzRGlhbG9nID0gZmFsc2VcIj48L2xpYi1hY3Rvci10YWdzLWRpYWxvZz5cbjwvZGl2PlxuIl19
@@ -74,11 +74,11 @@ export class WorkflowFormComponent {
74
74
  return !this.form.valid;
75
75
  }
76
76
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: WorkflowFormComponent, deps: [{ token: i1.FormBuilder }], target: i0.ɵɵFactoryTarget.Component });
77
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: WorkflowFormComponent, selector: "lib-workflow-form", inputs: { operations: { classPropertyName: "operations", publicName: "operations", isSignal: false, isRequired: false, transformFunction: null }, currentData: { classPropertyName: "currentData", publicName: "currentData", isSignal: false, isRequired: false, transformFunction: null }, designerUrl: { classPropertyName: "designerUrl", publicName: "designerUrl", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { switchView: "switchView", onSave: "onSave" }, ngImport: i0, template: "<form\n [formGroup]=\"form\"\n class=\"flex flex-col px-3 pb-3 rounded-xl h-full w-full relative space-y-4\"\n (ngSubmit)=\"handleSubmit()\"\n>\n <verbena-input\n name=\"Name\"\n label=\"Name\"\n formControlName=\"Name\"\n placeHolder=\"Enter Name\"\n />\n <verbena-input\n name=\"Description\"\n label=\"Description\"\n formControlName=\"Description\"\n placeHolder=\"Enter Description\"\n />\n\n <div class=\"space-y-1\">\n <label for=\"assignment\">Assignment</label>\n\n <verben-drop-down\n [showClear]=\"true\"\n label=\"Assignment\"\n styleClass=\"w-full\"\n width=\"100%\"\n [multiselect]=\"false\"\n placeholder=\"Select\"\n [options]=\"assignmentTypes\"\n id=\"assignment\"\n formControlName=\"AssignmentType\"\n class=\"form-control\"\n >\n </verben-drop-down>\n </div>\n\n <div class=\"space-y-1\">\n <label for=\"operation\">Operation</label>\n\n <verben-drop-down\n [showClear]=\"true\"\n label=\"Operation\"\n styleClass=\"w-full\"\n width=\"100%\"\n [multiselect]=\"false\"\n placeholder=\"Select\"\n [options]=\"operations\"\n optionLabel=\"Description\"\n optionValue=\"Code\"\n id=\"operation\"\n formControlName=\"Operation\"\n class=\"form-control\"\n >\n </verben-drop-down>\n </div>\n\n <!-- <div class=\"space-y-1\">\n <label for=\"object\">Object</label>\n\n <verbena-input\n id=\"object\"\n formControlName=\"Operation\"\n placeHolder=\"Enter Object\"\n />\n </div> -->\n\n <div class=\"space-y-1\">\n <label for=\"status\">Status</label>\n\n <verben-drop-down\n label=\"Status\"\n styleClass=\"w-full\"\n width=\"100%\"\n [multiselect]=\"false\"\n [showClear]=\"true\"\n placeholder=\"Null\"\n [(options)]=\"statuses\"\n id=\"status\"\n formControlName=\"Status\"\n class=\"form-control\"\n >\n </verben-drop-down>\n </div>\n\n <!-- buttons -->\n <div class=\"flex justify-between gap-4 my-2\">\n <!-- <verbena-button\n width=\"114px\"\n height=\"39px\"\n text=\"Delete\"\n bgColor=\"#999999\"\n textColor=\"#404040\"\n borderRadius=\"10px\"\n [disable]=\"disableProcessing()\"\n ></verbena-button> -->\n @if (currentData?.data?.Code) {\n <a [routerLink]=\"[designerUrl(), currentData?.data.Code]\" class=\"ml-auto\">\n <verbena-button text=\"Designer\" styleType=\"ylw-outline\"></verbena-button>\n </a>\n }\n <!-- <a [routerLink]=\"['/designer', currentData?.data.Code]\" class=\"ml-auto\">\n <verbena-button\n (click)=\"switchView.emit()\"\n text=\"Designer\"\n styleType=\"ylw-outline\"\n ></verbena-button>\n </a> -->\n <verbena-button\n (click)=\"switchView.emit()\"\n text=\"Switch To Table\"\n styleType=\"ylw-outline\"\n class=\"ml-auto\"\n ></verbena-button>\n <verbena-button\n type=\"submit\"\n text=\"Save\"\n bgColor=\"#FFE681\"\n textColor=\"#404040\"\n borderRadius=\"10px\"\n pd=\"10px 20px\"\n width=\"114px\"\n height=\"39px\"\n [disable]=\"disableProcessing()\"\n ></verbena-button>\n </div>\n</form>\n", styles: [""], dependencies: [{ kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i2.VerbenaInputComponent, selector: "verbena-input", inputs: ["label", "placeHolder", "required", "svgPosition", "minLength", "maxLength", "type", "bgColor", "border", "borderRadius", "textColor", "value", "labelPosition", "labelColor", "disable", "readOnly", "min", "max", "showBorder", "showErrorMessage", "errorMessageColor", "errorBorderColor", "errorPosition", "svg", "fontSize", "svgWidth", "svgHeight", "svgColor", "capitalization", "inputContainerClass", "inputFieldClass", "passLength", "inputWrapperClass", "passwordToggle", "customErrorMessages", "icon", "textPass"], outputs: ["valueChange"] }, { kind: "component", type: i2.VerbenaButtonComponent, selector: "verbena-button", inputs: ["text", "icon", "useIcon", "svgPosition", "iconPosition", "bgColor", "textColor", "border", "borderRadius", "pd", "width", "height", "fontSize", "fontWeight", "disable", "svgSize", "weight", "variant", "styleType", "svg", "svgWidth", "svgHeight", "iconColor", "svgColor", "buttonClass", "buttonTextClass", "isLoading", "spinnerSize", "spinnerColor"] }, { kind: "component", type: i2.DropDownComponent, selector: "verben-drop-down", inputs: ["options", "width", "showHorizontalLine", "horizontalLineColor", "optionLabel", "optionSubLabel", "optionValue", "placeholder", "invalidMessage", "errorPosition", "loadMoreCaption", "display", "showClear", "lazyLoad", "selectKey", "styleClass", "group", "multiselect", "filter", "avoidDuplication", "filterBy", "debounceTime", "minChar", "disabled", "required", "load", "asyncLabel", "search"], outputs: ["optionsChange", "onChange", "onClick", "onClear"] }, { kind: "directive", type: i3.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }] });
77
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: WorkflowFormComponent, selector: "lib-workflow-form", inputs: { operations: { classPropertyName: "operations", publicName: "operations", isSignal: false, isRequired: false, transformFunction: null }, currentData: { classPropertyName: "currentData", publicName: "currentData", isSignal: false, isRequired: false, transformFunction: null }, designerUrl: { classPropertyName: "designerUrl", publicName: "designerUrl", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { switchView: "switchView", onSave: "onSave" }, ngImport: i0, template: "<form\n [formGroup]=\"form\"\n class=\"flex flex-col px-3 pb-3 rounded-xl h-full w-full relative space-y-4\"\n (ngSubmit)=\"handleSubmit()\"\n>\n <verbena-input\n name=\"Name\"\n label=\"Name\"\n formControlName=\"Name\"\n placeHolder=\"Enter Name\"\n />\n <verbena-input\n name=\"Description\"\n label=\"Description\"\n formControlName=\"Description\"\n placeHolder=\"Enter Description\"\n />\n\n <div class=\"space-y-1\">\n <label for=\"assignment\">Assignment</label>\n\n <verben-drop-down\n [showClear]=\"true\"\n label=\"Assignment\"\n styleClass=\"w-full\"\n width=\"100%\"\n [multiselect]=\"false\"\n placeholder=\"Select\"\n [options]=\"assignmentTypes\"\n id=\"assignment\"\n formControlName=\"AssignmentType\"\n class=\"form-control\"\n >\n </verben-drop-down>\n </div>\n\n <div class=\"space-y-1\">\n <label for=\"operation\">Operation</label>\n\n <verben-drop-down\n [showClear]=\"true\"\n label=\"Operation\"\n styleClass=\"w-full\"\n width=\"100%\"\n [multiselect]=\"false\"\n placeholder=\"Select\"\n [options]=\"operations\"\n optionLabel=\"Code\"\n optionValue=\"Code\"\n id=\"operation\"\n formControlName=\"Operation\"\n class=\"form-control\"\n [filter]=\"true\"\n [filterBy]=\"'Code'\"\n >\n </verben-drop-down>\n </div>\n\n <!-- <div class=\"space-y-1\">\n <label for=\"object\">Object</label>\n\n <verbena-input\n id=\"object\"\n formControlName=\"Operation\"\n placeHolder=\"Enter Object\"\n />\n </div> -->\n\n <div class=\"space-y-1\">\n <label for=\"status\">Status</label>\n\n <verben-drop-down\n label=\"Status\"\n styleClass=\"w-full\"\n width=\"100%\"\n [multiselect]=\"false\"\n [showClear]=\"true\"\n placeholder=\"Null\"\n [(options)]=\"statuses\"\n id=\"status\"\n formControlName=\"Status\"\n class=\"form-control\"\n >\n </verben-drop-down>\n </div>\n\n <!-- buttons -->\n <div class=\"flex justify-between gap-4 my-2\">\n <!-- <verbena-button\n width=\"114px\"\n height=\"39px\"\n text=\"Delete\"\n bgColor=\"#999999\"\n textColor=\"#404040\"\n borderRadius=\"10px\"\n [disable]=\"disableProcessing()\"\n ></verbena-button> -->\n @if (currentData?.data?.Code) {\n <a [routerLink]=\"[designerUrl(), currentData?.data.Code]\" class=\"ml-auto\">\n <verbena-button text=\"Designer\" styleType=\"ylw-outline\"></verbena-button>\n </a>\n }\n <!-- <a [routerLink]=\"['/designer', currentData?.data.Code]\" class=\"ml-auto\">\n <verbena-button\n (click)=\"switchView.emit()\"\n text=\"Designer\"\n styleType=\"ylw-outline\"\n ></verbena-button>\n </a> -->\n <verbena-button\n (click)=\"switchView.emit()\"\n text=\"Switch To Table\"\n styleType=\"ylw-outline\"\n class=\"ml-auto\"\n ></verbena-button>\n <verbena-button\n type=\"submit\"\n text=\"Save\"\n bgColor=\"#FFE681\"\n textColor=\"#404040\"\n borderRadius=\"10px\"\n pd=\"10px 20px\"\n width=\"114px\"\n height=\"39px\"\n [disable]=\"disableProcessing()\"\n ></verbena-button>\n </div>\n</form>\n", styles: [""], dependencies: [{ kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i2.VerbenaInputComponent, selector: "verbena-input", inputs: ["label", "placeHolder", "required", "svgPosition", "minLength", "maxLength", "type", "bgColor", "border", "borderRadius", "textColor", "value", "labelPosition", "labelColor", "disable", "readOnly", "min", "max", "showBorder", "showErrorMessage", "errorMessageColor", "errorBorderColor", "errorPosition", "svg", "fontSize", "svgWidth", "svgHeight", "svgColor", "capitalization", "inputContainerClass", "inputFieldClass", "passLength", "inputWrapperClass", "passwordToggle", "customErrorMessages", "icon", "textPass"], outputs: ["valueChange"] }, { kind: "component", type: i2.VerbenaButtonComponent, selector: "verbena-button", inputs: ["text", "icon", "useIcon", "svgPosition", "iconPosition", "bgColor", "textColor", "border", "borderRadius", "pd", "width", "height", "fontSize", "fontWeight", "disable", "svgSize", "weight", "variant", "styleType", "svg", "svgWidth", "svgHeight", "iconColor", "svgColor", "buttonClass", "buttonTextClass", "isLoading", "spinnerSize", "spinnerColor"] }, { kind: "component", type: i2.DropDownComponent, selector: "verben-drop-down", inputs: ["options", "width", "showHorizontalLine", "horizontalLineColor", "optionLabel", "optionSubLabel", "optionValue", "placeholder", "invalidMessage", "errorPosition", "loadMoreCaption", "display", "showClear", "lazyLoad", "selectKey", "styleClass", "group", "multiselect", "filter", "avoidDuplication", "filterBy", "debounceTime", "minChar", "disabled", "required", "load", "asyncLabel", "search"], outputs: ["optionsChange", "onChange", "onClick", "onClear"] }, { kind: "directive", type: i3.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }] });
78
78
  }
79
79
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: WorkflowFormComponent, decorators: [{
80
80
  type: Component,
81
- args: [{ selector: 'lib-workflow-form', template: "<form\n [formGroup]=\"form\"\n class=\"flex flex-col px-3 pb-3 rounded-xl h-full w-full relative space-y-4\"\n (ngSubmit)=\"handleSubmit()\"\n>\n <verbena-input\n name=\"Name\"\n label=\"Name\"\n formControlName=\"Name\"\n placeHolder=\"Enter Name\"\n />\n <verbena-input\n name=\"Description\"\n label=\"Description\"\n formControlName=\"Description\"\n placeHolder=\"Enter Description\"\n />\n\n <div class=\"space-y-1\">\n <label for=\"assignment\">Assignment</label>\n\n <verben-drop-down\n [showClear]=\"true\"\n label=\"Assignment\"\n styleClass=\"w-full\"\n width=\"100%\"\n [multiselect]=\"false\"\n placeholder=\"Select\"\n [options]=\"assignmentTypes\"\n id=\"assignment\"\n formControlName=\"AssignmentType\"\n class=\"form-control\"\n >\n </verben-drop-down>\n </div>\n\n <div class=\"space-y-1\">\n <label for=\"operation\">Operation</label>\n\n <verben-drop-down\n [showClear]=\"true\"\n label=\"Operation\"\n styleClass=\"w-full\"\n width=\"100%\"\n [multiselect]=\"false\"\n placeholder=\"Select\"\n [options]=\"operations\"\n optionLabel=\"Description\"\n optionValue=\"Code\"\n id=\"operation\"\n formControlName=\"Operation\"\n class=\"form-control\"\n >\n </verben-drop-down>\n </div>\n\n <!-- <div class=\"space-y-1\">\n <label for=\"object\">Object</label>\n\n <verbena-input\n id=\"object\"\n formControlName=\"Operation\"\n placeHolder=\"Enter Object\"\n />\n </div> -->\n\n <div class=\"space-y-1\">\n <label for=\"status\">Status</label>\n\n <verben-drop-down\n label=\"Status\"\n styleClass=\"w-full\"\n width=\"100%\"\n [multiselect]=\"false\"\n [showClear]=\"true\"\n placeholder=\"Null\"\n [(options)]=\"statuses\"\n id=\"status\"\n formControlName=\"Status\"\n class=\"form-control\"\n >\n </verben-drop-down>\n </div>\n\n <!-- buttons -->\n <div class=\"flex justify-between gap-4 my-2\">\n <!-- <verbena-button\n width=\"114px\"\n height=\"39px\"\n text=\"Delete\"\n bgColor=\"#999999\"\n textColor=\"#404040\"\n borderRadius=\"10px\"\n [disable]=\"disableProcessing()\"\n ></verbena-button> -->\n @if (currentData?.data?.Code) {\n <a [routerLink]=\"[designerUrl(), currentData?.data.Code]\" class=\"ml-auto\">\n <verbena-button text=\"Designer\" styleType=\"ylw-outline\"></verbena-button>\n </a>\n }\n <!-- <a [routerLink]=\"['/designer', currentData?.data.Code]\" class=\"ml-auto\">\n <verbena-button\n (click)=\"switchView.emit()\"\n text=\"Designer\"\n styleType=\"ylw-outline\"\n ></verbena-button>\n </a> -->\n <verbena-button\n (click)=\"switchView.emit()\"\n text=\"Switch To Table\"\n styleType=\"ylw-outline\"\n class=\"ml-auto\"\n ></verbena-button>\n <verbena-button\n type=\"submit\"\n text=\"Save\"\n bgColor=\"#FFE681\"\n textColor=\"#404040\"\n borderRadius=\"10px\"\n pd=\"10px 20px\"\n width=\"114px\"\n height=\"39px\"\n [disable]=\"disableProcessing()\"\n ></verbena-button>\n </div>\n</form>\n" }]
81
+ args: [{ selector: 'lib-workflow-form', template: "<form\n [formGroup]=\"form\"\n class=\"flex flex-col px-3 pb-3 rounded-xl h-full w-full relative space-y-4\"\n (ngSubmit)=\"handleSubmit()\"\n>\n <verbena-input\n name=\"Name\"\n label=\"Name\"\n formControlName=\"Name\"\n placeHolder=\"Enter Name\"\n />\n <verbena-input\n name=\"Description\"\n label=\"Description\"\n formControlName=\"Description\"\n placeHolder=\"Enter Description\"\n />\n\n <div class=\"space-y-1\">\n <label for=\"assignment\">Assignment</label>\n\n <verben-drop-down\n [showClear]=\"true\"\n label=\"Assignment\"\n styleClass=\"w-full\"\n width=\"100%\"\n [multiselect]=\"false\"\n placeholder=\"Select\"\n [options]=\"assignmentTypes\"\n id=\"assignment\"\n formControlName=\"AssignmentType\"\n class=\"form-control\"\n >\n </verben-drop-down>\n </div>\n\n <div class=\"space-y-1\">\n <label for=\"operation\">Operation</label>\n\n <verben-drop-down\n [showClear]=\"true\"\n label=\"Operation\"\n styleClass=\"w-full\"\n width=\"100%\"\n [multiselect]=\"false\"\n placeholder=\"Select\"\n [options]=\"operations\"\n optionLabel=\"Code\"\n optionValue=\"Code\"\n id=\"operation\"\n formControlName=\"Operation\"\n class=\"form-control\"\n [filter]=\"true\"\n [filterBy]=\"'Code'\"\n >\n </verben-drop-down>\n </div>\n\n <!-- <div class=\"space-y-1\">\n <label for=\"object\">Object</label>\n\n <verbena-input\n id=\"object\"\n formControlName=\"Operation\"\n placeHolder=\"Enter Object\"\n />\n </div> -->\n\n <div class=\"space-y-1\">\n <label for=\"status\">Status</label>\n\n <verben-drop-down\n label=\"Status\"\n styleClass=\"w-full\"\n width=\"100%\"\n [multiselect]=\"false\"\n [showClear]=\"true\"\n placeholder=\"Null\"\n [(options)]=\"statuses\"\n id=\"status\"\n formControlName=\"Status\"\n class=\"form-control\"\n >\n </verben-drop-down>\n </div>\n\n <!-- buttons -->\n <div class=\"flex justify-between gap-4 my-2\">\n <!-- <verbena-button\n width=\"114px\"\n height=\"39px\"\n text=\"Delete\"\n bgColor=\"#999999\"\n textColor=\"#404040\"\n borderRadius=\"10px\"\n [disable]=\"disableProcessing()\"\n ></verbena-button> -->\n @if (currentData?.data?.Code) {\n <a [routerLink]=\"[designerUrl(), currentData?.data.Code]\" class=\"ml-auto\">\n <verbena-button text=\"Designer\" styleType=\"ylw-outline\"></verbena-button>\n </a>\n }\n <!-- <a [routerLink]=\"['/designer', currentData?.data.Code]\" class=\"ml-auto\">\n <verbena-button\n (click)=\"switchView.emit()\"\n text=\"Designer\"\n styleType=\"ylw-outline\"\n ></verbena-button>\n </a> -->\n <verbena-button\n (click)=\"switchView.emit()\"\n text=\"Switch To Table\"\n styleType=\"ylw-outline\"\n class=\"ml-auto\"\n ></verbena-button>\n <verbena-button\n type=\"submit\"\n text=\"Save\"\n bgColor=\"#FFE681\"\n textColor=\"#404040\"\n borderRadius=\"10px\"\n pd=\"10px 20px\"\n width=\"114px\"\n height=\"39px\"\n [disable]=\"disableProcessing()\"\n ></verbena-button>\n </div>\n</form>\n" }]
82
82
  }], ctorParameters: () => [{ type: i1.FormBuilder }], propDecorators: { operations: [{
83
83
  type: Input
84
84
  }], currentData: [{
@@ -88,4 +88,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
88
88
  }], onSave: [{
89
89
  type: Output
90
90
  }] } });
91
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2Zsb3ctZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92ZXJiZW4td29ya2Zsb3ctdWkvc3JjL2xpYi9jb21wb25lbnRzL3dvcmtmbG93cy93b3JrZmxvdy1mb3JtL3dvcmtmbG93LWZvcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmVyYmVuLXdvcmtmbG93LXVpL3NyYy9saWIvY29tcG9uZW50cy93b3JrZmxvd3Mvd29ya2Zsb3ctZm9ybS93b3JrZmxvdy1mb3JtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlFLE9BQU8sRUFBMEIsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFcEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFHdkUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLG1DQUFtQyxDQUFDOzs7OztBQU8zRCxNQUFNLE9BQU8scUJBQXFCO0lBa0NaO0lBakNYLFVBQVUsR0FBd0IsRUFBRSxDQUFDO0lBQzlDLElBQ0ksV0FBVztRQUNiLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztJQUMzQixDQUFDO0lBQ0QsSUFBSSxXQUFXLENBQUMsS0FBc0I7UUFDcEMsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7UUFDMUIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDekIsSUFBSSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUM7WUFDaEIsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUM7Z0JBQ25CLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFD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O3NCQUFsQixLQUFLO2dCQUVGLFdBQVc7c0JBRGQsS0FBSztnQkF1QkksVUFBVTtzQkFBbkIsTUFBTTtnQkFDRyxNQUFNO3NCQUFmLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgaW5wdXQsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBDYXJkRGF0YSB9IGZyb20gJ3ZlcmJlbi1uZy11aSc7XG5pbXBvcnQgeyBUYXNrQXNzaWdubWVudFR5cGUgfSBmcm9tICd2ZXJiZW4td29ya2Zsb3ctdWkvc3JjL2xpYi9tb2RlbHMnO1xuaW1wb3J0IHsgV29ya2Zsb3cgfSBmcm9tICd2ZXJiZW4td29ya2Zsb3ctdWkvc3JjL2xpYi9tb2RlbHMnO1xuaW1wb3J0IHsgV29ya2Zsb3dPcGVyYXRpb24gfSBmcm9tICd2ZXJiZW4td29ya2Zsb3ctdWkvc3JjL2xpYi9tb2RlbHMnO1xuaW1wb3J0IHsgU3RhdHVzIH0gZnJvbSAndmVyYmVuLXdvcmtmbG93LXVpL3NyYy9saWIvbW9kZWxzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGliLXdvcmtmbG93LWZvcm0nLFxuICB0ZW1wbGF0ZVVybDogJy4vd29ya2Zsb3ctZm9ybS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi93b3JrZmxvdy1mb3JtLmNvbXBvbmVudC5jc3MnLFxufSlcbmV4cG9ydCBjbGFzcyBXb3JrZmxvd0Zvcm1Db21wb25lbnQge1xuICBASW5wdXQoKSBvcGVyYXRpb25zOiBXb3JrZmxvd09wZXJhdGlvbltdID0gW107XG4gIEBJbnB1dCgpXG4gIGdldCBjdXJyZW50RGF0YSgpOiBDYXJkRGF0YSB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLl9jdXJyZW50RGF0YTtcbiAgfVxuICBzZXQgY3VycmVudERhdGEodmFsdWU6IENhcmREYXRhIHwgbnVsbCkge1xuICAgIHRoaXMuX2N1cnJlbnREYXRhID0gdmFsdWU7XG4gICAgY29uc29sZS5sb2codmFsdWU/LmRhdGEpO1xuICAgIGlmICh2YWx1ZT8uZGF0YSkge1xuICAgICAgdGhpcy5mb3JtLnBhdGNoVmFsdWUoe1xuICAgICAgICBOYW1lOiB2YWx1ZS5kYXRhLk5hbWUgfHwgJycsXG4gICAgICAgIERlc2NyaXB0aW9uOiB2YWx1ZS5kYXRhLkRlc2NyaXB0aW9uIHx8ICcnLFxuICAgICAgICBBc3NpZ25tZW50VHlwZTogdmFsdWUuZGF0YS5Bc3NpZ25tZW50VHlwZSB8fCAnJyxcbiAgICAgICAgU2VydmljZTogdmFsdWUuZGF0YS5TZXJ2aWNlIHx8ICcnLFxuICAgICAgICBPcGVyYXRpb246IHZhbHVlLmRhdGEuT3BlcmF0aW9uIHx8ICcnLFxuICAgICAgICBTdGF0dXM6IHZhbHVlLmRhdGEuU3RhdHVzIHx8ICcnLFxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZm9ybS5yZXNldCgpO1xuICAgIH1cbiAgfVxuICBwcml2YXRlIF9jdXJyZW50RGF0YTogQ2FyZERhdGEgfCBudWxsID0gbnVsbDtcbiAgZGVzaWduZXJVcmwgPSBpbnB1dDxzdHJpbmc+KCd3b3JrZmxvdycpO1xuXG4gIEBPdXRwdXQoKSBzd2l0Y2hWaWV3ID0gbmV3IEV2ZW50RW1pdHRlcjx1bmRlZmluZWQ+KCk7XG4gIEBPdXRwdXQoKSBvblNhdmUgPSBuZXcgRXZlbnRFbWl0dGVyPFBhcnRpYWw8V29ya2Zsb3c+PigpO1xuXG4gIGZvcm06IEZvcm1Hcm91cDtcbiAgYXNzaWdubWVudFR5cGVzID0gT2JqZWN0LnZhbHVlcyhUYXNrQXNzaWdubWVudFR5cGUpO1xuICBzdGF0dXNlcyA9IE9iamVjdC52YWx1ZXMoU3RhdHVzKTtcblxuICAvLyByb2xlczogV3JpdGFibGVTaWduYWw8Um9sZVtdPiA9IHNpZ25hbChbXSk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIpIHtcbiAgICB0aGlzLmZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcbiAgICAgIE5hbWU6IFsnJywgeyB2YWxpZGF0b3JzOiBbVmFsaWRhdG9ycy5yZXF1aXJlZF0gfV0sXG4gICAgICBEZXNjcmlwdGlvbjogWycnLCB7IHZhbGlkYXRvcnM6IFtWYWxpZGF0b3JzLnJlcXVpcmVkXSB9XSxcbiAgICAgIEFzc2lnbm1lbnRUeXBlOiBbJycsIHsgdmFsaWRhdG9yczogW1ZhbGlkYXRvcnMucmVxdWlyZWRdIH1dLFxuICAgICAgU2VydmljZTogWycnXSxcbiAgICAgIE9wZXJhdGlvbjogWycnXSxcbiAgICAgIFN0YXR1czogWycnLCB7IHZhbGlkYXRvcnM6IFtWYWxpZGF0b3JzLnJlcXVpcmVkXSB9XSxcbiAgICB9KTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIC8vIHRoaXMudXNlckFjY2Vzc1JlcXVlc3RGYWNhZGUuZ2V0Um9sZXMkKCkuc3Vic2NyaWJlKChkYXRhKSA9PiB7XG4gICAgLy8gICB0aGlzLnJvbGVzLnNldChkYXRhKTtcbiAgICAvLyB9KTtcbiAgICAvLyB0cnkge1xuICAgIC8vICAgdGhpcy51c2VyQWNjZXNzUmVxdWVzdEZhY2FkZS5sb2FkUm9sZXMoKTtcbiAgICAvLyB9IGNhdGNoIChlcnJvcikge1xuICAgIC8vICAgLy8gSGFuZGxlIGVycm9yXG4gICAgLy8gfVxuICAgIGNvbnNvbGUubG9nKHRoaXMuY3VycmVudERhdGE/LmRhdGEpO1xuICB9XG5cbiAgaGFuZGxlU3VibWl0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmZvcm0udmFsaWQpIHtcbiAgICAgIC8vIEVtaXQgc2F2ZSBldmVudCB3aXRoIGZvcm0gdmFsdWVcbiAgICAgIGNvbnNvbGUubG9nKCdGb3JtIHNhdmVkOicsIHRoaXMuZm9ybS52YWx1ZSk7XG4gICAgICB0aGlzLm9uU2F2ZS5lbWl0KHRoaXMuZm9ybS52YWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgb25EZWxldGUoKTogdm9pZCB7XG4gICAgLy8gRW1pdCBkZWxldGUgZXZlbnRcbiAgICBjb25zb2xlLmxvZygnRGVsZXRlIHJlcXVlc3RlZCcpO1xuICB9XG5cbiAgZGlzYWJsZVByb2Nlc3NpbmcoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICF0aGlzLmZvcm0udmFsaWQ7XG4gIH1cbn1cbiIsIjxmb3JtXG4gIFtmb3JtR3JvdXBdPVwiZm9ybVwiXG4gIGNsYXNzPVwiZmxleCBmbGV4LWNvbCBweC0zIHBiLTMgcm91bmRlZC14bCBoLWZ1bGwgdy1mdWxsIHJlbGF0aXZlIHNwYWNlLXktNFwiXG4gIChuZ1N1Ym1pdCk9XCJoYW5kbGVTdWJtaXQoKVwiXG4+XG4gIDx2ZXJiZW5hLWlucHV0XG4gICAgbmFtZT1cIk5hbWVcIlxuICAgIGxhYmVsPVwiTmFtZVwiXG4gICAgZm9ybUNvbnRyb2xOYW1lPVwiTmFtZVwiXG4gICAgcGxhY2VIb2xkZXI9XCJFbnRlciBOYW1lXCJcbiAgLz5cbiAgPHZlcmJlbmEtaW5wdXRcbiAgICBuYW1lPVwiRGVzY3JpcHRpb25cIlxuICAgIGxhYmVsPVwiRGVzY3JpcHRpb25cIlxuICAgIGZvcm1Db250cm9sTmFtZT1cIkRlc2NyaXB0aW9uXCJcbiAgICBwbGFjZUhvbGRlcj1cIkVudGVyIERlc2NyaXB0aW9uXCJcbiAgLz5cblxuICA8ZGl2IGNsYXNzPVwic3BhY2UteS0xXCI+XG4gICAgPGxhYmVsIGZvcj1cImFzc2lnbm1lbnRcIj5Bc3NpZ25tZW50PC9sYWJlbD5cblxuICAgIDx2ZXJiZW4tZHJvcC1kb3duXG4gICAgICBbc2hvd0NsZWFyXT1cInRydWVcIlxuICAgICAgbGFiZWw9XCJBc3NpZ25tZW50XCJcbiAgICAgIHN0eWxlQ2xhc3M9XCJ3LWZ1bGxcIlxuICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgIFttdWx0aXNlbGVjdF09XCJmYWxzZVwiXG4gICAgICBwbGFjZWhvbGRlcj1cIlNlbGVjdFwiXG4gICAgICBbb3B0aW9uc109XCJhc3NpZ25tZW50VHlwZXNcIlxuICAgICAgaWQ9XCJhc3NpZ25tZW50XCJcbiAgICAgIGZvcm1Db250cm9sTmFtZT1cIkFzc2lnbm1lbnRUeXBlXCJcbiAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcbiAgICA+XG4gICAgPC92ZXJiZW4tZHJvcC1kb3duPlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwic3BhY2UteS0xXCI+XG4gICAgPGxhYmVsIGZvcj1cIm9wZXJhdGlvblwiPk9wZXJhdGlvbjwvbGFiZWw+XG5cbiAgICA8dmVyYmVuLWRyb3AtZG93blxuICAgICAgW3Nob3dDbGVhcl09XCJ0cnVlXCJcbiAgICAgIGxhYmVsPVwiT3BlcmF0aW9uXCJcbiAgICAgIHN0eWxlQ2xhc3M9XCJ3LWZ1bGxcIlxuICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgIFttdWx0aXNlbGVjdF09XCJmYWxzZVwiXG4gICAgICBwbGFjZWhvbGRlcj1cIlNlbGVjdFwiXG4gICAgICBbb3B0aW9uc109XCJvcGVyYXRpb25zXCJcbiAgICAgIG9wdGlvbkxhYmVsPVwiRGVzY3JpcHRpb25cIlxuICAgICAgb3B0aW9uVmFsdWU9XCJDb2RlXCJcbiAgICAgIGlkPVwib3BlcmF0aW9uXCJcbiAgICAgIGZvcm1Db250cm9sTmFtZT1cIk9wZXJhdGlvblwiXG4gICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXG4gICAgPlxuICAgIDwvdmVyYmVuLWRyb3AtZG93bj5cbiAgPC9kaXY+XG5cbiAgPCEtLSA8ZGl2IGNsYXNzPVwic3BhY2UteS0xXCI+XG4gICAgPGxhYmVsIGZvcj1cIm9iamVjdFwiPk9iamVjdDwvbGFiZWw+XG5cbiAgICA8dmVyYmVuYS1pbnB1dFxuICAgICAgaWQ9XCJvYmplY3RcIlxuICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiT3BlcmF0aW9uXCJcbiAgICAgIHBsYWNlSG9sZGVyPVwiRW50ZXIgT2JqZWN0XCJcbiAgICAvPlxuICA8L2Rpdj4gLS0+XG5cbiAgPGRpdiBjbGFzcz1cInNwYWNlLXktMVwiPlxuICAgIDxsYWJlbCBmb3I9XCJzdGF0dXNcIj5TdGF0dXM8L2xhYmVsPlxuXG4gICAgPHZlcmJlbi1kcm9wLWRvd25cbiAgICAgIGxhYmVsPVwiU3RhdHVzXCJcbiAgICAgIHN0eWxlQ2xhc3M9XCJ3LWZ1bGxcIlxuICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgIFttdWx0aXNlbGVjdF09XCJmYWxzZVwiXG4gICAgICBbc2hvd0NsZWFyXT1cInRydWVcIlxuICAgICAgcGxhY2Vob2xkZXI9XCJOdWxsXCJcbiAgICAgIFsob3B0aW9ucyldPVwic3RhdHVzZXNcIlxuICAgICAgaWQ9XCJzdGF0dXNcIlxuICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiU3RhdHVzXCJcbiAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcbiAgICA+XG4gICAgPC92ZXJiZW4tZHJvcC1kb3duPlxuICA8L2Rpdj5cblxuICA8IS0tIGJ1dHRvbnMgLS0+XG4gIDxkaXYgY2xhc3M9XCJmbGV4IGp1c3RpZnktYmV0d2VlbiBnYXAtNCBteS0yXCI+XG4gICAgPCEtLSA8dmVyYmVuYS1idXR0b25cbiAgICAgIHdpZHRoPVwiMTE0cHhcIlxuICAgICAgaGVpZ2h0PVwiMzlweFwiXG4gICAgICB0ZXh0PVwiRGVsZXRlXCJcbiAgICAgIGJnQ29sb3I9XCIjOTk5OTk5XCJcbiAgICAgIHRleHRDb2xvcj1cIiM0MDQwNDBcIlxuICAgICAgYm9yZGVyUmFkaXVzPVwiMTBweFwiXG4gICAgICBbZGlzYWJsZV09XCJkaXNhYmxlUHJvY2Vzc2luZygpXCJcbiAgICA+PC92ZXJiZW5hLWJ1dHRvbj4gLS0+XG4gICAgQGlmIChjdXJyZW50RGF0YT8uZGF0YT8uQ29kZSkge1xuICAgICAgPGEgW3JvdXRlckxpbmtdPVwiW2Rlc2lnbmVyVXJsKCksIGN1cnJlbnREYXRhPy5kYXRhLkNvZGVdXCIgY2xhc3M9XCJtbC1hdXRvXCI+XG4gICAgICAgIDx2ZXJiZW5hLWJ1dHRvbiB0ZXh0PVwiRGVzaWduZXJcIiBzdHlsZVR5cGU9XCJ5bHctb3V0bGluZVwiPjwvdmVyYmVuYS1idXR0b24+XG4gICAgICA8L2E+XG4gICAgfVxuICAgIDwhLS0gPGEgW3JvdXRlckxpbmtdPVwiWycvZGVzaWduZXInLCBjdXJyZW50RGF0YT8uZGF0YS5Db2RlXVwiIGNsYXNzPVwibWwtYXV0b1wiPlxuICAgICAgPHZlcmJlbmEtYnV0dG9uXG4gICAgICAgIChjbGljayk9XCJzd2l0Y2hWaWV3LmVtaXQoKVwiXG4gICAgICAgIHRleHQ9XCJEZXNpZ25lclwiXG4gICAgICAgIHN0eWxlVHlwZT1cInlsdy1vdXRsaW5lXCJcbiAgICAgID48L3ZlcmJlbmEtYnV0dG9uPlxuICAgIDwvYT4gLS0+XG4gICAgPHZlcmJlbmEtYnV0dG9uXG4gICAgICAoY2xpY2spPVwic3dpdGNoVmlldy5lbWl0KClcIlxuICAgICAgdGV4dD1cIlN3aXRjaCBUbyBUYWJsZVwiXG4gICAgICBzdHlsZVR5cGU9XCJ5bHctb3V0bGluZVwiXG4gICAgICBjbGFzcz1cIm1sLWF1dG9cIlxuICAgID48L3ZlcmJlbmEtYnV0dG9uPlxuICAgIDx2ZXJiZW5hLWJ1dHRvblxuICAgICAgdHlwZT1cInN1Ym1pdFwiXG4gICAgICB0ZXh0PVwiU2F2ZVwiXG4gICAgICBiZ0NvbG9yPVwiI0ZGRTY4MVwiXG4gICAgICB0ZXh0Q29sb3I9XCIjNDA0MDQwXCJcbiAgICAgIGJvcmRlclJhZGl1cz1cIjEwcHhcIlxuICAgICAgcGQ9XCIxMHB4IDIwcHhcIlxuICAgICAgd2lkdGg9XCIxMTRweFwiXG4gICAgICBoZWlnaHQ9XCIzOXB4XCJcbiAgICAgIFtkaXNhYmxlXT1cImRpc2FibGVQcm9jZXNzaW5nKClcIlxuICAgID48L3ZlcmJlbmEtYnV0dG9uPlxuICA8L2Rpdj5cbjwvZm9ybT5cbiJdfQ==
91
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2Zsb3ctZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92ZXJiZW4td29ya2Zsb3ctdWkvc3JjL2xpYi9jb21wb25lbnRzL3dvcmtmbG93cy93b3JrZmxvdy1mb3JtL3dvcmtmbG93LWZvcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmVyYmVuLXdvcmtmbG93LXVpL3NyYy9saWIvY29tcG9uZW50cy93b3JrZmxvd3Mvd29ya2Zsb3ctZm9ybS93b3JrZmxvdy1mb3JtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlFLE9BQU8sRUFBMEIsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFcEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFHdkUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLG1DQUFtQyxDQUFDOzs7OztBQU8zRCxNQUFNLE9BQU8scUJBQXFCO0lBa0NaO0lBakNYLFVBQVUsR0FBd0IsRUFBRSxDQUFDO0lBQzlDLElBQ0ksV0FBVztRQUNiLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztJQUMzQixDQUFDO0lBQ0QsSUFBSSxXQUFXLENBQUMsS0FBc0I7UUFDcEMsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7UUFDMUIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDekIsSUFBSSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUM7WUFDaEIsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUM7Z0JBQ25CLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFD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O3NCQUFsQixLQUFLO2dCQUVGLFdBQVc7c0JBRGQsS0FBSztnQkF1QkksVUFBVTtzQkFBbkIsTUFBTTtnQkFDRyxNQUFNO3NCQUFmLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgaW5wdXQsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBDYXJkRGF0YSB9IGZyb20gJ3ZlcmJlbi1uZy11aSc7XG5pbXBvcnQgeyBUYXNrQXNzaWdubWVudFR5cGUgfSBmcm9tICd2ZXJiZW4td29ya2Zsb3ctdWkvc3JjL2xpYi9tb2RlbHMnO1xuaW1wb3J0IHsgV29ya2Zsb3cgfSBmcm9tICd2ZXJiZW4td29ya2Zsb3ctdWkvc3JjL2xpYi9tb2RlbHMnO1xuaW1wb3J0IHsgV29ya2Zsb3dPcGVyYXRpb24gfSBmcm9tICd2ZXJiZW4td29ya2Zsb3ctdWkvc3JjL2xpYi9tb2RlbHMnO1xuaW1wb3J0IHsgU3RhdHVzIH0gZnJvbSAndmVyYmVuLXdvcmtmbG93LXVpL3NyYy9saWIvbW9kZWxzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGliLXdvcmtmbG93LWZvcm0nLFxuICB0ZW1wbGF0ZVVybDogJy4vd29ya2Zsb3ctZm9ybS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi93b3JrZmxvdy1mb3JtLmNvbXBvbmVudC5jc3MnLFxufSlcbmV4cG9ydCBjbGFzcyBXb3JrZmxvd0Zvcm1Db21wb25lbnQge1xuICBASW5wdXQoKSBvcGVyYXRpb25zOiBXb3JrZmxvd09wZXJhdGlvbltdID0gW107XG4gIEBJbnB1dCgpXG4gIGdldCBjdXJyZW50RGF0YSgpOiBDYXJkRGF0YSB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLl9jdXJyZW50RGF0YTtcbiAgfVxuICBzZXQgY3VycmVudERhdGEodmFsdWU6IENhcmREYXRhIHwgbnVsbCkge1xuICAgIHRoaXMuX2N1cnJlbnREYXRhID0gdmFsdWU7XG4gICAgY29uc29sZS5sb2codmFsdWU/LmRhdGEpO1xuICAgIGlmICh2YWx1ZT8uZGF0YSkge1xuICAgICAgdGhpcy5mb3JtLnBhdGNoVmFsdWUoe1xuICAgICAgICBOYW1lOiB2YWx1ZS5kYXRhLk5hbWUgfHwgJycsXG4gICAgICAgIERlc2NyaXB0aW9uOiB2YWx1ZS5kYXRhLkRlc2NyaXB0aW9uIHx8ICcnLFxuICAgICAgICBBc3NpZ25tZW50VHlwZTogdmFsdWUuZGF0YS5Bc3NpZ25tZW50VHlwZSB8fCAnJyxcbiAgICAgICAgU2VydmljZTogdmFsdWUuZGF0YS5TZXJ2aWNlIHx8ICcnLFxuICAgICAgICBPcGVyYXRpb246IHZhbHVlLmRhdGEuT3BlcmF0aW9uIHx8ICcnLFxuICAgICAgICBTdGF0dXM6IHZhbHVlLmRhdGEuU3RhdHVzIHx8ICcnLFxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZm9ybS5yZXNldCgpO1xuICAgIH1cbiAgfVxuICBwcml2YXRlIF9jdXJyZW50RGF0YTogQ2FyZERhdGEgfCBudWxsID0gbnVsbDtcbiAgZGVzaWduZXJVcmwgPSBpbnB1dDxzdHJpbmc+KCd3b3JrZmxvdycpO1xuXG4gIEBPdXRwdXQoKSBzd2l0Y2hWaWV3ID0gbmV3IEV2ZW50RW1pdHRlcjx1bmRlZmluZWQ+KCk7XG4gIEBPdXRwdXQoKSBvblNhdmUgPSBuZXcgRXZlbnRFbWl0dGVyPFBhcnRpYWw8V29ya2Zsb3c+PigpO1xuXG4gIGZvcm06IEZvcm1Hcm91cDtcbiAgYXNzaWdubWVudFR5cGVzID0gT2JqZWN0LnZhbHVlcyhUYXNrQXNzaWdubWVudFR5cGUpO1xuICBzdGF0dXNlcyA9IE9iamVjdC52YWx1ZXMoU3RhdHVzKTtcblxuICAvLyByb2xlczogV3JpdGFibGVTaWduYWw8Um9sZVtdPiA9IHNpZ25hbChbXSk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIpIHtcbiAgICB0aGlzLmZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcbiAgICAgIE5hbWU6IFsnJywgeyB2YWxpZGF0b3JzOiBbVmFsaWRhdG9ycy5yZXF1aXJlZF0gfV0sXG4gICAgICBEZXNjcmlwdGlvbjogWycnLCB7IHZhbGlkYXRvcnM6IFtWYWxpZGF0b3JzLnJlcXVpcmVkXSB9XSxcbiAgICAgIEFzc2lnbm1lbnRUeXBlOiBbJycsIHsgdmFsaWRhdG9yczogW1ZhbGlkYXRvcnMucmVxdWlyZWRdIH1dLFxuICAgICAgU2VydmljZTogWycnXSxcbiAgICAgIE9wZXJhdGlvbjogWycnXSxcbiAgICAgIFN0YXR1czogWycnLCB7IHZhbGlkYXRvcnM6IFtWYWxpZGF0b3JzLnJlcXVpcmVkXSB9XSxcbiAgICB9KTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIC8vIHRoaXMudXNlckFjY2Vzc1JlcXVlc3RGYWNhZGUuZ2V0Um9sZXMkKCkuc3Vic2NyaWJlKChkYXRhKSA9PiB7XG4gICAgLy8gICB0aGlzLnJvbGVzLnNldChkYXRhKTtcbiAgICAvLyB9KTtcbiAgICAvLyB0cnkge1xuICAgIC8vICAgdGhpcy51c2VyQWNjZXNzUmVxdWVzdEZhY2FkZS5sb2FkUm9sZXMoKTtcbiAgICAvLyB9IGNhdGNoIChlcnJvcikge1xuICAgIC8vICAgLy8gSGFuZGxlIGVycm9yXG4gICAgLy8gfVxuICAgIGNvbnNvbGUubG9nKHRoaXMuY3VycmVudERhdGE/LmRhdGEpO1xuICB9XG5cbiAgaGFuZGxlU3VibWl0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmZvcm0udmFsaWQpIHtcbiAgICAgIC8vIEVtaXQgc2F2ZSBldmVudCB3aXRoIGZvcm0gdmFsdWVcbiAgICAgIGNvbnNvbGUubG9nKCdGb3JtIHNhdmVkOicsIHRoaXMuZm9ybS52YWx1ZSk7XG4gICAgICB0aGlzLm9uU2F2ZS5lbWl0KHRoaXMuZm9ybS52YWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgb25EZWxldGUoKTogdm9pZCB7XG4gICAgLy8gRW1pdCBkZWxldGUgZXZlbnRcbiAgICBjb25zb2xlLmxvZygnRGVsZXRlIHJlcXVlc3RlZCcpO1xuICB9XG5cbiAgZGlzYWJsZVByb2Nlc3NpbmcoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICF0aGlzLmZvcm0udmFsaWQ7XG4gIH1cbn1cbiIsIjxmb3JtXG4gIFtmb3JtR3JvdXBdPVwiZm9ybVwiXG4gIGNsYXNzPVwiZmxleCBmbGV4LWNvbCBweC0zIHBiLTMgcm91bmRlZC14bCBoLWZ1bGwgdy1mdWxsIHJlbGF0aXZlIHNwYWNlLXktNFwiXG4gIChuZ1N1Ym1pdCk9XCJoYW5kbGVTdWJtaXQoKVwiXG4+XG4gIDx2ZXJiZW5hLWlucHV0XG4gICAgbmFtZT1cIk5hbWVcIlxuICAgIGxhYmVsPVwiTmFtZVwiXG4gICAgZm9ybUNvbnRyb2xOYW1lPVwiTmFtZVwiXG4gICAgcGxhY2VIb2xkZXI9XCJFbnRlciBOYW1lXCJcbiAgLz5cbiAgPHZlcmJlbmEtaW5wdXRcbiAgICBuYW1lPVwiRGVzY3JpcHRpb25cIlxuICAgIGxhYmVsPVwiRGVzY3JpcHRpb25cIlxuICAgIGZvcm1Db250cm9sTmFtZT1cIkRlc2NyaXB0aW9uXCJcbiAgICBwbGFjZUhvbGRlcj1cIkVudGVyIERlc2NyaXB0aW9uXCJcbiAgLz5cblxuICA8ZGl2IGNsYXNzPVwic3BhY2UteS0xXCI+XG4gICAgPGxhYmVsIGZvcj1cImFzc2lnbm1lbnRcIj5Bc3NpZ25tZW50PC9sYWJlbD5cblxuICAgIDx2ZXJiZW4tZHJvcC1kb3duXG4gICAgICBbc2hvd0NsZWFyXT1cInRydWVcIlxuICAgICAgbGFiZWw9XCJBc3NpZ25tZW50XCJcbiAgICAgIHN0eWxlQ2xhc3M9XCJ3LWZ1bGxcIlxuICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgIFttdWx0aXNlbGVjdF09XCJmYWxzZVwiXG4gICAgICBwbGFjZWhvbGRlcj1cIlNlbGVjdFwiXG4gICAgICBbb3B0aW9uc109XCJhc3NpZ25tZW50VHlwZXNcIlxuICAgICAgaWQ9XCJhc3NpZ25tZW50XCJcbiAgICAgIGZvcm1Db250cm9sTmFtZT1cIkFzc2lnbm1lbnRUeXBlXCJcbiAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcbiAgICA+XG4gICAgPC92ZXJiZW4tZHJvcC1kb3duPlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwic3BhY2UteS0xXCI+XG4gICAgPGxhYmVsIGZvcj1cIm9wZXJhdGlvblwiPk9wZXJhdGlvbjwvbGFiZWw+XG5cbiAgICA8dmVyYmVuLWRyb3AtZG93blxuICAgICAgW3Nob3dDbGVhcl09XCJ0cnVlXCJcbiAgICAgIGxhYmVsPVwiT3BlcmF0aW9uXCJcbiAgICAgIHN0eWxlQ2xhc3M9XCJ3LWZ1bGxcIlxuICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgIFttdWx0aXNlbGVjdF09XCJmYWxzZVwiXG4gICAgICBwbGFjZWhvbGRlcj1cIlNlbGVjdFwiXG4gICAgICBbb3B0aW9uc109XCJvcGVyYXRpb25zXCJcbiAgICAgIG9wdGlvbkxhYmVsPVwiQ29kZVwiXG4gICAgICBvcHRpb25WYWx1ZT1cIkNvZGVcIlxuICAgICAgaWQ9XCJvcGVyYXRpb25cIlxuICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiT3BlcmF0aW9uXCJcbiAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcbiAgICAgIFtmaWx0ZXJdPVwidHJ1ZVwiXG4gICAgICBbZmlsdGVyQnldPVwiJ0NvZGUnXCJcbiAgICA+XG4gICAgPC92ZXJiZW4tZHJvcC1kb3duPlxuICA8L2Rpdj5cblxuICA8IS0tIDxkaXYgY2xhc3M9XCJzcGFjZS15LTFcIj5cbiAgICA8bGFiZWwgZm9yPVwib2JqZWN0XCI+T2JqZWN0PC9sYWJlbD5cblxuICAgIDx2ZXJiZW5hLWlucHV0XG4gICAgICBpZD1cIm9iamVjdFwiXG4gICAgICBmb3JtQ29udHJvbE5hbWU9XCJPcGVyYXRpb25cIlxuICAgICAgcGxhY2VIb2xkZXI9XCJFbnRlciBPYmplY3RcIlxuICAgIC8+XG4gIDwvZGl2PiAtLT5cblxuICA8ZGl2IGNsYXNzPVwic3BhY2UteS0xXCI+XG4gICAgPGxhYmVsIGZvcj1cInN0YXR1c1wiPlN0YXR1czwvbGFiZWw+XG5cbiAgICA8dmVyYmVuLWRyb3AtZG93blxuICAgICAgbGFiZWw9XCJTdGF0dXNcIlxuICAgICAgc3R5bGVDbGFzcz1cInctZnVsbFwiXG4gICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgW211bHRpc2VsZWN0XT1cImZhbHNlXCJcbiAgICAgIFtzaG93Q2xlYXJdPVwidHJ1ZVwiXG4gICAgICBwbGFjZWhvbGRlcj1cIk51bGxcIlxuICAgICAgWyhvcHRpb25zKV09XCJzdGF0dXNlc1wiXG4gICAgICBpZD1cInN0YXR1c1wiXG4gICAgICBmb3JtQ29udHJvbE5hbWU9XCJTdGF0dXNcIlxuICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgID5cbiAgICA8L3ZlcmJlbi1kcm9wLWRvd24+XG4gIDwvZGl2PlxuXG4gIDwhLS0gYnV0dG9ucyAtLT5cbiAgPGRpdiBjbGFzcz1cImZsZXgganVzdGlmeS1iZXR3ZWVuIGdhcC00IG15LTJcIj5cbiAgICA8IS0tIDx2ZXJiZW5hLWJ1dHRvblxuICAgICAgd2lkdGg9XCIxMTRweFwiXG4gICAgICBoZWlnaHQ9XCIzOXB4XCJcbiAgICAgIHRleHQ9XCJEZWxldGVcIlxuICAgICAgYmdDb2xvcj1cIiM5OTk5OTlcIlxuICAgICAgdGV4dENvbG9yPVwiIzQwNDA0MFwiXG4gICAgICBib3JkZXJSYWRpdXM9XCIxMHB4XCJcbiAgICAgIFtkaXNhYmxlXT1cImRpc2FibGVQcm9jZXNzaW5nKClcIlxuICAgID48L3ZlcmJlbmEtYnV0dG9uPiAtLT5cbiAgICBAaWYgKGN1cnJlbnREYXRhPy5kYXRhPy5Db2RlKSB7XG4gICAgICA8YSBbcm91dGVyTGlua109XCJbZGVzaWduZXJVcmwoKSwgY3VycmVudERhdGE/LmRhdGEuQ29kZV1cIiBjbGFzcz1cIm1sLWF1dG9cIj5cbiAgICAgICAgPHZlcmJlbmEtYnV0dG9uIHRleHQ9XCJEZXNpZ25lclwiIHN0eWxlVHlwZT1cInlsdy1vdXRsaW5lXCI+PC92ZXJiZW5hLWJ1dHRvbj5cbiAgICAgIDwvYT5cbiAgICB9XG4gICAgPCEtLSA8YSBbcm91dGVyTGlua109XCJbJy9kZXNpZ25lcicsIGN1cnJlbnREYXRhPy5kYXRhLkNvZGVdXCIgY2xhc3M9XCJtbC1hdXRvXCI+XG4gICAgICA8dmVyYmVuYS1idXR0b25cbiAgICAgICAgKGNsaWNrKT1cInN3aXRjaFZpZXcuZW1pdCgpXCJcbiAgICAgICAgdGV4dD1cIkRlc2lnbmVyXCJcbiAgICAgICAgc3R5bGVUeXBlPVwieWx3LW91dGxpbmVcIlxuICAgICAgPjwvdmVyYmVuYS1idXR0b24+XG4gICAgPC9hPiAtLT5cbiAgICA8dmVyYmVuYS1idXR0b25cbiAgICAgIChjbGljayk9XCJzd2l0Y2hWaWV3LmVtaXQoKVwiXG4gICAgICB0ZXh0PVwiU3dpdGNoIFRvIFRhYmxlXCJcbiAgICAgIHN0eWxlVHlwZT1cInlsdy1vdXRsaW5lXCJcbiAgICAgIGNsYXNzPVwibWwtYXV0b1wiXG4gICAgPjwvdmVyYmVuYS1idXR0b24+XG4gICAgPHZlcmJlbmEtYnV0dG9uXG4gICAgICB0eXBlPVwic3VibWl0XCJcbiAgICAgIHRleHQ9XCJTYXZlXCJcbiAgICAgIGJnQ29sb3I9XCIjRkZFNjgxXCJcbiAgICAgIHRleHRDb2xvcj1cIiM0MDQwNDBcIlxuICAgICAgYm9yZGVyUmFkaXVzPVwiMTBweFwiXG4gICAgICBwZD1cIjEwcHggMjBweFwiXG4gICAgICB3aWR0aD1cIjExNHB4XCJcbiAgICAgIGhlaWdodD1cIjM5cHhcIlxuICAgICAgW2Rpc2FibGVdPVwiZGlzYWJsZVByb2Nlc3NpbmcoKVwiXG4gICAgPjwvdmVyYmVuYS1idXR0b24+XG4gIDwvZGl2PlxuPC9mb3JtPlxuIl19