@eui/ecl 16.0.0-next.14 → 16.0.0-next.16

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.
Files changed (37) hide show
  1. package/assets/i18n-ecl/bg.json +104 -78
  2. package/assets/i18n-ecl/cs.json +87 -61
  3. package/assets/i18n-ecl/da.json +89 -63
  4. package/assets/i18n-ecl/de.json +80 -54
  5. package/assets/i18n-ecl/el.json +91 -66
  6. package/assets/i18n-ecl/en.json +33 -4
  7. package/assets/i18n-ecl/es.json +80 -54
  8. package/assets/i18n-ecl/et.json +93 -67
  9. package/assets/i18n-ecl/fi.json +91 -65
  10. package/assets/i18n-ecl/fr.json +77 -51
  11. package/assets/i18n-ecl/ga.json +103 -72
  12. package/assets/i18n-ecl/hr.json +111 -86
  13. package/assets/i18n-ecl/hu.json +112 -86
  14. package/assets/i18n-ecl/it.json +97 -71
  15. package/assets/i18n-ecl/lt.json +108 -82
  16. package/assets/i18n-ecl/lv.json +127 -101
  17. package/assets/i18n-ecl/mt.json +117 -91
  18. package/assets/i18n-ecl/nl.json +102 -76
  19. package/assets/i18n-ecl/pl.json +103 -77
  20. package/assets/i18n-ecl/pt.json +134 -109
  21. package/assets/i18n-ecl/ro.json +108 -82
  22. package/assets/i18n-ecl/sk.json +103 -76
  23. package/assets/i18n-ecl/sl.json +104 -80
  24. package/assets/i18n-ecl/sv.json +92 -66
  25. package/docs/components/EclSiteHeaderComponent.html +38 -1
  26. package/docs/dependencies.html +2 -2
  27. package/docs/js/search/search_index.js +2 -2
  28. package/docs/miscellaneous/variables.html +9 -9
  29. package/esm2022/lib/components/ecl-site-header/ecl-site-header.component.mjs +7 -10
  30. package/esm2022/lib/components/ecl-table/ecl-table.directive.mjs +5 -3
  31. package/esm2022/lib/services/ecl-default-language.service.mjs +60 -60
  32. package/fesm2022/eui-ecl.mjs +69 -70
  33. package/fesm2022/eui-ecl.mjs.map +1 -1
  34. package/lib/components/ecl-site-header/ecl-site-header.component.d.ts +1 -1
  35. package/lib/components/ecl-site-header/ecl-site-header.component.d.ts.map +1 -1
  36. package/lib/components/ecl-table/ecl-table.directive.d.ts.map +1 -1
  37. package/package.json +1 -1
@@ -65,10 +65,10 @@
65
65
  <a href="#COMPONENTS" title="packages/eui/packages/ecl/src/lib/components/ecl-banner/ecl-banner.module.ts" ><b>COMPONENTS</b>&nbsp;&nbsp;&nbsp;(packages/.../ecl-banner.module.ts)</a>
66
66
  </li>
67
67
  <li>
68
- <a href="#COMPONENTS" title="packages/eui/packages/ecl/src/lib/components/ecl-card/ecl-card.module.ts" ><b>COMPONENTS</b>&nbsp;&nbsp;&nbsp;(packages/.../ecl-card.module.ts)</a>
68
+ <a href="#COMPONENTS" title="packages/eui/packages/ecl/src/lib/components/ecl-breadcrumb/ecl-breadcrumb.module.ts" ><b>COMPONENTS</b>&nbsp;&nbsp;&nbsp;(packages/.../ecl-breadcrumb.module.ts)</a>
69
69
  </li>
70
70
  <li>
71
- <a href="#COMPONENTS" title="packages/eui/packages/ecl/src/lib/components/ecl-breadcrumb/ecl-breadcrumb.module.ts" ><b>COMPONENTS</b>&nbsp;&nbsp;&nbsp;(packages/.../ecl-breadcrumb.module.ts)</a>
71
+ <a href="#COMPONENTS" title="packages/eui/packages/ecl/src/lib/components/ecl-card/ecl-card.module.ts" ><b>COMPONENTS</b>&nbsp;&nbsp;&nbsp;(packages/.../ecl-card.module.ts)</a>
72
72
  </li>
73
73
  <li>
74
74
  <a href="#COMPONENTS" title="packages/eui/packages/ecl/src/lib/components/ecl-carousel/ecl-carousel.module.ts" ><b>COMPONENTS</b>&nbsp;&nbsp;&nbsp;(packages/.../ecl-carousel.module.ts)</a>
@@ -218,7 +218,7 @@
218
218
  </tbody>
219
219
  </table>
220
220
  </section>
221
- <h3>packages/eui/packages/ecl/src/lib/components/ecl-card/ecl-card.module.ts</h3>
221
+ <h3>packages/eui/packages/ecl/src/lib/components/ecl-breadcrumb/ecl-breadcrumb.module.ts</h3>
222
222
  <section>
223
223
  <h3></h3> <table class="table table-sm table-bordered">
224
224
  <tbody>
@@ -240,9 +240,8 @@
240
240
  <tr>
241
241
  <td class="col-md-4">
242
242
  <i>Default value : </i><code>[
243
- EclCardComponent,
244
- EclCardBodyComponent,
245
- EclCardImageDirective,
243
+ EclBreadcrumbComponent,
244
+ EclBreadcrumbSegmentComponent
246
245
  ]</code>
247
246
  </td>
248
247
  </tr>
@@ -251,7 +250,7 @@
251
250
  </tbody>
252
251
  </table>
253
252
  </section>
254
- <h3>packages/eui/packages/ecl/src/lib/components/ecl-breadcrumb/ecl-breadcrumb.module.ts</h3>
253
+ <h3>packages/eui/packages/ecl/src/lib/components/ecl-card/ecl-card.module.ts</h3>
255
254
  <section>
256
255
  <h3></h3> <table class="table table-sm table-bordered">
257
256
  <tbody>
@@ -273,8 +272,9 @@
273
272
  <tr>
274
273
  <td class="col-md-4">
275
274
  <i>Default value : </i><code>[
276
- EclBreadcrumbComponent,
277
- EclBreadcrumbSegmentComponent
275
+ EclCardComponent,
276
+ EclCardBodyComponent,
277
+ EclCardImageDirective,
278
278
  ]</code>
279
279
  </td>
280
280
  </tr>
@@ -58,11 +58,11 @@ export class EclSiteHeaderComponent extends ECLBaseDirective {
58
58
  .languageSelected
59
59
  .pipe(takeUntil(this.destroy$))
60
60
  .subscribe(evt => {
61
- this.languageCode = this.getEULanguageCode(evt.language?.code);
61
+ this.languageCode = evt.language?.code;
62
62
  });
63
63
  }
64
64
  if (this.eclLanguageComponent) {
65
- this.languageCode = this.getEULanguageCode(this.eclLanguageComponent?.languageCode);
65
+ this.languageCode = this.eclLanguageComponent?.languageCode;
66
66
  }
67
67
  }
68
68
  ngOnDestroy() {
@@ -76,21 +76,18 @@ export class EclSiteHeaderComponent extends ECLBaseDirective {
76
76
  evt.preventDefault();
77
77
  }
78
78
  }
79
- getEULanguageCode(languageCode) {
80
- if (!this.eclLanguageService.isEuLanguage(languageCode)) {
81
- return 'en';
82
- }
83
- return languageCode;
79
+ getEULanguageCode() {
80
+ return this.eclLanguageService.getEULanguageOrFallback(this.languageCode).code;
84
81
  }
85
82
  /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.4", ngImport: i0, type: EclSiteHeaderComponent, deps: [{ token: i1.EclLanguageService }, { token: i2.TranslateService }, { token: i3.EclThemeService }], target: i0.ɵɵFactoryTarget.Component }); }
86
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.4", type: EclSiteHeaderComponent, selector: "ecl-site-header", inputs: { logoUrl: "logoUrl", siteName: "siteName", languageCode: "languageCode" }, outputs: { logoClick: "logoClick", languageClick: "languageClick" }, host: { properties: { "class": "this.cssClasses", "attr.role": "this.role" } }, queries: [{ propertyName: "eclLoginComponent", first: true, predicate: EclSiteHeaderLoginComponent, descendants: true }, { propertyName: "eclSearchComponent", first: true, predicate: EclSiteHeaderSearchComponent, descendants: true }, { propertyName: "eclLanguageComponent", first: true, predicate: EclSiteHeaderLanguageComponent, descendants: true }], viewQueries: [{ propertyName: "topContainerElement", first: true, predicate: ["topContainer"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"ecl-site-header__header\">\n <div class=\"ecl-site-header__container ecl-container\">\n <div #topContainer class=\"ecl-site-header__top\">\n <a eclLink \n variant=\"standalone\" \n class=\"ecl-site-header__logo-link\"\n href=\"https://ec.europa.eu/info/index_{{ languageCode }}\"\n (click)=\"onECLogoClick($event)\" \n [attr.aria-label]=\"'ecl.footer.EUROPEAN-COMMISSION' | translate\">\n\n <ng-content select=\"[eclSiteHeaderEnvironment]\"></ng-content>\n\n <ng-container *ngIf=\"eclThemeService.isEC$ | async\">\n <img alt=\"European Commission logo\" \n [attr.title]=\"'ecl.footer.EUROPEAN-COMMISSION' | translate\" \n class=\"ecl-site-header__logo-image ecl-site-header__logo-image-desktop\" \n src=\"./assets/images/ecl/ec/logo/logo-ec--{{ languageCode }}.svg\"/>\n </ng-container>\n\n <ng-container *ngIf=\"eclThemeService.isEU$ | async\">\n <img alt=\"European Union flag\" \n [attr.title]=\"'ecl.footer.EUROPEAN-UNION' | translate\" \n class=\"ecl-site-header__logo-image ecl-site-header__logo-image-mobile\" \n src=\"./assets/images/ecl/eu/logo/condensed-version/positive/logo-eu--{{ languageCode}}.svg\"/>\n <img alt=\"European Union flag\" \n [attr.title]=\"'ecl.footer.EUROPEAN-UNION' | translate\" \n class=\"ecl-site-header__logo-image ecl-site-header__logo-image-desktop\" \n src=\"./assets/images/ecl/eu/logo/standard-version/positive/logo-eu--{{ languageCode}}.svg\"/>\n </ng-container>\n </a>\n <ng-content select=\"ecl-site-header-action\"></ng-content>\n </div>\n </div>\n</div>\n\n<ng-content select=\"ecl-site-header-message\"></ng-content>\n<ng-content select=\"ecl-site-header-banner-top\"></ng-content>\n\n<div *ngIf=\"siteName\" class=\"ecl-site-header__banner\">\n <div class=\"ecl-container\">\n <div class=\"ecl-site-header__site-name\">{{ siteName }}</div>\n <ng-content select=\"[eclSiteHeaderCta]\"></ng-content>\n </div>\n</div>\n\n<ng-content select=\"ecl-menu\"></ng-content>\n\n<!-- @deprecated language list is replaced with site header language -->\n<ng-content select=\"ecl-language-list\"></ng-content>\n", styles: [":host{display:block}\n"], dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.EclLinkDirective, selector: "[eclLink]", inputs: ["variant", "isNegative", "isNoVisited"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }] }); }
83
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.4", type: EclSiteHeaderComponent, selector: "ecl-site-header", inputs: { logoUrl: "logoUrl", siteName: "siteName", languageCode: "languageCode" }, outputs: { logoClick: "logoClick", languageClick: "languageClick" }, host: { properties: { "class": "this.cssClasses", "attr.role": "this.role" } }, queries: [{ propertyName: "eclLoginComponent", first: true, predicate: EclSiteHeaderLoginComponent, descendants: true }, { propertyName: "eclSearchComponent", first: true, predicate: EclSiteHeaderSearchComponent, descendants: true }, { propertyName: "eclLanguageComponent", first: true, predicate: EclSiteHeaderLanguageComponent, descendants: true }], viewQueries: [{ propertyName: "topContainerElement", first: true, predicate: ["topContainer"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"ecl-site-header__header\">\n <div class=\"ecl-site-header__container ecl-container\">\n <div #topContainer class=\"ecl-site-header__top\">\n <a eclLink \n variant=\"standalone\" \n class=\"ecl-site-header__logo-link\"\n href=\"https://ec.europa.eu/info/index_{{ getEULanguageCode() }}\"\n (click)=\"onECLogoClick($event)\" \n [attr.aria-label]=\"'ecl.footer.EUROPEAN-COMMISSION' | translate\">\n\n <ng-content select=\"[eclSiteHeaderEnvironment]\"></ng-content>\n\n <ng-container *ngIf=\"eclThemeService.isEC$ | async\">\n <img alt=\"European Commission logo\" \n [attr.title]=\"'ecl.footer.EUROPEAN-COMMISSION' | translate\" \n class=\"ecl-site-header__logo-image ecl-site-header__logo-image-desktop\" \n src=\"./assets/images/ecl/ec/logo/logo-ec--{{ getEULanguageCode() }}.svg\"/>\n </ng-container>\n\n <ng-container *ngIf=\"eclThemeService.isEU$ | async\">\n <img alt=\"European Union flag\" \n [attr.title]=\"'ecl.footer.EUROPEAN-UNION' | translate\" \n class=\"ecl-site-header__logo-image ecl-site-header__logo-image-mobile\" \n src=\"./assets/images/ecl/eu/logo/condensed-version/positive/logo-eu--{{ getEULanguageCode() }}.svg\"/>\n <img alt=\"European Union flag\" \n [attr.title]=\"'ecl.footer.EUROPEAN-UNION' | translate\" \n class=\"ecl-site-header__logo-image ecl-site-header__logo-image-desktop\" \n src=\"./assets/images/ecl/eu/logo/standard-version/positive/logo-eu--{{ getEULanguageCode() }}.svg\"/>\n </ng-container>\n </a>\n <ng-content select=\"ecl-site-header-action\"></ng-content>\n </div>\n </div>\n</div>\n\n<ng-content select=\"ecl-site-header-message\"></ng-content>\n<ng-content select=\"ecl-site-header-banner-top\"></ng-content>\n\n<div *ngIf=\"siteName\" class=\"ecl-site-header__banner\">\n <div class=\"ecl-container\">\n <div class=\"ecl-site-header__site-name\">{{ siteName }}</div>\n <ng-content select=\"[eclSiteHeaderCta]\"></ng-content>\n </div>\n</div>\n\n<ng-content select=\"ecl-menu\"></ng-content>\n\n<!-- @deprecated language list is replaced with site header language -->\n<ng-content select=\"ecl-language-list\"></ng-content>\n", styles: [":host{display:block}\n"], dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.EclLinkDirective, selector: "[eclLink]", inputs: ["variant", "isNegative", "isNoVisited"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }] }); }
87
84
  }
88
85
  __decorate([
89
86
  coerceElement
90
87
  ], EclSiteHeaderComponent.prototype, "topContainerElement", void 0);
91
88
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.4", ngImport: i0, type: EclSiteHeaderComponent, decorators: [{
92
89
  type: Component,
93
- args: [{ selector: 'ecl-site-header', template: "<div class=\"ecl-site-header__header\">\n <div class=\"ecl-site-header__container ecl-container\">\n <div #topContainer class=\"ecl-site-header__top\">\n <a eclLink \n variant=\"standalone\" \n class=\"ecl-site-header__logo-link\"\n href=\"https://ec.europa.eu/info/index_{{ languageCode }}\"\n (click)=\"onECLogoClick($event)\" \n [attr.aria-label]=\"'ecl.footer.EUROPEAN-COMMISSION' | translate\">\n\n <ng-content select=\"[eclSiteHeaderEnvironment]\"></ng-content>\n\n <ng-container *ngIf=\"eclThemeService.isEC$ | async\">\n <img alt=\"European Commission logo\" \n [attr.title]=\"'ecl.footer.EUROPEAN-COMMISSION' | translate\" \n class=\"ecl-site-header__logo-image ecl-site-header__logo-image-desktop\" \n src=\"./assets/images/ecl/ec/logo/logo-ec--{{ languageCode }}.svg\"/>\n </ng-container>\n\n <ng-container *ngIf=\"eclThemeService.isEU$ | async\">\n <img alt=\"European Union flag\" \n [attr.title]=\"'ecl.footer.EUROPEAN-UNION' | translate\" \n class=\"ecl-site-header__logo-image ecl-site-header__logo-image-mobile\" \n src=\"./assets/images/ecl/eu/logo/condensed-version/positive/logo-eu--{{ languageCode}}.svg\"/>\n <img alt=\"European Union flag\" \n [attr.title]=\"'ecl.footer.EUROPEAN-UNION' | translate\" \n class=\"ecl-site-header__logo-image ecl-site-header__logo-image-desktop\" \n src=\"./assets/images/ecl/eu/logo/standard-version/positive/logo-eu--{{ languageCode}}.svg\"/>\n </ng-container>\n </a>\n <ng-content select=\"ecl-site-header-action\"></ng-content>\n </div>\n </div>\n</div>\n\n<ng-content select=\"ecl-site-header-message\"></ng-content>\n<ng-content select=\"ecl-site-header-banner-top\"></ng-content>\n\n<div *ngIf=\"siteName\" class=\"ecl-site-header__banner\">\n <div class=\"ecl-container\">\n <div class=\"ecl-site-header__site-name\">{{ siteName }}</div>\n <ng-content select=\"[eclSiteHeaderCta]\"></ng-content>\n </div>\n</div>\n\n<ng-content select=\"ecl-menu\"></ng-content>\n\n<!-- @deprecated language list is replaced with site header language -->\n<ng-content select=\"ecl-language-list\"></ng-content>\n", styles: [":host{display:block}\n"] }]
90
+ args: [{ selector: 'ecl-site-header', template: "<div class=\"ecl-site-header__header\">\n <div class=\"ecl-site-header__container ecl-container\">\n <div #topContainer class=\"ecl-site-header__top\">\n <a eclLink \n variant=\"standalone\" \n class=\"ecl-site-header__logo-link\"\n href=\"https://ec.europa.eu/info/index_{{ getEULanguageCode() }}\"\n (click)=\"onECLogoClick($event)\" \n [attr.aria-label]=\"'ecl.footer.EUROPEAN-COMMISSION' | translate\">\n\n <ng-content select=\"[eclSiteHeaderEnvironment]\"></ng-content>\n\n <ng-container *ngIf=\"eclThemeService.isEC$ | async\">\n <img alt=\"European Commission logo\" \n [attr.title]=\"'ecl.footer.EUROPEAN-COMMISSION' | translate\" \n class=\"ecl-site-header__logo-image ecl-site-header__logo-image-desktop\" \n src=\"./assets/images/ecl/ec/logo/logo-ec--{{ getEULanguageCode() }}.svg\"/>\n </ng-container>\n\n <ng-container *ngIf=\"eclThemeService.isEU$ | async\">\n <img alt=\"European Union flag\" \n [attr.title]=\"'ecl.footer.EUROPEAN-UNION' | translate\" \n class=\"ecl-site-header__logo-image ecl-site-header__logo-image-mobile\" \n src=\"./assets/images/ecl/eu/logo/condensed-version/positive/logo-eu--{{ getEULanguageCode() }}.svg\"/>\n <img alt=\"European Union flag\" \n [attr.title]=\"'ecl.footer.EUROPEAN-UNION' | translate\" \n class=\"ecl-site-header__logo-image ecl-site-header__logo-image-desktop\" \n src=\"./assets/images/ecl/eu/logo/standard-version/positive/logo-eu--{{ getEULanguageCode() }}.svg\"/>\n </ng-container>\n </a>\n <ng-content select=\"ecl-site-header-action\"></ng-content>\n </div>\n </div>\n</div>\n\n<ng-content select=\"ecl-site-header-message\"></ng-content>\n<ng-content select=\"ecl-site-header-banner-top\"></ng-content>\n\n<div *ngIf=\"siteName\" class=\"ecl-site-header__banner\">\n <div class=\"ecl-container\">\n <div class=\"ecl-site-header__site-name\">{{ siteName }}</div>\n <ng-content select=\"[eclSiteHeaderCta]\"></ng-content>\n </div>\n</div>\n\n<ng-content select=\"ecl-menu\"></ng-content>\n\n<!-- @deprecated language list is replaced with site header language -->\n<ng-content select=\"ecl-language-list\"></ng-content>\n", styles: [":host{display:block}\n"] }]
94
91
  }], ctorParameters: function () { return [{ type: i1.EclLanguageService }, { type: i2.TranslateService }, { type: i3.EclThemeService }]; }, propDecorators: { logoUrl: [{
95
92
  type: Input
96
93
  }], cssClasses: [{
@@ -120,4 +117,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.4", ngImpor
120
117
  }], languageCode: [{
121
118
  type: Input
122
119
  }] } });
123
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNsLXNpdGUtaGVhZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9lY2wtc2l0ZS1oZWFkZXIvZWNsLXNpdGUtaGVhZGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9lY2wtc2l0ZS1oZWFkZXIvZWNsLXNpdGUtaGVhZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBRUgsU0FBUyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBYSxNQUFNLEVBQUUsU0FBUyxFQUMxRixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRTFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUcxRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsK0JBQStCLEVBQUUsOEJBQThCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUNoSSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUN0RixPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQzs7Ozs7OztBQUV6RixNQUFNLE9BQU8sMkJBQTRCLFNBQVEsWUFBWTtDQUFJO0FBV2pFLE1BQU0sT0FBTyxzQkFBdUIsU0FBUSxnQkFBZ0I7SUFHeEQsSUFDSSxVQUFVO1FBQ1YsT0FBTztZQUNILEtBQUssQ0FBQyxhQUFhLENBQUMsaUJBQWlCLENBQUM7U0FDekMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDdkIsQ0FBQztJ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QU8sWUFBWSxDQUFDO0lBQ3hCLENBQUM7aUlBNUZRLHNCQUFzQjtxSEFBdEIsc0JBQXNCLCtVQW1CakIsMkJBQTJCLHFGQUMzQiw0QkFBNEIsdUZBQzVCLDhCQUE4Qiw0TEMvQ2hELG0vRUFpREE7O0FETm1CO0lBQWQsYUFBYTttRUFBNkQ7MkZBakJsRSxzQkFBc0I7a0JBVGxDLFNBQVM7K0JBQ0ksaUJBQWlCO3NLQVNsQixPQUFPO3NCQUFmLEtBQUs7Z0JBR0YsVUFBVTtzQkFEYixXQUFXO3VCQUFDLE9BQU87Z0JBT00sSUFBSTtzQkFBN0IsV0FBVzt1QkFBQyxXQUFXO2dCQUVmLFFBQVE7c0JBQWhCLEtBQUs7Z0JBRUksU0FBUztzQkFBbEIsTUFBTTtnQkFDRyxhQUFhO3NCQUF0QixNQUFNO2dCQUVtQyxtQkFBbUI7c0JBQTdDLFNBQVM7dUJBQUMsY0FBYztnQkFFRyxpQkFBaUI7c0JBQTNELFlBQVk7dUJBQUMsMkJBQTJCO2dCQUNHLGtCQUFrQjtzQkFBN0QsWUFBWTt1QkFBQyw0QkFBNEI7Z0JBQ0ksb0JBQW9CO3NCQUFqRSxZQUFZO3VCQUFDLDhCQUE4QjtnQkFFbkMsWUFBWTtzQkFBcEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgICBDb21wb25lbnQsIENvbnRlbnRDaGlsZCwgRXZlbnRFbWl0dGVyLCBIb3N0QmluZGluZywgSW5wdXQsIE9uRGVzdHJveSwgT3V0cHV0LCBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBjb2VyY2VFbGVtZW50IH0gZnJvbSAnQGV1aS9iYXNlJztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRWNsQmFzZUV2ZW50IH0gZnJvbSAnLi4vLi4vbW9kZWwvZWNsLWJhc2UuZXZlbnQnO1xuaW1wb3J0IHsgRWNsVGhlbWVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMnO1xuaW1wb3J0IHsgRWNsTGFuZ3VhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZWNsLWxhbmd1YWdlLnNlcnZpY2UnO1xuaW1wb3J0IHsgRUNMQmFzZURpcmVjdGl2ZSB9IGZyb20gJy4uL2VjbC1iYXNlLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBFY2xTaXRlSGVhZGVyTGFuZ3VhZ2VDbGlja0V2ZW50LCBFY2xTaXRlSGVhZGVyTGFuZ3VhZ2VDb21wb25lbnQgfSBmcm9tICcuL2xhbmd1YWdlL2VjbC1zaXRlLWhlYWRlci1sYW5ndWFnZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgRWNsU2l0ZUhlYWRlckxvZ2luQ29tcG9uZW50IH0gZnJvbSAnLi9sb2dpbi9lY2wtc2l0ZS1oZWFkZXItbG9naW4uY29tcG9uZW50JztcbmltcG9ydCB7IEVjbFNpdGVIZWFkZXJTZWFyY2hDb21wb25lbnQgfSBmcm9tICcuL3NlYXJjaC9lY2wtc2l0ZS1oZWFkZXItc2VhcmNoLmNvbXBvbmVudCc7XG5cbmV4cG9ydCBjbGFzcyBFY2xTaXRlSGVhZGVyTG9nb0NsaWNrRXZlbnQgZXh0ZW5kcyBFY2xCYXNlRXZlbnQgeyB9XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZWNsLXNpdGUtaGVhZGVyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZWNsLXNpdGUtaGVhZGVyLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZXM6IFtgXG4gICAgICAgIDpob3N0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG4gICAgYF0sXG59KVxuZXhwb3J0IGNsYXNzIEVjbFNpdGVIZWFkZXJDb21wb25lbnQgZXh0ZW5kcyBFQ0xCYXNlRGlyZWN0aXZlIGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCwgT25EZXN0cm95IHtcbiAgICBASW5wdXQoKSBsb2dvVXJsOiBzdHJpbmc7XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcbiAgICBnZXQgY3NzQ2xhc3NlcygpIHtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIHN1cGVyLmdldENzc0NsYXNzZXMoJ2VjbC1zaXRlLWhlYWRlcicpLFxuICAgICAgICBdLmpvaW4oJyAnKS50cmltKCk7XG4gICAgfVxuXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLnJvbGUnKSByb2xlID0gJ2Jhbm5lcic7XG5cbiAgICBASW5wdXQoKSBzaXRlTmFtZTogc3RyaW5nO1xuXG4gICAgQE91dHB1dCgpIGxvZ29DbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8RWNsU2l0ZUhlYWRlckxvZ29DbGlja0V2ZW50PigpO1xuICAgIEBPdXRwdXQoKSBsYW5ndWFnZUNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxFY2xTaXRlSGVhZGVyTGFuZ3VhZ2VDbGlja0V2ZW50PigpO1xuXG4gICAgQGNvZXJjZUVsZW1lbnQgQFZpZXdDaGlsZCgndG9wQ29udGFpbmVyJykgdG9wQ29udGFpbmVyRWxlbWVudDogSFRNTEVsZW1lbnQ7XG5cbiAgICBAQ29udGVudENoaWxkKEVjbFNpdGVIZWFkZXJMb2dpbkNvbXBvbmVudCkgZWNsTG9naW5Db21wb25lbnQ6IEVjbFNpdGVIZWFkZXJMb2dpbkNvbXBvbmVudFxuICAgIEBDb250ZW50Q2hpbGQoRWNsU2l0ZUhlYWRlclNlYXJjaENvbXBvbmVudCkgZWNsU2VhcmNoQ29tcG9uZW50OiBFY2xTaXRlSGVhZGVyU2VhcmNoQ29tcG9uZW50XG4gICAgQENvbnRlbnRDaGlsZChFY2xTaXRlSGVhZGVyTGFuZ3VhZ2VDb21wb25lbnQpIGVjbExhbmd1YWdlQ29tcG9uZW50OiBFY2xTaXRlSGVhZGVyTGFuZ3VhZ2VDb21wb25lbnRcblxuICAgIEBJbnB1dCgpIGxhbmd1YWdlQ29kZTogc3RyaW5nID0gJ2VuJztcblxuICAgIHByb3RlY3RlZCBkZXN0cm95JDogU3ViamVjdDxib29sZWFuPiA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJvdGVjdGVkIGVjbExhbmd1YWdlU2VydmljZTogRWNsTGFuZ3VhZ2VTZXJ2aWNlLFxuICAgICAgICBwcm90ZWN0ZWQgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICAgICAgcHVibGljIGVjbFRoZW1lU2VydmljZTogRWNsVGhlbWVTZXJ2aWNlXG4gICAgICAgICkge1xuICAgICAgICBzdXBlcigpO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJDb250ZW50SW5pdCgpIHtcbiAgICAgICAgaWYgKHRoaXMuZWNsTG9naW5Db21wb25lbnQgJiYgdGhpcy5lY2xTZWFyY2hDb21wb25lbnQpIHtcbiAgICAgICAgICAgIHRoaXMuZWNsTG9naW5Db21wb25lbnRcbiAgICAgICAgICAgICAgICAubG9naW5Cb3hUb2dnbGVcbiAgICAgICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZShldnQgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmVjbFNlYXJjaENvbXBvbmVudC5pc1NlYXJjaEJveEFjdGl2ZSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICB0aGlzLmVjbFNlYXJjaENvbXBvbmVudFxuICAgICAgICAgICAgICAgIC5zZWFyY2hUb2dnbGVcbiAgICAgICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZShldnQgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmVjbExvZ2luQ29tcG9uZW50LmlzTG9naW5Cb3hBY3RpdmUgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmVjbExhbmd1YWdlQ29tcG9uZW50KSB7XG4gICAgICAgICAgICB0aGlzLmVjbExhbmd1YWdlQ29tcG9uZW50XG4gICAgICAgICAgICAgICAgLmxhbmd1YWdlQ2xpY2tcbiAgICAgICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZShldnQgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmxhbmd1YWdlQ2xpY2submV4dChuZXcgRWNsU2l0ZUhlYWRlckxhbmd1YWdlQ2xpY2tFdmVudCgpKTtcbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgdGhpcy5lY2xMYW5ndWFnZUNvbXBvbmVudFxuICAgICAgICAgICAgICAgIC5sYW5ndWFnZVNlbGVjdGVkXG4gICAgICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoZXZ0ID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5sYW5ndWFnZUNvZGUgPSB0aGlzLmdldEVVTGFuZ3VhZ2VDb2RlKGV2dC5sYW5ndWFnZT8uY29kZSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZih0aGlzLmVjbExhbmd1YWdlQ29tcG9uZW50KSB7XG4gICAgICAgICAgICB0aGlzLmxhbmd1YWdlQ29kZSA9IHRoaXMuZ2V0RVVMYW5ndWFnZUNvZGUodGhpcy5lY2xMYW5ndWFnZUNvbXBvbmVudD8ubGFuZ3VhZ2VDb2RlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLm5leHQodHJ1ZSk7XG4gICAgICAgIHRoaXMuZGVzdHJveSQudW5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICBvbkVDTG9nb0NsaWNrKGV2dDogTW91c2VFdmVudCkge1xuICAgICAgICBjb25zdCBldmVudCA9IG5ldyBFY2xTaXRlSGVhZGVyTG9nb0NsaWNrRXZlbnQoKTtcbiAgICAgICAgdGhpcy5sb2dvQ2xpY2submV4dChldmVudCk7XG4gICAgICAgIGlmIChldmVudC5kZWZhdWx0UHJldmVudGVkKSB7XG4gICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0RVVMYW5ndWFnZUNvZGUobGFuZ3VhZ2VDb2RlOiBzdHJpbmcpIHtcbiAgICAgICAgaWYoIXRoaXMuZWNsTGFuZ3VhZ2VTZXJ2aWNlLmlzRXVMYW5ndWFnZShsYW5ndWFnZUNvZGUpKSB7XG4gICAgICAgICAgICByZXR1cm4gJ2VuJztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBsYW5ndWFnZUNvZGU7XG4gICAgfVxuXG59XG4iLCI8ZGl2IGNsYXNzPVwiZWNsLXNpdGUtaGVhZGVyX19oZWFkZXJcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZWNsLXNpdGUtaGVhZGVyX19jb250YWluZXIgZWNsLWNvbnRhaW5lclwiPlxuICAgICAgICA8ZGl2ICN0b3BDb250YWluZXIgY2xhc3M9XCJlY2wtc2l0ZS1oZWFkZXJfX3RvcFwiPlxuICAgICAgICAgICAgPGEgZWNsTGluayBcbiAgICAgICAgICAgICAgICB2YXJpYW50PVwic3RhbmRhbG9uZVwiIFxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZWNsLXNpdGUtaGVhZGVyX19sb2dvLWxpbmtcIlxuICAgICAgICAgICAgICAgIGhyZWY9XCJodHRwczovL2VjLmV1cm9wYS5ldS9pbmZvL2luZGV4X3t7IGxhbmd1YWdlQ29kZSB9fVwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uRUNMb2dvQ2xpY2soJGV2ZW50KVwiIFxuICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ2VjbC5mb290ZXIuRVVST1BFQU4tQ09NTUlTU0lPTicgfCB0cmFuc2xhdGVcIj5cblxuICAgICAgICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltlY2xTaXRlSGVhZGVyRW52aXJvbm1lbnRdXCI+PC9uZy1jb250ZW50PlxuXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImVjbFRoZW1lU2VydmljZS5pc0VDJCB8IGFzeW5jXCI+XG4gICAgICAgICAgICAgICAgICAgIDxpbWcgYWx0PVwiRXVyb3BlYW4gQ29tbWlzc2lvbiBsb2dvXCIgXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci50aXRsZV09XCInZWNsLmZvb3Rlci5FVVJPUEVBTi1DT01NSVNTSU9OJyB8IHRyYW5zbGF0ZVwiIFxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJlY2wtc2l0ZS1oZWFkZXJfX2xvZ28taW1hZ2UgZWNsLXNpdGUtaGVhZGVyX19sb2dvLWltYWdlLWRlc2t0b3BcIiBcbiAgICAgICAgICAgICAgICAgICAgICAgIHNyYz1cIi4vYXNzZXRzL2ltYWdlcy9lY2wvZWMvbG9nby9sb2dvLWVjLS17eyBsYW5ndWFnZUNvZGUgfX0uc3ZnXCIvPlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImVjbFRoZW1lU2VydmljZS5pc0VVJCB8IGFzeW5jXCI+XG4gICAgICAgICAgICAgICAgICAgIDxpbWcgYWx0PVwiRXVyb3BlYW4gVW5pb24gZmxhZ1wiIFxuICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIudGl0bGVdPVwiJ2VjbC5mb290ZXIuRVVST1BFQU4tVU5JT04nIHwgdHJhbnNsYXRlXCIgXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImVjbC1zaXRlLWhlYWRlcl9fbG9nby1pbWFnZSBlY2wtc2l0ZS1oZWFkZXJfX2xvZ28taW1hZ2UtbW9iaWxlXCIgXG4gICAgICAgICAgICAgICAgICAgICAgICBzcmM9XCIuL2Fzc2V0cy9pbWFnZXMvZWNsL2V1L2xvZ28vY29uZGVuc2VkLXZlcnNpb24vcG9zaXRpdmUvbG9nby1ldS0te3sgbGFuZ3VhZ2VDb2RlfX0uc3ZnXCIvPlxuICAgICAgICAgICAgICAgICAgICA8aW1nIGFsdD1cIkV1cm9wZWFuIFVuaW9uIGZsYWdcIiBcbiAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLnRpdGxlXT1cIidlY2wuZm9vdGVyLkVVUk9QRUFOLVVOSU9OJyB8IHRyYW5zbGF0ZVwiIFxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJlY2wtc2l0ZS1oZWFkZXJfX2xvZ28taW1hZ2UgZWNsLXNpdGUtaGVhZGVyX19sb2dvLWltYWdlLWRlc2t0b3BcIiBcbiAgICAgICAgICAgICAgICAgICAgICAgIHNyYz1cIi4vYXNzZXRzL2ltYWdlcy9lY2wvZXUvbG9nby9zdGFuZGFyZC12ZXJzaW9uL3Bvc2l0aXZlL2xvZ28tZXUtLXt7IGxhbmd1YWdlQ29kZX19LnN2Z1wiLz5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImVjbC1zaXRlLWhlYWRlci1hY3Rpb25cIj48L25nLWNvbnRlbnQ+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9kaXY+XG5cbjxuZy1jb250ZW50IHNlbGVjdD1cImVjbC1zaXRlLWhlYWRlci1tZXNzYWdlXCI+PC9uZy1jb250ZW50PlxuPG5nLWNvbnRlbnQgc2VsZWN0PVwiZWNsLXNpdGUtaGVhZGVyLWJhbm5lci10b3BcIj48L25nLWNvbnRlbnQ+XG5cbjxkaXYgKm5nSWY9XCJzaXRlTmFtZVwiIGNsYXNzPVwiZWNsLXNpdGUtaGVhZGVyX19iYW5uZXJcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZWNsLWNvbnRhaW5lclwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZWNsLXNpdGUtaGVhZGVyX19zaXRlLW5hbWVcIj57eyBzaXRlTmFtZSB9fTwvZGl2PlxuICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbZWNsU2l0ZUhlYWRlckN0YV1cIj48L25nLWNvbnRlbnQ+XG4gICAgPC9kaXY+XG48L2Rpdj5cblxuPG5nLWNvbnRlbnQgc2VsZWN0PVwiZWNsLW1lbnVcIj48L25nLWNvbnRlbnQ+XG5cbjwhLS0gQGRlcHJlY2F0ZWQgbGFuZ3VhZ2UgbGlzdCBpcyByZXBsYWNlZCB3aXRoIHNpdGUgaGVhZGVyIGxhbmd1YWdlICAtLT5cbjxuZy1jb250ZW50IHNlbGVjdD1cImVjbC1sYW5ndWFnZS1saXN0XCI+PC9uZy1jb250ZW50PlxuIl19
120
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNsLXNpdGUtaGVhZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9lY2wtc2l0ZS1oZWFkZXIvZWNsLXNpdGUtaGVhZGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9lY2wtc2l0ZS1oZWFkZXIvZWNsLXNpdGUtaGVhZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBRUgsU0FBUyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBYSxNQUFNLEVBQUUsU0FBUyxFQUMxRixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRTFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUcxRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsK0JBQStCLEVBQUUsOEJBQThCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUNoSSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUN0RixPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQzs7Ozs7OztBQUV6RixNQUFNLE9BQU8sMkJBQTRCLFNBQVEsWUFBWTtDQUFJO0FBV2pFLE1BQU0sT0FBTyxzQkFBdUIsU0FBUSxnQkFBZ0I7SUFHeEQsSUFDSSxVQUFVO1FBQ1YsT0FBTztZQUNILEtBQUssQ0FBQyxhQUFhLENBQUMsaUJBQWlCLENBQUM7U0FDekMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDdkIsQ0FBQztJ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LDRMQy9DaEQsa2hGQWlEQTs7QURObUI7SUFBZCxhQUFhO21FQUE2RDsyRkFqQmxFLHNCQUFzQjtrQkFUbEMsU0FBUzsrQkFDSSxpQkFBaUI7c0tBU2xCLE9BQU87c0JBQWYsS0FBSztnQkFHRixVQUFVO3NCQURiLFdBQVc7dUJBQUMsT0FBTztnQkFPTSxJQUFJO3NCQUE3QixXQUFXO3VCQUFDLFdBQVc7Z0JBRWYsUUFBUTtzQkFBaEIsS0FBSztnQkFFSSxTQUFTO3NCQUFsQixNQUFNO2dCQUNHLGFBQWE7c0JBQXRCLE1BQU07Z0JBRW1DLG1CQUFtQjtzQkFBN0MsU0FBUzt1QkFBQyxjQUFjO2dCQUVHLGlCQUFpQjtzQkFBM0QsWUFBWTt1QkFBQywyQkFBMkI7Z0JBQ0csa0JBQWtCO3NCQUE3RCxZQUFZO3VCQUFDLDRCQUE0QjtnQkFDSSxvQkFBb0I7c0JBQWpFLFlBQVk7dUJBQUMsOEJBQThCO2dCQUVuQyxZQUFZO3NCQUFwQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBBZnRlckNvbnRlbnRJbml0LFxuICAgIENvbXBvbmVudCwgQ29udGVudENoaWxkLCBFdmVudEVtaXR0ZXIsIEhvc3RCaW5kaW5nLCBJbnB1dCwgT25EZXN0cm95LCBPdXRwdXQsIFZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGNvZXJjZUVsZW1lbnQgfSBmcm9tICdAZXVpL2Jhc2UnO1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgU3ViamVjdCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBFY2xCYXNlRXZlbnQgfSBmcm9tICcuLi8uLi9tb2RlbC9lY2wtYmFzZS5ldmVudCc7XG5pbXBvcnQgeyBFY2xUaGVtZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcyc7XG5pbXBvcnQgeyBFY2xMYW5ndWFnZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9lY2wtbGFuZ3VhZ2Uuc2VydmljZSc7XG5pbXBvcnQgeyBFQ0xCYXNlRGlyZWN0aXZlIH0gZnJvbSAnLi4vZWNsLWJhc2UuZGlyZWN0aXZlJztcbmltcG9ydCB7IEVjbFNpdGVIZWFkZXJMYW5ndWFnZUNsaWNrRXZlbnQsIEVjbFNpdGVIZWFkZXJMYW5ndWFnZUNvbXBvbmVudCB9IGZyb20gJy4vbGFuZ3VhZ2UvZWNsLXNpdGUtaGVhZGVyLWxhbmd1YWdlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBFY2xTaXRlSGVhZGVyTG9naW5Db21wb25lbnQgfSBmcm9tICcuL2xvZ2luL2VjbC1zaXRlLWhlYWRlci1sb2dpbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgRWNsU2l0ZUhlYWRlclNlYXJjaENvbXBvbmVudCB9IGZyb20gJy4vc2VhcmNoL2VjbC1zaXRlLWhlYWRlci1zZWFyY2guY29tcG9uZW50JztcblxuZXhwb3J0IGNsYXNzIEVjbFNpdGVIZWFkZXJMb2dvQ2xpY2tFdmVudCBleHRlbmRzIEVjbEJhc2VFdmVudCB7IH1cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdlY2wtc2l0ZS1oZWFkZXInLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9lY2wtc2l0ZS1oZWFkZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlczogW2BcbiAgICAgICAgOmhvc3Qge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cbiAgICBgXSxcbn0pXG5leHBvcnQgY2xhc3MgRWNsU2l0ZUhlYWRlckNvbXBvbmVudCBleHRlbmRzIEVDTEJhc2VEaXJlY3RpdmUgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0LCBPbkRlc3Ryb3kge1xuICAgIEBJbnB1dCgpIGxvZ29Vcmw6IHN0cmluZztcblxuICAgIEBIb3N0QmluZGluZygnY2xhc3MnKVxuICAgIGdldCBjc3NDbGFzc2VzKCkge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgc3VwZXIuZ2V0Q3NzQ2xhc3NlcygnZWNsLXNpdGUtaGVhZGVyJyksXG4gICAgICAgIF0uam9pbignICcpLnRyaW0oKTtcbiAgICB9XG5cbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIucm9sZScpIHJvbGUgPSAnYmFubmVyJztcblxuICAgIEBJbnB1dCgpIHNpdGVOYW1lOiBzdHJpbmc7XG5cbiAgICBAT3V0cHV0KCkgbG9nb0NsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxFY2xTaXRlSGVhZGVyTG9nb0NsaWNrRXZlbnQ+KCk7XG4gICAgQE91dHB1dCgpIGxhbmd1YWdlQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPEVjbFNpdGVIZWFkZXJMYW5ndWFnZUNsaWNrRXZlbnQ+KCk7XG5cbiAgICBAY29lcmNlRWxlbWVudCBAVmlld0NoaWxkKCd0b3BDb250YWluZXInKSB0b3BDb250YWluZXJFbGVtZW50OiBIVE1MRWxlbWVudDtcblxuICAgIEBDb250ZW50Q2hpbGQoRWNsU2l0ZUhlYWRlckxvZ2luQ29tcG9uZW50KSBlY2xMb2dpbkNvbXBvbmVudDogRWNsU2l0ZUhlYWRlckxvZ2luQ29tcG9uZW50XG4gICAgQENvbnRlbnRDaGlsZChFY2xTaXRlSGVhZGVyU2VhcmNoQ29tcG9uZW50KSBlY2xTZWFyY2hDb21wb25lbnQ6IEVjbFNpdGVIZWFkZXJTZWFyY2hDb21wb25lbnRcbiAgICBAQ29udGVudENoaWxkKEVjbFNpdGVIZWFkZXJMYW5ndWFnZUNvbXBvbmVudCkgZWNsTGFuZ3VhZ2VDb21wb25lbnQ6IEVjbFNpdGVIZWFkZXJMYW5ndWFnZUNvbXBvbmVudFxuXG4gICAgQElucHV0KCkgbGFuZ3VhZ2VDb2RlOiBzdHJpbmcgPSAnZW4nO1xuXG4gICAgcHJvdGVjdGVkIGRlc3Ryb3kkOiBTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcm90ZWN0ZWQgZWNsTGFuZ3VhZ2VTZXJ2aWNlOiBFY2xMYW5ndWFnZVNlcnZpY2UsXG4gICAgICAgIHByb3RlY3RlZCB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgICAgICBwdWJsaWMgZWNsVGhlbWVTZXJ2aWNlOiBFY2xUaGVtZVNlcnZpY2VcbiAgICAgICAgKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxuXG4gICAgbmdBZnRlckNvbnRlbnRJbml0KCkge1xuICAgICAgICBpZiAodGhpcy5lY2xMb2dpbkNvbXBvbmVudCAmJiB0aGlzLmVjbFNlYXJjaENvbXBvbmVudCkge1xuICAgICAgICAgICAgdGhpcy5lY2xMb2dpbkNvbXBvbmVudFxuICAgICAgICAgICAgICAgIC5sb2dpbkJveFRvZ2dsZVxuICAgICAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKGV2dCA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZWNsU2VhcmNoQ29tcG9uZW50LmlzU2VhcmNoQm94QWN0aXZlID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIHRoaXMuZWNsU2VhcmNoQ29tcG9uZW50XG4gICAgICAgICAgICAgICAgLnNlYXJjaFRvZ2dsZVxuICAgICAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKGV2dCA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZWNsTG9naW5Db21wb25lbnQuaXNMb2dpbkJveEFjdGl2ZSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuZWNsTGFuZ3VhZ2VDb21wb25lbnQpIHtcbiAgICAgICAgICAgIHRoaXMuZWNsTGFuZ3VhZ2VDb21wb25lbnRcbiAgICAgICAgICAgICAgICAubGFuZ3VhZ2VDbGlja1xuICAgICAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKGV2dCA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubGFuZ3VhZ2VDbGljay5uZXh0KG5ldyBFY2xTaXRlSGVhZGVyTGFuZ3VhZ2VDbGlja0V2ZW50KCkpO1xuICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICB0aGlzLmVjbExhbmd1YWdlQ29tcG9uZW50XG4gICAgICAgICAgICAgICAgLmxhbmd1YWdlU2VsZWN0ZWRcbiAgICAgICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZShldnQgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmxhbmd1YWdlQ29kZSA9IGV2dC5sYW5ndWFnZT8uY29kZTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmKHRoaXMuZWNsTGFuZ3VhZ2VDb21wb25lbnQpIHtcbiAgICAgICAgICAgIHRoaXMubGFuZ3VhZ2VDb2RlID0gdGhpcy5lY2xMYW5ndWFnZUNvbXBvbmVudD8ubGFuZ3VhZ2VDb2RlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIHRoaXMuZGVzdHJveSQubmV4dCh0cnVlKTtcbiAgICAgICAgdGhpcy5kZXN0cm95JC51bnN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIG9uRUNMb2dvQ2xpY2soZXZ0OiBNb3VzZUV2ZW50KSB7XG4gICAgICAgIGNvbnN0IGV2ZW50ID0gbmV3IEVjbFNpdGVIZWFkZXJMb2dvQ2xpY2tFdmVudCgpO1xuICAgICAgICB0aGlzLmxvZ29DbGljay5uZXh0KGV2ZW50KTtcbiAgICAgICAgaWYgKGV2ZW50LmRlZmF1bHRQcmV2ZW50ZWQpIHtcbiAgICAgICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGdldEVVTGFuZ3VhZ2VDb2RlKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmVjbExhbmd1YWdlU2VydmljZS5nZXRFVUxhbmd1YWdlT3JGYWxsYmFjayh0aGlzLmxhbmd1YWdlQ29kZSkuY29kZTtcbiAgICB9XG5cbn1cbiIsIjxkaXYgY2xhc3M9XCJlY2wtc2l0ZS1oZWFkZXJfX2hlYWRlclwiPlxuICAgIDxkaXYgY2xhc3M9XCJlY2wtc2l0ZS1oZWFkZXJfX2NvbnRhaW5lciBlY2wtY29udGFpbmVyXCI+XG4gICAgICAgIDxkaXYgI3RvcENvbnRhaW5lciBjbGFzcz1cImVjbC1zaXRlLWhlYWRlcl9fdG9wXCI+XG4gICAgICAgICAgICA8YSBlY2xMaW5rIFxuICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJzdGFuZGFsb25lXCIgXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJlY2wtc2l0ZS1oZWFkZXJfX2xvZ28tbGlua1wiXG4gICAgICAgICAgICAgICAgaHJlZj1cImh0dHBzOi8vZWMuZXVyb3BhLmV1L2luZm8vaW5kZXhfe3sgZ2V0RVVMYW5ndWFnZUNvZGUoKSB9fVwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uRUNMb2dvQ2xpY2soJGV2ZW50KVwiIFxuICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ2VjbC5mb290ZXIuRVVST1BFQU4tQ09NTUlTU0lPTicgfCB0cmFuc2xhdGVcIj5cblxuICAgICAgICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltlY2xTaXRlSGVhZGVyRW52aXJvbm1lbnRdXCI+PC9uZy1jb250ZW50PlxuXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImVjbFRoZW1lU2VydmljZS5pc0VDJCB8IGFzeW5jXCI+XG4gICAgICAgICAgICAgICAgICAgIDxpbWcgYWx0PVwiRXVyb3BlYW4gQ29tbWlzc2lvbiBsb2dvXCIgXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci50aXRsZV09XCInZWNsLmZvb3Rlci5FVVJPUEVBTi1DT01NSVNTSU9OJyB8IHRyYW5zbGF0ZVwiIFxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJlY2wtc2l0ZS1oZWFkZXJfX2xvZ28taW1hZ2UgZWNsLXNpdGUtaGVhZGVyX19sb2dvLWltYWdlLWRlc2t0b3BcIiBcbiAgICAgICAgICAgICAgICAgICAgICAgIHNyYz1cIi4vYXNzZXRzL2ltYWdlcy9lY2wvZWMvbG9nby9sb2dvLWVjLS17eyAgZ2V0RVVMYW5ndWFnZUNvZGUoKSB9fS5zdmdcIi8+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZWNsVGhlbWVTZXJ2aWNlLmlzRVUkIHwgYXN5bmNcIj5cbiAgICAgICAgICAgICAgICAgICAgPGltZyBhbHQ9XCJFdXJvcGVhbiBVbmlvbiBmbGFnXCIgXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci50aXRsZV09XCInZWNsLmZvb3Rlci5FVVJPUEVBTi1VTklPTicgfCB0cmFuc2xhdGVcIiBcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZWNsLXNpdGUtaGVhZGVyX19sb2dvLWltYWdlIGVjbC1zaXRlLWhlYWRlcl9fbG9nby1pbWFnZS1tb2JpbGVcIiBcbiAgICAgICAgICAgICAgICAgICAgICAgIHNyYz1cIi4vYXNzZXRzL2ltYWdlcy9lY2wvZXUvbG9nby9jb25kZW5zZWQtdmVyc2lvbi9wb3NpdGl2ZS9sb2dvLWV1LS17eyBnZXRFVUxhbmd1YWdlQ29kZSgpIH19LnN2Z1wiLz5cbiAgICAgICAgICAgICAgICAgICAgPGltZyBhbHQ9XCJFdXJvcGVhbiBVbmlvbiBmbGFnXCIgXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci50aXRsZV09XCInZWNsLmZvb3Rlci5FVVJPUEVBTi1VTklPTicgfCB0cmFuc2xhdGVcIiBcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZWNsLXNpdGUtaGVhZGVyX19sb2dvLWltYWdlIGVjbC1zaXRlLWhlYWRlcl9fbG9nby1pbWFnZS1kZXNrdG9wXCIgXG4gICAgICAgICAgICAgICAgICAgICAgICBzcmM9XCIuL2Fzc2V0cy9pbWFnZXMvZWNsL2V1L2xvZ28vc3RhbmRhcmQtdmVyc2lvbi9wb3NpdGl2ZS9sb2dvLWV1LS17eyBnZXRFVUxhbmd1YWdlQ29kZSgpIH19LnN2Z1wiLz5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImVjbC1zaXRlLWhlYWRlci1hY3Rpb25cIj48L25nLWNvbnRlbnQ+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9kaXY+XG5cbjxuZy1jb250ZW50IHNlbGVjdD1cImVjbC1zaXRlLWhlYWRlci1tZXNzYWdlXCI+PC9uZy1jb250ZW50PlxuPG5nLWNvbnRlbnQgc2VsZWN0PVwiZWNsLXNpdGUtaGVhZGVyLWJhbm5lci10b3BcIj48L25nLWNvbnRlbnQ+XG5cbjxkaXYgKm5nSWY9XCJzaXRlTmFtZVwiIGNsYXNzPVwiZWNsLXNpdGUtaGVhZGVyX19iYW5uZXJcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZWNsLWNvbnRhaW5lclwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZWNsLXNpdGUtaGVhZGVyX19zaXRlLW5hbWVcIj57eyBzaXRlTmFtZSB9fTwvZGl2PlxuICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbZWNsU2l0ZUhlYWRlckN0YV1cIj48L25nLWNvbnRlbnQ+XG4gICAgPC9kaXY+XG48L2Rpdj5cblxuPG5nLWNvbnRlbnQgc2VsZWN0PVwiZWNsLW1lbnVcIj48L25nLWNvbnRlbnQ+XG5cbjwhLS0gQGRlcHJlY2F0ZWQgbGFuZ3VhZ2UgbGlzdCBpcyByZXBsYWNlZCB3aXRoIHNpdGUgaGVhZGVyIGxhbmd1YWdlICAtLT5cbjxuZy1jb250ZW50IHNlbGVjdD1cImVjbC1sYW5ndWFnZS1saXN0XCI+PC9uZy1jb250ZW50PlxuIl19
@@ -159,8 +159,10 @@ export class EclTableHeaderDirective extends ECLBaseDirective {
159
159
  }
160
160
  initSortButtons() {
161
161
  if (this.eclSortable) {
162
- const containerComponentRef = this.viewContainerRef.createComponent(EclTableSortButtonComponent);
163
- this.el.nativeElement.appendChild(containerComponentRef.location.nativeElement);
162
+ setTimeout(() => {
163
+ const containerComponentRef = this.viewContainerRef.createComponent(EclTableSortButtonComponent);
164
+ this.el.nativeElement.appendChild(containerComponentRef.location.nativeElement);
165
+ });
164
166
  }
165
167
  }
166
168
  /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.4", ngImport: i0, type: EclTableHeaderDirective, deps: [{ token: i0.ElementRef }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive }); }
@@ -280,4 +282,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.4", ngImpor
280
282
  type: HostBinding,
281
283
  args: ['class']
282
284
  }] } });
283
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNsLXRhYmxlLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9lY2wtdGFibGUvZWNsLXRhYmxlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUVILGVBQWUsRUFDZixTQUFTLEVBR1QsWUFBWSxFQUNaLFVBQVUsRUFDVixXQUFXLEVBQ1gsWUFBWSxFQUNaLEtBQUssRUFJTCxNQUFNLEdBR1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUMzQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQzFDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3pELE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDOztBQUVoRixNQUFNLENBQU4sSUFBWSxTQUFnRTtBQUE1RSxXQUFZLFNBQVM7SUFBRyxzQ0FBeUIsQ0FBQTtJQUFFLG9DQUF1QixDQUFBO0FBQUMsQ0FBQyxFQUFoRSxTQUFTLEtBQVQsU0FBUyxRQUF1RDtBQUU1RSxNQUFNLE9BQU8saUJBQWtCLFNBQVEsWUFBWTtJQUMvQyxZQUFtQixTQUFvQixFQUFTLFFBQWdCO1FBQzVELEtBQUssRUFBRSxDQUFDO1FBRE8sY0FBUyxHQUFULFNBQVMsQ0FBVztRQUFTLGFBQVEsR0FBUixRQUFRLENBQVE7SUFFaEUsQ0FBQztDQUNKO0FBS0QsTUFBTSxPQUFPLGlCQUFrQixTQUFRLGdCQUFnQjtJQUduRCxJQUNJLFVBQVU7UUFDVixPQUFPO1lBQ0gsS0FBSyxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUM7WUFDaEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLEVBQUU7U0FDekMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQVVELFlBQW9CLE9BQXdCO1FBQ3hDLEtBQUssRUFBRSxDQUFDO1FBRFEsWUFBTyxHQUFQLE9BQU8sQ0FBaUI7UUFsQm1CLFlBQU8sR0FBa0IsS0FBSyxDQUFDO1FBVXBGLFNBQUksR0FBRyxJQUFJLFlBQVksRUFBcUIsQ0FBQztRQUsvQyxhQUFRLEdBQXFCLElBQUksT0FBTyxFQUFXLENBQUM7UUFLeEQsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUNqRCxDQUFDO0lBRUQsU0FBUztRQUNMLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUNwRCxJQUFJLElBQUksRUFBRTtZQUNOLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsRUFBRTtnQkFDM0IsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7cUJBQzFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO29CQUNmLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUN4QixDQUFDLENBQUMsQ0FBQztZQUNYLENBQUMsQ0FBQyxDQUFDO1NBQ047SUFDTCxDQUFDO0lBRUQsV0FBVztRQUNQLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDaEMsQ0FBQztpSUF2Q1EsaUJBQWlCO3FIQUFqQixpQkFBaUIsZ1JBYVEsdUJBQXVCOztBQVoxQztJQUFkLGFBQWE7a0RBQWdGOzJGQURyRixpQkFBaUI7a0JBSDdCLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLFlBQVk7aUJBQ3pCO3NHQUVrRSxPQUFPO3NCQUF0RCxLQUFLOztzQkFBSSxXQUFXO3VCQUFDLHdCQUF3QjtnQkFHekQsVUFBVTtzQkFEYixXQUFXO3VCQUFDLE9BQU87Z0JBUVYsSUFBSTtzQkFBYixNQUFNO2dCQUdQLGVBQWU7c0JBRGQsZUFBZTt1QkFBQyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsdUJBQXVCLENBQUMsRUFBRSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUU7O0FBZ0NyRixNQUFNLE9BQU8scUJBQXNCLFNBQVEsZ0JBQWdCO0lBQ3ZELElBQ0ksVUFBVTtRQUNWLE9BQU87WUFDSCxLQUFLLENBQUMsYUFBYSxDQUFDLGlCQUFpQixDQUFDO1NBQ3pDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFRRCxZQUFvQixPQUF3QjtRQUN4QyxLQUFLLEVBQUUsQ0FBQztRQURRLFlBQU8sR0FBUCxPQUFPLENBQWlCO1FBSHBDLGFBQVEsR0FBcUIsSUFBSSxPQUFPLEVBQVcsQ0FBQztRQUt4RCxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ2pELENBQUM7SUFFRCxTQUFTO1FBQ0wsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ3BELElBQUksSUFBSSxFQUFFO1lBQ04sSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxFQUFFO2dCQUMzQixNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztxQkFDMUMsU0FBUyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7b0JBQ2YsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUU7d0JBQzlCLEVBQUUsQ0FBQyxjQUFjLEVBQUUsQ0FBQztvQkFDeEIsQ0FBQyxDQUFDLENBQUM7Z0JBQ1AsQ0FBQyxDQUFDLENBQUM7WUFDWCxDQUFDLENBQUMsQ0FBQztTQUNOO0lBQ0wsQ0FBQztJQUVELFdBQVc7UUFDUCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN6QixJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ2hDLENBQUM7aUlBcENRLHFCQUFxQjtxSEFBckIscUJBQXFCLCtLQVFJLHVCQUF1Qjs7MkZBUmhELHFCQUFxQjtrQkFIakMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsZ0JBQWdCO2lCQUM3QjtzR0FHTyxVQUFVO3NCQURiLFdBQVc7dUJBQUMsT0FBTztnQkFRcEIsZUFBZTtzQkFEZCxlQUFlO3VCQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyx1QkFBdUIsQ0FBQyxFQUFFLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRTs7QUFrQ3JGLE1BQU0sT0FBTyx1QkFBd0IsU0FBUSxnQkFBZ0I7SUFLekQsSUFDSSxVQUFVO1FBQ1YsT0FBTztZQUNILEtBQUssQ0FBQyxhQUFhLENBQUMsbUJBQW1CLENBQUM7U0FDM0MsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUlELFlBQ1ksRUFBYyxFQUNkLGdCQUFrQztRQUMxQyxLQUFLLEVBQUUsQ0FBQztRQUZBLE9BQUUsR0FBRixFQUFFLENBQVk7UUFDZCxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBZGYsY0FBUyxHQUFjLElBQUksQ0FBQztRQUNGLGdCQUFXLEdBQVcsSUFBSSxDQUFDO1FBUzFFLFNBQUksR0FBRyxJQUFJLFlBQVksRUFBcUIsQ0FBQztJQU12RCxDQUFDO0lBRUQsa0JBQWtCO1FBQ2QsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRCxvRUFBb0U7SUFDcEUsY0FBYztRQUNWLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLGVBQWUsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBRUQsK0VBQStFO0lBRS9FLE9BQU8sQ0FBQyxHQUFHO1FBQ1AsUUFBUSxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ3BCLEtBQUssSUFBSSxDQUFDLENBQUM7Z0JBQ1AsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUMsU0FBUyxDQUFDO2dCQUNyQyxNQUFNO2FBQ1Q7WUFDRCxLQUFLLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQztnQkFDdEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUMsVUFBVSxDQUFDO2dCQUN0QyxNQUFNO2FBQ1Q7WUFDRCxLQUFLLFNBQVMsQ0FBQyxVQUFVLENBQUMsQ0FBQztnQkFDdkIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7Z0JBQ3RCLE1BQU07YUFDVDtTQUNKO1FBRUQsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO0lBQzVFLENBQUM7SUFFTyxlQUFlO1FBQ25CLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNsQixNQUFNLHFCQUFxQixHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxlQUFlLENBQUMsMkJBQTJCLENBQUMsQ0FBQztZQUNqRyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMscUJBQXFCLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1NBQ25GO0lBQ0wsQ0FBQztpSUF2RFEsdUJBQXVCO3FIQUF2Qix1QkFBdUI7OzJGQUF2Qix1QkFBdUI7a0JBSG5DLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLGtCQUFrQjtpQkFDL0I7Z0lBR2tDLFNBQVM7c0JBQXZDLFdBQVc7dUJBQUMsZ0JBQWdCO2dCQUM0QixXQUFXO3NCQUFuRSxLQUFLOztzQkFBSSxXQUFXO3VCQUFDLGlDQUFpQztnQkFHbkQsVUFBVTtzQkFEYixXQUFXO3VCQUFDLE9BQU87Z0JBT1YsSUFBSTtzQkFBYixNQUFNO2dCQW1CUCxPQUFPO3NCQUROLFlBQVk7dUJBQUMsT0FBTzs7QUErQnpCLE1BQU0sT0FBTyxvQkFBcUIsU0FBUSxnQkFBZ0I7SUFFdEQsSUFDSSxVQUFVO1FBQ1YsT0FBTztZQUNILEtBQUssQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLENBQUM7U0FDeEMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDdkIsQ0FBQztpSUFQUSxvQkFBb0I7cUhBQXBCLG9CQUFvQjs7MkZBQXBCLG9CQUFvQjtrQkFIaEMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsZUFBZTtpQkFDNUI7OEJBSU8sVUFBVTtzQkFEYixXQUFXO3VCQUFDLE9BQU87O0FBV3hCLE1BQU0sT0FBTyxxQkFBc0IsU0FBUSxnQkFBZ0I7SUFFdkQsSUFDSSxVQUFVO1FBQ1YsT0FBTztZQUNILEtBQUssQ0FBQyxhQUFhLENBQUMsaUJBQWlCLENBQUM7U0FDekMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDdkIsQ0FBQztpSUFQUSxxQkFBcUI7cUhBQXJCLHFCQUFxQjs7MkZBQXJCLHFCQUFxQjtrQkFIakMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsZ0JBQWdCO2lCQUM3Qjs4QkFJTyxVQUFVO3NCQURiLFdBQVc7dUJBQUMsT0FBTzs7QUFXeEIsTUFBTSxPQUFPLHFCQUFzQixTQUFRLGdCQUFnQjtJQUgzRDs7UUFNMEQsWUFBTyxHQUFZLEtBQUssQ0FBQztLQVFsRjtJQVBHLElBQ0ksVUFBVTtRQUNWLE9BQU87WUFDSCxLQUFLLENBQUMsYUFBYSxDQUFDLGlCQUFpQixDQUFDO1lBQ3RDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLHdCQUF3QixDQUFDLENBQUMsQ0FBQyxFQUFFO1NBQy9DLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3ZCLENBQUM7aUlBVlEscUJBQXFCO3FIQUFyQixxQkFBcUI7OzJGQUFyQixxQkFBcUI7a0JBSGpDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLGdCQUFnQjtpQkFDN0I7OEJBR3VELGtCQUFrQjtzQkFBckUsS0FBSzs7c0JBQUksV0FBVzt1QkFBQyw0QkFBNEI7Z0JBQ0ksT0FBTztzQkFBNUQsS0FBSzs7c0JBQUksV0FBVzt1QkFBQyw4QkFBOEI7Z0JBRWhELFVBQVU7c0JBRGIsV0FBVzt1QkFBQyxPQUFPOztBQVl4QixNQUFNLE9BQU8sMEJBQTJCLFNBQVEsZ0JBQWdCO0lBRzVELElBQ0ksVUFBVTtRQUNWLE9BQU87WUFDSCxLQUFLLENBQUMsYUFBYSxDQUFDLHdCQUF3QixDQUFDO1NBQ2hELENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3ZCLENBQUM7aUlBUlEsMEJBQTBCO3FIQUExQiwwQkFBMEI7OzJGQUExQiwwQkFBMEI7a0JBSHRDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLHFCQUFxQjtpQkFDbEM7OEJBRzZELGlCQUFpQjtzQkFBMUUsS0FBSzs7c0JBQUksV0FBVzt1QkFBQyxrQ0FBa0M7Z0JBRXBELFVBQVU7c0JBRGIsV0FBVzt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBBZnRlckNvbnRlbnRJbml0LFxuICAgIENvbnRlbnRDaGlsZHJlbixcbiAgICBEaXJlY3RpdmUsXG4gICAgRG9DaGVjayxcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBmb3J3YXJkUmVmLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIEhvc3RMaXN0ZW5lcixcbiAgICBJbnB1dCxcbiAgICBJdGVyYWJsZURpZmZlcixcbiAgICBJdGVyYWJsZURpZmZlcnMsXG4gICAgT25EZXN0cm95LFxuICAgIE91dHB1dCxcbiAgICBRdWVyeUxpc3QsXG4gICAgVmlld0NvbnRhaW5lclJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBFY2xCYXNlRXZlbnQgfSBmcm9tICcuLi8uLi9tb2RlbCc7XG5pbXBvcnQgeyBjb2VyY2VCb29sZWFuIH0gZnJvbSAnQGV1aS9iYXNlJztcbmltcG9ydCB7IEVDTEJhc2VEaXJlY3RpdmUgfSBmcm9tICcuLi9lY2wtYmFzZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgRWNsVGFibGVTb3J0QnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi9lY2wtdGFibGUtc29ydC1idXR0b24uY29tcG9uZW50JztcblxuZXhwb3J0IGVudW0gU29ydE9yZGVyIHsgREVTQ0VORElORyA9ICdkZXNjZW5kaW5nJywgQVNDRU5ESU5HID0gJ2FzY2VuZGluZycgfVxuXG5leHBvcnQgY2xhc3MgRWNsU29ydFRhYmxlRXZlbnQgZXh0ZW5kcyBFY2xCYXNlRXZlbnQge1xuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBzb3J0T3JkZXI6IFNvcnRPcmRlciwgcHVibGljIGNvbHVtbklkOiBzdHJpbmcpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICB9XG59XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW2VjbFRhYmxlXSdcbn0pXG5leHBvcnQgY2xhc3MgRWNsVGFibGVEaXJlY3RpdmUgZXh0ZW5kcyBFQ0xCYXNlRGlyZWN0aXZlIHtcbiAgICBAY29lcmNlQm9vbGVhbiBASW5wdXQoKSBASG9zdEJpbmRpbmcoJ2NsYXNzLmVjbC10YWJsZS0temVicmEnKSBpc1plYnJhOiBib29sZWFuIHwgYW55ID0gZmFsc2U7XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcbiAgICBnZXQgY3NzQ2xhc3NlcygpIHtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIHN1cGVyLmdldENzc0NsYXNzZXMoJ2VjbC10YWJsZScpLFxuICAgICAgICAgICAgdGhpcy5pc1plYnJhID8gJ2VjbC10YWJsZS0temVicmEnIDogJycsXG4gICAgICAgIF0uam9pbignICcpLnRyaW0oKTtcbiAgICB9XG5cbiAgICBAT3V0cHV0KCkgc29ydCA9IG5ldyBFdmVudEVtaXR0ZXI8RWNsU29ydFRhYmxlRXZlbnQ+KCk7XG5cbiAgICBAQ29udGVudENoaWxkcmVuKGZvcndhcmRSZWYoKCkgPT4gRWNsVGFibGVIZWFkZXJEaXJlY3RpdmUpLCB7IGRlc2NlbmRhbnRzOiB0cnVlIH0pXG4gICAgZWNsVGFibGVIZWFkZXJzOiBRdWVyeUxpc3Q8RWNsVGFibGVIZWFkZXJEaXJlY3RpdmU+O1xuXG4gICAgcHJpdmF0ZSBkZXN0cm95JDogU3ViamVjdDxib29sZWFuPiA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG4gICAgcHJpdmF0ZSBkaWZmZXI6IEl0ZXJhYmxlRGlmZmVyPEVjbFRhYmxlSGVhZGVyRGlyZWN0aXZlPjtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgZGlmZmVyczogSXRlcmFibGVEaWZmZXJzKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuZGlmZmVyID0gdGhpcy5kaWZmZXJzLmZpbmQoW10pLmNyZWF0ZSgpO1xuICAgIH1cblxuICAgIG5nRG9DaGVjaygpIHtcbiAgICAgICAgY29uc3QgZGlmZiA9IHRoaXMuZGlmZmVyLmRpZmYodGhpcy5lY2xUYWJsZUhlYWRlcnMpO1xuICAgICAgICBpZiAoZGlmZikge1xuICAgICAgICAgICAgZGlmZi5mb3JFYWNoQWRkZWRJdGVtKGNoYW5nZSA9PiB7XG4gICAgICAgICAgICAgICAgY2hhbmdlLml0ZW0uc29ydC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcbiAgICAgICAgICAgICAgICAgICAgLnN1YnNjcmliZSgoZXZ0KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNvcnQuZW1pdChldnQpO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIHRoaXMuZGVzdHJveSQubmV4dCh0cnVlKTtcbiAgICAgICAgdGhpcy5kZXN0cm95JC51bnN1YnNjcmliZSgpO1xuICAgIH1cbn1cblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbZWNsVGFibGVIZWFkXSdcbn0pXG5leHBvcnQgY2xhc3MgRWNsVGFibGVIZWFkRGlyZWN0aXZlIGV4dGVuZHMgRUNMQmFzZURpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uRGVzdHJveSwgRG9DaGVjayB7XG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXG4gICAgZ2V0IGNzc0NsYXNzZXMoKSB7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICBzdXBlci5nZXRDc3NDbGFzc2VzKCdlY2wtdGFibGVfX2hlYWQnKSxcbiAgICAgICAgXS5qb2luKCcgJykudHJpbSgpO1xuICAgIH1cblxuICAgIEBDb250ZW50Q2hpbGRyZW4oZm9yd2FyZFJlZigoKSA9PiBFY2xUYWJsZUhlYWRlckRpcmVjdGl2ZSksIHsgZGVzY2VuZGFudHM6IHRydWUgfSlcbiAgICBlY2xUYWJsZUhlYWRlcnM6IFF1ZXJ5TGlzdDxFY2xUYWJsZUhlYWRlckRpcmVjdGl2ZT47XG5cbiAgICBwcml2YXRlIGRlc3Ryb3kkOiBTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcbiAgICBwcml2YXRlIGRpZmZlcjogSXRlcmFibGVEaWZmZXI8RWNsVGFibGVIZWFkZXJEaXJlY3RpdmU+O1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBkaWZmZXJzOiBJdGVyYWJsZURpZmZlcnMpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5kaWZmZXIgPSB0aGlzLmRpZmZlcnMuZmluZChbXSkuY3JlYXRlKCk7XG4gICAgfVxuXG4gICAgbmdEb0NoZWNrKCkge1xuICAgICAgICBjb25zdCBkaWZmID0gdGhpcy5kaWZmZXIuZGlmZih0aGlzLmVjbFRhYmxlSGVhZGVycyk7XG4gICAgICAgIGlmIChkaWZmKSB7XG4gICAgICAgICAgICBkaWZmLmZvckVhY2hBZGRlZEl0ZW0oY2hhbmdlID0+IHtcbiAgICAgICAgICAgICAgICBjaGFuZ2UuaXRlbS5zb3J0LnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxuICAgICAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKChldnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZWNsVGFibGVIZWFkZXJzLmZvckVhY2godGggPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoLnJlbW92ZUFyaWFTb3J0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLm5leHQodHJ1ZSk7XG4gICAgICAgIHRoaXMuZGVzdHJveSQudW5zdWJzY3JpYmUoKTtcbiAgICB9XG59XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW2VjbFRhYmxlSGVhZGVyXSdcbn0pXG5leHBvcnQgY2xhc3MgRWNsVGFibGVIZWFkZXJEaXJlY3RpdmUgZXh0ZW5kcyBFQ0xCYXNlRGlyZWN0aXZlIGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCB7XG5cbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuYXJpYS1zb3J0Jykgc29ydE9yZGVyOiBTb3J0T3JkZXIgPSBudWxsO1xuICAgIEBJbnB1dCgpIEBIb3N0QmluZGluZygnYXR0ci5kYXRhLWVjbC10YWJsZS1zb3J0LXRvZ2dsZScpIGVjbFNvcnRhYmxlOiBzdHJpbmcgPSBudWxsO1xuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXG4gICAgZ2V0IGNzc0NsYXNzZXMoKSB7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICBzdXBlci5nZXRDc3NDbGFzc2VzKCdlY2wtdGFibGVfX2hlYWRlcicpLFxuICAgICAgICBdLmpvaW4oJyAnKS50cmltKCk7XG4gICAgfVxuXG4gICAgQE91dHB1dCgpIHNvcnQgPSBuZXcgRXZlbnRFbWl0dGVyPEVjbFNvcnRUYWJsZUV2ZW50PigpO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgZWw6IEVsZW1lbnRSZWYsXG4gICAgICAgIHByaXZhdGUgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZikge1xuICAgICAgICBzdXBlcigpO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJDb250ZW50SW5pdCgpIHtcbiAgICAgICAgdGhpcy5pbml0U29ydEJ1dHRvbnMoKTtcbiAgICB9XG5cbiAgICAvLyBSZW1vdmUgdGhlIGRhcmsgYXJyb3cgZm9yIGN1cnJlbnQgc29ydGluZyBmcm9tIHByZXYgc29ydGVkIGNvbHVtblxuICAgIHJlbW92ZUFyaWFTb3J0KCkge1xuICAgICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQucmVtb3ZlQXR0cmlidXRlKCdhcmlhLXNvcnQnKTtcbiAgICB9XG5cbiAgICAvLyBDbGljayB0cmlnZ2VycyAxIC0+IGFzYyBzb3J0aW5nLCAyIC0+IGRlc2Mgc29ydGluZyB0aGVuIDMgLT4gaW5pdGlhbCBzb3J0aW5nXG4gICAgQEhvc3RMaXN0ZW5lcignY2xpY2snKVxuICAgIG9uQ2xpY2soZXZ0KSB7XG4gICAgICAgIHN3aXRjaCAodGhpcy5zb3J0T3JkZXIpIHtcbiAgICAgICAgICAgIGNhc2UgbnVsbDoge1xuICAgICAgICAgICAgICAgIHRoaXMuc29ydE9yZGVyID0gU29ydE9yZGVyLkFTQ0VORElORztcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU29ydE9yZGVyLkFTQ0VORElORzoge1xuICAgICAgICAgICAgICAgIHRoaXMuc29ydE9yZGVyID0gU29ydE9yZGVyLkRFU0NFTkRJTkc7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFNvcnRPcmRlci5ERVNDRU5ESU5HOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zb3J0T3JkZXIgPSBudWxsO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5zb3J0LmVtaXQobmV3IEVjbFNvcnRUYWJsZUV2ZW50KHRoaXMuc29ydE9yZGVyLCB0aGlzLmVjbFNvcnRhYmxlKSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpbml0U29ydEJ1dHRvbnMoKSB7XG4gICAgICAgIGlmICh0aGlzLmVjbFNvcnRhYmxlKSB7XG4gICAgICAgICAgICBjb25zdCBjb250YWluZXJDb21wb25lbnRSZWYgPSB0aGlzLnZpZXdDb250YWluZXJSZWYuY3JlYXRlQ29tcG9uZW50KEVjbFRhYmxlU29ydEJ1dHRvbkNvbXBvbmVudCk7XG4gICAgICAgICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuYXBwZW5kQ2hpbGQoY29udGFpbmVyQ29tcG9uZW50UmVmLmxvY2F0aW9uLm5hdGl2ZUVsZW1lbnQpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1tlY2xUYWJsZVJvd10nXG59KVxuZXhwb3J0IGNsYXNzIEVjbFRhYmxlUm93RGlyZWN0aXZlIGV4dGVuZHMgRUNMQmFzZURpcmVjdGl2ZSB7XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcbiAgICBnZXQgY3NzQ2xhc3NlcygpIHtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIHN1cGVyLmdldENzc0NsYXNzZXMoJ2VjbC10YWJsZV9fcm93JyksXG4gICAgICAgIF0uam9pbignICcpLnRyaW0oKTtcbiAgICB9XG59XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW2VjbFRhYmxlQm9keV0nXG59KVxuZXhwb3J0IGNsYXNzIEVjbFRhYmxlQm9keURpcmVjdGl2ZSBleHRlbmRzIEVDTEJhc2VEaXJlY3RpdmUge1xuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXG4gICAgZ2V0IGNzc0NsYXNzZXMoKSB7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICBzdXBlci5nZXRDc3NDbGFzc2VzKCdlY2wtdGFibGVfX2JvZHknKSxcbiAgICAgICAgXS5qb2luKCcgJykudHJpbSgpO1xuICAgIH1cbn1cblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbZWNsVGFibGVDZWxsXSdcbn0pXG5leHBvcnQgY2xhc3MgRWNsVGFibGVDZWxsRGlyZWN0aXZlIGV4dGVuZHMgRUNMQmFzZURpcmVjdGl2ZSB7XG5cbiAgICBASW5wdXQoKSBASG9zdEJpbmRpbmcoJ2F0dHIuZGF0YS1lY2wtdGFibGUtaGVhZGVyJykgZWNsVGFibGVDZWxsSGVhZGVyOiBzdHJpbmc7XG4gICAgQElucHV0KCkgQEhvc3RCaW5kaW5nKCdjbGFzcy5lY2wtdGFibGVfX2NlbGwtLWdyb3VwJykgaXNHcm91cDogYm9vbGVhbiA9IGZhbHNlO1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MnKVxuICAgIGdldCBjc3NDbGFzc2VzKCkge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgc3VwZXIuZ2V0Q3NzQ2xhc3NlcygnZWNsLXRhYmxlX19jZWxsJyksXG4gICAgICAgICAgICB0aGlzLmlzR3JvdXAgPyAnZWNsLXRhYmxlX19jZWxsLS1ncm91cCcgOiAnJyxcbiAgICAgICAgXS5qb2luKCcgJykudHJpbSgpO1xuICAgIH1cbn1cblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbZWNsVGFibGVDZWxsR3JvdXBdJ1xufSlcbmV4cG9ydCBjbGFzcyBFY2xUYWJsZUNlbGxHcm91cERpcmVjdGl2ZSBleHRlbmRzIEVDTEJhc2VEaXJlY3RpdmUge1xuXG4gICAgQElucHV0KCkgQEhvc3RCaW5kaW5nKCdhdHRyLmRhdGEtZWNsLXRhYmxlLWhlYWRlci1ncm91cCcpIGVjbFRhYmxlQ2VsbEdyb3VwOiBzdHJpbmc7XG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXG4gICAgZ2V0IGNzc0NsYXNzZXMoKSB7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICBzdXBlci5nZXRDc3NDbGFzc2VzKCdlY2wtdGFibGVfX2NlbGwtLWdyb3VwJyksXG4gICAgICAgIF0uam9pbignICcpLnRyaW0oKTtcbiAgICB9XG59XG4iXX0=
285
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNsLXRhYmxlLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9lY2wtdGFibGUvZWNsLXRhYmxlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUVILGVBQWUsRUFDZixTQUFTLEVBR1QsWUFBWSxFQUNaLFVBQVUsRUFDVixXQUFXLEVBQ1gsWUFBWSxFQUNaLEtBQUssRUFJTCxNQUFNLEdBR1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUMzQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQzFDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3pELE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDOztBQUVoRixNQUFNLENBQU4sSUFBWSxTQUFnRTtBQUE1RSxXQUFZLFNBQVM7SUFBRyxzQ0FBeUIsQ0FBQTtJQUFFLG9DQUF1QixDQUFBO0FBQUMsQ0FBQyxFQUFoRSxTQUFTLEtBQVQsU0FBUyxRQUF1RDtBQUU1RSxNQUFNLE9BQU8saUJBQWtCLFNBQVEsWUFBWTtJQUMvQyxZQUFtQixTQUFvQixFQUFTLFFBQWdCO1FBQzVELEtBQUssRUFBRSxDQUFDO1FBRE8sY0FBUyxHQUFULFNBQVMsQ0FBVztRQUFTLGFBQVEsR0FBUixRQUFRLENBQVE7SUFFaEUsQ0FBQztDQUNKO0FBS0QsTUFBTSxPQUFPLGlCQUFrQixTQUFRLGdCQUFnQjtJQUduRCxJQUNJLFVBQVU7UUFDVixPQUFPO1lBQ0gsS0FBSyxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUM7WUFDaEMsSUFB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QyxhQUFhLENBQUMsaUJBQWlCLENBQUM7WUFDdEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsd0JBQXdCLENBQUMsQ0FBQyxDQUFDLEVBQUU7U0FDL0MsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDdkIsQ0FBQztpSUFWUSxxQkFBcUI7cUhBQXJCLHFCQUFxQjs7MkZBQXJCLHFCQUFxQjtrQkFIakMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsZ0JBQWdCO2lCQUM3Qjs4QkFHdUQsa0JBQWtCO3NCQUFyRSxLQUFLOztzQkFBSSxXQUFXO3VCQUFDLDRCQUE0QjtnQkFDSSxPQUFPO3NCQUE1RCxLQUFLOztzQkFBSSxXQUFXO3VCQUFDLDhCQUE4QjtnQkFFaEQsVUFBVTtzQkFEYixXQUFXO3VCQUFDLE9BQU87O0FBWXhCLE1BQU0sT0FBTywwQkFBMkIsU0FBUSxnQkFBZ0I7SUFHNUQsSUFDSSxVQUFVO1FBQ1YsT0FBTztZQUNILEtBQUssQ0FBQyxhQUFhLENBQUMsd0JBQXdCLENBQUM7U0FDaEQsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDdkIsQ0FBQztpSUFSUSwwQkFBMEI7cUhBQTFCLDBCQUEwQjs7MkZBQTFCLDBCQUEwQjtrQkFIdEMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUscUJBQXFCO2lCQUNsQzs4QkFHNkQsaUJBQWlCO3NCQUExRSxLQUFLOztzQkFBSSxXQUFXO3VCQUFDLGtDQUFrQztnQkFFcEQsVUFBVTtzQkFEYixXQUFXO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFmdGVyQ29udGVudEluaXQsXG4gICAgQ29udGVudENoaWxkcmVuLFxuICAgIERpcmVjdGl2ZSxcbiAgICBEb0NoZWNrLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIGZvcndhcmRSZWYsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSG9zdExpc3RlbmVyLFxuICAgIElucHV0LFxuICAgIEl0ZXJhYmxlRGlmZmVyLFxuICAgIEl0ZXJhYmxlRGlmZmVycyxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT3V0cHV0LFxuICAgIFF1ZXJ5TGlzdCxcbiAgICBWaWV3Q29udGFpbmVyUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEVjbEJhc2VFdmVudCB9IGZyb20gJy4uLy4uL21vZGVsJztcbmltcG9ydCB7IGNvZXJjZUJvb2xlYW4gfSBmcm9tICdAZXVpL2Jhc2UnO1xuaW1wb3J0IHsgRUNMQmFzZURpcmVjdGl2ZSB9IGZyb20gJy4uL2VjbC1iYXNlLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBFY2xUYWJsZVNvcnRCdXR0b25Db21wb25lbnQgfSBmcm9tICcuL2VjbC10YWJsZS1zb3J0LWJ1dHRvbi5jb21wb25lbnQnO1xuXG5leHBvcnQgZW51bSBTb3J0T3JkZXIgeyBERVNDRU5ESU5HID0gJ2Rlc2NlbmRpbmcnLCBBU0NFTkRJTkcgPSAnYXNjZW5kaW5nJyB9XG5cbmV4cG9ydCBjbGFzcyBFY2xTb3J0VGFibGVFdmVudCBleHRlbmRzIEVjbEJhc2VFdmVudCB7XG4gICAgY29uc3RydWN0b3IocHVibGljIHNvcnRPcmRlcjogU29ydE9yZGVyLCBwdWJsaWMgY29sdW1uSWQ6IHN0cmluZykge1xuICAgICAgICBzdXBlcigpO1xuICAgIH1cbn1cblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbZWNsVGFibGVdJ1xufSlcbmV4cG9ydCBjbGFzcyBFY2xUYWJsZURpcmVjdGl2ZSBleHRlbmRzIEVDTEJhc2VEaXJlY3RpdmUge1xuICAgIEBjb2VyY2VCb29sZWFuIEBJbnB1dCgpIEBIb3N0QmluZGluZygnY2xhc3MuZWNsLXRhYmxlLS16ZWJyYScpIGlzWmVicmE6IGJvb2xlYW4gfCBhbnkgPSBmYWxzZTtcblxuICAgIEBIb3N0QmluZGluZygnY2xhc3MnKVxuICAgIGdldCBjc3NDbGFzc2VzKCkge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgc3VwZXIuZ2V0Q3NzQ2xhc3NlcygnZWNsLXRhYmxlJyksXG4gICAgICAgICAgICB0aGlzLmlzWmVicmEgPyAnZWNsLXRhYmxlLS16ZWJyYScgOiAnJyxcbiAgICAgICAgXS5qb2luKCcgJykudHJpbSgpO1xuICAgIH1cblxuICAgIEBPdXRwdXQoKSBzb3J0ID0gbmV3IEV2ZW50RW1pdHRlcjxFY2xTb3J0VGFibGVFdmVudD4oKTtcblxuICAgIEBDb250ZW50Q2hpbGRyZW4oZm9yd2FyZFJlZigoKSA9PiBFY2xUYWJsZUhlYWRlckRpcmVjdGl2ZSksIHsgZGVzY2VuZGFudHM6IHRydWUgfSlcbiAgICBlY2xUYWJsZUhlYWRlcnM6IFF1ZXJ5TGlzdDxFY2xUYWJsZUhlYWRlckRpcmVjdGl2ZT47XG5cbiAgICBwcml2YXRlIGRlc3Ryb3kkOiBTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcbiAgICBwcml2YXRlIGRpZmZlcjogSXRlcmFibGVEaWZmZXI8RWNsVGFibGVIZWFkZXJEaXJlY3RpdmU+O1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBkaWZmZXJzOiBJdGVyYWJsZURpZmZlcnMpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5kaWZmZXIgPSB0aGlzLmRpZmZlcnMuZmluZChbXSkuY3JlYXRlKCk7XG4gICAgfVxuXG4gICAgbmdEb0NoZWNrKCkge1xuICAgICAgICBjb25zdCBkaWZmID0gdGhpcy5kaWZmZXIuZGlmZih0aGlzLmVjbFRhYmxlSGVhZGVycyk7XG4gICAgICAgIGlmIChkaWZmKSB7XG4gICAgICAgICAgICBkaWZmLmZvckVhY2hBZGRlZEl0ZW0oY2hhbmdlID0+IHtcbiAgICAgICAgICAgICAgICBjaGFuZ2UuaXRlbS5zb3J0LnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxuICAgICAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKChldnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc29ydC5lbWl0KGV2dCk7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy5kZXN0cm95JC5uZXh0KHRydWUpO1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxufVxuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1tlY2xUYWJsZUhlYWRdJ1xufSlcbmV4cG9ydCBjbGFzcyBFY2xUYWJsZUhlYWREaXJlY3RpdmUgZXh0ZW5kcyBFQ0xCYXNlRGlyZWN0aXZlIGltcGxlbWVudHMgT25EZXN0cm95LCBEb0NoZWNrIHtcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcbiAgICBnZXQgY3NzQ2xhc3NlcygpIHtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIHN1cGVyLmdldENzc0NsYXNzZXMoJ2VjbC10YWJsZV9faGVhZCcpLFxuICAgICAgICBdLmpvaW4oJyAnKS50cmltKCk7XG4gICAgfVxuXG4gICAgQENvbnRlbnRDaGlsZHJlbihmb3J3YXJkUmVmKCgpID0+IEVjbFRhYmxlSGVhZGVyRGlyZWN0aXZlKSwgeyBkZXNjZW5kYW50czogdHJ1ZSB9KVxuICAgIGVjbFRhYmxlSGVhZGVyczogUXVlcnlMaXN0PEVjbFRhYmxlSGVhZGVyRGlyZWN0aXZlPjtcblxuICAgIHByaXZhdGUgZGVzdHJveSQ6IFN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xuICAgIHByaXZhdGUgZGlmZmVyOiBJdGVyYWJsZURpZmZlcjxFY2xUYWJsZUhlYWRlckRpcmVjdGl2ZT47XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGRpZmZlcnM6IEl0ZXJhYmxlRGlmZmVycykge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLmRpZmZlciA9IHRoaXMuZGlmZmVycy5maW5kKFtdKS5jcmVhdGUoKTtcbiAgICB9XG5cbiAgICBuZ0RvQ2hlY2soKSB7XG4gICAgICAgIGNvbnN0IGRpZmYgPSB0aGlzLmRpZmZlci5kaWZmKHRoaXMuZWNsVGFibGVIZWFkZXJzKTtcbiAgICAgICAgaWYgKGRpZmYpIHtcbiAgICAgICAgICAgIGRpZmYuZm9yRWFjaEFkZGVkSXRlbShjaGFuZ2UgPT4ge1xuICAgICAgICAgICAgICAgIGNoYW5nZS5pdGVtLnNvcnQucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXG4gICAgICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKGV2dCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5lY2xUYWJsZUhlYWRlcnMuZm9yRWFjaCh0aCA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGgucmVtb3ZlQXJpYVNvcnQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIHRoaXMuZGVzdHJveSQubmV4dCh0cnVlKTtcbiAgICAgICAgdGhpcy5kZXN0cm95JC51bnN1YnNjcmliZSgpO1xuICAgIH1cbn1cblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbZWNsVGFibGVIZWFkZXJdJ1xufSlcbmV4cG9ydCBjbGFzcyBFY2xUYWJsZUhlYWRlckRpcmVjdGl2ZSBleHRlbmRzIEVDTEJhc2VEaXJlY3RpdmUgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0IHtcblxuICAgIEBIb3N0QmluZGluZygnYXR0ci5hcmlhLXNvcnQnKSBzb3J0T3JkZXI6IFNvcnRPcmRlciA9IG51bGw7XG4gICAgQElucHV0KCkgQEhvc3RCaW5kaW5nKCdhdHRyLmRhdGEtZWNsLXRhYmxlLXNvcnQtdG9nZ2xlJykgZWNsU29ydGFibGU6IHN0cmluZyA9IG51bGw7XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcbiAgICBnZXQgY3NzQ2xhc3NlcygpIHtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIHN1cGVyLmdldENzc0NsYXNzZXMoJ2VjbC10YWJsZV9faGVhZGVyJyksXG4gICAgICAgIF0uam9pbignICcpLnRyaW0oKTtcbiAgICB9XG5cbiAgICBAT3V0cHV0KCkgc29ydCA9IG5ldyBFdmVudEVtaXR0ZXI8RWNsU29ydFRhYmxlRXZlbnQ+KCk7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBlbDogRWxlbWVudFJlZixcbiAgICAgICAgcHJpdmF0ZSB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxuXG4gICAgbmdBZnRlckNvbnRlbnRJbml0KCkge1xuICAgICAgICB0aGlzLmluaXRTb3J0QnV0dG9ucygpO1xuICAgIH1cblxuICAgIC8vIFJlbW92ZSB0aGUgZGFyayBhcnJvdyBmb3IgY3VycmVudCBzb3J0aW5nIGZyb20gcHJldiBzb3J0ZWQgY29sdW1uXG4gICAgcmVtb3ZlQXJpYVNvcnQoKSB7XG4gICAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5yZW1vdmVBdHRyaWJ1dGUoJ2FyaWEtc29ydCcpO1xuICAgIH1cblxuICAgIC8vIENsaWNrIHRyaWdnZXJzIDEgLT4gYXNjIHNvcnRpbmcsIDIgLT4gZGVzYyBzb3J0aW5nIHRoZW4gMyAtPiBpbml0aWFsIHNvcnRpbmdcbiAgICBASG9zdExpc3RlbmVyKCdjbGljaycpXG4gICAgb25DbGljayhldnQpIHtcbiAgICAgICAgc3dpdGNoICh0aGlzLnNvcnRPcmRlcikge1xuICAgICAgICAgICAgY2FzZSBudWxsOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zb3J0T3JkZXIgPSBTb3J0T3JkZXIuQVNDRU5ESU5HO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTb3J0T3JkZXIuQVNDRU5ESU5HOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zb3J0T3JkZXIgPSBTb3J0T3JkZXIuREVTQ0VORElORztcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgU29ydE9yZGVyLkRFU0NFTkRJTkc6IHtcbiAgICAgICAgICAgICAgICB0aGlzLnNvcnRPcmRlciA9IG51bGw7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnNvcnQuZW1pdChuZXcgRWNsU29ydFRhYmxlRXZlbnQodGhpcy5zb3J0T3JkZXIsIHRoaXMuZWNsU29ydGFibGUpKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGluaXRTb3J0QnV0dG9ucygpIHtcbiAgICAgICAgaWYgKHRoaXMuZWNsU29ydGFibGUpIHtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGNvbnRhaW5lckNvbXBvbmVudFJlZiA9IHRoaXMudmlld0NvbnRhaW5lclJlZi5jcmVhdGVDb21wb25lbnQoRWNsVGFibGVTb3J0QnV0dG9uQ29tcG9uZW50KTtcbiAgICAgICAgICAgICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuYXBwZW5kQ2hpbGQoY29udGFpbmVyQ29tcG9uZW50UmVmLmxvY2F0aW9uLm5hdGl2ZUVsZW1lbnQpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW2VjbFRhYmxlUm93XSdcbn0pXG5leHBvcnQgY2xhc3MgRWNsVGFibGVSb3dEaXJlY3RpdmUgZXh0ZW5kcyBFQ0xCYXNlRGlyZWN0aXZlIHtcblxuICAgIEBIb3N0QmluZGluZygnY2xhc3MnKVxuICAgIGdldCBjc3NDbGFzc2VzKCkge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgc3VwZXIuZ2V0Q3NzQ2xhc3NlcygnZWNsLXRhYmxlX19yb3cnKSxcbiAgICAgICAgXS5qb2luKCcgJykudHJpbSgpO1xuICAgIH1cbn1cblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbZWNsVGFibGVCb2R5XSdcbn0pXG5leHBvcnQgY2xhc3MgRWNsVGFibGVCb2R5RGlyZWN0aXZlIGV4dGVuZHMgRUNMQmFzZURpcmVjdGl2ZSB7XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcbiAgICBnZXQgY3NzQ2xhc3NlcygpIHtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIHN1cGVyLmdldENzc0NsYXNzZXMoJ2VjbC10YWJsZV9fYm9keScpLFxuICAgICAgICBdLmpvaW4oJyAnKS50cmltKCk7XG4gICAgfVxufVxuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1tlY2xUYWJsZUNlbGxdJ1xufSlcbmV4cG9ydCBjbGFzcyBFY2xUYWJsZUNlbGxEaXJlY3RpdmUgZXh0ZW5kcyBFQ0xCYXNlRGlyZWN0aXZlIHtcblxuICAgIEBJbnB1dCgpIEBIb3N0QmluZGluZygnYXR0ci5kYXRhLWVjbC10YWJsZS1oZWFkZXInKSBlY2xUYWJsZUNlbGxIZWFkZXI6IHN0cmluZztcbiAgICBASW5wdXQoKSBASG9zdEJpbmRpbmcoJ2NsYXNzLmVjbC10YWJsZV9fY2VsbC0tZ3JvdXAnKSBpc0dyb3VwOiBib29sZWFuID0gZmFsc2U7XG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXG4gICAgZ2V0IGNzc0NsYXNzZXMoKSB7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICBzdXBlci5nZXRDc3NDbGFzc2VzKCdlY2wtdGFibGVfX2NlbGwnKSxcbiAgICAgICAgICAgIHRoaXMuaXNHcm91cCA/ICdlY2wtdGFibGVfX2NlbGwtLWdyb3VwJyA6ICcnLFxuICAgICAgICBdLmpvaW4oJyAnKS50cmltKCk7XG4gICAgfVxufVxuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1tlY2xUYWJsZUNlbGxHcm91cF0nXG59KVxuZXhwb3J0IGNsYXNzIEVjbFRhYmxlQ2VsbEdyb3VwRGlyZWN0aXZlIGV4dGVuZHMgRUNMQmFzZURpcmVjdGl2ZSB7XG5cbiAgICBASW5wdXQoKSBASG9zdEJpbmRpbmcoJ2F0dHIuZGF0YS1lY2wtdGFibGUtaGVhZGVyLWdyb3VwJykgZWNsVGFibGVDZWxsR3JvdXA6IHN0cmluZztcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcbiAgICBnZXQgY3NzQ2xhc3NlcygpIHtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIHN1cGVyLmdldENzc0NsYXNzZXMoJ2VjbC10YWJsZV9fY2VsbC0tZ3JvdXAnKSxcbiAgICAgICAgXS5qb2luKCcgJykudHJpbSgpO1xuICAgIH1cbn1cbiJdfQ==