@dsivd/prestations-ng 17.10.18 → 17.10.19

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -6,6 +6,23 @@
6
6
 
7
7
  ---
8
8
 
9
+ ## [17.10.19]
10
+
11
+ ### Fixed
12
+
13
+ - [ApplicationInfo](projects/prestations-ng/src/sdk-appinfo/application-info.ts)
14
+
15
+ - fixed `getPortailBaseUrl` by adding a slash (`/`) at the end of url when missing in properties
16
+
17
+ ### Updated
18
+
19
+ - [foehn-form.component.ts](projects/prestations-ng/src/foehn-form/foehn-form.component.ts)
20
+
21
+ - updated `focusFirst` method with optional parameter `scrollIntoView` (default is `true`)
22
+
23
+ - [foehn-input.component.ts](projects/prestations-ng/src/foehn-input/foehn-input.component.ts)
24
+ - updated `focus` method with optional parameter `scrollIntoView` (default is `true`)
25
+
9
26
  ## [17.10.18]
10
27
 
11
28
  ### Fixed
@@ -88,14 +88,14 @@ export class FoehnFormComponent {
88
88
  }
89
89
  }
90
90
  }
91
- focusFirst() {
91
+ focusFirst(scrollIntoView = true) {
92
92
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
93
93
  const allComponents = this.getAllComponents().filter(value => !value.disabled &&
94
94
  value.type !== 'hidden' &&
95
95
  !value.hidden &&
96
96
  !value.subComponents?.length);
97
97
  if (allComponents && allComponents.length > 0) {
98
- allComponents[0].focus();
98
+ allComponents[0].focus(scrollIntoView);
99
99
  }
100
100
  }
101
101
  focusErrorSummary() {
@@ -138,4 +138,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
138
138
  type: ContentChildren,
139
139
  args: [FoehnInputComponent, { descendants: true }]
140
140
  }] } });
141
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9laG4tZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVzdGF0aW9ucy1uZy9zcmMvZm9laG4tZm9ybS9mb2Vobi1mb3JtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3Byb2plY3RzL3ByZXN0YXRpb25zLW5nL3NyYy9mb2Vobi1mb3JtL2ZvZWhuLWZvcm0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVILFNBQVMsRUFDVCxlQUFlLEVBQ2YsS0FBSyxFQUdMLFNBQVMsRUFDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsTUFBTSxFQUFXLE1BQU0sZ0JBQWdCLENBQUM7QUFHakQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDakYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDM0UsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7OztBQU1wRCxNQUFNLE9BQU8sa0JBQWtCO0lBZ0IzQjtRQWRBLDhCQUF5QixHQUFHLElBQUksQ0FBQztRQVN6Qix1QkFBa0IsR0FBYyxFQUFFLENBQUM7UUFNdkMsSUFBSSxDQUFDLHNCQUFzQixHQUFHLGNBQWMsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUNyRCxzQkFBc0IsQ0FDekIsQ0FBQztRQUNGLElBQUksQ0FBQyxrQ0FBa0M7WUFDbkMsMERBQTBEO1lBQzFELElBQUksQ0FBQyxzQkFBc0IsQ0FBQywrQkFBK0IsQ0FBQyxTQUFTLENBQ2pFLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyx3QkFBd0IsRUFBRSxDQUN4QyxDQUFDO0lBQ1YsQ0FBQztJQUVELEtBQUssQ0FBQyxzQkFBK0IsS0FBSztRQUN0QyxLQUFLLE1BQU0sQ0FBQyxJ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LEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFmdGVyVmlld0luaXQsXG4gICAgQ29tcG9uZW50LFxuICAgIENvbnRlbnRDaGlsZHJlbixcbiAgICBJbnB1dCxcbiAgICBPbkRlc3Ryb3ksXG4gICAgUXVlcnlMaXN0LFxuICAgIFZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5nRm9ybSwgTmdNb2RlbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBSZWdpc3Rlck5nTW9kZWxTZXJ2aWNlIH0gZnJvbSAnLi4vZm9laG4tZm9ybS9yZWdpc3Rlci1uZy1tb2RlbC5zZXJ2aWNlJztcbmltcG9ydCB7IEZvZWhuSW5wdXRDb21wb25lbnQgfSBmcm9tICcuLi9mb2Vobi1pbnB1dC9mb2Vobi1pbnB1dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2Nyb2xsSGVscGVyIH0gZnJvbSAnLi4vaGVscGVycy9zY3JvbGwuaGVscGVyJztcbmltcG9ydCB7IFNlcnZpY2VMb2NhdG9yIH0gZnJvbSAnLi4vc2VydmljZS1sb2NhdG9yJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdmb2Vobi1mb3JtJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZm9laG4tZm9ybS5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgRm9laG5Gb3JtQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgICBASW5wdXQoKVxuICAgIHNob3VsZERpc3BsYXlBbGVydFN1bW1hcnkgPSB0cnVlO1xuXG4gICAgQFZpZXdDaGlsZChOZ0Zvcm0sIHsgc3RhdGljOiB0cnVlIH0pXG4gICAgbmdGb3JtQ29tcG9uZW50OiBOZ0Zvcm07XG5cbiAgICBAQ29udGVudENoaWxkcmVuKEZvZWhuSW5wdXRDb21wb25lbnQsIHsgZGVzY2VuZGFudHM6IHRydWUgfSlcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIHByaXZhdGUgY2hpbGRyZW5JbnB1dENvbXBvbmVudHM6IFF1ZXJ5TGlzdDxGb2VobklucHV0Q29tcG9uZW50PGFueT4+O1xuXG4gICAgcHJpdmF0ZSByZWdpc3RlcmVkTmdNb2RlbHM6IE5nTW9kZWxbXSA9IFtdO1xuICAgIHByaXZhdGUgcmVnaXN0ZXJOZ01vZGVsU2VydmljZTogUmVnaXN0ZXJOZ01vZGVsU2VydmljZTtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgcmVnaXN0ZXJOZ01vZGVsU2VydmljZVN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMucmVnaXN0ZXJOZ01vZGVsU2VydmljZSA9IFNlcnZpY2VMb2NhdG9yLmluamVjdG9yLmdldChcbiAgICAgICAgICAgIFJlZ2lzdGVyTmdNb2RlbFNlcnZpY2VcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5yZWdpc3Rlck5nTW9kZWxTZXJ2aWNlU3Vic2NyaXB0aW9uID1cbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByeGpzLWFuZ3VsYXIvcHJlZmVyLWFzeW5jLXBpcGVcbiAgICAgICAgICAgIHRoaXMucmVnaXN0ZXJOZ01vZGVsU2VydmljZS51cGRhdGVSZWdpc3RlcmVkTmdNb2RlbHNTdWJqZWN0LnN1YnNjcmliZShcbiAgICAgICAgICAgICAgICAoKSA9PiB0aGlzLnVwZGF0ZVJlZ2lzdGVyZWROZ01vZGVscygpXG4gICAgICAgICAgICApO1xuICAgIH1cblxuICAgIHJlc2V0KHJlc2V0Q2hpbGRyZW5WYWx1ZXM6IGJvb2xlYW4gPSBmYWxzZSk6IHZvaWQge1xuICAgICAgICBmb3IgKGNvbnN0IGMgb2YgdGhpcy5nZXRBbGxDb21wb25lbnRzKCkpIHtcbiAgICAgICAgICAgIGMubWFya0FzUHJpc3RpbmUoKTsgLy8gUFJFUC0yMjQ5OiBDaGVja2JveCBsaXN0IGFyZSBub3QgbWFya2VkIGFzIHByaXN0aW5lXG4gICAgICAgICAgICBpZiAocmVzZXRDaGlsZHJlblZhbHVlcykge1xuICAgICAgICAgICAgICAgIGMucmVzZXQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aGlzLm5nRm9ybUNvbXBvbmVudC5mb3JtLm1hcmtBc1VudG91Y2hlZCgpO1xuICAgICAgICB0aGlzLm5nRm9ybUNvbXBvbmVudC5mb3JtLm1hcmtBc1ByaXN0aW5lKCk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLnJlZ2lzdGVyTmdNb2RlbFNlcnZpY2VTdWJzY3JpcHRpb24pIHtcbiAgICAgICAgICAgIHRoaXMucmVnaXN0ZXJOZ01vZGVsU2VydmljZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnVwZGF0ZVJlZ2lzdGVyZWROZ01vZGVscygpO1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcnhqcy1hbmd1bGFyL3ByZWZlci1hc3luYy1waXBlXG4gICAgICAgIHRoaXMuY2hpbGRyZW5JbnB1dENvbXBvbmVudHMuY2hhbmdlcy5zdWJzY3JpYmUoKCkgPT5cbiAgICAgICAgICAgIHRoaXMudXBkYXRlUmVnaXN0ZXJlZE5nTW9kZWxzKClcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICB1cGRhdGVSZWdpc3RlcmVkTmdNb2RlbHMoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnROZ01vZGVscyA9IHRoaXMuZ2V0QWxsTmF0aXZlTW9kZWxzKCk7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgICAgIGNvbnN0IHRvQmVSZWdpc3RlcmVkOiBhbnlbXSA9IFtdO1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgICAgICBjb25zdCB0b0JlRGVsZXRlZDogYW55W10gPSBbXTtcblxuICAgICAgICB0aGlzLnJlZ2lzdGVyZWROZ01vZGVscy5mb3JFYWNoKG5nID0+IHtcbiAgICAgICAgICAgIGlmICghY3VycmVudE5nTW9kZWxzLmluY2x1ZGVzKG5nKSkge1xuICAgICAgICAgICAgICAgIHRvQmVEZWxldGVkLnB1c2gobmcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgY3VycmVudE5nTW9kZWxzLmZvckVhY2gobmcgPT4ge1xuICAgICAgICAgICAgaWYgKCF0aGlzLnJlZ2lzdGVyZWROZ01vZGVscy5pbmNsdWRlcyhuZykpIHtcbiAgICAgICAgICAgICAgICB0b0JlUmVnaXN0ZXJlZC5wdXNoKG5nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgdG9CZURlbGV0ZWQuZm9yRWFjaChuZyA9PiB0aGlzLmRlbGV0ZU5nTW9kZWwobmcpKTtcbiAgICAgICAgdG9CZVJlZ2lzdGVyZWQuZm9yRWFjaChuZyA9PiB0aGlzLnJlZ2lzdGVyTmdNb2RlbChuZykpO1xuICAgIH1cblxuICAgIGdldEFsbE5hdGl2ZU1vZGVscygpOiBOZ01vZGVsW10ge1xuICAgICAgICBjb25zdCBtb2RlbHM6IE5nTW9kZWxbXSA9IFtdO1xuICAgICAgICB0aGlzLmNoaWxkcmVuSW5wdXRDb21wb25lbnRzLmZvckVhY2goYyA9PiB7XG4gICAgICAgICAgICBjLmdldE5hdGl2ZUlucHV0TGlzdCgpLmZvckVhY2gobSA9PiB7XG4gICAgICAgICAgICAgICAgbW9kZWxzLnB1c2gobSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBtb2RlbHM7XG4gICAgfVxuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICBnZXRBbGxDb21wb25lbnRzKCk6IEZvZWhuSW5wdXRDb21wb25lbnQ8YW55PltdIHtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICAgICAgbGV0IHJlc3VsdDogRm9laG5JbnB1dENvbXBvbmVudDxhbnk+W10gPSBbXTtcbiAgICAgICAgaWYgKHRoaXMuY2hpbGRyZW5JbnB1dENvbXBvbmVudHMpIHtcbiAgICAgICAgICAgIHRoaXMuY2hpbGRyZW5JbnB1dENvbXBvbmVudHMuZm9yRWFjaChjID0+IHtcbiAgICAgICAgICAgICAgICByZXN1bHQgPSByZXN1bHQuY29uY2F0KGMuZ2V0TWVBbmRTdWJDb21wb25lbnRzKCkpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICBpc1ZhbGlkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gIXRoaXMuZ2V0QWxsQ29tcG9uZW50cygpLnNvbWUoaSA9PiBpLmhhc0Vycm9ycygpKTtcbiAgICB9XG5cbiAgICBmb2N1c0ZpcnN0SW5FcnJvcigpOiB2b2lkIHtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICAgICAgY29uc3QgYWxsQ29tcG9uZW50czogRm9laG5JbnB1dENvbXBvbmVudDxhbnk+W10gPVxuICAgICAgICAgICAgdGhpcy5nZXRBbGxDb21wb25lbnRzKCk7XG5cbiAgICAgICAgaWYgKGFsbENvbXBvbmVudHMgJiYgYWxsQ29tcG9uZW50cy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBjb25zdCBmaXJzdENvbXBvbmVudEluRXJyb3IgPSBhbGxDb21wb25lbnRzLmZpbmQoY29tcG9uZW50ID0+XG4gICAgICAgICAgICAgICAgY29tcG9uZW50Lmhhc0Vycm9ycygpXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgaWYgKGZpcnN0Q29tcG9uZW50SW5FcnJvcikge1xuICAgICAgICAgICAgICAgIGZpcnN0Q29tcG9uZW50SW5FcnJvci5mb2N1cygpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgZm9jdXNGaXJzdCgpOiB2b2lkIHtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICAgICAgY29uc3QgYWxsQ29tcG9uZW50czogRm9laG5JbnB1dENvbXBvbmVudDxhbnk+W10gPVxuICAgICAgICAgICAgdGhpcy5nZXRBbGxDb21wb25lbnRzKCkuZmlsdGVyKFxuICAgICAgICAgICAgICAgIHZhbHVlID0+XG4gICAgICAgICAgICAgICAgICAgICF2YWx1ZS5kaXNhYmxlZCAmJlxuICAgICAgICAgICAgICAgICAgICB2YWx1ZS50eXBlICE9PSAnaGlkZGVuJyAmJlxuICAgICAgICAgICAgICAgICAgICAhdmFsdWUuaGlkZGVuICYmXG4gICAgICAgICAgICAgICAgICAgICF2YWx1ZS5zdWJDb21wb25lbnRzPy5sZW5ndGhcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgaWYgKGFsbENvbXBvbmVudHMgJiYgYWxsQ29tcG9uZW50cy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBhbGxDb21wb25lbnRzWzBdLmZvY3VzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmb2N1c0Vycm9yU3VtbWFyeSgpOiB2b2lkIHtcbiAgICAgICAgLy8gc2V0VGltZW91dCB0byBpbXByb3ZlIHRoZSBjb21wYXRpYmlsaXR5IHdpdGggc29tZSBzY3JlZW4gcmVhZGVycy5cbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBlcnJvclN1bW1hcnkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXJyb3Itc3VtbWFyeScpO1xuXG4gICAgICAgICAgICBpZiAoZXJyb3JTdW1tYXJ5KSB7XG4gICAgICAgICAgICAgICAgU2Nyb2xsSGVscGVyLnNjcm9sbEludG9WaWV3V2l0aEV4cGlyYXRpb25UaW1lck9mZnNldChcbiAgICAgICAgICAgICAgICAgICAgZXJyb3JTdW1tYXJ5XG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICBlcnJvclN1bW1hcnkuZm9jdXMoeyBwcmV2ZW50U2Nyb2xsOiB0cnVlIH0pOyAvLyBmb2N1cyBhbmQgZG8gbm90IHRyaWdnZXIgc2Nyb2xsIGFzIGl0IGhhcyBhbHJlYWR5IGJlZW4gZG9uZVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAvLyBJZiB0aGVyZSBpcyBubyBlcnJvciBzdW1tYXJ5LCBvciBpZiB0aGUgZXJyb3Igc3VtbWFyeSBkb2Vzbid0IGNvbnRhaW4gYW55IGNvbXBhdGlibGUgZXJyb3IuXG4gICAgICAgICAgICAgICAgdGhpcy5mb2N1c0ZpcnN0SW5FcnJvcigpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LCAwKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHJlZ2lzdGVyTmdNb2RlbChuZzogTmdNb2RlbCk6IHZvaWQge1xuICAgICAgICB0aGlzLnJlZ2lzdGVyZWROZ01vZGVscy5wdXNoKG5nKTtcbiAgICAgICAgdGhpcy5uZ0Zvcm1Db21wb25lbnQuYWRkQ29udHJvbChuZyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBkZWxldGVOZ01vZGVsKG5nOiBOZ01vZGVsKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5yZWdpc3RlcmVkTmdNb2RlbHMuaW5kZXhPZihuZyk7XG4gICAgICAgIGlmIChpbmRleCA+IC0xKSB7XG4gICAgICAgICAgICB0aGlzLnJlZ2lzdGVyZWROZ01vZGVscy5zcGxpY2UoaW5kZXgsIDEpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMubmdGb3JtQ29tcG9uZW50LnJlbW92ZUNvbnRyb2wobmcpO1xuICAgIH1cbn1cbiIsIjxmb3JtIGlkPVwiZm9laG5fZm9ybUNvbnRhaW5lclwiIGFyaWEtbGl2ZT1cInBvbGl0ZVwiIGFyaWEtYXRvbWljPVwiZmFsc2VcIj5cbiAgICA8Zm9laG4tdmFsaWRhdGlvbi1hbGVydC1zdW1tYXJ5XG4gICAgICAgIFtmb3JtXT1cInRoaXNcIlxuICAgID48L2ZvZWhuLXZhbGlkYXRpb24tYWxlcnQtc3VtbWFyeT5cblxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbjwvZm9ybT5cbiJdfQ==
141
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9laG4tZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVzdGF0aW9ucy1uZy9zcmMvZm9laG4tZm9ybS9mb2Vobi1mb3JtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3Byb2plY3RzL3ByZXN0YXRpb25zLW5nL3NyYy9mb2Vobi1mb3JtL2ZvZWhuLWZvcm0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVILFNBQVMsRUFDVCxlQUFlLEVBQ2YsS0FBSyxFQUdMLFNBQVMsRUFDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsTUFBTSxFQUFXLE1BQU0sZ0JBQWdCLENBQUM7QUFHakQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDakYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDM0UsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7OztBQU1wRCxNQUFNLE9BQU8sa0JBQWtCO0lBZ0IzQjtRQWRBLDhCQUF5QixHQUFHLElBQUksQ0FBQztRQVN6Qix1QkFBa0IsR0FBYyxFQUFFLENBQUM7UUFNdkMsSUFBSSxDQUFDLHNCQUFzQixHQUFHLGNBQWMsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUNyRCxzQkFBc0IsQ0FDekIsQ0FBQztRQUNGLElBQUksQ0FBQyxrQ0FBa0M7WUFDbkMsMERBQTBEO1lBQzFELElBQUksQ0FBQyxzQkFBc0IsQ0FBQywrQkFBK0IsQ0FBQyxTQUFTLENBQ2pFLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyx3QkFBd0IsRUFBRSxDQUN4QyxDQUFDO0lBQ1YsQ0FBQztJQUVELEtBQUssQ0FBQyxzQkFBK0IsS0FBSztRQUN0QyxLQUFLLE1BQU0sQ0FBQyxJ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QW1CLEVBQUUsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENvbXBvbmVudCxcbiAgICBDb250ZW50Q2hpbGRyZW4sXG4gICAgSW5wdXQsXG4gICAgT25EZXN0cm95LFxuICAgIFF1ZXJ5TGlzdCxcbiAgICBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ0Zvcm0sIE5nTW9kZWwgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgUmVnaXN0ZXJOZ01vZGVsU2VydmljZSB9IGZyb20gJy4uL2ZvZWhuLWZvcm0vcmVnaXN0ZXItbmctbW9kZWwuc2VydmljZSc7XG5pbXBvcnQgeyBGb2VobklucHV0Q29tcG9uZW50IH0gZnJvbSAnLi4vZm9laG4taW5wdXQvZm9laG4taW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IFNjcm9sbEhlbHBlciB9IGZyb20gJy4uL2hlbHBlcnMvc2Nyb2xsLmhlbHBlcic7XG5pbXBvcnQgeyBTZXJ2aWNlTG9jYXRvciB9IGZyb20gJy4uL3NlcnZpY2UtbG9jYXRvcic7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZm9laG4tZm9ybScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2ZvZWhuLWZvcm0uY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIEZvZWhuRm9ybUNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gICAgQElucHV0KClcbiAgICBzaG91bGREaXNwbGF5QWxlcnRTdW1tYXJ5ID0gdHJ1ZTtcblxuICAgIEBWaWV3Q2hpbGQoTmdGb3JtLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICAgIG5nRm9ybUNvbXBvbmVudDogTmdGb3JtO1xuXG4gICAgQENvbnRlbnRDaGlsZHJlbihGb2VobklucHV0Q29tcG9uZW50LCB7IGRlc2NlbmRhbnRzOiB0cnVlIH0pXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICBwcml2YXRlIGNoaWxkcmVuSW5wdXRDb21wb25lbnRzOiBRdWVyeUxpc3Q8Rm9laG5JbnB1dENvbXBvbmVudDxhbnk+PjtcblxuICAgIHByaXZhdGUgcmVnaXN0ZXJlZE5nTW9kZWxzOiBOZ01vZGVsW10gPSBbXTtcbiAgICBwcml2YXRlIHJlZ2lzdGVyTmdNb2RlbFNlcnZpY2U6IFJlZ2lzdGVyTmdNb2RlbFNlcnZpY2U7XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IHJlZ2lzdGVyTmdNb2RlbFNlcnZpY2VTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLnJlZ2lzdGVyTmdNb2RlbFNlcnZpY2UgPSBTZXJ2aWNlTG9jYXRvci5pbmplY3Rvci5nZXQoXG4gICAgICAgICAgICBSZWdpc3Rlck5nTW9kZWxTZXJ2aWNlXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMucmVnaXN0ZXJOZ01vZGVsU2VydmljZVN1YnNjcmlwdGlvbiA9XG4gICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcnhqcy1hbmd1bGFyL3ByZWZlci1hc3luYy1waXBlXG4gICAgICAgICAgICB0aGlzLnJlZ2lzdGVyTmdNb2RlbFNlcnZpY2UudXBkYXRlUmVnaXN0ZXJlZE5nTW9kZWxzU3ViamVjdC5zdWJzY3JpYmUoXG4gICAgICAgICAgICAgICAgKCkgPT4gdGhpcy51cGRhdGVSZWdpc3RlcmVkTmdNb2RlbHMoKVxuICAgICAgICAgICAgKTtcbiAgICB9XG5cbiAgICByZXNldChyZXNldENoaWxkcmVuVmFsdWVzOiBib29sZWFuID0gZmFsc2UpOiB2b2lkIHtcbiAgICAgICAgZm9yIChjb25zdCBjIG9mIHRoaXMuZ2V0QWxsQ29tcG9uZW50cygpKSB7XG4gICAgICAgICAgICBjLm1hcmtBc1ByaXN0aW5lKCk7IC8vIFBSRVAtMjI0OTogQ2hlY2tib3ggbGlzdCBhcmUgbm90IG1hcmtlZCBhcyBwcmlzdGluZVxuICAgICAgICAgICAgaWYgKHJlc2V0Q2hpbGRyZW5WYWx1ZXMpIHtcbiAgICAgICAgICAgICAgICBjLnJlc2V0KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5uZ0Zvcm1Db21wb25lbnQuZm9ybS5tYXJrQXNVbnRvdWNoZWQoKTtcbiAgICAgICAgdGhpcy5uZ0Zvcm1Db21wb25lbnQuZm9ybS5tYXJrQXNQcmlzdGluZSgpO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5yZWdpc3Rlck5nTW9kZWxTZXJ2aWNlU3Vic2NyaXB0aW9uKSB7XG4gICAgICAgICAgICB0aGlzLnJlZ2lzdGVyTmdNb2RlbFNlcnZpY2VTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy51cGRhdGVSZWdpc3RlcmVkTmdNb2RlbHMoKTtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJ4anMtYW5ndWxhci9wcmVmZXItYXN5bmMtcGlwZVxuICAgICAgICB0aGlzLmNoaWxkcmVuSW5wdXRDb21wb25lbnRzLmNoYW5nZXMuc3Vic2NyaWJlKCgpID0+XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVJlZ2lzdGVyZWROZ01vZGVscygpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgdXBkYXRlUmVnaXN0ZXJlZE5nTW9kZWxzKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBjdXJyZW50TmdNb2RlbHMgPSB0aGlzLmdldEFsbE5hdGl2ZU1vZGVscygpO1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgICAgICBjb25zdCB0b0JlUmVnaXN0ZXJlZDogYW55W10gPSBbXTtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICAgICAgY29uc3QgdG9CZURlbGV0ZWQ6IGFueVtdID0gW107XG5cbiAgICAgICAgdGhpcy5yZWdpc3RlcmVkTmdNb2RlbHMuZm9yRWFjaChuZyA9PiB7XG4gICAgICAgICAgICBpZiAoIWN1cnJlbnROZ01vZGVscy5pbmNsdWRlcyhuZykpIHtcbiAgICAgICAgICAgICAgICB0b0JlRGVsZXRlZC5wdXNoKG5nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIGN1cnJlbnROZ01vZGVscy5mb3JFYWNoKG5nID0+IHtcbiAgICAgICAgICAgIGlmICghdGhpcy5yZWdpc3RlcmVkTmdNb2RlbHMuaW5jbHVkZXMobmcpKSB7XG4gICAgICAgICAgICAgICAgdG9CZVJlZ2lzdGVyZWQucHVzaChuZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRvQmVEZWxldGVkLmZvckVhY2gobmcgPT4gdGhpcy5kZWxldGVOZ01vZGVsKG5nKSk7XG4gICAgICAgIHRvQmVSZWdpc3RlcmVkLmZvckVhY2gobmcgPT4gdGhpcy5yZWdpc3Rlck5nTW9kZWwobmcpKTtcbiAgICB9XG5cbiAgICBnZXRBbGxOYXRpdmVNb2RlbHMoKTogTmdNb2RlbFtdIHtcbiAgICAgICAgY29uc3QgbW9kZWxzOiBOZ01vZGVsW10gPSBbXTtcbiAgICAgICAgdGhpcy5jaGlsZHJlbklucHV0Q29tcG9uZW50cy5mb3JFYWNoKGMgPT4ge1xuICAgICAgICAgICAgYy5nZXROYXRpdmVJbnB1dExpc3QoKS5mb3JFYWNoKG0gPT4ge1xuICAgICAgICAgICAgICAgIG1vZGVscy5wdXNoKG0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gbW9kZWxzO1xuICAgIH1cblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgZ2V0QWxsQ29tcG9uZW50cygpOiBGb2VobklucHV0Q29tcG9uZW50PGFueT5bXSB7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgICAgIGxldCByZXN1bHQ6IEZvZWhuSW5wdXRDb21wb25lbnQ8YW55PltdID0gW107XG4gICAgICAgIGlmICh0aGlzLmNoaWxkcmVuSW5wdXRDb21wb25lbnRzKSB7XG4gICAgICAgICAgICB0aGlzLmNoaWxkcmVuSW5wdXRDb21wb25lbnRzLmZvckVhY2goYyA9PiB7XG4gICAgICAgICAgICAgICAgcmVzdWx0ID0gcmVzdWx0LmNvbmNhdChjLmdldE1lQW5kU3ViQ29tcG9uZW50cygpKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgaXNWYWxpZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICF0aGlzLmdldEFsbENvbXBvbmVudHMoKS5zb21lKGkgPT4gaS5oYXNFcnJvcnMoKSk7XG4gICAgfVxuXG4gICAgZm9jdXNGaXJzdEluRXJyb3IoKTogdm9pZCB7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgICAgIGNvbnN0IGFsbENvbXBvbmVudHM6IEZvZWhuSW5wdXRDb21wb25lbnQ8YW55PltdID1cbiAgICAgICAgICAgIHRoaXMuZ2V0QWxsQ29tcG9uZW50cygpO1xuXG4gICAgICAgIGlmIChhbGxDb21wb25lbnRzICYmIGFsbENvbXBvbmVudHMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgY29uc3QgZmlyc3RDb21wb25lbnRJbkVycm9yID0gYWxsQ29tcG9uZW50cy5maW5kKGNvbXBvbmVudCA9PlxuICAgICAgICAgICAgICAgIGNvbXBvbmVudC5oYXNFcnJvcnMoKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGlmIChmaXJzdENvbXBvbmVudEluRXJyb3IpIHtcbiAgICAgICAgICAgICAgICBmaXJzdENvbXBvbmVudEluRXJyb3IuZm9jdXMoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZvY3VzRmlyc3Qoc2Nyb2xsSW50b1ZpZXc6IGJvb2xlYW4gPSB0cnVlKTogdm9pZCB7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgICAgIGNvbnN0IGFsbENvbXBvbmVudHM6IEZvZWhuSW5wdXRDb21wb25lbnQ8YW55PltdID1cbiAgICAgICAgICAgIHRoaXMuZ2V0QWxsQ29tcG9uZW50cygpLmZpbHRlcihcbiAgICAgICAgICAgICAgICB2YWx1ZSA9PlxuICAgICAgICAgICAgICAgICAgICAhdmFsdWUuZGlzYWJsZWQgJiZcbiAgICAgICAgICAgICAgICAgICAgdmFsdWUudHlwZSAhPT0gJ2hpZGRlbicgJiZcbiAgICAgICAgICAgICAgICAgICAgIXZhbHVlLmhpZGRlbiAmJlxuICAgICAgICAgICAgICAgICAgICAhdmFsdWUuc3ViQ29tcG9uZW50cz8ubGVuZ3RoXG4gICAgICAgICAgICApO1xuXG4gICAgICAgIGlmIChhbGxDb21wb25lbnRzICYmIGFsbENvbXBvbmVudHMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgYWxsQ29tcG9uZW50c1swXS5mb2N1cyhzY3JvbGxJbnRvVmlldyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmb2N1c0Vycm9yU3VtbWFyeSgpOiB2b2lkIHtcbiAgICAgICAgLy8gc2V0VGltZW91dCB0byBpbXByb3ZlIHRoZSBjb21wYXRpYmlsaXR5IHdpdGggc29tZSBzY3JlZW4gcmVhZGVycy5cbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBlcnJvclN1bW1hcnkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXJyb3Itc3VtbWFyeScpO1xuXG4gICAgICAgICAgICBpZiAoZXJyb3JTdW1tYXJ5KSB7XG4gICAgICAgICAgICAgICAgU2Nyb2xsSGVscGVyLnNjcm9sbEludG9WaWV3V2l0aEV4cGlyYXRpb25UaW1lck9mZnNldChcbiAgICAgICAgICAgICAgICAgICAgZXJyb3JTdW1tYXJ5XG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICBlcnJvclN1bW1hcnkuZm9jdXMoeyBwcmV2ZW50U2Nyb2xsOiB0cnVlIH0pOyAvLyBmb2N1cyBhbmQgZG8gbm90IHRyaWdnZXIgc2Nyb2xsIGFzIGl0IGhhcyBhbHJlYWR5IGJlZW4gZG9uZVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAvLyBJZiB0aGVyZSBpcyBubyBlcnJvciBzdW1tYXJ5LCBvciBpZiB0aGUgZXJyb3Igc3VtbWFyeSBkb2Vzbid0IGNvbnRhaW4gYW55IGNvbXBhdGlibGUgZXJyb3IuXG4gICAgICAgICAgICAgICAgdGhpcy5mb2N1c0ZpcnN0SW5FcnJvcigpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LCAwKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHJlZ2lzdGVyTmdNb2RlbChuZzogTmdNb2RlbCk6IHZvaWQge1xuICAgICAgICB0aGlzLnJlZ2lzdGVyZWROZ01vZGVscy5wdXNoKG5nKTtcbiAgICAgICAgdGhpcy5uZ0Zvcm1Db21wb25lbnQuYWRkQ29udHJvbChuZyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBkZWxldGVOZ01vZGVsKG5nOiBOZ01vZGVsKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5yZWdpc3RlcmVkTmdNb2RlbHMuaW5kZXhPZihuZyk7XG4gICAgICAgIGlmIChpbmRleCA+IC0xKSB7XG4gICAgICAgICAgICB0aGlzLnJlZ2lzdGVyZWROZ01vZGVscy5zcGxpY2UoaW5kZXgsIDEpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMubmdGb3JtQ29tcG9uZW50LnJlbW92ZUNvbnRyb2wobmcpO1xuICAgIH1cbn1cbiIsIjxmb3JtIGlkPVwiZm9laG5fZm9ybUNvbnRhaW5lclwiIGFyaWEtbGl2ZT1cInBvbGl0ZVwiIGFyaWEtYXRvbWljPVwiZmFsc2VcIj5cbiAgICA8Zm9laG4tdmFsaWRhdGlvbi1hbGVydC1zdW1tYXJ5XG4gICAgICAgIFtmb3JtXT1cInRoaXNcIlxuICAgID48L2ZvZWhuLXZhbGlkYXRpb24tYWxlcnQtc3VtbWFyeT5cblxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbjwvZm9ybT5cbiJdfQ==
@@ -182,35 +182,45 @@ export class FoehnInputComponent {
182
182
  this._errors = errors.filter(e => e.name === this.name);
183
183
  }
184
184
  }
185
- focus() {
185
+ focus(scrollIntoView = true) {
186
186
  let elementContainer;
187
187
  if (this.inputElement && this.inputElement.nativeElement) {
188
188
  elementContainer = document.getElementById(this.buildId('Container'));
189
- // Scroll in view should be done on input container
190
- ScrollHelper.scrollIntoViewWithExpirationTimerOffset(elementContainer);
189
+ if (scrollIntoView) {
190
+ // Scroll in view should be done on input container
191
+ ScrollHelper.scrollIntoViewWithExpirationTimerOffset(elementContainer);
192
+ }
191
193
  // Focus should be on the input itself
192
- this.inputElement.nativeElement.focus();
194
+ this.inputElement.nativeElement.focus({
195
+ preventScroll: !scrollIntoView
196
+ });
193
197
  }
194
198
  else if (this.subComponents &&
195
199
  this.getFirstInputComponentEnabled(this.subComponents)) {
196
200
  const inputComponent = this.getFirstInputComponentEnabled(this.subComponents);
197
201
  elementContainer = document.getElementById(inputComponent.buildId('Container'));
198
- // Scroll in view should be done on input container
199
- ScrollHelper.scrollIntoViewWithExpirationTimerOffset(elementContainer);
202
+ if (scrollIntoView) {
203
+ // Scroll in view should be done on input container
204
+ ScrollHelper.scrollIntoViewWithExpirationTimerOffset(elementContainer);
205
+ }
200
206
  // Focus should be on the input itself
201
- inputComponent.inputElement.nativeElement.focus();
207
+ inputComponent.inputElement.nativeElement.focus({
208
+ preventScroll: !scrollIntoView
209
+ });
202
210
  }
203
211
  else {
204
212
  // Case for component who do not have any '#entryComponent' in their html template (i.e. foehn-radio, foehn-checkbox,...)
205
213
  elementContainer = document.getElementById(this.buildId('Container'));
206
- // Scroll in view should be done on input container
207
- ScrollHelper.scrollIntoViewWithExpirationTimerOffset(elementContainer);
214
+ if (scrollIntoView) {
215
+ // Scroll in view should be done on input container
216
+ ScrollHelper.scrollIntoViewWithExpirationTimerOffset(elementContainer);
217
+ }
208
218
  const elementNodeListOf = elementContainer.querySelectorAll(`input[id^="${this.name}"]`);
209
219
  if (elementNodeListOf && elementNodeListOf.length > 0) {
210
220
  const inputElement = this.findFirstHtmlInputElementEnabled(elementNodeListOf);
211
221
  if (inputElement) {
212
222
  // Focus should be on the input itself
213
- inputElement.focus();
223
+ inputElement.focus({ preventScroll: !scrollIntoView });
214
224
  }
215
225
  }
216
226
  }
@@ -422,4 +432,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
422
432
  }], hidden: [{
423
433
  type: Input
424
434
  }] } });
425
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9laG4taW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJlc3RhdGlvbnMtbmcvc3JjL2ZvZWhuLWlucHV0L2ZvZWhuLWlucHV0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUgsU0FBUyxFQUVULFlBQVksRUFDWixVQUFVLEVBQ1YsV0FBVyxFQUNYLEtBQUssRUFHTCxNQUFNLEVBRU4sU0FBUyxFQUNULFlBQVksRUFDZixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekMsT0FBTyxFQUFFLGFBQWEsRUFBYyxPQUFPLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxZQUFZLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFbkQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFHakYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDcEQsMkNBQTJDO0FBQzNDLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDBDQUEwQyxDQUFDOztBQUVwRixNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBRyxLQUFLLENBQUM7QUFHNUMsTUFBTSxPQUFnQixtQkFBbUI7SUF5SnJDO1FBdEhBLGlCQUFZLEdBQThCLEVBQUUsQ0FBQztRQU03Qyw0QkFBdUIsR0FBRyxLQUFLLENBQUM7UUFnQmhDLGlCQUFZLEdBQUcsS0FBSyxDQUFDO1FBR3JCLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBRXBCOztXQUVHO1FBRUgsNEJBQXVCLEdBQUcsS0FBSyxDQUFDO1FBRWhDOztX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RHRCLEtBQUs7Z0JBSU4sU0FBUztzQkFEUixLQUFLO2dCQUlOLGNBQWM7c0JBRGIsWUFBWTt1QkFBQyxPQUFPO2dCQUlyQixZQUFZO3NCQURYLFNBQVM7dUJBQUMsZ0JBQWdCOztRQUkzQiw4REFBOEQ7UUFDOUQsYUFBYTtzQkFGWixZQUFZO3VCQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQztnQkFRbkQsV0FBVztzQkFEVixNQUFNO2dCQU9QLFNBQVM7c0JBRFIsTUFBTTtnQkFLUCxXQUFXO3NCQURWLE1BQU07dUJBQUMsTUFBTTtnQkFLZCxZQUFZO3NCQURYLE1BQU07dUJBQUMsT0FBTztnQkFJZixNQUFNO3NCQURMLFdBQVc7dUJBQUMsU0FBUztnQkFJdEIsVUFBVTtzQkFEVCxXQUFXO3VCQUFDLGFBQWE7Z0JBa0R0QixLQUFLO3NCQURSLEtBQUs7Z0JBV0YsUUFBUTtzQkFEWCxLQUFLO2dCQVdGLE1BQU07c0JBRFQsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBEaXJlY3RpdmUsXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgZm9yd2FyZFJlZixcbiAgICBIb3N0QmluZGluZyxcbiAgICBJbnB1dCxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT25Jbml0LFxuICAgIE91dHB1dCxcbiAgICBRdWVyeUxpc3QsXG4gICAgVmlld0NoaWxkLFxuICAgIFZpZXdDaGlsZHJlblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5nTW9kZWwgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBjb21iaW5lTGF0ZXN0LCBPYnNlcnZhYmxlLCBTdWJqZWN0LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBSZWdpc3Rlck5nTW9kZWxTZXJ2aWNlIH0gZnJvbSAnLi4vZm9laG4tZm9ybS9yZWdpc3Rlci1uZy1tb2RlbC5zZXJ2aWNlJztcbmltcG9ydCB7IEhlbHBNb2RhbCB9IGZyb20gJy4uL2ZvZWhuLWhlbHAtbW9kYWwvZm9laG4taGVscC1tb2RhbC50eXBlJztcbmltcG9ydCB7IEZvcm1FcnJvciB9IGZyb20gJy4uL2Zvcm0tZXJyb3InO1xuaW1wb3J0IHsgT2JqZWN0SGVscGVyIH0gZnJvbSAnLi4vaGVscGVycy9vYmplY3QuaGVscGVyJztcbmltcG9ydCB7IFNjcm9sbEhlbHBlciB9IGZyb20gJy4uL2hlbHBlcnMvc2Nyb2xsLmhlbHBlcic7XG5pbXBvcnQgeyBTZXJ2aWNlTG9jYXRvciB9IGZyb20gJy4uL3NlcnZpY2UtbG9jYXRvcic7XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0L25vLWN5Y2xlXG5pbXBvcnQgeyBWYWxpZGF0aW9uSGFuZGxlclNlcnZpY2UgfSBmcm9tICcuLi92YWxpZGF0aW9uL3ZhbGlkYXRpb24taGFuZGxlci5zZXJ2aWNlJztcblxuZXhwb3J0IGNvbnN0IEdFU0RFTV9NQVhfREFUQV9MRU5HVEggPSAxMDAwMDtcblxuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRm9laG5JbnB1dENvbXBvbmVudDxUPlxuICAgIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIEFmdGVyVmlld0luaXRcbntcbiAgICBASW5wdXQoKVxuICAgIGlkOiBzdHJpbmc7XG5cbiAgICBASW5wdXQoKVxuICAgIHJlcXVpcmVkOiBib29sZWFuO1xuXG4gICAgQElucHV0KClcbiAgICBsYWJlbDogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogV2hlbiBUUlVFLCBhZGRzIGNsYXNzICd2aXN1YWxseS1oaWRkZW4nIChvbmx5IGZvciBzY3JlZW4gcmVhZGVycykgb24gdGFnIDxsYWJlbD4gb3IgPGxlZ2VuZD5cbiAgICAgKiBkZXBlbmRpbmcgb24gY29tcG9uZW50IGV4dGVuZGluZyB0aGlzIGNsYXNzXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBpc0xhYmVsU3JPbmx5OiBib29sZWFuO1xuXG4gICAgQElucHV0KClcbiAgICBzdGFuZGFyZEhlbHBUZXh0OiBzdHJpbmc7XG5cbiAgICBASW5wdXQoKVxuICAgIGhlbHBUZXh0OiBzdHJpbmc7XG5cbiAgICBASW5wdXQoKVxuICAgIG5hbWU6IHN0cmluZztcblxuICAgIEBJbnB1dCgpXG4gICAgcGF0dGVybjogc3RyaW5nO1xuXG4gICAgQElucHV0KClcbiAgICBsYWJlbFN0eWxlTW9kaWZpZXI6IHN0cmluZztcblxuICAgIEBJbnB1dCgpXG4gICAgY3VzdG9tRXJyb3JzOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9ID0ge307XG5cbiAgICBASW5wdXQoKVxuICAgIG1heGxlbmd0aDogbnVtYmVyO1xuXG4gICAgQElucHV0KClcbiAgICBvdmVycmlkZUdlc2RlbU1heGxlbmd0aCA9IGZhbHNlO1xuXG4gICAgQElucHV0KClcbiAgICBtaW46IG51bWJlcjtcblxuICAgIEBJbnB1dCgpXG4gICAgbWF4OiBudW1iZXI7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgYXR0cmlidXRlIG11c3QgdGFrZSBvbmUgb2YgdGhlIGZvbGxvd2luZyB2YWx1ZXM6XG4gICAgICogU2VlIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2ZyL2RvY3MvV2ViL0hUTUwvQXR0cmlidXRlcy9hdXRvY29tcGxldGVcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGF1dG9jb21wbGV0ZTogc3RyaW5nO1xuXG4gICAgQElucHV0KClcbiAgICBwcmV2ZW50UGFzdGUgPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpXG4gICAgY2xlYXJCdXR0b24gPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIEV4Y2x1ZGUgdGhlIGNvbXBvbmVudCBmcm9tIHRoZSBlcnJvciBzdW1tYXJ5IGlmIHRoZSBjb21wb25lbnQgaGFzIGFuIGVycm9yLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgZXhjbHVkZUZyb21FcnJvclN1bW1hcnkgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIEhpZGUgdGhlICdmYWN1bHRhdGlmJyBleHRyYSBsYWJlbC5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGhpZGVOb3RSZXF1aXJlZEV4dHJhTGFiZWwgPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpXG4gICAgaXNFcnJvckluaGVyaXRlZCA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogV2hlbiBzZXQgdG8gVFJVRTogU2hvd3MgZXJyb3IgZXZlbiBpZiBpbnB1dCBpcyBkaXNhYmxlZFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2hvd0Vycm9yV2hlbkRpc2FibGVkID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgYXV0b2NhcGl0YWxpemUgYXR0cmlidXRlIG5ldmVyIGNhdXNlcyBhdXRvY2FwaXRhbGl6YXRpb24gdG8gYmUgZW5hYmxlZCBmb3JcbiAgICAgKiBhbiA8aW5wdXQ+IGVsZW1lbnQgd2l0aCBhIHR5cGUgYXR0cmlidXRlIHdob3NlIHZhbHVlIGlzIHVybCwgZW1haWwsIG9yIHBhc3N3b3JkLlxuICAgICAqIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2ZyL2RvY3MvV2ViL0hUTUwvR2xvYmFsX2F0dHJpYnV0ZXMvYXV0b2NhcGl0YWxpemVcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGF1dG9jYXBpdGFsaXplOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBXaGVuIHNldCB0byBUUlVFOiBBbGxvd3MgbW9kZWwgdXBkYXRlIHRvIGJlIGVtaXR0ZWRcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHVwZGF0ZU1vZGVsV2hlbkRpc2FibGVkID0gZmFsc2U7XG5cbiAgICBASW5wdXQoKVxuICAgIGhlbHBNb2RhbDogSGVscE1vZGFsO1xuXG4gICAgQFZpZXdDaGlsZHJlbihOZ01vZGVsKVxuICAgIGlucHV0TW9kZWxMaXN0OiBRdWVyeUxpc3Q8TmdNb2RlbD47XG5cbiAgICBAVmlld0NoaWxkKCdlbnRyeUNvbXBvbmVudCcpXG4gICAgaW5wdXRFbGVtZW50OiBFbGVtZW50UmVmO1xuXG4gICAgQFZpZXdDaGlsZHJlbihmb3J3YXJkUmVmKCgpID0+IEZvZWhuSW5wdXRDb21wb25lbnQpKVxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgc3ViQ29tcG9uZW50czogUXVlcnlMaXN0PEZvZWhuSW5wdXRDb21wb25lbnQ8YW55Pj47XG5cbiAgICAvKipcbiAgICAgKiBGaXJlZCB3aGVuIHRoZSBtb2RlbCBjaGFuZ2VzIGZvciBhbnkgcmVhc29uXG4gICAgICovXG4gICAgQE91dHB1dCgpXG4gICAgbW9kZWxDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFQ+KCk7XG5cbiAgICAvKipcbiAgICAgKiBGaXJlZCB3aGVuIHRoZSB1c2VyIGNoYW5nZXMgYSB2YWx1ZSwgYWZ0ZXIgdGhlIG1vZGVsIGlzIHVwZGF0ZWQuXG4gICAgICovXG4gICAgQE91dHB1dCgpXG4gICAgdXNlcklucHV0ID0gbmV3IEV2ZW50RW1pdHRlcjxUPigpO1xuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1vdXRwdXQtbmF0aXZlLEBhbmd1bGFyLWVzbGludC9uby1vdXRwdXQtcmVuYW1lXG4gICAgQE91dHB1dCgnYmx1cicpXG4gICAgYmx1ckhhbmRsZXIgPSBuZXcgRXZlbnRFbWl0dGVyPEZvY3VzRXZlbnQ+KCk7XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLW91dHB1dC1uYXRpdmUsQGFuZ3VsYXItZXNsaW50L25vLW91dHB1dC1yZW5hbWVcbiAgICBAT3V0cHV0KCdmb2N1cycpXG4gICAgZm9jdXNIYW5kbGVyID0gbmV3IEV2ZW50RW1pdHRlcjxGb2N1c0V2ZW50PigpO1xuXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLmlkJylcbiAgICBob3N0SWQ6IHN0cmluZztcblxuICAgIEBIb3N0QmluZGluZygnYXR0ci5oaWRkZW4nKVxuICAgIGhvc3RIaWRkZW46IHN0cmluZztcblxuICAgIHR5cGU6IHN0cmluZztcblxuICAgIHZhbGlkYXRpb25IYW5kbGVyU2VydmljZTogVmFsaWRhdGlvbkhhbmRsZXJTZXJ2aWNlO1xuXG4gICAgbW9kZWxfOiBUO1xuXG4gICAgcHJpdmF0ZSBfZXJyb3JzOiBGb3JtRXJyb3JbXTtcblxuICAgIHByaXZhdGUgdmFsaWRhdGlvbkVycm9yc1N1YmplY3RTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgICBwcml2YXRlIHJlZ2lzdGVyTmdNb2RlbFNlcnZpY2U6IFJlZ2lzdGVyTmdNb2RlbFNlcnZpY2U7XG5cbiAgICBwcml2YXRlIHNob3dDbGVhckJ1dHRvbjogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgICBwcml2YXRlIHVzZXJJbnB1dFN1YmplY3QgPSBuZXcgU3ViamVjdDxUPigpO1xuICAgIHByaXZhdGUgdXNlcklucHV0U3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG5cbiAgICBwcml2YXRlIF9kaXNhYmxlZDogYm9vbGVhbjtcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLnZhbGlkYXRpb25IYW5kbGVyU2VydmljZSA9IFNlcnZpY2VMb2NhdG9yLmluamVjdG9yLmdldChcbiAgICAgICAgICAgIFZhbGlkYXRpb25IYW5kbGVyU2VydmljZVxuICAgICAgICApO1xuICAgICAgICB0aGlzLnJlZ2lzdGVyTmdNb2RlbFNlcnZpY2UgPSBTZXJ2aWNlTG9jYXRvci5pbmplY3Rvci5nZXQoXG4gICAgICAgICAgICBSZWdpc3Rlck5nTW9kZWxTZXJ2aWNlXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMucmVxdWlyZWQgPSBmYWxzZTtcblxuICAgICAgICB0aGlzLnZhbGlkYXRpb25FcnJvcnNTdWJqZWN0U3Vic2NyaXB0aW9uID0gY29tYmluZUxhdGVzdChbXG4gICAgICAgICAgICB0aGlzLnZhbGlkYXRpb25IYW5kbGVyU2VydmljZS52YWxpZGF0aW9uRXJyb3JzU3ViamVjdCxcbiAgICAgICAgICAgIHRoaXMudmFsaWRhdGlvbkhhbmRsZXJTZXJ2aWNlLnZhbGlkYXRpb25EaXNwbGF5U3ViamVjdFxuICAgICAgICBdKS5zdWJzY3JpYmUodmFsdWVzID0+IHtcbiAgICAgICAgICAgIHRoaXMucmVmcmVzaEVycm9ycyh2YWx1ZXMpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBnZXQgZXJyb3JzKCk6IEZvcm1FcnJvcltdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2Vycm9ycz8uc29ydCgoYSwgYikgPT5cbiAgICAgICAgICAgIE9iamVjdEhlbHBlci5zdHJpcEh0bWwoYS5tZXNzYWdlKS5sb2NhbGVDb21wYXJlKFxuICAgICAgICAgICAgICAgIE9iamVjdEhlbHBlci5zdHJpcEh0bWwoYi5tZXNzYWdlKVxuICAgICAgICAgICAgKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIGdldCBtb2RlbCgpOiBUIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubW9kZWxfO1xuICAgIH1cblxuICAgIEBJbnB1dCgpXG4gICAgc2V0IG1vZGVsKHZhbHVlOiBUKSB7XG4gICAgICAgIHRoaXMub25Nb2RlbENoYW5nZSh2YWx1ZSk7XG4gICAgfVxuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9tZW1iZXItb3JkZXJpbmdcbiAgICBnZXQgZGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kaXNhYmxlZDtcbiAgICB9XG5cbiAgICBASW5wdXQoKVxuICAgIHNldCBkaXNhYmxlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLl9kaXNhYmxlZCA9IHZhbHVlO1xuICAgIH1cblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbWVtYmVyLW9yZGVyaW5nXG4gICAgZ2V0IGhpZGRlbigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy5ob3N0SGlkZGVuO1xuICAgIH1cblxuICAgIEBJbnB1dCgpXG4gICAgc2V0IGhpZGRlbih2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLmhvc3RIaWRkZW4gPSB2YWx1ZSA/ICdoaWRkZW4nIDogbnVsbDtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgLy8gRW5zdXJlcyB0aGF0IHRoZSBob3N0IGhhcyBhbiBJZCBmb3IgaW5zdHJ1bWVudGFsaXphdGlvbiBvZiB0aGUgRE9NIGJ5IGF1dG9tYXRlZCB0ZXN0cy5cbiAgICAgICAgdGhpcy5ob3N0SWQgPSB0aGlzLmJ1aWxkSWQoKTtcblxuICAgICAgICB0aGlzLnNob3dDbGVhckJ1dHRvbiA9IHRoaXMubW9kZWxDaGFuZ2VcbiAgICAgICAgICAgIC5hc09ic2VydmFibGUoKVxuICAgICAgICAgICAgLnBpcGUobWFwKG1vZGVsID0+IHRoaXMuY2xlYXJCdXR0b24gJiYgISFtb2RlbCAmJiAhdGhpcy5fZGlzYWJsZWQpKTtcblxuICAgICAgICB0aGlzLnVzZXJJbnB1dFN1YnNjcmlwdGlvbiA9IHRoaXMudXNlcklucHV0U3ViamVjdFxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgLy8gVGhpcyBpcyB1c2VkIHRvIGVuc3VyZSB0aGF0IHdlIG9ubHkgY2F0Y2ggdGhlIGxhdGVzdCBvZiBtdWx0aXBsZVxuICAgICAgICAgICAgICAgIC8vIHF1aWNrIHVwZGF0ZXMsIGFuZCB0byBtYWtlIHN1cmUgdGhlIHVzZXJJbnB1dCBpcyBmaXJlZCB3aGVuXG4gICAgICAgICAgICAgICAgLy8gdGhlIGNvbXBvbmVudCBpcyBkb25lIHVwZGF0aW5nLlxuICAgICAgICAgICAgICAgIGRlYm91bmNlVGltZSgwKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSh2YWx1ZSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy51c2VySW5wdXQuZW1pdCh2YWx1ZSk7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMudmFsaWRhdGlvbkVycm9yc1N1YmplY3RTdWJzY3JpcHRpb24pIHtcbiAgICAgICAgICAgIHRoaXMudmFsaWRhdGlvbkVycm9yc1N1YmplY3RTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLnVzZXJJbnB1dFN1YnNjcmlwdGlvbikge1xuICAgICAgICAgICAgdGhpcy51c2VySW5wdXRTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zdWJDb21wb25lbnRzLmNoYW5nZXMuc3Vic2NyaWJlKCgpID0+XG4gICAgICAgICAgICB0aGlzLnJlZ2lzdGVyTmdNb2RlbFNlcnZpY2UudXBkYXRlUmVnaXN0ZXJlZE5nTW9kZWxzKClcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBvbk1vZGVsQ2hhbmdlKHZhbHVlOiBUKTogdm9pZCB7XG4gICAgICAgIHRoaXMudXBkYXRlTmdNb2RlbCh2YWx1ZSk7XG4gICAgfVxuXG4gICAgaGFuZGxlQ2hhbmdlKHZhbHVlOiBUKTogdm9pZCB7XG4gICAgICAgIHRoaXMudHJpZ2dlclVzZXJJbnB1dCh2YWx1ZSk7XG4gICAgfVxuXG4gICAgdXBkYXRlTmdNb2RlbCh2YWx1ZTogVCk6IHZvaWQge1xuICAgICAgICB0aGlzLm1vZGVsXyA9IHZhbHVlO1xuICAgICAgICBpZiAoIXRoaXMuX2Rpc2FibGVkIHx8IHRoaXMudXBkYXRlTW9kZWxXaGVuRGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHRoaXMubW9kZWxDaGFuZ2UuZW1pdCh2YWx1ZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBoYXNFcnJvcnNUb0Rpc3BsYXkoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICB0aGlzLmhhc0Vycm9ycygpICYmICghdGhpcy5fZGlzYWJsZWQgfHwgdGhpcy5zaG93RXJyb3JXaGVuRGlzYWJsZWQpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgaGFzRXJyb3JzKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fZXJyb3JzICYmIHRoaXMuX2Vycm9ycy5sZW5ndGggPiAwICYmIHRoaXMuaXNQcmlzdGluZSgpO1xuICAgIH1cblxuICAgIGhhc0luaGVyaXRFcnJvckZyb21QYXJlbnQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzRXJyb3JJbmhlcml0ZWQ7XG4gICAgfVxuXG4gICAgaXNQcmlzdGluZSgpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKCF0aGlzLmlucHV0TW9kZWxMaXN0ICYmICF0aGlzLnN1YkNvbXBvbmVudHMpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmlucHV0TW9kZWxMaXN0ICYmICF0aGlzLnN1YkNvbXBvbmVudHMpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmlucHV0TW9kZWxMaXN0LmZpbHRlcihtID0+ICFtLnByaXN0aW5lKS5sZW5ndGggPT09IDA7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCF0aGlzLmlucHV0TW9kZWxMaXN0ICYmIHRoaXMuc3ViQ29tcG9uZW50cykge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuc3ViQ29tcG9uZW50cy5maWx0ZXIoYyA9PiAhYy5pc1ByaXN0aW5lKCkpLmxlbmd0aCA9PT0gMDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgdGhpcy5pbnB1dE1vZGVsTGlzdC5maWx0ZXIobSA9PiAhbS5wcmlzdGluZSkubGVuZ3RoID09PSAwICYmXG4gICAgICAgICAgICB0aGlzLnN1YkNvbXBvbmVudHMuZmlsdGVyKGMgPT4gIWMuaXNQcmlzdGluZSgpKS5sZW5ndGggPT09IDBcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBtYXJrQXNEaXJ0eSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pbnB1dE1vZGVsTGlzdC5mb3JFYWNoKG5nTW9kZWwgPT4ge1xuICAgICAgICAgICAgbmdNb2RlbC5jb250cm9sLm1hcmtBc0RpcnR5KCk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLnN1YkNvbXBvbmVudHMuZm9yRWFjaChjID0+IHtcbiAgICAgICAgICAgIGMubWFya0FzRGlydHkoKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgbWFya0FzUHJpc3RpbmUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaW5wdXRNb2RlbExpc3QuZm9yRWFjaChuZ01vZGVsID0+IHtcbiAgICAgICAgICAgIG5nTW9kZWwuY29udHJvbC5tYXJrQXNQcmlzdGluZSgpO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5zdWJDb21wb25lbnRzLmZvckVhY2goYyA9PiB7XG4gICAgICAgICAgICBjLm1hcmtBc1ByaXN0aW5lKCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGdldE5hdGl2ZUlucHV0TGlzdCgpOiBOZ01vZGVsW10ge1xuICAgICAgICBsZXQgcmVzdWx0OiBOZ01vZGVsW10gPSB0aGlzLmlucHV0TW9kZWxMaXN0LnRvQXJyYXkoKTtcbiAgICAgICAgdGhpcy5zdWJDb21wb25lbnRzLmZvckVhY2goYyA9PiB7XG4gICAgICAgICAgICByZXN1bHQgPSByZXN1bHQuY29uY2F0KGMuZ2V0TmF0aXZlSW5wdXRMaXN0KCkpO1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIGdldE1lQW5kU3ViQ29tcG9uZW50cygpOiBGb2VobklucHV0Q29tcG9uZW50PGFueT5bXSB7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgICAgIGxldCByZXN1bHQ6IEZvZWhuSW5wdXRDb21wb25lbnQ8YW55PltdID0gW3RoaXNdO1xuICAgICAgICBpZiAodGhpcy5zdWJDb21wb25lbnRzKSB7XG4gICAgICAgICAgICB0aGlzLnN1YkNvbXBvbmVudHMuZm9yRWFjaChjID0+IHtcbiAgICAgICAgICAgICAgICByZXN1bHQgPSByZXN1bHQuY29uY2F0KGMuZ2V0TWVBbmRTdWJDb21wb25lbnRzKCkpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIHJlZnJlc2hFcnJvcnMocmVzdWx0czogYW55W10pOiB2b2lkIHtcbiAgICAgICAgY29uc3QgZXJyb3JzOiBGb3JtRXJyb3JbXSA9IHJlc3VsdHNbMF07XG4gICAgICAgIGNvbnN0IHNob3VsZERpc3BsYXlFcnJvcnM6IGJvb2xlYW4gPSByZXN1bHRzWzFdO1xuICAgICAgICBpZiAoc2hvdWxkRGlzcGxheUVycm9ycykge1xuICAgICAgICAgICAgdGhpcy5fZXJyb3JzID0gZXJyb3JzLmZpbHRlcihlID0+IGUubmFtZSA9PT0gdGhpcy5uYW1lKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZvY3VzKCk6IHZvaWQge1xuICAgICAgICBsZXQgZWxlbWVudENvbnRhaW5lcjogSFRNTEVsZW1lbnQ7XG4gICAgICAgIGlmICh0aGlzLmlucHV0RWxlbWVudCAmJiB0aGlzLmlucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50KSB7XG4gICAgICAgICAgICBlbGVtZW50Q29udGFpbmVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXG4gICAgICAgICAgICAgICAgdGhpcy5idWlsZElkKCdDb250YWluZXInKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIC8vIFNjcm9sbCBpbiB2aWV3IHNob3VsZCBiZSBkb25lIG9uIGlucHV0IGNvbnRhaW5lclxuICAgICAgICAgICAgU2Nyb2xsSGVscGVyLnNjcm9sbEludG9WaWV3V2l0aEV4cGlyYXRpb25UaW1lck9mZnNldChcbiAgICAgICAgICAgICAgICBlbGVtZW50Q29udGFpbmVyXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgLy8gRm9jdXMgc2hvdWxkIGJlIG9uIHRoZSBpbnB1dCBpdHNlbGZcbiAgICAgICAgICAgIHRoaXMuaW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgICAgIHRoaXMuc3ViQ29tcG9uZW50cyAmJlxuICAgICAgICAgICAgdGhpcy5nZXRGaXJzdElucHV0Q29tcG9uZW50RW5hYmxlZCh0aGlzLnN1YkNvbXBvbmVudHMpXG4gICAgICAgICkge1xuICAgICAgICAgICAgY29uc3QgaW5wdXRDb21wb25lbnQgPSB0aGlzLmdldEZpcnN0SW5wdXRDb21wb25lbnRFbmFibGVkKFxuICAgICAgICAgICAgICAgIHRoaXMuc3ViQ29tcG9uZW50c1xuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGVsZW1lbnRDb250YWluZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChcbiAgICAgICAgICAgICAgICBpbnB1dENvbXBvbmVudC5idWlsZElkKCdDb250YWluZXInKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIC8vIFNjcm9sbCBpbiB2aWV3IHNob3VsZCBiZSBkb25lIG9uIGlucHV0IGNvbnRhaW5lclxuICAgICAgICAgICAgU2Nyb2xsSGVscGVyLnNjcm9sbEludG9WaWV3V2l0aEV4cGlyYXRpb25UaW1lck9mZnNldChcbiAgICAgICAgICAgICAgICBlbGVtZW50Q29udGFpbmVyXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgLy8gRm9jdXMgc2hvdWxkIGJlIG9uIHRoZSBpbnB1dCBpdHNlbGZcbiAgICAgICAgICAgIGlucHV0Q29tcG9uZW50LmlucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBDYXNlIGZvciBjb21wb25lbnQgd2hvIGRvIG5vdCBoYXZlIGFueSAnI2VudHJ5Q29tcG9uZW50JyBpbiB0aGVpciBodG1sIHRlbXBsYXRlIChpLmUuIGZvZWhuLXJhZGlvLCBmb2Vobi1jaGVja2JveCwuLi4pXG4gICAgICAgICAgICBlbGVtZW50Q29udGFpbmVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXG4gICAgICAgICAgICAgICAgdGhpcy5idWlsZElkKCdDb250YWluZXInKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIC8vIFNjcm9sbCBpbiB2aWV3IHNob3VsZCBiZSBkb25lIG9uIGlucHV0IGNvbnRhaW5lclxuICAgICAgICAgICAgU2Nyb2xsSGVscGVyLnNjcm9sbEludG9WaWV3V2l0aEV4cGlyYXRpb25UaW1lck9mZnNldChcbiAgICAgICAgICAgICAgICBlbGVtZW50Q29udGFpbmVyXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgY29uc3QgZWxlbWVudE5vZGVMaXN0T2YgPSBlbGVtZW50Q29udGFpbmVyLnF1ZXJ5U2VsZWN0b3JBbGwoXG4gICAgICAgICAgICAgICAgYGlucHV0W2lkXj1cIiR7dGhpcy5uYW1lfVwiXWBcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBpZiAoZWxlbWVudE5vZGVMaXN0T2YgJiYgZWxlbWVudE5vZGVMaXN0T2YubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGlucHV0RWxlbWVudCA9XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZmluZEZpcnN0SHRtbElucHV0RWxlbWVudEVuYWJsZWQoZWxlbWVudE5vZGVMaXN0T2YpO1xuICAgICAgICAgICAgICAgIGlmIChpbnB1dEVsZW1lbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gRm9jdXMgc2hvdWxkIGJlIG9uIHRoZSBpbnB1dCBpdHNlbGZcbiAgICAgICAgICAgICAgICAgICAgaW5wdXRFbGVtZW50LmZvY3VzKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0TWF4TGVuZ3RoKCk6IG51bWJlciB7XG4gICAgICAgIGlmICghdGhpcy5tYXhsZW5ndGgpIHtcbiAgICAgICAgICAgIHJldHVybiBHRVNERU1fTUFYX0RBVEFfTEVOR1RIO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgdGhpcy5tYXhsZW5ndGggPiBHRVNERU1fTUFYX0RBVEFfTEVOR1RIICYmXG4gICAgICAgICAgICAhdGhpcy5vdmVycmlkZUdlc2RlbU1heGxlbmd0aFxuICAgICAgICApIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFxuICAgICAgICAgICAgICAgIGBtYXhMZW5ndGggaW4gJHt0aGlzLm5hbWV9IGNhbm5vdCBiZSBtb3JlIHRoYW4gJHtHRVNERU1fTUFYX0RBVEFfTEVOR1RIfSAhYFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHJldHVybiBHRVNERU1fTUFYX0RBVEFfTEVOR1RIO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMubWF4bGVuZ3RoO1xuICAgIH1cblxuICAgIGJ1aWxkSWQoc3VmZml4OiBzdHJpbmcgPSAnJyk6IHN0cmluZyB7XG4gICAgICAgIC8vIFRoZSBiYXNlSWQgaXMgZWl0aGVyIGFuIGlkIGdpdmVuIGJ5IHRoZSB1c2VyIG9yIHRoZSB2YWx1ZSBvZiB0aGUgbmFtZS5cbiAgICAgICAgLy8gRm9yIGludGVncmF0aW9uIHB1cnBvc2VzLCB0aGUgY29udGFpbmVyIGZvZWhuLSogbXVzdCBoYXZlIGFuIElkLlxuICAgICAgICBjb25zdCBiYXNlSWQgPSB0aGlzLmlkIHx8IHRoaXMubmFtZTtcbiAgICAgICAgaWYgKCFiYXNlSWQpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGAke2Jhc2VJZH0ke3N1ZmZpeH1gO1xuICAgIH1cblxuICAgIGJ1aWxkQ2hpbGRJZChzdWZmaXg6IHN0cmluZyA9ICcnKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYnVpbGRJZChgQ2hpbGQke3N1ZmZpeH1gKTtcbiAgICB9XG5cbiAgICBidWlsZENoaWxkTmFtZShzdWZmaXg6IHN0cmluZyA9ICcnKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIGAke3RoaXMubmFtZX1DaGlsZCR7c3VmZml4fWA7XG4gICAgfVxuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICAgIG9uS2V5ZG93bihrZXk6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgLy8gRG8gbm90aGluZywgb3ZlcnJpZGVuIGJ5IHN1YmNvbXBvbmVudFxuICAgIH1cblxuICAgIHJlc2V0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnVwZGF0ZU5nTW9kZWwobnVsbCk7XG4gICAgfVxuXG4gICAgb25QYXN0ZShlOiBDbGlwYm9hcmRFdmVudCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5wcmV2ZW50UGFzdGUgPT09IHRydWUpIHtcbiAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uQmx1cihlOiBGb2N1c0V2ZW50KTogdm9pZCB7XG4gICAgICAgIHRoaXMuYmx1ckhhbmRsZXIuZW1pdChlKTtcbiAgICB9XG5cbiAgICBvbkZvY3VzKGU6IEZvY3VzRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5mb2N1c0hhbmRsZXIuZW1pdChlKTtcbiAgICB9XG5cbiAgICBvbkNsZWFyKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnVwZGF0ZU5nTW9kZWwobnVsbCk7XG4gICAgICAgIHRoaXMuaGFuZGxlQ2hhbmdlKG51bGwpO1xuICAgICAgICB0aGlzLmZvY3VzKCk7XG4gICAgICAgIHRoaXMubWFya0FzRGlydHkoKTtcbiAgICB9XG5cbiAgICBkaXNwbGF5Q2xlYXJCdXR0b24oKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgICAgIC8vIFRoaXMgaGFzIHRvIGJlIGFuIG9ic2VydmFibGUgdG8gcmVhY3QgdG8gdGhlIGNoYW5nZSBvZiBtb2RlbCB2YWx1ZS5cbiAgICAgICAgcmV0dXJuIHRoaXMuc2hvd0NsZWFyQnV0dG9uO1xuICAgIH1cblxuICAgIGdldERlc2NyaWJlZEJ5KCk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IGhlbHBUZXh0SWQgPSB0aGlzLmhlbHBUZXh0ID8gYCR7dGhpcy5idWlsZENoaWxkSWQoKX1IZWxwYCA6IG51bGw7XG4gICAgICAgIGNvbnN0IGVycm9ySWQgPSB0aGlzLmhhc0Vycm9yc1RvRGlzcGxheSgpXG4gICAgICAgICAgICA/IGAke3RoaXMuYnVpbGRJZCgpfUVycm9yc0NvbnRhaW5lcmBcbiAgICAgICAgICAgIDogbnVsbDtcblxuICAgICAgICAvLyBhcmlhLWRlc2NyaWJlZGJ5IGNhbiBiZSBsaW5rZWQgdG8gbXVsdGlwbGUgSWRzIHNlcGFyYXRlZCBieSBhIGNvbW1hLlxuICAgICAgICByZXR1cm4gW2hlbHBUZXh0SWQsIGVycm9ySWRdLmZpbHRlcihpZCA9PiAhIWlkKS5qb2luKCcsJykgfHwgbnVsbDtcbiAgICB9XG5cbiAgICBnZXRBdXRvQ29tcGxldGUoKTogc3RyaW5nIHtcbiAgICAgICAgLy8gcmV0cm8gY29tcGF0aWJpbGl0eSAoYXV0b2NvbXBsZXRlIHVzZWQgdG8gYmUgYSBib29sZWFuKVxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L2Jhbi10cy1jb21tZW50XG4gICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgaWYgKHRoaXMuYXV0b2NvbXBsZXRlID09PSBmYWxzZSkge1xuICAgICAgICAgICAgcmV0dXJuICdvZmYnO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9iYW4tdHMtY29tbWVudFxuICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgIGlmICh0aGlzLmF1dG9jb21wbGV0ZSA9PT0gdHJ1ZSkge1xuICAgICAgICAgICAgcmV0dXJuICcnO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuYXV0b2NvbXBsZXRlO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXRGaXJzdElucHV0Q29tcG9uZW50RW5hYmxlZChcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICAgICAgc3ViQ29tcG9uZW50czogUXVlcnlMaXN0PEZvZWhuSW5wdXRDb21wb25lbnQ8YW55Pj5cbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICApOiBGb2VobklucHV0Q29tcG9uZW50PGFueT4ge1xuICAgICAgICBjb25zdCBmb2VobklucHV0Q29tcG9uZW50cyA9IHN1YkNvbXBvbmVudHMuZmlsdGVyKFxuICAgICAgICAgICAgaXRlbSA9PlxuICAgICAgICAgICAgICAgIGl0ZW0uaW5wdXRFbGVtZW50ICYmXG4gICAgICAgICAgICAgICAgaXRlbS5pbnB1dEVsZW1lbnQubmF0aXZlRWxlbWVudCAmJlxuICAgICAgICAgICAgICAgICFpdGVtLl9kaXNhYmxlZFxuICAgICAgICApO1xuXG4gICAgICAgIGlmICghIWZvZWhuSW5wdXRDb21wb25lbnRzICYmIGZvZWhuSW5wdXRDb21wb25lbnRzLmxlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuIGZvZWhuSW5wdXRDb21wb25lbnRzWzBdO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGZpbmRGaXJzdEh0bWxJbnB1dEVsZW1lbnRFbmFibGVkKFxuICAgICAgICBlbGVtZW50Tm9kZUxpc3RPZjogTm9kZUxpc3RPZjxFbGVtZW50PlxuICAgICk6IEhUTUxJbnB1dEVsZW1lbnQge1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGVsZW1lbnROb2RlTGlzdE9mLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBjb25zdCBodG1sSW5wdXRFbGVtZW50ID0gZWxlbWVudE5vZGVMaXN0T2YuaXRlbShcbiAgICAgICAgICAgICAgICBpXG4gICAgICAgICAgICApIGFzIEhUTUxJbnB1dEVsZW1lbnQ7XG4gICAgICAgICAgICBpZiAoIWh0bWxJbnB1dEVsZW1lbnQuZGlzYWJsZWQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaHRtbElucHV0RWxlbWVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIHByb3RlY3RlZCBpc0VtcHR5KGRhdGE6IGFueSk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gZGF0YSA9PT0gbnVsbCB8fCBkYXRhID09PSB1bmRlZmluZWQgfHwgZGF0YSA9PT0gJyc7XG4gICAgfVxuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICBwcm90ZWN0ZWQgaXNFbXB0eVdoZW5UcmltbWVkSWZTdHJpbmcoZGF0YTogYW55KTogYm9vbGVhbiB7XG4gICAgICAgIGlmICh0eXBlb2YgZGF0YSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmlzRW1wdHkoISFkYXRhID8gZGF0YS50cmltKCkgOiBkYXRhKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLmlzRW1wdHkoZGF0YSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHRyaWdnZXJVc2VySW5wdXQodmFsdWU6IFQpOiB2b2lkIHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgLy8gSWYgdGhlIGNhbGxiYWNrIGlzIGRlZmluZWRcbiAgICAgICAgICAgICEhdGhpcy51c2VySW5wdXQgJiZcbiAgICAgICAgICAgIC8vIElmIHRoZSB2YWx1ZSBpcyBhY3R1YWxseSBzb21ldGhpbmcgKFQgb3IgbnVsbClcbiAgICAgICAgICAgIHR5cGVvZiB2YWx1ZSAhPT0gJ3VuZGVmaW5lZCcgJiZcbiAgICAgICAgICAgIC8vIElmIGlucHV0IGlzbid0IGRpc2FibGVkXG4gICAgICAgICAgICAhdGhpcy5fZGlzYWJsZWRcbiAgICAgICAgKSB7XG4gICAgICAgICAgICB0aGlzLnVzZXJJbnB1dFN1YmplY3QubmV4dCh2YWx1ZSk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
435
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9laG4taW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJlc3RhdGlvbnMtbmcvc3JjL2ZvZWhuLWlucHV0L2ZvZWhuLWlucHV0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUgsU0FBUyxFQUVULFlBQVksRUFDWixVQUFVLEVBQ1YsV0FBVyxFQUNYLEtBQUssRUFHTCxNQUFNLEVBRU4sU0FBUyxFQUNULFlBQVksRUFDZixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekMsT0FBTyxFQUFFLGFBQWEsRUFBYyxPQUFPLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxZQUFZLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFbkQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFHakYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDcEQsMkNBQTJDO0FBQzNDLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDBDQUEwQyxDQUFDOztBQUVwRixNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBRyxLQUFLLENBQUM7QUFHNUMsTUFBTSxPQUFnQixtQkFBbUI7SUF5SnJDO1FBdEhBLGlCQUFZLEdBQThCLEVBQUUsQ0FBQztRQU03Qyw0QkFBdUIsR0FBRyxLQUFLLENBQUM7UUFnQmhDLGlCQUFZLEdBQUcsS0FBSyxDQUFDO1FBR3JCLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBRXBCOztXQUVHO1FBRUgsNEJBQXVCLEdBQUcsS0FBSyxDQUFDO1FBRWhDOztX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R0FBRztzQkFERixLQUFLO2dCQUlOLEdBQUc7c0JBREYsS0FBSztnQkFRTixZQUFZO3NCQURYLEtBQUs7Z0JBSU4sWUFBWTtzQkFEWCxLQUFLO2dCQUlOLFdBQVc7c0JBRFYsS0FBSztnQkFPTix1QkFBdUI7c0JBRHRCLEtBQUs7Z0JBT04seUJBQXlCO3NCQUR4QixLQUFLO2dCQUlOLGdCQUFnQjtzQkFEZixLQUFLO2dCQU9OLHFCQUFxQjtzQkFEcEIsS0FBSztnQkFTTixjQUFjO3NCQURiLEtBQUs7Z0JBT04sdUJBQXVCO3NCQUR0QixLQUFLO2dCQUlOLFNBQVM7c0JBRFIsS0FBSztnQkFJTixjQUFjO3NCQURiLFlBQVk7dUJBQUMsT0FBTztnQkFJckIsWUFBWTtzQkFEWCxTQUFTO3VCQUFDLGdCQUFnQjs7UUFJM0IsOERBQThEO1FBQzlELGFBQWE7c0JBRlosWUFBWTt1QkFBQyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsbUJBQW1CLENBQUM7Z0JBUW5ELFdBQVc7c0JBRFYsTUFBTTtnQkFPUCxTQUFTO3NCQURSLE1BQU07Z0JBS1AsV0FBVztzQkFEVixNQUFNO3VCQUFDLE1BQU07Z0JBS2QsWUFBWTtzQkFEWCxNQUFNO3VCQUFDLE9BQU87Z0JBSWYsTUFBTTtzQkFETCxXQUFXO3VCQUFDLFNBQVM7Z0JBSXRCLFVBQVU7c0JBRFQsV0FBVzt1QkFBQyxhQUFhO2dCQWtEdEIsS0FBSztzQkFEUixLQUFLO2dCQVdGLFFBQVE7c0JBRFgsS0FBSztnQkFXRixNQUFNO3NCQURULEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFmdGVyVmlld0luaXQsXG4gICAgRGlyZWN0aXZlLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIGZvcndhcmRSZWYsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSW5wdXQsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBPdXRwdXQsXG4gICAgUXVlcnlMaXN0LFxuICAgIFZpZXdDaGlsZCxcbiAgICBWaWV3Q2hpbGRyZW5cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ01vZGVsIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgY29tYmluZUxhdGVzdCwgT2JzZXJ2YWJsZSwgU3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgUmVnaXN0ZXJOZ01vZGVsU2VydmljZSB9IGZyb20gJy4uL2ZvZWhuLWZvcm0vcmVnaXN0ZXItbmctbW9kZWwuc2VydmljZSc7XG5pbXBvcnQgeyBIZWxwTW9kYWwgfSBmcm9tICcuLi9mb2Vobi1oZWxwLW1vZGFsL2ZvZWhuLWhlbHAtbW9kYWwudHlwZSc7XG5pbXBvcnQgeyBGb3JtRXJyb3IgfSBmcm9tICcuLi9mb3JtLWVycm9yJztcbmltcG9ydCB7IE9iamVjdEhlbHBlciB9IGZyb20gJy4uL2hlbHBlcnMvb2JqZWN0LmhlbHBlcic7XG5pbXBvcnQgeyBTY3JvbGxIZWxwZXIgfSBmcm9tICcuLi9oZWxwZXJzL3Njcm9sbC5oZWxwZXInO1xuaW1wb3J0IHsgU2VydmljZUxvY2F0b3IgfSBmcm9tICcuLi9zZXJ2aWNlLWxvY2F0b3InO1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGltcG9ydC9uby1jeWNsZVxuaW1wb3J0IHsgVmFsaWRhdGlvbkhhbmRsZXJTZXJ2aWNlIH0gZnJvbSAnLi4vdmFsaWRhdGlvbi92YWxpZGF0aW9uLWhhbmRsZXIuc2VydmljZSc7XG5cbmV4cG9ydCBjb25zdCBHRVNERU1fTUFYX0RBVEFfTEVOR1RIID0gMTAwMDA7XG5cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEZvZWhuSW5wdXRDb21wb25lbnQ8VD5cbiAgICBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBBZnRlclZpZXdJbml0XG57XG4gICAgQElucHV0KClcbiAgICBpZDogc3RyaW5nO1xuXG4gICAgQElucHV0KClcbiAgICByZXF1aXJlZDogYm9vbGVhbjtcblxuICAgIEBJbnB1dCgpXG4gICAgbGFiZWw6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIFdoZW4gVFJVRSwgYWRkcyBjbGFzcyAndmlzdWFsbHktaGlkZGVuJyAob25seSBmb3Igc2NyZWVuIHJlYWRlcnMpIG9uIHRhZyA8bGFiZWw+IG9yIDxsZWdlbmQ+XG4gICAgICogZGVwZW5kaW5nIG9uIGNvbXBvbmVudCBleHRlbmRpbmcgdGhpcyBjbGFzc1xuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgaXNMYWJlbFNyT25seTogYm9vbGVhbjtcblxuICAgIEBJbnB1dCgpXG4gICAgc3RhbmRhcmRIZWxwVGV4dDogc3RyaW5nO1xuXG4gICAgQElucHV0KClcbiAgICBoZWxwVGV4dDogc3RyaW5nO1xuXG4gICAgQElucHV0KClcbiAgICBuYW1lOiBzdHJpbmc7XG5cbiAgICBASW5wdXQoKVxuICAgIHBhdHRlcm46IHN0cmluZztcblxuICAgIEBJbnB1dCgpXG4gICAgbGFiZWxTdHlsZU1vZGlmaWVyOiBzdHJpbmc7XG5cbiAgICBASW5wdXQoKVxuICAgIGN1c3RvbUVycm9yczogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSA9IHt9O1xuXG4gICAgQElucHV0KClcbiAgICBtYXhsZW5ndGg6IG51bWJlcjtcblxuICAgIEBJbnB1dCgpXG4gICAgb3ZlcnJpZGVHZXNkZW1NYXhsZW5ndGggPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpXG4gICAgbWluOiBudW1iZXI7XG5cbiAgICBASW5wdXQoKVxuICAgIG1heDogbnVtYmVyO1xuXG4gICAgLyoqXG4gICAgICogVGhlIGF0dHJpYnV0ZSBtdXN0IHRha2Ugb25lIG9mIHRoZSBmb2xsb3dpbmcgdmFsdWVzOlxuICAgICAqIFNlZSBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9mci9kb2NzL1dlYi9IVE1ML0F0dHJpYnV0ZXMvYXV0b2NvbXBsZXRlXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBhdXRvY29tcGxldGU6IHN0cmluZztcblxuICAgIEBJbnB1dCgpXG4gICAgcHJldmVudFBhc3RlID0gZmFsc2U7XG5cbiAgICBASW5wdXQoKVxuICAgIGNsZWFyQnV0dG9uID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBFeGNsdWRlIHRoZSBjb21wb25lbnQgZnJvbSB0aGUgZXJyb3Igc3VtbWFyeSBpZiB0aGUgY29tcG9uZW50IGhhcyBhbiBlcnJvci5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGV4Y2x1ZGVGcm9tRXJyb3JTdW1tYXJ5ID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBIaWRlIHRoZSAnZmFjdWx0YXRpZicgZXh0cmEgbGFiZWwuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBoaWRlTm90UmVxdWlyZWRFeHRyYUxhYmVsID0gZmFsc2U7XG5cbiAgICBASW5wdXQoKVxuICAgIGlzRXJyb3JJbmhlcml0ZWQgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIFdoZW4gc2V0IHRvIFRSVUU6IFNob3dzIGVycm9yIGV2ZW4gaWYgaW5wdXQgaXMgZGlzYWJsZWRcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNob3dFcnJvcldoZW5EaXNhYmxlZCA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogVGhlIGF1dG9jYXBpdGFsaXplIGF0dHJpYnV0ZSBuZXZlciBjYXVzZXMgYXV0b2NhcGl0YWxpemF0aW9uIHRvIGJlIGVuYWJsZWQgZm9yXG4gICAgICogYW4gPGlucHV0PiBlbGVtZW50IHdpdGggYSB0eXBlIGF0dHJpYnV0ZSB3aG9zZSB2YWx1ZSBpcyB1cmwsIGVtYWlsLCBvciBwYXNzd29yZC5cbiAgICAgKiBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9mci9kb2NzL1dlYi9IVE1ML0dsb2JhbF9hdHRyaWJ1dGVzL2F1dG9jYXBpdGFsaXplXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBhdXRvY2FwaXRhbGl6ZTogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogV2hlbiBzZXQgdG8gVFJVRTogQWxsb3dzIG1vZGVsIHVwZGF0ZSB0byBiZSBlbWl0dGVkXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICB1cGRhdGVNb2RlbFdoZW5EaXNhYmxlZCA9IGZhbHNlO1xuXG4gICAgQElucHV0KClcbiAgICBoZWxwTW9kYWw6IEhlbHBNb2RhbDtcblxuICAgIEBWaWV3Q2hpbGRyZW4oTmdNb2RlbClcbiAgICBpbnB1dE1vZGVsTGlzdDogUXVlcnlMaXN0PE5nTW9kZWw+O1xuXG4gICAgQFZpZXdDaGlsZCgnZW50cnlDb21wb25lbnQnKVxuICAgIGlucHV0RWxlbWVudDogRWxlbWVudFJlZjtcblxuICAgIEBWaWV3Q2hpbGRyZW4oZm9yd2FyZFJlZigoKSA9PiBGb2VobklucHV0Q29tcG9uZW50KSlcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIHN1YkNvbXBvbmVudHM6IFF1ZXJ5TGlzdDxGb2VobklucHV0Q29tcG9uZW50PGFueT4+O1xuXG4gICAgLyoqXG4gICAgICogRmlyZWQgd2hlbiB0aGUgbW9kZWwgY2hhbmdlcyBmb3IgYW55IHJlYXNvblxuICAgICAqL1xuICAgIEBPdXRwdXQoKVxuICAgIG1vZGVsQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxUPigpO1xuXG4gICAgLyoqXG4gICAgICogRmlyZWQgd2hlbiB0aGUgdXNlciBjaGFuZ2VzIGEgdmFsdWUsIGFmdGVyIHRoZSBtb2RlbCBpcyB1cGRhdGVkLlxuICAgICAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHVzZXJJbnB1dCA9IG5ldyBFdmVudEVtaXR0ZXI8VD4oKTtcblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8tb3V0cHV0LW5hdGl2ZSxAYW5ndWxhci1lc2xpbnQvbm8tb3V0cHV0LXJlbmFtZVxuICAgIEBPdXRwdXQoJ2JsdXInKVxuICAgIGJsdXJIYW5kbGVyID0gbmV3IEV2ZW50RW1pdHRlcjxGb2N1c0V2ZW50PigpO1xuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1vdXRwdXQtbmF0aXZlLEBhbmd1bGFyLWVzbGludC9uby1vdXRwdXQtcmVuYW1lXG4gICAgQE91dHB1dCgnZm9jdXMnKVxuICAgIGZvY3VzSGFuZGxlciA9IG5ldyBFdmVudEVtaXR0ZXI8Rm9jdXNFdmVudD4oKTtcblxuICAgIEBIb3N0QmluZGluZygnYXR0ci5pZCcpXG4gICAgaG9zdElkOiBzdHJpbmc7XG5cbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuaGlkZGVuJylcbiAgICBob3N0SGlkZGVuOiBzdHJpbmc7XG5cbiAgICB0eXBlOiBzdHJpbmc7XG5cbiAgICB2YWxpZGF0aW9uSGFuZGxlclNlcnZpY2U6IFZhbGlkYXRpb25IYW5kbGVyU2VydmljZTtcblxuICAgIG1vZGVsXzogVDtcblxuICAgIHByaXZhdGUgX2Vycm9yczogRm9ybUVycm9yW107XG5cbiAgICBwcml2YXRlIHZhbGlkYXRpb25FcnJvcnNTdWJqZWN0U3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG4gICAgcHJpdmF0ZSByZWdpc3Rlck5nTW9kZWxTZXJ2aWNlOiBSZWdpc3Rlck5nTW9kZWxTZXJ2aWNlO1xuXG4gICAgcHJpdmF0ZSBzaG93Q2xlYXJCdXR0b246IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gICAgcHJpdmF0ZSB1c2VySW5wdXRTdWJqZWN0ID0gbmV3IFN1YmplY3Q8VD4oKTtcbiAgICBwcml2YXRlIHVzZXJJbnB1dFN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuXG4gICAgcHJpdmF0ZSBfZGlzYWJsZWQ6IGJvb2xlYW47XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy52YWxpZGF0aW9uSGFuZGxlclNlcnZpY2UgPSBTZXJ2aWNlTG9jYXRvci5pbmplY3Rvci5nZXQoXG4gICAgICAgICAgICBWYWxpZGF0aW9uSGFuZGxlclNlcnZpY2VcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5yZWdpc3Rlck5nTW9kZWxTZXJ2aWNlID0gU2VydmljZUxvY2F0b3IuaW5qZWN0b3IuZ2V0KFxuICAgICAgICAgICAgUmVnaXN0ZXJOZ01vZGVsU2VydmljZVxuICAgICAgICApO1xuICAgICAgICB0aGlzLnJlcXVpcmVkID0gZmFsc2U7XG5cbiAgICAgICAgdGhpcy52YWxpZGF0aW9uRXJyb3JzU3ViamVjdFN1YnNjcmlwdGlvbiA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgICAgICAgdGhpcy52YWxpZGF0aW9uSGFuZGxlclNlcnZpY2UudmFsaWRhdGlvbkVycm9yc1N1YmplY3QsXG4gICAgICAgICAgICB0aGlzLnZhbGlkYXRpb25IYW5kbGVyU2VydmljZS52YWxpZGF0aW9uRGlzcGxheVN1YmplY3RcbiAgICAgICAgXSkuc3Vic2NyaWJlKHZhbHVlcyA9PiB7XG4gICAgICAgICAgICB0aGlzLnJlZnJlc2hFcnJvcnModmFsdWVzKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgZ2V0IGVycm9ycygpOiBGb3JtRXJyb3JbXSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9lcnJvcnM/LnNvcnQoKGEsIGIpID0+XG4gICAgICAgICAgICBPYmplY3RIZWxwZXIuc3RyaXBIdG1sKGEubWVzc2FnZSkubG9jYWxlQ29tcGFyZShcbiAgICAgICAgICAgICAgICBPYmplY3RIZWxwZXIuc3RyaXBIdG1sKGIubWVzc2FnZSlcbiAgICAgICAgICAgIClcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBnZXQgbW9kZWwoKTogVCB7XG4gICAgICAgIHJldHVybiB0aGlzLm1vZGVsXztcbiAgICB9XG5cbiAgICBASW5wdXQoKVxuICAgIHNldCBtb2RlbCh2YWx1ZTogVCkge1xuICAgICAgICB0aGlzLm9uTW9kZWxDaGFuZ2UodmFsdWUpO1xuICAgIH1cblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbWVtYmVyLW9yZGVyaW5nXG4gICAgZ2V0IGRpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fZGlzYWJsZWQ7XG4gICAgfVxuXG4gICAgQElucHV0KClcbiAgICBzZXQgZGlzYWJsZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5fZGlzYWJsZWQgPSB2YWx1ZTtcbiAgICB9XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L21lbWJlci1vcmRlcmluZ1xuICAgIGdldCBoaWRkZW4oKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhIXRoaXMuaG9zdEhpZGRlbjtcbiAgICB9XG5cbiAgICBASW5wdXQoKVxuICAgIHNldCBoaWRkZW4odmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5ob3N0SGlkZGVuID0gdmFsdWUgPyAnaGlkZGVuJyA6IG51bGw7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIC8vIEVuc3VyZXMgdGhhdCB0aGUgaG9zdCBoYXMgYW4gSWQgZm9yIGluc3RydW1lbnRhbGl6YXRpb24gb2YgdGhlIERPTSBieSBhdXRvbWF0ZWQgdGVzdHMuXG4gICAgICAgIHRoaXMuaG9zdElkID0gdGhpcy5idWlsZElkKCk7XG5cbiAgICAgICAgdGhpcy5zaG93Q2xlYXJCdXR0b24gPSB0aGlzLm1vZGVsQ2hhbmdlXG4gICAgICAgICAgICAuYXNPYnNlcnZhYmxlKClcbiAgICAgICAgICAgIC5waXBlKG1hcChtb2RlbCA9PiB0aGlzLmNsZWFyQnV0dG9uICYmICEhbW9kZWwgJiYgIXRoaXMuX2Rpc2FibGVkKSk7XG5cbiAgICAgICAgdGhpcy51c2VySW5wdXRTdWJzY3JpcHRpb24gPSB0aGlzLnVzZXJJbnB1dFN1YmplY3RcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIC8vIFRoaXMgaXMgdXNlZCB0byBlbnN1cmUgdGhhdCB3ZSBvbmx5IGNhdGNoIHRoZSBsYXRlc3Qgb2YgbXVsdGlwbGVcbiAgICAgICAgICAgICAgICAvLyBxdWljayB1cGRhdGVzLCBhbmQgdG8gbWFrZSBzdXJlIHRoZSB1c2VySW5wdXQgaXMgZmlyZWQgd2hlblxuICAgICAgICAgICAgICAgIC8vIHRoZSBjb21wb25lbnQgaXMgZG9uZSB1cGRhdGluZy5cbiAgICAgICAgICAgICAgICBkZWJvdW5jZVRpbWUoMClcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUodmFsdWUgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMudXNlcklucHV0LmVtaXQodmFsdWUpO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLnZhbGlkYXRpb25FcnJvcnNTdWJqZWN0U3Vic2NyaXB0aW9uKSB7XG4gICAgICAgICAgICB0aGlzLnZhbGlkYXRpb25FcnJvcnNTdWJqZWN0U3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy51c2VySW5wdXRTdWJzY3JpcHRpb24pIHtcbiAgICAgICAgICAgIHRoaXMudXNlcklucHV0U3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc3ViQ29tcG9uZW50cy5jaGFuZ2VzLnN1YnNjcmliZSgoKSA9PlxuICAgICAgICAgICAgdGhpcy5yZWdpc3Rlck5nTW9kZWxTZXJ2aWNlLnVwZGF0ZVJlZ2lzdGVyZWROZ01vZGVscygpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgb25Nb2RlbENoYW5nZSh2YWx1ZTogVCk6IHZvaWQge1xuICAgICAgICB0aGlzLnVwZGF0ZU5nTW9kZWwodmFsdWUpO1xuICAgIH1cblxuICAgIGhhbmRsZUNoYW5nZSh2YWx1ZTogVCk6IHZvaWQge1xuICAgICAgICB0aGlzLnRyaWdnZXJVc2VySW5wdXQodmFsdWUpO1xuICAgIH1cblxuICAgIHVwZGF0ZU5nTW9kZWwodmFsdWU6IFQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5tb2RlbF8gPSB2YWx1ZTtcbiAgICAgICAgaWYgKCF0aGlzLl9kaXNhYmxlZCB8fCB0aGlzLnVwZGF0ZU1vZGVsV2hlbkRpc2FibGVkKSB7XG4gICAgICAgICAgICB0aGlzLm1vZGVsQ2hhbmdlLmVtaXQodmFsdWUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaGFzRXJyb3JzVG9EaXNwbGF5KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgdGhpcy5oYXNFcnJvcnMoKSAmJiAoIXRoaXMuX2Rpc2FibGVkIHx8IHRoaXMuc2hvd0Vycm9yV2hlbkRpc2FibGVkKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIGhhc0Vycm9ycygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2Vycm9ycyAmJiB0aGlzLl9lcnJvcnMubGVuZ3RoID4gMCAmJiB0aGlzLmlzUHJpc3RpbmUoKTtcbiAgICB9XG5cbiAgICBoYXNJbmhlcml0RXJyb3JGcm9tUGFyZW50KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5pc0Vycm9ySW5oZXJpdGVkO1xuICAgIH1cblxuICAgIGlzUHJpc3RpbmUoKTogYm9vbGVhbiB7XG4gICAgICAgIGlmICghdGhpcy5pbnB1dE1vZGVsTGlzdCAmJiAhdGhpcy5zdWJDb21wb25lbnRzKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5pbnB1dE1vZGVsTGlzdCAmJiAhdGhpcy5zdWJDb21wb25lbnRzKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5pbnB1dE1vZGVsTGlzdC5maWx0ZXIobSA9PiAhbS5wcmlzdGluZSkubGVuZ3RoID09PSAwO1xuICAgICAgICB9XG4gICAgICAgIGlmICghdGhpcy5pbnB1dE1vZGVsTGlzdCAmJiB0aGlzLnN1YkNvbXBvbmVudHMpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnN1YkNvbXBvbmVudHMuZmlsdGVyKGMgPT4gIWMuaXNQcmlzdGluZSgpKS5sZW5ndGggPT09IDA7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIHRoaXMuaW5wdXRNb2RlbExpc3QuZmlsdGVyKG0gPT4gIW0ucHJpc3RpbmUpLmxlbmd0aCA9PT0gMCAmJlxuICAgICAgICAgICAgdGhpcy5zdWJDb21wb25lbnRzLmZpbHRlcihjID0+ICFjLmlzUHJpc3RpbmUoKSkubGVuZ3RoID09PSAwXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgbWFya0FzRGlydHkoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaW5wdXRNb2RlbExpc3QuZm9yRWFjaChuZ01vZGVsID0+IHtcbiAgICAgICAgICAgIG5nTW9kZWwuY29udHJvbC5tYXJrQXNEaXJ0eSgpO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5zdWJDb21wb25lbnRzLmZvckVhY2goYyA9PiB7XG4gICAgICAgICAgICBjLm1hcmtBc0RpcnR5KCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG1hcmtBc1ByaXN0aW5lKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmlucHV0TW9kZWxMaXN0LmZvckVhY2gobmdNb2RlbCA9PiB7XG4gICAgICAgICAgICBuZ01vZGVsLmNvbnRyb2wubWFya0FzUHJpc3RpbmUoKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuc3ViQ29tcG9uZW50cy5mb3JFYWNoKGMgPT4ge1xuICAgICAgICAgICAgYy5tYXJrQXNQcmlzdGluZSgpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBnZXROYXRpdmVJbnB1dExpc3QoKTogTmdNb2RlbFtdIHtcbiAgICAgICAgbGV0IHJlc3VsdDogTmdNb2RlbFtdID0gdGhpcy5pbnB1dE1vZGVsTGlzdC50b0FycmF5KCk7XG4gICAgICAgIHRoaXMuc3ViQ29tcG9uZW50cy5mb3JFYWNoKGMgPT4ge1xuICAgICAgICAgICAgcmVzdWx0ID0gcmVzdWx0LmNvbmNhdChjLmdldE5hdGl2ZUlucHV0TGlzdCgpKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICBnZXRNZUFuZFN1YkNvbXBvbmVudHMoKTogRm9laG5JbnB1dENvbXBvbmVudDxhbnk+W10ge1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgICAgICBsZXQgcmVzdWx0OiBGb2VobklucHV0Q29tcG9uZW50PGFueT5bXSA9IFt0aGlzXTtcbiAgICAgICAgaWYgKHRoaXMuc3ViQ29tcG9uZW50cykge1xuICAgICAgICAgICAgdGhpcy5zdWJDb21wb25lbnRzLmZvckVhY2goYyA9PiB7XG4gICAgICAgICAgICAgICAgcmVzdWx0ID0gcmVzdWx0LmNvbmNhdChjLmdldE1lQW5kU3ViQ29tcG9uZW50cygpKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICByZWZyZXNoRXJyb3JzKHJlc3VsdHM6IGFueVtdKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGVycm9yczogRm9ybUVycm9yW10gPSByZXN1bHRzWzBdO1xuICAgICAgICBjb25zdCBzaG91bGREaXNwbGF5RXJyb3JzOiBib29sZWFuID0gcmVzdWx0c1sxXTtcbiAgICAgICAgaWYgKHNob3VsZERpc3BsYXlFcnJvcnMpIHtcbiAgICAgICAgICAgIHRoaXMuX2Vycm9ycyA9IGVycm9ycy5maWx0ZXIoZSA9PiBlLm5hbWUgPT09IHRoaXMubmFtZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmb2N1cyhzY3JvbGxJbnRvVmlldzogYm9vbGVhbiA9IHRydWUpOiB2b2lkIHtcbiAgICAgICAgbGV0IGVsZW1lbnRDb250YWluZXI6IEhUTUxFbGVtZW50O1xuICAgICAgICBpZiAodGhpcy5pbnB1dEVsZW1lbnQgJiYgdGhpcy5pbnB1dEVsZW1lbnQubmF0aXZlRWxlbWVudCkge1xuICAgICAgICAgICAgZWxlbWVudENvbnRhaW5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFxuICAgICAgICAgICAgICAgIHRoaXMuYnVpbGRJZCgnQ29udGFpbmVyJylcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBpZiAoc2Nyb2xsSW50b1ZpZXcpIHtcbiAgICAgICAgICAgICAgICAvLyBTY3JvbGwgaW4gdmlldyBzaG91bGQgYmUgZG9uZSBvbiBpbnB1dCBjb250YWluZXJcbiAgICAgICAgICAgICAgICBTY3JvbGxIZWxwZXIuc2Nyb2xsSW50b1ZpZXdXaXRoRXhwaXJhdGlvblRpbWVyT2Zmc2V0KFxuICAgICAgICAgICAgICAgICAgICBlbGVtZW50Q29udGFpbmVyXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIEZvY3VzIHNob3VsZCBiZSBvbiB0aGUgaW5wdXQgaXRzZWxmXG4gICAgICAgICAgICB0aGlzLmlucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50LmZvY3VzKHtcbiAgICAgICAgICAgICAgICBwcmV2ZW50U2Nyb2xsOiAhc2Nyb2xsSW50b1ZpZXdcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2UgaWYgKFxuICAgICAgICAgICAgdGhpcy5zdWJDb21wb25lbnRzICYmXG4gICAgICAgICAgICB0aGlzLmdldEZpcnN0SW5wdXRDb21wb25lbnRFbmFibGVkKHRoaXMuc3ViQ29tcG9uZW50cylcbiAgICAgICAgKSB7XG4gICAgICAgICAgICBjb25zdCBpbnB1dENvbXBvbmVudCA9IHRoaXMuZ2V0Rmlyc3RJbnB1dENvbXBvbmVudEVuYWJsZWQoXG4gICAgICAgICAgICAgICAgdGhpcy5zdWJDb21wb25lbnRzXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgZWxlbWVudENvbnRhaW5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFxuICAgICAgICAgICAgICAgIGlucHV0Q29tcG9uZW50LmJ1aWxkSWQoJ0NvbnRhaW5lcicpXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgaWYgKHNjcm9sbEludG9WaWV3KSB7XG4gICAgICAgICAgICAgICAgLy8gU2Nyb2xsIGluIHZpZXcgc2hvdWxkIGJlIGRvbmUgb24gaW5wdXQgY29udGFpbmVyXG4gICAgICAgICAgICAgICAgU2Nyb2xsSGVscGVyLnNjcm9sbEludG9WaWV3V2l0aEV4cGlyYXRpb25UaW1lck9mZnNldChcbiAgICAgICAgICAgICAgICAgICAgZWxlbWVudENvbnRhaW5lclxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBGb2N1cyBzaG91bGQgYmUgb24gdGhlIGlucHV0IGl0c2VsZlxuICAgICAgICAgICAgaW5wdXRDb21wb25lbnQuaW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoe1xuICAgICAgICAgICAgICAgIHByZXZlbnRTY3JvbGw6ICFzY3JvbGxJbnRvVmlld1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBDYXNlIGZvciBjb21wb25lbnQgd2hvIGRvIG5vdCBoYXZlIGFueSAnI2VudHJ5Q29tcG9uZW50JyBpbiB0aGVpciBodG1sIHRlbXBsYXRlIChpLmUuIGZvZWhuLXJhZGlvLCBmb2Vobi1jaGVja2JveCwuLi4pXG4gICAgICAgICAgICBlbGVtZW50Q29udGFpbmVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXG4gICAgICAgICAgICAgICAgdGhpcy5idWlsZElkKCdDb250YWluZXInKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGlmIChzY3JvbGxJbnRvVmlldykge1xuICAgICAgICAgICAgICAgIC8vIFNjcm9sbCBpbiB2aWV3IHNob3VsZCBiZSBkb25lIG9uIGlucHV0IGNvbnRhaW5lclxuICAgICAgICAgICAgICAgIFNjcm9sbEhlbHBlci5zY3JvbGxJbnRvVmlld1dpdGhFeHBpcmF0aW9uVGltZXJPZmZzZXQoXG4gICAgICAgICAgICAgICAgICAgIGVsZW1lbnRDb250YWluZXJcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgZWxlbWVudE5vZGVMaXN0T2YgPSBlbGVtZW50Q29udGFpbmVyLnF1ZXJ5U2VsZWN0b3JBbGwoXG4gICAgICAgICAgICAgICAgYGlucHV0W2lkXj1cIiR7dGhpcy5uYW1lfVwiXWBcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBpZiAoZWxlbWVudE5vZGVMaXN0T2YgJiYgZWxlbWVudE5vZGVMaXN0T2YubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGlucHV0RWxlbWVudCA9XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZmluZEZpcnN0SHRtbElucHV0RWxlbWVudEVuYWJsZWQoZWxlbWVudE5vZGVMaXN0T2YpO1xuICAgICAgICAgICAgICAgIGlmIChpbnB1dEVsZW1lbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gRm9jdXMgc2hvdWxkIGJlIG9uIHRoZSBpbnB1dCBpdHNlbGZcbiAgICAgICAgICAgICAgICAgICAgaW5wdXRFbGVtZW50LmZvY3VzKHsgcHJldmVudFNjcm9sbDogIXNjcm9sbEludG9WaWV3IH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldE1heExlbmd0aCgpOiBudW1iZXIge1xuICAgICAgICBpZiAoIXRoaXMubWF4bGVuZ3RoKSB7XG4gICAgICAgICAgICByZXR1cm4gR0VTREVNX01BWF9EQVRBX0xFTkdUSDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIHRoaXMubWF4bGVuZ3RoID4gR0VTREVNX01BWF9EQVRBX0xFTkdUSCAmJlxuICAgICAgICAgICAgIXRoaXMub3ZlcnJpZGVHZXNkZW1NYXhsZW5ndGhcbiAgICAgICAgKSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcbiAgICAgICAgICAgICAgICBgbWF4TGVuZ3RoIGluICR7dGhpcy5uYW1lfSBjYW5ub3QgYmUgbW9yZSB0aGFuICR7R0VTREVNX01BWF9EQVRBX0xFTkdUSH0gIWBcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICByZXR1cm4gR0VTREVNX01BWF9EQVRBX0xFTkdUSDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLm1heGxlbmd0aDtcbiAgICB9XG5cbiAgICBidWlsZElkKHN1ZmZpeDogc3RyaW5nID0gJycpOiBzdHJpbmcge1xuICAgICAgICAvLyBUaGUgYmFzZUlkIGlzIGVpdGhlciBhbiBpZCBnaXZlbiBieSB0aGUgdXNlciBvciB0aGUgdmFsdWUgb2YgdGhlIG5hbWUuXG4gICAgICAgIC8vIEZvciBpbnRlZ3JhdGlvbiBwdXJwb3NlcywgdGhlIGNvbnRhaW5lciBmb2Vobi0qIG11c3QgaGF2ZSBhbiBJZC5cbiAgICAgICAgY29uc3QgYmFzZUlkID0gdGhpcy5pZCB8fCB0aGlzLm5hbWU7XG4gICAgICAgIGlmICghYmFzZUlkKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBgJHtiYXNlSWR9JHtzdWZmaXh9YDtcbiAgICB9XG5cbiAgICBidWlsZENoaWxkSWQoc3VmZml4OiBzdHJpbmcgPSAnJyk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmJ1aWxkSWQoYENoaWxkJHtzdWZmaXh9YCk7XG4gICAgfVxuXG4gICAgYnVpbGRDaGlsZE5hbWUoc3VmZml4OiBzdHJpbmcgPSAnJyk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBgJHt0aGlzLm5hbWV9Q2hpbGQke3N1ZmZpeH1gO1xuICAgIH1cblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgICBvbktleWRvd24oa2V5OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgICAgIC8vIERvIG5vdGhpbmcsIG92ZXJyaWRlbiBieSBzdWJjb21wb25lbnRcbiAgICB9XG5cbiAgICByZXNldCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy51cGRhdGVOZ01vZGVsKG51bGwpO1xuICAgIH1cblxuICAgIG9uUGFzdGUoZTogQ2xpcGJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMucHJldmVudFBhc3RlID09PSB0cnVlKSB7XG4gICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbkJsdXIoZTogRm9jdXNFdmVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLmJsdXJIYW5kbGVyLmVtaXQoZSk7XG4gICAgfVxuXG4gICAgb25Gb2N1cyhlOiBGb2N1c0V2ZW50KTogdm9pZCB7XG4gICAgICAgIHRoaXMuZm9jdXNIYW5kbGVyLmVtaXQoZSk7XG4gICAgfVxuXG4gICAgb25DbGVhcigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy51cGRhdGVOZ01vZGVsKG51bGwpO1xuICAgICAgICB0aGlzLmhhbmRsZUNoYW5nZShudWxsKTtcbiAgICAgICAgdGhpcy5mb2N1cygpO1xuICAgICAgICB0aGlzLm1hcmtBc0RpcnR5KCk7XG4gICAgfVxuXG4gICAgZGlzcGxheUNsZWFyQnV0dG9uKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgICAgICAvLyBUaGlzIGhhcyB0byBiZSBhbiBvYnNlcnZhYmxlIHRvIHJlYWN0IHRvIHRoZSBjaGFuZ2Ugb2YgbW9kZWwgdmFsdWUuXG4gICAgICAgIHJldHVybiB0aGlzLnNob3dDbGVhckJ1dHRvbjtcbiAgICB9XG5cbiAgICBnZXREZXNjcmliZWRCeSgpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBoZWxwVGV4dElkID0gdGhpcy5oZWxwVGV4dCA/IGAke3RoaXMuYnVpbGRDaGlsZElkKCl9SGVscGAgOiBudWxsO1xuICAgICAgICBjb25zdCBlcnJvcklkID0gdGhpcy5oYXNFcnJvcnNUb0Rpc3BsYXkoKVxuICAgICAgICAgICAgPyBgJHt0aGlzLmJ1aWxkSWQoKX1FcnJvcnNDb250YWluZXJgXG4gICAgICAgICAgICA6IG51bGw7XG5cbiAgICAgICAgLy8gYXJpYS1kZXNjcmliZWRieSBjYW4gYmUgbGlua2VkIHRvIG11bHRpcGxlIElkcyBzZXBhcmF0ZWQgYnkgYSBjb21tYS5cbiAgICAgICAgcmV0dXJuIFtoZWxwVGV4dElkLCBlcnJvcklkXS5maWx0ZXIoaWQgPT4gISFpZCkuam9pbignLCcpIHx8IG51bGw7XG4gICAgfVxuXG4gICAgZ2V0QXV0b0NvbXBsZXRlKCk6IHN0cmluZyB7XG4gICAgICAgIC8vIHJldHJvIGNvbXBhdGliaWxpdHkgKGF1dG9jb21wbGV0ZSB1c2VkIHRvIGJlIGEgYm9vbGVhbilcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9iYW4tdHMtY29tbWVudFxuICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgIGlmICh0aGlzLmF1dG9jb21wbGV0ZSA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgIHJldHVybiAnb2ZmJztcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvYmFuLXRzLWNvbW1lbnRcbiAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICBpZiAodGhpcy5hdXRvY29tcGxldGUgPT09IHRydWUpIHtcbiAgICAgICAgICAgIHJldHVybiAnJztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLmF1dG9jb21wbGV0ZTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0Rmlyc3RJbnB1dENvbXBvbmVudEVuYWJsZWQoXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgICAgIHN1YkNvbXBvbmVudHM6IFF1ZXJ5TGlzdDxGb2VobklucHV0Q29tcG9uZW50PGFueT4+XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgKTogRm9laG5JbnB1dENvbXBvbmVudDxhbnk+IHtcbiAgICAgICAgY29uc3QgZm9laG5JbnB1dENvbXBvbmVudHMgPSBzdWJDb21wb25lbnRzLmZpbHRlcihcbiAgICAgICAgICAgIGl0ZW0gPT5cbiAgICAgICAgICAgICAgICBpdGVtLmlucHV0RWxlbWVudCAmJlxuICAgICAgICAgICAgICAgIGl0ZW0uaW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQgJiZcbiAgICAgICAgICAgICAgICAhaXRlbS5fZGlzYWJsZWRcbiAgICAgICAgKTtcblxuICAgICAgICBpZiAoISFmb2VobklucHV0Q29tcG9uZW50cyAmJiBmb2VobklucHV0Q29tcG9uZW50cy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHJldHVybiBmb2VobklucHV0Q29tcG9uZW50c1swXTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBmaW5kRmlyc3RIdG1sSW5wdXRFbGVtZW50RW5hYmxlZChcbiAgICAgICAgZWxlbWVudE5vZGVMaXN0T2Y6IE5vZGVMaXN0T2Y8RWxlbWVudD5cbiAgICApOiBIVE1MSW5wdXRFbGVtZW50IHtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBlbGVtZW50Tm9kZUxpc3RPZi5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgY29uc3QgaHRtbElucHV0RWxlbWVudCA9IGVsZW1lbnROb2RlTGlzdE9mLml0ZW0oXG4gICAgICAgICAgICAgICAgaVxuICAgICAgICAgICAgKSBhcyBIVE1MSW5wdXRFbGVtZW50O1xuICAgICAgICAgICAgaWYgKCFodG1sSW5wdXRFbGVtZW50LmRpc2FibGVkKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGh0bWxJbnB1dEVsZW1lbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICBwcm90ZWN0ZWQgaXNFbXB0eShkYXRhOiBhbnkpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIGRhdGEgPT09IG51bGwgfHwgZGF0YSA9PT0gdW5kZWZpbmVkIHx8IGRhdGEgPT09ICcnO1xuICAgIH1cblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgcHJvdGVjdGVkIGlzRW1wdHlXaGVuVHJpbW1lZElmU3RyaW5nKGRhdGE6IGFueSk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAodHlwZW9mIGRhdGEgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5pc0VtcHR5KCEhZGF0YSA/IGRhdGEudHJpbSgpIDogZGF0YSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5pc0VtcHR5KGRhdGEpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCB0cmlnZ2VyVXNlcklucHV0KHZhbHVlOiBUKTogdm9pZCB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIC8vIElmIHRoZSBjYWxsYmFjayBpcyBkZWZpbmVkXG4gICAgICAgICAgICAhIXRoaXMudXNlcklucHV0ICYmXG4gICAgICAgICAgICAvLyBJZiB0aGUgdmFsdWUgaXMgYWN0dWFsbHkgc29tZXRoaW5nIChUIG9yIG51bGwpXG4gICAgICAgICAgICB0eXBlb2YgdmFsdWUgIT09ICd1bmRlZmluZWQnICYmXG4gICAgICAgICAgICAvLyBJZiBpbnB1dCBpc24ndCBkaXNhYmxlZFxuICAgICAgICAgICAgIXRoaXMuX2Rpc2FibGVkXG4gICAgICAgICkge1xuICAgICAgICAgICAgdGhpcy51c2VySW5wdXRTdWJqZWN0Lm5leHQodmFsdWUpO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
@@ -122,7 +122,7 @@ export class ApplicationInfoService {
122
122
  getPortailBaseUrl(appInfo) {
123
123
  const baseUrl = appInfo.configuration?.portail?.baseUrl;
124
124
  if (!!baseUrl) {
125
- return baseUrl;
125
+ return baseUrl.endsWith('/') ? baseUrl : `${baseUrl}/`;
126
126
  }
127
127
  switch (appInfo.environment) {
128
128
  case 'CO':
@@ -143,4 +143,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
143
143
  providedIn: 'root'
144
144
  }]
145
145
  }], ctorParameters: () => [{ type: i1.HttpClient }, { type: i2.FoehnPageService }] });
146
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbGljYXRpb24taW5mby5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJlc3RhdGlvbnMtbmcvc3JjL3Nkay1hcHBpbmZvL2FwcGxpY2F0aW9uLWluZm8uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxhQUFhLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDakQsT0FBTyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsV0FBVyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBSS9ELE9BQU8sRUFBRSxlQUFlLEVBQWEsTUFBTSxvQkFBb0IsQ0FBQzs7OztBQUVoRSxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxxQkFBcUIsQ0FBQztBQUN0RCxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxnQ0FBZ0MsQ0FBQztBQUNyRSxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxnQ0FBZ0MsQ0FBQztBQUNyRSxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyw0QkFBNEIsQ0FBQztBQUNsRSxNQUFNLENBQUMsTUFBTSxpQ0FBaUMsR0FDMUMsMkRBQTJELENBQUM7QUFLaEUsTUFBTSxPQUFPLHNCQUFzQjtJQU0vQixZQUNZLElBQWdCLEVBQ2hCLGdCQUFrQztRQURsQyxTQUFJLEdBQUosSUFBSSxDQUFZO1FBQ2hCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFQdEMsb0JBQWUsR0FBb0IsSUFBSSxlQUFlLEVBQUUsQ0FBQztRQVM3RCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxJQUFJO2FBQ3BCLEdBQUcsQ0FBa0IsZ0JBQWdCLENBQUM7YUFDdEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRTFCLGdFQUFnRTtRQUNoRSxJQUFJLENB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VyxFQUFFLENBQUM7WUFDMUIsS0FBSyxJQUFJLENBQUM7WUFDVixLQUFLLElBQUk7Z0JBQ0wsT0FBTyxvQkFBb0IsQ0FBQztZQUNoQyxLQUFLLElBQUk7Z0JBQ0wsT0FBTyxvQkFBb0IsQ0FBQztZQUNoQztnQkFDSSxPQUFPLHFCQUFxQixDQUFDO1FBQ3JDLENBQUM7SUFDTCxDQUFDOytHQXJMUSxzQkFBc0I7bUhBQXRCLHNCQUFzQixjQUZuQixNQUFNOzs0RkFFVCxzQkFBc0I7a0JBSGxDLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGNvbWJpbmVMYXRlc3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpbHRlciwgbWFwLCBzaGFyZVJlcGxheSwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBGb2VoblBhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vZm9laG4tcGFnZS9mb2Vobi1wYWdlLnNlcnZpY2UnO1xuaW1wb3J0IHsgRm9ybUVycm9yIH0gZnJvbSAnLi4vZm9ybS1lcnJvcic7XG5pbXBvcnQgeyBBcHBsaWNhdGlvbkluZm8sIEV0YXBlSW5mbyB9IGZyb20gJy4vYXBwbGljYXRpb24taW5mbyc7XG5cbmV4cG9ydCBjb25zdCBBUFBfSU5GT19BUElfVVJMID0gJ2FwaS9hcHBsaWNhdGlvbkluZm8nO1xuZXhwb3J0IGNvbnN0IFBPUlRBSUxfQkFTRV9VUkxfSU5UID0gJ2h0dHBzOi8vaW50LXByZXN0YXRpb25zLnZkLmNoLyc7XG5leHBvcnQgY29uc3QgUE9SVEFJTF9CQVNFX1VSTF9WQUwgPSAnaHR0cHM6Ly92YWwtcHJlc3RhdGlvbnMudmQuY2gvJztcbmV4cG9ydCBjb25zdCBQT1JUQUlMX0JBU0VfVVJMX1BST0QgPSAnaHR0cHM6Ly9wcmVzdGF0aW9ucy52ZC5jaC8nO1xuZXhwb3J0IGNvbnN0IEZPUk1fU1VQUE9SVF9DWUJFUl9USVRMRV9GQUxMQkFDSyA9XG4gICAgXCJEZW1hbmRlciBkZSBsJ2FpZGUgcG91ciBsJ3V0aWxpc2F0aW9uIGR1IHBvcnRhaWwgc8OpY3VyaXPDqVwiO1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEFwcGxpY2F0aW9uSW5mb1NlcnZpY2Uge1xuICAgIHByaXZhdGUgYXBwbGljYXRpb25JbmZvOiBBcHBsaWNhdGlvbkluZm8gPSBuZXcgQXBwbGljYXRpb25JbmZvKCk7XG4gICAgcHJpdmF0ZSBwdWxsaW5nXzogT2JzZXJ2YWJsZTxBcHBsaWNhdGlvbkluZm8+O1xuICAgIHByaXZhdGUgZmlyc3RFdGFwZUluZm9fOiBPYnNlcnZhYmxlPEV0YXBlSW5mbz47XG4gICAgcHJpdmF0ZSBjdXJyZW50RXRhcGVJbmZvXzogT2JzZXJ2YWJsZTxFdGFwZUluZm8+O1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcbiAgICAgICAgcHJpdmF0ZSBmb2VoblBhZ2VTZXJ2aWNlOiBGb2VoblBhZ2VTZXJ2aWNlXG4gICAgKSB7XG4gICAgICAgIHRoaXMucHVsbGluZ18gPSB0aGlzLmh0dHBcbiAgICAgICAgICAgIC5nZXQ8QXBwbGljYXRpb25JbmZvPihBUFBfSU5GT19BUElfVVJMKVxuICAgICAgICAgICAgLnBpcGUoc2hhcmVSZXBsYXkoMSkpO1xuXG4gICAgICAgIC8vIEluIG1vc3QgcHJlc3RhdGlvbiwgd2UncmUgaW50ZXJlc3RlZCBpbiB0aGUgZmlyc3QgZXRhcGUgaW5mby5cbiAgICAgICAgdGhpcy5maXJzdEV0YXBlSW5mb18gPSB0aGlzLnB1bGxpbmdfLnBpcGUoXG4gICAgICAgICAgICBmaWx0ZXIoYXBwSW5mbyA9PiAhIWFwcEluZm8gJiYgISFhcHBJbmZvLmV0YXBlSW5mb3MpLFxuICAgICAgICAgICAgbWFwKCh7IGV0YXBlSW5mb3MgfSkgPT4ge1xuICAgICAgICAgICAgICAgIC8vIENoZWNrcyB3aGV0aGVyIHRoZSBzZXJ2ZXIgcmV0dXJucyBhIGZpcnN0IGtleSwgb3RoZXJ3aXNlIGZhaWxzIHRoZVxuICAgICAgICAgICAgICAgIC8vIG9ic2VydmFibGUgdG8gZW5zdXJlIHRoYXQgY2xpZW50IGFwcGxpY2F0aW9ucyBkb24ndCB0cnkgdG8gdXNlIHRoaXMgdmFsdWVcbiAgICAgICAgICAgICAgICAvLyBhbmQgYXJlIGFibGUgdG8gaW1wbGVtZW50IGZhbGxiYWNrIHN0cmF0ZWdpZXMuXG4gICAgICAgICAgICAgICAgY29uc3QgZmlyc3RLZXkgPSBPYmplY3Qua2V5cyhldGFwZUluZm9zKVswXTtcblxuICAgICAgICAgICAgICAgIGlmICghZmlyc3RLZXkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgICAgICAgICAgICAgJ1RoZXJlIG11c3QgYmUgYXQgbGVhc3Qgb25lIGtleSBpbiB0aGUgZXRhcGVJbmZvcydcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gZXRhcGVJbmZvc1tmaXJzdEtleV07XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMuY3VycmVudEV0YXBlSW5mb18gPSBjb21iaW5lTGF0ZXN0KFtcbiAgICAgICAgICAgIHRoaXMuZm9laG5QYWdlU2VydmljZS5vbkV0YXBlSWRDaGFuZ2UoKSxcbiAgICAgICAgICAgIHRoaXMucHVsbGluZ19cbiAgICAgICAgXSkucGlwZShcbiAgICAgICAgICAgIG1hcChcbiAgICAgICAgICAgICAgICAoW2V0YXBlSWQsIGFwcGxpY2F0aW9uSW5mb10pID0+XG4gICAgICAgICAgICAgICAgICAgIGFwcGxpY2F0aW9uSW5mby5ldGFwZUluZm9zW2V0YXBlSWRdXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgc2hhcmVSZXBsYXkoMSlcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLnB1bGxpbmdfLnN1YnNjcmliZSgoYWk6IEFwcGxpY2F0aW9uSW5mbykgPT5cbiAgICAgICAgICAgIHRoaXMuc2V0QXBwbGljYXRpb25JbmZvKGFpKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIGdldCBkYXRhKCk6IE9ic2VydmFibGU8QXBwbGljYXRpb25JbmZvPiB7XG4gICAgICAgIHJldHVybiB0aGlzLnB1bGxpbmdfLnBpcGUoXG4gICAgICAgICAgICB0YXAoYXBwSW5mbyA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKCEhYXBwSW5mby5jb25maWd1cmF0aW9uLnBvcnRhaWwuYmFzZVZkQ2hVcmw/Lmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICAvLyBhbHJlYWR5IHNldCBieSB0aGUgYmFja2VuZFxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHN3aXRjaCAoYXBwSW5mby5lbnZpcm9ubWVudD8udG9VcHBlckNhc2UoKSkge1xuICAgICAgICAgICAgICAgICAgICBjYXNlICdJTic6XG4gICAgICAgICAgICAgICAgICAgICAgICBhcHBJbmZvLmNvbmZpZ3VyYXRpb24ucG9ydGFpbC5iYXNlVmRDaFVybCA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2h0dHBzOi8vaTIudmQuY2gnO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ1ZBJzpcbiAgICAgICAgICAgICAgICAgICAgICAgIGFwcEluZm8uY29uZmlndXJhdGlvbi5wb3J0YWlsLmJhc2VWZENoVXJsID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaHR0cHM6Ly92YWxpZC52ZC5jaCc7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgICAgIGFwcEluZm8uY29uZmlndXJhdGlvbi5wb3J0YWlsLmJhc2VWZENoVXJsID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaHR0cHM6Ly93d3cudmQuY2gnO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgZ2V0IGZpcnN0RXRhcGVJbmZvKCk6IE9ic2VydmFibGU8RXRhcGVJbmZvPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmZpcnN0RXRhcGVJbmZvXztcbiAgICB9XG5cbiAgICBnZXQgY3VycmVudEV0YXBlSW5mbygpOiBPYnNlcnZhYmxlPEV0YXBlSW5mbz4ge1xuICAgICAgICByZXR1cm4gdGhpcy5jdXJyZW50RXRhcGVJbmZvXztcbiAgICB9XG5cbiAgICBnZXRTYWZlQ3liZXJMb2dpblVybCgpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xuICAgICAgICByZXR1cm4gdGhpcy5kYXRhLnBpcGUoXG4gICAgICAgICAgICBtYXAoXG4gICAgICAgICAgICAgICAgYXBwSW5mbyA9PlxuICAgICAgICAgICAgICAgICAgICBhcHBJbmZvLmNvbmZpZ3VyYXRpb24/LnBvcnRhaWw/LmN5YmVyTG9naW5VcmwgfHxcbiAgICAgICAgICAgICAgICAgICAgYCR7dGhpcy5nZXRQb3J0YWlsQmFzZVVybChhcHBJbmZvKX0xMDAwMTgvYFxuICAgICAgICAgICAgKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIGdldFNhZmVTdXBwb3J0Rm9ybVVybChcbiAgICAgICAgcmVmZXJlbmNlPzogc3RyaW5nLFxuICAgICAgICBlcnJvcnM/OiBGb3JtRXJyb3JbXVxuICAgICk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmRhdGEucGlwZShcbiAgICAgICAgICAgIG1hcChcbiAgICAgICAgICAgICAgICBhcHBJbmZvID0+XG4gICAgICAgICAgICAgICAgICAgIGFwcEluZm8uY29uZmlndXJhdGlvbj8ucG9ydGFpbD8uc3VwcG9ydEZvcm1VcmwgfHxcbiAgICAgICAgICAgICAgICAgICAgYCR7dGhpcy5nZXRQb3J0YWlsQmFzZVVybChhcHBJbmZvKX1wdWIvMTAxMDk4L2BcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBtYXAobGluayA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKCEhcmVmZXJlbmNlPy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgbGluayArPSBgP2NvbmNlcm5lZFJlZmVyZW5jZT0ke3JlZmVyZW5jZX1gO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoISFlcnJvcnM/Lmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICBsaW5rICs9ICEhcmVmZXJlbmNlPy5sZW5ndGggPyAnJicgOiAnPyc7XG4gICAgICAgICAgICAgICAgICAgIC8vIE5lZWQgZm9sbG93aW5nIGNvZGUgdG8gYXZvaWQgYnJvd3NlciBTYW5pdGl6aW5nIGVycm9yIHdoZW4gdXNpbmcgSlNPTi5zdHJpbmdpZnlcbiAgICAgICAgICAgICAgICAgICAgbGluayArPSBgZXJyb3JzPSR7ZXJyb3JzXG4gICAgICAgICAgICAgICAgICAgICAgICAubWFwKGVycm9yID0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgT2JqZWN0LmVudHJpZXMoZXJyb3IpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5tYXAodmFsdWUgPT4gYCR7dmFsdWUuam9pbignPScpfWApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5qb2luKCcsJylcbiAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgIC5qb2luKCc7Jyl9YDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIGxpbms7XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIGdldFNhZmVTdXBwb3J0Rm9ybVRpdGxlKCk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmRhdGEucGlwZShcbiAgICAgICAgICAgIG1hcChhcHBJbmZvID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCB0aXRsZSA9XG4gICAgICAgICAgICAgICAgICAgIGFwcEluZm8uY29uZmlndXJhdGlvbj8ucG9ydGFpbFxuICAgICAgICAgICAgICAgICAgICAgICAgPy5wb3J0YWlsVGl0bGVzQnlQcmVzdGFDb2RlPy5bMTAxMDk4XTtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGl0bGUgJiYgdGl0bGUubGVuZ3RoXG4gICAgICAgICAgICAgICAgICAgID8gdGl0bGVcbiAgICAgICAgICAgICAgICAgICAgOiBGT1JNX1NVUFBPUlRfQ1lCRVJfVElUTEVfRkFMTEJBQ0s7XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIGdldFNhZmVFc3BhY2VzU2VjdXJpc2VVcmwoKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGF0YS5waXBlKFxuICAgICAgICAgICAgbWFwKFxuICAgICAgICAgICAgICAgIGFwcEluZm8gPT5cbiAgICAgICAgICAgICAgICAgICAgYXBwSW5mby5jb25maWd1cmF0aW9uPy5wb3J0YWlsPy5lc3BhY2VTZWN1cmlzZVVybCB8fFxuICAgICAgICAgICAgICAgICAgICBgJHt0aGlzLmdldFBvcnRhaWxCYXNlVXJsKGFwcEluZm8pfTEwMDAwMi9gXG4gICAgICAgICAgICApXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRBcHBsaWNhdGlvbkluZm8oYXBwbGljYXRpb25JbmZvOiBBcHBsaWNhdGlvbkluZm8pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5hcHBsaWNhdGlvbkluZm8gPSBhcHBsaWNhdGlvbkluZm87XG4gICAgICAgIGlmICh0aGlzLmFwcGxpY2F0aW9uSW5mbykge1xuICAgICAgICAgICAgc3dpdGNoICh0aGlzLmFwcGxpY2F0aW9uSW5mby5lbnZpcm9ubWVudCkge1xuICAgICAgICAgICAgICAgIGNhc2UgJ0NPJzoge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmFwcGxpY2F0aW9uSW5mby5lbnZpcm9ubWVudExhYmVsID0gJ2TDqXZlbG9wcGVtZW50JztcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNhc2UgJ0lOJzoge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmFwcGxpY2F0aW9uSW5mby5lbnZpcm9ubWVudExhYmVsID0gJ2ludMOpZ3JhdGlvbic7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjYXNlICdWQSc6IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hcHBsaWNhdGlvbkluZm8uZW52aXJvbm1lbnRMYWJlbCA9ICd2YWxpZGF0aW9uJztcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICAgICAgLy8gTm90aGluZyB0byBkb1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0UG9ydGFpbEJhc2VVcmwoYXBwSW5mbzogQXBwbGljYXRpb25JbmZvKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgYmFzZVVybCA9IGFwcEluZm8uY29uZmlndXJhdGlvbj8ucG9ydGFpbD8uYmFzZVVybDtcbiAgICAgICAgaWYgKCEhYmFzZVVybCkge1xuICAgICAgICAgICAgcmV0dXJuIGJhc2VVcmw7XG4gICAgICAgIH1cbiAgICAgICAgc3dpdGNoIChhcHBJbmZvLmVudmlyb25tZW50KSB7XG4gICAgICAgICAgICBjYXNlICdDTyc6XG4gICAgICAgICAgICBjYXNlICdJTic6XG4gICAgICAgICAgICAgICAgcmV0dXJuIFBPUlRBSUxfQkFTRV9VUkxfSU5UO1xuICAgICAgICAgICAgY2FzZSAnVkEnOlxuICAgICAgICAgICAgICAgIHJldHVybiBQT1JUQUlMX0JBU0VfVVJMX1ZBTDtcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuIFBPUlRBSUxfQkFTRV9VUkxfUFJPRDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
146
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbGljYXRpb24taW5mby5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJlc3RhdGlvbnMtbmcvc3JjL3Nkay1hcHBpbmZvL2FwcGxpY2F0aW9uLWluZm8uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxhQUFhLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDakQsT0FBTyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsV0FBVyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBSS9ELE9BQU8sRUFBRSxlQUFlLEVBQWEsTUFBTSxvQkFBb0IsQ0FBQzs7OztBQUVoRSxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxxQkFBcUIsQ0FBQztBQUN0RCxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxnQ0FBZ0MsQ0FBQztBQUNyRSxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxnQ0FBZ0MsQ0FBQztBQUNyRSxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyw0QkFBNEIsQ0FBQztBQUNsRSxNQUFNLENBQUMsTUFBTSxpQ0FBaUMsR0FDMUMsMkRBQTJELENBQUM7QUFLaEUsTUFBTSxPQUFPLHNCQUFzQjtJQU0vQixZQUNZLElBQWdCLEVBQ2hCLGdCQUFrQztRQURsQyxTQUFJLEdBQUosSUFBSSxDQUFZO1FBQ2hCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFQdEMsb0JBQWUsR0FBb0IsSUFBSSxlQUFlLEVBQUUsQ0FBQztRQVM3RCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxJQUFJO2FBQ3BCLEdBQUcsQ0FBa0IsZ0JBQWdCLENBQUM7YUFDdEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRTFCLGdFQUFnRTtRQUNoRSxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUNyQyxNQUFNLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLEVBQ3BELEdBQUcsQ0FBQyxDQUFDLEVBQUUsVUFBVSxFQUFFLEVBQUUsRUFBRTtZQUNuQixxRUFBcUU7WUFDckUsNEVBQTRFO1lBQzVFLGlEQUFpRDtZQUNqRCxNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBRTVDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDWixNQUFNLElBQUksS0FBSyxDQUNYLGtEQUFrRCxDQUNyRCxDQUFDO1lBQ04sQ0FBQztZQUVELE9BQU8sVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ2hDLENBQUMsQ0FBQyxDQUNMLENBQUM7UUFFRixJQUFJLENBQUMsaUJBQWlCLEdBQUcsYUFBYSxDQUFDO1lBQ25DLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxlQUFlLEVBQUU7WUFDdkMsSUFBSSxDQUFDLFFBQVE7U0FDaEIsQ0FBQyxDQUFDLElBQUksQ0FDSCxHQUFHLENBQ0MsQ0FBQyxDQUFDLE9BQU8sRUFBRSxlQUFlLENBQUMsRUFBRSxFQUFFLENBQzNCLGVBQWUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQzFDLEVBQ0QsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUNqQixDQUFDO1FBRUYsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFtQixFQUFFLEVBQUUsQ0FDNUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEVBQUUsQ0FBQyxDQUM5QixDQUFDO0lBQ04sQ0FBQztJQUVELElBQUksSUFBSTtRQUNKLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQ3JCLEdBQUcsQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUNWLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxNQUFNLEVBQUUsQ0FBQztnQkFDdEQsNkJBQTZCO2dCQUM3QixPQUFPO1lBQ1gsQ0FBQztZQUNELFFBQVEsT0FBTyxDQUFDLFdBQVcsRUFBRSxXQUFXLEVBQUUsRUFBRSxDQUFDO2dCQUN6QyxLQUFLLElBQUk7b0JBQ0wsT0FBTyxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsV0FBVzt3QkFDckMsa0JBQWtCLENBQUM7b0JBQ3ZCLE1BQU07Z0JBQ1YsS0FBSyxJQUFJO29CQUNMLE9BQU8sQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLFdBQVc7d0JBQ3JDLHFCQUFxQixDQUFDO29CQUMxQixNQUFNO2dCQUNWO29CQUNJLE9BQU8sQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLFdBQVc7d0JBQ3JDLG1CQUFtQixDQUFDO1lBQ2hDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FDTCxDQUFDO0lBQ04sQ0FBQztJQUVELElBQUksY0FBYztRQUNkLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQztJQUNoQyxDQUFDO0lBRUQsSUFBSSxnQkFBZ0I7UUFDaEIsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUM7SUFDbEMsQ0FBQztJQUVELG9CQUFvQjtRQUNoQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUNqQixHQUFHLENBQ0MsT0FBTyxDQUFDLEVBQUUsQ0FDTixPQUFPLENBQUMsYUFBYSxFQUFFLE9BQU8sRUFBRSxhQUFhO1lBQzdDLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQ2xELENBQ0osQ0FBQztJQUNOLENBQUM7SUFFRCxxQkFBcUIsQ0FDakIsU0FBa0IsRUFDbEIsTUFBb0I7UUFFcEIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FDakIsR0FBRyxDQUNDLE9BQU8sQ0FBQyxFQUFFLENBQ04sT0FBTyxDQUFDLGFBQWEsRUFBRSxPQUFPLEVBQUUsY0FBYztZQUM5QyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUN0RCxFQUNELEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUNQLElBQUksQ0FBQyxDQUFDLFNBQVMsRUFBRSxNQUFNLEVBQUUsQ0FBQztnQkFDdEIsSUFBSSxJQUFJLHVCQUF1QixTQUFTLEVBQUUsQ0FBQztZQUMvQyxDQUFDO1lBQ0QsSUFBSSxDQUFDLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxDQUFDO2dCQUNuQixJQUFJLElBQUksQ0FBQyxDQUFDLFNBQVMsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDO2dCQUN4QyxrRkFBa0Y7Z0JBQ2xGLElBQUksSUFBSSxVQUFVLE1BQU07cUJBQ25CLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUNULE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO3FCQUNoQixHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztxQkFDbEMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUNqQjtxQkFDQSxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUNyQixDQUFDO1lBQ0QsT0FBTyxJQUFJLENBQUM7UUFDaEIsQ0FBQyxDQUFDLENBQ0wsQ0FBQztJQUNOLENBQUM7SUFFRCx1QkFBdUI7UUFDbkIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FDakIsR0FBRyxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ1YsTUFBTSxLQUFLLEdBQ1AsT0FBTyxDQUFDLGFBQWEsRUFBRSxPQUFPO2dCQUMxQixFQUFFLHlCQUF5QixFQUFFLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDOUMsT0FBTyxLQUFLLElBQUksS0FBSyxDQUFDLE1BQU07Z0JBQ3hCLENBQUMsQ0FBQyxLQUFLO2dCQUNQLENBQUMsQ0FBQyxpQ0FBaUMsQ0FBQztRQUM1QyxDQUFDLENBQUMsQ0FDTCxDQUFDO0lBQ04sQ0FBQztJQUVELHlCQUF5QjtRQUNyQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUNqQixHQUFHLENBQ0MsT0FBTyxDQUFDLEVBQUUsQ0FDTixPQUFPLENBQUMsYUFBYSxFQUFFLE9BQU8sRUFBRSxpQkFBaUI7WUFDakQsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FDbEQsQ0FDSixDQUFDO0lBQ04sQ0FBQztJQUVPLGtCQUFrQixDQUFDLGVBQWdDO1FBQ3ZELElBQUksQ0FBQyxlQUFlLEdBQUcsZUFBZSxDQUFDO1FBQ3ZDLElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQ3ZCLFFBQVEsSUFBSSxDQUFDLGVBQWUsQ0FBQyxXQUFXLEVBQUUsQ0FBQztnQkFDdkMsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDO29CQUNSLElBQUksQ0FBQyxlQUFlLENBQUMsZ0JBQWdCLEdBQUcsZUFBZSxDQUFDO29CQUN4RCxNQUFNO2dCQUNWLENBQUM7Z0JBQ0QsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDO29CQUNSLElBQUksQ0FBQyxlQUFlLENBQUMsZ0JBQWdCLEdBQUcsYUFBYSxDQUFDO29CQUN0RCxNQUFNO2dCQUNWLENBQUM7Z0JBQ0QsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDO29CQUNSLElBQUksQ0FBQyxlQUFlLENBQUMsZ0JBQWdCLEdBQUcsWUFBWSxDQUFDO29CQUNyRCxNQUFNO2dCQUNWLENBQUM7Z0JBQ0QsT0FBTyxDQUFDLENBQUMsQ0FBQztvQkFDTixnQkFBZ0I7Z0JBQ3BCLENBQUM7WUFDTCxDQUFDO1FBQ0wsQ0FBQztJQUNMLENBQUM7SUFFTyxpQkFBaUIsQ0FBQyxPQUF3QjtRQUM5QyxNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsYUFBYSxFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUM7UUFDeEQsSUFBSSxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDWixPQUFPLE9BQU8sQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxPQUFPLEdBQUcsQ0FBQztRQUMzRCxDQUFDO1FBQ0QsUUFBUSxPQUFPLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDMUIsS0FBSyxJQUFJLENBQUM7WUFDVixLQUFLLElBQUk7Z0JBQ0wsT0FBTyxvQkFBb0IsQ0FBQztZQUNoQyxLQUFLLElBQUk7Z0JBQ0wsT0FBTyxvQkFBb0IsQ0FBQztZQUNoQztnQkFDSSxPQUFPLHFCQUFxQixDQUFDO1FBQ3JDLENBQUM7SUFDTCxDQUFDOytHQXJMUSxzQkFBc0I7bUhBQXRCLHNCQUFzQixjQUZuQixNQUFNOzs0RkFFVCxzQkFBc0I7a0JBSGxDLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGNvbWJpbmVMYXRlc3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpbHRlciwgbWFwLCBzaGFyZVJlcGxheSwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBGb2VoblBhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vZm9laG4tcGFnZS9mb2Vobi1wYWdlLnNlcnZpY2UnO1xuaW1wb3J0IHsgRm9ybUVycm9yIH0gZnJvbSAnLi4vZm9ybS1lcnJvcic7XG5pbXBvcnQgeyBBcHBsaWNhdGlvbkluZm8sIEV0YXBlSW5mbyB9IGZyb20gJy4vYXBwbGljYXRpb24taW5mbyc7XG5cbmV4cG9ydCBjb25zdCBBUFBfSU5GT19BUElfVVJMID0gJ2FwaS9hcHBsaWNhdGlvbkluZm8nO1xuZXhwb3J0IGNvbnN0IFBPUlRBSUxfQkFTRV9VUkxfSU5UID0gJ2h0dHBzOi8vaW50LXByZXN0YXRpb25zLnZkLmNoLyc7XG5leHBvcnQgY29uc3QgUE9SVEFJTF9CQVNFX1VSTF9WQUwgPSAnaHR0cHM6Ly92YWwtcHJlc3RhdGlvbnMudmQuY2gvJztcbmV4cG9ydCBjb25zdCBQT1JUQUlMX0JBU0VfVVJMX1BST0QgPSAnaHR0cHM6Ly9wcmVzdGF0aW9ucy52ZC5jaC8nO1xuZXhwb3J0IGNvbnN0IEZPUk1fU1VQUE9SVF9DWUJFUl9USVRMRV9GQUxMQkFDSyA9XG4gICAgXCJEZW1hbmRlciBkZSBsJ2FpZGUgcG91ciBsJ3V0aWxpc2F0aW9uIGR1IHBvcnRhaWwgc8OpY3VyaXPDqVwiO1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEFwcGxpY2F0aW9uSW5mb1NlcnZpY2Uge1xuICAgIHByaXZhdGUgYXBwbGljYXRpb25JbmZvOiBBcHBsaWNhdGlvbkluZm8gPSBuZXcgQXBwbGljYXRpb25JbmZvKCk7XG4gICAgcHJpdmF0ZSBwdWxsaW5nXzogT2JzZXJ2YWJsZTxBcHBsaWNhdGlvbkluZm8+O1xuICAgIHByaXZhdGUgZmlyc3RFdGFwZUluZm9fOiBPYnNlcnZhYmxlPEV0YXBlSW5mbz47XG4gICAgcHJpdmF0ZSBjdXJyZW50RXRhcGVJbmZvXzogT2JzZXJ2YWJsZTxFdGFwZUluZm8+O1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcbiAgICAgICAgcHJpdmF0ZSBmb2VoblBhZ2VTZXJ2aWNlOiBGb2VoblBhZ2VTZXJ2aWNlXG4gICAgKSB7XG4gICAgICAgIHRoaXMucHVsbGluZ18gPSB0aGlzLmh0dHBcbiAgICAgICAgICAgIC5nZXQ8QXBwbGljYXRpb25JbmZvPihBUFBfSU5GT19BUElfVVJMKVxuICAgICAgICAgICAgLnBpcGUoc2hhcmVSZXBsYXkoMSkpO1xuXG4gICAgICAgIC8vIEluIG1vc3QgcHJlc3RhdGlvbiwgd2UncmUgaW50ZXJlc3RlZCBpbiB0aGUgZmlyc3QgZXRhcGUgaW5mby5cbiAgICAgICAgdGhpcy5maXJzdEV0YXBlSW5mb18gPSB0aGlzLnB1bGxpbmdfLnBpcGUoXG4gICAgICAgICAgICBmaWx0ZXIoYXBwSW5mbyA9PiAhIWFwcEluZm8gJiYgISFhcHBJbmZvLmV0YXBlSW5mb3MpLFxuICAgICAgICAgICAgbWFwKCh7IGV0YXBlSW5mb3MgfSkgPT4ge1xuICAgICAgICAgICAgICAgIC8vIENoZWNrcyB3aGV0aGVyIHRoZSBzZXJ2ZXIgcmV0dXJucyBhIGZpcnN0IGtleSwgb3RoZXJ3aXNlIGZhaWxzIHRoZVxuICAgICAgICAgICAgICAgIC8vIG9ic2VydmFibGUgdG8gZW5zdXJlIHRoYXQgY2xpZW50IGFwcGxpY2F0aW9ucyBkb24ndCB0cnkgdG8gdXNlIHRoaXMgdmFsdWVcbiAgICAgICAgICAgICAgICAvLyBhbmQgYXJlIGFibGUgdG8gaW1wbGVtZW50IGZhbGxiYWNrIHN0cmF0ZWdpZXMuXG4gICAgICAgICAgICAgICAgY29uc3QgZmlyc3RLZXkgPSBPYmplY3Qua2V5cyhldGFwZUluZm9zKVswXTtcblxuICAgICAgICAgICAgICAgIGlmICghZmlyc3RLZXkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgICAgICAgICAgICAgJ1RoZXJlIG11c3QgYmUgYXQgbGVhc3Qgb25lIGtleSBpbiB0aGUgZXRhcGVJbmZvcydcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gZXRhcGVJbmZvc1tmaXJzdEtleV07XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMuY3VycmVudEV0YXBlSW5mb18gPSBjb21iaW5lTGF0ZXN0KFtcbiAgICAgICAgICAgIHRoaXMuZm9laG5QYWdlU2VydmljZS5vbkV0YXBlSWRDaGFuZ2UoKSxcbiAgICAgICAgICAgIHRoaXMucHVsbGluZ19cbiAgICAgICAgXSkucGlwZShcbiAgICAgICAgICAgIG1hcChcbiAgICAgICAgICAgICAgICAoW2V0YXBlSWQsIGFwcGxpY2F0aW9uSW5mb10pID0+XG4gICAgICAgICAgICAgICAgICAgIGFwcGxpY2F0aW9uSW5mby5ldGFwZUluZm9zW2V0YXBlSWRdXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgc2hhcmVSZXBsYXkoMSlcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLnB1bGxpbmdfLnN1YnNjcmliZSgoYWk6IEFwcGxpY2F0aW9uSW5mbykgPT5cbiAgICAgICAgICAgIHRoaXMuc2V0QXBwbGljYXRpb25JbmZvKGFpKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIGdldCBkYXRhKCk6IE9ic2VydmFibGU8QXBwbGljYXRpb25JbmZvPiB7XG4gICAgICAgIHJldHVybiB0aGlzLnB1bGxpbmdfLnBpcGUoXG4gICAgICAgICAgICB0YXAoYXBwSW5mbyA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKCEhYXBwSW5mby5jb25maWd1cmF0aW9uLnBvcnRhaWwuYmFzZVZkQ2hVcmw/Lmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICAvLyBhbHJlYWR5IHNldCBieSB0aGUgYmFja2VuZFxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHN3aXRjaCAoYXBwSW5mby5lbnZpcm9ubWVudD8udG9VcHBlckNhc2UoKSkge1xuICAgICAgICAgICAgICAgICAgICBjYXNlICdJTic6XG4gICAgICAgICAgICAgICAgICAgICAgICBhcHBJbmZvLmNvbmZpZ3VyYXRpb24ucG9ydGFpbC5iYXNlVmRDaFVybCA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2h0dHBzOi8vaTIudmQuY2gnO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ1ZBJzpcbiAgICAgICAgICAgICAgICAgICAgICAgIGFwcEluZm8uY29uZmlndXJhdGlvbi5wb3J0YWlsLmJhc2VWZENoVXJsID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaHR0cHM6Ly92YWxpZC52ZC5jaCc7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgICAgIGFwcEluZm8uY29uZmlndXJhdGlvbi5wb3J0YWlsLmJhc2VWZENoVXJsID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaHR0cHM6Ly93d3cudmQuY2gnO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgZ2V0IGZpcnN0RXRhcGVJbmZvKCk6IE9ic2VydmFibGU8RXRhcGVJbmZvPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmZpcnN0RXRhcGVJbmZvXztcbiAgICB9XG5cbiAgICBnZXQgY3VycmVudEV0YXBlSW5mbygpOiBPYnNlcnZhYmxlPEV0YXBlSW5mbz4ge1xuICAgICAgICByZXR1cm4gdGhpcy5jdXJyZW50RXRhcGVJbmZvXztcbiAgICB9XG5cbiAgICBnZXRTYWZlQ3liZXJMb2dpblVybCgpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xuICAgICAgICByZXR1cm4gdGhpcy5kYXRhLnBpcGUoXG4gICAgICAgICAgICBtYXAoXG4gICAgICAgICAgICAgICAgYXBwSW5mbyA9PlxuICAgICAgICAgICAgICAgICAgICBhcHBJbmZvLmNvbmZpZ3VyYXRpb24/LnBvcnRhaWw/LmN5YmVyTG9naW5VcmwgfHxcbiAgICAgICAgICAgICAgICAgICAgYCR7dGhpcy5nZXRQb3J0YWlsQmFzZVVybChhcHBJbmZvKX0xMDAwMTgvYFxuICAgICAgICAgICAgKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIGdldFNhZmVTdXBwb3J0Rm9ybVVybChcbiAgICAgICAgcmVmZXJlbmNlPzogc3RyaW5nLFxuICAgICAgICBlcnJvcnM/OiBGb3JtRXJyb3JbXVxuICAgICk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmRhdGEucGlwZShcbiAgICAgICAgICAgIG1hcChcbiAgICAgICAgICAgICAgICBhcHBJbmZvID0+XG4gICAgICAgICAgICAgICAgICAgIGFwcEluZm8uY29uZmlndXJhdGlvbj8ucG9ydGFpbD8uc3VwcG9ydEZvcm1VcmwgfHxcbiAgICAgICAgICAgICAgICAgICAgYCR7dGhpcy5nZXRQb3J0YWlsQmFzZVVybChhcHBJbmZvKX1wdWIvMTAxMDk4L2BcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBtYXAobGluayA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKCEhcmVmZXJlbmNlPy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgbGluayArPSBgP2NvbmNlcm5lZFJlZmVyZW5jZT0ke3JlZmVyZW5jZX1gO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoISFlcnJvcnM/Lmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICBsaW5rICs9ICEhcmVmZXJlbmNlPy5sZW5ndGggPyAnJicgOiAnPyc7XG4gICAgICAgICAgICAgICAgICAgIC8vIE5lZWQgZm9sbG93aW5nIGNvZGUgdG8gYXZvaWQgYnJvd3NlciBTYW5pdGl6aW5nIGVycm9yIHdoZW4gdXNpbmcgSlNPTi5zdHJpbmdpZnlcbiAgICAgICAgICAgICAgICAgICAgbGluayArPSBgZXJyb3JzPSR7ZXJyb3JzXG4gICAgICAgICAgICAgICAgICAgICAgICAubWFwKGVycm9yID0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgT2JqZWN0LmVudHJpZXMoZXJyb3IpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5tYXAodmFsdWUgPT4gYCR7dmFsdWUuam9pbignPScpfWApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5qb2luKCcsJylcbiAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgIC5qb2luKCc7Jyl9YDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIGxpbms7XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIGdldFNhZmVTdXBwb3J0Rm9ybVRpdGxlKCk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmRhdGEucGlwZShcbiAgICAgICAgICAgIG1hcChhcHBJbmZvID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCB0aXRsZSA9XG4gICAgICAgICAgICAgICAgICAgIGFwcEluZm8uY29uZmlndXJhdGlvbj8ucG9ydGFpbFxuICAgICAgICAgICAgICAgICAgICAgICAgPy5wb3J0YWlsVGl0bGVzQnlQcmVzdGFDb2RlPy5bMTAxMDk4XTtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGl0bGUgJiYgdGl0bGUubGVuZ3RoXG4gICAgICAgICAgICAgICAgICAgID8gdGl0bGVcbiAgICAgICAgICAgICAgICAgICAgOiBGT1JNX1NVUFBPUlRfQ1lCRVJfVElUTEVfRkFMTEJBQ0s7XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIGdldFNhZmVFc3BhY2VzU2VjdXJpc2VVcmwoKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGF0YS5waXBlKFxuICAgICAgICAgICAgbWFwKFxuICAgICAgICAgICAgICAgIGFwcEluZm8gPT5cbiAgICAgICAgICAgICAgICAgICAgYXBwSW5mby5jb25maWd1cmF0aW9uPy5wb3J0YWlsPy5lc3BhY2VTZWN1cmlzZVVybCB8fFxuICAgICAgICAgICAgICAgICAgICBgJHt0aGlzLmdldFBvcnRhaWxCYXNlVXJsKGFwcEluZm8pfTEwMDAwMi9gXG4gICAgICAgICAgICApXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRBcHBsaWNhdGlvbkluZm8oYXBwbGljYXRpb25JbmZvOiBBcHBsaWNhdGlvbkluZm8pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5hcHBsaWNhdGlvbkluZm8gPSBhcHBsaWNhdGlvbkluZm87XG4gICAgICAgIGlmICh0aGlzLmFwcGxpY2F0aW9uSW5mbykge1xuICAgICAgICAgICAgc3dpdGNoICh0aGlzLmFwcGxpY2F0aW9uSW5mby5lbnZpcm9ubWVudCkge1xuICAgICAgICAgICAgICAgIGNhc2UgJ0NPJzoge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmFwcGxpY2F0aW9uSW5mby5lbnZpcm9ubWVudExhYmVsID0gJ2TDqXZlbG9wcGVtZW50JztcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNhc2UgJ0lOJzoge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmFwcGxpY2F0aW9uSW5mby5lbnZpcm9ubWVudExhYmVsID0gJ2ludMOpZ3JhdGlvbic7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjYXNlICdWQSc6IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hcHBsaWNhdGlvbkluZm8uZW52aXJvbm1lbnRMYWJlbCA9ICd2YWxpZGF0aW9uJztcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICAgICAgLy8gTm90aGluZyB0byBkb1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0UG9ydGFpbEJhc2VVcmwoYXBwSW5mbzogQXBwbGljYXRpb25JbmZvKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgYmFzZVVybCA9IGFwcEluZm8uY29uZmlndXJhdGlvbj8ucG9ydGFpbD8uYmFzZVVybDtcbiAgICAgICAgaWYgKCEhYmFzZVVybCkge1xuICAgICAgICAgICAgcmV0dXJuIGJhc2VVcmwuZW5kc1dpdGgoJy8nKSA/IGJhc2VVcmwgOiBgJHtiYXNlVXJsfS9gO1xuICAgICAgICB9XG4gICAgICAgIHN3aXRjaCAoYXBwSW5mby5lbnZpcm9ubWVudCkge1xuICAgICAgICAgICAgY2FzZSAnQ08nOlxuICAgICAgICAgICAgY2FzZSAnSU4nOlxuICAgICAgICAgICAgICAgIHJldHVybiBQT1JUQUlMX0JBU0VfVVJMX0lOVDtcbiAgICAgICAgICAgIGNhc2UgJ1ZBJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gUE9SVEFJTF9CQVNFX1VSTF9WQUw7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHJldHVybiBQT1JUQUlMX0JBU0VfVVJMX1BST0Q7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
@@ -1,2 +1,2 @@
1
- export const supportedBrowsers = /Edge?\/(13[89]|1[4-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Firefox\/(12[89]|1[3-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Chrom(ium|e)\/(109|1[1-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|(Maci|X1{2}).+ Version\/(18\.([4-9]|\d{2,})|(19|[2-9]\d|\d{3,})\.\d+)([,.]\d+|)( \(\w+\)|)( Mobile\/\w+|) Safari\/|Chrome.+OPR\/(12\d|1[3-9]\d|[2-9]\d{2}|\d{4,})\.\d+\.\d+|(CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone|CPU IPhone OS|CPU iPad OS)[ +]+(18[._]([4-9]|\d{2,})|(19|[2-9]\d|\d{3,})[._]\d+)([._]\d+|)|Opera Mini|Android:?[ /-](139|1[4-9]\d|[2-9]\d{2}|\d{4,})(\.\d+|)(\.\d+|)|Mobile Safari.+OPR\/([89]\d|\d{3,})\.\d+\.\d+|Android.+Firefox\/(14[2-9]|1[5-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Android.+Chrom(ium|e)\/(139|1[4-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Android.+(UC? ?Browser|UCWEB|U3)[ /]?(15\.([5-9]|\d{2,})|(1[6-9]|[2-9]\d|\d{3,})\.\d+)\.\d+|SamsungBrowser\/(2[7-9]|[3-9]\d|\d{3,})\.\d+|Android.+MQ{2}Browser\/(14(\.(9|\d{2,})|)|(1[5-9]|[2-9]\d|\d{3,})(\.\d+|))(\.\d+|)|K[Aa][Ii]OS\/(2\.([5-9]|\d{2,})|([3-9]|\d{2,})\.\d+)(\.\d+|)/;
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VwcG9ydGVkLWJyb3dzZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wcm9qZWN0cy9wcmVzdGF0aW9ucy1uZy9zcmMvc3VwcG9ydGVkLWJyb3dzZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcscy9CQUFzL0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBzdXBwb3J0ZWRCcm93c2VycyA9IC9FZGdlP1xcLygxM1s4OV18MVs0LTldXFxkfFsyLTldXFxkezJ9fFxcZHs0LH0pXFwuXFxkKyhcXC5cXGQrfCl8RmlyZWZveFxcLygxMls4OV18MVszLTldXFxkfFsyLTldXFxkezJ9fFxcZHs0LH0pXFwuXFxkKyhcXC5cXGQrfCl8Q2hyb20oaXVtfGUpXFwvKDEwOXwxWzEtOV1cXGR8WzItOV1cXGR7Mn18XFxkezQsfSlcXC5cXGQrKFxcLlxcZCt8KXwoTWFjaXxYMXsyfSkuKyBWZXJzaW9uXFwvKDE4XFwuKFs0LTldfFxcZHsyLH0pfCgxOXxbMi05XVxcZHxcXGR7Myx9KVxcLlxcZCspKFssLl1cXGQrfCkoIFxcKFxcdytcXCl8KSggTW9iaWxlXFwvXFx3K3wpIFNhZmFyaVxcL3xDaHJvbWUuK09QUlxcLygxMlxcZHwxWzMtOV1cXGR8WzItOV1cXGR7Mn18XFxkezQsfSlcXC5cXGQrXFwuXFxkK3woQ1BVWyArXU9TfGlQaG9uZVsgK11PU3xDUFVbICtdaVBob25lfENQVSBJUGhvbmUgT1N8Q1BVIGlQYWQgT1MpWyArXSsoMThbLl9dKFs0LTldfFxcZHsyLH0pfCgxOXxbMi05XVxcZHxcXGR7Myx9KVsuX11cXGQrKShbLl9dXFxkK3wpfE9wZXJhIE1pbml8QW5kcm9pZDo/WyAvLV0oMTM5fDFbNC05XVxcZHxbMi05XVxcZHsyfXxcXGR7NCx9KShcXC5cXGQrfCkoXFwuXFxkK3wpfE1vYmlsZSBTYWZhcmkuK09QUlxcLyhbODldXFxkfFxcZHszLH0pXFwuXFxkK1xcLlxcZCt8QW5kcm9pZC4rRmlyZWZveFxcLygxNFsyLTldfDFbNS05XVxcZHxbMi05XVxcZHsyfXxcXGR7NCx9KVxcLlxcZCsoXFwuXFxkK3wpfEFuZHJvaWQuK0Nocm9tKGl1bXxlKVxcLygxMzl8MVs0LTldXFxkfFsyLTldXFxkezJ9fFxcZHs0LH0pXFwuXFxkKyhcXC5cXGQrfCl8QW5kcm9pZC4rKFVDPyA/QnJvd3NlcnxVQ1dFQnxVMylbIC9dPygxNVxcLihbNS05XXxcXGR7Mix9KXwoMVs2LTldfFsyLTldXFxkfFxcZHszLH0pXFwuXFxkKylcXC5cXGQrfFNhbXN1bmdCcm93c2VyXFwvKDJbNy05XXxbMy05XVxcZHxcXGR7Myx9KVxcLlxcZCt8QW5kcm9pZC4rTVF7Mn1Ccm93c2VyXFwvKDE0KFxcLig5fFxcZHsyLH0pfCl8KDFbNS05XXxbMi05XVxcZHxcXGR7Myx9KShcXC5cXGQrfCkpKFxcLlxcZCt8KXxLW0FhXVtJaV1PU1xcLygyXFwuKFs1LTldfFxcZHsyLH0pfChbMy05XXxcXGR7Mix9KVxcLlxcZCspKFxcLlxcZCt8KS87XG4iXX0=
1
+ export const supportedBrowsers = /Edge?\/(14[2-9]|1[5-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Firefox\/(14\d|1[5-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Chrom(ium|e)\/(109|1[1-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|(Maci|X1{2}).+ Version\/(26\.([1-9]|\d{2,})|(2[7-9]|[3-9]\d|\d{3,})\.\d+)([,.]\d+|)( \(\w+\)|)( Mobile\/\w+|) Safari\/|Chrome.+OPR\/(12[4-9]|1[3-9]\d|[2-9]\d{2}|\d{4,})\.\d+\.\d+|(CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone|CPU IPhone OS|CPU iPad OS)[ +]+(18[._]([5-9]|\d{2,})|(19|[2-9]\d|\d{3,})[._]\d+)([._]\d+|)|Opera Mini|Android:?[ /-](14[3-9]|1[5-9]\d|[2-9]\d{2}|\d{4,})(\.\d+|)(\.\d+|)|Mobile Safari.+OPR\/([89]\d|\d{3,})\.\d+\.\d+|Android.+Firefox\/(14[6-9]|1[5-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Android.+Chrom(ium|e)\/(14[3-9]|1[5-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Android.+(UC? ?Browser|UCWEB|U3)[ /]?(15\.([5-9]|\d{2,})|(1[6-9]|[2-9]\d|\d{3,})\.\d+)\.\d+|SamsungBrowser\/(2[89]|[3-9]\d|\d{3,})\.\d+|Android.+MQ{2}Browser\/(14(\.(9|\d{2,})|)|(1[5-9]|[2-9]\d|\d{3,})(\.\d+|))(\.\d+|)|K[Aa][Ii]OS\/(2\.([5-9]|\d{2,})|([3-9]|\d{2,})\.\d+)(\.\d+|)/;
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VwcG9ydGVkLWJyb3dzZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wcm9qZWN0cy9wcmVzdGF0aW9ucy1uZy9zcmMvc3VwcG9ydGVkLWJyb3dzZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsbWdDQUFtZ0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBzdXBwb3J0ZWRCcm93c2VycyA9IC9FZGdlP1xcLygxNFsyLTldfDFbNS05XVxcZHxbMi05XVxcZHsyfXxcXGR7NCx9KVxcLlxcZCsoXFwuXFxkK3wpfEZpcmVmb3hcXC8oMTRcXGR8MVs1LTldXFxkfFsyLTldXFxkezJ9fFxcZHs0LH0pXFwuXFxkKyhcXC5cXGQrfCl8Q2hyb20oaXVtfGUpXFwvKDEwOXwxWzEtOV1cXGR8WzItOV1cXGR7Mn18XFxkezQsfSlcXC5cXGQrKFxcLlxcZCt8KXwoTWFjaXxYMXsyfSkuKyBWZXJzaW9uXFwvKDI2XFwuKFsxLTldfFxcZHsyLH0pfCgyWzctOV18WzMtOV1cXGR8XFxkezMsfSlcXC5cXGQrKShbLC5dXFxkK3wpKCBcXChcXHcrXFwpfCkoIE1vYmlsZVxcL1xcdyt8KSBTYWZhcmlcXC98Q2hyb21lLitPUFJcXC8oMTJbNC05XXwxWzMtOV1cXGR8WzItOV1cXGR7Mn18XFxkezQsfSlcXC5cXGQrXFwuXFxkK3woQ1BVWyArXU9TfGlQaG9uZVsgK11PU3xDUFVbICtdaVBob25lfENQVSBJUGhvbmUgT1N8Q1BVIGlQYWQgT1MpWyArXSsoMThbLl9dKFs1LTldfFxcZHsyLH0pfCgxOXxbMi05XVxcZHxcXGR7Myx9KVsuX11cXGQrKShbLl9dXFxkK3wpfE9wZXJhIE1pbml8QW5kcm9pZDo/WyAvLV0oMTRbMy05XXwxWzUtOV1cXGR8WzItOV1cXGR7Mn18XFxkezQsfSkoXFwuXFxkK3wpKFxcLlxcZCt8KXxNb2JpbGUgU2FmYXJpLitPUFJcXC8oWzg5XVxcZHxcXGR7Myx9KVxcLlxcZCtcXC5cXGQrfEFuZHJvaWQuK0ZpcmVmb3hcXC8oMTRbNi05XXwxWzUtOV1cXGR8WzItOV1cXGR7Mn18XFxkezQsfSlcXC5cXGQrKFxcLlxcZCt8KXxBbmRyb2lkLitDaHJvbShpdW18ZSlcXC8oMTRbMy05XXwxWzUtOV1cXGR8WzItOV1cXGR7Mn18XFxkezQsfSlcXC5cXGQrKFxcLlxcZCt8KXxBbmRyb2lkLisoVUM/ID9Ccm93c2VyfFVDV0VCfFUzKVsgL10/KDE1XFwuKFs1LTldfFxcZHsyLH0pfCgxWzYtOV18WzItOV1cXGR8XFxkezMsfSlcXC5cXGQrKVxcLlxcZCt8U2Ftc3VuZ0Jyb3dzZXJcXC8oMls4OV18WzMtOV1cXGR8XFxkezMsfSlcXC5cXGQrfEFuZHJvaWQuK01RezJ9QnJvd3NlclxcLygxNChcXC4oOXxcXGR7Mix9KXwpfCgxWzUtOV18WzItOV1cXGR8XFxkezMsfSkoXFwuXFxkK3wpKShcXC5cXGQrfCl8S1tBYV1bSWldT1NcXC8oMlxcLihbNS05XXxcXGR7Mix9KXwoWzMtOV18XFxkezIsfSlcXC5cXGQrKShcXC5cXGQrfCkvO1xuIl19
@@ -293,7 +293,7 @@ class ApplicationInfoService {
293
293
  getPortailBaseUrl(appInfo) {
294
294
  const baseUrl = appInfo.configuration?.portail?.baseUrl;
295
295
  if (!!baseUrl) {
296
- return baseUrl;
296
+ return baseUrl.endsWith('/') ? baseUrl : `${baseUrl}/`;
297
297
  }
298
298
  switch (appInfo.environment) {
299
299
  case 'CO':
@@ -870,35 +870,45 @@ class FoehnInputComponent {
870
870
  this._errors = errors.filter(e => e.name === this.name);
871
871
  }
872
872
  }
873
- focus() {
873
+ focus(scrollIntoView = true) {
874
874
  let elementContainer;
875
875
  if (this.inputElement && this.inputElement.nativeElement) {
876
876
  elementContainer = document.getElementById(this.buildId('Container'));
877
- // Scroll in view should be done on input container
878
- ScrollHelper.scrollIntoViewWithExpirationTimerOffset(elementContainer);
877
+ if (scrollIntoView) {
878
+ // Scroll in view should be done on input container
879
+ ScrollHelper.scrollIntoViewWithExpirationTimerOffset(elementContainer);
880
+ }
879
881
  // Focus should be on the input itself
880
- this.inputElement.nativeElement.focus();
882
+ this.inputElement.nativeElement.focus({
883
+ preventScroll: !scrollIntoView
884
+ });
881
885
  }
882
886
  else if (this.subComponents &&
883
887
  this.getFirstInputComponentEnabled(this.subComponents)) {
884
888
  const inputComponent = this.getFirstInputComponentEnabled(this.subComponents);
885
889
  elementContainer = document.getElementById(inputComponent.buildId('Container'));
886
- // Scroll in view should be done on input container
887
- ScrollHelper.scrollIntoViewWithExpirationTimerOffset(elementContainer);
890
+ if (scrollIntoView) {
891
+ // Scroll in view should be done on input container
892
+ ScrollHelper.scrollIntoViewWithExpirationTimerOffset(elementContainer);
893
+ }
888
894
  // Focus should be on the input itself
889
- inputComponent.inputElement.nativeElement.focus();
895
+ inputComponent.inputElement.nativeElement.focus({
896
+ preventScroll: !scrollIntoView
897
+ });
890
898
  }
891
899
  else {
892
900
  // Case for component who do not have any '#entryComponent' in their html template (i.e. foehn-radio, foehn-checkbox,...)
893
901
  elementContainer = document.getElementById(this.buildId('Container'));
894
- // Scroll in view should be done on input container
895
- ScrollHelper.scrollIntoViewWithExpirationTimerOffset(elementContainer);
902
+ if (scrollIntoView) {
903
+ // Scroll in view should be done on input container
904
+ ScrollHelper.scrollIntoViewWithExpirationTimerOffset(elementContainer);
905
+ }
896
906
  const elementNodeListOf = elementContainer.querySelectorAll(`input[id^="${this.name}"]`);
897
907
  if (elementNodeListOf && elementNodeListOf.length > 0) {
898
908
  const inputElement = this.findFirstHtmlInputElementEnabled(elementNodeListOf);
899
909
  if (inputElement) {
900
910
  // Focus should be on the input itself
901
- inputElement.focus();
911
+ inputElement.focus({ preventScroll: !scrollIntoView });
902
912
  }
903
913
  }
904
914
  }
@@ -1780,14 +1790,14 @@ class FoehnFormComponent {
1780
1790
  }
1781
1791
  }
1782
1792
  }
1783
- focusFirst() {
1793
+ focusFirst(scrollIntoView = true) {
1784
1794
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
1785
1795
  const allComponents = this.getAllComponents().filter(value => !value.disabled &&
1786
1796
  value.type !== 'hidden' &&
1787
1797
  !value.hidden &&
1788
1798
  !value.subComponents?.length);
1789
1799
  if (allComponents && allComponents.length > 0) {
1790
- allComponents[0].focus();
1800
+ allComponents[0].focus(scrollIntoView);
1791
1801
  }
1792
1802
  }
1793
1803
  focusErrorSummary() {
@@ -5545,7 +5555,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
5545
5555
  }]
5546
5556
  }], ctorParameters: () => [{ type: SessionInfo }, { type: GesdemEventService }, { type: GesdemHandlerService }] });
5547
5557
 
5548
- const supportedBrowsers = /Edge?\/(13[89]|1[4-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Firefox\/(12[89]|1[3-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Chrom(ium|e)\/(109|1[1-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|(Maci|X1{2}).+ Version\/(18\.([4-9]|\d{2,})|(19|[2-9]\d|\d{3,})\.\d+)([,.]\d+|)( \(\w+\)|)( Mobile\/\w+|) Safari\/|Chrome.+OPR\/(12\d|1[3-9]\d|[2-9]\d{2}|\d{4,})\.\d+\.\d+|(CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone|CPU IPhone OS|CPU iPad OS)[ +]+(18[._]([4-9]|\d{2,})|(19|[2-9]\d|\d{3,})[._]\d+)([._]\d+|)|Opera Mini|Android:?[ /-](139|1[4-9]\d|[2-9]\d{2}|\d{4,})(\.\d+|)(\.\d+|)|Mobile Safari.+OPR\/([89]\d|\d{3,})\.\d+\.\d+|Android.+Firefox\/(14[2-9]|1[5-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Android.+Chrom(ium|e)\/(139|1[4-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Android.+(UC? ?Browser|UCWEB|U3)[ /]?(15\.([5-9]|\d{2,})|(1[6-9]|[2-9]\d|\d{3,})\.\d+)\.\d+|SamsungBrowser\/(2[7-9]|[3-9]\d|\d{3,})\.\d+|Android.+MQ{2}Browser\/(14(\.(9|\d{2,})|)|(1[5-9]|[2-9]\d|\d{3,})(\.\d+|))(\.\d+|)|K[Aa][Ii]OS\/(2\.([5-9]|\d{2,})|([3-9]|\d{2,})\.\d+)(\.\d+|)/;
5558
+ const supportedBrowsers = /Edge?\/(14[2-9]|1[5-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Firefox\/(14\d|1[5-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Chrom(ium|e)\/(109|1[1-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|(Maci|X1{2}).+ Version\/(26\.([1-9]|\d{2,})|(2[7-9]|[3-9]\d|\d{3,})\.\d+)([,.]\d+|)( \(\w+\)|)( Mobile\/\w+|) Safari\/|Chrome.+OPR\/(12[4-9]|1[3-9]\d|[2-9]\d{2}|\d{4,})\.\d+\.\d+|(CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone|CPU IPhone OS|CPU iPad OS)[ +]+(18[._]([5-9]|\d{2,})|(19|[2-9]\d|\d{3,})[._]\d+)([._]\d+|)|Opera Mini|Android:?[ /-](14[3-9]|1[5-9]\d|[2-9]\d{2}|\d{4,})(\.\d+|)(\.\d+|)|Mobile Safari.+OPR\/([89]\d|\d{3,})\.\d+\.\d+|Android.+Firefox\/(14[6-9]|1[5-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Android.+Chrom(ium|e)\/(14[3-9]|1[5-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Android.+(UC? ?Browser|UCWEB|U3)[ /]?(15\.([5-9]|\d{2,})|(1[6-9]|[2-9]\d|\d{3,})\.\d+)\.\d+|SamsungBrowser\/(2[89]|[3-9]\d|\d{3,})\.\d+|Android.+MQ{2}Browser\/(14(\.(9|\d{2,})|)|(1[5-9]|[2-9]\d|\d{3,})(\.\d+|))(\.\d+|)|K[Aa][Ii]OS\/(2\.([5-9]|\d{2,})|([3-9]|\d{2,})\.\d+)(\.\d+|)/;
5549
5559
 
5550
5560
  class FoehnPageModalService {
5551
5561
  constructor(applicationInfoService) {