@messaia/cdk 17.0.0-rc12 → 17.0.0-rc14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/base/base.module.mjs +8 -8
- package/esm2022/lib/base/components/base.component.mjs +5 -5
- package/esm2022/lib/base/components/dynamic-table-config-dialog.comnponent.mjs +3 -3
- package/esm2022/lib/base/components/generic-form-base.component.mjs +3 -3
- package/esm2022/lib/base/components/generic-form.component.mjs +3 -3
- package/esm2022/lib/base/components/generic-list.component.mjs +3 -3
- package/esm2022/lib/base/components/generic-reactive-form.component.mjs +3 -3
- package/esm2022/lib/base/interceptors/base.interceptor.mjs +3 -3
- package/esm2022/lib/base/interceptors/caching-interceptor.mjs +3 -3
- package/esm2022/lib/base/interceptors/loading.interceptor.mjs +3 -3
- package/esm2022/lib/base/services/file.service.mjs +3 -3
- package/esm2022/lib/base/services/loading-screen.service.mjs +3 -3
- package/esm2022/lib/base/services/print.service.mjs +3 -3
- package/esm2022/lib/chips/chips.module.mjs +4 -4
- package/esm2022/lib/chips/components/chips.component.mjs +5 -5
- package/esm2022/lib/chips/directives/autocomplete-option.directive.mjs +3 -3
- package/esm2022/lib/chips/directives/chip.directive.mjs +3 -3
- package/esm2022/lib/common/common.module.mjs +4 -4
- package/esm2022/lib/common/directives/delayed-hover.directive.mjs +3 -3
- package/esm2022/lib/common/directives/disable-control.directive.mjs +3 -3
- package/esm2022/lib/common/functions/utils.mjs +3 -3
- package/esm2022/lib/common/helpers/app-storage.mjs +3 -3
- package/esm2022/lib/common/helpers/dynamic-builder.mjs +3 -3
- package/esm2022/lib/common/helpers/dynamic-component-compiler.mjs +3 -3
- package/esm2022/lib/common/models/app-setting.mjs +3 -3
- package/esm2022/lib/common/pipes/data-source.pipe.mjs +3 -3
- package/esm2022/lib/common/pipes/enum.pipe.mjs +3 -3
- package/esm2022/lib/common/pipes/file-size.pipe.mjs +3 -3
- package/esm2022/lib/common/pipes/filter.pipe.mjs +3 -3
- package/esm2022/lib/common/pipes/first-letter.mjs +3 -3
- package/esm2022/lib/common/pipes/form-array.pipe.mjs +3 -3
- package/esm2022/lib/common/pipes/form-control.pipe.mjs +3 -3
- package/esm2022/lib/common/pipes/form-group.pipe.mjs +3 -3
- package/esm2022/lib/common/pipes/func.pipe.mjs +3 -3
- package/esm2022/lib/common/pipes/keys.mjs +3 -3
- package/esm2022/lib/common/pipes/month-name.pipe.mjs +3 -3
- package/esm2022/lib/common/pipes/only-number.mjs +3 -3
- package/esm2022/lib/common/pipes/order.pipe.mjs +3 -3
- package/esm2022/lib/common/pipes/placeholder.pipe.mjs +3 -3
- package/esm2022/lib/common/pipes/safe-html.pipe.mjs +3 -3
- package/esm2022/lib/common/pipes/time.pipe.mjs +3 -3
- package/esm2022/lib/common/pipes/titlecase.pipe.mjs +3 -3
- package/esm2022/lib/common/pipes/truncate.pipe.mjs +3 -3
- package/esm2022/lib/common/pipes/values.mjs +3 -3
- package/esm2022/lib/common/services/base.service.mjs +3 -3
- package/esm2022/lib/common/services/enum.service.mjs +3 -3
- package/esm2022/lib/common/services/event-queue.service.mjs +3 -3
- package/esm2022/lib/dialogs/alert-dialog/alert-dialog.component.mjs +3 -3
- package/esm2022/lib/dialogs/confirm-dialog/confirm-dialog.component.mjs +3 -3
- package/esm2022/lib/dialogs/dialog.component.mjs +12 -12
- package/esm2022/lib/dialogs/dialogs.module.mjs +4 -4
- package/esm2022/lib/dialogs/prompt-dialog/prompt-dialog.component.mjs +3 -3
- package/esm2022/lib/dialogs/services/dialog.service.mjs +3 -3
- package/esm2022/lib/file/file-input.component.mjs +3 -3
- package/esm2022/lib/file/file.module.mjs +4 -4
- package/esm2022/lib/form-validators/directives/base-directive.mjs +3 -3
- package/esm2022/lib/form-validators/directives/control-host.directive.mjs +3 -3
- package/esm2022/lib/form-validators/directives/html-control-template.directive.mjs +3 -3
- package/esm2022/lib/form-validators/directives/rx-form.directive.mjs +3 -3
- package/esm2022/lib/form-validators/directives/template-validations/async-validation.directive.mjs +3 -3
- package/esm2022/lib/form-validators/directives/template-validations/base-validator.directive.mjs +3 -3
- package/esm2022/lib/form-validators/directives/template-validations/control-expression-process.mjs +3 -3
- package/esm2022/lib/form-validators/directives/template-validations/file-control.directive.mjs +3 -3
- package/esm2022/lib/form-validators/directives/template-validations/image-file-control.directive.mjs +3 -3
- package/esm2022/lib/form-validators/directives/template-validations/rxformcontrol.directive.mjs +3 -3
- package/esm2022/lib/form-validators/domain/element-processor/decimal.provider.mjs +3 -3
- package/esm2022/lib/form-validators/reactive-form-validators/conditional-change.validator.mjs +2 -2
- package/esm2022/lib/form-validators/services/reactive-form.module.mjs +8 -8
- package/esm2022/lib/form-validators/services/rx-form-builder.mjs +3 -3
- package/esm2022/lib/form-validators/services/typed-form-builder.mjs +3 -3
- package/esm2022/lib/forms/components/datepicker/datepicker-header.component.mjs +3 -3
- package/esm2022/lib/forms/components/generic-form/generic-form.component.mjs +15 -15
- package/esm2022/lib/forms/directives/mat-form-field-editor.directive.mjs +3 -3
- package/esm2022/lib/forms/directives/mat-form-field-readonly.directive.mjs +3 -3
- package/esm2022/lib/forms/directives/vd-generic-form-custom-field.directive.mjs +3 -3
- package/esm2022/lib/forms/forms.module.mjs +4 -4
- package/esm2022/lib/forms/helpers/abstract-mat-form-field.mjs +3 -3
- package/esm2022/lib/forms/helpers/abstract-select-form-field.component.mjs +3 -3
- package/esm2022/lib/forms/helpers/value-accessor-base.mjs +3 -3
- package/esm2022/lib/forms/validators/empty-string-reset.directive.mjs +3 -3
- package/esm2022/lib/forms/validators/equal-validator.directive.mjs +3 -3
- package/esm2022/lib/forms/validators/native-element-injector.directive.mjs +3 -3
- package/esm2022/lib/forms/validators/unique-validator-directive.mjs +3 -3
- package/esm2022/lib/http/http.module.mjs +4 -4
- package/esm2022/lib/layout/dynamic-menu/dynamic-menu.component.mjs +3 -3
- package/esm2022/lib/layout/layout-card-over/layout-card-over.component.mjs +3 -3
- package/esm2022/lib/layout/layout-compact/layout-compact.component.mjs +3 -3
- package/esm2022/lib/layout/layout-footer/layout-footer.component.mjs +3 -3
- package/esm2022/lib/layout/layout-manage-list/layout-manage-list.component.mjs +4 -4
- package/esm2022/lib/layout/layout-manage-list/layout-manage-list.directives.mjs +9 -9
- package/esm2022/lib/layout/layout-nav/layout-nav.component.mjs +3 -3
- package/esm2022/lib/layout/layout-nav-list/layout-nav-list.component.mjs +4 -4
- package/esm2022/lib/layout/layout-nav-list/layout-nav-list.directives.mjs +9 -9
- package/esm2022/lib/layout/layout-toggle.class.mjs +3 -3
- package/esm2022/lib/layout/layout.component.mjs +4 -4
- package/esm2022/lib/layout/layout.directives.mjs +9 -9
- package/esm2022/lib/layout/layout.module.mjs +4 -4
- package/esm2022/lib/layout/list-toolbar/list-toolbar.component.mjs +3 -3
- package/esm2022/lib/layout/navigation-drawer/navigation-drawer.component.mjs +9 -9
- package/esm2022/lib/list/components/list.component.mjs +3 -3
- package/esm2022/lib/list/directives/vd-list-option.directive.mjs +3 -3
- package/esm2022/lib/list/list.module.mjs +4 -4
- package/esm2022/lib/media/directives/media-toggle.directive.mjs +3 -3
- package/esm2022/lib/media/media.module.mjs +4 -4
- package/esm2022/lib/media/services/media.service.mjs +3 -3
- package/esm2022/lib/menu/components/menu.component.mjs +3 -3
- package/esm2022/lib/menu/menu.module.mjs +4 -4
- package/esm2022/lib/menu/resolvers/menu-form-includes.resolve.mjs +3 -3
- package/esm2022/lib/menu/resolvers/menu-item-form-includes.resolve.mjs +3 -3
- package/esm2022/lib/menu/resolvers/menu-list-projection.resolve.mjs +3 -3
- package/esm2022/lib/menu/resolvers/menu-settings.resolve.mjs +3 -3
- package/esm2022/lib/menu/services/menu-items.service.mjs +3 -3
- package/esm2022/lib/menu/services/menu.resolve.mjs +10 -10
- package/esm2022/lib/menu/services/menu.service.mjs +3 -3
- package/esm2022/lib/search/search.module.mjs +4 -4
- package/esm2022/lib/select/components/select.component.mjs +3 -3
- package/esm2022/lib/select/directives/vd-select-option.directive.mjs +3 -3
- package/esm2022/lib/select/directives/vd-select-trigger.directive.mjs +3 -3
- package/esm2022/lib/select/select.module.mjs +4 -4
- package/esm2022/lib/table/components/dynamic-table/dynamic-table.component.mjs +3 -3
- package/esm2022/lib/table/components/filter-clear.component.mjs +3 -3
- package/esm2022/lib/table/components/filter-date.component.mjs +3 -3
- package/esm2022/lib/table/components/filter-input.component.mjs +3 -3
- package/esm2022/lib/table/components/filter-select.component.mjs +7 -7
- package/esm2022/lib/table/directives/data-source-filter.directive.mjs +3 -3
- package/esm2022/lib/table/paginator-intl.mjs +3 -3
- package/esm2022/lib/table/table.module.mjs +4 -4
- package/fesm2022/messaia-cdk.mjs +467 -467
- package/fesm2022/messaia-cdk.mjs.map +1 -1
- package/lib/menu/services/menu.resolve.d.ts +2 -1
- package/package.json +1 -1
|
@@ -27,13 +27,13 @@ import * as i0 from "@angular/core";
|
|
|
27
27
|
export { AuthHelper, AuthUser, BaseComponent, BaseInterceptor, CachingInterceptor, FileService, GenericFormBaseComponent, GenericFormComponent, GenericListComponent, GenericReactiveFormComponent, LoadingScreenInterceptor, LoadingScreenService, MessageType, PrintService, VdDynamicTableConfigDialogComponent, Common, GlobalRoles };
|
|
28
28
|
const DECLARATIONS = [VdDynamicTableConfigDialogComponent];
|
|
29
29
|
export class MaterialModule {
|
|
30
|
-
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.
|
|
31
|
-
/** @nocollapse */ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.
|
|
30
|
+
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: MaterialModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
31
|
+
/** @nocollapse */ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.1.2", ngImport: i0, type: MaterialModule, exports: [MatButtonModule,
|
|
32
32
|
DragDropModule] });
|
|
33
|
-
/** @nocollapse */ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.
|
|
33
|
+
/** @nocollapse */ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: MaterialModule, imports: [MatButtonModule,
|
|
34
34
|
DragDropModule] });
|
|
35
35
|
}
|
|
36
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.
|
|
36
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: MaterialModule, decorators: [{
|
|
37
37
|
type: NgModule,
|
|
38
38
|
args: [{
|
|
39
39
|
exports: [
|
|
@@ -43,13 +43,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImpor
|
|
|
43
43
|
}]
|
|
44
44
|
}] });
|
|
45
45
|
export class VdBaseModule {
|
|
46
|
-
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.
|
|
47
|
-
/** @nocollapse */ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.
|
|
46
|
+
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: VdBaseModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
47
|
+
/** @nocollapse */ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.1.2", ngImport: i0, type: VdBaseModule, declarations: [VdDynamicTableConfigDialogComponent], imports: [CommonModule,
|
|
48
48
|
FormsModule,
|
|
49
49
|
ReactiveFormsModule,
|
|
50
50
|
MatDialogModule,
|
|
51
51
|
VdTableModule, MaterialModule], exports: [VdDynamicTableConfigDialogComponent] });
|
|
52
|
-
/** @nocollapse */ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.
|
|
52
|
+
/** @nocollapse */ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: VdBaseModule, providers: [
|
|
53
53
|
{ provide: HTTP_INTERCEPTORS, useClass: BaseInterceptor, multi: true },
|
|
54
54
|
{ provide: HTTP_INTERCEPTORS, useClass: CachingInterceptor, multi: true },
|
|
55
55
|
{ provide: HTTP_INTERCEPTORS, useClass: LoadingScreenInterceptor, multi: true },
|
|
@@ -60,7 +60,7 @@ export class VdBaseModule {
|
|
|
60
60
|
VdTableModule,
|
|
61
61
|
MaterialModule] });
|
|
62
62
|
}
|
|
63
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.
|
|
63
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: VdBaseModule, decorators: [{
|
|
64
64
|
type: NgModule,
|
|
65
65
|
args: [{
|
|
66
66
|
imports: [
|
|
@@ -521,7 +521,7 @@ export class BaseComponent {
|
|
|
521
521
|
/* Get current route */
|
|
522
522
|
let currentRoute = this.router.url.split('?')[0]?.split(';')[0];
|
|
523
523
|
/* Append a trailing slash if the route doesn't end with one */
|
|
524
|
-
currentRoute = currentRoute.endsWith('/') ? currentRoute : currentRoute
|
|
524
|
+
currentRoute = currentRoute.endsWith('/') ? currentRoute.substring(0, -1) : currentRoute;
|
|
525
525
|
/* Filter the menu items based on the modified route path */
|
|
526
526
|
var submenu = this.menu.items.filter(x => x.path == currentRoute)[0];
|
|
527
527
|
if (submenu) {
|
|
@@ -655,10 +655,10 @@ export class BaseComponent {
|
|
|
655
655
|
ngOnDestroy() {
|
|
656
656
|
this.matExpansionPanelSubscriptions.forEach(x => x.unsubscribe());
|
|
657
657
|
}
|
|
658
|
-
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.
|
|
659
|
-
/** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.
|
|
658
|
+
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: BaseComponent, deps: [{ token: i1.ActivatedRoute }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
659
|
+
/** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.1.2", type: BaseComponent, inputs: { handleExpansionPanelChanges: "handleExpansionPanelChanges" }, outputs: { reload: "reload" }, viewQueries: [{ propertyName: "matExpansionPanelElementQueryList", predicate: MatExpansionPanel, descendants: true, read: ElementRef }, { propertyName: "matExpansionPanelQueryList", predicate: MatExpansionPanel, descendants: true }], ngImport: i0 });
|
|
660
660
|
}
|
|
661
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.
|
|
661
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: BaseComponent, decorators: [{
|
|
662
662
|
type: Directive
|
|
663
663
|
}], ctorParameters: () => [{ type: i1.ActivatedRoute }, { type: i0.ChangeDetectorRef }], propDecorators: { handleExpansionPanelChanges: [{
|
|
664
664
|
type: Input
|
|
@@ -671,4 +671,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImpor
|
|
|
671
671
|
type: ViewChildren,
|
|
672
672
|
args: [MatExpansionPanel]
|
|
673
673
|
}] } });
|
|
674
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jZGsvc3JjL2xpYi9iYXNlL2NvbXBvbmVudHMvYmFzZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNuRCxPQUFPLEVBQWlCLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsU0FBUyxFQUFRLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1SixPQUFPLEVBQUUsU0FBUyxFQUFtQixNQUFNLDBCQUEwQixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDbEQsT0FBTyxFQUFFLGNBQWMsRUFBeUMsTUFBTSxFQUErQixNQUFNLGlCQUFpQixDQUFDO0FBQzdILE9BQU8sRUFBNEIsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3BELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDN0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUN4RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFFcEUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzdD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LEdBQUcsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDdEQsT0FBTyxNQUFNLENBQUM7UUFDZixDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDVCxDQUFDO0lBRUQ7OztPQUdHO0lBQ08sY0FBYyxHQUFHLEdBQVksRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLFlBQVksRUFBRSxFQUFFLFFBQVEsRUFBRSxFQUFFLE1BQU0sSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7SUFFaEc7OztPQUdHO0lBQ0gsV0FBVztRQUNWLElBQUksQ0FBQyw4QkFBOEIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztJQUNuRSxDQUFDOzBIQXZ0Qm9CLGFBQWE7OEdBQWIsYUFBYSx1TEE0THBCLGlCQUFpQiwyQkFBVSxVQUFVLDZEQU1yQyxpQkFBaUI7OzJGQWxNVixhQUFhO2tCQURsQyxTQUFTO21IQThDRiwyQkFBMkI7c0JBRGpDLEtBQUs7Z0JBNkdDLE1BQU07c0JBRFosTUFBTTtnQkFxQ0csaUNBQWlDO3NCQUQxQyxZQUFZO3VCQUFDLGlCQUFpQixFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRTtnQkFPM0MsMEJBQTBCO3NCQURuQyxZQUFZO3VCQUFDLGlCQUFpQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IExvY2F0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgSHR0cEhlYWRlcnMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IEFmdGVyVmlld0luaXQsIENoYW5nZURldGVjdG9yUmVmLCBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBRdWVyeUxpc3QsIFR5cGUsIFZpZXdDaGlsZHJlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXREaWFsb2csIE1hdERpYWxvZ0NvbmZpZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcbmltcG9ydCB7IE1hdEV4cGFuc2lvblBhbmVsIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZXhwYW5zaW9uJztcclxuaW1wb3J0IHsgTWF0U25hY2tCYXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zbmFjay1iYXInO1xyXG5pbXBvcnQgeyBUaXRsZSB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgQWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgTmF2aWdhdGlvbkVuZCwgUm91dGVyLCBTY3JvbGwsIFVybFNlZ21lbnQsIFVybFRyZWUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb24sIG9mIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IENvbnRleHRIZWxwZXIgfSBmcm9tICcuLi8uLi9jb21tb24vY29tbW9uLm1vZHVsZSc7XHJcbmltcG9ydCB7IEFwcFNldHRpbmcgfSBmcm9tICcuLi8uLi9jb21tb24vbW9kZWxzL2FwcC1zZXR0aW5nJztcclxuaW1wb3J0IHsgU2VydmljZUxvY2F0b3IgfSBmcm9tICcuLi8uLi9jb21tb24vc2VydmljZXMvc2VydmljZS1sb2NhdG9yJztcclxuaW1wb3J0IHsgVmREaWFsb2dTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vZGlhbG9ncy9zZXJ2aWNlcy9kaWFsb2cuc2VydmljZSc7XHJcbmltcG9ydCB7IFZkTWVkaWFTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vbWVkaWEvc2VydmljZXMvbWVkaWEuc2VydmljZSc7XHJcbmltcG9ydCB7IE1lbnUgfSBmcm9tICcuLi8uLi9tZW51L21vZGVscy9tZW51JztcclxuaW1wb3J0IHsgQ29tbW9uIH0gZnJvbSAnLi4vY29uc3RhbnRzL2NvbW1vbic7XHJcbmltcG9ydCB7IEdsb2JhbFJvbGVzIH0gZnJvbSAnLi4vY29uc3RhbnRzL2dsb2JhbC1yb2xlcyc7XHJcbmltcG9ydCB7IE1lc3NhZ2VUeXBlIH0gZnJvbSAnLi4vZW51bXMvbWVzc2FnZS10eXBlJztcclxuaW1wb3J0IHsgQXV0aEhlbHBlciB9IGZyb20gJy4uL2hlbHBlcnMvYXV0aC1oZWxwZXInO1xyXG5pbXBvcnQgeyBJQmFzZUNvbXBvbmVudCB9IGZyb20gJy4uL2ludGVyZmFjZXMvaWJhc2UtY29tcG9uZW50JztcclxuaW1wb3J0IHsgQXV0aFVzZXIgfSBmcm9tICcuLi9tb2RlbHMvYXV0aC11c2VyJztcclxuXHJcbi8qKlxyXG4gKiBBIGJhc2UgbGlzdCBjb21wb25lbnQgZm9yIGNvbXBvbmVudHMgd2l0aCBwYWdpbmF0aW9uIHN1cHBvcnRcclxuICovXHJcbi8vIEBkeW5hbWljXHJcbkBEaXJlY3RpdmUoKVxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIElCYXNlQ29tcG9uZW50LCBPbkluaXQsIEFmdGVyVmlld0luaXQge1xyXG5cdC8qKlxyXG5cdCAqIEFwcCBzZXR0aW5nc1xyXG5cdCAqL1xyXG5cdHB1YmxpYyBhcHBTZXR0aW5nOiBBcHBTZXR0aW5nO1xyXG5cclxuXHQvKipcclxuXHQgKiBzZXR0aW5nczogQW55XHJcblx0ICovXHJcblx0cHVibGljIHNldHRpbmdzOiBhbnkgPSB7fTtcclxuXHJcblx0LyoqXHJcblx0ICogTWVudSBpdGVtc1xyXG5cdCAqL1xyXG5cdHB1YmxpYyBtZW51PzogTWVudTtcclxuXHJcblx0LyoqXHJcblx0ICogVGhlIG5hbWUgb2YgdGhlIHByb2plY3RcclxuXHQgKi9cclxuXHRwdWJsaWMgcHJvamVjdE5hbWU/OiBzdHJpbmc7XHJcblxyXG5cdC8qKlxyXG5cdCAqIFRoZSB0aXRsZSBvZiB0aGUgY3VycmVudCBwYWdlXHJcblx0ICovXHJcblx0cHVibGljIHRpdGxlPzogc3RyaW5nO1xyXG5cclxuXHQvKipcclxuXHQgKiBUaGUgc3VidGl0bGUgb2YgdGhlIGN1cnJlbnQgb3V0bGV0XHJcblx0ICovXHJcblx0cHVibGljIHN1YnRpdGxlPzogc3RyaW5nO1xyXG5cclxuXHQvKipcclxuXHQgKiBJZiB0cnVlLCB1c2Ugc29tZSBkdW1teSBkYXRhIGFuZCBzaG93IGRlYnVnIGxvZ3NcclxuXHQgKi9cclxuXHRwdWJsaWMgZGVidWc6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcblx0LyoqXHQgXHJcblx0ICogTG9hZGluZyBzdGF0dXNcclxuXHQgKi9cclxuXHRwdWJsaWMgaXNMb2FkaW5nOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG5cdC8qKlxyXG5cdCAqIGhhbmRsZUV4cGFuc2lvblBhbmVsQ2hhbmdlczogYm9vbGVhblxyXG5cdCAqL1xyXG5cdEBJbnB1dCgpXHJcblx0cHVibGljIGhhbmRsZUV4cGFuc2lvblBhbmVsQ2hhbmdlczogYm9vbGVhbiA9IHRydWU7XHJcblxyXG5cdC8qKlxyXG5cdCAqIFNhdmluZyBzdGF0dXNcclxuXHQgKi9cclxuXHRwdWJsaWMgX2lzU2F2aW5nOiBib29sZWFuID0gZmFsc2U7XHJcblx0cHVibGljIGdldCBpc1NhdmluZygpOiBib29sZWFuIHsgcmV0dXJuIHRoaXMuX2lzU2F2aW5nIHx8IHRoaXMuaXNMb2FkaW5nOyB9XHJcblx0cHVibGljIHNldCBpc1NhdmluZyhpc1NhdmluZzogYm9vbGVhbikgeyB0aGlzLmlzTG9hZGluZyA9IHRoaXMuX2lzU2F2aW5nID0gaXNTYXZpbmc7IH1cclxuXHJcblx0LyoqXHJcblx0ICogQSBmbGFnIGVpbmRpY2F0ZXMgdGhhdCB0aGUgZWRpdG9yIGlzIGluaXRlZFxyXG5cdCAqL1xyXG5cdHB1YmxpYyBpc0VkaXRvckluaXRpYWx6ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcblx0LyoqXHJcblx0ICogUmVwcmVzZW50cyB0aGUgcmVxdWVzdCBlcnJvcnNcclxuXHQgKi9cclxuXHRwdWJsaWMgZXJyb3JzOiBBcnJheTxzdHJpbmc+ID0gbmV3IEFycmF5PHN0cmluZz4oKTtcclxuXHJcblx0LyoqXHJcblx0ICogVXNlZCB0byBldmFsdWF0ZSB3aGV0aGVyIGEgZ2l2ZW4gbWVkaWEgcXVlcnkgaXMgdHJ1ZSBvciBmYWxzZSBnaXZlbiB0aGUgY3VycmVudCBkZXZpY2UncyBzY3JlZW4gLyB3aW5kb3cgc2l6ZS5cclxuXHQgKi9cclxuXHRwdWJsaWMgbWVkaWE6IFZkTWVkaWFTZXJ2aWNlO1xyXG5cclxuXHQvKipcclxuXHQgKiBBbGxvd2VkIGZpbGUgZXh0ZW5zaW9uc1xyXG5cdCAqL1xyXG5cdHB1YmxpYyBhbGxvd2VkRXh0ZW5zaW9uczogc3RyaW5nW10gPSBDb21tb24uYWxsb3dlZEV4dGVuc2lvbnM7XHJcblxyXG5cdC8qKlxyXG5cdCAqIHRpbnlNQ0UgcGx1Z2luc1xyXG5cdCAqL1xyXG5cdHB1YmxpYyBlZGl0b3JQbHVnaW5zOiBzdHJpbmcgPSBDb21tb24uZWRpdG9yUGx1Z2lucztcclxuXHJcblx0LyoqXHJcblx0ICogdGlueU1DRSBlZGl0b3JcclxuXHQgKi9cclxuXHRwdWJsaWMgZWRpdG9yVG9vbGJhcjogc3RyaW5nID0gQ29tbW9uLmVkaXRvclRvb2xiYXI7XHJcblxyXG5cdC8qKlxyXG5cdCAqIEVkaXRvciBjb25maWd1cmF0aW9uXHJcblx0ICovXHJcblx0cHVibGljIGVkaXRvckNvbmZpZzogYW55ID0ge307XHJcblxyXG5cdC8qKlxyXG5cdCAqIFByb3ZpZGVzIHRoZSBuYXZpZ2F0aW9uIGFuZCB1cmwgbWFuaXB1bGF0aW9uIGNhcGFiaWxpdGllcy5cclxuXHQgKi9cclxuXHRwdWJsaWMgcm91dGVyOiBSb3V0ZXI7XHJcblxyXG5cdC8qKlxyXG5cdCAqIHVybEhhc2g6IHN0cmluZ1xyXG5cdCAqL1xyXG5cdHB1YmxpYyB1cmxIYXNoPzogc3RyaW5nO1xyXG5cclxuXHQvKipcclxuXHQgKiBDbGFzcyBuYW1lXHJcblx0ICovXHJcblx0cHVibGljIGNsYXNzTmFtZT86IHN0cmluZztcclxuXHJcblx0LyoqXHJcblx0ICogQ3JlYXRlIHBlcm1pc3Npb25cclxuXHQgKi9cclxuXHRwdWJsaWMgY2FuQ3JlYXRlOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG5cdC8qKlxyXG5cdCAqIFVwZGF0ZSBwZXJtaXNzaW9uXHJcblx0ICovXHJcblx0cHVibGljIGNhblVwZGF0ZTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuXHQvKipcclxuXHQgKiBDdXJyZW50IHJvdXRlXHJcblx0ICovXHJcblx0cHVibGljIGN1cnJlbnRSb3V0ZT86IHN0cmluZztcclxuXHJcblx0LyoqXHJcblx0ICogQ3VycmVudCBiYXNlIHJvdXRlXHJcblx0ICovXHJcblx0cHVibGljIGN1cnJlbnRCYXNlUm91dGU/OiBzdHJpbmc7XHJcblxyXG5cdC8qKlxyXG5cdCAqIEEgdXJsIHRvIHJldHVybiB0byBhZnRlciBzYXZlXHJcblx0ICovXHJcblx0cHVibGljIHJldHVyblVybD86IHN0cmluZztcclxuXHJcblx0LyoqXHJcblx0ICogQ3VycmVudCB1c2VyIG9iamVjdFxyXG5cdCAqL1xyXG5cdHB1YmxpYyBjdXJyZW50VXNlcjogQXV0aFVzZXIgPSBBdXRoSGVscGVyLnVzZXI7XHJcblxyXG5cdC8qKlxyXG5cdCAqIElzIHRoZSBjdXJyZW50IHVzZXIgYSBjbGllbnQgYWRtaW5cclxuXHQgKi9cclxuXHRwdWJsaWMgaXNBZG1pbiA9IEF1dGhIZWxwZXIuaGFzUm9sZShHbG9iYWxSb2xlcy5BZG1pbmlzdHJhdG9yKTtcclxuXHJcblx0LyoqXHJcblx0ICogSXMgdGhlIGN1cnJlbnQgdXNlciBhIGNsaWVudCBhZG1pblxyXG5cdCAqL1xyXG5cdHB1YmxpYyBpc0NsaWVudEFkbWluID0gQXV0aEhlbHBlci5oYXNSb2xlKEdsb2JhbFJvbGVzLkNsaWVudEFkbWluaXN0cmF0b3IpO1xyXG5cclxuXHQvKipcclxuXHQgKiBJcyB0aGUgY3VycmVudCB1c2VyIGEgZGVwYXJ0bWVudCBhZG1pblxyXG5cdCAqL1xyXG5cdHB1YmxpYyBpc0RlcGFydG1lbnRBZG1pbiA9IEF1dGhIZWxwZXIuaGFzUm9sZShHbG9iYWxSb2xlcy5EZXBhcnRtZW50QWRtaW5pc3RyYXRvcik7XHJcblxyXG5cdC8qKlxyXG5cdCAqIHJlbG9hZD86IGZ1bmN0aW9uXHJcblx0ICovXHJcblx0QE91dHB1dCgpXHJcblx0cHVibGljIHJlbG9hZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcblx0LyoqXHJcblx0ICogQSBzZXJ2aWNlIHRoYXQgY2FuIGJlIHVzZWQgdG8gZ2V0IGFuZCBzZXQgdGhlIHRpdGxlIG9mIGEgY3VycmVudCBIVE1MIGRvY3VtZW50LlxyXG5cdCAqL1xyXG5cdHByb3RlY3RlZCB0aXRsZVNlcnZpY2U6IFRpdGxlO1xyXG5cclxuXHQvKipcclxuXHQgKiBBIHNlcnZpY2UgdG8gZGlzcGF0Y2ggTWF0ZXJpYWwgRGVzaWduIHNuYWNrIGJhciBtZXNzYWdlcy5cclxuXHQgKi9cclxuXHRwcm90ZWN0ZWQgc25hY2tCYXJTZXJ2aWNlOiBNYXRTbmFja0JhcjtcclxuXHJcblx0LyoqXHJcblx0ICogQSBzZXJ2aWNlIHRvIHNob3cgY29uaXJtIGFuZCBwcm9tcHQgZGlhbG9ncy5cclxuXHQgKi9cclxuXHRwcm90ZWN0ZWQgZGlhbG9nU2VydmljZTogVmREaWFsb2dTZXJ2aWNlO1xyXG5cclxuXHQvKipcclxuXHQgKiBBIHNlcnZpY2UgdG8gc2hvdyBjb25pcm0gYW5kIHByb21wdCBkaWFsb2dzLlxyXG5cdCAqL1xyXG5cdHByb3RlY3RlZCBkaWFsb2c6IE1hdERpYWxvZztcclxuXHJcblx0LyoqXHJcblx0ICogbG9jYXRpb246IExvY2F0aW9uXHJcblx0ICovXHJcblx0cHJvdGVjdGVkIGxvY2F0aW9uOiBMb2NhdGlvbjtcclxuXHJcblx0LyoqXHJcblx0ICogSWYgdHJ1ZSwgc2V0IHVybCBoYXNoXHJcblx0ICovXHJcblx0cHJvdGVjdGVkIHNldFVybEhhc2g6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuXHQvKipcclxuXHQgKiBNYXRFeHBhbnNpb25QYW5lbCByZWZcclxuXHQgKi9cclxuXHRAVmlld0NoaWxkcmVuKE1hdEV4cGFuc2lvblBhbmVsLCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSlcclxuXHRwcm90ZWN0ZWQgbWF0RXhwYW5zaW9uUGFuZWxFbGVtZW50UXVlcnlMaXN0PzogUXVlcnlMaXN0PEVsZW1lbnRSZWY+O1xyXG5cclxuXHQvKipcclxuXHQgKiBNYXRFeHBhbnNpb25QYW5lbCByZWZcclxuXHQgKi9cclxuXHRAVmlld0NoaWxkcmVuKE1hdEV4cGFuc2lvblBhbmVsKVxyXG5cdHByb3RlY3RlZCBtYXRFeHBhbnNpb25QYW5lbFF1ZXJ5TGlzdD86IFF1ZXJ5TGlzdDxNYXRFeHBhbnNpb25QYW5lbD47XHJcblxyXG5cdC8qKlxyXG5cdCAqIG1hdEV4cGFuc2lvblBhbmVsU3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9uW11cclxuXHQgKi9cclxuXHRwcm90ZWN0ZWQgbWF0RXhwYW5zaW9uUGFuZWxTdWJzY3JpcHRpb25zOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xyXG5cclxuXHQvKipcclxuXHQgKiBDb25zdHJ1Y3RvclxyXG5cdCAqL1xyXG5cdGNvbnN0cnVjdG9yKHByb3RlY3RlZCByb3V0ZTogQWN0aXZhdGVkUm91dGUsIHByb3RlY3RlZCBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcclxuXHRcdHRoaXMudGl0bGVTZXJ2aWNlID0gdGhpcy5nZXRTZXJ2aWNlKFRpdGxlKTtcclxuXHRcdHRoaXMuZGlhbG9nU2VydmljZSA9IHRoaXMuZ2V0U2VydmljZShWZERpYWxvZ1NlcnZpY2UpO1xyXG5cdFx0dGhpcy5kaWFsb2cgPSB0aGlzLmdldFNlcnZpY2UoTWF0RGlhbG9nKTtcclxuXHRcdHRoaXMubWVkaWEgPSB0aGlzLmdldFNlcnZpY2UoVmRNZWRpYVNlcnZpY2UpO1xyXG5cdFx0dGhpcy5zbmFja0JhclNlcnZpY2UgPSB0aGlzLmdldFNlcnZpY2UoTWF0U25hY2tCYXIpO1xyXG5cdFx0dGhpcy5yb3V0ZXIgPSB0aGlzLmdldFNlcnZpY2UoUm91dGVyKTtcclxuXHRcdHRoaXMuYXBwU2V0dGluZyA9IHRoaXMuZ2V0U2VydmljZShBcHBTZXR0aW5nKTtcclxuXHRcdHRoaXMubG9jYXRpb24gPSB0aGlzLmdldFNlcnZpY2UoTG9jYXRpb24pO1xyXG5cclxuXHRcdENvbnRleHRIZWxwZXIuYWN0aXZhdGVkUm91dGUgPSByb3V0ZTtcclxuXHRcdENvbnRleHRIZWxwZXIucm91dGVyID0gdGhpcy5yb3V0ZXI7XHJcblx0XHRDb250ZXh0SGVscGVyLmFwcFNldHRpbmcgPSB0aGlzLmFwcFNldHRpbmc7XHJcblxyXG5cdFx0dGhpcy5pbml0RWRpdG9yKCk7XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBMaWZlY3ljbGUgaG9vayB0aGF0IGlzIGNhbGxlZCBhZnRlciBkYXRhLWJvdW5kIHByb3BlcnRpZXMgXHJcblx0ICogb2YgYSBkaXJlY3RpdmUgYXJlIGluaXRpYWxpemVkLlxyXG5cdCAqL1xyXG5cdG5nT25Jbml0KCk6IHZvaWQge1xyXG5cdFx0LyogR2V0IG1lbnUgaXRlbXMgZnJvbSByb3V0ZSBzbmFwc2hvdCAqL1xyXG5cdFx0dmFyIG1haW5Sb3V0ZSA9IHRoaXMuZ2V0TWFpblJvdXRlKHRoaXMucm91dGUuc25hcHNob3QpO1xyXG5cdFx0aWYgKG1haW5Sb3V0ZSkge1xyXG5cdFx0XHR0aGlzLm1lbnUgPSBtYWluUm91dGUuZGF0YS5tZW51O1xyXG5cdFx0XHR0aGlzLnNldFRpdGxlcygpO1xyXG5cdFx0fVxyXG5cclxuXHRcdC8qIFNldCBwcm9qZWN0IG5hbWUgJiBkZWJ1ZyBtb2RlICovXHJcblx0XHR0aGlzLnByb2plY3ROYW1lID0gdGhpcy5hcHBTZXR0aW5nLnByb2plY3ROYW1lO1xyXG5cdFx0dGhpcy5kZWJ1ZyA9IHRoaXMuYXBwU2V0dGluZy5kZWJ1ZyA/PyBmYWxzZTtcclxuXHJcblx0XHQvKiBHZXQgdGhlIGhhc2ggZnJvbSB0aGUgdXJsICovXHJcblx0XHR0aGlzLnJvdXRlLmZyYWdtZW50LnN1YnNjcmliZSgoZnJhZ21lbnQ6IHN0cmluZyB8IGFueSkgPT4gdGhpcy51cmxIYXNoID0gZnJhZ21lbnQpO1xyXG5cclxuXHRcdC8qKlxyXG5cdFx0ICogQ2hlY2sgcGVybWlzc2lvbnNcclxuXHRcdCAqL1xyXG5cdFx0aWYgKHRoaXMucm91dGUucGFyZW50KSB7XHJcblx0XHRcdHRoaXMucm91dGUucGFyZW50LnVybC5zdWJzY3JpYmUoKHVybDogVXJsU2VnbWVudFtdKSA9PiB7XHJcblx0XHRcdFx0dGhpcy5jbGFzc05hbWUgPz89IHVybC5sZW5ndGggPyB1cmxbMF0ucGF0aC5yZXBsYWNlKC8oLiopcyQvLCAnJDEnKS5yZXBsYWNlKC9eLi8sICh1cmxbMF0ucGF0aFswXSB8fCAnJykudG9VcHBlckNhc2UoKSkgOiAnJztcclxuXHRcdFx0XHR0aGlzLmNhbkNyZWF0ZSA9IEF1dGhIZWxwZXIuaXNQZXJtaXR0ZWQoJ0NyZWF0ZScsIGBDcmVhdGUke3RoaXMuY2xhc3NOYW1lfWApO1xyXG5cdFx0XHRcdHRoaXMuY2FuVXBkYXRlID0gQXV0aEhlbHBlci5pc1Blcm1pdHRlZCgnVXBkYXRlJywgYFVwZGF0ZSR7dGhpcy5jbGFzc05hbWV9YCk7XHJcblx0XHRcdH0pO1xyXG5cdFx0fVxyXG5cclxuXHRcdC8qIFNldCBjdXJyZW50IHJvdXRlICovXHJcblx0XHR0aGlzLmN1cnJlbnRSb3V0ZSA9IHdpbmRvdy5idG9hKHRoaXMucm91dGVyLnVybCk7XHJcblx0XHR0aGlzLmN1cnJlbnRCYXNlUm91dGUgPSB0aGlzLnJvdXRlci51cmw/LnNwbGl0KCc/JylbMF0/LnNwbGl0KCc7JylbMF07XHJcblxyXG5cdFx0LyoqXHJcblx0XHQgKiBTZXQgcGFnZSB0aXRsZVxyXG5cdFx0ICovXHJcblx0XHR0aGlzLnJvdXRlci5ldmVudHMuc3Vic2NyaWJlKHggPT4ge1xyXG5cdFx0XHRsZXQgbmF2aWdhdGlvbkVuZCA9ICh4IGFzIFNjcm9sbCk/LnJvdXRlckV2ZW50IGFzIE5hdmlnYXRpb25FbmQ7XHJcblx0XHRcdGlmIChuYXZpZ2F0aW9uRW5kKSB7XHJcblx0XHRcdFx0dGhpcy5zZXRUaXRsZXMoKTtcclxuXHRcdFx0XHR0aGlzLmN1cnJlbnRSb3V0ZSA9IHdpbmRvdy5idG9hKG5hdmlnYXRpb25FbmQudXJsKTtcclxuXHRcdFx0fVxyXG5cdFx0fSk7XHJcblxyXG5cdFx0LyogR2V0IHRoZSByZXR1cm4gdXJsIGlmIGFueSAqL1xyXG5cdFx0dGhpcy5yb3V0ZS5xdWVyeVBhcmFtcy5zdWJzY3JpYmUoeCA9PiB0aGlzLnNldFJldHVyblVybCh4LnJldHVyblVybCkpO1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogTGlmZWN5Y2xlIGhvb2sgdGhhdCBpcyBjYWxsZWQgYWZ0ZXIgYSBjb21wb25lbnQncyB2aWV3IGhhcyBiZWVuIGZ1bGx5IGluaXRpYWxpemVkLlxyXG5cdCAqL1xyXG5cdG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuXHRcdC8qIEJyb2FkY2FzdCB0byBhbGwgbGlzdGVuZXIgb2JzZXJ2YWJsZXMgd2hlbiBsb2FkaW5nIHRoZSBwYWdlICovXHJcblx0XHR0aGlzLm1lZGlhLmJyb2FkY2FzdCgpO1xyXG5cclxuXHRcdC8qIFNldCB0aXRsZXMgKi9cclxuXHRcdHRoaXMuc2V0VGl0bGVzKCk7XHJcblxyXG5cdFx0LyogXHJcblx0XHQgKiBGb3JjZSBhIG5ldyBjaGFuZ2UgZGV0ZWN0aW9uIGN5Y2xlIHNpbmNlIGNoYW5nZSBkZXRlY3Rpb25zIFxyXG5cdFx0ICogaGF2ZSBmaW5pc2hlZCB3aGVuIGBuZ0FmdGVyVmlld0luaXRgIGlzIGV4ZWN1dGVkXHJcblx0XHQgKi9cclxuXHRcdHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG5cclxuXHRcdC8qIExpc3RlbiBmb3IgZXhwYW5zaW9uIHBhbmVsIGNoYW5nZXMgKi9cclxuXHRcdGlmICh0aGlzLmhhbmRsZUV4cGFuc2lvblBhbmVsQ2hhbmdlcykge1xyXG5cdFx0XHR0aGlzLm9uRXhwYW5zaW9uUGFuZWxDaGFuZ2VzKCk7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBSZWZyZXNocyB0aGlzIHBhZ2UvY29tcG9uZW50XHJcblx0ICovXHJcblx0cHVibGljIHJlbG9hZFBhZ2UoKTogdm9pZCB7XHJcblx0XHRsZXQgY3VycmVudFVybCA9IHRoaXMucm91dGVyLnVybDtcclxuXHRcdHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoJy8nLCB7IHJlcGxhY2VVcmw6IHRydWUgfSkudGhlbigoKSA9PiB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKGN1cnJlbnRVcmwsIHsgcmVwbGFjZVVybDogdHJ1ZSB9KSk7XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBOYXZpZ2F0ZXMgYmFjayB0byByZXR1cm4gdXJsXHJcblx0ICovXHJcblx0cHVibGljIG5hdmlnYXRlVG9SZXR1cm5VcmwoKTogdm9pZCB7XHJcblx0XHRpZiAodGhpcy5yZXR1cm5VcmwpIHtcclxuXHRcdFx0bGV0IHVybFRyZWU6IFVybFRyZWUgPSB0aGlzLnJvdXRlci5wYXJzZVVybCh0aGlzLnJldHVyblVybCk7XHJcblx0XHRcdHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwodXJsVHJlZS50b1N0cmluZygpKTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC8qIFxyXG5cdCAqIEZvcmNlIGEgbmV3IGNoYW5nZSBkZXRlY3Rpb24gY3ljbGUgc2luY2UgY2hhbmdlIGRldGVjdGlvbnMgXHJcblx0ICogaGF2ZSBmaW5pc2hlZCB3aGVuIGBuZ0FmdGVyVmlld0luaXRgIGlzIGV4ZWN1dGVkXHJcblx0ICovXHJcblx0cHVibGljIGRldGVjdENoYW5nZXMoKTogdm9pZCB7XHJcblx0XHR0aGlzLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIFNldHMgcmV0dXJuIHVybFxyXG5cdCAqIEBwYXJhbSByZXR1cm5VcmwgXHJcblx0ICovXHJcblx0cHJvdGVjdGVkIHNldFJldHVyblVybChyZXR1cm5Vcmw6IHN0cmluZyk6IHZvaWQge1xyXG5cdFx0dHJ5IHsgdGhpcy5yZXR1cm5VcmwgPSByZXR1cm5VcmwgPyBkZWNvZGVVUklDb21wb25lbnQoYXRvYihyZXR1cm5VcmwpKSA6IHVuZGVmaW5lZDsgfVxyXG5cdFx0Y2F0Y2ggKGVycm9yKSB7IH1cclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIExpc3RlbiBmb3IgZXhwYW5zaW9uIHBhbmVsIGNoYW5nZXNcclxuXHQgKi9cclxuXHRwcm90ZWN0ZWQgb25FeHBhbnNpb25QYW5lbENoYW5nZXMoKTogdm9pZCB7XHJcblx0XHQvKiBMaXN0ZW4gZm9yIGV4cGFuc2lvbiBwYW5lbCBjaGFuZ2VzICovXHJcblx0XHR0aGlzLm1hdEV4cGFuc2lvblBhbmVsUXVlcnlMaXN0Py5jaGFuZ2VzLnN1YnNjcmliZShfID0+IHtcclxuXHRcdFx0LyogVW5zdWJzY3JpYmUgZnJvbSBvbGQgJ29wZW5lZCcgYW5kICdjbG9zZWQnIHN1YnNjcmlwdGlvbnMgKi9cclxuXHRcdFx0dGhpcy5tYXRFeHBhbnNpb25QYW5lbFN1YnNjcmlwdGlvbnMuZm9yRWFjaCh4ID0+IHgudW5zdWJzY3JpYmUoKSk7XHJcblxyXG5cdFx0XHQvKiBEZXRlY3QgY2hhbmdlcyAqL1xyXG5cdFx0XHR0aGlzLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcclxuXHJcblx0XHRcdC8qIEdldCB0aGUgcGFuZWwgZW5kcyB3aXRoIHRoZSBJRCAnbmV3JyAqL1xyXG5cdFx0XHR2YXIgbmV3RXhwYW5zaW9uUGFuZWxJbmRleCA9IHRoaXMubWF0RXhwYW5zaW9uUGFuZWxFbGVtZW50UXVlcnlMaXN0Py50b0FycmF5KCk/LmZpbmRJbmRleCh4ID0+IHgubmF0aXZlRWxlbWVudD8uaWQ/LmVuZHNXaXRoKCcubmV3JykpID8/IC0xO1xyXG5cdFx0XHRpZiAobmV3RXhwYW5zaW9uUGFuZWxJbmRleCA+PSAwKSB7XHJcblx0XHRcdFx0LyogQ2xvc2UgYWxsIHBhbmVscyAqL1xyXG5cdFx0XHRcdHRoaXMubWF0RXhwYW5zaW9uUGFuZWxRdWVyeUxpc3Q/LmZpcnN0Py5hY2NvcmRpb24/LmNsb3NlQWxsKCk7XHJcblxyXG5cdFx0XHRcdC8qIE9wZW4gdGhlIG5ldyBwYW5lbCAqL1xyXG5cdFx0XHRcdHRoaXMubWF0RXhwYW5zaW9uUGFuZWxRdWVyeUxpc3Q/LnRvQXJyYXkoKVtuZXdFeHBhbnNpb25QYW5lbEluZGV4XT8ub3BlbigpO1xyXG5cclxuXHRcdFx0XHQvKiBEZXRlY3QgY2hhbmdlcyAqL1xyXG5cdFx0XHRcdHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG5cdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdC8qIEZpbmQgdGhlIGluZGV4IG9mIHRoZSBwYW5lbCB3aXRoIHRoZSBzcGVjaWZpZWQgZWxlbWVudCBJRCAqL1xyXG5cdFx0XHRcdHRoaXMudXJsSGFzaD8uc3BsaXQoJy4nKVxyXG5cdFx0XHRcdFx0Py5yZWR1Y2UoKGFjY3VtdWxhdG9yOiBhbnksIGN1cnJlbnRWYWx1ZSwgaW5kZXgpID0+IGFjY3VtdWxhdG9yLmNvbmNhdCgoaW5kZXggPiAwID8gKGFjY3VtdWxhdG9yLnNsaWNlKC0xKS5qb2luKCcuJykgKyAnLicpIDogJycpICsgY3VycmVudFZhbHVlKSwgW10pXHJcblx0XHRcdFx0XHQ/LmZvckVhY2goKGhhc2g6IHN0cmluZykgPT4ge1xyXG5cdFx0XHRcdFx0XHR2YXIgZXhwYW5zaW9uUGFuZWxJbmRleCA9IHRoaXMubWF0RXhwYW5zaW9uUGFuZWxFbGVtZW50UXVlcnlMaXN0Py50b0FycmF5KCk/LmZpbmRJbmRleCh4ID0+IHgubmF0aXZlRWxlbWVudC5pZCA9PSBoYXNoKSA/PyAtMTtcclxuXHRcdFx0XHRcdFx0aWYgKGV4cGFuc2lvblBhbmVsSW5kZXggPj0gMCkge1xyXG5cdFx0XHRcdFx0XHRcdHRoaXMubWF0RXhwYW5zaW9uUGFuZWxRdWVyeUxpc3Q/LnRvQXJyYXkoKVtleHBhbnNpb25QYW5lbEluZGV4XT8ub3BlbigpO1xyXG5cdFx0XHRcdFx0XHRcdHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9KTtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0LyogRGV0ZWN0IGNoYW5nZXMgZm9yIG9wZW5lZCBwYW5lbHMgKi9cclxuXHRcdFx0dGhpcy5tYXRFeHBhbnNpb25QYW5lbFF1ZXJ5TGlzdD8uZm9yRWFjaCh5ID0+IHtcclxuXHRcdFx0XHR0aGlzLm1hdEV4cGFuc2lvblBhbmVsU3Vic2NyaXB0aW9ucy5wdXNoKHkub3BlbmVkLnN1YnNjcmliZShfID0+IHtcclxuXHRcdFx0XHRcdGlmICh0aGlzLnNldFVybEhhc2gpIHtcclxuXHRcdFx0XHRcdFx0LyogR2V0IHRoZSBpZCBvZiB0aGUgY3VycmVudCBvcGVuZWQgcGFuZWwgKi9cclxuXHRcdFx0XHRcdFx0dmFyIGN1cnJlbnRQYW5lbElkID0geVsnX3ZpZXdDb250YWluZXJSZWYnXT8uZWxlbWVudD8ubmF0aXZlRWxlbWVudD8uaWQ7XHJcblxyXG5cdFx0XHRcdFx0XHQvKiBJZiB0aGUgcGFuZWwgSUQgaXMgc2V0LCBzZXQgaXQgYXMgdXJsIHNlZ21lbnQgKGhhc2gpICovXHJcblx0XHRcdFx0XHRcdGlmIChjdXJyZW50UGFuZWxJZCkge1xyXG5cdFx0XHRcdFx0XHRcdHRoaXMucm91dGVyLm5hdmlnYXRlKFtdLCB7IGZyYWdtZW50OiBjdXJyZW50UGFuZWxJZCwgcmVwbGFjZVVybDogdHJ1ZSB9KTtcclxuXHRcdFx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHRcdFx0LyogT3RoZXJ3aXNlIHJlbW92ZSB0aGUgc2VnbWVudCBmcm9tIHRoZSB1cmwgKi9cclxuXHRcdFx0XHRcdFx0ZWxzZSB7XHJcblx0XHRcdFx0XHRcdFx0dGhpcy5yb3V0ZXIubmF2aWdhdGUoW10sIHsgcmVwbGFjZVVybDogdHJ1ZSB9KTtcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHRcdC8qIERldGVjdCBjaGFuZ2VzICovXHJcblx0XHRcdFx0XHR0aGlzLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcclxuXHRcdFx0XHR9KSk7XHJcblxyXG5cdFx0XHRcdC8qIERldGVjdCBjaGFuZ2VzIGZvciBjbG9zZWQgcGFuZWxzICovXHJcblx0XHRcdFx0dGhpcy5tYXRFeHBhbnNpb25QYW5lbFN1YnNjcmlwdGlvbnMucHVzaCh5LmNsb3NlZC5zdWJzY3JpYmUoXyA9PiB7XHJcblx0XHRcdFx0XHRpZiAodGhpcy5zZXRVcmxIYXNoKSB7XHJcblx0XHRcdFx0XHRcdC8qIEdldCB0aGUgaWQgb2YgdGhlIGN1cnJlbnQgb3BlbmVkIHBhbmVsICovXHJcblx0XHRcdFx0XHRcdHZhciBjdXJyZW50UGFuZWxJZFBhcnRzID0geVsnX3ZpZXdDb250YWluZXJSZWYnXT8uZWxlbWVudD8ubmF0aXZlRWxlbWVudD8uaWQ/LnNwbGl0KCcuJyk7XHJcblxyXG5cdFx0XHRcdFx0XHQvKiBJZiB0aGUgcGFuZWwgSUQgaXMgc2V0LCBzZXQgaXQgYXMgdXJsIHNlZ21lbnQgKGhhc2gpICovXHJcblx0XHRcdFx0XHRcdGlmIChjdXJyZW50UGFuZWxJZFBhcnRzLmxlbmd0aCA+IDEpIHtcclxuXHRcdFx0XHRcdFx0XHR0aGlzLnJvdXRlci5uYXZpZ2F0ZShbXSwgeyBmcmFnbWVudDogY3VycmVudFBhbmVsSWRQYXJ0cy5zbGljZSgwLCAtMSkuam9pbignLicpLCByZXBsYWNlVXJsOiB0cnVlIH0pO1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdFx0LyogRGV0ZWN0IGNoYW5nZXMgKi9cclxuXHRcdFx0XHRcdHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG5cdFx0XHRcdH0pKTtcclxuXHRcdFx0fSk7XHJcblx0XHR9KTtcclxuXHJcblx0XHQvKiBOb3RpZnkgZXhwYW5zaW9uIHBhbmVsIGxpc3QgY2hhbmdlcyAqL1xyXG5cdFx0aWYgKHRoaXMubWF0RXhwYW5zaW9uUGFuZWxRdWVyeUxpc3QpIHtcclxuXHRcdFx0dGhpcy5tYXRFeHBhbnNpb25QYW5lbFF1ZXJ5TGlzdC5ub3RpZnlPbkNoYW5nZXMoKTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIFJldHJpZXZlcyBhbiBpbnN0YW5jZSBmcm9tIHRoZSBpbmplY3RvciBiYXNlZCBvbiB0aGUgcHJvdmlkZWQgdG9rZW4uXHJcblx0ICogSWYgbm90IGZvdW5kOlxyXG5cdCAqIC0gVGhyb3dzIHtAbGluayBOb1Byb3ZpZGVyRXJyb3J9IGlmIG5vIGBub3RGb3VuZFZhbHVlYCB0aGF0IGlzIG5vdCBlcXVhbCB0b1xyXG5cdCAqIEluamVjdG9yLlRIUk9XX0lGX05PVF9GT1VORCBpcyBnaXZlblxyXG5cdCAqIC0gUmV0dXJucyB0aGUgYG5vdEZvdW5kVmFsdWVgIG90aGVyd2lzZVxyXG5cdCAqL1xyXG5cdHByb3RlY3RlZCBnZXRTZXJ2aWNlPFQ+KHRva2VuOiBUeXBlPFQ+KTogVCB7XHJcblx0XHRyZXR1cm4gU2VydmljZUxvY2F0b3IuZ2V0U2VydmljZSh0b2tlbik7XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBHZXRzIGJhc2Ugcm91dGVcclxuXHQgKiBAcGFyYW0gc25hcHNob3QgXHJcblx0ICovXHJcblx0cHJvdGVjdGVkIGdldE1haW5Sb3V0ZShzbmFwc2hvdDogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCk6IEFjdGl2YXRlZFJvdXRlU25hcHNob3Qge1xyXG5cdFx0aWYgKHNuYXBzaG90ICYmIHNuYXBzaG90IS5wYXJlbnQgJiYgIXNuYXBzaG90LmRhdGEubWVudSkge1xyXG5cdFx0XHRyZXR1cm4gdGhpcy5nZXRNYWluUm91dGUoc25hcHNob3QhLnBhcmVudCEpO1xyXG5cdFx0fVxyXG5cclxuXHRcdHJldHVybiBzbmFwc2hvdDtcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIFNob3dzIGEgY29uZmlybSBkaWFsb2cgdG8gZGVsZXRlIGFuIGl0ZW0gXHJcblx0ICovXHJcblx0cHJvdGVjdGVkIHNob3dEZWxldGVJdGVtRGlhbG9nKCk6IE9ic2VydmFibGU8YW55PiB7XHJcblx0XHRyZXR1cm4gdGhpcy5kaWFsb2dTZXJ2aWNlLm9wZW5Db25maXJtKHtcclxuXHRcdFx0bWVzc2FnZTogJGxvY2FsaXplYDpAQGRpYWxvZy5tZXNzYWdlLmRlbGV0ZS5vbmU6QXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRlbGV0ZSB0aGlzIGl0ZW0/YCxcclxuXHRcdFx0dGl0bGU6ICRsb2NhbGl6ZWA6QEBkaWFsb2cudGl0bGUuZGVsZXRlOkNvbmZpcm0gRGVsZXRlYCxcclxuXHRcdFx0Y2FuY2VsQnV0dG9uOiAkbG9jYWxpemVgOkBAY2FuY2VsOkNhbmNlbGAsXHJcblx0XHRcdGFjY2VwdEJ1dHRvbjogJGxvY2FsaXplYDpAQGRlbGV0ZTpEZWxldGVgLFxyXG5cdFx0fSkuYWZ0ZXJDbG9zZWQoKTtcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIFNob3dzIGEgY29uZmlybSBkaWFsb2cgdG8gZGVsZXRlIG11bHRpcGxlIGl0ZW1zXHJcblx0ICovXHJcblx0cHJvdGVjdGVkIHNob3dEZWxldGVJdGVtc0RpYWxvZygpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG5cdFx0cmV0dXJuIHRoaXMuZGlhbG9nU2VydmljZS5vcGVuQ29uZmlybSh7XHJcblx0XHRcdG1lc3NhZ2U6ICRsb2NhbGl6ZWA6QEBkaWFsb2cubWVzc2FnZS5kZWxldGUubGlzdDpBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gZGVsZXRlIHRoZSBzZWxlY3RlZCBpdGVtcz9gLFxyXG5cdFx0XHR0aXRsZTogJGxvY2FsaXplYDpAQGRpYWxvZy50aXRsZS5kZWxldGU6Q29uZmlybSBEZWxldGVgLFxyXG5cdFx0XHRjYW5jZWxCdXR0b246ICRsb2NhbGl6ZWA6QEBjYW5jZWw6Q2FuY2VsYCxcclxuXHRcdFx0YWNjZXB0QnV0dG9uOiAkbG9jYWxpemVgOkBAZGVsZXRlOkRlbGV0ZWAsXHJcblx0XHR9KS5hZnRlckNsb3NlZCgpO1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogU2hvd3MgYSBjb25maXJtIGRpYWxvZyB0byBzZW5kIHNvbWUgZGF0YVxyXG5cdCAqIEBwYXJhbSBtZXNzYWdlIFRoZSBtZXNzYWdlIHRvIGRpc3BsYXlcclxuXHQgKiBAcGFyYW0gb2JzZXJ2YWJlIFRoZSBvYnNlcnZhYmxlIGluc3RhbmNlXHJcblx0ICogQHBhcmFtIHN1Y2Nlc3NDYWxsYmFjayBBIHN1Y2Nlc3MgY2FsbGJhY2tcclxuXHQgKiBAcGFyYW0gZXJyb3JDYWxsYmFjayBBbiBlcnJvciBjYWxsYmFja1xyXG5cdCAqL1xyXG5cdHB1YmxpYyBzaG93Q29uZmlybWF0aW9uRGlhbG9nKG1lc3NhZ2U6IHN0cmluZywgb2JzZXJ2YWJlOiBPYnNlcnZhYmxlPGFueT4sIHN1Y2Nlc3NDYWxsYmFjaz86IEZ1bmN0aW9uLCBlcnJvckNhbGxiYWNrPzogRnVuY3Rpb24pOiB2b2lkIHtcclxuXHRcdHRoaXMuZGlhbG9nU2VydmljZVxyXG5cdFx0XHQub3BlbkNvbmZpcm0oe1xyXG5cdFx0XHRcdG1lc3NhZ2U6IG1lc3NhZ2UsXHJcblx0XHRcdFx0dGl0bGU6ICRsb2NhbGl6ZWA6QEBkaWFsb2cudGl0bGUuY29uZmlybTpDb25maXJtYCxcclxuXHRcdFx0XHRjYW5jZWxCdXR0b246ICRsb2NhbGl6ZWA6QEBjYW5jZWw6Q2FuY2VsYCxcclxuXHRcdFx0XHRhY2NlcHRCdXR0b246ICRsb2NhbGl6ZWA6QEBvazpPa2AsXHJcblx0XHRcdH0pXHJcblx0XHRcdC5hZnRlckNsb3NlZCgpLnN1YnNjcmliZSgoYWNjZXB0OiBib29sZWFuKSA9PiB7XHJcblx0XHRcdFx0aWYgKGFjY2VwdCkge1xyXG5cdFx0XHRcdFx0b2JzZXJ2YWJlLnN1YnNjcmliZSh7XHJcblx0XHRcdFx0XHRcdG5leHQ6ICh4KSA9PiB7XHJcblx0XHRcdFx0XHRcdFx0dGhpcy5zaG93TWVzc2FnZSgkbG9jYWxpemVgOkBAc25hY2tiYXIuc2VuZC5zdWNjZXNzOkRhdGEgc2VudCBzdWNjZXNzZnVsbHkuYCk7XHJcblx0XHRcdFx0XHRcdFx0aWYgKHN1Y2Nlc3NDYWxsYmFjaykge1xyXG5cdFx0XHRcdFx0XHRcdFx0c3VjY2Vzc0NhbGxiYWNrKHgpO1xyXG5cdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0fSwgZXJyb3I6IChlcnJvcnMpID0+IHtcclxuXHRcdFx0XHRcdFx0XHR0aGlzLmlzU2F2aW5nID0gZmFsc2U7XHJcblx0XHRcdFx0XHRcdFx0aWYgKGVycm9yQ2FsbGJhY2spIHtcclxuXHRcdFx0XHRcdFx0XHRcdGVycm9yQ2FsbGJhY2soZXJyb3JzKTtcclxuXHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH0pO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSk7XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBOYXZpZ2F0ZXMgdG8gdGhlIGFkZCBwYWdlLlxyXG5cdCAqL1xyXG5cdHB1YmxpYyBvcGVuRGlhbG9nPFQsIEQgPSBhbnk+KGRpYWxvZ1R5cGU6IFR5cGU8VD4sIGNvbmZpZzogTWF0RGlhbG9nQ29uZmlnPEQ+LCBjYWxsYmFjazogRnVuY3Rpb24pOiB2b2lkIHtcclxuXHRcdHRoaXMuZGlhbG9nLm9wZW4oZGlhbG9nVHlwZSwgT2JqZWN0LmFzc2lnbih7IHdpZHRoOiAnNjUwcHgnLCBkYXRhOiB7fSwgcGFuZWxDbGFzczogWydkaWFsb2ctZnVsbC1zY3JlZW4nXSB9LCBjb25maWcpKVxyXG5cdFx0XHQuYWZ0ZXJDbG9zZWQoKVxyXG5cdFx0XHQuc3Vic2NyaWJlKF8gPT4gY2FsbGJhY2soKSk7XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBTaG93cyBhIG1lc3NhZ2VcclxuXHQgKiBAcGFyYW0gbWVzc2FnZSBUaGUgbWVzc2FnZSB0byBkaXNwbGF5XHJcblx0ICogQHBhcmFtIHR5cGUgVGhlIHR5cGUgb2YgdGhlIG1lc3NhZ2VcclxuXHQgKi9cclxuXHRwcm90ZWN0ZWQgc2hvd01lc3NhZ2UobWVzc2FnZT86IHN0cmluZywgdHlwZTogTWVzc2FnZVR5cGUgPSBNZXNzYWdlVHlwZS5TdWNjZXNzKTogdm9pZCB7XHJcblx0XHR2YXIgc25hY2tCYXJDbGFzcyA9ICdwcmltYXJ5JztcclxuXHRcdHN3aXRjaCAodHlwZSkge1xyXG5cdFx0XHRjYXNlIE1lc3NhZ2VUeXBlLlN1Y2Nlc3M6XHJcblx0XHRcdFx0c25hY2tCYXJDbGFzcyA9ICdwcmltYXJ5JztcclxuXHRcdFx0XHRicmVhaztcclxuXHJcblx0XHRcdGNhc2UgTWVzc2FnZVR5cGUuV2FybmluZzpcclxuXHRcdFx0XHRzbmFja0JhckNsYXNzID0gJ3dhcm4nO1xyXG5cdFx0XHRcdGJyZWFrO1xyXG5cclxuXHRcdFx0Y2FzZSBNZXNzYWdlVHlwZS5FcnJvcjpcclxuXHRcdFx0XHRzbmFja0JhckNsYXNzID0gJ2Vycm9yJztcclxuXHRcdFx0XHRicmVhaztcclxuXHJcblx0XHRcdGRlZmF1bHQ6XHJcblx0XHRcdFx0YnJlYWs7XHJcblx0XHR9XHJcblxyXG5cdFx0dGhpcy5zbmFja0JhclNlcnZpY2Uub3BlbihtZXNzYWdlIHx8ICRsb2NhbGl6ZWA6QEBzbmFja2Jhci5zZW5kLnN1Y2Nlc3M6RGF0YSBzZW50IHN1Y2Nlc3NmdWxseS5gLCB1bmRlZmluZWQsIHtcclxuXHRcdFx0ZHVyYXRpb246IDMwMDAsXHJcblx0XHRcdHBhbmVsQ2xhc3M6IFtzbmFja0JhckNsYXNzXVxyXG5cdFx0fSk7XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBJbml0b2FsaXplcyB0aGUgdGlueW1jZSBlZGl0b3JcclxuXHQgKi9cclxuXHRwcm90ZWN0ZWQgaW5pdEVkaXRvcihlZGl0b3JDb25maWc6IGFueSA9IHt9KSB7XHJcblx0XHRPYmplY3QuYXNzaWduKHRoaXMuZWRpdG9yQ29uZmlnLCB7XHJcblx0XHRcdHByb21vdGlvbjogZmFsc2UsXHJcblx0XHRcdHN1ZmZpeDogJy5taW4nLFxyXG5cdFx0XHRza2luOiBmYWxzZSxcclxuXHRcdFx0aGVpZ2h0OiAnMTcwcHgnLFxyXG5cdFx0XHRjb250ZW50X2NzczogZmFsc2UsXHJcblx0XHRcdHBsdWdpbnM6IHRoaXMuZWRpdG9yUGx1Z2lucyxcclxuXHRcdFx0dG9vbGJhcjogdGhpcy5lZGl0b3JUb29sYmFyLFxyXG5cdFx0XHRwYXN0ZV9hc190ZXh0OiB0cnVlLFxyXG5cdFx0XHRsYW5ndWFnZTogJ2RlJyxcclxuXHRcdFx0bGFuZ3VhZ2VfdXJsOiAnL2Fzc2V0cy90aW55bWNlL2xhbmdzL2RlLmpzJyxcclxuXHRcdFx0ZG9jdW1lbnRfYmFzZV91cmw6IGAke3RoaXMuYXBwU2V0dGluZy5hcGlVcmx9ZmlsZS9gLFxyXG5cdFx0XHRhdXRvbWF0aWNfdXBsb2FkczogdHJ1ZSxcclxuXHRcdFx0cmVsYXRpdmVfdXJsczogdHJ1ZSxcclxuXHRcdFx0Y29udmVydF91cmxzOiBmYWxzZSxcclxuXHRcdFx0ZXh0ZW5kZWRfdmFsaWRfZWxlbWVudHM6ICdzcGFuW2lkfGNsYXNzfHN0eWxlXSwrQFtkYXRhLW9wdGlvbnNdJyxcclxuXHRcdFx0YWxsb3dfaHRtbF9pbl9uYW1lZF9hbmNob3I6IHRydWVcclxuXHRcdH0sIGVkaXRvckNvbmZpZyk7XHJcblxyXG5cdFx0dGhpcy5pc0VkaXRvckluaXRpYWx6ZWQgPSB0cnVlO1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogU2V0cyBzdWJ0aXRsZSBmcm9tIGN1cnJlbiBtZW51XHJcblx0ICovXHJcblx0cHJvdGVjdGVkIHNldFRpdGxlcygpOiB2b2lkIHtcclxuXHRcdGlmICh0aGlzLm1lbnUpIHtcclxuXHJcblx0XHRcdHRoaXMudGl0bGVTZXJ2aWNlLnNldFRpdGxlKHRoaXMubWVudS50aXRsZSA/PyAnJyk7XHJcblx0XHRcdHRoaXMudGl0bGUgPSB0aGlzLnRpdGxlU2VydmljZS5nZXRUaXRsZSgpO1xyXG5cclxuXHRcdFx0aWYgKCF0aGlzLm1lbnUuaXRlbXMpIHtcclxuXHRcdFx0XHRyZXR1cm47XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdC8qIEdldCBzdWJ0aXRsZSBmcm9tIHVybCBwYXJhbXMgKi9cclxuXHRcdFx0dmFyIHN1YnRpdGxlID0gdGhpcy5yb3V0ZT8uc25hcHNob3Q/LnBhcmFtTWFwPy5nZXQoJ3N1YnRpdGxlJyk7XHJcblx0XHRcdGlmIChzdWJ0aXRsZSkge1xyXG5cdFx0XHRcdHRyeSB7IHRoaXMuc3VidGl0bGUgPSB3aW5kb3cuYXRvYihzdWJ0aXRsZSk7IH1cclxuXHRcdFx0XHRjYXRjaCAoZSkgeyB0aGlzLnN1YnRpdGxlID0gc3VidGl0bGU7IH1cclxuXHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHQvKiBHZXQgY3VycmVudCByb3V0ZSAqL1xyXG5cdFx0XHRcdGxldCBjdXJyZW50Um91dGUgPSB0aGlzLnJvdXRlci51cmwuc3BsaXQoJz8nKVswXT8uc3BsaXQoJzsnKVswXTtcclxuXHJcblx0XHRcdFx0LyogQXBwZW5kIGEgdHJhaWxpbmcgc2xhc2ggaWYgdGhlIHJvdXRlIGRvZXNuJ3QgZW5kIHdpdGggb25lICovXHJcblx0XHRcdFx0Y3VycmVudFJvdXRlID0gY3VycmVudFJvdXRlLmVuZHNXaXRoKCcvJykgPyBjdXJyZW50Um91dGUgOiBjdXJyZW50Um91dGUgKyAnLyc7XHJcblxyXG5cdFx0XHRcdC8qIEZpbHRlciB0aGUgbWVudSBpdGVtcyBiYXNlZCBvbiB0aGUgbW9kaWZpZWQgcm91dGUgcGF0aCAqL1xyXG5cdFx0XHRcdHZhciBzdWJtZW51ID0gdGhpcy5tZW51Lml0ZW1zLmZpbHRlcih4ID0+IHgucGF0aCA9PSBjdXJyZW50Um91dGUpWzBdO1xyXG5cdFx0XHRcdGlmIChzdWJtZW51KSB7XHJcblx0XHRcdFx0XHR0aGlzLnN1YnRpdGxlID0gc3VibWVudS50aXRsZTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIE5hdmlnYXRlIGJhc2VkIG9uIHRoZSBwcm92aWRlZCBhcnJheSBvZiBjb21tYW5kcyBhbmQgYSBzdGFydGluZyBwb2ludC5cclxuXHQgKiBAcGFyYW0gY29tbWFuZHMgXHJcblx0ICovXHJcblx0cHVibGljIG5hdmlnYXRlKGNvbW1hbmRzOiBhbnlbXSwgcXVlcnlQYXJhbXM/OiBhbnksIGZyYWdtZW50Pzogc3RyaW5nLCBwcmVzZXJ2ZUZyYWdtZW50PzogYm9vbGVhbik6IHZvaWQge1xyXG5cdFx0dGhpcy5yb3V0ZXIubmF2aWdhdGUoY29tbWFuZHMsIHtcclxuXHRcdFx0cXVlcnlQYXJhbXM6IE9iamVjdC5hc3NpZ24oeyByZXR1cm5Vcmw6IHRoaXMuY3VycmVudFJvdXRlIH0sIHF1ZXJ5UGFyYW1zIHx8IHt9KSxcclxuXHRcdFx0ZnJhZ21lbnQ6IGZyYWdtZW50LFxyXG5cdFx0XHRwcmVzZXJ2ZUZyYWdtZW50OiBwcmVzZXJ2ZUZyYWdtZW50LFxyXG5cdFx0XHRyZWxhdGl2ZVRvOiB0aGlzLnJvdXRlXHJcblx0XHR9KTtcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIENvbnZlcnQgT2JqZWN0IHRvIEh0dHBIZWFkZXJzXHJcblx0ICogXHJcblx0ICogQHBhcmFtIGJvZHlcclxuXHQgKi9cclxuXHRwcm90ZWN0ZWQgdG9IdHRwSGVhZGVycyhib2R5OiBhbnkpOiBIdHRwSGVhZGVycyB7XHJcblx0XHRpZiAoIWJvZHkpIHtcclxuXHRcdFx0cmV0dXJuIG5ldyBIdHRwSGVhZGVycygpO1xyXG5cdFx0fVxyXG5cclxuXHRcdHJldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhib2R5KVxyXG5cdFx0XHQuZmlsdGVyKGtleSA9PiBib2R5W2tleV0gIT0gbnVsbCAmJiBib2R5W2tleV0gIT0gJycpXHJcblx0XHRcdC5yZWR1Y2UoKHAsIGtleSkgPT4gcC5zZXQoa2V5LCBib2R5W2tleV0pLCBuZXcgSHR0cEhlYWRlcnMoKSk7XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBQYXJzZXMgaHR0cCByZXNwb25zZSBlcnJvcnNcclxuXHQgKiBAcGFyYW0gZXJyb3JzIFxyXG5cdCAqL1xyXG5cdHByb3RlY3RlZCBwYXJzZUVycm9ycyhlcnJvcnM6IGFueSk6IHZvaWQge1xyXG5cdFx0dGhpcy5lcnJvcnMgPSBbXTtcclxuXHRcdHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XHJcblx0XHR0aGlzLmlzU2F2aW5nID0gZmFsc2U7XHJcblxyXG5cdFx0aWYgKGVycm9ycykge1xyXG5cdFx0XHRPYmplY3Qua2V5cyhlcnJvcnMpLmZvckVhY2goZWwgPT4ge1xyXG5cdFx0XHRcdGxldCBlcnJvciA9IGVycm9yc1tlbF07XHJcblx0XHRcdFx0aWYgKEFycmF5LmlzQXJyYXkoZXJyb3IpKSB7XHJcblx0XHRcdFx0XHRlcnJvci5mb3JFYWNoKGVyciA9PiB7XHJcblx0XHRcdFx0XHRcdHRoaXMuZXJyb3JzLnB1c2goZXJyKTtcclxuXHRcdFx0XHRcdH0pO1xyXG5cdFx0XHRcdH0gZWxzZSBpZiAodHlwZW9mIGVycm9yID09PSBcInN0cmluZ1wiKSB7XHJcblx0XHRcdFx0XHR0aGlzLmVycm9ycy5wdXNoKGVycm9yKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0pO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogSGFuZGxlIEh0dHAgb3BlcmF0aW9uIHRoYXQgZmFpbGVkLlxyXG5cdCAqIExldCB0aGUgYXBwIGNvbnRpbnVlLlxyXG5cdCAqIEBwYXJhbSBvcGVyYXRpb24gLSBuYW1lIG9mIHRoZSBvcGVyYXRpb24gdGhhdCBmYWlsZWRcclxuXHQgKiBAcGFyYW0gcmVzdWx0IC0gb3B0aW9uYWwgdmFsdWUgdG8gcmV0dXJuIGFzIHRoZSBvYnNlcnZhYmxlIHJlc3VsdFxyXG5cdCAqL1xyXG5cdHByb3RlY3RlZCBoYW5kbGVFcnJvcjxUPihvcGVyYXRpb24gPSAnb3BlcmF0aW9uJywgcmVzdWx0PzogVCkge1xyXG5cdFx0cmV0dXJuIChlcnJvcjogYW55KTogT2JzZXJ2YWJsZTxUPiA9PiB7XHJcblxyXG5cdFx0XHQvKiBQYXJzZSB0aGUgZXJyb3IgbWVzc2FnZXMgKi9cclxuXHRcdFx0dGhpcy5wYXJzZUVycm9ycyhlcnJvcik7XHJcblxyXG5cdFx0XHQvKiBMb2cgdG8gY29uc29sZSAqL1xyXG5cdFx0XHR0aGlzLndhcm4oYCR7b3BlcmF0aW9ufSBmYWlsZWQ6ICR7ZXJyb3IubWVzc2FnZX1gKTtcclxuXHJcblx0XHRcdC8qIExldCB0aGUgYXBwIGtlZXAgcnVubmluZyBieSByZXR1cm5pbmcgYW4gZW1wdHkgcmVzdWx0ICovXHJcblx0XHRcdHJldHVybiBvZihyZXN1bHQgYXMgVCk7XHJcblx0XHR9O1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogTG9nIHRvIGNvbnNvbGVcclxuXHQgKiBAcGFyYW0gbWVzc2FnZSBcclxuXHQgKiBAcGFyYW0gb3B0aW9uYWxQYXJhbXMgXHJcblx0ICovXHJcblx0cHJvdGVjdGVkIGxvZyhtZXNzYWdlOiBhbnksIC4uLm9wdGlvbmFsUGFyYW1zOiBhbnlbXSkge1xyXG5cdFx0aWYgKHRoaXMuZGVidWcpIHtcclxuXHRcdFx0Y29uc29sZS5sb2cobWVzc2FnZSwgb3B0aW9uYWxQYXJhbXMpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogTG9nIHRvIGNvbnNvbGVcclxuXHQgKiBAcGFyYW0gbWVzc2FnZSBcclxuXHQgKiBAcGFyYW0gb3B0aW9uYWxQYXJhbXMgXHJcblx0ICovXHJcblx0cHJvdGVjdGVkIHdhcm4obWVzc2FnZTogc3RyaW5nLCAuLi5vcHRpb25hbFBhcmFtczogYW55W10pIHtcclxuXHRcdGlmICh0aGlzLmRlYnVnKSB7XHJcblx0XHRcdGNvbnNvbGUud2FybihtZXNzYWdlLCBvcHRpb25hbFBhcmFtcyk7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBDbGVhbnMgdGhlIG9iamVjdHNcclxuXHQgKiBSZW1vdmVzIGVtcHR5IHByb3BlcnRpZXNcclxuXHQgKiBAcGFyYW0gb2JqIFxyXG5cdCAqL1xyXG5cdHByb3RlY3RlZCBjbGVhbihvYmo6IGFueSk6IGFueSB7XHJcblx0XHR0cnkge1xyXG5cdFx0XHRmb3IgKHZhciBwcm9wTmFtZSBpbiBvYmopIHtcclxuXHRcdFx0XHRpZiAob2JqW3Byb3BOYW1lXSA9PT0gbnVsbCB8fCBvYmpbcHJvcE5hbWVdID09PSB1bmRlZmluZWQgfHwgb2JqW3Byb3BOYW1lXSA9PT0gXCJcIikge1xyXG5cdFx0XHRcdFx0ZGVsZXRlIG9ialtwcm9wTmFtZV07XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9IGNhdGNoIChlcnJvcikgeyB9XHJcblxyXG5cdFx0cmV0dXJuIG9iajtcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIFNhbml0aXplcyB0aGUgc3BlY2lmaWVkIG9iamVjdFxyXG5cdCAqIEBwYXJhbSBvYmogXHJcblx0ICogQHJldHVybnMgXHJcblx0ICovXHJcblx0cHJvdGVjdGVkIHNhbml0aXplT2JqZWN0KG9iajogYW55LCAuLi5pZ25vcmU6IHN0cmluZ1tdKTogYW55IHtcclxuXHRcdHJldHVybiBPYmplY3Qua2V5cyhvYmopXHJcblx0XHRcdC5maWx0ZXIoeCA9PiBvYmpbeF0pXHJcblx0XHRcdC5maWx0ZXIoeCA9PiAhKGlnbm9yZSB8fCBbXSkubWFwKHggPT4geC50b0xvd2VyQ2FzZSgpKS5pbmNsdWRlcyh4LnRvTG93ZXJDYXNlKCkpKVxyXG5cdFx0XHQucmVkdWNlKChyZXN1bHQ6IGFueSwga2V5KSA9PiB7XHJcblx0XHRcdFx0cmVzdWx0W2tleV0gPSBpc05hTigrb2JqW2tleV0pID8gb2JqW2tleV0gOiArb2JqW2tleV07XHJcblx0XHRcdFx0cmV0dXJuIHJlc3VsdDtcclxuXHRcdFx0fSwge30pO1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogQ2hlY2tzIGlmIHRoZSB1c2VyIHNlbGVjZXRlZCBhbnkgdGV4dCBpbiB0aGUgZG9jdW1lbnRcclxuXHQgKiBAcmV0dXJucyBcclxuXHQgKi9cclxuXHRwcm90ZWN0ZWQgaXNUZXh0U2VsZWN0ZWQgPSAoKTogYm9vbGVhbiA9PiAod2luZG93Py5nZXRTZWxlY3Rpb24oKT8udG9TdHJpbmcoKT8ubGVuZ3RoID8/IDApID4gMDtcclxuXHJcblx0LyoqXHJcblx0ICogQSBjYWxsYmFjayB1c2VkIGZvciBhbnkgY3VzdG9tIGNsZWFudXAgdGhhdCBuZWVkcyB0byBvY2N1clxyXG5cdCAqIHdoZW4gdGhlIGluc3RhbmNlIGlzIGRlc3Ryb3llZC5cclxuXHQgKi9cclxuXHRuZ09uRGVzdHJveSgpIHtcclxuXHRcdHRoaXMubWF0RXhwYW5zaW9uUGFuZWxTdWJzY3JpcHRpb25zLmZvckVhY2goeCA9PiB4LnVuc3Vic2NyaWJlKCkpO1xyXG5cdH1cclxufSJdfQ==
|
|
674
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jZGsvc3JjL2xpYi9iYXNlL2NvbXBvbmVudHMvYmFzZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNuRCxPQUFPLEVBQWlCLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsU0FBUyxFQUFRLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1SixPQUFPLEVBQUUsU0FBUyxFQUFtQixNQUFNLDBCQUEwQixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDbEQsT0FBTyxFQUFFLGNBQWMsRUFBeUMsTUFBTSxFQUErQixNQUFNLGlCQUFpQixDQUFDO0FBQzdILE9BQU8sRUFBNEIsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3BELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDN0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUN4RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFFcEUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDcEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7QUFJcEQ7O0dBRUc7QUFDSCxXQUFXO0FBRVgsTUFBTSxPQUFnQixhQUFhO0lBNk1aO0lBQWlDO0lBNU12RDs7T0FFRztJQUNJLFVBQVUsQ0FBYTtJQUU5Qjs7T0FFRztJQUNJLFFBQVEsR0FBUSxFQUFFLENBQUM7SUFFMUI7O09BRUc7SUFDSSxJQUFJLENBQVE7SUFFbkI7O09BRUc7SUFDSSxXQUFXLENBQVU7SUFFNUI7O09BRUc7SUFDSSxLQUFLLENBQVU7SUFFdEI7O09BRUc7SUFDSSxRQUFRLENBQVU7SUFFekI7O09BRUc7SUFDSSxLQUFLLEdBQVksS0FBSyxDQUFDO0lBRTlCOztPQUVHO0lBQ0ksU0FBUyxHQUFZLEtBQUssQ0FBQztJQUVsQzs7T0FFRztJQUVJLDJCQUEyQixHQUFZLElBQUksQ0FBQztJQUVuRDs7T0FFRztJQUNJLFNBQVMsR0FBWSxLQUFLLENBQUM7SUFDbEMsSUFBVyxRQUFRLEtBQWMsT0FBTyxJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO0lBQzNFLElBQVcsUUFBUSxDQUFDLFFBQWlCLElBQUksSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFFdEY7O09BRUc7SUFDSSxrQkFBa0IsR0FBWSxLQUFLLENBQUM7SUFFM0M7O09BRUc7SUFDSSxNQUFNLEdBQWtCLElBQUksS0FBSyxFQUFVLENBQUM7SUFFbkQ7O09BRUc7SUFDSSxLQUFLLENBQWlCO0lBRTdCOztPQUVHO0lBQ0ksaUJBQWlCLEdBQWEsTUFBTSxDQUFDLGlCQUFpQixDQUFDO0lBRTlEOztPQUVHO0lBQ0ksYUFBYSxHQUFXLE1BQU0sQ0FBQyxhQUFhLENBQUM7SUFFcEQ7O09BRUc7SUFDSSxhQUFhLEdBQVcsTUFBTSxDQUFDLGFBQWEsQ0FBQztJQUVwRDs7T0FFRztJQUNJLFlBQVksR0FBUSxFQUFFLENBQUM7SUFFOUI7O09BRUc7SUFDSSxNQUFNLENBQVM7SUFFdEI7O09BRUc7SUFDSSxPQUFPLENBQVU7SUFFeEI7O09BRUc7SUFDSSxTQUFTLENBQVU7SUFFMUI7O09BRUc7SUFDSSxTQUFTLEdBQVksS0FBSyxDQUFDO0lBRWxDOztPQUVHO0lBQ0ksU0FBUyxHQUFZLEtBQUssQ0FBQztJQUVsQzs7T0FFRztJQUNJLFlBQVksQ0FBVTtJQUU3Qjs7T0FFRztJQUNJLGdCQUFnQixDQUFVO0lBRWpDOztPQUVHO0lBQ0ksU0FBUyxDQUFVO0lBRTFCOztPQUVHO0lBQ0ksV0FBVyxHQUFhLFVBQVUsQ0FBQyxJQUFJLENBQUM7SUFFL0M7O09BRUc7SUFDSSxPQUFPLEdBQUcsVUFBVSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLENBQUM7SUFFL0Q7O09BRUc7SUFDSSxhQUFhLEdBQUcsVUFBVSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsbUJBQW1CLENBQUMsQ0FBQztJQUUzRTs7T0FFRztJQUNJLGlCQUFpQixHQUFHLFVBQVUsQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLHVCQUF1QixDQUFDLENBQUM7SUFFbkY7O09BRUc7SUFFSSxNQUFNLEdBQXNCLElBQUksWUFBWSxFQUFPLENBQUM7SUFFM0Q7O09BRUc7SUFDTyxZQUFZLENBQVE7SUFFOUI7O09BRUc7SUFDTyxlQUFlLENBQWM7SUFFdkM7O09BRUc7SUFDTyxhQUFhLENBQWtCO0lBRXpDOztPQUVHO0lBQ08sTUFBTSxDQUFZO0lBRTVCOztPQUVHO0lBQ08sUUFBUSxDQUFXO0lBRTdCOztPQUVHO0lBQ08sVUFBVSxHQUFZLElBQUksQ0FBQztJQUVyQzs7T0FFRztJQUVPLGlDQUFpQyxDQUF5QjtJQUVwRTs7T0FFRztJQUVPLDBCQUEwQixDQUFnQztJQUVwRTs7T0FFRztJQUNPLDhCQUE4QixHQUFtQixFQUFFLENBQUM7SUFFOUQ7O09BRUc7SUFDSCxZQUFzQixLQUFxQixFQUFZLGlCQUFvQztRQUFyRSxVQUFLLEdBQUwsS0FBSyxDQUFnQjtRQUFZLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFDMUYsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzNDLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUN0RCxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDekMsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQzdDLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNwRCxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDdEMsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzlDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUUxQyxhQUFhLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQztRQUNyQyxhQUFhLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDbkMsYUFBYSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDO1FBRTNDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUNuQixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsUUFBUTtRQUNQLHdDQUF3QztRQUN4QyxJQUFJLFNBQVMsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDdkQsSUFBSSxTQUFTLEVBQUU7WUFDZCxJQUFJLENBQUMsSUFBSSxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO1lBQ2hDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztTQUNqQjtRQUVELG1DQUFtQztRQUNuQyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDO1FBQy9DLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLElBQUksS0FBSyxDQUFDO1FBRTVDLCtCQUErQjtRQUMvQixJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxRQUFzQixFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxHQUFHLFFBQVEsQ0FBQyxDQUFDO1FBRW5GOztXQUVHO1FBQ0gsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRTtZQUN0QixJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBaUIsRUFBRSxFQUFFO2dCQUNyRCxJQUFJLENBQUMsU0FBUyxLQUFLLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7Z0JBQzdILElBQUksQ0FBQyxTQUFTLEdBQUcsVUFBVSxDQUFDLFdBQVcsQ0FBQyxRQUFRLEVBQUUsU0FBUyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQztnQkFDN0UsSUFBSSxDQUFDLFNBQVMsR0FBRyxVQUFVLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRSxTQUFTLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDO1lBQzlFLENBQUMsQ0FBQyxDQUFDO1NBQ0g7UUFFRCx1QkFBdUI7UUFDdkIsSUFBSSxDQUFDLFlBQVksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDakQsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFdEU7O1dBRUc7UUFDSCxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDaEMsSUFBSSxhQUFhLEdBQUksQ0FBWSxFQUFFLFdBQTRCLENBQUM7WUFDaEUsSUFBSSxhQUFhLEVBQUU7Z0JBQ2xCLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztnQkFDakIsSUFBSSxDQUFDLFlBQVksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQzthQUNuRDtRQUNGLENBQUMsQ0FBQyxDQUFDO1FBRUgsK0JBQStCO1FBQy9CLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7SUFDdkUsQ0FBQztJQUVEOztPQUVHO0lBQ0gsZUFBZTtRQUNkLGlFQUFpRTtRQUNqRSxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBRXZCLGdCQUFnQjtRQUNoQixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7UUFFakI7OztXQUdHO1FBQ0gsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGFBQWEsRUFBRSxDQUFDO1FBRXZDLHdDQUF3QztRQUN4QyxJQUFJLElBQUksQ0FBQywyQkFBMkIsRUFBRTtZQUNyQyxJQUFJLENBQUMsdUJBQXVCLEVBQUUsQ0FBQztTQUMvQjtJQUNGLENBQUM7SUFFRDs7T0FFRztJQUNJLFVBQVU7UUFDaEIsSUFBSSxVQUFVLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUM7UUFDakMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsR0FBRyxFQUFFLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLFVBQVUsRUFBRSxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDOUgsQ0FBQztJQUVEOztPQUVHO0lBQ0ksbUJBQW1CO1FBQ3pCLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNuQixJQUFJLE9BQU8sR0FBWSxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDNUQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7U0FDOUM7SUFDRixDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksYUFBYTtRQUNuQixJQUFJLENBQUMsaUJBQWlCLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDeEMsQ0FBQztJQUVEOzs7T0FHRztJQUNPLFlBQVksQ0FBQyxTQUFpQjtRQUN2QyxJQUFJO1lBQUUsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUMsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7U0FBRTtRQUNyRixPQUFPLEtBQUssRUFBRSxHQUFHO0lBQ2xCLENBQUM7SUFFRDs7T0FFRztJQUNPLHVCQUF1QjtRQUNoQyx3Q0FBd0M7UUFDeEMsSUFBSSxDQUFDLDBCQUEwQixFQUFFLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDdEQsOERBQThEO1lBQzlELElBQUksQ0FBQyw4QkFBOEIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztZQUVsRSxvQkFBb0I7WUFDcEIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGFBQWEsRUFBRSxDQUFDO1lBRXZDLDBDQUEwQztZQUMxQyxJQUFJLHNCQUFzQixHQUFHLElBQUksQ0FBQyxpQ0FBaUMsRUFBRSxPQUFPLEVBQUUsRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsYUFBYSxFQUFFLEVBQUUsRUFBRSxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztZQUM1SSxJQUFJLHNCQUFzQixJQUFJLENBQUMsRUFBRTtnQkFDaEMsc0JBQXNCO2dCQUN0QixJQUFJLENBQUMsMEJBQTBCLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsQ0FBQztnQkFFOUQsd0JBQXdCO2dCQUN4QixJQUFJLENBQUMsMEJBQTBCLEVBQUUsT0FBTyxFQUFFLENBQUMsc0JBQXNCLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQztnQkFFM0Usb0JBQW9CO2dCQUNwQixJQUFJLENBQUMsaUJBQWlCLENBQUMsYUFBYSxFQUFFLENBQUM7YUFDdkM7aUJBQU07Z0JBQ04sK0RBQStEO2dCQUMvRCxJQUFJLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxHQUFHLENBQUM7b0JBQ3ZCLEVBQUUsTUFBTSxDQUFDLENBQUMsV0FBZ0IsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxZQUFZLENBQUMsRUFBRSxFQUFFLENBQUM7b0JBQ3RKLEVBQUUsT0FBTyxDQUFDLENBQUMsSUFBWSxFQUFFLEVBQUU7b0JBQzFCLElBQUksbUJBQW1CLEdBQUcsSUFBSSxDQUFDLGlDQUFpQyxFQUFFLE9BQU8sRUFBRSxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsRUFBRSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO29CQUM5SCxJQUFJLG1CQUFtQixJQUFJLENBQUMsRUFBRTt3QkFDN0IsSUFBSSxDQUFDLDBCQUEwQixFQUFFLE9BQU8sRUFBRSxDQUFDLG1CQUFtQixDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUM7d0JBQ3hFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLEVBQUUsQ0FBQztxQkFDdkM7Z0JBQ0YsQ0FBQyxDQUFDLENBQUM7YUFDSjtZQUVELHNDQUFzQztZQUN0QyxJQUFJLENBQUMsMEJBQTBCLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFO2dCQUM1QyxJQUFJLENBQUMsOEJBQThCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFO29CQUMvRCxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUU7d0JBQ3BCLDRDQUE0Qzt3QkFDNUMsSUFBSSxjQUFjLEdBQUcsQ0FBQyxDQUFDLG1CQUFtQixDQUFDLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxFQUFFLENBQUM7d0JBRXhFLDBEQUEwRDt3QkFDMUQsSUFBSSxjQUFjLEVBQUU7NEJBQ25CLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRSxjQUFjLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7eUJBQ3pFO3dCQUVELCtDQUErQzs2QkFDMUM7NEJBQ0osSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsRUFBRSxFQUFFLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7eUJBQy9DO3FCQUNEO29CQUVELG9CQUFvQjtvQkFDcEIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGFBQWEsRUFBRSxDQUFDO2dCQUN4QyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUVKLHNDQUFzQztnQkFDdEMsSUFBSSxDQUFDLDhCQUE4QixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRTtvQkFDL0QsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFO3dCQUNwQiw0Q0FBNEM7d0JBQzVDLElBQUksbUJBQW1CLEdBQUcsQ0FBQyxDQUFDLG1CQUFtQixDQUFDLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO3dCQUV6RiwwREFBMEQ7d0JBQzFELElBQUksbUJBQW1CLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTs0QkFDbkMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFFLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7eUJBQ3JHO3FCQUNEO29CQUVELG9CQUFvQjtvQkFDcEIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGFBQWEsRUFBRSxDQUFDO2dCQUN4QyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ0wsQ0FBQyxDQUFDLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztRQUVILHlDQUF5QztRQUN6QyxJQUFJLElBQUksQ0FBQywwQkFBMEIsRUFBRTtZQUNwQyxJQUFJLENBQUMsMEJBQTBCLENBQUMsZUFBZSxFQUFFLENBQUM7U0FDbEQ7SUFDRixDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ08sVUFBVSxDQUFJLEtBQWM7UUFDckMsT0FBTyxjQUFjLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRDs7O09BR0c7SUFDTyxZQUFZLENBQUMsUUFBZ0M7UUFDdEQsSUFBSSxRQUFRLElBQUksUUFBUyxDQUFDLE1BQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ3hELE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFTLENBQUMsTUFBTyxDQUFDLENBQUM7U0FDNUM7UUFFRCxPQUFPLFFBQVEsQ0FBQztJQUNqQixDQUFDO0lBRUQ7O09BRUc7SUFDTyxvQkFBb0I7UUFDN0IsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQztZQUNyQyxPQUFPLEVBQUUsU0FBUyxDQUFBLHlFQUF5RTtZQUMzRixLQUFLLEVBQUUsU0FBUyxDQUFBLHVDQUF1QztZQUN2RCxZQUFZLEVBQUUsU0FBUyxDQUFBLGtCQUFrQjtZQUN6QyxZQUFZLEVBQUUsU0FBUyxDQUFBLGtCQUFrQjtTQUN6QyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDbEIsQ0FBQztJQUVEOztPQUVHO0lBQ08scUJBQXFCO1FBQzlCLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUM7WUFDckMsT0FBTyxFQUFFLFNBQVMsQ0FBQSxtRkFBbUY7WUFDckcsS0FBSyxFQUFFLFNBQVMsQ0FBQSx1Q0FBdUM7WUFDdkQsWUFBWSxFQUFFLFNBQVMsQ0FBQSxrQkFBa0I7WUFDekMsWUFBWSxFQUFFLFNBQVMsQ0FBQSxrQkFBa0I7U0FDekMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ2xCLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSSxzQkFBc0IsQ0FBQyxPQUFlLEVBQUUsU0FBMEIsRUFBRSxlQUEwQixFQUFFLGFBQXdCO1FBQzlILElBQUksQ0FBQyxhQUFhO2FBQ2hCLFdBQVcsQ0FBQztZQUNaLE9BQU8sRUFBRSxPQUFPO1lBQ2hCLEtBQUssRUFBRSxTQUFTLENBQUEsaUNBQWlDO1lBQ2pELFlBQVksRUFBRSxTQUFTLENBQUEsa0JBQWtCO1lBQ3pDLFlBQVksRUFBRSxTQUFTLENBQUEsVUFBVTtTQUNqQyxDQUFDO2FBQ0QsV0FBVyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBZSxFQUFFLEVBQUU7WUFDNUMsSUFBSSxNQUFNLEVBQUU7Z0JBQ1gsU0FBUyxDQUFDLFNBQVMsQ0FBQztvQkFDbkIsSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUU7d0JBQ1gsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUEsa0RBQWtELENBQUMsQ0FBQzt3QkFDOUUsSUFBSSxlQUFlLEVBQUU7NEJBQ3BCLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQzt5QkFDbkI7b0JBQ0YsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLE1BQU0sRUFBRSxFQUFFO3dCQUNwQixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQzt3QkFDdEIsSUFBSSxhQUFhLEVBQUU7NEJBQ2xCLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQzt5QkFDdEI7b0JBQ0YsQ0FBQztpQkFDRCxDQUFDLENBQUM7YUFDSDtRQUNGLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOztPQUVHO0lBQ0ksVUFBVSxDQUFhLFVBQW1CLEVBQUUsTUFBMEIsRUFBRSxRQUFrQjtRQUNoRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxVQUFVLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQyxFQUFFLEVBQUUsTUFBTSxDQUFDLENBQUM7YUFDbkgsV0FBVyxFQUFFO2FBQ2IsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNPLFdBQVcsQ0FBQyxPQUFnQixFQUFFLE9BQW9CLFdBQVcsQ0FBQyxPQUFPO1FBQzlFLElBQUksYUFBYSxHQUFHLFNBQVMsQ0FBQztRQUM5QixRQUFRLElBQUksRUFBRTtZQUNiLEtBQUssV0FBVyxDQUFDLE9BQU87Z0JBQ3ZCLGFBQWEsR0FBRyxTQUFTLENBQUM7Z0JBQzFCLE1BQU07WUFFUCxLQUFLLFdBQVcsQ0FBQyxPQUFPO2dCQUN2QixhQUFhLEdBQUcsTUFBTSxDQUFDO2dCQUN2QixNQUFNO1lBRVAsS0FBSyxXQUFXLENBQUMsS0FBSztnQkFDckIsYUFBYSxHQUFHLE9BQU8sQ0FBQztnQkFDeEIsTUFBTTtZQUVQO2dCQUNDLE1BQU07U0FDUDtRQUVELElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLE9BQU8sSUFBSSxTQUFTLENBQUEsa0RBQWtELEVBQUUsU0FBUyxFQUFFO1lBQzVHLFFBQVEsRUFBRSxJQUFJO1lBQ2QsVUFBVSxFQUFFLENBQUMsYUFBYSxDQUFDO1NBQzNCLENBQUMsQ0FBQztJQUNKLENBQUM7SUFFRDs7T0FFRztJQUNPLFVBQVUsQ0FBQyxlQUFvQixFQUFFO1FBQzFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRTtZQUNoQyxTQUFTLEVBQUUsS0FBSztZQUNoQixNQUFNLEVBQUUsTUFBTTtZQUNkLElBQUksRUFBRSxLQUFLO1lBQ1gsTUFBTSxFQUFFLE9BQU87WUFDZixXQUFXLEVBQUUsS0FBSztZQUNsQixPQUFPLEVBQUUsSUFBSSxDQUFDLGFBQWE7WUFDM0IsT0FBTyxFQUFFLElBQUksQ0FBQyxhQUFhO1lBQzNCLGFBQWEsRUFBRSxJQUFJO1lBQ25CLFFBQVEsRUFBRSxJQUFJO1lBQ2QsWUFBWSxFQUFFLDZCQUE2QjtZQUMzQyxpQkFBaUIsRUFBRSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxPQUFPO1lBQ25ELGlCQUFpQixFQUFFLElBQUk7WUFDdkIsYUFBYSxFQUFFLElBQUk7WUFDbkIsWUFBWSxFQUFFLEtBQUs7WUFDbkIsdUJBQXVCLEVBQUUsdUNBQXVDO1lBQ2hFLDBCQUEwQixFQUFFLElBQUk7U0FDaEMsRUFBRSxZQUFZLENBQUMsQ0FBQztRQUVqQixJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDO0lBQ2hDLENBQUM7SUFFRDs7T0FFRztJQUNPLFNBQVM7UUFDbEIsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ2QsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDLENBQUM7WUFDbEQsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBRTFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRTtnQkFDckIsT0FBTzthQUNQO1lBRUQsa0NBQWtDO1lBQ2xDLElBQUksUUFBUSxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDL0QsSUFBSSxRQUFRLEVBQUU7Z0JBQ2IsSUFBSTtvQkFBRSxJQUFJLENBQUMsUUFBUSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7aUJBQUU7Z0JBQzlDLE9BQU8sQ0FBQyxFQUFFO29CQUFFLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO2lCQUFFO2FBQ3ZDO2lCQUFNO2dCQUNOLHVCQUF1QjtnQkFDdkIsSUFBSSxZQUFZLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFFaEUsK0RBQStEO2dCQUMvRCxZQUFZLEdBQUcsWUFBWSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDO2dCQUV6Riw0REFBNEQ7Z0JBQzVELElBQUksT0FBTyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3JFLElBQUksT0FBTyxFQUFFO29CQUNaLElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQztpQkFDOUI7YUFDRDtTQUNEO0lBQ0YsQ0FBQztJQUVEOzs7T0FHRztJQUNJLFFBQVEsQ0FBQyxRQUFlLEVBQUUsV0FBaUIsRUFBRSxRQUFpQixFQUFFLGdCQUEwQjtRQUNoRyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUU7WUFDOUIsV0FBVyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxTQUFTLEVBQUUsSUFBSSxDQUFDLFlBQVksRUFBRSxFQUFFLFdBQVcsSUFBSSxFQUFFLENBQUM7WUFDL0UsUUFBUSxFQUFFLFFBQVE7WUFDbEIsZ0JBQWdCLEVBQUUsZ0JBQWdCO1lBQ2xDLFVBQVUsRUFBRSxJQUFJLENBQUMsS0FBSztTQUN0QixDQUFDLENBQUM7SUFDSixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNPLGFBQWEsQ0FBQyxJQUFTO1FBQ2hDLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDVixPQUFPLElBQUksV0FBVyxFQUFFLENBQUM7U0FDekI7UUFFRCxPQUFPLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUM7YUFDckMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLElBQUksSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDO2FBQ25ELE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksV0FBVyxFQUFFLENBQUMsQ0FBQztJQUNoRSxDQUFDO0lBRUQ7OztPQUdHO0lBQ08sV0FBVyxDQUFDLE1BQVc7UUFDaEMsSUFBSSxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7UUFDdkIsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7UUFFdEIsSUFBSSxNQUFNLEVBQUU7WUFDWCxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsRUFBRTtnQkFDaEMsSUFBSSxLQUFLLEdBQUcsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUN2QixJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUU7b0JBQ3pCLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUU7d0JBQ25CLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO29CQUN2QixDQUFDLENBQUMsQ0FBQztpQkFDSDtxQkFBTSxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRTtvQkFDckMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7aUJBQ3hCO1lBQ0YsQ0FBQyxDQUFDLENBQUM7U0FDSDtJQUNGLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNPLFdBQVcsQ0FBSSxTQUFTLEdBQUcsV0FBVyxFQUFFLE1BQVU7UUFDM0QsT0FBTyxDQUFDLEtBQVUsRUFBaUIsRUFBRTtZQUVwQyw4QkFBOEI7WUFDOUIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUV4QixvQkFBb0I7WUFDcEIsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLFNBQVMsWUFBWSxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztZQUVuRCwyREFBMkQ7WUFDM0QsT0FBTyxFQUFFLENBQUMsTUFBVyxDQUFDLENBQUM7UUFDeEIsQ0FBQyxDQUFDO0lBQ0gsQ0FBQztJQUVEOzs7O09BSUc7SUFDTyxHQUFHLENBQUMsT0FBWSxFQUFFLEdBQUcsY0FBcUI7UUFDbkQsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ2YsT0FBTyxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsY0FBYyxDQUFDLENBQUM7U0FDckM7SUFDRixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNPLElBQUksQ0FBQyxPQUFlLEVBQUUsR0FBRyxjQUFxQjtRQUN2RCxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDZixPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxjQUFjLENBQUMsQ0FBQztTQUN0QztJQUNGLENBQUM7SUFFRDs7OztPQUlHO0lBQ08sS0FBSyxDQUFDLEdBQVE7UUFDdkIsSUFBSTtZQUNILEtBQUssSUFBSSxRQUFRLElBQUksR0FBRyxFQUFFO2dCQUN6QixJQUFJLEdBQUcsQ0FBQyxRQUFRLENBQUMsS0FBSyxJQUFJLElBQUksR0FBRyxDQUFDLFFBQVEsQ0FBQyxLQUFLLFNBQVMsSUFBSSxHQUFHLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxFQUFFO29CQUNsRixPQUFPLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztpQkFDckI7YUFDRDtTQUNEO1FBQUMsT0FBTyxLQUFLLEVBQUUsR0FBRztRQUVuQixPQUFPLEdBQUcsQ0FBQztJQUNaLENBQUM7SUFFRDs7OztPQUlHO0lBQ08sY0FBYyxDQUFDLEdBQVEsRUFBRSxHQUFHLE1BQWdCO1FBQ3JELE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUM7YUFDckIsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ25CLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLElBQUksRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO2FBQ2hGLE1BQU0sQ0FBQyxDQUFDLE1BQVcsRUFBRSxHQUFHLEVBQUUsRUFBRTtZQUM1QixNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDdEQsT0FBTyxNQUFNLENBQUM7UUFDZixDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDVCxDQUFDO0lBRUQ7OztPQUdHO0lBQ08sY0FBYyxHQUFHLEdBQVksRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLFlBQVksRUFBRSxFQUFFLFFBQVEsRUFBRSxFQUFFLE1BQU0sSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7SUFFaEc7OztPQUdHO0lBQ0gsV0FBVztRQUNWLElBQUksQ0FBQyw4QkFBOEIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztJQUNuRSxDQUFDOzBIQXR0Qm9CLGFBQWE7OEdBQWIsYUFBYSx1TEE0THBCLGlCQUFpQiwyQkFBVSxVQUFVLDZEQU1yQyxpQkFBaUI7OzJGQWxNVixhQUFhO2tCQURsQyxTQUFTO21IQThDRiwyQkFBMkI7c0JBRGpDLEtBQUs7Z0JBNkdDLE1BQU07c0JBRFosTUFBTTtnQkFxQ0csaUNBQWlDO3NCQUQxQyxZQUFZO3VCQUFDLGlCQUFpQixFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRTtnQkFPM0MsMEJBQTBCO3NCQURuQyxZQUFZO3VCQUFDLGlCQUFpQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IExvY2F0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgSHR0cEhlYWRlcnMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IEFmdGVyVmlld0luaXQsIENoYW5nZURldGVjdG9yUmVmLCBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBRdWVyeUxpc3QsIFR5cGUsIFZpZXdDaGlsZHJlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXREaWFsb2csIE1hdERpYWxvZ0NvbmZpZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcbmltcG9ydCB7IE1hdEV4cGFuc2lvblBhbmVsIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZXhwYW5zaW9uJztcclxuaW1wb3J0IHsgTWF0U25hY2tCYXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zbmFjay1iYXInO1xyXG5pbXBvcnQgeyBUaXRsZSB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgQWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgTmF2aWdhdGlvbkVuZCwgUm91dGVyLCBTY3JvbGwsIFVybFNlZ21lbnQsIFVybFRyZWUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb24sIG9mIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IENvbnRleHRIZWxwZXIgfSBmcm9tICcuLi8uLi9jb21tb24vY29tbW9uLm1vZHVsZSc7XHJcbmltcG9ydCB7IEFwcFNldHRpbmcgfSBmcm9tICcuLi8uLi9jb21tb24vbW9kZWxzL2FwcC1zZXR0aW5nJztcclxuaW1wb3J0IHsgU2VydmljZUxvY2F0b3IgfSBmcm9tICcuLi8uLi9jb21tb24vc2VydmljZXMvc2VydmljZS1sb2NhdG9yJztcclxuaW1wb3J0IHsgVmREaWFsb2dTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vZGlhbG9ncy9zZXJ2aWNlcy9kaWFsb2cuc2VydmljZSc7XHJcbmltcG9ydCB7IFZkTWVkaWFTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vbWVkaWEvc2VydmljZXMvbWVkaWEuc2VydmljZSc7XHJcbmltcG9ydCB7IE1lbnUgfSBmcm9tICcuLi8uLi9tZW51L21vZGVscy9tZW51JztcclxuaW1wb3J0IHsgQ29tbW9uIH0gZnJvbSAnLi4vY29uc3RhbnRzL2NvbW1vbic7XHJcbmltcG9ydCB7IEdsb2JhbFJvbGVzIH0gZnJvbSAnLi4vY29uc3RhbnRzL2dsb2JhbC1yb2xlcyc7XHJcbmltcG9ydCB7IE1lc3NhZ2VUeXBlIH0gZnJvbSAnLi4vZW51bXMvbWVzc2FnZS10eXBlJztcclxuaW1wb3J0IHsgQXV0aEhlbHBlciB9IGZyb20gJy4uL2hlbHBlcnMvYXV0aC1oZWxwZXInO1xyXG5pbXBvcnQgeyBJQmFzZUNvbXBvbmVudCB9IGZyb20gJy4uL2ludGVyZmFjZXMvaWJhc2UtY29tcG9uZW50JztcclxuaW1wb3J0IHsgQXV0aFVzZXIgfSBmcm9tICcuLi9tb2RlbHMvYXV0aC11c2VyJztcclxuXHJcbi8qKlxyXG4gKiBBIGJhc2UgbGlzdCBjb21wb25lbnQgZm9yIGNvbXBvbmVudHMgd2l0aCBwYWdpbmF0aW9uIHN1cHBvcnRcclxuICovXHJcbi8vIEBkeW5hbWljXHJcbkBEaXJlY3RpdmUoKVxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIElCYXNlQ29tcG9uZW50LCBPbkluaXQsIEFmdGVyVmlld0luaXQge1xyXG5cdC8qKlxyXG5cdCAqIEFwcCBzZXR0aW5nc1xyXG5cdCAqL1xyXG5cdHB1YmxpYyBhcHBTZXR0aW5nOiBBcHBTZXR0aW5nO1xyXG5cclxuXHQvKipcclxuXHQgKiBzZXR0aW5nczogQW55XHJcblx0ICovXHJcblx0cHVibGljIHNldHRpbmdzOiBhbnkgPSB7fTtcclxuXHJcblx0LyoqXHJcblx0ICogTWVudSBpdGVtc1xyXG5cdCAqL1xyXG5cdHB1YmxpYyBtZW51PzogTWVudTtcclxuXHJcblx0LyoqXHJcblx0ICogVGhlIG5hbWUgb2YgdGhlIHByb2plY3RcclxuXHQgKi9cclxuXHRwdWJsaWMgcHJvamVjdE5hbWU/OiBzdHJpbmc7XHJcblxyXG5cdC8qKlxyXG5cdCAqIFRoZSB0aXRsZSBvZiB0aGUgY3VycmVudCBwYWdlXHJcblx0ICovXHJcblx0cHVibGljIHRpdGxlPzogc3RyaW5nO1xyXG5cclxuXHQvKipcclxuXHQgKiBUaGUgc3VidGl0bGUgb2YgdGhlIGN1cnJlbnQgb3V0bGV0XHJcblx0ICovXHJcblx0cHVibGljIHN1YnRpdGxlPzogc3RyaW5nO1xyXG5cclxuXHQvKipcclxuXHQgKiBJZiB0cnVlLCB1c2Ugc29tZSBkdW1teSBkYXRhIGFuZCBzaG93IGRlYnVnIGxvZ3NcclxuXHQgKi9cclxuXHRwdWJsaWMgZGVidWc6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcblx0LyoqXHQgXHJcblx0ICogTG9hZGluZyBzdGF0dXNcclxuXHQgKi9cclxuXHRwdWJsaWMgaXNMb2FkaW5nOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG5cdC8qKlxyXG5cdCAqIGhhbmRsZUV4cGFuc2lvblBhbmVsQ2hhbmdlczogYm9vbGVhblxyXG5cdCAqL1xyXG5cdEBJbnB1dCgpXHJcblx0cHVibGljIGhhbmRsZUV4cGFuc2lvblBhbmVsQ2hhbmdlczogYm9vbGVhbiA9IHRydWU7XHJcblxyXG5cdC8qKlxyXG5cdCAqIFNhdmluZyBzdGF0dXNcclxuXHQgKi9cclxuXHRwdWJsaWMgX2lzU2F2aW5nOiBib29sZWFuID0gZmFsc2U7XHJcblx0cHVibGljIGdldCBpc1NhdmluZygpOiBib29sZWFuIHsgcmV0dXJuIHRoaXMuX2lzU2F2aW5nIHx8IHRoaXMuaXNMb2FkaW5nOyB9XHJcblx0cHVibGljIHNldCBpc1NhdmluZyhpc1NhdmluZzogYm9vbGVhbikgeyB0aGlzLmlzTG9hZGluZyA9IHRoaXMuX2lzU2F2aW5nID0gaXNTYXZpbmc7IH1cclxuXHJcblx0LyoqXHJcblx0ICogQSBmbGFnIGVpbmRpY2F0ZXMgdGhhdCB0aGUgZWRpdG9yIGlzIGluaXRlZFxyXG5cdCAqL1xyXG5cdHB1YmxpYyBpc0VkaXRvckluaXRpYWx6ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcblx0LyoqXHJcblx0ICogUmVwcmVzZW50cyB0aGUgcmVxdWVzdCBlcnJvcnNcclxuXHQgKi9cclxuXHRwdWJsaWMgZXJyb3JzOiBBcnJheTxzdHJpbmc+ID0gbmV3IEFycmF5PHN0cmluZz4oKTtcclxuXHJcblx0LyoqXHJcblx0ICogVXNlZCB0byBldmFsdWF0ZSB3aGV0aGVyIGEgZ2l2ZW4gbWVkaWEgcXVlcnkgaXMgdHJ1ZSBvciBmYWxzZSBnaXZlbiB0aGUgY3VycmVudCBkZXZpY2UncyBzY3JlZW4gLyB3aW5kb3cgc2l6ZS5cclxuXHQgKi9cclxuXHRwdWJsaWMgbWVkaWE6IFZkTWVkaWFTZXJ2aWNlO1xyXG5cclxuXHQvKipcclxuXHQgKiBBbGxvd2VkIGZpbGUgZXh0ZW5zaW9uc1xyXG5cdCAqL1xyXG5cdHB1YmxpYyBhbGxvd2VkRXh0ZW5zaW9uczogc3RyaW5nW10gPSBDb21tb24uYWxsb3dlZEV4dGVuc2lvbnM7XHJcblxyXG5cdC8qKlxyXG5cdCAqIHRpbnlNQ0UgcGx1Z2luc1xyXG5cdCAqL1xyXG5cdHB1YmxpYyBlZGl0b3JQbHVnaW5zOiBzdHJpbmcgPSBDb21tb24uZWRpdG9yUGx1Z2lucztcclxuXHJcblx0LyoqXHJcblx0ICogdGlueU1DRSBlZGl0b3JcclxuXHQgKi9cclxuXHRwdWJsaWMgZWRpdG9yVG9vbGJhcjogc3RyaW5nID0gQ29tbW9uLmVkaXRvclRvb2xiYXI7XHJcblxyXG5cdC8qKlxyXG5cdCAqIEVkaXRvciBjb25maWd1cmF0aW9uXHJcblx0ICovXHJcblx0cHVibGljIGVkaXRvckNvbmZpZzogYW55ID0ge307XHJcblxyXG5cdC8qKlxyXG5cdCAqIFByb3ZpZGVzIHRoZSBuYXZpZ2F0aW9uIGFuZCB1cmwgbWFuaXB1bGF0aW9uIGNhcGFiaWxpdGllcy5cclxuXHQgKi9cclxuXHRwdWJsaWMgcm91dGVyOiBSb3V0ZXI7XHJcblxyXG5cdC8qKlxyXG5cdCAqIHVybEhhc2g6IHN0cmluZ1xyXG5cdCAqL1xyXG5cdHB1YmxpYyB1cmxIYXNoPzogc3RyaW5nO1xyXG5cclxuXHQvKipcclxuXHQgKiBDbGFzcyBuYW1lXHJcblx0ICovXHJcblx0cHVibGljIGNsYXNzTmFtZT86IHN0cmluZztcclxuXHJcblx0LyoqXHJcblx0ICogQ3JlYXRlIHBlcm1pc3Npb25cclxuXHQgKi9cclxuXHRwdWJsaWMgY2FuQ3JlYXRlOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG5cdC8qKlxyXG5cdCAqIFVwZGF0ZSBwZXJtaXNzaW9uXHJcblx0ICovXHJcblx0cHVibGljIGNhblVwZGF0ZTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuXHQvKipcclxuXHQgKiBDdXJyZW50IHJvdXRlXHJcblx0ICovXHJcblx0cHVibGljIGN1cnJlbnRSb3V0ZT86IHN0cmluZztcclxuXHJcblx0LyoqXHJcblx0ICogQ3VycmVudCBiYXNlIHJvdXRlXHJcblx0ICovXHJcblx0cHVibGljIGN1cnJlbnRCYXNlUm91dGU/OiBzdHJpbmc7XHJcblxyXG5cdC8qKlxyXG5cdCAqIEEgdXJsIHRvIHJldHVybiB0byBhZnRlciBzYXZlXHJcblx0ICovXHJcblx0cHVibGljIHJldHVyblVybD86IHN0cmluZztcclxuXHJcblx0LyoqXHJcblx0ICogQ3VycmVudCB1c2VyIG9iamVjdFxyXG5cdCAqL1xyXG5cdHB1YmxpYyBjdXJyZW50VXNlcjogQXV0aFVzZXIgPSBBdXRoSGVscGVyLnVzZXI7XHJcblxyXG5cdC8qKlxyXG5cdCAqIElzIHRoZSBjdXJyZW50IHVzZXIgYSBjbGllbnQgYWRtaW5cclxuXHQgKi9cclxuXHRwdWJsaWMgaXNBZG1pbiA9IEF1dGhIZWxwZXIuaGFzUm9sZShHbG9iYWxSb2xlcy5BZG1pbmlzdHJhdG9yKTtcclxuXHJcblx0LyoqXHJcblx0ICogSXMgdGhlIGN1cnJlbnQgdXNlciBhIGNsaWVudCBhZG1pblxyXG5cdCAqL1xyXG5cdHB1YmxpYyBpc0NsaWVudEFkbWluID0gQXV0aEhlbHBlci5oYXNSb2xlKEdsb2JhbFJvbGVzLkNsaWVudEFkbWluaXN0cmF0b3IpO1xyXG5cclxuXHQvKipcclxuXHQgKiBJcyB0aGUgY3VycmVudCB1c2VyIGEgZGVwYXJ0bWVudCBhZG1pblxyXG5cdCAqL1xyXG5cdHB1YmxpYyBpc0RlcGFydG1lbnRBZG1pbiA9IEF1dGhIZWxwZXIuaGFzUm9sZShHbG9iYWxSb2xlcy5EZXBhcnRtZW50QWRtaW5pc3RyYXRvcik7XHJcblxyXG5cdC8qKlxyXG5cdCAqIHJlbG9hZD86IGZ1bmN0aW9uXHJcblx0ICovXHJcblx0QE91dHB1dCgpXHJcblx0cHVibGljIHJlbG9hZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcblx0LyoqXHJcblx0ICogQSBzZXJ2aWNlIHRoYXQgY2FuIGJlIHVzZWQgdG8gZ2V0IGFuZCBzZXQgdGhlIHRpdGxlIG9mIGEgY3VycmVudCBIVE1MIGRvY3VtZW50LlxyXG5cdCAqL1xyXG5cdHByb3RlY3RlZCB0aXRsZVNlcnZpY2U6IFRpdGxlO1xyXG5cclxuXHQvKipcclxuXHQgKiBBIHNlcnZpY2UgdG8gZGlzcGF0Y2ggTWF0ZXJpYWwgRGVzaWduIHNuYWNrIGJhciBtZXNzYWdlcy5cclxuXHQgKi9cclxuXHRwcm90ZWN0ZWQgc25hY2tCYXJTZXJ2aWNlOiBNYXRTbmFja0JhcjtcclxuXHJcblx0LyoqXHJcblx0ICogQSBzZXJ2aWNlIHRvIHNob3cgY29uaXJtIGFuZCBwcm9tcHQgZGlhbG9ncy5cclxuXHQgKi9cclxuXHRwcm90ZWN0ZWQgZGlhbG9nU2VydmljZTogVmREaWFsb2dTZXJ2aWNlO1xyXG5cclxuXHQvKipcclxuXHQgKiBBIHNlcnZpY2UgdG8gc2hvdyBjb25pcm0gYW5kIHByb21wdCBkaWFsb2dzLlxyXG5cdCAqL1xyXG5cdHByb3RlY3RlZCBkaWFsb2c6IE1hdERpYWxvZztcclxuXHJcblx0LyoqXHJcblx0ICogbG9jYXRpb246IExvY2F0aW9uXHJcblx0ICovXHJcblx0cHJvdGVjdGVkIGxvY2F0aW9uOiBMb2NhdGlvbjtcclxuXHJcblx0LyoqXHJcblx0ICogSWYgdHJ1ZSwgc2V0IHVybCBoYXNoXHJcblx0ICovXHJcblx0cHJvdGVjdGVkIHNldFVybEhhc2g6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuXHQvKipcclxuXHQgKiBNYXRFeHBhbnNpb25QYW5lbCByZWZcclxuXHQgKi9cclxuXHRAVmlld0NoaWxkcmVuKE1hdEV4cGFuc2lvblBhbmVsLCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSlcclxuXHRwcm90ZWN0ZWQgbWF0RXhwYW5zaW9uUGFuZWxFbGVtZW50UXVlcnlMaXN0PzogUXVlcnlMaXN0PEVsZW1lbnRSZWY+O1xyXG5cclxuXHQvKipcclxuXHQgKiBNYXRFeHBhbnNpb25QYW5lbCByZWZcclxuXHQgKi9cclxuXHRAVmlld0NoaWxkcmVuKE1hdEV4cGFuc2lvblBhbmVsKVxyXG5cdHByb3RlY3RlZCBtYXRFeHBhbnNpb25QYW5lbFF1ZXJ5TGlzdD86IFF1ZXJ5TGlzdDxNYXRFeHBhbnNpb25QYW5lbD47XHJcblxyXG5cdC8qKlxyXG5cdCAqIG1hdEV4cGFuc2lvblBhbmVsU3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9uW11cclxuXHQgKi9cclxuXHRwcm90ZWN0ZWQgbWF0RXhwYW5zaW9uUGFuZWxTdWJzY3JpcHRpb25zOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xyXG5cclxuXHQvKipcclxuXHQgKiBDb25zdHJ1Y3RvclxyXG5cdCAqL1xyXG5cdGNvbnN0cnVjdG9yKHByb3RlY3RlZCByb3V0ZTogQWN0aXZhdGVkUm91dGUsIHByb3RlY3RlZCBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcclxuXHRcdHRoaXMudGl0bGVTZXJ2aWNlID0gdGhpcy5nZXRTZXJ2aWNlKFRpdGxlKTtcclxuXHRcdHRoaXMuZGlhbG9nU2VydmljZSA9IHRoaXMuZ2V0U2VydmljZShWZERpYWxvZ1NlcnZpY2UpO1xyXG5cdFx0dGhpcy5kaWFsb2cgPSB0aGlzLmdldFNlcnZpY2UoTWF0RGlhbG9nKTtcclxuXHRcdHRoaXMubWVkaWEgPSB0aGlzLmdldFNlcnZpY2UoVmRNZWRpYVNlcnZpY2UpO1xyXG5cdFx0dGhpcy5zbmFja0JhclNlcnZpY2UgPSB0aGlzLmdldFNlcnZpY2UoTWF0U25hY2tCYXIpO1xyXG5cdFx0dGhpcy5yb3V0ZXIgPSB0aGlzLmdldFNlcnZpY2UoUm91dGVyKTtcclxuXHRcdHRoaXMuYXBwU2V0dGluZyA9IHRoaXMuZ2V0U2VydmljZShBcHBTZXR0aW5nKTtcclxuXHRcdHRoaXMubG9jYXRpb24gPSB0aGlzLmdldFNlcnZpY2UoTG9jYXRpb24pO1xyXG5cclxuXHRcdENvbnRleHRIZWxwZXIuYWN0aXZhdGVkUm91dGUgPSByb3V0ZTtcclxuXHRcdENvbnRleHRIZWxwZXIucm91dGVyID0gdGhpcy5yb3V0ZXI7XHJcblx0XHRDb250ZXh0SGVscGVyLmFwcFNldHRpbmcgPSB0aGlzLmFwcFNldHRpbmc7XHJcblxyXG5cdFx0dGhpcy5pbml0RWRpdG9yKCk7XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBMaWZlY3ljbGUgaG9vayB0aGF0IGlzIGNhbGxlZCBhZnRlciBkYXRhLWJvdW5kIHByb3BlcnRpZXMgXHJcblx0ICogb2YgYSBkaXJlY3RpdmUgYXJlIGluaXRpYWxpemVkLlxyXG5cdCAqL1xyXG5cdG5nT25Jbml0KCk6IHZvaWQge1xyXG5cdFx0LyogR2V0IG1lbnUgaXRlbXMgZnJvbSByb3V0ZSBzbmFwc2hvdCAqL1xyXG5cdFx0dmFyIG1haW5Sb3V0ZSA9IHRoaXMuZ2V0TWFpblJvdXRlKHRoaXMucm91dGUuc25hcHNob3QpO1xyXG5cdFx0aWYgKG1haW5Sb3V0ZSkge1xyXG5cdFx0XHR0aGlzLm1lbnUgPSBtYWluUm91dGUuZGF0YS5tZW51O1xyXG5cdFx0XHR0aGlzLnNldFRpdGxlcygpO1xyXG5cdFx0fVxyXG5cclxuXHRcdC8qIFNldCBwcm9qZWN0IG5hbWUgJiBkZWJ1ZyBtb2RlICovXHJcblx0XHR0aGlzLnByb2plY3ROYW1lID0gdGhpcy5hcHBTZXR0aW5nLnByb2plY3ROYW1lO1xyXG5cdFx0dGhpcy5kZWJ1ZyA9IHRoaXMuYXBwU2V0dGluZy5kZWJ1ZyA/PyBmYWxzZTtcclxuXHJcblx0XHQvKiBHZXQgdGhlIGhhc2ggZnJvbSB0aGUgdXJsICovXHJcblx0XHR0aGlzLnJvdXRlLmZyYWdtZW50LnN1YnNjcmliZSgoZnJhZ21lbnQ6IHN0cmluZyB8IGFueSkgPT4gdGhpcy51cmxIYXNoID0gZnJhZ21lbnQpO1xyXG5cclxuXHRcdC8qKlxyXG5cdFx0ICogQ2hlY2sgcGVybWlzc2lvbnNcclxuXHRcdCAqL1xyXG5cdFx0aWYgKHRoaXMucm91dGUucGFyZW50KSB7XHJcblx0XHRcdHRoaXMucm91dGUucGFyZW50LnVybC5zdWJzY3JpYmUoKHVybDogVXJsU2VnbWVudFtdKSA9PiB7XHJcblx0XHRcdFx0dGhpcy5jbGFzc05hbWUgPz89IHVybC5sZW5ndGggPyB1cmxbMF0ucGF0aC5yZXBsYWNlKC8oLiopcyQvLCAnJDEnKS5yZXBsYWNlKC9eLi8sICh1cmxbMF0ucGF0aFswXSB8fCAnJykudG9VcHBlckNhc2UoKSkgOiAnJztcclxuXHRcdFx0XHR0aGlzLmNhbkNyZWF0ZSA9IEF1dGhIZWxwZXIuaXNQZXJtaXR0ZWQoJ0NyZWF0ZScsIGBDcmVhdGUke3RoaXMuY2xhc3NOYW1lfWApO1xyXG5cdFx0XHRcdHRoaXMuY2FuVXBkYXRlID0gQXV0aEhlbHBlci5pc1Blcm1pdHRlZCgnVXBkYXRlJywgYFVwZGF0ZSR7dGhpcy5jbGFzc05hbWV9YCk7XHJcblx0XHRcdH0pO1xyXG5cdFx0fVxyXG5cclxuXHRcdC8qIFNldCBjdXJyZW50IHJvdXRlICovXHJcblx0XHR0aGlzLmN1cnJlbnRSb3V0ZSA9IHdpbmRvdy5idG9hKHRoaXMucm91dGVyLnVybCk7XHJcblx0XHR0aGlzLmN1cnJlbnRCYXNlUm91dGUgPSB0aGlzLnJvdXRlci51cmw/LnNwbGl0KCc/JylbMF0/LnNwbGl0KCc7JylbMF07XHJcblxyXG5cdFx0LyoqXHJcblx0XHQgKiBTZXQgcGFnZSB0aXRsZVxyXG5cdFx0ICovXHJcblx0XHR0aGlzLnJvdXRlci5ldmVudHMuc3Vic2NyaWJlKHggPT4ge1xyXG5cdFx0XHRsZXQgbmF2aWdhdGlvbkVuZCA9ICh4IGFzIFNjcm9sbCk/LnJvdXRlckV2ZW50IGFzIE5hdmlnYXRpb25FbmQ7XHJcblx0XHRcdGlmIChuYXZpZ2F0aW9uRW5kKSB7XHJcblx0XHRcdFx0dGhpcy5zZXRUaXRsZXMoKTtcclxuXHRcdFx0XHR0aGlzLmN1cnJlbnRSb3V0ZSA9IHdpbmRvdy5idG9hKG5hdmlnYXRpb25FbmQudXJsKTtcclxuXHRcdFx0fVxyXG5cdFx0fSk7XHJcblxyXG5cdFx0LyogR2V0IHRoZSByZXR1cm4gdXJsIGlmIGFueSAqL1xyXG5cdFx0dGhpcy5yb3V0ZS5xdWVyeVBhcmFtcy5zdWJzY3JpYmUoeCA9PiB0aGlzLnNldFJldHVyblVybCh4LnJldHVyblVybCkpO1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogTGlmZWN5Y2xlIGhvb2sgdGhhdCBpcyBjYWxsZWQgYWZ0ZXIgYSBjb21wb25lbnQncyB2aWV3IGhhcyBiZWVuIGZ1bGx5IGluaXRpYWxpemVkLlxyXG5cdCAqL1xyXG5cdG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuXHRcdC8qIEJyb2FkY2FzdCB0byBhbGwgbGlzdGVuZXIgb2JzZXJ2YWJsZXMgd2hlbiBsb2FkaW5nIHRoZSBwYWdlICovXHJcblx0XHR0aGlzLm1lZGlhLmJyb2FkY2FzdCgpO1xyXG5cclxuXHRcdC8qIFNldCB0aXRsZXMgKi9cclxuXHRcdHRoaXMuc2V0VGl0bGVzKCk7XHJcblxyXG5cdFx0LyogXHJcblx0XHQgKiBGb3JjZSBhIG5ldyBjaGFuZ2UgZGV0ZWN0aW9uIGN5Y2xlIHNpbmNlIGNoYW5nZSBkZXRlY3Rpb25zIFxyXG5cdFx0ICogaGF2ZSBmaW5pc2hlZCB3aGVuIGBuZ0FmdGVyVmlld0luaXRgIGlzIGV4ZWN1dGVkXHJcblx0XHQgKi9cclxuXHRcdHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG5cclxuXHRcdC8qIExpc3RlbiBmb3IgZXhwYW5zaW9uIHBhbmVsIGNoYW5nZXMgKi9cclxuXHRcdGlmICh0aGlzLmhhbmRsZUV4cGFuc2lvblBhbmVsQ2hhbmdlcykge1xyXG5cdFx0XHR0aGlzLm9uRXhwYW5zaW9uUGFuZWxDaGFuZ2VzKCk7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBSZWZyZXNocyB0aGlzIHBhZ2UvY29tcG9uZW50XHJcblx0ICovXHJcblx0cHVibGljIHJlbG9hZFBhZ2UoKTogdm9pZCB7XHJcblx0XHRsZXQgY3VycmVudFVybCA9IHRoaXMucm91dGVyLnVybDtcclxuXHRcdHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoJy8nLCB7IHJlcGxhY2VVcmw6IHRydWUgfSkudGhlbigoKSA9PiB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKGN1cnJlbnRVcmwsIHsgcmVwbGFjZVVybDogdHJ1ZSB9KSk7XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBOYXZpZ2F0ZXMgYmFjayB0byByZXR1cm4gdXJsXHJcblx0ICovXHJcblx0cHVibGljIG5hdmlnYXRlVG9SZXR1cm5VcmwoKTogdm9pZCB7XHJcblx0XHRpZiAodGhpcy5yZXR1cm5VcmwpIHtcclxuXHRcdFx0bGV0IHVybFRyZWU6IFVybFRyZWUgPSB0aGlzLnJvdXRlci5wYXJzZVVybCh0aGlzLnJldHVyblVybCk7XHJcblx0XHRcdHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwodXJsVHJlZS50b1N0cmluZygpKTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC8qIFxyXG5cdCAqIEZvcmNlIGEgbmV3IGNoYW5nZSBkZXRlY3Rpb24gY3ljbGUgc2luY2UgY2hhbmdlIGRldGVjdGlvbnMgXHJcblx0ICogaGF2ZSBmaW5pc2hlZCB3aGVuIGBuZ0FmdGVyVmlld0luaXRgIGlzIGV4ZWN1dGVkXHJcblx0ICovXHJcblx0cHVibGljIGRldGVjdENoYW5nZXMoKTogdm9pZCB7XHJcblx0XHR0aGlzLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIFNldHMgcmV0dXJuIHVybFxyXG5cdCAqIEBwYXJhbSByZXR1cm5VcmwgXHJcblx0ICovXHJcblx0cHJvdGVjdGVkIHNldFJldHVyblVybChyZXR1cm5Vcmw6IHN0cmluZyk6IHZvaWQge1xyXG5cdFx0dHJ5IHsgdGhpcy5yZXR1cm5VcmwgPSByZXR1cm5VcmwgPyBkZWNvZGVVUklDb21wb25lbnQoYXRvYihyZXR1cm5VcmwpKSA6IHVuZGVmaW5lZDsgfVxyXG5cdFx0Y2F0Y2ggKGVycm9yKSB7IH1cclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIExpc3RlbiBmb3IgZXhwYW5zaW9uIHBhbmVsIGNoYW5nZXNcclxuXHQgKi9cclxuXHRwcm90ZWN0ZWQgb25FeHBhbnNpb25QYW5lbENoYW5nZXMoKTogdm9pZCB7XHJcblx0XHQvKiBMaXN0ZW4gZm9yIGV4cGFuc2lvbiBwYW5lbCBjaGFuZ2VzICovXHJcblx0XHR0aGlzLm1hdEV4cGFuc2lvblBhbmVsUXVlcnlMaXN0Py5jaGFuZ2VzLnN1YnNjcmliZShfID0+IHtcclxuXHRcdFx0LyogVW5zdWJzY3JpYmUgZnJvbSBvbGQgJ29wZW5lZCcgYW5kICdjbG9zZWQnIHN1YnNjcmlwdGlvbnMgKi9cclxuXHRcdFx0dGhpcy5tYXRFeHBhbnNpb25QYW5lbFN1YnNjcmlwdGlvbnMuZm9yRWFjaCh4ID0+IHgudW5zdWJzY3JpYmUoKSk7XHJcblxyXG5cdFx0XHQvKiBEZXRlY3QgY2hhbmdlcyAqL1xyXG5cdFx0XHR0aGlzLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcclxuXHJcblx0XHRcdC8qIEdldCB0aGUgcGFuZWwgZW5kcyB3aXRoIHRoZSBJRCAnbmV3JyAqL1xyXG5cdFx0XHR2YXIgbmV3RXhwYW5zaW9uUGFuZWxJbmRleCA9IHRoaXMubWF0RXhwYW5zaW9uUGFuZWxFbGVtZW50UXVlcnlMaXN0Py50b0FycmF5KCk/LmZpbmRJbmRleCh4ID0+IHgubmF0aXZlRWxlbWVudD8uaWQ/LmVuZHNXaXRoKCcubmV3JykpID8/IC0xO1xyXG5cdFx0XHRpZiAobmV3RXhwYW5zaW9uUGFuZWxJbmRleCA+PSAwKSB7XHJcblx0XHRcdFx0LyogQ2xvc2UgYWxsIHBhbmVscyAqL1xyXG5cdFx0XHRcdHRoaXMubWF0RXhwYW5zaW9uUGFuZWxRdWVyeUxpc3Q/LmZpcnN0Py5hY2NvcmRpb24/LmNsb3NlQWxsKCk7XHJcblxyXG5cdFx0XHRcdC8qIE9wZW4gdGhlIG5ldyBwYW5lbCAqL1xyXG5cdFx0XHRcdHRoaXMubWF0RXhwYW5zaW9uUGFuZWxRdWVyeUxpc3Q/LnRvQXJyYXkoKVtuZXdFeHBhbnNpb25QYW5lbEluZGV4XT8ub3BlbigpO1xyXG5cclxuXHRcdFx0XHQvKiBEZXRlY3QgY2hhbmdlcyAqL1xyXG5cdFx0XHRcdHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG5cdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdC8qIEZpbmQgdGhlIGluZGV4IG9mIHRoZSBwYW5lbCB3aXRoIHRoZSBzcGVjaWZpZWQgZWxlbWVudCBJRCAqL1xyXG5cdFx0XHRcdHRoaXMudXJsSGFzaD8uc3BsaXQoJy4nKVxyXG5cdFx0XHRcdFx0Py5yZWR1Y2UoKGFjY3VtdWxhdG9yOiBhbnksIGN1cnJlbnRWYWx1ZSwgaW5kZXgpID0+IGFjY3VtdWxhdG9yLmNvbmNhdCgoaW5kZXggPiAwID8gKGFjY3VtdWxhdG9yLnNsaWNlKC0xKS5qb2luKCcuJykgKyAnLicpIDogJycpICsgY3VycmVudFZhbHVlKSwgW10pXHJcblx0XHRcdFx0XHQ/LmZvckVhY2goKGhhc2g6IHN0cmluZykgPT4ge1xyXG5cdFx0XHRcdFx0XHR2YXIgZXhwYW5zaW9uUGFuZWxJbmRleCA9IHRoaXMubWF0RXhwYW5zaW9uUGFuZWxFbGVtZW50UXVlcnlMaXN0Py50b0FycmF5KCk/LmZpbmRJbmRleCh4ID0+IHgubmF0aXZlRWxlbWVudC5pZCA9PSBoYXNoKSA/PyAtMTtcclxuXHRcdFx0XHRcdFx0aWYgKGV4cGFuc2lvblBhbmVsSW5kZXggPj0gMCkge1xyXG5cdFx0XHRcdFx0XHRcdHRoaXMubWF0RXhwYW5zaW9uUGFuZWxRdWVyeUxpc3Q/LnRvQXJyYXkoKVtleHBhbnNpb25QYW5lbEluZGV4XT8ub3BlbigpO1xyXG5cdFx0XHRcdFx0XHRcdHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9KTtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0LyogRGV0ZWN0IGNoYW5nZXMgZm9yIG9wZW5lZCBwYW5lbHMgKi9cclxuXHRcdFx0dGhpcy5tYXRFeHBhbnNpb25QYW5lbFF1ZXJ5TGlzdD8uZm9yRWFjaCh5ID0+IHtcclxuXHRcdFx0XHR0aGlzLm1hdEV4cGFuc2lvblBhbmVsU3Vic2NyaXB0aW9ucy5wdXNoKHkub3BlbmVkLnN1YnNjcmliZShfID0+IHtcclxuXHRcdFx0XHRcdGlmICh0aGlzLnNldFVybEhhc2gpIHtcclxuXHRcdFx0XHRcdFx0LyogR2V0IHRoZSBpZCBvZiB0aGUgY3VycmVudCBvcGVuZWQgcGFuZWwgKi9cclxuXHRcdFx0XHRcdFx0dmFyIGN1cnJlbnRQYW5lbElkID0geVsnX3ZpZXdDb250YWluZXJSZWYnXT8uZWxlbWVudD8ubmF0aXZlRWxlbWVudD8uaWQ7XHJcblxyXG5cdFx0XHRcdFx0XHQvKiBJZiB0aGUgcGFuZWwgSUQgaXMgc2V0LCBzZXQgaXQgYXMgdXJsIHNlZ21lbnQgKGhhc2gpICovXHJcblx0XHRcdFx0XHRcdGlmIChjdXJyZW50UGFuZWxJZCkge1xyXG5cdFx0XHRcdFx0XHRcdHRoaXMucm91dGVyLm5hdmlnYXRlKFtdLCB7IGZyYWdtZW50OiBjdXJyZW50UGFuZWxJZCwgcmVwbGFjZVVybDogdHJ1ZSB9KTtcclxuXHRcdFx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHRcdFx0LyogT3RoZXJ3aXNlIHJlbW92ZSB0aGUgc2VnbWVudCBmcm9tIHRoZSB1cmwgKi9cclxuXHRcdFx0XHRcdFx0ZWxzZSB7XHJcblx0XHRcdFx0XHRcdFx0dGhpcy5yb3V0ZXIubmF2aWdhdGUoW10sIHsgcmVwbGFjZVVybDogdHJ1ZSB9KTtcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHRcdC8qIERldGVjdCBjaGFuZ2VzICovXHJcblx0XHRcdFx0XHR0aGlzLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcclxuXHRcdFx0XHR9KSk7XHJcblxyXG5cdFx0XHRcdC8qIERldGVjdCBjaGFuZ2VzIGZvciBjbG9zZWQgcGFuZWxzICovXHJcblx0XHRcdFx0dGhpcy5tYXRFeHBhbnNpb25QYW5lbFN1YnNjcmlwdGlvbnMucHVzaCh5LmNsb3NlZC5zdWJzY3JpYmUoXyA9PiB7XHJcblx0XHRcdFx0XHRpZiAodGhpcy5zZXRVcmxIYXNoKSB7XHJcblx0XHRcdFx0XHRcdC8qIEdldCB0aGUgaWQgb2YgdGhlIGN1cnJlbnQgb3BlbmVkIHBhbmVsICovXHJcblx0XHRcdFx0XHRcdHZhciBjdXJyZW50UGFuZWxJZFBhcnRzID0geVsnX3ZpZXdDb250YWluZXJSZWYnXT8uZWxlbWVudD8ubmF0aXZlRWxlbWVudD8uaWQ/LnNwbGl0KCcuJyk7XHJcblxyXG5cdFx0XHRcdFx0XHQvKiBJZiB0aGUgcGFuZWwgSUQgaXMgc2V0LCBzZXQgaXQgYXMgdXJsIHNlZ21lbnQgKGhhc2gpICovXHJcblx0XHRcdFx0XHRcdGlmIChjdXJyZW50UGFuZWxJZFBhcnRzLmxlbmd0aCA+IDEpIHtcclxuXHRcdFx0XHRcdFx0XHR0aGlzLnJvdXRlci5uYXZpZ2F0ZShbXSwgeyBmcmFnbWVudDogY3VycmVudFBhbmVsSWRQYXJ0cy5zbGljZSgwLCAtMSkuam9pbignLicpLCByZXBsYWNlVXJsOiB0cnVlIH0pO1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdFx0LyogRGV0ZWN0IGNoYW5nZXMgKi9cclxuXHRcdFx0XHRcdHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG5cdFx0XHRcdH0pKTtcclxuXHRcdFx0fSk7XHJcblx0XHR9KTtcclxuXHJcblx0XHQvKiBOb3RpZnkgZXhwYW5zaW9uIHBhbmVsIGxpc3QgY2hhbmdlcyAqL1xyXG5cdFx0aWYgKHRoaXMubWF0RXhwYW5zaW9uUGFuZWxRdWVyeUxpc3QpIHtcclxuXHRcdFx0dGhpcy5tYXRFeHBhbnNpb25QYW5lbFF1ZXJ5TGlzdC5ub3RpZnlPbkNoYW5nZXMoKTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIFJldHJpZXZlcyBhbiBpbnN0YW5jZSBmcm9tIHRoZSBpbmplY3RvciBiYXNlZCBvbiB0aGUgcHJvdmlkZWQgdG9rZW4uXHJcblx0ICogSWYgbm90IGZvdW5kOlxyXG5cdCAqIC0gVGhyb3dzIHtAbGluayBOb1Byb3ZpZGVyRXJyb3J9IGlmIG5vIGBub3RGb3VuZFZhbHVlYCB0aGF0IGlzIG5vdCBlcXVhbCB0b1xyXG5cdCAqIEluamVjdG9yLlRIUk9XX0lGX05PVF9GT1VORCBpcyBnaXZlblxyXG5cdCAqIC0gUmV0dXJucyB0aGUgYG5vdEZvdW5kVmFsdWVgIG90aGVyd2lzZVxyXG5cdCAqL1xyXG5cdHByb3RlY3RlZCBnZXRTZXJ2aWNlPFQ+KHRva2VuOiBUeXBlPFQ+KTogVCB7XHJcblx0XHRyZXR1cm4gU2VydmljZUxvY2F0b3IuZ2V0U2VydmljZSh0b2tlbik7XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBHZXRzIGJhc2Ugcm91dGVcclxuXHQgKiBAcGFyYW0gc25hcHNob3QgXHJcblx0ICovXHJcblx0cHJvdGVjdGVkIGdldE1haW5Sb3V0ZShzbmFwc2hvdDogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCk6IEFjdGl2YXRlZFJvdXRlU25hcHNob3Qge1xyXG5cdFx0aWYgKHNuYXBzaG90ICYmIHNuYXBzaG90IS5wYXJlbnQgJiYgIXNuYXBzaG90LmRhdGEubWVudSkge1xyXG5cdFx0XHRyZXR1cm4gdGhpcy5nZXRNYWluUm91dGUoc25hcHNob3QhLnBhcmVudCEpO1xyXG5cdFx0fVxyXG5cclxuXHRcdHJldHVybiBzbmFwc2hvdDtcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIFNob3dzIGEgY29uZmlybSBkaWFsb2cgdG8gZGVsZXRlIGFuIGl0ZW0gXHJcblx0ICovXHJcblx0cHJvdGVjdGVkIHNob3dEZWxldGVJdGVtRGlhbG9nKCk6IE9ic2VydmFibGU8YW55PiB7XHJcblx0XHRyZXR1cm4gdGhpcy5kaWFsb2dTZXJ2aWNlLm9wZW5Db25maXJtKHtcclxuXHRcdFx0bWVzc2FnZTogJGxvY2FsaXplYDpAQGRpYWxvZy5tZXNzYWdlLmRlbGV0ZS5vbmU6QXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRlbGV0ZSB0aGlzIGl0ZW0/YCxcclxuXHRcdFx0dGl0bGU6ICRsb2NhbGl6ZWA6QEBkaWFsb2cudGl0bGUuZGVsZXRlOkNvbmZpcm0gRGVsZXRlYCxcclxuXHRcdFx0Y2FuY2VsQnV0dG9uOiAkbG9jYWxpemVgOkBAY2FuY2VsOkNhbmNlbGAsXHJcblx0XHRcdGFjY2VwdEJ1dHRvbjogJGxvY2FsaXplYDpAQGRlbGV0ZTpEZWxldGVgLFxyXG5cdFx0fSkuYWZ0ZXJDbG9zZWQoKTtcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIFNob3dzIGEgY29uZmlybSBkaWFsb2cgdG8gZGVsZXRlIG11bHRpcGxlIGl0ZW1zXHJcblx0ICovXHJcblx0cHJvdGVjdGVkIHNob3dEZWxldGVJdGVtc0RpYWxvZygpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG5cdFx0cmV0dXJuIHRoaXMuZGlhbG9nU2VydmljZS5vcGVuQ29uZmlybSh7XHJcblx0XHRcdG1lc3NhZ2U6ICRsb2NhbGl6ZWA6QEBkaWFsb2cubWVzc2FnZS5kZWxldGUubGlzdDpBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gZGVsZXRlIHRoZSBzZWxlY3RlZCBpdGVtcz9gLFxyXG5cdFx0XHR0aXRsZTogJGxvY2FsaXplYDpAQGRpYWxvZy50aXRsZS5kZWxldGU6Q29uZmlybSBEZWxldGVgLFxyXG5cdFx0XHRjYW5jZWxCdXR0b246ICRsb2NhbGl6ZWA6QEBjYW5jZWw6Q2FuY2VsYCxcclxuXHRcdFx0YWNjZXB0QnV0dG9uOiAkbG9jYWxpemVgOkBAZGVsZXRlOkRlbGV0ZWAsXHJcblx0XHR9KS5hZnRlckNsb3NlZCgpO1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogU2hvd3MgYSBjb25maXJtIGRpYWxvZyB0byBzZW5kIHNvbWUgZGF0YVxyXG5cdCAqIEBwYXJhbSBtZXNzYWdlIFRoZSBtZXNzYWdlIHRvIGRpc3BsYXlcclxuXHQgKiBAcGFyYW0gb2JzZXJ2YWJlIFRoZSBvYnNlcnZhYmxlIGluc3RhbmNlXHJcblx0ICogQHBhcmFtIHN1Y2Nlc3NDYWxsYmFjayBBIHN1Y2Nlc3MgY2FsbGJhY2tcclxuXHQgKiBAcGFyYW0gZXJyb3JDYWxsYmFjayBBbiBlcnJvciBjYWxsYmFja1xyXG5cdCAqL1xyXG5cdHB1YmxpYyBzaG93Q29uZmlybWF0aW9uRGlhbG9nKG1lc3NhZ2U6IHN0cmluZywgb2JzZXJ2YWJlOiBPYnNlcnZhYmxlPGFueT4sIHN1Y2Nlc3NDYWxsYmFjaz86IEZ1bmN0aW9uLCBlcnJvckNhbGxiYWNrPzogRnVuY3Rpb24pOiB2b2lkIHtcclxuXHRcdHRoaXMuZGlhbG9nU2VydmljZVxyXG5cdFx0XHQub3BlbkNvbmZpcm0oe1xyXG5cdFx0XHRcdG1lc3NhZ2U6IG1lc3NhZ2UsXHJcblx0XHRcdFx0dGl0bGU6ICRsb2NhbGl6ZWA6QEBkaWFsb2cudGl0bGUuY29uZmlybTpDb25maXJtYCxcclxuXHRcdFx0XHRjYW5jZWxCdXR0b246ICRsb2NhbGl6ZWA6QEBjYW5jZWw6Q2FuY2VsYCxcclxuXHRcdFx0XHRhY2NlcHRCdXR0b246ICRsb2NhbGl6ZWA6QEBvazpPa2AsXHJcblx0XHRcdH0pXHJcblx0XHRcdC5hZnRlckNsb3NlZCgpLnN1YnNjcmliZSgoYWNjZXB0OiBib29sZWFuKSA9PiB7XHJcblx0XHRcdFx0aWYgKGFjY2VwdCkge1xyXG5cdFx0XHRcdFx0b2JzZXJ2YWJlLnN1YnNjcmliZSh7XHJcblx0XHRcdFx0XHRcdG5leHQ6ICh4KSA9PiB7XHJcblx0XHRcdFx0XHRcdFx0dGhpcy5zaG93TWVzc2FnZSgkbG9jYWxpemVgOkBAc25hY2tiYXIuc2VuZC5zdWNjZXNzOkRhdGEgc2VudCBzdWNjZXNzZnVsbHkuYCk7XHJcblx0XHRcdFx0XHRcdFx0aWYgKHN1Y2Nlc3NDYWxsYmFjaykge1xyXG5cdFx0XHRcdFx0XHRcdFx0c3VjY2Vzc0NhbGxiYWNrKHgpO1xyXG5cdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0fSwgZXJyb3I6IChlcnJvcnMpID0+IHtcclxuXHRcdFx0XHRcdFx0XHR0aGlzLmlzU2F2aW5nID0gZmFsc2U7XHJcblx0XHRcdFx0XHRcdFx0aWYgKGVycm9yQ2FsbGJhY2spIHtcclxuXHRcdFx0XHRcdFx0XHRcdGVycm9yQ2FsbGJhY2soZXJyb3JzKTtcclxuXHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH0pO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSk7XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBOYXZpZ2F0ZXMgdG8gdGhlIGFkZCBwYWdlLlxyXG5cdCAqL1xyXG5cdHB1YmxpYyBvcGVuRGlhbG9nPFQsIEQgPSBhbnk+KGRpYWxvZ1R5cGU6IFR5cGU8VD4sIGNvbmZpZzogTWF0RGlhbG9nQ29uZmlnPEQ+LCBjYWxsYmFjazogRnVuY3Rpb24pOiB2b2lkIHtcclxuXHRcdHRoaXMuZGlhbG9nLm9wZW4oZGlhbG9nVHlwZSwgT2JqZWN0LmFzc2lnbih7IHdpZHRoOiAnNjUwcHgnLCBkYXRhOiB7fSwgcGFuZWxDbGFzczogWydkaWFsb2ctZnVsbC1zY3JlZW4nXSB9LCBjb25maWcpKVxyXG5cdFx0XHQuYWZ0ZXJDbG9zZWQoKVxyXG5cdFx0XHQuc3Vic2NyaWJlKF8gPT4gY2FsbGJhY2soKSk7XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBTaG93cyBhIG1lc3NhZ2VcclxuXHQgKiBAcGFyYW0gbWVzc2FnZSBUaGUgbWVzc2FnZSB0byBkaXNwbGF5XHJcblx0ICogQHBhcmFtIHR5cGUgVGhlIHR5cGUgb2YgdGhlIG1lc3NhZ2VcclxuXHQgKi9cclxuXHRwcm90ZWN0ZWQgc2hvd01lc3NhZ2UobWVzc2FnZT86IHN0cmluZywgdHlwZTogTWVzc2FnZVR5cGUgPSBNZXNzYWdlVHlwZS5TdWNjZXNzKTogdm9pZCB7XHJcblx0XHR2YXIgc25hY2tCYXJDbGFzcyA9ICdwcmltYXJ5JztcclxuXHRcdHN3aXRjaCAodHlwZSkge1xyXG5cdFx0XHRjYXNlIE1lc3NhZ2VUeXBlLlN1Y2Nlc3M6XHJcblx0XHRcdFx0c25hY2tCYXJDbGFzcyA9ICdwcmltYXJ5JztcclxuXHRcdFx0XHRicmVhaztcclxuXHJcblx0XHRcdGNhc2UgTWVzc2FnZVR5cGUuV2FybmluZzpcclxuXHRcdFx0XHRzbmFja0JhckNsYXNzID0gJ3dhcm4nO1xyXG5cdFx0XHRcdGJyZWFrO1xyXG5cclxuXHRcdFx0Y2FzZSBNZXNzYWdlVHlwZS5FcnJvcjpcclxuXHRcdFx0XHRzbmFja0JhckNsYXNzID0gJ2Vycm9yJztcclxuXHRcdFx0XHRicmVhaztcclxuXHJcblx0XHRcdGRlZmF1bHQ6XHJcblx0XHRcdFx0YnJlYWs7XHJcblx0XHR9XHJcblxyXG5cdFx0dGhpcy5zbmFja0JhclNlcnZpY2Uub3BlbihtZXNzYWdlIHx8ICRsb2NhbGl6ZWA6QEBzbmFja2Jhci5zZW5kLnN1Y2Nlc3M6RGF0YSBzZW50IHN1Y2Nlc3NmdWxseS5gLCB1bmRlZmluZWQsIHtcclxuXHRcdFx0ZHVyYXRpb246IDMwMDAsXHJcblx0XHRcdHBhbmVsQ2xhc3M6IFtzbmFja0JhckNsYXNzXVxyXG5cdFx0fSk7XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBJbml0b2FsaXplcyB0aGUgdGlueW1jZSBlZGl0b3JcclxuXHQgKi9cclxuXHRwcm90ZWN0ZWQgaW5pdEVkaXRvcihlZGl0b3JDb25maWc6IGFueSA9IHt9KSB7XHJcblx0XHRPYmplY3QuYXNzaWduKHRoaXMuZWRpdG9yQ29uZmlnLCB7XHJcblx0XHRcdHByb21vdGlvbjogZmFsc2UsXHJcblx0XHRcdHN1ZmZpeDogJy5taW4nLFxyXG5cdFx0XHRza2luOiBmYWxzZSxcclxuXHRcdFx0aGVpZ2h0OiAnMTcwcHgnLFxyXG5cdFx0XHRjb250ZW50X2NzczogZmFsc2UsXHJcblx0XHRcdHBsdWdpbnM6IHRoaXMuZWRpdG9yUGx1Z2lucyxcclxuXHRcdFx0dG9vbGJhcjogdGhpcy5lZGl0b3JUb29sYmFyLFxyXG5cdFx0XHRwYXN0ZV9hc190ZXh0OiB0cnVlLFxyXG5cdFx0XHRsYW5ndWFnZTogJ2RlJyxcclxuXHRcdFx0bGFuZ3VhZ2VfdXJsOiAnL2Fzc2V0cy90aW55bWNlL2xhbmdzL2RlLmpzJyxcclxuXHRcdFx0ZG9jdW1lbnRfYmFzZV91cmw6IGAke3RoaXMuYXBwU2V0dGluZy5hcGlVcmx9ZmlsZS9gLFxyXG5cdFx0XHRhdXRvbWF0aWNfdXBsb2FkczogdHJ1ZSxcclxuXHRcdFx0cmVsYXRpdmVfdXJsczogdHJ1ZSxcclxuXHRcdFx0Y29udmVydF91cmxzOiBmYWxzZSxcclxuXHRcdFx0ZXh0ZW5kZWRfdmFsaWRfZWxlbWVudHM6ICdzcGFuW2lkfGNsYXNzfHN0eWxlXSwrQFtkYXRhLW9wdGlvbnNdJyxcclxuXHRcdFx0YWxsb3dfaHRtbF9pbl9uYW1lZF9hbmNob3I6IHRydWVcclxuXHRcdH0sIGVkaXRvckNvbmZpZyk7XHJcblxyXG5cdFx0dGhpcy5pc0VkaXRvckluaXRpYWx6ZWQgPSB0cnVlO1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogU2V0cyBzdWJ0aXRsZSBmcm9tIGN1cnJlbiBtZW51XHJcblx0ICovXHJcblx0cHJvdGVjdGVkIHNldFRpdGxlcygpOiB2b2lkIHtcclxuXHRcdGlmICh0aGlzLm1lbnUpIHtcclxuXHRcdFx0dGhpcy50aXRsZVNlcnZpY2Uuc2V0VGl0bGUodGhpcy5tZW51LnRpdGxlID8/ICcnKTtcclxuXHRcdFx0dGhpcy50aXRsZSA9IHRoaXMudGl0bGVTZXJ2aWNlLmdldFRpdGxlKCk7XHJcblxyXG5cdFx0XHRpZiAoIXRoaXMubWVudS5pdGVtcykge1xyXG5cdFx0XHRcdHJldHVybjtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0LyogR2V0IHN1YnRpdGxlIGZyb20gdXJsIHBhcmFtcyAqL1xyXG5cdFx0XHR2YXIgc3VidGl0bGUgPSB0aGlzLnJvdXRlPy5zbmFwc2hvdD8ucGFyYW1NYXA/LmdldCgnc3VidGl0bGUnKTtcclxuXHRcdFx0aWYgKHN1YnRpdGxlKSB7XHJcblx0XHRcdFx0dHJ5IHsgdGhpcy5zdWJ0aXRsZSA9IHdpbmRvdy5hdG9iKHN1YnRpdGxlKTsgfVxyXG5cdFx0XHRcdGNhdGNoIChlKSB7IHRoaXMuc3VidGl0bGUgPSBzdWJ0aXRsZTsgfVxyXG5cdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdC8qIEdldCBjdXJyZW50IHJvdXRlICovXHJcblx0XHRcdFx0bGV0IGN1cnJlbnRSb3V0ZSA9IHRoaXMucm91dGVyLnVybC5zcGxpdCgnPycpWzBdPy5zcGxpdCgnOycpWzBdO1xyXG5cclxuXHRcdFx0XHQvKiBBcHBlbmQgYSB0cmFpbGluZyBzbGFzaCBpZiB0aGUgcm91dGUgZG9lc24ndCBlbmQgd2l0aCBvbmUgKi9cclxuXHRcdFx0XHRjdXJyZW50Um91dGUgPSBjdXJyZW50Um91dGUuZW5kc1dpdGgoJy8nKSA/IGN1cnJlbnRSb3V0ZS5zdWJzdHJpbmcoMCwgLTEpIDogY3VycmVudFJvdXRlO1xyXG5cclxuXHRcdFx0XHQvKiBGaWx0ZXIgdGhlIG1lbnUgaXRlbXMgYmFzZWQgb24gdGhlIG1vZGlmaWVkIHJvdXRlIHBhdGggKi9cclxuXHRcdFx0XHR2YXIgc3VibWVudSA9IHRoaXMubWVudS5pdGVtcy5maWx0ZXIoeCA9PiB4LnBhdGggPT0gY3VycmVudFJvdXRlKVswXTtcclxuXHRcdFx0XHRpZiAoc3VibWVudSkge1xyXG5cdFx0XHRcdFx0dGhpcy5zdWJ0aXRsZSA9IHN1Ym1lbnUudGl0bGU7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBOYXZpZ2F0ZSBiYXNlZCBvbiB0aGUgcHJvdmlkZWQgYXJyYXkgb2YgY29tbWFuZHMgYW5kIGEgc3RhcnRpbmcgcG9pbnQuXHJcblx0ICogQHBhcmFtIGNvbW1hbmRzIFxyXG5cdCAqL1xyXG5cdHB1YmxpYyBuYXZpZ2F0ZShjb21tYW5kczogYW55W10sIHF1ZXJ5UGFyYW1zPzogYW55LCBmcmFnbWVudD86IHN0cmluZywgcHJlc2VydmVGcmFnbWVudD86IGJvb2xlYW4pOiB2b2lkIHtcclxuXHRcdHRoaXMucm91dGVyLm5hdmlnYXRlKGNvbW1hbmRzLCB7XHJcblx0XHRcdHF1ZXJ5UGFyYW1zOiBPYmplY3QuYXNzaWduKHsgcmV0dXJuVXJsOiB0aGlzLmN1cnJlbnRSb3V0ZSB9LCBxdWVyeVBhcmFtcyB8fCB7fSksXHJcblx0XHRcdGZyYWdtZW50OiBmcmFnbWVudCxcclxuXHRcdFx0cHJlc2VydmVGcmFnbWVudDogcHJlc2VydmVGcmFnbWVudCxcclxuXHRcdFx0cmVsYXRpdmVUbzogdGhpcy5yb3V0ZVxyXG5cdFx0fSk7XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBDb252ZXJ0IE9iamVjdCB0byBIdHRwSGVhZGVyc1xyXG5cdCAqIFxyXG5cdCAqIEBwYXJhbSBib2R5XHJcblx0ICovXHJcblx0cHJvdGVjdGVkIHRvSHR0cEhlYWRlcnMoYm9keTogYW55KTogSHR0cEhlYWRlcnMge1xyXG5cdFx0aWYgKCFib2R5KSB7XHJcblx0XHRcdHJldHVybiBuZXcgSHR0cEhlYWRlcnMoKTtcclxuXHRcdH1cclxuXHJcblx0XHRyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoYm9keSlcclxuXHRcdFx0LmZpbHRlcihrZXkgPT4gYm9keVtrZXldICE9IG51bGwgJiYgYm9keVtrZXldICE9ICcnKVxyXG5cdFx0XHQucmVkdWNlKChwLCBrZXkpID0+IHAuc2V0KGtleSwgYm9keVtrZXldKSwgbmV3IEh0dHBIZWFkZXJzKCkpO1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogUGFyc2VzIGh0dHAgcmVzcG9uc2UgZXJyb3JzXHJcblx0ICogQHBhcmFtIGVycm9ycyBcclxuXHQgKi9cclxuXHRwcm90ZWN0ZWQgcGFyc2VFcnJvcnMoZXJyb3JzOiBhbnkpOiB2b2lkIHtcclxuXHRcdHRoaXMuZXJyb3JzID0gW107XHJcblx0XHR0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xyXG5cdFx0dGhpcy5pc1NhdmluZyA9IGZhbHNlO1xyXG5cclxuXHRcdGlmIChlcnJvcnMpIHtcclxuXHRcdFx0T2JqZWN0LmtleXMoZXJyb3JzKS5mb3JFYWNoKGVsID0+IHtcclxuXHRcdFx0XHRsZXQgZXJyb3IgPSBlcnJvcnNbZWxdO1xyXG5cdFx0XHRcdGlmIChBcnJheS5pc0FycmF5KGVycm9yKSkge1xyXG5cdFx0XHRcdFx0ZXJyb3IuZm9yRWFjaChlcnIgPT4ge1xyXG5cdFx0XHRcdFx0XHR0aGlzLmVycm9ycy5wdXNoKGVycik7XHJcblx0XHRcdFx0XHR9KTtcclxuXHRcdFx0XHR9IGVsc2UgaWYgKHR5cGVvZiBlcnJvciA9PT0gXCJzdHJpbmdcIikge1xyXG5cdFx0XHRcdFx0dGhpcy5lcnJvcnMucHVzaChlcnJvcik7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9KTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIEhhbmRsZSBIdHRwIG9wZXJhdGlvbiB0aGF0IGZhaWxlZC5cclxuXHQgKiBMZXQgdGhlIGFwcCBjb250aW51ZS5cclxuXHQgKiBAcGFyYW0gb3BlcmF0aW9uIC0gbmFtZSBvZiB0aGUgb3BlcmF0aW9uIHRoYXQgZmFpbGVkXHJcblx0ICogQHBhcmFtIHJlc3VsdCAtIG9wdGlvbmFsIHZhbHVlIHRvIHJldHVybiBhcyB0aGUgb2JzZXJ2YWJsZSByZXN1bHRcclxuXHQgKi9cclxuXHRwcm90ZWN0ZWQgaGFuZGxlRXJyb3I8VD4ob3BlcmF0aW9uID0gJ29wZXJhdGlvbicsIHJlc3VsdD86IFQpIHtcclxuXHRcdHJldHVybiAoZXJyb3I6IGFueSk6IE9ic2VydmFibGU8VD4gPT4ge1xyXG5cclxuXHRcdFx0LyogUGFyc2UgdGhlIGVycm9yIG1lc3NhZ2VzICovXHJcblx0XHRcdHRoaXMucGFyc2VFcnJvcnMoZXJyb3IpO1xyXG5cclxuXHRcdFx0LyogTG9nIHRvIGNvbnNvbGUgKi9cclxuXHRcdFx0dGhpcy53YXJuKGAke29wZXJhdGlvbn0gZmFpbGVkOiAke2Vycm9yLm1lc3NhZ2V9YCk7XHJcblxyXG5cdFx0XHQvKiBMZXQgdGhlIGFwcCBrZWVwIHJ1bm5pbmcgYnkgcmV0dXJuaW5nIGFuIGVtcHR5IHJlc3VsdCAqL1xyXG5cdFx0XHRyZXR1cm4gb2YocmVzdWx0IGFzIFQpO1xyXG5cdFx0fTtcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIExvZyB0byBjb25zb2xlXHJcblx0ICogQHBhcmFtIG1lc3NhZ2UgXHJcblx0ICogQHBhcmFtIG9wdGlvbmFsUGFyYW1zIFxyXG5cdCAqL1xyXG5cdHByb3RlY3RlZCBsb2cobWVzc2FnZTogYW55LCAuLi5vcHRpb25hbFBhcmFtczogYW55W10pIHtcclxuXHRcdGlmICh0aGlzLmRlYnVnKSB7XHJcblx0XHRcdGNvbnNvbGUubG9nKG1lc3NhZ2UsIG9wdGlvbmFsUGFyYW1zKTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIExvZyB0byBjb25zb2xlXHJcblx0ICogQHBhcmFtIG1lc3NhZ2UgXHJcblx0ICogQHBhcmFtIG9wdGlvbmFsUGFyYW1zIFxyXG5cdCAqL1xyXG5cdHByb3RlY3RlZCB3YXJuKG1lc3NhZ2U6IHN0cmluZywgLi4ub3B0aW9uYWxQYXJhbXM6IGFueVtdKSB7XHJcblx0XHRpZiAodGhpcy5kZWJ1Zykge1xyXG5cdFx0XHRjb25zb2xlLndhcm4obWVzc2FnZSwgb3B0aW9uYWxQYXJhbXMpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogQ2xlYW5zIHRoZSBvYmplY3RzXHJcblx0ICogUmVtb3ZlcyBlbXB0eSBwcm9wZXJ0aWVzXHJcblx0ICogQHBhcmFtIG9iaiBcclxuXHQgKi9cclxuXHRwcm90ZWN0ZWQgY2xlYW4ob2JqOiBhbnkpOiBhbnkge1xyXG5cdFx0dHJ5IHtcclxuXHRcdFx0Zm9yICh2YXIgcHJvcE5hbWUgaW4gb2JqKSB7XHJcblx0XHRcdFx0aWYgKG9ialtwcm9wTmFtZV0gPT09IG51bGwgfHwgb2JqW3Byb3BOYW1lXSA9PT0gdW5kZWZpbmVkIHx8IG9ialtwcm9wTmFtZV0gPT09IFwiXCIpIHtcclxuXHRcdFx0XHRcdGRlbGV0ZSBvYmpbcHJvcE5hbWVdO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fSBjYXRjaCAoZXJyb3IpIHsgfVxyXG5cclxuXHRcdHJldHVybiBvYmo7XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBTYW5pdGl6ZXMgdGhlIHNwZWNpZmllZCBvYmplY3RcclxuXHQgKiBAcGFyYW0gb2JqIFxyXG5cdCAqIEByZXR1cm5zIFxyXG5cdCAqL1xyXG5cdHByb3RlY3RlZCBzYW5pdGl6ZU9iamVjdChvYmo6IGFueSwgLi4uaWdub3JlOiBzdHJpbmdbXSk6IGFueSB7XHJcblx0XHRyZXR1cm4gT2JqZWN0LmtleXMob2JqKVxyXG5cdFx0XHQuZmlsdGVyKHggPT4gb2JqW3hdKVxyXG5cdFx0XHQuZmlsdGVyKHggPT4gIShpZ25vcmUgfHwgW10pLm1hcCh4ID0+IHgudG9Mb3dlckNhc2UoKSkuaW5jbHVkZXMoeC50b0xvd2VyQ2FzZSgpKSlcclxuXHRcdFx0LnJlZHVjZSgocmVzdWx0OiBhbnksIGtleSkgPT4ge1xyXG5cdFx0XHRcdHJlc3VsdFtrZXldID0gaXNOYU4oK29ialtrZXldKSA/IG9ialtrZXldIDogK29ialtrZXldO1xyXG5cdFx0XHRcdHJldHVybiByZXN1bHQ7XHJcblx0XHRcdH0sIHt9KTtcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIENoZWNrcyBpZiB0aGUgdXNlciBzZWxlY2V0ZWQgYW55IHRleHQgaW4gdGhlIGRvY3VtZW50XHJcblx0ICogQHJldHVybnMgXHJcblx0ICovXHJcblx0cHJvdGVjdGVkIGlzVGV4dFNlbGVjdGVkID0gKCk6IGJvb2xlYW4gPT4gKHdpbmRvdz8uZ2V0U2VsZWN0aW9uKCk/LnRvU3RyaW5nKCk/Lmxlbmd0aCA/PyAwKSA+IDA7XHJcblxyXG5cdC8qKlxyXG5cdCAqIEEgY2FsbGJhY2sgdXNlZCBmb3IgYW55IGN1c3RvbSBjbGVhbnVwIHRoYXQgbmVlZHMgdG8gb2NjdXJcclxuXHQgKiB3aGVuIHRoZSBpbnN0YW5jZSBpcyBkZXN0cm95ZWQuXHJcblx0ICovXHJcblx0bmdPbkRlc3Ryb3koKSB7XHJcblx0XHR0aGlzLm1hdEV4cGFuc2lvblBhbmVsU3Vic2NyaXB0aW9ucy5mb3JFYWNoKHggPT4geC51bnN1YnNjcmliZSgpKTtcclxuXHR9XHJcbn0iXX0=
|
|
@@ -63,8 +63,8 @@ export class VdDynamicTableConfigDialogComponent extends BaseComponent {
|
|
|
63
63
|
updateColumns() {
|
|
64
64
|
this.genericList?.updateColumns();
|
|
65
65
|
}
|
|
66
|
-
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.
|
|
67
|
-
/** @nocollapse */ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.
|
|
66
|
+
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: VdDynamicTableConfigDialogComponent, deps: [{ token: i1.ActivatedRoute }, { token: i0.ChangeDetectorRef }, { token: i2.MatDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
|
|
67
|
+
/** @nocollapse */ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", type: VdDynamicTableConfigDialogComponent, selector: "vd-dynamic-table-config-dialog", usesInheritance: true, ngImport: i0, template: `
|
|
68
68
|
<div mat-dialog-title cdkDrag cdkDragRootElement=".cdk-overlay-pane" class="pad push-none" cdkDragHandle i18n="@@tableConfiguration">Table configuration</div>
|
|
69
69
|
<vd-dynamic-table [data]="columns" [classType]="classType" [filterable]="false" [pageSize]="10" [context]="this">
|
|
70
70
|
<div table-footer layout-padding class="push-xs">
|
|
@@ -74,7 +74,7 @@ export class VdDynamicTableConfigDialogComponent extends BaseComponent {
|
|
|
74
74
|
</div>
|
|
75
75
|
</vd-dynamic-table>`, isInline: true, styles: [".mat-mdc-dialog-title{cursor:move}\n"], dependencies: [{ kind: "directive", type: i2.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "component", type: i3.VdDynamicTableComponent, selector: "vd-dynamic-table", inputs: ["dataSource", "data", "formArray", "debugValue", "classType", "context", "dataSourceFilter", "static", "filterable", "paginable", "selectable", "sortActive", "sortDirection", "stickyHeader", "stickyFilter", "rowNgClass", "detailsTemplate", "readonly", "selectAllFilter", "columns", "rowMenuItems", "rowAction", "excludedColumns", "pageSize", "pageSizeOptions"], outputs: ["rowClick"] }, { kind: "component", type: i4.MatAnchor, selector: "a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button]", exportAs: ["matButton", "matAnchor"] }, { kind: "directive", type: i5.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i5.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }] });
|
|
76
76
|
}
|
|
77
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.
|
|
77
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: VdDynamicTableConfigDialogComponent, decorators: [{
|
|
78
78
|
type: Component,
|
|
79
79
|
args: [{ selector: 'vd-dynamic-table-config-dialog', template: `
|
|
80
80
|
<div mat-dialog-title cdkDrag cdkDragRootElement=".cdk-overlay-pane" class="pad push-none" cdkDragHandle i18n="@@tableConfiguration">Table configuration</div>
|
|
@@ -736,10 +736,10 @@ export class GenericFormBaseComponent extends BaseComponent {
|
|
|
736
736
|
this.back();
|
|
737
737
|
}
|
|
738
738
|
}
|
|
739
|
-
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.
|
|
740
|
-
/** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.
|
|
739
|
+
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: GenericFormBaseComponent, deps: "invalid", target: i0.ɵɵFactoryTarget.Directive });
|
|
740
|
+
/** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.1.2", type: GenericFormBaseComponent, inputs: { id: "id", _item: "_item", item: "item", includes: "includes", projection: "projection", query: "query", readonly: "readonly", disabled: "disabled", form: "form" }, host: { listeners: { "document:keydown": "handleKeyboardEvent($event)" } }, viewQueries: [{ propertyName: "matStepper", first: true, predicate: MatStepper, descendants: true }, { propertyName: "input", predicate: ["focus"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0 });
|
|
741
741
|
}
|
|
742
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.
|
|
742
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: GenericFormBaseComponent, decorators: [{
|
|
743
743
|
type: Directive
|
|
744
744
|
}], ctorParameters: () => [{ type: i0.Type }, { type: undefined }, { type: i1.ActivatedRoute }, { type: i0.ChangeDetectorRef }], propDecorators: { id: [{
|
|
745
745
|
type: Input
|
|
@@ -33,10 +33,10 @@ export class GenericFormComponent extends GenericFormBaseComponent {
|
|
|
33
33
|
this.changeDetectorRef = changeDetectorRef;
|
|
34
34
|
this.listRoute = this.addSaveAndCloseRoute;
|
|
35
35
|
}
|
|
36
|
-
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.
|
|
37
|
-
/** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.
|
|
36
|
+
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: GenericFormComponent, deps: "invalid", target: i0.ɵɵFactoryTarget.Directive });
|
|
37
|
+
/** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.1.2", type: GenericFormComponent, inputs: { form: "form" }, usesInheritance: true, ngImport: i0 });
|
|
38
38
|
}
|
|
39
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.
|
|
39
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: GenericFormComponent, decorators: [{
|
|
40
40
|
type: Directive
|
|
41
41
|
}], ctorParameters: () => [{ type: i0.Type }, { type: undefined }, { type: i1.ActivatedRoute }, { type: i0.ChangeDetectorRef }], propDecorators: { form: [{
|
|
42
42
|
type: Input
|
|
@@ -738,10 +738,10 @@ export class GenericListComponent extends BaseComponent {
|
|
|
738
738
|
* in the creation of the default string description of an object
|
|
739
739
|
*/
|
|
740
740
|
get [Symbol.toStringTag]() { return 'GenericListComponent'; }
|
|
741
|
-
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.
|
|
742
|
-
/** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.
|
|
741
|
+
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: GenericListComponent, deps: "invalid", target: i0.ɵɵFactoryTarget.Directive });
|
|
742
|
+
/** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.1.2", type: GenericListComponent, inputs: { backButton: "backButton" }, host: { listeners: { "document:keydown": "handleKeyboardEvent($event)" } }, viewQueries: [{ propertyName: "paginator", first: true, predicate: MatPaginator, descendants: true, static: true }, { propertyName: "sort", first: true, predicate: MatSort, descendants: true, static: true }, { propertyName: "dynamicTable", first: true, predicate: VdDynamicTableComponent, descendants: true, static: true }], usesInheritance: true, ngImport: i0 });
|
|
743
743
|
}
|
|
744
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.
|
|
744
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: GenericListComponent, decorators: [{
|
|
745
745
|
type: Directive
|
|
746
746
|
}], ctorParameters: () => [{ type: undefined }, { type: i1.ActivatedRoute }, { type: i0.ChangeDetectorRef }, { type: undefined }], propDecorators: { paginator: [{
|
|
747
747
|
type: ViewChild,
|
|
@@ -90,10 +90,10 @@ export class GenericReactiveFormComponent extends GenericFormBaseComponent {
|
|
|
90
90
|
super.debugForm(form);
|
|
91
91
|
console.log(this.form.getErrorSummary(false));
|
|
92
92
|
}
|
|
93
|
-
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.
|
|
94
|
-
/** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.
|
|
93
|
+
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: GenericReactiveFormComponent, deps: "invalid", target: i0.ɵɵFactoryTarget.Directive });
|
|
94
|
+
/** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.1.2", type: GenericReactiveFormComponent, inputs: { form: "form" }, usesInheritance: true, ngImport: i0 });
|
|
95
95
|
}
|
|
96
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.
|
|
96
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: GenericReactiveFormComponent, decorators: [{
|
|
97
97
|
type: Directive
|
|
98
98
|
}], ctorParameters: () => [{ type: i0.Type }, { type: undefined }, { type: i1.ActivatedRoute }, { type: i0.ChangeDetectorRef }], propDecorators: { form: [{
|
|
99
99
|
type: Input
|
|
@@ -130,10 +130,10 @@ export class BaseInterceptor {
|
|
|
130
130
|
}
|
|
131
131
|
return errors.join('\n');
|
|
132
132
|
}
|
|
133
|
-
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.
|
|
134
|
-
/** @nocollapse */ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.
|
|
133
|
+
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: BaseInterceptor, deps: [{ token: i1.AppSetting }, { token: i2.MatSnackBar }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
134
|
+
/** @nocollapse */ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: BaseInterceptor, providedIn: 'root' });
|
|
135
135
|
}
|
|
136
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.
|
|
136
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: BaseInterceptor, decorators: [{
|
|
137
137
|
type: Injectable,
|
|
138
138
|
args: [{ providedIn: 'root' }]
|
|
139
139
|
}], ctorParameters: () => [{ type: i1.AppSetting }, { type: i2.MatSnackBar }] });
|
|
@@ -57,10 +57,10 @@ export class CachingInterceptor {
|
|
|
57
57
|
}
|
|
58
58
|
}));
|
|
59
59
|
}
|
|
60
|
-
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.
|
|
61
|
-
/** @nocollapse */ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.
|
|
60
|
+
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: CachingInterceptor, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
61
|
+
/** @nocollapse */ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: CachingInterceptor, providedIn: 'root' });
|
|
62
62
|
}
|
|
63
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.
|
|
63
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: CachingInterceptor, decorators: [{
|
|
64
64
|
type: Injectable,
|
|
65
65
|
args: [{ providedIn: 'root' }]
|
|
66
66
|
}], ctorParameters: () => [] });
|
|
@@ -55,10 +55,10 @@ export class LoadingScreenInterceptor {
|
|
|
55
55
|
}
|
|
56
56
|
}
|
|
57
57
|
;
|
|
58
|
-
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.
|
|
59
|
-
/** @nocollapse */ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.
|
|
58
|
+
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: LoadingScreenInterceptor, deps: [{ token: i1.LoadingScreenService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
59
|
+
/** @nocollapse */ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: LoadingScreenInterceptor });
|
|
60
60
|
}
|
|
61
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.
|
|
61
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: LoadingScreenInterceptor, decorators: [{
|
|
62
62
|
type: Injectable
|
|
63
63
|
}], ctorParameters: () => [{ type: i1.LoadingScreenService }] });
|
|
64
64
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGluZy5pbnRlcmNlcHRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nkay9zcmMvbGliL2Jhc2UvaW50ZXJjZXB0b3JzL2xvYWRpbmcuaW50ZXJjZXB0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDMUMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7OztBQUcxRSxNQUFNLE9BQU8sd0JBQXdCO0lBZ0JiO0lBZHBCOztPQUVHO0lBQ0gsY0FBYyxHQUFXLENBQUMsQ0FBQztJQUUzQjs7T0FFRztJQUNILFNBQVMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBRTdCOzs7T0FHRztJQUNILFlBQW9CLG9CQUEwQztRQUExQyx5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXNCO0lBQUksQ0FBQztJQUVuRTs7Ozs7O01BTUU7SUFDRixTQUFTLENBQUMsT0FBeUIsRUFBRSxJQUFpQjtRQUNsRCxJQUFJLG9CQUFvQixHQUFHLElBQUksQ0FBQztRQUVoQywwQ0FBMEM7UUFDMUMsS0FBSyxNQUFNLFFBQVEsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ25DLElBQUksSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRTtnQkFDeEMsb0JBQW9CLEdBQUcsS0FBSyxDQUFDO2dCQUM3QixNQUFNO2FBQ1Q7U0FDSjtRQUVELElBQUksb0JBQW9CLEVBQUU7WUFDdEIsSUFBSSxJQUFJLENBQUMsY0FBYyxLQUFLLENBQUMsRUFBRTtnQkFDM0IsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFlBQVksRUFBRSxDQUFDO2FBQzVDO1lBRUQsK0JBQStCO1lBQy9CLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUV0Qix3QkFBd0I7WUFDeEIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FDNUIsUUFBUSxDQUFDLEdBQUcsRUFBRTtnQkFDVixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7Z0JBQ3RCLElBQUksSUFBSSxDQUFDLGNBQWMsS0FBSyxDQUFDLEVBQUU7b0JBQzNCLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxXQUFXLEVBQUUsQ0FBQztpQkFDM0M7WUFDTCxDQUFDLENBQUMsQ0FDTCxDQUFBO1NBQ0o7YUFBTTtZQUNILE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUMvQjtJQUNMLENBQUM7SUFBQSxDQUFDOzBIQXhETyx3QkFBd0I7OEhBQXhCLHdCQUF3Qjs7MkZBQXhCLHdCQUF3QjtrQkFEcEMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBFdmVudCwgSHR0cEhhbmRsZXIsIEh0dHBJbnRlcmNlcHRvciwgSHR0cFJlcXVlc3QgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uL2h0dHBcIjtcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgeyBmaW5hbGl6ZSB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xyXG5pbXBvcnQgeyBMb2FkaW5nU2NyZWVuU2VydmljZSB9IGZyb20gXCIuLi9zZXJ2aWNlcy9sb2FkaW5nLXNjcmVlbi5zZXJ2aWNlXCI7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBMb2FkaW5nU2NyZWVuSW50ZXJjZXB0b3IgaW1wbGVtZW50cyBIdHRwSW50ZXJjZXB0b3Ige1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogYWN0aXZlUmVxdWVzdHM6IG51bWJlclxyXG4gICAgICovXHJcbiAgICBhY3RpdmVSZXF1ZXN0czogbnVtYmVyID0gMDtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFVSTHMgZm9yIHdoaWNoIHRoZSBsb2FkaW5nIHNjcmVlbiBzaG91bGQgbm90IGJlIGVuYWJsZWRcclxuICAgICAqL1xyXG4gICAgc2tpcHBVcmxzID0gWycvYXV0aHJlZnJlc2gnXTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIENvbnN0cnVjdG9yXHJcbiAgICAgKiBAcGFyYW0gbG9hZGluZ1NjcmVlblNlcnZpY2UgXHJcbiAgICAgKi9cclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgbG9hZGluZ1NjcmVlblNlcnZpY2U6IExvYWRpbmdTY3JlZW5TZXJ2aWNlKSB7IH1cclxuXHJcbiAgICAvKipcclxuICAgICogSWRlbnRpZmllcyBhbmQgaGFuZGxlcyBhIGdpdmVuIEhUVFAgcmVxdWVzdC5cclxuICAgICogQHBhcmFtIHJlcSBUaGUgb3V0Z29pbmcgcmVxdWVzdCBvYmplY3QgdG8gaGFuZGxlLlxyXG4gICAgKiBAcGFyYW0gbmV4dCBUaGUgbmV4dCBpbnRlcmNlcHRvciBpbiB0aGUgY2hhaW4sIG9yIHRoZSBiYWNrZW5kXHJcbiAgICAqIGlmIG5vIGludGVyY2VwdG9ycyByZW1haW4gaW4gdGhlIGNoYWluLlxyXG4gICAgKiBAcmV0dXJucyBBbiBvYnNlcnZhYmxlIG9mIHRoZSBldmVudCBzdHJlYW0uXHJcbiAgICAqL1xyXG4gICAgaW50ZXJjZXB0KHJlcXVlc3Q6IEh0dHBSZXF1ZXN0PGFueT4sIG5leHQ6IEh0dHBIYW5kbGVyKTogT2JzZXJ2YWJsZTxIdHRwRXZlbnQ8YW55Pj4ge1xyXG4gICAgICAgIGxldCBkaXNwbGF5TG9hZGluZ1NjcmVlbiA9IHRydWU7XHJcblxyXG4gICAgICAgIC8qIFNraXAgbG9hZGluZyBzY3JlZW4gZm9yIGZvbG93ZWQgdXJscyAqL1xyXG4gICAgICAgIGZvciAoY29uc3Qgc2tpcHBVcmwgb2YgdGhpcy5za2lwcFVybHMpIHtcclxuICAgICAgICAgICAgaWYgKG5ldyBSZWdFeHAoc2tpcHBVcmwpLnRlc3QocmVxdWVzdC51cmwpKSB7XHJcbiAgICAgICAgICAgICAgICBkaXNwbGF5TG9hZGluZ1NjcmVlbiA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChkaXNwbGF5TG9hZGluZ1NjcmVlbikge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5hY3RpdmVSZXF1ZXN0cyA9PT0gMCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5sb2FkaW5nU2NyZWVuU2VydmljZS5zdGFydExvYWRpbmcoKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgLyogQ291bnQgdGhlIGFjdGl2ZSByZXF1ZXN0cyAqL1xyXG4gICAgICAgICAgICB0aGlzLmFjdGl2ZVJlcXVlc3RzKys7XHJcblxyXG4gICAgICAgICAgICAvKiBoYW5kbGUgdGhlIHJlcXVlc3QgKi9cclxuICAgICAgICAgICAgcmV0dXJuIG5leHQuaGFuZGxlKHJlcXVlc3QpLnBpcGUoXHJcbiAgICAgICAgICAgICAgICBmaW5hbGl6ZSgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hY3RpdmVSZXF1ZXN0cy0tO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmFjdGl2ZVJlcXVlc3RzID09PSAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubG9hZGluZ1NjcmVlblNlcnZpY2Uuc3RvcExvYWRpbmcoKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgcmV0dXJuIG5leHQuaGFuZGxlKHJlcXVlc3QpO1xyXG4gICAgICAgIH1cclxuICAgIH07XHJcbn0iXX0=
|
|
@@ -8,10 +8,10 @@ export class FileService extends GenericService {
|
|
|
8
8
|
constructor() {
|
|
9
9
|
super('file');
|
|
10
10
|
}
|
|
11
|
-
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.
|
|
12
|
-
/** @nocollapse */ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.
|
|
11
|
+
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: FileService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
12
|
+
/** @nocollapse */ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: FileService, providedIn: 'root' });
|
|
13
13
|
}
|
|
14
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.
|
|
14
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: FileService, decorators: [{
|
|
15
15
|
type: Injectable,
|
|
16
16
|
args: [{ providedIn: 'root' }]
|
|
17
17
|
}], ctorParameters: () => [] });
|
|
@@ -35,10 +35,10 @@ export class LoadingScreenService {
|
|
|
35
35
|
stopLoading() {
|
|
36
36
|
this.loading = false;
|
|
37
37
|
}
|
|
38
|
-
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.
|
|
39
|
-
/** @nocollapse */ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.
|
|
38
|
+
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: LoadingScreenService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
39
|
+
/** @nocollapse */ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: LoadingScreenService, providedIn: 'root' });
|
|
40
40
|
}
|
|
41
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.
|
|
41
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: LoadingScreenService, decorators: [{
|
|
42
42
|
type: Injectable,
|
|
43
43
|
args: [{ providedIn: 'root' }]
|
|
44
44
|
}] });
|
|
@@ -31,10 +31,10 @@ export class PrintService {
|
|
|
31
31
|
this.router.navigate([{ outlets: { print: null } }]);
|
|
32
32
|
});
|
|
33
33
|
}
|
|
34
|
-
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.
|
|
35
|
-
/** @nocollapse */ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.
|
|
34
|
+
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: PrintService, deps: [{ token: i1.Router }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
35
|
+
/** @nocollapse */ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: PrintService, providedIn: 'root' });
|
|
36
36
|
}
|
|
37
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.
|
|
37
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: PrintService, decorators: [{
|
|
38
38
|
type: Injectable,
|
|
39
39
|
args: [{ providedIn: 'root' }]
|
|
40
40
|
}], ctorParameters: () => [{ type: i1.Router }] });
|
|
@@ -33,8 +33,8 @@ const MATRIAL_DECLARATIONS = [
|
|
|
33
33
|
MatDividerModule
|
|
34
34
|
];
|
|
35
35
|
export class VdChipsModule {
|
|
36
|
-
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.
|
|
37
|
-
/** @nocollapse */ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.
|
|
36
|
+
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: VdChipsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
37
|
+
/** @nocollapse */ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.1.2", ngImport: i0, type: VdChipsModule, declarations: [VdChipsComponent,
|
|
38
38
|
VdAutocompleteOptionDirective,
|
|
39
39
|
VdChipDirective], imports: [CommonModule,
|
|
40
40
|
FormsModule,
|
|
@@ -50,13 +50,13 @@ export class VdChipsModule {
|
|
|
50
50
|
MatDividerModule], exports: [VdChipsComponent,
|
|
51
51
|
VdAutocompleteOptionDirective,
|
|
52
52
|
VdChipDirective] });
|
|
53
|
-
/** @nocollapse */ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.
|
|
53
|
+
/** @nocollapse */ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: VdChipsModule, imports: [CommonModule,
|
|
54
54
|
FormsModule,
|
|
55
55
|
ReactiveFormsModule,
|
|
56
56
|
VdTableModule,
|
|
57
57
|
MATRIAL_DECLARATIONS] });
|
|
58
58
|
}
|
|
59
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.
|
|
59
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: VdChipsModule, decorators: [{
|
|
60
60
|
type: NgModule,
|
|
61
61
|
args: [{
|
|
62
62
|
imports: [
|