@cqa-lib/cqa-ui 1.1.548-gamma.15 → 1.1.548-gamma.17
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/esm2020/lib/new-environment-dialog/new-environment-dialog.component.mjs +9 -3
- package/esm2020/lib/new-environment-variable-dialog/new-environment-variable-dialog.component.mjs +12 -5
- package/esm2020/lib/new-global-variable-dialog/new-global-variable-dialog.component.mjs +12 -5
- package/esm2020/lib/table/dynamic-table/dynamic-cell-container.directive.mjs +21 -1
- package/fesm2015/cqa-lib-cqa-ui.mjs +50 -10
- package/fesm2015/cqa-lib-cqa-ui.mjs.map +1 -1
- package/fesm2020/cqa-lib-cqa-ui.mjs +50 -10
- package/fesm2020/cqa-lib-cqa-ui.mjs.map +1 -1
- package/lib/new-environment-dialog/new-environment-dialog.component.d.ts +3 -1
- package/package.json +1 -1
|
@@ -12,6 +12,8 @@ export class NewEnvironmentDialogComponent {
|
|
|
12
12
|
this.existingNames = [];
|
|
13
13
|
this.allowDefaultToggle = true;
|
|
14
14
|
this.defaultAlreadySet = false;
|
|
15
|
+
this.showDescription = true;
|
|
16
|
+
this.showAccentColor = true;
|
|
15
17
|
this.colors = ENVIRONMENT_ACCENT_COLORS;
|
|
16
18
|
this.name = '';
|
|
17
19
|
/** Rich-text description bound to `cqa-rich-text-editor` (Trix). */
|
|
@@ -126,10 +128,10 @@ export class NewEnvironmentDialogComponent {
|
|
|
126
128
|
}
|
|
127
129
|
}
|
|
128
130
|
NewEnvironmentDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: NewEnvironmentDialogComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
129
|
-
NewEnvironmentDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: NewEnvironmentDialogComponent, selector: "cqa-new-environment-dialog", inputs: { mode: "mode", initialValue: "initialValue", existingNames: "existingNames", allowDefaultToggle: "allowDefaultToggle", defaultAlreadySet: "defaultAlreadySet" }, host: { styleAttribute: "display:block;width:100%;", classAttribute: "cqa-ui-root" }, ngImport: i0, template: "<div class=\"cqa-flex cqa-flex-col cqa-gap-4 cqa-w-full\">\n\n <!-- Name -->\n <div class=\"cqa-flex cqa-flex-col\">\n <cqa-custom-input\n label=\"Environment name\"\n placeholder=\"e.g. QA, SIT, UAT, Prod, Demo\"\n type=\"text\"\n [value]=\"name\"\n [required]=\"true\"\n [fullWidth]=\"true\"\n [errors]=\"nameErrorsArray\"\n (valueChange)=\"onNameChange($event)\">\n </cqa-custom-input>\n <span *ngIf=\"!nameError\"\n class=\"cqa-text-xs cqa-text-gray-500 cqa-mt-1\">\n Names are user-defined. Be concise \u2014 you'll see this on every test run.\n </span>\n </div>\n\n <!-- Description (rich-text editor) -->\n <div class=\"cqa-flex cqa-flex-col\">\n <label class=\"cqa-text-sm cqa-mb-1.5 cqa-font-medium cqa-text-gray-700\">Description</label>\n <cqa-rich-text-editor\n [formCtrl]=\"descriptionControl\"\n placeholder=\"What is this environment for?\">\n </cqa-rich-text-editor>\n </div>\n\n <!-- Accent color -->\n <div class=\"cqa-flex cqa-flex-col\">\n <label class=\"cqa-text-sm cqa-mb-2 cqa-font-medium cqa-text-gray-700\">Accent color</label>\n <div class=\"cqa-flex cqa-items-center cqa-gap-2\">\n <button\n *ngFor=\"let swatch of colors\"\n type=\"button\"\n class=\"cqa-w-7 cqa-h-7 cqa-rounded-lg cqa-cursor-pointer cqa-transition-all\"\n [attr.aria-label]=\"'Select ' + swatch\"\n [attr.aria-pressed]=\"color === swatch\"\n [style.background]=\"swatch\"\n [style.border]=\"color === swatch ? '2px solid #0F172A' : '2px solid transparent'\"\n [style.boxShadow]=\"color === swatch ? '0 0 0 2px rgba(15,23,42,0.12)' : '0 0 0 1px rgba(0,0,0,0.05)'\"\n (click)=\"onColorSelect(swatch)\">\n </button>\n </div>\n </div>\n\n <!-- Make default -->\n <label\n *ngIf=\"allowDefaultToggle\"\n class=\"cqa-flex cqa-items-center cqa-gap-2.5 cqa-py-2.5 cqa-px-3 cqa-bg-indigo-50\"\n [class.cqa-cursor-pointer]=\"!isDefaultLocked\"\n [class.cqa-cursor-not-allowed]=\"isDefaultLocked\"\n style=\"border-radius: 10px; border: 1px solid rgb(216, 217, 252);\">\n <input\n type=\"checkbox\"\n class=\"cqa-flex-shrink-0\"\n [class.cqa-cursor-pointer]=\"!isDefaultLocked\"\n [class.cqa-cursor-not-allowed]=\"isDefaultLocked\"\n style=\"width: 16px; height: 16px; accent-color: #4F46E5;\"\n [checked]=\"isDefault\"\n [disabled]=\"isDefaultLocked\"\n (change)=\"onDefaultCheckboxChange($event)\">\n <div class=\"cqa-flex cqa-flex-col cqa-min-w-0\">\n <span style=\"font-size: 13px; font-weight: 500; color: #0F172A; line-height: 1.3;\">\n Make this the default environment\n </span>\n <span style=\"font-size: 11px; color: #64748B; margin-top: 2px; line-height: 1.4;\">\n {{ defaultHelperText }}\n </span>\n </div>\n </label>\n\n</div>\n", components: [{ type: i1.CustomInputComponent, selector: "cqa-custom-input", inputs: ["inputId", "label", "type", "placeholder", "value", "disabled", "errors", "required", "ariaLabel", "size", "fullWidth", "maxLength", "showCharCount", "inputInlineStyle", "labelInlineStyle"], outputs: ["valueChange", "blurred", "focused", "enterPressed"] }, { type: i2.RichTextEditorComponent, selector: "cqa-rich-text-editor", inputs: ["formCtrl", "placeholder"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
131
|
+
NewEnvironmentDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: NewEnvironmentDialogComponent, selector: "cqa-new-environment-dialog", inputs: { mode: "mode", initialValue: "initialValue", existingNames: "existingNames", allowDefaultToggle: "allowDefaultToggle", defaultAlreadySet: "defaultAlreadySet", showDescription: "showDescription", showAccentColor: "showAccentColor" }, host: { styleAttribute: "display:block;width:100%;", classAttribute: "cqa-ui-root" }, ngImport: i0, template: "<div class=\"cqa-flex cqa-flex-col cqa-gap-4 cqa-w-full\">\n\n <!-- Name -->\n <div class=\"cqa-flex cqa-flex-col\">\n <cqa-custom-input\n label=\"Environment name\"\n placeholder=\"e.g. QA, SIT, UAT, Prod, Demo\"\n type=\"text\"\n [value]=\"name\"\n [required]=\"true\"\n [fullWidth]=\"true\"\n [errors]=\"nameErrorsArray\"\n (valueChange)=\"onNameChange($event)\">\n </cqa-custom-input>\n <span *ngIf=\"!nameError\"\n class=\"cqa-text-xs cqa-text-gray-500 cqa-mt-1\">\n Names are user-defined. Be concise \u2014 you'll see this on every test run.\n </span>\n </div>\n\n <!-- Description (rich-text editor) -->\n <div *ngIf=\"showDescription\" class=\"cqa-flex cqa-flex-col\">\n <label class=\"cqa-text-sm cqa-mb-1.5 cqa-font-medium cqa-text-gray-700\">Description</label>\n <cqa-rich-text-editor\n [formCtrl]=\"descriptionControl\"\n placeholder=\"What is this environment for?\">\n </cqa-rich-text-editor>\n </div>\n\n <!-- Accent color -->\n <div *ngIf=\"showAccentColor\" class=\"cqa-flex cqa-flex-col\">\n <label class=\"cqa-text-sm cqa-mb-2 cqa-font-medium cqa-text-gray-700\">Accent color</label>\n <div class=\"cqa-flex cqa-items-center cqa-gap-2\">\n <button\n *ngFor=\"let swatch of colors\"\n type=\"button\"\n class=\"cqa-w-7 cqa-h-7 cqa-rounded-lg cqa-cursor-pointer cqa-transition-all\"\n [attr.aria-label]=\"'Select ' + swatch\"\n [attr.aria-pressed]=\"color === swatch\"\n [style.background]=\"swatch\"\n [style.border]=\"color === swatch ? '2px solid #0F172A' : '2px solid transparent'\"\n [style.boxShadow]=\"color === swatch ? '0 0 0 2px rgba(15,23,42,0.12)' : '0 0 0 1px rgba(0,0,0,0.05)'\"\n (click)=\"onColorSelect(swatch)\">\n </button>\n </div>\n </div>\n\n <!-- Make default -->\n <label\n *ngIf=\"allowDefaultToggle\"\n class=\"cqa-flex cqa-items-center cqa-gap-2.5 cqa-py-2.5 cqa-px-3 cqa-bg-indigo-50\"\n [class.cqa-cursor-pointer]=\"!isDefaultLocked\"\n [class.cqa-cursor-not-allowed]=\"isDefaultLocked\"\n style=\"border-radius: 10px; border: 1px solid rgb(216, 217, 252);\">\n <input\n type=\"checkbox\"\n class=\"cqa-flex-shrink-0\"\n [class.cqa-cursor-pointer]=\"!isDefaultLocked\"\n [class.cqa-cursor-not-allowed]=\"isDefaultLocked\"\n style=\"width: 16px; height: 16px; accent-color: #4F46E5;\"\n [checked]=\"isDefault\"\n [disabled]=\"isDefaultLocked\"\n (change)=\"onDefaultCheckboxChange($event)\">\n <div class=\"cqa-flex cqa-flex-col cqa-min-w-0\">\n <span style=\"font-size: 13px; font-weight: 500; color: #0F172A; line-height: 1.3;\">\n Make this the default environment\n </span>\n <span style=\"font-size: 11px; color: #64748B; margin-top: 2px; line-height: 1.4;\">\n {{ defaultHelperText }}\n </span>\n </div>\n </label>\n\n</div>\n", components: [{ type: i1.CustomInputComponent, selector: "cqa-custom-input", inputs: ["inputId", "label", "type", "placeholder", "value", "disabled", "errors", "required", "ariaLabel", "size", "fullWidth", "maxLength", "showCharCount", "inputInlineStyle", "labelInlineStyle"], outputs: ["valueChange", "blurred", "focused", "enterPressed"] }, { type: i2.RichTextEditorComponent, selector: "cqa-rich-text-editor", inputs: ["formCtrl", "placeholder"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
130
132
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: NewEnvironmentDialogComponent, decorators: [{
|
|
131
133
|
type: Component,
|
|
132
|
-
args: [{ selector: 'cqa-new-environment-dialog', changeDetection: ChangeDetectionStrategy.OnPush, host: { class: 'cqa-ui-root', style: 'display:block;width:100%;' }, template: "<div class=\"cqa-flex cqa-flex-col cqa-gap-4 cqa-w-full\">\n\n <!-- Name -->\n <div class=\"cqa-flex cqa-flex-col\">\n <cqa-custom-input\n label=\"Environment name\"\n placeholder=\"e.g. QA, SIT, UAT, Prod, Demo\"\n type=\"text\"\n [value]=\"name\"\n [required]=\"true\"\n [fullWidth]=\"true\"\n [errors]=\"nameErrorsArray\"\n (valueChange)=\"onNameChange($event)\">\n </cqa-custom-input>\n <span *ngIf=\"!nameError\"\n class=\"cqa-text-xs cqa-text-gray-500 cqa-mt-1\">\n Names are user-defined. Be concise \u2014 you'll see this on every test run.\n </span>\n </div>\n\n <!-- Description (rich-text editor) -->\n <div class=\"cqa-flex cqa-flex-col\">\n <label class=\"cqa-text-sm cqa-mb-1.5 cqa-font-medium cqa-text-gray-700\">Description</label>\n <cqa-rich-text-editor\n [formCtrl]=\"descriptionControl\"\n placeholder=\"What is this environment for?\">\n </cqa-rich-text-editor>\n </div>\n\n <!-- Accent color -->\n <div class=\"cqa-flex cqa-flex-col\">\n <label class=\"cqa-text-sm cqa-mb-2 cqa-font-medium cqa-text-gray-700\">Accent color</label>\n <div class=\"cqa-flex cqa-items-center cqa-gap-2\">\n <button\n *ngFor=\"let swatch of colors\"\n type=\"button\"\n class=\"cqa-w-7 cqa-h-7 cqa-rounded-lg cqa-cursor-pointer cqa-transition-all\"\n [attr.aria-label]=\"'Select ' + swatch\"\n [attr.aria-pressed]=\"color === swatch\"\n [style.background]=\"swatch\"\n [style.border]=\"color === swatch ? '2px solid #0F172A' : '2px solid transparent'\"\n [style.boxShadow]=\"color === swatch ? '0 0 0 2px rgba(15,23,42,0.12)' : '0 0 0 1px rgba(0,0,0,0.05)'\"\n (click)=\"onColorSelect(swatch)\">\n </button>\n </div>\n </div>\n\n <!-- Make default -->\n <label\n *ngIf=\"allowDefaultToggle\"\n class=\"cqa-flex cqa-items-center cqa-gap-2.5 cqa-py-2.5 cqa-px-3 cqa-bg-indigo-50\"\n [class.cqa-cursor-pointer]=\"!isDefaultLocked\"\n [class.cqa-cursor-not-allowed]=\"isDefaultLocked\"\n style=\"border-radius: 10px; border: 1px solid rgb(216, 217, 252);\">\n <input\n type=\"checkbox\"\n class=\"cqa-flex-shrink-0\"\n [class.cqa-cursor-pointer]=\"!isDefaultLocked\"\n [class.cqa-cursor-not-allowed]=\"isDefaultLocked\"\n style=\"width: 16px; height: 16px; accent-color: #4F46E5;\"\n [checked]=\"isDefault\"\n [disabled]=\"isDefaultLocked\"\n (change)=\"onDefaultCheckboxChange($event)\">\n <div class=\"cqa-flex cqa-flex-col cqa-min-w-0\">\n <span style=\"font-size: 13px; font-weight: 500; color: #0F172A; line-height: 1.3;\">\n Make this the default environment\n </span>\n <span style=\"font-size: 11px; color: #64748B; margin-top: 2px; line-height: 1.4;\">\n {{ defaultHelperText }}\n </span>\n </div>\n </label>\n\n</div>\n" }]
|
|
134
|
+
args: [{ selector: 'cqa-new-environment-dialog', changeDetection: ChangeDetectionStrategy.OnPush, host: { class: 'cqa-ui-root', style: 'display:block;width:100%;' }, template: "<div class=\"cqa-flex cqa-flex-col cqa-gap-4 cqa-w-full\">\n\n <!-- Name -->\n <div class=\"cqa-flex cqa-flex-col\">\n <cqa-custom-input\n label=\"Environment name\"\n placeholder=\"e.g. QA, SIT, UAT, Prod, Demo\"\n type=\"text\"\n [value]=\"name\"\n [required]=\"true\"\n [fullWidth]=\"true\"\n [errors]=\"nameErrorsArray\"\n (valueChange)=\"onNameChange($event)\">\n </cqa-custom-input>\n <span *ngIf=\"!nameError\"\n class=\"cqa-text-xs cqa-text-gray-500 cqa-mt-1\">\n Names are user-defined. Be concise \u2014 you'll see this on every test run.\n </span>\n </div>\n\n <!-- Description (rich-text editor) -->\n <div *ngIf=\"showDescription\" class=\"cqa-flex cqa-flex-col\">\n <label class=\"cqa-text-sm cqa-mb-1.5 cqa-font-medium cqa-text-gray-700\">Description</label>\n <cqa-rich-text-editor\n [formCtrl]=\"descriptionControl\"\n placeholder=\"What is this environment for?\">\n </cqa-rich-text-editor>\n </div>\n\n <!-- Accent color -->\n <div *ngIf=\"showAccentColor\" class=\"cqa-flex cqa-flex-col\">\n <label class=\"cqa-text-sm cqa-mb-2 cqa-font-medium cqa-text-gray-700\">Accent color</label>\n <div class=\"cqa-flex cqa-items-center cqa-gap-2\">\n <button\n *ngFor=\"let swatch of colors\"\n type=\"button\"\n class=\"cqa-w-7 cqa-h-7 cqa-rounded-lg cqa-cursor-pointer cqa-transition-all\"\n [attr.aria-label]=\"'Select ' + swatch\"\n [attr.aria-pressed]=\"color === swatch\"\n [style.background]=\"swatch\"\n [style.border]=\"color === swatch ? '2px solid #0F172A' : '2px solid transparent'\"\n [style.boxShadow]=\"color === swatch ? '0 0 0 2px rgba(15,23,42,0.12)' : '0 0 0 1px rgba(0,0,0,0.05)'\"\n (click)=\"onColorSelect(swatch)\">\n </button>\n </div>\n </div>\n\n <!-- Make default -->\n <label\n *ngIf=\"allowDefaultToggle\"\n class=\"cqa-flex cqa-items-center cqa-gap-2.5 cqa-py-2.5 cqa-px-3 cqa-bg-indigo-50\"\n [class.cqa-cursor-pointer]=\"!isDefaultLocked\"\n [class.cqa-cursor-not-allowed]=\"isDefaultLocked\"\n style=\"border-radius: 10px; border: 1px solid rgb(216, 217, 252);\">\n <input\n type=\"checkbox\"\n class=\"cqa-flex-shrink-0\"\n [class.cqa-cursor-pointer]=\"!isDefaultLocked\"\n [class.cqa-cursor-not-allowed]=\"isDefaultLocked\"\n style=\"width: 16px; height: 16px; accent-color: #4F46E5;\"\n [checked]=\"isDefault\"\n [disabled]=\"isDefaultLocked\"\n (change)=\"onDefaultCheckboxChange($event)\">\n <div class=\"cqa-flex cqa-flex-col cqa-min-w-0\">\n <span style=\"font-size: 13px; font-weight: 500; color: #0F172A; line-height: 1.3;\">\n Make this the default environment\n </span>\n <span style=\"font-size: 11px; color: #64748B; margin-top: 2px; line-height: 1.4;\">\n {{ defaultHelperText }}\n </span>\n </div>\n </label>\n\n</div>\n" }]
|
|
133
135
|
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { mode: [{
|
|
134
136
|
type: Input
|
|
135
137
|
}], initialValue: [{
|
|
@@ -140,5 +142,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
|
|
|
140
142
|
type: Input
|
|
141
143
|
}], defaultAlreadySet: [{
|
|
142
144
|
type: Input
|
|
145
|
+
}], showDescription: [{
|
|
146
|
+
type: Input
|
|
147
|
+
}], showAccentColor: [{
|
|
148
|
+
type: Input
|
|
143
149
|
}] } });
|
|
144
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV3LWVudmlyb25tZW50LWRpYWxvZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL25ldy1lbnZpcm9ubWVudC1kaWFsb2cvbmV3LWVudmlyb25tZW50LWRpYWxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL25ldy1lbnZpcm9ubWVudC1kaWFsb2cvbmV3LWVudmlyb25tZW50LWRpYWxvZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQXFCLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDckcsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFDTCx5QkFBeUIsR0FFMUIsTUFBTSxpQ0FBaUMsQ0FBQzs7Ozs7QUFRekMsTUFBTSxPQUFPLDZCQUE2QjtJQWlCeEMsWUFBNkIsR0FBc0I7UUFBdEIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFoQjFDLFNBQUksR0FBc0IsUUFBUSxDQUFDO1FBRW5DLGtCQUFhLEdBQWEsRUFBRSxDQUFDO1FBQzdCLHVCQUFrQixHQUFZLElBQUksQ0FBQztRQUNuQyxzQkFBaUIsR0FBWSxLQUFLLENBQUM7UUFFbkMsV0FBTSxHQUFzQix5QkFBeUIsQ0FBQztRQUUvRCxTQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ1Ysb0VBQW9FO1FBQ3BFLHVCQUFrQixHQUFHLElBQUksV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3pDLFVBQUssR0FBVyx5QkFBeUIsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM3QyxjQUFTLEdBQUcsS0FBSyxDQUFDO1FBRWxCLGNBQVMsR0FBa0IsSUFBSSxDQUFDO0lBRXNCLENBQUM7SUFFdkQsUUFBUTtRQUNOLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRTtZQUNyQixJQUFJLENBQUMsSUFBSSxH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RUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7UUFDckYsTUFBTSxPQUFPLEdBQUcsU0FBUyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3hDLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxNQUFNLEVBQUU7WUFDeEIsTUFBTSxRQUFRLEdBQUcsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUN0RSxPQUFPLE9BQU8sS0FBSyxRQUFRLElBQUksUUFBUSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUMzRDtRQUNELE9BQU8sUUFBUSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNwQyxDQUFDOzswSEF2SVUsNkJBQTZCOzhHQUE3Qiw2QkFBNkIsa1VDYjFDLHExRkEwRUE7MkZEN0RhLDZCQUE2QjtrQkFOekMsU0FBUzsrQkFDRSw0QkFBNEIsbUJBRXJCLHVCQUF1QixDQUFDLE1BQU0sUUFDekMsRUFBRSxLQUFLLEVBQUUsYUFBYSxFQUFFLEtBQUssRUFBRSwyQkFBMkIsRUFBRTt3R0FHekQsSUFBSTtzQkFBWixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBQ0csaUJBQWlCO3NCQUF6QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Db250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtcbiAgRU5WSVJPTk1FTlRfQUNDRU5UX0NPTE9SUyxcbiAgRW52aXJvbm1lbnREaWFsb2dWYWx1ZSxcbn0gZnJvbSAnLi9uZXctZW52aXJvbm1lbnQtZGlhbG9nLm1vZGVscyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NxYS1uZXctZW52aXJvbm1lbnQtZGlhbG9nJyxcbiAgdGVtcGxhdGVVcmw6ICcuL25ldy1lbnZpcm9ubWVudC1kaWFsb2cuY29tcG9uZW50Lmh0bWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaG9zdDogeyBjbGFzczogJ2NxYS11aS1yb290Jywgc3R5bGU6ICdkaXNwbGF5OmJsb2NrO3dpZHRoOjEwMCU7JyB9LFxufSlcbmV4cG9ydCBjbGFzcyBOZXdFbnZpcm9ubWVudERpYWxvZ0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIG1vZGU6ICdjcmVhdGUnIHwgJ2VkaXQnID0gJ2NyZWF0ZSc7XG4gIEBJbnB1dCgpIGluaXRpYWxWYWx1ZT86IFBhcnRpYWw8RW52aXJvbm1lbnREaWFsb2dWYWx1ZT47XG4gIEBJbnB1dCgpIGV4aXN0aW5nTmFtZXM6IHN0cmluZ1tdID0gW107XG4gIEBJbnB1dCgpIGFsbG93RGVmYXVsdFRvZ2dsZTogYm9vbGVhbiA9IHRydWU7XG4gIEBJbnB1dCgpIGRlZmF1bHRBbHJlYWR5U2V0OiBib29sZWFuID0gZmFsc2U7XG5cbiAgcmVhZG9ubHkgY29sb3JzOiByZWFkb25seSBzdHJpbmdbXSA9IEVOVklST05NRU5UX0FDQ0VOVF9DT0xPUlM7XG5cbiAgbmFtZSA9ICcnO1xuICAvKiogUmljaC10ZXh0IGRlc2NyaXB0aW9uIGJvdW5kIHRvIGBjcWEtcmljaC10ZXh0LWVkaXRvcmAgKFRyaXgpLiAqL1xuICBkZXNjcmlwdGlvbkNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woJycpO1xuICBjb2xvcjogc3RyaW5nID0gRU5WSVJPTk1FTlRfQUNDRU5UX0NPTE9SU1swXTtcbiAgaXNEZWZhdWx0ID0gZmFsc2U7XG5cbiAgbmFtZUVycm9yOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaW5pdGlhbFZhbHVlKSB7XG4gICAgICB0aGlzLm5hbWUgPSB0aGlzLmluaXRpYWxWYWx1ZS5uYW1lID8/ICcnO1xuICAgICAgdGhpcy5kZXNjcmlwdGlvbkNvbnRyb2wuc2V0VmFsdWUodGhpcy5pbml0aWFsVmFsdWUuZGVzY3JpcHRpb24gPz8gJycpO1xuICAgICAgdGhpcy5jb2xvciA9IHRoaXMuaW5pdGlhbFZhbHVlLmNvbG9yIHx8IEVOVklST05NRU5UX0FDQ0VOVF9DT0xPUlNbMF07XG4gICAgICB0aGlzLmlzRGVmYXVsdCA9IHRoaXMuaW5pdGlhbFZhbHVlLmlzRGVmYXVsdCA/PyBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBnZXQgdGl0bGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5tb2RlID09PSAnZWRpdCcgPyAnRWRpdCBlbnZpcm9ubWVudCcgOiAnTmV3IGVudmlyb25tZW50JztcbiAgfVxuXG4gIGdldCBzdWJ0aXRsZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiAnQ3JlYXRlIGFuIGVudmlyb25tZW50IHRvIHNjb3BlIHZhcmlhYmxlcywgREIgY29uZmlncywgYW5kIGRhdGEgcHJvZmlsZXMuJztcbiAgfVxuXG4gIGdldCBwcmltYXJ5QnV0dG9uTGFiZWwoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5tb2RlID09PSAnZWRpdCcgPyAnU2F2ZSBjaGFuZ2VzJyA6ICdDcmVhdGUgZW52aXJvbm1lbnQnO1xuICB9XG5cbiAgZ2V0IG5hbWVFcnJvcnNBcnJheSgpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIHRoaXMubmFtZUVycm9yID8gW3RoaXMubmFtZUVycm9yXSA6IFtdO1xuICB9XG5cbiAgZ2V0IGRlZmF1bHRIZWxwZXJUZXh0KCk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMuaXNEZWZhdWx0TG9ja2VkKSB7XG4gICAgICByZXR1cm4gJ1RvIHVuc2V0IHRoaXMgYXMgZGVmYXVsdCwgcHJvbW90ZSBhbm90aGVyIGVudmlyb25tZW50IGZyb20gaXRzIGRldGFpbCBwYWdlLic7XG4gICAgfVxuICAgIGlmICghdGhpcy5hbGxvd0RlZmF1bHRUb2dnbGUpIHtcbiAgICAgIHJldHVybiAnRGVmYXVsdCBwcm9tb3Rpb24gaXMgaGFuZGxlZCBmcm9tIHRoZSBlbnZpcm9ubWVudCBkZXRhaWwgcGFnZS4nO1xuICAgIH1cbiAgICBpZiAodGhpcy5kZWZhdWx0QWxyZWFkeVNldCAmJiAhdGhpcy5pc0RlZmF1bHQpIHtcbiAgICAgIHJldHVybiAnQW5vdGhlciBlbnZpcm9ubWVudCBpcyBjdXJyZW50bHkgdGhlIGRlZmF1bHQuIFRvZ2dsaW5nIHRoaXMgb24gd2lsbCBkZW1vdGUgaXQuJztcbiAgICB9XG4gICAgcmV0dXJuICdUZXN0IGNhc2VzIHdpdGhvdXQgYW4gZXhwbGljaXQgZW52IHNlbGVjdGVkIHdpbGwgcmVzb2x2ZSBhZ2FpbnN0IHRoaXMgb25lLic7XG4gIH1cblxuICAvKipcbiAgICogSW4gZWRpdCBtb2RlLCB3aGVuIHRoZSBlbnYgaXMgY3VycmVudGx5IHRoZSBkZWZhdWx0LCB0aGUgY2hlY2tib3ggaXMgbG9ja2VkXG4gICAqIGNoZWNrZWQg4oCUIHlvdSBjYW4ndCB1bi1kZWZhdWx0IGFuIGVudiBkaXJlY3RseTsgcHJvbW90ZSBhbm90aGVyIGVudiBpbnN0ZWFkLlxuICAgKi9cbiAgZ2V0IGlzRGVmYXVsdExvY2tlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5tb2RlID09PSAnZWRpdCcgJiYgISF0aGlzLmluaXRpYWxWYWx1ZT8uaXNEZWZhdWx0O1xuICB9XG5cbiAgb25OYW1lQ2hhbmdlKG5leHQ6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMubmFtZSA9IG5leHQ7XG4gICAgdGhpcy5uYW1lRXJyb3IgPSBudWxsO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgb25Db2xvclNlbGVjdChuZXh0OiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLmNvbG9yID0gbmV4dDtcbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIG9uRGVmYXVsdENoYW5nZShuZXh0OiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5pc0RlZmF1bHQgPSBuZXh0O1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgb25EZWZhdWx0Q2hlY2tib3hDaGFuZ2UoZXY6IEV2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgdGFyZ2V0ID0gZXYudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQ7XG4gICAgaWYgKHRoaXMuaXNEZWZhdWx0TG9ja2VkKSB7XG4gICAgICB0YXJnZXQuY2hlY2tlZCA9IHRydWU7XG4gICAgICB0aGlzLmlzRGVmYXVsdCA9IHRydWU7XG4gICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5pc0RlZmF1bHQgPSB0YXJnZXQuY2hlY2tlZDtcbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDYWxsZWQgYnkgdGhlIGhvc3QgKHZpYSBEaWFsb2dSZWYuZ2V0Q29tcG9uZW50SW5zdGFuY2UoKSkgd2hlbiB0aGUgcHJpbWFyeVxuICAgKiBidXR0b24gaXMgY2xpY2tlZC4gUmV0dXJucyB0aGUgY2FwdHVyZWQgdmFsdWUgd2hlbiB2YWxpZCwgb3IgbnVsbCB3aGVuIHRoZVxuICAgKiBmb3JtIGhhcyBlcnJvcnMg4oCUIGhvc3Qgc2hvdWxkIGxlYXZlIHRoZSBkaWFsb2cgb3Blbi5cbiAgICovXG4gIGdldFZhbHVlKCk6IEVudmlyb25tZW50RGlhbG9nVmFsdWUgfCBudWxsIHtcbiAgICBjb25zdCB0cmltbWVkTmFtZSA9IHRoaXMubmFtZS50cmltKCk7XG5cbiAgICBpZiAoIXRyaW1tZWROYW1lKSB7XG4gICAgICB0aGlzLm5hbWVFcnJvciA9ICdOYW1lIGlzIHJlcXVpcmVkLic7XG4gICAgfSBlbHNlIGlmICh0cmltbWVkTmFtZS5sZW5ndGggPCAyKSB7XG4gICAgICB0aGlzLm5hbWVFcnJvciA9ICdOYW1lIG11c3QgYmUgYXQgbGVhc3QgMiBjaGFyYWN0ZXJzLic7XG4gICAgfSBlbHNlIGlmICh0aGlzLmlzRHVwbGljYXRlTmFtZSh0cmltbWVkTmFtZSkpIHtcbiAgICAgIHRoaXMubmFtZUVycm9yID0gJ0FuIGVudmlyb25tZW50IHdpdGggdGhpcyBuYW1lIGFscmVhZHkgZXhpc3RzIOKAlCBuYW1lcyBtdXN0IGJlIHVuaXF1ZS4nO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm5hbWVFcnJvciA9IG51bGw7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMubmFtZUVycm9yKSB7XG4gICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGNvbnN0IHJhd0Rlc2NyaXB0aW9uID0gKHRoaXMuZGVzY3JpcHRpb25Db250cm9sLnZhbHVlID8/ICcnKS50b1N0cmluZygpO1xuICAgIGNvbnN0IGRlc2NyaXB0aW9uID0gcmF3RGVzY3JpcHRpb24udHJpbSgpID8gcmF3RGVzY3JpcHRpb24gOiBudWxsO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIG5hbWU6IHRyaW1tZWROYW1lLFxuICAgICAgZGVzY3JpcHRpb24sXG4gICAgICBjb2xvcjogdGhpcy5jb2xvcixcbiAgICAgIGlzRGVmYXVsdDogdGhpcy5hbGxvd0RlZmF1bHRUb2dnbGUgPyB0aGlzLmlzRGVmYXVsdCA6IGZhbHNlLFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGlzRHVwbGljYXRlTmFtZShjYW5kaWRhdGU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGV4aXN0aW5nID0gKHRoaXMuZXhpc3RpbmdOYW1lcyA/PyBbXSkubWFwKG4gPT4gKG4gPz8gJycpLnRyaW0oKS50b0xvd2VyQ2FzZSgpKTtcbiAgICBjb25zdCBsb3dlcmVkID0gY2FuZGlkYXRlLnRvTG93ZXJDYXNlKCk7XG4gICAgaWYgKHRoaXMubW9kZSA9PT0gJ2VkaXQnKSB7XG4gICAgICBjb25zdCBvcmlnaW5hbCA9ICh0aGlzLmluaXRpYWxWYWx1ZT8ubmFtZSA/PyAnJykudHJpbSgpLnRvTG93ZXJDYXNlKCk7XG4gICAgICByZXR1cm4gbG93ZXJlZCAhPT0gb3JpZ2luYWwgJiYgZXhpc3RpbmcuaW5jbHVkZXMobG93ZXJlZCk7XG4gICAgfVxuICAgIHJldHVybiBleGlzdGluZy5pbmNsdWRlcyhsb3dlcmVkKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1mbGV4LWNvbCBjcWEtZ2FwLTQgY3FhLXctZnVsbFwiPlxuXG4gIDwhLS0gTmFtZSAtLT5cbiAgPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1mbGV4LWNvbFwiPlxuICAgIDxjcWEtY3VzdG9tLWlucHV0XG4gICAgICBsYWJlbD1cIkVudmlyb25tZW50IG5hbWVcIlxuICAgICAgcGxhY2Vob2xkZXI9XCJlLmcuIFFBLCBTSVQsIFVBVCwgUHJvZCwgRGVtb1wiXG4gICAgICB0eXBlPVwidGV4dFwiXG4gICAgICBbdmFsdWVdPVwibmFtZVwiXG4gICAgICBbcmVxdWlyZWRdPVwidHJ1ZVwiXG4gICAgICBbZnVsbFdpZHRoXT1cInRydWVcIlxuICAgICAgW2Vycm9yc109XCJuYW1lRXJyb3JzQXJyYXlcIlxuICAgICAgKHZhbHVlQ2hhbmdlKT1cIm9uTmFtZUNoYW5nZSgkZXZlbnQpXCI+XG4gICAgPC9jcWEtY3VzdG9tLWlucHV0PlxuICAgIDxzcGFuICpuZ0lmPVwiIW5hbWVFcnJvclwiXG4gICAgICBjbGFzcz1cImNxYS10ZXh0LXhzIGNxYS10ZXh0LWdyYXktNTAwIGNxYS1tdC0xXCI+XG4gICAgICBOYW1lcyBhcmUgdXNlci1kZWZpbmVkLiBCZSBjb25jaXNlIOKAlCB5b3UnbGwgc2VlIHRoaXMgb24gZXZlcnkgdGVzdCBydW4uXG4gICAgPC9zcGFuPlxuICA8L2Rpdj5cblxuICA8IS0tIERlc2NyaXB0aW9uIChyaWNoLXRleHQgZWRpdG9yKSAtLT5cbiAgPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1mbGV4LWNvbFwiPlxuICAgIDxsYWJlbCBjbGFzcz1cImNxYS10ZXh0LXNtIGNxYS1tYi0xLjUgY3FhLWZvbnQtbWVkaXVtIGNxYS10ZXh0LWdyYXktNzAwXCI+RGVzY3JpcHRpb248L2xhYmVsPlxuICAgIDxjcWEtcmljaC10ZXh0LWVkaXRvclxuICAgICAgW2Zvcm1DdHJsXT1cImRlc2NyaXB0aW9uQ29udHJvbFwiXG4gICAgICBwbGFjZWhvbGRlcj1cIldoYXQgaXMgdGhpcyBlbnZpcm9ubWVudCBmb3I/XCI+XG4gICAgPC9jcWEtcmljaC10ZXh0LWVkaXRvcj5cbiAgPC9kaXY+XG5cbiAgPCEtLSBBY2NlbnQgY29sb3IgLS0+XG4gIDxkaXYgY2xhc3M9XCJjcWEtZmxleCBjcWEtZmxleC1jb2xcIj5cbiAgICA8bGFiZWwgY2xhc3M9XCJjcWEtdGV4dC1zbSBjcWEtbWItMiBjcWEtZm9udC1tZWRpdW0gY3FhLXRleHQtZ3JheS03MDBcIj5BY2NlbnQgY29sb3I8L2xhYmVsPlxuICAgIDxkaXYgY2xhc3M9XCJjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1nYXAtMlwiPlxuICAgICAgPGJ1dHRvblxuICAgICAgICAqbmdGb3I9XCJsZXQgc3dhdGNoIG9mIGNvbG9yc1wiXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICBjbGFzcz1cImNxYS13LTcgY3FhLWgtNyBjcWEtcm91bmRlZC1sZyBjcWEtY3Vyc29yLXBvaW50ZXIgY3FhLXRyYW5zaXRpb24tYWxsXCJcbiAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInU2VsZWN0ICcgKyBzd2F0Y2hcIlxuICAgICAgICBbYXR0ci5hcmlhLXByZXNzZWRdPVwiY29sb3IgPT09IHN3YXRjaFwiXG4gICAgICAgIFtzdHlsZS5iYWNrZ3JvdW5kXT1cInN3YXRjaFwiXG4gICAgICAgIFtzdHlsZS5ib3JkZXJdPVwiY29sb3IgPT09IHN3YXRjaCA/ICcycHggc29saWQgIzBGMTcyQScgOiAnMnB4IHNvbGlkIHRyYW5zcGFyZW50J1wiXG4gICAgICAgIFtzdHlsZS5ib3hTaGFkb3ddPVwiY29sb3IgPT09IHN3YXRjaCA/ICcwIDAgMCAycHggcmdiYSgxNSwyMyw0MiwwLjEyKScgOiAnMCAwIDAgMXB4IHJnYmEoMCwwLDAsMC4wNSknXCJcbiAgICAgICAgKGNsaWNrKT1cIm9uQ29sb3JTZWxlY3Qoc3dhdGNoKVwiPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDwhLS0gTWFrZSBkZWZhdWx0IC0tPlxuICA8bGFiZWxcbiAgICAqbmdJZj1cImFsbG93RGVmYXVsdFRvZ2dsZVwiXG4gICAgY2xhc3M9XCJjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1nYXAtMi41IGNxYS1weS0yLjUgY3FhLXB4LTMgY3FhLWJnLWluZGlnby01MFwiXG4gICAgW2NsYXNzLmNxYS1jdXJzb3ItcG9pbnRlcl09XCIhaXNEZWZhdWx0TG9ja2VkXCJcbiAgICBbY2xhc3MuY3FhLWN1cnNvci1ub3QtYWxsb3dlZF09XCJpc0RlZmF1bHRMb2NrZWRcIlxuICAgIHN0eWxlPVwiYm9yZGVyLXJhZGl1czogMTBweDsgYm9yZGVyOiAxcHggc29saWQgcmdiKDIxNiwgMjE3LCAyNTIpO1wiPlxuICAgIDxpbnB1dFxuICAgICAgdHlwZT1cImNoZWNrYm94XCJcbiAgICAgIGNsYXNzPVwiY3FhLWZsZXgtc2hyaW5rLTBcIlxuICAgICAgW2NsYXNzLmNxYS1jdXJzb3ItcG9pbnRlcl09XCIhaXNEZWZhdWx0TG9ja2VkXCJcbiAgICAgIFtjbGFzcy5jcWEtY3Vyc29yLW5vdC1hbGxvd2VkXT1cImlzRGVmYXVsdExvY2tlZFwiXG4gICAgICBzdHlsZT1cIndpZHRoOiAxNnB4OyBoZWlnaHQ6IDE2cHg7IGFjY2VudC1jb2xvcjogIzRGNDZFNTtcIlxuICAgICAgW2NoZWNrZWRdPVwiaXNEZWZhdWx0XCJcbiAgICAgIFtkaXNhYmxlZF09XCJpc0RlZmF1bHRMb2NrZWRcIlxuICAgICAgKGNoYW5nZSk9XCJvbkRlZmF1bHRDaGVja2JveENoYW5nZSgkZXZlbnQpXCI+XG4gICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1mbGV4LWNvbCBjcWEtbWluLXctMFwiPlxuICAgICAgPHNwYW4gc3R5bGU9XCJmb250LXNpemU6IDEzcHg7IGZvbnQtd2VpZ2h0OiA1MDA7IGNvbG9yOiAjMEYxNzJBOyBsaW5lLWhlaWdodDogMS4zO1wiPlxuICAgICAgICBNYWtlIHRoaXMgdGhlIGRlZmF1bHQgZW52aXJvbm1lbnRcbiAgICAgIDwvc3Bhbj5cbiAgICAgIDxzcGFuIHN0eWxlPVwiZm9udC1zaXplOiAxMXB4OyBjb2xvcjogIzY0NzQ4QjsgbWFyZ2luLXRvcDogMnB4OyBsaW5lLWhlaWdodDogMS40O1wiPlxuICAgICAgICB7eyBkZWZhdWx0SGVscGVyVGV4dCB9fVxuICAgICAgPC9zcGFuPlxuICAgIDwvZGl2PlxuICA8L2xhYmVsPlxuXG48L2Rpdj5cbiJdfQ==
|
|
150
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV3LWVudmlyb25tZW50LWRpYWxvZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL25ldy1lbnZpcm9ubWVudC1kaWFsb2cvbmV3LWVudmlyb25tZW50LWRpYWxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL25ldy1lbnZpcm9ubWVudC1kaWFsb2cvbmV3LWVudmlyb25tZW50LWRpYWxvZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQXFCLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDckcsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFDTCx5QkFBeUIsR0FFMUIsTUFBTSxpQ0FBaUMsQ0FBQzs7Ozs7QUFRekMsTUFBTSxPQUFPLDZCQUE2QjtJQW1CeEMsWUFBNkIsR0FBc0I7UUFBdEIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFsQjFDLFNBQUksR0FBc0IsUUFBUSxDQUFDO1FBRW5DLGtCQUFhLEdBQWEsRUFBRSxDQUFDO1FBQzdCLHVCQUFrQixHQUFZLElBQUksQ0FBQztRQUNuQyxzQkFBaUIsR0FBWSxLQUFLLENBQUM7UUFDbkMsb0JBQWUsR0FBWSxJQUFJLENBQUM7UUFDaEMsb0JBQWUsR0FBWSxJQUFJLENBQUM7UUFFaEMsV0FBTSxHQUFzQix5QkFBeUIsQ0FBQztRQUUvRCxTQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ1Ysb0VBQW9FO1FBQ3BFLHVCQUFrQixHQUFHLElBQUksV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3pDLFVBQUssR0FBVyx5QkFBeUIsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM3QyxjQUFTLEdBQUcsS0FBSyxDQUFDO1FBRWxCLGNBQVMsR0FBa0IsSUFBSSxDQUFDO0lBRXNCLENBQUM7SUFFdkQsUUFB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QUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7UUFDckYsTUFBTSxPQUFPLEdBQUcsU0FBUyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3hDLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxNQUFNLEVBQUU7WUFDeEIsTUFBTSxRQUFRLEdBQUcsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUN0RSxPQUFPLE9BQU8sS0FBSyxRQUFRLElBQUksUUFBUSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUMzRDtRQUNELE9BQU8sUUFBUSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNwQyxDQUFDOzswSEF6SVUsNkJBQTZCOzhHQUE3Qiw2QkFBNkIsMFlDYjFDLHk0RkEwRUE7MkZEN0RhLDZCQUE2QjtrQkFOekMsU0FBUzsrQkFDRSw0QkFBNEIsbUJBRXJCLHVCQUF1QixDQUFDLE1BQU0sUUFDekMsRUFBRSxLQUFLLEVBQUUsYUFBYSxFQUFFLEtBQUssRUFBRSwyQkFBMkIsRUFBRTt3R0FHekQsSUFBSTtzQkFBWixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBQ0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7XG4gIEVOVklST05NRU5UX0FDQ0VOVF9DT0xPUlMsXG4gIEVudmlyb25tZW50RGlhbG9nVmFsdWUsXG59IGZyb20gJy4vbmV3LWVudmlyb25tZW50LWRpYWxvZy5tb2RlbHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjcWEtbmV3LWVudmlyb25tZW50LWRpYWxvZycsXG4gIHRlbXBsYXRlVXJsOiAnLi9uZXctZW52aXJvbm1lbnQtZGlhbG9nLmNvbXBvbmVudC5odG1sJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGhvc3Q6IHsgY2xhc3M6ICdjcWEtdWktcm9vdCcsIHN0eWxlOiAnZGlzcGxheTpibG9jazt3aWR0aDoxMDAlOycgfSxcbn0pXG5leHBvcnQgY2xhc3MgTmV3RW52aXJvbm1lbnREaWFsb2dDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSBtb2RlOiAnY3JlYXRlJyB8ICdlZGl0JyA9ICdjcmVhdGUnO1xuICBASW5wdXQoKSBpbml0aWFsVmFsdWU/OiBQYXJ0aWFsPEVudmlyb25tZW50RGlhbG9nVmFsdWU+O1xuICBASW5wdXQoKSBleGlzdGluZ05hbWVzOiBzdHJpbmdbXSA9IFtdO1xuICBASW5wdXQoKSBhbGxvd0RlZmF1bHRUb2dnbGU6IGJvb2xlYW4gPSB0cnVlO1xuICBASW5wdXQoKSBkZWZhdWx0QWxyZWFkeVNldDogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBzaG93RGVzY3JpcHRpb246IGJvb2xlYW4gPSB0cnVlO1xuICBASW5wdXQoKSBzaG93QWNjZW50Q29sb3I6IGJvb2xlYW4gPSB0cnVlO1xuXG4gIHJlYWRvbmx5IGNvbG9yczogcmVhZG9ubHkgc3RyaW5nW10gPSBFTlZJUk9OTUVOVF9BQ0NFTlRfQ09MT1JTO1xuXG4gIG5hbWUgPSAnJztcbiAgLyoqIFJpY2gtdGV4dCBkZXNjcmlwdGlvbiBib3VuZCB0byBgY3FhLXJpY2gtdGV4dC1lZGl0b3JgIChUcml4KS4gKi9cbiAgZGVzY3JpcHRpb25Db250cm9sID0gbmV3IEZvcm1Db250cm9sKCcnKTtcbiAgY29sb3I6IHN0cmluZyA9IEVOVklST05NRU5UX0FDQ0VOVF9DT0xPUlNbMF07XG4gIGlzRGVmYXVsdCA9IGZhbHNlO1xuXG4gIG5hbWVFcnJvcjogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBjZHI6IENoYW5nZURldGVjdG9yUmVmKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmluaXRpYWxWYWx1ZSkge1xuICAgICAgdGhpcy5uYW1lID0gdGhpcy5pbml0aWFsVmFsdWUubmFtZSA/PyAnJztcbiAgICAgIHRoaXMuZGVzY3JpcHRpb25Db250cm9sLnNldFZhbHVlKHRoaXMuaW5pdGlhbFZhbHVlLmRlc2NyaXB0aW9uID8/ICcnKTtcbiAgICAgIHRoaXMuY29sb3IgPSB0aGlzLmluaXRpYWxWYWx1ZS5jb2xvciB8fCBFTlZJUk9OTUVOVF9BQ0NFTlRfQ09MT1JTWzBdO1xuICAgICAgdGhpcy5pc0RlZmF1bHQgPSB0aGlzLmluaXRpYWxWYWx1ZS5pc0RlZmF1bHQgPz8gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgZ2V0IHRpdGxlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMubW9kZSA9PT0gJ2VkaXQnID8gJ0VkaXQgZW52aXJvbm1lbnQnIDogJ05ldyBlbnZpcm9ubWVudCc7XG4gIH1cblxuICBnZXQgc3VidGl0bGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gJ0NyZWF0ZSBhbiBlbnZpcm9ubWVudCB0byBzY29wZSB2YXJpYWJsZXMsIERCIGNvbmZpZ3MsIGFuZCBkYXRhIHByb2ZpbGVzLic7XG4gIH1cblxuICBnZXQgcHJpbWFyeUJ1dHRvbkxhYmVsKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMubW9kZSA9PT0gJ2VkaXQnID8gJ1NhdmUgY2hhbmdlcycgOiAnQ3JlYXRlIGVudmlyb25tZW50JztcbiAgfVxuXG4gIGdldCBuYW1lRXJyb3JzQXJyYXkoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiB0aGlzLm5hbWVFcnJvciA/IFt0aGlzLm5hbWVFcnJvcl0gOiBbXTtcbiAgfVxuXG4gIGdldCBkZWZhdWx0SGVscGVyVGV4dCgpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLmlzRGVmYXVsdExvY2tlZCkge1xuICAgICAgcmV0dXJuICdUbyB1bnNldCB0aGlzIGFzIGRlZmF1bHQsIHByb21vdGUgYW5vdGhlciBlbnZpcm9ubWVudCBmcm9tIGl0cyBkZXRhaWwgcGFnZS4nO1xuICAgIH1cbiAgICBpZiAoIXRoaXMuYWxsb3dEZWZhdWx0VG9nZ2xlKSB7XG4gICAgICByZXR1cm4gJ0RlZmF1bHQgcHJvbW90aW9uIGlzIGhhbmRsZWQgZnJvbSB0aGUgZW52aXJvbm1lbnQgZGV0YWlsIHBhZ2UuJztcbiAgICB9XG4gICAgaWYgKHRoaXMuZGVmYXVsdEFscmVhZHlTZXQgJiYgIXRoaXMuaXNEZWZhdWx0KSB7XG4gICAgICByZXR1cm4gJ0Fub3RoZXIgZW52aXJvbm1lbnQgaXMgY3VycmVudGx5IHRoZSBkZWZhdWx0LiBUb2dnbGluZyB0aGlzIG9uIHdpbGwgZGVtb3RlIGl0Lic7XG4gICAgfVxuICAgIHJldHVybiAnVGVzdCBjYXNlcyB3aXRob3V0IGFuIGV4cGxpY2l0IGVudiBzZWxlY3RlZCB3aWxsIHJlc29sdmUgYWdhaW5zdCB0aGlzIG9uZS4nO1xuICB9XG5cbiAgLyoqXG4gICAqIEluIGVkaXQgbW9kZSwgd2hlbiB0aGUgZW52IGlzIGN1cnJlbnRseSB0aGUgZGVmYXVsdCwgdGhlIGNoZWNrYm94IGlzIGxvY2tlZFxuICAgKiBjaGVja2VkIOKAlCB5b3UgY2FuJ3QgdW4tZGVmYXVsdCBhbiBlbnYgZGlyZWN0bHk7IHByb21vdGUgYW5vdGhlciBlbnYgaW5zdGVhZC5cbiAgICovXG4gIGdldCBpc0RlZmF1bHRMb2NrZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMubW9kZSA9PT0gJ2VkaXQnICYmICEhdGhpcy5pbml0aWFsVmFsdWU/LmlzRGVmYXVsdDtcbiAgfVxuXG4gIG9uTmFtZUNoYW5nZShuZXh0OiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLm5hbWUgPSBuZXh0O1xuICAgIHRoaXMubmFtZUVycm9yID0gbnVsbDtcbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIG9uQ29sb3JTZWxlY3QobmV4dDogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5jb2xvciA9IG5leHQ7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBvbkRlZmF1bHRDaGFuZ2UobmV4dDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuaXNEZWZhdWx0ID0gbmV4dDtcbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIG9uRGVmYXVsdENoZWNrYm94Q2hhbmdlKGV2OiBFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IHRhcmdldCA9IGV2LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50O1xuICAgIGlmICh0aGlzLmlzRGVmYXVsdExvY2tlZCkge1xuICAgICAgdGFyZ2V0LmNoZWNrZWQgPSB0cnVlO1xuICAgICAgdGhpcy5pc0RlZmF1bHQgPSB0cnVlO1xuICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuaXNEZWZhdWx0ID0gdGFyZ2V0LmNoZWNrZWQ7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICAvKipcbiAgICogQ2FsbGVkIGJ5IHRoZSBob3N0ICh2aWEgRGlhbG9nUmVmLmdldENvbXBvbmVudEluc3RhbmNlKCkpIHdoZW4gdGhlIHByaW1hcnlcbiAgICogYnV0dG9uIGlzIGNsaWNrZWQuIFJldHVybnMgdGhlIGNhcHR1cmVkIHZhbHVlIHdoZW4gdmFsaWQsIG9yIG51bGwgd2hlbiB0aGVcbiAgICogZm9ybSBoYXMgZXJyb3JzIOKAlCBob3N0IHNob3VsZCBsZWF2ZSB0aGUgZGlhbG9nIG9wZW4uXG4gICAqL1xuICBnZXRWYWx1ZSgpOiBFbnZpcm9ubWVudERpYWxvZ1ZhbHVlIHwgbnVsbCB7XG4gICAgY29uc3QgdHJpbW1lZE5hbWUgPSB0aGlzLm5hbWUudHJpbSgpO1xuXG4gICAgaWYgKCF0cmltbWVkTmFtZSkge1xuICAgICAgdGhpcy5uYW1lRXJyb3IgPSAnTmFtZSBpcyByZXF1aXJlZC4nO1xuICAgIH0gZWxzZSBpZiAodHJpbW1lZE5hbWUubGVuZ3RoIDwgMikge1xuICAgICAgdGhpcy5uYW1lRXJyb3IgPSAnTmFtZSBtdXN0IGJlIGF0IGxlYXN0IDIgY2hhcmFjdGVycy4nO1xuICAgIH0gZWxzZSBpZiAodGhpcy5pc0R1cGxpY2F0ZU5hbWUodHJpbW1lZE5hbWUpKSB7XG4gICAgICB0aGlzLm5hbWVFcnJvciA9ICdBbiBlbnZpcm9ubWVudCB3aXRoIHRoaXMgbmFtZSBhbHJlYWR5IGV4aXN0cyDigJQgbmFtZXMgbXVzdCBiZSB1bmlxdWUuJztcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5uYW1lRXJyb3IgPSBudWxsO1xuICAgIH1cblxuICAgIGlmICh0aGlzLm5hbWVFcnJvcikge1xuICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBjb25zdCByYXdEZXNjcmlwdGlvbiA9ICh0aGlzLmRlc2NyaXB0aW9uQ29udHJvbC52YWx1ZSA/PyAnJykudG9TdHJpbmcoKTtcbiAgICBjb25zdCBkZXNjcmlwdGlvbiA9IHJhd0Rlc2NyaXB0aW9uLnRyaW0oKSA/IHJhd0Rlc2NyaXB0aW9uIDogbnVsbDtcblxuICAgIHJldHVybiB7XG4gICAgICBuYW1lOiB0cmltbWVkTmFtZSxcbiAgICAgIGRlc2NyaXB0aW9uLFxuICAgICAgY29sb3I6IHRoaXMuY29sb3IsXG4gICAgICBpc0RlZmF1bHQ6IHRoaXMuYWxsb3dEZWZhdWx0VG9nZ2xlID8gdGhpcy5pc0RlZmF1bHQgOiBmYWxzZSxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBpc0R1cGxpY2F0ZU5hbWUoY2FuZGlkYXRlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBjb25zdCBleGlzdGluZyA9ICh0aGlzLmV4aXN0aW5nTmFtZXMgPz8gW10pLm1hcChuID0+IChuID8/ICcnKS50cmltKCkudG9Mb3dlckNhc2UoKSk7XG4gICAgY29uc3QgbG93ZXJlZCA9IGNhbmRpZGF0ZS50b0xvd2VyQ2FzZSgpO1xuICAgIGlmICh0aGlzLm1vZGUgPT09ICdlZGl0Jykge1xuICAgICAgY29uc3Qgb3JpZ2luYWwgPSAodGhpcy5pbml0aWFsVmFsdWU/Lm5hbWUgPz8gJycpLnRyaW0oKS50b0xvd2VyQ2FzZSgpO1xuICAgICAgcmV0dXJuIGxvd2VyZWQgIT09IG9yaWdpbmFsICYmIGV4aXN0aW5nLmluY2x1ZGVzKGxvd2VyZWQpO1xuICAgIH1cbiAgICByZXR1cm4gZXhpc3RpbmcuaW5jbHVkZXMobG93ZXJlZCk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJjcWEtZmxleCBjcWEtZmxleC1jb2wgY3FhLWdhcC00IGNxYS13LWZ1bGxcIj5cblxuICA8IS0tIE5hbWUgLS0+XG4gIDxkaXYgY2xhc3M9XCJjcWEtZmxleCBjcWEtZmxleC1jb2xcIj5cbiAgICA8Y3FhLWN1c3RvbS1pbnB1dFxuICAgICAgbGFiZWw9XCJFbnZpcm9ubWVudCBuYW1lXCJcbiAgICAgIHBsYWNlaG9sZGVyPVwiZS5nLiBRQSwgU0lULCBVQVQsIFByb2QsIERlbW9cIlxuICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgW3ZhbHVlXT1cIm5hbWVcIlxuICAgICAgW3JlcXVpcmVkXT1cInRydWVcIlxuICAgICAgW2Z1bGxXaWR0aF09XCJ0cnVlXCJcbiAgICAgIFtlcnJvcnNdPVwibmFtZUVycm9yc0FycmF5XCJcbiAgICAgICh2YWx1ZUNoYW5nZSk9XCJvbk5hbWVDaGFuZ2UoJGV2ZW50KVwiPlxuICAgIDwvY3FhLWN1c3RvbS1pbnB1dD5cbiAgICA8c3BhbiAqbmdJZj1cIiFuYW1lRXJyb3JcIlxuICAgICAgY2xhc3M9XCJjcWEtdGV4dC14cyBjcWEtdGV4dC1ncmF5LTUwMCBjcWEtbXQtMVwiPlxuICAgICAgTmFtZXMgYXJlIHVzZXItZGVmaW5lZC4gQmUgY29uY2lzZSDigJQgeW91J2xsIHNlZSB0aGlzIG9uIGV2ZXJ5IHRlc3QgcnVuLlxuICAgIDwvc3Bhbj5cbiAgPC9kaXY+XG5cbiAgPCEtLSBEZXNjcmlwdGlvbiAocmljaC10ZXh0IGVkaXRvcikgLS0+XG4gIDxkaXYgKm5nSWY9XCJzaG93RGVzY3JpcHRpb25cIiBjbGFzcz1cImNxYS1mbGV4IGNxYS1mbGV4LWNvbFwiPlxuICAgIDxsYWJlbCBjbGFzcz1cImNxYS10ZXh0LXNtIGNxYS1tYi0xLjUgY3FhLWZvbnQtbWVkaXVtIGNxYS10ZXh0LWdyYXktNzAwXCI+RGVzY3JpcHRpb248L2xhYmVsPlxuICAgIDxjcWEtcmljaC10ZXh0LWVkaXRvclxuICAgICAgW2Zvcm1DdHJsXT1cImRlc2NyaXB0aW9uQ29udHJvbFwiXG4gICAgICBwbGFjZWhvbGRlcj1cIldoYXQgaXMgdGhpcyBlbnZpcm9ubWVudCBmb3I/XCI+XG4gICAgPC9jcWEtcmljaC10ZXh0LWVkaXRvcj5cbiAgPC9kaXY+XG5cbiAgPCEtLSBBY2NlbnQgY29sb3IgLS0+XG4gIDxkaXYgKm5nSWY9XCJzaG93QWNjZW50Q29sb3JcIiBjbGFzcz1cImNxYS1mbGV4IGNxYS1mbGV4LWNvbFwiPlxuICAgIDxsYWJlbCBjbGFzcz1cImNxYS10ZXh0LXNtIGNxYS1tYi0yIGNxYS1mb250LW1lZGl1bSBjcWEtdGV4dC1ncmF5LTcwMFwiPkFjY2VudCBjb2xvcjwvbGFiZWw+XG4gICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLWdhcC0yXCI+XG4gICAgICA8YnV0dG9uXG4gICAgICAgICpuZ0Zvcj1cImxldCBzd2F0Y2ggb2YgY29sb3JzXCJcbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIGNsYXNzPVwiY3FhLXctNyBjcWEtaC03IGNxYS1yb3VuZGVkLWxnIGNxYS1jdXJzb3ItcG9pbnRlciBjcWEtdHJhbnNpdGlvbi1hbGxcIlxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidTZWxlY3QgJyArIHN3YXRjaFwiXG4gICAgICAgIFthdHRyLmFyaWEtcHJlc3NlZF09XCJjb2xvciA9PT0gc3dhdGNoXCJcbiAgICAgICAgW3N0eWxlLmJhY2tncm91bmRdPVwic3dhdGNoXCJcbiAgICAgICAgW3N0eWxlLmJvcmRlcl09XCJjb2xvciA9PT0gc3dhdGNoID8gJzJweCBzb2xpZCAjMEYxNzJBJyA6ICcycHggc29saWQgdHJhbnNwYXJlbnQnXCJcbiAgICAgICAgW3N0eWxlLmJveFNoYWRvd109XCJjb2xvciA9PT0gc3dhdGNoID8gJzAgMCAwIDJweCByZ2JhKDE1LDIzLDQyLDAuMTIpJyA6ICcwIDAgMCAxcHggcmdiYSgwLDAsMCwwLjA1KSdcIlxuICAgICAgICAoY2xpY2spPVwib25Db2xvclNlbGVjdChzd2F0Y2gpXCI+XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cbiAgPCEtLSBNYWtlIGRlZmF1bHQgLS0+XG4gIDxsYWJlbFxuICAgICpuZ0lmPVwiYWxsb3dEZWZhdWx0VG9nZ2xlXCJcbiAgICBjbGFzcz1cImNxYS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLWdhcC0yLjUgY3FhLXB5LTIuNSBjcWEtcHgtMyBjcWEtYmctaW5kaWdvLTUwXCJcbiAgICBbY2xhc3MuY3FhLWN1cnNvci1wb2ludGVyXT1cIiFpc0RlZmF1bHRMb2NrZWRcIlxuICAgIFtjbGFzcy5jcWEtY3Vyc29yLW5vdC1hbGxvd2VkXT1cImlzRGVmYXVsdExvY2tlZFwiXG4gICAgc3R5bGU9XCJib3JkZXItcmFkaXVzOiAxMHB4OyBib3JkZXI6IDFweCBzb2xpZCByZ2IoMjE2LCAyMTcsIDI1Mik7XCI+XG4gICAgPGlucHV0XG4gICAgICB0eXBlPVwiY2hlY2tib3hcIlxuICAgICAgY2xhc3M9XCJjcWEtZmxleC1zaHJpbmstMFwiXG4gICAgICBbY2xhc3MuY3FhLWN1cnNvci1wb2ludGVyXT1cIiFpc0RlZmF1bHRMb2NrZWRcIlxuICAgICAgW2NsYXNzLmNxYS1jdXJzb3Itbm90LWFsbG93ZWRdPVwiaXNEZWZhdWx0TG9ja2VkXCJcbiAgICAgIHN0eWxlPVwid2lkdGg6IDE2cHg7IGhlaWdodDogMTZweDsgYWNjZW50LWNvbG9yOiAjNEY0NkU1O1wiXG4gICAgICBbY2hlY2tlZF09XCJpc0RlZmF1bHRcIlxuICAgICAgW2Rpc2FibGVkXT1cImlzRGVmYXVsdExvY2tlZFwiXG4gICAgICAoY2hhbmdlKT1cIm9uRGVmYXVsdENoZWNrYm94Q2hhbmdlKCRldmVudClcIj5cbiAgICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXggY3FhLWZsZXgtY29sIGNxYS1taW4tdy0wXCI+XG4gICAgICA8c3BhbiBzdHlsZT1cImZvbnQtc2l6ZTogMTNweDsgZm9udC13ZWlnaHQ6IDUwMDsgY29sb3I6ICMwRjE3MkE7IGxpbmUtaGVpZ2h0OiAxLjM7XCI+XG4gICAgICAgIE1ha2UgdGhpcyB0aGUgZGVmYXVsdCBlbnZpcm9ubWVudFxuICAgICAgPC9zcGFuPlxuICAgICAgPHNwYW4gc3R5bGU9XCJmb250LXNpemU6IDExcHg7IGNvbG9yOiAjNjQ3NDhCOyBtYXJnaW4tdG9wOiAycHg7IGxpbmUtaGVpZ2h0OiAxLjQ7XCI+XG4gICAgICAgIHt7IGRlZmF1bHRIZWxwZXJUZXh0IH19XG4gICAgICA8L3NwYW4+XG4gICAgPC9kaXY+XG4gIDwvbGFiZWw+XG5cbjwvZGl2PlxuIl19
|
package/esm2020/lib/new-environment-variable-dialog/new-environment-variable-dialog.component.mjs
CHANGED
|
@@ -98,11 +98,18 @@ export class NewEnvironmentVariableDialogComponent {
|
|
|
98
98
|
if (!next) {
|
|
99
99
|
return;
|
|
100
100
|
}
|
|
101
|
+
const prev = this.type;
|
|
101
102
|
this.type = next;
|
|
102
|
-
if (
|
|
103
|
+
if (prev === 'Boolean' && next !== 'Boolean') {
|
|
104
|
+
this.value = '';
|
|
105
|
+
}
|
|
106
|
+
else if (next === 'Boolean' && this.value !== 'true' && this.value !== 'false') {
|
|
103
107
|
this.value = 'false';
|
|
104
108
|
}
|
|
105
|
-
if (
|
|
109
|
+
if (next === 'Number' && this.value && !this.isValidNumber(this.value)) {
|
|
110
|
+
this.value = '';
|
|
111
|
+
}
|
|
112
|
+
if (next === 'Password') {
|
|
106
113
|
this.passwordTouched = false;
|
|
107
114
|
if (this.mode === 'edit') {
|
|
108
115
|
this.value = '';
|
|
@@ -191,10 +198,10 @@ export class NewEnvironmentVariableDialogComponent {
|
|
|
191
198
|
}
|
|
192
199
|
}
|
|
193
200
|
NewEnvironmentVariableDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: NewEnvironmentVariableDialogComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
194
|
-
NewEnvironmentVariableDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: NewEnvironmentVariableDialogComponent, selector: "cqa-new-environment-variable-dialog", inputs: { mode: "mode", initialValue: "initialValue", existingNames: "existingNames", envName: "envName" }, host: { styleAttribute: "display:block;width:100%;", classAttribute: "cqa-ui-root" }, ngImport: i0, template: "<div class=\"cqa-flex cqa-flex-col cqa-gap-4 cqa-w-full\">\n\n <!-- Name -->\n <div class=\"cqa-flex cqa-flex-col\">\n <cqa-custom-input\n label=\"Name\"\n placeholder=\"e.g. order_id\"\n type=\"text\"\n [value]=\"name\"\n [required]=\"true\"\n [fullWidth]=\"true\"\n [errors]=\"nameErrorsArray\"\n inputInlineStyle=\"font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', monospace;\"\n (valueChange)=\"onNameChange($event)\">\n </cqa-custom-input>\n <span *ngIf=\"!nameError\"\n class=\"cqa-text-xs cqa-text-gray-500 cqa-mt-1\">\n {{ nameHelperText }}\n </span>\n </div>\n\n <!-- Type + Permission -->\n <div class=\"cqa-grid cqa-grid-cols-2 cqa-gap-4\">\n <div class=\"cqa-flex cqa-flex-col\">\n <label class=\"cqa-text-sm cqa-mb-1.5 cqa-font-medium cqa-text-gray-700\">Type</label>\n <cqa-dropdown-button\n [options]=\"typeDropdownOptions\"\n [selectedValue]=\"type\"\n (selectionChange)=\"onTypeChange($event)\">\n </cqa-dropdown-button>\n </div>\n <div class=\"cqa-flex cqa-flex-col\">\n <label class=\"cqa-text-sm cqa-mb-1.5 cqa-font-medium cqa-text-gray-700\">Permission</label>\n <div class=\"cqa-pt-0.5\">\n <cqa-permission-toggle\n [value]=\"readWriteMode\"\n (valueChange)=\"onPermissionChange($event)\">\n </cqa-permission-toggle>\n </div>\n <span class=\"cqa-text-xs cqa-text-gray-500 cqa-mt-1\">{{ permissionHelperText }}</span>\n </div>\n </div>\n\n <!-- Value -->\n <div class=\"cqa-flex cqa-flex-col\">\n <ng-container *ngIf=\"isBoolean; else nonBooleanValue\">\n <label class=\"cqa-text-sm cqa-mb-1.5 cqa-font-medium cqa-text-gray-700\">Value</label>\n <cqa-dropdown-button\n [options]=\"booleanDropdownOptions\"\n [selectedValue]=\"value\"\n (selectionChange)=\"onBooleanValueChange($event)\">\n </cqa-dropdown-button>\n </ng-container>\n <ng-template #nonBooleanValue>\n <cqa-custom-input\n label=\"Value\"\n [type]=\"isPassword ? 'password' : 'text'\"\n [value]=\"value\"\n [placeholder]=\"valuePlaceholder\"\n [required]=\"isValueRequiredVisually\"\n [fullWidth]=\"true\"\n [errors]=\"valueErrorsArray\"\n inputInlineStyle=\"font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', monospace;\"\n (valueChange)=\"onValueChange($event)\">\n </cqa-custom-input>\n </ng-template>\n </div>\n\n</div>\n", components: [{ type: i1.CustomInputComponent, selector: "cqa-custom-input", inputs: ["inputId", "label", "type", "placeholder", "value", "disabled", "errors", "required", "ariaLabel", "size", "fullWidth", "maxLength", "showCharCount", "inputInlineStyle", "labelInlineStyle"], outputs: ["valueChange", "blurred", "focused", "enterPressed"] }, { type: i2.DropdownButtonComponent, selector: "cqa-dropdown-button", inputs: ["label", "options", "selectedValue", "disabled", "placeholder"], outputs: ["selectionChange", "opened", "closed"] }, { type: i3.PermissionToggleComponent, selector: "cqa-permission-toggle", inputs: ["value", "disabled", "displayOnly", "roTooltip", "rwTooltip"], outputs: ["valueChange"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
201
|
+
NewEnvironmentVariableDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: NewEnvironmentVariableDialogComponent, selector: "cqa-new-environment-variable-dialog", inputs: { mode: "mode", initialValue: "initialValue", existingNames: "existingNames", envName: "envName" }, host: { styleAttribute: "display:block;width:100%;", classAttribute: "cqa-ui-root" }, ngImport: i0, template: "<div class=\"cqa-flex cqa-flex-col cqa-gap-4 cqa-w-full\">\n\n <!-- Name -->\n <div class=\"cqa-flex cqa-flex-col\">\n <cqa-custom-input\n label=\"Name\"\n placeholder=\"e.g. order_id\"\n type=\"text\"\n [value]=\"name\"\n [required]=\"true\"\n [fullWidth]=\"true\"\n [errors]=\"nameErrorsArray\"\n inputInlineStyle=\"font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', monospace;\"\n (valueChange)=\"onNameChange($event)\">\n </cqa-custom-input>\n <span *ngIf=\"!nameError\"\n class=\"cqa-text-xs cqa-text-gray-500 cqa-mt-1\">\n {{ nameHelperText }}\n </span>\n </div>\n\n <!-- Type + Permission -->\n <div class=\"cqa-grid cqa-grid-cols-2 cqa-gap-4\">\n <div class=\"cqa-flex cqa-flex-col\">\n <label class=\"cqa-text-sm cqa-mb-1.5 cqa-font-medium cqa-text-gray-700\">Type</label>\n <cqa-dropdown-button\n [options]=\"typeDropdownOptions\"\n [selectedValue]=\"type\"\n (selectionChange)=\"onTypeChange($event)\">\n </cqa-dropdown-button>\n </div>\n <div class=\"cqa-flex cqa-flex-col\">\n <label class=\"cqa-text-sm cqa-mb-1.5 cqa-font-medium cqa-text-gray-700\">Permission</label>\n <div class=\"cqa-pt-0.5\">\n <cqa-permission-toggle\n [value]=\"readWriteMode\"\n (valueChange)=\"onPermissionChange($event)\">\n </cqa-permission-toggle>\n </div>\n <span class=\"cqa-text-xs cqa-text-gray-500 cqa-mt-1\">{{ permissionHelperText }}</span>\n </div>\n </div>\n\n <!-- Value -->\n <div class=\"cqa-flex cqa-flex-col\">\n <ng-container *ngIf=\"isBoolean; else nonBooleanValue\">\n <label class=\"cqa-text-sm cqa-mb-1.5 cqa-font-medium cqa-text-gray-700\">Value</label>\n <cqa-dropdown-button\n [options]=\"booleanDropdownOptions\"\n [selectedValue]=\"value\"\n (selectionChange)=\"onBooleanValueChange($event)\">\n </cqa-dropdown-button>\n </ng-container>\n <ng-template #nonBooleanValue>\n <cqa-custom-input\n label=\"Value\"\n [type]=\"isPassword ? 'password' : (isNumber ? 'number' : 'text')\"\n [value]=\"value\"\n [placeholder]=\"valuePlaceholder\"\n [required]=\"isValueRequiredVisually\"\n [fullWidth]=\"true\"\n [errors]=\"valueErrorsArray\"\n inputInlineStyle=\"font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', monospace;\"\n (valueChange)=\"onValueChange($event)\">\n </cqa-custom-input>\n </ng-template>\n </div>\n\n</div>\n", components: [{ type: i1.CustomInputComponent, selector: "cqa-custom-input", inputs: ["inputId", "label", "type", "placeholder", "value", "disabled", "errors", "required", "ariaLabel", "size", "fullWidth", "maxLength", "showCharCount", "inputInlineStyle", "labelInlineStyle"], outputs: ["valueChange", "blurred", "focused", "enterPressed"] }, { type: i2.DropdownButtonComponent, selector: "cqa-dropdown-button", inputs: ["label", "options", "selectedValue", "disabled", "placeholder"], outputs: ["selectionChange", "opened", "closed"] }, { type: i3.PermissionToggleComponent, selector: "cqa-permission-toggle", inputs: ["value", "disabled", "displayOnly", "roTooltip", "rwTooltip"], outputs: ["valueChange"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
195
202
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: NewEnvironmentVariableDialogComponent, decorators: [{
|
|
196
203
|
type: Component,
|
|
197
|
-
args: [{ selector: 'cqa-new-environment-variable-dialog', changeDetection: ChangeDetectionStrategy.OnPush, host: { class: 'cqa-ui-root', style: 'display:block;width:100%;' }, template: "<div class=\"cqa-flex cqa-flex-col cqa-gap-4 cqa-w-full\">\n\n <!-- Name -->\n <div class=\"cqa-flex cqa-flex-col\">\n <cqa-custom-input\n label=\"Name\"\n placeholder=\"e.g. order_id\"\n type=\"text\"\n [value]=\"name\"\n [required]=\"true\"\n [fullWidth]=\"true\"\n [errors]=\"nameErrorsArray\"\n inputInlineStyle=\"font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', monospace;\"\n (valueChange)=\"onNameChange($event)\">\n </cqa-custom-input>\n <span *ngIf=\"!nameError\"\n class=\"cqa-text-xs cqa-text-gray-500 cqa-mt-1\">\n {{ nameHelperText }}\n </span>\n </div>\n\n <!-- Type + Permission -->\n <div class=\"cqa-grid cqa-grid-cols-2 cqa-gap-4\">\n <div class=\"cqa-flex cqa-flex-col\">\n <label class=\"cqa-text-sm cqa-mb-1.5 cqa-font-medium cqa-text-gray-700\">Type</label>\n <cqa-dropdown-button\n [options]=\"typeDropdownOptions\"\n [selectedValue]=\"type\"\n (selectionChange)=\"onTypeChange($event)\">\n </cqa-dropdown-button>\n </div>\n <div class=\"cqa-flex cqa-flex-col\">\n <label class=\"cqa-text-sm cqa-mb-1.5 cqa-font-medium cqa-text-gray-700\">Permission</label>\n <div class=\"cqa-pt-0.5\">\n <cqa-permission-toggle\n [value]=\"readWriteMode\"\n (valueChange)=\"onPermissionChange($event)\">\n </cqa-permission-toggle>\n </div>\n <span class=\"cqa-text-xs cqa-text-gray-500 cqa-mt-1\">{{ permissionHelperText }}</span>\n </div>\n </div>\n\n <!-- Value -->\n <div class=\"cqa-flex cqa-flex-col\">\n <ng-container *ngIf=\"isBoolean; else nonBooleanValue\">\n <label class=\"cqa-text-sm cqa-mb-1.5 cqa-font-medium cqa-text-gray-700\">Value</label>\n <cqa-dropdown-button\n [options]=\"booleanDropdownOptions\"\n [selectedValue]=\"value\"\n (selectionChange)=\"onBooleanValueChange($event)\">\n </cqa-dropdown-button>\n </ng-container>\n <ng-template #nonBooleanValue>\n <cqa-custom-input\n label=\"Value\"\n [type]=\"isPassword ? 'password' : 'text'\"\n [value]=\"value\"\n [placeholder]=\"valuePlaceholder\"\n [required]=\"isValueRequiredVisually\"\n [fullWidth]=\"true\"\n [errors]=\"valueErrorsArray\"\n inputInlineStyle=\"font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', monospace;\"\n (valueChange)=\"onValueChange($event)\">\n </cqa-custom-input>\n </ng-template>\n </div>\n\n</div>\n" }]
|
|
204
|
+
args: [{ selector: 'cqa-new-environment-variable-dialog', changeDetection: ChangeDetectionStrategy.OnPush, host: { class: 'cqa-ui-root', style: 'display:block;width:100%;' }, template: "<div class=\"cqa-flex cqa-flex-col cqa-gap-4 cqa-w-full\">\n\n <!-- Name -->\n <div class=\"cqa-flex cqa-flex-col\">\n <cqa-custom-input\n label=\"Name\"\n placeholder=\"e.g. order_id\"\n type=\"text\"\n [value]=\"name\"\n [required]=\"true\"\n [fullWidth]=\"true\"\n [errors]=\"nameErrorsArray\"\n inputInlineStyle=\"font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', monospace;\"\n (valueChange)=\"onNameChange($event)\">\n </cqa-custom-input>\n <span *ngIf=\"!nameError\"\n class=\"cqa-text-xs cqa-text-gray-500 cqa-mt-1\">\n {{ nameHelperText }}\n </span>\n </div>\n\n <!-- Type + Permission -->\n <div class=\"cqa-grid cqa-grid-cols-2 cqa-gap-4\">\n <div class=\"cqa-flex cqa-flex-col\">\n <label class=\"cqa-text-sm cqa-mb-1.5 cqa-font-medium cqa-text-gray-700\">Type</label>\n <cqa-dropdown-button\n [options]=\"typeDropdownOptions\"\n [selectedValue]=\"type\"\n (selectionChange)=\"onTypeChange($event)\">\n </cqa-dropdown-button>\n </div>\n <div class=\"cqa-flex cqa-flex-col\">\n <label class=\"cqa-text-sm cqa-mb-1.5 cqa-font-medium cqa-text-gray-700\">Permission</label>\n <div class=\"cqa-pt-0.5\">\n <cqa-permission-toggle\n [value]=\"readWriteMode\"\n (valueChange)=\"onPermissionChange($event)\">\n </cqa-permission-toggle>\n </div>\n <span class=\"cqa-text-xs cqa-text-gray-500 cqa-mt-1\">{{ permissionHelperText }}</span>\n </div>\n </div>\n\n <!-- Value -->\n <div class=\"cqa-flex cqa-flex-col\">\n <ng-container *ngIf=\"isBoolean; else nonBooleanValue\">\n <label class=\"cqa-text-sm cqa-mb-1.5 cqa-font-medium cqa-text-gray-700\">Value</label>\n <cqa-dropdown-button\n [options]=\"booleanDropdownOptions\"\n [selectedValue]=\"value\"\n (selectionChange)=\"onBooleanValueChange($event)\">\n </cqa-dropdown-button>\n </ng-container>\n <ng-template #nonBooleanValue>\n <cqa-custom-input\n label=\"Value\"\n [type]=\"isPassword ? 'password' : (isNumber ? 'number' : 'text')\"\n [value]=\"value\"\n [placeholder]=\"valuePlaceholder\"\n [required]=\"isValueRequiredVisually\"\n [fullWidth]=\"true\"\n [errors]=\"valueErrorsArray\"\n inputInlineStyle=\"font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', monospace;\"\n (valueChange)=\"onValueChange($event)\">\n </cqa-custom-input>\n </ng-template>\n </div>\n\n</div>\n" }]
|
|
198
205
|
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { mode: [{
|
|
199
206
|
type: Input
|
|
200
207
|
}], initialValue: [{
|
|
@@ -204,4 +211,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
|
|
|
204
211
|
}], envName: [{
|
|
205
212
|
type: Input
|
|
206
213
|
}] } });
|
|
207
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV3LWVudmlyb25tZW50LXZhcmlhYmxlLWRpYWxvZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL25ldy1lbnZpcm9ubWVudC12YXJpYWJsZS1kaWFsb2cvbmV3LWVudmlyb25tZW50LXZhcmlhYmxlLWRpYWxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL25ldy1lbnZpcm9ubWVudC12YXJpYWJsZS1kaWFsb2cvbmV3LWVudmlyb25tZW50LXZhcmlhYmxlLWRpYWxvZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQXFCLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7Ozs7OztBQWFyRyxNQUFNLE9BQU8scUNBQXFDO0lBc0JoRCxZQUE2QixHQUFzQjtRQUF0QixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQXJCMUMsU0FBSSxHQUFzQixRQUFRLENBQUM7UUFFbkMsa0JBQWEsR0FBYSxFQUFFLENBQUM7UUFDN0IsWUFBTyxHQUFXLEVBQUUsQ0FBQztRQUVyQix3QkFBbUIsR0FBa0Q7WUFDNUUsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUU7WUFDcEMsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUU7WUFDcEMsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUU7WUFDdEMsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUU7U0FDekMsQ0FBQztRQUVGLFNBQUksR0FBRyxFQUFFLENBQUM7UUFDVixTQUFJLEdBQXNCLFFBQVEsQ0FBQztRQUNuQyxVQUFLLEdBQUcsRUFBRSxDQUFDO1FBQ1gsa0JBQWEsR0FBNEIsSUFBSSxDQUFDO1FBQzlDLG9CQUFlLEdBQUcsS0FB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SUFuTVUscUNBQXFDO3NIQUFyQyxxQ0FBcUMsNlFDYmxELHFoRkFxRUE7MkZEeERhLHFDQUFxQztrQkFOakQsU0FBUzsrQkFDRSxxQ0FBcUMsbUJBRTlCLHVCQUF1QixDQUFDLE1BQU0sUUFDekMsRUFBRSxLQUFLLEVBQUUsYUFBYSxFQUFFLEtBQUssRUFBRSwyQkFBMkIsRUFBRTt3R0FHekQsSUFBSTtzQkFBWixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgRW52VmFyaWFibGVEaWFsb2dWYWx1ZSxcbiAgRW52VmFyaWFibGVVSVBlcm1pc3Npb24sXG4gIEVudlZhcmlhYmxlVUlUeXBlLFxufSBmcm9tICcuL25ldy1lbnZpcm9ubWVudC12YXJpYWJsZS1kaWFsb2cubW9kZWxzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY3FhLW5ldy1lbnZpcm9ubWVudC12YXJpYWJsZS1kaWFsb2cnLFxuICB0ZW1wbGF0ZVVybDogJy4vbmV3LWVudmlyb25tZW50LXZhcmlhYmxlLWRpYWxvZy5jb21wb25lbnQuaHRtbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBob3N0OiB7IGNsYXNzOiAnY3FhLXVpLXJvb3QnLCBzdHlsZTogJ2Rpc3BsYXk6YmxvY2s7d2lkdGg6MTAwJTsnIH0sXG59KVxuZXhwb3J0IGNsYXNzIE5ld0Vudmlyb25tZW50VmFyaWFibGVEaWFsb2dDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSBtb2RlOiAnY3JlYXRlJyB8ICdlZGl0JyA9ICdjcmVhdGUnO1xuICBASW5wdXQoKSBpbml0aWFsVmFsdWU/OiBQYXJ0aWFsPEVudlZhcmlhYmxlRGlhbG9nVmFsdWU+O1xuICBASW5wdXQoKSBleGlzdGluZ05hbWVzOiBzdHJpbmdbXSA9IFtdO1xuICBASW5wdXQoKSBlbnZOYW1lOiBzdHJpbmcgPSAnJztcblxuICByZWFkb25seSB0eXBlRHJvcGRvd25PcHRpb25zOiB7IGxhYmVsOiBzdHJpbmc7IHZhbHVlOiBFbnZWYXJpYWJsZVVJVHlwZSB9W10gPSBbXG4gICAgeyBsYWJlbDogJ1N0cmluZycsIHZhbHVlOiAnU3RyaW5nJyB9LFxuICAgIHsgbGFiZWw6ICdOdW1iZXInLCB2YWx1ZTogJ051bWJlcicgfSxcbiAgICB7IGxhYmVsOiAnQm9vbGVhbicsIHZhbHVlOiAnQm9vbGVhbicgfSxcbiAgICB7IGxhYmVsOiAnUGFzc3dvcmQnLCB2YWx1ZTogJ1Bhc3N3b3JkJyB9LFxuICBdO1xuXG4gIG5hbWUgPSAnJztcbiAgdHlwZTogRW52VmFyaWFibGVVSVR5cGUgPSAnU3RyaW5nJztcbiAgdmFsdWUgPSAnJztcbiAgcmVhZFdyaXRlTW9kZTogRW52VmFyaWFibGVVSVBlcm1pc3Npb24gPSAnUlcnO1xuICBwYXNzd29yZFRvdWNoZWQgPSBmYWxzZTtcblxuICBuYW1lRXJyb3I6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICB2YWx1ZUVycm9yOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaW5pdGlhbFZhbHVlKSB7XG4gICAgICB0aGlzLm5hbWUgPSB0aGlzLmluaXRpYWxWYWx1ZS5uYW1lID8/ICcnO1xuICAgICAgdGhpcy50eXBlID0gdGhpcy5pbml0aWFsVmFsdWUudHlwZSA/PyAnU3RyaW5nJztcbiAgICAgIHRoaXMudmFsdWUgPSB0aGlzLmluaXRpYWxWYWx1ZS52YWx1ZSA/PyAnJztcbiAgICAgIHRoaXMucmVhZFdyaXRlTW9kZSA9IHRoaXMuaW5pdGlhbFZhbHVlLnJlYWRXcml0ZU1vZGUgPz8gJ1JXJztcbiAgICB9XG4gICAgaWYgKHRoaXMudHlwZSA9PT0gJ0Jvb2xlYW4nICYmIHRoaXMudmFsdWUgIT09ICd0cnVlJyAmJiB0aGlzLnZhbHVlICE9PSAnZmFsc2UnKSB7XG4gICAgICB0aGlzLnZhbHVlID0gJ2ZhbHNlJztcbiAgICB9XG4gICAgaWYgKHRoaXMubW9kZSA9PT0gJ2VkaXQnICYmIHRoaXMudHlwZSA9PT0gJ1Bhc3N3b3JkJykge1xuICAgICAgdGhpcy52YWx1ZSA9ICcnO1xuICAgIH1cbiAgfVxuXG4gIGdldCB0aXRsZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLm1vZGUgPT09ICdlZGl0JyA/ICdFZGl0IHZhcmlhYmxlJyA6ICdOZXcgdmFyaWFibGUnO1xuICB9XG5cbiAgZ2V0IHN1YnRpdGxlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZW52TmFtZSA/IGBTY29wZWQgdG8gdGhlICR7dGhpcy5lbnZOYW1lfSBlbnZpcm9ubWVudC5gIDogJ1Njb3BlZCB0byB0aGlzIGVudmlyb25tZW50Lic7XG4gIH1cblxuICBnZXQgcHJpbWFyeUJ1dHRvbkxhYmVsKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMubW9kZSA9PT0gJ2VkaXQnID8gJ1NhdmUgY2hhbmdlcycgOiAnQWRkIHZhcmlhYmxlJztcbiAgfVxuXG4gIGdldCBpc0Jvb2xlYW4oKTogYm9vbGVhbiB7IHJldHVybiB0aGlzLnR5cGUgPT09ICdCb29sZWFuJzsgfVxuICBnZXQgaXNQYXNzd29yZCgpOiBib29sZWFuIHsgcmV0dXJuIHRoaXMudHlwZSA9PT0gJ1Bhc3N3b3JkJzsgfVxuICBnZXQgaXNOdW1iZXIoKTogYm9vbGVhbiB7IHJldHVybiB0aGlzLnR5cGUgPT09ICdOdW1iZXInOyB9XG5cbiAgZ2V0IHZhbHVlUGxhY2Vob2xkZXIoKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy5pc1Bhc3N3b3JkICYmIHRoaXMubW9kZSA9PT0gJ2VkaXQnKSB7XG4gICAgICByZXR1cm4gJ+KAouKAouKAouKAouKAouKAoiAobGVhdmUgYmxhbmsgdG8ga2VlcCBleGlzdGluZyknO1xuICAgIH1cbiAgICBpZiAodGhpcy5yZWFkV3JpdGVNb2RlID09PSAnUlcnKSB7XG4gICAgICByZXR1cm4gJ0xlYXZlIGJsYW5rIHRvIHBvcHVsYXRlIGR1cmluZyB0ZXN0IGV4ZWN1dGlvbic7XG4gICAgfVxuICAgIHJldHVybiAnRW50ZXIgYSB2YWx1ZSc7XG4gIH1cblxuICBnZXQgbmFtZUhlbHBlclRleHQoKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy5uYW1lRXJyb3IpIHsgcmV0dXJuIHRoaXMubmFtZUVycm9yOyB9XG4gICAgcmV0dXJuICdWYXJpYWJsZSBuYW1lcyBtdXN0IGJlIHVuaXF1ZSB3aXRoaW4gdGhlIGVudmlyb25tZW50Lic7XG4gIH1cblxuICBnZXQgcGVybWlzc2lvbkhlbHBlclRleHQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5yZWFkV3JpdGVNb2RlID09PSAnUk8nXG4gICAgICA/ICdSZWFkIG9ubHkg4oCUIHRlc3Qgc3RlcHMgY2FuIHJlYWQgYnV0IG5vdCBvdmVyd3JpdGUuJ1xuICAgICAgOiAnUmVhZC93cml0ZSDigJQgdGVzdCBjYXNlcyBjYW4gY2FwdHVyZSB2YWx1ZXMgaGVyZS4nO1xuICB9XG5cbiAgZ2V0IG5hbWVFcnJvcnNBcnJheSgpOiBzdHJpbmdbXSB7IHJldHVybiB0aGlzLm5hbWVFcnJvciA/IFt0aGlzLm5hbWVFcnJvcl0gOiBbXTsgfVxuICBnZXQgdmFsdWVFcnJvcnNBcnJheSgpOiBzdHJpbmdbXSB7IHJldHVybiB0aGlzLnZhbHVlRXJyb3IgPyBbdGhpcy52YWx1ZUVycm9yXSA6IFtdOyB9XG5cbiAgZ2V0IGJvb2xlYW5Ecm9wZG93bk9wdGlvbnMoKTogeyBsYWJlbDogc3RyaW5nOyB2YWx1ZTogc3RyaW5nIH1bXSB7XG4gICAgcmV0dXJuIFtcbiAgICAgIHsgbGFiZWw6ICd0cnVlJywgdmFsdWU6ICd0cnVlJyB9LFxuICAgICAgeyBsYWJlbDogJ2ZhbHNlJywgdmFsdWU6ICdmYWxzZScgfSxcbiAgICBdO1xuICB9XG5cbiAgZ2V0IGlzVmFsdWVSZXF1aXJlZFZpc3VhbGx5KCk6IGJvb2xlYW4ge1xuICAgIC8vIEJvb2xlYW4gaXMgc2VsZWN0ZWQgdmlhIGRyb3Bkb3duIChhbHdheXMgaGFzIGEgdmFsdWUpOyBwYXNzd29yZCBlZGl0LW1vZGVcbiAgICAvLyBhbGxvd3MgYmxhbmsgdG8gbWVhbiBcImtlZXAgZXhpc3Rpbmcgc2VjcmV0XCIg4oCUIGJvdGggcmVuZGVyIHdpdGhvdXQgdGhlIGFzdGVyaXNrLlxuICAgIGlmICh0aGlzLmlzQm9vbGVhbikgeyByZXR1cm4gZmFsc2U7IH1cbiAgICBpZiAodGhpcy5pc1Bhc3N3b3JkICYmIHRoaXMubW9kZSA9PT0gJ2VkaXQnKSB7IHJldHVybiBmYWxzZTsgfVxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgb25OYW1lQ2hhbmdlKG5leHQ6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMubmFtZSA9IG5leHQ7XG4gICAgdGhpcy5uYW1lRXJyb3IgPSBudWxsO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgb25UeXBlQ2hhbmdlKG5leHQ6IEVudlZhcmlhYmxlVUlUeXBlKTogdm9pZCB7XG4gICAgaWYgKCFuZXh0KSB7IHJldHVybjsgfVxuICAgIHRoaXMudHlwZSA9IG5leHQ7XG4gICAgaWYgKHRoaXMudHlwZSA9PT0gJ0Jvb2xlYW4nICYmIHRoaXMudmFsdWUgIT09ICd0cnVlJyAmJiB0aGlzLnZhbHVlICE9PSAnZmFsc2UnKSB7XG4gICAgICB0aGlzLnZhbHVlID0gJ2ZhbHNlJztcbiAgICB9XG4gICAgaWYgKHRoaXMudHlwZSA9PT0gJ1Bhc3N3b3JkJykge1xuICAgICAgdGhpcy5wYXNzd29yZFRvdWNoZWQgPSBmYWxzZTtcbiAgICAgIGlmICh0aGlzLm1vZGUgPT09ICdlZGl0JykgeyB0aGlzLnZhbHVlID0gJyc7IH1cbiAgICB9XG4gICAgdGhpcy52YWx1ZUVycm9yID0gbnVsbDtcbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIG9uUGVybWlzc2lvbkNoYW5nZShuZXh0OiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLnJlYWRXcml0ZU1vZGUgPSBuZXh0ID09PSAnUk8nID8gJ1JPJyA6ICdSVyc7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBvblZhbHVlQ2hhbmdlKG5leHQ6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMudmFsdWUgPSBuZXh0O1xuICAgIGlmICh0aGlzLmlzUGFzc3dvcmQpIHsgdGhpcy5wYXNzd29yZFRvdWNoZWQgPSB0cnVlOyB9XG4gICAgdGhpcy52YWx1ZUVycm9yID0gbnVsbDtcbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIG9uQm9vbGVhblZhbHVlQ2hhbmdlKG5leHQ6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMudmFsdWUgPSBuZXh0O1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgLyoqXG4gICAqIEhvc3QgcmVhZHMgdmlhIERpYWxvZ1JlZi5nZXRDb21wb25lbnRJbnN0YW5jZSgpLiBSZXR1cm5zIG51bGwgb24gdmFsaWRhdGlvblxuICAgKiBmYWlsdXJlIOKAlCBob3N0IGtlZXBzIHRoZSBkaWFsb2cgb3BlbiBhbmQgc3VyZmFjZXMgdGhlIGlubGluZSBlcnJvciBhbHJlYWR5XG4gICAqIHdyaXR0ZW4gb250byBuYW1lRXJyb3IgLyB2YWx1ZUVycm9yLlxuICAgKi9cbiAgZ2V0VmFsdWUoKTogRW52VmFyaWFibGVEaWFsb2dWYWx1ZSB8IG51bGwge1xuICAgIGNvbnN0IHRyaW1tZWROYW1lID0gdGhpcy5uYW1lLnRyaW0oKTtcblxuICAgIGlmICghdHJpbW1lZE5hbWUpIHtcbiAgICAgIHRoaXMubmFtZUVycm9yID0gJ05hbWUgaXMgcmVxdWlyZWQuJztcbiAgICB9IGVsc2UgaWYgKHRoaXMuaXNEdXBsaWNhdGVOYW1lKHRyaW1tZWROYW1lKSkge1xuICAgICAgdGhpcy5uYW1lRXJyb3IgPSAnQSB2YXJpYWJsZSB3aXRoIHRoaXMgbmFtZSBhbHJlYWR5IGV4aXN0cyBpbiB0aGlzIGVudmlyb25tZW50Lic7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubmFtZUVycm9yID0gbnVsbDtcbiAgICB9XG5cbiAgICBjb25zdCByYXdWYWx1ZSA9ICh0aGlzLnZhbHVlID8/ICcnKS50b1N0cmluZygpO1xuICAgIGNvbnN0IHZhbHVlSXNCbGFuayA9ICF0aGlzLmlzQm9vbGVhbiAmJiByYXdWYWx1ZS50cmltKCkgPT09ICcnO1xuICAgIGNvbnN0IGFsbG93QmxhbmtQYXNzd29yZE9uRWRpdCA9IHRoaXMuaXNQYXNzd29yZCAmJiB0aGlzLm1vZGUgPT09ICdlZGl0JyAmJiAhdGhpcy5wYXNzd29yZFRvdWNoZWQ7XG5cbiAgICBpZiAodmFsdWVJc0JsYW5rICYmICFhbGxvd0JsYW5rUGFzc3dvcmRPbkVkaXQpIHtcbiAgICAgIHRoaXMudmFsdWVFcnJvciA9ICdWYWx1ZSBpcyByZXF1aXJlZC4nO1xuICAgIH0gZWxzZSBpZiAodGhpcy5pc051bWJlciAmJiByYXdWYWx1ZSAmJiAhdGhpcy5pc1ZhbGlkTnVtYmVyKHJhd1ZhbHVlKSkge1xuICAgICAgdGhpcy52YWx1ZUVycm9yID0gJ1ZhbHVlIG11c3QgYmUgYSBudW1iZXIuJztcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy52YWx1ZUVycm9yID0gbnVsbDtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5uYW1lRXJyb3IgfHwgdGhpcy52YWx1ZUVycm9yKSB7XG4gICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGNvbnN0IG9taXRQYXNzd29yZFZhbHVlID0gdGhpcy5pc1Bhc3N3b3JkICYmIHRoaXMubW9kZSA9PT0gJ2VkaXQnICYmICF0aGlzLnBhc3N3b3JkVG91Y2hlZDtcblxuICAgIHJldHVybiB7XG4gICAgICBuYW1lOiB0cmltbWVkTmFtZSxcbiAgICAgIHR5cGU6IHRoaXMudHlwZSxcbiAgICAgIHZhbHVlOiBvbWl0UGFzc3dvcmRWYWx1ZSA/IG51bGwgOiB0aGlzLnNlcmlhbGl6ZVZhbHVlKCksXG4gICAgICByZWFkV3JpdGVNb2RlOiB0aGlzLnJlYWRXcml0ZU1vZGUsXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgc2VyaWFsaXplVmFsdWUoKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgaWYgKHRoaXMuaXNCb29sZWFuKSB7XG4gICAgICByZXR1cm4gdGhpcy52YWx1ZSA9PT0gJ3RydWUnID8gJ3RydWUnIDogJ2ZhbHNlJztcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMudmFsdWUgPz8gJyc7XG4gIH1cblxuICBwcml2YXRlIGlzRHVwbGljYXRlTmFtZShjYW5kaWRhdGU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGV4aXN0aW5nID0gKHRoaXMuZXhpc3RpbmdOYW1lcyA/PyBbXSkubWFwKG4gPT4gKG4gPz8gJycpLnRyaW0oKS50b0xvd2VyQ2FzZSgpKTtcbiAgICBjb25zdCBsb3dlcmVkID0gY2FuZGlkYXRlLnRvTG93ZXJDYXNlKCk7XG4gICAgaWYgKHRoaXMubW9kZSA9PT0gJ2VkaXQnKSB7XG4gICAgICBjb25zdCBvcmlnaW5hbCA9ICh0aGlzLmluaXRpYWxWYWx1ZT8ubmFtZSA/PyAnJykudHJpbSgpLnRvTG93ZXJDYXNlKCk7XG4gICAgICByZXR1cm4gbG93ZXJlZCAhPT0gb3JpZ2luYWwgJiYgZXhpc3RpbmcuaW5jbHVkZXMobG93ZXJlZCk7XG4gICAgfVxuICAgIHJldHVybiBleGlzdGluZy5pbmNsdWRlcyhsb3dlcmVkKTtcbiAgfVxuXG4gIHByaXZhdGUgaXNWYWxpZE51bWJlcihyYXc6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHRyaW1tZWQgPSByYXcudHJpbSgpO1xuICAgIGlmICghdHJpbW1lZCkgeyByZXR1cm4gdHJ1ZTsgfVxuICAgIHJldHVybiAhTnVtYmVyLmlzTmFOKE51bWJlcih0cmltbWVkKSk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJjcWEtZmxleCBjcWEtZmxleC1jb2wgY3FhLWdhcC00IGNxYS13LWZ1bGxcIj5cblxuICA8IS0tIE5hbWUgLS0+XG4gIDxkaXYgY2xhc3M9XCJjcWEtZmxleCBjcWEtZmxleC1jb2xcIj5cbiAgICA8Y3FhLWN1c3RvbS1pbnB1dFxuICAgICAgbGFiZWw9XCJOYW1lXCJcbiAgICAgIHBsYWNlaG9sZGVyPVwiZS5nLiBvcmRlcl9pZFwiXG4gICAgICB0eXBlPVwidGV4dFwiXG4gICAgICBbdmFsdWVdPVwibmFtZVwiXG4gICAgICBbcmVxdWlyZWRdPVwidHJ1ZVwiXG4gICAgICBbZnVsbFdpZHRoXT1cInRydWVcIlxuICAgICAgW2Vycm9yc109XCJuYW1lRXJyb3JzQXJyYXlcIlxuICAgICAgaW5wdXRJbmxpbmVTdHlsZT1cImZvbnQtZmFtaWx5OiB1aS1tb25vc3BhY2UsIFNGTW9uby1SZWd1bGFyLCBNZW5sbywgTW9uYWNvLCBDb25zb2xhcywgJ0xpYmVyYXRpb24gTW9ubycsIG1vbm9zcGFjZTtcIlxuICAgICAgKHZhbHVlQ2hhbmdlKT1cIm9uTmFtZUNoYW5nZSgkZXZlbnQpXCI+XG4gICAgPC9jcWEtY3VzdG9tLWlucHV0PlxuICAgIDxzcGFuICpuZ0lmPVwiIW5hbWVFcnJvclwiXG4gICAgICBjbGFzcz1cImNxYS10ZXh0LXhzIGNxYS10ZXh0LWdyYXktNTAwIGNxYS1tdC0xXCI+XG4gICAgICB7eyBuYW1lSGVscGVyVGV4dCB9fVxuICAgIDwvc3Bhbj5cbiAgPC9kaXY+XG5cbiAgPCEtLSBUeXBlICsgUGVybWlzc2lvbiAtLT5cbiAgPGRpdiBjbGFzcz1cImNxYS1ncmlkIGNxYS1ncmlkLWNvbHMtMiBjcWEtZ2FwLTRcIj5cbiAgICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXggY3FhLWZsZXgtY29sXCI+XG4gICAgICA8bGFiZWwgY2xhc3M9XCJjcWEtdGV4dC1zbSBjcWEtbWItMS41IGNxYS1mb250LW1lZGl1bSBjcWEtdGV4dC1ncmF5LTcwMFwiPlR5cGU8L2xhYmVsPlxuICAgICAgPGNxYS1kcm9wZG93bi1idXR0b25cbiAgICAgICAgW29wdGlvbnNdPVwidHlwZURyb3Bkb3duT3B0aW9uc1wiXG4gICAgICAgIFtzZWxlY3RlZFZhbHVlXT1cInR5cGVcIlxuICAgICAgICAoc2VsZWN0aW9uQ2hhbmdlKT1cIm9uVHlwZUNoYW5nZSgkZXZlbnQpXCI+XG4gICAgICA8L2NxYS1kcm9wZG93bi1idXR0b24+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1mbGV4LWNvbFwiPlxuICAgICAgPGxhYmVsIGNsYXNzPVwiY3FhLXRleHQtc20gY3FhLW1iLTEuNSBjcWEtZm9udC1tZWRpdW0gY3FhLXRleHQtZ3JheS03MDBcIj5QZXJtaXNzaW9uPC9sYWJlbD5cbiAgICAgIDxkaXYgY2xhc3M9XCJjcWEtcHQtMC41XCI+XG4gICAgICAgIDxjcWEtcGVybWlzc2lvbi10b2dnbGVcbiAgICAgICAgICBbdmFsdWVdPVwicmVhZFdyaXRlTW9kZVwiXG4gICAgICAgICAgKHZhbHVlQ2hhbmdlKT1cIm9uUGVybWlzc2lvbkNoYW5nZSgkZXZlbnQpXCI+XG4gICAgICAgIDwvY3FhLXBlcm1pc3Npb24tdG9nZ2xlPlxuICAgICAgPC9kaXY+XG4gICAgICA8c3BhbiBjbGFzcz1cImNxYS10ZXh0LXhzIGNxYS10ZXh0LWdyYXktNTAwIGNxYS1tdC0xXCI+e3sgcGVybWlzc2lvbkhlbHBlclRleHQgfX08L3NwYW4+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDwhLS0gVmFsdWUgLS0+XG4gIDxkaXYgY2xhc3M9XCJjcWEtZmxleCBjcWEtZmxleC1jb2xcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNCb29sZWFuOyBlbHNlIG5vbkJvb2xlYW5WYWx1ZVwiPlxuICAgICAgPGxhYmVsIGNsYXNzPVwiY3FhLXRleHQtc20gY3FhLW1iLTEuNSBjcWEtZm9udC1tZWRpdW0gY3FhLXRleHQtZ3JheS03MDBcIj5WYWx1ZTwvbGFiZWw+XG4gICAgICA8Y3FhLWRyb3Bkb3duLWJ1dHRvblxuICAgICAgICBbb3B0aW9uc109XCJib29sZWFuRHJvcGRvd25PcHRpb25zXCJcbiAgICAgICAgW3NlbGVjdGVkVmFsdWVdPVwidmFsdWVcIlxuICAgICAgICAoc2VsZWN0aW9uQ2hhbmdlKT1cIm9uQm9vbGVhblZhbHVlQ2hhbmdlKCRldmVudClcIj5cbiAgICAgIDwvY3FhLWRyb3Bkb3duLWJ1dHRvbj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctdGVtcGxhdGUgI25vbkJvb2xlYW5WYWx1ZT5cbiAgICAgIDxjcWEtY3VzdG9tLWlucHV0XG4gICAgICAgIGxhYmVsPVwiVmFsdWVcIlxuICAgICAgICBbdHlwZV09XCJpc1Bhc3N3b3JkID8gJ3Bhc3N3b3JkJyA6ICd0ZXh0J1wiXG4gICAgICAgIFt2YWx1ZV09XCJ2YWx1ZVwiXG4gICAgICAgIFtwbGFjZWhvbGRlcl09XCJ2YWx1ZVBsYWNlaG9sZGVyXCJcbiAgICAgICAgW3JlcXVpcmVkXT1cImlzVmFsdWVSZXF1aXJlZFZpc3VhbGx5XCJcbiAgICAgICAgW2Z1bGxXaWR0aF09XCJ0cnVlXCJcbiAgICAgICAgW2Vycm9yc109XCJ2YWx1ZUVycm9yc0FycmF5XCJcbiAgICAgICAgaW5wdXRJbmxpbmVTdHlsZT1cImZvbnQtZmFtaWx5OiB1aS1tb25vc3BhY2UsIFNGTW9uby1SZWd1bGFyLCBNZW5sbywgTW9uYWNvLCBDb25zb2xhcywgJ0xpYmVyYXRpb24gTW9ubycsIG1vbm9zcGFjZTtcIlxuICAgICAgICAodmFsdWVDaGFuZ2UpPVwib25WYWx1ZUNoYW5nZSgkZXZlbnQpXCI+XG4gICAgICA8L2NxYS1jdXN0b20taW5wdXQ+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgPC9kaXY+XG5cbjwvZGl2PlxuIl19
|
|
214
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV3LWVudmlyb25tZW50LXZhcmlhYmxlLWRpYWxvZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL25ldy1lbnZpcm9ubWVudC12YXJpYWJsZS1kaWFsb2cvbmV3LWVudmlyb25tZW50LXZhcmlhYmxlLWRpYWxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL25ldy1lbnZpcm9ubWVudC12YXJpYWJsZS1kaWFsb2cvbmV3LWVudmlyb25tZW50LXZhcmlhYmxlLWRpYWxvZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQXFCLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7Ozs7OztBQWFyRyxNQUFNLE9BQU8scUNBQXFDO0lBc0JoRCxZQUE2QixHQUFzQjtRQUF0QixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQXJCMUMsU0FBSSxHQUFzQixRQUFRLENBQUM7UUFFbkMsa0JBQWEsR0FBYSxFQUFFLENBQUM7UUFDN0IsWUFBTyxHQUFXLEVBQUUsQ0FBQztRQUVyQix3QkFBbUIsR0FBa0Q7WUFDNUUsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUU7WUFDcEMsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUU7WUFDcEMsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUU7WUFDdEMsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUU7U0FDekMsQ0FBQztRQUVGLFNBQUksR0FBRyxFQUFFLENBQUM7UUFDVixTQUFJLEdBQXNCLFFBQVEsQ0FBQztRQUNuQyxVQUFLLEdBQUcsRUFBRSxDQUFDO1FBQ1gsa0JBQWEsR0FBNEIsSUFBSSxDQUFDO1FBQzlDLG9CQUFlLEdBQUcsS0FB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M0Q7UUFDRCxPQUFPLFFBQVEsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVPLGFBQWEsQ0FBQyxHQUFXO1FBQy9CLE1BQU0sT0FBTyxHQUFHLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUMzQixJQUFJLENBQUMsT0FBTyxFQUFFO1lBQUUsT0FBTyxJQUFJLENBQUM7U0FBRTtRQUM5QixPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUN4QyxDQUFDOztrSUF6TVUscUNBQXFDO3NIQUFyQyxxQ0FBcUMsNlFDYmxELDZpRkFxRUE7MkZEeERhLHFDQUFxQztrQkFOakQsU0FBUzsrQkFDRSxxQ0FBcUMsbUJBRTlCLHVCQUF1QixDQUFDLE1BQU0sUUFDekMsRUFBRSxLQUFLLEVBQUUsYUFBYSxFQUFFLEtBQUssRUFBRSwyQkFBMkIsRUFBRTt3R0FHekQsSUFBSTtzQkFBWixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgRW52VmFyaWFibGVEaWFsb2dWYWx1ZSxcbiAgRW52VmFyaWFibGVVSVBlcm1pc3Npb24sXG4gIEVudlZhcmlhYmxlVUlUeXBlLFxufSBmcm9tICcuL25ldy1lbnZpcm9ubWVudC12YXJpYWJsZS1kaWFsb2cubW9kZWxzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY3FhLW5ldy1lbnZpcm9ubWVudC12YXJpYWJsZS1kaWFsb2cnLFxuICB0ZW1wbGF0ZVVybDogJy4vbmV3LWVudmlyb25tZW50LXZhcmlhYmxlLWRpYWxvZy5jb21wb25lbnQuaHRtbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBob3N0OiB7IGNsYXNzOiAnY3FhLXVpLXJvb3QnLCBzdHlsZTogJ2Rpc3BsYXk6YmxvY2s7d2lkdGg6MTAwJTsnIH0sXG59KVxuZXhwb3J0IGNsYXNzIE5ld0Vudmlyb25tZW50VmFyaWFibGVEaWFsb2dDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSBtb2RlOiAnY3JlYXRlJyB8ICdlZGl0JyA9ICdjcmVhdGUnO1xuICBASW5wdXQoKSBpbml0aWFsVmFsdWU/OiBQYXJ0aWFsPEVudlZhcmlhYmxlRGlhbG9nVmFsdWU+O1xuICBASW5wdXQoKSBleGlzdGluZ05hbWVzOiBzdHJpbmdbXSA9IFtdO1xuICBASW5wdXQoKSBlbnZOYW1lOiBzdHJpbmcgPSAnJztcblxuICByZWFkb25seSB0eXBlRHJvcGRvd25PcHRpb25zOiB7IGxhYmVsOiBzdHJpbmc7IHZhbHVlOiBFbnZWYXJpYWJsZVVJVHlwZSB9W10gPSBbXG4gICAgeyBsYWJlbDogJ1N0cmluZycsIHZhbHVlOiAnU3RyaW5nJyB9LFxuICAgIHsgbGFiZWw6ICdOdW1iZXInLCB2YWx1ZTogJ051bWJlcicgfSxcbiAgICB7IGxhYmVsOiAnQm9vbGVhbicsIHZhbHVlOiAnQm9vbGVhbicgfSxcbiAgICB7IGxhYmVsOiAnUGFzc3dvcmQnLCB2YWx1ZTogJ1Bhc3N3b3JkJyB9LFxuICBdO1xuXG4gIG5hbWUgPSAnJztcbiAgdHlwZTogRW52VmFyaWFibGVVSVR5cGUgPSAnU3RyaW5nJztcbiAgdmFsdWUgPSAnJztcbiAgcmVhZFdyaXRlTW9kZTogRW52VmFyaWFibGVVSVBlcm1pc3Npb24gPSAnUlcnO1xuICBwYXNzd29yZFRvdWNoZWQgPSBmYWxzZTtcblxuICBuYW1lRXJyb3I6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICB2YWx1ZUVycm9yOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaW5pdGlhbFZhbHVlKSB7XG4gICAgICB0aGlzLm5hbWUgPSB0aGlzLmluaXRpYWxWYWx1ZS5uYW1lID8/ICcnO1xuICAgICAgdGhpcy50eXBlID0gdGhpcy5pbml0aWFsVmFsdWUudHlwZSA/PyAnU3RyaW5nJztcbiAgICAgIHRoaXMudmFsdWUgPSB0aGlzLmluaXRpYWxWYWx1ZS52YWx1ZSA/PyAnJztcbiAgICAgIHRoaXMucmVhZFdyaXRlTW9kZSA9IHRoaXMuaW5pdGlhbFZhbHVlLnJlYWRXcml0ZU1vZGUgPz8gJ1JXJztcbiAgICB9XG4gICAgaWYgKHRoaXMudHlwZSA9PT0gJ0Jvb2xlYW4nICYmIHRoaXMudmFsdWUgIT09ICd0cnVlJyAmJiB0aGlzLnZhbHVlICE9PSAnZmFsc2UnKSB7XG4gICAgICB0aGlzLnZhbHVlID0gJ2ZhbHNlJztcbiAgICB9XG4gICAgaWYgKHRoaXMubW9kZSA9PT0gJ2VkaXQnICYmIHRoaXMudHlwZSA9PT0gJ1Bhc3N3b3JkJykge1xuICAgICAgdGhpcy52YWx1ZSA9ICcnO1xuICAgIH1cbiAgfVxuXG4gIGdldCB0aXRsZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLm1vZGUgPT09ICdlZGl0JyA/ICdFZGl0IHZhcmlhYmxlJyA6ICdOZXcgdmFyaWFibGUnO1xuICB9XG5cbiAgZ2V0IHN1YnRpdGxlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZW52TmFtZSA/IGBTY29wZWQgdG8gdGhlICR7dGhpcy5lbnZOYW1lfSBlbnZpcm9ubWVudC5gIDogJ1Njb3BlZCB0byB0aGlzIGVudmlyb25tZW50Lic7XG4gIH1cblxuICBnZXQgcHJpbWFyeUJ1dHRvbkxhYmVsKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMubW9kZSA9PT0gJ2VkaXQnID8gJ1NhdmUgY2hhbmdlcycgOiAnQWRkIHZhcmlhYmxlJztcbiAgfVxuXG4gIGdldCBpc0Jvb2xlYW4oKTogYm9vbGVhbiB7IHJldHVybiB0aGlzLnR5cGUgPT09ICdCb29sZWFuJzsgfVxuICBnZXQgaXNQYXNzd29yZCgpOiBib29sZWFuIHsgcmV0dXJuIHRoaXMudHlwZSA9PT0gJ1Bhc3N3b3JkJzsgfVxuICBnZXQgaXNOdW1iZXIoKTogYm9vbGVhbiB7IHJldHVybiB0aGlzLnR5cGUgPT09ICdOdW1iZXInOyB9XG5cbiAgZ2V0IHZhbHVlUGxhY2Vob2xkZXIoKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy5pc1Bhc3N3b3JkICYmIHRoaXMubW9kZSA9PT0gJ2VkaXQnKSB7XG4gICAgICByZXR1cm4gJ+KAouKAouKAouKAouKAouKAoiAobGVhdmUgYmxhbmsgdG8ga2VlcCBleGlzdGluZyknO1xuICAgIH1cbiAgICBpZiAodGhpcy5yZWFkV3JpdGVNb2RlID09PSAnUlcnKSB7XG4gICAgICByZXR1cm4gJ0xlYXZlIGJsYW5rIHRvIHBvcHVsYXRlIGR1cmluZyB0ZXN0IGV4ZWN1dGlvbic7XG4gICAgfVxuICAgIHJldHVybiAnRW50ZXIgYSB2YWx1ZSc7XG4gIH1cblxuICBnZXQgbmFtZUhlbHBlclRleHQoKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy5uYW1lRXJyb3IpIHsgcmV0dXJuIHRoaXMubmFtZUVycm9yOyB9XG4gICAgcmV0dXJuICdWYXJpYWJsZSBuYW1lcyBtdXN0IGJlIHVuaXF1ZSB3aXRoaW4gdGhlIGVudmlyb25tZW50Lic7XG4gIH1cblxuICBnZXQgcGVybWlzc2lvbkhlbHBlclRleHQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5yZWFkV3JpdGVNb2RlID09PSAnUk8nXG4gICAgICA/ICdSZWFkIG9ubHkg4oCUIHRlc3Qgc3RlcHMgY2FuIHJlYWQgYnV0IG5vdCBvdmVyd3JpdGUuJ1xuICAgICAgOiAnUmVhZC93cml0ZSDigJQgdGVzdCBjYXNlcyBjYW4gY2FwdHVyZSB2YWx1ZXMgaGVyZS4nO1xuICB9XG5cbiAgZ2V0IG5hbWVFcnJvcnNBcnJheSgpOiBzdHJpbmdbXSB7IHJldHVybiB0aGlzLm5hbWVFcnJvciA/IFt0aGlzLm5hbWVFcnJvcl0gOiBbXTsgfVxuICBnZXQgdmFsdWVFcnJvcnNBcnJheSgpOiBzdHJpbmdbXSB7IHJldHVybiB0aGlzLnZhbHVlRXJyb3IgPyBbdGhpcy52YWx1ZUVycm9yXSA6IFtdOyB9XG5cbiAgZ2V0IGJvb2xlYW5Ecm9wZG93bk9wdGlvbnMoKTogeyBsYWJlbDogc3RyaW5nOyB2YWx1ZTogc3RyaW5nIH1bXSB7XG4gICAgcmV0dXJuIFtcbiAgICAgIHsgbGFiZWw6ICd0cnVlJywgdmFsdWU6ICd0cnVlJyB9LFxuICAgICAgeyBsYWJlbDogJ2ZhbHNlJywgdmFsdWU6ICdmYWxzZScgfSxcbiAgICBdO1xuICB9XG5cbiAgZ2V0IGlzVmFsdWVSZXF1aXJlZFZpc3VhbGx5KCk6IGJvb2xlYW4ge1xuICAgIC8vIEJvb2xlYW4gaXMgc2VsZWN0ZWQgdmlhIGRyb3Bkb3duIChhbHdheXMgaGFzIGEgdmFsdWUpOyBwYXNzd29yZCBlZGl0LW1vZGVcbiAgICAvLyBhbGxvd3MgYmxhbmsgdG8gbWVhbiBcImtlZXAgZXhpc3Rpbmcgc2VjcmV0XCIg4oCUIGJvdGggcmVuZGVyIHdpdGhvdXQgdGhlIGFzdGVyaXNrLlxuICAgIGlmICh0aGlzLmlzQm9vbGVhbikgeyByZXR1cm4gZmFsc2U7IH1cbiAgICBpZiAodGhpcy5pc1Bhc3N3b3JkICYmIHRoaXMubW9kZSA9PT0gJ2VkaXQnKSB7IHJldHVybiBmYWxzZTsgfVxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgb25OYW1lQ2hhbmdlKG5leHQ6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMubmFtZSA9IG5leHQ7XG4gICAgdGhpcy5uYW1lRXJyb3IgPSBudWxsO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgb25UeXBlQ2hhbmdlKG5leHQ6IEVudlZhcmlhYmxlVUlUeXBlKTogdm9pZCB7XG4gICAgaWYgKCFuZXh0KSB7IHJldHVybjsgfVxuICAgIGNvbnN0IHByZXYgPSB0aGlzLnR5cGU7XG4gICAgdGhpcy50eXBlID0gbmV4dDtcbiAgICBpZiAocHJldiA9PT0gJ0Jvb2xlYW4nICYmIG5leHQgIT09ICdCb29sZWFuJykge1xuICAgICAgdGhpcy52YWx1ZSA9ICcnO1xuICAgIH0gZWxzZSBpZiAobmV4dCA9PT0gJ0Jvb2xlYW4nICYmIHRoaXMudmFsdWUgIT09ICd0cnVlJyAmJiB0aGlzLnZhbHVlICE9PSAnZmFsc2UnKSB7XG4gICAgICB0aGlzLnZhbHVlID0gJ2ZhbHNlJztcbiAgICB9XG4gICAgaWYgKG5leHQgPT09ICdOdW1iZXInICYmIHRoaXMudmFsdWUgJiYgIXRoaXMuaXNWYWxpZE51bWJlcih0aGlzLnZhbHVlKSkge1xuICAgICAgdGhpcy52YWx1ZSA9ICcnO1xuICAgIH1cbiAgICBpZiAobmV4dCA9PT0gJ1Bhc3N3b3JkJykge1xuICAgICAgdGhpcy5wYXNzd29yZFRvdWNoZWQgPSBmYWxzZTtcbiAgICAgIGlmICh0aGlzLm1vZGUgPT09ICdlZGl0JykgeyB0aGlzLnZhbHVlID0gJyc7IH1cbiAgICB9XG4gICAgdGhpcy52YWx1ZUVycm9yID0gbnVsbDtcbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIG9uUGVybWlzc2lvbkNoYW5nZShuZXh0OiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLnJlYWRXcml0ZU1vZGUgPSBuZXh0ID09PSAnUk8nID8gJ1JPJyA6ICdSVyc7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBvblZhbHVlQ2hhbmdlKG5leHQ6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMudmFsdWUgPSBuZXh0O1xuICAgIGlmICh0aGlzLmlzUGFzc3dvcmQpIHsgdGhpcy5wYXNzd29yZFRvdWNoZWQgPSB0cnVlOyB9XG4gICAgdGhpcy52YWx1ZUVycm9yID0gbnVsbDtcbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIG9uQm9vbGVhblZhbHVlQ2hhbmdlKG5leHQ6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMudmFsdWUgPSBuZXh0O1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgLyoqXG4gICAqIEhvc3QgcmVhZHMgdmlhIERpYWxvZ1JlZi5nZXRDb21wb25lbnRJbnN0YW5jZSgpLiBSZXR1cm5zIG51bGwgb24gdmFsaWRhdGlvblxuICAgKiBmYWlsdXJlIOKAlCBob3N0IGtlZXBzIHRoZSBkaWFsb2cgb3BlbiBhbmQgc3VyZmFjZXMgdGhlIGlubGluZSBlcnJvciBhbHJlYWR5XG4gICAqIHdyaXR0ZW4gb250byBuYW1lRXJyb3IgLyB2YWx1ZUVycm9yLlxuICAgKi9cbiAgZ2V0VmFsdWUoKTogRW52VmFyaWFibGVEaWFsb2dWYWx1ZSB8IG51bGwge1xuICAgIGNvbnN0IHRyaW1tZWROYW1lID0gdGhpcy5uYW1lLnRyaW0oKTtcblxuICAgIGlmICghdHJpbW1lZE5hbWUpIHtcbiAgICAgIHRoaXMubmFtZUVycm9yID0gJ05hbWUgaXMgcmVxdWlyZWQuJztcbiAgICB9IGVsc2UgaWYgKHRoaXMuaXNEdXBsaWNhdGVOYW1lKHRyaW1tZWROYW1lKSkge1xuICAgICAgdGhpcy5uYW1lRXJyb3IgPSAnQSB2YXJpYWJsZSB3aXRoIHRoaXMgbmFtZSBhbHJlYWR5IGV4aXN0cyBpbiB0aGlzIGVudmlyb25tZW50Lic7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubmFtZUVycm9yID0gbnVsbDtcbiAgICB9XG5cbiAgICBjb25zdCByYXdWYWx1ZSA9ICh0aGlzLnZhbHVlID8/ICcnKS50b1N0cmluZygpO1xuICAgIGNvbnN0IHZhbHVlSXNCbGFuayA9ICF0aGlzLmlzQm9vbGVhbiAmJiByYXdWYWx1ZS50cmltKCkgPT09ICcnO1xuICAgIGNvbnN0IGFsbG93QmxhbmtQYXNzd29yZE9uRWRpdCA9IHRoaXMuaXNQYXNzd29yZCAmJiB0aGlzLm1vZGUgPT09ICdlZGl0JyAmJiAhdGhpcy5wYXNzd29yZFRvdWNoZWQ7XG5cbiAgICBpZiAodmFsdWVJc0JsYW5rICYmICFhbGxvd0JsYW5rUGFzc3dvcmRPbkVkaXQpIHtcbiAgICAgIHRoaXMudmFsdWVFcnJvciA9ICdWYWx1ZSBpcyByZXF1aXJlZC4nO1xuICAgIH0gZWxzZSBpZiAodGhpcy5pc051bWJlciAmJiByYXdWYWx1ZSAmJiAhdGhpcy5pc1ZhbGlkTnVtYmVyKHJhd1ZhbHVlKSkge1xuICAgICAgdGhpcy52YWx1ZUVycm9yID0gJ1ZhbHVlIG11c3QgYmUgYSBudW1iZXIuJztcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy52YWx1ZUVycm9yID0gbnVsbDtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5uYW1lRXJyb3IgfHwgdGhpcy52YWx1ZUVycm9yKSB7XG4gICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGNvbnN0IG9taXRQYXNzd29yZFZhbHVlID0gdGhpcy5pc1Bhc3N3b3JkICYmIHRoaXMubW9kZSA9PT0gJ2VkaXQnICYmICF0aGlzLnBhc3N3b3JkVG91Y2hlZDtcblxuICAgIHJldHVybiB7XG4gICAgICBuYW1lOiB0cmltbWVkTmFtZSxcbiAgICAgIHR5cGU6IHRoaXMudHlwZSxcbiAgICAgIHZhbHVlOiBvbWl0UGFzc3dvcmRWYWx1ZSA/IG51bGwgOiB0aGlzLnNlcmlhbGl6ZVZhbHVlKCksXG4gICAgICByZWFkV3JpdGVNb2RlOiB0aGlzLnJlYWRXcml0ZU1vZGUsXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgc2VyaWFsaXplVmFsdWUoKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgaWYgKHRoaXMuaXNCb29sZWFuKSB7XG4gICAgICByZXR1cm4gdGhpcy52YWx1ZSA9PT0gJ3RydWUnID8gJ3RydWUnIDogJ2ZhbHNlJztcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMudmFsdWUgPz8gJyc7XG4gIH1cblxuICBwcml2YXRlIGlzRHVwbGljYXRlTmFtZShjYW5kaWRhdGU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGV4aXN0aW5nID0gKHRoaXMuZXhpc3RpbmdOYW1lcyA/PyBbXSkubWFwKG4gPT4gKG4gPz8gJycpLnRyaW0oKS50b0xvd2VyQ2FzZSgpKTtcbiAgICBjb25zdCBsb3dlcmVkID0gY2FuZGlkYXRlLnRvTG93ZXJDYXNlKCk7XG4gICAgaWYgKHRoaXMubW9kZSA9PT0gJ2VkaXQnKSB7XG4gICAgICBjb25zdCBvcmlnaW5hbCA9ICh0aGlzLmluaXRpYWxWYWx1ZT8ubmFtZSA/PyAnJykudHJpbSgpLnRvTG93ZXJDYXNlKCk7XG4gICAgICByZXR1cm4gbG93ZXJlZCAhPT0gb3JpZ2luYWwgJiYgZXhpc3RpbmcuaW5jbHVkZXMobG93ZXJlZCk7XG4gICAgfVxuICAgIHJldHVybiBleGlzdGluZy5pbmNsdWRlcyhsb3dlcmVkKTtcbiAgfVxuXG4gIHByaXZhdGUgaXNWYWxpZE51bWJlcihyYXc6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHRyaW1tZWQgPSByYXcudHJpbSgpO1xuICAgIGlmICghdHJpbW1lZCkgeyByZXR1cm4gdHJ1ZTsgfVxuICAgIHJldHVybiAhTnVtYmVyLmlzTmFOKE51bWJlcih0cmltbWVkKSk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJjcWEtZmxleCBjcWEtZmxleC1jb2wgY3FhLWdhcC00IGNxYS13LWZ1bGxcIj5cblxuICA8IS0tIE5hbWUgLS0+XG4gIDxkaXYgY2xhc3M9XCJjcWEtZmxleCBjcWEtZmxleC1jb2xcIj5cbiAgICA8Y3FhLWN1c3RvbS1pbnB1dFxuICAgICAgbGFiZWw9XCJOYW1lXCJcbiAgICAgIHBsYWNlaG9sZGVyPVwiZS5nLiBvcmRlcl9pZFwiXG4gICAgICB0eXBlPVwidGV4dFwiXG4gICAgICBbdmFsdWVdPVwibmFtZVwiXG4gICAgICBbcmVxdWlyZWRdPVwidHJ1ZVwiXG4gICAgICBbZnVsbFdpZHRoXT1cInRydWVcIlxuICAgICAgW2Vycm9yc109XCJuYW1lRXJyb3JzQXJyYXlcIlxuICAgICAgaW5wdXRJbmxpbmVTdHlsZT1cImZvbnQtZmFtaWx5OiB1aS1tb25vc3BhY2UsIFNGTW9uby1SZWd1bGFyLCBNZW5sbywgTW9uYWNvLCBDb25zb2xhcywgJ0xpYmVyYXRpb24gTW9ubycsIG1vbm9zcGFjZTtcIlxuICAgICAgKHZhbHVlQ2hhbmdlKT1cIm9uTmFtZUNoYW5nZSgkZXZlbnQpXCI+XG4gICAgPC9jcWEtY3VzdG9tLWlucHV0PlxuICAgIDxzcGFuICpuZ0lmPVwiIW5hbWVFcnJvclwiXG4gICAgICBjbGFzcz1cImNxYS10ZXh0LXhzIGNxYS10ZXh0LWdyYXktNTAwIGNxYS1tdC0xXCI+XG4gICAgICB7eyBuYW1lSGVscGVyVGV4dCB9fVxuICAgIDwvc3Bhbj5cbiAgPC9kaXY+XG5cbiAgPCEtLSBUeXBlICsgUGVybWlzc2lvbiAtLT5cbiAgPGRpdiBjbGFzcz1cImNxYS1ncmlkIGNxYS1ncmlkLWNvbHMtMiBjcWEtZ2FwLTRcIj5cbiAgICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXggY3FhLWZsZXgtY29sXCI+XG4gICAgICA8bGFiZWwgY2xhc3M9XCJjcWEtdGV4dC1zbSBjcWEtbWItMS41IGNxYS1mb250LW1lZGl1bSBjcWEtdGV4dC1ncmF5LTcwMFwiPlR5cGU8L2xhYmVsPlxuICAgICAgPGNxYS1kcm9wZG93bi1idXR0b25cbiAgICAgICAgW29wdGlvbnNdPVwidHlwZURyb3Bkb3duT3B0aW9uc1wiXG4gICAgICAgIFtzZWxlY3RlZFZhbHVlXT1cInR5cGVcIlxuICAgICAgICAoc2VsZWN0aW9uQ2hhbmdlKT1cIm9uVHlwZUNoYW5nZSgkZXZlbnQpXCI+XG4gICAgICA8L2NxYS1kcm9wZG93bi1idXR0b24+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1mbGV4LWNvbFwiPlxuICAgICAgPGxhYmVsIGNsYXNzPVwiY3FhLXRleHQtc20gY3FhLW1iLTEuNSBjcWEtZm9udC1tZWRpdW0gY3FhLXRleHQtZ3JheS03MDBcIj5QZXJtaXNzaW9uPC9sYWJlbD5cbiAgICAgIDxkaXYgY2xhc3M9XCJjcWEtcHQtMC41XCI+XG4gICAgICAgIDxjcWEtcGVybWlzc2lvbi10b2dnbGVcbiAgICAgICAgICBbdmFsdWVdPVwicmVhZFdyaXRlTW9kZVwiXG4gICAgICAgICAgKHZhbHVlQ2hhbmdlKT1cIm9uUGVybWlzc2lvbkNoYW5nZSgkZXZlbnQpXCI+XG4gICAgICAgIDwvY3FhLXBlcm1pc3Npb24tdG9nZ2xlPlxuICAgICAgPC9kaXY+XG4gICAgICA8c3BhbiBjbGFzcz1cImNxYS10ZXh0LXhzIGNxYS10ZXh0LWdyYXktNTAwIGNxYS1tdC0xXCI+e3sgcGVybWlzc2lvbkhlbHBlclRleHQgfX08L3NwYW4+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDwhLS0gVmFsdWUgLS0+XG4gIDxkaXYgY2xhc3M9XCJjcWEtZmxleCBjcWEtZmxleC1jb2xcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNCb29sZWFuOyBlbHNlIG5vbkJvb2xlYW5WYWx1ZVwiPlxuICAgICAgPGxhYmVsIGNsYXNzPVwiY3FhLXRleHQtc20gY3FhLW1iLTEuNSBjcWEtZm9udC1tZWRpdW0gY3FhLXRleHQtZ3JheS03MDBcIj5WYWx1ZTwvbGFiZWw+XG4gICAgICA8Y3FhLWRyb3Bkb3duLWJ1dHRvblxuICAgICAgICBbb3B0aW9uc109XCJib29sZWFuRHJvcGRvd25PcHRpb25zXCJcbiAgICAgICAgW3NlbGVjdGVkVmFsdWVdPVwidmFsdWVcIlxuICAgICAgICAoc2VsZWN0aW9uQ2hhbmdlKT1cIm9uQm9vbGVhblZhbHVlQ2hhbmdlKCRldmVudClcIj5cbiAgICAgIDwvY3FhLWRyb3Bkb3duLWJ1dHRvbj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctdGVtcGxhdGUgI25vbkJvb2xlYW5WYWx1ZT5cbiAgICAgIDxjcWEtY3VzdG9tLWlucHV0XG4gICAgICAgIGxhYmVsPVwiVmFsdWVcIlxuICAgICAgICBbdHlwZV09XCJpc1Bhc3N3b3JkID8gJ3Bhc3N3b3JkJyA6IChpc051bWJlciA/ICdudW1iZXInIDogJ3RleHQnKVwiXG4gICAgICAgIFt2YWx1ZV09XCJ2YWx1ZVwiXG4gICAgICAgIFtwbGFjZWhvbGRlcl09XCJ2YWx1ZVBsYWNlaG9sZGVyXCJcbiAgICAgICAgW3JlcXVpcmVkXT1cImlzVmFsdWVSZXF1aXJlZFZpc3VhbGx5XCJcbiAgICAgICAgW2Z1bGxXaWR0aF09XCJ0cnVlXCJcbiAgICAgICAgW2Vycm9yc109XCJ2YWx1ZUVycm9yc0FycmF5XCJcbiAgICAgICAgaW5wdXRJbmxpbmVTdHlsZT1cImZvbnQtZmFtaWx5OiB1aS1tb25vc3BhY2UsIFNGTW9uby1SZWd1bGFyLCBNZW5sbywgTW9uYWNvLCBDb25zb2xhcywgJ0xpYmVyYXRpb24gTW9ubycsIG1vbm9zcGFjZTtcIlxuICAgICAgICAodmFsdWVDaGFuZ2UpPVwib25WYWx1ZUNoYW5nZSgkZXZlbnQpXCI+XG4gICAgICA8L2NxYS1jdXN0b20taW5wdXQ+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgPC9kaXY+XG5cbjwvZGl2PlxuIl19
|
|
@@ -112,11 +112,18 @@ export class NewGlobalVariableDialogComponent {
|
|
|
112
112
|
if (!next) {
|
|
113
113
|
return;
|
|
114
114
|
}
|
|
115
|
+
const prev = this.type;
|
|
115
116
|
this.type = next;
|
|
116
|
-
if (
|
|
117
|
+
if (prev === 'Boolean' && next !== 'Boolean') {
|
|
118
|
+
this.value = '';
|
|
119
|
+
}
|
|
120
|
+
else if (next === 'Boolean' && this.value !== 'true' && this.value !== 'false') {
|
|
117
121
|
this.value = 'false';
|
|
118
122
|
}
|
|
119
|
-
if (
|
|
123
|
+
if (next === 'Number' && this.value && !this.isValidNumber(this.value)) {
|
|
124
|
+
this.value = '';
|
|
125
|
+
}
|
|
126
|
+
if (next === 'Password') {
|
|
120
127
|
this.passwordTouched = false;
|
|
121
128
|
if (this.mode === 'edit') {
|
|
122
129
|
this.value = '';
|
|
@@ -214,10 +221,10 @@ export class NewGlobalVariableDialogComponent {
|
|
|
214
221
|
}
|
|
215
222
|
}
|
|
216
223
|
NewGlobalVariableDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: NewGlobalVariableDialogComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
217
|
-
NewGlobalVariableDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: NewGlobalVariableDialogComponent, selector: "cqa-new-global-variable-dialog", inputs: { mode: "mode", initialValue: "initialValue", existingNames: "existingNames", availableTags: "availableTags" }, host: { styleAttribute: "display:block;width:100%;", classAttribute: "cqa-ui-root" }, ngImport: i0, template: "<div class=\"cqa-flex cqa-flex-col cqa-gap-4 cqa-w-full\">\n\n <!-- Name -->\n <div class=\"cqa-flex cqa-flex-col\">\n <cqa-custom-input\n label=\"Name\"\n placeholder=\"e.g.
|
|
224
|
+
NewGlobalVariableDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: NewGlobalVariableDialogComponent, selector: "cqa-new-global-variable-dialog", inputs: { mode: "mode", initialValue: "initialValue", existingNames: "existingNames", availableTags: "availableTags" }, host: { styleAttribute: "display:block;width:100%;", classAttribute: "cqa-ui-root" }, ngImport: i0, template: "<div class=\"cqa-flex cqa-flex-col cqa-gap-4 cqa-w-full\">\n\n <!-- Name -->\n <div class=\"cqa-flex cqa-flex-col\">\n <cqa-custom-input\n label=\"Name\"\n placeholder=\"e.g. api_key\"\n type=\"text\"\n [value]=\"name\"\n [required]=\"true\"\n [fullWidth]=\"true\"\n [errors]=\"nameErrorsArray\"\n inputInlineStyle=\"font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', monospace;\"\n (valueChange)=\"onNameChange($event)\">\n </cqa-custom-input>\n <span *ngIf=\"!nameError\"\n class=\"cqa-text-xs cqa-text-gray-500 cqa-mt-1\">\n Names must be unique across the entire workspace (primary key \u2014 no duplicates).\n </span>\n </div>\n\n <!-- Type + Permission row -->\n <div class=\"cqa-grid cqa-grid-cols-2 cqa-gap-4\">\n <div class=\"cqa-flex cqa-flex-col\">\n <label class=\"cqa-text-sm cqa-mb-1.5 cqa-font-medium cqa-text-gray-700\">Type</label>\n <cqa-dropdown-button\n [options]=\"typeDropdownOptions\"\n [selectedValue]=\"type\"\n (selectionChange)=\"onTypeChange($event)\">\n </cqa-dropdown-button>\n </div>\n <div class=\"cqa-flex cqa-flex-col\">\n <label class=\"cqa-text-sm cqa-mb-1.5 cqa-font-medium cqa-text-gray-700\">Permission</label>\n <div class=\"cqa-pt-0.5\">\n <cqa-permission-toggle\n [value]=\"readWriteMode\"\n (valueChange)=\"onPermissionChange($event)\">\n </cqa-permission-toggle>\n </div>\n </div>\n </div>\n\n <!-- Value -->\n <div class=\"cqa-flex cqa-flex-col\">\n <ng-container *ngIf=\"isBoolean; else nonBooleanValue\">\n <label class=\"cqa-text-sm cqa-mb-1.5 cqa-font-medium cqa-text-gray-700\">Value</label>\n <cqa-dropdown-button\n [options]=\"booleanDropdownOptions\"\n [selectedValue]=\"value\"\n (selectionChange)=\"onBooleanValueChange($event)\">\n </cqa-dropdown-button>\n </ng-container>\n <ng-template #nonBooleanValue>\n <cqa-custom-input\n label=\"Value\"\n [type]=\"isPassword ? 'password' : (isNumber ? 'number' : 'text')\"\n [value]=\"value\"\n [placeholder]=\"valuePlaceholder\"\n [required]=\"isValueRequiredVisually\"\n [fullWidth]=\"true\"\n [errors]=\"valueErrorsArray\"\n inputInlineStyle=\"font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', monospace;\"\n (valueChange)=\"onValueChange($event)\">\n </cqa-custom-input>\n </ng-template>\n </div>\n\n <!-- Tags (optional) \u2014 between Value and Description per design -->\n <div class=\"cqa-flex cqa-flex-col\">\n <label class=\"cqa-text-sm cqa-mb-1.5 cqa-font-medium cqa-text-gray-700\">\n Tags <span class=\"cqa-text-xs cqa-font-normal cqa-text-gray-500\">(optional \u2014 for filtering & grouping)</span>\n </label>\n <lib-global-variable-tags-input\n [tags]=\"tags\"\n [availableTags]=\"availableTags\"\n (tagsChange)=\"onTagsChange($event)\">\n </lib-global-variable-tags-input>\n </div>\n\n <!-- Description -->\n <div class=\"cqa-flex cqa-flex-col\">\n <cqa-custom-textarea\n label=\"Description\"\n placeholder=\"What is this variable used for?\"\n [value]=\"description\"\n [rows]=\"2\"\n [fullWidth]=\"true\"\n (valueChange)=\"onDescriptionChange($event)\">\n </cqa-custom-textarea>\n </div>\n\n</div>\n", components: [{ type: i1.CustomInputComponent, selector: "cqa-custom-input", inputs: ["inputId", "label", "type", "placeholder", "value", "disabled", "errors", "required", "ariaLabel", "size", "fullWidth", "maxLength", "showCharCount", "inputInlineStyle", "labelInlineStyle"], outputs: ["valueChange", "blurred", "focused", "enterPressed"] }, { type: i2.DropdownButtonComponent, selector: "cqa-dropdown-button", inputs: ["label", "options", "selectedValue", "disabled", "placeholder"], outputs: ["selectionChange", "opened", "closed"] }, { type: i3.PermissionToggleComponent, selector: "cqa-permission-toggle", inputs: ["value", "disabled", "displayOnly", "roTooltip", "rwTooltip"], outputs: ["valueChange"] }, { type: i4.GlobalVariableTagsInputComponent, selector: "lib-global-variable-tags-input", inputs: ["tags", "availableTags"], outputs: ["tagsChange"] }, { type: i5.CustomTextareaComponent, selector: "cqa-custom-textarea", inputs: ["label", "placeholder", "value", "enableMarkdown", "disabled", "errors", "required", "ariaLabel", "size", "fullWidth", "maxLength", "showCharCount", "rows", "cols", "resize", "textareaInlineStyle", "labelInlineStyle"], outputs: ["valueChange", "blurred", "focused"] }], directives: [{ type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
218
225
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: NewGlobalVariableDialogComponent, decorators: [{
|
|
219
226
|
type: Component,
|
|
220
|
-
args: [{ selector: 'cqa-new-global-variable-dialog', changeDetection: ChangeDetectionStrategy.OnPush, host: { class: 'cqa-ui-root', style: 'display:block;width:100%;' }, template: "<div class=\"cqa-flex cqa-flex-col cqa-gap-4 cqa-w-full\">\n\n <!-- Name -->\n <div class=\"cqa-flex cqa-flex-col\">\n <cqa-custom-input\n label=\"Name\"\n placeholder=\"e.g.
|
|
227
|
+
args: [{ selector: 'cqa-new-global-variable-dialog', changeDetection: ChangeDetectionStrategy.OnPush, host: { class: 'cqa-ui-root', style: 'display:block;width:100%;' }, template: "<div class=\"cqa-flex cqa-flex-col cqa-gap-4 cqa-w-full\">\n\n <!-- Name -->\n <div class=\"cqa-flex cqa-flex-col\">\n <cqa-custom-input\n label=\"Name\"\n placeholder=\"e.g. api_key\"\n type=\"text\"\n [value]=\"name\"\n [required]=\"true\"\n [fullWidth]=\"true\"\n [errors]=\"nameErrorsArray\"\n inputInlineStyle=\"font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', monospace;\"\n (valueChange)=\"onNameChange($event)\">\n </cqa-custom-input>\n <span *ngIf=\"!nameError\"\n class=\"cqa-text-xs cqa-text-gray-500 cqa-mt-1\">\n Names must be unique across the entire workspace (primary key \u2014 no duplicates).\n </span>\n </div>\n\n <!-- Type + Permission row -->\n <div class=\"cqa-grid cqa-grid-cols-2 cqa-gap-4\">\n <div class=\"cqa-flex cqa-flex-col\">\n <label class=\"cqa-text-sm cqa-mb-1.5 cqa-font-medium cqa-text-gray-700\">Type</label>\n <cqa-dropdown-button\n [options]=\"typeDropdownOptions\"\n [selectedValue]=\"type\"\n (selectionChange)=\"onTypeChange($event)\">\n </cqa-dropdown-button>\n </div>\n <div class=\"cqa-flex cqa-flex-col\">\n <label class=\"cqa-text-sm cqa-mb-1.5 cqa-font-medium cqa-text-gray-700\">Permission</label>\n <div class=\"cqa-pt-0.5\">\n <cqa-permission-toggle\n [value]=\"readWriteMode\"\n (valueChange)=\"onPermissionChange($event)\">\n </cqa-permission-toggle>\n </div>\n </div>\n </div>\n\n <!-- Value -->\n <div class=\"cqa-flex cqa-flex-col\">\n <ng-container *ngIf=\"isBoolean; else nonBooleanValue\">\n <label class=\"cqa-text-sm cqa-mb-1.5 cqa-font-medium cqa-text-gray-700\">Value</label>\n <cqa-dropdown-button\n [options]=\"booleanDropdownOptions\"\n [selectedValue]=\"value\"\n (selectionChange)=\"onBooleanValueChange($event)\">\n </cqa-dropdown-button>\n </ng-container>\n <ng-template #nonBooleanValue>\n <cqa-custom-input\n label=\"Value\"\n [type]=\"isPassword ? 'password' : (isNumber ? 'number' : 'text')\"\n [value]=\"value\"\n [placeholder]=\"valuePlaceholder\"\n [required]=\"isValueRequiredVisually\"\n [fullWidth]=\"true\"\n [errors]=\"valueErrorsArray\"\n inputInlineStyle=\"font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', monospace;\"\n (valueChange)=\"onValueChange($event)\">\n </cqa-custom-input>\n </ng-template>\n </div>\n\n <!-- Tags (optional) \u2014 between Value and Description per design -->\n <div class=\"cqa-flex cqa-flex-col\">\n <label class=\"cqa-text-sm cqa-mb-1.5 cqa-font-medium cqa-text-gray-700\">\n Tags <span class=\"cqa-text-xs cqa-font-normal cqa-text-gray-500\">(optional \u2014 for filtering & grouping)</span>\n </label>\n <lib-global-variable-tags-input\n [tags]=\"tags\"\n [availableTags]=\"availableTags\"\n (tagsChange)=\"onTagsChange($event)\">\n </lib-global-variable-tags-input>\n </div>\n\n <!-- Description -->\n <div class=\"cqa-flex cqa-flex-col\">\n <cqa-custom-textarea\n label=\"Description\"\n placeholder=\"What is this variable used for?\"\n [value]=\"description\"\n [rows]=\"2\"\n [fullWidth]=\"true\"\n (valueChange)=\"onDescriptionChange($event)\">\n </cqa-custom-textarea>\n </div>\n\n</div>\n" }]
|
|
221
228
|
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { mode: [{
|
|
222
229
|
type: Input
|
|
223
230
|
}], initialValue: [{
|
|
@@ -227,4 +234,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
|
|
|
227
234
|
}], availableTags: [{
|
|
228
235
|
type: Input
|
|
229
236
|
}] } });
|
|
230
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV3LWdsb2JhbC12YXJpYWJsZS1kaWFsb2cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9uZXctZ2xvYmFsLXZhcmlhYmxlLWRpYWxvZy9uZXctZ2xvYmFsLXZhcmlhYmxlLWRpYWxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL25ldy1nbG9iYWwtdmFyaWFibGUtZGlhbG9nL25ldy1nbG9iYWwtdmFyaWFibGUtZGlhbG9nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBcUIsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQzs7Ozs7Ozs7QUFjckcsTUFBTSxPQUFPLGdDQUFnQztJQStCM0MsWUFBNkIsR0FBc0I7UUFBdEIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUE5QjFDLFNBQUksR0FBc0IsUUFBUSxDQUFDO1FBRW5DLGtCQUFhLEdBQWEsRUFBRSxDQUFDO1FBQzdCLGtCQUFhLEdBQThCLEVBQUUsQ0FBQztRQUU5QyxnQkFBVyxHQUEyQixDQUFDLFFBQVEsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBRWxGLHdCQUFtQixHQUFxRDtZQUMvRSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRTtZQUNwQyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRTtZQUNwQyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRTtZQUN0QyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRTtTQUN6QyxDQUFDO1FBRU8sdUJBQWtCLEdBQUc7WUFDNUIsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFrQyxFQUFFLElBQUksRUFB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cG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBHbG9iYWxWYXJpYWJsZURpYWxvZ1ZhbHVlLFxuICBHbG9iYWxWYXJpYWJsZVRhZ09wdGlvbixcbiAgR2xvYmFsVmFyaWFibGVVSVBlcm1pc3Npb24sXG4gIEdsb2JhbFZhcmlhYmxlVUlUeXBlLFxufSBmcm9tICcuL25ldy1nbG9iYWwtdmFyaWFibGUtZGlhbG9nLm1vZGVscyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NxYS1uZXctZ2xvYmFsLXZhcmlhYmxlLWRpYWxvZycsXG4gIHRlbXBsYXRlVXJsOiAnLi9uZXctZ2xvYmFsLXZhcmlhYmxlLWRpYWxvZy5jb21wb25lbnQuaHRtbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBob3N0OiB7IGNsYXNzOiAnY3FhLXVpLXJvb3QnLCBzdHlsZTogJ2Rpc3BsYXk6YmxvY2s7d2lkdGg6MTAwJTsnIH0sXG59KVxuZXhwb3J0IGNsYXNzIE5ld0dsb2JhbFZhcmlhYmxlRGlhbG9nQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgbW9kZTogJ2NyZWF0ZScgfCAnZWRpdCcgPSAnY3JlYXRlJztcbiAgQElucHV0KCkgaW5pdGlhbFZhbHVlPzogUGFydGlhbDxHbG9iYWxWYXJpYWJsZURpYWxvZ1ZhbHVlPjtcbiAgQElucHV0KCkgZXhpc3RpbmdOYW1lczogc3RyaW5nW10gPSBbXTtcbiAgQElucHV0KCkgYXZhaWxhYmxlVGFnczogR2xvYmFsVmFyaWFibGVUYWdPcHRpb25bXSA9IFtdO1xuXG4gIHJlYWRvbmx5IHR5cGVPcHRpb25zOiBHbG9iYWxWYXJpYWJsZVVJVHlwZVtdID0gWydTdHJpbmcnLCAnTnVtYmVyJywgJ0Jvb2xlYW4nLCAnUGFzc3dvcmQnXTtcblxuICByZWFkb25seSB0eXBlRHJvcGRvd25PcHRpb25zOiB7IGxhYmVsOiBzdHJpbmc7IHZhbHVlOiBHbG9iYWxWYXJpYWJsZVVJVHlwZSB9W10gPSBbXG4gICAgeyBsYWJlbDogJ1N0cmluZycsIHZhbHVlOiAnU3RyaW5nJyB9LFxuICAgIHsgbGFiZWw6ICdOdW1iZXInLCB2YWx1ZTogJ051bWJlcicgfSxcbiAgICB7IGxhYmVsOiAnQm9vbGVhbicsIHZhbHVlOiAnQm9vbGVhbicgfSxcbiAgICB7IGxhYmVsOiAnUGFzc3dvcmQnLCB2YWx1ZTogJ1Bhc3N3b3JkJyB9LFxuICBdO1xuXG4gIHJlYWRvbmx5IHBlcm1pc3Npb25TZWdtZW50cyA9IFtcbiAgICB7IGxhYmVsOiAnUk8nLCB2YWx1ZTogJ1JPJyBhcyBHbG9iYWxWYXJpYWJsZVVJUGVybWlzc2lvbiwgaWNvbjogJ2xvY2snIH0sXG4gICAgeyBsYWJlbDogJ1JXJywgdmFsdWU6ICdSVycgYXMgR2xvYmFsVmFyaWFibGVVSVBlcm1pc3Npb24sIGljb246ICdlZGl0JyB9LFxuICBdO1xuXG4gIG5hbWUgPSAnJztcbiAgdHlwZTogR2xvYmFsVmFyaWFibGVVSVR5cGUgPSAnU3RyaW5nJztcbiAgdmFsdWUgPSAnJztcbiAgcmVhZFdyaXRlTW9kZTogR2xvYmFsVmFyaWFibGVVSVBlcm1pc3Npb24gPSAnUlcnO1xuICBkZXNjcmlwdGlvbiA9ICcnO1xuICB0YWdzOiBzdHJpbmdbXSA9IFtdO1xuICBwYXNzd29yZFRvdWNoZWQgPSBmYWxzZTtcblxuICBuYW1lRXJyb3I6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICB2YWx1ZUVycm9yOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaW5pdGlhbFZhbHVlKSB7XG4gICAgICB0aGlzLm5hbWUgPSB0aGlzLmluaXRpYWxWYWx1ZS5uYW1lID8/ICcnO1xuICAgICAgdGhpcy50eXBlID0gdGhpcy5pbml0aWFsVmFsdWUudHlwZSA/PyAnU3RyaW5nJztcbiAgICAgIHRoaXMudmFsdWUgPSB0aGlzLmluaXRpYWxWYWx1ZS52YWx1ZSA/PyAnJztcbiAgICAgIHRoaXMucmVhZFdyaXRlTW9kZSA9IHRoaXMuaW5pdGlhbFZhbHVlLnJlYWRXcml0ZU1vZGUgPz8gJ1JXJztcbiAgICAgIHRoaXMuZGVzY3JpcHRpb24gPSB0aGlzLmluaXRpYWxWYWx1ZS5kZXNjcmlwdGlvbiA/PyAnJztcbiAgICAgIHRoaXMudGFncyA9IEFycmF5LmlzQXJyYXkodGhpcy5pbml0aWFsVmFsdWUudGFncykgPyBbLi4udGhpcy5pbml0aWFsVmFsdWUudGFnc10gOiBbXTtcbiAgICB9XG4gICAgaWYgKHRoaXMudHlwZSA9PT0gJ0Jvb2xlYW4nICYmIHRoaXMudmFsdWUgIT09ICd0cnVlJyAmJiB0aGlzLnZhbHVlICE9PSAnZmFsc2UnKSB7XG4gICAgICB0aGlzLnZhbHVlID0gJ2ZhbHNlJztcbiAgICB9XG4gICAgaWYgKHRoaXMubW9kZSA9PT0gJ2VkaXQnICYmIHRoaXMudHlwZSA9PT0gJ1Bhc3N3b3JkJykge1xuICAgICAgdGhpcy52YWx1ZSA9ICcnO1xuICAgIH1cbiAgfVxuXG4gIGdldCB0aXRsZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLm1vZGUgPT09ICdlZGl0JyA/ICdFZGl0IGdsb2JhbCB2YXJpYWJsZScgOiAnTmV3IGdsb2JhbCB2YXJpYWJsZSc7XG4gIH1cblxuICBnZXQgc3VidGl0bGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gJ1dvcmtzcGFjZS13aWRlIOKAlCBhY2Nlc3NpYmxlIGZyb20gYW55IHRlc3QgY2FzZSwgYW55IGVudmlyb25tZW50Lic7XG4gIH1cblxuICBnZXQgcHJpbWFyeUJ1dHRvbkxhYmVsKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMubW9kZSA9PT0gJ2VkaXQnID8gJ1NhdmUgY2hhbmdlcycgOiAnQ3JlYXRlIHZhcmlhYmxlJztcbiAgfVxuXG4gIGdldCBpc0Jvb2xlYW4oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMudHlwZSA9PT0gJ0Jvb2xlYW4nO1xuICB9XG5cbiAgZ2V0IGlzUGFzc3dvcmQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMudHlwZSA9PT0gJ1Bhc3N3b3JkJztcbiAgfVxuXG4gIGdldCBpc051bWJlcigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy50eXBlID09PSAnTnVtYmVyJztcbiAgfVxuXG4gIGdldCB2YWx1ZVBsYWNlaG9sZGVyKCk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMuaXNQYXNzd29yZCAmJiB0aGlzLm1vZGUgPT09ICdlZGl0Jykge1xuICAgICAgcmV0dXJuICfigKLigKLigKLigKLigKLigKIgKGxlYXZlIGJsYW5rIHRvIGtlZXAgZXhpc3RpbmcpJztcbiAgICB9XG4gICAgcmV0dXJuICcnO1xuICB9XG5cbiAgZ2V0IG5hbWVIZWxwZXJUZXh0KCk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMubmFtZUVycm9yKSB7XG4gICAgICByZXR1cm4gdGhpcy5uYW1lRXJyb3I7XG4gICAgfVxuICAgIHJldHVybiAnTmFtZXMgbXVzdCBiZSB1bmlxdWUgYWNyb3NzIHRoZSBlbnRpcmUgd29ya3NwYWNlIChwcmltYXJ5IGtleSDigJQgbm8gZHVwbGljYXRlcykuJztcbiAgfVxuXG4gIGdldCBuYW1lRXJyb3JzQXJyYXkoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiB0aGlzLm5hbWVFcnJvciA/IFt0aGlzLm5hbWVFcnJvcl0gOiBbXTtcbiAgfVxuXG4gIGdldCB2YWx1ZUVycm9yc0FycmF5KCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gdGhpcy52YWx1ZUVycm9yID8gW3RoaXMudmFsdWVFcnJvcl0gOiBbXTtcbiAgfVxuXG4gIGdldCBib29sZWFuT3B0aW9ucygpOiB7IGxhYmVsOiBzdHJpbmc7IHZhbHVlOiBzdHJpbmcgfVtdIHtcbiAgICByZXR1cm4gW1xuICAgICAgeyBsYWJlbDogJ3RydWUnLCB2YWx1ZTogJ3RydWUnIH0sXG4gICAgICB7IGxhYmVsOiAnZmFsc2UnLCB2YWx1ZTogJ2ZhbHNlJyB9LFxuICAgIF07XG4gIH1cblxuICBnZXQgYm9vbGVhbkRyb3Bkb3duT3B0aW9ucygpOiB7IGxhYmVsOiBzdHJpbmc7IHZhbHVlOiBzdHJpbmcgfVtdIHtcbiAgICByZXR1cm4gdGhpcy5ib29sZWFuT3B0aW9ucztcbiAgfVxuXG4gIGdldCBpc1ZhbHVlUmVxdWlyZWRWaXN1YWxseSgpOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy5pc0Jvb2xlYW4pIHsgcmV0dXJuIGZhbHNlOyB9XG4gICAgaWYgKHRoaXMuaXNQYXNzd29yZCAmJiB0aGlzLm1vZGUgPT09ICdlZGl0JykgeyByZXR1cm4gZmFsc2U7IH1cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIG9uTmFtZUNoYW5nZShuZXh0OiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLm5hbWUgPSBuZXh0O1xuICAgIHRoaXMubmFtZUVycm9yID0gbnVsbDtcbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIG9uVHlwZUNoYW5nZShuZXh0OiBHbG9iYWxWYXJpYWJsZVVJVHlwZSk6IHZvaWQge1xuICAgIGlmICghbmV4dCkgeyByZXR1cm47IH1cbiAgICB0aGlzLnR5cGUgPSBuZXh0O1xuICAgIGlmICh0aGlzLnR5cGUgPT09ICdCb29sZWFuJyAmJiB0aGlzLnZhbHVlICE9PSAndHJ1ZScgJiYgdGhpcy52YWx1ZSAhPT0gJ2ZhbHNlJykge1xuICAgICAgdGhpcy52YWx1ZSA9ICdmYWxzZSc7XG4gICAgfVxuICAgIGlmICh0aGlzLnR5cGUgPT09ICdQYXNzd29yZCcpIHtcbiAgICAgIHRoaXMucGFzc3dvcmRUb3VjaGVkID0gZmFsc2U7XG4gICAgICBpZiAodGhpcy5tb2RlID09PSAnZWRpdCcpIHtcbiAgICAgICAgdGhpcy52YWx1ZSA9ICcnO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLnZhbHVlRXJyb3IgPSBudWxsO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgb25QZXJtaXNzaW9uQ2hhbmdlKG5leHQ6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMucmVhZFdyaXRlTW9kZSA9IG5leHQgPT09ICdSTycgPyAnUk8nIDogJ1JXJztcbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIG9uVmFsdWVDaGFuZ2UobmV4dDogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy52YWx1ZSA9IG5leHQ7XG4gICAgaWYgKHRoaXMuaXNQYXNzd29yZCkge1xuICAgICAgdGhpcy5wYXNzd29yZFRvdWNoZWQgPSB0cnVlO1xuICAgIH1cbiAgICB0aGlzLnZhbHVlRXJyb3IgPSBudWxsO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgb25Cb29sZWFuVmFsdWVDaGFuZ2UobmV4dDogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy52YWx1ZSA9IG5leHQ7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBvbkRlc2NyaXB0aW9uQ2hhbmdlKG5leHQ6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuZGVzY3JpcHRpb24gPSBuZXh0O1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgb25UYWdzQ2hhbmdlKG5leHQ6IHN0cmluZ1tdKTogdm9pZCB7XG4gICAgdGhpcy50YWdzID0gQXJyYXkuaXNBcnJheShuZXh0KSA/IFsuLi5uZXh0XSA6IFtdO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgLyoqXG4gICAqIENhbGxlZCBieSB0aGUgaG9zdCAodmlhIERpYWxvZ1JlZi5nZXRDb21wb25lbnRJbnN0YW5jZSgpKSB3aGVuIHRoZSBwcmltYXJ5XG4gICAqIGJ1dHRvbiBpcyBjbGlja2VkLiBSZXR1cm5zIHRoZSBjYXB0dXJlZCB2YWx1ZSB3aGVuIHZhbGlkLCBvciBudWxsIHdoZW4gdGhlXG4gICAqIGZvcm0gaGFzIGVycm9ycyDigJQgaW4gd2hpY2ggY2FzZSB0aGUgaG9zdCBzaG91bGQgbGVhdmUgdGhlIGRpYWxvZyBvcGVuLlxuICAgKi9cbiAgZ2V0VmFsdWUoKTogR2xvYmFsVmFyaWFibGVEaWFsb2dWYWx1ZSB8IG51bGwge1xuICAgIGNvbnN0IHRyaW1tZWROYW1lID0gdGhpcy5uYW1lLnRyaW0oKTtcblxuICAgIGlmICghdHJpbW1lZE5hbWUpIHtcbiAgICAgIHRoaXMubmFtZUVycm9yID0gJ05hbWUgaXMgcmVxdWlyZWQuJztcbiAgICB9IGVsc2UgaWYgKHRoaXMuaXNEdXBsaWNhdGVOYW1lKHRyaW1tZWROYW1lKSkge1xuICAgICAgdGhpcy5uYW1lRXJyb3IgPSAnQSBnbG9iYWwgdmFyaWFibGUgd2l0aCB0aGlzIG5hbWUgYWxyZWFkeSBleGlzdHMg4oCUIG5hbWVzIG11c3QgYmUgdW5pcXVlLic7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubmFtZUVycm9yID0gbnVsbDtcbiAgICB9XG5cbiAgICBjb25zdCByYXdWYWx1ZSA9ICh0aGlzLnZhbHVlID8/ICcnKS50b1N0cmluZygpO1xuICAgIGNvbnN0IHZhbHVlSXNCbGFuayA9ICF0aGlzLmlzQm9vbGVhbiAmJiByYXdWYWx1ZS50cmltKCkgPT09ICcnO1xuICAgIGNvbnN0IGFsbG93QmxhbmtQYXNzd29yZE9uRWRpdCA9IHRoaXMuaXNQYXNzd29yZCAmJiB0aGlzLm1vZGUgPT09ICdlZGl0JyAmJiAhdGhpcy5wYXNzd29yZFRvdWNoZWQ7XG5cbiAgICBpZiAodmFsdWVJc0JsYW5rICYmICFhbGxvd0JsYW5rUGFzc3dvcmRPbkVkaXQpIHtcbiAgICAgIHRoaXMudmFsdWVFcnJvciA9ICdWYWx1ZSBpcyByZXF1aXJlZC4nO1xuICAgIH0gZWxzZSBpZiAodGhpcy5pc051bWJlciAmJiByYXdWYWx1ZSAmJiAhdGhpcy5pc1ZhbGlkTnVtYmVyKHJhd1ZhbHVlKSkge1xuICAgICAgdGhpcy52YWx1ZUVycm9yID0gJ1ZhbHVlIG11c3QgYmUgYSBudW1iZXIuJztcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy52YWx1ZUVycm9yID0gbnVsbDtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5uYW1lRXJyb3IgfHwgdGhpcy52YWx1ZUVycm9yKSB7XG4gICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGNvbnN0IG9taXRQYXNzd29yZFZhbHVlID0gdGhpcy5pc1Bhc3N3b3JkICYmIHRoaXMubW9kZSA9PT0gJ2VkaXQnICYmICF0aGlzLnBhc3N3b3JkVG91Y2hlZDtcblxuICAgIHJldHVybiB7XG4gICAgICBuYW1lOiB0cmltbWVkTmFtZSxcbiAgICAgIHR5cGU6IHRoaXMudHlwZSxcbiAgICAgIHZhbHVlOiBvbWl0UGFzc3dvcmRWYWx1ZSA/IG51bGwgOiB0aGlzLnNlcmlhbGl6ZVZhbHVlKCksXG4gICAgICByZWFkV3JpdGVNb2RlOiB0aGlzLnJlYWRXcml0ZU1vZGUsXG4gICAgICBkZXNjcmlwdGlvbjogdGhpcy5kZXNjcmlwdGlvbiA/IHRoaXMuZGVzY3JpcHRpb24gOiBudWxsLFxuICAgICAgdGFnczogWy4uLnRoaXMudGFnc10sXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgc2VyaWFsaXplVmFsdWUoKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgaWYgKHRoaXMuaXNCb29sZWFuKSB7XG4gICAgICByZXR1cm4gdGhpcy52YWx1ZSA9PT0gJ3RydWUnID8gJ3RydWUnIDogJ2ZhbHNlJztcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMudmFsdWUgPz8gJyc7XG4gIH1cblxuICBwcml2YXRlIGlzRHVwbGljYXRlTmFtZShjYW5kaWRhdGU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGV4aXN0aW5nID0gKHRoaXMuZXhpc3RpbmdOYW1lcyA/PyBbXSkubWFwKG4gPT4gKG4gPz8gJycpLnRyaW0oKSk7XG4gICAgaWYgKHRoaXMubW9kZSA9PT0gJ2VkaXQnKSB7XG4gICAgICBjb25zdCBvcmlnaW5hbCA9ICh0aGlzLmluaXRpYWxWYWx1ZT8ubmFtZSA/PyAnJykudHJpbSgpO1xuICAgICAgcmV0dXJuIGNhbmRpZGF0ZSAhPT0gb3JpZ2luYWwgJiYgZXhpc3RpbmcuaW5jbHVkZXMoY2FuZGlkYXRlKTtcbiAgICB9XG4gICAgcmV0dXJuIGV4aXN0aW5nLmluY2x1ZGVzKGNhbmRpZGF0ZSk7XG4gIH1cblxuICBwcml2YXRlIGlzVmFsaWROdW1iZXIocmF3OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBjb25zdCB0cmltbWVkID0gcmF3LnRyaW0oKTtcbiAgICBpZiAoIXRyaW1tZWQpIHsgcmV0dXJuIHRydWU7IH1cbiAgICByZXR1cm4gIU51bWJlci5pc05hTihOdW1iZXIodHJpbW1lZCkpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiY3FhLWZsZXggY3FhLWZsZXgtY29sIGNxYS1nYXAtNCBjcWEtdy1mdWxsXCI+XG5cbiAgPCEtLSBOYW1lIC0tPlxuICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXggY3FhLWZsZXgtY29sXCI+XG4gICAgPGNxYS1jdXN0b20taW5wdXRcbiAgICAgIGxhYmVsPVwiTmFtZVwiXG4gICAgICBwbGFjZWhvbGRlcj1cImUuZy4gaWhnX2FwaV9rZXlcIlxuICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgW3ZhbHVlXT1cIm5hbWVcIlxuICAgICAgW3JlcXVpcmVkXT1cInRydWVcIlxuICAgICAgW2Z1bGxXaWR0aF09XCJ0cnVlXCJcbiAgICAgIFtlcnJvcnNdPVwibmFtZUVycm9yc0FycmF5XCJcbiAgICAgIGlucHV0SW5saW5lU3R5bGU9XCJmb250LWZhbWlseTogdWktbW9ub3NwYWNlLCBTRk1vbm8tUmVndWxhciwgTWVubG8sIE1vbmFjbywgQ29uc29sYXMsICdMaWJlcmF0aW9uIE1vbm8nLCBtb25vc3BhY2U7XCJcbiAgICAgICh2YWx1ZUNoYW5nZSk9XCJvbk5hbWVDaGFuZ2UoJGV2ZW50KVwiPlxuICAgIDwvY3FhLWN1c3RvbS1pbnB1dD5cbiAgICA8c3BhbiAqbmdJZj1cIiFuYW1lRXJyb3JcIlxuICAgICAgY2xhc3M9XCJjcWEtdGV4dC14cyBjcWEtdGV4dC1ncmF5LTUwMCBjcWEtbXQtMVwiPlxuICAgICAgTmFtZXMgbXVzdCBiZSB1bmlxdWUgYWNyb3NzIHRoZSBlbnRpcmUgd29ya3NwYWNlIChwcmltYXJ5IGtleSDigJQgbm8gZHVwbGljYXRlcykuXG4gICAgPC9zcGFuPlxuICA8L2Rpdj5cblxuICA8IS0tIFR5cGUgKyBQZXJtaXNzaW9uIHJvdyAtLT5cbiAgPGRpdiBjbGFzcz1cImNxYS1ncmlkIGNxYS1ncmlkLWNvbHMtMiBjcWEtZ2FwLTRcIj5cbiAgICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXggY3FhLWZsZXgtY29sXCI+XG4gICAgICA8bGFiZWwgY2xhc3M9XCJjcWEtdGV4dC1zbSBjcWEtbWItMS41IGNxYS1mb250LW1lZGl1bSBjcWEtdGV4dC1ncmF5LTcwMFwiPlR5cGU8L2xhYmVsPlxuICAgICAgPGNxYS1kcm9wZG93bi1idXR0b25cbiAgICAgICAgW29wdGlvbnNdPVwidHlwZURyb3Bkb3duT3B0aW9uc1wiXG4gICAgICAgIFtzZWxlY3RlZFZhbHVlXT1cInR5cGVcIlxuICAgICAgICAoc2VsZWN0aW9uQ2hhbmdlKT1cIm9uVHlwZUNoYW5nZSgkZXZlbnQpXCI+XG4gICAgICA8L2NxYS1kcm9wZG93bi1idXR0b24+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1mbGV4LWNvbFwiPlxuICAgICAgPGxhYmVsIGNsYXNzPVwiY3FhLXRleHQtc20gY3FhLW1iLTEuNSBjcWEtZm9udC1tZWRpdW0gY3FhLXRleHQtZ3JheS03MDBcIj5QZXJtaXNzaW9uPC9sYWJlbD5cbiAgICAgIDxkaXYgY2xhc3M9XCJjcWEtcHQtMC41XCI+XG4gICAgICAgIDxjcWEtcGVybWlzc2lvbi10b2dnbGVcbiAgICAgICAgICBbdmFsdWVdPVwicmVhZFdyaXRlTW9kZVwiXG4gICAgICAgICAgKHZhbHVlQ2hhbmdlKT1cIm9uUGVybWlzc2lvbkNoYW5nZSgkZXZlbnQpXCI+XG4gICAgICAgIDwvY3FhLXBlcm1pc3Npb24tdG9nZ2xlPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDwhLS0gVmFsdWUgLS0+XG4gIDxkaXYgY2xhc3M9XCJjcWEtZmxleCBjcWEtZmxleC1jb2xcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNCb29sZWFuOyBlbHNlIG5vbkJvb2xlYW5WYWx1ZVwiPlxuICAgICAgPGxhYmVsIGNsYXNzPVwiY3FhLXRleHQtc20gY3FhLW1iLTEuNSBjcWEtZm9udC1tZWRpdW0gY3FhLXRleHQtZ3JheS03MDBcIj5WYWx1ZTwvbGFiZWw+XG4gICAgICA8Y3FhLWRyb3Bkb3duLWJ1dHRvblxuICAgICAgICBbb3B0aW9uc109XCJib29sZWFuRHJvcGRvd25PcHRpb25zXCJcbiAgICAgICAgW3NlbGVjdGVkVmFsdWVdPVwidmFsdWVcIlxuICAgICAgICAoc2VsZWN0aW9uQ2hhbmdlKT1cIm9uQm9vbGVhblZhbHVlQ2hhbmdlKCRldmVudClcIj5cbiAgICAgIDwvY3FhLWRyb3Bkb3duLWJ1dHRvbj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctdGVtcGxhdGUgI25vbkJvb2xlYW5WYWx1ZT5cbiAgICAgIDxjcWEtY3VzdG9tLWlucHV0XG4gICAgICAgIGxhYmVsPVwiVmFsdWVcIlxuICAgICAgICBbdHlwZV09XCJpc1Bhc3N3b3JkID8gJ3Bhc3N3b3JkJyA6ICd0ZXh0J1wiXG4gICAgICAgIFt2YWx1ZV09XCJ2YWx1ZVwiXG4gICAgICAgIFtwbGFjZWhvbGRlcl09XCJ2YWx1ZVBsYWNlaG9sZGVyXCJcbiAgICAgICAgW3JlcXVpcmVkXT1cImlzVmFsdWVSZXF1aXJlZFZpc3VhbGx5XCJcbiAgICAgICAgW2Z1bGxXaWR0aF09XCJ0cnVlXCJcbiAgICAgICAgW2Vycm9yc109XCJ2YWx1ZUVycm9yc0FycmF5XCJcbiAgICAgICAgaW5wdXRJbmxpbmVTdHlsZT1cImZvbnQtZmFtaWx5OiB1aS1tb25vc3BhY2UsIFNGTW9uby1SZWd1bGFyLCBNZW5sbywgTW9uYWNvLCBDb25zb2xhcywgJ0xpYmVyYXRpb24gTW9ubycsIG1vbm9zcGFjZTtcIlxuICAgICAgICAodmFsdWVDaGFuZ2UpPVwib25WYWx1ZUNoYW5nZSgkZXZlbnQpXCI+XG4gICAgICA8L2NxYS1jdXN0b20taW5wdXQ+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgPC9kaXY+XG5cbiAgPCEtLSBUYWdzIChvcHRpb25hbCkg4oCUIGJldHdlZW4gVmFsdWUgYW5kIERlc2NyaXB0aW9uIHBlciBkZXNpZ24gLS0+XG4gIDxkaXYgY2xhc3M9XCJjcWEtZmxleCBjcWEtZmxleC1jb2xcIj5cbiAgICA8bGFiZWwgY2xhc3M9XCJjcWEtdGV4dC1zbSBjcWEtbWItMS41IGNxYS1mb250LW1lZGl1bSBjcWEtdGV4dC1ncmF5LTcwMFwiPlxuICAgICAgVGFncyA8c3BhbiBjbGFzcz1cImNxYS10ZXh0LXhzIGNxYS1mb250LW5vcm1hbCBjcWEtdGV4dC1ncmF5LTUwMFwiPihvcHRpb25hbCDigJQgZm9yIGZpbHRlcmluZyAmYW1wOyBncm91cGluZyk8L3NwYW4+XG4gICAgPC9sYWJlbD5cbiAgICA8bGliLWdsb2JhbC12YXJpYWJsZS10YWdzLWlucHV0XG4gICAgICBbdGFnc109XCJ0YWdzXCJcbiAgICAgIFthdmFpbGFibGVUYWdzXT1cImF2YWlsYWJsZVRhZ3NcIlxuICAgICAgKHRhZ3NDaGFuZ2UpPVwib25UYWdzQ2hhbmdlKCRldmVudClcIj5cbiAgICA8L2xpYi1nbG9iYWwtdmFyaWFibGUtdGFncy1pbnB1dD5cbiAgPC9kaXY+XG5cbiAgPCEtLSBEZXNjcmlwdGlvbiAtLT5cbiAgPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1mbGV4LWNvbFwiPlxuICAgIDxjcWEtY3VzdG9tLXRleHRhcmVhXG4gICAgICBsYWJlbD1cIkRlc2NyaXB0aW9uXCJcbiAgICAgIHBsYWNlaG9sZGVyPVwiV2hhdCBpcyB0aGlzIHZhcmlhYmxlIHVzZWQgZm9yP1wiXG4gICAgICBbdmFsdWVdPVwiZGVzY3JpcHRpb25cIlxuICAgICAgW3Jvd3NdPVwiMlwiXG4gICAgICBbZnVsbFdpZHRoXT1cInRydWVcIlxuICAgICAgKHZhbHVlQ2hhbmdlKT1cIm9uRGVzY3JpcHRpb25DaGFuZ2UoJGV2ZW50KVwiPlxuICAgIDwvY3FhLWN1c3RvbS10ZXh0YXJlYT5cbiAgPC9kaXY+XG5cbjwvZGl2PlxuIl19
|
|
237
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV3LWdsb2JhbC12YXJpYWJsZS1kaWFsb2cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9uZXctZ2xvYmFsLXZhcmlhYmxlLWRpYWxvZy9uZXctZ2xvYmFsLXZhcmlhYmxlLWRpYWxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL25ldy1nbG9iYWwtdmFyaWFibGUtZGlhbG9nL25ldy1nbG9iYWwtdmFyaWFibGUtZGlhbG9nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBcUIsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQzs7Ozs7Ozs7QUFjckcsTUFBTSxPQUFPLGdDQUFnQztJQStCM0MsWUFBNkIsR0FBc0I7UUFBdEIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUE5QjFDLFNBQUksR0FBc0IsUUFBUSxDQUFDO1FBRW5DLGtCQUFhLEdBQWEsRUFBRSxDQUFDO1FBQzdCLGtCQUFhLEdBQThCLEVBQUUsQ0FBQztRQUU5QyxnQkFBVyxHQUEyQixDQUFDLFFBQVEsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBRWxGLHdCQUFtQixHQUFxRDtZQUMvRSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRTtZQUNwQyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRTtZQUNwQyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRTtZQUN0QyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRTtTQUN6QyxDQUFDO1FBRU8sdUJBQWtCLEdBQUc7WUFDNUIsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFrQyxFQUFFLElBQUksRUFB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aEMsZ0NBQWdDLG9SQ2Q3QyxxNEdBNEZBOzJGRDlFYSxnQ0FBZ0M7a0JBTjVDLFNBQVM7K0JBQ0UsZ0NBQWdDLG1CQUV6Qix1QkFBdUIsQ0FBQyxNQUFNLFFBQ3pDLEVBQUUsS0FBSyxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQUUsMkJBQTJCLEVBQUU7d0dBR3pELElBQUk7c0JBQVosS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBHbG9iYWxWYXJpYWJsZURpYWxvZ1ZhbHVlLFxuICBHbG9iYWxWYXJpYWJsZVRhZ09wdGlvbixcbiAgR2xvYmFsVmFyaWFibGVVSVBlcm1pc3Npb24sXG4gIEdsb2JhbFZhcmlhYmxlVUlUeXBlLFxufSBmcm9tICcuL25ldy1nbG9iYWwtdmFyaWFibGUtZGlhbG9nLm1vZGVscyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NxYS1uZXctZ2xvYmFsLXZhcmlhYmxlLWRpYWxvZycsXG4gIHRlbXBsYXRlVXJsOiAnLi9uZXctZ2xvYmFsLXZhcmlhYmxlLWRpYWxvZy5jb21wb25lbnQuaHRtbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBob3N0OiB7IGNsYXNzOiAnY3FhLXVpLXJvb3QnLCBzdHlsZTogJ2Rpc3BsYXk6YmxvY2s7d2lkdGg6MTAwJTsnIH0sXG59KVxuZXhwb3J0IGNsYXNzIE5ld0dsb2JhbFZhcmlhYmxlRGlhbG9nQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgbW9kZTogJ2NyZWF0ZScgfCAnZWRpdCcgPSAnY3JlYXRlJztcbiAgQElucHV0KCkgaW5pdGlhbFZhbHVlPzogUGFydGlhbDxHbG9iYWxWYXJpYWJsZURpYWxvZ1ZhbHVlPjtcbiAgQElucHV0KCkgZXhpc3RpbmdOYW1lczogc3RyaW5nW10gPSBbXTtcbiAgQElucHV0KCkgYXZhaWxhYmxlVGFnczogR2xvYmFsVmFyaWFibGVUYWdPcHRpb25bXSA9IFtdO1xuXG4gIHJlYWRvbmx5IHR5cGVPcHRpb25zOiBHbG9iYWxWYXJpYWJsZVVJVHlwZVtdID0gWydTdHJpbmcnLCAnTnVtYmVyJywgJ0Jvb2xlYW4nLCAnUGFzc3dvcmQnXTtcblxuICByZWFkb25seSB0eXBlRHJvcGRvd25PcHRpb25zOiB7IGxhYmVsOiBzdHJpbmc7IHZhbHVlOiBHbG9iYWxWYXJpYWJsZVVJVHlwZSB9W10gPSBbXG4gICAgeyBsYWJlbDogJ1N0cmluZycsIHZhbHVlOiAnU3RyaW5nJyB9LFxuICAgIHsgbGFiZWw6ICdOdW1iZXInLCB2YWx1ZTogJ051bWJlcicgfSxcbiAgICB7IGxhYmVsOiAnQm9vbGVhbicsIHZhbHVlOiAnQm9vbGVhbicgfSxcbiAgICB7IGxhYmVsOiAnUGFzc3dvcmQnLCB2YWx1ZTogJ1Bhc3N3b3JkJyB9LFxuICBdO1xuXG4gIHJlYWRvbmx5IHBlcm1pc3Npb25TZWdtZW50cyA9IFtcbiAgICB7IGxhYmVsOiAnUk8nLCB2YWx1ZTogJ1JPJyBhcyBHbG9iYWxWYXJpYWJsZVVJUGVybWlzc2lvbiwgaWNvbjogJ2xvY2snIH0sXG4gICAgeyBsYWJlbDogJ1JXJywgdmFsdWU6ICdSVycgYXMgR2xvYmFsVmFyaWFibGVVSVBlcm1pc3Npb24sIGljb246ICdlZGl0JyB9LFxuICBdO1xuXG4gIG5hbWUgPSAnJztcbiAgdHlwZTogR2xvYmFsVmFyaWFibGVVSVR5cGUgPSAnU3RyaW5nJztcbiAgdmFsdWUgPSAnJztcbiAgcmVhZFdyaXRlTW9kZTogR2xvYmFsVmFyaWFibGVVSVBlcm1pc3Npb24gPSAnUlcnO1xuICBkZXNjcmlwdGlvbiA9ICcnO1xuICB0YWdzOiBzdHJpbmdbXSA9IFtdO1xuICBwYXNzd29yZFRvdWNoZWQgPSBmYWxzZTtcblxuICBuYW1lRXJyb3I6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICB2YWx1ZUVycm9yOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaW5pdGlhbFZhbHVlKSB7XG4gICAgICB0aGlzLm5hbWUgPSB0aGlzLmluaXRpYWxWYWx1ZS5uYW1lID8/ICcnO1xuICAgICAgdGhpcy50eXBlID0gdGhpcy5pbml0aWFsVmFsdWUudHlwZSA/PyAnU3RyaW5nJztcbiAgICAgIHRoaXMudmFsdWUgPSB0aGlzLmluaXRpYWxWYWx1ZS52YWx1ZSA/PyAnJztcbiAgICAgIHRoaXMucmVhZFdyaXRlTW9kZSA9IHRoaXMuaW5pdGlhbFZhbHVlLnJlYWRXcml0ZU1vZGUgPz8gJ1JXJztcbiAgICAgIHRoaXMuZGVzY3JpcHRpb24gPSB0aGlzLmluaXRpYWxWYWx1ZS5kZXNjcmlwdGlvbiA/PyAnJztcbiAgICAgIHRoaXMudGFncyA9IEFycmF5LmlzQXJyYXkodGhpcy5pbml0aWFsVmFsdWUudGFncykgPyBbLi4udGhpcy5pbml0aWFsVmFsdWUudGFnc10gOiBbXTtcbiAgICB9XG4gICAgaWYgKHRoaXMudHlwZSA9PT0gJ0Jvb2xlYW4nICYmIHRoaXMudmFsdWUgIT09ICd0cnVlJyAmJiB0aGlzLnZhbHVlICE9PSAnZmFsc2UnKSB7XG4gICAgICB0aGlzLnZhbHVlID0gJ2ZhbHNlJztcbiAgICB9XG4gICAgaWYgKHRoaXMubW9kZSA9PT0gJ2VkaXQnICYmIHRoaXMudHlwZSA9PT0gJ1Bhc3N3b3JkJykge1xuICAgICAgdGhpcy52YWx1ZSA9ICcnO1xuICAgIH1cbiAgfVxuXG4gIGdldCB0aXRsZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLm1vZGUgPT09ICdlZGl0JyA/ICdFZGl0IGdsb2JhbCB2YXJpYWJsZScgOiAnTmV3IGdsb2JhbCB2YXJpYWJsZSc7XG4gIH1cblxuICBnZXQgc3VidGl0bGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gJ1dvcmtzcGFjZS13aWRlIOKAlCBhY2Nlc3NpYmxlIGZyb20gYW55IHRlc3QgY2FzZSwgYW55IGVudmlyb25tZW50Lic7XG4gIH1cblxuICBnZXQgcHJpbWFyeUJ1dHRvbkxhYmVsKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMubW9kZSA9PT0gJ2VkaXQnID8gJ1NhdmUgY2hhbmdlcycgOiAnQ3JlYXRlIHZhcmlhYmxlJztcbiAgfVxuXG4gIGdldCBpc0Jvb2xlYW4oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMudHlwZSA9PT0gJ0Jvb2xlYW4nO1xuICB9XG5cbiAgZ2V0IGlzUGFzc3dvcmQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMudHlwZSA9PT0gJ1Bhc3N3b3JkJztcbiAgfVxuXG4gIGdldCBpc051bWJlcigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy50eXBlID09PSAnTnVtYmVyJztcbiAgfVxuXG4gIGdldCB2YWx1ZVBsYWNlaG9sZGVyKCk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMuaXNQYXNzd29yZCAmJiB0aGlzLm1vZGUgPT09ICdlZGl0Jykge1xuICAgICAgcmV0dXJuICfigKLigKLigKLigKLigKLigKIgKGxlYXZlIGJsYW5rIHRvIGtlZXAgZXhpc3RpbmcpJztcbiAgICB9XG4gICAgcmV0dXJuICcnO1xuICB9XG5cbiAgZ2V0IG5hbWVIZWxwZXJUZXh0KCk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMubmFtZUVycm9yKSB7XG4gICAgICByZXR1cm4gdGhpcy5uYW1lRXJyb3I7XG4gICAgfVxuICAgIHJldHVybiAnTmFtZXMgbXVzdCBiZSB1bmlxdWUgYWNyb3NzIHRoZSBlbnRpcmUgd29ya3NwYWNlIChwcmltYXJ5IGtleSDigJQgbm8gZHVwbGljYXRlcykuJztcbiAgfVxuXG4gIGdldCBuYW1lRXJyb3JzQXJyYXkoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiB0aGlzLm5hbWVFcnJvciA/IFt0aGlzLm5hbWVFcnJvcl0gOiBbXTtcbiAgfVxuXG4gIGdldCB2YWx1ZUVycm9yc0FycmF5KCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gdGhpcy52YWx1ZUVycm9yID8gW3RoaXMudmFsdWVFcnJvcl0gOiBbXTtcbiAgfVxuXG4gIGdldCBib29sZWFuT3B0aW9ucygpOiB7IGxhYmVsOiBzdHJpbmc7IHZhbHVlOiBzdHJpbmcgfVtdIHtcbiAgICByZXR1cm4gW1xuICAgICAgeyBsYWJlbDogJ3RydWUnLCB2YWx1ZTogJ3RydWUnIH0sXG4gICAgICB7IGxhYmVsOiAnZmFsc2UnLCB2YWx1ZTogJ2ZhbHNlJyB9LFxuICAgIF07XG4gIH1cblxuICBnZXQgYm9vbGVhbkRyb3Bkb3duT3B0aW9ucygpOiB7IGxhYmVsOiBzdHJpbmc7IHZhbHVlOiBzdHJpbmcgfVtdIHtcbiAgICByZXR1cm4gdGhpcy5ib29sZWFuT3B0aW9ucztcbiAgfVxuXG4gIGdldCBpc1ZhbHVlUmVxdWlyZWRWaXN1YWxseSgpOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy5pc0Jvb2xlYW4pIHsgcmV0dXJuIGZhbHNlOyB9XG4gICAgaWYgKHRoaXMuaXNQYXNzd29yZCAmJiB0aGlzLm1vZGUgPT09ICdlZGl0JykgeyByZXR1cm4gZmFsc2U7IH1cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIG9uTmFtZUNoYW5nZShuZXh0OiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLm5hbWUgPSBuZXh0O1xuICAgIHRoaXMubmFtZUVycm9yID0gbnVsbDtcbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIG9uVHlwZUNoYW5nZShuZXh0OiBHbG9iYWxWYXJpYWJsZVVJVHlwZSk6IHZvaWQge1xuICAgIGlmICghbmV4dCkgeyByZXR1cm47IH1cbiAgICBjb25zdCBwcmV2ID0gdGhpcy50eXBlO1xuICAgIHRoaXMudHlwZSA9IG5leHQ7XG4gICAgaWYgKHByZXYgPT09ICdCb29sZWFuJyAmJiBuZXh0ICE9PSAnQm9vbGVhbicpIHtcbiAgICAgIHRoaXMudmFsdWUgPSAnJztcbiAgICB9IGVsc2UgaWYgKG5leHQgPT09ICdCb29sZWFuJyAmJiB0aGlzLnZhbHVlICE9PSAndHJ1ZScgJiYgdGhpcy52YWx1ZSAhPT0gJ2ZhbHNlJykge1xuICAgICAgdGhpcy52YWx1ZSA9ICdmYWxzZSc7XG4gICAgfVxuICAgIGlmIChuZXh0ID09PSAnTnVtYmVyJyAmJiB0aGlzLnZhbHVlICYmICF0aGlzLmlzVmFsaWROdW1iZXIodGhpcy52YWx1ZSkpIHtcbiAgICAgIHRoaXMudmFsdWUgPSAnJztcbiAgICB9XG4gICAgaWYgKG5leHQgPT09ICdQYXNzd29yZCcpIHtcbiAgICAgIHRoaXMucGFzc3dvcmRUb3VjaGVkID0gZmFsc2U7XG4gICAgICBpZiAodGhpcy5tb2RlID09PSAnZWRpdCcpIHtcbiAgICAgICAgdGhpcy52YWx1ZSA9ICcnO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLnZhbHVlRXJyb3IgPSBudWxsO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgb25QZXJtaXNzaW9uQ2hhbmdlKG5leHQ6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMucmVhZFdyaXRlTW9kZSA9IG5leHQgPT09ICdSTycgPyAnUk8nIDogJ1JXJztcbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIG9uVmFsdWVDaGFuZ2UobmV4dDogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy52YWx1ZSA9IG5leHQ7XG4gICAgaWYgKHRoaXMuaXNQYXNzd29yZCkge1xuICAgICAgdGhpcy5wYXNzd29yZFRvdWNoZWQgPSB0cnVlO1xuICAgIH1cbiAgICB0aGlzLnZhbHVlRXJyb3IgPSBudWxsO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgb25Cb29sZWFuVmFsdWVDaGFuZ2UobmV4dDogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy52YWx1ZSA9IG5leHQ7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBvbkRlc2NyaXB0aW9uQ2hhbmdlKG5leHQ6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuZGVzY3JpcHRpb24gPSBuZXh0O1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgb25UYWdzQ2hhbmdlKG5leHQ6IHN0cmluZ1tdKTogdm9pZCB7XG4gICAgdGhpcy50YWdzID0gQXJyYXkuaXNBcnJheShuZXh0KSA/IFsuLi5uZXh0XSA6IFtdO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgLyoqXG4gICAqIENhbGxlZCBieSB0aGUgaG9zdCAodmlhIERpYWxvZ1JlZi5nZXRDb21wb25lbnRJbnN0YW5jZSgpKSB3aGVuIHRoZSBwcmltYXJ5XG4gICAqIGJ1dHRvbiBpcyBjbGlja2VkLiBSZXR1cm5zIHRoZSBjYXB0dXJlZCB2YWx1ZSB3aGVuIHZhbGlkLCBvciBudWxsIHdoZW4gdGhlXG4gICAqIGZvcm0gaGFzIGVycm9ycyDigJQgaW4gd2hpY2ggY2FzZSB0aGUgaG9zdCBzaG91bGQgbGVhdmUgdGhlIGRpYWxvZyBvcGVuLlxuICAgKi9cbiAgZ2V0VmFsdWUoKTogR2xvYmFsVmFyaWFibGVEaWFsb2dWYWx1ZSB8IG51bGwge1xuICAgIGNvbnN0IHRyaW1tZWROYW1lID0gdGhpcy5uYW1lLnRyaW0oKTtcblxuICAgIGlmICghdHJpbW1lZE5hbWUpIHtcbiAgICAgIHRoaXMubmFtZUVycm9yID0gJ05hbWUgaXMgcmVxdWlyZWQuJztcbiAgICB9IGVsc2UgaWYgKHRoaXMuaXNEdXBsaWNhdGVOYW1lKHRyaW1tZWROYW1lKSkge1xuICAgICAgdGhpcy5uYW1lRXJyb3IgPSAnQSBnbG9iYWwgdmFyaWFibGUgd2l0aCB0aGlzIG5hbWUgYWxyZWFkeSBleGlzdHMg4oCUIG5hbWVzIG11c3QgYmUgdW5pcXVlLic7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubmFtZUVycm9yID0gbnVsbDtcbiAgICB9XG5cbiAgICBjb25zdCByYXdWYWx1ZSA9ICh0aGlzLnZhbHVlID8/ICcnKS50b1N0cmluZygpO1xuICAgIGNvbnN0IHZhbHVlSXNCbGFuayA9ICF0aGlzLmlzQm9vbGVhbiAmJiByYXdWYWx1ZS50cmltKCkgPT09ICcnO1xuICAgIGNvbnN0IGFsbG93QmxhbmtQYXNzd29yZE9uRWRpdCA9IHRoaXMuaXNQYXNzd29yZCAmJiB0aGlzLm1vZGUgPT09ICdlZGl0JyAmJiAhdGhpcy5wYXNzd29yZFRvdWNoZWQ7XG5cbiAgICBpZiAodmFsdWVJc0JsYW5rICYmICFhbGxvd0JsYW5rUGFzc3dvcmRPbkVkaXQpIHtcbiAgICAgIHRoaXMudmFsdWVFcnJvciA9ICdWYWx1ZSBpcyByZXF1aXJlZC4nO1xuICAgIH0gZWxzZSBpZiAodGhpcy5pc051bWJlciAmJiByYXdWYWx1ZSAmJiAhdGhpcy5pc1ZhbGlkTnVtYmVyKHJhd1ZhbHVlKSkge1xuICAgICAgdGhpcy52YWx1ZUVycm9yID0gJ1ZhbHVlIG11c3QgYmUgYSBudW1iZXIuJztcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy52YWx1ZUVycm9yID0gbnVsbDtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5uYW1lRXJyb3IgfHwgdGhpcy52YWx1ZUVycm9yKSB7XG4gICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGNvbnN0IG9taXRQYXNzd29yZFZhbHVlID0gdGhpcy5pc1Bhc3N3b3JkICYmIHRoaXMubW9kZSA9PT0gJ2VkaXQnICYmICF0aGlzLnBhc3N3b3JkVG91Y2hlZDtcblxuICAgIHJldHVybiB7XG4gICAgICBuYW1lOiB0cmltbWVkTmFtZSxcbiAgICAgIHR5cGU6IHRoaXMudHlwZSxcbiAgICAgIHZhbHVlOiBvbWl0UGFzc3dvcmRWYWx1ZSA/IG51bGwgOiB0aGlzLnNlcmlhbGl6ZVZhbHVlKCksXG4gICAgICByZWFkV3JpdGVNb2RlOiB0aGlzLnJlYWRXcml0ZU1vZGUsXG4gICAgICBkZXNjcmlwdGlvbjogdGhpcy5kZXNjcmlwdGlvbiA/IHRoaXMuZGVzY3JpcHRpb24gOiBudWxsLFxuICAgICAgdGFnczogWy4uLnRoaXMudGFnc10sXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgc2VyaWFsaXplVmFsdWUoKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgaWYgKHRoaXMuaXNCb29sZWFuKSB7XG4gICAgICByZXR1cm4gdGhpcy52YWx1ZSA9PT0gJ3RydWUnID8gJ3RydWUnIDogJ2ZhbHNlJztcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMudmFsdWUgPz8gJyc7XG4gIH1cblxuICBwcml2YXRlIGlzRHVwbGljYXRlTmFtZShjYW5kaWRhdGU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGV4aXN0aW5nID0gKHRoaXMuZXhpc3RpbmdOYW1lcyA/PyBbXSkubWFwKG4gPT4gKG4gPz8gJycpLnRyaW0oKSk7XG4gICAgaWYgKHRoaXMubW9kZSA9PT0gJ2VkaXQnKSB7XG4gICAgICBjb25zdCBvcmlnaW5hbCA9ICh0aGlzLmluaXRpYWxWYWx1ZT8ubmFtZSA/PyAnJykudHJpbSgpO1xuICAgICAgcmV0dXJuIGNhbmRpZGF0ZSAhPT0gb3JpZ2luYWwgJiYgZXhpc3RpbmcuaW5jbHVkZXMoY2FuZGlkYXRlKTtcbiAgICB9XG4gICAgcmV0dXJuIGV4aXN0aW5nLmluY2x1ZGVzKGNhbmRpZGF0ZSk7XG4gIH1cblxuICBwcml2YXRlIGlzVmFsaWROdW1iZXIocmF3OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBjb25zdCB0cmltbWVkID0gcmF3LnRyaW0oKTtcbiAgICBpZiAoIXRyaW1tZWQpIHsgcmV0dXJuIHRydWU7IH1cbiAgICByZXR1cm4gIU51bWJlci5pc05hTihOdW1iZXIodHJpbW1lZCkpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiY3FhLWZsZXggY3FhLWZsZXgtY29sIGNxYS1nYXAtNCBjcWEtdy1mdWxsXCI+XG5cbiAgPCEtLSBOYW1lIC0tPlxuICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXggY3FhLWZsZXgtY29sXCI+XG4gICAgPGNxYS1jdXN0b20taW5wdXRcbiAgICAgIGxhYmVsPVwiTmFtZVwiXG4gICAgICBwbGFjZWhvbGRlcj1cImUuZy4gYXBpX2tleVwiXG4gICAgICB0eXBlPVwidGV4dFwiXG4gICAgICBbdmFsdWVdPVwibmFtZVwiXG4gICAgICBbcmVxdWlyZWRdPVwidHJ1ZVwiXG4gICAgICBbZnVsbFdpZHRoXT1cInRydWVcIlxuICAgICAgW2Vycm9yc109XCJuYW1lRXJyb3JzQXJyYXlcIlxuICAgICAgaW5wdXRJbmxpbmVTdHlsZT1cImZvbnQtZmFtaWx5OiB1aS1tb25vc3BhY2UsIFNGTW9uby1SZWd1bGFyLCBNZW5sbywgTW9uYWNvLCBDb25zb2xhcywgJ0xpYmVyYXRpb24gTW9ubycsIG1vbm9zcGFjZTtcIlxuICAgICAgKHZhbHVlQ2hhbmdlKT1cIm9uTmFtZUNoYW5nZSgkZXZlbnQpXCI+XG4gICAgPC9jcWEtY3VzdG9tLWlucHV0PlxuICAgIDxzcGFuICpuZ0lmPVwiIW5hbWVFcnJvclwiXG4gICAgICBjbGFzcz1cImNxYS10ZXh0LXhzIGNxYS10ZXh0LWdyYXktNTAwIGNxYS1tdC0xXCI+XG4gICAgICBOYW1lcyBtdXN0IGJlIHVuaXF1ZSBhY3Jvc3MgdGhlIGVudGlyZSB3b3Jrc3BhY2UgKHByaW1hcnkga2V5IOKAlCBubyBkdXBsaWNhdGVzKS5cbiAgICA8L3NwYW4+XG4gIDwvZGl2PlxuXG4gIDwhLS0gVHlwZSArIFBlcm1pc3Npb24gcm93IC0tPlxuICA8ZGl2IGNsYXNzPVwiY3FhLWdyaWQgY3FhLWdyaWQtY29scy0yIGNxYS1nYXAtNFwiPlxuICAgIDxkaXYgY2xhc3M9XCJjcWEtZmxleCBjcWEtZmxleC1jb2xcIj5cbiAgICAgIDxsYWJlbCBjbGFzcz1cImNxYS10ZXh0LXNtIGNxYS1tYi0xLjUgY3FhLWZvbnQtbWVkaXVtIGNxYS10ZXh0LWdyYXktNzAwXCI+VHlwZTwvbGFiZWw+XG4gICAgICA8Y3FhLWRyb3Bkb3duLWJ1dHRvblxuICAgICAgICBbb3B0aW9uc109XCJ0eXBlRHJvcGRvd25PcHRpb25zXCJcbiAgICAgICAgW3NlbGVjdGVkVmFsdWVdPVwidHlwZVwiXG4gICAgICAgIChzZWxlY3Rpb25DaGFuZ2UpPVwib25UeXBlQ2hhbmdlKCRldmVudClcIj5cbiAgICAgIDwvY3FhLWRyb3Bkb3duLWJ1dHRvbj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXggY3FhLWZsZXgtY29sXCI+XG4gICAgICA8bGFiZWwgY2xhc3M9XCJjcWEtdGV4dC1zbSBjcWEtbWItMS41IGNxYS1mb250LW1lZGl1bSBjcWEtdGV4dC1ncmF5LTcwMFwiPlBlcm1pc3Npb248L2xhYmVsPlxuICAgICAgPGRpdiBjbGFzcz1cImNxYS1wdC0wLjVcIj5cbiAgICAgICAgPGNxYS1wZXJtaXNzaW9uLXRvZ2dsZVxuICAgICAgICAgIFt2YWx1ZV09XCJyZWFkV3JpdGVNb2RlXCJcbiAgICAgICAgICAodmFsdWVDaGFuZ2UpPVwib25QZXJtaXNzaW9uQ2hhbmdlKCRldmVudClcIj5cbiAgICAgICAgPC9jcWEtcGVybWlzc2lvbi10b2dnbGU+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cbiAgPCEtLSBWYWx1ZSAtLT5cbiAgPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1mbGV4LWNvbFwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc0Jvb2xlYW47IGVsc2Ugbm9uQm9vbGVhblZhbHVlXCI+XG4gICAgICA8bGFiZWwgY2xhc3M9XCJjcWEtdGV4dC1zbSBjcWEtbWItMS41IGNxYS1mb250LW1lZGl1bSBjcWEtdGV4dC1ncmF5LTcwMFwiPlZhbHVlPC9sYWJlbD5cbiAgICAgIDxjcWEtZHJvcGRvd24tYnV0dG9uXG4gICAgICAgIFtvcHRpb25zXT1cImJvb2xlYW5Ecm9wZG93bk9wdGlvbnNcIlxuICAgICAgICBbc2VsZWN0ZWRWYWx1ZV09XCJ2YWx1ZVwiXG4gICAgICAgIChzZWxlY3Rpb25DaGFuZ2UpPVwib25Cb29sZWFuVmFsdWVDaGFuZ2UoJGV2ZW50KVwiPlxuICAgICAgPC9jcWEtZHJvcGRvd24tYnV0dG9uPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy10ZW1wbGF0ZSAjbm9uQm9vbGVhblZhbHVlPlxuICAgICAgPGNxYS1jdXN0b20taW5wdXRcbiAgICAgICAgbGFiZWw9XCJWYWx1ZVwiXG4gICAgICAgIFt0eXBlXT1cImlzUGFzc3dvcmQgPyAncGFzc3dvcmQnIDogKGlzTnVtYmVyID8gJ251bWJlcicgOiAndGV4dCcpXCJcbiAgICAgICAgW3ZhbHVlXT1cInZhbHVlXCJcbiAgICAgICAgW3BsYWNlaG9sZGVyXT1cInZhbHVlUGxhY2Vob2xkZXJcIlxuICAgICAgICBbcmVxdWlyZWRdPVwiaXNWYWx1ZVJlcXVpcmVkVmlzdWFsbHlcIlxuICAgICAgICBbZnVsbFdpZHRoXT1cInRydWVcIlxuICAgICAgICBbZXJyb3JzXT1cInZhbHVlRXJyb3JzQXJyYXlcIlxuICAgICAgICBpbnB1dElubGluZVN0eWxlPVwiZm9udC1mYW1pbHk6IHVpLW1vbm9zcGFjZSwgU0ZNb25vLVJlZ3VsYXIsIE1lbmxvLCBNb25hY28sIENvbnNvbGFzLCAnTGliZXJhdGlvbiBNb25vJywgbW9ub3NwYWNlO1wiXG4gICAgICAgICh2YWx1ZUNoYW5nZSk9XCJvblZhbHVlQ2hhbmdlKCRldmVudClcIj5cbiAgICAgIDwvY3FhLWN1c3RvbS1pbnB1dD5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L2Rpdj5cblxuICA8IS0tIFRhZ3MgKG9wdGlvbmFsKSDigJQgYmV0d2VlbiBWYWx1ZSBhbmQgRGVzY3JpcHRpb24gcGVyIGRlc2lnbiAtLT5cbiAgPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1mbGV4LWNvbFwiPlxuICAgIDxsYWJlbCBjbGFzcz1cImNxYS10ZXh0LXNtIGNxYS1tYi0xLjUgY3FhLWZvbnQtbWVkaXVtIGNxYS10ZXh0LWdyYXktNzAwXCI+XG4gICAgICBUYWdzIDxzcGFuIGNsYXNzPVwiY3FhLXRleHQteHMgY3FhLWZvbnQtbm9ybWFsIGNxYS10ZXh0LWdyYXktNTAwXCI+KG9wdGlvbmFsIOKAlCBmb3IgZmlsdGVyaW5nICZhbXA7IGdyb3VwaW5nKTwvc3Bhbj5cbiAgICA8L2xhYmVsPlxuICAgIDxsaWItZ2xvYmFsLXZhcmlhYmxlLXRhZ3MtaW5wdXRcbiAgICAgIFt0YWdzXT1cInRhZ3NcIlxuICAgICAgW2F2YWlsYWJsZVRhZ3NdPVwiYXZhaWxhYmxlVGFnc1wiXG4gICAgICAodGFnc0NoYW5nZSk9XCJvblRhZ3NDaGFuZ2UoJGV2ZW50KVwiPlxuICAgIDwvbGliLWdsb2JhbC12YXJpYWJsZS10YWdzLWlucHV0PlxuICA8L2Rpdj5cblxuICA8IS0tIERlc2NyaXB0aW9uIC0tPlxuICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXggY3FhLWZsZXgtY29sXCI+XG4gICAgPGNxYS1jdXN0b20tdGV4dGFyZWFcbiAgICAgIGxhYmVsPVwiRGVzY3JpcHRpb25cIlxuICAgICAgcGxhY2Vob2xkZXI9XCJXaGF0IGlzIHRoaXMgdmFyaWFibGUgdXNlZCBmb3I/XCJcbiAgICAgIFt2YWx1ZV09XCJkZXNjcmlwdGlvblwiXG4gICAgICBbcm93c109XCIyXCJcbiAgICAgIFtmdWxsV2lkdGhdPVwidHJ1ZVwiXG4gICAgICAodmFsdWVDaGFuZ2UpPVwib25EZXNjcmlwdGlvbkNoYW5nZSgkZXZlbnQpXCI+XG4gICAgPC9jcWEtY3VzdG9tLXRleHRhcmVhPlxuICA8L2Rpdj5cblxuPC9kaXY+XG4iXX0=
|