@trimble-oss/moduswebcomponents-angular 0.0.0-beta.2-ng18 → 0.0.0-beta.2-ng19

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