valtech-components 2.0.325 → 2.0.328

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 (30) hide show
  1. package/esm2022/lib/components/atoms/button/button.component.mjs +18 -18
  2. package/esm2022/lib/components/atoms/display/display.component.mjs +13 -16
  3. package/esm2022/lib/components/atoms/text/text.component.mjs +19 -19
  4. package/esm2022/lib/components/atoms/title/title.component.mjs +7 -7
  5. package/esm2022/lib/components/atoms/title/types.mjs +6 -2
  6. package/esm2022/lib/components/molecules/alert-box/alert-box.component.mjs +6 -6
  7. package/esm2022/lib/components/molecules/language-selector/language-selector.component.mjs +6 -17
  8. package/esm2022/lib/components/organisms/form/form.component.mjs +1 -1
  9. package/esm2022/lib/services/lang-provider/lang-provider.service.mjs +198 -2
  10. package/esm2022/lib/shared/utils/simple-content.mjs +119 -0
  11. package/esm2022/public-api.mjs +3 -4
  12. package/fesm2022/valtech-components.mjs +520 -837
  13. package/fesm2022/valtech-components.mjs.map +1 -1
  14. package/lib/components/atoms/button/button.component.d.ts +3 -3
  15. package/lib/components/atoms/display/display.component.d.ts +2 -3
  16. package/lib/components/atoms/text/text.component.d.ts +3 -3
  17. package/lib/components/atoms/title/title.component.d.ts +1 -2
  18. package/lib/components/atoms/title/types.d.ts +10 -4
  19. package/lib/components/molecules/alert-box/alert-box.component.d.ts +3 -3
  20. package/lib/components/molecules/language-selector/language-selector.component.d.ts +1 -3
  21. package/lib/services/lang-provider/lang-provider.service.d.ts +108 -1
  22. package/lib/shared/utils/simple-content.d.ts +120 -0
  23. package/package.json +1 -1
  24. package/public-api.d.ts +1 -3
  25. package/esm2022/lib/services/content-loader.service.mjs +0 -185
  26. package/esm2022/lib/services/content.service.mjs +0 -327
  27. package/esm2022/lib/shared/utils/reactive-content.mjs +0 -117
  28. package/lib/services/content-loader.service.d.ts +0 -98
  29. package/lib/services/content.service.d.ts +0 -296
  30. package/lib/shared/utils/reactive-content.d.ts +0 -109
@@ -5,7 +5,7 @@ import { BoxComponent } from '../../atoms/box/box.component';
5
5
  import { IconComponent } from '../../atoms/icon/icon.component';
6
6
  import { TextComponent } from '../../atoms/text/text.component';
7
7
  import * as i0 from "@angular/core";
8
- import * as i1 from "../../../services/content.service";
8
+ import * as i1 from "../../../services/lang-provider/lang-provider.service";
9
9
  /**
10
10
  * val-alert-box
11
11
  *
@@ -30,8 +30,8 @@ export class AlertBoxComponent {
30
30
  getLegacyTextProps() {
31
31
  return this.props.text;
32
32
  }
33
- constructor(contentService) {
34
- this.contentService = contentService;
33
+ constructor(langService) {
34
+ this.langService = langService;
35
35
  this.subscriptions = new Subscription();
36
36
  }
37
37
  ngOnInit() {
@@ -60,7 +60,7 @@ export class AlertBoxComponent {
60
60
  this.computedTextProps.contentConfig = reactiveProps.textConfig;
61
61
  }
62
62
  }
63
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AlertBoxComponent, deps: [{ token: i1.ContentService }], target: i0.ɵɵFactoryTarget.Component }); }
63
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AlertBoxComponent, deps: [{ token: i1.LangService }], target: i0.ɵɵFactoryTarget.Component }); }
64
64
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: AlertBoxComponent, isStandalone: true, selector: "val-alert-box", inputs: { props: "props" }, ngImport: i0, template: `
65
65
  <val-box [props]="props.box">
66
66
  <div class="content-container" body>
@@ -90,7 +90,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
90
90
  </div>
91
91
  </val-box>
92
92
  `, styles: [":root{--ion-color-primary: #7026df;--ion-color-primary-rgb: 112, 38, 223;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #6321c4;--ion-color-primary-tint: #7e3ce2;--ion-color-secondary: #e2ccff;--ion-color-secondary-rgb: 226, 204, 255;--ion-color-secondary-contrast: #000000;--ion-color-secondary-contrast-rgb: 0, 0, 0;--ion-color-secondary-shade: #c7b4e0;--ion-color-secondary-tint: #e5d1ff;--ion-color-texti: #354c69;--ion-color-texti-rgb: 53, 76, 105;--ion-color-texti-contrast: #ffffff;--ion-color-texti-contrast-rgb: 255, 255, 255;--ion-color-texti-shade: #2f435c;--ion-color-texti-tint: #495e78;--ion-color-darki: #090f1b;--ion-color-darki-rgb: 9, 15, 27;--ion-color-darki-contrast: #ffffff;--ion-color-darki-contrast-rgb: 255, 255, 255;--ion-color-darki-shade: #080d18;--ion-color-darki-tint: #222732;--ion-color-medium: #9e9e9e;--ion-color-medium-rgb: 158, 158, 158;--ion-color-medium-contrast: #000000;--ion-color-medium-contrast-rgb: 0, 0, 0;--ion-color-medium-shade: #8b8b8b;--ion-color-medium-tint: #a8a8a8;--swiper-pagination-color: var(--ion-color-primary);--swiper-navigation-color: var(--ion-color-primary);--swiper-pagination-bullet-inactive-color: var(--ion-color-medium)}@media (prefers-color-scheme: dark){:root{--ion-color-texti: #8fc1ff;--ion-color-texti-rgb: 143, 193, 255;--ion-color-texti-contrast: #000000;--ion-color-texti-contrast-rgb: 0, 0, 0;--ion-color-texti-shade: #7eaae0;--ion-color-texti-tint: #9ac7ff;--ion-color-darki: #ffffff;--ion-color-darki-rgb: 255, 255, 255;--ion-color-darki-contrast: #000000;--ion-color-darki-contrast-rgb: 0, 0, 0;--ion-color-darki-shade: #e0e0e0;--ion-color-darki-tint: #ffffff;--ion-color-primary: #8f49f8;--ion-color-primary-rgb: 143, 73, 248;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #7e40da;--ion-color-primary-tint: #9a5bf9}}.ion-color-texti{--ion-color-base: var(--ion-color-texti);--ion-color-base-rgb: var(--ion-color-texti-rgb);--ion-color-contrast: var(--ion-color-texti-contrast);--ion-color-contrast-rgb: var(--ion-color-texti-contrast-rgb);--ion-color-shade: var(--ion-color-texti-shade);--ion-color-tint: var(--ion-color-texti-tint)}.ion-color-darki{--ion-color-base: var(--ion-color-darki);--ion-color-base-rgb: var(--ion-color-darki-rgb);--ion-color-contrast: var(--ion-color-darki-contrast);--ion-color-contrast-rgb: var(--ion-color-darki-contrast-rgb);--ion-color-shade: var(--ion-color-darki-shade);--ion-color-tint: var(--ion-color-darki-tint)}.text{margin-left:.25rem}.content-container{display:flex;align-items:flex-start}\n"] }]
93
- }], ctorParameters: () => [{ type: i1.ContentService }], propDecorators: { props: [{
93
+ }], ctorParameters: () => [{ type: i1.LangService }], propDecorators: { props: [{
94
94
  type: Input
95
95
  }] } });
96
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxlcnQtYm94LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRlY2gtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL2FsZXJ0LWJveC9hbGVydC1ib3guY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFDcEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVwQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQzs7O0FBc0JoRTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUNILE1BQU0sT0FBTyxpQkFBaUI7SUFhNUIscURBQXFEO0lBQ3JELElBQUksYUFBYTtRQUNmLE9BQU8sTUFBTSxJQUFJLElBQUksQ0FBQyxLQUFLLElBQUksT0FBUSxJQUFJLENBQUMsS0FBYSxDQUFDLElBQUksS0FBSyxRQUFRLENBQUM7SUFDOUUsQ0FBQztJQUVELHdDQUF3QztJQUN4QyxrQkFBa0I7UUFDaEIsT0FBUSxJQUFJLENBQUMsS0FBMEIsQ0FBQyxJQUFJLENBQUM7SUFDL0MsQ0FBQztJQUVELFlBQW9CLGNBQThCO1FBQTlCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQXRCMUMsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBc0JVLENBQUM7SUFFdEQsUUFBUTtRQUNOLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDeEIsSUFBSSxDQUFDLDJCQUEyQixFQUFFLENBQUM7UUFDckMsQ0FBQztJQUNILENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNuQyxDQUFDO0lBRU8sMkJBQTJCO1FBQ2pDLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxLQUFpQyxDQUFDO1FBRTdELG9DQUFvQztRQUNwQyxJQUFJLENBQUMsaUJBQWlCLEdBQUc7WUFDdkIsSUFBSSxFQUFFLGFBQWEsQ0FBQyxTQUFTLEVBQUUsSUFBSSxJQUFJLFFBQVE7WUFDL0MsS0FBSyxFQUFFLGFBQWEsQ0FBQyxTQUFTLEVBQUUsS0FBSztZQUNyQyxJQUFJLEVBQUUsYUFBYSxDQUFDLFNBQVMsRUFBRSxJQUFJLElBQUksS0FBSztTQUM3QyxDQUFDO1FBRUYsNEJBQTRCO1FBQzVCLElBQUksYUFBYSxDQUFDLElBQUksS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUNyQyxjQUFjO1lBQ2QsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sR0FBRyxhQUFhLENBQUMsSUFBSSxDQUFDO1FBQ3RELENBQUM7YUFBTSxJQUFJLGFBQWEsQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNwQyxtQkFBbUI7WUFDbkIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGFBQWEsR0FBRyxhQUFhLENBQUMsVUFBVSxDQUFDO1FBQ2xFLENBQUM7SUFDSCxDQUFDOytHQXJEVSxpQkFBaUI7bUdBQWpCLGlCQUFpQixxR0E5QmxCOzs7Ozs7Ozs7Ozs7R0FZVCwrcEZBYlMsWUFBWSwrQkFBRSxZQUFZLDZGQUFFLGFBQWEsd0VBQUUsYUFBYTs7NEZBK0J2RCxpQkFBaUI7a0JBbEM3QixTQUFTOytCQUNFLGVBQWUsY0FDYixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsWUFBWSxFQUFFLGFBQWEsRUFBRSxhQUFhLENBQUMsWUFDekQ7Ozs7Ozs7Ozs7OztHQVlUO21GQTBCRCxLQUFLO3NCQURKLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQ29udGVudFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9jb250ZW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgQm94Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYXRvbXMvYm94L2JveC5jb21wb25lbnQnO1xuaW1wb3J0IHsgSWNvbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2F0b21zL2ljb24vaWNvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGV4dENvbXBvbmVudCB9IGZyb20gJy4uLy4uL2F0b21zL3RleHQvdGV4dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQWxlcnRCb3hNZXRhZGF0YSwgUmVhY3RpdmVBbGVydEJveE1ldGFkYXRhIH0gZnJvbSAnLi90eXBlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbC1hbGVydC1ib3gnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBCb3hDb21wb25lbnQsIEljb25Db21wb25lbnQsIFRleHRDb21wb25lbnRdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDx2YWwtYm94IFtwcm9wc109XCJwcm9wcy5ib3hcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjb250ZW50LWNvbnRhaW5lclwiIGJvZHk+XG4gICAgICAgIDx2YWwtaWNvbiBbcHJvcHNdPVwicHJvcHMuaWNvblwiPjwvdmFsLWljb24+XG4gICAgICAgIDwhLS0gU3VwcG9ydCBib3RoIGxlZ2FjeSBhbmQgcmVhY3RpdmUgcGF0dGVybnMgLS0+XG4gICAgICAgIEBpZiAoaXNMZWdhY3lQcm9wcykge1xuICAgICAgICAgIDx2YWwtdGV4dCBjbGFzcz1cInRleHRcIiBbcHJvcHNdPVwiZ2V0TGVnYWN5VGV4dFByb3BzKClcIiAvPlxuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICA8dmFsLXRleHQgY2xhc3M9XCJ0ZXh0XCIgW3Byb3BzXT1cImNvbXB1dGVkVGV4dFByb3BzXCIgLz5cbiAgICAgICAgfVxuICAgICAgPC9kaXY+XG4gICAgPC92YWwtYm94PlxuICBgLFxuICBzdHlsZVVybHM6IFsnLi9hbGVydC1ib3guY29tcG9uZW50LnNjc3MnXSxcbn0pXG4vKipcbiAqIHZhbC1hbGVydC1ib3hcbiAqXG4gKiBEaXNwbGF5cyBhbiBhbGVydCBib3ggd2l0aCBhbiBpY29uIGFuZCB0ZXh0LCB1c2luZyBhIHN0eWxlZCBib3ggY29udGFpbmVyLlxuICogU3VwcG9ydHMgYm90aCBzdGF0aWMgYW5kIHJlYWN0aXZlIGNvbnRlbnQgcGF0dGVybnMuXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIExlZ2FjeSBwYXR0ZXJuIHdpdGggVGV4dE1ldGFkYXRhXG4gKiA8dmFsLWFsZXJ0LWJveCBbcHJvcHNdPVwieyBib3g6IHsuLi59LCBpY29uOiB7Li4ufSwgdGV4dDogey4uLn0gfVwiPjwvdmFsLWFsZXJ0LWJveD5cbiAqXG4gKiAvLyBSZWFjdGl2ZSBwYXR0ZXJuIHdpdGggc2ltcGxpZmllZCBjb25maWd1cmF0aW9uXG4gKiA8dmFsLWFsZXJ0LWJveCBbcHJvcHNdPVwieyBib3g6IHsuLi59LCBpY29uOiB7Li4ufSwgdGV4dENvbmZpZzogeyBrZXk6ICdhbGVydC53YXJuaW5nJyB9IH1cIj48L3ZhbC1hbGVydC1ib3g+XG4gKlxuICogQGlucHV0IHByb3BzOiBBbGVydEJveE1ldGFkYXRhIHwgUmVhY3RpdmVBbGVydEJveE1ldGFkYXRhIC0gQ29uZmlndXJhdGlvbiBmb3IgdGhlIGFsZXJ0IGJveFxuICovXG5leHBvcnQgY2xhc3MgQWxlcnRCb3hDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgc3Vic2NyaXB0aW9ucyA9IG5ldyBTdWJzY3JpcHRpb24oKTtcblxuICAvKipcbiAgICogQWxlcnQgYm94IGNvbmZpZ3VyYXRpb24gb2JqZWN0LlxuICAgKiBTdXBwb3J0cyBib3RoIGxlZ2FjeSBBbGVydEJveE1ldGFkYXRhIGFuZCBSZWFjdGl2ZUFsZXJ0Qm94TWV0YWRhdGEgcGF0dGVybnMuXG4gICAqL1xuICBASW5wdXQoKVxuICBwcm9wczogQWxlcnRCb3hNZXRhZGF0YSB8IFJlYWN0aXZlQWxlcnRCb3hNZXRhZGF0YTtcblxuICAvKiogQ29tcHV0ZWQgdGV4dCBwcm9wZXJ0aWVzIGZvciByZWFjdGl2ZSBwYXR0ZXJuICovXG4gIGNvbXB1dGVkVGV4dFByb3BzOiBhbnk7XG5cbiAgLyoqIFdoZXRoZXIgdGhpcyBpcyB1c2luZyB0aGUgbGVnYWN5IHByb3BzIHBhdHRlcm4gKi9cbiAgZ2V0IGlzTGVnYWN5UHJvcHMoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICd0ZXh0JyBpbiB0aGlzLnByb3BzICYmIHR5cGVvZiAodGhpcy5wcm9wcyBhcyBhbnkpLnRleHQgPT09ICdvYmplY3QnO1xuICB9XG5cbiAgLyoqIEdldCB0ZXh0IHByb3BzIGZvciBsZWdhY3kgcGF0dGVybiAqL1xuICBnZXRMZWdhY3lUZXh0UHJvcHMoKTogYW55IHtcbiAgICByZXR1cm4gKHRoaXMucHJvcHMgYXMgQWxlcnRCb3hNZXRhZGF0YSkudGV4dDtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY29udGVudFNlcnZpY2U6IENvbnRlbnRTZXJ2aWNlKSB7fVxuXG4gIG5nT25Jbml0KCkge1xuICAgIGlmICghdGhpcy5pc0xlZ2FjeVByb3BzKSB7XG4gICAgICB0aGlzLmluaXRpYWxpemVSZWFjdGl2ZVRleHRQcm9wcygpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0aWFsaXplUmVhY3RpdmVUZXh0UHJvcHMoKSB7XG4gICAgY29uc3QgcmVhY3RpdmVQcm9wcyA9IHRoaXMucHJvcHMgYXMgUmVhY3RpdmVBbGVydEJveE1ldGFkYXRhO1xuXG4gICAgLy8gQmFzZSB0ZXh0IHByb3BlcnRpZXMgd2l0aCBzdHlsaW5nXG4gICAgdGhpcy5jb21wdXRlZFRleHRQcm9wcyA9IHtcbiAgICAgIHNpemU6IHJlYWN0aXZlUHJvcHMudGV4dFN0eWxlPy5zaXplIHx8ICdtZWRpdW0nLFxuICAgICAgY29sb3I6IHJlYWN0aXZlUHJvcHMudGV4dFN0eWxlPy5jb2xvcixcbiAgICAgIGJvbGQ6IHJlYWN0aXZlUHJvcHMudGV4dFN0eWxlPy5ib2xkIHx8IGZhbHNlLFxuICAgIH07XG5cbiAgICAvLyBBZGQgY29udGVudCBjb25maWd1cmF0aW9uXG4gICAgaWYgKHJlYWN0aXZlUHJvcHMudGV4dCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAvLyBTdGF0aWMgdGV4dFxuICAgICAgdGhpcy5jb21wdXRlZFRleHRQcm9wcy5jb250ZW50ID0gcmVhY3RpdmVQcm9wcy50ZXh0O1xuICAgIH0gZWxzZSBpZiAocmVhY3RpdmVQcm9wcy50ZXh0Q29uZmlnKSB7XG4gICAgICAvLyBSZWFjdGl2ZSBjb250ZW50XG4gICAgICB0aGlzLmNvbXB1dGVkVGV4dFByb3BzLmNvbnRlbnRDb25maWcgPSByZWFjdGl2ZVByb3BzLnRleHRDb25maWc7XG4gICAgfVxuICB9XG59XG4iXX0=
96
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxlcnQtYm94LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRlY2gtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL2FsZXJ0LWJveC9hbGVydC1ib3guY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFDcEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVwQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQzs7O0FBc0JoRTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUNILE1BQU0sT0FBTyxpQkFBaUI7SUFhNUIscURBQXFEO0lBQ3JELElBQUksYUFBYTtRQUNmLE9BQU8sTUFBTSxJQUFJLElBQUksQ0FBQyxLQUFLLElBQUksT0FBUSxJQUFJLENBQUMsS0FBYSxDQUFDLElBQUksS0FBSyxRQUFRLENBQUM7SUFDOUUsQ0FBQztJQUVELHdDQUF3QztJQUN4QyxrQkFBa0I7UUFDaEIsT0FBUSxJQUFJLENBQUMsS0FBMEIsQ0FBQyxJQUFJLENBQUM7SUFDL0MsQ0FBQztJQUVELFlBQW9CLFdBQXdCO1FBQXhCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBdEJwQyxrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7SUFzQkksQ0FBQztJQUVoRCxRQUFRO1FBQ04sSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUN4QixJQUFJLENBQUMsMkJBQTJCLEVBQUUsQ0FBQztRQUNyQyxDQUFDO0lBQ0gsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ25DLENBQUM7SUFFTywyQkFBMkI7UUFDakMsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLEtBQWlDLENBQUM7UUFFN0Qsb0NBQW9DO1FBQ3BDLElBQUksQ0FBQyxpQkFBaUIsR0FBRztZQUN2QixJQUFJLEVBQUUsYUFBYSxDQUFDLFNBQVMsRUFBRSxJQUFJLElBQUksUUFBUTtZQUMvQyxLQUFLLEVBQUUsYUFBYSxDQUFDLFNBQVMsRUFBRSxLQUFLO1lBQ3JDLElBQUksRUFBRSxhQUFhLENBQUMsU0FBUyxFQUFFLElBQUksSUFBSSxLQUFLO1NBQzdDLENBQUM7UUFFRiw0QkFBNEI7UUFDNUIsSUFBSSxhQUFhLENBQUMsSUFBSSxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ3JDLGNBQWM7WUFDZCxJQUFJLENBQUMsaUJBQWlCLENBQUMsT0FBTyxHQUFHLGFBQWEsQ0FBQyxJQUFJLENBQUM7UUFDdEQsQ0FBQzthQUFNLElBQUksYUFBYSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ3BDLG1CQUFtQjtZQUNuQixJQUFJLENBQUMsaUJBQWlCLENBQUMsYUFBYSxHQUFHLGFBQWEsQ0FBQyxVQUFVLENBQUM7UUFDbEUsQ0FBQztJQUNILENBQUM7K0dBckRVLGlCQUFpQjttR0FBakIsaUJBQWlCLHFHQTlCbEI7Ozs7Ozs7Ozs7OztHQVlULCtwRkFiUyxZQUFZLCtCQUFFLFlBQVksNkZBQUUsYUFBYSx3RUFBRSxhQUFhOzs0RkErQnZELGlCQUFpQjtrQkFsQzdCLFNBQVM7K0JBQ0UsZUFBZSxjQUNiLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxZQUFZLEVBQUUsYUFBYSxFQUFFLGFBQWEsQ0FBQyxZQUN6RDs7Ozs7Ozs7Ozs7O0dBWVQ7Z0ZBMEJELEtBQUs7c0JBREosS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBMYW5nU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2xhbmctcHJvdmlkZXIvbGFuZy1wcm92aWRlci5zZXJ2aWNlJztcbmltcG9ydCB7IEJveENvbXBvbmVudCB9IGZyb20gJy4uLy4uL2F0b21zL2JveC9ib3guY29tcG9uZW50JztcbmltcG9ydCB7IEljb25Db21wb25lbnQgfSBmcm9tICcuLi8uLi9hdG9tcy9pY29uL2ljb24uY29tcG9uZW50JztcbmltcG9ydCB7IFRleHRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9hdG9tcy90ZXh0L3RleHQuY29tcG9uZW50JztcbmltcG9ydCB7IEFsZXJ0Qm94TWV0YWRhdGEsIFJlYWN0aXZlQWxlcnRCb3hNZXRhZGF0YSB9IGZyb20gJy4vdHlwZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWwtYWxlcnQtYm94JyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgQm94Q29tcG9uZW50LCBJY29uQ29tcG9uZW50LCBUZXh0Q29tcG9uZW50XSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8dmFsLWJveCBbcHJvcHNdPVwicHJvcHMuYm94XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29udGVudC1jb250YWluZXJcIiBib2R5PlxuICAgICAgICA8dmFsLWljb24gW3Byb3BzXT1cInByb3BzLmljb25cIj48L3ZhbC1pY29uPlxuICAgICAgICA8IS0tIFN1cHBvcnQgYm90aCBsZWdhY3kgYW5kIHJlYWN0aXZlIHBhdHRlcm5zIC0tPlxuICAgICAgICBAaWYgKGlzTGVnYWN5UHJvcHMpIHtcbiAgICAgICAgICA8dmFsLXRleHQgY2xhc3M9XCJ0ZXh0XCIgW3Byb3BzXT1cImdldExlZ2FjeVRleHRQcm9wcygpXCIgLz5cbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgPHZhbC10ZXh0IGNsYXNzPVwidGV4dFwiIFtwcm9wc109XCJjb21wdXRlZFRleHRQcm9wc1wiIC8+XG4gICAgICAgIH1cbiAgICAgIDwvZGl2PlxuICAgIDwvdmFsLWJveD5cbiAgYCxcbiAgc3R5bGVVcmxzOiBbJy4vYWxlcnQtYm94LmNvbXBvbmVudC5zY3NzJ10sXG59KVxuLyoqXG4gKiB2YWwtYWxlcnQtYm94XG4gKlxuICogRGlzcGxheXMgYW4gYWxlcnQgYm94IHdpdGggYW4gaWNvbiBhbmQgdGV4dCwgdXNpbmcgYSBzdHlsZWQgYm94IGNvbnRhaW5lci5cbiAqIFN1cHBvcnRzIGJvdGggc3RhdGljIGFuZCByZWFjdGl2ZSBjb250ZW50IHBhdHRlcm5zLlxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBMZWdhY3kgcGF0dGVybiB3aXRoIFRleHRNZXRhZGF0YVxuICogPHZhbC1hbGVydC1ib3ggW3Byb3BzXT1cInsgYm94OiB7Li4ufSwgaWNvbjogey4uLn0sIHRleHQ6IHsuLi59IH1cIj48L3ZhbC1hbGVydC1ib3g+XG4gKlxuICogLy8gUmVhY3RpdmUgcGF0dGVybiB3aXRoIHNpbXBsaWZpZWQgY29uZmlndXJhdGlvblxuICogPHZhbC1hbGVydC1ib3ggW3Byb3BzXT1cInsgYm94OiB7Li4ufSwgaWNvbjogey4uLn0sIHRleHRDb25maWc6IHsga2V5OiAnYWxlcnQud2FybmluZycgfSB9XCI+PC92YWwtYWxlcnQtYm94PlxuICpcbiAqIEBpbnB1dCBwcm9wczogQWxlcnRCb3hNZXRhZGF0YSB8IFJlYWN0aXZlQWxlcnRCb3hNZXRhZGF0YSAtIENvbmZpZ3VyYXRpb24gZm9yIHRoZSBhbGVydCBib3hcbiAqL1xuZXhwb3J0IGNsYXNzIEFsZXJ0Qm94Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBwcml2YXRlIHN1YnNjcmlwdGlvbnMgPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG5cbiAgLyoqXG4gICAqIEFsZXJ0IGJveCBjb25maWd1cmF0aW9uIG9iamVjdC5cbiAgICogU3VwcG9ydHMgYm90aCBsZWdhY3kgQWxlcnRCb3hNZXRhZGF0YSBhbmQgUmVhY3RpdmVBbGVydEJveE1ldGFkYXRhIHBhdHRlcm5zLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHJvcHM6IEFsZXJ0Qm94TWV0YWRhdGEgfCBSZWFjdGl2ZUFsZXJ0Qm94TWV0YWRhdGE7XG5cbiAgLyoqIENvbXB1dGVkIHRleHQgcHJvcGVydGllcyBmb3IgcmVhY3RpdmUgcGF0dGVybiAqL1xuICBjb21wdXRlZFRleHRQcm9wczogYW55O1xuXG4gIC8qKiBXaGV0aGVyIHRoaXMgaXMgdXNpbmcgdGhlIGxlZ2FjeSBwcm9wcyBwYXR0ZXJuICovXG4gIGdldCBpc0xlZ2FjeVByb3BzKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAndGV4dCcgaW4gdGhpcy5wcm9wcyAmJiB0eXBlb2YgKHRoaXMucHJvcHMgYXMgYW55KS50ZXh0ID09PSAnb2JqZWN0JztcbiAgfVxuXG4gIC8qKiBHZXQgdGV4dCBwcm9wcyBmb3IgbGVnYWN5IHBhdHRlcm4gKi9cbiAgZ2V0TGVnYWN5VGV4dFByb3BzKCk6IGFueSB7XG4gICAgcmV0dXJuICh0aGlzLnByb3BzIGFzIEFsZXJ0Qm94TWV0YWRhdGEpLnRleHQ7XG4gIH1cblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGxhbmdTZXJ2aWNlOiBMYW5nU2VydmljZSkge31cblxuICBuZ09uSW5pdCgpIHtcbiAgICBpZiAoIXRoaXMuaXNMZWdhY3lQcm9wcykge1xuICAgICAgdGhpcy5pbml0aWFsaXplUmVhY3RpdmVUZXh0UHJvcHMoKTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMudW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdGlhbGl6ZVJlYWN0aXZlVGV4dFByb3BzKCkge1xuICAgIGNvbnN0IHJlYWN0aXZlUHJvcHMgPSB0aGlzLnByb3BzIGFzIFJlYWN0aXZlQWxlcnRCb3hNZXRhZGF0YTtcblxuICAgIC8vIEJhc2UgdGV4dCBwcm9wZXJ0aWVzIHdpdGggc3R5bGluZ1xuICAgIHRoaXMuY29tcHV0ZWRUZXh0UHJvcHMgPSB7XG4gICAgICBzaXplOiByZWFjdGl2ZVByb3BzLnRleHRTdHlsZT8uc2l6ZSB8fCAnbWVkaXVtJyxcbiAgICAgIGNvbG9yOiByZWFjdGl2ZVByb3BzLnRleHRTdHlsZT8uY29sb3IsXG4gICAgICBib2xkOiByZWFjdGl2ZVByb3BzLnRleHRTdHlsZT8uYm9sZCB8fCBmYWxzZSxcbiAgICB9O1xuXG4gICAgLy8gQWRkIGNvbnRlbnQgY29uZmlndXJhdGlvblxuICAgIGlmIChyZWFjdGl2ZVByb3BzLnRleHQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgLy8gU3RhdGljIHRleHRcbiAgICAgIHRoaXMuY29tcHV0ZWRUZXh0UHJvcHMuY29udGVudCA9IHJlYWN0aXZlUHJvcHMudGV4dDtcbiAgICB9IGVsc2UgaWYgKHJlYWN0aXZlUHJvcHMudGV4dENvbmZpZykge1xuICAgICAgLy8gUmVhY3RpdmUgY29udGVudFxuICAgICAgdGhpcy5jb21wdXRlZFRleHRQcm9wcy5jb250ZW50Q29uZmlnID0gcmVhY3RpdmVQcm9wcy50ZXh0Q29uZmlnO1xuICAgIH1cbiAgfVxufVxuIl19
@@ -7,7 +7,6 @@ import { map } from 'rxjs/operators';
7
7
  import { PopoverSelectorComponent } from '../popover-selector/popover-selector.component';
8
8
  import * as i0 from "@angular/core";
9
9
  import * as i1 from "../../../services/lang-provider/lang-provider.service";
10
- import * as i2 from "../../../services/content.service";
11
10
  /**
12
11
  * val-language-selector
13
12
  *
@@ -52,9 +51,8 @@ import * as i2 from "../../../services/content.service";
52
51
  * @output languageChange: EventEmitter<string> - Emitted when language changes
53
52
  */
54
53
  export class LanguageSelectorComponent {
55
- constructor(langService, contentService) {
54
+ constructor(langService) {
56
55
  this.langService = langService;
57
- this.contentService = contentService;
58
56
  /**
59
57
  * Language selector configuration object.
60
58
  * @type {LanguageSelectorMetadata}
@@ -118,20 +116,11 @@ export class LanguageSelectorComponent {
118
116
  }
119
117
  else if (this.props.labelConfig) {
120
118
  // Reactive label
121
- this.label$ = this.contentService.fromContent({
122
- className: this.props.labelConfig.className || '_global',
123
- key: this.props.labelConfig.key,
124
- fallback: this.props.labelConfig.fallback || 'Language',
125
- interpolation: this.props.labelConfig.interpolation,
126
- });
119
+ this.label$ = this.langService.getContent(this.props.labelConfig.className || '_global', this.props.labelConfig.key, this.props.labelConfig.fallback || 'Language');
127
120
  }
128
121
  else {
129
122
  // Default label from global content
130
- this.label$ = this.contentService.fromContent({
131
- className: '_global',
132
- key: 'language',
133
- fallback: 'Idioma',
134
- });
123
+ this.label$ = this.langService.getContent('_global', 'language', 'Idioma');
135
124
  }
136
125
  }
137
126
  initializePopoverProps() {
@@ -212,7 +201,7 @@ export class LanguageSelectorComponent {
212
201
  this.languageChange.emit(selectedLanguage);
213
202
  }
214
203
  }
215
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: LanguageSelectorComponent, deps: [{ token: i1.LangService }, { token: i2.ContentService }], target: i0.ɵɵFactoryTarget.Component }); }
204
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: LanguageSelectorComponent, deps: [{ token: i1.LangService }], target: i0.ɵɵFactoryTarget.Component }); }
216
205
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: LanguageSelectorComponent, isStandalone: true, selector: "val-language-selector", inputs: { props: "props" }, outputs: { languageChange: "languageChange" }, ngImport: i0, template: `
217
206
  <val-popover-selector [props]="popoverProps" (selectionChange)="onLanguageChange($event)"> </val-popover-selector>
218
207
  `, isInline: true, styles: [":host{display:inline-block;width:auto}val-popover-selector .popover-selector-container{display:inline-block;width:auto}val-popover-selector .selector-trigger .trigger-text{display:inline-flex;align-items:center;gap:8px;font-weight:700}val-popover-selector .selector-trigger .trigger-text .flag-emoji{font-size:1.2em;line-height:1;filter:drop-shadow(0 1px 2px rgba(0,0,0,.1));transition:transform .2s ease}val-popover-selector .selector-trigger.has-flag .trigger-text{letter-spacing:.025em}val-popover-selector .selector-trigger:hover:not([disabled]) .trigger-text .flag-emoji{transform:scale(1.1)}val-popover-selector .option-content{gap:10px;padding:8px 0}val-popover-selector .option-content .flag-emoji{font-size:1.1em;filter:drop-shadow(0 1px 2px rgba(0,0,0,.08))}val-popover-selector .option-content span{font-weight:600;letter-spacing:.01em}.language-flag{font-size:1.2em;margin-right:6px;vertical-align:middle;line-height:1;filter:drop-shadow(0 1px 3px rgba(0,0,0,.1));transition:all .2s ease}@media (max-width: 768px){val-popover-selector .selector-trigger .trigger-text{font-size:13px;gap:6px}val-popover-selector .selector-trigger .trigger-text .flag-emoji{font-size:1.1em}}val-popover-selector .selector-trigger:hover:not([disabled]) .trigger-text .flag-emoji{transform:scale(1.1) rotate(3deg);transition:transform .25s cubic-bezier(.4,0,.2,1)}val-popover-selector .selector-trigger:active .trigger-text .flag-emoji{transform:scale(1.05)}val-popover-selector .language-changing .flag-emoji{animation:languageSwitch .4s ease-in-out}@keyframes languageSwitch{0%{transform:scale(1)}50%{transform:scale(1.15) rotate(8deg)}to{transform:scale(1)}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: PopoverSelectorComponent, selector: "val-popover-selector", inputs: ["props"], outputs: ["selectionChange"] }] }); }
@@ -222,9 +211,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
222
211
  args: [{ selector: 'val-language-selector', standalone: true, imports: [CommonModule, PopoverSelectorComponent], template: `
223
212
  <val-popover-selector [props]="popoverProps" (selectionChange)="onLanguageChange($event)"> </val-popover-selector>
224
213
  `, styles: [":host{display:inline-block;width:auto}val-popover-selector .popover-selector-container{display:inline-block;width:auto}val-popover-selector .selector-trigger .trigger-text{display:inline-flex;align-items:center;gap:8px;font-weight:700}val-popover-selector .selector-trigger .trigger-text .flag-emoji{font-size:1.2em;line-height:1;filter:drop-shadow(0 1px 2px rgba(0,0,0,.1));transition:transform .2s ease}val-popover-selector .selector-trigger.has-flag .trigger-text{letter-spacing:.025em}val-popover-selector .selector-trigger:hover:not([disabled]) .trigger-text .flag-emoji{transform:scale(1.1)}val-popover-selector .option-content{gap:10px;padding:8px 0}val-popover-selector .option-content .flag-emoji{font-size:1.1em;filter:drop-shadow(0 1px 2px rgba(0,0,0,.08))}val-popover-selector .option-content span{font-weight:600;letter-spacing:.01em}.language-flag{font-size:1.2em;margin-right:6px;vertical-align:middle;line-height:1;filter:drop-shadow(0 1px 3px rgba(0,0,0,.1));transition:all .2s ease}@media (max-width: 768px){val-popover-selector .selector-trigger .trigger-text{font-size:13px;gap:6px}val-popover-selector .selector-trigger .trigger-text .flag-emoji{font-size:1.1em}}val-popover-selector .selector-trigger:hover:not([disabled]) .trigger-text .flag-emoji{transform:scale(1.1) rotate(3deg);transition:transform .25s cubic-bezier(.4,0,.2,1)}val-popover-selector .selector-trigger:active .trigger-text .flag-emoji{transform:scale(1.05)}val-popover-selector .language-changing .flag-emoji{animation:languageSwitch .4s ease-in-out}@keyframes languageSwitch{0%{transform:scale(1)}50%{transform:scale(1.15) rotate(8deg)}to{transform:scale(1)}}\n"] }]
225
- }], ctorParameters: () => [{ type: i1.LangService }, { type: i2.ContentService }], propDecorators: { props: [{
214
+ }], ctorParameters: () => [{ type: i1.LangService }], propDecorators: { props: [{
226
215
  type: Input
227
216
  }], languageChange: [{
228
217
  type: Output
229
218
  }] } });
230
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFuZ3VhZ2Utc2VsZWN0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGVjaC1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvbGFuZ3VhZ2Utc2VsZWN0b3IvbGFuZ3VhZ2Utc2VsZWN0b3IuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDakQsT0FBTyxFQUFjLFlBQVksRUFBRSxhQUFhLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ25FLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUlyQyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQzs7OztBQWExRjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBMENHO0FBQ0gsTUFBTSxPQUFPLHlCQUF5QjtJQTJEcEMsWUFDVSxXQUF3QixFQUN4QixjQUE4QjtRQUQ5QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUE1RHhDOzs7V0FHRztRQUVILFVBQUssR0FBNkIsRUFBRSxDQUFDO1FBRXJDOzs7V0FHRztRQUVILG1CQUFjLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQWNwQyxrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFFM0MscUNBQXFDO1FBQ3BCLHlC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SSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDN0MsQ0FBQztJQUNILENBQUM7K0dBbE1VLHlCQUF5QjttR0FBekIseUJBQXlCLDRKQWhEMUI7O0dBRVQsK3JEQUhTLFlBQVksK0JBQUUsd0JBQXdCOzs0RkFpRHJDLHlCQUF5QjtrQkFwRHJDLFNBQVM7K0JBQ0UsdUJBQXVCLGNBQ3JCLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSx3QkFBd0IsQ0FBQyxZQUN2Qzs7R0FFVDs2R0FvREQsS0FBSztzQkFESixLQUFLO2dCQVFOLGNBQWM7c0JBRGIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGFkZEljb25zIH0gZnJvbSAnaW9uaWNvbnMnO1xuaW1wb3J0IHsgZ2xvYmUsIGxhbmd1YWdlIH0gZnJvbSAnaW9uaWNvbnMvaWNvbnMnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9uLCBjb21iaW5lTGF0ZXN0LCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQ29udGVudFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9jb250ZW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgTGFuZ1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9sYW5nLXByb3ZpZGVyL2xhbmctcHJvdmlkZXIuc2VydmljZSc7XG5pbXBvcnQgeyBMYW5nT3B0aW9uIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvbGFuZy1wcm92aWRlci90eXBlcyc7XG5pbXBvcnQgeyBQb3BvdmVyU2VsZWN0b3JDb21wb25lbnQgfSBmcm9tICcuLi9wb3BvdmVyLXNlbGVjdG9yL3BvcG92ZXItc2VsZWN0b3IuY29tcG9uZW50JztcbmltcG9ydCB7IFBvcG92ZXJPcHRpb24sIFBvcG92ZXJTZWxlY3Rvck1ldGFkYXRhIH0gZnJvbSAnLi4vcG9wb3Zlci1zZWxlY3Rvci90eXBlcyc7XG5pbXBvcnQgeyBMYW5ndWFnZVNlbGVjdG9yTWV0YWRhdGEgfSBmcm9tICcuL3R5cGVzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsLWxhbmd1YWdlLXNlbGVjdG9yJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgUG9wb3ZlclNlbGVjdG9yQ29tcG9uZW50XSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8dmFsLXBvcG92ZXItc2VsZWN0b3IgW3Byb3BzXT1cInBvcG92ZXJQcm9wc1wiIChzZWxlY3Rpb25DaGFuZ2UpPVwib25MYW5ndWFnZUNoYW5nZSgkZXZlbnQpXCI+IDwvdmFsLXBvcG92ZXItc2VsZWN0b3I+XG4gIGAsXG4gIHN0eWxlVXJsczogWycuL2xhbmd1YWdlLXNlbGVjdG9yLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuLyoqXG4gKiB2YWwtbGFuZ3VhZ2Utc2VsZWN0b3JcbiAqXG4gKiBBIHNwZWNpYWxpemVkIGxhbmd1YWdlIHNlbGVjdG9yIGNvbXBvbmVudCB0aGF0IGludGVncmF0ZXMgd2l0aCB0aGUgTGFuZ1NlcnZpY2UuXG4gKiBVc2VzIHRoZSBwb3BvdmVyLXNlbGVjdG9yIGNvbXBvbmVudCBpbnRlcm5hbGx5IGFuZCBwcm92aWRlcyBsYW5ndWFnZS1zcGVjaWZpYyBmdW5jdGlvbmFsaXR5LlxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBCYXNpYyB1c2FnZSAoYXV0by1kZXRlY3RzIGxhbmd1YWdlcyBmcm9tIExhbmdTZXJ2aWNlKVxuICogPHZhbC1sYW5ndWFnZS1zZWxlY3RvclxuICogICBbcHJvcHNdPVwieyBzaG93TGFiZWw6IHRydWUsIHNob3dGbGFnczogdHJ1ZSB9XCI+XG4gKiA8L3ZhbC1sYW5ndWFnZS1zZWxlY3Rvcj5cbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gQ3VzdG9tIGNvbmZpZ3VyYXRpb25cbiAqIGNvbnN0IGxhbmd1YWdlUHJvcHM6IExhbmd1YWdlU2VsZWN0b3JNZXRhZGF0YSA9IHtcbiAqICAgc2hvd0xhYmVsOiB0cnVlLFxuICogICBsYWJlbDogJ0Nob29zZSBMYW5ndWFnZScsXG4gKiAgIHNob3dGbGFnczogdHJ1ZSxcbiAqICAgY29sb3I6ICdwcmltYXJ5JyxcbiAqICAgc2l6ZTogJ2xhcmdlJyxcbiAqICAgZmlsbDogJ291dGxpbmUnLFxuICogICBjdXN0b21MYW5ndWFnZU5hbWVzOiB7XG4gKiAgICAgJ2VzJzogJ0VzcGHDsW9sJyxcbiAqICAgICAnZW4nOiAnRW5nbGlzaCcsXG4gKiAgICAgJ2ZyJzogJ0ZyYW7Dp2FpcydcbiAqICAgfVxuICogfTtcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gV2l0aCByZWFjdGl2ZSBjb250ZW50XG4gKiBjb25zdCBsYW5ndWFnZVByb3BzOiBMYW5ndWFnZVNlbGVjdG9yTWV0YWRhdGEgPSB7XG4gKiAgIHNob3dMYWJlbDogdHJ1ZSxcbiAqICAgbGFiZWxDb25maWc6IHtcbiAqICAgICBjbGFzc05hbWU6ICdteUNvbXBvbmVudCcsXG4gKiAgICAga2V5OiAnbGFuZ3VhZ2VMYWJlbCcsXG4gKiAgICAgZmFsbGJhY2s6ICdMYW5ndWFnZSdcbiAqICAgfSxcbiAqICAgY29sb3I6ICd0ZXJ0aWFyeSdcbiAqIH07XG4gKlxuICogQGlucHV0IHByb3BzOiBMYW5ndWFnZVNlbGVjdG9yTWV0YWRhdGEgLSBDb25maWd1cmF0aW9uIGZvciB0aGUgbGFuZ3VhZ2Ugc2VsZWN0b3JcbiAqIEBvdXRwdXQgbGFuZ3VhZ2VDaGFuZ2U6IEV2ZW50RW1pdHRlcjxzdHJpbmc+IC0gRW1pdHRlZCB3aGVuIGxhbmd1YWdlIGNoYW5nZXNcbiAqL1xuZXhwb3J0IGNsYXNzIExhbmd1YWdlU2VsZWN0b3JDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIC8qKlxuICAgKiBMYW5ndWFnZSBzZWxlY3RvciBjb25maWd1cmF0aW9uIG9iamVjdC5cbiAgICogQHR5cGUge0xhbmd1YWdlU2VsZWN0b3JNZXRhZGF0YX1cbiAgICovXG4gIEBJbnB1dCgpXG4gIHByb3BzOiBMYW5ndWFnZVNlbGVjdG9yTWV0YWRhdGEgPSB7fTtcblxuICAvKipcbiAgICogRXZlbnQgZW1pdHRlZCB3aGVuIHRoZSBsYW5ndWFnZSBzZWxlY3Rpb24gY2hhbmdlcy5cbiAgICogRW1pdHMgdGhlIHNlbGVjdGVkIGxhbmd1YWdlIGNvZGUuXG4gICAqL1xuICBAT3V0cHV0KClcbiAgbGFuZ3VhZ2VDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblxuICAvKiogUG9wb3ZlciBzZWxlY3RvciBjb25maWd1cmF0aW9uICovXG4gIHBvcG92ZXJQcm9wczogUG9wb3ZlclNlbGVjdG9yTWV0YWRhdGE7XG5cbiAgLyoqIEN1cnJlbnQgbGFuZ3VhZ2Ugb2JzZXJ2YWJsZSAqL1xuICBjdXJyZW50TGFuZ3VhZ2UkOiBPYnNlcnZhYmxlPExhbmdPcHRpb24+O1xuXG4gIC8qKiBBdmFpbGFibGUgbGFuZ3VhZ2VzIG9ic2VydmFibGUgKi9cbiAgYXZhaWxhYmxlTGFuZ3VhZ2VzJDogT2JzZXJ2YWJsZTxMYW5nT3B0aW9uW10+O1xuXG4gIC8qKiBMYWJlbCBvYnNlcnZhYmxlIGZvciByZWFjdGl2ZSBjb250ZW50ICovXG4gIGxhYmVsJDogT2JzZXJ2YWJsZTxzdHJpbmc+O1xuXG4gIHByaXZhdGUgc3Vic2NyaXB0aW9ucyA9IG5ldyBTdWJzY3JpcHRpb24oKTtcblxuICAvKiogRGVmYXVsdCBsYW5ndWFnZSBkaXNwbGF5IG5hbWVzICovXG4gIHByaXZhdGUgcmVhZG9ubHkgZGVmYXVsdExhbmd1YWdlTmFtZXM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gICAgZXM6ICdFc3Bhw7FvbCcsXG4gICAgZW46ICdFbmdsaXNoJyxcbiAgICBmcjogJ0ZyYW7Dp2FpcycsXG4gICAgZGU6ICdEZXV0c2NoJyxcbiAgICBwdDogJ1BvcnR1Z3XDqnMnLFxuICAgIGl0OiAnSXRhbGlhbm8nLFxuICAgIHpoOiAn5Lit5paHJyxcbiAgICBqYTogJ+aXpeacrOiqnicsXG4gICAga286ICftlZzqta3slrQnLFxuICAgIHJ1OiAn0KDRg9GB0YHQutC40LknLFxuICAgIGFyOiAn2KfZhNi52LHYqNmK2KknLFxuICB9O1xuXG4gIC8qKiBEZWZhdWx0IGZsYWcgaWNvbnMgZm9yIGxhbmd1YWdlcyAqL1xuICBwcml2YXRlIHJlYWRvbmx5IGRlZmF1bHRMYW5ndWFnZUZsYWdzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICAgIGVzOiAn8J+HqvCfh7gnLFxuICAgIGVuOiAn8J+HuvCfh7gnLFxuICAgIGZyOiAn8J+Hq/Cfh7cnLFxuICAgIGRlOiAn8J+HqfCfh6onLFxuICAgIHB0OiAn8J+HtfCfh7knLFxuICAgIGl0OiAn8J+HrvCfh7knLFxuICAgIHpoOiAn8J+HqPCfh7MnLFxuICAgIGphOiAn8J+Hr/Cfh7UnLFxuICAgIGtvOiAn8J+HsPCfh7cnLFxuICAgIHJ1OiAn8J+Ht/Cfh7onLFxuICAgIGFyOiAn8J+HuPCfh6YnLFxuICB9O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgbGFuZ1NlcnZpY2U6IExhbmdTZXJ2aWNlLFxuICAgIHByaXZhdGUgY29udGVudFNlcnZpY2U6IENvbnRlbnRTZXJ2aWNlXG4gICkge1xuICAgIC8vIFJlZ2lzdGVyIHJlcXVpcmVkIGljb25zXG4gICAgYWRkSWNvbnMoeyBsYW5ndWFnZSwgZ2xvYmUgfSk7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmluaXRpYWxpemVMYW5ndWFnZVN0YXRlKCk7XG4gICAgdGhpcy5pbml0aWFsaXplTGFiZWwoKTtcbiAgICB0aGlzLmluaXRpYWxpemVQb3BvdmVyUHJvcHMoKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0aWFsaXplTGFuZ3VhZ2VTdGF0ZSgpIHtcbiAgICAvLyBHZXQgY3VycmVudCBsYW5ndWFnZSBhbmQgYXZhaWxhYmxlIGxhbmd1YWdlcyBmcm9tIExhbmdTZXJ2aWNlXG4gICAgdGhpcy5jdXJyZW50TGFuZ3VhZ2UkID0gdGhpcy5sYW5nU2VydmljZS5jdXJyZW50TGFuZyQ7XG4gICAgdGhpcy5hdmFpbGFibGVMYW5ndWFnZXMkID0gdGhpcy5jdXJyZW50TGFuZ3VhZ2UkLnBpcGUoXG4gICAgICBtYXAoKCkgPT4gdGhpcy5wcm9wcy5hdmFpbGFibGVMYW5ndWFnZXMgfHwgdGhpcy5sYW5nU2VydmljZS5hdmFpbGFibGVMYW5ncylcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0aWFsaXplTGFiZWwoKSB7XG4gICAgLy8gSW5pdGlhbGl6ZSBsYWJlbCBvYnNlcnZhYmxlIGJhc2VkIG9uIGNvbmZpZ3VyYXRpb25cbiAgICBpZiAodGhpcy5wcm9wcy5sYWJlbCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAvLyBTdGF0aWMgbGFiZWxcbiAgICAgIHRoaXMubGFiZWwkID0gb2YodGhpcy5wcm9wcy5sYWJlbCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLnByb3BzLmxhYmVsQ29uZmlnKSB7XG4gICAgICAvLyBSZWFjdGl2ZSBsYWJlbFxuICAgICAgdGhpcy5sYWJlbCQgPSB0aGlzLmNvbnRlbnRTZXJ2aWNlLmZyb21Db250ZW50KHtcbiAgICAgICAgY2xhc3NOYW1lOiB0aGlzLnByb3BzLmxhYmVsQ29uZmlnLmNsYXNzTmFtZSB8fCAnX2dsb2JhbCcsXG4gICAgICAgIGtleTogdGhpcy5wcm9wcy5sYWJlbENvbmZpZy5rZXksXG4gICAgICAgIGZhbGxiYWNrOiB0aGlzLnByb3BzLmxhYmVsQ29uZmlnLmZhbGxiYWNrIHx8ICdMYW5ndWFnZScsXG4gICAgICAgIGludGVycG9sYXRpb246IHRoaXMucHJvcHMubGFiZWxDb25maWcuaW50ZXJwb2xhdGlvbixcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBEZWZhdWx0IGxhYmVsIGZyb20gZ2xvYmFsIGNvbnRlbnRcbiAgICAgIHRoaXMubGFiZWwkID0gdGhpcy5jb250ZW50U2VydmljZS5mcm9tQ29udGVudCh7XG4gICAgICAgIGNsYXNzTmFtZTogJ19nbG9iYWwnLFxuICAgICAgICBrZXk6ICdsYW5ndWFnZScsXG4gICAgICAgIGZhbGxiYWNrOiAnSWRpb21hJyxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaW5pdGlhbGl6ZVBvcG92ZXJQcm9wcygpIHtcbiAgICAvLyBTdWJzY3JpYmUgdG8gbGFuZ3VhZ2Ugc3RhdGUgY2hhbmdlcyBhbmQgY29udGVudCBjaGFuZ2VzIHRvIHVwZGF0ZSBwb3BvdmVyIHByb3BzXG4gICAgY29uc3QgbGFuZ3VhZ2VTdWJzY3JpcHRpb24gPSBjb21iaW5lTGF0ZXN0KFtcbiAgICAgIHRoaXMuYXZhaWxhYmxlTGFuZ3VhZ2VzJCxcbiAgICAgIHRoaXMuY3VycmVudExhbmd1YWdlJCxcbiAgICAgIHRoaXMubGFuZ1NlcnZpY2UuY3VycmVudExhbmckLCAvLyBUaGlzIHdpbGwgdHJpZ2dlciB1cGRhdGVzIHdoZW4gbGFuZ3VhZ2UgY2hhbmdlc1xuICAgIF0pLnN1YnNjcmliZSgoW2F2YWlsYWJsZUxhbmd1YWdlcywgY3VycmVudExhbmd1YWdlXSkgPT4ge1xuICAgICAgdGhpcy51cGRhdGVQb3BvdmVyUHJvcHMoYXZhaWxhYmxlTGFuZ3VhZ2VzLCBjdXJyZW50TGFuZ3VhZ2UpO1xuICAgIH0pO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5hZGQobGFuZ3VhZ2VTdWJzY3JpcHRpb24pO1xuXG4gICAgLy8gU3Vic2NyaWJlIHRvIGxhYmVsIGNoYW5nZXNcbiAgICBjb25zdCBsYWJlbFN1YnNjcmlwdGlvbiA9IHRoaXMubGFiZWwkLnN1YnNjcmliZShsYWJlbCA9PiB7XG4gICAgICBpZiAodGhpcy5wb3BvdmVyUHJvcHMpIHtcbiAgICAgICAgdGhpcy5wb3BvdmVyUHJvcHMgPSB7XG4gICAgICAgICAgLi4udGhpcy5wb3BvdmVyUHJvcHMsXG4gICAgICAgICAgbGFiZWw6IHRoaXMucHJvcHMuc2hvd0xhYmVsICE9PSBmYWxzZSA/IGxhYmVsIDogdW5kZWZpbmVkLFxuICAgICAgICB9O1xuICAgICAgfVxuICAgIH0pO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5hZGQobGFiZWxTdWJzY3JpcHRpb24pO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVQb3BvdmVyUHJvcHMoYXZhaWxhYmxlTGFuZ3VhZ2VzOiBMYW5nT3B0aW9uW10sIGN1cnJlbnRMYW5ndWFnZTogTGFuZ09wdGlvbikge1xuICAgIC8vIENvbnZlcnQgbGFuZ3VhZ2UgY29kZXMgdG8gcG9wb3ZlciBvcHRpb25zXG4gICAgY29uc3Qgb3B0aW9uczogUG9wb3Zlck9wdGlvbltdID0gYXZhaWxhYmxlTGFuZ3VhZ2VzLm1hcChsYW5nID0+ICh7XG4gICAgICB2YWx1ZTogbGFuZyxcbiAgICAgIGxhYmVsOiB0aGlzLmdldExhbmd1YWdlRGlzcGxheU5hbWUobGFuZyksXG4gICAgICBpY29uOiB0aGlzLnByb3BzLnNob3dGbGFncyA/IHVuZGVmaW5lZCA6IHVuZGVmaW5lZCwgLy8gV2UnbGwgdXNlIHRleHQgZmxhZ3MgaW5zdGVhZFxuICAgIH0pKTtcblxuICAgIC8vIENyZWF0ZSBwb3BvdmVyIGNvbmZpZ3VyYXRpb25cbiAgICB0aGlzLnBvcG92ZXJQcm9wcyA9IHtcbiAgICAgIG9wdGlvbnMsXG4gICAgICBzZWxlY3RlZFZhbHVlOiBjdXJyZW50TGFuZ3VhZ2UsXG4gICAgICBsYWJlbDogdGhpcy5wcm9wcy5zaG93TGFiZWwgIT09IGZhbHNlID8gJycgOiB1bmRlZmluZWQsIC8vIFdpbGwgYmUgc2V0IGJ5IGxhYmVsIHN1YnNjcmlwdGlvblxuICAgICAgaWNvbjogJ2xhbmd1YWdlJyxcbiAgICAgIHBsYWNlaG9sZGVyOiAnU2VsZWNjaW9uYXIgaWRpb21hLi4uJyxcbiAgICAgIGNvbG9yOiB0aGlzLnByb3BzLmNvbG9yIHx8ICdtZWRpdW0nLFxuICAgICAgc2l6ZTogdGhpcy5wcm9wcy5zaXplIHx8ICdkZWZhdWx0JyxcbiAgICAgIGZpbGw6IHRoaXMucHJvcHMuZmlsbCB8fCAnb3V0bGluZScsXG4gICAgICBzaGFwZTogdGhpcy5wcm9wcy5zaGFwZSxcbiAgICAgIGV4cGFuZDogdGhpcy5wcm9wcy5leHBhbmQsXG4gICAgICBkaXNhYmxlZDogdGhpcy5wcm9wcy5kaXNhYmxlZCB8fCBmYWxzZSxcbiAgICAgIGludGVyZmFjZTogJ3BvcG92ZXInLFxuICAgICAgc2hvd0NoZWNrbWFyazogdHJ1ZSxcbiAgICAgIG11bHRpcGxlOiBmYWxzZSxcbiAgICAgIGNhbmNlbFRleHQ6ICdDYW5jZWxhcicsXG4gICAgICBva1RleHQ6ICdBY2VwdGFyJyxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRMYW5ndWFnZURpc3BsYXlOYW1lKGxhbmd1YWdlQ29kZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAvLyBVc2UgY3VzdG9tIG5hbWVzIGlmIHByb3ZpZGVkXG4gICAgaWYgKHRoaXMucHJvcHMuY3VzdG9tTGFuZ3VhZ2VOYW1lcz8uW2xhbmd1YWdlQ29kZV0pIHtcbiAgICAgIGNvbnN0IGN1c3RvbU5hbWUgPSB0aGlzLnByb3BzLmN1c3RvbUxhbmd1YWdlTmFtZXNbbGFuZ3VhZ2VDb2RlXTtcbiAgICAgIGNvbnN0IGZsYWcgPSB0aGlzLnByb3BzLnNob3dGbGFncyA/IHRoaXMuZGVmYXVsdExhbmd1YWdlRmxhZ3NbbGFuZ3VhZ2VDb2RlXSA6ICcnO1xuICAgICAgcmV0dXJuIGZsYWcgPyBgJHtmbGFnfSAke2N1c3RvbU5hbWV9YCA6IGN1c3RvbU5hbWU7XG4gICAgfVxuXG4gICAgLy8gVXNlIHJlYWN0aXZlIGNvbnRlbnQgZm9yIHRyYW5zbGF0ZWQgbGFuZ3VhZ2UgbmFtZXNcbiAgICAvLyBOb3RlOiBUaGlzIHdpbGwgdXNlIHRoZSBjdXJyZW50IGxhbmd1YWdlIHNpbmNlIGdldExhbmd1YWdlRGlzcGxheU5hbWUgaXMgY2FsbGVkIGR1cmluZyBzdWJzY3JpcHRpb24gdXBkYXRlc1xuICAgIGNvbnN0IHRyYW5zbGF0ZWROYW1lID0gdGhpcy5sYW5nU2VydmljZS5nZXRUZXh0KCdfZ2xvYmFsJywgYGxhbmd1YWdlTmFtZV8ke2xhbmd1YWdlQ29kZX1gKTtcbiAgICBjb25zdCBmbGFnID0gdGhpcy5wcm9wcy5zaG93RmxhZ3MgPyB0aGlzLmRlZmF1bHRMYW5ndWFnZUZsYWdzW2xhbmd1YWdlQ29kZV0gOiAnJztcblxuICAgIGlmICh0cmFuc2xhdGVkTmFtZSAmJiB0cmFuc2xhdGVkTmFtZSAhPT0gYGxhbmd1YWdlTmFtZV8ke2xhbmd1YWdlQ29kZX1gKSB7XG4gICAgICByZXR1cm4gZmxhZyA/IGAke2ZsYWd9ICR7dHJhbnNsYXRlZE5hbWV9YCA6IHRyYW5zbGF0ZWROYW1lO1xuICAgIH1cblxuICAgIC8vIEZhbGxiYWNrIHRvIGRlZmF1bHQgbmFtZXMsIHRoZW4gdG8gY29kZVxuICAgIGNvbnN0IGRlZmF1bHROYW1lID0gdGhpcy5kZWZhdWx0TGFuZ3VhZ2VOYW1lc1tsYW5ndWFnZUNvZGVdIHx8IGxhbmd1YWdlQ29kZS50b1VwcGVyQ2FzZSgpO1xuICAgIHJldHVybiBmbGFnID8gYCR7ZmxhZ30gJHtkZWZhdWx0TmFtZX1gIDogZGVmYXVsdE5hbWU7XG4gIH1cblxuICAvKipcbiAgICogSGFuZGxlIGxhbmd1YWdlIHNlbGVjdGlvbiBjaGFuZ2UuXG4gICAqIEBwYXJhbSBzZWxlY3RlZExhbmd1YWdlIC0gVGhlIHNlbGVjdGVkIGxhbmd1YWdlIGNvZGUocylcbiAgICovXG4gIG9uTGFuZ3VhZ2VDaGFuZ2Uoc2VsZWN0ZWRMYW5ndWFnZTogc3RyaW5nIHwgc3RyaW5nW10pIHtcbiAgICBpZiAodHlwZW9mIHNlbGVjdGVkTGFuZ3VhZ2UgPT09ICdzdHJpbmcnKSB7XG4gICAgICAvLyBVcGRhdGUgdGhlIGxhbmd1YWdlIHNlcnZpY2VcbiAgICAgIHRoaXMubGFuZ1NlcnZpY2Uuc2V0TGFuZyhzZWxlY3RlZExhbmd1YWdlKTtcblxuICAgICAgLy8gRW1pdCB0aGUgY2hhbmdlIGV2ZW50XG4gICAgICB0aGlzLmxhbmd1YWdlQ2hhbmdlLmVtaXQoc2VsZWN0ZWRMYW5ndWFnZSk7XG4gICAgfVxuICB9XG59XG4iXX0=
219
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFuZ3VhZ2Utc2VsZWN0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGVjaC1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvbGFuZ3VhZ2Utc2VsZWN0b3IvbGFuZ3VhZ2Utc2VsZWN0b3IuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDakQsT0FBTyxFQUFjLFlBQVksRUFBRSxhQUFhLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ25FLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUdyQyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQzs7O0FBYTFGOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0EwQ0c7QUFDSCxNQUFNLE9BQU8seUJBQXlCO0lBMkRwQyxZQUFvQixXQUF3QjtRQUF4QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQTFENUM7OztXQUdHO1FBRUgsVUFBSyxHQUE2QixFQUFFLENBQUM7UUFFckM7OztXQUdHO1FBRUgsbUJBQWMsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBY3BDLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUUzQyxxQ0FBcUM7UUFDcEIseUJBQW9CLEdBQTJCO1lBQzlELEVBQUUsRUFBRSxTQUFTO1lBQ2IsRUFB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RUFBRSx3QkFBd0IsQ0FBQyxZQUN2Qzs7R0FFVDtnRkFvREQsS0FBSztzQkFESixLQUFLO2dCQVFOLGNBQWM7c0JBRGIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGFkZEljb25zIH0gZnJvbSAnaW9uaWNvbnMnO1xuaW1wb3J0IHsgZ2xvYmUsIGxhbmd1YWdlIH0gZnJvbSAnaW9uaWNvbnMvaWNvbnMnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9uLCBjb21iaW5lTGF0ZXN0LCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgTGFuZ1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9sYW5nLXByb3ZpZGVyL2xhbmctcHJvdmlkZXIuc2VydmljZSc7XG5pbXBvcnQgeyBMYW5nT3B0aW9uIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvbGFuZy1wcm92aWRlci90eXBlcyc7XG5pbXBvcnQgeyBQb3BvdmVyU2VsZWN0b3JDb21wb25lbnQgfSBmcm9tICcuLi9wb3BvdmVyLXNlbGVjdG9yL3BvcG92ZXItc2VsZWN0b3IuY29tcG9uZW50JztcbmltcG9ydCB7IFBvcG92ZXJPcHRpb24sIFBvcG92ZXJTZWxlY3Rvck1ldGFkYXRhIH0gZnJvbSAnLi4vcG9wb3Zlci1zZWxlY3Rvci90eXBlcyc7XG5pbXBvcnQgeyBMYW5ndWFnZVNlbGVjdG9yTWV0YWRhdGEgfSBmcm9tICcuL3R5cGVzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsLWxhbmd1YWdlLXNlbGVjdG9yJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgUG9wb3ZlclNlbGVjdG9yQ29tcG9uZW50XSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8dmFsLXBvcG92ZXItc2VsZWN0b3IgW3Byb3BzXT1cInBvcG92ZXJQcm9wc1wiIChzZWxlY3Rpb25DaGFuZ2UpPVwib25MYW5ndWFnZUNoYW5nZSgkZXZlbnQpXCI+IDwvdmFsLXBvcG92ZXItc2VsZWN0b3I+XG4gIGAsXG4gIHN0eWxlVXJsczogWycuL2xhbmd1YWdlLXNlbGVjdG9yLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuLyoqXG4gKiB2YWwtbGFuZ3VhZ2Utc2VsZWN0b3JcbiAqXG4gKiBBIHNwZWNpYWxpemVkIGxhbmd1YWdlIHNlbGVjdG9yIGNvbXBvbmVudCB0aGF0IGludGVncmF0ZXMgd2l0aCB0aGUgTGFuZ1NlcnZpY2UuXG4gKiBVc2VzIHRoZSBwb3BvdmVyLXNlbGVjdG9yIGNvbXBvbmVudCBpbnRlcm5hbGx5IGFuZCBwcm92aWRlcyBsYW5ndWFnZS1zcGVjaWZpYyBmdW5jdGlvbmFsaXR5LlxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBCYXNpYyB1c2FnZSAoYXV0by1kZXRlY3RzIGxhbmd1YWdlcyBmcm9tIExhbmdTZXJ2aWNlKVxuICogPHZhbC1sYW5ndWFnZS1zZWxlY3RvclxuICogICBbcHJvcHNdPVwieyBzaG93TGFiZWw6IHRydWUsIHNob3dGbGFnczogdHJ1ZSB9XCI+XG4gKiA8L3ZhbC1sYW5ndWFnZS1zZWxlY3Rvcj5cbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gQ3VzdG9tIGNvbmZpZ3VyYXRpb25cbiAqIGNvbnN0IGxhbmd1YWdlUHJvcHM6IExhbmd1YWdlU2VsZWN0b3JNZXRhZGF0YSA9IHtcbiAqICAgc2hvd0xhYmVsOiB0cnVlLFxuICogICBsYWJlbDogJ0Nob29zZSBMYW5ndWFnZScsXG4gKiAgIHNob3dGbGFnczogdHJ1ZSxcbiAqICAgY29sb3I6ICdwcmltYXJ5JyxcbiAqICAgc2l6ZTogJ2xhcmdlJyxcbiAqICAgZmlsbDogJ291dGxpbmUnLFxuICogICBjdXN0b21MYW5ndWFnZU5hbWVzOiB7XG4gKiAgICAgJ2VzJzogJ0VzcGHDsW9sJyxcbiAqICAgICAnZW4nOiAnRW5nbGlzaCcsXG4gKiAgICAgJ2ZyJzogJ0ZyYW7Dp2FpcydcbiAqICAgfVxuICogfTtcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gV2l0aCByZWFjdGl2ZSBjb250ZW50XG4gKiBjb25zdCBsYW5ndWFnZVByb3BzOiBMYW5ndWFnZVNlbGVjdG9yTWV0YWRhdGEgPSB7XG4gKiAgIHNob3dMYWJlbDogdHJ1ZSxcbiAqICAgbGFiZWxDb25maWc6IHtcbiAqICAgICBjbGFzc05hbWU6ICdteUNvbXBvbmVudCcsXG4gKiAgICAga2V5OiAnbGFuZ3VhZ2VMYWJlbCcsXG4gKiAgICAgZmFsbGJhY2s6ICdMYW5ndWFnZSdcbiAqICAgfSxcbiAqICAgY29sb3I6ICd0ZXJ0aWFyeSdcbiAqIH07XG4gKlxuICogQGlucHV0IHByb3BzOiBMYW5ndWFnZVNlbGVjdG9yTWV0YWRhdGEgLSBDb25maWd1cmF0aW9uIGZvciB0aGUgbGFuZ3VhZ2Ugc2VsZWN0b3JcbiAqIEBvdXRwdXQgbGFuZ3VhZ2VDaGFuZ2U6IEV2ZW50RW1pdHRlcjxzdHJpbmc+IC0gRW1pdHRlZCB3aGVuIGxhbmd1YWdlIGNoYW5nZXNcbiAqL1xuZXhwb3J0IGNsYXNzIExhbmd1YWdlU2VsZWN0b3JDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIC8qKlxuICAgKiBMYW5ndWFnZSBzZWxlY3RvciBjb25maWd1cmF0aW9uIG9iamVjdC5cbiAgICogQHR5cGUge0xhbmd1YWdlU2VsZWN0b3JNZXRhZGF0YX1cbiAgICovXG4gIEBJbnB1dCgpXG4gIHByb3BzOiBMYW5ndWFnZVNlbGVjdG9yTWV0YWRhdGEgPSB7fTtcblxuICAvKipcbiAgICogRXZlbnQgZW1pdHRlZCB3aGVuIHRoZSBsYW5ndWFnZSBzZWxlY3Rpb24gY2hhbmdlcy5cbiAgICogRW1pdHMgdGhlIHNlbGVjdGVkIGxhbmd1YWdlIGNvZGUuXG4gICAqL1xuICBAT3V0cHV0KClcbiAgbGFuZ3VhZ2VDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblxuICAvKiogUG9wb3ZlciBzZWxlY3RvciBjb25maWd1cmF0aW9uICovXG4gIHBvcG92ZXJQcm9wczogUG9wb3ZlclNlbGVjdG9yTWV0YWRhdGE7XG5cbiAgLyoqIEN1cnJlbnQgbGFuZ3VhZ2Ugb2JzZXJ2YWJsZSAqL1xuICBjdXJyZW50TGFuZ3VhZ2UkOiBPYnNlcnZhYmxlPExhbmdPcHRpb24+O1xuXG4gIC8qKiBBdmFpbGFibGUgbGFuZ3VhZ2VzIG9ic2VydmFibGUgKi9cbiAgYXZhaWxhYmxlTGFuZ3VhZ2VzJDogT2JzZXJ2YWJsZTxMYW5nT3B0aW9uW10+O1xuXG4gIC8qKiBMYWJlbCBvYnNlcnZhYmxlIGZvciByZWFjdGl2ZSBjb250ZW50ICovXG4gIGxhYmVsJDogT2JzZXJ2YWJsZTxzdHJpbmc+O1xuXG4gIHByaXZhdGUgc3Vic2NyaXB0aW9ucyA9IG5ldyBTdWJzY3JpcHRpb24oKTtcblxuICAvKiogRGVmYXVsdCBsYW5ndWFnZSBkaXNwbGF5IG5hbWVzICovXG4gIHByaXZhdGUgcmVhZG9ubHkgZGVmYXVsdExhbmd1YWdlTmFtZXM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gICAgZXM6ICdFc3Bhw7FvbCcsXG4gICAgZW46ICdFbmdsaXNoJyxcbiAgICBmcjogJ0ZyYW7Dp2FpcycsXG4gICAgZGU6ICdEZXV0c2NoJyxcbiAgICBwdDogJ1BvcnR1Z3XDqnMnLFxuICAgIGl0OiAnSXRhbGlhbm8nLFxuICAgIHpoOiAn5Lit5paHJyxcbiAgICBqYTogJ+aXpeacrOiqnicsXG4gICAga286ICftlZzqta3slrQnLFxuICAgIHJ1OiAn0KDRg9GB0YHQutC40LknLFxuICAgIGFyOiAn2KfZhNi52LHYqNmK2KknLFxuICB9O1xuXG4gIC8qKiBEZWZhdWx0IGZsYWcgaWNvbnMgZm9yIGxhbmd1YWdlcyAqL1xuICBwcml2YXRlIHJlYWRvbmx5IGRlZmF1bHRMYW5ndWFnZUZsYWdzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICAgIGVzOiAn8J+HqvCfh7gnLFxuICAgIGVuOiAn8J+HuvCfh7gnLFxuICAgIGZyOiAn8J+Hq/Cfh7cnLFxuICAgIGRlOiAn8J+HqfCfh6onLFxuICAgIHB0OiAn8J+HtfCfh7knLFxuICAgIGl0OiAn8J+HrvCfh7knLFxuICAgIHpoOiAn8J+HqPCfh7MnLFxuICAgIGphOiAn8J+Hr/Cfh7UnLFxuICAgIGtvOiAn8J+HsPCfh7cnLFxuICAgIHJ1OiAn8J+Ht/Cfh7onLFxuICAgIGFyOiAn8J+HuPCfh6YnLFxuICB9O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgbGFuZ1NlcnZpY2U6IExhbmdTZXJ2aWNlKSB7XG4gICAgLy8gUmVnaXN0ZXIgcmVxdWlyZWQgaWNvbnNcbiAgICBhZGRJY29ucyh7IGxhbmd1YWdlLCBnbG9iZSB9KTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuaW5pdGlhbGl6ZUxhbmd1YWdlU3RhdGUoKTtcbiAgICB0aGlzLmluaXRpYWxpemVMYWJlbCgpO1xuICAgIHRoaXMuaW5pdGlhbGl6ZVBvcG92ZXJQcm9wcygpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwcml2YXRlIGluaXRpYWxpemVMYW5ndWFnZVN0YXRlKCkge1xuICAgIC8vIEdldCBjdXJyZW50IGxhbmd1YWdlIGFuZCBhdmFpbGFibGUgbGFuZ3VhZ2VzIGZyb20gTGFuZ1NlcnZpY2VcbiAgICB0aGlzLmN1cnJlbnRMYW5ndWFnZSQgPSB0aGlzLmxhbmdTZXJ2aWNlLmN1cnJlbnRMYW5nJDtcbiAgICB0aGlzLmF2YWlsYWJsZUxhbmd1YWdlcyQgPSB0aGlzLmN1cnJlbnRMYW5ndWFnZSQucGlwZShcbiAgICAgIG1hcCgoKSA9PiB0aGlzLnByb3BzLmF2YWlsYWJsZUxhbmd1YWdlcyB8fCB0aGlzLmxhbmdTZXJ2aWNlLmF2YWlsYWJsZUxhbmdzKVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGluaXRpYWxpemVMYWJlbCgpIHtcbiAgICAvLyBJbml0aWFsaXplIGxhYmVsIG9ic2VydmFibGUgYmFzZWQgb24gY29uZmlndXJhdGlvblxuICAgIGlmICh0aGlzLnByb3BzLmxhYmVsICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIC8vIFN0YXRpYyBsYWJlbFxuICAgICAgdGhpcy5sYWJlbCQgPSBvZih0aGlzLnByb3BzLmxhYmVsKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMucHJvcHMubGFiZWxDb25maWcpIHtcbiAgICAgIC8vIFJlYWN0aXZlIGxhYmVsXG4gICAgICB0aGlzLmxhYmVsJCA9IHRoaXMubGFuZ1NlcnZpY2UuZ2V0Q29udGVudChcbiAgICAgICAgdGhpcy5wcm9wcy5sYWJlbENvbmZpZy5jbGFzc05hbWUgfHwgJ19nbG9iYWwnLFxuICAgICAgICB0aGlzLnByb3BzLmxhYmVsQ29uZmlnLmtleSxcbiAgICAgICAgdGhpcy5wcm9wcy5sYWJlbENvbmZpZy5mYWxsYmFjayB8fCAnTGFuZ3VhZ2UnXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBEZWZhdWx0IGxhYmVsIGZyb20gZ2xvYmFsIGNvbnRlbnRcbiAgICAgIHRoaXMubGFiZWwkID0gdGhpcy5sYW5nU2VydmljZS5nZXRDb250ZW50KCdfZ2xvYmFsJywgJ2xhbmd1YWdlJywgJ0lkaW9tYScpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaW5pdGlhbGl6ZVBvcG92ZXJQcm9wcygpIHtcbiAgICAvLyBTdWJzY3JpYmUgdG8gbGFuZ3VhZ2Ugc3RhdGUgY2hhbmdlcyBhbmQgY29udGVudCBjaGFuZ2VzIHRvIHVwZGF0ZSBwb3BvdmVyIHByb3BzXG4gICAgY29uc3QgbGFuZ3VhZ2VTdWJzY3JpcHRpb24gPSBjb21iaW5lTGF0ZXN0KFtcbiAgICAgIHRoaXMuYXZhaWxhYmxlTGFuZ3VhZ2VzJCxcbiAgICAgIHRoaXMuY3VycmVudExhbmd1YWdlJCxcbiAgICAgIHRoaXMubGFuZ1NlcnZpY2UuY3VycmVudExhbmckLCAvLyBUaGlzIHdpbGwgdHJpZ2dlciB1cGRhdGVzIHdoZW4gbGFuZ3VhZ2UgY2hhbmdlc1xuICAgIF0pLnN1YnNjcmliZSgoW2F2YWlsYWJsZUxhbmd1YWdlcywgY3VycmVudExhbmd1YWdlXSkgPT4ge1xuICAgICAgdGhpcy51cGRhdGVQb3BvdmVyUHJvcHMoYXZhaWxhYmxlTGFuZ3VhZ2VzLCBjdXJyZW50TGFuZ3VhZ2UpO1xuICAgIH0pO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5hZGQobGFuZ3VhZ2VTdWJzY3JpcHRpb24pO1xuXG4gICAgLy8gU3Vic2NyaWJlIHRvIGxhYmVsIGNoYW5nZXNcbiAgICBjb25zdCBsYWJlbFN1YnNjcmlwdGlvbiA9IHRoaXMubGFiZWwkLnN1YnNjcmliZShsYWJlbCA9PiB7XG4gICAgICBpZiAodGhpcy5wb3BvdmVyUHJvcHMpIHtcbiAgICAgICAgdGhpcy5wb3BvdmVyUHJvcHMgPSB7XG4gICAgICAgICAgLi4udGhpcy5wb3BvdmVyUHJvcHMsXG4gICAgICAgICAgbGFiZWw6IHRoaXMucHJvcHMuc2hvd0xhYmVsICE9PSBmYWxzZSA/IGxhYmVsIDogdW5kZWZpbmVkLFxuICAgICAgICB9O1xuICAgICAgfVxuICAgIH0pO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5hZGQobGFiZWxTdWJzY3JpcHRpb24pO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVQb3BvdmVyUHJvcHMoYXZhaWxhYmxlTGFuZ3VhZ2VzOiBMYW5nT3B0aW9uW10sIGN1cnJlbnRMYW5ndWFnZTogTGFuZ09wdGlvbikge1xuICAgIC8vIENvbnZlcnQgbGFuZ3VhZ2UgY29kZXMgdG8gcG9wb3ZlciBvcHRpb25zXG4gICAgY29uc3Qgb3B0aW9uczogUG9wb3Zlck9wdGlvbltdID0gYXZhaWxhYmxlTGFuZ3VhZ2VzLm1hcChsYW5nID0+ICh7XG4gICAgICB2YWx1ZTogbGFuZyxcbiAgICAgIGxhYmVsOiB0aGlzLmdldExhbmd1YWdlRGlzcGxheU5hbWUobGFuZyksXG4gICAgICBpY29uOiB0aGlzLnByb3BzLnNob3dGbGFncyA/IHVuZGVmaW5lZCA6IHVuZGVmaW5lZCwgLy8gV2UnbGwgdXNlIHRleHQgZmxhZ3MgaW5zdGVhZFxuICAgIH0pKTtcblxuICAgIC8vIENyZWF0ZSBwb3BvdmVyIGNvbmZpZ3VyYXRpb25cbiAgICB0aGlzLnBvcG92ZXJQcm9wcyA9IHtcbiAgICAgIG9wdGlvbnMsXG4gICAgICBzZWxlY3RlZFZhbHVlOiBjdXJyZW50TGFuZ3VhZ2UsXG4gICAgICBsYWJlbDogdGhpcy5wcm9wcy5zaG93TGFiZWwgIT09IGZhbHNlID8gJycgOiB1bmRlZmluZWQsIC8vIFdpbGwgYmUgc2V0IGJ5IGxhYmVsIHN1YnNjcmlwdGlvblxuICAgICAgaWNvbjogJ2xhbmd1YWdlJyxcbiAgICAgIHBsYWNlaG9sZGVyOiAnU2VsZWNjaW9uYXIgaWRpb21hLi4uJyxcbiAgICAgIGNvbG9yOiB0aGlzLnByb3BzLmNvbG9yIHx8ICdtZWRpdW0nLFxuICAgICAgc2l6ZTogdGhpcy5wcm9wcy5zaXplIHx8ICdkZWZhdWx0JyxcbiAgICAgIGZpbGw6IHRoaXMucHJvcHMuZmlsbCB8fCAnb3V0bGluZScsXG4gICAgICBzaGFwZTogdGhpcy5wcm9wcy5zaGFwZSxcbiAgICAgIGV4cGFuZDogdGhpcy5wcm9wcy5leHBhbmQsXG4gICAgICBkaXNhYmxlZDogdGhpcy5wcm9wcy5kaXNhYmxlZCB8fCBmYWxzZSxcbiAgICAgIGludGVyZmFjZTogJ3BvcG92ZXInLFxuICAgICAgc2hvd0NoZWNrbWFyazogdHJ1ZSxcbiAgICAgIG11bHRpcGxlOiBmYWxzZSxcbiAgICAgIGNhbmNlbFRleHQ6ICdDYW5jZWxhcicsXG4gICAgICBva1RleHQ6ICdBY2VwdGFyJyxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRMYW5ndWFnZURpc3BsYXlOYW1lKGxhbmd1YWdlQ29kZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAvLyBVc2UgY3VzdG9tIG5hbWVzIGlmIHByb3ZpZGVkXG4gICAgaWYgKHRoaXMucHJvcHMuY3VzdG9tTGFuZ3VhZ2VOYW1lcz8uW2xhbmd1YWdlQ29kZV0pIHtcbiAgICAgIGNvbnN0IGN1c3RvbU5hbWUgPSB0aGlzLnByb3BzLmN1c3RvbUxhbmd1YWdlTmFtZXNbbGFuZ3VhZ2VDb2RlXTtcbiAgICAgIGNvbnN0IGZsYWcgPSB0aGlzLnByb3BzLnNob3dGbGFncyA/IHRoaXMuZGVmYXVsdExhbmd1YWdlRmxhZ3NbbGFuZ3VhZ2VDb2RlXSA6ICcnO1xuICAgICAgcmV0dXJuIGZsYWcgPyBgJHtmbGFnfSAke2N1c3RvbU5hbWV9YCA6IGN1c3RvbU5hbWU7XG4gICAgfVxuXG4gICAgLy8gVXNlIHJlYWN0aXZlIGNvbnRlbnQgZm9yIHRyYW5zbGF0ZWQgbGFuZ3VhZ2UgbmFtZXNcbiAgICAvLyBOb3RlOiBUaGlzIHdpbGwgdXNlIHRoZSBjdXJyZW50IGxhbmd1YWdlIHNpbmNlIGdldExhbmd1YWdlRGlzcGxheU5hbWUgaXMgY2FsbGVkIGR1cmluZyBzdWJzY3JpcHRpb24gdXBkYXRlc1xuICAgIGNvbnN0IHRyYW5zbGF0ZWROYW1lID0gdGhpcy5sYW5nU2VydmljZS5nZXRUZXh0KCdfZ2xvYmFsJywgYGxhbmd1YWdlTmFtZV8ke2xhbmd1YWdlQ29kZX1gKTtcbiAgICBjb25zdCBmbGFnID0gdGhpcy5wcm9wcy5zaG93RmxhZ3MgPyB0aGlzLmRlZmF1bHRMYW5ndWFnZUZsYWdzW2xhbmd1YWdlQ29kZV0gOiAnJztcblxuICAgIGlmICh0cmFuc2xhdGVkTmFtZSAmJiB0cmFuc2xhdGVkTmFtZSAhPT0gYGxhbmd1YWdlTmFtZV8ke2xhbmd1YWdlQ29kZX1gKSB7XG4gICAgICByZXR1cm4gZmxhZyA/IGAke2ZsYWd9ICR7dHJhbnNsYXRlZE5hbWV9YCA6IHRyYW5zbGF0ZWROYW1lO1xuICAgIH1cblxuICAgIC8vIEZhbGxiYWNrIHRvIGRlZmF1bHQgbmFtZXMsIHRoZW4gdG8gY29kZVxuICAgIGNvbnN0IGRlZmF1bHROYW1lID0gdGhpcy5kZWZhdWx0TGFuZ3VhZ2VOYW1lc1tsYW5ndWFnZUNvZGVdIHx8IGxhbmd1YWdlQ29kZS50b1VwcGVyQ2FzZSgpO1xuICAgIHJldHVybiBmbGFnID8gYCR7ZmxhZ30gJHtkZWZhdWx0TmFtZX1gIDogZGVmYXVsdE5hbWU7XG4gIH1cblxuICAvKipcbiAgICogSGFuZGxlIGxhbmd1YWdlIHNlbGVjdGlvbiBjaGFuZ2UuXG4gICAqIEBwYXJhbSBzZWxlY3RlZExhbmd1YWdlIC0gVGhlIHNlbGVjdGVkIGxhbmd1YWdlIGNvZGUocylcbiAgICovXG4gIG9uTGFuZ3VhZ2VDaGFuZ2Uoc2VsZWN0ZWRMYW5ndWFnZTogc3RyaW5nIHwgc3RyaW5nW10pIHtcbiAgICBpZiAodHlwZW9mIHNlbGVjdGVkTGFuZ3VhZ2UgPT09ICdzdHJpbmcnKSB7XG4gICAgICAvLyBVcGRhdGUgdGhlIGxhbmd1YWdlIHNlcnZpY2VcbiAgICAgIHRoaXMubGFuZ1NlcnZpY2Uuc2V0TGFuZyhzZWxlY3RlZExhbmd1YWdlKTtcblxuICAgICAgLy8gRW1pdCB0aGUgY2hhbmdlIGV2ZW50XG4gICAgICB0aGlzLmxhbmd1YWdlQ2hhbmdlLmVtaXQoc2VsZWN0ZWRMYW5ndWFnZSk7XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -280,4 +280,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
280
280
  }], onSelectChange: [{
281
281
  type: Output
282
282
  }] } });
283
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0ZWNoLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL29yZ2FuaXNtcy9mb3JtL2Zvcm0uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFjLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNGLE9BQU8sRUFBdUMsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUxRixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDcEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDekUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDekUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBQzNGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG1EQUFtRCxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHVEQUF1RCxDQUFDO0FBQzlGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG1EQUFtRCxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUNwRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUNyRixPQUFPLEVB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bUIsNERBQ25CLG9CQUFvQixzR0FDcEIsZ0JBQWdCLDJFQUNoQixhQUFhLHdFQUNiLHFCQUFxQixpRkFDckIsa0JBQWtCLDhFQUNsQixrQkFBa0IsOEVBQ2xCLGtCQUFrQiw4RUFDbEIsbUJBQW1CLCtFQUNuQixvQkFBb0IsZ0ZBQ3BCLG1CQUFtQiwrRUFDbkIsc0JBQXNCLGtGQUN0QixpQkFBaUIsNkVBQ2pCLHFCQUFxQix1SkFDckIsdUJBQXVCOzs0RkFzRWQsYUFBYTtrQkE3RnpCLFNBQVM7K0JBQ0UsVUFBVSxjQUNSLElBQUksV0FDUDt3QkFDUCxZQUFZO3dCQUNaLG1CQUFtQjt3QkFDbkIsZ0JBQWdCO3dCQUNoQixjQUFjO3dCQUNkLGtCQUFrQjt3QkFDbEIsbUJBQW1CO3dCQUNuQixvQkFBb0I7d0JBQ3BCLGdCQUFnQjt3QkFDaEIsYUFBYTt3QkFDYixxQkFBcUI7d0JBQ3JCLGtCQUFrQjt3QkFDbEIsa0JBQWtCO3dCQUNsQixrQkFBa0I7d0JBQ2xCLG1CQUFtQjt3QkFDbkIsb0JBQW9CO3dCQUNwQixtQkFBbUI7d0JBQ25CLHNCQUFzQjt3QkFDdEIsaUJBQWlCO3dCQUNqQixxQkFBcUI7d0JBQ3JCLHVCQUF1QjtxQkFDeEIsWUFDUzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FpRVQ7eUdBS0QsS0FBSztzQkFESixLQUFLO2dCQUlOLFFBQVE7c0JBRFAsTUFBTTtnQkFJUCxTQUFTO3NCQURSLE1BQU07Z0JBSVAsY0FBYztzQkFEYixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBpc0F0RW5kIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL3V0aWxzL2RvbSc7XG5pbXBvcnQgeyBEaXNwbGF5Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYXRvbXMvZGlzcGxheS9kaXNwbGF5LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEaXZpZGVyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYXRvbXMvZGl2aWRlci9kaXZpZGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUaXRsZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2F0b21zL3RpdGxlL3RpdGxlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCdXR0b25Hcm91cENvbXBvbmVudCB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy9idXR0b24tZ3JvdXAvYnV0dG9uLWdyb3VwLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDaGVja0lucHV0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL2NoZWNrLWlucHV0L2NoZWNrLWlucHV0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb21tZW50SW5wdXRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvY29tbWVudC1pbnB1dC9jb21tZW50LWlucHV0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEYXRlSW5wdXRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvZGF0ZS1pbnB1dC9kYXRlLWlucHV0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBFbWFpbElucHV0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL2VtYWlsLWlucHV0L2VtYWlsLWlucHV0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGaWxlSW5wdXRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvZmlsZS1pbnB1dC9maWxlLWlucHV0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBIaW50Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL2hpbnQvaGludC5jb21wb25lbnQnO1xuaW1wb3J0IHsgSG91cklucHV0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL2hvdXItaW5wdXQvaG91ci1pbnB1dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgTnVtYmVySW5wdXRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvbnVtYmVyLWlucHV0L251bWJlci1pbnB1dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgUGFzc3dvcmRJbnB1dENvbXBvbmVudCB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy9wYXNzd29yZC1pbnB1dC9wYXNzd29yZC1pbnB1dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgUGluSW5wdXRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvcGluLWlucHV0L3Bpbi1pbnB1dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgUmFkaW9JbnB1dENvbXBvbmVudCB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy9yYWRpby1pbnB1dC9yYWRpby1pbnB1dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2VhcmNoU2VsZWN0b3JDb21wb25lbnQgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvc2VsZWN0LWlucHV0L3NlbGVjdC1pbnB1dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2VsZWN0U2VhcmNoQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL3NlbGVjdC1zZWFyY2gvc2VsZWN0LXNlYXJjaC5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGV4dElucHV0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL3RleHQtaW5wdXQvdGV4dC1pbnB1dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQnV0dG9uTWV0YWRhdGEsIENvbXBvbmVudFN0YXRlcywgRm9ybU1ldGFkYXRhLCBGb3JtU3VibWl0LCBJbnB1dE1ldGFkYXRhLCBJbnB1dFR5cGUgfSBmcm9tICcuLi8uLi90eXBlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbC1mb3JtJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIERpc3BsYXlDb21wb25lbnQsXG4gICAgVGl0bGVDb21wb25lbnQsXG4gICAgVGV4dElucHV0Q29tcG9uZW50LFxuICAgIENoZWNrSW5wdXRDb21wb25lbnQsXG4gICAgQnV0dG9uR3JvdXBDb21wb25lbnQsXG4gICAgRGl2aWRlckNvbXBvbmVudCxcbiAgICBIaW50Q29tcG9uZW50LFxuICAgIENvbW1lbnRJbnB1dENvbXBvbmVudCxcbiAgICBEYXRlSW5wdXRDb21wb25lbnQsXG4gICAgRmlsZUlucHV0Q29tcG9uZW50LFxuICAgIEhvdXJJbnB1dENvbXBvbmVudCxcbiAgICBFbWFpbElucHV0Q29tcG9uZW50LFxuICAgIE51bWJlcklucHV0Q29tcG9uZW50LFxuICAgIFJhZGlvSW5wdXRDb21wb25lbnQsXG4gICAgUGFzc3dvcmRJbnB1dENvbXBvbmVudCxcbiAgICBQaW5JbnB1dENvbXBvbmVudCxcbiAgICBTZWxlY3RTZWFyY2hDb21wb25lbnQsXG4gICAgU2VhcmNoU2VsZWN0b3JDb21wb25lbnQsXG4gIF0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lclwiPlxuICAgICAgPGZvcm0gW2Zvcm1Hcm91cF09XCJmb3JtXCI+XG4gICAgICAgIDx2YWwtZGlzcGxheVxuICAgICAgICAgICpuZ0lmPVwicHJvcHMubmFtZVwiXG4gICAgICAgICAgW3Byb3BzXT1cIntcbiAgICAgICAgICAgIGNvbnRlbnQ6IHByb3BzLm5hbWUsXG4gICAgICAgICAgICBjb2xvcjogJ2RhcmsnLFxuICAgICAgICAgICAgc2l6ZTogJ2xhcmdlJyxcbiAgICAgICAgICB9XCJcbiAgICAgICAgPjwvdmFsLWRpc3BsYXk+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzZWN0aW9uXCIgKm5nRm9yPVwibGV0IHMgb2YgcHJvcHMuc2VjdGlvbnNcIj5cbiAgICAgICAgICA8dmFsLXRpdGxlIFtwcm9wc109XCJ7IGNvbnRlbnQ6IHMubmFtZSwgc2l6ZTogJ2xhcmdlJywgY29sb3I6ICcnLCBib2xkOiBmYWxzZSB9XCI+PC92YWwtdGl0bGU+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0XCIgKm5nRm9yPVwibGV0IGYgb2Ygcy5maWVsZHNcIj5cbiAgICAgICAgICAgIDx2YWwtdGl0bGUgW3Byb3BzXT1cInsgY29udGVudDogZi5sYWJlbCwgc2l6ZTogJ3NtYWxsJywgY29sb3I6ICdkYXJrJywgYm9sZDogZmFsc2UgfVwiPjwvdmFsLXRpdGxlPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImYudHlwZSA9PT0gdHlwZXMuVEVYVFwiPlxuICAgICAgICAgICAgICA8dmFsLXRleHQtaW5wdXQgW3Byb3BzXT1cImdldEZpZWxkUHJvcChmKVwiPjwvdmFsLXRleHQtaW5wdXQ+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJmLnR5cGUgPT09IHR5cGVzLkNIRUNLXCI+XG4gICAgICAgICAgICAgIDx2YWwtY2hlY2staW5wdXQ+PC92YWwtY2hlY2staW5wdXQ+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJmLnR5cGUgPT09IHR5cGVzLkNPTU1FTlRcIj5cbiAgICAgICAgICAgICAgPHZhbC1jb21tZW50LWlucHV0IFtwcm9wc109XCJnZXRGaWVsZFByb3AoZilcIj48L3ZhbC1jb21tZW50LWlucHV0PlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZi50eXBlID09PSB0eXBlcy5EQVRFXCI+XG4gICAgICAgICAgICAgIDx2YWwtZGF0ZS1pbnB1dCBbcHJvcHNdPVwiZ2V0RmllbGRQcm9wKGYpXCI+PC92YWwtZGF0ZS1pbnB1dD5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImYudHlwZSA9PT0gdHlwZXMuRU1BSUxcIj5cbiAgICAgICAgICAgICAgPHZhbC1lbWFpbC1pbnB1dCBbcHJvcHNdPVwiZ2V0RmllbGRQcm9wKGYpXCI+PC92YWwtZW1haWwtaW5wdXQ+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJmLnR5cGUgPT09IHR5cGVzLkZJTEVcIj5cbiAgICAgICAgICAgICAgPHZhbC1maWxlLWlucHV0IFtwcm9wc109XCJnZXRGaWVsZFByb3AoZilcIj48L3ZhbC1maWxlLWlucHV0PlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZi50eXBlID09PSB0eXBlcy5IT1VSXCI+XG4gICAgICAgICAgICAgIDx2YWwtaG91ci1pbnB1dCBbcHJvcHNdPVwiZ2V0RmllbGRQcm9wKGYpXCI+PC92YWwtaG91ci1pbnB1dD5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImYudHlwZSA9PT0gdHlwZXMuTlVNQkVSXCI+XG4gICAgICAgICAgICAgIDx2YWwtbnVtYmVyLWlucHV0IFtwcm9wc109XCJnZXRGaWVsZFByb3AoZilcIj48L3ZhbC1udW1iZXItaW5wdXQ+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJmLnR5cGUgPT09IHR5cGVzLlBBU1NXT1JEXCI+XG4gICAgICAgICAgICAgIDx2YWwtcGFzc3dvcmQtaW5wdXQgW3Byb3BzXT1cImdldEZpZWxkUHJvcChmKVwiPjwvdmFsLXBhc3N3b3JkLWlucHV0PlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZi50eXBlID09PSB0eXBlcy5QSU5fQ09ERVwiPlxuICAgICAgICAgICAgICA8dmFsLXBpbi1pbnB1dCBbcHJvcHNdPVwiZ2V0RmllbGRQcm9wKGYpXCI+PC92YWwtcGluLWlucHV0PlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZi50eXBlID09PSB0eXBlcy5SQURJT1wiPlxuICAgICAgICAgICAgICA8dmFsLXJhZGlvLWlucHV0IFtwcm9wc109XCJnZXRGaWVsZFByb3AoZilcIj48L3ZhbC1yYWRpby1pbnB1dD5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImYudHlwZSA9PT0gdHlwZXMuU0VMRUNUXCI+XG4gICAgICAgICAgICAgIDx2YWwtc2VsZWN0LWlucHV0IFtwcm9wc109XCJnZXRGaWVsZFByb3AoZilcIj48L3ZhbC1zZWxlY3QtaW5wdXQ+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJmLnR5cGUgPT09IHR5cGVzLlNFQVJDSF9TRUxFQ1RcIj5cbiAgICAgICAgICAgICAgPHZhbC1zZWxlY3Qtc2VhcmNoIFtwcm9wc109XCJnZXRGaWVsZFByb3AoZilcIj48L3ZhbC1zZWxlY3Qtc2VhcmNoPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8dmFsLWhpbnQgW3Byb3BzXT1cImdldEZpZWxkUHJvcChmKVwiPjwvdmFsLWhpbnQ+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPHZhbC1kaXZpZGVyIFtwcm9wc109XCJ7IGZpbGw6ICdzb2xpZCcsIHNpemU6ICdtZWRpdW0nLCBjb2xvcjogJ21lZGl1bScgfVwiPjwvdmFsLWRpdmlkZXI+XG4gICAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPHZhbC1idXR0b24tZ3JvdXBcbiAgICAgICAgICBbcHJvcHNdPVwieyBidXR0b25zOiBhY3Rpb25zLCBwb3NpdGlvbjogJ2NlbnRlcicsIGNvbHVtbmVkOiBmYWxzZSB9XCJcbiAgICAgICAgICAob25DbGljayk9XCJzdWJtaXRIYW5kbGVyKCRldmVudClcIlxuICAgICAgICA+PC92YWwtYnV0dG9uLWdyb3VwPlxuICAgICAgPC9mb3JtPlxuICAgIDwvZGl2PlxuICBgLFxuICBzdHlsZVVybHM6IFsnLi9mb3JtLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIEZvcm1Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKVxuICBwcm9wczogRm9ybU1ldGFkYXRhO1xuXG4gIEBPdXRwdXQoKVxuICBvblN1Ym1pdCA9IG5ldyBFdmVudEVtaXR0ZXI8Rm9ybVN1Ym1pdD4oKTtcblxuICBAT3V0cHV0KClcbiAgb25JbnZhbGlkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIEBPdXRwdXQoKVxuICBvblNlbGVjdENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8eyBmaWVsZDogc3RyaW5nOyB2YWx1ZTogYW55IH0+KCk7XG5cbiAgZm9ybTogRm9ybUdyb3VwO1xuICB0eXBlcyA9IElucHV0VHlwZTtcbiAgcHJpdmF0ZSBzdWJzY3JpcHRpb25zOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyLFxuICAgIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZlxuICApIHt9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgY29uc3QgZm9ybUNvbnRyb2xzID0ge307XG4gICAgdGhpcy5wcm9wcy5zZWN0aW9ucy5mb3JFYWNoKHNlY3Rpb24gPT4ge1xuICAgICAgc2VjdGlvbi5maWVsZHMuZm9yRWFjaChmaWVsZCA9PiB7XG4gICAgICAgIGZvcm1Db250cm9sc1tmaWVsZC5uYW1lXSA9IFt1bmRlZmluZWQsIGZpZWxkLnZhbGlkYXRvcnMgfHwgW11dO1xuICAgICAgfSk7XG4gICAgfSk7XG4gICAgdGhpcy5mb3JtID0gdGhpcy5mYi5ncm91cChmb3JtQ29udHJvbHMpO1xuICAgIHRoaXMucHJvcHMuc2VjdGlvbnMuZm9yRWFjaChzZWN0aW9uID0+IHtcbiAgICAgIHNlY3Rpb24uZmllbGRzXG4gICAgICAgIC5maWx0ZXIoeCA9PiB4LnR5cGUgPT09IHRoaXMudHlwZXMuU0VMRUNUIHx8IHgudHlwZSA9PT0gdGhpcy50eXBlcy5URVhUIHx8IHgudHlwZSA9PT0gdGhpcy50eXBlcy5TRUFSQ0hfU0VMRUNUKVxuICAgICAgICAuZm9yRWFjaChmaWVsZCA9PiB7XG4gICAgICAgICAgdGhpcy50cmFja1NlbGVjdENoYW5nZXMoZmllbGQubmFtZSk7XG4gICAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgLy8gQ2xlYW51cCBzdWJzY3JpcHRpb25zIHRvIGF2b2lkIG1lbW9yeSBsZWFrc1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5mb3JFYWNoKHN1YiA9PiBzdWIudW5zdWJzY3JpYmUoKSk7XG4gIH1cblxuICB0cmFja1NlbGVjdENoYW5nZXMoZmllbGROYW1lOiBzdHJpbmcpIHtcbiAgICBjb25zdCBjb250cm9sID0gdGhpcy5nZXRDb250cm9sKGZpZWxkTmFtZSk7XG4gICAgY29uc3Qgc3Vic2NyaXB0aW9uID0gY29udHJvbC52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKHZhbHVlID0+IHtcbiAgICAgIHRoaXMub25TZWxlY3RDaGFuZ2UuZW1pdCh7IGZpZWxkOiBmaWVsZE5hbWUsIHZhbHVlIH0pO1xuICAgIH0pO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKHN1YnNjcmlwdGlvbik7XG4gIH1cblxuICBhc3luYyBzdWJtaXRIYW5kbGVyKHRva2VuPzogc3RyaW5nKSB7XG4gICAgdGhpcy5vblN1Ym1pdC5lbWl0KHsgZmllbGRzOiB0aGlzLmZvcm0uZ2V0UmF3VmFsdWUoKSwgdG9rZW4gfSk7XG4gIH1cblxuICBnZXRDb250cm9sKGZpZWxkOiBzdHJpbmcpOiBGb3JtQ29udHJvbCB7XG4gICAgcmV0dXJuIHRoaXMuRm9ybS5nZXQoZmllbGQpIGFzIEZvcm1Db250cm9sO1xuICB9XG5cbiAgZ2V0RmllbGRQcm9wKGZpZWxkOiBJbnB1dE1ldGFkYXRhKTogSW5wdXRNZXRhZGF0YSB7XG4gICAgZmllbGQudG9rZW47XG4gICAgaWYgKCFmaWVsZC50b2tlbikge1xuICAgICAgZmllbGQudG9rZW4gPSBgaW5wdXQtJHtmaWVsZC50eXBlfS0ke2ZpZWxkLm5hbWV9YDtcbiAgICB9XG4gICAgY29uc3QgY29udHJvbCA9IHRoaXMuZ2V0Q29udHJvbChmaWVsZC5uYW1lKTtcbiAgICBpZiAoZmllbGQuc3RhdGUgPT09IENvbXBvbmVudFN0YXRlcy5ESVNBQkxFRCkge1xuICAgICAgY29udHJvbC5kaXNhYmxlKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnRyb2wuZW5hYmxlKCk7XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICAuLi5maWVsZCxcbiAgICAgIGNvbnRyb2wsXG4gICAgfTtcbiAgfVxuXG4gIGdldCBpc0F0RW5kT2ZGb3JtKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBpc0F0RW5kKHRoaXMuZWxlbWVudFJlZik7XG4gIH1cblxuICBnZXQgRm9ybSgpOiBGb3JtR3JvdXAge1xuICAgIHJldHVybiB0aGlzLmZvcm07XG4gIH1cblxuICBnZXQgRm9ybVN0YXRlKCk6IHsgZm9ybTogRm9ybUdyb3VwOyBkYXRhOiBGb3JtTWV0YWRhdGEgfSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGZvcm06IHRoaXMuRm9ybSxcbiAgICAgIGRhdGE6IHRoaXMucHJvcHMsXG4gICAgfTtcbiAgfVxuXG4gIGdldCBhY3Rpb25zKCk6IEJ1dHRvbk1ldGFkYXRhW10ge1xuICAgIGlmICghdGhpcy5mb3JtKSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuZm9ybS52YWxpZCkge1xuICAgICAgdGhpcy5wcm9wcy5hY3Rpb25zLnN0YXRlID0gQ29tcG9uZW50U3RhdGVzLkVOQUJMRUQ7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMucHJvcHMuc3RhdGUgPT09IENvbXBvbmVudFN0YXRlcy5XT1JLSU5HKSB7XG4gICAgICB0aGlzLnByb3BzLmFjdGlvbnMuc3RhdGUgPSBDb21wb25lbnRTdGF0ZXMuV09SS0lORztcbiAgICB9XG5cbiAgICBpZiAodGhpcy5wcm9wcy5zdGF0ZSA9PT0gQ29tcG9uZW50U3RhdGVzLkVOQUJMRUQpIHtcbiAgICAgIHRoaXMucHJvcHMuYWN0aW9ucy5zdGF0ZSA9IENvbXBvbmVudFN0YXRlcy5FTkFCTEVEO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnByb3BzLnN0YXRlID09PSBDb21wb25lbnRTdGF0ZXMuRElTQUJMRUQpIHtcbiAgICAgIHRoaXMucHJvcHMuYWN0aW9ucy5zdGF0ZSA9IENvbXBvbmVudFN0YXRlcy5ESVNBQkxFRDtcbiAgICB9XG5cbiAgICByZXR1cm4gW3RoaXMucHJvcHMuYWN0aW9uc107XG4gIH1cbn1cbiJdfQ==
283
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0ZWNoLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL29yZ2FuaXNtcy9mb3JtL2Zvcm0uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFjLFlBQVksRUFBVSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25HLE9BQU8sRUFBdUMsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUxRixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDcEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDekUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDekUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBQzNGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG1EQUFtRCxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHVEQUF1RCxDQUFDO0FBQzlGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG1EQUFtRCxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUNwRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUNyRixPQUFPLEVB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bUIsNERBQ25CLG9CQUFvQixzR0FDcEIsZ0JBQWdCLDJFQUNoQixhQUFhLHdFQUNiLHFCQUFxQixpRkFDckIsa0JBQWtCLDhFQUNsQixrQkFBa0IsOEVBQ2xCLGtCQUFrQiw4RUFDbEIsbUJBQW1CLCtFQUNuQixvQkFBb0IsZ0ZBQ3BCLG1CQUFtQiwrRUFDbkIsc0JBQXNCLGtGQUN0QixpQkFBaUIsNkVBQ2pCLHFCQUFxQix1SkFDckIsdUJBQXVCOzs0RkFzRWQsYUFBYTtrQkE3RnpCLFNBQVM7K0JBQ0UsVUFBVSxjQUNSLElBQUksV0FDUDt3QkFDUCxZQUFZO3dCQUNaLG1CQUFtQjt3QkFDbkIsZ0JBQWdCO3dCQUNoQixjQUFjO3dCQUNkLGtCQUFrQjt3QkFDbEIsbUJBQW1CO3dCQUNuQixvQkFBb0I7d0JBQ3BCLGdCQUFnQjt3QkFDaEIsYUFBYTt3QkFDYixxQkFBcUI7d0JBQ3JCLGtCQUFrQjt3QkFDbEIsa0JBQWtCO3dCQUNsQixrQkFBa0I7d0JBQ2xCLG1CQUFtQjt3QkFDbkIsb0JBQW9CO3dCQUNwQixtQkFBbUI7d0JBQ25CLHNCQUFzQjt3QkFDdEIsaUJBQWlCO3dCQUNqQixxQkFBcUI7d0JBQ3JCLHVCQUF1QjtxQkFDeEIsWUFDUzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FpRVQ7eUdBS0QsS0FBSztzQkFESixLQUFLO2dCQUlOLFFBQVE7c0JBRFAsTUFBTTtnQkFJUCxTQUFTO3NCQURSLE1BQU07Z0JBSVAsY0FBYztzQkFEYixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBpbmplY3QsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Db250cm9sLCBGb3JtR3JvdXAsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGlzQXRFbmQgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvdXRpbHMvZG9tJztcbmltcG9ydCB7IERpc3BsYXlDb21wb25lbnQgfSBmcm9tICcuLi8uLi9hdG9tcy9kaXNwbGF5L2Rpc3BsYXkuY29tcG9uZW50JztcbmltcG9ydCB7IERpdmlkZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi9hdG9tcy9kaXZpZGVyL2RpdmlkZXIuY29tcG9uZW50JztcbmltcG9ydCB7IFRpdGxlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYXRvbXMvdGl0bGUvdGl0bGUuY29tcG9uZW50JztcbmltcG9ydCB7IEJ1dHRvbkdyb3VwQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL2J1dHRvbi1ncm91cC9idXR0b24tZ3JvdXAuY29tcG9uZW50JztcbmltcG9ydCB7IENoZWNrSW5wdXRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvY2hlY2staW5wdXQvY2hlY2staW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IENvbW1lbnRJbnB1dENvbXBvbmVudCB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy9jb21tZW50LWlucHV0L2NvbW1lbnQtaW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IERhdGVJbnB1dENvbXBvbmVudCB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy9kYXRlLWlucHV0L2RhdGUtaW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IEVtYWlsSW5wdXRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvZW1haWwtaW5wdXQvZW1haWwtaW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IEZpbGVJbnB1dENvbXBvbmVudCB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy9maWxlLWlucHV0L2ZpbGUtaW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IEhpbnRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvaGludC9oaW50LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBIb3VySW5wdXRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvaG91ci1pbnB1dC9ob3VyLWlucHV0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBOdW1iZXJJbnB1dENvbXBvbmVudCB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy9udW1iZXItaW5wdXQvbnVtYmVyLWlucHV0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQYXNzd29yZElucHV0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL3Bhc3N3b3JkLWlucHV0L3Bhc3N3b3JkLWlucHV0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQaW5JbnB1dENvbXBvbmVudCB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy9waW4taW5wdXQvcGluLWlucHV0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBSYWRpb0lucHV0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL3JhZGlvLWlucHV0L3JhZGlvLWlucHV0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTZWFyY2hTZWxlY3RvckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy9zZWxlY3QtaW5wdXQvc2VsZWN0LWlucHV0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTZWxlY3RTZWFyY2hDb21wb25lbnQgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvc2VsZWN0LXNlYXJjaC9zZWxlY3Qtc2VhcmNoLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUZXh0SW5wdXRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvdGV4dC1pbnB1dC90ZXh0LWlucHV0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCdXR0b25NZXRhZGF0YSwgQ29tcG9uZW50U3RhdGVzLCBGb3JtTWV0YWRhdGEsIEZvcm1TdWJtaXQsIElucHV0TWV0YWRhdGEsIElucHV0VHlwZSB9IGZyb20gJy4uLy4uL3R5cGVzJztcbmltcG9ydCB7IExhbmdTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvbGFuZy1wcm92aWRlci9sYW5nLXByb3ZpZGVyLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWwtZm9ybScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBEaXNwbGF5Q29tcG9uZW50LFxuICAgIFRpdGxlQ29tcG9uZW50LFxuICAgIFRleHRJbnB1dENvbXBvbmVudCxcbiAgICBDaGVja0lucHV0Q29tcG9uZW50LFxuICAgIEJ1dHRvbkdyb3VwQ29tcG9uZW50LFxuICAgIERpdmlkZXJDb21wb25lbnQsXG4gICAgSGludENvbXBvbmVudCxcbiAgICBDb21tZW50SW5wdXRDb21wb25lbnQsXG4gICAgRGF0ZUlucHV0Q29tcG9uZW50LFxuICAgIEZpbGVJbnB1dENvbXBvbmVudCxcbiAgICBIb3VySW5wdXRDb21wb25lbnQsXG4gICAgRW1haWxJbnB1dENvbXBvbmVudCxcbiAgICBOdW1iZXJJbnB1dENvbXBvbmVudCxcbiAgICBSYWRpb0lucHV0Q29tcG9uZW50LFxuICAgIFBhc3N3b3JkSW5wdXRDb21wb25lbnQsXG4gICAgUGluSW5wdXRDb21wb25lbnQsXG4gICAgU2VsZWN0U2VhcmNoQ29tcG9uZW50LFxuICAgIFNlYXJjaFNlbGVjdG9yQ29tcG9uZW50LFxuICBdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXJcIj5cbiAgICAgIDxmb3JtIFtmb3JtR3JvdXBdPVwiZm9ybVwiPlxuICAgICAgICA8dmFsLWRpc3BsYXlcbiAgICAgICAgICAqbmdJZj1cInByb3BzLm5hbWVcIlxuICAgICAgICAgIFtwcm9wc109XCJ7XG4gICAgICAgICAgICBjb250ZW50OiBwcm9wcy5uYW1lLFxuICAgICAgICAgICAgY29sb3I6ICdkYXJrJyxcbiAgICAgICAgICAgIHNpemU6ICdsYXJnZScsXG4gICAgICAgICAgfVwiXG4gICAgICAgID48L3ZhbC1kaXNwbGF5PlxuICAgICAgICA8ZGl2IGNsYXNzPVwic2VjdGlvblwiICpuZ0Zvcj1cImxldCBzIG9mIHByb3BzLnNlY3Rpb25zXCI+XG4gICAgICAgICAgPHZhbC10aXRsZSBbcHJvcHNdPVwieyBjb250ZW50OiBzLm5hbWUsIHNpemU6ICdsYXJnZScsIGNvbG9yOiAnJywgYm9sZDogZmFsc2UgfVwiPjwvdmFsLXRpdGxlPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dFwiICpuZ0Zvcj1cImxldCBmIG9mIHMuZmllbGRzXCI+XG4gICAgICAgICAgICA8dmFsLXRpdGxlIFtwcm9wc109XCJ7IGNvbnRlbnQ6IGYubGFiZWwsIHNpemU6ICdzbWFsbCcsIGNvbG9yOiAnZGFyaycsIGJvbGQ6IGZhbHNlIH1cIj48L3ZhbC10aXRsZT5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJmLnR5cGUgPT09IHR5cGVzLlRFWFRcIj5cbiAgICAgICAgICAgICAgPHZhbC10ZXh0LWlucHV0IFtwcm9wc109XCJnZXRGaWVsZFByb3AoZilcIj48L3ZhbC10ZXh0LWlucHV0PlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZi50eXBlID09PSB0eXBlcy5DSEVDS1wiPlxuICAgICAgICAgICAgICA8dmFsLWNoZWNrLWlucHV0PjwvdmFsLWNoZWNrLWlucHV0PlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZi50eXBlID09PSB0eXBlcy5DT01NRU5UXCI+XG4gICAgICAgICAgICAgIDx2YWwtY29tbWVudC1pbnB1dCBbcHJvcHNdPVwiZ2V0RmllbGRQcm9wKGYpXCI+PC92YWwtY29tbWVudC1pbnB1dD5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImYudHlwZSA9PT0gdHlwZXMuREFURVwiPlxuICAgICAgICAgICAgICA8dmFsLWRhdGUtaW5wdXQgW3Byb3BzXT1cImdldEZpZWxkUHJvcChmKVwiPjwvdmFsLWRhdGUtaW5wdXQ+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJmLnR5cGUgPT09IHR5cGVzLkVNQUlMXCI+XG4gICAgICAgICAgICAgIDx2YWwtZW1haWwtaW5wdXQgW3Byb3BzXT1cImdldEZpZWxkUHJvcChmKVwiPjwvdmFsLWVtYWlsLWlucHV0PlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZi50eXBlID09PSB0eXBlcy5GSUxFXCI+XG4gICAgICAgICAgICAgIDx2YWwtZmlsZS1pbnB1dCBbcHJvcHNdPVwiZ2V0RmllbGRQcm9wKGYpXCI+PC92YWwtZmlsZS1pbnB1dD5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImYudHlwZSA9PT0gdHlwZXMuSE9VUlwiPlxuICAgICAgICAgICAgICA8dmFsLWhvdXItaW5wdXQgW3Byb3BzXT1cImdldEZpZWxkUHJvcChmKVwiPjwvdmFsLWhvdXItaW5wdXQ+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJmLnR5cGUgPT09IHR5cGVzLk5VTUJFUlwiPlxuICAgICAgICAgICAgICA8dmFsLW51bWJlci1pbnB1dCBbcHJvcHNdPVwiZ2V0RmllbGRQcm9wKGYpXCI+PC92YWwtbnVtYmVyLWlucHV0PlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZi50eXBlID09PSB0eXBlcy5QQVNTV09SRFwiPlxuICAgICAgICAgICAgICA8dmFsLXBhc3N3b3JkLWlucHV0IFtwcm9wc109XCJnZXRGaWVsZFByb3AoZilcIj48L3ZhbC1wYXNzd29yZC1pbnB1dD5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImYudHlwZSA9PT0gdHlwZXMuUElOX0NPREVcIj5cbiAgICAgICAgICAgICAgPHZhbC1waW4taW5wdXQgW3Byb3BzXT1cImdldEZpZWxkUHJvcChmKVwiPjwvdmFsLXBpbi1pbnB1dD5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImYudHlwZSA9PT0gdHlwZXMuUkFESU9cIj5cbiAgICAgICAgICAgICAgPHZhbC1yYWRpby1pbnB1dCBbcHJvcHNdPVwiZ2V0RmllbGRQcm9wKGYpXCI+PC92YWwtcmFkaW8taW5wdXQ+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJmLnR5cGUgPT09IHR5cGVzLlNFTEVDVFwiPlxuICAgICAgICAgICAgICA8dmFsLXNlbGVjdC1pbnB1dCBbcHJvcHNdPVwiZ2V0RmllbGRQcm9wKGYpXCI+PC92YWwtc2VsZWN0LWlucHV0PlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZi50eXBlID09PSB0eXBlcy5TRUFSQ0hfU0VMRUNUXCI+XG4gICAgICAgICAgICAgIDx2YWwtc2VsZWN0LXNlYXJjaCBbcHJvcHNdPVwiZ2V0RmllbGRQcm9wKGYpXCI+PC92YWwtc2VsZWN0LXNlYXJjaD5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPHZhbC1oaW50IFtwcm9wc109XCJnZXRGaWVsZFByb3AoZilcIj48L3ZhbC1oaW50PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDx2YWwtZGl2aWRlciBbcHJvcHNdPVwieyBmaWxsOiAnc29saWQnLCBzaXplOiAnbWVkaXVtJywgY29sb3I6ICdtZWRpdW0nIH1cIj48L3ZhbC1kaXZpZGVyPlxuICAgICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDx2YWwtYnV0dG9uLWdyb3VwXG4gICAgICAgICAgW3Byb3BzXT1cInsgYnV0dG9uczogYWN0aW9ucywgcG9zaXRpb246ICdjZW50ZXInLCBjb2x1bW5lZDogZmFsc2UgfVwiXG4gICAgICAgICAgKG9uQ2xpY2spPVwic3VibWl0SGFuZGxlcigkZXZlbnQpXCJcbiAgICAgICAgPjwvdmFsLWJ1dHRvbi1ncm91cD5cbiAgICAgIDwvZm9ybT5cbiAgICA8L2Rpdj5cbiAgYCxcbiAgc3R5bGVVcmxzOiBbJy4vZm9ybS5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBGb3JtQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KClcbiAgcHJvcHM6IEZvcm1NZXRhZGF0YTtcblxuICBAT3V0cHV0KClcbiAgb25TdWJtaXQgPSBuZXcgRXZlbnRFbWl0dGVyPEZvcm1TdWJtaXQ+KCk7XG5cbiAgQE91dHB1dCgpXG4gIG9uSW52YWxpZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBAT3V0cHV0KClcbiAgb25TZWxlY3RDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHsgZmllbGQ6IHN0cmluZzsgdmFsdWU6IGFueSB9PigpO1xuXG4gIGZvcm06IEZvcm1Hcm91cDtcbiAgdHlwZXMgPSBJbnB1dFR5cGU7XG4gIHByaXZhdGUgc3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9uW10gPSBbXTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGZiOiBGb3JtQnVpbGRlcixcbiAgICBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWZcbiAgKSB7fVxuXG4gIG5nT25Jbml0KCkge1xuICAgIGNvbnN0IGZvcm1Db250cm9scyA9IHt9O1xuICAgIHRoaXMucHJvcHMuc2VjdGlvbnMuZm9yRWFjaChzZWN0aW9uID0+IHtcbiAgICAgIHNlY3Rpb24uZmllbGRzLmZvckVhY2goZmllbGQgPT4ge1xuICAgICAgICBmb3JtQ29udHJvbHNbZmllbGQubmFtZV0gPSBbdW5kZWZpbmVkLCBmaWVsZC52YWxpZGF0b3JzIHx8IFtdXTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICAgIHRoaXMuZm9ybSA9IHRoaXMuZmIuZ3JvdXAoZm9ybUNvbnRyb2xzKTtcbiAgICB0aGlzLnByb3BzLnNlY3Rpb25zLmZvckVhY2goc2VjdGlvbiA9PiB7XG4gICAgICBzZWN0aW9uLmZpZWxkc1xuICAgICAgICAuZmlsdGVyKHggPT4geC50eXBlID09PSB0aGlzLnR5cGVzLlNFTEVDVCB8fCB4LnR5cGUgPT09IHRoaXMudHlwZXMuVEVYVCB8fCB4LnR5cGUgPT09IHRoaXMudHlwZXMuU0VBUkNIX1NFTEVDVClcbiAgICAgICAgLmZvckVhY2goZmllbGQgPT4ge1xuICAgICAgICAgIHRoaXMudHJhY2tTZWxlY3RDaGFuZ2VzKGZpZWxkLm5hbWUpO1xuICAgICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIC8vIENsZWFudXAgc3Vic2NyaXB0aW9ucyB0byBhdm9pZCBtZW1vcnkgbGVha3NcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuZm9yRWFjaChzdWIgPT4gc3ViLnVuc3Vic2NyaWJlKCkpO1xuICB9XG5cbiAgdHJhY2tTZWxlY3RDaGFuZ2VzKGZpZWxkTmFtZTogc3RyaW5nKSB7XG4gICAgY29uc3QgY29udHJvbCA9IHRoaXMuZ2V0Q29udHJvbChmaWVsZE5hbWUpO1xuICAgIGNvbnN0IHN1YnNjcmlwdGlvbiA9IGNvbnRyb2wudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSh2YWx1ZSA9PiB7XG4gICAgICB0aGlzLm9uU2VsZWN0Q2hhbmdlLmVtaXQoeyBmaWVsZDogZmllbGROYW1lLCB2YWx1ZSB9KTtcbiAgICB9KTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChzdWJzY3JpcHRpb24pO1xuICB9XG5cbiAgYXN5bmMgc3VibWl0SGFuZGxlcih0b2tlbj86IHN0cmluZykge1xuICAgIHRoaXMub25TdWJtaXQuZW1pdCh7IGZpZWxkczogdGhpcy5mb3JtLmdldFJhd1ZhbHVlKCksIHRva2VuIH0pO1xuICB9XG5cbiAgZ2V0Q29udHJvbChmaWVsZDogc3RyaW5nKTogRm9ybUNvbnRyb2wge1xuICAgIHJldHVybiB0aGlzLkZvcm0uZ2V0KGZpZWxkKSBhcyBGb3JtQ29udHJvbDtcbiAgfVxuXG4gIGdldEZpZWxkUHJvcChmaWVsZDogSW5wdXRNZXRhZGF0YSk6IElucHV0TWV0YWRhdGEge1xuICAgIGZpZWxkLnRva2VuO1xuICAgIGlmICghZmllbGQudG9rZW4pIHtcbiAgICAgIGZpZWxkLnRva2VuID0gYGlucHV0LSR7ZmllbGQudHlwZX0tJHtmaWVsZC5uYW1lfWA7XG4gICAgfVxuICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLmdldENvbnRyb2woZmllbGQubmFtZSk7XG4gICAgaWYgKGZpZWxkLnN0YXRlID09PSBDb21wb25lbnRTdGF0ZXMuRElTQUJMRUQpIHtcbiAgICAgIGNvbnRyb2wuZGlzYWJsZSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb250cm9sLmVuYWJsZSgpO1xuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgLi4uZmllbGQsXG4gICAgICBjb250cm9sLFxuICAgIH07XG4gIH1cblxuICBnZXQgaXNBdEVuZE9mRm9ybSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gaXNBdEVuZCh0aGlzLmVsZW1lbnRSZWYpO1xuICB9XG5cbiAgZ2V0IEZvcm0oKTogRm9ybUdyb3VwIHtcbiAgICByZXR1cm4gdGhpcy5mb3JtO1xuICB9XG5cbiAgZ2V0IEZvcm1TdGF0ZSgpOiB7IGZvcm06IEZvcm1Hcm91cDsgZGF0YTogRm9ybU1ldGFkYXRhIH0ge1xuICAgIHJldHVybiB7XG4gICAgICBmb3JtOiB0aGlzLkZvcm0sXG4gICAgICBkYXRhOiB0aGlzLnByb3BzLFxuICAgIH07XG4gIH1cblxuICBnZXQgYWN0aW9ucygpOiBCdXR0b25NZXRhZGF0YVtdIHtcbiAgICBpZiAoIXRoaXMuZm9ybSkge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmZvcm0udmFsaWQpIHtcbiAgICAgIHRoaXMucHJvcHMuYWN0aW9ucy5zdGF0ZSA9IENvbXBvbmVudFN0YXRlcy5FTkFCTEVEO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnByb3BzLnN0YXRlID09PSBDb21wb25lbnRTdGF0ZXMuV09SS0lORykge1xuICAgICAgdGhpcy5wcm9wcy5hY3Rpb25zLnN0YXRlID0gQ29tcG9uZW50U3RhdGVzLldPUktJTkc7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMucHJvcHMuc3RhdGUgPT09IENvbXBvbmVudFN0YXRlcy5FTkFCTEVEKSB7XG4gICAgICB0aGlzLnByb3BzLmFjdGlvbnMuc3RhdGUgPSBDb21wb25lbnRTdGF0ZXMuRU5BQkxFRDtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5wcm9wcy5zdGF0ZSA9PT0gQ29tcG9uZW50U3RhdGVzLkRJU0FCTEVEKSB7XG4gICAgICB0aGlzLnByb3BzLmFjdGlvbnMuc3RhdGUgPSBDb21wb25lbnRTdGF0ZXMuRElTQUJMRUQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIFt0aGlzLnByb3BzLmFjdGlvbnNdO1xuICB9XG59XG4iXX0=