@koobiq/components 18.39.1 → 18.39.2

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.
@@ -10,7 +10,10 @@ export interface KbqAppSwitcherApp {
10
10
  name: string;
11
11
  id: string | number;
12
12
  type?: string | number;
13
- icon: string;
13
+ /** Inline SVG markup for the application icon. Use this for SVG icons that should be rendered directly in the DOM. */
14
+ icon?: string;
15
+ /** Path to the icon file (URL or relative path). */
16
+ iconSrc?: string;
14
17
  caption?: string;
15
18
  aliases?: KbqAppSwitcherApp[];
16
19
  link?: string;
@@ -19,7 +22,10 @@ export interface KbqAppSwitcherSite {
19
22
  name: string;
20
23
  id: string | number;
21
24
  status?: string;
25
+ /** Inline SVG markup for the site icon. Use this for SVG icons that should be rendered directly in the DOM. */
22
26
  icon?: string;
27
+ /** Path to the icon file (URL or relative path). */
28
+ iconSrc?: string;
23
29
  apps: KbqAppSwitcherApp[];
24
30
  }
25
31
  /** @docs-private */
@@ -32,7 +32,9 @@
32
32
  }
33
33
 
34
34
  .kbq-dropdown__panel {
35
- overflow: auto;
35
+ overflow-x: hidden;
36
+ overflow-y: auto;
37
+
36
38
  min-width: var(--kbq-dropdown-size-container-width-min);
37
39
  max-width: var(--kbq-dropdown-size-container-width-max);
38
40
 
@@ -1,9 +1,11 @@
1
+ import { NgOptimizedImage } from '@angular/common';
1
2
  import { ChangeDetectionStrategy, Component, inject, Input, ViewEncapsulation } from '@angular/core';
2
3
  import { DomSanitizer } from '@angular/platform-browser';
3
4
  import { KBQ_TITLE_TEXT_REF } from '@koobiq/components/core';
4
5
  import { KbqDropdownItem } from '@koobiq/components/dropdown';
5
- import { KbqIcon } from '@koobiq/components/icon';
6
+ import { KbqIconModule } from '@koobiq/components/icon';
6
7
  import * as i0 from "@angular/core";
8
+ import * as i1 from "@koobiq/components/icon";
7
9
  /** @docs-private */
8
10
  export class KbqAppSwitcherDropdownApp extends KbqDropdownItem {
9
11
  constructor() {
@@ -19,7 +21,13 @@ export class KbqAppSwitcherDropdownApp extends KbqDropdownItem {
19
21
  { provide: KbqDropdownItem, useExisting: KbqAppSwitcherDropdownApp }
20
22
  ], exportAs: ["kbqAppSwitcherDropdownApp"], usesInheritance: true, ngImport: i0, template: `
21
23
  <i class="kbq kbq-icon" [className]=""></i>
22
- <span class="kbq-app-switcher-dropdown-app__icon" [innerHtml]="getIcon(app.icon)"></span>
24
+ @if (app.icon) {
25
+ <span class="kbq-app-switcher-dropdown-app__icon" [innerHtml]="getIcon(app.icon)"></span>
26
+ } @else if (app.iconSrc) {
27
+ <span class="kbq-app-switcher-dropdown-app__icon">
28
+ <img width="24" height="24" alt="{{ app.type }}" [ngSrc]="app.iconSrc" />
29
+ </span>
30
+ }
23
31
 
24
32
  <div class="kbq-app-switcher-dropdown-app__container">
25
33
  <div class="kbq-app-switcher-dropdown-app__name">
@@ -37,13 +45,19 @@ export class KbqAppSwitcherDropdownApp extends KbqDropdownItem {
37
45
  <div class="kbq-app-switcher-dropdown-app__caption">{{ app.caption }}</div>
38
46
  }
39
47
  </div>
40
- `, isInline: true, styles: ["@keyframes kbq-progress{0%{background-position:0 0}to{background-position:64px 0}}.kbq-progress{position:relative}.kbq-progress:after{content:\"\";position:absolute;border-radius:inherit;inset:0;background:linear-gradient(135deg,#0000000a 12px,#ffffff1a 12px 22px,#0000000a 22px 34px,#ffffff1a 34px) repeat;background-size:32px 32px;animation:kbq-progress 1s linear infinite}.kbq-group{display:flex;flex-direction:row}.kbq-group .kbq-group_justified>.kbq-group-item{width:100%}.kbq-group .kbq-group-item+.kbq-group-item{margin-left:calc(-1 * var(--kbq-size-border-width))}.kbq-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:first-child:not(:last-child)>.kbq-form-field__container{border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child)>.kbq-form-field__container{border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child)>.kbq-form-field__container{border-radius:0}.kbq-vertical-group{display:flex;flex-direction:column}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-bottom-left-radius:0;border-top-right-radius:var(--kbq-size-border-radius)}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child)>.kbq-form-field__container{border-bottom-right-radius:0;border-bottom-left-radius:0}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child){border-top-right-radius:0;border-top-left-radius:0;border-bottom-left-radius:var(--kbq-size-border-radius)}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child)>.kbq-form-field__container{border-top-right-radius:0;border-top-left-radius:0}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child)>.kbq-form-field__container{border-radius:0}.kbq-vertical-group .kbq-group-item+.kbq-group-item{margin-top:calc(-1 * var(--kbq-size-border-width))}.kbq-truncate-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-no-select{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.kbq-app-switcher-dropdown-app{display:flex;flex-direction:row;width:100%;min-height:50px;border-radius:var(--kbq-size-xs);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;text-decoration:none;box-sizing:border-box;outline:none;-webkit-tap-highlight-color:transparent;cursor:pointer;padding:var(--kbq-size-xxs) var(--kbq-size-m)}.kbq-app-switcher-dropdown-app .kbq-app-switcher-dropdown-app__icon{padding-top:var(--kbq-size-s);padding-right:var(--kbq-size-m)}.kbq-app-switcher-dropdown-app .kbq-app-switcher-dropdown-app__container{width:100%;align-self:center}.kbq-app-switcher-dropdown-app .kbq-app-switcher-dropdown-app__container .kbq-app-switcher-dropdown-app__name{display:flex;flex-direction:row;justify-content:space-between}.kbq-app-switcher-dropdown-app .kbq-app-switcher-dropdown-app__container .kbq-app-switcher-dropdown-app__caption{margin-left:var(--kbq-size-3xs)}.kbq-app-switcher-dropdown-app .kbq-dropdown-item__caption{padding-top:var(--kbq-size-3xs)}.kbq-app-switcher-dropdown-app .kbq-app-switcher-dropdown-item-trigger__icon{margin-top:var(--kbq-size-3xs)}.kbq-app-switcher-dropdown-app{background:var(--kbq-list-default-container-background);color:var(--kbq-list-default-text-color)}.kbq-app-switcher-dropdown-app.kbq-dropdown-item_highlighted,.kbq-app-switcher-dropdown-app:hover{background:var(--kbq-states-background-transparent-active)}.kbq-app-switcher-dropdown-app.cdk-keyboard-focused{border-color:var(--kbq-list-states-focused-focus-outline-color)}.kbq-app-switcher-dropdown-app .kbq-app-switcher-dropdown-app__caption{color:var(--kbq-dropdown-item-caption-color)}.kbq-app-switcher-dropdown-app{font-size:var(--kbq-typography-text-normal-font-size);font-style:var(--kbq-typography-text-normal-font-style);font-weight:var(--kbq-typography-text-normal-font-weight);line-height:var(--kbq-typography-text-normal-line-height);font-family:var(--kbq-typography-text-normal-font-family);text-transform:var(--kbq-typography-text-normal-text-transform);font-feature-settings:var(--kbq-typography-text-normal-font-feature-settings);letter-spacing:var(--kbq-typography-text-normal-letter-spacing)}.kbq-app-switcher-dropdown-app .kbq-app-switcher-dropdown-app__caption{font-size:var(--kbq-typography-text-compact-font-size);font-style:var(--kbq-typography-text-compact-font-style);font-weight:var(--kbq-typography-text-compact-font-weight);line-height:var(--kbq-typography-text-compact-line-height);font-family:var(--kbq-typography-text-compact-font-family);text-transform:var(--kbq-typography-text-compact-text-transform);font-feature-settings:var(--kbq-typography-text-compact-font-feature-settings);letter-spacing:var(--kbq-typography-text-compact-letter-spacing)}\n"], dependencies: [{ kind: "component", type: KbqIcon, selector: "[kbq-icon]", inputs: ["small", "autoColor", "kbq-icon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
48
+ `, isInline: true, styles: ["@keyframes kbq-progress{0%{background-position:0 0}to{background-position:64px 0}}.kbq-progress{position:relative}.kbq-progress:after{content:\"\";position:absolute;border-radius:inherit;inset:0;background:linear-gradient(135deg,#0000000a 12px,#ffffff1a 12px 22px,#0000000a 22px 34px,#ffffff1a 34px) repeat;background-size:32px 32px;animation:kbq-progress 1s linear infinite}.kbq-group{display:flex;flex-direction:row}.kbq-group .kbq-group_justified>.kbq-group-item{width:100%}.kbq-group .kbq-group-item+.kbq-group-item{margin-left:calc(-1 * var(--kbq-size-border-width))}.kbq-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:first-child:not(:last-child)>.kbq-form-field__container{border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child)>.kbq-form-field__container{border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child)>.kbq-form-field__container{border-radius:0}.kbq-vertical-group{display:flex;flex-direction:column}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-bottom-left-radius:0;border-top-right-radius:var(--kbq-size-border-radius)}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child)>.kbq-form-field__container{border-bottom-right-radius:0;border-bottom-left-radius:0}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child){border-top-right-radius:0;border-top-left-radius:0;border-bottom-left-radius:var(--kbq-size-border-radius)}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child)>.kbq-form-field__container{border-top-right-radius:0;border-top-left-radius:0}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child)>.kbq-form-field__container{border-radius:0}.kbq-vertical-group .kbq-group-item+.kbq-group-item{margin-top:calc(-1 * var(--kbq-size-border-width))}.kbq-truncate-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-no-select{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.kbq-app-switcher-dropdown-app{display:flex;flex-direction:row;width:100%;min-height:50px;border-radius:var(--kbq-size-xs);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;text-decoration:none;box-sizing:border-box;outline:none;-webkit-tap-highlight-color:transparent;cursor:pointer;padding:var(--kbq-size-xxs) var(--kbq-size-m)}.kbq-app-switcher-dropdown-app .kbq-app-switcher-dropdown-app__icon{padding-top:var(--kbq-size-s);padding-right:var(--kbq-size-m)}.kbq-app-switcher-dropdown-app .kbq-app-switcher-dropdown-app__container{width:100%;align-self:center}.kbq-app-switcher-dropdown-app .kbq-app-switcher-dropdown-app__container .kbq-app-switcher-dropdown-app__name{display:flex;flex-direction:row;justify-content:space-between}.kbq-app-switcher-dropdown-app .kbq-app-switcher-dropdown-app__container .kbq-app-switcher-dropdown-app__caption{margin-left:var(--kbq-size-3xs)}.kbq-app-switcher-dropdown-app .kbq-dropdown-item__caption{padding-top:var(--kbq-size-3xs)}.kbq-app-switcher-dropdown-app .kbq-app-switcher-dropdown-item-trigger__icon{margin-top:var(--kbq-size-3xs)}.kbq-app-switcher-dropdown-app{background:var(--kbq-list-default-container-background);color:var(--kbq-list-default-text-color)}.kbq-app-switcher-dropdown-app.kbq-dropdown-item_highlighted,.kbq-app-switcher-dropdown-app:hover{background:var(--kbq-states-background-transparent-active)}.kbq-app-switcher-dropdown-app.cdk-keyboard-focused{border-color:var(--kbq-list-states-focused-focus-outline-color)}.kbq-app-switcher-dropdown-app .kbq-app-switcher-dropdown-app__caption{color:var(--kbq-dropdown-item-caption-color)}.kbq-app-switcher-dropdown-app{font-size:var(--kbq-typography-text-normal-font-size);font-style:var(--kbq-typography-text-normal-font-style);font-weight:var(--kbq-typography-text-normal-font-weight);line-height:var(--kbq-typography-text-normal-line-height);font-family:var(--kbq-typography-text-normal-font-family);text-transform:var(--kbq-typography-text-normal-text-transform);font-feature-settings:var(--kbq-typography-text-normal-font-feature-settings);letter-spacing:var(--kbq-typography-text-normal-letter-spacing)}.kbq-app-switcher-dropdown-app .kbq-app-switcher-dropdown-app__caption{font-size:var(--kbq-typography-text-compact-font-size);font-style:var(--kbq-typography-text-compact-font-style);font-weight:var(--kbq-typography-text-compact-font-weight);line-height:var(--kbq-typography-text-compact-line-height);font-family:var(--kbq-typography-text-compact-font-family);text-transform:var(--kbq-typography-text-compact-text-transform);font-feature-settings:var(--kbq-typography-text-compact-font-feature-settings);letter-spacing:var(--kbq-typography-text-compact-letter-spacing)}\n"], dependencies: [{ kind: "ngmodule", type: KbqIconModule }, { kind: "component", type: i1.KbqIcon, selector: "[kbq-icon]", inputs: ["small", "autoColor", "kbq-icon"] }, { kind: "directive", type: NgOptimizedImage, selector: "img[ngSrc]", inputs: ["ngSrc", "ngSrcset", "sizes", "width", "height", "loading", "priority", "loaderParams", "disableOptimizedSrcset", "fill", "placeholder", "placeholderConfig", "src", "srcset"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
41
49
  }
42
50
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: KbqAppSwitcherDropdownApp, decorators: [{
43
51
  type: Component,
44
- args: [{ standalone: true, selector: '[kbq-app-switcher-dropdown-app]', exportAs: 'kbqAppSwitcherDropdownApp', template: `
52
+ args: [{ standalone: true, selector: '[kbq-app-switcher-dropdown-app]', exportAs: 'kbqAppSwitcherDropdownApp', imports: [KbqIconModule, NgOptimizedImage], template: `
45
53
  <i class="kbq kbq-icon" [className]=""></i>
46
- <span class="kbq-app-switcher-dropdown-app__icon" [innerHtml]="getIcon(app.icon)"></span>
54
+ @if (app.icon) {
55
+ <span class="kbq-app-switcher-dropdown-app__icon" [innerHtml]="getIcon(app.icon)"></span>
56
+ } @else if (app.iconSrc) {
57
+ <span class="kbq-app-switcher-dropdown-app__icon">
58
+ <img width="24" height="24" alt="{{ app.type }}" [ngSrc]="app.iconSrc" />
59
+ </span>
60
+ }
47
61
 
48
62
  <div class="kbq-app-switcher-dropdown-app__container">
49
63
  <div class="kbq-app-switcher-dropdown-app__name">
@@ -64,7 +78,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
64
78
  `, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
65
79
  class: 'kbq-app-switcher-dropdown-app',
66
80
  '[class.kbq-dropdown-item]': 'false'
67
- }, imports: [KbqIcon], providers: [
81
+ }, providers: [
68
82
  { provide: KBQ_TITLE_TEXT_REF, useExisting: KbqAppSwitcherDropdownApp },
69
83
  { provide: KbqDropdownItem, useExisting: KbqAppSwitcherDropdownApp }
70
84
  ], styles: ["@keyframes kbq-progress{0%{background-position:0 0}to{background-position:64px 0}}.kbq-progress{position:relative}.kbq-progress:after{content:\"\";position:absolute;border-radius:inherit;inset:0;background:linear-gradient(135deg,#0000000a 12px,#ffffff1a 12px 22px,#0000000a 22px 34px,#ffffff1a 34px) repeat;background-size:32px 32px;animation:kbq-progress 1s linear infinite}.kbq-group{display:flex;flex-direction:row}.kbq-group .kbq-group_justified>.kbq-group-item{width:100%}.kbq-group .kbq-group-item+.kbq-group-item{margin-left:calc(-1 * var(--kbq-size-border-width))}.kbq-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:first-child:not(:last-child)>.kbq-form-field__container{border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child)>.kbq-form-field__container{border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child)>.kbq-form-field__container{border-radius:0}.kbq-vertical-group{display:flex;flex-direction:column}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-bottom-left-radius:0;border-top-right-radius:var(--kbq-size-border-radius)}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child)>.kbq-form-field__container{border-bottom-right-radius:0;border-bottom-left-radius:0}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child){border-top-right-radius:0;border-top-left-radius:0;border-bottom-left-radius:var(--kbq-size-border-radius)}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child)>.kbq-form-field__container{border-top-right-radius:0;border-top-left-radius:0}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child)>.kbq-form-field__container{border-radius:0}.kbq-vertical-group .kbq-group-item+.kbq-group-item{margin-top:calc(-1 * var(--kbq-size-border-width))}.kbq-truncate-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-no-select{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.kbq-app-switcher-dropdown-app{display:flex;flex-direction:row;width:100%;min-height:50px;border-radius:var(--kbq-size-xs);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;text-decoration:none;box-sizing:border-box;outline:none;-webkit-tap-highlight-color:transparent;cursor:pointer;padding:var(--kbq-size-xxs) var(--kbq-size-m)}.kbq-app-switcher-dropdown-app .kbq-app-switcher-dropdown-app__icon{padding-top:var(--kbq-size-s);padding-right:var(--kbq-size-m)}.kbq-app-switcher-dropdown-app .kbq-app-switcher-dropdown-app__container{width:100%;align-self:center}.kbq-app-switcher-dropdown-app .kbq-app-switcher-dropdown-app__container .kbq-app-switcher-dropdown-app__name{display:flex;flex-direction:row;justify-content:space-between}.kbq-app-switcher-dropdown-app .kbq-app-switcher-dropdown-app__container .kbq-app-switcher-dropdown-app__caption{margin-left:var(--kbq-size-3xs)}.kbq-app-switcher-dropdown-app .kbq-dropdown-item__caption{padding-top:var(--kbq-size-3xs)}.kbq-app-switcher-dropdown-app .kbq-app-switcher-dropdown-item-trigger__icon{margin-top:var(--kbq-size-3xs)}.kbq-app-switcher-dropdown-app{background:var(--kbq-list-default-container-background);color:var(--kbq-list-default-text-color)}.kbq-app-switcher-dropdown-app.kbq-dropdown-item_highlighted,.kbq-app-switcher-dropdown-app:hover{background:var(--kbq-states-background-transparent-active)}.kbq-app-switcher-dropdown-app.cdk-keyboard-focused{border-color:var(--kbq-list-states-focused-focus-outline-color)}.kbq-app-switcher-dropdown-app .kbq-app-switcher-dropdown-app__caption{color:var(--kbq-dropdown-item-caption-color)}.kbq-app-switcher-dropdown-app{font-size:var(--kbq-typography-text-normal-font-size);font-style:var(--kbq-typography-text-normal-font-style);font-weight:var(--kbq-typography-text-normal-font-weight);line-height:var(--kbq-typography-text-normal-line-height);font-family:var(--kbq-typography-text-normal-font-family);text-transform:var(--kbq-typography-text-normal-text-transform);font-feature-settings:var(--kbq-typography-text-normal-font-feature-settings);letter-spacing:var(--kbq-typography-text-normal-letter-spacing)}.kbq-app-switcher-dropdown-app .kbq-app-switcher-dropdown-app__caption{font-size:var(--kbq-typography-text-compact-font-size);font-style:var(--kbq-typography-text-compact-font-style);font-weight:var(--kbq-typography-text-compact-font-weight);line-height:var(--kbq-typography-text-compact-line-height);font-family:var(--kbq-typography-text-compact-font-family);text-transform:var(--kbq-typography-text-compact-text-transform);font-feature-settings:var(--kbq-typography-text-compact-font-feature-settings);letter-spacing:var(--kbq-typography-text-compact-letter-spacing)}\n"] }]
@@ -72,4 +86,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
72
86
  type: Input,
73
87
  args: ['kbq-app-switcher-dropdown-app']
74
88
  }] } });
75
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLXN3aXRjaGVyLWRyb3Bkb3duLWFwcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvYXBwLXN3aXRjaGVyL2FwcC1zd2l0Y2hlci1kcm9wZG93bi1hcHAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JHLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDOUQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHlCQUF5QixDQUFDOztBQUdsRCxvQkFBb0I7QUF1Q3BCLE1BQU0sT0FBTyx5QkFBMEIsU0FBUSxlQUFlO0lBdEM5RDs7UUF1Q1ksY0FBUyxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztLQU81QztJQUhHLE9BQU8sQ0FBQyxJQUFtQjtRQUN2QixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsdUJBQXVCLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzlELENBQUM7a0lBUFEseUJBQXlCO3NIQUF6Qix5QkFBeUIsd1BBTHZCO1lBQ1AsRUFBRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsV0FBVyxFQUFFLHlCQUF5QixFQUFFO1lBQ3ZFLEVBQUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxXQUFXLEVBQUUseUJBQXlCLEVBQUU7U0FDdkUsMEZBaENTOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztLQW9CVCxxbUtBUVMsT0FBTzs7NEZBTVIseUJBQXlCO2tCQXRDckMsU0FBUztpQ0FDTSxJQUFJLFlBQ04saUNBQWlDLFlBQ2pDLDJCQUEyQixZQUMzQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7S0FvQlQsbUJBRWdCLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLElBQUksUUFDL0I7d0JBQ0YsS0FBSyxFQUFFLCtCQUErQjt3QkFDdEMsMkJBQTJCLEVBQUUsT0FBTztxQkFDdkMsV0FDUSxDQUFDLE9BQU8sQ0FBQyxhQUNQO3dCQUNQLEVBQUUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLFdBQVcsMkJBQTJCLEVBQUU7d0JBQ3ZFLEVBQUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxXQUFXLDJCQUEyQixFQUFFO3FCQUN2RTs4QkFLdUMsR0FBRztzQkFBMUMsS0FBSzt1QkFBQywrQkFBK0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBpbmplY3QsIElucHV0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRG9tU2FuaXRpemVyIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQgeyBLQlFfVElUTEVfVEVYVF9SRUYgfSBmcm9tICdAa29vYmlxL2NvbXBvbmVudHMvY29yZSc7XG5pbXBvcnQgeyBLYnFEcm9wZG93bkl0ZW0gfSBmcm9tICdAa29vYmlxL2NvbXBvbmVudHMvZHJvcGRvd24nO1xuaW1wb3J0IHsgS2JxSWNvbiB9IGZyb20gJ0Brb29iaXEvY29tcG9uZW50cy9pY29uJztcbmltcG9ydCB7IEticUFwcFN3aXRjaGVyQXBwIH0gZnJvbSAnLi9hcHAtc3dpdGNoZXInO1xuXG4vKiogQGRvY3MtcHJpdmF0ZSAqL1xuQENvbXBvbmVudCh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBzZWxlY3RvcjogJ1trYnEtYXBwLXN3aXRjaGVyLWRyb3Bkb3duLWFwcF0nLFxuICAgIGV4cG9ydEFzOiAna2JxQXBwU3dpdGNoZXJEcm9wZG93bkFwcCcsXG4gICAgdGVtcGxhdGU6IGBcbiAgICAgICAgPGkgY2xhc3M9XCJrYnEga2JxLWljb25cIiBbY2xhc3NOYW1lXT1cIlwiPjwvaT5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJrYnEtYXBwLXN3aXRjaGVyLWRyb3Bkb3duLWFwcF9faWNvblwiIFtpbm5lckh0bWxdPVwiZ2V0SWNvbihhcHAuaWNvbilcIj48L3NwYW4+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cImticS1hcHAtc3dpdGNoZXItZHJvcGRvd24tYXBwX19jb250YWluZXJcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJrYnEtYXBwLXN3aXRjaGVyLWRyb3Bkb3duLWFwcF9fbmFtZVwiPlxuICAgICAgICAgICAgICAgIDxzcGFuPnt7IGFwcC5uYW1lIH19PC9zcGFuPlxuXG4gICAgICAgICAgICAgICAgQGlmIChpc05lc3RlZCkge1xuICAgICAgICAgICAgICAgICAgICA8aVxuICAgICAgICAgICAgICAgICAgICAgICAga2JxLWljb249XCJrYnEtY2hldnJvbi1yaWdodC1zXzE2XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwia2JxLWFwcC1zd2l0Y2hlci1kcm9wZG93bi1pdGVtLXRyaWdnZXJfX2ljb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2NvbG9yXT1cImNvbXBvbmVudENvbG9ycy5Db250cmFzdEZhZGVcIlxuICAgICAgICAgICAgICAgICAgICA+PC9pPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgQGlmIChhcHAuY2FwdGlvbikge1xuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJrYnEtYXBwLXN3aXRjaGVyLWRyb3Bkb3duLWFwcF9fY2FwdGlvblwiPnt7IGFwcC5jYXB0aW9uIH19PC9kaXY+XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgIGAsXG4gICAgc3R5bGVVcmxzOiBbJ2FwcC1zd2l0Y2hlci1kcm9wZG93bi1hcHAuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgaG9zdDoge1xuICAgICAgICBjbGFzczogJ2ticS1hcHAtc3dpdGNoZXItZHJvcGRvd24tYXBwJyxcbiAgICAgICAgJ1tjbGFzcy5rYnEtZHJvcGRvd24taXRlbV0nOiAnZmFsc2UnXG4gICAgfSxcbiAgICBpbXBvcnRzOiBbS2JxSWNvbl0sXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHsgcHJvdmlkZTogS0JRX1RJVExFX1RFWFRfUkVGLCB1c2VFeGlzdGluZzogS2JxQXBwU3dpdGNoZXJEcm9wZG93bkFwcCB9LFxuICAgICAgICB7IHByb3ZpZGU6IEticURyb3Bkb3duSXRlbSwgdXNlRXhpc3Rpbmc6IEticUFwcFN3aXRjaGVyRHJvcGRvd25BcHAgfVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgS2JxQXBwU3dpdGNoZXJEcm9wZG93bkFwcCBleHRlbmRzIEticURyb3Bkb3duSXRlbSB7XG4gICAgcHJpdmF0ZSBzYW5pdGl6ZXIgPSBpbmplY3QoRG9tU2FuaXRpemVyKTtcblxuICAgIEBJbnB1dCgna2JxLWFwcC1zd2l0Y2hlci1kcm9wZG93bi1hcHAnKSBhcHA6IEticUFwcFN3aXRjaGVyQXBwO1xuXG4gICAgZ2V0SWNvbihpY29uOiBzdHJpbmcgfCBudWxsKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0SHRtbChpY29uIHx8ICcnKTtcbiAgICB9XG59XG4iXX0=
89
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLXN3aXRjaGVyLWRyb3Bkb3duLWFwcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvYXBwLXN3aXRjaGVyL2FwcC1zd2l0Y2hlci1kcm9wZG93bi1hcHAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JHLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHlCQUF5QixDQUFDOzs7QUFHeEQsb0JBQW9CO0FBNkNwQixNQUFNLE9BQU8seUJBQTBCLFNBQVEsZUFBZTtJQTVDOUQ7O1FBNkNZLGNBQVMsR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7S0FPNUM7SUFIRyxPQUFPLENBQUMsSUFBbUI7UUFDdkIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLHVCQUF1QixDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQztJQUM5RCxDQUFDO2tJQVBRLHlCQUF5QjtzSEFBekIseUJBQXlCLHdQQUx2QjtZQUNQLEVBQUUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLFdBQVcsRUFBRSx5QkFBeUIsRUFBRTtZQUN2RSxFQUFFLE9BQU8sRUFBRSxlQUFlLEVBQUUsV0FBVyxFQUFFLHlCQUF5QixFQUFFO1NBQ3ZFLDBGQXJDUzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7S0EwQlQsb21LQTNCUyxhQUFhLDRJQUFFLGdCQUFnQjs7NEZBd0NoQyx5QkFBeUI7a0JBNUNyQyxTQUFTO2lDQUNNLElBQUksWUFDTixpQ0FBaUMsWUFDakMsMkJBQTJCLFdBQzVCLENBQUMsYUFBYSxFQUFFLGdCQUFnQixDQUFDLFlBQ2hDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztLQTBCVCxtQkFFZ0IsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSSxRQUMvQjt3QkFDRixLQUFLLEVBQUUsK0JBQStCO3dCQUN0QywyQkFBMkIsRUFBRSxPQUFPO3FCQUN2QyxhQUNVO3dCQUNQLEVBQUUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLFdBQVcsMkJBQTJCLEVBQUU7d0JBQ3ZFLEVBQUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxXQUFXLDJCQUEyQixFQUFFO3FCQUN2RTs4QkFLdUMsR0FBRztzQkFBMUMsS0FBSzt1QkFBQywrQkFBK0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ09wdGltaXplZEltYWdlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGluamVjdCwgSW5wdXQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbmltcG9ydCB7IEtCUV9USVRMRV9URVhUX1JFRiB9IGZyb20gJ0Brb29iaXEvY29tcG9uZW50cy9jb3JlJztcbmltcG9ydCB7IEticURyb3Bkb3duSXRlbSB9IGZyb20gJ0Brb29iaXEvY29tcG9uZW50cy9kcm9wZG93bic7XG5pbXBvcnQgeyBLYnFJY29uTW9kdWxlIH0gZnJvbSAnQGtvb2JpcS9jb21wb25lbnRzL2ljb24nO1xuaW1wb3J0IHsgS2JxQXBwU3dpdGNoZXJBcHAgfSBmcm9tICcuL2FwcC1zd2l0Y2hlcic7XG5cbi8qKiBAZG9jcy1wcml2YXRlICovXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiAnW2ticS1hcHAtc3dpdGNoZXItZHJvcGRvd24tYXBwXScsXG4gICAgZXhwb3J0QXM6ICdrYnFBcHBTd2l0Y2hlckRyb3Bkb3duQXBwJyxcbiAgICBpbXBvcnRzOiBbS2JxSWNvbk1vZHVsZSwgTmdPcHRpbWl6ZWRJbWFnZV0sXG4gICAgdGVtcGxhdGU6IGBcbiAgICAgICAgPGkgY2xhc3M9XCJrYnEga2JxLWljb25cIiBbY2xhc3NOYW1lXT1cIlwiPjwvaT5cbiAgICAgICAgQGlmIChhcHAuaWNvbikge1xuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJrYnEtYXBwLXN3aXRjaGVyLWRyb3Bkb3duLWFwcF9faWNvblwiIFtpbm5lckh0bWxdPVwiZ2V0SWNvbihhcHAuaWNvbilcIj48L3NwYW4+XG4gICAgICAgIH0gQGVsc2UgaWYgKGFwcC5pY29uU3JjKSB7XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImticS1hcHAtc3dpdGNoZXItZHJvcGRvd24tYXBwX19pY29uXCI+XG4gICAgICAgICAgICAgICAgPGltZyB3aWR0aD1cIjI0XCIgaGVpZ2h0PVwiMjRcIiBhbHQ9XCJ7eyBhcHAudHlwZSB9fVwiIFtuZ1NyY109XCJhcHAuaWNvblNyY1wiIC8+XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIH1cblxuICAgICAgICA8ZGl2IGNsYXNzPVwia2JxLWFwcC1zd2l0Y2hlci1kcm9wZG93bi1hcHBfX2NvbnRhaW5lclwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImticS1hcHAtc3dpdGNoZXItZHJvcGRvd24tYXBwX19uYW1lXCI+XG4gICAgICAgICAgICAgICAgPHNwYW4+e3sgYXBwLm5hbWUgfX08L3NwYW4+XG5cbiAgICAgICAgICAgICAgICBAaWYgKGlzTmVzdGVkKSB7XG4gICAgICAgICAgICAgICAgICAgIDxpXG4gICAgICAgICAgICAgICAgICAgICAgICBrYnEtaWNvbj1cImticS1jaGV2cm9uLXJpZ2h0LXNfMTZcIlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJrYnEtYXBwLXN3aXRjaGVyLWRyb3Bkb3duLWl0ZW0tdHJpZ2dlcl9faWNvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbY29sb3JdPVwiY29tcG9uZW50Q29sb3JzLkNvbnRyYXN0RmFkZVwiXG4gICAgICAgICAgICAgICAgICAgID48L2k+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICBAaWYgKGFwcC5jYXB0aW9uKSB7XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImticS1hcHAtc3dpdGNoZXItZHJvcGRvd24tYXBwX19jYXB0aW9uXCI+e3sgYXBwLmNhcHRpb24gfX08L2Rpdj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgYCxcbiAgICBzdHlsZVVybHM6IFsnYXBwLXN3aXRjaGVyLWRyb3Bkb3duLWFwcC5zY3NzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBob3N0OiB7XG4gICAgICAgIGNsYXNzOiAna2JxLWFwcC1zd2l0Y2hlci1kcm9wZG93bi1hcHAnLFxuICAgICAgICAnW2NsYXNzLmticS1kcm9wZG93bi1pdGVtXSc6ICdmYWxzZSdcbiAgICB9LFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7IHByb3ZpZGU6IEtCUV9USVRMRV9URVhUX1JFRiwgdXNlRXhpc3Rpbmc6IEticUFwcFN3aXRjaGVyRHJvcGRvd25BcHAgfSxcbiAgICAgICAgeyBwcm92aWRlOiBLYnFEcm9wZG93bkl0ZW0sIHVzZUV4aXN0aW5nOiBLYnFBcHBTd2l0Y2hlckRyb3Bkb3duQXBwIH1cbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIEticUFwcFN3aXRjaGVyRHJvcGRvd25BcHAgZXh0ZW5kcyBLYnFEcm9wZG93bkl0ZW0ge1xuICAgIHByaXZhdGUgc2FuaXRpemVyID0gaW5qZWN0KERvbVNhbml0aXplcik7XG5cbiAgICBASW5wdXQoJ2ticS1hcHAtc3dpdGNoZXItZHJvcGRvd24tYXBwJykgYXBwOiBLYnFBcHBTd2l0Y2hlckFwcDtcblxuICAgIGdldEljb24oaWNvbjogc3RyaW5nIHwgbnVsbCkge1xuICAgICAgICByZXR1cm4gdGhpcy5zYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdEh0bWwoaWNvbiB8fCAnJyk7XG4gICAgfVxufVxuIl19
@@ -43,6 +43,7 @@ export function defaultGroupBy(app, groups, untyped) {
43
43
  name: appType,
44
44
  aliases: [app],
45
45
  icon: app.icon,
46
+ iconSrc: app.iconSrc,
46
47
  id: ''
47
48
  };
48
49
  }
@@ -446,4 +447,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
446
447
  }], selectedAppChange: [{
447
448
  type: Output
448
449
  }] } });
449
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLXN3aXRjaGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9hcHAtc3dpdGNoZXIvYXBwLXN3aXRjaGVyLnRzIiwiLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9hcHAtc3dpdGNoZXIvYXBwLXN3aXRjaGVyLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDOUQsT0FBTyxFQUdILE9BQU8sRUFHVixNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdEQsT0FBTyxFQUdILHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsU0FBUyxFQUNULFlBQVksRUFDWixjQUFjLEVBQ2QsS0FBSyxFQUVMLE1BQU0sRUFHTixTQUFTLEVBQ1QsaUJBQWlCLEVBQ2pCLGdCQUFnQixFQUNoQixNQUFNLEVBQ04sZUFBZSxFQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQy9FLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMxRCxPQUFPLEVBQ0gsa0JBQWtCLEVBQ2xCLGVBQWUsRUFDZixRQUFRLEVBQ1IsZUFBZSxFQUNmLG1CQUFtQixFQUNuQixlQUFlLEVBQ2YsVUFBVSxFQUNWLGFBQWEsRUFDYixpQkFBaUIsRUFDakIsY0FBYyxFQUNqQixNQUFNLHlCQUF5QixDQUFDO0FBQ2pDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzlELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxrQkFBa0IsRUFBRSxN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QUN2QyxJQUFJLENBQUMsVUFBVyxDQUFDLGFBQWEsRUFBRSxFQUNoQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxFQUFFLENBQ25DLENBQUM7SUFDTixDQUFDO2tJQWpUUSxxQkFBcUI7c0hBQXJCLHFCQUFxQiw0TUF5RFYsZUFBZSxzSEEwR2YsZ0JBQWdCOzs0RkFuSzNCLHFCQUFxQjtrQkFYakMsU0FBUzttQkFBQztvQkFDUCxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFLGtCQUFrQjtvQkFDNUIsUUFBUSxFQUFFLGdCQUFnQjtvQkFDMUIsSUFBSSxFQUFFO3dCQUNGLCtCQUErQixFQUFFLFFBQVE7d0JBQ3pDLG9CQUFvQixFQUFFLDJCQUEyQjt3QkFDakQsV0FBVyxFQUFFLHdCQUF3Qjt3QkFDckMsWUFBWSxFQUFFLG1CQUFtQjtxQkFDcEM7aUJBQ0o7OEJBaURZLFdBQVc7c0JBQW5CLEtBQUs7Z0JBRzRCLFNBQVM7c0JBQTFDLEtBQUs7dUJBQUMseUJBQXlCO2dCQUd2QixhQUFhO3NCQUFyQixLQUFLO2dCQUdpQyxNQUFNO3NCQUE1QyxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRTtnQkFJakMsS0FBSztzQkFEUixLQUFLO2dCQWdDRixJQUFJO3NCQURQLEtBQUs7Z0JBc0NGLE9BQU87c0JBRFYsS0FBSztnQkFtQkYsWUFBWTtzQkFEZixLQUFLO2dCQWtCRixRQUFRO3NCQURYLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBbUJDLGVBQWU7c0JBQXJELE1BQU07dUJBQUMsb0JBQW9CO2dCQUdTLGFBQWE7c0JBQWpELE1BQU07dUJBQUMsa0JBQWtCO2dCQUdQLGtCQUFrQjtzQkFBcEMsTUFBTTtnQkFFWSxpQkFBaUI7c0JBQW5DLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuaW1wb3J0IHtcbiAgICBDZGtTY3JvbGxhYmxlLFxuICAgIEZsZXhpYmxlQ29ubmVjdGVkUG9zaXRpb25TdHJhdGVneSxcbiAgICBPdmVybGF5LFxuICAgIE92ZXJsYXlDb25maWcsXG4gICAgU2Nyb2xsU3RyYXRlZ3lcbn0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHsgQXN5bmNQaXBlLCBKc29uUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICAgIEFmdGVyQ29udGVudEluaXQsXG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDb21wb25lbnQsXG4gICAgRGlyZWN0aXZlLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBJbmplY3Rpb25Ub2tlbixcbiAgICBJbnB1dCxcbiAgICBPbkluaXQsXG4gICAgT3V0cHV0LFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIFR5cGUsXG4gICAgVmlld0NoaWxkLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uLFxuICAgIGJvb2xlYW5BdHRyaWJ1dGUsXG4gICAgaW5qZWN0LFxuICAgIG51bWJlckF0dHJpYnV0ZVxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IEZvcm1Db250cm9sLCBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEticUJhZGdlTW9kdWxlIH0gZnJvbSAnQGtvb2JpcS9jb21wb25lbnRzL2JhZGdlJztcbmltcG9ydCB7XG4gICAgS0JRX0xPQ0FMRV9TRVJWSUNFLFxuICAgIEticU9wdGlvbk1vZHVsZSxcbiAgICBLYnFQb3BVcCxcbiAgICBLYnFQb3BVcFRyaWdnZXIsXG4gICAgUE9TSVRJT05fVE9fQ1NTX01BUCxcbiAgICBQb3BVcFBsYWNlbWVudHMsXG4gICAgUG9wVXBTaXplcyxcbiAgICBQb3BVcFRyaWdnZXJzLFxuICAgIGFwcGx5UG9wdXBNYXJnaW5zLFxuICAgIHJ1UlVMb2NhbGVEYXRhXG59IGZyb20gJ0Brb29iaXEvY29tcG9uZW50cy9jb3JlJztcbmltcG9ydCB7IEticURpdmlkZXJNb2R1bGUgfSBmcm9tICdAa29vYmlxL2NvbXBvbmVudHMvZGl2aWRlcic7XG5pbXBvcnQgeyBLYnFEcm9wZG93bk1vZHVsZSwgS2JxRHJvcGRvd25UcmlnZ2VyIH0gZnJvbSAnQGtvb2JpcS9jb21wb25lbnRzL2Ryb3Bkb3duJztcbmltcG9ydCB7IEticUZvcm1GaWVsZE1vZHVsZSB9IGZyb20gJ0Brb29iaXEvY29tcG9uZW50cy9mb3JtLWZpZWxkJztcbmltcG9ydCB7IEticUljb25Nb2R1bGUgfSBmcm9tICdAa29vYmlxL2NvbXBvbmVudHMvaWNvbic7XG5pbXBvcnQgeyBLYnFJbnB1dCwgS2JxSW5wdXRNb2R1bGUgfSBmcm9tICdAa29vYmlxL2NvbXBvbmVudHMvaW5wdXQnO1xuaW1wb3J0IHsgZGVmYXVsdE9mZnNldFlXaXRoQXJyb3cgfSBmcm9tICdAa29vYmlxL2NvbXBvbmVudHMvcG9wb3Zlcic7XG5pbXBvcnQgeyBLYnFTY3JvbGxiYXJNb2R1bGUgfSBmcm9tICdAa29vYmlxL2NvbXBvbmVudHMvc2Nyb2xsYmFyJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiwgbWVyZ2UgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGticUFwcFN3aXRjaGVyQW5pbWF0aW9ucyB9IGZyb20gJy4vYXBwLXN3aXRjaGVyLWFuaW1hdGlvbnMnO1xuaW1wb3J0IHsgS2JxQXBwU3dpdGNoZXJEcm9wZG93bkFwcCB9IGZyb20gJy4vYXBwLXN3aXRjaGVyLWRyb3Bkb3duLWFwcCc7XG5pbXBvcnQgeyBLYnFBcHBTd2l0Y2hlckRyb3Bkb3duU2l0ZSB9IGZyb20gJy4vYXBwLXN3aXRjaGVyLWRyb3Bkb3duLXNpdGUnO1xuaW1wb3J0IHsgS2JxQXBwU3dpdGNoZXJMaXN0SXRlbSB9IGZyb20gJy4va2JxLWFwcC1zd2l0Y2hlci1saXN0LWl0ZW0nO1xuXG5leHBvcnQgaW50ZXJmYWNlIEticUFwcFN3aXRjaGVyQXBwIHtcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgaWQ6IHN0cmluZyB8IG51bWJlcjtcbiAgICB0eXBlPzogc3RyaW5nIHwgbnVtYmVyO1xuICAgIGljb246IHN0cmluZztcbiAgICBjYXB0aW9uPzogc3RyaW5nO1xuICAgIGFsaWFzZXM/OiBLYnFBcHBTd2l0Y2hlckFwcFtdO1xuICAgIGxpbms/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgS2JxQXBwU3dpdGNoZXJTaXRlIHtcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgaWQ6IHN0cmluZyB8IG51bWJlcjtcbiAgICBzdGF0dXM/OiBzdHJpbmc7XG4gICAgaWNvbj86IHN0cmluZztcbiAgICBhcHBzOiBLYnFBcHBTd2l0Y2hlckFwcFtdO1xufVxuXG4vKiogQGRvY3MtcHJpdmF0ZSAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRlZmF1bHRHcm91cEJ5KFxuICAgIGFwcDogS2JxQXBwU3dpdGNoZXJBcHAsXG4gICAgZ3JvdXBzOiBSZWNvcmQ8c3RyaW5nLCBLYnFBcHBTd2l0Y2hlckFwcD4sXG4gICAgdW50eXBlZDogS2JxQXBwU3dpdGNoZXJBcHBbXVxuKSB7XG4gICAgaWYgKCFhcHAudHlwZSkge1xuICAgICAgICB1bnR5cGVkLnB1c2goYXBwKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBhcHBUeXBlID0gYXBwLnR5cGUudG9TdHJpbmcoKTtcblxuICAgICAgICBpZiAoZ3JvdXBzW2FwcFR5cGVdKSB7XG4gICAgICAgICAgICBncm91cHNbYXBwVHlwZV0uYWxpYXNlcyEucHVzaChhcHApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZ3JvdXBzW2FwcFR5cGVdID0ge1xuICAgICAgICAgICAgICAgIG5hbWU6IGFwcFR5cGUsXG4gICAgICAgICAgICAgICAgYWxpYXNlczogW2FwcF0sXG4gICAgICAgICAgICAgICAgaWNvbjogYXBwLmljb24sXG4gICAgICAgICAgICAgICAgaWQ6ICcnXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY29uc3QgS0JRX01JTl9OVU1CRVJfT0ZfQVBQU19UT19FTkFCTEVfU0VBUkNIOiBudW1iZXIgPSA3O1xuZXhwb3J0IGNvbnN0IEtCUV9NSU5fTlVNQkVSX09GX0FQUFNfVE9fRU5BQkxFX0dST1VQSU5HOiBudW1iZXIgPSAzO1xuXG4vKiogQGRvY3MtcHJpdmF0ZSAqL1xuZXhwb3J0IGNvbnN0IEtCUV9BUFBfU1dJVENIRVJfU0NST0xMX1NUUkFURUdZID0gbmV3IEluamVjdGlvblRva2VuPCgpID0+IFNjcm9sbFN0cmF0ZWd5PihcbiAgICAna2JxLWFwcC1zd2l0Y2hlci1zY3JvbGwtc3RyYXRlZ3knXG4pO1xuXG4vKiogQGRvY3MtcHJpdmF0ZSAqL1xuZXhwb3J0IGZ1bmN0aW9uIGticUFwcFN3aXRjaGVyU2Nyb2xsU3RyYXRlZ3lGYWN0b3J5KG92ZXJsYXk6IE92ZXJsYXkpOiAoKSA9PiBTY3JvbGxTdHJhdGVneSB7XG4gICAgcmV0dXJuICgpID0+IG92ZXJsYXkuc2Nyb2xsU3RyYXRlZ2llcy5yZXBvc2l0aW9uKHsgc2Nyb2xsVGhyb3R0bGU6IDIwIH0pO1xufVxuXG4vKiogQGRvY3MtcHJpdmF0ZSAqL1xuZXhwb3J0IGNvbnN0IEtCUV9BUFBfU1dJVENIRVJfU0NST0xMX1NUUkFURUdZX0ZBQ1RPUllfUFJPVklERVIgPSB7XG4gICAgcHJvdmlkZTogS0JRX0FQUF9TV0lUQ0hFUl9TQ1JPTExfU1RSQVRFR1ksXG4gICAgZGVwczogW092ZXJsYXldLFxuICAgIHVzZUZhY3Rvcnk6IGticUFwcFN3aXRjaGVyU2Nyb2xsU3RyYXRlZ3lGYWN0b3J5XG59O1xuXG4vKiogZGVmYXVsdCBjb25maWd1cmF0aW9uIG9mIGFwcC1zd2l0Y2hlciAqL1xuLyoqIEBkb2NzLXByaXZhdGUgKi9cbmV4cG9ydCBjb25zdCBLQlFfQVBQX1NXSVRDSEVSX0RFRkFVTFRfQ09ORklHVVJBVElPTiA9IHJ1UlVMb2NhbGVEYXRhLmFwcFN3aXRjaGVyO1xuXG4vKiogSW5qZWN0aW9uIFRva2VuIGZvciBwcm92aWRpbmcgY29uZmlndXJhdGlvbiBvZiBhcHAtc3dpdGNoZXIgKi9cbi8qKiBAZG9jcy1wcml2YXRlICovXG5leHBvcnQgY29uc3QgS0JRX0FQUF9TV0lUQ0hFUl9DT05GSUdVUkFUSU9OID0gbmV3IEluamVjdGlvblRva2VuKCdLYnFBcHBTd2l0Y2hlckNvbmZpZ3VyYXRpb24nKTtcblxuLyoqIEBkb2NzLXByaXZhdGUgKi9cbkBDb21wb25lbnQoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgc2VsZWN0b3I6ICdrYnEtYXBwLXN3aXRjaGVyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vYXBwLXN3aXRjaGVyLmh0bWwnLFxuICAgIHByZXNlcnZlV2hpdGVzcGFjZXM6IGZhbHNlLFxuICAgIHN0eWxlVXJsczogWycuL2FwcC1zd2l0Y2hlci5zY3NzJ10sXG4gICAgaG9zdDoge1xuICAgICAgICBjbGFzczogJ2ticS1hcHAtc3dpdGNoZXInXG4gICAgfSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgQXN5bmNQaXBlLFxuICAgICAgICBGb3Jtc01vZHVsZSxcbiAgICAgICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICAgICAgS2JxRm9ybUZpZWxkTW9kdWxlLFxuICAgICAgICBLYnFJbnB1dE1vZHVsZSxcbiAgICAgICAgS2JxSWNvbk1vZHVsZSxcbiAgICAgICAgS2JxRGl2aWRlck1vZHVsZSxcbiAgICAgICAgS2JxQmFkZ2VNb2R1bGUsXG4gICAgICAgIEticURyb3Bkb3duTW9kdWxlLFxuICAgICAgICBLYnFTY3JvbGxiYXJNb2R1bGUsXG4gICAgICAgIEticU9wdGlvbk1vZHVsZSxcbiAgICAgICAgS2JxQXBwU3dpdGNoZXJEcm9wZG93bkFwcCxcbiAgICAgICAgS2JxQXBwU3dpdGNoZXJEcm9wZG93blNpdGUsXG4gICAgICAgIEticUFwcFN3aXRjaGVyTGlzdEl0ZW0sXG4gICAgICAgIEpzb25QaXBlXG4gICAgXSxcbiAgICBhbmltYXRpb25zOiBba2JxQXBwU3dpdGNoZXJBbmltYXRpb25zLnN0YXRlXVxufSlcbmV4cG9ydCBjbGFzcyBLYnFBcHBTd2l0Y2hlckNvbXBvbmVudCBleHRlbmRzIEticVBvcFVwIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG4gICAgLyoqIEBkb2NzLXByaXZhdGUgKi9cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgbG9jYWxlU2VydmljZSA9IGluamVjdChLQlFfTE9DQUxFX1NFUlZJQ0UsIHsgb3B0aW9uYWw6IHRydWUgfSk7XG5cbiAgICByZWFkb25seSBleHRlcm5hbENvbmZpZ3VyYXRpb24gPSBpbmplY3QoS0JRX0FQUF9TV0lUQ0hFUl9DT05GSUdVUkFUSU9OLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuXG4gICAgY29uZmlndXJhdGlvbjtcblxuICAgIC8qKiBsb2NhbGl6ZWQgZGF0YVxuICAgICAqIEBkb2NzLXByaXZhdGUgKi9cbiAgICBnZXQgbG9jYWxlRGF0YSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29uZmlndXJhdGlvbjtcbiAgICB9XG5cbiAgICAvKiogQGRvY3MtcHJpdmF0ZSAqL1xuICAgIHJlYWRvbmx5IHNlYXJjaENvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woJycpO1xuXG4gICAgLyoqIEBkb2NzLXByaXZhdGUgKi9cbiAgICBmaWx0ZXJlZFNpdGVzOiBLYnFBcHBTd2l0Y2hlclNpdGVbXTtcblxuICAgIC8qKiBAZG9jcy1wcml2YXRlICovXG4gICAgcHJlZml4ID0gJ2ticS1hcHAtc3dpdGNoZXInO1xuXG4gICAgLyoqIEBkb2NzLXByaXZhdGUgKi9cbiAgICB0cmlnZ2VyOiBLYnFBcHBTd2l0Y2hlclRyaWdnZXI7XG5cbiAgICAvKiogQGRvY3MtcHJpdmF0ZSAqL1xuICAgIGlzVHJhcEZvY3VzOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICAvKiogQGRvY3MtcHJpdmF0ZSAqL1xuICAgIHByb3RlY3RlZCBhY3RpdmVTaXRlOiBLYnFBcHBTd2l0Y2hlclNpdGU7XG4gICAgLyoqIEBkb2NzLXByaXZhdGUgKi9cbiAgICBwcm90ZWN0ZWQgYWN0aXZlQXBwOiBLYnFBcHBTd2l0Y2hlckFwcDtcblxuICAgIC8qKiBAZG9jcy1wcml2YXRlICovXG4gICAgQFZpZXdDaGlsZChLYnFJbnB1dCkgaW5wdXQ6IEticUlucHV0O1xuICAgIC8qKiBAZG9jcy1wcml2YXRlICovXG4gICAgQFZpZXdDaGlsZCgnb3RoZXJTaXRlcycpIG90aGVyU2l0ZXM6IEticURyb3Bkb3duVHJpZ2dlcjtcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcigpO1xuXG4gICAgICAgIHRoaXMubG9jYWxlU2VydmljZT8uY2hhbmdlcy5waXBlKHRha2VVbnRpbERlc3Ryb3llZCgpKS5zdWJzY3JpYmUodGhpcy51cGRhdGVMb2NhbGVQYXJhbXMpO1xuXG4gICAgICAgIGlmICghdGhpcy5sb2NhbGVTZXJ2aWNlKSB7XG4gICAgICAgICAgICB0aGlzLmluaXREZWZhdWx0UGFyYW1zKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgICAgIGlmICh0aGlzLmlucHV0KSB7XG4gICAgICAgICAgICB0aGlzLmlucHV0LmZvY3VzKCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnZpc2libGVDaGFuZ2Uuc3Vic2NyaWJlKChzdGF0ZSkgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMub2Zmc2V0ICE9PSBudWxsICYmIHN0YXRlKSB7XG4gICAgICAgICAgICAgICAgYXBwbHlQb3B1cE1hcmdpbnMoXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIsXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgICAgICAgICAgICAgICB0aGlzLnByZWZpeCxcbiAgICAgICAgICAgICAgICAgICAgYCR7dGhpcy5vZmZzZXQhLnRvU3RyaW5nKCl9cHhgXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5zZWFyY2hDb250cm9sLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoKHZhbHVlKSA9PiAodGhpcy5maWx0ZXJlZFNpdGVzID0gdGhpcy5maWx0ZXJTaXRlcyh2YWx1ZSkpKTtcbiAgICB9XG5cbiAgICAvKiogQGRvY3MtcHJpdmF0ZSAqL1xuICAgIHVwZGF0ZUNsYXNzTWFwKHBsYWNlbWVudDogc3RyaW5nLCBjdXN0b21DbGFzczogc3RyaW5nLCBzaXplOiBQb3BVcFNpemVzKSB7XG4gICAgICAgIHN1cGVyLnVwZGF0ZUNsYXNzTWFwKHBsYWNlbWVudCwgY3VzdG9tQ2xhc3MsIHsgW2Ake3RoaXMucHJlZml4fV8ke3NpemV9YF06ICEhc2l6ZSB9KTtcbiAgICB9XG5cbiAgICAvKiogQGRvY3MtcHJpdmF0ZSAqL1xuICAgIHVwZGF0ZVRyYXBGb2N1cyhpc1RyYXBGb2N1czogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLmlzVHJhcEZvY3VzID0gaXNUcmFwRm9jdXM7XG4gICAgfVxuXG4gICAgLyoqIEBkb2NzLXByaXZhdGUgKi9cbiAgICBlc2NhcGVIYW5kbGVyKCkge1xuICAgICAgICB0aGlzLmhpZGUoMCk7XG4gICAgfVxuXG4gICAgLyoqIEBkb2NzLXByaXZhdGUgKi9cbiAgICBzZWxlY3RBcHBJblNpdGUoc2l0ZTogS2JxQXBwU3dpdGNoZXJTaXRlLCBhcHA6IEticUFwcFN3aXRjaGVyQXBwKSB7XG4gICAgICAgIHRoaXMudHJpZ2dlci5zZWxlY3RlZFNpdGUgPSBzaXRlO1xuICAgICAgICB0aGlzLnRyaWdnZXIuc2VsZWN0ZWRBcHAgPSBhcHA7XG5cbiAgICAgICAgdGhpcy50cmlnZ2VyLnNlbGVjdGVkU2l0ZUNoYW5nZS5lbWl0KHNpdGUpO1xuICAgICAgICB0aGlzLnRyaWdnZXIuc2VsZWN0ZWRBcHBDaGFuZ2UuZW1pdChhcHApO1xuICAgIH1cblxuICAgIHByaXZhdGUgZmlsdGVyU2l0ZXMocXVlcnk6IHN0cmluZyB8IG51bGwpOiBLYnFBcHBTd2l0Y2hlclNpdGVbXSB7XG4gICAgICAgIGNvbnN0IGZpbHRlcmVkU2l0ZXMgPSBzdHJ1Y3R1cmVkQ2xvbmUodGhpcy50cmlnZ2VyLm9yaWdpbmFsU2l0ZXMpO1xuXG4gICAgICAgIHJldHVybiBxdWVyeVxuICAgICAgICAgICAgPyBmaWx0ZXJlZFNpdGVzLmZpbHRlcigoc2l0ZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgY29uc3QgZmlsdGVyZWRBcHBzID0gc2l0ZS5hcHBzLmZpbHRlcigoYXBwKSA9PiBhcHAubmFtZS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHF1ZXJ5LnRvTG93ZXJDYXNlKCkpKTtcblxuICAgICAgICAgICAgICAgICAgaWYgKGZpbHRlcmVkQXBwcy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgICBzaXRlLmFwcHMgPSBmaWx0ZXJlZEFwcHM7XG5cbiAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgOiBmaWx0ZXJlZFNpdGVzO1xuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlTG9jYWxlUGFyYW1zID0gKCkgPT4ge1xuICAgICAgICB0aGlzLmNvbmZpZ3VyYXRpb24gPSB0aGlzLmV4dGVybmFsQ29uZmlndXJhdGlvbiB8fCB0aGlzLmxvY2FsZVNlcnZpY2U/LmdldFBhcmFtcygnYXBwU3dpdGNoZXInKTtcblxuICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgIH07XG5cbiAgICBwcml2YXRlIGluaXREZWZhdWx0UGFyYW1zKCkge1xuICAgICAgICB0aGlzLmNvbmZpZ3VyYXRpb24gPSBLQlFfQVBQX1NXSVRDSEVSX0RFRkFVTFRfQ09ORklHVVJBVElPTjtcbiAgICB9XG59XG5cbkBEaXJlY3RpdmUoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgc2VsZWN0b3I6ICdba2JxQXBwU3dpdGNoZXJdJyxcbiAgICBleHBvcnRBczogJ2ticUFwcFN3aXRjaGVyJyxcbiAgICBob3N0OiB7XG4gICAgICAgICdbY2xhc3Mua2JxLWFwcC1zd2l0Y2hlcl9vcGVuXSc6ICdpc09wZW4nLFxuICAgICAgICAnW2NsYXNzLmticS1hY3RpdmVdJzogJ2hhc0NsaWNrVHJpZ2dlciAmJiBpc09wZW4nLFxuICAgICAgICAnKGtleWRvd24pJzogJ2tleWRvd25IYW5kbGVyKCRldmVudCknLFxuICAgICAgICAnKHRvdWNoZW5kKSc6ICd0b3VjaGVuZEhhbmRsZXIoKSdcbiAgICB9XG59KVxuZXhwb3J0IGNsYXNzIEticUFwcFN3aXRjaGVyVHJpZ2dlclxuICAgIGV4dGVuZHMgS2JxUG9wVXBUcmlnZ2VyPEticUFwcFN3aXRjaGVyQ29tcG9uZW50PlxuICAgIGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCwgT25Jbml0XG57XG4gICAgLyoqIEBkb2NzLXByaXZhdGUgKi9cbiAgICBwcm90ZWN0ZWQgc2Nyb2xsU3RyYXRlZ3k6ICgpID0+IFNjcm9sbFN0cmF0ZWd5ID0gaW5qZWN0KEtCUV9BUFBfU1dJVENIRVJfU0NST0xMX1NUUkFURUdZKTtcblxuICAgIC8vIG5vdCB1c2VkXG4gICAgLyoqIEBkb2NzLXByaXZhdGUgKi9cbiAgICBhcnJvdzogYm9vbGVhbiA9IGZhbHNlO1xuICAgIC8qKiBAZG9jcy1wcml2YXRlICovXG4gICAgY3VzdG9tQ2xhc3M6IHN0cmluZztcbiAgICAvKiogQGRvY3MtcHJpdmF0ZSAqL1xuICAgIHByaXZhdGUgaGFzQmFja2Ryb3A6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICAvKiogQGRvY3MtcHJpdmF0ZSAqL1xuICAgIHByaXZhdGUgc2l6ZTogUG9wVXBTaXplcyA9IFBvcFVwU2l6ZXMuTWVkaXVtO1xuICAgIC8qKiBAZG9jcy1wcml2YXRlICovXG4gICAgY29udGVudDogc3RyaW5nIHwgVGVtcGxhdGVSZWY8YW55PjtcbiAgICAvKiogQGRvY3MtcHJpdmF0ZSAqL1xuICAgIGhlYWRlcjogc3RyaW5nIHwgVGVtcGxhdGVSZWY8YW55PjtcbiAgICAvKiogQGRvY3MtcHJpdmF0ZSAqL1xuICAgIGZvb3Rlcjogc3RyaW5nIHwgVGVtcGxhdGVSZWY8YW55PjtcbiAgICAvKiogQGRvY3MtcHJpdmF0ZSAqL1xuICAgIHByaXZhdGUgY2xvc2VPblNjcm9sbDogbnVsbDtcblxuICAgIC8qKiBXaGV0aGVyIHNlYXJjaCBpcyB1c2VkIG9yIG5vdCAqL1xuICAgIGdldCB3aXRoU2VhcmNoKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5hcHBzQ291bnQgPiBLQlFfTUlOX05VTUJFUl9PRl9BUFBTX1RPX0VOQUJMRV9TRUFSQ0g7XG4gICAgfVxuXG4gICAgLyoqIE51bWJlciBvZiBhcHBsaWNhdGlvbnMgdG8gY2hvb3NlIGZyb21cbiAgICAgKiBAZG9jcy1wcml2YXRlICovXG4gICAgZ2V0IGFwcHNDb3VudCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5vcmlnaW5hbFNpdGVzLnJlZHVjZSgoYWNjLCBzaXRlKSA9PiBhY2MgKyBzaXRlLmFwcHMubGVuZ3RoLCAwKTtcbiAgICB9XG5cbiAgICAvKiogV2hldGhlciB0aGUgc2l0ZXMgYXJlIHVzZWQgb3Igbm90XG4gICAgICogQGRvY3MtcHJpdmF0ZSAqL1xuICAgIGdldCBzaXRlc01vZGUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLm9yaWdpbmFsU2l0ZXMubGVuZ3RoID4gMTtcbiAgICB9XG5cbiAgICAvKiogQGRvY3MtcHJpdmF0ZSAqL1xuICAgIGdldCBjdXJyZW50QXBwcygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2l0ZXNNb2RlID8gdGhpcy5zZWxlY3RlZFNpdGUuYXBwcyA6IHRoaXMuX3BhcnNlZEFwcHM7XG4gICAgfVxuXG4gICAgLyoqIFNlbGVjdGVkIGFwcGxpY2F0aW9uICovXG4gICAgQElucHV0KCkgc2VsZWN0ZWRBcHA6IEticUFwcFN3aXRjaGVyQXBwO1xuXG4gICAgLyoqIFBsYWNlbWVudCBvZiBwb3BVcCAqL1xuICAgIEBJbnB1dCgna2JxQXBwU3dpdGNoZXJQbGFjZW1lbnQnKSBwbGFjZW1lbnQ6IFBvcFVwUGxhY2VtZW50cyA9IFBvcFVwUGxhY2VtZW50cy5Cb3R0b21MZWZ0O1xuXG4gICAgLyoqIENsYXNzIHRoYXQgd2lsbCBiZSB1c2VkIGluIHRoZSBiYWNrZ3JvdW5kICovXG4gICAgQElucHV0KCkgYmFja2Ryb3BDbGFzczogc3RyaW5nID0gJ2Nkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wJztcblxuICAgIC8qKiBPZmZzZXQgb2YgcG9wVXAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSB9KSBvZmZzZXQ6IG51bWJlciB8IG51bGwgPSBkZWZhdWx0T2Zmc2V0WVdpdGhBcnJvdztcblxuICAgIC8qKiBBcnJheSBvZiBzaXRlcyAqL1xuICAgIEBJbnB1dCgpXG4gICAgZ2V0IHNpdGVzKCk6IEticUFwcFN3aXRjaGVyU2l0ZVtdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3BhcnNlZFNpdGVzO1xuICAgIH1cblxuICAgIHNldCBzaXRlcyh2YWx1ZTogS2JxQXBwU3dpdGNoZXJTaXRlW10pIHtcbiAgICAgICAgdGhpcy5vcmlnaW5hbFNpdGVzID0gdmFsdWU7XG5cbiAgICAgICAgaWYgKHRoaXMub3JpZ2luYWxTaXRlcy5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgICAgIHRoaXMuX3BhcnNlZEFwcHMgPSB0aGlzLm1ha2VHcm91cHNGb3JBcHBzKFxuICAgICAgICAgICAgICAgIHRoaXMub3JpZ2luYWxTaXRlc1swXS5hcHBzLFxuICAgICAgICAgICAgICAgIEtCUV9NSU5fTlVNQkVSX09GX0FQUFNfVE9fRU5BQkxFX0dST1VQSU5HXG4gICAgICAgICAgICApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fcGFyc2VkU2l0ZXMgPSBbXTtcblxuICAgICAgICAgICAgdmFsdWUuZm9yRWFjaCgoc2l0ZTogS2JxQXBwU3dpdGNoZXJTaXRlKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgbmV3U2l0ZTogS2JxQXBwU3dpdGNoZXJTaXRlID0geyAuLi5zaXRlLCBhcHBzOiBbXSB9O1xuXG4gICAgICAgICAgICAgICAgbmV3U2l0ZS5hcHBzID0gdGhpcy5tYWtlR3JvdXBzRm9yQXBwcyhzaXRlLmFwcHMsIEtCUV9NSU5fTlVNQkVSX09GX0FQUFNfVE9fRU5BQkxFX0dST1VQSU5HKTtcblxuICAgICAgICAgICAgICAgIHRoaXMuX3BhcnNlZFNpdGVzLnB1c2gobmV3U2l0ZSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgX3BhcnNlZFNpdGVzOiBLYnFBcHBTd2l0Y2hlclNpdGVbXTtcblxuICAgIC8qKlxuICAgICAqIEBkZXByZWNhdGVkIFdpbGwgYmUgcmVtb3ZlZCBpbiBuZXh0IG1ham9yIHJlbGVhc2UsIHVzZSBgc2l0ZXNgIHdpdGggb25lIGVsZW1lbnQgaW5zdGVhZC5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGdldCBhcHBzKCk6IEticUFwcFN3aXRjaGVyQXBwW10ge1xuICAgICAgICByZXR1cm4gdGhpcy5fcGFyc2VkQXBwcztcbiAgICB9XG5cbiAgICBzZXQgYXBwcyhhcHBzOiBLYnFBcHBTd2l0Y2hlckFwcFtdKSB7XG4gICAgICAgIHRoaXMub3JpZ2luYWxBcHBzID0gYXBwcztcblxuICAgICAgICB0aGlzLl9wYXJzZWRBcHBzID0gdGhpcy5tYWtlR3JvdXBzRm9yQXBwcyh0aGlzLm9yaWdpbmFsQXBwcywgS0JRX01JTl9OVU1CRVJfT0ZfQVBQU19UT19FTkFCTEVfR1JPVVBJTkcpO1xuICAgIH1cblxuICAgIHByaXZhdGUgbWFrZUdyb3Vwc0ZvckFwcHMoYXBwczogS2JxQXBwU3dpdGNoZXJBcHBbXSwgbWluQXBwc0Zvckdyb3VwaW5nOiBudW1iZXIpOiBLYnFBcHBTd2l0Y2hlckFwcFtdIHtcbiAgICAgICAgY29uc3QgZ3JvdXBzOiBSZWNvcmQ8c3RyaW5nLCBLYnFBcHBTd2l0Y2hlckFwcD4gPSB7fTtcbiAgICAgICAgY29uc3QgdW50eXBlZDogS2JxQXBwU3dpdGNoZXJBcHBbXSA9IFtdO1xuICAgICAgICBjb25zdCBncm91cGVkQXBwczogS2JxQXBwU3dpdGNoZXJBcHBbXSA9IFtdO1xuXG4gICAgICAgIGFwcHMuZm9yRWFjaCgoYXBwKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmdyb3VwQnkoYXBwLCBncm91cHMsIHVudHlwZWQpO1xuICAgICAgICB9KTtcblxuICAgICAgICBPYmplY3QudmFsdWVzKGdyb3VwcykuZm9yRWFjaCgoZ3JvdXApID0+IHtcbiAgICAgICAgICAgIGlmIChncm91cC5hbGlhc2VzICYmIGdyb3VwLmFsaWFzZXMubGVuZ3RoID4gbWluQXBwc0Zvckdyb3VwaW5nKSB7XG4gICAgICAgICAgICAgICAgZ3JvdXBlZEFwcHMucHVzaChncm91cCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHVudHlwZWQucHVzaCguLi5ncm91cC5hbGlhc2VzISk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGdyb3VwZWRBcHBzLnB1c2goLi4udW50eXBlZCk7XG5cbiAgICAgICAgcmV0dXJuIGdyb3VwZWRBcHBzO1xuICAgIH1cblxuICAgIHByaXZhdGUgX3BhcnNlZEFwcHM6IEticUFwcFN3aXRjaGVyQXBwW107XG5cbiAgICAvKiogRnVuY3Rpb24gdG8gZ3JvdXAgdGhlIGFwcHMgYnkgdHlwZS4gVGhlIGZpcnN0IGFyZ3VtZW50IGlzIGFuIGFwcCBvYmplY3Qgd2l0aCB0eXBlLlxuICAgICAqIFRoZSBzZWNvbmQgaXMgYSBncm91cHMgb2JqZWN0IGFuZCB0aGlyZCBpcyBhbiBhcnJheSBmb3IgdW50eXBlZCBhcHBzICovXG4gICAgQElucHV0KClcbiAgICBnZXQgZ3JvdXBCeSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2dyb3VwQnk7XG4gICAgfVxuXG4gICAgc2V0IGdyb3VwQnkoXG4gICAgICAgIGZuOiAoYXBwOiBLYnFBcHBTd2l0Y2hlckFwcCwgZ3JvdXBzOiBSZWNvcmQ8c3RyaW5nLCBLYnFBcHBTd2l0Y2hlckFwcD4sIHVudHlwZWQ6IEticUFwcFN3aXRjaGVyQXBwW10pID0+IHZvaWRcbiAgICApIHtcbiAgICAgICAgaWYgKHR5cGVvZiBmbiAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdUaGUgYXJndW1lbnQgbXVzdCBiZSBhIGZ1bmN0aW9uJyk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9ncm91cEJ5ID0gZm47XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfZ3JvdXBCeSA9IGRlZmF1bHRHcm91cEJ5O1xuXG4gICAgLyoqIFNlbGVjdGVkIHNpdGUgKi9cbiAgICBASW5wdXQoKVxuICAgIGdldCBzZWxlY3RlZFNpdGUoKTogS2JxQXBwU3dpdGNoZXJTaXRlIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3BhcnNlZFNlbGVjdGVkU2l0ZTtcbiAgICB9XG5cbiAgICBzZXQgc2VsZWN0ZWRTaXRlKHZhbHVlOiBLYnFBcHBTd2l0Y2hlclNpdGUpIHtcbiAgICAgICAgY29uc3Qgb3JpZ2luVmFsdWUgPSB0aGlzLm9yaWdpbmFsU2l0ZXMuZmluZCgoc2l0ZSkgPT4gdmFsdWUuaWQgPT09IHNpdGUuaWQpIGFzIEticUFwcFN3aXRjaGVyU2l0ZTtcbiAgICAgICAgY29uc3QgbmV3U2l0ZTogS2JxQXBwU3dpdGNoZXJTaXRlID0geyAuLi5vcmlnaW5WYWx1ZSwgYXBwczogW10gfTtcblxuICAgICAgICBuZXdTaXRlLmFwcHMgPSB0aGlzLm1ha2VHcm91cHNGb3JBcHBzKG9yaWdpblZhbHVlLmFwcHMsIEtCUV9NSU5fTlVNQkVSX09GX0FQUFNfVE9fRU5BQkxFX0dST1VQSU5HKTtcblxuICAgICAgICB0aGlzLl9wYXJzZWRTZWxlY3RlZFNpdGUgPSBuZXdTaXRlO1xuICAgIH1cblxuICAgIHByaXZhdGUgX3BhcnNlZFNlbGVjdGVkU2l0ZTogS2JxQXBwU3dpdGNoZXJTaXRlO1xuXG4gICAgLyoqIFdoZXRoZXIgdGhlIHRyaWdnZXIgaXMgZGlzYWJsZWQuICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pXG4gICAgZ2V0IGRpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fZGlzYWJsZWQ7XG4gICAgfVxuXG4gICAgc2V0IGRpc2FibGVkKHZhbHVlKSB7XG4gICAgICAgIHRoaXMuX2Rpc2FibGVkID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcblxuICAgICAgICBpZiAodGhpcy5fZGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHRoaXMuaGlkZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBkb2NzLXByaXZhdGUgKi9cbiAgICBnZXQgaGFzQ2xpY2tUcmlnZ2VyKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy50cmlnZ2VyLmluY2x1ZGVzKFBvcFVwVHJpZ2dlcnMuQ2xpY2spO1xuICAgIH1cblxuICAgIC8qKiBFbWl0cyBhIGNoYW5nZSBldmVudCB3aGVuZXZlciB0aGUgcGxhY2VtZW50IHN0YXRlIGNoYW5nZXMuICovXG4gICAgQE91dHB1dCgna2JxUGxhY2VtZW50Q2hhbmdlJykgcmVhZG9ubHkgcGxhY2VtZW50Q2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgLyoqIEVtaXRzIGEgY2hhbmdlIGV2ZW50IHdoZW5ldmVyIHRoZSB2aXNpYmxlIHN0YXRlIGNoYW5nZXMuICovXG4gICAgQE91dHB1dCgna2JxVmlzaWJsZUNoYW5nZScpIHJlYWRvbmx5IHZpc2libGVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgICAvKiogQGRvY3MtcHJpdmF0ZSAqL1xuICAgIEBPdXRwdXQoKSByZWFkb25seSBzZWxlY3RlZFNpdGVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPEticUFwcFN3aXRjaGVyU2l0ZT4oKTtcbiAgICAvKiogQGRvY3MtcHJpdmF0ZSAqL1xuICAgIEBPdXRwdXQoKSByZWFkb25seSBzZWxlY3RlZEFwcENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8S2JxQXBwU3dpdGNoZXJBcHA+KCk7XG5cbiAgICAvKiogQGRvY3MtcHJpdmF0ZSAqL1xuICAgIHRyaWdnZXI6IHN0cmluZyA9IGAke1BvcFVwVHJpZ2dlcnMuQ2xpY2t9LCAke1BvcFVwVHJpZ2dlcnMuS2V5ZG93bn1gO1xuXG4gICAgLyoqIEBkb2NzLXByaXZhdGUgKi9cbiAgICBvcmlnaW5hbFNpdGVzOiBLYnFBcHBTd2l0Y2hlclNpdGVbXTtcbiAgICAvKiogQGRvY3MtcHJpdmF0ZSAqL1xuICAgIG9yaWdpbmFsQXBwczogS2JxQXBwU3dpdGNoZXJBcHBbXTtcblxuICAgIC8qKiBAZG9jcy1wcml2YXRlICovXG4gICAgcHJvdGVjdGVkIG9yaWdpblNlbGVjdG9yID0gJy5rYnEtYXBwLXN3aXRjaGVyJztcblxuICAgIC8qKiBAZG9jcy1wcml2YXRlICovXG4gICAgcHJvdGVjdGVkIGdldCBvdmVybGF5Q29uZmlnKCk6IE92ZXJsYXlDb25maWcge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgcGFuZWxDbGFzczogJ2ticS1hcHAtc3dpdGNoZXJfX3BhbmVsJyxcbiAgICAgICAgICAgIGhhc0JhY2tkcm9wOiB0aGlzLmhhc0JhY2tkcm9wLFxuICAgICAgICAgICAgYmFja2Ryb3BDbGFzczogdGhpcy5iYWNrZHJvcENsYXNzXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgLyoqIEBkb2NzLXByaXZhdGUgKi9cbiAgICBwcm90ZWN0ZWQgcHJldmVudENsb3NpbmdCeUlubmVyU2Nyb2xsU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcblxuICAgICAgICB0aGlzLnNjcm9sbGFibGVcbiAgICAgICAgICAgID8uZWxlbWVudFNjcm9sbGVkKClcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSh0aGlzLmhpZGVJZk5vdEluVmlld1BvcnQpO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuY2xvc2VPblNjcm9sbCA9PT0gbnVsbCkge1xuICAgICAgICAgICAgdGhpcy5zY3JvbGxEaXNwYXRjaGVyLnNjcm9sbGVkKCkuc3Vic2NyaWJlKChzY3JvbGxhYmxlOiBDZGtTY3JvbGxhYmxlIHwgdm9pZCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmICghc2Nyb2xsYWJsZT8uZ2V0RWxlbWVudFJlZigpLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKCdrYnEtaGlkZS1uZXN0ZWQtcG9wdXAnKSkgcmV0dXJuO1xuXG4gICAgICAgICAgICAgICAgY29uc3QgcGFyZW50UmVjdHMgPSBzY3JvbGxhYmxlLmdldEVsZW1lbnRSZWYoKS5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGNoaWxkUmVjdHMgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcblxuICAgICAgICAgICAgICAgIGlmIChjaGlsZFJlY3RzLmJvdHRvbSA8IHBhcmVudFJlY3RzLnRvcCB8fCBjaGlsZFJlY3RzLnRvcCA+IHBhcmVudFJlY3RzLmJvdHRvbSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmhpZGUoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMudmlzaWJsZUNoYW5nZS5waXBlKHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpKS5zdWJzY3JpYmUoKHZpc2libGU6IGJvb2xlYW4pID0+IHtcbiAgICAgICAgICAgIGlmICh2aXNpYmxlKSB7XG4gICAgICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJ4anMvbm8tbmVzdGVkLXN1YnNjcmliZVxuICAgICAgICAgICAgICAgIHRoaXMucHJldmVudENsb3NpbmdCeUlubmVyU2Nyb2xsU3Vic2NyaXB0aW9uID0gdGhpcy5jbG9zaW5nQWN0aW9ucygpLnN1YnNjcmliZSgoZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGV2ZW50WydzY3JvbGxEaXNwYXRjaGVyJ10pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50WydrYnFQb3BvdmVyUHJldmVudEhpZGUnXSA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICBldmVudFsndHlwZSddID0gJ2NsaWNrJztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLnByZXZlbnRDbG9zaW5nQnlJbm5lclNjcm9sbFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICAgICAgICAgIHRoaXMuZm9jdXMoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqIEBkb2NzLXByaXZhdGUgKi9cbiAgICB1cGRhdGVEYXRhKCkge1xuICAgICAgICBpZiAoIXRoaXMuaW5zdGFuY2UpIHJldHVybjtcblxuICAgICAgICB0aGlzLmluc3RhbmNlLmhlYWRlciA9IHRoaXMuaGVhZGVyO1xuICAgICAgICB0aGlzLmluc3RhbmNlLmNvbnRlbnQgPSB0aGlzLmNvbnRlbnQ7XG4gICAgICAgIHRoaXMuaW5zdGFuY2UuYXJyb3cgPSB0aGlzLmFycm93O1xuICAgICAgICB0aGlzLmluc3RhbmNlLm9mZnNldCA9IHRoaXMub2Zmc2V0O1xuICAgICAgICB0aGlzLmluc3RhbmNlLmZvb3RlciA9IHRoaXMuZm9vdGVyO1xuXG4gICAgICAgIHRoaXMuaW5zdGFuY2UudXBkYXRlVHJhcEZvY3VzKHRoaXMudHJpZ2dlciAhPT0gUG9wVXBUcmlnZ2Vycy5Gb2N1cyk7XG5cbiAgICAgICAgaWYgKHRoaXMuaXNPcGVuKSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVBvc2l0aW9uKHRydWUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIFVwZGF0ZXMgdGhlIGN1cnJlbnQgcG9zaXRpb24uXG4gICAgICogQGRvY3MtcHJpdmF0ZSAqL1xuICAgIHVwZGF0ZVBvc2l0aW9uKHJlYXBwbHlQb3NpdGlvbjogYm9vbGVhbiA9IGZhbHNlKSB7XG4gICAgICAgIHRoaXMub3ZlcmxheVJlZiA9IHRoaXMuY3JlYXRlT3ZlcmxheSgpO1xuXG4gICAgICAgIGNvbnN0IHBvc2l0aW9uID0gKHRoaXMub3ZlcmxheVJlZi5nZXRDb25maWcoKS5wb3NpdGlvblN0cmF0ZWd5IGFzIEZsZXhpYmxlQ29ubmVjdGVkUG9zaXRpb25TdHJhdGVneSlcbiAgICAgICAgICAgIC53aXRoUG9zaXRpb25zKHRoaXMuZ2V0QWRqdXN0ZWRQb3NpdGlvbnMoKSlcbiAgICAgICAgICAgIC53aXRoUHVzaCh0cnVlKTtcblxuICAgICAgICBpZiAocmVhcHBseVBvc2l0aW9uKSB7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHBvc2l0aW9uLnJlYXBwbHlMYXN0UG9zaXRpb24oKSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGRvY3MtcHJpdmF0ZSAqL1xuICAgIGdldE92ZXJsYXlIYW5kbGVDb21wb25lbnRUeXBlKCk6IFR5cGU8S2JxQXBwU3dpdGNoZXJDb21wb25lbnQ+IHtcbiAgICAgICAgcmV0dXJuIEticUFwcFN3aXRjaGVyQ29tcG9uZW50O1xuICAgIH1cblxuICAgIC8qKiBAZG9jcy1wcml2YXRlICovXG4gICAgdXBkYXRlQ2xhc3NNYXAobmV3UGxhY2VtZW50OiBzdHJpbmcgPSB0aGlzLnBsYWNlbWVudCkge1xuICAgICAgICBpZiAoIXRoaXMuaW5zdGFuY2UpIHJldHVybjtcblxuICAgICAgICB0aGlzLmluc3RhbmNlLnVwZGF0ZUNsYXNzTWFwKFBPU0lUSU9OX1RPX0NTU19NQVBbbmV3UGxhY2VtZW50XSwgdGhpcy5jdXN0b21DbGFzcywgdGhpcy5zaXplKTtcbiAgICAgICAgdGhpcy5pbnN0YW5jZS5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICAvKiogQGRvY3MtcHJpdmF0ZSAqL1xuICAgIGNsb3NpbmdBY3Rpb25zKCkge1xuICAgICAgICByZXR1cm4gbWVyZ2UoXG4gICAgICAgICAgICB0aGlzLm92ZXJsYXlSZWYhLm91dHNpZGVQb2ludGVyRXZlbnRzKCksXG4gICAgICAgICAgICB0aGlzLm92ZXJsYXlSZWYhLmJhY2tkcm9wQ2xpY2soKSxcbiAgICAgICAgICAgIHRoaXMuc2Nyb2xsRGlzcGF0Y2hlci5zY3JvbGxlZCgpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBoaWRlSWZOb3RJblZpZXdQb3J0ID0gKCkgPT4ge1xuICAgICAgICBpZiAoIXRoaXMuc2Nyb2xsYWJsZSkgcmV0dXJuO1xuXG4gICAgICAgIGNvbnN0IHJlY3QgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgY29uc3QgY29udGFpbmVyUmVjdCA9IHRoaXMuc2Nyb2xsYWJsZS5nZXRFbGVtZW50UmVmKCkubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcblxuICAgICAgICBpZiAoXG4gICAgICAgICAgICAhKFxuICAgICAgICAgICAgICAgIHJlY3QuYm90dG9tID49IGNvbnRhaW5lclJlY3QudG9wICYmXG4gICAgICAgICAgICAgICAgcmVjdC5yaWdodCA+PSBjb250YWluZXJSZWN0LmxlZnQgJiZcbiAgICAgICAgICAgICAgICByZWN0LnRvcCA8PSBjb250YWluZXJSZWN0LmJvdHRvbSAmJlxuICAgICAgICAgICAgICAgIHJlY3QubGVmdCA8PSBjb250YWluZXJSZWN0LnJpZ2h0XG4gICAgICAgICAgICApXG4gICAgICAgICkge1xuICAgICAgICAgICAgdGhpcy5oaWRlKCk7XG4gICAgICAgIH1cbiAgICB9O1xufVxuIiwiQGlmICh0cmlnZ2VyLndpdGhTZWFyY2gpIHtcbiAgICA8ZGl2IGNsYXNzPVwia2JxLWFwcC1zd2l0Y2hlcl9fc2VhcmNoLWNvbnRhaW5lclwiIChtb3VzZWVudGVyKT1cIm90aGVyU2l0ZXM/LmNsb3NlKClcIj5cbiAgICAgICAgPGticS1mb3JtLWZpZWxkIG5vQm9yZGVycz5cbiAgICAgICAgICAgIDxpIGticS1pY29uPVwia2JxLW1hZ25pZnlpbmctZ2xhc3NfMTZcIiBrYnFQcmVmaXg+PC9pPlxuICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgYXV0b2NvbXBsZXRlPVwib2ZmXCJcbiAgICAgICAgICAgICAgICBrYnFJbnB1dFxuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwie3sgbG9jYWxlRGF0YS5zZWFyY2hQbGFjZWhvbGRlciB9fVwiXG4gICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cInNlYXJjaENvbnRyb2xcIlxuICAgICAgICAgICAgICAgIChrZXlkb3duLmVzY2FwZSk9XCJlc2NhcGVIYW5kbGVyKClcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxrYnEtY2xlYW5lciAvPlxuICAgICAgICA8L2ticS1mb3JtLWZpZWxkPlxuICAgIDwvZGl2PlxuXG4gICAgPGticS1kaXZpZGVyIC8+XG59XG5cbjxkaXYga2JxLXNjcm9sbGJhcj5cbiAgICBAaWYgKCFzZWFyY2hDb250cm9sLmdldFJhd1ZhbHVlKCkpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cImticS1hcHAtc3dpdGNoZXJfX2FwcC1jb250YWluZXJcIiAobW91c2VlbnRlcik9XCJvdGhlclNpdGVzPy5jbG9zZSgpXCI+XG4gICAgICAgICAgICBAaWYgKHRyaWdnZXIuc2l0ZXNNb2RlKSB7XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImticS1hcHAtc3dpdGNoZXItZ3JvdXAtaGVhZGVyXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJrYnEtYXBwLXN3aXRjaGVyLWdyb3VwLWhlYWRlcl9fdGV4dFwiPnt7IHRyaWdnZXIuc2VsZWN0ZWRTaXRlPy5uYW1lIH19PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIEBpZiAodHJpZ2dlci5zZWxlY3RlZFNpdGU/LnN0YXR1cykge1xuICAgICAgICAgICAgICAgICAgICAgICAgPGticS1iYWRnZSBjbGFzcz1cImticS1hcHAtc3dpdGNoZXItZ3JvdXAtaGVhZGVyX19iYWRnZVwiIFtjb21wYWN0XT1cInRydWVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyB0cmlnZ2VyLnNlbGVjdGVkU2l0ZS5zdGF0dXMgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwva2JxLWJhZGdlPlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIDxrYnEtZHJvcGRvd24gW2NsYXNzXT1cIidrYnEtYXBwLXN3aXRjaGVyLXNpdGVzJ1wiPlxuICAgICAgICAgICAgICAgIDxkaXYga2JxRHJvcGRvd25TdGF0aWNDb250ZW50IGNsYXNzPVwia2JxLWFwcC1zd2l0Y2hlci1zaXRlXCI+XG4gICAgICAgICAgICAgICAgICAgIEBmb3IgKGFwcCBvZiB0cmlnZ2VyLmN1cnJlbnRBcHBzOyB0cmFjayBhcHApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoIWFwcC5hbGlhc2VzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2JxLWFwcC1zd2l0Y2hlci1saXN0LWl0ZW1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaHJlZj1cInt7IGFwcC5saW5rIH19XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmticS1zZWxlY3RlZF09XCJhcHAuaWQgPT09IHRyaWdnZXIuc2VsZWN0ZWRBcHA/LmlkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2FwcF09XCJhcHBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdG9nZ2xlXT1cIiEhYXBwLmFsaWFzZXNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L2E+XG4gICAgICAgICAgICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICNhcHBTd2l0Y2hlckFwcD1cImticUFwcFN3aXRjaGVyQXBwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2JxLWFwcC1zd2l0Y2hlci1saXN0LWl0ZW1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2FwcF09XCJhcHBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdG9nZ2xlXT1cIiEhYXBwLmFsaWFzZXNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L2Rpdj5cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoIWFwcFN3aXRjaGVyQXBwLmNvbGxhcHNlZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAZm9yIChhbGlhcyBvZiBhcHAuYWxpYXNlczsgdHJhY2sgYWxpYXMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJrYnEtYXBwLXN3aXRjaGVyLXNpdGVfbmVzdGVkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrYnEtYXBwLXN3aXRjaGVyLWxpc3QtaXRlbVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhyZWY9XCJ7eyBhbGlhcy5saW5rIH19XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3Mua2JxLXNlbGVjdGVkXT1cImFsaWFzLmlkID09PSB0cmlnZ2VyLnNlbGVjdGVkQXBwPy5pZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2FwcF09XCJhbGlhc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2ticS1kcm9wZG93bj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgQGlmICh0cmlnZ2VyLnNpdGVzTW9kZSkge1xuICAgICAgICAgICAgPGticS1kaXZpZGVyIC8+XG5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJrYnEtYXBwLXN3aXRjaGVyX19zaXRlcy1jb250YWluZXJcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwia2JxLWFwcC1zd2l0Y2hlci1ncm91cC1oZWFkZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImticS1hcHAtc3dpdGNoZXItZ3JvdXAtaGVhZGVyX190ZXh0XCI+e3sgbG9jYWxlRGF0YS5zaXRlc0hlYWRlciB9fTwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgPGticS1kcm9wZG93biAjb3RoZXJTaXRlcz1cImticURyb3Bkb3duXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYga2JxRHJvcGRvd25TdGF0aWNDb250ZW50IGNsYXNzPVwia2JxLWFwcC1zd2l0Y2hlci1zaXRlc1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgQGZvciAoc2l0ZSBvZiB0cmlnZ2VyLnNpdGVzOyB0cmFjayBzaXRlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChzaXRlLmlkICE9PSB0cmlnZ2VyLnNlbGVjdGVkU2l0ZT8uaWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2ticS1hcHAtc3dpdGNoZXItZHJvcGRvd24tc2l0ZV09XCJzaXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtrYnFEcm9wZG93blRyaWdnZXJGb3JdPVwiZHJvcGRvd25XaXRoU2VsZWN0ZWRTaXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtvZmZzZXRYXT1cIjBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vdXNlZW50ZXIpPVwiYWN0aXZlU2l0ZSA9IHNpdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2ticS1kcm9wZG93bj5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8a2JxLWRyb3Bkb3duICNkcm9wZG93bldpdGhTZWxlY3RlZFNpdGU9XCJrYnFEcm9wZG93blwiIFtjbGFzc109XCIna2JxLWFwcC1zd2l0Y2hlci1zaXRlcydcIj5cbiAgICAgICAgICAgICAgICBAZm9yIChhcHAgb2YgYWN0aXZlU2l0ZT8uYXBwczsgdHJhY2sgYXBwKSB7XG4gICAgICAgICAgICAgICAgICAgIEBpZiAoYXBwLmFsaWFzZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAjZHJvcGRvd25XaXRoR3JvdXBlZEFwcHNUcmlnZ2VyPVwia2JxRHJvcGRvd25UcmlnZ2VyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBba2JxLWFwcC1zd2l0Y2hlci1kcm9wZG93bi1hcHBdPVwiYXBwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBba2JxRHJvcGRvd25UcmlnZ2VyRm9yXT1cImRyb3Bkb3duV2l0aEdyb3VwZWRBcHBzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbb2Zmc2V0WF09XCIwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3Mua2JxLXByZXNzZWRdPVwiZHJvcGRvd25XaXRoR3JvdXBlZEFwcHNUcmlnZ2VyLm9wZW5lZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vdXNlZW50ZXIpPVwiYWN0aXZlQXBwID0gYXBwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhyZWY9XCJ7eyBhcHAubGluayB9fVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2ticS1hcHAtc3dpdGNoZXItZHJvcGRvd24tYXBwXT1cImFwcFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNlbGVjdEFwcEluU2l0ZShhY3RpdmVTaXRlLCBhcHApXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L2E+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2ticS1kcm9wZG93bj5cblxuICAgICAgICAgICAgPGticS1kcm9wZG93biAjZHJvcGRvd25XaXRoR3JvdXBlZEFwcHM9XCJrYnFEcm9wZG93blwiIFtjbGFzc109XCIna2JxLWFwcC1zd2l0Y2hlci1zaXRlcydcIj5cbiAgICAgICAgICAgICAgICBAZm9yIChhbGlhcyBvZiBhY3RpdmVBcHA/LmFsaWFzZXM7IHRyYWNrIGFsaWFzKSB7XG4gICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICAgICBocmVmPVwie3sgYWxpYXMubGluayB9fVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBba2JxLWFwcC1zd2l0Y2hlci1kcm9wZG93bi1hcHBdPVwiYWxpYXNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNlbGVjdEFwcEluU2l0ZShhY3RpdmVTaXRlLCBhbGlhcylcIlxuICAgICAgICAgICAgICAgICAgICA+PC9hPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwva2JxLWRyb3Bkb3duPlxuICAgICAgICB9XG4gICAgfSBAZWxzZSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJrYnEtYXBwLXN3aXRjaGVyX19zZWFyY2gtcmVzdWx0XCI+XG4gICAgICAgICAgICA8a2JxLWRyb3Bkb3duIFtjbGFzc109XCIna2JxLWFwcC1zd2l0Y2hlci1zaXRlcydcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGticURyb3Bkb3duU3RhdGljQ29udGVudCBjbGFzcz1cImticS1hcHAtc3dpdGNoZXItc2l0ZVwiPlxuICAgICAgICAgICAgICAgICAgICBAZm9yIChzaXRlIG9mIGZpbHRlcmVkU2l0ZXM7IHRyYWNrIHNpdGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAodHJpZ2dlci5zaXRlc01vZGUgJiYgc2l0ZS5hcHBzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGticS1vcHRncm91cCBsYWJlbD1cInt7IHNpdGUubmFtZSB9fVwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIEBmb3IgKGFwcCBvZiBzaXRlLmFwcHM7IHRyYWNrIGFwcCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGticS1hcHAtc3dpdGNoZXItbGlzdC1pdGVtIGhyZWY9XCJ7eyBhcHAubGluayB9fVwiIFthcHBdPVwiYXBwXCI+PC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9IEBlbXB0eSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwia2JxLWFwcC1zd2l0Y2hlcl9fZW1wdHktc2VhcmNoLXJlc3VsdFwiPnt7IGxvY2FsZURhdGEuc2VhcmNoRW1wdHlSZXN1bHQgfX08L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9rYnEtZHJvcGRvd24+XG4gICAgICAgIDwvZGl2PlxuICAgIH1cbjwvZGl2PlxuIl19
450
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLXN3aXRjaGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9hcHAtc3dpdGNoZXIvYXBwLXN3aXRjaGVyLnRzIiwiLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9hcHAtc3dpdGNoZXIvYXBwLXN3aXRjaGVyLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDOUQsT0FBTyxFQUdILE9BQU8sRUFHVixNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdEQsT0FBTyxFQUdILHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsU0FBUyxFQUNULFlBQVksRUFDWixjQUFjLEVBQ2QsS0FBSyxFQUVMLE1BQU0sRUFHTixTQUFTLEVBQ1QsaUJBQWlCLEVBQ2pCLGdCQUFnQixFQUNoQixNQUFNLEVBQ04sZUFBZSxFQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQy9FLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMxRCxPQUFPLEVBQ0gsa0JBQWtCLEVBQ2xCLGVBQWUsRUFDZixRQUFRLEVBQ1IsZUFBZSxFQUNmLG1CQUFtQixFQUNuQixlQUFlLEVBQ2YsVUFBVSxFQUNWLGFBQWEsRUFDYixpQkFBaUIsRUFDakIsY0FBYyxFQUNqQixNQUFNLHlCQUF5QixDQUFDO0FBQ2pDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzlELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3BGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ25FLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsUUFBUSxFQUFFLGNBQWMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2xFLE9BQU8sRUFBZ0IsS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNDLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3JFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3hFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzFFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDOzs7Ozs7Ozs7OztBQTBCdEUsb0JBQW9CO0FBQ3BCLE1BQU0sVUFBVSxjQUFjLENBQzFCLEdBQXNCLEVBQ3RCLE1BQXlDLEVBQ3pDLE9BQTRCO0lBRTVCLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDWixPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3RCLENBQUM7U0FBTSxDQUFDO1FBQ0osTUFBTSxPQUFPLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUVwQyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ2xCLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3ZDLENBQUM7YUFBTSxDQUFDO1lBQ0osTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHO2dCQUNkLElBQUksRUFBRSxPQUFPO2dCQUNiLE9BQU8sRUFBRSxDQUFDLEdBQUcsQ0FBQztnQkFDZCxJQUFJLEVBQUUsR0FBRyxDQUFDLElBQUk7Z0JBQ2QsT0FBTyxFQUFFLEdBQUcsQ0FBQyxPQUFPO2dCQUNwQixFQUFFLEVBQUUsRUFBRTthQUNULENBQUM7UUFDTixDQUFDO0lBQ0wsQ0FBQztBQUNMLENBQUM7QUFFRCxNQUFNLENBQUMsTUFBTSx1Q0FBdUMsR0FBVyxDQUFDLENBQUM7QUFDakUsTUFBTSxDQUFDLE1BQU0seUNBQXlDLEdBQVcsQ0FBQyxDQUFDO0FBRW5FLG9CQUFvQjtBQUNwQixNQUFNLENBQUMsTUFBTSxnQ0FBZ0MsR0FBRyxJQUFJLGNBQWMsQ0FDOUQsa0NBQWtDLENBQ3JDLENBQUM7QUFFRixvQkFBb0I7QUFDcEIsTUFBTSxVQUFVLG1DQUFtQyxDQUFDLE9BQWdCO0lBQ2hFLE9BQU8sR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxFQUFFLGNBQWMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQzdFLENBQUM7QUFFRCxvQkFBb0I7QUFDcEIsTUFBTSxDQUFDLE1BQU0saURBQWlELEdBQUc7SUFDN0QsT0FBTyxFQUFFLGdDQUFnQztJQUN6QyxJQUFJLEVBQUUsQ0FBQyxPQUFPLENBQUM7SUFDZixVQUFVLEVBQUUsbUNBQW1DO0NBQ2xELENBQUM7QUFFRiw0Q0FBNEM7QUFDNUMsb0JBQW9CO0FBQ3BCLE1BQU0sQ0FBQyxNQUFNLHNDQUFzQyxHQUFHLGNBQWMsQ0FBQyxXQUFXLENBQUM7QUFFakYsa0VBQWtFO0FBQ2xFLG9CQUFvQjtBQUNwQixNQUFNLENBQUMsTUFBTSw4QkFBOEIsR0FBRyxJQUFJLGNBQWMsQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO0FBRWhHLG9CQUFvQjtBQStCcEIsTUFBTSxPQUFPLHVCQUF3QixTQUFRLFFBQVE7SUFRakQ7dUJBQ21CO0lBQ25CLElBQUksVUFBVTtRQUNWLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQztJQUM5QixDQUFDO0lBMkJEO1FBQ0ksS0FBSyxFQUFFLENBQUM7UUF2Q1osb0JBQW9CO1FBQ0Qsa0JBQWEsR0FBRyxNQUFNLENBQUMsa0JBQWtCLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUV6RSwwQkFBcUIsR0FBRyxNQUFNLENBQUMsOEJBQThCLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQVU1RixvQkFBb0I7UUFDWCxrQkFBYSxHQUFHLElBQUksV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBSzdDLG9CQUFvQjtRQUNwQixXQUFNLEdBQUcsa0JBQWtCLENBQUM7UUFLNUIsb0JBQW9CO1FBQ3BCLGdCQUFXLEdBQVksS0FBSyxDQUFDO1FBbUZyQix1QkFBa0IsR0FBRyxHQUFHLEVBQUU7WUFDOUIsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMscUJBQXFCLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRSxTQUFTLENBQUMsYUFBYSxDQUFDLENBQUM7WUFFaEcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFlBQVksRUFBRSxDQUFDO1FBQzFDLENBQUMsQ0FBQztRQXhFRSxJQUFJLENBQUMsYUFBYSxFQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUUxRixJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ3RCLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBQzdCLENBQUM7SUFDTCxDQUFDO0lBRUQsZUFBZTtRQUNYLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2IsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUN2QixDQUFDO1FBRUQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNuQyxJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssSUFBSSxJQUFJLEtBQUssRUFBRSxDQUFDO2dCQUNoQyxpQkFBaUIsQ0FDYixJQUFJLENBQUMsUUFBUSxFQUNiLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxFQUM3QixJQUFJLENBQUMsTUFBTSxFQUNYLEdBQUcsSUFBSSxDQUFDLE1BQU8sQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUNqQyxDQUFDO1lBQ04sQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDekcsQ0FBQztJQUVELG9CQUFvQjtJQUNwQixjQUFjLENBQUMsU0FBaUIsRUFBRSxXQUFtQixFQUFFLElBQWdCO1FBQ25FLEtBQUssQ0FBQyxjQUFjLENBQUMsU0FBUyxFQUFFLFdBQVcsRUFBRSxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7SUFDekYsQ0FBQztJQUVELG9CQUFvQjtJQUNwQixlQUFlLENBQUMsV0FBb0I7UUFDaEMsSUFBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7SUFDbkMsQ0FBQztJQUVELG9CQUFvQjtJQUNwQixhQUFhO1FBQ1QsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNqQixDQUFDO0lBRUQsb0JBQW9CO0lBQ3BCLGVBQWUsQ0FBQyxJQUF3QixFQUFFLEdBQXNCO1FBQzVELElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztRQUNqQyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsR0FBRyxHQUFHLENBQUM7UUFFL0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDM0MsSUFBSSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVPLFdBQVcsQ0FBQyxLQUFvQjtRQUNwQyxNQUFNLGFBQWEsR0FBRyxlQUFlLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUVsRSxPQUFPLEtBQUs7WUFDUixDQUFDLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO2dCQUMxQixNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQztnQkFFckcsSUFBSSxZQUFZLENBQUMsTUFBTSxFQUFFLENBQUM7b0JBQ3RCLElBQUksQ0FBQyxJQUFJLEdBQUcsWUFBWSxDQUFDO29CQUV6QixPQUFPLElBQUksQ0FBQztnQkFDaEIsQ0FBQztnQkFFRCxPQUFPLEtBQUssQ0FBQztZQUNqQixDQUFDLENBQUM7WUFDSixDQUFDLENBQUMsYUFBYSxDQUFDO0lBQ3hCLENBQUM7SUFRTyxpQkFBaUI7UUFDckIsSUFBSSxDQUFDLGFBQWEsR0FBRyxzQ0FBc0MsQ0FBQztJQUNoRSxDQUFDO2tJQXRIUSx1QkFBdUI7c0hBQXZCLHVCQUF1QixpS0FtQ3JCLFFBQVEsa0tDdk12Qiw0OU1BK0lBLHkxR0RJUSxXQUFXLHNaQUNYLG1CQUFtQixpTkFDbkIsa0JBQWtCLDh3QkFDbEIsY0FBYyxnUEFDZCxhQUFhLDJJQUNiLGdCQUFnQiw4SUFDaEIsY0FBYyx1TkFDZCxpQkFBaUIsa3JCQUNqQixrQkFBa0Isb1JBQ2xCLGVBQWUsZ0tBQ2YseUJBQXlCLGdLQUN6QiwwQkFBMEIsbUtBQzFCLHNCQUFzQixvSUFHZCxDQUFDLHdCQUF3QixDQUFDLEtBQUssQ0FBQzs7NEZBRW5DLHVCQUF1QjtrQkE5Qm5DLFNBQVM7aUNBQ00sSUFBSSxZQUNOLGtCQUFrQix1QkFFUCxLQUFLLFFBRXBCO3dCQUNGLEtBQUssRUFBRSxrQkFBa0I7cUJBQzVCLGlCQUNjLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU0sV0FDdEM7d0JBQ0wsU0FBUzt3QkFDVCxXQUFXO3dCQUNYLG1CQUFtQjt3QkFDbkIsa0JBQWtCO3dCQUNsQixjQUFjO3dCQUNkLGFBQWE7d0JBQ2IsZ0JBQWdCO3dCQUNoQixjQUFjO3dCQUNkLGlCQUFpQjt3QkFDakIsa0JBQWtCO3dCQUNsQixlQUFlO3dCQUNmLHlCQUF5Qjt3QkFDekIsMEJBQTBCO3dCQUMxQixzQkFBc0I7d0JBQ3RCLFFBQVE7cUJBQ1gsY0FDVyxDQUFDLHdCQUF3QixDQUFDLEtBQUssQ0FBQzt3REFxQ3ZCLEtBQUs7c0JBQXpCLFNBQVM7dUJBQUMsUUFBUTtnQkFFTSxVQUFVO3NCQUFsQyxTQUFTO3VCQUFDLFlBQVk7O0FBK0YzQixNQUFNLE9BQU8scUJBQ1QsU0FBUSxlQUF3QztJQVpwRDs7UUFlSSxvQkFBb0I7UUFDVixtQkFBYyxHQUF5QixNQUFNLENBQUMsZ0NBQWdDLENBQUMsQ0FBQztRQUUxRixXQUFXO1FBQ1gsb0JBQW9CO1FBQ3BCLFVBQUssR0FBWSxLQUFLLENBQUM7UUFHdkIsb0JBQW9CO1FBQ1osZ0JBQVcsR0FBWSxLQUFLLENBQUM7UUFDckMsb0JBQW9CO1FBQ1osU0FBSSxHQUFlLFVBQVUsQ0FBQyxNQUFNLENBQUM7UUFtQzdDLHlCQUF5QjtRQUNTLGNBQVMsR0FBb0IsZUFBZSxDQUFDLFVBQVUsQ0FBQztRQUUxRixnREFBZ0Q7UUFDdkMsa0JBQWEsR0FBVyxrQ0FBa0MsQ0FBQztRQUVwRSxzQkFBc0I7UUFDaUIsV0FBTSxHQUFrQix1QkFBdUIsQ0FBQztRQXNGL0UsYUFBUSxHQUFHLGNBQWMsQ0FBQztRQXNDbEMsaUVBQWlFO1FBQzFCLG9CQUFlLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUU1RSwrREFBK0Q7UUFDMUIsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO1FBRWpGLG9CQUFvQjtRQUNELHVCQUFrQixHQUFHLElBQUksWUFBWSxFQUFzQixDQUFDO1FBQy9FLG9CQUFvQjtRQUNELHNCQUFpQixHQUFHLElBQUksWUFBWSxFQUFxQixDQUFDO1FBRTdFLG9CQUFvQjtRQUNwQixZQUFPLEdBQVcsR0FBRyxhQUFhLENBQUMsS0FBSyxLQUFLLGFBQWEsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQU9yRSxvQkFBb0I7UUFDVixtQkFBYyxHQUFHLG1CQUFtQixDQUFDO1FBMEd2Qyx3QkFBbUIsR0FBRyxHQUFHLEVBQUU7WUFDL0IsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVO2dCQUFFLE9BQU87WUFFN0IsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMscUJBQXFCLEVBQUUsQ0FBQztZQUNuRSxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsRUFBRSxDQUFDLGFBQWEsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1lBRTVGLElBQ0ksQ0FBQyxDQUNHLElBQUksQ0FBQyxNQUFNLElBQUksYUFBYSxDQUFDLEdBQUc7Z0JBQ2hDLElBQUksQ0FBQyxLQUFLLElBQUksYUFBYSxDQUFDLElBQUk7Z0JBQ2hDLElBQUksQ0FBQyxHQUFHLElBQUksYUFBYSxDQUFDLE1BQU07Z0JBQ2hDLElBQUksQ0FBQyxJQUFJLElBQUksYUFBYSxDQUFDLEtBQUssQ0FDbkMsRUFDSCxDQUFDO2dCQUNDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNoQixDQUFDO1FBQ0wsQ0FBQyxDQUFDO0tBQ0w7SUEzU0csb0NBQW9DO0lBQ3BDLElBQUksVUFBVTtRQUNWLE9BQU8sSUFBSSxDQUFDLFNBQVMsR0FBRyx1Q0FBdUMsQ0FBQztJQUNwRSxDQUFDO0lBRUQ7dUJBQ21CO0lBQ25CLElBQUksU0FBUztRQUNULE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDL0UsQ0FBQztJQUVEO3VCQUNtQjtJQUNuQixJQUFJLFNBQVM7UUFDVCxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRUQsb0JBQW9CO0lBQ3BCLElBQUksV0FBVztRQUNYLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDdEUsQ0FBQztJQWNELHFCQUFxQjtJQUNyQixJQUNJLEtBQUs7UUFDTCxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDN0IsQ0FBQztJQUVELElBQUksS0FBSyxDQUFDLEtBQTJCO1FBQ2pDLElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDO1FBRTNCLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDbEMsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQ3JDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUMxQix5Q0FBeUMsQ0FDNUMsQ0FBQztRQUNOLENBQUM7YUFBTSxDQUFDO1lBQ0osSUFBSSxDQUFDLFlBQVksR0FBRyxFQUFFLENBQUM7WUFFdkIsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQXdCLEVBQUUsRUFBRTtnQkFDdkMsTUFBTSxPQUFPLEdBQXVCLEVBQUUsR0FBRyxJQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDO2dCQUUxRCxPQUFPLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLHlDQUF5QyxDQUFDLENBQUM7Z0JBRTVGLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3BDLENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQztJQUNMLENBQUM7SUFJRDs7T0FFRztJQUNILElBQ0ksSUFBSTtRQUNKLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUM1QixDQUFDO0lBRUQsSUFBSSxJQUFJLENBQUMsSUFBeUI7UUFDOUIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7UUFFekIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSx5Q0FBeUMsQ0FBQyxDQUFDO0lBQzVHLENBQUM7SUFFTyxpQkFBaUIsQ0FBQyxJQUF5QixFQUFFLGtCQUEwQjtRQUMzRSxNQUFNLE1BQU0sR0FBc0MsRUFBRSxDQUFDO1FBQ3JELE1BQU0sT0FBTyxHQUF3QixFQUFFLENBQUM7UUFDeEMsTUFBTSxXQUFXLEdBQXdCLEVBQUUsQ0FBQztRQUU1QyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDakIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ3ZDLENBQUMsQ0FBQyxDQUFDO1FBRUgsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNwQyxJQUFJLEtBQUssQ0FBQyxPQUFPLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsa0JBQWtCLEVBQUUsQ0FBQztnQkFDN0QsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUM1QixDQUFDO2lCQUFNLENBQUM7Z0JBQ0osT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLEtBQUssQ0FBQyxPQUFRLENBQUMsQ0FBQztZQUNwQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFFSCxXQUFXLENBQUMsSUFBSSxDQUFDLEdBQUcsT0FBTyxDQUFDLENBQUM7UUFFN0IsT0FBTyxXQUFXLENBQUM7SUFDdkIsQ0FBQztJQUlEOzhFQUMwRTtJQUMxRSxJQUNJLE9BQU87UUFDUCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDekIsQ0FBQztJQUVELElBQUksT0FBTyxDQUNQLEVBQTZHO1FBRTdHLElBQUksT0FBTyxFQUFFLEtBQUssVUFBVSxFQUFFLENBQUM7WUFDM0IsTUFBTSxJQUFJLEtBQUssQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFDO1FBQ3ZELENBQUM7UUFFRCxJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBSUQsb0JBQW9CO0lBQ3BCLElBQ0ksWUFBWTtRQUNaLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDO0lBQ3BDLENBQUM7SUFFRCxJQUFJLFlBQVksQ0FBQyxLQUF5QjtRQUN0QyxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQUUsS0FBSyxJQUFJLENBQUMsRUFBRSxDQUF1QixDQUFDO1FBQ2xHLE1BQU0sT0FBTyxHQUF1QixFQUFFLEdBQUcsV0FBVyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQztRQUVqRSxPQUFPLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLHlDQUF5QyxDQUFDLENBQUM7UUFFbkcsSUFBSSxDQUFDLG1CQUFtQixHQUFHLE9BQU8sQ0FBQztJQUN2QyxDQUFDO0lBSUQsdUNBQXVDO0lBQ3ZDLElBQ0ksUUFBUTtRQUNSLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUMxQixDQUFDO0lBRUQsSUFBSSxRQUFRLENBQUMsS0FBSztRQUNkLElBQUksQ0FBQyxTQUFTLEdBQUcscUJBQXFCLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFOUMsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDakIsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ2hCLENBQUM7SUFDTCxDQUFDO0lBRUQsb0JBQW9CO0lBQ3BCLElBQUksZUFBZTtRQUNmLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUF3QkQsb0JBQW9CO0lBQ3BCLElBQWMsYUFBYTtRQUN2QixPQUFPO1lBQ0gsVUFBVSxFQUFFLHlCQUF5QjtZQUNyQyxXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVc7WUFDN0IsYUFBYSxFQUFFLElBQUksQ0FBQyxhQUFhO1NBQ3BDLENBQUM7SUFDTixDQUFDO0lBS0QsUUFBUTtRQUNKLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUVqQixJQUFJLENBQUMsVUFBVTtZQUNYLEVBQUUsZUFBZSxFQUFFO2FBQ2xCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7YUFDekMsU0FBUyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRCxrQkFBa0I7UUFDZCxJQUFJLElBQUksQ0FBQyxhQUFhLEtBQUssSUFBSSxFQUFFLENBQUM7WUFDOUIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLFVBQWdDLEVBQUUsRUFBRTtnQkFDNUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxhQUFhLEVBQUUsQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyx1QkFBdUIsQ0FBQztvQkFBRSxPQUFPO2dCQUVuRyxNQUFNLFdBQVcsR0FBRyxVQUFVLENBQUMsYUFBYSxFQUFFLENBQUMsYUFBYSxDQUFDLHFCQUFxQixFQUFFLENBQUM7Z0JBQ3JGLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLHFCQUFxQixFQUFFLENBQUM7Z0JBRXpFLElBQUksVUFBVSxDQUFDLE1BQU0sR0FBRyxXQUFXLENBQUMsR0FBRyxJQUFJLFVBQVUsQ0FBQyxHQUFHLEdBQUcsV0FBVyxDQUFDLE1BQU0sRUFBRSxDQUFDO29CQUM3RSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQ2hCLENBQUM7WUFDTCxDQUFDLENBQUMsQ0FBQztRQUNQLENBQUM7UUFFRCxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxPQUFnQixFQUFFLEVBQUU7WUFDeEYsSUFBSSxPQUFPLEVBQUUsQ0FBQztnQkFDVixvREFBb0Q7Z0JBQ3BELElBQUksQ0FBQyx1Q0FBdUMsR0FBRyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7b0JBQ3JGLElBQUksS0FBSyxDQUFDLGtCQUFrQixDQUFDLEVBQUUsQ0FBQzt3QkFDNUIsS0FBSyxDQUFDLHVCQUF1QixDQUFDLEdBQUcsSUFBSSxDQUFDO3dCQUN0QyxLQUFLLENBQUMsTUFBTSxDQUFDLEdBQUcsT0FBTyxDQUFDO29CQUM1QixDQUFDO2dCQUNMLENBQUMsQ0FBQyxDQUFDO1lBQ1AsQ0FBQztpQkFBTSxDQUFDO2dCQUNKLElBQUksQ0FBQyx1Q0FBdUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztnQkFDM0QsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2pCLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxvQkFBb0I7SUFDcEIsVUFBVTtRQUNOLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUTtZQUFFLE9BQU87UUFFM0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUNuQyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDakMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUNuQyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBRW5DLElBQUksQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxPQUFPLEtBQUssYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRXBFLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ2QsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM5QixDQUFDO0lBQ0wsQ0FBQztJQUVEO3VCQUNtQjtJQUNuQixjQUFjLENBQUMsa0JBQTJCLEtBQUs7UUFDM0MsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFFdkMsTUFBTSxRQUFRLEdBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxnQkFBc0Q7YUFDL0YsYUFBYSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO2FBQzFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUVwQixJQUFJLGVBQWUsRUFBRSxDQUFDO1lBQ2xCLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxRQUFRLENBQUMsbUJBQW1CLEVBQUUsQ0FBQyxDQUFDO1FBQ3JELENBQUM7SUFDTCxDQUFDO0lBRUQsb0JBQW9CO0lBQ3BCLDZCQUE2QjtRQUN6QixPQUFPLHVCQUF1QixDQUFDO0lBQ25DLENBQUM7SUFFRCxvQkFBb0I7SUFDcEIsY0FBYyxDQUFDLGVBQXVCLElBQUksQ0FBQyxTQUFTO1FBQ2hELElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUTtZQUFFLE9BQU87UUFFM0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsbUJBQW1CLENBQUMsWUFBWSxDQUFDLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDN0YsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUNqQyxDQUFDO0lBRUQsb0JBQW9CO0lBQ3BCLGNBQWM7UUFDVixPQUFPLEtBQUssQ0FDUixJQUFJLENBQUMsVUFBVyxDQUFDLG9CQUFvQixFQUFFLEVBQ3ZDLElBQUksQ0FBQyxVQUFXLENBQUMsYUFBYSxFQUFFLEVBQ2hDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsQ0FDbkMsQ0FBQztJQUNOLENBQUM7a0lBalRRLHFCQUFxQjtzSEFBckIscUJBQXFCLDRNQXlEVixlQUFlLHNIQTBHZixnQkFBZ0I7OzRGQW5LM0IscUJBQXFCO2tCQVhqQyxTQUFTO21CQUFDO29CQUNQLFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUUsa0JBQWtCO29CQUM1QixRQUFRLEVBQUUsZ0JBQWdCO29CQUMxQixJQUFJLEVBQUU7d0JBQ0YsK0JBQStCLEVBQUUsUUFBUTt3QkFDekMsb0JBQW9CLEVBQUUsMkJBQTJCO3dCQUNqRCxXQUFXLEVBQUUsd0JBQXdCO3dCQUNyQyxZQUFZLEVBQUUsbUJBQW1CO3FCQUNwQztpQkFDSjs4QkFpRFksV0FBVztzQkFBbkIsS0FBSztnQkFHNEIsU0FBUztzQkFBMUMsS0FBSzt1QkFBQyx5QkFBeUI7Z0JBR3ZCLGFBQWE7c0JBQXJCLEtBQUs7Z0JBR2lDLE1BQU07c0JBQTVDLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFO2dCQUlqQyxLQUFLO3NCQURSLEtBQUs7Z0JBZ0NGLElBQUk7c0JBRFAsS0FBSztnQkFzQ0YsT0FBTztzQkFEVixLQUFLO2dCQW1CRixZQUFZO3NCQURmLEtBQUs7Z0JBa0JGLFFBQVE7c0JBRFgsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFtQkMsZUFBZTtzQkFBckQsTUFBTTt1QkFBQyxvQkFBb0I7Z0JBR1MsYUFBYTtzQkFBakQsTUFBTTt1QkFBQyxrQkFBa0I7Z0JBR1Asa0JBQWtCO3NCQUFwQyxNQUFNO2dCQUVZLGlCQUFpQjtzQkFBbkMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQge1xuICAgIENka1Njcm9sbGFibGUsXG4gICAgRmxleGlibGVDb25uZWN0ZWRQb3NpdGlvblN0cmF0ZWd5LFxuICAgIE92ZXJsYXksXG4gICAgT3ZlcmxheUNvbmZpZyxcbiAgICBTY3JvbGxTdHJhdGVneVxufSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBBc3luY1BpcGUsIEpzb25QaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gICAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBEaXJlY3RpdmUsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEluamVjdGlvblRva2VuLFxuICAgIElucHV0LFxuICAgIE9uSW5pdCxcbiAgICBPdXRwdXQsXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgVHlwZSxcbiAgICBWaWV3Q2hpbGQsXG4gICAgVmlld0VuY2Fwc3VsYXRpb24sXG4gICAgYm9vbGVhbkF0dHJpYnV0ZSxcbiAgICBpbmplY3QsXG4gICAgbnVtYmVyQXR0cmlidXRlXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgS2JxQmFkZ2VNb2R1bGUgfSBmcm9tICdAa29vYmlxL2NvbXBvbmVudHMvYmFkZ2UnO1xuaW1wb3J0IHtcbiAgICBLQlFfTE9DQUxFX1NFUlZJQ0UsXG4gICAgS2JxT3B0aW9uTW9kdWxlLFxuICAgIEticVBvcFVwLFxuICAgIEticVBvcFVwVHJpZ2dlcixcbiAgICBQT1NJVElPTl9UT19DU1NfTUFQLFxuICAgIFBvcFVwUGxhY2VtZW50cyxcbiAgICBQb3BVcFNpemVzLFxuICAgIFBvcFVwVHJpZ2dlcnMsXG4gICAgYXBwbHlQb3B1cE1hcmdpbnMsXG4gICAgcnVSVUxvY2FsZURhdGFcbn0gZnJvbSAnQGtvb2JpcS9jb21wb25lbnRzL2NvcmUnO1xuaW1wb3J0IHsgS2JxRGl2aWRlck1vZHVsZSB9IGZyb20gJ0Brb29iaXEvY29tcG9uZW50cy9kaXZpZGVyJztcbmltcG9ydCB7IEticURyb3Bkb3duTW9kdWxlLCBLYnFEcm9wZG93blRyaWdnZXIgfSBmcm9tICdAa29vYmlxL2NvbXBvbmVudHMvZHJvcGRvd24nO1xuaW1wb3J0IHsgS2JxRm9ybUZpZWxkTW9kdWxlIH0gZnJvbSAnQGtvb2JpcS9jb21wb25lbnRzL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHsgS2JxSWNvbk1vZHVsZSB9IGZyb20gJ0Brb29iaXEvY29tcG9uZW50cy9pY29uJztcbmltcG9ydCB7IEticUlucHV0LCBLYnFJbnB1dE1vZHVsZSB9IGZyb20gJ0Brb29iaXEvY29tcG9uZW50cy9pbnB1dCc7XG5pbXBvcnQgeyBkZWZhdWx0T2Zmc2V0WVdpdGhBcnJvdyB9IGZyb20gJ0Brb29iaXEvY29tcG9uZW50cy9wb3BvdmVyJztcbmltcG9ydCB7IEticVNjcm9sbGJhck1vZHVsZSB9IGZyb20gJ0Brb29iaXEvY29tcG9uZW50cy9zY3JvbGxiYXInO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uLCBtZXJnZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsga2JxQXBwU3dpdGNoZXJBbmltYXRpb25zIH0gZnJvbSAnLi9hcHAtc3dpdGNoZXItYW5pbWF0aW9ucyc7XG5pbXBvcnQgeyBLYnFBcHBTd2l0Y2hlckRyb3Bkb3duQXBwIH0gZnJvbSAnLi9hcHAtc3dpdGNoZXItZHJvcGRvd24tYXBwJztcbmltcG9ydCB7IEticUFwcFN3aXRjaGVyRHJvcGRvd25TaXRlIH0gZnJvbSAnLi9hcHAtc3dpdGNoZXItZHJvcGRvd24tc2l0ZSc7XG5pbXBvcnQgeyBLYnFBcHBTd2l0Y2hlckxpc3RJdGVtIH0gZnJvbSAnLi9rYnEtYXBwLXN3aXRjaGVyLWxpc3QtaXRlbSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgS2JxQXBwU3dpdGNoZXJBcHAge1xuICAgIG5hbWU6IHN0cmluZztcbiAgICBpZDogc3RyaW5nIHwgbnVtYmVyO1xuICAgIHR5cGU/OiBzdHJpbmcgfCBudW1iZXI7XG4gICAgLyoqIElubGluZSBTVkcgbWFya3VwIGZvciB0aGUgYXBwbGljYXRpb24gaWNvbi4gVXNlIHRoaXMgZm9yIFNWRyBpY29ucyB0aGF0IHNob3VsZCBiZSByZW5kZXJlZCBkaXJlY3RseSBpbiB0aGUgRE9NLiAqL1xuICAgIGljb24/OiBzdHJpbmc7XG4gICAgLyoqIFBhdGggdG8gdGhlIGljb24gZmlsZSAoVVJMIG9yIHJlbGF0aXZlIHBhdGgpLiAqL1xuICAgIGljb25TcmM/OiBzdHJpbmc7XG4gICAgY2FwdGlvbj86IHN0cmluZztcbiAgICBhbGlhc2VzPzogS2JxQXBwU3dpdGNoZXJBcHBbXTtcbiAgICBsaW5rPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEticUFwcFN3aXRjaGVyU2l0ZSB7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIGlkOiBzdHJpbmcgfCBudW1iZXI7XG4gICAgc3RhdHVzPzogc3RyaW5nO1xuICAgIC8qKiBJbmxpbmUgU1ZHIG1hcmt1cCBmb3IgdGhlIHNpdGUgaWNvbi4gVXNlIHRoaXMgZm9yIFNWRyBpY29ucyB0aGF0IHNob3VsZCBiZSByZW5kZXJlZCBkaXJlY3RseSBpbiB0aGUgRE9NLiAqL1xuICAgIGljb24/OiBzdHJpbmc7XG4gICAgLyoqIFBhdGggdG8gdGhlIGljb24gZmlsZSAoVVJMIG9yIHJlbGF0aXZlIHBhdGgpLiAqL1xuICAgIGljb25TcmM/OiBzdHJpbmc7XG4gICAgYXBwczogS2JxQXBwU3dpdGNoZXJBcHBbXTtcbn1cblxuLyoqIEBkb2NzLXByaXZhdGUgKi9cbmV4cG9ydCBmdW5jdGlvbiBkZWZhdWx0R3JvdXBCeShcbiAgICBhcHA6IEticUFwcFN3aXRjaGVyQXBwLFxuICAgIGdyb3VwczogUmVjb3JkPHN0cmluZywgS2JxQXBwU3dpdGNoZXJBcHA+LFxuICAgIHVudHlwZWQ6IEticUFwcFN3aXRjaGVyQXBwW11cbikge1xuICAgIGlmICghYXBwLnR5cGUpIHtcbiAgICAgICAgdW50eXBlZC5wdXNoKGFwcCk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgYXBwVHlwZSA9IGFwcC50eXBlLnRvU3RyaW5nKCk7XG5cbiAgICAgICAgaWYgKGdyb3Vwc1thcHBUeXBlXSkge1xuICAgICAgICAgICAgZ3JvdXBzW2FwcFR5cGVdLmFsaWFzZXMhLnB1c2goYXBwKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGdyb3Vwc1thcHBUeXBlXSA9IHtcbiAgICAgICAgICAgICAgICBuYW1lOiBhcHBUeXBlLFxuICAgICAgICAgICAgICAgIGFsaWFzZXM6IFthcHBdLFxuICAgICAgICAgICAgICAgIGljb246IGFwcC5pY29uLFxuICAgICAgICAgICAgICAgIGljb25TcmM6IGFwcC5pY29uU3JjLFxuICAgICAgICAgICAgICAgIGlkOiAnJ1xuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGNvbnN0IEtCUV9NSU5fTlVNQkVSX09GX0FQUFNfVE9fRU5BQkxFX1NFQVJDSDogbnVtYmVyID0gNztcbmV4cG9ydCBjb25zdCBLQlFfTUlOX05VTUJFUl9PRl9BUFBTX1RPX0VOQUJMRV9HUk9VUElORzogbnVtYmVyID0gMztcblxuLyoqIEBkb2NzLXByaXZhdGUgKi9cbmV4cG9ydCBjb25zdCBLQlFfQVBQX1NXSVRDSEVSX1NDUk9MTF9TVFJBVEVHWSA9IG5ldyBJbmplY3Rpb25Ub2tlbjwoKSA9PiBTY3JvbGxTdHJhdGVneT4oXG4gICAgJ2ticS1hcHAtc3dpdGNoZXItc2Nyb2xsLXN0cmF0ZWd5J1xuKTtcblxuLyoqIEBkb2NzLXByaXZhdGUgKi9cbmV4cG9ydCBmdW5jdGlvbiBrYnFBcHBTd2l0Y2hlclNjcm9sbFN0cmF0ZWd5RmFjdG9yeShvdmVybGF5OiBPdmVybGF5KTogKCkgPT4gU2Nyb2xsU3RyYXRlZ3kge1xuICAgIHJldHVybiAoKSA9PiBvdmVybGF5LnNjcm9sbFN0cmF0ZWdpZXMucmVwb3NpdGlvbih7IHNjcm9sbFRocm90dGxlOiAyMCB9KTtcbn1cblxuLyoqIEBkb2NzLXByaXZhdGUgKi9cbmV4cG9ydCBjb25zdCBLQlFfQVBQX1NXSVRDSEVSX1NDUk9MTF9TVFJBVEVHWV9GQUNUT1JZX1BST1ZJREVSID0ge1xuICAgIHByb3ZpZGU6IEtCUV9BUFBfU1dJVENIRVJfU0NST0xMX1NUUkFURUdZLFxuICAgIGRlcHM6IFtPdmVybGF5XSxcbiAgICB1c2VGYWN0b3J5OiBrYnFBcHBTd2l0Y2hlclNjcm9sbFN0cmF0ZWd5RmFjdG9yeVxufTtcblxuLyoqIGRlZmF1bHQgY29uZmlndXJhdGlvbiBvZiBhcHAtc3dpdGNoZXIgKi9cbi8qKiBAZG9jcy1wcml2YXRlICovXG5leHBvcnQgY29uc3QgS0JRX0FQUF9TV0lUQ0hFUl9ERUZBVUxUX0NPTkZJR1VSQVRJT04gPSBydVJVTG9jYWxlRGF0YS5hcHBTd2l0Y2hlcjtcblxuLyoqIEluamVjdGlvbiBUb2tlbiBmb3IgcHJvdmlkaW5nIGNvbmZpZ3VyYXRpb24gb2YgYXBwLXN3aXRjaGVyICovXG4vKiogQGRvY3MtcHJpdmF0ZSAqL1xuZXhwb3J0IGNvbnN0IEtCUV9BUFBfU1dJVENIRVJfQ09ORklHVVJBVElPTiA9IG5ldyBJbmplY3Rpb25Ub2tlbignS2JxQXBwU3dpdGNoZXJDb25maWd1cmF0aW9uJyk7XG5cbi8qKiBAZG9jcy1wcml2YXRlICovXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiAna2JxLWFwcC1zd2l0Y2hlcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2FwcC1zd2l0Y2hlci5odG1sJyxcbiAgICBwcmVzZXJ2ZVdoaXRlc3BhY2VzOiBmYWxzZSxcbiAgICBzdHlsZVVybHM6IFsnLi9hcHAtc3dpdGNoZXIuc2NzcyddLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgY2xhc3M6ICdrYnEtYXBwLXN3aXRjaGVyJ1xuICAgIH0sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIEFzeW5jUGlwZSxcbiAgICAgICAgRm9ybXNNb2R1bGUsXG4gICAgICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgICAgIEticUZvcm1GaWVsZE1vZHVsZSxcbiAgICAgICAgS2JxSW5wdXRNb2R1bGUsXG4gICAgICAgIEticUljb25Nb2R1bGUsXG4gICAgICAgIEticURpdmlkZXJNb2R1bGUsXG4gICAgICAgIEticUJhZGdlTW9kdWxlLFxuICAgICAgICBLYnFEcm9wZG93bk1vZHVsZSxcbiAgICAgICAgS2JxU2Nyb2xsYmFyTW9kdWxlLFxuICAgICAgICBLYnFPcHRpb25Nb2R1bGUsXG4gICAgICAgIEticUFwcFN3aXRjaGVyRHJvcGRvd25BcHAsXG4gICAgICAgIEticUFwcFN3aXRjaGVyRHJvcGRvd25TaXRlLFxuICAgICAgICBLYnFBcHBTd2l0Y2hlckxpc3RJdGVtLFxuICAgICAgICBKc29uUGlwZVxuICAgIF0sXG4gICAgYW5pbWF0aW9uczogW2ticUFwcFN3aXRjaGVyQW5pbWF0aW9ucy5zdGF0ZV1cbn0pXG5leHBvcnQgY2xhc3MgS2JxQXBwU3dpdGNoZXJDb21wb25lbnQgZXh0ZW5kcyBLYnFQb3BVcCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuICAgIC8qKiBAZG9jcy1wcml2YXRlICovXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGxvY2FsZVNlcnZpY2UgPSBpbmplY3QoS0JRX0xPQ0FMRV9TRVJWSUNFLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuXG4gICAgcmVhZG9ubHkgZXh0ZXJuYWxDb25maWd1cmF0aW9uID0gaW5qZWN0KEtCUV9BUFBfU1dJVENIRVJfQ09ORklHVVJBVElPTiwgeyBvcHRpb25hbDogdHJ1ZSB9KTtcblxuICAgIGNvbmZpZ3VyYXRpb247XG5cbiAgICAvKiogbG9jYWxpemVkIGRhdGFcbiAgICAgKiBAZG9jcy1wcml2YXRlICovXG4gICAgZ2V0IGxvY2FsZURhdGEoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbmZpZ3VyYXRpb247XG4gICAgfVxuXG4gICAgLyoqIEBkb2NzLXByaXZhdGUgKi9cbiAgICByZWFkb25seSBzZWFyY2hDb250cm9sID0gbmV3IEZvcm1Db250cm9sKCcnKTtcblxuICAgIC8qKiBAZG9jcy1wcml2YXRlICovXG4gICAgZmlsdGVyZWRTaXRlczogS2JxQXBwU3dpdGNoZXJTaXRlW107XG5cbiAgICAvKiogQGRvY3MtcHJpdmF0ZSAqL1xuICAgIHByZWZpeCA9ICdrYnEtYXBwLXN3aXRjaGVyJztcblxuICAgIC8qKiBAZG9jcy1wcml2YXRlICovXG4gICAgdHJpZ2dlcjogS2JxQXBwU3dpdGNoZXJUcmlnZ2VyO1xuXG4gICAgLyoqIEBkb2NzLXByaXZhdGUgKi9cbiAgICBpc1RyYXBGb2N1czogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgLyoqIEBkb2NzLXByaXZhdGUgKi9cbiAgICBwcm90ZWN0ZWQgYWN0aXZlU2l0ZTogS2JxQXBwU3dpdGNoZXJTaXRlO1xuICAgIC8qKiBAZG9jcy1wcml2YXRlICovXG4gICAgcHJvdGVjdGVkIGFjdGl2ZUFwcDogS2JxQXBwU3dpdGNoZXJBcHA7XG5cbiAgICAvKiogQGRvY3MtcHJpdmF0ZSAqL1xuICAgIEBWaWV3Q2hpbGQoS2JxSW5wdXQpIGlucHV0OiBLYnFJbnB1dDtcbiAgICAvKiogQGRvY3MtcHJpdmF0ZSAqL1xuICAgIEBWaWV3Q2hpbGQoJ290aGVyU2l0ZXMnKSBvdGhlclNpdGVzOiBLYnFEcm9wZG93blRyaWdnZXI7XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoKTtcblxuICAgICAgICB0aGlzLmxvY2FsZVNlcnZpY2U/LmNoYW5nZXMucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQoKSkuc3Vic2NyaWJlKHRoaXMudXBkYXRlTG9jYWxlUGFyYW1zKTtcblxuICAgICAgICBpZiAoIXRoaXMubG9jYWxlU2VydmljZSkge1xuICAgICAgICAgICAgdGhpcy5pbml0RGVmYXVsdFBhcmFtcygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgICAgICBpZiAodGhpcy5pbnB1dCkge1xuICAgICAgICAgICAgdGhpcy5pbnB1dC5mb2N1cygpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy52aXNpYmxlQ2hhbmdlLnN1YnNjcmliZSgoc3RhdGUpID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLm9mZnNldCAhPT0gbnVsbCAmJiBzdGF0ZSkge1xuICAgICAgICAgICAgICAgIGFwcGx5UG9wdXBNYXJnaW5zKFxuICAgICAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLFxuICAgICAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wcmVmaXgsXG4gICAgICAgICAgICAgICAgICAgIGAke3RoaXMub2Zmc2V0IS50b1N0cmluZygpfXB4YFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuc2VhcmNoQ29udHJvbC52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKCh2YWx1ZSkgPT4gKHRoaXMuZmlsdGVyZWRTaXRlcyA9IHRoaXMuZmlsdGVyU2l0ZXModmFsdWUpKSk7XG4gICAgfVxuXG4gICAgLyoqIEBkb2NzLXByaXZhdGUgKi9cbiAgICB1cGRhdGVDbGFzc01hcChwbGFjZW1lbnQ6IHN0cmluZywgY3VzdG9tQ2xhc3M6IHN0cmluZywgc2l6ZTogUG9wVXBTaXplcykge1xuICAgICAgICBzdXBlci51cGRhdGVDbGFzc01hcChwbGFjZW1lbnQsIGN1c3RvbUNsYXNzLCB7IFtgJHt0aGlzLnByZWZpeH1fJHtzaXplfWBdOiAhIXNpemUgfSk7XG4gICAgfVxuXG4gICAgLyoqIEBkb2NzLXByaXZhdGUgKi9cbiAgICB1cGRhdGVUcmFwRm9jdXMoaXNUcmFwRm9jdXM6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pc1RyYXBGb2N1cyA9IGlzVHJhcEZvY3VzO1xuICAgIH1cblxuICAgIC8qKiBAZG9jcy1wcml2YXRlICovXG4gICAgZXNjYXBlSGFuZGxlcigpIHtcbiAgICAgICAgdGhpcy5oaWRlKDApO1xuICAgIH1cblxuICAgIC8qKiBAZG9jcy1wcml2YXRlICovXG4gICAgc2VsZWN0QXBwSW5TaXRlKHNpdGU6IEticUFwcFN3aXRjaGVyU2l0ZSwgYXBwOiBLYnFBcHBTd2l0Y2hlckFwcCkge1xuICAgICAgICB0aGlzLnRyaWdnZXIuc2VsZWN0ZWRTaXRlID0gc2l0ZTtcbiAgICAgICAgdGhpcy50cmlnZ2VyLnNlbGVjdGVkQXBwID0gYXBwO1xuXG4gICAgICAgIHRoaXMudHJpZ2dlci5zZWxlY3RlZFNpdGVDaGFuZ2UuZW1pdChzaXRlKTtcbiAgICAgICAgdGhpcy50cmlnZ2VyLnNlbGVjdGVkQXBwQ2hhbmdlLmVtaXQoYXBwKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGZpbHRlclNpdGVzKHF1ZXJ5OiBzdHJpbmcgfCBudWxsKTogS2JxQXBwU3dpdGNoZXJTaXRlW10ge1xuICAgICAgICBjb25zdCBmaWx0ZXJlZFNpdGVzID0gc3RydWN0dXJlZENsb25lKHRoaXMudHJpZ2dlci5vcmlnaW5hbFNpdGVzKTtcblxuICAgICAgICByZXR1cm4gcXVlcnlcbiAgICAgICAgICAgID8gZmlsdGVyZWRTaXRlcy5maWx0ZXIoKHNpdGUpID0+IHtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IGZpbHRlcmVkQXBwcyA9IHNpdGUuYXBwcy5maWx0ZXIoKGFwcCkgPT4gYXBwLm5hbWUudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhxdWVyeS50b0xvd2VyQ2FzZSgpKSk7XG5cbiAgICAgICAgICAgICAgICAgIGlmIChmaWx0ZXJlZEFwcHMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgc2l0ZS5hcHBzID0gZmlsdGVyZWRBcHBzO1xuXG4gICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIDogZmlsdGVyZWRTaXRlcztcbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZUxvY2FsZVBhcmFtcyA9ICgpID0+IHtcbiAgICAgICAgdGhpcy5jb25maWd1cmF0aW9uID0gdGhpcy5leHRlcm5hbENvbmZpZ3VyYXRpb24gfHwgdGhpcy5sb2NhbGVTZXJ2aWNlPy5nZXRQYXJhbXMoJ2FwcFN3aXRjaGVyJyk7XG5cbiAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICB9O1xuXG4gICAgcHJpdmF0ZSBpbml0RGVmYXVsdFBhcmFtcygpIHtcbiAgICAgICAgdGhpcy5jb25maWd1cmF0aW9uID0gS0JRX0FQUF9TV0lUQ0hFUl9ERUZBVUxUX0NPTkZJR1VSQVRJT047XG4gICAgfVxufVxuXG5ARGlyZWN0aXZlKHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiAnW2ticUFwcFN3aXRjaGVyXScsXG4gICAgZXhwb3J0QXM6ICdrYnFBcHBTd2l0Y2hlcicsXG4gICAgaG9zdDoge1xuICAgICAgICAnW2NsYXNzLmticS1hcHAtc3dpdGNoZXJfb3Blbl0nOiAnaXNPcGVuJyxcbiAgICAgICAgJ1tjbGFzcy5rYnEtYWN0aXZlXSc6ICdoYXNDbGlja1RyaWdnZXIgJiYgaXNPcGVuJyxcbiAgICAgICAgJyhrZXlkb3duKSc6ICdrZXlkb3duSGFuZGxlcigkZXZlbnQpJyxcbiAgICAgICAgJyh0b3VjaGVuZCknOiAndG91Y2hlbmRIYW5kbGVyKCknXG4gICAgfVxufSlcbmV4cG9ydCBjbGFzcyBLYnFBcHBTd2l0Y2hlclRyaWdnZXJcbiAgICBleHRlbmRzIEticVBvcFVwVHJpZ2dlcjxLYnFBcHBTd2l0Y2hlckNvbXBvbmVudD5cbiAgICBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQsIE9uSW5pdFxue1xuICAgIC8qKiBAZG9jcy1wcml2YXRlICovXG4gICAgcHJvdGVjdGVkIHNjcm9sbFN0cmF0ZWd5OiAoKSA9PiBTY3JvbGxTdHJhdGVneSA9IGluamVjdChLQlFfQVBQX1NXSVRDSEVSX1NDUk9MTF9TVFJBVEVHWSk7XG5cbiAgICAvLyBub3QgdXNlZFxuICAgIC8qKiBAZG9jcy1wcml2YXRlICovXG4gICAgYXJyb3c6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICAvKiogQGRvY3MtcHJpdmF0ZSAqL1xuICAgIGN1c3RvbUNsYXNzOiBzdHJpbmc7XG4gICAgLyoqIEBkb2NzLXByaXZhdGUgKi9cbiAgICBwcml2YXRlIGhhc0JhY2tkcm9wOiBib29sZWFuID0gZmFsc2U7XG4gICAgLyoqIEBkb2NzLXByaXZhdGUgKi9cbiAgICBwcml2YXRlIHNpemU6IFBvcFVwU2l6ZXMgPSBQb3BVcFNpemVzLk1lZGl1bTtcbiAgICAvKiogQGRvY3MtcHJpdmF0ZSAqL1xuICAgIGNvbnRlbnQ6IHN0cmluZyB8IFRlbXBsYXRlUmVmPGFueT47XG4gICAgLyoqIEBkb2NzLXByaXZhdGUgKi9cbiAgICBoZWFkZXI6IHN0cmluZyB8IFRlbXBsYXRlUmVmPGFueT47XG4gICAgLyoqIEBkb2NzLXByaXZhdGUgKi9cbiAgICBmb290ZXI6IHN0cmluZyB8IFRlbXBsYXRlUmVmPGFueT47XG4gICAgLyoqIEBkb2NzLXByaXZhdGUgKi9cbiAgICBwcml2YXRlIGNsb3NlT25TY3JvbGw6IG51bGw7XG5cbiAgICAvKiogV2hldGhlciBzZWFyY2ggaXMgdXNlZCBvciBub3QgKi9cbiAgICBnZXQgd2l0aFNlYXJjaCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYXBwc0NvdW50ID4gS0JRX01JTl9OVU1CRVJfT0ZfQVBQU19UT19FTkFCTEVfU0VBUkNIO1xuICAgIH1cblxuICAgIC8qKiBOdW1iZXIgb2YgYXBwbGljYXRpb25zIHRvIGNob29zZSBmcm9tXG4gICAgICogQGRvY3MtcHJpdmF0ZSAqL1xuICAgIGdldCBhcHBzQ291bnQoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMub3JpZ2luYWxTaXRlcy5yZWR1Y2UoKGFjYywgc2l0ZSkgPT4gYWNjICsgc2l0ZS5hcHBzLmxlbmd0aCwgMCk7XG4gICAgfVxuXG4gICAgLyoqIFdoZXRoZXIgdGhlIHNpdGVzIGFyZSB1c2VkIG9yIG5vdFxuICAgICAqIEBkb2NzLXByaXZhdGUgKi9cbiAgICBnZXQgc2l0ZXNNb2RlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5vcmlnaW5hbFNpdGVzLmxlbmd0aCA+IDE7XG4gICAgfVxuXG4gICAgLyoqIEBkb2NzLXByaXZhdGUgKi9cbiAgICBnZXQgY3VycmVudEFwcHMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnNpdGVzTW9kZSA/IHRoaXMuc2VsZWN0ZWRTaXRlLmFwcHMgOiB0aGlzLl9wYXJzZWRBcHBzO1xuICAgIH1cblxuICAgIC8qKiBTZWxlY3RlZCBhcHBsaWNhdGlvbiAqL1xuICAgIEBJbnB1dCgpIHNlbGVjdGVkQXBwOiBLYnFBcHBTd2l0Y2hlckFwcDtcblxuICAgIC8qKiBQbGFjZW1lbnQgb2YgcG9wVXAgKi9cbiAgICBASW5wdXQoJ2ticUFwcFN3aXRjaGVyUGxhY2VtZW50JykgcGxhY2VtZW50OiBQb3BVcFBsYWNlbWVudHMgPSBQb3BVcFBsYWNlbWVudHMuQm90dG9tTGVmdDtcblxuICAgIC8qKiBDbGFzcyB0aGF0IHdpbGwgYmUgdXNlZCBpbiB0aGUgYmFja2dyb3VuZCAqL1xuICAgIEBJbnB1dCgpIGJhY2tkcm9wQ2xhc3M6IHN0cmluZyA9ICdjZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcCc7XG5cbiAgICAvKiogT2Zmc2V0IG9mIHBvcFVwICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBudW1iZXJBdHRyaWJ1dGUgfSkgb2Zmc2V0OiBudW1iZXIgfCBudWxsID0gZGVmYXVsdE9mZnNldFlXaXRoQXJyb3c7XG5cbiAgICAvKiogQXJyYXkgb2Ygc2l0ZXMgKi9cbiAgICBASW5wdXQoKVxuICAgIGdldCBzaXRlcygpOiBLYnFBcHBTd2l0Y2hlclNpdGVbXSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9wYXJzZWRTaXRlcztcbiAgICB9XG5cbiAgICBzZXQgc2l0ZXModmFsdWU6IEticUFwcFN3aXRjaGVyU2l0ZVtdKSB7XG4gICAgICAgIHRoaXMub3JpZ2luYWxTaXRlcyA9IHZhbHVlO1xuXG4gICAgICAgIGlmICh0aGlzLm9yaWdpbmFsU2l0ZXMubGVuZ3RoID09PSAxKSB7XG4gICAgICAgICAgICB0aGlzLl9wYXJzZWRBcHBzID0gdGhpcy5tYWtlR3JvdXBzRm9yQXBwcyhcbiAgICAgICAgICAgICAgICB0aGlzLm9yaWdpbmFsU2l0ZXNbMF0uYXBwcyxcbiAgICAgICAgICAgICAgICBLQlFfTUlOX05VTUJFUl9PRl9BUFBTX1RPX0VOQUJMRV9HUk9VUElOR1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX3BhcnNlZFNpdGVzID0gW107XG5cbiAgICAgICAgICAgIHZhbHVlLmZvckVhY2goKHNpdGU6IEticUFwcFN3aXRjaGVyU2l0ZSkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IG5ld1NpdGU6IEticUFwcFN3aXRjaGVyU2l0ZSA9IHsgLi4uc2l0ZSwgYXBwczogW10gfTtcblxuICAgICAgICAgICAgICAgIG5ld1NpdGUuYXBwcyA9IHRoaXMubWFrZUdyb3Vwc0ZvckFwcHMoc2l0ZS5hcHBzLCBLQlFfTUlOX05VTUJFUl9PRl9BUFBTX1RPX0VOQUJMRV9HUk9VUElORyk7XG5cbiAgICAgICAgICAgICAgICB0aGlzLl9wYXJzZWRTaXRlcy5wdXNoKG5ld1NpdGUpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIF9wYXJzZWRTaXRlczogS2JxQXBwU3dpdGNoZXJTaXRlW107XG5cbiAgICAvKipcbiAgICAgKiBAZGVwcmVjYXRlZCBXaWxsIGJlIHJlbW92ZWQgaW4gbmV4dCBtYWpvciByZWxlYXNlLCB1c2UgYHNpdGVzYCB3aXRoIG9uZSBlbGVtZW50IGluc3RlYWQuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBnZXQgYXBwcygpOiBLYnFBcHBTd2l0Y2hlckFwcFtdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3BhcnNlZEFwcHM7XG4gICAgfVxuXG4gICAgc2V0IGFwcHMoYXBwczogS2JxQXBwU3dpdGNoZXJBcHBbXSkge1xuICAgICAgICB0aGlzLm9yaWdpbmFsQXBwcyA9IGFwcHM7XG5cbiAgICAgICAgdGhpcy5fcGFyc2VkQXBwcyA9IHRoaXMubWFrZUdyb3Vwc0ZvckFwcHModGhpcy5vcmlnaW5hbEFwcHMsIEtCUV9NSU5fTlVNQkVSX09GX0FQUFNfVE9fRU5BQkxFX0dST1VQSU5HKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIG1ha2VHcm91cHNGb3JBcHBzKGFwcHM6IEticUFwcFN3aXRjaGVyQXBwW10sIG1pbkFwcHNGb3JHcm91cGluZzogbnVtYmVyKTogS2JxQXBwU3dpdGNoZXJBcHBbXSB7XG4gICAgICAgIGNvbnN0IGdyb3VwczogUmVjb3JkPHN0cmluZywgS2JxQXBwU3dpdGNoZXJBcHA+ID0ge307XG4gICAgICAgIGNvbnN0IHVudHlwZWQ6IEticUFwcFN3aXRjaGVyQXBwW10gPSBbXTtcbiAgICAgICAgY29uc3QgZ3JvdXBlZEFwcHM6IEticUFwcFN3aXRjaGVyQXBwW10gPSBbXTtcblxuICAgICAgICBhcHBzLmZvckVhY2goKGFwcCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5ncm91cEJ5KGFwcCwgZ3JvdXBzLCB1bnR5cGVkKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgT2JqZWN0LnZhbHVlcyhncm91cHMpLmZvckVhY2goKGdyb3VwKSA9PiB7XG4gICAgICAgICAgICBpZiAoZ3JvdXAuYWxpYXNlcyAmJiBncm91cC5hbGlhc2VzLmxlbmd0aCA+IG1pbkFwcHNGb3JHcm91cGluZykge1xuICAgICAgICAgICAgICAgIGdyb3VwZWRBcHBzLnB1c2goZ3JvdXApO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB1bnR5cGVkLnB1c2goLi4uZ3JvdXAuYWxpYXNlcyEpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICBncm91cGVkQXBwcy5wdXNoKC4uLnVudHlwZWQpO1xuXG4gICAgICAgIHJldHVybiBncm91cGVkQXBwcztcbiAgICB9XG5cbiAgICBwcml2YXRlIF9wYXJzZWRBcHBzOiBLYnFBcHBTd2l0Y2hlckFwcFtdO1xuXG4gICAgLyoqIEZ1bmN0aW9uIHRvIGdyb3VwIHRoZSBhcHBzIGJ5IHR5cGUuIFRoZSBmaXJzdCBhcmd1bWVudCBpcyBhbiBhcHAgb2JqZWN0IHdpdGggdHlwZS5cbiAgICAgKiBUaGUgc2Vjb25kIGlzIGEgZ3JvdXBzIG9iamVjdCBhbmQgdGhpcmQgaXMgYW4gYXJyYXkgZm9yIHVudHlwZWQgYXBwcyAqL1xuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGdyb3VwQnkoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9ncm91cEJ5O1xuICAgIH1cblxuICAgIHNldCBncm91cEJ5KFxuICAgICAgICBmbjogKGFwcDogS2JxQXBwU3dpdGNoZXJBcHAsIGdyb3VwczogUmVjb3JkPHN0cmluZywgS2JxQXBwU3dpdGNoZXJBcHA+LCB1bnR5cGVkOiBLYnFBcHBTd2l0Y2hlckFwcFtdKSA9PiB2b2lkXG4gICAgKSB7XG4gICAgICAgIGlmICh0eXBlb2YgZm4gIT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignVGhlIGFyZ3VtZW50IG11c3QgYmUgYSBmdW5jdGlvbicpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fZ3JvdXBCeSA9IGZuO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2dyb3VwQnkgPSBkZWZhdWx0R3JvdXBCeTtcblxuICAgIC8qKiBTZWxlY3RlZCBzaXRlICovXG4gICAgQElucHV0KClcbiAgICBnZXQgc2VsZWN0ZWRTaXRlKCk6IEticUFwcFN3aXRjaGVyU2l0ZSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9wYXJzZWRTZWxlY3RlZFNpdGU7XG4gICAgfVxuXG4gICAgc2V0IHNlbGVjdGVkU2l0ZSh2YWx1ZTogS2JxQXBwU3dpdGNoZXJTaXRlKSB7XG4gICAgICAgIGNvbnN0IG9yaWdpblZhbHVlID0gdGhpcy5vcmlnaW5hbFNpdGVzLmZpbmQoKHNpdGUpID0+IHZhbHVlLmlkID09PSBzaXRlLmlkKSBhcyBLYnFBcHBTd2l0Y2hlclNpdGU7XG4gICAgICAgIGNvbnN0IG5ld1NpdGU6IEticUFwcFN3aXRjaGVyU2l0ZSA9IHsgLi4ub3JpZ2luVmFsdWUsIGFwcHM6IFtdIH07XG5cbiAgICAgICAgbmV3U2l0ZS5hcHBzID0gdGhpcy5tYWtlR3JvdXBzRm9yQXBwcyhvcmlnaW5WYWx1ZS5hcHBzLCBLQlFfTUlOX05VTUJFUl9PRl9BUFBTX1RPX0VOQUJMRV9HUk9VUElORyk7XG5cbiAgICAgICAgdGhpcy5fcGFyc2VkU2VsZWN0ZWRTaXRlID0gbmV3U2l0ZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9wYXJzZWRTZWxlY3RlZFNpdGU6IEticUFwcFN3aXRjaGVyU2l0ZTtcblxuICAgIC8qKiBXaGV0aGVyIHRoZSB0cmlnZ2VyIGlzIGRpc2FibGVkLiAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KVxuICAgIGdldCBkaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2Rpc2FibGVkO1xuICAgIH1cblxuICAgIHNldCBkaXNhYmxlZCh2YWx1ZSkge1xuICAgICAgICB0aGlzLl9kaXNhYmxlZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG5cbiAgICAgICAgaWYgKHRoaXMuX2Rpc2FibGVkKSB7XG4gICAgICAgICAgICB0aGlzLmhpZGUoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAZG9jcy1wcml2YXRlICovXG4gICAgZ2V0IGhhc0NsaWNrVHJpZ2dlcigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudHJpZ2dlci5pbmNsdWRlcyhQb3BVcFRyaWdnZXJzLkNsaWNrKTtcbiAgICB9XG5cbiAgICAvKiogRW1pdHMgYSBjaGFuZ2UgZXZlbnQgd2hlbmV2ZXIgdGhlIHBsYWNlbWVudCBzdGF0ZSBjaGFuZ2VzLiAqL1xuICAgIEBPdXRwdXQoJ2ticVBsYWNlbWVudENoYW5nZScpIHJlYWRvbmx5IHBsYWNlbWVudENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIC8qKiBFbWl0cyBhIGNoYW5nZSBldmVudCB3aGVuZXZlciB0aGUgdmlzaWJsZSBzdGF0ZSBjaGFuZ2VzLiAqL1xuICAgIEBPdXRwdXQoJ2ticVZpc2libGVDaGFuZ2UnKSByZWFkb25seSB2aXNpYmxlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gICAgLyoqIEBkb2NzLXByaXZhdGUgKi9cbiAgICBAT3V0cHV0KCkgcmVhZG9ubHkgc2VsZWN0ZWRTaXRlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxLYnFBcHBTd2l0Y2hlclNpdGU+KCk7XG4gICAgLyoqIEBkb2NzLXByaXZhdGUgKi9cbiAgICBAT3V0cHV0KCkgcmVhZG9ubHkgc2VsZWN0ZWRBcHBDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPEticUFwcFN3aXRjaGVyQXBwPigpO1xuXG4gICAgLyoqIEBkb2NzLXByaXZhdGUgKi9cbiAgICB0cmlnZ2VyOiBzdHJpbmcgPSBgJHtQb3BVcFRyaWdnZXJzLkNsaWNrfSwgJHtQb3BVcFRyaWdnZXJzLktleWRvd259YDtcblxuICAgIC8qKiBAZG9jcy1wcml2YXRlICovXG4gICAgb3JpZ2luYWxTaXRlczogS2JxQXBwU3dpdGNoZXJTaXRlW107XG4gICAgLyoqIEBkb2NzLXByaXZhdGUgKi9cbiAgICBvcmlnaW5hbEFwcHM6IEticUFwcFN3aXRjaGVyQXBwW107XG5cbiAgICAvKiogQGRvY3MtcHJpdmF0ZSAqL1xuICAgIHByb3RlY3RlZCBvcmlnaW5TZWxlY3RvciA9ICcua2JxLWFwcC1zd2l0Y2hlcic7XG5cbiAgICAvKiogQGRvY3MtcHJpdmF0ZSAqL1xuICAgIHByb3RlY3RlZCBnZXQgb3ZlcmxheUNvbmZpZygpOiBPdmVybGF5Q29uZmlnIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHBhbmVsQ2xhc3M6ICdrYnEtYXBwLXN3aXRjaGVyX19wYW5lbCcsXG4gICAgICAgICAgICBoYXNCYWNrZHJvcDogdGhpcy5oYXNCYWNrZHJvcCxcbiAgICAgICAgICAgIGJhY2tkcm9wQ2xhc3M6IHRoaXMuYmFja2Ryb3BDbGFzc1xuICAgICAgICB9O1xuICAgIH1cblxuICAgIC8qKiBAZG9jcy1wcml2YXRlICovXG4gICAgcHJvdGVjdGVkIHByZXZlbnRDbG9zaW5nQnlJbm5lclNjcm9sbFN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XG5cbiAgICAgICAgdGhpcy5zY3JvbGxhYmxlXG4gICAgICAgICAgICA/LmVsZW1lbnRTY3JvbGxlZCgpXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUodGhpcy5oaWRlSWZOb3RJblZpZXdQb3J0KTtcbiAgICB9XG5cbiAgICBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmNsb3NlT25TY3JvbGwgPT09IG51bGwpIHtcbiAgICAgICAgICAgIHRoaXMuc2Nyb2xsRGlzcGF0Y2hlci5zY3JvbGxlZCgpLnN1YnNjcmliZSgoc2Nyb2xsYWJsZTogQ2RrU2Nyb2xsYWJsZSB8IHZvaWQpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoIXNjcm9sbGFibGU/LmdldEVsZW1lbnRSZWYoKS5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5jb250YWlucygna2JxLWhpZGUtbmVzdGVkLXBvcHVwJykpIHJldHVybjtcblxuICAgICAgICAgICAgICAgIGNvbnN0IHBhcmVudFJlY3RzID0gc2Nyb2xsYWJsZS5nZXRFbGVtZW50UmVmKCkubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgICAgICAgICBjb25zdCBjaGlsZFJlY3RzID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG5cbiAgICAgICAgICAgICAgICBpZiAoY2hpbGRSZWN0cy5ib3R0b20gPCBwYXJlbnRSZWN0cy50b3AgfHwgY2hpbGRSZWN0cy50b3AgPiBwYXJlbnRSZWN0cy5ib3R0b20pIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5oaWRlKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnZpc2libGVDaGFuZ2UucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKSkuc3Vic2NyaWJlKCh2aXNpYmxlOiBib29sZWFuKSA9PiB7XG4gICAgICAgICAgICBpZiAodmlzaWJsZSkge1xuICAgICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByeGpzL25vLW5lc3RlZC1zdWJzY3JpYmVcbiAgICAgICAgICAgICAgICB0aGlzLnByZXZlbnRDbG9zaW5nQnlJbm5lclNjcm9sbFN1YnNjcmlwdGlvbiA9IHRoaXMuY2xvc2luZ0FjdGlvbnMoKS5zdWJzY3JpYmUoKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChldmVudFsnc2Nyb2xsRGlzcGF0Y2hlciddKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBldmVudFsna2JxUG9wb3ZlclByZXZlbnRIaWRlJ10gPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnRbJ3R5cGUnXSA9ICdjbGljayc7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5wcmV2ZW50Q2xvc2luZ0J5SW5uZXJTY3JvbGxTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgICAgICAgICB0aGlzLmZvY3VzKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKiBAZG9jcy1wcml2YXRlICovXG4gICAgdXBkYXRlRGF0YSgpIHtcbiAgICAgICAgaWYgKCF0aGlzLmluc3RhbmNlKSByZXR1cm47XG5cbiAgICAgICAgdGhpcy5pbnN0YW5jZS5oZWFkZXIgPSB0aGlzLmhlYWRlcjtcbiAgICAgICAgdGhpcy5pbnN0YW5jZS5jb250ZW50ID0gdGhpcy5jb250ZW50O1xuICAgICAgICB0aGlzLmluc3RhbmNlLmFycm93ID0gdGhpcy5hcnJvdztcbiAgICAgICAgdGhpcy5pbnN0YW5jZS5vZmZzZXQgPSB0aGlzLm9mZnNldDtcbiAgICAgICAgdGhpcy5pbnN0YW5jZS5mb290ZXIgPSB0aGlzLmZvb3RlcjtcblxuICAgICAgICB0aGlzLmluc3RhbmNlLnVwZGF0ZVRyYXBGb2N1cyh0aGlzLnRyaWdnZXIgIT09IFBvcFVwVHJpZ2dlcnMuRm9jdXMpO1xuXG4gICAgICAgIGlmICh0aGlzLmlzT3Blbikge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVQb3NpdGlvbih0cnVlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBVcGRhdGVzIHRoZSBjdXJyZW50IHBvc2l0aW9uLlxuICAgICAqIEBkb2NzLXByaXZhdGUgKi9cbiAgICB1cGRhdGVQb3NpdGlvbihyZWFwcGx5UG9zaXRpb246IGJvb2xlYW4gPSBmYWxzZSkge1xuICAgICAgICB0aGlzLm92ZXJsYXlSZWYgPSB0aGlzLmNyZWF0ZU92ZXJsYXkoKTtcblxuICAgICAgICBjb25zdCBwb3NpdGlvbiA9ICh0aGlzLm92ZXJsYXlSZWYuZ2V0Q29uZmlnKCkucG9zaXRpb25TdHJhdGVneSBhcyBGbGV4aWJsZUNvbm5lY3RlZFBvc2l0aW9uU3RyYXRlZ3kpXG4gICAgICAgICAgICAud2l0aFBvc2l0aW9ucyh0aGlzLmdldEFkanVzdGVkUG9zaXRpb25zKCkpXG4gICAgICAgICAgICAud2l0aFB1c2godHJ1ZSk7XG5cbiAgICAgICAgaWYgKHJlYXBwbHlQb3NpdGlvbikge1xuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiBwb3NpdGlvbi5yZWFwcGx5TGFzdFBvc2l0aW9uKCkpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBkb2NzLXByaXZhdGUgKi9cbiAgICBnZXRPdmVybGF5SGFuZGxlQ29tcG9uZW50VHlwZSgpOiBUeXBlPEticUFwcFN3aXRjaGVyQ29tcG9uZW50PiB7XG4gICAgICAgIHJldHVybiBLYnFBcHBTd2l0Y2hlckNvbXBvbmVudDtcbiAgICB9XG5cbiAgICAvKiogQGRvY3MtcHJpdmF0ZSAqL1xuICAgIHVwZGF0ZUNsYXNzTWFwKG5ld1BsYWNlbWVudDogc3RyaW5nID0gdGhpcy5wbGFjZW1lbnQpIHtcbiAgICAgICAgaWYgKCF0aGlzLmluc3RhbmNlKSByZXR1cm47XG5cbiAgICAgICAgdGhpcy5pbnN0YW5jZS51cGRhdGVDbGFzc01hcChQT1NJVElPTl9UT19DU1NfTUFQW25ld1BsYWNlbWVudF0sIHRoaXMuY3VzdG9tQ2xhc3MsIHRoaXMuc2l6ZSk7XG4gICAgICAgIHRoaXMuaW5zdGFuY2UubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuXG4gICAgLyoqIEBkb2NzLXByaXZhdGUgKi9cbiAgICBjbG9zaW5nQWN0aW9ucygpIHtcbiAgICAgICAgcmV0dXJuIG1lcmdlKFxuICAgICAgICAgICAgdGhpcy5vdmVybGF5UmVmIS5vdXRzaWRlUG9pbnRlckV2ZW50cygpLFxuICAgICAgICAgICAgdGhpcy5vdmVybGF5UmVmIS5iYWNrZHJvcENsaWNrKCksXG4gICAgICAgICAgICB0aGlzLnNjcm9sbERpc3BhdGNoZXIuc2Nyb2xsZWQoKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgaGlkZUlmTm90SW5WaWV3UG9ydCA9ICgpID0+IHtcbiAgICAgICAgaWYgKCF0aGlzLnNjcm9sbGFibGUpIHJldHVybjtcblxuICAgICAgICBjb25zdCByZWN0ID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgIGNvbnN0IGNvbnRhaW5lclJlY3QgPSB0aGlzLnNjcm9sbGFibGUuZ2V0RWxlbWVudFJlZigpLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG5cbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgIShcbiAgICAgICAgICAgICAgICByZWN0LmJvdHRvbSA+PSBjb250YWluZXJSZWN0LnRvcCAmJlxuICAgICAgICAgICAgICAgIHJlY3QucmlnaHQgPj0gY29udGFpbmVyUmVjdC5sZWZ0ICYmXG4gICAgICAgICAgICAgICAgcmVjdC50b3AgPD0gY29udGFpbmVyUmVjdC5ib3R0b20gJiZcbiAgICAgICAgICAgICAgICByZWN0LmxlZnQgPD0gY29udGFpbmVyUmVjdC5yaWdodFxuICAgICAgICAgICAgKVxuICAgICAgICApIHtcbiAgICAgICAgICAgIHRoaXMuaGlkZSgpO1xuICAgICAgICB9XG4gICAgfTtcbn1cbiIsIkBpZiAodHJpZ2dlci53aXRoU2VhcmNoKSB7XG4gICAgPGRpdiBjbGFzcz1cImticS1hcHAtc3dpdGNoZXJfX3NlYXJjaC1jb250YWluZXJcIiAobW91c2VlbnRlcik9XCJvdGhlclNpdGVzPy5jbG9zZSgpXCI+XG4gICAgICAgIDxrYnEtZm9ybS1maWVsZCBub0JvcmRlcnM+XG4gICAgICAgICAgICA8aSBrYnEtaWNvbj1cImticS1tYWduaWZ5aW5nLWdsYXNzXzE2XCIga2JxUHJlZml4PjwvaT5cbiAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgIGF1dG9jb21wbGV0ZT1cIm9mZlwiXG4gICAgICAgICAgICAgICAga2JxSW5wdXRcbiAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cInt7IGxvY2FsZURhdGEuc2VhcmNoUGxhY2Vob2xkZXIgfX1cIlxuICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJzZWFyY2hDb250cm9sXCJcbiAgICAgICAgICAgICAgICAoa2V5ZG93bi5lc2NhcGUpPVwiZXNjYXBlSGFuZGxlcigpXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8a2JxLWNsZWFuZXIgLz5cbiAgICAgICAgPC9rYnEtZm9ybS1maWVsZD5cbiAgICA8L2Rpdj5cblxuICAgIDxrYnEtZGl2aWRlciAvPlxufVxuXG48ZGl2IGticS1zY3JvbGxiYXI+XG4gICAgQGlmICghc2VhcmNoQ29udHJvbC5nZXRSYXdWYWx1ZSgpKSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJrYnEtYXBwLXN3aXRjaGVyX19hcHAtY29udGFpbmVyXCIgKG1vdXNlZW50ZXIpPVwib3RoZXJTaXRlcz8uY2xvc2UoKVwiPlxuICAgICAgICAgICAgQGlmICh0cmlnZ2VyLnNpdGVzTW9kZSkge1xuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJrYnEtYXBwLXN3aXRjaGVyLWdyb3VwLWhlYWRlclwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwia2JxLWFwcC1zd2l0Y2hlci1ncm91cC1oZWFkZXJfX3RleHRcIj57eyB0cmlnZ2VyLnNlbGVjdGVkU2l0ZT8ubmFtZSB9fTwvZGl2PlxuICAgICAgICAgICAgICAgICAgICBAaWYgKHRyaWdnZXIuc2VsZWN0ZWRTaXRlPy5zdGF0dXMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxrYnEtYmFkZ2UgY2xhc3M9XCJrYnEtYXBwLXN3aXRjaGVyLWdyb3VwLWhlYWRlcl9fYmFkZ2VcIiBbY29tcGFjdF09XCJ0cnVlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgdHJpZ2dlci5zZWxlY3RlZFNpdGUuc3RhdHVzIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2ticS1iYWRnZT5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICA8a2JxLWRyb3Bkb3duIFtjbGFzc109XCIna2JxLWFwcC1zd2l0Y2hlci1zaXRlcydcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGticURyb3Bkb3duU3RhdGljQ29udGVudCBjbGFzcz1cImticS1hcHAtc3dpdGNoZXItc2l0ZVwiPlxuICAgICAgICAgICAgICAgICAgICBAZm9yIChhcHAgb2YgdHJpZ2dlci5jdXJyZW50QXBwczsgdHJhY2sgYXBwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBAaWYgKCFhcHAuYWxpYXNlcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGticS1hcHAtc3dpdGNoZXItbGlzdC1pdGVtXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhyZWY9XCJ7eyBhcHAubGluayB9fVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5rYnEtc2VsZWN0ZWRdPVwiYXBwLmlkID09PSB0cmlnZ2VyLnNlbGVjdGVkQXBwPy5pZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthcHBdPVwiYXBwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3RvZ2dsZV09XCIhIWFwcC5hbGlhc2VzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjYXBwU3dpdGNoZXJBcHA9XCJrYnFBcHBTd2l0Y2hlckFwcFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGticS1hcHAtc3dpdGNoZXItbGlzdC1pdGVtXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthcHBdPVwiYXBwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3RvZ2dsZV09XCIhIWFwcC5hbGlhc2VzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9kaXY+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYgKCFhcHBTd2l0Y2hlckFwcC5jb2xsYXBzZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGZvciAoYWxpYXMgb2YgYXBwLmFsaWFzZXM7IHRyYWNrIGFsaWFzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwia2JxLWFwcC1zd2l0Y2hlci1zaXRlX25lc3RlZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2JxLWFwcC1zd2l0Y2hlci1saXN0LWl0ZW1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBocmVmPVwie3sgYWxpYXMubGluayB9fVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmticS1zZWxlY3RlZF09XCJhbGlhcy5pZCA9PT0gdHJpZ2dlci5zZWxlY3RlZEFwcD8uaWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthcHBdPVwiYWxpYXNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvYT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9rYnEtZHJvcGRvd24+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIEBpZiAodHJpZ2dlci5zaXRlc01vZGUpIHtcbiAgICAgICAgICAgIDxrYnEtZGl2aWRlciAvPlxuXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwia2JxLWFwcC1zd2l0Y2hlcl9fc2l0ZXMtY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImticS1hcHAtc3dpdGNoZXItZ3JvdXAtaGVhZGVyXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJrYnEtYXBwLXN3aXRjaGVyLWdyb3VwLWhlYWRlcl9fdGV4dFwiPnt7IGxvY2FsZURhdGEuc2l0ZXNIZWFkZXIgfX08L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgIDxrYnEtZHJvcGRvd24gI290aGVyU2l0ZXM9XCJrYnFEcm9wZG93blwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGticURyb3Bkb3duU3RhdGljQ29udGVudCBjbGFzcz1cImticS1hcHAtc3dpdGNoZXItc2l0ZXNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIEBmb3IgKHNpdGUgb2YgdHJpZ2dlci5zaXRlczsgdHJhY2sgc2l0ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoc2l0ZS5pZCAhPT0gdHJpZ2dlci5zZWxlY3RlZFNpdGU/LmlkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtrYnEtYXBwLXN3aXRjaGVyLWRyb3Bkb3duLXNpdGVdPVwic2l0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBba2JxRHJvcGRvd25UcmlnZ2VyRm9yXT1cImRyb3Bkb3duV2l0aFNlbGVjdGVkU2l0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbb2Zmc2V0WF09XCIwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb3VzZWVudGVyKT1cImFjdGl2ZVNpdGUgPSBzaXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9rYnEtZHJvcGRvd24+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPGticS1kcm9wZG93biAjZHJvcGRvd25XaXRoU2VsZWN0ZWRTaXRlPVwia2JxRHJvcGRvd25cIiBbY2xhc3NdPVwiJ2ticS1hcHAtc3dpdGNoZXItc2l0ZXMnXCI+XG4gICAgICAgICAgICAgICAgQGZvciAoYXBwIG9mIGFjdGl2ZVNpdGU/LmFwcHM7IHRyYWNrIGFwcCkge1xuICAgICAgICAgICAgICAgICAgICBAaWYgKGFwcC5hbGlhc2VzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgI2Ryb3Bkb3duV2l0aEdyb3VwZWRBcHBzVHJpZ2dlcj1cImticURyb3Bkb3duVHJpZ2dlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2ticS1hcHAtc3dpdGNoZXItZHJvcGRvd24tYXBwXT1cImFwcFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2ticURyb3Bkb3duVHJpZ2dlckZvcl09XCJkcm9wZG93bldpdGhHcm91cGVkQXBwc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW29mZnNldFhdPVwiMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmticS1wcmVzc2VkXT1cImRyb3Bkb3duV2l0aEdyb3VwZWRBcHBzVHJpZ2dlci5vcGVuZWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb3VzZWVudGVyKT1cImFjdGl2ZUFwcCA9IGFwcFwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBocmVmPVwie3sgYXBwLmxpbmsgfX1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtrYnEtYXBwLXN3aXRjaGVyLWRyb3Bkb3duLWFwcF09XCJhcHBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzZWxlY3RBcHBJblNpdGUoYWN0aXZlU2l0ZSwgYXBwKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+PC9hPlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9rYnEtZHJvcGRvd24+XG5cbiAgICAgICAgICAgIDxrYnEtZHJvcGRvd24gI2Ryb3Bkb3duV2l0aEdyb3VwZWRBcHBzPVwia2JxRHJvcGRvd25cIiBbY2xhc3NdPVwiJ2ticS1hcHAtc3dpdGNoZXItc2l0ZXMnXCI+XG4gICAgICAgICAgICAgICAgQGZvciAoYWxpYXMgb2YgYWN0aXZlQXBwPy5hbGlhc2VzOyB0cmFjayBhbGlhcykge1xuICAgICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAgICAgaHJlZj1cInt7IGFsaWFzLmxpbmsgfX1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2ticS1hcHAtc3dpdGNoZXItZHJvcGRvd24tYXBwXT1cImFsaWFzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzZWxlY3RBcHBJblNpdGUoYWN0aXZlU2l0ZSwgYWxpYXMpXCJcbiAgICAgICAgICAgICAgICAgICAgPjwvYT5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2ticS1kcm9wZG93bj5cbiAgICAgICAgfVxuICAgIH0gQGVsc2Uge1xuICAgICAgICA8ZGl2IGNsYXNzPVwia2JxLWFwcC1zd2l0Y2hlcl9fc2VhcmNoLXJlc3VsdFwiPlxuICAgICAgICAgICAgPGticS1kcm9wZG93biBbY2xhc3NdPVwiJ2ticS1hcHAtc3dpdGNoZXItc2l0ZXMnXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBrYnFEcm9wZG93blN0YXRpY0NvbnRlbnQgY2xhc3M9XCJrYnEtYXBwLXN3aXRjaGVyLXNpdGVcIj5cbiAgICAgICAgICAgICAgICAgICAgQGZvciAoc2l0ZSBvZiBmaWx0ZXJlZFNpdGVzOyB0cmFjayBzaXRlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBAaWYgKHRyaWdnZXIuc2l0ZXNNb2RlICYmIHNpdGUuYXBwcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxrYnEtb3B0Z3JvdXAgbGFiZWw9XCJ7eyBzaXRlLm5hbWUgfX1cIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICBAZm9yIChhcHAgb2Ygc2l0ZS5hcHBzOyB0cmFjayBhcHApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBrYnEtYXBwLXN3aXRjaGVyLWxpc3QtaXRlbSBocmVmPVwie3sgYXBwLmxpbmsgfX1cIiBbYXBwXT1cImFwcFwiPjwvYT5cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSBAZW1wdHkge1xuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImticS1hcHAtc3dpdGNoZXJfX2VtcHR5LXNlYXJjaC1yZXN1bHRcIj57eyBsb2NhbGVEYXRhLnNlYXJjaEVtcHR5UmVzdWx0IH19PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwva2JxLWRyb3Bkb3duPlxuICAgICAgICA8L2Rpdj5cbiAgICB9XG48L2Rpdj5cbiJdfQ==
@@ -1,10 +1,11 @@
1
- import { NgTemplateOutlet } from '@angular/common';
1
+ import { NgOptimizedImage } from '@angular/common';
2
2
  import { booleanAttribute, ChangeDetectionStrategy, Component, inject, Input, ViewEncapsulation } from '@angular/core';
3
3
  import { DomSanitizer } from '@angular/platform-browser';
4
4
  import { KBQ_TITLE_TEXT_REF } from '@koobiq/components/core';
5
5
  import { KbqDropdownItem } from '@koobiq/components/dropdown';
6
- import { KbqIcon } from '@koobiq/components/icon';
6
+ import { KbqIconModule } from '@koobiq/components/icon';
7
7
  import * as i0 from "@angular/core";
8
+ import * as i1 from "@koobiq/components/icon";
8
9
  /** @docs-private */
9
10
  export class KbqAppSwitcherListItem extends KbqDropdownItem {
10
11
  constructor() {
@@ -28,7 +29,13 @@ export class KbqAppSwitcherListItem extends KbqDropdownItem {
28
29
  { provide: KBQ_TITLE_TEXT_REF, useExisting: KbqAppSwitcherListItem },
29
30
  { provide: KbqDropdownItem, useExisting: KbqAppSwitcherListItem }
30
31
  ], exportAs: ["kbqAppSwitcherApp"], usesInheritance: true, ngImport: i0, template: `
31
- <span class="kbq-app-switcher-list-item__icon" [innerHtml]="getIcon(app.icon)"></span>
32
+ @if (app.icon) {
33
+ <span class="kbq-app-switcher-list-item__icon" [innerHtml]="getIcon(app.icon)"></span>
34
+ } @else if (app.iconSrc) {
35
+ <span class="kbq-app-switcher-list-item__icon">
36
+ <img width="24" height="24" alt="{{ app.type }}" [ngSrc]="app.iconSrc" />
37
+ </span>
38
+ }
32
39
 
33
40
  <div class="kbq-app-switcher-list-item__container">
34
41
  <div class="kbq-app-switcher-list-item__name">{{ app.name }}</div>
@@ -42,12 +49,21 @@ export class KbqAppSwitcherListItem extends KbqDropdownItem {
42
49
  <i kbq-icon="kbq-chevron-down-s_16" [color]="'contrast-fade'"></i>
43
50
  </div>
44
51
  }
45
- `, isInline: true, styles: ["@keyframes kbq-progress{0%{background-position:0 0}to{background-position:64px 0}}.kbq-progress{position:relative}.kbq-progress:after{content:\"\";position:absolute;border-radius:inherit;inset:0;background:linear-gradient(135deg,#0000000a 12px,#ffffff1a 12px 22px,#0000000a 22px 34px,#ffffff1a 34px) repeat;background-size:32px 32px;animation:kbq-progress 1s linear infinite}.kbq-group{display:flex;flex-direction:row}.kbq-group .kbq-group_justified>.kbq-group-item{width:100%}.kbq-group .kbq-group-item+.kbq-group-item{margin-left:calc(-1 * var(--kbq-size-border-width))}.kbq-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:first-child:not(:last-child)>.kbq-form-field__container{border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child)>.kbq-form-field__container{border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child)>.kbq-form-field__container{border-radius:0}.kbq-vertical-group{display:flex;flex-direction:column}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-bottom-left-radius:0;border-top-right-radius:var(--kbq-size-border-radius)}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child)>.kbq-form-field__container{border-bottom-right-radius:0;border-bottom-left-radius:0}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child){border-top-right-radius:0;border-top-left-radius:0;border-bottom-left-radius:var(--kbq-size-border-radius)}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child)>.kbq-form-field__container{border-top-right-radius:0;border-top-left-radius:0}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child)>.kbq-form-field__container{border-radius:0}.kbq-vertical-group .kbq-group-item+.kbq-group-item{margin-top:calc(-1 * var(--kbq-size-border-width))}.kbq-truncate-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-no-select{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.kbq-app-switcher-list-item{position:relative;display:flex;flex-direction:row;max-width:100%;min-height:38px;border-radius:var(--kbq-size-s);padding:var(--kbq-size-xxs) var(--kbq-size-m) var(--kbq-size-xs) var(--kbq-size-m);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;text-decoration:none;box-sizing:border-box;outline:none;-webkit-tap-highlight-color:transparent;cursor:pointer}.kbq-app-switcher-list-item.kbq-app-switcher-site_nested{margin-left:var(--kbq-size-xxl);border-top-left-radius:unset;border-bottom-left-radius:unset}.kbq-app-switcher-list-item.kbq-app-switcher-site_nested:after{content:\"\";position:absolute;left:-1px;top:0;height:100%;border-left-width:1px;border-left-style:solid}.kbq-app-switcher-list-item.kbq-app-switcher-site_nested:has(+:not(.kbq-app-switcher-site_nested)),.kbq-app-switcher-list-item.kbq-app-switcher-site_nested:last-child{border-bottom-left-radius:var(--kbq-size-s)}.kbq-app-switcher-list-item.kbq-app-switcher-site_nested:has(+:not(.kbq-app-switcher-site_nested)):after,.kbq-app-switcher-list-item.kbq-app-switcher-site_nested:last-child:after{top:0;width:var(--kbq-size-m);height:var(--kbq-size-xxl);border-bottom-left-radius:var(--kbq-size-s);border-bottom-width:1px;border-bottom-style:solid}.kbq-app-switcher-list-item__toggle{position:absolute;display:none;align-items:center;justify-content:center;top:var(--kbq-size-m);left:var(--kbq-size-m);width:var(--kbq-size-xxl);height:var(--kbq-size-xxl);border-radius:var(--kbq-size-xxs)}.kbq-app-switcher-list-item__toggle .kbq-icon{transform:rotate(0)}.kbq-app-switcher-list-item__toggle.kbq-expanded .kbq-icon{transform:rotate(180deg)}.kbq-app-switcher-list-item__icon{padding-top:var(--kbq-size-s);padding-right:var(--kbq-size-m)}.kbq-app-switcher-list-item__container{max-width:100%;min-width:0;align-self:center}.kbq-app-switcher-list-item__container .kbq-app-switcher-list-item__name,.kbq-app-switcher-list-item__container .kbq-app-switcher-list-item__caption{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-app-switcher-site_nested:after{border-left-color:var(--kbq-line-contrast-less);border-bottom-color:var(--kbq-line-contrast-less)}.kbq-app-switcher-list-item__caption{color:var(--kbq-foreground-contrast-secondary)}.kbq-app-switcher-list-item{background:var(--kbq-list-default-container-background);color:var(--kbq-list-default-text-color)}.kbq-app-switcher-list-item:hover:has(.kbq-app-switcher-list-item__toggle) .kbq-app-switcher-list-item__icon,.kbq-app-switcher-list-item.kbq-hover:has(.kbq-app-switcher-list-item__toggle) .kbq-app-switcher-list-item__icon,.kbq-app-switcher-list-item.kbq-focused:has(.kbq-app-switcher-list-item__toggle) .kbq-app-switcher-list-item__icon{visibility:hidden}.kbq-app-switcher-list-item:hover .kbq-app-switcher-list-item__toggle,.kbq-app-switcher-list-item.kbq-hover .kbq-app-switcher-list-item__toggle,.kbq-app-switcher-list-item.kbq-focused .kbq-app-switcher-list-item__toggle{display:flex}.kbq-app-switcher-list-item:hover,.kbq-app-switcher-list-item.kbq-hover,.kbq-app-switcher-list-item:hover .kbq-app-switcher-list-item__toggle,.kbq-app-switcher-list-item.kbq-hover .kbq-app-switcher-list-item__toggle{background:var(--kbq-states-background-transparent-hover)}.kbq-app-switcher-list-item:active,.kbq-app-switcher-list-item.kbq-active{background:var(--kbq-states-background-transparent-active)}.kbq-app-switcher-list-item.kbq-selected{background:var(--kbq-background-theme-less)}.kbq-app-switcher-list-item.kbq-selected:hover,.kbq-app-switcher-list-item.kbq-selected.kbq-hover{background:var(--kbq-states-background-theme-less-hover)}.kbq-app-switcher-list-item.kbq-selected:active,.kbq-app-switcher-list-item.kbq-selected.kbq-active{background:var(--kbq-states-background-theme-less-active)}.kbq-app-switcher-list-item.cdk-keyboard-focused{outline:none;border-color:var(--kbq-list-states-focused-focus-outline-color)}.kbq-app-switcher-list-item__name{font-size:var(--kbq-typography-text-normal-medium-font-size);font-style:var(--kbq-typography-text-normal-medium-font-style);font-weight:var(--kbq-typography-text-normal-medium-font-weight);line-height:var(--kbq-typography-text-normal-medium-line-height);font-family:var(--kbq-typography-text-normal-medium-font-family);text-transform:var(--kbq-typography-text-normal-medium-text-transform);font-feature-settings:var(--kbq-typography-text-normal-medium-font-feature-settings);letter-spacing:var(--kbq-typography-text-normal-medium-letter-spacing)}.kbq-app-switcher-list-item__caption{font-size:var(--kbq-typography-text-compact-font-size);font-style:var(--kbq-typography-text-compact-font-style);font-weight:var(--kbq-typography-text-compact-font-weight);line-height:var(--kbq-typography-text-compact-line-height);font-family:var(--kbq-typography-text-compact-font-family);text-transform:var(--kbq-typography-text-compact-text-transform);font-feature-settings:var(--kbq-typography-text-compact-font-feature-settings);letter-spacing:var(--kbq-typography-text-compact-letter-spacing)}\n"], dependencies: [{ kind: "component", type: KbqIcon, selector: "[kbq-icon]", inputs: ["small", "autoColor", "kbq-icon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
52
+ `, isInline: true, styles: ["@keyframes kbq-progress{0%{background-position:0 0}to{background-position:64px 0}}.kbq-progress{position:relative}.kbq-progress:after{content:\"\";position:absolute;border-radius:inherit;inset:0;background:linear-gradient(135deg,#0000000a 12px,#ffffff1a 12px 22px,#0000000a 22px 34px,#ffffff1a 34px) repeat;background-size:32px 32px;animation:kbq-progress 1s linear infinite}.kbq-group{display:flex;flex-direction:row}.kbq-group .kbq-group_justified>.kbq-group-item{width:100%}.kbq-group .kbq-group-item+.kbq-group-item{margin-left:calc(-1 * var(--kbq-size-border-width))}.kbq-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:first-child:not(:last-child)>.kbq-form-field__container{border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child)>.kbq-form-field__container{border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child)>.kbq-form-field__container{border-radius:0}.kbq-vertical-group{display:flex;flex-direction:column}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-bottom-left-radius:0;border-top-right-radius:var(--kbq-size-border-radius)}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child)>.kbq-form-field__container{border-bottom-right-radius:0;border-bottom-left-radius:0}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child){border-top-right-radius:0;border-top-left-radius:0;border-bottom-left-radius:var(--kbq-size-border-radius)}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child)>.kbq-form-field__container{border-top-right-radius:0;border-top-left-radius:0}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child)>.kbq-form-field__container{border-radius:0}.kbq-vertical-group .kbq-group-item+.kbq-group-item{margin-top:calc(-1 * var(--kbq-size-border-width))}.kbq-truncate-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-no-select{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.kbq-app-switcher-list-item{position:relative;display:flex;flex-direction:row;max-width:100%;min-height:38px;border-radius:var(--kbq-size-s);padding:var(--kbq-size-xxs) var(--kbq-size-m) var(--kbq-size-xs) var(--kbq-size-m);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;text-decoration:none;box-sizing:border-box;outline:none;-webkit-tap-highlight-color:transparent;cursor:pointer}.kbq-app-switcher-list-item.kbq-app-switcher-site_nested{margin-left:var(--kbq-size-xxl);border-top-left-radius:unset;border-bottom-left-radius:unset}.kbq-app-switcher-list-item.kbq-app-switcher-site_nested:after{content:\"\";position:absolute;left:-1px;top:0;height:100%;border-left-width:1px;border-left-style:solid}.kbq-app-switcher-list-item.kbq-app-switcher-site_nested:has(+:not(.kbq-app-switcher-site_nested)),.kbq-app-switcher-list-item.kbq-app-switcher-site_nested:last-child{border-bottom-left-radius:var(--kbq-size-s)}.kbq-app-switcher-list-item.kbq-app-switcher-site_nested:has(+:not(.kbq-app-switcher-site_nested)):after,.kbq-app-switcher-list-item.kbq-app-switcher-site_nested:last-child:after{top:0;width:var(--kbq-size-m);height:var(--kbq-size-xxl);border-bottom-left-radius:var(--kbq-size-s);border-bottom-width:1px;border-bottom-style:solid}.kbq-app-switcher-list-item__toggle{position:absolute;display:none;align-items:center;justify-content:center;top:var(--kbq-size-m);left:var(--kbq-size-m);width:var(--kbq-size-xxl);height:var(--kbq-size-xxl);border-radius:var(--kbq-size-xxs)}.kbq-app-switcher-list-item__toggle .kbq-icon{transform:rotate(0)}.kbq-app-switcher-list-item__toggle.kbq-expanded .kbq-icon{transform:rotate(180deg)}.kbq-app-switcher-list-item__icon{padding-top:var(--kbq-size-s);padding-right:var(--kbq-size-m)}.kbq-app-switcher-list-item__container{max-width:100%;min-width:0;align-self:center}.kbq-app-switcher-list-item__container .kbq-app-switcher-list-item__name,.kbq-app-switcher-list-item__container .kbq-app-switcher-list-item__caption{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-app-switcher-site_nested:after{border-left-color:var(--kbq-line-contrast-less);border-bottom-color:var(--kbq-line-contrast-less)}.kbq-app-switcher-list-item__caption{color:var(--kbq-foreground-contrast-secondary)}.kbq-app-switcher-list-item{background:var(--kbq-list-default-container-background);color:var(--kbq-list-default-text-color)}.kbq-app-switcher-list-item:hover:has(.kbq-app-switcher-list-item__toggle) .kbq-app-switcher-list-item__icon,.kbq-app-switcher-list-item.kbq-hover:has(.kbq-app-switcher-list-item__toggle) .kbq-app-switcher-list-item__icon,.kbq-app-switcher-list-item.kbq-focused:has(.kbq-app-switcher-list-item__toggle) .kbq-app-switcher-list-item__icon{visibility:hidden}.kbq-app-switcher-list-item:hover .kbq-app-switcher-list-item__toggle,.kbq-app-switcher-list-item.kbq-hover .kbq-app-switcher-list-item__toggle,.kbq-app-switcher-list-item.kbq-focused .kbq-app-switcher-list-item__toggle{display:flex}.kbq-app-switcher-list-item:hover,.kbq-app-switcher-list-item.kbq-hover,.kbq-app-switcher-list-item:hover .kbq-app-switcher-list-item__toggle,.kbq-app-switcher-list-item.kbq-hover .kbq-app-switcher-list-item__toggle{background:var(--kbq-states-background-transparent-hover)}.kbq-app-switcher-list-item:active,.kbq-app-switcher-list-item.kbq-active{background:var(--kbq-states-background-transparent-active)}.kbq-app-switcher-list-item.kbq-selected{background:var(--kbq-background-theme-less)}.kbq-app-switcher-list-item.kbq-selected:hover,.kbq-app-switcher-list-item.kbq-selected.kbq-hover{background:var(--kbq-states-background-theme-less-hover)}.kbq-app-switcher-list-item.kbq-selected:active,.kbq-app-switcher-list-item.kbq-selected.kbq-active{background:var(--kbq-states-background-theme-less-active)}.kbq-app-switcher-list-item.cdk-keyboard-focused{outline:none;border-color:var(--kbq-list-states-focused-focus-outline-color)}.kbq-app-switcher-list-item__name{font-size:var(--kbq-typography-text-normal-medium-font-size);font-style:var(--kbq-typography-text-normal-medium-font-style);font-weight:var(--kbq-typography-text-normal-medium-font-weight);line-height:var(--kbq-typography-text-normal-medium-line-height);font-family:var(--kbq-typography-text-normal-medium-font-family);text-transform:var(--kbq-typography-text-normal-medium-text-transform);font-feature-settings:var(--kbq-typography-text-normal-medium-font-feature-settings);letter-spacing:var(--kbq-typography-text-normal-medium-letter-spacing)}.kbq-app-switcher-list-item__caption{font-size:var(--kbq-typography-text-compact-font-size);font-style:var(--kbq-typography-text-compact-font-style);font-weight:var(--kbq-typography-text-compact-font-weight);line-height:var(--kbq-typography-text-compact-line-height);font-family:var(--kbq-typography-text-compact-font-family);text-transform:var(--kbq-typography-text-compact-text-transform);font-feature-settings:var(--kbq-typography-text-compact-font-feature-settings);letter-spacing:var(--kbq-typography-text-compact-letter-spacing)}\n"], dependencies: [{ kind: "ngmodule", type: KbqIconModule }, { kind: "component", type: i1.KbqIcon, selector: "[kbq-icon]", inputs: ["small", "autoColor", "kbq-icon"] }, { kind: "directive", type: NgOptimizedImage, selector: "img[ngSrc]", inputs: ["ngSrc", "ngSrcset", "sizes", "width", "height", "loading", "priority", "loaderParams", "disableOptimizedSrcset", "fill", "placeholder", "placeholderConfig", "src", "srcset"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
46
53
  }
47
54
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: KbqAppSwitcherListItem, decorators: [{
48
55
  type: Component,
49
- args: [{ standalone: true, selector: '[kbq-app-switcher-list-item]', exportAs: 'kbqAppSwitcherApp', template: `
50
- <span class="kbq-app-switcher-list-item__icon" [innerHtml]="getIcon(app.icon)"></span>
56
+ args: [{ standalone: true, selector: '[kbq-app-switcher-list-item]', exportAs: 'kbqAppSwitcherApp', imports: [
57
+ KbqIconModule,
58
+ NgOptimizedImage
59
+ ], template: `
60
+ @if (app.icon) {
61
+ <span class="kbq-app-switcher-list-item__icon" [innerHtml]="getIcon(app.icon)"></span>
62
+ } @else if (app.iconSrc) {
63
+ <span class="kbq-app-switcher-list-item__icon">
64
+ <img width="24" height="24" alt="{{ app.type }}" [ngSrc]="app.iconSrc" />
65
+ </span>
66
+ }
51
67
 
52
68
  <div class="kbq-app-switcher-list-item__container">
53
69
  <div class="kbq-app-switcher-list-item__name">{{ app.name }}</div>
@@ -65,10 +81,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
65
81
  class: 'kbq-app-switcher-list-item',
66
82
  '[class.kbq-dropdown-item]': 'false',
67
83
  '(click)': 'clickHandler($event)'
68
- }, imports: [
69
- KbqIcon,
70
- NgTemplateOutlet
71
- ], providers: [
84
+ }, providers: [
72
85
  { provide: KBQ_TITLE_TEXT_REF, useExisting: KbqAppSwitcherListItem },
73
86
  { provide: KbqDropdownItem, useExisting: KbqAppSwitcherListItem }
74
87
  ], styles: ["@keyframes kbq-progress{0%{background-position:0 0}to{background-position:64px 0}}.kbq-progress{position:relative}.kbq-progress:after{content:\"\";position:absolute;border-radius:inherit;inset:0;background:linear-gradient(135deg,#0000000a 12px,#ffffff1a 12px 22px,#0000000a 22px 34px,#ffffff1a 34px) repeat;background-size:32px 32px;animation:kbq-progress 1s linear infinite}.kbq-group{display:flex;flex-direction:row}.kbq-group .kbq-group_justified>.kbq-group-item{width:100%}.kbq-group .kbq-group-item+.kbq-group-item{margin-left:calc(-1 * var(--kbq-size-border-width))}.kbq-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:first-child:not(:last-child)>.kbq-form-field__container{border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child)>.kbq-form-field__container{border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child)>.kbq-form-field__container{border-radius:0}.kbq-vertical-group{display:flex;flex-direction:column}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-bottom-left-radius:0;border-top-right-radius:var(--kbq-size-border-radius)}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child)>.kbq-form-field__container{border-bottom-right-radius:0;border-bottom-left-radius:0}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child){border-top-right-radius:0;border-top-left-radius:0;border-bottom-left-radius:var(--kbq-size-border-radius)}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child)>.kbq-form-field__container{border-top-right-radius:0;border-top-left-radius:0}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child)>.kbq-form-field__container{border-radius:0}.kbq-vertical-group .kbq-group-item+.kbq-group-item{margin-top:calc(-1 * var(--kbq-size-border-width))}.kbq-truncate-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-no-select{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.kbq-app-switcher-list-item{position:relative;display:flex;flex-direction:row;max-width:100%;min-height:38px;border-radius:var(--kbq-size-s);padding:var(--kbq-size-xxs) var(--kbq-size-m) var(--kbq-size-xs) var(--kbq-size-m);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;text-decoration:none;box-sizing:border-box;outline:none;-webkit-tap-highlight-color:transparent;cursor:pointer}.kbq-app-switcher-list-item.kbq-app-switcher-site_nested{margin-left:var(--kbq-size-xxl);border-top-left-radius:unset;border-bottom-left-radius:unset}.kbq-app-switcher-list-item.kbq-app-switcher-site_nested:after{content:\"\";position:absolute;left:-1px;top:0;height:100%;border-left-width:1px;border-left-style:solid}.kbq-app-switcher-list-item.kbq-app-switcher-site_nested:has(+:not(.kbq-app-switcher-site_nested)),.kbq-app-switcher-list-item.kbq-app-switcher-site_nested:last-child{border-bottom-left-radius:var(--kbq-size-s)}.kbq-app-switcher-list-item.kbq-app-switcher-site_nested:has(+:not(.kbq-app-switcher-site_nested)):after,.kbq-app-switcher-list-item.kbq-app-switcher-site_nested:last-child:after{top:0;width:var(--kbq-size-m);height:var(--kbq-size-xxl);border-bottom-left-radius:var(--kbq-size-s);border-bottom-width:1px;border-bottom-style:solid}.kbq-app-switcher-list-item__toggle{position:absolute;display:none;align-items:center;justify-content:center;top:var(--kbq-size-m);left:var(--kbq-size-m);width:var(--kbq-size-xxl);height:var(--kbq-size-xxl);border-radius:var(--kbq-size-xxs)}.kbq-app-switcher-list-item__toggle .kbq-icon{transform:rotate(0)}.kbq-app-switcher-list-item__toggle.kbq-expanded .kbq-icon{transform:rotate(180deg)}.kbq-app-switcher-list-item__icon{padding-top:var(--kbq-size-s);padding-right:var(--kbq-size-m)}.kbq-app-switcher-list-item__container{max-width:100%;min-width:0;align-self:center}.kbq-app-switcher-list-item__container .kbq-app-switcher-list-item__name,.kbq-app-switcher-list-item__container .kbq-app-switcher-list-item__caption{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-app-switcher-site_nested:after{border-left-color:var(--kbq-line-contrast-less);border-bottom-color:var(--kbq-line-contrast-less)}.kbq-app-switcher-list-item__caption{color:var(--kbq-foreground-contrast-secondary)}.kbq-app-switcher-list-item{background:var(--kbq-list-default-container-background);color:var(--kbq-list-default-text-color)}.kbq-app-switcher-list-item:hover:has(.kbq-app-switcher-list-item__toggle) .kbq-app-switcher-list-item__icon,.kbq-app-switcher-list-item.kbq-hover:has(.kbq-app-switcher-list-item__toggle) .kbq-app-switcher-list-item__icon,.kbq-app-switcher-list-item.kbq-focused:has(.kbq-app-switcher-list-item__toggle) .kbq-app-switcher-list-item__icon{visibility:hidden}.kbq-app-switcher-list-item:hover .kbq-app-switcher-list-item__toggle,.kbq-app-switcher-list-item.kbq-hover .kbq-app-switcher-list-item__toggle,.kbq-app-switcher-list-item.kbq-focused .kbq-app-switcher-list-item__toggle{display:flex}.kbq-app-switcher-list-item:hover,.kbq-app-switcher-list-item.kbq-hover,.kbq-app-switcher-list-item:hover .kbq-app-switcher-list-item__toggle,.kbq-app-switcher-list-item.kbq-hover .kbq-app-switcher-list-item__toggle{background:var(--kbq-states-background-transparent-hover)}.kbq-app-switcher-list-item:active,.kbq-app-switcher-list-item.kbq-active{background:var(--kbq-states-background-transparent-active)}.kbq-app-switcher-list-item.kbq-selected{background:var(--kbq-background-theme-less)}.kbq-app-switcher-list-item.kbq-selected:hover,.kbq-app-switcher-list-item.kbq-selected.kbq-hover{background:var(--kbq-states-background-theme-less-hover)}.kbq-app-switcher-list-item.kbq-selected:active,.kbq-app-switcher-list-item.kbq-selected.kbq-active{background:var(--kbq-states-background-theme-less-active)}.kbq-app-switcher-list-item.cdk-keyboard-focused{outline:none;border-color:var(--kbq-list-states-focused-focus-outline-color)}.kbq-app-switcher-list-item__name{font-size:var(--kbq-typography-text-normal-medium-font-size);font-style:var(--kbq-typography-text-normal-medium-font-style);font-weight:var(--kbq-typography-text-normal-medium-font-weight);line-height:var(--kbq-typography-text-normal-medium-line-height);font-family:var(--kbq-typography-text-normal-medium-font-family);text-transform:var(--kbq-typography-text-normal-medium-text-transform);font-feature-settings:var(--kbq-typography-text-normal-medium-font-feature-settings);letter-spacing:var(--kbq-typography-text-normal-medium-letter-spacing)}.kbq-app-switcher-list-item__caption{font-size:var(--kbq-typography-text-compact-font-size);font-style:var(--kbq-typography-text-compact-font-style);font-weight:var(--kbq-typography-text-compact-font-weight);line-height:var(--kbq-typography-text-compact-line-height);font-family:var(--kbq-typography-text-compact-font-family);text-transform:var(--kbq-typography-text-compact-text-transform);font-feature-settings:var(--kbq-typography-text-compact-font-feature-settings);letter-spacing:var(--kbq-typography-text-compact-letter-spacing)}\n"] }]
@@ -81,4 +94,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
81
94
  type: Input,
82
95
  args: [{ transform: booleanAttribute }]
83
96
  }] } });
84
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2JxLWFwcC1zd2l0Y2hlci1saXN0LWl0ZW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2FwcC1zd2l0Y2hlci9rYnEtYXBwLXN3aXRjaGVyLWxpc3QtaXRlbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkgsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzdELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0seUJBQXlCLENBQUM7O0FBR2xELG9CQUFvQjtBQXNDcEIsTUFBTSxPQUFPLHNCQUF1QixTQUFRLGVBQWU7SUFyQzNEOztRQXNDWSxjQUFTLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBR0QsV0FBTSxHQUFHLEtBQUssQ0FBQztRQUNmLGNBQVMsR0FBWSxLQUFLLENBQUM7S0FjdEU7SUFaRyxZQUFZLENBQUMsS0FBaUI7UUFDMUIsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDZCxLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDeEIsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBRXZCLElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBQ3JDLENBQUM7SUFDTCxDQUFDO0lBRUQsT0FBTyxDQUFDLElBQW1CO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDLENBQUM7SUFDOUQsQ0FBQztrSUFsQlEsc0JBQXNCO3NIQUF0QixzQkFBc0IsbUhBSVgsZ0JBQWdCLHlDQUNoQixnQkFBZ0IsNEtBVnpCO1lBQ1AsRUFBRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsV0FBVyxFQUFFLHNCQUFzQixFQUFFO1lBQ3BFLEVBQUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxXQUFXLEVBQUUsc0JBQXNCLEVBQUU7U0FDcEUsa0ZBL0JTOzs7Ozs7Ozs7Ozs7Ozs7S0FlVCwrMk9BVUcsT0FBTzs7NEZBUUYsc0JBQXNCO2tCQXJDbEMsU0FBUztpQ0FDTSxJQUFJLFlBQ04sOEJBQThCLFlBQzlCLG1CQUFtQixZQUNuQjs7Ozs7Ozs7Ozs7Ozs7O0tBZVQsbUJBRWdCLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLElBQUksUUFDL0I7d0JBQ0YsS0FBSyxFQUFFLDRCQUE0Qjt3QkFDbkMsMkJBQTJCLEVBQUUsT0FBTzt3QkFDcEMsU0FBUyxFQUFFLHNCQUFzQjtxQkFDcEMsV0FDUTt3QkFDTCxPQUFPO3dCQUNQLGdCQUFnQjtxQkFDbkIsYUFDVTt3QkFDUCxFQUFFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxXQUFXLHdCQUF3QixFQUFFO3dCQUNwRSxFQUFFLE9BQU8sRUFBRSxlQUFlLEVBQUUsV0FBVyx3QkFBd0IsRUFBRTtxQkFDcEU7OEJBS1EsR0FBRztzQkFBWCxLQUFLO2dCQUNrQyxNQUFNO3NCQUE3QyxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQUNFLFNBQVM7c0JBQWhELEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IGJvb2xlYW5BdHRyaWJ1dGUsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGluamVjdCwgSW5wdXQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbmltcG9ydCB7IEtCUV9USVRMRV9URVhUX1JFRiB9IGZyb20gJ0Brb29iaXEvY29tcG9uZW50cy9jb3JlJztcbmltcG9ydCB7IEticURyb3Bkb3duSXRlbSB9IGZyb20gJ0Brb29iaXEvY29tcG9uZW50cy9kcm9wZG93bic7XG5pbXBvcnQgeyBLYnFJY29uIH0gZnJvbSAnQGtvb2JpcS9jb21wb25lbnRzL2ljb24nO1xuaW1wb3J0IHsgS2JxQXBwU3dpdGNoZXJBcHAgfSBmcm9tICcuL2FwcC1zd2l0Y2hlcic7XG5cbi8qKiBAZG9jcy1wcml2YXRlICovXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiAnW2ticS1hcHAtc3dpdGNoZXItbGlzdC1pdGVtXScsXG4gICAgZXhwb3J0QXM6ICdrYnFBcHBTd2l0Y2hlckFwcCcsXG4gICAgdGVtcGxhdGU6IGBcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJrYnEtYXBwLXN3aXRjaGVyLWxpc3QtaXRlbV9faWNvblwiIFtpbm5lckh0bWxdPVwiZ2V0SWNvbihhcHAuaWNvbilcIj48L3NwYW4+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cImticS1hcHAtc3dpdGNoZXItbGlzdC1pdGVtX19jb250YWluZXJcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJrYnEtYXBwLXN3aXRjaGVyLWxpc3QtaXRlbV9fbmFtZVwiPnt7IGFwcC5uYW1lIH19PC9kaXY+XG4gICAgICAgICAgICBAaWYgKGFwcC5jYXB0aW9uKSB7XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImticS1hcHAtc3dpdGNoZXItbGlzdC1pdGVtX19jYXB0aW9uXCI+e3sgYXBwLmNhcHRpb24gfX08L2Rpdj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgQGlmICh0b2dnbGUpIHtcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJrYnEtYXBwLXN3aXRjaGVyLWxpc3QtaXRlbV9fdG9nZ2xlXCIgW2NsYXNzLmticS1leHBhbmRlZF09XCIhY29sbGFwc2VkXCI+XG4gICAgICAgICAgICAgICAgPGkga2JxLWljb249XCJrYnEtY2hldnJvbi1kb3duLXNfMTZcIiBbY29sb3JdPVwiJ2NvbnRyYXN0LWZhZGUnXCI+PC9pPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICBgLFxuICAgIHN0eWxlVXJsczogWydrYnEtYXBwLXN3aXRjaGVyLWxpc3QtaXRlbS5zY3NzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBob3N0OiB7XG4gICAgICAgIGNsYXNzOiAna2JxLWFwcC1zd2l0Y2hlci1saXN0LWl0ZW0nLFxuICAgICAgICAnW2NsYXNzLmticS1kcm9wZG93bi1pdGVtXSc6ICdmYWxzZScsXG4gICAgICAgICcoY2xpY2spJzogJ2NsaWNrSGFuZGxlcigkZXZlbnQpJ1xuICAgIH0sXG4gICAgaW1wb3J0czogW1xuICAgICAgICBLYnFJY29uLFxuICAgICAgICBOZ1RlbXBsYXRlT3V0bGV0XG4gICAgXSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgeyBwcm92aWRlOiBLQlFfVElUTEVfVEVYVF9SRUYsIHVzZUV4aXN0aW5nOiBLYnFBcHBTd2l0Y2hlckxpc3RJdGVtIH0sXG4gICAgICAgIHsgcHJvdmlkZTogS2JxRHJvcGRvd25JdGVtLCB1c2VFeGlzdGluZzogS2JxQXBwU3dpdGNoZXJMaXN0SXRlbSB9XG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBLYnFBcHBTd2l0Y2hlckxpc3RJdGVtIGV4dGVuZHMgS2JxRHJvcGRvd25JdGVtIHtcbiAgICBwcml2YXRlIHNhbml0aXplciA9IGluamVjdChEb21TYW5pdGl6ZXIpO1xuXG4gICAgQElucHV0KCkgYXBwOiBLYnFBcHBTd2l0Y2hlckFwcDtcbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgdG9nZ2xlID0gZmFsc2U7XG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGNvbGxhcHNlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgY2xpY2tIYW5kbGVyKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgICAgIGlmICh0aGlzLnRvZ2dsZSkge1xuICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgICAgICAgICB0aGlzLmNvbGxhcHNlZCA9ICF0aGlzLmNvbGxhcHNlZDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldEljb24oaWNvbjogc3RyaW5nIHwgbnVsbCkge1xuICAgICAgICByZXR1cm4gdGhpcy5zYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdEh0bWwoaWNvbiB8fCAnJyk7XG4gICAgfVxufVxuIl19
97
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2JxLWFwcC1zd2l0Y2hlci1saXN0LWl0ZW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2FwcC1zd2l0Y2hlci9rYnEtYXBwLXN3aXRjaGVyLWxpc3QtaXRlbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkgsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzdELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0seUJBQXlCLENBQUM7OztBQUd4RCxvQkFBb0I7QUE0Q3BCLE1BQU0sT0FBTyxzQkFBdUIsU0FBUSxlQUFlO0lBM0MzRDs7UUE0Q1ksY0FBUyxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUdELFdBQU0sR0FBRyxLQUFLLENBQUM7UUFDZixjQUFTLEdBQVksS0FBSyxDQUFDO0tBY3RFO0lBWkcsWUFBWSxDQUFDLEtBQWlCO1FBQzFCLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ2QsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQ3hCLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUV2QixJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUNyQyxDQUFDO0lBQ0wsQ0FBQztJQUVELE9BQU8sQ0FBQyxJQUFtQjtRQUN2QixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsdUJBQXVCLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzlELENBQUM7a0lBbEJRLHNCQUFzQjtzSEFBdEIsc0JBQXNCLG1IQUlYLGdCQUFnQix5Q0FDaEIsZ0JBQWdCLDRLQVZ6QjtZQUNQLEVBQUUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLFdBQVcsRUFBRSxzQkFBc0IsRUFBRTtZQUNwRSxFQUFFLE9BQU8sRUFBRSxlQUFlLEVBQUUsV0FBVyxFQUFFLHNCQUFzQixFQUFFO1NBQ3BFLGtGQWpDUzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0tBcUJULDgyT0F4QkcsYUFBYSw0SUFDYixnQkFBZ0I7OzRGQXFDWCxzQkFBc0I7a0JBM0NsQyxTQUFTO2lDQUNNLElBQUksWUFDTiw4QkFBOEIsWUFDOUIsbUJBQW1CLFdBQ3BCO3dCQUNMLGFBQWE7d0JBQ2IsZ0JBQWdCO3FCQUNuQixZQUNTOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7S0FxQlQsbUJBRWdCLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLElBQUksUUFDL0I7d0JBQ0YsS0FBSyxFQUFFLDRCQUE0Qjt3QkFDbkMsMkJBQTJCLEVBQUUsT0FBTzt3QkFDcEMsU0FBUyxFQUFFLHNCQUFzQjtxQkFDcEMsYUFDVTt3QkFDUCxFQUFFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxXQUFXLHdCQUF3QixFQUFFO3dCQUNwRSxFQUFFLE9BQU8sRUFBRSxlQUFlLEVBQUUsV0FBVyx3QkFBd0IsRUFBRTtxQkFDcEU7OEJBS1EsR0FBRztzQkFBWCxLQUFLO2dCQUNrQyxNQUFNO3NCQUE3QyxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQUNFLFNBQVM7c0JBQWhELEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ09wdGltaXplZEltYWdlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IGJvb2xlYW5BdHRyaWJ1dGUsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGluamVjdCwgSW5wdXQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbmltcG9ydCB7IEtCUV9USVRMRV9URVhUX1JFRiB9IGZyb20gJ0Brb29iaXEvY29tcG9uZW50cy9jb3JlJztcbmltcG9ydCB7IEticURyb3Bkb3duSXRlbSB9IGZyb20gJ0Brb29iaXEvY29tcG9uZW50cy9kcm9wZG93bic7XG5pbXBvcnQgeyBLYnFJY29uTW9kdWxlIH0gZnJvbSAnQGtvb2JpcS9jb21wb25lbnRzL2ljb24nO1xuaW1wb3J0IHsgS2JxQXBwU3dpdGNoZXJBcHAgfSBmcm9tICcuL2FwcC1zd2l0Y2hlcic7XG5cbi8qKiBAZG9jcy1wcml2YXRlICovXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiAnW2ticS1hcHAtc3dpdGNoZXItbGlzdC1pdGVtXScsXG4gICAgZXhwb3J0QXM6ICdrYnFBcHBTd2l0Y2hlckFwcCcsXG4gICAgaW1wb3J0czogW1xuICAgICAgICBLYnFJY29uTW9kdWxlLFxuICAgICAgICBOZ09wdGltaXplZEltYWdlXG4gICAgXSxcbiAgICB0ZW1wbGF0ZTogYFxuICAgICAgICBAaWYgKGFwcC5pY29uKSB7XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImticS1hcHAtc3dpdGNoZXItbGlzdC1pdGVtX19pY29uXCIgW2lubmVySHRtbF09XCJnZXRJY29uKGFwcC5pY29uKVwiPjwvc3Bhbj5cbiAgICAgICAgfSBAZWxzZSBpZiAoYXBwLmljb25TcmMpIHtcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwia2JxLWFwcC1zd2l0Y2hlci1saXN0LWl0ZW1fX2ljb25cIj5cbiAgICAgICAgICAgICAgICA8aW1nIHdpZHRoPVwiMjRcIiBoZWlnaHQ9XCIyNFwiIGFsdD1cInt7IGFwcC50eXBlIH19XCIgW25nU3JjXT1cImFwcC5pY29uU3JjXCIgLz5cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgfVxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJrYnEtYXBwLXN3aXRjaGVyLWxpc3QtaXRlbV9fY29udGFpbmVyXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwia2JxLWFwcC1zd2l0Y2hlci1saXN0LWl0ZW1fX25hbWVcIj57eyBhcHAubmFtZSB9fTwvZGl2PlxuICAgICAgICAgICAgQGlmIChhcHAuY2FwdGlvbikge1xuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJrYnEtYXBwLXN3aXRjaGVyLWxpc3QtaXRlbV9fY2FwdGlvblwiPnt7IGFwcC5jYXB0aW9uIH19PC9kaXY+XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIEBpZiAodG9nZ2xlKSB7XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwia2JxLWFwcC1zd2l0Y2hlci1saXN0LWl0ZW1fX3RvZ2dsZVwiIFtjbGFzcy5rYnEtZXhwYW5kZWRdPVwiIWNvbGxhcHNlZFwiPlxuICAgICAgICAgICAgICAgIDxpIGticS1pY29uPVwia2JxLWNoZXZyb24tZG93bi1zXzE2XCIgW2NvbG9yXT1cIidjb250cmFzdC1mYWRlJ1wiPjwvaT5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgYCxcbiAgICBzdHlsZVVybHM6IFsna2JxLWFwcC1zd2l0Y2hlci1saXN0LWl0ZW0uc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgaG9zdDoge1xuICAgICAgICBjbGFzczogJ2ticS1hcHAtc3dpdGNoZXItbGlzdC1pdGVtJyxcbiAgICAgICAgJ1tjbGFzcy5rYnEtZHJvcGRvd24taXRlbV0nOiAnZmFsc2UnLFxuICAgICAgICAnKGNsaWNrKSc6ICdjbGlja0hhbmRsZXIoJGV2ZW50KSdcbiAgICB9LFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7IHByb3ZpZGU6IEtCUV9USVRMRV9URVhUX1JFRiwgdXNlRXhpc3Rpbmc6IEticUFwcFN3aXRjaGVyTGlzdEl0ZW0gfSxcbiAgICAgICAgeyBwcm92aWRlOiBLYnFEcm9wZG93bkl0ZW0sIHVzZUV4aXN0aW5nOiBLYnFBcHBTd2l0Y2hlckxpc3RJdGVtIH1cbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIEticUFwcFN3aXRjaGVyTGlzdEl0ZW0gZXh0ZW5kcyBLYnFEcm9wZG93bkl0ZW0ge1xuICAgIHByaXZhdGUgc2FuaXRpemVyID0gaW5qZWN0KERvbVNhbml0aXplcik7XG5cbiAgICBASW5wdXQoKSBhcHA6IEticUFwcFN3aXRjaGVyQXBwO1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSB0b2dnbGUgPSBmYWxzZTtcbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgY29sbGFwc2VkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBjbGlja0hhbmRsZXIoZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICAgICAgaWYgKHRoaXMudG9nZ2xlKSB7XG4gICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICAgICAgICAgIHRoaXMuY29sbGFwc2VkID0gIXRoaXMuY29sbGFwc2VkO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0SWNvbihpY29uOiBzdHJpbmcgfCBudWxsKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0SHRtbChpY29uIHx8ICcnKTtcbiAgICB9XG59XG4iXX0=
@@ -1,3 +1,3 @@
1
1
  import { Version } from '@angular/core';
2
- export const VERSION = new Version('18.39.1+sha-00f49ca');
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvY29yZS92ZXJzaW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFeEMsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFHLElBQUksT0FBTyxDQUFDLHFCQUFxQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBWZXJzaW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCBjb25zdCBWRVJTSU9OID0gbmV3IFZlcnNpb24oJzE4LjM5LjErc2hhLTAwZjQ5Y2EnKTtcbiJdfQ==
2
+ export const VERSION = new Version('18.39.2+sha-3fb71e1');
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvY29yZS92ZXJzaW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFeEMsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFHLElBQUksT0FBTyxDQUFDLHFCQUFxQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBWZXJzaW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCBjb25zdCBWRVJTSU9OID0gbmV3IFZlcnNpb24oJzE4LjM5LjIrc2hhLTNmYjcxZTEnKTtcbiJdfQ==