@skyux/phone-field 8.10.6 → 8.10.7
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/modules/phone-field/phone-field-adapter.service.mjs +4 -4
- package/esm2020/lib/modules/phone-field/phone-field-input.directive.mjs +4 -4
- package/esm2020/lib/modules/phone-field/phone-field.component.mjs +4 -4
- package/esm2020/lib/modules/phone-field/phone-field.module.mjs +5 -5
- package/esm2020/lib/modules/shared/sky-phone-field-resources.module.mjs +5 -5
- package/esm2020/testing/phonefield/phone-field-testing.module.mjs +5 -5
- package/fesm2015/skyux-phone-field-testing.mjs +4 -4
- package/fesm2015/skyux-phone-field-testing.mjs.map +1 -1
- package/fesm2015/skyux-phone-field.mjs +17 -17
- package/fesm2015/skyux-phone-field.mjs.map +1 -1
- package/fesm2020/skyux-phone-field-testing.mjs +4 -4
- package/fesm2020/skyux-phone-field-testing.mjs.map +1 -1
- package/fesm2020/skyux-phone-field.mjs +17 -17
- package/fesm2020/skyux-phone-field.mjs.map +1 -1
- package/package.json +12 -12
|
@@ -58,9 +58,9 @@ export class SkyPhoneFieldAdapterService {
|
|
|
58
58
|
}
|
|
59
59
|
}
|
|
60
60
|
_SkyPhoneFieldAdapterService_ngUnsubscribe = new WeakMap(), _SkyPhoneFieldAdapterService_renderer = new WeakMap(), _SkyPhoneFieldAdapterService_resourcesService = new WeakMap();
|
|
61
|
-
SkyPhoneFieldAdapterService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.
|
|
62
|
-
SkyPhoneFieldAdapterService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.
|
|
63
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
61
|
+
SkyPhoneFieldAdapterService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SkyPhoneFieldAdapterService, deps: [{ token: i0.Renderer2 }, { token: i1.SkyLibResourcesService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
62
|
+
SkyPhoneFieldAdapterService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SkyPhoneFieldAdapterService });
|
|
63
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SkyPhoneFieldAdapterService, decorators: [{
|
|
64
64
|
type: Injectable
|
|
65
65
|
}], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i1.SkyLibResourcesService }]; } });
|
|
66
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
66
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGhvbmUtZmllbGQtYWRhcHRlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3Bob25lLWZpZWxkL3NyYy9saWIvbW9kdWxlcy9waG9uZS1maWVsZC9waG9uZS1maWVsZC1hZGFwdGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEVBQWMsVUFBVSxFQUF3QixNQUFNLGVBQWUsQ0FBQztBQUc3RSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7O0FBRTNDOzs7R0FHRztBQUVILE1BQU0sT0FBTywyQkFBMkI7SUFNdEMsWUFBWSxRQUFtQixFQUFFLGdCQUF3QztRQUx6RSxxREFBaUIsSUFBSSxPQUFPLEVBQVEsRUFBQztRQUVyQyx3REFBcUI7UUFDckIsZ0VBQTBDO1FBR3hDLHVCQUFBLElBQUkseUNBQWEsUUFBUSxNQUFBLENBQUM7UUFDMUIsdUJBQUEsSUFBSSxpREFBcUIsZ0JBQWdCLE1BQUEsQ0FBQztJQUM1QyxDQUFDO0lBRU0sV0FBVztRQUNoQix1QkFBQSxJQUFJLGtEQUFlLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDM0IsdUJBQUEsSUFBSSxrREFBZSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ2pDLENBQUM7SUFFTSxlQUFlLENBQUMsVUFBc0IsRUFBRSxTQUFpQjtRQUM5RCx1QkFBQSxJQUFJLDZDQUFVLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDL0QsQ0FBQztJQUVNLHVCQUF1QixDQUM1QixVQUFzQixFQUN0QixRQUFpQjtRQUVqQix1QkFBQSxJQUFJLDZDQUFVLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQUUsVUFBVSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQzdFLENBQUM7SUFFTSxxQkFBcUIsQ0FDMUIsVUFBc0IsRUFDdEIsV0FBbUI7UUFFbkIsdUJBQUEsSUFBSSw2Q0FBVSxDQUFDLFlBQVksQ0FDekIsVUFBVSxDQUFDLGFBQWEsRUFDeEIsYUFBYSxFQUNiLFdBQVcsQ0FDWixDQUFDO0lBQ0osQ0FBQztJQUVNLGNBQWMsQ0FBQyxVQUFzQjtRQUMxQyx1QkFBQSxJQUFJLDZDQUFVLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQUUsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7SUFFTSxlQUFlLENBQUMsVUFBc0IsRUFBRSxLQUFhO1FBQzFELHVCQUFBLElBQUksNkNBQVUsQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLGFBQWEsRUFBRSxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDdkUsQ0FBQztJQUVNLFlBQVksQ0FBQyxPQUFtQjtRQUNyQyxrQkFBa0I7UUFDbEIsMEJBQTBCO1FBQzFCLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsRUFBRTtZQUNyRCx1QkFBQSxJQUFJLHFEQUFrQjtpQkFDbkIsU0FBUyxDQUFDLGlDQUFpQyxDQUFDO2lCQUM1QyxJQUFJLENBQUMsU0FBUyxDQUFDLHVCQUFBLElBQUksa0RBQWUsQ0FBQyxDQUFDO2lCQUNwQyxTQUFTLENBQUMsQ0FBQyxLQUFhLEVBQUUsRUFBRTtnQkFDM0IsdUJBQUEsSUFBSSw2Q0FBVSxDQUFDLFlBQVksQ0FDekIsT0FBTyxDQUFDLGFBQWEsRUFDckIsWUFBWSxFQUNaLEtBQUssQ0FDTixDQUFDO1lBQ0osQ0FBQyxDQUFDLENBQUM7U0FDTjtJQUNILENBQUM7SUFFTSx5QkFBeUIsQ0FBQyxFQUFXO1FBQzFDLE1BQU0sS0FBSyxHQUF1QixFQUFFLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQy9ELEtBQUssRUFBRSxLQUFLLEVBQUUsQ0FBQztJQUNqQixDQUFDO0lBRU0sZUFBZSxDQUFDLEVBQVc7UUFDaEMsTUFBTSxLQUFLLEdBQXVCLEVBQUUsQ0FBQyxhQUFhLENBQ2hELGtDQUFrQyxDQUNuQyxDQUFDO1FBQ0YsS0FBSyxFQUFFLEtBQUssRUFBRSxDQUFDO0lBQ2pCLENBQUM7Ozt5SEF6RVUsMkJBQTJCOzZIQUEzQiwyQkFBMkI7NEZBQTNCLDJCQUEyQjtrQkFEdkMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVsZW1lbnRSZWYsIEluamVjdGFibGUsIE9uRGVzdHJveSwgUmVuZGVyZXIyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTa3lMaWJSZXNvdXJjZXNTZXJ2aWNlIH0gZnJvbSAnQHNreXV4L2kxOG4nO1xuXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbi8qKlxuICogU2VydmljZSBmb3IgaW50ZXJhY3Rpbmcgd2l0aCB0aGUgRE9NIGVsZW1lbnRzIG9mIHRoZSBwaG9uZSBmaWVsZC5cbiAqIEBpbnRlcm5hbFxuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgU2t5UGhvbmVGaWVsZEFkYXB0ZXJTZXJ2aWNlIGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgI25nVW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gICNyZW5kZXJlcjogUmVuZGVyZXIyO1xuICAjcmVzb3VyY2VzU2VydmljZTogU2t5TGliUmVzb3VyY2VzU2VydmljZTtcblxuICBjb25zdHJ1Y3RvcihyZW5kZXJlcjogUmVuZGVyZXIyLCByZXNvdXJjZXNTZXJ2aWNlOiBTa3lMaWJSZXNvdXJjZXNTZXJ2aWNlKSB7XG4gICAgdGhpcy4jcmVuZGVyZXIgPSByZW5kZXJlcjtcbiAgICB0aGlzLiNyZXNvdXJjZXNTZXJ2aWNlID0gcmVzb3VyY2VzU2VydmljZTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLiNuZ1Vuc3Vic2NyaWJlLm5leHQoKTtcbiAgICB0aGlzLiNuZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKCk7XG4gIH1cblxuICBwdWJsaWMgYWRkRWxlbWVudENsYXNzKGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsIGNsYXNzTmFtZTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy4jcmVuZGVyZXIuYWRkQ2xhc3MoZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCBjbGFzc05hbWUpO1xuICB9XG5cbiAgcHVibGljIHNldEVsZW1lbnREaXNhYmxlZFN0YXRlKFxuICAgIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgZGlzYWJsZWQ6IGJvb2xlYW5cbiAgKTogdm9pZCB7XG4gICAgdGhpcy4jcmVuZGVyZXIuc2V0UHJvcGVydHkoZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAnZGlzYWJsZWQnLCBkaXNhYmxlZCk7XG4gIH1cblxuICBwdWJsaWMgc2V0RWxlbWVudFBsYWNlaG9sZGVyKFxuICAgIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgcGxhY2Vob2xkZXI6IHN0cmluZ1xuICApOiB2b2lkIHtcbiAgICB0aGlzLiNyZW5kZXJlci5zZXRBdHRyaWJ1dGUoXG4gICAgICBlbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAncGxhY2Vob2xkZXInLFxuICAgICAgcGxhY2Vob2xkZXJcbiAgICApO1xuICB9XG5cbiAgcHVibGljIHNldEVsZW1lbnRUeXBlKGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYpOiB2b2lkIHtcbiAgICB0aGlzLiNyZW5kZXJlci5zZXRBdHRyaWJ1dGUoZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAndHlwZScsICd0ZWwnKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRFbGVtZW50VmFsdWUoZWxlbWVudFJlZjogRWxlbWVudFJlZiwgdmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuI3JlbmRlcmVyLnNldFByb3BlcnR5KGVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ3ZhbHVlJywgdmFsdWUpO1xuICB9XG5cbiAgcHVibGljIHNldEFyaWFMYWJlbChlbGVtZW50OiBFbGVtZW50UmVmKTogdm9pZCB7XG4gICAgLyogU2FuaXR5IGNoZWNrICovXG4gICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICBpZiAoIWVsZW1lbnQubmF0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoJ2FyaWEtbGFiZWwnKSkge1xuICAgICAgdGhpcy4jcmVzb3VyY2VzU2VydmljZVxuICAgICAgICAuZ2V0U3RyaW5nKCdza3l1eF9waG9uZV9maWVsZF9kZWZhdWx0X2xhYmVsJylcbiAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpKVxuICAgICAgICAuc3Vic2NyaWJlKCh2YWx1ZTogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgdGhpcy4jcmVuZGVyZXIuc2V0QXR0cmlidXRlKFxuICAgICAgICAgICAgZWxlbWVudC5uYXRpdmVFbGVtZW50LFxuICAgICAgICAgICAgJ2FyaWEtbGFiZWwnLFxuICAgICAgICAgICAgdmFsdWVcbiAgICAgICAgICApO1xuICAgICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZm9jdXNDb3VudHJ5U2VhcmNoRWxlbWVudChlbDogRWxlbWVudCk6IHZvaWQge1xuICAgIGNvbnN0IGlucHV0OiBIVE1MRWxlbWVudCB8IG51bGwgPSBlbC5xdWVyeVNlbGVjdG9yKCd0ZXh0YXJlYScpO1xuICAgIGlucHV0Py5mb2N1cygpO1xuICB9XG5cbiAgcHVibGljIGZvY3VzUGhvbmVJbnB1dChlbDogRWxlbWVudCk6IHZvaWQge1xuICAgIGNvbnN0IGlucHV0OiBIVE1MRWxlbWVudCB8IG51bGwgPSBlbC5xdWVyeVNlbGVjdG9yKFxuICAgICAgJy5za3ktcGhvbmUtZmllbGQtY29udGFpbmVyIGlucHV0J1xuICAgICk7XG4gICAgaW5wdXQ/LmZvY3VzKCk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -262,9 +262,9 @@ _SkyPhoneFieldInputDirective_control = new WeakMap(), _SkyPhoneFieldInputDirecti
|
|
|
262
262
|
return phoneNumber;
|
|
263
263
|
}
|
|
264
264
|
};
|
|
265
|
-
SkyPhoneFieldInputDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.
|
|
266
|
-
SkyPhoneFieldInputDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.
|
|
267
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
265
|
+
SkyPhoneFieldInputDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SkyPhoneFieldInputDirective, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i1.SkyPhoneFieldAdapterService, optional: true }, { token: i2.SkyPhoneFieldComponent, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
|
|
266
|
+
SkyPhoneFieldInputDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: SkyPhoneFieldInputDirective, selector: "[skyPhoneFieldInput]", inputs: { disabled: "disabled", skyPhoneFieldNoValidate: "skyPhoneFieldNoValidate" }, host: { listeners: { "change": "onInputChange($event)", "blur": "onInputBlur()", "input": "onInputTyping($event)" } }, providers: [SKY_PHONE_FIELD_VALUE_ACCESSOR, SKY_PHONE_FIELD_VALIDATOR], ngImport: i0 });
|
|
267
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SkyPhoneFieldInputDirective, decorators: [{
|
|
268
268
|
type: Directive,
|
|
269
269
|
args: [{
|
|
270
270
|
selector: '[skyPhoneFieldInput]',
|
|
@@ -288,4 +288,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
|
|
|
288
288
|
type: HostListener,
|
|
289
289
|
args: ['input', ['$event']]
|
|
290
290
|
}] } });
|
|
291
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGhvbmUtZmllbGQtaW5wdXQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3Bob25lLWZpZWxkL3NyYy9saWIvbW9kdWxlcy9waG9uZS1maWVsZC9waG9uZS1maWVsZC1pbnB1dC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM5RCxPQUFPLEVBR0wsU0FBUyxFQUVULFlBQVksRUFDWixLQUFLLEVBR0wsUUFBUSxFQUNSLFVBQVUsR0FDWCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBR0wsYUFBYSxFQUNiLGlCQUFpQixHQUdsQixNQUFNLGdCQUFnQixDQUFDO0FBRXhCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxlQUFlLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMzRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNoRCxPQUFPLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7O0FBTXpELE1BQU0sOEJBQThCLEdBQUc7SUFDckMsT0FBTyxFQUFFLGlCQUFpQjtJQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLDJCQUEyQixDQUFDO0lBQzFELEtBQUssRUFBRSxJQUFJO0NBQ1osQ0FBQztBQUVGLE1BQU0seUJBQXlCLEdBQUc7SUFDaEMsT0FBTyxFQUFFLGFBQWE7SUFDdEIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQywyQkFBMkIsQ0FBQztJQUMxRCxLQUFLLEVBQUUsSUFBSTtDQUNaLENBQUM7QUFFRjs7Ozs7Ozs7Ozs7O0dBWUc7QUFLSCxNQUFNLE9BQU8sMkJBQTJCO0lBR3RDOzs7O09BSUc7SUFDSCxJQUNXLFFBQVEsQ0FBQyxLQUEwQjtRQUM1QyxNQUFNLFlBQVksR0FBRyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNsRCxJQUFJLHVCQUFBLElBQUksd0RBQXFCLEVBQUU7WUFDN0IsdUJBQUEsSUFBSSx3REFBcUIsQ0FBQyxxQkFBcUIsR0FBRyxZQUFZLENBQUM7WUFDL0QsdUJBQUEsSUFBSSxtREFBZ0IsRUFBRSx1QkFBdUIsQ0FBQyx1QkFBQSxJQUFJLDBDQUFPLEVBQUUsWUFBWSxDQUFDLENBQUM7U0FDMUU7UUFDRCx1QkFBQSxJQUFJLDBDQUFjLFlBQVksTUFBQSxDQUFDO0lBQ2pDLENBQUM7SUFFRCxJQUFXLFFBQVE7UUFDakIsT0FBTyx1QkFBQSxJQUFJLDhDQUFXLENBQUM7SUFDekIsQ0FBQztJQWlERCxZQUNFLGNBQWlDLEVBQ2pDLEtBQWlCLEVBQ0wsY0FBNEMsRUFDNUMsbUJBQTRDOztRQW5EMUQ7Ozs7OztXQU1HO1FBRUksNEJBQXVCLEdBQXdCLEtBQUssQ0FBQztRQXFCNUQsdURBQXNDO1FBRXRDLDJEQUFrRDtRQUVsRCxxREFBaUIsSUFBSSxPQUFPLEVBQVEsRUFBQztRQUVyQyxrREFBYyxlQUFlLENBQUMsV0FBVyxFQUFFLEVBQUM7UUFFNUMseURBQXFCO1FBRXJCLG1EQUFlLEVBQUUsRUFBQztRQUVsQiw4REFBbUM7UUFDbkMscURBQW1CO1FBRW5CLDhEQUF5RDtRQUN6RCxtRUFBeUQ7UUFpUHpELG9HQUFvRztRQUNwRyxnREFBWSxDQUFDLENBQXFCLEVBQUUsRUFBRSxHQUFFLENBQUMsRUFBQztRQUUxQyx1QkFBdUI7UUFDdkIsZ0VBQWdFO1FBQ2hFLGlEQUFhLEdBQUcsRUFBRSxHQUFFLENBQUMsRUFBQztRQUV0Qix1QkFBdUI7UUFDdkIsZ0VBQWdFO1FBQ2hFLHVEQUFtQixHQUFHLEVBQUUsR0FBRSxDQUFDLEVBQUM7UUFsUDFCLHVCQUFBLElBQUksK0NBQW1CLGNBQWMsTUFBQSxDQUFDO1FBQ3RDLHVCQUFBLElBQUksc0NBQVUsS0FBSyxNQUFBLENBQUM7UUFDcEIsdUJBQUEsSUFBSSwrQ0FBbUIsY0FBYyxNQUFBLENBQUM7UUFDdEMsdUJBQUEsSUFBSSxvREFBd0IsbUJBQW1CLE1BQUEsQ0FBQztJQUNsRCxDQUFDO0lBRU0sUUFBUTtRQUNiLElBQUksQ0FBQyx1QkFBQSxJQUFJLHdEQUFxQixFQUFFO1lBQzlCLE1BQU0sSUFBSSxLQUFLLENBQ2IsNERBQTREO2dCQUMxRCxnQ0FBZ0MsQ0FDbkMsQ0FBQztTQUNIO1FBRUQsdUJBQUEsSUFBSSxtREFBZ0IsRUFBRSxjQUFjLENBQUMsdUJBQUEsSUFBSSwwQ0FBTyxDQUFDLENBQUM7UUFDbEQsdUJBQUEsSUFBSSxtREFBZ0IsRUFBRSxlQUFlLENBQUMsdUJBQUEsSUFBSSwwQ0FBTyxFQUFFLGtCQUFrQixDQUFDLENBQUM7UUFDdkUsSUFBSSx1QkFBQSxJQUFJLHdEQUFxQixFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUU7WUFDN0QsdUJBQUEsSUFBSSxtREFBZ0IsRUFBRSxxQkFBcUIsQ0FDekMsdUJBQUEsSUFBSSwwQ0FBTyxFQUNYLHVCQUFBLElBQUksd0RBQXFCLENBQUMsZUFBZSxDQUFDLGFBQWEsQ0FDeEQsQ0FBQztTQUNIO1FBRUQsdUJBQUEsSUFBSSxtREFBZ0IsRUFBRSxZQUFZLENBQUMsdUJBQUEsSUFBSSwwQ0FBTyxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVNLGVBQWU7UUFDcEIsdUJBQUEsSUFBSSx3REFBcUIsRUFBRSxxQkFBcUI7YUFDN0MsSUFBSSxDQUFDLFNBQVMsQ0FBQyx1QkFBQSxJQUFJLGtEQUFlLENBQUMsQ0FBQzthQUNwQyxTQUFTLENBQUMsQ0FBQyxPQUE2QixFQUFFLEVBQUU7WUFDM0MsdUJBQUEsSUFBSSwwQ0FBZSx1QkFBQSxJQUFJLDBDQUFPLENBQUMsYUFBYSxDQUFDLEtBQUssbURBQUEsQ0FBQztZQUNuRCxJQUFJLE9BQU8sRUFBRSxhQUFhLEVBQUU7Z0JBQzFCLHVCQUFBLElBQUksbURBQWdCLEVBQUUscUJBQXFCLENBQ3pDLHVCQUFBLElBQUksMENBQU8sRUFDWCxPQUFPLENBQUMsYUFBYSxDQUN0QixDQUFDO2FBQ0g7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUVMLDRGQUE0RjtRQUM1Rix1REFBdUQ7UUFDdkQsMEJBQTBCO1FBQzFCLElBQUksdUJBQUEsSUFBSSw0Q0FBUyxJQUFJLHVCQUFBLElBQUksMkZBQVksRUFBRTtZQUNyQyx1QkFBQSxJQUFJLDRDQUFTLENBQUMsUUFBUSxDQUFDLHVCQUFBLElBQUksMkZBQVksRUFBRSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1lBQy9ELHVCQUFBLElBQUksbURBQWdCLENBQUMsYUFBYSxFQUFFLENBQUM7U0FDdEM7SUFDSCxDQUFDO0lBRU0sV0FBVztRQUNoQix1QkFBQSxJQUFJLGtEQUFlLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDM0IsdUJBQUEsSUFBSSxrREFBZSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ2pDLENBQUM7SUFFRDs7O09BR0c7SUFFSSxhQUFhLENBQUMsS0FBVTtRQUM3QixJQUFJLENBQUMsdUJBQUEsSUFBSSxnREFBYSxFQUFFO1lBQ3RCLHVCQUFBLElBQUksd0dBQTZCLE1BQWpDLElBQUksRUFBOEIsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUN2RDthQUFNO1lBQ0wsdUJBQUEsSUFBSSxnREFBYSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQzVDO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBRUksV0FBVztRQUNoQix1QkFBQSxJQUFJLDhDQUFXLE1BQWYsSUFBSSxDQUFhLENBQUM7SUFDcEIsQ0FBQztJQUdNLGFBQWEsQ0FBQyxLQUFVO1FBQzdCLElBQUksQ0FBQyx1QkFBQSxJQUFJLGdEQUFhLEVBQUU7WUFDdEIsdUJBQUEsSUFBSSx3R0FBNkIsTUFBakMsSUFBSSxFQUE4QixLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ3ZEO2FBQU07WUFDTCx1QkFBQSxJQUFJLGdEQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDNUM7SUFDSCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksVUFBVSxDQUFDLEtBQWE7UUFDN0IsdUJBQUEsSUFBSSx3REFBcUIsRUFBRSxvQkFBb0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUV2RCx1QkFBQSxJQUFJLDBDQUFlLEtBQUssbURBQUEsQ0FBQztJQUMzQixDQUFDO0lBRU0sZ0JBQWdCLENBQUMsRUFBdUM7UUFDN0QsdUJBQUEsSUFBSSx5Q0FBYSxFQUFFLE1BQUEsQ0FBQztJQUN0QixDQUFDO0lBRU0saUJBQWlCLENBQUMsRUFBYztRQUNyQyx1QkFBQSxJQUFJLDBDQUFjLEVBQUUsTUFBQSxDQUFDO0lBQ3ZCLENBQUM7SUFFTSx5QkFBeUIsQ0FBQyxFQUFjO1FBQzdDLHVCQUFBLElBQUksZ0RBQW9CLEVBQUUsTUFBQSxDQUFDO0lBQzdCLENBQUM7SUFFRDs7O09BR0c7SUFDSSxnQkFBZ0IsQ0FBQyxVQUFtQjtRQUN6QyxJQUFJLENBQUMsUUFBUSxHQUFHLFVBQVUsQ0FBQztJQUM3QixDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksUUFBUSxDQUFDLE9BQXdCO1FBQ3RDLElBQUksQ0FBQyx1QkFBQSxJQUFJLDRDQUFTLEVBQUU7WUFDbEIsdUJBQUEsSUFBSSx3Q0FBWSxPQUFPLE1BQUEsQ0FBQztTQUN6QjtRQUVELElBQUksSUFBSSxDQUFDLHVCQUF1QixFQUFFO1lBQ2hDLE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFFRCxNQUFNLEtBQUssR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDO1FBRTVCLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDVixPQUFPLElBQUksQ0FBQztTQUNiO1FBRUQsSUFDRSx1QkFBQSxJQUFJLHdEQUFxQixFQUFFLGVBQWU7WUFDMUMsQ0FBQyx1QkFBQSxJQUFJLDJGQUFnQixNQUFwQixJQUFJLEVBQWlCLEtBQUssQ0FBQyxFQUM1QjtZQUNBLElBQUksQ0FBQyx1QkFBQSxJQUFJLGdEQUFhLEVBQUU7Z0JBQ3RCLHFGQUFxRjtnQkFDckYsd0ZBQXdGO2dCQUN4Rix1RkFBdUY7Z0JBQ3ZGLCtFQUErRTtnQkFDL0UsT0FBTyxDQUFDLGFBQWEsRUFBRSxDQUFDO2FBQ3pCO1lBRUQsT0FBTztnQkFDTCxhQUFhLEVBQUU7b0JBQ2IsT0FBTyxFQUFFLEtBQUs7aUJBQ2Y7YUFDRixDQUFDO1NBQ0g7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7Oys0QkFsTWUsS0FBeUI7SUFDdkMsTUFBTSxjQUFjLEdBQUcsS0FBSyxJQUFJLEVBQUUsQ0FBQztJQUNuQyx1QkFBQSxJQUFJLDRDQUFnQixjQUFjLE1BQUEsQ0FBQztJQUNuQyx1QkFBQSxJQUFJLG1EQUFnQixFQUFFLGVBQWUsQ0FBQyx1QkFBQSxJQUFJLDBDQUFPLEVBQUUsY0FBYyxDQUFDLENBQUM7SUFFbkUsSUFBSSxjQUFjLEVBQUU7UUFDbEIsTUFBTSxjQUFjLEdBQUcsdUJBQUEsSUFBSSx5RkFBYyxNQUFsQixJQUFJLEVBQWUsY0FBYyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFFckUsdUJBQUEsSUFBSSw2Q0FBVSxNQUFkLElBQUksRUFBVyxjQUFjLENBQUMsQ0FBQztLQUNoQztTQUFNO1FBQ0wsdUJBQUEsSUFBSSw2Q0FBVSxNQUFkLElBQUksRUFBVyxjQUFjLENBQUMsQ0FBQztLQUNoQztJQUNELHVCQUFBLElBQUksb0RBQWlCLE1BQXJCLElBQUksQ0FBbUIsQ0FBQztBQUMxQixDQUFDO0lBR0MsT0FBTyx1QkFBQSxJQUFJLGdEQUFhLENBQUM7QUFDM0IsQ0FBQywrSEFtTDRCLElBQVk7SUFDdkMsdUJBQUEsSUFBSSw0Q0FBZ0IsSUFBSSxlQUFlLENBQUMsSUFBSSxDQUFDLE1BQUEsQ0FBQztJQUU5Qyx1QkFBQSxJQUFJLGdEQUFhO1NBQ2QsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsRUFBRSxTQUFTLENBQUMsdUJBQUEsSUFBSSxrREFBZSxDQUFDLENBQUM7U0FDdkQsU0FBUyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUU7UUFDdEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUM1QixDQUFDLENBQUMsQ0FBQztBQUNQLENBQUMscUdBRWUsV0FBbUI7SUFDakMsSUFBSTtRQUNGLE1BQU0sU0FBUyxHQUFHLHVCQUFBLElBQUksK0NBQVksQ0FBQyxvQkFBb0IsQ0FDckQsV0FBVyxFQUNYLHVCQUFBLElBQUksd0RBQXFCLEVBQUUsZUFBZSxFQUFFLElBQUksQ0FDakQsQ0FBQztRQUVGLElBQ0UsdUJBQUEsSUFBSSx3REFBcUI7WUFDekIsQ0FBQyx1QkFBQSxJQUFJLHdEQUFxQixDQUFDLGVBQWU7WUFDMUMsU0FBUyxDQUFDLFlBQVksRUFBRSxFQUN4QjtZQUNBLE9BQU8sS0FBSyxDQUFDO1NBQ2Q7UUFFRCxPQUFPLHVCQUFBLElBQUksK0NBQVksQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUM7S0FDbEQ7SUFBQyxPQUFPLENBQUMsRUFBRTtRQUNWLE9BQU8sS0FBSyxDQUFDO0tBQ2Q7QUFDSCxDQUFDLGlHQU1hLFdBQW1CO0lBQy9CLElBQUk7UUFDRixNQUFNLFNBQVMsR0FBRyx1QkFBQSxJQUFJLCtDQUFZLENBQUMsb0JBQW9CLENBQ3JELFdBQVcsRUFDWCx1QkFBQSxJQUFJLHdEQUFxQixFQUFFLGVBQWUsRUFBRSxJQUFJLENBQ2pELENBQUM7UUFDRixJQUFJLHVCQUFBLElBQUksK0NBQVksQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsRUFBRTtZQUNoRCxRQUFRLHVCQUFBLElBQUksd0RBQXFCLEVBQUUsWUFBWSxFQUFFO2dCQUMvQyxLQUFLLGVBQWU7b0JBQ2xCLE9BQU8sdUJBQUEsSUFBSSwrQ0FBWSxDQUFDLE1BQU0sQ0FDNUIsU0FBUyxFQUNULGlCQUFpQixDQUFDLGFBQWEsQ0FDaEMsQ0FBQztnQkFDSixLQUFLLFVBQVU7b0JBQ2IsT0FBTyx1QkFBQSxJQUFJLCtDQUFZLENBQUMsTUFBTSxDQUM1QixTQUFTLEVBQ1QsaUJBQWlCLENBQUMsUUFBUSxDQUMzQixDQUFDO2dCQUNKLEtBQUssU0FBUyxDQUFDO2dCQUNmO29CQUNFLElBQ0UsdUJBQUEsSUFBSSx3REFBcUIsRUFBRSxlQUFlLEVBQUUsSUFBSTt3QkFDaEQsdUJBQUEsSUFBSSx3REFBcUIsRUFBRSxjQUFjLEVBQ3pDO3dCQUNBLE9BQU8sdUJBQUEsSUFBSSwrQ0FBWSxDQUFDLE1BQU0sQ0FDNUIsU0FBUyxFQUNULGlCQUFpQixDQUFDLGFBQWEsQ0FDaEMsQ0FBQztxQkFDSDt5QkFBTTt3QkFDTCxPQUFPLHVCQUFBLElBQUksK0NBQVksQ0FBQyxNQUFNLENBQzVCLFNBQVMsRUFDVCxpQkFBaUIsQ0FBQyxRQUFRLENBQzNCLENBQUM7cUJBQ0g7YUFDSjtTQUNGO2FBQU07WUFDTCxPQUFPLFdBQVcsQ0FBQztTQUNwQjtLQUNGO0lBQUMsT0FBTyxDQUFDLEVBQUU7UUFDVixrQkFBa0I7UUFDbEIsMEJBQTBCO1FBQzFCLE9BQU8sV0FBVyxDQUFDO0tBQ3BCO0FBQ0gsQ0FBQzt3SEFsVFUsMkJBQTJCOzRHQUEzQiwyQkFBMkIsNFBBRjNCLENBQUMsOEJBQThCLEVBQUUseUJBQXlCLENBQUM7MkZBRTNELDJCQUEyQjtrQkFKdkMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsc0JBQXNCO29CQUNoQyxTQUFTLEVBQUUsQ0FBQyw4QkFBOEIsRUFBRSx5QkFBeUIsQ0FBQztpQkFDdkU7OzBCQXlFSSxRQUFROzswQkFDUixRQUFROzRDQWhFQSxRQUFRO3NCQURsQixLQUFLO2dCQXNCQyx1QkFBdUI7c0JBRDdCLEtBQUs7Z0JBd0dDLGFBQWE7c0JBRG5CLFlBQVk7dUJBQUMsUUFBUSxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQWEzQixXQUFXO3NCQURqQixZQUFZO3VCQUFDLE1BQU07Z0JBTWIsYUFBYTtzQkFEbkIsWUFBWTt1QkFBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIERpcmVjdGl2ZSxcbiAgRWxlbWVudFJlZixcbiAgSG9zdExpc3RlbmVyLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE9wdGlvbmFsLFxuICBmb3J3YXJkUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEFic3RyYWN0Q29udHJvbCxcbiAgQ29udHJvbFZhbHVlQWNjZXNzb3IsXG4gIE5HX1ZBTElEQVRPUlMsXG4gIE5HX1ZBTFVFX0FDQ0VTU09SLFxuICBWYWxpZGF0aW9uRXJyb3JzLFxuICBWYWxpZGF0b3IsXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHsgUGhvbmVOdW1iZXJGb3JtYXQsIFBob25lTnVtYmVyVXRpbCB9IGZyb20gJ2dvb2dsZS1saWJwaG9uZW51bWJlcic7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBTa3lQaG9uZUZpZWxkQWRhcHRlclNlcnZpY2UgfSBmcm9tICcuL3Bob25lLWZpZWxkLWFkYXB0ZXIuc2VydmljZSc7XG5pbXBvcnQgeyBTa3lQaG9uZUZpZWxkQ29tcG9uZW50IH0gZnJvbSAnLi9waG9uZS1maWVsZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2t5UGhvbmVGaWVsZENvdW50cnkgfSBmcm9tICcuL3R5cGVzL2NvdW50cnknO1xuXG5jb25zdCBTS1lfUEhPTkVfRklFTERfVkFMVUVfQUNDRVNTT1IgPSB7XG4gIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBTa3lQaG9uZUZpZWxkSW5wdXREaXJlY3RpdmUpLFxuICBtdWx0aTogdHJ1ZSxcbn07XG5cbmNvbnN0IFNLWV9QSE9ORV9GSUVMRF9WQUxJREFUT1IgPSB7XG4gIHByb3ZpZGU6IE5HX1ZBTElEQVRPUlMsXG4gIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFNreVBob25lRmllbGRJbnB1dERpcmVjdGl2ZSksXG4gIG11bHRpOiB0cnVlLFxufTtcblxuLyoqXG4gKiBDcmVhdGVzIGEgYnV0dG9uLCBzZWFyY2ggaW5wdXQsIGFuZCB0ZXh0IGlucHV0IGZvciBlbnRlcmluZyBhbmQgdmFsaWRhdGluZ1xuICogaW50ZXJuYXRpb25hbCBwaG9uZSBudW1iZXJzLiBQbGFjZSB0aGlzIGF0dHJpYnV0ZSBvbiBhbiBgaW5wdXRgIGVsZW1lbnQsIGFuZCB3cmFwXG4gKiB0aGF0IGVsZW1lbnQgaW4gYSBgc2t5LXBob25lLWZpZWxkYCBjb21wb25lbnQuIEJ5IGRlZmF1bHQsIHRoZSBjb3VudHJ5IHNlbGVjdG9yXG4gKiBidXR0b24gZGlzcGxheXMgYSBmbGFnIGljb24gZm9yIHRoZSBkZWZhdWx0IGNvdW50cnksIGFuZCB0aGUgcGhvbmUgbnVtYmVyIGlucHV0XG4gKiBkaXNwbGF5cyBhIHNhbXBsZSBvZiB0aGUgY29ycmVjdCBwaG9uZSBudW1iZXIgZm9ybWF0LiBXaGVuIHVzZXJzIHNlbGVjdCB0aGUgY291bnRyeVxuICogc2VsZWN0b3IgYnV0dG9uLCB0aGV5IGV4cG9zZSB0aGUgY291bnRyeSBzZWFyY2ggaW5wdXQsIHdoaWNoIGlzXG4gKiBbYW4gYXV0b2NvbXBsZXRlIGlucHV0XShodHRwczovL2RldmVsb3Blci5ibGFja2JhdWQuY29tL3NreXV4L2NvbXBvbmVudHMvYXV0b2NvbXBsZXRlKVxuICogdGhhdCBhbGxvd3MgdGhlbSB0byBzZWxlY3QgZGlmZmVyZW50IGNvdW50cmllcy4gV2hlbiB1c2VycyBlbnRlciBgK2AgZm9sbG93ZWQgYnkgYW5cbiAqIGludGVybmF0aW9uYWwgZGlhbCBjb2RlIGluIHRoZSBwaG9uZSBudW1iZXIgaW5wdXQsIHRoZSBjb3VudHJ5IGF1dG9tYXRpY2FsbHkgc3dpdGNoZXNcbiAqIHRvIHRoZSBjb3VudHJ5IGFzc29jaWF0ZWQgd2l0aCB0aGUgZGlhbCBjb2RlLlxuICogQHJlcXVpcmVkXG4gKi9cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tza3lQaG9uZUZpZWxkSW5wdXRdJyxcbiAgcHJvdmlkZXJzOiBbU0tZX1BIT05FX0ZJRUxEX1ZBTFVFX0FDQ0VTU09SLCBTS1lfUEhPTkVfRklFTERfVkFMSURBVE9SXSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5UGhvbmVGaWVsZElucHV0RGlyZWN0aXZlXG4gIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIEFmdGVyVmlld0luaXQsIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBWYWxpZGF0b3JcbntcbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gZGlzYWJsZSB0aGUgcGhvbmUgZmllbGQgb24gdGVtcGxhdGUtZHJpdmVuIGZvcm1zLiBEb24ndCB1c2UgdGhpcyBpbnB1dCBvbiByZWFjdGl2ZSBmb3JtcyBiZWNhdXNlIHRoZXkgbWF5IG92ZXJ3cml0ZSB0aGUgaW5wdXQgb3IgbGVhdmUgdGhlIGNvbnRyb2wgb3V0IG9mIHN5bmMuXG4gICAqIFRvIHNldCB0aGUgZGlzYWJsZWQgc3RhdGUgb24gcmVhY3RpdmUgZm9ybXMsIHVzZSB0aGUgYEZvcm1Db250cm9sYCBpbnN0ZWFkLlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBkaXNhYmxlZCh2YWx1ZTogYm9vbGVhbiB8IHVuZGVmaW5lZCkge1xuICAgIGNvbnN0IGNvZXJjZWRWYWx1ZSA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgaWYgKHRoaXMuI3Bob25lRmllbGRDb21wb25lbnQpIHtcbiAgICAgIHRoaXMuI3Bob25lRmllbGRDb21wb25lbnQuY291bnRyeVNlbGVjdERpc2FibGVkID0gY29lcmNlZFZhbHVlO1xuICAgICAgdGhpcy4jYWRhcHRlclNlcnZpY2U/LnNldEVsZW1lbnREaXNhYmxlZFN0YXRlKHRoaXMuI2VsUmVmLCBjb2VyY2VkVmFsdWUpO1xuICAgIH1cbiAgICB0aGlzLiNfZGlzYWJsZWQgPSBjb2VyY2VkVmFsdWU7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGRpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLiNfZGlzYWJsZWQ7XG4gIH1cblxuICAvKipcbiAgICogV2hldGhlciB0byBwcmV2ZW50IHZhbGlkYXRpb24gb24gdGhlIHBob25lIG51bWJlciBpbnB1dC4gRm9yIHZhbGlkYXRpb24sXG4gICAqIHBob25lIG51bWJlcnMgYXJlIGRyaXZlbiB0aHJvdWdoIHRoZSBgbmdNb2RlbGAgYXR0cmlidXRlIHRoYXQgeW91IHNwZWNpZnkgb24gYW5cbiAgICogYGlucHV0YCBlbGVtZW50IG9yIG9uIGEgYEZvcm1Db250cm9sYCBpbiBhIHJlYWN0aXZlIGZvcm0uIFRvIHByZXZlbnQgdmFsaWRhdGlvbixcbiAgICogc2V0IHRoaXMgcHJvcGVydHkgdG8gYHRydWVgLlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNreVBob25lRmllbGROb1ZhbGlkYXRlOiBib29sZWFuIHwgdW5kZWZpbmVkID0gZmFsc2U7XG5cbiAgc2V0ICNtb2RlbFZhbHVlKHZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQpIHtcbiAgICBjb25zdCB2YWx1ZU9yRGVmYXVsdCA9IHZhbHVlID8/ICcnO1xuICAgIHRoaXMuI19tb2RlbFZhbHVlID0gdmFsdWVPckRlZmF1bHQ7XG4gICAgdGhpcy4jYWRhcHRlclNlcnZpY2U/LnNldEVsZW1lbnRWYWx1ZSh0aGlzLiNlbFJlZiwgdmFsdWVPckRlZmF1bHQpO1xuXG4gICAgaWYgKHZhbHVlT3JEZWZhdWx0KSB7XG4gICAgICBjb25zdCBmb3JtYXR0ZWRWYWx1ZSA9IHRoaXMuI2Zvcm1hdE51bWJlcih2YWx1ZU9yRGVmYXVsdC50b1N0cmluZygpKTtcblxuICAgICAgdGhpcy4jb25DaGFuZ2UoZm9ybWF0dGVkVmFsdWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLiNvbkNoYW5nZSh2YWx1ZU9yRGVmYXVsdCk7XG4gICAgfVxuICAgIHRoaXMuI3ZhbGlkYXRvckNoYW5nZSgpO1xuICB9XG5cbiAgZ2V0ICNtb2RlbFZhbHVlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuI19tb2RlbFZhbHVlO1xuICB9XG5cbiAgI2NvbnRyb2w6IEFic3RyYWN0Q29udHJvbCB8IHVuZGVmaW5lZDtcblxuICAjdGV4dENoYW5nZXM6IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+IHwgdW5kZWZpbmVkO1xuXG4gICNuZ1Vuc3Vic2NyaWJlID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAjcGhvbmVVdGlscyA9IFBob25lTnVtYmVyVXRpbC5nZXRJbnN0YW5jZSgpO1xuXG4gICNfZGlzYWJsZWQhOiBib29sZWFuO1xuXG4gICNfbW9kZWxWYWx1ZSA9ICcnO1xuXG4gICNjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWY7XG4gICNlbFJlZjogRWxlbWVudFJlZjtcblxuICAjYWRhcHRlclNlcnZpY2U6IFNreVBob25lRmllbGRBZGFwdGVyU2VydmljZSB8IHVuZGVmaW5lZDtcbiAgI3Bob25lRmllbGRDb21wb25lbnQ6IFNreVBob25lRmllbGRDb21wb25lbnQgfCB1bmRlZmluZWQ7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIGVsUmVmOiBFbGVtZW50UmVmLFxuICAgIEBPcHRpb25hbCgpIGFkYXB0ZXJTZXJ2aWNlPzogU2t5UGhvbmVGaWVsZEFkYXB0ZXJTZXJ2aWNlLFxuICAgIEBPcHRpb25hbCgpIHBob25lRmllbGRDb21wb25lbnQ/OiBTa3lQaG9uZUZpZWxkQ29tcG9uZW50XG4gICkge1xuICAgIHRoaXMuI2NoYW5nZURldGVjdG9yID0gY2hhbmdlRGV0ZWN0b3I7XG4gICAgdGhpcy4jZWxSZWYgPSBlbFJlZjtcbiAgICB0aGlzLiNhZGFwdGVyU2VydmljZSA9IGFkYXB0ZXJTZXJ2aWNlO1xuICAgIHRoaXMuI3Bob25lRmllbGRDb21wb25lbnQgPSBwaG9uZUZpZWxkQ29tcG9uZW50O1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGlmICghdGhpcy4jcGhvbmVGaWVsZENvbXBvbmVudCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnWW91IG11c3Qgd3JhcCB0aGUgYHNreVBob25lRmllbGRJbnB1dGAgZGlyZWN0aXZlIHdpdGhpbiBhICcgK1xuICAgICAgICAgICdgPHNreS1waG9uZS1maWVsZD5gIGNvbXBvbmVudCEnXG4gICAgICApO1xuICAgIH1cblxuICAgIHRoaXMuI2FkYXB0ZXJTZXJ2aWNlPy5zZXRFbGVtZW50VHlwZSh0aGlzLiNlbFJlZik7XG4gICAgdGhpcy4jYWRhcHRlclNlcnZpY2U/LmFkZEVsZW1lbnRDbGFzcyh0aGlzLiNlbFJlZiwgJ3NreS1mb3JtLWNvbnRyb2wnKTtcbiAgICBpZiAodGhpcy4jcGhvbmVGaWVsZENvbXBvbmVudD8uc2VsZWN0ZWRDb3VudHJ5Py5leGFtcGxlTnVtYmVyKSB7XG4gICAgICB0aGlzLiNhZGFwdGVyU2VydmljZT8uc2V0RWxlbWVudFBsYWNlaG9sZGVyKFxuICAgICAgICB0aGlzLiNlbFJlZixcbiAgICAgICAgdGhpcy4jcGhvbmVGaWVsZENvbXBvbmVudC5zZWxlY3RlZENvdW50cnkuZXhhbXBsZU51bWJlclxuICAgICAgKTtcbiAgICB9XG5cbiAgICB0aGlzLiNhZGFwdGVyU2VydmljZT8uc2V0QXJpYUxhYmVsKHRoaXMuI2VsUmVmKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy4jcGhvbmVGaWVsZENvbXBvbmVudD8uc2VsZWN0ZWRDb3VudHJ5Q2hhbmdlXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpXG4gICAgICAuc3Vic2NyaWJlKChjb3VudHJ5OiBTa3lQaG9uZUZpZWxkQ291bnRyeSkgPT4ge1xuICAgICAgICB0aGlzLiNtb2RlbFZhbHVlID0gdGhpcy4jZWxSZWYubmF0aXZlRWxlbWVudC52YWx1ZTtcbiAgICAgICAgaWYgKGNvdW50cnk/LmV4YW1wbGVOdW1iZXIpIHtcbiAgICAgICAgICB0aGlzLiNhZGFwdGVyU2VydmljZT8uc2V0RWxlbWVudFBsYWNlaG9sZGVyKFxuICAgICAgICAgICAgdGhpcy4jZWxSZWYsXG4gICAgICAgICAgICBjb3VudHJ5LmV4YW1wbGVOdW1iZXJcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgIC8vIFRoaXMgaXMgbmVlZGVkIHRvIGFkZHJlc3MgYSBidWcgaW4gQW5ndWxhciA0LCB3aGVyZSB0aGUgdmFsdWUgaXMgbm90IGNoYW5nZWQgb24gdGhlIHZpZXcuXG4gICAgLy8gU2VlOiBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9hbmd1bGFyL2lzc3Vlcy8xMzc5MlxuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgaWYgKHRoaXMuI2NvbnRyb2wgJiYgdGhpcy4jbW9kZWxWYWx1ZSkge1xuICAgICAgdGhpcy4jY29udHJvbC5zZXRWYWx1ZSh0aGlzLiNtb2RlbFZhbHVlLCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgICB0aGlzLiNjaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuI25nVW5zdWJzY3JpYmUubmV4dCgpO1xuICAgIHRoaXMuI25nVW5zdWJzY3JpYmUuY29tcGxldGUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBXcml0ZXMgdGhlIG5ldyB2YWx1ZSBmb3IgcmVhY3RpdmUgZm9ybXMgb24gY2hhbmdlIGV2ZW50cyBvbiB0aGUgaW5wdXQgZWxlbWVudFxuICAgKiBAcGFyYW0gZXZlbnQgVGhlIGNoYW5nZSBldmVudCB0aGF0IHdhcyByZWNlaXZlZFxuICAgKi9cbiAgQEhvc3RMaXN0ZW5lcignY2hhbmdlJywgWyckZXZlbnQnXSlcbiAgcHVibGljIG9uSW5wdXRDaGFuZ2UoZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgIGlmICghdGhpcy4jdGV4dENoYW5nZXMpIHtcbiAgICAgIHRoaXMuI3NldHVwVGV4dENoYW5nZVN1YnNjcmlwdGlvbihldmVudC50YXJnZXQudmFsdWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLiN0ZXh0Q2hhbmdlcy5uZXh0KGV2ZW50LnRhcmdldC52YWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIE1hcmtzIHJlYWN0aXZlIGZvcm0gY29udHJvbHMgYXMgdG91Y2hlZCBvbiBpbnB1dCBibHVyIGV2ZW50c1xuICAgKi9cbiAgQEhvc3RMaXN0ZW5lcignYmx1cicpXG4gIHB1YmxpYyBvbklucHV0Qmx1cigpOiB2b2lkIHtcbiAgICB0aGlzLiNvblRvdWNoZWQoKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2lucHV0JywgWyckZXZlbnQnXSlcbiAgcHVibGljIG9uSW5wdXRUeXBpbmcoZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgIGlmICghdGhpcy4jdGV4dENoYW5nZXMpIHtcbiAgICAgIHRoaXMuI3NldHVwVGV4dENoYW5nZVN1YnNjcmlwdGlvbihldmVudC50YXJnZXQudmFsdWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLiN0ZXh0Q2hhbmdlcy5uZXh0KGV2ZW50LnRhcmdldC52YWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFdyaXRlcyB0aGUgbmV3IHZhbHVlIGZvciByZWFjdGl2ZSBmb3Jtc1xuICAgKiBAcGFyYW0gdmFsdWUgVGhlIG5ldyB2YWx1ZSBmb3IgdGhlIGlucHV0XG4gICAqL1xuICBwdWJsaWMgd3JpdGVWYWx1ZSh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy4jcGhvbmVGaWVsZENvbXBvbmVudD8uc2V0Q291bnRyeUJ5RGlhbENvZGUodmFsdWUpO1xuXG4gICAgdGhpcy4jbW9kZWxWYWx1ZSA9IHZhbHVlO1xuICB9XG5cbiAgcHVibGljIHJlZ2lzdGVyT25DaGFuZ2UoZm46ICh2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy4jb25DaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHB1YmxpYyByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMuI29uVG91Y2hlZCA9IGZuO1xuICB9XG5cbiAgcHVibGljIHJlZ2lzdGVyT25WYWxpZGF0b3JDaGFuZ2UoZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLiN2YWxpZGF0b3JDaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBkaXNhYmxlZCBzdGF0ZSBvbiB0aGUgaW5wdXRcbiAgICogQHBhcmFtIGlzRGlzYWJsZWQgdGhlIG5ldyB2YWx1ZSBvZiB0aGUgaW5wdXQncyBkaXNhYmxlZCBzdGF0ZVxuICAgKi9cbiAgcHVibGljIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICB9XG5cbiAgLyoqXG4gICAqIFZhbGlkYXRlJ3MgdGhlIGZvcm0gY29udHJvbCdzIGN1cnJlbnQgdmFsdWVcbiAgICogQHBhcmFtIGNvbnRyb2wgdGhlIGZvcm0gY29udHJvbCBmb3IgdGhlIGlucHV0XG4gICAqL1xuICBwdWJsaWMgdmFsaWRhdGUoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xuICAgIGlmICghdGhpcy4jY29udHJvbCkge1xuICAgICAgdGhpcy4jY29udHJvbCA9IGNvbnRyb2w7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuc2t5UGhvbmVGaWVsZE5vVmFsaWRhdGUpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGNvbnN0IHZhbHVlID0gY29udHJvbC52YWx1ZTtcblxuICAgIGlmICghdmFsdWUpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGlmIChcbiAgICAgIHRoaXMuI3Bob25lRmllbGRDb21wb25lbnQ/LnNlbGVjdGVkQ291bnRyeSAmJlxuICAgICAgIXRoaXMuI3ZhbGlkYXRlTnVtYmVyKHZhbHVlKVxuICAgICkge1xuICAgICAgaWYgKCF0aGlzLiN0ZXh0Q2hhbmdlcykge1xuICAgICAgICAvLyBNYXJrIHRoZSBpbnZhbGlkIGNvbnRyb2wgYXMgdG91Y2hlZCBzbyB0aGF0IHRoZSBpbnB1dCdzIGludmFsaWQgQ1NTIHN0eWxlcyBhcHBlYXIuXG4gICAgICAgIC8vIChUaGlzIGlzIG9ubHkgcmVxdWlyZWQgd2hlbiB0aGUgaW52YWxpZCB2YWx1ZSBpcyBzZXQgYnkgdGhlIEZvcm1Db250cm9sIGNvbnN0cnVjdG9yLilcbiAgICAgICAgLy8gV2UgZG9uJ3QgZG8gdGhpcyBpZiB0aGUgaW5wdXQgaXMgdGhlIGFjdGl2ZSBlbGVtZW50IHNvIHRoYXQgd2UgZG9uJ3Qgc2hvdyB2YWxpZGF0aW9uXG4gICAgICAgIC8vIGVycm9ycyB1bmxlc3MgaXQgaXMgaW52YWxpZCBvbiBpbml0aWFsaXphdGlvbiBvciB0aGUgaW5wdXQgaGFzIGJlZW4gYmx1cnJlZC5cbiAgICAgICAgY29udHJvbC5tYXJrQXNUb3VjaGVkKCk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIHNreVBob25lRmllbGQ6IHtcbiAgICAgICAgICBpbnZhbGlkOiB2YWx1ZSxcbiAgICAgICAgfSxcbiAgICAgIH07XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgI3NldHVwVGV4dENoYW5nZVN1YnNjcmlwdGlvbih0ZXh0OiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLiN0ZXh0Q2hhbmdlcyA9IG5ldyBCZWhhdmlvclN1YmplY3QodGV4dCk7XG5cbiAgICB0aGlzLiN0ZXh0Q2hhbmdlc1xuICAgICAgLnBpcGUoZGVib3VuY2VUaW1lKDUwMCksIHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSlcbiAgICAgIC5zdWJzY3JpYmUoKG5ld1ZhbHVlKSA9PiB7XG4gICAgICAgIHRoaXMud3JpdGVWYWx1ZShuZXdWYWx1ZSk7XG4gICAgICB9KTtcbiAgfVxuXG4gICN2YWxpZGF0ZU51bWJlcihwaG9uZU51bWJlcjogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IG51bWJlck9iaiA9IHRoaXMuI3Bob25lVXRpbHMucGFyc2VBbmRLZWVwUmF3SW5wdXQoXG4gICAgICAgIHBob25lTnVtYmVyLFxuICAgICAgICB0aGlzLiNwaG9uZUZpZWxkQ29tcG9uZW50Py5zZWxlY3RlZENvdW50cnk/LmlzbzJcbiAgICAgICk7XG5cbiAgICAgIGlmIChcbiAgICAgICAgdGhpcy4jcGhvbmVGaWVsZENvbXBvbmVudCAmJlxuICAgICAgICAhdGhpcy4jcGhvbmVGaWVsZENvbXBvbmVudC5hbGxvd0V4dGVuc2lvbnMgJiZcbiAgICAgICAgbnVtYmVyT2JqLmdldEV4dGVuc2lvbigpXG4gICAgICApIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gdGhpcy4jcGhvbmVVdGlscy5pc1ZhbGlkTnVtYmVyKG51bWJlck9iaik7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBGb3JtYXQncyB0aGUgZ2l2ZW4gcGhvbmUgbnVtYmVyIGJhc2VkIG9uIHRoZSBjdXJyZW50bHkgc2VsZWN0ZWQgY291bnRyeS5cbiAgICogQHBhcmFtIHBob25lTnVtYmVyIFRoZSBudW1iZXIgdG8gZm9ybWF0XG4gICAqL1xuICAjZm9ybWF0TnVtYmVyKHBob25lTnVtYmVyOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBudW1iZXJPYmogPSB0aGlzLiNwaG9uZVV0aWxzLnBhcnNlQW5kS2VlcFJhd0lucHV0KFxuICAgICAgICBwaG9uZU51bWJlcixcbiAgICAgICAgdGhpcy4jcGhvbmVGaWVsZENvbXBvbmVudD8uc2VsZWN0ZWRDb3VudHJ5Py5pc28yXG4gICAgICApO1xuICAgICAgaWYgKHRoaXMuI3Bob25lVXRpbHMuaXNQb3NzaWJsZU51bWJlcihudW1iZXJPYmopKSB7XG4gICAgICAgIHN3aXRjaCAodGhpcy4jcGhvbmVGaWVsZENvbXBvbmVudD8ucmV0dXJuRm9ybWF0KSB7XG4gICAgICAgICAgY2FzZSAnaW50ZXJuYXRpb25hbCc6XG4gICAgICAgICAgICByZXR1cm4gdGhpcy4jcGhvbmVVdGlscy5mb3JtYXQoXG4gICAgICAgICAgICAgIG51bWJlck9iaixcbiAgICAgICAgICAgICAgUGhvbmVOdW1iZXJGb3JtYXQuSU5URVJOQVRJT05BTFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICBjYXNlICduYXRpb25hbCc6XG4gICAgICAgICAgICByZXR1cm4gdGhpcy4jcGhvbmVVdGlscy5mb3JtYXQoXG4gICAgICAgICAgICAgIG51bWJlck9iaixcbiAgICAgICAgICAgICAgUGhvbmVOdW1iZXJGb3JtYXQuTkFUSU9OQUxcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgY2FzZSAnZGVmYXVsdCc6XG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgdGhpcy4jcGhvbmVGaWVsZENvbXBvbmVudD8uc2VsZWN0ZWRDb3VudHJ5Py5pc28yICE9PVxuICAgICAgICAgICAgICB0aGlzLiNwaG9uZUZpZWxkQ29tcG9uZW50Py5kZWZhdWx0Q291bnRyeVxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgIHJldHVybiB0aGlzLiNwaG9uZVV0aWxzLmZvcm1hdChcbiAgICAgICAgICAgICAgICBudW1iZXJPYmosXG4gICAgICAgICAgICAgICAgUGhvbmVOdW1iZXJGb3JtYXQuSU5URVJOQVRJT05BTFxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuI3Bob25lVXRpbHMuZm9ybWF0KFxuICAgICAgICAgICAgICAgIG51bWJlck9iaixcbiAgICAgICAgICAgICAgICBQaG9uZU51bWJlckZvcm1hdC5OQVRJT05BTFxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gcGhvbmVOdW1iZXI7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgLyogc2FuaXR5IGNoZWNrICovXG4gICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgICAgcmV0dXJuIHBob25lTnVtYmVyO1xuICAgIH1cbiAgfVxuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZW1wdHktZnVuY3Rpb24gLCBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgI29uQ2hhbmdlID0gKF86IHN0cmluZyB8IHVuZGVmaW5lZCkgPT4ge307XG5cbiAgLy8gaXN0YW5idWwgaWdub3JlIG5leHRcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1mdW5jdGlvblxuICAjb25Ub3VjaGVkID0gKCkgPT4ge307XG5cbiAgLy8gaXN0YW5idWwgaWdub3JlIG5leHRcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1mdW5jdGlvblxuICAjdmFsaWRhdG9yQ2hhbmdlID0gKCkgPT4ge307XG59XG4iXX0=
|
|
291
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGhvbmUtZmllbGQtaW5wdXQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3Bob25lLWZpZWxkL3NyYy9saWIvbW9kdWxlcy9waG9uZS1maWVsZC9waG9uZS1maWVsZC1pbnB1dC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM5RCxPQUFPLEVBR0wsU0FBUyxFQUVULFlBQVksRUFDWixLQUFLLEVBR0wsUUFBUSxFQUNSLFVBQVUsR0FDWCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBR0wsYUFBYSxFQUNiLGlCQUFpQixHQUdsQixNQUFNLGdCQUFnQixDQUFDO0FBRXhCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxlQUFlLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMzRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNoRCxPQUFPLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7O0FBTXpELE1BQU0sOEJBQThCLEdBQUc7SUFDckMsT0FBTyxFQUFFLGlCQUFpQjtJQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLDJCQUEyQixDQUFDO0lBQzFELEtBQUssRUFBRSxJQUFJO0NBQ1osQ0FBQztBQUVGLE1BQU0seUJBQXlCLEdBQUc7SUFDaEMsT0FBTyxFQUFFLGFBQWE7SUFDdEIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQywyQkFBMkIsQ0FBQztJQUMxRCxLQUFLLEVBQUUsSUFBSTtDQUNaLENBQUM7QUFFRjs7Ozs7Ozs7Ozs7O0dBWUc7QUFLSCxNQUFNLE9BQU8sMkJBQTJCO0lBR3RDOzs7O09BSUc7SUFDSCxJQUNXLFFBQVEsQ0FBQyxLQUEw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SSx3REFBcUIsRUFBRSxlQUFlLEVBQUUsSUFBSTt3QkFDaEQsdUJBQUEsSUFBSSx3REFBcUIsRUFBRSxjQUFjLEVBQ3pDO3dCQUNBLE9BQU8sdUJBQUEsSUFBSSwrQ0FBWSxDQUFDLE1BQU0sQ0FDNUIsU0FBUyxFQUNULGlCQUFpQixDQUFDLGFBQWEsQ0FDaEMsQ0FBQztxQkFDSDt5QkFBTTt3QkFDTCxPQUFPLHVCQUFBLElBQUksK0NBQVksQ0FBQyxNQUFNLENBQzVCLFNBQVMsRUFDVCxpQkFBaUIsQ0FBQyxRQUFRLENBQzNCLENBQUM7cUJBQ0g7YUFDSjtTQUNGO2FBQU07WUFDTCxPQUFPLFdBQVcsQ0FBQztTQUNwQjtLQUNGO0lBQUMsT0FBTyxDQUFDLEVBQUU7UUFDVixrQkFBa0I7UUFDbEIsMEJBQTBCO1FBQzFCLE9BQU8sV0FBVyxDQUFDO0tBQ3BCO0FBQ0gsQ0FBQzt5SEFsVFUsMkJBQTJCOzZHQUEzQiwyQkFBMkIsNFBBRjNCLENBQUMsOEJBQThCLEVBQUUseUJBQXlCLENBQUM7NEZBRTNELDJCQUEyQjtrQkFKdkMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsc0JBQXNCO29CQUNoQyxTQUFTLEVBQUUsQ0FBQyw4QkFBOEIsRUFBRSx5QkFBeUIsQ0FBQztpQkFDdkU7OzBCQXlFSSxRQUFROzswQkFDUixRQUFROzRDQWhFQSxRQUFRO3NCQURsQixLQUFLO2dCQXNCQyx1QkFBdUI7c0JBRDdCLEtBQUs7Z0JBd0dDLGFBQWE7c0JBRG5CLFlBQVk7dUJBQUMsUUFBUSxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQWEzQixXQUFXO3NCQURqQixZQUFZO3VCQUFDLE1BQU07Z0JBTWIsYUFBYTtzQkFEbkIsWUFBWTt1QkFBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIERpcmVjdGl2ZSxcbiAgRWxlbWVudFJlZixcbiAgSG9zdExpc3RlbmVyLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE9wdGlvbmFsLFxuICBmb3J3YXJkUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEFic3RyYWN0Q29udHJvbCxcbiAgQ29udHJvbFZhbHVlQWNjZXNzb3IsXG4gIE5HX1ZBTElEQVRPUlMsXG4gIE5HX1ZBTFVFX0FDQ0VTU09SLFxuICBWYWxpZGF0aW9uRXJyb3JzLFxuICBWYWxpZGF0b3IsXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHsgUGhvbmVOdW1iZXJGb3JtYXQsIFBob25lTnVtYmVyVXRpbCB9IGZyb20gJ2dvb2dsZS1saWJwaG9uZW51bWJlcic7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBTa3lQaG9uZUZpZWxkQWRhcHRlclNlcnZpY2UgfSBmcm9tICcuL3Bob25lLWZpZWxkLWFkYXB0ZXIuc2VydmljZSc7XG5pbXBvcnQgeyBTa3lQaG9uZUZpZWxkQ29tcG9uZW50IH0gZnJvbSAnLi9waG9uZS1maWVsZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2t5UGhvbmVGaWVsZENvdW50cnkgfSBmcm9tICcuL3R5cGVzL2NvdW50cnknO1xuXG5jb25zdCBTS1lfUEhPTkVfRklFTERfVkFMVUVfQUNDRVNTT1IgPSB7XG4gIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBTa3lQaG9uZUZpZWxkSW5wdXREaXJlY3RpdmUpLFxuICBtdWx0aTogdHJ1ZSxcbn07XG5cbmNvbnN0IFNLWV9QSE9ORV9GSUVMRF9WQUxJREFUT1IgPSB7XG4gIHByb3ZpZGU6IE5HX1ZBTElEQVRPUlMsXG4gIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFNreVBob25lRmllbGRJbnB1dERpcmVjdGl2ZSksXG4gIG11bHRpOiB0cnVlLFxufTtcblxuLyoqXG4gKiBDcmVhdGVzIGEgYnV0dG9uLCBzZWFyY2ggaW5wdXQsIGFuZCB0ZXh0IGlucHV0IGZvciBlbnRlcmluZyBhbmQgdmFsaWRhdGluZ1xuICogaW50ZXJuYXRpb25hbCBwaG9uZSBudW1iZXJzLiBQbGFjZSB0aGlzIGF0dHJpYnV0ZSBvbiBhbiBgaW5wdXRgIGVsZW1lbnQsIGFuZCB3cmFwXG4gKiB0aGF0IGVsZW1lbnQgaW4gYSBgc2t5LXBob25lLWZpZWxkYCBjb21wb25lbnQuIEJ5IGRlZmF1bHQsIHRoZSBjb3VudHJ5IHNlbGVjdG9yXG4gKiBidXR0b24gZGlzcGxheXMgYSBmbGFnIGljb24gZm9yIHRoZSBkZWZhdWx0IGNvdW50cnksIGFuZCB0aGUgcGhvbmUgbnVtYmVyIGlucHV0XG4gKiBkaXNwbGF5cyBhIHNhbXBsZSBvZiB0aGUgY29ycmVjdCBwaG9uZSBudW1iZXIgZm9ybWF0LiBXaGVuIHVzZXJzIHNlbGVjdCB0aGUgY291bnRyeVxuICogc2VsZWN0b3IgYnV0dG9uLCB0aGV5IGV4cG9zZSB0aGUgY291bnRyeSBzZWFyY2ggaW5wdXQsIHdoaWNoIGlzXG4gKiBbYW4gYXV0b2NvbXBsZXRlIGlucHV0XShodHRwczovL2RldmVsb3Blci5ibGFja2JhdWQuY29tL3NreXV4L2NvbXBvbmVudHMvYXV0b2NvbXBsZXRlKVxuICogdGhhdCBhbGxvd3MgdGhlbSB0byBzZWxlY3QgZGlmZmVyZW50IGNvdW50cmllcy4gV2hlbiB1c2VycyBlbnRlciBgK2AgZm9sbG93ZWQgYnkgYW5cbiAqIGludGVybmF0aW9uYWwgZGlhbCBjb2RlIGluIHRoZSBwaG9uZSBudW1iZXIgaW5wdXQsIHRoZSBjb3VudHJ5IGF1dG9tYXRpY2FsbHkgc3dpdGNoZXNcbiAqIHRvIHRoZSBjb3VudHJ5IGFzc29jaWF0ZWQgd2l0aCB0aGUgZGlhbCBjb2RlLlxuICogQHJlcXVpcmVkXG4gKi9cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tza3lQaG9uZUZpZWxkSW5wdXRdJyxcbiAgcHJvdmlkZXJzOiBbU0tZX1BIT05FX0ZJRUxEX1ZBTFVFX0FDQ0VTU09SLCBTS1lfUEhPTkVfRklFTERfVkFMSURBVE9SXSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5UGhvbmVGaWVsZElucHV0RGlyZWN0aXZlXG4gIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIEFmdGVyVmlld0luaXQsIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBWYWxpZGF0b3JcbntcbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gZGlzYWJsZSB0aGUgcGhvbmUgZmllbGQgb24gdGVtcGxhdGUtZHJpdmVuIGZvcm1zLiBEb24ndCB1c2UgdGhpcyBpbnB1dCBvbiByZWFjdGl2ZSBmb3JtcyBiZWNhdXNlIHRoZXkgbWF5IG92ZXJ3cml0ZSB0aGUgaW5wdXQgb3IgbGVhdmUgdGhlIGNvbnRyb2wgb3V0IG9mIHN5bmMuXG4gICAqIFRvIHNldCB0aGUgZGlzYWJsZWQgc3RhdGUgb24gcmVhY3RpdmUgZm9ybXMsIHVzZSB0aGUgYEZvcm1Db250cm9sYCBpbnN0ZWFkLlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBkaXNhYmxlZCh2YWx1ZTogYm9vbGVhbiB8IHVuZGVmaW5lZCkge1xuICAgIGNvbnN0IGNvZXJjZWRWYWx1ZSA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgaWYgKHRoaXMuI3Bob25lRmllbGRDb21wb25lbnQpIHtcbiAgICAgIHRoaXMuI3Bob25lRmllbGRDb21wb25lbnQuY291bnRyeVNlbGVjdERpc2FibGVkID0gY29lcmNlZFZhbHVlO1xuICAgICAgdGhpcy4jYWRhcHRlclNlcnZpY2U/LnNldEVsZW1lbnREaXNhYmxlZFN0YXRlKHRoaXMuI2VsUmVmLCBjb2VyY2VkVmFsdWUpO1xuICAgIH1cbiAgICB0aGlzLiNfZGlzYWJsZWQgPSBjb2VyY2VkVmFsdWU7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGRpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLiNfZGlzYWJsZWQ7XG4gIH1cblxuICAvKipcbiAgICogV2hldGhlciB0byBwcmV2ZW50IHZhbGlkYXRpb24gb24gdGhlIHBob25lIG51bWJlciBpbnB1dC4gRm9yIHZhbGlkYXRpb24sXG4gICAqIHBob25lIG51bWJlcnMgYXJlIGRyaXZlbiB0aHJvdWdoIHRoZSBgbmdNb2RlbGAgYXR0cmlidXRlIHRoYXQgeW91IHNwZWNpZnkgb24gYW5cbiAgICogYGlucHV0YCBlbGVtZW50IG9yIG9uIGEgYEZvcm1Db250cm9sYCBpbiBhIHJlYWN0aXZlIGZvcm0uIFRvIHByZXZlbnQgdmFsaWRhdGlvbixcbiAgICogc2V0IHRoaXMgcHJvcGVydHkgdG8gYHRydWVgLlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNreVBob25lRmllbGROb1ZhbGlkYXRlOiBib29sZWFuIHwgdW5kZWZpbmVkID0gZmFsc2U7XG5cbiAgc2V0ICNtb2RlbFZhbHVlKHZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQpIHtcbiAgICBjb25zdCB2YWx1ZU9yRGVmYXVsdCA9IHZhbHVlID8/ICcnO1xuICAgIHRoaXMuI19tb2RlbFZhbHVlID0gdmFsdWVPckRlZmF1bHQ7XG4gICAgdGhpcy4jYWRhcHRlclNlcnZpY2U/LnNldEVsZW1lbnRWYWx1ZSh0aGlzLiNlbFJlZiwgdmFsdWVPckRlZmF1bHQpO1xuXG4gICAgaWYgKHZhbHVlT3JEZWZhdWx0KSB7XG4gICAgICBjb25zdCBmb3JtYXR0ZWRWYWx1ZSA9IHRoaXMuI2Zvcm1hdE51bWJlcih2YWx1ZU9yRGVmYXVsdC50b1N0cmluZygpKTtcblxuICAgICAgdGhpcy4jb25DaGFuZ2UoZm9ybWF0dGVkVmFsdWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLiNvbkNoYW5nZSh2YWx1ZU9yRGVmYXVsdCk7XG4gICAgfVxuICAgIHRoaXMuI3ZhbGlkYXRvckNoYW5nZSgpO1xuICB9XG5cbiAgZ2V0ICNtb2RlbFZhbHVlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuI19tb2RlbFZhbHVlO1xuICB9XG5cbiAgI2NvbnRyb2w6IEFic3RyYWN0Q29udHJvbCB8IHVuZGVmaW5lZDtcblxuICAjdGV4dENoYW5nZXM6IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+IHwgdW5kZWZpbmVkO1xuXG4gICNuZ1Vuc3Vic2NyaWJlID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAjcGhvbmVVdGlscyA9IFBob25lTnVtYmVyVXRpbC5nZXRJbnN0YW5jZSgpO1xuXG4gICNfZGlzYWJsZWQhOiBib29sZWFuO1xuXG4gICNfbW9kZWxWYWx1ZSA9ICcnO1xuXG4gICNjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWY7XG4gICNlbFJlZjogRWxlbWVudFJlZjtcblxuICAjYWRhcHRlclNlcnZpY2U6IFNreVBob25lRmllbGRBZGFwdGVyU2VydmljZSB8IHVuZGVmaW5lZDtcbiAgI3Bob25lRmllbGRDb21wb25lbnQ6IFNreVBob25lRmllbGRDb21wb25lbnQgfCB1bmRlZmluZWQ7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIGVsUmVmOiBFbGVtZW50UmVmLFxuICAgIEBPcHRpb25hbCgpIGFkYXB0ZXJTZXJ2aWNlPzogU2t5UGhvbmVGaWVsZEFkYXB0ZXJTZXJ2aWNlLFxuICAgIEBPcHRpb25hbCgpIHBob25lRmllbGRDb21wb25lbnQ/OiBTa3lQaG9uZUZpZWxkQ29tcG9uZW50XG4gICkge1xuICAgIHRoaXMuI2NoYW5nZURldGVjdG9yID0gY2hhbmdlRGV0ZWN0b3I7XG4gICAgdGhpcy4jZWxSZWYgPSBlbFJlZjtcbiAgICB0aGlzLiNhZGFwdGVyU2VydmljZSA9IGFkYXB0ZXJTZXJ2aWNlO1xuICAgIHRoaXMuI3Bob25lRmllbGRDb21wb25lbnQgPSBwaG9uZUZpZWxkQ29tcG9uZW50O1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGlmICghdGhpcy4jcGhvbmVGaWVsZENvbXBvbmVudCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnWW91IG11c3Qgd3JhcCB0aGUgYHNreVBob25lRmllbGRJbnB1dGAgZGlyZWN0aXZlIHdpdGhpbiBhICcgK1xuICAgICAgICAgICdgPHNreS1waG9uZS1maWVsZD5gIGNvbXBvbmVudCEnXG4gICAgICApO1xuICAgIH1cblxuICAgIHRoaXMuI2FkYXB0ZXJTZXJ2aWNlPy5zZXRFbGVtZW50VHlwZSh0aGlzLiNlbFJlZik7XG4gICAgdGhpcy4jYWRhcHRlclNlcnZpY2U/LmFkZEVsZW1lbnRDbGFzcyh0aGlzLiNlbFJlZiwgJ3NreS1mb3JtLWNvbnRyb2wnKTtcbiAgICBpZiAodGhpcy4jcGhvbmVGaWVsZENvbXBvbmVudD8uc2VsZWN0ZWRDb3VudHJ5Py5leGFtcGxlTnVtYmVyKSB7XG4gICAgICB0aGlzLiNhZGFwdGVyU2VydmljZT8uc2V0RWxlbWVudFBsYWNlaG9sZGVyKFxuICAgICAgICB0aGlzLiNlbFJlZixcbiAgICAgICAgdGhpcy4jcGhvbmVGaWVsZENvbXBvbmVudC5zZWxlY3RlZENvdW50cnkuZXhhbXBsZU51bWJlclxuICAgICAgKTtcbiAgICB9XG5cbiAgICB0aGlzLiNhZGFwdGVyU2VydmljZT8uc2V0QXJpYUxhYmVsKHRoaXMuI2VsUmVmKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy4jcGhvbmVGaWVsZENvbXBvbmVudD8uc2VsZWN0ZWRDb3VudHJ5Q2hhbmdlXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpXG4gICAgICAuc3Vic2NyaWJlKChjb3VudHJ5OiBTa3lQaG9uZUZpZWxkQ291bnRyeSkgPT4ge1xuICAgICAgICB0aGlzLiNtb2RlbFZhbHVlID0gdGhpcy4jZWxSZWYubmF0aXZlRWxlbWVudC52YWx1ZTtcbiAgICAgICAgaWYgKGNvdW50cnk/LmV4YW1wbGVOdW1iZXIpIHtcbiAgICAgICAgICB0aGlzLiNhZGFwdGVyU2VydmljZT8uc2V0RWxlbWVudFBsYWNlaG9sZGVyKFxuICAgICAgICAgICAgdGhpcy4jZWxSZWYsXG4gICAgICAgICAgICBjb3VudHJ5LmV4YW1wbGVOdW1iZXJcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgIC8vIFRoaXMgaXMgbmVlZGVkIHRvIGFkZHJlc3MgYSBidWcgaW4gQW5ndWxhciA0LCB3aGVyZSB0aGUgdmFsdWUgaXMgbm90IGNoYW5nZWQgb24gdGhlIHZpZXcuXG4gICAgLy8gU2VlOiBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9hbmd1bGFyL2lzc3Vlcy8xMzc5MlxuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgaWYgKHRoaXMuI2NvbnRyb2wgJiYgdGhpcy4jbW9kZWxWYWx1ZSkge1xuICAgICAgdGhpcy4jY29udHJvbC5zZXRWYWx1ZSh0aGlzLiNtb2RlbFZhbHVlLCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgICB0aGlzLiNjaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuI25nVW5zdWJzY3JpYmUubmV4dCgpO1xuICAgIHRoaXMuI25nVW5zdWJzY3JpYmUuY29tcGxldGUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBXcml0ZXMgdGhlIG5ldyB2YWx1ZSBmb3IgcmVhY3RpdmUgZm9ybXMgb24gY2hhbmdlIGV2ZW50cyBvbiB0aGUgaW5wdXQgZWxlbWVudFxuICAgKiBAcGFyYW0gZXZlbnQgVGhlIGNoYW5nZSBldmVudCB0aGF0IHdhcyByZWNlaXZlZFxuICAgKi9cbiAgQEhvc3RMaXN0ZW5lcignY2hhbmdlJywgWyckZXZlbnQnXSlcbiAgcHVibGljIG9uSW5wdXRDaGFuZ2UoZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgIGlmICghdGhpcy4jdGV4dENoYW5nZXMpIHtcbiAgICAgIHRoaXMuI3NldHVwVGV4dENoYW5nZVN1YnNjcmlwdGlvbihldmVudC50YXJnZXQudmFsdWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLiN0ZXh0Q2hhbmdlcy5uZXh0KGV2ZW50LnRhcmdldC52YWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIE1hcmtzIHJlYWN0aXZlIGZvcm0gY29udHJvbHMgYXMgdG91Y2hlZCBvbiBpbnB1dCBibHVyIGV2ZW50c1xuICAgKi9cbiAgQEhvc3RMaXN0ZW5lcignYmx1cicpXG4gIHB1YmxpYyBvbklucHV0Qmx1cigpOiB2b2lkIHtcbiAgICB0aGlzLiNvblRvdWNoZWQoKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2lucHV0JywgWyckZXZlbnQnXSlcbiAgcHVibGljIG9uSW5wdXRUeXBpbmcoZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgIGlmICghdGhpcy4jdGV4dENoYW5nZXMpIHtcbiAgICAgIHRoaXMuI3NldHVwVGV4dENoYW5nZVN1YnNjcmlwdGlvbihldmVudC50YXJnZXQudmFsdWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLiN0ZXh0Q2hhbmdlcy5uZXh0KGV2ZW50LnRhcmdldC52YWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFdyaXRlcyB0aGUgbmV3IHZhbHVlIGZvciByZWFjdGl2ZSBmb3Jtc1xuICAgKiBAcGFyYW0gdmFsdWUgVGhlIG5ldyB2YWx1ZSBmb3IgdGhlIGlucHV0XG4gICAqL1xuICBwdWJsaWMgd3JpdGVWYWx1ZSh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy4jcGhvbmVGaWVsZENvbXBvbmVudD8uc2V0Q291bnRyeUJ5RGlhbENvZGUodmFsdWUpO1xuXG4gICAgdGhpcy4jbW9kZWxWYWx1ZSA9IHZhbHVlO1xuICB9XG5cbiAgcHVibGljIHJlZ2lzdGVyT25DaGFuZ2UoZm46ICh2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy4jb25DaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHB1YmxpYyByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMuI29uVG91Y2hlZCA9IGZuO1xuICB9XG5cbiAgcHVibGljIHJlZ2lzdGVyT25WYWxpZGF0b3JDaGFuZ2UoZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLiN2YWxpZGF0b3JDaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBkaXNhYmxlZCBzdGF0ZSBvbiB0aGUgaW5wdXRcbiAgICogQHBhcmFtIGlzRGlzYWJsZWQgdGhlIG5ldyB2YWx1ZSBvZiB0aGUgaW5wdXQncyBkaXNhYmxlZCBzdGF0ZVxuICAgKi9cbiAgcHVibGljIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICB9XG5cbiAgLyoqXG4gICAqIFZhbGlkYXRlJ3MgdGhlIGZvcm0gY29udHJvbCdzIGN1cnJlbnQgdmFsdWVcbiAgICogQHBhcmFtIGNvbnRyb2wgdGhlIGZvcm0gY29udHJvbCBmb3IgdGhlIGlucHV0XG4gICAqL1xuICBwdWJsaWMgdmFsaWRhdGUoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xuICAgIGlmICghdGhpcy4jY29udHJvbCkge1xuICAgICAgdGhpcy4jY29udHJvbCA9IGNvbnRyb2w7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuc2t5UGhvbmVGaWVsZE5vVmFsaWRhdGUpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGNvbnN0IHZhbHVlID0gY29udHJvbC52YWx1ZTtcblxuICAgIGlmICghdmFsdWUpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGlmIChcbiAgICAgIHRoaXMuI3Bob25lRmllbGRDb21wb25lbnQ/LnNlbGVjdGVkQ291bnRyeSAmJlxuICAgICAgIXRoaXMuI3ZhbGlkYXRlTnVtYmVyKHZhbHVlKVxuICAgICkge1xuICAgICAgaWYgKCF0aGlzLiN0ZXh0Q2hhbmdlcykge1xuICAgICAgICAvLyBNYXJrIHRoZSBpbnZhbGlkIGNvbnRyb2wgYXMgdG91Y2hlZCBzbyB0aGF0IHRoZSBpbnB1dCdzIGludmFsaWQgQ1NTIHN0eWxlcyBhcHBlYXIuXG4gICAgICAgIC8vIChUaGlzIGlzIG9ubHkgcmVxdWlyZWQgd2hlbiB0aGUgaW52YWxpZCB2YWx1ZSBpcyBzZXQgYnkgdGhlIEZvcm1Db250cm9sIGNvbnN0cnVjdG9yLilcbiAgICAgICAgLy8gV2UgZG9uJ3QgZG8gdGhpcyBpZiB0aGUgaW5wdXQgaXMgdGhlIGFjdGl2ZSBlbGVtZW50IHNvIHRoYXQgd2UgZG9uJ3Qgc2hvdyB2YWxpZGF0aW9uXG4gICAgICAgIC8vIGVycm9ycyB1bmxlc3MgaXQgaXMgaW52YWxpZCBvbiBpbml0aWFsaXphdGlvbiBvciB0aGUgaW5wdXQgaGFzIGJlZW4gYmx1cnJlZC5cbiAgICAgICAgY29udHJvbC5tYXJrQXNUb3VjaGVkKCk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIHNreVBob25lRmllbGQ6IHtcbiAgICAgICAgICBpbnZhbGlkOiB2YWx1ZSxcbiAgICAgICAgfSxcbiAgICAgIH07XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgI3NldHVwVGV4dENoYW5nZVN1YnNjcmlwdGlvbih0ZXh0OiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLiN0ZXh0Q2hhbmdlcyA9IG5ldyBCZWhhdmlvclN1YmplY3QodGV4dCk7XG5cbiAgICB0aGlzLiN0ZXh0Q2hhbmdlc1xuICAgICAgLnBpcGUoZGVib3VuY2VUaW1lKDUwMCksIHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSlcbiAgICAgIC5zdWJzY3JpYmUoKG5ld1ZhbHVlKSA9PiB7XG4gICAgICAgIHRoaXMud3JpdGVWYWx1ZShuZXdWYWx1ZSk7XG4gICAgICB9KTtcbiAgfVxuXG4gICN2YWxpZGF0ZU51bWJlcihwaG9uZU51bWJlcjogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IG51bWJlck9iaiA9IHRoaXMuI3Bob25lVXRpbHMucGFyc2VBbmRLZWVwUmF3SW5wdXQoXG4gICAgICAgIHBob25lTnVtYmVyLFxuICAgICAgICB0aGlzLiNwaG9uZUZpZWxkQ29tcG9uZW50Py5zZWxlY3RlZENvdW50cnk/LmlzbzJcbiAgICAgICk7XG5cbiAgICAgIGlmIChcbiAgICAgICAgdGhpcy4jcGhvbmVGaWVsZENvbXBvbmVudCAmJlxuICAgICAgICAhdGhpcy4jcGhvbmVGaWVsZENvbXBvbmVudC5hbGxvd0V4dGVuc2lvbnMgJiZcbiAgICAgICAgbnVtYmVyT2JqLmdldEV4dGVuc2lvbigpXG4gICAgICApIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gdGhpcy4jcGhvbmVVdGlscy5pc1ZhbGlkTnVtYmVyKG51bWJlck9iaik7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBGb3JtYXQncyB0aGUgZ2l2ZW4gcGhvbmUgbnVtYmVyIGJhc2VkIG9uIHRoZSBjdXJyZW50bHkgc2VsZWN0ZWQgY291bnRyeS5cbiAgICogQHBhcmFtIHBob25lTnVtYmVyIFRoZSBudW1iZXIgdG8gZm9ybWF0XG4gICAqL1xuICAjZm9ybWF0TnVtYmVyKHBob25lTnVtYmVyOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBudW1iZXJPYmogPSB0aGlzLiNwaG9uZVV0aWxzLnBhcnNlQW5kS2VlcFJhd0lucHV0KFxuICAgICAgICBwaG9uZU51bWJlcixcbiAgICAgICAgdGhpcy4jcGhvbmVGaWVsZENvbXBvbmVudD8uc2VsZWN0ZWRDb3VudHJ5Py5pc28yXG4gICAgICApO1xuICAgICAgaWYgKHRoaXMuI3Bob25lVXRpbHMuaXNQb3NzaWJsZU51bWJlcihudW1iZXJPYmopKSB7XG4gICAgICAgIHN3aXRjaCAodGhpcy4jcGhvbmVGaWVsZENvbXBvbmVudD8ucmV0dXJuRm9ybWF0KSB7XG4gICAgICAgICAgY2FzZSAnaW50ZXJuYXRpb25hbCc6XG4gICAgICAgICAgICByZXR1cm4gdGhpcy4jcGhvbmVVdGlscy5mb3JtYXQoXG4gICAgICAgICAgICAgIG51bWJlck9iaixcbiAgICAgICAgICAgICAgUGhvbmVOdW1iZXJGb3JtYXQuSU5URVJOQVRJT05BTFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICBjYXNlICduYXRpb25hbCc6XG4gICAgICAgICAgICByZXR1cm4gdGhpcy4jcGhvbmVVdGlscy5mb3JtYXQoXG4gICAgICAgICAgICAgIG51bWJlck9iaixcbiAgICAgICAgICAgICAgUGhvbmVOdW1iZXJGb3JtYXQuTkFUSU9OQUxcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgY2FzZSAnZGVmYXVsdCc6XG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgdGhpcy4jcGhvbmVGaWVsZENvbXBvbmVudD8uc2VsZWN0ZWRDb3VudHJ5Py5pc28yICE9PVxuICAgICAgICAgICAgICB0aGlzLiNwaG9uZUZpZWxkQ29tcG9uZW50Py5kZWZhdWx0Q291bnRyeVxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgIHJldHVybiB0aGlzLiNwaG9uZVV0aWxzLmZvcm1hdChcbiAgICAgICAgICAgICAgICBudW1iZXJPYmosXG4gICAgICAgICAgICAgICAgUGhvbmVOdW1iZXJGb3JtYXQuSU5URVJOQVRJT05BTFxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuI3Bob25lVXRpbHMuZm9ybWF0KFxuICAgICAgICAgICAgICAgIG51bWJlck9iaixcbiAgICAgICAgICAgICAgICBQaG9uZU51bWJlckZvcm1hdC5OQVRJT05BTFxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gcGhvbmVOdW1iZXI7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgLyogc2FuaXR5IGNoZWNrICovXG4gICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgICAgcmV0dXJuIHBob25lTnVtYmVyO1xuICAgIH1cbiAgfVxuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZW1wdHktZnVuY3Rpb24gLCBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgI29uQ2hhbmdlID0gKF86IHN0cmluZyB8IHVuZGVmaW5lZCkgPT4ge307XG5cbiAgLy8gaXN0YW5idWwgaWdub3JlIG5leHRcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1mdW5jdGlvblxuICAjb25Ub3VjaGVkID0gKCkgPT4ge307XG5cbiAgLy8gaXN0YW5idWwgaWdub3JlIG5leHRcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1mdW5jdGlvblxuICAjdmFsaWRhdG9yQ2hhbmdlID0gKCkgPT4ge307XG59XG4iXX0=
|
|
@@ -227,8 +227,8 @@ export class SkyPhoneFieldComponent {
|
|
|
227
227
|
}
|
|
228
228
|
}
|
|
229
229
|
_SkyPhoneFieldComponent__allowExtensions = new WeakMap(), _SkyPhoneFieldComponent__returnFormat = new WeakMap(), _SkyPhoneFieldComponent_defaultCountryData = new WeakMap(), _SkyPhoneFieldComponent_phoneInputAnimationTriggered = new WeakMap(), _SkyPhoneFieldComponent_phoneUtils = new WeakMap(), _SkyPhoneFieldComponent_longestDialCodeLength = new WeakMap(), _SkyPhoneFieldComponent__defaultCountry = new WeakMap(), _SkyPhoneFieldComponent__selectedCountry = new WeakMap(), _SkyPhoneFieldComponent_countrySearchFormControl = new WeakMap(), _SkyPhoneFieldComponent_formBuilder = new WeakMap(), _SkyPhoneFieldComponent_adapterService = new WeakMap(), _SkyPhoneFieldComponent_changeDetector = new WeakMap();
|
|
230
|
-
SkyPhoneFieldComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.
|
|
231
|
-
SkyPhoneFieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.
|
|
230
|
+
SkyPhoneFieldComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SkyPhoneFieldComponent, deps: [{ token: i1.FormBuilder }, { token: i2.SkyPhoneFieldAdapterService }, { token: i0.ChangeDetectorRef }, { token: i3.SkyThemeService, optional: true }, { token: i4.SkyInputBoxHostService, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
231
|
+
SkyPhoneFieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: SkyPhoneFieldComponent, selector: "sky-phone-field", inputs: { allowExtensions: "allowExtensions", defaultCountry: "defaultCountry", returnFormat: "returnFormat", supportedCountryISOs: "supportedCountryISOs", selectedCountry: "selectedCountry" }, outputs: { selectedCountryChange: "selectedCountryChange" }, providers: [
|
|
232
232
|
SkyPhoneFieldAdapterService,
|
|
233
233
|
// Prevents the embedded country field component from changing its behavior based on
|
|
234
234
|
// being inside an input box. The phone field itself will handle the required changes
|
|
@@ -290,7 +290,7 @@ SkyPhoneFieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0",
|
|
|
290
290
|
]),
|
|
291
291
|
]),
|
|
292
292
|
], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
293
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
293
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SkyPhoneFieldComponent, decorators: [{
|
|
294
294
|
type: Component,
|
|
295
295
|
args: [{ selector: 'sky-phone-field', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [
|
|
296
296
|
SkyPhoneFieldAdapterService,
|
|
@@ -391,4 +391,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
|
|
|
391
391
|
static: true,
|
|
392
392
|
}]
|
|
393
393
|
}] } });
|
|
394
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGhvbmUtZmllbGQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3Bob25lLWZpZWxkL3NyYy9saWIvbW9kdWxlcy9waG9uZS1maWVsZC9waG9uZS1maWVsZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvcGhvbmUtZmllbGQvc3JjL2xpYi9tb2R1bGVzL3Bob25lLWZpZWxkL3Bob25lLWZpZWxkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUVMLE9BQU8sRUFDUCxLQUFLLEVBQ0wsVUFBVSxFQUNWLE9BQU8sR0FDUixNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFDTCx1QkFBdUIsRUFFdkIsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBR0wsUUFBUSxFQUNSLE1BQU0sRUFDTixRQUFRLEVBQ1IsV0FBVyxFQUNYLFNBQVMsRUFDVCxpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFlLFdBQVcsRUFBYSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN0RCxPQUFPLEVBQ0wseUJBQXlCLEdBRTFCLE1BQU0sZUFBZSxDQUFDO0FBR3ZCLE9BQU8sRUFDTCxpQkFBaUIsRUFDakIsZUFBZSxFQUNmLGVBQWUsR0FDaEIsTUFBTSx1QkFBdUIsQ0FBQztBQUMvQixPQUFPLGdCQUFnQixDQUFDO0FBRXhCLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLCtCQUErQixDQUFDOzs7Ozs7Ozs7O0FBSTVFLHNGQUFzRjtBQUN0RixrRkFBa0Y7QUFDbEYsMElBQTBJO0FBeUYxSSxNQUFNLE9BQU8sc0JBQXNCO0lBQ2pDOzs7T0FHRztJQUNILElBQ1csZUFBZSxDQUFDLEtBQTBC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b0I7c0JBRDFCLEtBQUs7Z0JBU0MscUJBQXFCO3NCQUQzQixNQUFNO2dCQW1CSSxlQUFlO3NCQUR6QixLQUFLO2dCQWtDQyxnQkFBZ0I7c0JBSnRCLFNBQVM7dUJBQUMsa0JBQWtCLEVBQUU7d0JBQzdCLElBQUksRUFBRSxXQUFXO3dCQUNqQixNQUFNLEVBQUUsSUFBSTtxQkFDYjtnQkFPTSxxQkFBcUI7c0JBSjNCLFNBQVM7dUJBQUMsdUJBQXVCLEVBQUU7d0JBQ2xDLElBQUksRUFBRSxXQUFXO3dCQUNqQixNQUFNLEVBQUUsSUFBSTtxQkFDYjtnQkFPTSx1QkFBdUI7c0JBSjdCLFNBQVM7dUJBQUMseUJBQXlCLEVBQUU7d0JBQ3BDLElBQUksRUFBRSxXQUFXO3dCQUNqQixNQUFNLEVBQUUsSUFBSTtxQkFDYiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFuaW1hdGlvbkV2ZW50LFxuICBhbmltYXRlLFxuICBzdHlsZSxcbiAgdHJhbnNpdGlvbixcbiAgdHJpZ2dlcixcbn0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE9wdGlvbmFsLFxuICBPdXRwdXQsXG4gIFNraXBTZWxmLFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NoaWxkLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFNreUlucHV0Qm94SG9zdFNlcnZpY2UgfSBmcm9tICdAc2t5dXgvZm9ybXMnO1xuaW1wb3J0IHtcbiAgU0tZX0NPVU5UUllfRklFTERfQ09OVEVYVCxcbiAgU2t5Q291bnRyeUZpZWxkQ291bnRyeSxcbn0gZnJvbSAnQHNreXV4L2xvb2t1cCc7XG5pbXBvcnQgeyBTa3lUaGVtZVNlcnZpY2UgfSBmcm9tICdAc2t5dXgvdGhlbWUnO1xuXG5pbXBvcnQge1xuICBQaG9uZU51bWJlckZvcm1hdCxcbiAgUGhvbmVOdW1iZXJUeXBlLFxuICBQaG9uZU51bWJlclV0aWwsXG59IGZyb20gJ2dvb2dsZS1saWJwaG9uZW51bWJlcic7XG5pbXBvcnQgJ2ludGwtdGVsLWlucHV0JztcblxuaW1wb3J0IHsgU2t5UGhvbmVGaWVsZEFkYXB0ZXJTZXJ2aWNlIH0gZnJvbSAnLi9waG9uZS1maWVsZC1hZGFwdGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2t5UGhvbmVGaWVsZENvdW50cnkgfSBmcm9tICcuL3R5cGVzL2NvdW50cnknO1xuaW1wb3J0IHsgU2t5UGhvbmVGaWVsZE51bWJlclJldHVybkZvcm1hdCB9IGZyb20gJy4vdHlwZXMvbnVtYmVyLXJldHVybi1mb3JtYXQnO1xuXG4vLyBOT1RFOiBUaGUgbm8tb3AgYW5pbWF0aW9uIGlzIGhlcmUgaW4gb3JkZXIgdG8gYmxvY2sgdGhlIGlucHV0J3MgXCJmYWRlIGluXCIgYW5pbWF0aW9uXG4vLyBmcm9tIGZpcmluZyBvbiBpbml0aWFsIGxvYWQuIEZvciBtb3JlIGluZm9ybWF0aW9uIG9uIHRoaXMgdGVjaG5pcXVlIHlvdSBjYW4gc2VlXG4vLyBodHRwczovL3d3dy5iZW5uYWRlbC5jb20vYmxvZy8zNDE3LXVzaW5nLW5vLW9wLXRyYW5zaXRpb25zLXRvLXByZXZlbnQtYW5pbWF0aW9uLWR1cmluZy10aGUtaW5pdGlhbC1yZW5kZXItb2Ytbmdmb3ItaW4tYW5ndWxhci01LTItNi5odG1cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NreS1waG9uZS1maWVsZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9waG9uZS1maWVsZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3Bob25lLWZpZWxkLmNvbXBvbmVudC5zY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBwcm92aWRlcnM6IFtcbiAgICBTa3lQaG9uZUZpZWxkQWRhcHRlclNlcnZpY2UsXG4gICAgLy8gUHJldmVudHMgdGhlIGVtYmVkZGVkIGNvdW50cnkgZmllbGQgY29tcG9uZW50IGZyb20gY2hhbmdpbmcgaXRzIGJlaGF2aW9yIGJhc2VkIG9uXG4gICAgLy8gYmVpbmcgaW5zaWRlIGFuIGlucHV0IGJveC4gVGhlIHBob25lIGZpZWxkIGl0c2VsZiB3aWxsIGhhbmRsZSB0aGUgcmVxdWlyZWQgY2hhbmdlc1xuICAgIC8vIGZvciBpbnB1dCBib3guXG4gICAge1xuICAgICAgcHJvdmlkZTogU2t5SW5wdXRCb3hIb3N0U2VydmljZSxcbiAgICAgIHVzZVZhbHVlOiB1bmRlZmluZWQsXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBTS1lfQ09VTlRSWV9GSUVMRF9DT05URVhULFxuICAgICAgdXNlVmFsdWU6IHsgc2hvd1BsYWNlaG9sZGVyVGV4dDogdHJ1ZSB9LFxuICAgIH0sXG4gIF0sXG4gIGFuaW1hdGlvbnM6IFtcbiAgICB0cmlnZ2VyKCdibG9ja0FuaW1hdGlvbk9uTG9hZCcsIFt0cmFuc2l0aW9uKCc6ZW50ZXInLCBbXSldKSxcbiAgICB0cmlnZ2VyKCdjb3VudHJ5U2VhcmNoQW5pbWF0aW9uJywgW1xuICAgICAgdHJhbnNpdGlvbigndm9pZCA9PiBvcGVuJywgW1xuICAgICAgICBzdHlsZSh7XG4gICAgICAgICAgb3BhY2l0eTogMCxcbiAgICAgICAgICB3aWR0aDogMCxcbiAgICAgICAgfSksXG4gICAgICAgIGFuaW1hdGUoXG4gICAgICAgICAgJzIwMG1zIGVhc2UtaW4nLFxuICAgICAgICAgIHN0eWxlKHtcbiAgICAgICAgICAgIG9wYWNpdHk6IDEsXG4gICAgICAgICAgICB3aWR0aDogJyonLFxuICAgICAgICAgIH0pXG4gICAgICAgICksXG4gICAgICBdKSxcbiAgICAgIHRyYW5zaXRpb24oJ29wZW4gPT4gdm9pZCcsIFtcbiAgICAgICAgYW5pbWF0ZShcbiAgICAgICAgICAnMjAwbXMgZWFzZS1pbicsXG4gICAgICAgICAgc3R5bGUoe1xuICAgICAgICAgICAgb3BhY2l0eTogMCxcbiAgICAgICAgICAgIHdpZHRoOiAwLFxuICAgICAgICAgIH0pXG4gICAgICAgICksXG4gICAgICBdKSxcbiAgICAgIHRyYW5zaXRpb24oJ3ZvaWQgPT4gb3Blbi1tb2Rlcm4nLCBbXG4gICAgICAgIHN0eWxlKHtcbiAgICAgICAgICBvcGFjaXR5OiAwLFxuICAgICAgICB9KSxcbiAgICAgICAgYW5pbWF0ZShcbiAgICAgICAgICAnMjAwbXMgZWFzZS1pbicsXG4gICAgICAgICAgc3R5bGUoe1xuICAgICAgICAgICAgb3BhY2l0eTogMSxcbiAgICAgICAgICB9KVxuICAgICAgICApLFxuICAgICAgXSksXG4gICAgICB0cmFuc2l0aW9uKCdvcGVuLW1vZGVybiA9PiB2b2lkJywgW1xuICAgICAgICBhbmltYXRlKFxuICAgICAgICAgICcyMDBtcyBlYXNlLWluJyxcbiAgICAgICAgICBzdHlsZSh7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLFxuICAgICAgICAgIH0pXG4gICAgICAgICksXG4gICAgICBdKSxcbiAgICBdKSxcbiAgICB0cmlnZ2VyKCdwaG9uZUlucHV0QW5pbWF0aW9uJywgW1xuICAgICAgdHJhbnNpdGlvbigndm9pZCA9PiBvcGVuJywgW1xuICAgICAgICBzdHlsZSh7XG4gICAgICAgICAgb3BhY2l0eTogMCxcbiAgICAgICAgfSksXG4gICAgICAgIGFuaW1hdGUoXG4gICAgICAgICAgJzIwMG1zIGVhc2UtaW4nLFxuICAgICAgICAgIHN0eWxlKHtcbiAgICAgICAgICAgIG9wYWNpdHk6IDEsXG4gICAgICAgICAgfSlcbiAgICAgICAgKSxcbiAgICAgIF0pLFxuICAgICAgdHJhbnNpdGlvbignb3BlbiA9PiB2b2lkJywgW1xuICAgICAgICBhbmltYXRlKFxuICAgICAgICAgICcyMDBtcyBlYXNlLWluJyxcbiAgICAgICAgICBzdHlsZSh7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLFxuICAgICAgICAgIH0pXG4gICAgICAgICksXG4gICAgICBdKSxcbiAgICBdKSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5UGhvbmVGaWVsZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSwgT25Jbml0IHtcbiAgLyoqXG4gICAqIFdoZXRoZXIgcGhvbmUgbnVtYmVyIGV4dGVuc2lvbnMgYXJlIGFsbG93ZWQuXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgYWxsb3dFeHRlbnNpb25zKHZhbHVlOiBib29sZWFuIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy4jX2FsbG93RXh0ZW5zaW9ucyA9IHZhbHVlICE9PSBmYWxzZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgYWxsb3dFeHRlbnNpb25zKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLiNfYWxsb3dFeHRlbnNpb25zO1xuICB9XG5cbiAgI19hbGxvd0V4dGVuc2lvbnMgPSB0cnVlO1xuXG4gIC8qKlxuICAgKiBUaGVcbiAgICogW0ludGVybmF0aW9uYWwgT3JnYW5pemF0aW9uIGZvciBTdGFuZGFyZGl6YXRpb24gQWxwaGEgMl0oaHR0cHM6Ly93d3cubmF0aW9uc29ubGluZS5vcmcvb25ld29ybGQvY291bnRyeV9jb2RlX2xpc3QuaHRtKVxuICAgKiBjb3VudHJ5IGNvZGUgZm9yIHRoZSBkZWZhdWx0IGNvdW50cnkuIFRoZSBjb3VudHJ5IHNlbGVjdG9yIGJ1dHRvbiBkaXNwbGF5cyBhIGZsYWdcbiAgICogaWNvbiBmb3IgdGhpcyBkZWZhdWx0IGNvdW50cnkgdW50aWwgdXNlcnMgc2VsZWN0IGEgZGlmZmVyZW50IGNvdW50cnkuXG4gICAqIEBkZWZhdWx0IFwidXNcIlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBkZWZhdWx0Q291bnRyeSh2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkKSB7XG4gICAgaWYgKHZhbHVlICYmIHZhbHVlICE9PSB0aGlzLiNfZGVmYXVsdENvdW50cnkpIHtcbiAgICAgIHRoaXMuI19kZWZhdWx0Q291bnRyeSA9IHZhbHVlLnRvTG93ZXJDYXNlKCk7XG5cbiAgICAgIHRoaXMuI2RlZmF1bHRDb3VudHJ5RGF0YSA9IHRoaXMuY291bnRyaWVzLmZpbmQoXG4gICAgICAgIChjb3VudHJ5KSA9PiBjb3VudHJ5LmlzbzIgPT09IHRoaXMuI19kZWZhdWx0Q291bnRyeVxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0IGRlZmF1bHRDb3VudHJ5KCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuI19kZWZhdWx0Q291bnRyeTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgZm9ybWF0IGZvciB2YWxpZGF0ZWQgcGhvbmUgbnVtYmVycy5cbiAgICogT3B0aW9ucyBpbmNsdWRlOiBgXCJkZWZhdWx0XCJgLCBgXCJpbnRlcm5hdGlvbmFsXCJgLCBhbmQgYFwibmF0aW9uYWxcImAuXG4gICAqIEBkZWZhdWx0IFwiZGVmYXVsdFwiXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgZ2V0IHJldHVybkZvcm1hdCgpOiBTa3lQaG9uZUZpZWxkTnVtYmVyUmV0dXJuRm9ybWF0IHtcbiAgICByZXR1cm4gdGhpcy4jX3JldHVybkZvcm1hdDtcbiAgfVxuXG4gIHB1YmxpYyBzZXQgcmV0dXJuRm9ybWF0KHZhbHVlOiBTa3lQaG9uZUZpZWxkTnVtYmVyUmV0dXJuRm9ybWF0IHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy4jX3JldHVybkZvcm1hdCA9IHZhbHVlIHx8ICdkZWZhdWx0JztcbiAgfVxuXG4gICNfcmV0dXJuRm9ybWF0OiBTa3lQaG9uZUZpZWxkTnVtYmVyUmV0dXJuRm9ybWF0ID0gJ2RlZmF1bHQnO1xuXG4gIC8qKlxuICAgKiBUaGUgW0ludGVybmF0aW9uYWwgT3JnYW5pemF0aW9uIGZvciBTdGFuZGFyZGl6YXRpb24gQWxwaGEgMl0oaHR0cHM6Ly93d3cubmF0aW9uc29ubGluZS5vcmcvb25ld29ybGQvY291bnRyeV9jb2RlX2xpc3QuaHRtKVxuICAgKiBjb3VudHJ5IGNvZGVzIGZvciB0aGUgY291bnRyaWVzIHRoYXQgdXNlcnMgY2FuIHNlbGVjdC4gQnkgZGVmYXVsdCwgYWxsIGNvdW50cmllcyBhcmUgYXZhaWxhYmxlLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHN1cHBvcnRlZENvdW50cnlJU09zOiBzdHJpbmdbXSB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogRW1pdHMgYSBgU2t5UGhvbmVGaWVsZENvdW50cnlgIG9iamVjdCB3aGVuIHRoZSBzZWxlY3RlZCBjb3VudHJ5IGluIHRoZSBjb3VudHJ5IHNlYXJjaFxuICAgKiBpbnB1dCBjaGFuZ2VzLlxuICAgKi9cblxuICBAT3V0cHV0KClcbiAgcHVibGljIHNlbGVjdGVkQ291bnRyeUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8U2t5UGhvbmVGaWVsZENvdW50cnk+KCk7XG5cbiAgcHVibGljIGNvdW50cmllczogU2t5UGhvbmVGaWVsZENvdW50cnlbXTtcblxuICBwdWJsaWMgY291bnRyeVNlbGVjdERpc2FibGVkID0gZmFsc2U7XG5cbiAgcHVibGljIGNvdW50cnlTZWFyY2hTaG93biA9IGZhbHNlO1xuXG4gIHB1YmxpYyBwaG9uZUlucHV0U2hvd24gPSB0cnVlO1xuXG4gIHB1YmxpYyBjb3VudHJ5U2VhcmNoRm9ybTogRm9ybUdyb3VwPHtcbiAgICBjb3VudHJ5U2VhcmNoOiBGb3JtQ29udHJvbDxTa3lDb3VudHJ5RmllbGRDb3VudHJ5IHwgdW5kZWZpbmVkPjtcbiAgfT47XG5cbiAgLyoqXG4gICAqIFRoZSBjdXJyZW50bHkgc2VsZWN0ZWQgY291bnRyeSB0byB2YWxpZGF0ZSBhZ2FpbnN0LlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBzZWxlY3RlZENvdW50cnkobmV3Q291bnRyeTogU2t5UGhvbmVGaWVsZENvdW50cnkgfCB1bmRlZmluZWQpIHtcbiAgICBpZiAoXG4gICAgICBuZXdDb3VudHJ5ICYmXG4gICAgICAoIXRoaXMuI19zZWxlY3RlZENvdW50cnkgfHxcbiAgICAgICAgdGhpcy4jX3NlbGVjdGVkQ291bnRyeS5pc28yICE9PSBuZXdDb3VudHJ5LmlzbzIpXG4gICAgKSB7XG4gICAgICB0aGlzLiNfc2VsZWN0ZWRDb3VudHJ5ID0gdGhpcy5jb3VudHJpZXMuZmluZChcbiAgICAgICAgKGNvdW50cnkpID0+IGNvdW50cnkuaXNvMiA9PT0gbmV3Q291bnRyeS5pc28yXG4gICAgICApO1xuXG4gICAgICBpZiAodGhpcy4jX3NlbGVjdGVkQ291bnRyeSAmJiAhdGhpcy4jX3NlbGVjdGVkQ291bnRyeS5leGFtcGxlTnVtYmVyKSB7XG4gICAgICAgIGNvbnN0IG51bWJlck9iaiA9IHRoaXMuI3Bob25lVXRpbHMuZ2V0RXhhbXBsZU51bWJlckZvclR5cGUoXG4gICAgICAgICAgbmV3Q291bnRyeS5pc28yLFxuICAgICAgICAgIFBob25lTnVtYmVyVHlwZS5GSVhFRF9MSU5FXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuI19zZWxlY3RlZENvdW50cnkuZXhhbXBsZU51bWJlciA9IHRoaXMuI3Bob25lVXRpbHMuZm9ybWF0KFxuICAgICAgICAgIG51bWJlck9iaixcbiAgICAgICAgICBQaG9uZU51bWJlckZvcm1hdC5OQVRJT05BTFxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICB0aGlzLnNlbGVjdGVkQ291bnRyeUNoYW5nZS5lbWl0KHRoaXMuI19zZWxlY3RlZENvdW50cnkpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXQgc2VsZWN0ZWRDb3VudHJ5KCk6IFNreVBob25lRmllbGRDb3VudHJ5IHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy4jX3NlbGVjdGVkQ291bnRyeTtcbiAgfVxuXG4gIEBWaWV3Q2hpbGQoJ2lucHV0VGVtcGxhdGVSZWYnLCB7XG4gICAgcmVhZDogVGVtcGxhdGVSZWYsXG4gICAgc3RhdGljOiB0cnVlLFxuICB9KVxuICBwdWJsaWMgaW5wdXRUZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8dW5rbm93bj4gfCB1bmRlZmluZWQ7XG5cbiAgQFZpZXdDaGlsZCgnY291bnRyeUJ0blRlbXBsYXRlUmVmJywge1xuICAgIHJlYWQ6IFRlbXBsYXRlUmVmLFxuICAgIHN0YXRpYzogdHJ1ZSxcbiAgfSlcbiAgcHVibGljIGNvdW50cnlCdG5UZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8dW5rbm93bj4gfCB1bmRlZmluZWQ7XG5cbiAgQFZpZXdDaGlsZCgnYnV0dG9uc0luc2V0VGVtcGxhdGVSZWYnLCB7XG4gICAgcmVhZDogVGVtcGxhdGVSZWYsXG4gICAgc3RhdGljOiB0cnVlLFxuICB9KVxuICBwdWJsaWMgYnV0dG9uc0luc2V0VGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPHVua25vd24+IHwgdW5kZWZpbmVkO1xuXG4gICNkZWZhdWx0Q291bnRyeURhdGE6IFNreVBob25lRmllbGRDb3VudHJ5IHwgdW5kZWZpbmVkO1xuXG4gICNwaG9uZUlucHV0QW5pbWF0aW9uVHJpZ2dlcmVkID0gZmFsc2U7XG5cbiAgI3Bob25lVXRpbHMgPSBQaG9uZU51bWJlclV0aWwuZ2V0SW5zdGFuY2UoKTtcblxuICAjbG9uZ2VzdERpYWxDb2RlTGVuZ3RoID0gMDtcblxuICAjX2RlZmF1bHRDb3VudHJ5OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgI19zZWxlY3RlZENvdW50cnk6IFNreVBob25lRmllbGRDb3VudHJ5IHwgdW5kZWZpbmVkO1xuXG4gICNjb3VudHJ5U2VhcmNoRm9ybUNvbnRyb2w6IEZvcm1Db250cm9sPFNreUNvdW50cnlGaWVsZENvdW50cnkgfCB1bmRlZmluZWQ+ID1cbiAgICBuZXcgRm9ybUNvbnRyb2woKTtcblxuICAjZm9ybUJ1aWxkZXI6IEZvcm1CdWlsZGVyO1xuICAjYWRhcHRlclNlcnZpY2U6IFNreVBob25lRmllbGRBZGFwdGVyU2VydmljZTtcbiAgI2NoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBmb3JtQnVpbGRlcjogRm9ybUJ1aWxkZXIsXG4gICAgYWRhcHRlclNlcnZpY2U6IFNreVBob25lRmllbGRBZGFwdGVyU2VydmljZSxcbiAgICBjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQE9wdGlvbmFsKCkgcHVibGljIHRoZW1lU3ZjPzogU2t5VGhlbWVTZXJ2aWNlLFxuICAgIEBPcHRpb25hbCgpIEBTa2lwU2VsZigpIHB1YmxpYyBpbnB1dEJveEhvc3RTdmM/OiBTa3lJbnB1dEJveEhvc3RTZXJ2aWNlXG4gICkge1xuICAgIHRoaXMuI2Zvcm1CdWlsZGVyID0gZm9ybUJ1aWxkZXI7XG4gICAgdGhpcy4jYWRhcHRlclNlcnZpY2UgPSBhZGFwdGVyU2VydmljZTtcbiAgICB0aGlzLiNjaGFuZ2VEZXRlY3RvciA9IGNoYW5nZURldGVjdG9yO1xuICAgIC8qKlxuICAgICAqIFRoZSBqc29uIGZ1bmN0aW9ucyBoZXJlIGVuc3VyZXMgdGhhdCB3ZSBnZXQgYSBjb3B5IG9mIHRoZSBhcnJheSBhbmQgbm90IHRoZSBnbG9iYWwgb3JpZ2luYWwuXG4gICAgICogVGhpcyBlbnN1cmVzIHRoYXQgbXVsdGlwbGUgaW5zdGFuY2VzIG9mIHRoZSBjb21wb25lbnQgZG9uJ3Qgb3ZlcndyaXRlIHRoZSBvcmlnaW5hbCBkYXRhLlxuICAgICAqXG4gICAgICogV2UgbXVzdCB0eXBlIHRoZSB3aW5kb3cgb2JqZWN0IGFzIGFueSBoZXJlIGFzIHRoZSBpbnRsLXRlbC1pbnB1dCBsaWJyYXJ5IGFkZHMgaXRzIG9iamVjdFxuICAgICAqIHRvIHRoZSBtYWluIHdpbmRvdyBvYmplY3QuXG4gICAgICovXG4gICAgdGhpcy5jb3VudHJpZXMgPSBKU09OLnBhcnNlKFxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICAgIEpTT04uc3RyaW5naWZ5KCh3aW5kb3cgYXMgYW55KS5pbnRsVGVsSW5wdXRHbG9iYWxzLmdldENvdW50cnlEYXRhKCkpXG4gICAgKTtcbiAgICBmb3IgKGNvbnN0IGNvdW50cnkgb2YgdGhpcy5jb3VudHJpZXMpIHtcbiAgICAgIGNvdW50cnkuZGlhbENvZGUgPSAnKycgKyBjb3VudHJ5LmRpYWxDb2RlO1xuXG4gICAgICBpZiAoY291bnRyeS5kaWFsQ29kZS5sZW5ndGggPiB0aGlzLiNsb25nZXN0RGlhbENvZGVMZW5ndGgpIHtcbiAgICAgICAgdGhpcy4jbG9uZ2VzdERpYWxDb2RlTGVuZ3RoID0gY291bnRyeS5kaWFsQ29kZS5sZW5ndGg7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5jb3VudHJ5U2VhcmNoRm9ybSA9IHRoaXMuI2Zvcm1CdWlsZGVyLmdyb3VwKHtcbiAgICAgIGNvdW50cnlTZWFyY2g6IHRoaXMuI2NvdW50cnlTZWFyY2hGb3JtQ29udHJvbCxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAvLyBUaGUgdGltZW91dCBoZXJlIGlzIG5lZWRlZCB0byBhdm9pZCBhIGNoYW5nZSBiZWZvcmUgY2hlY2tlZCBlcnJvciB3aGVuIGEgdXNlciBzcGVjaWZpZXNcbiAgICAvLyBhIHNlbGVjdGVkIGNvdW50cnkgb24gaW5pdGlhbGl6YXRpb24gb2YgdGhlIGNvbXBvbmVudC5cbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGlmICh0aGlzLmlucHV0Qm94SG9zdFN2YyAmJiB0aGlzLmlucHV0VGVtcGxhdGVSZWYpIHtcbiAgICAgICAgdGhpcy5pbnB1dEJveEhvc3RTdmMucG9wdWxhdGUoe1xuICAgICAgICAgIGlucHV0VGVtcGxhdGU6IHRoaXMuaW5wdXRUZW1wbGF0ZVJlZixcbiAgICAgICAgICBidXR0b25zSW5zZXRUZW1wbGF0ZTogdGhpcy5idXR0b25zSW5zZXRUZW1wbGF0ZVJlZixcbiAgICAgICAgICBidXR0b25zTGVmdFRlbXBsYXRlOiB0aGlzLmNvdW50cnlCdG5UZW1wbGF0ZVJlZixcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIGlmICghdGhpcy5kZWZhdWx0Q291bnRyeSkge1xuICAgICAgICB0aGlzLmRlZmF1bHRDb3VudHJ5ID0gJ3VzJztcbiAgICAgIH1cblxuICAgICAgaWYgKCF0aGlzLnNlbGVjdGVkQ291bnRyeSkge1xuICAgICAgICB0aGlzLnNlbGVjdGVkQ291bnRyeSA9IHRoaXMuI2RlZmF1bHRDb3VudHJ5RGF0YTtcbiAgICAgIH1cbiAgICAgIHRoaXMuI2NoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICAgIH0sIDApO1xuXG4gICAgdGhpcy4jY291bnRyeVNlYXJjaEZvcm1Db250cm9sLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoXG4gICAgICAobmV3VmFsdWU/OiBTa3lDb3VudHJ5RmllbGRDb3VudHJ5KSA9PiB7XG4gICAgICAgIGlmIChuZXdWYWx1ZT8uaXNvMiAhPT0gdGhpcy5zZWxlY3RlZENvdW50cnk/LmlzbzIpIHtcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkQ291bnRyeSA9IG5ld1ZhbHVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdGVkQ291bnRyeUNoYW5nZS5jb21wbGV0ZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIGNvdW50cnkgdG8gdmFsaWRhdGUgYWdhaW5zdCBiYXNlZCBvbiB0aGUgY291bnR5J3MgaXNvMiBjb2RlLlxuICAgKiBAcGFyYW0gY291bnRyeUNvZGUgVGhlIEludGVybmF0aW9uYWwgT3JnYW5pemF0aW9uIGZvciBTdGFuZGFyZGl6YXRpb24ncyB0d28tbGV0dGVyIGNvZGVcbiAgICogZm9yIHRoZSBkZWZhdWx0IGNvdW50cnkuXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcHVibGljIG9uQ291bnRyeVNlbGVjdGVkKG5ld0NvdW50cnk6IFNreUNvdW50cnlGaWVsZENvdW50cnkpOiB2b2lkIHtcbiAgICBpZiAobmV3Q291bnRyeSkge1xuICAgICAgdGhpcy5zZWxlY3RlZENvdW50cnkgPSB0aGlzLmNvdW50cmllcy5maW5kKFxuICAgICAgICAoY291bnRyeUluZm8pID0+IGNvdW50cnlJbmZvLmlzbzIgPT09IG5ld0NvdW50cnkuaXNvMlxuICAgICAgKTtcbiAgICAgIHRoaXMudG9nZ2xlQ291bnRyeVNlYXJjaChmYWxzZSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHRvZ2dsZUNvdW50cnlTZWFyY2goc2hvd1NlYXJjaDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuI3Bob25lSW5wdXRBbmltYXRpb25UcmlnZ2VyZWQgPSB0cnVlO1xuXG4gICAgaWYgKHNob3dTZWFyY2gpIHtcbiAgICAgIHRoaXMucGhvbmVJbnB1dFNob3duID0gZmFsc2U7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY291bnRyeVNlYXJjaFNob3duID0gZmFsc2U7XG5cbiAgICAgIHRoaXMuI2NvdW50cnlTZWFyY2hGb3JtQ29udHJvbC5zZXRWYWx1ZSh1bmRlZmluZWQpO1xuICAgIH1cblxuICAgIHRoaXMuI2NoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcHVibGljIGNvdW50cnlTZWFyY2hBbmltYXRpb25FbmQoZTogQW5pbWF0aW9uRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuY291bnRyeVNlYXJjaFNob3duKSB7XG4gICAgICB0aGlzLnBob25lSW5wdXRTaG93biA9IHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuI2FkYXB0ZXJTZXJ2aWNlLmZvY3VzQ291bnRyeVNlYXJjaEVsZW1lbnQoZS5lbGVtZW50KTtcbiAgICB9XG5cbiAgICB0aGlzLiNjaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHB1YmxpYyBwaG9uZUlucHV0QW5pbWF0aW9uRW5kKGU6IEFuaW1hdGlvbkV2ZW50KTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnBob25lSW5wdXRTaG93bikge1xuICAgICAgdGhpcy5jb3VudHJ5U2VhcmNoU2hvd24gPSB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAodGhpcy4jcGhvbmVJbnB1dEFuaW1hdGlvblRyaWdnZXJlZCkge1xuICAgICAgICB0aGlzLiNhZGFwdGVyU2VydmljZS5mb2N1c1Bob25lSW5wdXQoZS5lbGVtZW50KTtcbiAgICAgICAgdGhpcy4jcGhvbmVJbnB1dEFuaW1hdGlvblRyaWdnZXJlZCA9IGZhbHNlO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuI2NoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcHVibGljIHNldENvdW50cnlCeURpYWxDb2RlKHBob25lTnVtYmVyOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBpZiAoIXBob25lTnVtYmVyIHx8ICFwaG9uZU51bWJlci5zdGFydHNXaXRoKCcrJykpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBsZXQgbmV3Q291bnRyeTogU2t5UGhvbmVGaWVsZENvdW50cnkgfCB1bmRlZmluZWQ7XG5cbiAgICBmb3IgKGxldCBpID0gMTsgaSA8IHRoaXMuI2xvbmdlc3REaWFsQ29kZUxlbmd0aCArIDE7IGkrKykge1xuICAgICAgY29uc3QgZGlhbENvZGUgPSBwaG9uZU51bWJlci5zdWJzdHJpbmcoMCwgaSk7XG5cbiAgICAgIGlmICh0aGlzLiNkZWZhdWx0Q291bnRyeURhdGE/LmRpYWxDb2RlID09PSBkaWFsQ29kZSkge1xuICAgICAgICBuZXdDb3VudHJ5ID0gdGhpcy4jZGVmYXVsdENvdW50cnlEYXRhO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbGV0IGZvdW5kQ291bnRyeSA9IHRoaXMuY291bnRyaWVzLmZpbmQoXG4gICAgICAgICAgKGNvdW50cnkpID0+IGNvdW50cnkuZGlhbENvZGUgPT09IGRpYWxDb2RlICYmIGNvdW50cnkucHJpb3JpdHkgPT09IDBcbiAgICAgICAgKTtcblxuICAgICAgICBpZiAoZm91bmRDb3VudHJ5KSB7XG4gICAgICAgICAgLy8gRW5zdXJlIHRoYXQgdGhlIGNvdW50cnkgdGhhdCB3YXMgZm91bmQgaXMgb25lIG9mIHRoZSBzdXBwb3J0ZWQgY291bnRyaWVzXG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgdGhpcy5zdXBwb3J0ZWRDb3VudHJ5SVNPcyAmJlxuICAgICAgICAgICAgdGhpcy5zdXBwb3J0ZWRDb3VudHJ5SVNPcy5maW5kSW5kZXgoXG4gICAgICAgICAgICAgIChpc29Db2RlKSA9PlxuICAgICAgICAgICAgICAgIGlzb0NvZGUudG9VcHBlckNhc2UoKSA9PT0gZm91bmRDb3VudHJ5Py5pc28yLnRvVXBwZXJDYXNlKClcbiAgICAgICAgICAgICkgPCAwXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICBmb3VuZENvdW50cnkgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKGZvdW5kQ291bnRyeSAhPT0gdGhpcy5zZWxlY3RlZENvdW50cnkpIHtcbiAgICAgICAgICAgIG5ld0NvdW50cnkgPSBmb3VuZENvdW50cnk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKG5ld0NvdW50cnkpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRDb3VudHJ5ID0gbmV3Q291bnRyeTtcbiAgICAgIHRoaXMuI2NoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwiIWlucHV0Qm94SG9zdFN2Y1wiPlxuICA8ZGl2IGNsYXNzPVwic2t5LWlucHV0LWdyb3VwIHNreS1waG9uZS1maWVsZFwiIFtAYmxvY2tBbmltYXRpb25PbkxvYWRdPlxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb3VudHJ5QnRuVGVtcGxhdGVSZWZcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaW5wdXRUZW1wbGF0ZVJlZlwiPjwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJidXR0b25zSW5zZXRUZW1wbGF0ZVJlZlwiPjwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cbjwvbmctY29udGFpbmVyPlxuXG48bmctdGVtcGxhdGUgI2NvdW50cnlCdG5UZW1wbGF0ZVJlZj5cbiAgPGRpdlxuICAgIGNsYXNzPVwic2t5LWlucHV0LWdyb3VwLWJ0biBza3ktcGhvbmUtZmllbGQtY291bnRyeS1idG5cIlxuICAgIFthdHRyLmRhdGEtc2t5LXRlc3QtaXNvMl09XCJzZWxlY3RlZENvdW50cnk/LmlzbzJcIlxuICAgIFthdHRyLmRhdGEtc2t5LXRlc3QtbmFtZV09XCJzZWxlY3RlZENvdW50cnk/Lm5hbWVcIlxuICA+XG4gICAgPGJ1dHRvblxuICAgICAgYXJpYS1saXZlPVwicG9saXRlXCJcbiAgICAgIGNsYXNzPVwic2t5LWJ0biBza3ktYnRuLWRlZmF1bHRcIlxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICBbYXR0ci50aXRsZV09XCJcbiAgICAgICAgKCdza3l1eF9waG9uZV9maWVsZF9jb3VudHJ5X3NlbGVjdF9sYWJlbCcgfCBza3lMaWJSZXNvdXJjZXMpICtcbiAgICAgICAgJyAnICtcbiAgICAgICAgKCdza3l1eF9waG9uZV9maWVsZF9jb3VudHJ5X3NlbGVjdGVkX2xhYmVsJ1xuICAgICAgICAgIHwgc2t5TGliUmVzb3VyY2VzIDogc2VsZWN0ZWRDb3VudHJ5Py5uYW1lKVxuICAgICAgXCJcbiAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiXG4gICAgICAgICgnc2t5dXhfcGhvbmVfZmllbGRfY291bnRyeV9zZWxlY3RfbGFiZWwnIHwgc2t5TGliUmVzb3VyY2VzKSArXG4gICAgICAgICcgJyArXG4gICAgICAgICgnc2t5dXhfcGhvbmVfZmllbGRfY291bnRyeV9zZWxlY3RlZF9sYWJlbCdcbiAgICAgICAgICB8IHNreUxpYlJlc291cmNlcyA6IHNlbGVjdGVkQ291bnRyeT8ubmFtZSlcbiAgICAgIFwiXG4gICAgICBbZGlzYWJsZWRdPVwiY291bnRyeVNlbGVjdERpc2FibGVkXCJcbiAgICAgIChjbGljayk9XCJ0b2dnbGVDb3VudHJ5U2VhcmNoKHRydWUpXCJcbiAgICA+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwic2t5LXBob25lLWZpZWxkLWZsYWcgaXRpX19mbGFnXCJcbiAgICAgICAgW25nQ2xhc3NdPVwiJ2l0aV9fJyArIHNlbGVjdGVkQ291bnRyeT8uaXNvMlwiXG4gICAgICA+PC9kaXY+XG4gICAgPC9idXR0b24+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNpbnB1dFRlbXBsYXRlUmVmPlxuICA8c3BhblxuICAgICpuZ0lmPVwicGhvbmVJbnB1dFNob3duXCJcbiAgICBjbGFzcz1cInNreS1waG9uZS1maWVsZC1jb250YWluZXJcIlxuICAgIFtAcGhvbmVJbnB1dEFuaW1hdGlvbl09XCJwaG9uZUlucHV0U2hvd24gPyAnb3BlbicgOiAnY2xvc2VkJ1wiXG4gICAgKEBwaG9uZUlucHV0QW5pbWF0aW9uLmRvbmUpPVwicGhvbmVJbnB1dEFuaW1hdGlvbkVuZCgkZXZlbnQpXCJcbiAgPlxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgPC9zcGFuPlxuICA8c3BhblxuICAgICpuZ0lmPVwiY291bnRyeVNlYXJjaFNob3duXCJcbiAgICBjbGFzcz1cInNreS1waG9uZS1maWVsZC1jb250YWluZXJcIlxuICAgIFtAY291bnRyeVNlYXJjaEFuaW1hdGlvbl09XCJcbiAgICAgICdvcGVuJyArXG4gICAgICAoKHRoZW1lU3ZjPy5zZXR0aW5nc0NoYW5nZSB8IGFzeW5jKT8uY3VycmVudFNldHRpbmdzPy50aGVtZT8ubmFtZSA9PT1cbiAgICAgICdtb2Rlcm4nXG4gICAgICAgID8gJy1tb2Rlcm4nXG4gICAgICAgIDogJycpXG4gICAgXCJcbiAgICAoQGNvdW50cnlTZWFyY2hBbmltYXRpb24uZG9uZSk9XCJjb3VudHJ5U2VhcmNoQW5pbWF0aW9uRW5kKCRldmVudClcIlxuICA+XG4gICAgPGRpdiBjbGFzcz1cInNreS1waG9uZS1maWVsZC1jb3VudHJ5LXNlYXJjaFwiIFtmb3JtR3JvdXBdPVwiY291bnRyeVNlYXJjaEZvcm1cIj5cbiAgICAgIDxza3ktY291bnRyeS1maWVsZFxuICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJjb3VudHJ5U2VhcmNoXCJcbiAgICAgICAgW2RlZmF1bHRDb3VudHJ5XT1cImRlZmF1bHRDb3VudHJ5XCJcbiAgICAgICAgW2hpZGVTZWxlY3RlZENvdW50cnlGbGFnXT1cInRydWVcIlxuICAgICAgICBbaW5jbHVkZVBob25lSW5mb109XCJ0cnVlXCJcbiAgICAgICAgW3N1cHBvcnRlZENvdW50cnlJU09zXT1cInN1cHBvcnRlZENvdW50cnlJU09zXCJcbiAgICAgICAgKHNlbGVjdGVkQ291bnRyeUNoYW5nZSk9XCJvbkNvdW50cnlTZWxlY3RlZCgkZXZlbnQpXCJcbiAgICAgID5cbiAgICAgIDwvc2t5LWNvdW50cnktZmllbGQ+XG4gICAgPC9kaXY+XG4gIDwvc3Bhbj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjYnV0dG9uc0luc2V0VGVtcGxhdGVSZWY+XG4gIDxkaXZcbiAgICAqbmdJZj1cImNvdW50cnlTZWFyY2hTaG93blwiXG4gICAgY2xhc3M9XCJza3ktaW5wdXQtZ3JvdXAtYnRuIHNreS1pbnB1dC1ib3gtYnRuLWluc2V0IHNreS1zZWFyY2gtaXRlbS1kaXNtaXNzXCJcbiAgPlxuICAgIDxidXR0b25cbiAgICAgIGNsYXNzPVwic2t5LWJ0biBza3ktcGhvbmUtZmllbGQtc2VhcmNoLWJ0bi1kaXNtaXNzXCJcbiAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgW2F0dHIudGl0bGVdPVwiXG4gICAgICAgICdza3l1eF9waG9uZV9maWVsZF9jb3VudHJ5X3NlYXJjaF9kaXNtaXNzJyB8IHNreUxpYlJlc291cmNlc1xuICAgICAgXCJcbiAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgJ3NreS1idG4tZGVmYXVsdCc6XG4gICAgICAgICAgKHRoZW1lU3ZjPy5zZXR0aW5nc0NoYW5nZSB8IGFzeW5jKT8uY3VycmVudFNldHRpbmdzPy50aGVtZT8ubmFtZSA9PT1cbiAgICAgICAgICAnbW9kZXJuJ1xuICAgICAgfVwiXG4gICAgICAoY2xpY2spPVwidG9nZ2xlQ291bnRyeVNlYXJjaChmYWxzZSlcIlxuICAgID5cbiAgICAgIDxza3ktaWNvbiAqc2t5VGhlbWVJZj1cIidkZWZhdWx0J1wiIGljb249XCJjaGV2cm9uLWNpcmNsZS1sZWZ0XCIgc2l6ZT1cImxnXCI+XG4gICAgICA8L3NreS1pY29uPlxuICAgICAgPHNreS1pY29uXG4gICAgICAgICpza3lUaGVtZUlmPVwiJ21vZGVybidcIlxuICAgICAgICBpY29uPVwiZG91YmxlLWNoZXZyb24tbGVmdFwiXG4gICAgICAgIGljb25UeXBlPVwic2t5dXhcIlxuICAgICAgICBzaXplPVwiMnhcIlxuICAgICAgPlxuICAgICAgPC9za3ktaWNvbj5cbiAgICA8L2J1dHRvbj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
394
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGhvbmUtZmllbGQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3Bob25lLWZpZWxkL3NyYy9saWIvbW9kdWxlcy9waG9uZS1maWVsZC9waG9uZS1maWVsZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvcGhvbmUtZmllbGQvc3JjL2xpYi9tb2R1bGVzL3Bob25lLWZpZWxkL3Bob25lLWZpZWxkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUVMLE9BQU8sRUFDUCxLQUFLLEVBQ0wsVUFBVSxFQUNWLE9BQU8sR0FDUixNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFDTCx1QkFBdUIsRUFFdkIsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBR0wsUUFBUSxFQUNSLE1BQU0sRUFDTixRQUFRLEVBQ1IsV0FBVyxFQUNYLFNBQVMsRUFDVCxpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFlLFdBQVcsRUFBYSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN0RCxPQUFPLEVBQ0wseUJBQXlCLEdBRTFCLE1BQU0sZUFBZSxDQUFDO0FBR3ZCLE9BQU8sRUFDTCxpQkFBaUIsRUFDakIsZUFBZSxFQUNmLGVBQWUsR0FDaEIsTUFBTSx1QkFBdUIsQ0FBQztBQUMvQixPQUFPLGdCQUFnQixDQUFDO0FBRXhCLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLCtCQUErQixDQUFDOzs7Ozs7Ozs7O0FBSTVFLHNGQUFzRjtBQUN0RixrRkFBa0Y7QUFDbEYsMElBQTBJO0FBeUYxSSxNQUFNLE9BQU8sc0JBQXNCO0lBQ2pDOzs7T0FHRztJQUNILElBQ1csZUFBZSxDQUFDLEtBQTBC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b0I7c0JBRDFCLEtBQUs7Z0JBU0MscUJBQXFCO3NCQUQzQixNQUFNO2dCQW1CSSxlQUFlO3NCQUR6QixLQUFLO2dCQWtDQyxnQkFBZ0I7c0JBSnRCLFNBQVM7dUJBQUMsa0JBQWtCLEVBQUU7d0JBQzdCLElBQUksRUFBRSxXQUFXO3dCQUNqQixNQUFNLEVBQUUsSUFBSTtxQkFDYjtnQkFPTSxxQkFBcUI7c0JBSjNCLFNBQVM7dUJBQUMsdUJBQXVCLEVBQUU7d0JBQ2xDLElBQUksRUFBRSxXQUFXO3dCQUNqQixNQUFNLEVBQUUsSUFBSTtxQkFDYjtnQkFPTSx1QkFBdUI7c0JBSjdCLFNBQVM7dUJBQUMseUJBQXlCLEVBQUU7d0JBQ3BDLElBQUksRUFBRSxXQUFXO3dCQUNqQixNQUFNLEVBQUUsSUFBSTtxQkFDYiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFuaW1hdGlvbkV2ZW50LFxuICBhbmltYXRlLFxuICBzdHlsZSxcbiAgdHJhbnNpdGlvbixcbiAgdHJpZ2dlcixcbn0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE9wdGlvbmFsLFxuICBPdXRwdXQsXG4gIFNraXBTZWxmLFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NoaWxkLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFNreUlucHV0Qm94SG9zdFNlcnZpY2UgfSBmcm9tICdAc2t5dXgvZm9ybXMnO1xuaW1wb3J0IHtcbiAgU0tZX0NPVU5UUllfRklFTERfQ09OVEVYVCxcbiAgU2t5Q291bnRyeUZpZWxkQ291bnRyeSxcbn0gZnJvbSAnQHNreXV4L2xvb2t1cCc7XG5pbXBvcnQgeyBTa3lUaGVtZVNlcnZpY2UgfSBmcm9tICdAc2t5dXgvdGhlbWUnO1xuXG5pbXBvcnQge1xuICBQaG9uZU51bWJlckZvcm1hdCxcbiAgUGhvbmVOdW1iZXJUeXBlLFxuICBQaG9uZU51bWJlclV0aWwsXG59IGZyb20gJ2dvb2dsZS1saWJwaG9uZW51bWJlcic7XG5pbXBvcnQgJ2ludGwtdGVsLWlucHV0JztcblxuaW1wb3J0IHsgU2t5UGhvbmVGaWVsZEFkYXB0ZXJTZXJ2aWNlIH0gZnJvbSAnLi9waG9uZS1maWVsZC1hZGFwdGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2t5UGhvbmVGaWVsZENvdW50cnkgfSBmcm9tICcuL3R5cGVzL2NvdW50cnknO1xuaW1wb3J0IHsgU2t5UGhvbmVGaWVsZE51bWJlclJldHVybkZvcm1hdCB9IGZyb20gJy4vdHlwZXMvbnVtYmVyLXJldHVybi1mb3JtYXQnO1xuXG4vLyBOT1RFOiBUaGUgbm8tb3AgYW5pbWF0aW9uIGlzIGhlcmUgaW4gb3JkZXIgdG8gYmxvY2sgdGhlIGlucHV0J3MgXCJmYWRlIGluXCIgYW5pbWF0aW9uXG4vLyBmcm9tIGZpcmluZyBvbiBpbml0aWFsIGxvYWQuIEZvciBtb3JlIGluZm9ybWF0aW9uIG9uIHRoaXMgdGVjaG5pcXVlIHlvdSBjYW4gc2VlXG4vLyBodHRwczovL3d3dy5iZW5uYWRlbC5jb20vYmxvZy8zNDE3LXVzaW5nLW5vLW9wLXRyYW5zaXRpb25zLXRvLXByZXZlbnQtYW5pbWF0aW9uLWR1cmluZy10aGUtaW5pdGlhbC1yZW5kZXItb2Ytbmdmb3ItaW4tYW5ndWxhci01LTItNi5odG1cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NreS1waG9uZS1maWVsZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9waG9uZS1maWVsZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3Bob25lLWZpZWxkLmNvbXBvbmVudC5zY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBwcm92aWRlcnM6IFtcbiAgICBTa3lQaG9uZUZpZWxkQWRhcHRlclNlcnZpY2UsXG4gICAgLy8gUHJldmVudHMgdGhlIGVtYmVkZGVkIGNvdW50cnkgZmllbGQgY29tcG9uZW50IGZyb20gY2hhbmdpbmcgaXRzIGJlaGF2aW9yIGJhc2VkIG9uXG4gICAgLy8gYmVpbmcgaW5zaWRlIGFuIGlucHV0IGJveC4gVGhlIHBob25lIGZpZWxkIGl0c2VsZiB3aWxsIGhhbmRsZSB0aGUgcmVxdWlyZWQgY2hhbmdlc1xuICAgIC8vIGZvciBpbnB1dCBib3guXG4gICAge1xuICAgICAgcHJvdmlkZTogU2t5SW5wdXRCb3hIb3N0U2VydmljZSxcbiAgICAgIHVzZVZhbHVlOiB1bmRlZmluZWQsXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBTS1lfQ09VTlRSWV9GSUVMRF9DT05URVhULFxuICAgICAgdXNlVmFsdWU6IHsgc2hvd1BsYWNlaG9sZGVyVGV4dDogdHJ1ZSB9LFxuICAgIH0sXG4gIF0sXG4gIGFuaW1hdGlvbnM6IFtcbiAgICB0cmlnZ2VyKCdibG9ja0FuaW1hdGlvbk9uTG9hZCcsIFt0cmFuc2l0aW9uKCc6ZW50ZXInLCBbXSldKSxcbiAgICB0cmlnZ2VyKCdjb3VudHJ5U2VhcmNoQW5pbWF0aW9uJywgW1xuICAgICAgdHJhbnNpdGlvbigndm9pZCA9PiBvcGVuJywgW1xuICAgICAgICBzdHlsZSh7XG4gICAgICAgICAgb3BhY2l0eTogMCxcbiAgICAgICAgICB3aWR0aDogMCxcbiAgICAgICAgfSksXG4gICAgICAgIGFuaW1hdGUoXG4gICAgICAgICAgJzIwMG1zIGVhc2UtaW4nLFxuICAgICAgICAgIHN0eWxlKHtcbiAgICAgICAgICAgIG9wYWNpdHk6IDEsXG4gICAgICAgICAgICB3aWR0aDogJyonLFxuICAgICAgICAgIH0pXG4gICAgICAgICksXG4gICAgICBdKSxcbiAgICAgIHRyYW5zaXRpb24oJ29wZW4gPT4gdm9pZCcsIFtcbiAgICAgICAgYW5pbWF0ZShcbiAgICAgICAgICAnMjAwbXMgZWFzZS1pbicsXG4gICAgICAgICAgc3R5bGUoe1xuICAgICAgICAgICAgb3BhY2l0eTogMCxcbiAgICAgICAgICAgIHdpZHRoOiAwLFxuICAgICAgICAgIH0pXG4gICAgICAgICksXG4gICAgICBdKSxcbiAgICAgIHRyYW5zaXRpb24oJ3ZvaWQgPT4gb3Blbi1tb2Rlcm4nLCBbXG4gICAgICAgIHN0eWxlKHtcbiAgICAgICAgICBvcGFjaXR5OiAwLFxuICAgICAgICB9KSxcbiAgICAgICAgYW5pbWF0ZShcbiAgICAgICAgICAnMjAwbXMgZWFzZS1pbicsXG4gICAgICAgICAgc3R5bGUoe1xuICAgICAgICAgICAgb3BhY2l0eTogMSxcbiAgICAgICAgICB9KVxuICAgICAgICApLFxuICAgICAgXSksXG4gICAgICB0cmFuc2l0aW9uKCdvcGVuLW1vZGVybiA9PiB2b2lkJywgW1xuICAgICAgICBhbmltYXRlKFxuICAgICAgICAgICcyMDBtcyBlYXNlLWluJyxcbiAgICAgICAgICBzdHlsZSh7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLFxuICAgICAgICAgIH0pXG4gICAgICAgICksXG4gICAgICBdKSxcbiAgICBdKSxcbiAgICB0cmlnZ2VyKCdwaG9uZUlucHV0QW5pbWF0aW9uJywgW1xuICAgICAgdHJhbnNpdGlvbigndm9pZCA9PiBvcGVuJywgW1xuICAgICAgICBzdHlsZSh7XG4gICAgICAgICAgb3BhY2l0eTogMCxcbiAgICAgICAgfSksXG4gICAgICAgIGFuaW1hdGUoXG4gICAgICAgICAgJzIwMG1zIGVhc2UtaW4nLFxuICAgICAgICAgIHN0eWxlKHtcbiAgICAgICAgICAgIG9wYWNpdHk6IDEsXG4gICAgICAgICAgfSlcbiAgICAgICAgKSxcbiAgICAgIF0pLFxuICAgICAgdHJhbnNpdGlvbignb3BlbiA9PiB2b2lkJywgW1xuICAgICAgICBhbmltYXRlKFxuICAgICAgICAgICcyMDBtcyBlYXNlLWluJyxcbiAgICAgICAgICBzdHlsZSh7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLFxuICAgICAgICAgIH0pXG4gICAgICAgICksXG4gICAgICBdKSxcbiAgICBdKSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5UGhvbmVGaWVsZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSwgT25Jbml0IHtcbiAgLyoqXG4gICAqIFdoZXRoZXIgcGhvbmUgbnVtYmVyIGV4dGVuc2lvbnMgYXJlIGFsbG93ZWQuXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgYWxsb3dFeHRlbnNpb25zKHZhbHVlOiBib29sZWFuIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy4jX2FsbG93RXh0ZW5zaW9ucyA9IHZhbHVlICE9PSBmYWxzZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgYWxsb3dFeHRlbnNpb25zKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLiNfYWxsb3dFeHRlbnNpb25zO1xuICB9XG5cbiAgI19hbGxvd0V4dGVuc2lvbnMgPSB0cnVlO1xuXG4gIC8qKlxuICAgKiBUaGVcbiAgICogW0ludGVybmF0aW9uYWwgT3JnYW5pemF0aW9uIGZvciBTdGFuZGFyZGl6YXRpb24gQWxwaGEgMl0oaHR0cHM6Ly93d3cubmF0aW9uc29ubGluZS5vcmcvb25ld29ybGQvY291bnRyeV9jb2RlX2xpc3QuaHRtKVxuICAgKiBjb3VudHJ5IGNvZGUgZm9yIHRoZSBkZWZhdWx0IGNvdW50cnkuIFRoZSBjb3VudHJ5IHNlbGVjdG9yIGJ1dHRvbiBkaXNwbGF5cyBhIGZsYWdcbiAgICogaWNvbiBmb3IgdGhpcyBkZWZhdWx0IGNvdW50cnkgdW50aWwgdXNlcnMgc2VsZWN0IGEgZGlmZmVyZW50IGNvdW50cnkuXG4gICAqIEBkZWZhdWx0IFwidXNcIlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBkZWZhdWx0Q291bnRyeSh2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkKSB7XG4gICAgaWYgKHZhbHVlICYmIHZhbHVlICE9PSB0aGlzLiNfZGVmYXVsdENvdW50cnkpIHtcbiAgICAgIHRoaXMuI19kZWZhdWx0Q291bnRyeSA9IHZhbHVlLnRvTG93ZXJDYXNlKCk7XG5cbiAgICAgIHRoaXMuI2RlZmF1bHRDb3VudHJ5RGF0YSA9IHRoaXMuY291bnRyaWVzLmZpbmQoXG4gICAgICAgIChjb3VudHJ5KSA9PiBjb3VudHJ5LmlzbzIgPT09IHRoaXMuI19kZWZhdWx0Q291bnRyeVxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0IGRlZmF1bHRDb3VudHJ5KCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuI19kZWZhdWx0Q291bnRyeTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgZm9ybWF0IGZvciB2YWxpZGF0ZWQgcGhvbmUgbnVtYmVycy5cbiAgICogT3B0aW9ucyBpbmNsdWRlOiBgXCJkZWZhdWx0XCJgLCBgXCJpbnRlcm5hdGlvbmFsXCJgLCBhbmQgYFwibmF0aW9uYWxcImAuXG4gICAqIEBkZWZhdWx0IFwiZGVmYXVsdFwiXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgZ2V0IHJldHVybkZvcm1hdCgpOiBTa3lQaG9uZUZpZWxkTnVtYmVyUmV0dXJuRm9ybWF0IHtcbiAgICByZXR1cm4gdGhpcy4jX3JldHVybkZvcm1hdDtcbiAgfVxuXG4gIHB1YmxpYyBzZXQgcmV0dXJuRm9ybWF0KHZhbHVlOiBTa3lQaG9uZUZpZWxkTnVtYmVyUmV0dXJuRm9ybWF0IHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy4jX3JldHVybkZvcm1hdCA9IHZhbHVlIHx8ICdkZWZhdWx0JztcbiAgfVxuXG4gICNfcmV0dXJuRm9ybWF0OiBTa3lQaG9uZUZpZWxkTnVtYmVyUmV0dXJuRm9ybWF0ID0gJ2RlZmF1bHQnO1xuXG4gIC8qKlxuICAgKiBUaGUgW0ludGVybmF0aW9uYWwgT3JnYW5pemF0aW9uIGZvciBTdGFuZGFyZGl6YXRpb24gQWxwaGEgMl0oaHR0cHM6Ly93d3cubmF0aW9uc29ubGluZS5vcmcvb25ld29ybGQvY291bnRyeV9jb2RlX2xpc3QuaHRtKVxuICAgKiBjb3VudHJ5IGNvZGVzIGZvciB0aGUgY291bnRyaWVzIHRoYXQgdXNlcnMgY2FuIHNlbGVjdC4gQnkgZGVmYXVsdCwgYWxsIGNvdW50cmllcyBhcmUgYXZhaWxhYmxlLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHN1cHBvcnRlZENvdW50cnlJU09zOiBzdHJpbmdbXSB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogRW1pdHMgYSBgU2t5UGhvbmVGaWVsZENvdW50cnlgIG9iamVjdCB3aGVuIHRoZSBzZWxlY3RlZCBjb3VudHJ5IGluIHRoZSBjb3VudHJ5IHNlYXJjaFxuICAgKiBpbnB1dCBjaGFuZ2VzLlxuICAgKi9cblxuICBAT3V0cHV0KClcbiAgcHVibGljIHNlbGVjdGVkQ291bnRyeUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8U2t5UGhvbmVGaWVsZENvdW50cnk+KCk7XG5cbiAgcHVibGljIGNvdW50cmllczogU2t5UGhvbmVGaWVsZENvdW50cnlbXTtcblxuICBwdWJsaWMgY291bnRyeVNlbGVjdERpc2FibGVkID0gZmFsc2U7XG5cbiAgcHVibGljIGNvdW50cnlTZWFyY2hTaG93biA9IGZhbHNlO1xuXG4gIHB1YmxpYyBwaG9uZUlucHV0U2hvd24gPSB0cnVlO1xuXG4gIHB1YmxpYyBjb3VudHJ5U2VhcmNoRm9ybTogRm9ybUdyb3VwPHtcbiAgICBjb3VudHJ5U2VhcmNoOiBGb3JtQ29udHJvbDxTa3lDb3VudHJ5RmllbGRDb3VudHJ5IHwgdW5kZWZpbmVkPjtcbiAgfT47XG5cbiAgLyoqXG4gICAqIFRoZSBjdXJyZW50bHkgc2VsZWN0ZWQgY291bnRyeSB0byB2YWxpZGF0ZSBhZ2FpbnN0LlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBzZWxlY3RlZENvdW50cnkobmV3Q291bnRyeTogU2t5UGhvbmVGaWVsZENvdW50cnkgfCB1bmRlZmluZWQpIHtcbiAgICBpZiAoXG4gICAgICBuZXdDb3VudHJ5ICYmXG4gICAgICAoIXRoaXMuI19zZWxlY3RlZENvdW50cnkgfHxcbiAgICAgICAgdGhpcy4jX3NlbGVjdGVkQ291bnRyeS5pc28yICE9PSBuZXdDb3VudHJ5LmlzbzIpXG4gICAgKSB7XG4gICAgICB0aGlzLiNfc2VsZWN0ZWRDb3VudHJ5ID0gdGhpcy5jb3VudHJpZXMuZmluZChcbiAgICAgICAgKGNvdW50cnkpID0+IGNvdW50cnkuaXNvMiA9PT0gbmV3Q291bnRyeS5pc28yXG4gICAgICApO1xuXG4gICAgICBpZiAodGhpcy4jX3NlbGVjdGVkQ291bnRyeSAmJiAhdGhpcy4jX3NlbGVjdGVkQ291bnRyeS5leGFtcGxlTnVtYmVyKSB7XG4gICAgICAgIGNvbnN0IG51bWJlck9iaiA9IHRoaXMuI3Bob25lVXRpbHMuZ2V0RXhhbXBsZU51bWJlckZvclR5cGUoXG4gICAgICAgICAgbmV3Q291bnRyeS5pc28yLFxuICAgICAgICAgIFBob25lTnVtYmVyVHlwZS5GSVhFRF9MSU5FXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuI19zZWxlY3RlZENvdW50cnkuZXhhbXBsZU51bWJlciA9IHRoaXMuI3Bob25lVXRpbHMuZm9ybWF0KFxuICAgICAgICAgIG51bWJlck9iaixcbiAgICAgICAgICBQaG9uZU51bWJlckZvcm1hdC5OQVRJT05BTFxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICB0aGlzLnNlbGVjdGVkQ291bnRyeUNoYW5nZS5lbWl0KHRoaXMuI19zZWxlY3RlZENvdW50cnkpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXQgc2VsZWN0ZWRDb3VudHJ5KCk6IFNreVBob25lRmllbGRDb3VudHJ5IHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy4jX3NlbGVjdGVkQ291bnRyeTtcbiAgfVxuXG4gIEBWaWV3Q2hpbGQoJ2lucHV0VGVtcGxhdGVSZWYnLCB7XG4gICAgcmVhZDogVGVtcGxhdGVSZWYsXG4gICAgc3RhdGljOiB0cnVlLFxuICB9KVxuICBwdWJsaWMgaW5wdXRUZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8dW5rbm93bj4gfCB1bmRlZmluZWQ7XG5cbiAgQFZpZXdDaGlsZCgnY291bnRyeUJ0blRlbXBsYXRlUmVmJywge1xuICAgIHJlYWQ6IFRlbXBsYXRlUmVmLFxuICAgIHN0YXRpYzogdHJ1ZSxcbiAgfSlcbiAgcHVibGljIGNvdW50cnlCdG5UZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8dW5rbm93bj4gfCB1bmRlZmluZWQ7XG5cbiAgQFZpZXdDaGlsZCgnYnV0dG9uc0luc2V0VGVtcGxhdGVSZWYnLCB7XG4gICAgcmVhZDogVGVtcGxhdGVSZWYsXG4gICAgc3RhdGljOiB0cnVlLFxuICB9KVxuICBwdWJsaWMgYnV0dG9uc0luc2V0VGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPHVua25vd24+IHwgdW5kZWZpbmVkO1xuXG4gICNkZWZhdWx0Q291bnRyeURhdGE6IFNreVBob25lRmllbGRDb3VudHJ5IHwgdW5kZWZpbmVkO1xuXG4gICNwaG9uZUlucHV0QW5pbWF0aW9uVHJpZ2dlcmVkID0gZmFsc2U7XG5cbiAgI3Bob25lVXRpbHMgPSBQaG9uZU51bWJlclV0aWwuZ2V0SW5zdGFuY2UoKTtcblxuICAjbG9uZ2VzdERpYWxDb2RlTGVuZ3RoID0gMDtcblxuICAjX2RlZmF1bHRDb3VudHJ5OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgI19zZWxlY3RlZENvdW50cnk6IFNreVBob25lRmllbGRDb3VudHJ5IHwgdW5kZWZpbmVkO1xuXG4gICNjb3VudHJ5U2VhcmNoRm9ybUNvbnRyb2w6IEZvcm1Db250cm9sPFNreUNvdW50cnlGaWVsZENvdW50cnkgfCB1bmRlZmluZWQ+ID1cbiAgICBuZXcgRm9ybUNvbnRyb2woKTtcblxuICAjZm9ybUJ1aWxkZXI6IEZvcm1CdWlsZGVyO1xuICAjYWRhcHRlclNlcnZpY2U6IFNreVBob25lRmllbGRBZGFwdGVyU2VydmljZTtcbiAgI2NoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBmb3JtQnVpbGRlcjogRm9ybUJ1aWxkZXIsXG4gICAgYWRhcHRlclNlcnZpY2U6IFNreVBob25lRmllbGRBZGFwdGVyU2VydmljZSxcbiAgICBjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQE9wdGlvbmFsKCkgcHVibGljIHRoZW1lU3ZjPzogU2t5VGhlbWVTZXJ2aWNlLFxuICAgIEBPcHRpb25hbCgpIEBTa2lwU2VsZigpIHB1YmxpYyBpbnB1dEJveEhvc3RTdmM/OiBTa3lJbnB1dEJveEhvc3RTZXJ2aWNlXG4gICkge1xuICAgIHRoaXMuI2Zvcm1CdWlsZGVyID0gZm9ybUJ1aWxkZXI7XG4gICAgdGhpcy4jYWRhcHRlclNlcnZpY2UgPSBhZGFwdGVyU2VydmljZTtcbiAgICB0aGlzLiNjaGFuZ2VEZXRlY3RvciA9IGNoYW5nZURldGVjdG9yO1xuICAgIC8qKlxuICAgICAqIFRoZSBqc29uIGZ1bmN0aW9ucyBoZXJlIGVuc3VyZXMgdGhhdCB3ZSBnZXQgYSBjb3B5IG9mIHRoZSBhcnJheSBhbmQgbm90IHRoZSBnbG9iYWwgb3JpZ2luYWwuXG4gICAgICogVGhpcyBlbnN1cmVzIHRoYXQgbXVsdGlwbGUgaW5zdGFuY2VzIG9mIHRoZSBjb21wb25lbnQgZG9uJ3Qgb3ZlcndyaXRlIHRoZSBvcmlnaW5hbCBkYXRhLlxuICAgICAqXG4gICAgICogV2UgbXVzdCB0eXBlIHRoZSB3aW5kb3cgb2JqZWN0IGFzIGFueSBoZXJlIGFzIHRoZSBpbnRsLXRlbC1pbnB1dCBsaWJyYXJ5IGFkZHMgaXRzIG9iamVjdFxuICAgICAqIHRvIHRoZSBtYWluIHdpbmRvdyBvYmplY3QuXG4gICAgICovXG4gICAgdGhpcy5jb3VudHJpZXMgPSBKU09OLnBhcnNlKFxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICAgIEpTT04uc3RyaW5naWZ5KCh3aW5kb3cgYXMgYW55KS5pbnRsVGVsSW5wdXRHbG9iYWxzLmdldENvdW50cnlEYXRhKCkpXG4gICAgKTtcbiAgICBmb3IgKGNvbnN0IGNvdW50cnkgb2YgdGhpcy5jb3VudHJpZXMpIHtcbiAgICAgIGNvdW50cnkuZGlhbENvZGUgPSAnKycgKyBjb3VudHJ5LmRpYWxDb2RlO1xuXG4gICAgICBpZiAoY291bnRyeS5kaWFsQ29kZS5sZW5ndGggPiB0aGlzLiNsb25nZXN0RGlhbENvZGVMZW5ndGgpIHtcbiAgICAgICAgdGhpcy4jbG9uZ2VzdERpYWxDb2RlTGVuZ3RoID0gY291bnRyeS5kaWFsQ29kZS5sZW5ndGg7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5jb3VudHJ5U2VhcmNoRm9ybSA9IHRoaXMuI2Zvcm1CdWlsZGVyLmdyb3VwKHtcbiAgICAgIGNvdW50cnlTZWFyY2g6IHRoaXMuI2NvdW50cnlTZWFyY2hGb3JtQ29udHJvbCxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAvLyBUaGUgdGltZW91dCBoZXJlIGlzIG5lZWRlZCB0byBhdm9pZCBhIGNoYW5nZSBiZWZvcmUgY2hlY2tlZCBlcnJvciB3aGVuIGEgdXNlciBzcGVjaWZpZXNcbiAgICAvLyBhIHNlbGVjdGVkIGNvdW50cnkgb24gaW5pdGlhbGl6YXRpb24gb2YgdGhlIGNvbXBvbmVudC5cbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGlmICh0aGlzLmlucHV0Qm94SG9zdFN2YyAmJiB0aGlzLmlucHV0VGVtcGxhdGVSZWYpIHtcbiAgICAgICAgdGhpcy5pbnB1dEJveEhvc3RTdmMucG9wdWxhdGUoe1xuICAgICAgICAgIGlucHV0VGVtcGxhdGU6IHRoaXMuaW5wdXRUZW1wbGF0ZVJlZixcbiAgICAgICAgICBidXR0b25zSW5zZXRUZW1wbGF0ZTogdGhpcy5idXR0b25zSW5zZXRUZW1wbGF0ZVJlZixcbiAgICAgICAgICBidXR0b25zTGVmdFRlbXBsYXRlOiB0aGlzLmNvdW50cnlCdG5UZW1wbGF0ZVJlZixcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIGlmICghdGhpcy5kZWZhdWx0Q291bnRyeSkge1xuICAgICAgICB0aGlzLmRlZmF1bHRDb3VudHJ5ID0gJ3VzJztcbiAgICAgIH1cblxuICAgICAgaWYgKCF0aGlzLnNlbGVjdGVkQ291bnRyeSkge1xuICAgICAgICB0aGlzLnNlbGVjdGVkQ291bnRyeSA9IHRoaXMuI2RlZmF1bHRDb3VudHJ5RGF0YTtcbiAgICAgIH1cbiAgICAgIHRoaXMuI2NoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICAgIH0sIDApO1xuXG4gICAgdGhpcy4jY291bnRyeVNlYXJjaEZvcm1Db250cm9sLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoXG4gICAgICAobmV3VmFsdWU/OiBTa3lDb3VudHJ5RmllbGRDb3VudHJ5KSA9PiB7XG4gICAgICAgIGlmIChuZXdWYWx1ZT8uaXNvMiAhPT0gdGhpcy5zZWxlY3RlZENvdW50cnk/LmlzbzIpIHtcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkQ291bnRyeSA9IG5ld1ZhbHVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdGVkQ291bnRyeUNoYW5nZS5jb21wbGV0ZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIGNvdW50cnkgdG8gdmFsaWRhdGUgYWdhaW5zdCBiYXNlZCBvbiB0aGUgY291bnR5J3MgaXNvMiBjb2RlLlxuICAgKiBAcGFyYW0gY291bnRyeUNvZGUgVGhlIEludGVybmF0aW9uYWwgT3JnYW5pemF0aW9uIGZvciBTdGFuZGFyZGl6YXRpb24ncyB0d28tbGV0dGVyIGNvZGVcbiAgICogZm9yIHRoZSBkZWZhdWx0IGNvdW50cnkuXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcHVibGljIG9uQ291bnRyeVNlbGVjdGVkKG5ld0NvdW50cnk6IFNreUNvdW50cnlGaWVsZENvdW50cnkpOiB2b2lkIHtcbiAgICBpZiAobmV3Q291bnRyeSkge1xuICAgICAgdGhpcy5zZWxlY3RlZENvdW50cnkgPSB0aGlzLmNvdW50cmllcy5maW5kKFxuICAgICAgICAoY291bnRyeUluZm8pID0+IGNvdW50cnlJbmZvLmlzbzIgPT09IG5ld0NvdW50cnkuaXNvMlxuICAgICAgKTtcbiAgICAgIHRoaXMudG9nZ2xlQ291bnRyeVNlYXJjaChmYWxzZSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHRvZ2dsZUNvdW50cnlTZWFyY2goc2hvd1NlYXJjaDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuI3Bob25lSW5wdXRBbmltYXRpb25UcmlnZ2VyZWQgPSB0cnVlO1xuXG4gICAgaWYgKHNob3dTZWFyY2gpIHtcbiAgICAgIHRoaXMucGhvbmVJbnB1dFNob3duID0gZmFsc2U7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY291bnRyeVNlYXJjaFNob3duID0gZmFsc2U7XG5cbiAgICAgIHRoaXMuI2NvdW50cnlTZWFyY2hGb3JtQ29udHJvbC5zZXRWYWx1ZSh1bmRlZmluZWQpO1xuICAgIH1cblxuICAgIHRoaXMuI2NoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcHVibGljIGNvdW50cnlTZWFyY2hBbmltYXRpb25FbmQoZTogQW5pbWF0aW9uRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuY291bnRyeVNlYXJjaFNob3duKSB7XG4gICAgICB0aGlzLnBob25lSW5wdXRTaG93biA9IHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuI2FkYXB0ZXJTZXJ2aWNlLmZvY3VzQ291bnRyeVNlYXJjaEVsZW1lbnQoZS5lbGVtZW50KTtcbiAgICB9XG5cbiAgICB0aGlzLiNjaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHB1YmxpYyBwaG9uZUlucHV0QW5pbWF0aW9uRW5kKGU6IEFuaW1hdGlvbkV2ZW50KTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnBob25lSW5wdXRTaG93bikge1xuICAgICAgdGhpcy5jb3VudHJ5U2VhcmNoU2hvd24gPSB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAodGhpcy4jcGhvbmVJbnB1dEFuaW1hdGlvblRyaWdnZXJlZCkge1xuICAgICAgICB0aGlzLiNhZGFwdGVyU2VydmljZS5mb2N1c1Bob25lSW5wdXQoZS5lbGVtZW50KTtcbiAgICAgICAgdGhpcy4jcGhvbmVJbnB1dEFuaW1hdGlvblRyaWdnZXJlZCA9IGZhbHNlO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuI2NoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcHVibGljIHNldENvdW50cnlCeURpYWxDb2RlKHBob25lTnVtYmVyOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBpZiAoIXBob25lTnVtYmVyIHx8ICFwaG9uZU51bWJlci5zdGFydHNXaXRoKCcrJykpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBsZXQgbmV3Q291bnRyeTogU2t5UGhvbmVGaWVsZENvdW50cnkgfCB1bmRlZmluZWQ7XG5cbiAgICBmb3IgKGxldCBpID0gMTsgaSA8IHRoaXMuI2xvbmdlc3REaWFsQ29kZUxlbmd0aCArIDE7IGkrKykge1xuICAgICAgY29uc3QgZGlhbENvZGUgPSBwaG9uZU51bWJlci5zdWJzdHJpbmcoMCwgaSk7XG5cbiAgICAgIGlmICh0aGlzLiNkZWZhdWx0Q291bnRyeURhdGE/LmRpYWxDb2RlID09PSBkaWFsQ29kZSkge1xuICAgICAgICBuZXdDb3VudHJ5ID0gdGhpcy4jZGVmYXVsdENvdW50cnlEYXRhO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbGV0IGZvdW5kQ291bnRyeSA9IHRoaXMuY291bnRyaWVzLmZpbmQoXG4gICAgICAgICAgKGNvdW50cnkpID0+IGNvdW50cnkuZGlhbENvZGUgPT09IGRpYWxDb2RlICYmIGNvdW50cnkucHJpb3JpdHkgPT09IDBcbiAgICAgICAgKTtcblxuICAgICAgICBpZiAoZm91bmRDb3VudHJ5KSB7XG4gICAgICAgICAgLy8gRW5zdXJlIHRoYXQgdGhlIGNvdW50cnkgdGhhdCB3YXMgZm91bmQgaXMgb25lIG9mIHRoZSBzdXBwb3J0ZWQgY291bnRyaWVzXG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgdGhpcy5zdXBwb3J0ZWRDb3VudHJ5SVNPcyAmJlxuICAgICAgICAgICAgdGhpcy5zdXBwb3J0ZWRDb3VudHJ5SVNPcy5maW5kSW5kZXgoXG4gICAgICAgICAgICAgIChpc29Db2RlKSA9PlxuICAgICAgICAgICAgICAgIGlzb0NvZGUudG9VcHBlckNhc2UoKSA9PT0gZm91bmRDb3VudHJ5Py5pc28yLnRvVXBwZXJDYXNlKClcbiAgICAgICAgICAgICkgPCAwXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICBmb3VuZENvdW50cnkgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKGZvdW5kQ291bnRyeSAhPT0gdGhpcy5zZWxlY3RlZENvdW50cnkpIHtcbiAgICAgICAgICAgIG5ld0NvdW50cnkgPSBmb3VuZENvdW50cnk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKG5ld0NvdW50cnkpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRDb3VudHJ5ID0gbmV3Q291bnRyeTtcbiAgICAgIHRoaXMuI2NoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwiIWlucHV0Qm94SG9zdFN2Y1wiPlxuICA8ZGl2IGNsYXNzPVwic2t5LWlucHV0LWdyb3VwIHNreS1waG9uZS1maWVsZFwiIFtAYmxvY2tBbmltYXRpb25PbkxvYWRdPlxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb3VudHJ5QnRuVGVtcGxhdGVSZWZcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaW5wdXRUZW1wbGF0ZVJlZlwiPjwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJidXR0b25zSW5zZXRUZW1wbGF0ZVJlZlwiPjwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cbjwvbmctY29udGFpbmVyPlxuXG48bmctdGVtcGxhdGUgI2NvdW50cnlCdG5UZW1wbGF0ZVJlZj5cbiAgPGRpdlxuICAgIGNsYXNzPVwic2t5LWlucHV0LWdyb3VwLWJ0biBza3ktcGhvbmUtZmllbGQtY291bnRyeS1idG5cIlxuICAgIFthdHRyLmRhdGEtc2t5LXRlc3QtaXNvMl09XCJzZWxlY3RlZENvdW50cnk/LmlzbzJcIlxuICAgIFthdHRyLmRhdGEtc2t5LXRlc3QtbmFtZV09XCJzZWxlY3RlZENvdW50cnk/Lm5hbWVcIlxuICA+XG4gICAgPGJ1dHRvblxuICAgICAgYXJpYS1saXZlPVwicG9saXRlXCJcbiAgICAgIGNsYXNzPVwic2t5LWJ0biBza3ktYnRuLWRlZmF1bHRcIlxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICBbYXR0ci50aXRsZV09XCJcbiAgICAgICAgKCdza3l1eF9waG9uZV9maWVsZF9jb3VudHJ5X3NlbGVjdF9sYWJlbCcgfCBza3lMaWJSZXNvdXJjZXMpICtcbiAgICAgICAgJyAnICtcbiAgICAgICAgKCdza3l1eF9waG9uZV9maWVsZF9jb3VudHJ5X3NlbGVjdGVkX2xhYmVsJ1xuICAgICAgICAgIHwgc2t5TGliUmVzb3VyY2VzIDogc2VsZWN0ZWRDb3VudHJ5Py5uYW1lKVxuICAgICAgXCJcbiAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiXG4gICAgICAgICgnc2t5dXhfcGhvbmVfZmllbGRfY291bnRyeV9zZWxlY3RfbGFiZWwnIHwgc2t5TGliUmVzb3VyY2VzKSArXG4gICAgICAgICcgJyArXG4gICAgICAgICgnc2t5dXhfcGhvbmVfZmllbGRfY291bnRyeV9zZWxlY3RlZF9sYWJlbCdcbiAgICAgICAgICB8IHNreUxpYlJlc291cmNlcyA6IHNlbGVjdGVkQ291bnRyeT8ubmFtZSlcbiAgICAgIFwiXG4gICAgICBbZGlzYWJsZWRdPVwiY291bnRyeVNlbGVjdERpc2FibGVkXCJcbiAgICAgIChjbGljayk9XCJ0b2dnbGVDb3VudHJ5U2VhcmNoKHRydWUpXCJcbiAgICA+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwic2t5LXBob25lLWZpZWxkLWZsYWcgaXRpX19mbGFnXCJcbiAgICAgICAgW25nQ2xhc3NdPVwiJ2l0aV9fJyArIHNlbGVjdGVkQ291bnRyeT8uaXNvMlwiXG4gICAgICA+PC9kaXY+XG4gICAgPC9idXR0b24+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNpbnB1dFRlbXBsYXRlUmVmPlxuICA8c3BhblxuICAgICpuZ0lmPVwicGhvbmVJbnB1dFNob3duXCJcbiAgICBjbGFzcz1cInNreS1waG9uZS1maWVsZC1jb250YWluZXJcIlxuICAgIFtAcGhvbmVJbnB1dEFuaW1hdGlvbl09XCJwaG9uZUlucHV0U2hvd24gPyAnb3BlbicgOiAnY2xvc2VkJ1wiXG4gICAgKEBwaG9uZUlucHV0QW5pbWF0aW9uLmRvbmUpPVwicGhvbmVJbnB1dEFuaW1hdGlvbkVuZCgkZXZlbnQpXCJcbiAgPlxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgPC9zcGFuPlxuICA8c3BhblxuICAgICpuZ0lmPVwiY291bnRyeVNlYXJjaFNob3duXCJcbiAgICBjbGFzcz1cInNreS1waG9uZS1maWVsZC1jb250YWluZXJcIlxuICAgIFtAY291bnRyeVNlYXJjaEFuaW1hdGlvbl09XCJcbiAgICAgICdvcGVuJyArXG4gICAgICAoKHRoZW1lU3ZjPy5zZXR0aW5nc0NoYW5nZSB8IGFzeW5jKT8uY3VycmVudFNldHRpbmdzPy50aGVtZT8ubmFtZSA9PT1cbiAgICAgICdtb2Rlcm4nXG4gICAgICAgID8gJy1tb2Rlcm4nXG4gICAgICAgIDogJycpXG4gICAgXCJcbiAgICAoQGNvdW50cnlTZWFyY2hBbmltYXRpb24uZG9uZSk9XCJjb3VudHJ5U2VhcmNoQW5pbWF0aW9uRW5kKCRldmVudClcIlxuICA+XG4gICAgPGRpdiBjbGFzcz1cInNreS1waG9uZS1maWVsZC1jb3VudHJ5LXNlYXJjaFwiIFtmb3JtR3JvdXBdPVwiY291bnRyeVNlYXJjaEZvcm1cIj5cbiAgICAgIDxza3ktY291bnRyeS1maWVsZFxuICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJjb3VudHJ5U2VhcmNoXCJcbiAgICAgICAgW2RlZmF1bHRDb3VudHJ5XT1cImRlZmF1bHRDb3VudHJ5XCJcbiAgICAgICAgW2hpZGVTZWxlY3RlZENvdW50cnlGbGFnXT1cInRydWVcIlxuICAgICAgICBbaW5jbHVkZVBob25lSW5mb109XCJ0cnVlXCJcbiAgICAgICAgW3N1cHBvcnRlZENvdW50cnlJU09zXT1cInN1cHBvcnRlZENvdW50cnlJU09zXCJcbiAgICAgICAgKHNlbGVjdGVkQ291bnRyeUNoYW5nZSk9XCJvbkNvdW50cnlTZWxlY3RlZCgkZXZlbnQpXCJcbiAgICAgID5cbiAgICAgIDwvc2t5LWNvdW50cnktZmllbGQ+XG4gICAgPC9kaXY+XG4gIDwvc3Bhbj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjYnV0dG9uc0luc2V0VGVtcGxhdGVSZWY+XG4gIDxkaXZcbiAgICAqbmdJZj1cImNvdW50cnlTZWFyY2hTaG93blwiXG4gICAgY2xhc3M9XCJza3ktaW5wdXQtZ3JvdXAtYnRuIHNreS1pbnB1dC1ib3gtYnRuLWluc2V0IHNreS1zZWFyY2gtaXRlbS1kaXNtaXNzXCJcbiAgPlxuICAgIDxidXR0b25cbiAgICAgIGNsYXNzPVwic2t5LWJ0biBza3ktcGhvbmUtZmllbGQtc2VhcmNoLWJ0bi1kaXNtaXNzXCJcbiAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgW2F0dHIudGl0bGVdPVwiXG4gICAgICAgICdza3l1eF9waG9uZV9maWVsZF9jb3VudHJ5X3NlYXJjaF9kaXNtaXNzJyB8IHNreUxpYlJlc291cmNlc1xuICAgICAgXCJcbiAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgJ3NreS1idG4tZGVmYXVsdCc6XG4gICAgICAgICAgKHRoZW1lU3ZjPy5zZXR0aW5nc0NoYW5nZSB8IGFzeW5jKT8uY3VycmVudFNldHRpbmdzPy50aGVtZT8ubmFtZSA9PT1cbiAgICAgICAgICAnbW9kZXJuJ1xuICAgICAgfVwiXG4gICAgICAoY2xpY2spPVwidG9nZ2xlQ291bnRyeVNlYXJjaChmYWxzZSlcIlxuICAgID5cbiAgICAgIDxza3ktaWNvbiAqc2t5VGhlbWVJZj1cIidkZWZhdWx0J1wiIGljb249XCJjaGV2cm9uLWNpcmNsZS1sZWZ0XCIgc2l6ZT1cImxnXCI+XG4gICAgICA8L3NreS1pY29uPlxuICAgICAgPHNreS1pY29uXG4gICAgICAgICpza3lUaGVtZUlmPVwiJ21vZGVybidcIlxuICAgICAgICBpY29uPVwiZG91YmxlLWNoZXZyb24tbGVmdFwiXG4gICAgICAgIGljb25UeXBlPVwic2t5dXhcIlxuICAgICAgICBzaXplPVwiMnhcIlxuICAgICAgPlxuICAgICAgPC9za3ktaWNvbj5cbiAgICA8L2J1dHRvbj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
@@ -11,8 +11,8 @@ import { SkyPhoneFieldComponent } from './phone-field.component';
|
|
|
11
11
|
import * as i0 from "@angular/core";
|
|
12
12
|
export class SkyPhoneFieldModule {
|
|
13
13
|
}
|
|
14
|
-
SkyPhoneFieldModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.
|
|
15
|
-
SkyPhoneFieldModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.
|
|
14
|
+
SkyPhoneFieldModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SkyPhoneFieldModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
15
|
+
SkyPhoneFieldModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: SkyPhoneFieldModule, declarations: [SkyPhoneFieldComponent, SkyPhoneFieldInputDirective], imports: [CommonModule,
|
|
16
16
|
FormsModule,
|
|
17
17
|
ReactiveFormsModule,
|
|
18
18
|
SkyCountryFieldModule,
|
|
@@ -20,7 +20,7 @@ SkyPhoneFieldModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", ver
|
|
|
20
20
|
SkyIconModule,
|
|
21
21
|
SkyPhoneFieldResourcesModule,
|
|
22
22
|
SkyThemeModule], exports: [SkyPhoneFieldComponent, SkyPhoneFieldInputDirective] });
|
|
23
|
-
SkyPhoneFieldModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.
|
|
23
|
+
SkyPhoneFieldModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SkyPhoneFieldModule, imports: [CommonModule,
|
|
24
24
|
FormsModule,
|
|
25
25
|
ReactiveFormsModule,
|
|
26
26
|
SkyCountryFieldModule,
|
|
@@ -28,7 +28,7 @@ SkyPhoneFieldModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", ver
|
|
|
28
28
|
SkyIconModule,
|
|
29
29
|
SkyPhoneFieldResourcesModule,
|
|
30
30
|
SkyThemeModule] });
|
|
31
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
31
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SkyPhoneFieldModule, decorators: [{
|
|
32
32
|
type: NgModule,
|
|
33
33
|
args: [{
|
|
34
34
|
declarations: [SkyPhoneFieldComponent, SkyPhoneFieldInputDirective],
|
|
@@ -45,4 +45,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
|
|
|
45
45
|
exports: [SkyPhoneFieldComponent, SkyPhoneFieldInputDirective],
|
|
46
46
|
}]
|
|
47
47
|
}] });
|
|
48
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
48
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGhvbmUtZmllbGQubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3Bob25lLWZpZWxkL3NyYy9saWIvbW9kdWxlcy9waG9uZS1maWVsZC9waG9uZS1maWVsZC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDNUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN0RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRTlDLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBRTFGLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzVFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDOztBQWdCakUsTUFBTSxPQUFPLG1CQUFtQjs7aUhBQW5CLG1CQUFtQjtrSEFBbkIsbUJBQW1CLGlCQWJmLHNCQUFzQixFQUFFLDJCQUEyQixhQUVoRSxZQUFZO1FBQ1osV0FBVztRQUNYLG1CQUFtQjtRQUNuQixxQkFBcUI7UUFDckIsYUFBYTtRQUNiLGFBQWE7UUFDYiw0QkFBNEI7UUFDNUIsY0FBYyxhQUVOLHNCQUFzQixFQUFFLDJCQUEyQjtrSEFFbEQsbUJBQW1CLFlBWDVCLFlBQVk7UUFDWixXQUFXO1FBQ1gsbUJBQW1CO1FBQ25CLHFCQUFxQjtRQUNyQixhQUFhO1FBQ2IsYUFBYTtRQUNiLDRCQUE0QjtRQUM1QixjQUFjOzRGQUlMLG1CQUFtQjtrQkFkL0IsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsQ0FBQyxzQkFBc0IsRUFBRSwyQkFBMkIsQ0FBQztvQkFDbkUsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osV0FBVzt3QkFDWCxtQkFBbUI7d0JBQ25CLHFCQUFxQjt3QkFDckIsYUFBYTt3QkFDYixhQUFhO3dCQUNiLDRCQUE0Qjt3QkFDNUIsY0FBYztxQkFDZjtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsRUFBRSwyQkFBMkIsQ0FBQztpQkFDL0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgU2t5STE4bk1vZHVsZSB9IGZyb20gJ0Bza3l1eC9pMThuJztcbmltcG9ydCB7IFNreUljb25Nb2R1bGUgfSBmcm9tICdAc2t5dXgvaW5kaWNhdG9ycyc7XG5pbXBvcnQgeyBTa3lDb3VudHJ5RmllbGRNb2R1bGUgfSBmcm9tICdAc2t5dXgvbG9va3VwJztcbmltcG9ydCB7IFNreVRoZW1lTW9kdWxlIH0gZnJvbSAnQHNreXV4L3RoZW1lJztcblxuaW1wb3J0IHsgU2t5UGhvbmVGaWVsZFJlc291cmNlc01vZHVsZSB9IGZyb20gJy4uL3NoYXJlZC9za3ktcGhvbmUtZmllbGQtcmVzb3VyY2VzLm1vZHVsZSc7XG5cbmltcG9ydCB7IFNreVBob25lRmllbGRJbnB1dERpcmVjdGl2ZSB9IGZyb20gJy4vcGhvbmUtZmllbGQtaW5wdXQuZGlyZWN0aXZlJztcbmltcG9ydCB7IFNreVBob25lRmllbGRDb21wb25lbnQgfSBmcm9tICcuL3Bob25lLWZpZWxkLmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW1NreVBob25lRmllbGRDb21wb25lbnQsIFNreVBob25lRmllbGRJbnB1dERpcmVjdGl2ZV0sXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBTa3lDb3VudHJ5RmllbGRNb2R1bGUsXG4gICAgU2t5STE4bk1vZHVsZSxcbiAgICBTa3lJY29uTW9kdWxlLFxuICAgIFNreVBob25lRmllbGRSZXNvdXJjZXNNb2R1bGUsXG4gICAgU2t5VGhlbWVNb2R1bGUsXG4gIF0sXG4gIGV4cG9ydHM6IFtTa3lQaG9uZUZpZWxkQ29tcG9uZW50LCBTa3lQaG9uZUZpZWxkSW5wdXREaXJlY3RpdmVdLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lQaG9uZUZpZWxkTW9kdWxlIHt9XG4iXX0=
|
|
@@ -35,16 +35,16 @@ export class SkyPhoneFieldResourcesProvider {
|
|
|
35
35
|
*/
|
|
36
36
|
export class SkyPhoneFieldResourcesModule {
|
|
37
37
|
}
|
|
38
|
-
SkyPhoneFieldResourcesModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.
|
|
39
|
-
SkyPhoneFieldResourcesModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.
|
|
40
|
-
SkyPhoneFieldResourcesModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.
|
|
38
|
+
SkyPhoneFieldResourcesModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SkyPhoneFieldResourcesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
39
|
+
SkyPhoneFieldResourcesModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: SkyPhoneFieldResourcesModule, exports: [SkyI18nModule] });
|
|
40
|
+
SkyPhoneFieldResourcesModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SkyPhoneFieldResourcesModule, providers: [
|
|
41
41
|
{
|
|
42
42
|
provide: SKY_LIB_RESOURCES_PROVIDERS,
|
|
43
43
|
useClass: SkyPhoneFieldResourcesProvider,
|
|
44
44
|
multi: true,
|
|
45
45
|
},
|
|
46
46
|
], imports: [SkyI18nModule] });
|
|
47
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
47
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SkyPhoneFieldResourcesModule, decorators: [{
|
|
48
48
|
type: NgModule,
|
|
49
49
|
args: [{
|
|
50
50
|
exports: [SkyI18nModule],
|
|
@@ -57,4 +57,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
|
|
|
57
57
|
],
|
|
58
58
|
}]
|
|
59
59
|
}] });
|
|
60
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
60
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2t5LXBob25lLWZpZWxkLXJlc291cmNlcy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvcGhvbmUtZmllbGQvc3JjL2xpYi9tb2R1bGVzL3NoYXJlZC9za3ktcGhvbmUtZmllbGQtcmVzb3VyY2VzLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7R0FLRztBQUNILE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUNMLDJCQUEyQixFQUUzQixhQUFhLEVBR2IscUJBQXFCLEdBQ3RCLE1BQU0sYUFBYSxDQUFDOztBQUVyQixNQUFNLFNBQVMsR0FBMEM7SUFDdkQsT0FBTyxFQUFFO1FBQ1AsK0JBQStCLEVBQUUsRUFBRSxPQUFPLEVBQUUsY0FBYyxFQUFFO1FBQzVELHdDQUF3QyxFQUFFO1lBQ3hDLE9BQU8sRUFBRSx3QkFBd0I7U0FDbEM7UUFDRCxzQ0FBc0MsRUFBRTtZQUN0QyxPQUFPLEVBQUUsd0JBQXdCO1NBQ2xDO1FBQ0QsNENBQTRDLEVBQUU7WUFDNUMsT0FBTyxFQUFFLHNCQUFzQjtTQUNoQztRQUNELHNDQUFzQyxFQUFFLEVBQUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFO1FBQ3RFLHdDQUF3QyxFQUFFO1lBQ3hDLE9BQU8sRUFBRSw0QkFBNEI7U0FDdEM7S0FDRjtDQUNGLENBQUM7QUFFRixNQUFNLE9BQU8sOEJBQThCO0lBQ2xDLFNBQVMsQ0FDZCxVQUE0QixFQUM1QixJQUFZO1FBRVosT0FBTyxxQkFBcUIsQ0FBQyxTQUFTLEVBQUUsVUFBVSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNuRSxDQUFDO0NBQ0Y7QUFFRDs7R0FFRztBQVdILE1BQU0sT0FBTyw0QkFBNEI7OzBIQUE1Qiw0QkFBNEI7MkhBQTVCLDRCQUE0QixZQVQ3QixhQUFhOzJIQVNaLDRCQUE0QixhQVI1QjtRQUNUO1lBQ0UsT0FBTyxFQUFFLDJCQUEyQjtZQUNwQyxRQUFRLEVBQUUsOEJBQThCO1lBQ3hDLEtBQUssRUFBRSxJQUFJO1NBQ1o7S0FDRixZQVBTLGFBQWE7NEZBU1osNEJBQTRCO2tCQVZ4QyxRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLGFBQWEsQ0FBQztvQkFDeEIsU0FBUyxFQUFFO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSwyQkFBMkI7NEJBQ3BDLFFBQVEsRUFBRSw4QkFBOEI7NEJBQ3hDLEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBOT1RJQ0U6IERPIE5PVCBNT0RJRlkgVEhJUyBGSUxFIVxuICogVGhlIGNvbnRlbnRzIG9mIHRoaXMgZmlsZSB3ZXJlIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGJ5XG4gKiB0aGUgJ25nIGdlbmVyYXRlIEBza3l1eC9pMThuOmxpYi1yZXNvdXJjZXMtbW9kdWxlIGxpYi9tb2R1bGVzL3NoYXJlZC9za3ktcGhvbmUtZmllbGQnIHNjaGVtYXRpYy5cbiAqIFRvIHVwZGF0ZSB0aGlzIGZpbGUsIHNpbXBseSByZXJ1biB0aGUgY29tbWFuZC5cbiAqL1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIFNLWV9MSUJfUkVTT1VSQ0VTX1BST1ZJREVSUyxcbiAgU2t5QXBwTG9jYWxlSW5mbyxcbiAgU2t5STE4bk1vZHVsZSxcbiAgU2t5TGliUmVzb3VyY2VzLFxuICBTa3lMaWJSZXNvdXJjZXNQcm92aWRlcixcbiAgZ2V0TGliU3RyaW5nRm9yTG9jYWxlLFxufSBmcm9tICdAc2t5dXgvaTE4bic7XG5cbmNvbnN0IFJFU09VUkNFUzogeyBbbG9jYWxlOiBzdHJpbmddOiBTa3lMaWJSZXNvdXJjZXMgfSA9IHtcbiAgJ0VOLVVTJzoge1xuICAgIHNreXV4X3Bob25lX2ZpZWxkX2RlZmF1bHRfbGFiZWw6IHsgbWVzc2FnZTogJ1Bob25lIG51bWJlcicgfSxcbiAgICBza3l1eF9waG9uZV9maWVsZF9jb3VudHJ5X3NlYXJjaF9kaXNtaXNzOiB7XG4gICAgICBtZXNzYWdlOiAnRGlzbWlzcyBjb3VudHJ5IHNlYXJjaCcsXG4gICAgfSxcbiAgICBza3l1eF9waG9uZV9maWVsZF9jb3VudHJ5X3NlYXJjaF9sYWJlbDoge1xuICAgICAgbWVzc2FnZTogJ0Rpc21pc3MgY291bnRyeSBzZWFyY2gnLFxuICAgIH0sXG4gICAgc2t5dXhfcGhvbmVfZmllbGRfY291bnRyeV9zZWFyY2hfcGxhY2Vob2xkZXI6IHtcbiAgICAgIG1lc3NhZ2U6ICdTZWFyY2ggZm9yIGEgY291bnRyeScsXG4gICAgfSxcbiAgICBza3l1eF9waG9uZV9maWVsZF9jb3VudHJ5X3NlbGVjdF9sYWJlbDogeyBtZXNzYWdlOiAnQ2hvb3NlIGNvdW50cnkuJyB9LFxuICAgIHNreXV4X3Bob25lX2ZpZWxkX2NvdW50cnlfc2VsZWN0ZWRfbGFiZWw6IHtcbiAgICAgIG1lc3NhZ2U6ICd7MH0gaXMgY3VycmVudGx5IHNlbGVjdGVkLicsXG4gICAgfSxcbiAgfSxcbn07XG5cbmV4cG9ydCBjbGFzcyBTa3lQaG9uZUZpZWxkUmVzb3VyY2VzUHJvdmlkZXIgaW1wbGVtZW50cyBTa3lMaWJSZXNvdXJjZXNQcm92aWRlciB7XG4gIHB1YmxpYyBnZXRTdHJpbmcoXG4gICAgbG9jYWxlSW5mbzogU2t5QXBwTG9jYWxlSW5mbyxcbiAgICBuYW1lOiBzdHJpbmdcbiAgKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gZ2V0TGliU3RyaW5nRm9yTG9jYWxlKFJFU09VUkNFUywgbG9jYWxlSW5mby5sb2NhbGUsIG5hbWUpO1xuICB9XG59XG5cbi8qKlxuICogSW1wb3J0IGludG8gYW55IGNvbXBvbmVudCBsaWJyYXJ5IG1vZHVsZSB0aGF0IG5lZWRzIHRvIHVzZSByZXNvdXJjZSBzdHJpbmdzLlxuICovXG5ATmdNb2R1bGUoe1xuICBleHBvcnRzOiBbU2t5STE4bk1vZHVsZV0sXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IFNLWV9MSUJfUkVTT1VSQ0VTX1BST1ZJREVSUyxcbiAgICAgIHVzZUNsYXNzOiBTa3lQaG9uZUZpZWxkUmVzb3VyY2VzUHJvdmlkZXIsXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lQaG9uZUZpZWxkUmVzb3VyY2VzTW9kdWxlIHt9XG4iXX0=
|
|
@@ -7,16 +7,16 @@ import * as i0 from "@angular/core";
|
|
|
7
7
|
*/
|
|
8
8
|
export class SkyPhoneFieldTestingModule {
|
|
9
9
|
}
|
|
10
|
-
SkyPhoneFieldTestingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.
|
|
11
|
-
SkyPhoneFieldTestingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.
|
|
10
|
+
SkyPhoneFieldTestingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SkyPhoneFieldTestingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
11
|
+
SkyPhoneFieldTestingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: SkyPhoneFieldTestingModule, exports: [SkyPhoneFieldModule,
|
|
12
12
|
// The noop animations module needs to be loaded last to avoid
|
|
13
13
|
// subsequent modules adding animations and overriding this.
|
|
14
14
|
NoopAnimationsModule] });
|
|
15
|
-
SkyPhoneFieldTestingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.
|
|
15
|
+
SkyPhoneFieldTestingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SkyPhoneFieldTestingModule, imports: [SkyPhoneFieldModule,
|
|
16
16
|
// The noop animations module needs to be loaded last to avoid
|
|
17
17
|
// subsequent modules adding animations and overriding this.
|
|
18
18
|
NoopAnimationsModule] });
|
|
19
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
19
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SkyPhoneFieldTestingModule, decorators: [{
|
|
20
20
|
type: NgModule,
|
|
21
21
|
args: [{
|
|
22
22
|
exports: [
|
|
@@ -27,4 +27,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
|
|
|
27
27
|
],
|
|
28
28
|
}]
|
|
29
29
|
}] });
|
|
30
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGhvbmUtZmllbGQtdGVzdGluZy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvcGhvbmUtZmllbGQvdGVzdGluZy9zcmMvcGhvbmVmaWVsZC9waG9uZS1maWVsZC10ZXN0aW5nLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDOztBQUV6RDs7R0FFRztBQVVILE1BQU0sT0FBTywwQkFBMEI7O3dIQUExQiwwQkFBMEI7eUhBQTFCLDBCQUEwQixZQVBuQyxtQkFBbUI7UUFFbkIsOERBQThEO1FBQzlELDREQUE0RDtRQUM1RCxvQkFBb0I7eUhBR1gsMEJBQTBCLFlBUG5DLG1CQUFtQjtRQUVuQiw4REFBOEQ7UUFDOUQsNERBQTREO1FBQzVELG9CQUFvQjs0RkFHWCwwQkFBMEI7a0JBVHRDLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFO3dCQUNQLG1CQUFtQjt3QkFFbkIsOERBQThEO3dCQUM5RCw0REFBNEQ7d0JBQzVELG9CQUFvQjtxQkFDckI7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTm9vcEFuaW1hdGlvbnNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyL2FuaW1hdGlvbnMnO1xuaW1wb3J0IHsgU2t5UGhvbmVGaWVsZE1vZHVsZSB9IGZyb20gJ0Bza3l1eC9waG9uZS1maWVsZCc7XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbkBOZ01vZHVsZSh7XG4gIGV4cG9ydHM6IFtcbiAgICBTa3lQaG9uZUZpZWxkTW9kdWxlLFxuXG4gICAgLy8gVGhlIG5vb3AgYW5pbWF0aW9ucyBtb2R1bGUgbmVlZHMgdG8gYmUgbG9hZGVkIGxhc3QgdG8gYXZvaWRcbiAgICAvLyBzdWJzZXF1ZW50IG1vZHVsZXMgYWRkaW5nIGFuaW1hdGlvbnMgYW5kIG92ZXJyaWRpbmcgdGhpcy5cbiAgICBOb29wQW5pbWF0aW9uc01vZHVsZSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5UGhvbmVGaWVsZFRlc3RpbmdNb2R1bGUge31cbiJdfQ==
|
|
@@ -13,16 +13,16 @@ import { SkyCountryFieldFixture } from '@skyux/lookup/testing';
|
|
|
13
13
|
*/
|
|
14
14
|
class SkyPhoneFieldTestingModule {
|
|
15
15
|
}
|
|
16
|
-
SkyPhoneFieldTestingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.
|
|
17
|
-
SkyPhoneFieldTestingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.
|
|
16
|
+
SkyPhoneFieldTestingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SkyPhoneFieldTestingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
17
|
+
SkyPhoneFieldTestingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: SkyPhoneFieldTestingModule, exports: [SkyPhoneFieldModule,
|
|
18
18
|
// The noop animations module needs to be loaded last to avoid
|
|
19
19
|
// subsequent modules adding animations and overriding this.
|
|
20
20
|
NoopAnimationsModule] });
|
|
21
|
-
SkyPhoneFieldTestingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.
|
|
21
|
+
SkyPhoneFieldTestingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SkyPhoneFieldTestingModule, imports: [SkyPhoneFieldModule,
|
|
22
22
|
// The noop animations module needs to be loaded last to avoid
|
|
23
23
|
// subsequent modules adding animations and overriding this.
|
|
24
24
|
NoopAnimationsModule] });
|
|
25
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
25
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SkyPhoneFieldTestingModule, decorators: [{
|
|
26
26
|
type: NgModule,
|
|
27
27
|
args: [{
|
|
28
28
|
exports: [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skyux-phone-field-testing.mjs","sources":["../../../../../libs/components/phone-field/testing/src/phonefield/phone-field-testing.module.ts","../../../../../libs/components/phone-field/testing/src/phonefield/phone-field-fixture.ts","../../../../../libs/components/phone-field/testing/src/skyux-phone-field-testing.ts"],"sourcesContent":["import { NgModule } from '@angular/core';\nimport { NoopAnimationsModule } from '@angular/platform-browser/animations';\nimport { SkyPhoneFieldModule } from '@skyux/phone-field';\n\n/**\n * @internal\n */\n@NgModule({\n exports: [\n SkyPhoneFieldModule,\n\n // The noop animations module needs to be loaded last to avoid\n // subsequent modules adding animations and overriding this.\n NoopAnimationsModule,\n ],\n})\nexport class SkyPhoneFieldTestingModule {}\n","import { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { DebugElement } from '@angular/core';\nimport { ComponentFixture } from '@angular/core/testing';\nimport { By } from '@angular/platform-browser';\nimport { SkyAppTestUtility } from '@skyux-sdk/testing';\nimport { SkyCountryFieldFixture } from '@skyux/lookup/testing';\n\n/**\n * Provides information for and interaction with a SKY UX phone field component.\n * By using the fixture API, a test insulates itself against updates to the internals\n * of a component, such as changing its DOM structure.\n * @internal\n */\nexport class SkyPhoneFieldFixture {\n /**\n * The value of the input field for the phone field.\n */\n public get inputText(): string {\n return this.#phoneFieldInput.value;\n }\n\n /**\n * This property is lazy loaded and should be accessed via the #getCountryFixture() function.\n */\n #_countryFixture: SkyCountryFieldFixture | undefined;\n\n #_debugEl: DebugElement;\n\n #fixture: ComponentFixture<unknown>;\n\n #skyTestId: string;\n\n constructor(fixture: ComponentFixture<unknown>, skyTestId: string) {\n this.#fixture = fixture;\n this.#skyTestId = skyTestId;\n this.#_debugEl = SkyAppTestUtility.getDebugElementByTestId(\n fixture,\n skyTestId,\n 'sky-phone-field'\n );\n\n // The country selector needs extra time to initialize.\n // Consumers shouldn't need to work around this so we do an extra detect here\n fixture.detectChanges();\n }\n\n /**\n * Blurs the phone field input and returns a promise that indicates when the action is complete.\n */\n public async blur(): Promise<void> {\n SkyAppTestUtility.fireDomEvent(this.#phoneFieldInput, 'blur');\n this.#fixture.detectChanges();\n return this.#fixture.whenStable();\n }\n\n /**\n * Returns the selected country iso2 code.\n */\n public async getSelectedCountryIso2(): Promise<string | null> {\n // Wait for the country field to initialize.\n await this.#fixture.whenStable();\n return this.#countryFlagButtonContainer.getAttribute('data-sky-test-iso2');\n }\n\n /**\n * Returns the selected country name.\n */\n public async getSelectedCountryName(): Promise<string | null> {\n // Wait for the country field to initialize.\n await this.#fixture.whenStable();\n return this.#countryFlagButtonContainer.getAttribute('data-sky-test-name');\n }\n\n /**\n * Sets the value of the input field for the phone field.\n */\n public async setInputText(inputText: string): Promise<void> {\n const inputEl = this.#phoneFieldInput;\n inputEl.value = inputText;\n\n SkyAppTestUtility.fireDomEvent(inputEl, 'input');\n this.#fixture.detectChanges();\n\n SkyAppTestUtility.fireDomEvent(inputEl, 'change');\n\n this.#fixture.detectChanges();\n return this.#fixture.whenStable();\n }\n\n /**\n * Opens the country selector, performs a search, but makes no selection.\n * @param searchText The name of the country to select.\n * @returns The list of country names matching the search text.\n */\n public async searchCountry(searchText: string): Promise<string[]> {\n await this.#openCountrySelection();\n\n const countryFixture = await this.#getCountryFixture();\n const results = await countryFixture.search(searchText);\n\n await this.#waitForCountrySelection();\n return results;\n }\n\n /**\n * Opens the country selector, performs a search, and selects the first result (if any).\n * @param searchText The name of the country to select.\n */\n public async selectCountry(searchText: string): Promise<void> {\n await this.#openCountrySelection();\n\n const countryFixture = await this.#getCountryFixture();\n await countryFixture.searchAndSelectFirstResult(searchText);\n\n return this.#waitForCountrySelection();\n }\n\n /**\n * Gets a boolean promise indicating if the phone field is disabled.\n */\n public async isDisabled(): Promise<boolean> {\n const disabled = this.#phoneFieldInput.getAttribute('disabled');\n return coerceBooleanProperty(disabled);\n }\n\n /**\n * Gets a boolean promise indicating if the phone field is valid.\n */\n public async isValid(): Promise<boolean> {\n return this.#phoneFieldInput.classList.contains('ng-valid');\n }\n\n get #countryElement(): HTMLInputElement {\n return this.#_debugEl.query(By.css('sky-country-field')).nativeElement;\n }\n\n get #countryFlagButtonContainer(): HTMLInputElement {\n return this.#_debugEl.query(By.css('.sky-phone-field-country-btn'))\n .nativeElement;\n }\n\n get #countryFlagButton(): HTMLInputElement {\n return this.#_debugEl.query(By.css('.sky-phone-field-country-btn .sky-btn'))\n .nativeElement;\n }\n\n get #phoneFieldInput(): HTMLInputElement {\n return this.#_debugEl.query(By.css('input[skyPhoneFieldInput]'))\n .nativeElement;\n }\n\n /**\n * The country-field can take a really long time to initialize. Since we can't perform an await\n * in our constructor, it's safest to do a lazy load of the country field to avoid any race\n * conditions where a test tries to access the sky-country-field element too quickly.\n */\n async #getCountryFixture(): Promise<SkyCountryFieldFixture> {\n if (this.#_countryFixture === undefined) {\n // tag the country field with a sky test id\n const countrySkyTestId = `${this.#skyTestId}-country`;\n this.#setSkyTestId(this.#countryElement, countrySkyTestId);\n\n // initialize the country fixture\n this.#_countryFixture = new SkyCountryFieldFixture(\n this.#fixture,\n countrySkyTestId\n );\n\n this.#fixture.detectChanges();\n await this.#fixture.whenStable();\n }\n\n return this.#_countryFixture;\n }\n\n async #openCountrySelection(): Promise<void> {\n this.#countryFlagButton.click();\n return this.#waitForCountrySelection();\n }\n\n #setSkyTestId(element: HTMLElement, skyTestId: string): void {\n element.setAttribute('data-sky-id', skyTestId);\n }\n\n async #waitForCountrySelection(): Promise<void> {\n // any country selection needs extra time to complete\n this.#fixture.detectChanges();\n await this.#fixture.whenStable();\n\n this.#fixture.detectChanges();\n return this.#fixture.whenStable();\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"skyux-phone-field-testing.mjs","sources":["../../../../../libs/components/phone-field/testing/src/phonefield/phone-field-testing.module.ts","../../../../../libs/components/phone-field/testing/src/phonefield/phone-field-fixture.ts","../../../../../libs/components/phone-field/testing/src/skyux-phone-field-testing.ts"],"sourcesContent":["import { NgModule } from '@angular/core';\nimport { NoopAnimationsModule } from '@angular/platform-browser/animations';\nimport { SkyPhoneFieldModule } from '@skyux/phone-field';\n\n/**\n * @internal\n */\n@NgModule({\n exports: [\n SkyPhoneFieldModule,\n\n // The noop animations module needs to be loaded last to avoid\n // subsequent modules adding animations and overriding this.\n NoopAnimationsModule,\n ],\n})\nexport class SkyPhoneFieldTestingModule {}\n","import { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { DebugElement } from '@angular/core';\nimport { ComponentFixture } from '@angular/core/testing';\nimport { By } from '@angular/platform-browser';\nimport { SkyAppTestUtility } from '@skyux-sdk/testing';\nimport { SkyCountryFieldFixture } from '@skyux/lookup/testing';\n\n/**\n * Provides information for and interaction with a SKY UX phone field component.\n * By using the fixture API, a test insulates itself against updates to the internals\n * of a component, such as changing its DOM structure.\n * @internal\n */\nexport class SkyPhoneFieldFixture {\n /**\n * The value of the input field for the phone field.\n */\n public get inputText(): string {\n return this.#phoneFieldInput.value;\n }\n\n /**\n * This property is lazy loaded and should be accessed via the #getCountryFixture() function.\n */\n #_countryFixture: SkyCountryFieldFixture | undefined;\n\n #_debugEl: DebugElement;\n\n #fixture: ComponentFixture<unknown>;\n\n #skyTestId: string;\n\n constructor(fixture: ComponentFixture<unknown>, skyTestId: string) {\n this.#fixture = fixture;\n this.#skyTestId = skyTestId;\n this.#_debugEl = SkyAppTestUtility.getDebugElementByTestId(\n fixture,\n skyTestId,\n 'sky-phone-field'\n );\n\n // The country selector needs extra time to initialize.\n // Consumers shouldn't need to work around this so we do an extra detect here\n fixture.detectChanges();\n }\n\n /**\n * Blurs the phone field input and returns a promise that indicates when the action is complete.\n */\n public async blur(): Promise<void> {\n SkyAppTestUtility.fireDomEvent(this.#phoneFieldInput, 'blur');\n this.#fixture.detectChanges();\n return this.#fixture.whenStable();\n }\n\n /**\n * Returns the selected country iso2 code.\n */\n public async getSelectedCountryIso2(): Promise<string | null> {\n // Wait for the country field to initialize.\n await this.#fixture.whenStable();\n return this.#countryFlagButtonContainer.getAttribute('data-sky-test-iso2');\n }\n\n /**\n * Returns the selected country name.\n */\n public async getSelectedCountryName(): Promise<string | null> {\n // Wait for the country field to initialize.\n await this.#fixture.whenStable();\n return this.#countryFlagButtonContainer.getAttribute('data-sky-test-name');\n }\n\n /**\n * Sets the value of the input field for the phone field.\n */\n public async setInputText(inputText: string): Promise<void> {\n const inputEl = this.#phoneFieldInput;\n inputEl.value = inputText;\n\n SkyAppTestUtility.fireDomEvent(inputEl, 'input');\n this.#fixture.detectChanges();\n\n SkyAppTestUtility.fireDomEvent(inputEl, 'change');\n\n this.#fixture.detectChanges();\n return this.#fixture.whenStable();\n }\n\n /**\n * Opens the country selector, performs a search, but makes no selection.\n * @param searchText The name of the country to select.\n * @returns The list of country names matching the search text.\n */\n public async searchCountry(searchText: string): Promise<string[]> {\n await this.#openCountrySelection();\n\n const countryFixture = await this.#getCountryFixture();\n const results = await countryFixture.search(searchText);\n\n await this.#waitForCountrySelection();\n return results;\n }\n\n /**\n * Opens the country selector, performs a search, and selects the first result (if any).\n * @param searchText The name of the country to select.\n */\n public async selectCountry(searchText: string): Promise<void> {\n await this.#openCountrySelection();\n\n const countryFixture = await this.#getCountryFixture();\n await countryFixture.searchAndSelectFirstResult(searchText);\n\n return this.#waitForCountrySelection();\n }\n\n /**\n * Gets a boolean promise indicating if the phone field is disabled.\n */\n public async isDisabled(): Promise<boolean> {\n const disabled = this.#phoneFieldInput.getAttribute('disabled');\n return coerceBooleanProperty(disabled);\n }\n\n /**\n * Gets a boolean promise indicating if the phone field is valid.\n */\n public async isValid(): Promise<boolean> {\n return this.#phoneFieldInput.classList.contains('ng-valid');\n }\n\n get #countryElement(): HTMLInputElement {\n return this.#_debugEl.query(By.css('sky-country-field')).nativeElement;\n }\n\n get #countryFlagButtonContainer(): HTMLInputElement {\n return this.#_debugEl.query(By.css('.sky-phone-field-country-btn'))\n .nativeElement;\n }\n\n get #countryFlagButton(): HTMLInputElement {\n return this.#_debugEl.query(By.css('.sky-phone-field-country-btn .sky-btn'))\n .nativeElement;\n }\n\n get #phoneFieldInput(): HTMLInputElement {\n return this.#_debugEl.query(By.css('input[skyPhoneFieldInput]'))\n .nativeElement;\n }\n\n /**\n * The country-field can take a really long time to initialize. Since we can't perform an await\n * in our constructor, it's safest to do a lazy load of the country field to avoid any race\n * conditions where a test tries to access the sky-country-field element too quickly.\n */\n async #getCountryFixture(): Promise<SkyCountryFieldFixture> {\n if (this.#_countryFixture === undefined) {\n // tag the country field with a sky test id\n const countrySkyTestId = `${this.#skyTestId}-country`;\n this.#setSkyTestId(this.#countryElement, countrySkyTestId);\n\n // initialize the country fixture\n this.#_countryFixture = new SkyCountryFieldFixture(\n this.#fixture,\n countrySkyTestId\n );\n\n this.#fixture.detectChanges();\n await this.#fixture.whenStable();\n }\n\n return this.#_countryFixture;\n }\n\n async #openCountrySelection(): Promise<void> {\n this.#countryFlagButton.click();\n return this.#waitForCountrySelection();\n }\n\n #setSkyTestId(element: HTMLElement, skyTestId: string): void {\n element.setAttribute('data-sky-id', skyTestId);\n }\n\n async #waitForCountrySelection(): Promise<void> {\n // any country selection needs extra time to complete\n this.#fixture.detectChanges();\n await this.#fixture.whenStable();\n\n this.#fixture.detectChanges();\n return this.#fixture.whenStable();\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|