imm-element-ui 2.8.3 → 2.8.5
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/esm2022/lib/form/form/form.component.mjs +4 -3
- package/esm2022/lib/form/form-field/field-utils.mjs +5 -2
- package/esm2022/lib/form/form-field/form-field.mjs +1 -1
- package/esm2022/lib/form/form-field/form-type.mjs +10 -2
- package/esm2022/lib/form/form-type/imagepreview.type.mjs +87 -0
- package/esm2022/lib/form/form-type/index.mjs +2 -1
- package/esm2022/lib/page-form/page-form.interface.mjs +2 -1
- package/fesm2022/imm-element-ui.mjs +101 -5
- package/fesm2022/imm-element-ui.mjs.map +1 -1
- package/lib/form/form-field/form-field.d.ts +3 -2
- package/lib/form/form-field/form-type.d.ts +2 -1
- package/lib/form/form-type/imagepreview.type.d.ts +24 -0
- package/lib/form/form-type/index.d.ts +1 -0
- package/package.json +1 -1
|
@@ -12,6 +12,7 @@ import { isObservable, shareReplay } from 'rxjs';
|
|
|
12
12
|
import { ActionService } from '../../service/action.service';
|
|
13
13
|
import * as i0 from "@angular/core";
|
|
14
14
|
import * as i1 from "@angular/common";
|
|
15
|
+
const nonEmptyRequired = (control) => (control.value === false ? null : Validators.required(control));
|
|
15
16
|
export class FormComponent {
|
|
16
17
|
onResize() {
|
|
17
18
|
this.reCalcLabelSize();
|
|
@@ -153,7 +154,7 @@ export class FormComponent {
|
|
|
153
154
|
handleFieldControl(field) {
|
|
154
155
|
const key = field.key || '';
|
|
155
156
|
const isDisplayOnly = !!field.extra?.displayOnly;
|
|
156
|
-
const validators = isDisplayOnly ? null : fieldUtils.props(field)?.required ? (field.validators ? field.validators :
|
|
157
|
+
const validators = isDisplayOnly ? null : fieldUtils.props(field)?.required ? (field.validators ? field.validators : nonEmptyRequired) : null;
|
|
157
158
|
let fieldControl = this.options().form?.get(key);
|
|
158
159
|
if (!fieldControl) {
|
|
159
160
|
fieldControl = new FieldControl(null, validators || undefined);
|
|
@@ -255,7 +256,7 @@ export class FormComponent {
|
|
|
255
256
|
const validators = field.extra?.displayOnly
|
|
256
257
|
? null
|
|
257
258
|
: fieldUtils.props(field)?.required
|
|
258
|
-
? (field?.validators ? field?.validators :
|
|
259
|
+
? (field?.validators ? field?.validators : nonEmptyRequired)
|
|
259
260
|
: null;
|
|
260
261
|
field.fieldControl?.setValidators(validators);
|
|
261
262
|
}
|
|
@@ -393,4 +394,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
393
394
|
type: HostListener,
|
|
394
395
|
args: ['window:resize']
|
|
395
396
|
}] } });
|
|
396
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pbW0tZWxlbWVudC11aS9zcmMvbGliL2Zvcm0vZm9ybS9mb3JtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2ltbS1lbGVtZW50LXVpL3NyYy9saWIvZm9ybS9mb3JtL2Zvcm0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNOLFNBQVMsRUFDVCxNQUFNLEVBQ04sS0FBSyxFQUNMLFFBQVEsRUFDUixZQUFZLEVBSVosTUFBTSxFQUNOLFlBQVksRUFDWixTQUFTLEVBQ1QsTUFBTSxFQUNOLE1BQU0sR0FDTixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsbUJBQW1CLEVBQXNCLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEcsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzNELE9BQU8sRUFBYSxrQkFBa0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDekQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRXZELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFjLFdBQVcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM3RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sOEJBQThCLENBQUM7OztBQTBCN0Qs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QUM7NkdBS2EsZUFBZTtzQkFBaEQsWUFBWTt1QkFBQyxrQkFBa0I7Z0JBOEJoQyxRQUFRO3NCQURQLFlBQVk7dUJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcblx0Q29tcG9uZW50LFxyXG5cdGVmZmVjdCxcclxuXHRpbnB1dCxcclxuXHRjb21wdXRlZCxcclxuXHRWaWV3Q2hpbGRyZW4sXHJcblx0UXVlcnlMaXN0LFxyXG5cdEVsZW1lbnRSZWYsXHJcblx0Q2hhbmdlRGV0ZWN0b3JSZWYsXHJcblx0aW5qZWN0LFxyXG5cdEhvc3RMaXN0ZW5lcixcclxuXHR1bnRyYWNrZWQsXG5cdHNpZ25hbCxcblx0b3V0cHV0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEZvcm1Hcm91cCwgVmFsaWRhdG9ycywgUmVhY3RpdmVGb3Jtc01vZHVsZSwgRm9ybVN1Ym1pdHRlZEV2ZW50IH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBGaWVsZENvbnRyb2wgfSBmcm9tICcuLi9mb3JtLWZpZWxkL2ZpZWxkLWNvbnRyb2wnO1xyXG5pbXBvcnQgeyBGb3JtRmllbGQsIEZvcm1GaWVsZENvbXBvbmVudCB9IGZyb20gJy4uL2Zvcm0tZmllbGQvZm9ybS1maWVsZCc7XHJcbmltcG9ydCB7IERhdGVQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgSTE4blNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlL2kxOG4uc2VydmljZSc7XHJcbmltcG9ydCB7IGZpZWxkVXRpbHMgfSBmcm9tICcuLi9mb3JtLWZpZWxkL2ZpZWxkLXV0aWxzJztcclxuaW1wb3J0IHsgVXBzZXJ0IH0gZnJvbSAnLi4vLi4vYW0vYW0uY29tcG9uZW50JztcclxuaW1wb3J0IHsgZ2VuZXJhdGVVbmlxdWVJZCB9IGZyb20gJy4uLy4uL3NoYXJlL3V0aWxzJztcclxuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgaXNPYnNlcnZhYmxlLCBPYnNlcnZhYmxlLCBzaGFyZVJlcGxheSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBBY3Rpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZS9hY3Rpb24uc2VydmljZSc7XHJcbmV4cG9ydCBpbnRlcmZhY2UgRm9ybU9wdGlvbnMge1xyXG5cdGZpZWxkcz86IEZvcm1GaWVsZFtdO1xyXG5cdGZvcm0/OiBGb3JtR3JvdXA7XHJcblx0bWFpbkZpZWxkPzogc3RyaW5nO1xyXG5cdGxhYmVsV2lkdGg/OiBzdHJpbmc7XHJcblx0aW50ZXJhY3RpdmVMYWJlbD86IGJvb2xlYW47XHJcblx0ZXh0cmE/OiBhbnk7XHJcblx0bW9kZWxOYW1lPzogc3RyaW5nO1xyXG5cdHR5cGU/OiBzdHJpbmc7XHJcblx0Zms/OiBzdHJpbmc7XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBFeHRlcm5hbERhdGEge1xyXG5cdGtleT86IHN0cmluZztcclxuXHR2YWx1ZT86IGFueTtcclxuXHRsYWJlbD86IHN0cmluZztcclxufVxyXG5cclxuQENvbXBvbmVudCh7XHJcblx0c2VsZWN0b3I6ICdjdXN0b20tZm9ybScsXHJcblx0c3RhbmRhbG9uZTogdHJ1ZSxcclxuXHRpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBGb3JtRmllbGRDb21wb25lbnRdLFxyXG5cdHByb3ZpZGVyczogW0RhdGVQaXBlXSxcclxuXHR0ZW1wbGF0ZVVybDogJy4vZm9ybS5jb21wb25lbnQuaHRtbCcsXHJcblx0c3R5bGVVcmw6ICcuL2Zvcm0uY29tcG9uZW50LnNjc3MnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRm9ybUNvbXBvbmVudCB7XHJcblx0QFZpZXdDaGlsZHJlbihGb3JtRmllbGRDb21wb25lbnQpIGZpZWxkQ29tcG9uZW50cz86IFF1ZXJ5TGlzdDxGb3JtRmllbGRDb21wb25lbnQ+O1xyXG5cdHJvdXRlcjogUm91dGVyID0gaW5qZWN0KFJvdXRlcik7XHJcblx0aXNOZXc6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHRvcHRpb25zID0gaW5wdXQ8Rm9ybU9wdGlvbnM+KHt9KTtcclxuXHRmaWVsZHMgPSBjb21wdXRlZCgoKSA9PiB7XHJcblx0XHR1bnRyYWNrZWQoKCkgPT4ge1xyXG5cdFx0XHR0aGlzLmluaXRGb3JtKCk7XHJcblx0XHRcdHNldFRpbWVvdXQoKCkgPT4ge1xyXG5cdFx0XHRcdHRoaXMucmVDYWxjTGFiZWxTaXplKCk7XHJcblx0XHRcdH0pO1xyXG5cdFx0fSk7XHJcblx0XHRyZXR1cm4gdGhpcy5vcHRpb25zKCkuZmllbGRzO1xyXG5cdH0pO1xyXG5cclxuXHRpMThuU2VydmljZSA9IGluamVjdChJMThuU2VydmljZSk7XHJcblx0bW9kZWwgPSBpbnB1dDxhbnk+KCk7XG5cdG1vZGVsQ2hhbmdlID0gb3V0cHV0PGFueT4oKTtcblx0dXBzZXJ0ID0gaW5wdXQ8VXBzZXJ0PigpO1xuXHRyYXdNb2RlbDogYW55ID0ge307XHJcblx0Y2hhbmdlZE1vZGVsOiBhbnkgPSB7fTtcclxuXHRmaWVsZExpc3QhOiBGb3JtRmllbGRbXTtcclxuXHRob29rT2JzZXJ2ZXJzOiBGdW5jdGlvbltdID0gW107XHJcblx0bGFiZWxNaW5XaWR0aCA9IHNpZ25hbDxzdHJpbmcgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XHJcblx0cHJpdmF0ZSBmYWxsYmFja1Vwc2VydDogVXBzZXJ0ID0geyBhZGREYXRhOiB7fSwgdXBkRGF0YToge30sIHN1YnNlcnQ6IFtdLCBsb2c6IHt9IH07XHJcblx0aXNNYWluOiBib29sZWFuID0gdHJ1ZTtcclxuXHRzdWJzZXJ0OiBhbnk7XHJcblx0ZXh0cmE6IGFueSA9IHt9O1xyXG5cclxuXHRhY3Rpb25zID0gaW5qZWN0KEFjdGlvblNlcnZpY2UpO1xyXG5cdEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpyZXNpemUnKVxyXG5cdG9uUmVzaXplKCkge1xyXG5cdFx0dGhpcy5yZUNhbGNMYWJlbFNpemUoKTtcclxuXHR9XHJcblxyXG5cdGNvbnN0cnVjdG9yKFxyXG5cdFx0cHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxyXG5cdFx0cHJpdmF0ZSBkYXRlUGlwZTogRGF0ZVBpcGUsXHJcblx0KSB7XHJcblx0XHR0aGlzLnJvdXRlci51cmwuc3BsaXQoJy8nKS5wb3AoKSA9PSAnbmV3JyAmJiAodGhpcy5pc05ldyA9IHRydWUpO1xyXG5cdFx0ZWZmZWN0KFxyXG5cdFx0XHQoKSA9PiB7XHJcblx0XHRcdFx0aWYgKCF0aGlzLm1vZGVsKCkpIHtcclxuXHRcdFx0XHRcdHJldHVybjtcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0dGhpcy5hcHBseURlZmF1bHRWYWx1ZXMoKTtcclxuXHRcdFx0XHR0aGlzLnJhd01vZGVsID0gZmllbGRVdGlscy5wcmVsb2FkTG9nKHsgLi4udGhpcy5tb2RlbCgpIH0sIHRoaXMuZmllbGRMaXN0LCB0aGlzLmRhdGVQaXBlKTtcclxuXHRcdFx0XHR0aGlzLmNoYW5nZWRNb2RlbCA9IHt9O1xyXG5cdFx0XHRcdHVudHJhY2tlZCgoKSA9PiB0aGlzLnRyaWdnZXJIb29rKCkpO1xyXG5cdFx0XHR9LFxyXG5cdFx0XHR7IGFsbG93U2lnbmFsV3JpdGVzOiB0cnVlIH0sXHJcblx0XHQpO1xyXG5cdFx0ZWZmZWN0KFxyXG5cdFx0XHQoKSA9PiB7XHJcblx0XHRcdFx0bGV0IG1vZGVsTmFtZSA9IHRoaXMub3B0aW9ucygpLm1vZGVsTmFtZSB8fCAnJztcclxuXHRcdFx0XHRpZiAobW9kZWxOYW1lICE9ICcnKSB7XHJcblx0XHRcdFx0XHRjb25zdCB1cHNlcnQgPSB0aGlzLmdldFVwc2VydFN0YXRlKCk7XHJcblx0XHRcdFx0XHR0aGlzLmlzTWFpbiA9ICF1cHNlcnQuc3Vic2VydD8uZmluZCgodjogYW55KSA9PiB2LnN1Yk1vZGVsTmFtZSA9PT0gbW9kZWxOYW1lKTtcclxuXHRcdFx0XHRcdGlmICghdGhpcy5pc01haW4pIHtcclxuXHRcdFx0XHRcdFx0dGhpcy5zdWJzZXJ0ID0ge1xyXG5cdFx0XHRcdFx0XHRcdHN1Yk1vZGVsTmFtZTogbW9kZWxOYW1lLFxyXG5cdFx0XHRcdFx0XHRcdGZrOiB0aGlzLm9wdGlvbnMoKS5mayxcclxuXHRcdFx0XHRcdFx0XHRzdWJEYXRhOiBbXSxcclxuXHRcdFx0XHRcdFx0XHRtYXB0bXA6IG5ldyBNYXAoKSxcclxuXHRcdFx0XHRcdFx0XHRcdGxvZ3RtcDogbmV3IE1hcCgpLFxyXG5cdFx0XHRcdFx0XHRcdH07XHJcblx0XHRcdFx0XHRcdFx0dXBzZXJ0LnN1YnNlcnQ/LnB1c2godGhpcy5zdWJzZXJ0KTtcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH0sXHJcblx0XHRcdFx0eyBhbGxvd1NpZ25hbFdyaXRlczogdHJ1ZSB9LFxyXG5cdFx0XHQpO1xyXG5cdH1cclxuXHJcblx0bmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG5cdFx0c2V0VGltZW91dCgoKSA9PiB7XHJcblx0XHRcdHRoaXMucmVDYWxjTGFiZWxTaXplKCk7XHJcblx0XHR9KTtcclxuXHRcdHRoaXMuaTE4blNlcnZpY2UuY2hhbmdlLnN1YnNjcmliZSgocmVzKSA9PiB7XHJcblx0XHRcdHRoaXMucmVDYWxjTGFiZWxTaXplKCk7XHJcblx0XHR9KTtcclxuXHR9XHJcblxyXG5cdG5nT25EZXN0cm95KCkge1xyXG5cdFx0dGhpcy5ob29rT2JzZXJ2ZXJzLmZvckVhY2goKHVuc3Vic2NyaWJlKSA9PiB1bnN1YnNjcmliZSgpKTtcclxuXHR9XHJcblxyXG5cdGluaXRGb3JtKCkge1xyXG5cdFx0aWYgKCF0aGlzLm9wdGlvbnMoKS5leHRyYSkge1xyXG5cdFx0XHR0aGlzLm9wdGlvbnMoKS5leHRyYSA9IHt9O1xyXG5cdFx0fVxyXG5cdFx0aWYgKCF0aGlzLm9wdGlvbnMoKS5mb3JtKSB7XHJcblx0XHRcdHRoaXMub3B0aW9ucygpLmZvcm0gPSBuZXcgRm9ybUdyb3VwKHt9KTtcclxuXHRcdH1cclxuXHRcdHRoaXMuZmllbGRMaXN0ID0gW107XHJcblx0XHQvL0B0cy1pZ25vcmVcclxuXHRcdGNvbnN0IGlzSTE4biA9IHdpbmRvdy5hcHBJc0kxOG47XHJcblx0XHR0aGlzLnBhcnNlRmllbGRzKHRoaXMub3B0aW9ucygpLmZpZWxkcyB8fCBbXSk7XHJcblx0XHR0aGlzLmZpZWxkTGlzdC5mb3JFYWNoKChmaWVsZCwgaW5kZXgpID0+IHtcclxuXHRcdFx0ZmllbGRVdGlscy5maWVsZEhhbmRsZXIoZmllbGQpO1xyXG5cdFx0XHRmaWVsZC51dWlkID0gYCR7Z2VuZXJhdGVVbmlxdWVJZCgpfSR7aW5kZXh9YDtcclxuXHRcdFx0ZmllbGQubGFiZWxNaW5XaWR0aCA9IHRoaXMubGFiZWxNaW5XaWR0aDtcclxuXHRcdFx0ZmllbGQuaW50ZXJhY3RpdmVMYWJlbCA9IHRoaXMub3B0aW9ucygpLmludGVyYWN0aXZlTGFiZWwgPz8gdHJ1ZTtcclxuXHRcdFx0aWYgKGlzSTE4biAmJiAoIWZpZWxkVXRpbHMucHJvcHMoZmllbGQpLmkxOG5LZXkgfHwgZmllbGRVdGlscy5wcm9wcyhmaWVsZCkuaTE4bktleSA9PSAnJykpIHtcclxuXHRcdFx0XHRmaWVsZFV0aWxzLnByb3BzKGZpZWxkKS5pMThuS2V5ID0gYHRhYmxlcy4ke3RoaXMub3B0aW9ucygpLm1vZGVsTmFtZX0uJHtmaWVsZC5rZXl9YDtcclxuXHRcdFx0fVxyXG5cdFx0XHRmaWVsZC5mb3JtID0gdGhpcztcclxuXHRcdFx0aWYgKGlzT2JzZXJ2YWJsZShmaWVsZC5ob29rKSkge1xyXG5cdFx0XHRcdHRoaXMudW5pcXVlSG9vayhmaWVsZCwgZmllbGQuaG9vayk7XHJcblx0XHRcdH1cclxuXHRcdFx0dGhpcy5oYW5kbGVGaWVsZENvbnRyb2woZmllbGQpO1xyXG5cdFx0fSk7XHJcblx0XHR0aGlzLmFwcGx5RGVmYXVsdFZhbHVlcygpO1xyXG5cdFx0bGV0IGtleXMgPSBPYmplY3Qua2V5cyh0aGlzLm1vZGVsKCkgfHwge30pO1xyXG5cdFx0aWYgKGtleXMubGVuZ3RoID4gMCkge1xyXG5cdFx0XHR1bnRyYWNrZWQoKCkgPT4gdGhpcy50cmlnZ2VySG9vaygpKTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdHByaXZhdGUgYXBwbHlEZWZhdWx0VmFsdWVzKCkge1xyXG5cdFx0aWYgKCF0aGlzLm1vZGVsKCkgfHwgIUFycmF5LmlzQXJyYXkodGhpcy5maWVsZExpc3QpIHx8IHRoaXMuZmllbGRMaXN0Lmxlbmd0aCA9PT0gMCkge1xyXG5cdFx0XHRyZXR1cm47XHJcblx0XHR9XHJcblx0XHRpZiAoIXRoaXMuc2hvdWxkQXBwbHlEZWZhdWx0cygpKSB7XHJcblx0XHRcdHJldHVybjtcclxuXHRcdH1cclxuXHRcdHRoaXMuZmllbGRMaXN0LmZvckVhY2goKGZpZWxkKSA9PiB7XHJcblx0XHRcdGlmIChmaWVsZC5kZWZhdWx0ID09PSB1bmRlZmluZWQpIHJldHVybjtcclxuXHRcdFx0aWYgKGZpZWxkVXRpbHMuZ2V0TW9kZWwodGhpcy5tb2RlbCgpLCBmaWVsZC5rZXkhKSAhPT0gdW5kZWZpbmVkKSByZXR1cm47XHJcblx0XHRcdHVudHJhY2tlZCgoKSA9PiB7XHJcblx0XHRcdFx0dGhpcy5oYW5kbGVWYWx1ZUNoYW5nZShmaWVsZFV0aWxzLmRhZmF1bHRWYWx1ZUhhbmRsZXIoZmllbGQsIGZpZWxkLmRlZmF1bHQsIHRoaXMuZGF0ZVBpcGUpLCBmaWVsZCk7XHJcblx0XHRcdH0pO1xyXG5cdFx0fSk7XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIHNob3VsZEFwcGx5RGVmYXVsdHMoKSB7XHJcblx0XHRpZiAodGhpcy5pc05ldykge1xyXG5cdFx0XHRyZXR1cm4gdHJ1ZTtcclxuXHRcdH1cclxuXHRcdGNvbnN0IHVybCA9IHRoaXMucm91dGVyLnVybC50b0xvd2VyQ2FzZSgpO1xyXG5cdFx0cmV0dXJuIHVybC5pbmNsdWRlcygnY29uZmlnJyk7XHJcblx0fVxyXG5cclxuXHRnZXRGaWVsZChrZXk6IHN0cmluZykge1xyXG5cdFx0cmV0dXJuIHRoaXMuZmllbGRMaXN0LmZpbmQoKGZpZWxkKSA9PiBmaWVsZC5rZXkgPT09IGtleSk7XHJcblx0fVxyXG5cclxuXHRwYXJzZUZpZWxkcyhmaWVsZHM6IEZvcm1GaWVsZFtdKSB7XHJcblx0XHRmaWVsZHMuZm9yRWFjaCgoZmllbGQpID0+IHtcclxuXHRcdFx0aWYgKGZpZWxkLmdyb3VwKSB7XHJcblx0XHRcdFx0dGhpcy5wYXJzZUZpZWxkcyhmaWVsZC5ncm91cCk7XHJcblx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0dGhpcy5maWVsZExpc3QucHVzaChmaWVsZCk7XHJcblx0XHRcdH1cclxuXHRcdH0pO1xyXG5cdH1cclxuXHJcblx0aGFuZGxlRmllbGRDb250cm9sKGZpZWxkOiBGb3JtRmllbGQpIHtcclxuXHRcdGNvbnN0IGtleSA9IGZpZWxkLmtleSB8fCAnJztcclxuXHRcdGNvbnN0IGlzRGlzcGxheU9ubHkgPSAhIWZpZWxkLmV4dHJhPy5kaXNwbGF5T25seTtcclxuXHRcdGNvbnN0IHZhbGlkYXRvcnMgPVxyXG5cdFx0XHRpc0Rpc3BsYXlPbmx5ID8gbnVsbCA6IGZpZWxkVXRpbHMucHJvcHMoZmllbGQpPy5yZXF1aXJlZCA/IChmaWVsZC52YWxpZGF0b3JzID8gZmllbGQudmFsaWRhdG9ycyA6IFZhbGlkYXRvcnMucmVxdWlyZWQpIDogbnVsbDtcclxuXHRcdGxldCBmaWVsZENvbnRyb2wgPSB0aGlzLm9wdGlvbnMoKS5mb3JtPy5nZXQoa2V5KSBhcyBGaWVsZENvbnRyb2wgfCBudWxsO1xyXG5cclxuXHRcdGlmICghZmllbGRDb250cm9sKSB7XHJcblx0XHRcdGZpZWxkQ29udHJvbCA9IG5ldyBGaWVsZENvbnRyb2wobnVsbCwgdmFsaWRhdG9ycyB8fCB1bmRlZmluZWQpO1xyXG5cdFx0XHR0aGlzLm9wdGlvbnMoKS5mb3JtPy5hZGRDb250cm9sKGtleSwgZmllbGRDb250cm9sKTtcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdGZpZWxkQ29udHJvbC5zZXRWYWxpZGF0b3JzKHZhbGlkYXRvcnMpO1xyXG5cdFx0XHRmaWVsZENvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSh7IGVtaXRFdmVudDogZmFsc2UgfSk7XHJcblx0XHR9XHJcblxyXG5cdFx0ZmllbGQuZmllbGRDb250cm9sID0gZmllbGRDb250cm9sO1xyXG5cclxuXHRcdGlmIChmaWVsZFV0aWxzLnByb3BzKGZpZWxkKT8uZGlzYWJsZWQgfHwgaXNEaXNwbGF5T25seSkge1xyXG5cdFx0XHRmaWVsZC5maWVsZENvbnRyb2wuZGlzYWJsZSh7IGVtaXRFdmVudDogZmFsc2UgfSk7XHJcblx0XHRcdGZpZWxkLmZpZWxkQ29udHJvbC5tYXJrQXNQcmlzdGluZSh7IG9ubHlTZWxmOiB0cnVlIH0pO1xyXG5cdFx0fSBlbHNlIGlmIChmaWVsZC5maWVsZENvbnRyb2wuZGlzYWJsZWQpIHtcclxuXHRcdFx0ZmllbGQuZmllbGRDb250cm9sLmVuYWJsZSh7IGVtaXRFdmVudDogZmFsc2UgfSk7XHJcblx0XHR9XHJcblx0XHRmaWVsZC5maWVsZENvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSh7IGVtaXRFdmVudDogZmFsc2UgfSk7XHJcblxyXG5cdFx0aWYgKChmaWVsZENvbnRyb2wgYXMgYW55KS5fX3ZhbHVlQ2hhbmdlQm91bmQpIHtcclxuXHRcdFx0cmV0dXJuO1xyXG5cdFx0fVxyXG5cclxuXHRcdGZpZWxkQ29udHJvbC52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xyXG5cdFx0XHRjb25zdCBhY3RpdmVGaWVsZCA9IHRoaXMuZ2V0RmllbGQoa2V5KSB8fCBmaWVsZDtcclxuXHRcdFx0Y29uc3QgdGFyZ2V0VmFsdWUgPSBmaWVsZFV0aWxzLmZyb21GaWVsZFZhbHVlKGFjdGl2ZUZpZWxkLCB2YWx1ZSwgdGhpcy5kYXRlUGlwZSk7XHJcblx0XHRcdGNvbnN0IGN1cnJlbnRWYWx1ZSA9IGZpZWxkVXRpbHMuZ2V0TW9kZWwodGhpcy5tb2RlbCgpLCBhY3RpdmVGaWVsZC5rZXkhKTtcclxuXHRcdFx0aWYgKGZpZWxkVXRpbHMuaXNGYWtlZENoYW5nZSh0YXJnZXRWYWx1ZSwgY3VycmVudFZhbHVlLCBhY3RpdmVGaWVsZCkpIHtcclxuXHRcdFx0XHRyZXR1cm47XHJcblx0XHRcdH1cclxuXHRcdFx0aWYgKGZpZWxkVXRpbHMucHJvcHMoYWN0aXZlRmllbGQpPy5vbk1vZGVsQ2hhbmdlICYmIHR5cGVvZiBmaWVsZFV0aWxzLnByb3BzKGFjdGl2ZUZpZWxkKT8ub25Nb2RlbENoYW5nZSA9PT0gJ2Z1bmN0aW9uJykge1xyXG5cdFx0XHRcdGZpZWxkVXRpbHMucHJvcHMoYWN0aXZlRmllbGQpPy5vbk1vZGVsQ2hhbmdlIShhY3RpdmVGaWVsZCwgeyB2YWx1ZSB9KTtcclxuXHRcdFx0fVxyXG5cdFx0XHR0aGlzLmhhbmRsZVZhbHVlQ2hhbmdlKHRhcmdldFZhbHVlLCBhY3RpdmVGaWVsZCk7XHJcblx0XHR9KTtcclxuXHRcdChmaWVsZENvbnRyb2wgYXMgYW55KS5fX3ZhbHVlQ2hhbmdlQm91bmQgPSB0cnVlO1xyXG5cdH1cclxuXHJcblx0aGFuZGxlVmFsdWVDaGFuZ2UodmFsdWU6IGFueSwgZmllbGQ6IEZvcm1GaWVsZCkge1xuXHRcdGZpZWxkVXRpbHMuc2V0TW9kZWwodGhpcy5tb2RlbCgpLCBmaWVsZC5rZXkhLCB2YWx1ZSk7XG5cdFx0dGhpcy5tb2RlbENoYW5nZS5lbWl0KHRoaXMubW9kZWwoKSk7XG5cdFx0aWYgKGZpZWxkLmV4dHJhPy5kaXNwbGF5T25seSkge1xuXHRcdFx0dGhpcy5oYW5kbGVIaWRlRXhwcmVzc2lvbigpO1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cclxuXHRcdHRoaXMuY2hhbmdlZE1vZGVsW2ZpZWxkLmtleSFdID0geyBuYW1lOiBmaWVsZFV0aWxzLmxhYmVsKGZpZWxkLCB0aGlzLmkxOG5TZXJ2aWNlKSwgdmFsdWU6IHZhbHVlLCB0eXBlOiBmaWVsZC50eXBlIH07XHJcblx0XHRpZiAodGhpcy5pc01haW4pIHtcclxuXHRcdFx0dGhpcy5oYW5kbGVVcHNlcnQoZmllbGQua2V5ISwgdmFsdWUsIHRydWUpO1xyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0dGhpcy5oYW5kbGVTdWJzZXJ0KGZpZWxkLmtleSEsIHZhbHVlLCBmaWVsZCk7XHJcblx0XHR9XHJcblx0XHR0aGlzLmhhbmRsZUhpZGVFeHByZXNzaW9uKCk7XHJcblx0XHR0aGlzLmFjdGlvbnMuc2F2ZVNpZ25hbC5zZXQodHJ1ZSk7XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIGdldFVwc2VydFN0YXRlKCkge1xyXG5cdFx0Y29uc3QgdXBzZXJ0ID0gdGhpcy51cHNlcnQoKSA/PyB0aGlzLmZhbGxiYWNrVXBzZXJ0O1xyXG5cdFx0dXBzZXJ0LmFkZERhdGEgPz89IHt9O1xyXG5cdFx0dXBzZXJ0LnVwZERhdGEgPz89IHt9O1xyXG5cdFx0dXBzZXJ0LnN1YnNlcnQgPz89IFtdO1xyXG5cdFx0dXBzZXJ0LmxvZyA/Pz0ge307XHJcblx0XHRyZXR1cm4gdXBzZXJ0O1xyXG5cdH1cclxuXHJcblx0aGFuZGxlVXBzZXJ0KGtleTogc3RyaW5nLCB2YWx1ZTogYW55LCBpc0xvZz86IGJvb2xlYW4pIHtcclxuXHRcdGNvbnN0IHVwc2VydCA9IHRoaXMuZ2V0VXBzZXJ0U3RhdGUoKTtcclxuXHRcdGlmICh0aGlzLmlzTmV3KSB7XHJcblx0XHRcdGZpZWxkVXRpbHMuc2V0TW9kZWwodXBzZXJ0LmFkZERhdGEhLCBrZXksIHZhbHVlKTtcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdGZpZWxkVXRpbHMuc2V0TW9kZWwodXBzZXJ0LnVwZERhdGEhLCBrZXksIHZhbHVlKTtcclxuXHRcdH1cclxuXHRcdGlmICghaXNMb2cpIHJldHVybjtcclxuXHRcdHVwc2VydC5sb2chLmNvbnRlbnQgPSBmaWVsZFV0aWxzLnRyYW5zTG9nKFxyXG5cdFx0XHR0aGlzLnJhd01vZGVsLFxyXG5cdFx0XHR0aGlzLmNoYW5nZWRNb2RlbCxcclxuXHRcdFx0dGhpcy5tb2RlbCgpW3RoaXMub3B0aW9ucygpLm1haW5GaWVsZCFdLFxyXG5cdFx0XHR0aGlzLmlzTmV3LFxyXG5cdFx0XHR0aGlzLmkxOG5TZXJ2aWNlLFxyXG5cdFx0KTtcclxuXHR9XHJcblxyXG5cdGhhbmRsZVN1YnNlcnQoa2V5OiBzdHJpbmcsIHZhbHVlOiBhbnksIGZpZWxkOiBGb3JtRmllbGQpIHtcclxuXHRcdGNvbnN0IGNoYW5nZWRNb2RlbCA9IE9iamVjdC5mcm9tRW50cmllcyhPYmplY3QuZW50cmllcyh0aGlzLmNoYW5nZWRNb2RlbCkubWFwKChba2V5LCB2YWx1ZV0pID0+IFtrZXksICh2YWx1ZSBhcyBhbnkpLnZhbHVlXSkpO1xyXG5cdFx0dGhpcy5zdWJzZXJ0LmxvZ3RtcC5zZXQoMCwgY2hhbmdlZE1vZGVsKTtcclxuXHRcdHRoaXMuc3Vic2VydC5zdWJEYXRhWzBdID0gY2hhbmdlZE1vZGVsO1xyXG5cdFx0dGhpcy5zdWJzZXJ0Lm1hcHRtcC5zZXQoa2V5LCB7XHJcblx0XHRcdGlkOiB0aGlzLm1vZGVsKCk/LmlkID8/IDAsXHJcblx0XHRcdG9sZFZhbHVlOiB0aGlzLnJhd01vZGVsW2tleV0sXHJcblx0XHRcdG5ld1ZhbHVlOiB2YWx1ZSxcclxuXHRcdFx0bGFiZWw6IGZpZWxkVXRpbHMubGFiZWwoZmllbGQsIHRoaXMuaTE4blNlcnZpY2UpLFxyXG5cdFx0fSk7XHJcblx0fVxyXG5cclxuXHRoYW5kbGVIaWRlRXhwcmVzc2lvbigpIHtcclxuXHRcdHRoaXMuZmllbGRMaXN0LmZvckVhY2goKGZpZWxkKSA9PiB7XHJcblx0XHRcdGlmIChmaWVsZC5oaWRlRXhwcmVzc2lvbikge1xyXG5cdFx0XHRcdHRyeSB7XHJcblx0XHRcdFx0XHRmaWVsZC5oaWRlID0gZmllbGQuaGlkZUV4cHJlc3Npb24odGhpcy5tb2RlbCgpLCBmaWVsZCk7XHJcblx0XHRcdFx0fSBjYXRjaCAoZXJyb3IpIHtcclxuXHRcdFx0XHRcdC8vIGNvbnNvbGUud2FybihgaGlkZUV4cHJlc3Npb24g6Lez6L+H5LqG5a2X5q614oCcJHtmaWVsZC5rZXl94oCd77yM5Zug5Li66L+Q6KGM5pe25LiK5LiL5paH5bCa5pyq5YeG5aSH5aW944CCYCk7XHJcblx0XHRcdFx0XHRyZXR1cm47XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdGlmIChmaWVsZC5oaWRlKSB7XHJcblx0XHRcdFx0XHRmaWVsZC5maWVsZENvbnRyb2w/LmNsZWFyVmFsaWRhdG9ycygpO1xyXG5cdFx0XHRcdFx0ZmllbGQuZmllbGRDb250cm9sPy51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcclxuXHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0Y29uc3QgdmFsaWRhdG9ycyA9IGZpZWxkLmV4dHJhPy5kaXNwbGF5T25seVxyXG5cdFx0XHRcdFx0XHQ/IG51bGxcclxuXHRcdFx0XHRcdFx0OiBmaWVsZFV0aWxzLnByb3BzKGZpZWxkKT8ucmVxdWlyZWRcclxuXHRcdFx0XHRcdFx0XHQ/IChmaWVsZD8udmFsaWRhdG9ycyA/IGZpZWxkPy52YWxpZGF0b3JzIDogVmFsaWRhdG9ycy5yZXF1aXJlZClcclxuXHRcdFx0XHRcdFx0XHQ6IG51bGw7XHJcblx0XHRcdFx0XHRmaWVsZC5maWVsZENvbnRyb2w/LnNldFZhbGlkYXRvcnModmFsaWRhdG9ycyk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9KTtcclxuXHR9XHJcblxyXG5cdHZhbGlkYXRlKCkge1xyXG5cdFx0Zm9yIChsZXQga2V5IGluIHRoaXMub3B0aW9ucygpLmZvcm0/LmNvbnRyb2xzKSB7XHJcblx0XHRcdCF0aGlzLm9wdGlvbnMoKS5mb3JtPy5jb250cm9sc1trZXldWydkaXNhYmxlZCddICYmIHRoaXMub3B0aW9ucygpLmZvcm0/LmNvbnRyb2xzW2tleV0ubWFya0FzRGlydHkoKTtcclxuXHRcdH1cclxuXHRcdHJldHVybiB0aGlzLm9wdGlvbnMoKS5mb3JtPy5kaXNhYmxlZCA/IHRydWUgOiB0aGlzLm9wdGlvbnMoKS5mb3JtPy52YWxpZDtcclxuXHR9XHJcblxyXG5cdHVuaXF1ZUhvb2soZmllbGQ6IEZvcm1GaWVsZCwgaG9vazogT2JzZXJ2YWJsZTwoZmllbGQ/OiBGb3JtRmllbGQpID0+IHZvaWQ+KSB7XHJcblx0XHRmaWVsZC5ob29rID0gaG9vay5waXBlKHNoYXJlUmVwbGF5KDEpKTtcclxuXHR9XHJcblxyXG5cdHRyaWdnZXJIb29rKCkge1xyXG5cdFx0dGhpcy5maWVsZExpc3QuZm9yRWFjaCgoZmllbGQpID0+IHtcclxuXHRcdFx0ZmllbGRVdGlscy50cmlnZ2VySG9va0FuZFNldFZhbHVlKFxyXG5cdFx0XHRcdGZpZWxkLFxyXG5cdFx0XHRcdGZpZWxkVXRpbHMuZ2V0TW9kZWwodGhpcy5tb2RlbCgpLCBmaWVsZC5rZXkhKSxcclxuXHRcdFx0XHRmYWxzZSxcclxuXHRcdFx0XHR0cnVlLFxyXG5cdFx0XHRcdHRoaXMuaG9va09ic2VydmVycyxcclxuXHRcdFx0XHQoKSA9PiB7XHJcblx0XHRcdFx0XHR0aGlzLmhhbmRsZUhpZGVFeHByZXNzaW9uKCk7XHJcblx0XHRcdFx0fSxcclxuXHRcdFx0XHR0aGlzLmRhdGVQaXBlLFxyXG5cdFx0XHQpO1xyXG5cdFx0fSk7XHJcblx0fVxyXG5cclxuXHRyZUNhbGNMYWJlbFNpemUoKSB7XHJcblx0XHRpZiAodGhpcy5vcHRpb25zKCkubGFiZWxXaWR0aCkge1xyXG5cdFx0XHR0aGlzLmxhYmVsTWluV2lkdGguc2V0KHRoaXMub3B0aW9ucygpLmxhYmVsV2lkdGgpO1xyXG5cdFx0XHRyZXR1cm47XHJcblx0XHR9XHJcblx0XHR0aGlzLmxhYmVsTWluV2lkdGguc2V0KHVuZGVmaW5lZCk7XHJcblx0XHR0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcblx0XHR0aGlzLmhhbmRsZUZpZWxkTGFiZWxzKCk7XHJcblx0XHR0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcblx0fVxyXG5cclxuXHRoYW5kbGVGaWVsZExhYmVscygpIHtcclxuXHRcdGNvbnN0IGZpZWxkTGFiZWxzOiBFbGVtZW50UmVmW10gPSBbXTtcclxuXHRcdHRoaXMuZ2V0RmllbGRMYWJlbHModGhpcy5maWVsZENvbXBvbmVudHMsIGZpZWxkTGFiZWxzKTtcclxuXHRcdGNvbnN0IG9mZnNldFdpZHRocyA9IGZpZWxkTGFiZWxzLm1hcCgoZmllbGRMYWJlbCkgPT4gZmllbGRMYWJlbC5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoKTtcclxuXHRcdHRoaXMubGFiZWxNaW5XaWR0aC5zZXQoTWF0aC5tYXgoLi4ub2Zmc2V0V2lkdGhzKSArIDI0ICsgJ3B4Jyk7XHJcblx0fVxyXG5cclxuXHRnZXRGaWVsZExhYmVscyhmaWVsZENvbXBvbmVudHM6IFF1ZXJ5TGlzdDxGb3JtRmllbGRDb21wb25lbnQ+IHwgdW5kZWZpbmVkLCBmaWVsZExhYmVsczogRWxlbWVudFJlZltdKSB7XHJcblx0XHRpZiAoIWZpZWxkQ29tcG9uZW50cykge1xyXG5cdFx0XHRyZXR1cm47XHJcblx0XHR9XHJcblx0XHRmaWVsZENvbXBvbmVudHM/LmZvckVhY2goKGNvbXBvbmVudCkgPT4ge1xyXG5cdFx0XHRjb25zdCBmaWVsZExhYmVsID0gY29tcG9uZW50LmdldEZpZWxkTGFiZWwoKTtcclxuXHRcdFx0aWYgKGZpZWxkTGFiZWwpIHtcclxuXHRcdFx0XHRmaWVsZExhYmVscy5wdXNoKGZpZWxkTGFiZWwpO1xyXG5cdFx0XHR9XHJcblx0XHRcdHRoaXMuZ2V0RmllbGRMYWJlbHMoY29tcG9uZW50LmdldEZpZWxkQ29tcG9uZW50cygpLCBmaWVsZExhYmVscyk7XHJcblx0XHR9KTtcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIOinpuWPkeaooeWei+WPmOWKqO+8jOmSiOWvueihqOWNleWtl+auteaVsOaNrlxyXG5cdCAqIEBwYXJhbSBtb2RlbCDpnIDopoHlj5jliqjnmoTmlbDmja5cclxuXHQgKiBAcGFyYW0gZW1pdEV2ZW50IOaYr+WQpuinpuWPkeS6i+S7tlxyXG5cdCAqIEBwYXJhbSBkZXRlY3RNb2RlbENoYW5nZSDmmK/lkKbop6blj5FkZXRlY3RNb2RlbENoYW5nZVxyXG5cdCAqL1xyXG5cdHRyaWdnZXJNb2RlbEVmZmVjdChtb2RlbDogYW55LCBlbWl0RXZlbnQ/OiBib29sZWFuLCBlbWl0SG9vaz86IGJvb2xlYW4pIHtcclxuXHRcdE9iamVjdC5rZXlzKG1vZGVsKS5mb3JFYWNoKChrZXkpID0+IHtcclxuXHRcdFx0Y29uc3QgZmllbGQgPSB0aGlzLmdldEZpZWxkKGtleSkhO1xyXG5cdFx0XHRpZiAoIWZpZWxkKSByZXR1cm47XHJcblx0XHRcdGZpZWxkVXRpbHMudHJpZ2dlckhvb2tBbmRTZXRWYWx1ZShcclxuXHRcdFx0XHRmaWVsZCxcclxuXHRcdFx0XHRtb2RlbFtrZXldLFxyXG5cdFx0XHRcdGVtaXRFdmVudCA/PyB0cnVlLFxyXG5cdFx0XHRcdGVtaXRIb29rID8/IHRydWUsXHJcblx0XHRcdFx0dGhpcy5ob29rT2JzZXJ2ZXJzLFxyXG5cdFx0XHRcdCgpID0+IHtcclxuXHRcdFx0XHRcdHRoaXMuaGFuZGxlSGlkZUV4cHJlc3Npb24oKTtcclxuXHRcdFx0XHR9LFxyXG5cdFx0XHRcdHRoaXMuZGF0ZVBpcGUsXHJcblx0XHRcdCk7XHJcblx0XHR9KTtcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIOinpuWPkeaVsOaNruWPmOWKqO+8jOmSiOWvuemdnuihqOWNleWtl+auteaVsOaNrlxyXG5cdCAqIEBwYXJhbSBkYXRhTGlzdCDlpJbpg6jmlbDmja7liJfooahcclxuXHQgKi9cclxuXHR0cmlnZ2VyRGF0YUVmZmVjdChkYXRhTGlzdDogRXh0ZXJuYWxEYXRhW10pIHtcclxuXHRcdGRhdGFMaXN0LmZvckVhY2goKGRhdGEpID0+IHtcclxuXHRcdFx0ZmllbGRVdGlscy5zZXRNb2RlbCh0aGlzLm1vZGVsKCksIGRhdGEua2V5ISwgZGF0YS52YWx1ZSk7XHJcblx0XHRcdGlmIChkYXRhLmxhYmVsKSB7XHJcblx0XHRcdFx0dGhpcy5jaGFuZ2VkTW9kZWxbZGF0YS5rZXkhXSA9IHsgbmFtZTogZGF0YS5sYWJlbCwgdmFsdWU6IGRhdGEudmFsdWUsIHR5cGU6ICdpbnB1dHRleHQnIH07XHJcblx0XHRcdFx0dGhpcy5oYW5kbGVVcHNlcnQoZGF0YS5rZXkhLCBkYXRhLnZhbHVlLCB0cnVlKTtcclxuXHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHR0aGlzLmhhbmRsZVVwc2VydChkYXRhLmtleSEsIGRhdGEudmFsdWUpO1xyXG5cdFx0XHR9XHJcblx0XHR9KTtcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIOinpuWPkeaXpeW/l+WPmOWKqO+8jOmSiOWvuemdnuihqOWNleWtl+auteaVsOaNrlxyXG5cdCAqIEBwYXJhbSBkYXRhTGlzdCDlpJbpg6jmlbDmja7liJfooahcclxuXHQgKi9cclxuXHR0cmlnZ2VyTG9nRWZmZWN0KGRhdGFMaXN0OiBFeHRlcm5hbERhdGFbXSkge1xyXG5cdFx0ZGF0YUxpc3QuZm9yRWFjaCgoZGF0YSkgPT4ge1xyXG5cdFx0XHRpZiAoZGF0YS5sYWJlbCkge1xyXG5cdFx0XHRcdHRoaXMuY2hhbmdlZE1vZGVsW2RhdGEua2V5IV0gPSB7IG5hbWU6IGRhdGEubGFiZWwsIHZhbHVlOiBkYXRhLnZhbHVlLCB0eXBlOiAnaW5wdXR0ZXh0JyB9O1xyXG5cdFx0XHRcdHRoaXMuaGFuZGxlVXBzZXJ0KGRhdGEua2V5ISwgZGF0YS52YWx1ZSwgdHJ1ZSk7XHJcblx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0dGhpcy5oYW5kbGVVcHNlcnQoZGF0YS5rZXkhLCBkYXRhLnZhbHVlKTtcclxuXHRcdFx0fVxyXG5cdFx0fSk7XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiDop6blj5HlrZfmrrXnpoHnlKjvvIzpkojlr7nooajljZXlrZfmrrVcclxuXHQgKiBAcGFyYW0ga2V5cyDlrZfmrrVrZXnliJfooahcclxuXHQgKi9cclxuXHR0cmlnZ2VyRGlzYWJsZWRFZmZlY3Qoa2V5czogc3RyaW5nW10pIHtcclxuXHRcdGtleXM/LmZvckVhY2goKGtleSkgPT4ge1xyXG5cdFx0XHR0aGlzLnNldEZpZWxkRGlzYWJsZWQoa2V5KTtcclxuXHRcdH0pO1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICog5Yqo5oCB6K6+572u5a2X5q6156aB55So77yM56aB55So5YmN5riF6Zmk5a2X5q61ZGlydHnmoIforrBcclxuXHQgKiBAcGFyYW0ga2V5IOWtl+autWtleVxyXG5cdCAqL1xyXG5cdHNldEZpZWxkRGlzYWJsZWQoa2V5OiBzdHJpbmcpIHtcclxuXHRcdHRoaXMuZ2V0RmllbGQoa2V5KT8uZmllbGRDb250cm9sPy5tYXJrQXNQcmlzdGluZSh7IGVtaXRFdmVudDogZmFsc2UgfSk7XHJcblx0XHR0aGlzLmdldEZpZWxkKGtleSk/LmZpZWxkQ29udHJvbD8uZGlzYWJsZSh7IGVtaXRFdmVudDogZmFsc2UgfSk7XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiDooajljZXmj5DkuqTlkI7nmoTmlLblsL7lpITnkIbvvIzkuIDoiKzlnKjmj5DkuqTmjqXlj6PnmoTlm57osIPlh73mlbDmiafooYxcclxuXHQgKi9cclxuXHRmaW5hbGl6ZSgpIHtcclxuXHRcdHRoaXMuZmllbGRMaXN0LmZvckVhY2goKGZpZWxkKSA9PiB7XHJcblx0XHRcdGlmIChbJ2ltYWdlJywgJ3VwbG9hZCddLmluY2x1ZGVzKGZpZWxkLnR5cGUhKSkge1xyXG5cdFx0XHRcdGZpZWxkLmZpZWxkQ29udHJvbD8uYWZ0ZXJTdWJtaXQoKTtcclxuXHRcdFx0fVxyXG5cdFx0fSk7XHJcblx0fVxyXG59XHJcbiIsIkBmb3IgKGZpZWxkIG9mIGZpZWxkcygpOyB0cmFjayBmaWVsZCkge1xuXHQ8Zm9ybS1maWVsZFxuXHRcdGNsYXNzPVwidy1mdWxsXCJcblx0XHRbZmllbGRdPVwiZmllbGRcIj5cblx0PC9mb3JtLWZpZWxkPlxufVxuIl19
|
|
397
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pbW0tZWxlbWVudC11aS9zcmMvbGliL2Zvcm0vZm9ybS9mb3JtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2ltbS1lbGVtZW50LXVpL3NyYy9saWIvZm9ybS9mb3JtL2Zvcm0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNOLFNBQVMsRUFDVCxNQUFNLEVBQ04sS0FBSyxFQUNMLFFBQVEsRUFDUixZQUFZLEVBSVosTUFBTSxFQUNOLFlBQVksRUFDWixTQUFTLEVBQ1QsTUFBTSxFQUNOLE1BQU0sR0FDTixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsbUJBQW1CLEVBQW1DLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0csT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzNELE9BQU8sRUFBYSxrQkFBa0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDekQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRXZELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFjLFdBQVcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM3RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sOEJBQThCLENBQUM7OztBQUU3RCxN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QUFZLDhCQUFFLG1CQUFtQiwrQkFBRSxrQkFBa0I7OzRGQUtuRCxhQUFhO2tCQVJ6QixTQUFTOytCQUNDLGFBQWEsY0FDWCxJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsbUJBQW1CLEVBQUUsa0JBQWtCLENBQUMsYUFDckQsQ0FBQyxRQUFRLENBQUM7NkdBS2EsZUFBZTtzQkFBaEQsWUFBWTt1QkFBQyxrQkFBa0I7Z0JBOEJoQyxRQUFRO3NCQURQLFlBQVk7dUJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcblx0Q29tcG9uZW50LFxyXG5cdGVmZmVjdCxcclxuXHRpbnB1dCxcclxuXHRjb21wdXRlZCxcclxuXHRWaWV3Q2hpbGRyZW4sXHJcblx0UXVlcnlMaXN0LFxyXG5cdEVsZW1lbnRSZWYsXHJcblx0Q2hhbmdlRGV0ZWN0b3JSZWYsXHJcblx0aW5qZWN0LFxyXG5cdEhvc3RMaXN0ZW5lcixcclxuXHR1bnRyYWNrZWQsXG5cdHNpZ25hbCxcblx0b3V0cHV0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEZvcm1Hcm91cCwgVmFsaWRhdG9ycywgUmVhY3RpdmVGb3Jtc01vZHVsZSwgRm9ybVN1Ym1pdHRlZEV2ZW50LCBWYWxpZGF0b3JGbiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEZpZWxkQ29udHJvbCB9IGZyb20gJy4uL2Zvcm0tZmllbGQvZmllbGQtY29udHJvbCc7XHJcbmltcG9ydCB7IEZvcm1GaWVsZCwgRm9ybUZpZWxkQ29tcG9uZW50IH0gZnJvbSAnLi4vZm9ybS1maWVsZC9mb3JtLWZpZWxkJztcclxuaW1wb3J0IHsgRGF0ZVBpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBJMThuU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2UvaTE4bi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgZmllbGRVdGlscyB9IGZyb20gJy4uL2Zvcm0tZmllbGQvZmllbGQtdXRpbHMnO1xyXG5pbXBvcnQgeyBVcHNlcnQgfSBmcm9tICcuLi8uLi9hbS9hbS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBnZW5lcmF0ZVVuaXF1ZUlkIH0gZnJvbSAnLi4vLi4vc2hhcmUvdXRpbHMnO1xyXG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBpc09ic2VydmFibGUsIE9ic2VydmFibGUsIHNoYXJlUmVwbGF5IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBY3Rpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZS9hY3Rpb24uc2VydmljZSc7XG5cbmNvbnN0IG5vbkVtcHR5UmVxdWlyZWQ6IFZhbGlkYXRvckZuID0gKGNvbnRyb2wpID0+IChjb250cm9sLnZhbHVlID09PSBmYWxzZSA/IG51bGwgOiBWYWxpZGF0b3JzLnJlcXVpcmVkKGNvbnRyb2wpKTtcblxuZXhwb3J0IGludGVyZmFjZSBGb3JtT3B0aW9ucyB7XG5cdGZpZWxkcz86IEZvcm1GaWVsZFtdO1xyXG5cdGZvcm0/OiBGb3JtR3JvdXA7XHJcblx0bWFpbkZpZWxkPzogc3RyaW5nO1xyXG5cdGxhYmVsV2lkdGg/OiBzdHJpbmc7XHJcblx0aW50ZXJhY3RpdmVMYWJlbD86IGJvb2xlYW47XHJcblx0ZXh0cmE/OiBhbnk7XHJcblx0bW9kZWxOYW1lPzogc3RyaW5nO1xyXG5cdHR5cGU/OiBzdHJpbmc7XHJcblx0Zms/OiBzdHJpbmc7XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBFeHRlcm5hbERhdGEge1xyXG5cdGtleT86IHN0cmluZztcclxuXHR2YWx1ZT86IGFueTtcclxuXHRsYWJlbD86IHN0cmluZztcclxufVxyXG5cclxuQENvbXBvbmVudCh7XHJcblx0c2VsZWN0b3I6ICdjdXN0b20tZm9ybScsXHJcblx0c3RhbmRhbG9uZTogdHJ1ZSxcclxuXHRpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBGb3JtRmllbGRDb21wb25lbnRdLFxyXG5cdHByb3ZpZGVyczogW0RhdGVQaXBlXSxcclxuXHR0ZW1wbGF0ZVVybDogJy4vZm9ybS5jb21wb25lbnQuaHRtbCcsXHJcblx0c3R5bGVVcmw6ICcuL2Zvcm0uY29tcG9uZW50LnNjc3MnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRm9ybUNvbXBvbmVudCB7XHJcblx0QFZpZXdDaGlsZHJlbihGb3JtRmllbGRDb21wb25lbnQpIGZpZWxkQ29tcG9uZW50cz86IFF1ZXJ5TGlzdDxGb3JtRmllbGRDb21wb25lbnQ+O1xyXG5cdHJvdXRlcjogUm91dGVyID0gaW5qZWN0KFJvdXRlcik7XHJcblx0aXNOZXc6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHRvcHRpb25zID0gaW5wdXQ8Rm9ybU9wdGlvbnM+KHt9KTtcclxuXHRmaWVsZHMgPSBjb21wdXRlZCgoKSA9PiB7XHJcblx0XHR1bnRyYWNrZWQoKCkgPT4ge1xyXG5cdFx0XHR0aGlzLmluaXRGb3JtKCk7XHJcblx0XHRcdHNldFRpbWVvdXQoKCkgPT4ge1xyXG5cdFx0XHRcdHRoaXMucmVDYWxjTGFiZWxTaXplKCk7XHJcblx0XHRcdH0pO1xyXG5cdFx0fSk7XHJcblx0XHRyZXR1cm4gdGhpcy5vcHRpb25zKCkuZmllbGRzO1xyXG5cdH0pO1xyXG5cclxuXHRpMThuU2VydmljZSA9IGluamVjdChJMThuU2VydmljZSk7XHJcblx0bW9kZWwgPSBpbnB1dDxhbnk+KCk7XG5cdG1vZGVsQ2hhbmdlID0gb3V0cHV0PGFueT4oKTtcblx0dXBzZXJ0ID0gaW5wdXQ8VXBzZXJ0PigpO1xuXHRyYXdNb2RlbDogYW55ID0ge307XHJcblx0Y2hhbmdlZE1vZGVsOiBhbnkgPSB7fTtcclxuXHRmaWVsZExpc3QhOiBGb3JtRmllbGRbXTtcclxuXHRob29rT2JzZXJ2ZXJzOiBGdW5jdGlvbltdID0gW107XHJcblx0bGFiZWxNaW5XaWR0aCA9IHNpZ25hbDxzdHJpbmcgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XHJcblx0cHJpdmF0ZSBmYWxsYmFja1Vwc2VydDogVXBzZXJ0ID0geyBhZGREYXRhOiB7fSwgdXBkRGF0YToge30sIHN1YnNlcnQ6IFtdLCBsb2c6IHt9IH07XHJcblx0aXNNYWluOiBib29sZWFuID0gdHJ1ZTtcclxuXHRzdWJzZXJ0OiBhbnk7XHJcblx0ZXh0cmE6IGFueSA9IHt9O1xyXG5cclxuXHRhY3Rpb25zID0gaW5qZWN0KEFjdGlvblNlcnZpY2UpO1xyXG5cdEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpyZXNpemUnKVxyXG5cdG9uUmVzaXplKCkge1xyXG5cdFx0dGhpcy5yZUNhbGNMYWJlbFNpemUoKTtcclxuXHR9XHJcblxyXG5cdGNvbnN0cnVjdG9yKFxyXG5cdFx0cHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxyXG5cdFx0cHJpdmF0ZSBkYXRlUGlwZTogRGF0ZVBpcGUsXHJcblx0KSB7XHJcblx0XHR0aGlzLnJvdXRlci51cmwuc3BsaXQoJy8nKS5wb3AoKSA9PSAnbmV3JyAmJiAodGhpcy5pc05ldyA9IHRydWUpO1xyXG5cdFx0ZWZmZWN0KFxyXG5cdFx0XHQoKSA9PiB7XHJcblx0XHRcdFx0aWYgKCF0aGlzLm1vZGVsKCkpIHtcclxuXHRcdFx0XHRcdHJldHVybjtcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0dGhpcy5hcHBseURlZmF1bHRWYWx1ZXMoKTtcclxuXHRcdFx0XHR0aGlzLnJhd01vZGVsID0gZmllbGRVdGlscy5wcmVsb2FkTG9nKHsgLi4udGhpcy5tb2RlbCgpIH0sIHRoaXMuZmllbGRMaXN0LCB0aGlzLmRhdGVQaXBlKTtcclxuXHRcdFx0XHR0aGlzLmNoYW5nZWRNb2RlbCA9IHt9O1xyXG5cdFx0XHRcdHVudHJhY2tlZCgoKSA9PiB0aGlzLnRyaWdnZXJIb29rKCkpO1xyXG5cdFx0XHR9LFxyXG5cdFx0XHR7IGFsbG93U2lnbmFsV3JpdGVzOiB0cnVlIH0sXHJcblx0XHQpO1xyXG5cdFx0ZWZmZWN0KFxyXG5cdFx0XHQoKSA9PiB7XHJcblx0XHRcdFx0bGV0IG1vZGVsTmFtZSA9IHRoaXMub3B0aW9ucygpLm1vZGVsTmFtZSB8fCAnJztcclxuXHRcdFx0XHRpZiAobW9kZWxOYW1lICE9ICcnKSB7XHJcblx0XHRcdFx0XHRjb25zdCB1cHNlcnQgPSB0aGlzLmdldFVwc2VydFN0YXRlKCk7XHJcblx0XHRcdFx0XHR0aGlzLmlzTWFpbiA9ICF1cHNlcnQuc3Vic2VydD8uZmluZCgodjogYW55KSA9PiB2LnN1Yk1vZGVsTmFtZSA9PT0gbW9kZWxOYW1lKTtcclxuXHRcdFx0XHRcdGlmICghdGhpcy5pc01haW4pIHtcclxuXHRcdFx0XHRcdFx0dGhpcy5zdWJzZXJ0ID0ge1xyXG5cdFx0XHRcdFx0XHRcdHN1Yk1vZGVsTmFtZTogbW9kZWxOYW1lLFxyXG5cdFx0XHRcdFx0XHRcdGZrOiB0aGlzLm9wdGlvbnMoKS5mayxcclxuXHRcdFx0XHRcdFx0XHRzdWJEYXRhOiBbXSxcclxuXHRcdFx0XHRcdFx0XHRtYXB0bXA6IG5ldyBNYXAoKSxcclxuXHRcdFx0XHRcdFx0XHRcdGxvZ3RtcDogbmV3IE1hcCgpLFxyXG5cdFx0XHRcdFx0XHRcdH07XHJcblx0XHRcdFx0XHRcdFx0dXBzZXJ0LnN1YnNlcnQ/LnB1c2godGhpcy5zdWJzZXJ0KTtcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH0sXHJcblx0XHRcdFx0eyBhbGxvd1NpZ25hbFdyaXRlczogdHJ1ZSB9LFxyXG5cdFx0XHQpO1xyXG5cdH1cclxuXHJcblx0bmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG5cdFx0c2V0VGltZW91dCgoKSA9PiB7XHJcblx0XHRcdHRoaXMucmVDYWxjTGFiZWxTaXplKCk7XHJcblx0XHR9KTtcclxuXHRcdHRoaXMuaTE4blNlcnZpY2UuY2hhbmdlLnN1YnNjcmliZSgocmVzKSA9PiB7XHJcblx0XHRcdHRoaXMucmVDYWxjTGFiZWxTaXplKCk7XHJcblx0XHR9KTtcclxuXHR9XHJcblxyXG5cdG5nT25EZXN0cm95KCkge1xyXG5cdFx0dGhpcy5ob29rT2JzZXJ2ZXJzLmZvckVhY2goKHVuc3Vic2NyaWJlKSA9PiB1bnN1YnNjcmliZSgpKTtcclxuXHR9XHJcblxyXG5cdGluaXRGb3JtKCkge1xyXG5cdFx0aWYgKCF0aGlzLm9wdGlvbnMoKS5leHRyYSkge1xyXG5cdFx0XHR0aGlzLm9wdGlvbnMoKS5leHRyYSA9IHt9O1xyXG5cdFx0fVxyXG5cdFx0aWYgKCF0aGlzLm9wdGlvbnMoKS5mb3JtKSB7XHJcblx0XHRcdHRoaXMub3B0aW9ucygpLmZvcm0gPSBuZXcgRm9ybUdyb3VwKHt9KTtcclxuXHRcdH1cclxuXHRcdHRoaXMuZmllbGRMaXN0ID0gW107XHJcblx0XHQvL0B0cy1pZ25vcmVcclxuXHRcdGNvbnN0IGlzSTE4biA9IHdpbmRvdy5hcHBJc0kxOG47XHJcblx0XHR0aGlzLnBhcnNlRmllbGRzKHRoaXMub3B0aW9ucygpLmZpZWxkcyB8fCBbXSk7XHJcblx0XHR0aGlzLmZpZWxkTGlzdC5mb3JFYWNoKChmaWVsZCwgaW5kZXgpID0+IHtcclxuXHRcdFx0ZmllbGRVdGlscy5maWVsZEhhbmRsZXIoZmllbGQpO1xyXG5cdFx0XHRmaWVsZC51dWlkID0gYCR7Z2VuZXJhdGVVbmlxdWVJZCgpfSR7aW5kZXh9YDtcclxuXHRcdFx0ZmllbGQubGFiZWxNaW5XaWR0aCA9IHRoaXMubGFiZWxNaW5XaWR0aDtcclxuXHRcdFx0ZmllbGQuaW50ZXJhY3RpdmVMYWJlbCA9IHRoaXMub3B0aW9ucygpLmludGVyYWN0aXZlTGFiZWwgPz8gdHJ1ZTtcclxuXHRcdFx0aWYgKGlzSTE4biAmJiAoIWZpZWxkVXRpbHMucHJvcHMoZmllbGQpLmkxOG5LZXkgfHwgZmllbGRVdGlscy5wcm9wcyhmaWVsZCkuaTE4bktleSA9PSAnJykpIHtcclxuXHRcdFx0XHRmaWVsZFV0aWxzLnByb3BzKGZpZWxkKS5pMThuS2V5ID0gYHRhYmxlcy4ke3RoaXMub3B0aW9ucygpLm1vZGVsTmFtZX0uJHtmaWVsZC5rZXl9YDtcclxuXHRcdFx0fVxyXG5cdFx0XHRmaWVsZC5mb3JtID0gdGhpcztcclxuXHRcdFx0aWYgKGlzT2JzZXJ2YWJsZShmaWVsZC5ob29rKSkge1xyXG5cdFx0XHRcdHRoaXMudW5pcXVlSG9vayhmaWVsZCwgZmllbGQuaG9vayk7XHJcblx0XHRcdH1cclxuXHRcdFx0dGhpcy5oYW5kbGVGaWVsZENvbnRyb2woZmllbGQpO1xyXG5cdFx0fSk7XHJcblx0XHR0aGlzLmFwcGx5RGVmYXVsdFZhbHVlcygpO1xyXG5cdFx0bGV0IGtleXMgPSBPYmplY3Qua2V5cyh0aGlzLm1vZGVsKCkgfHwge30pO1xyXG5cdFx0aWYgKGtleXMubGVuZ3RoID4gMCkge1xyXG5cdFx0XHR1bnRyYWNrZWQoKCkgPT4gdGhpcy50cmlnZ2VySG9vaygpKTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdHByaXZhdGUgYXBwbHlEZWZhdWx0VmFsdWVzKCkge1xyXG5cdFx0aWYgKCF0aGlzLm1vZGVsKCkgfHwgIUFycmF5LmlzQXJyYXkodGhpcy5maWVsZExpc3QpIHx8IHRoaXMuZmllbGRMaXN0Lmxlbmd0aCA9PT0gMCkge1xyXG5cdFx0XHRyZXR1cm47XHJcblx0XHR9XHJcblx0XHRpZiAoIXRoaXMuc2hvdWxkQXBwbHlEZWZhdWx0cygpKSB7XHJcblx0XHRcdHJldHVybjtcclxuXHRcdH1cclxuXHRcdHRoaXMuZmllbGRMaXN0LmZvckVhY2goKGZpZWxkKSA9PiB7XHJcblx0XHRcdGlmIChmaWVsZC5kZWZhdWx0ID09PSB1bmRlZmluZWQpIHJldHVybjtcclxuXHRcdFx0aWYgKGZpZWxkVXRpbHMuZ2V0TW9kZWwodGhpcy5tb2RlbCgpLCBmaWVsZC5rZXkhKSAhPT0gdW5kZWZpbmVkKSByZXR1cm47XHJcblx0XHRcdHVudHJhY2tlZCgoKSA9PiB7XHJcblx0XHRcdFx0dGhpcy5oYW5kbGVWYWx1ZUNoYW5nZShmaWVsZFV0aWxzLmRhZmF1bHRWYWx1ZUhhbmRsZXIoZmllbGQsIGZpZWxkLmRlZmF1bHQsIHRoaXMuZGF0ZVBpcGUpLCBmaWVsZCk7XHJcblx0XHRcdH0pO1xyXG5cdFx0fSk7XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIHNob3VsZEFwcGx5RGVmYXVsdHMoKSB7XHJcblx0XHRpZiAodGhpcy5pc05ldykge1xyXG5cdFx0XHRyZXR1cm4gdHJ1ZTtcclxuXHRcdH1cclxuXHRcdGNvbnN0IHVybCA9IHRoaXMucm91dGVyLnVybC50b0xvd2VyQ2FzZSgpO1xyXG5cdFx0cmV0dXJuIHVybC5pbmNsdWRlcygnY29uZmlnJyk7XHJcblx0fVxyXG5cclxuXHRnZXRGaWVsZChrZXk6IHN0cmluZykge1xyXG5cdFx0cmV0dXJuIHRoaXMuZmllbGRMaXN0LmZpbmQoKGZpZWxkKSA9PiBmaWVsZC5rZXkgPT09IGtleSk7XHJcblx0fVxyXG5cclxuXHRwYXJzZUZpZWxkcyhmaWVsZHM6IEZvcm1GaWVsZFtdKSB7XHJcblx0XHRmaWVsZHMuZm9yRWFjaCgoZmllbGQpID0+IHtcclxuXHRcdFx0aWYgKGZpZWxkLmdyb3VwKSB7XHJcblx0XHRcdFx0dGhpcy5wYXJzZUZpZWxkcyhmaWVsZC5ncm91cCk7XHJcblx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0dGhpcy5maWVsZExpc3QucHVzaChmaWVsZCk7XHJcblx0XHRcdH1cclxuXHRcdH0pO1xyXG5cdH1cclxuXHJcblx0aGFuZGxlRmllbGRDb250cm9sKGZpZWxkOiBGb3JtRmllbGQpIHtcblx0XHRjb25zdCBrZXkgPSBmaWVsZC5rZXkgfHwgJyc7XG5cdFx0Y29uc3QgaXNEaXNwbGF5T25seSA9ICEhZmllbGQuZXh0cmE/LmRpc3BsYXlPbmx5O1xuXHRcdGNvbnN0IHZhbGlkYXRvcnMgPVxuXHRcdFx0aXNEaXNwbGF5T25seSA/IG51bGwgOiBmaWVsZFV0aWxzLnByb3BzKGZpZWxkKT8ucmVxdWlyZWQgPyAoZmllbGQudmFsaWRhdG9ycyA/IGZpZWxkLnZhbGlkYXRvcnMgOiBub25FbXB0eVJlcXVpcmVkKSA6IG51bGw7XG5cdFx0bGV0IGZpZWxkQ29udHJvbCA9IHRoaXMub3B0aW9ucygpLmZvcm0/LmdldChrZXkpIGFzIEZpZWxkQ29udHJvbCB8IG51bGw7XHJcblxyXG5cdFx0aWYgKCFmaWVsZENvbnRyb2wpIHtcclxuXHRcdFx0ZmllbGRDb250cm9sID0gbmV3IEZpZWxkQ29udHJvbChudWxsLCB2YWxpZGF0b3JzIHx8IHVuZGVmaW5lZCk7XHJcblx0XHRcdHRoaXMub3B0aW9ucygpLmZvcm0/LmFkZENvbnRyb2woa2V5LCBmaWVsZENvbnRyb2wpO1xyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0ZmllbGRDb250cm9sLnNldFZhbGlkYXRvcnModmFsaWRhdG9ycyk7XHJcblx0XHRcdGZpZWxkQ29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcclxuXHRcdH1cclxuXHJcblx0XHRmaWVsZC5maWVsZENvbnRyb2wgPSBmaWVsZENvbnRyb2w7XHJcblxyXG5cdFx0aWYgKGZpZWxkVXRpbHMucHJvcHMoZmllbGQpPy5kaXNhYmxlZCB8fCBpc0Rpc3BsYXlPbmx5KSB7XHJcblx0XHRcdGZpZWxkLmZpZWxkQ29udHJvbC5kaXNhYmxlKHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcclxuXHRcdFx0ZmllbGQuZmllbGRDb250cm9sLm1hcmtBc1ByaXN0aW5lKHsgb25seVNlbGY6IHRydWUgfSk7XHJcblx0XHR9IGVsc2UgaWYgKGZpZWxkLmZpZWxkQ29udHJvbC5kaXNhYmxlZCkge1xyXG5cdFx0XHRmaWVsZC5maWVsZENvbnRyb2wuZW5hYmxlKHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcclxuXHRcdH1cclxuXHRcdGZpZWxkLmZpZWxkQ29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcclxuXHJcblx0XHRpZiAoKGZpZWxkQ29udHJvbCBhcyBhbnkpLl9fdmFsdWVDaGFuZ2VCb3VuZCkge1xyXG5cdFx0XHRyZXR1cm47XHJcblx0XHR9XHJcblxyXG5cdFx0ZmllbGRDb250cm9sLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XHJcblx0XHRcdGNvbnN0IGFjdGl2ZUZpZWxkID0gdGhpcy5nZXRGaWVsZChrZXkpIHx8IGZpZWxkO1xyXG5cdFx0XHRjb25zdCB0YXJnZXRWYWx1ZSA9IGZpZWxkVXRpbHMuZnJvbUZpZWxkVmFsdWUoYWN0aXZlRmllbGQsIHZhbHVlLCB0aGlzLmRhdGVQaXBlKTtcclxuXHRcdFx0Y29uc3QgY3VycmVudFZhbHVlID0gZmllbGRVdGlscy5nZXRNb2RlbCh0aGlzLm1vZGVsKCksIGFjdGl2ZUZpZWxkLmtleSEpO1xyXG5cdFx0XHRpZiAoZmllbGRVdGlscy5pc0Zha2VkQ2hhbmdlKHRhcmdldFZhbHVlLCBjdXJyZW50VmFsdWUsIGFjdGl2ZUZpZWxkKSkge1xyXG5cdFx0XHRcdHJldHVybjtcclxuXHRcdFx0fVxyXG5cdFx0XHRpZiAoZmllbGRVdGlscy5wcm9wcyhhY3RpdmVGaWVsZCk/Lm9uTW9kZWxDaGFuZ2UgJiYgdHlwZW9mIGZpZWxkVXRpbHMucHJvcHMoYWN0aXZlRmllbGQpPy5vbk1vZGVsQ2hhbmdlID09PSAnZnVuY3Rpb24nKSB7XHJcblx0XHRcdFx0ZmllbGRVdGlscy5wcm9wcyhhY3RpdmVGaWVsZCk/Lm9uTW9kZWxDaGFuZ2UhKGFjdGl2ZUZpZWxkLCB7IHZhbHVlIH0pO1xyXG5cdFx0XHR9XHJcblx0XHRcdHRoaXMuaGFuZGxlVmFsdWVDaGFuZ2UodGFyZ2V0VmFsdWUsIGFjdGl2ZUZpZWxkKTtcclxuXHRcdH0pO1xyXG5cdFx0KGZpZWxkQ29udHJvbCBhcyBhbnkpLl9fdmFsdWVDaGFuZ2VCb3VuZCA9IHRydWU7XHJcblx0fVxyXG5cclxuXHRoYW5kbGVWYWx1ZUNoYW5nZSh2YWx1ZTogYW55LCBmaWVsZDogRm9ybUZpZWxkKSB7XG5cdFx0ZmllbGRVdGlscy5zZXRNb2RlbCh0aGlzLm1vZGVsKCksIGZpZWxkLmtleSEsIHZhbHVlKTtcblx0XHR0aGlzLm1vZGVsQ2hhbmdlLmVtaXQodGhpcy5tb2RlbCgpKTtcblx0XHRpZiAoZmllbGQuZXh0cmE/LmRpc3BsYXlPbmx5KSB7XG5cdFx0XHR0aGlzLmhhbmRsZUhpZGVFeHByZXNzaW9uKCk7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxyXG5cdFx0dGhpcy5jaGFuZ2VkTW9kZWxbZmllbGQua2V5IV0gPSB7IG5hbWU6IGZpZWxkVXRpbHMubGFiZWwoZmllbGQsIHRoaXMuaTE4blNlcnZpY2UpLCB2YWx1ZTogdmFsdWUsIHR5cGU6IGZpZWxkLnR5cGUgfTtcclxuXHRcdGlmICh0aGlzLmlzTWFpbikge1xyXG5cdFx0XHR0aGlzLmhhbmRsZVVwc2VydChmaWVsZC5rZXkhLCB2YWx1ZSwgdHJ1ZSk7XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHR0aGlzLmhhbmRsZVN1YnNlcnQoZmllbGQua2V5ISwgdmFsdWUsIGZpZWxkKTtcclxuXHRcdH1cclxuXHRcdHRoaXMuaGFuZGxlSGlkZUV4cHJlc3Npb24oKTtcclxuXHRcdHRoaXMuYWN0aW9ucy5zYXZlU2lnbmFsLnNldCh0cnVlKTtcclxuXHR9XHJcblxyXG5cdHByaXZhdGUgZ2V0VXBzZXJ0U3RhdGUoKSB7XHJcblx0XHRjb25zdCB1cHNlcnQgPSB0aGlzLnVwc2VydCgpID8/IHRoaXMuZmFsbGJhY2tVcHNlcnQ7XHJcblx0XHR1cHNlcnQuYWRkRGF0YSA/Pz0ge307XHJcblx0XHR1cHNlcnQudXBkRGF0YSA/Pz0ge307XHJcblx0XHR1cHNlcnQuc3Vic2VydCA/Pz0gW107XHJcblx0XHR1cHNlcnQubG9nID8/PSB7fTtcclxuXHRcdHJldHVybiB1cHNlcnQ7XHJcblx0fVxyXG5cclxuXHRoYW5kbGVVcHNlcnQoa2V5OiBzdHJpbmcsIHZhbHVlOiBhbnksIGlzTG9nPzogYm9vbGVhbikge1xyXG5cdFx0Y29uc3QgdXBzZXJ0ID0gdGhpcy5nZXRVcHNlcnRTdGF0ZSgpO1xyXG5cdFx0aWYgKHRoaXMuaXNOZXcpIHtcclxuXHRcdFx0ZmllbGRVdGlscy5zZXRNb2RlbCh1cHNlcnQuYWRkRGF0YSEsIGtleSwgdmFsdWUpO1xyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0ZmllbGRVdGlscy5zZXRNb2RlbCh1cHNlcnQudXBkRGF0YSEsIGtleSwgdmFsdWUpO1xyXG5cdFx0fVxyXG5cdFx0aWYgKCFpc0xvZykgcmV0dXJuO1xyXG5cdFx0dXBzZXJ0LmxvZyEuY29udGVudCA9IGZpZWxkVXRpbHMudHJhbnNMb2coXHJcblx0XHRcdHRoaXMucmF3TW9kZWwsXHJcblx0XHRcdHRoaXMuY2hhbmdlZE1vZGVsLFxyXG5cdFx0XHR0aGlzLm1vZGVsKClbdGhpcy5vcHRpb25zKCkubWFpbkZpZWxkIV0sXHJcblx0XHRcdHRoaXMuaXNOZXcsXHJcblx0XHRcdHRoaXMuaTE4blNlcnZpY2UsXHJcblx0XHQpO1xyXG5cdH1cclxuXHJcblx0aGFuZGxlU3Vic2VydChrZXk6IHN0cmluZywgdmFsdWU6IGFueSwgZmllbGQ6IEZvcm1GaWVsZCkge1xyXG5cdFx0Y29uc3QgY2hhbmdlZE1vZGVsID0gT2JqZWN0LmZyb21FbnRyaWVzKE9iamVjdC5lbnRyaWVzKHRoaXMuY2hhbmdlZE1vZGVsKS5tYXAoKFtrZXksIHZhbHVlXSkgPT4gW2tleSwgKHZhbHVlIGFzIGFueSkudmFsdWVdKSk7XHJcblx0XHR0aGlzLnN1YnNlcnQubG9ndG1wLnNldCgwLCBjaGFuZ2VkTW9kZWwpO1xyXG5cdFx0dGhpcy5zdWJzZXJ0LnN1YkRhdGFbMF0gPSBjaGFuZ2VkTW9kZWw7XHJcblx0XHR0aGlzLnN1YnNlcnQubWFwdG1wLnNldChrZXksIHtcclxuXHRcdFx0aWQ6IHRoaXMubW9kZWwoKT8uaWQgPz8gMCxcclxuXHRcdFx0b2xkVmFsdWU6IHRoaXMucmF3TW9kZWxba2V5XSxcclxuXHRcdFx0bmV3VmFsdWU6IHZhbHVlLFxyXG5cdFx0XHRsYWJlbDogZmllbGRVdGlscy5sYWJlbChmaWVsZCwgdGhpcy5pMThuU2VydmljZSksXHJcblx0XHR9KTtcclxuXHR9XHJcblxyXG5cdGhhbmRsZUhpZGVFeHByZXNzaW9uKCkge1xyXG5cdFx0dGhpcy5maWVsZExpc3QuZm9yRWFjaCgoZmllbGQpID0+IHtcclxuXHRcdFx0aWYgKGZpZWxkLmhpZGVFeHByZXNzaW9uKSB7XHJcblx0XHRcdFx0dHJ5IHtcclxuXHRcdFx0XHRcdGZpZWxkLmhpZGUgPSBmaWVsZC5oaWRlRXhwcmVzc2lvbih0aGlzLm1vZGVsKCksIGZpZWxkKTtcclxuXHRcdFx0XHR9IGNhdGNoIChlcnJvcikge1xyXG5cdFx0XHRcdFx0Ly8gY29uc29sZS53YXJuKGBoaWRlRXhwcmVzc2lvbiDot7Pov4fkuoblrZfmrrXigJwke2ZpZWxkLmtleX3igJ3vvIzlm6DkuLrov5DooYzml7bkuIrkuIvmloflsJrmnKrlh4blpIflpb3jgIJgKTtcclxuXHRcdFx0XHRcdHJldHVybjtcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0aWYgKGZpZWxkLmhpZGUpIHtcclxuXHRcdFx0XHRcdGZpZWxkLmZpZWxkQ29udHJvbD8uY2xlYXJWYWxpZGF0b3JzKCk7XHJcblx0XHRcdFx0XHRmaWVsZC5maWVsZENvbnRyb2w/LnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xyXG5cdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRjb25zdCB2YWxpZGF0b3JzID0gZmllbGQuZXh0cmE/LmRpc3BsYXlPbmx5XHJcblx0XHRcdFx0XHRcdD8gbnVsbFxyXG5cdFx0XHRcdFx0XHQ6IGZpZWxkVXRpbHMucHJvcHMoZmllbGQpPy5yZXF1aXJlZFxuXHRcdFx0XHRcdFx0XHQ/IChmaWVsZD8udmFsaWRhdG9ycyA/IGZpZWxkPy52YWxpZGF0b3JzIDogbm9uRW1wdHlSZXF1aXJlZClcblx0XHRcdFx0XHRcdFx0OiBudWxsO1xuXHRcdFx0XHRcdGZpZWxkLmZpZWxkQ29udHJvbD8uc2V0VmFsaWRhdG9ycyh2YWxpZGF0b3JzKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH0pO1xyXG5cdH1cclxuXHJcblx0dmFsaWRhdGUoKSB7XHJcblx0XHRmb3IgKGxldCBrZXkgaW4gdGhpcy5vcHRpb25zKCkuZm9ybT8uY29udHJvbHMpIHtcclxuXHRcdFx0IXRoaXMub3B0aW9ucygpLmZvcm0/LmNvbnRyb2xzW2tleV1bJ2Rpc2FibGVkJ10gJiYgdGhpcy5vcHRpb25zKCkuZm9ybT8uY29udHJvbHNba2V5XS5tYXJrQXNEaXJ0eSgpO1xyXG5cdFx0fVxyXG5cdFx0cmV0dXJuIHRoaXMub3B0aW9ucygpLmZvcm0/LmRpc2FibGVkID8gdHJ1ZSA6IHRoaXMub3B0aW9ucygpLmZvcm0/LnZhbGlkO1xyXG5cdH1cclxuXHJcblx0dW5pcXVlSG9vayhmaWVsZDogRm9ybUZpZWxkLCBob29rOiBPYnNlcnZhYmxlPChmaWVsZD86IEZvcm1GaWVsZCkgPT4gdm9pZD4pIHtcclxuXHRcdGZpZWxkLmhvb2sgPSBob29rLnBpcGUoc2hhcmVSZXBsYXkoMSkpO1xyXG5cdH1cclxuXHJcblx0dHJpZ2dlckhvb2soKSB7XHJcblx0XHR0aGlzLmZpZWxkTGlzdC5mb3JFYWNoKChmaWVsZCkgPT4ge1xyXG5cdFx0XHRmaWVsZFV0aWxzLnRyaWdnZXJIb29rQW5kU2V0VmFsdWUoXHJcblx0XHRcdFx0ZmllbGQsXHJcblx0XHRcdFx0ZmllbGRVdGlscy5nZXRNb2RlbCh0aGlzLm1vZGVsKCksIGZpZWxkLmtleSEpLFxyXG5cdFx0XHRcdGZhbHNlLFxyXG5cdFx0XHRcdHRydWUsXHJcblx0XHRcdFx0dGhpcy5ob29rT2JzZXJ2ZXJzLFxyXG5cdFx0XHRcdCgpID0+IHtcclxuXHRcdFx0XHRcdHRoaXMuaGFuZGxlSGlkZUV4cHJlc3Npb24oKTtcclxuXHRcdFx0XHR9LFxyXG5cdFx0XHRcdHRoaXMuZGF0ZVBpcGUsXHJcblx0XHRcdCk7XHJcblx0XHR9KTtcclxuXHR9XHJcblxyXG5cdHJlQ2FsY0xhYmVsU2l6ZSgpIHtcclxuXHRcdGlmICh0aGlzLm9wdGlvbnMoKS5sYWJlbFdpZHRoKSB7XHJcblx0XHRcdHRoaXMubGFiZWxNaW5XaWR0aC5zZXQodGhpcy5vcHRpb25zKCkubGFiZWxXaWR0aCk7XHJcblx0XHRcdHJldHVybjtcclxuXHRcdH1cclxuXHRcdHRoaXMubGFiZWxNaW5XaWR0aC5zZXQodW5kZWZpbmVkKTtcclxuXHRcdHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuXHRcdHRoaXMuaGFuZGxlRmllbGRMYWJlbHMoKTtcclxuXHRcdHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuXHR9XHJcblxyXG5cdGhhbmRsZUZpZWxkTGFiZWxzKCkge1xyXG5cdFx0Y29uc3QgZmllbGRMYWJlbHM6IEVsZW1lbnRSZWZbXSA9IFtdO1xyXG5cdFx0dGhpcy5nZXRGaWVsZExhYmVscyh0aGlzLmZpZWxkQ29tcG9uZW50cywgZmllbGRMYWJlbHMpO1xyXG5cdFx0Y29uc3Qgb2Zmc2V0V2lkdGhzID0gZmllbGRMYWJlbHMubWFwKChmaWVsZExhYmVsKSA9PiBmaWVsZExhYmVsLm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGgpO1xyXG5cdFx0dGhpcy5sYWJlbE1pbldpZHRoLnNldChNYXRoLm1heCguLi5vZmZzZXRXaWR0aHMpICsgMjQgKyAncHgnKTtcclxuXHR9XHJcblxyXG5cdGdldEZpZWxkTGFiZWxzKGZpZWxkQ29tcG9uZW50czogUXVlcnlMaXN0PEZvcm1GaWVsZENvbXBvbmVudD4gfCB1bmRlZmluZWQsIGZpZWxkTGFiZWxzOiBFbGVtZW50UmVmW10pIHtcclxuXHRcdGlmICghZmllbGRDb21wb25lbnRzKSB7XHJcblx0XHRcdHJldHVybjtcclxuXHRcdH1cclxuXHRcdGZpZWxkQ29tcG9uZW50cz8uZm9yRWFjaCgoY29tcG9uZW50KSA9PiB7XHJcblx0XHRcdGNvbnN0IGZpZWxkTGFiZWwgPSBjb21wb25lbnQuZ2V0RmllbGRMYWJlbCgpO1xyXG5cdFx0XHRpZiAoZmllbGRMYWJlbCkge1xyXG5cdFx0XHRcdGZpZWxkTGFiZWxzLnB1c2goZmllbGRMYWJlbCk7XHJcblx0XHRcdH1cclxuXHRcdFx0dGhpcy5nZXRGaWVsZExhYmVscyhjb21wb25lbnQuZ2V0RmllbGRDb21wb25lbnRzKCksIGZpZWxkTGFiZWxzKTtcclxuXHRcdH0pO1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICog6Kem5Y+R5qih5Z6L5Y+Y5Yqo77yM6ZKI5a+56KGo5Y2V5a2X5q615pWw5o2uXHJcblx0ICogQHBhcmFtIG1vZGVsIOmcgOimgeWPmOWKqOeahOaVsOaNrlxyXG5cdCAqIEBwYXJhbSBlbWl0RXZlbnQg5piv5ZCm6Kem5Y+R5LqL5Lu2XHJcblx0ICogQHBhcmFtIGRldGVjdE1vZGVsQ2hhbmdlIOaYr+WQpuinpuWPkWRldGVjdE1vZGVsQ2hhbmdlXHJcblx0ICovXHJcblx0dHJpZ2dlck1vZGVsRWZmZWN0KG1vZGVsOiBhbnksIGVtaXRFdmVudD86IGJvb2xlYW4sIGVtaXRIb29rPzogYm9vbGVhbikge1xyXG5cdFx0T2JqZWN0LmtleXMobW9kZWwpLmZvckVhY2goKGtleSkgPT4ge1xyXG5cdFx0XHRjb25zdCBmaWVsZCA9IHRoaXMuZ2V0RmllbGQoa2V5KSE7XHJcblx0XHRcdGlmICghZmllbGQpIHJldHVybjtcclxuXHRcdFx0ZmllbGRVdGlscy50cmlnZ2VySG9va0FuZFNldFZhbHVlKFxyXG5cdFx0XHRcdGZpZWxkLFxyXG5cdFx0XHRcdG1vZGVsW2tleV0sXHJcblx0XHRcdFx0ZW1pdEV2ZW50ID8/IHRydWUsXHJcblx0XHRcdFx0ZW1pdEhvb2sgPz8gdHJ1ZSxcclxuXHRcdFx0XHR0aGlzLmhvb2tPYnNlcnZlcnMsXHJcblx0XHRcdFx0KCkgPT4ge1xyXG5cdFx0XHRcdFx0dGhpcy5oYW5kbGVIaWRlRXhwcmVzc2lvbigpO1xyXG5cdFx0XHRcdH0sXHJcblx0XHRcdFx0dGhpcy5kYXRlUGlwZSxcclxuXHRcdFx0KTtcclxuXHRcdH0pO1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICog6Kem5Y+R5pWw5o2u5Y+Y5Yqo77yM6ZKI5a+56Z2e6KGo5Y2V5a2X5q615pWw5o2uXHJcblx0ICogQHBhcmFtIGRhdGFMaXN0IOWklumDqOaVsOaNruWIl+ihqFxyXG5cdCAqL1xyXG5cdHRyaWdnZXJEYXRhRWZmZWN0KGRhdGFMaXN0OiBFeHRlcm5hbERhdGFbXSkge1xyXG5cdFx0ZGF0YUxpc3QuZm9yRWFjaCgoZGF0YSkgPT4ge1xyXG5cdFx0XHRmaWVsZFV0aWxzLnNldE1vZGVsKHRoaXMubW9kZWwoKSwgZGF0YS5rZXkhLCBkYXRhLnZhbHVlKTtcclxuXHRcdFx0aWYgKGRhdGEubGFiZWwpIHtcclxuXHRcdFx0XHR0aGlzLmNoYW5nZWRNb2RlbFtkYXRhLmtleSFdID0geyBuYW1lOiBkYXRhLmxhYmVsLCB2YWx1ZTogZGF0YS52YWx1ZSwgdHlwZTogJ2lucHV0dGV4dCcgfTtcclxuXHRcdFx0XHR0aGlzLmhhbmRsZVVwc2VydChkYXRhLmtleSEsIGRhdGEudmFsdWUsIHRydWUpO1xyXG5cdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdHRoaXMuaGFuZGxlVXBzZXJ0KGRhdGEua2V5ISwgZGF0YS52YWx1ZSk7XHJcblx0XHRcdH1cclxuXHRcdH0pO1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICog6Kem5Y+R5pel5b+X5Y+Y5Yqo77yM6ZKI5a+56Z2e6KGo5Y2V5a2X5q615pWw5o2uXHJcblx0ICogQHBhcmFtIGRhdGFMaXN0IOWklumDqOaVsOaNruWIl+ihqFxyXG5cdCAqL1xyXG5cdHRyaWdnZXJMb2dFZmZlY3QoZGF0YUxpc3Q6IEV4dGVybmFsRGF0YVtdKSB7XHJcblx0XHRkYXRhTGlzdC5mb3JFYWNoKChkYXRhKSA9PiB7XHJcblx0XHRcdGlmIChkYXRhLmxhYmVsKSB7XHJcblx0XHRcdFx0dGhpcy5jaGFuZ2VkTW9kZWxbZGF0YS5rZXkhXSA9IHsgbmFtZTogZGF0YS5sYWJlbCwgdmFsdWU6IGRhdGEudmFsdWUsIHR5cGU6ICdpbnB1dHRleHQnIH07XHJcblx0XHRcdFx0dGhpcy5oYW5kbGVVcHNlcnQoZGF0YS5rZXkhLCBkYXRhLnZhbHVlLCB0cnVlKTtcclxuXHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHR0aGlzLmhhbmRsZVVwc2VydChkYXRhLmtleSEsIGRhdGEudmFsdWUpO1xyXG5cdFx0XHR9XHJcblx0XHR9KTtcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIOinpuWPkeWtl+auteemgeeUqO+8jOmSiOWvueihqOWNleWtl+autVxyXG5cdCAqIEBwYXJhbSBrZXlzIOWtl+autWtleeWIl+ihqFxyXG5cdCAqL1xyXG5cdHRyaWdnZXJEaXNhYmxlZEVmZmVjdChrZXlzOiBzdHJpbmdbXSkge1xyXG5cdFx0a2V5cz8uZm9yRWFjaCgoa2V5KSA9PiB7XHJcblx0XHRcdHRoaXMuc2V0RmllbGREaXNhYmxlZChrZXkpO1xyXG5cdFx0fSk7XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiDliqjmgIHorr7nva7lrZfmrrXnpoHnlKjvvIznpoHnlKjliY3muIXpmaTlrZfmrrVkaXJ0eeagh+iusFxyXG5cdCAqIEBwYXJhbSBrZXkg5a2X5q61a2V5XHJcblx0ICovXHJcblx0c2V0RmllbGREaXNhYmxlZChrZXk6IHN0cmluZykge1xyXG5cdFx0dGhpcy5nZXRGaWVsZChrZXkpPy5maWVsZENvbnRyb2w/Lm1hcmtBc1ByaXN0aW5lKHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcclxuXHRcdHRoaXMuZ2V0RmllbGQoa2V5KT8uZmllbGRDb250cm9sPy5kaXNhYmxlKHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIOihqOWNleaPkOS6pOWQjueahOaUtuWwvuWkhOeQhu+8jOS4gOiIrOWcqOaPkOS6pOaOpeWPo+eahOWbnuiwg+WHveaVsOaJp+ihjFxyXG5cdCAqL1xyXG5cdGZpbmFsaXplKCkge1xyXG5cdFx0dGhpcy5maWVsZExpc3QuZm9yRWFjaCgoZmllbGQpID0+IHtcclxuXHRcdFx0aWYgKFsnaW1hZ2UnLCAndXBsb2FkJ10uaW5jbHVkZXMoZmllbGQudHlwZSEpKSB7XHJcblx0XHRcdFx0ZmllbGQuZmllbGRDb250cm9sPy5hZnRlclN1Ym1pdCgpO1xyXG5cdFx0XHR9XHJcblx0XHR9KTtcclxuXHR9XHJcbn1cclxuIiwiQGZvciAoZmllbGQgb2YgZmllbGRzKCk7IHRyYWNrIGZpZWxkKSB7XG5cdDxmb3JtLWZpZWxkXG5cdFx0Y2xhc3M9XCJ3LWZ1bGxcIlxuXHRcdFtmaWVsZF09XCJmaWVsZFwiPlxuXHQ8L2Zvcm0tZmllbGQ+XG59XG4iXX0=
|
|
@@ -36,6 +36,9 @@ const _fieldUtils = {
|
|
|
36
36
|
case 'image':
|
|
37
37
|
props = field.imageProps;
|
|
38
38
|
break;
|
|
39
|
+
case 'imagepreview':
|
|
40
|
+
props = field.imagePreviewProps;
|
|
41
|
+
break;
|
|
39
42
|
case 'codemirror':
|
|
40
43
|
props = field.codeMirrorProps;
|
|
41
44
|
break;
|
|
@@ -177,7 +180,7 @@ const _fieldUtils = {
|
|
|
177
180
|
if (field.type == 'upload') {
|
|
178
181
|
return _fieldUtils.toUploadValue(field, raw);
|
|
179
182
|
}
|
|
180
|
-
return raw
|
|
183
|
+
return raw ?? '';
|
|
181
184
|
},
|
|
182
185
|
toTreeSelectValue: (field, raw) => {
|
|
183
186
|
if (field.treeSelectProps?.selectionMode == 'single') {
|
|
@@ -293,4 +296,4 @@ export const fieldUtils = {
|
|
|
293
296
|
transLog: _fieldUtils.transLog,
|
|
294
297
|
isFakedChange: _fieldUtils.isFakedChange,
|
|
295
298
|
};
|
|
296
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQtdXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pbW0tZWxlbWVudC11aS9zcmMvbGliL2Zvcm0vZm9ybS1maWVsZC9maWVsZC11dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEVBQUUsWUFBWSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXpELE1BQU0sV0FBVyxHQUFHO0lBQ25CLEtBQUssRUFBRSxDQUFDLEtBQWdCLEVBQWMsRUFBRTtRQUN2QyxJQUFJLEtBQUssR0FBZSxFQUFFLENBQUM7UUFDM0IsUUFBUSxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDcEIsS0FBSyxXQUFXO2dCQUNmLEtBQUssR0FBRyxLQUFLLENBQUMsY0FBZSxDQUFDO2dCQUM5QixNQUFNO1lBQ1AsS0FBSyxhQUFhO2dCQUNqQixLQUFLLEdBQUcsS0FBSyxDQUFDLGdCQUFpQixDQUFDO2dCQUNoQyxNQUFNO1lBQ1AsS0FBSyxRQUFRO2dCQUNaLEtBQUssR0FBRyxLQUFLLENBQUMsV0FBWSxDQUFDO2dCQUMzQixNQUFNO1lBQ1AsS0FBSyxZQUFZO2dCQUNoQixLQUFLLEdBQUcsS0FBSyxDQUFDLGVBQWdCLENBQUM7Z0JBQy9CLE1BQU07WUFDUCxLQUFLLFlBQVk7Z0JBQ2hCLEtBQUssR0FBRyxLQUFLLENBQUMsZUFBZ0IsQ0FBQztnQkFDL0IsTUFBTTtZQUNQLEtBQUssY0FBYztnQkFDbEIsS0FBSyxHQUFHLEtBQUssQ0FBQyxpQkFBa0IsQ0FBQztnQkFDakMsTUFBTTtZQUNQLEtBQUssYUFBYTtnQkFDakIsS0FBSyxHQUFHLEtBQUssQ0FBQyxnQkFBaUIsQ0FBQztnQkFDaEMsTUFBTTtZQUNQLEtBQUssT0FBTztnQkFDWCxLQUFLLEdBQUcsS0FBSyxDQUFDLFVBQVcsQ0FBQztnQkFDMUIsTUFBTTtZQUNQLEtBQUssVUFBVTtnQkFDZCxLQUFLLEdBQUcsS0FBSyxDQUFDLGFBQWMsQ0FBQztnQkFDN0IsTUFBTTtZQUNQLEtBQUssUUFBUTtnQkFDWixLQUFLLEdBQUcsS0FBSyxDQUFDLFdBQVksQ0FBQztnQkFDM0IsTUFBTTtZQUNQLEtBQUssT0FBTztnQkFDWCxLQUFLLEdBQUcsS0FBSyxDQUFDLFVBQVcsQ0FBQztnQkFDMUIsTUFBTTtZQUNQLEtBQUssWUFBWTtnQkFDaEIsS0FBSyxHQUFHLEtBQUssQ0FBQyxlQUFnQixDQUFDO2dCQUMvQixNQUFNO1lBQ1AsS0FBSyxhQUFhO2dCQUNqQixLQUFLLEdBQUcsS0FBSyxDQUFDLGdCQUFpQixDQUFDO2dCQUNoQyxNQUFNO1FBQ1IsQ0FBQztRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2QsQ0FBQztJQUNELEtBQUssRUFBRSxDQUFDLEtBQWdCLEVBQUUsV0FBd0IsRUFBc0IsRUFBRTtRQUN6RSxNQUFNLE9BQU8sR0FBRyxXQUFXLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU8sQ0FBQztRQUNqRCxJQUFJLE9BQU8sRUFBRSxDQUFDO1lBQ2IsT0FBTyxXQUFXLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ25DLENBQUM7UUFDRCxPQUFPLFdBQVcsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxDQUFDO0lBQ3ZDLENBQUM7SUFDRCxRQUFRLENBQUMsS0FBVSxFQUFFLEdBQVcsRUFBRSxLQUFVO1FBQzNDLE1BQU0sSUFBSSxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDNUIsSUFBSSxJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQ3RCLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUM7WUFDbkIsT0FBTztRQUNSLENBQUM7YUFBTSxDQUFDO1lBQ1AsTUFBTSxDQUFDLEdBQVEsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQzVCLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLFNBQVMsRUFBRSxDQUFDO2dCQUMzQixLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ2YsQ0FBQztZQUNELElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDaEQsQ0FBQztJQUNGLENBQUM7SUFDRCxRQUFRLENBQUMsS0FBVSxFQUFFLEdBQVc7UUFDL0IsTUFBTSxJQUFJLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUM1QixJQUFJLElBQUksQ0FBQyxNQUFNLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDdEIsT0FBTyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDbkIsQ0FBQzthQUFNLENBQUM7WUFDUCxNQUFNLENBQUMsR0FBUSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDNUIsSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksU0FBUyxFQUFFLENBQUM7Z0JBQzNCLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDZixDQUFDO1lBQ0QsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDaEQsQ0FBQztJQUNGLENBQUM7SUFDRCxZQUFZLENBQUMsS0FBZ0I7UUFDNUIsSUFBSSxDQUFDLENBQUMsUUFBUSxFQUFFLFlBQVksRUFBRSxhQUFhLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFLLENBQUM7WUFBRSxPQUFPO1FBQ25GLFdBQVcsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFVLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUUsV0FBVyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQVUsQ0FBQyxPQUFPLENBQUM7WUFDckcsQ0FBQyxDQUFFLFdBQVcsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFVLENBQUMsT0FBTztZQUM1QyxDQUFDLENBQUMsU0FBUyxDQUFDO0lBQ2QsQ0FBQztJQUNELG1CQUFtQixDQUFDLEtBQWdCLEVBQUUsWUFBaUIsRUFBRSxRQUFrQjtRQUMxRSxJQUFJLEtBQUssQ0FBQyxJQUFJLElBQUksWUFBWSxJQUFJLFlBQVksS0FBSyxPQUFPLEVBQUUsQ0FBQztZQUM1RCxPQUFPLFdBQVcsQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUNyQyxDQUFDO1FBQ0QsT0FBTyxZQUFZLENBQUM7SUFDckIsQ0FBQztJQUNELGNBQWMsQ0FBQyxZQUFvQixHQUFHO1FBQ3JDLE1BQU0sR0FBRyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7UUFDdkIsTUFBTSxJQUFJLEdBQUcsR0FBRyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQy9CLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUMxRCxNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUNuRCxPQUFPLEdBQUcsSUFBSSxHQUFHLFNBQVMsR0FBRyxLQUFLLEdBQUcsU0FBUyxHQUFHLEdBQUcsRUFBRSxDQUFDO0lBQ3hELENBQUM7SUFDRCxzQkFBc0IsRUFBRSxDQUN2QixLQUFnQixFQUNoQixLQUFVLEVBQ1YsU0FBa0IsRUFDbEIsUUFBaUIsRUFDakIsYUFBb0IsRUFDcEIsUUFBYSxFQUNiLFFBQWtCLEVBQ2pCLEVBQUU7UUFDSCxJQUFJLEtBQUssQ0FBQyxJQUFJLElBQUksWUFBWSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQzVDLE1BQU0sR0FBRyxHQUFHLEtBQUssQ0FBQyxJQUFJO2lCQUNwQixJQUFJLENBQ0osR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7Z0JBQ1osSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2IsQ0FBQyxDQUFDLEVBQ0YsVUFBVSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7Z0JBQ3BCLE9BQU8sQ0FBQyxJQUFJLENBQUMsMkJBQTJCLEtBQUssQ0FBQyxHQUFHLHVDQUF1QyxDQUFDLENBQUM7Z0JBQzFGLE9BQU8sRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ3RCLENBQUMsQ0FBQyxDQUNGO2lCQUNBLFNBQVMsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2YsS0FBSyxDQUFDLFlBQVksRUFBRSxRQUFRLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLFFBQVEsQ0FBQyxFQUFFLEVBQUUsU0FBUyxFQUFFLEVBQUUsUUFBUSxDQUFDLEVBQUUsUUFBUSxJQUFJLFFBQVEsRUFBRSxDQUFDO1lBQ2pJLENBQUMsQ0FBQyxDQUFDO1lBQ0osYUFBYSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztRQUM3QyxDQUFDO2FBQU0sQ0FBQztZQUNQLEtBQUssQ0FBQyxZQUFZLEVBQUUsUUFBUSxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxRQUFRLENBQUMsRUFBRSxFQUFFLFNBQVMsRUFBRSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1lBQ3hHLFFBQVEsSUFBSSxRQUFRLEVBQUUsQ0FBQztRQUN4QixDQUFDO0lBQ0YsQ0FBQztJQUNELGNBQWMsRUFBRSxDQUFDLEtBQWdCLEVBQUUsTUFBVyxFQUFFLFFBQWtCLEVBQU8sRUFBRTtRQUMxRSxJQUFJLEtBQUssQ0FBQyxJQUFJLElBQUksWUFBWSxFQUFFLENBQUM7WUFDaEMsT0FBTyxXQUFXLENBQUMsbUJBQW1CLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ3ZELENBQUM7UUFDRCxJQUFJLEtBQUssQ0FBQyxJQUFJLElBQUksYUFBYSxFQUFFLENBQUM7WUFDakMsT0FBTyxXQUFXLENBQUMsb0JBQW9CLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ3hELENBQUM7UUFDRCxJQUFJLEtBQUssQ0FBQyxJQUFJLElBQUksT0FBTyxFQUFFLENBQUM7WUFDM0IsT0FBTyxXQUFXLENBQUMsY0FBYyxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQztRQUNsRCxDQUFDO1FBQ0QsSUFBSSxLQUFLLENBQUMsSUFBSSxJQUFJLFFBQVEsRUFBRSxDQUFDO1lBQzVCLE9BQU8sV0FBVyxDQUFDLGVBQWUsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDbkQsQ0FBQztRQUNELElBQUksS0FBSyxDQUFDLElBQUksSUFBSSxZQUFZLEVBQUUsQ0FBQztZQUNoQyxPQUFPLFdBQVcsQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ2pFLENBQUM7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNmLENBQUM7SUFDRCxtQkFBbUIsRUFBRSxDQUFDLEtBQWdCLEVBQUUsTUFBVyxFQUFVLEVBQUU7UUFDOUQsSUFBSSxLQUFLLENBQUMsZUFBZSxFQUFFLGFBQWEsSUFBSSxRQUFRLEVBQUUsQ0FBQztZQUN0RCxPQUFPLE1BQU0sRUFBRSxHQUFHLENBQUM7UUFDcEIsQ0FBQztRQUNELE9BQU8sTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQVMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBQ0Qsb0JBQW9CLEVBQUUsQ0FBQyxLQUFnQixFQUFFLE1BQVcsRUFBVSxFQUFFO1FBQy9ELElBQUksQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLEVBQUUsV0FBVyxFQUFFLENBQUM7WUFDMUMsT0FBTyxNQUFNLENBQUM7UUFDZixDQUFDO1FBQ0QsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3pCLENBQUM7SUFDRCxjQUFjLEVBQUUsQ0FBQyxLQUFnQixFQUFFLE1BQVcsRUFBVSxFQUFFO1FBQ3pELE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN6QixDQUFDO0lBQ0QsZUFBZSxFQUFFLENBQUMsS0FBZ0IsRUFBRSxNQUFXLEVBQVUsRUFBRTtRQUMxRCxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDekIsQ0FBQztJQUNELG1CQUFtQixFQUFFLENBQUMsS0FBZ0IsRUFBRSxNQUFXLEVBQUUsUUFBYSxFQUFVLEVBQUU7UUFDN0UsSUFBSSxLQUFLLEVBQUUsZUFBZSxFQUFFLGFBQWEsSUFBSSxPQUFPLElBQUksTUFBTSxDQUFDLE1BQU0sSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUM1RSxpQ0FBaUM7WUFDakMsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3pCLENBQUM7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNmLENBQUM7SUFDRCxZQUFZLEVBQUUsQ0FBQyxLQUFnQixFQUFFLEdBQVEsRUFBRSxRQUFrQixFQUFPLEVBQUU7UUFDckUsSUFBSSxLQUFLLENBQUMsSUFBSSxJQUFJLFlBQVksRUFBRSxDQUFDO1lBQ2hDLE9BQU8sV0FBVyxDQUFDLGlCQUFpQixDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQztRQUNsRCxDQUFDO1FBQ0QsSUFBSSxLQUFLLENBQUMsSUFBSSxJQUFJLFlBQVksRUFBRSxDQUFDO1lBQ2hDLE9BQU8sV0FBVyxDQUFDLGlCQUFpQixDQUFDLEtBQUssRUFBRSxHQUFHLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDNUQsQ0FBQztRQUNELElBQUksS0FBSyxDQUFDLElBQUksSUFBSSxhQUFhLEVBQUUsQ0FBQztZQUNqQyxPQUFPLFdBQVcsQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDbkQsQ0FBQztRQUNELElBQUksS0FBSyxDQUFDLElBQUksSUFBSSxPQUFPLEVBQUUsQ0FBQztZQUMzQixPQUFPLFdBQVcsQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQzdDLENBQUM7UUFDRCxJQUFJLEtBQUssQ0FBQyxJQUFJLElBQUksUUFBUSxFQUFFLENBQUM7WUFDNUIsT0FBTyxXQUFXLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQztRQUM5QyxDQUFDO1FBQ0QsT0FBTyxHQUFHLElBQUksRUFBRSxDQUFDO0lBQ2xCLENBQUM7SUFDRCxpQkFBaUIsRUFBRSxDQUFDLEtBQWdCLEVBQUUsR0FBUSxFQUFPLEVBQUU7UUFDdEQsSUFBSSxLQUFLLENBQUMsZUFBZSxFQUFFLGFBQWEsSUFBSSxRQUFRLEVBQUUsQ0FBQztZQUN0RCxPQUFPLFdBQVcsQ0FBQyxZQUFZLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxlQUFlLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDdEUsQ0FBQztRQUNELE1BQU0sS0FBSyxHQUFVLEVBQUUsQ0FBQztRQUN4QixXQUFXLENBQUMsYUFBYSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxFQUFFLEtBQUssQ0FBQyxlQUFlLEVBQUUsT0FBTyxJQUFJLEVBQUUsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUM5RixPQUFPLEtBQUssQ0FBQztJQUNkLENBQUM7SUFDRCxpQkFBaUIsRUFBRSxDQUFDLEtBQWdCLEVBQUUsR0FBUSxFQUFFLFFBQWtCLEVBQUUsYUFBc0IsS0FBSyxFQUFPLEVBQUU7UUFDdkcsSUFBSSxDQUFDLEdBQUcsSUFBSSxHQUFHLElBQUksc0JBQXNCLEVBQUUsQ0FBQztZQUMzQyxPQUFPLEVBQUUsQ0FBQztRQUNYLENBQUM7UUFDRCxJQUFJLFdBQVcsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUNoQyxNQUFNLGNBQWMsR0FBRyxLQUFLLENBQUMsZUFBZSxFQUFFLGNBQWMsSUFBSSxZQUFZLENBQUM7WUFDN0UsT0FBTyxRQUFRLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxjQUFjLEVBQUUsS0FBSyxDQUFDLElBQUksR0FBRyxDQUFDO1FBQzlELENBQUM7UUFDRCxJQUFJLENBQUMsVUFBVSxJQUFJLEtBQUssRUFBRSxlQUFlLEVBQUUsYUFBYSxJQUFJLE9BQU8sSUFBSSxHQUFHLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDMUYsTUFBTSxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3BDLE9BQU8sQ0FBQyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ3pDLENBQUM7UUFDRCxPQUFPLEdBQUcsQ0FBQztJQUNaLENBQUM7SUFDRCxrQkFBa0IsRUFBRSxDQUFDLEtBQWdCLEVBQUUsR0FBUSxFQUFPLEVBQUU7UUFDdkQsSUFBSSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsRUFBRSxXQUFXLEVBQUUsQ0FBQztZQUMxQyxPQUFPLEdBQUcsSUFBSSxFQUFFLENBQUM7UUFDbEIsQ0FBQztRQUNELE9BQU8sQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN0QyxDQUFDO0lBQ0QsWUFBWSxFQUFFLENBQUMsS0FBZ0IsRUFBRSxHQUFRLEVBQU8sRUFBRTtRQUNqRCxPQUFPLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDdEMsQ0FBQztJQUNELGFBQWEsRUFBRSxDQUFDLEtBQWdCLEVBQUUsR0FBUSxFQUFPLEVBQUU7UUFDbEQsT0FBTyxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3RDLENBQUM7SUFDRCxZQUFZLENBQUMsS0FBYSxFQUFFLFFBQWdCO1FBQzNDLElBQUksQ0FBQyxRQUFRLElBQUksUUFBUSxDQUFDLE1BQU0sSUFBSSxDQUFDO1lBQUUsT0FBTztRQUM5QyxNQUFNLENBQUMsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLEtBQUssQ0FBQyxDQUFDO1FBQy9DLElBQUksQ0FBQztZQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ2hCLEtBQUssTUFBTSxFQUFFLElBQUksUUFBUSxFQUFFLENBQUM7WUFDM0IsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ2pELElBQUksRUFBRTtnQkFBRSxPQUFPLEVBQUUsQ0FBQztRQUNuQixDQUFDO1FBQ0QsT0FBTztJQUNSLENBQUM7SUFDRCxhQUFhLENBQUMsTUFBZ0IsRUFBRSxRQUFnQixFQUFFLEtBQWE7UUFDOUQsSUFBSSxDQUFDLFFBQVEsSUFBSSxRQUFRLENBQUMsTUFBTSxJQUFJLENBQUM7WUFBRSxPQUFPO1FBQzlDLE1BQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDakUsS0FBSyxFQUFFLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDO1FBQ3JCLEtBQUssTUFBTSxFQUFFLElBQUksUUFBUSxFQUFFLENBQUM7WUFDM0IsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNoRCxDQUFDO0lBQ0YsQ0FBQztJQUNELFVBQVUsQ0FBQyxRQUFhLEVBQUUsU0FBc0IsRUFBRSxRQUFrQjtRQUNuRSxNQUFNLE1BQU0sR0FBUSxFQUFFLENBQUM7UUFDdkIsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQzNCLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRztnQkFBRSxPQUFPO1lBQ3ZCLE1BQU0sUUFBUSxHQUFHLFdBQVcsQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUMzRCxJQUFJLEtBQUssQ0FBQyxJQUFJLElBQUksWUFBWSxFQUFFLENBQUM7Z0JBQ2hDLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsV0FBVyxDQUFDLGlCQUFpQixDQUFDLEtBQUssRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDO2dCQUNuRixPQUFPO1lBQ1IsQ0FBQztZQUNELE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsUUFBUSxDQUFDO1FBQzlCLENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxNQUFNLENBQUM7SUFDZixDQUFDO0lBQ0QsUUFBUSxDQUFDLFFBQWEsRUFBRSxZQUFpQixFQUFFLFNBQWMsRUFBRSxLQUFjLEVBQUMsSUFBUTtRQUNqRixJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ1gsYUFBYTtZQUNiLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUE7WUFDL0IsSUFBSSxTQUFTLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQSxJQUFJLENBQUM7WUFDeEQsT0FBTyxHQUFHLFNBQVMsSUFBSSxTQUFTLEVBQUUsQ0FBQTtRQUNuQyxDQUFDO1FBQ0QsTUFBTSxNQUFNLEdBQWEsRUFBRSxDQUFDO1FBQzVCLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDekMsSUFBSSxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxJQUFJLFlBQVksRUFBRSxDQUFDO2dCQUM1QyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksTUFBTSxDQUFDLENBQUM7Z0JBQzlDLE9BQU87WUFDUixDQUFDO1lBQ0QsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEtBQUssUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsT0FBTyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDdkcsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDekIsQ0FBQztJQUNELG9CQUFvQjtJQUNwQixzRUFBc0U7SUFDdEUsa0RBQWtEO0lBQ2xELGFBQWEsQ0FBQyxRQUFhLEVBQUUsUUFBYSxFQUFFLEtBQWdCO1FBQzNELE1BQU0sV0FBVyxHQUFHLENBQUMsV0FBVyxFQUFFLGFBQWEsRUFBRSxRQUFRLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxjQUFjLEVBQUUsYUFBYSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQy9ILElBQUksV0FBVyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSyxDQUFDLEVBQUUsQ0FBQztZQUN2QyxPQUFPLENBQUMsUUFBUSxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQzdDLENBQUM7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNkLENBQUM7SUFDRCxTQUFTLENBQUMsT0FBZTtRQUN4QixPQUFPLGtFQUFrRSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN6RixDQUFDO0NBQ0QsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRztJQUN6QixLQUFLLEVBQUUsV0FBVyxDQUFDLEtBQUs7SUFDeEIsS0FBSyxFQUFFLFdBQVcsQ0FBQyxLQUFLO0lBQ3hCLFFBQVEsRUFBRSxXQUFXLENBQUMsUUFBUTtJQUM5QixRQUFRLEVBQUUsV0FBVyxDQUFDLFFBQVE7SUFDOUIsWUFBWSxFQUFFLFdBQVcsQ0FBQyxZQUFZO0lBQ3RDLG1CQUFtQixFQUFFLFdBQVcsQ0FBQyxtQkFBbUI7SUFDcEQsc0JBQXNCLEVBQUUsV0FBVyxDQUFDLHNCQUFzQjtJQUMxRCxjQUFjLEVBQUUsV0FBVyxDQUFDLGNBQWM7SUFDMUMsVUFBVSxFQUFFLFdBQVcsQ0FBQyxVQUFVO0lBQ2xDLFFBQVEsRUFBRSxXQUFXLENBQUMsUUFBUTtJQUM5QixhQUFhLEVBQUUsV0FBVyxDQUFDLGFBQWE7Q0FDeEMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZvcm1GaWVsZCwgRmllbGRQcm9wcyB9IGZyb20gJy4vZm9ybS1maWVsZCc7XG5pbXBvcnQgeyBEYXRlUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBJMThuU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2UvaTE4bi5zZXJ2aWNlJztcbmltcG9ydCB7IGlzT2JzZXJ2YWJsZSwgb2YsIHRhcCwgY2F0Y2hFcnJvciB9IGZyb20gJ3J4anMnO1xuXG5jb25zdCBfZmllbGRVdGlscyA9IHtcblx0cHJvcHM6IChmaWVsZDogRm9ybUZpZWxkKTogRmllbGRQcm9wcyA9PiB7XG5cdFx0bGV0IHByb3BzOiBGaWVsZFByb3BzID0ge307XG5cdFx0c3dpdGNoIChmaWVsZC50eXBlKSB7XG5cdFx0XHRjYXNlICdpbnB1dHRleHQnOlxuXHRcdFx0XHRwcm9wcyA9IGZpZWxkLmlucHV0VGV4dFByb3BzITtcblx0XHRcdFx0YnJlYWs7XG5cdFx0XHRjYXNlICdpbnB1dG51bWJlcic6XG5cdFx0XHRcdHByb3BzID0gZmllbGQuaW5wdXROdW1iZXJQcm9wcyE7XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0Y2FzZSAnc2VsZWN0Jzpcblx0XHRcdFx0cHJvcHMgPSBmaWVsZC5zZWxlY3RQcm9wcyE7XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0Y2FzZSAndHJlZXNlbGVjdCc6XG5cdFx0XHRcdHByb3BzID0gZmllbGQudHJlZVNlbGVjdFByb3BzITtcblx0XHRcdFx0YnJlYWs7XG5cdFx0XHRjYXNlICdkYXRlcGlja2VyJzpcblx0XHRcdFx0cHJvcHMgPSBmaWVsZC5kYXRlUGlja2VyUHJvcHMhO1xuXHRcdFx0XHRicmVhaztcblx0XHRcdGNhc2UgJ2F1dG9jb21wbGV0ZSc6XG5cdFx0XHRcdHByb3BzID0gZmllbGQuYXV0b0NvbXBsZXRlUHJvcHMhO1xuXHRcdFx0XHRicmVhaztcblx0XHRcdGNhc2UgJ211bHRpc2VsZWN0Jzpcblx0XHRcdFx0cHJvcHMgPSBmaWVsZC5tdWx0aVNlbGVjdFByb3BzITtcblx0XHRcdFx0YnJlYWs7XG5cdFx0XHRjYXNlICdyYWRpbyc6XG5cdFx0XHRcdHByb3BzID0gZmllbGQucmFkaW9Qcm9wcyE7XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0Y2FzZSAndGV4dGFyZWEnOlxuXHRcdFx0XHRwcm9wcyA9IGZpZWxkLnRleHRBcmVhUHJvcHMhO1xuXHRcdFx0XHRicmVhaztcblx0XHRcdGNhc2UgJ3VwbG9hZCc6XG5cdFx0XHRcdHByb3BzID0gZmllbGQudXBsb2FkUHJvcHMhO1xuXHRcdFx0XHRicmVhaztcblx0XHRcdGNhc2UgJ2ltYWdlJzpcblx0XHRcdFx0cHJvcHMgPSBmaWVsZC5pbWFnZVByb3BzITtcblx0XHRcdFx0YnJlYWs7XG5cdFx0XHRjYXNlICdjb2RlbWlycm9yJzpcblx0XHRcdFx0cHJvcHMgPSBmaWVsZC5jb2RlTWlycm9yUHJvcHMhO1xuXHRcdFx0XHRicmVhaztcblx0XHRcdGNhc2UgJ3Jvd3NlbGVjdG9yJzpcblx0XHRcdFx0cHJvcHMgPSBmaWVsZC5yb3dTZWxlY3RvclByb3BzITtcblx0XHRcdFx0YnJlYWs7XG5cdFx0fVxuXHRcdHJldHVybiBwcm9wcztcblx0fSxcblx0bGFiZWw6IChmaWVsZDogRm9ybUZpZWxkLCBpMThuU2VydmljZTogSTE4blNlcnZpY2UpOiBzdHJpbmcgfCB1bmRlZmluZWQgPT4ge1xuXHRcdGNvbnN0IGkxOG5LZXkgPSBfZmllbGRVdGlscy5wcm9wcyhmaWVsZCkuaTE4bktleTtcblx0XHRpZiAoaTE4bktleSkge1xuXHRcdFx0cmV0dXJuIGkxOG5TZXJ2aWNlLmZhbnlpKGkxOG5LZXkpO1xuXHRcdH1cblx0XHRyZXR1cm4gX2ZpZWxkVXRpbHMucHJvcHMoZmllbGQpLmxhYmVsO1xuXHR9LFxuXHRzZXRNb2RlbChtb2RlbDogYW55LCBrZXk6IHN0cmluZywgdmFsdWU6IGFueSkge1xuXHRcdGNvbnN0IGtleXMgPSBrZXkuc3BsaXQoJy4nKTtcblx0XHRpZiAoa2V5cy5sZW5ndGggPT0gMSkge1xuXHRcdFx0bW9kZWxba2V5XSA9IHZhbHVlO1xuXHRcdFx0cmV0dXJuO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRjb25zdCBrOiBhbnkgPSBrZXlzLnNoaWZ0KCk7XG5cdFx0XHRpZiAobW9kZWxba10gPT0gdW5kZWZpbmVkKSB7XG5cdFx0XHRcdG1vZGVsW2tdID0ge307XG5cdFx0XHR9XG5cdFx0XHR0aGlzLnNldE1vZGVsKG1vZGVsW2tdLCBrZXlzLmpvaW4oJy4nKSwgdmFsdWUpO1xuXHRcdH1cblx0fSxcblx0Z2V0TW9kZWwobW9kZWw6IGFueSwga2V5OiBzdHJpbmcpOiBhbnkge1xuXHRcdGNvbnN0IGtleXMgPSBrZXkuc3BsaXQoJy4nKTtcblx0XHRpZiAoa2V5cy5sZW5ndGggPT0gMSkge1xuXHRcdFx0cmV0dXJuIG1vZGVsW2tleV07XG5cdFx0fSBlbHNlIHtcblx0XHRcdGNvbnN0IGs6IGFueSA9IGtleXMuc2hpZnQoKTtcblx0XHRcdGlmIChtb2RlbFtrXSA9PSB1bmRlZmluZWQpIHtcblx0XHRcdFx0bW9kZWxba10gPSB7fTtcblx0XHRcdH1cblx0XHRcdHJldHVybiB0aGlzLmdldE1vZGVsKG1vZGVsW2tdLCBrZXlzLmpvaW4oJy4nKSk7XG5cdFx0fVxuXHR9LFxuXHRmaWVsZEhhbmRsZXIoZmllbGQ6IEZvcm1GaWVsZCkge1xuXHRcdGlmICghWydzZWxlY3QnLCAndHJlZXNlbGVjdCcsICdtdWx0aXNlbGVjdCcsICdyYWRpbyddLmluY2x1ZGVzKGZpZWxkLnR5cGUhKSkgcmV0dXJuO1xuXHRcdChfZmllbGRVdGlscy5wcm9wcyhmaWVsZCkgYXMgYW55KSEub3B0aW9ucyA9IEFycmF5LmlzQXJyYXkoKF9maWVsZFV0aWxzLnByb3BzKGZpZWxkKSBhcyBhbnkpIS5vcHRpb25zKVxuXHRcdFx0PyAoX2ZpZWxkVXRpbHMucHJvcHMoZmllbGQpIGFzIGFueSkhLm9wdGlvbnNcblx0XHRcdDogdW5kZWZpbmVkO1xuXHR9LFxuXHRkYWZhdWx0VmFsdWVIYW5kbGVyKGZpZWxkOiBGb3JtRmllbGQsIGRlZmF1bHRWYWx1ZTogYW55LCBkYXRlUGlwZTogRGF0ZVBpcGUpIHtcblx0XHRpZiAoZmllbGQudHlwZSA9PSAnZGF0ZXBpY2tlcicgJiYgZGVmYXVsdFZhbHVlID09PSAndG9kYXknKSB7XG5cdFx0XHRyZXR1cm4gX2ZpZWxkVXRpbHMuZ2V0Q3VycmVudERhdGUoKTtcblx0XHR9XG5cdFx0cmV0dXJuIGRlZmF1bHRWYWx1ZTtcblx0fSxcblx0Z2V0Q3VycmVudERhdGUoc2VwYXJhdG9yOiBzdHJpbmcgPSAnLScpOiBzdHJpbmcge1xuXHRcdGNvbnN0IG5vdyA9IG5ldyBEYXRlKCk7XG5cdFx0Y29uc3QgeWVhciA9IG5vdy5nZXRGdWxsWWVhcigpO1xuXHRcdGNvbnN0IG1vbnRoID0gU3RyaW5nKG5vdy5nZXRNb250aCgpICsgMSkucGFkU3RhcnQoMiwgJzAnKTtcblx0XHRjb25zdCBkYXkgPSBTdHJpbmcobm93LmdldERhdGUoKSkucGFkU3RhcnQoMiwgJzAnKTtcblx0XHRyZXR1cm4gYCR7eWVhcn0ke3NlcGFyYXRvcn0ke21vbnRofSR7c2VwYXJhdG9yfSR7ZGF5fWA7XG5cdH0sXG5cdHRyaWdnZXJIb29rQW5kU2V0VmFsdWU6IChcblx0XHRmaWVsZDogRm9ybUZpZWxkLFxuXHRcdHZhbHVlOiBhbnksXG5cdFx0ZW1pdEV2ZW50OiBib29sZWFuLFxuXHRcdGVtaXRIb29rOiBib29sZWFuLFxuXHRcdGhvb2tPYnNlcnZlcnM6IGFueVtdLFxuXHRcdGNhbGxiYWNrOiBhbnksXG5cdFx0ZGF0ZVBpcGU6IERhdGVQaXBlLFxuXHQpID0+IHtcblx0XHRpZiAoZmllbGQuaG9vayAmJiBpc09ic2VydmFibGUoZmllbGQuaG9vaykpIHtcblx0XHRcdGNvbnN0IHN1YiA9IGZpZWxkLmhvb2tcblx0XHRcdFx0LnBpcGUoXG5cdFx0XHRcdFx0dGFwKChmdW5jKSA9PiB7XG5cdFx0XHRcdFx0XHRmdW5jKGZpZWxkKTtcblx0XHRcdFx0XHR9KSxcblx0XHRcdFx0XHRjYXRjaEVycm9yKChlcnJvcikgPT4ge1xuXHRcdFx0XHRcdFx0Y29uc29sZS53YXJuKGBmaWVsZCBob29rIHNraXBwZWQgZm9yIFwiJHtmaWVsZC5rZXl9XCIgYmVjYXVzZSBpdCBmYWlsZWQgZHVyaW5nIGV4ZWN1dGlvbi5gKTtcblx0XHRcdFx0XHRcdHJldHVybiBvZih1bmRlZmluZWQpO1xuXHRcdFx0XHRcdH0pLFxuXHRcdFx0XHQpXG5cdFx0XHRcdC5zdWJzY3JpYmUoKCkgPT4ge1xuXHRcdFx0XHRcdGZpZWxkLmZpZWxkQ29udHJvbD8uc2V0VmFsdWUoX2ZpZWxkVXRpbHMudG9GaWVsZFZhbHVlKGZpZWxkLCB2YWx1ZSwgZGF0ZVBpcGUpLCB7IGVtaXRFdmVudCB9LCBlbWl0SG9vayksIGNhbGxiYWNrICYmIGNhbGxiYWNrKCk7XG5cdFx0XHRcdH0pO1xuXHRcdFx0aG9va09ic2VydmVycy5wdXNoKCgpID0+IHN1Yi51bnN1YnNjcmliZSgpKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0ZmllbGQuZmllbGRDb250cm9sPy5zZXRWYWx1ZShfZmllbGRVdGlscy50b0ZpZWxkVmFsdWUoZmllbGQsIHZhbHVlLCBkYXRlUGlwZSksIHsgZW1pdEV2ZW50IH0sIGVtaXRIb29rKTtcblx0XHRcdGNhbGxiYWNrICYmIGNhbGxiYWNrKCk7XG5cdFx0fVxuXHR9LFxuXHRmcm9tRmllbGRWYWx1ZTogKGZpZWxkOiBGb3JtRmllbGQsIHRhcmdldDogYW55LCBkYXRlUGlwZTogRGF0ZVBpcGUpOiBhbnkgPT4ge1xuXHRcdGlmIChmaWVsZC50eXBlID09ICd0cmVlc2VsZWN0Jykge1xuXHRcdFx0cmV0dXJuIF9maWVsZFV0aWxzLmZyb21UcmVlU2VsZWN0VmFsdWUoZmllbGQsIHRhcmdldCk7XG5cdFx0fVxuXHRcdGlmIChmaWVsZC50eXBlID09ICdtdWx0aXNlbGVjdCcpIHtcblx0XHRcdHJldHVybiBfZmllbGRVdGlscy5mcm9tTXVsdGlTZWxlY3RWYWx1ZShmaWVsZCwgdGFyZ2V0KTtcblx0XHR9XG5cdFx0aWYgKGZpZWxkLnR5cGUgPT0gJ2ltYWdlJykge1xuXHRcdFx0cmV0dXJuIF9maWVsZFV0aWxzLmZyb21JbWFnZVZhbHVlKGZpZWxkLCB0YXJnZXQpO1xuXHRcdH1cblx0XHRpZiAoZmllbGQudHlwZSA9PSAndXBsb2FkJykge1xuXHRcdFx0cmV0dXJuIF9maWVsZFV0aWxzLmZyb21VcGxvYWRWYWx1ZShmaWVsZCwgdGFyZ2V0KTtcblx0XHR9XG5cdFx0aWYgKGZpZWxkLnR5cGUgPT0gJ2RhdGVwaWNrZXInKSB7XG5cdFx0XHRyZXR1cm4gX2ZpZWxkVXRpbHMuZnJvbURhdGVQaWNrZXJWYWx1ZShmaWVsZCwgdGFyZ2V0LCBkYXRlUGlwZSk7XG5cdFx0fVxuXHRcdHJldHVybiB0YXJnZXQ7XG5cdH0sXG5cdGZyb21UcmVlU2VsZWN0VmFsdWU6IChmaWVsZDogRm9ybUZpZWxkLCB0YXJnZXQ6IGFueSk6IHN0cmluZyA9PiB7XG5cdFx0aWYgKGZpZWxkLnRyZWVTZWxlY3RQcm9wcz8uc2VsZWN0aW9uTW9kZSA9PSAnc2luZ2xlJykge1xuXHRcdFx0cmV0dXJuIHRhcmdldD8ua2V5O1xuXHRcdH1cblx0XHRyZXR1cm4gdGFyZ2V0Lm1hcCgoaXRlbTogYW55KSA9PiBpdGVtLmtleSkuam9pbignLCcpO1xuXHR9LFxuXHRmcm9tTXVsdGlTZWxlY3RWYWx1ZTogKGZpZWxkOiBGb3JtRmllbGQsIHRhcmdldDogYW55KTogc3RyaW5nID0+IHtcblx0XHRpZiAoIWZpZWxkLm11bHRpU2VsZWN0UHJvcHM/Lm9wdGlvblZhbHVlKSB7XG5cdFx0XHRyZXR1cm4gdGFyZ2V0O1xuXHRcdH1cblx0XHRyZXR1cm4gdGFyZ2V0LmpvaW4oJywnKTtcblx0fSxcblx0ZnJvbUltYWdlVmFsdWU6IChmaWVsZDogRm9ybUZpZWxkLCB0YXJnZXQ6IGFueSk6IHN0cmluZyA9PiB7XG5cdFx0cmV0dXJuIHRhcmdldC5qb2luKCc7Jyk7XG5cdH0sXG5cdGZyb21VcGxvYWRWYWx1ZTogKGZpZWxkOiBGb3JtRmllbGQsIHRhcmdldDogYW55KTogc3RyaW5nID0+IHtcblx0XHRyZXR1cm4gdGFyZ2V0LmpvaW4oJzsnKTtcblx0fSxcblx0ZnJvbURhdGVQaWNrZXJWYWx1ZTogKGZpZWxkOiBGb3JtRmllbGQsIHRhcmdldDogYW55LCBkYXRlUGlwZTogYW55KTogc3RyaW5nID0+IHtcblx0XHRpZiAoZmllbGQ/LmRhdGVQaWNrZXJQcm9wcz8uc2VsZWN0aW9uTW9kZSA9PSAncmFuZ2UnICYmIHRhcmdldC5sZW5ndGggPT0gMikge1xuXHRcdFx0Ly8gY29uc29sZS5sb2codGFyZ2V0LmpvaW4oJ34nKSk7XG5cdFx0XHRyZXR1cm4gdGFyZ2V0LmpvaW4oJ34nKTtcblx0XHR9XG5cdFx0cmV0dXJuIHRhcmdldDtcblx0fSxcblx0dG9GaWVsZFZhbHVlOiAoZmllbGQ6IEZvcm1GaWVsZCwgcmF3OiBhbnksIGRhdGVQaXBlOiBEYXRlUGlwZSk6IGFueSA9PiB7XG5cdFx0aWYgKGZpZWxkLnR5cGUgPT0gJ3RyZWVzZWxlY3QnKSB7XG5cdFx0XHRyZXR1cm4gX2ZpZWxkVXRpbHMudG9UcmVlU2VsZWN0VmFsdWUoZmllbGQsIHJhdyk7XG5cdFx0fVxuXHRcdGlmIChmaWVsZC50eXBlID09ICdkYXRlcGlja2VyJykge1xuXHRcdFx0cmV0dXJuIF9maWVsZFV0aWxzLnRvRGF0ZVBpY2tlclZhbHVlKGZpZWxkLCByYXcsIGRhdGVQaXBlKTtcblx0XHR9XG5cdFx0aWYgKGZpZWxkLnR5cGUgPT0gJ211bHRpc2VsZWN0Jykge1xuXHRcdFx0cmV0dXJuIF9maWVsZFV0aWxzLnRvTXVsdGlTZWxlY3RWYWx1ZShmaWVsZCwgcmF3KTtcblx0XHR9XG5cdFx0aWYgKGZpZWxkLnR5cGUgPT0gJ2ltYWdlJykge1xuXHRcdFx0cmV0dXJuIF9maWVsZFV0aWxzLnRvSW1hZ2VWYWx1ZShmaWVsZCwgcmF3KTtcblx0XHR9XG5cdFx0aWYgKGZpZWxkLnR5cGUgPT0gJ3VwbG9hZCcpIHtcblx0XHRcdHJldHVybiBfZmllbGRVdGlscy50b1VwbG9hZFZhbHVlKGZpZWxkLCByYXcpO1xuXHRcdH1cblx0XHRyZXR1cm4gcmF3IHx8ICcnO1xuXHR9LFxuXHR0b1RyZWVTZWxlY3RWYWx1ZTogKGZpZWxkOiBGb3JtRmllbGQsIHJhdzogYW55KTogYW55ID0+IHtcblx0XHRpZiAoZmllbGQudHJlZVNlbGVjdFByb3BzPy5zZWxlY3Rpb25Nb2RlID09ICdzaW5nbGUnKSB7XG5cdFx0XHRyZXR1cm4gX2ZpZWxkVXRpbHMuZmluZFRyZWVOb2RlKHJhdywgZmllbGQudHJlZVNlbGVjdFByb3BzPy5vcHRpb25zKTtcblx0XHR9XG5cdFx0Y29uc3Qgbm9kZXM6IGFueVtdID0gW107XG5cdFx0X2ZpZWxkVXRpbHMuZmluZFRyZWVOb2RlcyhyYXc/LnNwbGl0KCcsJykgfHwgW10sIGZpZWxkLnRyZWVTZWxlY3RQcm9wcz8ub3B0aW9ucyB8fCBbXSwgbm9kZXMpO1xuXHRcdHJldHVybiBub2Rlcztcblx0fSxcblx0dG9EYXRlUGlja2VyVmFsdWU6IChmaWVsZDogRm9ybUZpZWxkLCByYXc6IGFueSwgZGF0ZVBpcGU6IERhdGVQaXBlLCBzdHJpbmdNb2RlOiBib29sZWFuID0gZmFsc2UpOiBhbnkgPT4ge1xuXHRcdGlmICghcmF3IHx8IHJhdyA9PSAnMDAwMS0wMS0wMVQwMDowMDowMFonKSB7XG5cdFx0XHRyZXR1cm4gJyc7XG5cdFx0fVxuXHRcdGlmIChfZmllbGRVdGlscy5pc0lTTzg2MDEocmF3KSkge1xuXHRcdFx0Y29uc3QgZGF0ZVBpcGVGb3JtYXQgPSBmaWVsZC5kYXRlUGlja2VyUHJvcHM/LmRhdGVQaXBlRm9ybWF0ID8/ICd5eXl5LU1NLWRkJztcblx0XHRcdHJldHVybiBkYXRlUGlwZS50cmFuc2Zvcm0ocmF3LCBkYXRlUGlwZUZvcm1hdCwgJ0dNVCcpIHx8IHJhdztcblx0XHR9XG5cdFx0aWYgKCFzdHJpbmdNb2RlICYmIGZpZWxkPy5kYXRlUGlja2VyUHJvcHM/LnNlbGVjdGlvbk1vZGUgPT0gJ3JhbmdlJyAmJiByYXcuaW5jbHVkZXMoJ34nKSkge1xuXHRcdFx0Y29uc3QgW3N0YXJ0LCBlbmRdID0gcmF3LnNwbGl0KCd+Jyk7XG5cdFx0XHRyZXR1cm4gW25ldyBEYXRlKHN0YXJ0KSwgbmV3IERhdGUoZW5kKV07XG5cdFx0fVxuXHRcdHJldHVybiByYXc7XG5cdH0sXG5cdHRvTXVsdGlTZWxlY3RWYWx1ZTogKGZpZWxkOiBGb3JtRmllbGQsIHJhdzogYW55KTogYW55ID0+IHtcblx0XHRpZiAoIWZpZWxkLm11bHRpU2VsZWN0UHJvcHM/Lm9wdGlvblZhbHVlKSB7XG5cdFx0XHRyZXR1cm4gcmF3IHx8ICcnO1xuXHRcdH1cblx0XHRyZXR1cm4gKHJhdyAmJiByYXcuc3BsaXQoJywnKSkgfHwgJyc7XG5cdH0sXG5cdHRvSW1hZ2VWYWx1ZTogKGZpZWxkOiBGb3JtRmllbGQsIHJhdzogYW55KTogYW55ID0+IHtcblx0XHRyZXR1cm4gKHJhdyAmJiByYXcuc3BsaXQoJzsnKSkgfHwgW107XG5cdH0sXG5cdHRvVXBsb2FkVmFsdWU6IChmaWVsZDogRm9ybUZpZWxkLCByYXc6IGFueSk6IGFueSA9PiB7XG5cdFx0cmV0dXJuIChyYXcgJiYgcmF3LnNwbGl0KCc7JykpIHx8IFtdO1xuXHR9LFxuXHRmaW5kVHJlZU5vZGUodmFsdWU6IHN0cmluZywgY2hpbGRyZW4/OiBhbnlbXSk6IGFueSB7XG5cdFx0aWYgKCFjaGlsZHJlbiB8fCBjaGlsZHJlbi5sZW5ndGggPT0gMCkgcmV0dXJuO1xuXHRcdGNvbnN0IG4gPSBjaGlsZHJlbi5maW5kKChvKSA9PiBvLmtleSA9PSB2YWx1ZSk7XG5cdFx0aWYgKG4pIHJldHVybiBuO1xuXHRcdGZvciAoY29uc3QgY2ggb2YgY2hpbGRyZW4pIHtcblx0XHRcdGNvbnN0IGNuID0gdGhpcy5maW5kVHJlZU5vZGUodmFsdWUsIGNoLmNoaWxkcmVuKTtcblx0XHRcdGlmIChjbikgcmV0dXJuIGNuO1xuXHRcdH1cblx0XHRyZXR1cm47XG5cdH0sXG5cdGZpbmRUcmVlTm9kZXModmFsdWVzOiBzdHJpbmdbXSwgY2hpbGRyZW4/OiBhbnlbXSwgbm9kZXM/OiBhbnlbXSk6IHZvaWQge1xuXHRcdGlmICghY2hpbGRyZW4gfHwgY2hpbGRyZW4ubGVuZ3RoID09IDApIHJldHVybjtcblx0XHRjb25zdCB0YXJzID0gY2hpbGRyZW4uZmlsdGVyKChvKSA9PiB2YWx1ZXMuaW5kZXhPZihvLmtleSkgIT0gLTEpO1xuXHRcdG5vZGVzPy5wdXNoKC4uLnRhcnMpO1xuXHRcdGZvciAoY29uc3QgY2ggb2YgY2hpbGRyZW4pIHtcblx0XHRcdHRoaXMuZmluZFRyZWVOb2Rlcyh2YWx1ZXMsIGNoLmNoaWxkcmVuLCBub2Rlcyk7XG5cdFx0fVxuXHR9LFxuXHRwcmVsb2FkTG9nKHJhd01vZGVsOiBhbnksIGZpZWxkTGlzdDogRm9ybUZpZWxkW10sIGRhdGVQaXBlOiBEYXRlUGlwZSk6IGFueSB7XG5cdFx0Y29uc3QgdGFyZ2V0OiBhbnkgPSB7fTtcblx0XHRmaWVsZExpc3QuZm9yRWFjaCgoZmllbGQpID0+IHtcblx0XHRcdGlmICghZmllbGQua2V5KSByZXR1cm47XG5cdFx0XHRjb25zdCByYXdWYWx1ZSA9IF9maWVsZFV0aWxzLmdldE1vZGVsKHJhd01vZGVsLCBmaWVsZC5rZXkpO1xuXHRcdFx0aWYgKGZpZWxkLnR5cGUgPT0gJ2RhdGVwaWNrZXInKSB7XG5cdFx0XHRcdHRhcmdldFtmaWVsZC5rZXldID0gX2ZpZWxkVXRpbHMudG9EYXRlUGlja2VyVmFsdWUoZmllbGQsIHJhd1ZhbHVlLCBkYXRlUGlwZSwgdHJ1ZSk7XG5cdFx0XHRcdHJldHVybjtcblx0XHRcdH1cblx0XHRcdHRhcmdldFtmaWVsZC5rZXldID0gcmF3VmFsdWU7XG5cdFx0fSk7XG5cdFx0cmV0dXJuIHRhcmdldDtcblx0fSxcblx0dHJhbnNMb2cocmF3TW9kZWw6IGFueSwgY2hhbmdlZE1vZGVsOiBhbnksIG1haW5WYWx1ZTogYW55LCBpc05ldzogYm9vbGVhbixpMThuOmFueSk6IHN0cmluZyB7XG5cdFx0aWYgKGlzTmV3KSB7XG5cdFx0XHQvLyBAdHMtaWdub3JlXG5cdFx0XHRjb25zdCBpc0kxOG4gPSB3aW5kb3cuYXBwSXNJMThuXG5cdFx0XHRsZXQgY3JlYXRlU3RyID0gaXNJMThuID8gaTE4bi5mYW55aSgnYXBwLmNyZWF0ZScpIDon5paw5bu6Jztcblx0XHRcdHJldHVybiBgJHtjcmVhdGVTdHJ977yaJHttYWluVmFsdWV9YFxuXHRcdH1cblx0XHRjb25zdCBkZXRhaWw6IHN0cmluZ1tdID0gW107XG5cdFx0T2JqZWN0LmtleXMoY2hhbmdlZE1vZGVsKS5mb3JFYWNoKChrZXkpID0+IHtcblx0XHRcdGlmIChjaGFuZ2VkTW9kZWxba2V5XS50eXBlID09ICdjb2RlbWlycm9yJykge1xuXHRcdFx0XHRkZXRhaWwucHVzaChgWyR7Y2hhbmdlZE1vZGVsW2tleV0ubmFtZX1dIOWPmOabtGApO1xuXHRcdFx0XHRyZXR1cm47XG5cdFx0XHR9XG5cdFx0XHRkZXRhaWwucHVzaChgWyR7Y2hhbmdlZE1vZGVsW2tleV0ubmFtZX1dICR7cmF3TW9kZWxba2V5XSB8fCAnJ30gLT4gJHtjaGFuZ2VkTW9kZWxba2V5XS52YWx1ZSB8fCAnJ31gKTtcblx0XHR9KTtcblx0XHRyZXR1cm4gZGV0YWlsLmpvaW4oJzsnKTtcblx0fSxcblx0Ly8g57uP5rWL6K+Vc2VsZWN057uE5Lu25pyJ5YaF6YOoYnVnXG5cdC8vIOiuvue9rm1vZGVs5pe277yMZmllbGRDb250cm9sLnNldFZhbHVl55qEZW1pdEV2ZW505Y+C5pWw5Li6ZmFsc2Us5LuN5Lya6Kem5Y+RdmFsdWVDaGFuZ2Vz5LqL5Lu2XG5cdC8vIOinpuWPkXZhbHVlQ2hhbmdlc+S8muW9seWTjeaXpeW/l+S/neWtmOeahOWHhuehruaAp++8jOaVheatpOaWueazleS7heaYr+S4uuS6humYsuatoue7hOS7tuWGhemDqOaEj+WkluinpuWPkeeahOWPmOWKqFxuXHRpc0Zha2VkQ2hhbmdlKG5ld1ZhbHVlOiBhbnksIG9sZFZhbHVlOiBhbnksIGZpZWxkOiBGb3JtRmllbGQpOiBib29sZWFuIHtcblx0XHRjb25zdCBjaGFuZ2VUeXBlcyA9IFsnaW5wdXR0ZXh0JywgJ2lucHV0bnVtYmVyJywgJ3NlbGVjdCcsICd0cmVlc2VsZWN0JywgJ2RhdGVwaWNrZXInLCAnYXV0b2NvbXBsZXRlJywgJ211bHRpc2VsZWN0JywgJ3JhZGlvJ107XG5cdFx0aWYgKGNoYW5nZVR5cGVzLmluY2x1ZGVzKGZpZWxkLnR5cGUhKSkge1xuXHRcdFx0cmV0dXJuIChvbGRWYWx1ZSB8fCAnJykgPT0gKG5ld1ZhbHVlIHx8ICcnKTtcblx0XHR9XG5cdFx0cmV0dXJuIGZhbHNlO1xuXHR9LFxuXHRpc0lTTzg2MDEodGltZVN0cjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIC9eXFxkezR9LVxcZHsyfS1cXGR7Mn1UXFxkezJ9OlxcZHsyfTpcXGR7Mn0oXFwuXFxkKyk/KFp8WystXVxcZHsyfTpcXGR7Mn0pJC8udGVzdCh0aW1lU3RyKTtcblx0fSxcbn07XG5cbmV4cG9ydCBjb25zdCBmaWVsZFV0aWxzID0ge1xuXHRwcm9wczogX2ZpZWxkVXRpbHMucHJvcHMsXG5cdGxhYmVsOiBfZmllbGRVdGlscy5sYWJlbCxcblx0Z2V0TW9kZWw6IF9maWVsZFV0aWxzLmdldE1vZGVsLFxuXHRzZXRNb2RlbDogX2ZpZWxkVXRpbHMuc2V0TW9kZWwsXG5cdGZpZWxkSGFuZGxlcjogX2ZpZWxkVXRpbHMuZmllbGRIYW5kbGVyLFxuXHRkYWZhdWx0VmFsdWVIYW5kbGVyOiBfZmllbGRVdGlscy5kYWZhdWx0VmFsdWVIYW5kbGVyLFxuXHR0cmlnZ2VySG9va0FuZFNldFZhbHVlOiBfZmllbGRVdGlscy50cmlnZ2VySG9va0FuZFNldFZhbHVlLFxuXHRmcm9tRmllbGRWYWx1ZTogX2ZpZWxkVXRpbHMuZnJvbUZpZWxkVmFsdWUsXG5cdHByZWxvYWRMb2c6IF9maWVsZFV0aWxzLnByZWxvYWRMb2csXG5cdHRyYW5zTG9nOiBfZmllbGRVdGlscy50cmFuc0xvZyxcblx0aXNGYWtlZENoYW5nZTogX2ZpZWxkVXRpbHMuaXNGYWtlZENoYW5nZSxcbn07XG4iXX0=
|
|
299
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQtdXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pbW0tZWxlbWVudC11aS9zcmMvbGliL2Zvcm0vZm9ybS1maWVsZC9maWVsZC11dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEVBQUUsWUFBWSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXpELE1BQU0sV0FBVyxHQUFHO0lBQ25CLEtBQUssRUFBRSxDQUFDLEtBQWdCLEVBQWMsRUFBRTtRQUN2QyxJQUFJLEtBQUssR0FBZSxFQUFFLENBQUM7UUFDM0IsUUFBUSxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDcEIsS0FBSyxXQUFXO2dCQUNmLEtBQUssR0FBRyxLQUFLLENBQUMsY0FBZSxDQUFDO2dCQUM5QixNQUFNO1lBQ1AsS0FBSyxhQUFhO2dCQUNqQixLQUFLLEdBQUcsS0FBSyxDQUFDLGdCQUFpQixDQUFDO2dCQUNoQyxNQUFNO1lBQ1AsS0FBSyxRQUFRO2dCQUNaLEtBQUssR0FBRyxLQUFLLENBQUMsV0FBWSxDQUFDO2dCQUMzQixNQUFNO1lBQ1AsS0FBSyxZQUFZO2dCQUNoQixLQUFLLEdBQUcsS0FBSyxDQUFDLGVBQWdCLENBQUM7Z0JBQy9CLE1BQU07WUFDUCxLQUFLLFlBQVk7Z0JBQ2hCLEtBQUssR0FBRyxLQUFLLENBQUMsZUFBZ0IsQ0FBQztnQkFDL0IsTUFBTTtZQUNQLEtBQUssY0FBYztnQkFDbEIsS0FBSyxHQUFHLEtBQUssQ0FBQyxpQkFBa0IsQ0FBQztnQkFDakMsTUFBTTtZQUNQLEtBQUssYUFBYTtnQkFDakIsS0FBSyxHQUFHLEtBQUssQ0FBQyxnQkFBaUIsQ0FBQztnQkFDaEMsTUFBTTtZQUNQLEtBQUssT0FBTztnQkFDWCxLQUFLLEdBQUcsS0FBSyxDQUFDLFVBQVcsQ0FBQztnQkFDMUIsTUFBTTtZQUNQLEtBQUssVUFBVTtn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Q3hCLFFBQVEsRUFBRSxXQUFXLENBQUMsUUFBUTtJQUM5QixRQUFRLEVBQUUsV0FBVyxDQUFDLFFBQVE7SUFDOUIsWUFBWSxFQUFFLFdBQVcsQ0FBQyxZQUFZO0lBQ3RDLG1CQUFtQixFQUFFLFdBQVcsQ0FBQyxtQkFBbUI7SUFDcEQsc0JBQXNCLEVBQUUsV0FBVyxDQUFDLHNCQUFzQjtJQUMxRCxjQUFjLEVBQUUsV0FBVyxDQUFDLGNBQWM7SUFDMUMsVUFBVSxFQUFFLFdBQVcsQ0FBQyxVQUFVO0lBQ2xDLFFBQVEsRUFBRSxXQUFXLENBQUMsUUFBUTtJQUM5QixhQUFhLEVBQUUsV0FBVyxDQUFDLGFBQWE7Q0FDeEMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZvcm1GaWVsZCwgRmllbGRQcm9wcyB9IGZyb20gJy4vZm9ybS1maWVsZCc7XG5pbXBvcnQgeyBEYXRlUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBJMThuU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2UvaTE4bi5zZXJ2aWNlJztcbmltcG9ydCB7IGlzT2JzZXJ2YWJsZSwgb2YsIHRhcCwgY2F0Y2hFcnJvciB9IGZyb20gJ3J4anMnO1xuXG5jb25zdCBfZmllbGRVdGlscyA9IHtcblx0cHJvcHM6IChmaWVsZDogRm9ybUZpZWxkKTogRmllbGRQcm9wcyA9PiB7XG5cdFx0bGV0IHByb3BzOiBGaWVsZFByb3BzID0ge307XG5cdFx0c3dpdGNoIChmaWVsZC50eXBlKSB7XG5cdFx0XHRjYXNlICdpbnB1dHRleHQnOlxuXHRcdFx0XHRwcm9wcyA9IGZpZWxkLmlucHV0VGV4dFByb3BzITtcblx0XHRcdFx0YnJlYWs7XG5cdFx0XHRjYXNlICdpbnB1dG51bWJlcic6XG5cdFx0XHRcdHByb3BzID0gZmllbGQuaW5wdXROdW1iZXJQcm9wcyE7XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0Y2FzZSAnc2VsZWN0Jzpcblx0XHRcdFx0cHJvcHMgPSBmaWVsZC5zZWxlY3RQcm9wcyE7XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0Y2FzZSAndHJlZXNlbGVjdCc6XG5cdFx0XHRcdHByb3BzID0gZmllbGQudHJlZVNlbGVjdFByb3BzITtcblx0XHRcdFx0YnJlYWs7XG5cdFx0XHRjYXNlICdkYXRlcGlja2VyJzpcblx0XHRcdFx0cHJvcHMgPSBmaWVsZC5kYXRlUGlja2VyUHJvcHMhO1xuXHRcdFx0XHRicmVhaztcblx0XHRcdGNhc2UgJ2F1dG9jb21wbGV0ZSc6XG5cdFx0XHRcdHByb3BzID0gZmllbGQuYXV0b0NvbXBsZXRlUHJvcHMhO1xuXHRcdFx0XHRicmVhaztcblx0XHRcdGNhc2UgJ211bHRpc2VsZWN0Jzpcblx0XHRcdFx0cHJvcHMgPSBmaWVsZC5tdWx0aVNlbGVjdFByb3BzITtcblx0XHRcdFx0YnJlYWs7XG5cdFx0XHRjYXNlICdyYWRpbyc6XG5cdFx0XHRcdHByb3BzID0gZmllbGQucmFkaW9Qcm9wcyE7XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0Y2FzZSAndGV4dGFyZWEnOlxuXHRcdFx0XHRwcm9wcyA9IGZpZWxkLnRleHRBcmVhUHJvcHMhO1xuXHRcdFx0XHRicmVhaztcblx0XHRcdGNhc2UgJ3VwbG9hZCc6XG5cdFx0XHRcdHByb3BzID0gZmllbGQudXBsb2FkUHJvcHMhO1xuXHRcdFx0XHRicmVhaztcblx0XHRcdGNhc2UgJ2ltYWdlJzpcblx0XHRcdFx0cHJvcHMgPSBmaWVsZC5pbWFnZVByb3BzITtcblx0XHRcdFx0YnJlYWs7XG5cdFx0XHRjYXNlICdpbWFnZXByZXZpZXcnOlxuXHRcdFx0XHRwcm9wcyA9IGZpZWxkLmltYWdlUHJldmlld1Byb3BzITtcblx0XHRcdFx0YnJlYWs7XG5cdFx0XHRjYXNlICdjb2RlbWlycm9yJzpcblx0XHRcdFx0cHJvcHMgPSBmaWVsZC5jb2RlTWlycm9yUHJvcHMhO1xuXHRcdFx0XHRicmVhaztcblx0XHRcdGNhc2UgJ3Jvd3NlbGVjdG9yJzpcblx0XHRcdFx0cHJvcHMgPSBmaWVsZC5yb3dTZWxlY3RvclByb3BzITtcblx0XHRcdFx0YnJlYWs7XG5cdFx0fVxuXHRcdHJldHVybiBwcm9wcztcblx0fSxcblx0bGFiZWw6IChmaWVsZDogRm9ybUZpZWxkLCBpMThuU2VydmljZTogSTE4blNlcnZpY2UpOiBzdHJpbmcgfCB1bmRlZmluZWQgPT4ge1xuXHRcdGNvbnN0IGkxOG5LZXkgPSBfZmllbGRVdGlscy5wcm9wcyhmaWVsZCkuaTE4bktleTtcblx0XHRpZiAoaTE4bktleSkge1xuXHRcdFx0cmV0dXJuIGkxOG5TZXJ2aWNlLmZhbnlpKGkxOG5LZXkpO1xuXHRcdH1cblx0XHRyZXR1cm4gX2ZpZWxkVXRpbHMucHJvcHMoZmllbGQpLmxhYmVsO1xuXHR9LFxuXHRzZXRNb2RlbChtb2RlbDogYW55LCBrZXk6IHN0cmluZywgdmFsdWU6IGFueSkge1xuXHRcdGNvbnN0IGtleXMgPSBrZXkuc3BsaXQoJy4nKTtcblx0XHRpZiAoa2V5cy5sZW5ndGggPT0gMSkge1xuXHRcdFx0bW9kZWxba2V5XSA9IHZhbHVlO1xuXHRcdFx0cmV0dXJuO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRjb25zdCBrOiBhbnkgPSBrZXlzLnNoaWZ0KCk7XG5cdFx0XHRpZiAobW9kZWxba10gPT0gdW5kZWZpbmVkKSB7XG5cdFx0XHRcdG1vZGVsW2tdID0ge307XG5cdFx0XHR9XG5cdFx0XHR0aGlzLnNldE1vZGVsKG1vZGVsW2tdLCBrZXlzLmpvaW4oJy4nKSwgdmFsdWUpO1xuXHRcdH1cblx0fSxcblx0Z2V0TW9kZWwobW9kZWw6IGFueSwga2V5OiBzdHJpbmcpOiBhbnkge1xuXHRcdGNvbnN0IGtleXMgPSBrZXkuc3BsaXQoJy4nKTtcblx0XHRpZiAoa2V5cy5sZW5ndGggPT0gMSkge1xuXHRcdFx0cmV0dXJuIG1vZGVsW2tleV07XG5cdFx0fSBlbHNlIHtcblx0XHRcdGNvbnN0IGs6IGFueSA9IGtleXMuc2hpZnQoKTtcblx0XHRcdGlmIChtb2RlbFtrXSA9PSB1bmRlZmluZWQpIHtcblx0XHRcdFx0bW9kZWxba10gPSB7fTtcblx0XHRcdH1cblx0XHRcdHJldHVybiB0aGlzLmdldE1vZGVsKG1vZGVsW2tdLCBrZXlzLmpvaW4oJy4nKSk7XG5cdFx0fVxuXHR9LFxuXHRmaWVsZEhhbmRsZXIoZmllbGQ6IEZvcm1GaWVsZCkge1xuXHRcdGlmICghWydzZWxlY3QnLCAndHJlZXNlbGVjdCcsICdtdWx0aXNlbGVjdCcsICdyYWRpbyddLmluY2x1ZGVzKGZpZWxkLnR5cGUhKSkgcmV0dXJuO1xuXHRcdChfZmllbGRVdGlscy5wcm9wcyhmaWVsZCkgYXMgYW55KSEub3B0aW9ucyA9IEFycmF5LmlzQXJyYXkoKF9maWVsZFV0aWxzLnByb3BzKGZpZWxkKSBhcyBhbnkpIS5vcHRpb25zKVxuXHRcdFx0PyAoX2ZpZWxkVXRpbHMucHJvcHMoZmllbGQpIGFzIGFueSkhLm9wdGlvbnNcblx0XHRcdDogdW5kZWZpbmVkO1xuXHR9LFxuXHRkYWZhdWx0VmFsdWVIYW5kbGVyKGZpZWxkOiBGb3JtRmllbGQsIGRlZmF1bHRWYWx1ZTogYW55LCBkYXRlUGlwZTogRGF0ZVBpcGUpIHtcblx0XHRpZiAoZmllbGQudHlwZSA9PSAnZGF0ZXBpY2tlcicgJiYgZGVmYXVsdFZhbHVlID09PSAndG9kYXknKSB7XG5cdFx0XHRyZXR1cm4gX2ZpZWxkVXRpbHMuZ2V0Q3VycmVudERhdGUoKTtcblx0XHR9XG5cdFx0cmV0dXJuIGRlZmF1bHRWYWx1ZTtcblx0fSxcblx0Z2V0Q3VycmVudERhdGUoc2VwYXJhdG9yOiBzdHJpbmcgPSAnLScpOiBzdHJpbmcge1xuXHRcdGNvbnN0IG5vdyA9IG5ldyBEYXRlKCk7XG5cdFx0Y29uc3QgeWVhciA9IG5vdy5nZXRGdWxsWWVhcigpO1xuXHRcdGNvbnN0IG1vbnRoID0gU3RyaW5nKG5vdy5nZXRNb250aCgpICsgMSkucGFkU3RhcnQoMiwgJzAnKTtcblx0XHRjb25zdCBkYXkgPSBTdHJpbmcobm93LmdldERhdGUoKSkucGFkU3RhcnQoMiwgJzAnKTtcblx0XHRyZXR1cm4gYCR7eWVhcn0ke3NlcGFyYXRvcn0ke21vbnRofSR7c2VwYXJhdG9yfSR7ZGF5fWA7XG5cdH0sXG5cdHRyaWdnZXJIb29rQW5kU2V0VmFsdWU6IChcblx0XHRmaWVsZDogRm9ybUZpZWxkLFxuXHRcdHZhbHVlOiBhbnksXG5cdFx0ZW1pdEV2ZW50OiBib29sZWFuLFxuXHRcdGVtaXRIb29rOiBib29sZWFuLFxuXHRcdGhvb2tPYnNlcnZlcnM6IGFueVtdLFxuXHRcdGNhbGxiYWNrOiBhbnksXG5cdFx0ZGF0ZVBpcGU6IERhdGVQaXBlLFxuXHQpID0+IHtcblx0XHRpZiAoZmllbGQuaG9vayAmJiBpc09ic2VydmFibGUoZmllbGQuaG9vaykpIHtcblx0XHRcdGNvbnN0IHN1YiA9IGZpZWxkLmhvb2tcblx0XHRcdFx0LnBpcGUoXG5cdFx0XHRcdFx0dGFwKChmdW5jKSA9PiB7XG5cdFx0XHRcdFx0XHRmdW5jKGZpZWxkKTtcblx0XHRcdFx0XHR9KSxcblx0XHRcdFx0XHRjYXRjaEVycm9yKChlcnJvcikgPT4ge1xuXHRcdFx0XHRcdFx0Y29uc29sZS53YXJuKGBmaWVsZCBob29rIHNraXBwZWQgZm9yIFwiJHtmaWVsZC5rZXl9XCIgYmVjYXVzZSBpdCBmYWlsZWQgZHVyaW5nIGV4ZWN1dGlvbi5gKTtcblx0XHRcdFx0XHRcdHJldHVybiBvZih1bmRlZmluZWQpO1xuXHRcdFx0XHRcdH0pLFxuXHRcdFx0XHQpXG5cdFx0XHRcdC5zdWJzY3JpYmUoKCkgPT4ge1xuXHRcdFx0XHRcdGZpZWxkLmZpZWxkQ29udHJvbD8uc2V0VmFsdWUoX2ZpZWxkVXRpbHMudG9GaWVsZFZhbHVlKGZpZWxkLCB2YWx1ZSwgZGF0ZVBpcGUpLCB7IGVtaXRFdmVudCB9LCBlbWl0SG9vayksIGNhbGxiYWNrICYmIGNhbGxiYWNrKCk7XG5cdFx0XHRcdH0pO1xuXHRcdFx0aG9va09ic2VydmVycy5wdXNoKCgpID0+IHN1Yi51bnN1YnNjcmliZSgpKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0ZmllbGQuZmllbGRDb250cm9sPy5zZXRWYWx1ZShfZmllbGRVdGlscy50b0ZpZWxkVmFsdWUoZmllbGQsIHZhbHVlLCBkYXRlUGlwZSksIHsgZW1pdEV2ZW50IH0sIGVtaXRIb29rKTtcblx0XHRcdGNhbGxiYWNrICYmIGNhbGxiYWNrKCk7XG5cdFx0fVxuXHR9LFxuXHRmcm9tRmllbGRWYWx1ZTogKGZpZWxkOiBGb3JtRmllbGQsIHRhcmdldDogYW55LCBkYXRlUGlwZTogRGF0ZVBpcGUpOiBhbnkgPT4ge1xuXHRcdGlmIChmaWVsZC50eXBlID09ICd0cmVlc2VsZWN0Jykge1xuXHRcdFx0cmV0dXJuIF9maWVsZFV0aWxzLmZyb21UcmVlU2VsZWN0VmFsdWUoZmllbGQsIHRhcmdldCk7XG5cdFx0fVxuXHRcdGlmIChmaWVsZC50eXBlID09ICdtdWx0aXNlbGVjdCcpIHtcblx0XHRcdHJldHVybiBfZmllbGRVdGlscy5mcm9tTXVsdGlTZWxlY3RWYWx1ZShmaWVsZCwgdGFyZ2V0KTtcblx0XHR9XG5cdFx0aWYgKGZpZWxkLnR5cGUgPT0gJ2ltYWdlJykge1xuXHRcdFx0cmV0dXJuIF9maWVsZFV0aWxzLmZyb21JbWFnZVZhbHVlKGZpZWxkLCB0YXJnZXQpO1xuXHRcdH1cblx0XHRpZiAoZmllbGQudHlwZSA9PSAndXBsb2FkJykge1xuXHRcdFx0cmV0dXJuIF9maWVsZFV0aWxzLmZyb21VcGxvYWRWYWx1ZShmaWVsZCwgdGFyZ2V0KTtcblx0XHR9XG5cdFx0aWYgKGZpZWxkLnR5cGUgPT0gJ2RhdGVwaWNrZXInKSB7XG5cdFx0XHRyZXR1cm4gX2ZpZWxkVXRpbHMuZnJvbURhdGVQaWNrZXJWYWx1ZShmaWVsZCwgdGFyZ2V0LCBkYXRlUGlwZSk7XG5cdFx0fVxuXHRcdHJldHVybiB0YXJnZXQ7XG5cdH0sXG5cdGZyb21UcmVlU2VsZWN0VmFsdWU6IChmaWVsZDogRm9ybUZpZWxkLCB0YXJnZXQ6IGFueSk6IHN0cmluZyA9PiB7XG5cdFx0aWYgKGZpZWxkLnRyZWVTZWxlY3RQcm9wcz8uc2VsZWN0aW9uTW9kZSA9PSAnc2luZ2xlJykge1xuXHRcdFx0cmV0dXJuIHRhcmdldD8ua2V5O1xuXHRcdH1cblx0XHRyZXR1cm4gdGFyZ2V0Lm1hcCgoaXRlbTogYW55KSA9PiBpdGVtLmtleSkuam9pbignLCcpO1xuXHR9LFxuXHRmcm9tTXVsdGlTZWxlY3RWYWx1ZTogKGZpZWxkOiBGb3JtRmllbGQsIHRhcmdldDogYW55KTogc3RyaW5nID0+IHtcblx0XHRpZiAoIWZpZWxkLm11bHRpU2VsZWN0UHJvcHM/Lm9wdGlvblZhbHVlKSB7XG5cdFx0XHRyZXR1cm4gdGFyZ2V0O1xuXHRcdH1cblx0XHRyZXR1cm4gdGFyZ2V0LmpvaW4oJywnKTtcblx0fSxcblx0ZnJvbUltYWdlVmFsdWU6IChmaWVsZDogRm9ybUZpZWxkLCB0YXJnZXQ6IGFueSk6IHN0cmluZyA9PiB7XG5cdFx0cmV0dXJuIHRhcmdldC5qb2luKCc7Jyk7XG5cdH0sXG5cdGZyb21VcGxvYWRWYWx1ZTogKGZpZWxkOiBGb3JtRmllbGQsIHRhcmdldDogYW55KTogc3RyaW5nID0+IHtcblx0XHRyZXR1cm4gdGFyZ2V0LmpvaW4oJzsnKTtcblx0fSxcblx0ZnJvbURhdGVQaWNrZXJWYWx1ZTogKGZpZWxkOiBGb3JtRmllbGQsIHRhcmdldDogYW55LCBkYXRlUGlwZTogYW55KTogc3RyaW5nID0+IHtcblx0XHRpZiAoZmllbGQ/LmRhdGVQaWNrZXJQcm9wcz8uc2VsZWN0aW9uTW9kZSA9PSAncmFuZ2UnICYmIHRhcmdldC5sZW5ndGggPT0gMikge1xuXHRcdFx0Ly8gY29uc29sZS5sb2codGFyZ2V0LmpvaW4oJ34nKSk7XG5cdFx0XHRyZXR1cm4gdGFyZ2V0LmpvaW4oJ34nKTtcblx0XHR9XG5cdFx0cmV0dXJuIHRhcmdldDtcblx0fSxcblx0dG9GaWVsZFZhbHVlOiAoZmllbGQ6IEZvcm1GaWVsZCwgcmF3OiBhbnksIGRhdGVQaXBlOiBEYXRlUGlwZSk6IGFueSA9PiB7XG5cdFx0aWYgKGZpZWxkLnR5cGUgPT0gJ3RyZWVzZWxlY3QnKSB7XG5cdFx0XHRyZXR1cm4gX2ZpZWxkVXRpbHMudG9UcmVlU2VsZWN0VmFsdWUoZmllbGQsIHJhdyk7XG5cdFx0fVxuXHRcdGlmIChmaWVsZC50eXBlID09ICdkYXRlcGlja2VyJykge1xuXHRcdFx0cmV0dXJuIF9maWVsZFV0aWxzLnRvRGF0ZVBpY2tlclZhbHVlKGZpZWxkLCByYXcsIGRhdGVQaXBlKTtcblx0XHR9XG5cdFx0aWYgKGZpZWxkLnR5cGUgPT0gJ211bHRpc2VsZWN0Jykge1xuXHRcdFx0cmV0dXJuIF9maWVsZFV0aWxzLnRvTXVsdGlTZWxlY3RWYWx1ZShmaWVsZCwgcmF3KTtcblx0XHR9XG5cdFx0aWYgKGZpZWxkLnR5cGUgPT0gJ2ltYWdlJykge1xuXHRcdFx0cmV0dXJuIF9maWVsZFV0aWxzLnRvSW1hZ2VWYWx1ZShmaWVsZCwgcmF3KTtcblx0XHR9XG5cdFx0aWYgKGZpZWxkLnR5cGUgPT0gJ3VwbG9hZCcpIHtcblx0XHRcdHJldHVybiBfZmllbGRVdGlscy50b1VwbG9hZFZhbHVlKGZpZWxkLCByYXcpO1xuXHRcdH1cblx0XHRyZXR1cm4gcmF3ID8/ICcnO1xuXHR9LFxuXHR0b1RyZWVTZWxlY3RWYWx1ZTogKGZpZWxkOiBGb3JtRmllbGQsIHJhdzogYW55KTogYW55ID0+IHtcblx0XHRpZiAoZmllbGQudHJlZVNlbGVjdFByb3BzPy5zZWxlY3Rpb25Nb2RlID09ICdzaW5nbGUnKSB7XG5cdFx0XHRyZXR1cm4gX2ZpZWxkVXRpbHMuZmluZFRyZWVOb2RlKHJhdywgZmllbGQudHJlZVNlbGVjdFByb3BzPy5vcHRpb25zKTtcblx0XHR9XG5cdFx0Y29uc3Qgbm9kZXM6IGFueVtdID0gW107XG5cdFx0X2ZpZWxkVXRpbHMuZmluZFRyZWVOb2RlcyhyYXc/LnNwbGl0KCcsJykgfHwgW10sIGZpZWxkLnRyZWVTZWxlY3RQcm9wcz8ub3B0aW9ucyB8fCBbXSwgbm9kZXMpO1xuXHRcdHJldHVybiBub2Rlcztcblx0fSxcblx0dG9EYXRlUGlja2VyVmFsdWU6IChmaWVsZDogRm9ybUZpZWxkLCByYXc6IGFueSwgZGF0ZVBpcGU6IERhdGVQaXBlLCBzdHJpbmdNb2RlOiBib29sZWFuID0gZmFsc2UpOiBhbnkgPT4ge1xuXHRcdGlmICghcmF3IHx8IHJhdyA9PSAnMDAwMS0wMS0wMVQwMDowMDowMFonKSB7XG5cdFx0XHRyZXR1cm4gJyc7XG5cdFx0fVxuXHRcdGlmIChfZmllbGRVdGlscy5pc0lTTzg2MDEocmF3KSkge1xuXHRcdFx0Y29uc3QgZGF0ZVBpcGVGb3JtYXQgPSBmaWVsZC5kYXRlUGlja2VyUHJvcHM/LmRhdGVQaXBlRm9ybWF0ID8/ICd5eXl5LU1NLWRkJztcblx0XHRcdHJldHVybiBkYXRlUGlwZS50cmFuc2Zvcm0ocmF3LCBkYXRlUGlwZUZvcm1hdCwgJ0dNVCcpIHx8IHJhdztcblx0XHR9XG5cdFx0aWYgKCFzdHJpbmdNb2RlICYmIGZpZWxkPy5kYXRlUGlja2VyUHJvcHM/LnNlbGVjdGlvbk1vZGUgPT0gJ3JhbmdlJyAmJiByYXcuaW5jbHVkZXMoJ34nKSkge1xuXHRcdFx0Y29uc3QgW3N0YXJ0LCBlbmRdID0gcmF3LnNwbGl0KCd+Jyk7XG5cdFx0XHRyZXR1cm4gW25ldyBEYXRlKHN0YXJ0KSwgbmV3IERhdGUoZW5kKV07XG5cdFx0fVxuXHRcdHJldHVybiByYXc7XG5cdH0sXG5cdHRvTXVsdGlTZWxlY3RWYWx1ZTogKGZpZWxkOiBGb3JtRmllbGQsIHJhdzogYW55KTogYW55ID0+IHtcblx0XHRpZiAoIWZpZWxkLm11bHRpU2VsZWN0UHJvcHM/Lm9wdGlvblZhbHVlKSB7XG5cdFx0XHRyZXR1cm4gcmF3IHx8ICcnO1xuXHRcdH1cblx0XHRyZXR1cm4gKHJhdyAmJiByYXcuc3BsaXQoJywnKSkgfHwgJyc7XG5cdH0sXG5cdHRvSW1hZ2VWYWx1ZTogKGZpZWxkOiBGb3JtRmllbGQsIHJhdzogYW55KTogYW55ID0+IHtcblx0XHRyZXR1cm4gKHJhdyAmJiByYXcuc3BsaXQoJzsnKSkgfHwgW107XG5cdH0sXG5cdHRvVXBsb2FkVmFsdWU6IChmaWVsZDogRm9ybUZpZWxkLCByYXc6IGFueSk6IGFueSA9PiB7XG5cdFx0cmV0dXJuIChyYXcgJiYgcmF3LnNwbGl0KCc7JykpIHx8IFtdO1xuXHR9LFxuXHRmaW5kVHJlZU5vZGUodmFsdWU6IHN0cmluZywgY2hpbGRyZW4/OiBhbnlbXSk6IGFueSB7XG5cdFx0aWYgKCFjaGlsZHJlbiB8fCBjaGlsZHJlbi5sZW5ndGggPT0gMCkgcmV0dXJuO1xuXHRcdGNvbnN0IG4gPSBjaGlsZHJlbi5maW5kKChvKSA9PiBvLmtleSA9PSB2YWx1ZSk7XG5cdFx0aWYgKG4pIHJldHVybiBuO1xuXHRcdGZvciAoY29uc3QgY2ggb2YgY2hpbGRyZW4pIHtcblx0XHRcdGNvbnN0IGNuID0gdGhpcy5maW5kVHJlZU5vZGUodmFsdWUsIGNoLmNoaWxkcmVuKTtcblx0XHRcdGlmIChjbikgcmV0dXJuIGNuO1xuXHRcdH1cblx0XHRyZXR1cm47XG5cdH0sXG5cdGZpbmRUcmVlTm9kZXModmFsdWVzOiBzdHJpbmdbXSwgY2hpbGRyZW4/OiBhbnlbXSwgbm9kZXM/OiBhbnlbXSk6IHZvaWQge1xuXHRcdGlmICghY2hpbGRyZW4gfHwgY2hpbGRyZW4ubGVuZ3RoID09IDApIHJldHVybjtcblx0XHRjb25zdCB0YXJzID0gY2hpbGRyZW4uZmlsdGVyKChvKSA9PiB2YWx1ZXMuaW5kZXhPZihvLmtleSkgIT0gLTEpO1xuXHRcdG5vZGVzPy5wdXNoKC4uLnRhcnMpO1xuXHRcdGZvciAoY29uc3QgY2ggb2YgY2hpbGRyZW4pIHtcblx0XHRcdHRoaXMuZmluZFRyZWVOb2Rlcyh2YWx1ZXMsIGNoLmNoaWxkcmVuLCBub2Rlcyk7XG5cdFx0fVxuXHR9LFxuXHRwcmVsb2FkTG9nKHJhd01vZGVsOiBhbnksIGZpZWxkTGlzdDogRm9ybUZpZWxkW10sIGRhdGVQaXBlOiBEYXRlUGlwZSk6IGFueSB7XG5cdFx0Y29uc3QgdGFyZ2V0OiBhbnkgPSB7fTtcblx0XHRmaWVsZExpc3QuZm9yRWFjaCgoZmllbGQpID0+IHtcblx0XHRcdGlmICghZmllbGQua2V5KSByZXR1cm47XG5cdFx0XHRjb25zdCByYXdWYWx1ZSA9IF9maWVsZFV0aWxzLmdldE1vZGVsKHJhd01vZGVsLCBmaWVsZC5rZXkpO1xuXHRcdFx0aWYgKGZpZWxkLnR5cGUgPT0gJ2RhdGVwaWNrZXInKSB7XG5cdFx0XHRcdHRhcmdldFtmaWVsZC5rZXldID0gX2ZpZWxkVXRpbHMudG9EYXRlUGlja2VyVmFsdWUoZmllbGQsIHJhd1ZhbHVlLCBkYXRlUGlwZSwgdHJ1ZSk7XG5cdFx0XHRcdHJldHVybjtcblx0XHRcdH1cblx0XHRcdHRhcmdldFtmaWVsZC5rZXldID0gcmF3VmFsdWU7XG5cdFx0fSk7XG5cdFx0cmV0dXJuIHRhcmdldDtcblx0fSxcblx0dHJhbnNMb2cocmF3TW9kZWw6IGFueSwgY2hhbmdlZE1vZGVsOiBhbnksIG1haW5WYWx1ZTogYW55LCBpc05ldzogYm9vbGVhbixpMThuOmFueSk6IHN0cmluZyB7XG5cdFx0aWYgKGlzTmV3KSB7XG5cdFx0XHQvLyBAdHMtaWdub3JlXG5cdFx0XHRjb25zdCBpc0kxOG4gPSB3aW5kb3cuYXBwSXNJMThuXG5cdFx0XHRsZXQgY3JlYXRlU3RyID0gaXNJMThuID8gaTE4bi5mYW55aSgnYXBwLmNyZWF0ZScpIDon5paw5bu6Jztcblx0XHRcdHJldHVybiBgJHtjcmVhdGVTdHJ977yaJHttYWluVmFsdWV9YFxuXHRcdH1cblx0XHRjb25zdCBkZXRhaWw6IHN0cmluZ1tdID0gW107XG5cdFx0T2JqZWN0LmtleXMoY2hhbmdlZE1vZGVsKS5mb3JFYWNoKChrZXkpID0+IHtcblx0XHRcdGlmIChjaGFuZ2VkTW9kZWxba2V5XS50eXBlID09ICdjb2RlbWlycm9yJykge1xuXHRcdFx0XHRkZXRhaWwucHVzaChgWyR7Y2hhbmdlZE1vZGVsW2tleV0ubmFtZX1dIOWPmOabtGApO1xuXHRcdFx0XHRyZXR1cm47XG5cdFx0XHR9XG5cdFx0XHRkZXRhaWwucHVzaChgWyR7Y2hhbmdlZE1vZGVsW2tleV0ubmFtZX1dICR7cmF3TW9kZWxba2V5XSB8fCAnJ30gLT4gJHtjaGFuZ2VkTW9kZWxba2V5XS52YWx1ZSB8fCAnJ31gKTtcblx0XHR9KTtcblx0XHRyZXR1cm4gZGV0YWlsLmpvaW4oJzsnKTtcblx0fSxcblx0Ly8g57uP5rWL6K+Vc2VsZWN057uE5Lu25pyJ5YaF6YOoYnVnXG5cdC8vIOiuvue9rm1vZGVs5pe277yMZmllbGRDb250cm9sLnNldFZhbHVl55qEZW1pdEV2ZW505Y+C5pWw5Li6ZmFsc2Us5LuN5Lya6Kem5Y+RdmFsdWVDaGFuZ2Vz5LqL5Lu2XG5cdC8vIOinpuWPkXZhbHVlQ2hhbmdlc+S8muW9seWTjeaXpeW/l+S/neWtmOeahOWHhuehruaAp++8jOaVheatpOaWueazleS7heaYr+S4uuS6humYsuatoue7hOS7tuWGhemDqOaEj+WkluinpuWPkeeahOWPmOWKqFxuXHRpc0Zha2VkQ2hhbmdlKG5ld1ZhbHVlOiBhbnksIG9sZFZhbHVlOiBhbnksIGZpZWxkOiBGb3JtRmllbGQpOiBib29sZWFuIHtcblx0XHRjb25zdCBjaGFuZ2VUeXBlcyA9IFsnaW5wdXR0ZXh0JywgJ2lucHV0bnVtYmVyJywgJ3NlbGVjdCcsICd0cmVlc2VsZWN0JywgJ2RhdGVwaWNrZXInLCAnYXV0b2NvbXBsZXRlJywgJ211bHRpc2VsZWN0JywgJ3JhZGlvJ107XG5cdFx0aWYgKGNoYW5nZVR5cGVzLmluY2x1ZGVzKGZpZWxkLnR5cGUhKSkge1xuXHRcdFx0cmV0dXJuIChvbGRWYWx1ZSB8fCAnJykgPT0gKG5ld1ZhbHVlIHx8ICcnKTtcblx0XHR9XG5cdFx0cmV0dXJuIGZhbHNlO1xuXHR9LFxuXHRpc0lTTzg2MDEodGltZVN0cjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIC9eXFxkezR9LVxcZHsyfS1cXGR7Mn1UXFxkezJ9OlxcZHsyfTpcXGR7Mn0oXFwuXFxkKyk/KFp8WystXVxcZHsyfTpcXGR7Mn0pJC8udGVzdCh0aW1lU3RyKTtcblx0fSxcbn07XG5cbmV4cG9ydCBjb25zdCBmaWVsZFV0aWxzID0ge1xuXHRwcm9wczogX2ZpZWxkVXRpbHMucHJvcHMsXG5cdGxhYmVsOiBfZmllbGRVdGlscy5sYWJlbCxcblx0Z2V0TW9kZWw6IF9maWVsZFV0aWxzLmdldE1vZGVsLFxuXHRzZXRNb2RlbDogX2ZpZWxkVXRpbHMuc2V0TW9kZWwsXG5cdGZpZWxkSGFuZGxlcjogX2ZpZWxkVXRpbHMuZmllbGRIYW5kbGVyLFxuXHRkYWZhdWx0VmFsdWVIYW5kbGVyOiBfZmllbGRVdGlscy5kYWZhdWx0VmFsdWVIYW5kbGVyLFxuXHR0cmlnZ2VySG9va0FuZFNldFZhbHVlOiBfZmllbGRVdGlscy50cmlnZ2VySG9va0FuZFNldFZhbHVlLFxuXHRmcm9tRmllbGRWYWx1ZTogX2ZpZWxkVXRpbHMuZnJvbUZpZWxkVmFsdWUsXG5cdHByZWxvYWRMb2c6IF9maWVsZFV0aWxzLnByZWxvYWRMb2csXG5cdHRyYW5zTG9nOiBfZmllbGRVdGlscy50cmFuc0xvZyxcblx0aXNGYWtlZENoYW5nZTogX2ZpZWxkVXRpbHMuaXNGYWtlZENoYW5nZSxcbn07XG4iXX0=
|
|
@@ -182,4 +182,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
182
182
|
type: ViewChild,
|
|
183
183
|
args: ['fieldLabelRef', { static: false }]
|
|
184
184
|
}] } });
|
|
185
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2ltbS1lbGVtZW50LXVpL3NyYy9saWIvZm9ybS9mb3JtLWZpZWxkL2Zvcm0tZmllbGQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFjLFlBQVksRUFBcUMsTUFBTSxlQUFlLENBQUM7QUFDekgsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFDTixpQkFBaUIsR0FhakIsTUFBTSxhQUFhLENBQUM7O0FBdU1yQixNQUFNLE9BQU8sa0JBQWtCO0lBTTlCO1FBSEEsVUFBSyxHQUFHLEtBQUssRUFBYSxDQUFDO1FBQzNCLFVBQUssR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDO0lBRVYsQ0FBQztJQUVoQixRQUFRLEtBQVUsQ0FBQztJQUVuQixVQUFVO1FBQ1QsTUFBTSxFQUFFLEdBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUMxQixJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLENBQUM7WUFDMUMsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUNwQixPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDckIsQ0FBQztRQUNELElBQUksSUFBSSxDQUFDLEtBQUssRUFBRSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsQ0FBQztZQUN2QyxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3JCLENBQUM7UUFDRCxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsRUFBRSxZQUFZLEVBQUUsS0FBSyxLQUFLLFNBQVMsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFLEVBQUUsWUFBWSxFQUFFLEtBQUssS0FBSyxLQUFLLEVBQUUsQ0FBQztZQUNwRyxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3JCLENBQUM7UUFDRCxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDckIsQ0FBQztJQUNELFFBQVE7UUFDUCxPQUFPLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUcsQ0FBQyxhQUFjLEVBQUUsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLENBQUM7SUFDbkUsQ0FBQztJQUNELGtCQUFrQjtRQUNqQixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUM7SUFDN0IsQ0FBQztJQUVELGFBQWE7UUFDWixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDeEIsQ0FBQzsrR0FqQ1csa0JBQWtCO21HQUFsQixrQkFBa0IsNFVBQ2hCLGtCQUFrQixnREF0RXRCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBbUVULDhwQkFFVyxrQkFBa0IseUVBekdwQixtQkFBbUIsK0JBQUUsaUJBQWlCLG9FQUFFLGFBQWEsa0RBQUUsY0FBYywySUFBRSxvQkFBb0I7OzRGQXlHekYsa0JBQWtCO2tCQTVHOUIsU0FBUzsrQkFDQyxZQUFZLGNBQ1YsSUFBSSxXQUNQLENBQUMsbUJBQW1CLEVBQUUsaUJBQWlCLEVBQUUsYUFBYSxFQUFFLGNBQWMsRUFBRSxvQkFBb0IsQ0FBQyxZQW9DNUY7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RUFtRVQ7d0RBR2lDLGVBQWU7c0JBQWhELFlBQVk7dUJBQUMsa0JBQWtCO2dCQUNlLFVBQVU7c0JBQXhELFNBQVM7dUJBQUMsZUFBZSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgaW5wdXQsIFZpZXdDaGlsZCwgRWxlbWVudFJlZiwgVmlld0NoaWxkcmVuLCBRdWVyeUxpc3QsIGVmZmVjdCwgV3JpdGFibGVTaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBMYWJlbERpcmVjdGl2ZSB9IGZyb20gJy4vbGFiZWwuZGlyZWN0aXZlJztcbmltcG9ydCB7IENvbnRleHRNZW51Q29tcG9uZW50IH0gZnJvbSAnLi9jb250ZXh0LW1lbnUnO1xuaW1wb3J0IHsgVHJhbnNsYXRlUGlwZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgZmllbGRVdGlscyB9IGZyb20gJy4vZmllbGQtdXRpbHMnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtcblx0Rm9ybVR5cGVDb21wb25lbnQsXG5cdElucHV0VGV4dFByb3BzLFxuXHRJbnB1dE51bWJlclByb3BzLFxuXHRTZWxlY3RQcm9wcyxcblx0VHJlZVNlbGVjdFByb3BzLFxuXHREYXRlUGlja2VyUHJvcHMsXG5cdEF1dG9Db21wbGV0ZVByb3BzLFxuXHRNdWx0aVNlbGVjdFByb3BzLFxuXHRSYWRpb1Byb3BzLFxuXHRUZXh0QXJlYVByb3BzLFxuXHRVcGxvYWRQcm9wcyxcblx0SW1hZ2VQcm9wcyxcblx0Q29kZU1pcnJvclByb3BzLFxufSBmcm9tICcuL2Zvcm0tdHlwZSc7XG5pbXBvcnQgeyBGaWVsZENvbnRyb2wgfSBmcm9tICcuL2ZpZWxkLWNvbnRyb2wnO1xuaW1wb3J0IHsgRm9ybUNvbXBvbmVudCB9IGZyb20gJy4uL2Zvcm0vZm9ybS5jb21wb25lbnQnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEZvcm1GaWVsZCB7XG5cdGtleT86IHN0cmluZztcblx0dHlwZT86XG5cdFx0fCAnaW5wdXR0ZXh0J1xuXHRcdHwgJ2lucHV0bnVtYmVyJ1xuXHRcdHwgJ3NlbGVjdCdcblx0XHR8ICd0cmVlc2VsZWN0J1xuXHRcdHwgJ2RhdGVwaWNrZXInXG5cdFx0fCAnYXV0b2NvbXBsZXRlJ1xuXHRcdHwgJ211bHRpc2VsZWN0J1xuXHRcdHwgJ3JhZGlvJ1xuXHRcdHwgJ3RleHRhcmVhJ1xuXHRcdHwgJ3VwbG9hZCdcblx0XHR8ICdpbWFnZSdcblx0XHR8ICdjb2RlbWlycm9yJ1xuXHRcdHwgJ3Jvd3NlbGVjdG9yJztcblx0ZGVmYXVsdD86IGFueTtcblx0aWQ/OiBzdHJpbmc7XG5cdG5hbWU/OiBzdHJpbmc7XG5cdGdyb3VwPzogRm9ybUZpZWxkW107XG5cdGdyb3VwQ2xhc3M/OiBzdHJpbmc7XG5cdGNsYXNzPzogc3RyaW5nO1xuXHRpbm5lckNsYXNzPzogc3RyaW5nO1xuXHRmaWVsZENvbnRyb2w/OiBGaWVsZENvbnRyb2w7XG5cdGlucHV0VGV4dFByb3BzPzogSW5wdXRUZXh0UHJvcHM7XG5cdGlucHV0TnVtYmVyUHJvcHM/OiBJbnB1dE51bWJlclByb3BzO1xuXHRzZWxlY3RQcm9wcz86IFNlbGVjdFByb3BzO1xuXHR0cmVlU2VsZWN0UHJvcHM/OiBUcmVlU2VsZWN0UHJvcHM7XG5cdGRhdGVQaWNrZXJQcm9wcz86IERhdGVQaWNrZXJQcm9wcztcblx0YXV0b0NvbXBsZXRlUHJvcHM/OiBBdXRvQ29tcGxldGVQcm9wcztcblx0bXVsdGlTZWxlY3RQcm9wcz86IE11bHRpU2VsZWN0UHJvcHM7XG5cdHJhZGlvUHJvcHM/OiBSYWRpb1Byb3BzO1xuXHR0ZXh0QXJlYVByb3BzPzogVGV4dEFyZWFQcm9wcztcblx0dXBsb2FkUHJvcHM/OiBVcGxvYWRQcm9wcztcblx0aW1hZ2VQcm9wcz86IEltYWdlUHJvcHM7XG5cdGNvZGVNaXJyb3JQcm9wcz86IENvZGVNaXJyb3JQcm9wcztcblx0cm93U2VsZWN0b3JQcm9wcz86IGFueTtcblx0aGlkZT86IGJvb2xlYW47XG5cdGhpZGVFeHByZXNzaW9uPzogKG1vZGVsOiBhbnksIGZpZWxkPzogRm9ybUZpZWxkKSA9PiBib29sZWFuO1xuXHRob29rPzogT2JzZXJ2YWJsZTwoZmllbGQ/OiBGb3JtRmllbGQpID0+IHZvaWQ+O1xuXHR2YWxpZGF0b3JzPzogYW55O1xuXHRpbnZhbGlkPzogYm9vbGVhbjtcblx0ZXh0cmE/OiBhbnk7XG5cdHV1aWQ/OiBzdHJpbmc7XG5cdGxhYmVsTWluV2lkdGg/OiBXcml0YWJsZVNpZ25hbDxzdHJpbmcgfCB1bmRlZmluZWQ+O1xuXHRpbnRlcmFjdGl2ZUxhYmVsPzogYm9vbGVhbjtcblx0Zm9ybT86IEZvcm1Db21wb25lbnQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmllbGRQcm9wcyB7XG5cdHR5cGU/OiBzdHJpbmc7XG5cdGxhYmVsPzogc3RyaW5nO1xuXHRpMThuS2V5Pzogc3RyaW5nO1xuXHRsYWJlbENsYXNzPzogc3RyaW5nO1xuXHRsYWJlbFZhcmlhbnQ/OiAnaW4nIHwgJ292ZXInIHwgJ29uJztcblx0dmFyaWFudD86IGFueTtcblx0Y2xhc3M/OiBzdHJpbmc7XG5cdG5hbWU/OiBzdHJpbmc7XG5cdHBsYWNlaG9sZGVyPzogc3RyaW5nO1xuXHRkaXNhYmxlZD86IGJvb2xlYW47XG5cdGhpZGRlbj86IGJvb2xlYW47XG5cdHJlcXVpcmVkPzogYm9vbGVhbjtcblx0c2l6ZT86IGFueTtcblx0c3R5bGVDbGFzcz86IHN0cmluZztcblx0c3R5bGU/OiBhbnk7XG5cdGF1dG9mb2N1cz86IGJvb2xlYW47XG5cdG1pbj86IG51bWJlcjtcblx0bWF4PzogbnVtYmVyO1xuXHRpbnB1dFN0eWxlPzogYW55O1xuXHRpbnB1dFN0eWxlQ2xhc3M/OiBzdHJpbmc7XG5cdGZsdWlkPzogYm9vbGVhbjtcblx0YXJpYUxhYmVsPzogc3RyaW5nO1xuXHRhcmlhTGFiZWxsZWRCeT86IHN0cmluZztcblx0Zm9jdXM/OiBGb2N1c0V2ZW50O1xuXHRibHVyPzogRm9jdXNFdmVudDtcblx0a2V5dXA/OiBLZXlib2FyZEV2ZW50O1xuXHRrZXlkb3duPzogS2V5Ym9hcmRFdmVudDtcblx0Y2xpY2s/OiBNb3VzZUV2ZW50O1xuXHRpbnB1dD86IEV2ZW50O1xuXHRjaGFuZ2U/OiBFdmVudDtcblx0a2V5cHJlc3M/OiBLZXlib2FyZEV2ZW50O1xuXHRvbk1vZGVsQ2hhbmdlPzogQXR0cmlidXRlRXZlbnQ7XG5cdG9uSG9va0NoYW5nZT86IEF0dHJpYnV0ZUV2ZW50O1xufVxuXG5leHBvcnQgZGVjbGFyZSB0eXBlIEF0dHJpYnV0ZUV2ZW50ID0gKGZpZWxkOiBGb3JtRmllbGQsIGV2ZW50PzogYW55KSA9PiB2b2lkO1xuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICdmb3JtLWZpZWxkJyxcblx0c3RhbmRhbG9uZTogdHJ1ZSxcblx0aW1wb3J0czogW1JlYWN0aXZlRm9ybXNNb2R1bGUsIEZvcm1UeXBlQ29tcG9uZW50LCBUcmFuc2xhdGVQaXBlLCBMYWJlbERpcmVjdGl2ZSwgQ29udGV4dE1lbnVDb21wb25lbnRdLFxuXHRzdHlsZXM6IGBcblx0XHQudW50b3VjaGVkIHtcblx0XHRcdHRvdWNoLWFjdGlvbjogbm9uZTtcblx0XHR9XG5cdFx0LnAtZmllbGQgPiBsYWJlbCB7XG5cdFx0XHRtYXJnaW46IDJweDtcblx0XHRcdHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuXHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRjb2xvcjogIzFlMjkzYjtcblx0XHR9XG5cdFx0LnAtZmllbGQgPiBsYWJlbDpub3QoLm5nLXZhbGlkKS5uZy1kaXJ0eSB7XG5cdFx0XHRjb2xvcjogdmFyKC0tcC1yZWQtNTAwKSAhaW1wb3J0YW50O1xuXHRcdH1cblx0XHQucC1maWVsZCA+IGxhYmVsOm5vdCgubmctdmFsaWQpLm5nLWRpcnR5ID4gLmZpZWxkLXJlcXVpcmVkIHtcblx0XHRcdGNvbG9yOiB2YXIoLS1wLXJlZC01MDApICFpbXBvcnRhbnQ7XG5cdFx0fVxuXHRcdC5maWVsZC1yZXF1aXJlZCB7XG5cdFx0XHRwYWRkaW5nLWxlZnQ6IDIuNXB4O1xuXHRcdFx0Y29sb3I6IHZhcigtLXAtcHJpbWFyeS1jb2xvcik7XG5cdFx0fVxuXHRcdC5wLWZpZWxkID4gbGFiZWw6bm90KC5uZy12YWxpZCkubmctZGlydHkgPiAuZmllbGQtZWRpdGFibGUge1xuXHRcdFx0Y29sb3I6IHZhcigtLXAtcmVkLTUwMCkgIWltcG9ydGFudDtcblx0XHR9XG5cdFx0LmZpZWxkLWVkaXRhYmxlIHtcblx0XHRcdHBhZGRpbmctbGVmdDogMXB4O1xuXHRcdFx0Zm9udC1zaXplOiA2cHg7XG5cdFx0XHRjb2xvcjogdmFyKC0tcC1wcmltYXJ5LWNvbG9yKTtcblx0XHR9XG5cdFx0LmZpZWxkLWxhYmVsIHtcblx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRcdG92ZXJmbG93LXdyYXA6IGJyZWFrLXdvcmQ7XG5cdFx0XHR3b3JkLWJyZWFrOiBicmVhay13b3JkO1xuXHRcdFx0d2hpdGUtc3BhY2U6IG5vcm1hbDtcblx0XHR9XG5cdGAsXG5cdHRlbXBsYXRlOiBgXG5cdFx0QGlmIChmaWVsZCgpPy5ncm91cCkge1xuXHRcdFx0PGRpdiBbY2xhc3NdPVwiZmllbGQoKT8uZ3JvdXBDbGFzc1wiPlxuXHRcdFx0XHRAZm9yIChmY2hpbGQgb2YgZmllbGQoKSEuZ3JvdXA7IHRyYWNrIGZjaGlsZCkge1xuXHRcdFx0XHRcdEBpZiAoIWZjaGlsZC5oaWRlKSB7XG5cdFx0XHRcdFx0XHQ8ZGl2IFtjbGFzc109XCJmY2hpbGQuZ3JvdXBDbGFzcyB8fCBmY2hpbGQuY2xhc3NcIj5cblx0XHRcdFx0XHRcdFx0PGZvcm0tZmllbGRcblx0XHRcdFx0XHRcdFx0XHRjbGFzcz1cInctZnVsbFwiXG5cdFx0XHRcdFx0XHRcdFx0W2ZpZWxkXT1cImZjaGlsZFwiPlxuXHRcdFx0XHRcdFx0XHQ8L2Zvcm0tZmllbGQ+XG5cdFx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdDwvZGl2PlxuXHRcdH0gQGVsc2Uge1xuXHRcdFx0QGlmIChwcm9wcyhmaWVsZCgpISkubGFiZWwgIT09IHVuZGVmaW5lZCkge1xuXHRcdFx0XHQ8ZGl2IFtjbGFzc109XCJmaWVsZCgpPy5pbm5lckNsYXNzIHx8ICdweC00IG15LTEnXCI+XG5cdFx0XHRcdFx0PGRpdiBjbGFzcz1cImZsZXggZmxleC1yb3cgZmxleC1ub3dyYXAgaXRlbXMtc3RhcnRcIj5cblx0XHRcdFx0XHRcdDxkaXZcblx0XHRcdFx0XHRcdFx0Y2xhc3M9XCJmbGV4LW5vbmUgcC1maWVsZCBmaWVsZC1sYWJlbCBtaW4taC04IHB0LVsxLjVweF0gZmxleCBpdGVtcy1jZW50ZXJcIlxuXHRcdFx0XHRcdFx0XHRbc3R5bGVdPVwiZ2V0U3R5bGUoKVwiPlxuXHRcdFx0XHRcdFx0XHQ8bGFiZWxcblx0XHRcdFx0XHRcdFx0XHQjbGFiZWxcblx0XHRcdFx0XHRcdFx0XHRbY2xhc3NdPVwibGFiZWxDbGFzcygpXCJcblx0XHRcdFx0XHRcdFx0XHRmaWVsZExhYmVsXG5cdFx0XHRcdFx0XHRcdFx0W2ZpZWxkXT1cImZpZWxkKCkhXCJcblx0XHRcdFx0XHRcdFx0XHRbY29udGV4dE1lbnVdPVwiY29udGV4dE1lbnVcIj5cblx0XHRcdFx0XHRcdFx0XHQ8c3BhblxuXHRcdFx0XHRcdFx0XHRcdFx0c3R5bGU9XCJ1c2VyLXNlbGVjdDogbm9uZVwiXG5cdFx0XHRcdFx0XHRcdFx0XHQjZmllbGRMYWJlbFJlZlxuXHRcdFx0XHRcdFx0XHRcdFx0Pnt7IHByb3BzKGZpZWxkKCkhKS5pMThuS2V5ID8gKHByb3BzKGZpZWxkKCkhKS5pMThuS2V5ISB8IHRyYW5zbGF0ZSkgOiBwcm9wcyhmaWVsZCgpISkubGFiZWwhIH19PC9zcGFuXG5cdFx0XHRcdFx0XHRcdFx0PlxuXHRcdFx0XHRcdFx0XHRcdEBpZiAocHJvcHMoZmllbGQoKSEpLnJlcXVpcmVkKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHQ8c3BhbiBjbGFzcz1cImZpZWxkLXJlcXVpcmVkXCI+Kjwvc3Bhbj5cblx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0QGlmICghZmllbGQoKT8uZmllbGRDb250cm9sPy5kaXNhYmxlZCkge1xuXHRcdFx0XHRcdFx0XHRcdFx0PHNwYW4gY2xhc3M9XCJpY29uZm9udCBpY29uLWVkaXQtZmxhZyBmaWVsZC1lZGl0YWJsZVwiPjwvc3Bhbj5cblx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdDwvbGFiZWw+XG5cdFx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJmbGV4LTEgbWluLWgtOCBwdC0xIHctMCBmbGV4IGZsZXgtcm93LXJldmVyc2VcIj5cblx0XHRcdFx0XHRcdFx0PGRpdlxuXHRcdFx0XHRcdFx0XHRcdCNmaWVsZFR5cGVSZWZcblx0XHRcdFx0XHRcdFx0XHRjbGFzcz1cInctZnVsbFwiPlxuXHRcdFx0XHRcdFx0XHRcdDxmb3JtLXR5cGUgW2ZpZWxkXT1cImZpZWxkKCkhXCI+PC9mb3JtLXR5cGU+XG5cdFx0XHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHQ8YXBwLWNvbnRleHQtbWVudVxuXHRcdFx0XHRcdCNjb250ZXh0TWVudVxuXHRcdFx0XHRcdFt0YXJnZXRdPVwibGFiZWxcIlxuXHRcdFx0XHRcdFtmaWVsZF09XCJmaWVsZCgpIVwiPjwvYXBwLWNvbnRleHQtbWVudT5cblx0XHRcdH0gQGVsc2Uge1xuXHRcdFx0XHQ8ZGl2IFtjbGFzc109XCJmaWVsZCgpPy5pbm5lckNsYXNzIHx8ICdweC00IG15LTEnXCI+XG5cdFx0XHRcdFx0PGRpdiBjbGFzcz1cImZsZXggZmxleC1yb3cgZmxleC1ub3dyYXAgaXRlbXMtc3RhcnRcIj5cblx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJmbGV4LTEgbWluLWgtOCBwdC0xIHctMCBmbGV4IGZsZXgtcm93LXJldmVyc2VcIj5cblx0XHRcdFx0XHRcdFx0PGRpdlxuXHRcdFx0XHRcdFx0XHRcdCNmaWVsZFR5cGVSZWZcblx0XHRcdFx0XHRcdFx0XHRjbGFzcz1cInctZnVsbFwiPlxuXHRcdFx0XHRcdFx0XHRcdDxmb3JtLXR5cGUgW2ZpZWxkXT1cImZpZWxkKCkhXCI+PC9mb3JtLXR5cGU+XG5cdFx0XHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdDwvZGl2PlxuXHRcdFx0fVxuXHRcdH1cblx0YCxcbn0pXG5leHBvcnQgY2xhc3MgRm9ybUZpZWxkQ29tcG9uZW50IHtcblx0QFZpZXdDaGlsZHJlbihGb3JtRmllbGRDb21wb25lbnQpIGZpZWxkQ29tcG9uZW50cz86IFF1ZXJ5TGlzdDxGb3JtRmllbGRDb21wb25lbnQ+O1xuXHRAVmlld0NoaWxkKCdmaWVsZExhYmVsUmVmJywgeyBzdGF0aWM6IGZhbHNlIH0pIGZpZWxkTGFiZWw/OiBFbGVtZW50UmVmO1xuXHRmaWVsZCA9IGlucHV0PEZvcm1GaWVsZD4oKTtcblx0cHJvcHMgPSBmaWVsZFV0aWxzLnByb3BzO1xuXG5cdGNvbnN0cnVjdG9yKCkge31cblxuXHRuZ09uSW5pdCgpOiB2b2lkIHt9XG5cblx0bGFiZWxDbGFzcygpIHtcblx0XHRjb25zdCBsYyA9IFsndW50b3VjaGVkICddO1xuXHRcdGlmICh0aGlzLmZpZWxkKCk/LmZpZWxkQ29udHJvbD8uZGlzYWJsZWQpIHtcblx0XHRcdGxjLnB1c2goJ25nLXZhbGlkJyk7XG5cdFx0XHRyZXR1cm4gbGMuam9pbignICcpO1xuXHRcdH1cblx0XHRpZiAodGhpcy5maWVsZCgpPy5maWVsZENvbnRyb2w/LmRpcnR5KSB7XG5cdFx0XHRsYy5wdXNoKCduZy1kaXJ0eScpO1xuXHRcdH1cblx0XHRpZiAodGhpcy5maWVsZCgpPy5maWVsZENvbnRyb2w/LnZhbGlkICE9PSB1bmRlZmluZWQgJiYgdGhpcy5maWVsZCgpPy5maWVsZENvbnRyb2w/LnZhbGlkICE9PSBmYWxzZSkge1xuXHRcdFx0bGMucHVzaCgnbmctdmFsaWQnKTtcblx0XHR9XG5cdFx0cmV0dXJuIGxjLmpvaW4oJyAnKTtcblx0fVxuXHRnZXRTdHlsZSgpIHtcblx0XHRyZXR1cm4geyB3aWR0aDogdGhpcy5maWVsZCgpIS5sYWJlbE1pbldpZHRoISgpLCBtYXhXaWR0aDogJzQwJScgfTtcblx0fVxuXHRnZXRGaWVsZENvbXBvbmVudHMoKTogUXVlcnlMaXN0PEZvcm1GaWVsZENvbXBvbmVudD4gfCB1bmRlZmluZWQge1xuXHRcdHJldHVybiB0aGlzLmZpZWxkQ29tcG9uZW50cztcblx0fVxuXG5cdGdldEZpZWxkTGFiZWwoKSB7XG5cdFx0cmV0dXJuIHRoaXMuZmllbGRMYWJlbDtcblx0fVxufVxuIl19
|
|
185
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2ltbS1lbGVtZW50LXVpL3NyYy9saWIvZm9ybS9mb3JtLWZpZWxkL2Zvcm0tZmllbGQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFjLFlBQVksRUFBcUMsTUFBTSxlQUFlLENBQUM7QUFDekgsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFDTixpQkFBaUIsR0FjakIsTUFBTSxhQUFhLENBQUM7O0FBeU1yQixNQUFNLE9BQU8sa0JBQWtCO0lBTTlCO1FBSEEsVUFBSyxHQUFHLEtBQUssRUFBYSxDQUFDO1FBQzNCLFVBQUssR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDO0lBRVYsQ0FBQztJQUVoQixRQUFRLEtBQVUsQ0FBQztJQUVuQixVQUFVO1FBQ1QsTUFBTSxFQUFFLEdBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUMxQixJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLENBQUM7WUFDMUMsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUNwQixPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDckIsQ0FBQztRQUNELElBQUksSUFBSSxDQUFDLEtBQUssRUFBRSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsQ0FBQztZQUN2QyxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3JCLENBQUM7UUFDRCxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsRUFBRSxZQUFZLEVBQUUsS0FBSyxLQUFLLFNBQVMsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFLEVBQUUsWUFBWSxFQUFFLEtBQUssS0FBSyxLQUFLLEVBQUUsQ0FBQztZQUNwRyxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3JCLENBQUM7UUFDRCxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDckIsQ0FBQztJQUNELFFBQVE7UUFDUCxPQUFPLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUcsQ0FBQyxhQUFjLEVBQUUsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLENBQUM7SUFDbkUsQ0FBQztJQUNELGtCQUFrQjtRQUNqQixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUM7SUFDN0IsQ0FBQztJQUVELGFBQWE7UUFDWixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDeEIsQ0FBQzsrR0FqQ1csa0JBQWtCO21HQUFsQixrQkFBa0IsNFVBQ2hCLGtCQUFrQixnREF0RXRCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBbUVULDhwQkFFVyxrQkFBa0IseUVBekdwQixtQkFBbUIsK0JBQUUsaUJBQWlCLG9FQUFFLGFBQWEsa0RBQUUsY0FBYywySUFBRSxvQkFBb0I7OzRGQXlHekYsa0JBQWtCO2tCQTVHOUIsU0FBUzsrQkFDQyxZQUFZLGNBQ1YsSUFBSSxXQUNQLENBQUMsbUJBQW1CLEVBQUUsaUJBQWlCLEVBQUUsYUFBYSxFQUFFLGNBQWMsRUFBRSxvQkFBb0IsQ0FBQyxZQW9DNUY7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RUFtRVQ7d0RBR2lDLGVBQWU7c0JBQWhELFlBQVk7dUJBQUMsa0JBQWtCO2dCQUNlLFVBQVU7c0JBQXhELFNBQVM7dUJBQUMsZUFBZSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgaW5wdXQsIFZpZXdDaGlsZCwgRWxlbWVudFJlZiwgVmlld0NoaWxkcmVuLCBRdWVyeUxpc3QsIGVmZmVjdCwgV3JpdGFibGVTaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBMYWJlbERpcmVjdGl2ZSB9IGZyb20gJy4vbGFiZWwuZGlyZWN0aXZlJztcbmltcG9ydCB7IENvbnRleHRNZW51Q29tcG9uZW50IH0gZnJvbSAnLi9jb250ZXh0LW1lbnUnO1xuaW1wb3J0IHsgVHJhbnNsYXRlUGlwZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgZmllbGRVdGlscyB9IGZyb20gJy4vZmllbGQtdXRpbHMnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtcblx0Rm9ybVR5cGVDb21wb25lbnQsXG5cdElucHV0VGV4dFByb3BzLFxuXHRJbnB1dE51bWJlclByb3BzLFxuXHRTZWxlY3RQcm9wcyxcblx0VHJlZVNlbGVjdFByb3BzLFxuXHREYXRlUGlja2VyUHJvcHMsXG5cdEF1dG9Db21wbGV0ZVByb3BzLFxuXHRNdWx0aVNlbGVjdFByb3BzLFxuXHRSYWRpb1Byb3BzLFxuXHRUZXh0QXJlYVByb3BzLFxuXHRVcGxvYWRQcm9wcyxcblx0SW1hZ2VQcm9wcyxcblx0SW1hZ2VQcmV2aWV3UHJvcHMsXG5cdENvZGVNaXJyb3JQcm9wcyxcbn0gZnJvbSAnLi9mb3JtLXR5cGUnO1xuaW1wb3J0IHsgRmllbGRDb250cm9sIH0gZnJvbSAnLi9maWVsZC1jb250cm9sJztcbmltcG9ydCB7IEZvcm1Db21wb25lbnQgfSBmcm9tICcuLi9mb3JtL2Zvcm0uY29tcG9uZW50JztcblxuZXhwb3J0IGludGVyZmFjZSBGb3JtRmllbGQge1xuXHRrZXk/OiBzdHJpbmc7XG5cdHR5cGU/OlxuXHRcdHwgJ2lucHV0dGV4dCdcblx0XHR8ICdpbnB1dG51bWJlcidcblx0XHR8ICdzZWxlY3QnXG5cdFx0fCAndHJlZXNlbGVjdCdcblx0XHR8ICdkYXRlcGlja2VyJ1xuXHRcdHwgJ2F1dG9jb21wbGV0ZSdcblx0XHR8ICdtdWx0aXNlbGVjdCdcblx0XHR8ICdyYWRpbydcblx0XHR8ICd0ZXh0YXJlYSdcblx0XHR8ICd1cGxvYWQnXG5cdFx0fCAnaW1hZ2UnXG5cdFx0fCAnaW1hZ2VwcmV2aWV3J1xuXHRcdHwgJ2NvZGVtaXJyb3InXG5cdFx0fCAncm93c2VsZWN0b3InO1xuXHRkZWZhdWx0PzogYW55O1xuXHRpZD86IHN0cmluZztcblx0bmFtZT86IHN0cmluZztcblx0Z3JvdXA/OiBGb3JtRmllbGRbXTtcblx0Z3JvdXBDbGFzcz86IHN0cmluZztcblx0Y2xhc3M/OiBzdHJpbmc7XG5cdGlubmVyQ2xhc3M/OiBzdHJpbmc7XG5cdGZpZWxkQ29udHJvbD86IEZpZWxkQ29udHJvbDtcblx0aW5wdXRUZXh0UHJvcHM/OiBJbnB1dFRleHRQcm9wcztcblx0aW5wdXROdW1iZXJQcm9wcz86IElucHV0TnVtYmVyUHJvcHM7XG5cdHNlbGVjdFByb3BzPzogU2VsZWN0UHJvcHM7XG5cdHRyZWVTZWxlY3RQcm9wcz86IFRyZWVTZWxlY3RQcm9wcztcblx0ZGF0ZVBpY2tlclByb3BzPzogRGF0ZVBpY2tlclByb3BzO1xuXHRhdXRvQ29tcGxldGVQcm9wcz86IEF1dG9Db21wbGV0ZVByb3BzO1xuXHRtdWx0aVNlbGVjdFByb3BzPzogTXVsdGlTZWxlY3RQcm9wcztcblx0cmFkaW9Qcm9wcz86IFJhZGlvUHJvcHM7XG5cdHRleHRBcmVhUHJvcHM/OiBUZXh0QXJlYVByb3BzO1xuXHR1cGxvYWRQcm9wcz86IFVwbG9hZFByb3BzO1xuXHRpbWFnZVByb3BzPzogSW1hZ2VQcm9wcztcblx0aW1hZ2VQcmV2aWV3UHJvcHM/OiBJbWFnZVByZXZpZXdQcm9wcztcblx0Y29kZU1pcnJvclByb3BzPzogQ29kZU1pcnJvclByb3BzO1xuXHRyb3dTZWxlY3RvclByb3BzPzogYW55O1xuXHRoaWRlPzogYm9vbGVhbjtcblx0aGlkZUV4cHJlc3Npb24/OiAobW9kZWw6IGFueSwgZmllbGQ/OiBGb3JtRmllbGQpID0+IGJvb2xlYW47XG5cdGhvb2s/OiBPYnNlcnZhYmxlPChmaWVsZD86IEZvcm1GaWVsZCkgPT4gdm9pZD47XG5cdHZhbGlkYXRvcnM/OiBhbnk7XG5cdGludmFsaWQ/OiBib29sZWFuO1xuXHRleHRyYT86IGFueTtcblx0dXVpZD86IHN0cmluZztcblx0bGFiZWxNaW5XaWR0aD86IFdyaXRhYmxlU2lnbmFsPHN0cmluZyB8IHVuZGVmaW5lZD47XG5cdGludGVyYWN0aXZlTGFiZWw/OiBib29sZWFuO1xuXHRmb3JtPzogRm9ybUNvbXBvbmVudDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGaWVsZFByb3BzIHtcblx0dHlwZT86IHN0cmluZztcblx0bGFiZWw/OiBzdHJpbmc7XG5cdGkxOG5LZXk/OiBzdHJpbmc7XG5cdGxhYmVsQ2xhc3M/OiBzdHJpbmc7XG5cdGxhYmVsVmFyaWFudD86ICdpbicgfCAnb3ZlcicgfCAnb24nO1xuXHR2YXJpYW50PzogYW55O1xuXHRjbGFzcz86IHN0cmluZztcblx0bmFtZT86IHN0cmluZztcblx0cGxhY2Vob2xkZXI/OiBzdHJpbmc7XG5cdGRpc2FibGVkPzogYm9vbGVhbjtcblx0aGlkZGVuPzogYm9vbGVhbjtcblx0cmVxdWlyZWQ/OiBib29sZWFuO1xuXHRzaXplPzogYW55O1xuXHRzdHlsZUNsYXNzPzogc3RyaW5nO1xuXHRzdHlsZT86IGFueTtcblx0YXV0b2ZvY3VzPzogYm9vbGVhbjtcblx0bWluPzogbnVtYmVyO1xuXHRtYXg/OiBudW1iZXI7XG5cdGlucHV0U3R5bGU/OiBhbnk7XG5cdGlucHV0U3R5bGVDbGFzcz86IHN0cmluZztcblx0Zmx1aWQ/OiBib29sZWFuO1xuXHRhcmlhTGFiZWw/OiBzdHJpbmc7XG5cdGFyaWFMYWJlbGxlZEJ5Pzogc3RyaW5nO1xuXHRmb2N1cz86IEZvY3VzRXZlbnQ7XG5cdGJsdXI/OiBGb2N1c0V2ZW50O1xuXHRrZXl1cD86IEtleWJvYXJkRXZlbnQ7XG5cdGtleWRvd24/OiBLZXlib2FyZEV2ZW50O1xuXHRjbGljaz86IE1vdXNlRXZlbnQ7XG5cdGlucHV0PzogRXZlbnQ7XG5cdGNoYW5nZT86IEV2ZW50O1xuXHRrZXlwcmVzcz86IEtleWJvYXJkRXZlbnQ7XG5cdG9uTW9kZWxDaGFuZ2U/OiBBdHRyaWJ1dGVFdmVudDtcblx0b25Ib29rQ2hhbmdlPzogQXR0cmlidXRlRXZlbnQ7XG59XG5cbmV4cG9ydCBkZWNsYXJlIHR5cGUgQXR0cmlidXRlRXZlbnQgPSAoZmllbGQ6IEZvcm1GaWVsZCwgZXZlbnQ/OiBhbnkpID0+IHZvaWQ7XG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ2Zvcm0tZmllbGQnLFxuXHRzdGFuZGFsb25lOiB0cnVlLFxuXHRpbXBvcnRzOiBbUmVhY3RpdmVGb3Jtc01vZHVsZSwgRm9ybVR5cGVDb21wb25lbnQsIFRyYW5zbGF0ZVBpcGUsIExhYmVsRGlyZWN0aXZlLCBDb250ZXh0TWVudUNvbXBvbmVudF0sXG5cdHN0eWxlczogYFxuXHRcdC51bnRvdWNoZWQge1xuXHRcdFx0dG91Y2gtYWN0aW9uOiBub25lO1xuXHRcdH1cblx0XHQucC1maWVsZCA+IGxhYmVsIHtcblx0XHRcdG1hcmdpbjogMnB4O1xuXHRcdFx0dGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG5cdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdGNvbG9yOiAjMWUyOTNiO1xuXHRcdH1cblx0XHQucC1maWVsZCA+IGxhYmVsOm5vdCgubmctdmFsaWQpLm5nLWRpcnR5IHtcblx0XHRcdGNvbG9yOiB2YXIoLS1wLXJlZC01MDApICFpbXBvcnRhbnQ7XG5cdFx0fVxuXHRcdC5wLWZpZWxkID4gbGFiZWw6bm90KC5uZy12YWxpZCkubmctZGlydHkgPiAuZmllbGQtcmVxdWlyZWQge1xuXHRcdFx0Y29sb3I6IHZhcigtLXAtcmVkLTUwMCkgIWltcG9ydGFudDtcblx0XHR9XG5cdFx0LmZpZWxkLXJlcXVpcmVkIHtcblx0XHRcdHBhZGRpbmctbGVmdDogMi41cHg7XG5cdFx0XHRjb2xvcjogdmFyKC0tcC1wcmltYXJ5LWNvbG9yKTtcblx0XHR9XG5cdFx0LnAtZmllbGQgPiBsYWJlbDpub3QoLm5nLXZhbGlkKS5uZy1kaXJ0eSA+IC5maWVsZC1lZGl0YWJsZSB7XG5cdFx0XHRjb2xvcjogdmFyKC0tcC1yZWQtNTAwKSAhaW1wb3J0YW50O1xuXHRcdH1cblx0XHQuZmllbGQtZWRpdGFibGUge1xuXHRcdFx0cGFkZGluZy1sZWZ0OiAxcHg7XG5cdFx0XHRmb250LXNpemU6IDZweDtcblx0XHRcdGNvbG9yOiB2YXIoLS1wLXByaW1hcnktY29sb3IpO1xuXHRcdH1cblx0XHQuZmllbGQtbGFiZWwge1xuXHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdFx0b3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDtcblx0XHRcdHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XG5cdFx0XHR3aGl0ZS1zcGFjZTogbm9ybWFsO1xuXHRcdH1cblx0YCxcblx0dGVtcGxhdGU6IGBcblx0XHRAaWYgKGZpZWxkKCk/Lmdyb3VwKSB7XG5cdFx0XHQ8ZGl2IFtjbGFzc109XCJmaWVsZCgpPy5ncm91cENsYXNzXCI+XG5cdFx0XHRcdEBmb3IgKGZjaGlsZCBvZiBmaWVsZCgpIS5ncm91cDsgdHJhY2sgZmNoaWxkKSB7XG5cdFx0XHRcdFx0QGlmICghZmNoaWxkLmhpZGUpIHtcblx0XHRcdFx0XHRcdDxkaXYgW2NsYXNzXT1cImZjaGlsZC5ncm91cENsYXNzIHx8IGZjaGlsZC5jbGFzc1wiPlxuXHRcdFx0XHRcdFx0XHQ8Zm9ybS1maWVsZFxuXHRcdFx0XHRcdFx0XHRcdGNsYXNzPVwidy1mdWxsXCJcblx0XHRcdFx0XHRcdFx0XHRbZmllbGRdPVwiZmNoaWxkXCI+XG5cdFx0XHRcdFx0XHRcdDwvZm9ybS1maWVsZD5cblx0XHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0PC9kaXY+XG5cdFx0fSBAZWxzZSB7XG5cdFx0XHRAaWYgKHByb3BzKGZpZWxkKCkhKS5sYWJlbCAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0XHRcdDxkaXYgW2NsYXNzXT1cImZpZWxkKCk/LmlubmVyQ2xhc3MgfHwgJ3B4LTQgbXktMSdcIj5cblx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXJvdyBmbGV4LW5vd3JhcCBpdGVtcy1zdGFydFwiPlxuXHRcdFx0XHRcdFx0PGRpdlxuXHRcdFx0XHRcdFx0XHRjbGFzcz1cImZsZXgtbm9uZSBwLWZpZWxkIGZpZWxkLWxhYmVsIG1pbi1oLTggcHQtWzEuNXB4XSBmbGV4IGl0ZW1zLWNlbnRlclwiXG5cdFx0XHRcdFx0XHRcdFtzdHlsZV09XCJnZXRTdHlsZSgpXCI+XG5cdFx0XHRcdFx0XHRcdDxsYWJlbFxuXHRcdFx0XHRcdFx0XHRcdCNsYWJlbFxuXHRcdFx0XHRcdFx0XHRcdFtjbGFzc109XCJsYWJlbENsYXNzKClcIlxuXHRcdFx0XHRcdFx0XHRcdGZpZWxkTGFiZWxcblx0XHRcdFx0XHRcdFx0XHRbZmllbGRdPVwiZmllbGQoKSFcIlxuXHRcdFx0XHRcdFx0XHRcdFtjb250ZXh0TWVudV09XCJjb250ZXh0TWVudVwiPlxuXHRcdFx0XHRcdFx0XHRcdDxzcGFuXG5cdFx0XHRcdFx0XHRcdFx0XHRzdHlsZT1cInVzZXItc2VsZWN0OiBub25lXCJcblx0XHRcdFx0XHRcdFx0XHRcdCNmaWVsZExhYmVsUmVmXG5cdFx0XHRcdFx0XHRcdFx0XHQ+e3sgcHJvcHMoZmllbGQoKSEpLmkxOG5LZXkgPyAocHJvcHMoZmllbGQoKSEpLmkxOG5LZXkhIHwgdHJhbnNsYXRlKSA6IHByb3BzKGZpZWxkKCkhKS5sYWJlbCEgfX08L3NwYW5cblx0XHRcdFx0XHRcdFx0XHQ+XG5cdFx0XHRcdFx0XHRcdFx0QGlmIChwcm9wcyhmaWVsZCgpISkucmVxdWlyZWQpIHtcblx0XHRcdFx0XHRcdFx0XHRcdDxzcGFuIGNsYXNzPVwiZmllbGQtcmVxdWlyZWRcIj4qPC9zcGFuPlxuXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHRAaWYgKCFmaWVsZCgpPy5maWVsZENvbnRyb2w/LmRpc2FibGVkKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHQ8c3BhbiBjbGFzcz1cImljb25mb250IGljb24tZWRpdC1mbGFnIGZpZWxkLWVkaXRhYmxlXCI+PC9zcGFuPlxuXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0PC9sYWJlbD5cblx0XHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cImZsZXgtMSBtaW4taC04IHB0LTEgdy0wIGZsZXggZmxleC1yb3ctcmV2ZXJzZVwiPlxuXHRcdFx0XHRcdFx0XHQ8ZGl2XG5cdFx0XHRcdFx0XHRcdFx0I2ZpZWxkVHlwZVJlZlxuXHRcdFx0XHRcdFx0XHRcdGNsYXNzPVwidy1mdWxsXCI+XG5cdFx0XHRcdFx0XHRcdFx0PGZvcm0tdHlwZSBbZmllbGRdPVwiZmllbGQoKSFcIj48L2Zvcm0tdHlwZT5cblx0XHRcdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdDxhcHAtY29udGV4dC1tZW51XG5cdFx0XHRcdFx0I2NvbnRleHRNZW51XG5cdFx0XHRcdFx0W3RhcmdldF09XCJsYWJlbFwiXG5cdFx0XHRcdFx0W2ZpZWxkXT1cImZpZWxkKCkhXCI+PC9hcHAtY29udGV4dC1tZW51PlxuXHRcdFx0fSBAZWxzZSB7XG5cdFx0XHRcdDxkaXYgW2NsYXNzXT1cImZpZWxkKCk/LmlubmVyQ2xhc3MgfHwgJ3B4LTQgbXktMSdcIj5cblx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXJvdyBmbGV4LW5vd3JhcCBpdGVtcy1zdGFydFwiPlxuXHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cImZsZXgtMSBtaW4taC04IHB0LTEgdy0wIGZsZXggZmxleC1yb3ctcmV2ZXJzZVwiPlxuXHRcdFx0XHRcdFx0XHQ8ZGl2XG5cdFx0XHRcdFx0XHRcdFx0I2ZpZWxkVHlwZVJlZlxuXHRcdFx0XHRcdFx0XHRcdGNsYXNzPVwidy1mdWxsXCI+XG5cdFx0XHRcdFx0XHRcdFx0PGZvcm0tdHlwZSBbZmllbGRdPVwiZmllbGQoKSFcIj48L2Zvcm0tdHlwZT5cblx0XHRcdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0PC9kaXY+XG5cdFx0XHR9XG5cdFx0fVxuXHRgLFxufSlcbmV4cG9ydCBjbGFzcyBGb3JtRmllbGRDb21wb25lbnQge1xuXHRAVmlld0NoaWxkcmVuKEZvcm1GaWVsZENvbXBvbmVudCkgZmllbGRDb21wb25lbnRzPzogUXVlcnlMaXN0PEZvcm1GaWVsZENvbXBvbmVudD47XG5cdEBWaWV3Q2hpbGQoJ2ZpZWxkTGFiZWxSZWYnLCB7IHN0YXRpYzogZmFsc2UgfSkgZmllbGRMYWJlbD86IEVsZW1lbnRSZWY7XG5cdGZpZWxkID0gaW5wdXQ8Rm9ybUZpZWxkPigpO1xuXHRwcm9wcyA9IGZpZWxkVXRpbHMucHJvcHM7XG5cblx0Y29uc3RydWN0b3IoKSB7fVxuXG5cdG5nT25Jbml0KCk6IHZvaWQge31cblxuXHRsYWJlbENsYXNzKCkge1xuXHRcdGNvbnN0IGxjID0gWyd1bnRvdWNoZWQgJ107XG5cdFx0aWYgKHRoaXMuZmllbGQoKT8uZmllbGRDb250cm9sPy5kaXNhYmxlZCkge1xuXHRcdFx0bGMucHVzaCgnbmctdmFsaWQnKTtcblx0XHRcdHJldHVybiBsYy5qb2luKCcgJyk7XG5cdFx0fVxuXHRcdGlmICh0aGlzLmZpZWxkKCk/LmZpZWxkQ29udHJvbD8uZGlydHkpIHtcblx0XHRcdGxjLnB1c2goJ25nLWRpcnR5Jyk7XG5cdFx0fVxuXHRcdGlmICh0aGlzLmZpZWxkKCk/LmZpZWxkQ29udHJvbD8udmFsaWQgIT09IHVuZGVmaW5lZCAmJiB0aGlzLmZpZWxkKCk/LmZpZWxkQ29udHJvbD8udmFsaWQgIT09IGZhbHNlKSB7XG5cdFx0XHRsYy5wdXNoKCduZy12YWxpZCcpO1xuXHRcdH1cblx0XHRyZXR1cm4gbGMuam9pbignICcpO1xuXHR9XG5cdGdldFN0eWxlKCkge1xuXHRcdHJldHVybiB7IHdpZHRoOiB0aGlzLmZpZWxkKCkhLmxhYmVsTWluV2lkdGghKCksIG1heFdpZHRoOiAnNDAlJyB9O1xuXHR9XG5cdGdldEZpZWxkQ29tcG9uZW50cygpOiBRdWVyeUxpc3Q8Rm9ybUZpZWxkQ29tcG9uZW50PiB8IHVuZGVmaW5lZCB7XG5cdFx0cmV0dXJuIHRoaXMuZmllbGRDb21wb25lbnRzO1xuXHR9XG5cblx0Z2V0RmllbGRMYWJlbCgpIHtcblx0XHRyZXR1cm4gdGhpcy5maWVsZExhYmVsO1xuXHR9XG59XG4iXX0=
|
|
@@ -10,6 +10,7 @@ import { RadioComponent } from '../form-type/radio.type';
|
|
|
10
10
|
import { TextAreaComponent } from '../form-type/textarea.type';
|
|
11
11
|
import { UploadComponent } from '../form-type/upload.type';
|
|
12
12
|
import { ImageComponent } from '../form-type/image.type';
|
|
13
|
+
import { ImagePreviewComponent } from '../form-type/imagepreview.type';
|
|
13
14
|
import { CodeMirrorComponent } from '../form-type/codemirror.type';
|
|
14
15
|
import { RowSelectorComponent } from '../form-type/rowselector.type';
|
|
15
16
|
import * as i0 from "@angular/core";
|
|
@@ -54,6 +55,9 @@ export class FormTypeComponent {
|
|
|
54
55
|
@case ('image') {
|
|
55
56
|
<form-image [field]="field()!"></form-image>
|
|
56
57
|
}
|
|
58
|
+
@case ('imagepreview') {
|
|
59
|
+
<form-imagepreview [field]="field()!"></form-imagepreview>
|
|
60
|
+
}
|
|
57
61
|
@case ('codemirror') {
|
|
58
62
|
<form-codemirror [field]="field()!"></form-codemirror>
|
|
59
63
|
}
|
|
@@ -61,7 +65,7 @@ export class FormTypeComponent {
|
|
|
61
65
|
<form-rowselector [field]="field()!"></form-rowselector>
|
|
62
66
|
}
|
|
63
67
|
}
|
|
64
|
-
`, isInline: true, dependencies: [{ kind: "component", type: InputTextComponent, selector: "form-inputtext", inputs: ["field"] }, { kind: "component", type: InputNumberComponent, selector: "form-inputnumber", inputs: ["field"] }, { kind: "component", type: SelectComponent, selector: "form-select", inputs: ["field"] }, { kind: "component", type: TreeSelectComponent, selector: "form-treeselect", inputs: ["field"] }, { kind: "component", type: DatePickerComponent, selector: "form-datepicker", inputs: ["field"] }, { kind: "component", type: AutoCompleteComponent, selector: "form-autocomplete", inputs: ["field"] }, { kind: "component", type: MultiSelectComponent, selector: "form-multiselect", inputs: ["field"] }, { kind: "component", type: RadioComponent, selector: "form-radio", inputs: ["field"] }, { kind: "component", type: TextAreaComponent, selector: "form-textarea", inputs: ["field"] }, { kind: "component", type: UploadComponent, selector: "form-upload", inputs: ["field"] }, { kind: "component", type: ImageComponent, selector: "form-image", inputs: ["field"] }, { kind: "component", type: CodeMirrorComponent, selector: "form-codemirror", inputs: ["field"], outputs: ["change"] }, { kind: "component", type: RowSelectorComponent, selector: "form-rowselector", inputs: ["field"] }] }); }
|
|
68
|
+
`, isInline: true, dependencies: [{ kind: "component", type: InputTextComponent, selector: "form-inputtext", inputs: ["field"] }, { kind: "component", type: InputNumberComponent, selector: "form-inputnumber", inputs: ["field"] }, { kind: "component", type: SelectComponent, selector: "form-select", inputs: ["field"] }, { kind: "component", type: TreeSelectComponent, selector: "form-treeselect", inputs: ["field"] }, { kind: "component", type: DatePickerComponent, selector: "form-datepicker", inputs: ["field"] }, { kind: "component", type: AutoCompleteComponent, selector: "form-autocomplete", inputs: ["field"] }, { kind: "component", type: MultiSelectComponent, selector: "form-multiselect", inputs: ["field"] }, { kind: "component", type: RadioComponent, selector: "form-radio", inputs: ["field"] }, { kind: "component", type: TextAreaComponent, selector: "form-textarea", inputs: ["field"] }, { kind: "component", type: UploadComponent, selector: "form-upload", inputs: ["field"] }, { kind: "component", type: ImageComponent, selector: "form-image", inputs: ["field"] }, { kind: "component", type: ImagePreviewComponent, selector: "form-imagepreview", inputs: ["field"] }, { kind: "component", type: CodeMirrorComponent, selector: "form-codemirror", inputs: ["field"], outputs: ["change"] }, { kind: "component", type: RowSelectorComponent, selector: "form-rowselector", inputs: ["field"] }] }); }
|
|
65
69
|
}
|
|
66
70
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormTypeComponent, decorators: [{
|
|
67
71
|
type: Component,
|
|
@@ -80,6 +84,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
80
84
|
TextAreaComponent,
|
|
81
85
|
UploadComponent,
|
|
82
86
|
ImageComponent,
|
|
87
|
+
ImagePreviewComponent,
|
|
83
88
|
CodeMirrorComponent,
|
|
84
89
|
RowSelectorComponent,
|
|
85
90
|
],
|
|
@@ -118,6 +123,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
118
123
|
@case ('image') {
|
|
119
124
|
<form-image [field]="field()!"></form-image>
|
|
120
125
|
}
|
|
126
|
+
@case ('imagepreview') {
|
|
127
|
+
<form-imagepreview [field]="field()!"></form-imagepreview>
|
|
128
|
+
}
|
|
121
129
|
@case ('codemirror') {
|
|
122
130
|
<form-codemirror [field]="field()!"></form-codemirror>
|
|
123
131
|
}
|
|
@@ -128,4 +136,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
128
136
|
`,
|
|
129
137
|
}]
|
|
130
138
|
}], ctorParameters: () => [] });
|
|
131
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
139
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS10eXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaW1tLWVsZW1lbnQtdWkvc3JjL2xpYi9mb3JtL2Zvcm0tZmllbGQvZm9ybS10eXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWpELE9BQU8sRUFBa0Isa0JBQWtCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNqRixPQUFPLEVBQW9CLG9CQUFvQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDdkYsT0FBTyxFQUFlLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3hFLE9BQU8sRUFBbUIsbUJBQW1CLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNwRixPQUFPLEVBQW1CLG1CQUFtQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDcEYsT0FBTyxFQUFxQixxQkFBcUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzFGLE9BQU8sRUFBb0Isb0JBQW9CLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUN2RixPQUFPLEVBQWMsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDckUsT0FBTyxFQUFpQixpQkFBaUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzlFLE9BQU8sRUFBZSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN4RSxPQUFPLEVBQWMsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDckUsT0FBTyxFQUFxQixxQkFBcUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzFGLE9BQU8sRUFBbUIsbUJBQW1CLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNwRixPQUFPLEVBQW9CLG9CQUFvQixFQUFFLE1BQU0sK0JBQStCLENBQUM7O0FBb0Z2RixNQUFNLE9BQU8saUJBQWlCO0lBRTdCO1FBREEsVUFBSyxHQUFHLEtBQUssRUFBYSxDQUFDO0lBQ1osQ0FBQztJQUVoQixRQUFRLEtBQVUsQ0FBQzsrR0FKUCxpQkFBaUI7bUdBQWpCLGlCQUFpQix5TUEvQ25COzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RUE2Q1QsNERBNURBLGtCQUFrQiw4RUFDbEIsb0JBQW9CLGdGQUNwQixlQUFlLDJFQUNmLG1CQUFtQiwrRUFDbkIsbUJBQW1CLCtFQUNuQixxQkFBcUIsaUZBQ3JCLG9CQUFvQixnRkFDcEIsY0FBYywwRUFDZCxpQkFBaUIsNkVBQ2pCLGVBQWUsMkVBQ2YsY0FBYywwRUFDZCxxQkFBcUIsaUZBQ3JCLG1CQUFtQixvR0FDbkIsb0JBQW9COzs0RkFpRFQsaUJBQWlCO2tCQWxFN0IsU0FBUzttQkFBQztvQkFDVixRQUFRLEVBQUUsV0FBVztvQkFDckIsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLE9BQU8sRUFBRTt3QkFDUixrQkFBa0I7d0JBQ2xCLG9CQUFvQjt3QkFDcEIsZUFBZTt3QkFDZixtQkFBbUI7d0JBQ25CLG1CQUFtQjt3QkFDbkIscUJBQXFCO3dCQUNyQixvQkFBb0I7d0JBQ3BCLGNBQWM7d0JBQ2QsaUJBQWlCO3dCQUNqQixlQUFlO3dCQUNmLGNBQWM7d0JBQ2QscUJBQXFCO3dCQUNyQixtQkFBbUI7d0JBQ25CLG9CQUFvQjtxQkFDcEI7b0JBQ0QsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RUE2Q1Q7aUJBQ0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGlucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtRmllbGQgfSBmcm9tICcuL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHsgSW5wdXRUZXh0UHJvcHMsIElucHV0VGV4dENvbXBvbmVudCB9IGZyb20gJy4uL2Zvcm0tdHlwZS9pbnB1dHRleHQudHlwZSc7XG5pbXBvcnQgeyBJbnB1dE51bWJlclByb3BzLCBJbnB1dE51bWJlckNvbXBvbmVudCB9IGZyb20gJy4uL2Zvcm0tdHlwZS9pbnB1dG51bWJlci50eXBlJztcbmltcG9ydCB7IFNlbGVjdFByb3BzLCBTZWxlY3RDb21wb25lbnQgfSBmcm9tICcuLi9mb3JtLXR5cGUvc2VsZWN0LnR5cGUnO1xuaW1wb3J0IHsgVHJlZVNlbGVjdFByb3BzLCBUcmVlU2VsZWN0Q29tcG9uZW50IH0gZnJvbSAnLi4vZm9ybS10eXBlL3RyZWVzZWxlY3QudHlwZSc7XG5pbXBvcnQgeyBEYXRlUGlja2VyUHJvcHMsIERhdGVQaWNrZXJDb21wb25lbnQgfSBmcm9tICcuLi9mb3JtLXR5cGUvZGF0ZXBpY2tlci50eXBlJztcbmltcG9ydCB7IEF1dG9Db21wbGV0ZVByb3BzLCBBdXRvQ29tcGxldGVDb21wb25lbnQgfSBmcm9tICcuLi9mb3JtLXR5cGUvYXV0b2NvbXBsZXRlLnR5cGUnO1xuaW1wb3J0IHsgTXVsdGlTZWxlY3RQcm9wcywgTXVsdGlTZWxlY3RDb21wb25lbnQgfSBmcm9tICcuLi9mb3JtLXR5cGUvbXVsdGlzZWxlY3QudHlwZSc7XG5pbXBvcnQgeyBSYWRpb1Byb3BzLCBSYWRpb0NvbXBvbmVudCB9IGZyb20gJy4uL2Zvcm0tdHlwZS9yYWRpby50eXBlJztcbmltcG9ydCB7IFRleHRBcmVhUHJvcHMsIFRleHRBcmVhQ29tcG9uZW50IH0gZnJvbSAnLi4vZm9ybS10eXBlL3RleHRhcmVhLnR5cGUnO1xuaW1wb3J0IHsgVXBsb2FkUHJvcHMsIFVwbG9hZENvbXBvbmVudCB9IGZyb20gJy4uL2Zvcm0tdHlwZS91cGxvYWQudHlwZSc7XG5pbXBvcnQgeyBJbWFnZVByb3BzLCBJbWFnZUNvbXBvbmVudCB9IGZyb20gJy4uL2Zvcm0tdHlwZS9pbWFnZS50eXBlJztcbmltcG9ydCB7IEltYWdlUHJldmlld1Byb3BzLCBJbWFnZVByZXZpZXdDb21wb25lbnQgfSBmcm9tICcuLi9mb3JtLXR5cGUvaW1hZ2VwcmV2aWV3LnR5cGUnO1xuaW1wb3J0IHsgQ29kZU1pcnJvclByb3BzLCBDb2RlTWlycm9yQ29tcG9uZW50IH0gZnJvbSAnLi4vZm9ybS10eXBlL2NvZGVtaXJyb3IudHlwZSc7XG5pbXBvcnQgeyBSb3dTZWxlY3RvclByb3BzLCBSb3dTZWxlY3RvckNvbXBvbmVudCB9IGZyb20gJy4uL2Zvcm0tdHlwZS9yb3dzZWxlY3Rvci50eXBlJztcbmV4cG9ydCB7XG5cdElucHV0VGV4dFByb3BzLFxuXHRJbnB1dE51bWJlclByb3BzLFxuXHRTZWxlY3RQcm9wcyxcblx0VHJlZVNlbGVjdFByb3BzLFxuXHREYXRlUGlja2VyUHJvcHMsXG5cdEF1dG9Db21wbGV0ZVByb3BzLFxuXHRNdWx0aVNlbGVjdFByb3BzLFxuXHRSYWRpb1Byb3BzLFxuXHRUZXh0QXJlYVByb3BzLFxuXHRVcGxvYWRQcm9wcyxcblx0SW1hZ2VQcm9wcyxcblx0SW1hZ2VQcmV2aWV3UHJvcHMsXG5cdENvZGVNaXJyb3JQcm9wcyxcblx0Um93U2VsZWN0b3JQcm9wcyxcbn07XG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ2Zvcm0tdHlwZScsXG5cdHN0YW5kYWxvbmU6IHRydWUsXG5cdGltcG9ydHM6IFtcblx0XHRJbnB1dFRleHRDb21wb25lbnQsXG5cdFx0SW5wdXROdW1iZXJDb21wb25lbnQsXG5cdFx0U2VsZWN0Q29tcG9uZW50LFxuXHRcdFRyZWVTZWxlY3RDb21wb25lbnQsXG5cdFx0RGF0ZVBpY2tlckNvbXBvbmVudCxcblx0XHRBdXRvQ29tcGxldGVDb21wb25lbnQsXG5cdFx0TXVsdGlTZWxlY3RDb21wb25lbnQsXG5cdFx0UmFkaW9Db21wb25lbnQsXG5cdFx0VGV4dEFyZWFDb21wb25lbnQsXG5cdFx0VXBsb2FkQ29tcG9uZW50LFxuXHRcdEltYWdlQ29tcG9uZW50LFxuXHRcdEltYWdlUHJldmlld0NvbXBvbmVudCxcblx0XHRDb2RlTWlycm9yQ29tcG9uZW50LFxuXHRcdFJvd1NlbGVjdG9yQ29tcG9uZW50LFxuXHRdLFxuXHR0ZW1wbGF0ZTogYFxuXHRcdEBzd2l0Y2ggKGZpZWxkKCk/LnR5cGUpIHtcblx0XHRcdEBjYXNlICgnaW5wdXR0ZXh0Jykge1xuXHRcdFx0XHQ8Zm9ybS1pbnB1dHRleHQgW2ZpZWxkXT1cImZpZWxkKCkhXCI+PC9mb3JtLWlucHV0dGV4dD5cblx0XHRcdH1cblx0XHRcdEBjYXNlICgnaW5wdXRudW1iZXInKSB7XG5cdFx0XHRcdDxmb3JtLWlucHV0bnVtYmVyIFtmaWVsZF09XCJmaWVsZCgpIVwiPjwvZm9ybS1pbnB1dG51bWJlcj5cblx0XHRcdH1cblx0XHRcdEBjYXNlICgnc2VsZWN0Jykge1xuXHRcdFx0XHQ8Zm9ybS1zZWxlY3QgW2ZpZWxkXT1cImZpZWxkKCkhXCI+PC9mb3JtLXNlbGVjdD5cblx0XHRcdH1cblx0XHRcdEBjYXNlICgndHJlZXNlbGVjdCcpIHtcblx0XHRcdFx0PGZvcm0tdHJlZXNlbGVjdCBbZmllbGRdPVwiZmllbGQoKSFcIj48L2Zvcm0tdHJlZXNlbGVjdD5cblx0XHRcdH1cblx0XHRcdEBjYXNlICgnZGF0ZXBpY2tlcicpIHtcblx0XHRcdFx0PGZvcm0tZGF0ZXBpY2tlciBbZmllbGRdPVwiZmllbGQoKSFcIj48L2Zvcm0tZGF0ZXBpY2tlcj5cblx0XHRcdH1cblx0XHRcdEBjYXNlICgnYXV0b2NvbXBsZXRlJykge1xuXHRcdFx0XHQ8Zm9ybS1hdXRvY29tcGxldGUgW2ZpZWxkXT1cImZpZWxkKCkhXCI+PC9mb3JtLWF1dG9jb21wbGV0ZT5cblx0XHRcdH1cblx0XHRcdEBjYXNlICgnbXVsdGlzZWxlY3QnKSB7XG5cdFx0XHRcdDxmb3JtLW11bHRpc2VsZWN0IFtmaWVsZF09XCJmaWVsZCgpIVwiPjwvZm9ybS1tdWx0aXNlbGVjdD5cblx0XHRcdH1cblx0XHRcdEBjYXNlICgncmFkaW8nKSB7XG5cdFx0XHRcdDxmb3JtLXJhZGlvIFtmaWVsZF09XCJmaWVsZCgpIVwiPjwvZm9ybS1yYWRpbz5cblx0XHRcdH1cblx0XHRcdEBjYXNlICgndGV4dGFyZWEnKSB7XG5cdFx0XHRcdDxmb3JtLXRleHRhcmVhIFtmaWVsZF09XCJmaWVsZCgpIVwiPjwvZm9ybS10ZXh0YXJlYT5cblx0XHRcdH1cblx0XHRcdEBjYXNlICgndXBsb2FkJykge1xuXHRcdFx0XHQ8Zm9ybS11cGxvYWQgW2ZpZWxkXT1cImZpZWxkKCkhXCI+PC9mb3JtLXVwbG9hZD5cblx0XHRcdH1cblx0XHRcdEBjYXNlICgnaW1hZ2UnKSB7XG5cdFx0XHRcdDxmb3JtLWltYWdlIFtmaWVsZF09XCJmaWVsZCgpIVwiPjwvZm9ybS1pbWFnZT5cblx0XHRcdH1cblx0XHRcdEBjYXNlICgnaW1hZ2VwcmV2aWV3Jykge1xuXHRcdFx0XHQ8Zm9ybS1pbWFnZXByZXZpZXcgW2ZpZWxkXT1cImZpZWxkKCkhXCI+PC9mb3JtLWltYWdlcHJldmlldz5cblx0XHRcdH1cblx0XHRcdEBjYXNlICgnY29kZW1pcnJvcicpIHtcblx0XHRcdFx0PGZvcm0tY29kZW1pcnJvciBbZmllbGRdPVwiZmllbGQoKSFcIj48L2Zvcm0tY29kZW1pcnJvcj5cblx0XHRcdH1cblx0XHRcdEBjYXNlICgncm93c2VsZWN0b3InKSB7XG5cdFx0XHRcdDxmb3JtLXJvd3NlbGVjdG9yIFtmaWVsZF09XCJmaWVsZCgpIVwiPjwvZm9ybS1yb3dzZWxlY3Rvcj5cblx0XHRcdH1cblx0XHR9XG5cdGAsXG59KVxuZXhwb3J0IGNsYXNzIEZvcm1UeXBlQ29tcG9uZW50IHtcblx0ZmllbGQgPSBpbnB1dDxGb3JtRmllbGQ+KCk7XG5cdGNvbnN0cnVjdG9yKCkge31cblxuXHRuZ09uSW5pdCgpOiB2b2lkIHt9XG59XG4iXX0=
|