@csmart/ngc-smart-core 1.16.1 → 1.17.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -22,8 +22,8 @@ import { SmartAuthorizationGuard } from './smart-auth/smart-authorization-guard.
22
22
  import { SmartOffenderRedirectGuard } from './smart-offender-header/smart-offender-redirect.guard';
23
23
  import * as i0 from "@angular/core";
24
24
  export class NgcSmartCoreModule {
25
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NgcSmartCoreModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
26
- /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: NgcSmartCoreModule, declarations: [SmartOffenderHeaderComponent,
25
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: NgcSmartCoreModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
26
+ /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.11", ngImport: i0, type: NgcSmartCoreModule, declarations: [SmartOffenderHeaderComponent,
27
27
  SmartNavbarComponent,
28
28
  SmartErrorComponent,
29
29
  SmartStaffOffenderOptionsComponent,
@@ -40,7 +40,7 @@ export class NgcSmartCoreModule {
40
40
  SmartErrorComponent,
41
41
  SmartStaffOffenderOptionsComponent,
42
42
  SmartAccessControlDirective] }); }
43
- /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NgcSmartCoreModule, providers: [
43
+ /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: NgcSmartCoreModule, providers: [
44
44
  SmartNavbarService,
45
45
  SmartOffenderHeaderService,
46
46
  SmartStaffOffenderOptionsService,
@@ -57,7 +57,7 @@ export class NgcSmartCoreModule {
57
57
  MatCheckboxModule,
58
58
  ReactiveFormsModule] }); }
59
59
  }
60
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NgcSmartCoreModule, decorators: [{
60
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: NgcSmartCoreModule, decorators: [{
61
61
  type: NgModule,
62
62
  args: [{
63
63
  declarations: [
@@ -25,15 +25,15 @@ export class SmartAccessControlDirective {
25
25
  ? 'block'
26
26
  : 'none';
27
27
  }
28
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SmartAccessControlDirective, deps: [{ token: i0.ElementRef }, { token: i1.SmartAuthService }], target: i0.ɵɵFactoryTarget.Directive }); }
29
- /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: SmartAccessControlDirective, selector: "[accessControl]", inputs: { accessControlConfig: "accessControlConfig" }, ngImport: i0 }); }
28
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: SmartAccessControlDirective, deps: [{ token: i0.ElementRef }, { token: i1.SmartAuthService }], target: i0.ɵɵFactoryTarget.Directive }); }
29
+ /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.11", type: SmartAccessControlDirective, selector: "[accessControl]", inputs: { accessControlConfig: "accessControlConfig" }, ngImport: i0 }); }
30
30
  }
31
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SmartAccessControlDirective, decorators: [{
31
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: SmartAccessControlDirective, decorators: [{
32
32
  type: Directive,
33
33
  args: [{
34
34
  selector: '[accessControl]',
35
35
  }]
36
- }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.SmartAuthService }]; }, propDecorators: { accessControlConfig: [{
36
+ }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.SmartAuthService }], propDecorators: { accessControlConfig: [{
37
37
  type: Input
38
38
  }] } });
39
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtYWNjZXNzLWNvbnRyb2wuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY3NtYXJ0L25nYy1zbWFydC1jb3JlL3NyYy9saWIvc21hcnQtYXV0aC9zbWFydC1hY2Nlc3MtY29udHJvbC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDOzs7QUFReEQsTUFBTSxPQUFPLDJCQUEyQjtJQUV0QyxZQUNVLFVBQXNCLEVBQ3RCLElBQXNCO1FBRHRCLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsU0FBSSxHQUFKLElBQUksQ0FBa0I7SUFDN0IsQ0FBQztJQUVHLFFBQVE7UUFDYixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUNFLENBQUMsSUFBSSxDQUFDLG1CQUFtQjtZQUN6QixDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLO1lBQy9CLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxJQUFJO1lBQ3BDLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUMvQztZQUNBLE9BQU87U0FDUjtRQUVELHFFQUFxRTtRQUNyRSx5RkFBeUY7UUFDekYsWUFBWTtRQUNaLElBQUk7UUFDSixJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUNyRSxJQUFJLENBQUMsbUJBQW1CLENBQ3pCO1lBQ0MsQ0FBQyxDQUFDLE9BQU87WUFDVCxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQ2IsQ0FBQztrSUE5QlUsMkJBQTJCO3NIQUEzQiwyQkFBMkI7OzRGQUEzQiwyQkFBMkI7a0JBSHZDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGlCQUFpQjtpQkFDNUI7Z0lBRVUsbUJBQW1CO3NCQUEzQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBJbnB1dCwgT25Jbml0LCBFbGVtZW50UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFNtYXJ0QXV0aFNlcnZpY2UgfSBmcm9tICcuL3NtYXJ0LWF1dGguc2VydmljZSc7XHJcbmltcG9ydCB7IFNtYXJ0QWNjZXNzQ29udHJvbENvbmZpZyB9IGZyb20gJy4vc21hcnQtYWNjZXNzLWNvbnRyb2wtY29uZmlnJztcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5cclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gIHNlbGVjdG9yOiAnW2FjY2Vzc0NvbnRyb2xdJyxcclxufSlcclxuZXhwb3J0IGNsYXNzIFNtYXJ0QWNjZXNzQ29udHJvbERpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgQElucHV0KCkgYWNjZXNzQ29udHJvbENvbmZpZzogU21hcnRBY2Nlc3NDb250cm9sQ29uZmlnO1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxyXG4gICAgcHJpdmF0ZSBhdXRoOiBTbWFydEF1dGhTZXJ2aWNlLFxyXG4gICkge31cclxuXHJcbiAgcHVibGljIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5jaGVja0FjY2VzcygpO1xyXG4gIH1cclxuXHJcbiAgY2hlY2tBY2Nlc3MoKSB7XHJcbiAgICBpZiAoXHJcbiAgICAgICF0aGlzLmFjY2Vzc0NvbnRyb2xDb25maWcgfHxcclxuICAgICAgIXRoaXMuYWNjZXNzQ29udHJvbENvbmZpZy5yb3V0ZSB8fFxyXG4gICAgICAhdGhpcy5hY2Nlc3NDb250cm9sQ29uZmlnLnJvdXRlLmRhdGEgfHxcclxuICAgICAgIXRoaXMuYWNjZXNzQ29udHJvbENvbmZpZy5yb3V0ZS5kYXRhLmxvZ2luU3RhZmZcclxuICAgICkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgLy8gY29uc3QgbG9naW5TdGFmZiA9IHRoaXMuYWNjZXNzQ29udHJvbENvbmZpZy5yb3V0ZS5kYXRhLmxvZ2luU3RhZmY7XHJcbiAgICAvLyBpZiAoIXRoaXMuYXV0aC5pc0F1dGhFbmFibGUobG9naW5TdGFmZi5yb2xlcywgdGhpcy5hY2Nlc3NDb250cm9sQ29uZmlnLmFwcE1vZHVsZUlkKSkge1xyXG4gICAgLy8gICByZXR1cm47XHJcbiAgICAvLyB9XHJcbiAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5zdHlsZS5kaXNwbGF5ID0gdGhpcy5hdXRoLmNoZWNrUGVybWlzc2lvbihcclxuICAgICAgdGhpcy5hY2Nlc3NDb250cm9sQ29uZmlnXHJcbiAgICApXHJcbiAgICAgID8gJ2Jsb2NrJ1xyXG4gICAgICA6ICdub25lJztcclxuICB9XHJcbn1cclxuIl19
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtYWNjZXNzLWNvbnRyb2wuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY3NtYXJ0L25nYy1zbWFydC1jb3JlL3NyYy9saWIvc21hcnQtYXV0aC9zbWFydC1hY2Nlc3MtY29udHJvbC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDOzs7QUFReEQsTUFBTSxPQUFPLDJCQUEyQjtJQUV0QyxZQUNVLFVBQXNCLEVBQ3RCLElBQXNCO1FBRHRCLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsU0FBSSxHQUFKLElBQUksQ0FBa0I7SUFDN0IsQ0FBQztJQUVHLFFBQVE7UUFDYixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUNFLENBQUMsSUFBSSxDQUFDLG1CQUFtQjtZQUN6QixDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLO1lBQy9CLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxJQUFJO1lBQ3BDLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUMvQyxDQUFDO1lBQ0QsT0FBTztRQUNULENBQUM7UUFFRCxxRUFBcUU7UUFDckUseUZBQXlGO1FBQ3pGLFlBQVk7UUFDWixJQUFJO1FBQ0osSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FDckUsSUFBSSxDQUFDLG1CQUFtQixDQUN6QjtZQUNDLENBQUMsQ0FBQyxPQUFPO1lBQ1QsQ0FBQyxDQUFDLE1BQU0sQ0FBQztJQUNiLENBQUM7a0lBOUJVLDJCQUEyQjtzSEFBM0IsMkJBQTJCOzs0RkFBM0IsMkJBQTJCO2tCQUh2QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxpQkFBaUI7aUJBQzVCOzhHQUVVLG1CQUFtQjtzQkFBM0IsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSW5wdXQsIE9uSW5pdCwgRWxlbWVudFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBTbWFydEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi9zbWFydC1hdXRoLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTbWFydEFjY2Vzc0NvbnRyb2xDb25maWcgfSBmcm9tICcuL3NtYXJ0LWFjY2Vzcy1jb250cm9sLWNvbmZpZyc7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuXHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjogJ1thY2Nlc3NDb250cm9sXScsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTbWFydEFjY2Vzc0NvbnRyb2xEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIEBJbnB1dCgpIGFjY2Vzc0NvbnRyb2xDb25maWc6IFNtYXJ0QWNjZXNzQ29udHJvbENvbmZpZztcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZixcclxuICAgIHByaXZhdGUgYXV0aDogU21hcnRBdXRoU2VydmljZSxcclxuICApIHt9XHJcblxyXG4gIHB1YmxpYyBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuY2hlY2tBY2Nlc3MoKTtcclxuICB9XHJcblxyXG4gIGNoZWNrQWNjZXNzKCkge1xyXG4gICAgaWYgKFxyXG4gICAgICAhdGhpcy5hY2Nlc3NDb250cm9sQ29uZmlnIHx8XHJcbiAgICAgICF0aGlzLmFjY2Vzc0NvbnRyb2xDb25maWcucm91dGUgfHxcclxuICAgICAgIXRoaXMuYWNjZXNzQ29udHJvbENvbmZpZy5yb3V0ZS5kYXRhIHx8XHJcbiAgICAgICF0aGlzLmFjY2Vzc0NvbnRyb2xDb25maWcucm91dGUuZGF0YS5sb2dpblN0YWZmXHJcbiAgICApIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIGNvbnN0IGxvZ2luU3RhZmYgPSB0aGlzLmFjY2Vzc0NvbnRyb2xDb25maWcucm91dGUuZGF0YS5sb2dpblN0YWZmO1xyXG4gICAgLy8gaWYgKCF0aGlzLmF1dGguaXNBdXRoRW5hYmxlKGxvZ2luU3RhZmYucm9sZXMsIHRoaXMuYWNjZXNzQ29udHJvbENvbmZpZy5hcHBNb2R1bGVJZCkpIHtcclxuICAgIC8vICAgcmV0dXJuO1xyXG4gICAgLy8gfVxyXG4gICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuc3R5bGUuZGlzcGxheSA9IHRoaXMuYXV0aC5jaGVja1Blcm1pc3Npb24oXHJcbiAgICAgIHRoaXMuYWNjZXNzQ29udHJvbENvbmZpZ1xyXG4gICAgKVxyXG4gICAgICA/ICdibG9jaydcclxuICAgICAgOiAnbm9uZSc7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -486,19 +486,19 @@ export class SmartAuthService {
486
486
  return throwError(error);
487
487
  }));
488
488
  }
489
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SmartAuthService, deps: [{ token: i1.HttpClient }, { token: i2.MsalService }, { token: i3.XdmService }, { token: SMART_DATA_SERVICE_URL }, { token: SMART_DOMAIN_FORMAT }], target: i0.ɵɵFactoryTarget.Injectable }); }
490
- /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SmartAuthService, providedIn: 'root' }); }
489
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: SmartAuthService, deps: [{ token: i1.HttpClient }, { token: i2.MsalService }, { token: i3.XdmService }, { token: SMART_DATA_SERVICE_URL }, { token: SMART_DOMAIN_FORMAT }], target: i0.ɵɵFactoryTarget.Injectable }); }
490
+ /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: SmartAuthService, providedIn: 'root' }); }
491
491
  }
492
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SmartAuthService, decorators: [{
492
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: SmartAuthService, decorators: [{
493
493
  type: Injectable,
494
494
  args: [{
495
495
  providedIn: 'root',
496
496
  }]
497
- }], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.MsalService }, { type: i3.XdmService }, { type: undefined, decorators: [{
497
+ }], ctorParameters: () => [{ type: i1.HttpClient }, { type: i2.MsalService }, { type: i3.XdmService }, { type: undefined, decorators: [{
498
498
  type: Inject,
499
499
  args: [SMART_DATA_SERVICE_URL]
500
500
  }] }, { type: undefined, decorators: [{
501
501
  type: Inject,
502
502
  args: [SMART_DOMAIN_FORMAT]
503
- }] }]; } });
504
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtYXV0aC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY3NtYXJ0L25nYy1zbWFydC1jb3JlL3NyYy9saWIvc21hcnQtYXV0aC9zbWFydC1hdXRoLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlELE9BQU8sRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDL0QsT0FBTyxFQUFjLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLGFBQWEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN2RSxPQUFPLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDakUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBR2xELE9BQU8sRUFHTCxzQkFBc0IsRUFDdEIsbUJBQW1CLEdBR3BCLE1BQU0sc0NBQXNDLENBQUM7QUFDOUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDhCQUE4QixDQUFDOzs7OztBQU0xRCxNQUFNLE9BQU8sZ0JBQWdCO0lBSTNCLFlBQ1UsSUFBZ0IsRUFDaEIsWUFBeUIsRUFDekIsVUFBc0IsRUFDVSxtQkFBbUIsRUFDdEIsb0JBQTRCO1FBSnpELFNBQUksR0FBSixJQUFJLENBQVk7UUFDaEIsaUJBQVksR0FBWixZQUFZLENBQWE7UUFDekIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUNVLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBQTtRQUN0Qix5QkFBb0IsR0FBcEIsb0JBQW9CLENBQVE7SUFDaEUsQ0FBQztJQUVHLGFBQWE7UUFDbEIsSUFBSSxTQUFTLEVBQUU7WUFDYixPQUFPLENBQUMsR0FBRyxDQUFDLG9DQUFvQyxDQUFD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QkFBbUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3QsIGlzRGV2TW9kZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwSGVhZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YsIGZyb20sIHRocm93RXJyb3IsIGxhc3RWYWx1ZUZyb20gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgbWFwLCBzd2l0Y2hNYXAsIHRha2UsIGNhdGNoRXJyb3J9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgTXNhbFNlcnZpY2UgfSBmcm9tICdAYXp1cmUvbXNhbC1hbmd1bGFyJztcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGVTbmFwc2hvdCB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcblxyXG5pbXBvcnQge1xyXG4gIExvZ2luU3RhZmYsXHJcbiAgU2VsZWN0ZWRPZmZlbmRlcixcclxuICBTTUFSVF9EQVRBX1NFUlZJQ0VfVVJMLFxyXG4gIFNNQVJUX0RPTUFJTl9GT1JNQVQsXHJcbiAgUm9sZSxcclxuICBQZXJtaXNzaW9uLFxyXG59IGZyb20gJy4uL3NtYXJ0LXN0b3JhZ2Uvc21hcnQtc3RvcmFnZS1tb2RlbCc7XHJcbmltcG9ydCB7IFhkbVNlcnZpY2UgfSBmcm9tICcuLi9zbWFydC1zdG9yYWdlL3hkbS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU21hcnRBY2Nlc3NDb250cm9sQ29uZmlnIH0gZnJvbSAnLi9zbWFydC1hY2Nlc3MtY29udHJvbC1jb25maWcnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIFNtYXJ0QXV0aFNlcnZpY2Uge1xyXG4gIGxvZ2luU3RhZmY6IExvZ2luU3RhZmY7XHJcbiAgc2VsZWN0ZWRPZmZlbmRlcjogU2VsZWN0ZWRPZmZlbmRlcjtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXHJcbiAgICBwcml2YXRlIGF1dGhuU2VydmljZTogTXNhbFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHhkbVNlcnZpY2U6IFhkbVNlcnZpY2UsXHJcbiAgICBASW5qZWN0KFNNQVJUX0RBVEFfU0VSVklDRV9VUkwpIHByaXZhdGUgc21hcnREYXRhU2VydmljZVVybCxcclxuICAgIEBJbmplY3QoU01BUlRfRE9NQUlOX0ZPUk1BVCkgcHJpdmF0ZSBzbWFydERvbWFpbkZvcm1hdFVybDogc3RyaW5nLFxyXG4gICkge31cclxuXHJcbiAgcHVibGljIGdldExvZ2luU3RhZmYoKTogT2JzZXJ2YWJsZTxMb2dpblN0YWZmPiB7XHJcbiAgICBpZiAoaXNEZXZNb2RlKSB7XHJcbiAgICAgIGNvbnNvbGUubG9nKCdTbWFydEF1dGhTZXJ2aWNlIC0gZ2V0TG9naW5TdGFmZigpJyk7XHJcbiAgICB9XHJcbiAgICBpZiAoIWlzRGV2TW9kZSAmJiB0aGlzLmxvZ2luU3RhZmYpIHtcclxuICAgICAgaWYgKHRoaXMubG9naW5TdGFmZi5zdGFmZklkKSB7XHJcbiAgICAgICAgaWYgKGlzRGV2TW9kZSkge1xyXG4gICAgICAgICAgY29uc29sZS5sb2coXHJcbiAgICAgICAgICAgICcjIyMjIyBnZXRMb2dpblN0YWZmKCk6IGdldCBpbnRlcm5hbCBpbnN0YW5jZSBpbiBzZXJ2aWNlJyxcclxuICAgICAgICAgICAgdGhpcy5sb2dpblN0YWZmLFxyXG4gICAgICAgICAgKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIG9mKHRoaXMubG9naW5TdGFmZik7XHJcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5sb2dpblN0YWZmLnVzZXJOYW1lKSB7XHJcbiAgICAgICAgaWYgKGlzRGV2TW9kZSkge1xyXG4gICAgICAgICAgY29uc29sZS5sb2coXHJcbiAgICAgICAgICAgICcjIyMjIyBnZXRMb2dpblN0YWZmKCk6IGdldCB1c2luZyBwcmVzZXQgdXNlciBuYW1lJyxcclxuICAgICAgICAgICAgdGhpcy5sb2dpblN0YWZmLFxyXG4gICAgICAgICAgKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0U3RhZmYodGhpcy5sb2dpblN0YWZmLnVzZXJOYW1lKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZyb20odGhpcy54ZG1TZXJ2aWNlLmdldExvZ2luU3RhZmYoKSkucGlwZShcclxuICAgICAgc3dpdGNoTWFwKChzdG9yZWRSZXN1bHQpID0+IHtcclxuICAgICAgICBpZiAoc3RvcmVkUmVzdWx0ICYmIHN0b3JlZFJlc3VsdC5zdGFmZklkKSB7XHJcbiAgICAgICAgICBpZiAoaXNEZXZNb2RlKSB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFxyXG4gICAgICAgICAgICAgICcjIyMjIyBnZXRMb2dpblN0YWZmKCk6IGdldCBmcm9tIHNlc3Npb24uJyxcclxuICAgICAgICAgICAgICBzdG9yZWRSZXN1bHQsXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICB0aGlzLmxvZ2luU3RhZmYgPSBzdG9yZWRSZXN1bHQ7XHJcbiAgICAgICAgICByZXR1cm4gb2Yoc3RvcmVkUmVzdWx0KTtcclxuICAgICAgICB9IGVsc2UgaWYgKHN0b3JlZFJlc3VsdCAmJiBzdG9yZWRSZXN1bHQudXNlck5hbWUpIHtcclxuICAgICAgICAgIGlmIChpc0Rldk1vZGUpIHtcclxuICAgICAgICAgICAgY29uc29sZS5sb2coXHJcbiAgICAgICAgICAgICAgJyMjIyMjIGdldExvZ2luU3RhZmYoKTogZ2V0IHVzaW5nIHByZXNldCB1c2VyIG5hbWUnLFxyXG4gICAgICAgICAgICAgIHRoaXMubG9naW5TdGFmZixcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHJldHVybiB0aGlzLmdldFN0YWZmKHN0b3JlZFJlc3VsdC51c2VyTmFtZSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGNvbnN0IHVzZXJOYW1lID0gdGhpcy51c2VyTmFtZTtcclxuICAgICAgICAgIGNvbnN0IHN0YWZmTmFtZSA9IHVzZXJOYW1lLnN1YnN0cmluZygwLCB1c2VyTmFtZS5pbmRleE9mKCdAJykpO1xyXG4gICAgICAgICAgaWYgKGlzRGV2TW9kZSkge1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcclxuICAgICAgICAgICAgICAnIyMjIyMgbG9naW5Mb2dpblN0YWZmKCk6IGdldCB1c2luZyBsb2dpbiBzdGFmZiBuYW1lICcsXHJcbiAgICAgICAgICAgICAgc3RhZmZOYW1lLFxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0U3RhZmYoc3RhZmZOYW1lKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldCB1c2VyTmFtZSgpOiBzdHJpbmcge1xyXG4gICAgaWYgKHRoaXMuYXV0aG5TZXJ2aWNlLmluc3RhbmNlLmdldEFsbEFjY291bnRzKCkubGVuZ3RoID4gMCkge1xyXG4gICAgICBjb25zdCBhY2NvdW50ID0gdGhpcy5hdXRoblNlcnZpY2UuaW5zdGFuY2UuZ2V0QWxsQWNjb3VudHMoKVswXTtcclxuICAgICAgcmV0dXJuIGFjY291bnQudXNlcm5hbWU7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuICcnO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRUZWFtVXJsKGFwcDogc3RyaW5nLCBhZnRlckhhc2g6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5zbWFydERvbWFpbkZvcm1hdFVybC5yZXBsYWNlKCcke0FQUH0nLCBhcHApICsgYWZ0ZXJIYXNoO1xyXG4gIH1cclxuICBwcml2YXRlIGlzU2FtZUhvc3QodXJsLCBhcHApIHtcclxuICAgIHJldHVybiB0aGlzLnNtYXJ0RG9tYWluRm9ybWF0VXJsLnJlcGxhY2UoJyR7QVBQfScsIGFwcCkgPT09IHVybDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyByZWRpcmVjdFRvVGVhbShsb2dpblN0YWZmOiBMb2dpblN0YWZmKSB7XHJcbiAgICBpZiAobG9naW5TdGFmZi5yb2xlcy5maW5kSW5kZXgoKHJvbGUpID0+IHJvbGUucm9sZUlkID09PSAnRVVVU1BDJykgPiAtMSkge1xyXG4gICAgICBpZiAoIXRoaXMuaXNTYW1lSG9zdCh3aW5kb3cubG9jYXRpb24ub3JpZ2luLCAnaW52ZXN0aWdhdGlvbicpKSB7XHJcbiAgICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSB0aGlzLmdldFRlYW1VcmwoJ2ludmVzdGlnYXRpb24nLCAnL2Fzc2lnbm1lbnQnKTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIGlmIChcclxuICAgICAgbG9naW5TdGFmZi5yb2xlcy5maW5kSW5kZXgoXHJcbiAgICAgICAgKHJvbGUpID0+IHJvbGUucm9sZUlkLnN1YnN0cmluZygwLCAzKSA9PT0gJ1JTQycsXHJcbiAgICAgICkgPiAtMVxyXG4gICAgKSB7XHJcbiAgICAgIGlmICghdGhpcy5pc1NhbWVIb3N0KHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4sICdyc2MnKSkge1xyXG4gICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gdGhpcy5nZXRUZWFtVXJsKCdyc2MnLCAnL29mZmVuZGVyLWxpc3QnKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIHNldFNlbGVjdGVkT2ZmZW5kZXIoc2VsZWN0ZWRPZmZlbmRlcjogU2VsZWN0ZWRPZmZlbmRlcikge1xyXG4gICAgaWYgKCF0aGlzLmxvZ2luU3RhZmYpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChzZWxlY3RlZE9mZmVuZGVyKSB7XHJcbiAgICAgIC8vIGlmICghc2VsZWN0ZWRPZmZlbmRlci5hc3NpZ25tZW50U3RhZmZSZWxhdGlvbklkKSB7XHJcbiAgICAgIGNvbnN0IHJlbGF0aW9uID0gYXdhaXQgbGFzdFZhbHVlRnJvbShcclxuICAgICAgICB0aGlzLmdldFN0YWZmT2ZmZW5kZXJSZWxhdGlvbihcclxuICAgICAgICAgIHRoaXMubG9naW5TdGFmZi5zdGFmZklkLFxyXG4gICAgICAgICAgc2VsZWN0ZWRPZmZlbmRlci5vZmZlbmRlcklkLFxyXG4gICAgICAgICksXHJcbiAgICAgICk7XHJcbiAgICAgIGlmIChyZWxhdGlvbikge1xyXG4gICAgICAgIHNlbGVjdGVkT2ZmZW5kZXIuYXNzaWdubWVudFN0YWZmUmVsYXRpb25JZCA9IHJlbGF0aW9uO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHNlbGVjdGVkT2ZmZW5kZXIuYXNzaWdubWVudFN0YWZmUmVsYXRpb25JZCA9ICdOT0FTU0lHTic7XHJcbiAgICAgIH1cclxuICAgICAgLy8gfVxyXG4gICAgfVxyXG4gICAgdGhpcy54ZG1TZXJ2aWNlLnNldFNlbGVjdGVkT2ZmZW5kZXIoc2VsZWN0ZWRPZmZlbmRlcik7XHJcbiAgICB0aGlzLnNlbGVjdGVkT2ZmZW5kZXIgPSBzZWxlY3RlZE9mZmVuZGVyO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGxvZ291dCgpOiB2b2lkIHtcclxuICAgIHRoaXMueGRtU2VydmljZS5jbGVhckFsbCgpO1xyXG4gICAgdGhpcy5hdXRoblNlcnZpY2UubG9nb3V0KCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgc2V0UGVybWlzc2lvbihcclxuICAgIGFwcE1vZHVsZUlkOiBzdHJpbmcsXHJcbiAgICByb3V0ZTogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCxcclxuICApIHtcclxuICAgIGlmICghdGhpcy5sb2dpblN0YWZmKSB7XHJcbiAgICAgIHRoaXMubG9naW5TdGFmZiA9IGF3YWl0IHRoaXMueGRtU2VydmljZS5nZXRMb2dpblN0YWZmKCk7XHJcbiAgICB9XHJcbiAgICBjb25zdCBwZXJtaXNzaW9ucyA9IHRoaXMubG9naW5TdGFmZi5wZXJtaXNzaW9ucztcclxuICAgIGNvbnN0IHJlc291cmNlID1cclxuICAgICAgcm91dGUudXJsICYmIHJvdXRlLnVybC5sZW5ndGggPiAwID8gcm91dGUudXJsWzBdIS5wYXRoIDogJyc7XHJcblxyXG4gICAgaWYgKCF0aGlzLnNlbGVjdGVkT2ZmZW5kZXIpIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZE9mZmVuZGVyID0gYXdhaXQgdGhpcy54ZG1TZXJ2aWNlLmdldFNlbGVjdGVkT2ZmZW5kZXIoKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5zZWxlY3RlZE9mZmVuZGVyKSB7XHJcbiAgICAgIC8vIGlmICghdGhpcy5zZWxlY3RlZE9mZmVuZGVyLmFzc2lnbm1lbnRTdGFmZlJlbGF0aW9uSWQpIHtcclxuICAgICAgY29uc3QgcmVsYXRpb24gPSBhd2FpdCB0aGlzLmdldFN0YWZmT2ZmZW5kZXJSZWxhdGlvbihcclxuICAgICAgICB0aGlzLmxvZ2luU3RhZmYuc3RhZmZJZCxcclxuICAgICAgICB0aGlzLnNlbGVjdGVkT2ZmZW5kZXIub2ZmZW5kZXJJZCxcclxuICAgICAgKS50b1Byb21pc2UoKTtcclxuICAgICAgaWYgKHJlbGF0aW9uKSB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZE9mZmVuZGVyLmFzc2lnbm1lbnRTdGFmZlJlbGF0aW9uSWQgPSByZWxhdGlvbjtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkT2ZmZW5kZXIuYXNzaWdubWVudFN0YWZmUmVsYXRpb25JZCA9ICdOT0FTU0lHTic7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy54ZG1TZXJ2aWNlLnNldFNlbGVjdGVkT2ZmZW5kZXIodGhpcy5zZWxlY3RlZE9mZmVuZGVyKTtcclxuICAgICAgLy8gfVxyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGFzc2lnbm1lbnRTdGFmZlJlbGF0aW9uSWQgPVxyXG4gICAgICB0aGlzLnNlbGVjdGVkT2ZmZW5kZXIuYXNzaWdubWVudFN0YWZmUmVsYXRpb25JZDtcclxuXHJcbiAgICBjb25zdCBlbGVtZW50cyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ1tjbGFzc149XCJzYWMtXCJdJyk7XHJcbiAgICBjb25zdCBwYXR0ZXJuID0gL15zYWMtKFxcUyspLShcXFMrKSQvaTtcclxuXHJcbiAgICBBcnJheS5mcm9tKGVsZW1lbnRzKS5mb3JFYWNoKChlbGVtZW50KSA9PiB7XHJcbiAgICAgIGxldCBoaWRlO1xyXG4gICAgICBsZXQgZGlzYWJsZTtcclxuICAgICAgZWxlbWVudC5jbGFzc0xpc3QuZm9yRWFjaCgoYykgPT4ge1xyXG4gICAgICAgIGNvbnN0IHJlc3VsdHMgPSBjLm1hdGNoKHBhdHRlcm4pO1xyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKHJlc3VsdHMpO1xyXG4gICAgICAgIGlmIChyZXN1bHRzICYmIHJlc3VsdHMubGVuZ3RoID4gMikge1xyXG4gICAgICAgICAgY29uc3Qgcm9sZUlkID0gcmVzdWx0c1sxXSA/IHJlc3VsdHNbMV0udG9VcHBlckNhc2UoKSA6IG51bGw7XHJcbiAgICAgICAgICBjb25zdCByaWdodCA9IHJlc3VsdHNbMl07XHJcbiAgICAgICAgICAvLyBjb25zb2xlLmxvZyhyZXN1bHRzWzBdKTtcclxuICAgICAgICAgIC8vIGNvbnNvbGUubG9nKHJlc3VsdHNbMV0pO1xyXG4gICAgICAgICAgLy8gY29uc29sZS5sb2cocmVzdWx0c1syXSk7XHJcbiAgICAgICAgICBjb25zdCBwZXJtaXNzaW9uID0gcGVybWlzc2lvbnMuZmluZChmdW5jdGlvbiAocCkge1xyXG4gICAgICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICAgIHAuYXBwTW9kdWxlSWQgPT09IGFwcE1vZHVsZUlkICYmXHJcbiAgICAgICAgICAgICAgcC5yZXNvdXJjZSA9PT0gcmVzb3VyY2UgJiZcclxuICAgICAgICAgICAgICBwLnJvbGVJZCA9PT0gcm9sZUlkICYmXHJcbiAgICAgICAgICAgICAgcC5hc3NpZ25tZW50U3RhZmZSZWxhdGlvbklkID09PSBhc3NpZ25tZW50U3RhZmZSZWxhdGlvbklkXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICAgIC8qXHJcbiAgICAgICAgICBjb25zb2xlLmxvZygnIyMjIyMgc2V0UGVybWlzc2lvbigpIHJlc291cmNlOiAnLCByZXNvdXJjZSk7XHJcbiAgICAgICAgICBjb25zb2xlLmxvZygnIyMjIyMgc2V0UGVybWlzc2lvbigpIGFwcE1vZHVsZUlkOiAnLCBhcHBNb2R1bGVJZCk7XHJcbiAgICAgICAgICBjb25zb2xlLmxvZygnIyMjIyMgc2V0UGVybWlzc2lvbigpIHJvbGVJZDogJywgcm9sZUlkKTtcclxuICAgICAgICAgIGNvbnNvbGUubG9nKFxyXG4gICAgICAgICAgICAnIyMjIyMgc2V0UGVybWlzc2lvbigpIGFzc2lnbm1lbnQgcmVsYXRpb246ICcsXHJcbiAgICAgICAgICAgIGFzc2lnbm1lbnRTdGFmZlJlbGF0aW9uSWQsXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgICAgKi9cclxuICAgICAgICAgIGNvbnNvbGUubG9nKCcjIyMjIyBNYXRjaGVkIHBlcm1pc3Npb246ICcsIHBlcm1pc3Npb24pO1xyXG5cclxuICAgICAgICAgIGlmIChwZXJtaXNzaW9uKSB7XHJcbiAgICAgICAgICAgIGlmIChyaWdodCA9PT0gJ3JlYWQnKSB7XHJcbiAgICAgICAgICAgICAgaWYgKCFwZXJtaXNzaW9uLnJlYWRGbGFnKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoaGlkZSAhPT0gZmFsc2UpIHtcclxuICAgICAgICAgICAgICAgICAgaGlkZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGhpZGUgPSBmYWxzZTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoXHJcbiAgICAgICAgICAgICAgKHJpZ2h0ID09PSAnY3JlYXRlJyAmJiAhcGVybWlzc2lvbi5jcmVhdGVGbGFnKSB8fFxyXG4gICAgICAgICAgICAgIChyaWdodCA9PT0gJ3VwZGF0ZScgJiYgIXBlcm1pc3Npb24udXBkYXRlRmxhZykgfHxcclxuICAgICAgICAgICAgICAocmlnaHQgPT09ICdkZWxldGUnICYmICFwZXJtaXNzaW9uLmRlbGV0ZUZsYWcpIHx8XHJcbiAgICAgICAgICAgICAgKHJpZ2h0ID09PSAnYXNzaWduJyAmJiAhcGVybWlzc2lvbi5hc3NpZ25GbGFnKSB8fFxyXG4gICAgICAgICAgICAgIChyaWdodCA9PT0gJ2Nsb3NlJyAmJiAhcGVybWlzc2lvbi5jbG9zZUZsYWcpIHx8XHJcbiAgICAgICAgICAgICAgKHJpZ2h0ID09PSAnZXhwdW5nZScgJiYgIXBlcm1pc3Npb24uZXhwdW5nZUZsYWcpIHx8XHJcbiAgICAgICAgICAgICAgKHJpZ2h0ID09PSAncmVvcGVuJyAmJiAhcGVybWlzc2lvbi5yZW9wZW5GbGFnKVxyXG4gICAgICAgICAgICApIHtcclxuICAgICAgICAgICAgICBpZiAoZWxlbWVudC5ub2RlTmFtZSA9PT0gJ0JVVFRPTicpIHtcclxuICAgICAgICAgICAgICAgIGlmIChoaWRlICE9PSBmYWxzZSkge1xyXG4gICAgICAgICAgICAgICAgICBoaWRlID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgaWYgKGRpc2FibGUgIT09IGZhbHNlKSB7XHJcbiAgICAgICAgICAgICAgICAgIGRpc2FibGUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICBpZiAoZWxlbWVudC5ub2RlTmFtZSA9PT0gJ0JVVFRPTicpIHtcclxuICAgICAgICAgICAgICAgIGhpZGUgPSBmYWxzZTtcclxuICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgZGlzYWJsZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgaWYgKHJpZ2h0ID09PSAncmVhZCcpIHtcclxuICAgICAgICAgICAgICBpZiAoaGlkZSAhPT0gZmFsc2UpIHtcclxuICAgICAgICAgICAgICAgIGhpZGUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSBlbHNlIGlmIChlbGVtZW50Lm5vZGVOYW1lID09PSAnQlVUVE9OJykge1xyXG4gICAgICAgICAgICAgIGlmIChoaWRlICE9PSBmYWxzZSkge1xyXG4gICAgICAgICAgICAgICAgaGlkZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9IGVsc2UgaWYgKGRpc2FibGUgIT09IGZhbHNlKSB7XHJcbiAgICAgICAgICAgICAgZGlzYWJsZSA9IHRydWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICBjb25zb2xlLmxvZygnaGlkZTogJywgaGlkZSk7XHJcbiAgICAgIGNvbnNvbGUubG9nKCdkaXNhYmxlOiAnLCBkaXNhYmxlKTtcclxuICAgICAgaWYgKGhpZGUgPT09IHRydWUpIHtcclxuICAgICAgICB0aGlzLmhpZGVIdG1sRWxlbWVudChlbGVtZW50KTtcclxuICAgICAgfSBlbHNlIGlmIChkaXNhYmxlID09PSB0cnVlKSB7XHJcbiAgICAgICAgdGhpcy5kaXNhYmxlSHRtbEVsZW1lbnQoZWxlbWVudCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGNoZWNrUGVybWlzc2lvbihhY2Nlc3NDb250cm9sQ29uZmlnOiBTbWFydEFjY2Vzc0NvbnRyb2xDb25maWcpIHtcclxuICAgIGNvbnN0IHNlbERhdGEgPSBhY2Nlc3NDb250cm9sQ29uZmlnLnJvdXRlLmRhdGE7XHJcbiAgICB0aGlzLmxvZ2luU3RhZmYgPSBzZWxEYXRhLmxvZ2luU3RhZmY7XHJcbiAgICB0aGlzLnNlbGVjdGVkT2ZmZW5kZXIgPSBzZWxEYXRhLnNlbGVjdGVkT2ZmZW5kZXI7XHJcbiAgICBsZXQgcm91dGVQYXRoID0gJyc7XHJcbiAgICBpZiAoXHJcbiAgICAgIGFjY2Vzc0NvbnRyb2xDb25maWcucm91dGUudXJsICYmXHJcbiAgICAgIGFjY2Vzc0NvbnRyb2xDb25maWcucm91dGUudXJsLmxlbmd0aCA+IDBcclxuICAgICkge1xyXG4gICAgICByb3V0ZVBhdGggPSBhY2Nlc3NDb250cm9sQ29uZmlnLnJvdXRlLnVybFswXSEucGF0aDtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBwZXJtaXNzaW9ucyA9IHRoaXMubG9naW5TdGFmZi5wZXJtaXNzaW9ucztcclxuICAgIGNvbnN0IHJlc291cmNlID0gcm91dGVQYXRoO1xyXG4gICAgY29uc3Qgcm9sZUlkID0gYWNjZXNzQ29udHJvbENvbmZpZy5yb2xlSWRcclxuICAgICAgPyBhY2Nlc3NDb250cm9sQ29uZmlnLnJvbGVJZC50b1VwcGVyQ2FzZSgpXHJcbiAgICAgIDogbnVsbDtcclxuICAgIGNvbnN0IGFjY2Vzc1R5cGUgPSBhY2Nlc3NDb250cm9sQ29uZmlnLmFjY2Vzc1R5cGU7XHJcbiAgICBjb25zdCBhc3NpZ25tZW50U3RhZmZSZWxhdGlvbklkID0gKCF0aGlzLnNlbGVjdGVkT2ZmZW5kZXIgfHwgIXRoaXMuc2VsZWN0ZWRPZmZlbmRlclxyXG4gICAgICAuYXNzaWdubWVudFN0YWZmUmVsYXRpb25JZClcclxuICAgICAgPyAnTi9BJ1xyXG4gICAgICA6IHRoaXMuc2VsZWN0ZWRPZmZlbmRlci5hc3NpZ25tZW50U3RhZmZSZWxhdGlvbklkO1xyXG5cclxuICAgIGNvbnN0IHBlcm1pc3Npb24gPSBwZXJtaXNzaW9ucy5maW5kKChwKSA9PiB7XHJcbiAgICAgIHJldHVybiAoXHJcbiAgICAgICAgcC5hcHBNb2R1bGVJZCA9PT0gYWNjZXNzQ29udHJvbENvbmZpZy5hcHBNb2R1bGVJZCAmJlxyXG4gICAgICAgIHAucmVzb3VyY2UgPT09IHJlc291cmNlICYmXHJcbiAgICAgICAgKCFyb2xlSWQgfHwgcC5yb2xlSWQgPT09IHJvbGVJZCkgJiZcclxuICAgICAgICAocC5hc3NpZ25tZW50U3RhZmZSZWxhdGlvbklkID09PSAnTi9BJyB8fFxyXG4gICAgICAgICAgcC5hc3NpZ25tZW50U3RhZmZSZWxhdGlvbklkID09PSBhc3NpZ25tZW50U3RhZmZSZWxhdGlvbklkKVxyXG4gICAgICApO1xyXG4gICAgfSk7XHJcblxyXG4gICAgaWYgKHBlcm1pc3Npb24pIHtcclxuICAgICAgaWYgKGFjY2Vzc1R5cGUgPT09ICdyZWFkJykge1xyXG4gICAgICAgIGlmICghcGVybWlzc2lvbi5yZWFkRmxhZykge1xyXG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSBpZiAoXHJcbiAgICAgICAgKGFjY2Vzc1R5cGUgPT09ICdjcmVhdGUnICYmICFwZXJtaXNzaW9uLmNyZWF0ZUZsYWcpIHx8XHJcbiAgICAgICAgKGFjY2Vzc1R5cGUgPT09ICd1cGRhdGUnICYmICFwZXJtaXNzaW9uLnVwZGF0ZUZsYWcpIHx8XHJcbiAgICAgICAgKGFjY2Vzc1R5cGUgPT09ICdkZWxldGUnICYmICFwZXJtaXNzaW9uLmRlbGV0ZUZsYWcpIHx8XHJcbiAgICAgICAgKGFjY2Vzc1R5cGUgPT09ICdhc3NpZ24nICYmICFwZXJtaXNzaW9uLmFzc2lnbkZsYWcpIHx8XHJcbiAgICAgICAgKGFjY2Vzc1R5cGUgPT09ICdjbG9zZScgJiYgIXBlcm1pc3Npb24uY2xvc2VGbGFnKSB8fFxyXG4gICAgICAgIChhY2Nlc3NUeXBlID09PSAnZXhwdW5nZScgJiYgIXBlcm1pc3Npb24uZXhwdW5nZUZsYWcpIHx8XHJcbiAgICAgICAgKGFjY2Vzc1R5cGUgPT09ICdyZW9wZW4nICYmICFwZXJtaXNzaW9uLnJlb3BlbkZsYWcpXHJcbiAgICAgICkge1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKGFjY2Vzc1R5cGUgPT09ICdyZWFkJykge1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGNhbkFwcEZlYXR1cmVBY3RpdmF0ZShcclxuICAgIGxvZ2luU3RhZmY6IExvZ2luU3RhZmYsXHJcbiAgICBmZWF0dXJlOiBzdHJpbmcsXHJcbiAgICBhcHBNb2R1bGVJZCA9IG51bGwsXHJcbiAgKSB7XHJcbiAgICAvLyBpZiAoIXRoaXMuaXNBdXRoRW5hYmxlKGxvZ2luU3RhZmYucm9sZXMsIGFwcE1vZHVsZUlkKSkge1xyXG4gICAgLy8gICByZXR1cm4gdHJ1ZTtcclxuICAgIC8vIH1cclxuICAgIHJldHVybiB0aGlzLmhhc0FwcEZlYXR1cmVQZXJtaXNzaW9uKFxyXG4gICAgICBsb2dpblN0YWZmLnBlcm1pc3Npb25zLFxyXG4gICAgICBmZWF0dXJlLFxyXG4gICAgICBhcHBNb2R1bGVJZCxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICAvLyBwdWJsaWMgaXNBdXRoRW5hYmxlKHJvbGVzOiBSb2xlW10sIGFwcE1vZHVsZUlkOiBzdHJpbmcpIHtcclxuICAvLyAgIGlmIChyb2xlcyAmJiByb2xlcy5sZW5ndGggPiAwKSB7XHJcbiAgLy8gICAgIHJldHVybiByb2xlcy5tYXAociA9PiByLnJvbGVJZCkuZmluZEluZGV4KHRoaXMuaXNFeHRlcm5hbFJvbGUpID4gLTEgfHwgYXBwTW9kdWxlSWQgPT09ICdSUic7XHJcbiAgLy8gICB9XHJcbiAgLy8gICByZXR1cm4gZmFsc2U7XHJcbiAgLy8gfVxyXG5cclxuICBwdWJsaWMgaGFzSW50YWtlUm9sZShyb2xlczogUm9sZVtdKSB7XHJcbiAgICBpZiAocm9sZXMgJiYgcm9sZXMubGVuZ3RoID4gMCkge1xyXG4gICAgICByZXR1cm4gcm9sZXMuZmluZEluZGV4KHRoaXMuaXNJbnRha2VSb2xlKSA+IC0xO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBoYXNBcHBGZWF0dXJlUGVybWlzc2lvbihcclxuICAgIHBlcm1pc3Npb25zOiBQZXJtaXNzaW9uW10sXHJcbiAgICBmZWF0dXJlOiBzdHJpbmcsXHJcbiAgICBhcHBNb2R1bGVJZDogc3RyaW5nLFxyXG4gICkge1xyXG4gICAgaWYgKHBlcm1pc3Npb25zICYmIHBlcm1pc3Npb25zLmxlbmd0aCA+IDApIHtcclxuICAgICAgaWYgKGFwcE1vZHVsZUlkKSB7XHJcbiAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgIHBlcm1pc3Npb25zLmZpbmRJbmRleChcclxuICAgICAgICAgICAgKHApID0+IHAucmVzb3VyY2UgPT09IGZlYXR1cmUgJiYgcC5hcHBNb2R1bGVJZCA9PT0gYXBwTW9kdWxlSWQsXHJcbiAgICAgICAgICApID4gLTFcclxuICAgICAgICApO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHJldHVybiBwZXJtaXNzaW9ucy5maW5kSW5kZXgoKHApID0+IHAucmVzb3VyY2UgPT09IGZlYXR1cmUpID4gLTE7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGlzRXh0ZXJuYWxSb2xlKHJvbGVJZCkge1xyXG4gICAgc3dpdGNoIChyb2xlSWQpIHtcclxuICAgICAgY2FzZSAnRVVEVEwnOlxyXG4gICAgICBjYXNlICdFVURVU00nOlxyXG4gICAgICBjYXNlICdFVUpERyc6XHJcbiAgICAgIGNhc2UgJ0VVTVBEJzpcclxuICAgICAgY2FzZSAnRVVTT1RWJzpcclxuICAgICAgY2FzZSAnRVVVU0EyJzpcclxuICAgICAgY2FzZSAnRVVVU0FPJzpcclxuICAgICAgY2FzZSAnRVVVU1BDJzpcclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGlzSW50YWtlUm9sZShyb2xlOiBSb2xlKSB7XHJcbiAgICBzd2l0Y2ggKHJvbGUucm9sZUlkKSB7XHJcbiAgICAgIGNhc2UgJ09QQSc6XHJcbiAgICAgIGNhc2UgJ09QUyc6XHJcbiAgICAgIGNhc2UgJ1NPUFMnOlxyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgZGlzYWJsZUh0bWxFbGVtZW50KGVsZW1lbnQ6IEVsZW1lbnQpOiB2b2lkIHtcclxuICAgIC8vIGNvbnNvbGUubG9nKGVsZW1lbnQpO1xyXG4gICAgc3dpdGNoIChlbGVtZW50Lm5vZGVOYW1lKSB7XHJcbiAgICAgIGNhc2UgJ0EnOlxyXG4gICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKFxyXG4gICAgICAgICAgJ3N0eWxlJyxcclxuICAgICAgICAgICdwb2ludGVyLWV2ZW50czogbm9uZTtjdXJzb3I6IG5vdC1hbGxvd2VkOycsXHJcbiAgICAgICAgKTtcclxuICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgndGFiSW5kZXgnLCAnLTEnKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgnZGlzYWJsZWQnLCAnZGlzYWJsZWQnKTtcclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgaGlkZUh0bWxFbGVtZW50KGVsZW1lbnQ6IEVsZW1lbnQpOiB2b2lkIHtcclxuICAgIC8vIGVsZW1lbnQuc2V0QXR0cmlidXRlKCdoaWRkZW4nLCAnaGlkZGVuJyk7XHJcbiAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgnc3R5bGUnLCAnZGlzcGxheTogbm9uZTsnKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0U3RhZmYodXNlck5hbWU6IHN0cmluZyk6IE9ic2VydmFibGU8TG9naW5TdGFmZj4ge1xyXG4gICAgcmV0dXJuIHRoaXMucXVlcnk8YW55Pih7XHJcbiAgICAgIHF1ZXJ5OiB0aGlzLmZpbmRTdGFmZlF1ZXJ5LFxyXG4gICAgICB2YXJpYWJsZXM6IHtcclxuICAgICAgICBpbnB1dDoge1xyXG4gICAgICAgICAgd2hlcmU6IHtcclxuICAgICAgICAgICAgdXNlck5hbWU6IHVzZXJOYW1lLFxyXG4gICAgICAgICAgICBhY3RpdmVGbGFnOiB0cnVlLFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICB9KS5waXBlKFxyXG4gICAgICAgIHRha2UoMSksXHJcbiAgICAgICAgbWFwKChyZXN1bHQpID0+IHtcclxuICAgICAgICAgIGlmIChpc0Rldk1vZGUpIHtcclxuICAgICAgICAgICAgY29uc29sZS5sb2coJyMjIyMjIGdldFN0YWZmKCkgZnJvbSBzZXJ2aWNlICcsIHJlc3VsdCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAocmVzdWx0LmZpbmR2U3RhZmZzLmRhdGEubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICBjb25zdCBkYXRhID0gcmVzdWx0LmZpbmR2U3RhZmZzLmRhdGFbMF07XHJcbiAgICAgICAgICAgIHRoaXMueGRtU2VydmljZS5zZXRMb2dpblN0YWZmKGRhdGEpO1xyXG4gICAgICAgICAgICB0aGlzLmxvZ2luU3RhZmYgPSBkYXRhO1xyXG4gICAgICAgICAgICByZXR1cm4gZGF0YTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHJldHVybiBvZihudWxsKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KSxcclxuICAgICAgICBjYXRjaEVycm9yKChlcnJvcikgPT4ge1xyXG4gICAgICAgICAgY29uc29sZS5sb2coJ2Vycm9yICcgKyBlcnJvcik7XHJcbiAgICAgICAgICByZXR1cm4gb2YobnVsbCk7XHJcbiAgICAgICAgfSksXHJcbiAgICAgICk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHF1ZXJ5PFQ+KG9wdGlvbnM6IHtcclxuICAgIHF1ZXJ5OiBzdHJpbmc7XHJcbiAgICB2YXJpYWJsZXM/OiB7IFtrZXk6IHN0cmluZ106IGFueSB9O1xyXG4gIH0pOiBPYnNlcnZhYmxlPFQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLnBvc3Q8eyBkYXRhOiBUIH0+KFxyXG4gICAgICAgIHRoaXMuc21hcnREYXRhU2VydmljZVVybCxcclxuICAgICAgICB7XHJcbiAgICAgICAgICBxdWVyeTogb3B0aW9ucy5xdWVyeSxcclxuICAgICAgICAgIHZhcmlhYmxlczogb3B0aW9ucy52YXJpYWJsZXMsXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICBoZWFkZXJzOiBuZXcgSHR0cEhlYWRlcnMoe1xyXG4gICAgICAgICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nLFxyXG4gICAgICAgICAgICAnTm8tQXV0aCc6ICdUcnVlJyxcclxuICAgICAgICAgIH0pLFxyXG4gICAgICAgfVxyXG4gICAgICApXHJcbiAgICAgIC5waXBlKG1hcCgoZCkgPT4gZC5kYXRhKSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldCBmaW5kU3RhZmZRdWVyeSgpe1xyXG4gICAgcmV0dXJuIGBcclxuICAgICBxdWVyeSBmaW5kdlN0YWZmcygkaW5wdXQ6IHZTdGFmZk11bHRpSW5wdXQpIHtcclxuICAgICAgICBmaW5kdlN0YWZmcyhpbnB1dDogJGlucHV0KSB7XHJcbiAgICAgICAgICB0b3RhbENvdW50XHJcbiAgICAgICAgICBtZXNzYWdlXHJcbiAgICAgICAgICBkYXRhIHtcclxuICAgICAgICAgICAgc3RhZmZJZFxyXG4gICAgICAgICAgICB1c2VyTmFtZVxyXG4gICAgICAgICAgICBsYXN0TmFtZVxyXG4gICAgICAgICAgICBmaXJzdE5hbWVcclxuICAgICAgICAgICAgcGhvbmVcclxuICAgICAgICAgICAgZW1haWxcclxuICAgICAgICAgICAgcm9sZXMge1xyXG4gICAgICAgICAgICAgIHJvbGVJZFxyXG4gICAgICAgICAgICAgIHJvbGVcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBwZXJtaXNzaW9ucyB7XHJcbiAgICAgICAgICAgICAgcm9sZUlkXHJcbiAgICAgICAgICAgICAgYXBwTW9kdWxlSWRcclxuICAgICAgICAgICAgICByZXNvdXJjZVxyXG4gICAgICAgICAgICAgIGFzc2lnbm1lbnRTdGFmZlJlbGF0aW9uSWRcclxuICAgICAgICAgICAgICByZWFkRmxhZ1xyXG4gICAgICAgICAgICAgIGNyZWF0ZUZsYWdcclxuICAgICAgICAgICAgICB1cGRhdGVGbGFnXHJcbiAgICAgICAgICAgICAgZGVsZXRlRmxhZ1xyXG4gICAgICAgICAgICAgIGFzc2lnbkZsYWdcclxuICAgICAgICAgICAgICByZW9wZW5GbGFnXHJcbiAgICAgICAgICAgICAgY2xvc2VGbGFnXHJcbiAgICAgICAgICAgICAgZXhwdW5nZUZsYWdcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBvcHRpb25zIHtcclxuICAgICAgICAgICAgICBvZmZlbmRlckxpc3RPcHRpb25JZFxyXG4gICAgICAgICAgICAgIG5hbWVcclxuICAgICAgICAgICAgICBzZXJ2aWNlQXBpRmllbGROYW1lXHJcbiAgICAgICAgICAgICAgc2VsZWN0ZWRGbGFnXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIGA7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldFN0YWZmT2ZmZW5kZXJSZWxhdGlvbihcclxuICAgIHN0YWZmSWQ6IG51bWJlcixcclxuICAgIG9mZmVuZGVySWQ6IG51bWJlcixcclxuICApOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xyXG4gICAgY29uc3QgcXVlcnlTdHJpbmcgPSBgXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICBmaW5kdlN0YWZmT2ZmZW5kZXJSZWxhdGlvbnMoaW5wdXQ6IHt3aGVyZToge3N0YWZmSWQ6ICR7c3RhZmZJZH0sIG9mZmVuZGVySWQ6ICR7b2ZmZW5kZXJJZH19fSkge1xyXG4gICAgICAgICAgICAgICAgZGF0YSB7XHJcbiAgICAgICAgICAgICAgICAgIGFzc2lnbm1lbnRTdGFmZlJlbGF0aW9uSWRcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1gO1xyXG5cclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLnBvc3Q8YW55Pih0aGlzLnNtYXJ0RGF0YVNlcnZpY2VVcmwsIHsgcXVlcnk6IHF1ZXJ5U3RyaW5nIH0pXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIHRha2UoMSksXHJcbiAgICAgICAgbWFwKChyZXN1bHQpID0+IHtcclxuICAgICAgICAgIGlmIChpc0Rldk1vZGUpIHtcclxuICAgICAgICAgICAgY29uc29sZS5sb2coXHJcbiAgICAgICAgICAgICAgJyMjIyMjIGdldFN0YWZmT2ZmZW5kZXJSZWxhdGlvbigpIGZyb20gc2VydmljZSAnLFxyXG4gICAgICAgICAgICAgIHJlc3VsdCxcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmIChyZXN1bHQuZGF0YS5maW5kdlN0YWZmT2ZmZW5kZXJSZWxhdGlvbnMuZGF0YS5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGRhdGEgPSByZXN1bHQuZGF0YS5maW5kdlN0YWZmT2ZmZW5kZXJSZWxhdGlvbnMuZGF0YVswXTtcclxuICAgICAgICAgICAgcmV0dXJuIGRhdGEuYXNzaWdubWVudFN0YWZmUmVsYXRpb25JZDtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICAgICAgICAvLyByZXR1cm4gdGhyb3dFcnJvcignTm8gYWNjZXNzIHJpZ2h0LicpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pLFxyXG4gICAgICAgIGNhdGNoRXJyb3IoKGVycm9yKSA9PiB7XHJcbiAgICAgICAgICBjb25zb2xlLmxvZygnZXJyb3IgJyArIGVycm9yKTtcclxuICAgICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICAgIH0pLFxyXG4gICAgICApO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRSb2xlUGVybWlzc2lvbnMoXHJcbiAgICBhcHBNb2R1bGVJZDogc3RyaW5nLFxyXG4gICAgcmVzb3VyY2U6IHN0cmluZyxcclxuICApOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcclxuICAgIGNvbnN0IHF1ZXJ5U3RyaW5nID0gYFxyXG4gICAgICAgICAgIHF1ZXJ5IGZpbmR2Um9sZVBlcm1pc3Npb25QaXZvdHN7XHJcbiAgICAgICAgICAgIGZpbmR2Um9sZVBlcm1pc3Npb25QaXZvdHMoaW5wdXQ6IHt3aGVyZToge2FwcE1vZHVsZUlkOiAke2FwcE1vZHVsZUlkfSwgcmVzb3VyY2U6ICR7cmVzb3VyY2V9fX0pe1xyXG4gICAgICAgICAgICAgIHRvdGFsQ291bnRcclxuICAgICAgICAgICAgICBtZXNzYWdlXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1gO1xyXG5cclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLnBvc3Q8YW55Pih0aGlzLnNtYXJ0RGF0YVNlcnZpY2VVcmwsIHsgcXVlcnk6IHF1ZXJ5U3RyaW5nIH0pXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIHRha2UoMSksXHJcbiAgICAgICAgbWFwKChyZXN1bHQpID0+IHtcclxuICAgICAgICAgIGlmIChpc0Rldk1vZGUpIHtcclxuICAgICAgICAgICAgY29uc29sZS5sb2coXHJcbiAgICAgICAgICAgICAgJyMjIyMjIGZpbmR2Um9sZVBlcm1pc3Npb25QaXZvdHMoKSBmcm9tIHNlcnZpY2UgJyxcclxuICAgICAgICAgICAgICByZXN1bHQsXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAocmVzdWx0LmRhdGEuZmluZHZSb2xlUGVybWlzc2lvblBpdm90cy50b3RhbENvdW50ID4gMCkge1xyXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgICAgLy8gcmV0dXJuIHRocm93RXJyb3IoJ05vIGFjY2VzcyByaWdodC4nKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KSxcclxuICAgICAgICBjYXRjaEVycm9yKChlcnJvcjogYW55KSA9PiB7XHJcbiAgICAgICAgICBjb25zb2xlLmxvZygnZXJyb3IgJyArIGVycm9yKTtcclxuICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKGVycm9yKTtcclxuICAgICAgICB9KSxcclxuICAgICAgKTtcclxuICB9XHJcbn1cclxuIl19
503
+ }] }] });
504
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtYXV0aC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY3NtYXJ0L25nYy1zbWFydC1jb3JlL3NyYy9saWIvc21hcnQtYXV0aC9zbWFydC1hdXRoLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlELE9BQU8sRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDL0QsT0FBTyxFQUFjLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLGFBQWEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN2RSxPQUFPLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDakUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBR2xELE9BQU8sRUFHTCxzQkFBc0IsRUFDdEIsbUJBQW1CLEdBR3BCLE1BQU0sc0NBQXNDLENBQUM7QUFDOUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDhCQUE4QixDQUFDOzs7OztBQU0xRCxNQUFNLE9BQU8sZ0JBQWdCO0lBSTNCLFlBQ1UsSUFBZ0IsRUFDaEIsWUFBeUIsRUFDekIsVUFBc0IsRUFDVSxtQkFBbUIsRUFDdEIsb0JBQTRCO1FBSnpELFNBQUksR0FBSixJQUFJLENBQVk7UUFDaEIsaUJBQVksR0FBWixZQUFZLENBQWE7UUFDekIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUNVLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBQTtRQUN0Qix5QkFBb0IsR0FBcEIsb0JBQW9CLENBQVE7SUFDaEUsQ0FBQztJQUVHLGFBQWE7UUFDbEIsSUFBSSxTQUFTLEVBQUUsQ0FBQztZQUNkLE9BQU8sQ0FBQyxHQUFHLENBQUMsb0NBQW9DLENBQUMsQ0FBQztRQUNwRCxDQUFDO1FBQ0QsSUFBSSxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDbEMsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSxDQUFDO2dCQUM1QixJQUFJLFNBQVMsRUFBRSxDQUFDO29CQUNkLE9BQU8sQ0FBQyxHQUFHLENBQ1QseURBQXlELEVBQ3pELElBQUksQ0FBQyxVQUFVLENBQ2hCLENBQUM7Z0JBQ0osQ0FBQztnQkFDRCxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDN0IsQ0FBQztpQkFBTSxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBQ3BDLElBQUksU0FBUyxFQUFFLENBQUM7b0JBQ2QsT0FBTyxDQUFDLEdBQUcsQ0FDVCxtREFBbUQsRUFDbkQsSUFBSSxDQUFDLFVBQVUsQ0FDaEIsQ0FBQztnQkFDSixDQUFDO2dCQUNELE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ2pELENBQUM7UUFDSCxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FDL0MsU0FBUyxDQUFDLENBQUMsWUFBWSxFQUFFLEVBQUU7WUFDekIsSUFBSSxZQUFZLElBQUksWUFBWSxDQUFDLE9BQU8sRUFBRSxDQUFDO2dCQUN6QyxJQUFJLFNBQVMsRUFBRSxDQUFDO29CQUNkLE9BQU8sQ0FBQyxHQUFHLENBQ1QsMENBQTBDLEVBQzFDLFlBQVksQ0FDYixDQUFDO2dCQUNKLENBQUM7Z0JBQ0QsSUFBSSxDQUFDLFVBQVUsR0FBRyxZQUFZLENBQUM7Z0JBQy9CLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQzFCLENBQUM7aUJBQU0sSUFBSSxZQUFZLElBQUksWUFBWSxDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUNqRCxJQUFJLFNBQVMsRUFBRSxDQUFDO29CQUNkLE9BQU8sQ0FBQyxHQUFHLENBQ1QsbURBQW1ELEVBQ25ELElBQUksQ0FBQyxVQUFVLENBQ2hCLENBQUM7Z0JBQ0osQ0FBQztnQkFDRCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQzlDLENBQUM7aUJBQU0sQ0FBQztnQkFDTixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO2dCQUMvQixNQUFNLFNBQVMsR0FBRyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxRQUFRLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7Z0JBQy9ELElBQUksU0FBUyxFQUFFLENBQUM7b0JBQ2QsT0FBTyxDQUFDLEdBQUcsQ0FDVCxzREFBc0QsRUFDdEQsU0FBUyxDQUNWLENBQUM7Z0JBQ0osQ0FBQztnQkFDRCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDbEMsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0lBRUQsSUFBSSxRQUFRO1FBQ1YsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxjQUFjLEVBQUUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDM0QsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDL0QsT0FBTyxPQUFPLENBQUMsUUFBUSxDQUFDO1FBQzFCLENBQUM7UUFFRCxPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFTyxVQUFVLENBQUMsR0FBVyxFQUFFLFNBQWlCO1FBQy9DLE9BQU8sSUFBSSxDQUFDLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLEdBQUcsU0FBUyxDQUFDO0lBQ3RFLENBQUM7SUFDTyxVQUFVLENBQUMsR0FBRyxFQUFFLEdBQUc7UUFDekIsT0FBTyxJQUFJLENBQUMsb0JBQW9CLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxHQUFHLENBQUMsS0FBSyxHQUFHLENBQUM7SUFDbEUsQ0FBQztJQUVNLGNBQWMsQ0FBQyxVQUFzQjtRQUMxQyxJQUFJLFVBQVUsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxLQUFLLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDeEUsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsZUFBZSxDQUFDLEVBQUUsQ0FBQztnQkFDOUQsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxlQUFlLEVBQUUsYUFBYSxDQUFDLENBQUM7WUFDekUsQ0FBQztRQUNILENBQUM7YUFBTSxJQUNMLFVBQVUsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUN4QixDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLEtBQUssQ0FDaEQsR0FBRyxDQUFDLENBQUMsRUFDTixDQUFDO1lBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLEVBQUUsQ0FBQztnQkFDcEQsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztZQUNsRSxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFTSxLQUFLLENBQUMsbUJBQW1CLENBQUMsZ0JBQWtDO1FBQ2pFLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDckIsT0FBTztRQUNULENBQUM7UUFFRCxJQUFJLGdCQUFnQixFQUFFLENBQUM7WUFDckIscURBQXFEO1lBQ3JELE1BQU0sUUFBUSxHQUFHLE1BQU0sYUFBYSxDQUNsQyxJQUFJLENBQUMsd0JBQXdCLENBQzNCLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxFQUN2QixnQkFBZ0IsQ0FBQyxVQUFVLENBQzVCLENBQ0YsQ0FBQztZQUNGLElBQUksUUFBUSxFQUFFLENBQUM7Z0JBQ2IsZ0JBQWdCLENBQUMseUJBQXlCLEdBQUcsUUFBUSxDQUFDO1lBQ3hELENBQUM7aUJBQU0sQ0FBQztnQkFDTixnQkFBZ0IsQ0FBQyx5QkFBeUIsR0FBRyxVQUFVLENBQUM7WUFDMUQsQ0FBQztZQUNELElBQUk7UUFDTixDQUFDO1FBQ0QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxtQkFBbUIsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ3RELElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxnQkFBZ0IsQ0FBQztJQUMzQyxDQUFDO0lBRU0sTUFBTTtRQUNYLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDM0IsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRU0sS0FBSyxDQUFDLGFBQWEsQ0FDeEIsV0FBbUIsRUFDbkIsS0FBNkI7UUFFN0IsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNyQixJQUFJLENBQUMsVUFBVSxHQUFHLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUMxRCxDQUFDO1FBQ0QsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUM7UUFDaEQsTUFBTSxRQUFRLEdBQ1osS0FBSyxDQUFDLEdBQUcsSUFBSSxLQUFLLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFFOUQsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBQzNCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztRQUN0RSxDQUFDO1FBRUQsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztZQUMxQiwwREFBMEQ7WUFDMUQsTUFBTSxRQUFRLEdBQUcsTUFBTSxJQUFJLENBQUMsd0JBQXdCLENBQ2xELElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxFQUN2QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxDQUNqQyxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ2QsSUFBSSxRQUFRLEVBQUUsQ0FBQztnQkFDYixJQUFJLENBQUMsZ0JBQWdCLENBQUMseUJBQXlCLEdBQUcsUUFBUSxDQUFDO1lBQzdELENBQUM7aUJBQU0sQ0FBQztnQkFDTixJQUFJLENBQUMsZ0JBQWdCLENBQUMseUJBQXlCLEdBQUcsVUFBVSxDQUFDO1lBQy9ELENBQUM7WUFDRCxJQUFJLENBQUMsVUFBVSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1lBQzNELElBQUk7UUFDTixDQUFDO1FBRUQsTUFBTSx5QkFBeUIsR0FDN0IsSUFBSSxDQUFDLGdCQUFnQixDQUFDLHlCQUF5QixDQUFDO1FBRWxELE1BQU0sUUFBUSxHQUFHLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQzlELE1BQU0sT0FBTyxHQUFHLG9CQUFvQixDQUFDO1FBRXJDLEtBQUssQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7WUFDdkMsSUFBSSxJQUFJLENBQUM7WUFDVCxJQUFJLE9BQU8sQ0FBQztZQUNaLE9BQU8sQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7Z0JBQzlCLE1BQU0sT0FBTyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQ2pDLHdCQUF3QjtnQkFDeEIsSUFBSSxPQUFPLElBQUksT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztvQkFDbEMsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztvQkFDNUQsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUN6QiwyQkFBMkI7b0JBQzNCLDJCQUEyQjtvQkFDM0IsMkJBQTJCO29CQUMzQixNQUFNLFVBQVUsR0FBRyxXQUFXLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQzt3QkFDN0MsT0FBTyxDQUNMLENBQUMsQ0FBQyxXQUFXLEtBQUssV0FBVzs0QkFDN0IsQ0FBQyxDQUFDLFFBQVEsS0FBSyxRQUFROzRCQUN2QixDQUFDLENBQUMsTUFBTSxLQUFLLE1BQU07NEJBQ25CLENBQUMsQ0FBQyx5QkFBeUIsS0FBSyx5QkFBeUIsQ0FDMUQsQ0FBQztvQkFDSixDQUFDLENBQUMsQ0FBQztvQkFDSDs7Ozs7Ozs7c0JBUUU7b0JBQ0YsT0FBTyxDQUFDLEdBQUcsQ0FBQyw0QkFBNEIsRUFBRSxVQUFVLENBQUMsQ0FBQztvQkFFdEQsSUFBSSxVQUFVLEVBQUUsQ0FBQzt3QkFDZixJQUFJLEtBQUssS0FBSyxNQUFNLEVBQUUsQ0FBQzs0QkFDckIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQ0FDekIsSUFBSSxJQUFJLEtBQUssS0FBSyxFQUFFLENBQUM7b0NBQ25CLElBQUksR0FBRyxJQUFJLENBQUM7Z0NBQ2QsQ0FBQzs0QkFDSCxDQUFDO2lDQUFNLENBQUM7Z0NBQ04sSUFBSSxHQUFHLEtBQUssQ0FBQzs0QkFDZixDQUFDO3dCQUNILENBQUM7NkJBQU0sSUFDTCxDQUFDLEtBQUssS0FBSyxRQUFRLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDOzRCQUM5QyxDQUFDLEtBQUssS0FBSyxRQUFRLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDOzRCQUM5QyxDQUFDLEtBQUssS0FBSyxRQUFRLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDOzRCQUM5QyxDQUFDLEtBQUssS0FBSyxRQUFRLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDOzRCQUM5QyxDQUFDLEtBQUssS0FBSyxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDOzRCQUM1QyxDQUFDLEtBQUssS0FBSyxTQUFTLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDOzRCQUNoRCxDQUFDLEtBQUssS0FBSyxRQUFRLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLEVBQzlDLENBQUM7NEJBQ0QsSUFBSSxPQUFPLENBQUMsUUFBUSxLQUFLLFFBQVEsRUFBRSxDQUFDO2dDQUNsQyxJQUFJLElBQUksS0FBSyxLQUFLLEVBQUUsQ0FBQztvQ0FDbkIsSUFBSSxHQUFHLElBQUksQ0FBQztnQ0FDZCxDQUFDOzRCQUNILENBQUM7aUNBQU0sQ0FBQztnQ0FDTixJQUFJLE9BQU8sS0FBSyxLQUFLLEVBQUUsQ0FBQztvQ0FDdEIsT0FBTyxHQUFHLElBQUksQ0FBQztnQ0FDakIsQ0FBQzs0QkFDSCxDQUFDO3dCQUNILENBQUM7NkJBQU0sQ0FBQzs0QkFDTixJQUFJLE9BQU8sQ0FBQyxRQUFRLEtBQUssUUFBUSxFQUFFLENBQUM7Z0NBQ2xDLElBQUksR0FBRyxLQUFLLENBQUM7NEJBQ2YsQ0FBQztpQ0FBTSxDQUFDO2dDQUNOLE9BQU8sR0FBRyxLQUFLLENBQUM7NEJBQ2xCLENBQUM7d0JBQ0gsQ0FBQztvQkFDSCxDQUFDO3lCQUFNLENBQUM7d0JBQ04sSUFBSSxLQUFLLEtBQUssTUFBTSxFQUFFLENBQUM7NEJBQ3JCLElBQUksSUFBSSxLQUFLLEtBQUssRUFBRSxDQUFDO2dDQUNuQixJQUFJLEdBQUcsSUFBSSxDQUFDOzRCQUNkLENBQUM7d0JBQ0gsQ0FBQzs2QkFBTSxJQUFJLE9BQU8sQ0FBQyxRQUFRLEtBQUssUUFBUSxFQUFFLENBQUM7NEJBQ3pDLElBQUksSUFBSSxLQUFLLEtBQUssRUFBRSxDQUFDO2dDQUNuQixJQUFJLEdBQUcsSUFBSSxDQUFDOzRCQUNkLENBQUM7d0JBQ0gsQ0FBQzs2QkFBTSxJQUFJLE9BQU8sS0FBSyxLQUFLLEVBQUUsQ0FBQzs0QkFDN0IsT0FBTyxHQUFHLElBQUksQ0FBQzt3QkFDakIsQ0FBQztvQkFDSCxDQUFDO2dCQUNILENBQUM7WUFDSCxDQUFDLENBQUMsQ0FBQztZQUNILE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQzVCLE9BQU8sQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBQ2xDLElBQUksSUFBSSxLQUFLLElBQUksRUFBRSxDQUFDO2dCQUNsQixJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ2hDLENBQUM7aUJBQU0sSUFBSSxPQUFPLEtBQUssSUFBSSxFQUFFLENBQUM7Z0JBQzVCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNuQyxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU0sZUFBZSxDQUFDLG1CQUE2QztRQUNsRSxNQUFNLE9BQU8sR0FBRyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDO1FBQy9DLElBQUksQ0FBQyxVQUFVLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBQztRQUNyQyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsT0FBTyxDQUFDLGdCQUFnQixDQUFDO1FBQ2pELElBQUksU0FBUyxHQUFHLEVBQUUsQ0FBQztRQUNuQixJQUNFLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxHQUFHO1lBQzdCLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsTUFBTSxHQUFHLENBQUMsRUFDeEMsQ0FBQztZQUNELFNBQVMsR0FBRyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBRSxDQUFDLElBQUksQ0FBQztRQUNyRCxDQUFDO1FBRUQsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUM7UUFDaEQsTUFBTSxRQUFRLEdBQUcsU0FBUyxDQUFDO1FBQzNCLE1BQU0sTUFBTSxHQUFHLG1CQUFtQixDQUFDLE1BQU07WUFDdkMsQ0FBQyxDQUFDLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQUU7WUFDMUMsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUNULE1BQU0sVUFBVSxHQUFHLG1CQUFtQixDQUFDLFVBQVUsQ0FBQztRQUNsRCxNQUFNLHlCQUF5QixHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCO2FBQ2hGLHlCQUF5QixDQUFDO1lBQzNCLENBQUMsQ0FBQyxLQUFLO1lBQ1AsQ0FBQyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyx5QkFBeUIsQ0FBQztRQUVwRCxNQUFNLFVBQVUsR0FBRyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDeEMsT0FBTyxDQUNMLENBQUMsQ0FBQyxXQUFXLEtBQUssbUJBQW1CLENBQUMsV0FBVztnQkFDakQsQ0FBQyxDQUFDLFFBQVEsS0FBSyxRQUFRO2dCQUN2QixDQUFDLENBQUMsTUFBTSxJQUFJLENBQUMsQ0FBQyxNQUFNLEtBQUssTUFBTSxDQUFDO2dCQUNoQyxDQUFDLENBQUMsQ0FBQyx5QkFBeUIsS0FBSyxLQUFLO29CQUNwQyxDQUFDLENBQUMseUJBQXlCLEtBQUsseUJBQXlCLENBQUMsQ0FDN0QsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxVQUFVLEVBQUUsQ0FBQztZQUNmLElBQUksVUFBVSxLQUFLLE1BQU0sRUFBRSxDQUFDO2dCQUMxQixJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxDQUFDO29CQUN6QixPQUFPLEtBQUssQ0FBQztnQkFDZixDQUFDO3FCQUFNLENBQUM7b0JBQ04sT0FBTyxJQUFJLENBQUM7Z0JBQ2QsQ0FBQztZQUNILENBQUM7aUJBQU0sSUFDTCxDQUFDLFVBQVUsS0FBSyxRQUFRLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDO2dCQUNuRCxDQUFDLFVBQVUsS0FBSyxRQUFRLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDO2dCQUNuRCxDQUFDLFVBQVUsS0FBSyxRQUFRLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDO2dCQUNuRCxDQUFDLFVBQVUsS0FBSyxRQUFRLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDO2dCQUNuRCxDQUFDLFVBQVUsS0FBSyxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDO2dCQUNqRCxDQUFDLFVBQVUsS0FBSyxTQUFTLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDO2dCQUNyRCxDQUFDLFVBQVUsS0FBSyxRQUFRLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLEVBQ25ELENBQUM7Z0JBQ0QsT0FBTyxLQUFLLENBQUM7WUFDZixDQUFDO2lCQUFNLENBQUM7Z0JBQ04sT0FBTyxJQUFJLENBQUM7WUFDZCxDQUFDO1FBQ0gsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLFVBQVUsS0FBSyxNQUFNLEVBQUUsQ0FBQztnQkFDMUIsT0FBTyxLQUFLLENBQUM7WUFDZixDQUFDO1FBQ0gsQ0FBQztRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVNLHFCQUFxQixDQUMxQixVQUFzQixFQUN0QixPQUFlLEVBQ2YsV0FBVyxHQUFHLElBQUk7UUFFbEIsMkRBQTJEO1FBQzNELGlCQUFpQjtRQUNqQixJQUFJO1FBQ0osT0FBTyxJQUFJLENBQUMsdUJBQXVCLENBQ2pDLFVBQVUsQ0FBQyxXQUFXLEVBQ3RCLE9BQU8sRUFDUCxXQUFXLENBQ1osQ0FBQztJQUNKLENBQUM7SUFFRCw0REFBNEQ7SUFDNUQscUNBQXFDO0lBQ3JDLG1HQUFtRztJQUNuRyxNQUFNO0lBQ04sa0JBQWtCO0lBQ2xCLElBQUk7SUFFRyxhQUFhLENBQUMsS0FBYTtRQUNoQyxJQUFJLEtBQUssSUFBSSxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQzlCLE9BQU8sS0FBSyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDakQsQ0FBQztRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVPLHVCQUF1QixDQUM3QixXQUF5QixFQUN6QixPQUFlLEVBQ2YsV0FBbUI7UUFFbkIsSUFBSSxXQUFXLElBQUksV0FBVyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUMxQyxJQUFJLFdBQVcsRUFBRSxDQUFDO2dCQUNoQixPQUFPLENBQ0wsV0FBVyxDQUFDLFNBQVMsQ0FDbkIsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLEtBQUssT0FBTyxJQUFJLENBQUMsQ0FBQyxXQUFXLEtBQUssV0FBVyxDQUMvRCxHQUFHLENBQUMsQ0FBQyxDQUNQLENBQUM7WUFDSixDQUFDO2lCQUFNLENBQUM7Z0JBQ04sT0FBTyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxLQUFLLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQ25FLENBQUM7UUFDSCxDQUFDO1FBRUQsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRU8sY0FBYyxDQUFDLE1BQU07UUFDM0IsUUFBUSxNQUFNLEVBQUUsQ0FBQztZQUNmLEtBQUssT0FBTyxDQUFDO1lBQ2IsS0FBSyxRQUFRLENBQUM7WUFDZCxLQUFLLE9BQU8sQ0FBQztZQUNiLEtBQUssT0FBTyxDQUFDO1lBQ2IsS0FBSyxRQUFRLENBQUM7WUFDZCxLQUFLLFFBQVEsQ0FBQztZQUNkLEtBQUssUUFBUSxDQUFDO1lBQ2QsS0FBSyxRQUFRO2dCQUNYLE9BQU8sSUFBSSxDQUFDO1lBQ2Q7Z0JBQ0UsT0FBTyxLQUFLLENBQUM7UUFDakIsQ0FBQztJQUNILENBQUM7SUFFTyxZQUFZLENBQUMsSUFBVTtRQUM3QixRQUFRLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNwQixLQUFLLEtBQUssQ0FBQztZQUNYLEtBQUssS0FBSyxDQUFDO1lBQ1gsS0FBSyxNQUFNO2dCQUNULE9BQU8sSUFBSSxDQUFDO1lBQ2Q7Z0JBQ0UsT0FBTyxLQUFLLENBQUM7UUFDakIsQ0FBQztJQUNILENBQUM7SUFFTyxrQkFBa0IsQ0FBQyxPQUFnQjtRQUN6Qyx3QkFBd0I7UUFDeEIsUUFBUSxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDekIsS0FBSyxHQUFHO2dCQUNOLE9BQU8sQ0FBQyxZQUFZLENBQ2xCLE9BQU8sRUFDUCwyQ0FBMkMsQ0FDNUMsQ0FBQztnQkFDRixPQUFPLENBQUMsWUFBWSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQztnQkFDdkMsTUFBTTtZQUNSO2dCQUNFLE9BQU8sQ0FBQyxZQUFZLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxDQUFDO2dCQUM3QyxNQUFNO1FBQ1YsQ0FBQztJQUNILENBQUM7SUFFTyxlQUFlLENBQUMsT0FBZ0I7UUFDdEMsNENBQTRDO1FBQzVDLE9BQU8sQ0FBQyxZQUFZLENBQUMsT0FBTyxFQUFFLGdCQUFnQixDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVPLFFBQVEsQ0FBQyxRQUFnQjtRQUMvQixPQUFPLElBQUksQ0FBQyxLQUFLLENBQU07WUFDckIsS0FBSyxFQUFFLElBQUksQ0FBQyxjQUFjO1lBQzFCLFNBQVMsRUFBRTtnQkFDVCxLQUFLLEVBQUU7b0JBQ0wsS0FBSyxFQUFFO3dCQUNMLFFBQVEsRUFBRSxRQUFRO3dCQUNsQixVQUFVLEVBQUUsSUFBSTtxQkFDakI7aUJBQ0Y7YUFDRjtTQUNGLENBQUMsQ0FBQyxJQUFJLENBQ0gsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUNQLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO1lBQ2IsSUFBSSxTQUFTLEVBQUUsQ0FBQztnQkFDZCxPQUFPLENBQUMsR0FBRyxDQUFDLGdDQUFnQyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQ3hELENBQUM7WUFDRCxJQUFJLE1BQU0sQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDdkMsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3hDLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUNwQyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztnQkFDdkIsT0FBTyxJQUFJLENBQUM7WUFDZCxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDbEIsQ0FBQztRQUNILENBQUMsQ0FBQyxFQUNGLFVBQVUsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ25CLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQyxDQUFDO1lBQzlCLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2xCLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDTixDQUFDO0lBRU8sS0FBSyxDQUFJLE9BR2hCO1FBQ0MsT0FBTyxJQUFJLENBQUMsSUFBSTthQUNiLElBQUksQ0FDSCxJQUFJLENBQUMsbUJBQW1CLEVBQ3hCO1lBQ0UsS0FBSyxFQUFFLE9BQU8sQ0FBQyxLQUFLO1lBQ3BCLFNBQVMsRUFBRSxPQUFPLENBQUMsU0FBUztTQUM3QixFQUNEO1lBQ0UsT0FBTyxFQUFFLElBQUksV0FBVyxDQUFDO2dCQUN2QixjQUFjLEVBQUUsa0JBQWtCO2dCQUNsQyxTQUFTLEVBQUUsTUFBTTthQUNsQixDQUFDO1NBQ0osQ0FDRDthQUNBLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFRCxJQUFZLGNBQWM7UUFDeEIsT0FBTzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0tBdUNOLENBQUM7SUFDSixDQUFDO0lBRU8sd0JBQXdCLENBQzlCLE9BQWUsRUFDZixVQUFrQjtRQUVsQixNQUFNLFdBQVcsR0FBRzs7cUVBRTZDLE9BQU8saUJBQWlCLFVBQVU7Ozs7O2NBS3pGLENBQUM7UUFFWCxPQUFPLElBQUksQ0FBQyxJQUFJO2FBQ2IsSUFBSSxDQUFNLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsQ0FBQzthQUMzRCxJQUFJLENBQ0gsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUNQLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO1lBQ2IsSUFBSSxTQUFTLEVBQUUsQ0FBQztnQkFDZCxPQUFPLENBQUMsR0FBRyxDQUNULGdEQUFnRCxFQUNoRCxNQUFNLENBQ1AsQ0FBQztZQUNKLENBQUM7WUFDRCxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsMkJBQTJCLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDNUQsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQzdELE9BQU8sSUFBSSxDQUFDLHlCQUF5QixDQUFDO1lBQ3hDLENBQUM7aUJBQU0sQ0FBQztnQkFDTixPQUFPLElBQUksQ0FBQztnQkFDWix5Q0FBeUM7WUFDM0MsQ0FBQztRQUNILENBQUMsQ0FBQyxFQUNGLFVBQVUsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ25CLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQyxDQUFDO1lBQzlCLE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNOLENBQUM7SUFFTyxrQkFBa0IsQ0FDeEIsV0FBbUIsRUFDbkIsUUFBZ0I7UUFFaEIsTUFBTSxXQUFXLEdBQUc7O3FFQUU2QyxXQUFXLGVBQWUsUUFBUTs7OztZQUkzRixDQUFDO1FBRVQsT0FBTyxJQUFJLENBQUMsSUFBSTthQUNiLElBQUksQ0FBTSxJQUFJLENBQUMsbUJBQW1CLEVBQUUsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLENBQUM7YUFDM0QsSUFBSSxDQUNILElBQUksQ0FBQyxDQUFDLENBQUMsRUFDUCxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUNiLElBQUksU0FBUyxFQUFFLENBQUM7Z0JBQ2QsT0FBTyxDQUFDLEdBQUcsQ0FDVCxpREFBaUQsRUFDakQsTUFBTSxDQUNQLENBQUM7WUFDSixDQUFDO1lBQ0QsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLHlCQUF5QixDQUFDLFVBQVUsR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDekQsT0FBTyxJQUFJLENBQUM7WUFDZCxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sT0FBTyxLQUFLLENBQUM7Z0JBQ2IseUNBQXlDO1lBQzNDLENBQUM7UUFDSCxDQUFDLENBQUMsRUFDRixVQUFVLENBQUMsQ0FBQyxLQUFVLEVBQUUsRUFBRTtZQUN4QixPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUMsQ0FBQztZQUM5QixPQUFPLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMzQixDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ04sQ0FBQztrSUF6a0JVLGdCQUFnQixpR0FRakIsc0JBQXNCLGFBQ3RCLG1CQUFtQjtzSUFUbEIsZ0JBQWdCLGNBRmYsTUFBTTs7NEZBRVAsZ0JBQWdCO2tCQUg1QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBU0ksTUFBTTsyQkFBQyxzQkFBc0I7OzBCQUM3QixNQUFNOzJCQUFDLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIEluamVjdCwgaXNEZXZNb2RlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBIZWFkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiwgZnJvbSwgdGhyb3dFcnJvciwgbGFzdFZhbHVlRnJvbSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBtYXAsIHN3aXRjaE1hcCwgdGFrZSwgY2F0Y2hFcnJvcn0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBNc2FsU2VydmljZSB9IGZyb20gJ0BhenVyZS9tc2FsLWFuZ3VsYXInO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90IH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuXHJcbmltcG9ydCB7XHJcbiAgTG9naW5TdGFmZixcclxuICBTZWxlY3RlZE9mZmVuZGVyLFxyXG4gIFNNQVJUX0RBVEFfU0VSVklDRV9VUkwsXHJcbiAgU01BUlRfRE9NQUlOX0ZPUk1BVCxcclxuICBSb2xlLFxyXG4gIFBlcm1pc3Npb24sXHJcbn0gZnJvbSAnLi4vc21hcnQtc3RvcmFnZS9zbWFydC1zdG9yYWdlLW1vZGVsJztcclxuaW1wb3J0IHsgWGRtU2VydmljZSB9IGZyb20gJy4uL3NtYXJ0LXN0b3JhZ2UveGRtLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTbWFydEFjY2Vzc0NvbnRyb2xDb25maWcgfSBmcm9tICcuL3NtYXJ0LWFjY2Vzcy1jb250cm9sLWNvbmZpZyc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU21hcnRBdXRoU2VydmljZSB7XHJcbiAgbG9naW5TdGFmZjogTG9naW5TdGFmZjtcclxuICBzZWxlY3RlZE9mZmVuZGVyOiBTZWxlY3RlZE9mZmVuZGVyO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcclxuICAgIHByaXZhdGUgYXV0aG5TZXJ2aWNlOiBNc2FsU2VydmljZSxcclxuICAgIHByaXZhdGUgeGRtU2VydmljZTogWGRtU2VydmljZSxcclxuICAgIEBJbmplY3QoU01BUlRfREFUQV9TRVJWSUNFX1VSTCkgcHJpdmF0ZSBzbWFydERhdGFTZXJ2aWNlVXJsLFxyXG4gICAgQEluamVjdChTTUFSVF9ET01BSU5fRk9STUFUKSBwcml2YXRlIHNtYXJ0RG9tYWluRm9ybWF0VXJsOiBzdHJpbmcsXHJcbiAgKSB7fVxyXG5cclxuICBwdWJsaWMgZ2V0TG9naW5TdGFmZigpOiBPYnNlcnZhYmxlPExvZ2luU3RhZmY+IHtcclxuICAgIGlmIChpc0Rldk1vZGUpIHtcclxuICAgICAgY29uc29sZS5sb2coJ1NtYXJ0QXV0aFNlcnZpY2UgLSBnZXRMb2dpblN0YWZmKCknKTtcclxuICAgIH1cclxuICAgIGlmICghaXNEZXZNb2RlICYmIHRoaXMubG9naW5TdGFmZikge1xyXG4gICAgICBpZiAodGhpcy5sb2dpblN0YWZmLnN0YWZmSWQpIHtcclxuICAgICAgICBpZiAoaXNEZXZNb2RlKSB7XHJcbiAgICAgICAgICBjb25zb2xlLmxvZyhcclxuICAgICAgICAgICAgJyMjIyMjIGdldExvZ2luU3RhZmYoKTogZ2V0IGludGVybmFsIGluc3RhbmNlIGluIHNlcnZpY2UnLFxyXG4gICAgICAgICAgICB0aGlzLmxvZ2luU3RhZmYsXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gb2YodGhpcy5sb2dpblN0YWZmKTtcclxuICAgICAgfSBlbHNlIGlmICh0aGlzLmxvZ2luU3RhZmYudXNlck5hbWUpIHtcclxuICAgICAgICBpZiAoaXNEZXZNb2RlKSB7XHJcbiAgICAgICAgICBjb25zb2xlLmxvZyhcclxuICAgICAgICAgICAgJyMjIyMjIGdldExvZ2luU3RhZmYoKTogZ2V0IHVzaW5nIHByZXNldCB1c2VyIG5hbWUnLFxyXG4gICAgICAgICAgICB0aGlzLmxvZ2luU3RhZmYsXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdGhpcy5nZXRTdGFmZih0aGlzLmxvZ2luU3RhZmYudXNlck5hbWUpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZnJvbSh0aGlzLnhkbVNlcnZpY2UuZ2V0TG9naW5TdGFmZigpKS5waXBlKFxyXG4gICAgICBzd2l0Y2hNYXAoKHN0b3JlZFJlc3VsdCkgPT4ge1xyXG4gICAgICAgIGlmIChzdG9yZWRSZXN1bHQgJiYgc3RvcmVkUmVzdWx0LnN0YWZmSWQpIHtcclxuICAgICAgICAgIGlmIChpc0Rldk1vZGUpIHtcclxuICAgICAgICAgICAgY29uc29sZS5sb2coXHJcbiAgICAgICAgICAgICAgJyMjIyMjIGdldExvZ2luU3RhZmYoKTogZ2V0IGZyb20gc2Vzc2lvbi4nLFxyXG4gICAgICAgICAgICAgIHN0b3JlZFJlc3VsdCxcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHRoaXMubG9naW5TdGFmZiA9IHN0b3JlZFJlc3VsdDtcclxuICAgICAgICAgIHJldHVybiBvZihzdG9yZWRSZXN1bHQpO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoc3RvcmVkUmVzdWx0ICYmIHN0b3JlZFJlc3VsdC51c2VyTmFtZSkge1xyXG4gICAgICAgICAgaWYgKGlzRGV2TW9kZSkge1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcclxuICAgICAgICAgICAgICAnIyMjIyMgZ2V0TG9naW5TdGFmZigpOiBnZXQgdXNpbmcgcHJlc2V0IHVzZXIgbmFtZScsXHJcbiAgICAgICAgICAgICAgdGhpcy5sb2dpblN0YWZmLFxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0U3RhZmYoc3RvcmVkUmVzdWx0LnVzZXJOYW1lKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgY29uc3QgdXNlck5hbWUgPSB0aGlzLnVzZXJOYW1lO1xyXG4gICAgICAgICAgY29uc3Qgc3RhZmZOYW1lID0gdXNlck5hbWUuc3Vic3RyaW5nKDAsIHVzZXJOYW1lLmluZGV4T2YoJ0AnKSk7XHJcbiAgICAgICAgICBpZiAoaXNEZXZNb2RlKSB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFxyXG4gICAgICAgICAgICAgICcjIyMjIyBsb2dpbkxvZ2luU3RhZmYoKTogZ2V0IHVzaW5nIGxvZ2luIHN0YWZmIG5hbWUgJyxcclxuICAgICAgICAgICAgICBzdGFmZk5hbWUsXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICByZXR1cm4gdGhpcy5nZXRTdGFmZihzdGFmZk5hbWUpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSksXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHVzZXJOYW1lKCk6IHN0cmluZyB7XHJcbiAgICBpZiAodGhpcy5hdXRoblNlcnZpY2UuaW5zdGFuY2UuZ2V0QWxsQWNjb3VudHMoKS5sZW5ndGggPiAwKSB7XHJcbiAgICAgIGNvbnN0IGFjY291bnQgPSB0aGlzLmF1dGhuU2VydmljZS5pbnN0YW5jZS5nZXRBbGxBY2NvdW50cygpWzBdO1xyXG4gICAgICByZXR1cm4gYWNjb3VudC51c2VybmFtZTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gJyc7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldFRlYW1VcmwoYXBwOiBzdHJpbmcsIGFmdGVySGFzaDogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLnNtYXJ0RG9tYWluRm9ybWF0VXJsLnJlcGxhY2UoJyR7QVBQfScsIGFwcCkgKyBhZnRlckhhc2g7XHJcbiAgfVxyXG4gIHByaXZhdGUgaXNTYW1lSG9zdCh1cmwsIGFwcCkge1xyXG4gICAgcmV0dXJuIHRoaXMuc21hcnREb21haW5Gb3JtYXRVcmwucmVwbGFjZSgnJHtBUFB9JywgYXBwKSA9PT0gdXJsO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHJlZGlyZWN0VG9UZWFtKGxvZ2luU3RhZmY6IExvZ2luU3RhZmYpIHtcclxuICAgIGlmIChsb2dpblN0YWZmLnJvbGVzLmZpbmRJbmRleCgocm9sZSkgPT4gcm9sZS5yb2xlSWQgPT09ICdFVVVTUEMnKSA+IC0xKSB7XHJcbiAgICAgIGlmICghdGhpcy5pc1NhbWVIb3N0KHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4sICdpbnZlc3RpZ2F0aW9uJykpIHtcclxuICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IHRoaXMuZ2V0VGVhbVVybCgnaW52ZXN0aWdhdGlvbicsICcvYXNzaWdubWVudCcpO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2UgaWYgKFxyXG4gICAgICBsb2dpblN0YWZmLnJvbGVzLmZpbmRJbmRleChcclxuICAgICAgICAocm9sZSkgPT4gcm9sZS5yb2xlSWQuc3Vic3RyaW5nKDAsIDMpID09PSAnUlNDJyxcclxuICAgICAgKSA+IC0xXHJcbiAgICApIHtcclxuICAgICAgaWYgKCF0aGlzLmlzU2FtZUhvc3Qod2luZG93LmxvY2F0aW9uLm9yaWdpbiwgJ3JzYycpKSB7XHJcbiAgICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSB0aGlzLmdldFRlYW1VcmwoJ3JzYycsICcvb2ZmZW5kZXItbGlzdCcpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgc2V0U2VsZWN0ZWRPZmZlbmRlcihzZWxlY3RlZE9mZmVuZGVyOiBTZWxlY3RlZE9mZmVuZGVyKSB7XHJcbiAgICBpZiAoIXRoaXMubG9naW5TdGFmZikge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHNlbGVjdGVkT2ZmZW5kZXIpIHtcclxuICAgICAgLy8gaWYgKCFzZWxlY3RlZE9mZmVuZGVyLmFzc2lnbm1lbnRTdGFmZlJlbGF0aW9uSWQpIHtcclxuICAgICAgY29uc3QgcmVsYXRpb24gPSBhd2FpdCBsYXN0VmFsdWVGcm9tKFxyXG4gICAgICAgIHRoaXMuZ2V0U3RhZmZPZmZlbmRlclJlbGF0aW9uKFxyXG4gICAgICAgICAgdGhpcy5sb2dpblN0YWZmLnN0YWZmSWQsXHJcbiAgICAgICAgICBzZWxlY3RlZE9mZmVuZGVyLm9mZmVuZGVySWQsXHJcbiAgICAgICAgKSxcclxuICAgICAgKTtcclxuICAgICAgaWYgKHJlbGF0aW9uKSB7XHJcbiAgICAgICAgc2VsZWN0ZWRPZmZlbmRlci5hc3NpZ25tZW50U3RhZmZSZWxhdGlvbklkID0gcmVsYXRpb247XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgc2VsZWN0ZWRPZmZlbmRlci5hc3NpZ25tZW50U3RhZmZSZWxhdGlvbklkID0gJ05PQVNTSUdOJztcclxuICAgICAgfVxyXG4gICAgICAvLyB9XHJcbiAgICB9XHJcbiAgICB0aGlzLnhkbVNlcnZpY2Uuc2V0U2VsZWN0ZWRPZmZlbmRlcihzZWxlY3RlZE9mZmVuZGVyKTtcclxuICAgIHRoaXMuc2VsZWN0ZWRPZmZlbmRlciA9IHNlbGVjdGVkT2ZmZW5kZXI7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgbG9nb3V0KCk6IHZvaWQge1xyXG4gICAgdGhpcy54ZG1TZXJ2aWNlLmNsZWFyQWxsKCk7XHJcbiAgICB0aGlzLmF1dGhuU2VydmljZS5sb2dvdXQoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBzZXRQZXJtaXNzaW9uKFxyXG4gICAgYXBwTW9kdWxlSWQ6IHN0cmluZyxcclxuICAgIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LFxyXG4gICkge1xyXG4gICAgaWYgKCF0aGlzLmxvZ2luU3RhZmYpIHtcclxuICAgICAgdGhpcy5sb2dpblN0YWZmID0gYXdhaXQgdGhpcy54ZG1TZXJ2aWNlLmdldExvZ2luU3RhZmYoKTtcclxuICAgIH1cclxuICAgIGNvbnN0IHBlcm1pc3Npb25zID0gdGhpcy5sb2dpblN0YWZmLnBlcm1pc3Npb25zO1xyXG4gICAgY29uc3QgcmVzb3VyY2UgPVxyXG4gICAgICByb3V0ZS51cmwgJiYgcm91dGUudXJsLmxlbmd0aCA+IDAgPyByb3V0ZS51cmxbMF0hLnBhdGggOiAnJztcclxuXHJcbiAgICBpZiAoIXRoaXMuc2VsZWN0ZWRPZmZlbmRlcikge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkT2ZmZW5kZXIgPSBhd2FpdCB0aGlzLnhkbVNlcnZpY2UuZ2V0U2VsZWN0ZWRPZmZlbmRlcigpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLnNlbGVjdGVkT2ZmZW5kZXIpIHtcclxuICAgICAgLy8gaWYgKCF0aGlzLnNlbGVjdGVkT2ZmZW5kZXIuYXNzaWdubWVudFN0YWZmUmVsYXRpb25JZCkge1xyXG4gICAgICBjb25zdCByZWxhdGlvbiA9IGF3YWl0IHRoaXMuZ2V0U3RhZmZPZmZlbmRlclJlbGF0aW9uKFxyXG4gICAgICAgIHRoaXMubG9naW5TdGFmZi5zdGFmZklkLFxyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRPZmZlbmRlci5vZmZlbmRlcklkLFxyXG4gICAgICApLnRvUHJvbWlzZSgpO1xyXG4gICAgICBpZiAocmVsYXRpb24pIHtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkT2ZmZW5kZXIuYXNzaWdubWVudFN0YWZmUmVsYXRpb25JZCA9IHJlbGF0aW9uO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRPZmZlbmRlci5hc3NpZ25tZW50U3RhZmZSZWxhdGlvbklkID0gJ05PQVNTSUdOJztcclxuICAgICAgfVxyXG4gICAgICB0aGlzLnhkbVNlcnZpY2Uuc2V0U2VsZWN0ZWRPZmZlbmRlcih0aGlzLnNlbGVjdGVkT2ZmZW5kZXIpO1xyXG4gICAgICAvLyB9XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgYXNzaWdubWVudFN0YWZmUmVsYXRpb25JZCA9XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRPZmZlbmRlci5hc3NpZ25tZW50U3RhZmZSZWxhdGlvbklkO1xyXG5cclxuICAgIGNvbnN0IGVsZW1lbnRzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnW2NsYXNzXj1cInNhYy1cIl0nKTtcclxuICAgIGNvbnN0IHBhdHRlcm4gPSAvXnNhYy0oXFxTKyktKFxcUyspJC9pO1xyXG5cclxuICAgIEFycmF5LmZyb20oZWxlbWVudHMpLmZvckVhY2goKGVsZW1lbnQpID0+IHtcclxuICAgICAgbGV0IGhpZGU7XHJcbiAgICAgIGxldCBkaXNhYmxlO1xyXG4gICAgICBlbGVtZW50LmNsYXNzTGlzdC5mb3JFYWNoKChjKSA9PiB7XHJcbiAgICAgICAgY29uc3QgcmVzdWx0cyA9IGMubWF0Y2gocGF0dGVybik7XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2cocmVzdWx0cyk7XHJcbiAgICAgICAgaWYgKHJlc3VsdHMgJiYgcmVzdWx0cy5sZW5ndGggPiAyKSB7XHJcbiAgICAgICAgICBjb25zdCByb2xlSWQgPSByZXN1bHRzWzFdID8gcmVzdWx0c1sxXS50b1VwcGVyQ2FzZSgpIDogbnVsbDtcclxuICAgICAgICAgIGNvbnN0IHJpZ2h0ID0gcmVzdWx0c1syXTtcclxuICAgICAgICAgIC8vIGNvbnNvbGUubG9nKHJlc3VsdHNbMF0pO1xyXG4gICAgICAgICAgLy8gY29uc29sZS5sb2cocmVzdWx0c1sxXSk7XHJcbiAgICAgICAgICAvLyBjb25zb2xlLmxvZyhyZXN1bHRzWzJdKTtcclxuICAgICAgICAgIGNvbnN0IHBlcm1pc3Npb24gPSBwZXJtaXNzaW9ucy5maW5kKGZ1bmN0aW9uIChwKSB7XHJcbiAgICAgICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgICAgcC5hcHBNb2R1bGVJZCA9PT0gYXBwTW9kdWxlSWQgJiZcclxuICAgICAgICAgICAgICBwLnJlc291cmNlID09PSByZXNvdXJjZSAmJlxyXG4gICAgICAgICAgICAgIHAucm9sZUlkID09PSByb2xlSWQgJiZcclxuICAgICAgICAgICAgICBwLmFzc2lnbm1lbnRTdGFmZlJlbGF0aW9uSWQgPT09IGFzc2lnbm1lbnRTdGFmZlJlbGF0aW9uSWRcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgLypcclxuICAgICAgICAgIGNvbnNvbGUubG9nKCcjIyMjIyBzZXRQZXJtaXNzaW9uKCkgcmVzb3VyY2U6ICcsIHJlc291cmNlKTtcclxuICAgICAgICAgIGNvbnNvbGUubG9nKCcjIyMjIyBzZXRQZXJtaXNzaW9uKCkgYXBwTW9kdWxlSWQ6ICcsIGFwcE1vZHVsZUlkKTtcclxuICAgICAgICAgIGNvbnNvbGUubG9nKCcjIyMjIyBzZXRQZXJtaXNzaW9uKCkgcm9sZUlkOiAnLCByb2xlSWQpO1xyXG4gICAgICAgICAgY29uc29sZS5sb2coXHJcbiAgICAgICAgICAgICcjIyMjIyBzZXRQZXJtaXNzaW9uKCkgYXNzaWdubWVudCByZWxhdGlvbjogJyxcclxuICAgICAgICAgICAgYXNzaWdubWVudFN0YWZmUmVsYXRpb25JZCxcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgICAqL1xyXG4gICAgICAgICAgY29uc29sZS5sb2coJyMjIyMjIE1hdGNoZWQgcGVybWlzc2lvbjogJywgcGVybWlzc2lvbik7XHJcblxyXG4gICAgICAgICAgaWYgKHBlcm1pc3Npb24pIHtcclxuICAgICAgICAgICAgaWYgKHJpZ2h0ID09PSAncmVhZCcpIHtcclxuICAgICAgICAgICAgICBpZiAoIXBlcm1pc3Npb24ucmVhZEZsYWcpIHtcclxuICAgICAgICAgICAgICAgIGlmIChoaWRlICE9PSBmYWxzZSkge1xyXG4gICAgICAgICAgICAgICAgICBoaWRlID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgaGlkZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSBlbHNlIGlmIChcclxuICAgICAgICAgICAgICAocmlnaHQgPT09ICdjcmVhdGUnICYmICFwZXJtaXNzaW9uLmNyZWF0ZUZsYWcpIHx8XHJcbiAgICAgICAgICAgICAgKHJpZ2h0ID09PSAndXBkYXRlJyAmJiAhcGVybWlzc2lvbi51cGRhdGVGbGFnKSB8fFxyXG4gICAgICAgICAgICAgIChyaWdodCA9PT0gJ2RlbGV0ZScgJiYgIXBlcm1pc3Npb24uZGVsZXRlRmxhZykgfHxcclxuICAgICAgICAgICAgICAocmlnaHQgPT09ICdhc3NpZ24nICYmICFwZXJtaXNzaW9uLmFzc2lnbkZsYWcpIHx8XHJcbiAgICAgICAgICAgICAgKHJpZ2h0ID09PSAnY2xvc2UnICYmICFwZXJtaXNzaW9uLmNsb3NlRmxhZykgfHxcclxuICAgICAgICAgICAgICAocmlnaHQgPT09ICdleHB1bmdlJyAmJiAhcGVybWlzc2lvbi5leHB1bmdlRmxhZykgfHxcclxuICAgICAgICAgICAgICAocmlnaHQgPT09ICdyZW9wZW4nICYmICFwZXJtaXNzaW9uLnJlb3BlbkZsYWcpXHJcbiAgICAgICAgICAgICkge1xyXG4gICAgICAgICAgICAgIGlmIChlbGVtZW50Lm5vZGVOYW1lID09PSAnQlVUVE9OJykge1xyXG4gICAgICAgICAgICAgICAgaWYgKGhpZGUgIT09IGZhbHNlKSB7XHJcbiAgICAgICAgICAgICAgICAgIGhpZGUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoZGlzYWJsZSAhPT0gZmFsc2UpIHtcclxuICAgICAgICAgICAgICAgICAgZGlzYWJsZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIGlmIChlbGVtZW50Lm5vZGVOYW1lID09PSAnQlVUVE9OJykge1xyXG4gICAgICAgICAgICAgICAgaGlkZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBkaXNhYmxlID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBpZiAocmlnaHQgPT09ICdyZWFkJykge1xyXG4gICAgICAgICAgICAgIGlmIChoaWRlICE9PSBmYWxzZSkge1xyXG4gICAgICAgICAgICAgICAgaGlkZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9IGVsc2UgaWYgKGVsZW1lbnQubm9kZU5hbWUgPT09ICdCVVRUT04nKSB7XHJcbiAgICAgICAgICAgICAgaWYgKGhpZGUgIT09IGZhbHNlKSB7XHJcbiAgICAgICAgICAgICAgICBoaWRlID0gdHJ1ZTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoZGlzYWJsZSAhPT0gZmFsc2UpIHtcclxuICAgICAgICAgICAgICBkaXNhYmxlID0gdHJ1ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICAgIGNvbnNvbGUubG9nKCdoaWRlOiAnLCBoaWRlKTtcclxuICAgICAgY29uc29sZS5sb2coJ2Rpc2FibGU6ICcsIGRpc2FibGUpO1xyXG4gICAgICBpZiAoaGlkZSA9PT0gdHJ1ZSkge1xyXG4gICAgICAgIHRoaXMuaGlkZUh0bWxFbGVtZW50KGVsZW1lbnQpO1xyXG4gICAgICB9IGVsc2UgaWYgKGRpc2FibGUgPT09IHRydWUpIHtcclxuICAgICAgICB0aGlzLmRpc2FibGVIdG1sRWxlbWVudChlbGVtZW50KTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY2hlY2tQZXJtaXNzaW9uKGFjY2Vzc0NvbnRyb2xDb25maWc6IFNtYXJ0QWNjZXNzQ29udHJvbENvbmZpZykge1xyXG4gICAgY29uc3Qgc2VsRGF0YSA9IGFjY2Vzc0NvbnRyb2xDb25maWcucm91dGUuZGF0YTtcclxuICAgIHRoaXMubG9naW5TdGFmZiA9IHNlbERhdGEubG9naW5TdGFmZjtcclxuICAgIHRoaXMuc2VsZWN0ZWRPZmZlbmRlciA9IHNlbERhdGEuc2VsZWN0ZWRPZmZlbmRlcjtcclxuICAgIGxldCByb3V0ZVBhdGggPSAnJztcclxuICAgIGlmIChcclxuICAgICAgYWNjZXNzQ29udHJvbENvbmZpZy5yb3V0ZS51cmwgJiZcclxuICAgICAgYWNjZXNzQ29udHJvbENvbmZpZy5yb3V0ZS51cmwubGVuZ3RoID4gMFxyXG4gICAgKSB7XHJcbiAgICAgIHJvdXRlUGF0aCA9IGFjY2Vzc0NvbnRyb2xDb25maWcucm91dGUudXJsWzBdIS5wYXRoO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHBlcm1pc3Npb25zID0gdGhpcy5sb2dpblN0YWZmLnBlcm1pc3Npb25zO1xyXG4gICAgY29uc3QgcmVzb3VyY2UgPSByb3V0ZVBhdGg7XHJcbiAgICBjb25zdCByb2xlSWQgPSBhY2Nlc3NDb250cm9sQ29uZmlnLnJvbGVJZFxyXG4gICAgICA/IGFjY2Vzc0NvbnRyb2xDb25maWcucm9sZUlkLnRvVXBwZXJDYXNlKClcclxuICAgICAgOiBudWxsO1xyXG4gICAgY29uc3QgYWNjZXNzVHlwZSA9IGFjY2Vzc0NvbnRyb2xDb25maWcuYWNjZXNzVHlwZTtcclxuICAgIGNvbnN0IGFzc2lnbm1lbnRTdGFmZlJlbGF0aW9uSWQgPSAoIXRoaXMuc2VsZWN0ZWRPZmZlbmRlciB8fCAhdGhpcy5zZWxlY3RlZE9mZmVuZGVyXHJcbiAgICAgIC5hc3NpZ25tZW50U3RhZmZSZWxhdGlvbklkKVxyXG4gICAgICA/ICdOL0EnXHJcbiAgICAgIDogdGhpcy5zZWxlY3RlZE9mZmVuZGVyLmFzc2lnbm1lbnRTdGFmZlJlbGF0aW9uSWQ7XHJcblxyXG4gICAgY29uc3QgcGVybWlzc2lvbiA9IHBlcm1pc3Npb25zLmZpbmQoKHApID0+IHtcclxuICAgICAgcmV0dXJuIChcclxuICAgICAgICBwLmFwcE1vZHVsZUlkID09PSBhY2Nlc3NDb250cm9sQ29uZmlnLmFwcE1vZHVsZUlkICYmXHJcbiAgICAgICAgcC5yZXNvdXJjZSA9PT0gcmVzb3VyY2UgJiZcclxuICAgICAgICAoIXJvbGVJZCB8fCBwLnJvbGVJZCA9PT0gcm9sZUlkKSAmJlxyXG4gICAgICAgIChwLmFzc2lnbm1lbnRTdGFmZlJlbGF0aW9uSWQgPT09ICdOL0EnIHx8XHJcbiAgICAgICAgICBwLmFzc2lnbm1lbnRTdGFmZlJlbGF0aW9uSWQgPT09IGFzc2lnbm1lbnRTdGFmZlJlbGF0aW9uSWQpXHJcbiAgICAgICk7XHJcbiAgICB9KTtcclxuXHJcbiAgICBpZiAocGVybWlzc2lvbikge1xyXG4gICAgICBpZiAoYWNjZXNzVHlwZSA9PT0gJ3JlYWQnKSB7XHJcbiAgICAgICAgaWYgKCFwZXJtaXNzaW9uLnJlYWRGbGFnKSB7XHJcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIGlmIChcclxuICAgICAgICAoYWNjZXNzVHlwZSA9PT0gJ2NyZWF0ZScgJiYgIXBlcm1pc3Npb24uY3JlYXRlRmxhZykgfHxcclxuICAgICAgICAoYWNjZXNzVHlwZSA9PT0gJ3VwZGF0ZScgJiYgIXBlcm1pc3Npb24udXBkYXRlRmxhZykgfHxcclxuICAgICAgICAoYWNjZXNzVHlwZSA9PT0gJ2RlbGV0ZScgJiYgIXBlcm1pc3Npb24uZGVsZXRlRmxhZykgfHxcclxuICAgICAgICAoYWNjZXNzVHlwZSA9PT0gJ2Fzc2lnbicgJiYgIXBlcm1pc3Npb24uYXNzaWduRmxhZykgfHxcclxuICAgICAgICAoYWNjZXNzVHlwZSA9PT0gJ2Nsb3NlJyAmJiAhcGVybWlzc2lvbi5jbG9zZUZsYWcpIHx8XHJcbiAgICAgICAgKGFjY2Vzc1R5cGUgPT09ICdleHB1bmdlJyAmJiAhcGVybWlzc2lvbi5leHB1bmdlRmxhZykgfHxcclxuICAgICAgICAoYWNjZXNzVHlwZSA9PT0gJ3Jlb3BlbicgJiYgIXBlcm1pc3Npb24ucmVvcGVuRmxhZylcclxuICAgICAgKSB7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZiAoYWNjZXNzVHlwZSA9PT0gJ3JlYWQnKSB7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY2FuQXBwRmVhdHVyZUFjdGl2YXRlKFxyXG4gICAgbG9naW5TdGFmZjogTG9naW5TdGFmZixcclxuICAgIGZlYXR1cmU6IHN0cmluZyxcclxuICAgIGFwcE1vZHVsZUlkID0gbnVsbCxcclxuICApIHtcclxuICAgIC8vIGlmICghdGhpcy5pc0F1dGhFbmFibGUobG9naW5TdGFmZi5yb2xlcywgYXBwTW9kdWxlSWQpKSB7XHJcbiAgICAvLyAgIHJldHVybiB0cnVlO1xyXG4gICAgLy8gfVxyXG4gICAgcmV0dXJuIHRoaXMuaGFzQXBwRmVhdHVyZVBlcm1pc3Npb24oXHJcbiAgICAgIGxvZ2luU3RhZmYucGVybWlzc2lvbnMsXHJcbiAgICAgIGZlYXR1cmUsXHJcbiAgICAgIGFwcE1vZHVsZUlkLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8vIHB1YmxpYyBpc0F1dGhFbmFibGUocm9sZXM6IFJvbGVbXSwgYXBwTW9kdWxlSWQ6IHN0cmluZykge1xyXG4gIC8vICAgaWYgKHJvbGVzICYmIHJvbGVzLmxlbmd0aCA+IDApIHtcclxuICAvLyAgICAgcmV0dXJuIHJvbGVzLm1hcChyID0+IHIucm9sZUlkKS5maW5kSW5kZXgodGhpcy5pc0V4dGVybmFsUm9sZSkgPiAtMSB8fCBhcHBNb2R1bGVJZCA9PT0gJ1JSJztcclxuICAvLyAgIH1cclxuICAvLyAgIHJldHVybiBmYWxzZTtcclxuICAvLyB9XHJcblxyXG4gIHB1YmxpYyBoYXNJbnRha2VSb2xlKHJvbGVzOiBSb2xlW10pIHtcclxuICAgIGlmIChyb2xlcyAmJiByb2xlcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHJldHVybiByb2xlcy5maW5kSW5kZXgodGhpcy5pc0ludGFrZVJvbGUpID4gLTE7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGhhc0FwcEZlYXR1cmVQZXJtaXNzaW9uKFxyXG4gICAgcGVybWlzc2lvbnM6IFBlcm1pc3Npb25bXSxcclxuICAgIGZlYXR1cmU6IHN0cmluZyxcclxuICAgIGFwcE1vZHVsZUlkOiBzdHJpbmcsXHJcbiAgKSB7XHJcbiAgICBpZiAocGVybWlzc2lvbnMgJiYgcGVybWlzc2lvbnMubGVuZ3RoID4gMCkge1xyXG4gICAgICBpZiAoYXBwTW9kdWxlSWQpIHtcclxuICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgcGVybWlzc2lvbnMuZmluZEluZGV4KFxyXG4gICAgICAgICAgICAocCkgPT4gcC5yZXNvdXJjZSA9PT0gZmVhdHVyZSAmJiBwLmFwcE1vZHVsZUlkID09PSBhcHBNb2R1bGVJZCxcclxuICAgICAgICAgICkgPiAtMVxyXG4gICAgICAgICk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuIHBlcm1pc3Npb25zLmZpbmRJbmRleCgocCkgPT4gcC5yZXNvdXJjZSA9PT0gZmVhdHVyZSkgPiAtMTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaXNFeHRlcm5hbFJvbGUocm9sZUlkKSB7XHJcbiAgICBzd2l0Y2ggKHJvbGVJZCkge1xyXG4gICAgICBjYXNlICdFVURUTCc6XHJcbiAgICAgIGNhc2UgJ0VVRFVTTSc6XHJcbiAgICAgIGNhc2UgJ0VVSkRHJzpcclxuICAgICAgY2FzZSAnRVVNUEQnOlxyXG4gICAgICBjYXNlICdFVVNPVFYnOlxyXG4gICAgICBjYXNlICdFVVVTQTInOlxyXG4gICAgICBjYXNlICdFVVVTQU8nOlxyXG4gICAgICBjYXNlICdFVVVTUEMnOlxyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgaXNJbnRha2VSb2xlKHJvbGU6IFJvbGUpIHtcclxuICAgIHN3aXRjaCAocm9sZS5yb2xlSWQpIHtcclxuICAgICAgY2FzZSAnT1BBJzpcclxuICAgICAgY2FzZSAnT1BTJzpcclxuICAgICAgY2FzZSAnU09QUyc6XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBkaXNhYmxlSHRtbEVsZW1lbnQoZWxlbWVudDogRWxlbWVudCk6IHZvaWQge1xyXG4gICAgLy8gY29uc29sZS5sb2coZWxlbWVudCk7XHJcbiAgICBzd2l0Y2ggKGVsZW1lbnQubm9kZU5hbWUpIHtcclxuICAgICAgY2FzZSAnQSc6XHJcbiAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoXHJcbiAgICAgICAgICAnc3R5bGUnLFxyXG4gICAgICAgICAgJ3BvaW50ZXItZXZlbnRzOiBub25lO2N1cnNvcjogbm90LWFsbG93ZWQ7JyxcclxuICAgICAgICApO1xyXG4gICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCd0YWJJbmRleCcsICctMScpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCdkaXNhYmxlZCcsICdkaXNhYmxlZCcpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBoaWRlSHRtbEVsZW1lbnQoZWxlbWVudDogRWxlbWVudCk6IHZvaWQge1xyXG4gICAgLy8gZWxlbWVudC5zZXRBdHRyaWJ1dGUoJ2hpZGRlbicsICdoaWRkZW4nKTtcclxuICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCdzdHlsZScsICdkaXNwbGF5OiBub25lOycpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRTdGFmZih1c2VyTmFtZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxMb2dpblN0YWZmPiB7XHJcbiAgICByZXR1cm4gdGhpcy5xdWVyeTxhbnk+KHtcclxuICAgICAgcXVlcnk6IHRoaXMuZmluZFN0YWZmUXVlcnksXHJcbiAgICAgIHZhcmlhYmxlczoge1xyXG4gICAgICAgIGlucHV0OiB7XHJcbiAgICAgICAgICB3aGVyZToge1xyXG4gICAgICAgICAgICB1c2VyTmFtZTogdXNlck5hbWUsXHJcbiAgICAgICAgICAgIGFjdGl2ZUZsYWc6IHRydWUsXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgIH0pLnBpcGUoXHJcbiAgICAgICAgdGFrZSgxKSxcclxuICAgICAgICBtYXAoKHJlc3VsdCkgPT4ge1xyXG4gICAgICAgICAgaWYgKGlzRGV2TW9kZSkge1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZygnIyMjIyMgZ2V0U3RhZmYoKSBmcm9tIHNlcnZpY2UgJywgcmVzdWx0KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmIChyZXN1bHQuZmluZHZTdGFmZnMuZGF0YS5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGRhdGEgPSByZXN1bHQuZmluZHZTdGFmZnMuZGF0YVswXTtcclxuICAgICAgICAgICAgdGhpcy54ZG1TZXJ2aWNlLnNldExvZ2luU3RhZmYoZGF0YSk7XHJcbiAgICAgICAgICAgIHRoaXMubG9naW5TdGFmZiA9IGRhdGE7XHJcbiAgICAgICAgICAgIHJldHVybiBkYXRhO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgcmV0dXJuIG9mKG51bGwpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pLFxyXG4gICAgICAgIGNhdGNoRXJyb3IoKGVycm9yKSA9PiB7XHJcbiAgICAgICAgICBjb25zb2xlLmxvZygnZXJyb3IgJyArIGVycm9yKTtcclxuICAgICAgICAgIHJldHVybiBvZihudWxsKTtcclxuICAgICAgICB9KSxcclxuICAgICAgKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgcXVlcnk8VD4ob3B0aW9uczoge1xyXG4gICAgcXVlcnk6IHN0cmluZztcclxuICAgIHZhcmlhYmxlcz86IHsgW2tleTogc3RyaW5nXTogYW55IH07XHJcbiAgfSk6IE9ic2VydmFibGU8VD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAucG9zdDx7IGRhdGE6IFQgfT4oXHJcbiAgICAgICAgdGhpcy5zbWFydERhdGFTZXJ2aWNlVXJsLFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIHF1ZXJ5OiBvcHRpb25zLnF1ZXJ5LFxyXG4gICAgICAgICAgdmFyaWFibGVzOiBvcHRpb25zLnZhcmlhYmxlcyxcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIGhlYWRlcnM6IG5ldyBIdHRwSGVhZGVycyh7XHJcbiAgICAgICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsXHJcbiAgICAgICAgICAgICdOby1BdXRoJzogJ1RydWUnLFxyXG4gICAgICAgICAgfSksXHJcbiAgICAgICB9XHJcbiAgICAgIClcclxuICAgICAgLnBpcGUobWFwKChkKSA9PiBkLmRhdGEpKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0IGZpbmRTdGFmZlF1ZXJ5KCl7XHJcbiAgICByZXR1cm4gYFxyXG4gICAgIHF1ZXJ5IGZpbmR2U3RhZmZzKCRpbnB1dDogdlN0YWZmTXVsdGlJbnB1dCkge1xyXG4gICAgICAgIGZpbmR2U3RhZmZzKGlucHV0OiAkaW5wdXQpIHtcclxuICAgICAgICAgIHRvdGFsQ291bnRcclxuICAgICAgICAgIG1lc3NhZ2VcclxuICAgICAgICAgIGRhdGEge1xyXG4gICAgICAgICAgICBzdGFmZklkXHJcbiAgICAgICAgICAgIHVzZXJOYW1lXHJcbiAgICAgICAgICAgIGxhc3ROYW1lXHJcbiAgICAgICAgICAgIGZpcnN0TmFtZVxyXG4gICAgICAgICAgICBwaG9uZVxyXG4gICAgICAgICAgICBlbWFpbFxyXG4gICAgICAgICAgICByb2xlcyB7XHJcbiAgICAgICAgICAgICAgcm9sZUlkXHJcbiAgICAgICAgICAgICAgcm9sZVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHBlcm1pc3Npb25zIHtcclxuICAgICAgICAgICAgICByb2xlSWRcclxuICAgICAgICAgICAgICBhcHBNb2R1bGVJZFxyXG4gICAgICAgICAgICAgIHJlc291cmNlXHJcbiAgICAgICAgICAgICAgYXNzaWdubWVudFN0YWZmUmVsYXRpb25JZFxyXG4gICAgICAgICAgICAgIHJlYWRGbGFnXHJcbiAgICAgICAgICAgICAgY3JlYXRlRmxhZ1xyXG4gICAgICAgICAgICAgIHVwZGF0ZUZsYWdcclxuICAgICAgICAgICAgICBkZWxldGVGbGFnXHJcbiAgICAgICAgICAgICAgYXNzaWduRmxhZ1xyXG4gICAgICAgICAgICAgIHJlb3BlbkZsYWdcclxuICAgICAgICAgICAgICBjbG9zZUZsYWdcclxuICAgICAgICAgICAgICBleHB1bmdlRmxhZ1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIG9wdGlvbnMge1xyXG4gICAgICAgICAgICAgIG9mZmVuZGVyTGlzdE9wdGlvbklkXHJcbiAgICAgICAgICAgICAgbmFtZVxyXG4gICAgICAgICAgICAgIHNlcnZpY2VBcGlGaWVsZE5hbWVcclxuICAgICAgICAgICAgICBzZWxlY3RlZEZsYWdcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgYDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0U3RhZmZPZmZlbmRlclJlbGF0aW9uKFxyXG4gICAgc3RhZmZJZDogbnVtYmVyLFxyXG4gICAgb2ZmZW5kZXJJZDogbnVtYmVyLFxyXG4gICk6IE9ic2VydmFibGU8c3RyaW5nPiB7XHJcbiAgICBjb25zdCBxdWVyeVN0cmluZyA9IGBcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIGZpbmR2U3RhZmZPZmZlbmRlclJlbGF0aW9ucyhpbnB1dDoge3doZXJlOiB7c3RhZmZJZDogJHtzdGFmZklkfSwgb2ZmZW5kZXJJZDogJHtvZmZlbmRlcklkfX19KSB7XHJcbiAgICAgICAgICAgICAgICBkYXRhIHtcclxuICAgICAgICAgICAgICAgICAgYXNzaWdubWVudFN0YWZmUmVsYXRpb25JZFxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfWA7XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAucG9zdDxhbnk+KHRoaXMuc21hcnREYXRhU2VydmljZVVybCwgeyBxdWVyeTogcXVlcnlTdHJpbmcgfSlcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgdGFrZSgxKSxcclxuICAgICAgICBtYXAoKHJlc3VsdCkgPT4ge1xyXG4gICAgICAgICAgaWYgKGlzRGV2TW9kZSkge1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcclxuICAgICAgICAgICAgICAnIyMjIyMgZ2V0U3RhZmZPZmZlbmRlclJlbGF0aW9uKCkgZnJvbSBzZXJ2aWNlICcsXHJcbiAgICAgICAgICAgICAgcmVzdWx0LFxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKHJlc3VsdC5kYXRhLmZpbmR2U3RhZmZPZmZlbmRlclJlbGF0aW9ucy5kYXRhLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgY29uc3QgZGF0YSA9IHJlc3VsdC5kYXRhLmZpbmR2U3RhZmZPZmZlbmRlclJlbGF0aW9ucy5kYXRhWzBdO1xyXG4gICAgICAgICAgICByZXR1cm4gZGF0YS5hc3NpZ25tZW50U3RhZmZSZWxhdGlvbklkO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgICAgIC8vIHJldHVybiB0aHJvd0Vycm9yKCdObyBhY2Nlc3MgcmlnaHQuJyk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSksXHJcbiAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3IpID0+IHtcclxuICAgICAgICAgIGNvbnNvbGUubG9nKCdlcnJvciAnICsgZXJyb3IpO1xyXG4gICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgfSksXHJcbiAgICAgICk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldFJvbGVQZXJtaXNzaW9ucyhcclxuICAgIGFwcE1vZHVsZUlkOiBzdHJpbmcsXHJcbiAgICByZXNvdXJjZTogc3RyaW5nLFxyXG4gICk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xyXG4gICAgY29uc3QgcXVlcnlTdHJpbmcgPSBgXHJcbiAgICAgICAgICAgcXVlcnkgZmluZHZSb2xlUGVybWlzc2lvblBpdm90c3tcclxuICAgICAgICAgICAgZmluZHZSb2xlUGVybWlzc2lvblBpdm90cyhpbnB1dDoge3doZXJlOiB7YXBwTW9kdWxlSWQ6ICR7YXBwTW9kdWxlSWR9LCByZXNvdXJjZTogJHtyZXNvdXJjZX19fSl7XHJcbiAgICAgICAgICAgICAgdG90YWxDb3VudFxyXG4gICAgICAgICAgICAgIG1lc3NhZ2VcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfWA7XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAucG9zdDxhbnk+KHRoaXMuc21hcnREYXRhU2VydmljZVVybCwgeyBxdWVyeTogcXVlcnlTdHJpbmcgfSlcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgdGFrZSgxKSxcclxuICAgICAgICBtYXAoKHJlc3VsdCkgPT4ge1xyXG4gICAgICAgICAgaWYgKGlzRGV2TW9kZSkge1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcclxuICAgICAgICAgICAgICAnIyMjIyMgZmluZHZSb2xlUGVybWlzc2lvblBpdm90cygpIGZyb20gc2VydmljZSAnLFxyXG4gICAgICAgICAgICAgIHJlc3VsdCxcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmIChyZXN1bHQuZGF0YS5maW5kdlJvbGVQZXJtaXNzaW9uUGl2b3RzLnRvdGFsQ291bnQgPiAwKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgICAgICAvLyByZXR1cm4gdGhyb3dFcnJvcignTm8gYWNjZXNzIHJpZ2h0LicpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pLFxyXG4gICAgICAgIGNhdGNoRXJyb3IoKGVycm9yOiBhbnkpID0+IHtcclxuICAgICAgICAgIGNvbnNvbGUubG9nKCdlcnJvciAnICsgZXJyb3IpO1xyXG4gICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoZXJyb3IpO1xyXG4gICAgICAgIH0pLFxyXG4gICAgICApO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -26,10 +26,10 @@ export class SmartAuthorizationGuard {
26
26
  return of(false);
27
27
  }));
28
28
  }
29
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SmartAuthorizationGuard, deps: [{ token: i1.SmartAuthService }], target: i0.ɵɵFactoryTarget.Injectable }); }
30
- /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SmartAuthorizationGuard }); }
29
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: SmartAuthorizationGuard, deps: [{ token: i1.SmartAuthService }], target: i0.ɵɵFactoryTarget.Injectable }); }
30
+ /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: SmartAuthorizationGuard }); }
31
31
  }
32
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SmartAuthorizationGuard, decorators: [{
32
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: SmartAuthorizationGuard, decorators: [{
33
33
  type: Injectable
34
- }], ctorParameters: function () { return [{ type: i1.SmartAuthService }]; } });
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtYXV0aG9yaXphdGlvbi1ndWFyZC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY3NtYXJ0L25nYy1zbWFydC1jb3JlL3NyYy9saWIvc21hcnQtYXV0aC9zbWFydC1hdXRob3JpemF0aW9uLWd1YXJkLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsOEJBQThCO0FBQzlCLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHM0MsT0FBTyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUQsT0FBTyxFQUFFLEVBQUUsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUV0QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7O0FBR3hELE1BQU0sT0FBTyx1QkFBdUI7SUFHbEMsWUFBbUIsWUFBOEI7UUFBOUIsaUJBQVksR0FBWixZQUFZLENBQWtCO0lBQUksQ0FBQztJQUV0RCxXQUFXLENBQUMsS0FBNkI7UUFDdkMsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsRUFBRSxDQUFDLElBQUksQ0FDM0MsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUNQLFFBQVEsQ0FBQyxDQUFDLFVBQVUsRUFBRSxFQUFFO1lBQ3RCLElBQUksQ0FBQyxVQUFVLElBQUksQ0FBQyxLQUFLLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFO2dCQUMvQyxPQUFPLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUNsQjtZQUNELGlFQUFpRTtZQUNqRSxxQkFBcUI7WUFDckIsSUFBSTtZQUNKLE1BQU0sUUFBUSxHQUFHLEtBQUssQ0FBQyxXQUFXLENBQUMsSUFBSTtnQkFDckMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3RDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDUCxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLHFCQUFxQixDQUM1RCxVQUFVLEVBQ1YsUUFBUSxDQUNULENBQUM7WUFDRixPQUFPLEVBQUUsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUM1QixDQUFDLENBQUMsRUFDRixVQUFVLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNuQixPQUFPLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNuQixDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztrSUE1QlUsdUJBQXVCO3NJQUF2Qix1QkFBdUI7OzRGQUF2Qix1QkFBdUI7a0JBRG5DLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBzbWFydC1hdXRob3JpemF0aW9uLnNlcnZpY2VcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBSb3V0ZXJTdGF0ZVNuYXBzaG90IH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgdGFrZSwgbWVyZ2VNYXAsIGNhdGNoRXJyb3IgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IG9mLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IExvZ2luU3RhZmYgfSBmcm9tICcuLi9zbWFydC1zdG9yYWdlL3NtYXJ0LXN0b3JhZ2UtbW9kZWwnO1xyXG5pbXBvcnQgeyBTbWFydEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi9zbWFydC1hdXRoLnNlcnZpY2UnO1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgU21hcnRBdXRob3JpemF0aW9uR3VhcmQgIHtcclxuICBsb2dpblN0YWZmOiBMb2dpblN0YWZmO1xyXG5cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgYXV0aG5TZXJ2aWNlOiBTbWFydEF1dGhTZXJ2aWNlKSB7IH1cclxuXHJcbiAgY2FuQWN0aXZhdGUocm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QpIHtcclxuICAgIHJldHVybiB0aGlzLmF1dGhuU2VydmljZS5nZXRMb2dpblN0YWZmKCkucGlwZShcclxuICAgICAgdGFrZSgxKSxcclxuICAgICAgbWVyZ2VNYXAoKGxvZ2luU3RhZmYpID0+IHtcclxuICAgICAgICBpZiAoIWxvZ2luU3RhZmYgfHwgIXJvdXRlIHx8ICFyb3V0ZS5yb3V0ZUNvbmZpZykge1xyXG4gICAgICAgICAgcmV0dXJuIG9mKGZhbHNlKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gaWYgKCF0aGlzLmF1dGhuU2VydmljZS5pc0F1dGhFbmFibGUobG9naW5TdGFmZi5yb2xlcywgbnVsbCkpIHtcclxuICAgICAgICAvLyAgIHJldHVybiBvZih0cnVlKTtcclxuICAgICAgICAvLyB9XHJcbiAgICAgICAgY29uc3QgcmVzb3VyY2UgPSByb3V0ZS5yb3V0ZUNvbmZpZy5wYXRoXHJcbiAgICAgICAgICA/IHJvdXRlLnJvdXRlQ29uZmlnLnBhdGguc3BsaXQoJy8nKVswXVxyXG4gICAgICAgICAgOiAnJztcclxuICAgICAgICBjb25zdCBpc0ZlYXR1cmVWYWxpZCA9IHRoaXMuYXV0aG5TZXJ2aWNlLmNhbkFwcEZlYXR1cmVBY3RpdmF0ZShcclxuICAgICAgICAgIGxvZ2luU3RhZmYsXHJcbiAgICAgICAgICByZXNvdXJjZSxcclxuICAgICAgICApO1xyXG4gICAgICAgIHJldHVybiBvZihpc0ZlYXR1cmVWYWxpZCk7XHJcbiAgICAgIH0pLFxyXG4gICAgICBjYXRjaEVycm9yKChlcnJvcikgPT4ge1xyXG4gICAgICAgIHJldHVybiBvZihmYWxzZSk7XHJcbiAgICAgIH0pLFxyXG4gICAgKTtcclxuICB9XHJcbn1cclxuIl19
34
+ }], ctorParameters: () => [{ type: i1.SmartAuthService }] });
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtYXV0aG9yaXphdGlvbi1ndWFyZC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY3NtYXJ0L25nYy1zbWFydC1jb3JlL3NyYy9saWIvc21hcnQtYXV0aC9zbWFydC1hdXRob3JpemF0aW9uLWd1YXJkLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsOEJBQThCO0FBQzlCLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHM0MsT0FBTyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUQsT0FBTyxFQUFFLEVBQUUsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUV0QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7O0FBR3hELE1BQU0sT0FBTyx1QkFBdUI7SUFHbEMsWUFBbUIsWUFBOEI7UUFBOUIsaUJBQVksR0FBWixZQUFZLENBQWtCO0lBQUksQ0FBQztJQUV0RCxXQUFXLENBQUMsS0FBNkI7UUFDdkMsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsRUFBRSxDQUFDLElBQUksQ0FDM0MsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUNQLFFBQVEsQ0FBQyxDQUFDLFVBQVUsRUFBRSxFQUFFO1lBQ3RCLElBQUksQ0FBQyxVQUFVLElBQUksQ0FBQyxLQUFLLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUM7Z0JBQ2hELE9BQU8sRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ25CLENBQUM7WUFDRCxpRUFBaUU7WUFDakUscUJBQXFCO1lBQ3JCLElBQUk7WUFDSixNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsV0FBVyxDQUFDLElBQUk7Z0JBQ3JDLENBQUMsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUN0QyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ1AsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxxQkFBcUIsQ0FDNUQsVUFBVSxFQUNWLFFBQVEsQ0FDVCxDQUFDO1lBQ0YsT0FBTyxFQUFFLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDNUIsQ0FBQyxDQUFDLEVBQ0YsVUFBVSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDbkIsT0FBTyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbkIsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7a0lBNUJVLHVCQUF1QjtzSUFBdkIsdUJBQXVCOzs0RkFBdkIsdUJBQXVCO2tCQURuQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiLy8gc21hcnQtYXV0aG9yaXphdGlvbi5zZXJ2aWNlXHJcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgUm91dGVyU3RhdGVTbmFwc2hvdCB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IHRha2UsIG1lcmdlTWFwLCBjYXRjaEVycm9yIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBvZiwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBMb2dpblN0YWZmIH0gZnJvbSAnLi4vc21hcnQtc3RvcmFnZS9zbWFydC1zdG9yYWdlLW1vZGVsJztcclxuaW1wb3J0IHsgU21hcnRBdXRoU2VydmljZSB9IGZyb20gJy4vc21hcnQtYXV0aC5zZXJ2aWNlJztcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIFNtYXJ0QXV0aG9yaXphdGlvbkd1YXJkICB7XHJcbiAgbG9naW5TdGFmZjogTG9naW5TdGFmZjtcclxuXHJcbiAgY29uc3RydWN0b3IocHVibGljIGF1dGhuU2VydmljZTogU21hcnRBdXRoU2VydmljZSkgeyB9XHJcblxyXG4gIGNhbkFjdGl2YXRlKHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90KSB7XHJcbiAgICByZXR1cm4gdGhpcy5hdXRoblNlcnZpY2UuZ2V0TG9naW5TdGFmZigpLnBpcGUoXHJcbiAgICAgIHRha2UoMSksXHJcbiAgICAgIG1lcmdlTWFwKChsb2dpblN0YWZmKSA9PiB7XHJcbiAgICAgICAgaWYgKCFsb2dpblN0YWZmIHx8ICFyb3V0ZSB8fCAhcm91dGUucm91dGVDb25maWcpIHtcclxuICAgICAgICAgIHJldHVybiBvZihmYWxzZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIGlmICghdGhpcy5hdXRoblNlcnZpY2UuaXNBdXRoRW5hYmxlKGxvZ2luU3RhZmYucm9sZXMsIG51bGwpKSB7XHJcbiAgICAgICAgLy8gICByZXR1cm4gb2YodHJ1ZSk7XHJcbiAgICAgICAgLy8gfVxyXG4gICAgICAgIGNvbnN0IHJlc291cmNlID0gcm91dGUucm91dGVDb25maWcucGF0aFxyXG4gICAgICAgICAgPyByb3V0ZS5yb3V0ZUNvbmZpZy5wYXRoLnNwbGl0KCcvJylbMF1cclxuICAgICAgICAgIDogJyc7XHJcbiAgICAgICAgY29uc3QgaXNGZWF0dXJlVmFsaWQgPSB0aGlzLmF1dGhuU2VydmljZS5jYW5BcHBGZWF0dXJlQWN0aXZhdGUoXHJcbiAgICAgICAgICBsb2dpblN0YWZmLFxyXG4gICAgICAgICAgcmVzb3VyY2UsXHJcbiAgICAgICAgKTtcclxuICAgICAgICByZXR1cm4gb2YoaXNGZWF0dXJlVmFsaWQpO1xyXG4gICAgICB9KSxcclxuICAgICAgY2F0Y2hFcnJvcigoZXJyb3IpID0+IHtcclxuICAgICAgICByZXR1cm4gb2YoZmFsc2UpO1xyXG4gICAgICB9KSxcclxuICAgICk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -24,14 +24,14 @@ export class SmartErrorComponent {
24
24
  portal() {
25
25
  window.location.href = this.smartWebPortalUrl;
26
26
  }
27
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SmartErrorComponent, deps: [{ token: i1.MsalService }, { token: i2.ActivatedRoute }, { token: SMART_WEB_PORTAL_URL }], target: i0.ɵɵFactoryTarget.Component }); }
28
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SmartErrorComponent, selector: "app-smart-error", ngImport: i0, template: "<div>\r\n <h2>\r\n {{ message }}\r\n </h2>\r\n <p>\r\n Please contact help desk if needed.\r\n </p>\r\n <div>\r\n <button (click)=\"logout()\" *ngIf=\"type === 'staff'\">OK</button>\r\n <button (click)=\"portal()\" *ngIf=\"type === 'offender'\">OK</button>\r\n </div>\r\n</div>\r\n", styles: ["div{text-align:center}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
27
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: SmartErrorComponent, deps: [{ token: i1.MsalService }, { token: i2.ActivatedRoute }, { token: SMART_WEB_PORTAL_URL }], target: i0.ɵɵFactoryTarget.Component }); }
28
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: SmartErrorComponent, selector: "app-smart-error", ngImport: i0, template: "<div>\r\n <h2>\r\n {{ message }}\r\n </h2>\r\n <p>\r\n Please contact help desk if needed.\r\n </p>\r\n <div>\r\n <button (click)=\"logout()\" *ngIf=\"type === 'staff'\">OK</button>\r\n <button (click)=\"portal()\" *ngIf=\"type === 'offender'\">OK</button>\r\n </div>\r\n</div>\r\n", styles: ["div{text-align:center}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
29
29
  }
30
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SmartErrorComponent, decorators: [{
30
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: SmartErrorComponent, decorators: [{
31
31
  type: Component,
32
32
  args: [{ selector: 'app-smart-error', template: "<div>\r\n <h2>\r\n {{ message }}\r\n </h2>\r\n <p>\r\n Please contact help desk if needed.\r\n </p>\r\n <div>\r\n <button (click)=\"logout()\" *ngIf=\"type === 'staff'\">OK</button>\r\n <button (click)=\"portal()\" *ngIf=\"type === 'offender'\">OK</button>\r\n </div>\r\n</div>\r\n", styles: ["div{text-align:center}\n"] }]
33
- }], ctorParameters: function () { return [{ type: i1.MsalService }, { type: i2.ActivatedRoute }, { type: undefined, decorators: [{
33
+ }], ctorParameters: () => [{ type: i1.MsalService }, { type: i2.ActivatedRoute }, { type: undefined, decorators: [{
34
34
  type: Inject,
35
35
  args: [SMART_WEB_PORTAL_URL]
36
- }] }]; } });
36
+ }] }] });
37
37
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtZXJyb3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY3NtYXJ0L25nYy1zbWFydC1jb3JlL3NyYy9saWIvc21hcnQtYXV0aC9zbWFydC1lcnJvci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jc21hcnQvbmdjLXNtYXJ0LWNvcmUvc3JjL2xpYi9zbWFydC1hdXRoL3NtYXJ0LWVycm9yLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFELDJEQUEyRDtBQUMzRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDbEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDOzs7OztBQU81RSxNQUFNLE9BQU8sbUJBQW1CO0lBSTlCLFlBQ1UsWUFBeUIsRUFDekIsS0FBcUIsRUFDUyxpQkFBeUI7UUFGdkQsaUJBQVksR0FBWixZQUFZLENBQWE7UUFDekIsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7UUFDUyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQVE7SUFDOUQsQ0FBQztJQUVKLFFBQVE7UUFDTixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksT0FBTyxDQUFDO1FBQ3JFLElBQUksQ0FBQyxPQUFPO1lBQ1YsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsSUFBSSxnQkFBZ0IsQ0FBQztJQUN6RSxDQUFDO0lBRUQsTUFBTTtRQUNKLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVELE1BQU07UUFDSixNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUM7SUFDaEQsQ0FBQztrSUF0QlUsbUJBQW1CLDJFQU9wQixvQkFBb0I7c0hBUG5CLG1CQUFtQix1RENYaEMsNlNBWUE7OzRGRERhLG1CQUFtQjtrQkFML0IsU0FBUzsrQkFDRSxpQkFBaUI7OzBCQVd4QixNQUFNOzJCQUFDLG9CQUFvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuLy8gaW1wb3J0IHsgU21hcnRBdXRoU2VydmljZSB9IGZyb20gJy4vc21hcnQtYXV0aC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTXNhbFNlcnZpY2UgfSBmcm9tICdAYXp1cmUvbXNhbC1hbmd1bGFyJztcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBTTUFSVF9XRUJfUE9SVEFMX1VSTCB9IGZyb20gJy4uL3NtYXJ0LXN0b3JhZ2Uvc21hcnQtc3RvcmFnZS1tb2RlbCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1zbWFydC1lcnJvcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3NtYXJ0LWVycm9yLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9zbWFydC1lcnJvci5jb21wb25lbnQuY3NzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTbWFydEVycm9yQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICB0eXBlOiBzdHJpbmc7XHJcbiAgbWVzc2FnZTogc3RyaW5nO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgYXV0aG5TZXJ2aWNlOiBNc2FsU2VydmljZSxcclxuICAgIHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxyXG4gICAgQEluamVjdChTTUFSVF9XRUJfUE9SVEFMX1VSTCkgcHJpdmF0ZSBzbWFydFdlYlBvcnRhbFVybDogc3RyaW5nLFxyXG4gICkge31cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnR5cGUgPSB0aGlzLnJvdXRlLnNuYXBzaG90LnF1ZXJ5UGFyYW1NYXAuZ2V0KCd0eXBlJykgfHwgJ3N0YWZmJztcclxuICAgIHRoaXMubWVzc2FnZSA9XHJcbiAgICAgIHRoaXMucm91dGUuc25hcHNob3QucXVlcnlQYXJhbU1hcC5nZXQoJ21lc3NhZ2UnKSB8fCAnRXJyb3Igb2NjdXJlZC4nO1xyXG4gIH1cclxuXHJcbiAgbG9nb3V0KCkge1xyXG4gICAgdGhpcy5hdXRoblNlcnZpY2UubG9nb3V0KCk7XHJcbiAgfVxyXG5cclxuICBwb3J0YWwoKSB7XHJcbiAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IHRoaXMuc21hcnRXZWJQb3J0YWxVcmw7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXY+XHJcbiAgPGgyPlxyXG4gICAge3sgbWVzc2FnZSB9fVxyXG4gIDwvaDI+XHJcbiAgPHA+XHJcbiAgICBQbGVhc2UgY29udGFjdCBoZWxwIGRlc2sgaWYgbmVlZGVkLlxyXG4gIDwvcD5cclxuICA8ZGl2PlxyXG4gICAgPGJ1dHRvbiAoY2xpY2spPVwibG9nb3V0KClcIiAqbmdJZj1cInR5cGUgPT09ICdzdGFmZidcIj5PSzwvYnV0dG9uPlxyXG4gICAgPGJ1dHRvbiAoY2xpY2spPVwicG9ydGFsKClcIiAqbmdJZj1cInR5cGUgPT09ICdvZmZlbmRlcidcIj5PSzwvYnV0dG9uPlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
@@ -47,13 +47,13 @@ export class LoginStaffResolverService {
47
47
  return EMPTY;
48
48
  }));
49
49
  }
50
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: LoginStaffResolverService, deps: [{ token: i1.SmartAuthService }, { token: i2.Router }], target: i0.ɵɵFactoryTarget.Injectable }); }
51
- /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: LoginStaffResolverService, providedIn: 'root' }); }
50
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: LoginStaffResolverService, deps: [{ token: i1.SmartAuthService }, { token: i2.Router }], target: i0.ɵɵFactoryTarget.Injectable }); }
51
+ /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: LoginStaffResolverService, providedIn: 'root' }); }
52
52
  }
53
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: LoginStaffResolverService, decorators: [{
53
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: LoginStaffResolverService, decorators: [{
54
54
  type: Injectable,
55
55
  args: [{
56
56
  providedIn: 'root',
57
57
  }]
58
- }], ctorParameters: function () { return [{ type: i1.SmartAuthService }, { type: i2.Router }]; } });
59
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtbG9naW4tc3RhZmYtcmVzb2x2ZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NzbWFydC9uZ2Mtc21hcnQtY29yZS9zcmMvbGliL3NtYXJ0LWF1dGgvc21hcnQtbG9naW4tc3RhZmYtcmVzb2x2ZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFVLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RCxPQUFPLEVBQStDLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3RGLE9BQU8sRUFBYyxLQUFLLEVBQUUsRUFBRSxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN6RCxPQUFPLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7OztBQU14RCxNQUFNLE9BQU8seUJBQXlCO0lBQ3BDLFlBQ1UsWUFBOEI7SUFDdEMsd0JBQXdCO0lBQ2hCLE1BQWM7UUFGZCxpQkFBWSxHQUFaLFlBQVksQ0FBa0I7UUFFOUIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtJQUNyQixDQUFDO0lBRUosT0FBTyxDQUNMLEtBQTZCLEVBQzdCLEtBQTBCO1FBRTFCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxJQUFJLENBQzNDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFDUCxRQUFRLENBQUMsQ0FBQyxVQUFVLEVBQUUsRUFBRTtZQUN0QixJQUFJLFNBQVMsRUFBRTtnQkFDYixPQUFPLENBQUMsR0FBRyxDQUFDLDZCQUE2QixFQUFFLFVBQVUsQ0FBQyxDQUFDO2FBQ3hEO1lBQ0QsSUFBSSxVQUFVLEVBQUU7Z0JBQ2QsT0FBTyxFQUFFLENBQUMsVUFBVSxDQUFDLENBQUM7YUFDdkI7aUJBQU07Z0JBQ0wsT0FBTyxVQUFVLENBQUMsaUNBQWlDLENBQUMsQ0FBQztnQkFDckQsZ0JBQWdCO2dCQUNoQjs7Ozs7Ozs7OztrQkFVRTthQUNIO1FBQ0gsQ0FBQyxDQUFDLEVBQ0YsVUFBVSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDbkIsT0FBTyxDQUFDLEdBQUcsQ0FBQyw2QkFBNkIsR0FBRyxLQUFLLENBQUMsQ0FBQztZQUNuRCxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxFQUFFO2dCQUNyQyxXQUFXLEVBQUU7b0JBQ1gsSUFBSSxFQUFFLE9BQU87b0JBQ2IsT0FBTyxFQUFFLHdCQUF3QixHQUFHLEtBQUs7aUJBQzFDO2FBQ0YsQ0FBQyxDQUFDO1lBQ0gsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztrSUE5Q1UseUJBQXlCO3NJQUF6Qix5QkFBeUIsY0FGeEIsTUFBTTs7NEZBRVAseUJBQXlCO2tCQUhyQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIE5nWm9uZSwgaXNEZXZNb2RlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIFJvdXRlclN0YXRlU25hcHNob3QsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIEVNUFRZLCBvZiwgdGhyb3dFcnJvciB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBtZXJnZU1hcCwgY2F0Y2hFcnJvciwgdGFrZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgU21hcnRBdXRoU2VydmljZSB9IGZyb20gJy4vc21hcnQtYXV0aC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTG9naW5TdGFmZiB9IGZyb20gJy4uL3NtYXJ0LXN0b3JhZ2Uvc21hcnQtc3RvcmFnZS1tb2RlbCc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTG9naW5TdGFmZlJlc29sdmVyU2VydmljZSAge1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBhdXRoblNlcnZpY2U6IFNtYXJ0QXV0aFNlcnZpY2UsXHJcbiAgICAvLyBwcml2YXRlIHpvbmU6IE5nWm9uZSxcclxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXHJcbiAgKSB7fVxyXG5cclxuICByZXNvbHZlKFxyXG4gICAgcm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsXHJcbiAgICBzdGF0ZTogUm91dGVyU3RhdGVTbmFwc2hvdCxcclxuICApOiBPYnNlcnZhYmxlPExvZ2luU3RhZmY+IHwgT2JzZXJ2YWJsZTxuZXZlcj4ge1xyXG4gICAgcmV0dXJuIHRoaXMuYXV0aG5TZXJ2aWNlLmdldExvZ2luU3RhZmYoKS5waXBlKFxyXG4gICAgICB0YWtlKDEpLFxyXG4gICAgICBtZXJnZU1hcCgobG9naW5TdGFmZikgPT4ge1xyXG4gICAgICAgIGlmIChpc0Rldk1vZGUpIHtcclxuICAgICAgICAgIGNvbnNvbGUubG9nKCdMb2dpblN0YWZmUmVzb2x2ZXJTZXJ2aWNlOiAnLCBsb2dpblN0YWZmKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGxvZ2luU3RhZmYpIHtcclxuICAgICAgICAgIHJldHVybiBvZihsb2dpblN0YWZmKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoJ05vdCBhdXRob3JpemVkIHRvIGFjY2VzcyBTTUFSVC4nKTtcclxuICAgICAgICAgIC8vIHJldHVybiBFTVBUWTtcclxuICAgICAgICAgIC8qXHJcbiAgICAgICAgICB0aGlzLnpvbmUucnVuKCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvc21hcnQtZXJyb3InXSwge1xyXG4gICAgICAgICAgICAgIHF1ZXJ5UGFyYW1zOiB7XHJcbiAgICAgICAgICAgICAgICB0eXBlOiAnc3RhZmYnLFxyXG4gICAgICAgICAgICAgICAgbWVzc2FnZTogJ05vdCBhdXRob3JpemVkIHRvIGFjY2VzcyBTTUFSVC4nXHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgcmV0dXJuIEVNUFRZO1xyXG4gICAgICAgICAgKi9cclxuICAgICAgICB9XHJcbiAgICAgIH0pLFxyXG4gICAgICBjYXRjaEVycm9yKChlcnJvcikgPT4ge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKCdMb2dpblN0YWZmUmVzb2x2ZXJTZXJ2aWNlOiAnICsgZXJyb3IpO1xyXG4gICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL3NtYXJ0LWVycm9yJ10sIHtcclxuICAgICAgICAgIHF1ZXJ5UGFyYW1zOiB7XHJcbiAgICAgICAgICAgIHR5cGU6ICdzdGFmZicsXHJcbiAgICAgICAgICAgIG1lc3NhZ2U6ICdTTUFSVCBBdXRoZW50aWNhdGlvbjogJyArIGVycm9yLFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICB9KTtcclxuICAgICAgICByZXR1cm4gRU1QVFk7XHJcbiAgICAgIH0pLFxyXG4gICAgKTtcclxuICB9XHJcbn1cclxuIl19
58
+ }], ctorParameters: () => [{ type: i1.SmartAuthService }, { type: i2.Router }] });
59
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtbG9naW4tc3RhZmYtcmVzb2x2ZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NzbWFydC9uZ2Mtc21hcnQtY29yZS9zcmMvbGliL3NtYXJ0LWF1dGgvc21hcnQtbG9naW4tc3RhZmYtcmVzb2x2ZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFVLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RCxPQUFPLEVBQStDLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3RGLE9BQU8sRUFBYyxLQUFLLEVBQUUsRUFBRSxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN6RCxPQUFPLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7OztBQU14RCxNQUFNLE9BQU8seUJBQXlCO0lBQ3BDLFlBQ1UsWUFBOEI7SUFDdEMsd0JBQXdCO0lBQ2hCLE1BQWM7UUFGZCxpQkFBWSxHQUFaLFlBQVksQ0FBa0I7UUFFOUIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtJQUNyQixDQUFDO0lBRUosT0FBTyxDQUNMLEtBQTZCLEVBQzdCLEtBQTBCO1FBRTFCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxJQUFJLENBQzNDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFDUCxRQUFRLENBQUMsQ0FBQyxVQUFVLEVBQUUsRUFBRTtZQUN0QixJQUFJLFNBQVMsRUFBRSxDQUFDO2dCQUNkLE9BQU8sQ0FBQyxHQUFHLENBQUMsNkJBQTZCLEVBQUUsVUFBVSxDQUFDLENBQUM7WUFDekQsQ0FBQztZQUNELElBQUksVUFBVSxFQUFFLENBQUM7Z0JBQ2YsT0FBTyxFQUFFLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDeEIsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLE9BQU8sVUFBVSxDQUFDLGlDQUFpQyxDQUFDLENBQUM7Z0JBQ3JELGdCQUFnQjtnQkFDaEI7Ozs7Ozs7Ozs7a0JBVUU7WUFDSixDQUFDO1FBQ0gsQ0FBQyxDQUFDLEVBQ0YsVUFBVSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDbkIsT0FBTyxDQUFDLEdBQUcsQ0FBQyw2QkFBNkIsR0FBRyxLQUFLLENBQUMsQ0FBQztZQUNuRCxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxFQUFFO2dCQUNyQyxXQUFXLEVBQUU7b0JBQ1gsSUFBSSxFQUFFLE9BQU87b0JBQ2IsT0FBTyxFQUFFLHdCQUF3QixHQUFHLEtBQUs7aUJBQzFDO2FBQ0YsQ0FBQyxDQUFDO1lBQ0gsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztrSUE5Q1UseUJBQXlCO3NJQUF6Qix5QkFBeUIsY0FGeEIsTUFBTTs7NEZBRVAseUJBQXlCO2tCQUhyQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIE5nWm9uZSwgaXNEZXZNb2RlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIFJvdXRlclN0YXRlU25hcHNob3QsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIEVNUFRZLCBvZiwgdGhyb3dFcnJvciB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBtZXJnZU1hcCwgY2F0Y2hFcnJvciwgdGFrZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgU21hcnRBdXRoU2VydmljZSB9IGZyb20gJy4vc21hcnQtYXV0aC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTG9naW5TdGFmZiB9IGZyb20gJy4uL3NtYXJ0LXN0b3JhZ2Uvc21hcnQtc3RvcmFnZS1tb2RlbCc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTG9naW5TdGFmZlJlc29sdmVyU2VydmljZSAge1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBhdXRoblNlcnZpY2U6IFNtYXJ0QXV0aFNlcnZpY2UsXHJcbiAgICAvLyBwcml2YXRlIHpvbmU6IE5nWm9uZSxcclxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXHJcbiAgKSB7fVxyXG5cclxuICByZXNvbHZlKFxyXG4gICAgcm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsXHJcbiAgICBzdGF0ZTogUm91dGVyU3RhdGVTbmFwc2hvdCxcclxuICApOiBPYnNlcnZhYmxlPExvZ2luU3RhZmY+IHwgT2JzZXJ2YWJsZTxuZXZlcj4ge1xyXG4gICAgcmV0dXJuIHRoaXMuYXV0aG5TZXJ2aWNlLmdldExvZ2luU3RhZmYoKS5waXBlKFxyXG4gICAgICB0YWtlKDEpLFxyXG4gICAgICBtZXJnZU1hcCgobG9naW5TdGFmZikgPT4ge1xyXG4gICAgICAgIGlmIChpc0Rldk1vZGUpIHtcclxuICAgICAgICAgIGNvbnNvbGUubG9nKCdMb2dpblN0YWZmUmVzb2x2ZXJTZXJ2aWNlOiAnLCBsb2dpblN0YWZmKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGxvZ2luU3RhZmYpIHtcclxuICAgICAgICAgIHJldHVybiBvZihsb2dpblN0YWZmKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoJ05vdCBhdXRob3JpemVkIHRvIGFjY2VzcyBTTUFSVC4nKTtcclxuICAgICAgICAgIC8vIHJldHVybiBFTVBUWTtcclxuICAgICAgICAgIC8qXHJcbiAgICAgICAgICB0aGlzLnpvbmUucnVuKCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvc21hcnQtZXJyb3InXSwge1xyXG4gICAgICAgICAgICAgIHF1ZXJ5UGFyYW1zOiB7XHJcbiAgICAgICAgICAgICAgICB0eXBlOiAnc3RhZmYnLFxyXG4gICAgICAgICAgICAgICAgbWVzc2FnZTogJ05vdCBhdXRob3JpemVkIHRvIGFjY2VzcyBTTUFSVC4nXHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgcmV0dXJuIEVNUFRZO1xyXG4gICAgICAgICAgKi9cclxuICAgICAgICB9XHJcbiAgICAgIH0pLFxyXG4gICAgICBjYXRjaEVycm9yKChlcnJvcikgPT4ge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKCdMb2dpblN0YWZmUmVzb2x2ZXJTZXJ2aWNlOiAnICsgZXJyb3IpO1xyXG4gICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL3NtYXJ0LWVycm9yJ10sIHtcclxuICAgICAgICAgIHF1ZXJ5UGFyYW1zOiB7XHJcbiAgICAgICAgICAgIHR5cGU6ICdzdGFmZicsXHJcbiAgICAgICAgICAgIG1lc3NhZ2U6ICdTTUFSVCBBdXRoZW50aWNhdGlvbjogJyArIGVycm9yLFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICB9KTtcclxuICAgICAgICByZXR1cm4gRU1QVFk7XHJcbiAgICAgIH0pLFxyXG4gICAgKTtcclxuICB9XHJcbn1cclxuIl19
@@ -48,13 +48,13 @@ export class SelectedOffenderResolverService {
48
48
  return EMPTY;
49
49
  }));
50
50
  }
51
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SelectedOffenderResolverService, deps: [{ token: i1.XdmService }, { token: i0.NgZone }, { token: i2.Router }], target: i0.ɵɵFactoryTarget.Injectable }); }
52
- /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SelectedOffenderResolverService, providedIn: 'root' }); }
51
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: SelectedOffenderResolverService, deps: [{ token: i1.XdmService }, { token: i0.NgZone }, { token: i2.Router }], target: i0.ɵɵFactoryTarget.Injectable }); }
52
+ /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: SelectedOffenderResolverService, providedIn: 'root' }); }
53
53
  }
54
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SelectedOffenderResolverService, decorators: [{
54
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: SelectedOffenderResolverService, decorators: [{
55
55
  type: Injectable,
56
56
  args: [{
57
57
  providedIn: 'root',
58
58
  }]
59
- }], ctorParameters: function () { return [{ type: i1.XdmService }, { type: i0.NgZone }, { type: i2.Router }]; } });
60
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtc2VsZWN0ZWQtb2ZmZW5kZXItcmVzb2x2ZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NzbWFydC9uZ2Mtc21hcnQtY29yZS9zcmMvbGliL3NtYXJ0LWF1dGgvc21hcnQtc2VsZWN0ZWQtb2ZmZW5kZXItcmVzb2x2ZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUErQyxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN0RixPQUFPLEVBQWMsSUFBSSxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN2RSxPQUFPLEVBQ0wsVUFBVSxFQUNWLFFBQVEsRUFDUixJQUFJLEVBQ0osU0FBUyxFQUNULEtBQUssR0FDTixNQUFNLGdCQUFnQixDQUFDO0FBRXhCLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7OztBQUsxRCxNQUFNLE9BQU8sK0JBQStCO0lBRTFDLFlBQ1UsT0FBbUIsRUFDbkIsSUFBWSxFQUNaLE1BQWM7UUFGZCxZQUFPLEdBQVAsT0FBTyxDQUFZO1FBQ25CLFNBQUksR0FBSixJQUFJLENBQVE7UUFDWixXQUFNLEdBQU4sTUFBTSxDQUFRO0lBQ3JCLENBQUM7SUFDSixPQUFPLENBQ0wsS0FBNkIsRUFDN0IsS0FBMEI7UUFFMUIsSUFBSSxVQUFVLEdBQWtCLElBQUksQ0FBQztRQUNyQyxJQUFJLFVBQVUsR0FBWSxLQUFLLENBQUM7UUFDaEMsSUFBRyxLQUFLLEVBQUU7WUFDUixJQUFHLEtBQUssQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDO2dCQUNoQyxVQUFVLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQztZQUN6RCxJQUFHLEtBQUssQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDO2dCQUNoQyxVQUFVLEdBQUcsS0FBSyxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsSUFBSSxNQUFNLENBQUM7U0FDMUQ7UUFDRCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLG1CQUFtQixFQUFFLENBQUMsQ0FBQyxJQUFJLENBQ2xELFFBQVEsQ0FBQyxDQUFDLGdCQUFnQixFQUFFLEVBQUU7WUFDNUIsSUFBSSxTQUFTLEVBQUU7Z0JBQ2IsT0FBTyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO2FBQy9CO1lBQ0QsSUFBRyxVQUFVLElBQUksVUFBVSxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsZ0JBQWdCLElBQUksQ0FBQyxnQkFBZ0IsSUFBSSxnQkFBZ0IsQ0FBQyxVQUFVLEtBQUssVUFBVSxDQUFDLENBQUMsRUFBRTtnQkFDMUgsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLDRCQUE0QixDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUMsQ0FBQzthQUMxRTtZQUNELElBQUcsZ0JBQWdCLEVBQUU7Z0JBQ25CLE9BQU8sRUFBRSxDQUFDLGdCQUFnQixDQUFDLENBQUM7YUFDN0I7WUFDRCxPQUFPLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLEtBQUssQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDLENBQUM7UUFDOUQsQ0FBQyxDQUFDLEVBQ0YsU0FBUyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FDbkIsTUFBTSxDQUFDLElBQUk7UUFDVCw4REFBOEQ7UUFDOUQsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUNYLElBQUksQ0FBQyxDQUFDLENBQUMsRUFDUCxDQUFDLENBQUMsRUFBRSxFQUFFLENBQ0osTUFBTSxDQUNKLENBQUMsRUFDRCxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxLQUFLLENBQUMsOENBQThDLENBQUMsQ0FBQyxDQUM1RSxDQUNKLENBQ0YsRUFDRCxVQUFVLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNuQjs7Ozs7O2NBTUU7WUFDRixJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxFQUFFO2dCQUNyQyxXQUFXLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUU7YUFDbEQsQ0FBQyxDQUFDO1lBQ0gsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztrSUExRFUsK0JBQStCO3NJQUEvQiwrQkFBK0IsY0FGOUIsTUFBTTs7NEZBRVAsK0JBQStCO2tCQUgzQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIE5nWm9uZSwgaXNEZXZNb2RlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIFJvdXRlclN0YXRlU25hcHNob3QsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIGZyb20sIG9mLCBFTVBUWSwgdGhyb3dFcnJvciwgY29uY2F0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7XHJcbiAgY2F0Y2hFcnJvcixcclxuICBtZXJnZU1hcCxcclxuICB0YWtlLFxyXG4gIHJldHJ5V2hlbixcclxuICBkZWxheSxcclxufSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IFNlbGVjdGVkT2ZmZW5kZXIgfSBmcm9tICcuLi9zbWFydC1zdG9yYWdlL3NtYXJ0LXN0b3JhZ2UtbW9kZWwnO1xyXG5pbXBvcnQgeyBYZG1TZXJ2aWNlIH0gZnJvbSAnLi4vc21hcnQtc3RvcmFnZS94ZG0uc2VydmljZSc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2VsZWN0ZWRPZmZlbmRlclJlc29sdmVyU2VydmljZVxyXG4gICB7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHNlcnZpY2U6IFhkbVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHpvbmU6IE5nWm9uZSxcclxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXHJcbiAgKSB7fVxyXG4gIHJlc29sdmUoXHJcbiAgICByb3V0ZTogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCxcclxuICAgIHN0YXRlOiBSb3V0ZXJTdGF0ZVNuYXBzaG90LFxyXG4gICk6IE9ic2VydmFibGU8U2VsZWN0ZWRPZmZlbmRlcj4gfCBPYnNlcnZhYmxlPG5ldmVyPiB7XHJcbiAgICBsZXQgb2ZmZW5kZXJJZDogbnVtYmVyIHwgbnVsbCA9IG51bGw7XHJcbiAgICBsZXQgaW50YWtlRmxhZzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgaWYocm91dGUpIHtcclxuICAgICAgaWYocm91dGUucXVlcnlQYXJhbXNbXCJvZmZlbmRlcklkXCJdKVxyXG4gICAgICAgIG9mZmVuZGVySWQgPSBwYXJzZUludChyb3V0ZS5xdWVyeVBhcmFtc1tcIm9mZmVuZGVySWRcIl0pO1xyXG4gICAgICBpZihyb3V0ZS5xdWVyeVBhcmFtc1tcImludGFrZUZsYWdcIl0pXHJcbiAgICAgICAgaW50YWtlRmxhZyA9IHJvdXRlLnF1ZXJ5UGFyYW1zW1wiaW50YWtlRmxhZ1wiXSA9PSBcInRydWVcIjtcclxuICAgIH1cclxuICAgIHJldHVybiBmcm9tKHRoaXMuc2VydmljZS5nZXRTZWxlY3RlZE9mZmVuZGVyKCkpLnBpcGUoXHJcbiAgICAgIG1lcmdlTWFwKChzZWxlY3RlZE9mZmVuZGVyKSA9PiB7XHJcbiAgICAgICAgaWYgKGlzRGV2TW9kZSkge1xyXG4gICAgICAgICAgY29uc29sZS5sb2coc2VsZWN0ZWRPZmZlbmRlcik7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmKG9mZmVuZGVySWQgJiYgb2ZmZW5kZXJJZCA+IDAgJiYgKCFzZWxlY3RlZE9mZmVuZGVyIHx8IChzZWxlY3RlZE9mZmVuZGVyICYmIHNlbGVjdGVkT2ZmZW5kZXIub2ZmZW5kZXJJZCAhPT0gb2ZmZW5kZXJJZCkpKSB7XHJcbiAgICAgICAgICByZXR1cm4gdGhpcy5zZXJ2aWNlLnNldFNlbGVjdGVkT2ZmZW5kZXJGcm9tUm91dGUob2ZmZW5kZXJJZCwgaW50YWtlRmxhZyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmKHNlbGVjdGVkT2ZmZW5kZXIpIHtcclxuICAgICAgICAgIHJldHVybiBvZihzZWxlY3RlZE9mZmVuZGVyKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gbmV3IEVycm9yKCdObyBvZmZlbmRlciBzZWxlY3RlZC4nKSk7XHJcbiAgICAgIH0pLFxyXG4gICAgICByZXRyeVdoZW4oKGVycm9ycykgPT5cclxuICAgICAgICBlcnJvcnMucGlwZShcclxuICAgICAgICAgIC8vIHRhcCgoKSA9PiBjb25zb2xlLmxvZygnUmV0cnkgZ2V0dGluZyBzZWxlY3RlZCBvZmZlbmRlci4nKSksXHJcbiAgICAgICAgICBkZWxheSgxMDAwKSxcclxuICAgICAgICAgIHRha2UoNSksXHJcbiAgICAgICAgICAobykgPT5cclxuICAgICAgICAgICAgY29uY2F0KFxyXG4gICAgICAgICAgICAgIG8sXHJcbiAgICAgICAgICAgICAgdGhyb3dFcnJvcigoKSA9PiBuZXcgRXJyb3IoJ05vIG9mZmVuZGVyIHNlbGVjdGVkIChmYWlsZWQgYWZ0ZXIgcmV0cmllcykuJykpLFxyXG4gICAgICAgICAgICApLFxyXG4gICAgICAgICksXHJcbiAgICAgICksXHJcbiAgICAgIGNhdGNoRXJyb3IoKGVycm9yKSA9PiB7XHJcbiAgICAgICAgLypcclxuICAgICAgICB0aGlzLnpvbmUucnVuKCgpID0+IHtcclxuICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL3NtYXJ0LWVycm9yJ10sIHtcclxuICAgICAgICAgICAgcXVlcnlQYXJhbXM6IHsgdHlwZTogJ29mZmVuZGVyJywgbWVzc2FnZTogZXJyb3IgfVxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgKi9cclxuICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy9zbWFydC1lcnJvciddLCB7XHJcbiAgICAgICAgICBxdWVyeVBhcmFtczogeyB0eXBlOiAnb2ZmZW5kZXInLCBtZXNzYWdlOiBlcnJvciB9LFxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHJldHVybiBFTVBUWTtcclxuICAgICAgfSksXHJcbiAgICApO1xyXG4gIH1cclxufVxyXG4iXX0=
59
+ }], ctorParameters: () => [{ type: i1.XdmService }, { type: i0.NgZone }, { type: i2.Router }] });
60
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtc2VsZWN0ZWQtb2ZmZW5kZXItcmVzb2x2ZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NzbWFydC9uZ2Mtc21hcnQtY29yZS9zcmMvbGliL3NtYXJ0LWF1dGgvc21hcnQtc2VsZWN0ZWQtb2ZmZW5kZXItcmVzb2x2ZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUErQyxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN0RixPQUFPLEVBQWMsSUFBSSxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN2RSxPQUFPLEVBQ0wsVUFBVSxFQUNWLFFBQVEsRUFDUixJQUFJLEVBQ0osU0FBUyxFQUNULEtBQUssR0FDTixNQUFNLGdCQUFnQixDQUFDO0FBRXhCLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7OztBQUsxRCxNQUFNLE9BQU8sK0JBQStCO0lBRTFDLFlBQ1UsT0FBbUIsRUFDbkIsSUFBWSxFQUNaLE1BQWM7UUFGZCxZQUFPLEdBQVAsT0FBTyxDQUFZO1FBQ25CLFNBQUksR0FBSixJQUFJLENBQVE7UUFDWixXQUFNLEdBQU4sTUFBTSxDQUFRO0lBQ3JCLENBQUM7SUFDSixPQUFPLENBQ0wsS0FBNkIsRUFDN0IsS0FBMEI7UUFFMUIsSUFBSSxVQUFVLEdBQWtCLElBQUksQ0FBQztRQUNyQyxJQUFJLFVBQVUsR0FBWSxLQUFLLENBQUM7UUFDaEMsSUFBRyxLQUFLLEVBQUUsQ0FBQztZQUNULElBQUcsS0FBSyxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUM7Z0JBQ2hDLFVBQVUsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO1lBQ3pELElBQUcsS0FBSyxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUM7Z0JBQ2hDLFVBQVUsR0FBRyxLQUFLLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxJQUFJLE1BQU0sQ0FBQztRQUMzRCxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUNsRCxRQUFRLENBQUMsQ0FBQyxnQkFBZ0IsRUFBRSxFQUFFO1lBQzVCLElBQUksU0FBUyxFQUFFLENBQUM7Z0JBQ2QsT0FBTyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1lBQ2hDLENBQUM7WUFDRCxJQUFHLFVBQVUsSUFBSSxVQUFVLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxnQkFBZ0IsSUFBSSxDQUFDLGdCQUFnQixJQUFJLGdCQUFnQixDQUFDLFVBQVUsS0FBSyxVQUFVLENBQUMsQ0FBQyxFQUFFLENBQUM7Z0JBQzNILE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyw0QkFBNEIsQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUFDLENBQUM7WUFDM0UsQ0FBQztZQUNELElBQUcsZ0JBQWdCLEVBQUUsQ0FBQztnQkFDcEIsT0FBTyxFQUFFLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztZQUM5QixDQUFDO1lBQ0QsT0FBTyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxLQUFLLENBQUMsdUJBQXVCLENBQUMsQ0FBQyxDQUFDO1FBQzlELENBQUMsQ0FBQyxFQUNGLFNBQVMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQ25CLE1BQU0sQ0FBQyxJQUFJO1FBQ1QsOERBQThEO1FBQzlELEtBQUssQ0FBQyxJQUFJLENBQUMsRUFDWCxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQ1AsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUNKLE1BQU0sQ0FDSixDQUFDLEVBQ0QsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksS0FBSyxDQUFDLDhDQUE4QyxDQUFDLENBQUMsQ0FDNUUsQ0FDSixDQUNGLEVBQ0QsVUFBVSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDbkI7Ozs7OztjQU1FO1lBQ0YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxjQUFjLENBQUMsRUFBRTtnQkFDckMsV0FBVyxFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFO2FBQ2xELENBQUMsQ0FBQztZQUNILE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7a0lBMURVLCtCQUErQjtzSUFBL0IsK0JBQStCLGNBRjlCLE1BQU07OzRGQUVQLCtCQUErQjtrQkFIM0MsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBOZ1pvbmUsIGlzRGV2TW9kZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBSb3V0ZXJTdGF0ZVNuYXBzaG90LCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBmcm9tLCBvZiwgRU1QVFksIHRocm93RXJyb3IsIGNvbmNhdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQge1xyXG4gIGNhdGNoRXJyb3IsXHJcbiAgbWVyZ2VNYXAsXHJcbiAgdGFrZSxcclxuICByZXRyeVdoZW4sXHJcbiAgZGVsYXksXHJcbn0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBTZWxlY3RlZE9mZmVuZGVyIH0gZnJvbSAnLi4vc21hcnQtc3RvcmFnZS9zbWFydC1zdG9yYWdlLW1vZGVsJztcclxuaW1wb3J0IHsgWGRtU2VydmljZSB9IGZyb20gJy4uL3NtYXJ0LXN0b3JhZ2UveGRtLnNlcnZpY2UnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIFNlbGVjdGVkT2ZmZW5kZXJSZXNvbHZlclNlcnZpY2VcclxuICAge1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBzZXJ2aWNlOiBYZG1TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSB6b25lOiBOZ1pvbmUsXHJcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxyXG4gICkge31cclxuICByZXNvbHZlKFxyXG4gICAgcm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsXHJcbiAgICBzdGF0ZTogUm91dGVyU3RhdGVTbmFwc2hvdCxcclxuICApOiBPYnNlcnZhYmxlPFNlbGVjdGVkT2ZmZW5kZXI+IHwgT2JzZXJ2YWJsZTxuZXZlcj4ge1xyXG4gICAgbGV0IG9mZmVuZGVySWQ6IG51bWJlciB8IG51bGwgPSBudWxsO1xyXG4gICAgbGV0IGludGFrZUZsYWc6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIGlmKHJvdXRlKSB7XHJcbiAgICAgIGlmKHJvdXRlLnF1ZXJ5UGFyYW1zW1wib2ZmZW5kZXJJZFwiXSlcclxuICAgICAgICBvZmZlbmRlcklkID0gcGFyc2VJbnQocm91dGUucXVlcnlQYXJhbXNbXCJvZmZlbmRlcklkXCJdKTtcclxuICAgICAgaWYocm91dGUucXVlcnlQYXJhbXNbXCJpbnRha2VGbGFnXCJdKVxyXG4gICAgICAgIGludGFrZUZsYWcgPSByb3V0ZS5xdWVyeVBhcmFtc1tcImludGFrZUZsYWdcIl0gPT0gXCJ0cnVlXCI7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZnJvbSh0aGlzLnNlcnZpY2UuZ2V0U2VsZWN0ZWRPZmZlbmRlcigpKS5waXBlKFxyXG4gICAgICBtZXJnZU1hcCgoc2VsZWN0ZWRPZmZlbmRlcikgPT4ge1xyXG4gICAgICAgIGlmIChpc0Rldk1vZGUpIHtcclxuICAgICAgICAgIGNvbnNvbGUubG9nKHNlbGVjdGVkT2ZmZW5kZXIpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZihvZmZlbmRlcklkICYmIG9mZmVuZGVySWQgPiAwICYmICghc2VsZWN0ZWRPZmZlbmRlciB8fCAoc2VsZWN0ZWRPZmZlbmRlciAmJiBzZWxlY3RlZE9mZmVuZGVyLm9mZmVuZGVySWQgIT09IG9mZmVuZGVySWQpKSkge1xyXG4gICAgICAgICAgcmV0dXJuIHRoaXMuc2VydmljZS5zZXRTZWxlY3RlZE9mZmVuZGVyRnJvbVJvdXRlKG9mZmVuZGVySWQsIGludGFrZUZsYWcpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZihzZWxlY3RlZE9mZmVuZGVyKSB7XHJcbiAgICAgICAgICByZXR1cm4gb2Yoc2VsZWN0ZWRPZmZlbmRlcik7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+IG5ldyBFcnJvcignTm8gb2ZmZW5kZXIgc2VsZWN0ZWQuJykpO1xyXG4gICAgICB9KSxcclxuICAgICAgcmV0cnlXaGVuKChlcnJvcnMpID0+XHJcbiAgICAgICAgZXJyb3JzLnBpcGUoXHJcbiAgICAgICAgICAvLyB0YXAoKCkgPT4gY29uc29sZS5sb2coJ1JldHJ5IGdldHRpbmcgc2VsZWN0ZWQgb2ZmZW5kZXIuJykpLFxyXG4gICAgICAgICAgZGVsYXkoMTAwMCksXHJcbiAgICAgICAgICB0YWtlKDUpLFxyXG4gICAgICAgICAgKG8pID0+XHJcbiAgICAgICAgICAgIGNvbmNhdChcclxuICAgICAgICAgICAgICBvLFxyXG4gICAgICAgICAgICAgIHRocm93RXJyb3IoKCkgPT4gbmV3IEVycm9yKCdObyBvZmZlbmRlciBzZWxlY3RlZCAoZmFpbGVkIGFmdGVyIHJldHJpZXMpLicpKSxcclxuICAgICAgICAgICAgKSxcclxuICAgICAgICApLFxyXG4gICAgICApLFxyXG4gICAgICBjYXRjaEVycm9yKChlcnJvcikgPT4ge1xyXG4gICAgICAgIC8qXHJcbiAgICAgICAgdGhpcy56b25lLnJ1bigoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy9zbWFydC1lcnJvciddLCB7XHJcbiAgICAgICAgICAgIHF1ZXJ5UGFyYW1zOiB7IHR5cGU6ICdvZmZlbmRlcicsIG1lc3NhZ2U6IGVycm9yIH1cclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgICovXHJcbiAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvc21hcnQtZXJyb3InXSwge1xyXG4gICAgICAgICAgcXVlcnlQYXJhbXM6IHsgdHlwZTogJ29mZmVuZGVyJywgbWVzc2FnZTogZXJyb3IgfSxcclxuICAgICAgICB9KTtcclxuICAgICAgICByZXR1cm4gRU1QVFk7XHJcbiAgICAgIH0pLFxyXG4gICAgKTtcclxuICB9XHJcbn1cclxuIl19