ets-fe-ng-sdk 17.0.211 → 17.0.212
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/Shared/components/btn/btn.component.mjs +29 -57
- package/esm2022/lib/Shared/components/btn/btn.service.mjs +18 -1
- package/fesm2022/ets-fe-ng-sdk.mjs +59 -71
- package/fesm2022/ets-fe-ng-sdk.mjs.map +1 -1
- package/lib/Services/utility.service.d.ts +1 -1
- package/lib/Shared/components/btn/btn.component.d.ts +3 -4
- package/lib/Shared/components/btn/btn.service.d.ts +3 -0
- package/lib/Shared/components/info-dialog/info-dialog.component.d.ts +1 -1
- package/lib/Shared/components/page-template/page-template.component.d.ts +1 -1
- package/package.json +1 -1
|
@@ -9,7 +9,7 @@ import { MatBadgeModule } from '@angular/material/badge';
|
|
|
9
9
|
import { MatTooltipModule } from '@angular/material/tooltip';
|
|
10
10
|
import { NgClass, NgIf, AsyncPipe } from '@angular/common';
|
|
11
11
|
import { isEqual } from 'lodash-es';
|
|
12
|
-
import { debounceTime, merge
|
|
12
|
+
import { debounceTime, merge } from 'rxjs';
|
|
13
13
|
import * as i0 from "@angular/core";
|
|
14
14
|
import * as i1 from "@angular/material/tooltip";
|
|
15
15
|
import * as i2 from "@angular/material/badge";
|
|
@@ -125,71 +125,44 @@ export class BtnComponent {
|
|
|
125
125
|
}
|
|
126
126
|
set _form(v) {
|
|
127
127
|
this.formSub?.unsubscribe();
|
|
128
|
-
|
|
129
|
-
this.checkFormState.set(++this.count);
|
|
130
|
-
this.formState.set({
|
|
131
|
-
pending: v?.pending,
|
|
132
|
-
dirty: v?.dirty,
|
|
133
|
-
invalid: v?.invalid,
|
|
134
|
-
pristine: v?.pristine,
|
|
135
|
-
valid: v?.valid,
|
|
136
|
-
});
|
|
137
|
-
}, 1000);
|
|
128
|
+
this.btnS.setFormState(v, this);
|
|
138
129
|
if (this.debug())
|
|
139
130
|
debugger;
|
|
140
131
|
this.form = v;
|
|
141
132
|
if (v)
|
|
142
|
-
this.formSub = v
|
|
143
|
-
.pipe(tap((r) => {
|
|
144
|
-
this.checkFormState.set(++this.count);
|
|
145
|
-
this.formState.set({
|
|
146
|
-
pending: v?.pending,
|
|
147
|
-
dirty: v?.dirty,
|
|
148
|
-
invalid: v?.invalid,
|
|
149
|
-
pristine: v?.pristine,
|
|
150
|
-
valid: v?.valid,
|
|
151
|
-
status: v?.status,
|
|
152
|
-
});
|
|
153
|
-
}), debounceTime(200))
|
|
154
|
-
.subscribe(() => {
|
|
155
|
-
this.checkFormState.set(++this.count);
|
|
156
|
-
this.formState.set({
|
|
157
|
-
pending: v?.pending,
|
|
158
|
-
dirty: v?.dirty,
|
|
159
|
-
invalid: v?.invalid,
|
|
160
|
-
pristine: v?.pristine,
|
|
161
|
-
valid: v?.valid,
|
|
162
|
-
status: v?.status,
|
|
163
|
-
});
|
|
164
|
-
if (this.debug()) {
|
|
165
|
-
if (v?.valid) {
|
|
166
|
-
debugger;
|
|
167
|
-
}
|
|
168
|
-
if (v?.pending) {
|
|
169
|
-
debugger;
|
|
170
|
-
}
|
|
171
|
-
// const d = this.checkFormState();
|
|
172
|
-
}
|
|
173
|
-
});
|
|
133
|
+
this.formSub = this.btnS.handleForm(v, this);
|
|
174
134
|
}
|
|
175
135
|
set _forms(v) {
|
|
136
|
+
this.formsSub?.unsubscribe();
|
|
176
137
|
this.forms = v;
|
|
177
138
|
if (!v) {
|
|
178
139
|
this.formsState.set(undefined);
|
|
179
140
|
return;
|
|
180
141
|
}
|
|
181
|
-
|
|
142
|
+
this.formsSub = merge(v.map((f) => f.statusChanges))
|
|
182
143
|
.pipe(debounceTime(700))
|
|
183
144
|
.subscribe(() => {
|
|
184
|
-
|
|
185
|
-
pending:
|
|
186
|
-
dirty:
|
|
187
|
-
invalid:
|
|
188
|
-
pristine:
|
|
189
|
-
valid:
|
|
190
|
-
}
|
|
145
|
+
const fs = {
|
|
146
|
+
pending: true,
|
|
147
|
+
dirty: true,
|
|
148
|
+
invalid: true,
|
|
149
|
+
pristine: true,
|
|
150
|
+
valid: true,
|
|
151
|
+
};
|
|
152
|
+
v?.forEach((x) => {
|
|
153
|
+
if (!x.pending)
|
|
154
|
+
fs.pending = x.pending;
|
|
155
|
+
if (!x.dirty)
|
|
156
|
+
fs.dirty = x.dirty;
|
|
157
|
+
if (!x.invalid)
|
|
158
|
+
fs.invalid = x.invalid;
|
|
159
|
+
if (!x.pristine)
|
|
160
|
+
fs.pristine = x.pristine;
|
|
161
|
+
if (!x.valid)
|
|
162
|
+
fs.valid = x.valid;
|
|
163
|
+
});
|
|
164
|
+
this.formsState.set(fs);
|
|
191
165
|
});
|
|
192
|
-
this.destroyRef.onDestroy(() => sub?.unsubscribe());
|
|
193
166
|
}
|
|
194
167
|
/**
|
|
195
168
|
* @deprecated no longer needed to detect the correct spacing between icon and text
|
|
@@ -241,8 +214,6 @@ export class BtnComponent {
|
|
|
241
214
|
// };
|
|
242
215
|
// });
|
|
243
216
|
this.formState = signal({});
|
|
244
|
-
this.count = 0;
|
|
245
|
-
this.checkFormState = signal(undefined);
|
|
246
217
|
this.formsState = signal(undefined);
|
|
247
218
|
this.help = input();
|
|
248
219
|
this.mclass = input(null);
|
|
@@ -268,11 +239,12 @@ export class BtnComponent {
|
|
|
268
239
|
this.isDisabled = computed(() => {
|
|
269
240
|
if (this.debug())
|
|
270
241
|
debugger;
|
|
271
|
-
const disabled = this.disabled(), valid = this.valid(), onFormInvalid = this.onFormInvalid(), form = this.formState(), forms = this.formsState()
|
|
272
|
-
return disabled || !valid || (onFormInvalid == OnFormInvalid.disable && (form?.invalid || form?.pending || forms
|
|
242
|
+
const disabled = this.disabled(), valid = this.valid(), onFormInvalid = this.onFormInvalid(), form = this.formState(), forms = this.formsState();
|
|
243
|
+
return disabled || !valid || (onFormInvalid == OnFormInvalid.disable && (form?.invalid || form?.pending || forms?.pending));
|
|
273
244
|
});
|
|
274
245
|
this.destroyRef.onDestroy(() => {
|
|
275
246
|
this.formSub?.unsubscribe();
|
|
247
|
+
this.formsSub?.unsubscribe();
|
|
276
248
|
});
|
|
277
249
|
}
|
|
278
250
|
ngAfterViewChecked() {
|
|
@@ -379,4 +351,4 @@ var OnFormInvalid;
|
|
|
379
351
|
OnFormInvalid["disable"] = "disable";
|
|
380
352
|
OnFormInvalid["warn"] = "warn";
|
|
381
353
|
})(OnFormInvalid || (OnFormInvalid = {}));
|
|
382
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnRuLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V0cy1mZS1uZy1zZGsvc3JjL2xpYi9TaGFyZWQvY29tcG9uZW50cy9idG4vYnRuLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V0cy1mZS1uZy1zZGsvc3JjL2xpYi9TaGFyZWQvY29tcG9uZW50cy9idG4vYnRuLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxTQUFTLEVBQ1QsVUFBVSxFQUVWLFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUNOLFNBQVMsRUFDVCxnQkFBZ0IsRUFDaEIsUUFBUSxFQUNSLE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBZSxTQUFTLEVBQWlELE1BQU0sZ0JBQWdCLENBQUM7QUFDdkcsT0FBTyxFQUFrQixNQUFNLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUMzRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUM1RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNyRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDN0QsT0FBTyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFHM0QsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNwQyxPQUFPLEVBQWdCLFlBQVksRUFB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QkFPRSxLQUFLO3NCQUF2QixLQUFLO3VCQUFDLE1BQU07Z0JBT08sTUFBTTtzQkFBekIsS0FBSzt1QkFBQyxPQUFPO2dCQWlFMkIsY0FBYztzQkFBdEQsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRTtnQkFDOUIsWUFBWTtzQkFBcEIsS0FBSztnQkFNTyxVQUFVO3NCQUF0QixLQUFLO2dCQUc0QixTQUFTO3NCQUExQyxLQUFLO3VCQUFDLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRTtnQkFxQlQsS0FBSztzQkFBdkIsS0FBSzt1QkFBQyxNQUFNO2dCQXFETyxNQUFNO3NCQUF6QixLQUFLO3VCQUFDLE9BQU87Z0JBeUJpRCxRQUFRO3NCQUF0RSxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUU7Z0JBR25DLFFBQVE7c0JBQTdCLEtBQUs7dUJBQUMsU0FBUztnQkFNeUIsZ0JBQWdCO3NCQUF4RCxLQUFLO3VCQUFDLEVBQUUsS0FBSyxFQUFFLGlCQUFpQixFQUFFO2dCQUtLLGVBQWU7c0JBQXRELEtBQUs7dUJBQUMsRUFBRSxLQUFLLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBUXhCLE1BQU07c0JBQWYsTUFBTTtnQkFDaUIsU0FBUztzQkFBaEMsU0FBUzt1QkFBQyxXQUFXOztBQWdGeEIsSUFBSyxhQUdKO0FBSEQsV0FBSyxhQUFhO0lBQ2hCLG9DQUFtQixDQUFBO0lBQ25CLDhCQUFhLENBQUE7QUFDZixDQUFDLEVBSEksYUFBYSxLQUFiLGFBQWEsUUFHakIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBEZXN0cm95UmVmLFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgVmlld0NoaWxkLFxuICBib29sZWFuQXR0cmlidXRlLFxuICBjb21wdXRlZCxcbiAgaW5qZWN0LFxuICBpbnB1dCxcbiAgc2lnbmFsLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Db250cm9sLCBGb3JtR3JvdXAsIEZvcm1BcnJheSwgQWJzdHJhY3RDb250cm9sLCBGb3JtQ29udHJvbFN0YXR1cyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEljb25EZWZpbml0aW9uLCBmYUxvY2sgfSBmcm9tICdAZm9ydGF3ZXNvbWUvZnJlZS1zb2xpZC1zdmctaWNvbnMnO1xuaW1wb3J0IHsgQnRuU2VydmljZSB9IGZyb20gJy4vYnRuLnNlcnZpY2UnO1xuaW1wb3J0IHsgVHJhbnNsYXRlUGlwZSB9IGZyb20gJy4uLy4uL3BpcGVzL3RyYW5zbGF0ZS5waXBlJztcbmltcG9ydCB7IFRyYW5zbGF0b3JEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL3RyYW5zbGF0b3IuZGlyZWN0aXZlJztcbmltcG9ydCB7IEZvbnRBd2Vzb21lTW9kdWxlIH0gZnJvbSAnQGZvcnRhd2Vzb21lL2FuZ3VsYXItZm9udGF3ZXNvbWUnO1xuaW1wb3J0IHsgTWF0QmFkZ2VNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9iYWRnZSc7XG5pbXBvcnQgeyBNYXRUb29sdGlwTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbHRpcCc7XG5pbXBvcnQgeyBOZ0NsYXNzLCBOZ0lmLCBBc3luY1BpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgSUZvcm1TY2hlbWEgfSBmcm9tICcuLi8uLi9tb2RlbHMvZm9ybS1zY2hlbWEubW9kZWwnO1xuaW1wb3J0IHsgSWNvblR5cGUsIEJ0blR5cGUsIEJ0bkdyb3VwIH0gZnJvbSAnLi9idG4ubW9kZWwnO1xuaW1wb3J0IHsgaXNFcXVhbCB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24sIGRlYm91bmNlVGltZSwgaW50ZXJ2YWwsIG1lcmdlLCB0YXAsIHRpbWVyIH0gZnJvbSAncnhqcyc7XG5cbmZ1bmN0aW9uIGJvb2xlYW5BdHRyaWJ1dGUyKHZhbHVlOiBzdHJpbmcgfCBib29sZWFuIHwgdW5kZWZpbmVkKSB7XG4gIHJldHVybiBib29sZWFuQXR0cmlidXRlKHZhbHVlKTtcbn1cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1idG4nLFxuICB0ZW1wbGF0ZVVybDogJy4vYnRuLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vYnRuLmNvbXBvbmVudC5zY3NzJ10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIC8vIC8vXG4gIGltcG9ydHM6IFtOZ0NsYXNzLCBOZ0lmLCBNYXRUb29sdGlwTW9kdWxlLCBNYXRCYWRnZU1vZHVsZSwgRm9udEF3ZXNvbWVNb2R1bGUsIFRyYW5zbGF0b3JEaXJlY3RpdmUsIEFzeW5jUGlwZSwgVHJhbnNsYXRlUGlwZV0sXG59KSAvLyBJbmhlcml0ZWRcbmV4cG9ydCBjbGFzcyBCdG5Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAvKiogVG8gYmUgcGFzc2VkIHdoZW4gdG8gY2hlY2sgZm9yIHNwZWNpZmljIGludmFsaWQgZm9ybSBmaWVsZHMgKi9cbiAgZm9ybVNjaGVtYSA9IGlucHV0PElGb3JtU2NoZW1hW10+KCk7XG4gIGRlYnVnID0gaW5wdXQ8Ym9vbGVhbj4oKTtcbiAgZm9ybUlzSW52YWxpZCA9IGNvbXB1dGVkPGJvb2xlYW4+KFxuICAgICgpID0+IHtcbiAgICAgIGNvbnN0IGZvcm0gPSB0aGlzLmZvcm1TdGF0ZSgpLFxuICAgICAgICBvbkZvcm1JbnZhbGlkID0gdGhpcy5vbkZvcm1JbnZhbGlkKCksXG4gICAgICAgIGZvcm1TY2hlbWEgPSB0aGlzLmZvcm1TY2hlbWEoKTtcblxuICAgICAgcmV0dXJuIGZvcm0gJiYgZm9ybS5pbnZhbGlkICYmIG9uRm9ybUludmFsaWQgPT0gT25Gb3JtSW52YWxpZC53YXJuICYmIGZvcm1TY2hlbWE/Lmxlbmd0aFxuICAgICAgICA/IGZvcm1TY2hlbWEuc29tZSgoZikgPT4gKDxGb3JtR3JvdXA+Zm9ybSkuY29udHJvbHNbZi5maWVsZD8udG9TdHJpbmcoKV0/LmludmFsaWQpXG4gICAgICAgIDogbnVsbDtcbiAgICB9LFxuICAgIHsgZXF1YWw6IGlzRXF1YWwgfSxcbiAgKTtcbiAgY2VudGVyQnRuID0gaW5wdXQ8Ym9vbGVhbj4odHJ1ZSk7XG4gIGRhbmdlciA9IGlucHV0PGJvb2xlYW4+KCk7XG4gIHdhcm5pbmcgPSBpbnB1dDxib29sZWFuPigpO1xuXG4gIHByb3RlY3RlZCBpY29uVHlwZTogSWNvblR5cGU7XG4gIGljb25CdG4gPSBzaWduYWw8Ym9vbGVhbj4oZmFsc2UpO1xuICBsb2FkaW5nID0gc2lnbmFsPGJvb2xlYW4+KGZhbHNlKTtcbiAgZm9ybXM6IChGb3JtR3JvdXA8YW55PiB8IEFic3RyYWN0Q29udHJvbDxhbnksIGFueT4gfCBGb3JtQ29udHJvbDxhbnk+IHwgRm9ybUFycmF5PGFueT4pW107XG4gIGZvcm06IEZvcm1Hcm91cDxhbnk+IHwgRm9ybUNvbnRyb2w8YW55PiB8IEZvcm1BcnJheTxhbnk+IHwgQWJzdHJhY3RDb250cm9sPGFueSwgYW55PjtcblxuICBASW5wdXQoJ2ljb24nKSBzZXQgX2ljb24odjogSWNvblR5cGUpIHtcbiAgICB0aGlzLmljb25UeXBlID0gdjtcbiAgICBjb25zdCByZXMgPSB0aGlzLmJ0blMuZ2V0SWNvbih2KTtcbiAgICBpZiAoIXJlcykgcmV0dXJuO1xuICAgIGlmIChyZXMuaWNvblBvc2l0aW9uID09ICdyaWdodCcpIHtcbiAgICAgIHRoaXMucmlnaHRJY29uLnNldChyZXMuaWNvbik7XG4gICAgICB0aGlzLnJpZ2h0Q3VzdG9tSWNvbi5zZXQocmVzLmljb25TdHJpbmcpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmxlZnRJY29uLnNldChyZXMuaWNvbik7XG4gICAgICB0aGlzLmxlZnRDdXN0b21JY29uLnNldChyZXMuaWNvblN0cmluZyk7XG4gICAgfVxuICB9XG4gIEBJbnB1dCgncmlnaHRJY29uJykgc2V0IF9yaWdodEljb24odjogSWNvblR5cGUpIHtcbiAgICB0aGlzLmljb25UeXBlID0gdjtcbiAgICBjb25zdCByZXMgPSB0aGlzLmJ0blMuZ2V0SWNvbih2KTtcbiAgICB0aGlzLnJpZ2h0SWNvbi5zZXQocmVzLmljb24pO1xuICAgIHRoaXMucmlnaHRDdXN0b21JY29uLnNldChyZXMuaWNvblN0cmluZyk7XG4gIH1cbiAgQElucHV0KCdsZWZ0SWNvbicpIHNldCBfbGVmdEljb24odjogSWNvblR5cGUpIHtcbiAgICB0aGlzLmljb25UeXBlID0gdjtcbiAgICBjb25zdCByZXMgPSB0aGlzLmJ0blMuZ2V0SWNvbih2KTtcbiAgICB0aGlzLmxlZnRJY29uLnNldChyZXMuaWNvbik7XG4gICAgdGhpcy5sZWZ0Q3VzdG9tSWNvbi5zZXQocmVzLmljb25TdHJpbmcpO1xuICB9XG5cbiAgQElucHV0KCd0eXBlJykgc2V0IF90eXBlKHY6IEJ0blR5cGUpIHtcbiAgICBjb25zdCB7IF9pY29uLCBfbWNsYXNzLCBfdHlwZSB9ID0gdGhpcy5idG5TLmdldFR5cGUodik7XG4gICAgdGhpcy5fbWNsYXNzLnVwZGF0ZSgobWNsYXNzKSA9PiBfbWNsYXNzIHx8IG1jbGFzcyk7XG4gICAgaWYgKF9pY29uKSB0aGlzLl9pY29uID0gX2ljb247XG4gICAgaWYgKF90eXBlKSB0aGlzLl90eXBlID0gX3R5cGU7XG4gIH1cblxuICBASW5wdXQoJ2dyb3VwJykgc2V0IF9ncm91cCh2OiBCdG5Hcm91cCkge1xuICAgIHN3aXRjaCAodikge1xuICAgICAgY2FzZSAnYWRkJzpcbiAgICAgICAgdGhpcy5fdHlwZSA9ICdvdXRsaW5lJztcbiAgICAgICAgdGhpcy5faWNvbiA9ICdhZGQnO1xuICAgICAgICB0aGlzLmljb25CdG4uc2V0KHRydWUpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2Nsb25lJzpcbiAgICAgICAgdGhpcy5fdHlwZSA9ICdzZWNvbmRhcnknO1xuICAgICAgICB0aGlzLl9pY29uID0gJ2Nsb25lJztcbiAgICAgICAgdGhpcy5fdGV4dC5zZXQoJ0Nsb25lJyk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnY3JlYXRlJzpcbiAgICAgICAgdGhpcy5fdHlwZSA9ICdvdXRsaW5lJztcbiAgICAgICAgdGhpcy5faWNvbiA9ICdhZGQnO1xuICAgICAgICB0aGlzLl90ZXh0LnNldCgnQ3JlYXRlJyk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnY2xvc2UnOlxuICAgICAgICB0aGlzLl90eXBlID0gJ2Rhbmdlci1vdXRsaW5lJztcbiAgICAgICAgdGhpcy5jdXN0b21JY29uID0gdGhpcy5idG5TLmdldEljb24oJ2Nsb3NlJykuaWNvblN0cmluZztcbiAgICAgICAgdGhpcy5pY29uQnRuLnNldCh0cnVlKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdkZWxldGUnOlxuICAgICAgICB0aGlzLl90eXBlID0gJ2Rhbmdlci1vdXRsaW5lJztcbiAgICAgICAgdGhpcy5faWNvbiA9ICdkZWxldGUnO1xuICAgICAgICB0aGlzLmljb25CdG4uc2V0KHRydWUpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2Rvd25sb2FkJzpcbiAgICAgICAgdGhpcy5fdHlwZSA9ICdzZWNvbmRhcnknO1xuICAgICAgICB0aGlzLl9pY29uID0gJ2Rvd25sb2FkJztcbiAgICAgICAgdGhpcy5pY29uQnRuLnNldCh0cnVlKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdlZGl0JzpcbiAgICAgICAgdGhpcy5fdHlwZSA9ICdzZWNvbmRhcnknO1xuICAgICAgICB0aGlzLl9pY29uID0gJ2VkaXQnO1xuICAgICAgICB0aGlzLmljb25CdG4uc2V0KHRydWUpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2xpbmsnOlxuICAgICAgICB0aGlzLl90eXBlID0gJ3NlY29uZGFyeSc7XG4gICAgICAgIHRoaXMuY3VzdG9tSWNvbiA9ICdmYSBmYS1leWUnO1xuICAgICAgICB0aGlzLmljb25CdG4uc2V0KHRydWUpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3NlYXJjaCc6XG4gICAgICAgIHRoaXMuX3R5cGUgPSAnc2Vjb25kYXJ5JztcbiAgICAgICAgdGhpcy5faWNvbiA9ICdzZWFyY2gnO1xuICAgICAgICB0aGlzLmljb25CdG4uc2V0KHRydWUpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3Nob3cnOlxuICAgICAgICB0aGlzLl90eXBlID0gJ3NlY29uZGFyeSc7XG4gICAgICAgIHRoaXMuX2ljb24gPSAnc2hvdyc7XG4gICAgICAgIHRoaXMuX3RleHQuc2V0KCdTaG93Jyk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnc3VibWl0JzpcbiAgICAgICAgdGhpcy5fdHlwZSA9ICdzZWNvbmRhcnknO1xuICAgICAgICB0aGlzLl9pY29uID0gJ3NhdmUnO1xuICAgICAgICB0aGlzLl90ZXh0LnNldCgnU3VibWl0Jyk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnc2F2ZSc6XG4gICAgICAgIHRoaXMuX2dyb3VwID0gJ3N1Ym1pdCc7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuICBfbWNsYXNzID0gc2lnbmFsPHN0cmluZz4obnVsbCk7XG4gIGFjdGlvblR5cGUgPSBpbnB1dDwnc3VibWl0JyB8ICdidXR0b24nIHwgJ3Jlc2V0Jz4oJ2J1dHRvbicpO1xuICBhbmltYXRlID0gaW5wdXQoZmFsc2UsIHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlMiBhcyB1bmRlZmluZWQgfSk7XG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZTIgfSkgZXhjbHVkZUxvZ2dpbmcgPSBmYWxzZTtcbiAgQElucHV0KCkgbG9nZ2luZ1ZhbHVlOiBzdHJpbmc7XG4gIGJhZGdlID0gaW5wdXQ8c3RyaW5nIHwgbnVtYmVyPihudWxsKTtcbiAgY2xhc3MgPSBpbnB1dDxzdHJpbmc+KCk7XG4gIC8qKlxuICAgKiBTZXRzIHRoZSBsZWZ0IHNpZGUgaWNvblxuICAgKi9cbiAgQElucHV0KCkgc2V0IGN1c3RvbUljb24odjogc3RyaW5nKSB7XG4gICAgdGhpcy5sZWZ0Q3VzdG9tSWNvbi5zZXQodik7XG4gIH1cbiAgQElucHV0KHsgYWxpYXM6ICdkaXNhYmxlZCcgfSkgc2V0IF9kaXNhYmxlZCh2OiBib29sZWFuKSB7XG4gICAgdGhpcy5kaXNhYmxlZC5zZXQodiB8fCBmYWxzZSk7XG4gIH1cbiAgLy8gZm9ybVN0YXRlID0gY29tcHV0ZWQ8SUZvcm1TdGF0ZT4oKCkgPT4ge1xuICAvLyAgIGNvbnN0IGQgPSB0aGlzLmNoZWNrRm9ybVN0YXRlKCk7XG5cbiAgLy8gICBpZiAodGhpcy5kZWJ1ZygpKSB7XG4gIC8vICAgICBkZWJ1Z2dlcjtcbiAgLy8gICB9XG4gIC8vICAgcmV0dXJuIHtcbiAgLy8gICAgIHBlbmRpbmc6IHRoaXMuZm9ybT8ucGVuZGluZyxcbiAgLy8gICAgIGRpcnR5OiB0aGlzLmZvcm0/LmRpcnR5LFxuICAvLyAgICAgaW52YWxpZDogdGhpcy5mb3JtPy5pbnZhbGlkLFxuICAvLyAgICAgcHJpc3RpbmU6IHRoaXMuZm9ybT8ucHJpc3RpbmUsXG4gIC8vICAgICB2YWxpZDogdGhpcy5mb3JtPy52YWxpZCxcbiAgLy8gICB9O1xuICAvLyB9KTtcbiAgZm9ybVN0YXRlID0gc2lnbmFsPElGb3JtU3RhdGU+KHt9KTtcbiAgY291bnQgPSAwO1xuICBjaGVja0Zvcm1TdGF0ZSA9IHNpZ25hbCh1bmRlZmluZWQpO1xuICBwcm90ZWN0ZWQgZm9ybVN1YjogU3Vic2NyaXB0aW9uO1xuICBASW5wdXQoJ2Zvcm0nKSBzZXQgX2Zvcm0odjogRm9ybUdyb3VwIHwgRm9ybUNvbnRyb2wgfCBGb3JtQXJyYXkgfCBBYnN0cmFjdENvbnRyb2wpIHtcbiAgICB0aGlzLmZvcm1TdWI/LnVuc3Vic2NyaWJlKCk7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLmNoZWNrRm9ybVN0YXRlLnNldCgrK3RoaXMuY291bnQpO1xuICAgICAgdGhpcy5mb3JtU3RhdGUuc2V0KHtcbiAgICAgICAgcGVuZGluZzogdj8ucGVuZGluZyxcbiAgICAgICAgZGlydHk6IHY/LmRpcnR5LFxuICAgICAgICBpbnZhbGlkOiB2Py5pbnZhbGlkLFxuICAgICAgICBwcmlzdGluZTogdj8ucHJpc3RpbmUsXG4gICAgICAgIHZhbGlkOiB2Py52YWxpZCxcbiAgICAgIH0pO1xuICAgIH0sIDEwMDApO1xuICAgIGlmICh0aGlzLmRlYnVnKCkpIGRlYnVnZ2VyO1xuICAgIHRoaXMuZm9ybSA9IHY7XG4gICAgaWYgKHYpXG4gICAgICB0aGlzLmZvcm1TdWIgPSB2LnN0YXR1c0NoYW5nZXNcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgdGFwKChyKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmNoZWNrRm9ybVN0YXRlLnNldCgrK3RoaXMuY291bnQpO1xuICAgICAgICAgICAgdGhpcy5mb3JtU3RhdGUuc2V0KHtcbiAgICAgICAgICAgICAgcGVuZGluZzogdj8ucGVuZGluZyxcbiAgICAgICAgICAgICAgZGlydHk6IHY/LmRpcnR5LFxuICAgICAgICAgICAgICBpbnZhbGlkOiB2Py5pbnZhbGlkLFxuICAgICAgICAgICAgICBwcmlzdGluZTogdj8ucHJpc3RpbmUsXG4gICAgICAgICAgICAgIHZhbGlkOiB2Py52YWxpZCxcbiAgICAgICAgICAgICAgc3RhdHVzOiB2Py5zdGF0dXMsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9KSxcbiAgICAgICAgICBkZWJvdW5jZVRpbWUoMjAwKSxcbiAgICAgICAgKVxuICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICB0aGlzLmNoZWNrRm9ybVN0YXRlLnNldCgrK3RoaXMuY291bnQpO1xuICAgICAgICAgIHRoaXMuZm9ybVN0YXRlLnNldCh7XG4gICAgICAgICAgICBwZW5kaW5nOiB2Py5wZW5kaW5nLFxuICAgICAgICAgICAgZGlydHk6IHY/LmRpcnR5LFxuICAgICAgICAgICAgaW52YWxpZDogdj8uaW52YWxpZCxcbiAgICAgICAgICAgIHByaXN0aW5lOiB2Py5wcmlzdGluZSxcbiAgICAgICAgICAgIHZhbGlkOiB2Py52YWxpZCxcbiAgICAgICAgICAgIHN0YXR1czogdj8uc3RhdHVzLFxuICAgICAgICAgIH0pO1xuICAgICAgICAgIGlmICh0aGlzLmRlYnVnKCkpIHtcbiAgICAgICAgICAgIGlmICh2Py52YWxpZCkge1xuICAgICAgICAgICAgICBkZWJ1Z2dlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh2Py5wZW5kaW5nKSB7XG4gICAgICAgICAgICAgIGRlYnVnZ2VyO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gY29uc3QgZCA9IHRoaXMuY2hlY2tGb3JtU3RhdGUoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICB9XG5cbiAgZm9ybXNTdGF0ZSA9IHNpZ25hbDxJRm9ybVN0YXRlW10+KHVuZGVmaW5lZCk7XG4gIEBJbnB1dCgnZm9ybXMnKSBzZXQgX2Zvcm1zKHY6IChGb3JtR3JvdXAgfCBGb3JtQ29udHJvbCB8IEZvcm1BcnJheSB8IEFic3RyYWN0Q29udHJvbClbXSkge1xuICAgIHRoaXMuZm9ybXMgPSB2O1xuICAgIGlmICghdikge1xuICAgICAgdGhpcy5mb3Jtc1N0YXRlLnNldCh1bmRlZmluZWQpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBzdWIgPSBtZXJnZSh2Lm1hcCgoZikgPT4gZi5zdGF0dXNDaGFuZ2VzKSlcbiAgICAgIC5waXBlKGRlYm91bmNlVGltZSg3MDApKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuZm9ybXNTdGF0ZS5zZXQoXG4gICAgICAgICAgdi5tYXAoKHgpID0+ICh7XG4gICAgICAgICAgICBwZW5kaW5nOiB4LnBlbmRpbmcsXG4gICAgICAgICAgICBkaXJ0eTogeC5kaXJ0eSxcbiAgICAgICAgICAgIGludmFsaWQ6IHguaW52YWxpZCxcbiAgICAgICAgICAgIHByaXN0aW5lOiB4LnByaXN0aW5lLFxuICAgICAgICAgICAgdmFsaWQ6IHgudmFsaWQsXG4gICAgICAgICAgfSkpLFxuICAgICAgICApO1xuICAgICAgfSk7XG4gICAgdGhpcy5kZXN0cm95UmVmLm9uRGVzdHJveSgoKSA9PiBzdWI/LnVuc3Vic2NyaWJlKCkpO1xuICB9XG4gIGhlbHAgPSBpbnB1dDxzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkPigpO1xuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgbm8gbG9uZ2VyIG5lZWRlZCB0byBkZXRlY3QgdGhlIGNvcnJlY3Qgc3BhY2luZyBiZXR3ZWVuIGljb24gYW5kIHRleHRcbiAgICovXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZTIsIGFsaWFzOiAnaWNvbkJ0bicgfSkgc2V0IF9pY29uQnRuKHY6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmljb25CdG4uc2V0KHYgfHwgZmFsc2UpO1xuICB9XG4gIEBJbnB1dCgnbG9hZGluZycpIHNldCBfbG9hZGluZyh2OiBib29sZWFuKSB7XG4gICAgdGhpcy5sb2FkaW5nLnNldCh2KTtcbiAgfVxuICBtY2xhc3MgPSBpbnB1dDxzdHJpbmc+KG51bGwpO1xuICBzaG93SGVscEljb24gPSBpbnB1dCh0cnVlKTtcbiAgcmlnaHRJY29uID0gc2lnbmFsPEljb25EZWZpbml0aW9uPihudWxsKTtcbiAgQElucHV0KHsgYWxpYXM6ICdyaWdodEN1c3RvbUljb24nIH0pIHNldCBfcmlnaHRDdXN0b21JY29uKHY6IHN0cmluZykge1xuICAgIHRoaXMucmlnaHRDdXN0b21JY29uLnNldCh2KTtcbiAgfVxuICByaWdodEN1c3RvbUljb24gPSBzaWduYWw8c3RyaW5nPihudWxsKTtcbiAgbGVmdEljb24gPSBzaWduYWw8SWNvbkRlZmluaXRpb24+KG51bGwpO1xuICBASW5wdXQoeyBhbGlhczogJ2xlZnRDdXN0b21JY29uJyB9KSBzZXQgX2xlZnRDdXN0b21JY29uKHY6IHN0cmluZykge1xuICAgIHRoaXMubGVmdEN1c3RvbUljb24uc2V0KHYpO1xuICB9XG4gIGxlZnRDdXN0b21JY29uID0gc2lnbmFsPHN0cmluZz4obnVsbCk7XG4gIHRleHQgPSBpbnB1dDxzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkPigpO1xuICB2YWxpZCA9IGlucHV0KHRydWUpO1xuICBtaW5pID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UsIHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlMiBhcyB1bmRlZmluZWQgfSk7XG4gIG9uRm9ybUludmFsaWQgPSBpbnB1dDxrZXlvZiB0eXBlb2YgT25Gb3JtSW52YWxpZD4oT25Gb3JtSW52YWxpZC5kaXNhYmxlKTtcbiAgQE91dHB1dCgpIG1jbGljayA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQFZpZXdDaGlsZCgnaW5uZXJUZXh0JykgaW5uZXJUZXh0OiBFbGVtZW50UmVmPEhUTUxTcGFuRWxlbWVudD47XG4gIGxvY2tlZCA9IHNpZ25hbChmYUxvY2spO1xuICBwcm90ZWN0ZWQgX3RleHQgPSBzaWduYWw8c3RyaW5nIHwgbnVsbD4odW5kZWZpbmVkKTtcbiAgcHJvdGVjdGVkIGRpc2FibGVkID0gc2lnbmFsPGJvb2xlYW4gfCBudWxsPih1bmRlZmluZWQpO1xuICBjb21wdXRlZFRleHQgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgaW5wdXQgPSB0aGlzLnRleHQoKSxcbiAgICAgIGxvY2FsID0gdGhpcy5fdGV4dCgpO1xuICAgIHJldHVybiBpbnB1dCA9PSBudWxsID8gbG9jYWwgOiBpbnB1dDtcbiAgfSk7XG4gIHB1YmxpYyBidG5TID0gaW5qZWN0KEJ0blNlcnZpY2UpO1xuICBwdWJsaWMgZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLmRlc3Ryb3lSZWYub25EZXN0cm95KCgpID0+IHtcbiAgICAgIHRoaXMuZm9ybVN1Yj8udW5zdWJzY3JpYmUoKTtcbiAgICB9KTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3Q2hlY2tlZCgpOiB2b2lkIHtcbiAgICAvL0NhbGxlZCBhZnRlciBldmVyeSBjaGVjayBvZiB0aGUgY29tcG9uZW50J3Mgdmlldy4gQXBwbGllcyB0byBjb21wb25lbnRzIG9ubHkuXG4gICAgLy9BZGQgJ2ltcGxlbWVudHMgQWZ0ZXJWaWV3Q2hlY2tlZCcgdG8gdGhlIGNsYXNzLlxuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLl9tY2xhc3MoKSkgdGhpcy5fdHlwZSA9IHRoaXMuYnRuUy5kZWZhdWx0VHlwZTtcbiAgfVxuXG4gIGNoZWNrRm9ybSgpIHtcbiAgICBpZiAodGhpcy5pc0Rpc2FibGVkKCkgJiYgdGhpcy5mb3JtKSB7XG4gICAgICB0aGlzLmZvcm0ubWFya0FsbEFzVG91Y2hlZCgpO1xuICAgICAgY29uc3QgZm9ybSA9IHRoaXMuZm9ybTtcbiAgICAgIGNvbnNvbGUubG9nKGZvcm0pO1xuICAgICAgaWYgKGZvcm0gaW5zdGFuY2VvZiBGb3JtR3JvdXApIHtcbiAgICAgICAgY29uc29sZS5sb2coXG4gICAgICAgICAgT2JqZWN0LmtleXMoZm9ybS5jb250cm9scylcbiAgICAgICAgICAgIC5maWx0ZXIoKHgpID0+ICFmb3JtLmNvbnRyb2xzW3hdLnZhbGlkKVxuICAgICAgICAgICAgLm1hcCgoeCkgPT4gZm9ybS5jb250cm9sc1t4XSksXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuICAgIGlmICh0aGlzLmlzRGlzYWJsZWQoKSAmJiB0aGlzLmZvcm1zKSB7XG4gICAgICB0aGlzLmZvcm1zLmZvckVhY2goKGZvcm0pID0+IGZvcm0ubWFya0FsbEFzVG91Y2hlZCgpKTtcbiAgICAgIC8vIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgIGNvbnNvbGUubG9nKHRoaXMuZm9ybXMpO1xuICAgIH1cbiAgfVxuXG4gIHNldExvYWRlcih2YWw6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmxvYWRpbmcuc2V0KHZhbCk7XG4gIH1cbiAgZ2V0IGV4dHJhY3RUZXh0KCkge1xuICAgIHJldHVybiBgQ2xpY2tlZCBvbiAke3RoaXMudGV4dCgpIHx8IHRoaXMuaW5uZXJUZXh0Py5uYXRpdmVFbGVtZW50Py5pbm5lckhUTUwgfHwgdGhpcy5pY29uVHlwZSB8fCAnYnV0dG9uJ30gJHtcbiAgICAgIHRoaXMubG9nZ2luZ1ZhbHVlID8gJ1xcblRyYWNrIHZhbHVlOiAnICsgdGhpcy5sb2dnaW5nVmFsdWUgOiAnJ1xuICAgIH1gO1xuICB9XG4gIGNsaWNrKCRldmVudCkge1xuICAgIC8vIGRlYnVnZ2VyXG4gICAgaWYgKHRoaXMuaXNEaXNhYmxlZCgpIHx8IHRoaXMubG9hZGluZygpKSByZXR1cm47XG4gICAgdGhpcy5tY2xpY2suZW1pdCgkZXZlbnQpO1xuICAgIHRoaXMuYnRuUy5sb2dDbGljayh0aGlzKTtcbiAgfVxuXG4gIGlzRGlzYWJsZWQgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgaWYgKHRoaXMuZGVidWcoKSkgZGVidWdnZXI7XG4gICAgY29uc3QgZGlzYWJsZWQgPSB0aGlzLmRpc2FibGVkKCksXG4gICAgICB2YWxpZCA9IHRoaXMudmFsaWQoKSxcbiAgICAgIG9uRm9ybUludmFsaWQgPSB0aGlzLm9uRm9ybUludmFsaWQoKSxcbiAgICAgIGZvcm0gPSB0aGlzLmZvcm1TdGF0ZSgpLFxuICAgICAgZm9ybXMgPSB0aGlzLmZvcm1zU3RhdGUoKSB8fCBbXTtcbiAgICByZXR1cm4gZGlzYWJsZWQgfHwgIXZhbGlkIHx8IChvbkZvcm1JbnZhbGlkID09IE9uRm9ybUludmFsaWQuZGlzYWJsZSAmJiAoZm9ybT8uaW52YWxpZCB8fCBmb3JtPy5wZW5kaW5nIHx8IGZvcm1zLnNvbWUoKHgpID0+IHgucGVuZGluZykpKTtcbiAgfSk7XG5cbiAgZGlzYWJsZSgpIHtcbiAgICB0aGlzLmRpc2FibGVkLnNldCh0cnVlKTtcbiAgfVxuXG4gIGVuYWJsZSgpIHtcbiAgICB0aGlzLmRpc2FibGVkLnNldChmYWxzZSk7XG4gIH1cbn1cbmVudW0gT25Gb3JtSW52YWxpZCB7XG4gIGRpc2FibGUgPSAnZGlzYWJsZScsXG4gIHdhcm4gPSAnd2FybicsXG59XG5pbnRlcmZhY2UgSUZvcm1TdGF0ZSB7XG4gIHBlbmRpbmc/OiBib29sZWFuO1xuICBkaXJ0eT86IGJvb2xlYW47XG4gIGludmFsaWQ/OiBib29sZWFuO1xuICBwcmlzdGluZT86IGJvb2xlYW47XG4gIHZhbGlkPzogYm9vbGVhbjtcbiAgc3RhdHVzPzogRm9ybUNvbnRyb2xTdGF0dXM7XG59XG4iLCI8c3BhblxuICBjbGFzcz1cInt7IGNsYXNzKCkgfX0gIGQtZmxleCAgYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXJcIlxuICBbbmdDbGFzc109XCJ7IGRpc2FibGVkOiBpc0Rpc2FibGVkKCksIG1pbmk6IG1pbmkoKSB9XCJcbiAgKGNsaWNrKT1cImNoZWNrRm9ybSgpXCI+XG4gIEBpZiAoc2hvd0hlbHBJY29uKCkgJiYgaGVscCgpKSB7XG4gICAgPGkgY2xhc3M9XCJmYSBmYS1pbmZvLWNpcmNsZSBtZS0yIHRleHQtcHJpbWFyeVwiIFttYXRUb29sdGlwXT1cImhlbHAoKSB8IGFwcFRyYW5zbGF0ZSB8IGFzeW5jXCI+PC9pPlxuICB9XG4gIDxidXR0b25cbiAgICB0eXBlPVwie3sgYWN0aW9uVHlwZSgpIH19XCJcbiAgICBjbGFzcz1cInt7IG1jbGFzcygpIH19IHt7IF9tY2xhc3MoKSB9fSBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIFwiXG4gICAgW21hdEJhZGdlXT1cImJhZGdlKClcIlxuICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgIGNoYW5nZWNvbG9yOiB2YWxpZCgpLFxuICAgICAgJ2J0bi1yYWlzZWQnOiBhbmltYXRlKCksXG4gICAgICBkaXNhYmxlZDogaXNEaXNhYmxlZCgpLFxuICAgICAgaXNEYW5nZXI6IGRhbmdlcigpLFxuICAgICAgaXNXYXJuaW5nOiB3YXJuaW5nKCksXG4gICAgICBpbnZhbGlkOiBmb3JtSXNJbnZhbGlkKCksXG4gICAgICAnanVzdGlmeS1jb250ZW50LWNlbnRlcic6IGNlbnRlckJ0bigpXG4gICAgfVwiXG4gICAgW2Rpc2FibGVkXT1cImlzRGlzYWJsZWQoKVwiXG4gICAgKGNsaWNrKT1cImNsaWNrKCRldmVudClcIlxuICAgIFttYXRUb29sdGlwXT1cInNob3dIZWxwSWNvbigpID8gbnVsbCA6IChoZWxwKCkgfCBhcHBUcmFuc2xhdGUgfCBhc3luYylcIj5cbiAgICBAaWYgKCFsb2FkaW5nKCkpIHtcbiAgICAgIEBpZiAobGVmdEljb24oKSkge1xuICAgICAgICA8ZmEtaWNvbiBbaWNvbl09XCJpc0Rpc2FibGVkKCkgPyBsb2NrZWQoKSA6IGxlZnRJY29uKClcIj48L2ZhLWljb24+XG4gICAgICB9IEBlbHNlIGlmIChsZWZ0Q3VzdG9tSWNvbigpKSB7XG4gICAgICAgIDxpIGNsYXNzPVwie3sgbGVmdEN1c3RvbUljb24oKSB9fVwiPjwvaT5cbiAgICAgIH1cbiAgICB9XG5cbiAgICBAaWYgKGNvbXB1dGVkVGV4dCgpKSB7XG4gICAgICA8c3BhbiBjbGFzcz1cIlwiIFtuZ0NsYXNzXT1cInsgJ21zLTEnOiBsZWZ0SWNvbigpIHx8IGxlZnRDdXN0b21JY29uKCksICdtZS0xJzogcmlnaHRJY29uKCkgfHwgcmlnaHRDdXN0b21JY29uKCkgfVwiPlxuICAgICAgICB7eyBjb21wdXRlZFRleHQoKSB8IGFwcFRyYW5zbGF0ZSB8IGFzeW5jIH19XG4gICAgICA8L3NwYW4+XG4gICAgfSBAZWxzZSB7XG4gICAgICA8c3BhblxuICAgICAgICBjbGFzcz1cIiBcIlxuICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgJ21zLTEnOiBpbm5lclRleHQuaW5uZXJUZXh0ICYmIChsZWZ0SWNvbigpIHx8IGxlZnRDdXN0b21JY29uKCkpLFxuICAgICAgICAgICdtZS0xJzogaW5uZXJUZXh0LmlubmVyVGV4dCAmJiAocmlnaHRJY29uKCkgfHwgcmlnaHRDdXN0b21JY29uKCkpXG4gICAgICAgIH1cIlxuICAgICAgICAjaW5uZXJUZXh0XG4gICAgICAgIGFwcFRyYW5zbGF0b3I+XG4gICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICAgIDwvc3Bhbj5cbiAgICB9XG5cbiAgICBAaWYgKGxvYWRpbmcoKSkge1xuICAgICAgPHNwYW4gY2xhc3M9XCJmYSBmYS1zcGlubmVyIG1zLXt7IGljb25CdG4oKSA/ICcnIDogJzInIH19IGZhLXNwaW5cIj48L3NwYW4+XG4gICAgfSBAZWxzZSB7XG4gICAgICBAaWYgKHJpZ2h0SWNvbigpKSB7XG4gICAgICAgIDxmYS1pY29uIFtpY29uXT1cImlzRGlzYWJsZWQoKSA/IGxvY2tlZCgpIDogcmlnaHRJY29uKClcIj48L2ZhLWljb24+XG4gICAgICB9IEBlbHNlIGlmIChyaWdodEN1c3RvbUljb24oKSkge1xuICAgICAgICA8aSBjbGFzcz1cInt7IHJpZ2h0Q3VzdG9tSWNvbigpIH19XCI+PC9pPlxuICAgICAgfVxuICAgIH1cbiAgPC9idXR0b24+XG48L3NwYW4+XG4iXX0=
|
|
354
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnRuLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V0cy1mZS1uZy1zZGsvc3JjL2xpYi9TaGFyZWQvY29tcG9uZW50cy9idG4vYnRuLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V0cy1mZS1uZy1zZGsvc3JjL2xpYi9TaGFyZWQvY29tcG9uZW50cy9idG4vYnRuLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxTQUFTLEVBQ1QsVUFBVSxFQUVWLFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUNOLFNBQVMsRUFDVCxnQkFBZ0IsRUFDaEIsUUFBUSxFQUNSLE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBZSxTQUFTLEVBQWlELE1BQU0sZ0JBQWdCLENBQUM7QUFDdkcsT0FBTyxFQUFrQixNQUFNLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUMzRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUM1RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNyRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDN0QsT0FBTyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFHM0QsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNwQyxPQUFPLEVBQWdCLFlBQVksRUFB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O3NCQUF2QixLQUFLO3VCQUFDLE1BQU07Z0JBT08sTUFBTTtzQkFBekIsS0FBSzt1QkFBQyxPQUFPO2dCQWlFMkIsY0FBYztzQkFBdEQsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRTtnQkFDOUIsWUFBWTtzQkFBcEIsS0FBSztnQkFNTyxVQUFVO3NCQUF0QixLQUFLO2dCQUc0QixTQUFTO3NCQUExQyxLQUFLO3VCQUFDLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRTtnQkFvQlQsS0FBSztzQkFBdkIsS0FBSzt1QkFBQyxNQUFNO2dCQVNPLE1BQU07c0JBQXpCLEtBQUs7dUJBQUMsT0FBTztnQkErQmlELFFBQVE7c0JBQXRFLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRTtnQkFHbkMsUUFBUTtzQkFBN0IsS0FBSzt1QkFBQyxTQUFTO2dCQU15QixnQkFBZ0I7c0JBQXhELEtBQUs7dUJBQUMsRUFBRSxLQUFLLEVBQUUsaUJBQWlCLEVBQUU7Z0JBS0ssZUFBZTtzQkFBdEQsS0FBSzt1QkFBQyxFQUFFLEtBQUssRUFBRSxnQkFBZ0IsRUFBRTtnQkFReEIsTUFBTTtzQkFBZixNQUFNO2dCQUNpQixTQUFTO3NCQUFoQyxTQUFTO3VCQUFDLFdBQVc7O0FBaUZ4QixJQUFLLGFBR0o7QUFIRCxXQUFLLGFBQWE7SUFDaEIsb0NBQW1CLENBQUE7SUFDbkIsOEJBQWEsQ0FBQTtBQUNmLENBQUMsRUFISSxhQUFhLEtBQWIsYUFBYSxRQUdqQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIERlc3Ryb3lSZWYsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBWaWV3Q2hpbGQsXG4gIGJvb2xlYW5BdHRyaWJ1dGUsXG4gIGNvbXB1dGVkLFxuICBpbmplY3QsXG4gIGlucHV0LFxuICBzaWduYWwsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgRm9ybUFycmF5LCBBYnN0cmFjdENvbnRyb2wsIEZvcm1Db250cm9sU3RhdHVzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgSWNvbkRlZmluaXRpb24sIGZhTG9jayB9IGZyb20gJ0Bmb3J0YXdlc29tZS9mcmVlLXNvbGlkLXN2Zy1pY29ucyc7XG5pbXBvcnQgeyBCdG5TZXJ2aWNlIH0gZnJvbSAnLi9idG4uc2VydmljZSc7XG5pbXBvcnQgeyBUcmFuc2xhdGVQaXBlIH0gZnJvbSAnLi4vLi4vcGlwZXMvdHJhbnNsYXRlLnBpcGUnO1xuaW1wb3J0IHsgVHJhbnNsYXRvckRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvdHJhbnNsYXRvci5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgRm9udEF3ZXNvbWVNb2R1bGUgfSBmcm9tICdAZm9ydGF3ZXNvbWUvYW5ndWxhci1mb250YXdlc29tZSc7XG5pbXBvcnQgeyBNYXRCYWRnZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2JhZGdlJztcbmltcG9ydCB7IE1hdFRvb2x0aXBNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwJztcbmltcG9ydCB7IE5nQ2xhc3MsIE5nSWYsIEFzeW5jUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBJRm9ybVNjaGVtYSB9IGZyb20gJy4uLy4uL21vZGVscy9mb3JtLXNjaGVtYS5tb2RlbCc7XG5pbXBvcnQgeyBJY29uVHlwZSwgQnRuVHlwZSwgQnRuR3JvdXAgfSBmcm9tICcuL2J0bi5tb2RlbCc7XG5pbXBvcnQgeyBpc0VxdWFsIH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiwgZGVib3VuY2VUaW1lLCBpbnRlcnZhbCwgbWVyZ2UsIHRhcCwgdGltZXIgfSBmcm9tICdyeGpzJztcblxuZnVuY3Rpb24gYm9vbGVhbkF0dHJpYnV0ZTIodmFsdWU6IHN0cmluZyB8IGJvb2xlYW4gfCB1bmRlZmluZWQpIHtcbiAgcmV0dXJuIGJvb2xlYW5BdHRyaWJ1dGUodmFsdWUpO1xufVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWJ0bicsXG4gIHRlbXBsYXRlVXJsOiAnLi9idG4uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9idG4uY29tcG9uZW50LnNjc3MnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgLy8gLy9cbiAgaW1wb3J0czogW05nQ2xhc3MsIE5nSWYsIE1hdFRvb2x0aXBNb2R1bGUsIE1hdEJhZGdlTW9kdWxlLCBGb250QXdlc29tZU1vZHVsZSwgVHJhbnNsYXRvckRpcmVjdGl2ZSwgQXN5bmNQaXBlLCBUcmFuc2xhdGVQaXBlXSxcbn0pIC8vIEluaGVyaXRlZFxuZXhwb3J0IGNsYXNzIEJ0bkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIC8qKiBUbyBiZSBwYXNzZWQgd2hlbiB0byBjaGVjayBmb3Igc3BlY2lmaWMgaW52YWxpZCBmb3JtIGZpZWxkcyAqL1xuICBmb3JtU2NoZW1hID0gaW5wdXQ8SUZvcm1TY2hlbWFbXT4oKTtcbiAgZGVidWcgPSBpbnB1dDxib29sZWFuPigpO1xuICBmb3JtSXNJbnZhbGlkID0gY29tcHV0ZWQ8Ym9vbGVhbj4oXG4gICAgKCkgPT4ge1xuICAgICAgY29uc3QgZm9ybSA9IHRoaXMuZm9ybVN0YXRlKCksXG4gICAgICAgIG9uRm9ybUludmFsaWQgPSB0aGlzLm9uRm9ybUludmFsaWQoKSxcbiAgICAgICAgZm9ybVNjaGVtYSA9IHRoaXMuZm9ybVNjaGVtYSgpO1xuXG4gICAgICByZXR1cm4gZm9ybSAmJiBmb3JtLmludmFsaWQgJiYgb25Gb3JtSW52YWxpZCA9PSBPbkZvcm1JbnZhbGlkLndhcm4gJiYgZm9ybVNjaGVtYT8ubGVuZ3RoXG4gICAgICAgID8gZm9ybVNjaGVtYS5zb21lKChmKSA9PiAoPEZvcm1Hcm91cD5mb3JtKS5jb250cm9sc1tmLmZpZWxkPy50b1N0cmluZygpXT8uaW52YWxpZClcbiAgICAgICAgOiBudWxsO1xuICAgIH0sXG4gICAgeyBlcXVhbDogaXNFcXVhbCB9LFxuICApO1xuICBjZW50ZXJCdG4gPSBpbnB1dDxib29sZWFuPih0cnVlKTtcbiAgZGFuZ2VyID0gaW5wdXQ8Ym9vbGVhbj4oKTtcbiAgd2FybmluZyA9IGlucHV0PGJvb2xlYW4+KCk7XG5cbiAgcHJvdGVjdGVkIGljb25UeXBlOiBJY29uVHlwZTtcbiAgaWNvbkJ0biA9IHNpZ25hbDxib29sZWFuPihmYWxzZSk7XG4gIGxvYWRpbmcgPSBzaWduYWw8Ym9vbGVhbj4oZmFsc2UpO1xuICBmb3JtczogKEZvcm1Hcm91cDxhbnk+IHwgQWJzdHJhY3RDb250cm9sPGFueSwgYW55PiB8IEZvcm1Db250cm9sPGFueT4gfCBGb3JtQXJyYXk8YW55PilbXTtcbiAgZm9ybTogRm9ybUdyb3VwPGFueT4gfCBGb3JtQ29udHJvbDxhbnk+IHwgRm9ybUFycmF5PGFueT4gfCBBYnN0cmFjdENvbnRyb2w8YW55LCBhbnk+O1xuXG4gIEBJbnB1dCgnaWNvbicpIHNldCBfaWNvbih2OiBJY29uVHlwZSkge1xuICAgIHRoaXMuaWNvblR5cGUgPSB2O1xuICAgIGNvbnN0IHJlcyA9IHRoaXMuYnRuUy5nZXRJY29uKHYpO1xuICAgIGlmICghcmVzKSByZXR1cm47XG4gICAgaWYgKHJlcy5pY29uUG9zaXRpb24gPT0gJ3JpZ2h0Jykge1xuICAgICAgdGhpcy5yaWdodEljb24uc2V0KHJlcy5pY29uKTtcbiAgICAgIHRoaXMucmlnaHRDdXN0b21JY29uLnNldChyZXMuaWNvblN0cmluZyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubGVmdEljb24uc2V0KHJlcy5pY29uKTtcbiAgICAgIHRoaXMubGVmdEN1c3RvbUljb24uc2V0KHJlcy5pY29uU3RyaW5nKTtcbiAgICB9XG4gIH1cbiAgQElucHV0KCdyaWdodEljb24nKSBzZXQgX3JpZ2h0SWNvbih2OiBJY29uVHlwZSkge1xuICAgIHRoaXMuaWNvblR5cGUgPSB2O1xuICAgIGNvbnN0IHJlcyA9IHRoaXMuYnRuUy5nZXRJY29uKHYpO1xuICAgIHRoaXMucmlnaHRJY29uLnNldChyZXMuaWNvbik7XG4gICAgdGhpcy5yaWdodEN1c3RvbUljb24uc2V0KHJlcy5pY29uU3RyaW5nKTtcbiAgfVxuICBASW5wdXQoJ2xlZnRJY29uJykgc2V0IF9sZWZ0SWNvbih2OiBJY29uVHlwZSkge1xuICAgIHRoaXMuaWNvblR5cGUgPSB2O1xuICAgIGNvbnN0IHJlcyA9IHRoaXMuYnRuUy5nZXRJY29uKHYpO1xuICAgIHRoaXMubGVmdEljb24uc2V0KHJlcy5pY29uKTtcbiAgICB0aGlzLmxlZnRDdXN0b21JY29uLnNldChyZXMuaWNvblN0cmluZyk7XG4gIH1cblxuICBASW5wdXQoJ3R5cGUnKSBzZXQgX3R5cGUodjogQnRuVHlwZSkge1xuICAgIGNvbnN0IHsgX2ljb24sIF9tY2xhc3MsIF90eXBlIH0gPSB0aGlzLmJ0blMuZ2V0VHlwZSh2KTtcbiAgICB0aGlzLl9tY2xhc3MudXBkYXRlKChtY2xhc3MpID0+IF9tY2xhc3MgfHwgbWNsYXNzKTtcbiAgICBpZiAoX2ljb24pIHRoaXMuX2ljb24gPSBfaWNvbjtcbiAgICBpZiAoX3R5cGUpIHRoaXMuX3R5cGUgPSBfdHlwZTtcbiAgfVxuXG4gIEBJbnB1dCgnZ3JvdXAnKSBzZXQgX2dyb3VwKHY6IEJ0bkdyb3VwKSB7XG4gICAgc3dpdGNoICh2KSB7XG4gICAgICBjYXNlICdhZGQnOlxuICAgICAgICB0aGlzLl90eXBlID0gJ291dGxpbmUnO1xuICAgICAgICB0aGlzLl9pY29uID0gJ2FkZCc7XG4gICAgICAgIHRoaXMuaWNvbkJ0bi5zZXQodHJ1ZSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnY2xvbmUnOlxuICAgICAgICB0aGlzLl90eXBlID0gJ3NlY29uZGFyeSc7XG4gICAgICAgIHRoaXMuX2ljb24gPSAnY2xvbmUnO1xuICAgICAgICB0aGlzLl90ZXh0LnNldCgnQ2xvbmUnKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdjcmVhdGUnOlxuICAgICAgICB0aGlzLl90eXBlID0gJ291dGxpbmUnO1xuICAgICAgICB0aGlzLl9pY29uID0gJ2FkZCc7XG4gICAgICAgIHRoaXMuX3RleHQuc2V0KCdDcmVhdGUnKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdjbG9zZSc6XG4gICAgICAgIHRoaXMuX3R5cGUgPSAnZGFuZ2VyLW91dGxpbmUnO1xuICAgICAgICB0aGlzLmN1c3RvbUljb24gPSB0aGlzLmJ0blMuZ2V0SWNvbignY2xvc2UnKS5pY29uU3RyaW5nO1xuICAgICAgICB0aGlzLmljb25CdG4uc2V0KHRydWUpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2RlbGV0ZSc6XG4gICAgICAgIHRoaXMuX3R5cGUgPSAnZGFuZ2VyLW91dGxpbmUnO1xuICAgICAgICB0aGlzLl9pY29uID0gJ2RlbGV0ZSc7XG4gICAgICAgIHRoaXMuaWNvbkJ0bi5zZXQodHJ1ZSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnZG93bmxvYWQnOlxuICAgICAgICB0aGlzLl90eXBlID0gJ3NlY29uZGFyeSc7XG4gICAgICAgIHRoaXMuX2ljb24gPSAnZG93bmxvYWQnO1xuICAgICAgICB0aGlzLmljb25CdG4uc2V0KHRydWUpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2VkaXQnOlxuICAgICAgICB0aGlzLl90eXBlID0gJ3NlY29uZGFyeSc7XG4gICAgICAgIHRoaXMuX2ljb24gPSAnZWRpdCc7XG4gICAgICAgIHRoaXMuaWNvbkJ0bi5zZXQodHJ1ZSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnbGluayc6XG4gICAgICAgIHRoaXMuX3R5cGUgPSAnc2Vjb25kYXJ5JztcbiAgICAgICAgdGhpcy5jdXN0b21JY29uID0gJ2ZhIGZhLWV5ZSc7XG4gICAgICAgIHRoaXMuaWNvbkJ0bi5zZXQodHJ1ZSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnc2VhcmNoJzpcbiAgICAgICAgdGhpcy5fdHlwZSA9ICdzZWNvbmRhcnknO1xuICAgICAgICB0aGlzLl9pY29uID0gJ3NlYXJjaCc7XG4gICAgICAgIHRoaXMuaWNvbkJ0bi5zZXQodHJ1ZSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnc2hvdyc6XG4gICAgICAgIHRoaXMuX3R5cGUgPSAnc2Vjb25kYXJ5JztcbiAgICAgICAgdGhpcy5faWNvbiA9ICdzaG93JztcbiAgICAgICAgdGhpcy5fdGV4dC5zZXQoJ1Nob3cnKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdzdWJtaXQnOlxuICAgICAgICB0aGlzLl90eXBlID0gJ3NlY29uZGFyeSc7XG4gICAgICAgIHRoaXMuX2ljb24gPSAnc2F2ZSc7XG4gICAgICAgIHRoaXMuX3RleHQuc2V0KCdTdWJtaXQnKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdzYXZlJzpcbiAgICAgICAgdGhpcy5fZ3JvdXAgPSAnc3VibWl0JztcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG4gIF9tY2xhc3MgPSBzaWduYWw8c3RyaW5nPihudWxsKTtcbiAgYWN0aW9uVHlwZSA9IGlucHV0PCdzdWJtaXQnIHwgJ2J1dHRvbicgfCAncmVzZXQnPignYnV0dG9uJyk7XG4gIGFuaW1hdGUgPSBpbnB1dChmYWxzZSwgeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUyIGFzIHVuZGVmaW5lZCB9KTtcbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlMiB9KSBleGNsdWRlTG9nZ2luZyA9IGZhbHNlO1xuICBASW5wdXQoKSBsb2dnaW5nVmFsdWU6IHN0cmluZztcbiAgYmFkZ2UgPSBpbnB1dDxzdHJpbmcgfCBudW1iZXI+KG51bGwpO1xuICBjbGFzcyA9IGlucHV0PHN0cmluZz4oKTtcbiAgLyoqXG4gICAqIFNldHMgdGhlIGxlZnQgc2lkZSBpY29uXG4gICAqL1xuICBASW5wdXQoKSBzZXQgY3VzdG9tSWNvbih2OiBzdHJpbmcpIHtcbiAgICB0aGlzLmxlZnRDdXN0b21JY29uLnNldCh2KTtcbiAgfVxuICBASW5wdXQoeyBhbGlhczogJ2Rpc2FibGVkJyB9KSBzZXQgX2Rpc2FibGVkKHY6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmRpc2FibGVkLnNldCh2IHx8IGZhbHNlKTtcbiAgfVxuICAvLyBmb3JtU3RhdGUgPSBjb21wdXRlZDxJRm9ybVN0YXRlPigoKSA9PiB7XG4gIC8vICAgY29uc3QgZCA9IHRoaXMuY2hlY2tGb3JtU3RhdGUoKTtcblxuICAvLyAgIGlmICh0aGlzLmRlYnVnKCkpIHtcbiAgLy8gICAgIGRlYnVnZ2VyO1xuICAvLyAgIH1cbiAgLy8gICByZXR1cm4ge1xuICAvLyAgICAgcGVuZGluZzogdGhpcy5mb3JtPy5wZW5kaW5nLFxuICAvLyAgICAgZGlydHk6IHRoaXMuZm9ybT8uZGlydHksXG4gIC8vICAgICBpbnZhbGlkOiB0aGlzLmZvcm0/LmludmFsaWQsXG4gIC8vICAgICBwcmlzdGluZTogdGhpcy5mb3JtPy5wcmlzdGluZSxcbiAgLy8gICAgIHZhbGlkOiB0aGlzLmZvcm0/LnZhbGlkLFxuICAvLyAgIH07XG4gIC8vIH0pO1xuICBmb3JtU3RhdGUgPSBzaWduYWw8SUZvcm1TdGF0ZT4oe30pO1xuICBwcm90ZWN0ZWQgZm9ybVN1YjogU3Vic2NyaXB0aW9uO1xuICBwcm90ZWN0ZWQgZm9ybXNTdWI6IFN1YnNjcmlwdGlvbjtcbiAgQElucHV0KCdmb3JtJykgc2V0IF9mb3JtKHY6IEZvcm1Hcm91cCB8IEZvcm1Db250cm9sIHwgRm9ybUFycmF5IHwgQWJzdHJhY3RDb250cm9sKSB7XG4gICAgdGhpcy5mb3JtU3ViPy51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMuYnRuUy5zZXRGb3JtU3RhdGUodiwgdGhpcyk7XG4gICAgaWYgKHRoaXMuZGVidWcoKSkgZGVidWdnZXI7XG4gICAgdGhpcy5mb3JtID0gdjtcbiAgICBpZiAodikgdGhpcy5mb3JtU3ViID0gdGhpcy5idG5TLmhhbmRsZUZvcm0odiwgdGhpcyk7XG4gIH1cblxuICBmb3Jtc1N0YXRlID0gc2lnbmFsPE9taXQ8SUZvcm1TdGF0ZSwgJ3N0YXR1cyc+Pih1bmRlZmluZWQpO1xuICBASW5wdXQoJ2Zvcm1zJykgc2V0IF9mb3Jtcyh2OiAoRm9ybUdyb3VwIHwgRm9ybUNvbnRyb2wgfCBGb3JtQXJyYXkgfCBBYnN0cmFjdENvbnRyb2wpW10pIHtcbiAgICB0aGlzLmZvcm1zU3ViPy51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMuZm9ybXMgPSB2O1xuICAgIGlmICghdikge1xuICAgICAgdGhpcy5mb3Jtc1N0YXRlLnNldCh1bmRlZmluZWQpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmZvcm1zU3ViID0gbWVyZ2Uodi5tYXAoKGYpID0+IGYuc3RhdHVzQ2hhbmdlcykpXG4gICAgICAucGlwZShkZWJvdW5jZVRpbWUoNzAwKSlcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICBjb25zdCBmczogSUZvcm1TdGF0ZSA9IHtcbiAgICAgICAgICBwZW5kaW5nOiB0cnVlLFxuICAgICAgICAgIGRpcnR5OiB0cnVlLFxuICAgICAgICAgIGludmFsaWQ6IHRydWUsXG4gICAgICAgICAgcHJpc3RpbmU6IHRydWUsXG4gICAgICAgICAgdmFsaWQ6IHRydWUsXG4gICAgICAgIH07XG4gICAgICAgIHY/LmZvckVhY2goKHgpID0+IHtcbiAgICAgICAgICBpZiAoIXgucGVuZGluZykgZnMucGVuZGluZyA9IHgucGVuZGluZztcbiAgICAgICAgICBpZiAoIXguZGlydHkpIGZzLmRpcnR5ID0geC5kaXJ0eTtcbiAgICAgICAgICBpZiAoIXguaW52YWxpZCkgZnMuaW52YWxpZCA9IHguaW52YWxpZDtcbiAgICAgICAgICBpZiAoIXgucHJpc3RpbmUpIGZzLnByaXN0aW5lID0geC5wcmlzdGluZTtcbiAgICAgICAgICBpZiAoIXgudmFsaWQpIGZzLnZhbGlkID0geC52YWxpZDtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuZm9ybXNTdGF0ZS5zZXQoZnMpO1xuICAgICAgfSk7XG4gIH1cbiAgaGVscCA9IGlucHV0PHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQ+KCk7XG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCBubyBsb25nZXIgbmVlZGVkIHRvIGRldGVjdCB0aGUgY29ycmVjdCBzcGFjaW5nIGJldHdlZW4gaWNvbiBhbmQgdGV4dFxuICAgKi9cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlMiwgYWxpYXM6ICdpY29uQnRuJyB9KSBzZXQgX2ljb25CdG4odjogYm9vbGVhbikge1xuICAgIHRoaXMuaWNvbkJ0bi5zZXQodiB8fCBmYWxzZSk7XG4gIH1cbiAgQElucHV0KCdsb2FkaW5nJykgc2V0IF9sb2FkaW5nKHY6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmxvYWRpbmcuc2V0KHYpO1xuICB9XG4gIG1jbGFzcyA9IGlucHV0PHN0cmluZz4obnVsbCk7XG4gIHNob3dIZWxwSWNvbiA9IGlucHV0KHRydWUpO1xuICByaWdodEljb24gPSBzaWduYWw8SWNvbkRlZmluaXRpb24+KG51bGwpO1xuICBASW5wdXQoeyBhbGlhczogJ3JpZ2h0Q3VzdG9tSWNvbicgfSkgc2V0IF9yaWdodEN1c3RvbUljb24odjogc3RyaW5nKSB7XG4gICAgdGhpcy5yaWdodEN1c3RvbUljb24uc2V0KHYpO1xuICB9XG4gIHJpZ2h0Q3VzdG9tSWNvbiA9IHNpZ25hbDxzdHJpbmc+KG51bGwpO1xuICBsZWZ0SWNvbiA9IHNpZ25hbDxJY29uRGVmaW5pdGlvbj4obnVsbCk7XG4gIEBJbnB1dCh7IGFsaWFzOiAnbGVmdEN1c3RvbUljb24nIH0pIHNldCBfbGVmdEN1c3RvbUljb24odjogc3RyaW5nKSB7XG4gICAgdGhpcy5sZWZ0Q3VzdG9tSWNvbi5zZXQodik7XG4gIH1cbiAgbGVmdEN1c3RvbUljb24gPSBzaWduYWw8c3RyaW5nPihudWxsKTtcbiAgdGV4dCA9IGlucHV0PHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQ+KCk7XG4gIHZhbGlkID0gaW5wdXQodHJ1ZSk7XG4gIG1pbmkgPSBpbnB1dDxib29sZWFuPihmYWxzZSwgeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUyIGFzIHVuZGVmaW5lZCB9KTtcbiAgb25Gb3JtSW52YWxpZCA9IGlucHV0PGtleW9mIHR5cGVvZiBPbkZvcm1JbnZhbGlkPihPbkZvcm1JbnZhbGlkLmRpc2FibGUpO1xuICBAT3V0cHV0KCkgbWNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAVmlld0NoaWxkKCdpbm5lclRleHQnKSBpbm5lclRleHQ6IEVsZW1lbnRSZWY8SFRNTFNwYW5FbGVtZW50PjtcbiAgbG9ja2VkID0gc2lnbmFsKGZhTG9jayk7XG4gIHByb3RlY3RlZCBfdGV4dCA9IHNpZ25hbDxzdHJpbmcgfCBudWxsPih1bmRlZmluZWQpO1xuICBwcm90ZWN0ZWQgZGlzYWJsZWQgPSBzaWduYWw8Ym9vbGVhbiB8IG51bGw+KHVuZGVmaW5lZCk7XG4gIGNvbXB1dGVkVGV4dCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCBpbnB1dCA9IHRoaXMudGV4dCgpLFxuICAgICAgbG9jYWwgPSB0aGlzLl90ZXh0KCk7XG4gICAgcmV0dXJuIGlucHV0ID09IG51bGwgPyBsb2NhbCA6IGlucHV0O1xuICB9KTtcbiAgcHVibGljIGJ0blMgPSBpbmplY3QoQnRuU2VydmljZSk7XG4gIHB1YmxpYyBkZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuZGVzdHJveVJlZi5vbkRlc3Ryb3koKCkgPT4ge1xuICAgICAgdGhpcy5mb3JtU3ViPy51bnN1YnNjcmliZSgpO1xuICAgICAgdGhpcy5mb3Jtc1N1Yj8udW5zdWJzY3JpYmUoKTtcbiAgICB9KTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3Q2hlY2tlZCgpOiB2b2lkIHtcbiAgICAvL0NhbGxlZCBhZnRlciBldmVyeSBjaGVjayBvZiB0aGUgY29tcG9uZW50J3Mgdmlldy4gQXBwbGllcyB0byBjb21wb25lbnRzIG9ubHkuXG4gICAgLy9BZGQgJ2ltcGxlbWVudHMgQWZ0ZXJWaWV3Q2hlY2tlZCcgdG8gdGhlIGNsYXNzLlxuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLl9tY2xhc3MoKSkgdGhpcy5fdHlwZSA9IHRoaXMuYnRuUy5kZWZhdWx0VHlwZTtcbiAgfVxuXG4gIGNoZWNrRm9ybSgpIHtcbiAgICBpZiAodGhpcy5pc0Rpc2FibGVkKCkgJiYgdGhpcy5mb3JtKSB7XG4gICAgICB0aGlzLmZvcm0ubWFya0FsbEFzVG91Y2hlZCgpO1xuICAgICAgY29uc3QgZm9ybSA9IHRoaXMuZm9ybTtcbiAgICAgIGNvbnNvbGUubG9nKGZvcm0pO1xuICAgICAgaWYgKGZvcm0gaW5zdGFuY2VvZiBGb3JtR3JvdXApIHtcbiAgICAgICAgY29uc29sZS5sb2coXG4gICAgICAgICAgT2JqZWN0LmtleXMoZm9ybS5jb250cm9scylcbiAgICAgICAgICAgIC5maWx0ZXIoKHgpID0+ICFmb3JtLmNvbnRyb2xzW3hdLnZhbGlkKVxuICAgICAgICAgICAgLm1hcCgoeCkgPT4gZm9ybS5jb250cm9sc1t4XSksXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuICAgIGlmICh0aGlzLmlzRGlzYWJsZWQoKSAmJiB0aGlzLmZvcm1zKSB7XG4gICAgICB0aGlzLmZvcm1zLmZvckVhY2goKGZvcm0pID0+IGZvcm0ubWFya0FsbEFzVG91Y2hlZCgpKTtcbiAgICAgIC8vIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgIGNvbnNvbGUubG9nKHRoaXMuZm9ybXMpO1xuICAgIH1cbiAgfVxuXG4gIHNldExvYWRlcih2YWw6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmxvYWRpbmcuc2V0KHZhbCk7XG4gIH1cbiAgZ2V0IGV4dHJhY3RUZXh0KCkge1xuICAgIHJldHVybiBgQ2xpY2tlZCBvbiAke3RoaXMudGV4dCgpIHx8IHRoaXMuaW5uZXJUZXh0Py5uYXRpdmVFbGVtZW50Py5pbm5lckhUTUwgfHwgdGhpcy5pY29uVHlwZSB8fCAnYnV0dG9uJ30gJHtcbiAgICAgIHRoaXMubG9nZ2luZ1ZhbHVlID8gJ1xcblRyYWNrIHZhbHVlOiAnICsgdGhpcy5sb2dnaW5nVmFsdWUgOiAnJ1xuICAgIH1gO1xuICB9XG4gIGNsaWNrKCRldmVudCkge1xuICAgIC8vIGRlYnVnZ2VyXG4gICAgaWYgKHRoaXMuaXNEaXNhYmxlZCgpIHx8IHRoaXMubG9hZGluZygpKSByZXR1cm47XG4gICAgdGhpcy5tY2xpY2suZW1pdCgkZXZlbnQpO1xuICAgIHRoaXMuYnRuUy5sb2dDbGljayh0aGlzKTtcbiAgfVxuXG4gIGlzRGlzYWJsZWQgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgaWYgKHRoaXMuZGVidWcoKSkgZGVidWdnZXI7XG4gICAgY29uc3QgZGlzYWJsZWQgPSB0aGlzLmRpc2FibGVkKCksXG4gICAgICB2YWxpZCA9IHRoaXMudmFsaWQoKSxcbiAgICAgIG9uRm9ybUludmFsaWQgPSB0aGlzLm9uRm9ybUludmFsaWQoKSxcbiAgICAgIGZvcm0gPSB0aGlzLmZvcm1TdGF0ZSgpLFxuICAgICAgZm9ybXMgPSB0aGlzLmZvcm1zU3RhdGUoKTtcbiAgICByZXR1cm4gZGlzYWJsZWQgfHwgIXZhbGlkIHx8IChvbkZvcm1JbnZhbGlkID09IE9uRm9ybUludmFsaWQuZGlzYWJsZSAmJiAoZm9ybT8uaW52YWxpZCB8fCBmb3JtPy5wZW5kaW5nIHx8IGZvcm1zPy5wZW5kaW5nKSk7XG4gIH0pO1xuXG4gIGRpc2FibGUoKSB7XG4gICAgdGhpcy5kaXNhYmxlZC5zZXQodHJ1ZSk7XG4gIH1cblxuICBlbmFibGUoKSB7XG4gICAgdGhpcy5kaXNhYmxlZC5zZXQoZmFsc2UpO1xuICB9XG59XG5lbnVtIE9uRm9ybUludmFsaWQge1xuICBkaXNhYmxlID0gJ2Rpc2FibGUnLFxuICB3YXJuID0gJ3dhcm4nLFxufVxuaW50ZXJmYWNlIElGb3JtU3RhdGUge1xuICBwZW5kaW5nPzogYm9vbGVhbjtcbiAgZGlydHk/OiBib29sZWFuO1xuICBpbnZhbGlkPzogYm9vbGVhbjtcbiAgcHJpc3RpbmU/OiBib29sZWFuO1xuICB2YWxpZD86IGJvb2xlYW47XG4gIHN0YXR1cz86IEZvcm1Db250cm9sU3RhdHVzO1xufVxuIiwiPHNwYW5cbiAgY2xhc3M9XCJ7eyBjbGFzcygpIH19ICBkLWZsZXggIGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCJcbiAgW25nQ2xhc3NdPVwieyBkaXNhYmxlZDogaXNEaXNhYmxlZCgpLCBtaW5pOiBtaW5pKCkgfVwiXG4gIChjbGljayk9XCJjaGVja0Zvcm0oKVwiPlxuICBAaWYgKHNob3dIZWxwSWNvbigpICYmIGhlbHAoKSkge1xuICAgIDxpIGNsYXNzPVwiZmEgZmEtaW5mby1jaXJjbGUgbWUtMiB0ZXh0LXByaW1hcnlcIiBbbWF0VG9vbHRpcF09XCJoZWxwKCkgfCBhcHBUcmFuc2xhdGUgfCBhc3luY1wiPjwvaT5cbiAgfVxuICA8YnV0dG9uXG4gICAgdHlwZT1cInt7IGFjdGlvblR5cGUoKSB9fVwiXG4gICAgY2xhc3M9XCJ7eyBtY2xhc3MoKSB9fSB7eyBfbWNsYXNzKCkgfX0gZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBcIlxuICAgIFttYXRCYWRnZV09XCJiYWRnZSgpXCJcbiAgICBbbmdDbGFzc109XCJ7XG4gICAgICBjaGFuZ2Vjb2xvcjogdmFsaWQoKSxcbiAgICAgICdidG4tcmFpc2VkJzogYW5pbWF0ZSgpLFxuICAgICAgZGlzYWJsZWQ6IGlzRGlzYWJsZWQoKSxcbiAgICAgIGlzRGFuZ2VyOiBkYW5nZXIoKSxcbiAgICAgIGlzV2FybmluZzogd2FybmluZygpLFxuICAgICAgaW52YWxpZDogZm9ybUlzSW52YWxpZCgpLFxuICAgICAgJ2p1c3RpZnktY29udGVudC1jZW50ZXInOiBjZW50ZXJCdG4oKVxuICAgIH1cIlxuICAgIFtkaXNhYmxlZF09XCJpc0Rpc2FibGVkKClcIlxuICAgIChjbGljayk9XCJjbGljaygkZXZlbnQpXCJcbiAgICBbbWF0VG9vbHRpcF09XCJzaG93SGVscEljb24oKSA/IG51bGwgOiAoaGVscCgpIHwgYXBwVHJhbnNsYXRlIHwgYXN5bmMpXCI+XG4gICAgQGlmICghbG9hZGluZygpKSB7XG4gICAgICBAaWYgKGxlZnRJY29uKCkpIHtcbiAgICAgICAgPGZhLWljb24gW2ljb25dPVwiaXNEaXNhYmxlZCgpID8gbG9ja2VkKCkgOiBsZWZ0SWNvbigpXCI+PC9mYS1pY29uPlxuICAgICAgfSBAZWxzZSBpZiAobGVmdEN1c3RvbUljb24oKSkge1xuICAgICAgICA8aSBjbGFzcz1cInt7IGxlZnRDdXN0b21JY29uKCkgfX1cIj48L2k+XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGlmIChjb21wdXRlZFRleHQoKSkge1xuICAgICAgPHNwYW4gY2xhc3M9XCJcIiBbbmdDbGFzc109XCJ7ICdtcy0xJzogbGVmdEljb24oKSB8fCBsZWZ0Q3VzdG9tSWNvbigpLCAnbWUtMSc6IHJpZ2h0SWNvbigpIHx8IHJpZ2h0Q3VzdG9tSWNvbigpIH1cIj5cbiAgICAgICAge3sgY29tcHV0ZWRUZXh0KCkgfCBhcHBUcmFuc2xhdGUgfCBhc3luYyB9fVxuICAgICAgPC9zcGFuPlxuICAgIH0gQGVsc2Uge1xuICAgICAgPHNwYW5cbiAgICAgICAgY2xhc3M9XCIgXCJcbiAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICdtcy0xJzogaW5uZXJUZXh0LmlubmVyVGV4dCAmJiAobGVmdEljb24oKSB8fCBsZWZ0Q3VzdG9tSWNvbigpKSxcbiAgICAgICAgICAnbWUtMSc6IGlubmVyVGV4dC5pbm5lclRleHQgJiYgKHJpZ2h0SWNvbigpIHx8IHJpZ2h0Q3VzdG9tSWNvbigpKVxuICAgICAgICB9XCJcbiAgICAgICAgI2lubmVyVGV4dFxuICAgICAgICBhcHBUcmFuc2xhdG9yPlxuICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgICA8L3NwYW4+XG4gICAgfVxuXG4gICAgQGlmIChsb2FkaW5nKCkpIHtcbiAgICAgIDxzcGFuIGNsYXNzPVwiZmEgZmEtc3Bpbm5lciBtcy17eyBpY29uQnRuKCkgPyAnJyA6ICcyJyB9fSBmYS1zcGluXCI+PC9zcGFuPlxuICAgIH0gQGVsc2Uge1xuICAgICAgQGlmIChyaWdodEljb24oKSkge1xuICAgICAgICA8ZmEtaWNvbiBbaWNvbl09XCJpc0Rpc2FibGVkKCkgPyBsb2NrZWQoKSA6IHJpZ2h0SWNvbigpXCI+PC9mYS1pY29uPlxuICAgICAgfSBAZWxzZSBpZiAocmlnaHRDdXN0b21JY29uKCkpIHtcbiAgICAgICAgPGkgY2xhc3M9XCJ7eyByaWdodEN1c3RvbUljb24oKSB9fVwiPjwvaT5cbiAgICAgIH1cbiAgICB9XG4gIDwvYnV0dG9uPlxuPC9zcGFuPlxuIl19
|
|
@@ -2,6 +2,7 @@ import { Injectable } from '@angular/core';
|
|
|
2
2
|
import { faPaperPlane } from '@fortawesome/free-regular-svg-icons';
|
|
3
3
|
import { faArrowLeft, faArrowRight, faCheck, faClone, faCogs, faDownload, faEdit, faEye, faFile, faFileExport, faFileImport, faHistory, faListAlt, faLock, faMoneyCheck, faPen, faPenFancy, faPlus, faRecycle, faSave, faSearch, faSlidersH, faTrash, faUnlock, faFilter, faUpload, faUserShield, faHome, faUsers, faBellSlash, faInfoCircle, faTruck, faTag, faReceipt, faBank, faArrowsH, faPlay, faPercent, faCancel, faCircleExclamation, faHandshake, faTable, faSpoon, } from '@fortawesome/free-solid-svg-icons';
|
|
4
4
|
import { EUA } from '../../../Reusables/reusable-pages/user-activity/ua-extras/user-activity.model';
|
|
5
|
+
import { debounceTime, tap } from 'rxjs';
|
|
5
6
|
import * as i0 from "@angular/core";
|
|
6
7
|
import * as i1 from "../../../Reusables/reusable-pages/user-activity/ua-extras/user-activity.service";
|
|
7
8
|
export class BtnService {
|
|
@@ -204,6 +205,22 @@ export class BtnService {
|
|
|
204
205
|
return index[iconType];
|
|
205
206
|
};
|
|
206
207
|
this.defaultType = 'secondary';
|
|
208
|
+
this.setFormState = (form, btn) => {
|
|
209
|
+
btn.formState.set({
|
|
210
|
+
pending: form?.pending,
|
|
211
|
+
dirty: form?.dirty,
|
|
212
|
+
invalid: form?.invalid,
|
|
213
|
+
pristine: form?.pristine,
|
|
214
|
+
valid: form?.valid,
|
|
215
|
+
});
|
|
216
|
+
};
|
|
217
|
+
this.handleForm = (v, btn) => v.statusChanges
|
|
218
|
+
.pipe(tap((r) => {
|
|
219
|
+
this.setFormState(v, btn);
|
|
220
|
+
}), debounceTime(200))
|
|
221
|
+
.subscribe(() => {
|
|
222
|
+
this.setFormState(v, btn);
|
|
223
|
+
});
|
|
207
224
|
}
|
|
208
225
|
getType(v) {
|
|
209
226
|
return this.btnClassConfig[v] || { _type: 'primary' };
|
|
@@ -226,4 +243,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImpor
|
|
|
226
243
|
providedIn: 'root',
|
|
227
244
|
}]
|
|
228
245
|
}], ctorParameters: () => [{ type: i1.UserActivityService }] });
|
|
229
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnRuLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ldHMtZmUtbmctc2RrL3NyYy9saWIvU2hhcmVkL2NvbXBvbmVudHMvYnRuL2J0bi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ25FLE9BQU8sRUFDTCxXQUFXLEVBQ1gsWUFBWSxFQUNaLE9BQU8sRUFDUCxPQUFPLEVBQ1AsTUFBTSxFQUNOLFVBQVUsRUFDVixNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sRUFDTixZQUFZLEVBQ1osWUFBWSxFQUNaLFNBQVMsRUFDVCxTQUFTLEVBQ1QsTUFBTSxFQUNOLFlBQVksRUFDWixLQUFLLEVBQ0wsVUFBVSxFQUNWLE1BQU0sRUFDTixTQUFTLEVBQ1QsTUFBTSxFQUNOLFFBQVEsRUFDUixVQUFVLEVBQ1YsT0FBTyxFQUNQLFFBQVEsRUFDUixRQUFRLEVBQ1IsUUFBUSxFQUNSLFlBQVksRUFDWixNQUFNLEVBQ04sT0FBTyxFQUNQLFdBQVcsRUFDWCxZQUFZLEVBQ1osT0FBTyxFQUNQLEtBQUssRUFDTCxTQUFTLEVBQ1QsTUFBTSxFQUNOLFNBQVMsRUFDVCxNQUFNLEVBRU4sU0FBUyxFQUNULFFBQVEsRUFDUixtQkFBbUIsRUFDbkIsV0FBVyxFQUNYLE9BQU8sRUFDUCxPQUFPLEdBRVIsTUFBTSxtQ0FBbUMsQ0FBQztBQUkzQyxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sK0VBQStFLENBQUM7OztBQUtwRyxNQUFNLE9BQU8sVUFBVTtJQWtDckIsWUFBbUIsR0FBd0I7UUFBeEIsUUFBRyxHQUFILEdBQUcsQ0FBcUI7UUFqQzNDLG1CQUFjLEdBQWE7WUFDekIsQ0FBQyxTQUFTLENBQUMsRUFBRTtnQkFDWCxPQUFPLEVBQUUs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SSxFQUFFO29CQUNKLElBQUksRUFBRSxNQUFNO2lCQUNiO2dCQUNELE9BQU8sRUFBRTtvQkFDUCxJQUFJLEVBQUUsU0FBUztpQkFDaEI7Z0JBQ0QsS0FBSyxFQUFFO29CQUNMLElBQUksRUFBRSxXQUFXO2lCQUNsQjtnQkFDRCxLQUFLLEVBQUU7b0JBQ0wsSUFBSSxFQUFFLG1CQUFtQjtpQkFDMUI7Z0JBQ0QsS0FBSyxFQUFFO29CQUNMLElBQUksRUFBRSxPQUFPO2lCQUNkO2dCQUNELEtBQUssRUFBRTtvQkFDTCxJQUFJLEVBQUUsT0FBTztpQkFDZDthQUNGLENBQUM7WUFDRixPQUFPLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN6QixDQUFDLENBQUM7UUFLRixnQkFBVyxHQUFZLFdBQVcsQ0FBQztJQTlLVyxDQUFDO0lBMksvQyxPQUFPLENBQUMsQ0FBVTtRQUNoQixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLENBQUM7SUFDeEQsQ0FBQztJQUdELFFBQVEsQ0FBQyxHQUFpQjtRQUN4QixPQUFPLENBQUMsR0FBRyxDQUFDLGlCQUFpQixFQUFFLEdBQUcsQ0FBQyxXQUFXLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDckQsSUFBSSxHQUFHLENBQUMsY0FBYztZQUFFLE9BQU87UUFDL0IsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUM7WUFDWCxJQUFJLEVBQUUsR0FBRyxDQUFDLE9BQU87WUFDakIsbUJBQW1CLEVBQUUsR0FBRyxDQUFDLFdBQVc7U0FDckMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs4R0F6TlUsVUFBVTtrSEFBVixVQUFVLGNBRlQsTUFBTTs7MkZBRVAsVUFBVTtrQkFIdEIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBmYVBhcGVyUGxhbmUgfSBmcm9tICdAZm9ydGF3ZXNvbWUvZnJlZS1yZWd1bGFyLXN2Zy1pY29ucyc7XG5pbXBvcnQge1xuICBmYUFycm93TGVmdCxcbiAgZmFBcnJvd1JpZ2h0LFxuICBmYUNoZWNrLFxuICBmYUNsb25lLFxuICBmYUNvZ3MsXG4gIGZhRG93bmxvYWQsXG4gIGZhRWRpdCxcbiAgZmFFeWUsXG4gIGZhRmlsZSxcbiAgZmFGaWxlRXhwb3J0LFxuICBmYUZpbGVJbXBvcnQsXG4gIGZhSGlzdG9yeSxcbiAgZmFMaXN0QWx0LFxuICBmYUxvY2ssXG4gIGZhTW9uZXlDaGVjayxcbiAgZmFQZW4sXG4gIGZhUGVuRmFuY3ksXG4gIGZhUGx1cyxcbiAgZmFSZWN5Y2xlLFxuICBmYVNhdmUsXG4gIGZhU2VhcmNoLFxuICBmYVNsaWRlcnNILFxuICBmYVRyYXNoLFxuICBmYVVubG9jayxcbiAgZmFGaWx0ZXIsXG4gIGZhVXBsb2FkLFxuICBmYVVzZXJTaGllbGQsXG4gIGZhSG9tZSxcbiAgZmFVc2VycyxcbiAgZmFCZWxsU2xhc2gsXG4gIGZhSW5mb0NpcmNsZSxcbiAgZmFUcnVjayxcbiAgZmFUYWcsXG4gIGZhUmVjZWlwdCxcbiAgZmFCYW5rLFxuICBmYUFycm93c0gsXG4gIGZhUGxheSxcbiAgZmFMaW5rLFxuICBmYVBlcmNlbnQsXG4gIGZhQ2FuY2VsLFxuICBmYUNpcmNsZUV4Y2xhbWF0aW9uLFxuICBmYUhhbmRzaGFrZSxcbiAgZmFUYWJsZSxcbiAgZmFTcG9vbixcbiAgSWNvbkRlZmluaXRpb24sXG59IGZyb20gJ0Bmb3J0YXdlc29tZS9mcmVlLXNvbGlkLXN2Zy1pY29ucyc7XG5pbXBvcnQgeyBCdG5Db21wb25lbnQgfSBmcm9tICcuL2J0bi5jb21wb25lbnQnO1xuaW1wb3J0IHsgQnRuVHlwZSwgSWNvblR5cGUgfSBmcm9tICcuL2J0bi5tb2RlbCc7XG5pbXBvcnQgeyBVc2VyQWN0aXZpdHlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vUmV1c2FibGVzL3JldXNhYmxlLXBhZ2VzL3VzZXItYWN0aXZpdHkvdWEtZXh0cmFzL3VzZXItYWN0aXZpdHkuc2VydmljZSc7XG5pbXBvcnQgeyBFVUEgfSBmcm9tICcuLi8uLi8uLi9SZXVzYWJsZXMvcmV1c2FibGUtcGFnZXMvdXNlci1hY3Rpdml0eS91YS1leHRyYXMvdXNlci1hY3Rpdml0eS5tb2RlbCc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBCdG5TZXJ2aWNlIHtcbiAgYnRuQ2xhc3NDb25maWc6IEJ0bkNsYXNzID0ge1xuICAgIFsncHJpbWFyeSddOiB7XG4gICAgICBfbWNsYXNzOiAnYnRuIGJ0bi1wcmltYXJ5IGJ0bi1sZyB3LTEwMCcsXG4gICAgfSxcbiAgICBbJ3NlY29uZGFyeSddOiB7XG4gICAgICBfbWNsYXNzOiAnYnRuIGJ0bi1vdXRsaW5lLXByaW1hcnkgYnRuLWNsb25lIGJ0bi1sZyB3LTEwMCcsXG4gICAgfSxcbiAgICBbJ291dGxpbmUnXToge1xuICAgICAgX21jbGFzczogJ2J0biBidG4tb3V0bGluZS1wcmltYXJ5IGJ0bi1sZyB3LTEwMCcsXG4gICAgfSxcbiAgICBbJ2NsZWFyJ106IHtcbiAgICAgIF9tY2xhc3M6ICdidG4gdy0xMDAnLFxuICAgIH0sXG4gICAgWydkYXJrLW91dGxpbmUnXToge1xuICAgICAgX21jbGFzczogJ2J0biBidG4tb3V0bGluZS1kYXJrIGJ0bi1sZyB3LTEwMCcsXG4gICAgfSxcbiAgICBbJ291dGxpbmUtbm0nXToge1xuICAgICAgX21jbGFzczogJ2J0biBidG4tb3V0bGluZS1wcmltYXJ5IHctMTAwJyxcbiAgICB9LFxuICAgIFsnZGFyayddOiB7XG4gICAgICBfbWNsYXNzOiAnYnRuIGJ0bi1kYXJrIGJ0bi1sZyB3LTEwMCcsXG4gICAgfSxcbiAgICBbJ2RhbmdlciddOiB7XG4gICAgICBfbWNsYXNzOiAnYnRuIGJ0bi1kYW5nZXIgYnRuLWxnIHctMTAwJyxcbiAgICB9LFxuICAgIFsnZGFuZ2VyLW91dGxpbmUnXToge1xuICAgICAgX21jbGFzczogJ2J0biBidG4tb3V0bGluZS1kYW5nZXIgYnRuLWxnIHctMTAwJyxcbiAgICB9LFxuICAgIFsnY2xvc2UnXTogeyBfbWNsYXNzOiAnYnRuIGJ0bi1sZyAgdGV4dC1kYW5nZXInLCBfaWNvbjogJ2Nsb3NlJyB9LFxuICAgIFsnc3VjY2VzcyddOiB7XG4gICAgICBfbWNsYXNzOiAnYnRuIGJ0bi1sZyBidG4tc3VjY2VzcyB3LTEwMCcsXG4gICAgfSxcbiAgfTtcbiAgY29uc3RydWN0b3IocHVibGljIHVhUzogVXNlckFjdGl2aXR5U2VydmljZSkge31cbiAgZ2V0SWNvbiA9IChpY29uVHlwZTogSWNvblR5cGUpID0+IHtcbiAgICBjb25zdCBpbmRleDoge1xuICAgICAgW2sgaW4gSWNvblR5cGVdPzoge1xuICAgICAgICBpY29uPzogSWNvbkRlZmluaXRpb247XG4gICAgICAgIGljb25TdHJpbmc/OiBzdHJpbmc7XG4gICAgICAgIGljb25Qb3NpdGlvbj86ICdyaWdodCcgfCAnbGVmdCc7XG4gICAgICB9O1xuICAgIH0gPSB7XG4gICAgICBhZGQ6IHtcbiAgICAgICAgaWNvbjogZmFQbHVzLFxuICAgICAgfSxcbiAgICAgIGFkanVzdDoge1xuICAgICAgICBpY29uOiBmYVNsaWRlcnNILFxuICAgICAgfSxcbiAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgIGljb25TdHJpbmc6ICdmYXMgZmEtY2FsZW5kYXItYWx0JyxcbiAgICAgIH0sXG4gICAgICBjYXNoOiB7XG4gICAgICAgIGljb246IGZhTW9uZXlDaGVjayxcbiAgICAgIH0sXG4gICAgICBjYW5jZWw6IHtcbiAgICAgICAgaWNvbjogZmFDYW5jZWwsXG4gICAgICB9LFxuICAgICAgY2hlY2tlZDoge1xuICAgICAgICBpY29uOiBmYUNoZWNrLFxuICAgICAgfSxcbiAgICAgIGNoZWNrbGlzdDoge1xuICAgICAgICBpY29uOiBmYUxpc3RBbHQsXG4gICAgICB9LFxuICAgICAgY2xvbmU6IHtcbiAgICAgICAgaWNvbjogZmFDbG9uZSxcbiAgICAgIH0sXG4gICAgICBjbG9zZToge1xuICAgICAgICBpY29uU3RyaW5nOiAnZmEgZmEtY2xvc2UnLFxuICAgICAgfSxcbiAgICAgIGNvZ3M6IHtcbiAgICAgICAgaWNvbjogZmFDb2dzLFxuICAgICAgfSxcbiAgICAgIGRlbGV0ZToge1xuICAgICAgICBpY29uOiBmYVRyYXNoLFxuICAgICAgfSxcbiAgICAgIGRvd25sb2FkOiB7XG4gICAgICAgIGljb246IGZhRG93bmxvYWQsXG4gICAgICB9LFxuICAgICAgZHJvcGRvd246IHtcbiAgICAgICAgaWNvblBvc2l0aW9uOiAncmlnaHQnLFxuICAgICAgICBpY29uU3RyaW5nOiAnZmEgZmEtY2hldnJvbi1kb3duJyxcbiAgICAgIH0sXG4gICAgICBlZGl0OiB7XG4gICAgICAgIGljb246IGZhRWRpdCxcbiAgICAgIH0sXG4gICAgICBleHBvcnQ6IHtcbiAgICAgICAgaWNvbjogZmFGaWxlRXhwb3J0LFxuICAgICAgfSxcbiAgICAgIGZpbGU6IHtcbiAgICAgICAgaWNvbjogZmFGaWxlLFxuICAgICAgfSxcbiAgICAgIGZpbHRlcjoge1xuICAgICAgICBpY29uOiBmYUZpbHRlcixcbiAgICAgIH0sXG4gICAgICBnZW5lcmF0ZToge1xuICAgICAgICBpY29uOiBmYVBlbkZhbmN5LFxuICAgICAgfSxcbiAgICAgIGd1YXJkOiB7XG4gICAgICAgIGljb246IGZhVXNlclNoaWVsZCxcbiAgICAgIH0sXG4gICAgICBhY2Nlc3M6IHtcbiAgICAgICAgaWNvbjogZmFVc2VyU2hpZWxkLFxuICAgICAgfSxcbiAgICAgIGhpc3Rvcnk6IHtcbiAgICAgICAgaWNvbjogZmFIaXN0b3J5LFxuICAgICAgfSxcbiAgICAgIGhvbWU6IHtcbiAgICAgICAgaWNvbjogZmFIb21lLFxuICAgICAgfSxcbiAgICAgIGltcG9ydDoge1xuICAgICAgICBpY29uOiBmYUZpbGVJbXBvcnQsXG4gICAgICB9LFxuICAgICAgaW5mbzoge1xuICAgICAgICBpY29uOiBmYUluZm9DaXJjbGUsXG4gICAgICB9LFxuICAgICAgbGluazoge1xuICAgICAgICBpY29uU3RyaW5nOiAnZmFzIGZhLWNoYWluJyxcbiAgICAgIH0sXG4gICAgICBsb2NrOiB7XG4gICAgICAgIGljb246IGZhTG9jayxcbiAgICAgIH0sXG4gICAgICBuZXh0OiB7XG4gICAgICAgIGljb246IGZhQXJyb3dSaWdodCxcbiAgICAgICAgaWNvblBvc2l0aW9uOiAncmlnaHQnLFxuICAgICAgfSxcbiAgICAgIHBlbjoge1xuICAgICAgICBpY29uOiBmYVBlbixcbiAgICAgIH0sXG4gICAgICBwb3N0OiB7XG4gICAgICAgIGljb246IGZhUGFwZXJQbGFuZSxcbiAgICAgIH0sXG4gICAgICBwcmV2aW91czoge1xuICAgICAgICBpY29uOiBmYUFycm93TGVmdCxcbiAgICAgIH0sXG4gICAgICByZW5ldzoge1xuICAgICAgICBpY29uOiBmYVJlY3ljbGUsXG4gICAgICB9LFxuICAgICAgc2F2ZToge1xuICAgICAgICBpY29uOiBmYVNhdmUsXG4gICAgICB9LFxuICAgICAgc2VhcmNoOiB7XG4gICAgICAgIGljb246IGZhU2VhcmNoLFxuICAgICAgfSxcbiAgICAgIHNob3c6IHtcbiAgICAgICAgaWNvbjogZmFFeWUsXG4gICAgICB9LFxuICAgICAgdmlldzoge1xuICAgICAgICBpY29uOiBmYUV5ZSxcbiAgICAgIH0sXG4gICAgICBzbm9vemU6IHtcbiAgICAgICAgaWNvbjogZmFCZWxsU2xhc2gsXG4gICAgICB9LFxuICAgICAgdXBsb2FkOiB7XG4gICAgICAgIGljb246IGZhVXBsb2FkLFxuICAgICAgfSxcbiAgICAgIHVubG9jazoge1xuICAgICAgICBpY29uOiBmYVVubG9jayxcbiAgICAgIH0sXG4gICAgICB1c2Vyczoge1xuICAgICAgICBpY29uOiBmYVVzZXJzLFxuICAgICAgfSxcbiAgICAgIHJlY3ljbGU6IHtcbiAgICAgICAgaWNvbjogZmFSZWN5Y2xlLFxuICAgICAgfSxcbiAgICAgIHJlZnJlc2g6IHtcbiAgICAgICAgaWNvblN0cmluZzogJ2ZhIGZhLXJlZnJlc2gnLFxuICAgICAgfSxcbiAgICAgIHRydWNrOiB7XG4gICAgICAgIGljb246IGZhVHJ1Y2ssXG4gICAgICB9LFxuICAgICAgdGFnOiB7XG4gICAgICAgIGljb246IGZhVGFnLFxuICAgICAgfSxcbiAgICAgIHJlY2VpcHQ6IHtcbiAgICAgICAgaWNvbjogZmFSZWNlaXB0LFxuICAgICAgfSxcbiAgICAgIGJhbms6IHtcbiAgICAgICAgaWNvbjogZmFCYW5rLFxuICAgICAgfSxcbiAgICAgIGFycm93aDoge1xuICAgICAgICBpY29uOiBmYUFycm93c0gsXG4gICAgICB9LFxuICAgICAgcGxheToge1xuICAgICAgICBpY29uOiBmYVBsYXksXG4gICAgICB9LFxuICAgICAgcGVyY2VudDoge1xuICAgICAgICBpY29uOiBmYVBlcmNlbnQsXG4gICAgICB9LFxuICAgICAgc2hha2U6IHtcbiAgICAgICAgaWNvbjogZmFIYW5kc2hha2UsXG4gICAgICB9LFxuICAgICAgZXJyb3I6IHtcbiAgICAgICAgaWNvbjogZmFDaXJjbGVFeGNsYW1hdGlvbixcbiAgICAgIH0sXG4gICAgICB0YWJsZToge1xuICAgICAgICBpY29uOiBmYVRhYmxlLFxuICAgICAgfSxcbiAgICAgIHNwb29uOiB7XG4gICAgICAgIGljb246IGZhU3Bvb24sXG4gICAgICB9LFxuICAgIH07XG4gICAgcmV0dXJuIGluZGV4W2ljb25UeXBlXTtcbiAgfTtcblxuICBnZXRUeXBlKHY6IEJ0blR5cGUpIHtcbiAgICByZXR1cm4gdGhpcy5idG5DbGFzc0NvbmZpZ1t2XSB8fCB7IF90eXBlOiAncHJpbWFyeScgfTtcbiAgfVxuICBkZWZhdWx0VHlwZTogQnRuVHlwZSA9ICdzZWNvbmRhcnknO1xuXG4gIGxvZ0NsaWNrKGJ0bjogQnRuQ29tcG9uZW50KSB7XG4gICAgY29uc29sZS5sb2coJ2J0bi5leHRyYWN0VGV4dCcsIGJ0bi5leHRyYWN0VGV4dCwgYnRuKTtcbiAgICBpZiAoYnRuLmV4Y2x1ZGVMb2dnaW5nKSByZXR1cm47XG4gICAgdGhpcy51YVMuYWRkKHtcbiAgICAgIGNvZGU6IEVVQS5jbGlja2VkLFxuICAgICAgYWN0aXZpdHlEZXNjcmlwdGlvbjogYnRuLmV4dHJhY3RUZXh0LFxuICAgIH0pO1xuICB9XG59XG5cbnR5cGUgQnRuQ2xhc3MgPSB7IFtrIGluIEJ0blR5cGVdOiB7IF9tY2xhc3M/OiBzdHJpbmc7IF9pY29uPzogSWNvblR5cGU7IF90eXBlPzogQnRuVHlwZSB9IH07XG4iXX0=
|
|
246
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnRuLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ldHMtZmUtbmctc2RrL3NyYy9saWIvU2hhcmVkL2NvbXBvbmVudHMvYnRuL2J0bi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ25FLE9BQU8sRUFDTCxXQUFXLEVBQ1gsWUFBWSxFQUNaLE9BQU8sRUFDUCxPQUFPLEVBQ1AsTUFBTSxFQUNOLFVBQVUsRUFDVixNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sRUFDTixZQUFZLEVBQ1osWUFBWSxFQUNaLFNBQVMsRUFDVCxTQUFTLEVBQ1QsTUFBTSxFQUNOLFlBQVksRUFDWixLQUFLLEVBQ0wsVUFBVSxFQUNWLE1BQU0sRUFDTixTQUFTLEVBQ1QsTUFBTSxFQUNOLFFBQVEsRUFDUixVQUFVLEVBQ1YsT0FBTyxFQUNQLFFBQVEsRUFDUixRQUFRLEVBQ1IsUUFBUSxFQUNSLFlBQVksRUFDWixNQUFNLEVBQ04sT0FBTyxFQUNQLFdBQVcsRUFDWCxZQUFZLEVBQ1osT0FBTyxFQUNQLEtBQUssRUFDTCxTQUFTLEVBQ1QsTUFBTSxFQUNOLFNBQVMsRUFDVCxNQUFNLEVBRU4sU0FBUyxFQUNULFFBQVEsRUFDUixtQkFBbUIsRUFDbkIsV0FBVyxFQUNYLE9BQU8sRUFDUCxPQUFPLEdBRVIsTUFBTSxtQ0FBbUMsQ0FBQztBQUkzQyxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sK0VBQStFLENBQUM7QUFFcEcsT0FBTyxFQUFFLFlBQVksRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7OztBQUt6QyxNQUFNLE9BQU8sVUFBVTtJQWtDckIsWUFBbUIsR0FBd0I7UUFBeEIsUUFBRyxHQUFILEdBQUcsQ0FBcUI7UUFqQzNDLG1C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QUU7WUFDZCxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUM1QixDQUFDLENBQUMsQ0FBQztJQTdNdUMsQ0FBQztJQTJLL0MsT0FBTyxDQUFDLENBQVU7UUFDaEIsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxDQUFDO0lBQ3hELENBQUM7SUFHRCxRQUFRLENBQUMsR0FBaUI7UUFDeEIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsRUFBRSxHQUFHLENBQUMsV0FBVyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ3JELElBQUksR0FBRyxDQUFDLGNBQWM7WUFBRSxPQUFPO1FBQy9CLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDO1lBQ1gsSUFBSSxFQUFFLEdBQUcsQ0FBQyxPQUFPO1lBQ2pCLG1CQUFtQixFQUFFLEdBQUcsQ0FBQyxXQUFXO1NBQ3JDLENBQUMsQ0FBQztJQUNMLENBQUM7OEdBek5VLFVBQVU7a0hBQVYsVUFBVSxjQUZULE1BQU07OzJGQUVQLFVBQVU7a0JBSHRCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZmFQYXBlclBsYW5lIH0gZnJvbSAnQGZvcnRhd2Vzb21lL2ZyZWUtcmVndWxhci1zdmctaWNvbnMnO1xuaW1wb3J0IHtcbiAgZmFBcnJvd0xlZnQsXG4gIGZhQXJyb3dSaWdodCxcbiAgZmFDaGVjayxcbiAgZmFDbG9uZSxcbiAgZmFDb2dzLFxuICBmYURvd25sb2FkLFxuICBmYUVkaXQsXG4gIGZhRXllLFxuICBmYUZpbGUsXG4gIGZhRmlsZUV4cG9ydCxcbiAgZmFGaWxlSW1wb3J0LFxuICBmYUhpc3RvcnksXG4gIGZhTGlzdEFsdCxcbiAgZmFMb2NrLFxuICBmYU1vbmV5Q2hlY2ssXG4gIGZhUGVuLFxuICBmYVBlbkZhbmN5LFxuICBmYVBsdXMsXG4gIGZhUmVjeWNsZSxcbiAgZmFTYXZlLFxuICBmYVNlYXJjaCxcbiAgZmFTbGlkZXJzSCxcbiAgZmFUcmFzaCxcbiAgZmFVbmxvY2ssXG4gIGZhRmlsdGVyLFxuICBmYVVwbG9hZCxcbiAgZmFVc2VyU2hpZWxkLFxuICBmYUhvbWUsXG4gIGZhVXNlcnMsXG4gIGZhQmVsbFNsYXNoLFxuICBmYUluZm9DaXJjbGUsXG4gIGZhVHJ1Y2ssXG4gIGZhVGFnLFxuICBmYVJlY2VpcHQsXG4gIGZhQmFuayxcbiAgZmFBcnJvd3NILFxuICBmYVBsYXksXG4gIGZhTGluayxcbiAgZmFQZXJjZW50LFxuICBmYUNhbmNlbCxcbiAgZmFDaXJjbGVFeGNsYW1hdGlvbixcbiAgZmFIYW5kc2hha2UsXG4gIGZhVGFibGUsXG4gIGZhU3Bvb24sXG4gIEljb25EZWZpbml0aW9uLFxufSBmcm9tICdAZm9ydGF3ZXNvbWUvZnJlZS1zb2xpZC1zdmctaWNvbnMnO1xuaW1wb3J0IHsgQnRuQ29tcG9uZW50IH0gZnJvbSAnLi9idG4uY29tcG9uZW50JztcbmltcG9ydCB7IEJ0blR5cGUsIEljb25UeXBlIH0gZnJvbSAnLi9idG4ubW9kZWwnO1xuaW1wb3J0IHsgVXNlckFjdGl2aXR5U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL1JldXNhYmxlcy9yZXVzYWJsZS1wYWdlcy91c2VyLWFjdGl2aXR5L3VhLWV4dHJhcy91c2VyLWFjdGl2aXR5LnNlcnZpY2UnO1xuaW1wb3J0IHsgRVVBIH0gZnJvbSAnLi4vLi4vLi4vUmV1c2FibGVzL3JldXNhYmxlLXBhZ2VzL3VzZXItYWN0aXZpdHkvdWEtZXh0cmFzL3VzZXItYWN0aXZpdHkubW9kZWwnO1xuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIHRhcCB9IGZyb20gJ3J4anMnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgQnRuU2VydmljZSB7XG4gIGJ0bkNsYXNzQ29uZmlnOiBCdG5DbGFzcyA9IHtcbiAgICBbJ3ByaW1hcnknXToge1xuICAgICAgX21jbGFzczogJ2J0biBidG4tcHJpbWFyeSBidG4tbGcgdy0xMDAnLFxuICAgIH0sXG4gICAgWydzZWNvbmRhcnknXToge1xuICAgICAgX21jbGFzczogJ2J0biBidG4tb3V0bGluZS1wcmltYXJ5IGJ0bi1jbG9uZSBidG4tbGcgdy0xMDAnLFxuICAgIH0sXG4gICAgWydvdXRsaW5lJ106IHtcbiAgICAgIF9tY2xhc3M6ICdidG4gYnRuLW91dGxpbmUtcHJpbWFyeSBidG4tbGcgdy0xMDAnLFxuICAgIH0sXG4gICAgWydjbGVhciddOiB7XG4gICAgICBfbWNsYXNzOiAnYnRuIHctMTAwJyxcbiAgICB9LFxuICAgIFsnZGFyay1vdXRsaW5lJ106IHtcbiAgICAgIF9tY2xhc3M6ICdidG4gYnRuLW91dGxpbmUtZGFyayBidG4tbGcgdy0xMDAnLFxuICAgIH0sXG4gICAgWydvdXRsaW5lLW5tJ106IHtcbiAgICAgIF9tY2xhc3M6ICdidG4gYnRuLW91dGxpbmUtcHJpbWFyeSB3LTEwMCcsXG4gICAgfSxcbiAgICBbJ2RhcmsnXToge1xuICAgICAgX21jbGFzczogJ2J0biBidG4tZGFyayBidG4tbGcgdy0xMDAnLFxuICAgIH0sXG4gICAgWydkYW5nZXInXToge1xuICAgICAgX21jbGFzczogJ2J0biBidG4tZGFuZ2VyIGJ0bi1sZyB3LTEwMCcsXG4gICAgfSxcbiAgICBbJ2Rhbmdlci1vdXRsaW5lJ106IHtcbiAgICAgIF9tY2xhc3M6ICdidG4gYnRuLW91dGxpbmUtZGFuZ2VyIGJ0bi1sZyB3LTEwMCcsXG4gICAgfSxcbiAgICBbJ2Nsb3NlJ106IHsgX21jbGFzczogJ2J0biBidG4tbGcgIHRleHQtZGFuZ2VyJywgX2ljb246ICdjbG9zZScgfSxcbiAgICBbJ3N1Y2Nlc3MnXToge1xuICAgICAgX21jbGFzczogJ2J0biBidG4tbGcgYnRuLXN1Y2Nlc3Mgdy0xMDAnLFxuICAgIH0sXG4gIH07XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyB1YVM6IFVzZXJBY3Rpdml0eVNlcnZpY2UpIHt9XG4gIGdldEljb24gPSAoaWNvblR5cGU6IEljb25UeXBlKSA9PiB7XG4gICAgY29uc3QgaW5kZXg6IHtcbiAgICAgIFtrIGluIEljb25UeXBlXT86IHtcbiAgICAgICAgaWNvbj86IEljb25EZWZpbml0aW9uO1xuICAgICAgICBpY29uU3RyaW5nPzogc3RyaW5nO1xuICAgICAgICBpY29uUG9zaXRpb24/OiAncmlnaHQnIHwgJ2xlZnQnO1xuICAgICAgfTtcbiAgICB9ID0ge1xuICAgICAgYWRkOiB7XG4gICAgICAgIGljb246IGZhUGx1cyxcbiAgICAgIH0sXG4gICAgICBhZGp1c3Q6IHtcbiAgICAgICAgaWNvbjogZmFTbGlkZXJzSCxcbiAgICAgIH0sXG4gICAgICBjYWxlbmRhcjoge1xuICAgICAgICBpY29uU3RyaW5nOiAnZmFzIGZhLWNhbGVuZGFyLWFsdCcsXG4gICAgICB9LFxuICAgICAgY2FzaDoge1xuICAgICAgICBpY29uOiBmYU1vbmV5Q2hlY2ssXG4gICAgICB9LFxuICAgICAgY2FuY2VsOiB7XG4gICAgICAgIGljb246IGZhQ2FuY2VsLFxuICAgICAgfSxcbiAgICAgIGNoZWNrZWQ6IHtcbiAgICAgICAgaWNvbjogZmFDaGVjayxcbiAgICAgIH0sXG4gICAgICBjaGVja2xpc3Q6IHtcbiAgICAgICAgaWNvbjogZmFMaXN0QWx0LFxuICAgICAgfSxcbiAgICAgIGNsb25lOiB7XG4gICAgICAgIGljb246IGZhQ2xvbmUsXG4gICAgICB9LFxuICAgICAgY2xvc2U6IHtcbiAgICAgICAgaWNvblN0cmluZzogJ2ZhIGZhLWNsb3NlJyxcbiAgICAgIH0sXG4gICAgICBjb2dzOiB7XG4gICAgICAgIGljb246IGZhQ29ncyxcbiAgICAgIH0sXG4gICAgICBkZWxldGU6IHtcbiAgICAgICAgaWNvbjogZmFUcmFzaCxcbiAgICAgIH0sXG4gICAgICBkb3dubG9hZDoge1xuICAgICAgICBpY29uOiBmYURvd25sb2FkLFxuICAgICAgfSxcbiAgICAgIGRyb3Bkb3duOiB7XG4gICAgICAgIGljb25Qb3NpdGlvbjogJ3JpZ2h0JyxcbiAgICAgICAgaWNvblN0cmluZzogJ2ZhIGZhLWNoZXZyb24tZG93bicsXG4gICAgICB9LFxuICAgICAgZWRpdDoge1xuICAgICAgICBpY29uOiBmYUVkaXQsXG4gICAgICB9LFxuICAgICAgZXhwb3J0OiB7XG4gICAgICAgIGljb246IGZhRmlsZUV4cG9ydCxcbiAgICAgIH0sXG4gICAgICBmaWxlOiB7XG4gICAgICAgIGljb246IGZhRmlsZSxcbiAgICAgIH0sXG4gICAgICBmaWx0ZXI6IHtcbiAgICAgICAgaWNvbjogZmFGaWx0ZXIsXG4gICAgICB9LFxuICAgICAgZ2VuZXJhdGU6IHtcbiAgICAgICAgaWNvbjogZmFQZW5GYW5jeSxcbiAgICAgIH0sXG4gICAgICBndWFyZDoge1xuICAgICAgICBpY29uOiBmYVVzZXJTaGllbGQsXG4gICAgICB9LFxuICAgICAgYWNjZXNzOiB7XG4gICAgICAgIGljb246IGZhVXNlclNoaWVsZCxcbiAgICAgIH0sXG4gICAgICBoaXN0b3J5OiB7XG4gICAgICAgIGljb246IGZhSGlzdG9yeSxcbiAgICAgIH0sXG4gICAgICBob21lOiB7XG4gICAgICAgIGljb246IGZhSG9tZSxcbiAgICAgIH0sXG4gICAgICBpbXBvcnQ6IHtcbiAgICAgICAgaWNvbjogZmFGaWxlSW1wb3J0LFxuICAgICAgfSxcbiAgICAgIGluZm86IHtcbiAgICAgICAgaWNvbjogZmFJbmZvQ2lyY2xlLFxuICAgICAgfSxcbiAgICAgIGxpbms6IHtcbiAgICAgICAgaWNvblN0cmluZzogJ2ZhcyBmYS1jaGFpbicsXG4gICAgICB9LFxuICAgICAgbG9jazoge1xuICAgICAgICBpY29uOiBmYUxvY2ssXG4gICAgICB9LFxuICAgICAgbmV4dDoge1xuICAgICAgICBpY29uOiBmYUFycm93UmlnaHQsXG4gICAgICAgIGljb25Qb3NpdGlvbjogJ3JpZ2h0JyxcbiAgICAgIH0sXG4gICAgICBwZW46IHtcbiAgICAgICAgaWNvbjogZmFQZW4sXG4gICAgICB9LFxuICAgICAgcG9zdDoge1xuICAgICAgICBpY29uOiBmYVBhcGVyUGxhbmUsXG4gICAgICB9LFxuICAgICAgcHJldmlvdXM6IHtcbiAgICAgICAgaWNvbjogZmFBcnJvd0xlZnQsXG4gICAgICB9LFxuICAgICAgcmVuZXc6IHtcbiAgICAgICAgaWNvbjogZmFSZWN5Y2xlLFxuICAgICAgfSxcbiAgICAgIHNhdmU6IHtcbiAgICAgICAgaWNvbjogZmFTYXZlLFxuICAgICAgfSxcbiAgICAgIHNlYXJjaDoge1xuICAgICAgICBpY29uOiBmYVNlYXJjaCxcbiAgICAgIH0sXG4gICAgICBzaG93OiB7XG4gICAgICAgIGljb246IGZhRXllLFxuICAgICAgfSxcbiAgICAgIHZpZXc6IHtcbiAgICAgICAgaWNvbjogZmFFeWUsXG4gICAgICB9LFxuICAgICAgc25vb3plOiB7XG4gICAgICAgIGljb246IGZhQmVsbFNsYXNoLFxuICAgICAgfSxcbiAgICAgIHVwbG9hZDoge1xuICAgICAgICBpY29uOiBmYVVwbG9hZCxcbiAgICAgIH0sXG4gICAgICB1bmxvY2s6IHtcbiAgICAgICAgaWNvbjogZmFVbmxvY2ssXG4gICAgICB9LFxuICAgICAgdXNlcnM6IHtcbiAgICAgICAgaWNvbjogZmFVc2VycyxcbiAgICAgIH0sXG4gICAgICByZWN5Y2xlOiB7XG4gICAgICAgIGljb246IGZhUmVjeWNsZSxcbiAgICAgIH0sXG4gICAgICByZWZyZXNoOiB7XG4gICAgICAgIGljb25TdHJpbmc6ICdmYSBmYS1yZWZyZXNoJyxcbiAgICAgIH0sXG4gICAgICB0cnVjazoge1xuICAgICAgICBpY29uOiBmYVRydWNrLFxuICAgICAgfSxcbiAgICAgIHRhZzoge1xuICAgICAgICBpY29uOiBmYVRhZyxcbiAgICAgIH0sXG4gICAgICByZWNlaXB0OiB7XG4gICAgICAgIGljb246IGZhUmVjZWlwdCxcbiAgICAgIH0sXG4gICAgICBiYW5rOiB7XG4gICAgICAgIGljb246IGZhQmFuayxcbiAgICAgIH0sXG4gICAgICBhcnJvd2g6IHtcbiAgICAgICAgaWNvbjogZmFBcnJvd3NILFxuICAgICAgfSxcbiAgICAgIHBsYXk6IHtcbiAgICAgICAgaWNvbjogZmFQbGF5LFxuICAgICAgfSxcbiAgICAgIHBlcmNlbnQ6IHtcbiAgICAgICAgaWNvbjogZmFQZXJjZW50LFxuICAgICAgfSxcbiAgICAgIHNoYWtlOiB7XG4gICAgICAgIGljb246IGZhSGFuZHNoYWtlLFxuICAgICAgfSxcbiAgICAgIGVycm9yOiB7XG4gICAgICAgIGljb246IGZhQ2lyY2xlRXhjbGFtYXRpb24sXG4gICAgICB9LFxuICAgICAgdGFibGU6IHtcbiAgICAgICAgaWNvbjogZmFUYWJsZSxcbiAgICAgIH0sXG4gICAgICBzcG9vbjoge1xuICAgICAgICBpY29uOiBmYVNwb29uLFxuICAgICAgfSxcbiAgICB9O1xuICAgIHJldHVybiBpbmRleFtpY29uVHlwZV07XG4gIH07XG5cbiAgZ2V0VHlwZSh2OiBCdG5UeXBlKSB7XG4gICAgcmV0dXJuIHRoaXMuYnRuQ2xhc3NDb25maWdbdl0gfHwgeyBfdHlwZTogJ3ByaW1hcnknIH07XG4gIH1cbiAgZGVmYXVsdFR5cGU6IEJ0blR5cGUgPSAnc2Vjb25kYXJ5JztcblxuICBsb2dDbGljayhidG46IEJ0bkNvbXBvbmVudCkge1xuICAgIGNvbnNvbGUubG9nKCdidG4uZXh0cmFjdFRleHQnLCBidG4uZXh0cmFjdFRleHQsIGJ0bik7XG4gICAgaWYgKGJ0bi5leGNsdWRlTG9nZ2luZykgcmV0dXJuO1xuICAgIHRoaXMudWFTLmFkZCh7XG4gICAgICBjb2RlOiBFVUEuY2xpY2tlZCxcbiAgICAgIGFjdGl2aXR5RGVzY3JpcHRpb246IGJ0bi5leHRyYWN0VGV4dCxcbiAgICB9KTtcbiAgfVxuXG4gIHNldEZvcm1TdGF0ZSA9IChmb3JtOiBBYnN0cmFjdENvbnRyb2wsIGJ0bjogQnRuQ29tcG9uZW50KSA9PiB7XG4gICAgYnRuLmZvcm1TdGF0ZS5zZXQoe1xuICAgICAgcGVuZGluZzogZm9ybT8ucGVuZGluZyxcbiAgICAgIGRpcnR5OiBmb3JtPy5kaXJ0eSxcbiAgICAgIGludmFsaWQ6IGZvcm0/LmludmFsaWQsXG4gICAgICBwcmlzdGluZTogZm9ybT8ucHJpc3RpbmUsXG4gICAgICB2YWxpZDogZm9ybT8udmFsaWQsXG4gICAgfSk7XG4gIH07XG5cbiAgaGFuZGxlRm9ybSA9ICh2OiBBYnN0cmFjdENvbnRyb2wsIGJ0bjogQnRuQ29tcG9uZW50KSA9PlxuICAgIHYuc3RhdHVzQ2hhbmdlc1xuICAgICAgLnBpcGUoXG4gICAgICAgIHRhcCgocikgPT4ge1xuICAgICAgICAgIHRoaXMuc2V0Rm9ybVN0YXRlKHYsIGJ0bik7XG4gICAgICAgIH0pLFxuICAgICAgICBkZWJvdW5jZVRpbWUoMjAwKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLnNldEZvcm1TdGF0ZSh2LCBidG4pO1xuICAgICAgfSk7XG59XG5cbnR5cGUgQnRuQ2xhc3MgPSB7IFtrIGluIEJ0blR5cGVdOiB7IF9tY2xhc3M/OiBzdHJpbmc7IF9pY29uPzogSWNvblR5cGU7IF90eXBlPzogQnRuVHlwZSB9IH07XG4iXX0=
|