@trimble-oss/moduswebcomponents-angular 1.0.1-ng18 → 1.0.2-ng17

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.
@@ -5,16 +5,14 @@ import { ChangeDetectionStrategy, Component } from '@angular/core';
5
5
  import { ProxyCmp, proxyOutputs } from './angular-component-lib/utils';
6
6
  import * as i0 from "@angular/core";
7
7
  let ModusWcAccordion = class ModusWcAccordion {
8
- z;
9
- el;
10
8
  constructor(c, r, z) {
11
9
  this.z = z;
12
10
  c.detach();
13
11
  this.el = r.nativeElement;
14
12
  proxyOutputs(this, this.el, ['expandedChange']);
15
13
  }
16
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: ModusWcAccordion, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
17
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: ModusWcAccordion, selector: "modus-wc-accordion", inputs: { customClass: "customClass" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
14
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ModusWcAccordion, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
15
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ModusWcAccordion, selector: "modus-wc-accordion", inputs: { customClass: "customClass" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
18
16
  };
19
17
  ModusWcAccordion = __decorate([
20
18
  ProxyCmp({
@@ -22,7 +20,7 @@ ModusWcAccordion = __decorate([
22
20
  })
23
21
  ], ModusWcAccordion);
24
22
  export { ModusWcAccordion };
25
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: ModusWcAccordion, decorators: [{
23
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ModusWcAccordion, decorators: [{
26
24
  type: Component,
27
25
  args: [{
28
26
  selector: 'modus-wc-accordion',
@@ -33,16 +31,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
33
31
  }]
34
32
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
35
33
  let ModusWcAlert = class ModusWcAlert {
36
- z;
37
- el;
38
34
  constructor(c, r, z) {
39
35
  this.z = z;
40
36
  c.detach();
41
37
  this.el = r.nativeElement;
42
38
  proxyOutputs(this, this.el, ['dismissClick']);
43
39
  }
44
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: ModusWcAlert, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
45
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: ModusWcAlert, selector: "modus-wc-alert", inputs: { alertDescription: "alertDescription", alertTitle: "alertTitle", customClass: "customClass", delay: "delay", dismissible: "dismissible", icon: "icon", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
40
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ModusWcAlert, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
41
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ModusWcAlert, selector: "modus-wc-alert", inputs: { alertDescription: "alertDescription", alertTitle: "alertTitle", customClass: "customClass", delay: "delay", dismissible: "dismissible", icon: "icon", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
46
42
  };
47
43
  ModusWcAlert = __decorate([
48
44
  ProxyCmp({
@@ -50,7 +46,7 @@ ModusWcAlert = __decorate([
50
46
  })
51
47
  ], ModusWcAlert);
52
48
  export { ModusWcAlert };
53
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: ModusWcAlert, decorators: [{
49
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ModusWcAlert, decorators: [{
54
50
  type: Component,
55
51
  args: [{
56
52
  selector: 'modus-wc-alert',
@@ -61,16 +57,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
61
57
  }]
62
58
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
63
59
  let ModusWcAutocomplete = class ModusWcAutocomplete {
64
- z;
65
- el;
66
60
  constructor(c, r, z) {
67
61
  this.z = z;
68
62
  c.detach();
69
63
  this.el = r.nativeElement;
70
64
  proxyOutputs(this, this.el, ['chipRemove', 'chipsExpansionChange', 'inputBlur', 'inputChange', 'inputFocus', 'itemSelect']);
71
65
  }
72
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: ModusWcAutocomplete, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
73
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: ModusWcAutocomplete, selector: "modus-wc-autocomplete", inputs: { bordered: "bordered", customBlur: "customBlur", customClass: "customClass", customInputChange: "customInputChange", customItemSelect: "customItemSelect", customKeyDown: "customKeyDown", debounceMs: "debounceMs", disabled: "disabled", includeClear: "includeClear", includeSearch: "includeSearch", inputId: "inputId", inputTabIndex: "inputTabIndex", items: "items", label: "label", leaveMenuOpen: "leaveMenuOpen", maxChips: "maxChips", minChars: "minChars", minInputWidth: "minInputWidth", multiSelect: "multiSelect", name: "name", noResults: "noResults", placeholder: "placeholder", readOnly: "readOnly", required: "required", showMenuOnFocus: "showMenuOnFocus", showSpinner: "showSpinner", size: "size", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
66
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ModusWcAutocomplete, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
67
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ModusWcAutocomplete, selector: "modus-wc-autocomplete", inputs: { bordered: "bordered", customBlur: "customBlur", customClass: "customClass", customInputChange: "customInputChange", customItemSelect: "customItemSelect", customKeyDown: "customKeyDown", debounceMs: "debounceMs", disabled: "disabled", includeClear: "includeClear", includeSearch: "includeSearch", inputId: "inputId", inputTabIndex: "inputTabIndex", items: "items", label: "label", leaveMenuOpen: "leaveMenuOpen", maxChips: "maxChips", minChars: "minChars", minInputWidth: "minInputWidth", multiSelect: "multiSelect", name: "name", noResults: "noResults", placeholder: "placeholder", readOnly: "readOnly", required: "required", showMenuOnFocus: "showMenuOnFocus", showSpinner: "showSpinner", size: "size", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
74
68
  };
75
69
  ModusWcAutocomplete = __decorate([
76
70
  ProxyCmp({
@@ -79,7 +73,7 @@ ModusWcAutocomplete = __decorate([
79
73
  })
80
74
  ], ModusWcAutocomplete);
81
75
  export { ModusWcAutocomplete };
82
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: ModusWcAutocomplete, decorators: [{
76
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ModusWcAutocomplete, decorators: [{
83
77
  type: Component,
84
78
  args: [{
85
79
  selector: 'modus-wc-autocomplete',
@@ -90,15 +84,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
90
84
  }]
91
85
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
92
86
  let ModusWcAvatar = class ModusWcAvatar {
93
- z;
94
- el;
95
87
  constructor(c, r, z) {
96
88
  this.z = z;
97
89
  c.detach();
98
90
  this.el = r.nativeElement;
99
91
  }
100
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: ModusWcAvatar, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
101
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: ModusWcAvatar, selector: "modus-wc-avatar", inputs: { alt: "alt", customClass: "customClass", imgSrc: "imgSrc", initials: "initials", shape: "shape", size: "size" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
92
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ModusWcAvatar, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
93
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ModusWcAvatar, selector: "modus-wc-avatar", inputs: { alt: "alt", customClass: "customClass", imgSrc: "imgSrc", initials: "initials", shape: "shape", size: "size" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
102
94
  };
103
95
  ModusWcAvatar = __decorate([
104
96
  ProxyCmp({
@@ -106,7 +98,7 @@ ModusWcAvatar = __decorate([
106
98
  })
107
99
  ], ModusWcAvatar);
108
100
  export { ModusWcAvatar };
109
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: ModusWcAvatar, decorators: [{
101
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ModusWcAvatar, decorators: [{
110
102
  type: Component,
111
103
  args: [{
112
104
  selector: 'modus-wc-avatar',
@@ -117,15 +109,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
117
109
  }]
118
110
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
119
111
  let ModusWcBadge = class ModusWcBadge {
120
- z;
121
- el;
122
112
  constructor(c, r, z) {
123
113
  this.z = z;
124
114
  c.detach();
125
115
  this.el = r.nativeElement;
126
116
  }
127
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: ModusWcBadge, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
128
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: ModusWcBadge, selector: "modus-wc-badge", inputs: { color: "color", customClass: "customClass", size: "size", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
117
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ModusWcBadge, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
118
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ModusWcBadge, selector: "modus-wc-badge", inputs: { color: "color", customClass: "customClass", size: "size", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
129
119
  };
130
120
  ModusWcBadge = __decorate([
131
121
  ProxyCmp({
@@ -133,7 +123,7 @@ ModusWcBadge = __decorate([
133
123
  })
134
124
  ], ModusWcBadge);
135
125
  export { ModusWcBadge };
136
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: ModusWcBadge, decorators: [{
126
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ModusWcBadge, decorators: [{
137
127
  type: Component,
138
128
  args: [{
139
129
  selector: 'modus-wc-badge',
@@ -144,16 +134,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
144
134
  }]
145
135
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
146
136
  let ModusWcBreadcrumbs = class ModusWcBreadcrumbs {
147
- z;
148
- el;
149
137
  constructor(c, r, z) {
150
138
  this.z = z;
151
139
  c.detach();
152
140
  this.el = r.nativeElement;
153
141
  proxyOutputs(this, this.el, ['breadcrumbClick']);
154
142
  }
155
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: ModusWcBreadcrumbs, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
156
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: ModusWcBreadcrumbs, selector: "modus-wc-breadcrumbs", inputs: { customClass: "customClass", items: "items", size: "size" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
143
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ModusWcBreadcrumbs, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
144
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ModusWcBreadcrumbs, selector: "modus-wc-breadcrumbs", inputs: { customClass: "customClass", items: "items", size: "size" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
157
145
  };
158
146
  ModusWcBreadcrumbs = __decorate([
159
147
  ProxyCmp({
@@ -161,7 +149,7 @@ ModusWcBreadcrumbs = __decorate([
161
149
  })
162
150
  ], ModusWcBreadcrumbs);
163
151
  export { ModusWcBreadcrumbs };
164
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: ModusWcBreadcrumbs, decorators: [{
152
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ModusWcBreadcrumbs, decorators: [{
165
153
  type: Component,
166
154
  args: [{
167
155
  selector: 'modus-wc-breadcrumbs',
@@ -172,16 +160,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
172
160
  }]
173
161
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
174
162
  let ModusWcButton = class ModusWcButton {
175
- z;
176
- el;
177
163
  constructor(c, r, z) {
178
164
  this.z = z;
179
165
  c.detach();
180
166
  this.el = r.nativeElement;
181
167
  proxyOutputs(this, this.el, ['buttonClick']);
182
168
  }
183
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: ModusWcButton, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
184
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: ModusWcButton, selector: "modus-wc-button", inputs: { color: "color", customClass: "customClass", disabled: "disabled", fullWidth: "fullWidth", pressed: "pressed", shape: "shape", size: "size", type: "type", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
169
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ModusWcButton, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
170
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ModusWcButton, selector: "modus-wc-button", inputs: { color: "color", customClass: "customClass", disabled: "disabled", fullWidth: "fullWidth", pressed: "pressed", shape: "shape", size: "size", type: "type", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
185
171
  };
186
172
  ModusWcButton = __decorate([
187
173
  ProxyCmp({
@@ -189,7 +175,7 @@ ModusWcButton = __decorate([
189
175
  })
190
176
  ], ModusWcButton);
191
177
  export { ModusWcButton };
192
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: ModusWcButton, decorators: [{
178
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ModusWcButton, decorators: [{
193
179
  type: Component,
194
180
  args: [{
195
181
  selector: 'modus-wc-button',
@@ -200,15 +186,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
200
186
  }]
201
187
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
202
188
  let ModusWcCard = class ModusWcCard {
203
- z;
204
- el;
205
189
  constructor(c, r, z) {
206
190
  this.z = z;
207
191
  c.detach();
208
192
  this.el = r.nativeElement;
209
193
  }
210
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: ModusWcCard, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
211
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: ModusWcCard, selector: "modus-wc-card", inputs: { backgroundFigure: "backgroundFigure", bordered: "bordered", customClass: "customClass", layout: "layout", padding: "padding" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
194
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ModusWcCard, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
195
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ModusWcCard, selector: "modus-wc-card", inputs: { backgroundFigure: "backgroundFigure", bordered: "bordered", customClass: "customClass", layout: "layout", padding: "padding" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
212
196
  };
213
197
  ModusWcCard = __decorate([
214
198
  ProxyCmp({
@@ -216,7 +200,7 @@ ModusWcCard = __decorate([
216
200
  })
217
201
  ], ModusWcCard);
218
202
  export { ModusWcCard };
219
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: ModusWcCard, decorators: [{
203
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ModusWcCard, decorators: [{
220
204
  type: Component,
221
205
  args: [{
222
206
  selector: 'modus-wc-card',
@@ -227,16 +211,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
227
211
  }]
228
212
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
229
213
  let ModusWcCheckbox = class ModusWcCheckbox {
230
- z;
231
- el;
232
214
  constructor(c, r, z) {
233
215
  this.z = z;
234
216
  c.detach();
235
217
  this.el = r.nativeElement;
236
218
  proxyOutputs(this, this.el, ['inputBlur', 'inputChange', 'inputFocus']);
237
219
  }
238
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: ModusWcCheckbox, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
239
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: ModusWcCheckbox, selector: "modus-wc-checkbox", inputs: { customClass: "customClass", disabled: "disabled", indeterminate: "indeterminate", inputId: "inputId", inputTabIndex: "inputTabIndex", label: "label", name: "name", required: "required", size: "size", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
220
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ModusWcCheckbox, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
221
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ModusWcCheckbox, selector: "modus-wc-checkbox", inputs: { customClass: "customClass", disabled: "disabled", indeterminate: "indeterminate", inputId: "inputId", inputTabIndex: "inputTabIndex", label: "label", name: "name", required: "required", size: "size", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
240
222
  };
241
223
  ModusWcCheckbox = __decorate([
242
224
  ProxyCmp({
@@ -244,7 +226,7 @@ ModusWcCheckbox = __decorate([
244
226
  })
245
227
  ], ModusWcCheckbox);
246
228
  export { ModusWcCheckbox };
247
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: ModusWcCheckbox, decorators: [{
229
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ModusWcCheckbox, decorators: [{
248
230
  type: Component,
249
231
  args: [{
250
232
  selector: 'modus-wc-checkbox',
@@ -255,16 +237,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
255
237
  }]
256
238
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
257
239
  let ModusWcChip = class ModusWcChip {
258
- z;
259
- el;
260
240
  constructor(c, r, z) {
261
241
  this.z = z;
262
242
  c.detach();
263
243
  this.el = r.nativeElement;
264
244
  proxyOutputs(this, this.el, ['chipClick', 'chipRemove']);
265
245
  }
266
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: ModusWcChip, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
267
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: ModusWcChip, selector: "modus-wc-chip", inputs: { active: "active", customClass: "customClass", disabled: "disabled", hasError: "hasError", label: "label", shape: "shape", showRemove: "showRemove", size: "size", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
246
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ModusWcChip, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
247
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ModusWcChip, selector: "modus-wc-chip", inputs: { active: "active", customClass: "customClass", disabled: "disabled", hasError: "hasError", label: "label", shape: "shape", showRemove: "showRemove", size: "size", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
268
248
  };
269
249
  ModusWcChip = __decorate([
270
250
  ProxyCmp({
@@ -272,7 +252,7 @@ ModusWcChip = __decorate([
272
252
  })
273
253
  ], ModusWcChip);
274
254
  export { ModusWcChip };
275
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: ModusWcChip, decorators: [{
255
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ModusWcChip, decorators: [{
276
256
  type: Component,
277
257
  args: [{
278
258
  selector: 'modus-wc-chip',
@@ -283,16 +263,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
283
263
  }]
284
264
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
285
265
  let ModusWcCollapse = class ModusWcCollapse {
286
- z;
287
- el;
288
266
  constructor(c, r, z) {
289
267
  this.z = z;
290
268
  c.detach();
291
269
  this.el = r.nativeElement;
292
270
  proxyOutputs(this, this.el, ['expandedChange']);
293
271
  }
294
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: ModusWcCollapse, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
295
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: ModusWcCollapse, selector: "modus-wc-collapse", inputs: { bordered: "bordered", collapseId: "collapseId", customClass: "customClass", expanded: "expanded", options: "options" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
272
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ModusWcCollapse, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
273
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ModusWcCollapse, selector: "modus-wc-collapse", inputs: { bordered: "bordered", collapseId: "collapseId", customClass: "customClass", expanded: "expanded", options: "options" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
296
274
  };
297
275
  ModusWcCollapse = __decorate([
298
276
  ProxyCmp({
@@ -300,7 +278,7 @@ ModusWcCollapse = __decorate([
300
278
  })
301
279
  ], ModusWcCollapse);
302
280
  export { ModusWcCollapse };
303
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: ModusWcCollapse, decorators: [{
281
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ModusWcCollapse, decorators: [{
304
282
  type: Component,
305
283
  args: [{
306
284
  selector: 'modus-wc-collapse',
@@ -311,16 +289,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
311
289
  }]
312
290
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
313
291
  let ModusWcDate = class ModusWcDate {
314
- z;
315
- el;
316
292
  constructor(c, r, z) {
317
293
  this.z = z;
318
294
  c.detach();
319
295
  this.el = r.nativeElement;
320
296
  proxyOutputs(this, this.el, ['inputBlur', 'inputChange', 'inputFocus', 'calendarMonthChange', 'calendarYearChange']);
321
297
  }
322
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: ModusWcDate, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
323
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: ModusWcDate, selector: "modus-wc-date", inputs: { bordered: "bordered", customClass: "customClass", disabled: "disabled", feedback: "feedback", format: "format", inputId: "inputId", inputTabIndex: "inputTabIndex", label: "label", max: "max", min: "min", name: "name", readOnly: "readOnly", required: "required", size: "size", value: "value", weekStartDay: "weekStartDay" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
298
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ModusWcDate, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
299
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ModusWcDate, selector: "modus-wc-date", inputs: { bordered: "bordered", customClass: "customClass", disabled: "disabled", feedback: "feedback", format: "format", inputId: "inputId", inputTabIndex: "inputTabIndex", label: "label", max: "max", min: "min", name: "name", readOnly: "readOnly", required: "required", size: "size", value: "value", weekStartDay: "weekStartDay" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
324
300
  };
325
301
  ModusWcDate = __decorate([
326
302
  ProxyCmp({
@@ -328,7 +304,7 @@ ModusWcDate = __decorate([
328
304
  })
329
305
  ], ModusWcDate);
330
306
  export { ModusWcDate };
331
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: ModusWcDate, decorators: [{
307
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ModusWcDate, decorators: [{
332
308
  type: Component,
333
309
  args: [{
334
310
  selector: 'modus-wc-date',
@@ -339,15 +315,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
339
315
  }]
340
316
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
341
317
  let ModusWcDivider = class ModusWcDivider {
342
- z;
343
- el;
344
318
  constructor(c, r, z) {
345
319
  this.z = z;
346
320
  c.detach();
347
321
  this.el = r.nativeElement;
348
322
  }
349
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: ModusWcDivider, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
350
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: ModusWcDivider, selector: "modus-wc-divider", inputs: { color: "color", content: "content", customClass: "customClass", orientation: "orientation", position: "position", responsive: "responsive" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
323
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ModusWcDivider, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
324
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ModusWcDivider, selector: "modus-wc-divider", inputs: { color: "color", content: "content", customClass: "customClass", orientation: "orientation", position: "position", responsive: "responsive" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
351
325
  };
352
326
  ModusWcDivider = __decorate([
353
327
  ProxyCmp({
@@ -355,7 +329,7 @@ ModusWcDivider = __decorate([
355
329
  })
356
330
  ], ModusWcDivider);
357
331
  export { ModusWcDivider };
358
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: ModusWcDivider, decorators: [{
332
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ModusWcDivider, decorators: [{
359
333
  type: Component,
360
334
  args: [{
361
335
  selector: 'modus-wc-divider',
@@ -366,16 +340,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
366
340
  }]
367
341
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
368
342
  let ModusWcDropdownMenu = class ModusWcDropdownMenu {
369
- z;
370
- el;
371
343
  constructor(c, r, z) {
372
344
  this.z = z;
373
345
  c.detach();
374
346
  this.el = r.nativeElement;
375
347
  proxyOutputs(this, this.el, ['menuVisibilityChange']);
376
348
  }
377
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: ModusWcDropdownMenu, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
378
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: ModusWcDropdownMenu, selector: "modus-wc-dropdown-menu", inputs: { buttonAriaLabel: "buttonAriaLabel", buttonColor: "buttonColor", buttonSize: "buttonSize", buttonVariant: "buttonVariant", customClass: "customClass", disabled: "disabled", menuBordered: "menuBordered", menuOffset: "menuOffset", menuPlacement: "menuPlacement", menuSize: "menuSize", menuVisible: "menuVisible" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
349
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ModusWcDropdownMenu, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
350
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ModusWcDropdownMenu, selector: "modus-wc-dropdown-menu", inputs: { buttonAriaLabel: "buttonAriaLabel", buttonColor: "buttonColor", buttonSize: "buttonSize", buttonVariant: "buttonVariant", customClass: "customClass", disabled: "disabled", menuBordered: "menuBordered", menuOffset: "menuOffset", menuPlacement: "menuPlacement", menuSize: "menuSize", menuVisible: "menuVisible" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
379
351
  };
380
352
  ModusWcDropdownMenu = __decorate([
381
353
  ProxyCmp({
@@ -383,7 +355,7 @@ ModusWcDropdownMenu = __decorate([
383
355
  })
384
356
  ], ModusWcDropdownMenu);
385
357
  export { ModusWcDropdownMenu };
386
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: ModusWcDropdownMenu, decorators: [{
358
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ModusWcDropdownMenu, decorators: [{
387
359
  type: Component,
388
360
  args: [{
389
361
  selector: 'modus-wc-dropdown-menu',
@@ -394,16 +366,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
394
366
  }]
395
367
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
396
368
  let ModusWcFileDropzone = class ModusWcFileDropzone {
397
- z;
398
- el;
399
369
  constructor(c, r, z) {
400
370
  this.z = z;
401
371
  c.detach();
402
372
  this.el = r.nativeElement;
403
373
  proxyOutputs(this, this.el, ['fileSelect']);
404
374
  }
405
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: ModusWcFileDropzone, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
406
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: ModusWcFileDropzone, selector: "modus-wc-file-dropzone", inputs: { acceptFileTypes: "acceptFileTypes", customClass: "customClass", disabled: "disabled", fileDraggedOverInstructions: "fileDraggedOverInstructions", includeStateIcon: "includeStateIcon", instructions: "instructions", invalidFileTypeMessage: "invalidFileTypeMessage", maxFileCount: "maxFileCount", maxFileNameLength: "maxFileNameLength", maxTotalFileSizeBytes: "maxTotalFileSizeBytes", multiple: "multiple", successMessage: "successMessage" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
375
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ModusWcFileDropzone, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
376
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ModusWcFileDropzone, selector: "modus-wc-file-dropzone", inputs: { acceptFileTypes: "acceptFileTypes", customClass: "customClass", disabled: "disabled", fileDraggedOverInstructions: "fileDraggedOverInstructions", includeStateIcon: "includeStateIcon", instructions: "instructions", invalidFileTypeMessage: "invalidFileTypeMessage", maxFileCount: "maxFileCount", maxFileNameLength: "maxFileNameLength", maxTotalFileSizeBytes: "maxTotalFileSizeBytes", multiple: "multiple", successMessage: "successMessage" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
407
377
  };
408
378
  ModusWcFileDropzone = __decorate([
409
379
  ProxyCmp({
@@ -411,7 +381,7 @@ ModusWcFileDropzone = __decorate([
411
381
  })
412
382
  ], ModusWcFileDropzone);
413
383
  export { ModusWcFileDropzone };
414
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: ModusWcFileDropzone, decorators: [{
384
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ModusWcFileDropzone, decorators: [{
415
385
  type: Component,
416
386
  args: [{
417
387
  selector: 'modus-wc-file-dropzone',
@@ -422,15 +392,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
422
392
  }]
423
393
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
424
394
  let ModusWcIcon = class ModusWcIcon {
425
- z;
426
- el;
427
395
  constructor(c, r, z) {
428
396
  this.z = z;
429
397
  c.detach();
430
398
  this.el = r.nativeElement;
431
399
  }
432
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: ModusWcIcon, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
433
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: ModusWcIcon, selector: "modus-wc-icon", inputs: { customClass: "customClass", decorative: "decorative", name: "name", size: "size", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
400
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ModusWcIcon, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
401
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ModusWcIcon, selector: "modus-wc-icon", inputs: { customClass: "customClass", decorative: "decorative", name: "name", size: "size", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
434
402
  };
435
403
  ModusWcIcon = __decorate([
436
404
  ProxyCmp({
@@ -438,7 +406,7 @@ ModusWcIcon = __decorate([
438
406
  })
439
407
  ], ModusWcIcon);
440
408
  export { ModusWcIcon };
441
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: ModusWcIcon, decorators: [{
409
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ModusWcIcon, decorators: [{
442
410
  type: Component,
443
411
  args: [{
444
412
  selector: 'modus-wc-icon',
@@ -449,15 +417,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
449
417
  }]
450
418
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
451
419
  let ModusWcInputFeedback = class ModusWcInputFeedback {
452
- z;
453
- el;
454
420
  constructor(c, r, z) {
455
421
  this.z = z;
456
422
  c.detach();
457
423
  this.el = r.nativeElement;
458
424
  }
459
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: ModusWcInputFeedback, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
460
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: ModusWcInputFeedback, selector: "modus-wc-input-feedback", inputs: { customClass: "customClass", icon: "icon", level: "level", message: "message", size: "size" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
425
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ModusWcInputFeedback, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
426
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ModusWcInputFeedback, selector: "modus-wc-input-feedback", inputs: { customClass: "customClass", icon: "icon", level: "level", message: "message", size: "size" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
461
427
  };
462
428
  ModusWcInputFeedback = __decorate([
463
429
  ProxyCmp({
@@ -465,7 +431,7 @@ ModusWcInputFeedback = __decorate([
465
431
  })
466
432
  ], ModusWcInputFeedback);
467
433
  export { ModusWcInputFeedback };
468
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: ModusWcInputFeedback, decorators: [{
434
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ModusWcInputFeedback, decorators: [{
469
435
  type: Component,
470
436
  args: [{
471
437
  selector: 'modus-wc-input-feedback',
@@ -476,15 +442,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
476
442
  }]
477
443
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
478
444
  let ModusWcInputLabel = class ModusWcInputLabel {
479
- z;
480
- el;
481
445
  constructor(c, r, z) {
482
446
  this.z = z;
483
447
  c.detach();
484
448
  this.el = r.nativeElement;
485
449
  }
486
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: ModusWcInputLabel, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
487
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: ModusWcInputLabel, selector: "modus-wc-input-label", inputs: { customClass: "customClass", forId: "forId", labelText: "labelText", required: "required", size: "size", subLabelText: "subLabelText" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
450
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ModusWcInputLabel, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
451
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ModusWcInputLabel, selector: "modus-wc-input-label", inputs: { customClass: "customClass", forId: "forId", labelText: "labelText", required: "required", size: "size", subLabelText: "subLabelText" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
488
452
  };
489
453
  ModusWcInputLabel = __decorate([
490
454
  ProxyCmp({
@@ -492,7 +456,7 @@ ModusWcInputLabel = __decorate([
492
456
  })
493
457
  ], ModusWcInputLabel);
494
458
  export { ModusWcInputLabel };
495
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: ModusWcInputLabel, decorators: [{
459
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ModusWcInputLabel, decorators: [{
496
460
  type: Component,
497
461
  args: [{
498
462
  selector: 'modus-wc-input-label',
@@ -503,15 +467,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
503
467
  }]
504
468
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
505
469
  let ModusWcLoader = class ModusWcLoader {
506
- z;
507
- el;
508
470
  constructor(c, r, z) {
509
471
  this.z = z;
510
472
  c.detach();
511
473
  this.el = r.nativeElement;
512
474
  }
513
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: ModusWcLoader, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
514
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: ModusWcLoader, selector: "modus-wc-loader", inputs: { color: "color", customClass: "customClass", size: "size", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
475
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ModusWcLoader, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
476
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ModusWcLoader, selector: "modus-wc-loader", inputs: { color: "color", customClass: "customClass", size: "size", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
515
477
  };
516
478
  ModusWcLoader = __decorate([
517
479
  ProxyCmp({
@@ -519,7 +481,7 @@ ModusWcLoader = __decorate([
519
481
  })
520
482
  ], ModusWcLoader);
521
483
  export { ModusWcLoader };
522
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: ModusWcLoader, decorators: [{
484
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ModusWcLoader, decorators: [{
523
485
  type: Component,
524
486
  args: [{
525
487
  selector: 'modus-wc-loader',
@@ -530,71 +492,66 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
530
492
  }]
531
493
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
532
494
  let ModusWcMenu = class ModusWcMenu {
533
- z;
534
- el;
535
495
  constructor(c, r, z) {
536
496
  this.z = z;
537
497
  c.detach();
538
498
  this.el = r.nativeElement;
539
499
  proxyOutputs(this, this.el, ['menuFocusout']);
540
500
  }
541
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: ModusWcMenu, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
542
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: ModusWcMenu, selector: "modus-wc-menu", inputs: { bordered: "bordered", customClass: "customClass", orientation: "orientation", size: "size" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
501
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ModusWcMenu, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
502
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ModusWcMenu, selector: "modus-wc-menu", inputs: { bordered: "bordered", customClass: "customClass", isSubMenu: "isSubMenu", orientation: "orientation", size: "size" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
543
503
  };
544
504
  ModusWcMenu = __decorate([
545
505
  ProxyCmp({
546
- inputs: ['bordered', 'customClass', 'orientation', 'size']
506
+ inputs: ['bordered', 'customClass', 'isSubMenu', 'orientation', 'size']
547
507
  })
548
508
  ], ModusWcMenu);
549
509
  export { ModusWcMenu };
550
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: ModusWcMenu, decorators: [{
510
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ModusWcMenu, decorators: [{
551
511
  type: Component,
552
512
  args: [{
553
513
  selector: 'modus-wc-menu',
554
514
  changeDetection: ChangeDetectionStrategy.OnPush,
555
515
  template: '<ng-content></ng-content>',
556
516
  // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
557
- inputs: ['bordered', 'customClass', 'orientation', 'size'],
517
+ inputs: ['bordered', 'customClass', 'isSubMenu', 'orientation', 'size'],
558
518
  }]
559
519
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
560
520
  let ModusWcMenuItem = class ModusWcMenuItem {
561
- z;
562
- el;
563
521
  constructor(c, r, z) {
564
522
  this.z = z;
565
523
  c.detach();
566
524
  this.el = r.nativeElement;
567
525
  proxyOutputs(this, this.el, ['itemSelect']);
568
526
  }
569
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: ModusWcMenuItem, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
570
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: ModusWcMenuItem, selector: "modus-wc-menu-item", inputs: { bordered: "bordered", checkbox: "checkbox", customClass: "customClass", disabled: "disabled", focused: "focused", label: "label", selected: "selected", size: "size", startIcon: "startIcon", subLabel: "subLabel", tooltipContent: "tooltipContent", tooltipPosition: "tooltipPosition", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
527
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ModusWcMenuItem, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
528
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ModusWcMenuItem, selector: "modus-wc-menu-item", inputs: { bordered: "bordered", checkbox: "checkbox", customClass: "customClass", disabled: "disabled", focused: "focused", hasSubmenu: "hasSubmenu", label: "label", selected: "selected", size: "size", startIcon: "startIcon", subLabel: "subLabel", tooltipContent: "tooltipContent", tooltipPosition: "tooltipPosition", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
571
529
  };
572
530
  ModusWcMenuItem = __decorate([
573
531
  ProxyCmp({
574
- inputs: ['bordered', 'checkbox', 'customClass', 'disabled', 'focused', 'label', 'selected', 'size', 'startIcon', 'subLabel', 'tooltipContent', 'tooltipPosition', 'value']
532
+ inputs: ['bordered', 'checkbox', 'customClass', 'disabled', 'focused', 'hasSubmenu', 'label', 'selected', 'size', 'startIcon', 'subLabel', 'tooltipContent', 'tooltipPosition', 'value'],
533
+ methods: ['collapseSubmenu']
575
534
  })
576
535
  ], ModusWcMenuItem);
577
536
  export { ModusWcMenuItem };
578
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: ModusWcMenuItem, decorators: [{
537
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ModusWcMenuItem, decorators: [{
579
538
  type: Component,
580
539
  args: [{
581
540
  selector: 'modus-wc-menu-item',
582
541
  changeDetection: ChangeDetectionStrategy.OnPush,
583
542
  template: '<ng-content></ng-content>',
584
543
  // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
585
- inputs: ['bordered', 'checkbox', 'customClass', 'disabled', 'focused', 'label', 'selected', 'size', 'startIcon', 'subLabel', 'tooltipContent', 'tooltipPosition', 'value'],
544
+ inputs: ['bordered', 'checkbox', 'customClass', 'disabled', 'focused', 'hasSubmenu', 'label', 'selected', 'size', 'startIcon', 'subLabel', 'tooltipContent', 'tooltipPosition', 'value'],
586
545
  }]
587
546
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
588
547
  let ModusWcModal = class ModusWcModal {
589
- z;
590
- el;
591
548
  constructor(c, r, z) {
592
549
  this.z = z;
593
550
  c.detach();
594
551
  this.el = r.nativeElement;
595
552
  }
596
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: ModusWcModal, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
597
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: ModusWcModal, selector: "modus-wc-modal", inputs: { backdrop: "backdrop", customClass: "customClass", fullscreen: "fullscreen", modalId: "modalId", position: "position", showClose: "showClose", showFullscreenToggle: "showFullscreenToggle" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
553
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ModusWcModal, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
554
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ModusWcModal, selector: "modus-wc-modal", inputs: { backdrop: "backdrop", customClass: "customClass", fullscreen: "fullscreen", modalId: "modalId", position: "position", showClose: "showClose", showFullscreenToggle: "showFullscreenToggle" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
598
555
  };
599
556
  ModusWcModal = __decorate([
600
557
  ProxyCmp({
@@ -602,7 +559,7 @@ ModusWcModal = __decorate([
602
559
  })
603
560
  ], ModusWcModal);
604
561
  export { ModusWcModal };
605
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: ModusWcModal, decorators: [{
562
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ModusWcModal, decorators: [{
606
563
  type: Component,
607
564
  args: [{
608
565
  selector: 'modus-wc-modal',
@@ -613,16 +570,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
613
570
  }]
614
571
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
615
572
  let ModusWcNavbar = class ModusWcNavbar {
616
- z;
617
- el;
618
573
  constructor(c, r, z) {
619
574
  this.z = z;
620
575
  c.detach();
621
576
  this.el = r.nativeElement;
622
577
  proxyOutputs(this, this.el, ['aiClick', 'appsClick', 'appsMenuOpenChange', 'condensedMenuOpenChange', 'helpClick', 'mainMenuOpenChange', 'myTrimbleClick', 'notificationsClick', 'notificationsMenuOpenChange', 'searchChange', 'searchClick', 'searchInputOpenChange', 'signOutClick', 'trimbleLogoClick', 'userMenuOpenChange']);
623
578
  }
624
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: ModusWcNavbar, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
625
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: ModusWcNavbar, selector: "modus-wc-navbar", inputs: { appsMenuOpen: "appsMenuOpen", condensed: "condensed", condensedMenuOpen: "condensedMenuOpen", customClass: "customClass", mainMenuOpen: "mainMenuOpen", notificationsMenuOpen: "notificationsMenuOpen", searchDebounceMs: "searchDebounceMs", searchInputOpen: "searchInputOpen", textOverrides: "textOverrides", userCard: "userCard", userMenuOpen: "userMenuOpen", visibility: "visibility" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
579
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ModusWcNavbar, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
580
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ModusWcNavbar, selector: "modus-wc-navbar", inputs: { appsMenuOpen: "appsMenuOpen", condensed: "condensed", condensedMenuOpen: "condensedMenuOpen", customClass: "customClass", mainMenuOpen: "mainMenuOpen", notificationsMenuOpen: "notificationsMenuOpen", searchDebounceMs: "searchDebounceMs", searchInputOpen: "searchInputOpen", textOverrides: "textOverrides", userCard: "userCard", userMenuOpen: "userMenuOpen", visibility: "visibility" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
626
581
  };
627
582
  ModusWcNavbar = __decorate([
628
583
  ProxyCmp({
@@ -630,7 +585,7 @@ ModusWcNavbar = __decorate([
630
585
  })
631
586
  ], ModusWcNavbar);
632
587
  export { ModusWcNavbar };
633
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: ModusWcNavbar, decorators: [{
588
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ModusWcNavbar, decorators: [{
634
589
  type: Component,
635
590
  args: [{
636
591
  selector: 'modus-wc-navbar',
@@ -641,16 +596,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
641
596
  }]
642
597
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
643
598
  let ModusWcNumberInput = class ModusWcNumberInput {
644
- z;
645
- el;
646
599
  constructor(c, r, z) {
647
600
  this.z = z;
648
601
  c.detach();
649
602
  this.el = r.nativeElement;
650
603
  proxyOutputs(this, this.el, ['inputBlur', 'inputChange', 'inputFocus']);
651
604
  }
652
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: ModusWcNumberInput, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
653
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: ModusWcNumberInput, selector: "modus-wc-number-input", inputs: { autoComplete: "autoComplete", bordered: "bordered", currencySymbol: "currencySymbol", customClass: "customClass", disabled: "disabled", feedback: "feedback", inputId: "inputId", inputTabIndex: "inputTabIndex", label: "label", max: "max", min: "min", name: "name", placeholder: "placeholder", readOnly: "readOnly", required: "required", size: "size", step: "step", type: "type", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
605
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ModusWcNumberInput, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
606
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ModusWcNumberInput, selector: "modus-wc-number-input", inputs: { autoComplete: "autoComplete", bordered: "bordered", currencySymbol: "currencySymbol", customClass: "customClass", disabled: "disabled", feedback: "feedback", inputId: "inputId", inputTabIndex: "inputTabIndex", label: "label", max: "max", min: "min", name: "name", placeholder: "placeholder", readOnly: "readOnly", required: "required", size: "size", step: "step", type: "type", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
654
607
  };
655
608
  ModusWcNumberInput = __decorate([
656
609
  ProxyCmp({
@@ -658,7 +611,7 @@ ModusWcNumberInput = __decorate([
658
611
  })
659
612
  ], ModusWcNumberInput);
660
613
  export { ModusWcNumberInput };
661
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: ModusWcNumberInput, decorators: [{
614
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ModusWcNumberInput, decorators: [{
662
615
  type: Component,
663
616
  args: [{
664
617
  selector: 'modus-wc-number-input',
@@ -669,16 +622,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
669
622
  }]
670
623
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
671
624
  let ModusWcPagination = class ModusWcPagination {
672
- z;
673
- el;
674
625
  constructor(c, r, z) {
675
626
  this.z = z;
676
627
  c.detach();
677
628
  this.el = r.nativeElement;
678
629
  proxyOutputs(this, this.el, ['pageChange']);
679
630
  }
680
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: ModusWcPagination, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
681
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: ModusWcPagination, selector: "modus-wc-pagination", inputs: { ariaLabelValues: "ariaLabelValues", count: "count", customClass: "customClass", nextButtonText: "nextButtonText", page: "page", prevButtonText: "prevButtonText", size: "size" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
631
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ModusWcPagination, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
632
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ModusWcPagination, selector: "modus-wc-pagination", inputs: { ariaLabelValues: "ariaLabelValues", count: "count", customClass: "customClass", nextButtonText: "nextButtonText", page: "page", prevButtonText: "prevButtonText", size: "size" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
682
633
  };
683
634
  ModusWcPagination = __decorate([
684
635
  ProxyCmp({
@@ -686,7 +637,7 @@ ModusWcPagination = __decorate([
686
637
  })
687
638
  ], ModusWcPagination);
688
639
  export { ModusWcPagination };
689
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: ModusWcPagination, decorators: [{
640
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ModusWcPagination, decorators: [{
690
641
  type: Component,
691
642
  args: [{
692
643
  selector: 'modus-wc-pagination',
@@ -697,15 +648,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
697
648
  }]
698
649
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
699
650
  let ModusWcProgress = class ModusWcProgress {
700
- z;
701
- el;
702
651
  constructor(c, r, z) {
703
652
  this.z = z;
704
653
  c.detach();
705
654
  this.el = r.nativeElement;
706
655
  }
707
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: ModusWcProgress, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
708
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: ModusWcProgress, selector: "modus-wc-progress", inputs: { customClass: "customClass", indeterminate: "indeterminate", label: "label", max: "max", value: "value", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
656
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ModusWcProgress, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
657
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ModusWcProgress, selector: "modus-wc-progress", inputs: { customClass: "customClass", indeterminate: "indeterminate", label: "label", max: "max", value: "value", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
709
658
  };
710
659
  ModusWcProgress = __decorate([
711
660
  ProxyCmp({
@@ -713,7 +662,7 @@ ModusWcProgress = __decorate([
713
662
  })
714
663
  ], ModusWcProgress);
715
664
  export { ModusWcProgress };
716
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: ModusWcProgress, decorators: [{
665
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ModusWcProgress, decorators: [{
717
666
  type: Component,
718
667
  args: [{
719
668
  selector: 'modus-wc-progress',
@@ -724,16 +673,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
724
673
  }]
725
674
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
726
675
  let ModusWcRadio = class ModusWcRadio {
727
- z;
728
- el;
729
676
  constructor(c, r, z) {
730
677
  this.z = z;
731
678
  c.detach();
732
679
  this.el = r.nativeElement;
733
680
  proxyOutputs(this, this.el, ['inputBlur', 'inputChange', 'inputFocus']);
734
681
  }
735
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: ModusWcRadio, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
736
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: ModusWcRadio, selector: "modus-wc-radio", inputs: { customClass: "customClass", disabled: "disabled", inputId: "inputId", inputTabIndex: "inputTabIndex", label: "label", name: "name", required: "required", size: "size", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
682
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ModusWcRadio, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
683
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ModusWcRadio, selector: "modus-wc-radio", inputs: { customClass: "customClass", disabled: "disabled", inputId: "inputId", inputTabIndex: "inputTabIndex", label: "label", name: "name", required: "required", size: "size", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
737
684
  };
738
685
  ModusWcRadio = __decorate([
739
686
  ProxyCmp({
@@ -741,7 +688,7 @@ ModusWcRadio = __decorate([
741
688
  })
742
689
  ], ModusWcRadio);
743
690
  export { ModusWcRadio };
744
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: ModusWcRadio, decorators: [{
691
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ModusWcRadio, decorators: [{
745
692
  type: Component,
746
693
  args: [{
747
694
  selector: 'modus-wc-radio',
@@ -752,16 +699,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
752
699
  }]
753
700
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
754
701
  let ModusWcRating = class ModusWcRating {
755
- z;
756
- el;
757
702
  constructor(c, r, z) {
758
703
  this.z = z;
759
704
  c.detach();
760
705
  this.el = r.nativeElement;
761
706
  proxyOutputs(this, this.el, ['ratingChange']);
762
707
  }
763
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: ModusWcRating, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
764
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: ModusWcRating, selector: "modus-wc-rating", inputs: { allowHalf: "allowHalf", count: "count", customClass: "customClass", disabled: "disabled", getAriaLabelText: "getAriaLabelText", size: "size", value: "value", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
708
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ModusWcRating, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
709
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ModusWcRating, selector: "modus-wc-rating", inputs: { allowHalf: "allowHalf", count: "count", customClass: "customClass", disabled: "disabled", getAriaLabelText: "getAriaLabelText", size: "size", value: "value", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
765
710
  };
766
711
  ModusWcRating = __decorate([
767
712
  ProxyCmp({
@@ -769,7 +714,7 @@ ModusWcRating = __decorate([
769
714
  })
770
715
  ], ModusWcRating);
771
716
  export { ModusWcRating };
772
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: ModusWcRating, decorators: [{
717
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ModusWcRating, decorators: [{
773
718
  type: Component,
774
719
  args: [{
775
720
  selector: 'modus-wc-rating',
@@ -780,16 +725,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
780
725
  }]
781
726
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
782
727
  let ModusWcSelect = class ModusWcSelect {
783
- z;
784
- el;
785
728
  constructor(c, r, z) {
786
729
  this.z = z;
787
730
  c.detach();
788
731
  this.el = r.nativeElement;
789
732
  proxyOutputs(this, this.el, ['inputBlur', 'inputChange', 'inputFocus']);
790
733
  }
791
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: ModusWcSelect, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
792
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: ModusWcSelect, selector: "modus-wc-select", inputs: { bordered: "bordered", customClass: "customClass", disabled: "disabled", feedback: "feedback", inputId: "inputId", inputTabIndex: "inputTabIndex", label: "label", name: "name", options: "options", required: "required", size: "size", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
734
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ModusWcSelect, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
735
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ModusWcSelect, selector: "modus-wc-select", inputs: { bordered: "bordered", customClass: "customClass", disabled: "disabled", feedback: "feedback", inputId: "inputId", inputTabIndex: "inputTabIndex", label: "label", name: "name", options: "options", required: "required", size: "size", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
793
736
  };
794
737
  ModusWcSelect = __decorate([
795
738
  ProxyCmp({
@@ -797,7 +740,7 @@ ModusWcSelect = __decorate([
797
740
  })
798
741
  ], ModusWcSelect);
799
742
  export { ModusWcSelect };
800
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: ModusWcSelect, decorators: [{
743
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ModusWcSelect, decorators: [{
801
744
  type: Component,
802
745
  args: [{
803
746
  selector: 'modus-wc-select',
@@ -808,16 +751,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
808
751
  }]
809
752
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
810
753
  let ModusWcSideNavigation = class ModusWcSideNavigation {
811
- z;
812
- el;
813
754
  constructor(c, r, z) {
814
755
  this.z = z;
815
756
  c.detach();
816
757
  this.el = r.nativeElement;
817
758
  proxyOutputs(this, this.el, ['expandedChange']);
818
759
  }
819
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: ModusWcSideNavigation, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
820
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: ModusWcSideNavigation, selector: "modus-wc-side-navigation", inputs: { collapseOnClickOutside: "collapseOnClickOutside", customClass: "customClass", expanded: "expanded", maxWidth: "maxWidth", mode: "mode", targetContent: "targetContent" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
760
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ModusWcSideNavigation, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
761
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ModusWcSideNavigation, selector: "modus-wc-side-navigation", inputs: { collapseOnClickOutside: "collapseOnClickOutside", customClass: "customClass", expanded: "expanded", maxWidth: "maxWidth", mode: "mode", targetContent: "targetContent" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
821
762
  };
822
763
  ModusWcSideNavigation = __decorate([
823
764
  ProxyCmp({
@@ -825,7 +766,7 @@ ModusWcSideNavigation = __decorate([
825
766
  })
826
767
  ], ModusWcSideNavigation);
827
768
  export { ModusWcSideNavigation };
828
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: ModusWcSideNavigation, decorators: [{
769
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ModusWcSideNavigation, decorators: [{
829
770
  type: Component,
830
771
  args: [{
831
772
  selector: 'modus-wc-side-navigation',
@@ -836,15 +777,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
836
777
  }]
837
778
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
838
779
  let ModusWcSkeleton = class ModusWcSkeleton {
839
- z;
840
- el;
841
780
  constructor(c, r, z) {
842
781
  this.z = z;
843
782
  c.detach();
844
783
  this.el = r.nativeElement;
845
784
  }
846
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: ModusWcSkeleton, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
847
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: ModusWcSkeleton, selector: "modus-wc-skeleton", inputs: { customClass: "customClass", height: "height", shape: "shape", width: "width" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
785
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ModusWcSkeleton, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
786
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ModusWcSkeleton, selector: "modus-wc-skeleton", inputs: { customClass: "customClass", height: "height", shape: "shape", width: "width" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
848
787
  };
849
788
  ModusWcSkeleton = __decorate([
850
789
  ProxyCmp({
@@ -852,7 +791,7 @@ ModusWcSkeleton = __decorate([
852
791
  })
853
792
  ], ModusWcSkeleton);
854
793
  export { ModusWcSkeleton };
855
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: ModusWcSkeleton, decorators: [{
794
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ModusWcSkeleton, decorators: [{
856
795
  type: Component,
857
796
  args: [{
858
797
  selector: 'modus-wc-skeleton',
@@ -863,16 +802,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
863
802
  }]
864
803
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
865
804
  let ModusWcSlider = class ModusWcSlider {
866
- z;
867
- el;
868
805
  constructor(c, r, z) {
869
806
  this.z = z;
870
807
  c.detach();
871
808
  this.el = r.nativeElement;
872
809
  proxyOutputs(this, this.el, ['inputBlur', 'inputChange', 'inputFocus']);
873
810
  }
874
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: ModusWcSlider, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
875
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: ModusWcSlider, selector: "modus-wc-slider", inputs: { customClass: "customClass", disabled: "disabled", inputId: "inputId", inputTabIndex: "inputTabIndex", label: "label", max: "max", min: "min", name: "name", required: "required", size: "size", step: "step", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
811
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ModusWcSlider, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
812
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ModusWcSlider, selector: "modus-wc-slider", inputs: { customClass: "customClass", disabled: "disabled", inputId: "inputId", inputTabIndex: "inputTabIndex", label: "label", max: "max", min: "min", name: "name", required: "required", size: "size", step: "step", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
876
813
  };
877
814
  ModusWcSlider = __decorate([
878
815
  ProxyCmp({
@@ -880,7 +817,7 @@ ModusWcSlider = __decorate([
880
817
  })
881
818
  ], ModusWcSlider);
882
819
  export { ModusWcSlider };
883
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: ModusWcSlider, decorators: [{
820
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ModusWcSlider, decorators: [{
884
821
  type: Component,
885
822
  args: [{
886
823
  selector: 'modus-wc-slider',
@@ -891,15 +828,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
891
828
  }]
892
829
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
893
830
  let ModusWcStepper = class ModusWcStepper {
894
- z;
895
- el;
896
831
  constructor(c, r, z) {
897
832
  this.z = z;
898
833
  c.detach();
899
834
  this.el = r.nativeElement;
900
835
  }
901
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: ModusWcStepper, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
902
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: ModusWcStepper, selector: "modus-wc-stepper", inputs: { customClass: "customClass", orientation: "orientation", steps: "steps" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
836
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ModusWcStepper, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
837
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ModusWcStepper, selector: "modus-wc-stepper", inputs: { customClass: "customClass", orientation: "orientation", steps: "steps" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
903
838
  };
904
839
  ModusWcStepper = __decorate([
905
840
  ProxyCmp({
@@ -907,7 +842,7 @@ ModusWcStepper = __decorate([
907
842
  })
908
843
  ], ModusWcStepper);
909
844
  export { ModusWcStepper };
910
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: ModusWcStepper, decorators: [{
845
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ModusWcStepper, decorators: [{
911
846
  type: Component,
912
847
  args: [{
913
848
  selector: 'modus-wc-stepper',
@@ -918,16 +853,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
918
853
  }]
919
854
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
920
855
  let ModusWcSwitch = class ModusWcSwitch {
921
- z;
922
- el;
923
856
  constructor(c, r, z) {
924
857
  this.z = z;
925
858
  c.detach();
926
859
  this.el = r.nativeElement;
927
860
  proxyOutputs(this, this.el, ['inputBlur', 'inputChange', 'inputFocus']);
928
861
  }
929
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: ModusWcSwitch, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
930
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: ModusWcSwitch, selector: "modus-wc-switch", inputs: { customClass: "customClass", disabled: "disabled", indeterminate: "indeterminate", inputId: "inputId", inputTabIndex: "inputTabIndex", label: "label", name: "name", required: "required", size: "size", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
862
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ModusWcSwitch, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
863
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ModusWcSwitch, selector: "modus-wc-switch", inputs: { customClass: "customClass", disabled: "disabled", indeterminate: "indeterminate", inputId: "inputId", inputTabIndex: "inputTabIndex", label: "label", name: "name", required: "required", size: "size", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
931
864
  };
932
865
  ModusWcSwitch = __decorate([
933
866
  ProxyCmp({
@@ -935,7 +868,7 @@ ModusWcSwitch = __decorate([
935
868
  })
936
869
  ], ModusWcSwitch);
937
870
  export { ModusWcSwitch };
938
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: ModusWcSwitch, decorators: [{
871
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ModusWcSwitch, decorators: [{
939
872
  type: Component,
940
873
  args: [{
941
874
  selector: 'modus-wc-switch',
@@ -946,16 +879,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
946
879
  }]
947
880
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
948
881
  let ModusWcTable = class ModusWcTable {
949
- z;
950
- el;
951
882
  constructor(c, r, z) {
952
883
  this.z = z;
953
884
  c.detach();
954
885
  this.el = r.nativeElement;
955
886
  proxyOutputs(this, this.el, ['cellEditStart', 'cellEditCommit', 'rowClick', 'sortChange', 'paginationChange', 'rowSelectionChange']);
956
887
  }
957
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: ModusWcTable, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
958
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: ModusWcTable, selector: "modus-wc-table", inputs: { caption: "caption", columns: "columns", currentPage: "currentPage", customClass: "customClass", data: "data", density: "density", editable: "editable", hover: "hover", pageSizeOptions: "pageSizeOptions", paginated: "paginated", selectable: "selectable", selectedRowIds: "selectedRowIds", showPageSizeSelector: "showPageSizeSelector", sortable: "sortable", zebra: "zebra" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
888
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ModusWcTable, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
889
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ModusWcTable, selector: "modus-wc-table", inputs: { caption: "caption", columns: "columns", currentPage: "currentPage", customClass: "customClass", data: "data", density: "density", editable: "editable", hover: "hover", pageSizeOptions: "pageSizeOptions", paginated: "paginated", selectable: "selectable", selectedRowIds: "selectedRowIds", showPageSizeSelector: "showPageSizeSelector", sortable: "sortable", zebra: "zebra" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
959
890
  };
960
891
  ModusWcTable = __decorate([
961
892
  ProxyCmp({
@@ -963,7 +894,7 @@ ModusWcTable = __decorate([
963
894
  })
964
895
  ], ModusWcTable);
965
896
  export { ModusWcTable };
966
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: ModusWcTable, decorators: [{
897
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ModusWcTable, decorators: [{
967
898
  type: Component,
968
899
  args: [{
969
900
  selector: 'modus-wc-table',
@@ -974,16 +905,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
974
905
  }]
975
906
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
976
907
  let ModusWcTabs = class ModusWcTabs {
977
- z;
978
- el;
979
908
  constructor(c, r, z) {
980
909
  this.z = z;
981
910
  c.detach();
982
911
  this.el = r.nativeElement;
983
912
  proxyOutputs(this, this.el, ['tabChange']);
984
913
  }
985
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: ModusWcTabs, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
986
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: ModusWcTabs, selector: "modus-wc-tabs", inputs: { activeTabIndex: "activeTabIndex", customClass: "customClass", size: "size", tabStyle: "tabStyle", tabs: "tabs" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
914
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ModusWcTabs, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
915
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ModusWcTabs, selector: "modus-wc-tabs", inputs: { activeTabIndex: "activeTabIndex", customClass: "customClass", size: "size", tabStyle: "tabStyle", tabs: "tabs" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
987
916
  };
988
917
  ModusWcTabs = __decorate([
989
918
  ProxyCmp({
@@ -991,7 +920,7 @@ ModusWcTabs = __decorate([
991
920
  })
992
921
  ], ModusWcTabs);
993
922
  export { ModusWcTabs };
994
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: ModusWcTabs, decorators: [{
923
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ModusWcTabs, decorators: [{
995
924
  type: Component,
996
925
  args: [{
997
926
  selector: 'modus-wc-tabs',
@@ -1002,16 +931,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
1002
931
  }]
1003
932
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
1004
933
  let ModusWcTextInput = class ModusWcTextInput {
1005
- z;
1006
- el;
1007
934
  constructor(c, r, z) {
1008
935
  this.z = z;
1009
936
  c.detach();
1010
937
  this.el = r.nativeElement;
1011
938
  proxyOutputs(this, this.el, ['inputBlur', 'inputChange', 'inputFocus']);
1012
939
  }
1013
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: ModusWcTextInput, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1014
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: ModusWcTextInput, selector: "modus-wc-text-input", inputs: { autoCapitalize: "autoCapitalize", autoComplete: "autoComplete", autoCorrect: "autoCorrect", bordered: "bordered", clearAriaLabel: "clearAriaLabel", customClass: "customClass", disabled: "disabled", enterkeyhint: "enterkeyhint", feedback: "feedback", includeClear: "includeClear", includeSearch: "includeSearch", inputId: "inputId", inputTabIndex: "inputTabIndex", label: "label", maxLength: "maxLength", minLength: "minLength", name: "name", pattern: "pattern", placeholder: "placeholder", readOnly: "readOnly", required: "required", size: "size", type: "type", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
940
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ModusWcTextInput, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
941
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ModusWcTextInput, selector: "modus-wc-text-input", inputs: { autoCapitalize: "autoCapitalize", autoComplete: "autoComplete", autoCorrect: "autoCorrect", bordered: "bordered", clearAriaLabel: "clearAriaLabel", customClass: "customClass", disabled: "disabled", enterkeyhint: "enterkeyhint", feedback: "feedback", includeClear: "includeClear", includeSearch: "includeSearch", inputId: "inputId", inputTabIndex: "inputTabIndex", label: "label", maxLength: "maxLength", minLength: "minLength", name: "name", pattern: "pattern", placeholder: "placeholder", readOnly: "readOnly", required: "required", size: "size", type: "type", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1015
942
  };
1016
943
  ModusWcTextInput = __decorate([
1017
944
  ProxyCmp({
@@ -1019,7 +946,7 @@ ModusWcTextInput = __decorate([
1019
946
  })
1020
947
  ], ModusWcTextInput);
1021
948
  export { ModusWcTextInput };
1022
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: ModusWcTextInput, decorators: [{
949
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ModusWcTextInput, decorators: [{
1023
950
  type: Component,
1024
951
  args: [{
1025
952
  selector: 'modus-wc-text-input',
@@ -1030,16 +957,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
1030
957
  }]
1031
958
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
1032
959
  let ModusWcTextarea = class ModusWcTextarea {
1033
- z;
1034
- el;
1035
960
  constructor(c, r, z) {
1036
961
  this.z = z;
1037
962
  c.detach();
1038
963
  this.el = r.nativeElement;
1039
964
  proxyOutputs(this, this.el, ['inputBlur', 'inputChange', 'inputFocus']);
1040
965
  }
1041
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: ModusWcTextarea, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1042
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: ModusWcTextarea, selector: "modus-wc-textarea", inputs: { autoCorrect: "autoCorrect", bordered: "bordered", customClass: "customClass", disabled: "disabled", enterkeyhint: "enterkeyhint", feedback: "feedback", inputId: "inputId", inputTabIndex: "inputTabIndex", label: "label", maxLength: "maxLength", minLength: "minLength", name: "name", placeholder: "placeholder", readonly: "readonly", required: "required", rows: "rows", size: "size", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
966
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ModusWcTextarea, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
967
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ModusWcTextarea, selector: "modus-wc-textarea", inputs: { autoCorrect: "autoCorrect", bordered: "bordered", customClass: "customClass", disabled: "disabled", enterkeyhint: "enterkeyhint", feedback: "feedback", inputId: "inputId", inputTabIndex: "inputTabIndex", label: "label", maxLength: "maxLength", minLength: "minLength", name: "name", placeholder: "placeholder", readonly: "readonly", required: "required", rows: "rows", size: "size", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1043
968
  };
1044
969
  ModusWcTextarea = __decorate([
1045
970
  ProxyCmp({
@@ -1047,7 +972,7 @@ ModusWcTextarea = __decorate([
1047
972
  })
1048
973
  ], ModusWcTextarea);
1049
974
  export { ModusWcTextarea };
1050
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: ModusWcTextarea, decorators: [{
975
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ModusWcTextarea, decorators: [{
1051
976
  type: Component,
1052
977
  args: [{
1053
978
  selector: 'modus-wc-textarea',
@@ -1058,15 +983,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
1058
983
  }]
1059
984
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
1060
985
  let ModusWcThemeProvider = class ModusWcThemeProvider {
1061
- z;
1062
- el;
1063
986
  constructor(c, r, z) {
1064
987
  this.z = z;
1065
988
  c.detach();
1066
989
  this.el = r.nativeElement;
1067
990
  }
1068
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: ModusWcThemeProvider, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1069
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: ModusWcThemeProvider, selector: "modus-wc-theme-provider", inputs: { initialTheme: "initialTheme" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
991
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ModusWcThemeProvider, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
992
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ModusWcThemeProvider, selector: "modus-wc-theme-provider", inputs: { initialTheme: "initialTheme" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1070
993
  };
1071
994
  ModusWcThemeProvider = __decorate([
1072
995
  ProxyCmp({
@@ -1074,7 +997,7 @@ ModusWcThemeProvider = __decorate([
1074
997
  })
1075
998
  ], ModusWcThemeProvider);
1076
999
  export { ModusWcThemeProvider };
1077
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: ModusWcThemeProvider, decorators: [{
1000
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ModusWcThemeProvider, decorators: [{
1078
1001
  type: Component,
1079
1002
  args: [{
1080
1003
  selector: 'modus-wc-theme-provider',
@@ -1085,16 +1008,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
1085
1008
  }]
1086
1009
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
1087
1010
  let ModusWcThemeSwitcher = class ModusWcThemeSwitcher {
1088
- z;
1089
- el;
1090
1011
  constructor(c, r, z) {
1091
1012
  this.z = z;
1092
1013
  c.detach();
1093
1014
  this.el = r.nativeElement;
1094
1015
  proxyOutputs(this, this.el, ['themeChange']);
1095
1016
  }
1096
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: ModusWcThemeSwitcher, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1097
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: ModusWcThemeSwitcher, selector: "modus-wc-theme-switcher", inputs: { customClass: "customClass" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1017
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ModusWcThemeSwitcher, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1018
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ModusWcThemeSwitcher, selector: "modus-wc-theme-switcher", inputs: { customClass: "customClass" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1098
1019
  };
1099
1020
  ModusWcThemeSwitcher = __decorate([
1100
1021
  ProxyCmp({
@@ -1102,7 +1023,7 @@ ModusWcThemeSwitcher = __decorate([
1102
1023
  })
1103
1024
  ], ModusWcThemeSwitcher);
1104
1025
  export { ModusWcThemeSwitcher };
1105
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: ModusWcThemeSwitcher, decorators: [{
1026
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ModusWcThemeSwitcher, decorators: [{
1106
1027
  type: Component,
1107
1028
  args: [{
1108
1029
  selector: 'modus-wc-theme-switcher',
@@ -1113,16 +1034,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
1113
1034
  }]
1114
1035
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
1115
1036
  let ModusWcTimeInput = class ModusWcTimeInput {
1116
- z;
1117
- el;
1118
1037
  constructor(c, r, z) {
1119
1038
  this.z = z;
1120
1039
  c.detach();
1121
1040
  this.el = r.nativeElement;
1122
1041
  proxyOutputs(this, this.el, ['inputBlur', 'inputChange', 'inputFocus']);
1123
1042
  }
1124
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: ModusWcTimeInput, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1125
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: ModusWcTimeInput, selector: "modus-wc-time-input", inputs: { autoComplete: "autoComplete", bordered: "bordered", customClass: "customClass", datalistId: "datalistId", datalistOptions: "datalistOptions", disabled: "disabled", feedback: "feedback", inputId: "inputId", inputTabIndex: "inputTabIndex", label: "label", max: "max", min: "min", name: "name", readOnly: "readOnly", required: "required", showSeconds: "showSeconds", size: "size", step: "step", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1043
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ModusWcTimeInput, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1044
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ModusWcTimeInput, selector: "modus-wc-time-input", inputs: { autoComplete: "autoComplete", bordered: "bordered", customClass: "customClass", datalistId: "datalistId", datalistOptions: "datalistOptions", disabled: "disabled", feedback: "feedback", inputId: "inputId", inputTabIndex: "inputTabIndex", label: "label", max: "max", min: "min", name: "name", readOnly: "readOnly", required: "required", showSeconds: "showSeconds", size: "size", step: "step", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1126
1045
  };
1127
1046
  ModusWcTimeInput = __decorate([
1128
1047
  ProxyCmp({
@@ -1130,7 +1049,7 @@ ModusWcTimeInput = __decorate([
1130
1049
  })
1131
1050
  ], ModusWcTimeInput);
1132
1051
  export { ModusWcTimeInput };
1133
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: ModusWcTimeInput, decorators: [{
1052
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ModusWcTimeInput, decorators: [{
1134
1053
  type: Component,
1135
1054
  args: [{
1136
1055
  selector: 'modus-wc-time-input',
@@ -1141,15 +1060,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
1141
1060
  }]
1142
1061
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
1143
1062
  let ModusWcToast = class ModusWcToast {
1144
- z;
1145
- el;
1146
1063
  constructor(c, r, z) {
1147
1064
  this.z = z;
1148
1065
  c.detach();
1149
1066
  this.el = r.nativeElement;
1150
1067
  }
1151
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: ModusWcToast, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1152
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: ModusWcToast, selector: "modus-wc-toast", inputs: { customClass: "customClass", delay: "delay", position: "position" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1068
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ModusWcToast, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1069
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ModusWcToast, selector: "modus-wc-toast", inputs: { customClass: "customClass", delay: "delay", position: "position" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1153
1070
  };
1154
1071
  ModusWcToast = __decorate([
1155
1072
  ProxyCmp({
@@ -1157,7 +1074,7 @@ ModusWcToast = __decorate([
1157
1074
  })
1158
1075
  ], ModusWcToast);
1159
1076
  export { ModusWcToast };
1160
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: ModusWcToast, decorators: [{
1077
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ModusWcToast, decorators: [{
1161
1078
  type: Component,
1162
1079
  args: [{
1163
1080
  selector: 'modus-wc-toast',
@@ -1168,15 +1085,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
1168
1085
  }]
1169
1086
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
1170
1087
  let ModusWcToolbar = class ModusWcToolbar {
1171
- z;
1172
- el;
1173
1088
  constructor(c, r, z) {
1174
1089
  this.z = z;
1175
1090
  c.detach();
1176
1091
  this.el = r.nativeElement;
1177
1092
  }
1178
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: ModusWcToolbar, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1179
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: ModusWcToolbar, selector: "modus-wc-toolbar", inputs: { customClass: "customClass" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1093
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ModusWcToolbar, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1094
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ModusWcToolbar, selector: "modus-wc-toolbar", inputs: { customClass: "customClass" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1180
1095
  };
1181
1096
  ModusWcToolbar = __decorate([
1182
1097
  ProxyCmp({
@@ -1184,7 +1099,7 @@ ModusWcToolbar = __decorate([
1184
1099
  })
1185
1100
  ], ModusWcToolbar);
1186
1101
  export { ModusWcToolbar };
1187
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: ModusWcToolbar, decorators: [{
1102
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ModusWcToolbar, decorators: [{
1188
1103
  type: Component,
1189
1104
  args: [{
1190
1105
  selector: 'modus-wc-toolbar',
@@ -1195,16 +1110,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
1195
1110
  }]
1196
1111
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
1197
1112
  let ModusWcTooltip = class ModusWcTooltip {
1198
- z;
1199
- el;
1200
1113
  constructor(c, r, z) {
1201
1114
  this.z = z;
1202
1115
  c.detach();
1203
1116
  this.el = r.nativeElement;
1204
1117
  proxyOutputs(this, this.el, ['dismissEscape']);
1205
1118
  }
1206
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: ModusWcTooltip, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1207
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: ModusWcTooltip, selector: "modus-wc-tooltip", inputs: { content: "content", customClass: "customClass", disabled: "disabled", forceOpen: "forceOpen", position: "position", tooltipId: "tooltipId" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1119
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ModusWcTooltip, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1120
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ModusWcTooltip, selector: "modus-wc-tooltip", inputs: { content: "content", customClass: "customClass", disabled: "disabled", forceOpen: "forceOpen", position: "position", tooltipId: "tooltipId" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1208
1121
  };
1209
1122
  ModusWcTooltip = __decorate([
1210
1123
  ProxyCmp({
@@ -1212,7 +1125,7 @@ ModusWcTooltip = __decorate([
1212
1125
  })
1213
1126
  ], ModusWcTooltip);
1214
1127
  export { ModusWcTooltip };
1215
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: ModusWcTooltip, decorators: [{
1128
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ModusWcTooltip, decorators: [{
1216
1129
  type: Component,
1217
1130
  args: [{
1218
1131
  selector: 'modus-wc-tooltip',
@@ -1223,15 +1136,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
1223
1136
  }]
1224
1137
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
1225
1138
  let ModusWcTypography = class ModusWcTypography {
1226
- z;
1227
- el;
1228
1139
  constructor(c, r, z) {
1229
1140
  this.z = z;
1230
1141
  c.detach();
1231
1142
  this.el = r.nativeElement;
1232
1143
  }
1233
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: ModusWcTypography, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1234
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: ModusWcTypography, selector: "modus-wc-typography", inputs: { customClass: "customClass", hierarchy: "hierarchy", size: "size", weight: "weight" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1144
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ModusWcTypography, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1145
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ModusWcTypography, selector: "modus-wc-typography", inputs: { customClass: "customClass", hierarchy: "hierarchy", size: "size", weight: "weight" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1235
1146
  };
1236
1147
  ModusWcTypography = __decorate([
1237
1148
  ProxyCmp({
@@ -1239,7 +1150,7 @@ ModusWcTypography = __decorate([
1239
1150
  })
1240
1151
  ], ModusWcTypography);
1241
1152
  export { ModusWcTypography };
1242
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: ModusWcTypography, decorators: [{
1153
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ModusWcTypography, decorators: [{
1243
1154
  type: Component,
1244
1155
  args: [{
1245
1156
  selector: 'modus-wc-typography',
@@ -1250,16 +1161,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
1250
1161
  }]
1251
1162
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
1252
1163
  let ModusWcUtilityPanel = class ModusWcUtilityPanel {
1253
- z;
1254
- el;
1255
1164
  constructor(c, r, z) {
1256
1165
  this.z = z;
1257
1166
  c.detach();
1258
1167
  this.el = r.nativeElement;
1259
1168
  proxyOutputs(this, this.el, ['panelOpened', 'panelClosed']);
1260
1169
  }
1261
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: ModusWcUtilityPanel, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1262
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: ModusWcUtilityPanel, selector: "modus-wc-utility-panel", inputs: { expanded: "expanded", pushContent: "pushContent", targetElement: "targetElement" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1170
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ModusWcUtilityPanel, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1171
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ModusWcUtilityPanel, selector: "modus-wc-utility-panel", inputs: { expanded: "expanded", pushContent: "pushContent", targetElement: "targetElement" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1263
1172
  };
1264
1173
  ModusWcUtilityPanel = __decorate([
1265
1174
  ProxyCmp({
@@ -1267,7 +1176,7 @@ ModusWcUtilityPanel = __decorate([
1267
1176
  })
1268
1177
  ], ModusWcUtilityPanel);
1269
1178
  export { ModusWcUtilityPanel };
1270
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: ModusWcUtilityPanel, decorators: [{
1179
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ModusWcUtilityPanel, decorators: [{
1271
1180
  type: Component,
1272
1181
  args: [{
1273
1182
  selector: 'modus-wc-utility-panel',
@@ -1277,4 +1186,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
1277
1186
  inputs: ['expanded', 'pushContent', 'targetElement'],
1278
1187
  }]
1279
1188
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
1280
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RyaW1ibGUtb3NzL21vZHVzd2ViY29tcG9uZW50cy1hbmd1bGFyL3NyYy9saWIvc3RlbmNpbC1nZW5lcmF0ZWQvY29tcG9uZW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsb0JBQW9CO0FBQ3BCLDhDQUE4QztBQUM5QyxPQUFPLEVBQUUsdUJBQXVCLEVBQXFCLFNBQVMsRUFBb0MsTUFBTSxlQUFlLENBQUM7QUFFeEgsT0FBTyxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7QUFlaEUsSUFBTSxnQkFBZ0IsR0FBdEIsTUFBTSxnQkFBZ0I7SUFFZ0M7SUFEakQsRUFBRSxDQUE4QjtJQUMxQyxZQUFZLENBQW9CLEVBQUUsQ0FBYSxFQUFZLENBQVM7UUFBVCxNQUFDLEdBQUQsQ0FBQyxDQUFRO1FBQ2xFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNYLElBQUksQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLGFBQWEsQ0FBQztRQUMxQixZQUFZLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUM7SUFDbEQsQ0FBQzt1R0FOVSxnQkFBZ0I7MkZBQWhCLGdCQUFnQixrR0FKakIsMkJBQTJCOztBQUkxQixnQkFBZ0I7SUFWNUIsUUFBUSxDQUFDO1FBQ1IsTUFBTSxFQUFFLENBQUMsYUFBYSxDQUFDO0tBQ3hCLENBQUM7R0FRVyxnQkFBZ0IsQ0FPNUI7OzJGQVBZLGdCQUFnQjtrQkFQNUIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsb0JBQW9CO29CQUM5QixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsUUFBUSxFQUFFLDJCQUEyQjtvQkFDckMsdUVBQXVFO29CQUN2RSxNQUFNLEVBQUUsQ0FBQyxhQUFhLENBQUM7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QTJCOztBQUkxQixtQkFBbUI7SUFWL0IsUUFBUSxDQUFDO1FBQ1IsTUFBTSxFQUFFLENBQUMsVUFBVSxFQUFFLGFBQWEsRUFBRSxlQUFlLENBQUM7S0FDckQsQ0FBQztHQVFXLG1CQUFtQixDQU8vQjs7MkZBUFksbUJBQW1CO2tCQVAvQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSx3QkFBd0I7b0JBQ2xDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxRQUFRLEVBQUUsMkJBQTJCO29CQUNyQyx1RUFBdUU7b0JBQ3ZFLE1BQU0sRUFBRSxDQUFDLFVBQVUsRUFBRSxhQUFhLEVBQUUsZUFBZSxDQUFDO2lCQUNyRCIsInNvdXJjZXNDb250ZW50IjpbIi8qIHRzbGludDpkaXNhYmxlICovXG4vKiBhdXRvLWdlbmVyYXRlZCBhbmd1bGFyIGRpcmVjdGl2ZSBwcm94aWVzICovXG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBOZ1pvbmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgUHJveHlDbXAsIHByb3h5T3V0cHV0cyB9IGZyb20gJy4vYW5ndWxhci1jb21wb25lbnQtbGliL3V0aWxzJztcblxuaW1wb3J0IHsgQ29tcG9uZW50cyB9IGZyb20gJ0B0cmltYmxlLW9zcy9tb2R1c3dlYmNvbXBvbmVudHMnO1xuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjdXN0b21DbGFzcyddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbW9kdXMtd2MtYWNjb3JkaW9uJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjdXN0b21DbGFzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBNb2R1c1djQWNjb3JkaW9uIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MTW9kdXNXY0FjY29yZGlvbkVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2V4cGFuZGVkQ2hhbmdlJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE1vZHVzV2NBY2NvcmRpb24gZXh0ZW5kcyBDb21wb25lbnRzLk1vZHVzV2NBY2NvcmRpb24ge1xuICAvKipcbiAgICogV2hlbiBhIGNvbGxhcHNlIGV4cGFuZGVkIHN0YXRlIGlzIGNoYW5nZWQsIHRoaXMgZXZlbnQgb3V0cHV0cyB0aGUgcmVsZXZhbnQgaW5kZXggYW5kIHN0YXRlXG4gICAqL1xuICBleHBhbmRlZENoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHsgZXhwYW5kZWQ6IGJvb2xlYW47IGluZGV4OiBudW1iZXI7IH0+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYWxlcnREZXNjcmlwdGlvbicsICdhbGVydFRpdGxlJywgJ2N1c3RvbUNsYXNzJywgJ2RlbGF5JywgJ2Rpc21pc3NpYmxlJywgJ2ljb24nLCAndmFyaWFudCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbW9kdXMtd2MtYWxlcnQnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FsZXJ0RGVzY3JpcHRpb24nLCAnYWxlcnRUaXRsZScsICdjdXN0b21DbGFzcycsICdkZWxheScsICdkaXNtaXNzaWJsZScsICdpY29uJywgJ3ZhcmlhbnQnXSxcbn0pXG5leHBvcnQgY2xhc3MgTW9kdXNXY0FsZXJ0IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MTW9kdXNXY0FsZXJ0RWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnZGlzbWlzc0NsaWNrJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE1vZHVzV2NBbGVydCBleHRlbmRzIENvbXBvbmVudHMuTW9kdXNXY0FsZXJ0IHtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IHRoYXQgZmlyZXMgd2hlbiB0aGUgYWxlcnQgaXMgZGlzbWlzc2VkXG4gICAqL1xuICBkaXNtaXNzQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxhbnk+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYm9yZGVyZWQnLCAnY3VzdG9tQmx1cicsICdjdXN0b21DbGFzcycsICdjdXN0b21JbnB1dENoYW5nZScsICdjdXN0b21JdGVtU2VsZWN0JywgJ2N1c3RvbUtleURvd24nLCAnZGVib3VuY2VNcycsICdkaXNhYmxlZCcsICdpbmNsdWRlQ2xlYXInLCAnaW5jbHVkZVNlYXJjaCcsICdpbnB1dElkJywgJ2lucHV0VGFiSW5kZXgnLCAnaXRlbXMnLCAnbGFiZWwnLCAnbGVhdmVNZW51T3BlbicsICdtYXhDaGlwcycsICdtaW5DaGFycycsICdtaW5JbnB1dFdpZHRoJywgJ211bHRpU2VsZWN0JywgJ25hbWUnLCAnbm9SZXN1bHRzJywgJ3BsYWNlaG9sZGVyJywgJ3JlYWRPbmx5JywgJ3JlcXVpcmVkJywgJ3Nob3dNZW51T25Gb2N1cycsICdzaG93U3Bpbm5lcicsICdzaXplJywgJ3ZhbHVlJ10sXG4gIG1ldGhvZHM6IFsnc2VsZWN0SXRlbScsICdvcGVuTWVudScsICdjbG9zZU1lbnUnLCAndG9nZ2xlTWVudScsICdmb2N1c0lucHV0JywgJ2NsZWFySW5wdXQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21vZHVzLXdjLWF1dG9jb21wbGV0ZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYm9yZGVyZWQnLCAnY3VzdG9tQmx1cicsICdjdXN0b21DbGFzcycsICdjdXN0b21JbnB1dENoYW5nZScsICdjdXN0b21JdGVtU2VsZWN0JywgJ2N1c3RvbUtleURvd24nLCAnZGVib3VuY2VNcycsICdkaXNhYmxlZCcsICdpbmNsdWRlQ2xlYXInLCAnaW5jbHVkZVNlYXJjaCcsICdpbnB1dElkJywgJ2lucHV0VGFiSW5kZXgnLCAnaXRlbXMnLCAnbGFiZWwnLCAnbGVhdmVNZW51T3BlbicsICdtYXhDaGlwcycsICdtaW5DaGFycycsICdtaW5JbnB1dFdpZHRoJywgJ211bHRpU2VsZWN0JywgJ25hbWUnLCAnbm9SZXN1bHRzJywgJ3BsYWNlaG9sZGVyJywgJ3JlYWRPbmx5JywgJ3JlcXVpcmVkJywgJ3Nob3dNZW51T25Gb2N1cycsICdzaG93U3Bpbm5lcicsICdzaXplJywgJ3ZhbHVlJ10sXG59KVxuZXhwb3J0IGNsYXNzIE1vZHVzV2NBdXRvY29tcGxldGUge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxNb2R1c1djQXV0b2NvbXBsZXRlRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnY2hpcFJlbW92ZScsICdjaGlwc0V4cGFuc2lvbkNoYW5nZScsICdpbnB1dEJsdXInLCAnaW5wdXRDaGFuZ2UnLCAnaW5wdXRGb2N1cycsICdpdGVtU2VsZWN0J10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBJQXV0b2NvbXBsZXRlSXRlbSBhcyBJTW9kdXNXY0F1dG9jb21wbGV0ZUlBdXRvY29tcGxldGVJdGVtIH0gZnJvbSAnQHRyaW1ibGUtb3NzL21vZHVzd2ViY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBNb2R1c1djQXV0b2NvbXBsZXRlIGV4dGVuZHMgQ29tcG9uZW50cy5Nb2R1c1djQXV0b2NvbXBsZXRlIHtcbiAgLyoqXG4gICAqIEV2ZW50IGVtaXR0ZWQgd2hlbiBhIHNlbGVjdGVkIGl0ZW0gY2hpcCBpcyByZW1vdmVkLlxuICAgKi9cbiAgY2hpcFJlbW92ZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElNb2R1c1djQXV0b2NvbXBsZXRlSUF1dG9jb21wbGV0ZUl0ZW0+PjtcbiAgLyoqXG4gICAqIEV2ZW50IGVtaXR0ZWQgd2hlbiBjaGlwcyBleHBhbnNpb24gc3RhdGUgY2hhbmdlcy5cbiAgICovXG4gIGNoaXBzRXhwYW5zaW9uQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyBleHBhbmRlZDogYm9vbGVhbiB9Pj47XG4gIC8qKlxuICAgKiBFdmVudCBlbWl0dGVkIHdoZW4gdGhlIGlucHV0IGxvc2VzIGZvY3VzLlxuICAgKi9cbiAgaW5wdXRCbHVyOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8Rm9jdXNFdmVudD4+O1xuICAvKipcbiAgICogRXZlbnQgZW1pdHRlZCB3aGVuIHRoZSBpbnB1dCB2YWx1ZSBjaGFuZ2VzLlxuVGhpcyBldmVudCBpcyBkZWJvdW5jZWQgYmFzZWQgb24gdGhlIGRlYm91bmNlTXMgcHJvcC5cbiAgICovXG4gIGlucHV0Q2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8RXZlbnQ+PjtcbiAgLyoqXG4gICAqIEV2ZW50IGVtaXR0ZWQgd2hlbiB0aGUgaW5wdXQgZ2FpbnMgZm9jdXMuXG4gICAqL1xuICBpbnB1dEZvY3VzOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8Rm9jdXNFdmVudD4+O1xuICAvKipcbiAgICogRXZlbnQgZW1pdHRlZCB3aGVuIGEgbWVudSBpdGVtIGlzIHNlbGVjdGVkLlxuICAgKi9cbiAgaXRlbVNlbGVjdDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElNb2R1c1djQXV0b2NvbXBsZXRlSUF1dG9jb21wbGV0ZUl0ZW0+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYWx0JywgJ2N1c3RvbUNsYXNzJywgJ2ltZ1NyYycsICdpbml0aWFscycsICdzaGFwZScsICdzaXplJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtb2R1cy13Yy1hdmF0YXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FsdCcsICdjdXN0b21DbGFzcycsICdpbWdTcmMnLCAnaW5pdGlhbHMnLCAnc2hhcGUnLCAnc2l6ZSddLFxufSlcbmV4cG9ydCBjbGFzcyBNb2R1c1djQXZhdGFyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MTW9kdXNXY0F2YXRhckVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE1vZHVzV2NBdmF0YXIgZXh0ZW5kcyBDb21wb25lbnRzLk1vZHVzV2NBdmF0YXIge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY29sb3InLCAnY3VzdG9tQ2xhc3MnLCAnc2l6ZScsICd2YXJpYW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtb2R1cy13Yy1iYWRnZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY29sb3InLCAnY3VzdG9tQ2xhc3MnLCAnc2l6ZScsICd2YXJpYW50J10sXG59KVxuZXhwb3J0IGNsYXNzIE1vZHVzV2NCYWRnZSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTE1vZHVzV2NCYWRnZUVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE1vZHVzV2NCYWRnZSBleHRlbmRzIENvbXBvbmVudHMuTW9kdXNXY0JhZGdlIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2N1c3RvbUNsYXNzJywgJ2l0ZW1zJywgJ3NpemUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21vZHVzLXdjLWJyZWFkY3J1bWJzJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjdXN0b21DbGFzcycsICdpdGVtcycsICdzaXplJ10sXG59KVxuZXhwb3J0IGNsYXNzIE1vZHVzV2NCcmVhZGNydW1icyB7XG4gIHByb3RlY3RlZCBlbDogSFRNTE1vZHVzV2NCcmVhZGNydW1ic0VsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2JyZWFkY3J1bWJDbGljayddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgSUJyZWFkY3J1bWIgYXMgSU1vZHVzV2NCcmVhZGNydW1ic0lCcmVhZGNydW1iIH0gZnJvbSAnQHRyaW1ibGUtb3NzL21vZHVzd2ViY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBNb2R1c1djQnJlYWRjcnVtYnMgZXh0ZW5kcyBDb21wb25lbnRzLk1vZHVzV2NCcmVhZGNydW1icyB7XG4gIC8qKlxuICAgKiBFdmVudCBlbWl0dGVkIHdoZW4gYSBicmVhZGNydW1iIGlzIGNsaWNrZWQuXG4gICAqL1xuICBicmVhZGNydW1iQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJTW9kdXNXY0JyZWFkY3J1bWJzSUJyZWFkY3J1bWI+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY29sb3InLCAnY3VzdG9tQ2xhc3MnLCAnZGlzYWJsZWQnLCAnZnVsbFdpZHRoJywgJ3ByZXNzZWQnLCAnc2hhcGUnLCAnc2l6ZScsICd0eXBlJywgJ3ZhcmlhbnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21vZHVzLXdjLWJ1dHRvbicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY29sb3InLCAnY3VzdG9tQ2xhc3MnLCAnZGlzYWJsZWQnLCAnZnVsbFdpZHRoJywgJ3ByZXNzZWQnLCAnc2hhcGUnLCAnc2l6ZScsICd0eXBlJywgJ3ZhcmlhbnQnXSxcbn0pXG5leHBvcnQgY2xhc3MgTW9kdXNXY0J1dHRvbiB7XG4gIHByb3RlY3RlZCBlbDogSFRNTE1vZHVzV2NCdXR0b25FbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydidXR0b25DbGljayddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBNb2R1c1djQnV0dG9uIGV4dGVuZHMgQ29tcG9uZW50cy5Nb2R1c1djQnV0dG9uIHtcbiAgLyoqXG4gICAqIEV2ZW50IGVtaXR0ZWQgd2hlbiB0aGUgYnV0dG9uIGlzIGNsaWNrZWQgb3IgYWN0aXZhdGVkIHZpYSBrZXlib2FyZC5cbiAgICovXG4gIGJ1dHRvbkNsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8TW91c2VFdmVudCB8IEtleWJvYXJkRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYmFja2dyb3VuZEZpZ3VyZScsICdib3JkZXJlZCcsICdjdXN0b21DbGFzcycsICdsYXlvdXQnLCAncGFkZGluZyddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbW9kdXMtd2MtY2FyZCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYmFja2dyb3VuZEZpZ3VyZScsICdib3JkZXJlZCcsICdjdXN0b21DbGFzcycsICdsYXlvdXQnLCAncGFkZGluZyddLFxufSlcbmV4cG9ydCBjbGFzcyBNb2R1c1djQ2FyZCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTE1vZHVzV2NDYXJkRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTW9kdXNXY0NhcmQgZXh0ZW5kcyBDb21wb25lbnRzLk1vZHVzV2NDYXJkIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2N1c3RvbUNsYXNzJywgJ2Rpc2FibGVkJywgJ2luZGV0ZXJtaW5hdGUnLCAnaW5wdXRJZCcsICdpbnB1dFRhYkluZGV4JywgJ2xhYmVsJywgJ25hbWUnLCAncmVxdWlyZWQnLCAnc2l6ZScsICd2YWx1ZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbW9kdXMtd2MtY2hlY2tib3gnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2N1c3RvbUNsYXNzJywgJ2Rpc2FibGVkJywgJ2luZGV0ZXJtaW5hdGUnLCAnaW5wdXRJZCcsICdpbnB1dFRhYkluZGV4JywgJ2xhYmVsJywgJ25hbWUnLCAncmVxdWlyZWQnLCAnc2l6ZScsICd2YWx1ZSddLFxufSlcbmV4cG9ydCBjbGFzcyBNb2R1c1djQ2hlY2tib3gge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxNb2R1c1djQ2hlY2tib3hFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydpbnB1dEJsdXInLCAnaW5wdXRDaGFuZ2UnLCAnaW5wdXRGb2N1cyddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBNb2R1c1djQ2hlY2tib3ggZXh0ZW5kcyBDb21wb25lbnRzLk1vZHVzV2NDaGVja2JveCB7XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIGlucHV0IGxvc2VzIGZvY3VzLlxuICAgKi9cbiAgaW5wdXRCbHVyOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8Rm9jdXNFdmVudD4+O1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSBpbnB1dCB2YWx1ZSBjaGFuZ2VzLlxuICAgKi9cbiAgaW5wdXRDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJbnB1dEV2ZW50Pj47XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIGlucHV0IGdhaW5zIGZvY3VzLlxuICAgKi9cbiAgaW5wdXRGb2N1czogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PEZvY3VzRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYWN0aXZlJywgJ2N1c3RvbUNsYXNzJywgJ2Rpc2FibGVkJywgJ2hhc0Vycm9yJywgJ2xhYmVsJywgJ3NoYXBlJywgJ3Nob3dSZW1vdmUnLCAnc2l6ZScsICd2YXJpYW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtb2R1cy13Yy1jaGlwJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhY3RpdmUnLCAnY3VzdG9tQ2xhc3MnLCAnZGlzYWJsZWQnLCAnaGFzRXJyb3InLCAnbGFiZWwnLCAnc2hhcGUnLCAnc2hvd1JlbW92ZScsICdzaXplJywgJ3ZhcmlhbnQnXSxcbn0pXG5leHBvcnQgY2xhc3MgTW9kdXNXY0NoaXAge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxNb2R1c1djQ2hpcEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2NoaXBDbGljaycsICdjaGlwUmVtb3ZlJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE1vZHVzV2NDaGlwIGV4dGVuZHMgQ29tcG9uZW50cy5Nb2R1c1djQ2hpcCB7XG4gIC8qKlxuICAgKiBFdmVudCBlbWl0dGVkIHdoZW4gdGhlIGNoaXAgaXMgY2xpY2tlZCBvciBhY3RpdmF0ZWQgdmlhIGtleWJvYXJkLlxuICAgKi9cbiAgY2hpcENsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8TW91c2VFdmVudCB8IEtleWJvYXJkRXZlbnQ+PjtcbiAgLyoqXG4gICAqIEV2ZW50IGVtaXR0ZWQgd2hlbiB0aGUgY2xvc2UgY2hpcCBpY29uIGJ1dHRvbiBpcyBjbGlja2VkLlxuICAgKi9cbiAgY2hpcFJlbW92ZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PE1vdXNlRXZlbnQgfCBLZXlib2FyZEV2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2JvcmRlcmVkJywgJ2NvbGxhcHNlSWQnLCAnY3VzdG9tQ2xhc3MnLCAnZXhwYW5kZWQnLCAnb3B0aW9ucyddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbW9kdXMtd2MtY29sbGFwc2UnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2JvcmRlcmVkJywgJ2NvbGxhcHNlSWQnLCAnY3VzdG9tQ2xhc3MnLCAnZXhwYW5kZWQnLCAnb3B0aW9ucyddLFxufSlcbmV4cG9ydCBjbGFzcyBNb2R1c1djQ29sbGFwc2Uge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxNb2R1c1djQ29sbGFwc2VFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydleHBhbmRlZENoYW5nZSddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBNb2R1c1djQ29sbGFwc2UgZXh0ZW5kcyBDb21wb25lbnRzLk1vZHVzV2NDb2xsYXBzZSB7XG4gIC8qKlxuICAgKiBFdmVudCBlbWl0dGVkIHdoZW4gdGhlIGV4cGFuZGVkIHByb3AgaXMgaW50ZXJuYWxseSBjaGFuZ2VkLlxuICAgKi9cbiAgZXhwYW5kZWRDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IGV4cGFuZGVkOiBib29sZWFuIH0+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYm9yZGVyZWQnLCAnY3VzdG9tQ2xhc3MnLCAnZGlzYWJsZWQnLCAnZmVlZGJhY2snLCAnZm9ybWF0JywgJ2lucHV0SWQnLCAnaW5wdXRUYWJJbmRleCcsICdsYWJlbCcsICdtYXgnLCAnbWluJywgJ25hbWUnLCAncmVhZE9ubHknLCAncmVxdWlyZWQnLCAnc2l6ZScsICd2YWx1ZScsICd3ZWVrU3RhcnREYXknXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21vZHVzLXdjLWRhdGUnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2JvcmRlcmVkJywgJ2N1c3RvbUNsYXNzJywgJ2Rpc2FibGVkJywgJ2ZlZWRiYWNrJywgJ2Zvcm1hdCcsICdpbnB1dElkJywgJ2lucHV0VGFiSW5kZXgnLCAnbGFiZWwnLCAnbWF4JywgJ21pbicsICduYW1lJywgJ3JlYWRPbmx5JywgJ3JlcXVpcmVkJywgJ3NpemUnLCAndmFsdWUnLCAnd2Vla1N0YXJ0RGF5J10sXG59KVxuZXhwb3J0IGNsYXNzIE1vZHVzV2NEYXRlIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MTW9kdXNXY0RhdGVFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydpbnB1dEJsdXInLCAnaW5wdXRDaGFuZ2UnLCAnaW5wdXRGb2N1cycsICdjYWxlbmRhck1vbnRoQ2hhbmdlJywgJ2NhbGVuZGFyWWVhckNoYW5nZSddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBNb2R1c1djRGF0ZSBleHRlbmRzIENvbXBvbmVudHMuTW9kdXNXY0RhdGUge1xuICAvKipcbiAgICogRXZlbnQgZW1pdHRlZCB3aGVuIHRoZSBpbnB1dCBsb3NlcyBmb2N1cy5cbiAgICovXG4gIGlucHV0Qmx1cjogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PEZvY3VzRXZlbnQ+PjtcbiAgLyoqXG4gICAqIEV2ZW50IGVtaXR0ZWQgd2hlbiB0aGUgaW5wdXQgdmFsdWUgY2hhbmdlcy5cbiAgICovXG4gIGlucHV0Q2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SW5wdXRFdmVudD4+O1xuICAvKipcbiAgICogRXZlbnQgZW1pdHRlZCB3aGVuIHRoZSBpbnB1dCBnYWlucyBmb2N1cy5cbiAgICovXG4gIGlucHV0Rm9jdXM6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxGb2N1c0V2ZW50Pj47XG4gIC8qKlxuICAgKiBFdmVudCBlbWl0dGVkIHdoZW4gdGhlIGNhbGVuZGFyIG1vbnRoIHNlbGVjdGlvbiBjaGFuZ2VzLlxuICAgKi9cbiAgY2FsZW5kYXJNb250aENoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PG51bWJlcj4+O1xuICAvKipcbiAgICogRXZlbnQgZW1pdHRlZCB3aGVuIHRoZSBjYWxlbmRhciB5ZWFyIHNlbGVjdGlvbiBjaGFuZ2VzLlxuICAgKi9cbiAgY2FsZW5kYXJZZWFyQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8bnVtYmVyPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2NvbG9yJywgJ2NvbnRlbnQnLCAnY3VzdG9tQ2xhc3MnLCAnb3JpZW50YXRpb24nLCAncG9zaXRpb24nLCAncmVzcG9uc2l2ZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbW9kdXMtd2MtZGl2aWRlcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY29sb3InLCAnY29udGVudCcsICdjdXN0b21DbGFzcycsICdvcmllbnRhdGlvbicsICdwb3NpdGlvbicsICdyZXNwb25zaXZlJ10sXG59KVxuZXhwb3J0IGNsYXNzIE1vZHVzV2NEaXZpZGVyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MTW9kdXNXY0RpdmlkZXJFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBNb2R1c1djRGl2aWRlciBleHRlbmRzIENvbXBvbmVudHMuTW9kdXNXY0RpdmlkZXIge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYnV0dG9uQXJpYUxhYmVsJywgJ2J1dHRvbkNvbG9yJywgJ2J1dHRvblNpemUnLCAnYnV0dG9uVmFyaWFudCcsICdjdXN0b21DbGFzcycsICdkaXNhYmxlZCcsICdtZW51Qm9yZGVyZWQnLCAnbWVudU9mZnNldCcsICdtZW51UGxhY2VtZW50JywgJ21lbnVTaXplJywgJ21lbnVWaXNpYmxlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtb2R1cy13Yy1kcm9wZG93bi1tZW51JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydidXR0b25BcmlhTGFiZWwnLCAnYnV0dG9uQ29sb3InLCAnYnV0dG9uU2l6ZScsICdidXR0b25WYXJpYW50JywgJ2N1c3RvbUNsYXNzJywgJ2Rpc2FibGVkJywgJ21lbnVCb3JkZXJlZCcsICdtZW51T2Zmc2V0JywgJ21lbnVQbGFjZW1lbnQnLCAnbWVudVNpemUnLCAnbWVudVZpc2libGUnXSxcbn0pXG5leHBvcnQgY2xhc3MgTW9kdXNXY0Ryb3Bkb3duTWVudSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTE1vZHVzV2NEcm9wZG93bk1lbnVFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydtZW51VmlzaWJpbGl0eUNoYW5nZSddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBNb2R1c1djRHJvcGRvd25NZW51IGV4dGVuZHMgQ29tcG9uZW50cy5Nb2R1c1djRHJvcGRvd25NZW51IHtcbiAgLyoqXG4gICAqIEV2ZW50IGVtaXR0ZWQgd2hlbiB0aGUgbWVudVZpc2libGUgcHJvcCBjaGFuZ2VzLlxuICAgKi9cbiAgbWVudVZpc2liaWxpdHlDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IGlzVmlzaWJsZTogYm9vbGVhbiB9Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2FjY2VwdEZpbGVUeXBlcycsICdjdXN0b21DbGFzcycsICdkaXNhYmxlZCcsICdmaWxlRHJhZ2dlZE92ZXJJbnN0cnVjdGlvbnMnLCAnaW5jbHVkZVN0YXRlSWNvbicsICdpbnN0cnVjdGlvbnMnLCAnaW52YWxpZEZpbGVUeXBlTWVzc2FnZScsICdtYXhGaWxlQ291bnQnLCAnbWF4RmlsZU5hbWVMZW5ndGgnLCAnbWF4VG90YWxGaWxlU2l6ZUJ5dGVzJywgJ211bHRpcGxlJywgJ3N1Y2Nlc3NNZXNzYWdlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtb2R1cy13Yy1maWxlLWRyb3B6b25lJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhY2NlcHRGaWxlVHlwZXMnLCAnY3VzdG9tQ2xhc3MnLCAnZGlzYWJsZWQnLCAnZmlsZURyYWdnZWRPdmVySW5zdHJ1Y3Rpb25zJywgJ2luY2x1ZGVTdGF0ZUljb24nLCAnaW5zdHJ1Y3Rpb25zJywgJ2ludmFsaWRGaWxlVHlwZU1lc3NhZ2UnLCAnbWF4RmlsZUNvdW50JywgJ21heEZpbGVOYW1lTGVuZ3RoJywgJ21heFRvdGFsRmlsZVNpemVCeXRlcycsICdtdWx0aXBsZScsICdzdWNjZXNzTWVzc2FnZSddLFxufSlcbmV4cG9ydCBjbGFzcyBNb2R1c1djRmlsZURyb3B6b25lIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MTW9kdXNXY0ZpbGVEcm9wem9uZUVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2ZpbGVTZWxlY3QnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTW9kdXNXY0ZpbGVEcm9wem9uZSBleHRlbmRzIENvbXBvbmVudHMuTW9kdXNXY0ZpbGVEcm9wem9uZSB7XG4gIC8qKlxuICAgKiBFdmVudCBlbWl0dGVkIHdoZW4gZmlsZXMgYXJlIHNlbGVjdGVkXG4gICAqL1xuICBmaWxlU2VsZWN0OiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8RmlsZUxpc3Q+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY3VzdG9tQ2xhc3MnLCAnZGVjb3JhdGl2ZScsICduYW1lJywgJ3NpemUnLCAndmFyaWFudCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbW9kdXMtd2MtaWNvbicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY3VzdG9tQ2xhc3MnLCAnZGVjb3JhdGl2ZScsICduYW1lJywgJ3NpemUnLCAndmFyaWFudCddLFxufSlcbmV4cG9ydCBjbGFzcyBNb2R1c1djSWNvbiB7XG4gIHByb3RlY3RlZCBlbDogSFRNTE1vZHVzV2NJY29uRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTW9kdXNXY0ljb24gZXh0ZW5kcyBDb21wb25lbnRzLk1vZHVzV2NJY29uIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2N1c3RvbUNsYXNzJywgJ2ljb24nLCAnbGV2ZWwnLCAnbWVzc2FnZScsICdzaXplJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtb2R1cy13Yy1pbnB1dC1mZWVkYmFjaycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY3VzdG9tQ2xhc3MnLCAnaWNvbicsICdsZXZlbCcsICdtZXNzYWdlJywgJ3NpemUnXSxcbn0pXG5leHBvcnQgY2xhc3MgTW9kdXNXY0lucHV0RmVlZGJhY2sge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxNb2R1c1djSW5wdXRGZWVkYmFja0VsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE1vZHVzV2NJbnB1dEZlZWRiYWNrIGV4dGVuZHMgQ29tcG9uZW50cy5Nb2R1c1djSW5wdXRGZWVkYmFjayB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjdXN0b21DbGFzcycsICdmb3JJZCcsICdsYWJlbFRleHQnLCAncmVxdWlyZWQnLCAnc2l6ZScsICdzdWJMYWJlbFRleHQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21vZHVzLXdjLWlucHV0LWxhYmVsJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjdXN0b21DbGFzcycsICdmb3JJZCcsICdsYWJlbFRleHQnLCAncmVxdWlyZWQnLCAnc2l6ZScsICdzdWJMYWJlbFRleHQnXSxcbn0pXG5leHBvcnQgY2xhc3MgTW9kdXNXY0lucHV0TGFiZWwge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxNb2R1c1djSW5wdXRMYWJlbEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE1vZHVzV2NJbnB1dExhYmVsIGV4dGVuZHMgQ29tcG9uZW50cy5Nb2R1c1djSW5wdXRMYWJlbCB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjb2xvcicsICdjdXN0b21DbGFzcycsICdzaXplJywgJ3ZhcmlhbnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21vZHVzLXdjLWxvYWRlcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY29sb3InLCAnY3VzdG9tQ2xhc3MnLCAnc2l6ZScsICd2YXJpYW50J10sXG59KVxuZXhwb3J0IGNsYXNzIE1vZHVzV2NMb2FkZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxNb2R1c1djTG9hZGVyRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTW9kdXNXY0xvYWRlciBleHRlbmRzIENvbXBvbmVudHMuTW9kdXNXY0xvYWRlciB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydib3JkZXJlZCcsICdjdXN0b21DbGFzcycsICdvcmllbnRhdGlvbicsICdzaXplJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtb2R1cy13Yy1tZW51JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydib3JkZXJlZCcsICdjdXN0b21DbGFzcycsICdvcmllbnRhdGlvbicsICdzaXplJ10sXG59KVxuZXhwb3J0IGNsYXNzIE1vZHVzV2NNZW51IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MTW9kdXNXY01lbnVFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydtZW51Rm9jdXNvdXQnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTW9kdXNXY01lbnUgZXh0ZW5kcyBDb21wb25lbnRzLk1vZHVzV2NNZW51IHtcbiAgLyoqXG4gICAqIEV2ZW50IGVtaXR0ZWQgd2hlbiB0aGUgbWVudSBsb3NlcyBmb2N1cy5cbiAgICovXG4gIG1lbnVGb2N1c291dDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PEZvY3VzRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYm9yZGVyZWQnLCAnY2hlY2tib3gnLCAnY3VzdG9tQ2xhc3MnLCAnZGlzYWJsZWQnLCAnZm9jdXNlZCcsICdsYWJlbCcsICdzZWxlY3RlZCcsICdzaXplJywgJ3N0YXJ0SWNvbicsICdzdWJMYWJlbCcsICd0b29sdGlwQ29udGVudCcsICd0b29sdGlwUG9zaXRpb24nLCAndmFsdWUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21vZHVzLXdjLW1lbnUtaXRlbScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYm9yZGVyZWQnLCAnY2hlY2tib3gnLCAnY3VzdG9tQ2xhc3MnLCAnZGlzYWJsZWQnLCAnZm9jdXNlZCcsICdsYWJlbCcsICdzZWxlY3RlZCcsICdzaXplJywgJ3N0YXJ0SWNvbicsICdzdWJMYWJlbCcsICd0b29sdGlwQ29udGVudCcsICd0b29sdGlwUG9zaXRpb24nLCAndmFsdWUnXSxcbn0pXG5leHBvcnQgY2xhc3MgTW9kdXNXY01lbnVJdGVtIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MTW9kdXNXY01lbnVJdGVtRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnaXRlbVNlbGVjdCddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBNb2R1c1djTWVudUl0ZW0gZXh0ZW5kcyBDb21wb25lbnRzLk1vZHVzV2NNZW51SXRlbSB7XG4gIC8qKlxuICAgKiBFdmVudCBlbWl0dGVkIHdoZW4gYSBtZW51IGl0ZW0gaXMgc2VsZWN0ZWQuXG4gICAqL1xuICBpdGVtU2VsZWN0OiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyB2YWx1ZTogc3RyaW5nIH0+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYmFja2Ryb3AnLCAnY3VzdG9tQ2xhc3MnLCAnZnVsbHNjcmVlbicsICdtb2RhbElkJywgJ3Bvc2l0aW9uJywgJ3Nob3dDbG9zZScsICdzaG93RnVsbHNjcmVlblRvZ2dsZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbW9kdXMtd2MtbW9kYWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2JhY2tkcm9wJywgJ2N1c3RvbUNsYXNzJywgJ2Z1bGxzY3JlZW4nLCAnbW9kYWxJZCcsICdwb3NpdGlvbicsICdzaG93Q2xvc2UnLCAnc2hvd0Z1bGxzY3JlZW5Ub2dnbGUnXSxcbn0pXG5leHBvcnQgY2xhc3MgTW9kdXNXY01vZGFsIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MTW9kdXNXY01vZGFsRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTW9kdXNXY01vZGFsIGV4dGVuZHMgQ29tcG9uZW50cy5Nb2R1c1djTW9kYWwge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYXBwc01lbnVPcGVuJywgJ2NvbmRlbnNlZCcsICdjb25kZW5zZWRNZW51T3BlbicsICdjdXN0b21DbGFzcycsICdtYWluTWVudU9wZW4nLCAnbm90aWZpY2F0aW9uc01lbnVPcGVuJywgJ3NlYXJjaERlYm91bmNlTXMnLCAnc2VhcmNoSW5wdXRPcGVuJywgJ3RleHRPdmVycmlkZXMnLCAndXNlckNhcmQnLCAndXNlck1lbnVPcGVuJywgJ3Zpc2liaWxpdHknXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21vZHVzLXdjLW5hdmJhcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYXBwc01lbnVPcGVuJywgJ2NvbmRlbnNlZCcsICdjb25kZW5zZWRNZW51T3BlbicsICdjdXN0b21DbGFzcycsICdtYWluTWVudU9wZW4nLCAnbm90aWZpY2F0aW9uc01lbnVPcGVuJywgJ3NlYXJjaERlYm91bmNlTXMnLCAnc2VhcmNoSW5wdXRPcGVuJywgJ3RleHRPdmVycmlkZXMnLCAndXNlckNhcmQnLCAndXNlck1lbnVPcGVuJywgJ3Zpc2liaWxpdHknXSxcbn0pXG5leHBvcnQgY2xhc3MgTW9kdXNXY05hdmJhciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTE1vZHVzV2NOYXZiYXJFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydhaUNsaWNrJywgJ2FwcHNDbGljaycsICdhcHBzTWVudU9wZW5DaGFuZ2UnLCAnY29uZGVuc2VkTWVudU9wZW5DaGFuZ2UnLCAnaGVscENsaWNrJywgJ21haW5NZW51T3BlbkNoYW5nZScsICdteVRyaW1ibGVDbGljaycsICdub3RpZmljYXRpb25zQ2xpY2snLCAnbm90aWZpY2F0aW9uc01lbnVPcGVuQ2hhbmdlJywgJ3NlYXJjaENoYW5nZScsICdzZWFyY2hDbGljaycsICdzZWFyY2hJbnB1dE9wZW5DaGFuZ2UnLCAnc2lnbk91dENsaWNrJywgJ3RyaW1ibGVMb2dvQ2xpY2snLCAndXNlck1lbnVPcGVuQ2hhbmdlJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE1vZHVzV2NOYXZiYXIgZXh0ZW5kcyBDb21wb25lbnRzLk1vZHVzV2NOYXZiYXIge1xuICAvKipcbiAgICogRXZlbnQgZW1pdHRlZCB3aGVuIHRoZSBBSSBidXR0b24gaXMgY2xpY2tlZCBvciBhY3RpdmF0ZWQgdmlhIGtleWJvYXJkLlxuICAgKi9cbiAgYWlDbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PE1vdXNlRXZlbnQgfCBLZXlib2FyZEV2ZW50Pj47XG4gIC8qKlxuICAgKiBFdmVudCBlbWl0dGVkIHdoZW4gdGhlIGFwcHMgYnV0dG9uIGlzIGNsaWNrZWQgb3IgYWN0aXZhdGVkIHZpYSBrZXlib2FyZC5cbiAgICovXG4gIGFwcHNDbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PE1vdXNlRXZlbnQgfCBLZXlib2FyZEV2ZW50Pj47XG4gIC8qKlxuICAgKiBFdmVudCBlbWl0dGVkIHdoZW4gdGhlIGFwcHMgbWVudSBvcGVuIHN0YXRlIGNoYW5nZXMuXG4gICAqL1xuICBhcHBzTWVudU9wZW5DaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxib29sZWFuPj47XG4gIC8qKlxuICAgKiBFdmVudCBlbWl0dGVkIHdoZW4gdGhlIGNvbmRlbnNlZCBtZW51IG9wZW4gc3RhdGUgY2hhbmdlcy5cbiAgICovXG4gIGNvbmRlbnNlZE1lbnVPcGVuQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8Ym9vbGVhbj4+O1xuICAvKipcbiAgICogRXZlbnQgZW1pdHRlZCB3aGVuIHRoZSBoZWxwIGJ1dHRvbiBpcyBjbGlja2VkIG9yIGFjdGl2YXRlZCB2aWEga2V5Ym9hcmQuXG4gICAqL1xuICBoZWxwQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxNb3VzZUV2ZW50IHwgS2V5Ym9hcmRFdmVudD4+O1xuICAvKipcbiAgICogRXZlbnQgZW1pdHRlZCB3aGVuIHRoZSBtYWluIG1lbnUgb3BlbiBzdGF0ZSBjaGFuZ2VzLlxuICAgKi9cbiAgbWFpbk1lbnVPcGVuQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8Ym9vbGVhbj4+O1xuICAvKipcbiAgICogRXZlbnQgZW1pdHRlZCB3aGVuIHRoZSB1c2VyIHByb2ZpbGUgQWNjZXNzIE15VHJpbWJsZSBidXR0b24gaXMgY2xpY2tlZCBvciBhY3RpdmF0ZWQgdmlhIGtleWJvYXJkLlxuICAgKi9cbiAgbXlUcmltYmxlQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxNb3VzZUV2ZW50IHwgS2V5Ym9hcmRFdmVudD4+O1xuICAvKipcbiAgICogRXZlbnQgZW1pdHRlZCB3aGVuIHRoZSBub3RpZmljYXRpb25zIGJ1dHRvbiBpcyBjbGlja2VkIG9yIGFjdGl2YXRlZCB2aWEga2V5Ym9hcmQuXG4gICAqL1xuICBub3RpZmljYXRpb25zQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxNb3VzZUV2ZW50IHwgS2V5Ym9hcmRFdmVudD4+O1xuICAvKipcbiAgICogRXZlbnQgZW1pdHRlZCB3aGVuIHRoZSBub3RpZmljYXRpb25zIG1lbnUgb3BlbiBzdGF0ZSBjaGFuZ2VzLlxuICAgKi9cbiAgbm90aWZpY2F0aW9uc01lbnVPcGVuQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8Ym9vbGVhbj4+O1xuICAvKipcbiAgICogRXZlbnQgZW1pdHRlZCB3aGVuIHRoZSBzZWFyY2ggaW5wdXQgdmFsdWUgaXMgY2hhbmdlZC5cbiAgICovXG4gIHNlYXJjaENoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHsgdmFsdWU6IHN0cmluZyB9Pj47XG4gIC8qKlxuICAgKiBFdmVudCBlbWl0dGVkIHdoZW4gdGhlIHNlYXJjaCBidXR0b24gaXMgY2xpY2tlZCBvciBhY3RpdmF0ZWQgdmlhIGtleWJvYXJkLlxuICAgKi9cbiAgc2VhcmNoQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxNb3VzZUV2ZW50IHwgS2V5Ym9hcmRFdmVudD4+O1xuICAvKipcbiAgICogRXZlbnQgZW1pdHRlZCB3aGVuIHRoZSBzZWFyY2ggaW5wdXQgb3BlbiBzdGF0ZSBjaGFuZ2VzLlxuICAgKi9cbiAgc2VhcmNoSW5wdXRPcGVuQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8Ym9vbGVhbj4+O1xuICAvKipcbiAgICogRXZlbnQgZW1pdHRlZCB3aGVuIHRoZSB1c2VyIHByb2ZpbGUgc2lnbiBvdXQgYnV0dG9uIGlzIGNsaWNrZWQgb3IgYWN0aXZhdGVkIHZpYSBrZXlib2FyZC5cbiAgICovXG4gIHNpZ25PdXRDbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PE1vdXNlRXZlbnQgfCBLZXlib2FyZEV2ZW50Pj47XG4gIC8qKlxuICAgKiBFdmVudCBlbWl0dGVkIHdoZW4gdGhlIFRyaW1ibGUgbG9nbyBpcyBjbGlja2VkIG9yIGFjdGl2YXRlZCB2aWEga2V5Ym9hcmQuXG4gICAqL1xuICB0cmltYmxlTG9nb0NsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8TW91c2VFdmVudCB8IEtleWJvYXJkRXZlbnQ+PjtcbiAgLyoqXG4gICAqIEV2ZW50IGVtaXR0ZWQgd2hlbiB0aGUgdXNlciBtZW51IG9wZW4gc3RhdGUgY2hhbmdlcy5cbiAgICovXG4gIHVzZXJNZW51T3BlbkNoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PGJvb2xlYW4+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYXV0b0NvbXBsZXRlJywgJ2JvcmRlcmVkJywgJ2N1cnJlbmN5U3ltYm9sJywgJ2N1c3RvbUNsYXNzJywgJ2Rpc2FibGVkJywgJ2ZlZWRiYWNrJywgJ2lucHV0SWQnLCAnaW5wdXRUYWJJbmRleCcsICdsYWJlbCcsICdtYXgnLCAnbWluJywgJ25hbWUnLCAncGxhY2Vob2xkZXInLCAncmVhZE9ubHknLCAncmVxdWlyZWQnLCAnc2l6ZScsICdzdGVwJywgJ3R5cGUnLCAndmFsdWUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21vZHVzLXdjLW51bWJlci1pbnB1dCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYXV0b0NvbXBsZXRlJywgJ2JvcmRlcmVkJywgJ2N1cnJlbmN5U3ltYm9sJywgJ2N1c3RvbUNsYXNzJywgJ2Rpc2FibGVkJywgJ2ZlZWRiYWNrJywgJ2lucHV0SWQnLCAnaW5wdXRUYWJJbmRleCcsICdsYWJlbCcsICdtYXgnLCAnbWluJywgJ25hbWUnLCAncGxhY2Vob2xkZXInLCAncmVhZE9ubHknLCAncmVxdWlyZWQnLCAnc2l6ZScsICdzdGVwJywgJ3R5cGUnLCAndmFsdWUnXSxcbn0pXG5leHBvcnQgY2xhc3MgTW9kdXNXY051bWJlcklucHV0IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MTW9kdXNXY051bWJlcklucHV0RWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnaW5wdXRCbHVyJywgJ2lucHV0Q2hhbmdlJywgJ2lucHV0Rm9jdXMnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTW9kdXNXY051bWJlcklucHV0IGV4dGVuZHMgQ29tcG9uZW50cy5Nb2R1c1djTnVtYmVySW5wdXQge1xuICAvKipcbiAgICogRXZlbnQgZW1pdHRlZCB3aGVuIHRoZSBpbnB1dCBsb3NlcyBmb2N1cy5cbiAgICovXG4gIGlucHV0Qmx1cjogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PEZvY3VzRXZlbnQ+PjtcbiAgLyoqXG4gICAqIEV2ZW50IGVtaXR0ZWQgd2hlbiB0aGUgaW5wdXQgdmFsdWUgY2hhbmdlcy5cbiAgICovXG4gIGlucHV0Q2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SW5wdXRFdmVudD4+O1xuICAvKipcbiAgICogRXZlbnQgZW1pdHRlZCB3aGVuIHRoZSBpbnB1dCBnYWlucyBmb2N1cy5cbiAgICovXG4gIGlucHV0Rm9jdXM6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxGb2N1c0V2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2FyaWFMYWJlbFZhbHVlcycsICdjb3VudCcsICdjdXN0b21DbGFzcycsICduZXh0QnV0dG9uVGV4dCcsICdwYWdlJywgJ3ByZXZCdXR0b25UZXh0JywgJ3NpemUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21vZHVzLXdjLXBhZ2luYXRpb24nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FyaWFMYWJlbFZhbHVlcycsICdjb3VudCcsICdjdXN0b21DbGFzcycsICduZXh0QnV0dG9uVGV4dCcsICdwYWdlJywgJ3ByZXZCdXR0b25UZXh0JywgJ3NpemUnXSxcbn0pXG5leHBvcnQgY2xhc3MgTW9kdXNXY1BhZ2luYXRpb24ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxNb2R1c1djUGFnaW5hdGlvbkVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3BhZ2VDaGFuZ2UnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IElQYWdlQ2hhbmdlIGFzIElNb2R1c1djUGFnaW5hdGlvbklQYWdlQ2hhbmdlIH0gZnJvbSAnQHRyaW1ibGUtb3NzL21vZHVzd2ViY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBNb2R1c1djUGFnaW5hdGlvbiBleHRlbmRzIENvbXBvbmVudHMuTW9kdXNXY1BhZ2luYXRpb24ge1xuICAvKipcbiAgICogRXZlbnQgZW1pdHRlZCB3aGVuIHBhZ2UgY2hhbmdlc1xuICAgKi9cbiAgcGFnZUNoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElNb2R1c1djUGFnaW5hdGlvbklQYWdlQ2hhbmdlPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2N1c3RvbUNsYXNzJywgJ2luZGV0ZXJtaW5hdGUnLCAnbGFiZWwnLCAnbWF4JywgJ3ZhbHVlJywgJ3ZhcmlhbnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21vZHVzLXdjLXByb2dyZXNzJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjdXN0b21DbGFzcycsICdpbmRldGVybWluYXRlJywgJ2xhYmVsJywgJ21heCcsICd2YWx1ZScsICd2YXJpYW50J10sXG59KVxuZXhwb3J0IGNsYXNzIE1vZHVzV2NQcm9ncmVzcyB7XG4gIHByb3RlY3RlZCBlbDogSFRNTE1vZHVzV2NQcm9ncmVzc0VsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE1vZHVzV2NQcm9ncmVzcyBleHRlbmRzIENvbXBvbmVudHMuTW9kdXNXY1Byb2dyZXNzIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2N1c3RvbUNsYXNzJywgJ2Rpc2FibGVkJywgJ2lucHV0SWQnLCAnaW5wdXRUYWJJbmRleCcsICdsYWJlbCcsICduYW1lJywgJ3JlcXVpcmVkJywgJ3NpemUnLCAndmFsdWUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21vZHVzLXdjLXJhZGlvJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjdXN0b21DbGFzcycsICdkaXNhYmxlZCcsICdpbnB1dElkJywgJ2lucHV0VGFiSW5kZXgnLCAnbGFiZWwnLCAnbmFtZScsICdyZXF1aXJlZCcsICdzaXplJywgJ3ZhbHVlJ10sXG59KVxuZXhwb3J0IGNsYXNzIE1vZHVzV2NSYWRpbyB7XG4gIHByb3RlY3RlZCBlbDogSFRNTE1vZHVzV2NSYWRpb0VsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2lucHV0Qmx1cicsICdpbnB1dENoYW5nZScsICdpbnB1dEZvY3VzJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE1vZHVzV2NSYWRpbyBleHRlbmRzIENvbXBvbmVudHMuTW9kdXNXY1JhZGlvIHtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgaW5wdXQgbG9zZXMgZm9jdXMuXG4gICAqL1xuICBpbnB1dEJsdXI6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxGb2N1c0V2ZW50Pj47XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIGlucHV0IHZhbHVlIGNoYW5nZXMuXG4gICAqL1xuICBpbnB1dENoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElucHV0RXZlbnQ+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgaW5wdXQgZ2FpbnMgZm9jdXMuXG4gICAqL1xuICBpbnB1dEZvY3VzOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8Rm9jdXNFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhbGxvd0hhbGYnLCAnY291bnQnLCAnY3VzdG9tQ2xhc3MnLCAnZGlzYWJsZWQnLCAnZ2V0QXJpYUxhYmVsVGV4dCcsICdzaXplJywgJ3ZhbHVlJywgJ3ZhcmlhbnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21vZHVzLXdjLXJhdGluZycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYWxsb3dIYWxmJywgJ2NvdW50JywgJ2N1c3RvbUNsYXNzJywgJ2Rpc2FibGVkJywgJ2dldEFyaWFMYWJlbFRleHQnLCAnc2l6ZScsICd2YWx1ZScsICd2YXJpYW50J10sXG59KVxuZXhwb3J0IGNsYXNzIE1vZHVzV2NSYXRpbmcge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxNb2R1c1djUmF0aW5nRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsncmF0aW5nQ2hhbmdlJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBJUmF0aW5nQ2hhbmdlIGFzIElNb2R1c1djUmF0aW5nSVJhdGluZ0NoYW5nZSB9IGZyb20gJ0B0cmltYmxlLW9zcy9tb2R1c3dlYmNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTW9kdXNXY1JhdGluZyBleHRlbmRzIENvbXBvbmVudHMuTW9kdXNXY1JhdGluZyB7XG4gIC8qKlxuICAgKiBFdmVudCBlbWl0dGVkIHdoZW4gdGhlIHJhdGluZyBjaGFuZ2VzXG4gICAqL1xuICByYXRpbmdDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJTW9kdXNXY1JhdGluZ0lSYXRpbmdDaGFuZ2U+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYm9yZGVyZWQnLCAnY3VzdG9tQ2xhc3MnLCAnZGlzYWJsZWQnLCAnZmVlZGJhY2snLCAnaW5wdXRJZCcsICdpbnB1dFRhYkluZGV4JywgJ2xhYmVsJywgJ25hbWUnLCAnb3B0aW9ucycsICdyZXF1aXJlZCcsICdzaXplJywgJ3ZhbHVlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtb2R1cy13Yy1zZWxlY3QnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2JvcmRlcmVkJywgJ2N1c3RvbUNsYXNzJywgJ2Rpc2FibGVkJywgJ2ZlZWRiYWNrJywgJ2lucHV0SWQnLCAnaW5wdXRUYWJJbmRleCcsICdsYWJlbCcsICduYW1lJywgJ29wdGlvbnMnLCAncmVxdWlyZWQnLCAnc2l6ZScsICd2YWx1ZSddLFxufSlcbmV4cG9ydCBjbGFzcyBNb2R1c1djU2VsZWN0IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MTW9kdXNXY1NlbGVjdEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2lucHV0Qmx1cicsICdpbnB1dENoYW5nZScsICdpbnB1dEZvY3VzJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE1vZHVzV2NTZWxlY3QgZXh0ZW5kcyBDb21wb25lbnRzLk1vZHVzV2NTZWxlY3Qge1xuICAvKipcbiAgICogRXZlbnQgZW1pdHRlZCB3aGVuIHRoZSBpbnB1dCBsb3NlcyBmb2N1cy5cbiAgICovXG4gIGlucHV0Qmx1cjogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PEZvY3VzRXZlbnQ+PjtcbiAgLyoqXG4gICAqIEV2ZW50IGVtaXR0ZWQgd2hlbiB0aGUgaW5wdXQgdmFsdWUgY2hhbmdlcy5cbiAgICovXG4gIGlucHV0Q2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SW5wdXRFdmVudD4+O1xuICAvKipcbiAgICogRXZlbnQgZW1pdHRlZCB3aGVuIHRoZSBpbnB1dCBnYWlucyBmb2N1cy5cbiAgICovXG4gIGlucHV0Rm9jdXM6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxGb2N1c0V2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2NvbGxhcHNlT25DbGlja091dHNpZGUnLCAnY3VzdG9tQ2xhc3MnLCAnZXhwYW5kZWQnLCAnbWF4V2lkdGgnLCAnbW9kZScsICd0YXJnZXRDb250ZW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtb2R1cy13Yy1zaWRlLW5hdmlnYXRpb24nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2NvbGxhcHNlT25DbGlja091dHNpZGUnLCAnY3VzdG9tQ2xhc3MnLCAnZXhwYW5kZWQnLCAnbWF4V2lkdGgnLCAnbW9kZScsICd0YXJnZXRDb250ZW50J10sXG59KVxuZXhwb3J0IGNsYXNzIE1vZHVzV2NTaWRlTmF2aWdhdGlvbiB7XG4gIHByb3RlY3RlZCBlbDogSFRNTE1vZHVzV2NTaWRlTmF2aWdhdGlvbkVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2V4cGFuZGVkQ2hhbmdlJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE1vZHVzV2NTaWRlTmF2aWdhdGlvbiBleHRlbmRzIENvbXBvbmVudHMuTW9kdXNXY1NpZGVOYXZpZ2F0aW9uIHtcbiAgLyoqXG4gICAqIEV2ZW50IGVtaXR0ZWQgd2hlbiB0aGUgZXhwYW5kZWQgc3RhdGUgY2hhbmdlcyAoZXhwYW5kZWQvY29sbGFwc2VkKS5cbiAgICovXG4gIGV4cGFuZGVkQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8Ym9vbGVhbj4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjdXN0b21DbGFzcycsICdoZWlnaHQnLCAnc2hhcGUnLCAnd2lkdGgnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21vZHVzLXdjLXNrZWxldG9uJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjdXN0b21DbGFzcycsICdoZWlnaHQnLCAnc2hhcGUnLCAnd2lkdGgnXSxcbn0pXG5leHBvcnQgY2xhc3MgTW9kdXNXY1NrZWxldG9uIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MTW9kdXNXY1NrZWxldG9uRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTW9kdXNXY1NrZWxldG9uIGV4dGVuZHMgQ29tcG9uZW50cy5Nb2R1c1djU2tlbGV0b24ge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY3VzdG9tQ2xhc3MnLCAnZGlzYWJsZWQnLCAnaW5wdXRJZCcsICdpbnB1dFRhYkluZGV4JywgJ2xhYmVsJywgJ21heCcsICdtaW4nLCAnbmFtZScsICdyZXF1aXJlZCcsICdzaXplJywgJ3N0ZXAnLCAndmFsdWUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21vZHVzLXdjLXNsaWRlcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY3VzdG9tQ2xhc3MnLCAnZGlzYWJsZWQnLCAnaW5wdXRJZCcsICdpbnB1dFRhYkluZGV4JywgJ2xhYmVsJywgJ21heCcsICdtaW4nLCAnbmFtZScsICdyZXF1aXJlZCcsICdzaXplJywgJ3N0ZXAnLCAndmFsdWUnXSxcbn0pXG5leHBvcnQgY2xhc3MgTW9kdXNXY1NsaWRlciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTE1vZHVzV2NTbGlkZXJFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydpbnB1dEJsdXInLCAnaW5wdXRDaGFuZ2UnLCAnaW5wdXRGb2N1cyddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBNb2R1c1djU2xpZGVyIGV4dGVuZHMgQ29tcG9uZW50cy5Nb2R1c1djU2xpZGVyIHtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgaW5wdXQgbG9zZXMgZm9jdXMuXG4gICAqL1xuICBpbnB1dEJsdXI6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxGb2N1c0V2ZW50Pj47XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIGlucHV0IHZhbHVlIGNoYW5nZXMuXG4gICAqL1xuICBpbnB1dENoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElucHV0RXZlbnQ+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgaW5wdXQgZ2FpbnMgZm9jdXMuXG4gICAqL1xuICBpbnB1dEZvY3VzOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8Rm9jdXNFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjdXN0b21DbGFzcycsICdvcmllbnRhdGlvbicsICdzdGVwcyddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbW9kdXMtd2Mtc3RlcHBlcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY3VzdG9tQ2xhc3MnLCAnb3JpZW50YXRpb24nLCAnc3RlcHMnXSxcbn0pXG5leHBvcnQgY2xhc3MgTW9kdXNXY1N0ZXBwZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxNb2R1c1djU3RlcHBlckVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE1vZHVzV2NTdGVwcGVyIGV4dGVuZHMgQ29tcG9uZW50cy5Nb2R1c1djU3RlcHBlciB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjdXN0b21DbGFzcycsICdkaXNhYmxlZCcsICdpbmRldGVybWluYXRlJywgJ2lucHV0SWQnLCAnaW5wdXRUYWJJbmRleCcsICdsYWJlbCcsICduYW1lJywgJ3JlcXVpcmVkJywgJ3NpemUnLCAndmFsdWUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21vZHVzLXdjLXN3aXRjaCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY3VzdG9tQ2xhc3MnLCAnZGlzYWJsZWQnLCAnaW5kZXRlcm1pbmF0ZScsICdpbnB1dElkJywgJ2lucHV0VGFiSW5kZXgnLCAnbGFiZWwnLCAnbmFtZScsICdyZXF1aXJlZCcsICdzaXplJywgJ3ZhbHVlJ10sXG59KVxuZXhwb3J0IGNsYXNzIE1vZHVzV2NTd2l0Y2gge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxNb2R1c1djU3dpdGNoRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnaW5wdXRCbHVyJywgJ2lucHV0Q2hhbmdlJywgJ2lucHV0Rm9jdXMnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTW9kdXNXY1N3aXRjaCBleHRlbmRzIENvbXBvbmVudHMuTW9kdXNXY1N3aXRjaCB7XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIGlucHV0IGxvc2VzIGZvY3VzLlxuICAgKi9cbiAgaW5wdXRCbHVyOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8Rm9jdXNFdmVudD4+O1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSBpbnB1dCB2YWx1ZSBjaGFuZ2VzLlxuICAgKi9cbiAgaW5wdXRDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJbnB1dEV2ZW50Pj47XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIGlucHV0IGdhaW5zIGZvY3VzLlxuICAgKi9cbiAgaW5wdXRGb2N1czogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PEZvY3VzRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY2FwdGlvbicsICdjb2x1bW5zJywgJ2N1cnJlbnRQYWdlJywgJ2N1c3RvbUNsYXNzJywgJ2RhdGEnLCAnZGVuc2l0eScsICdlZGl0YWJsZScsICdob3ZlcicsICdwYWdlU2l6ZU9wdGlvbnMnLCAncGFnaW5hdGVkJywgJ3NlbGVjdGFibGUnLCAnc2VsZWN0ZWRSb3dJZHMnLCAnc2hvd1BhZ2VTaXplU2VsZWN0b3InLCAnc29ydGFibGUnLCAnemVicmEnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21vZHVzLXdjLXRhYmxlJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjYXB0aW9uJywgJ2NvbHVtbnMnLCAnY3VycmVudFBhZ2UnLCAnY3VzdG9tQ2xhc3MnLCAnZGF0YScsICdkZW5zaXR5JywgJ2VkaXRhYmxlJywgJ2hvdmVyJywgJ3BhZ2VTaXplT3B0aW9ucycsICdwYWdpbmF0ZWQnLCAnc2VsZWN0YWJsZScsICdzZWxlY3RlZFJvd0lkcycsICdzaG93UGFnZVNpemVTZWxlY3RvcicsICdzb3J0YWJsZScsICd6ZWJyYSddLFxufSlcbmV4cG9ydCBjbGFzcyBNb2R1c1djVGFibGUge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxNb2R1c1djVGFibGVFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydjZWxsRWRpdFN0YXJ0JywgJ2NlbGxFZGl0Q29tbWl0JywgJ3Jvd0NsaWNrJywgJ3NvcnRDaGFuZ2UnLCAncGFnaW5hdGlvbkNoYW5nZScsICdyb3dTZWxlY3Rpb25DaGFuZ2UnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFNvcnRpbmdTdGF0ZSBhcyBJTW9kdXNXY1RhYmxlU29ydGluZ1N0YXRlIH0gZnJvbSAnQHRyaW1ibGUtb3NzL21vZHVzd2ViY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IElQYWdpbmF0aW9uQ2hhbmdlRXZlbnREZXRhaWwgYXMgSU1vZHVzV2NUYWJsZUlQYWdpbmF0aW9uQ2hhbmdlRXZlbnREZXRhaWwgfSBmcm9tICdAdHJpbWJsZS1vc3MvbW9kdXN3ZWJjb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE1vZHVzV2NUYWJsZSBleHRlbmRzIENvbXBvbmVudHMuTW9kdXNXY1RhYmxlIHtcbiAgLyoqXG4gICAqIEVtaXRzIHdoZW4gY2VsbCBlZGl0aW5nIHN0YXJ0cy5cbiAgICovXG4gIGNlbGxFZGl0U3RhcnQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IHJvd0luZGV4OiBudW1iZXI7IGNvbElkOiBzdHJpbmc7IH0+PjtcbiAgLyoqXG4gICAqIEVtaXRzIHdoZW4gY2VsbCBlZGl0aW5nIGlzIGNvbW1pdHRlZCB3aXRoIHRoZSBuZXcgdmFsdWUuXG4gICAqL1xuICBjZWxsRWRpdENvbW1pdDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHsgcm93SW5kZXg6IG51bWJlcjsgY29sSWQ6IHN0cmluZzsgbmV3VmFsdWU6IHVua25vd247IHVwZGF0ZWRSb3c6IFJlY29yZDxzdHJpbmcsIHVua25vd24+OyB9Pj47XG4gIC8qKlxuICAgKiBFbWl0cyB3aGVuIGEgcm93IGlzIGNsaWNrZWQuXG4gICAqL1xuICByb3dDbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHsgcm93OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjsgaW5kZXg6IG51bWJlcjsgfT4+O1xuICAvKipcbiAgICogRW1pdHMgd2hlbiBzb3J0aW5nIGNoYW5nZXMgd2l0aCB0aGUgbmV3IHNvcnRpbmcgc3RhdGUuXG4gICAqL1xuICBzb3J0Q2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SU1vZHVzV2NUYWJsZVNvcnRpbmdTdGF0ZT4+O1xuICAvKipcbiAgICogRW1pdHMgd2hlbiBwYWdpbmF0aW9uIGNoYW5nZXMgd2l0aCB0aGUgbmV3IHBhZ2luYXRpb24gc3RhdGUuXG4gICAqL1xuICBwYWdpbmF0aW9uQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SU1vZHVzV2NUYWJsZUlQYWdpbmF0aW9uQ2hhbmdlRXZlbnREZXRhaWw+PjtcbiAgLyoqXG4gICAqIEVtaXRzIHdoZW4gcm93IHNlbGVjdGlvbiBjaGFuZ2VzIHdpdGggdGhlIHNlbGVjdGVkIHJvd3MgYW5kIHRoZWlyIElEcy5cbiAgICovXG4gIHJvd1NlbGVjdGlvbkNoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHsgc2VsZWN0ZWRSb3dzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPltdOyBzZWxlY3RlZFJvd0lkczogc3RyaW5nW107IH0+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYWN0aXZlVGFiSW5kZXgnLCAnY3VzdG9tQ2xhc3MnLCAnc2l6ZScsICd0YWJTdHlsZScsICd0YWJzJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtb2R1cy13Yy10YWJzJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhY3RpdmVUYWJJbmRleCcsICdjdXN0b21DbGFzcycsICdzaXplJywgJ3RhYlN0eWxlJywgJ3RhYnMnXSxcbn0pXG5leHBvcnQgY2xhc3MgTW9kdXNXY1RhYnMge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxNb2R1c1djVGFic0VsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3RhYkNoYW5nZSddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBNb2R1c1djVGFicyBleHRlbmRzIENvbXBvbmVudHMuTW9kdXNXY1RhYnMge1xuICAvKipcbiAgICogV2hlbiBhIHRhYiBpcyBzd2l0Y2hlZCB0bywgdGhpcyBldmVudCBvdXRwdXRzIHRoZSByZWxldmFudCBpbmRpY2VzXG4gICAqL1xuICB0YWJDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IHByZXZpb3VzVGFiOiBudW1iZXI7IG5ld1RhYjogbnVtYmVyOyB9Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2F1dG9DYXBpdGFsaXplJywgJ2F1dG9Db21wbGV0ZScsICdhdXRvQ29ycmVjdCcsICdib3JkZXJlZCcsICdjbGVhckFyaWFMYWJlbCcsICdjdXN0b21DbGFzcycsICdkaXNhYmxlZCcsICdlbnRlcmtleWhpbnQnLCAnZmVlZGJhY2snLCAnaW5jbHVkZUNsZWFyJywgJ2luY2x1ZGVTZWFyY2gnLCAnaW5wdXRJZCcsICdpbnB1dFRhYkluZGV4JywgJ2xhYmVsJywgJ21heExlbmd0aCcsICdtaW5MZW5ndGgnLCAnbmFtZScsICdwYXR0ZXJuJywgJ3BsYWNlaG9sZGVyJywgJ3JlYWRPbmx5JywgJ3JlcXVpcmVkJywgJ3NpemUnLCAndHlwZScsICd2YWx1ZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbW9kdXMtd2MtdGV4dC1pbnB1dCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYXV0b0NhcGl0YWxpemUnLCAnYXV0b0NvbXBsZXRlJywgJ2F1dG9Db3JyZWN0JywgJ2JvcmRlcmVkJywgJ2NsZWFyQXJpYUxhYmVsJywgJ2N1c3RvbUNsYXNzJywgJ2Rpc2FibGVkJywgJ2VudGVya2V5aGludCcsICdmZWVkYmFjaycsICdpbmNsdWRlQ2xlYXInLCAnaW5jbHVkZVNlYXJjaCcsICdpbnB1dElkJywgJ2lucHV0VGFiSW5kZXgnLCAnbGFiZWwnLCAnbWF4TGVuZ3RoJywgJ21pbkxlbmd0aCcsICduYW1lJywgJ3BhdHRlcm4nLCAncGxhY2Vob2xkZXInLCAncmVhZE9ubHknLCAncmVxdWlyZWQnLCAnc2l6ZScsICd0eXBlJywgJ3ZhbHVlJ10sXG59KVxuZXhwb3J0IGNsYXNzIE1vZHVzV2NUZXh0SW5wdXQge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxNb2R1c1djVGV4dElucHV0RWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnaW5wdXRCbHVyJywgJ2lucHV0Q2hhbmdlJywgJ2lucHV0Rm9jdXMnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTW9kdXNXY1RleHRJbnB1dCBleHRlbmRzIENvbXBvbmVudHMuTW9kdXNXY1RleHRJbnB1dCB7XG4gIC8qKlxuICAgKiBFdmVudCBlbWl0dGVkIHdoZW4gdGhlIGlucHV0IGxvc2VzIGZvY3VzLlxuICAgKi9cbiAgaW5wdXRCbHVyOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8Rm9jdXNFdmVudD4+O1xuICAvKipcbiAgICogRXZlbnQgZW1pdHRlZCB3aGVuIHRoZSBpbnB1dCB2YWx1ZSBjaGFuZ2VzLlxuICAgKi9cbiAgaW5wdXRDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJbnB1dEV2ZW50Pj47XG4gIC8qKlxuICAgKiBFdmVudCBlbWl0dGVkIHdoZW4gdGhlIGlucHV0IGdhaW5zIGZvY3VzLlxuICAgKi9cbiAgaW5wdXRGb2N1czogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PEZvY3VzRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYXV0b0NvcnJlY3QnLCAnYm9yZGVyZWQnLCAnY3VzdG9tQ2xhc3MnLCAnZGlzYWJsZWQnLCAnZW50ZXJrZXloaW50JywgJ2ZlZWRiYWNrJywgJ2lucHV0SWQnLCAnaW5wdXRUYWJJbmRleCcsICdsYWJlbCcsICdtYXhMZW5ndGgnLCAnbWluTGVuZ3RoJywgJ25hbWUnLCAncGxhY2Vob2xkZXInLCAncmVhZG9ubHknLCAncmVxdWlyZWQnLCAncm93cycsICdzaXplJywgJ3ZhbHVlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtb2R1cy13Yy10ZXh0YXJlYScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYXV0b0NvcnJlY3QnLCAnYm9yZGVyZWQnLCAnY3VzdG9tQ2xhc3MnLCAnZGlzYWJsZWQnLCAnZW50ZXJrZXloaW50JywgJ2ZlZWRiYWNrJywgJ2lucHV0SWQnLCAnaW5wdXRUYWJJbmRleCcsICdsYWJlbCcsICdtYXhMZW5ndGgnLCAnbWluTGVuZ3RoJywgJ25hbWUnLCAncGxhY2Vob2xkZXInLCAncmVhZG9ubHknLCAncmVxdWlyZWQnLCAncm93cycsICdzaXplJywgJ3ZhbHVlJ10sXG59KVxuZXhwb3J0IGNsYXNzIE1vZHVzV2NUZXh0YXJlYSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTE1vZHVzV2NUZXh0YXJlYUVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2lucHV0Qmx1cicsICdpbnB1dENoYW5nZScsICdpbnB1dEZvY3VzJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE1vZHVzV2NUZXh0YXJlYSBleHRlbmRzIENvbXBvbmVudHMuTW9kdXNXY1RleHRhcmVhIHtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgaW5wdXQgbG9zZXMgZm9jdXMuXG4gICAqL1xuICBpbnB1dEJsdXI6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxGb2N1c0V2ZW50Pj47XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIGlucHV0IHZhbHVlIGNoYW5nZXMuXG4gICAqL1xuICBpbnB1dENoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElucHV0RXZlbnQ+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgaW5wdXQgZ2FpbnMgZm9jdXMuXG4gICAqL1xuICBpbnB1dEZvY3VzOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8Rm9jdXNFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydpbml0aWFsVGhlbWUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21vZHVzLXdjLXRoZW1lLXByb3ZpZGVyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydpbml0aWFsVGhlbWUnXSxcbn0pXG5leHBvcnQgY2xhc3MgTW9kdXNXY1RoZW1lUHJvdmlkZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxNb2R1c1djVGhlbWVQcm92aWRlckVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE1vZHVzV2NUaGVtZVByb3ZpZGVyIGV4dGVuZHMgQ29tcG9uZW50cy5Nb2R1c1djVGhlbWVQcm92aWRlciB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjdXN0b21DbGFzcyddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbW9kdXMtd2MtdGhlbWUtc3dpdGNoZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2N1c3RvbUNsYXNzJ10sXG59KVxuZXhwb3J0IGNsYXNzIE1vZHVzV2NUaGVtZVN3aXRjaGVyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MTW9kdXNXY1RoZW1lU3dpdGNoZXJFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWyd0aGVtZUNoYW5nZSddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgSVRoZW1lQ29uZmlnIGFzIElNb2R1c1djVGhlbWVTd2l0Y2hlcklUaGVtZUNvbmZpZyB9IGZyb20gJ0B0cmltYmxlLW9zcy9tb2R1c3dlYmNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTW9kdXNXY1RoZW1lU3dpdGNoZXIgZXh0ZW5kcyBDb21wb25lbnRzLk1vZHVzV2NUaGVtZVN3aXRjaGVyIHtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IHRoYXQgZmlyZXMgd2hlbiB0aGUgdGhlbWUgaXMgY2hhbmdlZC5cbiAgICovXG4gIHRoZW1lQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SU1vZHVzV2NUaGVtZVN3aXRjaGVySVRoZW1lQ29uZmlnPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2F1dG9Db21wbGV0ZScsICdib3JkZXJlZCcsICdjdXN0b21DbGFzcycsICdkYXRhbGlzdElkJywgJ2RhdGFsaXN0T3B0aW9ucycsICdkaXNhYmxlZCcsICdmZWVkYmFjaycsICdpbnB1dElkJywgJ2lucHV0VGFiSW5kZXgnLCAnbGFiZWwnLCAnbWF4JywgJ21pbicsICduYW1lJywgJ3JlYWRPbmx5JywgJ3JlcXVpcmVkJywgJ3Nob3dTZWNvbmRzJywgJ3NpemUnLCAnc3RlcCcsICd2YWx1ZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbW9kdXMtd2MtdGltZS1pbnB1dCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYXV0b0NvbXBsZXRlJywgJ2JvcmRlcmVkJywgJ2N1c3RvbUNsYXNzJywgJ2RhdGFsaXN0SWQnLCAnZGF0YWxpc3RPcHRpb25zJywgJ2Rpc2FibGVkJywgJ2ZlZWRiYWNrJywgJ2lucHV0SWQnLCAnaW5wdXRUYWJJbmRleCcsICdsYWJlbCcsICdtYXgnLCAnbWluJywgJ25hbWUnLCAncmVhZE9ubHknLCAncmVxdWlyZWQnLCAnc2hvd1NlY29uZHMnLCAnc2l6ZScsICdzdGVwJywgJ3ZhbHVlJ10sXG59KVxuZXhwb3J0IGNsYXNzIE1vZHVzV2NUaW1lSW5wdXQge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxNb2R1c1djVGltZUlucHV0RWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnaW5wdXRCbHVyJywgJ2lucHV0Q2hhbmdlJywgJ2lucHV0Rm9jdXMnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTW9kdXNXY1RpbWVJbnB1dCBleHRlbmRzIENvbXBvbmVudHMuTW9kdXNXY1RpbWVJbnB1dCB7XG4gIC8qKlxuICAgKiBFdmVudCBlbWl0dGVkIHdoZW4gdGhlIGlucHV0IGxvc2VzIGZvY3VzLlxuICAgKi9cbiAgaW5wdXRCbHVyOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8Rm9jdXNFdmVudD4+O1xuICAvKipcbiAgICogRXZlbnQgZW1pdHRlZCB3aGVuIHRoZSBpbnB1dCB2YWx1ZSBjaGFuZ2VzLlxuICAgKi9cbiAgaW5wdXRDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxFdmVudD4+O1xuICAvKipcbiAgICogRXZlbnQgZW1pdHRlZCB3aGVuIHRoZSBpbnB1dCBnYWlucyBmb2N1cy5cbiAgICovXG4gIGlucHV0Rm9jdXM6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxGb2N1c0V2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2N1c3RvbUNsYXNzJywgJ2RlbGF5JywgJ3Bvc2l0aW9uJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtb2R1cy13Yy10b2FzdCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY3VzdG9tQ2xhc3MnLCAnZGVsYXknLCAncG9zaXRpb24nXSxcbn0pXG5leHBvcnQgY2xhc3MgTW9kdXNXY1RvYXN0IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MTW9kdXNXY1RvYXN0RWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTW9kdXNXY1RvYXN0IGV4dGVuZHMgQ29tcG9uZW50cy5Nb2R1c1djVG9hc3Qge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY3VzdG9tQ2xhc3MnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21vZHVzLXdjLXRvb2xiYXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2N1c3RvbUNsYXNzJ10sXG59KVxuZXhwb3J0IGNsYXNzIE1vZHVzV2NUb29sYmFyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MTW9kdXNXY1Rvb2xiYXJFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBNb2R1c1djVG9vbGJhciBleHRlbmRzIENvbXBvbmVudHMuTW9kdXNXY1Rvb2xiYXIge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY29udGVudCcsICdjdXN0b21DbGFzcycsICdkaXNhYmxlZCcsICdmb3JjZU9wZW4nLCAncG9zaXRpb24nLCAndG9vbHRpcElkJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtb2R1cy13Yy10b29sdGlwJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjb250ZW50JywgJ2N1c3RvbUNsYXNzJywgJ2Rpc2FibGVkJywgJ2ZvcmNlT3BlbicsICdwb3NpdGlvbicsICd0b29sdGlwSWQnXSxcbn0pXG5leHBvcnQgY2xhc3MgTW9kdXNXY1Rvb2x0aXAge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxNb2R1c1djVG9vbHRpcEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2Rpc21pc3NFc2NhcGUnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTW9kdXNXY1Rvb2x0aXAgZXh0ZW5kcyBDb21wb25lbnRzLk1vZHVzV2NUb29sdGlwIHtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IHRoYXQgZmlyZXMgd2hlbiB0aGUgdG9vbHRpcCBpcyBkaXNtaXNzZWQgdmlhIEVzY2FwZSBrZXlcbiAgICovXG4gIGRpc21pc3NFc2NhcGU6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxhbnk+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY3VzdG9tQ2xhc3MnLCAnaGllcmFyY2h5JywgJ3NpemUnLCAnd2VpZ2h0J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtb2R1cy13Yy10eXBvZ3JhcGh5JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjdXN0b21DbGFzcycsICdoaWVyYXJjaHknLCAnc2l6ZScsICd3ZWlnaHQnXSxcbn0pXG5leHBvcnQgY2xhc3MgTW9kdXNXY1R5cG9ncmFwaHkge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxNb2R1c1djVHlwb2dyYXBoeUVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE1vZHVzV2NUeXBvZ3JhcGh5IGV4dGVuZHMgQ29tcG9uZW50cy5Nb2R1c1djVHlwb2dyYXBoeSB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydleHBhbmRlZCcsICdwdXNoQ29udGVudCcsICd0YXJnZXRFbGVtZW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtb2R1cy13Yy11dGlsaXR5LXBhbmVsJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydleHBhbmRlZCcsICdwdXNoQ29udGVudCcsICd0YXJnZXRFbGVtZW50J10sXG59KVxuZXhwb3J0IGNsYXNzIE1vZHVzV2NVdGlsaXR5UGFuZWwge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxNb2R1c1djVXRpbGl0eVBhbmVsRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsncGFuZWxPcGVuZWQnLCAncGFuZWxDbG9zZWQnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTW9kdXNXY1V0aWxpdHlQYW5lbCBleHRlbmRzIENvbXBvbmVudHMuTW9kdXNXY1V0aWxpdHlQYW5lbCB7XG4gIC8qKlxuICAgKiBBbiBldmVudCB0aGF0IGZpcmVzIHdoZW4gdGhlIHBhbmVsIGlzIG9wZW5lZC5cbiAgICovXG4gIHBhbmVsT3BlbmVkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dm9pZD4+O1xuICAvKipcbiAgICogQW4gZXZlbnQgdGhhdCBmaXJlcyB3aGVuIHRoZSBwYW5lbCBpcyBjbG9zZWQuXG4gICAqL1xuICBwYW5lbENsb3NlZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHZvaWQ+Pjtcbn1cblxuXG4iXX0=
1189
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RyaW1ibGUtb3NzL21vZHVzd2ViY29tcG9uZW50cy1hbmd1bGFyL3NyYy9saWIvc3RlbmNpbC1nZW5lcmF0ZWQvY29tcG9uZW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsb0JBQW9CO0FBQ3BCLDhDQUE4QztBQUM5QyxPQUFPLEVBQUUsdUJBQXVCLEVBQXFCLFNBQVMsRUFBb0MsTUFBTSxlQUFlLENBQUM7QUFFeEgsT0FBTyxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7QUFlaEUsSUFBTSxnQkFBZ0IsR0FBdEIsTUFBTSxnQkFBZ0I7SUFFM0IsWUFBWSxDQUFvQixFQUFFLENBQWEsRUFBWSxDQUFTO1FBQVQsTUFBQyxHQUFELENBQUMsQ0FBUTtRQUNsRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDWCxJQUFJLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxhQUFhLENBQUM7UUFDMUIsWUFBWSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDO0lBQ2xELENBQUM7K0dBTlUsZ0JBQWdCO21HQUFoQixnQkFBZ0Isa0dBSmpCLDJCQUEyQjs7QUFJMUIsZ0JBQWdCO0lBVjVCLFFBQVEsQ0FBQztRQUNSLE1BQU0sRUFBRSxDQUFDLGFBQWEsQ0FBQztLQUN4QixDQUFDO0dBUVcsZ0JBQWdCLENBTzVCOzs0RkFQWSxnQkFBZ0I7a0JBUDVCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLG9CQUFvQjtvQkFDOUIsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLFFBQVEsRUFBRSwyQkFBMkI7b0JBQ3JDLHVFQUF1RTtvQkFDdkUsTUFBTSxFQUFFLENBQUMsYUFBYSxDQUFDO2lCQUN4Qjs7QUE2Qk0sSUFBTSxZQUFZ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QUNyRCxDQUFDO0dBUVcsbUJBQW1CLENBTy9COzs0RkFQWSxtQkFBbUI7a0JBUC9CLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHdCQUF3QjtvQkFDbEMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLFFBQVEsRUFBRSwyQkFBMkI7b0JBQ3JDLHVFQUF1RTtvQkFDdkUsTUFBTSxFQUFFLENBQUMsVUFBVSxFQUFFLGFBQWEsRUFBRSxlQUFlLENBQUM7aUJBQ3JEIiwic291cmNlc0NvbnRlbnQiOlsiLyogdHNsaW50OmRpc2FibGUgKi9cbi8qIGF1dG8tZ2VuZXJhdGVkIGFuZ3VsYXIgZGlyZWN0aXZlIHByb3hpZXMgKi9cbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIE5nWm9uZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBQcm94eUNtcCwgcHJveHlPdXRwdXRzIH0gZnJvbSAnLi9hbmd1bGFyLWNvbXBvbmVudC1saWIvdXRpbHMnO1xuXG5pbXBvcnQgeyBDb21wb25lbnRzIH0gZnJvbSAnQHRyaW1ibGUtb3NzL21vZHVzd2ViY29tcG9uZW50cyc7XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2N1c3RvbUNsYXNzJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtb2R1cy13Yy1hY2NvcmRpb24nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2N1c3RvbUNsYXNzJ10sXG59KVxuZXhwb3J0IGNsYXNzIE1vZHVzV2NBY2NvcmRpb24ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxNb2R1c1djQWNjb3JkaW9uRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnZXhwYW5kZWRDaGFuZ2UnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTW9kdXNXY0FjY29yZGlvbiBleHRlbmRzIENvbXBvbmVudHMuTW9kdXNXY0FjY29yZGlvbiB7XG4gIC8qKlxuICAgKiBXaGVuIGEgY29sbGFwc2UgZXhwYW5kZWQgc3RhdGUgaXMgY2hhbmdlZCwgdGhpcyBldmVudCBvdXRwdXRzIHRoZSByZWxldmFudCBpbmRleCBhbmQgc3RhdGVcbiAgICovXG4gIGV4cGFuZGVkQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyBleHBhbmRlZDogYm9vbGVhbjsgaW5kZXg6IG51bWJlcjsgfT4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhbGVydERlc2NyaXB0aW9uJywgJ2FsZXJ0VGl0bGUnLCAnY3VzdG9tQ2xhc3MnLCAnZGVsYXknLCAnZGlzbWlzc2libGUnLCAnaWNvbicsICd2YXJpYW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtb2R1cy13Yy1hbGVydCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYWxlcnREZXNjcmlwdGlvbicsICdhbGVydFRpdGxlJywgJ2N1c3RvbUNsYXNzJywgJ2RlbGF5JywgJ2Rpc21pc3NpYmxlJywgJ2ljb24nLCAndmFyaWFudCddLFxufSlcbmV4cG9ydCBjbGFzcyBNb2R1c1djQWxlcnQge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxNb2R1c1djQWxlcnRFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydkaXNtaXNzQ2xpY2snXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTW9kdXNXY0FsZXJ0IGV4dGVuZHMgQ29tcG9uZW50cy5Nb2R1c1djQWxlcnQge1xuICAvKipcbiAgICogQW4gZXZlbnQgdGhhdCBmaXJlcyB3aGVuIHRoZSBhbGVydCBpcyBkaXNtaXNzZWRcbiAgICovXG4gIGRpc21pc3NDbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PGFueT4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydib3JkZXJlZCcsICdjdXN0b21CbHVyJywgJ2N1c3RvbUNsYXNzJywgJ2N1c3RvbUlucHV0Q2hhbmdlJywgJ2N1c3RvbUl0ZW1TZWxlY3QnLCAnY3VzdG9tS2V5RG93bicsICdkZWJvdW5jZU1zJywgJ2Rpc2FibGVkJywgJ2luY2x1ZGVDbGVhcicsICdpbmNsdWRlU2VhcmNoJywgJ2lucHV0SWQnLCAnaW5wdXRUYWJJbmRleCcsICdpdGVtcycsICdsYWJlbCcsICdsZWF2ZU1lbnVPcGVuJywgJ21heENoaXBzJywgJ21pbkNoYXJzJywgJ21pbklucHV0V2lkdGgnLCAnbXVsdGlTZWxlY3QnLCAnbmFtZScsICdub1Jlc3VsdHMnLCAncGxhY2Vob2xkZXInLCAncmVhZE9ubHknLCAncmVxdWlyZWQnLCAnc2hvd01lbnVPbkZvY3VzJywgJ3Nob3dTcGlubmVyJywgJ3NpemUnLCAndmFsdWUnXSxcbiAgbWV0aG9kczogWydzZWxlY3RJdGVtJywgJ29wZW5NZW51JywgJ2Nsb3NlTWVudScsICd0b2dnbGVNZW51JywgJ2ZvY3VzSW5wdXQnLCAnY2xlYXJJbnB1dCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbW9kdXMtd2MtYXV0b2NvbXBsZXRlJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydib3JkZXJlZCcsICdjdXN0b21CbHVyJywgJ2N1c3RvbUNsYXNzJywgJ2N1c3RvbUlucHV0Q2hhbmdlJywgJ2N1c3RvbUl0ZW1TZWxlY3QnLCAnY3VzdG9tS2V5RG93bicsICdkZWJvdW5jZU1zJywgJ2Rpc2FibGVkJywgJ2luY2x1ZGVDbGVhcicsICdpbmNsdWRlU2VhcmNoJywgJ2lucHV0SWQnLCAnaW5wdXRUYWJJbmRleCcsICdpdGVtcycsICdsYWJlbCcsICdsZWF2ZU1lbnVPcGVuJywgJ21heENoaXBzJywgJ21pbkNoYXJzJywgJ21pbklucHV0V2lkdGgnLCAnbXVsdGlTZWxlY3QnLCAnbmFtZScsICdub1Jlc3VsdHMnLCAncGxhY2Vob2xkZXInLCAncmVhZE9ubHknLCAncmVxdWlyZWQnLCAnc2hvd01lbnVPbkZvY3VzJywgJ3Nob3dTcGlubmVyJywgJ3NpemUnLCAndmFsdWUnXSxcbn0pXG5leHBvcnQgY2xhc3MgTW9kdXNXY0F1dG9jb21wbGV0ZSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTE1vZHVzV2NBdXRvY29tcGxldGVFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydjaGlwUmVtb3ZlJywgJ2NoaXBzRXhwYW5zaW9uQ2hhbmdlJywgJ2lucHV0Qmx1cicsICdpbnB1dENoYW5nZScsICdpbnB1dEZvY3VzJywgJ2l0ZW1TZWxlY3QnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IElBdXRvY29tcGxldGVJdGVtIGFzIElNb2R1c1djQXV0b2NvbXBsZXRlSUF1dG9jb21wbGV0ZUl0ZW0gfSBmcm9tICdAdHJpbWJsZS1vc3MvbW9kdXN3ZWJjb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE1vZHVzV2NBdXRvY29tcGxldGUgZXh0ZW5kcyBDb21wb25lbnRzLk1vZHVzV2NBdXRvY29tcGxldGUge1xuICAvKipcbiAgICogRXZlbnQgZW1pdHRlZCB3aGVuIGEgc2VsZWN0ZWQgaXRlbSBjaGlwIGlzIHJlbW92ZWQuXG4gICAqL1xuICBjaGlwUmVtb3ZlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SU1vZHVzV2NBdXRvY29tcGxldGVJQXV0b2NvbXBsZXRlSXRlbT4+O1xuICAvKipcbiAgICogRXZlbnQgZW1pdHRlZCB3aGVuIGNoaXBzIGV4cGFuc2lvbiBzdGF0ZSBjaGFuZ2VzLlxuICAgKi9cbiAgY2hpcHNFeHBhbnNpb25DaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IGV4cGFuZGVkOiBib29sZWFuIH0+PjtcbiAgLyoqXG4gICAqIEV2ZW50IGVtaXR0ZWQgd2hlbiB0aGUgaW5wdXQgbG9zZXMgZm9jdXMuXG4gICAqL1xuICBpbnB1dEJsdXI6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxGb2N1c0V2ZW50Pj47XG4gIC8qKlxuICAgKiBFdmVudCBlbWl0dGVkIHdoZW4gdGhlIGlucHV0IHZhbHVlIGNoYW5nZXMuXG5UaGlzIGV2ZW50IGlzIGRlYm91bmNlZCBiYXNlZCBvbiB0aGUgZGVib3VuY2VNcyBwcm9wLlxuICAgKi9cbiAgaW5wdXRDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxFdmVudD4+O1xuICAvKipcbiAgICogRXZlbnQgZW1pdHRlZCB3aGVuIHRoZSBpbnB1dCBnYWlucyBmb2N1cy5cbiAgICovXG4gIGlucHV0Rm9jdXM6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxGb2N1c0V2ZW50Pj47XG4gIC8qKlxuICAgKiBFdmVudCBlbWl0dGVkIHdoZW4gYSBtZW51IGl0ZW0gaXMgc2VsZWN0ZWQuXG4gICAqL1xuICBpdGVtU2VsZWN0OiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SU1vZHVzV2NBdXRvY29tcGxldGVJQXV0b2NvbXBsZXRlSXRlbT4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhbHQnLCAnY3VzdG9tQ2xhc3MnLCAnaW1nU3JjJywgJ2luaXRpYWxzJywgJ3NoYXBlJywgJ3NpemUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21vZHVzLXdjLWF2YXRhcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYWx0JywgJ2N1c3RvbUNsYXNzJywgJ2ltZ1NyYycsICdpbml0aWFscycsICdzaGFwZScsICdzaXplJ10sXG59KVxuZXhwb3J0IGNsYXNzIE1vZHVzV2NBdmF0YXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxNb2R1c1djQXZhdGFyRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTW9kdXNXY0F2YXRhciBleHRlbmRzIENvbXBvbmVudHMuTW9kdXNXY0F2YXRhciB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjb2xvcicsICdjdXN0b21DbGFzcycsICdzaXplJywgJ3ZhcmlhbnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21vZHVzLXdjLWJhZGdlJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjb2xvcicsICdjdXN0b21DbGFzcycsICdzaXplJywgJ3ZhcmlhbnQnXSxcbn0pXG5leHBvcnQgY2xhc3MgTW9kdXNXY0JhZGdlIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MTW9kdXNXY0JhZGdlRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTW9kdXNXY0JhZGdlIGV4dGVuZHMgQ29tcG9uZW50cy5Nb2R1c1djQmFkZ2Uge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY3VzdG9tQ2xhc3MnLCAnaXRlbXMnLCAnc2l6ZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbW9kdXMtd2MtYnJlYWRjcnVtYnMnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2N1c3RvbUNsYXNzJywgJ2l0ZW1zJywgJ3NpemUnXSxcbn0pXG5leHBvcnQgY2xhc3MgTW9kdXNXY0JyZWFkY3J1bWJzIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MTW9kdXNXY0JyZWFkY3J1bWJzRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnYnJlYWRjcnVtYkNsaWNrJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBJQnJlYWRjcnVtYiBhcyBJTW9kdXNXY0JyZWFkY3J1bWJzSUJyZWFkY3J1bWIgfSBmcm9tICdAdHJpbWJsZS1vc3MvbW9kdXN3ZWJjb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE1vZHVzV2NCcmVhZGNydW1icyBleHRlbmRzIENvbXBvbmVudHMuTW9kdXNXY0JyZWFkY3J1bWJzIHtcbiAgLyoqXG4gICAqIEV2ZW50IGVtaXR0ZWQgd2hlbiBhIGJyZWFkY3J1bWIgaXMgY2xpY2tlZC5cbiAgICovXG4gIGJyZWFkY3J1bWJDbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElNb2R1c1djQnJlYWRjcnVtYnNJQnJlYWRjcnVtYj4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjb2xvcicsICdjdXN0b21DbGFzcycsICdkaXNhYmxlZCcsICdmdWxsV2lkdGgnLCAncHJlc3NlZCcsICdzaGFwZScsICdzaXplJywgJ3R5cGUnLCAndmFyaWFudCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbW9kdXMtd2MtYnV0dG9uJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjb2xvcicsICdjdXN0b21DbGFzcycsICdkaXNhYmxlZCcsICdmdWxsV2lkdGgnLCAncHJlc3NlZCcsICdzaGFwZScsICdzaXplJywgJ3R5cGUnLCAndmFyaWFudCddLFxufSlcbmV4cG9ydCBjbGFzcyBNb2R1c1djQnV0dG9uIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MTW9kdXNXY0J1dHRvbkVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2J1dHRvbkNsaWNrJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE1vZHVzV2NCdXR0b24gZXh0ZW5kcyBDb21wb25lbnRzLk1vZHVzV2NCdXR0b24ge1xuICAvKipcbiAgICogRXZlbnQgZW1pdHRlZCB3aGVuIHRoZSBidXR0b24gaXMgY2xpY2tlZCBvciBhY3RpdmF0ZWQgdmlhIGtleWJvYXJkLlxuICAgKi9cbiAgYnV0dG9uQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxNb3VzZUV2ZW50IHwgS2V5Ym9hcmRFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydiYWNrZ3JvdW5kRmlndXJlJywgJ2JvcmRlcmVkJywgJ2N1c3RvbUNsYXNzJywgJ2xheW91dCcsICdwYWRkaW5nJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtb2R1cy13Yy1jYXJkJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydiYWNrZ3JvdW5kRmlndXJlJywgJ2JvcmRlcmVkJywgJ2N1c3RvbUNsYXNzJywgJ2xheW91dCcsICdwYWRkaW5nJ10sXG59KVxuZXhwb3J0IGNsYXNzIE1vZHVzV2NDYXJkIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MTW9kdXNXY0NhcmRFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBNb2R1c1djQ2FyZCBleHRlbmRzIENvbXBvbmVudHMuTW9kdXNXY0NhcmQge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY3VzdG9tQ2xhc3MnLCAnZGlzYWJsZWQnLCAnaW5kZXRlcm1pbmF0ZScsICdpbnB1dElkJywgJ2lucHV0VGFiSW5kZXgnLCAnbGFiZWwnLCAnbmFtZScsICdyZXF1aXJlZCcsICdzaXplJywgJ3ZhbHVlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtb2R1cy13Yy1jaGVja2JveCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY3VzdG9tQ2xhc3MnLCAnZGlzYWJsZWQnLCAnaW5kZXRlcm1pbmF0ZScsICdpbnB1dElkJywgJ2lucHV0VGFiSW5kZXgnLCAnbGFiZWwnLCAnbmFtZScsICdyZXF1aXJlZCcsICdzaXplJywgJ3ZhbHVlJ10sXG59KVxuZXhwb3J0IGNsYXNzIE1vZHVzV2NDaGVja2JveCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTE1vZHVzV2NDaGVja2JveEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2lucHV0Qmx1cicsICdpbnB1dENoYW5nZScsICdpbnB1dEZvY3VzJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE1vZHVzV2NDaGVja2JveCBleHRlbmRzIENvbXBvbmVudHMuTW9kdXNXY0NoZWNrYm94IHtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgaW5wdXQgbG9zZXMgZm9jdXMuXG4gICAqL1xuICBpbnB1dEJsdXI6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxGb2N1c0V2ZW50Pj47XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIGlucHV0IHZhbHVlIGNoYW5nZXMuXG4gICAqL1xuICBpbnB1dENoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElucHV0RXZlbnQ+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgaW5wdXQgZ2FpbnMgZm9jdXMuXG4gICAqL1xuICBpbnB1dEZvY3VzOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8Rm9jdXNFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhY3RpdmUnLCAnY3VzdG9tQ2xhc3MnLCAnZGlzYWJsZWQnLCAnaGFzRXJyb3InLCAnbGFiZWwnLCAnc2hhcGUnLCAnc2hvd1JlbW92ZScsICdzaXplJywgJ3ZhcmlhbnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21vZHVzLXdjLWNoaXAnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FjdGl2ZScsICdjdXN0b21DbGFzcycsICdkaXNhYmxlZCcsICdoYXNFcnJvcicsICdsYWJlbCcsICdzaGFwZScsICdzaG93UmVtb3ZlJywgJ3NpemUnLCAndmFyaWFudCddLFxufSlcbmV4cG9ydCBjbGFzcyBNb2R1c1djQ2hpcCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTE1vZHVzV2NDaGlwRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnY2hpcENsaWNrJywgJ2NoaXBSZW1vdmUnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTW9kdXNXY0NoaXAgZXh0ZW5kcyBDb21wb25lbnRzLk1vZHVzV2NDaGlwIHtcbiAgLyoqXG4gICAqIEV2ZW50IGVtaXR0ZWQgd2hlbiB0aGUgY2hpcCBpcyBjbGlja2VkIG9yIGFjdGl2YXRlZCB2aWEga2V5Ym9hcmQuXG4gICAqL1xuICBjaGlwQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxNb3VzZUV2ZW50IHwgS2V5Ym9hcmRFdmVudD4+O1xuICAvKipcbiAgICogRXZlbnQgZW1pdHRlZCB3aGVuIHRoZSBjbG9zZSBjaGlwIGljb24gYnV0dG9uIGlzIGNsaWNrZWQuXG4gICAqL1xuICBjaGlwUmVtb3ZlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8TW91c2VFdmVudCB8IEtleWJvYXJkRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYm9yZGVyZWQnLCAnY29sbGFwc2VJZCcsICdjdXN0b21DbGFzcycsICdleHBhbmRlZCcsICdvcHRpb25zJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtb2R1cy13Yy1jb2xsYXBzZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYm9yZGVyZWQnLCAnY29sbGFwc2VJZCcsICdjdXN0b21DbGFzcycsICdleHBhbmRlZCcsICdvcHRpb25zJ10sXG59KVxuZXhwb3J0IGNsYXNzIE1vZHVzV2NDb2xsYXBzZSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTE1vZHVzV2NDb2xsYXBzZUVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2V4cGFuZGVkQ2hhbmdlJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE1vZHVzV2NDb2xsYXBzZSBleHRlbmRzIENvbXBvbmVudHMuTW9kdXNXY0NvbGxhcHNlIHtcbiAgLyoqXG4gICAqIEV2ZW50IGVtaXR0ZWQgd2hlbiB0aGUgZXhwYW5kZWQgcHJvcCBpcyBpbnRlcm5hbGx5IGNoYW5nZWQuXG4gICAqL1xuICBleHBhbmRlZENoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHsgZXhwYW5kZWQ6IGJvb2xlYW4gfT4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydib3JkZXJlZCcsICdjdXN0b21DbGFzcycsICdkaXNhYmxlZCcsICdmZWVkYmFjaycsICdmb3JtYXQnLCAnaW5wdXRJZCcsICdpbnB1dFRhYkluZGV4JywgJ2xhYmVsJywgJ21heCcsICdtaW4nLCAnbmFtZScsICdyZWFkT25seScsICdyZXF1aXJlZCcsICdzaXplJywgJ3ZhbHVlJywgJ3dlZWtTdGFydERheSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbW9kdXMtd2MtZGF0ZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYm9yZGVyZWQnLCAnY3VzdG9tQ2xhc3MnLCAnZGlzYWJsZWQnLCAnZmVlZGJhY2snLCAnZm9ybWF0JywgJ2lucHV0SWQnLCAnaW5wdXRUYWJJbmRleCcsICdsYWJlbCcsICdtYXgnLCAnbWluJywgJ25hbWUnLCAncmVhZE9ubHknLCAncmVxdWlyZWQnLCAnc2l6ZScsICd2YWx1ZScsICd3ZWVrU3RhcnREYXknXSxcbn0pXG5leHBvcnQgY2xhc3MgTW9kdXNXY0RhdGUge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxNb2R1c1djRGF0ZUVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2lucHV0Qmx1cicsICdpbnB1dENoYW5nZScsICdpbnB1dEZvY3VzJywgJ2NhbGVuZGFyTW9udGhDaGFuZ2UnLCAnY2FsZW5kYXJZZWFyQ2hhbmdlJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE1vZHVzV2NEYXRlIGV4dGVuZHMgQ29tcG9uZW50cy5Nb2R1c1djRGF0ZSB7XG4gIC8qKlxuICAgKiBFdmVudCBlbWl0dGVkIHdoZW4gdGhlIGlucHV0IGxvc2VzIGZvY3VzLlxuICAgKi9cbiAgaW5wdXRCbHVyOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8Rm9jdXNFdmVudD4+O1xuICAvKipcbiAgICogRXZlbnQgZW1pdHRlZCB3aGVuIHRoZSBpbnB1dCB2YWx1ZSBjaGFuZ2VzLlxuICAgKi9cbiAgaW5wdXRDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJbnB1dEV2ZW50Pj47XG4gIC8qKlxuICAgKiBFdmVudCBlbWl0dGVkIHdoZW4gdGhlIGlucHV0IGdhaW5zIGZvY3VzLlxuICAgKi9cbiAgaW5wdXRGb2N1czogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PEZvY3VzRXZlbnQ+PjtcbiAgLyoqXG4gICAqIEV2ZW50IGVtaXR0ZWQgd2hlbiB0aGUgY2FsZW5kYXIgbW9udGggc2VsZWN0aW9uIGNoYW5nZXMuXG4gICAqL1xuICBjYWxlbmRhck1vbnRoQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8bnVtYmVyPj47XG4gIC8qKlxuICAgKiBFdmVudCBlbWl0dGVkIHdoZW4gdGhlIGNhbGVuZGFyIHllYXIgc2VsZWN0aW9uIGNoYW5nZXMuXG4gICAqL1xuICBjYWxlbmRhclllYXJDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxudW1iZXI+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY29sb3InLCAnY29udGVudCcsICdjdXN0b21DbGFzcycsICdvcmllbnRhdGlvbicsICdwb3NpdGlvbicsICdyZXNwb25zaXZlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtb2R1cy13Yy1kaXZpZGVyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjb2xvcicsICdjb250ZW50JywgJ2N1c3RvbUNsYXNzJywgJ29yaWVudGF0aW9uJywgJ3Bvc2l0aW9uJywgJ3Jlc3BvbnNpdmUnXSxcbn0pXG5leHBvcnQgY2xhc3MgTW9kdXNXY0RpdmlkZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxNb2R1c1djRGl2aWRlckVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE1vZHVzV2NEaXZpZGVyIGV4dGVuZHMgQ29tcG9uZW50cy5Nb2R1c1djRGl2aWRlciB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydidXR0b25BcmlhTGFiZWwnLCAnYnV0dG9uQ29sb3InLCAnYnV0dG9uU2l6ZScsICdidXR0b25WYXJpYW50JywgJ2N1c3RvbUNsYXNzJywgJ2Rpc2FibGVkJywgJ21lbnVCb3JkZXJlZCcsICdtZW51T2Zmc2V0JywgJ21lbnVQbGFjZW1lbnQnLCAnbWVudVNpemUnLCAnbWVudVZpc2libGUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21vZHVzLXdjLWRyb3Bkb3duLW1lbnUnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2J1dHRvbkFyaWFMYWJlbCcsICdidXR0b25Db2xvcicsICdidXR0b25TaXplJywgJ2J1dHRvblZhcmlhbnQnLCAnY3VzdG9tQ2xhc3MnLCAnZGlzYWJsZWQnLCAnbWVudUJvcmRlcmVkJywgJ21lbnVPZmZzZXQnLCAnbWVudVBsYWNlbWVudCcsICdtZW51U2l6ZScsICdtZW51VmlzaWJsZSddLFxufSlcbmV4cG9ydCBjbGFzcyBNb2R1c1djRHJvcGRvd25NZW51IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MTW9kdXNXY0Ryb3Bkb3duTWVudUVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ21lbnVWaXNpYmlsaXR5Q2hhbmdlJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE1vZHVzV2NEcm9wZG93bk1lbnUgZXh0ZW5kcyBDb21wb25lbnRzLk1vZHVzV2NEcm9wZG93bk1lbnUge1xuICAvKipcbiAgICogRXZlbnQgZW1pdHRlZCB3aGVuIHRoZSBtZW51VmlzaWJsZSBwcm9wIGNoYW5nZXMuXG4gICAqL1xuICBtZW51VmlzaWJpbGl0eUNoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHsgaXNWaXNpYmxlOiBib29sZWFuIH0+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYWNjZXB0RmlsZVR5cGVzJywgJ2N1c3RvbUNsYXNzJywgJ2Rpc2FibGVkJywgJ2ZpbGVEcmFnZ2VkT3Zlckluc3RydWN0aW9ucycsICdpbmNsdWRlU3RhdGVJY29uJywgJ2luc3RydWN0aW9ucycsICdpbnZhbGlkRmlsZVR5cGVNZXNzYWdlJywgJ21heEZpbGVDb3VudCcsICdtYXhGaWxlTmFtZUxlbmd0aCcsICdtYXhUb3RhbEZpbGVTaXplQnl0ZXMnLCAnbXVsdGlwbGUnLCAnc3VjY2Vzc01lc3NhZ2UnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21vZHVzLXdjLWZpbGUtZHJvcHpvbmUnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FjY2VwdEZpbGVUeXBlcycsICdjdXN0b21DbGFzcycsICdkaXNhYmxlZCcsICdmaWxlRHJhZ2dlZE92ZXJJbnN0cnVjdGlvbnMnLCAnaW5jbHVkZVN0YXRlSWNvbicsICdpbnN0cnVjdGlvbnMnLCAnaW52YWxpZEZpbGVUeXBlTWVzc2FnZScsICdtYXhGaWxlQ291bnQnLCAnbWF4RmlsZU5hbWVMZW5ndGgnLCAnbWF4VG90YWxGaWxlU2l6ZUJ5dGVzJywgJ211bHRpcGxlJywgJ3N1Y2Nlc3NNZXNzYWdlJ10sXG59KVxuZXhwb3J0IGNsYXNzIE1vZHVzV2NGaWxlRHJvcHpvbmUge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxNb2R1c1djRmlsZURyb3B6b25lRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnZmlsZVNlbGVjdCddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBNb2R1c1djRmlsZURyb3B6b25lIGV4dGVuZHMgQ29tcG9uZW50cy5Nb2R1c1djRmlsZURyb3B6b25lIHtcbiAgLyoqXG4gICAqIEV2ZW50IGVtaXR0ZWQgd2hlbiBmaWxlcyBhcmUgc2VsZWN0ZWRcbiAgICovXG4gIGZpbGVTZWxlY3Q6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxGaWxlTGlzdD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjdXN0b21DbGFzcycsICdkZWNvcmF0aXZlJywgJ25hbWUnLCAnc2l6ZScsICd2YXJpYW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtb2R1cy13Yy1pY29uJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjdXN0b21DbGFzcycsICdkZWNvcmF0aXZlJywgJ25hbWUnLCAnc2l6ZScsICd2YXJpYW50J10sXG59KVxuZXhwb3J0IGNsYXNzIE1vZHVzV2NJY29uIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MTW9kdXNXY0ljb25FbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBNb2R1c1djSWNvbiBleHRlbmRzIENvbXBvbmVudHMuTW9kdXNXY0ljb24ge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY3VzdG9tQ2xhc3MnLCAnaWNvbicsICdsZXZlbCcsICdtZXNzYWdlJywgJ3NpemUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21vZHVzLXdjLWlucHV0LWZlZWRiYWNrJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjdXN0b21DbGFzcycsICdpY29uJywgJ2xldmVsJywgJ21lc3NhZ2UnLCAnc2l6ZSddLFxufSlcbmV4cG9ydCBjbGFzcyBNb2R1c1djSW5wdXRGZWVkYmFjayB7XG4gIHByb3RlY3RlZCBlbDogSFRNTE1vZHVzV2NJbnB1dEZlZWRiYWNrRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTW9kdXNXY0lucHV0RmVlZGJhY2sgZXh0ZW5kcyBDb21wb25lbnRzLk1vZHVzV2NJbnB1dEZlZWRiYWNrIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2N1c3RvbUNsYXNzJywgJ2ZvcklkJywgJ2xhYmVsVGV4dCcsICdyZXF1aXJlZCcsICdzaXplJywgJ3N1YkxhYmVsVGV4dCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbW9kdXMtd2MtaW5wdXQtbGFiZWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2N1c3RvbUNsYXNzJywgJ2ZvcklkJywgJ2xhYmVsVGV4dCcsICdyZXF1aXJlZCcsICdzaXplJywgJ3N1YkxhYmVsVGV4dCddLFxufSlcbmV4cG9ydCBjbGFzcyBNb2R1c1djSW5wdXRMYWJlbCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTE1vZHVzV2NJbnB1dExhYmVsRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTW9kdXNXY0lucHV0TGFiZWwgZXh0ZW5kcyBDb21wb25lbnRzLk1vZHVzV2NJbnB1dExhYmVsIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2NvbG9yJywgJ2N1c3RvbUNsYXNzJywgJ3NpemUnLCAndmFyaWFudCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbW9kdXMtd2MtbG9hZGVyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjb2xvcicsICdjdXN0b21DbGFzcycsICdzaXplJywgJ3ZhcmlhbnQnXSxcbn0pXG5leHBvcnQgY2xhc3MgTW9kdXNXY0xvYWRlciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTE1vZHVzV2NMb2FkZXJFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBNb2R1c1djTG9hZGVyIGV4dGVuZHMgQ29tcG9uZW50cy5Nb2R1c1djTG9hZGVyIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2JvcmRlcmVkJywgJ2N1c3RvbUNsYXNzJywgJ2lzU3ViTWVudScsICdvcmllbnRhdGlvbicsICdzaXplJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtb2R1cy13Yy1tZW51JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydib3JkZXJlZCcsICdjdXN0b21DbGFzcycsICdpc1N1Yk1lbnUnLCAnb3JpZW50YXRpb24nLCAnc2l6ZSddLFxufSlcbmV4cG9ydCBjbGFzcyBNb2R1c1djTWVudSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTE1vZHVzV2NNZW51RWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnbWVudUZvY3Vzb3V0J10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE1vZHVzV2NNZW51IGV4dGVuZHMgQ29tcG9uZW50cy5Nb2R1c1djTWVudSB7XG4gIC8qKlxuICAgKiBFdmVudCBlbWl0dGVkIHdoZW4gdGhlIG1lbnUgbG9zZXMgZm9jdXMuXG4gICAqL1xuICBtZW51Rm9jdXNvdXQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxGb2N1c0V2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2JvcmRlcmVkJywgJ2NoZWNrYm94JywgJ2N1c3RvbUNsYXNzJywgJ2Rpc2FibGVkJywgJ2ZvY3VzZWQnLCAnaGFzU3VibWVudScsICdsYWJlbCcsICdzZWxlY3RlZCcsICdzaXplJywgJ3N0YXJ0SWNvbicsICdzdWJMYWJlbCcsICd0b29sdGlwQ29udGVudCcsICd0b29sdGlwUG9zaXRpb24nLCAndmFsdWUnXSxcbiAgbWV0aG9kczogWydjb2xsYXBzZVN1Ym1lbnUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21vZHVzLXdjLW1lbnUtaXRlbScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYm9yZGVyZWQnLCAnY2hlY2tib3gnLCAnY3VzdG9tQ2xhc3MnLCAnZGlzYWJsZWQnLCAnZm9jdXNlZCcsICdoYXNTdWJtZW51JywgJ2xhYmVsJywgJ3NlbGVjdGVkJywgJ3NpemUnLCAnc3RhcnRJY29uJywgJ3N1YkxhYmVsJywgJ3Rvb2x0aXBDb250ZW50JywgJ3Rvb2x0aXBQb3NpdGlvbicsICd2YWx1ZSddLFxufSlcbmV4cG9ydCBjbGFzcyBNb2R1c1djTWVudUl0ZW0ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxNb2R1c1djTWVudUl0ZW1FbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydpdGVtU2VsZWN0J10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE1vZHVzV2NNZW51SXRlbSBleHRlbmRzIENvbXBvbmVudHMuTW9kdXNXY01lbnVJdGVtIHtcbiAgLyoqXG4gICAqIEV2ZW50IGVtaXR0ZWQgd2hlbiBhIG1lbnUgaXRlbSBpcyBzZWxlY3RlZC5cbiAgICovXG4gIGl0ZW1TZWxlY3Q6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IHZhbHVlOiBzdHJpbmcgfT4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydiYWNrZHJvcCcsICdjdXN0b21DbGFzcycsICdmdWxsc2NyZWVuJywgJ21vZGFsSWQnLCAncG9zaXRpb24nLCAnc2hvd0Nsb3NlJywgJ3Nob3dGdWxsc2NyZWVuVG9nZ2xlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtb2R1cy13Yy1tb2RhbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYmFja2Ryb3AnLCAnY3VzdG9tQ2xhc3MnLCAnZnVsbHNjcmVlbicsICdtb2RhbElkJywgJ3Bvc2l0aW9uJywgJ3Nob3dDbG9zZScsICdzaG93RnVsbHNjcmVlblRvZ2dsZSddLFxufSlcbmV4cG9ydCBjbGFzcyBNb2R1c1djTW9kYWwge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxNb2R1c1djTW9kYWxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBNb2R1c1djTW9kYWwgZXh0ZW5kcyBDb21wb25lbnRzLk1vZHVzV2NNb2RhbCB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhcHBzTWVudU9wZW4nLCAnY29uZGVuc2VkJywgJ2NvbmRlbnNlZE1lbnVPcGVuJywgJ2N1c3RvbUNsYXNzJywgJ21haW5NZW51T3BlbicsICdub3RpZmljYXRpb25zTWVudU9wZW4nLCAnc2VhcmNoRGVib3VuY2VNcycsICdzZWFyY2hJbnB1dE9wZW4nLCAndGV4dE92ZXJyaWRlcycsICd1c2VyQ2FyZCcsICd1c2VyTWVudU9wZW4nLCAndmlzaWJpbGl0eSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbW9kdXMtd2MtbmF2YmFyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhcHBzTWVudU9wZW4nLCAnY29uZGVuc2VkJywgJ2NvbmRlbnNlZE1lbnVPcGVuJywgJ2N1c3RvbUNsYXNzJywgJ21haW5NZW51T3BlbicsICdub3RpZmljYXRpb25zTWVudU9wZW4nLCAnc2VhcmNoRGVib3VuY2VNcycsICdzZWFyY2hJbnB1dE9wZW4nLCAndGV4dE92ZXJyaWRlcycsICd1c2VyQ2FyZCcsICd1c2VyTWVudU9wZW4nLCAndmlzaWJpbGl0eSddLFxufSlcbmV4cG9ydCBjbGFzcyBNb2R1c1djTmF2YmFyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MTW9kdXNXY05hdmJhckVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2FpQ2xpY2snLCAnYXBwc0NsaWNrJywgJ2FwcHNNZW51T3BlbkNoYW5nZScsICdjb25kZW5zZWRNZW51T3BlbkNoYW5nZScsICdoZWxwQ2xpY2snLCAnbWFpbk1lbnVPcGVuQ2hhbmdlJywgJ215VHJpbWJsZUNsaWNrJywgJ25vdGlmaWNhdGlvbnNDbGljaycsICdub3RpZmljYXRpb25zTWVudU9wZW5DaGFuZ2UnLCAnc2VhcmNoQ2hhbmdlJywgJ3NlYXJjaENsaWNrJywgJ3NlYXJjaElucHV0T3BlbkNoYW5nZScsICdzaWduT3V0Q2xpY2snLCAndHJpbWJsZUxvZ29DbGljaycsICd1c2VyTWVudU9wZW5DaGFuZ2UnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTW9kdXNXY05hdmJhciBleHRlbmRzIENvbXBvbmVudHMuTW9kdXNXY05hdmJhciB7XG4gIC8qKlxuICAgKiBFdmVudCBlbWl0dGVkIHdoZW4gdGhlIEFJIGJ1dHRvbiBpcyBjbGlja2VkIG9yIGFjdGl2YXRlZCB2aWEga2V5Ym9hcmQuXG4gICAqL1xuICBhaUNsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8TW91c2VFdmVudCB8IEtleWJvYXJkRXZlbnQ+PjtcbiAgLyoqXG4gICAqIEV2ZW50IGVtaXR0ZWQgd2hlbiB0aGUgYXBwcyBidXR0b24gaXMgY2xpY2tlZCBvciBhY3RpdmF0ZWQgdmlhIGtleWJvYXJkLlxuICAgKi9cbiAgYXBwc0NsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8TW91c2VFdmVudCB8IEtleWJvYXJkRXZlbnQ+PjtcbiAgLyoqXG4gICAqIEV2ZW50IGVtaXR0ZWQgd2hlbiB0aGUgYXBwcyBtZW51IG9wZW4gc3RhdGUgY2hhbmdlcy5cbiAgICovXG4gIGFwcHNNZW51T3BlbkNoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PGJvb2xlYW4+PjtcbiAgLyoqXG4gICAqIEV2ZW50IGVtaXR0ZWQgd2hlbiB0aGUgY29uZGVuc2VkIG1lbnUgb3BlbiBzdGF0ZSBjaGFuZ2VzLlxuICAgKi9cbiAgY29uZGVuc2VkTWVudU9wZW5DaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxib29sZWFuPj47XG4gIC8qKlxuICAgKiBFdmVudCBlbWl0dGVkIHdoZW4gdGhlIGhlbHAgYnV0dG9uIGlzIGNsaWNrZWQgb3IgYWN0aXZhdGVkIHZpYSBrZXlib2FyZC5cbiAgICovXG4gIGhlbHBDbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PE1vdXNlRXZlbnQgfCBLZXlib2FyZEV2ZW50Pj47XG4gIC8qKlxuICAgKiBFdmVudCBlbWl0dGVkIHdoZW4gdGhlIG1haW4gbWVudSBvcGVuIHN0YXRlIGNoYW5nZXMuXG4gICAqL1xuICBtYWluTWVudU9wZW5DaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxib29sZWFuPj47XG4gIC8qKlxuICAgKiBFdmVudCBlbWl0dGVkIHdoZW4gdGhlIHVzZXIgcHJvZmlsZSBBY2Nlc3MgTXlUcmltYmxlIGJ1dHRvbiBpcyBjbGlja2VkIG9yIGFjdGl2YXRlZCB2aWEga2V5Ym9hcmQuXG4gICAqL1xuICBteVRyaW1ibGVDbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PE1vdXNlRXZlbnQgfCBLZXlib2FyZEV2ZW50Pj47XG4gIC8qKlxuICAgKiBFdmVudCBlbWl0dGVkIHdoZW4gdGhlIG5vdGlmaWNhdGlvbnMgYnV0dG9uIGlzIGNsaWNrZWQgb3IgYWN0aXZhdGVkIHZpYSBrZXlib2FyZC5cbiAgICovXG4gIG5vdGlmaWNhdGlvbnNDbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PE1vdXNlRXZlbnQgfCBLZXlib2FyZEV2ZW50Pj47XG4gIC8qKlxuICAgKiBFdmVudCBlbWl0dGVkIHdoZW4gdGhlIG5vdGlmaWNhdGlvbnMgbWVudSBvcGVuIHN0YXRlIGNoYW5nZXMuXG4gICAqL1xuICBub3RpZmljYXRpb25zTWVudU9wZW5DaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxib29sZWFuPj47XG4gIC8qKlxuICAgKiBFdmVudCBlbWl0dGVkIHdoZW4gdGhlIHNlYXJjaCBpbnB1dCB2YWx1ZSBpcyBjaGFuZ2VkLlxuICAgKi9cbiAgc2VhcmNoQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyB2YWx1ZTogc3RyaW5nIH0+PjtcbiAgLyoqXG4gICAqIEV2ZW50IGVtaXR0ZWQgd2hlbiB0aGUgc2VhcmNoIGJ1dHRvbiBpcyBjbGlja2VkIG9yIGFjdGl2YXRlZCB2aWEga2V5Ym9hcmQuXG4gICAqL1xuICBzZWFyY2hDbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PE1vdXNlRXZlbnQgfCBLZXlib2FyZEV2ZW50Pj47XG4gIC8qKlxuICAgKiBFdmVudCBlbWl0dGVkIHdoZW4gdGhlIHNlYXJjaCBpbnB1dCBvcGVuIHN0YXRlIGNoYW5nZXMuXG4gICAqL1xuICBzZWFyY2hJbnB1dE9wZW5DaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxib29sZWFuPj47XG4gIC8qKlxuICAgKiBFdmVudCBlbWl0dGVkIHdoZW4gdGhlIHVzZXIgcHJvZmlsZSBzaWduIG91dCBidXR0b24gaXMgY2xpY2tlZCBvciBhY3RpdmF0ZWQgdmlhIGtleWJvYXJkLlxuICAgKi9cbiAgc2lnbk91dENsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8TW91c2VFdmVudCB8IEtleWJvYXJkRXZlbnQ+PjtcbiAgLyoqXG4gICAqIEV2ZW50IGVtaXR0ZWQgd2hlbiB0aGUgVHJpbWJsZSBsb2dvIGlzIGNsaWNrZWQgb3IgYWN0aXZhdGVkIHZpYSBrZXlib2FyZC5cbiAgICovXG4gIHRyaW1ibGVMb2dvQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxNb3VzZUV2ZW50IHwgS2V5Ym9hcmRFdmVudD4+O1xuICAvKipcbiAgICogRXZlbnQgZW1pdHRlZCB3aGVuIHRoZSB1c2VyIG1lbnUgb3BlbiBzdGF0ZSBjaGFuZ2VzLlxuICAgKi9cbiAgdXNlck1lbnVPcGVuQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8Ym9vbGVhbj4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhdXRvQ29tcGxldGUnLCAnYm9yZGVyZWQnLCAnY3VycmVuY3lTeW1ib2wnLCAnY3VzdG9tQ2xhc3MnLCAnZGlzYWJsZWQnLCAnZmVlZGJhY2snLCAnaW5wdXRJZCcsICdpbnB1dFRhYkluZGV4JywgJ2xhYmVsJywgJ21heCcsICdtaW4nLCAnbmFtZScsICdwbGFjZWhvbGRlcicsICdyZWFkT25seScsICdyZXF1aXJlZCcsICdzaXplJywgJ3N0ZXAnLCAndHlwZScsICd2YWx1ZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbW9kdXMtd2MtbnVtYmVyLWlucHV0JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhdXRvQ29tcGxldGUnLCAnYm9yZGVyZWQnLCAnY3VycmVuY3lTeW1ib2wnLCAnY3VzdG9tQ2xhc3MnLCAnZGlzYWJsZWQnLCAnZmVlZGJhY2snLCAnaW5wdXRJZCcsICdpbnB1dFRhYkluZGV4JywgJ2xhYmVsJywgJ21heCcsICdtaW4nLCAnbmFtZScsICdwbGFjZWhvbGRlcicsICdyZWFkT25seScsICdyZXF1aXJlZCcsICdzaXplJywgJ3N0ZXAnLCAndHlwZScsICd2YWx1ZSddLFxufSlcbmV4cG9ydCBjbGFzcyBNb2R1c1djTnVtYmVySW5wdXQge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxNb2R1c1djTnVtYmVySW5wdXRFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydpbnB1dEJsdXInLCAnaW5wdXRDaGFuZ2UnLCAnaW5wdXRGb2N1cyddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBNb2R1c1djTnVtYmVySW5wdXQgZXh0ZW5kcyBDb21wb25lbnRzLk1vZHVzV2NOdW1iZXJJbnB1dCB7XG4gIC8qKlxuICAgKiBFdmVudCBlbWl0dGVkIHdoZW4gdGhlIGlucHV0IGxvc2VzIGZvY3VzLlxuICAgKi9cbiAgaW5wdXRCbHVyOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8Rm9jdXNFdmVudD4+O1xuICAvKipcbiAgICogRXZlbnQgZW1pdHRlZCB3aGVuIHRoZSBpbnB1dCB2YWx1ZSBjaGFuZ2VzLlxuICAgKi9cbiAgaW5wdXRDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJbnB1dEV2ZW50Pj47XG4gIC8qKlxuICAgKiBFdmVudCBlbWl0dGVkIHdoZW4gdGhlIGlucHV0IGdhaW5zIGZvY3VzLlxuICAgKi9cbiAgaW5wdXRGb2N1czogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PEZvY3VzRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYXJpYUxhYmVsVmFsdWVzJywgJ2NvdW50JywgJ2N1c3RvbUNsYXNzJywgJ25leHRCdXR0b25UZXh0JywgJ3BhZ2UnLCAncHJldkJ1dHRvblRleHQnLCAnc2l6ZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbW9kdXMtd2MtcGFnaW5hdGlvbicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYXJpYUxhYmVsVmFsdWVzJywgJ2NvdW50JywgJ2N1c3RvbUNsYXNzJywgJ25leHRCdXR0b25UZXh0JywgJ3BhZ2UnLCAncHJldkJ1dHRvblRleHQnLCAnc2l6ZSddLFxufSlcbmV4cG9ydCBjbGFzcyBNb2R1c1djUGFnaW5hdGlvbiB7XG4gIHByb3RlY3RlZCBlbDogSFRNTE1vZHVzV2NQYWdpbmF0aW9uRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsncGFnZUNoYW5nZSddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgSVBhZ2VDaGFuZ2UgYXMgSU1vZHVzV2NQYWdpbmF0aW9uSVBhZ2VDaGFuZ2UgfSBmcm9tICdAdHJpbWJsZS1vc3MvbW9kdXN3ZWJjb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE1vZHVzV2NQYWdpbmF0aW9uIGV4dGVuZHMgQ29tcG9uZW50cy5Nb2R1c1djUGFnaW5hdGlvbiB7XG4gIC8qKlxuICAgKiBFdmVudCBlbWl0dGVkIHdoZW4gcGFnZSBjaGFuZ2VzXG4gICAqL1xuICBwYWdlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SU1vZHVzV2NQYWdpbmF0aW9uSVBhZ2VDaGFuZ2U+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY3VzdG9tQ2xhc3MnLCAnaW5kZXRlcm1pbmF0ZScsICdsYWJlbCcsICdtYXgnLCAndmFsdWUnLCAndmFyaWFudCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbW9kdXMtd2MtcHJvZ3Jlc3MnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2N1c3RvbUNsYXNzJywgJ2luZGV0ZXJtaW5hdGUnLCAnbGFiZWwnLCAnbWF4JywgJ3ZhbHVlJywgJ3ZhcmlhbnQnXSxcbn0pXG5leHBvcnQgY2xhc3MgTW9kdXNXY1Byb2dyZXNzIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MTW9kdXNXY1Byb2dyZXNzRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTW9kdXNXY1Byb2dyZXNzIGV4dGVuZHMgQ29tcG9uZW50cy5Nb2R1c1djUHJvZ3Jlc3Mge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY3VzdG9tQ2xhc3MnLCAnZGlzYWJsZWQnLCAnaW5wdXRJZCcsICdpbnB1dFRhYkluZGV4JywgJ2xhYmVsJywgJ25hbWUnLCAncmVxdWlyZWQnLCAnc2l6ZScsICd2YWx1ZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbW9kdXMtd2MtcmFkaW8nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2N1c3RvbUNsYXNzJywgJ2Rpc2FibGVkJywgJ2lucHV0SWQnLCAnaW5wdXRUYWJJbmRleCcsICdsYWJlbCcsICduYW1lJywgJ3JlcXVpcmVkJywgJ3NpemUnLCAndmFsdWUnXSxcbn0pXG5leHBvcnQgY2xhc3MgTW9kdXNXY1JhZGlvIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MTW9kdXNXY1JhZGlvRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnaW5wdXRCbHVyJywgJ2lucHV0Q2hhbmdlJywgJ2lucHV0Rm9jdXMnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTW9kdXNXY1JhZGlvIGV4dGVuZHMgQ29tcG9uZW50cy5Nb2R1c1djUmFkaW8ge1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSBpbnB1dCBsb3NlcyBmb2N1cy5cbiAgICovXG4gIGlucHV0Qmx1cjogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PEZvY3VzRXZlbnQ+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgaW5wdXQgdmFsdWUgY2hhbmdlcy5cbiAgICovXG4gIGlucHV0Q2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SW5wdXRFdmVudD4+O1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSBpbnB1dCBnYWlucyBmb2N1cy5cbiAgICovXG4gIGlucHV0Rm9jdXM6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxGb2N1c0V2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2FsbG93SGFsZicsICdjb3VudCcsICdjdXN0b21DbGFzcycsICdkaXNhYmxlZCcsICdnZXRBcmlhTGFiZWxUZXh0JywgJ3NpemUnLCAndmFsdWUnLCAndmFyaWFudCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbW9kdXMtd2MtcmF0aW5nJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhbGxvd0hhbGYnLCAnY291bnQnLCAnY3VzdG9tQ2xhc3MnLCAnZGlzYWJsZWQnLCAnZ2V0QXJpYUxhYmVsVGV4dCcsICdzaXplJywgJ3ZhbHVlJywgJ3ZhcmlhbnQnXSxcbn0pXG5leHBvcnQgY2xhc3MgTW9kdXNXY1JhdGluZyB7XG4gIHByb3RlY3RlZCBlbDogSFRNTE1vZHVzV2NSYXRpbmdFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydyYXRpbmdDaGFuZ2UnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IElSYXRpbmdDaGFuZ2UgYXMgSU1vZHVzV2NSYXRpbmdJUmF0aW5nQ2hhbmdlIH0gZnJvbSAnQHRyaW1ibGUtb3NzL21vZHVzd2ViY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBNb2R1c1djUmF0aW5nIGV4dGVuZHMgQ29tcG9uZW50cy5Nb2R1c1djUmF0aW5nIHtcbiAgLyoqXG4gICAqIEV2ZW50IGVtaXR0ZWQgd2hlbiB0aGUgcmF0aW5nIGNoYW5nZXNcbiAgICovXG4gIHJhdGluZ0NoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElNb2R1c1djUmF0aW5nSVJhdGluZ0NoYW5nZT4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydib3JkZXJlZCcsICdjdXN0b21DbGFzcycsICdkaXNhYmxlZCcsICdmZWVkYmFjaycsICdpbnB1dElkJywgJ2lucHV0VGFiSW5kZXgnLCAnbGFiZWwnLCAnbmFtZScsICdvcHRpb25zJywgJ3JlcXVpcmVkJywgJ3NpemUnLCAndmFsdWUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21vZHVzLXdjLXNlbGVjdCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYm9yZGVyZWQnLCAnY3VzdG9tQ2xhc3MnLCAnZGlzYWJsZWQnLCAnZmVlZGJhY2snLCAnaW5wdXRJZCcsICdpbnB1dFRhYkluZGV4JywgJ2xhYmVsJywgJ25hbWUnLCAnb3B0aW9ucycsICdyZXF1aXJlZCcsICdzaXplJywgJ3ZhbHVlJ10sXG59KVxuZXhwb3J0IGNsYXNzIE1vZHVzV2NTZWxlY3Qge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxNb2R1c1djU2VsZWN0RWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnaW5wdXRCbHVyJywgJ2lucHV0Q2hhbmdlJywgJ2lucHV0Rm9jdXMnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTW9kdXNXY1NlbGVjdCBleHRlbmRzIENvbXBvbmVudHMuTW9kdXNXY1NlbGVjdCB7XG4gIC8qKlxuICAgKiBFdmVudCBlbWl0dGVkIHdoZW4gdGhlIGlucHV0IGxvc2VzIGZvY3VzLlxuICAgKi9cbiAgaW5wdXRCbHVyOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8Rm9jdXNFdmVudD4+O1xuICAvKipcbiAgICogRXZlbnQgZW1pdHRlZCB3aGVuIHRoZSBpbnB1dCB2YWx1ZSBjaGFuZ2VzLlxuICAgKi9cbiAgaW5wdXRDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJbnB1dEV2ZW50Pj47XG4gIC8qKlxuICAgKiBFdmVudCBlbWl0dGVkIHdoZW4gdGhlIGlucHV0IGdhaW5zIGZvY3VzLlxuICAgKi9cbiAgaW5wdXRGb2N1czogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PEZvY3VzRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY29sbGFwc2VPbkNsaWNrT3V0c2lkZScsICdjdXN0b21DbGFzcycsICdleHBhbmRlZCcsICdtYXhXaWR0aCcsICdtb2RlJywgJ3RhcmdldENvbnRlbnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21vZHVzLXdjLXNpZGUtbmF2aWdhdGlvbicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY29sbGFwc2VPbkNsaWNrT3V0c2lkZScsICdjdXN0b21DbGFzcycsICdleHBhbmRlZCcsICdtYXhXaWR0aCcsICdtb2RlJywgJ3RhcmdldENvbnRlbnQnXSxcbn0pXG5leHBvcnQgY2xhc3MgTW9kdXNXY1NpZGVOYXZpZ2F0aW9uIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MTW9kdXNXY1NpZGVOYXZpZ2F0aW9uRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnZXhwYW5kZWRDaGFuZ2UnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTW9kdXNXY1NpZGVOYXZpZ2F0aW9uIGV4dGVuZHMgQ29tcG9uZW50cy5Nb2R1c1djU2lkZU5hdmlnYXRpb24ge1xuICAvKipcbiAgICogRXZlbnQgZW1pdHRlZCB3aGVuIHRoZSBleHBhbmRlZCBzdGF0ZSBjaGFuZ2VzIChleHBhbmRlZC9jb2xsYXBzZWQpLlxuICAgKi9cbiAgZXhwYW5kZWRDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxib29sZWFuPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2N1c3RvbUNsYXNzJywgJ2hlaWdodCcsICdzaGFwZScsICd3aWR0aCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbW9kdXMtd2Mtc2tlbGV0b24nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2N1c3RvbUNsYXNzJywgJ2hlaWdodCcsICdzaGFwZScsICd3aWR0aCddLFxufSlcbmV4cG9ydCBjbGFzcyBNb2R1c1djU2tlbGV0b24ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxNb2R1c1djU2tlbGV0b25FbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBNb2R1c1djU2tlbGV0b24gZXh0ZW5kcyBDb21wb25lbnRzLk1vZHVzV2NTa2VsZXRvbiB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjdXN0b21DbGFzcycsICdkaXNhYmxlZCcsICdpbnB1dElkJywgJ2lucHV0VGFiSW5kZXgnLCAnbGFiZWwnLCAnbWF4JywgJ21pbicsICduYW1lJywgJ3JlcXVpcmVkJywgJ3NpemUnLCAnc3RlcCcsICd2YWx1ZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbW9kdXMtd2Mtc2xpZGVyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjdXN0b21DbGFzcycsICdkaXNhYmxlZCcsICdpbnB1dElkJywgJ2lucHV0VGFiSW5kZXgnLCAnbGFiZWwnLCAnbWF4JywgJ21pbicsICduYW1lJywgJ3JlcXVpcmVkJywgJ3NpemUnLCAnc3RlcCcsICd2YWx1ZSddLFxufSlcbmV4cG9ydCBjbGFzcyBNb2R1c1djU2xpZGVyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MTW9kdXNXY1NsaWRlckVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2lucHV0Qmx1cicsICdpbnB1dENoYW5nZScsICdpbnB1dEZvY3VzJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE1vZHVzV2NTbGlkZXIgZXh0ZW5kcyBDb21wb25lbnRzLk1vZHVzV2NTbGlkZXIge1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSBpbnB1dCBsb3NlcyBmb2N1cy5cbiAgICovXG4gIGlucHV0Qmx1cjogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PEZvY3VzRXZlbnQ+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgaW5wdXQgdmFsdWUgY2hhbmdlcy5cbiAgICovXG4gIGlucHV0Q2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SW5wdXRFdmVudD4+O1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSBpbnB1dCBnYWlucyBmb2N1cy5cbiAgICovXG4gIGlucHV0Rm9jdXM6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxGb2N1c0V2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2N1c3RvbUNsYXNzJywgJ29yaWVudGF0aW9uJywgJ3N0ZXBzJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtb2R1cy13Yy1zdGVwcGVyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjdXN0b21DbGFzcycsICdvcmllbnRhdGlvbicsICdzdGVwcyddLFxufSlcbmV4cG9ydCBjbGFzcyBNb2R1c1djU3RlcHBlciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTE1vZHVzV2NTdGVwcGVyRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTW9kdXNXY1N0ZXBwZXIgZXh0ZW5kcyBDb21wb25lbnRzLk1vZHVzV2NTdGVwcGVyIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2N1c3RvbUNsYXNzJywgJ2Rpc2FibGVkJywgJ2luZGV0ZXJtaW5hdGUnLCAnaW5wdXRJZCcsICdpbnB1dFRhYkluZGV4JywgJ2xhYmVsJywgJ25hbWUnLCAncmVxdWlyZWQnLCAnc2l6ZScsICd2YWx1ZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbW9kdXMtd2Mtc3dpdGNoJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjdXN0b21DbGFzcycsICdkaXNhYmxlZCcsICdpbmRldGVybWluYXRlJywgJ2lucHV0SWQnLCAnaW5wdXRUYWJJbmRleCcsICdsYWJlbCcsICduYW1lJywgJ3JlcXVpcmVkJywgJ3NpemUnLCAndmFsdWUnXSxcbn0pXG5leHBvcnQgY2xhc3MgTW9kdXNXY1N3aXRjaCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTE1vZHVzV2NTd2l0Y2hFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydpbnB1dEJsdXInLCAnaW5wdXRDaGFuZ2UnLCAnaW5wdXRGb2N1cyddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBNb2R1c1djU3dpdGNoIGV4dGVuZHMgQ29tcG9uZW50cy5Nb2R1c1djU3dpdGNoIHtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgaW5wdXQgbG9zZXMgZm9jdXMuXG4gICAqL1xuICBpbnB1dEJsdXI6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxGb2N1c0V2ZW50Pj47XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIGlucHV0IHZhbHVlIGNoYW5nZXMuXG4gICAqL1xuICBpbnB1dENoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElucHV0RXZlbnQ+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgaW5wdXQgZ2FpbnMgZm9jdXMuXG4gICAqL1xuICBpbnB1dEZvY3VzOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8Rm9jdXNFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjYXB0aW9uJywgJ2NvbHVtbnMnLCAnY3VycmVudFBhZ2UnLCAnY3VzdG9tQ2xhc3MnLCAnZGF0YScsICdkZW5zaXR5JywgJ2VkaXRhYmxlJywgJ2hvdmVyJywgJ3BhZ2VTaXplT3B0aW9ucycsICdwYWdpbmF0ZWQnLCAnc2VsZWN0YWJsZScsICdzZWxlY3RlZFJvd0lkcycsICdzaG93UGFnZVNpemVTZWxlY3RvcicsICdzb3J0YWJsZScsICd6ZWJyYSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbW9kdXMtd2MtdGFibGUnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2NhcHRpb24nLCAnY29sdW1ucycsICdjdXJyZW50UGFnZScsICdjdXN0b21DbGFzcycsICdkYXRhJywgJ2RlbnNpdHknLCAnZWRpdGFibGUnLCAnaG92ZXInLCAncGFnZVNpemVPcHRpb25zJywgJ3BhZ2luYXRlZCcsICdzZWxlY3RhYmxlJywgJ3NlbGVjdGVkUm93SWRzJywgJ3Nob3dQYWdlU2l6ZVNlbGVjdG9yJywgJ3NvcnRhYmxlJywgJ3plYnJhJ10sXG59KVxuZXhwb3J0IGNsYXNzIE1vZHVzV2NUYWJsZSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTE1vZHVzV2NUYWJsZUVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2NlbGxFZGl0U3RhcnQnLCAnY2VsbEVkaXRDb21taXQnLCAncm93Q2xpY2snLCAnc29ydENoYW5nZScsICdwYWdpbmF0aW9uQ2hhbmdlJywgJ3Jvd1NlbGVjdGlvbkNoYW5nZSddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU29ydGluZ1N0YXRlIGFzIElNb2R1c1djVGFibGVTb3J0aW5nU3RhdGUgfSBmcm9tICdAdHJpbWJsZS1vc3MvbW9kdXN3ZWJjb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgSVBhZ2luYXRpb25DaGFuZ2VFdmVudERldGFpbCBhcyBJTW9kdXNXY1RhYmxlSVBhZ2luYXRpb25DaGFuZ2VFdmVudERldGFpbCB9IGZyb20gJ0B0cmltYmxlLW9zcy9tb2R1c3dlYmNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTW9kdXNXY1RhYmxlIGV4dGVuZHMgQ29tcG9uZW50cy5Nb2R1c1djVGFibGUge1xuICAvKipcbiAgICogRW1pdHMgd2hlbiBjZWxsIGVkaXRpbmcgc3RhcnRzLlxuICAgKi9cbiAgY2VsbEVkaXRTdGFydDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHsgcm93SW5kZXg6IG51bWJlcjsgY29sSWQ6IHN0cmluZzsgfT4+O1xuICAvKipcbiAgICogRW1pdHMgd2hlbiBjZWxsIGVkaXRpbmcgaXMgY29tbWl0dGVkIHdpdGggdGhlIG5ldyB2YWx1ZS5cbiAgICovXG4gIGNlbGxFZGl0Q29tbWl0OiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyByb3dJbmRleDogbnVtYmVyOyBjb2xJZDogc3RyaW5nOyBuZXdWYWx1ZTogdW5rbm93bjsgdXBkYXRlZFJvdzogUmVjb3JkPHN0cmluZywgdW5rbm93bj47IH0+PjtcbiAgLyoqXG4gICAqIEVtaXRzIHdoZW4gYSByb3cgaXMgY2xpY2tlZC5cbiAgICovXG4gIHJvd0NsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyByb3c6IFJlY29yZDxzdHJpbmcsIHVua25vd24+OyBpbmRleDogbnVtYmVyOyB9Pj47XG4gIC8qKlxuICAgKiBFbWl0cyB3aGVuIHNvcnRpbmcgY2hhbmdlcyB3aXRoIHRoZSBuZXcgc29ydGluZyBzdGF0ZS5cbiAgICovXG4gIHNvcnRDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJTW9kdXNXY1RhYmxlU29ydGluZ1N0YXRlPj47XG4gIC8qKlxuICAgKiBFbWl0cyB3aGVuIHBhZ2luYXRpb24gY2hhbmdlcyB3aXRoIHRoZSBuZXcgcGFnaW5hdGlvbiBzdGF0ZS5cbiAgICovXG4gIHBhZ2luYXRpb25DaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJTW9kdXNXY1RhYmxlSVBhZ2luYXRpb25DaGFuZ2VFdmVudERldGFpbD4+O1xuICAvKipcbiAgICogRW1pdHMgd2hlbiByb3cgc2VsZWN0aW9uIGNoYW5nZXMgd2l0aCB0aGUgc2VsZWN0ZWQgcm93cyBhbmQgdGhlaXIgSURzLlxuICAgKi9cbiAgcm93U2VsZWN0aW9uQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyBzZWxlY3RlZFJvd3M6IFJlY29yZDxzdHJpbmcsIHVua25vd24+W107IHNlbGVjdGVkUm93SWRzOiBzdHJpbmdbXTsgfT4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhY3RpdmVUYWJJbmRleCcsICdjdXN0b21DbGFzcycsICdzaXplJywgJ3RhYlN0eWxlJywgJ3RhYnMnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21vZHVzLXdjLXRhYnMnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FjdGl2ZVRhYkluZGV4JywgJ2N1c3RvbUNsYXNzJywgJ3NpemUnLCAndGFiU3R5bGUnLCAndGFicyddLFxufSlcbmV4cG9ydCBjbGFzcyBNb2R1c1djVGFicyB7XG4gIHByb3RlY3RlZCBlbDogSFRNTE1vZHVzV2NUYWJzRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsndGFiQ2hhbmdlJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE1vZHVzV2NUYWJzIGV4dGVuZHMgQ29tcG9uZW50cy5Nb2R1c1djVGFicyB7XG4gIC8qKlxuICAgKiBXaGVuIGEgdGFiIGlzIHN3aXRjaGVkIHRvLCB0aGlzIGV2ZW50IG91dHB1dHMgdGhlIHJlbGV2YW50IGluZGljZXNcbiAgICovXG4gIHRhYkNoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHsgcHJldmlvdXNUYWI6IG51bWJlcjsgbmV3VGFiOiBudW1iZXI7IH0+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYXV0b0NhcGl0YWxpemUnLCAnYXV0b0NvbXBsZXRlJywgJ2F1dG9Db3JyZWN0JywgJ2JvcmRlcmVkJywgJ2NsZWFyQXJpYUxhYmVsJywgJ2N1c3RvbUNsYXNzJywgJ2Rpc2FibGVkJywgJ2VudGVya2V5aGludCcsICdmZWVkYmFjaycsICdpbmNsdWRlQ2xlYXInLCAnaW5jbHVkZVNlYXJjaCcsICdpbnB1dElkJywgJ2lucHV0VGFiSW5kZXgnLCAnbGFiZWwnLCAnbWF4TGVuZ3RoJywgJ21pbkxlbmd0aCcsICduYW1lJywgJ3BhdHRlcm4nLCAncGxhY2Vob2xkZXInLCAncmVhZE9ubHknLCAncmVxdWlyZWQnLCAnc2l6ZScsICd0eXBlJywgJ3ZhbHVlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtb2R1cy13Yy10ZXh0LWlucHV0JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhdXRvQ2FwaXRhbGl6ZScsICdhdXRvQ29tcGxldGUnLCAnYXV0b0NvcnJlY3QnLCAnYm9yZGVyZWQnLCAnY2xlYXJBcmlhTGFiZWwnLCAnY3VzdG9tQ2xhc3MnLCAnZGlzYWJsZWQnLCAnZW50ZXJrZXloaW50JywgJ2ZlZWRiYWNrJywgJ2luY2x1ZGVDbGVhcicsICdpbmNsdWRlU2VhcmNoJywgJ2lucHV0SWQnLCAnaW5wdXRUYWJJbmRleCcsICdsYWJlbCcsICdtYXhMZW5ndGgnLCAnbWluTGVuZ3RoJywgJ25hbWUnLCAncGF0dGVybicsICdwbGFjZWhvbGRlcicsICdyZWFkT25seScsICdyZXF1aXJlZCcsICdzaXplJywgJ3R5cGUnLCAndmFsdWUnXSxcbn0pXG5leHBvcnQgY2xhc3MgTW9kdXNXY1RleHRJbnB1dCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTE1vZHVzV2NUZXh0SW5wdXRFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydpbnB1dEJsdXInLCAnaW5wdXRDaGFuZ2UnLCAnaW5wdXRGb2N1cyddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBNb2R1c1djVGV4dElucHV0IGV4dGVuZHMgQ29tcG9uZW50cy5Nb2R1c1djVGV4dElucHV0IHtcbiAgLyoqXG4gICAqIEV2ZW50IGVtaXR0ZWQgd2hlbiB0aGUgaW5wdXQgbG9zZXMgZm9jdXMuXG4gICAqL1xuICBpbnB1dEJsdXI6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxGb2N1c0V2ZW50Pj47XG4gIC8qKlxuICAgKiBFdmVudCBlbWl0dGVkIHdoZW4gdGhlIGlucHV0IHZhbHVlIGNoYW5nZXMuXG4gICAqL1xuICBpbnB1dENoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElucHV0RXZlbnQ+PjtcbiAgLyoqXG4gICAqIEV2ZW50IGVtaXR0ZWQgd2hlbiB0aGUgaW5wdXQgZ2FpbnMgZm9jdXMuXG4gICAqL1xuICBpbnB1dEZvY3VzOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8Rm9jdXNFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhdXRvQ29ycmVjdCcsICdib3JkZXJlZCcsICdjdXN0b21DbGFzcycsICdkaXNhYmxlZCcsICdlbnRlcmtleWhpbnQnLCAnZmVlZGJhY2snLCAnaW5wdXRJZCcsICdpbnB1dFRhYkluZGV4JywgJ2xhYmVsJywgJ21heExlbmd0aCcsICdtaW5MZW5ndGgnLCAnbmFtZScsICdwbGFjZWhvbGRlcicsICdyZWFkb25seScsICdyZXF1aXJlZCcsICdyb3dzJywgJ3NpemUnLCAndmFsdWUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21vZHVzLXdjLXRleHRhcmVhJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhdXRvQ29ycmVjdCcsICdib3JkZXJlZCcsICdjdXN0b21DbGFzcycsICdkaXNhYmxlZCcsICdlbnRlcmtleWhpbnQnLCAnZmVlZGJhY2snLCAnaW5wdXRJZCcsICdpbnB1dFRhYkluZGV4JywgJ2xhYmVsJywgJ21heExlbmd0aCcsICdtaW5MZW5ndGgnLCAnbmFtZScsICdwbGFjZWhvbGRlcicsICdyZWFkb25seScsICdyZXF1aXJlZCcsICdyb3dzJywgJ3NpemUnLCAndmFsdWUnXSxcbn0pXG5leHBvcnQgY2xhc3MgTW9kdXNXY1RleHRhcmVhIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MTW9kdXNXY1RleHRhcmVhRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnaW5wdXRCbHVyJywgJ2lucHV0Q2hhbmdlJywgJ2lucHV0Rm9jdXMnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTW9kdXNXY1RleHRhcmVhIGV4dGVuZHMgQ29tcG9uZW50cy5Nb2R1c1djVGV4dGFyZWEge1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSBpbnB1dCBsb3NlcyBmb2N1cy5cbiAgICovXG4gIGlucHV0Qmx1cjogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PEZvY3VzRXZlbnQ+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgaW5wdXQgdmFsdWUgY2hhbmdlcy5cbiAgICovXG4gIGlucHV0Q2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SW5wdXRFdmVudD4+O1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSBpbnB1dCBnYWlucyBmb2N1cy5cbiAgICovXG4gIGlucHV0Rm9jdXM6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxGb2N1c0V2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2luaXRpYWxUaGVtZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbW9kdXMtd2MtdGhlbWUtcHJvdmlkZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2luaXRpYWxUaGVtZSddLFxufSlcbmV4cG9ydCBjbGFzcyBNb2R1c1djVGhlbWVQcm92aWRlciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTE1vZHVzV2NUaGVtZVByb3ZpZGVyRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTW9kdXNXY1RoZW1lUHJvdmlkZXIgZXh0ZW5kcyBDb21wb25lbnRzLk1vZHVzV2NUaGVtZVByb3ZpZGVyIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2N1c3RvbUNsYXNzJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtb2R1cy13Yy10aGVtZS1zd2l0Y2hlcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY3VzdG9tQ2xhc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgTW9kdXNXY1RoZW1lU3dpdGNoZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxNb2R1c1djVGhlbWVTd2l0Y2hlckVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3RoZW1lQ2hhbmdlJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBJVGhlbWVDb25maWcgYXMgSU1vZHVzV2NUaGVtZVN3aXRjaGVySVRoZW1lQ29uZmlnIH0gZnJvbSAnQHRyaW1ibGUtb3NzL21vZHVzd2ViY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBNb2R1c1djVGhlbWVTd2l0Y2hlciBleHRlbmRzIENvbXBvbmVudHMuTW9kdXNXY1RoZW1lU3dpdGNoZXIge1xuICAvKipcbiAgICogQW4gZXZlbnQgdGhhdCBmaXJlcyB3aGVuIHRoZSB0aGVtZSBpcyBjaGFuZ2VkLlxuICAgKi9cbiAgdGhlbWVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJTW9kdXNXY1RoZW1lU3dpdGNoZXJJVGhlbWVDb25maWc+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYXV0b0NvbXBsZXRlJywgJ2JvcmRlcmVkJywgJ2N1c3RvbUNsYXNzJywgJ2RhdGFsaXN0SWQnLCAnZGF0YWxpc3RPcHRpb25zJywgJ2Rpc2FibGVkJywgJ2ZlZWRiYWNrJywgJ2lucHV0SWQnLCAnaW5wdXRUYWJJbmRleCcsICdsYWJlbCcsICdtYXgnLCAnbWluJywgJ25hbWUnLCAncmVhZE9ubHknLCAncmVxdWlyZWQnLCAnc2hvd1NlY29uZHMnLCAnc2l6ZScsICdzdGVwJywgJ3ZhbHVlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtb2R1cy13Yy10aW1lLWlucHV0JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhdXRvQ29tcGxldGUnLCAnYm9yZGVyZWQnLCAnY3VzdG9tQ2xhc3MnLCAnZGF0YWxpc3RJZCcsICdkYXRhbGlzdE9wdGlvbnMnLCAnZGlzYWJsZWQnLCAnZmVlZGJhY2snLCAnaW5wdXRJZCcsICdpbnB1dFRhYkluZGV4JywgJ2xhYmVsJywgJ21heCcsICdtaW4nLCAnbmFtZScsICdyZWFkT25seScsICdyZXF1aXJlZCcsICdzaG93U2Vjb25kcycsICdzaXplJywgJ3N0ZXAnLCAndmFsdWUnXSxcbn0pXG5leHBvcnQgY2xhc3MgTW9kdXNXY1RpbWVJbnB1dCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTE1vZHVzV2NUaW1lSW5wdXRFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydpbnB1dEJsdXInLCAnaW5wdXRDaGFuZ2UnLCAnaW5wdXRGb2N1cyddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBNb2R1c1djVGltZUlucHV0IGV4dGVuZHMgQ29tcG9uZW50cy5Nb2R1c1djVGltZUlucHV0IHtcbiAgLyoqXG4gICAqIEV2ZW50IGVtaXR0ZWQgd2hlbiB0aGUgaW5wdXQgbG9zZXMgZm9jdXMuXG4gICAqL1xuICBpbnB1dEJsdXI6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxGb2N1c0V2ZW50Pj47XG4gIC8qKlxuICAgKiBFdmVudCBlbWl0dGVkIHdoZW4gdGhlIGlucHV0IHZhbHVlIGNoYW5nZXMuXG4gICAqL1xuICBpbnB1dENoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PEV2ZW50Pj47XG4gIC8qKlxuICAgKiBFdmVudCBlbWl0dGVkIHdoZW4gdGhlIGlucHV0IGdhaW5zIGZvY3VzLlxuICAgKi9cbiAgaW5wdXRGb2N1czogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PEZvY3VzRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY3VzdG9tQ2xhc3MnLCAnZGVsYXknLCAncG9zaXRpb24nXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21vZHVzLXdjLXRvYXN0JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjdXN0b21DbGFzcycsICdkZWxheScsICdwb3NpdGlvbiddLFxufSlcbmV4cG9ydCBjbGFzcyBNb2R1c1djVG9hc3Qge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxNb2R1c1djVG9hc3RFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBNb2R1c1djVG9hc3QgZXh0ZW5kcyBDb21wb25lbnRzLk1vZHVzV2NUb2FzdCB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjdXN0b21DbGFzcyddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbW9kdXMtd2MtdG9vbGJhcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY3VzdG9tQ2xhc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgTW9kdXNXY1Rvb2xiYXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxNb2R1c1djVG9vbGJhckVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIE1vZHVzV2NUb29sYmFyIGV4dGVuZHMgQ29tcG9uZW50cy5Nb2R1c1djVG9vbGJhciB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjb250ZW50JywgJ2N1c3RvbUNsYXNzJywgJ2Rpc2FibGVkJywgJ2ZvcmNlT3BlbicsICdwb3NpdGlvbicsICd0b29sdGlwSWQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21vZHVzLXdjLXRvb2x0aXAnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2NvbnRlbnQnLCAnY3VzdG9tQ2xhc3MnLCAnZGlzYWJsZWQnLCAnZm9yY2VPcGVuJywgJ3Bvc2l0aW9uJywgJ3Rvb2x0aXBJZCddLFxufSlcbmV4cG9ydCBjbGFzcyBNb2R1c1djVG9vbHRpcCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTE1vZHVzV2NUb29sdGlwRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnZGlzbWlzc0VzY2FwZSddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBNb2R1c1djVG9vbHRpcCBleHRlbmRzIENvbXBvbmVudHMuTW9kdXNXY1Rvb2x0aXAge1xuICAvKipcbiAgICogQW4gZXZlbnQgdGhhdCBmaXJlcyB3aGVuIHRoZSB0b29sdGlwIGlzIGRpc21pc3NlZCB2aWEgRXNjYXBlIGtleVxuICAgKi9cbiAgZGlzbWlzc0VzY2FwZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PGFueT4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjdXN0b21DbGFzcycsICdoaWVyYXJjaHknLCAnc2l6ZScsICd3ZWlnaHQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21vZHVzLXdjLXR5cG9ncmFwaHknLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2N1c3RvbUNsYXNzJywgJ2hpZXJhcmNoeScsICdzaXplJywgJ3dlaWdodCddLFxufSlcbmV4cG9ydCBjbGFzcyBNb2R1c1djVHlwb2dyYXBoeSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTE1vZHVzV2NUeXBvZ3JhcGh5RWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTW9kdXNXY1R5cG9ncmFwaHkgZXh0ZW5kcyBDb21wb25lbnRzLk1vZHVzV2NUeXBvZ3JhcGh5IHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2V4cGFuZGVkJywgJ3B1c2hDb250ZW50JywgJ3RhcmdldEVsZW1lbnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21vZHVzLXdjLXV0aWxpdHktcGFuZWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2V4cGFuZGVkJywgJ3B1c2hDb250ZW50JywgJ3RhcmdldEVsZW1lbnQnXSxcbn0pXG5leHBvcnQgY2xhc3MgTW9kdXNXY1V0aWxpdHlQYW5lbCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTE1vZHVzV2NVdGlsaXR5UGFuZWxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydwYW5lbE9wZW5lZCcsICdwYW5lbENsb3NlZCddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBNb2R1c1djVXRpbGl0eVBhbmVsIGV4dGVuZHMgQ29tcG9uZW50cy5Nb2R1c1djVXRpbGl0eVBhbmVsIHtcbiAgLyoqXG4gICAqIEFuIGV2ZW50IHRoYXQgZmlyZXMgd2hlbiB0aGUgcGFuZWwgaXMgb3BlbmVkLlxuICAgKi9cbiAgcGFuZWxPcGVuZWQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx2b2lkPj47XG4gIC8qKlxuICAgKiBBbiBldmVudCB0aGF0IGZpcmVzIHdoZW4gdGhlIHBhbmVsIGlzIGNsb3NlZC5cbiAgICovXG4gIHBhbmVsQ2xvc2VkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dm9pZD4+O1xufVxuXG5cbiJdfQ==