@esfaenza/forms-and-validations 13.3.15 → 13.4.1
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/esm2020/lib/forms/base-form-control.mjs +32 -8
- package/esm2020/lib/forms/form-adaptive/form-adaptive.component.loc.mjs +4 -4
- package/esm2020/lib/forms/form-adaptive/form-adaptive.component.mjs +70 -12
- package/esm2020/lib/forms/form-autocomplete/form-autocomplete.component.loc.mjs +4 -4
- package/esm2020/lib/forms/form-autocomplete/form-autocomplete.component.mjs +11 -9
- package/esm2020/lib/forms/form-checkbox/form-checkbox.component.mjs +5 -4
- package/esm2020/lib/forms/form-date/form-date.component.mjs +5 -5
- package/esm2020/lib/forms/form-datetime/form-datetime.component.mjs +5 -5
- package/esm2020/lib/forms/form-empty/form-empty.component.mjs +4 -4
- package/esm2020/lib/forms/form-error/form-error.component.mjs +4 -4
- package/esm2020/lib/forms/form-file/form-file.component.loc.mjs +4 -4
- package/esm2020/lib/forms/form-file/form-file.component.mjs +23 -9
- package/esm2020/lib/forms/form-info/form-info.component.mjs +4 -4
- package/esm2020/lib/forms/form-input/form-input.component.mjs +5 -5
- package/esm2020/lib/forms/form-multiselect/form-multiselect.component.loc.mjs +4 -4
- package/esm2020/lib/forms/form-multiselect/form-multiselect.component.mjs +4 -4
- package/esm2020/lib/forms/form-select/form-select.component.loc.mjs +4 -4
- package/esm2020/lib/forms/form-select/form-select.component.mjs +10 -6
- package/esm2020/lib/forms/form-template/form-template.component.mjs +5 -5
- package/esm2020/lib/forms/form-textarea/form-textarea.component.mjs +5 -5
- package/esm2020/lib/forms/form-time/form-time.component.mjs +4 -4
- package/esm2020/lib/forms-and-validations.module.mjs +5 -5
- package/esm2020/lib/models/ChangeEvent.mjs +7 -0
- package/esm2020/lib/models/dayjs-adapter/dayjs-date-adapter.mjs +4 -4
- package/esm2020/lib/validations/base-validation.loc.mjs +4 -4
- package/esm2020/lib/validations/base-validation.mjs +40 -10
- package/esm2020/lib/validations/customValidators/CustomRequiredDirective.mjs +4 -4
- package/esm2020/lib/validations/validation-autocomplete/validation-autocomplete.component.mjs +11 -9
- package/esm2020/lib/validations/validation-autocomplete-multi/validation-autocomplete-multi.component.mjs +11 -9
- package/esm2020/lib/validations/validation-currency/validation-currency.component.mjs +8 -6
- package/esm2020/lib/validations/validation-date/validation-date.component.mjs +9 -8
- package/esm2020/lib/validations/validation-datetime/validation-datetime.component.mjs +9 -8
- package/esm2020/lib/validations/validation-input/validation-input.component.mjs +9 -8
- package/esm2020/lib/validations/validation-select/validation-select.component.mjs +11 -10
- package/esm2020/lib/validations/validation-text-area/validation-text-area.component.mjs +8 -6
- package/fesm2015/esfaenza-forms-and-validations.mjs +321 -170
- package/fesm2015/esfaenza-forms-and-validations.mjs.map +1 -1
- package/fesm2020/esfaenza-forms-and-validations.mjs +319 -170
- package/fesm2020/esfaenza-forms-and-validations.mjs.map +1 -1
- package/lib/forms/base-form-control.d.ts +18 -4
- package/lib/forms/form-adaptive/form-adaptive.component.d.ts +20 -3
- package/lib/forms/form-autocomplete/form-autocomplete.component.d.ts +4 -2
- package/lib/forms/form-file/form-file.component.d.ts +7 -4
- package/lib/forms/form-select/form-select.component.d.ts +4 -2
- package/lib/models/ChangeEvent.d.ts +5 -0
- package/lib/validations/base-validation.d.ts +23 -2
- package/lib/validations/validation-autocomplete/validation-autocomplete.component.d.ts +3 -3
- package/lib/validations/validation-autocomplete-multi/validation-autocomplete-multi.component.d.ts +3 -3
- package/lib/validations/validation-date/validation-date.component.d.ts +0 -1
- package/lib/validations/validation-datetime/validation-datetime.component.d.ts +0 -1
- package/lib/validations/validation-input/validation-input.component.d.ts +0 -1
- package/lib/validations/validation-select/validation-select.component.d.ts +0 -1
- package/package.json +12 -12
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
import { EventEmitter, Input, Output, ViewChild, Directive } from "@angular/core";
|
|
3
3
|
// Direttive, Componenti, Librerie
|
|
4
4
|
import { TooltipDirective } from "ngx-bootstrap/tooltip";
|
|
5
|
+
import { Subject } from "rxjs";
|
|
6
|
+
import { takeUntil } from "rxjs/operators";
|
|
5
7
|
import * as i0 from "@angular/core";
|
|
6
8
|
/**
|
|
7
9
|
* Classe astratta base che contiene le logiche / proprietà in comune a tutti i validatori
|
|
@@ -9,7 +11,9 @@ import * as i0 from "@angular/core";
|
|
|
9
11
|
* Nota bene: I tooltip rallentano tantissimo la pagina perché il tizio che ha fatto ngx bootstrap non è capace
|
|
10
12
|
*/
|
|
11
13
|
export class BaseValidation {
|
|
12
|
-
|
|
14
|
+
/** @ignore Constructor */
|
|
15
|
+
constructor(cdr) {
|
|
16
|
+
this.cdr = cdr;
|
|
13
17
|
/**
|
|
14
18
|
* Variabile per tenere in memoria il fatto che il componente è forzato a invalido o no
|
|
15
19
|
*/
|
|
@@ -93,6 +97,7 @@ export class BaseValidation {
|
|
|
93
97
|
* Evento che indica la finalizzazione del valore avvenuta su un controllo
|
|
94
98
|
*/
|
|
95
99
|
this.inputFinalized = new EventEmitter();
|
|
100
|
+
this.destroyed$ = new Subject();
|
|
96
101
|
/**
|
|
97
102
|
* @ignore
|
|
98
103
|
*/
|
|
@@ -142,13 +147,32 @@ export class BaseValidation {
|
|
|
142
147
|
set forceInvalid(val) {
|
|
143
148
|
this._forceInvalid = val;
|
|
144
149
|
if (val)
|
|
145
|
-
setTimeout(() =>
|
|
150
|
+
setTimeout(() => {
|
|
151
|
+
this.baseInput.control.setErrors({ forcedtoinvalid: true });
|
|
152
|
+
this.baseInput.control.markAsTouched();
|
|
153
|
+
this.baseInput.control.markAsDirty();
|
|
154
|
+
this.cdr.detectChanges();
|
|
155
|
+
});
|
|
146
156
|
else
|
|
147
157
|
setTimeout(() => {
|
|
148
158
|
this.baseInput.control.setErrors({ forcedtoinvalid: null });
|
|
149
159
|
this.baseInput.control.updateValueAndValidity();
|
|
150
160
|
});
|
|
151
161
|
}
|
|
162
|
+
ngOnInit() {
|
|
163
|
+
if (this.SetValidationSubject) {
|
|
164
|
+
this.SetValidationSubject.pipe(takeUntil(this.destroyed$)).subscribe(v => {
|
|
165
|
+
if (v.fieldName + "_internal" == this.id) {
|
|
166
|
+
this.forceInvalid = true;
|
|
167
|
+
this.showTooltipWithMessage(v.error);
|
|
168
|
+
}
|
|
169
|
+
});
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
ngOnDestroy() {
|
|
173
|
+
this.destroyed$.next();
|
|
174
|
+
this.destroyed$.complete();
|
|
175
|
+
}
|
|
152
176
|
/**
|
|
153
177
|
* Helper che controlla se il tooltip deve essere mostrato o meno,
|
|
154
178
|
* richiamato direttamente dall'HTML dei componenti
|
|
@@ -160,9 +184,13 @@ export class BaseValidation {
|
|
|
160
184
|
/**
|
|
161
185
|
* Helper che calcola il messaggio da mostrare nel tooltip che andrà ad aprire
|
|
162
186
|
*/
|
|
163
|
-
showTooltipWithMessage() {
|
|
164
|
-
|
|
165
|
-
if (this.
|
|
187
|
+
showTooltipWithMessage(messageOverride = null) {
|
|
188
|
+
// Aggiorno il messaggio di validazione solo se il valore è diverso dall'ultimo valore ricevuto
|
|
189
|
+
if (this.valueOnLastValidation != this.baseInput.value) {
|
|
190
|
+
this.validationFailedBind = messageOverride || this.validationFailed || (this.InferErrorMessages ? this.inferMessage() : "");
|
|
191
|
+
this.valueOnLastValidation = this.baseInput.value;
|
|
192
|
+
}
|
|
193
|
+
if (this.validationFailedBind)
|
|
166
194
|
this.tooltip.show();
|
|
167
195
|
}
|
|
168
196
|
/**
|
|
@@ -236,11 +264,11 @@ export class BaseValidation {
|
|
|
236
264
|
this.observable.unsubscribe();
|
|
237
265
|
}
|
|
238
266
|
}
|
|
239
|
-
BaseValidation.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.
|
|
240
|
-
BaseValidation.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.
|
|
241
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.
|
|
267
|
+
BaseValidation.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: BaseValidation, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
268
|
+
BaseValidation.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.4.0", type: BaseValidation, inputs: { FocusSubject: "FocusSubject", SetValidationSubject: "SetValidationSubject", InferErrorMessages: "InferErrorMessages", FieldAppearence: "FieldAppearence", FloatingLabel: "FloatingLabel", validationFailed: "validationFailed", readonly: "readonly", widthPx: "widthPx", disabled: "disabled", placeholder: "placeholder", class: "class", style: "style", pattern: "pattern", noValidate: "noValidate", autocomplete: "autocomplete", id: "id", submitted: "submitted", forceInvalid: "forceInvalid" }, outputs: { inputChange: "inputChange", inputFocus: "inputFocus", inputFinalized: "inputFinalized" }, viewQueries: [{ propertyName: "tooltip", first: true, predicate: TooltipDirective, descendants: true }, { propertyName: "tooltip_static", first: true, predicate: TooltipDirective, descendants: true, static: true }, { propertyName: "htmlInput", first: true, predicate: ["htmlInput"], descendants: true }, { propertyName: "baseInput", first: true, predicate: ["baseInput"], descendants: true }, { propertyName: "baseInput_static", first: true, predicate: ["baseInput"], descendants: true, static: true }], ngImport: i0 });
|
|
269
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: BaseValidation, decorators: [{
|
|
242
270
|
type: Directive
|
|
243
|
-
}], propDecorators: { tooltip: [{
|
|
271
|
+
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { tooltip: [{
|
|
244
272
|
type: ViewChild,
|
|
245
273
|
args: [TooltipDirective, { static: false }]
|
|
246
274
|
}], tooltip_static: [{
|
|
@@ -257,6 +285,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
|
|
|
257
285
|
args: ["baseInput", { static: true }]
|
|
258
286
|
}], FocusSubject: [{
|
|
259
287
|
type: Input
|
|
288
|
+
}], SetValidationSubject: [{
|
|
289
|
+
type: Input
|
|
260
290
|
}], InferErrorMessages: [{
|
|
261
291
|
type: Input
|
|
262
292
|
}], FieldAppearence: [{
|
|
@@ -297,4 +327,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
|
|
|
297
327
|
}], forceInvalid: [{
|
|
298
328
|
type: Input
|
|
299
329
|
}] } });
|
|
300
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS12YWxpZGF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZm9ybXMtYW5kLXZhbGlkYXRpb25zL3NyYy9saWIvdmFsaWRhdGlvbnMvYmFzZS12YWxpZGF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFVBQVU7QUFDVixPQUFPLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBYyxNQUFNLGVBQWUsQ0FBQztBQU05RixrQ0FBa0M7QUFDbEMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7O0FBR3pEOzs7O0dBSUc7QUFFSCxNQUFNLE9BQWdCLGNBQWM7SUFEcEM7UUFhSTs7V0FFRztRQUNPLGtCQUFhLEdBQVksS0FBSyxDQUFDO1FBRXpDOztXQUVHO1FBQ0ksYUFBUSxHQUFZLEtBQUssQ0FBQztRQXdDakM7Ozs7O1dBS0c7UUFDTSx1QkFBa0IsR0FBWSxJQUFJLENBQUM7UUFFNUM7O1dBRUc7UUFDTSxvQkFBZSxHQUErQyxTQUFTLENBQUM7UUFFakY7Ozs7V0FJRztRQUNNLGtCQUFhLEdBQVksSUFBSSxDQUFDO1FBRXZDOzs7O1dBSUc7UUFDTSxxQkFBZ0IsR0FBVyxFQUFFLENBQUM7UUFFdkM7O1dBRUc7UUFDTSxhQUFRLEdBQVksS0FBSyxDQUFDO1FBRW5DOztXQUVHO1FBQ00sWUFBTyxHQUFXLElBQUksQ0FBQztRQUVoQzs7V0FFRztRQUNNLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFFbkM7O1dBRUc7UUFDTSxnQkFBVyxHQUFXLEVBQUUsQ0FBQztRQUVsQzs7V0FFRztRQUNNLFVBQUssR0FBVyxFQUFFLENBQUM7UUFFNUI7O1dBRUc7UUFDTSxVQUFLLEdBQVcsRUFBRSxDQUFDO1FBRTVCOztXQUVHO1FBQ00sWUFBTyxHQUFXLEVBQUUsQ0FBQztRQUU5Qjs7V0FFRztRQUNNLGVBQVUsR0FBWSxLQUFLLENB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QWYsS0FBSztnQkFLRyxVQUFVO3NCQUFsQixLQUFLO2dCQUtHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBS0csRUFBRTtzQkFBVixLQUFLO2dCQUtJLFdBQVc7c0JBQXBCLE1BQU07Z0JBS0csVUFBVTtzQkFBbkIsTUFBTTtnQkFLRyxjQUFjO3NCQUF2QixNQUFNO2dCQU9pQixTQUFTO3NCQUFoQyxLQUFLO3VCQUFDLFdBQVc7Z0JBaUJMLFlBQVk7c0JBQXhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBBbmd1bGFyXHJcbmltcG9ydCB7IEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCwgVmlld0NoaWxkLCBEaXJlY3RpdmUsIEVsZW1lbnRSZWYgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBOZ01vZGVsIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcblxyXG4vLyBDb25maWd1cmF6aW9uaVxyXG5pbXBvcnQgeyBMb2NhbGl6YXRpb25TZXJ2aWNlIH0gZnJvbSBcIkBlc2ZhZW56YS9sb2NhbGl6YXRpb25zXCI7XHJcblxyXG4vLyBEaXJldHRpdmUsIENvbXBvbmVudGksIExpYnJlcmllXHJcbmltcG9ydCB7IFRvb2x0aXBEaXJlY3RpdmUgfSBmcm9tIFwibmd4LWJvb3RzdHJhcC90b29sdGlwXCI7XHJcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tIFwicnhqc1wiO1xyXG5cclxuLyoqXHJcbiAqIENsYXNzZSBhc3RyYXR0YSBiYXNlIGNoZSBjb250aWVuZSBsZSBsb2dpY2hlIC8gcHJvcHJpZXTDoCBpbiBjb211bmUgYSB0dXR0aSBpIHZhbGlkYXRvcmlcclxuICogXHJcbiAqIE5vdGEgYmVuZTogSSB0b29sdGlwIHJhbGxlbnRhbm8gdGFudGlzc2ltbyBsYSBwYWdpbmEgcGVyY2jDqSBpbCB0aXppbyBjaGUgaGEgZmF0dG8gbmd4IGJvb3RzdHJhcCBub24gw6ggY2FwYWNlXHJcbiAqL1xyXG5ARGlyZWN0aXZlKClcclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEJhc2VWYWxpZGF0aW9uIHtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFNlcnZpemlvIGRpIGxvY2FsaXp6YXppb25lIGRlbCBDb21wb25lbnRlXHJcbiAgICAgKi9cclxuICAgIHByb3RlY3RlZCBsYzogTG9jYWxpemF0aW9uU2VydmljZTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFZhcmlhYmlsZSBwZXIgdGVuZXJlIGluIG1lbW9yaWEgbG8gc3RhdG8gZGkgc3VibWl0IGRpIHF1ZXN0byBjb21wb25lbnRlXHJcbiAgICAgKi9cclxuICAgIHByb3RlY3RlZCBfc3VibWl0dGVkOiBib29sZWFuO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmFyaWFiaWxlIHBlciB0ZW5lcmUgaW4gbWVtb3JpYSBpbCBmYXR0byBjaGUgaWwgY29tcG9uZW50ZSDDqCBmb3J6YXRvIGEgaW52YWxpZG8gbyBub1xyXG4gICAgICovXHJcbiAgICBwcm90ZWN0ZWQgX2ZvcmNlSW52YWxpZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogSW5kaWNhIHNlIGlsIHZhbG9yZSDDqCBvYmJsaWdhdG9yaW8gbyBvcHppb25hbGVcclxuICAgICAqL1xyXG4gICAgcHVibGljIHJlcXVpcmVkOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBRdWVyeSBjaGUgcmFjY29nbGllIGlsIHRvb2x0aXAgaW4gbWFuaWVyYSBzdGF0aWNhIChzb2xvIGFsbCdpbml6aW8pXHJcbiAgICAgKi9cclxuICAgIEBWaWV3Q2hpbGQoVG9vbHRpcERpcmVjdGl2ZSwgeyBzdGF0aWM6IGZhbHNlIH0pIHByb3RlY3RlZCB0b29sdGlwOiBUb29sdGlwRGlyZWN0aXZlO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogUXVlcnkgY2hlIHJhY2NvZ2xpZSBpbCB0b29sdGlwIGluIG1hbmllcmEgZGluYW1pY2EgKGFkIG9nbmkgY2hhbmdlIGRldGVjdGlvbilcclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIHtUb29sdGlwRGlyZWN0aXZlfSBjb21wIEVsZW1lbnRvIEhUTUwgYSBjdWkgw6ggYXBwbGljYXRhIGxhIGRpcmV0dGl2YSBkZWwgdG9vbHRpcFxyXG4gICAgICovXHJcbiAgICBAVmlld0NoaWxkKFRvb2x0aXBEaXJlY3RpdmUsIHsgc3RhdGljOiB0cnVlIH0pIHNldCB0b29sdGlwX3N0YXRpYyhjb21wOiBUb29sdGlwRGlyZWN0aXZlKSB7XHJcbiAgICAgICAgaWYgKGNvbXApIHsgdGhpcy50b29sdGlwID0gY29tcDsgfVxyXG4gICAgfTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEVsZW1lbnRvIEhUTUwgcmFwcHJlc2VudGFudGUgbCdJbnB1dFxyXG4gICAgICovXHJcbiAgICBAVmlld0NoaWxkKCdodG1sSW5wdXQnLCB7IHN0YXRpYzogZmFsc2UgfSkgaHRtbElucHV0OiBFbGVtZW50UmVmO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogUXVlcnkgY2hlIHJhY2NvZ2xpZSBsJ2lucHV0IG8gZGlyZXR0aXZhIGNoZSBjb250aWVuZSBpbCB2YWxvcmUgaW4gbWFuaWVyYSBzdGF0aWNhIChzb2xvIGFsbCdpbml6aW8pXHJcbiAgICAgKi9cclxuICAgIEBWaWV3Q2hpbGQoXCJiYXNlSW5wdXRcIiwgeyBzdGF0aWM6IGZhbHNlIH0pIGJhc2VJbnB1dDogTmdNb2RlbDtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFF1ZXJ5IGNoZSByYWNjb2dsaWUgbCdpbnB1dCBvIGRpcmV0dGl2YSBjaGUgY29udGllbmUgaWwgdmFsb3JlIGluIG1hbmllcmEgZGluYW1pY2EgKGFkIG9nbmkgY2hhbmdlIGRldGVjdGlvbilcclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIHtOZ01vZGVsfSBjb21wIEVsZW1lbnRvIEhUTUwgYXNzb2NpYXRvIGFsIG5nTW9kZWwgZGVsIGNvbXBvbmVudGVcclxuICAgICAqL1xyXG4gICAgQFZpZXdDaGlsZChcImJhc2VJbnB1dFwiLCB7IHN0YXRpYzogdHJ1ZSB9KSBzZXQgYmFzZUlucHV0X3N0YXRpYyhjb21wOiBOZ01vZGVsKSB7XHJcbiAgICAgICAgaWYgKGNvbXApIHsgdGhpcy5iYXNlSW5wdXQgPSBjb21wOyB9XHJcbiAgICB9O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogU3ViamVjdCBhIGN1aSBsJ29nZ2V0dG8gaW50ZXJubyBzaSBjb2xsZWdhIHBlciBlZmZldHR1YXJlIGlsIGZvY3VzIGRlbGwnZWxlbWVudG8gaW5wdXQgc290dG9zdGFudGVcclxuICAgICAqL1xyXG4gICAgQElucHV0KCkgRm9jdXNTdWJqZWN0OiBTdWJqZWN0PHZvaWQ+O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogSW5kaWNhIHNlIGRpIGRlZmF1bHQgZGV2ZSB2YWx1dGFyZSBpbCBtZXNzYWdnaW8gZGkgZXJyb3JlIGluIGJhc2UgYWwgdmFsaWRhdG9yZSBjaGUgZmFsbGlzY2UuXHJcbiAgICAgKiBcclxuICAgICAqIFNlIGZhbGxpc2NlIGlsIHJlcXVpcmVkIHZhbGlkYXRvciBzY3JpdmVyw6AgY2hlIGwnaW5wdXQgw6ggb2JibGlnYXRvcmlvLCBzZSBpbnZlY2UgZmFsbGlzY2UgXHJcbiAgICAgKiB1biBldmVudHVhbGUgcGF0dGVybiB2YWxpZGF0b3Igc2NyaXZlcsOgIGNoZSBpbCBmb3JtYXRvIGRlbGwnaW5wdXQgw6ggaW52YWxpZG9cclxuICAgICAqL1xyXG4gICAgQElucHV0KCkgSW5mZXJFcnJvck1lc3NhZ2VzOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIE1vZGFsaXTDoCBpbiBjdWkgdmllbmUgbW9zdHJhdG8gaWwgY2FtcG8sIDEtMSByaXNwZXR0byBhbGxlIGRlZmluaXppb25pIGRpIEFuZ3VsYXIgTWF0ZXJpYWwgXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpIEZpZWxkQXBwZWFyZW5jZTogXCJsZWdhY3lcIiB8IFwic3RhbmRhcmRcIiB8IFwiZmlsbFwiIHwgXCJvdXRsaW5lXCIgPSBcIm91dGxpbmVcIjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEluZGljYSBzZSBpbCAqKlBsYWNlaG9sZGVyKiogZGV2J2Vzc2VyZSB1c2F0byBjb21lIHVuYSBmbG9hdGluZyBsYWJlbCBkaSBtYXRlcmlhbCBvIHNvbG8gY29tZSB1biBwbGFjZWhvbGRlciBzdGFuZGFyZCBcclxuICAgICAqIFxyXG4gICAgICogSWdub3JhdGEgbGF0byBhdXRvY29tcGxldGUsIGF1dG9jb21wbGV0ZS1tdWx0aSBlIHNlbGVjdCBpbiBxdWFudG8gaGFubm8gZ2VzdGlvbmkgcGFydGljb2xhcmkgZGkgcGxhY2Vob2xkZXIgZWNjLi4uXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpIEZsb2F0aW5nTGFiZWw6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogTWVzc2FnZ2lvIGRhIG1vc3RyYXJlIHNlIGxhIHZhbGlkYXppb25lIGZhbGxpc2NlLiBcclxuICAgICAqIFxyXG4gICAgICogU2UgcXVlc3RvIMOoIHZhbG9yaXp6YXRvLCBpbCBtZXNzYWdnaW8gbm9uIHZpZW5lIHZhbHV0YXRvIGluIGF1dG9tYXRpY28gbm9uc3RhbnRlICoqSW5mZXJFcnJvck1lc3NhZ2VzKiogc2lhICoqdHJ1ZSoqXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpIHZhbGlkYXRpb25GYWlsZWQ6IHN0cmluZyA9IFwiXCI7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJbmRpY2Egc2UgaWwgY29tcG9uZW50ZSDDqCBpbiBzb2xhIGxldHR1cmFcclxuICAgICAqL1xyXG4gICAgQElucHV0KCkgcmVhZG9ubHk6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEluZGljYSBsZSBkaW1lbnNpb25pIGRlbCBjb21wb25lbnRlXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpIHdpZHRoUHg6IG51bWJlciA9IG51bGw7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJbmRpY2Egc2UgaWwgY29tcG9uZW50ZSDDqCBkaXNhYmlsaXRhdG8gbyBubyAocGnDuSBvIG1lbm8gc3Rlc3NvIGNvbmNldHRvIGRlbCByZWFkb25seSlcclxuICAgICAqL1xyXG4gICAgQElucHV0KCkgZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEV2ZW50dWFsZSBwbGFjZWhvbGRlciBkYSBtb3N0cmFyZSBhbCBwb3N0byBkZWwgdmFsb3JlIHF1YW5kbyBpbCB2YWxvcmUgw6ggbnVsbG8gLyB2dW90b1xyXG4gICAgICovXHJcbiAgICBASW5wdXQoKSBwbGFjZWhvbGRlcjogc3RyaW5nID0gXCJcIjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIENsYXNzaSBkYSBhcHBsaWNhcmUgYWwgY29tcG9uZW50ZVxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKSBjbGFzczogc3RyaW5nID0gXCJcIjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFN0aWxpIGRhIGFwcGxpY2FyZSBhbCBjb21wb25lbnRlXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpIHN0eWxlOiBzdHJpbmcgPSBcIlwiO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogUGF0dGVybiBkaSB2YWxpZGF6aW9uZSBkZWxsJ2lucHV0XHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpIHBhdHRlcm46IHN0cmluZyA9IFwiXCI7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJbmRpY2EgZGkgbm9uIHZhbGlkYXJlIGlsIGNvbXBvbmVudGVcclxuICAgICAqL1xyXG4gICAgQElucHV0KCkgbm9WYWxpZGF0ZTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogSW5kaWNhIHNlIGFiaWxpdGFyZSBvIG1lbm8gbCdhdXRvY29tcGxldGFtZW50byBkaSBkZWZhdWx0IGRlbCBicm93c2VyXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpIGF1dG9jb21wbGV0ZTogc3RyaW5nID0gXCJvZmZcIjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIElkIGRlbGwnaW5wdXQuIMOIIGltcG9ydGFudGUgaW1wb3N0YXJsbyBzb3ByYXR0dXR0byBzZSBsJ2ludGVyZmFjY2lhIGdlbmVyYXRhIGRldidlc3NlcmUgdGVzdGF0YVxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKSBpZDogc3RyaW5nID0gXCJcIjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEV2ZW50byBjaGUgc29zdGl0dWlzY2UgbCduZ01vZGVsQ2hhbmdlIGZhY2VuZG9sbyBmdW56aW9uYXJlIGluIG1hbmllcmEgdW4gcG8nIHBpw7kgY29uc2lzdGVudGVcclxuICAgICAqL1xyXG4gICAgQE91dHB1dCgpIGlucHV0Q2hhbmdlOiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogRXZlbnRvIGNoZSBpbmRpY2EgaWwgZm9jdXMgYXZ2ZW51dG8gc3UgdW4gY29udHJvbGxvXHJcbiAgICAgKi9cclxuICAgIEBPdXRwdXQoKSBpbnB1dEZvY3VzOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogRXZlbnRvIGNoZSBpbmRpY2EgbGEgZmluYWxpenphemlvbmUgZGVsIHZhbG9yZSBhdnZlbnV0YSBzdSB1biBjb250cm9sbG9cclxuICAgICAqL1xyXG4gICAgQE91dHB1dCgpIGlucHV0RmluYWxpemVkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gICAgXHJcbiAgICAvKipcclxuICAgICAqIEltcG9zdGEgaWwgY29tcG9uZW50ZSBjb21lIFwic3VibWl0dGVkXCIgc2NhdGVuYW5kb25lIGxlIHZhbGlkYXppb25pIGVkIGV2ZW50dWFsbWVudGUgbGEgdmlzdWFsaXp6YXppb25lIGRlbCB0b29sdGlwIGRpIGVycm9yZVxyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IHZhbCAqKnRydWUqKiBzZSBzaSB2dW9sZSBpbXBvc3RhcmUgcXVlc3RvIGNvbnRyb2xsbyBjb21lIHN1Ym1pdHRlZCwgKipmYWxzZSoqIGFsdHJpbWVudGlcclxuICAgICAqL1xyXG4gICAgQElucHV0KFwic3VibWl0dGVkXCIpIHNldCBzdWJtaXR0ZWQodmFsOiBib29sZWFuKSB7XHJcbiAgICAgICAgdGhpcy5fc3VibWl0dGVkID0gdmFsO1xyXG4gICAgICAgIGlmICghdGhpcy5iYXNlSW5wdXQpXHJcbiAgICAgICAgICAgIHJldHVybjtcclxuXHJcbiAgICAgICAgaWYgKHZhbClcclxuICAgICAgICAgICAgdGhpcy5iYXNlSW5wdXQuY29udHJvbC5tYXJrQXNUb3VjaGVkKCk7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLmJhc2VJbnB1dC5jb250cm9sLnN0YXR1cyA9PT0gXCJJTlZBTElEXCIgJiYgdmFsKVxyXG4gICAgICAgICAgICB0aGlzLnNob3dUb29sdGlwV2l0aE1lc3NhZ2UoKTtcclxuICAgICAgICBlbHNlXHJcbiAgICAgICAgICAgIHRoaXMudG9vbHRpcC5oaWRlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJbXBvc3RhIGlsIGNvbXBvbmVudGUgY29tZSBcImludmFsaWRcIiBhIHByZXNjaW5kZXJlIGRhaSB2YWxpZGF0b3JpXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpIHNldCBmb3JjZUludmFsaWQodmFsOiBib29sZWFuKSB7XHJcbiAgICAgICAgdGhpcy5fZm9yY2VJbnZhbGlkID0gdmFsO1xyXG5cclxuICAgICAgICBpZiAodmFsKVxyXG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuYmFzZUlucHV0LmNvbnRyb2wuc2V0RXJyb3JzKHsgZm9yY2VkdG9pbnZhbGlkOiB0cnVlIH0pKTtcclxuICAgICAgICBlbHNlXHJcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5iYXNlSW5wdXQuY29udHJvbC5zZXRFcnJvcnMoeyBmb3JjZWR0b2ludmFsaWQ6IG51bGwgfSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmJhc2VJbnB1dC5jb250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKlxyXG4gICAgICogSGVscGVyIGNoZSBjb250cm9sbGEgc2UgaWwgdG9vbHRpcCBkZXZlIGVzc2VyZSBtb3N0cmF0byBvIG1lbm8sIFxyXG4gICAgICogcmljaGlhbWF0byBkaXJldHRhbWVudGUgZGFsbCdIVE1MIGRlaSBjb21wb25lbnRpXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBjaGVja1Rvb2x0aXAoKSB7XHJcbiAgICAgICAgaWYgKCh0aGlzLmJhc2VJbnB1dC5pbnZhbGlkICYmIHRoaXMuYmFzZUlucHV0LnRvdWNoZWQpKVxyXG4gICAgICAgICAgICB0aGlzLnNob3dUb29sdGlwV2l0aE1lc3NhZ2UoKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEhlbHBlciBjaGUgY2FsY29sYSBpbCBtZXNzYWdnaW8gZGEgbW9zdHJhcmUgbmVsIHRvb2x0aXAgY2hlIGFuZHLDoCBhZCBhcHJpcmVcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBzaG93VG9vbHRpcFdpdGhNZXNzYWdlKCkge1xyXG4gICAgICAgIHRoaXMudmFsaWRhdGlvbkZhaWxlZCA9IHRoaXMudmFsaWRhdGlvbkZhaWxlZCA/IHRoaXMudmFsaWRhdGlvbkZhaWxlZCA6IHRoaXMuSW5mZXJFcnJvck1lc3NhZ2VzID8gdGhpcy5pbmZlck1lc3NhZ2UoKSA6IFwiXCI7XHJcbiAgICAgICAgaWYgKHRoaXMudmFsaWRhdGlvbkZhaWxlZClcclxuICAgICAgICAgICAgdGhpcy50b29sdGlwLnNob3coKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIENhbGNvbGEgaWwgbWVzc2FnZ2lvIGRhIG1vc3RyYXJlIGluIGJhc2UgYWwgdmFsb3JlLlxyXG4gICAgICogXHJcbiAgICAgKiBFbnRyYXJlIGluIHF1ZXN0YSBmdW56aW9uZSBzaWduaWZpY2EgY2hlIGxvIHN0YXRvIGRpIHZhbGlkYXppb25lIMOoIGZhbGxpdG8sIHBlciBxdWVzdG8gc2kgY29tcG9ydGEgc2VtcGxpY2VtZW50ZSBpbiBtYW5pZXJhIGVzY2x1c2l2YSwgZSBjaW/DqDpcclxuICAgICAqIFxyXG4gICAgICogMSkgU2UgZXJvIHJlcXVpcmVkIGUgc29ubyBzZW56YSB2YWxvcmUgLS0+IElucHV0IHJpY2hpZXN0b1xyXG4gICAgICogXHJcbiAgICAgKiAyKSBBbHRyaW1lbnRpIHNlIGhvIHVuIHZhbG9yZSAtLT4gRGkgc2ljdXJvIGlsIGZvcm1hdG8gw6ggZXJyYXRvXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgaW5mZXJNZXNzYWdlKCk6IHN0cmluZyB7XHJcbiAgICAgICAgaWYgKHRoaXMucmVxdWlyZWQgJiYgIXRoaXMuYmFzZUlucHV0LnZhbHVlKVxyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5sYy5sb2MoXCJSZXF1aXJlZCBJbnB1dFwiKVxyXG5cclxuICAgICAgICBpZiAodGhpcy5iYXNlSW5wdXQudmFsdWUpXHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmxjLmxvYyhcIkludmFsaWQgSW5wdXQgRm9ybWF0XCIpXHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBGb3J6YSBsYSBjaGl1c3VyYSBkZWwgdG9vbHRpcFxyXG4gICAgICovXHJcbiAgICBjbG9zZVRvb2x0aXAoKSB7XHJcbiAgICAgICAgdGhpcy50b29sdGlwLmhpZGUoKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIENvbnRyb2xsYSBzZSBpbCBjb250cm9sbG8gw6ggdmFsaWRvIGUgaW4gY2FzbyBsbyBzaWEgY2hpdWRlIGlsIHRvb2x0aXBcclxuICAgICAqL1xyXG4gICAgcHJvdGVjdGVkIENoZWNrVmFsaWRpdHkoKSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLmJhc2VJbnB1dC5zdGF0dXNDaGFuZ2VzKVxyXG4gICAgICAgICAgICByZXR1cm47XHJcblxyXG4gICAgICAgIHRoaXMuYmFzZUlucHV0LnN0YXR1c0NoYW5nZXMuc3Vic2NyaWJlKGV2ZW50ID0+IHtcclxuICAgICAgICAgICAgaWYgKGV2ZW50ID09PSBcIlZBTElEXCIpXHJcbiAgICAgICAgICAgICAgICB0aGlzLnRvb2x0aXAuaGlkZSgpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQGlnbm9yZVxyXG4gICAgICovXHJcbiAgICBzZXREaXNhYmxlZFN0YXRlPyhpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICAgICAgaXNEaXNhYmxlZCA/IHRoaXMuYmFzZUlucHV0LmNvbnRyb2wuZGlzYWJsZSgpIDogdGhpcy5iYXNlSW5wdXQuY29udHJvbC5lbmFibGUoKTtcclxuICAgICAgICB0aGlzLnJlYWRvbmx5ID0gaXNEaXNhYmxlZDtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEBpZ25vcmVcclxuICAgICAqL1xyXG4gICAgcHJvdGVjdGVkIHByb3BhZ2F0ZUNoYW5nZSA9IChfOiBhbnkpID0+IHsgfTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEwnZW1pdCBkZWwgZm9jdXMgZGVsbCdlbGVtZW50b1xyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0ge2FueX0gdG9FbWl0IHZhbG9yZSBkYSBwcm9wYWdhcmUgYWxsJ2VzdGVybm9cclxuICAgICAqL1xyXG4gICAgb25Gb2N1cyh0b0VtaXQpIHtcclxuICAgICAgICB0aGlzLmlucHV0Rm9jdXMuZW1pdCh0b0VtaXQpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogRmluYWxpenphemlvbmUgSW5wdXRcclxuICAgICAqL1xyXG4gICAgb25GaW5hbGl6ZSgpIHtcclxuICAgICAgICB0aGlzLmlucHV0RmluYWxpemVkLmVtaXQoKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFN1YnNjcmlwdGlvbiBhbGxlIHJpY2hpZXN0ZSBkaSBmb2N1c1xyXG4gICAgICovXHJcbiAgICBvYnNlcnZhYmxlOiBhbnk7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZWdpc3RyYSBpbCBTdWJqZWN0IHBlciByaWNldmVyZSBsZSByaWNoaWVzdGUgZGkgRm9jdXMgZGFsbCdlc3Rlcm5vXHJcbiAgICAgKi9cclxuICAgIHJlZ2lzdGVyRm9jdXNSZXF1ZXN0KCk6IGFueSB7XHJcbiAgICAgICAgaWYoIXRoaXMuRm9jdXNTdWJqZWN0KVxyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgdGhpcy5vYnNlcnZhYmxlID0gdGhpcy5Gb2N1c1N1YmplY3Quc3Vic2NyaWJlKHQgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmh0bWxJbnB1dC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBEZXJlZ2lzdHJhIGlsIFN1YmplY3QgZGVsbGUgcmljaGllc3RlIGRpIGZvY3VzXHJcbiAgICAgKi9cclxuICAgIGRlcmVnaXN0ZXJGb2N1c1JlcXVlc3QoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMub2JzZXJ2YWJsZSlcclxuICAgICAgICAgICAgdGhpcy5vYnNlcnZhYmxlLnVuc3Vic2NyaWJlKCk7XHJcbiAgICB9XHJcbn0iXX0=
|
|
330
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS12YWxpZGF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZm9ybXMtYW5kLXZhbGlkYXRpb25zL3NyYy9saWIvdmFsaWRhdGlvbnMvYmFzZS12YWxpZGF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFVBQVU7QUFDVixPQUFPLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBaUMsTUFBTSxlQUFlLENBQUM7QUFNakgsa0NBQWtDO0FBQ2xDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFL0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQUUzQzs7OztHQUlHO0FBRUgsTUFBTSxPQUFnQixjQUFjO0lBRWhDLDBCQUEwQjtJQUMxQixZQUFzQixHQUFzQjtRQUF0QixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQXNCNUM7O1dBRUc7UUFDTyxrQkFBYSxHQUFZLEtBQUssQ0FBQztRQUV6Qzs7V0FFRztRQUNJLGFBQVEsR0FBWSxLQUFLLENBQUM7UUE2Q2pDOzs7OztXQUtHO1FBQ00sdUJBQWtCLEdBQVksSUFBSSxDQUFDO1FBRTVDOztXQUVHO1FBQ00sb0JBQWUsR0FBK0MsU0FBUyxDQUFDO1FBRWpGOzs7O1dBSUc7UUFDTSxrQkFBYSxHQUFZLElBQUksQ0FBQztRQUV2Qzs7OztXQUlHO1FBQ00scUJBQWdCLEdBQVcsRUFBRSxDQUFDO1FBRXZDOztXQUVHO1FBQ00sYUFBUSxHQUFZLEtBQUssQ0FBQztRQUVuQzs7V0FFRztRQUNNLFlBQU8sR0FBVyxJQUFJLENBQUM7UUFFaEM7O1dBRUc7UUFDTSxhQUFRLEdBQVksS0FBSyxDQUFDO1FBRW5DOztXQUVHO1FBQ00sZ0JBQVcsR0FBVyxFQUFFLENBQUM7UUFFbEM7O1dBRUc7UUFDTSxVQUFLLEdBQVcsRUFBRSxDQUFDO1FBRTVCOztXQUVHO1FBQ00sVUFBSyxHQUFXLEVBQUUsQ0FBQztRQUU1Qjs7V0FFRztRQUNNLFlBQU8sR0FBVyxFQUFFLENBQUM7UUFFOUI7O1dBRUc7UUFDTSxlQUFVLEdBQVksS0FBSyxDQUFDO1FBRXJDOztXQUVHO1FBQ00saUJBQVksR0FBVyxLQUFLLENBQUM7UUFFdEM7O1dBRUc7UUFDTSxPQUFFLEdBQVcsRUFBRSxDQUFDO1FBRXpCOztXQUVHO1FBQ08sZ0JBQVcsR0FBeUIsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUV6RTs7V0FFRztRQUNPLGVBQVUsR0FBc0IsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUVsRTs7V0FFRztRQUNPLG1CQUFjLEdBQXNCLElBQUksWUFBWSxFQUFPLENBQUM7UUFvRHRFLGVBQVUsR0FBa0IsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQTBFaEQ7O1dBRUc7UUFDTyxvQkFBZSxHQUFHLENBQUMsQ0FBTSxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUM7SUF0U0ksQ0FBQztJQXFDakQ7Ozs7T0FJRztJQUNILElBQW1ELGNBQWMsQ0FBQyxJQUFzQjtRQUNwRixJQUFJLElBQUksRUFBRTtZQUFFLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1NBQUU7SUFDdEMsQ0FBQztJQUFBLENBQUM7SUFZRjs7OztPQUlHO0lBQ0gsSUFBOEMsZ0JBQWdCLENBQUMsSUFBYTtRQUN4RSxJQUFJLElBQUksRUFBRTtZQUFFLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1NBQUU7SUFDeEMsQ0FBQztJQUFBLENBQUM7SUF3R0Y7Ozs7T0FJRztJQUNILElBQXdCLFNBQVMsQ0FBQyxHQUFZO1FBQzFDLElBQUksQ0FBQyxVQUFVLEdBQUcsR0FBRyxDQUFDO1FBQ3RCLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUztZQUNmLE9BQU87UUFFWCxJQUFJLEdBQUc7WUFDSCxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUUzQyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLE1BQU0sS0FBSyxTQUFTLElBQUksR0FBRztZQUNsRCxJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQzs7WUFFOUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFhLFlBQVksQ0FBQyxHQUFZO1FBQ2xDLElBQUksQ0FBQyxhQUFhLEdBQUcsR0FBRyxDQUFDO1FBRXpCLElBQUksR0FBRztZQUNILFVBQVUsQ0FBQyxHQUFHLEVBQUU7Z0JBQ1osSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUUsZUFBZSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7Z0JBQzVELElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRSxDQUFDO2dCQUN2QyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsQ0FBQztnQkFDckMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUM3QixDQUFDLENBQUMsQ0FBQzs7WUFFSCxVQUFVLENBQUMsR0FBRyxFQUFFO2dCQUNaLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxFQUFFLGVBQWUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO2dCQUM1RCxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1lBQ3BELENBQUMsQ0FBQyxDQUFDO0lBQ1gsQ0FBQztJQUVELFFBQVE7UUFDSixJQUFJLElBQUksQ0FBQyxvQkFBb0IsRUFBRTtZQUMzQixJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUU7Z0JBQ3JFLElBQUksQ0FBQyxDQUFDLFNBQVMsR0FBRyxXQUFXLElBQUksSUFBSSxDQUFDLEVBQUUsRUFBRTtvQkFDdEMsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7b0JBQ3pCLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7aUJBQ3hDO1lBQ0wsQ0FBQyxDQUFDLENBQUE7U0FDTDtJQUNMLENBQUM7SUFHRCxXQUFXO1FBQ1AsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQy9CLENBQUM7SUFDRDs7O09BR0c7SUFDSSxZQUFZO1FBQ2YsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDO1lBQ2xELElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO0lBQ3RDLENBQUM7SUFFRDs7T0FFRztJQUNLLHNCQUFzQixDQUFDLGtCQUEwQixJQUFJO1FBRXpELCtGQUErRjtRQUMvRixJQUFJLElBQUksQ0FBQyxxQkFBcUIsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRTtZQUNwRCxJQUFJLENBQUMsb0JBQW9CLEdBQUcsZUFBZSxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsSUFBSSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUM3SCxJQUFJLENBQUMscUJBQXFCLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUM7U0FDckQ7UUFFRCxJQUFJLElBQUksQ0FBQyxvQkFBb0I7WUFDekIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRUQ7Ozs7Ozs7O09BUUc7SUFDSyxZQUFZO1FBQ2hCLElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSztZQUN0QyxPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLENBQUE7UUFFeEMsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUs7WUFDcEIsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFBO0lBQ2xELENBQUM7SUFFRDs7T0FFRztJQUNILFlBQVk7UUFDUixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFRDs7T0FFRztJQUNPLGFBQWE7UUFDbkIsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYTtZQUM3QixPQUFPO1FBRVgsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQzNDLElBQUksS0FBSyxLQUFLLE9BQU87Z0JBQ2pCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDNUIsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxnQkFBZ0IsQ0FBRSxVQUFtQjtRQUNqQyxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNoRixJQUFJLENBQUMsUUFBUSxHQUFHLFVBQVUsQ0FBQztJQUMvQixDQUFDO0lBT0Q7Ozs7T0FJRztJQUNILE9BQU8sQ0FBQyxNQUFNO1FBQ1YsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsVUFBVTtRQUNOLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDL0IsQ0FBQztJQU9EOztPQUVHO0lBQ0gsb0JBQW9CO1FBQ2hCLElBQUcsQ0FBQyxJQUFJLENBQUMsWUFBWTtZQUNqQixPQUFPO1FBQ1gsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUM5QyxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUN6QyxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRDs7T0FFRztJQUNILHNCQUFzQjtRQUNsQixJQUFJLElBQUksQ0FBQyxVQUFVO1lBQ2YsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN0QyxDQUFDOzsyR0FqVmlCLGNBQWM7K0ZBQWQsY0FBYyw0cEJBc0NyQixnQkFBZ0IsaUZBT2hCLGdCQUFnQjsyRkE3Q1QsY0FBYztrQkFEbkMsU0FBUzt3R0F1Q29ELE9BQU87c0JBQWhFLFNBQVM7dUJBQUMsZ0JBQWdCLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQU9LLGNBQWM7c0JBQWhFLFNBQVM7dUJBQUMsZ0JBQWdCLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQU9GLFNBQVM7c0JBQW5ELFNBQVM7dUJBQUMsV0FBVyxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFLRSxTQUFTO3NCQUFuRCxTQUFTO3VCQUFDLFdBQVcsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBT0ssZ0JBQWdCO3NCQUE3RCxTQUFTO3VCQUFDLFdBQVcsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBTy9CLFlBQVk7c0JBQXBCLEtBQUs7Z0JBS0csb0JBQW9CO3NCQUE1QixLQUFLO2dCQVFHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFLRyxlQUFlO3NCQUF2QixLQUFLO2dCQU9HLGFBQWE7c0JBQXJCLEtBQUs7Z0JBT0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUtHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBS0csT0FBTztzQkFBZixLQUFLO2dCQUtHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBS0csV0FBVztzQkFBbkIsS0FBSztnQkFLRyxLQUFLO3NCQUFiLEtBQUs7Z0JBS0csS0FBSztzQkFBYixLQUFLO2dCQUtHLE9BQU87c0JBQWYsS0FBSztnQkFLRyxVQUFVO3NCQUFsQixLQUFLO2dCQUtHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBS0csRUFBRTtzQkFBVixLQUFLO2dCQUtJLFdBQVc7c0JBQXBCLE1BQU07Z0JBS0csVUFBVTtzQkFBbkIsTUFBTTtnQkFLRyxjQUFjO3NCQUF2QixNQUFNO2dCQU9pQixTQUFTO3NCQUFoQyxLQUFLO3VCQUFDLFdBQVc7Z0JBaUJMLFlBQVk7c0JBQXhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBBbmd1bGFyXHJcbmltcG9ydCB7IEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCwgVmlld0NoaWxkLCBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIENoYW5nZURldGVjdG9yUmVmIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgTmdNb2RlbCB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5cclxuLy8gQ29uZmlndXJhemlvbmlcclxuaW1wb3J0IHsgTG9jYWxpemF0aW9uU2VydmljZSB9IGZyb20gXCJAZXNmYWVuemEvbG9jYWxpemF0aW9uc1wiO1xyXG5cclxuLy8gRGlyZXR0aXZlLCBDb21wb25lbnRpLCBMaWJyZXJpZVxyXG5pbXBvcnQgeyBUb29sdGlwRGlyZWN0aXZlIH0gZnJvbSBcIm5neC1ib290c3RyYXAvdG9vbHRpcFwiO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgQ2hhbmdlRXZlbnQgfSBmcm9tIFwiLi4vbW9kZWxzL0NoYW5nZUV2ZW50XCI7XHJcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xyXG5cclxuLyoqXHJcbiAqIENsYXNzZSBhc3RyYXR0YSBiYXNlIGNoZSBjb250aWVuZSBsZSBsb2dpY2hlIC8gcHJvcHJpZXTDoCBpbiBjb211bmUgYSB0dXR0aSBpIHZhbGlkYXRvcmlcclxuICogXHJcbiAqIE5vdGEgYmVuZTogSSB0b29sdGlwIHJhbGxlbnRhbm8gdGFudGlzc2ltbyBsYSBwYWdpbmEgcGVyY2jDqSBpbCB0aXppbyBjaGUgaGEgZmF0dG8gbmd4IGJvb3RzdHJhcCBub24gw6ggY2FwYWNlXHJcbiAqL1xyXG5ARGlyZWN0aXZlKClcclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEJhc2VWYWxpZGF0aW9uIHtcclxuXHJcbiAgICAvKiogQGlnbm9yZSBDb25zdHJ1Y3RvciAqL1xyXG4gICAgY29uc3RydWN0b3IocHJvdGVjdGVkIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHsgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUGVyIG5vbiBzb3ZyYXNjcml2ZXJlIGwnb3JpZ2luYWxlIGNvbiBlcnJvcmkgY2hlIHNwdW50YW5vIGRhIEJFXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyB2YWxpZGF0aW9uRmFpbGVkQmluZDogc3RyaW5nO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogUGVyIGdlc3RpcmUgaWwgY2FtYmlvIGRpIG1lc3NhZ2dpIGRpIGVycm9yZVxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIHZhbHVlT25MYXN0VmFsaWRhdGlvbjogc3RyaW5nO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2Vydml6aW8gZGkgbG9jYWxpenphemlvbmUgZGVsIENvbXBvbmVudGVcclxuICAgICAqL1xyXG4gICAgcHJvdGVjdGVkIGxjOiBMb2NhbGl6YXRpb25TZXJ2aWNlO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmFyaWFiaWxlIHBlciB0ZW5lcmUgaW4gbWVtb3JpYSBsbyBzdGF0byBkaSBzdWJtaXQgZGkgcXVlc3RvIGNvbXBvbmVudGVcclxuICAgICAqL1xyXG4gICAgcHJvdGVjdGVkIF9zdWJtaXR0ZWQ6IGJvb2xlYW47XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWYXJpYWJpbGUgcGVyIHRlbmVyZSBpbiBtZW1vcmlhIGlsIGZhdHRvIGNoZSBpbCBjb21wb25lbnRlIMOoIGZvcnphdG8gYSBpbnZhbGlkbyBvIG5vXHJcbiAgICAgKi9cclxuICAgIHByb3RlY3RlZCBfZm9yY2VJbnZhbGlkOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJbmRpY2Egc2UgaWwgdmFsb3JlIMOoIG9iYmxpZ2F0b3JpbyBvIG9wemlvbmFsZVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgcmVxdWlyZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFF1ZXJ5IGNoZSByYWNjb2dsaWUgaWwgdG9vbHRpcCBpbiBtYW5pZXJhIHN0YXRpY2EgKHNvbG8gYWxsJ2luaXppbylcclxuICAgICAqL1xyXG4gICAgQFZpZXdDaGlsZChUb29sdGlwRGlyZWN0aXZlLCB7IHN0YXRpYzogZmFsc2UgfSkgcHJvdGVjdGVkIHRvb2x0aXA6IFRvb2x0aXBEaXJlY3RpdmU7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBRdWVyeSBjaGUgcmFjY29nbGllIGlsIHRvb2x0aXAgaW4gbWFuaWVyYSBkaW5hbWljYSAoYWQgb2duaSBjaGFuZ2UgZGV0ZWN0aW9uKVxyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0ge1Rvb2x0aXBEaXJlY3RpdmV9IGNvbXAgRWxlbWVudG8gSFRNTCBhIGN1aSDDqCBhcHBsaWNhdGEgbGEgZGlyZXR0aXZhIGRlbCB0b29sdGlwXHJcbiAgICAgKi9cclxuICAgIEBWaWV3Q2hpbGQoVG9vbHRpcERpcmVjdGl2ZSwgeyBzdGF0aWM6IHRydWUgfSkgc2V0IHRvb2x0aXBfc3RhdGljKGNvbXA6IFRvb2x0aXBEaXJlY3RpdmUpIHtcclxuICAgICAgICBpZiAoY29tcCkgeyB0aGlzLnRvb2x0aXAgPSBjb21wOyB9XHJcbiAgICB9O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogRWxlbWVudG8gSFRNTCByYXBwcmVzZW50YW50ZSBsJ0lucHV0XHJcbiAgICAgKi9cclxuICAgIEBWaWV3Q2hpbGQoJ2h0bWxJbnB1dCcsIHsgc3RhdGljOiBmYWxzZSB9KSBodG1sSW5wdXQ6IEVsZW1lbnRSZWY7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBRdWVyeSBjaGUgcmFjY29nbGllIGwnaW5wdXQgbyBkaXJldHRpdmEgY2hlIGNvbnRpZW5lIGlsIHZhbG9yZSBpbiBtYW5pZXJhIHN0YXRpY2EgKHNvbG8gYWxsJ2luaXppbylcclxuICAgICAqL1xyXG4gICAgQFZpZXdDaGlsZChcImJhc2VJbnB1dFwiLCB7IHN0YXRpYzogZmFsc2UgfSkgYmFzZUlucHV0OiBOZ01vZGVsO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogUXVlcnkgY2hlIHJhY2NvZ2xpZSBsJ2lucHV0IG8gZGlyZXR0aXZhIGNoZSBjb250aWVuZSBpbCB2YWxvcmUgaW4gbWFuaWVyYSBkaW5hbWljYSAoYWQgb2duaSBjaGFuZ2UgZGV0ZWN0aW9uKVxyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0ge05nTW9kZWx9IGNvbXAgRWxlbWVudG8gSFRNTCBhc3NvY2lhdG8gYWwgbmdNb2RlbCBkZWwgY29tcG9uZW50ZVxyXG4gICAgICovXHJcbiAgICBAVmlld0NoaWxkKFwiYmFzZUlucHV0XCIsIHsgc3RhdGljOiB0cnVlIH0pIHNldCBiYXNlSW5wdXRfc3RhdGljKGNvbXA6IE5nTW9kZWwpIHtcclxuICAgICAgICBpZiAoY29tcCkgeyB0aGlzLmJhc2VJbnB1dCA9IGNvbXA7IH1cclxuICAgIH07XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTdWJqZWN0IGEgY3VpIGwnb2dnZXR0byBpbnRlcm5vIHNpIGNvbGxlZ2EgcGVyIGVmZmV0dHVhcmUgaWwgZm9jdXMgZGVsbCdlbGVtZW50byBpbnB1dCBzb3R0b3N0YW50ZVxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKSBGb2N1c1N1YmplY3Q6IFN1YmplY3Q8dm9pZD47XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBARVhQRVJJTUVOVEFMXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpIFNldFZhbGlkYXRpb25TdWJqZWN0OiBTdWJqZWN0PHsgZmllbGROYW1lOiBzdHJpbmcsIGVycm9yOiBzdHJpbmcgfT47XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJbmRpY2Egc2UgZGkgZGVmYXVsdCBkZXZlIHZhbHV0YXJlIGlsIG1lc3NhZ2dpbyBkaSBlcnJvcmUgaW4gYmFzZSBhbCB2YWxpZGF0b3JlIGNoZSBmYWxsaXNjZS5cclxuICAgICAqIFxyXG4gICAgICogU2UgZmFsbGlzY2UgaWwgcmVxdWlyZWQgdmFsaWRhdG9yIHNjcml2ZXLDoCBjaGUgbCdpbnB1dCDDqCBvYmJsaWdhdG9yaW8sIHNlIGludmVjZSBmYWxsaXNjZSBcclxuICAgICAqIHVuIGV2ZW50dWFsZSBwYXR0ZXJuIHZhbGlkYXRvciBzY3JpdmVyw6AgY2hlIGlsIGZvcm1hdG8gZGVsbCdpbnB1dCDDqCBpbnZhbGlkb1xyXG4gICAgICovXHJcbiAgICBASW5wdXQoKSBJbmZlckVycm9yTWVzc2FnZXM6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogTW9kYWxpdMOgIGluIGN1aSB2aWVuZSBtb3N0cmF0byBpbCBjYW1wbywgMS0xIHJpc3BldHRvIGFsbGUgZGVmaW5pemlvbmkgZGkgQW5ndWxhciBNYXRlcmlhbCBcclxuICAgICAqL1xyXG4gICAgQElucHV0KCkgRmllbGRBcHBlYXJlbmNlOiBcImxlZ2FjeVwiIHwgXCJzdGFuZGFyZFwiIHwgXCJmaWxsXCIgfCBcIm91dGxpbmVcIiA9IFwib3V0bGluZVwiO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogSW5kaWNhIHNlIGlsICoqUGxhY2Vob2xkZXIqKiBkZXYnZXNzZXJlIHVzYXRvIGNvbWUgdW5hIGZsb2F0aW5nIGxhYmVsIGRpIG1hdGVyaWFsIG8gc29sbyBjb21lIHVuIHBsYWNlaG9sZGVyIHN0YW5kYXJkIFxyXG4gICAgICogXHJcbiAgICAgKiBJZ25vcmF0YSBsYXRvIGF1dG9jb21wbGV0ZSwgYXV0b2NvbXBsZXRlLW11bHRpIGUgc2VsZWN0IGluIHF1YW50byBoYW5ubyBnZXN0aW9uaSBwYXJ0aWNvbGFyaSBkaSBwbGFjZWhvbGRlciBlY2MuLi5cclxuICAgICAqL1xyXG4gICAgQElucHV0KCkgRmxvYXRpbmdMYWJlbDogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBNZXNzYWdnaW8gZGEgbW9zdHJhcmUgc2UgbGEgdmFsaWRhemlvbmUgZmFsbGlzY2UuIFxyXG4gICAgICogXHJcbiAgICAgKiBTZSBxdWVzdG8gw6ggdmFsb3JpenphdG8sIGlsIG1lc3NhZ2dpbyBub24gdmllbmUgdmFsdXRhdG8gaW4gYXV0b21hdGljbyBub25zdGFudGUgKipJbmZlckVycm9yTWVzc2FnZXMqKiBzaWEgKip0cnVlKipcclxuICAgICAqL1xyXG4gICAgQElucHV0KCkgdmFsaWRhdGlvbkZhaWxlZDogc3RyaW5nID0gXCJcIjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEluZGljYSBzZSBpbCBjb21wb25lbnRlIMOoIGluIHNvbGEgbGV0dHVyYVxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKSByZWFkb25seTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogSW5kaWNhIGxlIGRpbWVuc2lvbmkgZGVsIGNvbXBvbmVudGVcclxuICAgICAqL1xyXG4gICAgQElucHV0KCkgd2lkdGhQeDogbnVtYmVyID0gbnVsbDtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEluZGljYSBzZSBpbCBjb21wb25lbnRlIMOoIGRpc2FiaWxpdGF0byBvIG5vIChwacO5IG8gbWVubyBzdGVzc28gY29uY2V0dG8gZGVsIHJlYWRvbmx5KVxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKSBkaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogRXZlbnR1YWxlIHBsYWNlaG9sZGVyIGRhIG1vc3RyYXJlIGFsIHBvc3RvIGRlbCB2YWxvcmUgcXVhbmRvIGlsIHZhbG9yZSDDqCBudWxsbyAvIHZ1b3RvXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpIHBsYWNlaG9sZGVyOiBzdHJpbmcgPSBcIlwiO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ2xhc3NpIGRhIGFwcGxpY2FyZSBhbCBjb21wb25lbnRlXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpIGNsYXNzOiBzdHJpbmcgPSBcIlwiO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogU3RpbGkgZGEgYXBwbGljYXJlIGFsIGNvbXBvbmVudGVcclxuICAgICAqL1xyXG4gICAgQElucHV0KCkgc3R5bGU6IHN0cmluZyA9IFwiXCI7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBQYXR0ZXJuIGRpIHZhbGlkYXppb25lIGRlbGwnaW5wdXRcclxuICAgICAqL1xyXG4gICAgQElucHV0KCkgcGF0dGVybjogc3RyaW5nID0gXCJcIjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEluZGljYSBkaSBub24gdmFsaWRhcmUgaWwgY29tcG9uZW50ZVxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKSBub1ZhbGlkYXRlOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJbmRpY2Egc2UgYWJpbGl0YXJlIG8gbWVubyBsJ2F1dG9jb21wbGV0YW1lbnRvIGRpIGRlZmF1bHQgZGVsIGJyb3dzZXJcclxuICAgICAqL1xyXG4gICAgQElucHV0KCkgYXV0b2NvbXBsZXRlOiBzdHJpbmcgPSBcIm9mZlwiO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogSWQgZGVsbCdpbnB1dC4gw4ggaW1wb3J0YW50ZSBpbXBvc3RhcmxvIHNvcHJhdHR1dHRvIHNlIGwnaW50ZXJmYWNjaWEgZ2VuZXJhdGEgZGV2J2Vzc2VyZSB0ZXN0YXRhXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpIGlkOiBzdHJpbmcgPSBcIlwiO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogRXZlbnRvIGNoZSBzb3N0aXR1aXNjZSBsJ25nTW9kZWxDaGFuZ2UgZmFjZW5kb2xvIGZ1bnppb25hcmUgaW4gbWFuaWVyYSB1biBwbycgcGnDuSBjb25zaXN0ZW50ZVxyXG4gICAgICovXHJcbiAgICBAT3V0cHV0KCkgaW5wdXRDaGFuZ2U6IEV2ZW50RW1pdHRlcjxzdHJpbmc+ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBFdmVudG8gY2hlIGluZGljYSBpbCBmb2N1cyBhdnZlbnV0byBzdSB1biBjb250cm9sbG9cclxuICAgICAqL1xyXG4gICAgQE91dHB1dCgpIGlucHV0Rm9jdXM6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBFdmVudG8gY2hlIGluZGljYSBsYSBmaW5hbGl6emF6aW9uZSBkZWwgdmFsb3JlIGF2dmVudXRhIHN1IHVuIGNvbnRyb2xsb1xyXG4gICAgICovXHJcbiAgICBAT3V0cHV0KCkgaW5wdXRGaW5hbGl6ZWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgICBcclxuICAgIC8qKlxyXG4gICAgICogSW1wb3N0YSBpbCBjb21wb25lbnRlIGNvbWUgXCJzdWJtaXR0ZWRcIiBzY2F0ZW5hbmRvbmUgbGUgdmFsaWRhemlvbmkgZWQgZXZlbnR1YWxtZW50ZSBsYSB2aXN1YWxpenphemlvbmUgZGVsIHRvb2x0aXAgZGkgZXJyb3JlXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gdmFsICoqdHJ1ZSoqIHNlIHNpIHZ1b2xlIGltcG9zdGFyZSBxdWVzdG8gY29udHJvbGxvIGNvbWUgc3VibWl0dGVkLCAqKmZhbHNlKiogYWx0cmltZW50aVxyXG4gICAgICovXHJcbiAgICBASW5wdXQoXCJzdWJtaXR0ZWRcIikgc2V0IHN1Ym1pdHRlZCh2YWw6IGJvb2xlYW4pIHtcclxuICAgICAgICB0aGlzLl9zdWJtaXR0ZWQgPSB2YWw7XHJcbiAgICAgICAgaWYgKCF0aGlzLmJhc2VJbnB1dClcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG5cclxuICAgICAgICBpZiAodmFsKVxyXG4gICAgICAgICAgICB0aGlzLmJhc2VJbnB1dC5jb250cm9sLm1hcmtBc1RvdWNoZWQoKTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuYmFzZUlucHV0LmNvbnRyb2wuc3RhdHVzID09PSBcIklOVkFMSURcIiAmJiB2YWwpXHJcbiAgICAgICAgICAgIHRoaXMuc2hvd1Rvb2x0aXBXaXRoTWVzc2FnZSgpO1xyXG4gICAgICAgIGVsc2VcclxuICAgICAgICAgICAgdGhpcy50b29sdGlwLmhpZGUoKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEltcG9zdGEgaWwgY29tcG9uZW50ZSBjb21lIFwiaW52YWxpZFwiIGEgcHJlc2NpbmRlcmUgZGFpIHZhbGlkYXRvcmlcclxuICAgICAqL1xyXG4gICAgQElucHV0KCkgc2V0IGZvcmNlSW52YWxpZCh2YWw6IGJvb2xlYW4pIHtcclxuICAgICAgICB0aGlzLl9mb3JjZUludmFsaWQgPSB2YWw7XHJcblxyXG4gICAgICAgIGlmICh2YWwpXHJcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5iYXNlSW5wdXQuY29udHJvbC5zZXRFcnJvcnMoeyBmb3JjZWR0b2ludmFsaWQ6IHRydWUgfSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmJhc2VJbnB1dC5jb250cm9sLm1hcmtBc1RvdWNoZWQoKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuYmFzZUlucHV0LmNvbnRyb2wubWFya0FzRGlydHkoKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgZWxzZVxyXG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuYmFzZUlucHV0LmNvbnRyb2wuc2V0RXJyb3JzKHsgZm9yY2VkdG9pbnZhbGlkOiBudWxsIH0pO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5iYXNlSW5wdXQuY29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25Jbml0KCkge1xyXG4gICAgICAgIGlmICh0aGlzLlNldFZhbGlkYXRpb25TdWJqZWN0KSB7XHJcbiAgICAgICAgICAgIHRoaXMuU2V0VmFsaWRhdGlvblN1YmplY3QucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQkKSkuc3Vic2NyaWJlKHYgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKHYuZmllbGROYW1lICsgXCJfaW50ZXJuYWxcIiA9PSB0aGlzLmlkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mb3JjZUludmFsaWQgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2hvd1Rvb2x0aXBXaXRoTWVzc2FnZSh2LmVycm9yKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSlcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZGVzdHJveWVkJDogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcbiAgICBuZ09uRGVzdHJveSgpe1xyXG4gICAgICAgIHRoaXMuZGVzdHJveWVkJC5uZXh0KCk7XHJcbiAgICAgICAgdGhpcy5kZXN0cm95ZWQkLmNvbXBsZXRlKCk7XHJcbiAgICB9XHJcbiAgICAvKipcclxuICAgICAqIEhlbHBlciBjaGUgY29udHJvbGxhIHNlIGlsIHRvb2x0aXAgZGV2ZSBlc3NlcmUgbW9zdHJhdG8gbyBtZW5vLCBcclxuICAgICAqIHJpY2hpYW1hdG8gZGlyZXR0YW1lbnRlIGRhbGwnSFRNTCBkZWkgY29tcG9uZW50aVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgY2hlY2tUb29sdGlwKCkge1xyXG4gICAgICAgIGlmICgodGhpcy5iYXNlSW5wdXQuaW52YWxpZCAmJiB0aGlzLmJhc2VJbnB1dC50b3VjaGVkKSlcclxuICAgICAgICAgICAgdGhpcy5zaG93VG9vbHRpcFdpdGhNZXNzYWdlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBIZWxwZXIgY2hlIGNhbGNvbGEgaWwgbWVzc2FnZ2lvIGRhIG1vc3RyYXJlIG5lbCB0b29sdGlwIGNoZSBhbmRyw6AgYWQgYXByaXJlXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgc2hvd1Rvb2x0aXBXaXRoTWVzc2FnZShtZXNzYWdlT3ZlcnJpZGU6IHN0cmluZyA9IG51bGwpIHtcclxuXHJcbiAgICAgICAgLy8gQWdnaW9ybm8gaWwgbWVzc2FnZ2lvIGRpIHZhbGlkYXppb25lIHNvbG8gc2UgaWwgdmFsb3JlIMOoIGRpdmVyc28gZGFsbCd1bHRpbW8gdmFsb3JlIHJpY2V2dXRvXHJcbiAgICAgICAgaWYgKHRoaXMudmFsdWVPbkxhc3RWYWxpZGF0aW9uICE9IHRoaXMuYmFzZUlucHV0LnZhbHVlKSB7XHJcbiAgICAgICAgICAgIHRoaXMudmFsaWRhdGlvbkZhaWxlZEJpbmQgPSBtZXNzYWdlT3ZlcnJpZGUgfHwgdGhpcy52YWxpZGF0aW9uRmFpbGVkIHx8ICh0aGlzLkluZmVyRXJyb3JNZXNzYWdlcyA/IHRoaXMuaW5mZXJNZXNzYWdlKCkgOiBcIlwiKTtcclxuICAgICAgICAgICAgdGhpcy52YWx1ZU9uTGFzdFZhbGlkYXRpb24gPSB0aGlzLmJhc2VJbnB1dC52YWx1ZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh0aGlzLnZhbGlkYXRpb25GYWlsZWRCaW5kKVxyXG4gICAgICAgICAgICB0aGlzLnRvb2x0aXAuc2hvdygpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ2FsY29sYSBpbCBtZXNzYWdnaW8gZGEgbW9zdHJhcmUgaW4gYmFzZSBhbCB2YWxvcmUuXHJcbiAgICAgKiBcclxuICAgICAqIEVudHJhcmUgaW4gcXVlc3RhIGZ1bnppb25lIHNpZ25pZmljYSBjaGUgbG8gc3RhdG8gZGkgdmFsaWRhemlvbmUgw6ggZmFsbGl0bywgcGVyIHF1ZXN0byBzaSBjb21wb3J0YSBzZW1wbGljZW1lbnRlIGluIG1hbmllcmEgZXNjbHVzaXZhLCBlIGNpb8OoOlxyXG4gICAgICogXHJcbiAgICAgKiAxKSBTZSBlcm8gcmVxdWlyZWQgZSBzb25vIHNlbnphIHZhbG9yZSAtLT4gSW5wdXQgcmljaGllc3RvXHJcbiAgICAgKiBcclxuICAgICAqIDIpIEFsdHJpbWVudGkgc2UgaG8gdW4gdmFsb3JlIC0tPiBEaSBzaWN1cm8gaWwgZm9ybWF0byDDqCBlcnJhdG9cclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBpbmZlck1lc3NhZ2UoKTogc3RyaW5nIHtcclxuICAgICAgICBpZiAodGhpcy5yZXF1aXJlZCAmJiAhdGhpcy5iYXNlSW5wdXQudmFsdWUpXHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmxjLmxvYyhcIlJlcXVpcmVkIElucHV0XCIpXHJcblxyXG4gICAgICAgIGlmICh0aGlzLmJhc2VJbnB1dC52YWx1ZSlcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMubGMubG9jKFwiSW52YWxpZCBJbnB1dCBGb3JtYXRcIilcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEZvcnphIGxhIGNoaXVzdXJhIGRlbCB0b29sdGlwXHJcbiAgICAgKi9cclxuICAgIGNsb3NlVG9vbHRpcCgpIHtcclxuICAgICAgICB0aGlzLnRvb2x0aXAuaGlkZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ29udHJvbGxhIHNlIGlsIGNvbnRyb2xsbyDDqCB2YWxpZG8gZSBpbiBjYXNvIGxvIHNpYSBjaGl1ZGUgaWwgdG9vbHRpcFxyXG4gICAgICovXHJcbiAgICBwcm90ZWN0ZWQgQ2hlY2tWYWxpZGl0eSgpIHtcclxuICAgICAgICBpZiAoIXRoaXMuYmFzZUlucHV0LnN0YXR1c0NoYW5nZXMpXHJcbiAgICAgICAgICAgIHJldHVybjtcclxuXHJcbiAgICAgICAgdGhpcy5iYXNlSW5wdXQuc3RhdHVzQ2hhbmdlcy5zdWJzY3JpYmUoZXZlbnQgPT4ge1xyXG4gICAgICAgICAgICBpZiAoZXZlbnQgPT09IFwiVkFMSURcIilcclxuICAgICAgICAgICAgICAgIHRoaXMudG9vbHRpcC5oaWRlKCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBAaWdub3JlXHJcbiAgICAgKi9cclxuICAgIHNldERpc2FibGVkU3RhdGU/KGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgICAgICBpc0Rpc2FibGVkID8gdGhpcy5iYXNlSW5wdXQuY29udHJvbC5kaXNhYmxlKCkgOiB0aGlzLmJhc2VJbnB1dC5jb250cm9sLmVuYWJsZSgpO1xyXG4gICAgICAgIHRoaXMucmVhZG9ubHkgPSBpc0Rpc2FibGVkO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQGlnbm9yZVxyXG4gICAgICovXHJcbiAgICBwcm90ZWN0ZWQgcHJvcGFnYXRlQ2hhbmdlID0gKF86IGFueSkgPT4geyB9O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogTCdlbWl0IGRlbCBmb2N1cyBkZWxsJ2VsZW1lbnRvXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSB7YW55fSB0b0VtaXQgdmFsb3JlIGRhIHByb3BhZ2FyZSBhbGwnZXN0ZXJub1xyXG4gICAgICovXHJcbiAgICBvbkZvY3VzKHRvRW1pdCkge1xyXG4gICAgICAgIHRoaXMuaW5wdXRGb2N1cy5lbWl0KHRvRW1pdCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBGaW5hbGl6emF6aW9uZSBJbnB1dFxyXG4gICAgICovXHJcbiAgICBvbkZpbmFsaXplKCkge1xyXG4gICAgICAgIHRoaXMuaW5wdXRGaW5hbGl6ZWQuZW1pdCgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU3Vic2NyaXB0aW9uIGFsbGUgcmljaGllc3RlIGRpIGZvY3VzXHJcbiAgICAgKi9cclxuICAgIG9ic2VydmFibGU6IGFueTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFJlZ2lzdHJhIGlsIFN1YmplY3QgcGVyIHJpY2V2ZXJlIGxlIHJpY2hpZXN0ZSBkaSBGb2N1cyBkYWxsJ2VzdGVybm9cclxuICAgICAqL1xyXG4gICAgcmVnaXN0ZXJGb2N1c1JlcXVlc3QoKTogYW55IHtcclxuICAgICAgICBpZighdGhpcy5Gb2N1c1N1YmplY3QpXHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB0aGlzLm9ic2VydmFibGUgPSB0aGlzLkZvY3VzU3ViamVjdC5zdWJzY3JpYmUodCA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuaHRtbElucHV0Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIERlcmVnaXN0cmEgaWwgU3ViamVjdCBkZWxsZSByaWNoaWVzdGUgZGkgZm9jdXNcclxuICAgICAqL1xyXG4gICAgZGVyZWdpc3RlckZvY3VzUmVxdWVzdCgpIHtcclxuICAgICAgICBpZiAodGhpcy5vYnNlcnZhYmxlKVxyXG4gICAgICAgICAgICB0aGlzLm9ic2VydmFibGUudW5zdWJzY3JpYmUoKTtcclxuICAgIH1cclxufSJdfQ==
|
|
@@ -23,9 +23,9 @@ export class CustomRequiredDirective {
|
|
|
23
23
|
return !c.value || this.NullValues.includes(c.value) ? { required: true } : null;
|
|
24
24
|
}
|
|
25
25
|
}
|
|
26
|
-
CustomRequiredDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.
|
|
27
|
-
CustomRequiredDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.
|
|
28
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.
|
|
26
|
+
CustomRequiredDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: CustomRequiredDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
27
|
+
CustomRequiredDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.4.0", type: CustomRequiredDirective, selector: "[customRequired]", inputs: { NullValues: ["CustomNullValues", "NullValues"], customRequired: "customRequired" }, providers: [{ provide: NG_VALIDATORS, useExisting: CustomRequiredDirective, multi: true }], ngImport: i0 });
|
|
28
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: CustomRequiredDirective, decorators: [{
|
|
29
29
|
type: Directive,
|
|
30
30
|
args: [{
|
|
31
31
|
selector: '[customRequired]',
|
|
@@ -38,4 +38,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
|
|
|
38
38
|
type: Input,
|
|
39
39
|
args: ['customRequired']
|
|
40
40
|
}] } });
|
|
41
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ3VzdG9tUmVxdWlyZWREaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mb3Jtcy1hbmQtdmFsaWRhdGlvbnMvc3JjL2xpYi92YWxpZGF0aW9ucy9jdXN0b21WYWxpZGF0b3JzL0N1c3RvbVJlcXVpcmVkRGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFVBQVU7QUFDVixPQUFPLEVBQW1CLGFBQWEsRUFBYSxNQUFNLGdCQUFnQixDQUFDO0FBQzNFLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUVqRDs7O0dBR0c7QUFLSCxNQUFNLE9BQU8sdUJBQXVCO0lBSnBDO1FBTUk7O1dBRUc7UUFDd0IsZUFBVSxHQUFhLEVBQUUsQ0FBQztLQWlCeEQ7SUFWRzs7T0FFRztJQUNILFFBQVEsQ0FBQyxDQUFrQjtRQUN2QixvRkFBb0Y7UUFDcEYsSUFBSSxJQUFJLENBQUMsY0FBYyxJQUFJLE1BQU07WUFDN0IsT0FBTyxJQUFJLENBQUM7UUFFaEIsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ3JGLENBQUM7O29IQXJCUSx1QkFBdUI7d0dBQXZCLHVCQUF1Qix5SUFGckIsQ0FBQyxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsV0FBVyxFQUFFLHVCQUF1QixFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQzsyRkFFakYsdUJBQXVCO2tCQUpuQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxrQkFBa0I7b0JBQzVCLFNBQVMsRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxXQUFXLHlCQUF5QixFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQztpQkFDN0Y7OEJBTThCLFVBQVU7c0JBQXBDLEtBQUs7dUJBQUMsa0JBQWtCO2dCQUtPLGNBQWM7c0JBQTdDLEtBQUs7dUJBQUMsZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQW5ndWxhclxyXG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIE5HX1ZBTElEQVRPUlMsIFZhbGlkYXRvciB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5pbXBvcnQgeyBEaXJlY3RpdmUsIElucHV0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuXHJcbi8qKlxyXG4gKiBEaXJldHRpdmEgdXRpbGl6emF0YSBwZXIgdmFsaWRhemlvbmkgXCJyZXF1aXJlZFwiIGN1c3RvbSwgaW4gbW9kbyBkYSBwb3RlciBkaXJlIGNoZSBhbmNoZSBzZSBjJ8OoIHVuIHZhbG9yZSBzZWxlemlvbmF0bywgbWEgcXVlbCB2YWxvcmUgbG8gY29uc2lkZXJvIG51bGwgXHJcbiAqIGFsbG9yYSBsYSB2YWxpZGF6aW9uZSBmYWxsaXNjZS4gQXR0dWFsbWVudGUgdXNhdG8gbmVsbCd1bmljbyBwdW50byBzZW5zYXRvOiB2YWxpZGF0aW9uLXNlbGVjdFxyXG4gKi9cclxuQERpcmVjdGl2ZSh7XHJcbiAgICBzZWxlY3RvcjogJ1tjdXN0b21SZXF1aXJlZF0nLFxyXG4gICAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBOR19WQUxJREFUT1JTLCB1c2VFeGlzdGluZzogQ3VzdG9tUmVxdWlyZWREaXJlY3RpdmUsIG11bHRpOiB0cnVlIH1dXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDdXN0b21SZXF1aXJlZERpcmVjdGl2ZSBpbXBsZW1lbnRzIFZhbGlkYXRvciB7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBMaXN0YSBkaSB2YWxvcmkgY2hlIHZlbmdvbm8gY29uc2lkZXJhdGkgXCJ2dW90aVwiIHNlcHB1ciBwcmVzZW50aVxyXG4gICAgICovXHJcbiAgICBASW5wdXQoXCJDdXN0b21OdWxsVmFsdWVzXCIpIE51bGxWYWx1ZXM6IHN0cmluZ1tdID0gW107XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBib29sZWFubyBpbiBtb2RhbGl0w6Agc3RyaW5nYSAoXCJ0cnVlXCIgbyBcImZhbHNlXCIpIGNoZSBpbmRpY2Egc2UgYXBwbGljYXJlIGxhIHZhbGlkYXppb25lIGRpIG9iYmxpZ2F0b3JpZXTDoCBvIG1lbm9cclxuICAgICAqL1xyXG4gICAgQElucHV0KCdjdXN0b21SZXF1aXJlZCcpIHB1YmxpYyBjdXN0b21SZXF1aXJlZDogc3RyaW5nO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQGlnbm9yZVxyXG4gICAgICovXHJcbiAgICB2YWxpZGF0ZShjOiBBYnN0cmFjdENvbnRyb2wpOiB7IFtrZXk6IHN0cmluZ106IGFueTsgfSB7XHJcbiAgICAgICAgLy8gQ29udHJvbGxvIHNvbG8gcGVyIGN1c3RvbSByZXF1aXJlZCBhIHRydWUsIGFsdHJpbWVudGkgcXVhbHNpYXNpIHZhbG9yZSBtaSB2YSBiZW5lXHJcbiAgICAgICAgaWYgKHRoaXMuY3VzdG9tUmVxdWlyZWQgIT0gXCJ0cnVlXCIpXHJcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xyXG5cclxuICAgICAgICByZXR1cm4gIWMudmFsdWUgfHwgdGhpcy5OdWxsVmFsdWVzLmluY2x1ZGVzKGMudmFsdWUpID8geyByZXF1aXJlZDogdHJ1ZSB9IDogbnVsbDtcclxuICAgIH1cclxufSJdfQ==
|
package/esm2020/lib/validations/validation-autocomplete/validation-autocomplete.component.mjs
CHANGED
|
@@ -20,8 +20,8 @@ import * as i8 from "ngx-bootstrap/tooltip";
|
|
|
20
20
|
*/
|
|
21
21
|
export class ValidationAutocompleteComponent extends BaseValidation {
|
|
22
22
|
/** @ignore */
|
|
23
|
-
constructor(_validators, _asyncValidators, injector, lc) {
|
|
24
|
-
super();
|
|
23
|
+
constructor(cdr, _validators, _asyncValidators, injector, lc) {
|
|
24
|
+
super(cdr);
|
|
25
25
|
this._validators = _validators;
|
|
26
26
|
this._asyncValidators = _asyncValidators;
|
|
27
27
|
this.injector = injector;
|
|
@@ -37,6 +37,7 @@ export class ValidationAutocompleteComponent extends BaseValidation {
|
|
|
37
37
|
}
|
|
38
38
|
/** @ignore */
|
|
39
39
|
ngOnInit() {
|
|
40
|
+
super.ngOnInit();
|
|
40
41
|
this.registerFocusRequest();
|
|
41
42
|
//controllo se è settato un required per decidere in maniera condizionale se utilizzare il validatore required nel componente interno
|
|
42
43
|
if (this._validators && !this.noValidate && this._validators.some(elem => elem instanceof RequiredValidator))
|
|
@@ -44,6 +45,7 @@ export class ValidationAutocompleteComponent extends BaseValidation {
|
|
|
44
45
|
}
|
|
45
46
|
/** @ignore */
|
|
46
47
|
ngOnDestroy() {
|
|
48
|
+
super.ngOnDestroy();
|
|
47
49
|
this.deregisterFocusRequest();
|
|
48
50
|
if (this.tooltipSubscription)
|
|
49
51
|
this.tooltipSubscription.unsubscribe();
|
|
@@ -106,16 +108,16 @@ export class ValidationAutocompleteComponent extends BaseValidation {
|
|
|
106
108
|
this.onTouched = fn;
|
|
107
109
|
}
|
|
108
110
|
}
|
|
109
|
-
ValidationAutocompleteComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.
|
|
110
|
-
ValidationAutocompleteComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.
|
|
111
|
+
ValidationAutocompleteComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: ValidationAutocompleteComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: NG_VALIDATORS, optional: true }, { token: NG_ASYNC_VALIDATORS, optional: true }, { token: i0.Injector }, { token: i1.LocalizationService }], target: i0.ɵɵFactoryTarget.Component });
|
|
112
|
+
ValidationAutocompleteComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: ValidationAutocompleteComponent, selector: "val-autocomplete", inputs: { FilteredSource: "FilteredSource", value: "value", label: "label" }, outputs: { optionChange: "optionChange" }, providers: [
|
|
111
113
|
{ provide: LocalizationService, useClass: BaseValidationLoc },
|
|
112
114
|
{
|
|
113
115
|
provide: NG_VALUE_ACCESSOR,
|
|
114
116
|
useExisting: forwardRef(() => ValidationAutocompleteComponent),
|
|
115
117
|
multi: true
|
|
116
118
|
}
|
|
117
|
-
], usesInheritance: true, ngImport: i0, template: "<!-- Val-Model: {{value}} -->\r\n<mat-form-field appearance=\"{{FieldAppearence}}\" class=\"mat-full-width mat-no-border-top mat-height-fixed\" [style.width.px]=\"widthPx\">\r\n <mat-label *ngIf=\"label\">{{label}}</mat-label>\r\n <input matInput\r\n #htmlInput\r\n #baseInput='ngModel'\r\n type=\"text\"\r\n triggers=\"\"\r\n placement=\"top\"\r\n placeholder=\"{{placeholder}}\"\r\n [matAutocomplete]=\"auto\"\r\n name=\"val-input\"\r\n id=\"{{id}}\"\r\n class=\"form-control {{class}}\"\r\n [(ngModel)]=\"value\"\r\n [class.checking-field]=\"!noValidate\"\r\n [tooltip]=\"tolTemplate\"\r\n [disabled]=\"readonly || disabled\"\r\n (ngModelChange)=\"onModelChange($event)\"\r\n (click)=\"onFocus($event)\"\r\n (focus)=\"checkTooltip();\"\r\n (keyup)=\"($event.keyCode == 13 || $event.keyCode == 27) && onFinalize();\"\r\n (blur)=\"closeTooltip(); onFinalize();\">\r\n\r\n <mat-autocomplete autoActiveFirstOption #auto=\"matAutocomplete\">\r\n <mat-option *ngFor=\"let option of FilteredSource\" [value]=\"option.id\">\r\n {{option.description}}\r\n </mat-option>\r\n </mat-autocomplete>\r\n</mat-form-field>\r\n\r\n<ng-template #tolTemplate>\r\n <div (click)=\"closeTooltip()\">\r\n <span>{{
|
|
118
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.
|
|
119
|
+
], usesInheritance: true, ngImport: i0, template: "<!-- Val-Model: {{value}} -->\r\n<mat-form-field appearance=\"{{FieldAppearence}}\" class=\"mat-full-width mat-no-border-top mat-height-fixed\" [style.width.px]=\"widthPx\">\r\n <mat-label *ngIf=\"label\">{{label}}</mat-label>\r\n <input matInput\r\n #htmlInput\r\n #baseInput='ngModel'\r\n type=\"text\"\r\n triggers=\"\"\r\n placement=\"top\"\r\n placeholder=\"{{placeholder}}\"\r\n [matAutocomplete]=\"auto\"\r\n name=\"val-input\"\r\n id=\"{{id}}\"\r\n class=\"form-control {{class}}\"\r\n [(ngModel)]=\"value\"\r\n [class.checking-field]=\"!noValidate\"\r\n [tooltip]=\"tolTemplate\"\r\n [disabled]=\"readonly || disabled\"\r\n (ngModelChange)=\"onModelChange($event)\"\r\n (click)=\"onFocus($event)\"\r\n (focus)=\"checkTooltip();\"\r\n (keyup)=\"($event.keyCode == 13 || $event.keyCode == 27) && onFinalize();\"\r\n (blur)=\"closeTooltip(); onFinalize();\">\r\n\r\n <mat-autocomplete autoActiveFirstOption #auto=\"matAutocomplete\">\r\n <mat-option *ngFor=\"let option of FilteredSource\" [value]=\"option.id\">\r\n {{option.description}}\r\n </mat-option>\r\n </mat-autocomplete>\r\n</mat-form-field>\r\n\r\n<ng-template #tolTemplate>\r\n <div (click)=\"closeTooltip()\">\r\n <span>{{validationFailedBind}}</span>\r\n </div>\r\n</ng-template>", styles: [".tooltip-inner{background-color:#842a30;color:#fff;font-size:12px;width:max-content}.tooltip{margin:auto auto auto 20%!important}.tooltip-inner{background-color:#842a30!important;color:#fff}.tooltip.top .tooltip-arrow:before,.tooltip.top .tooltip-arrow{border-top-color:#842a30}.close-button{position:absolute;right:0em;top:-.2em;float:right;font-size:16px;font-weight:700;color:inherit;text-shadow:0 1px 0 #fff;opacity:.5}.close-button:hover,.close-button:focus{text-decoration:none;cursor:pointer;opacity:.75}\n"], components: [{ type: i2.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { type: i3.MatAutocomplete, selector: "mat-autocomplete", inputs: ["disableRipple"], exportAs: ["matAutocomplete"] }, { type: i4.MatOption, selector: "mat-option", exportAs: ["matOption"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.MatLabel, selector: "mat-label" }, { type: i6.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { type: i3.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", exportAs: ["matAutocompleteTrigger"] }, { type: i7.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i7.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i8.TooltipDirective, selector: "[tooltip], [tooltipHtml]", inputs: ["adaptivePosition", "tooltip", "placement", "triggers", "container", "containerClass", "boundariesElement", "isOpen", "isDisabled", "delay", "tooltipHtml", "tooltipPlacement", "tooltipIsOpen", "tooltipEnable", "tooltipAppendToBody", "tooltipAnimation", "tooltipClass", "tooltipContext", "tooltipPopupDelay", "tooltipFadeDuration", "tooltipTrigger"], outputs: ["tooltipChange", "onShown", "onHidden", "tooltipStateChanged"], exportAs: ["bs-tooltip"] }, { type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
120
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: ValidationAutocompleteComponent, decorators: [{
|
|
119
121
|
type: Component,
|
|
120
122
|
args: [{ selector: "val-autocomplete", changeDetection: ChangeDetectionStrategy.OnPush, providers: [
|
|
121
123
|
{ provide: LocalizationService, useClass: BaseValidationLoc },
|
|
@@ -124,8 +126,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
|
|
|
124
126
|
useExisting: forwardRef(() => ValidationAutocompleteComponent),
|
|
125
127
|
multi: true
|
|
126
128
|
}
|
|
127
|
-
], encapsulation: ViewEncapsulation.None, template: "<!-- Val-Model: {{value}} -->\r\n<mat-form-field appearance=\"{{FieldAppearence}}\" class=\"mat-full-width mat-no-border-top mat-height-fixed\" [style.width.px]=\"widthPx\">\r\n <mat-label *ngIf=\"label\">{{label}}</mat-label>\r\n <input matInput\r\n #htmlInput\r\n #baseInput='ngModel'\r\n type=\"text\"\r\n triggers=\"\"\r\n placement=\"top\"\r\n placeholder=\"{{placeholder}}\"\r\n [matAutocomplete]=\"auto\"\r\n name=\"val-input\"\r\n id=\"{{id}}\"\r\n class=\"form-control {{class}}\"\r\n [(ngModel)]=\"value\"\r\n [class.checking-field]=\"!noValidate\"\r\n [tooltip]=\"tolTemplate\"\r\n [disabled]=\"readonly || disabled\"\r\n (ngModelChange)=\"onModelChange($event)\"\r\n (click)=\"onFocus($event)\"\r\n (focus)=\"checkTooltip();\"\r\n (keyup)=\"($event.keyCode == 13 || $event.keyCode == 27) && onFinalize();\"\r\n (blur)=\"closeTooltip(); onFinalize();\">\r\n\r\n <mat-autocomplete autoActiveFirstOption #auto=\"matAutocomplete\">\r\n <mat-option *ngFor=\"let option of FilteredSource\" [value]=\"option.id\">\r\n {{option.description}}\r\n </mat-option>\r\n </mat-autocomplete>\r\n</mat-form-field>\r\n\r\n<ng-template #tolTemplate>\r\n <div (click)=\"closeTooltip()\">\r\n <span>{{
|
|
128
|
-
}], ctorParameters: function () { return [{ type: Array, decorators: [{
|
|
129
|
+
], encapsulation: ViewEncapsulation.None, template: "<!-- Val-Model: {{value}} -->\r\n<mat-form-field appearance=\"{{FieldAppearence}}\" class=\"mat-full-width mat-no-border-top mat-height-fixed\" [style.width.px]=\"widthPx\">\r\n <mat-label *ngIf=\"label\">{{label}}</mat-label>\r\n <input matInput\r\n #htmlInput\r\n #baseInput='ngModel'\r\n type=\"text\"\r\n triggers=\"\"\r\n placement=\"top\"\r\n placeholder=\"{{placeholder}}\"\r\n [matAutocomplete]=\"auto\"\r\n name=\"val-input\"\r\n id=\"{{id}}\"\r\n class=\"form-control {{class}}\"\r\n [(ngModel)]=\"value\"\r\n [class.checking-field]=\"!noValidate\"\r\n [tooltip]=\"tolTemplate\"\r\n [disabled]=\"readonly || disabled\"\r\n (ngModelChange)=\"onModelChange($event)\"\r\n (click)=\"onFocus($event)\"\r\n (focus)=\"checkTooltip();\"\r\n (keyup)=\"($event.keyCode == 13 || $event.keyCode == 27) && onFinalize();\"\r\n (blur)=\"closeTooltip(); onFinalize();\">\r\n\r\n <mat-autocomplete autoActiveFirstOption #auto=\"matAutocomplete\">\r\n <mat-option *ngFor=\"let option of FilteredSource\" [value]=\"option.id\">\r\n {{option.description}}\r\n </mat-option>\r\n </mat-autocomplete>\r\n</mat-form-field>\r\n\r\n<ng-template #tolTemplate>\r\n <div (click)=\"closeTooltip()\">\r\n <span>{{validationFailedBind}}</span>\r\n </div>\r\n</ng-template>", styles: [".tooltip-inner{background-color:#842a30;color:#fff;font-size:12px;width:max-content}.tooltip{margin:auto auto auto 20%!important}.tooltip-inner{background-color:#842a30!important;color:#fff}.tooltip.top .tooltip-arrow:before,.tooltip.top .tooltip-arrow{border-top-color:#842a30}.close-button{position:absolute;right:0em;top:-.2em;float:right;font-size:16px;font-weight:700;color:inherit;text-shadow:0 1px 0 #fff;opacity:.5}.close-button:hover,.close-button:focus{text-decoration:none;cursor:pointer;opacity:.75}\n"] }]
|
|
130
|
+
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: Array, decorators: [{
|
|
129
131
|
type: Optional
|
|
130
132
|
}, {
|
|
131
133
|
type: Inject,
|
|
@@ -144,4 +146,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
|
|
|
144
146
|
}], optionChange: [{
|
|
145
147
|
type: Output
|
|
146
148
|
}] } });
|
|
147
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGlvbi1hdXRvY29tcGxldGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZm9ybXMtYW5kLXZhbGlkYXRpb25zL3NyYy9saWIvdmFsaWRhdGlvbnMvdmFsaWRhdGlvbi1hdXRvY29tcGxldGUvdmFsaWRhdGlvbi1hdXRvY29tcGxldGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZm9ybXMtYW5kLXZhbGlkYXRpb25zL3NyYy9saWIvdmFsaWRhdGlvbnMvdmFsaWRhdGlvbi1hdXRvY29tcGxldGUvdmFsaWRhdGlvbi1hdXRvY29tcGxldGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsVUFBVTtBQUNWLE9BQU8sRUFBcUMsbUJBQW1CLEVBQUUsYUFBYSxFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3hKLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQWMsWUFBWSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQVksS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkssaUJBQWlCO0FBQ2pCLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRTlELGtDQUFrQztBQUNsQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDcEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7Ozs7Ozs7Ozs7QUFHM0Q7O0dBRUc7QUFnQkgsTUFBTSxPQUFPLCtCQUFnQyxTQUFRLGNBQWM7SUFxQi9ELGNBQWM7SUFDZCxZQUF1RCxXQUF1QixFQUFtRCxnQkFBNEIsRUFBVSxRQUFrQixFQUFZLEVBQXVCO1FBQ3hOLEtBQUssRUFBRSxDQUFDO1FB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QkFBaUI7NEJBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLGdDQUFnQyxDQUFDOzRCQUM5RCxLQUFLLEVBQUUsSUFBSTt5QkFDZDtxQkFDSixpQkFDYyxpQkFBaUIsQ0FBQyxJQUFJOzBEQXlCK0IsS0FBSzswQkFBNUQsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxhQUFhOzhCQUFzRyxLQUFLOzBCQUF2RSxRQUFROzswQkFBSSxNQUFNOzJCQUFDLG1CQUFtQjtxR0FsQjlHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBR1UsS0FBSztzQkFBcEIsS0FBSztnQkFHVSxLQUFLO3NCQUFwQixLQUFLO2dCQUdJLFlBQVk7c0JBQXJCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyIvLyBBbmd1bGFyXHJcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBGb3JtQ29udHJvbCwgTkdfQVNZTkNfVkFMSURBVE9SUywgTkdfVkFMSURBVE9SUywgTkdfVkFMVUVfQUNDRVNTT1IsIE5nQ29udHJvbCwgUmVxdWlyZWRWYWxpZGF0b3IgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcclxuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBmb3J3YXJkUmVmLCBJbmplY3QsIEluamVjdG9yLCBJbnB1dCwgT3B0aW9uYWwsIE91dHB1dCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG4vLyBDb25maWd1cmF6aW9uaVxyXG5pbXBvcnQgeyBMb2NhbGl6YXRpb25TZXJ2aWNlIH0gZnJvbSBcIkBlc2ZhZW56YS9sb2NhbGl6YXRpb25zXCI7XHJcblxyXG4vLyBEaXJldHRpdmUsIENvbXBvbmVudGksIExpYnJlcmllXHJcbmltcG9ydCB7IEJhc2VWYWxpZGF0aW9uIH0gZnJvbSBcIi4uL2Jhc2UtdmFsaWRhdGlvblwiO1xyXG5pbXBvcnQgeyBCYXNlVmFsaWRhdGlvbkxvYyB9IGZyb20gJy4uL2Jhc2UtdmFsaWRhdGlvbi5sb2MnO1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tIFwicnhqc1wiO1xyXG5cclxuLyoqXHJcbiAqIENvbXBvbmVudGUgZGkgdmFsaWRhaXpvbmUgcGVyIGdsaSBpbnB1dCBkaSBBdXRvY29tcGxldGFtZW50b1xyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogXCJ2YWwtYXV0b2NvbXBsZXRlXCIsXHJcbiAgICB0ZW1wbGF0ZVVybDogXCJ2YWxpZGF0aW9uLWF1dG9jb21wbGV0ZS5jb21wb25lbnQuaHRtbFwiLFxyXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgICBwcm92aWRlcnM6IFtcclxuICAgICAgICB7IHByb3ZpZGU6IExvY2FsaXphdGlvblNlcnZpY2UsIHVzZUNsYXNzOiBCYXNlVmFsaWRhdGlvbkxvYyB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFZhbGlkYXRpb25BdXRvY29tcGxldGVDb21wb25lbnQpLFxyXG4gICAgICAgICAgICBtdWx0aTogdHJ1ZVxyXG4gICAgICAgIH1cclxuICAgIF0sXHJcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG4gICAgc3R5bGVVcmxzOiBbXCIuLi92YWxpZGF0aW9uLXN0eWxlLnNjc3NcIl1cclxufSlcclxuZXhwb3J0IGNsYXNzIFZhbGlkYXRpb25BdXRvY29tcGxldGVDb21wb25lbnQgZXh0ZW5kcyBCYXNlVmFsaWRhdGlvbiBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcclxuXHJcblxyXG4gICAgLyoqIFNvcmdlbnRlIGRhIGN1aSBzY2VnbGllcmUgdmFsb3JpIGZpbHRyYXRhIGluIGJhc2UgYSBxdWVsbG8gY2hlIGhhIHNjcml0dG8gbCd1dGVudGUgKi9cclxuICAgIEBJbnB1dCgpIEZpbHRlcmVkU291cmNlOiB7IGlkOiBzdHJpbmcsIGRlc2NyaXB0aW9uOiBzdHJpbmcgfVtdID0gW107XHJcblxyXG4gICAgLyoqIFZhbG9yZSBkZWwgbW9kZWxsbyAqL1xyXG4gICAgQElucHV0KCkgcHVibGljIHZhbHVlOiBhbnk7XHJcblxyXG4gICAgLyoqIENvbnRlbnV0byBkZWxsYSBsYWJlbCBGbG9hdHRhbnRlIE1hdGVyaWFsLVN0eWxlICovXHJcbiAgICBASW5wdXQoKSBwdWJsaWMgbGFiZWw6IHN0cmluZyA9IFwiXCI7XHJcblxyXG4gICAgLyoqIEV2ZW50byBjaGUgaW5kaWNhIGwnb3B6aW9uZSBzZWxlemlvbmF0YSBkYWwgY29tcG9uZW50ZS4gSWwgdmFsb3JlIGZpbmFsZSBkZWxsYSBzZWxlemlvbmUgZG92csOgIGVzc2VyZSBxdWVzdG8gKi9cclxuICAgIEBPdXRwdXQoKSBvcHRpb25DaGFuZ2U6IEV2ZW50RW1pdHRlcjxzdHJpbmc+ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcblxyXG4gICAgLyoqIFN1YnNjcmlwdGlvbiBkZWwgdG9vdGx0aXAgZGEgcmlwdWxpcmUgYWxsYSBkaXN0cnV6aW9uZSBkZWwgY29tcG9uZW50ZSAqL1xyXG4gICAgcHJpdmF0ZSB0b29sdGlwU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XHJcblxyXG4gICAgLyoqIENvbnRyb2xsbyBlc3Bvc3RvIG90dGVudXRvIHRyYW1pdGUgaW5qZWN0b3IgKi9cclxuICAgIHByaXZhdGUgcGFyZW50Q29udHJvbDogRm9ybUNvbnRyb2w7XHJcblxyXG4gICAgLyoqIEBpZ25vcmUgKi9cclxuICAgIGNvbnN0cnVjdG9yKEBPcHRpb25hbCgpIEBJbmplY3QoTkdfVkFMSURBVE9SUykgcHJpdmF0ZSBfdmFsaWRhdG9yczogQXJyYXk8YW55PiwgQE9wdGlvbmFsKCkgQEluamVjdChOR19BU1lOQ19WQUxJREFUT1JTKSBwcml2YXRlIF9hc3luY1ZhbGlkYXRvcnM6IEFycmF5PGFueT4sIHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yLCBwcm90ZWN0ZWQgbGM6IExvY2FsaXphdGlvblNlcnZpY2UpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKiBAaWdub3JlICovXHJcbiAgICBuZ09uSW5pdCgpIHtcclxuICAgICAgICB0aGlzLnJlZ2lzdGVyRm9jdXNSZXF1ZXN0KCk7XHJcblxyXG4gICAgICAgIC8vY29udHJvbGxvIHNlIMOoIHNldHRhdG8gdW4gcmVxdWlyZWQgcGVyIGRlY2lkZXJlIGluIG1hbmllcmEgY29uZGl6aW9uYWxlIHNlIHV0aWxpenphcmUgaWwgdmFsaWRhdG9yZSByZXF1aXJlZCBuZWwgY29tcG9uZW50ZSBpbnRlcm5vXHJcbiAgICAgICAgaWYgKHRoaXMuX3ZhbGlkYXRvcnMgJiYgIXRoaXMubm9WYWxpZGF0ZSAmJiB0aGlzLl92YWxpZGF0b3JzLnNvbWUoZWxlbSA9PiBlbGVtIGluc3RhbmNlb2YgUmVxdWlyZWRWYWxpZGF0b3IpKVxyXG4gICAgICAgICAgICB0aGlzLnJlcXVpcmVkID0gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICAvKiogQGlnbm9yZSAqL1xyXG4gICAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICAgICAgdGhpcy5kZXJlZ2lzdGVyRm9jdXNSZXF1ZXN0KCk7XHJcbiAgICAgICAgaWYgKHRoaXMudG9vbHRpcFN1YnNjcmlwdGlvbikgdGhpcy50b29sdGlwU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqIEBpZ25vcmUgKi9cclxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgICAgICB0aGlzLnBvc3RCaW5kaW5nKCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBNZXRvZG8gY2hlIHNpIG9jY3VwYSBkaSBjb2xsZWdhcmUgaSB2YWxpZGF0b3JpIGUgbGEgZnVuemlvbmUgZGkgcmVzZXQgZGFsICoqQ29udHJvbFZhbHVlQWNjZXNzb3IqKiByYXBwcmVzZW50YXRvIFxyXG4gICAgICogZGEgcXVlc3RvIGNvbXBvbmVudGUgYWwgKipDb250cm9sVmFsdWVBY2Nlc3NvcioqIHJhcHByZXNlbnRhdG8gZGFsbCdlZmZldHRpdm8gZWxlbWVudG8gZGkgSW5wdXQgcHJlc2VudGUgbGF0byBIVE1MXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgcG9zdEJpbmRpbmcoKSB7XHJcbiAgICAgICAgdGhpcy5DaGVja1ZhbGlkaXR5KCk7XHJcbiAgICAgICAgY29uc3QgbmdDb250cm9sOiBOZ0NvbnRyb2wgPSB0aGlzLmluamVjdG9yLmdldChOZ0NvbnRyb2wsIG51bGwpO1xyXG4gICAgICAgIGlmIChuZ0NvbnRyb2wpIHtcclxuICAgICAgICAgICAgdGhpcy5wYXJlbnRDb250cm9sID0gbmdDb250cm9sLmNvbnRyb2wgYXMgRm9ybUNvbnRyb2w7XHJcblxyXG4gICAgICAgICAgICAvL3NlIGxhIHZhcmlhYmlsZSBub3ZhbGlkYXRlIMOoIHRydWUsIGVsaW1pbm8gdHV0dGkgaSB2YWxpZGF0b3JpIGV2ZW50dWFsbWVudGUgaW5zZXJpdGlcclxuICAgICAgICAgICAgaWYgKHRoaXMubm9WYWxpZGF0ZSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5wYXJlbnRDb250cm9sLmNsZWFyVmFsaWRhdG9ycygpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5wYXJlbnRDb250cm9sLmNsZWFyQXN5bmNWYWxpZGF0b3JzKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmJhc2VJbnB1dC5jb250cm9sLnNldEFzeW5jVmFsaWRhdG9ycyh0aGlzLl9hc3luY1ZhbGlkYXRvcnMpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5iYXNlSW5wdXQuY29udHJvbC5zZXRWYWxpZGF0b3JzKHRoaXMuX3ZhbGlkYXRvcnMpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAvL2ZhY2NpbyBpbiBtb2RvIGNoZSBzZSBjaGlhbW8gaWwgcmVzZXQgZGVsIGNvbnRyb2xsbyAobyBkZWxsYSBmb3JtKSBkYWxsJ2VzdGVybm8gc2kgcmVzZXR0aSBhbmNoZSBpbCBjb250cm9sbG8gbmF0aXZvXHJcbiAgICAgICAgICAgIGNvbnN0IG9yaWdGdW5jID0gdGhpcy5wYXJlbnRDb250cm9sLnJlc2V0O1xyXG4gICAgICAgICAgICB0aGlzLnBhcmVudENvbnRyb2wucmVzZXQgPSAoKSA9PiB7IC8vZmFjY2lvIGluIG1vZG8gY2hlIHNlIGNoaWFtbyBpbCByZXNldCBkZWwgY29udHJvbGxvIChvIGRlbGxhIGZvcm0pIGRhbGwnZXN0ZXJubyBzaSByZXNldHRpIGFuY2hlIGlsIGNvbnRyb2xsbyBuYXRpdm9cclxuICAgICAgICAgICAgICAgIG9yaWdGdW5jLmFwcGx5KHRoaXMucGFyZW50Q29udHJvbCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmJhc2VJbnB1dC5jb250cm9sLnJlc2V0KCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnRvb2x0aXAuaGlkZSgpO1xyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKiogQGlnbm9yZSAqL1xyXG4gICAgcHJpdmF0ZSBvblRvdWNoZWQgPSAoKSA9PiB7IH07IC8vcGxhY2Vob2xkZXIgb24gdG91Y2hlZCBmdW5jdGlvblxyXG5cclxuICAgIC8qKiBAaWdub3JlICovXHJcbiAgICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpOiB2b2lkIHtcclxuICAgICAgICB2YXIgdmFsID0gdmFsdWUgJiYgdGhpcy5GaWx0ZXJlZFNvdXJjZSA/IHRoaXMuRmlsdGVyZWRTb3VyY2UuZmluZCh0ID0+IHQuaWQgPT0gdmFsdWUpIDogbnVsbDtcclxuICAgICAgICBpZih2YWwpIHRoaXMub3B0aW9uQ2hhbmdlLmVtaXQodmFsLmlkKTtcclxuICAgICAgICB0aGlzLnByb3BhZ2F0ZUNoYW5nZSh2YWwgPyB2YWwuaWQgOiB2YWx1ZSk7XHJcbiAgICAgICAgdGhpcy52YWx1ZSA9IHZhbCA/IHZhbC5kZXNjcmlwdGlvbiA6IHZhbHVlO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogTCdlbWl0IGRlbGxhIG1vZGlmaWNhIGFsIHZhbG9yZSB2aWVuZSBnZXN0aXRvIHN1IHVuIGV2ZW50byBjdXN0b20gKCoqaW5wdXRDaGFuZ2UqKikgY29tZSB3b3JrYXJvdW5kIGFsIG1hbGZ1bnppb25hbWVudG8gZGVsbCcqKm5nTW9kZWxDaGFuZ2UqKiBuYXRpdm9cclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIHthbnl9IHRvRW1pdCB2YWxvcmUgZGEgcHJvcGFnYXJlIGFsbCdlc3Rlcm5vXHJcbiAgICAgKi9cclxuICAgIG9uTW9kZWxDaGFuZ2UodG9FbWl0KSB7XHJcbiAgICAgICAgdGhpcy53cml0ZVZhbHVlKHRvRW1pdCk7XHJcbiAgICAgICAgdGhpcy5pbnB1dENoYW5nZS5lbWl0KHRvRW1pdCk7XHJcbiAgICAgICAgdGhpcy5vblRvdWNoZWQoKTtcclxuICAgIH1cclxuXHJcbiAgICAvKiogQGlnbm9yZSAqL1xyXG4gICAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5wcm9wYWdhdGVDaGFuZ2UgPSBmbjtcclxuICAgIH1cclxuXHJcbiAgICAvKiogQGlnbm9yZSAqL1xyXG4gICAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMub25Ub3VjaGVkID0gZm47XHJcbiAgICB9XHJcbn0iLCI8IS0tIFZhbC1Nb2RlbDoge3t2YWx1ZX19IC0tPlxyXG48bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cInt7RmllbGRBcHBlYXJlbmNlfX1cIiBjbGFzcz1cIm1hdC1mdWxsLXdpZHRoIG1hdC1uby1ib3JkZXItdG9wIG1hdC1oZWlnaHQtZml4ZWRcIiBbc3R5bGUud2lkdGgucHhdPVwid2lkdGhQeFwiPlxyXG4gICAgPG1hdC1sYWJlbCAqbmdJZj1cImxhYmVsXCI+e3tsYWJlbH19PC9tYXQtbGFiZWw+XHJcbiAgICA8aW5wdXQgbWF0SW5wdXRcclxuICAgICAgICAgICAjaHRtbElucHV0XHJcbiAgICAgICAgICAgI2Jhc2VJbnB1dD0nbmdNb2RlbCdcclxuICAgICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICAgdHJpZ2dlcnM9XCJcIlxyXG4gICAgICAgICAgIHBsYWNlbWVudD1cInRvcFwiXHJcbiAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJ7e3BsYWNlaG9sZGVyfX1cIlxyXG4gICAgICAgICAgIFttYXRBdXRvY29tcGxldGVdPVwiYXV0b1wiXHJcbiAgICAgICAgICAgbmFtZT1cInZhbC1pbnB1dFwiXHJcbiAgICAgICAgICAgaWQ9XCJ7e2lkfX1cIlxyXG4gICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sIHt7Y2xhc3N9fVwiXHJcbiAgICAgICAgICAgWyhuZ01vZGVsKV09XCJ2YWx1ZVwiXHJcbiAgICAgICAgICAgW2NsYXNzLmNoZWNraW5nLWZpZWxkXT1cIiFub1ZhbGlkYXRlXCJcclxuICAgICAgICAgICBbdG9vbHRpcF09XCJ0b2xUZW1wbGF0ZVwiXHJcbiAgICAgICAgICAgW2Rpc2FibGVkXT1cInJlYWRvbmx5IHx8IGRpc2FibGVkXCJcclxuICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJvbk1vZGVsQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgICAgIChjbGljayk9XCJvbkZvY3VzKCRldmVudClcIlxyXG4gICAgICAgICAgIChmb2N1cyk9XCJjaGVja1Rvb2x0aXAoKTtcIlxyXG4gICAgICAgICAgIChrZXl1cCk9XCIoJGV2ZW50LmtleUNvZGUgPT0gMTMgfHwgJGV2ZW50LmtleUNvZGUgPT0gMjcpICYmIG9uRmluYWxpemUoKTtcIlxyXG4gICAgICAgICAgIChibHVyKT1cImNsb3NlVG9vbHRpcCgpOyBvbkZpbmFsaXplKCk7XCI+XHJcblxyXG4gICAgPG1hdC1hdXRvY29tcGxldGUgYXV0b0FjdGl2ZUZpcnN0T3B0aW9uICNhdXRvPVwibWF0QXV0b2NvbXBsZXRlXCI+XHJcbiAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBGaWx0ZXJlZFNvdXJjZVwiIFt2YWx1ZV09XCJvcHRpb24uaWRcIj5cclxuICAgICAgICAgICAge3tvcHRpb24uZGVzY3JpcHRpb259fVxyXG4gICAgICAgIDwvbWF0LW9wdGlvbj5cclxuICAgIDwvbWF0LWF1dG9jb21wbGV0ZT5cclxuPC9tYXQtZm9ybS1maWVsZD5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjdG9sVGVtcGxhdGU+XHJcbiAgICA8ZGl2IChjbGljayk9XCJjbG9zZVRvb2x0aXAoKVwiPlxyXG4gICAgICAgIDxzcGFuPnt7dmFsaWRhdGlvbkZhaWxlZH19PC9zcGFuPlxyXG4gICAgPC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+Il19
|
|
149
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGlvbi1hdXRvY29tcGxldGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZm9ybXMtYW5kLXZhbGlkYXRpb25zL3NyYy9saWIvdmFsaWRhdGlvbnMvdmFsaWRhdGlvbi1hdXRvY29tcGxldGUvdmFsaWRhdGlvbi1hdXRvY29tcGxldGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZm9ybXMtYW5kLXZhbGlkYXRpb25zL3NyYy9saWIvdmFsaWRhdGlvbnMvdmFsaWRhdGlvbi1hdXRvY29tcGxldGUvdmFsaWRhdGlvbi1hdXRvY29tcGxldGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsVUFBVTtBQUNWLE9BQU8sRUFBcUMsbUJBQW1CLEVBQUUsYUFBYSxFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3hKLE9BQU8sRUFBRSx1QkFBdUIsRUFBcUIsU0FBUyxFQUFjLFlBQVksRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFZLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFMLGlCQUFpQjtBQUNqQixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUU5RCxrQ0FBa0M7QUFDbEMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7Ozs7Ozs7O0FBRzNEOztHQUVHO0FBZ0JILE1BQU0sT0FBTywrQkFBZ0MsU0FBUSxjQUFjO0lBcUIvRCxjQUFjO0lBQ2QsWUFBWSxHQUFzQixFQUE2QyxXQUF1QixFQUFtRCxnQkFBNEIsRUFBVSxRQUFrQixFQUFZLEVBQXVCO1FBQ2hQLEtBQUss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YUFDcEM7d0JBQ1AsRUFBRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsUUFBUSxFQUFFLGlCQUFpQixFQUFFO3dCQUM3RDs0QkFDSSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxnQ0FBZ0MsQ0FBQzs0QkFDOUQsS0FBSyxFQUFFLElBQUk7eUJBQ2Q7cUJBQ0osaUJBQ2MsaUJBQWlCLENBQUMsSUFBSTswRkF5QnVELEtBQUs7MEJBQTVELFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsYUFBYTs4QkFBc0csS0FBSzswQkFBdkUsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxtQkFBbUI7cUdBbEJ0SSxjQUFjO3NCQUF0QixLQUFLO2dCQUdVLEtBQUs7c0JBQXBCLEtBQUs7Z0JBR1UsS0FBSztzQkFBcEIsS0FBSztnQkFHSSxZQUFZO3NCQUFyQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQW5ndWxhclxyXG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgRm9ybUNvbnRyb2wsIE5HX0FTWU5DX1ZBTElEQVRPUlMsIE5HX1ZBTElEQVRPUlMsIE5HX1ZBTFVFX0FDQ0VTU09SLCBOZ0NvbnRyb2wsIFJlcXVpcmVkVmFsaWRhdG9yIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIGZvcndhcmRSZWYsIEluamVjdCwgSW5qZWN0b3IsIElucHV0LCBPcHRpb25hbCwgT3V0cHV0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbi8vIENvbmZpZ3VyYXppb25pXHJcbmltcG9ydCB7IExvY2FsaXphdGlvblNlcnZpY2UgfSBmcm9tIFwiQGVzZmFlbnphL2xvY2FsaXphdGlvbnNcIjtcclxuXHJcbi8vIERpcmV0dGl2ZSwgQ29tcG9uZW50aSwgTGlicmVyaWVcclxuaW1wb3J0IHsgQmFzZVZhbGlkYXRpb24gfSBmcm9tIFwiLi4vYmFzZS12YWxpZGF0aW9uXCI7XHJcbmltcG9ydCB7IEJhc2VWYWxpZGF0aW9uTG9jIH0gZnJvbSAnLi4vYmFzZS12YWxpZGF0aW9uLmxvYyc7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gXCJyeGpzXCI7XHJcblxyXG4vKipcclxuICogQ29tcG9uZW50ZSBkaSB2YWxpZGFpem9uZSBwZXIgZ2xpIGlucHV0IGRpIEF1dG9jb21wbGV0YW1lbnRvXHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiBcInZhbC1hdXRvY29tcGxldGVcIixcclxuICAgIHRlbXBsYXRlVXJsOiBcInZhbGlkYXRpb24tYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5odG1sXCIsXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICAgIHByb3ZpZGVyczogW1xyXG4gICAgICAgIHsgcHJvdmlkZTogTG9jYWxpemF0aW9uU2VydmljZSwgdXNlQ2xhc3M6IEJhc2VWYWxpZGF0aW9uTG9jIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gVmFsaWRhdGlvbkF1dG9jb21wbGV0ZUNvbXBvbmVudCksXHJcbiAgICAgICAgICAgIG11bHRpOiB0cnVlXHJcbiAgICAgICAgfVxyXG4gICAgXSxcclxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgICBzdHlsZVVybHM6IFtcIi4uL3ZhbGlkYXRpb24tc3R5bGUuc2Nzc1wiXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVmFsaWRhdGlvbkF1dG9jb21wbGV0ZUNvbXBvbmVudCBleHRlbmRzIEJhc2VWYWxpZGF0aW9uIGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xyXG5cclxuXHJcbiAgICAvKiogU29yZ2VudGUgZGEgY3VpIHNjZWdsaWVyZSB2YWxvcmkgZmlsdHJhdGEgaW4gYmFzZSBhIHF1ZWxsbyBjaGUgaGEgc2NyaXR0byBsJ3V0ZW50ZSAqL1xyXG4gICAgQElucHV0KCkgRmlsdGVyZWRTb3VyY2U6IHsgaWQ6IHN0cmluZywgZGVzY3JpcHRpb246IHN0cmluZyB9W10gPSBbXTtcclxuXHJcbiAgICAvKiogVmFsb3JlIGRlbCBtb2RlbGxvICovXHJcbiAgICBASW5wdXQoKSBwdWJsaWMgdmFsdWU6IGFueTtcclxuXHJcbiAgICAvKiogQ29udGVudXRvIGRlbGxhIGxhYmVsIEZsb2F0dGFudGUgTWF0ZXJpYWwtU3R5bGUgKi9cclxuICAgIEBJbnB1dCgpIHB1YmxpYyBsYWJlbDogc3RyaW5nID0gXCJcIjtcclxuXHJcbiAgICAvKiogRXZlbnRvIGNoZSBpbmRpY2EgbCdvcHppb25lIHNlbGV6aW9uYXRhIGRhbCBjb21wb25lbnRlLiBJbCB2YWxvcmUgZmluYWxlIGRlbGxhIHNlbGV6aW9uZSBkb3Zyw6AgZXNzZXJlIHF1ZXN0byAqL1xyXG4gICAgQE91dHB1dCgpIG9wdGlvbkNoYW5nZTogRXZlbnRFbWl0dGVyPHN0cmluZz4gPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcclxuXHJcbiAgICAvKiogU3Vic2NyaXB0aW9uIGRlbCB0b290bHRpcCBkYSByaXB1bGlyZSBhbGxhIGRpc3RydXppb25lIGRlbCBjb21wb25lbnRlICovXHJcbiAgICBwcml2YXRlIHRvb2x0aXBTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcclxuXHJcbiAgICAvKiogQ29udHJvbGxvIGVzcG9zdG8gb3R0ZW51dG8gdHJhbWl0ZSBpbmplY3RvciAqL1xyXG4gICAgcHJpdmF0ZSBwYXJlbnRDb250cm9sOiBGb3JtQ29udHJvbDtcclxuXHJcbiAgICAvKiogQGlnbm9yZSAqL1xyXG4gICAgY29uc3RydWN0b3IoY2RyOiBDaGFuZ2VEZXRlY3RvclJlZiwgQE9wdGlvbmFsKCkgQEluamVjdChOR19WQUxJREFUT1JTKSBwcml2YXRlIF92YWxpZGF0b3JzOiBBcnJheTxhbnk+LCBAT3B0aW9uYWwoKSBASW5qZWN0KE5HX0FTWU5DX1ZBTElEQVRPUlMpIHByaXZhdGUgX2FzeW5jVmFsaWRhdG9yczogQXJyYXk8YW55PiwgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IsIHByb3RlY3RlZCBsYzogTG9jYWxpemF0aW9uU2VydmljZSkge1xyXG4gICAgICAgIHN1cGVyKGNkcik7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqIEBpZ25vcmUgKi9cclxuICAgIG5nT25Jbml0KCkge1xyXG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XHJcbiAgICAgICAgdGhpcy5yZWdpc3RlckZvY3VzUmVxdWVzdCgpO1xyXG5cclxuICAgICAgICAvL2NvbnRyb2xsbyBzZSDDqCBzZXR0YXRvIHVuIHJlcXVpcmVkIHBlciBkZWNpZGVyZSBpbiBtYW5pZXJhIGNvbmRpemlvbmFsZSBzZSB1dGlsaXp6YXJlIGlsIHZhbGlkYXRvcmUgcmVxdWlyZWQgbmVsIGNvbXBvbmVudGUgaW50ZXJub1xyXG4gICAgICAgIGlmICh0aGlzLl92YWxpZGF0b3JzICYmICF0aGlzLm5vVmFsaWRhdGUgJiYgdGhpcy5fdmFsaWRhdG9ycy5zb21lKGVsZW0gPT4gZWxlbSBpbnN0YW5jZW9mIFJlcXVpcmVkVmFsaWRhdG9yKSlcclxuICAgICAgICAgICAgdGhpcy5yZXF1aXJlZCA9IHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqIEBpZ25vcmUgKi9cclxuICAgIG5nT25EZXN0cm95KCkge1xyXG4gICAgICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XHJcbiAgICAgICAgdGhpcy5kZXJlZ2lzdGVyRm9jdXNSZXF1ZXN0KCk7XHJcbiAgICAgICAgaWYgKHRoaXMudG9vbHRpcFN1YnNjcmlwdGlvbikgdGhpcy50b29sdGlwU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqIEBpZ25vcmUgKi9cclxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgICAgICB0aGlzLnBvc3RCaW5kaW5nKCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBNZXRvZG8gY2hlIHNpIG9jY3VwYSBkaSBjb2xsZWdhcmUgaSB2YWxpZGF0b3JpIGUgbGEgZnVuemlvbmUgZGkgcmVzZXQgZGFsICoqQ29udHJvbFZhbHVlQWNjZXNzb3IqKiByYXBwcmVzZW50YXRvIFxyXG4gICAgICogZGEgcXVlc3RvIGNvbXBvbmVudGUgYWwgKipDb250cm9sVmFsdWVBY2Nlc3NvcioqIHJhcHByZXNlbnRhdG8gZGFsbCdlZmZldHRpdm8gZWxlbWVudG8gZGkgSW5wdXQgcHJlc2VudGUgbGF0byBIVE1MXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgcG9zdEJpbmRpbmcoKSB7XHJcbiAgICAgICAgdGhpcy5DaGVja1ZhbGlkaXR5KCk7XHJcbiAgICAgICAgY29uc3QgbmdDb250cm9sOiBOZ0NvbnRyb2wgPSB0aGlzLmluamVjdG9yLmdldChOZ0NvbnRyb2wsIG51bGwpO1xyXG4gICAgICAgIGlmIChuZ0NvbnRyb2wpIHtcclxuICAgICAgICAgICAgdGhpcy5wYXJlbnRDb250cm9sID0gbmdDb250cm9sLmNvbnRyb2wgYXMgRm9ybUNvbnRyb2w7XHJcblxyXG4gICAgICAgICAgICAvL3NlIGxhIHZhcmlhYmlsZSBub3ZhbGlkYXRlIMOoIHRydWUsIGVsaW1pbm8gdHV0dGkgaSB2YWxpZGF0b3JpIGV2ZW50dWFsbWVudGUgaW5zZXJpdGlcclxuICAgICAgICAgICAgaWYgKHRoaXMubm9WYWxpZGF0ZSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5wYXJlbnRDb250cm9sLmNsZWFyVmFsaWRhdG9ycygpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5wYXJlbnRDb250cm9sLmNsZWFyQXN5bmNWYWxpZGF0b3JzKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmJhc2VJbnB1dC5jb250cm9sLnNldEFzeW5jVmFsaWRhdG9ycyh0aGlzLl9hc3luY1ZhbGlkYXRvcnMpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5iYXNlSW5wdXQuY29udHJvbC5zZXRWYWxpZGF0b3JzKHRoaXMuX3ZhbGlkYXRvcnMpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAvL2ZhY2NpbyBpbiBtb2RvIGNoZSBzZSBjaGlhbW8gaWwgcmVzZXQgZGVsIGNvbnRyb2xsbyAobyBkZWxsYSBmb3JtKSBkYWxsJ2VzdGVybm8gc2kgcmVzZXR0aSBhbmNoZSBpbCBjb250cm9sbG8gbmF0aXZvXHJcbiAgICAgICAgICAgIGNvbnN0IG9yaWdGdW5jID0gdGhpcy5wYXJlbnRDb250cm9sLnJlc2V0O1xyXG4gICAgICAgICAgICB0aGlzLnBhcmVudENvbnRyb2wucmVzZXQgPSAoKSA9PiB7IC8vZmFjY2lvIGluIG1vZG8gY2hlIHNlIGNoaWFtbyBpbCByZXNldCBkZWwgY29udHJvbGxvIChvIGRlbGxhIGZvcm0pIGRhbGwnZXN0ZXJubyBzaSByZXNldHRpIGFuY2hlIGlsIGNvbnRyb2xsbyBuYXRpdm9cclxuICAgICAgICAgICAgICAgIG9yaWdGdW5jLmFwcGx5KHRoaXMucGFyZW50Q29udHJvbCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmJhc2VJbnB1dC5jb250cm9sLnJlc2V0KCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnRvb2x0aXAuaGlkZSgpO1xyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKiogQGlnbm9yZSAqL1xyXG4gICAgcHJpdmF0ZSBvblRvdWNoZWQgPSAoKSA9PiB7IH07IC8vcGxhY2Vob2xkZXIgb24gdG91Y2hlZCBmdW5jdGlvblxyXG5cclxuICAgIC8qKiBAaWdub3JlICovXHJcbiAgICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpOiB2b2lkIHtcclxuICAgICAgICB2YXIgdmFsID0gdmFsdWUgJiYgdGhpcy5GaWx0ZXJlZFNvdXJjZSA/IHRoaXMuRmlsdGVyZWRTb3VyY2UuZmluZCh0ID0+IHQuaWQgPT0gdmFsdWUpIDogbnVsbDtcclxuICAgICAgICBpZih2YWwpIHRoaXMub3B0aW9uQ2hhbmdlLmVtaXQodmFsLmlkKTtcclxuICAgICAgICB0aGlzLnByb3BhZ2F0ZUNoYW5nZSh2YWwgPyB2YWwuaWQgOiB2YWx1ZSk7XHJcbiAgICAgICAgdGhpcy52YWx1ZSA9IHZhbCA/IHZhbC5kZXNjcmlwdGlvbiA6IHZhbHVlO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogTCdlbWl0IGRlbGxhIG1vZGlmaWNhIGFsIHZhbG9yZSB2aWVuZSBnZXN0aXRvIHN1IHVuIGV2ZW50byBjdXN0b20gKCoqaW5wdXRDaGFuZ2UqKikgY29tZSB3b3JrYXJvdW5kIGFsIG1hbGZ1bnppb25hbWVudG8gZGVsbCcqKm5nTW9kZWxDaGFuZ2UqKiBuYXRpdm9cclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIHthbnl9IHRvRW1pdCB2YWxvcmUgZGEgcHJvcGFnYXJlIGFsbCdlc3Rlcm5vXHJcbiAgICAgKi9cclxuICAgIG9uTW9kZWxDaGFuZ2UodG9FbWl0KSB7XHJcbiAgICAgICAgdGhpcy53cml0ZVZhbHVlKHRvRW1pdCk7XHJcbiAgICAgICAgdGhpcy5pbnB1dENoYW5nZS5lbWl0KHRvRW1pdCk7XHJcbiAgICAgICAgdGhpcy5vblRvdWNoZWQoKTtcclxuICAgIH1cclxuXHJcbiAgICAvKiogQGlnbm9yZSAqL1xyXG4gICAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5wcm9wYWdhdGVDaGFuZ2UgPSBmbjtcclxuICAgIH1cclxuXHJcbiAgICAvKiogQGlnbm9yZSAqL1xyXG4gICAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMub25Ub3VjaGVkID0gZm47XHJcbiAgICB9XHJcbn0iLCI8IS0tIFZhbC1Nb2RlbDoge3t2YWx1ZX19IC0tPlxyXG48bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cInt7RmllbGRBcHBlYXJlbmNlfX1cIiBjbGFzcz1cIm1hdC1mdWxsLXdpZHRoIG1hdC1uby1ib3JkZXItdG9wIG1hdC1oZWlnaHQtZml4ZWRcIiBbc3R5bGUud2lkdGgucHhdPVwid2lkdGhQeFwiPlxyXG4gICAgPG1hdC1sYWJlbCAqbmdJZj1cImxhYmVsXCI+e3tsYWJlbH19PC9tYXQtbGFiZWw+XHJcbiAgICA8aW5wdXQgbWF0SW5wdXRcclxuICAgICAgICAgICAjaHRtbElucHV0XHJcbiAgICAgICAgICAgI2Jhc2VJbnB1dD0nbmdNb2RlbCdcclxuICAgICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICAgdHJpZ2dlcnM9XCJcIlxyXG4gICAgICAgICAgIHBsYWNlbWVudD1cInRvcFwiXHJcbiAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJ7e3BsYWNlaG9sZGVyfX1cIlxyXG4gICAgICAgICAgIFttYXRBdXRvY29tcGxldGVdPVwiYXV0b1wiXHJcbiAgICAgICAgICAgbmFtZT1cInZhbC1pbnB1dFwiXHJcbiAgICAgICAgICAgaWQ9XCJ7e2lkfX1cIlxyXG4gICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sIHt7Y2xhc3N9fVwiXHJcbiAgICAgICAgICAgWyhuZ01vZGVsKV09XCJ2YWx1ZVwiXHJcbiAgICAgICAgICAgW2NsYXNzLmNoZWNraW5nLWZpZWxkXT1cIiFub1ZhbGlkYXRlXCJcclxuICAgICAgICAgICBbdG9vbHRpcF09XCJ0b2xUZW1wbGF0ZVwiXHJcbiAgICAgICAgICAgW2Rpc2FibGVkXT1cInJlYWRvbmx5IHx8IGRpc2FibGVkXCJcclxuICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJvbk1vZGVsQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgICAgIChjbGljayk9XCJvbkZvY3VzKCRldmVudClcIlxyXG4gICAgICAgICAgIChmb2N1cyk9XCJjaGVja1Rvb2x0aXAoKTtcIlxyXG4gICAgICAgICAgIChrZXl1cCk9XCIoJGV2ZW50LmtleUNvZGUgPT0gMTMgfHwgJGV2ZW50LmtleUNvZGUgPT0gMjcpICYmIG9uRmluYWxpemUoKTtcIlxyXG4gICAgICAgICAgIChibHVyKT1cImNsb3NlVG9vbHRpcCgpOyBvbkZpbmFsaXplKCk7XCI+XHJcblxyXG4gICAgPG1hdC1hdXRvY29tcGxldGUgYXV0b0FjdGl2ZUZpcnN0T3B0aW9uICNhdXRvPVwibWF0QXV0b2NvbXBsZXRlXCI+XHJcbiAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBGaWx0ZXJlZFNvdXJjZVwiIFt2YWx1ZV09XCJvcHRpb24uaWRcIj5cclxuICAgICAgICAgICAge3tvcHRpb24uZGVzY3JpcHRpb259fVxyXG4gICAgICAgIDwvbWF0LW9wdGlvbj5cclxuICAgIDwvbWF0LWF1dG9jb21wbGV0ZT5cclxuPC9tYXQtZm9ybS1maWVsZD5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjdG9sVGVtcGxhdGU+XHJcbiAgICA8ZGl2IChjbGljayk9XCJjbG9zZVRvb2x0aXAoKVwiPlxyXG4gICAgICAgIDxzcGFuPnt7dmFsaWRhdGlvbkZhaWxlZEJpbmR9fTwvc3Bhbj5cclxuICAgIDwvZGl2PlxyXG48L25nLXRlbXBsYXRlPiJdfQ==
|