@flogeez/angular-tiptap-editor 3.4.7 → 3.5.1

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 (45) hide show
  1. package/CHANGELOG.md +21 -0
  2. package/README.md +36 -1
  3. package/THIRD_PARTY_LICENSES +220 -0
  4. package/esm2022/lib/ate-editor.provider.mjs +32 -1
  5. package/esm2022/lib/components/bubble-menus/color/ate-color-bubble-menu.component.mjs +7 -7
  6. package/esm2022/lib/components/bubble-menus/image/ate-image-bubble-menu.component.mjs +21 -21
  7. package/esm2022/lib/components/bubble-menus/link/ate-link-bubble-menu.component.mjs +12 -11
  8. package/esm2022/lib/components/bubble-menus/table/ate-cell-bubble-menu.component.mjs +5 -5
  9. package/esm2022/lib/components/bubble-menus/table/ate-table-bubble-menu.component.mjs +19 -19
  10. package/esm2022/lib/components/bubble-menus/text/ate-bubble-menu.component.mjs +9 -9
  11. package/esm2022/lib/components/color-picker/ate-color-picker.component.mjs +8 -7
  12. package/esm2022/lib/components/edit-toggle/ate-edit-toggle.component.mjs +3 -3
  13. package/esm2022/lib/components/editor/angular-tiptap-editor.component.mjs +6 -3
  14. package/esm2022/lib/components/editor/ate-block-controls.component.mjs +9 -8
  15. package/esm2022/lib/components/slash-commands/ate-slash-commands.component.mjs +7 -6
  16. package/esm2022/lib/components/toolbar/ate-toolbar.component.mjs +37 -37
  17. package/esm2022/lib/components/ui/ate-button.component.mjs +11 -14
  18. package/esm2022/lib/components/ui/ate-icon.component.mjs +31 -0
  19. package/esm2022/lib/config/ate-slash-commands.config.mjs +11 -11
  20. package/esm2022/lib/extensions/ate-upload-progress.extension.mjs +12 -4
  21. package/esm2022/lib/icons/ate-default-icons.mjs +117 -0
  22. package/esm2022/lib/icons/ate-stroke-icons.mjs +61 -0
  23. package/esm2022/lib/models/ate-bubble-menu.model.mjs +1 -1
  24. package/esm2022/lib/models/ate-slash-command.model.mjs +1 -1
  25. package/esm2022/lib/models/ate-toolbar.model.mjs +1 -1
  26. package/esm2022/lib/services/ate-icon-registry.service.mjs +63 -0
  27. package/esm2022/public-api.mjs +6 -1
  28. package/fesm2022/flogeez-angular-tiptap-editor.mjs +454 -152
  29. package/fesm2022/flogeez-angular-tiptap-editor.mjs.map +1 -1
  30. package/lib/ate-editor.provider.d.ts +29 -0
  31. package/lib/components/bubble-menus/image/ate-image-bubble-menu.component.d.ts +2 -2
  32. package/lib/components/bubble-menus/text/ate-bubble-menu.component.d.ts +1 -1
  33. package/lib/components/color-picker/ate-color-picker.component.d.ts +1 -1
  34. package/lib/components/editor/angular-tiptap-editor.component.d.ts +4 -3
  35. package/lib/components/ui/ate-button.component.d.ts +3 -2
  36. package/lib/components/ui/ate-icon.component.d.ts +17 -0
  37. package/lib/extensions/ate-upload-progress.extension.d.ts +2 -0
  38. package/lib/icons/ate-default-icons.d.ts +65 -0
  39. package/lib/icons/ate-stroke-icons.d.ts +2 -0
  40. package/lib/models/ate-bubble-menu.model.d.ts +2 -1
  41. package/lib/models/ate-slash-command.model.d.ts +2 -1
  42. package/lib/models/ate-toolbar.model.d.ts +2 -1
  43. package/lib/services/ate-icon-registry.service.d.ts +52 -0
  44. package/package.json +6 -1
  45. package/public-api.d.ts +4 -0
@@ -28,7 +28,7 @@ export class AteToolbarComponent {
28
28
  <div class="ate-toolbar" [class.floating]="floating()">
29
29
  @if (config().bold) {
30
30
  <ate-button
31
- icon="format_bold"
31
+ icon="bold"
32
32
  [title]="t().bold"
33
33
  [active]="state().marks.bold"
34
34
  [disabled]="!state().can.toggleBold"
@@ -36,7 +36,7 @@ export class AteToolbarComponent {
36
36
  }
37
37
  @if (config().italic) {
38
38
  <ate-button
39
- icon="format_italic"
39
+ icon="italic"
40
40
  [title]="t().italic"
41
41
  [active]="state().marks.italic"
42
42
  [disabled]="!state().can.toggleItalic"
@@ -44,7 +44,7 @@ export class AteToolbarComponent {
44
44
  }
45
45
  @if (config().underline) {
46
46
  <ate-button
47
- icon="format_underlined"
47
+ icon="underline"
48
48
  [title]="t().underline"
49
49
  [active]="state().marks.underline"
50
50
  [disabled]="!state().can.toggleUnderline"
@@ -52,7 +52,7 @@ export class AteToolbarComponent {
52
52
  }
53
53
  @if (config().strike) {
54
54
  <ate-button
55
- icon="strikethrough_s"
55
+ icon="strike"
56
56
  [title]="t().strike"
57
57
  [active]="state().marks.strike"
58
58
  [disabled]="!state().can.toggleStrike"
@@ -68,7 +68,7 @@ export class AteToolbarComponent {
68
68
  }
69
69
  @if (config().codeBlock) {
70
70
  <ate-button
71
- icon="terminal"
71
+ icon="codeBlock"
72
72
  [title]="t().codeBlock"
73
73
  [active]="state().nodes.isCodeBlock"
74
74
  [disabled]="!state().can.toggleCodeBlock"
@@ -113,7 +113,7 @@ export class AteToolbarComponent {
113
113
  }
114
114
  @if (config().heading1) {
115
115
  <ate-button
116
- icon="format_h1"
116
+ icon="heading1"
117
117
  [title]="t().heading1"
118
118
  [active]="state().nodes.h1"
119
119
  [disabled]="!state().can.toggleHeading1"
@@ -121,7 +121,7 @@ export class AteToolbarComponent {
121
121
  }
122
122
  @if (config().heading2) {
123
123
  <ate-button
124
- icon="format_h2"
124
+ icon="heading2"
125
125
  [title]="t().heading2"
126
126
  [active]="state().nodes.h2"
127
127
  [disabled]="!state().can.toggleHeading2"
@@ -129,7 +129,7 @@ export class AteToolbarComponent {
129
129
  }
130
130
  @if (config().heading3) {
131
131
  <ate-button
132
- icon="format_h3"
132
+ icon="heading3"
133
133
  [title]="t().heading3"
134
134
  [active]="state().nodes.h3"
135
135
  [disabled]="!state().can.toggleHeading3"
@@ -142,7 +142,7 @@ export class AteToolbarComponent {
142
142
  }
143
143
  @if (config().bulletList) {
144
144
  <ate-button
145
- icon="format_list_bulleted"
145
+ icon="bulletList"
146
146
  [title]="t().bulletList"
147
147
  [active]="state().nodes.isBulletList"
148
148
  [disabled]="!state().can.toggleBulletList"
@@ -150,7 +150,7 @@ export class AteToolbarComponent {
150
150
  }
151
151
  @if (config().orderedList) {
152
152
  <ate-button
153
- icon="format_list_numbered"
153
+ icon="orderedList"
154
154
  [title]="t().orderedList"
155
155
  [active]="state().nodes.isOrderedList"
156
156
  [disabled]="!state().can.toggleOrderedList"
@@ -158,7 +158,7 @@ export class AteToolbarComponent {
158
158
  }
159
159
  @if (config().blockquote) {
160
160
  <ate-button
161
- icon="format_quote"
161
+ icon="blockquote"
162
162
  [title]="t().blockquote"
163
163
  [active]="state().nodes.isBlockquote"
164
164
  [disabled]="!state().can.toggleBlockquote"
@@ -172,7 +172,7 @@ export class AteToolbarComponent {
172
172
  }
173
173
  @if (config().alignLeft) {
174
174
  <ate-button
175
- icon="format_align_left"
175
+ icon="alignLeft"
176
176
  [title]="t().alignLeft"
177
177
  [active]="state().nodes.alignLeft"
178
178
  [disabled]="!state().can.setTextAlignLeft"
@@ -180,7 +180,7 @@ export class AteToolbarComponent {
180
180
  }
181
181
  @if (config().alignCenter) {
182
182
  <ate-button
183
- icon="format_align_center"
183
+ icon="alignCenter"
184
184
  [title]="t().alignCenter"
185
185
  [active]="state().nodes.alignCenter"
186
186
  [disabled]="!state().can.setTextAlignCenter"
@@ -188,7 +188,7 @@ export class AteToolbarComponent {
188
188
  }
189
189
  @if (config().alignRight) {
190
190
  <ate-button
191
- icon="format_align_right"
191
+ icon="alignRight"
192
192
  [title]="t().alignRight"
193
193
  [active]="state().nodes.alignRight"
194
194
  [disabled]="!state().can.setTextAlignRight"
@@ -196,7 +196,7 @@ export class AteToolbarComponent {
196
196
  }
197
197
  @if (config().alignJustify) {
198
198
  <ate-button
199
- icon="format_align_justify"
199
+ icon="alignJustify"
200
200
  [title]="t().alignJustify"
201
201
  [active]="state().nodes.alignJustify"
202
202
  [disabled]="!state().can.setTextAlignJustify"
@@ -215,14 +215,14 @@ export class AteToolbarComponent {
215
215
  }
216
216
  @if (config().horizontalRule) {
217
217
  <ate-button
218
- icon="horizontal_rule"
218
+ icon="horizontalRule"
219
219
  [title]="t().horizontalRule"
220
220
  [disabled]="!state().can.insertHorizontalRule"
221
221
  (buttonClick)="onCommand('insertHorizontalRule')" />
222
222
  }
223
223
  @if (config().table) {
224
224
  <ate-button
225
- icon="table_view"
225
+ icon="table"
226
226
  [title]="t().table"
227
227
  [disabled]="!state().can.insertTable"
228
228
  (buttonClick)="onCommand('insertTable')" />
@@ -259,7 +259,7 @@ export class AteToolbarComponent {
259
259
  }
260
260
  @if (config().clear) {
261
261
  <ate-button
262
- icon="delete"
262
+ icon="clearContent"
263
263
  [title]="t().clear"
264
264
  [disabled]="!state().isEditable"
265
265
  (buttonClick)="onCommand('clearContent')" />
@@ -281,7 +281,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
281
281
  <div class="ate-toolbar" [class.floating]="floating()">
282
282
  @if (config().bold) {
283
283
  <ate-button
284
- icon="format_bold"
284
+ icon="bold"
285
285
  [title]="t().bold"
286
286
  [active]="state().marks.bold"
287
287
  [disabled]="!state().can.toggleBold"
@@ -289,7 +289,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
289
289
  }
290
290
  @if (config().italic) {
291
291
  <ate-button
292
- icon="format_italic"
292
+ icon="italic"
293
293
  [title]="t().italic"
294
294
  [active]="state().marks.italic"
295
295
  [disabled]="!state().can.toggleItalic"
@@ -297,7 +297,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
297
297
  }
298
298
  @if (config().underline) {
299
299
  <ate-button
300
- icon="format_underlined"
300
+ icon="underline"
301
301
  [title]="t().underline"
302
302
  [active]="state().marks.underline"
303
303
  [disabled]="!state().can.toggleUnderline"
@@ -305,7 +305,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
305
305
  }
306
306
  @if (config().strike) {
307
307
  <ate-button
308
- icon="strikethrough_s"
308
+ icon="strike"
309
309
  [title]="t().strike"
310
310
  [active]="state().marks.strike"
311
311
  [disabled]="!state().can.toggleStrike"
@@ -321,7 +321,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
321
321
  }
322
322
  @if (config().codeBlock) {
323
323
  <ate-button
324
- icon="terminal"
324
+ icon="codeBlock"
325
325
  [title]="t().codeBlock"
326
326
  [active]="state().nodes.isCodeBlock"
327
327
  [disabled]="!state().can.toggleCodeBlock"
@@ -366,7 +366,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
366
366
  }
367
367
  @if (config().heading1) {
368
368
  <ate-button
369
- icon="format_h1"
369
+ icon="heading1"
370
370
  [title]="t().heading1"
371
371
  [active]="state().nodes.h1"
372
372
  [disabled]="!state().can.toggleHeading1"
@@ -374,7 +374,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
374
374
  }
375
375
  @if (config().heading2) {
376
376
  <ate-button
377
- icon="format_h2"
377
+ icon="heading2"
378
378
  [title]="t().heading2"
379
379
  [active]="state().nodes.h2"
380
380
  [disabled]="!state().can.toggleHeading2"
@@ -382,7 +382,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
382
382
  }
383
383
  @if (config().heading3) {
384
384
  <ate-button
385
- icon="format_h3"
385
+ icon="heading3"
386
386
  [title]="t().heading3"
387
387
  [active]="state().nodes.h3"
388
388
  [disabled]="!state().can.toggleHeading3"
@@ -395,7 +395,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
395
395
  }
396
396
  @if (config().bulletList) {
397
397
  <ate-button
398
- icon="format_list_bulleted"
398
+ icon="bulletList"
399
399
  [title]="t().bulletList"
400
400
  [active]="state().nodes.isBulletList"
401
401
  [disabled]="!state().can.toggleBulletList"
@@ -403,7 +403,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
403
403
  }
404
404
  @if (config().orderedList) {
405
405
  <ate-button
406
- icon="format_list_numbered"
406
+ icon="orderedList"
407
407
  [title]="t().orderedList"
408
408
  [active]="state().nodes.isOrderedList"
409
409
  [disabled]="!state().can.toggleOrderedList"
@@ -411,7 +411,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
411
411
  }
412
412
  @if (config().blockquote) {
413
413
  <ate-button
414
- icon="format_quote"
414
+ icon="blockquote"
415
415
  [title]="t().blockquote"
416
416
  [active]="state().nodes.isBlockquote"
417
417
  [disabled]="!state().can.toggleBlockquote"
@@ -425,7 +425,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
425
425
  }
426
426
  @if (config().alignLeft) {
427
427
  <ate-button
428
- icon="format_align_left"
428
+ icon="alignLeft"
429
429
  [title]="t().alignLeft"
430
430
  [active]="state().nodes.alignLeft"
431
431
  [disabled]="!state().can.setTextAlignLeft"
@@ -433,7 +433,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
433
433
  }
434
434
  @if (config().alignCenter) {
435
435
  <ate-button
436
- icon="format_align_center"
436
+ icon="alignCenter"
437
437
  [title]="t().alignCenter"
438
438
  [active]="state().nodes.alignCenter"
439
439
  [disabled]="!state().can.setTextAlignCenter"
@@ -441,7 +441,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
441
441
  }
442
442
  @if (config().alignRight) {
443
443
  <ate-button
444
- icon="format_align_right"
444
+ icon="alignRight"
445
445
  [title]="t().alignRight"
446
446
  [active]="state().nodes.alignRight"
447
447
  [disabled]="!state().can.setTextAlignRight"
@@ -449,7 +449,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
449
449
  }
450
450
  @if (config().alignJustify) {
451
451
  <ate-button
452
- icon="format_align_justify"
452
+ icon="alignJustify"
453
453
  [title]="t().alignJustify"
454
454
  [active]="state().nodes.alignJustify"
455
455
  [disabled]="!state().can.setTextAlignJustify"
@@ -468,14 +468,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
468
468
  }
469
469
  @if (config().horizontalRule) {
470
470
  <ate-button
471
- icon="horizontal_rule"
471
+ icon="horizontalRule"
472
472
  [title]="t().horizontalRule"
473
473
  [disabled]="!state().can.insertHorizontalRule"
474
474
  (buttonClick)="onCommand('insertHorizontalRule')" />
475
475
  }
476
476
  @if (config().table) {
477
477
  <ate-button
478
- icon="table_view"
478
+ icon="table"
479
479
  [title]="t().table"
480
480
  [disabled]="!state().can.insertTable"
481
481
  (buttonClick)="onCommand('insertTable')" />
@@ -512,7 +512,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
512
512
  }
513
513
  @if (config().clear) {
514
514
  <ate-button
515
- icon="delete"
515
+ icon="clearContent"
516
516
  [title]="t().clear"
517
517
  [disabled]="!state().isEditable"
518
518
  (buttonClick)="onCommand('clearContent')" />
@@ -528,4 +528,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
528
528
  </div>
529
529
  `, styles: [":host{display:block;transition:opacity .3s ease}:host-context(.floating-toolbar){position:sticky;top:3rem;left:0;right:0;z-index:100;display:flex;height:0;overflow:visible;pointer-events:none;opacity:0}:host-context(.floating-toolbar:focus-within),:host-context(.floating-toolbar:hover){opacity:1}.ate-toolbar{display:flex;align-items:center;gap:var(--ate-toolbar-gap);padding:var(--ate-toolbar-padding);background:var(--ate-toolbar-background);border-bottom:1px solid var(--ate-toolbar-border-color);flex-wrap:wrap;min-height:32px;position:relative;z-index:50;border-top-left-radius:calc(var(--ate-menu-border-radius, 12px) - var(--ate-border-width, 2px));border-top-right-radius:calc(var(--ate-menu-border-radius, 12px) - var(--ate-border-width, 2px))}.ate-toolbar.floating{pointer-events:auto;border-radius:var(--ate-menu-border-radius, 12px);border:1px solid var(--ate-menu-border)!important;box-shadow:var(--ate-menu-shadow)!important;background:var(--ate-menu-bg)!important;padding:var(--ate-menu-padding)!important;flex-wrap:nowrap;overflow-x:auto;max-width:95vw;scrollbar-width:none;transform:translateY(0);transition:transform .3s cubic-bezier(.4,0,.2,1)}.ate-toolbar.floating::-webkit-scrollbar{display:none}:host-context(.floating-toolbar:focus-within) .ate-toolbar.floating,:host-context(.floating-toolbar:hover) .ate-toolbar.floating{transform:translateY(-2rem)}@keyframes toolbarSlideIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.ate-toolbar{animation:toolbarSlideIn .3s cubic-bezier(.4,0,.2,1)}\n"] }]
530
530
  }] });
531
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXRlLXRvb2xiYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci10aXB0YXAtZWRpdG9yL3NyYy9saWIvY29tcG9uZW50cy90b29sYmFyL2F0ZS10b29sYmFyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbEYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDdEUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDdEYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDRDQUE0QyxDQUFDOztBQTBWckYsTUFBTSxPQUFPLG1CQUFtQjtJQXRWaEM7UUF1VkUsV0FBTSxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQVUsQ0FBQztRQUNsQyxXQUFNLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBb0IsQ0FBQztRQUM1QyxnQkFBVyxHQUFHLEtBQUssQ0FBMEIsRUFBRSxDQUFDLENBQUM7UUFDakQsYUFBUSxHQUFHLEtBQUssQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUV6QixnQkFBVyxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUNyQyxtQkFBYyxHQUFHLE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO1FBRWpELE1BQUMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQztRQUM3QixVQUFLLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUM7S0FTbEQ7SUFQQyxTQUFTLENBQUMsT0FBZSxFQUFFLEdBQUcsSUFBZTtRQUMzQyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDN0IsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ1osT0FBTztRQUNULENBQUM7UUFDRCxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUM7SUFDeEQsQ0FBQzsrR0FsQlUsbUJBQW1CO21HQUFuQixtQkFBbUIsa2xCQWpWcEI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXlQVCxzbERBMVBTLGtCQUFrQiw2TEFBRSxxQkFBcUIsMERBQUUsdUJBQXVCOzs0RkFrVmpFLG1CQUFtQjtrQkF0Vi9CLFNBQVM7K0JBQ0UsYUFBYSxjQUNYLElBQUksbUJBQ0MsdUJBQXVCLENBQUMsTUFBTSxXQUN0QyxDQUFDLGtCQUFrQixFQUFFLHFCQUFxQixFQUFFLHVCQUF1QixDQUFDLFlBQ25FOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F5UFQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGlucHV0LCBpbmplY3QsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEVkaXRvciB9IGZyb20gXCJAdGlwdGFwL2NvcmVcIjtcbmltcG9ydCB7IEF0ZUJ1dHRvbkNvbXBvbmVudCB9IGZyb20gXCIuLi91aS9hdGUtYnV0dG9uLmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgQXRlU2VwYXJhdG9yQ29tcG9uZW50IH0gZnJvbSBcIi4uL3VpL2F0ZS1zZXBhcmF0b3IuY29tcG9uZW50XCI7XG5pbXBvcnQgeyBBdGVFZGl0b3JDb21tYW5kc1NlcnZpY2UgfSBmcm9tIFwiLi4vLi4vc2VydmljZXMvYXRlLWVkaXRvci1jb21tYW5kcy5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBBdGVJMThuU2VydmljZSB9IGZyb20gXCIuLi8uLi9zZXJ2aWNlcy9hdGUtaTE4bi5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBBdGVDb2xvclBpY2tlckNvbXBvbmVudCB9IGZyb20gXCIuLi9jb2xvci1waWNrZXIvYXRlLWNvbG9yLXBpY2tlci5jb21wb25lbnRcIjtcblxuaW1wb3J0IHsgQXRlVG9vbGJhckNvbmZpZyB9IGZyb20gXCIuLi8uLi9tb2RlbHMvYXRlLXRvb2xiYXIubW9kZWxcIjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiBcImF0ZS10b29sYmFyXCIsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBpbXBvcnRzOiBbQXRlQnV0dG9uQ29tcG9uZW50LCBBdGVTZXBhcmF0b3JDb21wb25lbnQsIEF0ZUNvbG9yUGlja2VyQ29tcG9uZW50XSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2IGNsYXNzPVwiYXRlLXRvb2xiYXJcIiBbY2xhc3MuZmxvYXRpbmddPVwiZmxvYXRpbmcoKVwiPlxuICAgICAgQGlmIChjb25maWcoKS5ib2xkKSB7XG4gICAgICAgIDxhdGUtYnV0dG9uXG4gICAgICAgICAgaWNvbj1cImZvcm1hdF9ib2xkXCJcbiAgICAgICAgICBbdGl0bGVdPVwidCgpLmJvbGRcIlxuICAgICAgICAgIFthY3RpdmVdPVwic3RhdGUoKS5tYXJrcy5ib2xkXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiIXN0YXRlKCkuY2FuLnRvZ2dsZUJvbGRcIlxuICAgICAgICAgIChidXR0b25DbGljayk9XCJvbkNvbW1hbmQoJ3RvZ2dsZUJvbGQnKVwiIC8+XG4gICAgICB9XG4gICAgICBAaWYgKGNvbmZpZygpLml0YWxpYykge1xuICAgICAgICA8YXRlLWJ1dHRvblxuICAgICAgICAgIGljb249XCJmb3JtYXRfaXRhbGljXCJcbiAgICAgICAgICBbdGl0bGVdPVwidCgpLml0YWxpY1wiXG4gICAgICAgICAgW2FjdGl2ZV09XCJzdGF0ZSgpLm1hcmtzLml0YWxpY1wiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cIiFzdGF0ZSgpLmNhbi50b2dnbGVJdGFsaWNcIlxuICAgICAgICAgIChidXR0b25DbGljayk9XCJvbkNvbW1hbmQoJ3RvZ2dsZUl0YWxpYycpXCIgLz5cbiAgICAgIH1cbiAgICAgIEBpZiAoY29uZmlnKCkudW5kZXJsaW5lKSB7XG4gICAgICAgIDxhdGUtYnV0dG9uXG4gICAgICAgICAgaWNvbj1cImZvcm1hdF91bmRlcmxpbmVkXCJcbiAgICAgICAgICBbdGl0bGVdPVwidCgpLnVuZGVybGluZVwiXG4gICAgICAgICAgW2FjdGl2ZV09XCJzdGF0ZSgpLm1hcmtzLnVuZGVybGluZVwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cIiFzdGF0ZSgpLmNhbi50b2dnbGVVbmRlcmxpbmVcIlxuICAgICAgICAgIChidXR0b25DbGljayk9XCJvbkNvbW1hbmQoJ3RvZ2dsZVVuZGVybGluZScpXCIgLz5cbiAgICAgIH1cbiAgICAgIEBpZiAoY29uZmlnKCkuc3RyaWtlKSB7XG4gICAgICAgIDxhdGUtYnV0dG9uXG4gICAgICAgICAgaWNvbj1cInN0cmlrZXRocm91Z2hfc1wiXG4gICAgICAgICAgW3RpdGxlXT1cInQoKS5zdHJpa2VcIlxuICAgICAgICAgIFthY3RpdmVdPVwic3RhdGUoKS5tYXJrcy5zdHJpa2VcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCIhc3RhdGUoKS5jYW4udG9nZ2xlU3RyaWtlXCJcbiAgICAgICAgICAoYnV0dG9uQ2xpY2spPVwib25Db21tYW5kKCd0b2dnbGVTdHJpa2UnKVwiIC8+XG4gICAgICB9XG4gICAgICBAaWYgKGNvbmZpZygpLmNvZGUpIHtcbiAgICAgICAgPGF0ZS1idXR0b25cbiAgICAgICAgICBpY29uPVwiY29kZVwiXG4gICAgICAgICAgW3RpdGxlXT1cInQoKS5jb2RlXCJcbiAgICAgICAgICBbYWN0aXZlXT1cInN0YXRlKCkubWFya3MuY29kZVwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cIiFzdGF0ZSgpLmNhbi50b2dnbGVDb2RlXCJcbiAgICAgICAgICAoYnV0dG9uQ2xpY2spPVwib25Db21tYW5kKCd0b2dnbGVDb2RlJylcIiAvPlxuICAgICAgfVxuICAgICAgQGlmIChjb25maWcoKS5jb2RlQmxvY2spIHtcbiAgICAgICAgPGF0ZS1idXR0b25cbiAgICAgICAgICBpY29uPVwidGVybWluYWxcIlxuICAgICAgICAgIFt0aXRsZV09XCJ0KCkuY29kZUJsb2NrXCJcbiAgICAgICAgICBbYWN0aXZlXT1cInN0YXRlKCkubm9kZXMuaXNDb2RlQmxvY2tcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCIhc3RhdGUoKS5jYW4udG9nZ2xlQ29kZUJsb2NrXCJcbiAgICAgICAgICAoYnV0dG9uQ2xpY2spPVwib25Db21tYW5kKCd0b2dnbGVDb2RlQmxvY2snKVwiIC8+XG4gICAgICB9XG4gICAgICBAaWYgKGNvbmZpZygpLnN1cGVyc2NyaXB0KSB7XG4gICAgICAgIDxhdGUtYnV0dG9uXG4gICAgICAgICAgaWNvbj1cInN1cGVyc2NyaXB0XCJcbiAgICAgICAgICBbdGl0bGVdPVwidCgpLnN1cGVyc2NyaXB0XCJcbiAgICAgICAgICBbYWN0aXZlXT1cInN0YXRlKCkubWFya3Muc3VwZXJzY3JpcHRcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCIhc3RhdGUoKS5jYW4udG9nZ2xlU3VwZXJzY3JpcHRcIlxuICAgICAgICAgIChidXR0b25DbGljayk9XCJvbkNvbW1hbmQoJ3RvZ2dsZVN1cGVyc2NyaXB0JylcIiAvPlxuICAgICAgfVxuICAgICAgQGlmIChjb25maWcoKS5zdWJzY3JpcHQpIHtcbiAgICAgICAgPGF0ZS1idXR0b25cbiAgICAgICAgICBpY29uPVwic3Vic2NyaXB0XCJcbiAgICAgICAgICBbdGl0bGVdPVwidCgpLnN1YnNjcmlwdFwiXG4gICAgICAgICAgW2FjdGl2ZV09XCJzdGF0ZSgpLm1hcmtzLnN1YnNjcmlwdFwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cIiFzdGF0ZSgpLmNhbi50b2dnbGVTdWJzY3JpcHRcIlxuICAgICAgICAgIChidXR0b25DbGljayk9XCJvbkNvbW1hbmQoJ3RvZ2dsZVN1YnNjcmlwdCcpXCIgLz5cbiAgICAgIH1cbiAgICAgIEBpZiAoY29uZmlnKCkuaGlnaGxpZ2h0KSB7XG4gICAgICAgIDxhdGUtYnV0dG9uXG4gICAgICAgICAgaWNvbj1cImhpZ2hsaWdodFwiXG4gICAgICAgICAgW3RpdGxlXT1cInQoKS5oaWdobGlnaHRcIlxuICAgICAgICAgIFthY3RpdmVdPVwic3RhdGUoKS5tYXJrcy5oaWdobGlnaHRcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCIhc3RhdGUoKS5jYW4udG9nZ2xlSGlnaGxpZ2h0XCJcbiAgICAgICAgICAoYnV0dG9uQ2xpY2spPVwib25Db21tYW5kKCd0b2dnbGVIaWdobGlnaHQnKVwiIC8+XG4gICAgICB9XG4gICAgICBAaWYgKGNvbmZpZygpLmhpZ2hsaWdodFBpY2tlcikge1xuICAgICAgICA8YXRlLWNvbG9yLXBpY2tlclxuICAgICAgICAgIG1vZGU9XCJoaWdobGlnaHRcIlxuICAgICAgICAgIFtlZGl0b3JdPVwiZWRpdG9yKClcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCIhc3RhdGUoKS5jYW4uc2V0SGlnaGxpZ2h0XCIgLz5cbiAgICAgIH1cbiAgICAgIEBpZiAoY29uZmlnKCkudGV4dENvbG9yKSB7XG4gICAgICAgIDxhdGUtY29sb3ItcGlja2VyIG1vZGU9XCJ0ZXh0XCIgW2VkaXRvcl09XCJlZGl0b3IoKVwiIFtkaXNhYmxlZF09XCIhc3RhdGUoKS5jYW4uc2V0Q29sb3JcIiAvPlxuICAgICAgfVxuXG4gICAgICBAaWYgKGNvbmZpZygpLnNlcGFyYXRvciAmJiAoY29uZmlnKCkuaGVhZGluZzEgfHwgY29uZmlnKCkuaGVhZGluZzIgfHwgY29uZmlnKCkuaGVhZGluZzMpKSB7XG4gICAgICAgIDxhdGUtc2VwYXJhdG9yIC8+XG4gICAgICB9XG4gICAgICBAaWYgKGNvbmZpZygpLmhlYWRpbmcxKSB7XG4gICAgICAgIDxhdGUtYnV0dG9uXG4gICAgICAgICAgaWNvbj1cImZvcm1hdF9oMVwiXG4gICAgICAgICAgW3RpdGxlXT1cInQoKS5oZWFkaW5nMVwiXG4gICAgICAgICAgW2FjdGl2ZV09XCJzdGF0ZSgpLm5vZGVzLmgxXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiIXN0YXRlKCkuY2FuLnRvZ2dsZUhlYWRpbmcxXCJcbiAgICAgICAgICAoYnV0dG9uQ2xpY2spPVwib25Db21tYW5kKCd0b2dnbGVIZWFkaW5nJywgMSlcIiAvPlxuICAgICAgfVxuICAgICAgQGlmIChjb25maWcoKS5oZWFkaW5nMikge1xuICAgICAgICA8YXRlLWJ1dHRvblxuICAgICAgICAgIGljb249XCJmb3JtYXRfaDJcIlxuICAgICAgICAgIFt0aXRsZV09XCJ0KCkuaGVhZGluZzJcIlxuICAgICAgICAgIFthY3RpdmVdPVwic3RhdGUoKS5ub2Rlcy5oMlwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cIiFzdGF0ZSgpLmNhbi50b2dnbGVIZWFkaW5nMlwiXG4gICAgICAgICAgKGJ1dHRvbkNsaWNrKT1cIm9uQ29tbWFuZCgndG9nZ2xlSGVhZGluZycsIDIpXCIgLz5cbiAgICAgIH1cbiAgICAgIEBpZiAoY29uZmlnKCkuaGVhZGluZzMpIHtcbiAgICAgICAgPGF0ZS1idXR0b25cbiAgICAgICAgICBpY29uPVwiZm9ybWF0X2gzXCJcbiAgICAgICAgICBbdGl0bGVdPVwidCgpLmhlYWRpbmczXCJcbiAgICAgICAgICBbYWN0aXZlXT1cInN0YXRlKCkubm9kZXMuaDNcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCIhc3RhdGUoKS5jYW4udG9nZ2xlSGVhZGluZzNcIlxuICAgICAgICAgIChidXR0b25DbGljayk9XCJvbkNvbW1hbmQoJ3RvZ2dsZUhlYWRpbmcnLCAzKVwiIC8+XG4gICAgICB9XG4gICAgICBAaWYgKFxuICAgICAgICBjb25maWcoKS5zZXBhcmF0b3IgJiYgKGNvbmZpZygpLmJ1bGxldExpc3QgfHwgY29uZmlnKCkub3JkZXJlZExpc3QgfHwgY29uZmlnKCkuYmxvY2txdW90ZSlcbiAgICAgICkge1xuICAgICAgICA8YXRlLXNlcGFyYXRvciAvPlxuICAgICAgfVxuICAgICAgQGlmIChjb25maWcoKS5idWxsZXRMaXN0KSB7XG4gICAgICAgIDxhdGUtYnV0dG9uXG4gICAgICAgICAgaWNvbj1cImZvcm1hdF9saXN0X2J1bGxldGVkXCJcbiAgICAgICAgICBbdGl0bGVdPVwidCgpLmJ1bGxldExpc3RcIlxuICAgICAgICAgIFthY3RpdmVdPVwic3RhdGUoKS5ub2Rlcy5pc0J1bGxldExpc3RcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCIhc3RhdGUoKS5jYW4udG9nZ2xlQnVsbGV0TGlzdFwiXG4gICAgICAgICAgKGJ1dHRvbkNsaWNrKT1cIm9uQ29tbWFuZCgndG9nZ2xlQnVsbGV0TGlzdCcpXCIgLz5cbiAgICAgIH1cbiAgICAgIEBpZiAoY29uZmlnKCkub3JkZXJlZExpc3QpIHtcbiAgICAgICAgPGF0ZS1idXR0b25cbiAgICAgICAgICBpY29uPVwiZm9ybWF0X2xpc3RfbnVtYmVyZWRcIlxuICAgICAgICAgIFt0aXRsZV09XCJ0KCkub3JkZXJlZExpc3RcIlxuICAgICAgICAgIFthY3RpdmVdPVwic3RhdGUoKS5ub2Rlcy5pc09yZGVyZWRMaXN0XCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiIXN0YXRlKCkuY2FuLnRvZ2dsZU9yZGVyZWRMaXN0XCJcbiAgICAgICAgICAoYnV0dG9uQ2xpY2spPVwib25Db21tYW5kKCd0b2dnbGVPcmRlcmVkTGlzdCcpXCIgLz5cbiAgICAgIH1cbiAgICAgIEBpZiAoY29uZmlnKCkuYmxvY2txdW90ZSkge1xuICAgICAgICA8YXRlLWJ1dHRvblxuICAgICAgICAgIGljb249XCJmb3JtYXRfcXVvdGVcIlxuICAgICAgICAgIFt0aXRsZV09XCJ0KCkuYmxvY2txdW90ZVwiXG4gICAgICAgICAgW2FjdGl2ZV09XCJzdGF0ZSgpLm5vZGVzLmlzQmxvY2txdW90ZVwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cIiFzdGF0ZSgpLmNhbi50b2dnbGVCbG9ja3F1b3RlXCJcbiAgICAgICAgICAoYnV0dG9uQ2xpY2spPVwib25Db21tYW5kKCd0b2dnbGVCbG9ja3F1b3RlJylcIiAvPlxuICAgICAgfVxuICAgICAgQGlmIChcbiAgICAgICAgY29uZmlnKCkuc2VwYXJhdG9yICYmXG4gICAgICAgIChjb25maWcoKS5hbGlnbkxlZnQgfHwgY29uZmlnKCkuYWxpZ25DZW50ZXIgfHwgY29uZmlnKCkuYWxpZ25SaWdodCB8fCBjb25maWcoKS5hbGlnbkp1c3RpZnkpXG4gICAgICApIHtcbiAgICAgICAgPGF0ZS1zZXBhcmF0b3IgLz5cbiAgICAgIH1cbiAgICAgIEBpZiAoY29uZmlnKCkuYWxpZ25MZWZ0KSB7XG4gICAgICAgIDxhdGUtYnV0dG9uXG4gICAgICAgICAgaWNvbj1cImZvcm1hdF9hbGlnbl9sZWZ0XCJcbiAgICAgICAgICBbdGl0bGVdPVwidCgpLmFsaWduTGVmdFwiXG4gICAgICAgICAgW2FjdGl2ZV09XCJzdGF0ZSgpLm5vZGVzLmFsaWduTGVmdFwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cIiFzdGF0ZSgpLmNhbi5zZXRUZXh0QWxpZ25MZWZ0XCJcbiAgICAgICAgICAoYnV0dG9uQ2xpY2spPVwib25Db21tYW5kKCdzZXRUZXh0QWxpZ24nLCAnbGVmdCcpXCIgLz5cbiAgICAgIH1cbiAgICAgIEBpZiAoY29uZmlnKCkuYWxpZ25DZW50ZXIpIHtcbiAgICAgICAgPGF0ZS1idXR0b25cbiAgICAgICAgICBpY29uPVwiZm9ybWF0X2FsaWduX2NlbnRlclwiXG4gICAgICAgICAgW3RpdGxlXT1cInQoKS5hbGlnbkNlbnRlclwiXG4gICAgICAgICAgW2FjdGl2ZV09XCJzdGF0ZSgpLm5vZGVzLmFsaWduQ2VudGVyXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiIXN0YXRlKCkuY2FuLnNldFRleHRBbGlnbkNlbnRlclwiXG4gICAgICAgICAgKGJ1dHRvbkNsaWNrKT1cIm9uQ29tbWFuZCgnc2V0VGV4dEFsaWduJywgJ2NlbnRlcicpXCIgLz5cbiAgICAgIH1cbiAgICAgIEBpZiAoY29uZmlnKCkuYWxpZ25SaWdodCkge1xuICAgICAgICA8YXRlLWJ1dHRvblxuICAgICAgICAgIGljb249XCJmb3JtYXRfYWxpZ25fcmlnaHRcIlxuICAgICAgICAgIFt0aXRsZV09XCJ0KCkuYWxpZ25SaWdodFwiXG4gICAgICAgICAgW2FjdGl2ZV09XCJzdGF0ZSgpLm5vZGVzLmFsaWduUmlnaHRcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCIhc3RhdGUoKS5jYW4uc2V0VGV4dEFsaWduUmlnaHRcIlxuICAgICAgICAgIChidXR0b25DbGljayk9XCJvbkNvbW1hbmQoJ3NldFRleHRBbGlnbicsICdyaWdodCcpXCIgLz5cbiAgICAgIH1cbiAgICAgIEBpZiAoY29uZmlnKCkuYWxpZ25KdXN0aWZ5KSB7XG4gICAgICAgIDxhdGUtYnV0dG9uXG4gICAgICAgICAgaWNvbj1cImZvcm1hdF9hbGlnbl9qdXN0aWZ5XCJcbiAgICAgICAgICBbdGl0bGVdPVwidCgpLmFsaWduSnVzdGlmeVwiXG4gICAgICAgICAgW2FjdGl2ZV09XCJzdGF0ZSgpLm5vZGVzLmFsaWduSnVzdGlmeVwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cIiFzdGF0ZSgpLmNhbi5zZXRUZXh0QWxpZ25KdXN0aWZ5XCJcbiAgICAgICAgICAoYnV0dG9uQ2xpY2spPVwib25Db21tYW5kKCdzZXRUZXh0QWxpZ24nLCAnanVzdGlmeScpXCIgLz5cbiAgICAgIH1cbiAgICAgIEBpZiAoY29uZmlnKCkuc2VwYXJhdG9yICYmIChjb25maWcoKS5saW5rIHx8IGNvbmZpZygpLmhvcml6b250YWxSdWxlKSkge1xuICAgICAgICA8YXRlLXNlcGFyYXRvciAvPlxuICAgICAgfVxuICAgICAgQGlmIChjb25maWcoKS5saW5rKSB7XG4gICAgICAgIDxhdGUtYnV0dG9uXG4gICAgICAgICAgaWNvbj1cImxpbmtcIlxuICAgICAgICAgIFt0aXRsZV09XCJ0KCkubGlua1wiXG4gICAgICAgICAgW2FjdGl2ZV09XCJzdGF0ZSgpLm1hcmtzLmxpbmtcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCIhc3RhdGUoKS5jYW4udG9nZ2xlTGlua1wiXG4gICAgICAgICAgKGJ1dHRvbkNsaWNrKT1cIm9uQ29tbWFuZCgndG9nZ2xlTGluaycsICRldmVudClcIiAvPlxuICAgICAgfVxuICAgICAgQGlmIChjb25maWcoKS5ob3Jpem9udGFsUnVsZSkge1xuICAgICAgICA8YXRlLWJ1dHRvblxuICAgICAgICAgIGljb249XCJob3Jpem9udGFsX3J1bGVcIlxuICAgICAgICAgIFt0aXRsZV09XCJ0KCkuaG9yaXpvbnRhbFJ1bGVcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCIhc3RhdGUoKS5jYW4uaW5zZXJ0SG9yaXpvbnRhbFJ1bGVcIlxuICAgICAgICAgIChidXR0b25DbGljayk9XCJvbkNvbW1hbmQoJ2luc2VydEhvcml6b250YWxSdWxlJylcIiAvPlxuICAgICAgfVxuICAgICAgQGlmIChjb25maWcoKS50YWJsZSkge1xuICAgICAgICA8YXRlLWJ1dHRvblxuICAgICAgICAgIGljb249XCJ0YWJsZV92aWV3XCJcbiAgICAgICAgICBbdGl0bGVdPVwidCgpLnRhYmxlXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiIXN0YXRlKCkuY2FuLmluc2VydFRhYmxlXCJcbiAgICAgICAgICAoYnV0dG9uQ2xpY2spPVwib25Db21tYW5kKCdpbnNlcnRUYWJsZScpXCIgLz5cbiAgICAgIH1cbiAgICAgIEBpZiAoY29uZmlnKCkuc2VwYXJhdG9yICYmIGNvbmZpZygpLmltYWdlKSB7XG4gICAgICAgIDxhdGUtc2VwYXJhdG9yIC8+XG4gICAgICB9XG4gICAgICBAaWYgKGNvbmZpZygpLmltYWdlKSB7XG4gICAgICAgIDxhdGUtYnV0dG9uXG4gICAgICAgICAgaWNvbj1cImltYWdlXCJcbiAgICAgICAgICBbdGl0bGVdPVwidCgpLmltYWdlXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiIXN0YXRlKCkuY2FuLmluc2VydEltYWdlXCJcbiAgICAgICAgICAoYnV0dG9uQ2xpY2spPVwib25Db21tYW5kKCdpbnNlcnRJbWFnZScsIGltYWdlVXBsb2FkKCkpXCIgLz5cbiAgICAgIH1cbiAgICAgIEBpZiAoY29uZmlnKCkuc2VwYXJhdG9yICYmIChjb25maWcoKS51bmRvIHx8IGNvbmZpZygpLnJlZG8pKSB7XG4gICAgICAgIDxhdGUtc2VwYXJhdG9yIC8+XG4gICAgICB9XG4gICAgICBAaWYgKGNvbmZpZygpLnVuZG8pIHtcbiAgICAgICAgPGF0ZS1idXR0b25cbiAgICAgICAgICBpY29uPVwidW5kb1wiXG4gICAgICAgICAgW3RpdGxlXT1cInQoKS51bmRvXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiIXN0YXRlKCkuY2FuLnVuZG9cIlxuICAgICAgICAgIChidXR0b25DbGljayk9XCJvbkNvbW1hbmQoJ3VuZG8nKVwiIC8+XG4gICAgICB9XG4gICAgICBAaWYgKGNvbmZpZygpLnJlZG8pIHtcbiAgICAgICAgPGF0ZS1idXR0b25cbiAgICAgICAgICBpY29uPVwicmVkb1wiXG4gICAgICAgICAgW3RpdGxlXT1cInQoKS5yZWRvXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiIXN0YXRlKCkuY2FuLnJlZG9cIlxuICAgICAgICAgIChidXR0b25DbGljayk9XCJvbkNvbW1hbmQoJ3JlZG8nKVwiIC8+XG4gICAgICB9XG4gICAgICBAaWYgKGNvbmZpZygpLnNlcGFyYXRvciAmJiBjb25maWcoKS5jbGVhcikge1xuICAgICAgICA8YXRlLXNlcGFyYXRvciAvPlxuICAgICAgfVxuICAgICAgQGlmIChjb25maWcoKS5jbGVhcikge1xuICAgICAgICA8YXRlLWJ1dHRvblxuICAgICAgICAgIGljb249XCJkZWxldGVcIlxuICAgICAgICAgIFt0aXRsZV09XCJ0KCkuY2xlYXJcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCIhc3RhdGUoKS5pc0VkaXRhYmxlXCJcbiAgICAgICAgICAoYnV0dG9uQ2xpY2spPVwib25Db21tYW5kKCdjbGVhckNvbnRlbnQnKVwiIC8+XG4gICAgICB9XG4gICAgICBAaWYgKGNvbmZpZygpLmN1c3RvbT8ubGVuZ3RoKSB7XG4gICAgICAgIEBmb3IgKGl0ZW0gb2YgY29uZmlnKCkuY3VzdG9tOyB0cmFjayBpdGVtLmtleSkge1xuICAgICAgICAgIDxhdGUtYnV0dG9uXG4gICAgICAgICAgICBbaWNvbl09XCJpdGVtLmljb25cIlxuICAgICAgICAgICAgW3RpdGxlXT1cIml0ZW0ubGFiZWxcIlxuICAgICAgICAgICAgKGJ1dHRvbkNsaWNrKT1cIml0ZW0uY29tbWFuZChlZGl0b3IoKSlcIj48L2F0ZS1idXR0b24+XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiAgYCxcbiAgc3R5bGVzOiBbXG4gICAgYFxuICAgICAgOmhvc3Qge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzIGVhc2U7XG4gICAgICB9XG5cbiAgICAgIDpob3N0LWNvbnRleHQoLmZsb2F0aW5nLXRvb2xiYXIpIHtcbiAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgdG9wOiAzcmVtO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgei1pbmRleDogMTAwO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBoZWlnaHQ6IDA7XG4gICAgICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsgLyogTGV0IGNsaWNrcyBwYXNzIHRocm91Z2ggdG8gY29udGVudCBpZiBub3Qgb24gdG9vbGJhciAqL1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgfVxuXG4gICAgICA6aG9zdC1jb250ZXh0KC5mbG9hdGluZy10b29sYmFyOmZvY3VzLXdpdGhpbiksXG4gICAgICA6aG9zdC1jb250ZXh0KC5mbG9hdGluZy10b29sYmFyOmhvdmVyKSB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICB9XG5cbiAgICAgIC5hdGUtdG9vbGJhciB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGdhcDogdmFyKC0tYXRlLXRvb2xiYXItZ2FwKTtcbiAgICAgICAgcGFkZGluZzogdmFyKC0tYXRlLXRvb2xiYXItcGFkZGluZyk7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWF0ZS10b29sYmFyLWJhY2tncm91bmQpO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tYXRlLXRvb2xiYXItYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICBtaW4taGVpZ2h0OiAzMnB4O1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6IDUwO1xuICAgICAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiBjYWxjKFxuICAgICAgICAgIHZhcigtLWF0ZS1tZW51LWJvcmRlci1yYWRpdXMsIDEycHgpIC0gdmFyKC0tYXRlLWJvcmRlci13aWR0aCwgMnB4KVxuICAgICAgICApO1xuICAgICAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogY2FsYyhcbiAgICAgICAgICB2YXIoLS1hdGUtbWVudS1ib3JkZXItcmFkaXVzLCAxMnB4KSAtIHZhcigtLWF0ZS1ib3JkZXItd2lkdGgsIDJweClcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgLyogRmxvYXRpbmcgVG9vbGJhciBNb2RlICovXG4gICAgICAuYXRlLXRvb2xiYXIuZmxvYXRpbmcge1xuICAgICAgICBwb2ludGVyLWV2ZW50czogYXV0bztcbiAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tYXRlLW1lbnUtYm9yZGVyLXJhZGl1cywgMTJweCk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWF0ZS1tZW51LWJvcmRlcikgIWltcG9ydGFudDtcbiAgICAgICAgYm94LXNoYWRvdzogdmFyKC0tYXRlLW1lbnUtc2hhZG93KSAhaW1wb3J0YW50O1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1hdGUtbWVudS1iZykgIWltcG9ydGFudDtcbiAgICAgICAgcGFkZGluZzogdmFyKC0tYXRlLW1lbnUtcGFkZGluZykgIWltcG9ydGFudDtcbiAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgIG92ZXJmbG93LXg6IGF1dG87XG4gICAgICAgIG1heC13aWR0aDogOTV2dztcbiAgICAgICAgc2Nyb2xsYmFyLXdpZHRoOiBub25lO1xuXG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuM3MgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTtcbiAgICAgIH1cblxuICAgICAgLmF0ZS10b29sYmFyLmZsb2F0aW5nOjotd2Via2l0LXNjcm9sbGJhciB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG5cbiAgICAgIDpob3N0LWNvbnRleHQoLmZsb2F0aW5nLXRvb2xiYXI6Zm9jdXMtd2l0aGluKSAuYXRlLXRvb2xiYXIuZmxvYXRpbmcsXG4gICAgICA6aG9zdC1jb250ZXh0KC5mbG9hdGluZy10b29sYmFyOmhvdmVyKSAuYXRlLXRvb2xiYXIuZmxvYXRpbmcge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTJyZW0pO1xuICAgICAgfVxuXG4gICAgICBAa2V5ZnJhbWVzIHRvb2xiYXJTbGlkZUluIHtcbiAgICAgICAgZnJvbSB7XG4gICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEwcHgpO1xuICAgICAgICB9XG4gICAgICAgIHRvIHtcbiAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAuYXRlLXRvb2xiYXIge1xuICAgICAgICBhbmltYXRpb246IHRvb2xiYXJTbGlkZUluIDAuM3MgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTtcbiAgICAgIH1cbiAgICBgLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBBdGVUb29sYmFyQ29tcG9uZW50IHtcbiAgZWRpdG9yID0gaW5wdXQucmVxdWlyZWQ8RWRpdG9yPigpO1xuICBjb25maWcgPSBpbnB1dC5yZXF1aXJlZDxBdGVUb29sYmFyQ29uZmlnPigpO1xuICBpbWFnZVVwbG9hZCA9IGlucHV0PFJlY29yZDxzdHJpbmcsIHVua25vd24+Pih7fSk7XG4gIGZsb2F0aW5nID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gIHByaXZhdGUgaTE4blNlcnZpY2UgPSBpbmplY3QoQXRlSTE4blNlcnZpY2UpO1xuICBwcml2YXRlIGVkaXRvckNvbW1hbmRzID0gaW5qZWN0KEF0ZUVkaXRvckNvbW1hbmRzU2VydmljZSk7XG5cbiAgcmVhZG9ubHkgdCA9IHRoaXMuaTE4blNlcnZpY2UudG9vbGJhcjtcbiAgcmVhZG9ubHkgc3RhdGUgPSB0aGlzLmVkaXRvckNvbW1hbmRzLmVkaXRvclN0YXRlO1xuXG4gIG9uQ29tbWFuZChjb21tYW5kOiBzdHJpbmcsIC4uLmFyZ3M6IHVua25vd25bXSkge1xuICAgIGNvbnN0IGVkaXRvciA9IHRoaXMuZWRpdG9yKCk7XG4gICAgaWYgKCFlZGl0b3IpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5lZGl0b3JDb21tYW5kcy5leGVjdXRlKGVkaXRvciwgY29tbWFuZCwgLi4uYXJncyk7XG4gIH1cbn1cbiJdfQ==
531
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXRlLXRvb2xiYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci10aXB0YXAtZWRpdG9yL3NyYy9saWIvY29tcG9uZW50cy90b29sYmFyL2F0ZS10b29sYmFyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbEYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDdEUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDdEYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDRDQUE0QyxDQUFDOztBQTBWckYsTUFBTSxPQUFPLG1CQUFtQjtJQXRWaEM7UUF1VkUsV0FBTSxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQVUsQ0FBQztRQUNsQyxXQUFNLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBb0IsQ0FBQztRQUM1QyxnQkFBVyxHQUFHLEtBQUssQ0FBMEIsRUFBRSxDQUFDLENBQUM7UUFDakQsYUFBUSxHQUFHLEtBQUssQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUV6QixnQkFBVyxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUNyQyxtQkFBYyxHQUFHLE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO1FBRWpELE1BQUMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQztRQUM3QixVQUFLLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUM7S0FTbEQ7SUFQQyxTQUFTLENBQUMsT0FBZSxFQUFFLEdBQUcsSUFBZTtRQUMzQyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDN0IsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ1osT0FBTztRQUNULENBQUM7UUFDRCxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUM7SUFDeEQsQ0FBQzsrR0FsQlUsbUJBQW1CO21HQUFuQixtQkFBbUIsa2xCQWpWcEI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXlQVCxzbERBMVBTLGtCQUFrQiw2TEFBRSxxQkFBcUIsMERBQUUsdUJBQXVCOzs0RkFrVmpFLG1CQUFtQjtrQkF0Vi9CLFNBQVM7K0JBQ0UsYUFBYSxjQUNYLElBQUksbUJBQ0MsdUJBQXVCLENBQUMsTUFBTSxXQUN0QyxDQUFDLGtCQUFrQixFQUFFLHFCQUFxQixFQUFFLHVCQUF1QixDQUFDLFlBQ25FOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F5UFQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGlucHV0LCBpbmplY3QsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEVkaXRvciB9IGZyb20gXCJAdGlwdGFwL2NvcmVcIjtcbmltcG9ydCB7IEF0ZUJ1dHRvbkNvbXBvbmVudCB9IGZyb20gXCIuLi91aS9hdGUtYnV0dG9uLmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgQXRlU2VwYXJhdG9yQ29tcG9uZW50IH0gZnJvbSBcIi4uL3VpL2F0ZS1zZXBhcmF0b3IuY29tcG9uZW50XCI7XG5pbXBvcnQgeyBBdGVFZGl0b3JDb21tYW5kc1NlcnZpY2UgfSBmcm9tIFwiLi4vLi4vc2VydmljZXMvYXRlLWVkaXRvci1jb21tYW5kcy5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBBdGVJMThuU2VydmljZSB9IGZyb20gXCIuLi8uLi9zZXJ2aWNlcy9hdGUtaTE4bi5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBBdGVDb2xvclBpY2tlckNvbXBvbmVudCB9IGZyb20gXCIuLi9jb2xvci1waWNrZXIvYXRlLWNvbG9yLXBpY2tlci5jb21wb25lbnRcIjtcblxuaW1wb3J0IHsgQXRlVG9vbGJhckNvbmZpZyB9IGZyb20gXCIuLi8uLi9tb2RlbHMvYXRlLXRvb2xiYXIubW9kZWxcIjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiBcImF0ZS10b29sYmFyXCIsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBpbXBvcnRzOiBbQXRlQnV0dG9uQ29tcG9uZW50LCBBdGVTZXBhcmF0b3JDb21wb25lbnQsIEF0ZUNvbG9yUGlja2VyQ29tcG9uZW50XSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2IGNsYXNzPVwiYXRlLXRvb2xiYXJcIiBbY2xhc3MuZmxvYXRpbmddPVwiZmxvYXRpbmcoKVwiPlxuICAgICAgQGlmIChjb25maWcoKS5ib2xkKSB7XG4gICAgICAgIDxhdGUtYnV0dG9uXG4gICAgICAgICAgaWNvbj1cImJvbGRcIlxuICAgICAgICAgIFt0aXRsZV09XCJ0KCkuYm9sZFwiXG4gICAgICAgICAgW2FjdGl2ZV09XCJzdGF0ZSgpLm1hcmtzLmJvbGRcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCIhc3RhdGUoKS5jYW4udG9nZ2xlQm9sZFwiXG4gICAgICAgICAgKGJ1dHRvbkNsaWNrKT1cIm9uQ29tbWFuZCgndG9nZ2xlQm9sZCcpXCIgLz5cbiAgICAgIH1cbiAgICAgIEBpZiAoY29uZmlnKCkuaXRhbGljKSB7XG4gICAgICAgIDxhdGUtYnV0dG9uXG4gICAgICAgICAgaWNvbj1cIml0YWxpY1wiXG4gICAgICAgICAgW3RpdGxlXT1cInQoKS5pdGFsaWNcIlxuICAgICAgICAgIFthY3RpdmVdPVwic3RhdGUoKS5tYXJrcy5pdGFsaWNcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCIhc3RhdGUoKS5jYW4udG9nZ2xlSXRhbGljXCJcbiAgICAgICAgICAoYnV0dG9uQ2xpY2spPVwib25Db21tYW5kKCd0b2dnbGVJdGFsaWMnKVwiIC8+XG4gICAgICB9XG4gICAgICBAaWYgKGNvbmZpZygpLnVuZGVybGluZSkge1xuICAgICAgICA8YXRlLWJ1dHRvblxuICAgICAgICAgIGljb249XCJ1bmRlcmxpbmVcIlxuICAgICAgICAgIFt0aXRsZV09XCJ0KCkudW5kZXJsaW5lXCJcbiAgICAgICAgICBbYWN0aXZlXT1cInN0YXRlKCkubWFya3MudW5kZXJsaW5lXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiIXN0YXRlKCkuY2FuLnRvZ2dsZVVuZGVybGluZVwiXG4gICAgICAgICAgKGJ1dHRvbkNsaWNrKT1cIm9uQ29tbWFuZCgndG9nZ2xlVW5kZXJsaW5lJylcIiAvPlxuICAgICAgfVxuICAgICAgQGlmIChjb25maWcoKS5zdHJpa2UpIHtcbiAgICAgICAgPGF0ZS1idXR0b25cbiAgICAgICAgICBpY29uPVwic3RyaWtlXCJcbiAgICAgICAgICBbdGl0bGVdPVwidCgpLnN0cmlrZVwiXG4gICAgICAgICAgW2FjdGl2ZV09XCJzdGF0ZSgpLm1hcmtzLnN0cmlrZVwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cIiFzdGF0ZSgpLmNhbi50b2dnbGVTdHJpa2VcIlxuICAgICAgICAgIChidXR0b25DbGljayk9XCJvbkNvbW1hbmQoJ3RvZ2dsZVN0cmlrZScpXCIgLz5cbiAgICAgIH1cbiAgICAgIEBpZiAoY29uZmlnKCkuY29kZSkge1xuICAgICAgICA8YXRlLWJ1dHRvblxuICAgICAgICAgIGljb249XCJjb2RlXCJcbiAgICAgICAgICBbdGl0bGVdPVwidCgpLmNvZGVcIlxuICAgICAgICAgIFthY3RpdmVdPVwic3RhdGUoKS5tYXJrcy5jb2RlXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiIXN0YXRlKCkuY2FuLnRvZ2dsZUNvZGVcIlxuICAgICAgICAgIChidXR0b25DbGljayk9XCJvbkNvbW1hbmQoJ3RvZ2dsZUNvZGUnKVwiIC8+XG4gICAgICB9XG4gICAgICBAaWYgKGNvbmZpZygpLmNvZGVCbG9jaykge1xuICAgICAgICA8YXRlLWJ1dHRvblxuICAgICAgICAgIGljb249XCJjb2RlQmxvY2tcIlxuICAgICAgICAgIFt0aXRsZV09XCJ0KCkuY29kZUJsb2NrXCJcbiAgICAgICAgICBbYWN0aXZlXT1cInN0YXRlKCkubm9kZXMuaXNDb2RlQmxvY2tcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCIhc3RhdGUoKS5jYW4udG9nZ2xlQ29kZUJsb2NrXCJcbiAgICAgICAgICAoYnV0dG9uQ2xpY2spPVwib25Db21tYW5kKCd0b2dnbGVDb2RlQmxvY2snKVwiIC8+XG4gICAgICB9XG4gICAgICBAaWYgKGNvbmZpZygpLnN1cGVyc2NyaXB0KSB7XG4gICAgICAgIDxhdGUtYnV0dG9uXG4gICAgICAgICAgaWNvbj1cInN1cGVyc2NyaXB0XCJcbiAgICAgICAgICBbdGl0bGVdPVwidCgpLnN1cGVyc2NyaXB0XCJcbiAgICAgICAgICBbYWN0aXZlXT1cInN0YXRlKCkubWFya3Muc3VwZXJzY3JpcHRcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCIhc3RhdGUoKS5jYW4udG9nZ2xlU3VwZXJzY3JpcHRcIlxuICAgICAgICAgIChidXR0b25DbGljayk9XCJvbkNvbW1hbmQoJ3RvZ2dsZVN1cGVyc2NyaXB0JylcIiAvPlxuICAgICAgfVxuICAgICAgQGlmIChjb25maWcoKS5zdWJzY3JpcHQpIHtcbiAgICAgICAgPGF0ZS1idXR0b25cbiAgICAgICAgICBpY29uPVwic3Vic2NyaXB0XCJcbiAgICAgICAgICBbdGl0bGVdPVwidCgpLnN1YnNjcmlwdFwiXG4gICAgICAgICAgW2FjdGl2ZV09XCJzdGF0ZSgpLm1hcmtzLnN1YnNjcmlwdFwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cIiFzdGF0ZSgpLmNhbi50b2dnbGVTdWJzY3JpcHRcIlxuICAgICAgICAgIChidXR0b25DbGljayk9XCJvbkNvbW1hbmQoJ3RvZ2dsZVN1YnNjcmlwdCcpXCIgLz5cbiAgICAgIH1cbiAgICAgIEBpZiAoY29uZmlnKCkuaGlnaGxpZ2h0KSB7XG4gICAgICAgIDxhdGUtYnV0dG9uXG4gICAgICAgICAgaWNvbj1cImhpZ2hsaWdodFwiXG4gICAgICAgICAgW3RpdGxlXT1cInQoKS5oaWdobGlnaHRcIlxuICAgICAgICAgIFthY3RpdmVdPVwic3RhdGUoKS5tYXJrcy5oaWdobGlnaHRcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCIhc3RhdGUoKS5jYW4udG9nZ2xlSGlnaGxpZ2h0XCJcbiAgICAgICAgICAoYnV0dG9uQ2xpY2spPVwib25Db21tYW5kKCd0b2dnbGVIaWdobGlnaHQnKVwiIC8+XG4gICAgICB9XG4gICAgICBAaWYgKGNvbmZpZygpLmhpZ2hsaWdodFBpY2tlcikge1xuICAgICAgICA8YXRlLWNvbG9yLXBpY2tlclxuICAgICAgICAgIG1vZGU9XCJoaWdobGlnaHRcIlxuICAgICAgICAgIFtlZGl0b3JdPVwiZWRpdG9yKClcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCIhc3RhdGUoKS5jYW4uc2V0SGlnaGxpZ2h0XCIgLz5cbiAgICAgIH1cbiAgICAgIEBpZiAoY29uZmlnKCkudGV4dENvbG9yKSB7XG4gICAgICAgIDxhdGUtY29sb3ItcGlja2VyIG1vZGU9XCJ0ZXh0XCIgW2VkaXRvcl09XCJlZGl0b3IoKVwiIFtkaXNhYmxlZF09XCIhc3RhdGUoKS5jYW4uc2V0Q29sb3JcIiAvPlxuICAgICAgfVxuXG4gICAgICBAaWYgKGNvbmZpZygpLnNlcGFyYXRvciAmJiAoY29uZmlnKCkuaGVhZGluZzEgfHwgY29uZmlnKCkuaGVhZGluZzIgfHwgY29uZmlnKCkuaGVhZGluZzMpKSB7XG4gICAgICAgIDxhdGUtc2VwYXJhdG9yIC8+XG4gICAgICB9XG4gICAgICBAaWYgKGNvbmZpZygpLmhlYWRpbmcxKSB7XG4gICAgICAgIDxhdGUtYnV0dG9uXG4gICAgICAgICAgaWNvbj1cImhlYWRpbmcxXCJcbiAgICAgICAgICBbdGl0bGVdPVwidCgpLmhlYWRpbmcxXCJcbiAgICAgICAgICBbYWN0aXZlXT1cInN0YXRlKCkubm9kZXMuaDFcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCIhc3RhdGUoKS5jYW4udG9nZ2xlSGVhZGluZzFcIlxuICAgICAgICAgIChidXR0b25DbGljayk9XCJvbkNvbW1hbmQoJ3RvZ2dsZUhlYWRpbmcnLCAxKVwiIC8+XG4gICAgICB9XG4gICAgICBAaWYgKGNvbmZpZygpLmhlYWRpbmcyKSB7XG4gICAgICAgIDxhdGUtYnV0dG9uXG4gICAgICAgICAgaWNvbj1cImhlYWRpbmcyXCJcbiAgICAgICAgICBbdGl0bGVdPVwidCgpLmhlYWRpbmcyXCJcbiAgICAgICAgICBbYWN0aXZlXT1cInN0YXRlKCkubm9kZXMuaDJcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCIhc3RhdGUoKS5jYW4udG9nZ2xlSGVhZGluZzJcIlxuICAgICAgICAgIChidXR0b25DbGljayk9XCJvbkNvbW1hbmQoJ3RvZ2dsZUhlYWRpbmcnLCAyKVwiIC8+XG4gICAgICB9XG4gICAgICBAaWYgKGNvbmZpZygpLmhlYWRpbmczKSB7XG4gICAgICAgIDxhdGUtYnV0dG9uXG4gICAgICAgICAgaWNvbj1cImhlYWRpbmczXCJcbiAgICAgICAgICBbdGl0bGVdPVwidCgpLmhlYWRpbmczXCJcbiAgICAgICAgICBbYWN0aXZlXT1cInN0YXRlKCkubm9kZXMuaDNcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCIhc3RhdGUoKS5jYW4udG9nZ2xlSGVhZGluZzNcIlxuICAgICAgICAgIChidXR0b25DbGljayk9XCJvbkNvbW1hbmQoJ3RvZ2dsZUhlYWRpbmcnLCAzKVwiIC8+XG4gICAgICB9XG4gICAgICBAaWYgKFxuICAgICAgICBjb25maWcoKS5zZXBhcmF0b3IgJiYgKGNvbmZpZygpLmJ1bGxldExpc3QgfHwgY29uZmlnKCkub3JkZXJlZExpc3QgfHwgY29uZmlnKCkuYmxvY2txdW90ZSlcbiAgICAgICkge1xuICAgICAgICA8YXRlLXNlcGFyYXRvciAvPlxuICAgICAgfVxuICAgICAgQGlmIChjb25maWcoKS5idWxsZXRMaXN0KSB7XG4gICAgICAgIDxhdGUtYnV0dG9uXG4gICAgICAgICAgaWNvbj1cImJ1bGxldExpc3RcIlxuICAgICAgICAgIFt0aXRsZV09XCJ0KCkuYnVsbGV0TGlzdFwiXG4gICAgICAgICAgW2FjdGl2ZV09XCJzdGF0ZSgpLm5vZGVzLmlzQnVsbGV0TGlzdFwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cIiFzdGF0ZSgpLmNhbi50b2dnbGVCdWxsZXRMaXN0XCJcbiAgICAgICAgICAoYnV0dG9uQ2xpY2spPVwib25Db21tYW5kKCd0b2dnbGVCdWxsZXRMaXN0JylcIiAvPlxuICAgICAgfVxuICAgICAgQGlmIChjb25maWcoKS5vcmRlcmVkTGlzdCkge1xuICAgICAgICA8YXRlLWJ1dHRvblxuICAgICAgICAgIGljb249XCJvcmRlcmVkTGlzdFwiXG4gICAgICAgICAgW3RpdGxlXT1cInQoKS5vcmRlcmVkTGlzdFwiXG4gICAgICAgICAgW2FjdGl2ZV09XCJzdGF0ZSgpLm5vZGVzLmlzT3JkZXJlZExpc3RcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCIhc3RhdGUoKS5jYW4udG9nZ2xlT3JkZXJlZExpc3RcIlxuICAgICAgICAgIChidXR0b25DbGljayk9XCJvbkNvbW1hbmQoJ3RvZ2dsZU9yZGVyZWRMaXN0JylcIiAvPlxuICAgICAgfVxuICAgICAgQGlmIChjb25maWcoKS5ibG9ja3F1b3RlKSB7XG4gICAgICAgIDxhdGUtYnV0dG9uXG4gICAgICAgICAgaWNvbj1cImJsb2NrcXVvdGVcIlxuICAgICAgICAgIFt0aXRsZV09XCJ0KCkuYmxvY2txdW90ZVwiXG4gICAgICAgICAgW2FjdGl2ZV09XCJzdGF0ZSgpLm5vZGVzLmlzQmxvY2txdW90ZVwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cIiFzdGF0ZSgpLmNhbi50b2dnbGVCbG9ja3F1b3RlXCJcbiAgICAgICAgICAoYnV0dG9uQ2xpY2spPVwib25Db21tYW5kKCd0b2dnbGVCbG9ja3F1b3RlJylcIiAvPlxuICAgICAgfVxuICAgICAgQGlmIChcbiAgICAgICAgY29uZmlnKCkuc2VwYXJhdG9yICYmXG4gICAgICAgIChjb25maWcoKS5hbGlnbkxlZnQgfHwgY29uZmlnKCkuYWxpZ25DZW50ZXIgfHwgY29uZmlnKCkuYWxpZ25SaWdodCB8fCBjb25maWcoKS5hbGlnbkp1c3RpZnkpXG4gICAgICApIHtcbiAgICAgICAgPGF0ZS1zZXBhcmF0b3IgLz5cbiAgICAgIH1cbiAgICAgIEBpZiAoY29uZmlnKCkuYWxpZ25MZWZ0KSB7XG4gICAgICAgIDxhdGUtYnV0dG9uXG4gICAgICAgICAgaWNvbj1cImFsaWduTGVmdFwiXG4gICAgICAgICAgW3RpdGxlXT1cInQoKS5hbGlnbkxlZnRcIlxuICAgICAgICAgIFthY3RpdmVdPVwic3RhdGUoKS5ub2Rlcy5hbGlnbkxlZnRcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCIhc3RhdGUoKS5jYW4uc2V0VGV4dEFsaWduTGVmdFwiXG4gICAgICAgICAgKGJ1dHRvbkNsaWNrKT1cIm9uQ29tbWFuZCgnc2V0VGV4dEFsaWduJywgJ2xlZnQnKVwiIC8+XG4gICAgICB9XG4gICAgICBAaWYgKGNvbmZpZygpLmFsaWduQ2VudGVyKSB7XG4gICAgICAgIDxhdGUtYnV0dG9uXG4gICAgICAgICAgaWNvbj1cImFsaWduQ2VudGVyXCJcbiAgICAgICAgICBbdGl0bGVdPVwidCgpLmFsaWduQ2VudGVyXCJcbiAgICAgICAgICBbYWN0aXZlXT1cInN0YXRlKCkubm9kZXMuYWxpZ25DZW50ZXJcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCIhc3RhdGUoKS5jYW4uc2V0VGV4dEFsaWduQ2VudGVyXCJcbiAgICAgICAgICAoYnV0dG9uQ2xpY2spPVwib25Db21tYW5kKCdzZXRUZXh0QWxpZ24nLCAnY2VudGVyJylcIiAvPlxuICAgICAgfVxuICAgICAgQGlmIChjb25maWcoKS5hbGlnblJpZ2h0KSB7XG4gICAgICAgIDxhdGUtYnV0dG9uXG4gICAgICAgICAgaWNvbj1cImFsaWduUmlnaHRcIlxuICAgICAgICAgIFt0aXRsZV09XCJ0KCkuYWxpZ25SaWdodFwiXG4gICAgICAgICAgW2FjdGl2ZV09XCJzdGF0ZSgpLm5vZGVzLmFsaWduUmlnaHRcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCIhc3RhdGUoKS5jYW4uc2V0VGV4dEFsaWduUmlnaHRcIlxuICAgICAgICAgIChidXR0b25DbGljayk9XCJvbkNvbW1hbmQoJ3NldFRleHRBbGlnbicsICdyaWdodCcpXCIgLz5cbiAgICAgIH1cbiAgICAgIEBpZiAoY29uZmlnKCkuYWxpZ25KdXN0aWZ5KSB7XG4gICAgICAgIDxhdGUtYnV0dG9uXG4gICAgICAgICAgaWNvbj1cImFsaWduSnVzdGlmeVwiXG4gICAgICAgICAgW3RpdGxlXT1cInQoKS5hbGlnbkp1c3RpZnlcIlxuICAgICAgICAgIFthY3RpdmVdPVwic3RhdGUoKS5ub2Rlcy5hbGlnbkp1c3RpZnlcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCIhc3RhdGUoKS5jYW4uc2V0VGV4dEFsaWduSnVzdGlmeVwiXG4gICAgICAgICAgKGJ1dHRvbkNsaWNrKT1cIm9uQ29tbWFuZCgnc2V0VGV4dEFsaWduJywgJ2p1c3RpZnknKVwiIC8+XG4gICAgICB9XG4gICAgICBAaWYgKGNvbmZpZygpLnNlcGFyYXRvciAmJiAoY29uZmlnKCkubGluayB8fCBjb25maWcoKS5ob3Jpem9udGFsUnVsZSkpIHtcbiAgICAgICAgPGF0ZS1zZXBhcmF0b3IgLz5cbiAgICAgIH1cbiAgICAgIEBpZiAoY29uZmlnKCkubGluaykge1xuICAgICAgICA8YXRlLWJ1dHRvblxuICAgICAgICAgIGljb249XCJsaW5rXCJcbiAgICAgICAgICBbdGl0bGVdPVwidCgpLmxpbmtcIlxuICAgICAgICAgIFthY3RpdmVdPVwic3RhdGUoKS5tYXJrcy5saW5rXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiIXN0YXRlKCkuY2FuLnRvZ2dsZUxpbmtcIlxuICAgICAgICAgIChidXR0b25DbGljayk9XCJvbkNvbW1hbmQoJ3RvZ2dsZUxpbmsnLCAkZXZlbnQpXCIgLz5cbiAgICAgIH1cbiAgICAgIEBpZiAoY29uZmlnKCkuaG9yaXpvbnRhbFJ1bGUpIHtcbiAgICAgICAgPGF0ZS1idXR0b25cbiAgICAgICAgICBpY29uPVwiaG9yaXpvbnRhbFJ1bGVcIlxuICAgICAgICAgIFt0aXRsZV09XCJ0KCkuaG9yaXpvbnRhbFJ1bGVcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCIhc3RhdGUoKS5jYW4uaW5zZXJ0SG9yaXpvbnRhbFJ1bGVcIlxuICAgICAgICAgIChidXR0b25DbGljayk9XCJvbkNvbW1hbmQoJ2luc2VydEhvcml6b250YWxSdWxlJylcIiAvPlxuICAgICAgfVxuICAgICAgQGlmIChjb25maWcoKS50YWJsZSkge1xuICAgICAgICA8YXRlLWJ1dHRvblxuICAgICAgICAgIGljb249XCJ0YWJsZVwiXG4gICAgICAgICAgW3RpdGxlXT1cInQoKS50YWJsZVwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cIiFzdGF0ZSgpLmNhbi5pbnNlcnRUYWJsZVwiXG4gICAgICAgICAgKGJ1dHRvbkNsaWNrKT1cIm9uQ29tbWFuZCgnaW5zZXJ0VGFibGUnKVwiIC8+XG4gICAgICB9XG4gICAgICBAaWYgKGNvbmZpZygpLnNlcGFyYXRvciAmJiBjb25maWcoKS5pbWFnZSkge1xuICAgICAgICA8YXRlLXNlcGFyYXRvciAvPlxuICAgICAgfVxuICAgICAgQGlmIChjb25maWcoKS5pbWFnZSkge1xuICAgICAgICA8YXRlLWJ1dHRvblxuICAgICAgICAgIGljb249XCJpbWFnZVwiXG4gICAgICAgICAgW3RpdGxlXT1cInQoKS5pbWFnZVwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cIiFzdGF0ZSgpLmNhbi5pbnNlcnRJbWFnZVwiXG4gICAgICAgICAgKGJ1dHRvbkNsaWNrKT1cIm9uQ29tbWFuZCgnaW5zZXJ0SW1hZ2UnLCBpbWFnZVVwbG9hZCgpKVwiIC8+XG4gICAgICB9XG4gICAgICBAaWYgKGNvbmZpZygpLnNlcGFyYXRvciAmJiAoY29uZmlnKCkudW5kbyB8fCBjb25maWcoKS5yZWRvKSkge1xuICAgICAgICA8YXRlLXNlcGFyYXRvciAvPlxuICAgICAgfVxuICAgICAgQGlmIChjb25maWcoKS51bmRvKSB7XG4gICAgICAgIDxhdGUtYnV0dG9uXG4gICAgICAgICAgaWNvbj1cInVuZG9cIlxuICAgICAgICAgIFt0aXRsZV09XCJ0KCkudW5kb1wiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cIiFzdGF0ZSgpLmNhbi51bmRvXCJcbiAgICAgICAgICAoYnV0dG9uQ2xpY2spPVwib25Db21tYW5kKCd1bmRvJylcIiAvPlxuICAgICAgfVxuICAgICAgQGlmIChjb25maWcoKS5yZWRvKSB7XG4gICAgICAgIDxhdGUtYnV0dG9uXG4gICAgICAgICAgaWNvbj1cInJlZG9cIlxuICAgICAgICAgIFt0aXRsZV09XCJ0KCkucmVkb1wiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cIiFzdGF0ZSgpLmNhbi5yZWRvXCJcbiAgICAgICAgICAoYnV0dG9uQ2xpY2spPVwib25Db21tYW5kKCdyZWRvJylcIiAvPlxuICAgICAgfVxuICAgICAgQGlmIChjb25maWcoKS5zZXBhcmF0b3IgJiYgY29uZmlnKCkuY2xlYXIpIHtcbiAgICAgICAgPGF0ZS1zZXBhcmF0b3IgLz5cbiAgICAgIH1cbiAgICAgIEBpZiAoY29uZmlnKCkuY2xlYXIpIHtcbiAgICAgICAgPGF0ZS1idXR0b25cbiAgICAgICAgICBpY29uPVwiY2xlYXJDb250ZW50XCJcbiAgICAgICAgICBbdGl0bGVdPVwidCgpLmNsZWFyXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiIXN0YXRlKCkuaXNFZGl0YWJsZVwiXG4gICAgICAgICAgKGJ1dHRvbkNsaWNrKT1cIm9uQ29tbWFuZCgnY2xlYXJDb250ZW50JylcIiAvPlxuICAgICAgfVxuICAgICAgQGlmIChjb25maWcoKS5jdXN0b20/Lmxlbmd0aCkge1xuICAgICAgICBAZm9yIChpdGVtIG9mIGNvbmZpZygpLmN1c3RvbTsgdHJhY2sgaXRlbS5rZXkpIHtcbiAgICAgICAgICA8YXRlLWJ1dHRvblxuICAgICAgICAgICAgW2ljb25dPVwiaXRlbS5pY29uXCJcbiAgICAgICAgICAgIFt0aXRsZV09XCJpdGVtLmxhYmVsXCJcbiAgICAgICAgICAgIChidXR0b25DbGljayk9XCJpdGVtLmNvbW1hbmQoZWRpdG9yKCkpXCI+PC9hdGUtYnV0dG9uPlxuICAgICAgICB9XG4gICAgICB9XG4gICAgPC9kaXY+XG4gIGAsXG4gIHN0eWxlczogW1xuICAgIGBcbiAgICAgIDpob3N0IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcyBlYXNlO1xuICAgICAgfVxuXG4gICAgICA6aG9zdC1jb250ZXh0KC5mbG9hdGluZy10b29sYmFyKSB7XG4gICAgICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgICAgIHRvcDogM3JlbTtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHotaW5kZXg6IDEwMDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgaGVpZ2h0OiAwO1xuICAgICAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7IC8qIExldCBjbGlja3MgcGFzcyB0aHJvdWdoIHRvIGNvbnRlbnQgaWYgbm90IG9uIHRvb2xiYXIgKi9cbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgIH1cblxuICAgICAgOmhvc3QtY29udGV4dCguZmxvYXRpbmctdG9vbGJhcjpmb2N1cy13aXRoaW4pLFxuICAgICAgOmhvc3QtY29udGV4dCguZmxvYXRpbmctdG9vbGJhcjpob3Zlcikge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgfVxuXG4gICAgICAuYXRlLXRvb2xiYXIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IHZhcigtLWF0ZS10b29sYmFyLWdhcCk7XG4gICAgICAgIHBhZGRpbmc6IHZhcigtLWF0ZS10b29sYmFyLXBhZGRpbmcpO1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1hdGUtdG9vbGJhci1iYWNrZ3JvdW5kKTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWF0ZS10b29sYmFyLWJvcmRlci1jb2xvcik7XG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgbWluLWhlaWdodDogMzJweDtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiA1MDtcbiAgICAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogY2FsYyhcbiAgICAgICAgICB2YXIoLS1hdGUtbWVudS1ib3JkZXItcmFkaXVzLCAxMnB4KSAtIHZhcigtLWF0ZS1ib3JkZXItd2lkdGgsIDJweClcbiAgICAgICAgKTtcbiAgICAgICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IGNhbGMoXG4gICAgICAgICAgdmFyKC0tYXRlLW1lbnUtYm9yZGVyLXJhZGl1cywgMTJweCkgLSB2YXIoLS1hdGUtYm9yZGVyLXdpZHRoLCAycHgpXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIC8qIEZsb2F0aW5nIFRvb2xiYXIgTW9kZSAqL1xuICAgICAgLmF0ZS10b29sYmFyLmZsb2F0aW5nIHtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IGF1dG87XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWF0ZS1tZW51LWJvcmRlci1yYWRpdXMsIDEycHgpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1hdGUtbWVudS1ib3JkZXIpICFpbXBvcnRhbnQ7XG4gICAgICAgIGJveC1zaGFkb3c6IHZhcigtLWF0ZS1tZW51LXNoYWRvdykgIWltcG9ydGFudDtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYXRlLW1lbnUtYmcpICFpbXBvcnRhbnQ7XG4gICAgICAgIHBhZGRpbmc6IHZhcigtLWF0ZS1tZW51LXBhZGRpbmcpICFpbXBvcnRhbnQ7XG4gICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICBvdmVyZmxvdy14OiBhdXRvO1xuICAgICAgICBtYXgtd2lkdGg6IDk1dnc7XG4gICAgICAgIHNjcm9sbGJhci13aWR0aDogbm9uZTtcblxuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7XG4gICAgICB9XG5cbiAgICAgIC5hdGUtdG9vbGJhci5mbG9hdGluZzo6LXdlYmtpdC1zY3JvbGxiYXIge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgfVxuXG4gICAgICA6aG9zdC1jb250ZXh0KC5mbG9hdGluZy10b29sYmFyOmZvY3VzLXdpdGhpbikgLmF0ZS10b29sYmFyLmZsb2F0aW5nLFxuICAgICAgOmhvc3QtY29udGV4dCguZmxvYXRpbmctdG9vbGJhcjpob3ZlcikgLmF0ZS10b29sYmFyLmZsb2F0aW5nIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0ycmVtKTtcbiAgICAgIH1cblxuICAgICAgQGtleWZyYW1lcyB0b29sYmFyU2xpZGVJbiB7XG4gICAgICAgIGZyb20ge1xuICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMHB4KTtcbiAgICAgICAgfVxuICAgICAgICB0byB7XG4gICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLmF0ZS10b29sYmFyIHtcbiAgICAgICAgYW5pbWF0aW9uOiB0b29sYmFyU2xpZGVJbiAwLjNzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7XG4gICAgICB9XG4gICAgYCxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQXRlVG9vbGJhckNvbXBvbmVudCB7XG4gIGVkaXRvciA9IGlucHV0LnJlcXVpcmVkPEVkaXRvcj4oKTtcbiAgY29uZmlnID0gaW5wdXQucmVxdWlyZWQ8QXRlVG9vbGJhckNvbmZpZz4oKTtcbiAgaW1hZ2VVcGxvYWQgPSBpbnB1dDxSZWNvcmQ8c3RyaW5nLCB1bmtub3duPj4oe30pO1xuICBmbG9hdGluZyA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcblxuICBwcml2YXRlIGkxOG5TZXJ2aWNlID0gaW5qZWN0KEF0ZUkxOG5TZXJ2aWNlKTtcbiAgcHJpdmF0ZSBlZGl0b3JDb21tYW5kcyA9IGluamVjdChBdGVFZGl0b3JDb21tYW5kc1NlcnZpY2UpO1xuXG4gIHJlYWRvbmx5IHQgPSB0aGlzLmkxOG5TZXJ2aWNlLnRvb2xiYXI7XG4gIHJlYWRvbmx5IHN0YXRlID0gdGhpcy5lZGl0b3JDb21tYW5kcy5lZGl0b3JTdGF0ZTtcblxuICBvbkNvbW1hbmQoY29tbWFuZDogc3RyaW5nLCAuLi5hcmdzOiB1bmtub3duW10pIHtcbiAgICBjb25zdCBlZGl0b3IgPSB0aGlzLmVkaXRvcigpO1xuICAgIGlmICghZWRpdG9yKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuZWRpdG9yQ29tbWFuZHMuZXhlY3V0ZShlZGl0b3IsIGNvbW1hbmQsIC4uLmFyZ3MpO1xuICB9XG59XG4iXX0=
@@ -1,5 +1,6 @@
1
1
  import { Component, input, output, ChangeDetectionStrategy, booleanAttribute } from "@angular/core";
2
2
  import { AteTooltipDirective } from "../../directives/ate-tooltip.directive";
3
+ import { AteIconComponent } from "./ate-icon.component";
3
4
  import * as i0 from "@angular/core";
4
5
  export class AteButtonComponent {
5
6
  constructor() {
@@ -41,21 +42,19 @@ export class AteButtonComponent {
41
42
  (click)="buttonClick.emit($event)"
42
43
  type="button">
43
44
  @if (icon()) {
44
- <span
45
- class="material-symbols-outlined"
45
+ <ate-icon
46
+ [name]="icon()"
46
47
  [class.icon-small]="iconSize() === 'small'"
47
48
  [class.icon-medium]="iconSize() === 'medium'"
48
- [class.icon-large]="iconSize() === 'large'"
49
- >{{ icon() }}</span
50
- >
49
+ [class.icon-large]="iconSize() === 'large'" />
51
50
  }
52
51
  <ng-content></ng-content>
53
52
  </button>
54
- `, isInline: true, styles: [".ate-button{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;background:transparent;border-radius:var(--ate-sub-border-radius, 8px);cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1);color:var(--ate-toolbar-button-color, var(--ate-text-secondary));position:relative;overflow:hidden}.ate-button:before{content:\"\";position:absolute;inset:0;background:var(--ate-primary);opacity:0;transition:opacity .2s ease;border-radius:var(--ate-sub-border-radius, 8px)}.ate-button:hover:not(.has-custom-color){color:var(--ate-toolbar-button-active-color, var(--ate-primary));background:var(--ate-toolbar-button-hover-background, transparent);transform:translateY(-1px)}.ate-button.has-custom-color:hover:not(.has-custom-bg){background:var(--ate-toolbar-button-hover-background, transparent);transform:translateY(-1px)}.ate-button.has-custom-bg:hover{transform:translateY(-1px);filter:brightness(.9)}.ate-button:hover:before{opacity:.1}.ate-button:active{transform:translateY(0)}.ate-button.is-active:not(.has-custom-color){color:var(--ate-toolbar-button-active-color, var(--ate-primary));background:var(--ate-toolbar-button-active-background, var(--ate-primary-light))}.ate-button.is-active.has-custom-color{background:var(--ate-toolbar-button-active-background, var(--ate-primary-light))}.ate-button:disabled{opacity:.4;cursor:not-allowed;pointer-events:none}.ate-button .material-symbols-outlined{font-size:20px;position:relative;z-index:1}.ate-button .material-symbols-outlined.icon-small{font-size:16px}.ate-button .material-symbols-outlined.icon-medium{font-size:20px}.ate-button .material-symbols-outlined.icon-large{font-size:24px}.ate-button.text-button{width:auto;padding:0 12px;font-size:14px;font-weight:500;gap:8px}.ate-button.color-button{width:28px;height:28px;border-radius:50%;border:2px solid transparent;transition:all .2s ease}.ate-button.color-button:hover{border-color:var(--ate-border);transform:scale(1.1)}.ate-button.color-button.is-active{border-color:var(--ate-primary);box-shadow:0 0 0 2px var(--ate-primary-light)}.ate-button.danger{color:var(--ate-error-color, #ef4444)}.ate-button.danger:hover{color:var(--ate-error-color, #ef4444);background:var(--ate-error-bg, rgba(239, 68, 68, .1))}.ate-button.danger:before{background:var(--ate-error-color, #ef4444)}.ate-button.small{width:24px;height:24px}.ate-button.medium{width:32px;height:32px}.ate-button.large{width:40px;height:40px}@keyframes pulse{0%,to{box-shadow:0 0 0 0 var(--ate-primary-light-alpha)}50%{box-shadow:0 0 0 4px transparent}}.ate-button.is-active.pulse{animation:pulse 2s infinite}@media (max-width: 768px){.ate-button{width:32px;height:32px}.ate-button .material-symbols-outlined{font-size:18px}.ate-button.text-button{padding:0 8px;font-size:13px}}\n"], dependencies: [{ kind: "directive", type: AteTooltipDirective, selector: "[ateTooltip]", inputs: ["ateTooltip", "ateTooltipPlacement", "ateTooltipDelay", "ateTooltipDisabled"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
53
+ `, isInline: true, styles: [".ate-button{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;background:transparent;border-radius:var(--ate-sub-border-radius, 8px);cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1);color:var(--ate-toolbar-button-color, var(--ate-text-secondary));position:relative;overflow:hidden}.ate-button:before{content:\"\";position:absolute;inset:0;background:var(--ate-primary);opacity:0;transition:opacity .2s ease;border-radius:var(--ate-sub-border-radius, 8px)}.ate-button:hover:not(.has-custom-color){color:var(--ate-toolbar-button-active-color, var(--ate-primary));background:var(--ate-toolbar-button-hover-background, transparent);transform:translateY(-1px)}.ate-button.has-custom-color:hover:not(.has-custom-bg){background:var(--ate-toolbar-button-hover-background, transparent);transform:translateY(-1px)}.ate-button.has-custom-bg:hover{transform:translateY(-1px);filter:brightness(.9)}.ate-button:hover:before{opacity:.1}.ate-button:active{transform:translateY(0)}.ate-button.is-active:not(.has-custom-color){color:var(--ate-toolbar-button-active-color, var(--ate-primary));background:var(--ate-toolbar-button-active-background, var(--ate-primary-light))}.ate-button.is-active.has-custom-color{background:var(--ate-toolbar-button-active-background, var(--ate-primary-light))}.ate-button:disabled{opacity:.4;cursor:not-allowed;pointer-events:none}.ate-button .ate-icon{font-size:20px;position:relative;z-index:1}.ate-button .ate-icon.icon-small{font-size:16px}.ate-button .ate-icon.icon-medium{font-size:20px}.ate-button .ate-icon.icon-large{font-size:24px}.ate-button.text-button{width:auto;padding:0 12px;font-size:14px;font-weight:500;gap:8px}.ate-button.color-button{width:28px;height:28px;border-radius:50%;border:2px solid transparent;transition:all .2s ease}.ate-button.color-button:hover{border-color:var(--ate-border);transform:scale(1.1)}.ate-button.color-button.is-active{border-color:var(--ate-primary);box-shadow:0 0 0 2px var(--ate-primary-light)}.ate-button.danger{color:var(--ate-error-color, #ef4444)}.ate-button.danger:hover{color:var(--ate-error-color, #ef4444);background:var(--ate-error-bg, rgba(239, 68, 68, .1))}.ate-button.danger:before{background:var(--ate-error-color, #ef4444)}.ate-button.small{width:24px;height:24px}.ate-button.medium{width:32px;height:32px}.ate-button.large{width:40px;height:40px}@keyframes pulse{0%,to{box-shadow:0 0 0 0 var(--ate-primary-light-alpha)}50%{box-shadow:0 0 0 4px transparent}}.ate-button.is-active.pulse{animation:pulse 2s infinite}@media (max-width: 768px){.ate-button{width:32px;height:32px}.ate-button .ate-icon{font-size:18px}.ate-button.text-button{padding:0 8px;font-size:13px}}\n"], dependencies: [{ kind: "directive", type: AteTooltipDirective, selector: "[ateTooltip]", inputs: ["ateTooltip", "ateTooltipPlacement", "ateTooltipDelay", "ateTooltipDisabled"] }, { kind: "component", type: AteIconComponent, selector: "ate-icon", inputs: ["name"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
55
54
  }
56
55
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AteButtonComponent, decorators: [{
57
56
  type: Component,
58
- args: [{ selector: "ate-button", standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [AteTooltipDirective], template: `
57
+ args: [{ selector: "ate-button", standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [AteTooltipDirective, AteIconComponent], template: `
59
58
  <button
60
59
  class="ate-button"
61
60
  [class.is-active]="active()"
@@ -76,16 +75,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
76
75
  (click)="buttonClick.emit($event)"
77
76
  type="button">
78
77
  @if (icon()) {
79
- <span
80
- class="material-symbols-outlined"
78
+ <ate-icon
79
+ [name]="icon()"
81
80
  [class.icon-small]="iconSize() === 'small'"
82
81
  [class.icon-medium]="iconSize() === 'medium'"
83
- [class.icon-large]="iconSize() === 'large'"
84
- >{{ icon() }}</span
85
- >
82
+ [class.icon-large]="iconSize() === 'large'" />
86
83
  }
87
84
  <ng-content></ng-content>
88
85
  </button>
89
- `, styles: [".ate-button{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;background:transparent;border-radius:var(--ate-sub-border-radius, 8px);cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1);color:var(--ate-toolbar-button-color, var(--ate-text-secondary));position:relative;overflow:hidden}.ate-button:before{content:\"\";position:absolute;inset:0;background:var(--ate-primary);opacity:0;transition:opacity .2s ease;border-radius:var(--ate-sub-border-radius, 8px)}.ate-button:hover:not(.has-custom-color){color:var(--ate-toolbar-button-active-color, var(--ate-primary));background:var(--ate-toolbar-button-hover-background, transparent);transform:translateY(-1px)}.ate-button.has-custom-color:hover:not(.has-custom-bg){background:var(--ate-toolbar-button-hover-background, transparent);transform:translateY(-1px)}.ate-button.has-custom-bg:hover{transform:translateY(-1px);filter:brightness(.9)}.ate-button:hover:before{opacity:.1}.ate-button:active{transform:translateY(0)}.ate-button.is-active:not(.has-custom-color){color:var(--ate-toolbar-button-active-color, var(--ate-primary));background:var(--ate-toolbar-button-active-background, var(--ate-primary-light))}.ate-button.is-active.has-custom-color{background:var(--ate-toolbar-button-active-background, var(--ate-primary-light))}.ate-button:disabled{opacity:.4;cursor:not-allowed;pointer-events:none}.ate-button .material-symbols-outlined{font-size:20px;position:relative;z-index:1}.ate-button .material-symbols-outlined.icon-small{font-size:16px}.ate-button .material-symbols-outlined.icon-medium{font-size:20px}.ate-button .material-symbols-outlined.icon-large{font-size:24px}.ate-button.text-button{width:auto;padding:0 12px;font-size:14px;font-weight:500;gap:8px}.ate-button.color-button{width:28px;height:28px;border-radius:50%;border:2px solid transparent;transition:all .2s ease}.ate-button.color-button:hover{border-color:var(--ate-border);transform:scale(1.1)}.ate-button.color-button.is-active{border-color:var(--ate-primary);box-shadow:0 0 0 2px var(--ate-primary-light)}.ate-button.danger{color:var(--ate-error-color, #ef4444)}.ate-button.danger:hover{color:var(--ate-error-color, #ef4444);background:var(--ate-error-bg, rgba(239, 68, 68, .1))}.ate-button.danger:before{background:var(--ate-error-color, #ef4444)}.ate-button.small{width:24px;height:24px}.ate-button.medium{width:32px;height:32px}.ate-button.large{width:40px;height:40px}@keyframes pulse{0%,to{box-shadow:0 0 0 0 var(--ate-primary-light-alpha)}50%{box-shadow:0 0 0 4px transparent}}.ate-button.is-active.pulse{animation:pulse 2s infinite}@media (max-width: 768px){.ate-button{width:32px;height:32px}.ate-button .material-symbols-outlined{font-size:18px}.ate-button.text-button{padding:0 8px;font-size:13px}}\n"] }]
86
+ `, styles: [".ate-button{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;background:transparent;border-radius:var(--ate-sub-border-radius, 8px);cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1);color:var(--ate-toolbar-button-color, var(--ate-text-secondary));position:relative;overflow:hidden}.ate-button:before{content:\"\";position:absolute;inset:0;background:var(--ate-primary);opacity:0;transition:opacity .2s ease;border-radius:var(--ate-sub-border-radius, 8px)}.ate-button:hover:not(.has-custom-color){color:var(--ate-toolbar-button-active-color, var(--ate-primary));background:var(--ate-toolbar-button-hover-background, transparent);transform:translateY(-1px)}.ate-button.has-custom-color:hover:not(.has-custom-bg){background:var(--ate-toolbar-button-hover-background, transparent);transform:translateY(-1px)}.ate-button.has-custom-bg:hover{transform:translateY(-1px);filter:brightness(.9)}.ate-button:hover:before{opacity:.1}.ate-button:active{transform:translateY(0)}.ate-button.is-active:not(.has-custom-color){color:var(--ate-toolbar-button-active-color, var(--ate-primary));background:var(--ate-toolbar-button-active-background, var(--ate-primary-light))}.ate-button.is-active.has-custom-color{background:var(--ate-toolbar-button-active-background, var(--ate-primary-light))}.ate-button:disabled{opacity:.4;cursor:not-allowed;pointer-events:none}.ate-button .ate-icon{font-size:20px;position:relative;z-index:1}.ate-button .ate-icon.icon-small{font-size:16px}.ate-button .ate-icon.icon-medium{font-size:20px}.ate-button .ate-icon.icon-large{font-size:24px}.ate-button.text-button{width:auto;padding:0 12px;font-size:14px;font-weight:500;gap:8px}.ate-button.color-button{width:28px;height:28px;border-radius:50%;border:2px solid transparent;transition:all .2s ease}.ate-button.color-button:hover{border-color:var(--ate-border);transform:scale(1.1)}.ate-button.color-button.is-active{border-color:var(--ate-primary);box-shadow:0 0 0 2px var(--ate-primary-light)}.ate-button.danger{color:var(--ate-error-color, #ef4444)}.ate-button.danger:hover{color:var(--ate-error-color, #ef4444);background:var(--ate-error-bg, rgba(239, 68, 68, .1))}.ate-button.danger:before{background:var(--ate-error-color, #ef4444)}.ate-button.small{width:24px;height:24px}.ate-button.medium{width:32px;height:32px}.ate-button.large{width:40px;height:40px}@keyframes pulse{0%,to{box-shadow:0 0 0 0 var(--ate-primary-light-alpha)}50%{box-shadow:0 0 0 4px transparent}}.ate-button.is-active.pulse{animation:pulse 2s infinite}@media (max-width: 768px){.ate-button{width:32px;height:32px}.ate-button .ate-icon{font-size:18px}.ate-button.text-button{padding:0 8px;font-size:13px}}\n"] }]
90
87
  }] });
91
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXRlLWJ1dHRvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXRpcHRhcC1lZGl0b3Ivc3JjL2xpYi9jb21wb25lbnRzL3VpL2F0ZS1idXR0b24uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSx1QkFBdUIsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwRyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQzs7QUF5TzdFLE1BQU0sT0FBTyxrQkFBa0I7SUE3Ti9CO1FBOE5FLFNBQVM7UUFDVCxTQUFJLEdBQUcsS0FBSyxDQUFTLEVBQUUsQ0FBQyxDQUFDO1FBQ3pCLFVBQUssR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFVLENBQUM7UUFDakMsV0FBTSxHQUFHLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZELGFBQVEsR0FBRyxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFLENBQUMsQ0FBQztRQUN6RCxVQUFLLEdBQUcsS0FBSyxFQUFVLENBQUM7UUFDeEIsb0JBQWUsR0FBRyxLQUFLLEVBQVUsQ0FBQztRQUNsQyxZQUFPLEdBQUcsS0FBSyxDQUFnQyxTQUFTLENBQUMsQ0FBQztRQUMxRCxTQUFJLEdBQUcsS0FBSyxDQUErQixRQUFRLENBQUMsQ0FBQztRQUNyRCxhQUFRLEdBQUcsS0FBSyxDQUErQixRQUFRLENBQUMsQ0FBQztRQUV6RCxVQUFVO1FBQ1YsZ0JBQVcsR0FBRyxNQUFNLEVBQVMsQ0FBQztLQUsvQjtJQUhDLFdBQVcsQ0FBQyxLQUFpQjtRQUMzQixLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDekIsQ0FBQzsrR0FqQlUsa0JBQWtCO21HQUFsQixrQkFBa0IscXVDQXhObkI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0ErQlQsd3lGQWhDUyxtQkFBbUI7OzRGQXlObEIsa0JBQWtCO2tCQTdOOUIsU0FBUzsrQkFDRSxZQUFZLGNBQ1YsSUFBSSxtQkFDQyx1QkFBdUIsQ0FBQyxNQUFNLFdBQ3RDLENBQUMsbUJBQW1CLENBQUMsWUFDcEI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0ErQlQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGlucHV0LCBvdXRwdXQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBib29sZWFuQXR0cmlidXRlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEF0ZVRvb2x0aXBEaXJlY3RpdmUgfSBmcm9tIFwiLi4vLi4vZGlyZWN0aXZlcy9hdGUtdG9vbHRpcC5kaXJlY3RpdmVcIjtcblxuZXhwb3J0IGludGVyZmFjZSBBdGVCdXR0b25Db25maWcge1xuICBpY29uOiBzdHJpbmc7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIGFjdGl2ZT86IGJvb2xlYW47XG4gIGRpc2FibGVkPzogYm9vbGVhbjtcbiAgdmFyaWFudD86IFwiZGVmYXVsdFwiIHwgXCJ0ZXh0XCIgfCBcImRhbmdlclwiO1xuICBzaXplPzogXCJzbWFsbFwiIHwgXCJtZWRpdW1cIiB8IFwibGFyZ2VcIjtcbiAgaWNvblNpemU/OiBcInNtYWxsXCIgfCBcIm1lZGl1bVwiIHwgXCJsYXJnZVwiO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6IFwiYXRlLWJ1dHRvblwiLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaW1wb3J0czogW0F0ZVRvb2x0aXBEaXJlY3RpdmVdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxidXR0b25cbiAgICAgIGNsYXNzPVwiYXRlLWJ1dHRvblwiXG4gICAgICBbY2xhc3MuaXMtYWN0aXZlXT1cImFjdGl2ZSgpXCJcbiAgICAgIFtjbGFzcy5pcy1kaXNhYmxlZF09XCJkaXNhYmxlZCgpXCJcbiAgICAgIFtjbGFzcy50ZXh0LWJ1dHRvbl09XCJ2YXJpYW50KCkgPT09ICd0ZXh0J1wiXG4gICAgICBbY2xhc3MuZGFuZ2VyXT1cInZhcmlhbnQoKSA9PT0gJ2RhbmdlcidcIlxuICAgICAgW2NsYXNzLnNtYWxsXT1cInNpemUoKSA9PT0gJ3NtYWxsJ1wiXG4gICAgICBbY2xhc3MubWVkaXVtXT1cInNpemUoKSA9PT0gJ21lZGl1bSdcIlxuICAgICAgW2NsYXNzLmxhcmdlXT1cInNpemUoKSA9PT0gJ2xhcmdlJ1wiXG4gICAgICBbY2xhc3MuaGFzLWN1c3RvbS1jb2xvcl09XCIhIWNvbG9yKClcIlxuICAgICAgW2NsYXNzLmhhcy1jdXN0b20tYmddPVwiISFiYWNrZ3JvdW5kQ29sb3IoKVwiXG4gICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWQoKVwiXG4gICAgICBbc3R5bGUuY29sb3JdPVwiY29sb3IoKVwiXG4gICAgICBbc3R5bGUuYmFja2dyb3VuZC1jb2xvcl09XCJiYWNrZ3JvdW5kQ29sb3IoKVwiXG4gICAgICBbYXRlVG9vbHRpcF09XCJ0aXRsZSgpXCJcbiAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwidGl0bGUoKVwiXG4gICAgICAobW91c2Vkb3duKT1cIm9uTW91c2VEb3duKCRldmVudClcIlxuICAgICAgKGNsaWNrKT1cImJ1dHRvbkNsaWNrLmVtaXQoJGV2ZW50KVwiXG4gICAgICB0eXBlPVwiYnV0dG9uXCI+XG4gICAgICBAaWYgKGljb24oKSkge1xuICAgICAgICA8c3BhblxuICAgICAgICAgIGNsYXNzPVwibWF0ZXJpYWwtc3ltYm9scy1vdXRsaW5lZFwiXG4gICAgICAgICAgW2NsYXNzLmljb24tc21hbGxdPVwiaWNvblNpemUoKSA9PT0gJ3NtYWxsJ1wiXG4gICAgICAgICAgW2NsYXNzLmljb24tbWVkaXVtXT1cImljb25TaXplKCkgPT09ICdtZWRpdW0nXCJcbiAgICAgICAgICBbY2xhc3MuaWNvbi1sYXJnZV09XCJpY29uU2l6ZSgpID09PSAnbGFyZ2UnXCJcbiAgICAgICAgICA+e3sgaWNvbigpIH19PC9zcGFuXG4gICAgICAgID5cbiAgICAgIH1cbiAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICA8L2J1dHRvbj5cbiAgYCxcbiAgc3R5bGVzOiBbXG4gICAgYFxuICAgICAgLyogU3R5bGVzIGRlIGJhc2UgcG91ciBsZXMgYm91dG9ucyBUaXB0YXAgKi9cbiAgICAgIC5hdGUtYnV0dG9uIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAzMnB4O1xuICAgICAgICBoZWlnaHQ6IDMycHg7XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWF0ZS1zdWItYm9yZGVyLXJhZGl1cywgOHB4KTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpO1xuICAgICAgICBjb2xvcjogdmFyKC0tYXRlLXRvb2xiYXItYnV0dG9uLWNvbG9yLCB2YXIoLS1hdGUtdGV4dC1zZWNvbmRhcnkpKTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgfVxuXG4gICAgICAuYXRlLWJ1dHRvbjo6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWF0ZS1wcmltYXJ5KTtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzIGVhc2U7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWF0ZS1zdWItYm9yZGVyLXJhZGl1cywgOHB4KTtcbiAgICAgIH1cblxuICAgICAgLmF0ZS1idXR0b246aG92ZXI6bm90KC5oYXMtY3VzdG9tLWNvbG9yKSB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1hdGUtdG9vbGJhci1idXR0b24tYWN0aXZlLWNvbG9yLCB2YXIoLS1hdGUtcHJpbWFyeSkpO1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1hdGUtdG9vbGJhci1idXR0b24taG92ZXItYmFja2dyb3VuZCwgdHJhbnNwYXJlbnQpO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTFweCk7XG4gICAgICB9XG5cbiAgICAgIC8qIElmIGhhcyBjdXN0b20gY29sb3IsIHdlIHN0aWxsIHdhbnQgdGhlIGhvdmVyIGJhY2tncm91bmQgYnV0IG5vdCB0aGUgY29sb3IgY2hhbmdlICovXG4gICAgICAuYXRlLWJ1dHRvbi5oYXMtY3VzdG9tLWNvbG9yOmhvdmVyOm5vdCguaGFzLWN1c3RvbS1iZykge1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1hdGUtdG9vbGJhci1idXR0b24taG92ZXItYmFja2dyb3VuZCwgdHJhbnNwYXJlbnQpO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTFweCk7XG4gICAgICB9XG5cbiAgICAgIC5hdGUtYnV0dG9uLmhhcy1jdXN0b20tYmc6aG92ZXIge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTFweCk7XG4gICAgICAgIGZpbHRlcjogYnJpZ2h0bmVzcygwLjkpO1xuICAgICAgfVxuXG4gICAgICAuYXRlLWJ1dHRvbjpob3Zlcjo6YmVmb3JlIHtcbiAgICAgICAgb3BhY2l0eTogMC4xO1xuICAgICAgfVxuXG4gICAgICAuYXRlLWJ1dHRvbjphY3RpdmUge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gICAgICB9XG5cbiAgICAgIC5hdGUtYnV0dG9uLmlzLWFjdGl2ZTpub3QoLmhhcy1jdXN0b20tY29sb3IpIHtcbiAgICAgICAgY29sb3I6IHZhcigtLWF0ZS10b29sYmFyLWJ1dHRvbi1hY3RpdmUtY29sb3IsIHZhcigtLWF0ZS1wcmltYXJ5KSk7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWF0ZS10b29sYmFyLWJ1dHRvbi1hY3RpdmUtYmFja2dyb3VuZCwgdmFyKC0tYXRlLXByaW1hcnktbGlnaHQpKTtcbiAgICAgIH1cblxuICAgICAgLyogSWYgaGFzIGN1c3RvbSBjb2xvciBhbmQgYWN0aXZlLCBwcmlvcml0aXplIHRoZSBjdXN0b20gY29sb3IgKi9cbiAgICAgIC5hdGUtYnV0dG9uLmlzLWFjdGl2ZS5oYXMtY3VzdG9tLWNvbG9yIHtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYXRlLXRvb2xiYXItYnV0dG9uLWFjdGl2ZS1iYWNrZ3JvdW5kLCB2YXIoLS1hdGUtcHJpbWFyeS1saWdodCkpO1xuICAgICAgfVxuXG4gICAgICAuYXRlLWJ1dHRvbjpkaXNhYmxlZCB7XG4gICAgICAgIG9wYWNpdHk6IDAuNDtcbiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICB9XG5cbiAgICAgIC8qIEljw7RuZXMgTWF0ZXJpYWwgU3ltYm9scyAqL1xuICAgICAgLmF0ZS1idXR0b24gLm1hdGVyaWFsLXN5bWJvbHMtb3V0bGluZWQge1xuICAgICAgICBmb250LXNpemU6IDIwcHg7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogMTtcbiAgICAgIH1cblxuICAgICAgLmF0ZS1idXR0b24gLm1hdGVyaWFsLXN5bWJvbHMtb3V0bGluZWQuaWNvbi1zbWFsbCB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICAgIH1cblxuICAgICAgLmF0ZS1idXR0b24gLm1hdGVyaWFsLXN5bWJvbHMtb3V0bGluZWQuaWNvbi1tZWRpdW0ge1xuICAgICAgICBmb250LXNpemU6IDIwcHg7XG4gICAgICB9XG5cbiAgICAgIC5hdGUtYnV0dG9uIC5tYXRlcmlhbC1zeW1ib2xzLW91dGxpbmVkLmljb24tbGFyZ2Uge1xuICAgICAgICBmb250LXNpemU6IDI0cHg7XG4gICAgICB9XG5cbiAgICAgIC8qIEJvdXRvbnMgYXZlYyB0ZXh0ZSAqL1xuICAgICAgLmF0ZS1idXR0b24udGV4dC1idXR0b24ge1xuICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgcGFkZGluZzogMCAxMnB4O1xuICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICAgIGdhcDogOHB4O1xuICAgICAgfVxuXG4gICAgICAvKiBCb3V0b25zIGRlIGNvdWxldXIgKi9cbiAgICAgIC5hdGUtYnV0dG9uLmNvbG9yLWJ1dHRvbiB7XG4gICAgICAgIHdpZHRoOiAyOHB4O1xuICAgICAgICBoZWlnaHQ6IDI4cHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgYm9yZGVyOiAycHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7XG4gICAgICB9XG5cbiAgICAgIC5hdGUtYnV0dG9uLmNvbG9yLWJ1dHRvbjpob3ZlciB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tYXRlLWJvcmRlcik7XG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4xKTtcbiAgICAgIH1cblxuICAgICAgLmF0ZS1idXR0b24uY29sb3ItYnV0dG9uLmlzLWFjdGl2ZSB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tYXRlLXByaW1hcnkpO1xuICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAycHggdmFyKC0tYXRlLXByaW1hcnktbGlnaHQpO1xuICAgICAgfVxuXG4gICAgICAvKiBCb3V0b25zIGF2ZWMgdmFyaWFudGVzICovXG4gICAgICAuYXRlLWJ1dHRvbi5kYW5nZXIge1xuICAgICAgICBjb2xvcjogdmFyKC0tYXRlLWVycm9yLWNvbG9yLCAjZWY0NDQ0KTtcbiAgICAgIH1cblxuICAgICAgLmF0ZS1idXR0b24uZGFuZ2VyOmhvdmVyIHtcbiAgICAgICAgY29sb3I6IHZhcigtLWF0ZS1lcnJvci1jb2xvciwgI2VmNDQ0NCk7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWF0ZS1lcnJvci1iZywgcmdiYSgyMzksIDY4LCA2OCwgMC4xKSk7XG4gICAgICB9XG5cbiAgICAgIC5hdGUtYnV0dG9uLmRhbmdlcjo6YmVmb3JlIHtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYXRlLWVycm9yLWNvbG9yLCAjZWY0NDQ0KTtcbiAgICAgIH1cblxuICAgICAgLyogQm91dG9ucyBkZSB0YWlsbGUgZGlmZsOpcmVudGUgKi9cbiAgICAgIC5hdGUtYnV0dG9uLnNtYWxsIHtcbiAgICAgICAgd2lkdGg6IDI0cHg7XG4gICAgICAgIGhlaWdodDogMjRweDtcbiAgICAgIH1cblxuICAgICAgLmF0ZS1idXR0b24ubWVkaXVtIHtcbiAgICAgICAgd2lkdGg6IDMycHg7XG4gICAgICAgIGhlaWdodDogMzJweDtcbiAgICAgIH1cblxuICAgICAgLmF0ZS1idXR0b24ubGFyZ2Uge1xuICAgICAgICB3aWR0aDogNDBweDtcbiAgICAgICAgaGVpZ2h0OiA0MHB4O1xuICAgICAgfVxuXG4gICAgICAvKiBBbmltYXRpb24gZGUgcHVsc2F0aW9uIHBvdXIgbGVzIGJvdXRvbnMgYWN0aWZzICovXG4gICAgICBAa2V5ZnJhbWVzIHB1bHNlIHtcbiAgICAgICAgMCUsXG4gICAgICAgIDEwMCUge1xuICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDAgdmFyKC0tYXRlLXByaW1hcnktbGlnaHQtYWxwaGEpO1xuICAgICAgICB9XG4gICAgICAgIDUwJSB7XG4gICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgNHB4IHRyYW5zcGFyZW50O1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC5hdGUtYnV0dG9uLmlzLWFjdGl2ZS5wdWxzZSB7XG4gICAgICAgIGFuaW1hdGlvbjogcHVsc2UgMnMgaW5maW5pdGU7XG4gICAgICB9XG5cbiAgICAgIC8qIFJlc3BvbnNpdmUgKi9cbiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAgICAgICAuYXRlLWJ1dHRvbiB7XG4gICAgICAgICAgd2lkdGg6IDMycHg7XG4gICAgICAgICAgaGVpZ2h0OiAzMnB4O1xuICAgICAgICB9XG5cbiAgICAgICAgLmF0ZS1idXR0b24gLm1hdGVyaWFsLXN5bWJvbHMtb3V0bGluZWQge1xuICAgICAgICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5hdGUtYnV0dG9uLnRleHQtYnV0dG9uIHtcbiAgICAgICAgICBwYWRkaW5nOiAwIDhweDtcbiAgICAgICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICBgLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBBdGVCdXR0b25Db21wb25lbnQge1xuICAvLyBJbnB1dHNcbiAgaWNvbiA9IGlucHV0PHN0cmluZz4oXCJcIik7XG4gIHRpdGxlID0gaW5wdXQucmVxdWlyZWQ8c3RyaW5nPigpO1xuICBhY3RpdmUgPSBpbnB1dChmYWxzZSwgeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSk7XG4gIGRpc2FibGVkID0gaW5wdXQoZmFsc2UsIHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pO1xuICBjb2xvciA9IGlucHV0PHN0cmluZz4oKTtcbiAgYmFja2dyb3VuZENvbG9yID0gaW5wdXQ8c3RyaW5nPigpO1xuICB2YXJpYW50ID0gaW5wdXQ8XCJkZWZhdWx0XCIgfCBcInRleHRcIiB8IFwiZGFuZ2VyXCI+KFwiZGVmYXVsdFwiKTtcbiAgc2l6ZSA9IGlucHV0PFwic21hbGxcIiB8IFwibWVkaXVtXCIgfCBcImxhcmdlXCI+KFwibWVkaXVtXCIpO1xuICBpY29uU2l6ZSA9IGlucHV0PFwic21hbGxcIiB8IFwibWVkaXVtXCIgfCBcImxhcmdlXCI+KFwibWVkaXVtXCIpO1xuXG4gIC8vIE91dHB1dHNcbiAgYnV0dG9uQ2xpY2sgPSBvdXRwdXQ8RXZlbnQ+KCk7XG5cbiAgb25Nb3VzZURvd24oZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICB9XG59XG4iXX0=
88
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXRlLWJ1dHRvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXRpcHRhcC1lZGl0b3Ivc3JjL2xpYi9jb21wb25lbnRzL3VpL2F0ZS1idXR0b24uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSx1QkFBdUIsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwRyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUM3RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7QUF3T3hELE1BQU0sT0FBTyxrQkFBa0I7SUEzTi9CO1FBNE5FLFNBQVM7UUFDVCxTQUFJLEdBQUcsS0FBSyxDQUFhLEVBQUUsQ0FBQyxDQUFDO1FBQzdCLFVBQUssR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFVLENBQUM7UUFDakMsV0FBTSxHQUFHLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZELGFBQVEsR0FBRyxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFLENBQUMsQ0FBQztRQUN6RCxVQUFLLEdBQUcsS0FBSyxFQUFVLENBQUM7UUFDeEIsb0JBQWUsR0FBRyxLQUFLLEVBQVUsQ0FBQztRQUNsQyxZQUFPLEdBQUcsS0FBSyxDQUFnQyxTQUFTLENBQUMsQ0FBQztRQUMxRCxTQUFJLEdBQUcsS0FBSyxDQUErQixRQUFRLENBQUMsQ0FBQztRQUNyRCxhQUFRLEdBQUcsS0FBSyxDQUErQixRQUFRLENBQUMsQ0FBQztRQUV6RCxVQUFVO1FBQ1YsZ0JBQVcsR0FBRyxNQUFNLEVBQVMsQ0FBQztLQUsvQjtJQUhDLFdBQVcsQ0FBQyxLQUFpQjtRQUMzQixLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDekIsQ0FBQzsrR0FqQlUsa0JBQWtCO21HQUFsQixrQkFBa0IscXVDQXRObkI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBNkJULG10RkE5QlMsbUJBQW1CLGlKQUFFLGdCQUFnQjs7NEZBdU5wQyxrQkFBa0I7a0JBM045QixTQUFTOytCQUNFLFlBQVksY0FDVixJQUFJLG1CQUNDLHVCQUF1QixDQUFDLE1BQU0sV0FDdEMsQ0FBQyxtQkFBbUIsRUFBRSxnQkFBZ0IsQ0FBQyxZQUN0Qzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E2QlQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGlucHV0LCBvdXRwdXQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBib29sZWFuQXR0cmlidXRlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEF0ZVRvb2x0aXBEaXJlY3RpdmUgfSBmcm9tIFwiLi4vLi4vZGlyZWN0aXZlcy9hdGUtdG9vbHRpcC5kaXJlY3RpdmVcIjtcbmltcG9ydCB7IEF0ZUljb25Db21wb25lbnQgfSBmcm9tIFwiLi9hdGUtaWNvbi5jb21wb25lbnRcIjtcbmltcG9ydCB7IEF0ZUljb25LZXkgfSBmcm9tIFwiLi4vLi4vc2VydmljZXMvYXRlLWljb24tcmVnaXN0cnkuc2VydmljZVwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIEF0ZUJ1dHRvbkNvbmZpZyB7XG4gIGljb246IEF0ZUljb25LZXk7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIGFjdGl2ZT86IGJvb2xlYW47XG4gIGRpc2FibGVkPzogYm9vbGVhbjtcbiAgdmFyaWFudD86IFwiZGVmYXVsdFwiIHwgXCJ0ZXh0XCIgfCBcImRhbmdlclwiO1xuICBzaXplPzogXCJzbWFsbFwiIHwgXCJtZWRpdW1cIiB8IFwibGFyZ2VcIjtcbiAgaWNvblNpemU/OiBcInNtYWxsXCIgfCBcIm1lZGl1bVwiIHwgXCJsYXJnZVwiO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6IFwiYXRlLWJ1dHRvblwiLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaW1wb3J0czogW0F0ZVRvb2x0aXBEaXJlY3RpdmUsIEF0ZUljb25Db21wb25lbnRdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxidXR0b25cbiAgICAgIGNsYXNzPVwiYXRlLWJ1dHRvblwiXG4gICAgICBbY2xhc3MuaXMtYWN0aXZlXT1cImFjdGl2ZSgpXCJcbiAgICAgIFtjbGFzcy5pcy1kaXNhYmxlZF09XCJkaXNhYmxlZCgpXCJcbiAgICAgIFtjbGFzcy50ZXh0LWJ1dHRvbl09XCJ2YXJpYW50KCkgPT09ICd0ZXh0J1wiXG4gICAgICBbY2xhc3MuZGFuZ2VyXT1cInZhcmlhbnQoKSA9PT0gJ2RhbmdlcidcIlxuICAgICAgW2NsYXNzLnNtYWxsXT1cInNpemUoKSA9PT0gJ3NtYWxsJ1wiXG4gICAgICBbY2xhc3MubWVkaXVtXT1cInNpemUoKSA9PT0gJ21lZGl1bSdcIlxuICAgICAgW2NsYXNzLmxhcmdlXT1cInNpemUoKSA9PT0gJ2xhcmdlJ1wiXG4gICAgICBbY2xhc3MuaGFzLWN1c3RvbS1jb2xvcl09XCIhIWNvbG9yKClcIlxuICAgICAgW2NsYXNzLmhhcy1jdXN0b20tYmddPVwiISFiYWNrZ3JvdW5kQ29sb3IoKVwiXG4gICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWQoKVwiXG4gICAgICBbc3R5bGUuY29sb3JdPVwiY29sb3IoKVwiXG4gICAgICBbc3R5bGUuYmFja2dyb3VuZC1jb2xvcl09XCJiYWNrZ3JvdW5kQ29sb3IoKVwiXG4gICAgICBbYXRlVG9vbHRpcF09XCJ0aXRsZSgpXCJcbiAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwidGl0bGUoKVwiXG4gICAgICAobW91c2Vkb3duKT1cIm9uTW91c2VEb3duKCRldmVudClcIlxuICAgICAgKGNsaWNrKT1cImJ1dHRvbkNsaWNrLmVtaXQoJGV2ZW50KVwiXG4gICAgICB0eXBlPVwiYnV0dG9uXCI+XG4gICAgICBAaWYgKGljb24oKSkge1xuICAgICAgICA8YXRlLWljb25cbiAgICAgICAgICBbbmFtZV09XCJpY29uKClcIlxuICAgICAgICAgIFtjbGFzcy5pY29uLXNtYWxsXT1cImljb25TaXplKCkgPT09ICdzbWFsbCdcIlxuICAgICAgICAgIFtjbGFzcy5pY29uLW1lZGl1bV09XCJpY29uU2l6ZSgpID09PSAnbWVkaXVtJ1wiXG4gICAgICAgICAgW2NsYXNzLmljb24tbGFyZ2VdPVwiaWNvblNpemUoKSA9PT0gJ2xhcmdlJ1wiIC8+XG4gICAgICB9XG4gICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgPC9idXR0b24+XG4gIGAsXG4gIHN0eWxlczogW1xuICAgIGBcbiAgICAgIC8qIFN0eWxlcyBkZSBiYXNlIHBvdXIgbGVzIGJvdXRvbnMgVGlwdGFwICovXG4gICAgICAuYXRlLWJ1dHRvbiB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB3aWR0aDogMzJweDtcbiAgICAgICAgaGVpZ2h0OiAzMnB4O1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1hdGUtc3ViLWJvcmRlci1yYWRpdXMsIDhweCk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTtcbiAgICAgICAgY29sb3I6IHZhcigtLWF0ZS10b29sYmFyLWJ1dHRvbi1jb2xvciwgdmFyKC0tYXRlLXRleHQtc2Vjb25kYXJ5KSk7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgIH1cblxuICAgICAgLmF0ZS1idXR0b246OmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1hdGUtcHJpbWFyeSk7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBlYXNlO1xuICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1hdGUtc3ViLWJvcmRlci1yYWRpdXMsIDhweCk7XG4gICAgICB9XG5cbiAgICAgIC5hdGUtYnV0dG9uOmhvdmVyOm5vdCguaGFzLWN1c3RvbS1jb2xvcikge1xuICAgICAgICBjb2xvcjogdmFyKC0tYXRlLXRvb2xiYXItYnV0dG9uLWFjdGl2ZS1jb2xvciwgdmFyKC0tYXRlLXByaW1hcnkpKTtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYXRlLXRvb2xiYXItYnV0dG9uLWhvdmVyLWJhY2tncm91bmQsIHRyYW5zcGFyZW50KTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xcHgpO1xuICAgICAgfVxuXG4gICAgICAvKiBJZiBoYXMgY3VzdG9tIGNvbG9yLCB3ZSBzdGlsbCB3YW50IHRoZSBob3ZlciBiYWNrZ3JvdW5kIGJ1dCBub3QgdGhlIGNvbG9yIGNoYW5nZSAqL1xuICAgICAgLmF0ZS1idXR0b24uaGFzLWN1c3RvbS1jb2xvcjpob3Zlcjpub3QoLmhhcy1jdXN0b20tYmcpIHtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYXRlLXRvb2xiYXItYnV0dG9uLWhvdmVyLWJhY2tncm91bmQsIHRyYW5zcGFyZW50KTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xcHgpO1xuICAgICAgfVxuXG4gICAgICAuYXRlLWJ1dHRvbi5oYXMtY3VzdG9tLWJnOmhvdmVyIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xcHgpO1xuICAgICAgICBmaWx0ZXI6IGJyaWdodG5lc3MoMC45KTtcbiAgICAgIH1cblxuICAgICAgLmF0ZS1idXR0b246aG92ZXI6OmJlZm9yZSB7XG4gICAgICAgIG9wYWNpdHk6IDAuMTtcbiAgICAgIH1cblxuICAgICAgLmF0ZS1idXR0b246YWN0aXZlIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICAgICAgfVxuXG4gICAgICAuYXRlLWJ1dHRvbi5pcy1hY3RpdmU6bm90KC5oYXMtY3VzdG9tLWNvbG9yKSB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1hdGUtdG9vbGJhci1idXR0b24tYWN0aXZlLWNvbG9yLCB2YXIoLS1hdGUtcHJpbWFyeSkpO1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1hdGUtdG9vbGJhci1idXR0b24tYWN0aXZlLWJhY2tncm91bmQsIHZhcigtLWF0ZS1wcmltYXJ5LWxpZ2h0KSk7XG4gICAgICB9XG5cbiAgICAgIC8qIElmIGhhcyBjdXN0b20gY29sb3IgYW5kIGFjdGl2ZSwgcHJpb3JpdGl6ZSB0aGUgY3VzdG9tIGNvbG9yICovXG4gICAgICAuYXRlLWJ1dHRvbi5pcy1hY3RpdmUuaGFzLWN1c3RvbS1jb2xvciB7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWF0ZS10b29sYmFyLWJ1dHRvbi1hY3RpdmUtYmFja2dyb3VuZCwgdmFyKC0tYXRlLXByaW1hcnktbGlnaHQpKTtcbiAgICAgIH1cblxuICAgICAgLmF0ZS1idXR0b246ZGlzYWJsZWQge1xuICAgICAgICBvcGFjaXR5OiAwLjQ7XG4gICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgfVxuXG4gICAgICAvKiBJY8O0bmVzIE1hdGVyaWFsIFN5bWJvbHMgKi9cbiAgICAgIC5hdGUtYnV0dG9uIC5hdGUtaWNvbiB7XG4gICAgICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAxO1xuICAgICAgfVxuXG4gICAgICAuYXRlLWJ1dHRvbiAuYXRlLWljb24uaWNvbi1zbWFsbCB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICAgIH1cblxuICAgICAgLmF0ZS1idXR0b24gLmF0ZS1pY29uLmljb24tbWVkaXVtIHtcbiAgICAgICAgZm9udC1zaXplOiAyMHB4O1xuICAgICAgfVxuXG4gICAgICAuYXRlLWJ1dHRvbiAuYXRlLWljb24uaWNvbi1sYXJnZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMjRweDtcbiAgICAgIH1cblxuICAgICAgLyogQm91dG9ucyBhdmVjIHRleHRlICovXG4gICAgICAuYXRlLWJ1dHRvbi50ZXh0LWJ1dHRvbiB7XG4gICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICBwYWRkaW5nOiAwIDEycHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgICAgZ2FwOiA4cHg7XG4gICAgICB9XG5cbiAgICAgIC8qIEJvdXRvbnMgZGUgY291bGV1ciAqL1xuICAgICAgLmF0ZS1idXR0b24uY29sb3ItYnV0dG9uIHtcbiAgICAgICAgd2lkdGg6IDI4cHg7XG4gICAgICAgIGhlaWdodDogMjhweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICBib3JkZXI6IDJweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTtcbiAgICAgIH1cblxuICAgICAgLmF0ZS1idXR0b24uY29sb3ItYnV0dG9uOmhvdmVyIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1hdGUtYm9yZGVyKTtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjEpO1xuICAgICAgfVxuXG4gICAgICAuYXRlLWJ1dHRvbi5jb2xvci1idXR0b24uaXMtYWN0aXZlIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1hdGUtcHJpbWFyeSk7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCB2YXIoLS1hdGUtcHJpbWFyeS1saWdodCk7XG4gICAgICB9XG5cbiAgICAgIC8qIEJvdXRvbnMgYXZlYyB2YXJpYW50ZXMgKi9cbiAgICAgIC5hdGUtYnV0dG9uLmRhbmdlciB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1hdGUtZXJyb3ItY29sb3IsICNlZjQ0NDQpO1xuICAgICAgfVxuXG4gICAgICAuYXRlLWJ1dHRvbi5kYW5nZXI6aG92ZXIge1xuICAgICAgICBjb2xvcjogdmFyKC0tYXRlLWVycm9yLWNvbG9yLCAjZWY0NDQ0KTtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYXRlLWVycm9yLWJnLCByZ2JhKDIzOSwgNjgsIDY4LCAwLjEpKTtcbiAgICAgIH1cblxuICAgICAgLmF0ZS1idXR0b24uZGFuZ2VyOjpiZWZvcmUge1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1hdGUtZXJyb3ItY29sb3IsICNlZjQ0NDQpO1xuICAgICAgfVxuXG4gICAgICAvKiBCb3V0b25zIGRlIHRhaWxsZSBkaWZmw6lyZW50ZSAqL1xuICAgICAgLmF0ZS1idXR0b24uc21hbGwge1xuICAgICAgICB3aWR0aDogMjRweDtcbiAgICAgICAgaGVpZ2h0OiAyNHB4O1xuICAgICAgfVxuXG4gICAgICAuYXRlLWJ1dHRvbi5tZWRpdW0ge1xuICAgICAgICB3aWR0aDogMzJweDtcbiAgICAgICAgaGVpZ2h0OiAzMnB4O1xuICAgICAgfVxuXG4gICAgICAuYXRlLWJ1dHRvbi5sYXJnZSB7XG4gICAgICAgIHdpZHRoOiA0MHB4O1xuICAgICAgICBoZWlnaHQ6IDQwcHg7XG4gICAgICB9XG5cbiAgICAgIC8qIEFuaW1hdGlvbiBkZSBwdWxzYXRpb24gcG91ciBsZXMgYm91dG9ucyBhY3RpZnMgKi9cbiAgICAgIEBrZXlmcmFtZXMgcHVsc2Uge1xuICAgICAgICAwJSxcbiAgICAgICAgMTAwJSB7XG4gICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMCB2YXIoLS1hdGUtcHJpbWFyeS1saWdodC1hbHBoYSk7XG4gICAgICAgIH1cbiAgICAgICAgNTAlIHtcbiAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCA0cHggdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLmF0ZS1idXR0b24uaXMtYWN0aXZlLnB1bHNlIHtcbiAgICAgICAgYW5pbWF0aW9uOiBwdWxzZSAycyBpbmZpbml0ZTtcbiAgICAgIH1cblxuICAgICAgLyogUmVzcG9uc2l2ZSAqL1xuICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICAgICAgIC5hdGUtYnV0dG9uIHtcbiAgICAgICAgICB3aWR0aDogMzJweDtcbiAgICAgICAgICBoZWlnaHQ6IDMycHg7XG4gICAgICAgIH1cblxuICAgICAgICAuYXRlLWJ1dHRvbiAuYXRlLWljb24ge1xuICAgICAgICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5hdGUtYnV0dG9uLnRleHQtYnV0dG9uIHtcbiAgICAgICAgICBwYWRkaW5nOiAwIDhweDtcbiAgICAgICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICBgLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBBdGVCdXR0b25Db21wb25lbnQge1xuICAvLyBJbnB1dHNcbiAgaWNvbiA9IGlucHV0PEF0ZUljb25LZXk+KFwiXCIpO1xuICB0aXRsZSA9IGlucHV0LnJlcXVpcmVkPHN0cmluZz4oKTtcbiAgYWN0aXZlID0gaW5wdXQoZmFsc2UsIHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pO1xuICBkaXNhYmxlZCA9IGlucHV0KGZhbHNlLCB7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KTtcbiAgY29sb3IgPSBpbnB1dDxzdHJpbmc+KCk7XG4gIGJhY2tncm91bmRDb2xvciA9IGlucHV0PHN0cmluZz4oKTtcbiAgdmFyaWFudCA9IGlucHV0PFwiZGVmYXVsdFwiIHwgXCJ0ZXh0XCIgfCBcImRhbmdlclwiPihcImRlZmF1bHRcIik7XG4gIHNpemUgPSBpbnB1dDxcInNtYWxsXCIgfCBcIm1lZGl1bVwiIHwgXCJsYXJnZVwiPihcIm1lZGl1bVwiKTtcbiAgaWNvblNpemUgPSBpbnB1dDxcInNtYWxsXCIgfCBcIm1lZGl1bVwiIHwgXCJsYXJnZVwiPihcIm1lZGl1bVwiKTtcblxuICAvLyBPdXRwdXRzXG4gIGJ1dHRvbkNsaWNrID0gb3V0cHV0PEV2ZW50PigpO1xuXG4gIG9uTW91c2VEb3duKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgfVxufVxuIl19
@@ -0,0 +1,31 @@
1
+ import { Component, ChangeDetectionStrategy, ViewEncapsulation, computed, inject, input, } from "@angular/core";
2
+ import { DomSanitizer } from "@angular/platform-browser";
3
+ import { AteIconRegistry } from "../../services/ate-icon-registry.service";
4
+ import * as i0 from "@angular/core";
5
+ /**
6
+ * Renders an icon from the AteIconRegistry as inline SVG,
7
+ * or with the Material Symbols font when the name is not registered.
8
+ * Its size follows the `font-size` (1em). Library icons are filled with `currentColor`;
9
+ * a full custom `<svg>` keeps its own `fill` and `stroke` attributes.
10
+ */
11
+ export class AteIconComponent {
12
+ constructor() {
13
+ this.registry = inject(AteIconRegistry);
14
+ this.sanitizer = inject(DomSanitizer);
15
+ /** Library icon, icon registered with provideAteIcons, or Material Symbols name (font) */
16
+ this.name = input.required();
17
+ // Icons come from the library or from the developer, never from user content
18
+ this.content = computed(() => this.sanitizer.bypassSecurityTrustHtml(this.registry.markup(this.name())));
19
+ }
20
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AteIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
21
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.14", type: AteIconComponent, isStandalone: true, selector: "ate-icon", inputs: { name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: true, transformFunction: null } }, host: { attributes: { "aria-hidden": "true" }, properties: { "innerHTML": "content()" }, classAttribute: "ate-icon" }, ngImport: i0, template: "", isInline: true, styles: [".ate-icon{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:1em;height:1em;font-size:24px;line-height:1}.ate-icon>svg{display:block;width:100%;height:100%}.ate-icon>.material-symbols-outlined{font-size:inherit}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
22
+ }
23
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AteIconComponent, decorators: [{
24
+ type: Component,
25
+ args: [{ selector: "ate-icon", standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
26
+ class: "ate-icon",
27
+ "aria-hidden": "true",
28
+ "[innerHTML]": "content()",
29
+ }, template: "", styles: [".ate-icon{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:1em;height:1em;font-size:24px;line-height:1}.ate-icon>svg{display:block;width:100%;height:100%}.ate-icon>.material-symbols-outlined{font-size:inherit}\n"] }]
30
+ }] });
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXRlLWljb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci10aXB0YXAtZWRpdG9yL3NyYy9saWIvY29tcG9uZW50cy91aS9hdGUtaWNvbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFFBQVEsRUFDUixNQUFNLEVBQ04sS0FBSyxHQUNOLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN6RCxPQUFPLEVBQWMsZUFBZSxFQUFFLE1BQU0sMENBQTBDLENBQUM7O0FBRXZGOzs7OztHQUtHO0FBc0NILE1BQU0sT0FBTyxnQkFBZ0I7SUFyQzdCO1FBc0NtQixhQUFRLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ25DLGNBQVMsR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7UUFFbEQsMEZBQTBGO1FBQzFGLFNBQUksR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFjLENBQUM7UUFFcEMsNkVBQTZFO1FBQ3BFLFlBQU8sR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQy9CLElBQUksQ0FBQyxTQUFTLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FDMUUsQ0FBQztLQUNIOytHQVhZLGdCQUFnQjttR0FBaEIsZ0JBQWdCLDJUQTFCakIsRUFBRTs7NEZBMEJELGdCQUFnQjtrQkFyQzVCLFNBQVM7K0JBQ0UsVUFBVSxjQUNSLElBQUksbUJBQ0MsdUJBQXVCLENBQUMsTUFBTSxpQkFFaEMsaUJBQWlCLENBQUMsSUFBSSxRQUMvQjt3QkFDSixLQUFLLEVBQUUsVUFBVTt3QkFDakIsYUFBYSxFQUFFLE1BQU07d0JBQ3JCLGFBQWEsRUFBRSxXQUFXO3FCQUMzQixZQUNTLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgY29tcHV0ZWQsXG4gIGluamVjdCxcbiAgaW5wdXQsXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIgfSBmcm9tIFwiQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3NlclwiO1xuaW1wb3J0IHsgQXRlSWNvbktleSwgQXRlSWNvblJlZ2lzdHJ5IH0gZnJvbSBcIi4uLy4uL3NlcnZpY2VzL2F0ZS1pY29uLXJlZ2lzdHJ5LnNlcnZpY2VcIjtcblxuLyoqXG4gKiBSZW5kZXJzIGFuIGljb24gZnJvbSB0aGUgQXRlSWNvblJlZ2lzdHJ5IGFzIGlubGluZSBTVkcsXG4gKiBvciB3aXRoIHRoZSBNYXRlcmlhbCBTeW1ib2xzIGZvbnQgd2hlbiB0aGUgbmFtZSBpcyBub3QgcmVnaXN0ZXJlZC5cbiAqIEl0cyBzaXplIGZvbGxvd3MgdGhlIGBmb250LXNpemVgICgxZW0pLiBMaWJyYXJ5IGljb25zIGFyZSBmaWxsZWQgd2l0aCBgY3VycmVudENvbG9yYDtcbiAqIGEgZnVsbCBjdXN0b20gYDxzdmc+YCBrZWVwcyBpdHMgb3duIGBmaWxsYCBhbmQgYHN0cm9rZWAgYXR0cmlidXRlcy5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiBcImF0ZS1pY29uXCIsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAvLyBUaGUgU1ZHIGlzIGluamVjdGVkIGFzIEhUTUw6IGl0cyBzdHlsZXMgY2Fubm90IGJlIHNjb3BlZCB0byB0aGUgY29tcG9uZW50XG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGhvc3Q6IHtcbiAgICBjbGFzczogXCJhdGUtaWNvblwiLFxuICAgIFwiYXJpYS1oaWRkZW5cIjogXCJ0cnVlXCIsXG4gICAgXCJbaW5uZXJIVE1MXVwiOiBcImNvbnRlbnQoKVwiLFxuICB9LFxuICB0ZW1wbGF0ZTogXCJcIixcbiAgc3R5bGVzOiBbXG4gICAgYFxuICAgICAgLmF0ZS1pY29uIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgd2lkdGg6IDFlbTtcbiAgICAgICAgaGVpZ2h0OiAxZW07XG4gICAgICAgIGZvbnQtc2l6ZTogMjRweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICB9XG5cbiAgICAgIC5hdGUtaWNvbiA+IHN2ZyB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgfVxuXG4gICAgICAuYXRlLWljb24gPiAubWF0ZXJpYWwtc3ltYm9scy1vdXRsaW5lZCB7XG4gICAgICAgIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgICAgIH1cbiAgICBgLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBBdGVJY29uQ29tcG9uZW50IHtcbiAgcHJpdmF0ZSByZWFkb25seSByZWdpc3RyeSA9IGluamVjdChBdGVJY29uUmVnaXN0cnkpO1xuICBwcml2YXRlIHJlYWRvbmx5IHNhbml0aXplciA9IGluamVjdChEb21TYW5pdGl6ZXIpO1xuXG4gIC8qKiBMaWJyYXJ5IGljb24sIGljb24gcmVnaXN0ZXJlZCB3aXRoIHByb3ZpZGVBdGVJY29ucywgb3IgTWF0ZXJpYWwgU3ltYm9scyBuYW1lIChmb250KSAqL1xuICBuYW1lID0gaW5wdXQucmVxdWlyZWQ8QXRlSWNvbktleT4oKTtcblxuICAvLyBJY29ucyBjb21lIGZyb20gdGhlIGxpYnJhcnkgb3IgZnJvbSB0aGUgZGV2ZWxvcGVyLCBuZXZlciBmcm9tIHVzZXIgY29udGVudFxuICByZWFkb25seSBjb250ZW50ID0gY29tcHV0ZWQoKCkgPT5cbiAgICB0aGlzLnNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0SHRtbCh0aGlzLnJlZ2lzdHJ5Lm1hcmt1cCh0aGlzLm5hbWUoKSkpXG4gICk7XG59XG4iXX0=