kwikid-forms 0.5.10 → 0.5.12
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/bundles/kwikid-forms.umd.js +201 -149
- package/bundles/kwikid-forms.umd.js.map +1 -1
- package/esm2015/lib/builder/builder-form-editor/builder-form-editor.component.js +29 -22
- package/esm2015/lib/builder/builder-form-list/builder-forms-list.component.js +2 -3
- package/esm2015/lib/builder/builder.component.js +26 -12
- package/esm2015/lib/renderer/config-converter/config-converter.constants.js +7 -1
- package/esm2015/lib/renderer/config-converter/config-converter.js +35 -10
- package/esm2015/lib/renderer/form-view/definitions/form-view.fields.definition.js +1 -1
- package/esm2015/lib/renderer/form-view/form-view.component.js +25 -45
- package/esm2015/lib/renderer/form-view/form-view.module.js +4 -8
- package/esm2015/lib/renderer/form-view/helpers/form-view.fields.helper.js +10 -1
- package/esm2015/lib/renderer/form-view/helpers/form-view.form-validations.helper.js +16 -2
- package/esm2015/lib/renderer/renderer.component.js +31 -30
- package/fesm2015/kwikid-forms.js +168 -117
- package/fesm2015/kwikid-forms.js.map +1 -1
- package/lib/builder/builder-form-editor/builder-form-editor.component.d.ts +4 -4
- package/lib/builder/builder-form-list/builder-forms-list.component.d.ts +0 -1
- package/lib/builder/builder.component.d.ts +4 -2
- package/lib/renderer/config-converter/config-converter.constants.d.ts +6 -0
- package/lib/renderer/config-converter/config-converter.d.ts +1 -0
- package/lib/renderer/form-view/definitions/form-view.fields.definition.d.ts +1 -1
- package/lib/renderer/form-view/form-view.component.d.ts +4 -6
- package/lib/renderer/form-view/form-view.module.d.ts +1 -2
- package/lib/renderer/form-view/helpers/form-view.form-validations.helper.d.ts +2 -1
- package/lib/renderer/renderer.component.d.ts +4 -4
- package/package.json +2 -2
|
@@ -3,15 +3,15 @@ import { Component, Input } from "@angular/core";
|
|
|
3
3
|
import { checkObjectKeyExists, getObjectFromLocalStorage, isNotEmptyValue, logMethod } from "kwikid-toolkit";
|
|
4
4
|
import { convertFormListConfig } from "./builder.helper";
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
|
-
import * as i1 from "
|
|
7
|
-
import * as i2 from "./builder-form-
|
|
8
|
-
import * as i3 from "
|
|
6
|
+
import * as i1 from "kwikui";
|
|
7
|
+
import * as i2 from "./builder-form-list/builder-forms-list.component";
|
|
8
|
+
import * as i3 from "./builder-form-editor/builder-form-editor.component";
|
|
9
9
|
export class KwikIDFormsBuilderComponent {
|
|
10
|
-
constructor() {
|
|
10
|
+
constructor(loaderService) {
|
|
11
|
+
this.loaderService = loaderService;
|
|
11
12
|
this.userConfig = {};
|
|
12
13
|
this.formsList = [];
|
|
13
14
|
this.activeFormConfig = undefined;
|
|
14
|
-
this.loader = false;
|
|
15
15
|
}
|
|
16
16
|
ngOnInit() {
|
|
17
17
|
const formStepKey = localStorage.getItem("formKey");
|
|
@@ -42,7 +42,7 @@ export class KwikIDFormsBuilderComponent {
|
|
|
42
42
|
handleOnClickSetActiveForm(selectedFormKey) {
|
|
43
43
|
var _a, _b, _c, _d;
|
|
44
44
|
return __awaiter(this, void 0, void 0, function* () {
|
|
45
|
-
this.
|
|
45
|
+
this.toggleLoader(true);
|
|
46
46
|
const activeFormConfig = this.formsList.find((form) => {
|
|
47
47
|
if (form.key === selectedFormKey) {
|
|
48
48
|
return form;
|
|
@@ -105,7 +105,7 @@ export class KwikIDFormsBuilderComponent {
|
|
|
105
105
|
}
|
|
106
106
|
}
|
|
107
107
|
this.activeFormConfig = Object.assign(Object.assign({}, activeFormConfig), formConfig);
|
|
108
|
-
this.
|
|
108
|
+
this.toggleLoader(false);
|
|
109
109
|
});
|
|
110
110
|
}
|
|
111
111
|
/**
|
|
@@ -120,9 +120,20 @@ export class KwikIDFormsBuilderComponent {
|
|
|
120
120
|
return form;
|
|
121
121
|
});
|
|
122
122
|
}
|
|
123
|
+
toggleLoader(loader) {
|
|
124
|
+
if (loader) {
|
|
125
|
+
this.loaderService.show({
|
|
126
|
+
fullscreen: true,
|
|
127
|
+
loaderText: "Please wait"
|
|
128
|
+
});
|
|
129
|
+
}
|
|
130
|
+
else {
|
|
131
|
+
this.loaderService.hide();
|
|
132
|
+
}
|
|
133
|
+
}
|
|
123
134
|
}
|
|
124
|
-
/** @nocollapse */ KwikIDFormsBuilderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: KwikIDFormsBuilderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
125
|
-
/** @nocollapse */ KwikIDFormsBuilderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: KwikIDFormsBuilderComponent, selector: "kwikid-forms-builder", inputs: { userConfig: "userConfig" }, ngImport: i0, template: "<div class=\"container\">\n <kwikid-builder-forms-list\n [activeFormConfig]=\"this.activeFormConfig\"\n [formsList]=\"this.formsList\"\n (getFormsList)=\"this.handleGetFormsList($event)\"\n (onClickSetActiveForm)=\"this.handleOnClickSetActiveForm($event)\"\n ></kwikid-builder-forms-list>\n <kwikid-builder-form-editor\n [activeFormConfig]=\"activeFormConfig\"\n (onClickSaveActiveFormConfig)=\"\n this.handleOnClickSaveActiveFormConfig($event)\n \"\n ></kwikid-builder-form-editor>\n</div>\n\n<kwikui-loader\n
|
|
135
|
+
/** @nocollapse */ KwikIDFormsBuilderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: KwikIDFormsBuilderComponent, deps: [{ token: i1.KwikUILoaderService }], target: i0.ɵɵFactoryTarget.Component });
|
|
136
|
+
/** @nocollapse */ KwikIDFormsBuilderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: KwikIDFormsBuilderComponent, selector: "kwikid-forms-builder", inputs: { userConfig: "userConfig" }, ngImport: i0, template: "<div class=\"container\">\n <kwikid-builder-forms-list\n [activeFormConfig]=\"this.activeFormConfig\"\n [formsList]=\"this.formsList\"\n (getFormsList)=\"this.handleGetFormsList($event)\"\n (onClickSetActiveForm)=\"this.handleOnClickSetActiveForm($event)\"\n ></kwikid-builder-forms-list>\n <kwikid-builder-form-editor\n [activeFormConfig]=\"activeFormConfig\"\n (onClickSaveActiveFormConfig)=\"\n this.handleOnClickSaveActiveFormConfig($event)\n \"\n ></kwikid-builder-form-editor>\n</div>\n\n<kwikui-loader\n></kwikui-loader>\n", styles: ["::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{border-radius:10px}::-webkit-scrollbar-thumb{background:lightgray;border-radius:10px}::-webkit-scrollbar-thumb:hover{background:gray}input[type=text],input[type=number]{width:100%;padding:8px 12px;border:1px solid #ccc;border-radius:4px;box-sizing:border-box;-webkit-appearance:auto!important;appearance:auto!important}input[type=checkbox]{-webkit-appearance:auto!important;appearance:auto!important;width:1rem;height:1rem}select{width:100%;padding:8px 12px;border:1px solid #ccc;border-radius:4px;box-sizing:border-box}textarea{overflow-wrap:anywhere;resize:none;unicode-bidi:embed;white-space:pre-wrap}button{display:inline-block;padding:8px 12px;background-color:#007bff;color:#fff;text-decoration:none;border-radius:4px;border:none;cursor:pointer}button:hover{background-color:#0069d9}button:active{background-color:#0056b3}button:focus{outline:none}button.secondary{padding:7px 11px;border:1px solid #007bff;background-color:#fff;color:#007bff}button.secondary:hover{background-color:#b7daff}button.secondary:active{background-color:#b7daff}button.secondary:focus{outline:none}.field-container{display:flex}.field-container label{color:gray}.field-container.checkbox{flex-direction:row;align-items:center;justify-content:center;padding:8px 12px;margin:auto}.field-container.options,.field-container.number,.field-container.text{flex-direction:column}.disclaimer{display:flex;flex-direction:column;align-content:center;justify-content:center;align-items:center;color:#121212;width:100%;height:100%}.disclaimer>*:not(:last-child){margin-bottom:1.5rem}.disclaimer .icon{width:3rem;height:3rem;display:flex;flex-direction:row;align-content:center;justify-content:center;align-items:center}.disclaimer.no-form-selected h1{transform:scaleX(-1)}.disclaimer h1{font-size:5rem;font-weight:100}.disclaimer p{font-size:1rem}\n", ":host{all:unset;position:relative;width:100%;height:100%}.container{width:100%;height:100%;display:flex;flex-direction:row;justify-content:space-between;align-items:stretch;padding:1rem}.container>*:not(:last-child){margin-right:1rem}\n"], components: [{ type: i2.KwikIDBuilderFormsListComponent, selector: "kwikid-builder-forms-list", inputs: ["activeFormConfig", "formsList"], outputs: ["onClickSetActiveForm", "getFormsList"] }, { type: i3.KwikIDBuilderFormEditorComponent, selector: "kwikid-builder-form-editor", inputs: ["activeFormConfig"], outputs: ["onClickSaveActiveFormConfig"] }, { type: i1.KwikUILoaderComponent, selector: "kwikui-loader" }] });
|
|
126
137
|
__decorate([
|
|
127
138
|
logMethod
|
|
128
139
|
], KwikIDFormsBuilderComponent.prototype, "fetchFormConfig", null);
|
|
@@ -135,6 +146,9 @@ __decorate([
|
|
|
135
146
|
__decorate([
|
|
136
147
|
logMethod
|
|
137
148
|
], KwikIDFormsBuilderComponent.prototype, "handleOnClickSaveActiveFormConfig", null);
|
|
149
|
+
__decorate([
|
|
150
|
+
logMethod
|
|
151
|
+
], KwikIDFormsBuilderComponent.prototype, "toggleLoader", null);
|
|
138
152
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: KwikIDFormsBuilderComponent, decorators: [{
|
|
139
153
|
type: Component,
|
|
140
154
|
args: [{
|
|
@@ -142,7 +156,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
|
|
|
142
156
|
templateUrl: "./builder.component.html",
|
|
143
157
|
styleUrls: ["./shared.scss", "./builder.component.scss"]
|
|
144
158
|
}]
|
|
145
|
-
}], ctorParameters: function () { return []; }, propDecorators: { userConfig: [{
|
|
159
|
+
}], ctorParameters: function () { return [{ type: i1.KwikUILoaderService }]; }, propDecorators: { userConfig: [{
|
|
146
160
|
type: Input
|
|
147
|
-
}], fetchFormConfig: [], handleGetFormsList: [], handleOnClickSetActiveForm: [], handleOnClickSaveActiveFormConfig: [] } });
|
|
148
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rd2lraWQtZm9ybXMvc3JjL2xpYi9idWlsZGVyL2J1aWxkZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva3dpa2lkLWZvcm1zL3NyYy9saWIvYnVpbGRlci9idWlsZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUN6RCxPQUFPLEVBQ0wsb0JBQW9CLEVBRXBCLHlCQUF5QixFQUN6QixlQUFlLEVBQ2YsU0FBUyxFQUNWLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7Ozs7O0FBT3pELE1BQU0sT0FBTywyQkFBMkI7SUFVdEM7UUFSQSxlQUFVLEdBQVEsRUFBRSxDQUFDO1FBRXJCLGNBQVMsR0FBRyxFQUFFLENBQUM7UUFFZixxQkFBZ0IsR0FBUSxTQUFTLENBQUM7UUFFbEMsV0FBTSxHQUFZLEtBQUssQ0FBQztJQUVULENBQUM7SUFFaEIsUUFBUTtRQUNOLE1BQU0sV0FBVyxHQUFHLFlBQVksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFcEQsSUFDRSxlQUFlLENBQUMsV0FBVyxDQUFDO1lBQzVCLG9CQUFvQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsY0FBYyxFQUFFLFdBQVcsQ0FBQyxFQUNqRTtZQUNBLElBQUksQ0FBQyxTQUFTLEdBQUcscUJBQXFCLENBQ3BDLElBQUksQ0FBQyxVQUFVLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxDQUM1QyxDQUFDO1NBQ0g7YUFBTSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxjQUFjLENBQUMsRUFBRTtZQUN4RCxJQUFJ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Q0FBQzs7S0FDckI7SUFFRDs7T0FFRztJQUVILGlDQUFpQyxDQUFDLGdCQUFxQjtRQUNyRCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsZ0JBQWdCLENBQUM7UUFFekMsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQVMsRUFBRSxFQUFFO1lBQ2hELElBQUksSUFBSSxDQUFDLEdBQUcsS0FBSyxnQkFBZ0IsQ0FBQyxHQUFHLEVBQUU7Z0JBQ3JDLE9BQU8sZ0JBQWdCLENBQUM7YUFDekI7WUFDRCxPQUFPLElBQUksQ0FBQztRQUNkLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7NElBdkpVLDJCQUEyQjtnSUFBM0IsMkJBQTJCLGtHQ2Z4Qyx1b0JBb0JBO0FEMkJFO0lBREMsU0FBUztrRUFLVDtBQU1EO0lBREMsU0FBUztxRUFHVDtBQUdEO0lBREMsU0FBUzs2RUEwRlQ7QUFNRDtJQURDLFNBQVM7b0ZBVVQ7NEZBdkpVLDJCQUEyQjtrQkFMdkMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsc0JBQXNCO29CQUNoQyxXQUFXLEVBQUUsMEJBQTBCO29CQUN2QyxTQUFTLEVBQUUsQ0FBQyxlQUFlLEVBQUUsMEJBQTBCLENBQUM7aUJBQ3pEOzBFQUdDLFVBQVU7c0JBRFQsS0FBSztnQkErQkEsZUFBZSxNQVVyQixrQkFBa0IsTUFLWiwwQkFBMEIsTUErRmhDLGlDQUFpQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQge1xuICBjaGVja09iamVjdEtleUV4aXN0cyxcbiAgZ2V0T2JqZWN0RGVlcENvcHksXG4gIGdldE9iamVjdEZyb21Mb2NhbFN0b3JhZ2UsXG4gIGlzTm90RW1wdHlWYWx1ZSxcbiAgbG9nTWV0aG9kXG59IGZyb20gXCJrd2lraWQtdG9vbGtpdFwiO1xuaW1wb3J0IHsgY29udmVydEZvcm1MaXN0Q29uZmlnIH0gZnJvbSBcIi4vYnVpbGRlci5oZWxwZXJcIjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiBcImt3aWtpZC1mb3Jtcy1idWlsZGVyXCIsXG4gIHRlbXBsYXRlVXJsOiBcIi4vYnVpbGRlci5jb21wb25lbnQuaHRtbFwiLFxuICBzdHlsZVVybHM6IFtcIi4vc2hhcmVkLnNjc3NcIiwgXCIuL2J1aWxkZXIuY29tcG9uZW50LnNjc3NcIl1cbn0pXG5leHBvcnQgY2xhc3MgS3dpa0lERm9ybXNCdWlsZGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KClcbiAgdXNlckNvbmZpZzogYW55ID0ge307XG5cbiAgZm9ybXNMaXN0ID0gW107XG5cbiAgYWN0aXZlRm9ybUNvbmZpZzogYW55ID0gdW5kZWZpbmVkO1xuXG4gIGxvYWRlcjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKCkge31cblxuICBuZ09uSW5pdCgpIHtcbiAgICBjb25zdCBmb3JtU3RlcEtleSA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwiZm9ybUtleVwiKTtcblxuICAgIGlmIChcbiAgICAgIGlzTm90RW1wdHlWYWx1ZShmb3JtU3RlcEtleSkgJiZcbiAgICAgIGNoZWNrT2JqZWN0S2V5RXhpc3RzKHRoaXMudXNlckNvbmZpZy51c2VyRm9ybUZpZWxkcywgZm9ybVN0ZXBLZXkpXG4gICAgKSB7XG4gICAgICB0aGlzLmZvcm1zTGlzdCA9IGNvbnZlcnRGb3JtTGlzdENvbmZpZyhcbiAgICAgICAgdGhpcy51c2VyQ29uZmlnLnVzZXJGb3JtRmllbGRzW2Zvcm1TdGVwS2V5XVxuICAgICAgKTtcbiAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkodGhpcy51c2VyQ29uZmlnLnVzZXJGb3JtRmllbGRzKSkge1xuICAgICAgdGhpcy5mb3Jtc0xpc3QgPSBjb252ZXJ0Rm9ybUxpc3RDb25maWcodGhpcy51c2VyQ29uZmlnLnVzZXJGb3JtRmllbGRzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgdXNlckZvcm1GaWVsZHMgZG9lc24ndCBoYXZlIGEgZm9ybSBkZWZpbmVkIHdpdGgga2V5OiAke2Zvcm1TdGVwS2V5fWBcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgQGxvZ01ldGhvZFxuICBhc3luYyBmZXRjaEZvcm1Db25maWcodXJsOiBzdHJpbmcpIHtcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKHVybCwgeyBtZXRob2Q6IFwiR0VUXCIgfSk7XG4gICAgY29uc3QgZGF0YSA9IGF3YWl0IHJlc3BvbnNlLmpzb24oKTtcbiAgICByZXR1cm4gZGF0YTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGb3JtcyBMaXN0IExpc3RlbmVyc1xuICAgKi9cbiAgQGxvZ01ldGhvZFxuICBoYW5kbGVHZXRGb3Jtc0xpc3QoZTogYW55KSB7XG4gICAgdGhpcy5mb3Jtc0xpc3QgPSBlLmZvcm1zTGlzdDtcbiAgfVxuXG4gIEBsb2dNZXRob2RcbiAgYXN5bmMgaGFuZGxlT25DbGlja1NldEFjdGl2ZUZvcm0oc2VsZWN0ZWRGb3JtS2V5OiBzdHJpbmcpIHtcbiAgICB0aGlzLmxvYWRlciA9IHRydWU7XG5cbiAgICBjb25zdCBhY3RpdmVGb3JtQ29uZmlnID0gdGhpcy5mb3Jtc0xpc3QuZmluZCgoZm9ybSkgPT4ge1xuICAgICAgaWYgKGZvcm0ua2V5ID09PSBzZWxlY3RlZEZvcm1LZXkpIHtcbiAgICAgICAgcmV0dXJuIGZvcm07XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBsZXQgZm9ybUNvbmZpZzogYW55ID0gdW5kZWZpbmVkO1xuXG4gICAgaWYgKGdldE9iamVjdEZyb21Mb2NhbFN0b3JhZ2UoYWN0aXZlRm9ybUNvbmZpZy5rZXkpKSB7XG4gICAgICBmb3JtQ29uZmlnID0gZ2V0T2JqZWN0RnJvbUxvY2FsU3RvcmFnZShhY3RpdmVGb3JtQ29uZmlnLmtleSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChjaGVja09iamVjdEtleUV4aXN0cyhhY3RpdmVGb3JtQ29uZmlnLCBcInByb3BzXCIpKSB7XG4gICAgICAgIGlmIChjaGVja09iamVjdEtleUV4aXN0cyhhY3RpdmVGb3JtQ29uZmlnW1wicHJvcHNcIl0sIFwidXJsXCIpKSB7XG4gICAgICAgICAgY29uc3QgZm9ybUNvbmZpZ0Zyb21VcmwgPSBhd2FpdCB0aGlzLmZldGNoRm9ybUNvbmZpZyhcbiAgICAgICAgICAgIGFjdGl2ZUZvcm1Db25maWdbXCJwcm9wc1wiXS51cmxcbiAgICAgICAgICApO1xuICAgICAgICAgIGZvcm1Db25maWcgPSB7XG4gICAgICAgICAgICAuLi5hY3RpdmVGb3JtQ29uZmlnLFxuICAgICAgICAgICAgLi4uZm9ybUNvbmZpZ0Zyb21VcmxcbiAgICAgICAgICB9O1xuICAgICAgICB9IGVsc2UgaWYgKFxuICAgICAgICAgIGNoZWNrT2JqZWN0S2V5RXhpc3RzKGFjdGl2ZUZvcm1Db25maWdbXCJwcm9wc1wiXSwgXCJwYXRoXCIpICYmXG4gICAgICAgICAgY2hlY2tPYmplY3RLZXlFeGlzdHModGhpcy51c2VyQ29uZmlnLCBcImJhY2tlbmRcIikgJiZcbiAgICAgICAgICBjaGVja09iamVjdEtleUV4aXN0cyh0aGlzLnVzZXJDb25maWcuYmFja2VuZCwgXCJDT05GSUdfQkFTRV9VUkxcIilcbiAgICAgICAgKSB7XG4gICAgICAgICAgY29uc3QgdXJsID0gYCR7dGhpcy51c2VyQ29uZmlnPy5iYWNrZW5kPy5DT05GSUdfQkFTRV9VUkx9JHthY3RpdmVGb3JtQ29uZmlnW1wicHJvcHNcIl0ucGF0aH1gO1xuICAgICAgICAgIGNvbnN0IGZvcm1Db25maWdGcm9tUGF0aCA9IGF3YWl0IHRoaXMuZmV0Y2hGb3JtQ29uZmlnKHVybCk7XG4gICAgICAgICAgZm9ybUNvbmZpZyA9IHtcbiAgICAgICAgICAgIC4uLmFjdGl2ZUZvcm1Db25maWcsXG4gICAgICAgICAgICAuLi5mb3JtQ29uZmlnRnJvbVBhdGhcbiAgICAgICAgICB9O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGlmIChjaGVja09iamVjdEtleUV4aXN0cyhhY3RpdmVGb3JtQ29uZmlnLCBcImZpZWxkc1wiKSkge1xuICAgICAgICAgICAgZm9ybUNvbmZpZyA9IGFjdGl2ZUZvcm1Db25maWc7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICAgIFwiTm8gRGlyZWN0IFVSTCwgTm8gUGF0aCB3aXRoIEJhc2UgVVJMLCBObyBmaWVsZHMga2V5IGZvdW5kIGluIEFjdGl2ZSBGb3JtJ3MgQ29uZmlnIVwiXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChjaGVja09iamVjdEtleUV4aXN0cyhhY3RpdmVGb3JtQ29uZmlnLCBcImZvcm1Db250ZW50XCIpKSB7XG4gICAgICAgIGlmIChjaGVja09iamVjdEtleUV4aXN0cyhhY3RpdmVGb3JtQ29uZmlnLmZvcm1Db250ZW50LCBcInVybFwiKSkge1xuICAgICAgICAgIGNvbnN0IGZvcm1Db25maWdGcm9tVXJsID0gYXdhaXQgdGhpcy5mZXRjaEZvcm1Db25maWcoXG4gICAgICAgICAgICBhY3RpdmVGb3JtQ29uZmlnLmZvcm1Db250ZW50LnVybFxuICAgICAgICAgICk7XG4gICAgICAgICAgZm9ybUNvbmZpZyA9IHtcbiAgICAgICAgICAgIC4uLmFjdGl2ZUZvcm1Db25maWcsXG4gICAgICAgICAgICAuLi5mb3JtQ29uZmlnRnJvbVVybFxuICAgICAgICAgIH07XG4gICAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgICAgY2hlY2tPYmplY3RLZXlFeGlzdHMoYWN0aXZlRm9ybUNvbmZpZy5mb3JtQ29udGVudCwgXCJwYXRoXCIpICYmXG4gICAgICAgICAgY2hlY2tPYmplY3RLZXlFeGlzdHModGhpcy51c2VyQ29uZmlnLCBcImJhY2tlbmRcIikgJiZcbiAgICAgICAgICBjaGVja09iamVjdEtleUV4aXN0cyh0aGlzLnVzZXJDb25maWcuYmFja2VuZCwgXCJDT05GSUdfQkFTRV9VUkxcIilcbiAgICAgICAgKSB7XG4gICAgICAgICAgY29uc3QgdXJsID0gYCR7dGhpcy51c2VyQ29uZmlnPy5iYWNrZW5kPy5DT05GSUdfQkFTRV9VUkx9JHthY3RpdmVGb3JtQ29uZmlnW1wicHJvcHNcIl0ucGF0aH1gO1xuICAgICAgICAgIGNvbnN0IGZvcm1Db25maWdGcm9tUGF0aCA9IGF3YWl0IHRoaXMuZmV0Y2hGb3JtQ29uZmlnKHVybCk7XG4gICAgICAgICAgZm9ybUNvbmZpZyA9IHtcbiAgICAgICAgICAgIC4uLmFjdGl2ZUZvcm1Db25maWcsXG4gICAgICAgICAgICAuLi5mb3JtQ29uZmlnRnJvbVBhdGhcbiAgICAgICAgICB9O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGlmIChjaGVja09iamVjdEtleUV4aXN0cyhhY3RpdmVGb3JtQ29uZmlnLCBcImZpZWxkc1wiKSkge1xuICAgICAgICAgICAgZm9ybUNvbmZpZyA9IGFjdGl2ZUZvcm1Db25maWc7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICAgIFwiTm8gRGlyZWN0IFVSTCwgTm8gUGF0aCB3aXRoIEJhc2UgVVJMLCBObyBmaWVsZHMga2V5IGZvdW5kIGluIEFjdGl2ZSBGb3JtJ3MgQ29uZmlnIVwiXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKGNoZWNrT2JqZWN0S2V5RXhpc3RzKGFjdGl2ZUZvcm1Db25maWcsIFwiZmllbGRzXCIpKSB7XG4gICAgICAgICAgZm9ybUNvbmZpZyA9IGFjdGl2ZUZvcm1Db25maWc7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgIFwiTm8gRGlyZWN0IFVSTCwgTm8gUGF0aCB3aXRoIEJhc2UgVVJMLCBObyBmaWVsZHMga2V5IGZvdW5kIGluIEFjdGl2ZSBGb3JtJ3MgQ29uZmlnIVwiXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuYWN0aXZlRm9ybUNvbmZpZyA9IHtcbiAgICAgIC4uLmFjdGl2ZUZvcm1Db25maWcsXG4gICAgICAuLi5mb3JtQ29uZmlnXG4gICAgfTtcblxuICAgIHRoaXMubG9hZGVyID0gZmFsc2U7XG4gIH1cblxuICAvKipcbiAgICogRm9ybSBFZGl0b3IgTGlzdGVuZXJzXG4gICAqL1xuICBAbG9nTWV0aG9kXG4gIGhhbmRsZU9uQ2xpY2tTYXZlQWN0aXZlRm9ybUNvbmZpZyhhY3RpdmVGb3JtQ29uZmlnOiBhbnkpIHtcbiAgICB0aGlzLmFjdGl2ZUZvcm1Db25maWcgPSBhY3RpdmVGb3JtQ29uZmlnO1xuXG4gICAgdGhpcy5mb3Jtc0xpc3QgPSB0aGlzLmZvcm1zTGlzdC5tYXAoKGZvcm06IGFueSkgPT4ge1xuICAgICAgaWYgKGZvcm0ua2V5ID09PSBhY3RpdmVGb3JtQ29uZmlnLmtleSkge1xuICAgICAgICByZXR1cm4gYWN0aXZlRm9ybUNvbmZpZztcbiAgICAgIH1cbiAgICAgIHJldHVybiBmb3JtO1xuICAgIH0pO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiY29udGFpbmVyXCI+XG4gIDxrd2lraWQtYnVpbGRlci1mb3Jtcy1saXN0XG4gICAgW2FjdGl2ZUZvcm1Db25maWddPVwidGhpcy5hY3RpdmVGb3JtQ29uZmlnXCJcbiAgICBbZm9ybXNMaXN0XT1cInRoaXMuZm9ybXNMaXN0XCJcbiAgICAoZ2V0Rm9ybXNMaXN0KT1cInRoaXMuaGFuZGxlR2V0Rm9ybXNMaXN0KCRldmVudClcIlxuICAgIChvbkNsaWNrU2V0QWN0aXZlRm9ybSk9XCJ0aGlzLmhhbmRsZU9uQ2xpY2tTZXRBY3RpdmVGb3JtKCRldmVudClcIlxuICA+PC9rd2lraWQtYnVpbGRlci1mb3Jtcy1saXN0PlxuICA8a3dpa2lkLWJ1aWxkZXItZm9ybS1lZGl0b3JcbiAgICBbYWN0aXZlRm9ybUNvbmZpZ109XCJhY3RpdmVGb3JtQ29uZmlnXCJcbiAgICAob25DbGlja1NhdmVBY3RpdmVGb3JtQ29uZmlnKT1cIlxuICAgICAgdGhpcy5oYW5kbGVPbkNsaWNrU2F2ZUFjdGl2ZUZvcm1Db25maWcoJGV2ZW50KVxuICAgIFwiXG4gID48L2t3aWtpZC1idWlsZGVyLWZvcm0tZWRpdG9yPlxuPC9kaXY+XG5cbjxrd2lrdWktbG9hZGVyXG4gIFtsb2FkZXJUZXh0XT1cIidQbGVhc2Ugd2FpdCdcIlxuICBbc2hvd0xvYWRlcl09XCJsb2FkZXJcIlxuICBbZnVsbHNjcmVlbl09XCJ0cnVlXCJcbj48L2t3aWt1aS1sb2FkZXI+XG4iXX0=
|
|
161
|
+
}], fetchFormConfig: [], handleGetFormsList: [], handleOnClickSetActiveForm: [], handleOnClickSaveActiveFormConfig: [], toggleLoader: [] } });
|
|
162
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rd2lraWQtZm9ybXMvc3JjL2xpYi9idWlsZGVyL2J1aWxkZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva3dpa2lkLWZvcm1zL3NyYy9saWIvYnVpbGRlci9idWlsZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUN6RCxPQUFPLEVBQ0wsb0JBQW9CLEVBRXBCLHlCQUF5QixFQUN6QixlQUFlLEVBQ2YsU0FBUyxFQUNWLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7Ozs7O0FBUXpELE1BQU0sT0FBTywyQkFBMkI7SUFRdEMsWUFBbUIsYUFBa0M7UUFBbEMsa0JBQWEsR0FBYixhQUFhLENBQXFCO1FBTnJELGVBQVUsR0FBUSxFQUFFLENBQUM7UUFFckIsY0FBUyxHQUFHLEVBQUUsQ0FBQztRQUVmLHFCQUFnQixHQUFRLFNBQVMsQ0FBQztJQUVzQixDQUFDO0lBRXpELFFBQVE7UUFDTixNQUFNLFdBQVcsR0FBRyxZQUFZLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRXBELElBQ0UsZUFBZSxDQUFDLFdBQVcsQ0FBQztZQUM1QixvQkFBb0IsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGNBQWMsRUFBRSxXQUFXLENBQUMsRUFDakU7WUFDQSxJQUFJLENBQUMsU0FBUyxHQUFHLHFCQUFxQixDQUNwQyxJQUFJLENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUMsQ0FDNUMsQ0FBQztTQUNIO2FBQU0sSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsY0FBYyxDQUFD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b250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQge1xuICBjaGVja09iamVjdEtleUV4aXN0cyxcbiAgZ2V0T2JqZWN0RGVlcENvcHksXG4gIGdldE9iamVjdEZyb21Mb2NhbFN0b3JhZ2UsXG4gIGlzTm90RW1wdHlWYWx1ZSxcbiAgbG9nTWV0aG9kXG59IGZyb20gXCJrd2lraWQtdG9vbGtpdFwiO1xuaW1wb3J0IHsgY29udmVydEZvcm1MaXN0Q29uZmlnIH0gZnJvbSBcIi4vYnVpbGRlci5oZWxwZXJcIjtcbmltcG9ydCB7IEt3aWtVSUxvYWRlclNlcnZpY2UgfSBmcm9tIFwia3dpa3VpXCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJrd2lraWQtZm9ybXMtYnVpbGRlclwiLFxuICB0ZW1wbGF0ZVVybDogXCIuL2J1aWxkZXIuY29tcG9uZW50Lmh0bWxcIixcbiAgc3R5bGVVcmxzOiBbXCIuL3NoYXJlZC5zY3NzXCIsIFwiLi9idWlsZGVyLmNvbXBvbmVudC5zY3NzXCJdXG59KVxuZXhwb3J0IGNsYXNzIEt3aWtJREZvcm1zQnVpbGRlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpXG4gIHVzZXJDb25maWc6IGFueSA9IHt9O1xuXG4gIGZvcm1zTGlzdCA9IFtdO1xuXG4gIGFjdGl2ZUZvcm1Db25maWc6IGFueSA9IHVuZGVmaW5lZDtcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgbG9hZGVyU2VydmljZTogS3dpa1VJTG9hZGVyU2VydmljZSkge31cblxuICBuZ09uSW5pdCgpIHtcbiAgICBjb25zdCBmb3JtU3RlcEtleSA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwiZm9ybUtleVwiKTtcblxuICAgIGlmIChcbiAgICAgIGlzTm90RW1wdHlWYWx1ZShmb3JtU3RlcEtleSkgJiZcbiAgICAgIGNoZWNrT2JqZWN0S2V5RXhpc3RzKHRoaXMudXNlckNvbmZpZy51c2VyRm9ybUZpZWxkcywgZm9ybVN0ZXBLZXkpXG4gICAgKSB7XG4gICAgICB0aGlzLmZvcm1zTGlzdCA9IGNvbnZlcnRGb3JtTGlzdENvbmZpZyhcbiAgICAgICAgdGhpcy51c2VyQ29uZmlnLnVzZXJGb3JtRmllbGRzW2Zvcm1TdGVwS2V5XVxuICAgICAgKTtcbiAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkodGhpcy51c2VyQ29uZmlnLnVzZXJGb3JtRmllbGRzKSkge1xuICAgICAgdGhpcy5mb3Jtc0xpc3QgPSBjb252ZXJ0Rm9ybUxpc3RDb25maWcodGhpcy51c2VyQ29uZmlnLnVzZXJGb3JtRmllbGRzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgdXNlckZvcm1GaWVsZHMgZG9lc24ndCBoYXZlIGEgZm9ybSBkZWZpbmVkIHdpdGgga2V5OiAke2Zvcm1TdGVwS2V5fWBcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgQGxvZ01ldGhvZFxuICBhc3luYyBmZXRjaEZvcm1Db25maWcodXJsOiBzdHJpbmcpIHtcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKHVybCwgeyBtZXRob2Q6IFwiR0VUXCIgfSk7XG4gICAgY29uc3QgZGF0YSA9IGF3YWl0IHJlc3BvbnNlLmpzb24oKTtcbiAgICByZXR1cm4gZGF0YTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGb3JtcyBMaXN0IExpc3RlbmVyc1xuICAgKi9cbiAgQGxvZ01ldGhvZFxuICBoYW5kbGVHZXRGb3Jtc0xpc3QoZTogYW55KSB7XG4gICAgdGhpcy5mb3Jtc0xpc3QgPSBlLmZvcm1zTGlzdDtcbiAgfVxuXG4gIEBsb2dNZXRob2RcbiAgYXN5bmMgaGFuZGxlT25DbGlja1NldEFjdGl2ZUZvcm0oc2VsZWN0ZWRGb3JtS2V5OiBzdHJpbmcpIHtcbiAgICB0aGlzLnRvZ2dsZUxvYWRlcih0cnVlKTtcblxuICAgIGNvbnN0IGFjdGl2ZUZvcm1Db25maWcgPSB0aGlzLmZvcm1zTGlzdC5maW5kKChmb3JtKSA9PiB7XG4gICAgICBpZiAoZm9ybS5rZXkgPT09IHNlbGVjdGVkRm9ybUtleSkge1xuICAgICAgICByZXR1cm4gZm9ybTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGxldCBmb3JtQ29uZmlnOiBhbnkgPSB1bmRlZmluZWQ7XG5cbiAgICBpZiAoZ2V0T2JqZWN0RnJvbUxvY2FsU3RvcmFnZShhY3RpdmVGb3JtQ29uZmlnLmtleSkpIHtcbiAgICAgIGZvcm1Db25maWcgPSBnZXRPYmplY3RGcm9tTG9jYWxTdG9yYWdlKGFjdGl2ZUZvcm1Db25maWcua2V5KTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKGNoZWNrT2JqZWN0S2V5RXhpc3RzKGFjdGl2ZUZvcm1Db25maWcsIFwicHJvcHNcIikpIHtcbiAgICAgICAgaWYgKGNoZWNrT2JqZWN0S2V5RXhpc3RzKGFjdGl2ZUZvcm1Db25maWdbXCJwcm9wc1wiXSwgXCJ1cmxcIikpIHtcbiAgICAgICAgICBjb25zdCBmb3JtQ29uZmlnRnJvbVVybCA9IGF3YWl0IHRoaXMuZmV0Y2hGb3JtQ29uZmlnKFxuICAgICAgICAgICAgYWN0aXZlRm9ybUNvbmZpZ1tcInByb3BzXCJdLnVybFxuICAgICAgICAgICk7XG4gICAgICAgICAgZm9ybUNvbmZpZyA9IHtcbiAgICAgICAgICAgIC4uLmFjdGl2ZUZvcm1Db25maWcsXG4gICAgICAgICAgICAuLi5mb3JtQ29uZmlnRnJvbVVybFxuICAgICAgICAgIH07XG4gICAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgICAgY2hlY2tPYmplY3RLZXlFeGlzdHMoYWN0aXZlRm9ybUNvbmZpZ1tcInByb3BzXCJdLCBcInBhdGhcIikgJiZcbiAgICAgICAgICBjaGVja09iamVjdEtleUV4aXN0cyh0aGlzLnVzZXJDb25maWcsIFwiYmFja2VuZFwiKSAmJlxuICAgICAgICAgIGNoZWNrT2JqZWN0S2V5RXhpc3RzKHRoaXMudXNlckNvbmZpZy5iYWNrZW5kLCBcIkNPTkZJR19CQVNFX1VSTFwiKVxuICAgICAgICApIHtcbiAgICAgICAgICBjb25zdCB1cmwgPSBgJHt0aGlzLnVzZXJDb25maWc/LmJhY2tlbmQ/LkNPTkZJR19CQVNFX1VSTH0ke2FjdGl2ZUZvcm1Db25maWdbXCJwcm9wc1wiXS5wYXRofWA7XG4gICAgICAgICAgY29uc3QgZm9ybUNvbmZpZ0Zyb21QYXRoID0gYXdhaXQgdGhpcy5mZXRjaEZvcm1Db25maWcodXJsKTtcbiAgICAgICAgICBmb3JtQ29uZmlnID0ge1xuICAgICAgICAgICAgLi4uYWN0aXZlRm9ybUNvbmZpZyxcbiAgICAgICAgICAgIC4uLmZvcm1Db25maWdGcm9tUGF0aFxuICAgICAgICAgIH07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaWYgKGNoZWNrT2JqZWN0S2V5RXhpc3RzKGFjdGl2ZUZvcm1Db25maWcsIFwiZmllbGRzXCIpKSB7XG4gICAgICAgICAgICBmb3JtQ29uZmlnID0gYWN0aXZlRm9ybUNvbmZpZztcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgICAgXCJObyBEaXJlY3QgVVJMLCBObyBQYXRoIHdpdGggQmFzZSBVUkwsIE5vIGZpZWxkcyBrZXkgZm91bmQgaW4gQWN0aXZlIEZvcm0ncyBDb25maWchXCJcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKGNoZWNrT2JqZWN0S2V5RXhpc3RzKGFjdGl2ZUZvcm1Db25maWcsIFwiZm9ybUNvbnRlbnRcIikpIHtcbiAgICAgICAgaWYgKGNoZWNrT2JqZWN0S2V5RXhpc3RzKGFjdGl2ZUZvcm1Db25maWcuZm9ybUNvbnRlbnQsIFwidXJsXCIpKSB7XG4gICAgICAgICAgY29uc3QgZm9ybUNvbmZpZ0Zyb21VcmwgPSBhd2FpdCB0aGlzLmZldGNoRm9ybUNvbmZpZyhcbiAgICAgICAgICAgIGFjdGl2ZUZvcm1Db25maWcuZm9ybUNvbnRlbnQudXJsXG4gICAgICAgICAgKTtcbiAgICAgICAgICBmb3JtQ29uZmlnID0ge1xuICAgICAgICAgICAgLi4uYWN0aXZlRm9ybUNvbmZpZyxcbiAgICAgICAgICAgIC4uLmZvcm1Db25maWdGcm9tVXJsXG4gICAgICAgICAgfTtcbiAgICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgICBjaGVja09iamVjdEtleUV4aXN0cyhhY3RpdmVGb3JtQ29uZmlnLmZvcm1Db250ZW50LCBcInBhdGhcIikgJiZcbiAgICAgICAgICBjaGVja09iamVjdEtleUV4aXN0cyh0aGlzLnVzZXJDb25maWcsIFwiYmFja2VuZFwiKSAmJlxuICAgICAgICAgIGNoZWNrT2JqZWN0S2V5RXhpc3RzKHRoaXMudXNlckNvbmZpZy5iYWNrZW5kLCBcIkNPTkZJR19CQVNFX1VSTFwiKVxuICAgICAgICApIHtcbiAgICAgICAgICBjb25zdCB1cmwgPSBgJHt0aGlzLnVzZXJDb25maWc/LmJhY2tlbmQ/LkNPTkZJR19CQVNFX1VSTH0ke2FjdGl2ZUZvcm1Db25maWdbXCJwcm9wc1wiXS5wYXRofWA7XG4gICAgICAgICAgY29uc3QgZm9ybUNvbmZpZ0Zyb21QYXRoID0gYXdhaXQgdGhpcy5mZXRjaEZvcm1Db25maWcodXJsKTtcbiAgICAgICAgICBmb3JtQ29uZmlnID0ge1xuICAgICAgICAgICAgLi4uYWN0aXZlRm9ybUNvbmZpZyxcbiAgICAgICAgICAgIC4uLmZvcm1Db25maWdGcm9tUGF0aFxuICAgICAgICAgIH07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaWYgKGNoZWNrT2JqZWN0S2V5RXhpc3RzKGFjdGl2ZUZvcm1Db25maWcsIFwiZmllbGRzXCIpKSB7XG4gICAgICAgICAgICBmb3JtQ29uZmlnID0gYWN0aXZlRm9ybUNvbmZpZztcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgICAgXCJObyBEaXJlY3QgVVJMLCBObyBQYXRoIHdpdGggQmFzZSBVUkwsIE5vIGZpZWxkcyBrZXkgZm91bmQgaW4gQWN0aXZlIEZvcm0ncyBDb25maWchXCJcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAoY2hlY2tPYmplY3RLZXlFeGlzdHMoYWN0aXZlRm9ybUNvbmZpZywgXCJmaWVsZHNcIikpIHtcbiAgICAgICAgICBmb3JtQ29uZmlnID0gYWN0aXZlRm9ybUNvbmZpZztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgXCJObyBEaXJlY3QgVVJMLCBObyBQYXRoIHdpdGggQmFzZSBVUkwsIE5vIGZpZWxkcyBrZXkgZm91bmQgaW4gQWN0aXZlIEZvcm0ncyBDb25maWchXCJcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5hY3RpdmVGb3JtQ29uZmlnID0ge1xuICAgICAgLi4uYWN0aXZlRm9ybUNvbmZpZyxcbiAgICAgIC4uLmZvcm1Db25maWdcbiAgICB9O1xuXG4gICAgdGhpcy50b2dnbGVMb2FkZXIoZmFsc2UpO1xuICB9XG5cbiAgLyoqXG4gICAqIEZvcm0gRWRpdG9yIExpc3RlbmVyc1xuICAgKi9cbiAgQGxvZ01ldGhvZFxuICBoYW5kbGVPbkNsaWNrU2F2ZUFjdGl2ZUZvcm1Db25maWcoYWN0aXZlRm9ybUNvbmZpZzogYW55KSB7XG4gICAgdGhpcy5hY3RpdmVGb3JtQ29uZmlnID0gYWN0aXZlRm9ybUNvbmZpZztcblxuICAgIHRoaXMuZm9ybXNMaXN0ID0gdGhpcy5mb3Jtc0xpc3QubWFwKChmb3JtOiBhbnkpID0+IHtcbiAgICAgIGlmIChmb3JtLmtleSA9PT0gYWN0aXZlRm9ybUNvbmZpZy5rZXkpIHtcbiAgICAgICAgcmV0dXJuIGFjdGl2ZUZvcm1Db25maWc7XG4gICAgICB9XG4gICAgICByZXR1cm4gZm9ybTtcbiAgICB9KTtcbiAgfVxuXG4gIEBsb2dNZXRob2RcbiAgdG9nZ2xlTG9hZGVyKGxvYWRlcikge1xuICAgIGlmIChsb2FkZXIpIHtcbiAgICAgIHRoaXMubG9hZGVyU2VydmljZS5zaG93KHtcbiAgICAgICAgZnVsbHNjcmVlbjogdHJ1ZSxcbiAgICAgICAgbG9hZGVyVGV4dDogXCJQbGVhc2Ugd2FpdFwiXG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5sb2FkZXJTZXJ2aWNlLmhpZGUoKTtcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJjb250YWluZXJcIj5cbiAgPGt3aWtpZC1idWlsZGVyLWZvcm1zLWxpc3RcbiAgICBbYWN0aXZlRm9ybUNvbmZpZ109XCJ0aGlzLmFjdGl2ZUZvcm1Db25maWdcIlxuICAgIFtmb3Jtc0xpc3RdPVwidGhpcy5mb3Jtc0xpc3RcIlxuICAgIChnZXRGb3Jtc0xpc3QpPVwidGhpcy5oYW5kbGVHZXRGb3Jtc0xpc3QoJGV2ZW50KVwiXG4gICAgKG9uQ2xpY2tTZXRBY3RpdmVGb3JtKT1cInRoaXMuaGFuZGxlT25DbGlja1NldEFjdGl2ZUZvcm0oJGV2ZW50KVwiXG4gID48L2t3aWtpZC1idWlsZGVyLWZvcm1zLWxpc3Q+XG4gIDxrd2lraWQtYnVpbGRlci1mb3JtLWVkaXRvclxuICAgIFthY3RpdmVGb3JtQ29uZmlnXT1cImFjdGl2ZUZvcm1Db25maWdcIlxuICAgIChvbkNsaWNrU2F2ZUFjdGl2ZUZvcm1Db25maWcpPVwiXG4gICAgICB0aGlzLmhhbmRsZU9uQ2xpY2tTYXZlQWN0aXZlRm9ybUNvbmZpZygkZXZlbnQpXG4gICAgXCJcbiAgPjwva3dpa2lkLWJ1aWxkZXItZm9ybS1lZGl0b3I+XG48L2Rpdj5cblxuPGt3aWt1aS1sb2FkZXJcbj48L2t3aWt1aS1sb2FkZXI+XG4iXX0=
|
|
@@ -69,6 +69,12 @@ export const FIELD_PROPERTIES = {
|
|
|
69
69
|
link: "click to upload",
|
|
70
70
|
size: "m",
|
|
71
71
|
maxFileSize: 1000000
|
|
72
|
+
},
|
|
73
|
+
select: {
|
|
74
|
+
searchable: true
|
|
75
|
+
},
|
|
76
|
+
"dropdown-with-search": {
|
|
77
|
+
searchable: true
|
|
72
78
|
}
|
|
73
79
|
};
|
|
74
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
80
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLWNvbnZlcnRlci5jb25zdGFudHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rd2lraWQtZm9ybXMvc3JjL2xpYi9yZW5kZXJlci9jb25maWctY29udmVydGVyL2NvbmZpZy1jb252ZXJ0ZXIuY29uc3RhbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHO0lBQzlCLElBQUksRUFBRTtRQUNKLElBQUksRUFBRSxTQUFTO0tBQ2hCO0lBQ0QsTUFBTSxFQUFFO1FBQ04sT0FBTyxFQUFFLE9BQU87UUFDaEIsR0FBRyxFQUFFLENBQUMsUUFBUTtRQUNkLEdBQUcsRUFBRSxRQUFRO1FBQ2IsV0FBVyxFQUFFLEVBQUU7UUFDZixNQUFNLEVBQUUsRUFBRTtRQUNWLE9BQU8sRUFBRSxFQUFFO1FBQ1gsU0FBUyxFQUFFLENBQUM7S0FDYjtJQUNELEtBQUssRUFBRTtRQUNMLFdBQVcsRUFBRSxLQUFLO1FBQ2xCLHlCQUF5QixFQUFFLGFBQWE7UUFDeEMsMEJBQTBCLEVBQUUsSUFBSTtRQUNoQyxXQUFXLEVBQUUsRUFBRTtLQUNoQjtJQUNELEtBQUssRUFBRTtRQUNMLE9BQU8sRUFBRSxFQUFFO1FBQ1gsSUFBSSxFQUFFLEVBQUU7UUFDUixNQUFNLEVBQUUsRUFBRTtRQUNWLEtBQUssRUFBRSxFQUFFO1FBQ1QsU0FBUyxFQUFFLEtBQUs7UUFDaEIsV0FBVyxFQUFFLE1BQU07UUFDbkIsTUFBTSxFQUFFLEVBQUU7UUFDVixLQUFLLEVBQUUsRUFBRTtLQUNWO0lBQ0QsSUFBSSxFQUFFO1FBQ0osc0JBQXNCLEVBQUU7WUFDdEIsSUFBSSxFQUFFLElBQUksSUFBSSxFQUFFLENBQUMsV0FBVyxFQUFFO1lBQzlCLEtBQUssRUFBRSxJQUFJLElBQUksRUFBRSxDQUFDLFFBQVEsRUFBRTtZQUM1QixHQUFHLEVBQUUsSUFBSSxJQUFJLEVBQUUsQ0FBQyxPQUFPLEVBQUU7U0FDMUI7UUFDRCxzQkFBc0IsRUFBRTtZQUN0QixJQUFJLEVBQUUsQ0FBQztZQUNQLEtBQUssRUFBRSxDQUFDO1lBQ1IsR0FBRyxFQUFFLENBQUM7U0FDUDtRQUNELFdBQVcsRUFBRSxFQUFFO0tBQ2hCO0lBQ0QsS0FBSyxFQUFFO1FBQ0wsSUFBSSxFQUFFLEdBQUc7UUFDVCxXQUFXLEVBQUUsVUFBVTtLQUN4QjtJQUNELE1BQU0sRUFBRTtRQUNOLEdBQUcsRUFBRSxDQUFDO1FBQ04sR0FBRyxFQUFFLEdBQUc7UUFDUixLQUFLLEVBQUUsQ0FBQztRQUNSLE9BQU8sRUFBRSxDQUFDO1FBQ1YsSUFBSSxFQUFFLEdBQUc7S0FDVjtJQUNELEdBQUcsRUFBRTtRQUNILEtBQUssRUFBRSxJQUFJO1FBQ1gsSUFBSSxFQUFFLEdBQUc7S0FDVjtJQUNELEdBQUcsRUFBRTtRQUNILElBQUksRUFBRSxHQUFHO1FBQ1QsSUFBSSxFQUFFLFVBQVU7UUFDaEIsU0FBUyxFQUFFLENBQUM7UUFDWixXQUFXLEVBQUUsRUFBRTtLQUNoQjtJQUNELElBQUksRUFBRTtRQUNKLFFBQVEsRUFBRSxJQUFJO1FBQ2QsTUFBTSxFQUFFLGlCQUFpQjtRQUN6QixLQUFLLEVBQUUsZ0JBQWdCO1FBQ3ZCLGtCQUFrQixFQUFFLElBQUk7UUFDeEIsSUFBSSxFQUFFLGlCQUFpQjtRQUN2QixJQUFJLEVBQUUsR0FBRztRQUNULFdBQVcsRUFBRSxPQUFPO0tBQ3JCO0lBQ0QsTUFBTSxFQUFFO1FBQ04sVUFBVSxFQUFFLElBQUk7S0FDakI7SUFDRCxzQkFBc0IsRUFBRTtRQUN0QixVQUFVLEVBQUUsSUFBSTtLQUNqQjtDQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgRklFTERfUFJPUEVSVElFUyA9IHtcbiAgdGV4dDoge1xuICAgIGNhc2U6IFwiZGVmYXVsdFwiXG4gIH0sXG4gIG51bWJlcjoge1xuICAgIGRlY2ltYWw6IFwibmV2ZXJcIixcbiAgICBtaW46IC1JbmZpbml0eSxcbiAgICBtYXg6IEluZmluaXR5LFxuICAgIHBsYWNlaG9sZGVyOiBcIlwiLFxuICAgIHByZWZpeDogXCJcIixcbiAgICBwb3N0Zml4OiBcIlwiLFxuICAgIHByZWNpc2lvbjogMlxuICB9LFxuICBwaG9uZToge1xuICAgIGNvdW50cnlDb2RlOiBcIis5MVwiLFxuICAgIHBob25lTWFza0FmdGVyQ291bnRyeUNvZGU6IFwiIyMjIy0jIyMjIyNcIixcbiAgICByZW1vdmVDb3VudHJ5Q29kZUZyb21WYWx1ZTogdHJ1ZSxcbiAgICBwbGFjZWhvbGRlcjogXCJcIlxuICB9LFxuICBpbWFnZToge1xuICAgIGFsdFRleHQ6IFwiXCIsXG4gICAgaHRtbDoge30sXG4gICAgYmVmb3JlOiBcIlwiLFxuICAgIGFmdGVyOiBcIlwiLFxuICAgIGltYWdlVHlwZTogXCJ1cmxcIixcbiAgICBsb2FkaW5nVHlwZTogXCJhdXRvXCIsXG4gICAgc3R5bGVzOiBcIlwiLFxuICAgIGNsYXNzOiBcIlwiXG4gIH0sXG4gIGRhdGU6IHtcbiAgICBtaW5DYWxjdWxhdGVkRnJvbVRvZGF5OiB7XG4gICAgICB5ZWFyOiBuZXcgRGF0ZSgpLmdldEZ1bGxZZWFyKCksXG4gICAgICBtb250aDogbmV3IERhdGUoKS5nZXRNb250aCgpLFxuICAgICAgZGF5OiBuZXcgRGF0ZSgpLmdldERhdGUoKVxuICAgIH0sXG4gICAgbWF4Q2FsY3VsYXRlZEZyb21Ub2RheToge1xuICAgICAgeWVhcjogMCxcbiAgICAgIG1vbnRoOiAwLFxuICAgICAgZGF5OiAwXG4gICAgfSxcbiAgICBwbGFjZWhvbGRlcjogXCJcIlxuICB9LFxuICByYWRpbzoge1xuICAgIHNpemU6IFwibVwiLFxuICAgIG9yaWVudGF0aW9uOiBcInZlcnRpY2FsXCJcbiAgfSxcbiAgc2xpZGVyOiB7XG4gICAgbWluOiAwLFxuICAgIG1heDogMTAwLFxuICAgIHN0ZXBzOiAwLFxuICAgIHF1YW50dW06IDEsXG4gICAgc2l6ZTogXCJsXCJcbiAgfSxcbiAgYXBpOiB7XG4gICAgc2hhcGU6IG51bGwsXG4gICAgc2l6ZTogXCJtXCJcbiAgfSxcbiAgb3RwOiB7XG4gICAgc2l6ZTogXCJtXCIsXG4gICAgbW9kZTogXCJtdWx0aXBsZVwiLFxuICAgIG90cExlbmd0aDogNCxcbiAgICBwbGFjZWhvbGRlcjogXCJcIlxuICB9LFxuICBmaWxlOiB7XG4gICAgbXVsdGlwbGU6IHRydWUsXG4gICAgYWNjZXB0OiBcImFwcGxpY2F0aW9uL3BkZlwiLFxuICAgIGxhYmVsOiBcImRyb3AgYSBmaWxlIG9yXCIsXG4gICAgdXBsb2FkRmlsZVRvU2VydmVyOiB0cnVlLFxuICAgIGxpbms6IFwiY2xpY2sgdG8gdXBsb2FkXCIsXG4gICAgc2l6ZTogXCJtXCIsXG4gICAgbWF4RmlsZVNpemU6IDEwMDAwMDBcbiAgfSxcbiAgc2VsZWN0OiB7XG4gICAgc2VhcmNoYWJsZTogdHJ1ZVxuICB9LFxuICBcImRyb3Bkb3duLXdpdGgtc2VhcmNoXCI6IHtcbiAgICBzZWFyY2hhYmxlOiB0cnVlXG4gIH1cbn07XG4iXX0=
|
|
@@ -10,10 +10,25 @@ export class Converter {
|
|
|
10
10
|
}
|
|
11
11
|
return formConfig;
|
|
12
12
|
}
|
|
13
|
+
updateFormConfigFromUserConfig(formConfig, userConfig) {
|
|
14
|
+
if (isNotEmptyValue(userConfig)) {
|
|
15
|
+
if (checkObjectKeyExists(userConfig, "theme")) {
|
|
16
|
+
if (checkObjectKeyExists(userConfig.theme, "clientLogo")) {
|
|
17
|
+
setValueToObjectPath(formConfig, "properties.header.logo.src", userConfig.theme.clientLogo);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
return formConfig;
|
|
22
|
+
}
|
|
13
23
|
updateFormConfigProperties(formConfig) {
|
|
14
24
|
var _a, _b;
|
|
15
25
|
const formViewProperties = {
|
|
16
26
|
header: {
|
|
27
|
+
logo: {
|
|
28
|
+
src: "",
|
|
29
|
+
alt: "Logo",
|
|
30
|
+
hidden: false
|
|
31
|
+
},
|
|
17
32
|
backButton: {
|
|
18
33
|
mode: "TABBED",
|
|
19
34
|
bypassConfirmation: false,
|
|
@@ -50,6 +65,12 @@ export class Converter {
|
|
|
50
65
|
}
|
|
51
66
|
convertFormConfig(formConfig) {
|
|
52
67
|
const formatOnFieldType = (field) => {
|
|
68
|
+
const updateFormFieldProperties = (field) => {
|
|
69
|
+
if (checkObjectKeyExists(FIELD_PROPERTIES, field.type)) {
|
|
70
|
+
field.properties = mergeObjects(getObjectDeepCopy(FIELD_PROPERTIES[field.type]), field.properties);
|
|
71
|
+
}
|
|
72
|
+
return field;
|
|
73
|
+
};
|
|
53
74
|
const formatFieldTypeHtml = (field) => {
|
|
54
75
|
field = setFieldKeyHidden(field);
|
|
55
76
|
field = setFieldAsFormElement(field, false);
|
|
@@ -63,7 +84,7 @@ export class Converter {
|
|
|
63
84
|
const formatFieldTypeText = (field) => {
|
|
64
85
|
field = setFieldKeyHidden(field);
|
|
65
86
|
field = setFieldAsFormElement(field, true);
|
|
66
|
-
field
|
|
87
|
+
field = updateFormFieldProperties(field);
|
|
67
88
|
return field;
|
|
68
89
|
};
|
|
69
90
|
const formatFieldTypeTextarea = (field) => {
|
|
@@ -87,7 +108,7 @@ export class Converter {
|
|
|
87
108
|
field = setFieldKeyValue(field, "type", "phone");
|
|
88
109
|
}
|
|
89
110
|
if (field.type === "phone" || field.type === "number") {
|
|
90
|
-
field
|
|
111
|
+
field = updateFormFieldProperties(field);
|
|
91
112
|
}
|
|
92
113
|
}
|
|
93
114
|
return field;
|
|
@@ -95,13 +116,13 @@ export class Converter {
|
|
|
95
116
|
const formatFieldTypeImage = (field) => {
|
|
96
117
|
field = setFieldKeyHidden(field);
|
|
97
118
|
field = setFieldAsFormElement(field, true);
|
|
98
|
-
field
|
|
119
|
+
field = updateFormFieldProperties(field);
|
|
99
120
|
return field;
|
|
100
121
|
};
|
|
101
122
|
const formatFieldTypeDate = (field) => {
|
|
102
123
|
field = setFieldKeyHidden(field);
|
|
103
124
|
field = setFieldAsFormElement(field, true);
|
|
104
|
-
field.properties = getObjectDeepCopy(mergeObjects(FIELD_PROPERTIES[field.type], {
|
|
125
|
+
field.properties = getObjectDeepCopy(mergeObjects(getObjectDeepCopy(FIELD_PROPERTIES[field.type]), {
|
|
105
126
|
max: getMaxDate(field),
|
|
106
127
|
min: getMinDate(field)
|
|
107
128
|
}, field.properties));
|
|
@@ -115,7 +136,7 @@ export class Converter {
|
|
|
115
136
|
const formatFieldTypeRadio = (field) => {
|
|
116
137
|
field = setFieldKeyHidden(field);
|
|
117
138
|
field = setFieldAsFormElement(field, true);
|
|
118
|
-
field
|
|
139
|
+
field = updateFormFieldProperties(field);
|
|
119
140
|
field.options = field.options.map((x) => {
|
|
120
141
|
if (typeof x === "string" || typeof x === "number") {
|
|
121
142
|
return { label: x, disabled: false, description: "" };
|
|
@@ -140,17 +161,18 @@ export class Converter {
|
|
|
140
161
|
const formatFieldTypeSlider = (field) => {
|
|
141
162
|
field = setFieldKeyHidden(field);
|
|
142
163
|
field = setFieldAsFormElement(field, true);
|
|
143
|
-
field
|
|
164
|
+
field = updateFormFieldProperties(field);
|
|
144
165
|
return field;
|
|
145
166
|
};
|
|
146
167
|
const formatFieldTypeSelect = (field) => {
|
|
147
168
|
field = setFieldKeyHidden(field);
|
|
148
169
|
field = setFieldAsFormElement(field, true);
|
|
170
|
+
field = updateFormFieldProperties(field);
|
|
149
171
|
return field;
|
|
150
172
|
};
|
|
151
173
|
const formatFieldTypeApi = (field) => {
|
|
152
174
|
field = setFieldAsFormElement(field, true);
|
|
153
|
-
field
|
|
175
|
+
field = updateFormFieldProperties(field);
|
|
154
176
|
if (!checkObjectKeyExists(field, "showLoader")) {
|
|
155
177
|
field = setFieldKeyValue(field, "showLoader", false);
|
|
156
178
|
}
|
|
@@ -196,7 +218,7 @@ export class Converter {
|
|
|
196
218
|
var _a, _b;
|
|
197
219
|
field = setFieldKeyHidden(field);
|
|
198
220
|
field = setFieldAsFormElement(field, true);
|
|
199
|
-
field.properties = getObjectDeepCopy(mergeObjects(FIELD_PROPERTIES[field.type], {
|
|
221
|
+
field.properties = getObjectDeepCopy(mergeObjects(getObjectDeepCopy(FIELD_PROPERTIES[field.type]), {
|
|
200
222
|
mask: new Array((_b = (_a = field === null || field === void 0 ? void 0 : field.properties) === null || _a === void 0 ? void 0 : _a.otpLength) !== null && _b !== void 0 ? _b : 4)
|
|
201
223
|
.fill("#")
|
|
202
224
|
.join(" ")
|
|
@@ -211,7 +233,7 @@ export class Converter {
|
|
|
211
233
|
const formatFieldTypeFile = (field) => {
|
|
212
234
|
field = setFieldKeyHidden(field);
|
|
213
235
|
field = setFieldAsFormElement(field, true);
|
|
214
|
-
field
|
|
236
|
+
field = updateFormFieldProperties(field);
|
|
215
237
|
return field;
|
|
216
238
|
};
|
|
217
239
|
switch (field.type) {
|
|
@@ -506,10 +528,13 @@ export class Converter {
|
|
|
506
528
|
__decorate([
|
|
507
529
|
logMethod
|
|
508
530
|
], Converter.prototype, "updateFormConfigMiscellaneous", null);
|
|
531
|
+
__decorate([
|
|
532
|
+
logMethod
|
|
533
|
+
], Converter.prototype, "updateFormConfigFromUserConfig", null);
|
|
509
534
|
__decorate([
|
|
510
535
|
logMethod
|
|
511
536
|
], Converter.prototype, "updateFormConfigProperties", null);
|
|
512
537
|
__decorate([
|
|
513
538
|
logMethod
|
|
514
539
|
], Converter.prototype, "convertFormConfig", null);
|
|
515
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLWNvbnZlcnRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2t3aWtpZC1mb3Jtcy9zcmMvbGliL3JlbmRlcmVyL2NvbmZpZy1jb252ZXJ0ZXIvY29uZmlnLWNvbnZlcnRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNMLG9CQUFvQixFQUNwQixxQkFBcUIsRUFDckIsaUJBQWlCLEVBQ2pCLFlBQVksRUFDWixlQUFlLEVBQ2YsU0FBUyxFQUNULFlBQVksRUFDWixrQkFBa0IsRUFDbEIsb0JBQW9CLEVBQ3JCLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNEQUFzRCxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2hFLE9BQU8sRUFDTCxhQUFhLEVBQ2IsVUFBVSxFQUNWLFVBQVUsRUFDVixxQkFBcUIsRUFDckIsaUJBQWlCLEVBQ2pCLGdCQUFnQixFQUNoQix1QkFBdUIsRUFDeEIsTUFBTSwyQkFBMkIsQ0FBQztBQUVuQyxNQUFNLE9BQU8sU0FBUztJQUVwQiw2QkFBNkIsQ0FBQyxVQUFlLEVBQUUsSUFBUztRQUN0RCxJQUFJLG9CQUFvQixDQUFDLElBQUksRUFBRSxpQkFBaUIsQ0FBQyxFQUFFO1lBQ2pELFVBQVUsR0FBRyxvQkFBb0IsQ0FDL0IsVUFBVSxFQUNWLGlCQUFpQixFQUNqQixJQUFJLENBQUMsZUFBZSxDQUNyQixDQUFDO1NBQ0g7UUFFRCxPQUFPLFVBQVUsQ0FBQztJQUNwQixDQUFDO0lBR0QsMEJBQTBCLENBQUMsVUFBZTs7UUFDeEMsTUFBTSxrQkFBa0IsR0FBRztZQUN6QixNQUFNLEVBQUU7Z0JBQ04sVUFBVSxFQUFFO29CQUNWLElBQUksRUFBRSxRQUFRO29CQUNkLGtCQUFrQixFQUFFLEtBQUs7b0JBQ3pCLE1BQU0sRUFBRSxJQUFJO2lCQUNiO2dC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QyxDQUFDO1FBRTlDLElBQUksV0FBVyxHQUFRLEVBQUUsQ0FBQztRQUUxQixLQUFLLElBQUksS0FBSyxJQUFJLE1BQU0sRUFBRTtZQUN4QixLQUFLLEdBQUcsaUJBQWlCLENBQUMsS0FBSyxDQUFDLENBQUM7WUFFakMsS0FBSyxHQUFHLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxDQUFDO1lBRXJDLFdBQVcsR0FBRyxxQkFBcUIsQ0FBQyxXQUFXLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFFeEQsS0FBSyxHQUFHLHVCQUF1QixDQUFDLEtBQUssQ0FBQyxDQUFDO1lBRXZDLEtBQUssR0FBRyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUVyQyxLQUFLLEdBQUcsc0JBQXNCLENBQUMsS0FBSyxDQUFDLENBQUM7WUFFdEMsS0FBSyxHQUFHLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ3BDO1FBRUQsVUFBVSxHQUFHLGtCQUFrQixDQUFDLFVBQVUsRUFBRSxXQUFXLENBQUMsQ0FBQztRQUV6RCxVQUFVLEdBQUcsYUFBYSxDQUFDLFVBQVUsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUUvQyxPQUFPLFVBQVUsQ0FBQztJQUNwQixDQUFDO0NBQ0Y7QUFqbUJDO0lBREMsU0FBUzs4REFXVDtBQUdEO0lBREMsU0FBUzsyREF3Q1Q7QUFHRDtJQURDLFNBQVM7a0RBMGlCVCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIGNoZWNrT2JqZWN0S2V5RXhpc3RzLFxuICBjaGVja09iamVjdFBhdGhFeGlzdHMsXG4gIGdldE9iamVjdERlZXBDb3B5LFxuICBpc0VtcHR5VmFsdWUsXG4gIGlzTm90RW1wdHlWYWx1ZSxcbiAgbG9nTWV0aG9kLFxuICBtZXJnZU9iamVjdHMsXG4gIHNldE1pc3NpbmdLZXlWYWx1ZSxcbiAgc2V0VmFsdWVUb09iamVjdFBhdGhcbn0gZnJvbSBcImt3aWtpZC10b29sa2l0XCI7XG5pbXBvcnQgeyBFRmllbGRUeXBlIH0gZnJvbSBcIi4uL2Zvcm0tdmlldy9kZWZpbml0aW9ucy9mb3JtLXZpZXcuZmllbGRzLmRlZmluaXRpb25cIjtcbmltcG9ydCB7IEZJRUxEX1BST1BFUlRJRVMgfSBmcm9tIFwiLi9jb25maWctY29udmVydGVyLmNvbnN0YW50c1wiO1xuaW1wb3J0IHtcbiAgZ2V0Rm9ybUZpZWxkcyxcbiAgZ2V0TWF4RGF0ZSxcbiAgZ2V0TWluRGF0ZSxcbiAgc2V0RmllbGRBc0Zvcm1FbGVtZW50LFxuICBzZXRGaWVsZEtleUhpZGRlbixcbiAgc2V0RmllbGRLZXlWYWx1ZSxcbiAgc2V0TWlzc2luZ0ZpZWxkS2V5VmFsdWVcbn0gZnJvbSBcIi4vY29uZmlnLWNvbnZlcnRlci5oZWxwZXJcIjtcblxuZXhwb3J0IGNsYXNzIENvbnZlcnRlciB7XG4gIEBsb2dNZXRob2RcbiAgdXBkYXRlRm9ybUNvbmZpZ01pc2NlbGxhbmVvdXMoZm9ybUNvbmZpZzogYW55LCBhcmdzOiBhbnkpOiBhbnkge1xuICAgIGlmIChjaGVja09iamVjdEtleUV4aXN0cyhhcmdzLCBcImZvcm1zTGlzdExlbmd0aFwiKSkge1xuICAgICAgZm9ybUNvbmZpZyA9IHNldFZhbHVlVG9PYmplY3RQYXRoKFxuICAgICAgICBmb3JtQ29uZmlnLFxuICAgICAgICBcImZvcm1zTGlzdExlbmd0aFwiLFxuICAgICAgICBhcmdzLmZvcm1zTGlzdExlbmd0aFxuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZm9ybUNvbmZpZztcbiAgfVxuXG4gIEBsb2dNZXRob2RcbiAgdXBkYXRlRm9ybUNvbmZpZ1Byb3BlcnRpZXMoZm9ybUNvbmZpZzogYW55KTogYW55IHtcbiAgICBjb25zdCBmb3JtVmlld1Byb3BlcnRpZXMgPSB7XG4gICAgICBoZWFkZXI6IHtcbiAgICAgICAgYmFja0J1dHRvbjoge1xuICAgICAgICAgIG1vZGU6IFwiVEFCQkVEXCIsXG4gICAgICAgICAgYnlwYXNzQ29uZmlybWF0aW9uOiBmYWxzZSxcbiAgICAgICAgICBoaWRkZW46IHRydWVcbiAgICAgICAgfSxcbiAgICAgICAgdGl0bGU6IHtcbiAgICAgICAgICBoaWRkZW46IGZhbHNlLFxuICAgICAgICAgIGxhYmVsOiBmb3JtQ29uZmlnPy50aXRsZSA/PyBmb3JtQ29uZmlnPy5wcm9wcy50aXRsZSA/PyBcIkZvcm1cIlxuICAgICAgICB9LFxuICAgICAgICBzdGVwczoge1xuICAgICAgICAgIGhpZGRlbjogZmFsc2VcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIGZvb3Rlcjoge1xuICAgICAgICB2aWV3Rm9ybXNCdXR0b246IHtcbiAgICAgICAgICBieXBhc3NDb25maXJtYXRpb246IGZhbHNlLFxuICAgICAgICAgIGhpZGRlbjogZmFsc2UsXG4gICAgICAgICAgbGFiZWw6IFwiVmlldyBGb3Jtc1wiXG4gICAgICAgIH0sXG4gICAgICAgIHNhdmVCdXR0b246IHtcbiAgICAgICAgICBoaWRkZW46IGZhbHNlLFxuICAgICAgICAgIGxhYmVsOiBcIlNhdmVcIlxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgaXNVbnNhdmVkRGF0YUFsZXJ0RW5hYmxlZDogZmFsc2VcbiAgICB9O1xuXG4gICAgaWYgKGNoZWNrT2JqZWN0S2V5RXhpc3RzKGZvcm1Db25maWcsIFwicHJvcGVydGllc1wiKSkge1xuICAgICAgZm9ybUNvbmZpZy5wcm9wZXJ0aWVzID0gZ2V0T2JqZWN0RGVlcENvcHkoXG4gICAgICAgIG1lcmdlT2JqZWN0cyhmb3JtVmlld1Byb3BlcnRpZXMsIGZvcm1Db25maWcucHJvcGVydGllcylcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGZvcm1Db25maWcucHJvcGVydGllcyA9IGZvcm1WaWV3UHJvcGVydGllcztcbiAgICB9XG5cbiAgICByZXR1cm4gZm9ybUNvbmZpZztcbiAgfVxuXG4gIEBsb2dNZXRob2RcbiAgY29udmVydEZvcm1Db25maWcoZm9ybUNvbmZpZzogYW55KTogYW55IHtcbiAgICBjb25zdCBmb3JtYXRPbkZpZWxkVHlwZSA9IChmaWVsZDogYW55KTogYW55ID0+IHtcbiAgICAgIGNvbnN0IGZvcm1hdEZpZWxkVHlwZUh0bWwgPSAoZmllbGQ6IGFueSk6IGFueSA9PiB7XG4gICAgICAgIGZpZWxkID0gc2V0RmllbGRLZXlIaWRkZW4oZmllbGQpO1xuICAgICAgICBmaWVsZCA9IHNldEZpZWxkQXNGb3JtRWxlbWVudChmaWVsZCwgZmFsc2UpO1xuXG4gICAgICAgIHJldHVybiBmaWVsZDtcbiAgICAgIH07XG4gICAgICBjb25zdCBmb3JtYXRGaWVsZFR5cGVUaXRsZSA9IChmaWVsZDogYW55KTogYW55ID0+IHtcbiAgICAgICAgZmllbGQgPSBzZXRGaWVsZEtleUhpZGRlbihmaWVsZCk7XG4gICAgICAgIGZpZWxkID0gc2V0RmllbGRBc0Zvcm1FbGVtZW50KGZpZWxkLCBmYWxzZSk7XG5cbiAgICAgICAgcmV0dXJuIGZpZWxkO1xuICAgICAgfTtcbiAgICAgIGNvbnN0IGZvcm1hdEZpZWxkVHlwZVRleHQgPSAoZmllbGQ6IGFueSk6IGFueSA9PiB7XG4gICAgICAgIGZpZWxkID0gc2V0RmllbGRLZXlIaWRkZW4oZmllbGQpO1xuICAgICAgICBmaWVsZCA9IHNldEZpZWxkQXNGb3JtRWxlbWVudChmaWVsZCwgdHJ1ZSk7XG5cbiAgICAgICAgZmllbGQucHJvcGVydGllcyA9IGdldE9iamVjdERlZXBDb3B5KFxuICAgICAgICAgIG1lcmdlT2JqZWN0cyhGSUVMRF9QUk9QRVJUSUVTW2ZpZWxkLnR5cGVdLCBmaWVsZC5wcm9wZXJ0aWVzKVxuICAgICAgICApO1xuXG4gICAgICAgIHJldHVybiBmaWVsZDtcbiAgICAgIH07XG4gICAgICBjb25zdCBmb3JtYXRGaWVsZFR5cGVUZXh0YXJlYSA9IChmaWVsZDogYW55KTogYW55ID0+IHtcbiAgICAgICAgZmllbGQgPSBzZXRGaWVsZEtleUhpZGRlbihmaWVsZCk7XG4gICAgICAgIGZpZWxkID0gc2V0RmllbGRBc0Zvcm1FbGVtZW50KGZpZWxkLCB0cnVlKTtcbiAgICAgICAgcmV0dXJuIGZpZWxkO1xuICAgICAgfTtcbiAgICAgIGNvbnN0IGZvcm1hdEZpZWxkVHlwZUNoZWNrYm94ID0gKGZpZWxkOiBhbnkpOiBhbnkgPT4ge1xuICAgICAgICBmaWVsZCA9IHNldEZpZWxkS2V5SGlkZGVuKGZpZWxkKTtcbiAgICAgICAgZmllbGQgPSBzZXRGaWVsZEFzRm9ybUVsZW1lbnQoZmllbGQsIHRydWUpO1xuICAgICAgICByZXR1cm4gZmllbGQ7XG4gICAgICB9O1xuICAgICAgY29uc3QgZm9ybWF0RmllbGRUeXBlTnVtYmVyID0gKGZpZWxkOiBhbnkpOiBhbnkgPT4ge1xuICAgICAgICBmaWVsZCA9IHNldEZpZWxkS2V5SGlkZGVuKGZpZWxkKTtcbiAgICAgICAgZmllbGQgPSBzZXRGaWVsZEFzRm9ybUVsZW1lbnQoZmllbGQsIHRydWUpO1xuXG4gICAgICAgIGlmIChjaGVja09iamVjdEtleUV4aXN0cyhmaWVsZCwgXCJrZXlcIikpIHtcbiAgICAgICAgICBpZiAoZmllbGQua2V5ID09PSBcImFhZGhhYXJfbnVtYmVyXCIpIHtcbiAgICAgICAgICAgIGZpZWxkID0gc2V0RmllbGRLZXlWYWx1ZShmaWVsZCwgXCJ0eXBlXCIsIFwiYWFkaGFhcl9udW1iZXJcIik7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChmaWVsZC5rZXkgPT09IFwiY29udGFjdF9udW1iZXJcIikge1xuICAgICAgICAgICAgZmllbGQgPSBzZXRGaWVsZEtleVZhbHVlKGZpZWxkLCBcInR5cGVcIiwgXCJwaG9uZVwiKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoZmllbGQudHlwZSA9PT0gXCJwaG9uZVwiIHx8IGZpZWxkLnR5cGUgPT09IFwibnVtYmVyXCIpIHtcbiAgICAgICAgICAgIGZpZWxkLnByb3BlcnRpZXMgPSBnZXRPYmplY3REZWVwQ29weShcbiAgICAgICAgICAgICAgbWVyZ2VPYmplY3RzKEZJRUxEX1BST1BFUlRJRVNbZmllbGQudHlwZV0sIGZpZWxkLnByb3BlcnRpZXMpXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBmaWVsZDtcbiAgICAgIH07XG4gICAgICBjb25zdCBmb3JtYXRGaWVsZFR5cGVJbWFnZSA9IChmaWVsZDogYW55KTogYW55ID0+IHtcbiAgICAgICAgZmllbGQgPSBzZXRGaWVsZEtleUhpZGRlbihmaWVsZCk7XG4gICAgICAgIGZpZWxkID0gc2V0RmllbGRBc0Zvcm1FbGVtZW50KGZpZWxkLCB0cnVlKTtcblxuICAgICAgICBmaWVsZC5wcm9wZXJ0aWVzID0gZ2V0T2JqZWN0RGVlcENvcHkoXG4gICAgICAgICAgbWVyZ2VPYmplY3RzKEZJRUxEX1BST1BFUlRJRVNbZmllbGQudHlwZV0sIGZpZWxkLnByb3BlcnRpZXMpXG4gICAgICAgICk7XG5cbiAgICAgICAgcmV0dXJuIGZpZWxkO1xuICAgICAgfTtcbiAgICAgIGNvbnN0IGZvcm1hdEZpZWxkVHlwZURhdGUgPSAoZmllbGQ6IGFueSk6IGFueSA9PiB7XG4gICAgICAgIGZpZWxkID0gc2V0RmllbGRLZXlIaWRkZW4oZmllbGQpO1xuICAgICAgICBmaWVsZCA9IHNldEZpZWxkQXNGb3JtRWxlbWVudChmaWVsZCwgdHJ1ZSk7XG5cbiAgICAgICAgZmllbGQucHJvcGVydGllcyA9IGdldE9iamVjdERlZXBDb3B5KFxuICAgICAgICAgIG1lcmdlT2JqZWN0cyhcbiAgICAgICAgICAgIEZJRUxEX1BST1BFUlRJRVNbZmllbGQudHlwZV0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIG1heDogZ2V0TWF4RGF0ZShmaWVsZCksXG4gICAgICAgICAgICAgIG1pbjogZ2V0TWluRGF0ZShmaWVsZClcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBmaWVsZC5wcm9wZXJ0aWVzXG4gICAgICAgICAgKVxuICAgICAgICApO1xuXG4gICAgICAgIHJldHVybiBmaWVsZDtcbiAgICAgIH07XG4gICAgICBjb25zdCBmb3JtYXRGaWVsZFR5cGVQaG9uZSA9IChmaWVsZDogYW55KTogYW55ID0+IHtcbiAgICAgICAgZmllbGQgPSBzZXRGaWVsZEtleUhpZGRlbihmaWVsZCk7XG4gICAgICAgIGZpZWxkID0gc2V0RmllbGRBc0Zvcm1FbGVtZW50KGZpZWxkLCB0cnVlKTtcbiAgICAgICAgcmV0dXJuIGZpZWxkO1xuICAgICAgfTtcbiAgICAgIGNvbnN0IGZvcm1hdEZpZWxkVHlwZVJhZGlvID0gKGZpZWxkOiBhbnkpOiBhbnkgPT4ge1xuICAgICAgICBmaWVsZCA9IHNldEZpZWxkS2V5SGlkZGVuKGZpZWxkKTtcbiAgICAgICAgZmllbGQgPSBzZXRGaWVsZEFzRm9ybUVsZW1lbnQoZmllbGQsIHRydWUpO1xuXG4gICAgICAgIGZpZWxkLnByb3BlcnRpZXMgPSBnZXRPYmplY3REZWVwQ29weShcbiAgICAgICAgICBtZXJnZU9iamVjdHMoRklFTERfUFJPUEVSVElFU1tmaWVsZC50eXBlXSwgZmllbGQucHJvcGVydGllcylcbiAgICAgICAgKTtcblxuICAgICAgICBmaWVsZC5vcHRpb25zID0gZmllbGQub3B0aW9ucy5tYXAoKHg6IGFueSk6IGFueSA9PiB7XG4gICAgICAgICAgaWYgKHR5cGVvZiB4ID09PSBcInN0cmluZ1wiIHx8IHR5cGVvZiB4ID09PSBcIm51bWJlclwiKSB7XG4gICAgICAgICAgICByZXR1cm4geyBsYWJlbDogeCwgZGlzYWJsZWQ6IGZhbHNlLCBkZXNjcmlwdGlvbjogXCJcIiB9O1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgIGNoZWNrT2JqZWN0S2V5RXhpc3RzKHgsIFwibGFiZWxcIikgJiZcbiAgICAgICAgICAgICAgY2hlY2tPYmplY3RLZXlFeGlzdHMoeCwgXCJkaXNhYmxlZFwiKSAmJlxuICAgICAgICAgICAgICBjaGVja09iamVjdEtleUV4aXN0cyh4LCBcImRlc2NyaXB0aW9uXCIpXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgcmV0dXJuIHg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIWNoZWNrT2JqZWN0S2V5RXhpc3RzKHgsIFwiZGlzYWJsZWRcIikpIHtcbiAgICAgICAgICAgICAgeCA9IHsgLi4ueCwgZGlzYWJsZWQ6IGZhbHNlIH07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIWNoZWNrT2JqZWN0S2V5RXhpc3RzKHgsIFwiZGVzY3JpcHRpb25cIikpIHtcbiAgICAgICAgICAgICAgeCA9IHsgLi4ueCwgZGVzY3JpcHRpb246IGZhbHNlIH07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4geDtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiBmaWVsZDtcbiAgICAgIH07XG4gICAgICBjb25zdCBmb3JtYXRGaWVsZFR5cGVTbGlkZXIgPSAoZmllbGQ6IGFueSk6IGFueSA9PiB7XG4gICAgICAgIGZpZWxkID0gc2V0RmllbGRLZXlIaWRkZW4oZmllbGQpO1xuICAgICAgICBmaWVsZCA9IHNldEZpZWxkQXNGb3JtRWxlbWVudChmaWVsZCwgdHJ1ZSk7XG5cbiAgICAgICAgZmllbGQucHJvcGVydGllcyA9IGdldE9iamVjdERlZXBDb3B5KFxuICAgICAgICAgIG1lcmdlT2JqZWN0cyhGSUVMRF9QUk9QRVJUSUVTW2ZpZWxkLnR5cGVdLCBmaWVsZC5wcm9wZXJ0aWVzKVxuICAgICAgICApO1xuXG4gICAgICAgIHJldHVybiBmaWVsZDtcbiAgICAgIH07XG4gICAgICBjb25zdCBmb3JtYXRGaWVsZFR5cGVTZWxlY3QgPSAoZmllbGQ6IGFueSk6IGFueSA9PiB7XG4gICAgICAgIGZpZWxkID0gc2V0RmllbGRLZXlIaWRkZW4oZmllbGQpO1xuICAgICAgICBmaWVsZCA9IHNldEZpZWxkQXNGb3JtRWxlbWVudChmaWVsZCwgdHJ1ZSk7XG5cbiAgICAgICAgcmV0dXJuIGZpZWxkO1xuICAgICAgfTtcbiAgICAgIGNvbnN0IGZvcm1hdEZpZWxkVHlwZUFwaSA9IChmaWVsZDogYW55KTogYW55ID0+IHtcbiAgICAgICAgZmllbGQgPSBzZXRGaWVsZEFzRm9ybUVsZW1lbnQoZmllbGQsIHRydWUpO1xuXG4gICAgICAgIGZpZWxkLnByb3BlcnRpZXMgPSBnZXRPYmplY3REZWVwQ29weShcbiAgICAgICAgICBtZXJnZU9iamVjdHMoRklFTERfUFJPUEVSVElFU1tmaWVsZC50eXBlXSwgZmllbGQucHJvcGVydGllcylcbiAgICAgICAgKTtcblxuICAgICAgICBpZiAoIWNoZWNrT2JqZWN0S2V5RXhpc3RzKGZpZWxkLCBcInNob3dMb2FkZXJcIikpIHtcbiAgICAgICAgICBmaWVsZCA9IHNldEZpZWxkS2V5VmFsdWUoZmllbGQsIFwic2hvd0xvYWRlclwiLCBmYWxzZSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIWNoZWNrT2JqZWN0S2V5RXhpc3RzKGZpZWxkLCBcImFwaVwiKSkge1xuICAgICAgICAgIGNvbnN0IGZpZWxkQXBpRGVmYXVsdHMgPSB7XG4gICAgICAgICAgICB1cmw6IFwiXCIsXG4gICAgICAgICAgICByZXF1ZXN0OiB7fSxcbiAgICAgICAgICAgIHJlc3BvbnNlOiB7fSxcbiAgICAgICAgICAgIHN0YXR1czoge1xuICAgICAgICAgICAgICB2YWx1ZTogXCJkZWZhdWx0XCIsXG4gICAgICAgICAgICAgIGxhYmVsczoge1xuICAgICAgICAgICAgICAgIGRlZmF1bHQ6IFwiQ2FsbCBBUElcIixcbiAgICAgICAgICAgICAgICBsb2FkaW5nOiBcIkNhbGwgQVBJXCIsXG4gICAgICAgICAgICAgICAgc3VjY2VzczogXCJBUEkgU3VjY2Vzc1wiLFxuICAgICAgICAgICAgICAgIGZhaWxlZDogXCJBUEkgRmFpbGVkXCJcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH07XG4gICAgICAgICAgZmllbGQuYXBpID0gZ2V0T2JqZWN0RGVlcENvcHkoXG4gICAgICAgICAgICBtZXJnZU9iamVjdHMoZmllbGRBcGlEZWZhdWx0cywgZmllbGRBcGlEZWZhdWx0cylcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIGlmIChcbiAgICAgICAgICAhY2hlY2tPYmplY3RLZXlFeGlzdHMoZmllbGQuYXBpLCBcInJlcXVlc3RcIikgJiZcbiAgICAgICAgICAhY2hlY2tPYmplY3RLZXlFeGlzdHMoZmllbGQuYXBpLCBcImVudHJ5cG9pbnRcIilcbiAgICAgICAgKSB7XG4gICAgICAgICAgY29uc3QgYXBpRW50cnlwb2ludCA9IHtcbiAgICAgICAgICAgIHRyaWdnZXJzOiBbXCJPTl9BUElfQ0FMTFwiXSxcbiAgICAgICAgICAgIHJ1bGVzOiBbXSxcbiAgICAgICAgICAgIGFjdGlvbnM6IFtcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGlkOiBcIjFcIixcbiAgICAgICAgICAgICAgICBrZXk6IFwiQVBJX0NBTExcIixcbiAgICAgICAgICAgICAgICBjb25kaXRpb246IFwidHJ1ZVwiLFxuICAgICAgICAgICAgICAgIHByb3BzOiB7XG4gICAgICAgICAgICAgICAgICBmaWVsZEtleTogZmllbGQua2V5LFxuICAgICAgICAgICAgICAgICAgYXBpS2V5OiBmaWVsZC5hcGkuZW5kcG9pbnRzWzBdLmFwaUtleVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgXVxuICAgICAgICAgIH07XG4gICAgICAgICAgZmllbGQuZW50cnlwb2ludCA9IGdldE9iamVjdERlZXBDb3B5KFxuICAgICAgICAgICAgbWVyZ2VPYmplY3RzKGFwaUVudHJ5cG9pbnQsIGZpZWxkLmFwaSlcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmaWVsZDtcbiAgICAgIH07XG4gICAgICBjb25zdCBmb3JtYXRGaWVsZFR5cGVPdHAgPSAoZmllbGQ6IGFueSk6IGFueSA9PiB7XG4gICAgICAgIGZpZWxkID0gc2V0RmllbGRLZXlIaWRkZW4oZmllbGQpO1xuICAgICAgICBmaWVsZCA9IHNldEZpZWxkQXNGb3JtRWxlbWVudChmaWVsZCwgdHJ1ZSk7XG5cbiAgICAgICAgZmllbGQucHJvcGVydGllcyA9IGdldE9iamVjdERlZXBDb3B5KFxuICAgICAgICAgIG1lcmdlT2JqZWN0cyhcbiAgICAgICAgICAgIEZJRUxEX1BST1BFUlRJRVNbZmllbGQudHlwZV0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIG1hc2s6IG5ldyBBcnJheShmaWVsZD8ucHJvcGVydGllcz8ub3RwTGVuZ3RoID8/IDQpXG4gICAgICAgICAgICAgICAgLmZpbGwoXCIjXCIpXG4gICAgICAgICAgICAgICAgLmpvaW4oXCIgXCIpXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZmllbGQucHJvcGVydGllc1xuICAgICAgICAgIClcbiAgICAgICAgKTtcblxuICAgICAgICByZXR1cm4gZmllbGQ7XG4gICAgICB9O1xuICAgICAgY29uc3QgZm9ybWF0RmllbGRUeXBlQWFkaGFhck51bWJlciA9IChmaWVsZDogYW55KTogYW55ID0+IHtcbiAgICAgICAgZmllbGQgPSBzZXRGaWVsZEtleUhpZGRlbihmaWVsZCk7XG4gICAgICAgIGZpZWxkID0gc2V0RmllbGRBc0Zvcm1FbGVtZW50KGZpZWxkLCB0cnVlKTtcblxuICAgICAgICByZXR1cm4gZmllbGQ7XG4gICAgICB9O1xuICAgICAgY29uc3QgZm9ybWF0RmllbGRUeXBlRmlsZSA9IChmaWVsZDogYW55KTogYW55ID0+IHtcbiAgICAgICAgZmllbGQgPSBzZXRGaWVsZEtleUhpZGRlbihmaWVsZCk7XG4gICAgICAgIGZpZWxkID0gc2V0RmllbGRBc0Zvcm1FbGVtZW50KGZpZWxkLCB0cnVlKTtcblxuICAgICAgICBmaWVsZC5wcm9wZXJ0aWVzID0gZ2V0T2JqZWN0RGVlcENvcHkoXG4gICAgICAgICAgbWVyZ2VPYmplY3RzKEZJRUxEX1BST1BFUlRJRVNbZmllbGQudHlwZV0sIGZpZWxkLnByb3BlcnRpZXMpXG4gICAgICAgICk7XG5cbiAgICAgICAgcmV0dXJuIGZpZWxkO1xuICAgICAgfTtcblxuICAgICAgc3dpdGNoIChmaWVsZC50eXBlKSB7XG4gICAgICAgIGNhc2UgRUZpZWxkVHlwZS5IVE1MOlxuICAgICAgICAgIGZpZWxkID0gZm9ybWF0RmllbGRUeXBlSHRtbChmaWVsZCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgRUZpZWxkVHlwZS5USVRMRTpcbiAgICAgICAgICBmaWVsZCA9IGZvcm1hdEZpZWxkVHlwZVRpdGxlKGZpZWxkKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBFRmllbGRUeXBlLlRFWFQ6XG4gICAgICAgICAgZmllbGQgPSBmb3JtYXRGaWVsZFR5cGVUZXh0KGZpZWxkKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBFRmllbGRUeXBlLlRFWFRBUkVBOlxuICAgICAgICAgIGZpZWxkID0gZm9ybWF0RmllbGRUeXBlVGV4dGFyZWEoZmllbGQpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIEVGaWVsZFR5cGUuQ0hFQ0tCT1g6XG4gICAgICAgICAgZmllbGQgPSBmb3JtYXRGaWVsZFR5cGVDaGVja2JveChmaWVsZCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgRUZpZWxkVHlwZS5OVU1CRVI6XG4gICAgICAgICAgZmllbGQgPSBmb3JtYXRGaWVsZFR5cGVOdW1iZXIoZmllbGQpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIEVGaWVsZFR5cGUuUFJFVklFV19JTUFHRTpcbiAgICAgICAgICBmaWVsZCA9IHNldEZpZWxkS2V5VmFsdWUoZmllbGQsIFwidHlwZVwiLCBcImltYWdlXCIpO1xuICAgICAgICAgIGZpZWxkID0gZm9ybWF0RmllbGRUeXBlSW1hZ2UoZmllbGQpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIEVGaWVsZFR5cGUuSU1BR0U6XG4gICAgICAgICAgZmllbGQgPSBmb3JtYXRGaWVsZFR5cGVJbWFnZShmaWVsZCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgRUZpZWxkVHlwZS5EQVRFOlxuICAgICAgICAgIGZpZWxkID0gZm9ybWF0RmllbGRUeXBlRGF0ZShmaWVsZCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgRUZpZWxkVHlwZS5QSE9ORTpcbiAgICAgICAgICBmaWVsZCA9IGZvcm1hdEZpZWxkVHlwZVBob25lKGZpZWxkKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBFRmllbGRUeXBlLlJBRElPOlxuICAgICAgICAgIGZpZWxkID0gZm9ybWF0RmllbGRUeXBlUmFkaW8oZmllbGQpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIEVGaWVsZFR5cGUuU0xJREVSOlxuICAgICAgICAgIGZpZWxkID0gZm9ybWF0RmllbGRUeXBlU2xpZGVyKGZpZWxkKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBcInNlYXJjaC10ZXh0XCI6XG4gICAgICAgICAgZmllbGQgPSBzZXRGaWVsZEtleVZhbHVlKGZpZWxkLCBcInR5cGVcIiwgXCJzZWxlY3RcIik7XG4gICAgICAgICAgZmllbGQgPSBmb3JtYXRGaWVsZFR5cGVTZWxlY3QoZmllbGQpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIEVGaWVsZFR5cGUuRFJPUERPV05fV0lUSF9TRUFSQ0g6XG4gICAgICAgICAgZmllbGQgPSBzZXRGaWVsZEtleVZhbHVlKGZpZWxkLCBcInR5cGVcIiwgXCJzZWxlY3RcIik7XG4gICAgICAgICAgZmllbGQgPSBmb3JtYXRGaWVsZFR5cGVTZWxlY3QoZmllbGQpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIEVGaWVsZFR5cGUuU0VMRUNUOlxuICAgICAgICAgIGZpZWxkID0gZm9ybWF0RmllbGRUeXBlU2VsZWN0KGZpZWxkKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBFRmllbGRUeXBlLkFQSV9DQUxMOlxuICAgICAgICAgIGZpZWxkID0gc2V0RmllbGRLZXlWYWx1ZShmaWVsZCwgXCJ0eXBlXCIsIFwiYXBpXCIpO1xuICAgICAgICAgIGZpZWxkID0gZm9ybWF0RmllbGRUeXBlQXBpKGZpZWxkKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBFRmllbGRUeXBlLkFQSTpcbiAgICAgICAgICBmaWVsZCA9IGZvcm1hdEZpZWxkVHlwZUFwaShmaWVsZCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgRUZpZWxkVHlwZS5PVFA6XG4gICAgICAgICAgZmllbGQgPSBmb3JtYXRGaWVsZFR5cGVPdHAoZmllbGQpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIEVGaWVsZFR5cGUuQUFESEFBUl9OVU1CRVI6XG4gICAgICAgICAgZmllbGQgPSBmb3JtYXRGaWVsZFR5cGVBYWRoYWFyTnVtYmVyKGZpZWxkKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBFRmllbGRUeXBlLkZJTEU6XG4gICAgICAgICAgZmllbGQgPSBmb3JtYXRGaWVsZFR5cGVGaWxlKGZpZWxkKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGZpZWxkO1xuICAgIH07XG5cbiAgICBjb25zdCB1cGRhdGVGaWVsZFZhbGlkYXRvcnMgPSAoZmllbGQ6IGFueSk6IGFueSA9PiB7XG4gICAgICBpZiAoZmllbGQuaXNGb3JtRWxlbWVudCkge1xuICAgICAgICBjb25zdCB2YWxpZGF0b3JzID0gY2hlY2tPYmplY3RLZXlFeGlzdHMoZmllbGQsIFwidmFsaWRhdG9yc1wiKVxuICAgICAgICAgID8gZmllbGQudmFsaWRhdG9yc1xuICAgICAgICAgIDoge307XG5cbiAgICAgICAgZmllbGQgPSBzZXRNaXNzaW5nRmllbGRLZXlWYWx1ZShmaWVsZCwgXCJ2YWxpZGF0b3JzXCIsIHt9KTtcblxuICAgICAgICBmaWVsZCA9IHNldEZpZWxkS2V5VmFsdWUoZmllbGQsIFwidmFsaWRhdG9yc1wiLCB7XG4gICAgICAgICAgLi4uZmllbGRbXCJ2YWxpZGF0b3JzXCJdLFxuICAgICAgICAgIG1pbjogY2hlY2tPYmplY3RLZXlFeGlzdHModmFsaWRhdG9ycywgXCJtaW5cIilcbiAgICAgICAgICAgID8gaXNOb3RFbXB0eVZhbHVlKHZhbGlkYXRvcnMubWluKVxuICAgICAgICAgICAgICA/IE51bWJlcih2YWxpZGF0b3JzLm1pbilcbiAgICAgICAgICAgICAgOiBudWxsXG4gICAgICAgICAgICA6IGNoZWNrT2JqZWN0S2V5RXhpc3RzKGZpZWxkLCBcIm1pblwiKVxuICAgICAgICAgICAgPyBOdW1iZXIoZmllbGQubWluKVxuICAgICAgICAgICAgOiBudWxsLFxuICAgICAgICAgIG1heDogY2hlY2tPYmplY3RLZXlFeGlzdHModmFsaWRhdG9ycywgXCJtYXhcIilcbiAgICAgICAgICAgID8gaXNOb3RFbXB0eVZhbHVlKHZhbGlkYXRvcnMubWF4KVxuICAgICAgICAgICAgICA/IE51bWJlcih2YWxpZGF0b3JzLm1heClcbiAgICAgICAgICAgICAgOiBudWxsXG4gICAgICAgICAgICA6IGNoZWNrT2JqZWN0S2V5RXhpc3RzKGZpZWxkLCBcIm1heFwiKVxuICAgICAgICAgICAgPyBOdW1iZXIoZmllbGQubWF4KVxuICAgICAgICAgICAgOiBudWxsLFxuICAgICAgICAgIHJlcXVpcmVkOiBjaGVja09iamVjdEtleUV4aXN0cyh2YWxpZGF0b3JzLCBcInJlcXVpcmVkXCIpXG4gICAgICAgICAgICA/IEJvb2xlYW4odmFsaWRhdG9ycy5yZXF1aXJlZClcbiAgICAgICAgICAgIDogY2hlY2tPYmplY3RLZXlFeGlzdHMoZmllbGQsIFwicmVxdWlyZWRcIilcbiAgICAgICAgICAgID8gQm9vbGVhbihmaWVsZC5yZXF1aXJlZClcbiAgICAgICAgICAgIDogZmFsc2UsXG4gICAgICAgICAgbWluTGVuZ3RoOiBjaGVja09iamVjdEtleUV4aXN0cyh2YWxpZGF0b3JzLCBcIm1pbkxlbmd0aFwiKVxuICAgICAgICAgICAgPyBpc05vdEVtcHR5VmFsdWUodmFsaWRhdG9ycy5taW5MZW5ndGgpXG4gICAgICAgICAgICAgID8gTnVtYmVyKHZhbGlkYXRvcnMubWluTGVuZ3RoKVxuICAgICAgICAgICAgICA6IG51bGxcbiAgICAgICAgICAgIDogY2hlY2tPYmplY3RLZXlFeGlzdHMoZmllbGQsIFwibWluTGVuZ3RoXCIpXG4gICAgICAgICAgICA/IE51bWJlcihmaWVsZC5taW5MZW5ndGgpXG4gICAgICAgICAgICA6IG51bGwsXG4gICAgICAgICAgbWF4TGVuZ3RoOiBjaGVja09iamVjdEtleUV4aXN0cyh2YWxpZGF0b3JzLCBcIm1heExlbmd0aFwiKVxuICAgICAgICAgICAgPyBpc05vdEVtcHR5VmFsdWUodmFsaWRhdG9ycy5tYXhMZW5ndGgpXG4gICAgICAgICAgICAgID8gTnVtYmVyKHZhbGlkYXRvcnMubWF4TGVuZ3RoKVxuICAgICAgICAgICAgICA6IG51bGxcbiAgICAgICAgICAgIDogY2hlY2tPYmplY3RLZXlFeGlzdHMoZmllbGQsIFwibGVuZ3RoXCIpXG4gICAgICAgICAgICA/IE51bWJlcihmaWVsZC5sZW5ndGgpXG4gICAgICAgICAgICA6IGNoZWNrT2JqZWN0S2V5RXhpc3RzKGZpZWxkLCBcIm1heExlbmd0aFwiKVxuICAgICAgICAgICAgPyBOdW1iZXIoZmllbGQubWF4TGVuZ3RoKVxuICAgICAgICAgICAgOiBudWxsLFxuICAgICAgICAgIHBhdHRlcm46IGNoZWNrT2JqZWN0S2V5RXhpc3RzKHZhbGlkYXRvcnMsIFwicGF0dGVyblwiKVxuICAgICAgICAgICAgPyBpc05vdEVtcHR5VmFsdWUodmFsaWRhdG9ycy5wYXR0ZXJuKVxuICAgICAgICAgICAgICA/IHZhbGlkYXRvcnMucGF0dGVyblxuICAgICAgICAgICAgICA6IHVuZGVmaW5lZFxuICAgICAgICAgICAgOiBjaGVja09iamVjdEtleUV4aXN0cyhmaWVsZCwgXCJwYXR0ZXJuXCIpXG4gICAgICAgICAgICA/IHsga2V5OiBcIkNVU1RPTVwiLCBwYXR0ZXJuOiBTdHJpbmcoZmllbGQucGF0dGVybikgfVxuICAgICAgICAgICAgOiBjaGVja09iamVjdEtleUV4aXN0cyhmaWVsZCwgXCJyZWdleFwiKVxuICAgICAgICAgICAgPyB7IGtleTogXCJDVVNUT01cIiwgcGF0dGVybjogU3RyaW5nKGZpZWxkLnJlZ2V4KSB9XG4gICAgICAgICAgICA6IHVuZGVmaW5lZFxuICAgICAgICB9KTtcblxuICAgICAgICBkZWxldGUgZmllbGQubWluO1xuICAgICAgICBkZWxldGUgZmllbGQubWF4O1xuICAgICAgICBkZWxldGUgZmllbGQucmVxdWlyZWQ7XG4gICAgICAgIGRlbGV0ZSBmaWVsZC5taW5MZW5ndGg7XG4gICAgICAgIGRlbGV0ZSBmaWVsZC5sZW5ndGg7XG4gICAgICAgIGRlbGV0ZSBmaWVsZC5tYXhMZW5ndGg7XG4gICAgICAgIGRlbGV0ZSBmaWVsZC5wYXR0ZXJuO1xuICAgICAgICBkZWxldGUgZmllbGQucmVnZXg7XG5cbiAgICAgICAgc3dpdGNoIChmaWVsZC50eXBlKSB7XG4gICAgICAgICAgY2FzZSBFRmllbGRUeXBlLlRFWFQ6XG4gICAgICAgICAgICBkZWxldGUgZmllbGQudmFsaWRhdG9ycy5taW47XG4gICAgICAgICAgICBkZWxldGUgZmllbGQudmFsaWRhdG9ycy5tYXg7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIEVGaWVsZFR5cGUuQ0hFQ0tCT1g6XG4gICAgICAgICAgICBkZWxldGUgZmllbGQudmFsaWRhdG9ycy5taW47XG4gICAgICAgICAgICBkZWxldGUgZmllbGQudmFsaWRhdG9ycy5tYXg7XG4gICAgICAgICAgY2FzZSBFRmllbGRUeXBlLlBSRVZJRVdfSU1BR0U6XG4gICAgICAgICAgICBkZWxldGUgZmllbGQudmFsaWRhdG9ycy5taW47XG4gICAgICAgICAgICBkZWxldGUgZmllbGQudmFsaWRhdG9ycy5tYXg7XG4gICAgICAgICAgICBkZWxldGUgZmllbGQudmFsaWRhdG9ycy5taW5MZW5ndGg7XG4gICAgICAgICAgICBkZWxldGUgZmllbGQudmFsaWRhdG9ycy5tYXhMZW5ndGg7XG4gICAgICAgICAgY2FzZSBFRmllbGRUeXBlLkZJTEU6XG4gICAgICAgICAgICBkZWxldGUgZmllbGQudmFsaWRhdG9ycy5taW47XG4gICAgICAgICAgICBkZWxldGUgZmllbGQudmFsaWRhdG9ycy5tYXg7XG4gICAgICAgICAgICBkZWxldGUgZmllbGQudmFsaWRhdG9ycy5taW5MZW5ndGg7XG4gICAgICAgICAgICBkZWxldGUgZmllbGQudmFsaWRhdG9ycy5tYXhMZW5ndGg7XG4gICAgICAgICAgICBkZWxldGUgZmllbGQudmFsaWRhdG9ycy5wYXR0ZXJuO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGlzRW1wdHlWYWx1ZShmaWVsZC52YWxpZGF0b3JzPy5taW4pKSB7XG4gICAgICAgICAgZGVsZXRlIGZpZWxkLnZhbGlkYXRvcnMubWluO1xuICAgICAgICB9XG4gICAgICAgIGlmIChpc0VtcHR5VmFsdWUoZmllbGQudmFsaWRhdG9ycz8ubWF4KSkge1xuICAgICAgICAgIGRlbGV0ZSBmaWVsZC52YWxpZGF0b3JzLm1pbjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaXNFbXB0eVZhbHVlKGZpZWxkLnZhbGlkYXRvcnM/Lm1pbkxlbmd0aCkpIHtcbiAgICAgICAgICBkZWxldGUgZmllbGQudmFsaWRhdG9ycy5taW5MZW5ndGg7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGlzRW1wdHlWYWx1ZShmaWVsZC52YWxpZGF0b3JzPy5tYXhMZW5ndGgpKSB7XG4gICAgICAgICAgZGVsZXRlIGZpZWxkLnZhbGlkYXRvcnMubWF4TGVuZ3RoO1xuICAgICAgICB9XG4gICAgICAgIGlmIChpc0VtcHR5VmFsdWUoZmllbGQudmFsaWRhdG9ycz8ucGF0dGVybikpIHtcbiAgICAgICAgICBkZWxldGUgZmllbGQudmFsaWRhdG9ycy5wYXR0ZXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgZmllbGQuZm9jdXMgPSBmYWxzZTtcbiAgICAgICAgZmllbGQuaW52YWxpZCA9IGZhbHNlO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gZmllbGQ7XG4gICAgfTtcblxuICAgIGNvbnN0IHVwZGF0ZUZpZWxkRGVmYXVsdFZhbHVlID0gKGZpZWxkOiBhbnkpOiBhbnkgPT4ge1xuICAgICAgY29uc3QgZGVmYXVsdFZhbHVlID0ge1xuICAgICAgICB2YWx1ZToge1xuICAgICAgICAgIGlzX2ZvdW5kOiBmYWxzZSxcbiAgICAgICAgICB2YWx1ZTogXCJcIixcbiAgICAgICAgICBzb3VyY2VzOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGtleTogXCJPQkpFQ1RcIixcbiAgICAgICAgICAgICAgcHJvcHM6IHtcbiAgICAgICAgICAgICAgICBvYmplY3Q6IHtcbiAgICAgICAgICAgICAgICAgIGtleTogXCJGT1JNX0RBVEFcIixcbiAgICAgICAgICAgICAgICAgIHBhdGg6IGAkLiR7ZmllbGQua2V5fWBcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHZhbHVlOiBcIlwiLFxuICAgICAgICAgICAgICB2YWxpZGF0aW9uOiB7XG4gICAgICAgICAgICAgICAgaXNfdmFsaWQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgIHRyaWdnZXJzOiBbXCJPTl9JTklUXCJdLFxuICAgICAgICAgICAgICAgIHJ1bGVzOiBbXSxcbiAgICAgICAgICAgICAgICBhY3Rpb25zOiBbXG4gICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGlkOiBcIjFcIixcbiAgICAgICAgICAgICAgICAgICAga2V5OiBcIlNFVF9GSUVMRF9ERUZBVUxUX1ZBTFVFXCIsXG4gICAgICAgICAgICAgICAgICAgIGNvbmRpdGlvbjogXCIxXCIsXG4gICAgICAgICAgICAgICAgICAgIHByb3BzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZToge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk6IFwiT0JKRUNUXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHByb3BzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb2JqZWN0OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk6IFwiRk9STV9EQVRBXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXRoOiBgJC4ke2ZpZWxkLmtleX1gXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgXVxuICAgICAgICB9XG4gICAgICB9O1xuXG4gICAgICBpZiAoZmllbGQuaXNGb3JtRWxlbWVudCkge1xuICAgICAgICBpZiAoY2hlY2tPYmplY3RLZXlFeGlzdHMoZmllbGQsIFwiZGVmYXVsdFZhbHVlXCIpKSB7XG4gICAgICAgICAgcmV0dXJuIGZpZWxkO1xuICAgICAgICB9IGVsc2UgaWYgKGNoZWNrT2JqZWN0UGF0aEV4aXN0cyhmaWVsZCwgXCJkZWZhdWx0LnZhbHVlLnNvdXJjZXNcIikpIHtcbiAgICAgICAgICByZXR1cm4gZmllbGQ7XG4gICAgICAgIH0gZWxzZSBpZiAoIWNoZWNrT2JqZWN0UGF0aEV4aXN0cyhmaWVsZCwgXCJkZWZhdWx0LnZhbHVlLnNvdXJjZXNcIikpIHtcbiAgICAgICAgICBmaWVsZCA9IHNldEZpZWxkS2V5VmFsdWUoZmllbGQsIFwiZGVmYXVsdFwiLCBkZWZhdWx0VmFsdWUpO1xuICAgICAgICAgIHJldHVybiBmaWVsZDtcbiAgICAgICAgfVxuXG4gICAgICAgIGRlbGV0ZSBmaWVsZFtcImRlZmF1bHRWYWxcIl07XG4gICAgICAgIGRlbGV0ZSBmaWVsZFtcImRlZmF1bHRWYWx1ZVwiXTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGZpZWxkO1xuICAgIH07XG5cbiAgICBjb25zdCB1cGRhdGVGaWVsZERpc2FiaWxpdHkgPSAoZmllbGQ6IGFueSk6IGFueSA9PiB7XG4gICAgICBmaWVsZCA9IHNldE1pc3NpbmdLZXlWYWx1ZShmaWVsZCwgXCJkaXNhYmxlZFwiLCBmYWxzZSk7XG5cbiAgICAgIHJldHVybiBmaWVsZDtcbiAgICB9O1xuXG4gICAgY29uc3QgdXBkYXRlRmllbGRNZXNzYWdlcyA9IChmaWVsZDogYW55KTogYW55ID0+IHtcbiAgICAgIGlmIChmaWVsZC5pc0Zvcm1FbGVtZW50KSB7XG4gICAgICAgIGZpZWxkID0gc2V0TWlzc2luZ0ZpZWxkS2V5VmFsdWUoZmllbGQsIFwibWVzc2FnZXNcIiwgW10pO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gZmllbGQ7XG4gICAgfTtcblxuICAgIGNvbnN0IHVwZGF0ZUZpZWxkUmVzZXRCdXR0b24gPSAoZmllbGQ6IGFueSk6IGFueSA9PiB7XG4gICAgICBpZiAoZmllbGQuaXNGb3JtRWxlbWVudCkge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgY2hlY2tPYmplY3RLZXlFeGlzdHMoZmllbGQsIFwiYWN0aW9uXCIpICYmXG4gICAgICAgICAgZmllbGQuYWN0aW9uID09PSBcInJlc2V0XCIgJiZcbiAgICAgICAgICBjaGVja09iamVjdEtleUV4aXN0cyhmaWVsZCwgXCJmaWVsZHNcIilcbiAgICAgICAgKSB7XG4gICAgICAgICAgZmllbGQgPSBzZXRGaWVsZEtleVZhbHVlKGZpZWxkLCBcInJlc2V0XCIsIHtcbiAgICAgICAgICAgIGZpZWxkczogZmllbGQuZmllbGRzXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGZpZWxkO1xuICAgIH07XG5cbiAgICBjb25zdCBzZXRGb3JtRmllbGRzID0gKGZvcm1Db25maWc6IGFueSwgZmllbGRzOiBhbnlbXSk6IGFueSA9PiB7XG4gICAgICBpZiAoY2hlY2tPYmplY3RLZXlFeGlzdHMoZm9ybUNvbmZpZywgXCJtdWx0aUZvcm1cIikpIHtcbiAgICAgICAgZm9ybUNvbmZpZy5tdWx0aUZvcm1bXCJmaWVsZHNcIl0gPSBmaWVsZHM7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBmb3JtQ29uZmlnW1wiZmllbGRzXCJdID0gZmllbGRzO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gZm9ybUNvbmZpZztcbiAgICB9O1xuXG4gICAgY29uc3Qgc2V0Rm9ybUZpZWxkR3JvdXBzID0gKGZvcm1Db25maWc6IGFueSwgZ3JvdXBzOiBhbnkpOiBhbnkgPT4ge1xuICAgICAgZm9ybUNvbmZpZ1tcImZpZWxkR3JvdXBzXCJdID0gZ3JvdXBzO1xuXG4gICAgICByZXR1cm4gZm9ybUNvbmZpZztcbiAgICB9O1xuXG4gICAgY29uc3QgdXBkYXRlRm9ybUZpZWxkR3JvdXBzID0gKGZpZWxkR3JvdXBzOiBhbnksIGZpZWxkOiBhbnkpOiBhbnkgPT4ge1xuICAgICAgaWYgKGNoZWNrT2JqZWN0S2V5RXhpc3RzKGZpZWxkLCBcImdyb3VwS2V5XCIpKSB7XG4gICAgICAgIGlmIChjaGVja09iamVjdEtleUV4aXN0cyhmaWVsZEdyb3VwcywgZmllbGQuZ3JvdXBLZXkpKSB7XG4gICAgICAgICAgZmllbGRHcm91cHNbZmllbGQuZ3JvdXBLZXldLnB1c2goZmllbGQua2V5KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBmaWVsZEdyb3Vwc1tmaWVsZC5ncm91cEtleV0gPSBbZmllbGQua2V5XTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gZmllbGRHcm91cHM7XG4gICAgfTtcblxuICAgIGxldCBmaWVsZHM6IGFueVtdID0gZ2V0Rm9ybUZpZWxkcyhmb3JtQ29uZmlnKTtcblxuICAgIGxldCBmaWVsZEdyb3VwczogYW55ID0ge307XG5cbiAgICBmb3IgKGxldCBmaWVsZCBvZiBmaWVsZHMpIHtcbiAgICAgIGZpZWxkID0gZm9ybWF0T25GaWVsZFR5cGUoZmllbGQpO1xuXG4gICAgICBmaWVsZCA9IHVwZGF0ZUZpZWxkRGlzYWJpbGl0eShmaWVsZCk7XG5cbiAgICAgIGZpZWxkR3JvdXBzID0gdXBkYXRlRm9ybUZpZWxkR3JvdXBzKGZpZWxkR3JvdXBzLCBmaWVsZCk7XG5cbiAgICAgIGZpZWxkID0gdXBkYXRlRmllbGREZWZhdWx0VmFsdWUoZmllbGQpO1xuXG4gICAgICBmaWVsZCA9IHVwZGF0ZUZpZWxkVmFsaWRhdG9ycyhmaWVsZCk7XG5cbiAgICAgIGZpZWxkID0gdXBkYXRlRmllbGRSZXNldEJ1dHRvbihmaWVsZCk7XG5cbiAgICAgIGZpZWxkID0gdXBkYXRlRmllbGRNZXNzYWdlcyhmaWVsZCk7XG4gICAgfVxuXG4gICAgZm9ybUNvbmZpZyA9IHNldEZvcm1GaWVsZEdyb3Vwcyhmb3JtQ29uZmlnLCBmaWVsZEdyb3Vwcyk7XG5cbiAgICBmb3JtQ29uZmlnID0gc2V0Rm9ybUZpZWxkcyhmb3JtQ29uZmlnLCBmaWVsZHMpO1xuXG4gICAgcmV0dXJuIGZvcm1Db25maWc7XG4gIH1cbn1cbiJdfQ==
|
|
540
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLWNvbnZlcnRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2t3aWtpZC1mb3Jtcy9zcmMvbGliL3JlbmRlcmVyL2NvbmZpZy1jb252ZXJ0ZXIvY29uZmlnLWNvbnZlcnRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNMLG9CQUFvQixFQUNwQixxQkFBcUIsRUFDckIsaUJBQWlCLEVBQ2pCLFlBQVksRUFDWixlQUFlLEVBQ2YsU0FBUyxFQUNULFlBQVksRUFDWixrQkFBa0IsRUFDbEIsb0JBQW9CLEVBQ3JCLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNEQUFzRCxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2hFLE9BQU8sRUFDTCxhQUFhLEVBQ2IsVUFBVSxFQUNWLFVBQVUsRUFDVixxQkFBcUIsRUFDckIsaUJBQWlCLEVBQ2pCLGdCQUFnQixFQUNoQix1QkFBdUIsRUFDeEIsTUFBTSwyQkFBMkIsQ0FBQztBQUVuQyxNQUFNLE9BQU8sU0FBUztJQUVwQiw2QkFBNkIsQ0FBQyxVQUFlLEVBQUUsSUFBUztRQUN0RCxJQUFJLG9CQUFvQixDQUFDLElBQUksRUFBRSxpQkFBaUIsQ0FBQyxFQUFFO1lBQ2pELFVBQVUsR0FBRyxvQkFBb0IsQ0FDL0IsVUFBVSxFQUNWLGlCQUFpQixFQUNqQixJQUFJLENBQUMsZUFBZSxDQUNyQixDQUFDO1NBQ0g7UUFFRCxPQUFPLFVBQVUsQ0FBQztJQUNwQixDQUFDO0lBR0QsOEJBQThCLENBQUMsVUFBZSxFQUFFLFVBQWU7UUFDN0QsSUFBSSxlQUFlLENBQUMsVUFBVSxDQUFDLEVBQUU7WUFDL0IsSUFBSSxvQkFBb0IsQ0FBQyxVQUFVLEVBQUUsT0FBTyxDQUFDLEVBQUU7Z0JBQzdDLElBQUksb0JBQW9CLENBQUMsVUFBVSxDQUFDLEtB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YmplY3RQYXRoRXhpc3RzLFxuICBnZXRPYmplY3REZWVwQ29weSxcbiAgaXNFbXB0eVZhbHVlLFxuICBpc05vdEVtcHR5VmFsdWUsXG4gIGxvZ01ldGhvZCxcbiAgbWVyZ2VPYmplY3RzLFxuICBzZXRNaXNzaW5nS2V5VmFsdWUsXG4gIHNldFZhbHVlVG9PYmplY3RQYXRoXG59IGZyb20gXCJrd2lraWQtdG9vbGtpdFwiO1xuaW1wb3J0IHsgRUZpZWxkVHlwZSB9IGZyb20gXCIuLi9mb3JtLXZpZXcvZGVmaW5pdGlvbnMvZm9ybS12aWV3LmZpZWxkcy5kZWZpbml0aW9uXCI7XG5pbXBvcnQgeyBGSUVMRF9QUk9QRVJUSUVTIH0gZnJvbSBcIi4vY29uZmlnLWNvbnZlcnRlci5jb25zdGFudHNcIjtcbmltcG9ydCB7XG4gIGdldEZvcm1GaWVsZHMsXG4gIGdldE1heERhdGUsXG4gIGdldE1pbkRhdGUsXG4gIHNldEZpZWxkQXNGb3JtRWxlbWVudCxcbiAgc2V0RmllbGRLZXlIaWRkZW4sXG4gIHNldEZpZWxkS2V5VmFsdWUsXG4gIHNldE1pc3NpbmdGaWVsZEtleVZhbHVlXG59IGZyb20gXCIuL2NvbmZpZy1jb252ZXJ0ZXIuaGVscGVyXCI7XG5cbmV4cG9ydCBjbGFzcyBDb252ZXJ0ZXIge1xuICBAbG9nTWV0aG9kXG4gIHVwZGF0ZUZvcm1Db25maWdNaXNjZWxsYW5lb3VzKGZvcm1Db25maWc6IGFueSwgYXJnczogYW55KTogYW55IHtcbiAgICBpZiAoY2hlY2tPYmplY3RLZXlFeGlzdHMoYXJncywgXCJmb3Jtc0xpc3RMZW5ndGhcIikpIHtcbiAgICAgIGZvcm1Db25maWcgPSBzZXRWYWx1ZVRvT2JqZWN0UGF0aChcbiAgICAgICAgZm9ybUNvbmZpZyxcbiAgICAgICAgXCJmb3Jtc0xpc3RMZW5ndGhcIixcbiAgICAgICAgYXJncy5mb3Jtc0xpc3RMZW5ndGhcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZvcm1Db25maWc7XG4gIH1cblxuICBAbG9nTWV0aG9kXG4gIHVwZGF0ZUZvcm1Db25maWdGcm9tVXNlckNvbmZpZyhmb3JtQ29uZmlnOiBhbnksIHVzZXJDb25maWc6IGFueSk6IGFueSB7XG4gICAgaWYgKGlzTm90RW1wdHlWYWx1ZSh1c2VyQ29uZmlnKSkge1xuICAgICAgaWYgKGNoZWNrT2JqZWN0S2V5RXhpc3RzKHVzZXJDb25maWcsIFwidGhlbWVcIikpIHtcbiAgICAgICAgaWYgKGNoZWNrT2JqZWN0S2V5RXhpc3RzKHVzZXJDb25maWcudGhlbWUsIFwiY2xpZW50TG9nb1wiKSkge1xuICAgICAgICAgIHNldFZhbHVlVG9PYmplY3RQYXRoKFxuICAgICAgICAgICAgZm9ybUNvbmZpZyxcbiAgICAgICAgICAgIFwicHJvcGVydGllcy5oZWFkZXIubG9nby5zcmNcIixcbiAgICAgICAgICAgIHVzZXJDb25maWcudGhlbWUuY2xpZW50TG9nb1xuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gZm9ybUNvbmZpZztcbiAgfVxuXG4gIEBsb2dNZXRob2RcbiAgdXBkYXRlRm9ybUNvbmZpZ1Byb3BlcnRpZXMoZm9ybUNvbmZpZzogYW55KTogYW55IHtcbiAgICBjb25zdCBmb3JtVmlld1Byb3BlcnRpZXMgPSB7XG4gICAgICBoZWFkZXI6IHtcbiAgICAgICAgbG9nbzoge1xuICAgICAgICAgIHNyYzogXCJcIixcbiAgICAgICAgICBhbHQ6IFwiTG9nb1wiLFxuICAgICAgICAgIGhpZGRlbjogZmFsc2VcbiAgICAgICAgfSxcbiAgICAgICAgYmFja0J1dHRvbjoge1xuICAgICAgICAgIG1vZGU6IFwiVEFCQkVEXCIsXG4gICAgICAgICAgYnlwYXNzQ29uZmlybWF0aW9uOiBmYWxzZSxcbiAgICAgICAgICBoaWRkZW46IHRydWVcbiAgICAgICAgfSxcbiAgICAgICAgdGl0bGU6IHtcbiAgICAgICAgICBoaWRkZW46IGZhbHNlLFxuICAgICAgICAgIGxhYmVsOiBmb3JtQ29uZmlnPy50aXRsZSA/PyBmb3JtQ29uZmlnPy5wcm9wcy50aXRsZSA/PyBcIkZvcm1cIlxuICAgICAgICB9LFxuICAgICAgICBzdGVwczoge1xuICAgICAgICAgIGhpZGRlbjogZmFsc2VcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIGZvb3Rlcjoge1xuICAgICAgICB2aWV3Rm9ybXNCdXR0b246IHtcbiAgICAgICAgICBieXBhc3NDb25maXJtYXRpb246IGZhbHNlLFxuICAgICAgICAgIGhpZGRlbjogZmFsc2UsXG4gICAgICAgICAgbGFiZWw6IFwiVmlldyBGb3Jtc1wiXG4gICAgICAgIH0sXG4gICAgICAgIHNhdmVCdXR0b246IHtcbiAgICAgICAgICBoaWRkZW46IGZhbHNlLFxuICAgICAgICAgIGxhYmVsOiBcIlNhdmVcIlxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgaXNVbnNhdmVkRGF0YUFsZXJ0RW5hYmxlZDogZmFsc2VcbiAgICB9O1xuXG4gICAgaWYgKGNoZWNrT2JqZWN0S2V5RXhpc3RzKGZvcm1Db25maWcsIFwicHJvcGVydGllc1wiKSkge1xuICAgICAgZm9ybUNvbmZpZy5wcm9wZXJ0aWVzID0gZ2V0T2JqZWN0RGVlcENvcHkoXG4gICAgICAgIG1lcmdlT2JqZWN0cyhmb3JtVmlld1Byb3BlcnRpZXMsIGZvcm1Db25maWcucHJvcGVydGllcylcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGZvcm1Db25maWcucHJvcGVydGllcyA9IGZvcm1WaWV3UHJvcGVydGllcztcbiAgICB9XG5cbiAgICByZXR1cm4gZm9ybUNvbmZpZztcbiAgfVxuXG4gIEBsb2dNZXRob2RcbiAgY29udmVydEZvcm1Db25maWcoZm9ybUNvbmZpZzogYW55KTogYW55IHtcbiAgICBjb25zdCBmb3JtYXRPbkZpZWxkVHlwZSA9IChmaWVsZDogYW55KTogYW55ID0+IHtcbiAgICAgIGNvbnN0IHVwZGF0ZUZvcm1GaWVsZFByb3BlcnRpZXMgPSAoZmllbGQ6IGFueSk6IGFueSA9PiB7XG4gICAgICAgIGlmIChjaGVja09iamVjdEtleUV4aXN0cyhGSUVMRF9QUk9QRVJUSUVTLCBmaWVsZC50eXBlKSkge1xuICAgICAgICAgIGZpZWxkLnByb3BlcnRpZXMgPSBtZXJnZU9iamVjdHMoXG4gICAgICAgICAgICBnZXRPYmplY3REZWVwQ29weShGSUVMRF9QUk9QRVJUSUVTW2ZpZWxkLnR5cGVdKSxcbiAgICAgICAgICAgIGZpZWxkLnByb3BlcnRpZXNcbiAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGZpZWxkO1xuICAgICAgfTtcblxuICAgICAgY29uc3QgZm9ybWF0RmllbGRUeXBlSHRtbCA9IChmaWVsZDogYW55KTogYW55ID0+IHtcbiAgICAgICAgZmllbGQgPSBzZXRGaWVsZEtleUhpZGRlbihmaWVsZCk7XG4gICAgICAgIGZpZWxkID0gc2V0RmllbGRBc0Zvcm1FbGVtZW50KGZpZWxkLCBmYWxzZSk7XG5cbiAgICAgICAgcmV0dXJuIGZpZWxkO1xuICAgICAgfTtcbiAgICAgIGNvbnN0IGZvcm1hdEZpZWxkVHlwZVRpdGxlID0gKGZpZWxkOiBhbnkpOiBhbnkgPT4ge1xuICAgICAgICBmaWVsZCA9IHNldEZpZWxkS2V5SGlkZGVuKGZpZWxkKTtcbiAgICAgICAgZmllbGQgPSBzZXRGaWVsZEFzRm9ybUVsZW1lbnQoZmllbGQsIGZhbHNlKTtcblxuICAgICAgICByZXR1cm4gZmllbGQ7XG4gICAgICB9O1xuICAgICAgY29uc3QgZm9ybWF0RmllbGRUeXBlVGV4dCA9IChmaWVsZDogYW55KTogYW55ID0+IHtcbiAgICAgICAgZmllbGQgPSBzZXRGaWVsZEtleUhpZGRlbihmaWVsZCk7XG4gICAgICAgIGZpZWxkID0gc2V0RmllbGRBc0Zvcm1FbGVtZW50KGZpZWxkLCB0cnVlKTtcbiAgICAgICAgZmllbGQgPSB1cGRhdGVGb3JtRmllbGRQcm9wZXJ0aWVzKGZpZWxkKTtcblxuICAgICAgICByZXR1cm4gZmllbGQ7XG4gICAgICB9O1xuICAgICAgY29uc3QgZm9ybWF0RmllbGRUeXBlVGV4dGFyZWEgPSAoZmllbGQ6IGFueSk6IGFueSA9PiB7XG4gICAgICAgIGZpZWxkID0gc2V0RmllbGRLZXlIaWRkZW4oZmllbGQpO1xuICAgICAgICBmaWVsZCA9IHNldEZpZWxkQXNGb3JtRWxlbWVudChmaWVsZCwgdHJ1ZSk7XG4gICAgICAgIHJldHVybiBmaWVsZDtcbiAgICAgIH07XG4gICAgICBjb25zdCBmb3JtYXRGaWVsZFR5cGVDaGVja2JveCA9IChmaWVsZDogYW55KTogYW55ID0+IHtcbiAgICAgICAgZmllbGQgPSBzZXRGaWVsZEtleUhpZGRlbihmaWVsZCk7XG4gICAgICAgIGZpZWxkID0gc2V0RmllbGRBc0Zvcm1FbGVtZW50KGZpZWxkLCB0cnVlKTtcbiAgICAgICAgcmV0dXJuIGZpZWxkO1xuICAgICAgfTtcbiAgICAgIGNvbnN0IGZvcm1hdEZpZWxkVHlwZU51bWJlciA9IChmaWVsZDogYW55KTogYW55ID0+IHtcbiAgICAgICAgZmllbGQgPSBzZXRGaWVsZEtleUhpZGRlbihmaWVsZCk7XG4gICAgICAgIGZpZWxkID0gc2V0RmllbGRBc0Zvcm1FbGVtZW50KGZpZWxkLCB0cnVlKTtcblxuICAgICAgICBpZiAoY2hlY2tPYmplY3RLZXlFeGlzdHMoZmllbGQsIFwia2V5XCIpKSB7XG4gICAgICAgICAgaWYgKGZpZWxkLmtleSA9PT0gXCJhYWRoYWFyX251bWJlclwiKSB7XG4gICAgICAgICAgICBmaWVsZCA9IHNldEZpZWxkS2V5VmFsdWUoZmllbGQsIFwidHlwZVwiLCBcImFhZGhhYXJfbnVtYmVyXCIpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoZmllbGQua2V5ID09PSBcImNvbnRhY3RfbnVtYmVyXCIpIHtcbiAgICAgICAgICAgIGZpZWxkID0gc2V0RmllbGRLZXlWYWx1ZShmaWVsZCwgXCJ0eXBlXCIsIFwicGhvbmVcIik7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKGZpZWxkLnR5cGUgPT09IFwicGhvbmVcIiB8fCBmaWVsZC50eXBlID09PSBcIm51bWJlclwiKSB7XG4gICAgICAgICAgICBmaWVsZCA9IHVwZGF0ZUZvcm1GaWVsZFByb3BlcnRpZXMoZmllbGQpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBmaWVsZDtcbiAgICAgIH07XG4gICAgICBjb25zdCBmb3JtYXRGaWVsZFR5cGVJbWFnZSA9IChmaWVsZDogYW55KTogYW55ID0+IHtcbiAgICAgICAgZmllbGQgPSBzZXRGaWVsZEtleUhpZGRlbihmaWVsZCk7XG4gICAgICAgIGZpZWxkID0gc2V0RmllbGRBc0Zvcm1FbGVtZW50KGZpZWxkLCB0cnVlKTtcbiAgICAgICAgZmllbGQgPSB1cGRhdGVGb3JtRmllbGRQcm9wZXJ0aWVzKGZpZWxkKTtcblxuICAgICAgICByZXR1cm4gZmllbGQ7XG4gICAgICB9O1xuICAgICAgY29uc3QgZm9ybWF0RmllbGRUeXBlRGF0ZSA9IChmaWVsZDogYW55KTogYW55ID0+IHtcbiAgICAgICAgZmllbGQgPSBzZXRGaWVsZEtleUhpZGRlbihmaWVsZCk7XG4gICAgICAgIGZpZWxkID0gc2V0RmllbGRBc0Zvcm1FbGVtZW50KGZpZWxkLCB0cnVlKTtcblxuICAgICAgICBmaWVsZC5wcm9wZXJ0aWVzID0gZ2V0T2JqZWN0RGVlcENvcHkoXG4gICAgICAgICAgbWVyZ2VPYmplY3RzKFxuICAgICAgICAgICAgZ2V0T2JqZWN0RGVlcENvcHkoRklFTERfUFJPUEVSVElFU1tmaWVsZC50eXBlXSksXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIG1heDogZ2V0TWF4RGF0ZShmaWVsZCksXG4gICAgICAgICAgICAgIG1pbjogZ2V0TWluRGF0ZShmaWVsZClcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBmaWVsZC5wcm9wZXJ0aWVzXG4gICAgICAgICAgKVxuICAgICAgICApO1xuXG4gICAgICAgIHJldHVybiBmaWVsZDtcbiAgICAgIH07XG4gICAgICBjb25zdCBmb3JtYXRGaWVsZFR5cGVQaG9uZSA9IChmaWVsZDogYW55KTogYW55ID0+IHtcbiAgICAgICAgZmllbGQgPSBzZXRGaWVsZEtleUhpZGRlbihmaWVsZCk7XG4gICAgICAgIGZpZWxkID0gc2V0RmllbGRBc0Zvcm1FbGVtZW50KGZpZWxkLCB0cnVlKTtcbiAgICAgICAgcmV0dXJuIGZpZWxkO1xuICAgICAgfTtcbiAgICAgIGNvbnN0IGZvcm1hdEZpZWxkVHlwZVJhZGlvID0gKGZpZWxkOiBhbnkpOiBhbnkgPT4ge1xuICAgICAgICBmaWVsZCA9IHNldEZpZWxkS2V5SGlkZGVuKGZpZWxkKTtcbiAgICAgICAgZmllbGQgPSBzZXRGaWVsZEFzRm9ybUVsZW1lbnQoZmllbGQsIHRydWUpO1xuICAgICAgICBmaWVsZCA9IHVwZGF0ZUZvcm1GaWVsZFByb3BlcnRpZXMoZmllbGQpO1xuXG4gICAgICAgIGZpZWxkLm9wdGlvbnMgPSBmaWVsZC5vcHRpb25zLm1hcCgoeDogYW55KTogYW55ID0+IHtcbiAgICAgICAgICBpZiAodHlwZW9mIHggPT09IFwic3RyaW5nXCIgfHwgdHlwZW9mIHggPT09IFwibnVtYmVyXCIpIHtcbiAgICAgICAgICAgIHJldHVybiB7IGxhYmVsOiB4LCBkaXNhYmxlZDogZmFsc2UsIGRlc2NyaXB0aW9uOiBcIlwiIH07XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgY2hlY2tPYmplY3RLZXlFeGlzdHMoeCwgXCJsYWJlbFwiKSAmJlxuICAgICAgICAgICAgICBjaGVja09iamVjdEtleUV4aXN0cyh4LCBcImRpc2FibGVkXCIpICYmXG4gICAgICAgICAgICAgIGNoZWNrT2JqZWN0S2V5RXhpc3RzKHgsIFwiZGVzY3JpcHRpb25cIilcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICByZXR1cm4geDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghY2hlY2tPYmplY3RLZXlFeGlzdHMoeCwgXCJkaXNhYmxlZFwiKSkge1xuICAgICAgICAgICAgICB4ID0geyAuLi54LCBkaXNhYmxlZDogZmFsc2UgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghY2hlY2tPYmplY3RLZXlFeGlzdHMoeCwgXCJkZXNjcmlwdGlvblwiKSkge1xuICAgICAgICAgICAgICB4ID0geyAuLi54LCBkZXNjcmlwdGlvbjogZmFsc2UgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB4O1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIGZpZWxkO1xuICAgICAgfTtcbiAgICAgIGNvbnN0IGZvcm1hdEZpZWxkVHlwZVNsaWRlciA9IChmaWVsZDogYW55KTogYW55ID0+IHtcbiAgICAgICAgZmllbGQgPSBzZXRGaWVsZEtleUhpZGRlbihmaWVsZCk7XG4gICAgICAgIGZpZWxkID0gc2V0RmllbGRBc0Zvcm1FbGVtZW50KGZpZWxkLCB0cnVlKTtcbiAgICAgICAgZmllbGQgPSB1cGRhdGVGb3JtRmllbGRQcm9wZXJ0aWVzKGZpZWxkKTtcblxuICAgICAgICByZXR1cm4gZmllbGQ7XG4gICAgICB9O1xuICAgICAgY29uc3QgZm9ybWF0RmllbGRUeXBlU2VsZWN0ID0gKGZpZWxkOiBhbnkpOiBhbnkgPT4ge1xuICAgICAgICBmaWVsZCA9IHNldEZpZWxkS2V5SGlkZGVuKGZpZWxkKTtcbiAgICAgICAgZmllbGQgPSBzZXRGaWVsZEFzRm9ybUVsZW1lbnQoZmllbGQsIHRydWUpO1xuICAgICAgICBmaWVsZCA9IHVwZGF0ZUZvcm1GaWVsZFByb3BlcnRpZXMoZmllbGQpO1xuXG4gICAgICAgIHJldHVybiBmaWVsZDtcbiAgICAgIH07XG4gICAgICBjb25zdCBmb3JtYXRGaWVsZFR5cGVBcGkgPSAoZmllbGQ6IGFueSk6IGFueSA9PiB7XG4gICAgICAgIGZpZWxkID0gc2V0RmllbGRBc0Zvcm1FbGVtZW50KGZpZWxkLCB0cnVlKTtcbiAgICAgICAgZmllbGQgPSB1cGRhdGVGb3JtRmllbGRQcm9wZXJ0aWVzKGZpZWxkKTtcblxuICAgICAgICBpZiAoIWNoZWNrT2JqZWN0S2V5RXhpc3RzKGZpZWxkLCBcInNob3dMb2FkZXJcIikpIHtcbiAgICAgICAgICBmaWVsZCA9IHNldEZpZWxkS2V5VmFsdWUoZmllbGQsIFwic2hvd0xvYWRlclwiLCBmYWxzZSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIWNoZWNrT2JqZWN0S2V5RXhpc3RzKGZpZWxkLCBcImFwaVwiKSkge1xuICAgICAgICAgIGNvbnN0IGZpZWxkQXBpRGVmYXVsdHMgPSB7XG4gICAgICAgICAgICB1cmw6IFwiXCIsXG4gICAgICAgICAgICByZXF1ZXN0OiB7fSxcbiAgICAgICAgICAgIHJlc3BvbnNlOiB7fSxcbiAgICAgICAgICAgIHN0YXR1czoge1xuICAgICAgICAgICAgICB2YWx1ZTogXCJkZWZhdWx0XCIsXG4gICAgICAgICAgICAgIGxhYmVsczoge1xuICAgICAgICAgICAgICAgIGRlZmF1bHQ6IFwiQ2FsbCBBUElcIixcbiAgICAgICAgICAgICAgICBsb2FkaW5nOiBcIkNhbGwgQVBJXCIsXG4gICAgICAgICAgICAgICAgc3VjY2VzczogXCJBUEkgU3VjY2Vzc1wiLFxuICAgICAgICAgICAgICAgIGZhaWxlZDogXCJBUEkgRmFpbGVkXCJcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH07XG4gICAgICAgICAgZmllbGQuYXBpID0gZ2V0T2JqZWN0RGVlcENvcHkoXG4gICAgICAgICAgICBtZXJnZU9iamVjdHMoZmllbGRBcGlEZWZhdWx0cywgZmllbGRBcGlEZWZhdWx0cylcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIGlmIChcbiAgICAgICAgICAhY2hlY2tPYmplY3RLZXlFeGlzdHMoZmllbGQuYXBpLCBcInJlcXVlc3RcIikgJiZcbiAgICAgICAgICAhY2hlY2tPYmplY3RLZXlFeGlzdHMoZmllbGQuYXBpLCBcImVudHJ5cG9pbnRcIilcbiAgICAgICAgKSB7XG4gICAgICAgICAgY29uc3QgYXBpRW50cnlwb2ludCA9IHtcbiAgICAgICAgICAgIHRyaWdnZXJzOiBbXCJPTl9BUElfQ0FMTFwiXSxcbiAgICAgICAgICAgIHJ1bGVzOiBbXSxcbiAgICAgICAgICAgIGFjdGlvbnM6IFtcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGlkOiBcIjFcIixcbiAgICAgICAgICAgICAgICBrZXk6IFwiQVBJX0NBTExcIixcbiAgICAgICAgICAgICAgICBjb25kaXRpb246IFwidHJ1ZVwiLFxuICAgICAgICAgICAgICAgIHByb3BzOiB7XG4gICAgICAgICAgICAgICAgICBmaWVsZEtleTogZmllbGQua2V5LFxuICAgICAgICAgICAgICAgICAgYXBpS2V5OiBmaWVsZC5hcGkuZW5kcG9pbnRzWzBdLmFwaUtleVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgXVxuICAgICAgICAgIH07XG4gICAgICAgICAgZmllbGQuZW50cnlwb2ludCA9IGdldE9iamVjdERlZXBDb3B5KFxuICAgICAgICAgICAgbWVyZ2VPYmplY3RzKGFwaUVudHJ5cG9pbnQsIGZpZWxkLmFwaSlcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmaWVsZDtcbiAgICAgIH07XG4gICAgICBjb25zdCBmb3JtYXRGaWVsZFR5cGVPdHAgPSAoZmllbGQ6IGFueSk6IGFueSA9PiB7XG4gICAgICAgIGZpZWxkID0gc2V0RmllbGRLZXlIaWRkZW4oZmllbGQpO1xuICAgICAgICBmaWVsZCA9IHNldEZpZWxkQXNGb3JtRWxlbWVudChmaWVsZCwgdHJ1ZSk7XG5cbiAgICAgICAgZmllbGQucHJvcGVydGllcyA9IGdldE9iamVjdERlZXBDb3B5KFxuICAgICAgICAgIG1lcmdlT2JqZWN0cyhcbiAgICAgICAgICAgIGdldE9iamVjdERlZXBDb3B5KEZJRUxEX1BST1BFUlRJRVNbZmllbGQudHlwZV0pLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBtYXNrOiBuZXcgQXJyYXkoZmllbGQ/LnByb3BlcnRpZXM/Lm90cExlbmd0aCA/PyA0KVxuICAgICAgICAgICAgICAgIC5maWxsKFwiI1wiKVxuICAgICAgICAgICAgICAgIC5qb2luKFwiIFwiKVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGZpZWxkLnByb3BlcnRpZXNcbiAgICAgICAgICApXG4gICAgICAgICk7XG5cbiAgICAgICAgcmV0dXJuIGZpZWxkO1xuICAgICAgfTtcbiAgICAgIGNvbnN0IGZvcm1hdEZpZWxkVHlwZUFhZGhhYXJOdW1iZXIgPSAoZmllbGQ6IGFueSk6IGFueSA9PiB7XG4gICAgICAgIGZpZWxkID0gc2V0RmllbGRLZXlIaWRkZW4oZmllbGQpO1xuICAgICAgICBmaWVsZCA9IHNldEZpZWxkQXNGb3JtRWxlbWVudChmaWVsZCwgdHJ1ZSk7XG5cbiAgICAgICAgcmV0dXJuIGZpZWxkO1xuICAgICAgfTtcbiAgICAgIGNvbnN0IGZvcm1hdEZpZWxkVHlwZUZpbGUgPSAoZmllbGQ6IGFueSk6IGFueSA9PiB7XG4gICAgICAgIGZpZWxkID0gc2V0RmllbGRLZXlIaWRkZW4oZmllbGQpO1xuICAgICAgICBmaWVsZCA9IHNldEZpZWxkQXNGb3JtRWxlbWVudChmaWVsZCwgdHJ1ZSk7XG4gICAgICAgIGZpZWxkID0gdXBkYXRlRm9ybUZpZWxkUHJvcGVydGllcyhmaWVsZCk7XG5cbiAgICAgICAgcmV0dXJuIGZpZWxkO1xuICAgICAgfTtcblxuICAgICAgc3dpdGNoIChmaWVsZC50eXBlKSB7XG4gICAgICAgIGNhc2UgRUZpZWxkVHlwZS5IVE1MOlxuICAgICAgICAgIGZpZWxkID0gZm9ybWF0RmllbGRUeXBlSHRtbChmaWVsZCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgRUZpZWxkVHlwZS5USVRMRTpcbiAgICAgICAgICBmaWVsZCA9IGZvcm1hdEZpZWxkVHlwZVRpdGxlKGZpZWxkKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBFRmllbGRUeXBlLlRFWFQ6XG4gICAgICAgICAgZmllbGQgPSBmb3JtYXRGaWVsZFR5cGVUZXh0KGZpZWxkKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBFRmllbGRUeXBlLlRFWFRBUkVBOlxuICAgICAgICAgIGZpZWxkID0gZm9ybWF0RmllbGRUeXBlVGV4dGFyZWEoZmllbGQpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIEVGaWVsZFR5cGUuQ0hFQ0tCT1g6XG4gICAgICAgICAgZmllbGQgPSBmb3JtYXRGaWVsZFR5cGVDaGVja2JveChmaWVsZCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgRUZpZWxkVHlwZS5OVU1CRVI6XG4gICAgICAgICAgZmllbGQgPSBmb3JtYXRGaWVsZFR5cGVOdW1iZXIoZmllbGQpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIEVGaWVsZFR5cGUuUFJFVklFV19JTUFHRTpcbiAgICAgICAgICBmaWVsZCA9IHNldEZpZWxkS2V5VmFsdWUoZmllbGQsIFwidHlwZVwiLCBcImltYWdlXCIpO1xuICAgICAgICAgIGZpZWxkID0gZm9ybWF0RmllbGRUeXBlSW1hZ2UoZmllbGQpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIEVGaWVsZFR5cGUuSU1BR0U6XG4gICAgICAgICAgZmllbGQgPSBmb3JtYXRGaWVsZFR5cGVJbWFnZShmaWVsZCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgRUZpZWxkVHlwZS5EQVRFOlxuICAgICAgICAgIGZpZWxkID0gZm9ybWF0RmllbGRUeXBlRGF0ZShmaWVsZCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgRUZpZWxkVHlwZS5QSE9ORTpcbiAgICAgICAgICBmaWVsZCA9IGZvcm1hdEZpZWxkVHlwZVBob25lKGZpZWxkKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBFRmllbGRUeXBlLlJBRElPOlxuICAgICAgICAgIGZpZWxkID0gZm9ybWF0RmllbGRUeXBlUmFkaW8oZmllbGQpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIEVGaWVsZFR5cGUuU0xJREVSOlxuICAgICAgICAgIGZpZWxkID0gZm9ybWF0RmllbGRUeXBlU2xpZGVyKGZpZWxkKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBcInNlYXJjaC10ZXh0XCI6XG4gICAgICAgICAgZmllbGQgPSBzZXRGaWVsZEtleVZhbHVlKGZpZWxkLCBcInR5cGVcIiwgXCJzZWxlY3RcIik7XG4gICAgICAgICAgZmllbGQgPSBmb3JtYXRGaWVsZFR5cGVTZWxlY3QoZmllbGQpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIEVGaWVsZFR5cGUuRFJPUERPV05fV0lUSF9TRUFSQ0g6XG4gICAgICAgICAgZmllbGQgPSBzZXRGaWVsZEtleVZhbHVlKGZpZWxkLCBcInR5cGVcIiwgXCJzZWxlY3RcIik7XG4gICAgICAgICAgZmllbGQgPSBmb3JtYXRGaWVsZFR5cGVTZWxlY3QoZmllbGQpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIEVGaWVsZFR5cGUuU0VMRUNUOlxuICAgICAgICAgIGZpZWxkID0gZm9ybWF0RmllbGRUeXBlU2VsZWN0KGZpZWxkKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBFRmllbGRUeXBlLkFQSV9DQUxMOlxuICAgICAgICAgIGZpZWxkID0gc2V0RmllbGRLZXlWYWx1ZShmaWVsZCwgXCJ0eXBlXCIsIFwiYXBpXCIpO1xuICAgICAgICAgIGZpZWxkID0gZm9ybWF0RmllbGRUeXBlQXBpKGZpZWxkKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBFRmllbGRUeXBlLkFQSTpcbiAgICAgICAgICBmaWVsZCA9IGZvcm1hdEZpZWxkVHlwZUFwaShmaWVsZCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgRUZpZWxkVHlwZS5PVFA6XG4gICAgICAgICAgZmllbGQgPSBmb3JtYXRGaWVsZFR5cGVPdHAoZmllbGQpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIEVGaWVsZFR5cGUuQUFESEFBUl9OVU1CRVI6XG4gICAgICAgICAgZmllbGQgPSBmb3JtYXRGaWVsZFR5cGVBYWRoYWFyTnVtYmVyKGZpZWxkKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBFRmllbGRUeXBlLkZJTEU6XG4gICAgICAgICAgZmllbGQgPSBmb3JtYXRGaWVsZFR5cGVGaWxlKGZpZWxkKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGZpZWxkO1xuICAgIH07XG5cbiAgICBjb25zdCB1cGRhdGVGaWVsZFZhbGlkYXRvcnMgPSAoZmllbGQ6IGFueSk6IGFueSA9PiB7XG4gICAgICBpZiAoZmllbGQuaXNGb3JtRWxlbWVudCkge1xuICAgICAgICBjb25zdCB2YWxpZGF0b3JzID0gY2hlY2tPYmplY3RLZXlFeGlzdHMoZmllbGQsIFwidmFsaWRhdG9yc1wiKVxuICAgICAgICAgID8gZmllbGQudmFsaWRhdG9yc1xuICAgICAgICAgIDoge307XG5cbiAgICAgICAgZmllbGQgPSBzZXRNaXNzaW5nRmllbGRLZXlWYWx1ZShmaWVsZCwgXCJ2YWxpZGF0b3JzXCIsIHt9KTtcblxuICAgICAgICBmaWVsZCA9IHNldEZpZWxkS2V5VmFsdWUoZmllbGQsIFwidmFsaWRhdG9yc1wiLCB7XG4gICAgICAgICAgLi4uZmllbGRbXCJ2YWxpZGF0b3JzXCJdLFxuICAgICAgICAgIG1pbjogY2hlY2tPYmplY3RLZXlFeGlzdHModmFsaWRhdG9ycywgXCJtaW5cIilcbiAgICAgICAgICAgID8gaXNOb3RFbXB0eVZhbHVlKHZhbGlkYXRvcnMubWluKVxuICAgICAgICAgICAgICA/IE51bWJlcih2YWxpZGF0b3JzLm1pbilcbiAgICAgICAgICAgICAgOiBudWxsXG4gICAgICAgICAgICA6IGNoZWNrT2JqZWN0S2V5RXhpc3RzKGZpZWxkLCBcIm1pblwiKVxuICAgICAgICAgICAgPyBOdW1iZXIoZmllbGQubWluKVxuICAgICAgICAgICAgOiBudWxsLFxuICAgICAgICAgIG1heDogY2hlY2tPYmplY3RLZXlFeGlzdHModmFsaWRhdG9ycywgXCJtYXhcIilcbiAgICAgICAgICAgID8gaXNOb3RFbXB0eVZhbHVlKHZhbGlkYXRvcnMubWF4KVxuICAgICAgICAgICAgICA/IE51bWJlcih2YWxpZGF0b3JzLm1heClcbiAgICAgICAgICAgICAgOiBudWxsXG4gICAgICAgICAgICA6IGNoZWNrT2JqZWN0S2V5RXhpc3RzKGZpZWxkLCBcIm1heFwiKVxuICAgICAgICAgICAgPyBOdW1iZXIoZmllbGQubWF4KVxuICAgICAgICAgICAgOiBudWxsLFxuICAgICAgICAgIHJlcXVpcmVkOiBjaGVja09iamVjdEtleUV4aXN0cyh2YWxpZGF0b3JzLCBcInJlcXVpcmVkXCIpXG4gICAgICAgICAgICA/IEJvb2xlYW4odmFsaWRhdG9ycy5yZXF1aXJlZClcbiAgICAgICAgICAgIDogY2hlY2tPYmplY3RLZXlFeGlzdHMoZmllbGQsIFwicmVxdWlyZWRcIilcbiAgICAgICAgICAgID8gQm9vbGVhbihmaWVsZC5yZXF1aXJlZClcbiAgICAgICAgICAgIDogZmFsc2UsXG4gICAgICAgICAgbWluTGVuZ3RoOiBjaGVja09iamVjdEtleUV4aXN0cyh2YWxpZGF0b3JzLCBcIm1pbkxlbmd0aFwiKVxuICAgICAgICAgICAgPyBpc05vdEVtcHR5VmFsdWUodmFsaWRhdG9ycy5taW5MZW5ndGgpXG4gICAgICAgICAgICAgID8gTnVtYmVyKHZhbGlkYXRvcnMubWluTGVuZ3RoKVxuICAgICAgICAgICAgICA6IG51bGxcbiAgICAgICAgICAgIDogY2hlY2tPYmplY3RLZXlFeGlzdHMoZmllbGQsIFwibWluTGVuZ3RoXCIpXG4gICAgICAgICAgICA/IE51bWJlcihmaWVsZC5taW5MZW5ndGgpXG4gICAgICAgICAgICA6IG51bGwsXG4gICAgICAgICAgbWF4TGVuZ3RoOiBjaGVja09iamVjdEtleUV4aXN0cyh2YWxpZGF0b3JzLCBcIm1heExlbmd0aFwiKVxuICAgICAgICAgICAgPyBpc05vdEVtcHR5VmFsdWUodmFsaWRhdG9ycy5tYXhMZW5ndGgpXG4gICAgICAgICAgICAgID8gTnVtYmVyKHZhbGlkYXRvcnMubWF4TGVuZ3RoKVxuICAgICAgICAgICAgICA6IG51bGxcbiAgICAgICAgICAgIDogY2hlY2tPYmplY3RLZXlFeGlzdHMoZmllbGQsIFwibGVuZ3RoXCIpXG4gICAgICAgICAgICA/IE51bWJlcihmaWVsZC5sZW5ndGgpXG4gICAgICAgICAgICA6IGNoZWNrT2JqZWN0S2V5RXhpc3RzKGZpZWxkLCBcIm1heExlbmd0aFwiKVxuICAgICAgICAgICAgPyBOdW1iZXIoZmllbGQubWF4TGVuZ3RoKVxuICAgICAgICAgICAgOiBudWxsLFxuICAgICAgICAgIHBhdHRlcm46IGNoZWNrT2JqZWN0S2V5RXhpc3RzKHZhbGlkYXRvcnMsIFwicGF0dGVyblwiKVxuICAgICAgICAgICAgPyBpc05vdEVtcHR5VmFsdWUodmFsaWRhdG9ycy5wYXR0ZXJuKVxuICAgICAgICAgICAgICA/IHZhbGlkYXRvcnMucGF0dGVyblxuICAgICAgICAgICAgICA6IHVuZGVmaW5lZFxuICAgICAgICAgICAgOiBjaGVja09iamVjdEtleUV4aXN0cyhmaWVsZCwgXCJwYXR0ZXJuXCIpXG4gICAgICAgICAgICA/IHsga2V5OiBcIkNVU1RPTVwiLCBwYXR0ZXJuOiBTdHJpbmcoZmllbGQucGF0dGVybikgfVxuICAgICAgICAgICAgOiBjaGVja09iamVjdEtleUV4aXN0cyhmaWVsZCwgXCJyZWdleFwiKVxuICAgICAgICAgICAgPyB7IGtleTogXCJDVVNUT01cIiwgcGF0dGVybjogU3RyaW5nKGZpZWxkLnJlZ2V4KSB9XG4gICAgICAgICAgICA6IHVuZGVmaW5lZFxuICAgICAgICB9KTtcblxuICAgICAgICBkZWxldGUgZmllbGQubWluO1xuICAgICAgICBkZWxldGUgZmllbGQubWF4O1xuICAgICAgICBkZWxldGUgZmllbGQucmVxdWlyZWQ7XG4gICAgICAgIGRlbGV0ZSBmaWVsZC5taW5MZW5ndGg7XG4gICAgICAgIGRlbGV0ZSBmaWVsZC5sZW5ndGg7XG4gICAgICAgIGRlbGV0ZSBmaWVsZC5tYXhMZW5ndGg7XG4gICAgICAgIGRlbGV0ZSBmaWVsZC5wYXR0ZXJuO1xuICAgICAgICBkZWxldGUgZmllbGQucmVnZXg7XG5cbiAgICAgICAgc3dpdGNoIChmaWVsZC50eXBlKSB7XG4gICAgICAgICAgY2FzZSBFRmllbGRUeXBlLlRFWFQ6XG4gICAgICAgICAgICBkZWxldGUgZmllbGQudmFsaWRhdG9ycy5taW47XG4gICAgICAgICAgICBkZWxldGUgZmllbGQudmFsaWRhdG9ycy5tYXg7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIEVGaWVsZFR5cGUuQ0hFQ0tCT1g6XG4gICAgICAgICAgICBkZWxldGUgZmllbGQudmFsaWRhdG9ycy5taW47XG4gICAgICAgICAgICBkZWxldGUgZmllbGQudmFsaWRhdG9ycy5tYXg7XG4gICAgICAgICAgY2FzZSBFRmllbGRUeXBlLlBSRVZJRVdfSU1BR0U6XG4gICAgICAgICAgICBkZWxldGUgZmllbGQudmFsaWRhdG9ycy5taW47XG4gICAgICAgICAgICBkZWxldGUgZmllbGQudmFsaWRhdG9ycy5tYXg7XG4gICAgICAgICAgICBkZWxldGUgZmllbGQudmFsaWRhdG9ycy5taW5MZW5ndGg7XG4gICAgICAgICAgICBkZWxldGUgZmllbGQudmFsaWRhdG9ycy5tYXhMZW5ndGg7XG4gICAgICAgICAgY2FzZSBFRmllbGRUeXBlLkZJTEU6XG4gICAgICAgICAgICBkZWxldGUgZmllbGQudmFsaWRhdG9ycy5taW47XG4gICAgICAgICAgICBkZWxldGUgZmllbGQudmFsaWRhdG9ycy5tYXg7XG4gICAgICAgICAgICBkZWxldGUgZmllbGQudmFsaWRhdG9ycy5taW5MZW5ndGg7XG4gICAgICAgICAgICBkZWxldGUgZmllbGQudmFsaWRhdG9ycy5tYXhMZW5ndGg7XG4gICAgICAgICAgICBkZWxldGUgZmllbGQudmFsaWRhdG9ycy5wYXR0ZXJuO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGlzRW1wdHlWYWx1ZShmaWVsZC52YWxpZGF0b3JzPy5taW4pKSB7XG4gICAgICAgICAgZGVsZXRlIGZpZWxkLnZhbGlkYXRvcnMubWluO1xuICAgICAgICB9XG4gICAgICAgIGlmIChpc0VtcHR5VmFsdWUoZmllbGQudmFsaWRhdG9ycz8ubWF4KSkge1xuICAgICAgICAgIGRlbGV0ZSBmaWVsZC52YWxpZGF0b3JzLm1pbjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaXNFbXB0eVZhbHVlKGZpZWxkLnZhbGlkYXRvcnM/Lm1pbkxlbmd0aCkpIHtcbiAgICAgICAgICBkZWxldGUgZmllbGQudmFsaWRhdG9ycy5taW5MZW5ndGg7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGlzRW1wdHlWYWx1ZShmaWVsZC52YWxpZGF0b3JzPy5tYXhMZW5ndGgpKSB7XG4gICAgICAgICAgZGVsZXRlIGZpZWxkLnZhbGlkYXRvcnMubWF4TGVuZ3RoO1xuICAgICAgICB9XG4gICAgICAgIGlmIChpc0VtcHR5VmFsdWUoZmllbGQudmFsaWRhdG9ycz8ucGF0dGVybikpIHtcbiAgICAgICAgICBkZWxldGUgZmllbGQudmFsaWRhdG9ycy5wYXR0ZXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgZmllbGQuZm9jdXMgPSBmYWxzZTtcbiAgICAgICAgZmllbGQuaW52YWxpZCA9IGZhbHNlO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gZmllbGQ7XG4gICAgfTtcblxuICAgIGNvbnN0IHVwZGF0ZUZpZWxkRGVmYXVsdFZhbHVlID0gKGZpZWxkOiBhbnkpOiBhbnkgPT4ge1xuICAgICAgY29uc3QgZGVmYXVsdFZhbHVlID0ge1xuICAgICAgICB2YWx1ZToge1xuICAgICAgICAgIGlzX2ZvdW5kOiBmYWxzZSxcbiAgICAgICAgICB2YWx1ZTogXCJcIixcbiAgICAgICAgICBzb3VyY2VzOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGtleTogXCJPQkpFQ1RcIixcbiAgICAgICAgICAgICAgcHJvcHM6IHtcbiAgICAgICAgICAgICAgICBvYmplY3Q6IHtcbiAgICAgICAgICAgICAgICAgIGtleTogXCJGT1JNX0RBVEFcIixcbiAgICAgICAgICAgICAgICAgIHBhdGg6IGAkLiR7ZmllbGQua2V5fWBcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHZhbHVlOiBcIlwiLFxuICAgICAgICAgICAgICB2YWxpZGF0aW9uOiB7XG4gICAgICAgICAgICAgICAgaXNfdmFsaWQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgIHRyaWdnZXJzOiBbXCJPTl9JTklUXCJdLFxuICAgICAgICAgICAgICAgIHJ1bGVzOiBbXSxcbiAgICAgICAgICAgICAgICBhY3Rpb25zOiBbXG4gICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGlkOiBcIjFcIixcbiAgICAgICAgICAgICAgICAgICAga2V5OiBcIlNFVF9GSUVMRF9ERUZBVUxUX1ZBTFVFXCIsXG4gICAgICAgICAgICAgICAgICAgIGNvbmRpdGlvbjogXCIxXCIsXG4gICAgICAgICAgICAgICAgICAgIHByb3BzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZToge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk6IFwiT0JKRUNUXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHByb3BzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb2JqZWN0OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk6IFwiRk9STV9EQVRBXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXRoOiBgJC4ke2ZpZWxkLmtleX1gXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgXVxuICAgICAgICB9XG4gICAgICB9O1xuXG4gICAgICBpZiAoZmllbGQuaXNGb3JtRWxlbWVudCkge1xuICAgICAgICBpZiAoY2hlY2tPYmplY3RLZXlFeGlzdHMoZmllbGQsIFwiZGVmYXVsdFZhbHVlXCIpKSB7XG4gICAgICAgICAgcmV0dXJuIGZpZWxkO1xuICAgICAgICB9IGVsc2UgaWYgKGNoZWNrT2JqZWN0UGF0aEV4aXN0cyhmaWVsZCwgXCJkZWZhdWx0LnZhbHVlLnNvdXJjZXNcIikpIHtcbiAgICAgICAgICByZXR1cm4gZmllbGQ7XG4gICAgICAgIH0gZWxzZSBpZiAoIWNoZWNrT2JqZWN0UGF0aEV4aXN0cyhmaWVsZCwgXCJkZWZhdWx0LnZhbHVlLnNvdXJjZXNcIikpIHtcbiAgICAgICAgICBmaWVsZCA9IHNldEZpZWxkS2V5VmFsdWUoZmllbGQsIFwiZGVmYXVsdFwiLCBkZWZhdWx0VmFsdWUpO1xuICAgICAgICAgIHJldHVybiBmaWVsZDtcbiAgICAgICAgfVxuXG4gICAgICAgIGRlbGV0ZSBmaWVsZFtcImRlZmF1bHRWYWxcIl07XG4gICAgICAgIGRlbGV0ZSBmaWVsZFtcImRlZmF1bHRWYWx1ZVwiXTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGZpZWxkO1xuICAgIH07XG5cbiAgICBjb25zdCB1cGRhdGVGaWVsZERpc2FiaWxpdHkgPSAoZmllbGQ6IGFueSk6IGFueSA9PiB7XG4gICAgICBmaWVsZCA9IHNldE1pc3NpbmdLZXlWYWx1ZShmaWVsZCwgXCJkaXNhYmxlZFwiLCBmYWxzZSk7XG5cbiAgICAgIHJldHVybiBmaWVsZDtcbiAgICB9O1xuXG4gICAgY29uc3QgdXBkYXRlRmllbGRNZXNzYWdlcyA9IChmaWVsZDogYW55KTogYW55ID0+IHtcbiAgICAgIGlmIChmaWVsZC5pc0Zvcm1FbGVtZW50KSB7XG4gICAgICAgIGZpZWxkID0gc2V0TWlzc2luZ0ZpZWxkS2V5VmFsdWUoZmllbGQsIFwibWVzc2FnZXNcIiwgW10pO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gZmllbGQ7XG4gICAgfTtcblxuICAgIGNvbnN0IHVwZGF0ZUZpZWxkUmVzZXRCdXR0b24gPSAoZmllbGQ6IGFueSk6IGFueSA9PiB7XG4gICAgICBpZiAoZmllbGQuaXNGb3JtRWxlbWVudCkge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgY2hlY2tPYmplY3RLZXlFeGlzdHMoZmllbGQsIFwiYWN0aW9uXCIpICYmXG4gICAgICAgICAgZmllbGQuYWN0aW9uID09PSBcInJlc2V0XCIgJiZcbiAgICAgICAgICBjaGVja09iamVjdEtleUV4aXN0cyhmaWVsZCwgXCJmaWVsZHNcIilcbiAgICAgICAgKSB7XG4gICAgICAgICAgZmllbGQgPSBzZXRGaWVsZEtleVZhbHVlKGZpZWxkLCBcInJlc2V0XCIsIHtcbiAgICAgICAgICAgIGZpZWxkczogZmllbGQuZmllbGRzXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGZpZWxkO1xuICAgIH07XG5cbiAgICBjb25zdCBzZXRGb3JtRmllbGRzID0gKGZvcm1Db25maWc6IGFueSwgZmllbGRzOiBhbnlbXSk6IGFueSA9PiB7XG4gICAgICBpZiAoY2hlY2tPYmplY3RLZXlFeGlzdHMoZm9ybUNvbmZpZywgXCJtdWx0aUZvcm1cIikpIHtcbiAgICAgICAgZm9ybUNvbmZpZy5tdWx0aUZvcm1bXCJmaWVsZHNcIl0gPSBmaWVsZHM7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBmb3JtQ29uZmlnW1wiZmllbGRzXCJdID0gZmllbGRzO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gZm9ybUNvbmZpZztcbiAgICB9O1xuXG4gICAgY29uc3Qgc2V0Rm9ybUZpZWxkR3JvdXBzID0gKGZvcm1Db25maWc6IGFueSwgZ3JvdXBzOiBhbnkpOiBhbnkgPT4ge1xuICAgICAgZm9ybUNvbmZpZ1tcImZpZWxkR3JvdXBzXCJdID0gZ3JvdXBzO1xuXG4gICAgICByZXR1cm4gZm9ybUNvbmZpZztcbiAgICB9O1xuXG4gICAgY29uc3QgdXBkYXRlRm9ybUZpZWxkR3JvdXBzID0gKGZpZWxkR3JvdXBzOiBhbnksIGZpZWxkOiBhbnkpOiBhbnkgPT4ge1xuICAgICAgaWYgKGNoZWNrT2JqZWN0S2V5RXhpc3RzKGZpZWxkLCBcImdyb3VwS2V5XCIpKSB7XG4gICAgICAgIGlmIChjaGVja09iamVjdEtleUV4aXN0cyhmaWVsZEdyb3VwcywgZmllbGQuZ3JvdXBLZXkpKSB7XG4gICAgICAgICAgZmllbGRHcm91cHNbZmllbGQuZ3JvdXBLZXldLnB1c2goZmllbGQua2V5KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBmaWVsZEdyb3Vwc1tmaWVsZC5ncm91cEtleV0gPSBbZmllbGQua2V5XTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gZmllbGRHcm91cHM7XG4gICAgfTtcblxuICAgIGxldCBmaWVsZHM6IGFueVtdID0gZ2V0Rm9ybUZpZWxkcyhmb3JtQ29uZmlnKTtcblxuICAgIGxldCBmaWVsZEdyb3VwczogYW55ID0ge307XG5cbiAgICBmb3IgKGxldCBmaWVsZCBvZiBmaWVsZHMpIHtcbiAgICAgIGZpZWxkID0gZm9ybWF0T25GaWVsZFR5cGUoZmllbGQpO1xuXG4gICAgICBmaWVsZCA9IHVwZGF0ZUZpZWxkRGlzYWJpbGl0eShmaWVsZCk7XG5cbiAgICAgIGZpZWxkR3JvdXBzID0gdXBkYXRlRm9ybUZpZWxkR3JvdXBzKGZpZWxkR3JvdXBzLCBmaWVsZCk7XG5cbiAgICAgIGZpZWxkID0gdXBkYXRlRmllbGREZWZhdWx0VmFsdWUoZmllbGQpO1xuXG4gICAgICBmaWVsZCA9IHVwZGF0ZUZpZWxkVmFsaWRhdG9ycyhmaWVsZCk7XG5cbiAgICAgIGZpZWxkID0gdXBkYXRlRmllbGRSZXNldEJ1dHRvbihmaWVsZCk7XG5cbiAgICAgIGZpZWxkID0gdXBkYXRlRmllbGRNZXNzYWdlcyhmaWVsZCk7XG4gICAgfVxuXG4gICAgZm9ybUNvbmZpZyA9IHNldEZvcm1GaWVsZEdyb3Vwcyhmb3JtQ29uZmlnLCBmaWVsZEdyb3Vwcyk7XG5cbiAgICBmb3JtQ29uZmlnID0gc2V0Rm9ybUZpZWxkcyhmb3JtQ29uZmlnLCBmaWVsZHMpO1xuXG4gICAgcmV0dXJuIGZvcm1Db25maWc7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -20,4 +20,4 @@ export var EFieldType;
|
|
|
20
20
|
EFieldType["SLIDER"] = "slider";
|
|
21
21
|
EFieldType["FILE"] = "file";
|
|
22
22
|
})(EFieldType || (EFieldType = {}));
|
|
23
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS12aWV3LmZpZWxkcy5kZWZpbml0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva3dpa2lkLWZvcm1zL3NyYy9saWIvcmVuZGVyZXIvZm9ybS12aWV3L2RlZmluaXRpb25zL2Zvcm0tdmlldy5maWVsZHMuZGVmaW5pdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFNQSxNQUFNLENBQU4sSUFBWSxVQW9CWDtBQXBCRCxXQUFZLFVBQVU7SUFDcEIsMkJBQWEsQ0FBQTtJQUNiLDZCQUFlLENBQUE7SUFDZiwyQkFBYSxDQUFBO0lBQ2IsbUNBQXFCLENBQUE7SUFDckIsbUNBQXFCLENBQUE7SUFDckIsK0JBQWlCLENBQUE7SUFDakIsMkJBQWEsQ0FBQTtJQUNiLDZCQUFlLENBQUE7SUFDZiw2Q0FBK0IsQ0FBQTtJQUMvQiw2QkFBZSxDQUFBO0lBQ2YsNkJBQWUsQ0FBQTtJQUNmLCtCQUFpQixDQUFBO0lBQ2pCLDJEQUE2QyxDQUFBO0lBQzdDLG1DQUFxQixDQUFBO0lBQ3JCLHlCQUFXLENBQUE7SUFDWCx5QkFBVyxDQUFBO0lBQ1gsK0NBQWlDLENBQUE7SUFDakMsK0JBQWlCLENBQUE7SUFDakIsMkJBQWEsQ0FBQTtBQUNmLENBQUMsRUFwQlcsVUFBVSxLQUFWLFVBQVUsUUFvQnJCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVEFjdGlvbiwgVFJ1bGUsIFRTb3VyY2UsIFRWYWxpZGF0aW9uIH0gZnJvbSBcImt3aWtpZC10b29sa2l0XCI7XG5pbXBvcnQgeyBUQXBpIH0gZnJvbSBcIi4vZm9ybS12aWV3LmFwaXMuZGVmaW5pdGlvblwiO1xuaW1wb3J0IHsgVE1lc3NhZ2UgfSBmcm9tIFwiLi9mb3JtLXZpZXcuY29tbW9ucy5kZWZpbml0aW9uXCI7XG5pbXBvcnQgeyBUVmFsaWRhdG9yIH0gZnJvbSBcIi4vZm9ybS12aWV3LmZvcm0tdmFsaWRhdGlvbnMuZGVmaW5pdGlvblwiO1xuaW1wb3J0IHsgVFRyaWdnZXIgfSBmcm9tIFwiLi9mb3JtLXZpZXcudHJpZ2dlcnMuZGVmaW5pdGlvblwiO1xuXG5leHBvcnQgZW51bSBFRmllbGRUeXBlIHtcbiAgSFRNTCA9IFwiaHRtbFwiLFxuICBUSVRMRSA9IFwidGl0bGVcIixcbiAgVEVYVCA9IFwidGV4dFwiLFxuICBURVhUQVJFQSA9IFwidGV4dGFyZWFcIixcbiAgQ0hFQ0tCT1ggPSBcImNoZWNrYm94XCIsXG4gIE5VTUJFUiA9IFwibnVtYmVyXCIsXG4gIERBVEUgPSBcImRhdGVcIixcbiAgSU1BR0UgPSBcImltYWdlXCIsXG4gIFBSRVZJRVdfSU1BR0UgPSBcInByZXZpZXctaW1hZ2VcIixcbiAgUEhPTkUgPSBcInBob25lXCIsXG4gIFJBRElPID0gXCJyYWRpb1wiLFxuICBTRUxFQ1QgPSBcInNlbGVjdFwiLFxuICBEUk9QRE9XTl9XSVRIX1NFQVJDSCA9IFwiZHJvcGRvd24td2l0aC1zZWFyY2hcIixcbiAgQVBJX0NBTEwgPSBcImFwaS1jYWxsXCIsXG4gIEFQSSA9IFwiYXBpXCIsXG4gIE9UUCA9IFwib3RwXCIsXG4gIEFBREhBQVJfTlVNQkVSID0gXCJhYWRoYWFyLW51bWJlclwiLFxuICBTTElERVIgPSBcInNsaWRlclwiLFxuICBGSUxFID0gXCJmaWxlXCJcbn1cblxuZXhwb3J0IHR5cGUgVEZpZWxkVHlwZSA9XG4gIHwgRUZpZWxkVHlwZS5IVE1MXG4gIHwgRUZpZWxkVHlwZS5USVRMRVxuICB8IEVGaWVsZFR5cGUuVEVYVFxuICB8IEVGaWVsZFR5cGUuVEVYVEFSRUFcbiAgfCBFRmllbGRUeXBlLkNIRUNLQk9YXG4gIHwgRUZpZWxkVHlwZS5OVU1CRVJcbiAgfCBFRmllbGRUeXBlLkRBVEVcbiAgfCBFRmllbGRUeXBlLlBSRVZJRVdfSU1BR0VcbiAgfCBFRmllbGRUeXBlLlBIT05FXG4gIHwgRUZpZWxkVHlwZS5SQURJT1xuICB8IEVGaWVsZFR5cGUuRFJPUERPV05fV0lUSF9TRUFSQ0hcbiAgfCBFRmllbGRUeXBlLlNFTEVDVFxuICB8IEVGaWVsZFR5cGUuQVBJXG4gIHwgRUZpZWxkVHlwZS5BUElfQ0FMTFxuICB8IEVGaWVsZFR5cGUuT1RQXG4gIHwgRUZpZWxkVHlwZS5BQURIQUFSX05VTUJFUlxuICB8IEVGaWVsZFR5cGUuU0xJREVSXG4gIHwgRUZpZWxkVHlwZS5GSUxFO1xuXG5leHBvcnQgdHlwZSBURmllbGRTZWxlY3RPcHRpb24gPSB7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIHZhbHVlOiBzdHJpbmc7XG59O1xuXG5leHBvcnQgdHlwZSBURmllbGRSYWRpb09wdGlvbiA9IHtcbiAgbGFiZWw6IHN0cmluZztcbiAgZGlzYWJsZWQ6IGJvb2xlYW47XG59O1xuXG5leHBvcnQgdHlwZSBURmllbGREZWZhdWx0VmFsdWUgPSB7XG4gIGlzX2ZvdW5kOiBib29sZWFuO1xuICB2YWx1ZTogYW55O1xuICBzb3VyY2VzOiBBcnJheTxUU291cmNlPjtcbn07XG5cbmV4cG9ydCB0eXBlIFRGaWVsZERlZmF1bHREcm9wZG93bk9wdGlvbnMgPSB7XG4gIHRyaWdnZXJzOiBUVHJpZ2dlcltdO1xuICBydWxlczogVFJ1bGVbXTtcbiAgYWN0aW9uczogVEFjdGlvbltdO1xufTtcblxuZXhwb3J0IHR5cGUgVEZpZWxkRGVmYXVsdCA9IHtcbiAgdmFsdWU6IFRGaWVsZERlZmF1bHRWYWx1ZTtcbiAgb3B0aW9uczogVEZpZWxkRGVmYXVsdERyb3Bkb3duT3B0aW9ucztcbn07XG5cbmV4cG9ydCB0eXBlIFRGaWVsZFByb3BlcnRpZXMgPSB7XG4gIC8vIGRlZmluZSB0aGUgcHJvcGVydGllcyB0aGF0IGFyZSBjb21tb24gdG8gYWxsIGZpZWxkc1xufTtcblxuZXhwb3J0IHR5cGUgVEZpZWxkVGV4dFByb3BlcnRpZXMgPSBURmllbGRQcm9wZXJ0aWVzICYge1xuICBjYXNlOiBzdHJpbmc7XG4gIHBsYWNlaG9sZGVyOiBzdHJpbmc7XG4gIHJlYWRPbmx5OiBzdHJpbmc7XG59O1xuXG5leHBvcnQgdHlwZSBURmllbGRUZXh0YXJlYVByb3BlcnRpZXMgPSBURmllbGRQcm9wZXJ0aWVzICYge1xuICBwbGFjZWhvbGRlcjogc3RyaW5nO1xuICByZWFkT25seTogc3RyaW5nO1xufTtcblxuZXhwb3J0IHR5cGUgVEZpZWxkQ2hlY2tib3hQcm9wZXJ0aWVzID0gVEZpZWxkUHJvcGVydGllcyAmIHtcbiAgY29udGVudEFsaWduOiBzdHJpbmc7XG4gIHNpemU6IHN0cmluZztcbiAgcmVhZE9ubHk6IHN0cmluZztcbiAgcGxhY2Vob2xkZXI6IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIFRGaWVsZE51bWJlclByb3BlcnRpZXMgPSBURmllbGRQcm9wZXJ0aWVzICYge1xuICBtaW46IG51bWJlcjtcbiAgbWF4OiBudW1iZXI7XG4gIHByZWZpeDogbnVtYmVyO1xuICBwb3N0Zml4OiBudW1iZXI7XG4gIHByZWNpc2lvbjogbnVtYmVyO1xuICBwbGFjZWhvbGRlcjogc3RyaW5nO1xuICBkZWNpbWFsOiBzdHJpbmc7XG4gIHJlYWRPbmx5OiBib29sZWFuO1xufTtcblxuZXhwb3J0IHR5cGUgVEZpZWxkRGF0ZVByb3BlcnRpZXMgPSBURmllbGRQcm9wZXJ0aWVzICYge1xuICBwbGFjZWhvbGRlcjogc3RyaW5nO1xuICBtaW46IHtcbiAgICB5ZWFyOiBudW1iZXI7XG4gICAgbW9udGg6IG51bWJlcjtcbiAgICBkYXk6IG51bWJlcjtcbiAgfTtcbiAgbWF4OiB7XG4gICAgeWVhcjogbnVtYmVyO1xuICAgIG1vbnRoOiBudW1iZXI7XG4gICAgZGF5OiBudW1iZXI7XG4gIH07XG4gIHJlYWRPbmx5OiBib29sZWFuO1xufTtcblxuZXhwb3J0IHR5cGUgVEZpZWxkUGhvbmVQcm9wZXJ0aWVzID0gVEZpZWxkUHJvcGVydGllcyAmIHtcbiAgY291bnRyeUNvZGU6IHN0cmluZztcbiAgcGhvbmVNYXNrQWZ0ZXJDb3VudHJ5Q29kZTogc3RyaW5nO1xuICByZW1vdmVDb3VudHJ5Q29kZUZyb21WYWx1ZTogYm9vbGVhbjtcbiAgcGxhY2Vob2xkZXI6IHN0cmluZztcbiAgcmVhZE9ubHk6IGJvb2xlYW47XG59O1xuXG5leHBvcnQgdHlwZSBURmllbGRQcmV2aWV3SW1hZ2VQcm9wZXJ0aWVzID0gVEZpZWxkUHJvcGVydGllcyAmIHtcbiAgYWx0VGV4dDogc3RyaW5nO1xuICBodG1sOiB7XG4gICAgYmVmb3JlOiBzdHJpbmc7XG4gICAgYWZ0ZXI6IHN0cmluZztcbiAgfTtcbiAgaW1hZ2VUeXBlOiBzdHJpbmc7XG4gIGxvYWRpbmdUeXBlOiBzdHJpbmc7XG59O1xuXG5leHBvcnQgdHlwZSBURmllbGRTbGlkZXJQcm9wZXJ0aWVzID0gVEZpZWxkUHJvcGVydGllcyAmIHtcbiAgbWluOiBudW1iZXI7XG4gIG1heDogbnVtYmVyO1xuICBzdGVwOiBudW1iZXI7XG4gIHF1YW50dW06IG51bWJlcjtcbiAgcGxhY2Vob2xkZXI6IHN0cmluZztcbiAgcmVhZE9ubHk6IGJvb2xlYW47XG59O1xuXG5leHBvcnQgdHlwZSBURmllbGRSYWRpb1Byb3BlcnRpZXMgPSBURmllbGRQcm9wZXJ0aWVzICYge1xuICBzaXplOiBzdHJpbmc7XG4gIG9yaWVudGF0aW9uOiBzdHJpbmc7XG4gIHJlYWRPbmx5OiBzdHJpbmc7XG59O1xuXG5leHBvcnQgdHlwZSBURmllbGRTZWxlY3RQcm9wZXJ0aWVzID0gVEZpZWxkUHJvcGVydGllcyAmIHtcbiAgcGxhY2Vob2xkZXI6IHN0cmluZztcbiAgcmVhZE9ubHk6IGJvb2xlYW47XG59O1xuXG5leHBvcnQgdHlwZSBURmllbGRBcGlDYWxsUHJvcGVydGllcyA9IFRGaWVsZFByb3BlcnRpZXMgJiB7fTtcblxuZXhwb3J0IHR5cGUgVEZpZWxkT3RwUHJvcGVydGllcyA9IFRGaWVsZFByb3BlcnRpZXMgJiB7XG4gIHBsYWNlaG9sZGVyOiBzdHJpbmc7XG4gIG1hc2s6IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIFRGaWVsZEFhZGhhYXJOdW1iZXJQcm9wZXJ0aWVzID0gVEZpZWxkUHJvcGVydGllcyAmIHtcbiAgbWFzazogc3RyaW5nO1xuICByZWFkT25seTogc3RyaW5nO1xufTtcblxuZXhwb3J0IHR5cGUgVEZpZWxkID0ge1xuICBsYWJlbDogc3RyaW5nO1xuICB0eXBlOiBURmllbGRUeXBlO1xuICBrZXk6IHN0cmluZztcbiAgZGlzYWJsZWQ6IGJvb2xlYW47XG4gIG1lc3NhZ2VzOiBBcnJheTxUTWVzc2FnZT47XG4gIGRlZmF1bHQ6IFRGaWVsZERlZmF1bHQ7XG4gIHZhbGlkYXRvcnM6IFRWYWxpZGF0b3I7XG4gIHZhbGlkYXRpb246IFRWYWxpZGF0aW9uO1xuICBwcm9wZXJ0aWVzOiBURmllbGRQcm9wZXJ0aWVzO1xufTtcblxuZXhwb3J0IHR5cGUgVEZpZWxkVGl0bGUgPSB7XG4gIHR5cGU6IFRGaWVsZFR5cGU7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIGtleTogc3RyaW5nO1xuICByZXNldD86IHtcbiAgICBmaWVsZHM6IEFycmF5PHtcbiAgICAgIGZpZWxkS2V5OiBzdHJpbmc7XG4gICAgICBhY3Rpb25zOiBBcnJheTxUQWN0aW9uPjtcbiAgICB9PjtcbiAgfTtcbiAgcHJvcGVydGllcz86IHtcbiAgICBieXBhc3NSZXNldENvbmZpcm1hdGlvbj86IGJvb2xlYW47XG4gIH07XG59O1xuXG5leHBvcnQgdHlwZSBURmllbGRUZXh0ID0gVEZpZWxkICYge1xuICBwcm9wZXJ0aWVzOiBURmllbGRUZXh0UHJvcGVydGllcztcbn07XG5cbmV4cG9ydCB0eXBlIFRGaWVsZFRleHRBcmVhID0gVEZpZWxkICYge1xuICBwcm9wZXJ0aWVzOiBURmllbGRUZXh0YXJlYVByb3BlcnRpZXM7XG59O1xuXG5leHBvcnQgdHlwZSBURmllbGRDaGVja2JveCA9IFRGaWVsZCAmIHtcbiAgcHJvcGVydGllczogVEZpZWxkQ2hlY2tib3hQcm9wZXJ0aWVzO1xufTtcblxuZXhwb3J0IHR5cGUgVEZpZWxkTnVtYmVyID0gVEZpZWxkICYge1xuICBwcm9wZXJ0aWVzOiBURmllbGROdW1iZXJQcm9wZXJ0aWVzO1xufTtcblxuZXhwb3J0IHR5cGUgVEZpZWxkRGF0ZSA9IFRGaWVsZCAmIHtcbiAgcHJvcGVydGllczogVEZpZWxkRGF0ZVByb3BlcnRpZXM7XG59O1xuXG5leHBvcnQgdHlwZSBURmllbGRQaG9uZSA9IFRGaWVsZCAmIHtcbiAgcHJvcGVydGllczogVEZpZWxkUGhvbmVQcm9wZXJ0aWVzO1xufTtcblxuZXhwb3J0IHR5cGUgVEZpZWxkUmFkaW8gPSBURmllbGQgJiB7XG4gIG9wdGlvbnM6IEFycmF5PFRGaWVsZFJhZGlvT3B0aW9uPjtcbiAgcHJvcGVydGllczogVEZpZWxkUmFkaW9Qcm9wZXJ0aWVzO1xufTtcblxuZXhwb3J0IHR5cGUgVEZpZWxkU2VsZWN0ID0gVEZpZWxkICYge1xuICBvcHRpb25zOiBBcnJheTxURmllbGRTZWxlY3RPcHRpb24+O1xuICBwcm9wZXJ0aWVzOiBURmllbGRTZWxlY3RQcm9wZXJ0aWVzO1xufTtcblxuZXhwb3J0IHR5cGUgVEZpZWxkQXBpQ2FsbCA9IFRGaWVsZCAmIHtcbiAgYXBpOiBUQXBpO1xuICBwcm9wZXJ0aWVzOiBURmllbGRBcGlDYWxsUHJvcGVydGllcztcbn07XG5cbmV4cG9ydCB0eXBlIFRGaWVsZE90cCA9IFRGaWVsZCAmIHtcbiAgcHJvcGVydGllczogVEZpZWxkT3RwUHJvcGVydGllcztcbn07XG5cbmV4cG9ydCB0eXBlIFRGaWVsZEFhZGhhYXJOdW1iZXIgPSBURmllbGQgJiB7XG4gIHByb3BlcnRpZXM6IFRGaWVsZEFhZGhhYXJOdW1iZXJQcm9wZXJ0aWVzO1xufTtcblxuZXhwb3J0IHR5cGUgVEZpZWxkUHJldmlld0ltYWdlID0gVEZpZWxkICYge1xuICBwcm9wZXJ0aWVzOiBURmllbGRQcmV2aWV3SW1hZ2VQcm9wZXJ0aWVzO1xufTtcbiJdfQ==
|