verben-workflow-ui 0.5.76 → 0.5.78
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +13 -0
- package/esm2022/src/lib/components/actors/actors.component.mjs +5 -5
- package/esm2022/src/lib/components/actors/actors.facade.mjs +3 -3
- package/esm2022/src/lib/components/actors/actors.form.component.mjs +5 -5
- package/esm2022/src/lib/components/actors/actors.module.mjs +4 -4
- package/esm2022/src/lib/components/actors/actors.service.mjs +3 -3
- package/esm2022/src/lib/components/actors/actors.state.mjs +3 -3
- package/esm2022/src/lib/components/designer/components/label-editor.component.mjs +6 -6
- package/esm2022/src/lib/components/designer/components/node-selector.component.mjs +4 -4
- package/esm2022/src/lib/components/designer/components/swimlane-label.component.mjs +3 -3
- package/esm2022/src/lib/components/designer/components/swimlane-popup.component.mjs +3 -3
- package/esm2022/src/lib/components/designer/components/wf-canvas.component.mjs +6 -6
- package/esm2022/src/lib/components/designer/components/wf-designer.component.mjs +3 -3
- package/esm2022/src/lib/components/designer/components/wf-toolbar.component.mjs +6 -6
- package/esm2022/src/lib/components/designer/services/canvas-state.service.mjs +3 -3
- package/esm2022/src/lib/components/designer/services/connection-segment-interaction.service.mjs +3 -3
- package/esm2022/src/lib/components/designer/services/connection.service.mjs +3 -3
- package/esm2022/src/lib/components/designer/services/keyboard-handler.service.mjs +3 -3
- package/esm2022/src/lib/components/designer/services/label-management.service.mjs +3 -3
- package/esm2022/src/lib/components/designer/services/node-finder.service.mjs +3 -3
- package/esm2022/src/lib/components/designer/services/node-interaction.service.mjs +3 -3
- package/esm2022/src/lib/components/designer/services/node-precondition.service.mjs +3 -3
- package/esm2022/src/lib/components/designer/services/node-selection.service.mjs +3 -3
- package/esm2022/src/lib/components/designer/services/orthogonal-router.service.mjs +3 -3
- package/esm2022/src/lib/components/designer/services/position-update.service.mjs +3 -3
- package/esm2022/src/lib/components/designer/services/rendering.service.mjs +3 -3
- package/esm2022/src/lib/components/designer/services/swimlane-management.service.mjs +3 -3
- package/esm2022/src/lib/components/designer/services/swimlane-stats.service.mjs +3 -3
- package/esm2022/src/lib/components/designer/services/viewport.service.mjs +3 -3
- package/esm2022/src/lib/components/designer/services/wf-facade.service.mjs +3 -3
- package/esm2022/src/lib/components/designer/services/wf-mapper.service.mjs +3 -3
- package/esm2022/src/lib/components/designer/services/wf-persistence.service.mjs +3 -3
- package/esm2022/src/lib/components/designer/services/wf-state.service.mjs +3 -3
- package/esm2022/src/lib/components/expiration/expiration.component.mjs +3 -3
- package/esm2022/src/lib/components/expiration/expiration.module.mjs +4 -4
- package/esm2022/src/lib/components/file-render/file-render.component.mjs +5 -5
- package/esm2022/src/lib/components/file-render/file-render.module.mjs +4 -4
- package/esm2022/src/lib/components/file-upload/file-upload.component.mjs +5 -5
- package/esm2022/src/lib/components/file-upload/file-upload.module.mjs +4 -4
- package/esm2022/src/lib/components/flowable-status/flowable-status.component.mjs +17 -10
- package/esm2022/src/lib/components/flowable-status/flowable-status.facade.mjs +3 -3
- package/esm2022/src/lib/components/flowable-status/flowable-status.form.component.mjs +5 -5
- package/esm2022/src/lib/components/flowable-status/flowable-status.module.mjs +4 -4
- package/esm2022/src/lib/components/flowable-status/flowable-status.service.mjs +3 -3
- package/esm2022/src/lib/components/flowable-status/flowable-status.state.mjs +3 -3
- package/esm2022/src/lib/components/form-control/form-control.component.mjs +5 -5
- package/esm2022/src/lib/components/form-control/form-control.module.mjs +4 -4
- package/esm2022/src/lib/components/form-group/base-table-style.mjs +6 -6
- package/esm2022/src/lib/components/form-group/form-fields/form-fields.component.mjs +5 -5
- package/esm2022/src/lib/components/form-group/form-fields/form-fields.module.mjs +4 -4
- package/esm2022/src/lib/components/form-group/form-fields/form-fields.service.mjs +3 -3
- package/esm2022/src/lib/components/form-group/form-group.component.mjs +5 -5
- package/esm2022/src/lib/components/form-group/form-group.module.mjs +4 -4
- package/esm2022/src/lib/components/form-group/form-group.service.mjs +3 -3
- package/esm2022/src/lib/components/form-response/form-response.component.mjs +5 -5
- package/esm2022/src/lib/components/form-response/form-response.module.mjs +4 -4
- package/esm2022/src/lib/components/form-response/form-response.service.mjs +3 -3
- package/esm2022/src/lib/components/form-timer/form-timer.component.mjs +5 -5
- package/esm2022/src/lib/components/form-timer/form-timer.module.mjs +4 -4
- package/esm2022/src/lib/components/forms/base-table-style.mjs +6 -6
- package/esm2022/src/lib/components/forms/forms.component.mjs +5 -5
- package/esm2022/src/lib/components/forms/forms.module.mjs +4 -4
- package/esm2022/src/lib/components/forms/forms.service.mjs +3 -3
- package/esm2022/src/lib/components/journal/journal.component.mjs +3 -3
- package/esm2022/src/lib/components/journal/journal.module.mjs +4 -4
- package/esm2022/src/lib/components/my-queue/my-queue.component.mjs +5 -5
- package/esm2022/src/lib/components/my-queue/my-queue.facade.mjs +3 -3
- package/esm2022/src/lib/components/my-queue/my-queue.module.mjs +4 -4
- package/esm2022/src/lib/components/my-queue/my-queue.service.mjs +3 -3
- package/esm2022/src/lib/components/my-queue/my-queue.state.mjs +3 -3
- package/esm2022/src/lib/components/my-queue/tasks.form.component.mjs +5 -5
- package/esm2022/src/lib/components/operation-popup/operation-popup.component.mjs +5 -5
- package/esm2022/src/lib/components/operation-popup/operation-popup.facade.mjs +3 -3
- package/esm2022/src/lib/components/operation-popup/operation-popup.service.mjs +3 -3
- package/esm2022/src/lib/components/operation-popup/operation-popup.state.mjs +3 -3
- package/esm2022/src/lib/components/stage-details/stage-details.component.mjs +5 -5
- package/esm2022/src/lib/components/stage-details/stage-details.module.mjs +4 -4
- package/esm2022/src/lib/components/task-form/task-form.component.mjs +5 -5
- package/esm2022/src/lib/components/task-form/task-form.module.mjs +4 -4
- package/esm2022/src/lib/components/task-history/task-history.component.mjs +5 -5
- package/esm2022/src/lib/components/task-history/task-history.module.mjs +4 -4
- package/esm2022/src/lib/components/task-history/task-history.service.mjs +3 -3
- package/esm2022/src/lib/components/task-notification/base-table-style.mjs +6 -6
- package/esm2022/src/lib/components/task-notification/task-notification.component.mjs +5 -5
- package/esm2022/src/lib/components/task-notification/task-notification.module.mjs +4 -4
- package/esm2022/src/lib/components/task-notification/task-notification.service.mjs +3 -3
- package/esm2022/src/lib/components/tasks/tasks.component.mjs +17 -26
- package/esm2022/src/lib/components/tasks/tasks.facade.mjs +3 -3
- package/esm2022/src/lib/components/tasks/tasks.form.component.mjs +5 -5
- package/esm2022/src/lib/components/tasks/tasks.module.mjs +4 -4
- package/esm2022/src/lib/components/tasks/tasks.service.mjs +3 -3
- package/esm2022/src/lib/components/tasks/tasks.state.mjs +3 -3
- package/esm2022/src/lib/components/wf/wf.component.mjs +3 -3
- package/esm2022/src/lib/components/wf/wf.module.mjs +4 -4
- package/esm2022/src/lib/components/wf/wf.service.mjs +3 -3
- package/esm2022/src/lib/components/workflow/table-style.mjs +6 -6
- package/esm2022/src/lib/components/workflow/workflow.component.mjs +8 -8
- package/esm2022/src/lib/components/workflow/workflow.module.mjs +4 -4
- package/esm2022/src/lib/components/workflow-designer/action-dialog/action-dialog.component.mjs +5 -5
- package/esm2022/src/lib/components/workflow-designer/actor-tags-dialog/actor-tags-dialog.component.mjs +5 -5
- package/esm2022/src/lib/components/workflow-designer/conditions-popup/conditions-popup.component.mjs +3 -3
- package/esm2022/src/lib/components/workflow-designer/decision-popup/decision-popup.component.mjs +4 -4
- package/esm2022/src/lib/components/workflow-designer/designer-canvas/designer-canvas.component.mjs +3 -3
- package/esm2022/src/lib/components/workflow-designer/designer-toolbar/designer-toolbar.component.mjs +5 -5
- package/esm2022/src/lib/components/workflow-designer/escalation-dialog/escalation-dialog.component.mjs +5 -5
- package/esm2022/src/lib/components/workflow-designer/services/connection.service.mjs +3 -3
- package/esm2022/src/lib/components/workflow-designer/services/node-management.service.mjs +3 -3
- package/esm2022/src/lib/components/workflow-designer/services/popup.service.mjs +3 -3
- package/esm2022/src/lib/components/workflow-designer/services/swimlane.service.mjs +3 -3
- package/esm2022/src/lib/components/workflow-designer/services/transformer.service.mjs +3 -3
- package/esm2022/src/lib/components/workflow-designer/stage-dialog/stage-dialog.component.mjs +5 -5
- package/esm2022/src/lib/components/workflow-designer/stage-node/stage-node.component.mjs +5 -5
- package/esm2022/src/lib/components/workflow-designer/swimlane-dialog/swimlane-dialog.component.mjs +5 -5
- package/esm2022/src/lib/components/workflow-designer/workflow-data.service.mjs +3 -3
- package/esm2022/src/lib/components/workflow-designer/workflow-designer.component.mjs +4 -4
- package/esm2022/src/lib/components/workflow-designer/workflow-designer.module.mjs +4 -4
- package/esm2022/src/lib/components/workflow-designer/workflow-designer.state.mjs +3 -3
- package/esm2022/src/lib/components/workflows/workflow-form/workflow-form.component.mjs +5 -5
- package/esm2022/src/lib/components/workflows/workflows.component.mjs +18 -9
- package/esm2022/src/lib/components/workflows/workflows.facade.mjs +3 -3
- package/esm2022/src/lib/components/workflows/workflows.module.mjs +4 -4
- package/esm2022/src/lib/components/workflows/workflows.service.mjs +3 -3
- package/esm2022/src/lib/components/workflows/workflows.state.mjs +3 -3
- package/esm2022/src/lib/pipes/async-label.pipe.mjs +3 -3
- package/esm2022/src/lib/services/environment.service.mjs +3 -3
- package/esm2022/src/lib/services/http-web-request.service.mjs +3 -3
- package/esm2022/src/lib/services/label.service.mjs +3 -3
- package/esm2022/src/lib/services/util.service.mjs +3 -3
- package/esm2022/src/lib/shared/base-table-style.mjs +6 -6
- package/esm2022/src/lib/shared/components/base-data-view.component.mjs +3 -3
- package/esm2022/src/lib/shared/shared.module.mjs +4 -4
- package/fesm2022/verben-workflow-ui-src-lib-components-actors.mjs +21 -21
- package/fesm2022/verben-workflow-ui-src-lib-components-actors.mjs.map +1 -1
- package/fesm2022/verben-workflow-ui-src-lib-components-designer.mjs +85 -85
- package/fesm2022/verben-workflow-ui-src-lib-components-designer.mjs.map +1 -1
- package/fesm2022/verben-workflow-ui-src-lib-components-expiration.mjs +7 -7
- package/fesm2022/verben-workflow-ui-src-lib-components-expiration.mjs.map +1 -1
- package/fesm2022/verben-workflow-ui-src-lib-components-file-render.mjs +8 -8
- package/fesm2022/verben-workflow-ui-src-lib-components-file-render.mjs.map +1 -1
- package/fesm2022/verben-workflow-ui-src-lib-components-file-upload.mjs +8 -8
- package/fesm2022/verben-workflow-ui-src-lib-components-file-upload.mjs.map +1 -1
- package/fesm2022/verben-workflow-ui-src-lib-components-flowable-status.mjs +33 -26
- package/fesm2022/verben-workflow-ui-src-lib-components-flowable-status.mjs.map +1 -1
- package/fesm2022/verben-workflow-ui-src-lib-components-form-control.mjs +8 -8
- package/fesm2022/verben-workflow-ui-src-lib-components-form-control.mjs.map +1 -1
- package/fesm2022/verben-workflow-ui-src-lib-components-form-group.mjs +27 -27
- package/fesm2022/verben-workflow-ui-src-lib-components-form-group.mjs.map +1 -1
- package/fesm2022/verben-workflow-ui-src-lib-components-form-response.mjs +11 -11
- package/fesm2022/verben-workflow-ui-src-lib-components-form-response.mjs.map +1 -1
- package/fesm2022/verben-workflow-ui-src-lib-components-form-timer.mjs +8 -8
- package/fesm2022/verben-workflow-ui-src-lib-components-form-timer.mjs.map +1 -1
- package/fesm2022/verben-workflow-ui-src-lib-components-forms.mjs +16 -16
- package/fesm2022/verben-workflow-ui-src-lib-components-forms.mjs.map +1 -1
- package/fesm2022/verben-workflow-ui-src-lib-components-journal.mjs +7 -7
- package/fesm2022/verben-workflow-ui-src-lib-components-my-queue.mjs +21 -21
- package/fesm2022/verben-workflow-ui-src-lib-components-my-queue.mjs.map +1 -1
- package/fesm2022/verben-workflow-ui-src-lib-components-operation-popup.mjs +13 -13
- package/fesm2022/verben-workflow-ui-src-lib-components-operation-popup.mjs.map +1 -1
- package/fesm2022/verben-workflow-ui-src-lib-components-stage-details.mjs +8 -8
- package/fesm2022/verben-workflow-ui-src-lib-components-stage-details.mjs.map +1 -1
- package/fesm2022/verben-workflow-ui-src-lib-components-task-form.mjs +8 -8
- package/fesm2022/verben-workflow-ui-src-lib-components-task-form.mjs.map +1 -1
- package/fesm2022/verben-workflow-ui-src-lib-components-task-history.mjs +11 -11
- package/fesm2022/verben-workflow-ui-src-lib-components-task-history.mjs.map +1 -1
- package/fesm2022/verben-workflow-ui-src-lib-components-task-notification.mjs +16 -16
- package/fesm2022/verben-workflow-ui-src-lib-components-task-notification.mjs.map +1 -1
- package/fesm2022/verben-workflow-ui-src-lib-components-tasks.mjs +33 -42
- package/fesm2022/verben-workflow-ui-src-lib-components-tasks.mjs.map +1 -1
- package/fesm2022/verben-workflow-ui-src-lib-components-wf.mjs +10 -10
- package/fesm2022/verben-workflow-ui-src-lib-components-workflow-designer.mjs +67 -67
- package/fesm2022/verben-workflow-ui-src-lib-components-workflow-designer.mjs.map +1 -1
- package/fesm2022/verben-workflow-ui-src-lib-components-workflow.mjs +16 -16
- package/fesm2022/verben-workflow-ui-src-lib-components-workflow.mjs.map +1 -1
- package/fesm2022/verben-workflow-ui-src-lib-components-workflows.mjs +34 -25
- package/fesm2022/verben-workflow-ui-src-lib-components-workflows.mjs.map +1 -1
- package/fesm2022/verben-workflow-ui-src-lib-pipes.mjs +3 -3
- package/fesm2022/verben-workflow-ui-src-lib-services.mjs +12 -12
- package/fesm2022/verben-workflow-ui-src-lib-shared.mjs +12 -12
- package/fesm2022/verben-workflow-ui-src-lib-shared.mjs.map +1 -1
- package/package.json +30 -30
- package/src/lib/components/workflow/workflow.component.d.ts +1 -1
- package/styles/styles.css +19 -1436
|
@@ -222,12 +222,12 @@ export class EscalationDialogComponent {
|
|
|
222
222
|
const escalation = this.escalation();
|
|
223
223
|
return escalation !== null && escalation.DataState !== 'New';
|
|
224
224
|
}
|
|
225
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
226
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.
|
|
225
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: EscalationDialogComponent, deps: [{ token: i1.FormBuilder }, { token: i2.WorkflowDataService }, { token: i3.UtilService }], target: i0.ɵɵFactoryTarget.Component });
|
|
226
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: EscalationDialogComponent, selector: "lib-escalation-dialog", inputs: { visible: { classPropertyName: "visible", publicName: "visible", isSignal: false, isRequired: false, transformFunction: null }, workflowCode: { classPropertyName: "workflowCode", publicName: "workflowCode", isSignal: true, isRequired: true, transformFunction: null }, stageCode: { classPropertyName: "stageCode", publicName: "stageCode", isSignal: true, isRequired: true, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { closed: "closed", created: "created" }, ngImport: i0, template: "<verben-dialogue [showCloseIcon]=\"true\" [dismissOutsideClick]=\"true\" [closeOnEscape]=\"true\" [size]=\"'medium'\"\n [mode]=\"'drawer'\" [disableFooter]=\"false\" [isVisible]=\"visible\" [headerTemplate]=\"headerTemplate\"\n [bodyTemplate]=\"bodyTemplate\" [footerTemplate]=\"footerTemplate\" (openModal)=\"onDialogOpen($event)\"\n (closeModal)=\"onDialogClose($event)\">\n</verben-dialogue>\n\n<ng-template #headerTemplate>\n <div class=\"flex items-center justify-between p-3 text-xs border-b-4 border-[var(--vbn-color-primary)]\">\n <button class=\"mr-4\" type=\"button\" (click)=\"onDialogClose($event)\">\n <span class=\"block w-2.5 h-2.5 border-t border-l border-[var(--vbn-color-text)]/70 transform -rotate-45\"></span>\n </button>\n </div>\n</ng-template>\n\n<ng-template #bodyTemplate>\n <div>\n <div class=\"mb-4 space-y-4\">\n <!-- <div class=\"space-y-1\">\n <label for=\"operation-action\" class=\"text-sm font-semibold text-[var(--vbn-color-text)]\">\n Escalation\n </label>\n <verben-drop-down\n id=\"operation-action\"\n styleClass=\"w-full\"\n width=\"100%\"\n [multiselect]=\"false\"\n placeholder=\"Select Operation Action\"\n [options]=\"operationActions()\"\n optionLabel=\"Name\"\n optionValue=\"Code\"\n [ngModel]=\"selectedOperationAction | async\"\n (ngModelChange)=\"selectedOperationAction.next($event)\"\n class=\"form-control\"\n ></verben-drop-down>\n </div> -->\n\n <div class=\"space-y-4\" *ngFor=\"let message of selectedMessages; let i = index\">\n <div class=\"space-y-1\">\n <label [for]=\"message + '-' + i\" class=\"text-sm font-semibold text-[var(--vbn-color-text)]\">\n Message {{ i + 1 }}\n </label>\n <verben-drop-down [id]=\"message + '-' + i\" selectKey=\"Code\" styleClass=\"w-full\" width=\"100%\"\n [multiselect]=\"false\" placeholder=\"Select Message\" [options]=\"reportSchedules()\" optionLabel=\"Name\"\n [ngModel]=\"message\" (ngModelChange)=\"onMessageSelected($event, i)\" class=\"form-control\"></verben-drop-down>\n </div>\n\n @if (message) {\n <div class=\"flex items-center gap-4\">\n <label [for]=\"'is-' + message + '-' + i + 'task-data-source'\" class=\"text-sm font-semibold text-[var(--vbn-color-text)]\">\n Is Task Data Source?\n </label>\n <verbena-switch [id]=\"'is-' + message + '-' + i + 'task-data-source'\" onText=\"Yes\" offText=\"No\"\n [onColor]=\"'var(--vbn-color-text)'\" [(ngModel)]=\"message.IsTaskDataSource\"></verbena-switch>\n </div>\n\n <div class=\"flex items-center gap-4\">\n <label [for]=\"'is-' + message + '-' + i + 'is-message-id'\" class=\"text-sm font-semibold text-[var(--vbn-color-text)]\">\n Is Message ID?\n </label>\n <verbena-switch [id]=\"'is-' + message + '-' + i + 'is-message-id'\" onText=\"Yes\" offText=\"No\"\n [onColor]=\"'var(--vbn-color-text)'\" [(ngModel)]=\"message.IsMessageId\"></verbena-switch>\n </div>\n }\n\n <div class=\"border border-primary -m-2 rounded-lg flex flex-col gap-3\" *ngIf=\"message\">\n <div class=\"space-y-3 border-b border-primary px-2 py-3\">\n <verbena-input name=\"Subject\" [(ngModel)]=\"message.Subject\" [readOnly]=\"true\" />\n <verbena-input name=\"Recipients\" [(ngModel)]=\"message.Recipients\" [readOnly]=\"true\" />\n </div>\n <lib-editor [editorConfig]=\"editorConfig\" [editorMode]=\"editorMode\"\n [(ngModel)]=\"message.PlainMessage\"></lib-editor>\n </div>\n </div>\n </div>\n </div>\n</ng-template>\n\n<ng-template #footerTemplate>\n <div class=\"flex justify-between items-center gap-8 w-full\">\n <verbena-button style=\"cursor: pointer\" type=\"button\" text=\"Add Message\" bgColor=\"var(--vbn-color-primary)\" textColor=\"var(--vbn-color-on-primary)\"\n borderRadius=\"8px\" pd=\"10px 20px\" height=\"39px\" fontWeight=\"600\" fontSize=\"12px\" svg=\"add\" [svgHeight]=\"14\"\n [svgWidth]=\"14\" [svgSize]=\"'sm'\" (click)=\"addMessage()\"></verbena-button>\n\n <div class=\"flex gap-2 items-center\">\n <verbena-button style=\"cursor: pointer\" type=\"button\" text=\"Delete\" bgColor=\"var(--vbn-color-primary)\" textColor=\"var(--vbn-color-on-primary)\"\n borderRadius=\"8px\" pd=\"10px 20px\" width=\"110px\" height=\"39px\" fontWeight=\"600\" fontSize=\"12px\" svg=\"delete\"\n [svgHeight]=\"14\" [svgWidth]=\"14\" [svgSize]=\"'sm'\" (click)=\"deleteEscalation()\"></verbena-button>\n\n <verbena-button style=\"cursor: pointer\" type=\"button\" text=\"Save\" bgColor=\"var(--vbn-color-primary)\" textColor=\"var(--vbn-color-on-primary)\"\n borderRadius=\"8px\" pd=\"10px 20px\" width=\"160px\" height=\"39px\" fontWeight=\"600\" fontSize=\"12px\" svg=\"send\"\n [svgHeight]=\"14\" [svgWidth]=\"14\" [svgSize]=\"'sm'\" (click)=\"saveMessages()\"></verbena-button>\n </div>\n </div>\n</ng-template>\n", styles: ["::ng-deep .modal-footer{display:flex;justify-content:space-between!important}::ng-deep button,button{cursor:pointer}\n"], dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.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: i5.VerbenaButtonComponent, selector: "verbena-button", inputs: ["type", "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: i5.DropDownComponent, selector: "verben-drop-down", inputs: ["options", "width", "overlayWidth", "showHorizontalLine", "horizontalLineColor", "optionLabel", "optionSubLabel", "optionValue", "placeholder", "invalidMessage", "errorPosition", "loadMoreCaption", "display", "showClear", "lazyLoad", "selectKey", "styleClass", "group", "multiselect", "filter", "avoidDuplication", "filterBy", "debounceTime", "minChar", "refPageSize", "disabled", "required", "load", "asyncLabel", "search"], outputs: ["optionsChange", "onChange", "onClick", "onClear"] }, { kind: "component", type: i6.EditorComponent, selector: "lib-editor", inputs: ["themeColor", "editorMode", "editorConfig", "content"], outputs: ["onImageEdit", "onSortEdit"] }, { kind: "component", type: i5.VerbenaInputComponent, selector: "verbena-input", inputs: ["disabled", "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: i5.VerbenaSwitchComponent, selector: "verbena-switch", inputs: ["label", "checked", "disabled", "offColor", "onColor", "onText", "offText", "width", "height", "customStyles"], outputs: ["change"] }] });
|
|
227
227
|
}
|
|
228
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
228
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: EscalationDialogComponent, decorators: [{
|
|
229
229
|
type: Component,
|
|
230
|
-
args: [{ selector: 'lib-escalation-dialog', template: "<verben-dialogue [showCloseIcon]=\"true\" [dismissOutsideClick]=\"true\" [closeOnEscape]=\"true\" [size]=\"'medium'\"\n [mode]=\"'drawer'\" [disableFooter]=\"false\" [isVisible]=\"visible\" [headerTemplate]=\"headerTemplate\"\n [bodyTemplate]=\"bodyTemplate\" [footerTemplate]=\"footerTemplate\" (openModal)=\"onDialogOpen($event)\"\n (closeModal)=\"onDialogClose($event)\">\n</verben-dialogue>\n\n<ng-template #headerTemplate>\n <div class=\"flex items-center justify-between p-3 text-xs border-b-4 border-[
|
|
230
|
+
args: [{ selector: 'lib-escalation-dialog', template: "<verben-dialogue [showCloseIcon]=\"true\" [dismissOutsideClick]=\"true\" [closeOnEscape]=\"true\" [size]=\"'medium'\"\n [mode]=\"'drawer'\" [disableFooter]=\"false\" [isVisible]=\"visible\" [headerTemplate]=\"headerTemplate\"\n [bodyTemplate]=\"bodyTemplate\" [footerTemplate]=\"footerTemplate\" (openModal)=\"onDialogOpen($event)\"\n (closeModal)=\"onDialogClose($event)\">\n</verben-dialogue>\n\n<ng-template #headerTemplate>\n <div class=\"flex items-center justify-between p-3 text-xs border-b-4 border-[var(--vbn-color-primary)]\">\n <button class=\"mr-4\" type=\"button\" (click)=\"onDialogClose($event)\">\n <span class=\"block w-2.5 h-2.5 border-t border-l border-[var(--vbn-color-text)]/70 transform -rotate-45\"></span>\n </button>\n </div>\n</ng-template>\n\n<ng-template #bodyTemplate>\n <div>\n <div class=\"mb-4 space-y-4\">\n <!-- <div class=\"space-y-1\">\n <label for=\"operation-action\" class=\"text-sm font-semibold text-[var(--vbn-color-text)]\">\n Escalation\n </label>\n <verben-drop-down\n id=\"operation-action\"\n styleClass=\"w-full\"\n width=\"100%\"\n [multiselect]=\"false\"\n placeholder=\"Select Operation Action\"\n [options]=\"operationActions()\"\n optionLabel=\"Name\"\n optionValue=\"Code\"\n [ngModel]=\"selectedOperationAction | async\"\n (ngModelChange)=\"selectedOperationAction.next($event)\"\n class=\"form-control\"\n ></verben-drop-down>\n </div> -->\n\n <div class=\"space-y-4\" *ngFor=\"let message of selectedMessages; let i = index\">\n <div class=\"space-y-1\">\n <label [for]=\"message + '-' + i\" class=\"text-sm font-semibold text-[var(--vbn-color-text)]\">\n Message {{ i + 1 }}\n </label>\n <verben-drop-down [id]=\"message + '-' + i\" selectKey=\"Code\" styleClass=\"w-full\" width=\"100%\"\n [multiselect]=\"false\" placeholder=\"Select Message\" [options]=\"reportSchedules()\" optionLabel=\"Name\"\n [ngModel]=\"message\" (ngModelChange)=\"onMessageSelected($event, i)\" class=\"form-control\"></verben-drop-down>\n </div>\n\n @if (message) {\n <div class=\"flex items-center gap-4\">\n <label [for]=\"'is-' + message + '-' + i + 'task-data-source'\" class=\"text-sm font-semibold text-[var(--vbn-color-text)]\">\n Is Task Data Source?\n </label>\n <verbena-switch [id]=\"'is-' + message + '-' + i + 'task-data-source'\" onText=\"Yes\" offText=\"No\"\n [onColor]=\"'var(--vbn-color-text)'\" [(ngModel)]=\"message.IsTaskDataSource\"></verbena-switch>\n </div>\n\n <div class=\"flex items-center gap-4\">\n <label [for]=\"'is-' + message + '-' + i + 'is-message-id'\" class=\"text-sm font-semibold text-[var(--vbn-color-text)]\">\n Is Message ID?\n </label>\n <verbena-switch [id]=\"'is-' + message + '-' + i + 'is-message-id'\" onText=\"Yes\" offText=\"No\"\n [onColor]=\"'var(--vbn-color-text)'\" [(ngModel)]=\"message.IsMessageId\"></verbena-switch>\n </div>\n }\n\n <div class=\"border border-primary -m-2 rounded-lg flex flex-col gap-3\" *ngIf=\"message\">\n <div class=\"space-y-3 border-b border-primary px-2 py-3\">\n <verbena-input name=\"Subject\" [(ngModel)]=\"message.Subject\" [readOnly]=\"true\" />\n <verbena-input name=\"Recipients\" [(ngModel)]=\"message.Recipients\" [readOnly]=\"true\" />\n </div>\n <lib-editor [editorConfig]=\"editorConfig\" [editorMode]=\"editorMode\"\n [(ngModel)]=\"message.PlainMessage\"></lib-editor>\n </div>\n </div>\n </div>\n </div>\n</ng-template>\n\n<ng-template #footerTemplate>\n <div class=\"flex justify-between items-center gap-8 w-full\">\n <verbena-button style=\"cursor: pointer\" type=\"button\" text=\"Add Message\" bgColor=\"var(--vbn-color-primary)\" textColor=\"var(--vbn-color-on-primary)\"\n borderRadius=\"8px\" pd=\"10px 20px\" height=\"39px\" fontWeight=\"600\" fontSize=\"12px\" svg=\"add\" [svgHeight]=\"14\"\n [svgWidth]=\"14\" [svgSize]=\"'sm'\" (click)=\"addMessage()\"></verbena-button>\n\n <div class=\"flex gap-2 items-center\">\n <verbena-button style=\"cursor: pointer\" type=\"button\" text=\"Delete\" bgColor=\"var(--vbn-color-primary)\" textColor=\"var(--vbn-color-on-primary)\"\n borderRadius=\"8px\" pd=\"10px 20px\" width=\"110px\" height=\"39px\" fontWeight=\"600\" fontSize=\"12px\" svg=\"delete\"\n [svgHeight]=\"14\" [svgWidth]=\"14\" [svgSize]=\"'sm'\" (click)=\"deleteEscalation()\"></verbena-button>\n\n <verbena-button style=\"cursor: pointer\" type=\"button\" text=\"Save\" bgColor=\"var(--vbn-color-primary)\" textColor=\"var(--vbn-color-on-primary)\"\n borderRadius=\"8px\" pd=\"10px 20px\" width=\"160px\" height=\"39px\" fontWeight=\"600\" fontSize=\"12px\" svg=\"send\"\n [svgHeight]=\"14\" [svgWidth]=\"14\" [svgSize]=\"'sm'\" (click)=\"saveMessages()\"></verbena-button>\n </div>\n </div>\n</ng-template>\n", styles: ["::ng-deep .modal-footer{display:flex;justify-content:space-between!important}::ng-deep button,button{cursor:pointer}\n"] }]
|
|
231
231
|
}], ctorParameters: () => [{ type: i1.FormBuilder }, { type: i2.WorkflowDataService }, { type: i3.UtilService }], propDecorators: { visible: [{
|
|
232
232
|
type: Input
|
|
233
233
|
}], closed: [{
|
|
@@ -235,4 +235,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
235
235
|
}], created: [{
|
|
236
236
|
type: Output
|
|
237
237
|
}] } });
|
|
238
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNjYWxhdGlvbi1kaWFsb2cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmVyYmVuLXdvcmtmbG93LXVpL3NyYy9saWIvY29tcG9uZW50cy93b3JrZmxvdy1kZXNpZ25lci9lc2NhbGF0aW9uLWRpYWxvZy9lc2NhbGF0aW9uLWRpYWxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92ZXJiZW4td29ya2Zsb3ctdWkvc3JjL2xpYi9jb21wb25lbnRzL3dvcmtmbG93LWRlc2lnbmVyL2VzY2FsYXRpb24tZGlhbG9nL2VzY2FsYXRpb24tZGlhbG9nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsTUFBTSxFQUNOLFlBQVksRUFDWixLQUFLLEVBQ0wsS0FBSyxFQUVMLE1BQU0sRUFDTixNQUFNLEdBRVAsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFnQixVQUFVLEVBQWUsTUFBTSxxQkFBcUIsQ0FBQztBQUM1RSxPQUFPLEVBQThCLFdBQVcsRUFBb0Msb0JBQW9CLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQzs7Ozs7Ozs7QUFTcEosTUFBTSxPQUFPLHlCQUF5QjtJQXdEMUI7SUFDQTtJQUNBO0lBekRELE9BQU8sR0FBWSxLQUFLLENBQUM7SUFDbEMsWUFBWSxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQVUsQ0FBQztJQUN4QyxTQUFTLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBVSxDQUFDO0lBQ3JDLElBQUksR0FBRyxLQUFLLEVBQWtCLENBQUM7SUFFckIsTUFBTSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7SUFDNUIsT0FBTyxHQUFHLElBQUksWUFBWSxFQUFNLENBQUM7SUFFM0MsVUFBVSxHQUFzQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFN0Qsa0JBQWtC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ekIseUJBQXlCLCtuQkN0QnRDLDYzSkE4RkE7OzRGRHhFYSx5QkFBeUI7a0JBTHJDLFNBQVM7K0JBQ0UsdUJBQXVCOzRJQUt4QixPQUFPO3NCQUFmLEtBQUs7Z0JBS0ksTUFBTTtzQkFBZixNQUFNO2dCQUNHLE9BQU87c0JBQWhCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIGVmZmVjdCxcbiAgRXZlbnRFbWl0dGVyLFxuICBpbnB1dCxcbiAgSW5wdXQsXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBzaWduYWwsXG4gIFdyaXRhYmxlU2lnbmFsLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1CdWlsZGVyIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRWRpdG9yQ29uZmlnLCBFZGl0b3JNb2RlLCBFZGl0b3JTdGF0ZSB9IGZyb20gJ3ZlcmJlbi1yZXBvcnRpbmctdWknO1xuaW1wb3J0IHsgRXNjYWxhdGlvbiwgRXNjYWxhdGlvblR5cGUsIE9iamVjdFN0YXRlLCBSZXBvcnRTY2hlZHVsZSwgVGFza05vdGlmaWNhdGlvbiwgVGFza05vdGlmaWNhdGlvblR5cGUgfSBmcm9tICd2ZXJiZW4td29ya2Zsb3ctdWkvc3JjL2xpYi9tb2RlbHMnO1xuaW1wb3J0IHsgVXRpbFNlcnZpY2UgfSBmcm9tICd2ZXJiZW4td29ya2Zsb3ctdWkvc3JjL2xpYi9zZXJ2aWNlcyc7XG5pbXBvcnQgeyBXb3JrZmxvd0RhdGFTZXJ2aWNlIH0gZnJvbSAnLi4vd29ya2Zsb3ctZGF0YS5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGliLWVzY2FsYXRpb24tZGlhbG9nJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2VzY2FsYXRpb24tZGlhbG9nLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2VzY2FsYXRpb24tZGlhbG9nLmNvbXBvbmVudC5jc3MnLFxufSlcbmV4cG9ydCBjbGFzcyBFc2NhbGF0aW9uRGlhbG9nQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgdmlzaWJsZTogYm9vbGVhbiA9IGZhbHNlO1xuICB3b3JrZmxvd0NvZGUgPSBpbnB1dC5yZXF1aXJlZDxzdHJpbmc+KCk7XG4gIHN0YWdlQ29kZSA9IGlucHV0LnJlcXVpcmVkPHN0cmluZz4oKTtcbiAgdHlwZSA9IGlucHV0PEVzY2FsYXRpb25UeXBlPigpO1xuXG4gIEBPdXRwdXQoKSBjbG9zZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBjcmVhdGVkID0gbmV3IEV2ZW50RW1pdHRlcjx7fT4oKTtcblxuICBlc2NhbGF0aW9uOiBXcml0YWJsZVNpZ25hbDxFc2NhbGF0aW9uIHwgbnVsbD4gPSBzaWduYWwobnVsbCk7XG5cbiAgLy8gZXNjYWxhdGlvbkZvcm07XG4gIHJlcG9ydFNjaGVkdWxlczogV3JpdGFibGVTaWduYWw8UmVwb3J0U2NoZWR1bGVbXT4gPSBzaWduYWwoW10pO1xuICAvLyBvcGVyYXRpb25BY3Rpb25zOiBXcml0YWJsZVNpZ25hbDxPcGVyYXRpb25BY3Rpb25bXT4gPSBzaWduYWwoW10pO1xuXG4gIC8vIHNlbGVjdGVkT3BlcmF0aW9uQWN0aW9uOiBCZWhhdmlvclN1YmplY3Q8T3BlcmF0aW9uQWN0aW9uW1wiQ29kZVwiXSB8IG51bGw+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxPcGVyYXRpb25BY3Rpb25bXCJDb2RlXCJdIHwgbnVsbD4obnVsbCk7XG5cbiAgLy8gc2VsZWN0ZWRNZXNzYWdlczogV3JpdGFibGVTaWduYWw8XG4gIC8vICAgKChSZXBvcnRTY2hlZHVsZSAmIHsgSXNUYXNrRGF0YVNvdXJjZTogYm9vbGVhbiB9KSB8IG51bGwpW11cbiAgLy8gPiA9IHNpZ25hbChbXSk7XG5cbiAgc2VsZWN0ZWRNZXNzYWdlczogKChSZXBvcnRTY2hlZHVsZSAmIHsgSXNUYXNrRGF0YVNvdXJjZTogYm9vbGVhbjsgSXNNZXNzYWdlSWQ6IGJvb2xlYW47IH0pIHwgbnVsbClbXSA9IFtdO1xuXG4gIGVkaXRvck1vZGU6IEVkaXRvck1vZGUgPSBFZGl0b3JNb2RlLkRlc2lnbmVyO1xuICBlZGl0b3JDb25maWc6IEVkaXRvckNvbmZpZyA9IHtcbiAgICBlZGl0YWJsZTogdHJ1ZSxcbiAgICBoZWlnaHQ6ICcnLFxuICAgIHdpZHRoOiAnJyxcbiAgICBzaG93VG9vbGJhcjogdHJ1ZSxcbiAgICBtZW51SXRlbXM6IFtcbiAgICAgIHtcbiAgICAgICAgTGFiZWw6ICdUb2dnbGVWaWV3JyxcbiAgICAgICAgSWNvbjogJ2NvZGUtdG9nZ2xlJyxcbiAgICAgICAgSWNvbldpZHRoOiAyMCxcbiAgICAgICAgSWNvbkhlaWdodDogMjAsXG4gICAgICAgIElzU3Ryb2tlOiBmYWxzZSxcbiAgICAgICAgR3JvdXBCeTogJ2xvY2FsJyxcbiAgICAgICAgT25DbGljazogKGV2ZW50OiBFZGl0b3JTdGF0ZSB8IHVuZGVmaW5lZCkgPT4ge1xuICAgICAgICAgIHRoaXMuZWRpdG9yTW9kZSA9XG4gICAgICAgICAgICB0aGlzLmVkaXRvck1vZGUgPT0gRWRpdG9yTW9kZS5EZXNpZ25lclxuICAgICAgICAgICAgICA/IEVkaXRvck1vZGUuQ29kZVxuICAgICAgICAgICAgICA6IEVkaXRvck1vZGUuRGVzaWduZXI7XG4gICAgICAgIH0sXG4gICAgICAgIElzRGlzYWJsZWQ6IChldmVudDogRWRpdG9yU3RhdGUgfCB1bmRlZmluZWQpID0+IHtcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH0sXG4gICAgICAgIElzRW5hYmxlZDogKGV2ZW50OiBFZGl0b3JTdGF0ZSB8IHVuZGVmaW5lZCkgPT4ge1xuICAgICAgICAgIHJldHVybiB0aGlzLmVkaXRvck1vZGUgPT0gRWRpdG9yTW9kZS5Db2RlO1xuICAgICAgICB9LFxuICAgICAgfSxcbiAgICBdLFxuICB9O1xuXG4gIC8vIElzVGFza0RhdGFTb3VyY2U6IFdyaXRhYmxlU2lnbmFsPGJvb2xlYW5bXT4gPSBzaWduYWwoW10pO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyLFxuICAgIHByaXZhdGUgZGF0YVNlcnZpY2U6IFdvcmtmbG93RGF0YVNlcnZpY2UsXG4gICAgcHJpdmF0ZSB1dGlsU2VydmljZTogVXRpbFNlcnZpY2VcbiAgKSB7XG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIGNvbnN0IHN0YWdlQ29kZSA9IHRoaXMuc3RhZ2VDb2RlKCk7XG4gICAgICBjb25zdCB3b3JrZmxvd0NvZGUgPSB0aGlzLndvcmtmbG93Q29kZSgpO1xuICAgICAgY29uc3QgdHlwZSA9IHRoaXMudHlwZSgpO1xuICAgICAgY29uc29sZS5sb2coJ1N0YWdlIGNvZGUgY2hhbmdlZDonLCBzdGFnZUNvZGUpO1xuICAgICAgaWYgKHdvcmtmbG93Q29kZSAmJiBzdGFnZUNvZGUgJiYgdHlwZSkge1xuICAgICAgICAvLyB0aGlzLmxvYWRFc2NhbGF0aW9uKHN0YWdlQ29kZSk7XG4gICAgICAgIHRoaXMuc2VhcmNoRXNjYWxhdGlvbih3b3JrZmxvd0NvZGUsIHN0YWdlQ29kZSwgdHlwZSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgY29uc3QgZXNjYWxhdGlvbiA9IHRoaXMuZXNjYWxhdGlvbigpO1xuICAgICAgY29uc3QgcmVwb3J0U2NoZWR1bGVzID0gdGhpcy5yZXBvcnRTY2hlZHVsZXMoKTtcblxuICAgICAgaWYgKGVzY2FsYXRpb24gJiYgcmVwb3J0U2NoZWR1bGVzKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRNZXNzYWdlcyA9IGVzY2FsYXRpb24uRnVsbE1lc3NhZ2VzLm1hcCgoeyBNZXNzYWdlLCBJc1Rhc2tEYXRhU291cmNlLCBJc01lc3NhZ2VJZCB9KSA9PiB7XG4gICAgICAgICAgY29uc3QgZm91bmQgPSByZXBvcnRTY2hlZHVsZXMuZmluZCgocnMpID0+IHJzLkNvZGUgPT09IE1lc3NhZ2UpO1xuICAgICAgICAgIHJldHVybiBmb3VuZCA/IHsgLi4uZm91bmQsIElzVGFza0RhdGFTb3VyY2UsIElzTWVzc2FnZUlkIH0gOiBudWxsO1xuICAgICAgICB9KTtcbiAgICAgICAgLy8gdGhpcy5zZWxlY3RlZE9wZXJhdGlvbkFjdGlvbi5uZXh0KGVzY2FsYXRpb24uT3BlcmF0aW9uQWN0aW9uID8/IG51bGwpO1xuICAgICAgICAvLyBjb25zb2xlLmxvZyhcIlNFVFRJTkcgT1BcIiwgdGhpcy5zZWxlY3RlZE9wZXJhdGlvbkFjdGlvbik7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICAvLyB0aGlzLmVzY2FsYXRpb25Gb3JtID0gdGhpcy5mYi5ncm91cCh7XG4gICAgLy8gICBNZXNzYWdlczogdGhpcy5mYi5hcnJheShbXSksXG4gICAgLy8gfSk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmxvYWRSZXBvcnRTY2hlZHVsZXMoKTtcbiAgICAvLyB0aGlzLmxvYWRPcGVyYXRpb25BY3Rpb25zKCk7XG5cbiAgICBpZiAodGhpcy5zZWxlY3RlZE1lc3NhZ2VzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhpcy5hZGRNZXNzYWdlKCk7XG4gICAgfVxuXG4gICAgY29uc29sZS5sb2coXG4gICAgICAnRXNjYWxhdGlvbkRpYWxvZ0NvbXBvbmVudCBpbml0aWFsaXplZCB3aXRoIHN0YWdlQ29kZTonLFxuICAgICAgdGhpcy5zdGFnZUNvZGVcbiAgICApO1xuICAgIC8vIGNvbnNvbGUubG9nKCdFc2NhbGF0aW9uRGlhbG9nQ29tcG9uZW50IHR5cGU6JywgdGhpcy50eXBlKTtcbiAgfVxuXG4gIC8vIGdldCBtZXNzYWdlcygpIHtcbiAgLy8gICByZXR1cm4gdGhpcy5lc2NhbGF0aW9uRm9ybS5jb250cm9sc1snTWVzc2FnZXMnXSBhcyBGb3JtQXJyYXk7XG4gIC8vIH1cblxuICBhZGRNZXNzYWdlKCkge1xuICAgIHRoaXMuc2VsZWN0ZWRNZXNzYWdlcyA9IHRoaXMuc2VsZWN0ZWRNZXNzYWdlcy5jb25jYXQoW251bGxdKTtcbiAgfVxuXG4gIGRlbGV0ZU1lc3NhZ2UobGVzc29uSW5kZXg6IG51bWJlcikge1xuICAgIHRoaXMuc2VsZWN0ZWRNZXNzYWdlcyA9IHRoaXMuc2VsZWN0ZWRNZXNzYWdlcy5zcGxpY2UobGVzc29uSW5kZXgsIDEpO1xuICB9XG5cbiAgb25NZXNzYWdlU2VsZWN0ZWQocmVwb3J0U2NoZWR1bGU6IFJlcG9ydFNjaGVkdWxlLCBpbmRleDogbnVtYmVyKSB7XG4gICAgY29uc29sZS5sb2coJ1NlbGVjdGVkIG1lc3NhZ2U6JywgcmVwb3J0U2NoZWR1bGUsICdhdCBpbmRleDonLCBpbmRleCk7XG4gICAgdGhpcy5zZWxlY3RlZE1lc3NhZ2VzID0gdGhpcy5zZWxlY3RlZE1lc3NhZ2VzLm1hcCgobXNnLCBpKSA9PiB7XG4gICAgICBpZiAoaSA9PT0gaW5kZXgpIHtcbiAgICAgICAgcmV0dXJuIHsgLi4ucmVwb3J0U2NoZWR1bGUsIElzVGFza0RhdGFTb3VyY2U6IGZhbHNlLCBJc01lc3NhZ2VJZDogdHJ1ZSB9O1xuICAgICAgfVxuICAgICAgcmV0dXJuIG1zZztcbiAgICB9KTtcbiAgfVxuXG4gIGlzVmFsaWRTZWxlY3Rpb24oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWRNZXNzYWdlcy5ldmVyeSgobXNnKSA9PiAhIW1zZyk7XG4gIH1cblxuICBhc3luYyBzYXZlTWVzc2FnZXMoKSB7XG4gICAgY29uc29sZS5sb2codGhpcy5zZWxlY3RlZE1lc3NhZ2VzKTtcbiAgICBjb25zdCB0YXNrTm90aWZpY2F0aW9uczogVGFza05vdGlmaWNhdGlvbltdID0gdGhpcy5zZWxlY3RlZE1lc3NhZ2VzXG4gICAgICAuZmlsdGVyKChtc2cpID0+ICEhbXNnKVxuICAgICAgLm1hcCgobXNnKSA9PiAoe1xuICAgICAgICBJZDogJycsXG4gICAgICAgIENvZGU6ICcnLFxuICAgICAgICBUZW5hbnRJZDogJycsXG4gICAgICAgIE1lc3NhZ2U6IG1zZy5Db2RlLFxuICAgICAgICBOYW1lOiBtc2cuTmFtZSxcbiAgICAgICAgU3ViamVjdDogbXNnLlN1YmplY3QsXG4gICAgICAgIFNlbmRlckNvbmZpZzogbXNnLk1lc3NhZ2VDb25maWcsXG4gICAgICAgIE1lZGl1bTogbXNnLk1lZGl1bSxcbiAgICAgICAgTm90aWZpY2F0aW9uVHlwZTogVGFza05vdGlmaWNhdGlvblR5cGUuRXNjYWxhdGlvbixcbiAgICAgICAgSXNNZXNzYWdlSWQ6IG1zZy5Jc01lc3NhZ2VJZCxcbiAgICAgICAgSXNUYXNrRGF0YVNvdXJjZTogbXNnLklzVGFza0RhdGFTb3VyY2UsXG4gICAgICAgIE1lc3NhZ2VEYXRhU291cmNlOiAhbXNnLklzVGFza0RhdGFTb3VyY2UgPyBtc2cuUmVwb3J0RGF0YVNvdXJjZSA6ICcnLFxuICAgICAgICBEYXRhU3RhdGU6IE9iamVjdFN0YXRlLk5ldyxcbiAgICAgICAgaWQ6ICcnLFxuICAgICAgICBTZXJ2aWNlTmFtZTogJycsXG4gICAgICAgIENyZWF0ZWRBdDogbmV3IERhdGUoKSxcbiAgICAgICAgVXBkYXRlZEF0OiBuZXcgRGF0ZSgpLFxuICAgICAgfSkpO1xuXG4gICAgLy8gaWYgKHRhc2tOb3RpZmljYXRpb25zLmxlbmd0aCkge1xuICAgIC8vIHRoaXMuY3JlYXRlZC5lbWl0KHRhc2tOb3RpZmljYXRpb25zKTtcbiAgICBjb25zb2xlLmxvZyh0YXNrTm90aWZpY2F0aW9ucyk7XG4gICAgdGhpcy5vbkRpYWxvZ0Nsb3NlKG51bGwpO1xuICAgIGNvbnN0IGRhdGE6IFBhcnRpYWw8RXNjYWxhdGlvbj4gPSB7XG4gICAgICAuLi4odGhpcy5lc2NhbGF0aW9uKCkgPz8ge1xuICAgICAgICBJZDogJycsXG4gICAgICAgIENvZGU6ICcnLFxuICAgICAgICBUZW5hbnRJZDogJycsXG4gICAgICAgIFdvcmtmbG93OiB0aGlzLndvcmtmbG93Q29kZSgpLFxuICAgICAgICBTdGFnZTogdGhpcy5zdGFnZUNvZGUoKSxcbiAgICAgICAgVHlwZTogdGhpcy50eXBlKCksXG4gICAgICAgIEV4cGlyYXRpb25XYXJuaW5nOiAwLFxuICAgICAgICBEdXJhdGlvbjogMCxcbiAgICAgICAgTm90aWZ5QWZ0ZXI6IDAsXG4gICAgICAgIFBvc2l0aW9uOiAxLFxuICAgICAgICBEYXRhU3RhdGU6IE9iamVjdFN0YXRlLk5ldyxcbiAgICAgIH0pLFxuICAgICAgLy8gT3BlcmF0aW9uQWN0aW9uOiB0aGlzLnNlbGVjdGVkT3BlcmF0aW9uQWN0aW9uLmdldFZhbHVlKCksXG4gICAgICBNZXNzYWdlczogdGFza05vdGlmaWNhdGlvbnMubWFwKCh7IENvZGUgfSkgPT4gQ29kZSksXG4gICAgICBGdWxsTWVzc2FnZXM6IHRhc2tOb3RpZmljYXRpb25zLFxuICAgIH07XG4gICAgY29uc29sZS5sb2coXCJTYXZpbmcgZXNjYWxhdGlvbiBkYXRhOlwiLCBkYXRhKTtcbiAgICB0aGlzLmRhdGFTZXJ2aWNlLnNhdmVFc2NhbGF0aW9ucyhbZGF0YV0pLnRoZW4oKGRhdGEpID0+IHtcbiAgICAgIGNvbnNvbGUubG9nKFwiRXNjYWxhdGlvbiBzYXZlZDpcIiwgZGF0YSk7XG4gICAgICB0aGlzLmVzY2FsYXRpb24uc2V0KGRhdGE/LlswXSA/PyBudWxsKTtcbiAgICAgIHRoaXMudXRpbFNlcnZpY2Uuc2hvd1N1Y2Nlc3MoJ0VzY2FsYXRpb24gc2F2ZWQgc3VjY2Vzc2Z1bGx5Jyk7XG4gICAgICB0aGlzLm9uRGlhbG9nQ2xvc2UobnVsbCk7XG4gICAgfSk7XG4gICAgLy8gfVxuICB9XG5cbiAgZGVsZXRlRXNjYWxhdGlvbigpIHtcbiAgICBjb25zdCBlc2NhbGF0aW9uID0gdGhpcy5lc2NhbGF0aW9uKCk7XG4gICAgaWYgKGVzY2FsYXRpb24pIHtcbiAgICAgIHRoaXMuZGF0YVNlcnZpY2UuZGVsZXRlRXNjYWxhdGlvbnMoW2VzY2FsYXRpb24uQ29kZV0pLnRoZW4oKGRhdGEpID0+IHtcbiAgICAgICAgY29uc29sZS5sb2coXCJFc2NhbGF0aW9uIGRlbGV0ZWQ6XCIsIGRhdGEpO1xuICAgICAgICB0aGlzLmVzY2FsYXRpb24uc2V0KG51bGwpO1xuICAgICAgICB0aGlzLm9uRGlhbG9nQ2xvc2UobnVsbCk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGxvYWRFc2NhbGF0aW9uKHN0YWdlQ29kZTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5kYXRhU2VydmljZS5nZXRFc2NhbGF0aW9uV2l0aFBhcmFtKHN0YWdlQ29kZSkudGhlbigoZGF0YSkgPT4ge1xuICAgICAgdGhpcy5lc2NhbGF0aW9uLnNldChkYXRhLlJlc3VsdFswXSA/PyBudWxsKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgc2VhcmNoRXNjYWxhdGlvbihcbiAgICBXb3JrZmxvdzogc3RyaW5nLFxuICAgIFN0YWdlOiBzdHJpbmcsXG4gICAgVHlwZTogRXNjYWxhdGlvblR5cGVcbiAgKTogdm9pZCB7XG4gICAgdGhpcy5kYXRhU2VydmljZVxuICAgICAgLnNlYXJjaEVzY2FsYXRpb25XaXRoUGFyYW0oe1xuICAgICAgICBXb3JrZmxvdyxcbiAgICAgICAgU3RhZ2UsXG4gICAgICAgIFR5cGUsXG4gICAgICB9KVxuICAgICAgLnRoZW4oKGRhdGEpID0+IHtcbiAgICAgICAgdGhpcy5lc2NhbGF0aW9uLnNldChkYXRhLlJlc3VsdFswXSA/PyBudWxsKTtcbiAgICAgICAgY29uc29sZS5sb2coXCJFc2NhbGF0aW9uIGxvYWRlZDpcIiwgdGhpcy5lc2NhbGF0aW9uKCkpO1xuICAgICAgICAvLyB0aGlzLnNlbGVjdGVkT3BlcmF0aW9uQWN0aW9uLm5leHQoZGF0YS5SZXN1bHRbMF0/Lk9wZXJhdGlvbkFjdGlvbiA/PyBudWxsKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBsb2FkUmVwb3J0U2NoZWR1bGVzKCk6IHZvaWQge1xuICAgIHRoaXMuZGF0YVNlcnZpY2UuZ2V0UmVwb3J0U2NoZWR1bGVzKCkudGhlbigoZGF0YSkgPT4ge1xuICAgICAgdGhpcy5yZXBvcnRTY2hlZHVsZXMuc2V0KGRhdGEuUmVzdWx0KTtcbiAgICB9KTtcbiAgfVxuXG4gIC8vIHByaXZhdGUgbG9hZE9wZXJhdGlvbkFjdGlvbnMoKTogdm9pZCB7XG4gIC8vICAgdGhpcy5kYXRhU2VydmljZS5nZXRPcGVyYXRpb25BY3Rpb25zKCkudGhlbigoZGF0YSkgPT4ge1xuICAvLyAgICAgdGhpcy5vcGVyYXRpb25BY3Rpb25zLnNldChkYXRhLlJlc3VsdCk7XG4gIC8vICAgfSk7XG4gIC8vIH1cblxuICBvbkRpYWxvZ0Nsb3NlKGV2ZW50RGF0YTogYW55KSB7XG4gICAgY29uc29sZS5sb2coJ0RpYWxvZyBjbG9zZWQsIHJlY2VpdmVkIGRhdGE6JywgZXZlbnREYXRhKTtcbiAgICB0aGlzLmVzY2FsYXRpb24uc2V0KG51bGwpO1xuICAgIHRoaXMuc2VsZWN0ZWRNZXNzYWdlcyA9IFtdO1xuICAgIHRoaXMuY2xvc2VkLmVtaXQoKTtcbiAgfVxuXG4gIG9uRGlhbG9nT3BlbihldmVudERhdGE6IGFueSkge1xuICAgIGNvbnNvbGUubG9nKCdEaWFsb2cgb3BlbmVkLCByZWNlaXZlZCBkYXRhOicsIGV2ZW50RGF0YSk7XG4gIH1cblxuICBpc05vdE5ldygpOiBib29sZWFuIHtcbiAgICBjb25zdCBlc2NhbGF0aW9uID0gdGhpcy5lc2NhbGF0aW9uKCk7XG4gICAgcmV0dXJuIGVzY2FsYXRpb24gIT09IG51bGwgJiYgZXNjYWxhdGlvbi5EYXRhU3RhdGUgIT09ICdOZXcnO1xuICB9XG59XG4iLCI8dmVyYmVuLWRpYWxvZ3VlIFtzaG93Q2xvc2VJY29uXT1cInRydWVcIiBbZGlzbWlzc091dHNpZGVDbGlja109XCJ0cnVlXCIgW2Nsb3NlT25Fc2NhcGVdPVwidHJ1ZVwiIFtzaXplXT1cIidtZWRpdW0nXCJcbiAgW21vZGVdPVwiJ2RyYXdlcidcIiBbZGlzYWJsZUZvb3Rlcl09XCJmYWxzZVwiIFtpc1Zpc2libGVdPVwidmlzaWJsZVwiIFtoZWFkZXJUZW1wbGF0ZV09XCJoZWFkZXJUZW1wbGF0ZVwiXG4gIFtib2R5VGVtcGxhdGVdPVwiYm9keVRlbXBsYXRlXCIgW2Zvb3RlclRlbXBsYXRlXT1cImZvb3RlclRlbXBsYXRlXCIgKG9wZW5Nb2RhbCk9XCJvbkRpYWxvZ09wZW4oJGV2ZW50KVwiXG4gIChjbG9zZU1vZGFsKT1cIm9uRGlhbG9nQ2xvc2UoJGV2ZW50KVwiPlxuPC92ZXJiZW4tZGlhbG9ndWU+XG5cbjxuZy10ZW1wbGF0ZSAjaGVhZGVyVGVtcGxhdGU+XG4gIDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW4gcC0zIHRleHQteHMgYm9yZGVyLWItNCBib3JkZXItWyNGRkU2ODFdXCI+XG4gICAgPGJ1dHRvbiBjbGFzcz1cIm1yLTRcIiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cIm9uRGlhbG9nQ2xvc2UoJGV2ZW50KVwiPlxuICAgICAgPHNwYW4gY2xhc3M9XCJibG9jayB3LTIuNSBoLTIuNSBib3JkZXItdCBib3JkZXItbCBib3JkZXItWyMzRTNFM0VdLzcwIHRyYW5zZm9ybSAtcm90YXRlLTQ1XCI+PC9zcGFuPlxuICAgIDwvYnV0dG9uPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjYm9keVRlbXBsYXRlPlxuICA8ZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJtYi00IHNwYWNlLXktNFwiPlxuICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwic3BhY2UteS0xXCI+XG4gICAgICAgIDxsYWJlbCBmb3I9XCJvcGVyYXRpb24tYWN0aW9uXCIgY2xhc3M9XCJ0ZXh0LXNtIGZvbnQtc2VtaWJvbGQgdGV4dC1bIzNFM0UzRV1cIj5cbiAgICAgICAgICBFc2NhbGF0aW9uXG4gICAgICAgIDwvbGFiZWw+XG4gICAgICAgIDx2ZXJiZW4tZHJvcC1kb3duXG4gICAgICAgICAgICBpZD1cIm9wZXJhdGlvbi1hY3Rpb25cIlxuICAgICAgICAgICAgc3R5bGVDbGFzcz1cInctZnVsbFwiXG4gICAgICAgICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgICAgICAgW211bHRpc2VsZWN0XT1cImZhbHNlXCJcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiU2VsZWN0IE9wZXJhdGlvbiBBY3Rpb25cIlxuICAgICAgICAgICAgW29wdGlvbnNdPVwib3BlcmF0aW9uQWN0aW9ucygpXCJcbiAgICAgICAgICAgIG9wdGlvbkxhYmVsPVwiTmFtZVwiXG4gICAgICAgICAgICBvcHRpb25WYWx1ZT1cIkNvZGVcIlxuICAgICAgICAgICAgW25nTW9kZWxdPVwic2VsZWN0ZWRPcGVyYXRpb25BY3Rpb24gfCBhc3luY1wiXG4gICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJzZWxlY3RlZE9wZXJhdGlvbkFjdGlvbi5uZXh0KCRldmVudClcIlxuICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgICAgID48L3ZlcmJlbi1kcm9wLWRvd24+XG4gICAgICA8L2Rpdj4gLS0+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJzcGFjZS15LTRcIiAqbmdGb3I9XCJsZXQgbWVzc2FnZSBvZiBzZWxlY3RlZE1lc3NhZ2VzOyBsZXQgaSA9IGluZGV4XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzcGFjZS15LTFcIj5cbiAgICAgICAgICA8bGFiZWwgW2Zvcl09XCJtZXNzYWdlICsgJy0nICsgaVwiIGNsYXNzPVwidGV4dC1zbSBmb250LXNlbWlib2xkIHRleHQtWyMzRTNFM0VdXCI+XG4gICAgICAgICAgICBNZXNzYWdlIHt7IGkgKyAxIH19XG4gICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICA8dmVyYmVuLWRyb3AtZG93biBbaWRdPVwibWVzc2FnZSArICctJyArIGlcIiBzZWxlY3RLZXk9XCJDb2RlXCIgc3R5bGVDbGFzcz1cInctZnVsbFwiIHdpZHRoPVwiMTAwJVwiXG4gICAgICAgICAgICBbbXVsdGlzZWxlY3RdPVwiZmFsc2VcIiBwbGFjZWhvbGRlcj1cIlNlbGVjdCBNZXNzYWdlXCIgW29wdGlvbnNdPVwicmVwb3J0U2NoZWR1bGVzKClcIiBvcHRpb25MYWJlbD1cIk5hbWVcIlxuICAgICAgICAgICAgW25nTW9kZWxdPVwibWVzc2FnZVwiIChuZ01vZGVsQ2hhbmdlKT1cIm9uTWVzc2FnZVNlbGVjdGVkKCRldmVudCwgaSlcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiPjwvdmVyYmVuLWRyb3AtZG93bj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgQGlmIChtZXNzYWdlKSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtNFwiPlxuICAgICAgICAgIDxsYWJlbCBbZm9yXT1cIidpcy0nICsgbWVzc2FnZSArICctJyArIGkgKyAndGFzay1kYXRhLXNvdXJjZSdcIiBjbGFzcz1cInRleHQtc20gZm9udC1zZW1pYm9sZCB0ZXh0LVsjM0UzRTNFXVwiPlxuICAgICAgICAgICAgSXMgVGFzayBEYXRhIFNvdXJjZT9cbiAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgIDx2ZXJiZW5hLXN3aXRjaCBbaWRdPVwiJ2lzLScgKyBtZXNzYWdlICsgJy0nICsgaSArICd0YXNrLWRhdGEtc291cmNlJ1wiIG9uVGV4dD1cIlllc1wiIG9mZlRleHQ9XCJOb1wiXG4gICAgICAgICAgICBbb25Db2xvcl09XCInIzFBMjM3RSdcIiBbKG5nTW9kZWwpXT1cIm1lc3NhZ2UuSXNUYXNrRGF0YVNvdXJjZVwiPjwvdmVyYmVuYS1zd2l0Y2g+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtNFwiPlxuICAgICAgICAgIDxsYWJlbCBbZm9yXT1cIidpcy0nICsgbWVzc2FnZSArICctJyArIGkgKyAnaXMtbWVzc2FnZS1pZCdcIiBjbGFzcz1cInRleHQtc20gZm9udC1zZW1pYm9sZCB0ZXh0LVsjM0UzRTNFXVwiPlxuICAgICAgICAgICAgSXMgTWVzc2FnZSBJRD9cbiAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgIDx2ZXJiZW5hLXN3aXRjaCBbaWRdPVwiJ2lzLScgKyBtZXNzYWdlICsgJy0nICsgaSArICdpcy1tZXNzYWdlLWlkJ1wiIG9uVGV4dD1cIlllc1wiIG9mZlRleHQ9XCJOb1wiXG4gICAgICAgICAgICBbb25Db2xvcl09XCInIzFBMjM3RSdcIiBbKG5nTW9kZWwpXT1cIm1lc3NhZ2UuSXNNZXNzYWdlSWRcIj48L3ZlcmJlbmEtc3dpdGNoPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJib3JkZXIgYm9yZGVyLXByaW1hcnkgLW0tMiByb3VuZGVkLWxnIGZsZXggZmxleC1jb2wgZ2FwLTNcIiAqbmdJZj1cIm1lc3NhZ2VcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic3BhY2UteS0zIGJvcmRlci1iIGJvcmRlci1wcmltYXJ5IHB4LTIgcHktM1wiPlxuICAgICAgICAgICAgPHZlcmJlbmEtaW5wdXQgbmFtZT1cIlN1YmplY3RcIiBbKG5nTW9kZWwpXT1cIm1lc3NhZ2UuU3ViamVjdFwiIFtyZWFkT25seV09XCJ0cnVlXCIgLz5cbiAgICAgICAgICAgIDx2ZXJiZW5hLWlucHV0IG5hbWU9XCJSZWNpcGllbnRzXCIgWyhuZ01vZGVsKV09XCJtZXNzYWdlLlJlY2lwaWVudHNcIiBbcmVhZE9ubHldPVwidHJ1ZVwiIC8+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGxpYi1lZGl0b3IgW2VkaXRvckNvbmZpZ109XCJlZGl0b3JDb25maWdcIiBbZWRpdG9yTW9kZV09XCJlZGl0b3JNb2RlXCJcbiAgICAgICAgICAgIFsobmdNb2RlbCldPVwibWVzc2FnZS5QbGFpbk1lc3NhZ2VcIj48L2xpYi1lZGl0b3I+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNmb290ZXJUZW1wbGF0ZT5cbiAgPGRpdiBjbGFzcz1cImZsZXgganVzdGlmeS1iZXR3ZWVuIGl0ZW1zLWNlbnRlciBnYXAtOCB3LWZ1bGxcIj5cbiAgICA8dmVyYmVuYS1idXR0b24gc3R5bGU9XCJjdXJzb3I6IHBvaW50ZXJcIiB0eXBlPVwiYnV0dG9uXCIgdGV4dD1cIkFkZCBNZXNzYWdlXCIgYmdDb2xvcj1cIiNGRkU2ODFcIiB0ZXh0Q29sb3I9XCIjNDA0MDQwXCJcbiAgICAgIGJvcmRlclJhZGl1cz1cIjhweFwiIHBkPVwiMTBweCAyMHB4XCIgaGVpZ2h0PVwiMzlweFwiIGZvbnRXZWlnaHQ9XCI2MDBcIiBmb250U2l6ZT1cIjEycHhcIiBzdmc9XCJhZGRcIiBbc3ZnSGVpZ2h0XT1cIjE0XCJcbiAgICAgIFtzdmdXaWR0aF09XCIxNFwiIFtzdmdTaXplXT1cIidzbSdcIiAoY2xpY2spPVwiYWRkTWVzc2FnZSgpXCI+PC92ZXJiZW5hLWJ1dHRvbj5cblxuICAgIDxkaXYgY2xhc3M9XCJmbGV4IGdhcC0yIGl0ZW1zLWNlbnRlclwiPlxuICAgICAgPHZlcmJlbmEtYnV0dG9uIHN0eWxlPVwiY3Vyc29yOiBwb2ludGVyXCIgdHlwZT1cImJ1dHRvblwiIHRleHQ9XCJEZWxldGVcIiBiZ0NvbG9yPVwiI0ZGRTY4MVwiIHRleHRDb2xvcj1cIiM0MDQwNDBcIlxuICAgICAgICBib3JkZXJSYWRpdXM9XCI4cHhcIiBwZD1cIjEwcHggMjBweFwiIHdpZHRoPVwiMTEwcHhcIiBoZWlnaHQ9XCIzOXB4XCIgZm9udFdlaWdodD1cIjYwMFwiIGZvbnRTaXplPVwiMTJweFwiIHN2Zz1cImRlbGV0ZVwiXG4gICAgICAgIFtzdmdIZWlnaHRdPVwiMTRcIiBbc3ZnV2lkdGhdPVwiMTRcIiBbc3ZnU2l6ZV09XCInc20nXCIgKGNsaWNrKT1cImRlbGV0ZUVzY2FsYXRpb24oKVwiPjwvdmVyYmVuYS1idXR0b24+XG5cbiAgICAgIDx2ZXJiZW5hLWJ1dHRvbiBzdHlsZT1cImN1cnNvcjogcG9pbnRlclwiIHR5cGU9XCJidXR0b25cIiB0ZXh0PVwiU2F2ZVwiIGJnQ29sb3I9XCIjRkZFNjgxXCIgdGV4dENvbG9yPVwiIzQwNDA0MFwiXG4gICAgICAgIGJvcmRlclJhZGl1cz1cIjhweFwiIHBkPVwiMTBweCAyMHB4XCIgd2lkdGg9XCIxNjBweFwiIGhlaWdodD1cIjM5cHhcIiBmb250V2VpZ2h0PVwiNjAwXCIgZm9udFNpemU9XCIxMnB4XCIgc3ZnPVwic2VuZFwiXG4gICAgICAgIFtzdmdIZWlnaHRdPVwiMTRcIiBbc3ZnV2lkdGhdPVwiMTRcIiBbc3ZnU2l6ZV09XCInc20nXCIgKGNsaWNrKT1cInNhdmVNZXNzYWdlcygpXCI+PC92ZXJiZW5hLWJ1dHRvbj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
238
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNjYWxhdGlvbi1kaWFsb2cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmVyYmVuLXdvcmtmbG93LXVpL3NyYy9saWIvY29tcG9uZW50cy93b3JrZmxvdy1kZXNpZ25lci9lc2NhbGF0aW9uLWRpYWxvZy9lc2NhbGF0aW9uLWRpYWxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92ZXJiZW4td29ya2Zsb3ctdWkvc3JjL2xpYi9jb21wb25lbnRzL3dvcmtmbG93LWRlc2lnbmVyL2VzY2FsYXRpb24tZGlhbG9nL2VzY2FsYXRpb24tZGlhbG9nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsTUFBTSxFQUNOLFlBQVksRUFDWixLQUFLLEVBQ0wsS0FBSyxFQUVMLE1BQU0sRUFDTixNQUFNLEdBRVAsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFnQixVQUFVLEVBQWUsTUFBTSxxQkFBcUIsQ0FBQztBQUM1RSxPQUFPLEVBQThCLFdBQVcsRUFBb0Msb0JBQW9CLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQzs7Ozs7Ozs7QUFTcEosTUFBTSxPQUFPLHlCQUF5QjtJQXdEMUI7SUFDQTtJQUNBO0lBekRELE9BQU8sR0FBWSxLQUFLLENBQUM7SUFDbEMsWUFBWSxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQVUsQ0FBQztJQUN4QyxTQUFTLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBVSxDQUFDO0lBQ3JDLElBQUksR0FBRyxLQUFLLEVBQWtCLENBQUM7SUFFckIsTUFBTSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7SUFDNUIsT0FBTyxHQUFHLElBQUksWUFBWSxFQUFNLENBQUM7SUFFM0MsVUFBVSxHQUFzQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFN0Qsa0JBQWtC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ekIseUJBQXlCLCtuQkN0QnRDLCtsS0E4RkE7OzRGRHhFYSx5QkFBeUI7a0JBTHJDLFNBQVM7K0JBQ0UsdUJBQXVCOzRJQUt4QixPQUFPO3NCQUFmLEtBQUs7Z0JBS0ksTUFBTTtzQkFBZixNQUFNO2dCQUNHLE9BQU87c0JBQWhCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIGVmZmVjdCxcbiAgRXZlbnRFbWl0dGVyLFxuICBpbnB1dCxcbiAgSW5wdXQsXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBzaWduYWwsXG4gIFdyaXRhYmxlU2lnbmFsLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1CdWlsZGVyIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRWRpdG9yQ29uZmlnLCBFZGl0b3JNb2RlLCBFZGl0b3JTdGF0ZSB9IGZyb20gJ3ZlcmJlbi1yZXBvcnRpbmctdWknO1xuaW1wb3J0IHsgRXNjYWxhdGlvbiwgRXNjYWxhdGlvblR5cGUsIE9iamVjdFN0YXRlLCBSZXBvcnRTY2hlZHVsZSwgVGFza05vdGlmaWNhdGlvbiwgVGFza05vdGlmaWNhdGlvblR5cGUgfSBmcm9tICd2ZXJiZW4td29ya2Zsb3ctdWkvc3JjL2xpYi9tb2RlbHMnO1xuaW1wb3J0IHsgVXRpbFNlcnZpY2UgfSBmcm9tICd2ZXJiZW4td29ya2Zsb3ctdWkvc3JjL2xpYi9zZXJ2aWNlcyc7XG5pbXBvcnQgeyBXb3JrZmxvd0RhdGFTZXJ2aWNlIH0gZnJvbSAnLi4vd29ya2Zsb3ctZGF0YS5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGliLWVzY2FsYXRpb24tZGlhbG9nJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2VzY2FsYXRpb24tZGlhbG9nLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2VzY2FsYXRpb24tZGlhbG9nLmNvbXBvbmVudC5jc3MnLFxufSlcbmV4cG9ydCBjbGFzcyBFc2NhbGF0aW9uRGlhbG9nQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgdmlzaWJsZTogYm9vbGVhbiA9IGZhbHNlO1xuICB3b3JrZmxvd0NvZGUgPSBpbnB1dC5yZXF1aXJlZDxzdHJpbmc+KCk7XG4gIHN0YWdlQ29kZSA9IGlucHV0LnJlcXVpcmVkPHN0cmluZz4oKTtcbiAgdHlwZSA9IGlucHV0PEVzY2FsYXRpb25UeXBlPigpO1xuXG4gIEBPdXRwdXQoKSBjbG9zZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBjcmVhdGVkID0gbmV3IEV2ZW50RW1pdHRlcjx7fT4oKTtcblxuICBlc2NhbGF0aW9uOiBXcml0YWJsZVNpZ25hbDxFc2NhbGF0aW9uIHwgbnVsbD4gPSBzaWduYWwobnVsbCk7XG5cbiAgLy8gZXNjYWxhdGlvbkZvcm07XG4gIHJlcG9ydFNjaGVkdWxlczogV3JpdGFibGVTaWduYWw8UmVwb3J0U2NoZWR1bGVbXT4gPSBzaWduYWwoW10pO1xuICAvLyBvcGVyYXRpb25BY3Rpb25zOiBXcml0YWJsZVNpZ25hbDxPcGVyYXRpb25BY3Rpb25bXT4gPSBzaWduYWwoW10pO1xuXG4gIC8vIHNlbGVjdGVkT3BlcmF0aW9uQWN0aW9uOiBCZWhhdmlvclN1YmplY3Q8T3BlcmF0aW9uQWN0aW9uW1wiQ29kZVwiXSB8IG51bGw+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxPcGVyYXRpb25BY3Rpb25bXCJDb2RlXCJdIHwgbnVsbD4obnVsbCk7XG5cbiAgLy8gc2VsZWN0ZWRNZXNzYWdlczogV3JpdGFibGVTaWduYWw8XG4gIC8vICAgKChSZXBvcnRTY2hlZHVsZSAmIHsgSXNUYXNrRGF0YVNvdXJjZTogYm9vbGVhbiB9KSB8IG51bGwpW11cbiAgLy8gPiA9IHNpZ25hbChbXSk7XG5cbiAgc2VsZWN0ZWRNZXNzYWdlczogKChSZXBvcnRTY2hlZHVsZSAmIHsgSXNUYXNrRGF0YVNvdXJjZTogYm9vbGVhbjsgSXNNZXNzYWdlSWQ6IGJvb2xlYW47IH0pIHwgbnVsbClbXSA9IFtdO1xuXG4gIGVkaXRvck1vZGU6IEVkaXRvck1vZGUgPSBFZGl0b3JNb2RlLkRlc2lnbmVyO1xuICBlZGl0b3JDb25maWc6IEVkaXRvckNvbmZpZyA9IHtcbiAgICBlZGl0YWJsZTogdHJ1ZSxcbiAgICBoZWlnaHQ6ICcnLFxuICAgIHdpZHRoOiAnJyxcbiAgICBzaG93VG9vbGJhcjogdHJ1ZSxcbiAgICBtZW51SXRlbXM6IFtcbiAgICAgIHtcbiAgICAgICAgTGFiZWw6ICdUb2dnbGVWaWV3JyxcbiAgICAgICAgSWNvbjogJ2NvZGUtdG9nZ2xlJyxcbiAgICAgICAgSWNvbldpZHRoOiAyMCxcbiAgICAgICAgSWNvbkhlaWdodDogMjAsXG4gICAgICAgIElzU3Ryb2tlOiBmYWxzZSxcbiAgICAgICAgR3JvdXBCeTogJ2xvY2FsJyxcbiAgICAgICAgT25DbGljazogKGV2ZW50OiBFZGl0b3JTdGF0ZSB8IHVuZGVmaW5lZCkgPT4ge1xuICAgICAgICAgIHRoaXMuZWRpdG9yTW9kZSA9XG4gICAgICAgICAgICB0aGlzLmVkaXRvck1vZGUgPT0gRWRpdG9yTW9kZS5EZXNpZ25lclxuICAgICAgICAgICAgICA/IEVkaXRvck1vZGUuQ29kZVxuICAgICAgICAgICAgICA6IEVkaXRvck1vZGUuRGVzaWduZXI7XG4gICAgICAgIH0sXG4gICAgICAgIElzRGlzYWJsZWQ6IChldmVudDogRWRpdG9yU3RhdGUgfCB1bmRlZmluZWQpID0+IHtcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH0sXG4gICAgICAgIElzRW5hYmxlZDogKGV2ZW50OiBFZGl0b3JTdGF0ZSB8IHVuZGVmaW5lZCkgPT4ge1xuICAgICAgICAgIHJldHVybiB0aGlzLmVkaXRvck1vZGUgPT0gRWRpdG9yTW9kZS5Db2RlO1xuICAgICAgICB9LFxuICAgICAgfSxcbiAgICBdLFxuICB9O1xuXG4gIC8vIElzVGFza0RhdGFTb3VyY2U6IFdyaXRhYmxlU2lnbmFsPGJvb2xlYW5bXT4gPSBzaWduYWwoW10pO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyLFxuICAgIHByaXZhdGUgZGF0YVNlcnZpY2U6IFdvcmtmbG93RGF0YVNlcnZpY2UsXG4gICAgcHJpdmF0ZSB1dGlsU2VydmljZTogVXRpbFNlcnZpY2VcbiAgKSB7XG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIGNvbnN0IHN0YWdlQ29kZSA9IHRoaXMuc3RhZ2VDb2RlKCk7XG4gICAgICBjb25zdCB3b3JrZmxvd0NvZGUgPSB0aGlzLndvcmtmbG93Q29kZSgpO1xuICAgICAgY29uc3QgdHlwZSA9IHRoaXMudHlwZSgpO1xuICAgICAgY29uc29sZS5sb2coJ1N0YWdlIGNvZGUgY2hhbmdlZDonLCBzdGFnZUNvZGUpO1xuICAgICAgaWYgKHdvcmtmbG93Q29kZSAmJiBzdGFnZUNvZGUgJiYgdHlwZSkge1xuICAgICAgICAvLyB0aGlzLmxvYWRFc2NhbGF0aW9uKHN0YWdlQ29kZSk7XG4gICAgICAgIHRoaXMuc2VhcmNoRXNjYWxhdGlvbih3b3JrZmxvd0NvZGUsIHN0YWdlQ29kZSwgdHlwZSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgY29uc3QgZXNjYWxhdGlvbiA9IHRoaXMuZXNjYWxhdGlvbigpO1xuICAgICAgY29uc3QgcmVwb3J0U2NoZWR1bGVzID0gdGhpcy5yZXBvcnRTY2hlZHVsZXMoKTtcblxuICAgICAgaWYgKGVzY2FsYXRpb24gJiYgcmVwb3J0U2NoZWR1bGVzKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRNZXNzYWdlcyA9IGVzY2FsYXRpb24uRnVsbE1lc3NhZ2VzLm1hcCgoeyBNZXNzYWdlLCBJc1Rhc2tEYXRhU291cmNlLCBJc01lc3NhZ2VJZCB9KSA9PiB7XG4gICAgICAgICAgY29uc3QgZm91bmQgPSByZXBvcnRTY2hlZHVsZXMuZmluZCgocnMpID0+IHJzLkNvZGUgPT09IE1lc3NhZ2UpO1xuICAgICAgICAgIHJldHVybiBmb3VuZCA/IHsgLi4uZm91bmQsIElzVGFza0RhdGFTb3VyY2UsIElzTWVzc2FnZUlkIH0gOiBudWxsO1xuICAgICAgICB9KTtcbiAgICAgICAgLy8gdGhpcy5zZWxlY3RlZE9wZXJhdGlvbkFjdGlvbi5uZXh0KGVzY2FsYXRpb24uT3BlcmF0aW9uQWN0aW9uID8/IG51bGwpO1xuICAgICAgICAvLyBjb25zb2xlLmxvZyhcIlNFVFRJTkcgT1BcIiwgdGhpcy5zZWxlY3RlZE9wZXJhdGlvbkFjdGlvbik7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICAvLyB0aGlzLmVzY2FsYXRpb25Gb3JtID0gdGhpcy5mYi5ncm91cCh7XG4gICAgLy8gICBNZXNzYWdlczogdGhpcy5mYi5hcnJheShbXSksXG4gICAgLy8gfSk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmxvYWRSZXBvcnRTY2hlZHVsZXMoKTtcbiAgICAvLyB0aGlzLmxvYWRPcGVyYXRpb25BY3Rpb25zKCk7XG5cbiAgICBpZiAodGhpcy5zZWxlY3RlZE1lc3NhZ2VzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhpcy5hZGRNZXNzYWdlKCk7XG4gICAgfVxuXG4gICAgY29uc29sZS5sb2coXG4gICAgICAnRXNjYWxhdGlvbkRpYWxvZ0NvbXBvbmVudCBpbml0aWFsaXplZCB3aXRoIHN0YWdlQ29kZTonLFxuICAgICAgdGhpcy5zdGFnZUNvZGVcbiAgICApO1xuICAgIC8vIGNvbnNvbGUubG9nKCdFc2NhbGF0aW9uRGlhbG9nQ29tcG9uZW50IHR5cGU6JywgdGhpcy50eXBlKTtcbiAgfVxuXG4gIC8vIGdldCBtZXNzYWdlcygpIHtcbiAgLy8gICByZXR1cm4gdGhpcy5lc2NhbGF0aW9uRm9ybS5jb250cm9sc1snTWVzc2FnZXMnXSBhcyBGb3JtQXJyYXk7XG4gIC8vIH1cblxuICBhZGRNZXNzYWdlKCkge1xuICAgIHRoaXMuc2VsZWN0ZWRNZXNzYWdlcyA9IHRoaXMuc2VsZWN0ZWRNZXNzYWdlcy5jb25jYXQoW251bGxdKTtcbiAgfVxuXG4gIGRlbGV0ZU1lc3NhZ2UobGVzc29uSW5kZXg6IG51bWJlcikge1xuICAgIHRoaXMuc2VsZWN0ZWRNZXNzYWdlcyA9IHRoaXMuc2VsZWN0ZWRNZXNzYWdlcy5zcGxpY2UobGVzc29uSW5kZXgsIDEpO1xuICB9XG5cbiAgb25NZXNzYWdlU2VsZWN0ZWQocmVwb3J0U2NoZWR1bGU6IFJlcG9ydFNjaGVkdWxlLCBpbmRleDogbnVtYmVyKSB7XG4gICAgY29uc29sZS5sb2coJ1NlbGVjdGVkIG1lc3NhZ2U6JywgcmVwb3J0U2NoZWR1bGUsICdhdCBpbmRleDonLCBpbmRleCk7XG4gICAgdGhpcy5zZWxlY3RlZE1lc3NhZ2VzID0gdGhpcy5zZWxlY3RlZE1lc3NhZ2VzLm1hcCgobXNnLCBpKSA9PiB7XG4gICAgICBpZiAoaSA9PT0gaW5kZXgpIHtcbiAgICAgICAgcmV0dXJuIHsgLi4ucmVwb3J0U2NoZWR1bGUsIElzVGFza0RhdGFTb3VyY2U6IGZhbHNlLCBJc01lc3NhZ2VJZDogdHJ1ZSB9O1xuICAgICAgfVxuICAgICAgcmV0dXJuIG1zZztcbiAgICB9KTtcbiAgfVxuXG4gIGlzVmFsaWRTZWxlY3Rpb24oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWRNZXNzYWdlcy5ldmVyeSgobXNnKSA9PiAhIW1zZyk7XG4gIH1cblxuICBhc3luYyBzYXZlTWVzc2FnZXMoKSB7XG4gICAgY29uc29sZS5sb2codGhpcy5zZWxlY3RlZE1lc3NhZ2VzKTtcbiAgICBjb25zdCB0YXNrTm90aWZpY2F0aW9uczogVGFza05vdGlmaWNhdGlvbltdID0gdGhpcy5zZWxlY3RlZE1lc3NhZ2VzXG4gICAgICAuZmlsdGVyKChtc2cpID0+ICEhbXNnKVxuICAgICAgLm1hcCgobXNnKSA9PiAoe1xuICAgICAgICBJZDogJycsXG4gICAgICAgIENvZGU6ICcnLFxuICAgICAgICBUZW5hbnRJZDogJycsXG4gICAgICAgIE1lc3NhZ2U6IG1zZy5Db2RlLFxuICAgICAgICBOYW1lOiBtc2cuTmFtZSxcbiAgICAgICAgU3ViamVjdDogbXNnLlN1YmplY3QsXG4gICAgICAgIFNlbmRlckNvbmZpZzogbXNnLk1lc3NhZ2VDb25maWcsXG4gICAgICAgIE1lZGl1bTogbXNnLk1lZGl1bSxcbiAgICAgICAgTm90aWZpY2F0aW9uVHlwZTogVGFza05vdGlmaWNhdGlvblR5cGUuRXNjYWxhdGlvbixcbiAgICAgICAgSXNNZXNzYWdlSWQ6IG1zZy5Jc01lc3NhZ2VJZCxcbiAgICAgICAgSXNUYXNrRGF0YVNvdXJjZTogbXNnLklzVGFza0RhdGFTb3VyY2UsXG4gICAgICAgIE1lc3NhZ2VEYXRhU291cmNlOiAhbXNnLklzVGFza0RhdGFTb3VyY2UgPyBtc2cuUmVwb3J0RGF0YVNvdXJjZSA6ICcnLFxuICAgICAgICBEYXRhU3RhdGU6IE9iamVjdFN0YXRlLk5ldyxcbiAgICAgICAgaWQ6ICcnLFxuICAgICAgICBTZXJ2aWNlTmFtZTogJycsXG4gICAgICAgIENyZWF0ZWRBdDogbmV3IERhdGUoKSxcbiAgICAgICAgVXBkYXRlZEF0OiBuZXcgRGF0ZSgpLFxuICAgICAgfSkpO1xuXG4gICAgLy8gaWYgKHRhc2tOb3RpZmljYXRpb25zLmxlbmd0aCkge1xuICAgIC8vIHRoaXMuY3JlYXRlZC5lbWl0KHRhc2tOb3RpZmljYXRpb25zKTtcbiAgICBjb25zb2xlLmxvZyh0YXNrTm90aWZpY2F0aW9ucyk7XG4gICAgdGhpcy5vbkRpYWxvZ0Nsb3NlKG51bGwpO1xuICAgIGNvbnN0IGRhdGE6IFBhcnRpYWw8RXNjYWxhdGlvbj4gPSB7XG4gICAgICAuLi4odGhpcy5lc2NhbGF0aW9uKCkgPz8ge1xuICAgICAgICBJZDogJycsXG4gICAgICAgIENvZGU6ICcnLFxuICAgICAgICBUZW5hbnRJZDogJycsXG4gICAgICAgIFdvcmtmbG93OiB0aGlzLndvcmtmbG93Q29kZSgpLFxuICAgICAgICBTdGFnZTogdGhpcy5zdGFnZUNvZGUoKSxcbiAgICAgICAgVHlwZTogdGhpcy50eXBlKCksXG4gICAgICAgIEV4cGlyYXRpb25XYXJuaW5nOiAwLFxuICAgICAgICBEdXJhdGlvbjogMCxcbiAgICAgICAgTm90aWZ5QWZ0ZXI6IDAsXG4gICAgICAgIFBvc2l0aW9uOiAxLFxuICAgICAgICBEYXRhU3RhdGU6IE9iamVjdFN0YXRlLk5ldyxcbiAgICAgIH0pLFxuICAgICAgLy8gT3BlcmF0aW9uQWN0aW9uOiB0aGlzLnNlbGVjdGVkT3BlcmF0aW9uQWN0aW9uLmdldFZhbHVlKCksXG4gICAgICBNZXNzYWdlczogdGFza05vdGlmaWNhdGlvbnMubWFwKCh7IENvZGUgfSkgPT4gQ29kZSksXG4gICAgICBGdWxsTWVzc2FnZXM6IHRhc2tOb3RpZmljYXRpb25zLFxuICAgIH07XG4gICAgY29uc29sZS5sb2coXCJTYXZpbmcgZXNjYWxhdGlvbiBkYXRhOlwiLCBkYXRhKTtcbiAgICB0aGlzLmRhdGFTZXJ2aWNlLnNhdmVFc2NhbGF0aW9ucyhbZGF0YV0pLnRoZW4oKGRhdGEpID0+IHtcbiAgICAgIGNvbnNvbGUubG9nKFwiRXNjYWxhdGlvbiBzYXZlZDpcIiwgZGF0YSk7XG4gICAgICB0aGlzLmVzY2FsYXRpb24uc2V0KGRhdGE/LlswXSA/PyBudWxsKTtcbiAgICAgIHRoaXMudXRpbFNlcnZpY2Uuc2hvd1N1Y2Nlc3MoJ0VzY2FsYXRpb24gc2F2ZWQgc3VjY2Vzc2Z1bGx5Jyk7XG4gICAgICB0aGlzLm9uRGlhbG9nQ2xvc2UobnVsbCk7XG4gICAgfSk7XG4gICAgLy8gfVxuICB9XG5cbiAgZGVsZXRlRXNjYWxhdGlvbigpIHtcbiAgICBjb25zdCBlc2NhbGF0aW9uID0gdGhpcy5lc2NhbGF0aW9uKCk7XG4gICAgaWYgKGVzY2FsYXRpb24pIHtcbiAgICAgIHRoaXMuZGF0YVNlcnZpY2UuZGVsZXRlRXNjYWxhdGlvbnMoW2VzY2FsYXRpb24uQ29kZV0pLnRoZW4oKGRhdGEpID0+IHtcbiAgICAgICAgY29uc29sZS5sb2coXCJFc2NhbGF0aW9uIGRlbGV0ZWQ6XCIsIGRhdGEpO1xuICAgICAgICB0aGlzLmVzY2FsYXRpb24uc2V0KG51bGwpO1xuICAgICAgICB0aGlzLm9uRGlhbG9nQ2xvc2UobnVsbCk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGxvYWRFc2NhbGF0aW9uKHN0YWdlQ29kZTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5kYXRhU2VydmljZS5nZXRFc2NhbGF0aW9uV2l0aFBhcmFtKHN0YWdlQ29kZSkudGhlbigoZGF0YSkgPT4ge1xuICAgICAgdGhpcy5lc2NhbGF0aW9uLnNldChkYXRhLlJlc3VsdFswXSA/PyBudWxsKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgc2VhcmNoRXNjYWxhdGlvbihcbiAgICBXb3JrZmxvdzogc3RyaW5nLFxuICAgIFN0YWdlOiBzdHJpbmcsXG4gICAgVHlwZTogRXNjYWxhdGlvblR5cGVcbiAgKTogdm9pZCB7XG4gICAgdGhpcy5kYXRhU2VydmljZVxuICAgICAgLnNlYXJjaEVzY2FsYXRpb25XaXRoUGFyYW0oe1xuICAgICAgICBXb3JrZmxvdyxcbiAgICAgICAgU3RhZ2UsXG4gICAgICAgIFR5cGUsXG4gICAgICB9KVxuICAgICAgLnRoZW4oKGRhdGEpID0+IHtcbiAgICAgICAgdGhpcy5lc2NhbGF0aW9uLnNldChkYXRhLlJlc3VsdFswXSA/PyBudWxsKTtcbiAgICAgICAgY29uc29sZS5sb2coXCJFc2NhbGF0aW9uIGxvYWRlZDpcIiwgdGhpcy5lc2NhbGF0aW9uKCkpO1xuICAgICAgICAvLyB0aGlzLnNlbGVjdGVkT3BlcmF0aW9uQWN0aW9uLm5leHQoZGF0YS5SZXN1bHRbMF0/Lk9wZXJhdGlvbkFjdGlvbiA/PyBudWxsKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBsb2FkUmVwb3J0U2NoZWR1bGVzKCk6IHZvaWQge1xuICAgIHRoaXMuZGF0YVNlcnZpY2UuZ2V0UmVwb3J0U2NoZWR1bGVzKCkudGhlbigoZGF0YSkgPT4ge1xuICAgICAgdGhpcy5yZXBvcnRTY2hlZHVsZXMuc2V0KGRhdGEuUmVzdWx0KTtcbiAgICB9KTtcbiAgfVxuXG4gIC8vIHByaXZhdGUgbG9hZE9wZXJhdGlvbkFjdGlvbnMoKTogdm9pZCB7XG4gIC8vICAgdGhpcy5kYXRhU2VydmljZS5nZXRPcGVyYXRpb25BY3Rpb25zKCkudGhlbigoZGF0YSkgPT4ge1xuICAvLyAgICAgdGhpcy5vcGVyYXRpb25BY3Rpb25zLnNldChkYXRhLlJlc3VsdCk7XG4gIC8vICAgfSk7XG4gIC8vIH1cblxuICBvbkRpYWxvZ0Nsb3NlKGV2ZW50RGF0YTogYW55KSB7XG4gICAgY29uc29sZS5sb2coJ0RpYWxvZyBjbG9zZWQsIHJlY2VpdmVkIGRhdGE6JywgZXZlbnREYXRhKTtcbiAgICB0aGlzLmVzY2FsYXRpb24uc2V0KG51bGwpO1xuICAgIHRoaXMuc2VsZWN0ZWRNZXNzYWdlcyA9IFtdO1xuICAgIHRoaXMuY2xvc2VkLmVtaXQoKTtcbiAgfVxuXG4gIG9uRGlhbG9nT3BlbihldmVudERhdGE6IGFueSkge1xuICAgIGNvbnNvbGUubG9nKCdEaWFsb2cgb3BlbmVkLCByZWNlaXZlZCBkYXRhOicsIGV2ZW50RGF0YSk7XG4gIH1cblxuICBpc05vdE5ldygpOiBib29sZWFuIHtcbiAgICBjb25zdCBlc2NhbGF0aW9uID0gdGhpcy5lc2NhbGF0aW9uKCk7XG4gICAgcmV0dXJuIGVzY2FsYXRpb24gIT09IG51bGwgJiYgZXNjYWxhdGlvbi5EYXRhU3RhdGUgIT09ICdOZXcnO1xuICB9XG59XG4iLCI8dmVyYmVuLWRpYWxvZ3VlIFtzaG93Q2xvc2VJY29uXT1cInRydWVcIiBbZGlzbWlzc091dHNpZGVDbGlja109XCJ0cnVlXCIgW2Nsb3NlT25Fc2NhcGVdPVwidHJ1ZVwiIFtzaXplXT1cIidtZWRpdW0nXCJcbiAgW21vZGVdPVwiJ2RyYXdlcidcIiBbZGlzYWJsZUZvb3Rlcl09XCJmYWxzZVwiIFtpc1Zpc2libGVdPVwidmlzaWJsZVwiIFtoZWFkZXJUZW1wbGF0ZV09XCJoZWFkZXJUZW1wbGF0ZVwiXG4gIFtib2R5VGVtcGxhdGVdPVwiYm9keVRlbXBsYXRlXCIgW2Zvb3RlclRlbXBsYXRlXT1cImZvb3RlclRlbXBsYXRlXCIgKG9wZW5Nb2RhbCk9XCJvbkRpYWxvZ09wZW4oJGV2ZW50KVwiXG4gIChjbG9zZU1vZGFsKT1cIm9uRGlhbG9nQ2xvc2UoJGV2ZW50KVwiPlxuPC92ZXJiZW4tZGlhbG9ndWU+XG5cbjxuZy10ZW1wbGF0ZSAjaGVhZGVyVGVtcGxhdGU+XG4gIDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW4gcC0zIHRleHQteHMgYm9yZGVyLWItNCBib3JkZXItW3ZhcigtLXZibi1jb2xvci1wcmltYXJ5KV1cIj5cbiAgICA8YnV0dG9uIGNsYXNzPVwibXItNFwiIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwib25EaWFsb2dDbG9zZSgkZXZlbnQpXCI+XG4gICAgICA8c3BhbiBjbGFzcz1cImJsb2NrIHctMi41IGgtMi41IGJvcmRlci10IGJvcmRlci1sIGJvcmRlci1bdmFyKC0tdmJuLWNvbG9yLXRleHQpXS83MCB0cmFuc2Zvcm0gLXJvdGF0ZS00NVwiPjwvc3Bhbj5cbiAgICA8L2J1dHRvbj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2JvZHlUZW1wbGF0ZT5cbiAgPGRpdj5cbiAgICA8ZGl2IGNsYXNzPVwibWItNCBzcGFjZS15LTRcIj5cbiAgICAgIDwhLS0gPGRpdiBjbGFzcz1cInNwYWNlLXktMVwiPlxuICAgICAgICA8bGFiZWwgZm9yPVwib3BlcmF0aW9uLWFjdGlvblwiIGNsYXNzPVwidGV4dC1zbSBmb250LXNlbWlib2xkIHRleHQtW3ZhcigtLXZibi1jb2xvci10ZXh0KV1cIj5cbiAgICAgICAgICBFc2NhbGF0aW9uXG4gICAgICAgIDwvbGFiZWw+XG4gICAgICAgIDx2ZXJiZW4tZHJvcC1kb3duXG4gICAgICAgICAgICBpZD1cIm9wZXJhdGlvbi1hY3Rpb25cIlxuICAgICAgICAgICAgc3R5bGVDbGFzcz1cInctZnVsbFwiXG4gICAgICAgICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgICAgICAgW211bHRpc2VsZWN0XT1cImZhbHNlXCJcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiU2VsZWN0IE9wZXJhdGlvbiBBY3Rpb25cIlxuICAgICAgICAgICAgW29wdGlvbnNdPVwib3BlcmF0aW9uQWN0aW9ucygpXCJcbiAgICAgICAgICAgIG9wdGlvbkxhYmVsPVwiTmFtZVwiXG4gICAgICAgICAgICBvcHRpb25WYWx1ZT1cIkNvZGVcIlxuICAgICAgICAgICAgW25nTW9kZWxdPVwic2VsZWN0ZWRPcGVyYXRpb25BY3Rpb24gfCBhc3luY1wiXG4gICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJzZWxlY3RlZE9wZXJhdGlvbkFjdGlvbi5uZXh0KCRldmVudClcIlxuICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgICAgID48L3ZlcmJlbi1kcm9wLWRvd24+XG4gICAgICA8L2Rpdj4gLS0+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJzcGFjZS15LTRcIiAqbmdGb3I9XCJsZXQgbWVzc2FnZSBvZiBzZWxlY3RlZE1lc3NhZ2VzOyBsZXQgaSA9IGluZGV4XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzcGFjZS15LTFcIj5cbiAgICAgICAgICA8bGFiZWwgW2Zvcl09XCJtZXNzYWdlICsgJy0nICsgaVwiIGNsYXNzPVwidGV4dC1zbSBmb250LXNlbWlib2xkIHRleHQtW3ZhcigtLXZibi1jb2xvci10ZXh0KV1cIj5cbiAgICAgICAgICAgIE1lc3NhZ2Uge3sgaSArIDEgfX1cbiAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgIDx2ZXJiZW4tZHJvcC1kb3duIFtpZF09XCJtZXNzYWdlICsgJy0nICsgaVwiIHNlbGVjdEtleT1cIkNvZGVcIiBzdHlsZUNsYXNzPVwidy1mdWxsXCIgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgICAgIFttdWx0aXNlbGVjdF09XCJmYWxzZVwiIHBsYWNlaG9sZGVyPVwiU2VsZWN0IE1lc3NhZ2VcIiBbb3B0aW9uc109XCJyZXBvcnRTY2hlZHVsZXMoKVwiIG9wdGlvbkxhYmVsPVwiTmFtZVwiXG4gICAgICAgICAgICBbbmdNb2RlbF09XCJtZXNzYWdlXCIgKG5nTW9kZWxDaGFuZ2UpPVwib25NZXNzYWdlU2VsZWN0ZWQoJGV2ZW50LCBpKVwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCI+PC92ZXJiZW4tZHJvcC1kb3duPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICBAaWYgKG1lc3NhZ2UpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIGdhcC00XCI+XG4gICAgICAgICAgPGxhYmVsIFtmb3JdPVwiJ2lzLScgKyBtZXNzYWdlICsgJy0nICsgaSArICd0YXNrLWRhdGEtc291cmNlJ1wiIGNsYXNzPVwidGV4dC1zbSBmb250LXNlbWlib2xkIHRleHQtW3ZhcigtLXZibi1jb2xvci10ZXh0KV1cIj5cbiAgICAgICAgICAgIElzIFRhc2sgRGF0YSBTb3VyY2U/XG4gICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICA8dmVyYmVuYS1zd2l0Y2ggW2lkXT1cIidpcy0nICsgbWVzc2FnZSArICctJyArIGkgKyAndGFzay1kYXRhLXNvdXJjZSdcIiBvblRleHQ9XCJZZXNcIiBvZmZUZXh0PVwiTm9cIlxuICAgICAgICAgICAgW29uQ29sb3JdPVwiJ3ZhcigtLXZibi1jb2xvci10ZXh0KSdcIiBbKG5nTW9kZWwpXT1cIm1lc3NhZ2UuSXNUYXNrRGF0YVNvdXJjZVwiPjwvdmVyYmVuYS1zd2l0Y2g+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtNFwiPlxuICAgICAgICAgIDxsYWJlbCBbZm9yXT1cIidpcy0nICsgbWVzc2FnZSArICctJyArIGkgKyAnaXMtbWVzc2FnZS1pZCdcIiBjbGFzcz1cInRleHQtc20gZm9udC1zZW1pYm9sZCB0ZXh0LVt2YXIoLS12Ym4tY29sb3ItdGV4dCldXCI+XG4gICAgICAgICAgICBJcyBNZXNzYWdlIElEP1xuICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgPHZlcmJlbmEtc3dpdGNoIFtpZF09XCInaXMtJyArIG1lc3NhZ2UgKyAnLScgKyBpICsgJ2lzLW1lc3NhZ2UtaWQnXCIgb25UZXh0PVwiWWVzXCIgb2ZmVGV4dD1cIk5vXCJcbiAgICAgICAgICAgIFtvbkNvbG9yXT1cIid2YXIoLS12Ym4tY29sb3ItdGV4dCknXCIgWyhuZ01vZGVsKV09XCJtZXNzYWdlLklzTWVzc2FnZUlkXCI+PC92ZXJiZW5hLXN3aXRjaD5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cblxuICAgICAgICA8ZGl2IGNsYXNzPVwiYm9yZGVyIGJvcmRlci1wcmltYXJ5IC1tLTIgcm91bmRlZC1sZyBmbGV4IGZsZXgtY29sIGdhcC0zXCIgKm5nSWY9XCJtZXNzYWdlXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNwYWNlLXktMyBib3JkZXItYiBib3JkZXItcHJpbWFyeSBweC0yIHB5LTNcIj5cbiAgICAgICAgICAgIDx2ZXJiZW5hLWlucHV0IG5hbWU9XCJTdWJqZWN0XCIgWyhuZ01vZGVsKV09XCJtZXNzYWdlLlN1YmplY3RcIiBbcmVhZE9ubHldPVwidHJ1ZVwiIC8+XG4gICAgICAgICAgICA8dmVyYmVuYS1pbnB1dCBuYW1lPVwiUmVjaXBpZW50c1wiIFsobmdNb2RlbCldPVwibWVzc2FnZS5SZWNpcGllbnRzXCIgW3JlYWRPbmx5XT1cInRydWVcIiAvPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxsaWItZWRpdG9yIFtlZGl0b3JDb25maWddPVwiZWRpdG9yQ29uZmlnXCIgW2VkaXRvck1vZGVdPVwiZWRpdG9yTW9kZVwiXG4gICAgICAgICAgICBbKG5nTW9kZWwpXT1cIm1lc3NhZ2UuUGxhaW5NZXNzYWdlXCI+PC9saWItZWRpdG9yPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjZm9vdGVyVGVtcGxhdGU+XG4gIDxkaXYgY2xhc3M9XCJmbGV4IGp1c3RpZnktYmV0d2VlbiBpdGVtcy1jZW50ZXIgZ2FwLTggdy1mdWxsXCI+XG4gICAgPHZlcmJlbmEtYnV0dG9uIHN0eWxlPVwiY3Vyc29yOiBwb2ludGVyXCIgdHlwZT1cImJ1dHRvblwiIHRleHQ9XCJBZGQgTWVzc2FnZVwiIGJnQ29sb3I9XCJ2YXIoLS12Ym4tY29sb3ItcHJpbWFyeSlcIiB0ZXh0Q29sb3I9XCJ2YXIoLS12Ym4tY29sb3Itb24tcHJpbWFyeSlcIlxuICAgICAgYm9yZGVyUmFkaXVzPVwiOHB4XCIgcGQ9XCIxMHB4IDIwcHhcIiBoZWlnaHQ9XCIzOXB4XCIgZm9udFdlaWdodD1cIjYwMFwiIGZvbnRTaXplPVwiMTJweFwiIHN2Zz1cImFkZFwiIFtzdmdIZWlnaHRdPVwiMTRcIlxuICAgICAgW3N2Z1dpZHRoXT1cIjE0XCIgW3N2Z1NpemVdPVwiJ3NtJ1wiIChjbGljayk9XCJhZGRNZXNzYWdlKClcIj48L3ZlcmJlbmEtYnV0dG9uPlxuXG4gICAgPGRpdiBjbGFzcz1cImZsZXggZ2FwLTIgaXRlbXMtY2VudGVyXCI+XG4gICAgICA8dmVyYmVuYS1idXR0b24gc3R5bGU9XCJjdXJzb3I6IHBvaW50ZXJcIiB0eXBlPVwiYnV0dG9uXCIgdGV4dD1cIkRlbGV0ZVwiIGJnQ29sb3I9XCJ2YXIoLS12Ym4tY29sb3ItcHJpbWFyeSlcIiB0ZXh0Q29sb3I9XCJ2YXIoLS12Ym4tY29sb3Itb24tcHJpbWFyeSlcIlxuICAgICAgICBib3JkZXJSYWRpdXM9XCI4cHhcIiBwZD1cIjEwcHggMjBweFwiIHdpZHRoPVwiMTEwcHhcIiBoZWlnaHQ9XCIzOXB4XCIgZm9udFdlaWdodD1cIjYwMFwiIGZvbnRTaXplPVwiMTJweFwiIHN2Zz1cImRlbGV0ZVwiXG4gICAgICAgIFtzdmdIZWlnaHRdPVwiMTRcIiBbc3ZnV2lkdGhdPVwiMTRcIiBbc3ZnU2l6ZV09XCInc20nXCIgKGNsaWNrKT1cImRlbGV0ZUVzY2FsYXRpb24oKVwiPjwvdmVyYmVuYS1idXR0b24+XG5cbiAgICAgIDx2ZXJiZW5hLWJ1dHRvbiBzdHlsZT1cImN1cnNvcjogcG9pbnRlclwiIHR5cGU9XCJidXR0b25cIiB0ZXh0PVwiU2F2ZVwiIGJnQ29sb3I9XCJ2YXIoLS12Ym4tY29sb3ItcHJpbWFyeSlcIiB0ZXh0Q29sb3I9XCJ2YXIoLS12Ym4tY29sb3Itb24tcHJpbWFyeSlcIlxuICAgICAgICBib3JkZXJSYWRpdXM9XCI4cHhcIiBwZD1cIjEwcHggMjBweFwiIHdpZHRoPVwiMTYwcHhcIiBoZWlnaHQ9XCIzOXB4XCIgZm9udFdlaWdodD1cIjYwMFwiIGZvbnRTaXplPVwiMTJweFwiIHN2Zz1cInNlbmRcIlxuICAgICAgICBbc3ZnSGVpZ2h0XT1cIjE0XCIgW3N2Z1dpZHRoXT1cIjE0XCIgW3N2Z1NpemVdPVwiJ3NtJ1wiIChjbGljayk9XCJzYXZlTWVzc2FnZXMoKVwiPjwvdmVyYmVuYS1idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|
|
@@ -210,10 +210,10 @@ export class ConnectionService {
|
|
|
210
210
|
getConnectionDragData() {
|
|
211
211
|
return this.draggingConnectionData;
|
|
212
212
|
}
|
|
213
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
214
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.
|
|
213
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ConnectionService, deps: [{ token: i1.WorkflowDesignerState }, { token: i2.NodeManagementService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
214
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ConnectionService, providedIn: 'root' });
|
|
215
215
|
}
|
|
216
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
216
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ConnectionService, decorators: [{
|
|
217
217
|
type: Injectable,
|
|
218
218
|
args: [{
|
|
219
219
|
providedIn: 'root',
|
|
@@ -288,10 +288,10 @@ export class NodeManagementService {
|
|
|
288
288
|
hasOutgoingConnections(nodeId) {
|
|
289
289
|
return this.state.connections.some((conn) => conn.sourceNodeId === nodeId);
|
|
290
290
|
}
|
|
291
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
292
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.
|
|
291
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: NodeManagementService, deps: [{ token: i1.WorkflowDesignerState }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
292
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: NodeManagementService, providedIn: 'root' });
|
|
293
293
|
}
|
|
294
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
294
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: NodeManagementService, decorators: [{
|
|
295
295
|
type: Injectable,
|
|
296
296
|
args: [{
|
|
297
297
|
providedIn: 'root',
|
|
@@ -223,10 +223,10 @@ export class PopupService {
|
|
|
223
223
|
pendingConnectionSourceSwimlaneIndex: this._pendingConnectionSourceSwimlaneIndex.getValue(),
|
|
224
224
|
};
|
|
225
225
|
}
|
|
226
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
227
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.
|
|
226
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PopupService, deps: [{ token: i1.WorkflowDataService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
227
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PopupService, providedIn: 'root' });
|
|
228
228
|
}
|
|
229
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
229
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PopupService, decorators: [{
|
|
230
230
|
type: Injectable,
|
|
231
231
|
args: [{
|
|
232
232
|
providedIn: 'root',
|
|
@@ -133,10 +133,10 @@ export class SwimlaneService {
|
|
|
133
133
|
}
|
|
134
134
|
return -1;
|
|
135
135
|
}
|
|
136
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
137
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.
|
|
136
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SwimlaneService, deps: [{ token: i1.WorkflowDesignerState }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
137
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SwimlaneService, providedIn: 'root' });
|
|
138
138
|
}
|
|
139
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
139
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SwimlaneService, decorators: [{
|
|
140
140
|
type: Injectable,
|
|
141
141
|
args: [{
|
|
142
142
|
providedIn: 'root',
|
|
@@ -251,10 +251,10 @@ export class TransformerService {
|
|
|
251
251
|
getCodeForObject(id) {
|
|
252
252
|
return this.loadedObjectIds[id] || '';
|
|
253
253
|
}
|
|
254
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
255
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.
|
|
254
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TransformerService, deps: [{ token: i1.WorkflowDesignerState }, { token: i2.SwimlaneService }, { token: i3.NodeManagementService }, { token: i4.ConnectionService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
255
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TransformerService, providedIn: 'root' });
|
|
256
256
|
}
|
|
257
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
257
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TransformerService, decorators: [{
|
|
258
258
|
type: Injectable,
|
|
259
259
|
args: [{
|
|
260
260
|
providedIn: 'root',
|
package/esm2022/src/lib/components/workflow-designer/stage-dialog/stage-dialog.component.mjs
CHANGED
|
@@ -161,15 +161,15 @@ export class StageDialogComponent {
|
|
|
161
161
|
}
|
|
162
162
|
}
|
|
163
163
|
}
|
|
164
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
165
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.
|
|
164
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: StageDialogComponent, deps: [{ token: i1.FormBuilder }, { token: i2.WorkflowDataService }, { token: i3.NodeManagementService }, { token: i4.PopupService }], target: i0.ɵɵFactoryTarget.Component });
|
|
165
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.14", type: StageDialogComponent, selector: "lib-stage-dialog", inputs: { visible: { classPropertyName: "visible", publicName: "visible", isSignal: true, isRequired: false, transformFunction: null }, stageData: { classPropertyName: "stageData", publicName: "stageData", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { closed: "closed", saved: "saved" }, usesOnChanges: true, 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 class=\"p-4 border-b border-gray-200\">\n <h2 class=\"text-xl font-medium m-0\">Stage Properties</h2>\n </div>\n</ng-template>\n\n<ng-template #bodyTemplate>\n <div class=\"p-4\">\n <form [formGroup]=\"stageForm\" class=\"grid gap-y-4\">\n <!-- Stage Name -->\n <verbena-input\n name=\"Name\"\n label=\"Stage Name\"\n formControlName=\"Name\"\n placeHolder=\"Enter Stage Name\"\n />\n\n <!-- Description -->\n <verbena-textarea\n label=\"Description\"\n [rows]=\"3\"\n formControlName=\"Description\"\n ></verbena-textarea>\n\n <!-- Recipient Count -->\n <verbena-input\n name=\"MinNoOfActor\"\n label=\"Recipient Count\"\n type=\"number\"\n formControlName=\"MinNoOfActor\"\n placeHolder=\"Enter Count\"\n />\n\n <!-- Pass On Rule -->\n <verbena-input\n name=\"PassOnRule\"\n label=\"Pass On Rule\"\n formControlName=\"PassOnRule\"\n placeHolder=\"Select Rule\"\n />\n\n <!-- Duration -->\n <verbena-input\n name=\"Duration\"\n label=\"Duration\"\n type=\"number\"\n formControlName=\"Duration\"\n placeHolder=\"Set Duration\"\n />\n\n <!-- Actor Rule -->\n <div class=\"space-y-1\">\n <label for=\"actor-rule\" class=\"text-sm font-semibold text-[var(--vbn-color-text)]\">\n Actor Rule\n </label>\n <verben-drop-down\n id=\"actor-rule\"\n styleClass=\"w-full\"\n width=\"100%\"\n [multiselect]=\"false\"\n placeholder=\"Select Rule\"\n [options]=\"actorRules\"\n formControlName=\"ActorRule\"\n class=\"form-control\"\n [showClear]=\"true\"\n >\n </verben-drop-down>\n </div>\n\n <!-- Assignment Type -->\n <div class=\"space-y-1\">\n <label for=\"assignment\" class=\"text-sm font-semibold text-[var(--vbn-color-text)]\">\n Assignment Type\n </label>\n <verben-drop-down\n id=\"assignment\"\n styleClass=\"w-full\"\n width=\"100%\"\n [multiselect]=\"false\"\n placeholder=\"Select\"\n [options]=\"assignmentTypes\"\n formControlName=\"AssignmentType\"\n class=\"form-control\"\n [showClear]=\"true\"\n >\n </verben-drop-down>\n </div>\n\n <!-- Tags -->\n <div class=\"space-y-1\">\n <label for=\"tags\" class=\"text-sm font-semibold text-[var(--vbn-color-text)]\">\n Tags\n </label>\n <verben-drop-down\n id=\"tags\"\n selectKey=\"Code\"\n styleClass=\"w-full\"\n width=\"100%\"\n [multiselect]=\"true\"\n placeholder=\"Select\"\n [options]=\"tags\"\n optionLabel=\"Name\"\n formControlName=\"Tags\"\n class=\"form-control\"\n [filter]=\"true\"\n filterBy=\"Name\"\n >\n </verben-drop-down>\n </div>\n\n <!-- Is Entry Point -->\n <div class=\"flex items-center gap-4\">\n <label for=\"is-entry-point\" class=\"text-sm font-semibold text-[var(--vbn-color-text)]\">\n Entry Point\n </label>\n <verbena-switch\n id=\"is-entry-point\"\n onText=\"Yes\"\n offText=\"No\"\n [onColor]=\"'var(--vbn-color-text)'\"\n formControlName=\"IsEntryPoint\"\n ></verbena-switch>\n </div>\n\n <!-- Is Exit Point -->\n <div class=\"flex items-center gap-4\">\n <label for=\"is-exit-point\" class=\"text-sm font-semibold text-[var(--vbn-color-text)]\">\n Exit Point\n </label>\n <verbena-switch\n id=\"is-exit-point\"\n onText=\"Yes\"\n offText=\"No\"\n [onColor]=\"'var(--vbn-color-text)'\"\n formControlName=\"IsExitPoint\"\n ></verbena-switch>\n </div>\n </form>\n </div>\n</ng-template>\n\n<ng-template #footerTemplate>\n <div class=\"w-full flex justify-between gap-4 p-4 border-t border-gray-200\">\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 <button\n class=\"px-4 py-2 bg-yellow-300 text-black rounded text-sm font-medium\"\n (click)=\"saveStage()\"\n [disabled]=\"stageForm.invalid\"\n >\n Save\n </button>\n <button\n class=\"px-4 py-2 mr-2 bg-white border border-gray-200 rounded text-sm font-medium\"\n (click)=\"deleteStage()\"\n >\n Delete\n </button> -->\n <verbena-button\n width=\"114px\"\n height=\"39px\"\n text=\"Delete\"\n bgColor=\"var(--vbn-color-text-muted)\"\n textColor=\"var(--vbn-color-on-primary)\"\n borderRadius=\"10px\"\n (click)=\"deleteStage()\"\n ></verbena-button>\n\n <verbena-button\n (click)=\"onDialogClose($event)\"\n text=\"Cancel\"\n styleType=\"ylw-outline\"\n class=\"ml-auto\"\n ></verbena-button>\n <verbena-button\n type=\"submit\"\n text=\"Save\"\n bgColor=\"var(--vbn-color-primary)\"\n textColor=\"var(--vbn-color-on-primary)\"\n borderRadius=\"10px\"\n pd=\"10px 20px\"\n width=\"114px\"\n height=\"39px\"\n (click)=\"saveStage()\"\n [disable]=\"stageForm.invalid\"\n ></verbena-button>\n </div>\n</ng-template>\n", styles: [""], dependencies: [{ kind: "component", type: i5.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.ɵ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: i5.VerbenaButtonComponent, selector: "verbena-button", inputs: ["type", "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: i5.DropDownComponent, selector: "verben-drop-down", inputs: ["options", "width", "overlayWidth", "showHorizontalLine", "horizontalLineColor", "optionLabel", "optionSubLabel", "optionValue", "placeholder", "invalidMessage", "errorPosition", "loadMoreCaption", "display", "showClear", "lazyLoad", "selectKey", "styleClass", "group", "multiselect", "filter", "avoidDuplication", "filterBy", "debounceTime", "minChar", "refPageSize", "disabled", "required", "load", "asyncLabel", "search"], outputs: ["optionsChange", "onChange", "onClick", "onClear"] }, { kind: "component", type: i5.VerbenaInputComponent, selector: "verbena-input", inputs: ["disabled", "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: i5.VerbenaSwitchComponent, selector: "verbena-switch", inputs: ["label", "checked", "disabled", "offColor", "onColor", "onText", "offText", "width", "height", "customStyles"], outputs: ["change"] }, { kind: "component", type: i5.VerbenaTextareaComponent, selector: "verbena-textarea", inputs: ["disabled", "label", "required", "rows", "cols", "bgColor", "textColor", "border", "borderRadius", "pd", "width", "height", "value", "errorMessageColor"], outputs: ["valueChange"] }] });
|
|
166
166
|
}
|
|
167
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
167
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: StageDialogComponent, decorators: [{
|
|
168
168
|
type: Component,
|
|
169
|
-
args: [{ selector: 'lib-stage-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 class=\"p-4 border-b border-gray-200\">\n <h2 class=\"text-xl font-medium m-0\">Stage Properties</h2>\n </div>\n</ng-template>\n\n<ng-template #bodyTemplate>\n <div class=\"p-4\">\n <form [formGroup]=\"stageForm\" class=\"grid gap-y-4\">\n <!-- Stage Name -->\n <verbena-input\n name=\"Name\"\n label=\"Stage Name\"\n formControlName=\"Name\"\n placeHolder=\"Enter Stage Name\"\n />\n\n <!-- Description -->\n <verbena-textarea\n label=\"Description\"\n [rows]=\"3\"\n formControlName=\"Description\"\n ></verbena-textarea>\n\n <!-- Recipient Count -->\n <verbena-input\n name=\"MinNoOfActor\"\n label=\"Recipient Count\"\n type=\"number\"\n formControlName=\"MinNoOfActor\"\n placeHolder=\"Enter Count\"\n />\n\n <!-- Pass On Rule -->\n <verbena-input\n name=\"PassOnRule\"\n label=\"Pass On Rule\"\n formControlName=\"PassOnRule\"\n placeHolder=\"Select Rule\"\n />\n\n <!-- Duration -->\n <verbena-input\n name=\"Duration\"\n label=\"Duration\"\n type=\"number\"\n formControlName=\"Duration\"\n placeHolder=\"Set Duration\"\n />\n\n <!-- Actor Rule -->\n <div class=\"space-y-1\">\n <label for=\"actor-rule\" class=\"text-sm font-semibold text-[
|
|
169
|
+
args: [{ selector: 'lib-stage-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 class=\"p-4 border-b border-gray-200\">\n <h2 class=\"text-xl font-medium m-0\">Stage Properties</h2>\n </div>\n</ng-template>\n\n<ng-template #bodyTemplate>\n <div class=\"p-4\">\n <form [formGroup]=\"stageForm\" class=\"grid gap-y-4\">\n <!-- Stage Name -->\n <verbena-input\n name=\"Name\"\n label=\"Stage Name\"\n formControlName=\"Name\"\n placeHolder=\"Enter Stage Name\"\n />\n\n <!-- Description -->\n <verbena-textarea\n label=\"Description\"\n [rows]=\"3\"\n formControlName=\"Description\"\n ></verbena-textarea>\n\n <!-- Recipient Count -->\n <verbena-input\n name=\"MinNoOfActor\"\n label=\"Recipient Count\"\n type=\"number\"\n formControlName=\"MinNoOfActor\"\n placeHolder=\"Enter Count\"\n />\n\n <!-- Pass On Rule -->\n <verbena-input\n name=\"PassOnRule\"\n label=\"Pass On Rule\"\n formControlName=\"PassOnRule\"\n placeHolder=\"Select Rule\"\n />\n\n <!-- Duration -->\n <verbena-input\n name=\"Duration\"\n label=\"Duration\"\n type=\"number\"\n formControlName=\"Duration\"\n placeHolder=\"Set Duration\"\n />\n\n <!-- Actor Rule -->\n <div class=\"space-y-1\">\n <label for=\"actor-rule\" class=\"text-sm font-semibold text-[var(--vbn-color-text)]\">\n Actor Rule\n </label>\n <verben-drop-down\n id=\"actor-rule\"\n styleClass=\"w-full\"\n width=\"100%\"\n [multiselect]=\"false\"\n placeholder=\"Select Rule\"\n [options]=\"actorRules\"\n formControlName=\"ActorRule\"\n class=\"form-control\"\n [showClear]=\"true\"\n >\n </verben-drop-down>\n </div>\n\n <!-- Assignment Type -->\n <div class=\"space-y-1\">\n <label for=\"assignment\" class=\"text-sm font-semibold text-[var(--vbn-color-text)]\">\n Assignment Type\n </label>\n <verben-drop-down\n id=\"assignment\"\n styleClass=\"w-full\"\n width=\"100%\"\n [multiselect]=\"false\"\n placeholder=\"Select\"\n [options]=\"assignmentTypes\"\n formControlName=\"AssignmentType\"\n class=\"form-control\"\n [showClear]=\"true\"\n >\n </verben-drop-down>\n </div>\n\n <!-- Tags -->\n <div class=\"space-y-1\">\n <label for=\"tags\" class=\"text-sm font-semibold text-[var(--vbn-color-text)]\">\n Tags\n </label>\n <verben-drop-down\n id=\"tags\"\n selectKey=\"Code\"\n styleClass=\"w-full\"\n width=\"100%\"\n [multiselect]=\"true\"\n placeholder=\"Select\"\n [options]=\"tags\"\n optionLabel=\"Name\"\n formControlName=\"Tags\"\n class=\"form-control\"\n [filter]=\"true\"\n filterBy=\"Name\"\n >\n </verben-drop-down>\n </div>\n\n <!-- Is Entry Point -->\n <div class=\"flex items-center gap-4\">\n <label for=\"is-entry-point\" class=\"text-sm font-semibold text-[var(--vbn-color-text)]\">\n Entry Point\n </label>\n <verbena-switch\n id=\"is-entry-point\"\n onText=\"Yes\"\n offText=\"No\"\n [onColor]=\"'var(--vbn-color-text)'\"\n formControlName=\"IsEntryPoint\"\n ></verbena-switch>\n </div>\n\n <!-- Is Exit Point -->\n <div class=\"flex items-center gap-4\">\n <label for=\"is-exit-point\" class=\"text-sm font-semibold text-[var(--vbn-color-text)]\">\n Exit Point\n </label>\n <verbena-switch\n id=\"is-exit-point\"\n onText=\"Yes\"\n offText=\"No\"\n [onColor]=\"'var(--vbn-color-text)'\"\n formControlName=\"IsExitPoint\"\n ></verbena-switch>\n </div>\n </form>\n </div>\n</ng-template>\n\n<ng-template #footerTemplate>\n <div class=\"w-full flex justify-between gap-4 p-4 border-t border-gray-200\">\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 <button\n class=\"px-4 py-2 bg-yellow-300 text-black rounded text-sm font-medium\"\n (click)=\"saveStage()\"\n [disabled]=\"stageForm.invalid\"\n >\n Save\n </button>\n <button\n class=\"px-4 py-2 mr-2 bg-white border border-gray-200 rounded text-sm font-medium\"\n (click)=\"deleteStage()\"\n >\n Delete\n </button> -->\n <verbena-button\n width=\"114px\"\n height=\"39px\"\n text=\"Delete\"\n bgColor=\"var(--vbn-color-text-muted)\"\n textColor=\"var(--vbn-color-on-primary)\"\n borderRadius=\"10px\"\n (click)=\"deleteStage()\"\n ></verbena-button>\n\n <verbena-button\n (click)=\"onDialogClose($event)\"\n text=\"Cancel\"\n styleType=\"ylw-outline\"\n class=\"ml-auto\"\n ></verbena-button>\n <verbena-button\n type=\"submit\"\n text=\"Save\"\n bgColor=\"var(--vbn-color-primary)\"\n textColor=\"var(--vbn-color-on-primary)\"\n borderRadius=\"10px\"\n pd=\"10px 20px\"\n width=\"114px\"\n height=\"39px\"\n (click)=\"saveStage()\"\n [disable]=\"stageForm.invalid\"\n ></verbena-button>\n </div>\n</ng-template>\n" }]
|
|
170
170
|
}], ctorParameters: () => [{ type: i1.FormBuilder }, { type: i2.WorkflowDataService }, { type: i3.NodeManagementService }, { type: i4.PopupService }], propDecorators: { closed: [{
|
|
171
171
|
type: Output
|
|
172
172
|
}], saved: [{
|
|
173
173
|
type: Output
|
|
174
174
|
}] } });
|
|
175
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhZ2UtZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZlcmJlbi13b3JrZmxvdy11aS9zcmMvbGliL2NvbXBvbmVudHMvd29ya2Zsb3ctZGVzaWduZXIvc3RhZ2UtZGlhbG9nL3N0YWdlLWRpYWxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92ZXJiZW4td29ya2Zsb3ctdWkvc3JjL2xpYi9jb21wb25lbnRzL3dvcmtmbG93LWRlc2lnbmVyL3N0YWdlLWRpYWxvZy9zdGFnZS1kaWFsb2cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxNQUFNLEVBQ04sWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBRVAsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUEwQixVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRSxPQUFPLEVBQUUsY0FBYyxFQUFPLGtCQUFrQixFQUFpQixNQUFNLG1DQUFtQyxDQUFDOzs7Ozs7O0FBVTNHLE1BQU0sT0FBTyxvQkFBb0I7SUFlckI7SUFDQTtJQUNBO0lBQ0E7SUFqQlYsbUNBQW1DO0lBQ25DLE9BQU8sR0FBRyxLQUFLLENBQVUsS0FBSyxDQUFDLENBQUM7SUFDaEMsU0FBUyxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQXlCLEVBQUUsQ0FBQyxDQUFDLENBQUMsOEJBQThCO0lBQzVFLE1BQU0sR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBQzVCLEtBQUssR0FBRyxJQUFJLFlBQVksRUFBMEIsQ0FBQztJQUU3RCxTQUFTLENBQVk7SUFDckIsSUFBSSxHQUFVLEVBQUUsQ0FBQztJQUNqQixVQUFVLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUMzQyxlQUFlLEdBQUcsTUFBTSxDQUFD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dGVyLFxuICBpbnB1dCxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFNpbXBsZUNoYW5nZXNcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgU3RhZ2VBY3RvclJ1bGUsIFRhZywgVGFza0Fzc2lnbm1lbnRUeXBlLCBXb3JrZmxvd1N0YWdlIH0gZnJvbSAndmVyYmVuLXdvcmtmbG93LXVpL3NyYy9saWIvbW9kZWxzJztcbmltcG9ydCB7IE5vZGVNYW5hZ2VtZW50U2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL25vZGUtbWFuYWdlbWVudC5zZXJ2aWNlJztcbmltcG9ydCB7IFBvcHVwU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3BvcHVwLnNlcnZpY2UnO1xuaW1wb3J0IHsgV29ya2Zsb3dEYXRhU2VydmljZSB9IGZyb20gJy4uL3dvcmtmbG93LWRhdGEuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1zdGFnZS1kaWFsb2cnLFxuICB0ZW1wbGF0ZVVybDogJy4vc3RhZ2UtZGlhbG9nLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc3RhZ2UtZGlhbG9nLmNvbXBvbmVudC5jc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3RhZ2VEaWFsb2dDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAvLyBVc2UgQW5ndWxhcidzIHNpZ25hbC1iYXNlZCBpbnB1dFxuICB2aXNpYmxlID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xuICBzdGFnZURhdGEgPSBpbnB1dC5yZXF1aXJlZDxQYXJ0aWFsPFdvcmtmbG93U3RhZ2U+Pih7fSk7IC8vIEZvciBlZGl0aW5nIGV4aXN0aW5nIHN0YWdlc1xuICBAT3V0cHV0KCkgY2xvc2VkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgc2F2ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPFBhcnRpYWw8V29ya2Zsb3dTdGFnZT4+KCk7XG5cbiAgc3RhZ2VGb3JtOiBGb3JtR3JvdXA7XG4gIHRhZ3M6IFRhZ1tdID0gW107XG4gIGFjdG9yUnVsZXMgPSBPYmplY3QudmFsdWVzKFN0YWdlQWN0b3JSdWxlKTtcbiAgYXNzaWdubWVudFR5cGVzID0gT2JqZWN0LnZhbHVlcyhUYXNrQXNzaWdubWVudFR5cGUpO1xuXG4gIGhhc091dGdvaW5nQ29ubmVjdGlvbnM6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGZiOiBGb3JtQnVpbGRlcixcbiAgICBwcml2YXRlIGRhdGFTZXJ2aWNlOiBXb3JrZmxvd0RhdGFTZXJ2aWNlLFxuICAgIHByaXZhdGUgbm9kZVNlcnZpY2U6IE5vZGVNYW5hZ2VtZW50U2VydmljZSxcbiAgICBwcml2YXRlIHBvcHVwU2VydmljZTogUG9wdXBTZXJ2aWNlXG4gICkge1xuICAgIHRoaXMuc3RhZ2VGb3JtID0gdGhpcy5mYi5ncm91cCh7XG4gICAgICBOYW1lOiBbJycsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxuICAgICAgRGVzY3JpcHRpb246IFsnJ10sXG4gICAgICBNaW5Ob09mQWN0b3I6IFswXSxcbiAgICAgIER1cmF0aW9uOiBbMF0sXG4gICAgICBQYXNzT25SdWxlOiBbJyddLFxuICAgICAgQWN0b3JSdWxlOiBbU3RhZ2VBY3RvclJ1bGUuTm9uZV0sXG4gICAgICBBc3NpZ25tZW50VHlwZTogW1Rhc2tBc3NpZ25tZW50VHlwZS5BdXRvUm91dGVdLFxuICAgICAgSXNFbnRyeVBvaW50OiBbZmFsc2VdLFxuICAgICAgSXNFeGl0UG9pbnQ6IFtmYWxzZV0sXG4gICAgICBUYWdzOiBbW11dLFxuICAgIH0pO1xuXG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIC8vIElmIHN0YWdlRGF0YSBjaGFuZ2VzLCB1cGRhdGUgdGhlIGZvcm1cbiAgICAgIGNvbnN0IHN0YWdlRGF0YSA9IHRoaXMuc3RhZ2VEYXRhKCk7XG4gICAgICBpZiAoc3RhZ2VEYXRhKSB7XG4gICAgICAgIHRoaXMuc3RhZ2VGb3JtLnBhdGNoVmFsdWUoe1xuICAgICAgICAgIE5hbWU6IHN0YWdlRGF0YS5OYW1lIHx8ICcnLFxuICAgICAgICAgIERlc2NyaXB0aW9uOiBzdGFnZURhdGEuRGVzY3JpcHRpb24gfHwgJycsXG4gICAgICAgICAgTWluTm9PZkFjdG9yOiBzdGFnZURhdGEuTWluTm9PZkFjdG9yIHx8IDAsXG4gICAgICAgICAgRHVyYXRpb246IHN0YWdlRGF0YS5EdXJhdGlvbiB8fCAwLFxuICAgICAgICAgIFBhc3NPblJ1bGU6IHN0YWdlRGF0YS5QYXNzT25SdWxlIHx8ICcnLFxuICAgICAgICAgIEFjdG9yUnVsZTogc3RhZ2VEYXRhLkFjdG9yUnVsZSB8fCBTdGFnZUFjdG9yUnVsZS5Ob25lLFxuICAgICAgICAgIEFzc2lnbm1lbnRUeXBlOlxuICAgICAgICAgICAgc3RhZ2VEYXRhLkFzc2lnbm1lbnRUeXBlIHx8IFRhc2tBc3NpZ25tZW50VHlwZS5BdXRvUm91dGUsXG4gICAgICAgICAgSXNFbnRyeVBvaW50OiBzdGFnZURhdGEuSXNFbnRyeVBvaW50IHx8IGZhbHNlLFxuICAgICAgICAgIElzRXhpdFBvaW50OiBzdGFnZURhdGEuSXNFeGl0UG9pbnQgfHwgZmFsc2UsXG4gICAgICAgICAgVGFnczogc3RhZ2VEYXRhLlRhZ3MgfHwgW10sXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgLy8gTG9hZCB0YWdzXG4gICAgdGhpcy5sb2FkVGFncygpO1xuXG4gICAgLy8gSWYgZWRpdGluZyBhbiBleGlzdGluZyBzdGFnZSwgcG9wdWxhdGUgZm9ybVxuICAgIHRoaXMuaW5pdEZvcm1XaXRoU3RhZ2VEYXRhKCk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7IH1cblxuICAvKipcbiAgICogTG9hZCB0YWdzIGZyb20gZGF0YSBzZXJ2aWNlXG4gICAqL1xuICBwcml2YXRlIGxvYWRUYWdzKCk6IHZvaWQge1xuICAgIHRoaXMuZGF0YVNlcnZpY2UuZ2V0VGFncygpLnRoZW4oKGRhdGEpID0+IHtcbiAgICAgIHRoaXMudGFncyA9IGRhdGEuUmVzdWx0O1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEluaXRpYWxpemUgZm9ybSB3aXRoIHN0YWdlIGRhdGEgaWYgcHJvdmlkZWRcbiAgICovXG4gIHByaXZhdGUgaW5pdEZvcm1XaXRoU3RhZ2VEYXRhKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnN0YWdlRGF0YSgpKSB7XG4gICAgICBjb25zb2xlLmxvZygnSW5pdGlhbGl6aW5nIGZvcm0gd2l0aCBzdGFnZSBkYXRhOicsIHRoaXMuc3RhZ2VEYXRhKCkpO1xuICAgICAgdGhpcy5zdGFnZUZvcm0ucGF0Y2hWYWx1ZSh7XG4gICAgICAgIE5hbWU6IHRoaXMuc3RhZ2VEYXRhKCkuTmFtZSB8fCAnJyxcbiAgICAgICAgRGVzY3JpcHRpb246IHRoaXMuc3RhZ2VEYXRhKCkuRGVzY3JpcHRpb24gfHwgJycsXG4gICAgICAgIE1pbk5vT2ZBY3RvcjogdGhpcy5zdGFnZURhdGEoKS5NaW5Ob09mQWN0b3IgfHwgMCxcbiAgICAgICAgRHVyYXRpb246IHRoaXMuc3RhZ2VEYXRhKCkuRHVyYXRpb24gfHwgMCxcbiAgICAgICAgUGFzc09uUnVsZTogdGhpcy5zdGFnZURhdGEoKS5QYXNzT25SdWxlIHx8ICcnLFxuICAgICAgICBBY3RvclJ1bGU6IHRoaXMuc3RhZ2VEYXRhKCkuQWN0b3JSdWxlIHx8IFN0YWdlQWN0b3JSdWxlLk5vbmUsXG4gICAgICAgIEFzc2lnbm1lbnRUeXBlOlxuICAgICAgICAgIHRoaXMuc3RhZ2VEYXRhKCkuQXNzaWdubWVudFR5cGUgfHwgVGFza0Fzc2lnbm1lbnRUeXBlLkF1dG9Sb3V0ZSxcbiAgICAgICAgSXNFbnRyeVBvaW50OiB0aGlzLnN0YWdlRGF0YSgpLklzRW50cnlQb2ludCB8fCBmYWxzZSxcbiAgICAgICAgSXNFeGl0UG9pbnQ6IHRoaXMuc3RhZ2VEYXRhKCkuSXNFeGl0UG9pbnQgfHwgZmFsc2UsXG4gICAgICAgIFRhZ3M6IHRoaXMuc3RhZ2VEYXRhKCkuVGFncyB8fCBbXSxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgY2hlY2tPdXRnb2luZ0Nvbm5lY3Rpb25zKCk6IHZvaWQge1xuICAgIGNvbnN0IHN0YWdlRGF0YSA9IHRoaXMuc3RhZ2VEYXRhKCk7XG5cbiAgICBpZiAoc3RhZ2VEYXRhICYmIHN0YWdlRGF0YS5Db2RlKSB7XG4gICAgICAvLyBDaGVjayBpZiB0aGVyZSBhcmUgb3V0Z29pbmcgY29ubmVjdGlvbnMgZnJvbSB0aGlzIHN0YWdlXG4gICAgICB0aGlzLmhhc091dGdvaW5nQ29ubmVjdGlvbnMgPSB0aGlzLm5vZGVTZXJ2aWNlLmhhc091dGdvaW5nQ29ubmVjdGlvbnMoXG4gICAgICAgIHN0YWdlRGF0YS5Db2RlXG4gICAgICApO1xuXG4gICAgICAvLyBJZiB0aGVyZSBhcmUgb3V0Z29pbmcgY29ubmVjdGlvbnMsIGRpc2FibGUgSXNFeGl0UG9pbnRcbiAgICAgIGlmICh0aGlzLmhhc091dGdvaW5nQ29ubmVjdGlvbnMpIHtcbiAgICAgICAgdGhpcy5zdGFnZUZvcm0uZ2V0KCdJc0V4aXRQb2ludCcpPy5kaXNhYmxlKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnN0YWdlRm9ybS5nZXQoJ0lzRXhpdFBvaW50Jyk/LmVuYWJsZSgpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIG9uRGlhbG9nQ2xvc2UoZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgIHRoaXMuY2xvc2VkLmVtaXQoKTtcbiAgfVxuXG4gIHNhdmVTdGFnZSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zdGFnZUZvcm0udmFsaWQpIHtcbiAgICAgIGNvbnN0IHN0YWdlRGF0YTogUGFydGlhbDxXb3JrZmxvd1N0YWdlPiA9IHtcbiAgICAgICAgLi4udGhpcy5zdGFnZUZvcm0udmFsdWUsXG4gICAgICB9O1xuXG4gICAgICAvLyBSZXNldCBmb3JtIGFmdGVyIHNhdmluZ1xuICAgICAgdGhpcy5zdGFnZUZvcm0ucmVzZXQoKTtcblxuICAgICAgLy8gRW1pdCB0aGUgc2F2ZWQgZGF0YSB0byB0aGUgcGFyZW50IGNvbXBvbmVudFxuICAgICAgdGhpcy5zYXZlZC5lbWl0KHN0YWdlRGF0YSk7XG4gICAgfVxuICB9XG5cbiAgb25EaWFsb2dPcGVuKGV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgICBjb25zb2xlLmxvZygnRGlhbG9nIG9wZW5lZDonLCBldmVudCk7XG4gIH1cblxuICBkZWxldGVTdGFnZSgpOiB2b2lkIHtcbiAgICBjb25zdCBzdGFnZURhdGEgPSB0aGlzLnN0YWdlRGF0YSgpO1xuICAgIGNvbnNvbGUubG9nKHN0YWdlRGF0YSk7XG4gICAgaWYgKHN0YWdlRGF0YSkge1xuICAgICAgY29uc3Qgc3RhZ2VDb2RlID0gc3RhZ2VEYXRhLkNvZGU7XG4gICAgICBpZiAoc3RhZ2VDb2RlKSB7XG4gICAgICAgIHRoaXMuZGF0YVNlcnZpY2VcbiAgICAgICAgICAuZGVsZXRlV29ya2Zsb3dTdGFnZXMoW3N0YWdlQ29kZV0pXG4gICAgICAgICAgLnRoZW4oKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZygnU3RhZ2UgZGVsZXRlZCBzdWNjZXNzZnVsbHk6JywgcmVzcG9uc2UpO1xuICAgICAgICAgICAgLy8gQ2FsbCB0aGUgbm9kZSBzZXJ2aWNlIHRvIGRlbGV0ZSB0aGUgc3RhZ2VcbiAgICAgICAgICAgIGNvbnN0IGRlbGV0ZWQgPSB0aGlzLm5vZGVTZXJ2aWNlLmRlbGV0ZU5vZGUoc3RhZ2VDb2RlKTtcbiAgICAgICAgICAgIGlmIChkZWxldGVkKSB7XG4gICAgICAgICAgICAgIC8vIEVtaXQgYW4gZXZlbnQgdG8gbm90aWZ5IHBhcmVudCBjb21wb25lbnRcbiAgICAgICAgICAgICAgdGhpcy5jbG9zZWQuZW1pdCgpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgY29uc29sZS5lcnJvcignRmFpbGVkIHRvIGRlbGV0ZSBzdGFnZTonLCBzdGFnZUNvZGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pXG4gICAgICAgICAgLmNhdGNoKChlcnJvcikgPT4ge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgZGVsZXRpbmcgc3RhZ2U6JywgZXJyb3IpO1xuICAgICAgICAgIH0pO1xuICAgICAgfSBlbHNlIGlmIChzdGFnZURhdGEuaWQpIHtcbiAgICAgICAgLy8gQ2FsbCB0aGUgbm9kZSBzZXJ2aWNlIHRvIGRlbGV0ZSB0aGUgc3RhZ2VcbiAgICAgICAgY29uc3QgZGVsZXRlZCA9IHRoaXMubm9kZVNlcnZpY2UuZGVsZXRlTm9kZShzdGFnZURhdGEuaWQpO1xuICAgICAgICBpZiAoZGVsZXRlZCkge1xuICAgICAgICAgIC8vIEVtaXQgYW4gZXZlbnQgdG8gbm90aWZ5IHBhcmVudCBjb21wb25lbnRcbiAgICAgICAgICB0aGlzLmNsb3NlZC5lbWl0KCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc29sZS5lcnJvcignRmFpbGVkIHRvIGRlbGV0ZSBzdGFnZTonLCBzdGFnZURhdGEuQ29kZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIjx2ZXJiZW4tZGlhbG9ndWVcbiAgW3Nob3dDbG9zZUljb25dPVwidHJ1ZVwiXG4gIFtkaXNtaXNzT3V0c2lkZUNsaWNrXT1cInRydWVcIlxuICBbY2xvc2VPbkVzY2FwZV09XCJ0cnVlXCJcbiAgW3NpemVdPVwiJ21lZGl1bSdcIlxuICBbbW9kZV09XCInZHJhd2VyJ1wiXG4gIFtkaXNhYmxlRm9vdGVyXT1cImZhbHNlXCJcbiAgW2lzVmlzaWJsZV09XCJ2aXNpYmxlKClcIlxuICBbaGVhZGVyVGVtcGxhdGVdPVwiaGVhZGVyVGVtcGxhdGVcIlxuICBbYm9keVRlbXBsYXRlXT1cImJvZHlUZW1wbGF0ZVwiXG4gIFtmb290ZXJUZW1wbGF0ZV09XCJmb290ZXJUZW1wbGF0ZVwiXG4gIChvcGVuTW9kYWwpPVwib25EaWFsb2dPcGVuKCRldmVudClcIlxuICAoY2xvc2VNb2RhbCk9XCJvbkRpYWxvZ0Nsb3NlKCRldmVudClcIlxuPlxuPC92ZXJiZW4tZGlhbG9ndWU+XG5cbjxuZy10ZW1wbGF0ZSAjaGVhZGVyVGVtcGxhdGU+XG4gIDxkaXYgY2xhc3M9XCJwLTQgYm9yZGVyLWIgYm9yZGVyLWdyYXktMjAwXCI+XG4gICAgPGgyIGNsYXNzPVwidGV4dC14bCBmb250LW1lZGl1bSBtLTBcIj5TdGFnZSBQcm9wZXJ0aWVzPC9oMj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2JvZHlUZW1wbGF0ZT5cbiAgPGRpdiBjbGFzcz1cInAtNFwiPlxuICAgIDxmb3JtIFtmb3JtR3JvdXBdPVwic3RhZ2VGb3JtXCIgY2xhc3M9XCJncmlkIGdhcC15LTRcIj5cbiAgICAgIDwhLS0gU3RhZ2UgTmFtZSAtLT5cbiAgICAgIDx2ZXJiZW5hLWlucHV0XG4gICAgICAgIG5hbWU9XCJOYW1lXCJcbiAgICAgICAgbGFiZWw9XCJTdGFnZSBOYW1lXCJcbiAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiTmFtZVwiXG4gICAgICAgIHBsYWNlSG9sZGVyPVwiRW50ZXIgU3RhZ2UgTmFtZVwiXG4gICAgICAvPlxuXG4gICAgICA8IS0tIERlc2NyaXB0aW9uIC0tPlxuICAgICAgPHZlcmJlbmEtdGV4dGFyZWFcbiAgICAgICAgbGFiZWw9XCJEZXNjcmlwdGlvblwiXG4gICAgICAgIFtyb3dzXT1cIjNcIlxuICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJEZXNjcmlwdGlvblwiXG4gICAgICA+PC92ZXJiZW5hLXRleHRhcmVhPlxuXG4gICAgICA8IS0tIFJlY2lwaWVudCBDb3VudCAtLT5cbiAgICAgIDx2ZXJiZW5hLWlucHV0XG4gICAgICAgIG5hbWU9XCJNaW5Ob09mQWN0b3JcIlxuICAgICAgICBsYWJlbD1cIlJlY2lwaWVudCBDb3VudFwiXG4gICAgICAgIHR5cGU9XCJudW1iZXJcIlxuICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJNaW5Ob09mQWN0b3JcIlxuICAgICAgICBwbGFjZUhvbGRlcj1cIkVudGVyIENvdW50XCJcbiAgICAgIC8+XG5cbiAgICAgIDwhLS0gUGFzcyBPbiBSdWxlIC0tPlxuICAgICAgPHZlcmJlbmEtaW5wdXRcbiAgICAgICAgbmFtZT1cIlBhc3NPblJ1bGVcIlxuICAgICAgICBsYWJlbD1cIlBhc3MgT24gUnVsZVwiXG4gICAgICAgIGZvcm1Db250cm9sTmFtZT1cIlBhc3NPblJ1bGVcIlxuICAgICAgICBwbGFjZUhvbGRlcj1cIlNlbGVjdCBSdWxlXCJcbiAgICAgIC8+XG5cbiAgICAgIDwhLS0gRHVyYXRpb24gLS0+XG4gICAgICA8dmVyYmVuYS1pbnB1dFxuICAgICAgICBuYW1lPVwiRHVyYXRpb25cIlxuICAgICAgICBsYWJlbD1cIkR1cmF0aW9uXCJcbiAgICAgICAgdHlwZT1cIm51bWJlclwiXG4gICAgICAgIGZvcm1Db250cm9sTmFtZT1cIkR1cmF0aW9uXCJcbiAgICAgICAgcGxhY2VIb2xkZXI9XCJTZXQgRHVyYXRpb25cIlxuICAgICAgLz5cblxuICAgICAgPCEtLSBBY3RvciBSdWxlIC0tPlxuICAgICAgPGRpdiBjbGFzcz1cInNwYWNlLXktMVwiPlxuICAgICAgICA8bGFiZWwgZm9yPVwiYWN0b3ItcnVsZVwiIGNsYXNzPVwidGV4dC1zbSBmb250LXNlbWlib2xkIHRleHQtWyMzRTNFM0VdXCI+XG4gICAgICAgICAgQWN0b3IgUnVsZVxuICAgICAgICA8L2xhYmVsPlxuICAgICAgICA8dmVyYmVuLWRyb3AtZG93blxuICAgICAgICAgIGlkPVwiYWN0b3ItcnVsZVwiXG4gICAgICAgICAgc3R5bGVDbGFzcz1cInctZnVsbFwiXG4gICAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgICBbbXVsdGlzZWxlY3RdPVwiZmFsc2VcIlxuICAgICAgICAgIHBsYWNlaG9sZGVyPVwiU2VsZWN0IFJ1bGVcIlxuICAgICAgICAgIFtvcHRpb25zXT1cImFjdG9yUnVsZXNcIlxuICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cIkFjdG9yUnVsZVwiXG4gICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgICAgIFtzaG93Q2xlYXJdPVwidHJ1ZVwiXG4gICAgICAgID5cbiAgICAgICAgPC92ZXJiZW4tZHJvcC1kb3duPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDwhLS0gQXNzaWdubWVudCBUeXBlIC0tPlxuICAgICAgPGRpdiBjbGFzcz1cInNwYWNlLXktMVwiPlxuICAgICAgICA8bGFiZWwgZm9yPVwiYXNzaWdubWVudFwiIGNsYXNzPVwidGV4dC1zbSBmb250LXNlbWlib2xkIHRleHQtWyMzRTNFM0VdXCI+XG4gICAgICAgICAgQXNzaWdubWVudCBUeXBlXG4gICAgICAgIDwvbGFiZWw+XG4gICAgICAgIDx2ZXJiZW4tZHJvcC1kb3duXG4gICAgICAgICAgaWQ9XCJhc3NpZ25tZW50XCJcbiAgICAgICAgICBzdHlsZUNsYXNzPVwidy1mdWxsXCJcbiAgICAgICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgICAgIFttdWx0aXNlbGVjdF09XCJmYWxzZVwiXG4gICAgICAgICAgcGxhY2Vob2xkZXI9XCJTZWxlY3RcIlxuICAgICAgICAgIFtvcHRpb25zXT1cImFzc2lnbm1lbnRUeXBlc1wiXG4gICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiQXNzaWdubWVudFR5cGVcIlxuICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcbiAgICAgICAgICBbc2hvd0NsZWFyXT1cInRydWVcIlxuICAgICAgICA+XG4gICAgICAgIDwvdmVyYmVuLWRyb3AtZG93bj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8IS0tIFRhZ3MgLS0+XG4gICAgICA8ZGl2IGNsYXNzPVwic3BhY2UteS0xXCI+XG4gICAgICAgIDxsYWJlbCBmb3I9XCJ0YWdzXCIgY2xhc3M9XCJ0ZXh0LXNtIGZvbnQtc2VtaWJvbGQgdGV4dC1bIzNFM0UzRV1cIj5cbiAgICAgICAgICBUYWdzXG4gICAgICAgIDwvbGFiZWw+XG4gICAgICAgIDx2ZXJiZW4tZHJvcC1kb3duXG4gICAgICAgICAgaWQ9XCJ0YWdzXCJcbiAgICAgICAgICBzZWxlY3RLZXk9XCJDb2RlXCJcbiAgICAgICAgICBzdHlsZUNsYXNzPVwidy1mdWxsXCJcbiAgICAgICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgICAgIFttdWx0aXNlbGVjdF09XCJ0cnVlXCJcbiAgICAgICAgICBwbGFjZWhvbGRlcj1cIlNlbGVjdFwiXG4gICAgICAgICAgW29wdGlvbnNdPVwidGFnc1wiXG4gICAgICAgICAgb3B0aW9uTGFiZWw9XCJOYW1lXCJcbiAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJUYWdzXCJcbiAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXG4gICAgICAgICAgW2ZpbHRlcl09XCJ0cnVlXCJcbiAgICAgICAgICBmaWx0ZXJCeT1cIk5hbWVcIlxuICAgICAgICA+XG4gICAgICAgIDwvdmVyYmVuLWRyb3AtZG93bj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8IS0tIElzIEVudHJ5IFBvaW50IC0tPlxuICAgICAgPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIGdhcC00XCI+XG4gICAgICAgIDxsYWJlbCBmb3I9XCJpcy1lbnRyeS1wb2ludFwiIGNsYXNzPVwidGV4dC1zbSBmb250LXNlbWlib2xkIHRleHQtWyMzRTNFM0VdXCI+XG4gICAgICAgICAgRW50cnkgUG9pbnRcbiAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgPHZlcmJlbmEtc3dpdGNoXG4gICAgICAgICAgaWQ9XCJpcy1lbnRyeS1wb2ludFwiXG4gICAgICAgICAgb25UZXh0PVwiWWVzXCJcbiAgICAgICAgICBvZmZUZXh0PVwiTm9cIlxuICAgICAgICAgIFtvbkNvbG9yXT1cIicjMUEyMzdFJ1wiXG4gICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiSXNFbnRyeVBvaW50XCJcbiAgICAgICAgPjwvdmVyYmVuYS1zd2l0Y2g+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPCEtLSBJcyBFeGl0IFBvaW50IC0tPlxuICAgICAgPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIGdhcC00XCI+XG4gICAgICAgIDxsYWJlbCBmb3I9XCJpcy1leGl0LXBvaW50XCIgY2xhc3M9XCJ0ZXh0LXNtIGZvbnQtc2VtaWJvbGQgdGV4dC1bIzNFM0UzRV1cIj5cbiAgICAgICAgICBFeGl0IFBvaW50XG4gICAgICAgIDwvbGFiZWw+XG4gICAgICAgIDx2ZXJiZW5hLXN3aXRjaFxuICAgICAgICAgIGlkPVwiaXMtZXhpdC1wb2ludFwiXG4gICAgICAgICAgb25UZXh0PVwiWWVzXCJcbiAgICAgICAgICBvZmZUZXh0PVwiTm9cIlxuICAgICAgICAgIFtvbkNvbG9yXT1cIicjMUEyMzdFJ1wiXG4gICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiSXNFeGl0UG9pbnRcIlxuICAgICAgICA+PC92ZXJiZW5hLXN3aXRjaD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZm9ybT5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2Zvb3RlclRlbXBsYXRlPlxuICA8ZGl2IGNsYXNzPVwidy1mdWxsIGZsZXgganVzdGlmeS1iZXR3ZWVuIGdhcC00IHAtNCBib3JkZXItdCBib3JkZXItZ3JheS0yMDBcIj5cbiAgICA8IS0tIDxidXR0b25cbiAgICAgIGNsYXNzPVwicHgtNCBweS0yIG1yLTIgYmctd2hpdGUgYm9yZGVyIGJvcmRlci1ncmF5LTIwMCByb3VuZGVkIHRleHQtc20gZm9udC1tZWRpdW1cIlxuICAgICAgKGNsaWNrKT1cIm9uRGlhbG9nQ2xvc2UoJGV2ZW50KVwiXG4gICAgPlxuICAgICAgQ2FuY2VsXG4gICAgPC9idXR0b24+XG4gICAgPGJ1dHRvblxuICAgICAgY2xhc3M9XCJweC00IHB5LTIgYmcteWVsbG93LTMwMCB0ZXh0LWJsYWNrIHJvdW5kZWQgdGV4dC1zbSBmb250LW1lZGl1bVwiXG4gICAgICAoY2xpY2spPVwic2F2ZVN0YWdlKClcIlxuICAgICAgW2Rpc2FibGVkXT1cInN0YWdlRm9ybS5pbnZhbGlkXCJcbiAgICA+XG4gICAgICBTYXZlXG4gICAgPC9idXR0b24+XG4gICAgPGJ1dHRvblxuICAgICAgY2xhc3M9XCJweC00IHB5LTIgbXItMiBiZy13aGl0ZSBib3JkZXIgYm9yZGVyLWdyYXktMjAwIHJvdW5kZWQgdGV4dC1zbSBmb250LW1lZGl1bVwiXG4gICAgICAoY2xpY2spPVwiZGVsZXRlU3RhZ2UoKVwiXG4gICAgPlxuICAgICAgRGVsZXRlXG4gICAgPC9idXR0b24+IC0tPlxuICAgIDx2ZXJiZW5hLWJ1dHRvblxuICAgICAgd2lkdGg9XCIxMTRweFwiXG4gICAgICBoZWlnaHQ9XCIzOXB4XCJcbiAgICAgIHRleHQ9XCJEZWxldGVcIlxuICAgICAgYmdDb2xvcj1cIiM5OTk5OTlcIlxuICAgICAgdGV4dENvbG9yPVwiIzQwNDA0MFwiXG4gICAgICBib3JkZXJSYWRpdXM9XCIxMHB4XCJcbiAgICAgIChjbGljayk9XCJkZWxldGVTdGFnZSgpXCJcbiAgICA+PC92ZXJiZW5hLWJ1dHRvbj5cblxuICAgIDx2ZXJiZW5hLWJ1dHRvblxuICAgICAgKGNsaWNrKT1cIm9uRGlhbG9nQ2xvc2UoJGV2ZW50KVwiXG4gICAgICB0ZXh0PVwiQ2FuY2VsXCJcbiAgICAgIHN0eWxlVHlwZT1cInlsdy1vdXRsaW5lXCJcbiAgICAgIGNsYXNzPVwibWwtYXV0b1wiXG4gICAgPjwvdmVyYmVuYS1idXR0b24+XG4gICAgPHZlcmJlbmEtYnV0dG9uXG4gICAgICB0eXBlPVwic3VibWl0XCJcbiAgICAgIHRleHQ9XCJTYXZlXCJcbiAgICAgIGJnQ29sb3I9XCIjRkZFNjgxXCJcbiAgICAgIHRleHRDb2xvcj1cIiM0MDQwNDBcIlxuICAgICAgYm9yZGVyUmFkaXVzPVwiMTBweFwiXG4gICAgICBwZD1cIjEwcHggMjBweFwiXG4gICAgICB3aWR0aD1cIjExNHB4XCJcbiAgICAgIGhlaWdodD1cIjM5cHhcIlxuICAgICAgKGNsaWNrKT1cInNhdmVTdGFnZSgpXCJcbiAgICAgIFtkaXNhYmxlXT1cInN0YWdlRm9ybS5pbnZhbGlkXCJcbiAgICA+PC92ZXJiZW5hLWJ1dHRvbj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
175
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhZ2UtZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZlcmJlbi13b3JrZmxvdy11aS9zcmMvbGliL2NvbXBvbmVudHMvd29ya2Zsb3ctZGVzaWduZXIvc3RhZ2UtZGlhbG9nL3N0YWdlLWRpYWxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92ZXJiZW4td29ya2Zsb3ctdWkvc3JjL2xpYi9jb21wb25lbnRzL3dvcmtmbG93LWRlc2lnbmVyL3N0YWdlLWRpYWxvZy9zdGFnZS1kaWFsb2cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxNQUFNLEVBQ04sWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBRVAsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUEwQixVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRSxPQUFPLEVBQUUsY0FBYyxFQUFPLGtCQUFrQixFQUFpQixNQUFNLG1DQUFtQyxDQUFDOzs7Ozs7O0FBVTNHLE1BQU0sT0FBTyxvQkFBb0I7SUFlckI7SUFDQTtJQUNBO0lBQ0E7SUFqQlYsbUNBQW1DO0lBQ25DLE9BQU8sR0FBRyxLQUFLLENBQVUsS0FBSyxDQUFDLENBQUM7SUFDaEMsU0FBUyxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQXlCLEVBQUUsQ0FBQyxDQUFDLENBQUMsOEJBQThCO0lBQzVFLE1BQU0sR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBQzVCLEtBQUssR0FBRyxJQUFJLFlBQVksRUFBMEIsQ0FBQztJQUU3RCxTQUFTLENBQVk7SUFDckIsSUFBSSxHQUFVLEVBQUUsQ0FBQztJQUNqQixVQUFVLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUMzQyxlQUFlLEdBQUcsTUFBTSxDQUFD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dGVyLFxuICBpbnB1dCxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFNpbXBsZUNoYW5nZXNcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgU3RhZ2VBY3RvclJ1bGUsIFRhZywgVGFza0Fzc2lnbm1lbnRUeXBlLCBXb3JrZmxvd1N0YWdlIH0gZnJvbSAndmVyYmVuLXdvcmtmbG93LXVpL3NyYy9saWIvbW9kZWxzJztcbmltcG9ydCB7IE5vZGVNYW5hZ2VtZW50U2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL25vZGUtbWFuYWdlbWVudC5zZXJ2aWNlJztcbmltcG9ydCB7IFBvcHVwU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3BvcHVwLnNlcnZpY2UnO1xuaW1wb3J0IHsgV29ya2Zsb3dEYXRhU2VydmljZSB9IGZyb20gJy4uL3dvcmtmbG93LWRhdGEuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1zdGFnZS1kaWFsb2cnLFxuICB0ZW1wbGF0ZVVybDogJy4vc3RhZ2UtZGlhbG9nLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc3RhZ2UtZGlhbG9nLmNvbXBvbmVudC5jc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgU3RhZ2VEaWFsb2dDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAvLyBVc2UgQW5ndWxhcidzIHNpZ25hbC1iYXNlZCBpbnB1dFxuICB2aXNpYmxlID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xuICBzdGFnZURhdGEgPSBpbnB1dC5yZXF1aXJlZDxQYXJ0aWFsPFdvcmtmbG93U3RhZ2U+Pih7fSk7IC8vIEZvciBlZGl0aW5nIGV4aXN0aW5nIHN0YWdlc1xuICBAT3V0cHV0KCkgY2xvc2VkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgc2F2ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPFBhcnRpYWw8V29ya2Zsb3dTdGFnZT4+KCk7XG5cbiAgc3RhZ2VGb3JtOiBGb3JtR3JvdXA7XG4gIHRhZ3M6IFRhZ1tdID0gW107XG4gIGFjdG9yUnVsZXMgPSBPYmplY3QudmFsdWVzKFN0YWdlQWN0b3JSdWxlKTtcbiAgYXNzaWdubWVudFR5cGVzID0gT2JqZWN0LnZhbHVlcyhUYXNrQXNzaWdubWVudFR5cGUpO1xuXG4gIGhhc091dGdvaW5nQ29ubmVjdGlvbnM6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGZiOiBGb3JtQnVpbGRlcixcbiAgICBwcml2YXRlIGRhdGFTZXJ2aWNlOiBXb3JrZmxvd0RhdGFTZXJ2aWNlLFxuICAgIHByaXZhdGUgbm9kZVNlcnZpY2U6IE5vZGVNYW5hZ2VtZW50U2VydmljZSxcbiAgICBwcml2YXRlIHBvcHVwU2VydmljZTogUG9wdXBTZXJ2aWNlXG4gICkge1xuICAgIHRoaXMuc3RhZ2VGb3JtID0gdGhpcy5mYi5ncm91cCh7XG4gICAgICBOYW1lOiBbJycsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxuICAgICAgRGVzY3JpcHRpb246IFsnJ10sXG4gICAgICBNaW5Ob09mQWN0b3I6IFswXSxcbiAgICAgIER1cmF0aW9uOiBbMF0sXG4gICAgICBQYXNzT25SdWxlOiBbJyddLFxuICAgICAgQWN0b3JSdWxlOiBbU3RhZ2VBY3RvclJ1bGUuTm9uZV0sXG4gICAgICBBc3NpZ25tZW50VHlwZTogW1Rhc2tBc3NpZ25tZW50VHlwZS5BdXRvUm91dGVdLFxuICAgICAgSXNFbnRyeVBvaW50OiBbZmFsc2VdLFxuICAgICAgSXNFeGl0UG9pbnQ6IFtmYWxzZV0sXG4gICAgICBUYWdzOiBbW11dLFxuICAgIH0pO1xuXG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIC8vIElmIHN0YWdlRGF0YSBjaGFuZ2VzLCB1cGRhdGUgdGhlIGZvcm1cbiAgICAgIGNvbnN0IHN0YWdlRGF0YSA9IHRoaXMuc3RhZ2VEYXRhKCk7XG4gICAgICBpZiAoc3RhZ2VEYXRhKSB7XG4gICAgICAgIHRoaXMuc3RhZ2VGb3JtLnBhdGNoVmFsdWUoe1xuICAgICAgICAgIE5hbWU6IHN0YWdlRGF0YS5OYW1lIHx8ICcnLFxuICAgICAgICAgIERlc2NyaXB0aW9uOiBzdGFnZURhdGEuRGVzY3JpcHRpb24gfHwgJycsXG4gICAgICAgICAgTWluTm9PZkFjdG9yOiBzdGFnZURhdGEuTWluTm9PZkFjdG9yIHx8IDAsXG4gICAgICAgICAgRHVyYXRpb246IHN0YWdlRGF0YS5EdXJhdGlvbiB8fCAwLFxuICAgICAgICAgIFBhc3NPblJ1bGU6IHN0YWdlRGF0YS5QYXNzT25SdWxlIHx8ICcnLFxuICAgICAgICAgIEFjdG9yUnVsZTogc3RhZ2VEYXRhLkFjdG9yUnVsZSB8fCBTdGFnZUFjdG9yUnVsZS5Ob25lLFxuICAgICAgICAgIEFzc2lnbm1lbnRUeXBlOlxuICAgICAgICAgICAgc3RhZ2VEYXRhLkFzc2lnbm1lbnRUeXBlIHx8IFRhc2tBc3NpZ25tZW50VHlwZS5BdXRvUm91dGUsXG4gICAgICAgICAgSXNFbnRyeVBvaW50OiBzdGFnZURhdGEuSXNFbnRyeVBvaW50IHx8IGZhbHNlLFxuICAgICAgICAgIElzRXhpdFBvaW50OiBzdGFnZURhdGEuSXNFeGl0UG9pbnQgfHwgZmFsc2UsXG4gICAgICAgICAgVGFnczogc3RhZ2VEYXRhLlRhZ3MgfHwgW10sXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgLy8gTG9hZCB0YWdzXG4gICAgdGhpcy5sb2FkVGFncygpO1xuXG4gICAgLy8gSWYgZWRpdGluZyBhbiBleGlzdGluZyBzdGFnZSwgcG9wdWxhdGUgZm9ybVxuICAgIHRoaXMuaW5pdEZvcm1XaXRoU3RhZ2VEYXRhKCk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7IH1cblxuICAvKipcbiAgICogTG9hZCB0YWdzIGZyb20gZGF0YSBzZXJ2aWNlXG4gICAqL1xuICBwcml2YXRlIGxvYWRUYWdzKCk6IHZvaWQge1xuICAgIHRoaXMuZGF0YVNlcnZpY2UuZ2V0VGFncygpLnRoZW4oKGRhdGEpID0+IHtcbiAgICAgIHRoaXMudGFncyA9IGRhdGEuUmVzdWx0O1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEluaXRpYWxpemUgZm9ybSB3aXRoIHN0YWdlIGRhdGEgaWYgcHJvdmlkZWRcbiAgICovXG4gIHByaXZhdGUgaW5pdEZvcm1XaXRoU3RhZ2VEYXRhKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnN0YWdlRGF0YSgpKSB7XG4gICAgICBjb25zb2xlLmxvZygnSW5pdGlhbGl6aW5nIGZvcm0gd2l0aCBzdGFnZSBkYXRhOicsIHRoaXMuc3RhZ2VEYXRhKCkpO1xuICAgICAgdGhpcy5zdGFnZUZvcm0ucGF0Y2hWYWx1ZSh7XG4gICAgICAgIE5hbWU6IHRoaXMuc3RhZ2VEYXRhKCkuTmFtZSB8fCAnJyxcbiAgICAgICAgRGVzY3JpcHRpb246IHRoaXMuc3RhZ2VEYXRhKCkuRGVzY3JpcHRpb24gfHwgJycsXG4gICAgICAgIE1pbk5vT2ZBY3RvcjogdGhpcy5zdGFnZURhdGEoKS5NaW5Ob09mQWN0b3IgfHwgMCxcbiAgICAgICAgRHVyYXRpb246IHRoaXMuc3RhZ2VEYXRhKCkuRHVyYXRpb24gfHwgMCxcbiAgICAgICAgUGFzc09uUnVsZTogdGhpcy5zdGFnZURhdGEoKS5QYXNzT25SdWxlIHx8ICcnLFxuICAgICAgICBBY3RvclJ1bGU6IHRoaXMuc3RhZ2VEYXRhKCkuQWN0b3JSdWxlIHx8IFN0YWdlQWN0b3JSdWxlLk5vbmUsXG4gICAgICAgIEFzc2lnbm1lbnRUeXBlOlxuICAgICAgICAgIHRoaXMuc3RhZ2VEYXRhKCkuQXNzaWdubWVudFR5cGUgfHwgVGFza0Fzc2lnbm1lbnRUeXBlLkF1dG9Sb3V0ZSxcbiAgICAgICAgSXNFbnRyeVBvaW50OiB0aGlzLnN0YWdlRGF0YSgpLklzRW50cnlQb2ludCB8fCBmYWxzZSxcbiAgICAgICAgSXNFeGl0UG9pbnQ6IHRoaXMuc3RhZ2VEYXRhKCkuSXNFeGl0UG9pbnQgfHwgZmFsc2UsXG4gICAgICAgIFRhZ3M6IHRoaXMuc3RhZ2VEYXRhKCkuVGFncyB8fCBbXSxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgY2hlY2tPdXRnb2luZ0Nvbm5lY3Rpb25zKCk6IHZvaWQge1xuICAgIGNvbnN0IHN0YWdlRGF0YSA9IHRoaXMuc3RhZ2VEYXRhKCk7XG5cbiAgICBpZiAoc3RhZ2VEYXRhICYmIHN0YWdlRGF0YS5Db2RlKSB7XG4gICAgICAvLyBDaGVjayBpZiB0aGVyZSBhcmUgb3V0Z29pbmcgY29ubmVjdGlvbnMgZnJvbSB0aGlzIHN0YWdlXG4gICAgICB0aGlzLmhhc091dGdvaW5nQ29ubmVjdGlvbnMgPSB0aGlzLm5vZGVTZXJ2aWNlLmhhc091dGdvaW5nQ29ubmVjdGlvbnMoXG4gICAgICAgIHN0YWdlRGF0YS5Db2RlXG4gICAgICApO1xuXG4gICAgICAvLyBJZiB0aGVyZSBhcmUgb3V0Z29pbmcgY29ubmVjdGlvbnMsIGRpc2FibGUgSXNFeGl0UG9pbnRcbiAgICAgIGlmICh0aGlzLmhhc091dGdvaW5nQ29ubmVjdGlvbnMpIHtcbiAgICAgICAgdGhpcy5zdGFnZUZvcm0uZ2V0KCdJc0V4aXRQb2ludCcpPy5kaXNhYmxlKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnN0YWdlRm9ybS5nZXQoJ0lzRXhpdFBvaW50Jyk/LmVuYWJsZSgpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIG9uRGlhbG9nQ2xvc2UoZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgIHRoaXMuY2xvc2VkLmVtaXQoKTtcbiAgfVxuXG4gIHNhdmVTdGFnZSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zdGFnZUZvcm0udmFsaWQpIHtcbiAgICAgIGNvbnN0IHN0YWdlRGF0YTogUGFydGlhbDxXb3JrZmxvd1N0YWdlPiA9IHtcbiAgICAgICAgLi4udGhpcy5zdGFnZUZvcm0udmFsdWUsXG4gICAgICB9O1xuXG4gICAgICAvLyBSZXNldCBmb3JtIGFmdGVyIHNhdmluZ1xuICAgICAgdGhpcy5zdGFnZUZvcm0ucmVzZXQoKTtcblxuICAgICAgLy8gRW1pdCB0aGUgc2F2ZWQgZGF0YSB0byB0aGUgcGFyZW50IGNvbXBvbmVudFxuICAgICAgdGhpcy5zYXZlZC5lbWl0KHN0YWdlRGF0YSk7XG4gICAgfVxuICB9XG5cbiAgb25EaWFsb2dPcGVuKGV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgICBjb25zb2xlLmxvZygnRGlhbG9nIG9wZW5lZDonLCBldmVudCk7XG4gIH1cblxuICBkZWxldGVTdGFnZSgpOiB2b2lkIHtcbiAgICBjb25zdCBzdGFnZURhdGEgPSB0aGlzLnN0YWdlRGF0YSgpO1xuICAgIGNvbnNvbGUubG9nKHN0YWdlRGF0YSk7XG4gICAgaWYgKHN0YWdlRGF0YSkge1xuICAgICAgY29uc3Qgc3RhZ2VDb2RlID0gc3RhZ2VEYXRhLkNvZGU7XG4gICAgICBpZiAoc3RhZ2VDb2RlKSB7XG4gICAgICAgIHRoaXMuZGF0YVNlcnZpY2VcbiAgICAgICAgICAuZGVsZXRlV29ya2Zsb3dTdGFnZXMoW3N0YWdlQ29kZV0pXG4gICAgICAgICAgLnRoZW4oKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZygnU3RhZ2UgZGVsZXRlZCBzdWNjZXNzZnVsbHk6JywgcmVzcG9uc2UpO1xuICAgICAgICAgICAgLy8gQ2FsbCB0aGUgbm9kZSBzZXJ2aWNlIHRvIGRlbGV0ZSB0aGUgc3RhZ2VcbiAgICAgICAgICAgIGNvbnN0IGRlbGV0ZWQgPSB0aGlzLm5vZGVTZXJ2aWNlLmRlbGV0ZU5vZGUoc3RhZ2VDb2RlKTtcbiAgICAgICAgICAgIGlmIChkZWxldGVkKSB7XG4gICAgICAgICAgICAgIC8vIEVtaXQgYW4gZXZlbnQgdG8gbm90aWZ5IHBhcmVudCBjb21wb25lbnRcbiAgICAgICAgICAgICAgdGhpcy5jbG9zZWQuZW1pdCgpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgY29uc29sZS5lcnJvcignRmFpbGVkIHRvIGRlbGV0ZSBzdGFnZTonLCBzdGFnZUNvZGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pXG4gICAgICAgICAgLmNhdGNoKChlcnJvcikgPT4ge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgZGVsZXRpbmcgc3RhZ2U6JywgZXJyb3IpO1xuICAgICAgICAgIH0pO1xuICAgICAgfSBlbHNlIGlmIChzdGFnZURhdGEuaWQpIHtcbiAgICAgICAgLy8gQ2FsbCB0aGUgbm9kZSBzZXJ2aWNlIHRvIGRlbGV0ZSB0aGUgc3RhZ2VcbiAgICAgICAgY29uc3QgZGVsZXRlZCA9IHRoaXMubm9kZVNlcnZpY2UuZGVsZXRlTm9kZShzdGFnZURhdGEuaWQpO1xuICAgICAgICBpZiAoZGVsZXRlZCkge1xuICAgICAgICAgIC8vIEVtaXQgYW4gZXZlbnQgdG8gbm90aWZ5IHBhcmVudCBjb21wb25lbnRcbiAgICAgICAgICB0aGlzLmNsb3NlZC5lbWl0KCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc29sZS5lcnJvcignRmFpbGVkIHRvIGRlbGV0ZSBzdGFnZTonLCBzdGFnZURhdGEuQ29kZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIjx2ZXJiZW4tZGlhbG9ndWVcbiAgW3Nob3dDbG9zZUljb25dPVwidHJ1ZVwiXG4gIFtkaXNtaXNzT3V0c2lkZUNsaWNrXT1cInRydWVcIlxuICBbY2xvc2VPbkVzY2FwZV09XCJ0cnVlXCJcbiAgW3NpemVdPVwiJ21lZGl1bSdcIlxuICBbbW9kZV09XCInZHJhd2VyJ1wiXG4gIFtkaXNhYmxlRm9vdGVyXT1cImZhbHNlXCJcbiAgW2lzVmlzaWJsZV09XCJ2aXNpYmxlKClcIlxuICBbaGVhZGVyVGVtcGxhdGVdPVwiaGVhZGVyVGVtcGxhdGVcIlxuICBbYm9keVRlbXBsYXRlXT1cImJvZHlUZW1wbGF0ZVwiXG4gIFtmb290ZXJUZW1wbGF0ZV09XCJmb290ZXJUZW1wbGF0ZVwiXG4gIChvcGVuTW9kYWwpPVwib25EaWFsb2dPcGVuKCRldmVudClcIlxuICAoY2xvc2VNb2RhbCk9XCJvbkRpYWxvZ0Nsb3NlKCRldmVudClcIlxuPlxuPC92ZXJiZW4tZGlhbG9ndWU+XG5cbjxuZy10ZW1wbGF0ZSAjaGVhZGVyVGVtcGxhdGU+XG4gIDxkaXYgY2xhc3M9XCJwLTQgYm9yZGVyLWIgYm9yZGVyLWdyYXktMjAwXCI+XG4gICAgPGgyIGNsYXNzPVwidGV4dC14bCBmb250LW1lZGl1bSBtLTBcIj5TdGFnZSBQcm9wZXJ0aWVzPC9oMj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2JvZHlUZW1wbGF0ZT5cbiAgPGRpdiBjbGFzcz1cInAtNFwiPlxuICAgIDxmb3JtIFtmb3JtR3JvdXBdPVwic3RhZ2VGb3JtXCIgY2xhc3M9XCJncmlkIGdhcC15LTRcIj5cbiAgICAgIDwhLS0gU3RhZ2UgTmFtZSAtLT5cbiAgICAgIDx2ZXJiZW5hLWlucHV0XG4gICAgICAgIG5hbWU9XCJOYW1lXCJcbiAgICAgICAgbGFiZWw9XCJTdGFnZSBOYW1lXCJcbiAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiTmFtZVwiXG4gICAgICAgIHBsYWNlSG9sZGVyPVwiRW50ZXIgU3RhZ2UgTmFtZVwiXG4gICAgICAvPlxuXG4gICAgICA8IS0tIERlc2NyaXB0aW9uIC0tPlxuICAgICAgPHZlcmJlbmEtdGV4dGFyZWFcbiAgICAgICAgbGFiZWw9XCJEZXNjcmlwdGlvblwiXG4gICAgICAgIFtyb3dzXT1cIjNcIlxuICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJEZXNjcmlwdGlvblwiXG4gICAgICA+PC92ZXJiZW5hLXRleHRhcmVhPlxuXG4gICAgICA8IS0tIFJlY2lwaWVudCBDb3VudCAtLT5cbiAgICAgIDx2ZXJiZW5hLWlucHV0XG4gICAgICAgIG5hbWU9XCJNaW5Ob09mQWN0b3JcIlxuICAgICAgICBsYWJlbD1cIlJlY2lwaWVudCBDb3VudFwiXG4gICAgICAgIHR5cGU9XCJudW1iZXJcIlxuICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJNaW5Ob09mQWN0b3JcIlxuICAgICAgICBwbGFjZUhvbGRlcj1cIkVudGVyIENvdW50XCJcbiAgICAgIC8+XG5cbiAgICAgIDwhLS0gUGFzcyBPbiBSdWxlIC0tPlxuICAgICAgPHZlcmJlbmEtaW5wdXRcbiAgICAgICAgbmFtZT1cIlBhc3NPblJ1bGVcIlxuICAgICAgICBsYWJlbD1cIlBhc3MgT24gUnVsZVwiXG4gICAgICAgIGZvcm1Db250cm9sTmFtZT1cIlBhc3NPblJ1bGVcIlxuICAgICAgICBwbGFjZUhvbGRlcj1cIlNlbGVjdCBSdWxlXCJcbiAgICAgIC8+XG5cbiAgICAgIDwhLS0gRHVyYXRpb24gLS0+XG4gICAgICA8dmVyYmVuYS1pbnB1dFxuICAgICAgICBuYW1lPVwiRHVyYXRpb25cIlxuICAgICAgICBsYWJlbD1cIkR1cmF0aW9uXCJcbiAgICAgICAgdHlwZT1cIm51bWJlclwiXG4gICAgICAgIGZvcm1Db250cm9sTmFtZT1cIkR1cmF0aW9uXCJcbiAgICAgICAgcGxhY2VIb2xkZXI9XCJTZXQgRHVyYXRpb25cIlxuICAgICAgLz5cblxuICAgICAgPCEtLSBBY3RvciBSdWxlIC0tPlxuICAgICAgPGRpdiBjbGFzcz1cInNwYWNlLXktMVwiPlxuICAgICAgICA8bGFiZWwgZm9yPVwiYWN0b3ItcnVsZVwiIGNsYXNzPVwidGV4dC1zbSBmb250LXNlbWlib2xkIHRleHQtW3ZhcigtLXZibi1jb2xvci10ZXh0KV1cIj5cbiAgICAgICAgICBBY3RvciBSdWxlXG4gICAgICAgIDwvbGFiZWw+XG4gICAgICAgIDx2ZXJiZW4tZHJvcC1kb3duXG4gICAgICAgICAgaWQ9XCJhY3Rvci1ydWxlXCJcbiAgICAgICAgICBzdHlsZUNsYXNzPVwidy1mdWxsXCJcbiAgICAgICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgICAgIFttdWx0aXNlbGVjdF09XCJmYWxzZVwiXG4gICAgICAgICAgcGxhY2Vob2xkZXI9XCJTZWxlY3QgUnVsZVwiXG4gICAgICAgICAgW29wdGlvbnNdPVwiYWN0b3JSdWxlc1wiXG4gICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiQWN0b3JSdWxlXCJcbiAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXG4gICAgICAgICAgW3Nob3dDbGVhcl09XCJ0cnVlXCJcbiAgICAgICAgPlxuICAgICAgICA8L3ZlcmJlbi1kcm9wLWRvd24+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPCEtLSBBc3NpZ25tZW50IFR5cGUgLS0+XG4gICAgICA8ZGl2IGNsYXNzPVwic3BhY2UteS0xXCI+XG4gICAgICAgIDxsYWJlbCBmb3I9XCJhc3NpZ25tZW50XCIgY2xhc3M9XCJ0ZXh0LXNtIGZvbnQtc2VtaWJvbGQgdGV4dC1bdmFyKC0tdmJuLWNvbG9yLXRleHQpXVwiPlxuICAgICAgICAgIEFzc2lnbm1lbnQgVHlwZVxuICAgICAgICA8L2xhYmVsPlxuICAgICAgICA8dmVyYmVuLWRyb3AtZG93blxuICAgICAgICAgIGlkPVwiYXNzaWdubWVudFwiXG4gICAgICAgICAgc3R5bGVDbGFzcz1cInctZnVsbFwiXG4gICAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgICBbbXVsdGlzZWxlY3RdPVwiZmFsc2VcIlxuICAgICAgICAgIHBsYWNlaG9sZGVyPVwiU2VsZWN0XCJcbiAgICAgICAgICBbb3B0aW9uc109XCJhc3NpZ25tZW50VHlwZXNcIlxuICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cIkFzc2lnbm1lbnRUeXBlXCJcbiAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXG4gICAgICAgICAgW3Nob3dDbGVhcl09XCJ0cnVlXCJcbiAgICAgICAgPlxuICAgICAgICA8L3ZlcmJlbi1kcm9wLWRvd24+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPCEtLSBUYWdzIC0tPlxuICAgICAgPGRpdiBjbGFzcz1cInNwYWNlLXktMVwiPlxuICAgICAgICA8bGFiZWwgZm9yPVwidGFnc1wiIGNsYXNzPVwidGV4dC1zbSBmb250LXNlbWlib2xkIHRleHQtW3ZhcigtLXZibi1jb2xvci10ZXh0KV1cIj5cbiAgICAgICAgICBUYWdzXG4gICAgICAgIDwvbGFiZWw+XG4gICAgICAgIDx2ZXJiZW4tZHJvcC1kb3duXG4gICAgICAgICAgaWQ9XCJ0YWdzXCJcbiAgICAgICAgICBzZWxlY3RLZXk9XCJDb2RlXCJcbiAgICAgICAgICBzdHlsZUNsYXNzPVwidy1mdWxsXCJcbiAgICAgICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgICAgIFttdWx0aXNlbGVjdF09XCJ0cnVlXCJcbiAgICAgICAgICBwbGFjZWhvbGRlcj1cIlNlbGVjdFwiXG4gICAgICAgICAgW29wdGlvbnNdPVwidGFnc1wiXG4gICAgICAgICAgb3B0aW9uTGFiZWw9XCJOYW1lXCJcbiAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJUYWdzXCJcbiAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXG4gICAgICAgICAgW2ZpbHRlcl09XCJ0cnVlXCJcbiAgICAgICAgICBmaWx0ZXJCeT1cIk5hbWVcIlxuICAgICAgICA+XG4gICAgICAgIDwvdmVyYmVuLWRyb3AtZG93bj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8IS0tIElzIEVudHJ5IFBvaW50IC0tPlxuICAgICAgPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIGdhcC00XCI+XG4gICAgICAgIDxsYWJlbCBmb3I9XCJpcy1lbnRyeS1wb2ludFwiIGNsYXNzPVwidGV4dC1zbSBmb250LXNlbWlib2xkIHRleHQtW3ZhcigtLXZibi1jb2xvci10ZXh0KV1cIj5cbiAgICAgICAgICBFbnRyeSBQb2ludFxuICAgICAgICA8L2xhYmVsPlxuICAgICAgICA8dmVyYmVuYS1zd2l0Y2hcbiAgICAgICAgICBpZD1cImlzLWVudHJ5LXBvaW50XCJcbiAgICAgICAgICBvblRleHQ9XCJZZXNcIlxuICAgICAgICAgIG9mZlRleHQ9XCJOb1wiXG4gICAgICAgICAgW29uQ29sb3JdPVwiJ3ZhcigtLXZibi1jb2xvci10ZXh0KSdcIlxuICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cIklzRW50cnlQb2ludFwiXG4gICAgICAgID48L3ZlcmJlbmEtc3dpdGNoPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDwhLS0gSXMgRXhpdCBQb2ludCAtLT5cbiAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtNFwiPlxuICAgICAgICA8bGFiZWwgZm9yPVwiaXMtZXhpdC1wb2ludFwiIGNsYXNzPVwidGV4dC1zbSBmb250LXNlbWlib2xkIHRleHQtW3ZhcigtLXZibi1jb2xvci10ZXh0KV1cIj5cbiAgICAgICAgICBFeGl0IFBvaW50XG4gICAgICAgIDwvbGFiZWw+XG4gICAgICAgIDx2ZXJiZW5hLXN3aXRjaFxuICAgICAgICAgIGlkPVwiaXMtZXhpdC1wb2ludFwiXG4gICAgICAgICAgb25UZXh0PVwiWWVzXCJcbiAgICAgICAgICBvZmZUZXh0PVwiTm9cIlxuICAgICAgICAgIFtvbkNvbG9yXT1cIid2YXIoLS12Ym4tY29sb3ItdGV4dCknXCJcbiAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJJc0V4aXRQb2ludFwiXG4gICAgICAgID48L3ZlcmJlbmEtc3dpdGNoPlxuICAgICAgPC9kaXY+XG4gICAgPC9mb3JtPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjZm9vdGVyVGVtcGxhdGU+XG4gIDxkaXYgY2xhc3M9XCJ3LWZ1bGwgZmxleCBqdXN0aWZ5LWJldHdlZW4gZ2FwLTQgcC00IGJvcmRlci10IGJvcmRlci1ncmF5LTIwMFwiPlxuICAgIDwhLS0gPGJ1dHRvblxuICAgICAgY2xhc3M9XCJweC00IHB5LTIgbXItMiBiZy13aGl0ZSBib3JkZXIgYm9yZGVyLWdyYXktMjAwIHJvdW5kZWQgdGV4dC1zbSBmb250LW1lZGl1bVwiXG4gICAgICAoY2xpY2spPVwib25EaWFsb2dDbG9zZSgkZXZlbnQpXCJcbiAgICA+XG4gICAgICBDYW5jZWxcbiAgICA8L2J1dHRvbj5cbiAgICA8YnV0dG9uXG4gICAgICBjbGFzcz1cInB4LTQgcHktMiBiZy15ZWxsb3ctMzAwIHRleHQtYmxhY2sgcm91bmRlZCB0ZXh0LXNtIGZvbnQtbWVkaXVtXCJcbiAgICAgIChjbGljayk9XCJzYXZlU3RhZ2UoKVwiXG4gICAgICBbZGlzYWJsZWRdPVwic3RhZ2VGb3JtLmludmFsaWRcIlxuICAgID5cbiAgICAgIFNhdmVcbiAgICA8L2J1dHRvbj5cbiAgICA8YnV0dG9uXG4gICAgICBjbGFzcz1cInB4LTQgcHktMiBtci0yIGJnLXdoaXRlIGJvcmRlciBib3JkZXItZ3JheS0yMDAgcm91bmRlZCB0ZXh0LXNtIGZvbnQtbWVkaXVtXCJcbiAgICAgIChjbGljayk9XCJkZWxldGVTdGFnZSgpXCJcbiAgICA+XG4gICAgICBEZWxldGVcbiAgICA8L2J1dHRvbj4gLS0+XG4gICAgPHZlcmJlbmEtYnV0dG9uXG4gICAgICB3aWR0aD1cIjExNHB4XCJcbiAgICAgIGhlaWdodD1cIjM5cHhcIlxuICAgICAgdGV4dD1cIkRlbGV0ZVwiXG4gICAgICBiZ0NvbG9yPVwidmFyKC0tdmJuLWNvbG9yLXRleHQtbXV0ZWQpXCJcbiAgICAgIHRleHRDb2xvcj1cInZhcigtLXZibi1jb2xvci1vbi1wcmltYXJ5KVwiXG4gICAgICBib3JkZXJSYWRpdXM9XCIxMHB4XCJcbiAgICAgIChjbGljayk9XCJkZWxldGVTdGFnZSgpXCJcbiAgICA+PC92ZXJiZW5hLWJ1dHRvbj5cblxuICAgIDx2ZXJiZW5hLWJ1dHRvblxuICAgICAgKGNsaWNrKT1cIm9uRGlhbG9nQ2xvc2UoJGV2ZW50KVwiXG4gICAgICB0ZXh0PVwiQ2FuY2VsXCJcbiAgICAgIHN0eWxlVHlwZT1cInlsdy1vdXRsaW5lXCJcbiAgICAgIGNsYXNzPVwibWwtYXV0b1wiXG4gICAgPjwvdmVyYmVuYS1idXR0b24+XG4gICAgPHZlcmJlbmEtYnV0dG9uXG4gICAgICB0eXBlPVwic3VibWl0XCJcbiAgICAgIHRleHQ9XCJTYXZlXCJcbiAgICAgIGJnQ29sb3I9XCJ2YXIoLS12Ym4tY29sb3ItcHJpbWFyeSlcIlxuICAgICAgdGV4dENvbG9yPVwidmFyKC0tdmJuLWNvbG9yLW9uLXByaW1hcnkpXCJcbiAgICAgIGJvcmRlclJhZGl1cz1cIjEwcHhcIlxuICAgICAgcGQ9XCIxMHB4IDIwcHhcIlxuICAgICAgd2lkdGg9XCIxMTRweFwiXG4gICAgICBoZWlnaHQ9XCIzOXB4XCJcbiAgICAgIChjbGljayk9XCJzYXZlU3RhZ2UoKVwiXG4gICAgICBbZGlzYWJsZV09XCJzdGFnZUZvcm0uaW52YWxpZFwiXG4gICAgPjwvdmVyYmVuYS1idXR0b24+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|