ets-fe-ng-sdk 17.0.203 → 17.0.205
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.
|
@@ -128,18 +128,23 @@ export class BtnComponent {
|
|
|
128
128
|
debugger;
|
|
129
129
|
this.form = v;
|
|
130
130
|
if (v) {
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
.
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
131
|
+
this.checkFormState.set(++this.count);
|
|
132
|
+
const sub = merge(v.valueChanges.pipe(debounceTime(200)), v.statusChanges)
|
|
133
|
+
.pipe(tap((r) => this.checkFormState.set(++this.count)), debounceTime(1000))
|
|
134
|
+
.subscribe(() => {
|
|
135
|
+
this.checkFormState.set(++this.count);
|
|
136
|
+
if (this.debug()) {
|
|
137
|
+
const d = this.checkFormState();
|
|
138
|
+
debugger;
|
|
139
|
+
}
|
|
140
|
+
});
|
|
141
|
+
this.destroyRef.onDestroy(() => {
|
|
142
|
+
if (this.debug()) {
|
|
143
|
+
debugger;
|
|
144
|
+
}
|
|
145
|
+
sub?.unsubscribe();
|
|
146
|
+
});
|
|
141
147
|
}
|
|
142
|
-
this.checkFormState.set(true);
|
|
143
148
|
}
|
|
144
149
|
set _forms(v) {
|
|
145
150
|
this.forms = v;
|
|
@@ -197,7 +202,10 @@ export class BtnComponent {
|
|
|
197
202
|
this.badge = input(null);
|
|
198
203
|
this.class = input();
|
|
199
204
|
this.formState = computed(() => {
|
|
200
|
-
this.checkFormState();
|
|
205
|
+
const d = this.checkFormState();
|
|
206
|
+
if (this.debug()) {
|
|
207
|
+
debugger;
|
|
208
|
+
}
|
|
201
209
|
return {
|
|
202
210
|
pending: this.form?.pending,
|
|
203
211
|
dirty: this.form?.dirty,
|
|
@@ -206,7 +214,8 @@ export class BtnComponent {
|
|
|
206
214
|
valid: this.form?.valid,
|
|
207
215
|
};
|
|
208
216
|
});
|
|
209
|
-
this.
|
|
217
|
+
this.count = 0;
|
|
218
|
+
this.checkFormState = signal(this.count);
|
|
210
219
|
this.formsState = signal(undefined);
|
|
211
220
|
this.help = input();
|
|
212
221
|
this.mclass = input(null);
|
|
@@ -340,4 +349,4 @@ var OnFormInvalid;
|
|
|
340
349
|
OnFormInvalid["disable"] = "disable";
|
|
341
350
|
OnFormInvalid["warn"] = "warn";
|
|
342
351
|
})(OnFormInvalid || (OnFormInvalid = {}));
|
|
343
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnRuLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V0cy1mZS1uZy1zZGsvc3JjL2xpYi9TaGFyZWQvY29tcG9uZW50cy9idG4vYnRuLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V0cy1mZS1uZy1zZGsvc3JjL2xpYi9TaGFyZWQvY29tcG9uZW50cy9idG4vYnRuLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxTQUFTLEVBQ1QsVUFBVSxFQUVWLFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUNOLFNBQVMsRUFDVCxnQkFBZ0IsRUFDaEIsUUFBUSxFQUNSLE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBZSxTQUFTLEVBQThCLE1BQU0sZ0JBQWdCLENBQUM7QUFDcEYsT0FBTyxFQUFrQixNQUFNLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUMzRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUM1RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNyRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDN0QsT0FBTyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFHM0QsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNwQyxPQUFPLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQVMsTUFBTSxNQUFNLENBQUM7Ozs7O0FBRXZELFNBQVMsaUJBQWlCLENBQUMsS0FBbUM7SUFDNUQsT0FBTyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUNqQyxDQUFDO0FBU0QsTUFBTSxPQUFPLFlBQVk7SUEwQnZCLElBQW1CLEtBQUssQ0FBQyxDQUFXO1FBQ2xDLElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDO1FBQ2xCLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxHQUFHO1lBQUUsT0FBTztRQUNqQixJQUFJLEdBQUcsQ0FBQyxZQUFZLElBQUksT0FBTyxFQUFFO1lBQy9CLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUM3QixJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUM7U0FDMUM7YUFBTTtZQUNMLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUM1QixJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUM7U0FDekM7SUFDSCxDQUFDO0lBQ0QsSUFBd0IsVUFBVSxDQUFDLENBQVc7UUFDNUMsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUM7UUFDbEIsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDakMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzdCLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBQ0QsSUFBdUIsU0FBUyxDQUFDLENBQVc7UUFDMUMsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUM7UUFDbEIsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDakMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzVCLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQsSUFBbUIsS0FBSyxDQUFDLENBQVU7UUFDakMsTUFBTSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdkQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLE9BQU8sSUFBSSxNQUFNLENBQUMsQ0FBQztRQUNuRCxJQUFJLEtBQUs7WUFBRSxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUM5QixJQUFJLEtBQUs7WUFBRSxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztJQUNoQyxDQUFDO0lBRUQsSUFBb0IsTUFBTSxDQUFDLENBQVc7UUFDcEMsUUFBUSxDQUFDLEVBQUU7WUFDVCxLQUFLLEtBQUs7Z0JBQ1IsSUFBSSxDQUFDLEtBQUssR0FBRyxTQUFTLENBQUM7Z0JBQ3ZCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO2dCQUNuQixJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDdkIsTUFBTTtZQUNSLEtBQUssT0FBTztnQkFDVixJQUFJLENBQUMsS0FBSyxHQUFHLFdBQVcsQ0FBQztnQkFDekIsSUFBSSxDQUFDLEtBQUssR0FBRyxPQUFPLENBQUM7Z0JBQ3JCLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUN4QixNQUFNO1lBQ1IsS0FBSyxRQUFRO2dCQUNYLElBQUksQ0FBQyxLQUFLLEdBQUcsU0FBUyxDQUFDO2dCQUN2QixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztnQkFDbkIsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQ3pCLE1BQU07WUFDUixLQUFLLE9BQU87Z0JBQ1YsSUFBSSxDQUFDLEtBQUssR0FBRyxnQkFBZ0IsQ0FBQztnQkFDOUIsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxVQUFVLENBQUM7Z0JBQ3hELElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUN2QixNQUFNO1lBQ1IsS0FBSyxRQUFRO2dCQUNYLElBQUksQ0FBQyxLQUFLLEdBQUcsZ0JBQWdCLENBQUM7Z0JBQzlCLElBQUksQ0FBQyxLQUFLLEdBQUcsUUFBUSxDQUFDO2dCQUN0QixJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDdkIsTUFBTTtZQUNSLEtBQUssVUFBVTtnQkFDYixJQUFJLENBQUMsS0FBSyxHQUFHLFdBQVcsQ0FBQztnQkFDekIsSUFBSSxDQUFDLEtBQUssR0FBRyxVQUFVLENBQUM7Z0JBQ3hCLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUN2QixNQUFNO1lBQ1IsS0FBSyxNQUFNO2dCQUNULElBQUksQ0FBQyxLQUFLLEdBQUcsV0FBVyxDQUFDO2dCQUN6QixJQUFJLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQztnQkFDcEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ3ZCLE1BQU07WUFDUixLQUFLLE1BQU07Z0JBQ1QsSUFBSSxDQUFDLEtBQUssR0FBRyxXQUFXLENBQUM7Z0JBQ3pCLElBQUksQ0FBQyxVQUFVLEdBQUcsV0FBVyxDQUFDO2dCQUM5QixJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDdkIsTUFBTTtZQUNSLEtBQUssUUFBUTtnQkFDWCxJQUFJLENBQUMsS0FBSyxHQUFHLFdBQVcsQ0FBQztnQkFDekIsSUFBSSxDQUFDLEtBQUssR0FBRyxRQUFRLENBQUM7Z0JBQ3RCLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUN2QixNQUFNO1lBQ1IsS0FBSyxNQUFNO2dCQUNULElBQUksQ0FBQyxLQUFLLEdBQUcsV0FBVyxDQUFDO2dCQUN6QixJQUFJLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQztnQkFDcEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQ3ZCLE1BQU07WUFDUixLQUFLLFFBQVE7Z0JBQ1gsSUFBSSxDQUFDLEtBQUssR0FBRyxXQUFXLENBQUM7Z0JBQ3pCLElBQUksQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDO2dCQUNwQixJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDekIsTUFBTTtZQUNSLEtBQUssTUFBTTtnQkFDVCxJQUFJLENBQUMsTUFBTSxHQUFHLFFBQVEsQ0FBQztnQkFDdkIsTUFBTTtTQUNUO0lBQ0gsQ0FBQztJQVFEOztPQUVHO0lBQ0gsSUFBYSxVQUFVLENBQUMsQ0FBUztRQUMvQixJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBQ0QsSUFBa0MsU0FBUyxDQUFDLENBQVU7UUFDcEQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEtBQUssQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFZRCxJQUFtQixLQUFLLENBQUMsQ0FBd0Q7UUFDL0UsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQUUsUUFBUSxDQUFDO1FBQzNCLElBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDO1FBQ2QsSUFBSSxDQUFDLEVBQUU7WUFDTCxNQUFNLEdBQUcsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7aUJBQy9GLElBQUksQ0FDSCxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQ3RDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FDbkI7aUJBQ0EsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUNkLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDO2dCQUN0QixPQUFPLEVBQUUsQ0FBQyxFQUFFLE9BQU87Z0JBQ25CLEtBQUssRUFBRSxDQUFDLEVBQUUsS0FBSztnQkFDZixPQUFPLEVBQUUsQ0FBQyxFQUFFLE9BQU87Z0JBQ25CLFFBQVEsRUFBRSxDQUFDLEVBQUUsUUFBUTtnQkFDckIsS0FBSyxFQUFFLENBQUMsRUFBRSxLQUFLO2FBQ2hCLENBQUMsQ0FDSCxDQUFDO1lBQ0osSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUM7U0FDckQ7UUFDRCxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBR0QsSUFBb0IsTUFBTSxDQUFDLENBQTREO1FBQ3JGLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDO1FBQ2YsSUFBSSxDQUFDLENBQUMsRUFBRTtZQUNOLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQy9CLE9BQU87U0FDUjtRQUNELE1BQU0sR0FBRyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUM7YUFDN0MsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQzthQUN2QixTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQ2pCLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0JBQ1osT0FBTyxFQUFFLENBQUMsQ0FBQyxPQUFPO2dCQUNsQixLQUFLLEVBQUUsQ0FBQyxDQUFDLEtBQUs7Z0JBQ2QsT0FBTyxFQUFFLENBQUMsQ0FBQyxPQUFPO2dCQUNsQixRQUFRLEVBQUUsQ0FBQyxDQUFDLFFBQVE7Z0JBQ3BCLEtBQUssRUFBRSxDQUFDLENBQUMsS0FBSzthQUNmLENBQUMsQ0FBQyxDQUNKLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztRQUNMLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFRDs7T0FFRztJQUNILElBQStELFFBQVEsQ0FBQyxDQUFVO1FBQ2hGLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxLQUFLLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBQ0QsSUFBc0IsUUFBUSxDQUFDLENBQVU7UUFDdkMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdEIsQ0FBQztJQUlELElBQXlDLGdCQUFnQixDQUFDLENBQVM7UUFDakUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUdELElBQXdDLGVBQWUsQ0FBQyxDQUFTO1FBQy9ELElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFtQkQ7UUF0T0Esa0VBQWtFO1FBQ2xFLGVBQVUsR0FBRyxLQUFLLEVBQWlCLENBQUM7UUFDcEMsVUFBSyxHQUFHLEtBQUssRUFBVyxDQUFDO1FBQ3pCLGtCQUFhLEdBQUcsUUFBUSxDQUN0QixHQUFHLEVBQUU7WUFDSCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsU0FBUyxFQUFFLEVBQzNCLGFBQWEsR0FBRyxJQUFJLENBQUMsYUFBYSxFQUFFLEVBQ3BDLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7WUFFakMsT0FBTyxJQUFJLElBQUksSUFBSSxDQUFDLE9BQU8sSUFBSSxhQUFhLElBQUksYUFBYSxDQUFDLElBQUksSUFBSSxVQUFVLEVBQUUsTUFBTTtnQkFDdEYsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFhLElBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxRQUFRLEVBQUUsQ0FBQyxFQUFFLE9BQU8sQ0FBQztnQkFDbEYsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUNYLENBQUMsRUFDRCxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsQ0FDbkIsQ0FBQztRQUNGLGNBQVMsR0FBRyxLQUFLLENBQVUsSUFBSSxDQUFDLENBQUM7UUFDakMsV0FBTSxHQUFHLEtBQUssRUFBVyxDQUFDO1FBQzFCLFlBQU8sR0FBRyxLQUFLLEVBQVcsQ0FBQztRQUczQixZQUFPLEdBQUcsTUFBTSxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBQ2pDLFlBQU8sR0FBRyxNQUFNLENBQVUsS0FBSyxDQUFDLENBQUM7UUFrR2pDLFlBQU8sR0FBRyxNQUFNLENBQVMsSUFBSSxDQUFDLENBQUM7UUFDL0IsZUFBVSxHQUFHLEtBQUssQ0FBZ0MsUUFBUSxDQUFDLENBQUM7UUFDNUQsWUFBTyxHQUFHLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxTQUFTLEVBQUUsaUJBQThCLEVBQUUsQ0FBQyxDQUFDO1FBQzdCLG1CQUFjLEdBQUcsS0FBSyxDQUFDO1FBRWhFLFVBQUssR0FBRyxLQUFLLENBQWtCLElBQUksQ0FBQyxDQUFDO1FBQ3JDLFVBQUssR0FBRyxLQUFLLEVBQVUsQ0FBQztRQVV4QixjQUFTLEdBQUcsUUFBUSxDQUFhLEdBQUcsRUFBRTtZQUNwQyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDdEIsT0FBTztnQkFDTCxPQUFPLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxPQUFPO2dCQUMzQixLQUFLLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxLQUFLO2dCQUN2QixPQUFPLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxPQUFPO2dCQUMzQixRQUFRLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxRQUFRO2dCQUM3QixLQUFLLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxLQUFLO2FBQ3hCLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztRQUNILG1CQUFjLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBd0I5QixlQUFVLEdBQUcsTUFBTSxDQUFlLFNBQVMsQ0FBQyxDQUFDO1FBc0I3QyxTQUFJLEdBQUcsS0FBSyxFQUE2QixDQUFDO1FBVTFDLFdBQU0sR0FBRyxLQUFLLENBQVMsSUFBSSxDQUFDLENBQUM7UUFDN0IsaUJBQVksR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDM0IsY0FBUyxHQUFHLE1BQU0sQ0FBaUIsSUFBSSxDQUFDLENBQUM7UUFJekMsb0JBQWUsR0FBRyxNQUFNLENBQVMsSUFBSSxDQUFDLENBQUM7UUFDdkMsYUFBUSxHQUFHLE1BQU0sQ0FBaUIsSUFBSSxDQUFDLENBQUM7UUFJeEMsbUJBQWMsR0FBRyxNQUFNLENBQVMsSUFBSSxDQUFDLENBQUM7UUFDdEMsU0FBSSxHQUFHLEtBQUssRUFBNkIsQ0FBQztRQUMxQyxVQUFLLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3BCLFNBQUksR0FBRyxLQUFLLENBQVUsS0FBSyxFQUFFLEVBQUUsU0FBUyxFQUFFLGlCQUE4QixFQUFFLENBQUMsQ0FBQztRQUM1RSxrQkFBYSxHQUFHLEtBQUssQ0FBNkIsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQy9ELFdBQU0sR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBRXRDLFdBQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDZCxVQUFLLEdBQUcsTUFBTSxDQUFnQixTQUFTLENBQUMsQ0FBQztRQUN6QyxhQUFRLEdBQUcsTUFBTSxDQUFpQixTQUFTLENBQUMsQ0FBQztRQUN2RCxpQkFBWSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDM0IsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxFQUN2QixLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ3ZCLE9BQU8sS0FBSyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFDdkMsQ0FBQyxDQUFDLENBQUM7UUFDSSxTQUFJLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzFCLGVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFnRHZDLGVBQVUsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQ3pCLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRTtnQkFBRSxRQUFRLENBQUM7WUFDM0IsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUM5QixLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRSxFQUNwQixhQUFhLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxFQUNwQyxJQUFJLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxFQUN2QixLQUFLLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLEVBQUUsQ0FBQztZQUNsQyxPQUFPLFFBQVEsSUFBSSxDQUFDLEtBQUssSUFBSSxDQUFDLGFBQWEsSUFBSSxhQUFhLENBQUMsT0FBTyxJQUFJLENBQUMsSUFBSSxFQUFFLE9BQU8sSUFBSSxJQUFJLEVBQUUsT0FBTyxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDNUksQ0FBQyxDQUFDLENBQUM7SUF0RFksQ0FBQztJQUVoQixrQkFBa0I7UUFDaEIsK0VBQStFO1FBQy9FLGlEQUFpRDtJQUNuRCxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQUUsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUMxRCxDQUFDO0lBRUQsU0FBUztRQUNQLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDbEMsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBQzdCLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7WUFDdkIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNsQixJQUFJLElBQUksWUFBWSxTQUFTLEVBQUU7Z0JBQzdCLE9BQU8sQ0FBQyxHQUFHLENBQ1QsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO3FCQUN2QixNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7cUJBQ3RDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUNoQyxDQUFDO2FBQ0g7U0FDRjtRQUNELElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDbkMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLENBQUM7WUFDdEQsNEJBQTRCO1lBQzVCLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ3pCO0lBQ0gsQ0FBQztJQUVELFNBQVMsQ0FBQyxHQUFZO1FBQ3BCLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3hCLENBQUM7SUFDRCxJQUFJLFdBQVc7UUFDYixPQUFPLGNBQWMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsYUFBYSxFQUFFLFNBQVMsSUFBSSxJQUFJLENBQUMsUUFBUSxJQUFJLFFBQVEsSUFDdkcsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsRUFDOUQsRUFBRSxDQUFDO0lBQ0wsQ0FBQztJQUNELEtBQUssQ0FBQyxNQUFNO1FBQ1YsV0FBVztRQUNYLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFBRSxPQUFPO1FBQ2hELElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFZRCxPQUFPO1FBQ0wsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDMUIsQ0FBQztJQUVELE1BQU07UUFDSixJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMzQixDQUFDOzhHQXJTVSxZQUFZO2tHQUFaLFlBQVksd3JEQVhoQixpQkFBaUIsK21DQUFqQixpQkFBaUIsKzBDQzlCMUIsNDlEQTJEQSx5d0JEcEJZLE9BQU8sbUZBQVEsZ0JBQWdCLDRUQUFFLGNBQWMsMlBBQUUsaUJBQWlCLG1TQUFFLG1CQUFtQixrRkFBRSxTQUFTLHlDQUFFLGFBQWE7OzJGQUVoSCxZQUFZO2tCQVJ4QixTQUFTOytCQUNFLFNBQVMsY0FHUCxJQUFJLFdBRVAsQ0FBQyxPQUFPLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFLGNBQWMsRUFBRSxpQkFBaUIsRUFBRSxtQkFBbUIsRUFBRSxTQUFTLEVBQUUsYUFBYSxDQUFDO3dEQTRCekcsS0FBSztzQkFBdkIsS0FBSzt1QkFBQyxNQUFNO2dCQVlXLFVBQVU7c0JBQWpDLEtBQUs7dUJBQUMsV0FBVztnQkFNSyxTQUFTO3NCQUEvQixLQUFLO3VCQUFDLFVBQVU7Z0JBT0UsS0FBSztzQkFBdkIsS0FBSzt1QkFBQyxNQUFNO2dCQU9PLE1BQU07c0JBQXpCLEtBQUs7dUJBQUMsT0FBTztnQkFpRTJCLGNBQWM7c0JBQXRELEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUU7Z0JBQzlCLFlBQVk7c0JBQXBCLEtBQUs7Z0JBTU8sVUFBVTtzQkFBdEIsS0FBSztnQkFHNEIsU0FBUztzQkFBMUMsS0FBSzt1QkFBQyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUU7Z0JBY1QsS0FBSztzQkFBdkIsS0FBSzt1QkFBQyxNQUFNO2dCQXdCTyxNQUFNO3NCQUF6QixLQUFLO3VCQUFDLE9BQU87Z0JBeUJpRCxRQUFRO3NCQUF0RSxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUU7Z0JBR25DLFFBQVE7c0JBQTdCLEtBQUs7dUJBQUMsU0FBUztnQkFNeUIsZ0JBQWdCO3NCQUF4RCxLQUFLO3VCQUFDLEVBQUUsS0FBSyxFQUFFLGlCQUFpQixFQUFFO2dCQUtLLGVBQWU7c0JBQXRELEtBQUs7dUJBQUMsRUFBRSxLQUFLLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBUXhCLE1BQU07c0JBQWYsTUFBTTtnQkFDaUIsU0FBUztzQkFBaEMsU0FBUzt1QkFBQyxXQUFXOztBQTRFeEIsSUFBSyxhQUdKO0FBSEQsV0FBSyxhQUFhO0lBQ2hCLG9DQUFtQixDQUFBO0lBQ25CLDhCQUFhLENBQUE7QUFDZixDQUFDLEVBSEksYUFBYSxLQUFiLGFBQWEsUUFHakIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBEZXN0cm95UmVmLFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgVmlld0NoaWxkLFxuICBib29sZWFuQXR0cmlidXRlLFxuICBjb21wdXRlZCxcbiAgaW5qZWN0LFxuICBpbnB1dCxcbiAgc2lnbmFsLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Db250cm9sLCBGb3JtR3JvdXAsIEZvcm1BcnJheSwgQWJzdHJhY3RDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgSWNvbkRlZmluaXRpb24sIGZhTG9jayB9IGZyb20gJ0Bmb3J0YXdlc29tZS9mcmVlLXNvbGlkLXN2Zy1pY29ucyc7XG5pbXBvcnQgeyBCdG5TZXJ2aWNlIH0gZnJvbSAnLi9idG4uc2VydmljZSc7XG5pbXBvcnQgeyBUcmFuc2xhdGVQaXBlIH0gZnJvbSAnLi4vLi4vcGlwZXMvdHJhbnNsYXRlLnBpcGUnO1xuaW1wb3J0IHsgVHJhbnNsYXRvckRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvdHJhbnNsYXRvci5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgRm9udEF3ZXNvbWVNb2R1bGUgfSBmcm9tICdAZm9ydGF3ZXNvbWUvYW5ndWxhci1mb250YXdlc29tZSc7XG5pbXBvcnQgeyBNYXRCYWRnZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2JhZGdlJztcbmltcG9ydCB7IE1hdFRvb2x0aXBNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwJztcbmltcG9ydCB7IE5nQ2xhc3MsIE5nSWYsIEFzeW5jUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBJRm9ybVNjaGVtYSB9IGZyb20gJy4uLy4uL21vZGVscy9mb3JtLXNjaGVtYS5tb2RlbCc7XG5pbXBvcnQgeyBJY29uVHlwZSwgQnRuVHlwZSwgQnRuR3JvdXAgfSBmcm9tICcuL2J0bi5tb2RlbCc7XG5pbXBvcnQgeyBpc0VxdWFsIH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgbWVyZ2UsIHRhcCwgdGltZXIgfSBmcm9tICdyeGpzJztcblxuZnVuY3Rpb24gYm9vbGVhbkF0dHJpYnV0ZTIodmFsdWU6IHN0cmluZyB8IGJvb2xlYW4gfCB1bmRlZmluZWQpIHtcbiAgcmV0dXJuIGJvb2xlYW5BdHRyaWJ1dGUodmFsdWUpO1xufVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWJ0bicsXG4gIHRlbXBsYXRlVXJsOiAnLi9idG4uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9idG4uY29tcG9uZW50LnNjc3MnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgLy8gLy9cbiAgaW1wb3J0czogW05nQ2xhc3MsIE5nSWYsIE1hdFRvb2x0aXBNb2R1bGUsIE1hdEJhZGdlTW9kdWxlLCBGb250QXdlc29tZU1vZHVsZSwgVHJhbnNsYXRvckRpcmVjdGl2ZSwgQXN5bmNQaXBlLCBUcmFuc2xhdGVQaXBlXSxcbn0pIC8vIEluaGVyaXRlZFxuZXhwb3J0IGNsYXNzIEJ0bkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIC8qKiBUbyBiZSBwYXNzZWQgd2hlbiB0byBjaGVjayBmb3Igc3BlY2lmaWMgaW52YWxpZCBmb3JtIGZpZWxkcyAqL1xuICBmb3JtU2NoZW1hID0gaW5wdXQ8SUZvcm1TY2hlbWFbXT4oKTtcbiAgZGVidWcgPSBpbnB1dDxib29sZWFuPigpO1xuICBmb3JtSXNJbnZhbGlkID0gY29tcHV0ZWQ8Ym9vbGVhbj4oXG4gICAgKCkgPT4ge1xuICAgICAgY29uc3QgZm9ybSA9IHRoaXMuZm9ybVN0YXRlKCksXG4gICAgICAgIG9uRm9ybUludmFsaWQgPSB0aGlzLm9uRm9ybUludmFsaWQoKSxcbiAgICAgICAgZm9ybVNjaGVtYSA9IHRoaXMuZm9ybVNjaGVtYSgpO1xuXG4gICAgICByZXR1cm4gZm9ybSAmJiBmb3JtLmludmFsaWQgJiYgb25Gb3JtSW52YWxpZCA9PSBPbkZvcm1JbnZhbGlkLndhcm4gJiYgZm9ybVNjaGVtYT8ubGVuZ3RoXG4gICAgICAgID8gZm9ybVNjaGVtYS5zb21lKChmKSA9PiAoPEZvcm1Hcm91cD5mb3JtKS5jb250cm9sc1tmLmZpZWxkPy50b1N0cmluZygpXT8uaW52YWxpZClcbiAgICAgICAgOiBudWxsO1xuICAgIH0sXG4gICAgeyBlcXVhbDogaXNFcXVhbCB9LFxuICApO1xuICBjZW50ZXJCdG4gPSBpbnB1dDxib29sZWFuPih0cnVlKTtcbiAgZGFuZ2VyID0gaW5wdXQ8Ym9vbGVhbj4oKTtcbiAgd2FybmluZyA9IGlucHV0PGJvb2xlYW4+KCk7XG5cbiAgcHJvdGVjdGVkIGljb25UeXBlOiBJY29uVHlwZTtcbiAgaWNvbkJ0biA9IHNpZ25hbDxib29sZWFuPihmYWxzZSk7XG4gIGxvYWRpbmcgPSBzaWduYWw8Ym9vbGVhbj4oZmFsc2UpO1xuICBmb3JtczogKEZvcm1Hcm91cDxhbnk+IHwgQWJzdHJhY3RDb250cm9sPGFueSwgYW55PiB8IEZvcm1Db250cm9sPGFueT4gfCBGb3JtQXJyYXk8YW55PilbXTtcbiAgZm9ybTogRm9ybUdyb3VwPGFueT4gfCBGb3JtQ29udHJvbDxhbnk+IHwgRm9ybUFycmF5PGFueT4gfCBBYnN0cmFjdENvbnRyb2w8YW55LCBhbnk+O1xuXG4gIEBJbnB1dCgnaWNvbicpIHNldCBfaWNvbih2OiBJY29uVHlwZSkge1xuICAgIHRoaXMuaWNvblR5cGUgPSB2O1xuICAgIGNvbnN0IHJlcyA9IHRoaXMuYnRuUy5nZXRJY29uKHYpO1xuICAgIGlmICghcmVzKSByZXR1cm47XG4gICAgaWYgKHJlcy5pY29uUG9zaXRpb24gPT0gJ3JpZ2h0Jykge1xuICAgICAgdGhpcy5yaWdodEljb24uc2V0KHJlcy5pY29uKTtcbiAgICAgIHRoaXMucmlnaHRDdXN0b21JY29uLnNldChyZXMuaWNvblN0cmluZyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubGVmdEljb24uc2V0KHJlcy5pY29uKTtcbiAgICAgIHRoaXMubGVmdEN1c3RvbUljb24uc2V0KHJlcy5pY29uU3RyaW5nKTtcbiAgICB9XG4gIH1cbiAgQElucHV0KCdyaWdodEljb24nKSBzZXQgX3JpZ2h0SWNvbih2OiBJY29uVHlwZSkge1xuICAgIHRoaXMuaWNvblR5cGUgPSB2O1xuICAgIGNvbnN0IHJlcyA9IHRoaXMuYnRuUy5nZXRJY29uKHYpO1xuICAgIHRoaXMucmlnaHRJY29uLnNldChyZXMuaWNvbik7XG4gICAgdGhpcy5yaWdodEN1c3RvbUljb24uc2V0KHJlcy5pY29uU3RyaW5nKTtcbiAgfVxuICBASW5wdXQoJ2xlZnRJY29uJykgc2V0IF9sZWZ0SWNvbih2OiBJY29uVHlwZSkge1xuICAgIHRoaXMuaWNvblR5cGUgPSB2O1xuICAgIGNvbnN0IHJlcyA9IHRoaXMuYnRuUy5nZXRJY29uKHYpO1xuICAgIHRoaXMubGVmdEljb24uc2V0KHJlcy5pY29uKTtcbiAgICB0aGlzLmxlZnRDdXN0b21JY29uLnNldChyZXMuaWNvblN0cmluZyk7XG4gIH1cblxuICBASW5wdXQoJ3R5cGUnKSBzZXQgX3R5cGUodjogQnRuVHlwZSkge1xuICAgIGNvbnN0IHsgX2ljb24sIF9tY2xhc3MsIF90eXBlIH0gPSB0aGlzLmJ0blMuZ2V0VHlwZSh2KTtcbiAgICB0aGlzLl9tY2xhc3MudXBkYXRlKChtY2xhc3MpID0+IF9tY2xhc3MgfHwgbWNsYXNzKTtcbiAgICBpZiAoX2ljb24pIHRoaXMuX2ljb24gPSBfaWNvbjtcbiAgICBpZiAoX3R5cGUpIHRoaXMuX3R5cGUgPSBfdHlwZTtcbiAgfVxuXG4gIEBJbnB1dCgnZ3JvdXAnKSBzZXQgX2dyb3VwKHY6IEJ0bkdyb3VwKSB7XG4gICAgc3dpdGNoICh2KSB7XG4gICAgICBjYXNlICdhZGQnOlxuICAgICAgICB0aGlzLl90eXBlID0gJ291dGxpbmUnO1xuICAgICAgICB0aGlzLl9pY29uID0gJ2FkZCc7XG4gICAgICAgIHRoaXMuaWNvbkJ0bi5zZXQodHJ1ZSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnY2xvbmUnOlxuICAgICAgICB0aGlzLl90eXBlID0gJ3NlY29uZGFyeSc7XG4gICAgICAgIHRoaXMuX2ljb24gPSAnY2xvbmUnO1xuICAgICAgICB0aGlzLl90ZXh0LnNldCgnQ2xvbmUnKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdjcmVhdGUnOlxuICAgICAgICB0aGlzLl90eXBlID0gJ291dGxpbmUnO1xuICAgICAgICB0aGlzLl9pY29uID0gJ2FkZCc7XG4gICAgICAgIHRoaXMuX3RleHQuc2V0KCdDcmVhdGUnKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdjbG9zZSc6XG4gICAgICAgIHRoaXMuX3R5cGUgPSAnZGFuZ2VyLW91dGxpbmUnO1xuICAgICAgICB0aGlzLmN1c3RvbUljb24gPSB0aGlzLmJ0blMuZ2V0SWNvbignY2xvc2UnKS5pY29uU3RyaW5nO1xuICAgICAgICB0aGlzLmljb25CdG4uc2V0KHRydWUpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2RlbGV0ZSc6XG4gICAgICAgIHRoaXMuX3R5cGUgPSAnZGFuZ2VyLW91dGxpbmUnO1xuICAgICAgICB0aGlzLl9pY29uID0gJ2RlbGV0ZSc7XG4gICAgICAgIHRoaXMuaWNvbkJ0bi5zZXQodHJ1ZSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnZG93bmxvYWQnOlxuICAgICAgICB0aGlzLl90eXBlID0gJ3NlY29uZGFyeSc7XG4gICAgICAgIHRoaXMuX2ljb24gPSAnZG93bmxvYWQnO1xuICAgICAgICB0aGlzLmljb25CdG4uc2V0KHRydWUpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2VkaXQnOlxuICAgICAgICB0aGlzLl90eXBlID0gJ3NlY29uZGFyeSc7XG4gICAgICAgIHRoaXMuX2ljb24gPSAnZWRpdCc7XG4gICAgICAgIHRoaXMuaWNvbkJ0bi5zZXQodHJ1ZSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnbGluayc6XG4gICAgICAgIHRoaXMuX3R5cGUgPSAnc2Vjb25kYXJ5JztcbiAgICAgICAgdGhpcy5jdXN0b21JY29uID0gJ2ZhIGZhLWV5ZSc7XG4gICAgICAgIHRoaXMuaWNvbkJ0bi5zZXQodHJ1ZSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnc2VhcmNoJzpcbiAgICAgICAgdGhpcy5fdHlwZSA9ICdzZWNvbmRhcnknO1xuICAgICAgICB0aGlzLl9pY29uID0gJ3NlYXJjaCc7XG4gICAgICAgIHRoaXMuaWNvbkJ0bi5zZXQodHJ1ZSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnc2hvdyc6XG4gICAgICAgIHRoaXMuX3R5cGUgPSAnc2Vjb25kYXJ5JztcbiAgICAgICAgdGhpcy5faWNvbiA9ICdzaG93JztcbiAgICAgICAgdGhpcy5fdGV4dC5zZXQoJ1Nob3cnKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdzdWJtaXQnOlxuICAgICAgICB0aGlzLl90eXBlID0gJ3NlY29uZGFyeSc7XG4gICAgICAgIHRoaXMuX2ljb24gPSAnc2F2ZSc7XG4gICAgICAgIHRoaXMuX3RleHQuc2V0KCdTdWJtaXQnKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdzYXZlJzpcbiAgICAgICAgdGhpcy5fZ3JvdXAgPSAnc3VibWl0JztcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG4gIF9tY2xhc3MgPSBzaWduYWw8c3RyaW5nPihudWxsKTtcbiAgYWN0aW9uVHlwZSA9IGlucHV0PCdzdWJtaXQnIHwgJ2J1dHRvbicgfCAncmVzZXQnPignYnV0dG9uJyk7XG4gIGFuaW1hdGUgPSBpbnB1dChmYWxzZSwgeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUyIGFzIHVuZGVmaW5lZCB9KTtcbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlMiB9KSBleGNsdWRlTG9nZ2luZyA9IGZhbHNlO1xuICBASW5wdXQoKSBsb2dnaW5nVmFsdWU6IHN0cmluZztcbiAgYmFkZ2UgPSBpbnB1dDxzdHJpbmcgfCBudW1iZXI+KG51bGwpO1xuICBjbGFzcyA9IGlucHV0PHN0cmluZz4oKTtcbiAgLyoqXG4gICAqIFNldHMgdGhlIGxlZnQgc2lkZSBpY29uXG4gICAqL1xuICBASW5wdXQoKSBzZXQgY3VzdG9tSWNvbih2OiBzdHJpbmcpIHtcbiAgICB0aGlzLmxlZnRDdXN0b21JY29uLnNldCh2KTtcbiAgfVxuICBASW5wdXQoeyBhbGlhczogJ2Rpc2FibGVkJyB9KSBzZXQgX2Rpc2FibGVkKHY6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmRpc2FibGVkLnNldCh2IHx8IGZhbHNlKTtcbiAgfVxuICBmb3JtU3RhdGUgPSBjb21wdXRlZDxJRm9ybVN0YXRlPigoKSA9PiB7XG4gICAgdGhpcy5jaGVja0Zvcm1TdGF0ZSgpO1xuICAgIHJldHVybiB7XG4gICAgICBwZW5kaW5nOiB0aGlzLmZvcm0/LnBlbmRpbmcsXG4gICAgICBkaXJ0eTogdGhpcy5mb3JtPy5kaXJ0eSxcbiAgICAgIGludmFsaWQ6IHRoaXMuZm9ybT8uaW52YWxpZCxcbiAgICAgIHByaXN0aW5lOiB0aGlzLmZvcm0/LnByaXN0aW5lLFxuICAgICAgdmFsaWQ6IHRoaXMuZm9ybT8udmFsaWQsXG4gICAgfTtcbiAgfSk7XG4gIGNoZWNrRm9ybVN0YXRlID0gc2lnbmFsKG51bGwpO1xuICBASW5wdXQoJ2Zvcm0nKSBzZXQgX2Zvcm0odjogRm9ybUdyb3VwIHwgRm9ybUNvbnRyb2wgfCBGb3JtQXJyYXkgfCBBYnN0cmFjdENvbnRyb2wpIHtcbiAgICBpZiAodGhpcy5kZWJ1ZygpKSBkZWJ1Z2dlcjtcbiAgICB0aGlzLmZvcm0gPSB2O1xuICAgIGlmICh2KSB7XG4gICAgICBjb25zdCBzdWIgPSBtZXJnZSh2LnZhbHVlQ2hhbmdlcy5waXBlKGRlYm91bmNlVGltZSgyMDApKSwgdi5zdGF0dXNDaGFuZ2VzLnBpcGUoZGVib3VuY2VUaW1lKDIwMCkpKVxuICAgICAgICAucGlwZShcbiAgICAgICAgICB0YXAoKHIpID0+IHRoaXMuY2hlY2tGb3JtU3RhdGUuc2V0KHYpKSxcbiAgICAgICAgICBkZWJvdW5jZVRpbWUoMTAwMCksXG4gICAgICAgIClcbiAgICAgICAgLnN1YnNjcmliZSgoKSA9PlxuICAgICAgICAgIHRoaXMuY2hlY2tGb3JtU3RhdGUuc2V0KHtcbiAgICAgICAgICAgIHBlbmRpbmc6IHY/LnBlbmRpbmcsXG4gICAgICAgICAgICBkaXJ0eTogdj8uZGlydHksXG4gICAgICAgICAgICBpbnZhbGlkOiB2Py5pbnZhbGlkLFxuICAgICAgICAgICAgcHJpc3RpbmU6IHY/LnByaXN0aW5lLFxuICAgICAgICAgICAgdmFsaWQ6IHY/LnZhbGlkLFxuICAgICAgICAgIH0pLFxuICAgICAgICApO1xuICAgICAgdGhpcy5kZXN0cm95UmVmLm9uRGVzdHJveSgoKSA9PiBzdWI/LnVuc3Vic2NyaWJlKCkpO1xuICAgIH1cbiAgICB0aGlzLmNoZWNrRm9ybVN0YXRlLnNldCh0cnVlKTtcbiAgfVxuXG4gIGZvcm1zU3RhdGUgPSBzaWduYWw8SUZvcm1TdGF0ZVtdPih1bmRlZmluZWQpO1xuICBASW5wdXQoJ2Zvcm1zJykgc2V0IF9mb3Jtcyh2OiAoRm9ybUdyb3VwIHwgRm9ybUNvbnRyb2wgfCBGb3JtQXJyYXkgfCBBYnN0cmFjdENvbnRyb2wpW10pIHtcbiAgICB0aGlzLmZvcm1zID0gdjtcbiAgICBpZiAoIXYpIHtcbiAgICAgIHRoaXMuZm9ybXNTdGF0ZS5zZXQodW5kZWZpbmVkKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3Qgc3ViID0gbWVyZ2Uodi5tYXAoKGYpID0+IGYuc3RhdHVzQ2hhbmdlcykpXG4gICAgICAucGlwZShkZWJvdW5jZVRpbWUoNzAwKSlcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLmZvcm1zU3RhdGUuc2V0KFxuICAgICAgICAgIHYubWFwKCh4KSA9PiAoe1xuICAgICAgICAgICAgcGVuZGluZzogeC5wZW5kaW5nLFxuICAgICAgICAgICAgZGlydHk6IHguZGlydHksXG4gICAgICAgICAgICBpbnZhbGlkOiB4LmludmFsaWQsXG4gICAgICAgICAgICBwcmlzdGluZTogeC5wcmlzdGluZSxcbiAgICAgICAgICAgIHZhbGlkOiB4LnZhbGlkLFxuICAgICAgICAgIH0pKSxcbiAgICAgICAgKTtcbiAgICAgIH0pO1xuICAgIHRoaXMuZGVzdHJveVJlZi5vbkRlc3Ryb3koKCkgPT4gc3ViPy51bnN1YnNjcmliZSgpKTtcbiAgfVxuICBoZWxwID0gaW5wdXQ8c3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZD4oKTtcbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIG5vIGxvbmdlciBuZWVkZWQgdG8gZGV0ZWN0IHRoZSBjb3JyZWN0IHNwYWNpbmcgYmV0d2VlbiBpY29uIGFuZCB0ZXh0XG4gICAqL1xuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUyLCBhbGlhczogJ2ljb25CdG4nIH0pIHNldCBfaWNvbkJ0bih2OiBib29sZWFuKSB7XG4gICAgdGhpcy5pY29uQnRuLnNldCh2IHx8IGZhbHNlKTtcbiAgfVxuICBASW5wdXQoJ2xvYWRpbmcnKSBzZXQgX2xvYWRpbmcodjogYm9vbGVhbikge1xuICAgIHRoaXMubG9hZGluZy5zZXQodik7XG4gIH1cbiAgbWNsYXNzID0gaW5wdXQ8c3RyaW5nPihudWxsKTtcbiAgc2hvd0hlbHBJY29uID0gaW5wdXQodHJ1ZSk7XG4gIHJpZ2h0SWNvbiA9IHNpZ25hbDxJY29uRGVmaW5pdGlvbj4obnVsbCk7XG4gIEBJbnB1dCh7IGFsaWFzOiAncmlnaHRDdXN0b21JY29uJyB9KSBzZXQgX3JpZ2h0Q3VzdG9tSWNvbih2OiBzdHJpbmcpIHtcbiAgICB0aGlzLnJpZ2h0Q3VzdG9tSWNvbi5zZXQodik7XG4gIH1cbiAgcmlnaHRDdXN0b21JY29uID0gc2lnbmFsPHN0cmluZz4obnVsbCk7XG4gIGxlZnRJY29uID0gc2lnbmFsPEljb25EZWZpbml0aW9uPihudWxsKTtcbiAgQElucHV0KHsgYWxpYXM6ICdsZWZ0Q3VzdG9tSWNvbicgfSkgc2V0IF9sZWZ0Q3VzdG9tSWNvbih2OiBzdHJpbmcpIHtcbiAgICB0aGlzLmxlZnRDdXN0b21JY29uLnNldCh2KTtcbiAgfVxuICBsZWZ0Q3VzdG9tSWNvbiA9IHNpZ25hbDxzdHJpbmc+KG51bGwpO1xuICB0ZXh0ID0gaW5wdXQ8c3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZD4oKTtcbiAgdmFsaWQgPSBpbnB1dCh0cnVlKTtcbiAgbWluaSA9IGlucHV0PGJvb2xlYW4+KGZhbHNlLCB7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZTIgYXMgdW5kZWZpbmVkIH0pO1xuICBvbkZvcm1JbnZhbGlkID0gaW5wdXQ8a2V5b2YgdHlwZW9mIE9uRm9ybUludmFsaWQ+KE9uRm9ybUludmFsaWQuZGlzYWJsZSk7XG4gIEBPdXRwdXQoKSBtY2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBWaWV3Q2hpbGQoJ2lubmVyVGV4dCcpIGlubmVyVGV4dDogRWxlbWVudFJlZjxIVE1MU3BhbkVsZW1lbnQ+O1xuICBsb2NrZWQgPSBzaWduYWwoZmFMb2NrKTtcbiAgcHJvdGVjdGVkIF90ZXh0ID0gc2lnbmFsPHN0cmluZyB8IG51bGw+KHVuZGVmaW5lZCk7XG4gIHByb3RlY3RlZCBkaXNhYmxlZCA9IHNpZ25hbDxib29sZWFuIHwgbnVsbD4odW5kZWZpbmVkKTtcbiAgY29tcHV0ZWRUZXh0ID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IGlucHV0ID0gdGhpcy50ZXh0KCksXG4gICAgICBsb2NhbCA9IHRoaXMuX3RleHQoKTtcbiAgICByZXR1cm4gaW5wdXQgPT0gbnVsbCA/IGxvY2FsIDogaW5wdXQ7XG4gIH0pO1xuICBwdWJsaWMgYnRuUyA9IGluamVjdChCdG5TZXJ2aWNlKTtcbiAgcHVibGljIGRlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG5cbiAgY29uc3RydWN0b3IoKSB7fVxuXG4gIG5nQWZ0ZXJWaWV3Q2hlY2tlZCgpOiB2b2lkIHtcbiAgICAvL0NhbGxlZCBhZnRlciBldmVyeSBjaGVjayBvZiB0aGUgY29tcG9uZW50J3Mgdmlldy4gQXBwbGllcyB0byBjb21wb25lbnRzIG9ubHkuXG4gICAgLy9BZGQgJ2ltcGxlbWVudHMgQWZ0ZXJWaWV3Q2hlY2tlZCcgdG8gdGhlIGNsYXNzLlxuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLl9tY2xhc3MoKSkgdGhpcy5fdHlwZSA9IHRoaXMuYnRuUy5kZWZhdWx0VHlwZTtcbiAgfVxuXG4gIGNoZWNrRm9ybSgpIHtcbiAgICBpZiAodGhpcy5pc0Rpc2FibGVkKCkgJiYgdGhpcy5mb3JtKSB7XG4gICAgICB0aGlzLmZvcm0ubWFya0FsbEFzVG91Y2hlZCgpO1xuICAgICAgY29uc3QgZm9ybSA9IHRoaXMuZm9ybTtcbiAgICAgIGNvbnNvbGUubG9nKGZvcm0pO1xuICAgICAgaWYgKGZvcm0gaW5zdGFuY2VvZiBGb3JtR3JvdXApIHtcbiAgICAgICAgY29uc29sZS5sb2coXG4gICAgICAgICAgT2JqZWN0LmtleXMoZm9ybS5jb250cm9scylcbiAgICAgICAgICAgIC5maWx0ZXIoKHgpID0+ICFmb3JtLmNvbnRyb2xzW3hdLnZhbGlkKVxuICAgICAgICAgICAgLm1hcCgoeCkgPT4gZm9ybS5jb250cm9sc1t4XSksXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuICAgIGlmICh0aGlzLmlzRGlzYWJsZWQoKSAmJiB0aGlzLmZvcm1zKSB7XG4gICAgICB0aGlzLmZvcm1zLmZvckVhY2goKGZvcm0pID0+IGZvcm0ubWFya0FsbEFzVG91Y2hlZCgpKTtcbiAgICAgIC8vIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgIGNvbnNvbGUubG9nKHRoaXMuZm9ybXMpO1xuICAgIH1cbiAgfVxuXG4gIHNldExvYWRlcih2YWw6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmxvYWRpbmcuc2V0KHZhbCk7XG4gIH1cbiAgZ2V0IGV4dHJhY3RUZXh0KCkge1xuICAgIHJldHVybiBgQ2xpY2tlZCBvbiAke3RoaXMudGV4dCgpIHx8IHRoaXMuaW5uZXJUZXh0Py5uYXRpdmVFbGVtZW50Py5pbm5lckhUTUwgfHwgdGhpcy5pY29uVHlwZSB8fCAnYnV0dG9uJ30gJHtcbiAgICAgIHRoaXMubG9nZ2luZ1ZhbHVlID8gJ1xcblRyYWNrIHZhbHVlOiAnICsgdGhpcy5sb2dnaW5nVmFsdWUgOiAnJ1xuICAgIH1gO1xuICB9XG4gIGNsaWNrKCRldmVudCkge1xuICAgIC8vIGRlYnVnZ2VyXG4gICAgaWYgKHRoaXMuaXNEaXNhYmxlZCgpIHx8IHRoaXMubG9hZGluZygpKSByZXR1cm47XG4gICAgdGhpcy5tY2xpY2suZW1pdCgkZXZlbnQpO1xuICAgIHRoaXMuYnRuUy5sb2dDbGljayh0aGlzKTtcbiAgfVxuXG4gIGlzRGlzYWJsZWQgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgaWYgKHRoaXMuZGVidWcoKSkgZGVidWdnZXI7XG4gICAgY29uc3QgZGlzYWJsZWQgPSB0aGlzLmRpc2FibGVkKCksXG4gICAgICB2YWxpZCA9IHRoaXMudmFsaWQoKSxcbiAgICAgIG9uRm9ybUludmFsaWQgPSB0aGlzLm9uRm9ybUludmFsaWQoKSxcbiAgICAgIGZvcm0gPSB0aGlzLmZvcm1TdGF0ZSgpLFxuICAgICAgZm9ybXMgPSB0aGlzLmZvcm1zU3RhdGUoKSB8fCBbXTtcbiAgICByZXR1cm4gZGlzYWJsZWQgfHwgIXZhbGlkIHx8IChvbkZvcm1JbnZhbGlkID09IE9uRm9ybUludmFsaWQuZGlzYWJsZSAmJiAoZm9ybT8uaW52YWxpZCB8fCBmb3JtPy5wZW5kaW5nIHx8IGZvcm1zLnNvbWUoKHgpID0+IHgucGVuZGluZykpKTtcbiAgfSk7XG5cbiAgZGlzYWJsZSgpIHtcbiAgICB0aGlzLmRpc2FibGVkLnNldCh0cnVlKTtcbiAgfVxuXG4gIGVuYWJsZSgpIHtcbiAgICB0aGlzLmRpc2FibGVkLnNldChmYWxzZSk7XG4gIH1cbn1cbmVudW0gT25Gb3JtSW52YWxpZCB7XG4gIGRpc2FibGUgPSAnZGlzYWJsZScsXG4gIHdhcm4gPSAnd2FybicsXG59XG5pbnRlcmZhY2UgSUZvcm1TdGF0ZSB7XG4gIHBlbmRpbmc/OiBib29sZWFuO1xuICBkaXJ0eT86IGJvb2xlYW47XG4gIGludmFsaWQ/OiBib29sZWFuO1xuICBwcmlzdGluZT86IGJvb2xlYW47XG4gIHZhbGlkPzogYm9vbGVhbjtcbn1cbiIsIjxzcGFuXG4gIGNsYXNzPVwie3sgY2xhc3MoKSB9fSAgZC1mbGV4ICBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlclwiXG4gIFtuZ0NsYXNzXT1cInsgZGlzYWJsZWQ6IGlzRGlzYWJsZWQoKSwgbWluaTogbWluaSgpIH1cIlxuICAoY2xpY2spPVwiY2hlY2tGb3JtKClcIj5cbiAgQGlmIChzaG93SGVscEljb24oKSAmJiBoZWxwKCkpIHtcbiAgICA8aSBjbGFzcz1cImZhIGZhLWluZm8tY2lyY2xlIG1lLTIgdGV4dC1wcmltYXJ5XCIgW21hdFRvb2x0aXBdPVwiaGVscCgpIHwgYXBwVHJhbnNsYXRlIHwgYXN5bmNcIj48L2k+XG4gIH1cbiAgPGJ1dHRvblxuICAgIHR5cGU9XCJ7eyBhY3Rpb25UeXBlKCkgfX1cIlxuICAgIGNsYXNzPVwie3sgbWNsYXNzKCkgfX0ge3sgX21jbGFzcygpIH19IGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgXCJcbiAgICBbbWF0QmFkZ2VdPVwiYmFkZ2UoKVwiXG4gICAgW25nQ2xhc3NdPVwie1xuICAgICAgY2hhbmdlY29sb3I6IHZhbGlkKCksXG4gICAgICAnYnRuLXJhaXNlZCc6IGFuaW1hdGUoKSxcbiAgICAgIGRpc2FibGVkOiBpc0Rpc2FibGVkKCksXG4gICAgICBpc0RhbmdlcjogZGFuZ2VyKCksXG4gICAgICBpc1dhcm5pbmc6IHdhcm5pbmcoKSxcbiAgICAgIGludmFsaWQ6IGZvcm1Jc0ludmFsaWQoKSxcbiAgICAgICdqdXN0aWZ5LWNvbnRlbnQtY2VudGVyJzogY2VudGVyQnRuKClcbiAgICB9XCJcbiAgICBbZGlzYWJsZWRdPVwiaXNEaXNhYmxlZCgpXCJcbiAgICAoY2xpY2spPVwiY2xpY2soJGV2ZW50KVwiXG4gICAgW21hdFRvb2x0aXBdPVwic2hvd0hlbHBJY29uKCkgPyBudWxsIDogKGhlbHAoKSB8IGFwcFRyYW5zbGF0ZSB8IGFzeW5jKVwiPlxuICAgIEBpZiAoIWxvYWRpbmcoKSkge1xuICAgICAgQGlmIChsZWZ0SWNvbigpKSB7XG4gICAgICAgIDxmYS1pY29uIFtpY29uXT1cImlzRGlzYWJsZWQoKSA/IGxvY2tlZCgpIDogbGVmdEljb24oKVwiPjwvZmEtaWNvbj5cbiAgICAgIH0gQGVsc2UgaWYgKGxlZnRDdXN0b21JY29uKCkpIHtcbiAgICAgICAgPGkgY2xhc3M9XCJ7eyBsZWZ0Q3VzdG9tSWNvbigpIH19XCI+PC9pPlxuICAgICAgfVxuICAgIH1cblxuICAgIEBpZiAoY29tcHV0ZWRUZXh0KCkpIHtcbiAgICAgIDxzcGFuIGNsYXNzPVwiXCIgW25nQ2xhc3NdPVwieyAnbXMtMSc6IGxlZnRJY29uKCkgfHwgbGVmdEN1c3RvbUljb24oKSwgJ21lLTEnOiByaWdodEljb24oKSB8fCByaWdodEN1c3RvbUljb24oKSB9XCI+XG4gICAgICAgIHt7IGNvbXB1dGVkVGV4dCgpIHwgYXBwVHJhbnNsYXRlIHwgYXN5bmMgfX1cbiAgICAgIDwvc3Bhbj5cbiAgICB9IEBlbHNlIHtcbiAgICAgIDxzcGFuXG4gICAgICAgIGNsYXNzPVwiIFwiXG4gICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAnbXMtMSc6IGlubmVyVGV4dC5pbm5lclRleHQgJiYgKGxlZnRJY29uKCkgfHwgbGVmdEN1c3RvbUljb24oKSksXG4gICAgICAgICAgJ21lLTEnOiBpbm5lclRleHQuaW5uZXJUZXh0ICYmIChyaWdodEljb24oKSB8fCByaWdodEN1c3RvbUljb24oKSlcbiAgICAgICAgfVwiXG4gICAgICAgICNpbm5lclRleHRcbiAgICAgICAgYXBwVHJhbnNsYXRvcj5cbiAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgICAgPC9zcGFuPlxuICAgIH1cblxuICAgIEBpZiAobG9hZGluZygpKSB7XG4gICAgICA8c3BhbiBjbGFzcz1cImZhIGZhLXNwaW5uZXIgbXMte3sgaWNvbkJ0bigpID8gJycgOiAnMicgfX0gZmEtc3BpblwiPjwvc3Bhbj5cbiAgICB9IEBlbHNlIHtcbiAgICAgIEBpZiAocmlnaHRJY29uKCkpIHtcbiAgICAgICAgPGZhLWljb24gW2ljb25dPVwiaXNEaXNhYmxlZCgpID8gbG9ja2VkKCkgOiByaWdodEljb24oKVwiPjwvZmEtaWNvbj5cbiAgICAgIH0gQGVsc2UgaWYgKHJpZ2h0Q3VzdG9tSWNvbigpKSB7XG4gICAgICAgIDxpIGNsYXNzPVwie3sgcmlnaHRDdXN0b21JY29uKCkgfX1cIj48L2k+XG4gICAgICB9XG4gICAgfVxuICA8L2J1dHRvbj5cbjwvc3Bhbj5cbiJdfQ==
|
|
352
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnRuLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V0cy1mZS1uZy1zZGsvc3JjL2xpYi9TaGFyZWQvY29tcG9uZW50cy9idG4vYnRuLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V0cy1mZS1uZy1zZGsvc3JjL2xpYi9TaGFyZWQvY29tcG9uZW50cy9idG4vYnRuLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxTQUFTLEVBQ1QsVUFBVSxFQUVWLFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUNOLFNBQVMsRUFDVCxnQkFBZ0IsRUFDaEIsUUFBUSxFQUNSLE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBZSxTQUFTLEVBQThCLE1BQU0sZ0JBQWdCLENBQUM7QUFDcEYsT0FBTyxFQUFrQixNQUFNLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUMzRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUM1RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNyRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDN0QsT0FBTyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFHM0QsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNwQyxPQUFPLEVBQUUsWUFBWSxFQUFF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QU07c0JBQWYsTUFBTTtnQkFDaUIsU0FBUztzQkFBaEMsU0FBUzt1QkFBQyxXQUFXOztBQTRFeEIsSUFBSyxhQUdKO0FBSEQsV0FBSyxhQUFhO0lBQ2hCLG9DQUFtQixDQUFBO0lBQ25CLDhCQUFhLENBQUE7QUFDZixDQUFDLEVBSEksYUFBYSxLQUFiLGFBQWEsUUFHakIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBEZXN0cm95UmVmLFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgVmlld0NoaWxkLFxuICBib29sZWFuQXR0cmlidXRlLFxuICBjb21wdXRlZCxcbiAgaW5qZWN0LFxuICBpbnB1dCxcbiAgc2lnbmFsLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Db250cm9sLCBGb3JtR3JvdXAsIEZvcm1BcnJheSwgQWJzdHJhY3RDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgSWNvbkRlZmluaXRpb24sIGZhTG9jayB9IGZyb20gJ0Bmb3J0YXdlc29tZS9mcmVlLXNvbGlkLXN2Zy1pY29ucyc7XG5pbXBvcnQgeyBCdG5TZXJ2aWNlIH0gZnJvbSAnLi9idG4uc2VydmljZSc7XG5pbXBvcnQgeyBUcmFuc2xhdGVQaXBlIH0gZnJvbSAnLi4vLi4vcGlwZXMvdHJhbnNsYXRlLnBpcGUnO1xuaW1wb3J0IHsgVHJhbnNsYXRvckRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvdHJhbnNsYXRvci5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgRm9udEF3ZXNvbWVNb2R1bGUgfSBmcm9tICdAZm9ydGF3ZXNvbWUvYW5ndWxhci1mb250YXdlc29tZSc7XG5pbXBvcnQgeyBNYXRCYWRnZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2JhZGdlJztcbmltcG9ydCB7IE1hdFRvb2x0aXBNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwJztcbmltcG9ydCB7IE5nQ2xhc3MsIE5nSWYsIEFzeW5jUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBJRm9ybVNjaGVtYSB9IGZyb20gJy4uLy4uL21vZGVscy9mb3JtLXNjaGVtYS5tb2RlbCc7XG5pbXBvcnQgeyBJY29uVHlwZSwgQnRuVHlwZSwgQnRuR3JvdXAgfSBmcm9tICcuL2J0bi5tb2RlbCc7XG5pbXBvcnQgeyBpc0VxdWFsIH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgbWVyZ2UsIHRhcCwgdGltZXIgfSBmcm9tICdyeGpzJztcblxuZnVuY3Rpb24gYm9vbGVhbkF0dHJpYnV0ZTIodmFsdWU6IHN0cmluZyB8IGJvb2xlYW4gfCB1bmRlZmluZWQpIHtcbiAgcmV0dXJuIGJvb2xlYW5BdHRyaWJ1dGUodmFsdWUpO1xufVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWJ0bicsXG4gIHRlbXBsYXRlVXJsOiAnLi9idG4uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9idG4uY29tcG9uZW50LnNjc3MnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgLy8gLy9cbiAgaW1wb3J0czogW05nQ2xhc3MsIE5nSWYsIE1hdFRvb2x0aXBNb2R1bGUsIE1hdEJhZGdlTW9kdWxlLCBGb250QXdlc29tZU1vZHVsZSwgVHJhbnNsYXRvckRpcmVjdGl2ZSwgQXN5bmNQaXBlLCBUcmFuc2xhdGVQaXBlXSxcbn0pIC8vIEluaGVyaXRlZFxuZXhwb3J0IGNsYXNzIEJ0bkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIC8qKiBUbyBiZSBwYXNzZWQgd2hlbiB0byBjaGVjayBmb3Igc3BlY2lmaWMgaW52YWxpZCBmb3JtIGZpZWxkcyAqL1xuICBmb3JtU2NoZW1hID0gaW5wdXQ8SUZvcm1TY2hlbWFbXT4oKTtcbiAgZGVidWcgPSBpbnB1dDxib29sZWFuPigpO1xuICBmb3JtSXNJbnZhbGlkID0gY29tcHV0ZWQ8Ym9vbGVhbj4oXG4gICAgKCkgPT4ge1xuICAgICAgY29uc3QgZm9ybSA9IHRoaXMuZm9ybVN0YXRlKCksXG4gICAgICAgIG9uRm9ybUludmFsaWQgPSB0aGlzLm9uRm9ybUludmFsaWQoKSxcbiAgICAgICAgZm9ybVNjaGVtYSA9IHRoaXMuZm9ybVNjaGVtYSgpO1xuXG4gICAgICByZXR1cm4gZm9ybSAmJiBmb3JtLmludmFsaWQgJiYgb25Gb3JtSW52YWxpZCA9PSBPbkZvcm1JbnZhbGlkLndhcm4gJiYgZm9ybVNjaGVtYT8ubGVuZ3RoXG4gICAgICAgID8gZm9ybVNjaGVtYS5zb21lKChmKSA9PiAoPEZvcm1Hcm91cD5mb3JtKS5jb250cm9sc1tmLmZpZWxkPy50b1N0cmluZygpXT8uaW52YWxpZClcbiAgICAgICAgOiBudWxsO1xuICAgIH0sXG4gICAgeyBlcXVhbDogaXNFcXVhbCB9LFxuICApO1xuICBjZW50ZXJCdG4gPSBpbnB1dDxib29sZWFuPih0cnVlKTtcbiAgZGFuZ2VyID0gaW5wdXQ8Ym9vbGVhbj4oKTtcbiAgd2FybmluZyA9IGlucHV0PGJvb2xlYW4+KCk7XG5cbiAgcHJvdGVjdGVkIGljb25UeXBlOiBJY29uVHlwZTtcbiAgaWNvbkJ0biA9IHNpZ25hbDxib29sZWFuPihmYWxzZSk7XG4gIGxvYWRpbmcgPSBzaWduYWw8Ym9vbGVhbj4oZmFsc2UpO1xuICBmb3JtczogKEZvcm1Hcm91cDxhbnk+IHwgQWJzdHJhY3RDb250cm9sPGFueSwgYW55PiB8IEZvcm1Db250cm9sPGFueT4gfCBGb3JtQXJyYXk8YW55PilbXTtcbiAgZm9ybTogRm9ybUdyb3VwPGFueT4gfCBGb3JtQ29udHJvbDxhbnk+IHwgRm9ybUFycmF5PGFueT4gfCBBYnN0cmFjdENvbnRyb2w8YW55LCBhbnk+O1xuXG4gIEBJbnB1dCgnaWNvbicpIHNldCBfaWNvbih2OiBJY29uVHlwZSkge1xuICAgIHRoaXMuaWNvblR5cGUgPSB2O1xuICAgIGNvbnN0IHJlcyA9IHRoaXMuYnRuUy5nZXRJY29uKHYpO1xuICAgIGlmICghcmVzKSByZXR1cm47XG4gICAgaWYgKHJlcy5pY29uUG9zaXRpb24gPT0gJ3JpZ2h0Jykge1xuICAgICAgdGhpcy5yaWdodEljb24uc2V0KHJlcy5pY29uKTtcbiAgICAgIHRoaXMucmlnaHRDdXN0b21JY29uLnNldChyZXMuaWNvblN0cmluZyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubGVmdEljb24uc2V0KHJlcy5pY29uKTtcbiAgICAgIHRoaXMubGVmdEN1c3RvbUljb24uc2V0KHJlcy5pY29uU3RyaW5nKTtcbiAgICB9XG4gIH1cbiAgQElucHV0KCdyaWdodEljb24nKSBzZXQgX3JpZ2h0SWNvbih2OiBJY29uVHlwZSkge1xuICAgIHRoaXMuaWNvblR5cGUgPSB2O1xuICAgIGNvbnN0IHJlcyA9IHRoaXMuYnRuUy5nZXRJY29uKHYpO1xuICAgIHRoaXMucmlnaHRJY29uLnNldChyZXMuaWNvbik7XG4gICAgdGhpcy5yaWdodEN1c3RvbUljb24uc2V0KHJlcy5pY29uU3RyaW5nKTtcbiAgfVxuICBASW5wdXQoJ2xlZnRJY29uJykgc2V0IF9sZWZ0SWNvbih2OiBJY29uVHlwZSkge1xuICAgIHRoaXMuaWNvblR5cGUgPSB2O1xuICAgIGNvbnN0IHJlcyA9IHRoaXMuYnRuUy5nZXRJY29uKHYpO1xuICAgIHRoaXMubGVmdEljb24uc2V0KHJlcy5pY29uKTtcbiAgICB0aGlzLmxlZnRDdXN0b21JY29uLnNldChyZXMuaWNvblN0cmluZyk7XG4gIH1cblxuICBASW5wdXQoJ3R5cGUnKSBzZXQgX3R5cGUodjogQnRuVHlwZSkge1xuICAgIGNvbnN0IHsgX2ljb24sIF9tY2xhc3MsIF90eXBlIH0gPSB0aGlzLmJ0blMuZ2V0VHlwZSh2KTtcbiAgICB0aGlzLl9tY2xhc3MudXBkYXRlKChtY2xhc3MpID0+IF9tY2xhc3MgfHwgbWNsYXNzKTtcbiAgICBpZiAoX2ljb24pIHRoaXMuX2ljb24gPSBfaWNvbjtcbiAgICBpZiAoX3R5cGUpIHRoaXMuX3R5cGUgPSBfdHlwZTtcbiAgfVxuXG4gIEBJbnB1dCgnZ3JvdXAnKSBzZXQgX2dyb3VwKHY6IEJ0bkdyb3VwKSB7XG4gICAgc3dpdGNoICh2KSB7XG4gICAgICBjYXNlICdhZGQnOlxuICAgICAgICB0aGlzLl90eXBlID0gJ291dGxpbmUnO1xuICAgICAgICB0aGlzLl9pY29uID0gJ2FkZCc7XG4gICAgICAgIHRoaXMuaWNvbkJ0bi5zZXQodHJ1ZSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnY2xvbmUnOlxuICAgICAgICB0aGlzLl90eXBlID0gJ3NlY29uZGFyeSc7XG4gICAgICAgIHRoaXMuX2ljb24gPSAnY2xvbmUnO1xuICAgICAgICB0aGlzLl90ZXh0LnNldCgnQ2xvbmUnKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdjcmVhdGUnOlxuICAgICAgICB0aGlzLl90eXBlID0gJ291dGxpbmUnO1xuICAgICAgICB0aGlzLl9pY29uID0gJ2FkZCc7XG4gICAgICAgIHRoaXMuX3RleHQuc2V0KCdDcmVhdGUnKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdjbG9zZSc6XG4gICAgICAgIHRoaXMuX3R5cGUgPSAnZGFuZ2VyLW91dGxpbmUnO1xuICAgICAgICB0aGlzLmN1c3RvbUljb24gPSB0aGlzLmJ0blMuZ2V0SWNvbignY2xvc2UnKS5pY29uU3RyaW5nO1xuICAgICAgICB0aGlzLmljb25CdG4uc2V0KHRydWUpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2RlbGV0ZSc6XG4gICAgICAgIHRoaXMuX3R5cGUgPSAnZGFuZ2VyLW91dGxpbmUnO1xuICAgICAgICB0aGlzLl9pY29uID0gJ2RlbGV0ZSc7XG4gICAgICAgIHRoaXMuaWNvbkJ0bi5zZXQodHJ1ZSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnZG93bmxvYWQnOlxuICAgICAgICB0aGlzLl90eXBlID0gJ3NlY29uZGFyeSc7XG4gICAgICAgIHRoaXMuX2ljb24gPSAnZG93bmxvYWQnO1xuICAgICAgICB0aGlzLmljb25CdG4uc2V0KHRydWUpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2VkaXQnOlxuICAgICAgICB0aGlzLl90eXBlID0gJ3NlY29uZGFyeSc7XG4gICAgICAgIHRoaXMuX2ljb24gPSAnZWRpdCc7XG4gICAgICAgIHRoaXMuaWNvbkJ0bi5zZXQodHJ1ZSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnbGluayc6XG4gICAgICAgIHRoaXMuX3R5cGUgPSAnc2Vjb25kYXJ5JztcbiAgICAgICAgdGhpcy5jdXN0b21JY29uID0gJ2ZhIGZhLWV5ZSc7XG4gICAgICAgIHRoaXMuaWNvbkJ0bi5zZXQodHJ1ZSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnc2VhcmNoJzpcbiAgICAgICAgdGhpcy5fdHlwZSA9ICdzZWNvbmRhcnknO1xuICAgICAgICB0aGlzLl9pY29uID0gJ3NlYXJjaCc7XG4gICAgICAgIHRoaXMuaWNvbkJ0bi5zZXQodHJ1ZSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnc2hvdyc6XG4gICAgICAgIHRoaXMuX3R5cGUgPSAnc2Vjb25kYXJ5JztcbiAgICAgICAgdGhpcy5faWNvbiA9ICdzaG93JztcbiAgICAgICAgdGhpcy5fdGV4dC5zZXQoJ1Nob3cnKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdzdWJtaXQnOlxuICAgICAgICB0aGlzLl90eXBlID0gJ3NlY29uZGFyeSc7XG4gICAgICAgIHRoaXMuX2ljb24gPSAnc2F2ZSc7XG4gICAgICAgIHRoaXMuX3RleHQuc2V0KCdTdWJtaXQnKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdzYXZlJzpcbiAgICAgICAgdGhpcy5fZ3JvdXAgPSAnc3VibWl0JztcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG4gIF9tY2xhc3MgPSBzaWduYWw8c3RyaW5nPihudWxsKTtcbiAgYWN0aW9uVHlwZSA9IGlucHV0PCdzdWJtaXQnIHwgJ2J1dHRvbicgfCAncmVzZXQnPignYnV0dG9uJyk7XG4gIGFuaW1hdGUgPSBpbnB1dChmYWxzZSwgeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUyIGFzIHVuZGVmaW5lZCB9KTtcbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlMiB9KSBleGNsdWRlTG9nZ2luZyA9IGZhbHNlO1xuICBASW5wdXQoKSBsb2dnaW5nVmFsdWU6IHN0cmluZztcbiAgYmFkZ2UgPSBpbnB1dDxzdHJpbmcgfCBudW1iZXI+KG51bGwpO1xuICBjbGFzcyA9IGlucHV0PHN0cmluZz4oKTtcbiAgLyoqXG4gICAqIFNldHMgdGhlIGxlZnQgc2lkZSBpY29uXG4gICAqL1xuICBASW5wdXQoKSBzZXQgY3VzdG9tSWNvbih2OiBzdHJpbmcpIHtcbiAgICB0aGlzLmxlZnRDdXN0b21JY29uLnNldCh2KTtcbiAgfVxuICBASW5wdXQoeyBhbGlhczogJ2Rpc2FibGVkJyB9KSBzZXQgX2Rpc2FibGVkKHY6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmRpc2FibGVkLnNldCh2IHx8IGZhbHNlKTtcbiAgfVxuICBmb3JtU3RhdGUgPSBjb21wdXRlZDxJRm9ybVN0YXRlPigoKSA9PiB7XG4gICAgY29uc3QgZCA9IHRoaXMuY2hlY2tGb3JtU3RhdGUoKTtcblxuICAgIGlmICh0aGlzLmRlYnVnKCkpIHtcbiAgICAgIGRlYnVnZ2VyO1xuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgcGVuZGluZzogdGhpcy5mb3JtPy5wZW5kaW5nLFxuICAgICAgZGlydHk6IHRoaXMuZm9ybT8uZGlydHksXG4gICAgICBpbnZhbGlkOiB0aGlzLmZvcm0/LmludmFsaWQsXG4gICAgICBwcmlzdGluZTogdGhpcy5mb3JtPy5wcmlzdGluZSxcbiAgICAgIHZhbGlkOiB0aGlzLmZvcm0/LnZhbGlkLFxuICAgIH07XG4gIH0pO1xuICBjb3VudCA9IDA7XG4gIGNoZWNrRm9ybVN0YXRlID0gc2lnbmFsKHRoaXMuY291bnQpO1xuICBASW5wdXQoJ2Zvcm0nKSBzZXQgX2Zvcm0odjogRm9ybUdyb3VwIHwgRm9ybUNvbnRyb2wgfCBGb3JtQXJyYXkgfCBBYnN0cmFjdENvbnRyb2wpIHtcbiAgICBpZiAodGhpcy5kZWJ1ZygpKSBkZWJ1Z2dlcjtcbiAgICB0aGlzLmZvcm0gPSB2O1xuICAgIGlmICh2KSB7XG4gICAgICB0aGlzLmNoZWNrRm9ybVN0YXRlLnNldCgrK3RoaXMuY291bnQpO1xuICAgICAgY29uc3Qgc3ViID0gbWVyZ2Uodi52YWx1ZUNoYW5nZXMucGlwZShkZWJvdW5jZVRpbWUoMjAwKSksIHYuc3RhdHVzQ2hhbmdlcylcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgdGFwKChyKSA9PiB0aGlzLmNoZWNrRm9ybVN0YXRlLnNldCgrK3RoaXMuY291bnQpKSxcbiAgICAgICAgICBkZWJvdW5jZVRpbWUoMTAwMCksXG4gICAgICAgIClcbiAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5jaGVja0Zvcm1TdGF0ZS5zZXQoKyt0aGlzLmNvdW50KTtcbiAgICAgICAgICBpZiAodGhpcy5kZWJ1ZygpKSB7XG4gICAgICAgICAgICBjb25zdCBkID0gdGhpcy5jaGVja0Zvcm1TdGF0ZSgpO1xuICAgICAgICAgICAgZGVidWdnZXI7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIHRoaXMuZGVzdHJveVJlZi5vbkRlc3Ryb3koKCkgPT4ge1xuICAgICAgICBpZiAodGhpcy5kZWJ1ZygpKSB7XG4gICAgICAgICAgZGVidWdnZXI7XG4gICAgICAgIH1cbiAgICAgICAgc3ViPy51bnN1YnNjcmliZSgpO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgZm9ybXNTdGF0ZSA9IHNpZ25hbDxJRm9ybVN0YXRlW10+KHVuZGVmaW5lZCk7XG4gIEBJbnB1dCgnZm9ybXMnKSBzZXQgX2Zvcm1zKHY6IChGb3JtR3JvdXAgfCBGb3JtQ29udHJvbCB8IEZvcm1BcnJheSB8IEFic3RyYWN0Q29udHJvbClbXSkge1xuICAgIHRoaXMuZm9ybXMgPSB2O1xuICAgIGlmICghdikge1xuICAgICAgdGhpcy5mb3Jtc1N0YXRlLnNldCh1bmRlZmluZWQpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBzdWIgPSBtZXJnZSh2Lm1hcCgoZikgPT4gZi5zdGF0dXNDaGFuZ2VzKSlcbiAgICAgIC5waXBlKGRlYm91bmNlVGltZSg3MDApKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuZm9ybXNTdGF0ZS5zZXQoXG4gICAgICAgICAgdi5tYXAoKHgpID0+ICh7XG4gICAgICAgICAgICBwZW5kaW5nOiB4LnBlbmRpbmcsXG4gICAgICAgICAgICBkaXJ0eTogeC5kaXJ0eSxcbiAgICAgICAgICAgIGludmFsaWQ6IHguaW52YWxpZCxcbiAgICAgICAgICAgIHByaXN0aW5lOiB4LnByaXN0aW5lLFxuICAgICAgICAgICAgdmFsaWQ6IHgudmFsaWQsXG4gICAgICAgICAgfSkpLFxuICAgICAgICApO1xuICAgICAgfSk7XG4gICAgdGhpcy5kZXN0cm95UmVmLm9uRGVzdHJveSgoKSA9PiBzdWI/LnVuc3Vic2NyaWJlKCkpO1xuICB9XG4gIGhlbHAgPSBpbnB1dDxzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkPigpO1xuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgbm8gbG9uZ2VyIG5lZWRlZCB0byBkZXRlY3QgdGhlIGNvcnJlY3Qgc3BhY2luZyBiZXR3ZWVuIGljb24gYW5kIHRleHRcbiAgICovXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZTIsIGFsaWFzOiAnaWNvbkJ0bicgfSkgc2V0IF9pY29uQnRuKHY6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmljb25CdG4uc2V0KHYgfHwgZmFsc2UpO1xuICB9XG4gIEBJbnB1dCgnbG9hZGluZycpIHNldCBfbG9hZGluZyh2OiBib29sZWFuKSB7XG4gICAgdGhpcy5sb2FkaW5nLnNldCh2KTtcbiAgfVxuICBtY2xhc3MgPSBpbnB1dDxzdHJpbmc+KG51bGwpO1xuICBzaG93SGVscEljb24gPSBpbnB1dCh0cnVlKTtcbiAgcmlnaHRJY29uID0gc2lnbmFsPEljb25EZWZpbml0aW9uPihudWxsKTtcbiAgQElucHV0KHsgYWxpYXM6ICdyaWdodEN1c3RvbUljb24nIH0pIHNldCBfcmlnaHRDdXN0b21JY29uKHY6IHN0cmluZykge1xuICAgIHRoaXMucmlnaHRDdXN0b21JY29uLnNldCh2KTtcbiAgfVxuICByaWdodEN1c3RvbUljb24gPSBzaWduYWw8c3RyaW5nPihudWxsKTtcbiAgbGVmdEljb24gPSBzaWduYWw8SWNvbkRlZmluaXRpb24+KG51bGwpO1xuICBASW5wdXQoeyBhbGlhczogJ2xlZnRDdXN0b21JY29uJyB9KSBzZXQgX2xlZnRDdXN0b21JY29uKHY6IHN0cmluZykge1xuICAgIHRoaXMubGVmdEN1c3RvbUljb24uc2V0KHYpO1xuICB9XG4gIGxlZnRDdXN0b21JY29uID0gc2lnbmFsPHN0cmluZz4obnVsbCk7XG4gIHRleHQgPSBpbnB1dDxzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkPigpO1xuICB2YWxpZCA9IGlucHV0KHRydWUpO1xuICBtaW5pID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UsIHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlMiBhcyB1bmRlZmluZWQgfSk7XG4gIG9uRm9ybUludmFsaWQgPSBpbnB1dDxrZXlvZiB0eXBlb2YgT25Gb3JtSW52YWxpZD4oT25Gb3JtSW52YWxpZC5kaXNhYmxlKTtcbiAgQE91dHB1dCgpIG1jbGljayA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQFZpZXdDaGlsZCgnaW5uZXJUZXh0JykgaW5uZXJUZXh0OiBFbGVtZW50UmVmPEhUTUxTcGFuRWxlbWVudD47XG4gIGxvY2tlZCA9IHNpZ25hbChmYUxvY2spO1xuICBwcm90ZWN0ZWQgX3RleHQgPSBzaWduYWw8c3RyaW5nIHwgbnVsbD4odW5kZWZpbmVkKTtcbiAgcHJvdGVjdGVkIGRpc2FibGVkID0gc2lnbmFsPGJvb2xlYW4gfCBudWxsPih1bmRlZmluZWQpO1xuICBjb21wdXRlZFRleHQgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgaW5wdXQgPSB0aGlzLnRleHQoKSxcbiAgICAgIGxvY2FsID0gdGhpcy5fdGV4dCgpO1xuICAgIHJldHVybiBpbnB1dCA9PSBudWxsID8gbG9jYWwgOiBpbnB1dDtcbiAgfSk7XG4gIHB1YmxpYyBidG5TID0gaW5qZWN0KEJ0blNlcnZpY2UpO1xuICBwdWJsaWMgZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcblxuICBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgbmdBZnRlclZpZXdDaGVja2VkKCk6IHZvaWQge1xuICAgIC8vQ2FsbGVkIGFmdGVyIGV2ZXJ5IGNoZWNrIG9mIHRoZSBjb21wb25lbnQncyB2aWV3LiBBcHBsaWVzIHRvIGNvbXBvbmVudHMgb25seS5cbiAgICAvL0FkZCAnaW1wbGVtZW50cyBBZnRlclZpZXdDaGVja2VkJyB0byB0aGUgY2xhc3MuXG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuX21jbGFzcygpKSB0aGlzLl90eXBlID0gdGhpcy5idG5TLmRlZmF1bHRUeXBlO1xuICB9XG5cbiAgY2hlY2tGb3JtKCkge1xuICAgIGlmICh0aGlzLmlzRGlzYWJsZWQoKSAmJiB0aGlzLmZvcm0pIHtcbiAgICAgIHRoaXMuZm9ybS5tYXJrQWxsQXNUb3VjaGVkKCk7XG4gICAgICBjb25zdCBmb3JtID0gdGhpcy5mb3JtO1xuICAgICAgY29uc29sZS5sb2coZm9ybSk7XG4gICAgICBpZiAoZm9ybSBpbnN0YW5jZW9mIEZvcm1Hcm91cCkge1xuICAgICAgICBjb25zb2xlLmxvZyhcbiAgICAgICAgICBPYmplY3Qua2V5cyhmb3JtLmNvbnRyb2xzKVxuICAgICAgICAgICAgLmZpbHRlcigoeCkgPT4gIWZvcm0uY29udHJvbHNbeF0udmFsaWQpXG4gICAgICAgICAgICAubWFwKCh4KSA9PiBmb3JtLmNvbnRyb2xzW3hdKSxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKHRoaXMuaXNEaXNhYmxlZCgpICYmIHRoaXMuZm9ybXMpIHtcbiAgICAgIHRoaXMuZm9ybXMuZm9yRWFjaCgoZm9ybSkgPT4gZm9ybS5tYXJrQWxsQXNUb3VjaGVkKCkpO1xuICAgICAgLy8gdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgY29uc29sZS5sb2codGhpcy5mb3Jtcyk7XG4gICAgfVxuICB9XG5cbiAgc2V0TG9hZGVyKHZhbDogYm9vbGVhbikge1xuICAgIHRoaXMubG9hZGluZy5zZXQodmFsKTtcbiAgfVxuICBnZXQgZXh0cmFjdFRleHQoKSB7XG4gICAgcmV0dXJuIGBDbGlja2VkIG9uICR7dGhpcy50ZXh0KCkgfHwgdGhpcy5pbm5lclRleHQ/Lm5hdGl2ZUVsZW1lbnQ/LmlubmVySFRNTCB8fCB0aGlzLmljb25UeXBlIHx8ICdidXR0b24nfSAke1xuICAgICAgdGhpcy5sb2dnaW5nVmFsdWUgPyAnXFxuVHJhY2sgdmFsdWU6ICcgKyB0aGlzLmxvZ2dpbmdWYWx1ZSA6ICcnXG4gICAgfWA7XG4gIH1cbiAgY2xpY2soJGV2ZW50KSB7XG4gICAgLy8gZGVidWdnZXJcbiAgICBpZiAodGhpcy5pc0Rpc2FibGVkKCkgfHwgdGhpcy5sb2FkaW5nKCkpIHJldHVybjtcbiAgICB0aGlzLm1jbGljay5lbWl0KCRldmVudCk7XG4gICAgdGhpcy5idG5TLmxvZ0NsaWNrKHRoaXMpO1xuICB9XG5cbiAgaXNEaXNhYmxlZCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBpZiAodGhpcy5kZWJ1ZygpKSBkZWJ1Z2dlcjtcbiAgICBjb25zdCBkaXNhYmxlZCA9IHRoaXMuZGlzYWJsZWQoKSxcbiAgICAgIHZhbGlkID0gdGhpcy52YWxpZCgpLFxuICAgICAgb25Gb3JtSW52YWxpZCA9IHRoaXMub25Gb3JtSW52YWxpZCgpLFxuICAgICAgZm9ybSA9IHRoaXMuZm9ybVN0YXRlKCksXG4gICAgICBmb3JtcyA9IHRoaXMuZm9ybXNTdGF0ZSgpIHx8IFtdO1xuICAgIHJldHVybiBkaXNhYmxlZCB8fCAhdmFsaWQgfHwgKG9uRm9ybUludmFsaWQgPT0gT25Gb3JtSW52YWxpZC5kaXNhYmxlICYmIChmb3JtPy5pbnZhbGlkIHx8IGZvcm0/LnBlbmRpbmcgfHwgZm9ybXMuc29tZSgoeCkgPT4geC5wZW5kaW5nKSkpO1xuICB9KTtcblxuICBkaXNhYmxlKCkge1xuICAgIHRoaXMuZGlzYWJsZWQuc2V0KHRydWUpO1xuICB9XG5cbiAgZW5hYmxlKCkge1xuICAgIHRoaXMuZGlzYWJsZWQuc2V0KGZhbHNlKTtcbiAgfVxufVxuZW51bSBPbkZvcm1JbnZhbGlkIHtcbiAgZGlzYWJsZSA9ICdkaXNhYmxlJyxcbiAgd2FybiA9ICd3YXJuJyxcbn1cbmludGVyZmFjZSBJRm9ybVN0YXRlIHtcbiAgcGVuZGluZz86IGJvb2xlYW47XG4gIGRpcnR5PzogYm9vbGVhbjtcbiAgaW52YWxpZD86IGJvb2xlYW47XG4gIHByaXN0aW5lPzogYm9vbGVhbjtcbiAgdmFsaWQ/OiBib29sZWFuO1xufVxuIiwiPHNwYW5cbiAgY2xhc3M9XCJ7eyBjbGFzcygpIH19ICBkLWZsZXggIGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCJcbiAgW25nQ2xhc3NdPVwieyBkaXNhYmxlZDogaXNEaXNhYmxlZCgpLCBtaW5pOiBtaW5pKCkgfVwiXG4gIChjbGljayk9XCJjaGVja0Zvcm0oKVwiPlxuICBAaWYgKHNob3dIZWxwSWNvbigpICYmIGhlbHAoKSkge1xuICAgIDxpIGNsYXNzPVwiZmEgZmEtaW5mby1jaXJjbGUgbWUtMiB0ZXh0LXByaW1hcnlcIiBbbWF0VG9vbHRpcF09XCJoZWxwKCkgfCBhcHBUcmFuc2xhdGUgfCBhc3luY1wiPjwvaT5cbiAgfVxuICA8YnV0dG9uXG4gICAgdHlwZT1cInt7IGFjdGlvblR5cGUoKSB9fVwiXG4gICAgY2xhc3M9XCJ7eyBtY2xhc3MoKSB9fSB7eyBfbWNsYXNzKCkgfX0gZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBcIlxuICAgIFttYXRCYWRnZV09XCJiYWRnZSgpXCJcbiAgICBbbmdDbGFzc109XCJ7XG4gICAgICBjaGFuZ2Vjb2xvcjogdmFsaWQoKSxcbiAgICAgICdidG4tcmFpc2VkJzogYW5pbWF0ZSgpLFxuICAgICAgZGlzYWJsZWQ6IGlzRGlzYWJsZWQoKSxcbiAgICAgIGlzRGFuZ2VyOiBkYW5nZXIoKSxcbiAgICAgIGlzV2FybmluZzogd2FybmluZygpLFxuICAgICAgaW52YWxpZDogZm9ybUlzSW52YWxpZCgpLFxuICAgICAgJ2p1c3RpZnktY29udGVudC1jZW50ZXInOiBjZW50ZXJCdG4oKVxuICAgIH1cIlxuICAgIFtkaXNhYmxlZF09XCJpc0Rpc2FibGVkKClcIlxuICAgIChjbGljayk9XCJjbGljaygkZXZlbnQpXCJcbiAgICBbbWF0VG9vbHRpcF09XCJzaG93SGVscEljb24oKSA/IG51bGwgOiAoaGVscCgpIHwgYXBwVHJhbnNsYXRlIHwgYXN5bmMpXCI+XG4gICAgQGlmICghbG9hZGluZygpKSB7XG4gICAgICBAaWYgKGxlZnRJY29uKCkpIHtcbiAgICAgICAgPGZhLWljb24gW2ljb25dPVwiaXNEaXNhYmxlZCgpID8gbG9ja2VkKCkgOiBsZWZ0SWNvbigpXCI+PC9mYS1pY29uPlxuICAgICAgfSBAZWxzZSBpZiAobGVmdEN1c3RvbUljb24oKSkge1xuICAgICAgICA8aSBjbGFzcz1cInt7IGxlZnRDdXN0b21JY29uKCkgfX1cIj48L2k+XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGlmIChjb21wdXRlZFRleHQoKSkge1xuICAgICAgPHNwYW4gY2xhc3M9XCJcIiBbbmdDbGFzc109XCJ7ICdtcy0xJzogbGVmdEljb24oKSB8fCBsZWZ0Q3VzdG9tSWNvbigpLCAnbWUtMSc6IHJpZ2h0SWNvbigpIHx8IHJpZ2h0Q3VzdG9tSWNvbigpIH1cIj5cbiAgICAgICAge3sgY29tcHV0ZWRUZXh0KCkgfCBhcHBUcmFuc2xhdGUgfCBhc3luYyB9fVxuICAgICAgPC9zcGFuPlxuICAgIH0gQGVsc2Uge1xuICAgICAgPHNwYW5cbiAgICAgICAgY2xhc3M9XCIgXCJcbiAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICdtcy0xJzogaW5uZXJUZXh0LmlubmVyVGV4dCAmJiAobGVmdEljb24oKSB8fCBsZWZ0Q3VzdG9tSWNvbigpKSxcbiAgICAgICAgICAnbWUtMSc6IGlubmVyVGV4dC5pbm5lclRleHQgJiYgKHJpZ2h0SWNvbigpIHx8IHJpZ2h0Q3VzdG9tSWNvbigpKVxuICAgICAgICB9XCJcbiAgICAgICAgI2lubmVyVGV4dFxuICAgICAgICBhcHBUcmFuc2xhdG9yPlxuICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgICA8L3NwYW4+XG4gICAgfVxuXG4gICAgQGlmIChsb2FkaW5nKCkpIHtcbiAgICAgIDxzcGFuIGNsYXNzPVwiZmEgZmEtc3Bpbm5lciBtcy17eyBpY29uQnRuKCkgPyAnJyA6ICcyJyB9fSBmYS1zcGluXCI+PC9zcGFuPlxuICAgIH0gQGVsc2Uge1xuICAgICAgQGlmIChyaWdodEljb24oKSkge1xuICAgICAgICA8ZmEtaWNvbiBbaWNvbl09XCJpc0Rpc2FibGVkKCkgPyBsb2NrZWQoKSA6IHJpZ2h0SWNvbigpXCI+PC9mYS1pY29uPlxuICAgICAgfSBAZWxzZSBpZiAocmlnaHRDdXN0b21JY29uKCkpIHtcbiAgICAgICAgPGkgY2xhc3M9XCJ7eyByaWdodEN1c3RvbUljb24oKSB9fVwiPjwvaT5cbiAgICAgIH1cbiAgICB9XG4gIDwvYnV0dG9uPlxuPC9zcGFuPlxuIl19
|
|
@@ -3422,18 +3422,23 @@ class BtnComponent {
|
|
|
3422
3422
|
debugger;
|
|
3423
3423
|
this.form = v;
|
|
3424
3424
|
if (v) {
|
|
3425
|
-
|
|
3426
|
-
|
|
3427
|
-
.
|
|
3428
|
-
|
|
3429
|
-
|
|
3430
|
-
|
|
3431
|
-
|
|
3432
|
-
|
|
3433
|
-
|
|
3434
|
-
|
|
3425
|
+
this.checkFormState.set(++this.count);
|
|
3426
|
+
const sub = merge(v.valueChanges.pipe(debounceTime(200)), v.statusChanges)
|
|
3427
|
+
.pipe(tap$1((r) => this.checkFormState.set(++this.count)), debounceTime(1000))
|
|
3428
|
+
.subscribe(() => {
|
|
3429
|
+
this.checkFormState.set(++this.count);
|
|
3430
|
+
if (this.debug()) {
|
|
3431
|
+
const d = this.checkFormState();
|
|
3432
|
+
debugger;
|
|
3433
|
+
}
|
|
3434
|
+
});
|
|
3435
|
+
this.destroyRef.onDestroy(() => {
|
|
3436
|
+
if (this.debug()) {
|
|
3437
|
+
debugger;
|
|
3438
|
+
}
|
|
3439
|
+
sub?.unsubscribe();
|
|
3440
|
+
});
|
|
3435
3441
|
}
|
|
3436
|
-
this.checkFormState.set(true);
|
|
3437
3442
|
}
|
|
3438
3443
|
set _forms(v) {
|
|
3439
3444
|
this.forms = v;
|
|
@@ -3491,7 +3496,10 @@ class BtnComponent {
|
|
|
3491
3496
|
this.badge = input(null);
|
|
3492
3497
|
this.class = input();
|
|
3493
3498
|
this.formState = computed(() => {
|
|
3494
|
-
this.checkFormState();
|
|
3499
|
+
const d = this.checkFormState();
|
|
3500
|
+
if (this.debug()) {
|
|
3501
|
+
debugger;
|
|
3502
|
+
}
|
|
3495
3503
|
return {
|
|
3496
3504
|
pending: this.form?.pending,
|
|
3497
3505
|
dirty: this.form?.dirty,
|
|
@@ -3500,7 +3508,8 @@ class BtnComponent {
|
|
|
3500
3508
|
valid: this.form?.valid,
|
|
3501
3509
|
};
|
|
3502
3510
|
});
|
|
3503
|
-
this.
|
|
3511
|
+
this.count = 0;
|
|
3512
|
+
this.checkFormState = signal(this.count);
|
|
3504
3513
|
this.formsState = signal(undefined);
|
|
3505
3514
|
this.help = input();
|
|
3506
3515
|
this.mclass = input(null);
|