ids-enterprise-wc 1.15.9-patch.6 → 1.15.9-patch.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. package/chunks/ids-chunk-4MSGTAOV-full.js +12 -0
  2. package/chunks/ids-chunk-4MSGTAOV-full.js.map +7 -0
  3. package/chunks/{ids-chunk-LZU34NYE-full.js → ids-chunk-CSOF2USI-full.js} +12 -2
  4. package/chunks/{ids-chunk-LZU34NYE-full.js.map → ids-chunk-CSOF2USI-full.js.map} +2 -2
  5. package/chunks/{ids-chunk-FW4DOBQU-full.js → ids-chunk-FPEINRXY-full.js} +6 -10
  6. package/chunks/ids-chunk-FPEINRXY-full.js.map +7 -0
  7. package/chunks/{ids-chunk-YAFKETSU-full.js → ids-chunk-KL2N6T26-full.js} +366 -38
  8. package/chunks/ids-chunk-KL2N6T26-full.js.map +7 -0
  9. package/chunks/{ids-chunk-HGKIZXDQ-full.js → ids-chunk-RLOOHWYV-full.js} +2 -2
  10. package/components/ids-accordion/ids-accordion.css +9 -93
  11. package/components/ids-button/ids-button.css +392 -43
  12. package/components/ids-card/ids-card.css +4 -344
  13. package/components/ids-data-grid/ids-data-grid-cell.js +1 -1
  14. package/components/ids-data-grid/ids-data-grid-column.d.ts +1 -0
  15. package/components/ids-data-grid/ids-data-grid-column.js +7 -0
  16. package/components/ids-data-grid/ids-data-grid-filters.js +2 -2
  17. package/components/ids-data-grid/ids-data-grid-row.d.ts +6 -0
  18. package/components/ids-data-grid/ids-data-grid-row.js +2 -2
  19. package/components/ids-data-grid/ids-data-grid.d.ts +18 -1
  20. package/components/ids-data-grid/ids-data-grid.js +5 -4
  21. package/components/ids-hyperlink/ids-hyperlink.css +188 -15
  22. package/components/ids-layout-grid/ids-layout-grid.css +10 -21300
  23. package/components/ids-list-view/ids-list-view.css +112 -15
  24. package/components/ids-menu/ids-menu.css +11 -17
  25. package/components/ids-module-nav/ids-module-nav.css +1 -1814
  26. package/components/ids-pager/ids-pager.css +37 -3
  27. package/components/ids-swappable/ids-swappable.css +84 -19
  28. package/components/ids-tabs/ids-tabs.css +4 -342
  29. package/components/ids-toolbar/ids-toolbar.css +122 -12
  30. package/custom-elements.json +606 -414
  31. package/enterprise-wc.all.iife.js +377 -43
  32. package/enterprise-wc.all.iife.js.map +3 -3
  33. package/enterprise-wc.js +5 -4
  34. package/package.json +1 -1
  35. package/vscode.html-custom-data.json +1 -1
  36. package/chunks/ids-chunk-FW4DOBQU-full.js.map +0 -7
  37. package/chunks/ids-chunk-YAFKETSU-full.js.map +0 -7
  38. /package/chunks/{ids-chunk-HGKIZXDQ-full.js.map → ids-chunk-RLOOHWYV-full.js.map} +0 -0
@@ -1,1751 +1,4 @@
1
- /**
2
- * Ids Button Component CSS
3
- * (Includes standard and icon button rules)
4
- */
5
- /**
6
- * Ids Button Sass mixins, used in Ids Button CSS to define base styles.
7
- */
8
- /**
9
- * Provides standardized padding rules for certain button types
10
- */
11
- /**
12
- * Provides the standard color rules for all regular buttons
13
- */
14
- /**
15
- * Provides the standard color rules for buttons that need box shadow
16
- */
17
1
  :root {
18
- display: inline-flex;
19
- vertical-align: middle;
20
- }
21
- :host ::slotted(span) {
22
- vertical-align: bottom;
23
- }
24
- :host ::slotted(span),
25
- :host ::slotted(ids-text) {
26
- color: currentColor;
27
- align-self: center;
28
- }
29
- :host ::slotted(ids-icon) {
30
- vertical-align: middle;
31
- color: currentColor;
32
- }
33
- :host ::slotted(ids-icon[compact=true]) {
34
- margin-inline-end: var(--ids-space-2xs);
35
- }
36
- :host ::slotted(span.audible) {
37
- clip: rect(0, 0, 0, 0);
38
- height: 0;
39
- line-height: 0;
40
- min-height: 0;
41
- overflow: hidden;
42
- padding: 0;
43
- position: absolute;
44
- width: 1px;
45
- }
46
- :host button,
47
- :host .ids-icon-button {
48
- justify-content: center;
49
- height: 100%;
50
- width: 100%;
51
- }
52
-
53
- :host(.hidden) {
54
- display: none;
55
- }
56
-
57
- :host([system-button]) button:not(.is-active):hover {
58
- background-color: var(--ids-color-transparent);
59
- border-color: var(--ids-color-transparent);
60
- color: var(--ids-button-system-color-text-hover);
61
- }
62
-
63
- :host([hidden]) {
64
- display: none;
65
- }
66
-
67
- button {
68
- display: block;
69
- }
70
-
71
- .ids-button,
72
- .ids-toggle-button,
73
- .ids-menu-button:not(.ids-icon-button),
74
- .ids-modal-button {
75
- -webkit-font-smoothing: antialiased;
76
- -moz-osx-font-smoothing: grayscale;
77
- }
78
- .ids-button .ids-icon,
79
- .ids-toggle-button .ids-icon,
80
- .ids-menu-button:not(.ids-icon-button) .ids-icon,
81
- .ids-modal-button .ids-icon {
82
- display: inline-flex;
83
- place-self: center;
84
- vertical-align: middle;
85
- }
86
-
87
- .ids-button.compact,
88
- .ids-icon-button.compact {
89
- font-size: var(--ids-font-size-2xs);
90
- height: var(--ids-button-compact-width);
91
- line-height: 16px;
92
- }
93
-
94
- .ids-button.ellipsis ::slotted(span),
95
- .ids-modal-button.ellipsis ::slotted(span) {
96
- display: block;
97
- max-width: 100%;
98
- overflow: hidden;
99
- text-overflow: ellipsis;
100
- white-space: nowrap;
101
- width: inherit;
102
- height: inherit;
103
- }
104
-
105
- .ids-button,
106
- .ids-toggle-button,
107
- .ids-menu-button {
108
- box-shadow: var(--ids-shadow-none);
109
- font-weight: var(--ids-font-weight-normal);
110
- font-family: var(--ids-font-family-default), var(--ids-font-family-system-sans);
111
- font-size: var(--ids-font-size-sm);
112
- overflow: hidden;
113
- padding-bottom: calc(var(--ids-space-xs) - 2px);
114
- padding-top: calc(var(--ids-space-xs) - 2px);
115
- position: relative;
116
- }
117
- .ids-button, .ids-button::before, .ids-button::after,
118
- .ids-toggle-button,
119
- .ids-toggle-button::before,
120
- .ids-toggle-button::after,
121
- .ids-menu-button,
122
- .ids-menu-button::before,
123
- .ids-menu-button::after {
124
- box-sizing: border-box;
125
- }
126
- .ids-button *,
127
- .ids-toggle-button *,
128
- .ids-menu-button * {
129
- pointer-events: none;
130
- }
131
- .ids-button,
132
- .ids-toggle-button,
133
- .ids-menu-button {
134
- border: 1px solid transparent;
135
- background-color: var(--ids-color-transparent);
136
- color: var(--ids-button-color-text-default);
137
- transition: background-color var(--ids-motion-duration) var(--ids-motion-ease), border-color var(--ids-motion-duration) var(--ids-motion-ease), color var(--ids-motion-duration) var(--ids-motion-ease), opacity var(--ids-motion-duration) var(--ids-motion-ease);
138
- white-space: nowrap;
139
- }
140
- .ids-button:focus,
141
- .ids-toggle-button:focus,
142
- .ids-menu-button:focus {
143
- outline: none;
144
- outline-color: var(--ids-color-transparent);
145
- }
146
- .ids-button:not([disabled]),
147
- .ids-toggle-button:not([disabled]),
148
- .ids-menu-button:not([disabled]) {
149
- cursor: var(--ids-cursor-pointer);
150
- }
151
- .ids-button span,
152
- .ids-toggle-button span,
153
- .ids-menu-button span {
154
- vertical-align: bottom;
155
- }
156
- .ids-button span.audible,
157
- .ids-toggle-button span.audible,
158
- .ids-menu-button span.audible {
159
- clip: rect(0, 0, 0, 0);
160
- height: 0;
161
- line-height: 0;
162
- min-height: 0;
163
- overflow: hidden;
164
- padding: 0;
165
- position: absolute;
166
- width: 1px;
167
- }
168
- .ids-button:not(.color-variant-module-nav):not(.ids-icon-button):not(.align-icon-end):not(.compact) ::slotted(ids-icon:not([icon=genai])),
169
- .ids-toggle-button:not(.color-variant-module-nav):not(.ids-icon-button):not(.align-icon-end):not(.compact) ::slotted(ids-icon:not([icon=genai])),
170
- .ids-menu-button:not(.color-variant-module-nav):not(.ids-icon-button):not(.align-icon-end):not(.compact) ::slotted(ids-icon:not([icon=genai])) {
171
- margin-inline-end: calc(var(--ids-space-2xs) + 3px);
172
- }
173
- .ids-button .ids-icon,
174
- .ids-toggle-button .ids-icon,
175
- .ids-menu-button .ids-icon {
176
- vertical-align: middle;
177
- }
178
- .ids-button.align-icon-end ::slotted(ids-icon),
179
- .ids-toggle-button.align-icon-end ::slotted(ids-icon),
180
- .ids-menu-button.align-icon-end ::slotted(ids-icon) {
181
- margin-inline-start: var(--ids-space-2xs);
182
- }
183
- .ids-button.content-align-start,
184
- .ids-toggle-button.content-align-start,
185
- .ids-menu-button.content-align-start {
186
- justify-content: start;
187
- }
188
- .ids-button.content-align-end,
189
- .ids-toggle-button.content-align-end,
190
- .ids-menu-button.content-align-end {
191
- justify-content: end;
192
- }
193
- .ids-button.no-margins,
194
- .ids-toggle-button.no-margins,
195
- .ids-menu-button.no-margins {
196
- margin-inline: var(--ids-space-none);
197
- }
198
- .ids-button.field-height-xxs:not(.btn-secondary):not(.no-margins),
199
- .ids-toggle-button.field-height-xxs:not(.btn-secondary):not(.no-margins),
200
- .ids-menu-button.field-height-xxs:not(.btn-secondary):not(.no-margins) {
201
- margin-block-start: 3px;
202
- margin-inline-end: -2px;
203
- height: 22px;
204
- width: 22px;
205
- }
206
- .ids-button ::slotted(span),
207
- .ids-toggle-button ::slotted(span),
208
- .ids-menu-button ::slotted(span) {
209
- font-weight: inherit !important;
210
- }
211
- .ids-button,
212
- .ids-toggle-button,
213
- .ids-menu-button {
214
- display: inline-flex;
215
- font-weight: var(--ids-button-tertiary-font-weight);
216
- border-radius: var(--ids-button-radius);
217
- background-color: var(--ids-button-tertiary-color-background-default);
218
- border-color: var(--ids-button-tertiary-color-border-default);
219
- color: var(--ids-button-tertiary-color-text-default);
220
- }
221
- .ids-button:not(.hide-focus).is-active:not([readonly]), .ids-button:not(.hide-focus).is-focused:not([readonly]), .ids-button:not(.hide-focus):focus:not([readonly]), .ids-button:not(.hide-focus):focus-within:not([readonly]),
222
- .ids-toggle-button:not(.hide-focus).is-active:not([readonly]),
223
- .ids-toggle-button:not(.hide-focus).is-focused:not([readonly]),
224
- .ids-toggle-button:not(.hide-focus):focus:not([readonly]),
225
- .ids-toggle-button:not(.hide-focus):focus-within:not([readonly]),
226
- .ids-menu-button:not(.hide-focus).is-active:not([readonly]),
227
- .ids-menu-button:not(.hide-focus).is-focused:not([readonly]),
228
- .ids-menu-button:not(.hide-focus):focus:not([readonly]),
229
- .ids-menu-button:not(.hide-focus):focus-within:not([readonly]) {
230
- border-color: var(--ids-button-tertiary-color-border-focus);
231
- }
232
- .ids-button:hover,
233
- .ids-toggle-button:hover,
234
- .ids-menu-button:hover {
235
- color: var(--ids-button-tertiary-color-text-hover);
236
- background-color: var(--ids-button-tertiary-color-background-hover);
237
- border-color: var(--ids-button-tertiary-color-border-hover);
238
- }
239
- .ids-button[disabled],
240
- .ids-toggle-button[disabled],
241
- .ids-menu-button[disabled] {
242
- color: var(--ids-button-tertiary-color-text-disabled);
243
- background-color: var(--ids-button-tertiary-color-background-disabled);
244
- border-color: var(--ids-button-tertiary-color-border-disabled);
245
- opacity: var(--ids-button-tertiary-opacity-disabled);
246
- }
247
- .ids-button:active:not([disabled]),
248
- .ids-toggle-button:active:not([disabled]),
249
- .ids-menu-button:active:not([disabled]) {
250
- background-color: var(--ids-button-tertiary-color-background-pressed);
251
- border-color: var(--ids-button-tertiary-color-border-pressed);
252
- color: var(--ids-button-tertiary-color-text-pressed);
253
- }
254
- .ids-button.btn-tertiary-destructive,
255
- .ids-toggle-button.btn-tertiary-destructive,
256
- .ids-menu-button.btn-tertiary-destructive {
257
- background-color: var(--ids-button-destructive-tertiary-color-background-default);
258
- border-color: var(--ids-button-destructive-tertiary-color-border-default);
259
- color: var(--ids-button-destructive-tertiary-color-text-default);
260
- }
261
- .ids-button.btn-tertiary-destructive:not(.hide-focus).is-active, .ids-button.btn-tertiary-destructive:not(.hide-focus).is-focused, .ids-button.btn-tertiary-destructive:not(.hide-focus).focus-within, .ids-button.btn-tertiary-destructive:not(.hide-focus):focus,
262
- .ids-toggle-button.btn-tertiary-destructive:not(.hide-focus).is-active,
263
- .ids-toggle-button.btn-tertiary-destructive:not(.hide-focus).is-focused,
264
- .ids-toggle-button.btn-tertiary-destructive:not(.hide-focus).focus-within,
265
- .ids-toggle-button.btn-tertiary-destructive:not(.hide-focus):focus,
266
- .ids-menu-button.btn-tertiary-destructive:not(.hide-focus).is-active,
267
- .ids-menu-button.btn-tertiary-destructive:not(.hide-focus).is-focused,
268
- .ids-menu-button.btn-tertiary-destructive:not(.hide-focus).focus-within,
269
- .ids-menu-button.btn-tertiary-destructive:not(.hide-focus):focus {
270
- border-color: var(--ids-button-destructive-tertiary-color-border-focus);
271
- }
272
- .ids-button.btn-tertiary-destructive:hover,
273
- .ids-toggle-button.btn-tertiary-destructive:hover,
274
- .ids-menu-button.btn-tertiary-destructive:hover {
275
- background-color: var(--ids-button-destructive-tertiary-color-background-hover);
276
- border-color: var(--ids-button-destructive-tertiary-color-border-hover);
277
- color: var(--ids-button-destructive-tertiary-color-text-hover);
278
- }
279
- .ids-button.btn-tertiary-destructive[disabled],
280
- .ids-toggle-button.btn-tertiary-destructive[disabled],
281
- .ids-menu-button.btn-tertiary-destructive[disabled] {
282
- color: var(--ids-button-destructive-tertiary-color-text-disabled);
283
- background-color: var(--ids-button-destructive-tertiary-color-background-disabled);
284
- border-color: var(--ids-button-destructive-tertiary-color-border-disabled);
285
- }
286
- .ids-button.btn-primary,
287
- .ids-toggle-button.btn-primary,
288
- .ids-menu-button.btn-primary {
289
- background-color: var(--ids-button-primary-color-background-default);
290
- border-color: var(--ids-button-primary-color-border-default);
291
- border: 1px solid var(--ids-button-primary-color-border-default);
292
- color: var(--ids-button-primary-color-text-default);
293
- padding-bottom: calc(var(--ids-space-xs) - 2px);
294
- padding-top: calc(var(--ids-space-xs) - 2px);
295
- }
296
- .ids-button.btn-primary:not(.hide-focus).is-active, .ids-button.btn-primary:not(.hide-focus).is-focused, .ids-button.btn-primary:not(.hide-focus).focus-within, .ids-button.btn-primary:not(.hide-focus):focus,
297
- .ids-toggle-button.btn-primary:not(.hide-focus).is-active,
298
- .ids-toggle-button.btn-primary:not(.hide-focus).is-focused,
299
- .ids-toggle-button.btn-primary:not(.hide-focus).focus-within,
300
- .ids-toggle-button.btn-primary:not(.hide-focus):focus,
301
- .ids-menu-button.btn-primary:not(.hide-focus).is-active,
302
- .ids-menu-button.btn-primary:not(.hide-focus).is-focused,
303
- .ids-menu-button.btn-primary:not(.hide-focus).focus-within,
304
- .ids-menu-button.btn-primary:not(.hide-focus):focus {
305
- border-color: var(--ids-button-primary-color-border-focus);
306
- }
307
- .ids-button.btn-primary:hover,
308
- .ids-toggle-button.btn-primary:hover,
309
- .ids-menu-button.btn-primary:hover {
310
- background-color: var(--ids-button-primary-color-background-hover);
311
- border-color: var(--ids-button-primary-color-border-hover);
312
- }
313
- .ids-button.btn-primary[disabled],
314
- .ids-toggle-button.btn-primary[disabled],
315
- .ids-menu-button.btn-primary[disabled] {
316
- background-color: var(--ids-button-primary-color-background-disabled);
317
- border-color: var(--ids-button-primary-color-border-disabled);
318
- color: var(--ids-button-primary-color-text-disabled);
319
- opacity: var(--ids-button-primary-opacity-disabled);
320
- }
321
- .ids-button.btn-primary:active:not([disabled]),
322
- .ids-toggle-button.btn-primary:active:not([disabled]),
323
- .ids-menu-button.btn-primary:active:not([disabled]) {
324
- background-color: var(--ids-button-primary-color-background-pressed);
325
- border-color: var(--ids-button-primary-color-border-pressed);
326
- color: var(--ids-button-primary-color-text-pressed);
327
- }
328
- .ids-button.btn-primary-destructive,
329
- .ids-toggle-button.btn-primary-destructive,
330
- .ids-menu-button.btn-primary-destructive {
331
- background-color: var(--ids-button-destructive-color-background-default);
332
- border-color: var(--ids-button-destructive-color-border-default);
333
- color: var(--ids-button-destructive-color-text-default);
334
- }
335
- .ids-button.btn-primary-destructive:not(.hide-focus).is-active, .ids-button.btn-primary-destructive:not(.hide-focus).is-focused, .ids-button.btn-primary-destructive:not(.hide-focus).focus-within, .ids-button.btn-primary-destructive:not(.hide-focus):focus,
336
- .ids-toggle-button.btn-primary-destructive:not(.hide-focus).is-active,
337
- .ids-toggle-button.btn-primary-destructive:not(.hide-focus).is-focused,
338
- .ids-toggle-button.btn-primary-destructive:not(.hide-focus).focus-within,
339
- .ids-toggle-button.btn-primary-destructive:not(.hide-focus):focus,
340
- .ids-menu-button.btn-primary-destructive:not(.hide-focus).is-active,
341
- .ids-menu-button.btn-primary-destructive:not(.hide-focus).is-focused,
342
- .ids-menu-button.btn-primary-destructive:not(.hide-focus).focus-within,
343
- .ids-menu-button.btn-primary-destructive:not(.hide-focus):focus {
344
- border-color: var(--ids-button-destructive-color-border-focus);
345
- }
346
- .ids-button.btn-primary-destructive:hover,
347
- .ids-toggle-button.btn-primary-destructive:hover,
348
- .ids-menu-button.btn-primary-destructive:hover {
349
- background-color: var(--ids-button-destructive-color-background-hover);
350
- border-color: var(--ids-button-destructive-color-border-hover);
351
- color: var(--ids-button-destructive-color-text-hover);
352
- }
353
- .ids-button.btn-primary-destructive[disabled],
354
- .ids-toggle-button.btn-primary-destructive[disabled],
355
- .ids-menu-button.btn-primary-destructive[disabled] {
356
- background-color: var(--ids-button-destructive-color-background-disabled);
357
- border-color: var(--ids-button-destructive-color-border-disabled);
358
- color: var(--ids-button-destructive-color-text-disabled);
359
- opacity: var(--ids-button-destructive-opacity-disabled);
360
- }
361
- @keyframes dot-flashing {
362
- 0% {
363
- background-color: var(--ids-button-ai-color-loading-dot-primary-step-1);
364
- }
365
- 50%, 100% {
366
- background-color: var(--ids-button-ai-color-loading-dot-primary-step-2);
367
- }
368
- }
369
- @keyframes dot-flashing-colors-secondary {
370
- 0% {
371
- background-color: var(--ids-button-ai-color-loading-dot-secondary-step-1);
372
- }
373
- 50%, 100% {
374
- background-color: var(--ids-button-ai-color-loading-dot-secondary-step-2);
375
- }
376
- }
377
- @keyframes dot-flashing-colors-tertiary {
378
- 0% {
379
- background-color: var(--ids-button-ai-color-loading-dot-tertiary-step-1);
380
- }
381
- 50%, 100% {
382
- background-color: var(--ids-button-ai-color-loading-dot-tertiary-step-2);
383
- }
384
- }
385
- .ids-button .loading-dots-start,
386
- .ids-toggle-button .loading-dots-start,
387
- .ids-menu-button .loading-dots-start {
388
- padding-inline-start: 3px !important;
389
- padding-inline-end: 7px !important;
390
- gap: 2px;
391
- }
392
- .ids-button .loading-dots,
393
- .ids-toggle-button .loading-dots,
394
- .ids-menu-button .loading-dots {
395
- display: none;
396
- position: relative;
397
- flex-direction: row;
398
- gap: 2px;
399
- padding-inline-start: 7px;
400
- padding-inline-end: 3px;
401
- }
402
- .ids-button .loading-dots .dot,
403
- .ids-toggle-button .loading-dots .dot,
404
- .ids-menu-button .loading-dots .dot {
405
- display: inline-flex;
406
- position: relative;
407
- width: 3px;
408
- height: 3px;
409
- border-radius: 5px;
410
- background-color: var(--ids-button-ai-color-loading-dot-default);
411
- color: var(--ids-button-ai-color-loading-dot-default);
412
- }
413
- .ids-button.btn-primary-generative-ai,
414
- .ids-toggle-button.btn-primary-generative-ai,
415
- .ids-menu-button.btn-primary-generative-ai {
416
- --ids-button-ai-sparkle-icon-color-fill: var(--ids-button-ai-primary-sparkle-icon-color-fill);
417
- background: border-box var(--ids-button-ai-color-background-default);
418
- border: none;
419
- color: var(--ids-button-ai-color-text-default);
420
- align-items: center;
421
- min-width: 34px;
422
- min-height: 34px;
423
- }
424
- .ids-button.btn-primary-generative-ai.compact,
425
- .ids-toggle-button.btn-primary-generative-ai.compact,
426
- .ids-menu-button.btn-primary-generative-ai.compact {
427
- min-width: var(--ids-button-compact-width);
428
- min-height: var(--ids-button-compact-width);
429
- }
430
- .ids-button.btn-primary-generative-ai:hover,
431
- .ids-toggle-button.btn-primary-generative-ai:hover,
432
- .ids-menu-button.btn-primary-generative-ai:hover {
433
- background: border-box var(--ids-button-ai-color-background-hover);
434
- }
435
- .ids-button.btn-primary-generative-ai:active, .ids-button.btn-primary-generative-ai.gen-ai-active,
436
- .ids-toggle-button.btn-primary-generative-ai:active,
437
- .ids-toggle-button.btn-primary-generative-ai.gen-ai-active,
438
- .ids-menu-button.btn-primary-generative-ai:active,
439
- .ids-menu-button.btn-primary-generative-ai.gen-ai-active {
440
- background: border-box var(--ids-button-ai-color-background-active);
441
- color: var(--ids-button-ai-color-text-active);
442
- }
443
- .ids-button.btn-primary-generative-ai[disabled],
444
- .ids-toggle-button.btn-primary-generative-ai[disabled],
445
- .ids-menu-button.btn-primary-generative-ai[disabled] {
446
- background: border-box var(--ids-button-ai-color-background-disabled);
447
- }
448
- .ids-button.btn-primary-generative-ai.color-variant-alternate-formatter, .ids-button.btn-primary-generative-ai.color-variant-alternate-formatter:hover,
449
- .ids-toggle-button.btn-primary-generative-ai.color-variant-alternate-formatter,
450
- .ids-toggle-button.btn-primary-generative-ai.color-variant-alternate-formatter:hover,
451
- .ids-menu-button.btn-primary-generative-ai.color-variant-alternate-formatter,
452
- .ids-menu-button.btn-primary-generative-ai.color-variant-alternate-formatter:hover {
453
- color: var(--ids-color-white-100);
454
- min-height: var(--ids-button-formatter-size);
455
- min-width: 34px;
456
- }
457
- .ids-button.btn-primary-generative-ai .loading-dots .dot:nth-child(1),
458
- .ids-toggle-button.btn-primary-generative-ai .loading-dots .dot:nth-child(1),
459
- .ids-menu-button.btn-primary-generative-ai .loading-dots .dot:nth-child(1) {
460
- animation: dot-flashing 1s infinite alternate;
461
- animation-delay: 0s;
462
- }
463
- .ids-button.btn-primary-generative-ai .loading-dots .dot:nth-child(2),
464
- .ids-toggle-button.btn-primary-generative-ai .loading-dots .dot:nth-child(2),
465
- .ids-menu-button.btn-primary-generative-ai .loading-dots .dot:nth-child(2) {
466
- animation: dot-flashing 1s infinite linear alternate;
467
- animation-delay: 0.5s;
468
- }
469
- .ids-button.btn-primary-generative-ai .loading-dots .dot:nth-child(3),
470
- .ids-toggle-button.btn-primary-generative-ai .loading-dots .dot:nth-child(3),
471
- .ids-menu-button.btn-primary-generative-ai .loading-dots .dot:nth-child(3) {
472
- animation: dot-flashing 1s infinite alternate;
473
- animation-delay: 1s;
474
- }
475
- .ids-button.btn-secondary-generative-ai,
476
- .ids-toggle-button.btn-secondary-generative-ai,
477
- .ids-menu-button.btn-secondary-generative-ai {
478
- --ids-button-ai-sparkle-icon-color-fill: var(--ids-button-ai-secondary-sparkle-icon-color-fill);
479
- background: var(--ids-button-ai-secondary-color-background-default);
480
- border: 1px solid var(--ids-button-ai-secondary-color-border-default);
481
- color: var(--ids-button-ai-secondary-color-default);
482
- align-items: center;
483
- }
484
- .ids-button.btn-secondary-generative-ai:hover:not([disabled]),
485
- .ids-toggle-button.btn-secondary-generative-ai:hover:not([disabled]),
486
- .ids-menu-button.btn-secondary-generative-ai:hover:not([disabled]) {
487
- background: var(--ids-button-ai-secondary-color-background-hover);
488
- color: var(--ids-button-ai-secondary-color-hover);
489
- border-color: var(--ids-button-ai-secondary-color-border-hover);
490
- }
491
- .ids-button.btn-secondary-generative-ai:active:not([disabled]),
492
- .ids-toggle-button.btn-secondary-generative-ai:active:not([disabled]),
493
- .ids-menu-button.btn-secondary-generative-ai:active:not([disabled]) {
494
- background: var(--ids-button-ai-secondary-color-background-active);
495
- color: var(--ids-button-ai-secondary-color-active);
496
- border-color: var(--ids-button-ai-secondary-color-border-active);
497
- }
498
- .ids-button.btn-secondary-generative-ai ::slotted(ids-icon[icon=genai]),
499
- .ids-toggle-button.btn-secondary-generative-ai ::slotted(ids-icon[icon=genai]),
500
- .ids-menu-button.btn-secondary-generative-ai ::slotted(ids-icon[icon=genai]) {
501
- --ids-button-ai-color-icon-primary: var(--ids-button-ai-color-icon-primary-hover);
502
- --ids-button-ai-color-icon-secondary: var(--ids-button-ai-color-icon-secondary-hover);
503
- }
504
- .ids-button.btn-secondary-generative-ai.gen-ai-active,
505
- .ids-toggle-button.btn-secondary-generative-ai.gen-ai-active,
506
- .ids-menu-button.btn-secondary-generative-ai.gen-ai-active {
507
- background: var(--ids-button-ai-secondary-color-background-active);
508
- }
509
- .ids-button.btn-secondary-generative-ai[disabled],
510
- .ids-toggle-button.btn-secondary-generative-ai[disabled],
511
- .ids-menu-button.btn-secondary-generative-ai[disabled] {
512
- opacity: var(--ids-button-ai-opacity-disabled);
513
- }
514
- .ids-button.btn-secondary-generative-ai .loading-dots .dot,
515
- .ids-toggle-button.btn-secondary-generative-ai .loading-dots .dot,
516
- .ids-menu-button.btn-secondary-generative-ai .loading-dots .dot {
517
- background-color: var(--ids-button-ai-color-loading-dot-secondary);
518
- color: var(--ids-button-ai-color-loading-dot-secondary);
519
- }
520
- .ids-button.btn-secondary-generative-ai .loading-dots .dot:nth-child(1),
521
- .ids-toggle-button.btn-secondary-generative-ai .loading-dots .dot:nth-child(1),
522
- .ids-menu-button.btn-secondary-generative-ai .loading-dots .dot:nth-child(1) {
523
- animation: dot-flashing-colors-secondary 1s infinite alternate;
524
- animation-delay: 0s;
525
- }
526
- .ids-button.btn-secondary-generative-ai .loading-dots .dot:nth-child(2),
527
- .ids-toggle-button.btn-secondary-generative-ai .loading-dots .dot:nth-child(2),
528
- .ids-menu-button.btn-secondary-generative-ai .loading-dots .dot:nth-child(2) {
529
- animation: dot-flashing-colors-secondary 1s infinite linear alternate;
530
- animation-delay: 0.5s;
531
- }
532
- .ids-button.btn-secondary-generative-ai .loading-dots .dot:nth-child(3),
533
- .ids-toggle-button.btn-secondary-generative-ai .loading-dots .dot:nth-child(3),
534
- .ids-menu-button.btn-secondary-generative-ai .loading-dots .dot:nth-child(3) {
535
- animation: dot-flashing-colors-secondary 1s infinite alternate;
536
- animation-delay: 1s;
537
- }
538
- .ids-button.btn-tertiary-generative-ai,
539
- .ids-toggle-button.btn-tertiary-generative-ai,
540
- .ids-menu-button.btn-tertiary-generative-ai {
541
- --ids-button-tertiary-ai-shadow-focus: var(--ids-button-tertiary-shadow-focus);
542
- --ids-button-ai-color-icon-secondary-hover: var(--ids-color-action-stronger);
543
- --ids-button-ai-sparkle-icon-color-fill: var(--ids-button-ai-tertiary-sparkle-icon-color-fill);
544
- background: var(--ids-button-ai-tertiary-color-background-default);
545
- background-clip: text;
546
- align-items: center;
547
- color: var(--ids-button-ai-tertiary-color-text-default);
548
- }
549
- .ids-button.btn-tertiary-generative-ai:hover,
550
- .ids-toggle-button.btn-tertiary-generative-ai:hover,
551
- .ids-menu-button.btn-tertiary-generative-ai:hover {
552
- background: var(--ids-button-ai-tertiary-color-background-hover);
553
- }
554
- .ids-button.btn-tertiary-generative-ai ::slotted(ids-icon[icon=genai]),
555
- .ids-toggle-button.btn-tertiary-generative-ai ::slotted(ids-icon[icon=genai]),
556
- .ids-menu-button.btn-tertiary-generative-ai ::slotted(ids-icon[icon=genai]) {
557
- --ids-button-ai-color-icon-primary: var(--ids-button-ai-tertiary-color-text-default);
558
- --ids-button-ai-color-icon-secondary: var(--ids-button-ai-tertiary-color-text-default);
559
- }
560
- .ids-button.btn-tertiary-generative-ai:active, .ids-button.btn-tertiary-generative-ai.gen-ai-active,
561
- .ids-toggle-button.btn-tertiary-generative-ai:active,
562
- .ids-toggle-button.btn-tertiary-generative-ai.gen-ai-active,
563
- .ids-menu-button.btn-tertiary-generative-ai:active,
564
- .ids-menu-button.btn-tertiary-generative-ai.gen-ai-active {
565
- background: var(--ids-button-ai-tertiary-color-background-active);
566
- }
567
- .ids-button.btn-tertiary-generative-ai[disabled],
568
- .ids-toggle-button.btn-tertiary-generative-ai[disabled],
569
- .ids-menu-button.btn-tertiary-generative-ai[disabled] {
570
- background: var(--ids-button-tertiary-ai-color-background-disabled);
571
- opacity: var(--ids-button-ai-opacity-disabled);
572
- }
573
- .ids-button.btn-tertiary-generative-ai .loading-dots .dot:nth-child(1),
574
- .ids-toggle-button.btn-tertiary-generative-ai .loading-dots .dot:nth-child(1),
575
- .ids-menu-button.btn-tertiary-generative-ai .loading-dots .dot:nth-child(1) {
576
- animation: dot-flashing-colors-tertiary 1s infinite alternate;
577
- animation-delay: 0s;
578
- }
579
- .ids-button.btn-tertiary-generative-ai .loading-dots .dot:nth-child(2),
580
- .ids-toggle-button.btn-tertiary-generative-ai .loading-dots .dot:nth-child(2),
581
- .ids-menu-button.btn-tertiary-generative-ai .loading-dots .dot:nth-child(2) {
582
- animation: dot-flashing-colors-tertiary 1s infinite linear alternate;
583
- animation-delay: 0.5s;
584
- }
585
- .ids-button.btn-tertiary-generative-ai .loading-dots .dot:nth-child(3),
586
- .ids-toggle-button.btn-tertiary-generative-ai .loading-dots .dot:nth-child(3),
587
- .ids-menu-button.btn-tertiary-generative-ai .loading-dots .dot:nth-child(3) {
588
- animation: dot-flashing-colors-tertiary 1s infinite alternate;
589
- animation-delay: 1s;
590
- }
591
- .ids-button.btn-secondary,
592
- .ids-toggle-button.btn-secondary,
593
- .ids-menu-button.btn-secondary {
594
- background-color: var(--ids-button-secondary-color-background-default);
595
- border-width: var(--ids-button-secondary-border-width);
596
- border-color: var(--ids-button-secondary-color-border-default);
597
- color: var(--ids-button-secondary-color-text-default);
598
- }
599
- .ids-button.btn-secondary:not(.hide-focus).is-active, .ids-button.btn-secondary:not(.hide-focus).is-focused, .ids-button.btn-secondary:not(.hide-focus).focus-within, .ids-button.btn-secondary:not(.hide-focus):focus,
600
- .ids-toggle-button.btn-secondary:not(.hide-focus).is-active,
601
- .ids-toggle-button.btn-secondary:not(.hide-focus).is-focused,
602
- .ids-toggle-button.btn-secondary:not(.hide-focus).focus-within,
603
- .ids-toggle-button.btn-secondary:not(.hide-focus):focus,
604
- .ids-menu-button.btn-secondary:not(.hide-focus).is-active,
605
- .ids-menu-button.btn-secondary:not(.hide-focus).is-focused,
606
- .ids-menu-button.btn-secondary:not(.hide-focus).focus-within,
607
- .ids-menu-button.btn-secondary:not(.hide-focus):focus {
608
- background-color: var(--ids-button-secondary-color-background-focus);
609
- border-color: var(--ids-button-secondary-color-border-focus);
610
- }
611
- .ids-button.btn-secondary:hover:not([disabled]),
612
- .ids-toggle-button.btn-secondary:hover:not([disabled]),
613
- .ids-menu-button.btn-secondary:hover:not([disabled]) {
614
- background-color: var(--ids-button-secondary-color-background-hover);
615
- border-color: var(--ids-button-secondary-color-border-hover);
616
- color: var(--ids-button-secondary-color-text-hover);
617
- }
618
- .ids-button.btn-secondary[disabled],
619
- .ids-toggle-button.btn-secondary[disabled],
620
- .ids-menu-button.btn-secondary[disabled] {
621
- background-color: var(--ids-button-secondary-color-background-disabled);
622
- border-color: var(--ids-button-secondary-color-border-disabled);
623
- color: var(--ids-button-secondary-color-text-disabled);
624
- opacity: var(--ids-button-secondary-opacity-disabled);
625
- }
626
- .ids-button.btn-secondary:active:not([disabled]),
627
- .ids-toggle-button.btn-secondary:active:not([disabled]),
628
- .ids-menu-button.btn-secondary:active:not([disabled]) {
629
- background-color: var(--ids-button-secondary-color-background-pressed);
630
- border-color: var(--ids-button-secondary-color-border-pressed);
631
- color: var(--ids-button-secondary-color-text-pressed);
632
- }
633
- .ids-button.color-variant-alternate:hover,
634
- .ids-toggle-button.color-variant-alternate:hover,
635
- .ids-menu-button.color-variant-alternate:hover {
636
- background-color: rgba(0, 0, 0, 0.3);
637
- }
638
- .ids-button.color-variant-alternate.ids-trigger-button:not([readonly]):hover,
639
- .ids-toggle-button.color-variant-alternate.ids-trigger-button:not([readonly]):hover,
640
- .ids-menu-button.color-variant-alternate.ids-trigger-button:not([readonly]):hover {
641
- background-color: var(--ids-search-field-header-color-icon-hover);
642
- }
643
- .ids-button.color-variant-app-menu:hover,
644
- .ids-toggle-button.color-variant-app-menu:hover,
645
- .ids-menu-button.color-variant-app-menu:hover {
646
- background-color: rgba(255, 255, 255, 0.15);
647
- }
648
- .ids-button.color-variant-alternate, .ids-button.color-variant-alternate-formatter,
649
- .ids-toggle-button.color-variant-alternate,
650
- .ids-toggle-button.color-variant-alternate-formatter,
651
- .ids-menu-button.color-variant-alternate,
652
- .ids-menu-button.color-variant-alternate-formatter {
653
- color: var(--ids-button-alternate-color-text-default);
654
- opacity: 0.8;
655
- }
656
- .ids-button.color-variant-alternate:not(.hide-focus).is-active, .ids-button.color-variant-alternate:not(.hide-focus).is-focused, .ids-button.color-variant-alternate:not(.hide-focus).focus-within, .ids-button.color-variant-alternate:not(.hide-focus):focus, .ids-button.color-variant-alternate-formatter:not(.hide-focus).is-active, .ids-button.color-variant-alternate-formatter:not(.hide-focus).is-focused, .ids-button.color-variant-alternate-formatter:not(.hide-focus).focus-within, .ids-button.color-variant-alternate-formatter:not(.hide-focus):focus,
657
- .ids-toggle-button.color-variant-alternate:not(.hide-focus).is-active,
658
- .ids-toggle-button.color-variant-alternate:not(.hide-focus).is-focused,
659
- .ids-toggle-button.color-variant-alternate:not(.hide-focus).focus-within,
660
- .ids-toggle-button.color-variant-alternate:not(.hide-focus):focus,
661
- .ids-toggle-button.color-variant-alternate-formatter:not(.hide-focus).is-active,
662
- .ids-toggle-button.color-variant-alternate-formatter:not(.hide-focus).is-focused,
663
- .ids-toggle-button.color-variant-alternate-formatter:not(.hide-focus).focus-within,
664
- .ids-toggle-button.color-variant-alternate-formatter:not(.hide-focus):focus,
665
- .ids-menu-button.color-variant-alternate:not(.hide-focus).is-active,
666
- .ids-menu-button.color-variant-alternate:not(.hide-focus).is-focused,
667
- .ids-menu-button.color-variant-alternate:not(.hide-focus).focus-within,
668
- .ids-menu-button.color-variant-alternate:not(.hide-focus):focus,
669
- .ids-menu-button.color-variant-alternate-formatter:not(.hide-focus).is-active,
670
- .ids-menu-button.color-variant-alternate-formatter:not(.hide-focus).is-focused,
671
- .ids-menu-button.color-variant-alternate-formatter:not(.hide-focus).focus-within,
672
- .ids-menu-button.color-variant-alternate-formatter:not(.hide-focus):focus {
673
- border-color: var(--ids-button-formatter-color-border-focus);
674
- opacity: 1;
675
- }
676
- .ids-button.color-variant-alternate:hover, .ids-button.color-variant-alternate-formatter:hover,
677
- .ids-toggle-button.color-variant-alternate:hover,
678
- .ids-toggle-button.color-variant-alternate-formatter:hover,
679
- .ids-menu-button.color-variant-alternate:hover,
680
- .ids-menu-button.color-variant-alternate-formatter:hover {
681
- background-color: var(--ids-button-formatter-color-background-hover);
682
- border-color: var(--ids-color-transparent);
683
- color: var(--ids-button-formatter-color-text-hover);
684
- opacity: 1;
685
- }
686
- .ids-button.color-variant-alternate[disabled], .ids-button.color-variant-alternate-formatter[disabled],
687
- .ids-toggle-button.color-variant-alternate[disabled],
688
- .ids-toggle-button.color-variant-alternate-formatter[disabled],
689
- .ids-menu-button.color-variant-alternate[disabled],
690
- .ids-menu-button.color-variant-alternate-formatter[disabled] {
691
- background-color: var(--ids-color-transparent);
692
- opacity: var(--ids-button-formatter-opacity-disabled);
693
- }
694
- .ids-button.color-variant-alternate-formatter,
695
- .ids-toggle-button.color-variant-alternate-formatter,
696
- .ids-menu-button.color-variant-alternate-formatter {
697
- background-color: var(--ids-button-formatter-color-background-default);
698
- border-color: var(--ids-button-formatter-color-border-default);
699
- color: var(--ids-button-formatter-color-text-default);
700
- height: var(--ids-button-formatter-size);
701
- min-width: var(--ids-button-formatter-size);
702
- }
703
- .ids-button.color-variant-alternate-formatter:not(.hide-focus).is-active, .ids-button.color-variant-alternate-formatter:not(.hide-focus).is-focused, .ids-button.color-variant-alternate-formatter:not(.hide-focus).focus-within, .ids-button.color-variant-alternate-formatter:not(.hide-focus):focus,
704
- .ids-toggle-button.color-variant-alternate-formatter:not(.hide-focus).is-active,
705
- .ids-toggle-button.color-variant-alternate-formatter:not(.hide-focus).is-focused,
706
- .ids-toggle-button.color-variant-alternate-formatter:not(.hide-focus).focus-within,
707
- .ids-toggle-button.color-variant-alternate-formatter:not(.hide-focus):focus,
708
- .ids-menu-button.color-variant-alternate-formatter:not(.hide-focus).is-active,
709
- .ids-menu-button.color-variant-alternate-formatter:not(.hide-focus).is-focused,
710
- .ids-menu-button.color-variant-alternate-formatter:not(.hide-focus).focus-within,
711
- .ids-menu-button.color-variant-alternate-formatter:not(.hide-focus):focus {
712
- border-color: var(--ids-color-border-focus);
713
- }
714
- .ids-button.color-variant-alternate-formatter[disabled],
715
- .ids-toggle-button.color-variant-alternate-formatter[disabled],
716
- .ids-menu-button.color-variant-alternate-formatter[disabled] {
717
- color: var(--ids-button-formatter-color-text-disabled);
718
- }
719
- .ids-button.color-variant-alternate-formatter:hover,
720
- .ids-toggle-button.color-variant-alternate-formatter:hover,
721
- .ids-menu-button.color-variant-alternate-formatter:hover {
722
- background-color: var(--ids-button-formatter-color-background-hover);
723
- color: var(--ids-button-formatter-color-text-hover);
724
- }
725
- .ids-button.color-variant-alternate-formatter.is-active,
726
- .ids-toggle-button.color-variant-alternate-formatter.is-active,
727
- .ids-menu-button.color-variant-alternate-formatter.is-active {
728
- color: var(--ids-button-formatter-color-active);
729
- }
730
- .ids-button.color-variant-alternate-formatter.ids-menu-button.compact,
731
- .ids-toggle-button.color-variant-alternate-formatter.ids-menu-button.compact,
732
- .ids-menu-button.color-variant-alternate-formatter.ids-menu-button.compact {
733
- padding: var(--ids-space-2xs);
734
- padding-inline: var(--ids-space-2xs);
735
- }
736
- .ids-button.color-variant-alternate-formatter.ids-menu-button.compact.square,
737
- .ids-toggle-button.color-variant-alternate-formatter.ids-menu-button.compact.square,
738
- .ids-menu-button.color-variant-alternate-formatter.ids-menu-button.compact.square {
739
- border-radius: var(--ids-border-radius-xs);
740
- width: 34px;
741
- }
742
- .ids-button.color-variant-alternate-formatter[editor-action=sourcemode], .ids-button.color-variant-alternate-formatter[editor-action=editormode],
743
- .ids-toggle-button.color-variant-alternate-formatter[editor-action=sourcemode],
744
- .ids-toggle-button.color-variant-alternate-formatter[editor-action=editormode],
745
- .ids-menu-button.color-variant-alternate-formatter[editor-action=sourcemode],
746
- .ids-menu-button.color-variant-alternate-formatter[editor-action=editormode] {
747
- --ids-button-icon-width: 54px;
748
- }
749
- .ids-button.color-variant-module,
750
- .ids-toggle-button.color-variant-module,
751
- .ids-menu-button.color-variant-module {
752
- border: 0;
753
- color: var(--ids-button-module-color-text-default);
754
- }
755
- .ids-button.color-variant-module:not(.square),
756
- .ids-toggle-button.color-variant-module:not(.square),
757
- .ids-menu-button.color-variant-module:not(.square) {
758
- border-radius: var(--ids-button-module-border-radius);
759
- }
760
- .ids-button.color-variant-module:hover,
761
- .ids-toggle-button.color-variant-module:hover,
762
- .ids-menu-button.color-variant-module:hover {
763
- background-color: var(--ids-button-module-color-background-hover);
764
- color: var(--ids-button-module-color-text-hover);
765
- }
766
- .ids-button:not(.no-padding),
767
- .ids-toggle-button:not(.no-padding),
768
- .ids-menu-button:not(.no-padding) {
769
- padding-inline: var(--ids-button-padding-inline);
770
- }
771
- .ids-button.btn-tertiary, .ids-button.btn-tertiary-destructive,
772
- .ids-toggle-button.btn-tertiary,
773
- .ids-toggle-button.btn-tertiary-destructive,
774
- .ids-menu-button.btn-tertiary,
775
- .ids-menu-button.btn-tertiary-destructive {
776
- padding-inline: var(--ids-space-12);
777
- }
778
- .ids-button.no-padding,
779
- .ids-toggle-button.no-padding,
780
- .ids-menu-button.no-padding {
781
- padding-inline: var(--ids-space-12);
782
- }
783
-
784
- .ids-menu-button.sub-tab-button.is-active {
785
- background-color: unset;
786
- }
787
-
788
- .ids-menu-button.is-active,
789
- .ids-menu-button.is-active:hover {
790
- background-color: var(--ids-button-menu-background-color-active);
791
- color: var(--ids-button-menu-color-text-active);
792
- }
793
-
794
- .ids-menu-button.formatter-width:not(.no-padding):not(.ids-icon-button) {
795
- padding-inline-start: calc(var(--ids-space-xs) - 1px);
796
- padding-inline-end: calc(var(--ids-space-xs) - 1px);
797
- }
798
- .ids-menu-button.formatter-width:not(.formatter-width-percentage) {
799
- justify-content: normal;
800
- }
801
- .ids-menu-button.formatter-width:not(.formatter-width-percentage) .ids-icon {
802
- position: absolute;
803
- inset-inline-end: var(--ids-space-2xs);
804
- }
805
-
806
- ::slotted(ids-icon[icon=logo]) {
807
- height: 30px;
808
- opacity: 0.8;
809
- }
810
-
811
- .ids-icon-button {
812
- box-shadow: var(--ids-shadow-none);
813
- font-weight: var(--ids-font-weight-normal);
814
- font-family: var(--ids-font-family-default), var(--ids-font-family-system-sans);
815
- font-size: var(--ids-font-size-sm);
816
- overflow: hidden;
817
- padding-bottom: calc(var(--ids-space-xs) - 2px);
818
- padding-top: calc(var(--ids-space-xs) - 2px);
819
- position: relative;
820
- /* stylelint-disable-next-line no-duplicate-selectors */
821
- }
822
- .ids-icon-button, .ids-icon-button::before, .ids-icon-button::after {
823
- box-sizing: border-box;
824
- }
825
- .ids-icon-button * {
826
- pointer-events: none;
827
- }
828
- .ids-icon-button {
829
- border: 1px solid transparent;
830
- background-color: var(--ids-color-transparent);
831
- color: var(--ids-button-color-text-default);
832
- transition: background-color var(--ids-motion-duration) var(--ids-motion-ease), border-color var(--ids-motion-duration) var(--ids-motion-ease), color var(--ids-motion-duration) var(--ids-motion-ease), opacity var(--ids-motion-duration) var(--ids-motion-ease);
833
- white-space: nowrap;
834
- }
835
- .ids-icon-button:focus {
836
- outline: none;
837
- outline-color: var(--ids-color-transparent);
838
- }
839
- .ids-icon-button:not([disabled]) {
840
- cursor: var(--ids-cursor-pointer);
841
- }
842
- .ids-icon-button span {
843
- vertical-align: bottom;
844
- }
845
- .ids-icon-button span.audible {
846
- clip: rect(0, 0, 0, 0);
847
- height: 0;
848
- line-height: 0;
849
- min-height: 0;
850
- overflow: hidden;
851
- padding: 0;
852
- position: absolute;
853
- width: 1px;
854
- }
855
- .ids-icon-button:not(.color-variant-module-nav):not(.ids-icon-button):not(.align-icon-end):not(.compact) ::slotted(ids-icon:not([icon=genai])) {
856
- margin-inline-end: calc(var(--ids-space-2xs) + 3px);
857
- }
858
- .ids-icon-button .ids-icon {
859
- vertical-align: middle;
860
- }
861
- .ids-icon-button.align-icon-end ::slotted(ids-icon) {
862
- margin-inline-start: var(--ids-space-2xs);
863
- }
864
- .ids-icon-button.content-align-start {
865
- justify-content: start;
866
- }
867
- .ids-icon-button.content-align-end {
868
- justify-content: end;
869
- }
870
- .ids-icon-button.no-margins {
871
- margin-inline: var(--ids-space-none);
872
- }
873
- .ids-icon-button.field-height-xxs:not(.btn-secondary):not(.no-margins) {
874
- margin-block-start: 3px;
875
- margin-inline-end: -2px;
876
- height: 22px;
877
- width: 22px;
878
- }
879
- .ids-icon-button ::slotted(span) {
880
- font-weight: inherit !important;
881
- }
882
- .ids-icon-button {
883
- display: inline-flex;
884
- font-weight: var(--ids-button-tertiary-font-weight);
885
- border-radius: var(--ids-button-radius);
886
- background-color: var(--ids-button-tertiary-color-background-default);
887
- border-color: var(--ids-button-tertiary-color-border-default);
888
- color: var(--ids-button-tertiary-color-text-default);
889
- }
890
- .ids-icon-button:not(.hide-focus).is-active:not([readonly]), .ids-icon-button:not(.hide-focus).is-focused:not([readonly]), .ids-icon-button:not(.hide-focus):focus:not([readonly]), .ids-icon-button:not(.hide-focus):focus-within:not([readonly]) {
891
- border-color: var(--ids-button-tertiary-color-border-focus);
892
- }
893
- .ids-icon-button:hover {
894
- color: var(--ids-button-tertiary-color-text-hover);
895
- background-color: var(--ids-button-tertiary-color-background-hover);
896
- border-color: var(--ids-button-tertiary-color-border-hover);
897
- }
898
- .ids-icon-button[disabled] {
899
- color: var(--ids-button-tertiary-color-text-disabled);
900
- background-color: var(--ids-button-tertiary-color-background-disabled);
901
- border-color: var(--ids-button-tertiary-color-border-disabled);
902
- opacity: var(--ids-button-tertiary-opacity-disabled);
903
- }
904
- .ids-icon-button:active:not([disabled]) {
905
- background-color: var(--ids-button-tertiary-color-background-pressed);
906
- border-color: var(--ids-button-tertiary-color-border-pressed);
907
- color: var(--ids-button-tertiary-color-text-pressed);
908
- }
909
- .ids-icon-button.btn-tertiary-destructive {
910
- background-color: var(--ids-button-destructive-tertiary-color-background-default);
911
- border-color: var(--ids-button-destructive-tertiary-color-border-default);
912
- color: var(--ids-button-destructive-tertiary-color-text-default);
913
- }
914
- .ids-icon-button.btn-tertiary-destructive:not(.hide-focus).is-active, .ids-icon-button.btn-tertiary-destructive:not(.hide-focus).is-focused, .ids-icon-button.btn-tertiary-destructive:not(.hide-focus).focus-within, .ids-icon-button.btn-tertiary-destructive:not(.hide-focus):focus {
915
- border-color: var(--ids-button-destructive-tertiary-color-border-focus);
916
- }
917
- .ids-icon-button.btn-tertiary-destructive:hover {
918
- background-color: var(--ids-button-destructive-tertiary-color-background-hover);
919
- border-color: var(--ids-button-destructive-tertiary-color-border-hover);
920
- color: var(--ids-button-destructive-tertiary-color-text-hover);
921
- }
922
- .ids-icon-button.btn-tertiary-destructive[disabled] {
923
- color: var(--ids-button-destructive-tertiary-color-text-disabled);
924
- background-color: var(--ids-button-destructive-tertiary-color-background-disabled);
925
- border-color: var(--ids-button-destructive-tertiary-color-border-disabled);
926
- }
927
- .ids-icon-button.btn-primary {
928
- background-color: var(--ids-button-primary-color-background-default);
929
- border-color: var(--ids-button-primary-color-border-default);
930
- border: 1px solid var(--ids-button-primary-color-border-default);
931
- color: var(--ids-button-primary-color-text-default);
932
- padding-bottom: calc(var(--ids-space-xs) - 2px);
933
- padding-top: calc(var(--ids-space-xs) - 2px);
934
- }
935
- .ids-icon-button.btn-primary:not(.hide-focus).is-active, .ids-icon-button.btn-primary:not(.hide-focus).is-focused, .ids-icon-button.btn-primary:not(.hide-focus).focus-within, .ids-icon-button.btn-primary:not(.hide-focus):focus {
936
- border-color: var(--ids-button-primary-color-border-focus);
937
- }
938
- .ids-icon-button.btn-primary:hover {
939
- background-color: var(--ids-button-primary-color-background-hover);
940
- border-color: var(--ids-button-primary-color-border-hover);
941
- }
942
- .ids-icon-button.btn-primary[disabled] {
943
- background-color: var(--ids-button-primary-color-background-disabled);
944
- border-color: var(--ids-button-primary-color-border-disabled);
945
- color: var(--ids-button-primary-color-text-disabled);
946
- opacity: var(--ids-button-primary-opacity-disabled);
947
- }
948
- .ids-icon-button.btn-primary:active:not([disabled]) {
949
- background-color: var(--ids-button-primary-color-background-pressed);
950
- border-color: var(--ids-button-primary-color-border-pressed);
951
- color: var(--ids-button-primary-color-text-pressed);
952
- }
953
- .ids-icon-button.btn-primary-destructive {
954
- background-color: var(--ids-button-destructive-color-background-default);
955
- border-color: var(--ids-button-destructive-color-border-default);
956
- color: var(--ids-button-destructive-color-text-default);
957
- }
958
- .ids-icon-button.btn-primary-destructive:not(.hide-focus).is-active, .ids-icon-button.btn-primary-destructive:not(.hide-focus).is-focused, .ids-icon-button.btn-primary-destructive:not(.hide-focus).focus-within, .ids-icon-button.btn-primary-destructive:not(.hide-focus):focus {
959
- border-color: var(--ids-button-destructive-color-border-focus);
960
- }
961
- .ids-icon-button.btn-primary-destructive:hover {
962
- background-color: var(--ids-button-destructive-color-background-hover);
963
- border-color: var(--ids-button-destructive-color-border-hover);
964
- color: var(--ids-button-destructive-color-text-hover);
965
- }
966
- .ids-icon-button.btn-primary-destructive[disabled] {
967
- background-color: var(--ids-button-destructive-color-background-disabled);
968
- border-color: var(--ids-button-destructive-color-border-disabled);
969
- color: var(--ids-button-destructive-color-text-disabled);
970
- opacity: var(--ids-button-destructive-opacity-disabled);
971
- }
972
- @keyframes dot-flashing {
973
- 0% {
974
- background-color: var(--ids-button-ai-color-loading-dot-primary-step-1);
975
- }
976
- 50%, 100% {
977
- background-color: var(--ids-button-ai-color-loading-dot-primary-step-2);
978
- }
979
- }
980
- @keyframes dot-flashing-colors-secondary {
981
- 0% {
982
- background-color: var(--ids-button-ai-color-loading-dot-secondary-step-1);
983
- }
984
- 50%, 100% {
985
- background-color: var(--ids-button-ai-color-loading-dot-secondary-step-2);
986
- }
987
- }
988
- @keyframes dot-flashing-colors-tertiary {
989
- 0% {
990
- background-color: var(--ids-button-ai-color-loading-dot-tertiary-step-1);
991
- }
992
- 50%, 100% {
993
- background-color: var(--ids-button-ai-color-loading-dot-tertiary-step-2);
994
- }
995
- }
996
- .ids-icon-button .loading-dots-start {
997
- padding-inline-start: 3px !important;
998
- padding-inline-end: 7px !important;
999
- gap: 2px;
1000
- }
1001
- .ids-icon-button .loading-dots {
1002
- display: none;
1003
- position: relative;
1004
- flex-direction: row;
1005
- gap: 2px;
1006
- padding-inline-start: 7px;
1007
- padding-inline-end: 3px;
1008
- }
1009
- .ids-icon-button .loading-dots .dot {
1010
- display: inline-flex;
1011
- position: relative;
1012
- width: 3px;
1013
- height: 3px;
1014
- border-radius: 5px;
1015
- background-color: var(--ids-button-ai-color-loading-dot-default);
1016
- color: var(--ids-button-ai-color-loading-dot-default);
1017
- }
1018
- .ids-icon-button.btn-primary-generative-ai {
1019
- --ids-button-ai-sparkle-icon-color-fill: var(--ids-button-ai-primary-sparkle-icon-color-fill);
1020
- background: border-box var(--ids-button-ai-color-background-default);
1021
- border: none;
1022
- color: var(--ids-button-ai-color-text-default);
1023
- align-items: center;
1024
- min-width: 34px;
1025
- min-height: 34px;
1026
- }
1027
- .ids-icon-button.btn-primary-generative-ai.compact {
1028
- min-width: var(--ids-button-compact-width);
1029
- min-height: var(--ids-button-compact-width);
1030
- }
1031
- .ids-icon-button.btn-primary-generative-ai:hover {
1032
- background: border-box var(--ids-button-ai-color-background-hover);
1033
- }
1034
- .ids-icon-button.btn-primary-generative-ai:active, .ids-icon-button.btn-primary-generative-ai.gen-ai-active {
1035
- background: border-box var(--ids-button-ai-color-background-active);
1036
- color: var(--ids-button-ai-color-text-active);
1037
- }
1038
- .ids-icon-button.btn-primary-generative-ai[disabled] {
1039
- background: border-box var(--ids-button-ai-color-background-disabled);
1040
- }
1041
- .ids-icon-button.btn-primary-generative-ai.color-variant-alternate-formatter, .ids-icon-button.btn-primary-generative-ai.color-variant-alternate-formatter:hover {
1042
- color: var(--ids-color-white-100);
1043
- min-height: var(--ids-button-formatter-size);
1044
- min-width: 34px;
1045
- }
1046
- .ids-icon-button.btn-primary-generative-ai .loading-dots .dot:nth-child(1) {
1047
- animation: dot-flashing 1s infinite alternate;
1048
- animation-delay: 0s;
1049
- }
1050
- .ids-icon-button.btn-primary-generative-ai .loading-dots .dot:nth-child(2) {
1051
- animation: dot-flashing 1s infinite linear alternate;
1052
- animation-delay: 0.5s;
1053
- }
1054
- .ids-icon-button.btn-primary-generative-ai .loading-dots .dot:nth-child(3) {
1055
- animation: dot-flashing 1s infinite alternate;
1056
- animation-delay: 1s;
1057
- }
1058
- .ids-icon-button.btn-secondary-generative-ai {
1059
- --ids-button-ai-sparkle-icon-color-fill: var(--ids-button-ai-secondary-sparkle-icon-color-fill);
1060
- background: var(--ids-button-ai-secondary-color-background-default);
1061
- border: 1px solid var(--ids-button-ai-secondary-color-border-default);
1062
- color: var(--ids-button-ai-secondary-color-default);
1063
- align-items: center;
1064
- }
1065
- .ids-icon-button.btn-secondary-generative-ai:hover:not([disabled]) {
1066
- background: var(--ids-button-ai-secondary-color-background-hover);
1067
- color: var(--ids-button-ai-secondary-color-hover);
1068
- border-color: var(--ids-button-ai-secondary-color-border-hover);
1069
- }
1070
- .ids-icon-button.btn-secondary-generative-ai:active:not([disabled]) {
1071
- background: var(--ids-button-ai-secondary-color-background-active);
1072
- color: var(--ids-button-ai-secondary-color-active);
1073
- border-color: var(--ids-button-ai-secondary-color-border-active);
1074
- }
1075
- .ids-icon-button.btn-secondary-generative-ai ::slotted(ids-icon[icon=genai]) {
1076
- --ids-button-ai-color-icon-primary: var(--ids-button-ai-color-icon-primary-hover);
1077
- --ids-button-ai-color-icon-secondary: var(--ids-button-ai-color-icon-secondary-hover);
1078
- }
1079
- .ids-icon-button.btn-secondary-generative-ai.gen-ai-active {
1080
- background: var(--ids-button-ai-secondary-color-background-active);
1081
- }
1082
- .ids-icon-button.btn-secondary-generative-ai[disabled] {
1083
- opacity: var(--ids-button-ai-opacity-disabled);
1084
- }
1085
- .ids-icon-button.btn-secondary-generative-ai .loading-dots .dot {
1086
- background-color: var(--ids-button-ai-color-loading-dot-secondary);
1087
- color: var(--ids-button-ai-color-loading-dot-secondary);
1088
- }
1089
- .ids-icon-button.btn-secondary-generative-ai .loading-dots .dot:nth-child(1) {
1090
- animation: dot-flashing-colors-secondary 1s infinite alternate;
1091
- animation-delay: 0s;
1092
- }
1093
- .ids-icon-button.btn-secondary-generative-ai .loading-dots .dot:nth-child(2) {
1094
- animation: dot-flashing-colors-secondary 1s infinite linear alternate;
1095
- animation-delay: 0.5s;
1096
- }
1097
- .ids-icon-button.btn-secondary-generative-ai .loading-dots .dot:nth-child(3) {
1098
- animation: dot-flashing-colors-secondary 1s infinite alternate;
1099
- animation-delay: 1s;
1100
- }
1101
- .ids-icon-button.btn-tertiary-generative-ai {
1102
- --ids-button-tertiary-ai-shadow-focus: var(--ids-button-tertiary-shadow-focus);
1103
- --ids-button-ai-color-icon-secondary-hover: var(--ids-color-action-stronger);
1104
- --ids-button-ai-sparkle-icon-color-fill: var(--ids-button-ai-tertiary-sparkle-icon-color-fill);
1105
- background: var(--ids-button-ai-tertiary-color-background-default);
1106
- background-clip: text;
1107
- align-items: center;
1108
- color: var(--ids-button-ai-tertiary-color-text-default);
1109
- }
1110
- .ids-icon-button.btn-tertiary-generative-ai:hover {
1111
- background: var(--ids-button-ai-tertiary-color-background-hover);
1112
- }
1113
- .ids-icon-button.btn-tertiary-generative-ai ::slotted(ids-icon[icon=genai]) {
1114
- --ids-button-ai-color-icon-primary: var(--ids-button-ai-tertiary-color-text-default);
1115
- --ids-button-ai-color-icon-secondary: var(--ids-button-ai-tertiary-color-text-default);
1116
- }
1117
- .ids-icon-button.btn-tertiary-generative-ai:active, .ids-icon-button.btn-tertiary-generative-ai.gen-ai-active {
1118
- background: var(--ids-button-ai-tertiary-color-background-active);
1119
- }
1120
- .ids-icon-button.btn-tertiary-generative-ai[disabled] {
1121
- background: var(--ids-button-tertiary-ai-color-background-disabled);
1122
- opacity: var(--ids-button-ai-opacity-disabled);
1123
- }
1124
- .ids-icon-button.btn-tertiary-generative-ai .loading-dots .dot:nth-child(1) {
1125
- animation: dot-flashing-colors-tertiary 1s infinite alternate;
1126
- animation-delay: 0s;
1127
- }
1128
- .ids-icon-button.btn-tertiary-generative-ai .loading-dots .dot:nth-child(2) {
1129
- animation: dot-flashing-colors-tertiary 1s infinite linear alternate;
1130
- animation-delay: 0.5s;
1131
- }
1132
- .ids-icon-button.btn-tertiary-generative-ai .loading-dots .dot:nth-child(3) {
1133
- animation: dot-flashing-colors-tertiary 1s infinite alternate;
1134
- animation-delay: 1s;
1135
- }
1136
- .ids-icon-button.btn-secondary {
1137
- background-color: var(--ids-button-secondary-color-background-default);
1138
- border-width: var(--ids-button-secondary-border-width);
1139
- border-color: var(--ids-button-secondary-color-border-default);
1140
- color: var(--ids-button-secondary-color-text-default);
1141
- }
1142
- .ids-icon-button.btn-secondary:not(.hide-focus).is-active, .ids-icon-button.btn-secondary:not(.hide-focus).is-focused, .ids-icon-button.btn-secondary:not(.hide-focus).focus-within, .ids-icon-button.btn-secondary:not(.hide-focus):focus {
1143
- background-color: var(--ids-button-secondary-color-background-focus);
1144
- border-color: var(--ids-button-secondary-color-border-focus);
1145
- }
1146
- .ids-icon-button.btn-secondary:hover:not([disabled]) {
1147
- background-color: var(--ids-button-secondary-color-background-hover);
1148
- border-color: var(--ids-button-secondary-color-border-hover);
1149
- color: var(--ids-button-secondary-color-text-hover);
1150
- }
1151
- .ids-icon-button.btn-secondary[disabled] {
1152
- background-color: var(--ids-button-secondary-color-background-disabled);
1153
- border-color: var(--ids-button-secondary-color-border-disabled);
1154
- color: var(--ids-button-secondary-color-text-disabled);
1155
- opacity: var(--ids-button-secondary-opacity-disabled);
1156
- }
1157
- .ids-icon-button.btn-secondary:active:not([disabled]) {
1158
- background-color: var(--ids-button-secondary-color-background-pressed);
1159
- border-color: var(--ids-button-secondary-color-border-pressed);
1160
- color: var(--ids-button-secondary-color-text-pressed);
1161
- }
1162
- .ids-icon-button.color-variant-alternate:hover {
1163
- background-color: rgba(0, 0, 0, 0.3);
1164
- }
1165
- .ids-icon-button.color-variant-alternate.ids-trigger-button:not([readonly]):hover {
1166
- background-color: var(--ids-search-field-header-color-icon-hover);
1167
- }
1168
- .ids-icon-button.color-variant-app-menu:hover {
1169
- background-color: rgba(255, 255, 255, 0.15);
1170
- }
1171
- .ids-icon-button.color-variant-alternate, .ids-icon-button.color-variant-alternate-formatter {
1172
- color: var(--ids-button-alternate-color-text-default);
1173
- opacity: 0.8;
1174
- }
1175
- .ids-icon-button.color-variant-alternate:not(.hide-focus).is-active, .ids-icon-button.color-variant-alternate:not(.hide-focus).is-focused, .ids-icon-button.color-variant-alternate:not(.hide-focus).focus-within, .ids-icon-button.color-variant-alternate:not(.hide-focus):focus, .ids-icon-button.color-variant-alternate-formatter:not(.hide-focus).is-active, .ids-icon-button.color-variant-alternate-formatter:not(.hide-focus).is-focused, .ids-icon-button.color-variant-alternate-formatter:not(.hide-focus).focus-within, .ids-icon-button.color-variant-alternate-formatter:not(.hide-focus):focus {
1176
- border-color: var(--ids-button-formatter-color-border-focus);
1177
- opacity: 1;
1178
- }
1179
- .ids-icon-button.color-variant-alternate:hover, .ids-icon-button.color-variant-alternate-formatter:hover {
1180
- background-color: var(--ids-button-formatter-color-background-hover);
1181
- border-color: var(--ids-color-transparent);
1182
- color: var(--ids-button-formatter-color-text-hover);
1183
- opacity: 1;
1184
- }
1185
- .ids-icon-button.color-variant-alternate[disabled], .ids-icon-button.color-variant-alternate-formatter[disabled] {
1186
- background-color: var(--ids-color-transparent);
1187
- opacity: var(--ids-button-formatter-opacity-disabled);
1188
- }
1189
- .ids-icon-button.color-variant-alternate-formatter {
1190
- background-color: var(--ids-button-formatter-color-background-default);
1191
- border-color: var(--ids-button-formatter-color-border-default);
1192
- color: var(--ids-button-formatter-color-text-default);
1193
- height: var(--ids-button-formatter-size);
1194
- min-width: var(--ids-button-formatter-size);
1195
- }
1196
- .ids-icon-button.color-variant-alternate-formatter:not(.hide-focus).is-active, .ids-icon-button.color-variant-alternate-formatter:not(.hide-focus).is-focused, .ids-icon-button.color-variant-alternate-formatter:not(.hide-focus).focus-within, .ids-icon-button.color-variant-alternate-formatter:not(.hide-focus):focus {
1197
- border-color: var(--ids-color-border-focus);
1198
- }
1199
- .ids-icon-button.color-variant-alternate-formatter[disabled] {
1200
- color: var(--ids-button-formatter-color-text-disabled);
1201
- }
1202
- .ids-icon-button.color-variant-alternate-formatter:hover {
1203
- background-color: var(--ids-button-formatter-color-background-hover);
1204
- color: var(--ids-button-formatter-color-text-hover);
1205
- }
1206
- .ids-icon-button.color-variant-alternate-formatter.is-active {
1207
- color: var(--ids-button-formatter-color-active);
1208
- }
1209
- .ids-icon-button.color-variant-alternate-formatter.ids-menu-button.compact {
1210
- padding: var(--ids-space-2xs);
1211
- padding-inline: var(--ids-space-2xs);
1212
- }
1213
- .ids-icon-button.color-variant-alternate-formatter.ids-menu-button.compact.square {
1214
- border-radius: var(--ids-border-radius-xs);
1215
- width: 34px;
1216
- }
1217
- .ids-icon-button.color-variant-alternate-formatter[editor-action=sourcemode], .ids-icon-button.color-variant-alternate-formatter[editor-action=editormode] {
1218
- --ids-button-icon-width: 54px;
1219
- }
1220
- .ids-icon-button.color-variant-module {
1221
- border: 0;
1222
- color: var(--ids-button-module-color-text-default);
1223
- }
1224
- .ids-icon-button.color-variant-module:not(.square) {
1225
- border-radius: var(--ids-button-module-border-radius);
1226
- }
1227
- .ids-icon-button.color-variant-module:hover {
1228
- background-color: var(--ids-button-module-color-background-hover);
1229
- color: var(--ids-button-module-color-text-hover);
1230
- }
1231
- .ids-icon-button {
1232
- padding-inline-start: var(--ids-button-icon-padding);
1233
- padding-inline-end: var(--ids-button-icon-padding);
1234
- padding-block-start: var(--ids-button-icon-padding);
1235
- padding-block-end: var(--ids-button-icon-padding);
1236
- }
1237
- .ids-icon-button:not(.no-padding):not(.sub-tab-button) {
1238
- padding-inline-start: var(--ids-button-icon-padding);
1239
- padding-inline-end: var(--ids-button-icon-padding);
1240
- padding-top: var(--ids-button-icon-padding);
1241
- padding-bottom: var(--ids-button-icon-padding);
1242
- }
1243
- .ids-icon-button:not(.no-padding):not(.sub-tab-button):not(.ids-trigger-button), .ids-icon-button:not(.no-padding):not(.sub-tab-button):not(.compact) .ids-icon-button:not(.no-padding):not(.sub-tab-button):not(.ids-sub-tab-close-button) {
1244
- height: var(--ids-button-icon-height);
1245
- width: var(--ids-button-icon-width);
1246
- }
1247
- .ids-icon-button.sub-tab-button {
1248
- padding: 0;
1249
- }
1250
- .ids-icon-button:not(.no-padding):not(.ids-trigger-button).compact {
1251
- height: calc(var(--ids-button-icon-compact-height) + 10px);
1252
- width: calc(var(--ids-button-icon-compact-width) + 8px);
1253
- }
1254
- .ids-icon-button.compact {
1255
- padding-inline-start: calc(var(--ids-space-xs) + 1px);
1256
- }
1257
- .ids-icon-button.compact.gen-ai-active .loading-dots {
1258
- padding-inline-start: 1px;
1259
- }
1260
- .ids-icon-button:not(.square) {
1261
- border-radius: var(--ids-button-radius);
1262
- }
1263
- .ids-icon-button.square {
1264
- border-radius: var(--ids-border-radius-none);
1265
- }
1266
- .ids-icon-button.square:hover ::slotted(ids-icon[icon=logo]) {
1267
- opacity: 1;
1268
- }
1269
- .ids-icon-button .ids-icon:not(.dropdown-icon) {
1270
- display: block;
1271
- padding-inline-start: var(--ids-space-3xs);
1272
- font-size: 0;
1273
- padding-block-start: var(--ids-space-3xs);
1274
- }
1275
- .ids-icon-button span.audible {
1276
- clip: rect(0, 0, 0, 0);
1277
- height: 0;
1278
- line-height: 0;
1279
- min-height: 0;
1280
- overflow: hidden;
1281
- padding: 0;
1282
- position: absolute;
1283
- width: 1px;
1284
- }
1285
- .ids-icon-button.no-margins {
1286
- margin-inline-start: var(--ids-space-none);
1287
- margin-inline-end: var(--ids-space-none);
1288
- }
1289
-
1290
- :host([field-height]) .ids-menu-button.field-height-lg {
1291
- height: var(--ids-button-menu-field-height-lg);
1292
- }
1293
- :host([field-height]) .ids-menu-button.field-height-md {
1294
- height: var(--ids-button-menu-field-height-md);
1295
- }
1296
- :host([field-height]) .ids-menu-button.field-height-sm {
1297
- height: var(--ids-button-menu-field-height-sm);
1298
- }
1299
- :host([field-height]) .ids-menu-button.field-height-xs {
1300
- height: var(--ids-button-menu-field-height-xs);
1301
- }
1302
-
1303
- .ids-button:not(.btn-primary):not(.btn-secondary):not(.btn-primary-destructive):not(.btn-tertiary-destructive):not(.btn-primary-generative-ai):not(.btn-secondary-generative-ai):not(.btn-tertiary-generative-ai):not(.hide-focus).is-active:not([readonly]), .ids-button:not(.btn-primary):not(.btn-secondary):not(.btn-primary-destructive):not(.btn-tertiary-destructive):not(.btn-primary-generative-ai):not(.btn-secondary-generative-ai):not(.btn-tertiary-generative-ai):not(.hide-focus).is-focused:not([readonly]), .ids-button:not(.btn-primary):not(.btn-secondary):not(.btn-primary-destructive):not(.btn-tertiary-destructive):not(.btn-primary-generative-ai):not(.btn-secondary-generative-ai):not(.btn-tertiary-generative-ai):not(.hide-focus).focus-within:not([readonly]), .ids-button:not(.btn-primary):not(.btn-secondary):not(.btn-primary-destructive):not(.btn-tertiary-destructive):not(.btn-primary-generative-ai):not(.btn-secondary-generative-ai):not(.btn-tertiary-generative-ai):not(.hide-focus):focus:not([readonly]),
1304
- .ids-icon-button:not(.btn-primary):not(.btn-secondary):not(.btn-primary-destructive):not(.btn-tertiary-destructive):not(.btn-primary-generative-ai):not(.btn-secondary-generative-ai):not(.btn-tertiary-generative-ai):not(.hide-focus).is-active:not([readonly]),
1305
- .ids-icon-button:not(.btn-primary):not(.btn-secondary):not(.btn-primary-destructive):not(.btn-tertiary-destructive):not(.btn-primary-generative-ai):not(.btn-secondary-generative-ai):not(.btn-tertiary-generative-ai):not(.hide-focus).is-focused:not([readonly]),
1306
- .ids-icon-button:not(.btn-primary):not(.btn-secondary):not(.btn-primary-destructive):not(.btn-tertiary-destructive):not(.btn-primary-generative-ai):not(.btn-secondary-generative-ai):not(.btn-tertiary-generative-ai):not(.hide-focus).focus-within:not([readonly]),
1307
- .ids-icon-button:not(.btn-primary):not(.btn-secondary):not(.btn-primary-destructive):not(.btn-tertiary-destructive):not(.btn-primary-generative-ai):not(.btn-secondary-generative-ai):not(.btn-tertiary-generative-ai):not(.hide-focus):focus:not([readonly]),
1308
- .ids-menu-button:not(.btn-primary):not(.btn-secondary):not(.btn-primary-destructive):not(.btn-tertiary-destructive):not(.btn-primary-generative-ai):not(.btn-secondary-generative-ai):not(.btn-tertiary-generative-ai):not(.hide-focus).is-active:not([readonly]),
1309
- .ids-menu-button:not(.btn-primary):not(.btn-secondary):not(.btn-primary-destructive):not(.btn-tertiary-destructive):not(.btn-primary-generative-ai):not(.btn-secondary-generative-ai):not(.btn-tertiary-generative-ai):not(.hide-focus).is-focused:not([readonly]),
1310
- .ids-menu-button:not(.btn-primary):not(.btn-secondary):not(.btn-primary-destructive):not(.btn-tertiary-destructive):not(.btn-primary-generative-ai):not(.btn-secondary-generative-ai):not(.btn-tertiary-generative-ai):not(.hide-focus).focus-within:not([readonly]),
1311
- .ids-menu-button:not(.btn-primary):not(.btn-secondary):not(.btn-primary-destructive):not(.btn-tertiary-destructive):not(.btn-primary-generative-ai):not(.btn-secondary-generative-ai):not(.btn-tertiary-generative-ai):not(.hide-focus):focus:not([readonly]) {
1312
- box-shadow: var(--ids-button-tertiary-shadow-focus);
1313
- }
1314
- .ids-button:not(.btn-primary):not(.btn-secondary):not(.btn-primary-destructive):not(.btn-tertiary-destructive):not(.btn-primary-generative-ai):not(.btn-secondary-generative-ai):not(.btn-tertiary-generative-ai).color-variant-alternate:not(.hide-focus).is-active, .ids-button:not(.btn-primary):not(.btn-secondary):not(.btn-primary-destructive):not(.btn-tertiary-destructive):not(.btn-primary-generative-ai):not(.btn-secondary-generative-ai):not(.btn-tertiary-generative-ai).color-variant-alternate:not(.hide-focus).is-focused, .ids-button:not(.btn-primary):not(.btn-secondary):not(.btn-primary-destructive):not(.btn-tertiary-destructive):not(.btn-primary-generative-ai):not(.btn-secondary-generative-ai):not(.btn-tertiary-generative-ai).color-variant-alternate:not(.hide-focus).focus-within, .ids-button:not(.btn-primary):not(.btn-secondary):not(.btn-primary-destructive):not(.btn-tertiary-destructive):not(.btn-primary-generative-ai):not(.btn-secondary-generative-ai):not(.btn-tertiary-generative-ai).color-variant-alternate:not(.hide-focus):focus,
1315
- .ids-icon-button:not(.btn-primary):not(.btn-secondary):not(.btn-primary-destructive):not(.btn-tertiary-destructive):not(.btn-primary-generative-ai):not(.btn-secondary-generative-ai):not(.btn-tertiary-generative-ai).color-variant-alternate:not(.hide-focus).is-active,
1316
- .ids-icon-button:not(.btn-primary):not(.btn-secondary):not(.btn-primary-destructive):not(.btn-tertiary-destructive):not(.btn-primary-generative-ai):not(.btn-secondary-generative-ai):not(.btn-tertiary-generative-ai).color-variant-alternate:not(.hide-focus).is-focused,
1317
- .ids-icon-button:not(.btn-primary):not(.btn-secondary):not(.btn-primary-destructive):not(.btn-tertiary-destructive):not(.btn-primary-generative-ai):not(.btn-secondary-generative-ai):not(.btn-tertiary-generative-ai).color-variant-alternate:not(.hide-focus).focus-within,
1318
- .ids-icon-button:not(.btn-primary):not(.btn-secondary):not(.btn-primary-destructive):not(.btn-tertiary-destructive):not(.btn-primary-generative-ai):not(.btn-secondary-generative-ai):not(.btn-tertiary-generative-ai).color-variant-alternate:not(.hide-focus):focus,
1319
- .ids-menu-button:not(.btn-primary):not(.btn-secondary):not(.btn-primary-destructive):not(.btn-tertiary-destructive):not(.btn-primary-generative-ai):not(.btn-secondary-generative-ai):not(.btn-tertiary-generative-ai).color-variant-alternate:not(.hide-focus).is-active,
1320
- .ids-menu-button:not(.btn-primary):not(.btn-secondary):not(.btn-primary-destructive):not(.btn-tertiary-destructive):not(.btn-primary-generative-ai):not(.btn-secondary-generative-ai):not(.btn-tertiary-generative-ai).color-variant-alternate:not(.hide-focus).is-focused,
1321
- .ids-menu-button:not(.btn-primary):not(.btn-secondary):not(.btn-primary-destructive):not(.btn-tertiary-destructive):not(.btn-primary-generative-ai):not(.btn-secondary-generative-ai):not(.btn-tertiary-generative-ai).color-variant-alternate:not(.hide-focus).focus-within,
1322
- .ids-menu-button:not(.btn-primary):not(.btn-secondary):not(.btn-primary-destructive):not(.btn-tertiary-destructive):not(.btn-primary-generative-ai):not(.btn-secondary-generative-ai):not(.btn-tertiary-generative-ai).color-variant-alternate:not(.hide-focus):focus {
1323
- box-shadow: var(--ids-box-shadow-inverse);
1324
- }
1325
- .ids-button:not(.btn-primary):not(.btn-secondary):not(.btn-primary-destructive):not(.btn-tertiary-destructive):not(.btn-primary-generative-ai):not(.btn-secondary-generative-ai):not(.btn-tertiary-generative-ai).color-variant-alternate-formatter:not(.hide-focus).is-active, .ids-button:not(.btn-primary):not(.btn-secondary):not(.btn-primary-destructive):not(.btn-tertiary-destructive):not(.btn-primary-generative-ai):not(.btn-secondary-generative-ai):not(.btn-tertiary-generative-ai).color-variant-alternate-formatter:not(.hide-focus).is-focused, .ids-button:not(.btn-primary):not(.btn-secondary):not(.btn-primary-destructive):not(.btn-tertiary-destructive):not(.btn-primary-generative-ai):not(.btn-secondary-generative-ai):not(.btn-tertiary-generative-ai).color-variant-alternate-formatter:not(.hide-focus).focus-within, .ids-button:not(.btn-primary):not(.btn-secondary):not(.btn-primary-destructive):not(.btn-tertiary-destructive):not(.btn-primary-generative-ai):not(.btn-secondary-generative-ai):not(.btn-tertiary-generative-ai).color-variant-alternate-formatter:not(.hide-focus):focus,
1326
- .ids-icon-button:not(.btn-primary):not(.btn-secondary):not(.btn-primary-destructive):not(.btn-tertiary-destructive):not(.btn-primary-generative-ai):not(.btn-secondary-generative-ai):not(.btn-tertiary-generative-ai).color-variant-alternate-formatter:not(.hide-focus).is-active,
1327
- .ids-icon-button:not(.btn-primary):not(.btn-secondary):not(.btn-primary-destructive):not(.btn-tertiary-destructive):not(.btn-primary-generative-ai):not(.btn-secondary-generative-ai):not(.btn-tertiary-generative-ai).color-variant-alternate-formatter:not(.hide-focus).is-focused,
1328
- .ids-icon-button:not(.btn-primary):not(.btn-secondary):not(.btn-primary-destructive):not(.btn-tertiary-destructive):not(.btn-primary-generative-ai):not(.btn-secondary-generative-ai):not(.btn-tertiary-generative-ai).color-variant-alternate-formatter:not(.hide-focus).focus-within,
1329
- .ids-icon-button:not(.btn-primary):not(.btn-secondary):not(.btn-primary-destructive):not(.btn-tertiary-destructive):not(.btn-primary-generative-ai):not(.btn-secondary-generative-ai):not(.btn-tertiary-generative-ai).color-variant-alternate-formatter:not(.hide-focus):focus,
1330
- .ids-menu-button:not(.btn-primary):not(.btn-secondary):not(.btn-primary-destructive):not(.btn-tertiary-destructive):not(.btn-primary-generative-ai):not(.btn-secondary-generative-ai):not(.btn-tertiary-generative-ai).color-variant-alternate-formatter:not(.hide-focus).is-active,
1331
- .ids-menu-button:not(.btn-primary):not(.btn-secondary):not(.btn-primary-destructive):not(.btn-tertiary-destructive):not(.btn-primary-generative-ai):not(.btn-secondary-generative-ai):not(.btn-tertiary-generative-ai).color-variant-alternate-formatter:not(.hide-focus).is-focused,
1332
- .ids-menu-button:not(.btn-primary):not(.btn-secondary):not(.btn-primary-destructive):not(.btn-tertiary-destructive):not(.btn-primary-generative-ai):not(.btn-secondary-generative-ai):not(.btn-tertiary-generative-ai).color-variant-alternate-formatter:not(.hide-focus).focus-within,
1333
- .ids-menu-button:not(.btn-primary):not(.btn-secondary):not(.btn-primary-destructive):not(.btn-tertiary-destructive):not(.btn-primary-generative-ai):not(.btn-secondary-generative-ai):not(.btn-tertiary-generative-ai).color-variant-alternate-formatter:not(.hide-focus):focus {
1334
- box-shadow: var(--ids-shadow-20);
1335
- }
1336
- .ids-button.btn-tertiary-destructive:not(.hide-focus).is-active, .ids-button.btn-tertiary-destructive:not(.hide-focus).is-focused, .ids-button.btn-tertiary-destructive:not(.hide-focus).focus-within, .ids-button.btn-tertiary-destructive:not(.hide-focus):focus,
1337
- .ids-icon-button.btn-tertiary-destructive:not(.hide-focus).is-active,
1338
- .ids-icon-button.btn-tertiary-destructive:not(.hide-focus).is-focused,
1339
- .ids-icon-button.btn-tertiary-destructive:not(.hide-focus).focus-within,
1340
- .ids-icon-button.btn-tertiary-destructive:not(.hide-focus):focus,
1341
- .ids-menu-button.btn-tertiary-destructive:not(.hide-focus).is-active,
1342
- .ids-menu-button.btn-tertiary-destructive:not(.hide-focus).is-focused,
1343
- .ids-menu-button.btn-tertiary-destructive:not(.hide-focus).focus-within,
1344
- .ids-menu-button.btn-tertiary-destructive:not(.hide-focus):focus {
1345
- box-shadow: var(--ids-button-destructive-tertiary-shadow-focus);
1346
- }
1347
- .ids-button.btn-primary:not(.hide-focus).is-active, .ids-button.btn-primary:not(.hide-focus).is-focused, .ids-button.btn-primary:not(.hide-focus).focus-within, .ids-button.btn-primary:not(.hide-focus):focus,
1348
- .ids-icon-button.btn-primary:not(.hide-focus).is-active,
1349
- .ids-icon-button.btn-primary:not(.hide-focus).is-focused,
1350
- .ids-icon-button.btn-primary:not(.hide-focus).focus-within,
1351
- .ids-icon-button.btn-primary:not(.hide-focus):focus,
1352
- .ids-menu-button.btn-primary:not(.hide-focus).is-active,
1353
- .ids-menu-button.btn-primary:not(.hide-focus).is-focused,
1354
- .ids-menu-button.btn-primary:not(.hide-focus).focus-within,
1355
- .ids-menu-button.btn-primary:not(.hide-focus):focus {
1356
- box-shadow: var(--ids-button-primary-shadow-focus);
1357
- }
1358
- .ids-button.btn-primary.color-variant-alternate:not(.hide-focus).is-active, .ids-button.btn-primary.color-variant-alternate:not(.hide-focus).is-focused, .ids-button.btn-primary.color-variant-alternate:not(.hide-focus).focus-within, .ids-button.btn-primary.color-variant-alternate:not(.hide-focus):focus,
1359
- .ids-icon-button.btn-primary.color-variant-alternate:not(.hide-focus).is-active,
1360
- .ids-icon-button.btn-primary.color-variant-alternate:not(.hide-focus).is-focused,
1361
- .ids-icon-button.btn-primary.color-variant-alternate:not(.hide-focus).focus-within,
1362
- .ids-icon-button.btn-primary.color-variant-alternate:not(.hide-focus):focus,
1363
- .ids-menu-button.btn-primary.color-variant-alternate:not(.hide-focus).is-active,
1364
- .ids-menu-button.btn-primary.color-variant-alternate:not(.hide-focus).is-focused,
1365
- .ids-menu-button.btn-primary.color-variant-alternate:not(.hide-focus).focus-within,
1366
- .ids-menu-button.btn-primary.color-variant-alternate:not(.hide-focus):focus {
1367
- box-shadow: 0 0 0 2px var(--ids-color-primary-70), 0 0 0 3px var(--ids-color-text-on-primary);
1368
- }
1369
- .ids-button.btn-primary-destructive:not(.hide-focus).is-active, .ids-button.btn-primary-destructive:not(.hide-focus).is-focused, .ids-button.btn-primary-destructive:not(.hide-focus).focus-within, .ids-button.btn-primary-destructive:not(.hide-focus):focus,
1370
- .ids-icon-button.btn-primary-destructive:not(.hide-focus).is-active,
1371
- .ids-icon-button.btn-primary-destructive:not(.hide-focus).is-focused,
1372
- .ids-icon-button.btn-primary-destructive:not(.hide-focus).focus-within,
1373
- .ids-icon-button.btn-primary-destructive:not(.hide-focus):focus,
1374
- .ids-menu-button.btn-primary-destructive:not(.hide-focus).is-active,
1375
- .ids-menu-button.btn-primary-destructive:not(.hide-focus).is-focused,
1376
- .ids-menu-button.btn-primary-destructive:not(.hide-focus).focus-within,
1377
- .ids-menu-button.btn-primary-destructive:not(.hide-focus):focus {
1378
- box-shadow: 0 0 0 2px var(--ids-color-background-default), 0 0 0 3px var(--ids-color-error-default);
1379
- }
1380
- .ids-button.btn-secondary:not(.hide-focus).is-active, .ids-button.btn-secondary:not(.hide-focus).is-focused, .ids-button.btn-secondary:not(.hide-focus).focus-within, .ids-button.btn-secondary:not(.hide-focus):focus,
1381
- .ids-icon-button.btn-secondary:not(.hide-focus).is-active,
1382
- .ids-icon-button.btn-secondary:not(.hide-focus).is-focused,
1383
- .ids-icon-button.btn-secondary:not(.hide-focus).focus-within,
1384
- .ids-icon-button.btn-secondary:not(.hide-focus):focus,
1385
- .ids-menu-button.btn-secondary:not(.hide-focus).is-active,
1386
- .ids-menu-button.btn-secondary:not(.hide-focus).is-focused,
1387
- .ids-menu-button.btn-secondary:not(.hide-focus).focus-within,
1388
- .ids-menu-button.btn-secondary:not(.hide-focus):focus {
1389
- box-shadow: var(--ids-button-secondary-shadow-focus);
1390
- }
1391
- .ids-button.btn-primary-generative-ai:not(.hide-focus).is-active, .ids-button.btn-primary-generative-ai:not(.hide-focus).is-focused, .ids-button.btn-primary-generative-ai:not(.hide-focus).focus-within, .ids-button.btn-primary-generative-ai:not(.hide-focus):focus,
1392
- .ids-icon-button.btn-primary-generative-ai:not(.hide-focus).is-active,
1393
- .ids-icon-button.btn-primary-generative-ai:not(.hide-focus).is-focused,
1394
- .ids-icon-button.btn-primary-generative-ai:not(.hide-focus).focus-within,
1395
- .ids-icon-button.btn-primary-generative-ai:not(.hide-focus):focus,
1396
- .ids-menu-button.btn-primary-generative-ai:not(.hide-focus).is-active,
1397
- .ids-menu-button.btn-primary-generative-ai:not(.hide-focus).is-focused,
1398
- .ids-menu-button.btn-primary-generative-ai:not(.hide-focus).focus-within,
1399
- .ids-menu-button.btn-primary-generative-ai:not(.hide-focus):focus {
1400
- box-shadow: var(--ids-button-ai-shadow-focus);
1401
- border-color: var(--ids-color-transparent);
1402
- }
1403
- .ids-button.btn-tertiary-generative-ai:not(.hide-focus).is-active, .ids-button.btn-tertiary-generative-ai:not(.hide-focus).is-focused, .ids-button.btn-tertiary-generative-ai:not(.hide-focus).focus-within, .ids-button.btn-tertiary-generative-ai:not(.hide-focus):focus, .ids-button.btn-secondary-generative-ai:not(.hide-focus).is-active, .ids-button.btn-secondary-generative-ai:not(.hide-focus).is-focused, .ids-button.btn-secondary-generative-ai:not(.hide-focus).focus-within, .ids-button.btn-secondary-generative-ai:not(.hide-focus):focus,
1404
- .ids-icon-button.btn-tertiary-generative-ai:not(.hide-focus).is-active,
1405
- .ids-icon-button.btn-tertiary-generative-ai:not(.hide-focus).is-focused,
1406
- .ids-icon-button.btn-tertiary-generative-ai:not(.hide-focus).focus-within,
1407
- .ids-icon-button.btn-tertiary-generative-ai:not(.hide-focus):focus,
1408
- .ids-icon-button.btn-secondary-generative-ai:not(.hide-focus).is-active,
1409
- .ids-icon-button.btn-secondary-generative-ai:not(.hide-focus).is-focused,
1410
- .ids-icon-button.btn-secondary-generative-ai:not(.hide-focus).focus-within,
1411
- .ids-icon-button.btn-secondary-generative-ai:not(.hide-focus):focus,
1412
- .ids-menu-button.btn-tertiary-generative-ai:not(.hide-focus).is-active,
1413
- .ids-menu-button.btn-tertiary-generative-ai:not(.hide-focus).is-focused,
1414
- .ids-menu-button.btn-tertiary-generative-ai:not(.hide-focus).focus-within,
1415
- .ids-menu-button.btn-tertiary-generative-ai:not(.hide-focus):focus,
1416
- .ids-menu-button.btn-secondary-generative-ai:not(.hide-focus).is-active,
1417
- .ids-menu-button.btn-secondary-generative-ai:not(.hide-focus).is-focused,
1418
- .ids-menu-button.btn-secondary-generative-ai:not(.hide-focus).focus-within,
1419
- .ids-menu-button.btn-secondary-generative-ai:not(.hide-focus):focus {
1420
- box-shadow: var(--ids-button-tertiary-ai-shadow-focus);
1421
- border-color: var(--ids-button-ai-color-icon-secondary-hover);
1422
- }
1423
-
1424
- .ids-modal-button:not(.ids-modal-icon-button) {
1425
- box-shadow: var(--ids-shadow-none);
1426
- font-weight: var(--ids-font-weight-normal);
1427
- font-family: var(--ids-font-family-default), var(--ids-font-family-system-sans);
1428
- font-size: var(--ids-font-size-sm);
1429
- overflow: hidden;
1430
- padding-bottom: calc(var(--ids-space-xs) - 2px);
1431
- padding-top: calc(var(--ids-space-xs) - 2px);
1432
- position: relative;
1433
- /* stylelint-disable-next-line no-duplicate-selectors */
1434
- }
1435
- .ids-modal-button:not(.ids-modal-icon-button), .ids-modal-button:not(.ids-modal-icon-button)::before, .ids-modal-button:not(.ids-modal-icon-button)::after {
1436
- box-sizing: border-box;
1437
- }
1438
- .ids-modal-button:not(.ids-modal-icon-button) * {
1439
- pointer-events: none;
1440
- }
1441
- .ids-modal-button:not(.ids-modal-icon-button) {
1442
- border: 1px solid transparent;
1443
- background-color: var(--ids-color-transparent);
1444
- color: var(--ids-button-color-text-default);
1445
- transition: background-color var(--ids-motion-duration) var(--ids-motion-ease), border-color var(--ids-motion-duration) var(--ids-motion-ease), color var(--ids-motion-duration) var(--ids-motion-ease), opacity var(--ids-motion-duration) var(--ids-motion-ease);
1446
- white-space: nowrap;
1447
- }
1448
- .ids-modal-button:not(.ids-modal-icon-button):focus {
1449
- outline: none;
1450
- outline-color: var(--ids-color-transparent);
1451
- }
1452
- .ids-modal-button:not(.ids-modal-icon-button):not([disabled]) {
1453
- cursor: var(--ids-cursor-pointer);
1454
- }
1455
- .ids-modal-button:not(.ids-modal-icon-button) span {
1456
- vertical-align: bottom;
1457
- }
1458
- .ids-modal-button:not(.ids-modal-icon-button) span.audible {
1459
- clip: rect(0, 0, 0, 0);
1460
- height: 0;
1461
- line-height: 0;
1462
- min-height: 0;
1463
- overflow: hidden;
1464
- padding: 0;
1465
- position: absolute;
1466
- width: 1px;
1467
- }
1468
- .ids-modal-button:not(.ids-modal-icon-button):not(.color-variant-module-nav):not(.ids-icon-button):not(.align-icon-end):not(.compact) ::slotted(ids-icon:not([icon=genai])) {
1469
- margin-inline-end: calc(var(--ids-space-2xs) + 3px);
1470
- }
1471
- .ids-modal-button:not(.ids-modal-icon-button) .ids-icon {
1472
- vertical-align: middle;
1473
- }
1474
- .ids-modal-button:not(.ids-modal-icon-button).align-icon-end ::slotted(ids-icon) {
1475
- margin-inline-start: var(--ids-space-2xs);
1476
- }
1477
- .ids-modal-button:not(.ids-modal-icon-button).content-align-start {
1478
- justify-content: start;
1479
- }
1480
- .ids-modal-button:not(.ids-modal-icon-button).content-align-end {
1481
- justify-content: end;
1482
- }
1483
- .ids-modal-button:not(.ids-modal-icon-button).no-margins {
1484
- margin-inline: var(--ids-space-none);
1485
- }
1486
- .ids-modal-button:not(.ids-modal-icon-button).field-height-xxs:not(.btn-secondary):not(.no-margins) {
1487
- margin-block-start: 3px;
1488
- margin-inline-end: -2px;
1489
- height: 22px;
1490
- width: 22px;
1491
- }
1492
- .ids-modal-button:not(.ids-modal-icon-button) ::slotted(span) {
1493
- font-weight: inherit !important;
1494
- }
1495
- .ids-modal-button:not(.ids-modal-icon-button).btn-primary {
1496
- background-color: var(--ids-button-primary-color-background-default);
1497
- border-color: var(--ids-button-primary-color-border-default);
1498
- border: 1px solid var(--ids-button-primary-color-border-default);
1499
- color: var(--ids-button-primary-color-text-default);
1500
- padding-bottom: calc(var(--ids-space-xs) - 2px);
1501
- padding-top: calc(var(--ids-space-xs) - 2px);
1502
- padding-inline: var(--ids-button-padding-inline);
1503
- border-radius: var(--ids-button-radius);
1504
- }
1505
- .ids-modal-button:not(.ids-modal-icon-button).btn-primary:not(.hide-focus).is-active, .ids-modal-button:not(.ids-modal-icon-button).btn-primary:not(.hide-focus).is-focused, .ids-modal-button:not(.ids-modal-icon-button).btn-primary:not(.hide-focus).focus-within, .ids-modal-button:not(.ids-modal-icon-button).btn-primary:not(.hide-focus):focus {
1506
- outline: 1px solid var(--ids-modal-color-outline);
1507
- outline-offset: -1px;
1508
- }
1509
- .ids-modal-button:not(.ids-modal-icon-button).btn-primary:hover:not([disabled]) {
1510
- background-color: var(--ids-button-primary-color-background-hover);
1511
- border-color: var(--ids-button-primary-color-border-hover);
1512
- }
1513
- .ids-modal-button:not(.ids-modal-icon-button).btn-primary[disabled] {
1514
- opacity: var(--ids-button-primary-opacity-disabled);
1515
- }
1516
- .ids-modal-button:not(.ids-modal-icon-button).btn-secondary, .ids-modal-button:not(.ids-modal-icon-button).btn-tertiary {
1517
- background-color: var(--ids-button-secondary-color-background-default);
1518
- border-width: var(--ids-button-secondary-border-width);
1519
- border-color: var(--ids-button-secondary-color-border-default);
1520
- color: var(--ids-button-secondary-color-text-default);
1521
- padding-inline: var(--ids-button-padding-inline);
1522
- border-radius: var(--ids-button-radius);
1523
- }
1524
- .ids-modal-button:not(.ids-modal-icon-button).btn-secondary:not(.hide-focus).is-active, .ids-modal-button:not(.ids-modal-icon-button).btn-secondary:not(.hide-focus).is-focused, .ids-modal-button:not(.ids-modal-icon-button).btn-secondary:not(.hide-focus).focus-within, .ids-modal-button:not(.ids-modal-icon-button).btn-secondary:not(.hide-focus):focus, .ids-modal-button:not(.ids-modal-icon-button).btn-tertiary:not(.hide-focus).is-active, .ids-modal-button:not(.ids-modal-icon-button).btn-tertiary:not(.hide-focus).is-focused, .ids-modal-button:not(.ids-modal-icon-button).btn-tertiary:not(.hide-focus).focus-within, .ids-modal-button:not(.ids-modal-icon-button).btn-tertiary:not(.hide-focus):focus {
1525
- outline: 1px solid var(--ids-modal-color-outline);
1526
- outline-offset: -1px;
1527
- }
1528
- .ids-modal-button:not(.ids-modal-icon-button).btn-secondary:hover, .ids-modal-button:not(.ids-modal-icon-button).btn-tertiary:hover {
1529
- background-color: var(--ids-button-secondary-color-background-hover);
1530
- border-color: var(--ids-button-secondary-color-border-hover);
1531
- color: var(--ids-button-secondary-color-text-hover);
1532
- }
1533
- .ids-modal-button:not(.ids-modal-icon-button).btn-secondary[disabled], .ids-modal-button:not(.ids-modal-icon-button).btn-tertiary[disabled] {
1534
- opacity: var(--ids-button-secondary-opacity-disabled);
1535
- }
1536
- .ids-modal-button:not(.ids-modal-icon-button) {
1537
- display: block;
1538
- font-weight: var(--ids-font-weight-strong);
1539
- justify-content: center;
1540
- height: 100%;
1541
- width: 100%;
1542
- }
1543
- .ids-modal-button:not(.ids-modal-icon-button):focus {
1544
- z-index: 1;
1545
- }
1546
-
1547
- .ids-modal-icon-button {
1548
- padding: var(--ids-space-xs);
1549
- }
1550
-
1551
- .btn-swipe-action-left,
1552
- .btn-swipe-action-right {
1553
- display: block;
1554
- padding: 0 var(--ids-space-xs) var(--ids-space-xs);
1555
- height: 100%;
1556
- margin: 0;
1557
- white-space: inherit;
1558
- width: 85px;
1559
- }
1560
- .btn-swipe-action-left ::slotted(ids-icon),
1561
- .btn-swipe-action-right ::slotted(ids-icon) {
1562
- display: block;
1563
- }
1564
- .btn-swipe-action-left:hover, .btn-swipe-action-left:focus,
1565
- .btn-swipe-action-right:hover,
1566
- .btn-swipe-action-right:focus {
1567
- box-shadow: none;
1568
- border-color: var(--ids-color-transparent);
1569
- }
1570
-
1571
- .ids-button:not(.no-margins).btn-swipe-action-left,
1572
- .ids-button:not(.no-margins).btn-swipe-action-right {
1573
- margin: 0;
1574
- }
1575
-
1576
- .btn-swipe-action-left {
1577
- border-start-end-radius: var(--ids-border-radius-none);
1578
- border-end-end-radius: var(--ids-border-radius-none);
1579
- background-color: var(--ids-swipe-action-color-background-left);
1580
- color: var(--ids-swipe-action-color-text-left);
1581
- }
1582
- .btn-swipe-action-left:active {
1583
- background-color: var(--ids-swipe-action-color-background-left-active);
1584
- color: var(--ids-swipe-action-color-text-left-active);
1585
- }
1586
- .btn-swipe-action-left:hover {
1587
- background-color: var(--ids-swipe-action-color-background-left-hover);
1588
- color: var(--ids-swipe-action-color-text-left-hover);
1589
- }
1590
-
1591
- .btn-swipe-action-right {
1592
- border-start-start-radius: var(--ids-border-radius-none);
1593
- border-end-start-radius: var(--ids-border-radius-none);
1594
- background-color: var(--ids-swipe-action-color-background-right);
1595
- color: var(--ids-swipe-action-color-text-right);
1596
- }
1597
- .btn-swipe-action-right:active {
1598
- background-color: var(--ids-swipe-action-color-background-right-active);
1599
- color: var(--ids-swipe-action-color-text-right-active);
1600
- }
1601
- .btn-swipe-action-right:hover {
1602
- background-color: var(--ids-swipe-action-color-background-right-hover);
1603
- color: var(--ids-swipe-action-color-text-right-hover);
1604
- }
1605
-
1606
- .ids-icon-button.gen-ai-active:not(.no-animation) ::slotted(ids-icon[icon=genai]),
1607
- .ids-button.gen-ai-active:not(.no-animation) ::slotted(ids-icon[icon=genai]) {
1608
- display: none;
1609
- }
1610
- .ids-icon-button.gen-ai-active:not(.no-animation) .loading-dots,
1611
- .ids-button.gen-ai-active:not(.no-animation) .loading-dots {
1612
- display: flex;
1613
- }
1614
-
1615
- .ids-icon-button.gen-ai-active .loading-dots {
1616
- padding-inline-start: 3px;
1617
- padding-inline-end: var(--ids-space-3xs);
1618
- padding-block-start: 7px;
1619
- padding-block-end: var(--ids-space-xs);
1620
- }
1621
-
1622
- .ids-button ::slotted(ids-icon[icon=genai]:first-child),
1623
- .ids-toggle-button ::slotted(ids-icon[icon=genai]:first-child),
1624
- .ids-menu-button:not(.ids-icon-button) ::slotted(ids-icon[icon=genai]:first-child),
1625
- .ids-modal-button:not(.ids-icon-button) ::slotted(ids-icon[icon=genai]:first-child) {
1626
- margin-inline-end: 5px;
1627
- }
1628
- .ids-button ::slotted(ids-icon:not(:first-child)),
1629
- .ids-toggle-button ::slotted(ids-icon:not(:first-child)),
1630
- .ids-menu-button:not(.ids-icon-button) ::slotted(ids-icon:not(:first-child)),
1631
- .ids-modal-button:not(.ids-icon-button) ::slotted(ids-icon:not(:first-child)) {
1632
- margin-inline-start: 5px;
1633
- margin-inline-end: var(--ids-space-none);
1634
- }
1635
- .ids-button .ids-icon:last-child,
1636
- .ids-button span + span:not(.audible),
1637
- .ids-button span:not(.audible):last-child,
1638
- .ids-toggle-button .ids-icon:last-child,
1639
- .ids-toggle-button span + span:not(.audible),
1640
- .ids-toggle-button span:not(.audible):last-child,
1641
- .ids-menu-button:not(.ids-icon-button) .ids-icon:last-child,
1642
- .ids-menu-button:not(.ids-icon-button) span + span:not(.audible),
1643
- .ids-menu-button:not(.ids-icon-button) span:not(.audible):last-child,
1644
- .ids-modal-button:not(.ids-icon-button) .ids-icon:last-child,
1645
- .ids-modal-button:not(.ids-icon-button) span + span:not(.audible),
1646
- .ids-modal-button:not(.ids-icon-button) span:not(.audible):last-child {
1647
- padding-inline-start: 5px;
1648
- }
1649
-
1650
- .ids-modal-button ::slotted(ids-icon:not(:first-child)) {
1651
- padding: var(--ids-space-3xs);
1652
- }
1653
-
1654
- :host(:not([show-loading-indicator=true])) ::slotted(.slot-loading-indicator) {
1655
- display: none;
1656
- }
1657
-
1658
- :host([show-loading-indicator=true]) ::slotted(ids-loading-indicator) {
1659
- margin-top: 3px;
1660
- margin-bottom: 3px;
1661
- }
1662
-
1663
- :host([show-loading-indicator=true][loading-indicator-only=true]) ::slotted(*:not(.slot-loading-indicator)) {
1664
- visibility: hidden;
1665
- }
1666
-
1667
- :host([show-loading-indicator=true]:not([loading-indicator-only=true])) ::slotted(.slot-loading-indicator) {
1668
- margin-inline-start: 6px;
1669
- }
1670
-
1671
- :host([show-loading-indicator=true]:not([loading-indicator-only=true]):is([appearance=primary], [appearance=secondary], [appearance=primary-destructive]))::part(button) {
1672
- padding-inline-start: 20px;
1673
- padding-inline-end: 12px;
1674
- }
1675
- :host([show-loading-indicator=true]:not([loading-indicator-only=true]):is([appearance=primary], [appearance=secondary], [appearance=primary-destructive])) ::slotted(.slot-loading-indicator) {
1676
- margin-inline-start: 10px;
1677
- }
1678
-
1679
- :host([loading-indicator-only=true]) ::slotted(.slot-loading-indicator) {
1680
- position: absolute;
1681
- margin-inline-start: auto;
1682
- margin-inline-end: auto;
1683
- left: var(--ids-space-none);
1684
- right: var(--ids-space-none);
1685
- }
1686
-
1687
- :host(ids-toggle-button:not(.dropdown-btn)) {
1688
- --ids-button-tertiary-color-background-hover: var(--ids-button-toggle-color-background-hover-default);
1689
- --ids-button-tertiary-color-text-hover: var(--ids-button-toggle-color-text-hover-default);
1690
- }
1691
-
1692
- :host(ids-toggle-button[pressed]) {
1693
- --ids-button-tertiary-color-text-default: var(--ids-button-toggle-color-text-pressed-default);
1694
- }
1695
-
1696
- :host(ids-toggle-button[color=orange]) {
1697
- --ids-button-tertiary-color-background-hover: var(--ids-button-toggle-color-background-hover-orange);
1698
- --ids-button-tertiary-color-text-hover: var(--ids-button-toggle-color-text-hover-orange);
1699
- }
1700
-
1701
- :host(ids-toggle-button[pressed][color=orange]) {
1702
- --ids-button-tertiary-color-text-default: var(--ids-button-toggle-color-text-pressed-orange);
1703
- }
1704
-
1705
- :host(ids-toggle-button[color=red]) {
1706
- --ids-button-tertiary-color-background-hover: var(--ids-button-toggle-color-background-hover-red);
1707
- --ids-button-tertiary-color-text-hover: var(--ids-button-toggle-color-text-hover-red);
1708
- }
1709
-
1710
- :host(ids-toggle-button[pressed][color=red]) {
1711
- --ids-button-tertiary-color-text-default: var(--ids-button-toggle-color-text-pressed-red);
1712
- }
1713
-
1714
- :host(ids-toggle-button.ids-toggle-button-segmented) button {
1715
- border-radius: var(--ids-border-radius-sm);
1716
- font-weight: var(--ids-font-weight-normal);
1717
- }
1718
- :host(ids-toggle-button.ids-toggle-button-segmented) button:hover {
1719
- color: var(--ids-segmented-control-text-color);
1720
- background-color: var(--ids-segmented-control-background-hover);
1721
- }
1722
-
1723
- :host(ids-toggle-button.ids-toggle-button-segmented[pressed]) button {
1724
- color: var(--ids-segmented-control-text-color);
1725
- background-color: var(--ids-segmented-control-background-selected);
1726
- box-shadow: var(--ids-segmented-control-box-shadow);
1727
- border-color: transparent;
1728
- }
1729
-
1730
- .ids-masthead-button {
1731
- --ids-button-formatter-color-background-hover: transparent;
1732
- --ids-button-formatter-color-text-hover: var(--ids-masthead-color-hover);
1733
- --ids-button-alternate-color-text-default: var(--ids-color-white-100);
1734
- --ids-button-tertiary-color-background-hover: var(--ids-masthead-button-menu-color-background-hover);
1735
- --ids-button-tertiary-color-border-hover: transparent;
1736
- --ids-button-color-text-default: var(--ids-masthead-menu-color-text-default);
1737
- --ids-button-tertiary-color-text-default: var(--ids-masthead-button-color-text-default);
1738
- --ids-button-tertiary-color-text-hover: var(--ids-masthead-button-color-text-hover);
1739
- --ids-button-menu-background-color-active: var(--ids-masthead-button-menu-background-color-active);
1740
- --ids-button-menu-color-text-active: var(--ids-masthead-button-menu-color-text-active);
1741
- --ids-button-tertiary-color-background-pressed: var(--ids-masthead-button-menu-color-background-pressed);
1742
- --ids-button-tertiary-color-border-pressed: var(--ids-masthead-button-menu-color-border-pressed);
1743
- --ids-button-tertiary-color-text-pressed: var(--ids-masthead-button-menu-color-text-pressed);
1744
- --ids-button-tertiary-shadow-focus: var(--ids-masthead-button-menu-shadow-focus);
1745
- --ids-button-tertiary-color-border-focus: var(--ids-masthead-button-menu-color-border-focus);
1746
- }
1747
-
1748
- :host {
1749
2
  display: block;
1750
3
  }
1751
4
  :host ids-icon {
@@ -2242,70 +495,4 @@ button {
2242
495
  .ids-module-nav-item.display-mode-expanded.depth-6.parent-has-icon.siblings-can-expand:not(.is-expandable) {
2243
496
  padding-inline-start: 118px;
2244
497
  }
2245
-
2246
- :host {
2247
- box-sizing: border-box;
2248
- }
2249
-
2250
- ::slotted(ids-icon) {
2251
- margin-inline: 0;
2252
- }
2253
-
2254
- ::slotted(ids-text) {
2255
- overflow: hidden;
2256
- white-space: nowrap;
2257
- text-overflow: ellipsis;
2258
- }
2259
-
2260
- button.ids-module-nav-button {
2261
- /* stylelint-disable-next-line no-duplicate-selectors */
2262
- }
2263
- button.ids-module-nav-button {
2264
- display: flex;
2265
- align-self: center;
2266
- background-color: var(--ids-color-transparent);
2267
- border-color: var(--ids-color-transparent);
2268
- border-radius: var(--ids-module-nav-common-border-radius);
2269
- border-style: solid;
2270
- border-width: var(--ids-border-width-sm);
2271
- color: var(--ids-module-nav-item-text-color);
2272
- height: var(--ids-module-nav-switcher-button-size);
2273
- width: var(--ids-module-nav-switcher-button-size);
2274
- }
2275
- button.ids-module-nav-button:hover {
2276
- background-color: var(--ids-module-nav-item-hover-bg-color);
2277
- color: var(--ids-module-nav-item-hover-text-color);
2278
- }
2279
- button.ids-module-nav-button.is-active, button.ids-module-nav-button:active {
2280
- border-color: var(--ids-module-nav-item-selected-text-color);
2281
- }
2282
- button.ids-module-nav-button:focus {
2283
- outline: none;
2284
- }
2285
- button.ids-module-nav-button:not(.hide-focus):focus, button.ids-module-nav-button:not(.hide-focus).is-focused {
2286
- border-color: var(--ids-module-nav-item-selected-text-color);
2287
- }
2288
- button.ids-module-nav-button:not([disabled]):not(.disabled) {
2289
- cursor: pointer;
2290
- }
2291
- button.ids-module-nav-button[disabled],
2292
- button.ids-module-nav-button .disabled {
2293
- color: var(--ids-button-tertiary-color-text-disabled);
2294
- background-color: var(--ids-button-tertiary-disabled-background-color);
2295
- }
2296
- button.ids-module-nav-button .ids-text {
2297
- overflow: hidden;
2298
- white-space: nowrap;
2299
- text-overflow: ellipsis;
2300
- }
2301
- button.ids-module-nav-button {
2302
- height: var(--ids-module-nav-item-collapsed-size);
2303
- padding-inline: var(--ids-module-nav-switcher-button-icon-margin);
2304
- }
2305
- button.ids-module-nav-button.display-mode-collapsed {
2306
- padding-block: var(--ids-module-nav-switcher-button-icon-margin);
2307
- }
2308
- button.ids-module-nav-button.display-mode-expanded {
2309
- padding-block: var(--ids-module-nav-switcher-button-icon-margin);
2310
- }
2311
- /*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VSb290IjoiL2J1aWxkcy9pbmZvci1kZXNpZ24vZW50ZXJwcmlzZS13Yy9zcmMvY29tcG9uZW50cy9pZHMtbW9kdWxlLW5hdiIsInNvdXJjZXMiOlsiLi4vaWRzLWJ1dHRvbi9pZHMtYnV0dG9uLnNjc3MiLCIuLi9pZHMtYnV0dG9uL2lkcy1idXR0b24tYmFzZS5zY3NzIiwiLi4vLi4vdGhlbWVzL21peGlucy9pZHMtY29yZS1taXhpbnMuc2NzcyIsIi4uL2lkcy1hY2NvcmRpb24vaWRzLWFjY29yZGlvbi1oZWFkZXIuc2NzcyIsImlkcy1tb2R1bGUtbmF2LWl0ZW0uc2NzcyIsImlkcy1tb2R1bGUtbmF2LWJ1dHRvbi5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FDQUE7QUFBQTtBQUFBO0FBaUlBO0FBQUE7QUFBQTtBQVdBO0FBQUE7QUFBQTtBQTJmQTtBQUFBO0FBQUE7QURob0JBO0VBQ0U7RUFDQTs7QUFFQTtFQUNFOztBQUdGO0FBQUE7RUFFRTtFQUNBOztBQUdGO0VBQ0U7RUFDQTs7QUFHRjtFQUNFOztBQUdGO0VFUEE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUZLQTtBQUFBO0VBRUU7RUFDQTtFQUNBOzs7QUFJSjtFQUNFOzs7QUFJQTtFQUNFO0VBQ0E7RUFDQTs7O0FBSUo7RUFDRTs7O0FBSUY7RUFDRTs7O0FBTUY7QUFBQTtBQUFBO0FBQUE7RUV6REU7RUFDQTs7QUY4REE7QUFBQTtBQUFBO0FBQUE7RUFDRTtFQUNBO0VBQ0E7OztBQU1GO0FBQUE7RUFDRTtFQUNBO0VBQ0E7OztBQVFBO0FBQUE7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBS047QUFBQTtBQUFBO0VDbEdFO0VBd0JBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0VBR0U7O0FBSUY7QUFBQTtBQUFBO0VBQ0U7O0FBTUY7QUFBQTtBQUFBO0VBQ0U7RUFDQTtFQUNBO0VBR0EsWUFDRTtFQUlGOztBQUdGO0FBQUE7QUFBQTtFQUVFO0VBQ0E7O0FBR0Y7QUFBQTtBQUFBO0VBQ0M7O0FBS0Q7QUFBQTtBQUFBO0VBQ0U7O0FBRUE7QUFBQTtBQUFBO0VDM0RGO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FEeURBO0FBQUE7QUFBQTtFQUNFOztBQUdGO0FBQUE7QUFBQTtFQUNFOztBQU9BO0FBQUE7QUFBQTtFQUNFOztBQUlKO0FBQUE7QUFBQTtFQUNFOztBQUdGO0FBQUE7QUFBQTtFQUNFOztBQUdGO0FBQUE7QUFBQTtFQUNFOztBQUdGO0FBQUE7QUFBQTtFQUNFO0VBQ0E7RUFDQTtFQUNBOztBQUdGO0FBQUE7QUFBQTtFQUVFOztBQW1CRjtBQUFBO0FBQUE7RUFDRTtFQUNBO0VBQ0E7RUFJQTtFQUNBO0VBQ0E7O0FBT0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0VBQ0U7O0FBSUo7QUFBQTtBQUFBO0VBQ0U7RUFDQTtFQUNBOztBQUdGO0FBQUE7QUFBQTtFQUNFO0VBQ0E7RUFDQTtFQUNBOztBQUdGO0FBQUE7QUFBQTtFQUNFO0VBQ0E7RUFDQTs7QUFLRjtBQUFBO0FBQUE7RUFDRTtFQUNBO0VBQ0E7O0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0VBSUU7O0FBR0Y7QUFBQTtBQUFBO0VBQ0U7RUFDQTtFQUNBOztBQUdGO0FBQUE7QUFBQTtFQUNFO0VBQ0E7RUFDQTs7QUFPSjtBQUFBO0FBQUE7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0VBSUU7O0FBR0Y7QUFBQTtBQUFBO0VBQ0U7RUFDQTs7QUFHRjtBQUFBO0FBQUE7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7QUFHRjtBQUFBO0FBQUE7RUFDRTtFQUNBO0VBQ0E7O0FBT0o7QUFBQTtBQUFBO0VBQ0U7RUFDQTtFQUNBOztBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtFQUlFOztBQUdGO0FBQUE7QUFBQTtFQUNFO0VBQ0E7RUFDQTs7QUFHRjtBQUFBO0FBQUE7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7QUFNSjtFQUNFO0lBQ0U7O0VBR0Y7SUFFSTs7O0FBSU47RUFDRTtJQUNFOztFQUdGO0lBRUk7OztBQUlOO0VBQ0U7SUFDRTs7RUFHRjtJQUVJOzs7QUFJTjtBQUFBO0FBQUE7RUFDRTtFQUNBO0VBQ0E7O0FBR0Y7QUFBQTtBQUFBO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0FBQUE7QUFBQTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUlKO0FBQUE7QUFBQTtFQUNFO0VBRUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0FBQUE7QUFBQTtFQUNFO0VBQ0E7O0FBR0Y7QUFBQTtBQUFBO0VBQ0U7O0FBR0Y7QUFBQTtBQUFBO0FBQUE7QUFBQTtFQUVFO0VBQ0E7O0FBR0Y7QUFBQTtBQUFBO0VBQ0U7O0FBR0Y7QUFBQTtBQUFBO0FBQUE7QUFBQTtFQUVFO0VBQ0E7RUFDQTs7QUFJQTtBQUFBO0FBQUE7RUFDRTtFQUNBOztBQUdGO0FBQUE7QUFBQTtFQUNFO0VBQ0E7O0FBR0Y7QUFBQTtBQUFBO0VBQ0U7RUFDQTs7QUFPTjtBQUFBO0FBQUE7RUFDRTtFQUVBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0FBQUE7QUFBQTtFQUNFO0VBQ0E7RUFDQTs7QUFHRjtBQUFBO0FBQUE7RUFDRTtFQUNBO0VBQ0E7O0FBR0Y7QUFBQTtBQUFBO0VBQ0U7RUFDQTs7QUFHRjtBQUFBO0FBQUE7RUFDRTs7QUFHRjtBQUFBO0FBQUE7RUFDRTs7QUFLQTtBQUFBO0FBQUE7RUFDRTtFQUNBOztBQUdGO0FBQUE7QUFBQTtFQUNFO0VBQ0E7O0FBR0Y7QUFBQTtBQUFBO0VBQ0U7RUFDQTs7QUFHRjtBQUFBO0FBQUE7RUFDRTtFQUNBOztBQU9OO0FBQUE7QUFBQTtFQUNFO0VBQ0E7RUFDQTtFQUVBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0FBQUE7QUFBQTtFQUNFOztBQUdGO0FBQUE7QUFBQTtFQUNFO0VBQ0E7O0FBR0Y7QUFBQTtBQUFBO0FBQUE7QUFBQTtFQUVFOztBQUdGO0FBQUE7QUFBQTtFQUNFO0VBQ0E7O0FBS0E7QUFBQTtBQUFBO0VBQ0U7RUFDQTs7QUFHRjtBQUFBO0FBQUE7RUFDRTtFQUNBOztBQUdGO0FBQUE7QUFBQTtFQUNFO0VBQ0E7O0FBT047QUFBQTtBQUFBO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0VBSUU7RUFDQTs7QUFHRjtBQUFBO0FBQUE7RUFDRTtFQUNBO0VBQ0E7O0FBR0Y7QUFBQTtBQUFBO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7O0FBR0Y7QUFBQTtBQUFBO0VBQ0U7RUFDQTtFQUNBOztBQVVGO0FBQUE7QUFBQTtFQUNFOztBQUlBO0FBQUE7QUFBQTtFQUNFOztBQU9KO0FBQUE7QUFBQTtFQUNFOztBQUtKO0FBQUE7QUFBQTtBQUFBO0FBQUE7RUFFRTtFQUNBOztBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7RUFJRTtFQUNBOztBQUdGO0FBQUE7QUFBQTtBQUFBO0FBQUE7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7QUFHRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0VBQ0U7RUFDQTs7QUFLSjtBQUFBO0FBQUE7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtFQUlFOztBQUdGO0FBQUE7QUFBQTtFQUNFOztBQUdGO0FBQUE7QUFBQTtFQUNFO0VBQ0E7O0FBR0Y7QUFBQTtBQUFBO0VBQ0U7O0FBR0Y7QUFBQTtBQUFBO0VBQ0U7RUFDQTs7QUFFQTtBQUFBO0FBQUE7RUFDRTtFQUNBOztBQUlKO0FBQUE7QUFBQTtBQUFBO0FBQUE7RUFFRTs7QUFLSjtBQUFBO0FBQUE7RUFDRTtFQUNBOztBQUVBO0FBQUE7QUFBQTtFQUNFOztBQUdGO0FBQUE7QUFBQTtFQUNFO0VBQ0E7O0FEamhCSjtBQUFBO0FBQUE7RUNvQkE7O0FEaEJBO0FBQUE7QUFBQTtBQUFBO0FBQUE7RUNvQkE7O0FEZkE7QUFBQTtBQUFBO0VDZUE7OztBRFZGO0VBQ0U7OztBQUdGO0FBQUE7RUFFRTtFQUNBOzs7QUFJQTtFQUNFO0VBQ0E7O0FBR0Y7RUFDRTs7QUFFQTtFQUNFO0VBQ0E7OztBQU1OO0VBQ0U7RUFDQTs7O0FBR0Y7RUN4SkU7RUF3QkE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUQrSEE7O0FDN0hBO0VBR0U7O0FBSUY7RUFDRTs7QUFNRjtFQUNFO0VBQ0E7RUFDQTtFQUdBLFlBQ0U7RUFJRjs7QUFHRjtFQUVFO0VBQ0E7O0FBR0Y7RUFDQzs7QUFLRDtFQUNFOztBQUVBO0VDM0RGO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FEeURBO0VBQ0U7O0FBR0Y7RUFDRTs7QUFPQTtFQUNFOztBQUlKO0VBQ0U7O0FBR0Y7RUFDRTs7QUFHRjtFQUNFOztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7O0FBR0Y7RUFFRTs7QUFtQkY7RUFDRTtFQUNBO0VBQ0E7RUFJQTtFQUNBO0VBQ0E7O0FBT0E7RUFDRTs7QUFJSjtFQUNFO0VBQ0E7RUFDQTs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOztBQUdGO0VBQ0U7RUFDQTtFQUNBOztBQUtGO0VBQ0U7RUFDQTtFQUNBOztBQUVBO0VBSUU7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7O0FBT0o7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFJRTs7QUFHRjtFQUNFO0VBQ0E7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7QUFHRjtFQUNFO0VBQ0E7RUFDQTs7QUFPSjtFQUNFO0VBQ0E7RUFDQTs7QUFFQTtFQUlFOztBQUdGO0VBQ0U7RUFDQTtFQUNBOztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7O0FBTUo7RUFDRTtJQUNFOztFQUdGO0lBRUk7OztBQUlOO0VBQ0U7SUFDRTs7RUFHRjtJQUVJOzs7QUFJTjtFQUNFO0lBQ0U7O0VBR0Y7SUFFSTs7O0FBSU47RUFDRTtFQUNBO0VBQ0E7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFJSjtFQUNFO0VBRUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0U7RUFDQTs7QUFHRjtFQUNFOztBQUdGO0VBRUU7RUFDQTs7QUFHRjtFQUNFOztBQUdGO0VBRUU7RUFDQTtFQUNBOztBQUlBO0VBQ0U7RUFDQTs7QUFHRjtFQUNFO0VBQ0E7O0FBR0Y7RUFDRTtFQUNBOztBQU9OO0VBQ0U7RUFFQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNFO0VBQ0E7RUFDQTs7QUFHRjtFQUNFO0VBQ0E7RUFDQTs7QUFHRjtFQUNFO0VBQ0E7O0FBR0Y7RUFDRTs7QUFHRjtFQUNFOztBQUtBO0VBQ0U7RUFDQTs7QUFHRjtFQUNFO0VBQ0E7O0FBR0Y7RUFDRTtFQUNBOztBQUdGO0VBQ0U7RUFDQTs7QUFPTjtFQUNFO0VBQ0E7RUFDQTtFQUVBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0U7O0FBR0Y7RUFDRTtFQUNBOztBQUdGO0VBRUU7O0FBR0Y7RUFDRTtFQUNBOztBQUtBO0VBQ0U7RUFDQTs7QUFHRjtFQUNFO0VBQ0E7O0FBR0Y7RUFDRTtFQUNBOztBQU9OO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFJRTtFQUNBOztBQUdGO0VBQ0U7RUFDQTtFQUNBOztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7O0FBVUY7RUFDRTs7QUFJQTtFQUNFOztBQU9KO0VBQ0U7O0FBS0o7RUFFRTtFQUNBOztBQUVBO0VBSUU7RUFDQTs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOztBQUdGO0VBQ0U7RUFDQTs7QUFLSjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFJRTs7QUFHRjtFQUNFOztBQUdGO0VBQ0U7RUFDQTs7QUFHRjtFQUNFOztBQUdGO0VBQ0U7RUFDQTs7QUFFQTtFQUNFO0VBQ0E7O0FBSUo7RUFFRTs7QUFLSjtFQUNFO0VBQ0E7O0FBRUE7RUFDRTs7QUFHRjtFQUNFO0VBQ0E7O0FEN2RKO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUdFO0VBQ0E7O0FBSUo7RUFDRTs7QUFJQTtFQUNFO0VBQ0E7O0FBSUo7RUFDRTs7QUFFQTtFQUNFOztBQUlKO0VBQ0U7O0FBR0Y7RUFDRTs7QUFHRTtFQUNFOztBQUtOO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7O0FBR0Y7RUUzTUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUZ3TUE7RUFDRTtFQUNBOzs7QUFNQTtFQUNFOztBQUdGO0VBQ0U7O0FBR0Y7RUFDRTs7QUFHRjtFQUNFOzs7QUN1WkE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0VBQ0U7O0FBS0Y7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0VBSUU7O0FBS0Y7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0VBSUU7O0FBTUo7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0VBSUU7O0FBT0Y7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0VBSUU7O0FBSUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0VBbHJCSixZQUNFOztBQWdzQkE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0VBanNCRixZQUNFOztBQThzQkE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0VBSUU7O0FBS0Y7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0VBSUU7RUFDQTs7QUFNRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0VBSUU7RUFDQTs7O0FEM2VOO0VDbFFFO0VBd0JBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FEd09BOztBQ3RPQTtFQUdFOztBQUlGO0VBQ0U7O0FBTUY7RUFDRTtFQUNBO0VBQ0E7RUFHQSxZQUNFO0VBSUY7O0FBR0Y7RUFFRTtFQUNBOztBQUdGO0VBQ0M7O0FBS0Q7RUFDRTs7QUFFQTtFQzNERjtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBRHlEQTtFQUNFOztBQUdGO0VBQ0U7O0FBT0E7RUFDRTs7QUFJSjtFQUNFOztBQUdGO0VBQ0U7O0FBR0Y7RUFDRTs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOztBQUdGO0VBRUU7O0FBK25CRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFudkJGO0VBQ0E7O0FBeXZCRTtFQUNFO0VBQ0E7O0FBR0Y7RUFDRTs7QUFPSjtFQUVFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQWh4QkY7RUFDQTs7QUFzeEJFO0VBQ0U7RUFDQTtFQUNBOztBQUdGO0VBQ0U7O0FEbmlCSjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBR0Y7RUFDRTs7O0FBS0o7RUFDRTs7O0FBS0Y7QUFBQTtFQUVFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtBQUFBO0VBQ0U7O0FBR0Y7QUFBQTtBQUFBO0VBRUU7RUFDQTs7O0FBS0o7QUFBQTtFQUVFOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0U7RUFDQTs7QUFHRjtFQUNFO0VBQ0E7OztBQUlKO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDRTtFQUNBOztBQUdGO0VBQ0U7RUFDQTs7O0FBT0E7QUFBQTtFQUNFOztBQUdGO0FBQUE7RUFDRTs7O0FBS047RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBUUE7QUFBQTtBQUFBO0FBQUE7RUFDRTs7QUFJRjtBQUFBO0FBQUE7QUFBQTtFQUNFO0VBQ0E7O0FBSUY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0VBR0U7OztBQU1GO0VBQ0U7OztBQU1GO0VBQ0U7OztBQUtGO0VBQ0U7RUFDQTs7O0FBS0Y7RUFDRTs7O0FBS0Y7RUFDRTs7O0FBS0Y7RUFDRTtFQUNBOztBQUdGO0VBQ0U7OztBQUtGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBS0o7RUFDRTtFQUNBOzs7QUFHRjtFQUNFOzs7QUFHRjtFQUNFO0VBQ0E7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7RUFDQTs7O0FBR0Y7RUFDRTs7O0FBSUE7RUFDRTtFQUNBOztBQUVBO0VBQ0U7RUFDQTs7O0FBTUo7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBS0o7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBR3JhRjtFQUNFOztBQUVBO0VBQ0U7RUFDQTs7O0FBS0Y7RUFDRTs7O0FBS0o7RUFDRTs7O0FBS0Y7RUFDRTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDRTs7QUFHRjtFQUNFOztBQUdGO0VBQ0U7O0FBSUY7RUF4SUE7RUFDQTtFQTBJRTtFQUNBOztBQXZJRjtFQUNFO0VBQ0E7RUFDQTs7QUEwSUE7RUFySUY7RUF3SUk7O0FBdElKO0VBQ0U7O0FBeUlGO0VBQ0U7O0FBSUE7RUFDRTs7QUFLSjtFQTVJQTtFQUNBO0VBR0E7RUFDQTtFQVFBO0VBa0lFOztBQXhJRjtFQUNFO0VBQ0E7O0FBTUY7RUFDRTtFQUNBOztBQUdGO0VBQ0U7RUFDQTtFQUNBOztBQUdGO0VBQ0U7RUFDQTs7QUFHRjtFQUNFO0VBQ0E7RUFDQTs7QUFHRjtFQUNFO0VBQ0E7RUFDQTs7QUFHRjtFQUNFOztBQUVBO0VBQ0U7O0FBb0dKO0VBbkpBO0VBQ0E7RUFHQTtFQUNBO0VBUUE7RUEyQ0E7RUErRkU7O0FBaEpGO0VBQ0U7RUFDQTs7QUFNRjtFQUNFO0VBQ0E7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7O0FBR0Y7RUFDRTtFQUNBOztBQUdGO0VBQ0U7RUFDQTtFQUNBOztBQUdGO0VBQ0U7RUFDQTtFQUNBOztBQUdGO0VBQ0U7O0FBRUE7RUFDRTs7QUE4R0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBTU47RUFDRTs7O0FBR0Y7RUFDRTs7O0FBSUE7RUFDRTs7O0FDM01KO0VBQ0U7OztBQWdJRjtFQUNFO0VBQ0E7O0FBS0E7RUFoSUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNFO0VBQ0E7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7O0FBR0Y7RUFDRTs7QUFHRjtFQUNFO0VBQ0E7O0FBR0Y7RUFFRTs7QUFHRjtFQUVFOztBQUdGO0VBRUU7O0FBTUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7QUFHRjtFQUNFOztBQU9KO0VBQ0U7RUFDQTtFQUNBOztBQUVBO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7O0FBR0Y7RUFDRTs7QUFHRjtFRnZFRjtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBRXdFQTtFQUNFO0VBQ0E7RUFDQTs7QUFHRTtFQUNFOztBQUdGO0VBQ0U7O0FBSUo7RUFDRTs7QUFJQTtFQUNFOztBQW9CTjtFQXBJQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0U7RUFDQTs7QUFHRjtFQUNFO0VBQ0E7RUFDQTs7QUFHRjtFQUNFOztBQUdGO0VBQ0U7RUFDQTs7QUFHRjtFQUVFOztBQUdGO0VBRUU7O0FBR0Y7RUFFRTs7QUFNRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNFO0VBQ0E7RUFDQTtFQUNBOztBQUdGO0VBQ0U7O0FBT0o7RUFDRTtFQUNBO0VBQ0E7O0FBRUE7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7QUFHRjtFQUNFOztBQUdGO0VGdkVGO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FFd0VBO0VBQ0U7RUFDQTtFQUNBOztBQUdFO0VBQ0U7O0FBR0Y7RUFDRTs7QUFJSjtFQUNFOztBQUlBO0VBQ0U7O0FBd0JOO0VBQ0U7RUFDQTtFQUNBOztBQUdGO0VBQ0U7RUFDQTtFQUNBOztBQUdGO0VBQ0U7O0FBR0Y7QUFBQTtFQUVFOztBQWNFO0VBRUk7O0FBRUE7RUFDRTs7QUFMTjtFQWVJOztBQUVBO0VBQ0U7O0FBR0Y7RUFDRTs7QUFJQTtFQUNFOztBQU1KO0VBQ0U7O0FBRUE7RUFPRTs7QUFHRjtFQUNFOztBQUlBO0VBQ0U7O0FBcERWO0VBZUk7O0FBRUE7RUFDRTs7QUFHRjtFQUNFOztBQUlBO0VBQ0U7O0FBTUo7RUFDRTs7QUFFQTtFQU9FOztBQUdGO0VBQ0U7O0FBSUE7RUFDRTs7QUFwRFY7RUFlSTs7QUFFQTtFQUNFOztBQUdGO0VBQ0U7O0FBSUE7RUFDRTs7QUFNSjtFQUNFOztBQUVBO0VBT0U7O0FBR0Y7RUFDRTs7QUFJQTtFQUNFOztBQXBEVjtFQWVJOztBQUVBO0VBQ0U7O0FBR0Y7RUFDRTs7QUFJQTtFQUNFOztBQU1KO0VBQ0U7O0FBRUE7RUFPRTs7QUFHRjtFQUNFOztBQUlBO0VBQ0U7O0FBcERWO0VBZUk7O0FBRUE7RUFDRTs7QUFHRjtFQUNFOztBQUlBO0VBQ0U7O0FBTUo7RUFDRTs7QUFFQTtFQU9FOztBQUdGO0VBQ0U7O0FBSUE7RUFDRTs7O0FDbk9oQjtFQUNFOzs7QUFHRjtFQUNFOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTs7O0FBcURGO0FBR0U7O0FBcERBO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBR0Y7RUFDRTtFQUNBOztBQUdGO0VBRUU7O0FBR0Y7RUFDRTs7QUFHRjtFQUVFOztBQUdGO0VBQ0U7O0FBR0Y7QUFBQTtFQUVFO0VBQ0E7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7O0FBUUY7RUFDRTtFQUNBOztBQU1GO0VBQ0U7O0FBTUY7RUFDRSIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogSWRzIEJ1dHRvbiBDb21wb25lbnQgQ1NTXG4gKiAoSW5jbHVkZXMgc3RhbmRhcmQgYW5kIGljb24gYnV0dG9uIHJ1bGVzKVxuICovXG5AdXNlICcuLi8uLi90aGVtZXMvbWl4aW5zL2lkcy1jb3JlLW1peGlucycgYXMgbWl4aW5zO1xuQHVzZSAnLi9pZHMtYnV0dG9uLWJhc2UnIGFzIGJ1dHRvbjtcblxuOmhvc3Qge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICA6OnNsb3R0ZWQoc3Bhbikge1xuICAgIHZlcnRpY2FsLWFsaWduOiBib3R0b207XG4gIH1cblxuICA6OnNsb3R0ZWQoc3BhbiksXG4gIDo6c2xvdHRlZChpZHMtdGV4dCkge1xuICAgIGNvbG9yOiBjdXJyZW50Q29sb3I7XG4gICAgYWxpZ24tc2VsZjogY2VudGVyO1xuICB9XG5cbiAgOjpzbG90dGVkKGlkcy1pY29uKSB7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICBjb2xvcjogY3VycmVudENvbG9yO1xuICB9XG5cbiAgOjpzbG90dGVkKGlkcy1pY29uW2NvbXBhY3Q9J3RydWUnXSkge1xuICAgIG1hcmdpbi1pbmxpbmUtZW5kOiB2YXIoLS1pZHMtc3BhY2UtMnhzKTtcbiAgfVxuXG4gIDo6c2xvdHRlZChzcGFuLmF1ZGlibGUpIHtcbiAgICBAaW5jbHVkZSBtaXhpbnMuYXVkaWJsZSgpO1xuICB9XG5cbiAgLy8gQnV0dG9uIGVsZW1lbnRzIHNob3VsZCBmaWxsIHRoZSBzcGFjZSBpbnNpZGUgc2hhZG93IHJvb3RcbiAgYnV0dG9uLFxuICAuaWRzLWljb24tYnV0dG9uIHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbn1cblxuOmhvc3QoLmhpZGRlbikge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG46aG9zdChbc3lzdGVtLWJ1dHRvbl0pIHtcbiAgYnV0dG9uOm5vdCguaXMtYWN0aXZlKTpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0taWRzLWNvbG9yLXRyYW5zcGFyZW50KTtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLWlkcy1jb2xvci10cmFuc3BhcmVudCk7XG4gICAgY29sb3I6IHZhcigtLWlkcy1idXR0b24tc3lzdGVtLWNvbG9yLXRleHQtaG92ZXIpO1xuICB9XG59XG5cbjpob3N0KFtoaWRkZW5dKSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi8vIFJlc2V0IGJ1dHRvbiBkaXNwbGF5IHN0eWxlcyBpbnRlcm5hbGx5XG5idXR0b24ge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuXG5cbi8vIEFwcGxpZXMgdG8gYWxsIG5vbi1pY29uIGJ1dHRvbiB0eXBlc1xuLmlkcy1idXR0b24sXG4uaWRzLXRvZ2dsZS1idXR0b24sXG4uaWRzLW1lbnUtYnV0dG9uOm5vdCguaWRzLWljb24tYnV0dG9uKSxcbi5pZHMtbW9kYWwtYnV0dG9uIHtcbiAgQGluY2x1ZGUgbWl4aW5zLmFudGlhbGlhc2VkKCk7XG5cbiAgLmlkcy1pY29uIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBwbGFjZS1zZWxmOiBjZW50ZXI7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgfVxufVxuXG4uaWRzLWJ1dHRvbixcbi5pZHMtaWNvbi1idXR0b24ge1xuICAmLmNvbXBhY3Qge1xuICAgIGZvbnQtc2l6ZTogdmFyKC0taWRzLWZvbnQtc2l6ZS0yeHMpO1xuICAgIGhlaWdodDogdmFyKC0taWRzLWJ1dHRvbi1jb21wYWN0LXdpZHRoKTtcbiAgICBsaW5lLWhlaWdodDogMTZweDtcbiAgfVxufVxuXG4uaWRzLWJ1dHRvbixcbi5pZHMtbW9kYWwtYnV0dG9uXG57XG4gICYuZWxsaXBzaXMge1xuICAgIDo6c2xvdHRlZChzcGFuKSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgIG92ZXJmbG93OiBoaWRkZW4gO1xuICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgd2lkdGg6IGluaGVyaXQ7XG4gICAgICBoZWlnaHQ6IGluaGVyaXQ7XG4gICAgfVxuICB9XG59XG5cbi5pZHMtYnV0dG9uLFxuLmlkcy10b2dnbGUtYnV0dG9uLFxuLmlkcy1tZW51LWJ1dHRvbiB7XG4gIEBpbmNsdWRlIGJ1dHRvbi5pZHMtYmFzZS1idXR0b24tc3R5bGVzKCk7XG4gIEBpbmNsdWRlIGJ1dHRvbi5pZHMtc3RhbmRhcmQtYnV0dG9uLWNvbG9ycygpO1xuXG4gIC8vIEFzc2lnbiBwYWRkaW5nIGJhc2VkIG9uIHR5cGUvdXNhZ2VcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAmOm5vdCgubm8tcGFkZGluZykge1xuICAgIEBpbmNsdWRlIGJ1dHRvbi5pZHMtc3RhbmRhcmQtYnV0dG9uLXBhZGRpbmcoKTtcbiAgfVxuXG4gICYuYnRuLXRlcnRpYXJ5LFxuICAmLmJ0bi10ZXJ0aWFyeS1kZXN0cnVjdGl2ZSB7XG4gICAgQGluY2x1ZGUgYnV0dG9uLmlkcy1pbmxpbmUtYnV0dG9uLXBhZGRpbmcoKTtcbiAgfVxuXG4gICYubm8tcGFkZGluZyB7XG4gICAgQGluY2x1ZGUgYnV0dG9uLmlkcy1pbmxpbmUtYnV0dG9uLXBhZGRpbmcoKTtcbiAgfVxufVxuXG4uaWRzLW1lbnUtYnV0dG9uLnN1Yi10YWItYnV0dG9uLmlzLWFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHVuc2V0O1xufVxuXG4uaWRzLW1lbnUtYnV0dG9uLmlzLWFjdGl2ZSxcbi5pZHMtbWVudS1idXR0b24uaXMtYWN0aXZlOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0taWRzLWJ1dHRvbi1tZW51LWJhY2tncm91bmQtY29sb3ItYWN0aXZlKTtcbiAgY29sb3I6IHZhcigtLWlkcy1idXR0b24tbWVudS1jb2xvci10ZXh0LWFjdGl2ZSk7XG59XG5cbi5pZHMtbWVudS1idXR0b24uZm9ybWF0dGVyLXdpZHRoIHtcbiAgJjpub3QoLm5vLXBhZGRpbmcpOm5vdCguaWRzLWljb24tYnV0dG9uKSB7XG4gICAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6IGNhbGModmFyKC0taWRzLXNwYWNlLXhzKSAtIDFweCk7XG4gICAgcGFkZGluZy1pbmxpbmUtZW5kOiBjYWxjKHZhcigtLWlkcy1zcGFjZS14cykgLSAxcHgpO1xuICB9XG5cbiAgJjpub3QoLmZvcm1hdHRlci13aWR0aC1wZXJjZW50YWdlKSB7XG4gICAganVzdGlmeS1jb250ZW50OiBub3JtYWw7XG5cbiAgICAuaWRzLWljb24ge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgaW5zZXQtaW5saW5lLWVuZDogdmFyKC0taWRzLXNwYWNlLTJ4cyk7XG4gICAgfVxuICB9XG59XG5cbi8vIExvZyBidXR0b24gb24gbWFzdGhlYWRcbjo6c2xvdHRlZChpZHMtaWNvbltpY29uPSdsb2dvJ10pIHtcbiAgaGVpZ2h0OiAzMHB4O1xuICBvcGFjaXR5OiAwLjg7XG59XG5cbi5pZHMtaWNvbi1idXR0b24ge1xuICBAaW5jbHVkZSBidXR0b24uaWRzLWJhc2UtYnV0dG9uLXN0eWxlcygpO1xuICBAaW5jbHVkZSBidXR0b24uaWRzLXN0YW5kYXJkLWJ1dHRvbi1jb2xvcnMoKTtcblxuICAvLyBFdmVyeXRoaW5nIGJlbG93IGlzIG9ubHkgZm9yIGljb24gYnV0dG9uc1xuICAvKiBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tZHVwbGljYXRlLXNlbGVjdG9ycyAqL1xuICAmIHtcbiAgICBwYWRkaW5nLWlubGluZS1zdGFydDogdmFyKC0taWRzLWJ1dHRvbi1pY29uLXBhZGRpbmcpO1xuICAgIHBhZGRpbmctaW5saW5lLWVuZDogdmFyKC0taWRzLWJ1dHRvbi1pY29uLXBhZGRpbmcpO1xuICAgIHBhZGRpbmctYmxvY2stc3RhcnQ6IHZhcigtLWlkcy1idXR0b24taWNvbi1wYWRkaW5nKTtcbiAgICBwYWRkaW5nLWJsb2NrLWVuZDogdmFyKC0taWRzLWJ1dHRvbi1pY29uLXBhZGRpbmcpO1xuICB9XG5cbiAgJjpub3QoLm5vLXBhZGRpbmcpOm5vdCguc3ViLXRhYi1idXR0b24pIHtcbiAgICBwYWRkaW5nLWlubGluZS1zdGFydDogdmFyKC0taWRzLWJ1dHRvbi1pY29uLXBhZGRpbmcpO1xuICAgIHBhZGRpbmctaW5saW5lLWVuZDp2YXIoLS1pZHMtYnV0dG9uLWljb24tcGFkZGluZyk7XG4gICAgcGFkZGluZy10b3A6IHZhcigtLWlkcy1idXR0b24taWNvbi1wYWRkaW5nKTtcbiAgICBwYWRkaW5nLWJvdHRvbTogdmFyKC0taWRzLWJ1dHRvbi1pY29uLXBhZGRpbmcpO1xuXG4gICAgJjpub3QoLmlkcy10cmlnZ2VyLWJ1dHRvbiksXG4gICAgJjpub3QoLmNvbXBhY3QpXG4gICAgJjpub3QoLmlkcy1zdWItdGFiLWNsb3NlLWJ1dHRvbikge1xuICAgICAgaGVpZ2h0OiB2YXIoLS1pZHMtYnV0dG9uLWljb24taGVpZ2h0KTtcbiAgICAgIHdpZHRoOiB2YXIoLS1pZHMtYnV0dG9uLWljb24td2lkdGgpO1xuICAgIH1cbiAgfVxuXG4gICYuc3ViLXRhYi1idXR0b24ge1xuICAgIHBhZGRpbmc6IDA7XG4gIH1cblxuICAmOm5vdCgubm8tcGFkZGluZyk6bm90KC5pZHMtdHJpZ2dlci1idXR0b24pIHtcbiAgICAmLmNvbXBhY3Qge1xuICAgICAgaGVpZ2h0OiBjYWxjKHZhcigtLWlkcy1idXR0b24taWNvbi1jb21wYWN0LWhlaWdodCkgKyAxMHB4KTtcbiAgICAgIHdpZHRoOiBjYWxjKHZhcigtLWlkcy1idXR0b24taWNvbi1jb21wYWN0LXdpZHRoKSArIDhweCk7XG4gICAgfVxuICB9XG5cbiAgJi5jb21wYWN0IHtcbiAgICBwYWRkaW5nLWlubGluZS1zdGFydDogY2FsYyh2YXIoLS1pZHMtc3BhY2UteHMpICsgMXB4KTtcblxuICAgICYuZ2VuLWFpLWFjdGl2ZSAubG9hZGluZy1kb3RzIHtcbiAgICAgIHBhZGRpbmctaW5saW5lLXN0YXJ0OiAxcHg7XG4gICAgfVxuICB9XG5cbiAgJjpub3QoLnNxdWFyZSkge1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWlkcy1idXR0b24tcmFkaXVzKTtcbiAgfVxuXG4gICYuc3F1YXJlIHtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1pZHMtYm9yZGVyLXJhZGl1cy1ub25lKTtcblxuICAgICY6aG92ZXIge1xuICAgICAgOjpzbG90dGVkKGlkcy1pY29uW2ljb249J2xvZ28nXSkge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5pZHMtaWNvbjpub3QoLmRyb3Bkb3duLWljb24pIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwYWRkaW5nLWlubGluZS1zdGFydDogdmFyKC0taWRzLXNwYWNlLTN4cyk7XG4gICAgZm9udC1zaXplOiAwO1xuICAgIHBhZGRpbmctYmxvY2stc3RhcnQ6IHZhcigtLWlkcy1zcGFjZS0zeHMpO1xuICB9XG5cbiAgc3Bhbi5hdWRpYmxlIHtcbiAgICBAaW5jbHVkZSBtaXhpbnMuYXVkaWJsZSgpO1xuICB9XG5cbiAgJi5uby1tYXJnaW5zIHtcbiAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiB2YXIoLS1pZHMtc3BhY2Utbm9uZSk7XG4gICAgbWFyZ2luLWlubGluZS1lbmQ6IHZhcigtLWlkcy1zcGFjZS1ub25lKTtcbiAgfVxufVxuXG46aG9zdChbZmllbGQtaGVpZ2h0XSkge1xuICAuaWRzLW1lbnUtYnV0dG9uIHtcbiAgICAmLmZpZWxkLWhlaWdodC1sZyB7XG4gICAgICBoZWlnaHQ6IHZhcigtLWlkcy1idXR0b24tbWVudS1maWVsZC1oZWlnaHQtbGcpO1xuICAgIH1cblxuICAgICYuZmllbGQtaGVpZ2h0LW1kIHtcbiAgICAgIGhlaWdodDogdmFyKC0taWRzLWJ1dHRvbi1tZW51LWZpZWxkLWhlaWdodC1tZCk7XG4gICAgfVxuXG4gICAgJi5maWVsZC1oZWlnaHQtc20ge1xuICAgICAgaGVpZ2h0OiB2YXIoLS1pZHMtYnV0dG9uLW1lbnUtZmllbGQtaGVpZ2h0LXNtKTtcbiAgICB9XG5cbiAgICAmLmZpZWxkLWhlaWdodC14cyB7XG4gICAgICBoZWlnaHQ6IHZhcigtLWlkcy1idXR0b24tbWVudS1maWVsZC1oZWlnaHQteHMpO1xuICAgIH1cbiAgfVxufVxuXG4vLyBNaXgtaW4gc3BlY2lhbCBydWxlcyBmb3IgY29udGV4dHVhbCBidXR0b25zXG4uaWRzLWJ1dHRvbixcbi5pZHMtaWNvbi1idXR0b24sXG4uaWRzLW1lbnUtYnV0dG9uIHtcbiAgQGluY2x1ZGUgYnV0dG9uLmlkcy1zdGFuZGFyZC1idXR0b24tc2hhZG93cygpO1xufVxuXG4vLyBTcGVjaWZpYyBNb2RpZmljYXRpb25zIGZvciBNb2RhbCBCdXR0b25zXG4vLyBEbyBub3QgYXBwbHkgc3R5bGVzIHRvIG1vZGFsIGNsb3NlIGljb24gYnV0dG9uLCBhcHBlYXJhbmNlIGFzIGljb24gaXMgcmVxdWlyZWRcbi5pZHMtbW9kYWwtYnV0dG9uOm5vdCguaWRzLW1vZGFsLWljb24tYnV0dG9uKSB7XG4gIEBpbmNsdWRlIGJ1dHRvbi5pZHMtYmFzZS1idXR0b24tc3R5bGVzKCk7XG4gIEBpbmNsdWRlIGJ1dHRvbi5pZHMtbW9kYWwtYnV0dG9uLWNvbG9yLWRlZmF1bHRzKCk7XG5cbiAgLyogc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWR1cGxpY2F0ZS1zZWxlY3RvcnMgKi9cbiAgJiB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWlkcy1mb250LXdlaWdodC1zdHJvbmcpO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuXG4gICY6Zm9jdXMge1xuICAgIHotaW5kZXg6IDE7XG4gIH1cbn1cblxuLy8gQWRqdXN0aW5nIGhpdGJveCBmb3IgdGhlIG1vZGFsIGNsb3NlIGljb25cbi5pZHMtbW9kYWwtaWNvbi1idXR0b24ge1xuICBwYWRkaW5nOiB2YXIoLS1pZHMtc3BhY2UteHMpO1xufVxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBTd2lwZSBBY3Rpb24gQnV0dG9ucyAoU3dpcGUgYWN0aW9uIGNvbXBvbmVudClcbi5idG4tc3dpcGUtYWN0aW9uLWxlZnQsXG4uYnRuLXN3aXBlLWFjdGlvbi1yaWdodCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nOiAwIHZhcigtLWlkcy1zcGFjZS14cykgdmFyKC0taWRzLXNwYWNlLXhzKTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBtYXJnaW46IDA7XG4gIHdoaXRlLXNwYWNlOiBpbmhlcml0O1xuICB3aWR0aDogODVweDtcblxuICA6OnNsb3R0ZWQoaWRzLWljb24pIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuXG4gICY6aG92ZXIsXG4gICY6Zm9jdXMge1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1pZHMtY29sb3ItdHJhbnNwYXJlbnQpO1xuICB9XG59XG5cbi8vIG92ZXJyaWRlIGJ1dHRvbiBtYXJnaW4gZm9yIHN3aXBlIGFjdGlvbiBidXR0b25zXG4uaWRzLWJ1dHRvbjpub3QoLm5vLW1hcmdpbnMpLmJ0bi1zd2lwZS1hY3Rpb24tbGVmdCxcbi5pZHMtYnV0dG9uOm5vdCgubm8tbWFyZ2lucykuYnRuLXN3aXBlLWFjdGlvbi1yaWdodCB7XG4gIG1hcmdpbjogMDtcbn1cblxuLmJ0bi1zd2lwZS1hY3Rpb24tbGVmdCB7XG4gIGJvcmRlci1zdGFydC1lbmQtcmFkaXVzOiB2YXIoLS1pZHMtYm9yZGVyLXJhZGl1cy1ub25lKTtcbiAgYm9yZGVyLWVuZC1lbmQtcmFkaXVzOiB2YXIoLS1pZHMtYm9yZGVyLXJhZGl1cy1ub25lKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0taWRzLXN3aXBlLWFjdGlvbi1jb2xvci1iYWNrZ3JvdW5kLWxlZnQpO1xuICBjb2xvcjogdmFyKC0taWRzLXN3aXBlLWFjdGlvbi1jb2xvci10ZXh0LWxlZnQpO1xuXG4gICY6YWN0aXZlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1pZHMtc3dpcGUtYWN0aW9uLWNvbG9yLWJhY2tncm91bmQtbGVmdC1hY3RpdmUpO1xuICAgIGNvbG9yOiB2YXIoLS1pZHMtc3dpcGUtYWN0aW9uLWNvbG9yLXRleHQtbGVmdC1hY3RpdmUpXG4gIH1cblxuICAmOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1pZHMtc3dpcGUtYWN0aW9uLWNvbG9yLWJhY2tncm91bmQtbGVmdC1ob3Zlcik7XG4gICAgY29sb3I6IHZhcigtLWlkcy1zd2lwZS1hY3Rpb24tY29sb3ItdGV4dC1sZWZ0LWhvdmVyKVxuICB9XG59XG5cbi5idG4tc3dpcGUtYWN0aW9uLXJpZ2h0IHtcbiAgYm9yZGVyLXN0YXJ0LXN0YXJ0LXJhZGl1czogdmFyKC0taWRzLWJvcmRlci1yYWRpdXMtbm9uZSk7XG4gIGJvcmRlci1lbmQtc3RhcnQtcmFkaXVzOiB2YXIoLS1pZHMtYm9yZGVyLXJhZGl1cy1ub25lKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0taWRzLXN3aXBlLWFjdGlvbi1jb2xvci1iYWNrZ3JvdW5kLXJpZ2h0KTtcbiAgY29sb3I6IHZhcigtLWlkcy1zd2lwZS1hY3Rpb24tY29sb3ItdGV4dC1yaWdodCk7XG5cbiAgJjphY3RpdmUge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWlkcy1zd2lwZS1hY3Rpb24tY29sb3ItYmFja2dyb3VuZC1yaWdodC1hY3RpdmUpO1xuICAgIGNvbG9yOiB2YXIoLS1pZHMtc3dpcGUtYWN0aW9uLWNvbG9yLXRleHQtcmlnaHQtYWN0aXZlKVxuICB9XG5cbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0taWRzLXN3aXBlLWFjdGlvbi1jb2xvci1iYWNrZ3JvdW5kLXJpZ2h0LWhvdmVyKTtcbiAgICBjb2xvcjogdmFyKC0taWRzLXN3aXBlLWFjdGlvbi1jb2xvci10ZXh0LXJpZ2h0LWhvdmVyKVxuICB9XG59XG5cbi5pZHMtaWNvbi1idXR0b24uZ2VuLWFpLWFjdGl2ZSxcbi5pZHMtYnV0dG9uLmdlbi1haS1hY3RpdmUge1xuICAmOm5vdCgubm8tYW5pbWF0aW9uKSB7XG4gICAgOjpzbG90dGVkKGlkcy1pY29uW2ljb249XCJnZW5haVwiXSkge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICAubG9hZGluZy1kb3RzIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgfVxuICB9XG59XG5cbi5pZHMtaWNvbi1idXR0b24uZ2VuLWFpLWFjdGl2ZSAubG9hZGluZy1kb3RzIHtcbiAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6IDNweDtcbiAgcGFkZGluZy1pbmxpbmUtZW5kOiB2YXIoLS1pZHMtc3BhY2UtM3hzKTtcbiAgcGFkZGluZy1ibG9jay1zdGFydDogN3B4O1xuICBwYWRkaW5nLWJsb2NrLWVuZDogdmFyKC0taWRzLXNwYWNlLXhzKTtcbn1cblxuLy8gQXBwbGllcyB0byBhbGwgbm9uLWljb24gYnV0dG9uIHR5cGVzXG4uaWRzLWJ1dHRvbixcbi5pZHMtdG9nZ2xlLWJ1dHRvbixcbi5pZHMtbWVudS1idXR0b246bm90KC5pZHMtaWNvbi1idXR0b24pLFxuLmlkcy1tb2RhbC1idXR0b246bm90KC5pZHMtaWNvbi1idXR0b24pIHtcbiAgOjpzbG90dGVkKGlkcy1pY29uW2ljb249XCJnZW5haVwiXTpmaXJzdC1jaGlsZCkge1xuICAgIG1hcmdpbi1pbmxpbmUtZW5kOiA1cHg7XG4gIH1cblxuICAvLyBQYWRkaW5nIHJ1bGVzIGZvciBidXR0b25zIHRoYXQgaW5zZXJ0IGJvdGggdGV4dC9pY29uIGludG8gdGhlIGZhbGxiYWNrICh1bm5hbWVkKSBzbG90LlxuICA6OnNsb3R0ZWQoaWRzLWljb246bm90KDpmaXJzdC1jaGlsZCkpIHsgLy8gc2hhZG93cm9vdCArIHRleHQgKyBpY29uXG4gICAgbWFyZ2luLWlubGluZS1zdGFydDogNXB4O1xuICAgIG1hcmdpbi1pbmxpbmUtZW5kOiB2YXIoIC0taWRzLXNwYWNlLW5vbmUpO1xuICB9XG5cbiAgLy8gUGFkZGluZyBydWxlcyBmb3Igc3RhbmRhbG9uZSBDU1MgYnV0dG9ucyAobWF0Y2ggdGhlIHJ1bGVzL3N0eWxlIGFib3ZlKVxuICAuaWRzLWljb246bGFzdC1jaGlsZCxcbiAgc3BhbiArIHNwYW46bm90KC5hdWRpYmxlKSxcbiAgc3Bhbjpub3QoLmF1ZGlibGUpOmxhc3QtY2hpbGQge1xuICAgIHBhZGRpbmctaW5saW5lLXN0YXJ0OiA1cHg7XG4gIH1cbn1cblxuLy8gQWRqdXN0bWVudCBmb3IgYWJvdXQgY2xvc2UgaWNvblxuLmlkcy1tb2RhbC1idXR0b24ge1xuICA6OnNsb3R0ZWQoaWRzLWljb246bm90KDpmaXJzdC1jaGlsZCkpIHsgLy8gc2hhZG93cm9vdCArIHRleHQgKyBpY29uXG4gICAgcGFkZGluZzogdmFyKC0taWRzLXNwYWNlLTN4cyk7XG4gIH1cbn1cblxuLy8gTG9hZGluZyBJbmRpY2F0b3Jcbjpob3N0KDpub3QoW3Nob3ctbG9hZGluZy1pbmRpY2F0b3I9J3RydWUnXSkpIHtcbiAgOjpzbG90dGVkKC5zbG90LWxvYWRpbmctaW5kaWNhdG9yKSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuXG46aG9zdChbc2hvdy1sb2FkaW5nLWluZGljYXRvcj0ndHJ1ZSddKSB7XG4gIDo6c2xvdHRlZChpZHMtbG9hZGluZy1pbmRpY2F0b3IpIHtcbiAgICBtYXJnaW4tdG9wOiAzcHg7XG4gICAgbWFyZ2luLWJvdHRvbTogM3B4O1xuICB9XG59XG5cbjpob3N0KFtzaG93LWxvYWRpbmctaW5kaWNhdG9yPSd0cnVlJ11bbG9hZGluZy1pbmRpY2F0b3Itb25seT0ndHJ1ZSddKSB7XG4gIDo6c2xvdHRlZCgqOm5vdCguc2xvdC1sb2FkaW5nLWluZGljYXRvcikpIHtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIH1cbn1cblxuOmhvc3QoW3Nob3ctbG9hZGluZy1pbmRpY2F0b3I9J3RydWUnXTpub3QoW2xvYWRpbmctaW5kaWNhdG9yLW9ubHk9J3RydWUnXSkpIHtcbiAgOjpzbG90dGVkKC5zbG90LWxvYWRpbmctaW5kaWNhdG9yKSB7XG4gICAgbWFyZ2luLWlubGluZS1zdGFydDogNnB4O1xuICB9XG59XG5cbjpob3N0KFtzaG93LWxvYWRpbmctaW5kaWNhdG9yPSd0cnVlJ106bm90KFtsb2FkaW5nLWluZGljYXRvci1vbmx5PSd0cnVlJ10pOmlzKFthcHBlYXJhbmNlPSdwcmltYXJ5J10sIFthcHBlYXJhbmNlPSdzZWNvbmRhcnknXSwgW2FwcGVhcmFuY2U9J3ByaW1hcnktZGVzdHJ1Y3RpdmUnXSkpIHtcbiAgJjo6cGFydChidXR0b24pIHtcbiAgICBwYWRkaW5nLWlubGluZS1zdGFydDogMjBweDtcbiAgICBwYWRkaW5nLWlubGluZS1lbmQ6IDEycHg7XG4gIH1cblxuICA6OnNsb3R0ZWQoLnNsb3QtbG9hZGluZy1pbmRpY2F0b3IpIHtcbiAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiAxMHB4O1xuICB9XG59XG5cbjpob3N0KFtsb2FkaW5nLWluZGljYXRvci1vbmx5PSd0cnVlJ10pIHtcbiAgOjpzbG90dGVkKC5zbG90LWxvYWRpbmctaW5kaWNhdG9yKSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IGF1dG87XG4gICAgbWFyZ2luLWlubGluZS1lbmQ6IGF1dG87XG4gICAgbGVmdDogdmFyKC0taWRzLXNwYWNlLW5vbmUpO1xuICAgIHJpZ2h0OiB2YXIoLS1pZHMtc3BhY2Utbm9uZSk7XG4gIH1cbn1cblxuLy8gQ29sb3IgZWZmZWN0cyBvbiB0b2dnbGUgYnV0dG9uXG46aG9zdChpZHMtdG9nZ2xlLWJ1dHRvbjpub3QoLmRyb3Bkb3duLWJ0bikpIHtcbiAgLS1pZHMtYnV0dG9uLXRlcnRpYXJ5LWNvbG9yLWJhY2tncm91bmQtaG92ZXI6IHZhcigtLWlkcy1idXR0b24tdG9nZ2xlLWNvbG9yLWJhY2tncm91bmQtaG92ZXItZGVmYXVsdCk7XG4gIC0taWRzLWJ1dHRvbi10ZXJ0aWFyeS1jb2xvci10ZXh0LWhvdmVyOiB2YXIoLS1pZHMtYnV0dG9uLXRvZ2dsZS1jb2xvci10ZXh0LWhvdmVyLWRlZmF1bHQpO1xufVxuXG46aG9zdChpZHMtdG9nZ2xlLWJ1dHRvbltwcmVzc2VkXSkge1xuICAtLWlkcy1idXR0b24tdGVydGlhcnktY29sb3ItdGV4dC1kZWZhdWx0OiB2YXIoLS1pZHMtYnV0dG9uLXRvZ2dsZS1jb2xvci10ZXh0LXByZXNzZWQtZGVmYXVsdCk7XG59XG5cbjpob3N0KGlkcy10b2dnbGUtYnV0dG9uW2NvbG9yPSdvcmFuZ2UnXSkge1xuICAtLWlkcy1idXR0b24tdGVydGlhcnktY29sb3ItYmFja2dyb3VuZC1ob3ZlcjogdmFyKC0taWRzLWJ1dHRvbi10b2dnbGUtY29sb3ItYmFja2dyb3VuZC1ob3Zlci1vcmFuZ2UpO1xuICAtLWlkcy1idXR0b24tdGVydGlhcnktY29sb3ItdGV4dC1ob3ZlcjogdmFyKC0taWRzLWJ1dHRvbi10b2dnbGUtY29sb3ItdGV4dC1ob3Zlci1vcmFuZ2UpO1xufVxuXG46aG9zdChpZHMtdG9nZ2xlLWJ1dHRvbltwcmVzc2VkXVtjb2xvcj0nb3JhbmdlJ10pIHtcbiAgLS1pZHMtYnV0dG9uLXRlcnRpYXJ5LWNvbG9yLXRleHQtZGVmYXVsdDogdmFyKC0taWRzLWJ1dHRvbi10b2dnbGUtY29sb3ItdGV4dC1wcmVzc2VkLW9yYW5nZSk7XG59XG5cbjpob3N0KGlkcy10b2dnbGUtYnV0dG9uW2NvbG9yPSdyZWQnXSkge1xuICAtLWlkcy1idXR0b24tdGVydGlhcnktY29sb3ItYmFja2dyb3VuZC1ob3ZlcjogdmFyKC0taWRzLWJ1dHRvbi10b2dnbGUtY29sb3ItYmFja2dyb3VuZC1ob3Zlci1yZWQpO1xuICAtLWlkcy1idXR0b24tdGVydGlhcnktY29sb3ItdGV4dC1ob3ZlcjogdmFyKC0taWRzLWJ1dHRvbi10b2dnbGUtY29sb3ItdGV4dC1ob3Zlci1yZWQpO1xufVxuXG46aG9zdChpZHMtdG9nZ2xlLWJ1dHRvbltwcmVzc2VkXVtjb2xvcj0ncmVkJ10pIHtcbiAgLS1pZHMtYnV0dG9uLXRlcnRpYXJ5LWNvbG9yLXRleHQtZGVmYXVsdDogdmFyKC0taWRzLWJ1dHRvbi10b2dnbGUtY29sb3ItdGV4dC1wcmVzc2VkLXJlZCk7XG59XG5cbjpob3N0KGlkcy10b2dnbGUtYnV0dG9uLmlkcy10b2dnbGUtYnV0dG9uLXNlZ21lbnRlZCkge1xuICBidXR0b24ge1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWlkcy1ib3JkZXItcmFkaXVzLXNtKTtcbiAgICBmb250LXdlaWdodDogdmFyKC0taWRzLWZvbnQtd2VpZ2h0LW5vcm1hbCk7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGNvbG9yOiB2YXIoLS1pZHMtc2VnbWVudGVkLWNvbnRyb2wtdGV4dC1jb2xvcik7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1pZHMtc2VnbWVudGVkLWNvbnRyb2wtYmFja2dyb3VuZC1ob3Zlcik7XG4gICAgfVxuICB9XG59XG5cbjpob3N0KGlkcy10b2dnbGUtYnV0dG9uLmlkcy10b2dnbGUtYnV0dG9uLXNlZ21lbnRlZFtwcmVzc2VkXSkge1xuICBidXR0b24ge1xuICAgIGNvbG9yOiB2YXIoLS1pZHMtc2VnbWVudGVkLWNvbnRyb2wtdGV4dC1jb2xvcik7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0taWRzLXNlZ21lbnRlZC1jb250cm9sLWJhY2tncm91bmQtc2VsZWN0ZWQpO1xuICAgIGJveC1zaGFkb3c6IHZhcigtLWlkcy1zZWdtZW50ZWQtY29udHJvbC1ib3gtc2hhZG93KTtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuICB9XG59XG5cbi8vIE1hc3RoZWFkIHNwZWNpZmljIGJ1dHRvbiBvdmVycmlkZXNcbi5pZHMtbWFzdGhlYWQtYnV0dG9uIHtcbiAgLS1pZHMtYnV0dG9uLWZvcm1hdHRlci1jb2xvci1iYWNrZ3JvdW5kLWhvdmVyOiB0cmFuc3BhcmVudDtcbiAgLS1pZHMtYnV0dG9uLWZvcm1hdHRlci1jb2xvci10ZXh0LWhvdmVyOiB2YXIoLS1pZHMtbWFzdGhlYWQtY29sb3ItaG92ZXIpO1xuICAtLWlkcy1idXR0b24tYWx0ZXJuYXRlLWNvbG9yLXRleHQtZGVmYXVsdDogdmFyKC0taWRzLWNvbG9yLXdoaXRlLTEwMCk7XG4gIC0taWRzLWJ1dHRvbi10ZXJ0aWFyeS1jb2xvci1iYWNrZ3JvdW5kLWhvdmVyOiB2YXIoLS1pZHMtbWFzdGhlYWQtYnV0dG9uLW1lbnUtY29sb3ItYmFja2dyb3VuZC1ob3Zlcik7XG4gIC0taWRzLWJ1dHRvbi10ZXJ0aWFyeS1jb2xvci1ib3JkZXItaG92ZXI6IHRyYW5zcGFyZW50O1xuICAtLWlkcy1idXR0b24tY29sb3ItdGV4dC1kZWZhdWx0OiB2YXIoLS1pZHMtbWFzdGhlYWQtbWVudS1jb2xvci10ZXh0LWRlZmF1bHQpO1xuICAtLWlkcy1idXR0b24tdGVydGlhcnktY29sb3ItdGV4dC1kZWZhdWx0OiB2YXIoLS1pZHMtbWFzdGhlYWQtYnV0dG9uLWNvbG9yLXRleHQtZGVmYXVsdCk7XG4gIC0taWRzLWJ1dHRvbi10ZXJ0aWFyeS1jb2xvci10ZXh0LWhvdmVyOiB2YXIoLS1pZHMtbWFzdGhlYWQtYnV0dG9uLWNvbG9yLXRleHQtaG92ZXIpO1xuICAtLWlkcy1idXR0b24tbWVudS1iYWNrZ3JvdW5kLWNvbG9yLWFjdGl2ZTogdmFyKC0taWRzLW1hc3RoZWFkLWJ1dHRvbi1tZW51LWJhY2tncm91bmQtY29sb3ItYWN0aXZlKTtcbiAgLS1pZHMtYnV0dG9uLW1lbnUtY29sb3ItdGV4dC1hY3RpdmU6IHZhcigtLWlkcy1tYXN0aGVhZC1idXR0b24tbWVudS1jb2xvci10ZXh0LWFjdGl2ZSk7XG4gIC0taWRzLWJ1dHRvbi10ZXJ0aWFyeS1jb2xvci1iYWNrZ3JvdW5kLXByZXNzZWQ6IHZhcigtLWlkcy1tYXN0aGVhZC1idXR0b24tbWVudS1jb2xvci1iYWNrZ3JvdW5kLXByZXNzZWQpO1xuICAtLWlkcy1idXR0b24tdGVydGlhcnktY29sb3ItYm9yZGVyLXByZXNzZWQ6IHZhcigtLWlkcy1tYXN0aGVhZC1idXR0b24tbWVudS1jb2xvci1ib3JkZXItcHJlc3NlZCk7XG4gIC0taWRzLWJ1dHRvbi10ZXJ0aWFyeS1jb2xvci10ZXh0LXByZXNzZWQ6IHZhcigtLWlkcy1tYXN0aGVhZC1idXR0b24tbWVudS1jb2xvci10ZXh0LXByZXNzZWQpO1xuICAtLWlkcy1idXR0b24tdGVydGlhcnktc2hhZG93LWZvY3VzOiB2YXIoLS1pZHMtbWFzdGhlYWQtYnV0dG9uLW1lbnUtc2hhZG93LWZvY3VzKTtcbiAgLS1pZHMtYnV0dG9uLXRlcnRpYXJ5LWNvbG9yLWJvcmRlci1mb2N1czogdmFyKC0taWRzLW1hc3RoZWFkLWJ1dHRvbi1tZW51LWNvbG9yLWJvcmRlci1mb2N1cyk7XG59XG4iLCIvKipcbiAqIElkcyBCdXR0b24gU2FzcyBtaXhpbnMsIHVzZWQgaW4gSWRzIEJ1dHRvbiBDU1MgdG8gZGVmaW5lIGJhc2Ugc3R5bGVzLlxuICovXG5AdXNlICcuLi8uLi90aGVtZXMvbWl4aW5zL2lkcy1jb3JlLW1peGlucycgYXMgbWl4aW5zO1xuXG4vLyBNaXhpbiBmb3IgYSBcImJsYW5rXCIgc2hhZG93IChzYW1lIGFzIHRoZSBzdGFuZGFyZCBvbmUgd2l0aCBhIGNvbXBsZXRlbHkgdHJhbnNwYXJlbnQgYWxwaGEpXG5AbWl4aW4gYmxhbmstc2hhZG93KCkge1xuICBib3gtc2hhZG93OiB2YXIoLS1pZHMtc2hhZG93LW5vbmUpO1xufVxuXG4vLyBVc2VkIHRvIG1ha2UgdGhlIGZvY3VzIFwiYm9yZGVyXCIgYXBwZWFyIHRvIGJlIHNlcGFyYXRlZCBmcm9tIHRoZSBidXR0b24gKHByaW1hcnkvc2Vjb25kYXJ5IHR5cGVzKS5cbkBtaXhpbiBvdXRzZXQtYnV0dG9uLXNoYWRvdygkYmctY29sb3IsICRib3JkZXItY29sb3IpIHtcbiAgYm94LXNoYWRvdzpcbiAgICAwIDAgMCAycHggJGJnLWNvbG9yLCAvLyBiZyBjb2xvclxuICAgIDAgMCAwIDNweCAkYm9yZGVyLWNvbG9yXG59XG5cbi8vIFVzZWQgdG8gbWFrZSB0aGUgZm9jdXMgXCJib3JkZXJcIiBvbiBub24tc29saWQgYnV0dG9ucyAobW9kYWwgYnV0dG9ucywgZXRjKVxuQG1peGluIG1vZGFsLWJ1dHRvbi1zaGFkb3coKSB7XG4gIG91dGxpbmU6IDFweCBzb2xpZCB2YXIoLS1pZHMtbW9kYWwtY29sb3Itb3V0bGluZSk7XG4gIG91dGxpbmUtb2Zmc2V0OiAtMXB4O1xufVxuXG5AbWl4aW4gYWx0ZXJuYXRlLWJ1dHRvbi1zaGFkb3coKSB7XG4gIGJveC1zaGFkb3c6IHZhcigtLWlkcy1ib3gtc2hhZG93LWludmVyc2UpO1xufVxuXG4vLyBVc2VkIHRvIGluY2x1ZGUgYSBiYXNpYyBzZXQgb2YgYnV0dG9uIHN0eWxlcyB3aXRoaW4gZWFjaCBpbmRpdmlkdWFsIGJ1dHRvbiBwcm90b3R5cGUuXG5AbWl4aW4gaWRzLWJhc2UtYnV0dG9uLXN0eWxlcygpIHtcbiAgQGluY2x1ZGUgYmxhbmstc2hhZG93KCk7XG5cbiAgZm9udC13ZWlnaHQ6IHZhcigtLWlkcy1mb250LXdlaWdodC1ub3JtYWwpO1xuICBmb250LWZhbWlseTogdmFyKC0taWRzLWZvbnQtZmFtaWx5LWRlZmF1bHQpLCB2YXIoLS1pZHMtZm9udC1mYW1pbHktc3lzdGVtLXNhbnMpO1xuICBmb250LXNpemU6IHZhcigtLWlkcy1mb250LXNpemUtc20pO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwYWRkaW5nLWJvdHRvbTogY2FsYyh2YXIoLS1pZHMtc3BhY2UteHMpIC0gMnB4KTtcbiAgcGFkZGluZy10b3A6IGNhbGModmFyKC0taWRzLXNwYWNlLXhzKSAtIDJweCk7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAmLFxuICAmOjpiZWZvcmUsXG4gICY6OmFmdGVyIHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB9XG5cbiAgLy8gTm90aGluZyBpbnNpZGUgdGhlIGJ1dHRvbiBpdHNlbGYgc2hvdWxkIGFjY2VwdCBtb3VzZSBldmVudHNcbiAgKiB7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIH1cblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIC8vIEJhc2UgQnV0dG9uIHN0eWxlcyAoZGVmYXVsdC90ZXJ0aWFyeSlcblxuICAmIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1pZHMtY29sb3ItdHJhbnNwYXJlbnQpO1xuICAgIGNvbG9yOiB2YXIoLS1pZHMtYnV0dG9uLWNvbG9yLXRleHQtZGVmYXVsdCk7XG5cbiAgICAvLyBBbmltYXRlIEJHL1RleHQvQm9yZGVyIGNvbG9yIGNoYW5nZXMgb24gYWxsIHN0eWxlc1xuICAgIHRyYW5zaXRpb246XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yIHZhcigtLWlkcy1tb3Rpb24tZHVyYXRpb24pIHZhcigtLWlkcy1tb3Rpb24tZWFzZSksXG4gICAgICBib3JkZXItY29sb3IgdmFyKC0taWRzLW1vdGlvbi1kdXJhdGlvbikgdmFyKC0taWRzLW1vdGlvbi1lYXNlKSxcbiAgICAgIGNvbG9yIHZhcigtLWlkcy1tb3Rpb24tZHVyYXRpb24pIHZhcigtLWlkcy1tb3Rpb24tZWFzZSksXG4gICAgICBvcGFjaXR5IHZhcigtLWlkcy1tb3Rpb24tZHVyYXRpb24pIHZhcigtLWlkcy1tb3Rpb24tZWFzZSk7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgfVxuXG4gICY6Zm9jdXMge1xuICAgIC8vIERpc2FibGUgc3RhbmRhcmQgZm9jdXMgc3RhdGUgaW4gQ2hyb21lXG4gICAgb3V0bGluZTogbm9uZTtcbiAgICBvdXRsaW5lLWNvbG9yOiB2YXIoLS1pZHMtY29sb3ItdHJhbnNwYXJlbnQpO1xuICB9XG5cbiAgJjpub3QoW2Rpc2FibGVkXSkge1xuICAgY3Vyc29yOiB2YXIoLS1pZHMtY3Vyc29yLXBvaW50ZXIpO1xuICB9XG5cbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAvLyBTdGFuZGFyZCBlbGVtZW50IHR5cGVzIGluc2lkZSB0aGUgYnV0dG9uXG4gIHNwYW4ge1xuICAgIHZlcnRpY2FsLWFsaWduOiBib3R0b207XG5cbiAgICAmLmF1ZGlibGUge1xuICAgICAgQGluY2x1ZGUgbWl4aW5zLmF1ZGlibGUoKTtcbiAgICB9XG4gIH1cblxuICAmOm5vdCguY29sb3ItdmFyaWFudC1tb2R1bGUtbmF2KTpub3QoLmlkcy1pY29uLWJ1dHRvbik6bm90KC5hbGlnbi1pY29uLWVuZCk6bm90KC5jb21wYWN0KSA6OnNsb3R0ZWQoaWRzLWljb246bm90KFtpY29uPSdnZW5haSddKSkge1xuICAgIG1hcmdpbi1pbmxpbmUtZW5kOiBjYWxjKHZhcigtLWlkcy1zcGFjZS0yeHMpICsgM3B4KTtcbiAgfVxuXG4gIC5pZHMtaWNvbiB7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgfVxuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gQWxpZ25tZW50IGNoYW5nZXNcblxuICAmLmFsaWduLWljb24tZW5kIHtcbiAgICA6OnNsb3R0ZWQoaWRzLWljb24pIHtcbiAgICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IHZhcigtLWlkcy1zcGFjZS0yeHMpO1xuICAgIH1cbiAgfVxuXG4gICYuY29udGVudC1hbGlnbi1zdGFydCB7XG4gICAganVzdGlmeS1jb250ZW50OiBzdGFydDtcbiAgfVxuXG4gICYuY29udGVudC1hbGlnbi1lbmQge1xuICAgIGp1c3RpZnktY29udGVudDogZW5kO1xuICB9XG5cbiAgJi5uby1tYXJnaW5zIHtcbiAgICBtYXJnaW4taW5saW5lOiB2YXIoLS1pZHMtc3BhY2Utbm9uZSk7XG4gIH1cblxuICAmLmZpZWxkLWhlaWdodC14eHM6bm90KC5idG4tc2Vjb25kYXJ5KTpub3QoLm5vLW1hcmdpbnMpIHtcbiAgICBtYXJnaW4tYmxvY2stc3RhcnQ6IDNweDtcbiAgICBtYXJnaW4taW5saW5lLWVuZDogLTJweDtcbiAgICBoZWlnaHQ6IDIycHg7XG4gICAgd2lkdGg6IDIycHg7XG4gIH1cblxuICA6OnNsb3R0ZWQoc3Bhbikge1xuICAgIC8vIGltcG9ydGFudCBkdWUgdG8gcmVzZXQgaW4gZW50ZXJwcmlzZVxuICAgIGZvbnQtd2VpZ2h0OiBpbmhlcml0ICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLyoqXG4gKiBQcm92aWRlcyBzdGFuZGFyZGl6ZWQgcGFkZGluZyBydWxlcyBmb3IgY2VydGFpbiBidXR0b24gdHlwZXNcbiAqL1xuQG1peGluIGlkcy1zdGFuZGFyZC1idXR0b24tcGFkZGluZygpIHtcbiAgcGFkZGluZy1pbmxpbmU6IHZhcigtLWlkcy1idXR0b24tcGFkZGluZy1pbmxpbmUpO1xufVxuXG5AbWl4aW4gaWRzLWlubGluZS1idXR0b24tcGFkZGluZygpIHtcbiAgcGFkZGluZy1pbmxpbmU6IHZhcigtLWlkcy1zcGFjZS0xMik7XG59XG5cbi8qKlxuICogUHJvdmlkZXMgdGhlIHN0YW5kYXJkIGNvbG9yIHJ1bGVzIGZvciBhbGwgcmVndWxhciBidXR0b25zXG4gKi9cbkBtaXhpbiBpZHMtc3RhbmRhcmQtYnV0dG9uLWNvbG9ycygpIHtcbiAgJiB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWlkcy1idXR0b24tdGVydGlhcnktZm9udC13ZWlnaHQpO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWlkcy1idXR0b24tcmFkaXVzKTtcblxuICAgIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgICAvLyBEZWZhdWx0L1RlcnRpYXJ5IEJ1dHRvblxuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWlkcy1idXR0b24tdGVydGlhcnktY29sb3ItYmFja2dyb3VuZC1kZWZhdWx0KTtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLWlkcy1idXR0b24tdGVydGlhcnktY29sb3ItYm9yZGVyLWRlZmF1bHQpO1xuICAgIGNvbG9yOiB2YXIoLS1pZHMtYnV0dG9uLXRlcnRpYXJ5LWNvbG9yLXRleHQtZGVmYXVsdCk7XG4gIH1cblxuICAmOm5vdCguaGlkZS1mb2N1cykuaXMtYWN0aXZlLFxuICAmOm5vdCguaGlkZS1mb2N1cykuaXMtZm9jdXNlZCxcbiAgJjpub3QoLmhpZGUtZm9jdXMpOmZvY3VzLFxuICAmOm5vdCguaGlkZS1mb2N1cyk6Zm9jdXMtd2l0aGluIHtcbiAgICAmOm5vdChbcmVhZG9ubHldKSB7XG4gICAgICBib3JkZXItY29sb3I6IHZhcigtLWlkcy1idXR0b24tdGVydGlhcnktY29sb3ItYm9yZGVyLWZvY3VzKTtcbiAgICB9XG4gIH1cblxuICAmOmhvdmVyIHtcbiAgICBjb2xvcjogdmFyKC0taWRzLWJ1dHRvbi10ZXJ0aWFyeS1jb2xvci10ZXh0LWhvdmVyKTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1pZHMtYnV0dG9uLXRlcnRpYXJ5LWNvbG9yLWJhY2tncm91bmQtaG92ZXIpO1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0taWRzLWJ1dHRvbi10ZXJ0aWFyeS1jb2xvci1ib3JkZXItaG92ZXIpO1xuICB9XG5cbiAgJltkaXNhYmxlZF0ge1xuICAgIGNvbG9yOiB2YXIoLS1pZHMtYnV0dG9uLXRlcnRpYXJ5LWNvbG9yLXRleHQtZGlzYWJsZWQpO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWlkcy1idXR0b24tdGVydGlhcnktY29sb3ItYmFja2dyb3VuZC1kaXNhYmxlZCk7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1pZHMtYnV0dG9uLXRlcnRpYXJ5LWNvbG9yLWJvcmRlci1kaXNhYmxlZCk7XG4gICAgb3BhY2l0eTogdmFyKC0taWRzLWJ1dHRvbi10ZXJ0aWFyeS1vcGFjaXR5LWRpc2FibGVkKTtcbiAgfVxuXG4gICY6YWN0aXZlOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0taWRzLWJ1dHRvbi10ZXJ0aWFyeS1jb2xvci1iYWNrZ3JvdW5kLXByZXNzZWQpO1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0taWRzLWJ1dHRvbi10ZXJ0aWFyeS1jb2xvci1ib3JkZXItcHJlc3NlZCk7XG4gICAgY29sb3I6IHZhcigtLWlkcy1idXR0b24tdGVydGlhcnktY29sb3ItdGV4dC1wcmVzc2VkKTtcbiAgfVxuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gVGVydGlhcnkgRGVzdHJ1Y3RpdmUgQnV0dG9uXG4gICYuYnRuLXRlcnRpYXJ5LWRlc3RydWN0aXZlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1pZHMtYnV0dG9uLWRlc3RydWN0aXZlLXRlcnRpYXJ5LWNvbG9yLWJhY2tncm91bmQtZGVmYXVsdCk7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1pZHMtYnV0dG9uLWRlc3RydWN0aXZlLXRlcnRpYXJ5LWNvbG9yLWJvcmRlci1kZWZhdWx0KTtcbiAgICBjb2xvcjogdmFyKC0taWRzLWJ1dHRvbi1kZXN0cnVjdGl2ZS10ZXJ0aWFyeS1jb2xvci10ZXh0LWRlZmF1bHQpO1xuXG4gICAgJjpub3QoLmhpZGUtZm9jdXMpLmlzLWFjdGl2ZSxcbiAgICAmOm5vdCguaGlkZS1mb2N1cykuaXMtZm9jdXNlZCxcbiAgICAmOm5vdCguaGlkZS1mb2N1cykuZm9jdXMtd2l0aGluLFxuICAgICY6bm90KC5oaWRlLWZvY3VzKTpmb2N1cyB7XG4gICAgICBib3JkZXItY29sb3I6IHZhcigtLWlkcy1idXR0b24tZGVzdHJ1Y3RpdmUtdGVydGlhcnktY29sb3ItYm9yZGVyLWZvY3VzKTtcbiAgICB9XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWlkcy1idXR0b24tZGVzdHJ1Y3RpdmUtdGVydGlhcnktY29sb3ItYmFja2dyb3VuZC1ob3Zlcik7XG4gICAgICBib3JkZXItY29sb3I6IHZhcigtLWlkcy1idXR0b24tZGVzdHJ1Y3RpdmUtdGVydGlhcnktY29sb3ItYm9yZGVyLWhvdmVyKTtcbiAgICAgIGNvbG9yOiB2YXIoLS1pZHMtYnV0dG9uLWRlc3RydWN0aXZlLXRlcnRpYXJ5LWNvbG9yLXRleHQtaG92ZXIpO1xuICAgIH1cblxuICAgICZbZGlzYWJsZWRdIHtcbiAgICAgIGNvbG9yOiB2YXIoLS1pZHMtYnV0dG9uLWRlc3RydWN0aXZlLXRlcnRpYXJ5LWNvbG9yLXRleHQtZGlzYWJsZWQpO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0taWRzLWJ1dHRvbi1kZXN0cnVjdGl2ZS10ZXJ0aWFyeS1jb2xvci1iYWNrZ3JvdW5kLWRpc2FibGVkKTtcbiAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0taWRzLWJ1dHRvbi1kZXN0cnVjdGl2ZS10ZXJ0aWFyeS1jb2xvci1ib3JkZXItZGlzYWJsZWQpO1xuICAgIH1cbiAgfVxuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gUHJpbWFyeSBCdXR0b25cblxuICAmLmJ0bi1wcmltYXJ5IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1pZHMtYnV0dG9uLXByaW1hcnktY29sb3ItYmFja2dyb3VuZC1kZWZhdWx0KTtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLWlkcy1idXR0b24tcHJpbWFyeS1jb2xvci1ib3JkZXItZGVmYXVsdCk7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0taWRzLWJ1dHRvbi1wcmltYXJ5LWNvbG9yLWJvcmRlci1kZWZhdWx0KTtcbiAgICBjb2xvcjogdmFyKC0taWRzLWJ1dHRvbi1wcmltYXJ5LWNvbG9yLXRleHQtZGVmYXVsdCk7XG4gICAgcGFkZGluZy1ib3R0b206IGNhbGModmFyKC0taWRzLXNwYWNlLXhzKSAtIDJweCk7XG4gICAgcGFkZGluZy10b3A6IGNhbGModmFyKC0taWRzLXNwYWNlLXhzKSAtIDJweCk7XG5cbiAgICAmOm5vdCguaGlkZS1mb2N1cykuaXMtYWN0aXZlLFxuICAgICY6bm90KC5oaWRlLWZvY3VzKS5pcy1mb2N1c2VkLFxuICAgICY6bm90KC5oaWRlLWZvY3VzKS5mb2N1cy13aXRoaW4sXG4gICAgJjpub3QoLmhpZGUtZm9jdXMpOmZvY3VzIHtcbiAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0taWRzLWJ1dHRvbi1wcmltYXJ5LWNvbG9yLWJvcmRlci1mb2N1cyk7XG4gICAgfVxuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1pZHMtYnV0dG9uLXByaW1hcnktY29sb3ItYmFja2dyb3VuZC1ob3Zlcik7XG4gICAgICBib3JkZXItY29sb3I6IHZhcigtLWlkcy1idXR0b24tcHJpbWFyeS1jb2xvci1ib3JkZXItaG92ZXIpO1xuICAgIH1cblxuICAgICZbZGlzYWJsZWRdIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWlkcy1idXR0b24tcHJpbWFyeS1jb2xvci1iYWNrZ3JvdW5kLWRpc2FibGVkKTtcbiAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0taWRzLWJ1dHRvbi1wcmltYXJ5LWNvbG9yLWJvcmRlci1kaXNhYmxlZCk7XG4gICAgICBjb2xvcjogdmFyKC0taWRzLWJ1dHRvbi1wcmltYXJ5LWNvbG9yLXRleHQtZGlzYWJsZWQpO1xuICAgICAgb3BhY2l0eTogdmFyKC0taWRzLWJ1dHRvbi1wcmltYXJ5LW9wYWNpdHktZGlzYWJsZWQpO1xuICAgIH1cblxuICAgICY6YWN0aXZlOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1pZHMtYnV0dG9uLXByaW1hcnktY29sb3ItYmFja2dyb3VuZC1wcmVzc2VkKTtcbiAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0taWRzLWJ1dHRvbi1wcmltYXJ5LWNvbG9yLWJvcmRlci1wcmVzc2VkKTtcbiAgICAgIGNvbG9yOiB2YXIoLS1pZHMtYnV0dG9uLXByaW1hcnktY29sb3ItdGV4dC1wcmVzc2VkKTtcbiAgICB9XG4gIH1cblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIC8vIFByaW1hcnkgRGVzdHJ1Y3RpdmUgQnV0dG9uXG5cbiAgJi5idG4tcHJpbWFyeS1kZXN0cnVjdGl2ZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0taWRzLWJ1dHRvbi1kZXN0cnVjdGl2ZS1jb2xvci1iYWNrZ3JvdW5kLWRlZmF1bHQpO1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0taWRzLWJ1dHRvbi1kZXN0cnVjdGl2ZS1jb2xvci1ib3JkZXItZGVmYXVsdCk7XG4gICAgY29sb3I6IHZhcigtLWlkcy1idXR0b24tZGVzdHJ1Y3RpdmUtY29sb3ItdGV4dC1kZWZhdWx0KTtcblxuICAgICY6bm90KC5oaWRlLWZvY3VzKS5pcy1hY3RpdmUsXG4gICAgJjpub3QoLmhpZGUtZm9jdXMpLmlzLWZvY3VzZWQsXG4gICAgJjpub3QoLmhpZGUtZm9jdXMpLmZvY3VzLXdpdGhpbixcbiAgICAmOm5vdCguaGlkZS1mb2N1cyk6Zm9jdXMge1xuICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1pZHMtYnV0dG9uLWRlc3RydWN0aXZlLWNvbG9yLWJvcmRlci1mb2N1cyk7XG4gICAgfVxuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1pZHMtYnV0dG9uLWRlc3RydWN0aXZlLWNvbG9yLWJhY2tncm91bmQtaG92ZXIpO1xuICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1pZHMtYnV0dG9uLWRlc3RydWN0aXZlLWNvbG9yLWJvcmRlci1ob3Zlcik7XG4gICAgICBjb2xvcjogdmFyKC0taWRzLWJ1dHRvbi1kZXN0cnVjdGl2ZS1jb2xvci10ZXh0LWhvdmVyKTtcbiAgICB9XG5cbiAgICAmW2Rpc2FibGVkXSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1pZHMtYnV0dG9uLWRlc3RydWN0aXZlLWNvbG9yLWJhY2tncm91bmQtZGlzYWJsZWQpO1xuICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1pZHMtYnV0dG9uLWRlc3RydWN0aXZlLWNvbG9yLWJvcmRlci1kaXNhYmxlZCk7XG4gICAgICBjb2xvcjogdmFyKC0taWRzLWJ1dHRvbi1kZXN0cnVjdGl2ZS1jb2xvci10ZXh0LWRpc2FibGVkKTtcbiAgICAgIG9wYWNpdHk6IHZhcigtLWlkcy1idXR0b24tZGVzdHJ1Y3RpdmUtb3BhY2l0eS1kaXNhYmxlZCk7XG4gICAgfVxuICB9XG5cbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAvLyBQcmltYXJ5IEdlbmVyYXRpdmUgQUkgQnV0dG9uXG4gIEBrZXlmcmFtZXMgZG90LWZsYXNoaW5nIHtcbiAgICAwJSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1pZHMtYnV0dG9uLWFpLWNvbG9yLWxvYWRpbmctZG90LXByaW1hcnktc3RlcC0xKTtcbiAgICB9XG5cbiAgICA1MCUsXG4gICAgMTAwJSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWlkcy1idXR0b24tYWktY29sb3ItbG9hZGluZy1kb3QtcHJpbWFyeS1zdGVwLTIpO1xuICAgIH1cbiAgfVxuXG4gIEBrZXlmcmFtZXMgZG90LWZsYXNoaW5nLWNvbG9ycy1zZWNvbmRhcnkge1xuICAgIDAlIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWlkcy1idXR0b24tYWktY29sb3ItbG9hZGluZy1kb3Qtc2Vjb25kYXJ5LXN0ZXAtMSk7XG4gICAgfVxuXG4gICAgNTAlLFxuICAgIDEwMCUge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1pZHMtYnV0dG9uLWFpLWNvbG9yLWxvYWRpbmctZG90LXNlY29uZGFyeS1zdGVwLTIpXG4gICAgfVxuICB9XG5cbiAgQGtleWZyYW1lcyBkb3QtZmxhc2hpbmctY29sb3JzLXRlcnRpYXJ5IHtcbiAgICAwJSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1pZHMtYnV0dG9uLWFpLWNvbG9yLWxvYWRpbmctZG90LXRlcnRpYXJ5LXN0ZXAtMSk7XG4gICAgfVxuXG4gICAgNTAlLFxuICAgIDEwMCUge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1pZHMtYnV0dG9uLWFpLWNvbG9yLWxvYWRpbmctZG90LXRlcnRpYXJ5LXN0ZXAtMilcbiAgICB9XG4gIH1cblxuICAubG9hZGluZy1kb3RzLXN0YXJ0IHtcbiAgICBwYWRkaW5nLWlubGluZS1zdGFydDogM3B4ICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZy1pbmxpbmUtZW5kOiA3cHggIWltcG9ydGFudDtcbiAgICBnYXA6IDJweDtcbiAgfVxuXG4gIC5sb2FkaW5nLWRvdHMge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgZ2FwOiAycHg7XG4gICAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6IDdweDtcbiAgICBwYWRkaW5nLWlubGluZS1lbmQ6IDNweDtcblxuICAgIC5kb3Qge1xuICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICB3aWR0aDogM3B4O1xuICAgICAgaGVpZ2h0OiAzcHg7XG4gICAgICBib3JkZXItcmFkaXVzOiA1cHg7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1pZHMtYnV0dG9uLWFpLWNvbG9yLWxvYWRpbmctZG90LWRlZmF1bHQpO1xuICAgICAgY29sb3I6ICB2YXIoLS1pZHMtYnV0dG9uLWFpLWNvbG9yLWxvYWRpbmctZG90LWRlZmF1bHQpO1xuICAgIH1cbiAgfVxuXG4gICYuYnRuLXByaW1hcnktZ2VuZXJhdGl2ZS1haSB7XG4gICAgLS1pZHMtYnV0dG9uLWFpLXNwYXJrbGUtaWNvbi1jb2xvci1maWxsOiB2YXIoLS1pZHMtYnV0dG9uLWFpLXByaW1hcnktc3BhcmtsZS1pY29uLWNvbG9yLWZpbGwpO1xuXG4gICAgYmFja2dyb3VuZDogYm9yZGVyLWJveCB2YXIoLS1pZHMtYnV0dG9uLWFpLWNvbG9yLWJhY2tncm91bmQtZGVmYXVsdCk7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGNvbG9yOiB2YXIoLS1pZHMtYnV0dG9uLWFpLWNvbG9yLXRleHQtZGVmYXVsdCk7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBtaW4td2lkdGg6IDM0cHg7XG4gICAgbWluLWhlaWdodDogMzRweDtcblxuICAgICYuY29tcGFjdCB7XG4gICAgICBtaW4td2lkdGg6IHZhcigtLWlkcy1idXR0b24tY29tcGFjdC13aWR0aCk7XG4gICAgICBtaW4taGVpZ2h0OiB2YXIoLS1pZHMtYnV0dG9uLWNvbXBhY3Qtd2lkdGgpO1xuICAgIH1cblxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZDogYm9yZGVyLWJveCB2YXIoLS1pZHMtYnV0dG9uLWFpLWNvbG9yLWJhY2tncm91bmQtaG92ZXIpO1xuICAgIH1cblxuICAgICY6YWN0aXZlLFxuICAgICYuZ2VuLWFpLWFjdGl2ZSB7XG4gICAgICBiYWNrZ3JvdW5kOiBib3JkZXItYm94IHZhcigtLWlkcy1idXR0b24tYWktY29sb3ItYmFja2dyb3VuZC1hY3RpdmUpO1xuICAgICAgY29sb3I6IHZhcigtLWlkcy1idXR0b24tYWktY29sb3ItdGV4dC1hY3RpdmUpO1xuICAgIH1cblxuICAgICZbZGlzYWJsZWRdIHtcbiAgICAgIGJhY2tncm91bmQ6IGJvcmRlci1ib3ggdmFyKC0taWRzLWJ1dHRvbi1haS1jb2xvci1iYWNrZ3JvdW5kLWRpc2FibGVkKTtcbiAgICB9XG5cbiAgICAmLmNvbG9yLXZhcmlhbnQtYWx0ZXJuYXRlLWZvcm1hdHRlcixcbiAgICAmLmNvbG9yLXZhcmlhbnQtYWx0ZXJuYXRlLWZvcm1hdHRlcjpob3ZlciB7XG4gICAgICBjb2xvcjogdmFyKC0taWRzLWNvbG9yLXdoaXRlLTEwMCk7XG4gICAgICBtaW4taGVpZ2h0OiB2YXIoLS1pZHMtYnV0dG9uLWZvcm1hdHRlci1zaXplKTtcbiAgICAgIG1pbi13aWR0aDogMzRweDtcbiAgICB9XG5cbiAgICAubG9hZGluZy1kb3RzIHtcbiAgICAgIC5kb3Q6bnRoLWNoaWxkKDEpIHtcbiAgICAgICAgYW5pbWF0aW9uOiBkb3QtZmxhc2hpbmcgMXMgaW5maW5pdGUgYWx0ZXJuYXRlO1xuICAgICAgICBhbmltYXRpb24tZGVsYXk6IDBzO1xuICAgICAgfVxuXG4gICAgICAuZG90Om50aC1jaGlsZCgyKSB7XG4gICAgICAgIGFuaW1hdGlvbjogZG90LWZsYXNoaW5nIDFzIGluZmluaXRlIGxpbmVhciBhbHRlcm5hdGU7XG4gICAgICAgIGFuaW1hdGlvbi1kZWxheTogMC41cztcbiAgICAgIH1cblxuICAgICAgLmRvdDpudGgtY2hpbGQoMykge1xuICAgICAgICBhbmltYXRpb246IGRvdC1mbGFzaGluZyAxcyBpbmZpbml0ZSBhbHRlcm5hdGU7XG4gICAgICAgIGFuaW1hdGlvbi1kZWxheTogMXM7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAvLyBTZWNvbmRhcnkgR2VuZXJhdGl2ZSBCdXR0b25cbiAgJi5idG4tc2Vjb25kYXJ5LWdlbmVyYXRpdmUtYWkge1xuICAgIC0taWRzLWJ1dHRvbi1haS1zcGFya2xlLWljb24tY29sb3ItZmlsbDogdmFyKC0taWRzLWJ1dHRvbi1haS1zZWNvbmRhcnktc3BhcmtsZS1pY29uLWNvbG9yLWZpbGwpO1xuXG4gICAgYmFja2dyb3VuZDogdmFyKC0taWRzLWJ1dHRvbi1haS1zZWNvbmRhcnktY29sb3ItYmFja2dyb3VuZC1kZWZhdWx0KTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1pZHMtYnV0dG9uLWFpLXNlY29uZGFyeS1jb2xvci1ib3JkZXItZGVmYXVsdCk7XG4gICAgY29sb3I6IHZhcigtLWlkcy1idXR0b24tYWktc2Vjb25kYXJ5LWNvbG9yLWRlZmF1bHQpO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICAmOmhvdmVyOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1pZHMtYnV0dG9uLWFpLXNlY29uZGFyeS1jb2xvci1iYWNrZ3JvdW5kLWhvdmVyKTtcbiAgICAgIGNvbG9yOiB2YXIoLS1pZHMtYnV0dG9uLWFpLXNlY29uZGFyeS1jb2xvci1ob3Zlcik7XG4gICAgICBib3JkZXItY29sb3I6IHZhcigtLWlkcy1idXR0b24tYWktc2Vjb25kYXJ5LWNvbG9yLWJvcmRlci1ob3Zlcik7XG4gICAgfVxuXG4gICAgJjphY3RpdmU6bm90KFtkaXNhYmxlZF0pIHtcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLWlkcy1idXR0b24tYWktc2Vjb25kYXJ5LWNvbG9yLWJhY2tncm91bmQtYWN0aXZlKTtcbiAgICAgIGNvbG9yOiB2YXIoLS1pZHMtYnV0dG9uLWFpLXNlY29uZGFyeS1jb2xvci1hY3RpdmUpO1xuICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1pZHMtYnV0dG9uLWFpLXNlY29uZGFyeS1jb2xvci1ib3JkZXItYWN0aXZlKTtcbiAgICB9XG5cbiAgICA6OnNsb3R0ZWQoaWRzLWljb25baWNvbj1cImdlbmFpXCJdKSB7XG4gICAgICAtLWlkcy1idXR0b24tYWktY29sb3ItaWNvbi1wcmltYXJ5OiB2YXIoLS1pZHMtYnV0dG9uLWFpLWNvbG9yLWljb24tcHJpbWFyeS1ob3Zlcik7XG4gICAgICAtLWlkcy1idXR0b24tYWktY29sb3ItaWNvbi1zZWNvbmRhcnk6IHZhcigtLWlkcy1idXR0b24tYWktY29sb3ItaWNvbi1zZWNvbmRhcnktaG92ZXIpO1xuICAgIH1cblxuICAgICYuZ2VuLWFpLWFjdGl2ZSB7XG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1pZHMtYnV0dG9uLWFpLXNlY29uZGFyeS1jb2xvci1iYWNrZ3JvdW5kLWFjdGl2ZSk7XG4gICAgfVxuXG4gICAgJltkaXNhYmxlZF0ge1xuICAgICAgb3BhY2l0eTogdmFyKC0taWRzLWJ1dHRvbi1haS1vcGFjaXR5LWRpc2FibGVkKTtcbiAgICB9XG5cbiAgICAvLyBMb2FkaW5nIGRvdHMgYW5pbWF0aW9uXG4gICAgLmxvYWRpbmctZG90cyB7XG4gICAgICAuZG90IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0taWRzLWJ1dHRvbi1haS1jb2xvci1sb2FkaW5nLWRvdC1zZWNvbmRhcnkpO1xuICAgICAgICBjb2xvcjogdmFyKC0taWRzLWJ1dHRvbi1haS1jb2xvci1sb2FkaW5nLWRvdC1zZWNvbmRhcnkpO1xuICAgICAgfVxuXG4gICAgICAuZG90Om50aC1jaGlsZCgxKSB7XG4gICAgICAgIGFuaW1hdGlvbjogZG90LWZsYXNoaW5nLWNvbG9ycy1zZWNvbmRhcnkgMXMgaW5maW5pdGUgYWx0ZXJuYXRlO1xuICAgICAgICBhbmltYXRpb24tZGVsYXk6IDBzO1xuICAgICAgfVxuXG4gICAgICAuZG90Om50aC1jaGlsZCgyKSB7XG4gICAgICAgIGFuaW1hdGlvbjogZG90LWZsYXNoaW5nLWNvbG9ycy1zZWNvbmRhcnkgMXMgaW5maW5pdGUgbGluZWFyIGFsdGVybmF0ZTtcbiAgICAgICAgYW5pbWF0aW9uLWRlbGF5OiAwLjVzO1xuICAgICAgfVxuXG4gICAgICAuZG90Om50aC1jaGlsZCgzKSB7XG4gICAgICAgIGFuaW1hdGlvbjogZG90LWZsYXNoaW5nLWNvbG9ycy1zZWNvbmRhcnkgMXMgaW5maW5pdGUgYWx0ZXJuYXRlO1xuICAgICAgICBhbmltYXRpb24tZGVsYXk6IDFzO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gVGVydGlhcnkgR2VuZXJhdGl2ZSBCdXR0b25cbiAgJi5idG4tdGVydGlhcnktZ2VuZXJhdGl2ZS1haSB7XG4gICAgLS1pZHMtYnV0dG9uLXRlcnRpYXJ5LWFpLXNoYWRvdy1mb2N1czogdmFyKC0taWRzLWJ1dHRvbi10ZXJ0aWFyeS1zaGFkb3ctZm9jdXMpO1xuICAgIC0taWRzLWJ1dHRvbi1haS1jb2xvci1pY29uLXNlY29uZGFyeS1ob3ZlcjogdmFyKC0taWRzLWNvbG9yLWFjdGlvbi1zdHJvbmdlcik7XG4gICAgLS1pZHMtYnV0dG9uLWFpLXNwYXJrbGUtaWNvbi1jb2xvci1maWxsOiB2YXIoLS1pZHMtYnV0dG9uLWFpLXRlcnRpYXJ5LXNwYXJrbGUtaWNvbi1jb2xvci1maWxsKTtcblxuICAgIGJhY2tncm91bmQ6IHZhcigtLWlkcy1idXR0b24tYWktdGVydGlhcnktY29sb3ItYmFja2dyb3VuZC1kZWZhdWx0KTtcbiAgICBiYWNrZ3JvdW5kLWNsaXA6IHRleHQ7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBjb2xvcjogdmFyKC0taWRzLWJ1dHRvbi1haS10ZXJ0aWFyeS1jb2xvci10ZXh0LWRlZmF1bHQpO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1pZHMtYnV0dG9uLWFpLXRlcnRpYXJ5LWNvbG9yLWJhY2tncm91bmQtaG92ZXIpO1xuICAgIH1cblxuICAgIDo6c2xvdHRlZChpZHMtaWNvbltpY29uPVwiZ2VuYWlcIl0pIHtcbiAgICAgIC0taWRzLWJ1dHRvbi1haS1jb2xvci1pY29uLXByaW1hcnk6IHZhcigtLWlkcy1idXR0b24tYWktdGVydGlhcnktY29sb3ItdGV4dC1kZWZhdWx0KTtcbiAgICAgIC0taWRzLWJ1dHRvbi1haS1jb2xvci1pY29uLXNlY29uZGFyeTogdmFyKC0taWRzLWJ1dHRvbi1haS10ZXJ0aWFyeS1jb2xvci10ZXh0LWRlZmF1bHQpO1xuICAgIH1cblxuICAgICY6YWN0aXZlLFxuICAgICYuZ2VuLWFpLWFjdGl2ZSB7XG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1pZHMtYnV0dG9uLWFpLXRlcnRpYXJ5LWNvbG9yLWJhY2tncm91bmQtYWN0aXZlKTtcbiAgICB9XG5cbiAgICAmW2Rpc2FibGVkXSB7XG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1pZHMtYnV0dG9uLXRlcnRpYXJ5LWFpLWNvbG9yLWJhY2tncm91bmQtZGlzYWJsZWQpO1xuICAgICAgb3BhY2l0eTogdmFyKC0taWRzLWJ1dHRvbi1haS1vcGFjaXR5LWRpc2FibGVkKTtcbiAgICB9XG5cbiAgICAvLyBMb2FkaW5nIGRvdHMgYW5pbWF0aW9uXG4gICAgLmxvYWRpbmctZG90cyB7XG4gICAgICAuZG90Om50aC1jaGlsZCgxKSB7XG4gICAgICAgIGFuaW1hdGlvbjogZG90LWZsYXNoaW5nLWNvbG9ycy10ZXJ0aWFyeSAxcyBpbmZpbml0ZSBhbHRlcm5hdGU7XG4gICAgICAgIGFuaW1hdGlvbi1kZWxheTogMHM7XG4gICAgICB9XG5cbiAgICAgIC5kb3Q6bnRoLWNoaWxkKDIpIHtcbiAgICAgICAgYW5pbWF0aW9uOiBkb3QtZmxhc2hpbmctY29sb3JzLXRlcnRpYXJ5IDFzIGluZmluaXRlIGxpbmVhciBhbHRlcm5hdGU7XG4gICAgICAgIGFuaW1hdGlvbi1kZWxheTogMC41cztcbiAgICAgIH1cblxuICAgICAgLmRvdDpudGgtY2hpbGQoMykge1xuICAgICAgICBhbmltYXRpb246IGRvdC1mbGFzaGluZy1jb2xvcnMtdGVydGlhcnkgMXMgaW5maW5pdGUgYWx0ZXJuYXRlO1xuICAgICAgICBhbmltYXRpb24tZGVsYXk6IDFzO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gU2Vjb25kYXJ5IEJ1dHRvblxuICAmLmJ0bi1zZWNvbmRhcnkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWlkcy1idXR0b24tc2Vjb25kYXJ5LWNvbG9yLWJhY2tncm91bmQtZGVmYXVsdCk7XG4gICAgYm9yZGVyLXdpZHRoOiB2YXIoLS1pZHMtYnV0dG9uLXNlY29uZGFyeS1ib3JkZXItd2lkdGgpO1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0taWRzLWJ1dHRvbi1zZWNvbmRhcnktY29sb3ItYm9yZGVyLWRlZmF1bHQpO1xuICAgIGNvbG9yOiB2YXIoLS1pZHMtYnV0dG9uLXNlY29uZGFyeS1jb2xvci10ZXh0LWRlZmF1bHQpO1xuXG4gICAgJjpub3QoLmhpZGUtZm9jdXMpLmlzLWFjdGl2ZSxcbiAgICAmOm5vdCguaGlkZS1mb2N1cykuaXMtZm9jdXNlZCxcbiAgICAmOm5vdCguaGlkZS1mb2N1cykuZm9jdXMtd2l0aGluLFxuICAgICY6bm90KC5oaWRlLWZvY3VzKTpmb2N1cyB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1pZHMtYnV0dG9uLXNlY29uZGFyeS1jb2xvci1iYWNrZ3JvdW5kLWZvY3VzKTtcbiAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0taWRzLWJ1dHRvbi1zZWNvbmRhcnktY29sb3ItYm9yZGVyLWZvY3VzKTtcbiAgICB9XG5cbiAgICAmOmhvdmVyOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1pZHMtYnV0dG9uLXNlY29uZGFyeS1jb2xvci1iYWNrZ3JvdW5kLWhvdmVyKTtcbiAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0taWRzLWJ1dHRvbi1zZWNvbmRhcnktY29sb3ItYm9yZGVyLWhvdmVyKTtcbiAgICAgIGNvbG9yOiB2YXIoLS1pZHMtYnV0dG9uLXNlY29uZGFyeS1jb2xvci10ZXh0LWhvdmVyKTtcbiAgICB9XG5cbiAgICAmW2Rpc2FibGVkXSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1pZHMtYnV0dG9uLXNlY29uZGFyeS1jb2xvci1iYWNrZ3JvdW5kLWRpc2FibGVkKTtcbiAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0taWRzLWJ1dHRvbi1zZWNvbmRhcnktY29sb3ItYm9yZGVyLWRpc2FibGVkKTtcbiAgICAgIGNvbG9yOiB2YXIoLS1pZHMtYnV0dG9uLXNlY29uZGFyeS1jb2xvci10ZXh0LWRpc2FibGVkKTtcbiAgICAgIG9wYWNpdHk6IHZhcigtLWlkcy1idXR0b24tc2Vjb25kYXJ5LW9wYWNpdHktZGlzYWJsZWQpO1xuICAgIH1cblxuICAgICY6YWN0aXZlOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1pZHMtYnV0dG9uLXNlY29uZGFyeS1jb2xvci1iYWNrZ3JvdW5kLXByZXNzZWQpO1xuICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1pZHMtYnV0dG9uLXNlY29uZGFyeS1jb2xvci1ib3JkZXItcHJlc3NlZCk7XG4gICAgICBjb2xvcjogdmFyKC0taWRzLWJ1dHRvbi1zZWNvbmRhcnktY29sb3ItdGV4dC1wcmVzc2VkKTtcbiAgICB9XG4gIH1cblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIC8vIExpZ2h0IE1vZGUgQWx0ZXJuYXRlXG5cbiAgLy8gRG9uJ3QgYXBwbHkgdGhlc2UgcnVsZXMgdG8gXCJhbHRlcm5hdGUtZm9ybWF0dGVyXCItc3R5bGUgYnV0dG9uc1xuICAvLyBUaGVzZSBhcHBlYXIgaW4gaGVhZGVyXG4gICYuY29sb3ItdmFyaWFudC1hbHRlcm5hdGUge1xuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDAgMCAwIC8gMC4zKTtcbiAgICB9XG5cbiAgICAmLmlkcy10cmlnZ2VyLWJ1dHRvbjpub3QoW3JlYWRvbmx5XSkge1xuICAgICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWlkcy1zZWFyY2gtZmllbGQtaGVhZGVyLWNvbG9yLWljb24taG92ZXIpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIFRoZXNlIGFwcGVhciBpbiBhcHAgbWVudVxuICAmLmNvbG9yLXZhcmlhbnQtYXBwLW1lbnUge1xuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSAyNTUgMjU1IC8gMC4xNSk7XG4gICAgfVxuICB9XG5cbiAgLy8gVGhlc2UgYXBwZWFyIGluIHBsYWNlcyB3aXRoIGRhcmsgYmFja2dyb3VuZCBsaWtlIGFwcCBtZW51IGFuZCBtYXN0aGVhZCwgZ2VuZXJhbGx5IGRlZmF1bHQvdGVydGlhcnkgYnV0dG9uc1xuICAmLmNvbG9yLXZhcmlhbnQtYWx0ZXJuYXRlLFxuICAmLmNvbG9yLXZhcmlhbnQtYWx0ZXJuYXRlLWZvcm1hdHRlciB7XG4gICAgY29sb3I6IHZhcigtLWlkcy1idXR0b24tYWx0ZXJuYXRlLWNvbG9yLXRleHQtZGVmYXVsdCk7XG4gICAgb3BhY2l0eTogMC44O1xuXG4gICAgJjpub3QoLmhpZGUtZm9jdXMpLmlzLWFjdGl2ZSxcbiAgICAmOm5vdCguaGlkZS1mb2N1cykuaXMtZm9jdXNlZCxcbiAgICAmOm5vdCguaGlkZS1mb2N1cykuZm9jdXMtd2l0aGluLFxuICAgICY6bm90KC5oaWRlLWZvY3VzKTpmb2N1cyB7XG4gICAgICBib3JkZXItY29sb3I6IHZhcigtLWlkcy1idXR0b24tZm9ybWF0dGVyLWNvbG9yLWJvcmRlci1mb2N1cyk7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0taWRzLWJ1dHRvbi1mb3JtYXR0ZXItY29sb3ItYmFja2dyb3VuZC1ob3Zlcik7XG4gICAgICBib3JkZXItY29sb3I6IHZhcigtLWlkcy1jb2xvci10cmFuc3BhcmVudCk7XG4gICAgICBjb2xvcjogdmFyKC0taWRzLWJ1dHRvbi1mb3JtYXR0ZXItY29sb3ItdGV4dC1ob3Zlcik7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgICZbZGlzYWJsZWRdIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWlkcy1jb2xvci10cmFuc3BhcmVudCk7XG4gICAgICBvcGFjaXR5OiB2YXIoLS1pZHMtYnV0dG9uLWZvcm1hdHRlci1vcGFjaXR5LWRpc2FibGVkKTtcbiAgICB9XG4gIH1cblxuICAvLyBVc2VkIG9uIEVkaXRvciBhbmQgTGlzdCBCdWlsZGVyIFwiZGFya2VyXCIgdG9vbGJhcnNcbiAgJi5jb2xvci12YXJpYW50LWFsdGVybmF0ZS1mb3JtYXR0ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWlkcy1idXR0b24tZm9ybWF0dGVyLWNvbG9yLWJhY2tncm91bmQtZGVmYXVsdCk7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1pZHMtYnV0dG9uLWZvcm1hdHRlci1jb2xvci1ib3JkZXItZGVmYXVsdCk7XG4gICAgY29sb3I6IHZhcigtLWlkcy1idXR0b24tZm9ybWF0dGVyLWNvbG9yLXRleHQtZGVmYXVsdCk7XG4gICAgaGVpZ2h0OiB2YXIoLS1pZHMtYnV0dG9uLWZvcm1hdHRlci1zaXplKTtcbiAgICBtaW4td2lkdGg6IHZhcigtLWlkcy1idXR0b24tZm9ybWF0dGVyLXNpemUpO1xuXG4gICAgJjpub3QoLmhpZGUtZm9jdXMpLmlzLWFjdGl2ZSxcbiAgICAmOm5vdCguaGlkZS1mb2N1cykuaXMtZm9jdXNlZCxcbiAgICAmOm5vdCguaGlkZS1mb2N1cykuZm9jdXMtd2l0aGluLFxuICAgICY6bm90KC5oaWRlLWZvY3VzKTpmb2N1cyB7XG4gICAgICBib3JkZXItY29sb3I6IHZhcigtLWlkcy1jb2xvci1ib3JkZXItZm9jdXMpO1xuICAgIH1cblxuICAgICZbZGlzYWJsZWRdIHtcbiAgICAgIGNvbG9yOiB2YXIoLS1pZHMtYnV0dG9uLWZvcm1hdHRlci1jb2xvci10ZXh0LWRpc2FibGVkKTtcbiAgICB9XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWlkcy1idXR0b24tZm9ybWF0dGVyLWNvbG9yLWJhY2tncm91bmQtaG92ZXIpO1xuICAgICAgY29sb3I6IHZhcigtLWlkcy1idXR0b24tZm9ybWF0dGVyLWNvbG9yLXRleHQtaG92ZXIpO1xuICAgIH1cblxuICAgICYuaXMtYWN0aXZlIHtcbiAgICAgIGNvbG9yOiB2YXIoLS1pZHMtYnV0dG9uLWZvcm1hdHRlci1jb2xvci1hY3RpdmUpO1xuICAgIH1cblxuICAgICYuaWRzLW1lbnUtYnV0dG9uLmNvbXBhY3Qge1xuICAgICAgcGFkZGluZzogdmFyKC0taWRzLXNwYWNlLTJ4cyk7XG4gICAgICBwYWRkaW5nLWlubGluZTogdmFyKC0taWRzLXNwYWNlLTJ4cyk7XG5cbiAgICAgICYuc3F1YXJlIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0taWRzLWJvcmRlci1yYWRpdXMteHMpO1xuICAgICAgICB3aWR0aDogMzRweDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmW2VkaXRvci1hY3Rpb249J3NvdXJjZW1vZGUnXSxcbiAgICAmW2VkaXRvci1hY3Rpb249J2VkaXRvcm1vZGUnXSB7XG4gICAgICAtLWlkcy1idXR0b24taWNvbi13aWR0aDogNTRweDtcbiAgICB9XG4gIH1cblxuICAvLyBVc2VkIGluIFRhYiBNb2R1bGUgVmFyaWFudFxuICAmLmNvbG9yLXZhcmlhbnQtbW9kdWxlIHtcbiAgICBib3JkZXI6IDA7XG4gICAgY29sb3I6IHZhcigtLWlkcy1idXR0b24tbW9kdWxlLWNvbG9yLXRleHQtZGVmYXVsdCk7XG5cbiAgICAmOm5vdCguc3F1YXJlKSB7XG4gICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1pZHMtYnV0dG9uLW1vZHVsZS1ib3JkZXItcmFkaXVzKTtcbiAgICB9XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWlkcy1idXR0b24tbW9kdWxlLWNvbG9yLWJhY2tncm91bmQtaG92ZXIpO1xuICAgICAgY29sb3I6IHZhcigtLWlkcy1idXR0b24tbW9kdWxlLWNvbG9yLXRleHQtaG92ZXIpO1xuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIFByb3ZpZGVzIHRoZSBzdGFuZGFyZCBjb2xvciBydWxlcyBmb3IgYnV0dG9ucyB0aGF0IG5lZWQgYm94IHNoYWRvd1xuICovXG5AbWl4aW4gaWRzLXN0YW5kYXJkLWJ1dHRvbi1zaGFkb3dzKCkge1xuICAmOm5vdCguYnRuLXByaW1hcnkpOm5vdCguYnRuLXNlY29uZGFyeSk6bm90KC5idG4tcHJpbWFyeS1kZXN0cnVjdGl2ZSk6bm90KC5idG4tdGVydGlhcnktZGVzdHJ1Y3RpdmUpOm5vdCguYnRuLXByaW1hcnktZ2VuZXJhdGl2ZS1haSk6bm90KC5idG4tc2Vjb25kYXJ5LWdlbmVyYXRpdmUtYWkpOm5vdCguYnRuLXRlcnRpYXJ5LWdlbmVyYXRpdmUtYWkpIHtcbiAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICAgLy8gRGVmYXVsdC9UZXJ0aWFyeSBEZWZhdWx0L0xpZ2h0IE1vZGVcbiAgICAmOm5vdCguaGlkZS1mb2N1cykuaXMtYWN0aXZlLFxuICAgICY6bm90KC5oaWRlLWZvY3VzKS5pcy1mb2N1c2VkLFxuICAgICY6bm90KC5oaWRlLWZvY3VzKS5mb2N1cy13aXRoaW4sXG4gICAgJjpub3QoLmhpZGUtZm9jdXMpOmZvY3VzIHtcbiAgICAgICY6bm90KFtyZWFkb25seV0pIHtcbiAgICAgICAgYm94LXNoYWRvdzogdmFyKC0taWRzLWJ1dHRvbi10ZXJ0aWFyeS1zaGFkb3ctZm9jdXMpO1xuICAgICAgfVxuICAgIH1cblxuICAgICYuY29sb3ItdmFyaWFudC1hbHRlcm5hdGUge1xuICAgICAgJjpub3QoLmhpZGUtZm9jdXMpLmlzLWFjdGl2ZSxcbiAgICAgICY6bm90KC5oaWRlLWZvY3VzKS5pcy1mb2N1c2VkLFxuICAgICAgJjpub3QoLmhpZGUtZm9jdXMpLmZvY3VzLXdpdGhpbixcbiAgICAgICY6bm90KC5oaWRlLWZvY3VzKTpmb2N1cyB7XG4gICAgICAgIGJveC1zaGFkb3c6IHZhcigtLWlkcy1ib3gtc2hhZG93LWludmVyc2UpO1xuICAgICAgfVxuICAgIH1cblxuICAgICYuY29sb3ItdmFyaWFudC1hbHRlcm5hdGUtZm9ybWF0dGVyIHtcbiAgICAgICY6bm90KC5oaWRlLWZvY3VzKS5pcy1hY3RpdmUsXG4gICAgICAmOm5vdCguaGlkZS1mb2N1cykuaXMtZm9jdXNlZCxcbiAgICAgICY6bm90KC5oaWRlLWZvY3VzKS5mb2N1cy13aXRoaW4sXG4gICAgICAmOm5vdCguaGlkZS1mb2N1cyk6Zm9jdXMge1xuICAgICAgICBib3gtc2hhZG93OiB2YXIoLS1pZHMtc2hhZG93LTIwKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmLmJ0bi10ZXJ0aWFyeS1kZXN0cnVjdGl2ZSB7XG4gICAgJjpub3QoLmhpZGUtZm9jdXMpLmlzLWFjdGl2ZSxcbiAgICAmOm5vdCguaGlkZS1mb2N1cykuaXMtZm9jdXNlZCxcbiAgICAmOm5vdCguaGlkZS1mb2N1cykuZm9jdXMtd2l0aGluLFxuICAgICY6bm90KC5oaWRlLWZvY3VzKTpmb2N1cyB7XG4gICAgICBib3gtc2hhZG93OiB2YXIoLS1pZHMtYnV0dG9uLWRlc3RydWN0aXZlLXRlcnRpYXJ5LXNoYWRvdy1mb2N1cyk7XG4gICAgfVxuICB9XG5cbiAgJi5idG4tcHJpbWFyeSB7XG4gICAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgIC8vIFByaW1hcnkgRGVmYXVsdC9MaWdodCBNb2RlXG4gICAgJjpub3QoLmhpZGUtZm9jdXMpLmlzLWFjdGl2ZSxcbiAgICAmOm5vdCguaGlkZS1mb2N1cykuaXMtZm9jdXNlZCxcbiAgICAmOm5vdCguaGlkZS1mb2N1cykuZm9jdXMtd2l0aGluLFxuICAgICY6bm90KC5oaWRlLWZvY3VzKTpmb2N1cyB7XG4gICAgICBib3gtc2hhZG93OiB2YXIoLS1pZHMtYnV0dG9uLXByaW1hcnktc2hhZG93LWZvY3VzKTtcbiAgICB9XG5cbiAgICAmLmNvbG9yLXZhcmlhbnQtYWx0ZXJuYXRlIHtcbiAgICAgICY6bm90KC5oaWRlLWZvY3VzKS5pcy1hY3RpdmUsXG4gICAgICAmOm5vdCguaGlkZS1mb2N1cykuaXMtZm9jdXNlZCxcbiAgICAgICY6bm90KC5oaWRlLWZvY3VzKS5mb2N1cy13aXRoaW4sXG4gICAgICAmOm5vdCguaGlkZS1mb2N1cyk6Zm9jdXMge1xuICAgICAgICBAaW5jbHVkZSBvdXRzZXQtYnV0dG9uLXNoYWRvdyhcbiAgICAgICAgICB2YXIoLS1pZHMtY29sb3ItcHJpbWFyeS03MCksXG4gICAgICAgICAgdmFyKC0taWRzLWNvbG9yLXRleHQtb24tcHJpbWFyeSlcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmLmJ0bi1wcmltYXJ5LWRlc3RydWN0aXZlIHtcbiAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICAgLy8gUHJpbWFyeSBEZXN0cnVjdGl2ZSBEZWZhdWx0L0xpZ2h0IE1vZGVcbiAgICAmOm5vdCguaGlkZS1mb2N1cykuaXMtYWN0aXZlLFxuICAgICY6bm90KC5oaWRlLWZvY3VzKS5pcy1mb2N1c2VkLFxuICAgICY6bm90KC5oaWRlLWZvY3VzKS5mb2N1cy13aXRoaW4sXG4gICAgJjpub3QoLmhpZGUtZm9jdXMpOmZvY3VzIHtcbiAgICAgIEBpbmNsdWRlIG91dHNldC1idXR0b24tc2hhZG93KFxuICAgICAgICB2YXIoLS1pZHMtY29sb3ItYmFja2dyb3VuZC1kZWZhdWx0KSxcbiAgICAgICAgdmFyKC0taWRzLWNvbG9yLWVycm9yLWRlZmF1bHQpXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gICYuYnRuLXNlY29uZGFyeSB7XG4gICAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgIC8vIFNlY29uZGFyeSBEZWZhdWx0L0xpZ2h0IE1vZGVcbiAgICAmOm5vdCguaGlkZS1mb2N1cykuaXMtYWN0aXZlLFxuICAgICY6bm90KC5oaWRlLWZvY3VzKS5pcy1mb2N1c2VkLFxuICAgICY6bm90KC5oaWRlLWZvY3VzKS5mb2N1cy13aXRoaW4sXG4gICAgJjpub3QoLmhpZGUtZm9jdXMpOmZvY3VzIHtcbiAgICAgIGJveC1zaGFkb3c6IHZhcigtLWlkcy1idXR0b24tc2Vjb25kYXJ5LXNoYWRvdy1mb2N1cyk7XG4gICAgfVxuICB9XG5cbiAgJi5idG4tcHJpbWFyeS1nZW5lcmF0aXZlLWFpIHtcbiAgICAmOm5vdCguaGlkZS1mb2N1cykuaXMtYWN0aXZlLFxuICAgICY6bm90KC5oaWRlLWZvY3VzKS5pcy1mb2N1c2VkLFxuICAgICY6bm90KC5oaWRlLWZvY3VzKS5mb2N1cy13aXRoaW4sXG4gICAgJjpub3QoLmhpZGUtZm9jdXMpOmZvY3VzIHtcbiAgICAgIGJveC1zaGFkb3c6IHZhcigtLWlkcy1idXR0b24tYWktc2hhZG93LWZvY3VzKTtcbiAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0taWRzLWNvbG9yLXRyYW5zcGFyZW50KTtcbiAgICB9XG4gIH1cblxuICAmLmJ0bi10ZXJ0aWFyeS1nZW5lcmF0aXZlLWFpLFxuICAmLmJ0bi1zZWNvbmRhcnktZ2VuZXJhdGl2ZS1haSB7XG4gICAgJjpub3QoLmhpZGUtZm9jdXMpLmlzLWFjdGl2ZSxcbiAgICAmOm5vdCguaGlkZS1mb2N1cykuaXMtZm9jdXNlZCxcbiAgICAmOm5vdCguaGlkZS1mb2N1cykuZm9jdXMtd2l0aGluLFxuICAgICY6bm90KC5oaWRlLWZvY3VzKTpmb2N1cyB7XG4gICAgICBib3gtc2hhZG93OiB2YXIoLS1pZHMtYnV0dG9uLXRlcnRpYXJ5LWFpLXNoYWRvdy1mb2N1cyk7XG4gICAgICBib3JkZXItY29sb3I6IHZhcigtLWlkcy1idXR0b24tYWktY29sb3ItaWNvbi1zZWNvbmRhcnktaG92ZXIpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gaWRzLW1vZGFsLWJ1dHRvbi1jb2xvci1kZWZhdWx0cygpIHtcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAvLyBQcmltYXJ5IEJ1dHRvblxuICAmLmJ0bi1wcmltYXJ5IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1pZHMtYnV0dG9uLXByaW1hcnktY29sb3ItYmFja2dyb3VuZC1kZWZhdWx0KTtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLWlkcy1idXR0b24tcHJpbWFyeS1jb2xvci1ib3JkZXItZGVmYXVsdCk7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0taWRzLWJ1dHRvbi1wcmltYXJ5LWNvbG9yLWJvcmRlci1kZWZhdWx0KTtcbiAgICBjb2xvcjogdmFyKC0taWRzLWJ1dHRvbi1wcmltYXJ5LWNvbG9yLXRleHQtZGVmYXVsdCk7XG4gICAgcGFkZGluZy1ib3R0b206IGNhbGModmFyKC0taWRzLXNwYWNlLXhzKSAtIDJweCk7XG4gICAgcGFkZGluZy10b3A6IGNhbGModmFyKC0taWRzLXNwYWNlLXhzKSAtIDJweCk7XG4gICAgcGFkZGluZy1pbmxpbmU6IHZhcigtLWlkcy1idXR0b24tcGFkZGluZy1pbmxpbmUpO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWlkcy1idXR0b24tcmFkaXVzKTtcblxuICAgICY6bm90KC5oaWRlLWZvY3VzKS5pcy1hY3RpdmUsXG4gICAgJjpub3QoLmhpZGUtZm9jdXMpLmlzLWZvY3VzZWQsXG4gICAgJjpub3QoLmhpZGUtZm9jdXMpLmZvY3VzLXdpdGhpbixcbiAgICAmOm5vdCguaGlkZS1mb2N1cyk6Zm9jdXMge1xuICAgICAgQGluY2x1ZGUgbW9kYWwtYnV0dG9uLXNoYWRvdygpO1xuICAgIH1cblxuICAgICY6aG92ZXI6bm90KFtkaXNhYmxlZF0pIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWlkcy1idXR0b24tcHJpbWFyeS1jb2xvci1iYWNrZ3JvdW5kLWhvdmVyKTtcbiAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0taWRzLWJ1dHRvbi1wcmltYXJ5LWNvbG9yLWJvcmRlci1ob3Zlcik7XG4gICAgfVxuXG4gICAgJltkaXNhYmxlZF0ge1xuICAgICAgb3BhY2l0eTogdmFyKC0taWRzLWJ1dHRvbi1wcmltYXJ5LW9wYWNpdHktZGlzYWJsZWQpO1xuICAgIH1cbiAgfVxuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gU2Vjb25kYXJ5L1RlcnRpYXJ5IEJ1dHRvblxuXG4gICYuYnRuLXNlY29uZGFyeSxcbiAgJi5idG4tdGVydGlhcnkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWlkcy1idXR0b24tc2Vjb25kYXJ5LWNvbG9yLWJhY2tncm91bmQtZGVmYXVsdCk7XG4gICAgYm9yZGVyLXdpZHRoOiB2YXIoLS1pZHMtYnV0dG9uLXNlY29uZGFyeS1ib3JkZXItd2lkdGgpO1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0taWRzLWJ1dHRvbi1zZWNvbmRhcnktY29sb3ItYm9yZGVyLWRlZmF1bHQpO1xuICAgIGNvbG9yOiB2YXIoLS1pZHMtYnV0dG9uLXNlY29uZGFyeS1jb2xvci10ZXh0LWRlZmF1bHQpO1xuICAgIHBhZGRpbmctaW5saW5lOiB2YXIoLS1pZHMtYnV0dG9uLXBhZGRpbmctaW5saW5lKTtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1pZHMtYnV0dG9uLXJhZGl1cyk7XG5cbiAgICAmOm5vdCguaGlkZS1mb2N1cykuaXMtYWN0aXZlLFxuICAgICY6bm90KC5oaWRlLWZvY3VzKS5pcy1mb2N1c2VkLFxuICAgICY6bm90KC5oaWRlLWZvY3VzKS5mb2N1cy13aXRoaW4sXG4gICAgJjpub3QoLmhpZGUtZm9jdXMpOmZvY3VzIHtcbiAgICAgIEBpbmNsdWRlIG1vZGFsLWJ1dHRvbi1zaGFkb3coKTtcbiAgICB9XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWlkcy1idXR0b24tc2Vjb25kYXJ5LWNvbG9yLWJhY2tncm91bmQtaG92ZXIpO1xuICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1pZHMtYnV0dG9uLXNlY29uZGFyeS1jb2xvci1ib3JkZXItaG92ZXIpO1xuICAgICAgY29sb3I6IHZhcigtLWlkcy1idXR0b24tc2Vjb25kYXJ5LWNvbG9yLXRleHQtaG92ZXIpO1xuICAgIH1cblxuICAgICZbZGlzYWJsZWRdIHtcbiAgICAgIG9wYWNpdHk6dmFyKC0taWRzLWJ1dHRvbi1zZWNvbmRhcnktb3BhY2l0eS1kaXNhYmxlZCk7XG4gICAgfVxuICB9XG59XG4iLCIvLyBCcmVha3BvaW50cyAtIHRoaXMgY2FudCBiZSB0b2tlbnNcbiRicmVha3BvaW50LXh4bDogMTQ0MHB4O1xuJGJyZWFrcG9pbnQteGw6IDEyODBweDtcbiRicmVha3BvaW50LWxnOiAxMDI0cHg7XG4kYnJlYWtwb2ludC1tZDogODQwcHg7XG4kYnJlYWtwb2ludC1zbTogNjAwcHg7XG4kYnJlYWtwb2ludC14czogMzIwcHg7XG5cbi8vIFNldHMgVGV4dCBBbnRpYWxpYXNpbmdcbkBtaXhpbiBhbnRpYWxpYXNlZCB7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xufVxuXG4vLyB2ZW5kb3IgcHJlZml4ZWQgdHJhbnNpdGlvbnMgZm9yIHJlZ3VsYXIgYXR0cmlidXRlcyAobm9uLXZlbmRvciBwcmVmaXhlZClcbkBtaXhpbiB0cmFuc2l0aW9uKCR0cmFuc2l0aW9ucy1saXN0Li4uKSB7XG4gIEBlYWNoICRwcmVmaXggaW4gJHByZWZpeGVzIHtcbiAgICAjeyRwcmVmaXh9dHJhbnNpdGlvbjogJHRyYW5zaXRpb25zLWxpc3Q7XG4gIH1cbn1cblxuLy8gbWFrZSB0aGUgdGV4dCBpbnZpc2libGUgdmlzdWFsbHkgYnV0IHJlYWRhYmxlIGJ5IHNjcmVlbiByZWFkZXJzXG5AbWl4aW4gYXVkaWJsZSgpIHtcbiAgY2xpcDogcmVjdCgwLCAwLCAwLCAwKTtcbiAgaGVpZ2h0OiAwO1xuICBsaW5lLWhlaWdodDogMDtcbiAgbWluLWhlaWdodDogMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcGFkZGluZzogMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMXB4O1xufVxuIiwiXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFN0eWxlcyBzcGVjaWZpYyB0byB0aGUgaW4tcGFnZSBBY2NvcmRpb25cblxuQG1peGluIGFjY29yZGlvbi1oZWFkZXItc3RhbmRhcmQtY29sb3JzKCkge1xuICBib3JkZXItY29sb3I6IHZhcigtLWlkcy1jb2xvci10cmFuc3BhcmVudCk7XG4gIGJvcmRlci1ib3R0b20tY29sb3I6IHZhcigtLWlkcy1hY2NvcmRpb24taGVhZGVyLWNvbG9yLWJvcmRlci1ib3R0b20pO1xufVxuXG5AbWl4aW4gYWNjb3JkaW9uLWhlYWRlci1mb2N1cy1jb2xvcnMoKSB7XG4gICY6Zm9jdXMge1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0taWRzLWFjY29yZGlvbi1oZWFkZXItY29sb3ItYm9yZGVyLWZvY3VzKTtcbiAgICBib3gtc2hhZG93OiB2YXIoLS1pZHMtYWNjb3JkaW9uLWhlYWRlci1zaGFkb3ctZm9jdXMpO1xuICAgIGJvcmRlci13aWR0aDogdmFyKC0taWRzLWJvcmRlci13aWR0aC1zbSk7XG4gIH1cbn1cblxuQG1peGluIGFjY29yZGlvbi1oZWFkZXItZGlzYWJsZWQtY29sb3JzKCkge1xuICBjb2xvcjogdmFyKC0taWRzLWFjY29yZGlvbi1oZWFkZXItY29sb3ItdGV4dC1kaXNhYmxlZCk7XG5cbiAgaWRzLWljb24ge1xuICAgIGNvbG9yOiB2YXIoLS1pZHMtYWNjb3JkaW9uLWhlYWRlci1jb2xvci1ib3JkZXItZGlzYWJsZWQpO1xuICB9XG59XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gU3R5bGVzIHNwZWNpZmljIHRvIHRoZSBUb3AtbGV2ZWwgQXBwIE1lbnUgQWNjb3JkaW9uc1xuXG5AbWl4aW4gYWNjb3JkaW9uLWhlYWRlci1hcHAtbWVudS1jb2xvcnMoKSB7XG4gIG1hcmdpbi1pbmxpbmU6IDhweDtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuXG4gIC8vIENvbnRyYXN0cyBiYWNrZ3JvdW5kIG9mIHRoZSBEcmF3ZXJcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0taWRzLWRyYXdlci1hcHAtbWVudS1jb2xvci1iYWNrZ3JvdW5kKTtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1pZHMtZHJhd2VyLWFwcC1tZW51LWNvbG9yLWJvcmRlcik7XG5cbiAgJi5leHBhbmRlZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0taWRzLWNvbG9yLXRyYW5zcGFyZW50KTtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLWlkcy1jb2xvci10cmFuc3BhcmVudCk7XG4gIH1cblxuICAvLyBMaWdodCBNb2RlIFN0eWxlc1xuICBjb2xvcjogdmFyKC0taWRzLWFwcC1tZW51LWFjY29yZGlvbi1oZWFkZXItY29sb3ItdGV4dC1kZWZhdWx0KTtcblxuICAmOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1pZHMtYXBwLW1lbnUtaGVhZGVyLWNvbG9yLWJhY2tncm91bmQtaG92ZXIpO1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0taWRzLWFwcC1tZW51LWhlYWRlci1jb2xvci1ib3JkZXItaG92ZXIpO1xuICB9XG5cbiAgJjpmb2N1cyB7XG4gICAgY29sb3I6IHZhcigtLWlkcy1hcHAtbWVudS1hY2NvcmRpb24taGVhZGVyLWNvbG9yLXRleHQtZm9jdXMpO1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0taWRzLWFwcC1tZW51LWFjY29yZGlvbi1oZWFkZXItY29sb3ItYm9yZGVyLWZvY3VzKTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1pZHMtYXBwLW1lbnUtYWNjb3JkaW9uLWhlYWRlci1jb2xvci1iYWNrZ3JvdW5kLWZvY3VzKTtcbiAgfVxuXG4gICYuc2VsZWN0ZWQge1xuICAgIGNvbG9yOiB2YXIoLS1pZHMtYXBwLW1lbnUtYWNjb3JkaW9uLWhlYWRlci1jb2xvci10ZXh0LXNlbGVjdGVkKTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1pZHMtYXBwLW1lbnUtYWNjb3JkaW9uLWhlYWRlci1zZWxlY3RlZC1iZy1jb2xvcik7XG4gIH1cblxuICAmW2Rpc2FibGVkXSB7XG4gICAgY29sb3I6IHZhcigtLWlkcy1hcHAtbWVudS1hY2NvcmRpb24taGVhZGVyLWNvbG9yLXRleHQtZGlzYWJsZWQpO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICgtLWlkcy1hcHAtbWVudS1hY2NvcmRpb24taGVhZGVyLWNvbG9yLWJhY2tncm91bmQtZGlzYWJsZWQpO1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0taWRzLWFwcC1tZW51LWFjY29yZGlvbi1oZWFkZXItY29sb3ItYm9yZGVyLWRpc2FibGVkKTtcbiAgfVxuXG4gIC5maWx0ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWlkcy1hcHAtbWVudS1hY2NvcmRpb24taGVhZGVyLWNvbG9yLWJhY2tncm91bmQtZGVmYXVsdCk7XG4gICAgY29sb3I6IHZhcigtLWlkcy1hcHAtbWVudS1hY2NvcmRpb24taGVhZGVyLWZpbHRlci1jb2xvci10ZXh0KTtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgfVxuXG4gICYuaGlkZGVuLWJ5LWZpbHRlci5jaGlsZC1maWx0ZXItbWF0Y2gge1xuICAgIGNvbG9yOiB2YXIoLS1pZHMtYXBwLW1lbnUtYWNjb3JkaW9uLWhlYWRlci1maWx0ZXItbWF0Y2gtY29sb3ItdGV4dCk7XG5cbiAgICAmLnNlbGVjdGVkIHtcbiAgICAgIGNvbG9yOiB2YXIoLS1pZHMtYXBwLW1lbnUtYWNjb3JkaW9uLWhlYWRlci1maWx0ZXItbWF0Y2gtY29sb3ItdGV4dC1zZWxlY3RlZCk7XG4gICAgfVxuICB9XG59XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gU3R5bGVzIHNwZWNpZmljIHRvIHRoZSBTdWItbGV2ZWwgQXBwIE1lbnUgQWNjb3JkaW9uc1xuXG5AbWl4aW4gYWNjb3JkaW9uLWhlYWRlci1uZXN0ZWQtYXBwLW1lbnUtY29sb3JzKCkge1xuICBtYXJnaW46IDA7XG59XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gR2VuZXJhbCBzdHlsZXNcblxuOmhvc3Qge1xuICBkaXNwbGF5OiBibG9jaztcblxuICBpZHMtaWNvbiB7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIHZhcigtLWlkcy1tb3Rpb24tZHVyYXRpb24pIHZhcigtLWlkcy1tb3Rpb24tbGluZWFyKTtcbiAgICBqdXN0aWZ5LXNlbGY6IGVuZDtcbiAgfVxufVxuXG46aG9zdChbYXJpYS1leHBhbmRlZD0ndHJ1ZSddKSB7XG4gIGlkcy1pY29uW2ljb249J2NhcmV0LWRvd24nXSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGVYKDE4MGRlZyk7XG4gIH1cbn1cblxuLy8gXCJGaWx0ZXJlZFwiIGFjY29yZGlvbiBoZWFkZXJzIHNob3VsZCBub3QgYmUgZGlzcGxheWVkXG46aG9zdChbaGlkZGVuLWJ5LWZpbHRlcl0pIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLy8gUGFyZW50IGFjY29yZGlvbiBoZWFkZXJzIHRoYXQgaGF2ZSBjaGlsZHJlbiB3aG8gbWF0Y2ggdGhlIGZpbHRlclxuLy8gc2hvdWxkIGJlIGRpc3BsYXllZCwgYnV0IHRoZWlyIHRleHQgY29sb3IgaXMgbXV0ZWRcbjpob3N0KFtoaWRkZW4tYnktZmlsdGVyXVtjaGlsZC1maWx0ZXItbWF0Y2hdKSB7XG4gIGRpc3BsYXk6IGluaXRpYWw7XG59XG5cbi5pZHMtYWNjb3JkaW9uLWhlYWRlciB7XG4gIGJvcmRlci13aWR0aDogdmFyKC0taWRzLWJvcmRlci13aWR0aC1zbSk7XG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZGlzcGxheTogZmxleDtcbiAgZ3JpZC1hdXRvLWZsb3c6IGNvbHVtbjtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuXG4gIDo6c2xvdHRlZChpZHMtdGV4dCkge1xuICAgIGZsZXgtZ3JvdzogMTtcbiAgfVxuXG4gIC5pZHMtYWNjb3JkaW9uLWRpc3BsYXktaWNvbiB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gICY6Zm9jdXMge1xuICAgIG91dGxpbmU6IDA7XG4gIH1cblxuICAvLyBJbi1wYWdlIEFjY29yZGlvbnNcbiAgJjpub3QoW2NsYXNzKj1cImNvbG9yLXZhcmlhbnQtXCJdKSB7XG4gICAgQGluY2x1ZGUgYWNjb3JkaW9uLWhlYWRlci1zdGFuZGFyZC1jb2xvcnMoKTtcblxuICAgIGJvcmRlci1pbmxpbmUtd2lkdGg6IDA7XG4gICAgcGFkZGluZzogdmFyKC0taWRzLWFjY29yZGlvbi1oZWFkZXItcGFkZGluZyk7XG5cbiAgICAmOm5vdCguZGlzYWJsZWQpIHtcbiAgICAgIEBpbmNsdWRlIGFjY29yZGlvbi1oZWFkZXItZm9jdXMtY29sb3JzKCk7XG4gICAgfVxuXG4gICAgJi5kaXNhYmxlZCB7XG4gICAgICBAaW5jbHVkZSBhY2NvcmRpb24taGVhZGVyLWRpc2FibGVkLWNvbG9ycygpO1xuXG4gICAgICBjdXJzb3I6IHVuc2V0O1xuICAgIH1cbiAgfVxuXG4gICYuc2VsZWN0ZWQge1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkZXI7XG4gIH1cblxuICAmLmhhcy1pY29uIHtcbiAgICAuaWRzLWFjY29yZGlvbi1kaXNwbGF5LWljb24ge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICB9XG4gIH1cblxuICAvLyBUb3AgTGV2ZWwgQXBwIE1lbnUgQWNjb3JkaW9uc1xuICAmLmNvbG9yLXZhcmlhbnQtYXBwLW1lbnUge1xuICAgIEBpbmNsdWRlIGFjY29yZGlvbi1oZWFkZXItYXBwLW1lbnUtY29sb3JzKCk7XG5cbiAgICBwYWRkaW5nOiB2YXIoLS1pZHMtYWNjb3JkaW9uLWhlYWRlci1hcHAtbWVudS1wYWRkaW5nKTtcbiAgfVxuXG4gIC8vIFN1Yi1sZXZlbCBBcHAgTWVudSBBY2NvcmRpb25zXG4gICYuY29sb3ItdmFyaWFudC1zdWItYXBwLW1lbnUge1xuICAgIEBpbmNsdWRlIGFjY29yZGlvbi1oZWFkZXItYXBwLW1lbnUtY29sb3JzKCk7XG4gICAgQGluY2x1ZGUgYWNjb3JkaW9uLWhlYWRlci1uZXN0ZWQtYXBwLW1lbnUtY29sb3JzKCk7XG5cbiAgICBwYWRkaW5nOiB2YXIoLS1pZHMtYWNjb3JkaW9uLWhlYWRlci1zdWItYXBwLW1lbnUtcGFkZGluZyk7XG4gIH1cblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAvLyBNb2RpZmljYXRpb25zIHRvIEV4cGFuZGVyIEljb24gVHlwZXNcbiAgJi5leHBhbmRlci10eXBlLXBsdXMtbWludXMge1xuICAgIC5pZHMtYWNjb3JkaW9uLWV4cGFuZGVyLWljb24ge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgbWFyZ2luLXRvcDogLTRweDtcbiAgICAgIGhlaWdodDogMTRweDtcbiAgICAgIHdpZHRoOiAxNHB4O1xuICAgIH1cbiAgfVxufVxuXG4vLyBzdHlsZXMgZm9yIGljb24gc3BhY2luZ1xuOjpzbG90dGVkKGlkcy1pY29uKSB7XG4gIG1hcmdpbi1pbmxpbmUtZW5kOiAxMnB4O1xufVxuXG4uaWRzLWFjY29yZGlvbi1kaXNwbGF5LWljb24ge1xuICBtYXJnaW4taW5saW5lLWVuZDogMTJweDtcbn1cblxuLmlkcy1hY2NvcmRpb24tZXhwYW5kZXItaWNvbiB7XG4gICY6Zmlyc3QtY2hpbGQge1xuICAgIG1hcmdpbi1pbmxpbmUtZW5kOiA4cHg7XG4gIH1cbn1cbiIsIkB1c2UgJy4uLy4uL3RoZW1lcy9taXhpbnMvaWRzLWNvcmUtbWl4aW5zJyBhcyAqO1xuQHVzZSAnLi4vaWRzLWFjY29yZGlvbi9pZHMtYWNjb3JkaW9uLWhlYWRlcicgYXMgKjtcblxuOmhvc3Qge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFN0eWxlcyBzcGVjaWZpYyB0byBNb2R1bGUgTmF2IEFjY29yZGlvbnNcblxuQG1peGluIGFjY29yZGlvbi1oZWFkZXItbW9kdWxlLW5hdi1jb2xvcnMoKSB7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0taWRzLWNvbG9yLXRyYW5zcGFyZW50KTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0taWRzLW1vZHVsZS1uYXYtY29tbW9uLWJvcmRlci1yYWRpdXMpO1xuICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICBib3JkZXItd2lkdGg6IHZhcigtLWlkcy1ib3JkZXItd2lkdGgtc20pO1xuICBjb2xvcjogdmFyKC0taWRzLW1vZHVsZS1uYXYtaXRlbS10ZXh0LWNvbG9yKTtcblxuICAmOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1pZHMtbW9kdWxlLW5hdi1pdGVtLWhvdmVyLWJnLWNvbG9yKTtcbiAgICBjb2xvcjogdmFyKC0taWRzLW1vZHVsZS1uYXYtaXRlbS1ob3Zlci10ZXh0LWNvbG9yKTtcbiAgfVxuXG4gICY6YWN0aXZlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1pZHMtbW9kdWxlLW5hdi1pdGVtLXNlbGVjdGVkLWJnLWNvbG9yKTtcbiAgICBjb2xvcjogdmFyKC0taWRzLW1vZHVsZS1uYXYtaXRlbS1zZWxlY3RlZC10ZXh0LWNvbG9yKTtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLWlkcy1tb2R1bGUtbmF2LWl0ZW0tYWN0aXZlLWJvcmRlci1jb2xvcik7XG4gIH1cblxuICAmOmZvY3VzOm5vdCguaGlkZS1mb2N1cykge1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0taWRzLW1vZHVsZS1uYXYtaXRlbS1hY3RpdmUtYm9yZGVyLWNvbG9yKTtcbiAgfVxuXG4gICYuc2VsZWN0ZWQge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWlkcy1tb2R1bGUtbmF2LWl0ZW0tc2VsZWN0ZWQtYmctY29sb3IpO1xuICAgIGNvbG9yOiB2YXIoLS1pZHMtbW9kdWxlLW5hdi1pdGVtLXNlbGVjdGVkLXRleHQtY29sb3IpO1xuICB9XG5cbiAgJltkaXNhYmxlZF0ge1xuICAgIC8vIEBUT0RPIGRpc2FibGVkIGNvbG9yc1xuICAgIGNvbG9yOiB2YXIoLS1pZHMtbW9kdWxlLW5hdi1pdGVtLXRleHQtY29sb3IpO1xuICB9XG5cbiAgLmZpbHRlciB7XG4gICAgLy8gQFRPRE8gZmlsdGVyIGNvbG9ycz8gKG5lZWQgZGVzaWducylcbiAgICBjb2xvcjogdmFyKC0taWRzLW1vZHVsZS1uYXYtaXRlbS10ZXh0LWNvbG9yKTtcbiAgfVxuXG4gICYuaGlkZGVuLWJ5LWZpbHRlci5jaGlsZC1maWx0ZXItbWF0Y2gge1xuICAgIC8vIEBUT0RPIGZpbHRlciBjb2xvcnM/IChuZWVkIGRlc2lnbnMpXG4gICAgY29sb3I6IHZhcigtLWlkcy1tb2R1bGUtbmF2LWl0ZW0tdGV4dC1jb2xvcik7XG4gIH1cblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gRGlzcGxheSBNb2RlOiBIaWRkZW5cblxuICAmOm5vdChbY2xhc3MqPSdkaXNwbGF5LW1vZGUtJ10pIHtcbiAgICBoZWlnaHQ6IHZhcigtLWlkcy1tb2R1bGUtbmF2LWl0ZW0tY29sbGFwc2VkLXNpemUpO1xuICAgIG1hcmdpbi1ibG9jazogdmFyKC0taWRzLW1vZHVsZS1uYXYtaXRlbS1jb2xsYXBzZWQtZ2VuZXJhbC1zcGFjZS1zaXplKTtcbiAgICBtYXJnaW4taW5saW5lOiBhdXRvO1xuICAgIHBhZGRpbmctYmxvY2s6IHZhcigtLWlkcy1tb2R1bGUtbmF2LWl0ZW0tcGFkZGluZy1ibG9jayk7XG4gICAgcGFkZGluZy1pbmxpbmU6IGF1dG87XG4gICAgd2lkdGg6IDA7XG5cbiAgICAuaWRzLWFjY29yZGlvbi1kaXNwbGF5LWljb24ge1xuICAgICAganVzdGlmeS1zZWxmOiBjZW50ZXI7XG4gICAgICBhbGlnbi1zZWxmOiBjZW50ZXI7XG4gICAgICBtYXJnaW4taW5saW5lOiAwO1xuICAgICAgcGFkZGluZzogMDtcbiAgICB9XG5cbiAgICAuaWRzLWFjY29yZGlvbi1leHBhbmRlci1pY29uIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIC8vIERpc3BsYXkgTW9kZTogQ29sbGFwc2VkXG5cbiAgJi5kaXNwbGF5LW1vZGUtY29sbGFwc2VkIHtcbiAgICBoZWlnaHQ6IHZhcigtLWlkcy1tb2R1bGUtbmF2LWl0ZW0tY29sbGFwc2VkLXNpemUpO1xuICAgIHdpZHRoOiB2YXIoLS1pZHMtbW9kdWxlLW5hdi1pdGVtLWNvbGxhcHNlZC1zaXplKTtcbiAgICBtYXJnaW46IHZhcigtLWlkcy1tb2R1bGUtbmF2LWl0ZW0tY29sbGFwc2VkLWdlbmVyYWwtc3BhY2Utc2l6ZSkgYXV0bztcblxuICAgIC5pZHMtYWNjb3JkaW9uLWRpc3BsYXktaWNvbiB7XG4gICAgICBtYXJnaW4taW5saW5lOiB2YXIoLS1pZHMtbW9kdWxlLW5hdi1pdGVtLWRpc3BsYXktaWNvbi1jb2xsYXBzZWQtbWFyZ2luKTtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBqdXN0aWZ5LXNlbGY6IGNlbnRlcjtcbiAgICAgIGFsaWduLXNlbGY6IGNlbnRlcjtcbiAgICB9XG5cbiAgICAuaWRzLWFjY29yZGlvbi1leHBhbmRlci1pY29uIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgJjo6c2xvdHRlZChpZHMtdGV4dCkge1xuICAgICAgQGluY2x1ZGUgYXVkaWJsZTtcbiAgICB9XG4gIH1cblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gRGlzcGxheSBNb2RlOiBFeHBhbmRlZFxuXG4gICYuZGlzcGxheS1tb2RlLWV4cGFuZGVkIHtcbiAgICBtYXJnaW4tYmxvY2s6IHZhcigtLWlkcy1tb2R1bGUtbmF2LWl0ZW0tbWFyZ2luLWJsb2NrKTtcbiAgICBtYXJnaW4taW5saW5lOiB2YXIoLS1pZHMtbW9kdWxlLW5hdi1pdGVtLW1hcmdpbi1pbmxpbmUpO1xuICAgIHBhZGRpbmc6IHZhcigtLWlkcy1tb2R1bGUtbmF2LWl0ZW0tcGFkZGluZy1ibG9jayk7XG5cbiAgICAmOm5vdCguZGVwdGgtMSkge1xuICAgICAgJi5maXJzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi1ibG9jay1zdGFydDogMDtcbiAgICAgIH1cblxuICAgICAgJi5sYXN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLWJsb2NrLWVuZDogMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuaWRzLWFjY29yZGlvbi1kaXNwbGF5LWljb24ge1xuICAgICAgbWFyZ2luLWlubGluZS1lbmQ6IHZhcigtLWlkcy1tb2R1bGUtbmF2LWl0ZW0tZXhwYW5kZWQtaWNvbi10ZXh0LXNwYWNlLXNpemUpO1xuICAgIH1cblxuICAgIC5pZHMtYWNjb3JkaW9uLWV4cGFuZGVyLWljb24ge1xuICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLWlubGluZS1lbmQ6IDRweDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBNb2R1bGUgTmF2IEl0ZW0gQ29tcG9uZW50XG5cbi5pZHMtbW9kdWxlLW5hdi1pdGVtIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgdHJhbnNpdGlvbjogaGVpZ2h0IHZhcigtLWlkcy1tb3Rpb24tZHVyYXRpb24pIHZhcigtLWlkcy1tb3Rpb24tZWFzZSksXG4gICAgbWFyZ2luIHZhcigtLWlkcy1tb3Rpb24tZHVyYXRpb24pIHZhcigtLWlkcy1tb3Rpb24tZWFzZSksXG4gICAgcGFkZGluZyB2YXIoLS1pZHMtbW90aW9uLWR1cmF0aW9uKSB2YXIoLS1pZHMtbW90aW9uLWVhc2UpLFxuICAgIHdpZHRoIHZhcigtLWlkcy1tb3Rpb24tZHVyYXRpb24pIHZhcigtLWlkcy1tb3Rpb24tZWFzZSk7XG5cbiAgJi5jb2xvci12YXJpYW50LW1vZHVsZS1uYXYge1xuICAgIEBpbmNsdWRlIGFjY29yZGlvbi1oZWFkZXItbW9kdWxlLW5hdi1jb2xvcnMoKTtcbiAgfVxuXG4gICYuY29sb3ItdmFyaWFudC1zdWItbW9kdWxlLW5hdiB7XG4gICAgQGluY2x1ZGUgYWNjb3JkaW9uLWhlYWRlci1tb2R1bGUtbmF2LWNvbG9ycygpO1xuICB9XG5cbiAgOjpzbG90dGVkKGlkcy10ZXh0KSB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICB9XG5cbiAgLmlkcy10ZXh0IHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIH1cblxuICAuaWRzLWFjY29yZGlvbi1leHBhbmRlci1pY29uIHtcbiAgICB3aWR0aDogdmFyKC0taWRzLW1vZHVsZS1uYXYtaXRlbS1kcm9wZG93bi1pY29uLXNpemUpO1xuICB9XG5cbiAgLmlkcy1hY2NvcmRpb24tZGlzcGxheS1pY29uLFxuICAuaWRzLWFjY29yZGlvbi1leHBhbmRlci1pY29uIHtcbiAgICB0cmFuc2l0aW9uOiBwYWRkaW5nIHZhcigtLWlkcy1tb3Rpb24tZHVyYXRpb24pIHZhcigtLWlkcy1tb3Rpb24tZWFzZSk7XG4gIH1cblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gTmVzdGVkIEFsaWdubWVudCBSdWxlcyAoXCJleHBhbmRlZFwiIGRpc3BsYXkgbW9kZSBvbmx5KVxuXG4gICRkZXB0aC1vZmZzZXQ6IDE2O1xuICAkdG9wLWxldmVsLWljb24tb2Zmc2V0OiA4O1xuICAkc3ViLWxldmVsLWljb24tb2Zmc2V0OiAxMjtcblxuICAmLmRpc3BsYXktbW9kZS1leHBhbmRlZCB7XG4gICAgLy8gR2VuZXJhdGVzIG5lc3RlZCBhbGlnbm1lbnQgc3R5bGVzXG4gICAgLy8gTk9URTogYGRlcHRoLTFgIGNhbid0IGRldGVjdCBpY29ucyBvbiBhIHBhcmVudCBiZWNhdXNlIHRoZXJlIGlzIG5vIHBhcmVudFxuICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggNiB7XG4gICAgICAmLmRlcHRoLSN7JGl9IHtcbiAgICAgICAgQGlmICRpID09IDEge1xuICAgICAgICAgIHBhZGRpbmctaW5saW5lLXN0YXJ0OiB2YXIoLS1pZHMtbW9kdWxlLW5hdi1pdGVtLXBhZGRpbmctYmxvY2spO1xuXG4gICAgICAgICAgJi5pcy1leHBhbmRhYmxlIHtcbiAgICAgICAgICAgIHBhZGRpbmctaW5saW5lLXN0YXJ0OiB2YXIoLS1pZHMtbW9kdWxlLW5hdi1pdGVtLXBhZGRpbmctYmxvY2spO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgJHRoaXMtZGVwdGgtb2Zmc2V0OiAoJGRlcHRoLW9mZnNldCAqICgkaSAtIDEpKTtcbiAgICAgICAgICAkZXhwYW5kYWJsZS1lbmQtb2Zmc2V0OiAoMTYgKyAkdGhpcy1kZXB0aC1vZmZzZXQpO1xuICAgICAgICAgICRleHBhbmRhYmxlLXN0YXJ0LW9mZnNldDogKDggKyAkdGhpcy1kZXB0aC1vZmZzZXQpO1xuICAgICAgICAgICRub3QtZXhwYW5kYWJsZS1vZmZzZXQ6ICgyNCArICR0aGlzLWRlcHRoLW9mZnNldCk7XG5cbiAgICAgICAgICAvLyBBcHBsaWVzIHRvIE1vZHVsZSBOYXYgYWNjb3JkaW9ucyB3aXRob3V0IGljb25zIHByZXNlbnRcbiAgICAgICAgICAvLyBpbiB0aGVpciB0b3AtbGV2ZWwgaGVhZGVycy9pdGVtc1xuICAgICAgICAgIHBhZGRpbmctaW5saW5lLXN0YXJ0OiAjeyRzdWItbGV2ZWwtaWNvbi1vZmZzZXQgKiAoJGkgLSAxKX1weDtcblxuICAgICAgICAgICY6bm90KC5pcy1leHBhbmRhYmxlKSB7XG4gICAgICAgICAgICBwYWRkaW5nLWlubGluZS1zdGFydDogI3skc3ViLWxldmVsLWljb24tb2Zmc2V0ICsgJG5vdC1leHBhbmRhYmxlLW9mZnNldH1weDtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAmLmlzLWV4cGFuZGFibGUge1xuICAgICAgICAgICAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6ICN7JGV4cGFuZGFibGUtc3RhcnQtb2Zmc2V0fXB4O1xuICAgICAgICAgIH1cblxuICAgICAgICAgICYuc2libGluZ3MtY2FuLWV4cGFuZCB7XG4gICAgICAgICAgICAmOm5vdCguaXMtZXhwYW5kYWJsZSkge1xuICAgICAgICAgICAgICBwYWRkaW5nLWlubGluZS1zdGFydDogI3skbm90LWV4cGFuZGFibGUtb2Zmc2V0ICsgNn1weDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICAvLyBBcHBsaWVzIHRvIE1vZHVsZSBOYXYgYWNjb3JkaW9ucyB0aGF0IGhhdmUgaWNvbnMgcHJlc2VudFxuICAgICAgICAgIC8vIGluIHRoZWlyIHRvcC1sZXZlbCBoZWFkZXJzL2l0ZW1zXG4gICAgICAgICAgJi5wYXJlbnQtaGFzLWljb24ge1xuICAgICAgICAgICAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6ICN7JHRvcC1sZXZlbC1pY29uLW9mZnNldCArICRzdWItbGV2ZWwtaWNvbi1vZmZzZXQgKiAoJGkgLSAxKX1weDtcblxuICAgICAgICAgICAgJjpub3QoLmlzLWV4cGFuZGFibGUpIHtcbiAgICAgICAgICAgICAgJHN1YmxldmVsLW9mZnNldDogMDtcblxuICAgICAgICAgICAgICBAaWYgJGkgPT0gMiB7XG4gICAgICAgICAgICAgICAgJHN1YmxldmVsLW9mZnNldDogNjtcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIHBhZGRpbmctaW5saW5lLXN0YXJ0OiAjeyR0b3AtbGV2ZWwtaWNvbi1vZmZzZXQgKyAkbm90LWV4cGFuZGFibGUtb2Zmc2V0IC0gJHN1YmxldmVsLW9mZnNldH1weDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi5pcy1leHBhbmRhYmxlIHtcbiAgICAgICAgICAgICAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6ICN7JHRvcC1sZXZlbC1pY29uLW9mZnNldCArICRleHBhbmRhYmxlLXN0YXJ0LW9mZnNldH1weDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi5zaWJsaW5ncy1jYW4tZXhwYW5kIHtcbiAgICAgICAgICAgICAgJjpub3QoLmlzLWV4cGFuZGFibGUpIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWlubGluZS1zdGFydDogI3skdG9wLWxldmVsLWljb24tb2Zmc2V0ICsgJG5vdC1leHBhbmRhYmxlLW9mZnNldCArICRzdWItbGV2ZWwtaWNvbi1vZmZzZXQgLSA2fXB4O1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCJcbkB1c2UgJy4uL2lkcy1idXR0b24vaWRzLWJ1dHRvbicgYXMgYnV0dG9uO1xuQHVzZSAnLi9pZHMtbW9kdWxlLW5hdi1pdGVtJyBhcyBuYXYtaXRlbTtcblxuOmhvc3Qge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuXG46OnNsb3R0ZWQoaWRzLWljb24pIHtcbiAgbWFyZ2luLWlubGluZTogMDtcbn1cblxuOjpzbG90dGVkKGlkcy10ZXh0KSB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xufVxuXG5AbWl4aW4gaWRzLW1vZHVsZS1uYXYtYnV0dG9uLXN0eWxlcygpIHtcbiAgJiB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1zZWxmOiBjZW50ZXI7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0taWRzLWNvbG9yLXRyYW5zcGFyZW50KTtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLWlkcy1jb2xvci10cmFuc3BhcmVudCk7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0taWRzLW1vZHVsZS1uYXYtY29tbW9uLWJvcmRlci1yYWRpdXMpO1xuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLXdpZHRoOiB2YXIoLS1pZHMtYm9yZGVyLXdpZHRoLXNtKTtcbiAgICBjb2xvcjogdmFyKC0taWRzLW1vZHVsZS1uYXYtaXRlbS10ZXh0LWNvbG9yKTtcbiAgICBoZWlnaHQ6IHZhcigtLWlkcy1tb2R1bGUtbmF2LXN3aXRjaGVyLWJ1dHRvbi1zaXplKTtcbiAgICB3aWR0aDogdmFyKC0taWRzLW1vZHVsZS1uYXYtc3dpdGNoZXItYnV0dG9uLXNpemUpO1xuICB9XG5cbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0taWRzLW1vZHVsZS1uYXYtaXRlbS1ob3Zlci1iZy1jb2xvcik7XG4gICAgY29sb3I6IHZhcigtLWlkcy1tb2R1bGUtbmF2LWl0ZW0taG92ZXItdGV4dC1jb2xvcik7XG4gIH1cblxuICAmLmlzLWFjdGl2ZSxcbiAgJjphY3RpdmUge1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0taWRzLW1vZHVsZS1uYXYtaXRlbS1zZWxlY3RlZC10ZXh0LWNvbG9yKTtcbiAgfVxuXG4gICY6Zm9jdXMge1xuICAgIG91dGxpbmU6IG5vbmU7XG4gIH1cblxuICAmOm5vdCguaGlkZS1mb2N1cyk6Zm9jdXMsXG4gICY6bm90KC5oaWRlLWZvY3VzKS5pcy1mb2N1c2VkIHtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLWlkcy1tb2R1bGUtbmF2LWl0ZW0tc2VsZWN0ZWQtdGV4dC1jb2xvcik7XG4gIH1cblxuICAmOm5vdChbZGlzYWJsZWRdKTpub3QoLmRpc2FibGVkKSB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICB9XG5cbiAgJltkaXNhYmxlZF0sXG4gIC5kaXNhYmxlZCB7XG4gICAgY29sb3I6IHZhcigtLWlkcy1idXR0b24tdGVydGlhcnktY29sb3ItdGV4dC1kaXNhYmxlZCk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0taWRzLWJ1dHRvbi10ZXJ0aWFyeS1kaXNhYmxlZC1iYWNrZ3JvdW5kLWNvbG9yKTtcbiAgfVxuXG4gIC5pZHMtdGV4dCB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICB9XG59XG5cbmJ1dHRvbi5pZHMtbW9kdWxlLW5hdi1idXR0b24ge1xuICBAaW5jbHVkZSBpZHMtbW9kdWxlLW5hdi1idXR0b24tc3R5bGVzKCk7XG5cbiAgLyogc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWR1cGxpY2F0ZS1zZWxlY3RvcnMgKi9cbiAgJiB7XG4gICAgaGVpZ2h0OiB2YXIoLS1pZHMtbW9kdWxlLW5hdi1pdGVtLWNvbGxhcHNlZC1zaXplKTtcbiAgICBwYWRkaW5nLWlubGluZTogdmFyKC0taWRzLW1vZHVsZS1uYXYtc3dpdGNoZXItYnV0dG9uLWljb24tbWFyZ2luKTtcbiAgfVxuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIC8vIERpc3BsYXkgTW9kZTogQ29sbGFwc2VkXG5cbiAgJi5kaXNwbGF5LW1vZGUtY29sbGFwc2VkIHtcbiAgICBwYWRkaW5nLWJsb2NrOiB2YXIoLS1pZHMtbW9kdWxlLW5hdi1zd2l0Y2hlci1idXR0b24taWNvbi1tYXJnaW4pO1xuICB9XG5cbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gRGlzcGxheSBNb2RlOiBFeHBhbmRlZFxuXG4gICYuZGlzcGxheS1tb2RlLWV4cGFuZGVkIHtcbiAgICBwYWRkaW5nLWJsb2NrOiB2YXIoLS1pZHMtbW9kdWxlLW5hdi1zd2l0Y2hlci1idXR0b24taWNvbi1tYXJnaW4pO1xuICB9XG59XG4iXX0= */
498
+ /*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VSb290IjoiL2J1aWxkcy9pbmZvci1kZXNpZ24vZW50ZXJwcmlzZS13Yy9zcmMvY29tcG9uZW50cy9pZHMtbW9kdWxlLW5hdiIsInNvdXJjZXMiOlsiLi4vaWRzLWFjY29yZGlvbi9pZHMtYWNjb3JkaW9uLWhlYWRlci5zY3NzIiwiaWRzLW1vZHVsZS1uYXYtaXRlbS5zY3NzIiwiLi4vLi4vdGhlbWVzL21peGlucy9pZHMtY29yZS1taXhpbnMuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUEyRkE7RUFDRTs7QUFFQTtFQUNFO0VBQ0E7OztBQUtGO0VBQ0U7OztBQUtKO0VBQ0U7OztBQUtGO0VBQ0U7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0U7O0FBR0Y7RUFDRTs7QUFHRjtFQUNFOztBQUlGO0VBeElBO0VBQ0E7RUEwSUU7RUFDQTs7QUF2SUY7RUFDRTtFQUNBO0VBQ0E7O0FBMElBO0VBcklGO0VBd0lJOztBQXRJSjtFQUNFOztBQXlJRjtFQUNFOztBQUlBO0VBQ0U7O0FBS0o7RUE1SUE7RUFDQTtFQUdBO0VBQ0E7RUFRQTtFQWtJRTs7QUF4SUY7RUFDRTtFQUNBOztBQU1GO0VBQ0U7RUFDQTs7QUFHRjtFQUNFO0VBQ0E7RUFDQTs7QUFHRjtFQUNFO0VBQ0E7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7O0FBR0Y7RUFDRTs7QUFFQTtFQUNFOztBQW9HSjtFQW5KQTtFQUNBO0VBR0E7RUFDQTtFQVFBO0VBMkNBO0VBK0ZFOztBQWhKRjtFQUNFO0VBQ0E7O0FBTUY7RUFDRTtFQUNBOztBQUdGO0VBQ0U7RUFDQTtFQUNBOztBQUdGO0VBQ0U7RUFDQTs7QUFHRjtFQUNFO0VBQ0E7RUFDQTs7QUFHRjtFQUNFO0VBQ0E7RUFDQTs7QUFHRjtFQUNFOztBQUVBO0VBQ0U7O0FBOEdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQU1OO0VBQ0U7OztBQUdGO0VBQ0U7OztBQUlBO0VBQ0U7OztBQzNNSjtFQUNFOzs7QUFnSUY7RUFDRTtFQUNBOztBQUtBO0VBaElBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDRTtFQUNBOztBQUdGO0VBQ0U7RUFDQTtFQUNBOztBQUdGO0VBQ0U7O0FBR0Y7RUFDRTtFQUNBOztBQUdGO0VBRUU7O0FBR0Y7RUFFRTs7QUFHRjtFQUVFOztBQU1GO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7O0FBR0Y7RUFDRTs7QUFPSjtFQUNFO0VBQ0E7RUFDQTs7QUFFQTtFQUNFO0VBQ0E7RUFDQTtFQUNBOztBQUdGO0VBQ0U7O0FBR0Y7RUN2RUY7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUR3RUE7RUFDRTtFQUNBO0VBQ0E7O0FBR0U7RUFDRTs7QUFHRjtFQUNFOztBQUlKO0VBQ0U7O0FBSUE7RUFDRTs7QUFvQk47RUFwSUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNFO0VBQ0E7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7O0FBR0Y7RUFDRTs7QUFHRjtFQUNFO0VBQ0E7O0FBR0Y7RUFFRTs7QUFHRjtFQUVFOztBQUdGO0VBRUU7O0FBTUY7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7QUFHRjtFQUNFOztBQU9KO0VBQ0U7RUFDQTtFQUNBOztBQUVBO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7O0FBR0Y7RUFDRTs7QUFHRjtFQ3ZFRjtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBRHdFQTtFQUNFO0VBQ0E7RUFDQTs7QUFHRTtFQUNFOztBQUdGO0VBQ0U7O0FBSUo7RUFDRTs7QUFJQTtFQUNFOztBQXdCTjtFQUNFO0VBQ0E7RUFDQTs7QUFHRjtFQUNFO0VBQ0E7RUFDQTs7QUFHRjtFQUNFOztBQUdGO0FBQUE7RUFFRTs7QUFjRTtFQUVJOztBQUVBO0VBQ0U7O0FBTE47RUFlSTs7QUFFQTtFQUNFOztBQUdGO0VBQ0U7O0FBSUE7RUFDRTs7QUFNSjtFQUNFOztBQUVBO0VBT0U7O0FBR0Y7RUFDRTs7QUFJQTtFQUNFOztBQXBEVjtFQWVJOztBQUVBO0VBQ0U7O0FBR0Y7RUFDRTs7QUFJQTtFQUNFOztBQU1KO0VBQ0U7O0FBRUE7RUFPRTs7QUFHRjtFQUNFOztBQUlBO0VBQ0U7O0FBcERWO0VBZUk7O0FBRUE7RUFDRTs7QUFHRjtFQUNFOztBQUlBO0VBQ0U7O0FBTUo7RUFDRTs7QUFFQTtFQU9FOztBQUdGO0VBQ0U7O0FBSUE7RUFDRTs7QUFwRFY7RUFlSTs7QUFFQTtFQUNFOztBQUdGO0VBQ0U7O0FBSUE7RUFDRTs7QUFNSjtFQUNFOztBQUVBO0VBT0U7O0FBR0Y7RUFDRTs7QUFJQTtFQUNFOztBQXBEVjtFQWVJOztBQUVBO0VBQ0U7O0FBR0Y7RUFDRTs7QUFJQTtFQUNFOztBQU1KO0VBQ0U7O0FBRUE7RUFPRTs7QUFHRjtFQUNFOztBQUlBO0VBQ0UiLCJzb3VyY2VzQ29udGVudCI6WyJcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gU3R5bGVzIHNwZWNpZmljIHRvIHRoZSBpbi1wYWdlIEFjY29yZGlvblxuXG5AbWl4aW4gYWNjb3JkaW9uLWhlYWRlci1zdGFuZGFyZC1jb2xvcnMoKSB7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0taWRzLWNvbG9yLXRyYW5zcGFyZW50KTtcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogdmFyKC0taWRzLWFjY29yZGlvbi1oZWFkZXItY29sb3ItYm9yZGVyLWJvdHRvbSk7XG59XG5cbkBtaXhpbiBhY2NvcmRpb24taGVhZGVyLWZvY3VzLWNvbG9ycygpIHtcbiAgJjpmb2N1cyB7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1pZHMtYWNjb3JkaW9uLWhlYWRlci1jb2xvci1ib3JkZXItZm9jdXMpO1xuICAgIGJveC1zaGFkb3c6IHZhcigtLWlkcy1hY2NvcmRpb24taGVhZGVyLXNoYWRvdy1mb2N1cyk7XG4gICAgYm9yZGVyLXdpZHRoOiB2YXIoLS1pZHMtYm9yZGVyLXdpZHRoLXNtKTtcbiAgfVxufVxuXG5AbWl4aW4gYWNjb3JkaW9uLWhlYWRlci1kaXNhYmxlZC1jb2xvcnMoKSB7XG4gIGNvbG9yOiB2YXIoLS1pZHMtYWNjb3JkaW9uLWhlYWRlci1jb2xvci10ZXh0LWRpc2FibGVkKTtcblxuICBpZHMtaWNvbiB7XG4gICAgY29sb3I6IHZhcigtLWlkcy1hY2NvcmRpb24taGVhZGVyLWNvbG9yLWJvcmRlci1kaXNhYmxlZCk7XG4gIH1cbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBTdHlsZXMgc3BlY2lmaWMgdG8gdGhlIFRvcC1sZXZlbCBBcHAgTWVudSBBY2NvcmRpb25zXG5cbkBtaXhpbiBhY2NvcmRpb24taGVhZGVyLWFwcC1tZW51LWNvbG9ycygpIHtcbiAgbWFyZ2luLWlubGluZTogOHB4O1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG5cbiAgLy8gQ29udHJhc3RzIGJhY2tncm91bmQgb2YgdGhlIERyYXdlclxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1pZHMtZHJhd2VyLWFwcC1tZW51LWNvbG9yLWJhY2tncm91bmQpO1xuICBib3JkZXItY29sb3I6IHZhcigtLWlkcy1kcmF3ZXItYXBwLW1lbnUtY29sb3ItYm9yZGVyKTtcblxuICAmLmV4cGFuZGVkIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1pZHMtY29sb3ItdHJhbnNwYXJlbnQpO1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0taWRzLWNvbG9yLXRyYW5zcGFyZW50KTtcbiAgfVxuXG4gIC8vIExpZ2h0IE1vZGUgU3R5bGVzXG4gIGNvbG9yOiB2YXIoLS1pZHMtYXBwLW1lbnUtYWNjb3JkaW9uLWhlYWRlci1jb2xvci10ZXh0LWRlZmF1bHQpO1xuXG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWlkcy1hcHAtbWVudS1oZWFkZXItY29sb3ItYmFja2dyb3VuZC1ob3Zlcik7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1pZHMtYXBwLW1lbnUtaGVhZGVyLWNvbG9yLWJvcmRlci1ob3Zlcik7XG4gIH1cblxuICAmOmZvY3VzIHtcbiAgICBjb2xvcjogdmFyKC0taWRzLWFwcC1tZW51LWFjY29yZGlvbi1oZWFkZXItY29sb3ItdGV4dC1mb2N1cyk7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1pZHMtYXBwLW1lbnUtYWNjb3JkaW9uLWhlYWRlci1jb2xvci1ib3JkZXItZm9jdXMpO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWlkcy1hcHAtbWVudS1hY2NvcmRpb24taGVhZGVyLWNvbG9yLWJhY2tncm91bmQtZm9jdXMpO1xuICB9XG5cbiAgJi5zZWxlY3RlZCB7XG4gICAgY29sb3I6IHZhcigtLWlkcy1hcHAtbWVudS1hY2NvcmRpb24taGVhZGVyLWNvbG9yLXRleHQtc2VsZWN0ZWQpO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWlkcy1hcHAtbWVudS1hY2NvcmRpb24taGVhZGVyLXNlbGVjdGVkLWJnLWNvbG9yKTtcbiAgfVxuXG4gICZbZGlzYWJsZWRdIHtcbiAgICBjb2xvcjogdmFyKC0taWRzLWFwcC1tZW51LWFjY29yZGlvbi1oZWFkZXItY29sb3ItdGV4dC1kaXNhYmxlZCk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogKC0taWRzLWFwcC1tZW51LWFjY29yZGlvbi1oZWFkZXItY29sb3ItYmFja2dyb3VuZC1kaXNhYmxlZCk7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1pZHMtYXBwLW1lbnUtYWNjb3JkaW9uLWhlYWRlci1jb2xvci1ib3JkZXItZGlzYWJsZWQpO1xuICB9XG5cbiAgLmZpbHRlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0taWRzLWFwcC1tZW51LWFjY29yZGlvbi1oZWFkZXItY29sb3ItYmFja2dyb3VuZC1kZWZhdWx0KTtcbiAgICBjb2xvcjogdmFyKC0taWRzLWFwcC1tZW51LWFjY29yZGlvbi1oZWFkZXItZmlsdGVyLWNvbG9yLXRleHQpO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICB9XG5cbiAgJi5oaWRkZW4tYnktZmlsdGVyLmNoaWxkLWZpbHRlci1tYXRjaCB7XG4gICAgY29sb3I6IHZhcigtLWlkcy1hcHAtbWVudS1hY2NvcmRpb24taGVhZGVyLWZpbHRlci1tYXRjaC1jb2xvci10ZXh0KTtcblxuICAgICYuc2VsZWN0ZWQge1xuICAgICAgY29sb3I6IHZhcigtLWlkcy1hcHAtbWVudS1hY2NvcmRpb24taGVhZGVyLWZpbHRlci1tYXRjaC1jb2xvci10ZXh0LXNlbGVjdGVkKTtcbiAgICB9XG4gIH1cbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBTdHlsZXMgc3BlY2lmaWMgdG8gdGhlIFN1Yi1sZXZlbCBBcHAgTWVudSBBY2NvcmRpb25zXG5cbkBtaXhpbiBhY2NvcmRpb24taGVhZGVyLW5lc3RlZC1hcHAtbWVudS1jb2xvcnMoKSB7XG4gIG1hcmdpbjogMDtcbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBHZW5lcmFsIHN0eWxlc1xuXG46aG9zdCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuXG4gIGlkcy1pY29uIHtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gdmFyKC0taWRzLW1vdGlvbi1kdXJhdGlvbikgdmFyKC0taWRzLW1vdGlvbi1saW5lYXIpO1xuICAgIGp1c3RpZnktc2VsZjogZW5kO1xuICB9XG59XG5cbjpob3N0KFthcmlhLWV4cGFuZGVkPSd0cnVlJ10pIHtcbiAgaWRzLWljb25baWNvbj0nY2FyZXQtZG93biddIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZVgoMTgwZGVnKTtcbiAgfVxufVxuXG4vLyBcIkZpbHRlcmVkXCIgYWNjb3JkaW9uIGhlYWRlcnMgc2hvdWxkIG5vdCBiZSBkaXNwbGF5ZWRcbjpob3N0KFtoaWRkZW4tYnktZmlsdGVyXSkge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4vLyBQYXJlbnQgYWNjb3JkaW9uIGhlYWRlcnMgdGhhdCBoYXZlIGNoaWxkcmVuIHdobyBtYXRjaCB0aGUgZmlsdGVyXG4vLyBzaG91bGQgYmUgZGlzcGxheWVkLCBidXQgdGhlaXIgdGV4dCBjb2xvciBpcyBtdXRlZFxuOmhvc3QoW2hpZGRlbi1ieS1maWx0ZXJdW2NoaWxkLWZpbHRlci1tYXRjaF0pIHtcbiAgZGlzcGxheTogaW5pdGlhbDtcbn1cblxuLmlkcy1hY2NvcmRpb24taGVhZGVyIHtcbiAgYm9yZGVyLXdpZHRoOiB2YXIoLS1pZHMtYm9yZGVyLXdpZHRoLXNtKTtcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBkaXNwbGF5OiBmbGV4O1xuICBncmlkLWF1dG8tZmxvdzogY29sdW1uO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG5cbiAgOjpzbG90dGVkKGlkcy10ZXh0KSB7XG4gICAgZmxleC1ncm93OiAxO1xuICB9XG5cbiAgLmlkcy1hY2NvcmRpb24tZGlzcGxheS1pY29uIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgJjpmb2N1cyB7XG4gICAgb3V0bGluZTogMDtcbiAgfVxuXG4gIC8vIEluLXBhZ2UgQWNjb3JkaW9uc1xuICAmOm5vdChbY2xhc3MqPVwiY29sb3ItdmFyaWFudC1cIl0pIHtcbiAgICBAaW5jbHVkZSBhY2NvcmRpb24taGVhZGVyLXN0YW5kYXJkLWNvbG9ycygpO1xuXG4gICAgYm9yZGVyLWlubGluZS13aWR0aDogMDtcbiAgICBwYWRkaW5nOiB2YXIoLS1pZHMtYWNjb3JkaW9uLWhlYWRlci1wYWRkaW5nKTtcblxuICAgICY6bm90KC5kaXNhYmxlZCkge1xuICAgICAgQGluY2x1ZGUgYWNjb3JkaW9uLWhlYWRlci1mb2N1cy1jb2xvcnMoKTtcbiAgICB9XG5cbiAgICAmLmRpc2FibGVkIHtcbiAgICAgIEBpbmNsdWRlIGFjY29yZGlvbi1oZWFkZXItZGlzYWJsZWQtY29sb3JzKCk7XG5cbiAgICAgIGN1cnNvcjogdW5zZXQ7XG4gICAgfVxuICB9XG5cbiAgJi5zZWxlY3RlZCB7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGRlcjtcbiAgfVxuXG4gICYuaGFzLWljb24ge1xuICAgIC5pZHMtYWNjb3JkaW9uLWRpc3BsYXktaWNvbiB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgIH1cbiAgfVxuXG4gIC8vIFRvcCBMZXZlbCBBcHAgTWVudSBBY2NvcmRpb25zXG4gICYuY29sb3ItdmFyaWFudC1hcHAtbWVudSB7XG4gICAgQGluY2x1ZGUgYWNjb3JkaW9uLWhlYWRlci1hcHAtbWVudS1jb2xvcnMoKTtcblxuICAgIHBhZGRpbmc6IHZhcigtLWlkcy1hY2NvcmRpb24taGVhZGVyLWFwcC1tZW51LXBhZGRpbmcpO1xuICB9XG5cbiAgLy8gU3ViLWxldmVsIEFwcCBNZW51IEFjY29yZGlvbnNcbiAgJi5jb2xvci12YXJpYW50LXN1Yi1hcHAtbWVudSB7XG4gICAgQGluY2x1ZGUgYWNjb3JkaW9uLWhlYWRlci1hcHAtbWVudS1jb2xvcnMoKTtcbiAgICBAaW5jbHVkZSBhY2NvcmRpb24taGVhZGVyLW5lc3RlZC1hcHAtbWVudS1jb2xvcnMoKTtcblxuICAgIHBhZGRpbmc6IHZhcigtLWlkcy1hY2NvcmRpb24taGVhZGVyLXN1Yi1hcHAtbWVudS1wYWRkaW5nKTtcbiAgfVxuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIC8vIE1vZGlmaWNhdGlvbnMgdG8gRXhwYW5kZXIgSWNvbiBUeXBlc1xuICAmLmV4cGFuZGVyLXR5cGUtcGx1cy1taW51cyB7XG4gICAgLmlkcy1hY2NvcmRpb24tZXhwYW5kZXItaWNvbiB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBtYXJnaW4tdG9wOiAtNHB4O1xuICAgICAgaGVpZ2h0OiAxNHB4O1xuICAgICAgd2lkdGg6IDE0cHg7XG4gICAgfVxuICB9XG59XG5cbi8vIHN0eWxlcyBmb3IgaWNvbiBzcGFjaW5nXG46OnNsb3R0ZWQoaWRzLWljb24pIHtcbiAgbWFyZ2luLWlubGluZS1lbmQ6IDEycHg7XG59XG5cbi5pZHMtYWNjb3JkaW9uLWRpc3BsYXktaWNvbiB7XG4gIG1hcmdpbi1pbmxpbmUtZW5kOiAxMnB4O1xufVxuXG4uaWRzLWFjY29yZGlvbi1leHBhbmRlci1pY29uIHtcbiAgJjpmaXJzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWlubGluZS1lbmQ6IDhweDtcbiAgfVxufVxuIiwiQHVzZSAnLi4vLi4vdGhlbWVzL21peGlucy9pZHMtY29yZS1taXhpbnMnIGFzICo7XG5AdXNlICcuLi9pZHMtYWNjb3JkaW9uL2lkcy1hY2NvcmRpb24taGVhZGVyJyBhcyAqO1xuXG46aG9zdCB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gU3R5bGVzIHNwZWNpZmljIHRvIE1vZHVsZSBOYXYgQWNjb3JkaW9uc1xuXG5AbWl4aW4gYWNjb3JkaW9uLWhlYWRlci1tb2R1bGUtbmF2LWNvbG9ycygpIHtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1pZHMtY29sb3ItdHJhbnNwYXJlbnQpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1pZHMtbW9kdWxlLW5hdi1jb21tb24tYm9yZGVyLXJhZGl1cyk7XG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG4gIGJvcmRlci13aWR0aDogdmFyKC0taWRzLWJvcmRlci13aWR0aC1zbSk7XG4gIGNvbG9yOiB2YXIoLS1pZHMtbW9kdWxlLW5hdi1pdGVtLXRleHQtY29sb3IpO1xuXG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWlkcy1tb2R1bGUtbmF2LWl0ZW0taG92ZXItYmctY29sb3IpO1xuICAgIGNvbG9yOiB2YXIoLS1pZHMtbW9kdWxlLW5hdi1pdGVtLWhvdmVyLXRleHQtY29sb3IpO1xuICB9XG5cbiAgJjphY3RpdmUge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWlkcy1tb2R1bGUtbmF2LWl0ZW0tc2VsZWN0ZWQtYmctY29sb3IpO1xuICAgIGNvbG9yOiB2YXIoLS1pZHMtbW9kdWxlLW5hdi1pdGVtLXNlbGVjdGVkLXRleHQtY29sb3IpO1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0taWRzLW1vZHVsZS1uYXYtaXRlbS1hY3RpdmUtYm9yZGVyLWNvbG9yKTtcbiAgfVxuXG4gICY6Zm9jdXM6bm90KC5oaWRlLWZvY3VzKSB7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1pZHMtbW9kdWxlLW5hdi1pdGVtLWFjdGl2ZS1ib3JkZXItY29sb3IpO1xuICB9XG5cbiAgJi5zZWxlY3RlZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0taWRzLW1vZHVsZS1uYXYtaXRlbS1zZWxlY3RlZC1iZy1jb2xvcik7XG4gICAgY29sb3I6IHZhcigtLWlkcy1tb2R1bGUtbmF2LWl0ZW0tc2VsZWN0ZWQtdGV4dC1jb2xvcik7XG4gIH1cblxuICAmW2Rpc2FibGVkXSB7XG4gICAgLy8gQFRPRE8gZGlzYWJsZWQgY29sb3JzXG4gICAgY29sb3I6IHZhcigtLWlkcy1tb2R1bGUtbmF2LWl0ZW0tdGV4dC1jb2xvcik7XG4gIH1cblxuICAuZmlsdGVyIHtcbiAgICAvLyBAVE9ETyBmaWx0ZXIgY29sb3JzPyAobmVlZCBkZXNpZ25zKVxuICAgIGNvbG9yOiB2YXIoLS1pZHMtbW9kdWxlLW5hdi1pdGVtLXRleHQtY29sb3IpO1xuICB9XG5cbiAgJi5oaWRkZW4tYnktZmlsdGVyLmNoaWxkLWZpbHRlci1tYXRjaCB7XG4gICAgLy8gQFRPRE8gZmlsdGVyIGNvbG9ycz8gKG5lZWQgZGVzaWducylcbiAgICBjb2xvcjogdmFyKC0taWRzLW1vZHVsZS1uYXYtaXRlbS10ZXh0LWNvbG9yKTtcbiAgfVxuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAvLyBEaXNwbGF5IE1vZGU6IEhpZGRlblxuXG4gICY6bm90KFtjbGFzcyo9J2Rpc3BsYXktbW9kZS0nXSkge1xuICAgIGhlaWdodDogdmFyKC0taWRzLW1vZHVsZS1uYXYtaXRlbS1jb2xsYXBzZWQtc2l6ZSk7XG4gICAgbWFyZ2luLWJsb2NrOiB2YXIoLS1pZHMtbW9kdWxlLW5hdi1pdGVtLWNvbGxhcHNlZC1nZW5lcmFsLXNwYWNlLXNpemUpO1xuICAgIG1hcmdpbi1pbmxpbmU6IGF1dG87XG4gICAgcGFkZGluZy1ibG9jazogdmFyKC0taWRzLW1vZHVsZS1uYXYtaXRlbS1wYWRkaW5nLWJsb2NrKTtcbiAgICBwYWRkaW5nLWlubGluZTogYXV0bztcbiAgICB3aWR0aDogMDtcblxuICAgIC5pZHMtYWNjb3JkaW9uLWRpc3BsYXktaWNvbiB7XG4gICAgICBqdXN0aWZ5LXNlbGY6IGNlbnRlcjtcbiAgICAgIGFsaWduLXNlbGY6IGNlbnRlcjtcbiAgICAgIG1hcmdpbi1pbmxpbmU6IDA7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgIH1cblxuICAgIC5pZHMtYWNjb3JkaW9uLWV4cGFuZGVyLWljb24ge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gRGlzcGxheSBNb2RlOiBDb2xsYXBzZWRcblxuICAmLmRpc3BsYXktbW9kZS1jb2xsYXBzZWQge1xuICAgIGhlaWdodDogdmFyKC0taWRzLW1vZHVsZS1uYXYtaXRlbS1jb2xsYXBzZWQtc2l6ZSk7XG4gICAgd2lkdGg6IHZhcigtLWlkcy1tb2R1bGUtbmF2LWl0ZW0tY29sbGFwc2VkLXNpemUpO1xuICAgIG1hcmdpbjogdmFyKC0taWRzLW1vZHVsZS1uYXYtaXRlbS1jb2xsYXBzZWQtZ2VuZXJhbC1zcGFjZS1zaXplKSBhdXRvO1xuXG4gICAgLmlkcy1hY2NvcmRpb24tZGlzcGxheS1pY29uIHtcbiAgICAgIG1hcmdpbi1pbmxpbmU6IHZhcigtLWlkcy1tb2R1bGUtbmF2LWl0ZW0tZGlzcGxheS1pY29uLWNvbGxhcHNlZC1tYXJnaW4pO1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIGp1c3RpZnktc2VsZjogY2VudGVyO1xuICAgICAgYWxpZ24tc2VsZjogY2VudGVyO1xuICAgIH1cblxuICAgIC5pZHMtYWNjb3JkaW9uLWV4cGFuZGVyLWljb24ge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICAmOjpzbG90dGVkKGlkcy10ZXh0KSB7XG4gICAgICBAaW5jbHVkZSBhdWRpYmxlO1xuICAgIH1cbiAgfVxuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAvLyBEaXNwbGF5IE1vZGU6IEV4cGFuZGVkXG5cbiAgJi5kaXNwbGF5LW1vZGUtZXhwYW5kZWQge1xuICAgIG1hcmdpbi1ibG9jazogdmFyKC0taWRzLW1vZHVsZS1uYXYtaXRlbS1tYXJnaW4tYmxvY2spO1xuICAgIG1hcmdpbi1pbmxpbmU6IHZhcigtLWlkcy1tb2R1bGUtbmF2LWl0ZW0tbWFyZ2luLWlubGluZSk7XG4gICAgcGFkZGluZzogdmFyKC0taWRzLW1vZHVsZS1uYXYtaXRlbS1wYWRkaW5nLWJsb2NrKTtcblxuICAgICY6bm90KC5kZXB0aC0xKSB7XG4gICAgICAmLmZpcnN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLWJsb2NrLXN0YXJ0OiAwO1xuICAgICAgfVxuXG4gICAgICAmLmxhc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tYmxvY2stZW5kOiAwO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5pZHMtYWNjb3JkaW9uLWRpc3BsYXktaWNvbiB7XG4gICAgICBtYXJnaW4taW5saW5lLWVuZDogdmFyKC0taWRzLW1vZHVsZS1uYXYtaXRlbS1leHBhbmRlZC1pY29uLXRleHQtc3BhY2Utc2l6ZSk7XG4gICAgfVxuXG4gICAgLmlkcy1hY2NvcmRpb24tZXhwYW5kZXItaWNvbiB7XG4gICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4taW5saW5lLWVuZDogNHB4O1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIE1vZHVsZSBOYXYgSXRlbSBDb21wb25lbnRcblxuLmlkcy1tb2R1bGUtbmF2LWl0ZW0ge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB0cmFuc2l0aW9uOiBoZWlnaHQgdmFyKC0taWRzLW1vdGlvbi1kdXJhdGlvbikgdmFyKC0taWRzLW1vdGlvbi1lYXNlKSxcbiAgICBtYXJnaW4gdmFyKC0taWRzLW1vdGlvbi1kdXJhdGlvbikgdmFyKC0taWRzLW1vdGlvbi1lYXNlKSxcbiAgICBwYWRkaW5nIHZhcigtLWlkcy1tb3Rpb24tZHVyYXRpb24pIHZhcigtLWlkcy1tb3Rpb24tZWFzZSksXG4gICAgd2lkdGggdmFyKC0taWRzLW1vdGlvbi1kdXJhdGlvbikgdmFyKC0taWRzLW1vdGlvbi1lYXNlKTtcblxuICAmLmNvbG9yLXZhcmlhbnQtbW9kdWxlLW5hdiB7XG4gICAgQGluY2x1ZGUgYWNjb3JkaW9uLWhlYWRlci1tb2R1bGUtbmF2LWNvbG9ycygpO1xuICB9XG5cbiAgJi5jb2xvci12YXJpYW50LXN1Yi1tb2R1bGUtbmF2IHtcbiAgICBAaW5jbHVkZSBhY2NvcmRpb24taGVhZGVyLW1vZHVsZS1uYXYtY29sb3JzKCk7XG4gIH1cblxuICA6OnNsb3R0ZWQoaWRzLXRleHQpIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIH1cblxuICAuaWRzLXRleHQge1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgfVxuXG4gIC5pZHMtYWNjb3JkaW9uLWV4cGFuZGVyLWljb24ge1xuICAgIHdpZHRoOiB2YXIoLS1pZHMtbW9kdWxlLW5hdi1pdGVtLWRyb3Bkb3duLWljb24tc2l6ZSk7XG4gIH1cblxuICAuaWRzLWFjY29yZGlvbi1kaXNwbGF5LWljb24sXG4gIC5pZHMtYWNjb3JkaW9uLWV4cGFuZGVyLWljb24ge1xuICAgIHRyYW5zaXRpb246IHBhZGRpbmcgdmFyKC0taWRzLW1vdGlvbi1kdXJhdGlvbikgdmFyKC0taWRzLW1vdGlvbi1lYXNlKTtcbiAgfVxuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAvLyBOZXN0ZWQgQWxpZ25tZW50IFJ1bGVzIChcImV4cGFuZGVkXCIgZGlzcGxheSBtb2RlIG9ubHkpXG5cbiAgJGRlcHRoLW9mZnNldDogMTY7XG4gICR0b3AtbGV2ZWwtaWNvbi1vZmZzZXQ6IDg7XG4gICRzdWItbGV2ZWwtaWNvbi1vZmZzZXQ6IDEyO1xuXG4gICYuZGlzcGxheS1tb2RlLWV4cGFuZGVkIHtcbiAgICAvLyBHZW5lcmF0ZXMgbmVzdGVkIGFsaWdubWVudCBzdHlsZXNcbiAgICAvLyBOT1RFOiBgZGVwdGgtMWAgY2FuJ3QgZGV0ZWN0IGljb25zIG9uIGEgcGFyZW50IGJlY2F1c2UgdGhlcmUgaXMgbm8gcGFyZW50XG4gICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCA2IHtcbiAgICAgICYuZGVwdGgtI3skaX0ge1xuICAgICAgICBAaWYgJGkgPT0gMSB7XG4gICAgICAgICAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6IHZhcigtLWlkcy1tb2R1bGUtbmF2LWl0ZW0tcGFkZGluZy1ibG9jayk7XG5cbiAgICAgICAgICAmLmlzLWV4cGFuZGFibGUge1xuICAgICAgICAgICAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6IHZhcigtLWlkcy1tb2R1bGUtbmF2LWl0ZW0tcGFkZGluZy1ibG9jayk7XG4gICAgICAgICAgfVxuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAkdGhpcy1kZXB0aC1vZmZzZXQ6ICgkZGVwdGgtb2Zmc2V0ICogKCRpIC0gMSkpO1xuICAgICAgICAgICRleHBhbmRhYmxlLWVuZC1vZmZzZXQ6ICgxNiArICR0aGlzLWRlcHRoLW9mZnNldCk7XG4gICAgICAgICAgJGV4cGFuZGFibGUtc3RhcnQtb2Zmc2V0OiAoOCArICR0aGlzLWRlcHRoLW9mZnNldCk7XG4gICAgICAgICAgJG5vdC1leHBhbmRhYmxlLW9mZnNldDogKDI0ICsgJHRoaXMtZGVwdGgtb2Zmc2V0KTtcblxuICAgICAgICAgIC8vIEFwcGxpZXMgdG8gTW9kdWxlIE5hdiBhY2NvcmRpb25zIHdpdGhvdXQgaWNvbnMgcHJlc2VudFxuICAgICAgICAgIC8vIGluIHRoZWlyIHRvcC1sZXZlbCBoZWFkZXJzL2l0ZW1zXG4gICAgICAgICAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6ICN7JHN1Yi1sZXZlbC1pY29uLW9mZnNldCAqICgkaSAtIDEpfXB4O1xuXG4gICAgICAgICAgJjpub3QoLmlzLWV4cGFuZGFibGUpIHtcbiAgICAgICAgICAgIHBhZGRpbmctaW5saW5lLXN0YXJ0OiAjeyRzdWItbGV2ZWwtaWNvbi1vZmZzZXQgKyAkbm90LWV4cGFuZGFibGUtb2Zmc2V0fXB4O1xuICAgICAgICAgIH1cblxuICAgICAgICAgICYuaXMtZXhwYW5kYWJsZSB7XG4gICAgICAgICAgICBwYWRkaW5nLWlubGluZS1zdGFydDogI3skZXhwYW5kYWJsZS1zdGFydC1vZmZzZXR9cHg7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgJi5zaWJsaW5ncy1jYW4tZXhwYW5kIHtcbiAgICAgICAgICAgICY6bm90KC5pcy1leHBhbmRhYmxlKSB7XG4gICAgICAgICAgICAgIHBhZGRpbmctaW5saW5lLXN0YXJ0OiAjeyRub3QtZXhwYW5kYWJsZS1vZmZzZXQgKyA2fXB4O1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIC8vIEFwcGxpZXMgdG8gTW9kdWxlIE5hdiBhY2NvcmRpb25zIHRoYXQgaGF2ZSBpY29ucyBwcmVzZW50XG4gICAgICAgICAgLy8gaW4gdGhlaXIgdG9wLWxldmVsIGhlYWRlcnMvaXRlbXNcbiAgICAgICAgICAmLnBhcmVudC1oYXMtaWNvbiB7XG4gICAgICAgICAgICBwYWRkaW5nLWlubGluZS1zdGFydDogI3skdG9wLWxldmVsLWljb24tb2Zmc2V0ICsgJHN1Yi1sZXZlbC1pY29uLW9mZnNldCAqICgkaSAtIDEpfXB4O1xuXG4gICAgICAgICAgICAmOm5vdCguaXMtZXhwYW5kYWJsZSkge1xuICAgICAgICAgICAgICAkc3VibGV2ZWwtb2Zmc2V0OiAwO1xuXG4gICAgICAgICAgICAgIEBpZiAkaSA9PSAyIHtcbiAgICAgICAgICAgICAgICAkc3VibGV2ZWwtb2Zmc2V0OiA2O1xuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6ICN7JHRvcC1sZXZlbC1pY29uLW9mZnNldCArICRub3QtZXhwYW5kYWJsZS1vZmZzZXQgLSAkc3VibGV2ZWwtb2Zmc2V0fXB4O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLmlzLWV4cGFuZGFibGUge1xuICAgICAgICAgICAgICBwYWRkaW5nLWlubGluZS1zdGFydDogI3skdG9wLWxldmVsLWljb24tb2Zmc2V0ICsgJGV4cGFuZGFibGUtc3RhcnQtb2Zmc2V0fXB4O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLnNpYmxpbmdzLWNhbi1leHBhbmQge1xuICAgICAgICAgICAgICAmOm5vdCguaXMtZXhwYW5kYWJsZSkge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctaW5saW5lLXN0YXJ0OiAjeyR0b3AtbGV2ZWwtaWNvbi1vZmZzZXQgKyAkbm90LWV4cGFuZGFibGUtb2Zmc2V0ICsgJHN1Yi1sZXZlbC1pY29uLW9mZnNldCAtIDZ9cHg7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIEJyZWFrcG9pbnRzIC0gdGhpcyBjYW50IGJlIHRva2Vuc1xuJGJyZWFrcG9pbnQteHhsOiAxNDQwcHg7XG4kYnJlYWtwb2ludC14bDogMTI4MHB4O1xuJGJyZWFrcG9pbnQtbGc6IDEwMjRweDtcbiRicmVha3BvaW50LW1kOiA4NDBweDtcbiRicmVha3BvaW50LXNtOiA2MDBweDtcbiRicmVha3BvaW50LXhzOiAzMjBweDtcblxuLy8gU2V0cyBUZXh0IEFudGlhbGlhc2luZ1xuQG1peGluIGFudGlhbGlhc2VkIHtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG59XG5cbi8vIHZlbmRvciBwcmVmaXhlZCB0cmFuc2l0aW9ucyBmb3IgcmVndWxhciBhdHRyaWJ1dGVzIChub24tdmVuZG9yIHByZWZpeGVkKVxuQG1peGluIHRyYW5zaXRpb24oJHRyYW5zaXRpb25zLWxpc3QuLi4pIHtcbiAgQGVhY2ggJHByZWZpeCBpbiAkcHJlZml4ZXMge1xuICAgICN7JHByZWZpeH10cmFuc2l0aW9uOiAkdHJhbnNpdGlvbnMtbGlzdDtcbiAgfVxufVxuXG4vLyBtYWtlIHRoZSB0ZXh0IGludmlzaWJsZSB2aXN1YWxseSBidXQgcmVhZGFibGUgYnkgc2NyZWVuIHJlYWRlcnNcbkBtaXhpbiBhdWRpYmxlKCkge1xuICBjbGlwOiByZWN0KDAsIDAsIDAsIDApO1xuICBoZWlnaHQ6IDA7XG4gIGxpbmUtaGVpZ2h0OiAwO1xuICBtaW4taGVpZ2h0OiAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwYWRkaW5nOiAwO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAxcHg7XG59XG4iXX0= */