@lenne.tech/ng-base 14.19.0 → 14.21.0
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/base-cms/base-cms.module.d.ts +2 -2
- package/base-cms/interfaces/base-cms-module-config.interface.d.ts +3 -2
- package/base-components/base-components.module.d.ts +23 -22
- package/base-components/components/model-form/model-form.component.d.ts +4 -2
- package/base-components/components/model-form-sub/model-form-sub.component.d.ts +4 -2
- package/base-components/components/model-table/model-table.component.d.ts +4 -2
- package/base-components/components/refence-input/refence-input.component.d.ts +1 -1
- package/base-components/components/upload-image/upload-image.component.d.ts +5 -0
- package/base-components/directives/stop-propagation.directive.d.ts +10 -0
- package/base-components/public-api.d.ts +1 -0
- package/esm2020/base-cms/interfaces/base-cms-module-config.interface.mjs +1 -1
- package/esm2020/base-components/base-components.module.mjs +5 -1
- package/esm2020/base-components/components/model-form/model-form.component.mjs +1 -2
- package/esm2020/base-components/components/model-form-sub/model-form-sub.component.mjs +3 -4
- package/esm2020/base-components/components/model-table/model-table.component.mjs +1 -2
- package/esm2020/base-components/components/refence-input/refence-input.component.mjs +2 -2
- package/esm2020/base-components/components/upload-image/upload-image.component.mjs +34 -13
- package/esm2020/base-components/directives/stop-propagation.directive.mjs +23 -0
- package/esm2020/base-components/public-api.mjs +2 -1
- package/esm2020/public-api.mjs +3 -1
- package/esm2020/shared/interfaces/cms-enum-values.interface.mjs +2 -0
- package/esm2020/shared/interfaces/cms-field-config.interface.mjs +2 -0
- package/esm2020/shared/interfaces/cms-model-config.interface.mjs +2 -0
- package/esm2020/shared/interfaces/cms-table-field.interface.mjs +2 -0
- package/esm2020/shared/public-api.mjs +5 -1
- package/esm2020/src/decorators/auto-unsubscribe.decorator.mjs +23 -0
- package/fesm2015/lenne.tech-ng-base-base-cms.mjs.map +1 -1
- package/fesm2015/lenne.tech-ng-base-base-components.mjs +60 -19
- package/fesm2015/lenne.tech-ng-base-base-components.mjs.map +1 -1
- package/fesm2015/lenne.tech-ng-base-shared.mjs.map +1 -1
- package/fesm2015/lenne.tech-ng-base.mjs +24 -1
- package/fesm2015/lenne.tech-ng-base.mjs.map +1 -1
- package/fesm2020/lenne.tech-ng-base-base-cms.mjs.map +1 -1
- package/fesm2020/lenne.tech-ng-base-base-components.mjs +60 -19
- package/fesm2020/lenne.tech-ng-base-base-components.mjs.map +1 -1
- package/fesm2020/lenne.tech-ng-base-shared.mjs.map +1 -1
- package/fesm2020/lenne.tech-ng-base.mjs +24 -1
- package/fesm2020/lenne.tech-ng-base.mjs.map +1 -1
- package/package.json +1 -1
- package/public-api.d.ts +1 -0
- package/shared/interfaces/cms-enum-values.interface.d.ts +4 -0
- package/shared/interfaces/cms-field-config.interface.d.ts +36 -0
- package/shared/interfaces/cms-model-config.interface.d.ts +13 -0
- package/shared/interfaces/cms-table-field.interface.d.ts +10 -0
- package/shared/public-api.d.ts +4 -0
- package/src/decorators/auto-unsubscribe.decorator.d.ts +5 -0
|
@@ -13,7 +13,6 @@ import * as i9 from "../refence-input/refence-input.component";
|
|
|
13
13
|
export class ModelFormSubComponent {
|
|
14
14
|
constructor(authService) {
|
|
15
15
|
this.authService = authService;
|
|
16
|
-
this.config = {};
|
|
17
16
|
this.imageChanged = new EventEmitter();
|
|
18
17
|
this.fileChanged = new EventEmitter();
|
|
19
18
|
this.keys = [];
|
|
@@ -73,10 +72,10 @@ export class ModelFormSubComponent {
|
|
|
73
72
|
}
|
|
74
73
|
}
|
|
75
74
|
ModelFormSubComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: ModelFormSubComponent, deps: [{ token: i1.AuthService }], target: i0.ɵɵFactoryTarget.Component });
|
|
76
|
-
ModelFormSubComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.0", type: ModelFormSubComponent, selector: "base-model-form-sub", inputs: { id: "id", fields: "fields", form: "form", config: "config" }, outputs: { imageChanged: "imageChanged", fileChanged: "fileChanged" }, ngImport: i0, template: "<div class=\"mt-3\" *ngFor=\"let key of keys\">\n <ng-container\n *ngIf=\"checkFieldHasFields(fields[key]) && (config[key]?.roles ? user?.hasAllRoles(config[key]?.roles) : true)\"\n >\n <fieldset class=\"border rounded-3 p-3 mt-3\">\n <legend class=\"float-none w-auto px-3\">\n {{ config[key]?.label ? config[key].label : capitalizeFirstLetter(key) }}\n </legend>\n <base-model-form-sub\n [fields]=\"fields[key].fields\"\n [config]=\"config[key]?.fields || {}\"\n [form]=\"form.get(key)\"\n ></base-model-form-sub>\n </fieldset>\n </ng-container>\n\n <ng-container\n *ngIf=\"!checkFieldHasFields(fields[key]) && (config[key]?.roles ? user?.hasAllRoles(config[key]?.roles) : true)\"\n >\n <ng-container *ngIf=\"fields[key]?.isEnum && !config[key]?.exclude\">\n <base-select\n [id]=\"key\"\n [name]=\"key\"\n [label]=\"config[key]?.label ? config[key].label : capitalizeFirstLetter(key)\"\n [placeholder]=\"config[key]?.placeholder || 'Bitte einen Wert ausw\u00E4hlen'\"\n [options]=\"prepareEnumForSelect(fields[key]?.validEnums, config[key]?.enumValues)\"\n [control]=\"transformToControl(form?.get(key))\"\n [required]=\"config[key] && config[key]?.required !== undefined ? config[key]?.required : fields[key].isRequired\"\n ></base-select>\n </ng-container>\n\n <ng-container *ngIf=\"!fields[key]?.isEnum && !config[key]?.exclude\">\n <ng-container [ngSwitch]=\"config[key]?.type ? config[key]?.type : fields[key]?.type\">\n <ng-container *ngSwitchCase=\"'String'\">\n <ng-container *ngIf=\"fields[key]?.isList && !config[key]?.exclude\">\n <base-tags\n [id]=\"key\"\n [name]=\"key\"\n [label]=\"config[key]?.label ? config[key].label : capitalizeFirstLetter(key)\"\n [placeholder]=\"config[key]?.placeholder || ''\"\n [control]=\"transformToControl(form?.get(key))\"\n [required]=\"\n config[key] && config[key]?.required !== undefined ? config[key]?.required : fields[key].isRequired\n \"\n ></base-tags>\n </ng-container>\n\n <ng-container *ngIf=\"!fields[key]?.isList && !config[key]?.exclude\">\n <base-input\n [id]=\"key\"\n [name]=\"key\"\n [label]=\"config[key]?.label ? config[key].label : capitalizeFirstLetter(key)\"\n [placeholder]=\"config[key]?.placeholder || ''\"\n [type]=\"'text'\"\n [control]=\"transformToControl(form?.get(key))\"\n [required]=\"\n config[key] && config[key]?.required !== undefined ? config[key]?.required : fields[key].isRequired\n \"\n ></base-input>\n </ng-container>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'Image'\">\n <base-upload-image\n [id]=\"key\"\n [name]=\"key\"\n [label]=\"config[key]?.label ? config[key].label : capitalizeFirstLetter(key)\"\n [control]=\"transformToControl(form?.get(key))\"\n [url]=\"config[key]?.url\"\n [path]=\"config[key]?.path || '/files/'\"\n [uploadPath]=\"config[key]?.uploadPath || '/files/upload'\"\n [deletePath]=\"config[key]?.deletePath || '/files/'\"\n [supportText]=\"config[key]?.supportText || 'Unterst\u00FCtzte Formate: JPEG, JPG, PNG'\"\n [defaultDragText]=\"config[key]?.dragText || 'Drag & Drop'\"\n [defaultReleaseText]=\"config[key]?.releaseText || 'Loslassen zum hochladen'\"\n [preButtonText]=\"config[key]?.preButtonText || 'or'\"\n [buttonText]=\"config[key]?.buttonText || 'browse'\"\n [validExtensions]=\"config[key]?.validExtensions || ['image/jpeg', 'image/jpg', 'image/png', 'image/webp']\"\n [required]=\"\n config[key] && config[key]?.required !== undefined ? config[key]?.required : fields[key].isRequired\n \"\n [compressOptions]=\"config[key]?.compressOptions\"\n [maxSize]=\"config[key]?.maxSize\"\n [uploadDirectly]=\"false\"\n (fileChanged)=\"fileChanged.emit($event)\"\n (imageDeleted)=\"imageChanged.emit(key)\"\n (imageUploaded)=\"imageChanged.emit(key)\"\n ></base-upload-image>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'Reference'\">\n <base-refence-input\n [id]=\"key\"\n [name]=\"key\"\n [isList]=\"fields[key]?.isList\"\n [useParamAsArg]=\"config[key]?.useParamAsArg ?? false\"\n [param]=\"id\"\n [search]=\"config[key]?.searchable ?? true\"\n [placeholder]=\"config[key]?.placeholder || 'Bitte einen Wert ausw\u00E4hlen'\"\n [label]=\"config[key]?.label ? config[key].label : capitalizeFirstLetter(key)\"\n [control]=\"transformToControl(form?.get(key))\"\n [method]=\"config[key]?.method || 'find'\"\n [fields]=\"config[key]?.fields || ['id', 'name']\"\n [valueField]=\"config[key]?.valueField || 'id'\"\n [nameField]=\"config[key]?.nameField || 'name'\"\n [required]=\"\n config[key] && config[key]?.required !== undefined ? config[key]?.required : fields[key].isRequired\n \"\n ></base-refence-input>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'Boolean'\">\n <base-checkbox\n [id]=\"key\"\n [name]=\"key\"\n [label]=\"config[key]?.label ? config[key].label : capitalizeFirstLetter(key)\"\n [control]=\"transformToControl(form?.get(key))\"\n [required]=\"\n config[key] && config[key]?.required !== undefined ? config[key]?.required : fields[key].isRequired\n \"\n ></base-checkbox>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'LongText'\">\n <base-textarea\n [id]=\"key\"\n [name]=\"key\"\n [label]=\"config[key]?.label ? config[key].label : capitalizeFirstLetter(key)\"\n [control]=\"transformToControl(form?.get(key))\"\n [required]=\"\n config[key] && config[key]?.required !== undefined ? config[key]?.required : fields[key].isRequired\n \"\n ></base-textarea>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'Float'\">\n <base-input\n [id]=\"key\"\n [name]=\"key\"\n [type]=\"'number'\"\n [label]=\"config[key]?.label ? config[key].label : capitalizeFirstLetter(key)\"\n [placeholder]=\"config[key]?.placeholder || ''\"\n [control]=\"transformToControl(form?.get(key))\"\n [required]=\"\n config[key] && config[key]?.required !== undefined ? config[key]?.required : fields[key].isRequired\n \"\n ></base-input>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'Password'\">\n <base-input\n [id]=\"key\"\n [name]=\"key\"\n [type]=\"'password'\"\n [label]=\"config[key]?.label ? config[key].label : capitalizeFirstLetter(key)\"\n [placeholder]=\"config[key]?.placeholder || ''\"\n [control]=\"transformToControl(form?.get(key))\"\n [required]=\"\n config[key] && config[key]?.required !== undefined ? config[key]?.required : fields[key].isRequired\n \"\n ></base-input>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'Color'\">\n <base-input\n [id]=\"key\"\n [name]=\"key\"\n [type]=\"'color'\"\n [label]=\"config[key]?.label ? config[key].label : capitalizeFirstLetter(key)\"\n [placeholder]=\"config[key]?.placeholder || ''\"\n [control]=\"transformToControl(form?.get(key))\"\n [required]=\"\n config[key] && config[key]?.required !== undefined ? config[key]?.required : fields[key].isRequired\n \"\n ></base-input>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'URL'\">\n <base-input\n [id]=\"key\"\n [name]=\"key\"\n [label]=\"config[key]?.label ? config[key].label : capitalizeFirstLetter(key)\"\n [placeholder]=\"config[key]?.placeholder || ''\"\n [type]=\"'url'\"\n [control]=\"transformToControl(form?.get(key))\"\n [required]=\"\n config[key] && config[key]?.required !== undefined ? config[key]?.required : fields[key].isRequired\n \"\n ></base-input>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'Email'\">\n <base-input\n [id]=\"key\"\n [name]=\"key\"\n [label]=\"config[key]?.label ? config[key].label : capitalizeFirstLetter(key)\"\n [placeholder]=\"config[key]?.placeholder || ''\"\n [type]=\"'email'\"\n [control]=\"transformToControl(form?.get(key))\"\n [required]=\"\n config[key] && config[key]?.required !== undefined ? config[key]?.required : fields[key].isRequired\n \"\n ></base-input>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'DateTime'\">\n <base-input\n [id]=\"key\"\n [name]=\"key\"\n [label]=\"config[key]?.label ? config[key].label : capitalizeFirstLetter(key)\"\n [placeholder]=\"config[key]?.placeholder || ''\"\n [type]=\"'datetime-local'\"\n [control]=\"transformToControl(form?.get(key))\"\n [required]=\"\n config[key] && config[key]?.required !== undefined ? config[key]?.required : fields[key].isRequired\n \"\n ></base-input>\n </ng-container>\n </ng-container>\n </ng-container>\n </ng-container>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "component", type: i3.InputComponent, selector: "base-input", inputs: ["id", "name", "label", "placeholder", "autocomplete", "tabIndex", "control", "type", "required", "eyeButton"], outputs: ["enter"] }, { kind: "component", type: i4.SelectComponent, selector: "base-select", inputs: ["id", "name", "label", "placeholder", "control", "tabIndex", "required", "multiple", "search", "options"] }, { kind: "component", type: i5.CheckboxComponent, selector: "base-checkbox", inputs: ["id", "name", "label", "value", "control", "required"] }, { kind: "component", type: i6.TextareaComponent, selector: "base-textarea", inputs: ["id", "name", "label", "placeholder", "control", "rows", "required", "tabIndex"] }, { kind: "component", type: i7.TagsComponent, selector: "base-tags", inputs: ["id", "name", "label", "placeholder", "autocomplete", "tabIndex", "control", "options", "custom", "removeByKey", "required"] }, { kind: "component", type: ModelFormSubComponent, selector: "base-model-form-sub", inputs: ["id", "fields", "form", "config"], outputs: ["imageChanged", "fileChanged"] }, { kind: "component", type: i8.UploadImageComponent, selector: "base-upload-image", inputs: ["id", "name", "label", "supportText", "required", "defaultDragText", "defaultReleaseText", "preButtonText", "buttonText", "validExtensions", "control", "url", "uploadPath", "deletePath", "path", "compressOptions", "maxSize", "uploadDirectly"], outputs: ["imageUploaded", "imageDeleted", "fileChanged"] }, { kind: "component", type: i9.RefenceInputComponent, selector: "base-refence-input", inputs: ["id", "name", "label", "isList", "search", "useParamAsArg", "param", "placeholder", "autocomplete", "tabIndex", "control", "required", "method", "fields", "valueField", "nameField"] }] });
|
|
75
|
+
ModelFormSubComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.0", type: ModelFormSubComponent, selector: "base-model-form-sub", inputs: { id: "id", fields: "fields", form: "form", config: "config" }, outputs: { imageChanged: "imageChanged", fileChanged: "fileChanged" }, ngImport: i0, template: "<div class=\"mt-3\" *ngFor=\"let key of keys\">\n <ng-container\n *ngIf=\"checkFieldHasFields(fields[key]) && (config[key]?.roles ? user?.hasAllRoles(config[key]?.roles) : true)\"\n >\n <fieldset class=\"border rounded-3 p-3 mt-3\">\n <legend class=\"float-none w-auto px-3\">\n {{ config[key]?.label ? config[key].label : capitalizeFirstLetter(key) }}\n </legend>\n <base-model-form-sub\n [fields]=\"fields[key].fields\"\n [config]=\"config[key]?.fields || {}\"\n [form]=\"form.get(key)\"\n ></base-model-form-sub>\n </fieldset>\n </ng-container>\n\n <ng-container\n *ngIf=\"!checkFieldHasFields(fields[key]) && (config[key]?.roles ? user?.hasAllRoles(config[key]?.roles) : true)\"\n >\n <ng-container *ngIf=\"fields[key]?.isEnum && !config[key]?.exclude\">\n <base-select\n [id]=\"key\"\n [name]=\"key\"\n [label]=\"config[key]?.label ? config[key].label : capitalizeFirstLetter(key)\"\n [placeholder]=\"config[key]?.placeholder || 'Bitte einen Wert ausw\u00E4hlen'\"\n [options]=\"prepareEnumForSelect(fields[key]?.validEnums, config[key]?.enumValues)\"\n [control]=\"transformToControl(form?.get(key))\"\n [required]=\"config[key] && config[key]?.required !== undefined ? config[key]?.required : fields[key].isRequired\"\n ></base-select>\n </ng-container>\n\n <ng-container *ngIf=\"!fields[key]?.isEnum && !config[key]?.exclude\">\n <ng-container [ngSwitch]=\"config[key]?.type ? config[key]?.type : fields[key]?.type\">\n <ng-container *ngSwitchCase=\"'String'\">\n <ng-container *ngIf=\"fields[key]?.isList && !config[key]?.exclude\">\n <base-tags\n [id]=\"key\"\n [name]=\"key\"\n [label]=\"config[key]?.label ? config[key].label : capitalizeFirstLetter(key)\"\n [placeholder]=\"config[key]?.placeholder || ''\"\n [control]=\"transformToControl(form?.get(key))\"\n [required]=\"\n config[key] && config[key]?.required !== undefined ? config[key]?.required : fields[key].isRequired\n \"\n ></base-tags>\n </ng-container>\n\n <ng-container *ngIf=\"!fields[key]?.isList && !config[key]?.exclude\">\n <base-input\n [id]=\"key\"\n [name]=\"key\"\n [label]=\"config[key]?.label ? config[key].label : capitalizeFirstLetter(key)\"\n [placeholder]=\"config[key]?.placeholder || ''\"\n [type]=\"'text'\"\n [control]=\"transformToControl(form?.get(key))\"\n [required]=\"\n config[key] && config[key]?.required !== undefined ? config[key]?.required : fields[key].isRequired\n \"\n ></base-input>\n </ng-container>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'Image'\">\n <base-upload-image\n [id]=\"key\"\n [name]=\"key\"\n [label]=\"config[key]?.label ? config[key].label : capitalizeFirstLetter(key)\"\n [control]=\"transformToControl(form?.get(key))\"\n [url]=\"config[key]?.url\"\n [path]=\"config[key]?.path || '/files/'\"\n [uploadPath]=\"config[key]?.uploadPath || '/files/upload'\"\n [deletePath]=\"config[key]?.deletePath || '/files/'\"\n [supportText]=\"config[key]?.supportText || 'Unterst\u00FCtzte Formate: JPEG, JPG, PNG'\"\n [defaultDragText]=\"config[key]?.dragText || 'Drag & Drop'\"\n [defaultReleaseText]=\"config[key]?.releaseText || 'Loslassen zum hochladen'\"\n [preButtonText]=\"config[key]?.preButtonText || 'or'\"\n [buttonText]=\"config[key]?.buttonText || 'browse'\"\n [validExtensions]=\"config[key]?.validExtensions || ['image/jpeg', 'image/jpg', 'image/png', 'image/webp']\"\n [required]=\"\n config[key] && config[key]?.required !== undefined ? config[key]?.required : fields[key].isRequired\n \"\n [compressOptions]=\"config[key]?.compressOptions\"\n [maxSize]=\"config[key]?.maxSize\"\n [uploadDirectly]=\"false\"\n (fileChanged)=\"fileChanged.emit($event)\"\n (imageDeleted)=\"imageChanged.emit(key)\"\n (imageUploaded)=\"imageChanged.emit(key)\"\n ></base-upload-image>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'Reference'\">\n <base-refence-input\n [id]=\"key\"\n [name]=\"key\"\n [isList]=\"fields[key]?.isList\"\n [useParamAsArg]=\"config[key]?.useParamAsArg ?? false\"\n [param]=\"id\"\n [search]=\"config[key]?.searchable ?? true\"\n [placeholder]=\"config[key]?.placeholder || 'Bitte einen Wert ausw\u00E4hlen'\"\n [label]=\"config[key]?.label ? config[key].label : capitalizeFirstLetter(key)\"\n [control]=\"transformToControl(form?.get(key))\"\n [method]=\"config[key]?.method || 'find'\"\n [fields]=\"config[key]?.requestFields || ['id', 'name']\"\n [valueField]=\"config[key]?.valueField || 'id'\"\n [nameField]=\"config[key]?.nameField || 'name'\"\n [required]=\"\n config[key] && config[key]?.required !== undefined ? config[key]?.required : fields[key].isRequired\n \"\n ></base-refence-input>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'Boolean'\">\n <base-checkbox\n [id]=\"key\"\n [name]=\"key\"\n [label]=\"config[key]?.label ? config[key].label : capitalizeFirstLetter(key)\"\n [control]=\"transformToControl(form?.get(key))\"\n [required]=\"\n config[key] && config[key]?.required !== undefined ? config[key]?.required : fields[key].isRequired\n \"\n ></base-checkbox>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'LongText'\">\n <base-textarea\n [id]=\"key\"\n [name]=\"key\"\n [label]=\"config[key]?.label ? config[key].label : capitalizeFirstLetter(key)\"\n [control]=\"transformToControl(form?.get(key))\"\n [required]=\"\n config[key] && config[key]?.required !== undefined ? config[key]?.required : fields[key].isRequired\n \"\n ></base-textarea>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'Float'\">\n <base-input\n [id]=\"key\"\n [name]=\"key\"\n [type]=\"'number'\"\n [label]=\"config[key]?.label ? config[key].label : capitalizeFirstLetter(key)\"\n [placeholder]=\"config[key]?.placeholder || ''\"\n [control]=\"transformToControl(form?.get(key))\"\n [required]=\"\n config[key] && config[key]?.required !== undefined ? config[key]?.required : fields[key].isRequired\n \"\n ></base-input>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'Password'\">\n <base-input\n [id]=\"key\"\n [name]=\"key\"\n [type]=\"'password'\"\n [label]=\"config[key]?.label ? config[key].label : capitalizeFirstLetter(key)\"\n [placeholder]=\"config[key]?.placeholder || ''\"\n [control]=\"transformToControl(form?.get(key))\"\n [required]=\"\n config[key] && config[key]?.required !== undefined ? config[key]?.required : fields[key].isRequired\n \"\n ></base-input>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'Color'\">\n <base-input\n [id]=\"key\"\n [name]=\"key\"\n [type]=\"'color'\"\n [label]=\"config[key]?.label ? config[key].label : capitalizeFirstLetter(key)\"\n [placeholder]=\"config[key]?.placeholder || ''\"\n [control]=\"transformToControl(form?.get(key))\"\n [required]=\"\n config[key] && config[key]?.required !== undefined ? config[key]?.required : fields[key].isRequired\n \"\n ></base-input>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'URL'\">\n <base-input\n [id]=\"key\"\n [name]=\"key\"\n [label]=\"config[key]?.label ? config[key].label : capitalizeFirstLetter(key)\"\n [placeholder]=\"config[key]?.placeholder || ''\"\n [type]=\"'url'\"\n [control]=\"transformToControl(form?.get(key))\"\n [required]=\"\n config[key] && config[key]?.required !== undefined ? config[key]?.required : fields[key].isRequired\n \"\n ></base-input>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'Email'\">\n <base-input\n [id]=\"key\"\n [name]=\"key\"\n [label]=\"config[key]?.label ? config[key].label : capitalizeFirstLetter(key)\"\n [placeholder]=\"config[key]?.placeholder || ''\"\n [type]=\"'email'\"\n [control]=\"transformToControl(form?.get(key))\"\n [required]=\"\n config[key] && config[key]?.required !== undefined ? config[key]?.required : fields[key].isRequired\n \"\n ></base-input>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'DateTime'\">\n <base-input\n [id]=\"key\"\n [name]=\"key\"\n [label]=\"config[key]?.label ? config[key].label : capitalizeFirstLetter(key)\"\n [placeholder]=\"config[key]?.placeholder || ''\"\n [type]=\"'datetime-local'\"\n [control]=\"transformToControl(form?.get(key))\"\n [required]=\"\n config[key] && config[key]?.required !== undefined ? config[key]?.required : fields[key].isRequired\n \"\n ></base-input>\n </ng-container>\n </ng-container>\n </ng-container>\n </ng-container>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "component", type: i3.InputComponent, selector: "base-input", inputs: ["id", "name", "label", "placeholder", "autocomplete", "tabIndex", "control", "type", "required", "eyeButton"], outputs: ["enter"] }, { kind: "component", type: i4.SelectComponent, selector: "base-select", inputs: ["id", "name", "label", "placeholder", "control", "tabIndex", "required", "multiple", "search", "options"] }, { kind: "component", type: i5.CheckboxComponent, selector: "base-checkbox", inputs: ["id", "name", "label", "value", "control", "required"] }, { kind: "component", type: i6.TextareaComponent, selector: "base-textarea", inputs: ["id", "name", "label", "placeholder", "control", "rows", "required", "tabIndex"] }, { kind: "component", type: i7.TagsComponent, selector: "base-tags", inputs: ["id", "name", "label", "placeholder", "autocomplete", "tabIndex", "control", "options", "custom", "removeByKey", "required"] }, { kind: "component", type: ModelFormSubComponent, selector: "base-model-form-sub", inputs: ["id", "fields", "form", "config"], outputs: ["imageChanged", "fileChanged"] }, { kind: "component", type: i8.UploadImageComponent, selector: "base-upload-image", inputs: ["id", "name", "label", "supportText", "required", "defaultDragText", "defaultReleaseText", "preButtonText", "buttonText", "validExtensions", "control", "url", "uploadPath", "deletePath", "path", "compressOptions", "maxSize", "uploadDirectly"], outputs: ["imageUploaded", "imageDeleted", "fileChanged"] }, { kind: "component", type: i9.RefenceInputComponent, selector: "base-refence-input", inputs: ["id", "name", "label", "isList", "search", "useParamAsArg", "param", "placeholder", "autocomplete", "tabIndex", "control", "required", "method", "fields", "valueField", "nameField"] }] });
|
|
77
76
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: ModelFormSubComponent, decorators: [{
|
|
78
77
|
type: Component,
|
|
79
|
-
args: [{ selector: 'base-model-form-sub', template: "<div class=\"mt-3\" *ngFor=\"let key of keys\">\n <ng-container\n *ngIf=\"checkFieldHasFields(fields[key]) && (config[key]?.roles ? user?.hasAllRoles(config[key]?.roles) : true)\"\n >\n <fieldset class=\"border rounded-3 p-3 mt-3\">\n <legend class=\"float-none w-auto px-3\">\n {{ config[key]?.label ? config[key].label : capitalizeFirstLetter(key) }}\n </legend>\n <base-model-form-sub\n [fields]=\"fields[key].fields\"\n [config]=\"config[key]?.fields || {}\"\n [form]=\"form.get(key)\"\n ></base-model-form-sub>\n </fieldset>\n </ng-container>\n\n <ng-container\n *ngIf=\"!checkFieldHasFields(fields[key]) && (config[key]?.roles ? user?.hasAllRoles(config[key]?.roles) : true)\"\n >\n <ng-container *ngIf=\"fields[key]?.isEnum && !config[key]?.exclude\">\n <base-select\n [id]=\"key\"\n [name]=\"key\"\n [label]=\"config[key]?.label ? config[key].label : capitalizeFirstLetter(key)\"\n [placeholder]=\"config[key]?.placeholder || 'Bitte einen Wert ausw\u00E4hlen'\"\n [options]=\"prepareEnumForSelect(fields[key]?.validEnums, config[key]?.enumValues)\"\n [control]=\"transformToControl(form?.get(key))\"\n [required]=\"config[key] && config[key]?.required !== undefined ? config[key]?.required : fields[key].isRequired\"\n ></base-select>\n </ng-container>\n\n <ng-container *ngIf=\"!fields[key]?.isEnum && !config[key]?.exclude\">\n <ng-container [ngSwitch]=\"config[key]?.type ? config[key]?.type : fields[key]?.type\">\n <ng-container *ngSwitchCase=\"'String'\">\n <ng-container *ngIf=\"fields[key]?.isList && !config[key]?.exclude\">\n <base-tags\n [id]=\"key\"\n [name]=\"key\"\n [label]=\"config[key]?.label ? config[key].label : capitalizeFirstLetter(key)\"\n [placeholder]=\"config[key]?.placeholder || ''\"\n [control]=\"transformToControl(form?.get(key))\"\n [required]=\"\n config[key] && config[key]?.required !== undefined ? config[key]?.required : fields[key].isRequired\n \"\n ></base-tags>\n </ng-container>\n\n <ng-container *ngIf=\"!fields[key]?.isList && !config[key]?.exclude\">\n <base-input\n [id]=\"key\"\n [name]=\"key\"\n [label]=\"config[key]?.label ? config[key].label : capitalizeFirstLetter(key)\"\n [placeholder]=\"config[key]?.placeholder || ''\"\n [type]=\"'text'\"\n [control]=\"transformToControl(form?.get(key))\"\n [required]=\"\n config[key] && config[key]?.required !== undefined ? config[key]?.required : fields[key].isRequired\n \"\n ></base-input>\n </ng-container>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'Image'\">\n <base-upload-image\n [id]=\"key\"\n [name]=\"key\"\n [label]=\"config[key]?.label ? config[key].label : capitalizeFirstLetter(key)\"\n [control]=\"transformToControl(form?.get(key))\"\n [url]=\"config[key]?.url\"\n [path]=\"config[key]?.path || '/files/'\"\n [uploadPath]=\"config[key]?.uploadPath || '/files/upload'\"\n [deletePath]=\"config[key]?.deletePath || '/files/'\"\n [supportText]=\"config[key]?.supportText || 'Unterst\u00FCtzte Formate: JPEG, JPG, PNG'\"\n [defaultDragText]=\"config[key]?.dragText || 'Drag & Drop'\"\n [defaultReleaseText]=\"config[key]?.releaseText || 'Loslassen zum hochladen'\"\n [preButtonText]=\"config[key]?.preButtonText || 'or'\"\n [buttonText]=\"config[key]?.buttonText || 'browse'\"\n [validExtensions]=\"config[key]?.validExtensions || ['image/jpeg', 'image/jpg', 'image/png', 'image/webp']\"\n [required]=\"\n config[key] && config[key]?.required !== undefined ? config[key]?.required : fields[key].isRequired\n \"\n [compressOptions]=\"config[key]?.compressOptions\"\n [maxSize]=\"config[key]?.maxSize\"\n [uploadDirectly]=\"false\"\n (fileChanged)=\"fileChanged.emit($event)\"\n (imageDeleted)=\"imageChanged.emit(key)\"\n (imageUploaded)=\"imageChanged.emit(key)\"\n ></base-upload-image>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'Reference'\">\n <base-refence-input\n [id]=\"key\"\n [name]=\"key\"\n [isList]=\"fields[key]?.isList\"\n [useParamAsArg]=\"config[key]?.useParamAsArg ?? false\"\n [param]=\"id\"\n [search]=\"config[key]?.searchable ?? true\"\n [placeholder]=\"config[key]?.placeholder || 'Bitte einen Wert ausw\u00E4hlen'\"\n [label]=\"config[key]?.label ? config[key].label : capitalizeFirstLetter(key)\"\n [control]=\"transformToControl(form?.get(key))\"\n [method]=\"config[key]?.method || 'find'\"\n [fields]=\"config[key]?.fields || ['id', 'name']\"\n [valueField]=\"config[key]?.valueField || 'id'\"\n [nameField]=\"config[key]?.nameField || 'name'\"\n [required]=\"\n config[key] && config[key]?.required !== undefined ? config[key]?.required : fields[key].isRequired\n \"\n ></base-refence-input>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'Boolean'\">\n <base-checkbox\n [id]=\"key\"\n [name]=\"key\"\n [label]=\"config[key]?.label ? config[key].label : capitalizeFirstLetter(key)\"\n [control]=\"transformToControl(form?.get(key))\"\n [required]=\"\n config[key] && config[key]?.required !== undefined ? config[key]?.required : fields[key].isRequired\n \"\n ></base-checkbox>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'LongText'\">\n <base-textarea\n [id]=\"key\"\n [name]=\"key\"\n [label]=\"config[key]?.label ? config[key].label : capitalizeFirstLetter(key)\"\n [control]=\"transformToControl(form?.get(key))\"\n [required]=\"\n config[key] && config[key]?.required !== undefined ? config[key]?.required : fields[key].isRequired\n \"\n ></base-textarea>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'Float'\">\n <base-input\n [id]=\"key\"\n [name]=\"key\"\n [type]=\"'number'\"\n [label]=\"config[key]?.label ? config[key].label : capitalizeFirstLetter(key)\"\n [placeholder]=\"config[key]?.placeholder || ''\"\n [control]=\"transformToControl(form?.get(key))\"\n [required]=\"\n config[key] && config[key]?.required !== undefined ? config[key]?.required : fields[key].isRequired\n \"\n ></base-input>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'Password'\">\n <base-input\n [id]=\"key\"\n [name]=\"key\"\n [type]=\"'password'\"\n [label]=\"config[key]?.label ? config[key].label : capitalizeFirstLetter(key)\"\n [placeholder]=\"config[key]?.placeholder || ''\"\n [control]=\"transformToControl(form?.get(key))\"\n [required]=\"\n config[key] && config[key]?.required !== undefined ? config[key]?.required : fields[key].isRequired\n \"\n ></base-input>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'Color'\">\n <base-input\n [id]=\"key\"\n [name]=\"key\"\n [type]=\"'color'\"\n [label]=\"config[key]?.label ? config[key].label : capitalizeFirstLetter(key)\"\n [placeholder]=\"config[key]?.placeholder || ''\"\n [control]=\"transformToControl(form?.get(key))\"\n [required]=\"\n config[key] && config[key]?.required !== undefined ? config[key]?.required : fields[key].isRequired\n \"\n ></base-input>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'URL'\">\n <base-input\n [id]=\"key\"\n [name]=\"key\"\n [label]=\"config[key]?.label ? config[key].label : capitalizeFirstLetter(key)\"\n [placeholder]=\"config[key]?.placeholder || ''\"\n [type]=\"'url'\"\n [control]=\"transformToControl(form?.get(key))\"\n [required]=\"\n config[key] && config[key]?.required !== undefined ? config[key]?.required : fields[key].isRequired\n \"\n ></base-input>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'Email'\">\n <base-input\n [id]=\"key\"\n [name]=\"key\"\n [label]=\"config[key]?.label ? config[key].label : capitalizeFirstLetter(key)\"\n [placeholder]=\"config[key]?.placeholder || ''\"\n [type]=\"'email'\"\n [control]=\"transformToControl(form?.get(key))\"\n [required]=\"\n config[key] && config[key]?.required !== undefined ? config[key]?.required : fields[key].isRequired\n \"\n ></base-input>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'DateTime'\">\n <base-input\n [id]=\"key\"\n [name]=\"key\"\n [label]=\"config[key]?.label ? config[key].label : capitalizeFirstLetter(key)\"\n [placeholder]=\"config[key]?.placeholder || ''\"\n [type]=\"'datetime-local'\"\n [control]=\"transformToControl(form?.get(key))\"\n [required]=\"\n config[key] && config[key]?.required !== undefined ? config[key]?.required : fields[key].isRequired\n \"\n ></base-input>\n </ng-container>\n </ng-container>\n </ng-container>\n </ng-container>\n</div>\n" }]
|
|
78
|
+
args: [{ selector: 'base-model-form-sub', template: "<div class=\"mt-3\" *ngFor=\"let key of keys\">\n <ng-container\n *ngIf=\"checkFieldHasFields(fields[key]) && (config[key]?.roles ? user?.hasAllRoles(config[key]?.roles) : true)\"\n >\n <fieldset class=\"border rounded-3 p-3 mt-3\">\n <legend class=\"float-none w-auto px-3\">\n {{ config[key]?.label ? config[key].label : capitalizeFirstLetter(key) }}\n </legend>\n <base-model-form-sub\n [fields]=\"fields[key].fields\"\n [config]=\"config[key]?.fields || {}\"\n [form]=\"form.get(key)\"\n ></base-model-form-sub>\n </fieldset>\n </ng-container>\n\n <ng-container\n *ngIf=\"!checkFieldHasFields(fields[key]) && (config[key]?.roles ? user?.hasAllRoles(config[key]?.roles) : true)\"\n >\n <ng-container *ngIf=\"fields[key]?.isEnum && !config[key]?.exclude\">\n <base-select\n [id]=\"key\"\n [name]=\"key\"\n [label]=\"config[key]?.label ? config[key].label : capitalizeFirstLetter(key)\"\n [placeholder]=\"config[key]?.placeholder || 'Bitte einen Wert ausw\u00E4hlen'\"\n [options]=\"prepareEnumForSelect(fields[key]?.validEnums, config[key]?.enumValues)\"\n [control]=\"transformToControl(form?.get(key))\"\n [required]=\"config[key] && config[key]?.required !== undefined ? config[key]?.required : fields[key].isRequired\"\n ></base-select>\n </ng-container>\n\n <ng-container *ngIf=\"!fields[key]?.isEnum && !config[key]?.exclude\">\n <ng-container [ngSwitch]=\"config[key]?.type ? config[key]?.type : fields[key]?.type\">\n <ng-container *ngSwitchCase=\"'String'\">\n <ng-container *ngIf=\"fields[key]?.isList && !config[key]?.exclude\">\n <base-tags\n [id]=\"key\"\n [name]=\"key\"\n [label]=\"config[key]?.label ? config[key].label : capitalizeFirstLetter(key)\"\n [placeholder]=\"config[key]?.placeholder || ''\"\n [control]=\"transformToControl(form?.get(key))\"\n [required]=\"\n config[key] && config[key]?.required !== undefined ? config[key]?.required : fields[key].isRequired\n \"\n ></base-tags>\n </ng-container>\n\n <ng-container *ngIf=\"!fields[key]?.isList && !config[key]?.exclude\">\n <base-input\n [id]=\"key\"\n [name]=\"key\"\n [label]=\"config[key]?.label ? config[key].label : capitalizeFirstLetter(key)\"\n [placeholder]=\"config[key]?.placeholder || ''\"\n [type]=\"'text'\"\n [control]=\"transformToControl(form?.get(key))\"\n [required]=\"\n config[key] && config[key]?.required !== undefined ? config[key]?.required : fields[key].isRequired\n \"\n ></base-input>\n </ng-container>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'Image'\">\n <base-upload-image\n [id]=\"key\"\n [name]=\"key\"\n [label]=\"config[key]?.label ? config[key].label : capitalizeFirstLetter(key)\"\n [control]=\"transformToControl(form?.get(key))\"\n [url]=\"config[key]?.url\"\n [path]=\"config[key]?.path || '/files/'\"\n [uploadPath]=\"config[key]?.uploadPath || '/files/upload'\"\n [deletePath]=\"config[key]?.deletePath || '/files/'\"\n [supportText]=\"config[key]?.supportText || 'Unterst\u00FCtzte Formate: JPEG, JPG, PNG'\"\n [defaultDragText]=\"config[key]?.dragText || 'Drag & Drop'\"\n [defaultReleaseText]=\"config[key]?.releaseText || 'Loslassen zum hochladen'\"\n [preButtonText]=\"config[key]?.preButtonText || 'or'\"\n [buttonText]=\"config[key]?.buttonText || 'browse'\"\n [validExtensions]=\"config[key]?.validExtensions || ['image/jpeg', 'image/jpg', 'image/png', 'image/webp']\"\n [required]=\"\n config[key] && config[key]?.required !== undefined ? config[key]?.required : fields[key].isRequired\n \"\n [compressOptions]=\"config[key]?.compressOptions\"\n [maxSize]=\"config[key]?.maxSize\"\n [uploadDirectly]=\"false\"\n (fileChanged)=\"fileChanged.emit($event)\"\n (imageDeleted)=\"imageChanged.emit(key)\"\n (imageUploaded)=\"imageChanged.emit(key)\"\n ></base-upload-image>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'Reference'\">\n <base-refence-input\n [id]=\"key\"\n [name]=\"key\"\n [isList]=\"fields[key]?.isList\"\n [useParamAsArg]=\"config[key]?.useParamAsArg ?? false\"\n [param]=\"id\"\n [search]=\"config[key]?.searchable ?? true\"\n [placeholder]=\"config[key]?.placeholder || 'Bitte einen Wert ausw\u00E4hlen'\"\n [label]=\"config[key]?.label ? config[key].label : capitalizeFirstLetter(key)\"\n [control]=\"transformToControl(form?.get(key))\"\n [method]=\"config[key]?.method || 'find'\"\n [fields]=\"config[key]?.requestFields || ['id', 'name']\"\n [valueField]=\"config[key]?.valueField || 'id'\"\n [nameField]=\"config[key]?.nameField || 'name'\"\n [required]=\"\n config[key] && config[key]?.required !== undefined ? config[key]?.required : fields[key].isRequired\n \"\n ></base-refence-input>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'Boolean'\">\n <base-checkbox\n [id]=\"key\"\n [name]=\"key\"\n [label]=\"config[key]?.label ? config[key].label : capitalizeFirstLetter(key)\"\n [control]=\"transformToControl(form?.get(key))\"\n [required]=\"\n config[key] && config[key]?.required !== undefined ? config[key]?.required : fields[key].isRequired\n \"\n ></base-checkbox>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'LongText'\">\n <base-textarea\n [id]=\"key\"\n [name]=\"key\"\n [label]=\"config[key]?.label ? config[key].label : capitalizeFirstLetter(key)\"\n [control]=\"transformToControl(form?.get(key))\"\n [required]=\"\n config[key] && config[key]?.required !== undefined ? config[key]?.required : fields[key].isRequired\n \"\n ></base-textarea>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'Float'\">\n <base-input\n [id]=\"key\"\n [name]=\"key\"\n [type]=\"'number'\"\n [label]=\"config[key]?.label ? config[key].label : capitalizeFirstLetter(key)\"\n [placeholder]=\"config[key]?.placeholder || ''\"\n [control]=\"transformToControl(form?.get(key))\"\n [required]=\"\n config[key] && config[key]?.required !== undefined ? config[key]?.required : fields[key].isRequired\n \"\n ></base-input>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'Password'\">\n <base-input\n [id]=\"key\"\n [name]=\"key\"\n [type]=\"'password'\"\n [label]=\"config[key]?.label ? config[key].label : capitalizeFirstLetter(key)\"\n [placeholder]=\"config[key]?.placeholder || ''\"\n [control]=\"transformToControl(form?.get(key))\"\n [required]=\"\n config[key] && config[key]?.required !== undefined ? config[key]?.required : fields[key].isRequired\n \"\n ></base-input>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'Color'\">\n <base-input\n [id]=\"key\"\n [name]=\"key\"\n [type]=\"'color'\"\n [label]=\"config[key]?.label ? config[key].label : capitalizeFirstLetter(key)\"\n [placeholder]=\"config[key]?.placeholder || ''\"\n [control]=\"transformToControl(form?.get(key))\"\n [required]=\"\n config[key] && config[key]?.required !== undefined ? config[key]?.required : fields[key].isRequired\n \"\n ></base-input>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'URL'\">\n <base-input\n [id]=\"key\"\n [name]=\"key\"\n [label]=\"config[key]?.label ? config[key].label : capitalizeFirstLetter(key)\"\n [placeholder]=\"config[key]?.placeholder || ''\"\n [type]=\"'url'\"\n [control]=\"transformToControl(form?.get(key))\"\n [required]=\"\n config[key] && config[key]?.required !== undefined ? config[key]?.required : fields[key].isRequired\n \"\n ></base-input>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'Email'\">\n <base-input\n [id]=\"key\"\n [name]=\"key\"\n [label]=\"config[key]?.label ? config[key].label : capitalizeFirstLetter(key)\"\n [placeholder]=\"config[key]?.placeholder || ''\"\n [type]=\"'email'\"\n [control]=\"transformToControl(form?.get(key))\"\n [required]=\"\n config[key] && config[key]?.required !== undefined ? config[key]?.required : fields[key].isRequired\n \"\n ></base-input>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'DateTime'\">\n <base-input\n [id]=\"key\"\n [name]=\"key\"\n [label]=\"config[key]?.label ? config[key].label : capitalizeFirstLetter(key)\"\n [placeholder]=\"config[key]?.placeholder || ''\"\n [type]=\"'datetime-local'\"\n [control]=\"transformToControl(form?.get(key))\"\n [required]=\"\n config[key] && config[key]?.required !== undefined ? config[key]?.required : fields[key].isRequired\n \"\n ></base-input>\n </ng-container>\n </ng-container>\n </ng-container>\n </ng-container>\n</div>\n" }]
|
|
80
79
|
}], ctorParameters: function () { return [{ type: i1.AuthService }]; }, propDecorators: { id: [{
|
|
81
80
|
type: Input
|
|
82
81
|
}], fields: [{
|
|
@@ -90,4 +89,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImpor
|
|
|
90
89
|
}], fileChanged: [{
|
|
91
90
|
type: Output
|
|
92
91
|
}] } });
|
|
93
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwtZm9ybS1zdWIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctYmFzZS9iYXNlLWNvbXBvbmVudHMvY29tcG9uZW50cy9tb2RlbC1mb3JtLXN1Yi9tb2RlbC1mb3JtLXN1Yi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1iYXNlL2Jhc2UtY29tcG9uZW50cy9jb21wb25lbnRzL21vZGVsLWZvcm0tc3ViL21vZGVsLWZvcm0tc3ViLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFL0UsT0FBTyxFQUFlLFNBQVMsRUFBZSxNQUFNLDRCQUE0QixDQUFDOzs7Ozs7Ozs7OztBQU9qRixNQUFNLE9BQU8scUJBQXFCO0lBWWhDLFlBQW9CLFdBQXdCO1FBQXhCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBUm5DLFdBQU0sR0FBUSxFQUFFLENBQUM7UUFFaEIsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBQzFDLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQXdDLENBQUM7UUFFakYsU0FBSSxHQUFhLEVBQUUsQ0FBQztJQUcyQixDQUFDO0lBRWhELFFBQVE7UUFDTixXQUFXO1FBQ1gsTUFBTSxZQUFZLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFOUMsNEJBQTRCO1FBQzVCLElBQUksQ0FBQyxJQUFJLEdBQUcsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUNyQyxPQUFPLENBQ0wsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FDNUcsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO1FBRUgsMkJBQTJCO1FBQzNCLElBQUksQ0FBQyxJQUFJLEdBQUcsU0FBUyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFFRDs7T0FFRztJQUNILG1CQUFtQixDQUFDLEtBQWtCO1FBQ3BDLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxLQUFLLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxxQkFBcUIsQ0FBQyxLQUFhO1FBQ2pDLE9BQU8sS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxvQkFBb0IsQ0FBQyxNQUFhLEVBQUUsTUFBTSxHQUFHLEVBQUU7UUFDN0MsT0FBTyxNQUFNO2FBQ1YsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDWixPQUFPLENBQUMsQ0FBQyxNQUFNLElBQUksTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ25GLENBQUMsQ0FBQzthQUNELEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ1QsT0FBTztnQkFDTCxLQUFLLEVBQUUsQ0FBQztnQkFDUixJQUFJLEVBQUUsTUFBTSxJQUFJLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDckQsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsa0JBQWtCLENBQUMsT0FBMkM7UUFDNUQsT0FBTyxPQUE2QixDQUFDO0lBQ3ZDLENBQUM7O2tIQTFFVSxxQkFBcUI7c0dBQXJCLHFCQUFxQiwwTUNUbEMseTVUQThOQSw4MkNEck5hLHFCQUFxQjsyRkFBckIscUJBQXFCO2tCQUxqQyxTQUFTOytCQUNFLHFCQUFxQjtrR0FLdEIsRUFBRTtzQkFBVixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUVJLFlBQVk7c0JBQXJCLE1BQU07Z0JBQ0csV0FBVztzQkFBcEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgVW50eXBlZEZvcm1Db250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQXV0aFNlcnZpY2UsIEJhc2ljVXNlciwgR3JhcGhRTFR5cGUgfSBmcm9tICdAbGVubmUudGVjaC9uZy1iYXNlL3NoYXJlZCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2Jhc2UtbW9kZWwtZm9ybS1zdWInLFxuICB0ZW1wbGF0ZVVybDogJy4vbW9kZWwtZm9ybS1zdWIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9tb2RlbC1mb3JtLXN1Yi5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBNb2RlbEZvcm1TdWJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSBpZDogc3RyaW5nO1xuICBASW5wdXQoKSBmaWVsZHM6IFJlY29yZDxzdHJpbmcsIEdyYXBoUUxUeXBlPjtcbiAgQElucHV0KCkgZm9ybTogYW55O1xuICBASW5wdXQoKSBjb25maWc6IGFueSA9IHt9O1xuXG4gIEBPdXRwdXQoKSBpbWFnZUNoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcbiAgQE91dHB1dCgpIGZpbGVDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjx7IGZpZWxkOiBzdHJpbmc7IGZpbGU6IEZpbGUgfCBudWxsIH0+KCk7XG5cbiAga2V5czogc3RyaW5nW10gPSBbXTtcbiAgdXNlcjogQmFzaWNVc2VyO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIC8vIEdldCBrZXlzXG4gICAgY29uc3QgdW5zb3J0ZWRLZXlzID0gT2JqZWN0LmtleXModGhpcy5maWVsZHMpO1xuXG4gICAgLy8gU29ydCBrZXlzIGJ5IGNvbmZpZyBvcmRlclxuICAgIHRoaXMua2V5cyA9IHVuc29ydGVkS2V5cy5zb3J0KChhLCBiKSA9PiB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICAodGhpcy5jb25maWdbYV0/Lm9yZGVyID8gdGhpcy5jb25maWdbYV0/Lm9yZGVyIDogOTkpIC0gKHRoaXMuY29uZmlnW2JdPy5vcmRlciA/IHRoaXMuY29uZmlnW2JdPy5vcmRlciA6IDk5KVxuICAgICAgKTtcbiAgICB9KTtcblxuICAgIC8vIFNldCB1c2VyIGZvciByb2xlcyBjaGVja1xuICAgIHRoaXMudXNlciA9IEJhc2ljVXNlci5tYXAodGhpcy5hdXRoU2VydmljZS5jdXJyZW50VXNlcik7XG4gIH1cblxuICAvKipcbiAgICogSWYgdGhlIGZpZWxkIGhhcyBmaWVsZHMsIHJldHVybiB0cnVlLCBvdGhlcndpc2UgcmV0dXJuIGZhbHNlLlxuICAgKi9cbiAgY2hlY2tGaWVsZEhhc0ZpZWxkcyhmaWVsZDogR3JhcGhRTFR5cGUpIHtcbiAgICByZXR1cm4gT2JqZWN0LmtleXMoZmllbGQuZmllbGRzKT8ubGVuZ3RoICE9PSAwO1xuICB9XG5cbiAgLyoqXG4gICAqIEl0IHRha2VzIGEgc3RyaW5nLCBjYXBpdGFsaXplcyB0aGUgZmlyc3QgbGV0dGVyLCBhbmQgcmV0dXJucyB0aGUgbmV3IHN0cmluZ1xuICAgKlxuICAgKiBAcGFyYW0gdmFsdWUgLSBUaGUgc3RyaW5nIHRoYXQgeW91IHdhbnQgdG8gY2FwaXRhbGl6ZSB0aGUgZmlyc3QgbGV0dGVyIG9mLlxuICAgKiBAcmV0dXJucyBUaGUgZmlyc3QgbGV0dGVyIG9mIHRoZSBzdHJpbmcgaXMgYmVpbmcgY2FwaXRhbGl6ZWQgYW5kIHRoZSByZXN0IG9mIHRoZSBzdHJpbmcgaXMgYmVpbmcgcmV0dXJuZWQuXG4gICAqL1xuICBjYXBpdGFsaXplRmlyc3RMZXR0ZXIodmFsdWU6IHN0cmluZykge1xuICAgIHJldHVybiB2YWx1ZS5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIHZhbHVlLnNsaWNlKDEpO1xuICB9XG5cbiAgLyoqXG4gICAqIEl0IHRha2VzIGFuIGFycmF5IG9mIHZhbHVlcyBhbmQgcmV0dXJucyBhbiBhcnJheSBvZiBvYmplY3RzIHdpdGggYSB2YWx1ZSBhbmQgdGV4dCBwcm9wZXJ0eVxuICAgKlxuICAgKiBAcGFyYW0gdmFsdWVzIC0gYW55W10gLSB0aGUgYXJyYXkgb2YgdmFsdWVzIHRoYXQgeW91IHdhbnQgdG8gY29udmVydCB0byBhIHNlbGVjdGFibGUgbGlzdFxuICAgKiBAcGFyYW0gY29uZmlnXG4gICAqIEByZXR1cm5zIEFuIGFycmF5IG9mIG9iamVjdHMgd2l0aCBhIHZhbHVlIGFuZCB0ZXh0IHByb3BlcnR5LlxuICAgKi9cbiAgcHJlcGFyZUVudW1Gb3JTZWxlY3QodmFsdWVzOiBhbnlbXSwgY29uZmlnID0ge30pIHtcbiAgICByZXR1cm4gdmFsdWVzXG4gICAgICAuZmlsdGVyKChpKSA9PiB7XG4gICAgICAgIHJldHVybiAhKGNvbmZpZyAmJiBjb25maWdbaV0/LnJvbGVzICYmICF0aGlzLnVzZXIuaGFzQWxsUm9sZXMoY29uZmlnW2ldPy5yb2xlcykpO1xuICAgICAgfSlcbiAgICAgIC5tYXAoKGUpID0+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICB2YWx1ZTogZSxcbiAgICAgICAgICB0ZXh0OiBjb25maWcgJiYgY29uZmlnW2VdPy50ZXh0ID8gY29uZmlnW2VdLnRleHQgOiBlLFxuICAgICAgICB9O1xuICAgICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogSXQgdGFrZXMgYW4gQWJzdHJhY3RDb250cm9sIGFuZCByZXR1cm5zIGEgRm9ybUNvbnRyb2xcbiAgICpcbiAgICogQHBhcmFtIGNvbnRyb2wgLSBBYnN0cmFjdENvbnRyb2wgfCBudWxsIHwgdW5kZWZpbmVkXG4gICAqIEByZXR1cm5zIEEgRm9ybUNvbnRyb2xcbiAgICovXG4gIHRyYW5zZm9ybVRvQ29udHJvbChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wgfCBudWxsIHwgdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIGNvbnRyb2wgYXMgVW50eXBlZEZvcm1Db250cm9sO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwibXQtM1wiICpuZ0Zvcj1cImxldCBrZXkgb2Yga2V5c1wiPlxuICA8bmctY29udGFpbmVyXG4gICAgKm5nSWY9XCJjaGVja0ZpZWxkSGFzRmllbGRzKGZpZWxkc1trZXldKSAmJiAoY29uZmlnW2tleV0/LnJvbGVzID8gdXNlcj8uaGFzQWxsUm9sZXMoY29uZmlnW2tleV0/LnJvbGVzKSA6IHRydWUpXCJcbiAgPlxuICAgIDxmaWVsZHNldCBjbGFzcz1cImJvcmRlciByb3VuZGVkLTMgcC0zIG10LTNcIj5cbiAgICAgIDxsZWdlbmQgY2xhc3M9XCJmbG9hdC1ub25lIHctYXV0byBweC0zXCI+XG4gICAgICAgIHt7IGNvbmZpZ1trZXldPy5sYWJlbCA/IGNvbmZpZ1trZXldLmxhYmVsIDogY2FwaXRhbGl6ZUZpcnN0TGV0dGVyKGtleSkgfX1cbiAgICAgIDwvbGVnZW5kPlxuICAgICAgPGJhc2UtbW9kZWwtZm9ybS1zdWJcbiAgICAgICAgW2ZpZWxkc109XCJmaWVsZHNba2V5XS5maWVsZHNcIlxuICAgICAgICBbY29uZmlnXT1cImNvbmZpZ1trZXldPy5maWVsZHMgfHwge31cIlxuICAgICAgICBbZm9ybV09XCJmb3JtLmdldChrZXkpXCJcbiAgICAgID48L2Jhc2UtbW9kZWwtZm9ybS1zdWI+XG4gICAgPC9maWVsZHNldD5cbiAgPC9uZy1jb250YWluZXI+XG5cbiAgPG5nLWNvbnRhaW5lclxuICAgICpuZ0lmPVwiIWNoZWNrRmllbGRIYXNGaWVsZHMoZmllbGRzW2tleV0pICYmIChjb25maWdba2V5XT8ucm9sZXMgPyB1c2VyPy5oYXNBbGxSb2xlcyhjb25maWdba2V5XT8ucm9sZXMpIDogdHJ1ZSlcIlxuICA+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImZpZWxkc1trZXldPy5pc0VudW0gJiYgIWNvbmZpZ1trZXldPy5leGNsdWRlXCI+XG4gICAgICA8YmFzZS1zZWxlY3RcbiAgICAgICAgW2lkXT1cImtleVwiXG4gICAgICAgIFtuYW1lXT1cImtleVwiXG4gICAgICAgIFtsYWJlbF09XCJjb25maWdba2V5XT8ubGFiZWwgPyBjb25maWdba2V5XS5sYWJlbCA6IGNhcGl0YWxpemVGaXJzdExldHRlcihrZXkpXCJcbiAgICAgICAgW3BsYWNlaG9sZGVyXT1cImNvbmZpZ1trZXldPy5wbGFjZWhvbGRlciB8fCAnQml0dGUgZWluZW4gV2VydCBhdXN3w6RobGVuJ1wiXG4gICAgICAgIFtvcHRpb25zXT1cInByZXBhcmVFbnVtRm9yU2VsZWN0KGZpZWxkc1trZXldPy52YWxpZEVudW1zLCBjb25maWdba2V5XT8uZW51bVZhbHVlcylcIlxuICAgICAgICBbY29udHJvbF09XCJ0cmFuc2Zvcm1Ub0NvbnRyb2woZm9ybT8uZ2V0KGtleSkpXCJcbiAgICAgICAgW3JlcXVpcmVkXT1cImNvbmZpZ1trZXldICYmIGNvbmZpZ1trZXldPy5yZXF1aXJlZCAhPT0gdW5kZWZpbmVkID8gY29uZmlnW2tleV0/LnJlcXVpcmVkIDogZmllbGRzW2tleV0uaXNSZXF1aXJlZFwiXG4gICAgICA+PC9iYXNlLXNlbGVjdD5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhZmllbGRzW2tleV0/LmlzRW51bSAmJiAhY29uZmlnW2tleV0/LmV4Y2x1ZGVcIj5cbiAgICAgIDxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cImNvbmZpZ1trZXldPy50eXBlID8gY29uZmlnW2tleV0/LnR5cGUgOiBmaWVsZHNba2V5XT8udHlwZVwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInU3RyaW5nJ1wiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJmaWVsZHNba2V5XT8uaXNMaXN0ICYmICFjb25maWdba2V5XT8uZXhjbHVkZVwiPlxuICAgICAgICAgICAgPGJhc2UtdGFnc1xuICAgICAgICAgICAgICBbaWRdPVwia2V5XCJcbiAgICAgICAgICAgICAgW25hbWVdPVwia2V5XCJcbiAgICAgICAgICAgICAgW2xhYmVsXT1cImNvbmZpZ1trZXldPy5sYWJlbCA/IGNvbmZpZ1trZXldLmxhYmVsIDogY2FwaXRhbGl6ZUZpcnN0TGV0dGVyKGtleSlcIlxuICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiY29uZmlnW2tleV0/LnBsYWNlaG9sZGVyIHx8ICcnXCJcbiAgICAgICAgICAgICAgW2NvbnRyb2xdPVwidHJhbnNmb3JtVG9Db250cm9sKGZvcm0/LmdldChrZXkpKVwiXG4gICAgICAgICAgICAgIFtyZXF1aXJlZF09XCJcbiAgICAgICAgICAgICAgICBjb25maWdba2V5XSAmJiBjb25maWdba2V5XT8ucmVxdWlyZWQgIT09IHVuZGVmaW5lZCA/IGNvbmZpZ1trZXldPy5yZXF1aXJlZCA6IGZpZWxkc1trZXldLmlzUmVxdWlyZWRcbiAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgID48L2Jhc2UtdGFncz5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhZmllbGRzW2tleV0/LmlzTGlzdCAmJiAhY29uZmlnW2tleV0/LmV4Y2x1ZGVcIj5cbiAgICAgICAgICAgIDxiYXNlLWlucHV0XG4gICAgICAgICAgICAgIFtpZF09XCJrZXlcIlxuICAgICAgICAgICAgICBbbmFtZV09XCJrZXlcIlxuICAgICAgICAgICAgICBbbGFiZWxdPVwiY29uZmlnW2tleV0/LmxhYmVsID8gY29uZmlnW2tleV0ubGFiZWwgOiBjYXBpdGFsaXplRmlyc3RMZXR0ZXIoa2V5KVwiXG4gICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJjb25maWdba2V5XT8ucGxhY2Vob2xkZXIgfHwgJydcIlxuICAgICAgICAgICAgICBbdHlwZV09XCIndGV4dCdcIlxuICAgICAgICAgICAgICBbY29udHJvbF09XCJ0cmFuc2Zvcm1Ub0NvbnRyb2woZm9ybT8uZ2V0KGtleSkpXCJcbiAgICAgICAgICAgICAgW3JlcXVpcmVkXT1cIlxuICAgICAgICAgICAgICAgIGNvbmZpZ1trZXldICYmIGNvbmZpZ1trZXldPy5yZXF1aXJlZCAhPT0gdW5kZWZpbmVkID8gY29uZmlnW2tleV0/LnJlcXVpcmVkIDogZmllbGRzW2tleV0uaXNSZXF1aXJlZFxuICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgPjwvYmFzZS1pbnB1dD5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ0ltYWdlJ1wiPlxuICAgICAgICAgIDxiYXNlLXVwbG9hZC1pbWFnZVxuICAgICAgICAgICAgW2lkXT1cImtleVwiXG4gICAgICAgICAgICBbbmFtZV09XCJrZXlcIlxuICAgICAgICAgICAgW2xhYmVsXT1cImNvbmZpZ1trZXldPy5sYWJlbCA/IGNvbmZpZ1trZXldLmxhYmVsIDogY2FwaXRhbGl6ZUZpcnN0TGV0dGVyKGtleSlcIlxuICAgICAgICAgICAgW2NvbnRyb2xdPVwidHJhbnNmb3JtVG9Db250cm9sKGZvcm0/LmdldChrZXkpKVwiXG4gICAgICAgICAgICBbdXJsXT1cImNvbmZpZ1trZXldPy51cmxcIlxuICAgICAgICAgICAgW3BhdGhdPVwiY29uZmlnW2tleV0/LnBhdGggfHwgJy9maWxlcy8nXCJcbiAgICAgICAgICAgIFt1cGxvYWRQYXRoXT1cImNvbmZpZ1trZXldPy51cGxvYWRQYXRoIHx8ICcvZmlsZXMvdXBsb2FkJ1wiXG4gICAgICAgICAgICBbZGVsZXRlUGF0aF09XCJjb25maWdba2V5XT8uZGVsZXRlUGF0aCB8fCAnL2ZpbGVzLydcIlxuICAgICAgICAgICAgW3N1cHBvcnRUZXh0XT1cImNvbmZpZ1trZXldPy5zdXBwb3J0VGV4dCB8fCAnVW50ZXJzdMO8dHp0ZSBGb3JtYXRlOiBKUEVHLCBKUEcsIFBORydcIlxuICAgICAgICAgICAgW2RlZmF1bHREcmFnVGV4dF09XCJjb25maWdba2V5XT8uZHJhZ1RleHQgfHwgJ0RyYWcgJiBEcm9wJ1wiXG4gICAgICAgICAgICBbZGVmYXVsdFJlbGVhc2VUZXh0XT1cImNvbmZpZ1trZXldPy5yZWxlYXNlVGV4dCB8fCAnTG9zbGFzc2VuIHp1bSBob2NobGFkZW4nXCJcbiAgICAgICAgICAgIFtwcmVCdXR0b25UZXh0XT1cImNvbmZpZ1trZXldPy5wcmVCdXR0b25UZXh0IHx8ICdvcidcIlxuICAgICAgICAgICAgW2J1dHRvblRleHRdPVwiY29uZmlnW2tleV0/LmJ1dHRvblRleHQgfHwgJ2Jyb3dzZSdcIlxuICAgICAgICAgICAgW3ZhbGlkRXh0ZW5zaW9uc109XCJjb25maWdba2V5XT8udmFsaWRFeHRlbnNpb25zIHx8IFsnaW1hZ2UvanBlZycsICdpbWFnZS9qcGcnLCAnaW1hZ2UvcG5nJywgJ2ltYWdlL3dlYnAnXVwiXG4gICAgICAgICAgICBbcmVxdWlyZWRdPVwiXG4gICAgICAgICAgICAgIGNvbmZpZ1trZXldICYmIGNvbmZpZ1trZXldPy5yZXF1aXJlZCAhPT0gdW5kZWZpbmVkID8gY29uZmlnW2tleV0/LnJlcXVpcmVkIDogZmllbGRzW2tleV0uaXNSZXF1aXJlZFxuICAgICAgICAgICAgXCJcbiAgICAgICAgICAgIFtjb21wcmVzc09wdGlvbnNdPVwiY29uZmlnW2tleV0/LmNvbXByZXNzT3B0aW9uc1wiXG4gICAgICAgICAgICBbbWF4U2l6ZV09XCJjb25maWdba2V5XT8ubWF4U2l6ZVwiXG4gICAgICAgICAgICBbdXBsb2FkRGlyZWN0bHldPVwiZmFsc2VcIlxuICAgICAgICAgICAgKGZpbGVDaGFuZ2VkKT1cImZpbGVDaGFuZ2VkLmVtaXQoJGV2ZW50KVwiXG4gICAgICAgICAgICAoaW1hZ2VEZWxldGVkKT1cImltYWdlQ2hhbmdlZC5lbWl0KGtleSlcIlxuICAgICAgICAgICAgKGltYWdlVXBsb2FkZWQpPVwiaW1hZ2VDaGFuZ2VkLmVtaXQoa2V5KVwiXG4gICAgICAgICAgPjwvYmFzZS11cGxvYWQtaW1hZ2U+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidSZWZlcmVuY2UnXCI+XG4gICAgICAgICAgPGJhc2UtcmVmZW5jZS1pbnB1dFxuICAgICAgICAgICAgW2lkXT1cImtleVwiXG4gICAgICAgICAgICBbbmFtZV09XCJrZXlcIlxuICAgICAgICAgICAgW2lzTGlzdF09XCJmaWVsZHNba2V5XT8uaXNMaXN0XCJcbiAgICAgICAgICAgIFt1c2VQYXJhbUFzQXJnXT1cImNvbmZpZ1trZXldPy51c2VQYXJhbUFzQXJnID8/IGZhbHNlXCJcbiAgICAgICAgICAgIFtwYXJhbV09XCJpZFwiXG4gICAgICAgICAgICBbc2VhcmNoXT1cImNvbmZpZ1trZXldPy5zZWFyY2hhYmxlID8/IHRydWVcIlxuICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cImNvbmZpZ1trZXldPy5wbGFjZWhvbGRlciB8fCAnQml0dGUgZWluZW4gV2VydCBhdXN3w6RobGVuJ1wiXG4gICAgICAgICAgICBbbGFiZWxdPVwiY29uZmlnW2tleV0/LmxhYmVsID8gY29uZmlnW2tleV0ubGFiZWwgOiBjYXBpdGFsaXplRmlyc3RMZXR0ZXIoa2V5KVwiXG4gICAgICAgICAgICBbY29udHJvbF09XCJ0cmFuc2Zvcm1Ub0NvbnRyb2woZm9ybT8uZ2V0KGtleSkpXCJcbiAgICAgICAgICAgIFttZXRob2RdPVwiY29uZmlnW2tleV0/Lm1ldGhvZCB8fCAnZmluZCdcIlxuICAgICAgICAgICAgW2ZpZWxkc109XCJjb25maWdba2V5XT8uZmllbGRzIHx8IFsnaWQnLCAnbmFtZSddXCJcbiAgICAgICAgICAgIFt2YWx1ZUZpZWxkXT1cImNvbmZpZ1trZXldPy52YWx1ZUZpZWxkIHx8ICdpZCdcIlxuICAgICAgICAgICAgW25hbWVGaWVsZF09XCJjb25maWdba2V5XT8ubmFtZUZpZWxkIHx8ICduYW1lJ1wiXG4gICAgICAgICAgICBbcmVxdWlyZWRdPVwiXG4gICAgICAgICAgICAgIGNvbmZpZ1trZXldICYmIGNvbmZpZ1trZXldPy5yZXF1aXJlZCAhPT0gdW5kZWZpbmVkID8gY29uZmlnW2tleV0/LnJlcXVpcmVkIDogZmllbGRzW2tleV0uaXNSZXF1aXJlZFxuICAgICAgICAgICAgXCJcbiAgICAgICAgICA+PC9iYXNlLXJlZmVuY2UtaW5wdXQ+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidCb29sZWFuJ1wiPlxuICAgICAgICAgIDxiYXNlLWNoZWNrYm94XG4gICAgICAgICAgICBbaWRdPVwia2V5XCJcbiAgICAgICAgICAgIFtuYW1lXT1cImtleVwiXG4gICAgICAgICAgICBbbGFiZWxdPVwiY29uZmlnW2tleV0/LmxhYmVsID8gY29uZmlnW2tleV0ubGFiZWwgOiBjYXBpdGFsaXplRmlyc3RMZXR0ZXIoa2V5KVwiXG4gICAgICAgICAgICBbY29udHJvbF09XCJ0cmFuc2Zvcm1Ub0NvbnRyb2woZm9ybT8uZ2V0KGtleSkpXCJcbiAgICAgICAgICAgIFtyZXF1aXJlZF09XCJcbiAgICAgICAgICAgICAgY29uZmlnW2tleV0gJiYgY29uZmlnW2tleV0/LnJlcXVpcmVkICE9PSB1bmRlZmluZWQgPyBjb25maWdba2V5XT8ucmVxdWlyZWQgOiBmaWVsZHNba2V5XS5pc1JlcXVpcmVkXG4gICAgICAgICAgICBcIlxuICAgICAgICAgID48L2Jhc2UtY2hlY2tib3g+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidMb25nVGV4dCdcIj5cbiAgICAgICAgICA8YmFzZS10ZXh0YXJlYVxuICAgICAgICAgICAgW2lkXT1cImtleVwiXG4gICAgICAgICAgICBbbmFtZV09XCJrZXlcIlxuICAgICAgICAgICAgW2xhYmVsXT1cImNvbmZpZ1trZXldPy5sYWJlbCA/IGNvbmZpZ1trZXldLmxhYmVsIDogY2FwaXRhbGl6ZUZpcnN0TGV0dGVyKGtleSlcIlxuICAgICAgICAgICAgW2NvbnRyb2xdPVwidHJhbnNmb3JtVG9Db250cm9sKGZvcm0/LmdldChrZXkpKVwiXG4gICAgICAgICAgICBbcmVxdWlyZWRdPVwiXG4gICAgICAgICAgICAgIGNvbmZpZ1trZXldICYmIGNvbmZpZ1trZXldPy5yZXF1aXJlZCAhPT0gdW5kZWZpbmVkID8gY29uZmlnW2tleV0/LnJlcXVpcmVkIDogZmllbGRzW2tleV0uaXNSZXF1aXJlZFxuICAgICAgICAgICAgXCJcbiAgICAgICAgICA+PC9iYXNlLXRleHRhcmVhPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInRmxvYXQnXCI+XG4gICAgICAgICAgPGJhc2UtaW5wdXRcbiAgICAgICAgICAgIFtpZF09XCJrZXlcIlxuICAgICAgICAgICAgW25hbWVdPVwia2V5XCJcbiAgICAgICAgICAgIFt0eXBlXT1cIidudW1iZXInXCJcbiAgICAgICAgICAgIFtsYWJlbF09XCJjb25maWdba2V5XT8ubGFiZWwgPyBjb25maWdba2V5XS5sYWJlbCA6IGNhcGl0YWxpemVGaXJzdExldHRlcihrZXkpXCJcbiAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJjb25maWdba2V5XT8ucGxhY2Vob2xkZXIgfHwgJydcIlxuICAgICAgICAgICAgW2NvbnRyb2xdPVwidHJhbnNmb3JtVG9Db250cm9sKGZvcm0/LmdldChrZXkpKVwiXG4gICAgICAgICAgICBbcmVxdWlyZWRdPVwiXG4gICAgICAgICAgICAgIGNvbmZpZ1trZXldICYmIGNvbmZpZ1trZXldPy5yZXF1aXJlZCAhPT0gdW5kZWZpbmVkID8gY29uZmlnW2tleV0/LnJlcXVpcmVkIDogZmllbGRzW2tleV0uaXNSZXF1aXJlZFxuICAgICAgICAgICAgXCJcbiAgICAgICAgICA+PC9iYXNlLWlucHV0PlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInUGFzc3dvcmQnXCI+XG4gICAgICAgICAgPGJhc2UtaW5wdXRcbiAgICAgICAgICAgIFtpZF09XCJrZXlcIlxuICAgICAgICAgICAgW25hbWVdPVwia2V5XCJcbiAgICAgICAgICAgIFt0eXBlXT1cIidwYXNzd29yZCdcIlxuICAgICAgICAgICAgW2xhYmVsXT1cImNvbmZpZ1trZXldPy5sYWJlbCA/IGNvbmZpZ1trZXldLmxhYmVsIDogY2FwaXRhbGl6ZUZpcnN0TGV0dGVyKGtleSlcIlxuICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cImNvbmZpZ1trZXldPy5wbGFjZWhvbGRlciB8fCAnJ1wiXG4gICAgICAgICAgICBbY29udHJvbF09XCJ0cmFuc2Zvcm1Ub0NvbnRyb2woZm9ybT8uZ2V0KGtleSkpXCJcbiAgICAgICAgICAgIFtyZXF1aXJlZF09XCJcbiAgICAgICAgICAgICAgY29uZmlnW2tleV0gJiYgY29uZmlnW2tleV0/LnJlcXVpcmVkICE9PSB1bmRlZmluZWQgPyBjb25maWdba2V5XT8ucmVxdWlyZWQgOiBmaWVsZHNba2V5XS5pc1JlcXVpcmVkXG4gICAgICAgICAgICBcIlxuICAgICAgICAgID48L2Jhc2UtaW5wdXQ+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidDb2xvcidcIj5cbiAgICAgICAgICA8YmFzZS1pbnB1dFxuICAgICAgICAgICAgW2lkXT1cImtleVwiXG4gICAgICAgICAgICBbbmFtZV09XCJrZXlcIlxuICAgICAgICAgICAgW3R5cGVdPVwiJ2NvbG9yJ1wiXG4gICAgICAgICAgICBbbGFiZWxdPVwiY29uZmlnW2tleV0/LmxhYmVsID8gY29uZmlnW2tleV0ubGFiZWwgOiBjYXBpdGFsaXplRmlyc3RMZXR0ZXIoa2V5KVwiXG4gICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiY29uZmlnW2tleV0/LnBsYWNlaG9sZGVyIHx8ICcnXCJcbiAgICAgICAgICAgIFtjb250cm9sXT1cInRyYW5zZm9ybVRvQ29udHJvbChmb3JtPy5nZXQoa2V5KSlcIlxuICAgICAgICAgICAgW3JlcXVpcmVkXT1cIlxuICAgICAgICAgICAgICBjb25maWdba2V5XSAmJiBjb25maWdba2V5XT8ucmVxdWlyZWQgIT09IHVuZGVmaW5lZCA/IGNvbmZpZ1trZXldPy5yZXF1aXJlZCA6IGZpZWxkc1trZXldLmlzUmVxdWlyZWRcbiAgICAgICAgICAgIFwiXG4gICAgICAgICAgPjwvYmFzZS1pbnB1dD5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ1VSTCdcIj5cbiAgICAgICAgICA8YmFzZS1pbnB1dFxuICAgICAgICAgICAgW2lkXT1cImtleVwiXG4gICAgICAgICAgICBbbmFtZV09XCJrZXlcIlxuICAgICAgICAgICAgW2xhYmVsXT1cImNvbmZpZ1trZXldPy5sYWJlbCA/IGNvbmZpZ1trZXldLmxhYmVsIDogY2FwaXRhbGl6ZUZpcnN0TGV0dGVyKGtleSlcIlxuICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cImNvbmZpZ1trZXldPy5wbGFjZWhvbGRlciB8fCAnJ1wiXG4gICAgICAgICAgICBbdHlwZV09XCIndXJsJ1wiXG4gICAgICAgICAgICBbY29udHJvbF09XCJ0cmFuc2Zvcm1Ub0NvbnRyb2woZm9ybT8uZ2V0KGtleSkpXCJcbiAgICAgICAgICAgIFtyZXF1aXJlZF09XCJcbiAgICAgICAgICAgICAgY29uZmlnW2tleV0gJiYgY29uZmlnW2tleV0/LnJlcXVpcmVkICE9PSB1bmRlZmluZWQgPyBjb25maWdba2V5XT8ucmVxdWlyZWQgOiBmaWVsZHNba2V5XS5pc1JlcXVpcmVkXG4gICAgICAgICAgICBcIlxuICAgICAgICAgID48L2Jhc2UtaW5wdXQ+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidFbWFpbCdcIj5cbiAgICAgICAgICA8YmFzZS1pbnB1dFxuICAgICAgICAgICAgW2lkXT1cImtleVwiXG4gICAgICAgICAgICBbbmFtZV09XCJrZXlcIlxuICAgICAgICAgICAgW2xhYmVsXT1cImNvbmZpZ1trZXldPy5sYWJlbCA/IGNvbmZpZ1trZXldLmxhYmVsIDogY2FwaXRhbGl6ZUZpcnN0TGV0dGVyKGtleSlcIlxuICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cImNvbmZpZ1trZXldPy5wbGFjZWhvbGRlciB8fCAnJ1wiXG4gICAgICAgICAgICBbdHlwZV09XCInZW1haWwnXCJcbiAgICAgICAgICAgIFtjb250cm9sXT1cInRyYW5zZm9ybVRvQ29udHJvbChmb3JtPy5nZXQoa2V5KSlcIlxuICAgICAgICAgICAgW3JlcXVpcmVkXT1cIlxuICAgICAgICAgICAgICBjb25maWdba2V5XSAmJiBjb25maWdba2V5XT8ucmVxdWlyZWQgIT09IHVuZGVmaW5lZCA/IGNvbmZpZ1trZXldPy5yZXF1aXJlZCA6IGZpZWxkc1trZXldLmlzUmVxdWlyZWRcbiAgICAgICAgICAgIFwiXG4gICAgICAgICAgPjwvYmFzZS1pbnB1dD5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ0RhdGVUaW1lJ1wiPlxuICAgICAgICAgIDxiYXNlLWlucHV0XG4gICAgICAgICAgICBbaWRdPVwia2V5XCJcbiAgICAgICAgICAgIFtuYW1lXT1cImtleVwiXG4gICAgICAgICAgICBbbGFiZWxdPVwiY29uZmlnW2tleV0/LmxhYmVsID8gY29uZmlnW2tleV0ubGFiZWwgOiBjYXBpdGFsaXplRmlyc3RMZXR0ZXIoa2V5KVwiXG4gICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiY29uZmlnW2tleV0/LnBsYWNlaG9sZGVyIHx8ICcnXCJcbiAgICAgICAgICAgIFt0eXBlXT1cIidkYXRldGltZS1sb2NhbCdcIlxuICAgICAgICAgICAgW2NvbnRyb2xdPVwidHJhbnNmb3JtVG9Db250cm9sKGZvcm0/LmdldChrZXkpKVwiXG4gICAgICAgICAgICBbcmVxdWlyZWRdPVwiXG4gICAgICAgICAgICAgIGNvbmZpZ1trZXldICYmIGNvbmZpZ1trZXldPy5yZXF1aXJlZCAhPT0gdW5kZWZpbmVkID8gY29uZmlnW2tleV0/LnJlcXVpcmVkIDogZmllbGRzW2tleV0uaXNSZXF1aXJlZFxuICAgICAgICAgICAgXCJcbiAgICAgICAgICA+PC9iYXNlLWlucHV0PlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L25nLWNvbnRhaW5lcj5cbjwvZGl2PlxuIl19
|
|
92
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwtZm9ybS1zdWIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctYmFzZS9iYXNlLWNvbXBvbmVudHMvY29tcG9uZW50cy9tb2RlbC1mb3JtLXN1Yi9tb2RlbC1mb3JtLXN1Yi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1iYXNlL2Jhc2UtY29tcG9uZW50cy9jb21wb25lbnRzL21vZGVsLWZvcm0tc3ViL21vZGVsLWZvcm0tc3ViLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFL0UsT0FBTyxFQUFlLFNBQVMsRUFBK0IsTUFBTSw0QkFBNEIsQ0FBQzs7Ozs7Ozs7Ozs7QUFPakcsTUFBTSxPQUFPLHFCQUFxQjtJQVloQyxZQUFvQixXQUF3QjtRQUF4QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQU5sQyxpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFDMUMsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBd0MsQ0FBQztRQUVqRixTQUFJLEdBQWEsRUFBRSxDQUFDO0lBRzJCLENBQUM7SUFFaEQsUUFBUTtRQUNOLFdBQVc7UUFDWCxNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUU5Qyw0QkFBNEI7UUFDNUIsSUFBSSxDQUFDLElBQUksR0FBRyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ3JDLE9BQU8sQ0FDTCxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUM1RyxDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7UUFFSCwyQkFBMkI7UUFDM0IsSUFBSSxDQUFDLElBQUksR0FBRyxTQUFTLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUVEOztPQUVHO0lBQ0gsbUJBQW1CLENBQUMsS0FBa0I7UUFDcEMsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsRUFBRSxNQUFNLEtBQUssQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILHFCQUFxQixDQUFDLEtBQWE7UUFDakMsT0FBTyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILG9CQUFvQixDQUFDLE1BQWEsRUFBRSxNQUFNLEdBQUcsRUFBRTtRQUM3QyxPQUFPLE1BQU07YUFDVixNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUNaLE9BQU8sQ0FBQyxDQUFDLE1BQU0sSUFBSSxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDbkYsQ0FBQyxDQUFDO2FBQ0QsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDVCxPQUFPO2dCQUNMLEtBQUssRUFBRSxDQUFDO2dCQUNSLElBQUksRUFBRSxNQUFNLElBQUksTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUNyRCxDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxrQkFBa0IsQ0FBQyxPQUEyQztRQUM1RCxPQUFPLE9BQTZCLENBQUM7SUFDdkMsQ0FBQzs7a0hBMUVVLHFCQUFxQjtzR0FBckIscUJBQXFCLDBNQ1RsQyxnNlRBOE5BLDgyQ0RyTmEscUJBQXFCOzJGQUFyQixxQkFBcUI7a0JBTGpDLFNBQVM7K0JBQ0UscUJBQXFCO2tHQUt0QixFQUFFO3NCQUFWLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBRUksWUFBWTtzQkFBckIsTUFBTTtnQkFDRyxXQUFXO3NCQUFwQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBVbnR5cGVkRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBBdXRoU2VydmljZSwgQmFzaWNVc2VyLCBDTVNGaWVsZENvbmZpZywgR3JhcGhRTFR5cGUgfSBmcm9tICdAbGVubmUudGVjaC9uZy1iYXNlL3NoYXJlZCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2Jhc2UtbW9kZWwtZm9ybS1zdWInLFxuICB0ZW1wbGF0ZVVybDogJy4vbW9kZWwtZm9ybS1zdWIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9tb2RlbC1mb3JtLXN1Yi5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBNb2RlbEZvcm1TdWJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSBpZDogc3RyaW5nO1xuICBASW5wdXQoKSBmaWVsZHM6IFJlY29yZDxzdHJpbmcsIEdyYXBoUUxUeXBlPjtcbiAgQElucHV0KCkgZm9ybTogYW55O1xuICBASW5wdXQoKSBjb25maWc6IHsgW2tleTogc3RyaW5nXTogQ01TRmllbGRDb25maWcgfTtcblxuICBAT3V0cHV0KCkgaW1hZ2VDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG4gIEBPdXRwdXQoKSBmaWxlQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8eyBmaWVsZDogc3RyaW5nOyBmaWxlOiBGaWxlIHwgbnVsbCB9PigpO1xuXG4gIGtleXM6IHN0cmluZ1tdID0gW107XG4gIHVzZXI6IEJhc2ljVXNlcjtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGF1dGhTZXJ2aWNlOiBBdXRoU2VydmljZSkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAvLyBHZXQga2V5c1xuICAgIGNvbnN0IHVuc29ydGVkS2V5cyA9IE9iamVjdC5rZXlzKHRoaXMuZmllbGRzKTtcblxuICAgIC8vIFNvcnQga2V5cyBieSBjb25maWcgb3JkZXJcbiAgICB0aGlzLmtleXMgPSB1bnNvcnRlZEtleXMuc29ydCgoYSwgYikgPT4ge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgKHRoaXMuY29uZmlnW2FdPy5vcmRlciA/IHRoaXMuY29uZmlnW2FdPy5vcmRlciA6IDk5KSAtICh0aGlzLmNvbmZpZ1tiXT8ub3JkZXIgPyB0aGlzLmNvbmZpZ1tiXT8ub3JkZXIgOiA5OSlcbiAgICAgICk7XG4gICAgfSk7XG5cbiAgICAvLyBTZXQgdXNlciBmb3Igcm9sZXMgY2hlY2tcbiAgICB0aGlzLnVzZXIgPSBCYXNpY1VzZXIubWFwKHRoaXMuYXV0aFNlcnZpY2UuY3VycmVudFVzZXIpO1xuICB9XG5cbiAgLyoqXG4gICAqIElmIHRoZSBmaWVsZCBoYXMgZmllbGRzLCByZXR1cm4gdHJ1ZSwgb3RoZXJ3aXNlIHJldHVybiBmYWxzZS5cbiAgICovXG4gIGNoZWNrRmllbGRIYXNGaWVsZHMoZmllbGQ6IEdyYXBoUUxUeXBlKSB7XG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKGZpZWxkLmZpZWxkcyk/Lmxlbmd0aCAhPT0gMDtcbiAgfVxuXG4gIC8qKlxuICAgKiBJdCB0YWtlcyBhIHN0cmluZywgY2FwaXRhbGl6ZXMgdGhlIGZpcnN0IGxldHRlciwgYW5kIHJldHVybnMgdGhlIG5ldyBzdHJpbmdcbiAgICpcbiAgICogQHBhcmFtIHZhbHVlIC0gVGhlIHN0cmluZyB0aGF0IHlvdSB3YW50IHRvIGNhcGl0YWxpemUgdGhlIGZpcnN0IGxldHRlciBvZi5cbiAgICogQHJldHVybnMgVGhlIGZpcnN0IGxldHRlciBvZiB0aGUgc3RyaW5nIGlzIGJlaW5nIGNhcGl0YWxpemVkIGFuZCB0aGUgcmVzdCBvZiB0aGUgc3RyaW5nIGlzIGJlaW5nIHJldHVybmVkLlxuICAgKi9cbiAgY2FwaXRhbGl6ZUZpcnN0TGV0dGVyKHZhbHVlOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdmFsdWUuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyB2YWx1ZS5zbGljZSgxKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJdCB0YWtlcyBhbiBhcnJheSBvZiB2YWx1ZXMgYW5kIHJldHVybnMgYW4gYXJyYXkgb2Ygb2JqZWN0cyB3aXRoIGEgdmFsdWUgYW5kIHRleHQgcHJvcGVydHlcbiAgICpcbiAgICogQHBhcmFtIHZhbHVlcyAtIGFueVtdIC0gdGhlIGFycmF5IG9mIHZhbHVlcyB0aGF0IHlvdSB3YW50IHRvIGNvbnZlcnQgdG8gYSBzZWxlY3RhYmxlIGxpc3RcbiAgICogQHBhcmFtIGNvbmZpZ1xuICAgKiBAcmV0dXJucyBBbiBhcnJheSBvZiBvYmplY3RzIHdpdGggYSB2YWx1ZSBhbmQgdGV4dCBwcm9wZXJ0eS5cbiAgICovXG4gIHByZXBhcmVFbnVtRm9yU2VsZWN0KHZhbHVlczogYW55W10sIGNvbmZpZyA9IHt9KSB7XG4gICAgcmV0dXJuIHZhbHVlc1xuICAgICAgLmZpbHRlcigoaSkgPT4ge1xuICAgICAgICByZXR1cm4gIShjb25maWcgJiYgY29uZmlnW2ldPy5yb2xlcyAmJiAhdGhpcy51c2VyLmhhc0FsbFJvbGVzKGNvbmZpZ1tpXT8ucm9sZXMpKTtcbiAgICAgIH0pXG4gICAgICAubWFwKChlKSA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgdmFsdWU6IGUsXG4gICAgICAgICAgdGV4dDogY29uZmlnICYmIGNvbmZpZ1tlXT8udGV4dCA/IGNvbmZpZ1tlXS50ZXh0IDogZSxcbiAgICAgICAgfTtcbiAgICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEl0IHRha2VzIGFuIEFic3RyYWN0Q29udHJvbCBhbmQgcmV0dXJucyBhIEZvcm1Db250cm9sXG4gICAqXG4gICAqIEBwYXJhbSBjb250cm9sIC0gQWJzdHJhY3RDb250cm9sIHwgbnVsbCB8IHVuZGVmaW5lZFxuICAgKiBAcmV0dXJucyBBIEZvcm1Db250cm9sXG4gICAqL1xuICB0cmFuc2Zvcm1Ub0NvbnRyb2woY29udHJvbDogQWJzdHJhY3RDb250cm9sIHwgbnVsbCB8IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiBjb250cm9sIGFzIFVudHlwZWRGb3JtQ29udHJvbDtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cIm10LTNcIiAqbmdGb3I9XCJsZXQga2V5IG9mIGtleXNcIj5cbiAgPG5nLWNvbnRhaW5lclxuICAgICpuZ0lmPVwiY2hlY2tGaWVsZEhhc0ZpZWxkcyhmaWVsZHNba2V5XSkgJiYgKGNvbmZpZ1trZXldPy5yb2xlcyA/IHVzZXI/Lmhhc0FsbFJvbGVzKGNvbmZpZ1trZXldPy5yb2xlcykgOiB0cnVlKVwiXG4gID5cbiAgICA8ZmllbGRzZXQgY2xhc3M9XCJib3JkZXIgcm91bmRlZC0zIHAtMyBtdC0zXCI+XG4gICAgICA8bGVnZW5kIGNsYXNzPVwiZmxvYXQtbm9uZSB3LWF1dG8gcHgtM1wiPlxuICAgICAgICB7eyBjb25maWdba2V5XT8ubGFiZWwgPyBjb25maWdba2V5XS5sYWJlbCA6IGNhcGl0YWxpemVGaXJzdExldHRlcihrZXkpIH19XG4gICAgICA8L2xlZ2VuZD5cbiAgICAgIDxiYXNlLW1vZGVsLWZvcm0tc3ViXG4gICAgICAgIFtmaWVsZHNdPVwiZmllbGRzW2tleV0uZmllbGRzXCJcbiAgICAgICAgW2NvbmZpZ109XCJjb25maWdba2V5XT8uZmllbGRzIHx8IHt9XCJcbiAgICAgICAgW2Zvcm1dPVwiZm9ybS5nZXQoa2V5KVwiXG4gICAgICA+PC9iYXNlLW1vZGVsLWZvcm0tc3ViPlxuICAgIDwvZmllbGRzZXQ+XG4gIDwvbmctY29udGFpbmVyPlxuXG4gIDxuZy1jb250YWluZXJcbiAgICAqbmdJZj1cIiFjaGVja0ZpZWxkSGFzRmllbGRzKGZpZWxkc1trZXldKSAmJiAoY29uZmlnW2tleV0/LnJvbGVzID8gdXNlcj8uaGFzQWxsUm9sZXMoY29uZmlnW2tleV0/LnJvbGVzKSA6IHRydWUpXCJcbiAgPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJmaWVsZHNba2V5XT8uaXNFbnVtICYmICFjb25maWdba2V5XT8uZXhjbHVkZVwiPlxuICAgICAgPGJhc2Utc2VsZWN0XG4gICAgICAgIFtpZF09XCJrZXlcIlxuICAgICAgICBbbmFtZV09XCJrZXlcIlxuICAgICAgICBbbGFiZWxdPVwiY29uZmlnW2tleV0/LmxhYmVsID8gY29uZmlnW2tleV0ubGFiZWwgOiBjYXBpdGFsaXplRmlyc3RMZXR0ZXIoa2V5KVwiXG4gICAgICAgIFtwbGFjZWhvbGRlcl09XCJjb25maWdba2V5XT8ucGxhY2Vob2xkZXIgfHwgJ0JpdHRlIGVpbmVuIFdlcnQgYXVzd8OkaGxlbidcIlxuICAgICAgICBbb3B0aW9uc109XCJwcmVwYXJlRW51bUZvclNlbGVjdChmaWVsZHNba2V5XT8udmFsaWRFbnVtcywgY29uZmlnW2tleV0/LmVudW1WYWx1ZXMpXCJcbiAgICAgICAgW2NvbnRyb2xdPVwidHJhbnNmb3JtVG9Db250cm9sKGZvcm0/LmdldChrZXkpKVwiXG4gICAgICAgIFtyZXF1aXJlZF09XCJjb25maWdba2V5XSAmJiBjb25maWdba2V5XT8ucmVxdWlyZWQgIT09IHVuZGVmaW5lZCA/IGNvbmZpZ1trZXldPy5yZXF1aXJlZCA6IGZpZWxkc1trZXldLmlzUmVxdWlyZWRcIlxuICAgICAgPjwvYmFzZS1zZWxlY3Q+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWZpZWxkc1trZXldPy5pc0VudW0gJiYgIWNvbmZpZ1trZXldPy5leGNsdWRlXCI+XG4gICAgICA8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJjb25maWdba2V5XT8udHlwZSA/IGNvbmZpZ1trZXldPy50eXBlIDogZmllbGRzW2tleV0/LnR5cGVcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ1N0cmluZydcIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZmllbGRzW2tleV0/LmlzTGlzdCAmJiAhY29uZmlnW2tleV0/LmV4Y2x1ZGVcIj5cbiAgICAgICAgICAgIDxiYXNlLXRhZ3NcbiAgICAgICAgICAgICAgW2lkXT1cImtleVwiXG4gICAgICAgICAgICAgIFtuYW1lXT1cImtleVwiXG4gICAgICAgICAgICAgIFtsYWJlbF09XCJjb25maWdba2V5XT8ubGFiZWwgPyBjb25maWdba2V5XS5sYWJlbCA6IGNhcGl0YWxpemVGaXJzdExldHRlcihrZXkpXCJcbiAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cImNvbmZpZ1trZXldPy5wbGFjZWhvbGRlciB8fCAnJ1wiXG4gICAgICAgICAgICAgIFtjb250cm9sXT1cInRyYW5zZm9ybVRvQ29udHJvbChmb3JtPy5nZXQoa2V5KSlcIlxuICAgICAgICAgICAgICBbcmVxdWlyZWRdPVwiXG4gICAgICAgICAgICAgICAgY29uZmlnW2tleV0gJiYgY29uZmlnW2tleV0/LnJlcXVpcmVkICE9PSB1bmRlZmluZWQgPyBjb25maWdba2V5XT8ucmVxdWlyZWQgOiBmaWVsZHNba2V5XS5pc1JlcXVpcmVkXG4gICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICA+PC9iYXNlLXRhZ3M+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWZpZWxkc1trZXldPy5pc0xpc3QgJiYgIWNvbmZpZ1trZXldPy5leGNsdWRlXCI+XG4gICAgICAgICAgICA8YmFzZS1pbnB1dFxuICAgICAgICAgICAgICBbaWRdPVwia2V5XCJcbiAgICAgICAgICAgICAgW25hbWVdPVwia2V5XCJcbiAgICAgICAgICAgICAgW2xhYmVsXT1cImNvbmZpZ1trZXldPy5sYWJlbCA/IGNvbmZpZ1trZXldLmxhYmVsIDogY2FwaXRhbGl6ZUZpcnN0TGV0dGVyKGtleSlcIlxuICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiY29uZmlnW2tleV0/LnBsYWNlaG9sZGVyIHx8ICcnXCJcbiAgICAgICAgICAgICAgW3R5cGVdPVwiJ3RleHQnXCJcbiAgICAgICAgICAgICAgW2NvbnRyb2xdPVwidHJhbnNmb3JtVG9Db250cm9sKGZvcm0/LmdldChrZXkpKVwiXG4gICAgICAgICAgICAgIFtyZXF1aXJlZF09XCJcbiAgICAgICAgICAgICAgICBjb25maWdba2V5XSAmJiBjb25maWdba2V5XT8ucmVxdWlyZWQgIT09IHVuZGVmaW5lZCA/IGNvbmZpZ1trZXldPy5yZXF1aXJlZCA6IGZpZWxkc1trZXldLmlzUmVxdWlyZWRcbiAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgID48L2Jhc2UtaW5wdXQ+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidJbWFnZSdcIj5cbiAgICAgICAgICA8YmFzZS11cGxvYWQtaW1hZ2VcbiAgICAgICAgICAgIFtpZF09XCJrZXlcIlxuICAgICAgICAgICAgW25hbWVdPVwia2V5XCJcbiAgICAgICAgICAgIFtsYWJlbF09XCJjb25maWdba2V5XT8ubGFiZWwgPyBjb25maWdba2V5XS5sYWJlbCA6IGNhcGl0YWxpemVGaXJzdExldHRlcihrZXkpXCJcbiAgICAgICAgICAgIFtjb250cm9sXT1cInRyYW5zZm9ybVRvQ29udHJvbChmb3JtPy5nZXQoa2V5KSlcIlxuICAgICAgICAgICAgW3VybF09XCJjb25maWdba2V5XT8udXJsXCJcbiAgICAgICAgICAgIFtwYXRoXT1cImNvbmZpZ1trZXldPy5wYXRoIHx8ICcvZmlsZXMvJ1wiXG4gICAgICAgICAgICBbdXBsb2FkUGF0aF09XCJjb25maWdba2V5XT8udXBsb2FkUGF0aCB8fCAnL2ZpbGVzL3VwbG9hZCdcIlxuICAgICAgICAgICAgW2RlbGV0ZVBhdGhdPVwiY29uZmlnW2tleV0/LmRlbGV0ZVBhdGggfHwgJy9maWxlcy8nXCJcbiAgICAgICAgICAgIFtzdXBwb3J0VGV4dF09XCJjb25maWdba2V5XT8uc3VwcG9ydFRleHQgfHwgJ1VudGVyc3TDvHR6dGUgRm9ybWF0ZTogSlBFRywgSlBHLCBQTkcnXCJcbiAgICAgICAgICAgIFtkZWZhdWx0RHJhZ1RleHRdPVwiY29uZmlnW2tleV0/LmRyYWdUZXh0IHx8ICdEcmFnICYgRHJvcCdcIlxuICAgICAgICAgICAgW2RlZmF1bHRSZWxlYXNlVGV4dF09XCJjb25maWdba2V5XT8ucmVsZWFzZVRleHQgfHwgJ0xvc2xhc3NlbiB6dW0gaG9jaGxhZGVuJ1wiXG4gICAgICAgICAgICBbcHJlQnV0dG9uVGV4dF09XCJjb25maWdba2V5XT8ucHJlQnV0dG9uVGV4dCB8fCAnb3InXCJcbiAgICAgICAgICAgIFtidXR0b25UZXh0XT1cImNvbmZpZ1trZXldPy5idXR0b25UZXh0IHx8ICdicm93c2UnXCJcbiAgICAgICAgICAgIFt2YWxpZEV4dGVuc2lvbnNdPVwiY29uZmlnW2tleV0/LnZhbGlkRXh0ZW5zaW9ucyB8fCBbJ2ltYWdlL2pwZWcnLCAnaW1hZ2UvanBnJywgJ2ltYWdlL3BuZycsICdpbWFnZS93ZWJwJ11cIlxuICAgICAgICAgICAgW3JlcXVpcmVkXT1cIlxuICAgICAgICAgICAgICBjb25maWdba2V5XSAmJiBjb25maWdba2V5XT8ucmVxdWlyZWQgIT09IHVuZGVmaW5lZCA/IGNvbmZpZ1trZXldPy5yZXF1aXJlZCA6IGZpZWxkc1trZXldLmlzUmVxdWlyZWRcbiAgICAgICAgICAgIFwiXG4gICAgICAgICAgICBbY29tcHJlc3NPcHRpb25zXT1cImNvbmZpZ1trZXldPy5jb21wcmVzc09wdGlvbnNcIlxuICAgICAgICAgICAgW21heFNpemVdPVwiY29uZmlnW2tleV0/Lm1heFNpemVcIlxuICAgICAgICAgICAgW3VwbG9hZERpcmVjdGx5XT1cImZhbHNlXCJcbiAgICAgICAgICAgIChmaWxlQ2hhbmdlZCk9XCJmaWxlQ2hhbmdlZC5lbWl0KCRldmVudClcIlxuICAgICAgICAgICAgKGltYWdlRGVsZXRlZCk9XCJpbWFnZUNoYW5nZWQuZW1pdChrZXkpXCJcbiAgICAgICAgICAgIChpbWFnZVVwbG9hZGVkKT1cImltYWdlQ2hhbmdlZC5lbWl0KGtleSlcIlxuICAgICAgICAgID48L2Jhc2UtdXBsb2FkLWltYWdlPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInUmVmZXJlbmNlJ1wiPlxuICAgICAgICAgIDxiYXNlLXJlZmVuY2UtaW5wdXRcbiAgICAgICAgICAgIFtpZF09XCJrZXlcIlxuICAgICAgICAgICAgW25hbWVdPVwia2V5XCJcbiAgICAgICAgICAgIFtpc0xpc3RdPVwiZmllbGRzW2tleV0/LmlzTGlzdFwiXG4gICAgICAgICAgICBbdXNlUGFyYW1Bc0FyZ109XCJjb25maWdba2V5XT8udXNlUGFyYW1Bc0FyZyA/PyBmYWxzZVwiXG4gICAgICAgICAgICBbcGFyYW1dPVwiaWRcIlxuICAgICAgICAgICAgW3NlYXJjaF09XCJjb25maWdba2V5XT8uc2VhcmNoYWJsZSA/PyB0cnVlXCJcbiAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJjb25maWdba2V5XT8ucGxhY2Vob2xkZXIgfHwgJ0JpdHRlIGVpbmVuIFdlcnQgYXVzd8OkaGxlbidcIlxuICAgICAgICAgICAgW2xhYmVsXT1cImNvbmZpZ1trZXldPy5sYWJlbCA/IGNvbmZpZ1trZXldLmxhYmVsIDogY2FwaXRhbGl6ZUZpcnN0TGV0dGVyKGtleSlcIlxuICAgICAgICAgICAgW2NvbnRyb2xdPVwidHJhbnNmb3JtVG9Db250cm9sKGZvcm0/LmdldChrZXkpKVwiXG4gICAgICAgICAgICBbbWV0aG9kXT1cImNvbmZpZ1trZXldPy5tZXRob2QgfHwgJ2ZpbmQnXCJcbiAgICAgICAgICAgIFtmaWVsZHNdPVwiY29uZmlnW2tleV0/LnJlcXVlc3RGaWVsZHMgfHwgWydpZCcsICduYW1lJ11cIlxuICAgICAgICAgICAgW3ZhbHVlRmllbGRdPVwiY29uZmlnW2tleV0/LnZhbHVlRmllbGQgfHwgJ2lkJ1wiXG4gICAgICAgICAgICBbbmFtZUZpZWxkXT1cImNvbmZpZ1trZXldPy5uYW1lRmllbGQgfHwgJ25hbWUnXCJcbiAgICAgICAgICAgIFtyZXF1aXJlZF09XCJcbiAgICAgICAgICAgICAgY29uZmlnW2tleV0gJiYgY29uZmlnW2tleV0/LnJlcXVpcmVkICE9PSB1bmRlZmluZWQgPyBjb25maWdba2V5XT8ucmVxdWlyZWQgOiBmaWVsZHNba2V5XS5pc1JlcXVpcmVkXG4gICAgICAgICAgICBcIlxuICAgICAgICAgID48L2Jhc2UtcmVmZW5jZS1pbnB1dD5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ0Jvb2xlYW4nXCI+XG4gICAgICAgICAgPGJhc2UtY2hlY2tib3hcbiAgICAgICAgICAgIFtpZF09XCJrZXlcIlxuICAgICAgICAgICAgW25hbWVdPVwia2V5XCJcbiAgICAgICAgICAgIFtsYWJlbF09XCJjb25maWdba2V5XT8ubGFiZWwgPyBjb25maWdba2V5XS5sYWJlbCA6IGNhcGl0YWxpemVGaXJzdExldHRlcihrZXkpXCJcbiAgICAgICAgICAgIFtjb250cm9sXT1cInRyYW5zZm9ybVRvQ29udHJvbChmb3JtPy5nZXQoa2V5KSlcIlxuICAgICAgICAgICAgW3JlcXVpcmVkXT1cIlxuICAgICAgICAgICAgICBjb25maWdba2V5XSAmJiBjb25maWdba2V5XT8ucmVxdWlyZWQgIT09IHVuZGVmaW5lZCA/IGNvbmZpZ1trZXldPy5yZXF1aXJlZCA6IGZpZWxkc1trZXldLmlzUmVxdWlyZWRcbiAgICAgICAgICAgIFwiXG4gICAgICAgICAgPjwvYmFzZS1jaGVja2JveD5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ0xvbmdUZXh0J1wiPlxuICAgICAgICAgIDxiYXNlLXRleHRhcmVhXG4gICAgICAgICAgICBbaWRdPVwia2V5XCJcbiAgICAgICAgICAgIFtuYW1lXT1cImtleVwiXG4gICAgICAgICAgICBbbGFiZWxdPVwiY29uZmlnW2tleV0/LmxhYmVsID8gY29uZmlnW2tleV0ubGFiZWwgOiBjYXBpdGFsaXplRmlyc3RMZXR0ZXIoa2V5KVwiXG4gICAgICAgICAgICBbY29udHJvbF09XCJ0cmFuc2Zvcm1Ub0NvbnRyb2woZm9ybT8uZ2V0KGtleSkpXCJcbiAgICAgICAgICAgIFtyZXF1aXJlZF09XCJcbiAgICAgICAgICAgICAgY29uZmlnW2tleV0gJiYgY29uZmlnW2tleV0/LnJlcXVpcmVkICE9PSB1bmRlZmluZWQgPyBjb25maWdba2V5XT8ucmVxdWlyZWQgOiBmaWVsZHNba2V5XS5pc1JlcXVpcmVkXG4gICAgICAgICAgICBcIlxuICAgICAgICAgID48L2Jhc2UtdGV4dGFyZWE+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidGbG9hdCdcIj5cbiAgICAgICAgICA8YmFzZS1pbnB1dFxuICAgICAgICAgICAgW2lkXT1cImtleVwiXG4gICAgICAgICAgICBbbmFtZV09XCJrZXlcIlxuICAgICAgICAgICAgW3R5cGVdPVwiJ251bWJlcidcIlxuICAgICAgICAgICAgW2xhYmVsXT1cImNvbmZpZ1trZXldPy5sYWJlbCA/IGNvbmZpZ1trZXldLmxhYmVsIDogY2FwaXRhbGl6ZUZpcnN0TGV0dGVyKGtleSlcIlxuICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cImNvbmZpZ1trZXldPy5wbGFjZWhvbGRlciB8fCAnJ1wiXG4gICAgICAgICAgICBbY29udHJvbF09XCJ0cmFuc2Zvcm1Ub0NvbnRyb2woZm9ybT8uZ2V0KGtleSkpXCJcbiAgICAgICAgICAgIFtyZXF1aXJlZF09XCJcbiAgICAgICAgICAgICAgY29uZmlnW2tleV0gJiYgY29uZmlnW2tleV0/LnJlcXVpcmVkICE9PSB1bmRlZmluZWQgPyBjb25maWdba2V5XT8ucmVxdWlyZWQgOiBmaWVsZHNba2V5XS5pc1JlcXVpcmVkXG4gICAgICAgICAgICBcIlxuICAgICAgICAgID48L2Jhc2UtaW5wdXQ+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidQYXNzd29yZCdcIj5cbiAgICAgICAgICA8YmFzZS1pbnB1dFxuICAgICAgICAgICAgW2lkXT1cImtleVwiXG4gICAgICAgICAgICBbbmFtZV09XCJrZXlcIlxuICAgICAgICAgICAgW3R5cGVdPVwiJ3Bhc3N3b3JkJ1wiXG4gICAgICAgICAgICBbbGFiZWxdPVwiY29uZmlnW2tleV0/LmxhYmVsID8gY29uZmlnW2tleV0ubGFiZWwgOiBjYXBpdGFsaXplRmlyc3RMZXR0ZXIoa2V5KVwiXG4gICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiY29uZmlnW2tleV0/LnBsYWNlaG9sZGVyIHx8ICcnXCJcbiAgICAgICAgICAgIFtjb250cm9sXT1cInRyYW5zZm9ybVRvQ29udHJvbChmb3JtPy5nZXQoa2V5KSlcIlxuICAgICAgICAgICAgW3JlcXVpcmVkXT1cIlxuICAgICAgICAgICAgICBjb25maWdba2V5XSAmJiBjb25maWdba2V5XT8ucmVxdWlyZWQgIT09IHVuZGVmaW5lZCA/IGNvbmZpZ1trZXldPy5yZXF1aXJlZCA6IGZpZWxkc1trZXldLmlzUmVxdWlyZWRcbiAgICAgICAgICAgIFwiXG4gICAgICAgICAgPjwvYmFzZS1pbnB1dD5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ0NvbG9yJ1wiPlxuICAgICAgICAgIDxiYXNlLWlucHV0XG4gICAgICAgICAgICBbaWRdPVwia2V5XCJcbiAgICAgICAgICAgIFtuYW1lXT1cImtleVwiXG4gICAgICAgICAgICBbdHlwZV09XCInY29sb3InXCJcbiAgICAgICAgICAgIFtsYWJlbF09XCJjb25maWdba2V5XT8ubGFiZWwgPyBjb25maWdba2V5XS5sYWJlbCA6IGNhcGl0YWxpemVGaXJzdExldHRlcihrZXkpXCJcbiAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJjb25maWdba2V5XT8ucGxhY2Vob2xkZXIgfHwgJydcIlxuICAgICAgICAgICAgW2NvbnRyb2xdPVwidHJhbnNmb3JtVG9Db250cm9sKGZvcm0/LmdldChrZXkpKVwiXG4gICAgICAgICAgICBbcmVxdWlyZWRdPVwiXG4gICAgICAgICAgICAgIGNvbmZpZ1trZXldICYmIGNvbmZpZ1trZXldPy5yZXF1aXJlZCAhPT0gdW5kZWZpbmVkID8gY29uZmlnW2tleV0/LnJlcXVpcmVkIDogZmllbGRzW2tleV0uaXNSZXF1aXJlZFxuICAgICAgICAgICAgXCJcbiAgICAgICAgICA+PC9iYXNlLWlucHV0PlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInVVJMJ1wiPlxuICAgICAgICAgIDxiYXNlLWlucHV0XG4gICAgICAgICAgICBbaWRdPVwia2V5XCJcbiAgICAgICAgICAgIFtuYW1lXT1cImtleVwiXG4gICAgICAgICAgICBbbGFiZWxdPVwiY29uZmlnW2tleV0/LmxhYmVsID8gY29uZmlnW2tleV0ubGFiZWwgOiBjYXBpdGFsaXplRmlyc3RMZXR0ZXIoa2V5KVwiXG4gICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiY29uZmlnW2tleV0/LnBsYWNlaG9sZGVyIHx8ICcnXCJcbiAgICAgICAgICAgIFt0eXBlXT1cIid1cmwnXCJcbiAgICAgICAgICAgIFtjb250cm9sXT1cInRyYW5zZm9ybVRvQ29udHJvbChmb3JtPy5nZXQoa2V5KSlcIlxuICAgICAgICAgICAgW3JlcXVpcmVkXT1cIlxuICAgICAgICAgICAgICBjb25maWdba2V5XSAmJiBjb25maWdba2V5XT8ucmVxdWlyZWQgIT09IHVuZGVmaW5lZCA/IGNvbmZpZ1trZXldPy5yZXF1aXJlZCA6IGZpZWxkc1trZXldLmlzUmVxdWlyZWRcbiAgICAgICAgICAgIFwiXG4gICAgICAgICAgPjwvYmFzZS1pbnB1dD5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ0VtYWlsJ1wiPlxuICAgICAgICAgIDxiYXNlLWlucHV0XG4gICAgICAgICAgICBbaWRdPVwia2V5XCJcbiAgICAgICAgICAgIFtuYW1lXT1cImtleVwiXG4gICAgICAgICAgICBbbGFiZWxdPVwiY29uZmlnW2tleV0/LmxhYmVsID8gY29uZmlnW2tleV0ubGFiZWwgOiBjYXBpdGFsaXplRmlyc3RMZXR0ZXIoa2V5KVwiXG4gICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiY29uZmlnW2tleV0/LnBsYWNlaG9sZGVyIHx8ICcnXCJcbiAgICAgICAgICAgIFt0eXBlXT1cIidlbWFpbCdcIlxuICAgICAgICAgICAgW2NvbnRyb2xdPVwidHJhbnNmb3JtVG9Db250cm9sKGZvcm0/LmdldChrZXkpKVwiXG4gICAgICAgICAgICBbcmVxdWlyZWRdPVwiXG4gICAgICAgICAgICAgIGNvbmZpZ1trZXldICYmIGNvbmZpZ1trZXldPy5yZXF1aXJlZCAhPT0gdW5kZWZpbmVkID8gY29uZmlnW2tleV0/LnJlcXVpcmVkIDogZmllbGRzW2tleV0uaXNSZXF1aXJlZFxuICAgICAgICAgICAgXCJcbiAgICAgICAgICA+PC9iYXNlLWlucHV0PlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInRGF0ZVRpbWUnXCI+XG4gICAgICAgICAgPGJhc2UtaW5wdXRcbiAgICAgICAgICAgIFtpZF09XCJrZXlcIlxuICAgICAgICAgICAgW25hbWVdPVwia2V5XCJcbiAgICAgICAgICAgIFtsYWJlbF09XCJjb25maWdba2V5XT8ubGFiZWwgPyBjb25maWdba2V5XS5sYWJlbCA6IGNhcGl0YWxpemVGaXJzdExldHRlcihrZXkpXCJcbiAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJjb25maWdba2V5XT8ucGxhY2Vob2xkZXIgfHwgJydcIlxuICAgICAgICAgICAgW3R5cGVdPVwiJ2RhdGV0aW1lLWxvY2FsJ1wiXG4gICAgICAgICAgICBbY29udHJvbF09XCJ0cmFuc2Zvcm1Ub0NvbnRyb2woZm9ybT8uZ2V0KGtleSkpXCJcbiAgICAgICAgICAgIFtyZXF1aXJlZF09XCJcbiAgICAgICAgICAgICAgY29uZmlnW2tleV0gJiYgY29uZmlnW2tleV0/LnJlcXVpcmVkICE9PSB1bmRlZmluZWQgPyBjb25maWdba2V5XT8ucmVxdWlyZWQgOiBmaWVsZHNba2V5XS5pc1JlcXVpcmVkXG4gICAgICAgICAgICBcIlxuICAgICAgICAgID48L2Jhc2UtaW5wdXQ+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvbmctY29udGFpbmVyPlxuPC9kaXY+XG4iXX0=
|
|
@@ -24,7 +24,6 @@ export class ModelTableComponent {
|
|
|
24
24
|
this.export = true;
|
|
25
25
|
this.duplicate = true;
|
|
26
26
|
this.config = {};
|
|
27
|
-
this.fieldConfig = {};
|
|
28
27
|
this.showFavButton = true;
|
|
29
28
|
this.idSelected = new EventEmitter();
|
|
30
29
|
this.createModeChanged = new EventEmitter();
|
|
@@ -350,4 +349,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImpor
|
|
|
350
349
|
}], createModeChanged: [{
|
|
351
350
|
type: Output
|
|
352
351
|
}] } });
|
|
353
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwtdGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctYmFzZS9iYXNlLWNvbXBvbmVudHMvY29tcG9uZW50cy9tb2RlbC10YWJsZS9tb2RlbC10YWJsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1iYXNlL2Jhc2UtY29tcG9uZW50cy9jb21wb25lbnRzL21vZGVsLXRhYmxlL21vZGVsLXRhYmxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUN6RyxPQUFPLEVBSUwsa0JBQWtCLEVBSWxCLGFBQWEsRUFFYixTQUFTLEdBQ1YsTUFBTSw0QkFBNEIsQ0FBQzs7Ozs7Ozs7O0FBT3BDLE1BQU0sT0FBTyxtQkFBbUI7SUF3QzlCLFlBQ1Usa0JBQXNDLEVBQ3RDLGNBQThCLEVBQzlCLFVBQXNCLEVBQ3RCLFlBQTBCLEVBQzFCLGFBQTRCO1FBSjVCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFDdEMsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsa0JBQWEsR0FBYixhQUFhLENBQWU7UUExQzdCLGVBQVUsR0FBRyxLQUFLLENBQUM7UUFDbkIsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUNoQixXQUFNLEdBQUcsSUFBSSxDQUFDO1FBQ2QsV0FBTSxHQUFHLElBQUksQ0FBQztRQUNkLFdBQU0sR0FBRyxJQUFJLENBQUM7UUFDZCxXQUFNLEdBQUcsSUFBSSxDQUFDO1FBQ2QsV0FBTSxHQUFHLElBQUksQ0FBQztRQUNkLGNBQVMsR0FBRyxJQUFJLENBQUM7UUFDakIsV0FBTSxHQUFRLEVB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S0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBRUksVUFBVTtzQkFBbkIsTUFBTTtnQkFDRyxpQkFBaUI7c0JBQTFCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uQ2hhbmdlcywgT25Jbml0LCBPdXRwdXQsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIENtc1NlcnZpY2UsXG4gIEdyYXBoUUxNZXRhLFxuICBHcmFwaFFMTWV0YVNlcnZpY2UsXG4gIEdyYXBoUUxSZXF1ZXN0VHlwZSxcbiAgR3JhcGhRTFNlcnZpY2UsXG4gIEdyYXBoUUxUeXBlLFxuICBTY3JvbGxTZXJ2aWNlLFxuICBTb3J0T3JkZXJFbnVtLFxuICBUb2FzdFNlcnZpY2UsXG4gIFRvYXN0VHlwZSxcbn0gZnJvbSAnQGxlbm5lLnRlY2gvbmctYmFzZS9zaGFyZWQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdiYXNlLW1vZGVsLXRhYmxlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL21vZGVsLXRhYmxlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbW9kZWwtdGFibGUuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgTW9kZWxUYWJsZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcbiAgQElucHV0KCkgbW9kZWxOYW1lOiBzdHJpbmc7XG4gIEBJbnB1dCgpIG9iamVjdElkOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGNyZWF0ZU1vZGUgPSBmYWxzZTtcbiAgQElucHV0KCkgbG9nZ2luZyA9IGZhbHNlO1xuICBASW5wdXQoKSBjcmVhdGUgPSB0cnVlO1xuICBASW5wdXQoKSB1cGRhdGUgPSB0cnVlO1xuICBASW5wdXQoKSBkZWxldGUgPSB0cnVlO1xuICBASW5wdXQoKSBpbXBvcnQgPSB0cnVlO1xuICBASW5wdXQoKSBleHBvcnQgPSB0cnVlO1xuICBASW5wdXQoKSBkdXBsaWNhdGUgPSB0cnVlO1xuICBASW5wdXQoKSBjb25maWc6IGFueSA9IHt9O1xuICBASW5wdXQoKSBmaWVsZENvbmZpZzogYW55ID0ge307XG4gIEBJbnB1dCgpIHNob3dGYXZCdXR0b24gPSB0cnVlO1xuXG4gIEBPdXRwdXQoKSBpZFNlbGVjdGVkID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG4gIEBPdXRwdXQoKSBjcmVhdGVNb2RlQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICB1bmlxdWVGaWVsZCA9ICdpZCc7XG4gIHRhYmxlRmllbGRzID0ge1xuICAgIGlkOiB7IGxhYmVsOiAnSUQnIH0sXG4gICAgbmFtZTogeyBsYWJlbDogJ05hbWUnIH0sXG4gICAgdGl0bGU6IHsgbGFiZWw6ICdUaXRlbCcgfSxcbiAgICBkZXNjcmlwdGlvbjogeyBsYWJlbDogJ0Jlc2NocmVpYnVuZycgfSxcbiAgICBlbWFpbDogeyBsYWJlbDogJ0UtTWFpbCcgfSxcbiAgICBjcmVhdGVkQXQ6IHsgbGFiZWw6ICdFcnN0ZWxsdCBhbScsIGRhdGVGb3JtYXQ6ICdkZC5NTS5ZWVlZIEhIOm1tJyB9LFxuICAgIHVwZGF0ZWRBdDogeyBsYWJlbDogJ0JlYXJiZWl0ZXQgYW0nLCBkYXRlRm9ybWF0OiAnZGQuTU0uWVlZWSBISDptbScgfSxcbiAgfTtcbiAgbWV0YSE6IEdyYXBoUUxNZXRhO1xuICBvYmplY3RzOiBhbnlbXSA9IFtdO1xuICBhdmFpbGFibGVGaWVsZHM6IHN0cmluZ1tdID0gW107XG4gIHNlbGVjdGVkSWQgPSAnJztcbiAgcXVlcnlOYW1lOiBzdHJpbmcgPSBudWxsO1xuICBjYW1lbE1vZGVsTmFtZTogc3RyaW5nO1xuICBwb3NzaWJsZUZpZWxkczogUmVjb3JkPHN0cmluZywgR3JhcGhRTFR5cGU+ID0ge307XG5cbiAgdG90YWxDb3VudDogbnVtYmVyO1xuICBzZWxlY3RlZFBhZ2VJbmRleCA9IDA7XG4gIHBhZ2VzID0gW107XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBncmFwaFFMTWV0YVNlcnZpY2U6IEdyYXBoUUxNZXRhU2VydmljZSxcbiAgICBwcml2YXRlIGdyYXBoUUxTZXJ2aWNlOiBHcmFwaFFMU2VydmljZSxcbiAgICBwcml2YXRlIGNtc1NlcnZpY2U6IENtc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSB0b2FzdFNlcnZpY2U6IFRvYXN0U2VydmljZSxcbiAgICBwcml2YXRlIHNjcm9sbFNlcnZpY2U6IFNjcm9sbFNlcnZpY2VcbiAgKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuZ3JhcGhRTE1ldGFTZXJ2aWNlLmdldE1ldGEoKS5zdWJzY3JpYmUoKG1ldGEpID0+IHtcbiAgICAgIHRoaXMubWV0YSA9IG1ldGE7XG5cbiAgICAgIGlmICh0aGlzLm1vZGVsTmFtZSkge1xuICAgICAgICB0aGlzLmluaXQoKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMub2JqZWN0SWQpIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZElkID0gdGhpcy5vYmplY3RJZDtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICBpZiAoY2hhbmdlc1snbW9kZWxOYW1lJ10gJiYgdGhpcy5tZXRhKSB7XG4gICAgICB0aGlzLmluaXQoKTtcbiAgICB9XG5cbiAgICBpZiAoY2hhbmdlc1snb2JqZWN0SWQnXSAmJiB0aGlzLm1ldGEpIHtcbiAgICAgIGlmICh0aGlzLnNlbGVjdGVkSWQgIT09IHRoaXMub2JqZWN0SWQpIHtcbiAgICAgICAgaWYgKHRoaXMubG9nZ2luZykge1xuICAgICAgICAgIGNvbnNvbGUubG9nKCdNb2RlbFRhYmxlQ29tcG9uZW50OjpuZ09uQ2hhbmdlcy0+c2VsZWN0ZWRJZCcsIHRoaXMuc2VsZWN0ZWRJZCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnNlbGVjdGVkSWQgPSB0aGlzLm9iamVjdElkO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBXZSdyZSB1c2luZyB0aGUgYG1ldGFgIHNlcnZpY2UgdG8gZ2V0IHRoZSBmaWVsZHMgdGhhdCBhcmUgYXZhaWxhYmxlIGZvciB0aGUgYGZpbmRgIHF1ZXJ5IGZvciB0aGUgbW9kZWwgd2UncmUgd29ya2luZ1xuICAgKiB3aXRoLiBXZSdyZSB0aGVuIHVzaW5nIHRoYXQgaW5mb3JtYXRpb24gdG8gcG9wdWxhdGUgdGhlIGBhdmFpbGFibGVGaWVsZHNgIGFycmF5XG4gICAqL1xuICBhc3luYyBpbml0KCkge1xuICAgIHRoaXMuYXZhaWxhYmxlRmllbGRzID0gW107XG4gICAgdGhpcy5wYWdlcyA9IFtdO1xuICAgIHRoaXMudG90YWxDb3VudCA9IG51bGw7XG4gICAgdGhpcy5jYW1lbE1vZGVsTmFtZSA9IHRoaXMua2ViYWJUb0NhbWVsQ2FzZSh0aGlzLm1vZGVsTmFtZSk7XG4gICAgLy8gU2V0IHF1ZXJ5IG5hbWVcbiAgICBpZiAoIXRoaXMuY29uZmlnPy5xdWVyeU5hbWUpIHtcbiAgICAgIHRoaXMucXVlcnlOYW1lID0gJ2ZpbmRBbmRDb3VudCcgKyB0aGlzLmNhcGl0YWxpemVGaXJzdExldHRlcih0aGlzLmNhbWVsTW9kZWxOYW1lKSArICdzJztcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5xdWVyeU5hbWUgPSB0aGlzLmNvbmZpZz8ucXVlcnlOYW1lO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmNvbmZpZz8udGFibGVGaWVsZHMpIHtcbiAgICAgIHRoaXMudGFibGVGaWVsZHMgPSB0aGlzLmNvbmZpZy50YWJsZUZpZWxkcztcbiAgICB9XG5cbiAgICBpZiAodGhpcy5sb2dnaW5nKSB7XG4gICAgICBjb25zb2xlLmxvZygnTW9kZWxUYWJsZUNvbXBvbmVudDo6aW5pdC0+bW9kZWxOYW1lJywgdGhpcy5tb2RlbE5hbWUpO1xuICAgICAgY29uc29sZS5sb2coJ01vZGVsVGFibGVDb21wb25lbnQ6OmluaXQtPmNhbWVsTW9kZWxOYW1lJywgdGhpcy5jYW1lbE1vZGVsTmFtZSk7XG4gICAgICBjb25zb2xlLmxvZygnTW9kZWxUYWJsZUNvbXBvbmVudDo6aW5pdC0+cXVlcnlOYW1lJywgdGhpcy5xdWVyeU5hbWUpO1xuICAgICAgY29uc29sZS5sb2coJ01vZGVsVGFibGVDb21wb25lbnQ6OmluaXQtPnRhYmxlRmllbGRzJywgdGhpcy50YWJsZUZpZWxkcyk7XG4gICAgfVxuXG4gICAgdGhpcy5wb3NzaWJsZUZpZWxkcyA9IHRoaXMubWV0YS5nZXRGaWVsZHModGhpcy5xdWVyeU5hbWUpLmZpZWxkcztcbiAgICBsZXQga2V5cztcbiAgICBpZiAodGhpcy5wb3NzaWJsZUZpZWxkcz8uaXRlbXMgJiYgT2JqZWN0LmtleXModGhpcy5wb3NzaWJsZUZpZWxkcz8uaXRlbXM/LmZpZWxkcykubGVuZ3RoID4gMCkge1xuICAgICAga2V5cyA9IE9iamVjdC5rZXlzKHRoaXMucG9zc2libGVGaWVsZHMuaXRlbXMuZmllbGRzKTtcbiAgICB9IGVsc2Uge1xuICAgICAga2V5cyA9IE9iamVjdC5rZXlzKHRoaXMucG9zc2libGVGaWVsZHMpO1xuICAgIH1cblxuICAgIGNvbnN0IHRhYmxlRmllbGRLZXlzID0gT2JqZWN0LmtleXModGhpcy50YWJsZUZpZWxkcyk7XG4gICAgdGFibGVGaWVsZEtleXM/LmZvckVhY2goKGZpZWxkKSA9PiB7XG4gICAgICBpZiAoa2V5cy5pbmNsdWRlcyhmaWVsZCkpIHtcbiAgICAgICAgdGhpcy5hdmFpbGFibGVGaWVsZHMucHVzaChmaWVsZCk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBpZiAodGhpcy5sb2dnaW5nKSB7XG4gICAgICBjb25zb2xlLmxvZygnTW9kZWxUYWJsZUNvbXBvbmVudDo6aW5pdC0+cG9zc2libGVGaWVsZHMnLCB0aGlzLnBvc3NpYmxlRmllbGRzKTtcbiAgICAgIGNvbnNvbGUubG9nKCdNb2RlbFRhYmxlQ29tcG9uZW50Ojppbml0LT5rZXlzJywga2V5cyk7XG4gICAgICBjb25zb2xlLmxvZygnTW9kZWxUYWJsZUNvbXBvbmVudDo6aW5pdC0+YXZhaWxhYmxlRmllbGRzJywgdGhpcy5hdmFpbGFibGVGaWVsZHMpO1xuICAgIH1cblxuICAgIHRoaXMuc2VsZWN0ZWRQYWdlSW5kZXggPSAwO1xuICAgIHRoaXMub2JqZWN0cyA9IGF3YWl0IHRoaXMubG9hZE9iamVjdHModGhpcy5hdmFpbGFibGVGaWVsZHMsIDAsIDI1KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBXaGVuIHRoZSB1c2VyIGNsaWNrcyB0aGUgXCJDcmVhdGUgTmV3XCIgYnV0dG9uLCB0aGUgY3JlYXRlTW9kZUNoYW5nZWQgZXZlbnQgaXMgZW1pdHRlZCwgd2hpY2ggaXMgdGhlbiBoYW5kbGVkIGJ5IHRoZVxuICAgKiBwYXJlbnQgY29tcG9uZW50XG4gICAqL1xuICBjcmVhdGVOZXdPYmplY3QoKSB7XG4gICAgdGhpcy5jcmVhdGVNb2RlID0gdHJ1ZTtcbiAgICB0aGlzLmNyZWF0ZU1vZGVDaGFuZ2VkLmVtaXQodHJ1ZSk7XG4gIH1cblxuICAvKipcbiAgICogSXQgbG9hZHMgdGhlIG9iamVjdHMgZnJvbSB0aGUgZGF0YWJhc2UgYW5kIHN0b3JlcyB0aGVtIGluIHRoZSBvYmplY3RzIHZhcmlhYmxlXG4gICAqXG4gICAqIEBwYXJhbSBmaWVsZHMgLSBzdHJpbmdbXSAtIFRoZSBmaWVsZHMgeW91IHdhbnQgdG8gbG9hZCBmcm9tIHRoZSBkYXRhYmFzZS5cbiAgICogQHBhcmFtIHNraXBcbiAgICogQHBhcmFtIGxpbWl0XG4gICAqL1xuICBsb2FkT2JqZWN0cyhmaWVsZHM6IHN0cmluZ1tdLCBza2lwID0gMCwgbGltaXQgPSAyNSk6IFByb21pc2U8YW55W10+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2U8YW55W10+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIGNvbnN0IHJlcXVlc3RGaWVsZHMgPSBbLi4uZmllbGRzXTtcbiAgICAgIGNvbnN0IGlkSW5GaWVsZHMgPSByZXF1ZXN0RmllbGRzLmZpbmQoKGUpID0+IGUgPT09ICdpZCcpO1xuXG4gICAgICBpZiAoIWlkSW5GaWVsZHMpIHtcbiAgICAgICAgcmVxdWVzdEZpZWxkcy5wdXNoKCdpZCcpO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBpc0ZpbmRBbmRDb3VudCA9IHRoaXMucXVlcnlOYW1lLmluY2x1ZGVzKCdmaW5kQW5kQ291bnQnKTtcblxuICAgICAgdGhpcy5ncmFwaFFMU2VydmljZVxuICAgICAgICAuZ3JhcGhRbCh0aGlzLnF1ZXJ5TmFtZSwge1xuICAgICAgICAgIGFyZ3VtZW50czoge1xuICAgICAgICAgICAgc29ydDogW3sgZmllbGQ6ICdjcmVhdGVkQXQnLCBvcmRlcjogU29ydE9yZGVyRW51bS5BU0MgfV0sXG4gICAgICAgICAgICBsaW1pdDogaXNGaW5kQW5kQ291bnQgPyBsaW1pdCA6IG51bGwsXG4gICAgICAgICAgICBza2lwOiBpc0ZpbmRBbmRDb3VudCA/IHNraXAgOiBudWxsLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgZmllbGRzOiBpc0ZpbmRBbmRDb3VudCA/IFsndG90YWxDb3VudCcsIHsgaXRlbXM6IHJlcXVlc3RGaWVsZHMgfV0gOiByZXF1ZXN0RmllbGRzLFxuICAgICAgICAgIHR5cGU6IEdyYXBoUUxSZXF1ZXN0VHlwZS5RVUVSWSxcbiAgICAgICAgfSlcbiAgICAgICAgLnN1YnNjcmliZSh7XG4gICAgICAgICAgbmV4dDogKHZhbHVlKSA9PiB7XG4gICAgICAgICAgICBsZXQgaXRlbXM7XG4gICAgICAgICAgICBpZiAodGhpcy5sb2dnaW5nKSB7XG4gICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdNb2RlbFRhYmxlQ29tcG9uZW50Ojpsb2FkT2JqZWN0cy0+dmFsdWUnLCB2YWx1ZSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICh2YWx1ZT8udG90YWxDb3VudCA+PSAwKSB7XG4gICAgICAgICAgICAgIGl0ZW1zID0gdmFsdWUuaXRlbXM7XG4gICAgICAgICAgICAgIHRoaXMudG90YWxDb3VudCA9IHZhbHVlLnRvdGFsQ291bnQ7XG4gICAgICAgICAgICAgIHRoaXMucGFnZXMgPSBbXTtcbiAgICAgICAgICAgICAgbGV0IG51bWJlcnMgPSAwO1xuXG4gICAgICAgICAgICAgIHdoaWxlIChudW1iZXJzIDwgdGhpcy50b3RhbENvdW50KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5wYWdlcy5wdXNoKHtcbiAgICAgICAgICAgICAgICAgIHNraXA6IG51bWJlcnMsXG4gICAgICAgICAgICAgICAgICBsaW1pdDogMjUsXG4gICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICBudW1iZXJzID0gbnVtYmVycyArIDI1O1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBpdGVtcyA9IHZhbHVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXNvbHZlKGl0ZW1zKTtcbiAgICAgICAgICB9LFxuICAgICAgICAgIGVycm9yOiAoZXJyKSA9PiB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZygnRXJyb3Igb24gbG9hZGluZyBvYmplY3RzJywgZXJyKTtcbiAgICAgICAgICAgIHJlamVjdChlcnIpO1xuICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIElmIHRoZSB1cGRhdGUgcHJvcGVydHkgaXMgdHJ1ZSwgdGhlbiBzZXQgdGhlIHNlbGVjdGVkSWQgcHJvcGVydHkgdG8gdGhlIGlkIG9mIHRoZSBvYmplY3QgcGFzc2VkIGluLCBhbmQgZW1pdCB0aGVcbiAgICogc2VsZWN0ZWRJZCBwcm9wZXJ0eVxuICAgKi9cbiAgc2VsZWN0SWQob2JqZWN0OiBhbnkpIHtcbiAgICBpZiAoIW9iamVjdCkge1xuICAgICAgdGhpcy5jcmVhdGVNb2RlID0gZmFsc2U7XG4gICAgICB0aGlzLmNyZWF0ZU1vZGVDaGFuZ2VkLmVtaXQoZmFsc2UpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnVwZGF0ZSkge1xuICAgICAgdGhpcy5zZWxlY3RlZElkID0gb2JqZWN0WydpZCddO1xuICAgICAgdGhpcy5pZFNlbGVjdGVkLmVtaXQodGhpcy5zZWxlY3RlZElkKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogSXQgY2FsbHMgdGhlIGR1cGxpY2F0ZU9iamVjdCBmdW5jdGlvbiBpbiB0aGUgY21zU2VydmljZSwgcGFzc2luZyBpbiB0aGUgaWQgb2YgdGhlIG9iamVjdCB0byBiZSBkdXBsaWNhdGVkIGFuZCB0aGVcbiAgICogbW9kZWxOYW1lIG9mIHRoZSBvYmplY3RcbiAgICovXG4gIGFzeW5jIGR1cGxpY2F0ZU9iamVjdChpZDogc3RyaW5nKSB7XG4gICAgYXdhaXQgdGhpcy5jbXNTZXJ2aWNlLmR1cGxpY2F0ZU9iamVjdChpZCwgdGhpcy5jYW1lbE1vZGVsTmFtZSk7XG4gICAgdGhpcy5zZWxlY3RlZFBhZ2VJbmRleCA9IDA7XG4gICAgdGhpcy5vYmplY3RzID0gYXdhaXQgdGhpcy5sb2FkT2JqZWN0cyhcbiAgICAgIHRoaXMuYXZhaWxhYmxlRmllbGRzLFxuICAgICAgdGhpcy5wYWdlc1t0aGlzLnNlbGVjdGVkUGFnZUluZGV4XS5za2lwLFxuICAgICAgdGhpcy5wYWdlc1t0aGlzLnNlbGVjdGVkUGFnZUluZGV4XS5saW1pdFxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogSXQgY2FsbHMgdGhlIGRlbGV0ZU9iamVjdCBmdW5jdGlvbiBpbiB0aGUgY21zU2VydmljZSwgcGFzc2luZyBpbiB0aGUgaWQgb2YgdGhlIG9iamVjdCB0byBkZWxldGUgYW5kIHRoZSBuYW1lIG9mIHRoZVxuICAgKiBtb2RlbFxuICAgKi9cbiAgYXN5bmMgZGVsZXRlT2JqZWN0KGlkOiBzdHJpbmcpIHtcbiAgICBhd2FpdCB0aGlzLmNtc1NlcnZpY2UuZGVsZXRlT2JqZWN0KGlkLCB0aGlzLmNhbWVsTW9kZWxOYW1lKTtcbiAgICB0aGlzLnNlbGVjdGVkUGFnZUluZGV4ID0gMDtcbiAgICB0aGlzLm9iamVjdHMgPSBhd2FpdCB0aGlzLmxvYWRPYmplY3RzKFxuICAgICAgdGhpcy5hdmFpbGFibGVGaWVsZHMsXG4gICAgICB0aGlzLnBhZ2VzW3RoaXMuc2VsZWN0ZWRQYWdlSW5kZXhdLnNraXAsXG4gICAgICB0aGlzLnBhZ2VzW3RoaXMuc2VsZWN0ZWRQYWdlSW5kZXhdLmxpbWl0XG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJdCB0YWtlcyBhIHN0cmluZywgY2FwaXRhbGl6ZXMgdGhlIGZpcnN0IGxldHRlciwgYW5kIHJldHVybnMgdGhlIG1vZGlmaWVkIHN0cmluZ1xuICAgKi9cbiAgY2FwaXRhbGl6ZUZpcnN0TGV0dGVyKHZhbHVlOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5jbXNTZXJ2aWNlLmNhcGl0YWxpemVGaXJzdExldHRlcih2YWx1ZSk7XG4gIH1cblxuICAvKipcbiAgICogS2ViYWIgdG8gY2FtZWwgY2FzZSBzdHJpbmdcbiAgICovXG4gIGtlYmFiVG9DYW1lbENhc2Uoc3RyOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gc3RyLnJlcGxhY2UoLy0uL2csIChtYXRjaCkgPT4gbWF0Y2hbMV0udG9VcHBlckNhc2UoKSk7XG4gIH1cblxuICAvKipcbiAgICogSW1wb3J0IG9iamVjdHMgZnJvbSBqc29uIGZpbGVcbiAgICovXG4gIHByb2Nlc3NJbXBvcnQoZXZlbnQpIHtcbiAgICAvLyBDcmVhdGUgYSBuZXcgRmlsZVJlYWRlcigpIG9iamVjdFxuICAgIGNvbnN0IHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XG5cbiAgICAvLyBTZXR1cCB0aGUgY2FsbGJhY2sgZXZlbnQgdG8gcnVuIHdoZW4gdGhlIGZpbGUgaXMgcmVhZFxuICAgIHJlYWRlci5vbmxvYWQgPSBhc3luYyAocmVhZGVyRXZlbnQpID0+IHtcbiAgICAgIGxldCBqc29uUmVzdWx0ID0gSlNPTi5wYXJzZShyZWFkZXJFdmVudC50YXJnZXQucmVzdWx0IGFzIGFueSk7XG5cbiAgICAgIGlmICghQXJyYXkuaXNBcnJheShqc29uUmVzdWx0KSkge1xuICAgICAgICBqc29uUmVzdWx0ID0gW2pzb25SZXN1bHRdO1xuICAgICAgfVxuXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGpzb25SZXN1bHQubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICB0aGlzLmdyYXBoUUxTZXJ2aWNlXG4gICAgICAgICAgICAuZ3JhcGhRbCgnY3JlYXRlJyArIHRoaXMuY2FwaXRhbGl6ZUZpcnN0TGV0dGVyKHRoaXMubW9kZWxOYW1lKSwge1xuICAgICAgICAgICAgICBhcmd1bWVudHM6IHsgaW5wdXQ6IGpzb25SZXN1bHRbaV0gfSxcbiAgICAgICAgICAgICAgZmllbGRzOiBbJ2lkJ10sXG4gICAgICAgICAgICAgIHR5cGU6IEdyYXBoUUxSZXF1ZXN0VHlwZS5NVVRBVElPTixcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAuc3Vic2NyaWJlKHtcbiAgICAgICAgICAgICAgbmV4dDogYXN5bmMgKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMudG9hc3RTZXJ2aWNlLnNob3coe1xuICAgICAgICAgICAgICAgICAgaWQ6IHRoaXMubW9kZWxOYW1lICsgJy0nICsgaSArICctc3VjY2VzcycsXG4gICAgICAgICAgICAgICAgICB0eXBlOiBUb2FzdFR5cGUuU1VDQ0VTUyxcbiAgICAgICAgICAgICAgICAgIHRpdGxlOiAnRXJmb2xncmVpY2gnLFxuICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICdFbGVtZW50ICcgKyAoaSArIDEpICsgJyB2b24gJyArIGpzb25SZXN1bHQubGVuZ3RoICsgJyBlcmZvbGdyZWljaCBpbXBvcnRpZXJ0LicsXG4gICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICBpZiAoaSA9PT0ganNvblJlc3VsdC5sZW5ndGggLSAxKSB7XG4gICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkUGFnZUluZGV4ID0gMDtcbiAgICAgICAgICAgICAgICAgIHRoaXMub2JqZWN0cyA9IGF3YWl0IHRoaXMubG9hZE9iamVjdHMoXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYXZhaWxhYmxlRmllbGRzLFxuICAgICAgICAgICAgICAgICAgICB0aGlzLnBhZ2VzW3RoaXMuc2VsZWN0ZWRQYWdlSW5kZXhdLnNraXAsXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucGFnZXNbdGhpcy5zZWxlY3RlZFBhZ2VJbmRleF0ubGltaXRcbiAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBlcnJvcjogKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMudG9hc3RTZXJ2aWNlLnNob3coe1xuICAgICAgICAgICAgICAgICAgaWQ6IHRoaXMubW9kZWxOYW1lICsgJy0nICsgaSArICctZXJyb3InLFxuICAgICAgICAgICAgICAgICAgdHlwZTogVG9hc3RUeXBlLkVSUk9SLFxuICAgICAgICAgICAgICAgICAgdGl0bGU6ICdFcnJvcicsXG4gICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogJ0VsZW1lbnQgJyArIChpICsgMSkgKyAnIHZvbiAnICsganNvblJlc3VsdC5sZW5ndGggKyAnIGtvbm50ZSBuaWNodCBpbXBvcnRpZXJ0IHdlcmRlbi4nLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICB0aGlzLnRvYXN0U2VydmljZS5zaG93KHtcbiAgICAgICAgICAgIGlkOiB0aGlzLm1vZGVsTmFtZSArICctJyArIGkgKyAnLWVycm9yJyxcbiAgICAgICAgICAgIHR5cGU6IFRvYXN0VHlwZS5FUlJPUixcbiAgICAgICAgICAgIHRpdGxlOiAnRXJyb3InLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246ICdFbGVtZW50ICcgKyAoaSArIDEpICsgJyB2b24gJyArIGpzb25SZXN1bHQubGVuZ3RoICsgJyBrb25udGUgbmljaHQgaW1wb3J0aWVydCB3ZXJkZW4uJyxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH07XG5cbiAgICAvLyBSZWFkIHRoZSBmaWxlXG4gICAgcmVhZGVyLnJlYWRBc1RleHQoZXZlbnQudGFyZ2V0LmZpbGVzWzBdKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFeHBvcnQgb2JqZWN0cyBhcyBqc29uXG4gICAqL1xuICBhc3luYyBwcm9jZXNzRXhwb3J0KCkge1xuICAgIGNvbnN0IGtleXMgPSB0aGlzLmdldEFsbEtleXMoKTtcbiAgICBjb25zdCBpdGVtcyA9IGF3YWl0IHRoaXMubG9hZE9iamVjdHMoXG4gICAgICBrZXlzLFxuICAgICAgdGhpcy5wYWdlc1t0aGlzLnNlbGVjdGVkUGFnZUluZGV4XS5za2lwLFxuICAgICAgdGhpcy5wYWdlc1t0aGlzLnNlbGVjdGVkUGFnZUluZGV4XS5saW1pdFxuICAgICk7XG4gICAgY29uc3QgZGF0YSA9IEpTT04uc3RyaW5naWZ5KGl0ZW1zKTtcbiAgICBjb25zdCBibG9iID0gbmV3IEJsb2IoW2RhdGFdLCB7IHR5cGU6ICd0ZXh0L2pzb247Y2hhcnNldD11dGYtODsnIH0pO1xuICAgIGNvbnN0IHVybCA9IFVSTC5jcmVhdGVPYmplY3RVUkwoYmxvYik7XG4gICAgY29uc3QgbGluayA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKTtcblxuICAgIGxpbmsuc2V0QXR0cmlidXRlKCdocmVmJywgdXJsKTtcbiAgICBsaW5rLnNldEF0dHJpYnV0ZSgnZG93bmxvYWQnLCB0aGlzLm1vZGVsTmFtZSArICdzLmpzb24nKTtcbiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGxpbmspO1xuICAgIGxpbmsuY2xpY2soKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgYWxsIGtleXMgZm9yIHJlcXVlc3QgdG8gZXhwb3J0IG9iamVjdHMgYXMganNvblxuICAgKi9cbiAgZ2V0QWxsS2V5cygpIHtcbiAgICBjb25zdCBpdGVtcyA9IFtdO1xuICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKHRoaXMucG9zc2libGVGaWVsZHMpKSB7XG4gICAgICBpZiAoIXRoaXMucG9zc2libGVGaWVsZHNba2V5XS5maWVsZHMgfHwgT2JqZWN0LmtleXModGhpcy5wb3NzaWJsZUZpZWxkc1trZXldLmZpZWxkcykubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIGl0ZW1zLnB1c2goa2V5KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gaXRlbXM7XG4gIH1cblxuICBhc3luYyBzZWxlY3RQYWdlKGk6IG51bWJlcikge1xuICAgIHRoaXMuc2VsZWN0ZWRQYWdlSW5kZXggPSBpO1xuICAgIGF3YWl0IHRoaXMuc2Nyb2xsU2VydmljZS5zY3JvbGxUbygnbW9kZWwtdGFibGUtdG9wJyk7XG4gICAgdGhpcy5vYmplY3RzID0gYXdhaXQgdGhpcy5sb2FkT2JqZWN0cyhcbiAgICAgIHRoaXMuYXZhaWxhYmxlRmllbGRzLFxuICAgICAgdGhpcy5wYWdlc1t0aGlzLnNlbGVjdGVkUGFnZUluZGV4XS5za2lwLFxuICAgICAgdGhpcy5wYWdlc1t0aGlzLnNlbGVjdGVkUGFnZUluZGV4XS5saW1pdFxuICAgICk7XG4gIH1cbn1cbiIsIjxkaXYgKm5nSWY9XCIhc2VsZWN0ZWRJZCAmJiAhY3JlYXRlTW9kZVwiPlxuICA8ZGl2IGNsYXNzPVwidy0xMDAgZC1mbGV4IGZsZXgtcm93IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLWNlbnRlciBtYi0yIG1iLWxnLTRcIj5cbiAgICA8aDIgaWQ9XCJtb2RlbC10YWJsZS10b3BcIiBjbGFzcz1cIm1iLTBcIiAqbmdJZj1cIm1vZGVsTmFtZVwiPlxuICAgICAge3tcbiAgICAgICAgY29uZmlnPy5wbHVyYWwgPyBjb25maWc/LnBsdXJhbCA6IGNvbmZpZz8ubGFiZWwgPyBjb25maWc/LmxhYmVsIDogY2FwaXRhbGl6ZUZpcnN0TGV0dGVyKGNhbWVsTW9kZWxOYW1lKSArICdzJ1xuICAgICAgfX1cbiAgICA8L2gyPlxuICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGQtbm9uZSBkLWxnLWJsb2NrXCI+XG4gICAgICA8aW5wdXQgI2ltcG9ydEZpbGUgdHlwZT1cImZpbGVcIiBhY2NlcHQ9XCIuanNvblwiIGNsYXNzPVwiZC1ub25lXCIgKGNoYW5nZSk9XCJwcm9jZXNzSW1wb3J0KCRldmVudClcIiAvPlxuICAgICAgPGRpdiBjbGFzcz1cImJ0bi1ncm91cCBtZS00XCIgKm5nSWY9XCJpbXBvcnQgfHwgZXhwb3J0XCI+XG4gICAgICAgIDxpXG4gICAgICAgICAgY2xhc3M9XCJiaSBiaS10aHJlZS1kb3RzLXZlcnRpY2FsXCJcbiAgICAgICAgICBpZD1cInNldHRpbmdzRHJvcGRvd25cIlxuICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgIGRhdGEtYnMtdG9nZ2xlPVwiZHJvcGRvd25cIlxuICAgICAgICAgIGRhdGEtYnMtYXV0by1jbG9zZT1cInRydWVcIlxuICAgICAgICAgIGFyaWEtZXhwYW5kZWQ9XCJmYWxzZVwiXG4gICAgICAgID48L2k+XG4gICAgICAgIDx1bCBjbGFzcz1cImRyb3Bkb3duLW1lbnUgZHJvcGRvd24tbWVudS1lbmRcIiBhcmlhLWxhYmVsbGVkYnk9XCJzZXR0aW5nc0Ryb3Bkb3duXCI+XG4gICAgICAgICAgPGxpPjxhIGNsYXNzPVwiZHJvcGRvd24taXRlbSBjdXJzb3ItcG9pbnRlclwiICpuZ0lmPVwiZXhwb3J0XCIgKGNsaWNrKT1cInByb2Nlc3NFeHBvcnQoKVwiPkV4cG9ydDwvYT48L2xpPlxuICAgICAgICAgIDxsaT48YSBjbGFzcz1cImRyb3Bkb3duLWl0ZW0gY3Vyc29yLXBvaW50ZXJcIiAqbmdJZj1cImltcG9ydFwiIChjbGljayk9XCJpbXBvcnRGaWxlLmNsaWNrKClcIj4gSW1wb3J0IDwvYT48L2xpPlxuICAgICAgICA8L3VsPlxuICAgICAgPC9kaXY+XG4gICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5XCIgKGNsaWNrKT1cImNyZWF0ZU5ld09iamVjdCgpXCIgKm5nSWY9XCJjcmVhdGVcIj5FcnN0ZWxsZW48L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cbiAgPGRpdlxuICAgIGNsYXNzPVwidGFibGUtcmVzcG9uc2l2ZVwiXG4gICAgW2x0Q29udGV4dE1lbnVdPVwiY29udGV4dE1lbnVcIlxuICAgIFtzZWxlY3RvcnNdPVwiJy5vYmplY3QtY29sJ1wiXG4gICAgI2NvbnRleHRNZW51RGF0YT1cImNvbnRleHRNZW51RGF0YVwiXG4gID5cbiAgICA8dGFibGUgY2xhc3M9XCJ0YWJsZSB0YWJsZS1ob3ZlciBiZy13aGl0ZSBkLW5vbmUgZC1sZy10YWJsZVwiPlxuICAgICAgPHRoZWFkPlxuICAgICAgICA8dHI+XG4gICAgICAgICAgPHRoXG4gICAgICAgICAgICBzY29wZT1cImNvbFwiXG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgZmllbGQgb2YgYXZhaWxhYmxlRmllbGRzXCJcbiAgICAgICAgICAgIFtiYXNlU29ydF09XCJvYmplY3RzXCJcbiAgICAgICAgICAgIGRhdGEtb3JkZXI9XCJkZXNjXCJcbiAgICAgICAgICAgIFthdHRyLmRhdGEtbmFtZV09XCJmaWVsZFwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAge3sgdGFibGVGaWVsZHNbZmllbGRdPy5sYWJlbCA/IHRhYmxlRmllbGRzW2ZpZWxkXT8ubGFiZWwgOiBjYXBpdGFsaXplRmlyc3RMZXR0ZXIoZmllbGQpIH19XG4gICAgICAgICAgPC90aD5cbiAgICAgICAgPC90cj5cbiAgICAgIDwvdGhlYWQ+XG4gICAgICA8dGJvZHk+XG4gICAgICAgIDx0ciBjbGFzcz1cIm9iamVjdC1jb2xcIiAqbmdGb3I9XCJsZXQgb2JqZWN0IG9mIG9iamVjdHNcIiBbaWRdPVwib2JqZWN0W3VuaXF1ZUZpZWxkXVwiPlxuICAgICAgICAgIDx0ZCBjbGFzcz1cImN1cnNvci1wb2ludGVyXCIgKm5nRm9yPVwibGV0IGZpZWxkIG9mIGF2YWlsYWJsZUZpZWxkc1wiIChjbGljayk9XCJzZWxlY3RJZChvYmplY3QpXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidGFibGVGaWVsZHNbZmllbGRdPy5kYXRlRm9ybWF0XCI+XG4gICAgICAgICAgICAgIHt7IG9iamVjdFtmaWVsZF0gfCBkYXRlOiB0YWJsZUZpZWxkc1tmaWVsZF0/LmRhdGVGb3JtYXQgfX0gVWhyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInRhYmxlRmllbGRzW2ZpZWxkXT8uZW51bVZhbHVlc1wiPlxuICAgICAgICAgICAgICB7eyB0YWJsZUZpZWxkc1tmaWVsZF0/LmVudW1WYWx1ZXNbb2JqZWN0W2ZpZWxkXV0/LnRleHQgfX1cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIXRhYmxlRmllbGRzW2ZpZWxkXT8uZGF0ZUZvcm1hdCAmJiAhdGFibGVGaWVsZHNbZmllbGRdPy5lbnVtVmFsdWVzXCI+XG4gICAgICAgICAgICAgIHt7IG9iamVjdFtmaWVsZF0gfCBiYXNlRWxsaXBzZXM6IDYwIH19XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L3RkPlxuICAgICAgICA8L3RyPlxuICAgICAgPC90Ym9keT5cbiAgICA8L3RhYmxlPlxuXG4gICAgPGRpdiBjbGFzcz1cImQtZmxleCBkLWxnLW5vbmUgZmxleC1jb2x1bW4gZmxleC1ncm93LTFcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJ0YWJsZS1jYXJkXCIgKm5nRm9yPVwibGV0IG9iamVjdCBvZiBvYmplY3RzXCIgW2lkXT1cIm9iamVjdFt1bmlxdWVGaWVsZF1cIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInRhYmxlLWNhcmQtZW50cnlcIiAqbmdGb3I9XCJsZXQgZmllbGQgb2YgYXZhaWxhYmxlRmllbGRzOyBsZXQgaSA9IGluZGV4XCIgKGNsaWNrKT1cInNlbGVjdElkKG9iamVjdClcIj5cbiAgICAgICAgICA8YiAqbmdJZj1cImkgPiAwXCJcbiAgICAgICAgICAgID57eyB0YWJsZUZpZWxkc1tmaWVsZF0/LmxhYmVsID8gdGFibGVGaWVsZHNbZmllbGRdPy5sYWJlbCA6IGNhcGl0YWxpemVGaXJzdExldHRlcihmaWVsZCkgfX06PC9iXG4gICAgICAgICAgPlxuICAgICAgICAgIDxwIFtuZ0NsYXNzXT1cInsgJ3RhYmxlLWNhcmQtZW50cnktZmlyc3QnOiBpID09PSAwIH1cIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJ0YWJsZUZpZWxkc1tmaWVsZF0/LmRhdGVGb3JtYXRcIj5cbiAgICAgICAgICAgICAge3sgb2JqZWN0W2ZpZWxkXSB8IGRhdGU6IHRhYmxlRmllbGRzW2ZpZWxkXT8uZGF0ZUZvcm1hdCB9fSBVaHJcbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidGFibGVGaWVsZHNbZmllbGRdPy5lbnVtVmFsdWVzXCI+XG4gICAgICAgICAgICAgIHt7IHRhYmxlRmllbGRzW2ZpZWxkXT8uZW51bVZhbHVlc1tvYmplY3RbZmllbGRdXT8udGV4dCB9fVxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhdGFibGVGaWVsZHNbZmllbGRdPy5kYXRlRm9ybWF0ICYmICF0YWJsZUZpZWxkc1tmaWVsZF0/LmVudW1WYWx1ZXNcIj5cbiAgICAgICAgICAgICAge3sgb2JqZWN0W2ZpZWxkXSB8IGJhc2VFbGxpcHNlczogNjAgfX1cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvcD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDxuYXYgKm5nSWY9XCJ0b3RhbENvdW50ID49IDBcIj5cbiAgICAgIDx1bCBjbGFzcz1cInBhZ2luYXRpb24ganVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxuICAgICAgICA8bGkgY2xhc3M9XCJwYWdlLWl0ZW1cIj5cbiAgICAgICAgICA8YVxuICAgICAgICAgICAgY2xhc3M9XCJwYWdlLWxpbmtcIlxuICAgICAgICAgICAgKGNsaWNrKT1cInNlbGVjdFBhZ2Uoc2VsZWN0ZWRQYWdlSW5kZXggLSAxKVwiXG4gICAgICAgICAgICBhcmlhLWxhYmVsPVwiUHJldmlvdXNcIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwieyBkaXNhYmxlZDogc2VsZWN0ZWRQYWdlSW5kZXggLSAxID4gMCB9XCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8c3BhbiBhcmlhLWhpZGRlbj1cInRydWVcIj4mbGFxdW87PC9zcGFuPlxuICAgICAgICAgIDwvYT5cbiAgICAgICAgPC9saT5cbiAgICAgICAgPGxpIGNsYXNzPVwicGFnZS1pdGVtXCIgKm5nRm9yPVwibGV0IHBhZ2Ugb2YgcGFnZXM7IGxldCBpID0gaW5kZXhcIj5cbiAgICAgICAgICA8YSBjbGFzcz1cInBhZ2UtbGlua1wiIFtuZ0NsYXNzXT1cInsgYWN0aXZlOiBzZWxlY3RlZFBhZ2VJbmRleCA9PT0gaSB9XCIgKGNsaWNrKT1cInNlbGVjdFBhZ2UoaSlcIj57eyBpICsgMSB9fTwvYT5cbiAgICAgICAgPC9saT5cbiAgICAgICAgPGxpIGNsYXNzPVwicGFnZS1pdGVtXCI+XG4gICAgICAgICAgPGFcbiAgICAgICAgICAgIGNsYXNzPVwicGFnZS1saW5rXCJcbiAgICAgICAgICAgIChjbGljayk9XCJzZWxlY3RQYWdlKHNlbGVjdGVkUGFnZUluZGV4ICsgMSlcIlxuICAgICAgICAgICAgYXJpYS1sYWJlbD1cIk5leHRcIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwieyBkaXNhYmxlZDogcGFnZXNbc2VsZWN0ZWRQYWdlSW5kZXggKyAxXSB9XCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8c3BhbiBhcmlhLWhpZGRlbj1cInRydWVcIj4mcmFxdW87PC9zcGFuPlxuICAgICAgICAgIDwvYT5cbiAgICAgICAgPC9saT5cbiAgICAgIDwvdWw+XG4gICAgPC9uYXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwiY29udGV4dC1tZW51XCIgI2NvbnRleHRNZW51PlxuICAgICAgPGRpdiBjbGFzcz1cImNvbnRleHQtbWVudS1pdGVtXCIgKGNsaWNrKT1cInNlbGVjdElkKHsgaWQ6IGNvbnRleHRNZW51RGF0YS5jbGlja2VkRWxlbWVudD8uaWQgfSlcIj5CZWFyYmVpdGVuPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29udGV4dC1tZW51LWl0ZW1cIiAqbmdJZj1cImR1cGxpY2F0ZVwiIChjbGljayk9XCJkdXBsaWNhdGVPYmplY3QoY29udGV4dE1lbnVEYXRhLmNsaWNrZWRFbGVtZW50Py5pZClcIj5cbiAgICAgICAgRHVwbGl6aWVyZW5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImNvbnRleHQtbWVudS1pdGVtXCIgKm5nSWY9XCJkZWxldGVcIiAoY2xpY2spPVwiZGVsZXRlT2JqZWN0KGNvbnRleHRNZW51RGF0YS5jbGlja2VkRWxlbWVudD8uaWQpXCI+XG4gICAgICAgIEzDtnNjaGVuXG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cblxuPGRpdiBjbGFzcz1cInctMTAwXCIgKm5nSWY9XCJzZWxlY3RlZElkIHx8IGNyZWF0ZU1vZGVcIj5cbiAgPGJ1dHRvbiBjbGFzcz1cImQtbm9uZSBkLWxnLWJsb2NrIGJ0biBidG4tb3V0bGluZS1wcmltYXJ5IG1iLTNcIiAoY2xpY2spPVwic2VsZWN0SWQoJycpXCI+WnVyw7xjazwvYnV0dG9uPlxuICA8YmFzZS1tb2RlbC1mb3JtXG4gICAgW21vZGVsTmFtZV09XCJjYW1lbE1vZGVsTmFtZVwiXG4gICAgW2xhYmVsXT1cImNvbmZpZz8ubGFiZWxcIlxuICAgIFtjb25maWddPVwiZmllbGRDb25maWdcIlxuICAgIFtsb2dnaW5nXT1cImxvZ2dpbmdcIlxuICAgIFtpZF09XCJzZWxlY3RlZElkXCJcbiAgICAoZmluaXNoZWQpPVwic2VsZWN0SWQoJycpXCJcbiAgICBbZGVsZXRlXT1cImRlbGV0ZVwiXG4gICAgW2R1cGxpY2F0ZV09XCJkdXBsaWNhdGVcIlxuICAgIFtzaG93RmF2QnV0dG9uXT1cInNob3dGYXZCdXR0b25cIlxuICA+PC9iYXNlLW1vZGVsLWZvcm0+XG48L2Rpdj5cblxuPGRpdiBjbGFzcz1cInJlc3BvbnNpdmUtYWN0aW9uLWJ1dHRvbiBkLWJsb2NrIGQtbGctbm9uZVwiPlxuICA8YmFzZS1mYWItYnV0dG9uXG4gICAgW2ZhYkljb25dPVwiJ2JpLXBsdXMnXCJcbiAgICAoY2xpY2spPVwiY3JlYXRlTmV3T2JqZWN0KClcIlxuICAgICpuZ0lmPVwiIShzZWxlY3RlZElkIHx8IGNyZWF0ZU1vZGUpICYmIHNob3dGYXZCdXR0b25cIlxuICA+PC9iYXNlLWZhYi1idXR0b24+XG48L2Rpdj5cbiJdfQ==
|
|
352
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwtdGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctYmFzZS9iYXNlLWNvbXBvbmVudHMvY29tcG9uZW50cy9tb2RlbC10YWJsZS9tb2RlbC10YWJsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1iYXNlL2Jhc2UtY29tcG9uZW50cy9jb21wb25lbnRzL21vZGVsLXRhYmxlL21vZGVsLXRhYmxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUN6RyxPQUFPLEVBS0wsa0JBQWtCLEVBSWxCLGFBQWEsRUFFYixTQUFTLEdBQ1YsTUFBTSw0QkFBNEIsQ0FBQzs7Ozs7Ozs7O0FBT3BDLE1BQU0sT0FBTyxtQkFBbUI7SUF3QzlCLFlBQ1Usa0JBQXNDLEVBQ3RDLGNBQThCLEVBQzlCLFVBQXNCLEVBQ3RCLFlBQTBCLEVBQzFCLGFBQTRCO1FBSjVCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFDdEMsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsa0JBQWEsR0FBYixhQUFhLENBQWU7UUExQzdCLGVBQVUsR0FBRyxLQUFLLENBQUM7UUFDbkIsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUNoQixXQUFNLEdBQUcsSUFBSSxDQUFDO1FBQ2QsV0FBTSxHQUFHLElBQUksQ0FBQztRQUNkLFdBQU0sR0FBRyxJQUFJLENBQUM7UUFDZCxXQUFNLEdBQUcsSUFBSSxDQUFDO1FBQ2QsV0FBTSxHQUFHLElBQUksQ0FBQztRQUNkLGNBQVMsR0FBRyxJQUFJLENBQUM7UUFDakIsV0FBTSxHQUFRLEVB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Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBRUksVUFBVTtzQkFBbkIsTUFBTTtnQkFDRyxpQkFBaUI7c0JBQTFCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uQ2hhbmdlcywgT25Jbml0LCBPdXRwdXQsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIENNU0ZpZWxkQ29uZmlnLFxuICBDbXNTZXJ2aWNlLFxuICBHcmFwaFFMTWV0YSxcbiAgR3JhcGhRTE1ldGFTZXJ2aWNlLFxuICBHcmFwaFFMUmVxdWVzdFR5cGUsXG4gIEdyYXBoUUxTZXJ2aWNlLFxuICBHcmFwaFFMVHlwZSxcbiAgU2Nyb2xsU2VydmljZSxcbiAgU29ydE9yZGVyRW51bSxcbiAgVG9hc3RTZXJ2aWNlLFxuICBUb2FzdFR5cGUsXG59IGZyb20gJ0BsZW5uZS50ZWNoL25nLWJhc2Uvc2hhcmVkJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYmFzZS1tb2RlbC10YWJsZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9tb2RlbC10YWJsZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL21vZGVsLXRhYmxlLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIE1vZGVsVGFibGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpIG1vZGVsTmFtZTogc3RyaW5nO1xuICBASW5wdXQoKSBvYmplY3RJZDogc3RyaW5nO1xuICBASW5wdXQoKSBjcmVhdGVNb2RlID0gZmFsc2U7XG4gIEBJbnB1dCgpIGxvZ2dpbmcgPSBmYWxzZTtcbiAgQElucHV0KCkgY3JlYXRlID0gdHJ1ZTtcbiAgQElucHV0KCkgdXBkYXRlID0gdHJ1ZTtcbiAgQElucHV0KCkgZGVsZXRlID0gdHJ1ZTtcbiAgQElucHV0KCkgaW1wb3J0ID0gdHJ1ZTtcbiAgQElucHV0KCkgZXhwb3J0ID0gdHJ1ZTtcbiAgQElucHV0KCkgZHVwbGljYXRlID0gdHJ1ZTtcbiAgQElucHV0KCkgY29uZmlnOiBhbnkgPSB7fTtcbiAgQElucHV0KCkgZmllbGRDb25maWc6IHsgW2tleTogc3RyaW5nXTogQ01TRmllbGRDb25maWcgfTtcbiAgQElucHV0KCkgc2hvd0ZhdkJ1dHRvbiA9IHRydWU7XG5cbiAgQE91dHB1dCgpIGlkU2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcbiAgQE91dHB1dCgpIGNyZWF0ZU1vZGVDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gIHVuaXF1ZUZpZWxkID0gJ2lkJztcbiAgdGFibGVGaWVsZHMgPSB7XG4gICAgaWQ6IHsgbGFiZWw6ICdJRCcgfSxcbiAgICBuYW1lOiB7IGxhYmVsOiAnTmFtZScgfSxcbiAgICB0aXRsZTogeyBsYWJlbDogJ1RpdGVsJyB9LFxuICAgIGRlc2NyaXB0aW9uOiB7IGxhYmVsOiAnQmVzY2hyZWlidW5nJyB9LFxuICAgIGVtYWlsOiB7IGxhYmVsOiAnRS1NYWlsJyB9LFxuICAgIGNyZWF0ZWRBdDogeyBsYWJlbDogJ0Vyc3RlbGx0IGFtJywgZGF0ZUZvcm1hdDogJ2RkLk1NLllZWVkgSEg6bW0nIH0sXG4gICAgdXBkYXRlZEF0OiB7IGxhYmVsOiAnQmVhcmJlaXRldCBhbScsIGRhdGVGb3JtYXQ6ICdkZC5NTS5ZWVlZIEhIOm1tJyB9LFxuICB9O1xuICBtZXRhITogR3JhcGhRTE1ldGE7XG4gIG9iamVjdHM6IGFueVtdID0gW107XG4gIGF2YWlsYWJsZUZpZWxkczogc3RyaW5nW10gPSBbXTtcbiAgc2VsZWN0ZWRJZCA9ICcnO1xuICBxdWVyeU5hbWU6IHN0cmluZyA9IG51bGw7XG4gIGNhbWVsTW9kZWxOYW1lOiBzdHJpbmc7XG4gIHBvc3NpYmxlRmllbGRzOiBSZWNvcmQ8c3RyaW5nLCBHcmFwaFFMVHlwZT4gPSB7fTtcblxuICB0b3RhbENvdW50OiBudW1iZXI7XG4gIHNlbGVjdGVkUGFnZUluZGV4ID0gMDtcbiAgcGFnZXMgPSBbXTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGdyYXBoUUxNZXRhU2VydmljZTogR3JhcGhRTE1ldGFTZXJ2aWNlLFxuICAgIHByaXZhdGUgZ3JhcGhRTFNlcnZpY2U6IEdyYXBoUUxTZXJ2aWNlLFxuICAgIHByaXZhdGUgY21zU2VydmljZTogQ21zU2VydmljZSxcbiAgICBwcml2YXRlIHRvYXN0U2VydmljZTogVG9hc3RTZXJ2aWNlLFxuICAgIHByaXZhdGUgc2Nyb2xsU2VydmljZTogU2Nyb2xsU2VydmljZVxuICApIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5ncmFwaFFMTWV0YVNlcnZpY2UuZ2V0TWV0YSgpLnN1YnNjcmliZSgobWV0YSkgPT4ge1xuICAgICAgdGhpcy5tZXRhID0gbWV0YTtcblxuICAgICAgaWYgKHRoaXMubW9kZWxOYW1lKSB7XG4gICAgICAgIHRoaXMuaW5pdCgpO1xuICAgICAgfVxuXG4gICAgICBpZiAodGhpcy5vYmplY3RJZCkge1xuICAgICAgICB0aGlzLnNlbGVjdGVkSWQgPSB0aGlzLm9iamVjdElkO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIGlmIChjaGFuZ2VzWydtb2RlbE5hbWUnXSAmJiB0aGlzLm1ldGEpIHtcbiAgICAgIHRoaXMuaW5pdCgpO1xuICAgIH1cblxuICAgIGlmIChjaGFuZ2VzWydvYmplY3RJZCddICYmIHRoaXMubWV0YSkge1xuICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRJZCAhPT0gdGhpcy5vYmplY3RJZCkge1xuICAgICAgICBpZiAodGhpcy5sb2dnaW5nKSB7XG4gICAgICAgICAgY29uc29sZS5sb2coJ01vZGVsVGFibGVDb21wb25lbnQ6Om5nT25DaGFuZ2VzLT5zZWxlY3RlZElkJywgdGhpcy5zZWxlY3RlZElkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRJZCA9IHRoaXMub2JqZWN0SWQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFdlJ3JlIHVzaW5nIHRoZSBgbWV0YWAgc2VydmljZSB0byBnZXQgdGhlIGZpZWxkcyB0aGF0IGFyZSBhdmFpbGFibGUgZm9yIHRoZSBgZmluZGAgcXVlcnkgZm9yIHRoZSBtb2RlbCB3ZSdyZSB3b3JraW5nXG4gICAqIHdpdGguIFdlJ3JlIHRoZW4gdXNpbmcgdGhhdCBpbmZvcm1hdGlvbiB0byBwb3B1bGF0ZSB0aGUgYGF2YWlsYWJsZUZpZWxkc2AgYXJyYXlcbiAgICovXG4gIGFzeW5jIGluaXQoKSB7XG4gICAgdGhpcy5hdmFpbGFibGVGaWVsZHMgPSBbXTtcbiAgICB0aGlzLnBhZ2VzID0gW107XG4gICAgdGhpcy50b3RhbENvdW50ID0gbnVsbDtcbiAgICB0aGlzLmNhbWVsTW9kZWxOYW1lID0gdGhpcy5rZWJhYlRvQ2FtZWxDYXNlKHRoaXMubW9kZWxOYW1lKTtcbiAgICAvLyBTZXQgcXVlcnkgbmFtZVxuICAgIGlmICghdGhpcy5jb25maWc/LnF1ZXJ5TmFtZSkge1xuICAgICAgdGhpcy5xdWVyeU5hbWUgPSAnZmluZEFuZENvdW50JyArIHRoaXMuY2FwaXRhbGl6ZUZpcnN0TGV0dGVyKHRoaXMuY2FtZWxNb2RlbE5hbWUpICsgJ3MnO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnF1ZXJ5TmFtZSA9IHRoaXMuY29uZmlnPy5xdWVyeU5hbWU7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuY29uZmlnPy50YWJsZUZpZWxkcykge1xuICAgICAgdGhpcy50YWJsZUZpZWxkcyA9IHRoaXMuY29uZmlnLnRhYmxlRmllbGRzO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmxvZ2dpbmcpIHtcbiAgICAgIGNvbnNvbGUubG9nKCdNb2RlbFRhYmxlQ29tcG9uZW50Ojppbml0LT5tb2RlbE5hbWUnLCB0aGlzLm1vZGVsTmFtZSk7XG4gICAgICBjb25zb2xlLmxvZygnTW9kZWxUYWJsZUNvbXBvbmVudDo6aW5pdC0+Y2FtZWxNb2RlbE5hbWUnLCB0aGlzLmNhbWVsTW9kZWxOYW1lKTtcbiAgICAgIGNvbnNvbGUubG9nKCdNb2RlbFRhYmxlQ29tcG9uZW50Ojppbml0LT5xdWVyeU5hbWUnLCB0aGlzLnF1ZXJ5TmFtZSk7XG4gICAgICBjb25zb2xlLmxvZygnTW9kZWxUYWJsZUNvbXBvbmVudDo6aW5pdC0+dGFibGVGaWVsZHMnLCB0aGlzLnRhYmxlRmllbGRzKTtcbiAgICB9XG5cbiAgICB0aGlzLnBvc3NpYmxlRmllbGRzID0gdGhpcy5tZXRhLmdldEZpZWxkcyh0aGlzLnF1ZXJ5TmFtZSkuZmllbGRzO1xuICAgIGxldCBrZXlzO1xuICAgIGlmICh0aGlzLnBvc3NpYmxlRmllbGRzPy5pdGVtcyAmJiBPYmplY3Qua2V5cyh0aGlzLnBvc3NpYmxlRmllbGRzPy5pdGVtcz8uZmllbGRzKS5sZW5ndGggPiAwKSB7XG4gICAgICBrZXlzID0gT2JqZWN0LmtleXModGhpcy5wb3NzaWJsZUZpZWxkcy5pdGVtcy5maWVsZHMpO1xuICAgIH0gZWxzZSB7XG4gICAgICBrZXlzID0gT2JqZWN0LmtleXModGhpcy5wb3NzaWJsZUZpZWxkcyk7XG4gICAgfVxuXG4gICAgY29uc3QgdGFibGVGaWVsZEtleXMgPSBPYmplY3Qua2V5cyh0aGlzLnRhYmxlRmllbGRzKTtcbiAgICB0YWJsZUZpZWxkS2V5cz8uZm9yRWFjaCgoZmllbGQpID0+IHtcbiAgICAgIGlmIChrZXlzLmluY2x1ZGVzKGZpZWxkKSkge1xuICAgICAgICB0aGlzLmF2YWlsYWJsZUZpZWxkcy5wdXNoKGZpZWxkKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGlmICh0aGlzLmxvZ2dpbmcpIHtcbiAgICAgIGNvbnNvbGUubG9nKCdNb2RlbFRhYmxlQ29tcG9uZW50Ojppbml0LT5wb3NzaWJsZUZpZWxkcycsIHRoaXMucG9zc2libGVGaWVsZHMpO1xuICAgICAgY29uc29sZS5sb2coJ01vZGVsVGFibGVDb21wb25lbnQ6OmluaXQtPmtleXMnLCBrZXlzKTtcbiAgICAgIGNvbnNvbGUubG9nKCdNb2RlbFRhYmxlQ29tcG9uZW50Ojppbml0LT5hdmFpbGFibGVGaWVsZHMnLCB0aGlzLmF2YWlsYWJsZUZpZWxkcyk7XG4gICAgfVxuXG4gICAgdGhpcy5zZWxlY3RlZFBhZ2VJbmRleCA9IDA7XG4gICAgdGhpcy5vYmplY3RzID0gYXdhaXQgdGhpcy5sb2FkT2JqZWN0cyh0aGlzLmF2YWlsYWJsZUZpZWxkcywgMCwgMjUpO1xuICB9XG5cbiAgLyoqXG4gICAqIFdoZW4gdGhlIHVzZXIgY2xpY2tzIHRoZSBcIkNyZWF0ZSBOZXdcIiBidXR0b24sIHRoZSBjcmVhdGVNb2RlQ2hhbmdlZCBldmVudCBpcyBlbWl0dGVkLCB3aGljaCBpcyB0aGVuIGhhbmRsZWQgYnkgdGhlXG4gICAqIHBhcmVudCBjb21wb25lbnRcbiAgICovXG4gIGNyZWF0ZU5ld09iamVjdCgpIHtcbiAgICB0aGlzLmNyZWF0ZU1vZGUgPSB0cnVlO1xuICAgIHRoaXMuY3JlYXRlTW9kZUNoYW5nZWQuZW1pdCh0cnVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJdCBsb2FkcyB0aGUgb2JqZWN0cyBmcm9tIHRoZSBkYXRhYmFzZSBhbmQgc3RvcmVzIHRoZW0gaW4gdGhlIG9iamVjdHMgdmFyaWFibGVcbiAgICpcbiAgICogQHBhcmFtIGZpZWxkcyAtIHN0cmluZ1tdIC0gVGhlIGZpZWxkcyB5b3Ugd2FudCB0byBsb2FkIGZyb20gdGhlIGRhdGFiYXNlLlxuICAgKiBAcGFyYW0gc2tpcFxuICAgKiBAcGFyYW0gbGltaXRcbiAgICovXG4gIGxvYWRPYmplY3RzKGZpZWxkczogc3RyaW5nW10sIHNraXAgPSAwLCBsaW1pdCA9IDI1KTogUHJvbWlzZTxhbnlbXT4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZTxhbnlbXT4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgY29uc3QgcmVxdWVzdEZpZWxkcyA9IFsuLi5maWVsZHNdO1xuICAgICAgY29uc3QgaWRJbkZpZWxkcyA9IHJlcXVlc3RGaWVsZHMuZmluZCgoZSkgPT4gZSA9PT0gJ2lkJyk7XG5cbiAgICAgIGlmICghaWRJbkZpZWxkcykge1xuICAgICAgICByZXF1ZXN0RmllbGRzLnB1c2goJ2lkJyk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGlzRmluZEFuZENvdW50ID0gdGhpcy5xdWVyeU5hbWUuaW5jbHVkZXMoJ2ZpbmRBbmRDb3VudCcpO1xuXG4gICAgICB0aGlzLmdyYXBoUUxTZXJ2aWNlXG4gICAgICAgIC5ncmFwaFFsKHRoaXMucXVlcnlOYW1lLCB7XG4gICAgICAgICAgYXJndW1lbnRzOiB7XG4gICAgICAgICAgICBzb3J0OiBbeyBmaWVsZDogJ2NyZWF0ZWRBdCcsIG9yZGVyOiBTb3J0T3JkZXJFbnVtLkFTQyB9XSxcbiAgICAgICAgICAgIGxpbWl0OiBpc0ZpbmRBbmRDb3VudCA/IGxpbWl0IDogbnVsbCxcbiAgICAgICAgICAgIHNraXA6IGlzRmluZEFuZENvdW50ID8gc2tpcCA6IG51bGwsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBmaWVsZHM6IGlzRmluZEFuZENvdW50ID8gWyd0b3RhbENvdW50JywgeyBpdGVtczogcmVxdWVzdEZpZWxkcyB9XSA6IHJlcXVlc3RGaWVsZHMsXG4gICAgICAgICAgdHlwZTogR3JhcGhRTFJlcXVlc3RUeXBlLlFVRVJZLFxuICAgICAgICB9KVxuICAgICAgICAuc3Vic2NyaWJlKHtcbiAgICAgICAgICBuZXh0OiAodmFsdWUpID0+IHtcbiAgICAgICAgICAgIGxldCBpdGVtcztcbiAgICAgICAgICAgIGlmICh0aGlzLmxvZ2dpbmcpIHtcbiAgICAgICAgICAgICAgY29uc29sZS5sb2coJ01vZGVsVGFibGVDb21wb25lbnQ6OmxvYWRPYmplY3RzLT52YWx1ZScsIHZhbHVlKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHZhbHVlPy50b3RhbENvdW50ID49IDApIHtcbiAgICAgICAgICAgICAgaXRlbXMgPSB2YWx1ZS5pdGVtcztcbiAgICAgICAgICAgICAgdGhpcy50b3RhbENvdW50ID0gdmFsdWUudG90YWxDb3VudDtcbiAgICAgICAgICAgICAgdGhpcy5wYWdlcyA9IFtdO1xuICAgICAgICAgICAgICBsZXQgbnVtYmVycyA9IDA7XG5cbiAgICAgICAgICAgICAgd2hpbGUgKG51bWJlcnMgPCB0aGlzLnRvdGFsQ291bnQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnBhZ2VzLnB1c2goe1xuICAgICAgICAgICAgICAgICAgc2tpcDogbnVtYmVycyxcbiAgICAgICAgICAgICAgICAgIGxpbWl0OiAyNSxcbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgIG51bWJlcnMgPSBudW1iZXJzICsgMjU7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIGl0ZW1zID0gdmFsdWU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJlc29sdmUoaXRlbXMpO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgZXJyb3I6IChlcnIpID0+IHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdFcnJvciBvbiBsb2FkaW5nIG9iamVjdHMnLCBlcnIpO1xuICAgICAgICAgICAgcmVqZWN0KGVycik7XG4gICAgICAgICAgfSxcbiAgICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogSWYgdGhlIHVwZGF0ZSBwcm9wZXJ0eSBpcyB0cnVlLCB0aGVuIHNldCB0aGUgc2VsZWN0ZWRJZCBwcm9wZXJ0eSB0byB0aGUgaWQgb2YgdGhlIG9iamVjdCBwYXNzZWQgaW4sIGFuZCBlbWl0IHRoZVxuICAgKiBzZWxlY3RlZElkIHByb3BlcnR5XG4gICAqL1xuICBzZWxlY3RJZChvYmplY3Q6IGFueSkge1xuICAgIGlmICghb2JqZWN0KSB7XG4gICAgICB0aGlzLmNyZWF0ZU1vZGUgPSBmYWxzZTtcbiAgICAgIHRoaXMuY3JlYXRlTW9kZUNoYW5nZWQuZW1pdChmYWxzZSk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMudXBkYXRlKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkSWQgPSBvYmplY3RbJ2lkJ107XG4gICAgICB0aGlzLmlkU2VsZWN0ZWQuZW1pdCh0aGlzLnNlbGVjdGVkSWQpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBJdCBjYWxscyB0aGUgZHVwbGljYXRlT2JqZWN0IGZ1bmN0aW9uIGluIHRoZSBjbXNTZXJ2aWNlLCBwYXNzaW5nIGluIHRoZSBpZCBvZiB0aGUgb2JqZWN0IHRvIGJlIGR1cGxpY2F0ZWQgYW5kIHRoZVxuICAgKiBtb2RlbE5hbWUgb2YgdGhlIG9iamVjdFxuICAgKi9cbiAgYXN5bmMgZHVwbGljYXRlT2JqZWN0KGlkOiBzdHJpbmcpIHtcbiAgICBhd2FpdCB0aGlzLmNtc1NlcnZpY2UuZHVwbGljYXRlT2JqZWN0KGlkLCB0aGlzLmNhbWVsTW9kZWxOYW1lKTtcbiAgICB0aGlzLnNlbGVjdGVkUGFnZUluZGV4ID0gMDtcbiAgICB0aGlzLm9iamVjdHMgPSBhd2FpdCB0aGlzLmxvYWRPYmplY3RzKFxuICAgICAgdGhpcy5hdmFpbGFibGVGaWVsZHMsXG4gICAgICB0aGlzLnBhZ2VzW3RoaXMuc2VsZWN0ZWRQYWdlSW5kZXhdLnNraXAsXG4gICAgICB0aGlzLnBhZ2VzW3RoaXMuc2VsZWN0ZWRQYWdlSW5kZXhdLmxpbWl0XG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJdCBjYWxscyB0aGUgZGVsZXRlT2JqZWN0IGZ1bmN0aW9uIGluIHRoZSBjbXNTZXJ2aWNlLCBwYXNzaW5nIGluIHRoZSBpZCBvZiB0aGUgb2JqZWN0IHRvIGRlbGV0ZSBhbmQgdGhlIG5hbWUgb2YgdGhlXG4gICAqIG1vZGVsXG4gICAqL1xuICBhc3luYyBkZWxldGVPYmplY3QoaWQ6IHN0cmluZykge1xuICAgIGF3YWl0IHRoaXMuY21zU2VydmljZS5kZWxldGVPYmplY3QoaWQsIHRoaXMuY2FtZWxNb2RlbE5hbWUpO1xuICAgIHRoaXMuc2VsZWN0ZWRQYWdlSW5kZXggPSAwO1xuICAgIHRoaXMub2JqZWN0cyA9IGF3YWl0IHRoaXMubG9hZE9iamVjdHMoXG4gICAgICB0aGlzLmF2YWlsYWJsZUZpZWxkcyxcbiAgICAgIHRoaXMucGFnZXNbdGhpcy5zZWxlY3RlZFBhZ2VJbmRleF0uc2tpcCxcbiAgICAgIHRoaXMucGFnZXNbdGhpcy5zZWxlY3RlZFBhZ2VJbmRleF0ubGltaXRcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEl0IHRha2VzIGEgc3RyaW5nLCBjYXBpdGFsaXplcyB0aGUgZmlyc3QgbGV0dGVyLCBhbmQgcmV0dXJucyB0aGUgbW9kaWZpZWQgc3RyaW5nXG4gICAqL1xuICBjYXBpdGFsaXplRmlyc3RMZXR0ZXIodmFsdWU6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmNtc1NlcnZpY2UuY2FwaXRhbGl6ZUZpcnN0TGV0dGVyKHZhbHVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBLZWJhYiB0byBjYW1lbCBjYXNlIHN0cmluZ1xuICAgKi9cbiAga2ViYWJUb0NhbWVsQ2FzZShzdHI6IHN0cmluZykge1xuICAgIHJldHVybiBzdHIucmVwbGFjZSgvLS4vZywgKG1hdGNoKSA9PiBtYXRjaFsxXS50b1VwcGVyQ2FzZSgpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbXBvcnQgb2JqZWN0cyBmcm9tIGpzb24gZmlsZVxuICAgKi9cbiAgcHJvY2Vzc0ltcG9ydChldmVudCkge1xuICAgIC8vIENyZWF0ZSBhIG5ldyBGaWxlUmVhZGVyKCkgb2JqZWN0XG4gICAgY29uc3QgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcblxuICAgIC8vIFNldHVwIHRoZSBjYWxsYmFjayBldmVudCB0byBydW4gd2hlbiB0aGUgZmlsZSBpcyByZWFkXG4gICAgcmVhZGVyLm9ubG9hZCA9IGFzeW5jIChyZWFkZXJFdmVudCkgPT4ge1xuICAgICAgbGV0IGpzb25SZXN1bHQgPSBKU09OLnBhcnNlKHJlYWRlckV2ZW50LnRhcmdldC5yZXN1bHQgYXMgYW55KTtcblxuICAgICAgaWYgKCFBcnJheS5pc0FycmF5KGpzb25SZXN1bHQpKSB7XG4gICAgICAgIGpzb25SZXN1bHQgPSBbanNvblJlc3VsdF07XG4gICAgICB9XG5cbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwganNvblJlc3VsdC5sZW5ndGg7IGkrKykge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIHRoaXMuZ3JhcGhRTFNlcnZpY2VcbiAgICAgICAgICAgIC5ncmFwaFFsKCdjcmVhdGUnICsgdGhpcy5jYXBpdGFsaXplRmlyc3RMZXR0ZXIodGhpcy5tb2RlbE5hbWUpLCB7XG4gICAgICAgICAgICAgIGFyZ3VtZW50czogeyBpbnB1dDoganNvblJlc3VsdFtpXSB9LFxuICAgICAgICAgICAgICBmaWVsZHM6IFsnaWQnXSxcbiAgICAgICAgICAgICAgdHlwZTogR3JhcGhRTFJlcXVlc3RUeXBlLk1VVEFUSU9OLFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoe1xuICAgICAgICAgICAgICBuZXh0OiBhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy50b2FzdFNlcnZpY2Uuc2hvdyh7XG4gICAgICAgICAgICAgICAgICBpZDogdGhpcy5tb2RlbE5hbWUgKyAnLScgKyBpICsgJy1zdWNjZXNzJyxcbiAgICAgICAgICAgICAgICAgIHR5cGU6IFRvYXN0VHlwZS5TVUNDRVNTLFxuICAgICAgICAgICAgICAgICAgdGl0bGU6ICdFcmZvbGdyZWljaCcsXG4gICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogJ0VsZW1lbnQgJyArIChpICsgMSkgKyAnIHZvbiAnICsganNvblJlc3VsdC5sZW5ndGggKyAnIGVyZm9sZ3JlaWNoIGltcG9ydGllcnQuJyxcbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgIGlmIChpID09PSBqc29uUmVzdWx0Lmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRQYWdlSW5kZXggPSAwO1xuICAgICAgICAgICAgICAgICAgdGhpcy5vYmplY3RzID0gYXdhaXQgdGhpcy5sb2FkT2JqZWN0cyhcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hdmFpbGFibGVGaWVsZHMsXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucGFnZXNbdGhpcy5zZWxlY3RlZFBhZ2VJbmRleF0uc2tpcCxcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wYWdlc1t0aGlzLnNlbGVjdGVkUGFnZUluZGV4XS5saW1pdFxuICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIGVycm9yOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy50b2FzdFNlcnZpY2Uuc2hvdyh7XG4gICAgICAgICAgICAgICAgICBpZDogdGhpcy5tb2RlbE5hbWUgKyAnLScgKyBpICsgJy1lcnJvcicsXG4gICAgICAgICAgICAgICAgICB0eXBlOiBUb2FzdFR5cGUuRVJST1IsXG4gICAgICAgICAgICAgICAgICB0aXRsZTogJ0Vycm9yJyxcbiAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnRWxlbWVudCAnICsgKGkgKyAxKSArICcgdm9uICcgKyBqc29uUmVzdWx0Lmxlbmd0aCArICcga29ubnRlIG5pY2h0IGltcG9ydGllcnQgd2VyZGVuLicsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgIHRoaXMudG9hc3RTZXJ2aWNlLnNob3coe1xuICAgICAgICAgICAgaWQ6IHRoaXMubW9kZWxOYW1lICsgJy0nICsgaSArICctZXJyb3InLFxuICAgICAgICAgICAgdHlwZTogVG9hc3RUeXBlLkVSUk9SLFxuICAgICAgICAgICAgdGl0bGU6ICdFcnJvcicsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogJ0VsZW1lbnQgJyArIChpICsgMSkgKyAnIHZvbiAnICsganNvblJlc3VsdC5sZW5ndGggKyAnIGtvbm50ZSBuaWNodCBpbXBvcnRpZXJ0IHdlcmRlbi4nLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfTtcblxuICAgIC8vIFJlYWQgdGhlIGZpbGVcbiAgICByZWFkZXIucmVhZEFzVGV4dChldmVudC50YXJnZXQuZmlsZXNbMF0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEV4cG9ydCBvYmplY3RzIGFzIGpzb25cbiAgICovXG4gIGFzeW5jIHByb2Nlc3NFeHBvcnQoKSB7XG4gICAgY29uc3Qga2V5cyA9IHRoaXMuZ2V0QWxsS2V5cygpO1xuICAgIGNvbnN0IGl0ZW1zID0gYXdhaXQgdGhpcy5sb2FkT2JqZWN0cyhcbiAgICAgIGtleXMsXG4gICAgICB0aGlzLnBhZ2VzW3RoaXMuc2VsZWN0ZWRQYWdlSW5kZXhdLnNraXAsXG4gICAgICB0aGlzLnBhZ2VzW3RoaXMuc2VsZWN0ZWRQYWdlSW5kZXhdLmxpbWl0XG4gICAgKTtcbiAgICBjb25zdCBkYXRhID0gSlNPTi5zdHJpbmdpZnkoaXRlbXMpO1xuICAgIGNvbnN0IGJsb2IgPSBuZXcgQmxvYihbZGF0YV0sIHsgdHlwZTogJ3RleHQvanNvbjtjaGFyc2V0PXV0Zi04OycgfSk7XG4gICAgY29uc3QgdXJsID0gVVJMLmNyZWF0ZU9iamVjdFVSTChibG9iKTtcbiAgICBjb25zdCBsaW5rID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpO1xuXG4gICAgbGluay5zZXRBdHRyaWJ1dGUoJ2hyZWYnLCB1cmwpO1xuICAgIGxpbmsuc2V0QXR0cmlidXRlKCdkb3dubG9hZCcsIHRoaXMubW9kZWxOYW1lICsgJ3MuanNvbicpO1xuICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQobGluayk7XG4gICAgbGluay5jbGljaygpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBhbGwga2V5cyBmb3IgcmVxdWVzdCB0byBleHBvcnQgb2JqZWN0cyBhcyBqc29uXG4gICAqL1xuICBnZXRBbGxLZXlzKCkge1xuICAgIGNvbnN0IGl0ZW1zID0gW107XG4gICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXModGhpcy5wb3NzaWJsZUZpZWxkcykpIHtcbiAgICAgIGlmICghdGhpcy5wb3NzaWJsZUZpZWxkc1trZXldLmZpZWxkcyB8fCBPYmplY3Qua2V5cyh0aGlzLnBvc3NpYmxlRmllbGRzW2tleV0uZmllbGRzKS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgaXRlbXMucHVzaChrZXkpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBpdGVtcztcbiAgfVxuXG4gIGFzeW5jIHNlbGVjdFBhZ2UoaTogbnVtYmVyKSB7XG4gICAgdGhpcy5zZWxlY3RlZFBhZ2VJbmRleCA9IGk7XG4gICAgYXdhaXQgdGhpcy5zY3JvbGxTZXJ2aWNlLnNjcm9sbFRvKCdtb2RlbC10YWJsZS10b3AnKTtcbiAgICB0aGlzLm9iamVjdHMgPSBhd2FpdCB0aGlzLmxvYWRPYmplY3RzKFxuICAgICAgdGhpcy5hdmFpbGFibGVGaWVsZHMsXG4gICAgICB0aGlzLnBhZ2VzW3RoaXMuc2VsZWN0ZWRQYWdlSW5kZXhdLnNraXAsXG4gICAgICB0aGlzLnBhZ2VzW3RoaXMuc2VsZWN0ZWRQYWdlSW5kZXhdLmxpbWl0XG4gICAgKTtcbiAgfVxufVxuIiwiPGRpdiAqbmdJZj1cIiFzZWxlY3RlZElkICYmICFjcmVhdGVNb2RlXCI+XG4gIDxkaXYgY2xhc3M9XCJ3LTEwMCBkLWZsZXggZmxleC1yb3cganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtY2VudGVyIG1iLTIgbWItbGctNFwiPlxuICAgIDxoMiBpZD1cIm1vZGVsLXRhYmxlLXRvcFwiIGNsYXNzPVwibWItMFwiICpuZ0lmPVwibW9kZWxOYW1lXCI+XG4gICAgICB7e1xuICAgICAgICBjb25maWc/LnBsdXJhbCA/IGNvbmZpZz8ucGx1cmFsIDogY29uZmlnPy5sYWJlbCA/IGNvbmZpZz8ubGFiZWwgOiBjYXBpdGFsaXplRmlyc3RMZXR0ZXIoY2FtZWxNb2RlbE5hbWUpICsgJ3MnXG4gICAgICB9fVxuICAgIDwvaDI+XG4gICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZC1ub25lIGQtbGctYmxvY2tcIj5cbiAgICAgIDxpbnB1dCAjaW1wb3J0RmlsZSB0eXBlPVwiZmlsZVwiIGFjY2VwdD1cIi5qc29uXCIgY2xhc3M9XCJkLW5vbmVcIiAoY2hhbmdlKT1cInByb2Nlc3NJbXBvcnQoJGV2ZW50KVwiIC8+XG4gICAgICA8ZGl2IGNsYXNzPVwiYnRuLWdyb3VwIG1lLTRcIiAqbmdJZj1cImltcG9ydCB8fCBleHBvcnRcIj5cbiAgICAgICAgPGlcbiAgICAgICAgICBjbGFzcz1cImJpIGJpLXRocmVlLWRvdHMtdmVydGljYWxcIlxuICAgICAgICAgIGlkPVwic2V0dGluZ3NEcm9wZG93blwiXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgZGF0YS1icy10b2dnbGU9XCJkcm9wZG93blwiXG4gICAgICAgICAgZGF0YS1icy1hdXRvLWNsb3NlPVwidHJ1ZVwiXG4gICAgICAgICAgYXJpYS1leHBhbmRlZD1cImZhbHNlXCJcbiAgICAgICAgPjwvaT5cbiAgICAgICAgPHVsIGNsYXNzPVwiZHJvcGRvd24tbWVudSBkcm9wZG93bi1tZW51LWVuZFwiIGFyaWEtbGFiZWxsZWRieT1cInNldHRpbmdzRHJvcGRvd25cIj5cbiAgICAgICAgICA8bGk+PGEgY2xhc3M9XCJkcm9wZG93bi1pdGVtIGN1cnNvci1wb2ludGVyXCIgKm5nSWY9XCJleHBvcnRcIiAoY2xpY2spPVwicHJvY2Vzc0V4cG9ydCgpXCI+RXhwb3J0PC9hPjwvbGk+XG4gICAgICAgICAgPGxpPjxhIGNsYXNzPVwiZHJvcGRvd24taXRlbSBjdXJzb3ItcG9pbnRlclwiICpuZ0lmPVwiaW1wb3J0XCIgKGNsaWNrKT1cImltcG9ydEZpbGUuY2xpY2soKVwiPiBJbXBvcnQgPC9hPjwvbGk+XG4gICAgICAgIDwvdWw+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXByaW1hcnlcIiAoY2xpY2spPVwiY3JlYXRlTmV3T2JqZWN0KClcIiAqbmdJZj1cImNyZWF0ZVwiPkVyc3RlbGxlbjwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICA8ZGl2XG4gICAgY2xhc3M9XCJ0YWJsZS1yZXNwb25zaXZlXCJcbiAgICBbbHRDb250ZXh0TWVudV09XCJjb250ZXh0TWVudVwiXG4gICAgW3NlbGVjdG9yc109XCInLm9iamVjdC1jb2wnXCJcbiAgICAjY29udGV4dE1lbnVEYXRhPVwiY29udGV4dE1lbnVEYXRhXCJcbiAgPlxuICAgIDx0YWJsZSBjbGFzcz1cInRhYmxlIHRhYmxlLWhvdmVyIGJnLXdoaXRlIGQtbm9uZSBkLWxnLXRhYmxlXCI+XG4gICAgICA8dGhlYWQ+XG4gICAgICAgIDx0cj5cbiAgICAgICAgICA8dGhcbiAgICAgICAgICAgIHNjb3BlPVwiY29sXCJcbiAgICAgICAgICAgICpuZ0Zvcj1cImxldCBmaWVsZCBvZiBhdmFpbGFibGVGaWVsZHNcIlxuICAgICAgICAgICAgW2Jhc2VTb3J0XT1cIm9iamVjdHNcIlxuICAgICAgICAgICAgZGF0YS1vcmRlcj1cImRlc2NcIlxuICAgICAgICAgICAgW2F0dHIuZGF0YS1uYW1lXT1cImZpZWxkXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7eyB0YWJsZUZpZWxkc1tmaWVsZF0/LmxhYmVsID8gdGFibGVGaWVsZHNbZmllbGRdPy5sYWJlbCA6IGNhcGl0YWxpemVGaXJzdExldHRlcihmaWVsZCkgfX1cbiAgICAgICAgICA8L3RoPlxuICAgICAgICA8L3RyPlxuICAgICAgPC90aGVhZD5cbiAgICAgIDx0Ym9keT5cbiAgICAgICAgPHRyIGNsYXNzPVwib2JqZWN0LWNvbFwiICpuZ0Zvcj1cImxldCBvYmplY3Qgb2Ygb2JqZWN0c1wiIFtpZF09XCJvYmplY3RbdW5pcXVlRmllbGRdXCI+XG4gICAgICAgICAgPHRkIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIiAqbmdGb3I9XCJsZXQgZmllbGQgb2YgYXZhaWxhYmxlRmllbGRzXCIgKGNsaWNrKT1cInNlbGVjdElkKG9iamVjdClcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJ0YWJsZUZpZWxkc1tmaWVsZF0/LmRhdGVGb3JtYXRcIj5cbiAgICAgICAgICAgICAge3sgb2JqZWN0W2ZpZWxkXSB8IGRhdGU6IHRhYmxlRmllbGRzW2ZpZWxkXT8uZGF0ZUZvcm1hdCB9fSBVaHJcbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidGFibGVGaWVsZHNbZmllbGRdPy5lbnVtVmFsdWVzXCI+XG4gICAgICAgICAgICAgIHt7IHRhYmxlRmllbGRzW2ZpZWxkXT8uZW51bVZhbHVlc1tvYmplY3RbZmllbGRdXT8udGV4dCB9fVxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhdGFibGVGaWVsZHNbZmllbGRdPy5kYXRlRm9ybWF0ICYmICF0YWJsZUZpZWxkc1tmaWVsZF0/LmVudW1WYWx1ZXNcIj5cbiAgICAgICAgICAgICAge3sgb2JqZWN0W2ZpZWxkXSB8IGJhc2VFbGxpcHNlczogNjAgfX1cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvdGQ+XG4gICAgICAgIDwvdHI+XG4gICAgICA8L3Rib2R5PlxuICAgIDwvdGFibGU+XG5cbiAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGQtbGctbm9uZSBmbGV4LWNvbHVtbiBmbGV4LWdyb3ctMVwiPlxuICAgICAgPGRpdiBjbGFzcz1cInRhYmxlLWNhcmRcIiAqbmdGb3I9XCJsZXQgb2JqZWN0IG9mIG9iamVjdHNcIiBbaWRdPVwib2JqZWN0W3VuaXF1ZUZpZWxkXVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwidGFibGUtY2FyZC1lbnRyeVwiICpuZ0Zvcj1cImxldCBmaWVsZCBvZiBhdmFpbGFibGVGaWVsZHM7IGxldCBpID0gaW5kZXhcIiAoY2xpY2spPVwic2VsZWN0SWQob2JqZWN0KVwiPlxuICAgICAgICAgIDxiICpuZ0lmPVwiaSA+IDBcIlxuICAgICAgICAgICAgPnt7IHRhYmxlRmllbGRzW2ZpZWxkXT8ubGFiZWwgPyB0YWJsZUZpZWxkc1tmaWVsZF0/LmxhYmVsIDogY2FwaXRhbGl6ZUZpcnN0TGV0dGVyKGZpZWxkKSB9fTo8L2JcbiAgICAgICAgICA+XG4gICAgICAgICAgPHAgW25nQ2xhc3NdPVwieyAndGFibGUtY2FyZC1lbnRyeS1maXJzdCc6IGkgPT09IDAgfVwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInRhYmxlRmllbGRzW2ZpZWxkXT8uZGF0ZUZvcm1hdFwiPlxuICAgICAgICAgICAgICB7eyBvYmplY3RbZmllbGRdIHwgZGF0ZTogdGFibGVGaWVsZHNbZmllbGRdPy5kYXRlRm9ybWF0IH19IFVoclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJ0YWJsZUZpZWxkc1tmaWVsZF0/LmVudW1WYWx1ZXNcIj5cbiAgICAgICAgICAgICAge3sgdGFibGVGaWVsZHNbZmllbGRdPy5lbnVtVmFsdWVzW29iamVjdFtmaWVsZF1dPy50ZXh0IH19XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiF0YWJsZUZpZWxkc1tmaWVsZF0/LmRhdGVGb3JtYXQgJiYgIXRhYmxlRmllbGRzW2ZpZWxkXT8uZW51bVZhbHVlc1wiPlxuICAgICAgICAgICAgICB7eyBvYmplY3RbZmllbGRdIHwgYmFzZUVsbGlwc2VzOiA2MCB9fVxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPC9wPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPG5hdiAqbmdJZj1cInRvdGFsQ291bnQgPj0gMFwiPlxuICAgICAgPHVsIGNsYXNzPVwicGFnaW5hdGlvbiBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCI+XG4gICAgICAgIDxsaSBjbGFzcz1cInBhZ2UtaXRlbVwiPlxuICAgICAgICAgIDxhXG4gICAgICAgICAgICBjbGFzcz1cInBhZ2UtbGlua1wiXG4gICAgICAgICAgICAoY2xpY2spPVwic2VsZWN0UGFnZShzZWxlY3RlZFBhZ2VJbmRleCAtIDEpXCJcbiAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJQcmV2aW91c1wiXG4gICAgICAgICAgICBbbmdDbGFzc109XCJ7IGRpc2FibGVkOiBzZWxlY3RlZFBhZ2VJbmRleCAtIDEgPiAwIH1cIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxzcGFuIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPiZsYXF1bzs8L3NwYW4+XG4gICAgICAgICAgPC9hPlxuICAgICAgICA8L2xpPlxuICAgICAgICA8bGkgY2xhc3M9XCJwYWdlLWl0ZW1cIiAqbmdGb3I9XCJsZXQgcGFnZSBvZiBwYWdlczsgbGV0IGkgPSBpbmRleFwiPlxuICAgICAgICAgIDxhIGNsYXNzPVwicGFnZS1saW5rXCIgW25nQ2xhc3NdPVwieyBhY3RpdmU6IHNlbGVjdGVkUGFnZUluZGV4ID09PSBpIH1cIiAoY2xpY2spPVwic2VsZWN0UGFnZShpKVwiPnt7IGkgKyAxIH19PC9hPlxuICAgICAgICA8L2xpPlxuICAgICAgICA8bGkgY2xhc3M9XCJwYWdlLWl0ZW1cIj5cbiAgICAgICAgICA8YVxuICAgICAgICAgICAgY2xhc3M9XCJwYWdlLWxpbmtcIlxuICAgICAgICAgICAgKGNsaWNrKT1cInNlbGVjdFBhZ2Uoc2VsZWN0ZWRQYWdlSW5kZXggKyAxKVwiXG4gICAgICAgICAgICBhcmlhLWxhYmVsPVwiTmV4dFwiXG4gICAgICAgICAgICBbbmdDbGFzc109XCJ7IGRpc2FibGVkOiBwYWdlc1tzZWxlY3RlZFBhZ2VJbmRleCArIDFdIH1cIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxzcGFuIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPiZyYXF1bzs8L3NwYW4+XG4gICAgICAgICAgPC9hPlxuICAgICAgICA8L2xpPlxuICAgICAgPC91bD5cbiAgICA8L25hdj5cblxuICAgIDxkaXYgY2xhc3M9XCJjb250ZXh0LW1lbnVcIiAjY29udGV4dE1lbnU+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29udGV4dC1tZW51LWl0ZW1cIiAoY2xpY2spPVwic2VsZWN0SWQoeyBpZDogY29udGV4dE1lbnVEYXRhLmNsaWNrZWRFbGVtZW50Py5pZCB9KVwiPkJlYXJiZWl0ZW48L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjb250ZXh0LW1lbnUtaXRlbVwiICpuZ0lmPVwiZHVwbGljYXRlXCIgKGNsaWNrKT1cImR1cGxpY2F0ZU9iamVjdChjb250ZXh0TWVudURhdGEuY2xpY2tlZEVsZW1lbnQ/LmlkKVwiPlxuICAgICAgICBEdXBsaXppZXJlblxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29udGV4dC1tZW51LWl0ZW1cIiAqbmdJZj1cImRlbGV0ZVwiIChjbGljayk9XCJkZWxldGVPYmplY3QoY29udGV4dE1lbnVEYXRhLmNsaWNrZWRFbGVtZW50Py5pZClcIj5cbiAgICAgICAgTMO2c2NoZW5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuXG48ZGl2IGNsYXNzPVwidy0xMDBcIiAqbmdJZj1cInNlbGVjdGVkSWQgfHwgY3JlYXRlTW9kZVwiPlxuICA8YnV0dG9uIGNsYXNzPVwiZC1ub25lIGQtbGctYmxvY2sgYnRuIGJ0bi1vdXRsaW5lLXByaW1hcnkgbWItM1wiIChjbGljayk9XCJzZWxlY3RJZCgnJylcIj5adXLDvGNrPC9idXR0b24+XG4gIDxiYXNlLW1vZGVsLWZvcm1cbiAgICBbbW9kZWxOYW1lXT1cImNhbWVsTW9kZWxOYW1lXCJcbiAgICBbbGFiZWxdPVwiY29uZmlnPy5sYWJlbFwiXG4gICAgW2NvbmZpZ109XCJmaWVsZENvbmZpZ1wiXG4gICAgW2xvZ2dpbmddPVwibG9nZ2luZ1wiXG4gICAgW2lkXT1cInNlbGVjdGVkSWRcIlxuICAgIChmaW5pc2hlZCk9XCJzZWxlY3RJZCgnJylcIlxuICAgIFtkZWxldGVdPVwiZGVsZXRlXCJcbiAgICBbZHVwbGljYXRlXT1cImR1cGxpY2F0ZVwiXG4gICAgW3Nob3dGYXZCdXR0b25dPVwic2hvd0ZhdkJ1dHRvblwiXG4gID48L2Jhc2UtbW9kZWwtZm9ybT5cbjwvZGl2PlxuXG48ZGl2IGNsYXNzPVwicmVzcG9uc2l2ZS1hY3Rpb24tYnV0dG9uIGQtYmxvY2sgZC1sZy1ub25lXCI+XG4gIDxiYXNlLWZhYi1idXR0b25cbiAgICBbZmFiSWNvbl09XCInYmktcGx1cydcIlxuICAgIChjbGljayk9XCJjcmVhdGVOZXdPYmplY3QoKVwiXG4gICAgKm5nSWY9XCIhKHNlbGVjdGVkSWQgfHwgY3JlYXRlTW9kZSkgJiYgc2hvd0ZhdkJ1dHRvblwiXG4gID48L2Jhc2UtZmFiLWJ1dHRvbj5cbjwvZGl2PlxuIl19
|
|
@@ -87,7 +87,7 @@ export class RefenceInputComponent {
|
|
|
87
87
|
this.control.setErrors(null);
|
|
88
88
|
return;
|
|
89
89
|
}
|
|
90
|
-
const foundElement = this.objects.find((e) =>
|
|
90
|
+
const foundElement = this.objects.find((e) => this.checkForNameFields(e));
|
|
91
91
|
if (!foundElement) {
|
|
92
92
|
this.control.setValue(null);
|
|
93
93
|
this.control.markAsTouched();
|
|
@@ -241,4 +241,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImpor
|
|
|
241
241
|
}], nameField: [{
|
|
242
242
|
type: Input
|
|
243
243
|
}] } });
|
|
244
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVmZW5jZS1pbnB1dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1iYXNlL2Jhc2UtY29tcG9uZW50cy9jb21wb25lbnRzL3JlZmVuY2UtaW5wdXQvcmVmZW5jZS1pbnB1dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1iYXNlL2Jhc2UtY29tcG9uZW50cy9jb21wb25lbnRzL3JlZmVuY2UtaW5wdXQvcmVmZW5jZS1pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFDcEUsT0FBTyxFQUFFLGtCQUFrQixFQUFrQixhQUFhLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMvRixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7QUFPcEMsTUFBTSxPQUFPLHFCQUFxQjtJQXVCaEMsWUFBb0IsY0FBOEI7UUFBOUIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBbkJ6QyxXQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ2YsV0FBTSxHQUFHLElBQUksQ0FBQztRQUNkLGtCQUFhLEdBQUcsS0FBSyxDQUFDO1FBRXRCLGdCQUFXLEdBQVksRUFBRSxDQUFDO1FBSTFCLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDakIsV0FBTSxHQUFHLE1BQU0sQ0FBQztRQUNoQixXQUFNLEdBQUcsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDeEIsZUFBVSxHQUFHLElBQUksQ0FBQztRQUNsQixjQUFTLEdBQUcsTUFBTSxDQUFDO1FBQzVCLFlBQU8sR0FBVSxFQUFFLENBQUM7UUFFcEIsdUJBQWtCLEdBQUcsRUFBRSxDQUFDO1FBRXhCLGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUVtQixDQUFDO0lBRXRELEtB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QUksSUFBSSxDQUFDLFNBQVMsRUFBRTtnQkFDbEMsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7Z0JBQ3hELElBQUksS0FBSyxFQUFFO29CQUNULE1BQU0sR0FBRyxLQUFLLENBQUM7aUJBQ2hCO2FBQ0Y7WUFFRCxPQUFPLE1BQU0sQ0FBQztTQUNmO2FBQU07WUFDTCxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsUUFBUSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztTQUM1RDtJQUNILENBQUM7O2tIQS9OVSxxQkFBcUI7c0dBQXJCLHFCQUFxQixrWkNUbEMsdTlGQStFQTsyRkR0RWEscUJBQXFCO2tCQUxqQyxTQUFTOytCQUNFLG9CQUFvQjtxR0FLckIsRUFBRTtzQkFBVixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBHcmFwaFFMUmVxdWVzdFR5cGUsIEdyYXBoUUxTZXJ2aWNlLCBTb3J0T3JkZXJFbnVtIH0gZnJvbSAnQGxlbm5lLnRlY2gvbmctYmFzZS9zaGFyZWQnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2Jhc2UtcmVmZW5jZS1pbnB1dCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9yZWZlbmNlLWlucHV0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcmVmZW5jZS1pbnB1dC5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBSZWZlbmNlSW5wdXRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpIGlkOiBzdHJpbmc7XG4gIEBJbnB1dCgpIG5hbWU6IHN0cmluZztcbiAgQElucHV0KCkgbGFiZWw/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIGlzTGlzdCA9IGZhbHNlO1xuICBASW5wdXQoKSBzZWFyY2ggPSB0cnVlO1xuICBASW5wdXQoKSB1c2VQYXJhbUFzQXJnID0gZmFsc2U7XG4gIEBJbnB1dCgpIHBhcmFtOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyPzogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIGF1dG9jb21wbGV0ZT86IHN0cmluZztcbiAgQElucHV0KCkgdGFiSW5kZXg/OiBudW1iZXI7XG4gIEBJbnB1dCgpIGNvbnRyb2w6IGFueTtcbiAgQElucHV0KCkgcmVxdWlyZWQgPSBmYWxzZTtcbiAgQElucHV0KCkgbWV0aG9kID0gJ2ZpbmQnO1xuICBASW5wdXQoKSBmaWVsZHMgPSBbJ2lkJywgJ25hbWUnXTtcbiAgQElucHV0KCkgdmFsdWVGaWVsZCA9ICdpZCc7XG4gIEBJbnB1dCgpIG5hbWVGaWVsZCA9ICduYW1lJztcbiAgb2JqZWN0czogYW55W10gPSBbXTtcbiAgY3VycmVudFZhbHVlOiBhbnk7XG4gIG9wdGlvbnNGb3JUYWdJbnB1dCA9IFtdO1xuICBzZWxlY3RlZEVsZW1lbnQ6IEhUTUxFbGVtZW50O1xuICBzdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBncmFwaFFMU2VydmljZTogR3JhcGhRTFNlcnZpY2UpIHt9XG5cbiAgYXN5bmMgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5nZXRSZWZlcmVuY2VzKCk7XG5cbiAgICB0aGlzLnN1YnNjcmlwdGlvbi5hZGQoXG4gICAgICB0aGlzLmNvbnRyb2wudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIGlmICghdGhpcy5jdXJyZW50VmFsdWUpIHtcbiAgICAgICAgICB0aGlzLnNldFZhbHVlKCk7XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICAvKipcbiAgICogSXQgZ2V0cyB0aGUgcmVmZXJlbmNlcyBmcm9tIHRoZSBHcmFwaFFMIHNlcnZlciBhbmQgc2V0cyB0aGUgdmFsdWUgb2YgdGhlIHNlbGVjdFxuICAgKi9cbiAgZ2V0UmVmZXJlbmNlcygpIHtcbiAgICBjb25zdCBmaWVsZHMgPSBbLi4udGhpcy5maWVsZHNdO1xuXG4gICAgaWYgKEFycmF5LmlzQXJyYXkodGhpcy5uYW1lRmllbGQpKSB7XG4gICAgICBmb3IgKGNvbnN0IGZpZWxkIG9mIHRoaXMubmFtZUZpZWxkKSB7XG4gICAgICAgIGlmICghZmllbGRzLmluY2x1ZGVzKGZpZWxkKSkge1xuICAgICAgICAgIGZpZWxkcy5wdXNoKGZpZWxkKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoIWZpZWxkcy5pbmNsdWRlcyh0aGlzLm5hbWVGaWVsZCkpIHtcbiAgICAgICAgZmllbGRzLnB1c2godGhpcy5uYW1lRmllbGQpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGxldCBhcmdzO1xuICAgIGlmICghdGhpcy51c2VQYXJhbUFzQXJnKSB7XG4gICAgICBhcmdzID0geyBzb3J0OiBbeyBmaWVsZDogZmllbGRzLmluY2x1ZGVzKCduYW1lJykgPyAnbmFtZScgOiBmaWVsZHNbMF0sIG9yZGVyOiBTb3J0T3JkZXJFbnVtLkFTQyB9XSB9O1xuICAgIH0gZWxzZSB7XG4gICAgICBhcmdzID0ge1xuICAgICAgICBpZDogdGhpcy5wYXJhbSxcbiAgICAgICAgc29ydDogW3sgZmllbGQ6IGZpZWxkcy5pbmNsdWRlcygnbmFtZScpID8gJ25hbWUnIDogZmllbGRzWzBdLCBvcmRlcjogU29ydE9yZGVyRW51bS5BU0MgfV0sXG4gICAgICB9O1xuICAgIH1cblxuICAgIHRoaXMuZ3JhcGhRTFNlcnZpY2VcbiAgICAgIC5ncmFwaFFsKHRoaXMubWV0aG9kLCB7XG4gICAgICAgIGZpZWxkcyxcbiAgICAgICAgYXJndW1lbnRzOiBhcmdzLFxuICAgICAgICB0eXBlOiBHcmFwaFFMUmVxdWVzdFR5cGUuUVVFUlksXG4gICAgICB9KVxuICAgICAgLnN1YnNjcmliZShhc3luYyAocmVzdWx0KSA9PiB7XG4gICAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgICB0aGlzLm9iamVjdHMgPSByZXN1bHQ7XG4gICAgICAgICAgdGhpcy5zZXRPYmplY3RzQXNPcHRpb25zKCk7XG5cbiAgICAgICAgICBpZiAoIXRoaXMuY3VycmVudFZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLnNldFZhbHVlKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJZiB0aGUgY3VycmVudCB2YWx1ZSBpcyBub3QgdmFsaWQsIHNldCB0aGUgY29udHJvbCB0byBhbiBpbnZhbGlkIHN0YXRlXG4gICAqL1xuICBjaGVja1ZhbGlkUmVmZXJlbmNlKCkge1xuICAgIGlmICghdGhpcy5jdXJyZW50VmFsdWUpIHtcbiAgICAgIHRoaXMuY29udHJvbC5tYXJrQXNUb3VjaGVkKCk7XG4gICAgICB0aGlzLmNvbnRyb2wubWFya0FzRGlydHkoKTtcbiAgICAgIHRoaXMuY29udHJvbC5zZXRWYWx1ZSgnJyk7XG4gICAgICB0aGlzLmNvbnRyb2wuc2V0RXJyb3JzKG51bGwpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGZvdW5kRWxlbWVudCA9IHRoaXMub2JqZWN0cy5maW5kKChlKSA9PiBlW3RoaXMubmFtZUZpZWxkXSA9PT0gdGhpcy5jdXJyZW50VmFsdWUpO1xuICAgIGlmICghZm91bmRFbGVtZW50KSB7XG4gICAgICB0aGlzLmNvbnRyb2wuc2V0VmFsdWUobnVsbCk7XG4gICAgICB0aGlzLmNvbnRyb2wubWFya0FzVG91Y2hlZCgpO1xuICAgICAgdGhpcy5jb250cm9sLm1hcmtBc0RpcnR5KCk7XG4gICAgICB0aGlzLmNvbnRyb2wuc2V0RXJyb3JzKHsgaW52YWxpZFJlZmVyZW5jZTogdHJ1ZSB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jb250cm9sLnNldEVycm9ycyhudWxsKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogSWYgdGhlIHVzZXIgcHJlc3NlcyB0aGUgZW50ZXIga2V5LCBtYXJrIHRoZSBjb250cm9sIGFzIHRvdWNoZWRcbiAgICovXG4gIGVudGVyS2V5KGV2ZW50KSB7XG4gICAgdGhpcy5zZWxlY3RlZEVsZW1lbnQgPSBldmVudC50YXJnZXQ7XG4gICAgdGhpcy5jb250cm9sLm1hcmtBc1RvdWNoZWQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJZiB0aGUgY29udHJvbCBoYXMgYSB2YWx1ZSBhbmQgdGhlIG9iamVjdHMgYXJyYXkgaXMgbm90IGVtcHR5LCB0aGVuIGZpbmQgdGhlIG9iamVjdCBpbiB0aGUgYXJyYXkgdGhhdCBoYXMgdGhlIHNhbWVcbiAgICogdmFsdWUgYXMgdGhlIGNvbnRyb2wncyB2YWx1ZSBhbmQgc2V0IHRoZSBjdXJyZW50VmFsdWUgdG8gdGhlIHRleHRGaWVsZCBvZiB0aGF0IG9iamVjdC4gSWYgdGhlIGNvbnRyb2wgaGFzIGEgdmFsdWUgYnV0XG4gICAqIHRoZSBvYmplY3RzIGFycmF5IGlzIGVtcHR5LCB0aGVuIHNldCB0aGUgY3VycmVudFZhbHVlIHRvIHRoZSBjb250cm9sJ3MgdmFsdWVcbiAgICovXG4gIHNldFZhbHVlKCkge1xuICAgIGlmICh0aGlzLmNvbnRyb2w/LnZhbHVlICYmIHRoaXMub2JqZWN0cz8ubGVuZ3RoID4gMCkge1xuICAgICAgaWYgKHRoaXMuY29udHJvbD8udmFsdWU/LmlkKSB7XG4gICAgICAgIHRoaXMuY29udHJvbC5zZXRWYWx1ZSh0aGlzLmNvbnRyb2wudmFsdWUuaWQpO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBmb3VuZEVsZW1lbnQgPSB0aGlzLm9iamVjdHMuZmluZCgoZSkgPT4gZVt0aGlzLnZhbHVlRmllbGRdID09PSB0aGlzLmNvbnRyb2wudmFsdWUpO1xuICAgICAgaWYgKGZvdW5kRWxlbWVudCkge1xuICAgICAgICB0aGlzLmN1cnJlbnRWYWx1ZSA9IHRoaXMucHJlcGFyZU5hbWVGaWVsZChmb3VuZEVsZW1lbnQpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBJdCBzZXRzIHRoZSB2YWx1ZSBvZiB0aGUgY29udHJvbCB0byB0aGUgaWQgb2YgdGhlIHNlbGVjdGVkIG9wdGlvblxuICAgKi9cbiAgc2V0KGlkOiBzdHJpbmcpIHtcbiAgICB0aGlzLmNvbnRyb2wubWFya0FzVG91Y2hlZCgpO1xuICAgIHRoaXMuY29udHJvbC5tYXJrQXNEaXJ0eSgpO1xuICAgIHRoaXMuY29udHJvbC5zZXRWYWx1ZShpZCk7XG4gICAgdGhpcy5zZXRWYWx1ZSgpO1xuICAgIHRoaXMuc2VsZWN0ZWRFbGVtZW50ID0gbnVsbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBGaWx0ZXIgb3B0aW9ucyBmb3IgZHJvcCBkb3duXG4gICAqL1xuICBmaWx0ZXJPcHRpb25zKCk6IGFueVtdIHtcbiAgICByZXR1cm4gdGhpcy5vYmplY3RzXG4gICAgICA/IHRoaXMub2JqZWN0cy5maWx0ZXIoXG4gICAgICAgICAgKGUpID0+ICghdGhpcy5jdXJyZW50VmFsdWUgfHwgdGhpcy5jaGVja0Zvck5hbWVGaWVsZHMoZSkpICYmICF0aGlzLmNvbnRyb2w/LnZhbHVlPy5pbmNsdWRlcyhlPy52YWx1ZSlcbiAgICAgICAgKVxuICAgICAgOiBbXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJdCB0YWtlcyBhbiBhcnJheSBvZiBvYmplY3RzIGFuZCByZXR1cm5zIGFuIGFycmF5IG9mIG9iamVjdHMgd2l0aCB0aGUgdGV4dCBhbmQgdmFsdWUgZmllbGRzIHNwZWNpZmllZFxuICAgKi9cbiAgc2V0T2JqZWN0c0FzT3B0aW9ucygpIHtcbiAgICB0aGlzLm9wdGlvbnNGb3JUYWdJbnB1dCA9IHRoaXMub2JqZWN0cy5tYXAoKGUpID0+IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHRleHQ6IHRoaXMucHJlcGFyZU5hbWVGaWVsZChlKSxcbiAgICAgICAgdmFsdWU6IGVbdGhpcy52YWx1ZUZpZWxkXSxcbiAgICAgIH07XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogU2hvdyBkcm9wZG93biBmb2N1c1xuICAgKi9cbiAgb25Gb2N1cyhldmVudD8pIHtcbiAgICBpZiAoZXZlbnQpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRFbGVtZW50ID0gZXZlbnQudGFyZ2V0O1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmNoZWNrVmFsaWRSZWZlcmVuY2UoKTtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aGlzLnNlbGVjdGVkRWxlbWVudCA9IG51bGw7XG4gICAgICB9LCAyNTApO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBQcmVwYXJlIHN0cmluZyBmdW5jdGlvbiBpZiBuYW1lIGZpZWxkcyBpcyBhbiBhcnJheVxuICAgKi9cbiAgcHJlcGFyZU5hbWVGaWVsZChvYmplY3Q6IGFueSkge1xuICAgIGxldCByZXN1bHQ7XG5cbiAgICBpZiAoQXJyYXkuaXNBcnJheSh0aGlzLm5hbWVGaWVsZCkpIHtcbiAgICAgIGZvciAoY29uc3QgZmllbGQgb2YgdGhpcy5uYW1lRmllbGQpIHtcbiAgICAgICAgaWYgKCFyZXN1bHQpIHtcbiAgICAgICAgICByZXN1bHQgPSBvYmplY3RbZmllbGRdO1xuICAgICAgICB9IGVsc2UgaWYgKG9iamVjdFtmaWVsZF0pIHtcbiAgICAgICAgICByZXN1bHQgPSByZXN1bHQgKyAnICcgKyBvYmplY3RbZmllbGRdO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHJlc3VsdCA9IG9iamVjdFt0aGlzLm5hbWVGaWVsZF07XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVjayBmdW5jdGlvbiBpZiBuYW1lIGZpZWxkcyBpcyBhbiBhcnJheVxuICAgKi9cbiAgY2hlY2tGb3JOYW1lRmllbGRzKG9iamVjdDogYW55KSB7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkodGhpcy5uYW1lRmllbGQpKSB7XG4gICAgICBsZXQgcmVzdWx0ID0gZmFsc2U7XG5cbiAgICAgIGZvciAoY29uc3QgZmllbGQgb2YgdGhpcy5uYW1lRmllbGQpIHtcbiAgICAgICAgY29uc3QgY2hlY2sgPSBvYmplY3RbZmllbGRdLmluY2x1ZGVzKHRoaXMuY3VycmVudFZhbHVlKTtcbiAgICAgICAgaWYgKGNoZWNrKSB7XG4gICAgICAgICAgcmVzdWx0ID0gY2hlY2s7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIG9iamVjdFt0aGlzLm5hbWVGaWVsZF0/LmluY2x1ZGVzKHRoaXMuY3VycmVudFZhbHVlKTtcbiAgICB9XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCIhaXNMaXN0XCI+XG4gIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwIG1iLTNcIj5cbiAgICA8bGFiZWwgW2Zvcl09XCJpZFwiIGNsYXNzPVwiZm9ybS1sYWJlbFwiIFtuZ0NsYXNzXT1cInsgcmVxdWlyZWQ6IHJlcXVpcmVkIH1cIiAqbmdJZj1cImxhYmVsXCI+e3sgbGFiZWwgfX08L2xhYmVsPlxuXG4gICAgPGRpdiBjbGFzcz1cInBvc2l0aW9uLXJlbGF0aXZlXCIgKm5nSWY9XCJzZWFyY2hcIj5cbiAgICAgIDxpbnB1dCBbZm9ybUNvbnRyb2xdPVwiY29udHJvbFwiIGhpZGRlbiAvPlxuICAgICAgPGlucHV0XG4gICAgICAgIFtpZF09XCJpZFwiXG4gICAgICAgIFtuYW1lXT1cIm5hbWVcIlxuICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXG4gICAgICAgIFsobmdNb2RlbCldPVwiY3VycmVudFZhbHVlXCJcbiAgICAgICAgW25nQ2xhc3NdPVwieyAnaXMtaW52YWxpZCc6IGNvbnRyb2w/LmludmFsaWQgJiYgY29udHJvbD8udG91Y2hlZCB9XCJcbiAgICAgICAgKGZvY3VzKT1cIm9uRm9jdXMoJGV2ZW50KVwiXG4gICAgICAgIChibHVyKT1cIm9uRm9jdXMoKVwiXG4gICAgICAgIFtyZXF1aXJlZF09XCJyZXF1aXJlZFwiXG4gICAgICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gICAgICAgIFthdXRvY29tcGxldGVdPVwiYXV0b2NvbXBsZXRlID8/IG51bGxcIlxuICAgICAgICBbdGFiSW5kZXhdPVwidGFiSW5kZXggPz8gbnVsbFwiXG4gICAgICAgIChrZXl1cCk9XCJlbnRlcktleSgkZXZlbnQpXCJcbiAgICAgIC8+XG4gICAgICA8ZGl2IGNsYXNzPVwib3B0aW9uc1wiICpuZ0lmPVwib2JqZWN0cyAmJiBzZWxlY3RlZEVsZW1lbnRcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm9wdGlvbi1pdGVtXCIgKm5nRm9yPVwibGV0IG9iamVjdCBvZiBmaWx0ZXJPcHRpb25zKClcIiAoY2xpY2spPVwic2V0KG9iamVjdFt2YWx1ZUZpZWxkXSlcIj5cbiAgICAgICAgICB7eyBwcmVwYXJlTmFtZUZpZWxkKG9iamVjdCkgfX1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgKm5nSWY9XCIhc2VhcmNoXCI+XG4gICAgICA8c2VsZWN0XG4gICAgICAgIFtpZF09XCJpZFwiXG4gICAgICAgIFtuYW1lXT1cIm5hbWVcIlxuICAgICAgICBjbGFzcz1cImZvcm0tc2VsZWN0XCJcbiAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJwbGFjZWhvbGRlclwiXG4gICAgICAgIFtmb3JtQ29udHJvbF09XCJjb250cm9sXCJcbiAgICAgICAgW3JlcXVpcmVkXT1cInJlcXVpcmVkXCJcbiAgICAgICAgW3RhYkluZGV4XT1cInRhYkluZGV4ID8/IG51bGxcIlxuICAgICAgICBbbmdDbGFzc109XCJ7ICdpcy1pbnZhbGlkJzogY29udHJvbD8uaW52YWxpZCAmJiBjb250cm9sPy50b3VjaGVkIH1cIlxuICAgICAgPlxuICAgICAgICA8b3B0aW9uIFtuZ1ZhbHVlXT1cIm51bGxcIiBzZWxlY3RlZD57eyBwbGFjZWhvbGRlciB9fTwvb3B0aW9uPlxuICAgICAgICA8b3B0aW9uICpuZ0Zvcj1cImxldCBvYmplY3Qgb2Ygb2JqZWN0c1wiIFtuZ1ZhbHVlXT1cIm9iamVjdFt2YWx1ZUZpZWxkXVwiPlxuICAgICAgICAgIHt7IHByZXBhcmVOYW1lRmllbGQob2JqZWN0KSB9fVxuICAgICAgICA8L29wdGlvbj5cbiAgICAgIDwvc2VsZWN0PlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJkLWJsb2NrIGludmFsaWQtZmVlZGJhY2sgbS0yXCJcbiAgICAgICpuZ0lmPVwiY29udHJvbD8uaW52YWxpZCAmJiAoY29udHJvbD8uZGlydHkgfHwgY29udHJvbD8udG91Y2hlZCkgJiYgIXNlbGVjdGVkRWxlbWVudFwiXG4gICAgPlxuICAgICAgPGRpdiAqbmdJZj1cImNvbnRyb2w/LmVycm9ycz8uWydyZXF1aXJlZCddXCI+RGllc2VzIEZlbGQgaXN0IGVpbiBQZmxpY2h0ZmVsZC48L2Rpdj5cbiAgICAgIDxkaXYgKm5nSWY9XCJjb250cm9sPy5lcnJvcnM/LlsnaW52YWxpZFJlZmVyZW5jZSddICYmIGN1cnJlbnRWYWx1ZVwiPlxuICAgICAgICB7eyBjdXJyZW50VmFsdWUgfX0gaXN0IGtlaW4gZ8O8bHRpZ2VyIFdlcnQgZsO8ciB7eyBsYWJlbCB9fS5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiAqbmdJZj1cImNvbnRyb2w/LmVycm9ycz8uWydtaW5sZW5ndGgnXVwiPlxuICAgICAgICBEaWUgTWluZGVzdGzDpG5nZSBmw7xyIGRpZXNlcyBGZWxkIGJldHLDpGd0XG4gICAgICAgIHt7Y29udHJvbC5lcnJvcnM/LlsnbWlubGVuZ3RoJ10/LnJlcXVpcmVkTGVuZ3RofX0gWmVpY2hlbi5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiAqbmdJZj1cImNvbnRyb2w/LmVycm9ycz8uWydtYXhsZW5ndGgnXVwiPlxuICAgICAgICBEaWUgbWF4aW1hbGUgTMOkbmdlIGbDvHIgZGllc2VzIEZlbGQgYmV0csOkZ3RcbiAgICAgICAge3tjb250cm9sLmVycm9ycz8uWydtYXhsZW5ndGgnXT8ucmVxdWlyZWRMZW5ndGh9fSBaZWljaGVuLlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2ICpuZ0lmPVwiY29udHJvbD8uZXJyb3JzPy5bJ2VtYWlsJ11cIj5CaXR0ZSBlaW5lIGfDvGx0aWdlIEUtTWFpbCBBZHJlc3NlIGFuZ2ViZW4uPC9kaXY+XG4gICAgICA8ZGl2ICpuZ0lmPVwiY29udHJvbD8uZXJyb3JzPy5bJ21hdGNoaW5nJ11cIj5EaWUgUGFzc3fDtnJ0ZXIgbcO8c3NlbiDDvGJlcmVpbiBzdGltbWVuLjwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvbmctY29udGFpbmVyPlxuXG48bmctY29udGFpbmVyICpuZ0lmPVwiaXNMaXN0XCI+XG4gIDxiYXNlLXRhZ3NcbiAgICBbaWRdPVwiaWRcIlxuICAgIFtsYWJlbF09XCJsYWJlbFwiXG4gICAgW25hbWVdPVwibmFtZVwiXG4gICAgW2NvbnRyb2xdPVwiY29udHJvbFwiXG4gICAgW3JlcXVpcmVkXT1cInJlcXVpcmVkXCJcbiAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxuICAgIFtjdXN0b21dPVwiZmFsc2VcIlxuICAgIFtvcHRpb25zXT1cIm9wdGlvbnNGb3JUYWdJbnB1dFwiXG4gID48L2Jhc2UtdGFncz5cbjwvbmctY29udGFpbmVyPlxuIl19
|
|
244
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVmZW5jZS1pbnB1dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1iYXNlL2Jhc2UtY29tcG9uZW50cy9jb21wb25lbnRzL3JlZmVuY2UtaW5wdXQvcmVmZW5jZS1pbnB1dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1iYXNlL2Jhc2UtY29tcG9uZW50cy9jb21wb25lbnRzL3JlZmVuY2UtaW5wdXQvcmVmZW5jZS1pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFDcEUsT0FBTyxFQUFFLGtCQUFrQixFQUFrQixhQUFhLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMvRixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7QUFPcEMsTUFBTSxPQUFPLHFCQUFxQjtJQXVCaEMsWUFBb0IsY0FBOEI7UUFBOUIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBbkJ6QyxXQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ2YsV0FBTSxHQUFHLElBQUksQ0FBQztRQUNkLGtCQUFhLEdBQUcsS0FBSyxDQUFDO1FBRXRCLGdCQUFXLEdBQVksRUFBRSxDQUFDO1FBSTFCLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDakIsV0FBTSxHQUFHLE1BQU0sQ0FBQztRQUNoQixXQUFNLEdBQUcsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDeEIsZUFBVSxHQUFHLElBQUksQ0FBQztRQUNsQixjQUFTLEdBQXNCLE1BQU0sQ0FBQztRQUMvQyxZQUFPLEdBQVUsRUFBRSxDQUFDO1FBRXBCLHVCQUFrQixHQUFHLEVBQUUsQ0FBQztRQUV4QixpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7SUFFbUIsQ0FBQztJQUV0RCxL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LEVBQUU7Z0JBQ2xDLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO2dCQUN4RCxJQUFJLEtBQUssRUFBRTtvQkFDVCxNQUFNLEdBQUcsS0FBSyxDQUFDO2lCQUNoQjthQUNGO1lBRUQsT0FBTyxNQUFNLENBQUM7U0FDZjthQUFNO1lBQ0wsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7U0FDNUQ7SUFDSCxDQUFDOztrSEEvTlUscUJBQXFCO3NHQUFyQixxQkFBcUIsa1pDVGxDLHU5RkErRUE7MkZEdEVhLHFCQUFxQjtrQkFMakMsU0FBUzsrQkFDRSxvQkFBb0I7cUdBS3JCLEVBQUU7c0JBQVYsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgR3JhcGhRTFJlcXVlc3RUeXBlLCBHcmFwaFFMU2VydmljZSwgU29ydE9yZGVyRW51bSB9IGZyb20gJ0BsZW5uZS50ZWNoL25nLWJhc2Uvc2hhcmVkJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdiYXNlLXJlZmVuY2UtaW5wdXQnLFxuICB0ZW1wbGF0ZVVybDogJy4vcmVmZW5jZS1pbnB1dC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3JlZmVuY2UtaW5wdXQuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgUmVmZW5jZUlucHV0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBASW5wdXQoKSBpZDogc3RyaW5nO1xuICBASW5wdXQoKSBuYW1lOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGxhYmVsPzogc3RyaW5nO1xuICBASW5wdXQoKSBpc0xpc3QgPSBmYWxzZTtcbiAgQElucHV0KCkgc2VhcmNoID0gdHJ1ZTtcbiAgQElucHV0KCkgdXNlUGFyYW1Bc0FyZyA9IGZhbHNlO1xuICBASW5wdXQoKSBwYXJhbTogc3RyaW5nO1xuICBASW5wdXQoKSBwbGFjZWhvbGRlcj86IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSBhdXRvY29tcGxldGU/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIHRhYkluZGV4PzogbnVtYmVyO1xuICBASW5wdXQoKSBjb250cm9sOiBhbnk7XG4gIEBJbnB1dCgpIHJlcXVpcmVkID0gZmFsc2U7XG4gIEBJbnB1dCgpIG1ldGhvZCA9ICdmaW5kJztcbiAgQElucHV0KCkgZmllbGRzID0gWydpZCcsICduYW1lJ107XG4gIEBJbnB1dCgpIHZhbHVlRmllbGQgPSAnaWQnO1xuICBASW5wdXQoKSBuYW1lRmllbGQ6IHN0cmluZ1tdIHwgc3RyaW5nID0gJ25hbWUnO1xuICBvYmplY3RzOiBhbnlbXSA9IFtdO1xuICBjdXJyZW50VmFsdWU6IGFueTtcbiAgb3B0aW9uc0ZvclRhZ0lucHV0ID0gW107XG4gIHNlbGVjdGVkRWxlbWVudDogSFRNTEVsZW1lbnQ7XG4gIHN1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGdyYXBoUUxTZXJ2aWNlOiBHcmFwaFFMU2VydmljZSkge31cblxuICBhc3luYyBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmdldFJlZmVyZW5jZXMoKTtcblxuICAgIHRoaXMuc3Vic2NyaXB0aW9uLmFkZChcbiAgICAgIHRoaXMuY29udHJvbC52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgaWYgKCF0aGlzLmN1cnJlbnRWYWx1ZSkge1xuICAgICAgICAgIHRoaXMuc2V0VmFsdWUoKTtcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJdCBnZXRzIHRoZSByZWZlcmVuY2VzIGZyb20gdGhlIEdyYXBoUUwgc2VydmVyIGFuZCBzZXRzIHRoZSB2YWx1ZSBvZiB0aGUgc2VsZWN0XG4gICAqL1xuICBnZXRSZWZlcmVuY2VzKCkge1xuICAgIGNvbnN0IGZpZWxkcyA9IFsuLi50aGlzLmZpZWxkc107XG5cbiAgICBpZiAoQXJyYXkuaXNBcnJheSh0aGlzLm5hbWVGaWVsZCkpIHtcbiAgICAgIGZvciAoY29uc3QgZmllbGQgb2YgdGhpcy5uYW1lRmllbGQpIHtcbiAgICAgICAgaWYgKCFmaWVsZHMuaW5jbHVkZXMoZmllbGQpKSB7XG4gICAgICAgICAgZmllbGRzLnB1c2goZmllbGQpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICghZmllbGRzLmluY2x1ZGVzKHRoaXMubmFtZUZpZWxkKSkge1xuICAgICAgICBmaWVsZHMucHVzaCh0aGlzLm5hbWVGaWVsZCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgbGV0IGFyZ3M7XG4gICAgaWYgKCF0aGlzLnVzZVBhcmFtQXNBcmcpIHtcbiAgICAgIGFyZ3MgPSB7IHNvcnQ6IFt7IGZpZWxkOiBmaWVsZHMuaW5jbHVkZXMoJ25hbWUnKSA/ICduYW1lJyA6IGZpZWxkc1swXSwgb3JkZXI6IFNvcnRPcmRlckVudW0uQVNDIH1dIH07XG4gICAgfSBlbHNlIHtcbiAgICAgIGFyZ3MgPSB7XG4gICAgICAgIGlkOiB0aGlzLnBhcmFtLFxuICAgICAgICBzb3J0OiBbeyBmaWVsZDogZmllbGRzLmluY2x1ZGVzKCduYW1lJykgPyAnbmFtZScgOiBmaWVsZHNbMF0sIG9yZGVyOiBTb3J0T3JkZXJFbnVtLkFTQyB9XSxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgdGhpcy5ncmFwaFFMU2VydmljZVxuICAgICAgLmdyYXBoUWwodGhpcy5tZXRob2QsIHtcbiAgICAgICAgZmllbGRzLFxuICAgICAgICBhcmd1bWVudHM6IGFyZ3MsXG4gICAgICAgIHR5cGU6IEdyYXBoUUxSZXF1ZXN0VHlwZS5RVUVSWSxcbiAgICAgIH0pXG4gICAgICAuc3Vic2NyaWJlKGFzeW5jIChyZXN1bHQpID0+IHtcbiAgICAgICAgaWYgKHJlc3VsdCkge1xuICAgICAgICAgIHRoaXMub2JqZWN0cyA9IHJlc3VsdDtcbiAgICAgICAgICB0aGlzLnNldE9iamVjdHNBc09wdGlvbnMoKTtcblxuICAgICAgICAgIGlmICghdGhpcy5jdXJyZW50VmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuc2V0VmFsdWUoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIElmIHRoZSBjdXJyZW50IHZhbHVlIGlzIG5vdCB2YWxpZCwgc2V0IHRoZSBjb250cm9sIHRvIGFuIGludmFsaWQgc3RhdGVcbiAgICovXG4gIGNoZWNrVmFsaWRSZWZlcmVuY2UoKSB7XG4gICAgaWYgKCF0aGlzLmN1cnJlbnRWYWx1ZSkge1xuICAgICAgdGhpcy5jb250cm9sLm1hcmtBc1RvdWNoZWQoKTtcbiAgICAgIHRoaXMuY29udHJvbC5tYXJrQXNEaXJ0eSgpO1xuICAgICAgdGhpcy5jb250cm9sLnNldFZhbHVlKCcnKTtcbiAgICAgIHRoaXMuY29udHJvbC5zZXRFcnJvcnMobnVsbCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZm91bmRFbGVtZW50ID0gdGhpcy5vYmplY3RzLmZpbmQoKGUpID0+IHRoaXMuY2hlY2tGb3JOYW1lRmllbGRzKGUpKTtcbiAgICBpZiAoIWZvdW5kRWxlbWVudCkge1xuICAgICAgdGhpcy5jb250cm9sLnNldFZhbHVlKG51bGwpO1xuICAgICAgdGhpcy5jb250cm9sLm1hcmtBc1RvdWNoZWQoKTtcbiAgICAgIHRoaXMuY29udHJvbC5tYXJrQXNEaXJ0eSgpO1xuICAgICAgdGhpcy5jb250cm9sLnNldEVycm9ycyh7IGludmFsaWRSZWZlcmVuY2U6IHRydWUgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY29udHJvbC5zZXRFcnJvcnMobnVsbCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIElmIHRoZSB1c2VyIHByZXNzZXMgdGhlIGVudGVyIGtleSwgbWFyayB0aGUgY29udHJvbCBhcyB0b3VjaGVkXG4gICAqL1xuICBlbnRlcktleShldmVudCkge1xuICAgIHRoaXMuc2VsZWN0ZWRFbGVtZW50ID0gZXZlbnQudGFyZ2V0O1xuICAgIHRoaXMuY29udHJvbC5tYXJrQXNUb3VjaGVkKCk7XG4gIH1cblxuICAvKipcbiAgICogSWYgdGhlIGNvbnRyb2wgaGFzIGEgdmFsdWUgYW5kIHRoZSBvYmplY3RzIGFycmF5IGlzIG5vdCBlbXB0eSwgdGhlbiBmaW5kIHRoZSBvYmplY3QgaW4gdGhlIGFycmF5IHRoYXQgaGFzIHRoZSBzYW1lXG4gICAqIHZhbHVlIGFzIHRoZSBjb250cm9sJ3MgdmFsdWUgYW5kIHNldCB0aGUgY3VycmVudFZhbHVlIHRvIHRoZSB0ZXh0RmllbGQgb2YgdGhhdCBvYmplY3QuIElmIHRoZSBjb250cm9sIGhhcyBhIHZhbHVlIGJ1dFxuICAgKiB0aGUgb2JqZWN0cyBhcnJheSBpcyBlbXB0eSwgdGhlbiBzZXQgdGhlIGN1cnJlbnRWYWx1ZSB0byB0aGUgY29udHJvbCdzIHZhbHVlXG4gICAqL1xuICBzZXRWYWx1ZSgpIHtcbiAgICBpZiAodGhpcy5jb250cm9sPy52YWx1ZSAmJiB0aGlzLm9iamVjdHM/Lmxlbmd0aCA+IDApIHtcbiAgICAgIGlmICh0aGlzLmNvbnRyb2w/LnZhbHVlPy5pZCkge1xuICAgICAgICB0aGlzLmNvbnRyb2wuc2V0VmFsdWUodGhpcy5jb250cm9sLnZhbHVlLmlkKTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgZm91bmRFbGVtZW50ID0gdGhpcy5vYmplY3RzLmZpbmQoKGUpID0+IGVbdGhpcy52YWx1ZUZpZWxkXSA9PT0gdGhpcy5jb250cm9sLnZhbHVlKTtcbiAgICAgIGlmIChmb3VuZEVsZW1lbnQpIHtcbiAgICAgICAgdGhpcy5jdXJyZW50VmFsdWUgPSB0aGlzLnByZXBhcmVOYW1lRmllbGQoZm91bmRFbGVtZW50KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogSXQgc2V0cyB0aGUgdmFsdWUgb2YgdGhlIGNvbnRyb2wgdG8gdGhlIGlkIG9mIHRoZSBzZWxlY3RlZCBvcHRpb25cbiAgICovXG4gIHNldChpZDogc3RyaW5nKSB7XG4gICAgdGhpcy5jb250cm9sLm1hcmtBc1RvdWNoZWQoKTtcbiAgICB0aGlzLmNvbnRyb2wubWFya0FzRGlydHkoKTtcbiAgICB0aGlzLmNvbnRyb2wuc2V0VmFsdWUoaWQpO1xuICAgIHRoaXMuc2V0VmFsdWUoKTtcbiAgICB0aGlzLnNlbGVjdGVkRWxlbWVudCA9IG51bGw7XG4gIH1cblxuICAvKipcbiAgICogRmlsdGVyIG9wdGlvbnMgZm9yIGRyb3AgZG93blxuICAgKi9cbiAgZmlsdGVyT3B0aW9ucygpOiBhbnlbXSB7XG4gICAgcmV0dXJuIHRoaXMub2JqZWN0c1xuICAgICAgPyB0aGlzLm9iamVjdHMuZmlsdGVyKFxuICAgICAgICAgIChlKSA9PiAoIXRoaXMuY3VycmVudFZhbHVlIHx8IHRoaXMuY2hlY2tGb3JOYW1lRmllbGRzKGUpKSAmJiAhdGhpcy5jb250cm9sPy52YWx1ZT8uaW5jbHVkZXMoZT8udmFsdWUpXG4gICAgICAgIClcbiAgICAgIDogW107XG4gIH1cblxuICAvKipcbiAgICogSXQgdGFrZXMgYW4gYXJyYXkgb2Ygb2JqZWN0cyBhbmQgcmV0dXJucyBhbiBhcnJheSBvZiBvYmplY3RzIHdpdGggdGhlIHRleHQgYW5kIHZhbHVlIGZpZWxkcyBzcGVjaWZpZWRcbiAgICovXG4gIHNldE9iamVjdHNBc09wdGlvbnMoKSB7XG4gICAgdGhpcy5vcHRpb25zRm9yVGFnSW5wdXQgPSB0aGlzLm9iamVjdHMubWFwKChlKSA9PiB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICB0ZXh0OiB0aGlzLnByZXBhcmVOYW1lRmllbGQoZSksXG4gICAgICAgIHZhbHVlOiBlW3RoaXMudmFsdWVGaWVsZF0sXG4gICAgICB9O1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFNob3cgZHJvcGRvd24gZm9jdXNcbiAgICovXG4gIG9uRm9jdXMoZXZlbnQ/KSB7XG4gICAgaWYgKGV2ZW50KSB7XG4gICAgICB0aGlzLnNlbGVjdGVkRWxlbWVudCA9IGV2ZW50LnRhcmdldDtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jaGVja1ZhbGlkUmVmZXJlbmNlKCk7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZEVsZW1lbnQgPSBudWxsO1xuICAgICAgfSwgMjUwKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUHJlcGFyZSBzdHJpbmcgZnVuY3Rpb24gaWYgbmFtZSBmaWVsZHMgaXMgYW4gYXJyYXlcbiAgICovXG4gIHByZXBhcmVOYW1lRmllbGQob2JqZWN0OiBhbnkpIHtcbiAgICBsZXQgcmVzdWx0O1xuXG4gICAgaWYgKEFycmF5LmlzQXJyYXkodGhpcy5uYW1lRmllbGQpKSB7XG4gICAgICBmb3IgKGNvbnN0IGZpZWxkIG9mIHRoaXMubmFtZUZpZWxkKSB7XG4gICAgICAgIGlmICghcmVzdWx0KSB7XG4gICAgICAgICAgcmVzdWx0ID0gb2JqZWN0W2ZpZWxkXTtcbiAgICAgICAgfSBlbHNlIGlmIChvYmplY3RbZmllbGRdKSB7XG4gICAgICAgICAgcmVzdWx0ID0gcmVzdWx0ICsgJyAnICsgb2JqZWN0W2ZpZWxkXTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICByZXN1bHQgPSBvYmplY3RbdGhpcy5uYW1lRmllbGRdO1xuICAgIH1cblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2sgZnVuY3Rpb24gaWYgbmFtZSBmaWVsZHMgaXMgYW4gYXJyYXlcbiAgICovXG4gIGNoZWNrRm9yTmFtZUZpZWxkcyhvYmplY3Q6IGFueSkge1xuICAgIGlmIChBcnJheS5pc0FycmF5KHRoaXMubmFtZUZpZWxkKSkge1xuICAgICAgbGV0IHJlc3VsdCA9IGZhbHNlO1xuXG4gICAgICBmb3IgKGNvbnN0IGZpZWxkIG9mIHRoaXMubmFtZUZpZWxkKSB7XG4gICAgICAgIGNvbnN0IGNoZWNrID0gb2JqZWN0W2ZpZWxkXS5pbmNsdWRlcyh0aGlzLmN1cnJlbnRWYWx1ZSk7XG4gICAgICAgIGlmIChjaGVjaykge1xuICAgICAgICAgIHJlc3VsdCA9IGNoZWNrO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBvYmplY3RbdGhpcy5uYW1lRmllbGRdPy5pbmNsdWRlcyh0aGlzLmN1cnJlbnRWYWx1ZSk7XG4gICAgfVxuICB9XG59XG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwiIWlzTGlzdFwiPlxuICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cCBtYi0zXCI+XG4gICAgPGxhYmVsIFtmb3JdPVwiaWRcIiBjbGFzcz1cImZvcm0tbGFiZWxcIiBbbmdDbGFzc109XCJ7IHJlcXVpcmVkOiByZXF1aXJlZCB9XCIgKm5nSWY9XCJsYWJlbFwiPnt7IGxhYmVsIH19PC9sYWJlbD5cblxuICAgIDxkaXYgY2xhc3M9XCJwb3NpdGlvbi1yZWxhdGl2ZVwiICpuZ0lmPVwic2VhcmNoXCI+XG4gICAgICA8aW5wdXQgW2Zvcm1Db250cm9sXT1cImNvbnRyb2xcIiBoaWRkZW4gLz5cbiAgICAgIDxpbnB1dFxuICAgICAgICBbaWRdPVwiaWRcIlxuICAgICAgICBbbmFtZV09XCJuYW1lXCJcbiAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgICBbKG5nTW9kZWwpXT1cImN1cnJlbnRWYWx1ZVwiXG4gICAgICAgIFtuZ0NsYXNzXT1cInsgJ2lzLWludmFsaWQnOiBjb250cm9sPy5pbnZhbGlkICYmIGNvbnRyb2w/LnRvdWNoZWQgfVwiXG4gICAgICAgIChmb2N1cyk9XCJvbkZvY3VzKCRldmVudClcIlxuICAgICAgICAoYmx1cik9XCJvbkZvY3VzKClcIlxuICAgICAgICBbcmVxdWlyZWRdPVwicmVxdWlyZWRcIlxuICAgICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxuICAgICAgICBbYXV0b2NvbXBsZXRlXT1cImF1dG9jb21wbGV0ZSA/PyBudWxsXCJcbiAgICAgICAgW3RhYkluZGV4XT1cInRhYkluZGV4ID8/IG51bGxcIlxuICAgICAgICAoa2V5dXApPVwiZW50ZXJLZXkoJGV2ZW50KVwiXG4gICAgICAvPlxuICAgICAgPGRpdiBjbGFzcz1cIm9wdGlvbnNcIiAqbmdJZj1cIm9iamVjdHMgJiYgc2VsZWN0ZWRFbGVtZW50XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJvcHRpb24taXRlbVwiICpuZ0Zvcj1cImxldCBvYmplY3Qgb2YgZmlsdGVyT3B0aW9ucygpXCIgKGNsaWNrKT1cInNldChvYmplY3RbdmFsdWVGaWVsZF0pXCI+XG4gICAgICAgICAge3sgcHJlcGFyZU5hbWVGaWVsZChvYmplY3QpIH19XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2ICpuZ0lmPVwiIXNlYXJjaFwiPlxuICAgICAgPHNlbGVjdFxuICAgICAgICBbaWRdPVwiaWRcIlxuICAgICAgICBbbmFtZV09XCJuYW1lXCJcbiAgICAgICAgY2xhc3M9XCJmb3JtLXNlbGVjdFwiXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwicGxhY2Vob2xkZXJcIlxuICAgICAgICBbZm9ybUNvbnRyb2xdPVwiY29udHJvbFwiXG4gICAgICAgIFtyZXF1aXJlZF09XCJyZXF1aXJlZFwiXG4gICAgICAgIFt0YWJJbmRleF09XCJ0YWJJbmRleCA/PyBudWxsXCJcbiAgICAgICAgW25nQ2xhc3NdPVwieyAnaXMtaW52YWxpZCc6IGNvbnRyb2w/LmludmFsaWQgJiYgY29udHJvbD8udG91Y2hlZCB9XCJcbiAgICAgID5cbiAgICAgICAgPG9wdGlvbiBbbmdWYWx1ZV09XCJudWxsXCIgc2VsZWN0ZWQ+e3sgcGxhY2Vob2xkZXIgfX08L29wdGlvbj5cbiAgICAgICAgPG9wdGlvbiAqbmdGb3I9XCJsZXQgb2JqZWN0IG9mIG9iamVjdHNcIiBbbmdWYWx1ZV09XCJvYmplY3RbdmFsdWVGaWVsZF1cIj5cbiAgICAgICAgICB7eyBwcmVwYXJlTmFtZUZpZWxkKG9iamVjdCkgfX1cbiAgICAgICAgPC9vcHRpb24+XG4gICAgICA8L3NlbGVjdD5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwiZC1ibG9jayBpbnZhbGlkLWZlZWRiYWNrIG0tMlwiXG4gICAgICAqbmdJZj1cImNvbnRyb2w/LmludmFsaWQgJiYgKGNvbnRyb2w/LmRpcnR5IHx8IGNvbnRyb2w/LnRvdWNoZWQpICYmICFzZWxlY3RlZEVsZW1lbnRcIlxuICAgID5cbiAgICAgIDxkaXYgKm5nSWY9XCJjb250cm9sPy5lcnJvcnM/LlsncmVxdWlyZWQnXVwiPkRpZXNlcyBGZWxkIGlzdCBlaW4gUGZsaWNodGZlbGQuPC9kaXY+XG4gICAgICA8ZGl2ICpuZ0lmPVwiY29udHJvbD8uZXJyb3JzPy5bJ2ludmFsaWRSZWZlcmVuY2UnXSAmJiBjdXJyZW50VmFsdWVcIj5cbiAgICAgICAge3sgY3VycmVudFZhbHVlIH19IGlzdCBrZWluIGfDvGx0aWdlciBXZXJ0IGbDvHIge3sgbGFiZWwgfX0uXG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgKm5nSWY9XCJjb250cm9sPy5lcnJvcnM/LlsnbWlubGVuZ3RoJ11cIj5cbiAgICAgICAgRGllIE1pbmRlc3Rsw6RuZ2UgZsO8ciBkaWVzZXMgRmVsZCBiZXRyw6RndFxuICAgICAgICB7e2NvbnRyb2wuZXJyb3JzPy5bJ21pbmxlbmd0aCddPy5yZXF1aXJlZExlbmd0aH19IFplaWNoZW4uXG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgKm5nSWY9XCJjb250cm9sPy5lcnJvcnM/LlsnbWF4bGVuZ3RoJ11cIj5cbiAgICAgICAgRGllIG1heGltYWxlIEzDpG5nZSBmw7xyIGRpZXNlcyBGZWxkIGJldHLDpGd0XG4gICAgICAgIHt7Y29udHJvbC5lcnJvcnM/LlsnbWF4bGVuZ3RoJ10/LnJlcXVpcmVkTGVuZ3RofX0gWmVpY2hlbi5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiAqbmdJZj1cImNvbnRyb2w/LmVycm9ycz8uWydlbWFpbCddXCI+Qml0dGUgZWluZSBnw7xsdGlnZSBFLU1haWwgQWRyZXNzZSBhbmdlYmVuLjwvZGl2PlxuICAgICAgPGRpdiAqbmdJZj1cImNvbnRyb2w/LmVycm9ycz8uWydtYXRjaGluZyddXCI+RGllIFBhc3N3w7ZydGVyIG3DvHNzZW4gw7xiZXJlaW4gc3RpbW1lbi48L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L25nLWNvbnRhaW5lcj5cblxuPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzTGlzdFwiPlxuICA8YmFzZS10YWdzXG4gICAgW2lkXT1cImlkXCJcbiAgICBbbGFiZWxdPVwibGFiZWxcIlxuICAgIFtuYW1lXT1cIm5hbWVcIlxuICAgIFtjb250cm9sXT1cImNvbnRyb2xcIlxuICAgIFtyZXF1aXJlZF09XCJyZXF1aXJlZFwiXG4gICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgICBbY3VzdG9tXT1cImZhbHNlXCJcbiAgICBbb3B0aW9uc109XCJvcHRpb25zRm9yVGFnSW5wdXRcIlxuICA+PC9iYXNlLXRhZ3M+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
|