@tolle_/tolle-ui 18.2.28 → 18.2.30

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 (279) hide show
  1. package/esm2022/lib/accordion-item.component.mjs +5 -11
  2. package/esm2022/lib/accordion.component.mjs +4 -9
  3. package/esm2022/lib/alert-dialog-dynamic.component.mjs +5 -10
  4. package/esm2022/lib/alert-dialog.component.mjs +44 -59
  5. package/esm2022/lib/alert.component.mjs +5 -11
  6. package/esm2022/lib/aspect-ratio.component.mjs +119 -0
  7. package/esm2022/lib/attachment.component.mjs +334 -0
  8. package/esm2022/lib/avatar-fallback.component.mjs +3 -3
  9. package/esm2022/lib/avatar.component.mjs +4 -9
  10. package/esm2022/lib/badge.component.mjs +4 -9
  11. package/esm2022/lib/breadcrumb-item.component.mjs +3 -3
  12. package/esm2022/lib/breadcrumb-link.component.mjs +3 -3
  13. package/esm2022/lib/breadcrumb-separator.component.mjs +3 -3
  14. package/esm2022/lib/breadcrumb.component.mjs +3 -3
  15. package/esm2022/lib/bubble.component.mjs +301 -0
  16. package/esm2022/lib/button.component.mjs +5 -11
  17. package/esm2022/lib/calendar.component.mjs +5 -11
  18. package/esm2022/lib/card.component.mjs +14 -43
  19. package/esm2022/lib/carousel/carousel.component.mjs +5 -12
  20. package/esm2022/lib/chain-of-thought.component.mjs +380 -0
  21. package/esm2022/lib/chart-pie.component.mjs +386 -0
  22. package/esm2022/lib/chart.component.mjs +1146 -0
  23. package/esm2022/lib/chart.service.mjs +555 -0
  24. package/esm2022/lib/checkbox.component.mjs +5 -11
  25. package/esm2022/lib/checkpoint.component.mjs +134 -0
  26. package/esm2022/lib/collapsible.component.mjs +4 -11
  27. package/esm2022/lib/combobox.component.mjs +372 -0
  28. package/esm2022/lib/command-dialog.component.mjs +164 -0
  29. package/esm2022/lib/command.component.mjs +514 -0
  30. package/esm2022/lib/command.service.mjs +130 -0
  31. package/esm2022/lib/confirmation.component.mjs +219 -0
  32. package/esm2022/lib/context-menu-trigger.directive.mjs +36 -0
  33. package/esm2022/lib/context-menu.component.mjs +460 -0
  34. package/esm2022/lib/context-menu.service.mjs +121 -0
  35. package/esm2022/lib/context.component.mjs +377 -0
  36. package/esm2022/lib/conversation.component.mjs +442 -0
  37. package/esm2022/lib/country-selector.component.mjs +5 -11
  38. package/esm2022/lib/data-table.component.mjs +63 -12
  39. package/esm2022/lib/date-picker.component.mjs +251 -198
  40. package/esm2022/lib/date-range-picker.component.mjs +224 -116
  41. package/esm2022/lib/date-time-picker.component.mjs +506 -0
  42. package/esm2022/lib/direction.component.mjs +79 -0
  43. package/esm2022/lib/dropdown-item.component.mjs +3 -3
  44. package/esm2022/lib/dropdown-label.component.mjs +3 -3
  45. package/esm2022/lib/dropdown-menu.component.mjs +3 -3
  46. package/esm2022/lib/dropdown-separator.component.mjs +3 -3
  47. package/esm2022/lib/dropdown-trigger.directive.mjs +6 -4
  48. package/esm2022/lib/empty-state.component.mjs +4 -9
  49. package/esm2022/lib/field.component.mjs +394 -0
  50. package/esm2022/lib/hover-card.component.mjs +6 -16
  51. package/esm2022/lib/inline-citation.component.mjs +263 -0
  52. package/esm2022/lib/input-group.component.mjs +418 -0
  53. package/esm2022/lib/input.component.mjs +5 -11
  54. package/esm2022/lib/item.component.mjs +243 -0
  55. package/esm2022/lib/kbd.component.mjs +82 -0
  56. package/esm2022/lib/label.component.mjs +4 -9
  57. package/esm2022/lib/marker.component.mjs +135 -0
  58. package/esm2022/lib/masked-input.component.mjs +5 -11
  59. package/esm2022/lib/menubar.component.mjs +683 -0
  60. package/esm2022/lib/message-scroller.component.mjs +353 -0
  61. package/esm2022/lib/message-scroller.service.mjs +157 -0
  62. package/esm2022/lib/message.component.mjs +228 -0
  63. package/esm2022/lib/model-selector.component.mjs +310 -0
  64. package/esm2022/lib/multi-select.component.mjs +155 -72
  65. package/esm2022/lib/native-select.component.mjs +201 -0
  66. package/esm2022/lib/navigation-menu.component.mjs +642 -0
  67. package/esm2022/lib/otp-group.component.mjs +3 -3
  68. package/esm2022/lib/otp-slot.component.mjs +4 -9
  69. package/esm2022/lib/otp.component.mjs +5 -11
  70. package/esm2022/lib/pagination.component.mjs +7 -10
  71. package/esm2022/lib/plan.component.mjs +335 -0
  72. package/esm2022/lib/popover-content.component.mjs +4 -9
  73. package/esm2022/lib/popover.component.mjs +15 -13
  74. package/esm2022/lib/progress.component.mjs +4 -9
  75. package/esm2022/lib/prompt-input.component.mjs +526 -0
  76. package/esm2022/lib/queue.component.mjs +280 -0
  77. package/esm2022/lib/radio-group.component.mjs +6 -13
  78. package/esm2022/lib/radio-item.component.mjs +4 -9
  79. package/esm2022/lib/range-calendar.component.mjs +5 -11
  80. package/esm2022/lib/reasoning.component.mjs +335 -0
  81. package/esm2022/lib/resizable.component.mjs +219 -0
  82. package/esm2022/lib/segment.component.mjs +17 -7
  83. package/esm2022/lib/select-group.component.mjs +4 -8
  84. package/esm2022/lib/select-item.component.mjs +4 -9
  85. package/esm2022/lib/select-separator.component.mjs +4 -8
  86. package/esm2022/lib/select.component.mjs +133 -49
  87. package/esm2022/lib/separator.component.mjs +4 -9
  88. package/esm2022/lib/sheet.component.mjs +38 -56
  89. package/esm2022/lib/shimmer.component.mjs +84 -0
  90. package/esm2022/lib/sidebar.component.mjs +11 -1
  91. package/esm2022/lib/skeleton.component.mjs +4 -9
  92. package/esm2022/lib/sources.component.mjs +452 -0
  93. package/esm2022/lib/spinner.component.mjs +68 -0
  94. package/esm2022/lib/suggestion.component.mjs +207 -0
  95. package/esm2022/lib/switch.component.mjs +5 -11
  96. package/esm2022/lib/table.component.mjs +213 -0
  97. package/esm2022/lib/tabs.component.mjs +4 -11
  98. package/esm2022/lib/tag-input.component.mjs +5 -11
  99. package/esm2022/lib/task.component.mjs +359 -0
  100. package/esm2022/lib/textarea.component.mjs +5 -11
  101. package/esm2022/lib/theme.service.mjs +17 -6
  102. package/esm2022/lib/time-picker.component.mjs +923 -0
  103. package/esm2022/lib/toast.service.mjs +3 -2
  104. package/esm2022/lib/toaster.component.mjs +76 -39
  105. package/esm2022/lib/toggle-group.component.mjs +4 -9
  106. package/esm2022/lib/toggle.component.mjs +5 -11
  107. package/esm2022/lib/tool.component.mjs +462 -0
  108. package/esm2022/lib/typography.component.mjs +83 -0
  109. package/esm2022/lib/utils/color.mjs +140 -19
  110. package/esm2022/public-api.mjs +61 -1
  111. package/fesm2022/tolle-ui.mjs +16457 -1024
  112. package/fesm2022/tolle-ui.mjs.map +1 -1
  113. package/lib/alert-dialog.component.d.ts +10 -2
  114. package/lib/aspect-ratio.component.d.ts +20 -0
  115. package/lib/attachment.component.d.ts +101 -0
  116. package/lib/bubble.component.d.ts +112 -0
  117. package/lib/chain-of-thought.component.d.ts +166 -0
  118. package/lib/chart-pie.component.d.ts +108 -0
  119. package/lib/chart.component.d.ts +369 -0
  120. package/lib/chart.service.d.ts +222 -0
  121. package/lib/checkpoint.component.d.ts +51 -0
  122. package/lib/combobox.component.d.ts +90 -0
  123. package/lib/command-dialog.component.d.ts +53 -0
  124. package/lib/command.component.d.ts +189 -0
  125. package/lib/command.service.d.ts +67 -0
  126. package/lib/confirmation.component.d.ts +70 -0
  127. package/lib/context-menu-trigger.directive.d.ts +12 -0
  128. package/lib/context-menu.component.d.ts +41 -0
  129. package/lib/context-menu.service.d.ts +38 -0
  130. package/lib/context.component.d.ts +134 -0
  131. package/lib/conversation.component.d.ts +165 -0
  132. package/lib/data-table.component.d.ts +27 -1
  133. package/lib/date-picker.component.d.ts +72 -11
  134. package/lib/date-range-picker.component.d.ts +63 -6
  135. package/lib/date-time-picker.component.d.ts +119 -0
  136. package/lib/direction.component.d.ts +45 -0
  137. package/lib/field.component.d.ts +201 -0
  138. package/lib/inline-citation.component.d.ts +103 -0
  139. package/lib/input-group.component.d.ts +150 -0
  140. package/lib/item.component.d.ts +154 -0
  141. package/lib/kbd.component.d.ts +50 -0
  142. package/lib/marker.component.d.ts +58 -0
  143. package/lib/menubar.component.d.ts +247 -0
  144. package/lib/message-scroller.component.d.ts +159 -0
  145. package/lib/message-scroller.service.d.ts +73 -0
  146. package/lib/message.component.d.ts +128 -0
  147. package/lib/model-selector.component.d.ts +103 -0
  148. package/lib/multi-select.component.d.ts +66 -14
  149. package/lib/native-select.component.d.ts +57 -0
  150. package/lib/navigation-menu.component.d.ts +230 -0
  151. package/lib/plan.component.d.ts +120 -0
  152. package/lib/popover.component.d.ts +1 -0
  153. package/lib/prompt-input.component.d.ts +194 -0
  154. package/lib/queue.component.d.ts +106 -0
  155. package/lib/reasoning.component.d.ts +127 -0
  156. package/lib/resizable.component.d.ts +43 -0
  157. package/lib/segment.component.d.ts +13 -3
  158. package/lib/select.component.d.ts +37 -5
  159. package/lib/sheet.component.d.ts +3 -0
  160. package/lib/shimmer.component.d.ts +38 -0
  161. package/lib/sidebar.component.d.ts +2 -0
  162. package/lib/sources.component.d.ts +156 -0
  163. package/lib/spinner.component.d.ts +29 -0
  164. package/lib/suggestion.component.d.ts +96 -0
  165. package/lib/table.component.d.ts +106 -0
  166. package/lib/task.component.d.ts +151 -0
  167. package/lib/theme.service.d.ts +9 -0
  168. package/lib/time-picker.component.d.ts +243 -0
  169. package/lib/toast.service.d.ts +3 -1
  170. package/lib/toaster.component.d.ts +26 -9
  171. package/lib/tool.component.d.ts +158 -0
  172. package/lib/typography.component.d.ts +32 -0
  173. package/lib/utils/color.d.ts +19 -5
  174. package/package.json +1 -1
  175. package/public-api.d.ts +50 -0
  176. package/registry/docs-content.json +8497 -1553
  177. package/registry/llms-full.txt +2679 -318
  178. package/registry/llms.txt +43 -4
  179. package/registry/manifest.json +9093 -1739
  180. package/registry/r/accordion-item.json +1 -1
  181. package/registry/r/accordion.json +1 -1
  182. package/registry/r/alert-dialog-dynamic.json +1 -1
  183. package/registry/r/alert-dialog.json +1 -1
  184. package/registry/r/alert.json +1 -1
  185. package/registry/r/attachment.json +23 -0
  186. package/registry/r/avatar-fallback.json +1 -1
  187. package/registry/r/avatar.json +1 -1
  188. package/registry/r/badge.json +1 -1
  189. package/registry/r/breadcrumb-item.json +1 -1
  190. package/registry/r/breadcrumb-link.json +1 -1
  191. package/registry/r/breadcrumb-separator.json +1 -1
  192. package/registry/r/breadcrumb.json +1 -1
  193. package/registry/r/bubble.json +23 -0
  194. package/registry/r/button.json +1 -1
  195. package/registry/r/calendar.json +1 -1
  196. package/registry/r/card.json +1 -1
  197. package/registry/r/carousel.json +1 -1
  198. package/registry/r/chain-of-thought.json +23 -0
  199. package/registry/r/chart-pie.json +30 -0
  200. package/registry/r/chart.json +28 -0
  201. package/registry/r/checkbox.json +1 -1
  202. package/registry/r/checkpoint.json +23 -0
  203. package/registry/r/collapsible.json +1 -1
  204. package/registry/r/combobox.json +31 -0
  205. package/registry/r/command-dialog.json +21 -0
  206. package/registry/r/command.json +26 -0
  207. package/registry/r/confirmation.json +23 -0
  208. package/registry/r/context.json +26 -0
  209. package/registry/r/conversation.json +23 -0
  210. package/registry/r/country-selector.json +1 -1
  211. package/registry/r/data-table.json +1 -1
  212. package/registry/r/date-picker.json +4 -4
  213. package/registry/r/date-range-picker.json +3 -3
  214. package/registry/r/date-time-picker.json +28 -0
  215. package/registry/r/direction.json +16 -0
  216. package/registry/r/dropdown-item.json +1 -1
  217. package/registry/r/dropdown-label.json +1 -1
  218. package/registry/r/dropdown-menu.json +1 -1
  219. package/registry/r/dropdown-separator.json +1 -1
  220. package/registry/r/dropdown-trigger.json +1 -1
  221. package/registry/r/empty-state.json +1 -1
  222. package/registry/r/field.json +23 -0
  223. package/registry/r/hover-card.json +1 -1
  224. package/registry/r/inline-citation.json +26 -0
  225. package/registry/r/input-group.json +23 -0
  226. package/registry/r/input.json +1 -1
  227. package/registry/r/item.json +23 -0
  228. package/registry/r/kbd.json +23 -0
  229. package/registry/r/label.json +1 -1
  230. package/registry/r/marker.json +23 -0
  231. package/registry/r/masked-input.json +1 -1
  232. package/registry/r/menubar.json +24 -0
  233. package/registry/r/message-scroller.json +26 -0
  234. package/registry/r/message.json +23 -0
  235. package/registry/r/model-selector.json +32 -0
  236. package/registry/r/multi-select.json +2 -2
  237. package/registry/r/native-select.json +23 -0
  238. package/registry/r/navigation-menu.json +24 -0
  239. package/registry/r/otp-group.json +1 -1
  240. package/registry/r/otp-slot.json +1 -1
  241. package/registry/r/otp.json +1 -1
  242. package/registry/r/pagination.json +3 -2
  243. package/registry/r/plan.json +23 -0
  244. package/registry/r/popover-content.json +1 -1
  245. package/registry/r/popover.json +1 -1
  246. package/registry/r/progress.json +1 -1
  247. package/registry/r/prompt-input.json +23 -0
  248. package/registry/r/queue.json +23 -0
  249. package/registry/r/radio-group.json +1 -1
  250. package/registry/r/radio-item.json +1 -1
  251. package/registry/r/range-calendar.json +1 -1
  252. package/registry/r/reasoning.json +23 -0
  253. package/registry/r/segment.json +1 -1
  254. package/registry/r/select-group.json +1 -1
  255. package/registry/r/select-item.json +1 -1
  256. package/registry/r/select-separator.json +1 -1
  257. package/registry/r/select.json +4 -3
  258. package/registry/r/separator.json +1 -1
  259. package/registry/r/sheet.json +1 -1
  260. package/registry/r/shimmer.json +23 -0
  261. package/registry/r/sidebar.json +1 -1
  262. package/registry/r/skeleton.json +1 -1
  263. package/registry/r/sources.json +23 -0
  264. package/registry/r/spinner.json +23 -0
  265. package/registry/r/suggestion.json +23 -0
  266. package/registry/r/switch.json +1 -1
  267. package/registry/r/table.json +21 -0
  268. package/registry/r/tabs.json +1 -1
  269. package/registry/r/tag-input.json +1 -1
  270. package/registry/r/task.json +23 -0
  271. package/registry/r/textarea.json +1 -1
  272. package/registry/r/time-picker.json +24 -0
  273. package/registry/r/toaster.json +2 -2
  274. package/registry/r/toggle-group.json +1 -1
  275. package/registry/r/toggle.json +1 -1
  276. package/registry/r/tool.json +23 -0
  277. package/registry/r/typography.json +23 -0
  278. package/registry/registry.json +915 -22
  279. package/theme.css +109 -8
@@ -14,6 +14,8 @@ export class SheetComponent {
14
14
  viewContainerRef = inject(ViewContainerRef);
15
15
  scrollStrategy = inject(ScrollStrategyOptions);
16
16
  overlayRef;
17
+ /** Pending teardown scheduled by `hide()` for the exit animation. */
18
+ disposeTimer;
17
19
  /** Element focused before the sheet opened, restored on close. */
18
20
  previouslyFocused;
19
21
  contentComponent;
@@ -22,8 +24,19 @@ export class SheetComponent {
22
24
  return;
23
25
  this.isOpen = true;
24
26
  this.isOpenChange.emit(true);
27
+ // Re-opening inside the 300ms exit window: cancel the pending teardown so the
28
+ // still-attached overlay is reused. Without this the timer disposes the overlay
29
+ // after `show()` has already bailed out, leaving isOpen=true with no overlay —
30
+ // and every later open() short-circuits on the guard above.
31
+ this.cancelPendingDispose();
25
32
  this.show();
26
33
  }
34
+ cancelPendingDispose() {
35
+ if (this.disposeTimer !== undefined) {
36
+ clearTimeout(this.disposeTimer);
37
+ this.disposeTimer = undefined;
38
+ }
39
+ }
27
40
  close() {
28
41
  if (!this.isOpen)
29
42
  return;
@@ -59,7 +72,9 @@ export class SheetComponent {
59
72
  hide() {
60
73
  if (this.overlayRef) {
61
74
  const toRestore = this.previouslyFocused;
62
- setTimeout(() => {
75
+ this.cancelPendingDispose();
76
+ this.disposeTimer = setTimeout(() => {
77
+ this.disposeTimer = undefined;
63
78
  if (this.overlayRef) {
64
79
  this.overlayRef.detach();
65
80
  this.overlayRef.dispose();
@@ -72,21 +87,17 @@ export class SheetComponent {
72
87
  }
73
88
  ngOnDestroy() {
74
89
  // Immediate cleanup on destroy
90
+ this.cancelPendingDispose();
75
91
  if (this.overlayRef) {
76
92
  this.overlayRef.dispose();
77
93
  }
78
94
  }
79
95
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SheetComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
80
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: SheetComponent, isStandalone: true, selector: "tolle-sheet", inputs: { isOpen: "isOpen", hasBackdrop: "hasBackdrop" }, outputs: { isOpenChange: "isOpenChange" }, queries: [{ propertyName: "contentComponent", first: true, predicate: i0.forwardRef(() => SheetContentComponent), descendants: true }], ngImport: i0, template: `<ng-content></ng-content>`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }] });
96
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: SheetComponent, isStandalone: true, selector: "tolle-sheet", inputs: { isOpen: "isOpen", hasBackdrop: "hasBackdrop" }, outputs: { isOpenChange: "isOpenChange" }, queries: [{ propertyName: "contentComponent", first: true, predicate: i0.forwardRef(() => SheetContentComponent), descendants: true }], ngImport: i0, template: `<ng-content></ng-content>`, isInline: true, styles: [":host{display:block}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }] });
81
97
  }
82
98
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SheetComponent, decorators: [{
83
99
  type: Component,
84
- args: [{
85
- selector: 'tolle-sheet',
86
- standalone: true,
87
- imports: [CommonModule],
88
- template: `<ng-content></ng-content>`
89
- }]
100
+ args: [{ selector: 'tolle-sheet', standalone: true, imports: [CommonModule], template: `<ng-content></ng-content>`, styles: [":host{display:block}\n"] }]
90
101
  }], propDecorators: { isOpen: [{
91
102
  type: Input
92
103
  }], hasBackdrop: [{
@@ -103,20 +114,14 @@ export class SheetTriggerComponent {
103
114
  this.sheet.open();
104
115
  }
105
116
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SheetTriggerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
106
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: SheetTriggerComponent, isStandalone: true, selector: "tolle-sheet-trigger", host: { listeners: { "click": "onClick()" }, classAttribute: "inline-block" }, ngImport: i0, template: `<ng-content></ng-content>`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }] });
117
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: SheetTriggerComponent, isStandalone: true, selector: "tolle-sheet-trigger", host: { listeners: { "click": "onClick()" }, classAttribute: "inline-block" }, ngImport: i0, template: `<ng-content></ng-content>`, isInline: true, styles: [":host{display:block}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }] });
107
118
  }
108
119
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SheetTriggerComponent, decorators: [{
109
120
  type: Component,
110
- args: [{
111
- selector: 'tolle-sheet-trigger',
112
- standalone: true,
113
- imports: [CommonModule],
114
- template: `<ng-content></ng-content>`,
115
- host: {
121
+ args: [{ selector: 'tolle-sheet-trigger', standalone: true, imports: [CommonModule], template: `<ng-content></ng-content>`, host: {
116
122
  '(click)': 'onClick()',
117
123
  'class': 'inline-block'
118
- }
119
- }]
124
+ }, styles: [":host{display:block}\n"] }]
120
125
  }] });
121
126
  export class SheetContentComponent {
122
127
  side = 'right';
@@ -167,15 +172,11 @@ export class SheetContentComponent {
167
172
  <ng-content></ng-content>
168
173
  </div>
169
174
  </ng-template>
170
- `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: A11yModule }, { kind: "directive", type: i1.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }] });
175
+ `, isInline: true, styles: [":host{display:block}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: A11yModule }, { kind: "directive", type: i1.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }] });
171
176
  }
172
177
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SheetContentComponent, decorators: [{
173
178
  type: Component,
174
- args: [{
175
- selector: 'tolle-sheet-content',
176
- standalone: true,
177
- imports: [CommonModule, A11yModule],
178
- template: `
179
+ args: [{ selector: 'tolle-sheet-content', standalone: true, imports: [CommonModule, A11yModule], template: `
179
180
  <ng-template #sheetContent>
180
181
  <div
181
182
  [class]="computedClass"
@@ -196,8 +197,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
196
197
  <ng-content></ng-content>
197
198
  </div>
198
199
  </ng-template>
199
- `
200
- }]
200
+ `, styles: [":host{display:block}\n"] }]
201
201
  }], propDecorators: { side: [{
202
202
  type: Input
203
203
  }], rounded: [{
@@ -220,19 +220,15 @@ export class SheetHeaderComponent {
220
220
  <div class="flex flex-col space-y-2 text-center sm:text-left">
221
221
  <ng-content></ng-content>
222
222
  </div>
223
- `, isInline: true });
223
+ `, isInline: true, styles: [":host{display:block}\n"] });
224
224
  }
225
225
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SheetHeaderComponent, decorators: [{
226
226
  type: Component,
227
- args: [{
228
- selector: 'tolle-sheet-header',
229
- standalone: true,
230
- template: `
227
+ args: [{ selector: 'tolle-sheet-header', standalone: true, template: `
231
228
  <div class="flex flex-col space-y-2 text-center sm:text-left">
232
229
  <ng-content></ng-content>
233
230
  </div>
234
- `
235
- }]
231
+ `, styles: [":host{display:block}\n"] }]
236
232
  }] });
237
233
  export class SheetFooterComponent {
238
234
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SheetFooterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
@@ -240,19 +236,15 @@ export class SheetFooterComponent {
240
236
  <div class="flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2">
241
237
  <ng-content></ng-content>
242
238
  </div>
243
- `, isInline: true });
239
+ `, isInline: true, styles: [":host{display:block}\n"] });
244
240
  }
245
241
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SheetFooterComponent, decorators: [{
246
242
  type: Component,
247
- args: [{
248
- selector: 'tolle-sheet-footer',
249
- standalone: true,
250
- template: `
243
+ args: [{ selector: 'tolle-sheet-footer', standalone: true, template: `
251
244
  <div class="flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2">
252
245
  <ng-content></ng-content>
253
246
  </div>
254
- `
255
- }]
247
+ `, styles: [":host{display:block}\n"] }]
256
248
  }] });
257
249
  export class SheetTitleComponent {
258
250
  /** Stable id referenced by the sheet's `aria-labelledby`. */
@@ -262,20 +254,15 @@ export class SheetTitleComponent {
262
254
  <h3 class="text-lg font-semibold text-foreground">
263
255
  <ng-content></ng-content>
264
256
  </h3>
265
- `, isInline: true });
257
+ `, isInline: true, styles: [":host{display:block}\n"] });
266
258
  }
267
259
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SheetTitleComponent, decorators: [{
268
260
  type: Component,
269
- args: [{
270
- selector: 'tolle-sheet-title',
271
- standalone: true,
272
- template: `
261
+ args: [{ selector: 'tolle-sheet-title', standalone: true, template: `
273
262
  <h3 class="text-lg font-semibold text-foreground">
274
263
  <ng-content></ng-content>
275
264
  </h3>
276
- `,
277
- host: { '[attr.id]': 'id' }
278
- }]
265
+ `, host: { '[attr.id]': 'id' }, styles: [":host{display:block}\n"] }]
279
266
  }] });
280
267
  export class SheetDescriptionComponent {
281
268
  /** Stable id referenced by the sheet's `aria-describedby`. */
@@ -285,19 +272,14 @@ export class SheetDescriptionComponent {
285
272
  <p class="text-sm text-muted-foreground">
286
273
  <ng-content></ng-content>
287
274
  </p>
288
- `, isInline: true });
275
+ `, isInline: true, styles: [":host{display:block}\n"] });
289
276
  }
290
277
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SheetDescriptionComponent, decorators: [{
291
278
  type: Component,
292
- args: [{
293
- selector: 'tolle-sheet-description',
294
- standalone: true,
295
- template: `
279
+ args: [{ selector: 'tolle-sheet-description', standalone: true, template: `
296
280
  <p class="text-sm text-muted-foreground">
297
281
  <ng-content></ng-content>
298
282
  </p>
299
- `,
300
- host: { '[attr.id]': 'id' }
301
- }]
283
+ `, host: { '[attr.id]': 'id' }, styles: [":host{display:block}\n"] }]
302
284
  }] });
303
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hlZXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvdG9sbGUvc3JjL2xpYi9zaGVldC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQWUsU0FBUyxFQUFFLGdCQUFnQixFQUFhLFlBQVksRUFBRSxVQUFVLEVBQWdDLE1BQU0sZUFBZSxDQUFDO0FBQzVMLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsT0FBTyxFQUFjLGFBQWEsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2pHLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDL0MsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLFlBQVksQ0FBQzs7O0FBUWhDLE1BQU0sT0FBTyxjQUFjO0lBQ2hCLE1BQU0sR0FBRyxLQUFLLENBQUM7SUFDZixXQUFXLEdBQUcsSUFBSSxDQUFDO0lBQ2xCLFlBQVksR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO0lBRTdDLE9BQU8sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDMUIsZ0JBQWdCLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDNUMsY0FBYyxHQUFHLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO0lBRS9DLFVBQVUsQ0FBYztJQUNoQyxrRUFBa0U7SUFDMUQsaUJBQWlCLENBQXNCO0lBRVEsZ0JBQWdCLENBQU87SUFFOUUsSUFBSTtRQUNGLElBQUksSUFBSSxDQUFDLE1BQU07WUFBRSxPQUFPO1FBQ3hCLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1FBQ25CLElB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QyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUM7d0dBRnhFLHlCQUF5Qjs0RkFBekIseUJBQXlCLDhIQVAxQjs7OztHQUlUOzs0RkFHVSx5QkFBeUI7a0JBVnJDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHlCQUF5QjtvQkFDbkMsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRTs7OztHQUlUO29CQUNELElBQUksRUFBRSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUU7aUJBQzVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIGluamVjdCwgVGVtcGxhdGVSZWYsIFZpZXdDaGlsZCwgVmlld0NvbnRhaW5lclJlZiwgT25EZXN0cm95LCBDb250ZW50Q2hpbGQsIGZvcndhcmRSZWYsIEVsZW1lbnRSZWYsIEFmdGVyQ29udGVudEluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBPdmVybGF5LCBPdmVybGF5UmVmLCBPdmVybGF5Q29uZmlnLCBTY3JvbGxTdHJhdGVneU9wdGlvbnMgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBUZW1wbGF0ZVBvcnRhbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHsgQTExeU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcbmltcG9ydCB7IGNuIH0gZnJvbSAnLi91dGlscy9jbic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RvbGxlLXNoZWV0JyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG4gIHRlbXBsYXRlOiBgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PmBcbn0pXG5leHBvcnQgY2xhc3MgU2hlZXRDb21wb25lbnQge1xuICBASW5wdXQoKSBpc09wZW4gPSBmYWxzZTtcbiAgQElucHV0KCkgaGFzQmFja2Ryb3AgPSB0cnVlO1xuICBAT3V0cHV0KCkgaXNPcGVuQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gIHByaXZhdGUgb3ZlcmxheSA9IGluamVjdChPdmVybGF5KTtcbiAgcHJpdmF0ZSB2aWV3Q29udGFpbmVyUmVmID0gaW5qZWN0KFZpZXdDb250YWluZXJSZWYpO1xuICBwcml2YXRlIHNjcm9sbFN0cmF0ZWd5ID0gaW5qZWN0KFNjcm9sbFN0cmF0ZWd5T3B0aW9ucyk7XG5cbiAgcHJpdmF0ZSBvdmVybGF5UmVmPzogT3ZlcmxheVJlZjtcbiAgLyoqIEVsZW1lbnQgZm9jdXNlZCBiZWZvcmUgdGhlIHNoZWV0IG9wZW5lZCwgcmVzdG9yZWQgb24gY2xvc2UuICovXG4gIHByaXZhdGUgcHJldmlvdXNseUZvY3VzZWQ/OiBIVE1MRWxlbWVudCB8IG51bGw7XG5cbiAgQENvbnRlbnRDaGlsZChmb3J3YXJkUmVmKCgpID0+IFNoZWV0Q29udGVudENvbXBvbmVudCkpIGNvbnRlbnRDb21wb25lbnQ/OiBhbnk7XG5cbiAgb3BlbigpIHtcbiAgICBpZiAodGhpcy5pc09wZW4pIHJldHVybjtcbiAgICB0aGlzLmlzT3BlbiA9IHRydWU7XG4gICAgdGhpcy5pc09wZW5DaGFuZ2UuZW1pdCh0cnVlKTtcbiAgICB0aGlzLnNob3coKTtcbiAgfVxuXG4gIGNsb3NlKCkge1xuICAgIGlmICghdGhpcy5pc09wZW4pIHJldHVybjtcbiAgICB0aGlzLmlzT3BlbiA9IGZhbHNlO1xuICAgIHRoaXMuaXNPcGVuQ2hhbmdlLmVtaXQoZmFsc2UpO1xuICAgIHRoaXMuaGlkZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBzaG93KCkge1xuICAgIGlmICh0aGlzLm92ZXJsYXlSZWYgfHwgIXRoaXMuY29udGVudENvbXBvbmVudD8uY29udGVudFRlbXBsYXRlKSByZXR1cm47XG5cbiAgICAvLyBSZW1lbWJlciB0aGUgdHJpZ2dlciBzbyBmb2N1cyBjYW4gYmUgcmVzdG9yZWQgd2hlbiB0aGUgc2hlZXQgY2xvc2VzLlxuICAgIHRoaXMucHJldmlvdXNseUZvY3VzZWQgPSBkb2N1bWVudC5hY3RpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50IHwgbnVsbDtcblxuICAgIGNvbnN0IG92ZXJsYXlDb25maWcgPSBuZXcgT3ZlcmxheUNvbmZpZyh7XG4gICAgICBoYXNCYWNrZHJvcDogdGhpcy5oYXNCYWNrZHJvcCxcbiAgICAgIGJhY2tkcm9wQ2xhc3M6ICd0b2xsZS1tb2RhbC1iYWNrZHJvcCcsXG4gICAgICBzY3JvbGxTdHJhdGVneTogdGhpcy5zY3JvbGxTdHJhdGVneS5ibG9jaygpLFxuICAgICAgcG9zaXRpb25TdHJhdGVneTogdGhpcy5vdmVybGF5LnBvc2l0aW9uKCkuZ2xvYmFsKCkuY2VudGVySG9yaXpvbnRhbGx5KCkuY2VudGVyVmVydGljYWxseSgpIC8vIFRoaXMgY2VudGVycyBrZXksIGJ1dCBzaGVldCBpcyBmaXhlZCB2aWEgY2xhc3Nlc1xuICAgIH0pO1xuXG4gICAgdGhpcy5vdmVybGF5UmVmID0gdGhpcy5vdmVybGF5LmNyZWF0ZShvdmVybGF5Q29uZmlnKTtcblxuICAgIGNvbnN0IHBvcnRhbCA9IG5ldyBUZW1wbGF0ZVBvcnRhbCh0aGlzLmNvbnRlbnRDb21wb25lbnQuY29udGVudFRlbXBsYXRlLCB0aGlzLnZpZXdDb250YWluZXJSZWYpO1xuICAgIHRoaXMub3ZlcmxheVJlZi5hdHRhY2gocG9ydGFsKTtcblxuICAgIGlmICh0aGlzLmhhc0JhY2tkcm9wKSB7XG4gICAgICB0aGlzLm92ZXJsYXlSZWYuYmFja2Ryb3BDbGljaygpLnN1YnNjcmliZSgoKSA9PiB0aGlzLmNsb3NlKCkpO1xuICAgIH1cblxuICAgIC8vIEVzY2FwZS10by1jbG9zZS5cbiAgICB0aGlzLm92ZXJsYXlSZWYua2V5ZG93bkV2ZW50cygpLnN1YnNjcmliZSgoZXZlbnQ6IEtleWJvYXJkRXZlbnQpID0+IHtcbiAgICAgIGlmIChldmVudC5rZXkgPT09ICdFc2NhcGUnKSB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgaGlkZSgpIHtcbiAgICBpZiAodGhpcy5vdmVybGF5UmVmKSB7XG4gICAgICBjb25zdCB0b1Jlc3RvcmUgPSB0aGlzLnByZXZpb3VzbHlGb2N1c2VkO1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLm92ZXJsYXlSZWYpIHtcbiAgICAgICAgICB0aGlzLm92ZXJsYXlSZWYuZGV0YWNoKCk7XG4gICAgICAgICAgdGhpcy5vdmVybGF5UmVmLmRpc3Bvc2UoKTtcbiAgICAgICAgICB0aGlzLm92ZXJsYXlSZWYgPSB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgICAgLy8gUmVzdG9yZSBmb2N1cyB0byB0aGUgdHJpZ2dlciBhZnRlciB0aGUgZXhpdCBhbmltYXRpb24uXG4gICAgICAgIHRvUmVzdG9yZT8uZm9jdXM/LigpO1xuICAgICAgfSwgMzAwKTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICAvLyBJbW1lZGlhdGUgY2xlYW51cCBvbiBkZXN0cm95XG4gICAgaWYgKHRoaXMub3ZlcmxheVJlZikge1xuICAgICAgdGhpcy5vdmVybGF5UmVmLmRpc3Bvc2UoKTtcbiAgICB9XG4gIH1cbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndG9sbGUtc2hlZXQtdHJpZ2dlcicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICB0ZW1wbGF0ZTogYDxuZy1jb250ZW50PjwvbmctY29udGVudD5gLFxuICBob3N0OiB7XG4gICAgJyhjbGljayknOiAnb25DbGljaygpJyxcbiAgICAnY2xhc3MnOiAnaW5saW5lLWJsb2NrJ1xuICB9XG59KVxuZXhwb3J0IGNsYXNzIFNoZWV0VHJpZ2dlckNvbXBvbmVudCB7XG4gIHByaXZhdGUgc2hlZXQgPSBpbmplY3QoU2hlZXRDb21wb25lbnQpO1xuXG4gIG9uQ2xpY2soKSB7XG4gICAgdGhpcy5zaGVldC5vcGVuKCk7XG4gIH1cbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndG9sbGUtc2hlZXQtY29udGVudCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEExMXlNb2R1bGVdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxuZy10ZW1wbGF0ZSAjc2hlZXRDb250ZW50PlxuICAgICAgPGRpdlxuICAgICAgICBbY2xhc3NdPVwiY29tcHV0ZWRDbGFzc1wiXG4gICAgICAgIFthdHRyLmRhdGEtc3RhdGVdPVwic2hlZXQuaXNPcGVuID8gJ29wZW4nIDogJ2Nsb3NlZCdcIlxuICAgICAgICByb2xlPVwiZGlhbG9nXCJcbiAgICAgICAgYXJpYS1tb2RhbD1cInRydWVcIlxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwidGl0bGVDbXA/LmlkIHx8IG51bGxcIlxuICAgICAgICBbYXR0ci5hcmlhLWRlc2NyaWJlZGJ5XT1cImRlc2NyaXB0aW9uQ21wPy5pZCB8fCBudWxsXCJcbiAgICAgICAgY2RrVHJhcEZvY3VzIGNka1RyYXBGb2N1c0F1dG9DYXB0dXJlXG4gICAgICAgIChtb3VzZWRvd24pPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCI+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICAoY2xpY2spPVwiY2xvc2UoKVwiXG4gICAgICAgICAgY2xhc3M9XCJhYnNvbHV0ZSByaWdodC00IHRvcC00IHJvdW5kZWQtc20gb3BhY2l0eS03MCByaW5nLW9mZnNldC1iYWNrZ3JvdW5kIHRyYW5zaXRpb24tb3BhY2l0eSBob3ZlcjpvcGFjaXR5LTEwMCBmb2N1czpvdXRsaW5lLW5vbmUgZm9jdXM6cmluZy0yIGZvY3VzOnJpbmctcmluZyBmb2N1czpyaW5nLW9mZnNldC0yIGRpc2FibGVkOnBvaW50ZXItZXZlbnRzLW5vbmVcIlxuICAgICAgICA+XG4gICAgICAgICAgPGkgY2xhc3M9XCJyaS1jbG9zZS1saW5lIHRleHQteGxcIj48L2k+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJzci1vbmx5XCI+Q2xvc2U8L3NwYW4+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICBgXG59KVxuZXhwb3J0IGNsYXNzIFNoZWV0Q29udGVudENvbXBvbmVudCB7XG4gIEBJbnB1dCgpIHNpZGU6ICd0b3AnIHwgJ2JvdHRvbScgfCAnbGVmdCcgfCAncmlnaHQnID0gJ3JpZ2h0JztcbiAgQElucHV0KCkgcm91bmRlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBjbGFzczogc3RyaW5nID0gJyc7XG5cbiAgQFZpZXdDaGlsZCgnc2hlZXRDb250ZW50JywgeyBzdGF0aWM6IHRydWUgfSkgY29udGVudFRlbXBsYXRlITogVGVtcGxhdGVSZWY8YW55PjtcblxuICAvKiogUHJvamVjdGVkIHRpdGxlL2Rlc2NyaXB0aW9uIHVzZWQgdG8gYnVpbGQgdGhlIGRpYWxvZydzIGFjY2Vzc2libGUgbmFtZS4gKi9cbiAgQENvbnRlbnRDaGlsZChmb3J3YXJkUmVmKCgpID0+IFNoZWV0VGl0bGVDb21wb25lbnQpKSB0aXRsZUNtcD86IFNoZWV0VGl0bGVDb21wb25lbnQ7XG4gIEBDb250ZW50Q2hpbGQoZm9yd2FyZFJlZigoKSA9PiBTaGVldERlc2NyaXB0aW9uQ29tcG9uZW50KSkgZGVzY3JpcHRpb25DbXA/OiBTaGVldERlc2NyaXB0aW9uQ29tcG9uZW50O1xuXG4gIHB1YmxpYyBzaGVldCA9IGluamVjdChTaGVldENvbXBvbmVudCk7XG5cbiAgY2xvc2UoKSB7XG4gICAgdGhpcy5zaGVldC5jbG9zZSgpO1xuICB9XG5cbiAgZ2V0IGNvbXB1dGVkQ2xhc3MoKSB7XG4gICAgY29uc3Qgc2lkZUNsYXNzZXMgPSB7XG4gICAgICB0b3A6IFwiaW5zZXQteC0wIHRvcC0wIGJvcmRlci1iIGRhdGEtW3N0YXRlPW9wZW5dOmFuaW1hdGUtaW4gZGF0YS1bc3RhdGU9Y2xvc2VkXTphbmltYXRlLW91dCBkYXRhLVtzdGF0ZT1jbG9zZWRdOnNsaWRlLW91dC10by10b3AgZGF0YS1bc3RhdGU9b3Blbl06c2xpZGUtaW4tZnJvbS10b3BcIixcbiAgICAgIGJvdHRvbTogXCJpbnNldC14LTAgYm90dG9tLTAgYm9yZGVyLXQgZGF0YS1bc3RhdGU9b3Blbl06YW5pbWF0ZS1pbiBkYXRhLVtzdGF0ZT1jbG9zZWRdOmFuaW1hdGUtb3V0IGRhdGEtW3N0YXRlPWNsb3NlZF06c2xpZGUtb3V0LXRvLWJvdHRvbSBkYXRhLVtzdGF0ZT1vcGVuXTpzbGlkZS1pbi1mcm9tLWJvdHRvbVwiLFxuICAgICAgbGVmdDogXCJpbnNldC15LTAgbGVmdC0wIGgtZnVsbCB3LTMvNCBib3JkZXItciBkYXRhLVtzdGF0ZT1vcGVuXTphbmltYXRlLWluIGRhdGEtW3N0YXRlPWNsb3NlZF06YW5pbWF0ZS1vdXQgZGF0YS1bc3RhdGU9Y2xvc2VkXTpzbGlkZS1vdXQtdG8tbGVmdCBkYXRhLVtzdGF0ZT1vcGVuXTpzbGlkZS1pbi1mcm9tLWxlZnQgc206bWF4LXctc21cIixcbiAgICAgIHJpZ2h0OiBcImluc2V0LXktMCByaWdodC0wIGgtZnVsbCB3LTMvNCAgYm9yZGVyLWwgZGF0YS1bc3RhdGU9b3Blbl06YW5pbWF0ZS1pbiBkYXRhLVtzdGF0ZT1jbG9zZWRdOmFuaW1hdGUtb3V0IGRhdGEtW3N0YXRlPWNsb3NlZF06c2xpZGUtb3V0LXRvLXJpZ2h0IGRhdGEtW3N0YXRlPW9wZW5dOnNsaWRlLWluLWZyb20tcmlnaHQgc206bWF4LXctc21cIixcbiAgICB9O1xuXG4gICAgY29uc3Qgcm91bmRpbmdDbGFzc2VzID0ge1xuICAgICAgdG9wOiBcInJvdW5kZWQtYi0yeGxcIixcbiAgICAgIGJvdHRvbTogXCJyb3VuZGVkLXQtMnhsXCIsXG4gICAgICBsZWZ0OiBcInJvdW5kZWQtci0yeGxcIixcbiAgICAgIHJpZ2h0OiBcInJvdW5kZWQtbC0yeGxcIixcbiAgICB9O1xuXG4gICAgcmV0dXJuIGNuKFxuICAgICAgXCJmaXhlZCB6LTUwIGdhcC00IGJnLWJhY2tncm91bmQgcC02IHNoYWRvdy1sZyB0cmFuc2l0aW9uIGVhc2UtaW4tb3V0IGRhdGEtW3N0YXRlPW9wZW5dOmFuaW1hdGUtaW4gZGF0YS1bc3RhdGU9Y2xvc2VkXTphbmltYXRlLW91dCBkYXRhLVtzdGF0ZT1vcGVuXTpkdXJhdGlvbi01MDAgZGF0YS1bc3RhdGU9Y2xvc2VkXTpkdXJhdGlvbi0zMDBcIixcbiAgICAgIHNpZGVDbGFzc2VzW3RoaXMuc2lkZV0sXG4gICAgICB0aGlzLnJvdW5kZWQgJiYgcm91bmRpbmdDbGFzc2VzW3RoaXMuc2lkZV0sXG4gICAgICB0aGlzLmNsYXNzXG4gICAgKTtcbiAgfVxufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0b2xsZS1zaGVldC1oZWFkZXInLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIHNwYWNlLXktMiB0ZXh0LWNlbnRlciBzbTp0ZXh0LWxlZnRcIj5cbiAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICA8L2Rpdj5cbiAgYFxufSlcbmV4cG9ydCBjbGFzcyBTaGVldEhlYWRlckNvbXBvbmVudCB7IH1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndG9sbGUtc2hlZXQtZm9vdGVyJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbC1yZXZlcnNlIHNtOmZsZXgtcm93IHNtOmp1c3RpZnktZW5kIHNtOnNwYWNlLXgtMlwiPlxuICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgIDwvZGl2PlxuICBgXG59KVxuZXhwb3J0IGNsYXNzIFNoZWV0Rm9vdGVyQ29tcG9uZW50IHsgfVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0b2xsZS1zaGVldC10aXRsZScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHRlbXBsYXRlOiBgXG4gICAgPGgzIGNsYXNzPVwidGV4dC1sZyBmb250LXNlbWlib2xkIHRleHQtZm9yZWdyb3VuZFwiPlxuICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgIDwvaDM+XG4gIGAsXG4gIGhvc3Q6IHsgJ1thdHRyLmlkXSc6ICdpZCcgfVxufSlcbmV4cG9ydCBjbGFzcyBTaGVldFRpdGxlQ29tcG9uZW50IHtcbiAgLyoqIFN0YWJsZSBpZCByZWZlcmVuY2VkIGJ5IHRoZSBzaGVldCdzIGBhcmlhLWxhYmVsbGVkYnlgLiAqL1xuICByZWFkb25seSBpZCA9IGB0b2xsZS1zaGVldC10aXRsZS0ke01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cigyLCA5KX1gO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0b2xsZS1zaGVldC1kZXNjcmlwdGlvbicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHRlbXBsYXRlOiBgXG4gICAgPHAgY2xhc3M9XCJ0ZXh0LXNtIHRleHQtbXV0ZWQtZm9yZWdyb3VuZFwiPlxuICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgIDwvcD5cbiAgYCxcbiAgaG9zdDogeyAnW2F0dHIuaWRdJzogJ2lkJyB9XG59KVxuZXhwb3J0IGNsYXNzIFNoZWV0RGVzY3JpcHRpb25Db21wb25lbnQge1xuICAvKiogU3RhYmxlIGlkIHJlZmVyZW5jZWQgYnkgdGhlIHNoZWV0J3MgYGFyaWEtZGVzY3JpYmVkYnlgLiAqL1xuICByZWFkb25seSBpZCA9IGB0b2xsZS1zaGVldC1kZXNjcmlwdGlvbi0ke01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cigyLCA5KX1gO1xufVxuIl19
285
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hlZXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvdG9sbGUvc3JjL2xpYi9zaGVldC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQWUsU0FBUyxFQUFFLGdCQUFnQixFQUFhLFlBQVksRUFBRSxVQUFVLEVBQWdDLE1BQU0sZUFBZSxDQUFDO0FBQzVMLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsT0FBTyxFQUFjLGFBQWEsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2pHLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDL0MsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLFlBQVksQ0FBQzs7O0FBU2hDLE1BQU0sT0FBTyxjQUFjO0lBQ2hCLE1BQU0sR0FBRyxLQUFLLENBQUM7SUFDZixXQUFXLEdBQUcsSUFBSSxDQUFDO0lBQ2xCLFlBQVksR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO0lBRTdDLE9BQU8sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDMUIsZ0JBQWdCLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDNUMsY0FBYyxHQUFHLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO0lBRS9DLFVBQVUsQ0FBYztJQUNoQyxxRUFBcUU7SUFDN0QsWUFBWSxDQUFpQztJQUNyRCxrRUFBa0U7SUFDMUQsaUJBQWlCLENBQXNCO0lBRVEsZ0JBQWdCLENBQU87SUFFOUUsSUFBSTtRQUNGLElBQUksSUFBSSxDQUFDLE1BQU07WUFBRSxPQUFPO1FBQ3hCLElBQUksQ0FB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QUNwQyw4REFBOEQ7SUFDckQsRUFBRSxHQUFHLDJCQUEyQixJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQzt3R0FGeEUseUJBQXlCOzRGQUF6Qix5QkFBeUIsOEhBUDFCOzs7O0dBSVQ7OzRGQUdVLHlCQUF5QjtrQkFYckMsU0FBUzsrQkFDRSx5QkFBeUIsY0FFdkIsSUFBSSxZQUNOOzs7O0dBSVQsUUFDSyxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgaW5qZWN0LCBUZW1wbGF0ZVJlZiwgVmlld0NoaWxkLCBWaWV3Q29udGFpbmVyUmVmLCBPbkRlc3Ryb3ksIENvbnRlbnRDaGlsZCwgZm9yd2FyZFJlZiwgRWxlbWVudFJlZiwgQWZ0ZXJDb250ZW50SW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE92ZXJsYXksIE92ZXJsYXlSZWYsIE92ZXJsYXlDb25maWcsIFNjcm9sbFN0cmF0ZWd5T3B0aW9ucyB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7IFRlbXBsYXRlUG9ydGFsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5pbXBvcnQgeyBBMTF5TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xuaW1wb3J0IHsgY24gfSBmcm9tICcuL3V0aWxzL2NuJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndG9sbGUtc2hlZXQnLFxuICBzdHlsZXM6IFsnOmhvc3QgeyBkaXNwbGF5OiBibG9jazsgfSddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbiAgdGVtcGxhdGU6IGA8bmctY29udGVudD48L25nLWNvbnRlbnQ+YFxufSlcbmV4cG9ydCBjbGFzcyBTaGVldENvbXBvbmVudCB7XG4gIEBJbnB1dCgpIGlzT3BlbiA9IGZhbHNlO1xuICBASW5wdXQoKSBoYXNCYWNrZHJvcCA9IHRydWU7XG4gIEBPdXRwdXQoKSBpc09wZW5DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgcHJpdmF0ZSBvdmVybGF5ID0gaW5qZWN0KE92ZXJsYXkpO1xuICBwcml2YXRlIHZpZXdDb250YWluZXJSZWYgPSBpbmplY3QoVmlld0NvbnRhaW5lclJlZik7XG4gIHByaXZhdGUgc2Nyb2xsU3RyYXRlZ3kgPSBpbmplY3QoU2Nyb2xsU3RyYXRlZ3lPcHRpb25zKTtcblxuICBwcml2YXRlIG92ZXJsYXlSZWY/OiBPdmVybGF5UmVmO1xuICAvKiogUGVuZGluZyB0ZWFyZG93biBzY2hlZHVsZWQgYnkgYGhpZGUoKWAgZm9yIHRoZSBleGl0IGFuaW1hdGlvbi4gKi9cbiAgcHJpdmF0ZSBkaXNwb3NlVGltZXI/OiBSZXR1cm5UeXBlPHR5cGVvZiBzZXRUaW1lb3V0PjtcbiAgLyoqIEVsZW1lbnQgZm9jdXNlZCBiZWZvcmUgdGhlIHNoZWV0IG9wZW5lZCwgcmVzdG9yZWQgb24gY2xvc2UuICovXG4gIHByaXZhdGUgcHJldmlvdXNseUZvY3VzZWQ/OiBIVE1MRWxlbWVudCB8IG51bGw7XG5cbiAgQENvbnRlbnRDaGlsZChmb3J3YXJkUmVmKCgpID0+IFNoZWV0Q29udGVudENvbXBvbmVudCkpIGNvbnRlbnRDb21wb25lbnQ/OiBhbnk7XG5cbiAgb3BlbigpIHtcbiAgICBpZiAodGhpcy5pc09wZW4pIHJldHVybjtcbiAgICB0aGlzLmlzT3BlbiA9IHRydWU7XG4gICAgdGhpcy5pc09wZW5DaGFuZ2UuZW1pdCh0cnVlKTtcbiAgICAvLyBSZS1vcGVuaW5nIGluc2lkZSB0aGUgMzAwbXMgZXhpdCB3aW5kb3c6IGNhbmNlbCB0aGUgcGVuZGluZyB0ZWFyZG93biBzbyB0aGVcbiAgICAvLyBzdGlsbC1hdHRhY2hlZCBvdmVybGF5IGlzIHJldXNlZC4gV2l0aG91dCB0aGlzIHRoZSB0aW1lciBkaXNwb3NlcyB0aGUgb3ZlcmxheVxuICAgIC8vIGFmdGVyIGBzaG93KClgIGhhcyBhbHJlYWR5IGJhaWxlZCBvdXQsIGxlYXZpbmcgaXNPcGVuPXRydWUgd2l0aCBubyBvdmVybGF5IOKAlFxuICAgIC8vIGFuZCBldmVyeSBsYXRlciBvcGVuKCkgc2hvcnQtY2lyY3VpdHMgb24gdGhlIGd1YXJkIGFib3ZlLlxuICAgIHRoaXMuY2FuY2VsUGVuZGluZ0Rpc3Bvc2UoKTtcbiAgICB0aGlzLnNob3coKTtcbiAgfVxuXG4gIHByaXZhdGUgY2FuY2VsUGVuZGluZ0Rpc3Bvc2UoKSB7XG4gICAgaWYgKHRoaXMuZGlzcG9zZVRpbWVyICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGNsZWFyVGltZW91dCh0aGlzLmRpc3Bvc2VUaW1lcik7XG4gICAgICB0aGlzLmRpc3Bvc2VUaW1lciA9IHVuZGVmaW5lZDtcbiAgICB9XG4gIH1cblxuICBjbG9zZSgpIHtcbiAgICBpZiAoIXRoaXMuaXNPcGVuKSByZXR1cm47XG4gICAgdGhpcy5pc09wZW4gPSBmYWxzZTtcbiAgICB0aGlzLmlzT3BlbkNoYW5nZS5lbWl0KGZhbHNlKTtcbiAgICB0aGlzLmhpZGUoKTtcbiAgfVxuXG4gIHByaXZhdGUgc2hvdygpIHtcbiAgICBpZiAodGhpcy5vdmVybGF5UmVmIHx8ICF0aGlzLmNvbnRlbnRDb21wb25lbnQ/LmNvbnRlbnRUZW1wbGF0ZSkgcmV0dXJuO1xuXG4gICAgLy8gUmVtZW1iZXIgdGhlIHRyaWdnZXIgc28gZm9jdXMgY2FuIGJlIHJlc3RvcmVkIHdoZW4gdGhlIHNoZWV0IGNsb3Nlcy5cbiAgICB0aGlzLnByZXZpb3VzbHlGb2N1c2VkID0gZG9jdW1lbnQuYWN0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudCB8IG51bGw7XG5cbiAgICBjb25zdCBvdmVybGF5Q29uZmlnID0gbmV3IE92ZXJsYXlDb25maWcoe1xuICAgICAgaGFzQmFja2Ryb3A6IHRoaXMuaGFzQmFja2Ryb3AsXG4gICAgICBiYWNrZHJvcENsYXNzOiAndG9sbGUtbW9kYWwtYmFja2Ryb3AnLFxuICAgICAgc2Nyb2xsU3RyYXRlZ3k6IHRoaXMuc2Nyb2xsU3RyYXRlZ3kuYmxvY2soKSxcbiAgICAgIHBvc2l0aW9uU3RyYXRlZ3k6IHRoaXMub3ZlcmxheS5wb3NpdGlvbigpLmdsb2JhbCgpLmNlbnRlckhvcml6b250YWxseSgpLmNlbnRlclZlcnRpY2FsbHkoKSAvLyBUaGlzIGNlbnRlcnMga2V5LCBidXQgc2hlZXQgaXMgZml4ZWQgdmlhIGNsYXNzZXNcbiAgICB9KTtcblxuICAgIHRoaXMub3ZlcmxheVJlZiA9IHRoaXMub3ZlcmxheS5jcmVhdGUob3ZlcmxheUNvbmZpZyk7XG5cbiAgICBjb25zdCBwb3J0YWwgPSBuZXcgVGVtcGxhdGVQb3J0YWwodGhpcy5jb250ZW50Q29tcG9uZW50LmNvbnRlbnRUZW1wbGF0ZSwgdGhpcy52aWV3Q29udGFpbmVyUmVmKTtcbiAgICB0aGlzLm92ZXJsYXlSZWYuYXR0YWNoKHBvcnRhbCk7XG5cbiAgICBpZiAodGhpcy5oYXNCYWNrZHJvcCkge1xuICAgICAgdGhpcy5vdmVybGF5UmVmLmJhY2tkcm9wQ2xpY2soKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5jbG9zZSgpKTtcbiAgICB9XG5cbiAgICAvLyBFc2NhcGUtdG8tY2xvc2UuXG4gICAgdGhpcy5vdmVybGF5UmVmLmtleWRvd25FdmVudHMoKS5zdWJzY3JpYmUoKGV2ZW50OiBLZXlib2FyZEV2ZW50KSA9PiB7XG4gICAgICBpZiAoZXZlbnQua2V5ID09PSAnRXNjYXBlJykge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB0aGlzLmNsb3NlKCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGhpZGUoKSB7XG4gICAgaWYgKHRoaXMub3ZlcmxheVJlZikge1xuICAgICAgY29uc3QgdG9SZXN0b3JlID0gdGhpcy5wcmV2aW91c2x5Rm9jdXNlZDtcbiAgICAgIHRoaXMuY2FuY2VsUGVuZGluZ0Rpc3Bvc2UoKTtcbiAgICAgIHRoaXMuZGlzcG9zZVRpbWVyID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMuZGlzcG9zZVRpbWVyID0gdW5kZWZpbmVkO1xuICAgICAgICBpZiAodGhpcy5vdmVybGF5UmVmKSB7XG4gICAgICAgICAgdGhpcy5vdmVybGF5UmVmLmRldGFjaCgpO1xuICAgICAgICAgIHRoaXMub3ZlcmxheVJlZi5kaXNwb3NlKCk7XG4gICAgICAgICAgdGhpcy5vdmVybGF5UmVmID0gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICAgIC8vIFJlc3RvcmUgZm9jdXMgdG8gdGhlIHRyaWdnZXIgYWZ0ZXIgdGhlIGV4aXQgYW5pbWF0aW9uLlxuICAgICAgICB0b1Jlc3RvcmU/LmZvY3VzPy4oKTtcbiAgICAgIH0sIDMwMCk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgLy8gSW1tZWRpYXRlIGNsZWFudXAgb24gZGVzdHJveVxuICAgIHRoaXMuY2FuY2VsUGVuZGluZ0Rpc3Bvc2UoKTtcbiAgICBpZiAodGhpcy5vdmVybGF5UmVmKSB7XG4gICAgICB0aGlzLm92ZXJsYXlSZWYuZGlzcG9zZSgpO1xuICAgIH1cbiAgfVxufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0b2xsZS1zaGVldC10cmlnZ2VyJyxcbiAgc3R5bGVzOiBbJzpob3N0IHsgZGlzcGxheTogYmxvY2s7IH0nXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG4gIHRlbXBsYXRlOiBgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PmAsXG4gIGhvc3Q6IHtcbiAgICAnKGNsaWNrKSc6ICdvbkNsaWNrKCknLFxuICAgICdjbGFzcyc6ICdpbmxpbmUtYmxvY2snXG4gIH1cbn0pXG5leHBvcnQgY2xhc3MgU2hlZXRUcmlnZ2VyQ29tcG9uZW50IHtcbiAgcHJpdmF0ZSBzaGVldCA9IGluamVjdChTaGVldENvbXBvbmVudCk7XG5cbiAgb25DbGljaygpIHtcbiAgICB0aGlzLnNoZWV0Lm9wZW4oKTtcbiAgfVxufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0b2xsZS1zaGVldC1jb250ZW50JyxcbiAgc3R5bGVzOiBbJzpob3N0IHsgZGlzcGxheTogYmxvY2s7IH0nXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgQTExeU1vZHVsZV0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPG5nLXRlbXBsYXRlICNzaGVldENvbnRlbnQ+XG4gICAgICA8ZGl2XG4gICAgICAgIFtjbGFzc109XCJjb21wdXRlZENsYXNzXCJcbiAgICAgICAgW2F0dHIuZGF0YS1zdGF0ZV09XCJzaGVldC5pc09wZW4gPyAnb3BlbicgOiAnY2xvc2VkJ1wiXG4gICAgICAgIHJvbGU9XCJkaWFsb2dcIlxuICAgICAgICBhcmlhLW1vZGFsPVwidHJ1ZVwiXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCJ0aXRsZUNtcD8uaWQgfHwgbnVsbFwiXG4gICAgICAgIFthdHRyLmFyaWEtZGVzY3JpYmVkYnldPVwiZGVzY3JpcHRpb25DbXA/LmlkIHx8IG51bGxcIlxuICAgICAgICBjZGtUcmFwRm9jdXMgY2RrVHJhcEZvY3VzQXV0b0NhcHR1cmVcbiAgICAgICAgKG1vdXNlZG93bik9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIChjbGljayk9XCJjbG9zZSgpXCJcbiAgICAgICAgICBjbGFzcz1cImFic29sdXRlIHJpZ2h0LTQgdG9wLTQgcm91bmRlZC1zbSBvcGFjaXR5LTcwIHJpbmctb2Zmc2V0LWJhY2tncm91bmQgdHJhbnNpdGlvbi1vcGFjaXR5IGhvdmVyOm9wYWNpdHktMTAwIGZvY3VzOm91dGxpbmUtbm9uZSBmb2N1czpyaW5nLTIgZm9jdXM6cmluZy1yaW5nIGZvY3VzOnJpbmctb2Zmc2V0LTIgZGlzYWJsZWQ6cG9pbnRlci1ldmVudHMtbm9uZVwiXG4gICAgICAgID5cbiAgICAgICAgICA8aSBjbGFzcz1cInJpLWNsb3NlLWxpbmUgdGV4dC14bFwiPjwvaT5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInNyLW9ubHlcIj5DbG9zZTwvc3Bhbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIGBcbn0pXG5leHBvcnQgY2xhc3MgU2hlZXRDb250ZW50Q29tcG9uZW50IHtcbiAgQElucHV0KCkgc2lkZTogJ3RvcCcgfCAnYm90dG9tJyB8ICdsZWZ0JyB8ICdyaWdodCcgPSAncmlnaHQnO1xuICBASW5wdXQoKSByb3VuZGVkOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIGNsYXNzOiBzdHJpbmcgPSAnJztcblxuICBAVmlld0NoaWxkKCdzaGVldENvbnRlbnQnLCB7IHN0YXRpYzogdHJ1ZSB9KSBjb250ZW50VGVtcGxhdGUhOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIC8qKiBQcm9qZWN0ZWQgdGl0bGUvZGVzY3JpcHRpb24gdXNlZCB0byBidWlsZCB0aGUgZGlhbG9nJ3MgYWNjZXNzaWJsZSBuYW1lLiAqL1xuICBAQ29udGVudENoaWxkKGZvcndhcmRSZWYoKCkgPT4gU2hlZXRUaXRsZUNvbXBvbmVudCkpIHRpdGxlQ21wPzogU2hlZXRUaXRsZUNvbXBvbmVudDtcbiAgQENvbnRlbnRDaGlsZChmb3J3YXJkUmVmKCgpID0+IFNoZWV0RGVzY3JpcHRpb25Db21wb25lbnQpKSBkZXNjcmlwdGlvbkNtcD86IFNoZWV0RGVzY3JpcHRpb25Db21wb25lbnQ7XG5cbiAgcHVibGljIHNoZWV0ID0gaW5qZWN0KFNoZWV0Q29tcG9uZW50KTtcblxuICBjbG9zZSgpIHtcbiAgICB0aGlzLnNoZWV0LmNsb3NlKCk7XG4gIH1cblxuICBnZXQgY29tcHV0ZWRDbGFzcygpIHtcbiAgICBjb25zdCBzaWRlQ2xhc3NlcyA9IHtcbiAgICAgIHRvcDogXCJpbnNldC14LTAgdG9wLTAgYm9yZGVyLWIgZGF0YS1bc3RhdGU9b3Blbl06YW5pbWF0ZS1pbiBkYXRhLVtzdGF0ZT1jbG9zZWRdOmFuaW1hdGUtb3V0IGRhdGEtW3N0YXRlPWNsb3NlZF06c2xpZGUtb3V0LXRvLXRvcCBkYXRhLVtzdGF0ZT1vcGVuXTpzbGlkZS1pbi1mcm9tLXRvcFwiLFxuICAgICAgYm90dG9tOiBcImluc2V0LXgtMCBib3R0b20tMCBib3JkZXItdCBkYXRhLVtzdGF0ZT1vcGVuXTphbmltYXRlLWluIGRhdGEtW3N0YXRlPWNsb3NlZF06YW5pbWF0ZS1vdXQgZGF0YS1bc3RhdGU9Y2xvc2VkXTpzbGlkZS1vdXQtdG8tYm90dG9tIGRhdGEtW3N0YXRlPW9wZW5dOnNsaWRlLWluLWZyb20tYm90dG9tXCIsXG4gICAgICBsZWZ0OiBcImluc2V0LXktMCBsZWZ0LTAgaC1mdWxsIHctMy80IGJvcmRlci1yIGRhdGEtW3N0YXRlPW9wZW5dOmFuaW1hdGUtaW4gZGF0YS1bc3RhdGU9Y2xvc2VkXTphbmltYXRlLW91dCBkYXRhLVtzdGF0ZT1jbG9zZWRdOnNsaWRlLW91dC10by1sZWZ0IGRhdGEtW3N0YXRlPW9wZW5dOnNsaWRlLWluLWZyb20tbGVmdCBzbTptYXgtdy1zbVwiLFxuICAgICAgcmlnaHQ6IFwiaW5zZXQteS0wIHJpZ2h0LTAgaC1mdWxsIHctMy80ICBib3JkZXItbCBkYXRhLVtzdGF0ZT1vcGVuXTphbmltYXRlLWluIGRhdGEtW3N0YXRlPWNsb3NlZF06YW5pbWF0ZS1vdXQgZGF0YS1bc3RhdGU9Y2xvc2VkXTpzbGlkZS1vdXQtdG8tcmlnaHQgZGF0YS1bc3RhdGU9b3Blbl06c2xpZGUtaW4tZnJvbS1yaWdodCBzbTptYXgtdy1zbVwiLFxuICAgIH07XG5cbiAgICBjb25zdCByb3VuZGluZ0NsYXNzZXMgPSB7XG4gICAgICB0b3A6IFwicm91bmRlZC1iLTJ4bFwiLFxuICAgICAgYm90dG9tOiBcInJvdW5kZWQtdC0yeGxcIixcbiAgICAgIGxlZnQ6IFwicm91bmRlZC1yLTJ4bFwiLFxuICAgICAgcmlnaHQ6IFwicm91bmRlZC1sLTJ4bFwiLFxuICAgIH07XG5cbiAgICByZXR1cm4gY24oXG4gICAgICBcImZpeGVkIHotNTAgZ2FwLTQgYmctYmFja2dyb3VuZCBwLTYgc2hhZG93LWxnIHRyYW5zaXRpb24gZWFzZS1pbi1vdXQgZGF0YS1bc3RhdGU9b3Blbl06YW5pbWF0ZS1pbiBkYXRhLVtzdGF0ZT1jbG9zZWRdOmFuaW1hdGUtb3V0IGRhdGEtW3N0YXRlPW9wZW5dOmR1cmF0aW9uLTUwMCBkYXRhLVtzdGF0ZT1jbG9zZWRdOmR1cmF0aW9uLTMwMFwiLFxuICAgICAgc2lkZUNsYXNzZXNbdGhpcy5zaWRlXSxcbiAgICAgIHRoaXMucm91bmRlZCAmJiByb3VuZGluZ0NsYXNzZXNbdGhpcy5zaWRlXSxcbiAgICAgIHRoaXMuY2xhc3NcbiAgICApO1xuICB9XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RvbGxlLXNoZWV0LWhlYWRlcicsXG4gIHN0eWxlczogWyc6aG9zdCB7IGRpc3BsYXk6IGJsb2NrOyB9J10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgc3BhY2UteS0yIHRleHQtY2VudGVyIHNtOnRleHQtbGVmdFwiPlxuICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgIDwvZGl2PlxuICBgXG59KVxuZXhwb3J0IGNsYXNzIFNoZWV0SGVhZGVyQ29tcG9uZW50IHsgfVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0b2xsZS1zaGVldC1mb290ZXInLFxuICBzdHlsZXM6IFsnOmhvc3QgeyBkaXNwbGF5OiBibG9jazsgfSddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sLXJldmVyc2Ugc206ZmxleC1yb3cgc206anVzdGlmeS1lbmQgc206c3BhY2UteC0yXCI+XG4gICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgPC9kaXY+XG4gIGBcbn0pXG5leHBvcnQgY2xhc3MgU2hlZXRGb290ZXJDb21wb25lbnQgeyB9XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RvbGxlLXNoZWV0LXRpdGxlJyxcbiAgc3R5bGVzOiBbJzpob3N0IHsgZGlzcGxheTogYmxvY2s7IH0nXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8aDMgY2xhc3M9XCJ0ZXh0LWxnIGZvbnQtc2VtaWJvbGQgdGV4dC1mb3JlZ3JvdW5kXCI+XG4gICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgPC9oMz5cbiAgYCxcbiAgaG9zdDogeyAnW2F0dHIuaWRdJzogJ2lkJyB9XG59KVxuZXhwb3J0IGNsYXNzIFNoZWV0VGl0bGVDb21wb25lbnQge1xuICAvKiogU3RhYmxlIGlkIHJlZmVyZW5jZWQgYnkgdGhlIHNoZWV0J3MgYGFyaWEtbGFiZWxsZWRieWAuICovXG4gIHJlYWRvbmx5IGlkID0gYHRvbGxlLXNoZWV0LXRpdGxlLSR7TWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyKDIsIDkpfWA7XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RvbGxlLXNoZWV0LWRlc2NyaXB0aW9uJyxcbiAgc3R5bGVzOiBbJzpob3N0IHsgZGlzcGxheTogYmxvY2s7IH0nXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8cCBjbGFzcz1cInRleHQtc20gdGV4dC1tdXRlZC1mb3JlZ3JvdW5kXCI+XG4gICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgPC9wPlxuICBgLFxuICBob3N0OiB7ICdbYXR0ci5pZF0nOiAnaWQnIH1cbn0pXG5leHBvcnQgY2xhc3MgU2hlZXREZXNjcmlwdGlvbkNvbXBvbmVudCB7XG4gIC8qKiBTdGFibGUgaWQgcmVmZXJlbmNlZCBieSB0aGUgc2hlZXQncyBgYXJpYS1kZXNjcmliZWRieWAuICovXG4gIHJlYWRvbmx5IGlkID0gYHRvbGxlLXNoZWV0LWRlc2NyaXB0aW9uLSR7TWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyKDIsIDkpfWA7XG59XG4iXX0=
@@ -0,0 +1,84 @@
1
+ import { ChangeDetectionStrategy, Component, Input, ChangeDetectorRef, inject } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { cva } from 'class-variance-authority';
4
+ import { cn } from './utils/cn';
5
+ import * as i0 from "@angular/core";
6
+ const shimmerVariants = cva('inline-block max-w-full align-baseline', {
7
+ variants: {
8
+ size: {
9
+ xs: 'text-xs',
10
+ sm: 'text-sm',
11
+ default: 'text-base',
12
+ lg: 'text-lg',
13
+ xl: 'text-xl',
14
+ },
15
+ active: {
16
+ // `.shimmer` is the animated gradient-sweep utility from theme.css.
17
+ true: 'shimmer',
18
+ false: 'text-muted-foreground',
19
+ },
20
+ },
21
+ defaultVariants: { size: 'default', active: true },
22
+ });
23
+ /**
24
+ * Shimmering text for a live, in-progress status — "Thinking…", "Generating
25
+ * response…". While `active` the projected text sweeps with the `.shimmer`
26
+ * utility; when it is false the same text renders plain and static, so the
27
+ * label can stay mounted as the state settles.
28
+ *
29
+ * ```html
30
+ * <tolle-shimmer [active]="isStreaming" size="sm">Generating response…</tolle-shimmer>
31
+ * ```
32
+ * @new
33
+ */
34
+ export class ShimmerComponent {
35
+ cdr = inject(ChangeDetectorRef);
36
+ /**
37
+ * Angular writes a bound `class` input through its styling path, which does
38
+ * not mark an OnPush component dirty — without this hook the component keeps
39
+ * rendering the class it was born with.
40
+ */
41
+ ngOnChanges() {
42
+ this.cdr.markForCheck();
43
+ }
44
+ /** Runs the shimmer animation; false renders plain static text. @default true */
45
+ active = true;
46
+ /** Text size of the label. @default 'default' */
47
+ size = 'default';
48
+ /** Extra Tailwind classes merged onto the label via `cn()` (last-wins). */
49
+ class = '';
50
+ get computedClass() {
51
+ return cn(shimmerVariants({ size: this.size, active: this.active }), this.class);
52
+ }
53
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ShimmerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
54
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: ShimmerComponent, isStandalone: true, selector: "tolle-shimmer", inputs: { active: "active", size: "size", class: "class" }, usesOnChanges: true, ngImport: i0, template: `
55
+ <span
56
+ [attr.role]="active ? 'status' : null"
57
+ [attr.aria-live]="active ? 'polite' : null"
58
+ [attr.data-active]="active ? '' : null"
59
+ [class]="computedClass"
60
+ >
61
+ <ng-content></ng-content>
62
+ </span>
63
+ `, isInline: true, styles: [":host{display:inline-flex}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
64
+ }
65
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ShimmerComponent, decorators: [{
66
+ type: Component,
67
+ args: [{ selector: 'tolle-shimmer', standalone: true, imports: [CommonModule], changeDetection: ChangeDetectionStrategy.OnPush, template: `
68
+ <span
69
+ [attr.role]="active ? 'status' : null"
70
+ [attr.aria-live]="active ? 'polite' : null"
71
+ [attr.data-active]="active ? '' : null"
72
+ [class]="computedClass"
73
+ >
74
+ <ng-content></ng-content>
75
+ </span>
76
+ `, styles: [":host{display:inline-flex}\n"] }]
77
+ }], propDecorators: { active: [{
78
+ type: Input
79
+ }], size: [{
80
+ type: Input
81
+ }], class: [{
82
+ type: Input
83
+ }] } });
84
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hpbW1lci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy90b2xsZS9zcmMvbGliL3NoaW1tZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLGlCQUFpQixFQUFhLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNoSCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLEdBQUcsRUFBcUIsTUFBTSwwQkFBMEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sWUFBWSxDQUFDOztBQUVoQyxNQUFNLGVBQWUsR0FBRyxHQUFHLENBQUMsd0NBQXdDLEVBQUU7SUFDcEUsUUFBUSxFQUFFO1FBQ1IsSUFBSSxFQUFFO1lBQ0osRUFBRSxFQUFFLFNBQVM7WUFDYixFQUFFLEVBQUUsU0FBUztZQUNiLE9BQU8sRUFBRSxXQUFXO1lBQ3BCLEVBQUUsRUFBRSxTQUFTO1lBQ2IsRUFBRSxFQUFFLFNBQVM7U0FDZDtRQUNELE1BQU0sRUFBRTtZQUNOLG9FQUFvRTtZQUNwRSxJQUFJLEVBQUUsU0FBUztZQUNmLEtBQUssRUFBRSx1QkFBdUI7U0FDL0I7S0FDRjtJQUNELGVBQWUsRUFBRSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtDQUNuRCxDQUFDLENBQUM7QUFJSDs7Ozs7Ozs7OztHQVVHO0FBa0JILE1BQU0sT0FBTyxnQkFBZ0I7SUFDVixHQUFHLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFFakQ7Ozs7T0FJRztJQUNILFdBQVc7UUFDVCxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFRCxpRkFBaUY7SUFDeEUsTUFBTSxHQUFHLElBQUksQ0FBQztJQUN2QixpREFBaUQ7SUFDeEMsSUFBSSxHQUF5QixTQUFTLENBQUM7SUFDaEQsMkVBQTJFO0lBQ2xFLEtBQUssR0FBRyxFQUFFLENBQUM7SUFFcEIsSUFBSSxhQUFhO1FBQ2YsT0FBTyxFQUFFLENBQUMsZUFBZSxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNuRixDQUFDO3dHQXJCVSxnQkFBZ0I7NEZBQWhCLGdCQUFnQiwwSkFYakI7Ozs7Ozs7OztHQVNULHFHQVhTLFlBQVk7OzRGQWFYLGdCQUFnQjtrQkFqQjVCLFNBQVM7K0JBQ0UsZUFBZSxjQUViLElBQUksV0FDUCxDQUFDLFlBQVksQ0FBQyxtQkFDTix1QkFBdUIsQ0FBQyxNQUFNLFlBQ3JDOzs7Ozs7Ozs7R0FTVDs4QkFlUSxNQUFNO3NCQUFkLEtBQUs7Z0JBRUcsSUFBSTtzQkFBWixLQUFLO2dCQUVHLEtBQUs7c0JBQWIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIElucHV0LCBDaGFuZ2VEZXRlY3RvclJlZiwgT25DaGFuZ2VzLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBjdmEsIHR5cGUgVmFyaWFudFByb3BzIH0gZnJvbSAnY2xhc3MtdmFyaWFuY2UtYXV0aG9yaXR5JztcbmltcG9ydCB7IGNuIH0gZnJvbSAnLi91dGlscy9jbic7XG5cbmNvbnN0IHNoaW1tZXJWYXJpYW50cyA9IGN2YSgnaW5saW5lLWJsb2NrIG1heC13LWZ1bGwgYWxpZ24tYmFzZWxpbmUnLCB7XG4gIHZhcmlhbnRzOiB7XG4gICAgc2l6ZToge1xuICAgICAgeHM6ICd0ZXh0LXhzJyxcbiAgICAgIHNtOiAndGV4dC1zbScsXG4gICAgICBkZWZhdWx0OiAndGV4dC1iYXNlJyxcbiAgICAgIGxnOiAndGV4dC1sZycsXG4gICAgICB4bDogJ3RleHQteGwnLFxuICAgIH0sXG4gICAgYWN0aXZlOiB7XG4gICAgICAvLyBgLnNoaW1tZXJgIGlzIHRoZSBhbmltYXRlZCBncmFkaWVudC1zd2VlcCB1dGlsaXR5IGZyb20gdGhlbWUuY3NzLlxuICAgICAgdHJ1ZTogJ3NoaW1tZXInLFxuICAgICAgZmFsc2U6ICd0ZXh0LW11dGVkLWZvcmVncm91bmQnLFxuICAgIH0sXG4gIH0sXG4gIGRlZmF1bHRWYXJpYW50czogeyBzaXplOiAnZGVmYXVsdCcsIGFjdGl2ZTogdHJ1ZSB9LFxufSk7XG5cbmV4cG9ydCB0eXBlIFNoaW1tZXJQcm9wcyA9IFZhcmlhbnRQcm9wczx0eXBlb2Ygc2hpbW1lclZhcmlhbnRzPjtcblxuLyoqXG4gKiBTaGltbWVyaW5nIHRleHQgZm9yIGEgbGl2ZSwgaW4tcHJvZ3Jlc3Mgc3RhdHVzIOKAlCBcIlRoaW5raW5n4oCmXCIsIFwiR2VuZXJhdGluZ1xuICogcmVzcG9uc2XigKZcIi4gV2hpbGUgYGFjdGl2ZWAgdGhlIHByb2plY3RlZCB0ZXh0IHN3ZWVwcyB3aXRoIHRoZSBgLnNoaW1tZXJgXG4gKiB1dGlsaXR5OyB3aGVuIGl0IGlzIGZhbHNlIHRoZSBzYW1lIHRleHQgcmVuZGVycyBwbGFpbiBhbmQgc3RhdGljLCBzbyB0aGVcbiAqIGxhYmVsIGNhbiBzdGF5IG1vdW50ZWQgYXMgdGhlIHN0YXRlIHNldHRsZXMuXG4gKlxuICogYGBgaHRtbFxuICogPHRvbGxlLXNoaW1tZXIgW2FjdGl2ZV09XCJpc1N0cmVhbWluZ1wiIHNpemU9XCJzbVwiPkdlbmVyYXRpbmcgcmVzcG9uc2XigKY8L3RvbGxlLXNoaW1tZXI+XG4gKiBgYGBcbiAqIEBuZXdcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndG9sbGUtc2hpbW1lcicsXG4gIHN0eWxlczogWyc6aG9zdCB7IGRpc3BsYXk6IGlubGluZS1mbGV4OyB9J10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6IGBcbiAgICA8c3BhblxuICAgICAgW2F0dHIucm9sZV09XCJhY3RpdmUgPyAnc3RhdHVzJyA6IG51bGxcIlxuICAgICAgW2F0dHIuYXJpYS1saXZlXT1cImFjdGl2ZSA/ICdwb2xpdGUnIDogbnVsbFwiXG4gICAgICBbYXR0ci5kYXRhLWFjdGl2ZV09XCJhY3RpdmUgPyAnJyA6IG51bGxcIlxuICAgICAgW2NsYXNzXT1cImNvbXB1dGVkQ2xhc3NcIlxuICAgID5cbiAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICA8L3NwYW4+XG4gIGAsXG59KVxuZXhwb3J0IGNsYXNzIFNoaW1tZXJDb21wb25lbnQgIGltcGxlbWVudHMgT25DaGFuZ2Vze1xuICBwcml2YXRlIHJlYWRvbmx5IGNkciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG5cbiAgLyoqXG4gICAqIEFuZ3VsYXIgd3JpdGVzIGEgYm91bmQgYGNsYXNzYCBpbnB1dCB0aHJvdWdoIGl0cyBzdHlsaW5nIHBhdGgsIHdoaWNoIGRvZXNcbiAgICogbm90IG1hcmsgYW4gT25QdXNoIGNvbXBvbmVudCBkaXJ0eSDigJQgd2l0aG91dCB0aGlzIGhvb2sgdGhlIGNvbXBvbmVudCBrZWVwc1xuICAgKiByZW5kZXJpbmcgdGhlIGNsYXNzIGl0IHdhcyBib3JuIHdpdGguXG4gICAqL1xuICBuZ09uQ2hhbmdlcygpOiB2b2lkIHtcbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIC8qKiBSdW5zIHRoZSBzaGltbWVyIGFuaW1hdGlvbjsgZmFsc2UgcmVuZGVycyBwbGFpbiBzdGF0aWMgdGV4dC4gQGRlZmF1bHQgdHJ1ZSAqL1xuICBASW5wdXQoKSBhY3RpdmUgPSB0cnVlO1xuICAvKiogVGV4dCBzaXplIG9mIHRoZSBsYWJlbC4gQGRlZmF1bHQgJ2RlZmF1bHQnICovXG4gIEBJbnB1dCgpIHNpemU6IFNoaW1tZXJQcm9wc1snc2l6ZSddID0gJ2RlZmF1bHQnO1xuICAvKiogRXh0cmEgVGFpbHdpbmQgY2xhc3NlcyBtZXJnZWQgb250byB0aGUgbGFiZWwgdmlhIGBjbigpYCAobGFzdC13aW5zKS4gKi9cbiAgQElucHV0KCkgY2xhc3MgPSAnJztcblxuICBnZXQgY29tcHV0ZWRDbGFzcygpIHtcbiAgICByZXR1cm4gY24oc2hpbW1lclZhcmlhbnRzKHsgc2l6ZTogdGhpcy5zaXplLCBhY3RpdmU6IHRoaXMuYWN0aXZlIH0pLCB0aGlzLmNsYXNzKTtcbiAgfVxufVxuIl19
@@ -295,6 +295,11 @@ export class SidebarComponent {
295
295
  )">
296
296
  {{ item.title }}
297
297
  </span>
298
+ @if (item.badge && !collapsed) {
299
+ <span class="ml-auto shrink-0 rounded-full border border-primary/30 bg-primary/10 px-1.5 py-0.5 text-[10px] font-medium leading-none text-primary">
300
+ {{ item.badge }}
301
+ </span>
302
+ }
298
303
  </a>
299
304
  }
300
305
  }
@@ -493,6 +498,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
493
498
  )">
494
499
  {{ item.title }}
495
500
  </span>
501
+ @if (item.badge && !collapsed) {
502
+ <span class="ml-auto shrink-0 rounded-full border border-primary/30 bg-primary/10 px-1.5 py-0.5 text-[10px] font-medium leading-none text-primary">
503
+ {{ item.badge }}
504
+ </span>
505
+ }
496
506
  </a>
497
507
  }
498
508
  }
@@ -515,4 +525,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
515
525
  }], variant: [{
516
526
  type: Input
517
527
  }] } });
518
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZWJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy90b2xsZS9zcmMvbGliL3NpZGViYXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUE0QixNQUFNLGVBQWUsQ0FBQztBQUMzRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxZQUFZLENBQUM7OztBQWtPaEMsTUFBTSxPQUFPLGdCQUFnQjtJQUNsQixLQUFLLEdBQW1CLEVBQUUsQ0FBQztJQUMzQixTQUFTLEdBQUcsS0FBSyxDQUFDO0lBQ2xCLEtBQUssR0FBRyxFQUFFLENBQUM7SUFFcEI7Ozs7OztPQU1HO0lBQ00sT0FBTyxHQUFrRCxTQUFTLENBQUM7SUFFNUUsZUFBZSxHQUFHLElBQUksR0FBRyxFQUFVLENBQUM7SUFDcEMsZ0JBQWdCLEdBQUcsSUFBSSxHQUFHLEVBQVUsQ0FBQztJQUVsQixFQUFFLEdBQUcsRUFBRSxDQUFDO0lBRTNCLElBQUksYUFBYTtRQUNmLE9BQU8sRUFBRSxDQUNQLG1CQUFtQjtRQUNuQixnRkFBZ0Y7UUFDaEYsSUFBSSxDQUFDLE9BQU8sS0FBSyxTQUFTLElBQUksc0ZBQXNGO1FBRXBILDZCQUE2QjtRQUM3QixJQUFJLENBQUMsT0FBTyxLQUFLLFdBQVcsSUFBSSw4REFBOEQ7UUFFOUYsOENBQThDO1FBQzlDLElBQUksQ0FBQyxPQUFPLEtBQUssT0FBTyxJQUFJLGtDQUFrQztRQUU5RCxvQkFBb0I7UUFDcEIsSUFBSSxDQUFDLE9BQU8sS0FBSyxTQUFTLElBQUksaUdBQWlHLENBQ2hJLENBQUM7SUFDSixDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLElBQUksT0FB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Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FrTVQ7OEJBUVEsS0FBSztzQkFBYixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQVNHLE9BQU87c0JBQWYsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uQ2hhbmdlcywgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFJvdXRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBjbiB9IGZyb20gJy4vdXRpbHMvY24nO1xuXG4vLyAtLS0gSW50ZXJmYWNlcyAtLS1cbmV4cG9ydCB0eXBlIFNpZGViYXJJdGVtID0ge1xuICB0aXRsZTogc3RyaW5nO1xuICB1cmw/OiBzdHJpbmc7XG4gIGljb24/OiBzdHJpbmc7XG4gIGlzQWN0aXZlPzogYm9vbGVhbjtcbiAgaXRlbXM/OiBTaWRlYmFySXRlbVtdO1xuICBpZD86IHN0cmluZztcbiAgZXhwYW5kZWQ/OiBib29sZWFuO1xuICAvKiogUmVuZGVyIGFzIGEgcGxhaW4gYW5jaG9yIHRvIGFuIGV4dGVybmFsIFVSTCAvIHN0YXRpYyBmaWxlIChvcGVucyBpbiBhIG5ldyB0YWIpIGluc3RlYWQgb2YgYSByb3V0ZXIgbGluay4gKi9cbiAgZXh0ZXJuYWw/OiBib29sZWFuO1xufVxuXG5leHBvcnQgdHlwZSBTaWRlYmFyR3JvdXAgPSB7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIGl0ZW1zOiBTaWRlYmFySXRlbVtdO1xuICBpZD86IHN0cmluZztcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndG9sbGUtc2lkZWJhcicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFJvdXRlck1vZHVsZV0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPGFzaWRlIFtjbGFzc109XCJjbihcbiAgICAgICdmbGV4IGZsZXgtY29sIGgtZnVsbCBiZy1iYWNrZ3JvdW5kIHRyYW5zaXRpb24tW3dpZHRoXSBkdXJhdGlvbi0zMDAgZWFzZS1pbi1vdXQgc2hyaW5rLTAgb3ZlcmZsb3ctaGlkZGVuJyxcbiAgICAgIGNvbGxhcHNlZCA/ICd3LTE2JyA6ICd3LTY0JyxcbiAgICAgIGNsYXNzXG4gICAgKVwiPlxuICAgICAgPGRpdiBjbGFzcz1cImZsZXggaC0xNCBzaHJpbmstMCBpdGVtcy1jZW50ZXIgcHgtMyBvdmVyZmxvdy1oaWRkZW4gd2hpdGVzcGFjZS1ub3dyYXBcIj5cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2hlYWRlcl1cIj48L25nLWNvbnRlbnQ+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiBjbGFzcz1cImZsZXgtMSBtaW4taC0wIG92ZXJmbG93LXktYXV0byBvdmVyZmxvdy14LWhpZGRlbiBweS00IHB4LTNcIj5cblxuICAgICAgICBAZm9yIChncm91cCBvZiBpdGVtczsgdHJhY2sgZ3JvdXAuaWQgfHwgZ3JvdXAudGl0bGUgfHwgJGluZGV4OyBsZXQgZ0luZGV4ID0gJGluZGV4KSB7XG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTZcIj5cblxuICAgICAgICAgICAgPGRpdiBbY2xhc3NdPVwiY24oXG4gICAgICAgICAgICAgICdtYi0yIHB4LTIgdGV4dC14cyBmb250LXNlbWlib2xkIHVwcGVyY2FzZSB0cmFja2luZy13aWRlciB0ZXh0LW11dGVkLWZvcmVncm91bmQvNzAgdHJhbnNpdGlvbi1hbGwgZHVyYXRpb24tMjAwIG92ZXJmbG93LWhpZGRlbicsXG4gICAgICAgICAgICAgIGNvbGxhcHNlZCA/ICdvcGFjaXR5LTAgaC0wIG1iLTAgcHgtMCcgOiAnb3BhY2l0eS0xMDAgaC1hdXRvJ1xuICAgICAgICAgICAgKVwiPlxuICAgICAgICAgICAgICB7eyBncm91cC50aXRsZSB9fVxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGdhcC0xXCI+XG4gICAgICAgICAgICAgIEBmb3IgKGl0ZW0gb2YgZ3JvdXAuaXRlbXM7IHRyYWNrIGl0ZW0uaWQgfHwgaXRlbS50aXRsZSB8fCAkaW5kZXg7IGxldCBpID0gJGluZGV4KSB7XG5cbiAgICAgICAgICAgICAgICBAaWYgKGl0ZW0uaXRlbXMgJiYgaXRlbS5pdGVtcy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgIDwhLS0gUGFyZW50IEl0ZW0gKEdyb3VwKSAtLT5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyZWxhdGl2ZVwiPlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZVBhcmVudChncm91cCwgaXRlbSwgZ0luZGV4LCBpKVwiXG4gICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImNvbGxhcHNlZFwiXG4gICAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1leHBhbmRlZF09XCJpc1BhcmVudEV4cGFuZGVkKGdyb3VwLCBpdGVtLCBnSW5kZXgsIGkpXCJcbiAgICAgICAgICAgICAgICAgICAgICBbY2xhc3NdPVwiY24oXG4gICAgICAgICAgICAgICAgICAgICAgICAnZ3JvdXAgdy1mdWxsIHJlbGF0aXZlIGZsZXggaXRlbXMtY2VudGVyIHJvdW5kZWQtbWQgcHgtMyBweS0yIHRleHQtc20gZm9udC1tZWRpdW0gdHJhbnNpdGlvbi1jb2xvcnMgZm9jdXMtdmlzaWJsZTpvdXRsaW5lLW5vbmUgZm9jdXMtdmlzaWJsZTpyaW5nLTIgZm9jdXMtdmlzaWJsZTpyaW5nLXJpbmcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ2hvdmVyOmJnLWFjY2VudCBob3Zlcjp0ZXh0LWFjY2VudC1mb3JlZ3JvdW5kJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzUGFyZW50RXhwYW5kZWQoZ3JvdXAsIGl0ZW0sIGdJbmRleCwgaSkgPyAndGV4dC1mb3JlZ3JvdW5kIGJnLWFjY2VudC81MCcgOiAndGV4dC1tdXRlZC1mb3JlZ3JvdW5kJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbGxhcHNlZCA/ICdqdXN0aWZ5LWNlbnRlcicgOiAnanVzdGlmeS1zdGFydCdcbiAgICAgICAgICAgICAgICAgICAgICApXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxpIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIFtjbGFzc109XCJjbihcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS5pY29uIHx8ICdyaS1jaXJjbGUtZmlsbCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICdoLTQgdy00IHRleHQtbGcgc2hyaW5rLTAgdHJhbnNpdGlvbi10cmFuc2Zvcm0nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAhY29sbGFwc2VkICYmICdncm91cC1ob3ZlcjpzY2FsZS0xMTAnXG4gICAgICAgICAgICAgICAgICAgICAgICApXCI+PC9pPlxuXG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gW2NsYXNzXT1cImNuKFxuICAgICAgICAgICAgICAgICAgICAgICAgJ3RydW5jYXRlIHRyYW5zaXRpb24tYWxsIGR1cmF0aW9uLTMwMCcsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xsYXBzZWQgPyAnb3BhY2l0eS0wIHctMCBtbC0wJyA6ICdvcGFjaXR5LTEwMCB3LWF1dG8gbWwtMydcbiAgICAgICAgICAgICAgICAgICAgICApXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBpdGVtLnRpdGxlIH19XG4gICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuXG4gICAgICAgICAgICAgICAgICAgICAgQGlmICghY29sbGFwc2VkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8aSBbY2xhc3NdPVwiY24oXG4gICAgICAgICAgICAgICAgICAgICAgICAgICdyaS1hcnJvdy1kb3duLXMtbGluZSBtbC1hdXRvIHRyYW5zaXRpb24tdHJhbnNmb3JtIGR1cmF0aW9uLTMwMCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGlzUGFyZW50RXhwYW5kZWQoZ3JvdXAsIGl0ZW0sIGdJbmRleCwgaSkgPyAncm90YXRlLTE4MCcgOiAnJ1xuICAgICAgICAgICAgICAgICAgICAgICAgKVwiPjwvaT5cbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuXG4gICAgICAgICAgICAgICAgICAgIDwhLS0gU3VibWVudSBHcmlkIFRyYW5zaXRpb24gLS0+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgW2NsYXNzXT1cImNuKFxuICAgICAgICAgICAgICAgICAgICAgICdncmlkIHRyYW5zaXRpb24tW2dyaWQtdGVtcGxhdGUtcm93c10gZHVyYXRpb24tMzAwIGVhc2UtaW4tb3V0JyxcbiAgICAgICAgICAgICAgICAgICAgICBpc1BhcmVudEV4cGFuZGVkKGdyb3VwLCBpdGVtLCBnSW5kZXgsIGkpICYmICFjb2xsYXBzZWQgPyAnZ3JpZC1yb3dzLVsxZnJdIG9wYWNpdHktMTAwJyA6ICdncmlkLXJvd3MtWzBmcl0gb3BhY2l0eS0wJ1xuICAgICAgICAgICAgICAgICAgICApXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm92ZXJmbG93LWhpZGRlblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgZ2FwLTEgbXQtMSBtbC00IGJvcmRlci1sIGJvcmRlci1ib3JkZXIvNTAgcGwtMlwiPlxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgIEBmb3IgKHN1Ykl0ZW0gb2YgaXRlbS5pdGVtczsgdHJhY2sgc3ViSXRlbS5pZCB8fCBzdWJJdGVtLnRpdGxlIHx8ICRpbmRleDsgbGV0IGogPSAkaW5kZXgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYgKHN1Ykl0ZW0uaXRlbXMgJiYgc3ViSXRlbS5pdGVtcy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gR3JhbmRjaGlsZCBJdGVtIEdyb3VwIChSZWN1cnNpdmUtaXNoIGxvZ2ljIGZvciBkZXB0aCAyKSAtLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyZWxhdGl2ZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZUNoaWxkKGdyb3VwLCBpdGVtLCBzdWJJdGVtLCBnSW5kZXgsIGksIGopOyAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtZXhwYW5kZWRdPVwiaXNDaGlsZEV4cGFuZGVkKGdyb3VwLCBpdGVtLCBzdWJJdGVtLCBnSW5kZXgsIGksIGopXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3NdPVwiY24oXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZ3JvdXAgdy1mdWxsIHJlbGF0aXZlIGZsZXggaXRlbXMtY2VudGVyIHJvdW5kZWQtbWQgcHgtMyBweS0xLjUgdGV4dC1zbSBmb250LW1lZGl1bSB0cmFuc2l0aW9uLWNvbG9ycyBmb2N1cy12aXNpYmxlOm91dGxpbmUtbm9uZSBmb2N1cy12aXNpYmxlOnJpbmctMiBmb2N1cy12aXNpYmxlOnJpbmctcmluZycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaG92ZXI6YmctYWNjZW50IGhvdmVyOnRleHQtYWNjZW50LWZvcmVncm91bmQgdGV4dC1tdXRlZC1mb3JlZ3JvdW5kJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzQ2hpbGRFeHBhbmRlZChncm91cCwgaXRlbSwgc3ViSXRlbSwgZ0luZGV4LCBpLCBqKSA/ICd0ZXh0LWZvcmVncm91bmQgYmctYWNjZW50LzMwJyA6ICcnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInctMS41IGgtMS41IHJvdW5kZWQtZnVsbCBiZy1ib3JkZXIgc2hyaW5rLTBcIj48L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtbC0yIHRydW5jYXRlXCI+e3sgc3ViSXRlbS50aXRsZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBbY2xhc3NdPVwiY24oXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncmktYXJyb3ctcmlnaHQtcy1saW5lIG1sLWF1dG8gdHJhbnNpdGlvbi10cmFuc2Zvcm0gZHVyYXRpb24tMzAwIHRleHQteHMnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNDaGlsZEV4cGFuZGVkKGdyb3VwLCBpdGVtLCBzdWJJdGVtLCBnSW5kZXgsIGksIGopID8gJ3JvdGF0ZS05MCcgOiAnJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcIj48L2k+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgW2NsYXNzXT1cImNuKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdncmlkIHRyYW5zaXRpb24tW2dyaWQtdGVtcGxhdGUtcm93c10gZHVyYXRpb24tMzAwIGVhc2UtaW4tb3V0JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc0NoaWxkRXhwYW5kZWQoZ3JvdXAsIGl0ZW0sIHN1Ykl0ZW0sIGdJbmRleCwgaSwgaikgPyAnZ3JpZC1yb3dzLVsxZnJdIG9wYWNpdHktMTAwJyA6ICdncmlkLXJvd3MtWzBmcl0gb3BhY2l0eS0wJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm92ZXJmbG93LWhpZGRlblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgZ2FwLTEgbXQtMSBtbC00IGJvcmRlci1sIGJvcmRlci1ib3JkZXIvMzAgcGwtMlwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAZm9yIChncmFuZENoaWxkIG9mIHN1Ykl0ZW0uaXRlbXM7IHRyYWNrIGdyYW5kQ2hpbGQudGl0bGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3JvdXRlckxpbmtdPVwiZ3JhbmRDaGlsZC51cmxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3JvdXRlckxpbmtBY3RpdmVdPVwiYWN0aXZlQ2xhc3Nlc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcm91dGVyTGlua0FjdGl2ZU9wdGlvbnNdPVwieyBleGFjdDogdHJ1ZSB9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTIgaG92ZXI6bm8tdW5kZXJsaW5lIHJvdW5kZWQtbWQgcHgtMyBweS0xLjUgdGV4dC1zbSB0cmFuc2l0aW9uLWNvbG9ycyBob3ZlcjpiZy1hY2NlbnQgaG92ZXI6dGV4dC1hY2NlbnQtZm9yZWdyb3VuZCB0ZXh0LW11dGVkLWZvcmVncm91bmQgd2hpdGVzcGFjZS1ub3dyYXAgZm9jdXMtdmlzaWJsZTpvdXRsaW5lLW5vbmUgZm9jdXMtdmlzaWJsZTpyaW5nLTIgZm9jdXMtdmlzaWJsZTpyaW5nLXJpbmdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidy0xLjUgaC0xLjUgcm91bmRlZC1mdWxsIGJnLWJvcmRlci83MCBzaHJpbmstMFwiPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidHJ1bmNhdGVcIj57eyBncmFuZENoaWxkLnRpdGxlIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gU3RhbmRhcmQgU3ViIEl0ZW0gLS0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcm91dGVyTGlua109XCJzdWJJdGVtLnVybFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtyb3V0ZXJMaW5rQWN0aXZlXT1cImFjdGl2ZUNsYXNzZXNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcm91dGVyTGlua0FjdGl2ZU9wdGlvbnNdPVwieyBleGFjdDogdHJ1ZSB9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMiBob3Zlcjpuby11bmRlcmxpbmUgcm91bmRlZC1tZCBweC0zIHB5LTEuNSB0ZXh0LXNtIHRyYW5zaXRpb24tY29sb3JzIGhvdmVyOmJnLWFjY2VudCBob3Zlcjp0ZXh0LWFjY2VudC1mb3JlZ3JvdW5kIHRleHQtbXV0ZWQtZm9yZWdyb3VuZCB3aGl0ZXNwYWNlLW5vd3JhcCBmb2N1cy12aXNpYmxlOm91dGxpbmUtbm9uZSBmb2N1cy12aXNpYmxlOnJpbmctMiBmb2N1cy12aXNpYmxlOnJpbmctcmluZ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidy0xLjUgaC0xLjUgcm91bmRlZC1mdWxsIGJnLWJvcmRlciBzaHJpbmstMFwiPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0cnVuY2F0ZVwiPnt7IHN1Ykl0ZW0udGl0bGUgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgQGVsc2UgaWYgKGl0ZW0uZXh0ZXJuYWwpIHtcbiAgICAgICAgICAgICAgICAgIDwhLS0gRXh0ZXJuYWwgLyBzdGF0aWMtZmlsZSBJdGVtIChvcGVucyBpbiBhIG5ldyB0YWIpIC0tPlxuICAgICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgW2hyZWZdPVwiaXRlbS51cmxcIlxuICAgICAgICAgICAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgICAgICAgICAgICAgICByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCJcbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzXT1cImNuKFxuICAgICAgICAgICAgICAgICAgICAgICdncm91cCByZWxhdGl2ZSBob3Zlcjpuby11bmRlcmxpbmUgZmxleCBpdGVtcy1jZW50ZXIgcm91bmRlZC1tZCBweC0zIHB5LTIgdGV4dC1zbSBmb250LW1lZGl1bSB0cmFuc2l0aW9uLWNvbG9ycyBmb2N1cy12aXNpYmxlOm91dGxpbmUtbm9uZSBmb2N1cy12aXNpYmxlOnJpbmctMiBmb2N1cy12aXNpYmxlOnJpbmctcmluZycsXG4gICAgICAgICAgICAgICAgICAgICAgJ2hvdmVyOmJnLWFjY2VudCBob3Zlcjp0ZXh0LWFjY2VudC1mb3JlZ3JvdW5kIHRleHQtbXV0ZWQtZm9yZWdyb3VuZCcsXG4gICAgICAgICAgICAgICAgICAgICAgY29sbGFwc2VkID8gJ2p1c3RpZnktY2VudGVyJyA6ICdqdXN0aWZ5LXN0YXJ0J1xuICAgICAgICAgICAgICAgICAgICApXCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPGkgYXJpYS1oaWRkZW49XCJ0cnVlXCIgW2NsYXNzXT1cImNuKFxuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS5pY29uIHx8ICdyaS1jaXJjbGUtZmlsbCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAnaC00IHctNCB0ZXh0LWxnIHNocmluay0wIHRyYW5zaXRpb24tdHJhbnNmb3JtJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICFjb2xsYXBzZWQgJiYgJ2dyb3VwLWhvdmVyOnNjYWxlLTExMCdcbiAgICAgICAgICAgICAgICAgICAgICApXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBbY2xhc3NdPVwiY24oXG4gICAgICAgICAgICAgICAgICAgICAgJ3RydW5jYXRlIHRyYW5zaXRpb24tYWxsIGR1cmF0aW9uLTMwMCcsXG4gICAgICAgICAgICAgICAgICAgICAgY29sbGFwc2VkID8gJ29wYWNpdHktMCB3LTAgbWwtMCcgOiAnb3BhY2l0eS0xMDAgdy1hdXRvIG1sLTMnXG4gICAgICAgICAgICAgICAgICAgIClcIj5cbiAgICAgICAgICAgICAgICAgICAgICB7eyBpdGVtLnRpdGxlIH19XG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgQGlmICghY29sbGFwc2VkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgPGkgYXJpYS1oaWRkZW49XCJ0cnVlXCIgY2xhc3M9XCJyaS1leHRlcm5hbC1saW5rLWxpbmUgbWwtYXV0byB0ZXh0LXhzIG9wYWNpdHktNTAgdHJhbnNpdGlvbi1vcGFjaXR5IGdyb3VwLWhvdmVyOm9wYWNpdHktMTAwXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgIDwhLS0gU3RhbmRhcmQgVG9wLUxldmVsIEl0ZW0gLS0+XG4gICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICBbcm91dGVyTGlua109XCJpdGVtLnVybFwiXG4gICAgICAgICAgICAgICAgICAgIFtyb3V0ZXJMaW5rQWN0aXZlXT1cImFjdGl2ZUNsYXNzZXNcIlxuICAgICAgICAgICAgICAgICAgICBbcm91dGVyTGlua0FjdGl2ZU9wdGlvbnNdPVwieyBleGFjdDogdHJ1ZSB9XCJcbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzXT1cImNuKFxuICAgICAgICAgICAgICAgICAgICAgICdncm91cCByZWxhdGl2ZSBob3Zlcjpuby11bmRlcmxpbmUgZmxleCBpdGVtcy1jZW50ZXIgcm91bmRlZC1tZCBweC0zIHB5LTIgdGV4dC1zbSBmb250LW1lZGl1bSB0cmFuc2l0aW9uLWNvbG9ycyBmb2N1cy12aXNpYmxlOm91dGxpbmUtbm9uZSBmb2N1cy12aXNpYmxlOnJpbmctMiBmb2N1cy12aXNpYmxlOnJpbmctcmluZycsXG4gICAgICAgICAgICAgICAgICAgICAgJ2hvdmVyOmJnLWFjY2VudCBob3Zlcjp0ZXh0LWFjY2VudC1mb3JlZ3JvdW5kIHRleHQtbXV0ZWQtZm9yZWdyb3VuZCcsXG4gICAgICAgICAgICAgICAgICAgICAgY29sbGFwc2VkID8gJ2p1c3RpZnktY2VudGVyJyA6ICdqdXN0aWZ5LXN0YXJ0J1xuICAgICAgICAgICAgICAgICAgICApXCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPGkgYXJpYS1oaWRkZW49XCJ0cnVlXCIgW2NsYXNzXT1cImNuKFxuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS5pY29uIHx8ICdyaS1jaXJjbGUtZmlsbCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAnaC00IHctNCB0ZXh0LWxnIHNocmluay0wIHRyYW5zaXRpb24tdHJhbnNmb3JtJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICFjb2xsYXBzZWQgJiYgJ2dyb3VwLWhvdmVyOnNjYWxlLTExMCdcbiAgICAgICAgICAgICAgICAgICAgICApXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBbY2xhc3NdPVwiY24oXG4gICAgICAgICAgICAgICAgICAgICAgJ3RydW5jYXRlIHRyYW5zaXRpb24tYWxsIGR1cmF0aW9uLTMwMCcsXG4gICAgICAgICAgICAgICAgICAgICAgY29sbGFwc2VkID8gJ29wYWNpdHktMCB3LTAgbWwtMCcgOiAnb3BhY2l0eS0xMDAgdy1hdXRvIG1sLTMnXG4gICAgICAgICAgICAgICAgICAgIClcIj5cbiAgICAgICAgICAgICAgICAgICAgICB7eyBpdGVtLnRpdGxlIH19XG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiBjbGFzcz1cInNocmluay0wIHAtMyBvdmVyZmxvdy1oaWRkZW4gd2hpdGVzcGFjZS1ub3dyYXBcIj5cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2Zvb3Rlcl1cIj48L25nLWNvbnRlbnQ+XG4gICAgICA8L2Rpdj5cbiAgICA8L2FzaWRlPlxuICBgLFxuICBzdHlsZXM6IFtgXG4gICAgOmhvc3QgeyBkaXNwbGF5OiBibG9jazsgaGVpZ2h0OiAxMDAlOyB9XG4gICAgYnV0dG9uOmRpc2FibGVkIHsgY3Vyc29yOiBub3QtYWxsb3dlZDsgb3BhY2l0eTogMC42OyB9XG4gICAgKiB7IHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpOyB9XG4gIGBdXG59KVxuZXhwb3J0IGNsYXNzIFNpZGViYXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICBASW5wdXQoKSBpdGVtczogU2lkZWJhckdyb3VwW10gPSBbXTtcbiAgQElucHV0KCkgY29sbGFwc2VkID0gZmFsc2U7XG4gIEBJbnB1dCgpIGNsYXNzID0gJyc7XG5cbiAgLyoqXG4gICAqIFN0eWxpbmcgdmFyaWFudCBmb3IgYWN0aXZlIGl0ZW1zLlxuICAgKiAtIGRlZmF1bHQ6IFNvbGlkIHByaW1hcnkgYmFja2dyb3VuZCwgbGlnaHQgdGV4dCAoTWF0Y2hlcyBCYWRnZSBEZWZhdWx0KVxuICAgKiAtIHNlY29uZGFyeTogU29saWQgc2Vjb25kYXJ5IGJhY2tncm91bmRcbiAgICogLSBnaG9zdDogVHJhbnNwYXJlbnQgYmFja2dyb3VuZCwgYWNjZW50IHRleHQgKFNoYWRjbiBzdGFuZGFyZClcbiAgICogLSBvdXRsaW5lOiBCb3JkZXJlZFxuICAgKi9cbiAgQElucHV0KCkgdmFyaWFudDogJ2RlZmF1bHQnIHwgJ3NlY29uZGFyeScgfCAnZ2hvc3QnIHwgJ291dGxpbmUnID0gJ2RlZmF1bHQnO1xuXG4gIGV4cGFuZGVkUGFyZW50cyA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuICBleHBhbmRlZENoaWxkcmVuID0gbmV3IFNldDxzdHJpbmc+KCk7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGNuID0gY247XG5cbiAgZ2V0IGFjdGl2ZUNsYXNzZXMoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gY24oXG4gICAgICAndHJhbnNpdGlvbi1jb2xvcnMnLFxuICAgICAgLy8gRGVmYXVsdDogU29saWQgUHJpbWFyeSAoQmFkZ2UtbGlrZSkgd2l0aCBsaWdodGVyIG9wYWNpdHkgKDgwJSBpbnN0ZWFkIG9mIDkwJSlcbiAgICAgIHRoaXMudmFyaWFudCA9PT0gJ2RlZmF1bHQnICYmICdiZy1wcmltYXJ5LzgwIHRleHQtcHJpbWFyeS1mb3JlZ3JvdW5kIGhvdmVyOmJnLXByaW1hcnkgaG92ZXI6dGV4dC1wcmltYXJ5LWZvcmVncm91bmQnLFxuXG4gICAgICAvLyBTZWNvbmRhcnk6IFNvbGlkIFNlY29uZGFyeVxuICAgICAgdGhpcy52YXJpYW50ID09PSAnc2Vjb25kYXJ5JyAmJiAnYmctc2Vjb25kYXJ5IHRleHQtc2Vjb25kYXJ5LWZvcmVncm91bmQgaG92ZXI6Ymctc2Vjb25kYXJ5LzgwJyxcblxuICAgICAgLy8gR2hvc3Q6IFN1YnRsZSBiYWNrZ3JvdW5kIChTaWRlYmFyIHN0YW5kYXJkKVxuICAgICAgdGhpcy52YXJpYW50ID09PSAnZ2hvc3QnICYmICdiZy1hY2NlbnQgdGV4dC1hY2NlbnQtZm9yZWdyb3VuZCcsXG5cbiAgICAgIC8vIE91dGxpbmU6IEJvcmRlcmVkXG4gICAgICB0aGlzLnZhcmlhbnQgPT09ICdvdXRsaW5lJyAmJiAnYm9yZGVyIGJvcmRlci1ib3JkZXIgYmctYmFja2dyb3VuZCB0ZXh0LWZvcmVncm91bmQgaG92ZXI6YmctYWNjZW50IGhvdmVyOnRleHQtYWNjZW50LWZvcmVncm91bmQnXG4gICAgKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICBpZiAoY2hhbmdlc1snY29sbGFwc2VkJ10gJiYgdGhpcy5jb2xsYXBzZWQpIHtcbiAgICAgIHRoaXMuY29sbGFwc2VBbGwoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKGNoYW5nZXNbJ2l0ZW1zJ10pIHtcbiAgICAgIHRoaXMuaW5pdGlhbGl6ZVN0YXRlKCk7XG4gICAgfVxuICB9XG5cbiAgLy8gLS0tIFNUQVRFIElOSVQgLS0tXG4gIHByaXZhdGUgaW5pdGlhbGl6ZVN0YXRlKCkge1xuICAgIHRoaXMuY29sbGFwc2VBbGwoKTtcbiAgICBpZiAoIXRoaXMuaXRlbXMpIHJldHVybjtcblxuICAgIHRoaXMuaXRlbXMuZm9yRWFjaCgoZ3JvdXAsIGdJbmRleCkgPT4ge1xuICAgICAgZ3JvdXAuaXRlbXMuZm9yRWFjaCgoaXRlbSwgaUluZGV4KSA9PiB7XG4gICAgICAgIGNvbnN0IHBhcmVudElkID0gdGhpcy5nZXRQYXJlbnRJZChncm91cCwgaXRlbSwgZ0luZGV4LCBpSW5kZXgpO1xuXG4gICAgICAgIGlmIChpdGVtLmV4cGFuZGVkKSB7XG4gICAgICAgICAgdGhpcy5leHBhbmRlZFBhcmVudHMuYWRkKHBhcmVudElkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChpdGVtLml0ZW1zKSB7XG4gICAgICAgICAgaXRlbS5pdGVtcy5mb3JFYWNoKChzdWJJdGVtLCBzSW5kZXgpID0+IHtcbiAgICAgICAgICAgIGlmIChzdWJJdGVtLmV4cGFuZGVkKSB7XG4gICAgICAgICAgICAgIGNvbnN0IGNoaWxkSWQgPSB0aGlzLmdldENoaWxkSWQoZ3JvdXAsIGl0ZW0sIHN1Ykl0ZW0sIGdJbmRleCwgaUluZGV4LCBzSW5kZXgpO1xuICAgICAgICAgICAgICB0aGlzLmV4cGFuZGVkQ2hpbGRyZW4uYWRkKGNoaWxkSWQpO1xuICAgICAgICAgICAgICB0aGlzLmV4cGFuZGVkUGFyZW50cy5hZGQocGFyZW50SWQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIC8vIC0tLSBJRCBHRU5FUkFUT1JTIC0tLVxuICBnZXRHcm91cElkKGdyb3VwOiBTaWRlYmFyR3JvdXAsIGluZGV4OiBudW1iZXIpOiBzdHJpbmcge1xuICAgIHJldHVybiBncm91cC5pZCB8fCBncm91cC50aXRsZSB8fCBgZy0ke2luZGV4fWA7XG4gIH1cblxuICBnZXRQYXJlbnRJZChncm91cDogU2lkZWJhckdyb3VwLCBpdGVtOiBTaWRlYmFySXRlbSwgZ0luZGV4OiBudW1iZXIsIGlJbmRleDogbnVtYmVyKTogc3RyaW5nIHtcbiAgICBjb25zdCBncm91cElkID0gdGhpcy5nZXRHcm91cElkKGdyb3VwLCBnSW5kZXgpO1xuICAgIGNvbnN0IGl0ZW1JZCA9IGl0ZW0uaWQgfHwgaXRlbS50aXRsZSB8fCBgcC0ke2lJbmRleH1gO1xuICAgIHJldHVybiBgJHtncm91cElkfV9fJHtpdGVtSWR9YDtcbiAgfVxuXG4gIGdldENoaWxkSWQoZ3JvdXA6IFNpZGViYXJHcm91cCwgcGFyZW50OiBTaWRlYmFySXRlbSwgc3ViSXRlbTogU2lkZWJhckl0ZW0sIGdJbmRleDogbnVtYmVyLCBpSW5kZXg6IG51bWJlciwgc0luZGV4OiBudW1iZXIpOiBzdHJpbmcge1xuICAgIGNvbnN0IHBhcmVudElkID0gdGhpcy5nZXRQYXJlbnRJZChncm91cCwgcGFyZW50LCBnSW5kZXgsIGlJbmRleCk7XG4gICAgY29uc3Qgc3ViSXRlbUlkID0gc3ViSXRlbS5pZCB8fCBzdWJJdGVtLnRpdGxlIHx8IGBjLSR7c0luZGV4fWA7XG4gICAgcmV0dXJuIGAke3BhcmVudElkfV9fJHtzdWJJdGVtSWR9YDtcbiAgfVxuXG4gIC8vIC0tLSBBQ1RJT05TIC0tLVxuICB0b2dnbGVQYXJlbnQoZ3JvdXA6IFNpZGViYXJHcm91cCwgaXRlbTogU2lkZWJhckl0ZW0sIGdJbmRleDogbnVtYmVyLCBpSW5kZXg6IG51bWJlcikge1xuICAgIGlmICh0aGlzLmNvbGxhcHNlZCkgcmV0dXJuO1xuICAgIGNvbnN0IGlkID0gdGhpcy5nZXRQYXJlbnRJZChncm91cCwgaXRlbSwgZ0luZGV4LCBpSW5kZXgpO1xuXG4gICAgY29uc3QgbmV3U2V0ID0gbmV3IFNldCh0aGlzLmV4cGFuZGVkUGFyZW50cyk7XG4gICAgaWYgKG5ld1NldC5oYXMoaWQpKSB7XG4gICAgICBuZXdTZXQuZGVsZXRlKGlkKTtcbiAgICB9IGVsc2Uge1xuICAgICAgbmV3U2V0LmFkZChpZCk7XG4gICAgfVxuICAgIHRoaXMuZXhwYW5kZWRQYXJlbnRzID0gbmV3U2V0O1xuICB9XG5cbiAgdG9nZ2xlQ2hpbGQoZ3JvdXA6IFNpZGViYXJHcm91cCwgcGFyZW50OiBTaWRlYmFySXRlbSwgc3ViSXRlbTogU2lkZWJhckl0ZW0sIGdJbmRleDogbnVtYmVyLCBpSW5kZXg6IG51bWJlciwgc0luZGV4OiBudW1iZXIpIHtcbiAgICBjb25zdCBpZCA9IHRoaXMuZ2V0Q2hpbGRJZChncm91cCwgcGFyZW50LCBzdWJJdGVtLCBnSW5kZXgsIGlJbmRleCwgc0luZGV4KTtcblxuICAgIGNvbnN0IG5ld1NldCA9IG5ldyBTZXQodGhpcy5leHBhbmRlZENoaWxkcmVuKTtcbiAgICBpZiAobmV3U2V0LmhhcyhpZCkpIHtcbiAgICAgIG5ld1NldC5kZWxldGUoaWQpO1xuICAgIH0gZWxzZSB7XG4gICAgICBuZXdTZXQuYWRkKGlkKTtcbiAgICB9XG4gICAgdGhpcy5leHBhbmRlZENoaWxkcmVuID0gbmV3U2V0O1xuICB9XG5cbiAgcHJpdmF0ZSBjb2xsYXBzZUFsbCgpIHtcbiAgICB0aGlzLmV4cGFuZGVkUGFyZW50cyA9IG5ldyBTZXQoKTtcbiAgICB0aGlzLmV4cGFuZGVkQ2hpbGRyZW4gPSBuZXcgU2V0KCk7XG4gIH1cblxuICAvLyAtLS0gVEVNUExBVEUgSEVMUEVSUyAtLS1cbiAgaXNQYXJlbnRFeHBhbmRlZChncm91cDogU2lkZWJhckdyb3VwLCBpdGVtOiBTaWRlYmFySXRlbSwgZ0luZGV4OiBudW1iZXIsIGlJbmRleDogbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZXhwYW5kZWRQYXJlbnRzLmhhcyh0aGlzLmdldFBhcmVudElkKGdyb3VwLCBpdGVtLCBnSW5kZXgsIGlJbmRleCkpO1xuICB9XG5cbiAgaXNDaGlsZEV4cGFuZGVkKGdyb3VwOiBTaWRlYmFyR3JvdXAsIHBhcmVudDogU2lkZWJhckl0ZW0sIHN1Ykl0ZW06IFNpZGViYXJJdGVtLCBnSW5kZXg6IG51bWJlciwgaUluZGV4OiBudW1iZXIsIHNJbmRleDogbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZXhwYW5kZWRDaGlsZHJlbi5oYXModGhpcy5nZXRDaGlsZElkKGdyb3VwLCBwYXJlbnQsIHN1Ykl0ZW0sIGdJbmRleCwgaUluZGV4LCBzSW5kZXgpKTtcbiAgfVxufVxuIl19
528
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZWJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy90b2xsZS9zcmMvbGliL3NpZGViYXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUE0QixNQUFNLGVBQWUsQ0FBQztBQUMzRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxZQUFZLENBQUM7OztBQXlPaEMsTUFBTSxPQUFPLGdCQUFnQjtJQUNsQixLQUFLLEdBQW1CLEVBQUUsQ0FBQztJQUMzQixTQUFTLEdBQUcsS0FBSyxDQUFDO0lBQ2xCLEtBQUssR0FBRyxFQUFFLENBQUM7SUFFcEI7Ozs7OztPQU1HO0lBQ00sT0FBTyxHQUFrRCxTQUFTLENBQUM7SUFFNUUsZUFBZSxHQUFHLElBQUksR0FBRyxFQUFVLENBQUM7SUFDcEMsZ0JBQWdCLEdBQUcsSUFBSSxHQUFHLEVBQVUsQ0FBQztJQUVsQixFQUFFLEdBQUcsRUFBRSxDQUFDO0lBRTNCLElBQUksYUFBYTtRQUNmLE9BQU8sRUFBRSxDQUNQLG1CQUFtQjtRQUNuQixnRkFBZ0Y7UUFDaEYsSUFBSSxDQUFDLE9BQU8sS0FBSyxTQUFTLElBQUksc0ZBQXNGO1FBRXBILDZCQUE2QjtRQUM3QixJQUFJLENBQUMsT0FBTyxLQUFLLFdBQVcsSUFBSSw4REFBOEQ7UUFFOUYsOENBQThDO1FBQzlDLElBQUksQ0FBQyxPQUFPLEtBQUssT0FBTyxJQUFJLGtDQUFrQztRQUU5RCxvQkFBb0I7UUFDcEIsSUFBSSxDQUFDLE9BQU8sS0FBSyxTQUFTLElBQUksaUdBQWlHLENBQ2hJLENBQUM7SUFDSixDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLElBQUksT0FBTyxDQUFDLFdBQVcsQ0FBQyxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUMzQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDbkIsT0FBTztRQUNULENBQUM7UUFDRCxJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ3JCLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN6QixDQUFDO0lBQ0gsQ0FBQztJQUVELHFCQUFxQjtJQUNiLGVBQWU7UUFDckIsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ25CLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSztZQUFFLE9BQU87UUFFeEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLEVBQUU7WUFDbkMsS0FBSyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLEVBQUU7Z0JBQ25DLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7Z0JBRS9ELElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO29CQUNsQixJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDckMsQ0FBQztnQkFFRCxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztvQkFDZixJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTt3QkFDckMsSUFBSSxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUM7NEJBQ3JCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQzs0QkFDOUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQzs0QkFDbkMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7d0JBQ3JDLENBQUM7b0JBQ0gsQ0FBQyxDQUFDLENBQUM7Z0JBQ0wsQ0FBQztZQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsd0JBQXdCO0lBQ3hCLFVBQVUsQ0FBQyxLQUFtQixFQUFFLEtBQWE7UUFDM0MsT0FBTyxLQUFLLENBQUMsRUFBRSxJQUFJLEtBQUssQ0FBQyxLQUFLLElBQUksS0FBSyxLQUFLLEVBQUUsQ0FBQztJQUNqRCxDQUFDO0lBRUQsV0FBVyxDQUFDLEtBQW1CLEVBQUUsSUFBaUIsRUFBRSxNQUFjLEVBQUUsTUFBYztRQUNoRixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQztRQUMvQyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsRUFBRSxJQUFJLElBQUksQ0FBQyxLQUFLLElBQUksS0FBSyxNQUFNLEVBQUUsQ0FBQztRQUN0RCxPQUFPLEdBQUcsT0FBTyxLQUFLLE1BQU0sRUFBRSxDQUFDO0lBQ2pDLENBQUM7SUFFRCxVQUFVLENBQUMsS0FBbUIsRUFBRSxNQUFtQixFQUFFLE9BQW9CLEVBQUUsTUFBYyxFQUFFLE1BQWMsRUFBRSxNQUFjO1FBQ3ZILE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDakUsTUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDLEVBQUUsSUFBSSxPQUFPLENBQUMsS0FBSyxJQUFJLEtBQUssTUFBTSxFQUFFLENBQUM7UUFDL0QsT0FBTyxHQUFHLFFBQVEsS0FBSyxTQUFTLEVBQUUsQ0FBQztJQUNyQyxDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLFlBQVksQ0FBQyxLQUFtQixFQUFFLElBQWlCLEVBQUUsTUFBYyxFQUFFLE1BQWM7UUFDakYsSUFBSSxJQUFJLENBQUMsU0FBUztZQUFFLE9BQU87UUFDM0IsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztRQUV6RCxNQUFNLE1BQU0sR0FBRyxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDN0MsSUFBSSxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUM7WUFDbkIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNwQixDQUFDO2FBQU0sQ0FBQztZQUNOLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDakIsQ0FBQztRQUNELElBQUksQ0FBQyxlQUFlLEdBQUcsTUFBTSxDQUFDO0lBQ2hDLENBQUM7SUFFRCxXQUFXLENBQUMsS0FBbUIsRUFBRSxNQUFtQixFQUFFLE9BQW9CLEVBQUUsTUFBYyxFQUFFLE1BQWMsRUFBRSxNQUFjO1FBQ3hILE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztRQUUzRSxNQUFNLE1BQU0sR0FBRyxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUM5QyxJQUFJLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztZQUNuQixNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3BCLENBQUM7YUFBTSxDQUFDO1lBQ04sTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNqQixDQUFDO1FBQ0QsSUFBSSxDQUFDLGdCQUFnQixHQUFHLE1BQU0sQ0FBQztJQUNqQyxDQUFDO0lBRU8sV0FBVztRQUNqQixJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksR0FBRyxFQUFFLENBQUM7UUFDakMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksR0FBRyxFQUFFLENBQUM7SUFDcEMsQ0FBQztJQUVELDJCQUEyQjtJQUMzQixnQkFBZ0IsQ0FBQyxLQUFtQixFQUFFLElBQWlCLEVBQUUsTUFBYyxFQUFFLE1BQWM7UUFDckYsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFDakYsQ0FBQztJQUVELGVBQWUsQ0FBQyxLQUFtQixFQUFFLE1BQW1CLEVBQUUsT0FBb0IsRUFBRSxNQUFjLEVBQUUsTUFBYyxFQUFFLE1BQWM7UUFDNUgsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQ3BHLENBQUM7d0dBL0hVLGdCQUFnQjs0RkFBaEIsZ0JBQWdCLHNMQTlNakI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F1TVQsOE1BeE1TLFlBQVksOEJBQUUsWUFBWTs7NEZBK016QixnQkFBZ0I7a0JBbE41QixTQUFTOytCQUNFLGVBQWUsY0FDYixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsWUFBWSxDQUFDLFlBQzNCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBdU1UOzhCQVFRLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFTRyxPQUFPO3NCQUFmLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkNoYW5nZXMsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBSb3V0ZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgY24gfSBmcm9tICcuL3V0aWxzL2NuJztcblxuLy8gLS0tIEludGVyZmFjZXMgLS0tXG5leHBvcnQgdHlwZSBTaWRlYmFySXRlbSA9IHtcbiAgdGl0bGU6IHN0cmluZztcbiAgdXJsPzogc3RyaW5nO1xuICBpY29uPzogc3RyaW5nO1xuICBpc0FjdGl2ZT86IGJvb2xlYW47XG4gIGl0ZW1zPzogU2lkZWJhckl0ZW1bXTtcbiAgaWQ/OiBzdHJpbmc7XG4gIGV4cGFuZGVkPzogYm9vbGVhbjtcbiAgLyoqIFJlbmRlciBhcyBhIHBsYWluIGFuY2hvciB0byBhbiBleHRlcm5hbCBVUkwgLyBzdGF0aWMgZmlsZSAob3BlbnMgaW4gYSBuZXcgdGFiKSBpbnN0ZWFkIG9mIGEgcm91dGVyIGxpbmsuICovXG4gIGV4dGVybmFsPzogYm9vbGVhbjtcbiAgLyoqIFNob3J0IHRyYWlsaW5nIHBpbGwsIGUuZy4gJ05ldycgb3IgJ0JldGEnLiBIaWRkZW4gd2hpbGUgdGhlIHNpZGViYXIgaXMgY29sbGFwc2VkLiAqL1xuICBiYWRnZT86IHN0cmluZztcbn1cblxuZXhwb3J0IHR5cGUgU2lkZWJhckdyb3VwID0ge1xuICB0aXRsZTogc3RyaW5nO1xuICBpdGVtczogU2lkZWJhckl0ZW1bXTtcbiAgaWQ/OiBzdHJpbmc7XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RvbGxlLXNpZGViYXInLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBSb3V0ZXJNb2R1bGVdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxhc2lkZSBbY2xhc3NdPVwiY24oXG4gICAgICAnZmxleCBmbGV4LWNvbCBoLWZ1bGwgYmctYmFja2dyb3VuZCB0cmFuc2l0aW9uLVt3aWR0aF0gZHVyYXRpb24tMzAwIGVhc2UtaW4tb3V0IHNocmluay0wIG92ZXJmbG93LWhpZGRlbicsXG4gICAgICBjb2xsYXBzZWQgPyAndy0xNicgOiAndy02NCcsXG4gICAgICBjbGFzc1xuICAgIClcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGgtMTQgc2hyaW5rLTAgaXRlbXMtY2VudGVyIHB4LTMgb3ZlcmZsb3ctaGlkZGVuIHdoaXRlc3BhY2Utbm93cmFwXCI+XG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltoZWFkZXJdXCI+PC9uZy1jb250ZW50PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJmbGV4LTEgbWluLWgtMCBvdmVyZmxvdy15LWF1dG8gb3ZlcmZsb3cteC1oaWRkZW4gcHktNCBweC0zXCI+XG5cbiAgICAgICAgQGZvciAoZ3JvdXAgb2YgaXRlbXM7IHRyYWNrIGdyb3VwLmlkIHx8IGdyb3VwLnRpdGxlIHx8ICRpbmRleDsgbGV0IGdJbmRleCA9ICRpbmRleCkge1xuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi02XCI+XG5cbiAgICAgICAgICAgIDxkaXYgW2NsYXNzXT1cImNuKFxuICAgICAgICAgICAgICAnbWItMiBweC0yIHRleHQteHMgZm9udC1zZW1pYm9sZCB1cHBlcmNhc2UgdHJhY2tpbmctd2lkZXIgdGV4dC1tdXRlZC1mb3JlZ3JvdW5kLzcwIHRyYW5zaXRpb24tYWxsIGR1cmF0aW9uLTIwMCBvdmVyZmxvdy1oaWRkZW4nLFxuICAgICAgICAgICAgICBjb2xsYXBzZWQgPyAnb3BhY2l0eS0wIGgtMCBtYi0wIHB4LTAnIDogJ29wYWNpdHktMTAwIGgtYXV0bydcbiAgICAgICAgICAgIClcIj5cbiAgICAgICAgICAgICAge3sgZ3JvdXAudGl0bGUgfX1cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBnYXAtMVwiPlxuICAgICAgICAgICAgICBAZm9yIChpdGVtIG9mIGdyb3VwLml0ZW1zOyB0cmFjayBpdGVtLmlkIHx8IGl0ZW0udGl0bGUgfHwgJGluZGV4OyBsZXQgaSA9ICRpbmRleCkge1xuXG4gICAgICAgICAgICAgICAgQGlmIChpdGVtLml0ZW1zICYmIGl0ZW0uaXRlbXMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICA8IS0tIFBhcmVudCBJdGVtIChHcm91cCkgLS0+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmVsYXRpdmVcIj5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJ0b2dnbGVQYXJlbnQoZ3JvdXAsIGl0ZW0sIGdJbmRleCwgaSlcIlxuICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJjb2xsYXBzZWRcIlxuICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtZXhwYW5kZWRdPVwiaXNQYXJlbnRFeHBhbmRlZChncm91cCwgaXRlbSwgZ0luZGV4LCBpKVwiXG4gICAgICAgICAgICAgICAgICAgICAgW2NsYXNzXT1cImNuKFxuICAgICAgICAgICAgICAgICAgICAgICAgJ2dyb3VwIHctZnVsbCByZWxhdGl2ZSBmbGV4IGl0ZW1zLWNlbnRlciByb3VuZGVkLW1kIHB4LTMgcHktMiB0ZXh0LXNtIGZvbnQtbWVkaXVtIHRyYW5zaXRpb24tY29sb3JzIGZvY3VzLXZpc2libGU6b3V0bGluZS1ub25lIGZvY3VzLXZpc2libGU6cmluZy0yIGZvY3VzLXZpc2libGU6cmluZy1yaW5nJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICdob3ZlcjpiZy1hY2NlbnQgaG92ZXI6dGV4dC1hY2NlbnQtZm9yZWdyb3VuZCcsXG4gICAgICAgICAgICAgICAgICAgICAgICBpc1BhcmVudEV4cGFuZGVkKGdyb3VwLCBpdGVtLCBnSW5kZXgsIGkpID8gJ3RleHQtZm9yZWdyb3VuZCBiZy1hY2NlbnQvNTAnIDogJ3RleHQtbXV0ZWQtZm9yZWdyb3VuZCcsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xsYXBzZWQgPyAnanVzdGlmeS1jZW50ZXInIDogJ2p1c3RpZnktc3RhcnQnXG4gICAgICAgICAgICAgICAgICAgICAgKVwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8aSBhcmlhLWhpZGRlbj1cInRydWVcIiBbY2xhc3NdPVwiY24oXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0uaWNvbiB8fCAncmktY2lyY2xlLWZpbGwnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAnaC00IHctNCB0ZXh0LWxnIHNocmluay0wIHRyYW5zaXRpb24tdHJhbnNmb3JtJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIWNvbGxhcHNlZCAmJiAnZ3JvdXAtaG92ZXI6c2NhbGUtMTEwJ1xuICAgICAgICAgICAgICAgICAgICAgICAgKVwiPjwvaT5cblxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIFtjbGFzc109XCJjbihcbiAgICAgICAgICAgICAgICAgICAgICAgICd0cnVuY2F0ZSB0cmFuc2l0aW9uLWFsbCBkdXJhdGlvbi0zMDAnLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29sbGFwc2VkID8gJ29wYWNpdHktMCB3LTAgbWwtMCcgOiAnb3BhY2l0eS0xMDAgdy1hdXRvIG1sLTMnXG4gICAgICAgICAgICAgICAgICAgICAgKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgaXRlbS50aXRsZSB9fVxuICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cblxuICAgICAgICAgICAgICAgICAgICAgIEBpZiAoIWNvbGxhcHNlZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgPGkgW2NsYXNzXT1cImNuKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAncmktYXJyb3ctZG93bi1zLWxpbmUgbWwtYXV0byB0cmFuc2l0aW9uLXRyYW5zZm9ybSBkdXJhdGlvbi0zMDAnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBpc1BhcmVudEV4cGFuZGVkKGdyb3VwLCBpdGVtLCBnSW5kZXgsIGkpID8gJ3JvdGF0ZS0xODAnIDogJydcbiAgICAgICAgICAgICAgICAgICAgICAgIClcIj48L2k+XG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cblxuICAgICAgICAgICAgICAgICAgICA8IS0tIFN1Ym1lbnUgR3JpZCBUcmFuc2l0aW9uIC0tPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IFtjbGFzc109XCJjbihcbiAgICAgICAgICAgICAgICAgICAgICAnZ3JpZCB0cmFuc2l0aW9uLVtncmlkLXRlbXBsYXRlLXJvd3NdIGR1cmF0aW9uLTMwMCBlYXNlLWluLW91dCcsXG4gICAgICAgICAgICAgICAgICAgICAgaXNQYXJlbnRFeHBhbmRlZChncm91cCwgaXRlbSwgZ0luZGV4LCBpKSAmJiAhY29sbGFwc2VkID8gJ2dyaWQtcm93cy1bMWZyXSBvcGFjaXR5LTEwMCcgOiAnZ3JpZC1yb3dzLVswZnJdIG9wYWNpdHktMCdcbiAgICAgICAgICAgICAgICAgICAgKVwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJvdmVyZmxvdy1oaWRkZW5cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGdhcC0xIG10LTEgbWwtNCBib3JkZXItbCBib3JkZXItYm9yZGVyLzUwIHBsLTJcIj5cblxuICAgICAgICAgICAgICAgICAgICAgICAgICBAZm9yIChzdWJJdGVtIG9mIGl0ZW0uaXRlbXM7IHRyYWNrIHN1Ykl0ZW0uaWQgfHwgc3ViSXRlbS50aXRsZSB8fCAkaW5kZXg7IGxldCBqID0gJGluZGV4KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChzdWJJdGVtLml0ZW1zICYmIHN1Ykl0ZW0uaXRlbXMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIEdyYW5kY2hpbGQgSXRlbSBHcm91cCAoUmVjdXJzaXZlLWlzaCBsb2dpYyBmb3IgZGVwdGggMikgLS0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmVsYXRpdmVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJ0b2dnbGVDaGlsZChncm91cCwgaXRlbSwgc3ViSXRlbSwgZ0luZGV4LCBpLCBqKTsgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWV4cGFuZGVkXT1cImlzQ2hpbGRFeHBhbmRlZChncm91cCwgaXRlbSwgc3ViSXRlbSwgZ0luZGV4LCBpLCBqKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzXT1cImNuKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2dyb3VwIHctZnVsbCByZWxhdGl2ZSBmbGV4IGl0ZW1zLWNlbnRlciByb3VuZGVkLW1kIHB4LTMgcHktMS41IHRleHQtc20gZm9udC1tZWRpdW0gdHJhbnNpdGlvbi1jb2xvcnMgZm9jdXMtdmlzaWJsZTpvdXRsaW5lLW5vbmUgZm9jdXMtdmlzaWJsZTpyaW5nLTIgZm9jdXMtdmlzaWJsZTpyaW5nLXJpbmcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2hvdmVyOmJnLWFjY2VudCBob3Zlcjp0ZXh0LWFjY2VudC1mb3JlZ3JvdW5kIHRleHQtbXV0ZWQtZm9yZWdyb3VuZCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc0NoaWxkRXhwYW5kZWQoZ3JvdXAsIGl0ZW0sIHN1Ykl0ZW0sIGdJbmRleCwgaSwgaikgPyAndGV4dC1mb3JlZ3JvdW5kIGJnLWFjY2VudC8zMCcgOiAnJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ3LTEuNSBoLTEuNSByb3VuZGVkLWZ1bGwgYmctYm9yZGVyIHNocmluay0wXCI+PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWwtMiB0cnVuY2F0ZVwiPnt7IHN1Ykl0ZW0udGl0bGUgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgW2NsYXNzXT1cImNuKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3JpLWFycm93LXJpZ2h0LXMtbGluZSBtbC1hdXRvIHRyYW5zaXRpb24tdHJhbnNmb3JtIGR1cmF0aW9uLTMwMCB0ZXh0LXhzJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzQ2hpbGRFeHBhbmRlZChncm91cCwgaXRlbSwgc3ViSXRlbSwgZ0luZGV4LCBpLCBqKSA/ICdyb3RhdGUtOTAnIDogJydcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IFtjbGFzc109XCJjbihcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZ3JpZCB0cmFuc2l0aW9uLVtncmlkLXRlbXBsYXRlLXJvd3NdIGR1cmF0aW9uLTMwMCBlYXNlLWluLW91dCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNDaGlsZEV4cGFuZGVkKGdyb3VwLCBpdGVtLCBzdWJJdGVtLCBnSW5kZXgsIGksIGopID8gJ2dyaWQtcm93cy1bMWZyXSBvcGFjaXR5LTEwMCcgOiAnZ3JpZC1yb3dzLVswZnJdIG9wYWNpdHktMCdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJvdmVyZmxvdy1oaWRkZW5cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGdhcC0xIG10LTEgbWwtNCBib3JkZXItbCBib3JkZXItYm9yZGVyLzMwIHBsLTJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGZvciAoZ3JhbmRDaGlsZCBvZiBzdWJJdGVtLml0ZW1zOyB0cmFjayBncmFuZENoaWxkLnRpdGxlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtyb3V0ZXJMaW5rXT1cImdyYW5kQ2hpbGQudXJsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtyb3V0ZXJMaW5rQWN0aXZlXT1cImFjdGl2ZUNsYXNzZXNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3JvdXRlckxpbmtBY3RpdmVPcHRpb25zXT1cInsgZXhhY3Q6IHRydWUgfVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIGdhcC0yIGhvdmVyOm5vLXVuZGVybGluZSByb3VuZGVkLW1kIHB4LTMgcHktMS41IHRleHQtc20gdHJhbnNpdGlvbi1jb2xvcnMgaG92ZXI6YmctYWNjZW50IGhvdmVyOnRleHQtYWNjZW50LWZvcmVncm91bmQgdGV4dC1tdXRlZC1mb3JlZ3JvdW5kIHdoaXRlc3BhY2Utbm93cmFwIGZvY3VzLXZpc2libGU6b3V0bGluZS1ub25lIGZvY3VzLXZpc2libGU6cmluZy0yIGZvY3VzLXZpc2libGU6cmluZy1yaW5nXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInctMS41IGgtMS41IHJvdW5kZWQtZnVsbCBiZy1ib3JkZXIvNzAgc2hyaW5rLTBcIj48L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRydW5jYXRlXCI+e3sgZ3JhbmRDaGlsZC50aXRsZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIFN0YW5kYXJkIFN1YiBJdGVtIC0tPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3JvdXRlckxpbmtdPVwic3ViSXRlbS51cmxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcm91dGVyTGlua0FjdGl2ZV09XCJhY3RpdmVDbGFzc2VzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3JvdXRlckxpbmtBY3RpdmVPcHRpb25zXT1cInsgZXhhY3Q6IHRydWUgfVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTIgaG92ZXI6bm8tdW5kZXJsaW5lIHJvdW5kZWQtbWQgcHgtMyBweS0xLjUgdGV4dC1zbSB0cmFuc2l0aW9uLWNvbG9ycyBob3ZlcjpiZy1hY2NlbnQgaG92ZXI6dGV4dC1hY2NlbnQtZm9yZWdyb3VuZCB0ZXh0LW11dGVkLWZvcmVncm91bmQgd2hpdGVzcGFjZS1ub3dyYXAgZm9jdXMtdmlzaWJsZTpvdXRsaW5lLW5vbmUgZm9jdXMtdmlzaWJsZTpyaW5nLTIgZm9jdXMtdmlzaWJsZTpyaW5nLXJpbmdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInctMS41IGgtMS41IHJvdW5kZWQtZnVsbCBiZy1ib3JkZXIgc2hyaW5rLTBcIj48L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidHJ1bmNhdGVcIj57eyBzdWJJdGVtLnRpdGxlIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIEBlbHNlIGlmIChpdGVtLmV4dGVybmFsKSB7XG4gICAgICAgICAgICAgICAgICA8IS0tIEV4dGVybmFsIC8gc3RhdGljLWZpbGUgSXRlbSAob3BlbnMgaW4gYSBuZXcgdGFiKSAtLT5cbiAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgIFtocmVmXT1cIml0ZW0udXJsXCJcbiAgICAgICAgICAgICAgICAgICAgdGFyZ2V0PVwiX2JsYW5rXCJcbiAgICAgICAgICAgICAgICAgICAgcmVsPVwibm9vcGVuZXIgbm9yZWZlcnJlclwiXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzc109XCJjbihcbiAgICAgICAgICAgICAgICAgICAgICAnZ3JvdXAgcmVsYXRpdmUgaG92ZXI6bm8tdW5kZXJsaW5lIGZsZXggaXRlbXMtY2VudGVyIHJvdW5kZWQtbWQgcHgtMyBweS0yIHRleHQtc20gZm9udC1tZWRpdW0gdHJhbnNpdGlvbi1jb2xvcnMgZm9jdXMtdmlzaWJsZTpvdXRsaW5lLW5vbmUgZm9jdXMtdmlzaWJsZTpyaW5nLTIgZm9jdXMtdmlzaWJsZTpyaW5nLXJpbmcnLFxuICAgICAgICAgICAgICAgICAgICAgICdob3ZlcjpiZy1hY2NlbnQgaG92ZXI6dGV4dC1hY2NlbnQtZm9yZWdyb3VuZCB0ZXh0LW11dGVkLWZvcmVncm91bmQnLFxuICAgICAgICAgICAgICAgICAgICAgIGNvbGxhcHNlZCA/ICdqdXN0aWZ5LWNlbnRlcicgOiAnanVzdGlmeS1zdGFydCdcbiAgICAgICAgICAgICAgICAgICAgKVwiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxpIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIFtjbGFzc109XCJjbihcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0uaWNvbiB8fCAncmktY2lyY2xlLWZpbGwnLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ2gtNCB3LTQgdGV4dC1sZyBzaHJpbmstMCB0cmFuc2l0aW9uLXRyYW5zZm9ybScsXG4gICAgICAgICAgICAgICAgICAgICAgICAhY29sbGFwc2VkICYmICdncm91cC1ob3ZlcjpzY2FsZS0xMTAnXG4gICAgICAgICAgICAgICAgICAgICAgKVwiPjwvaT5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gW2NsYXNzXT1cImNuKFxuICAgICAgICAgICAgICAgICAgICAgICd0cnVuY2F0ZSB0cmFuc2l0aW9uLWFsbCBkdXJhdGlvbi0zMDAnLFxuICAgICAgICAgICAgICAgICAgICAgIGNvbGxhcHNlZCA/ICdvcGFjaXR5LTAgdy0wIG1sLTAnIDogJ29wYWNpdHktMTAwIHctYXV0byBtbC0zJ1xuICAgICAgICAgICAgICAgICAgICApXCI+XG4gICAgICAgICAgICAgICAgICAgICAge3sgaXRlbS50aXRsZSB9fVxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIEBpZiAoIWNvbGxhcHNlZCkge1xuICAgICAgICAgICAgICAgICAgICAgIDxpIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIGNsYXNzPVwicmktZXh0ZXJuYWwtbGluay1saW5lIG1sLWF1dG8gdGV4dC14cyBvcGFjaXR5LTUwIHRyYW5zaXRpb24tb3BhY2l0eSBncm91cC1ob3ZlcjpvcGFjaXR5LTEwMFwiPjwvaT5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBAZWxzZSB7XG4gICAgICAgICAgICAgICAgICA8IS0tIFN0YW5kYXJkIFRvcC1MZXZlbCBJdGVtIC0tPlxuICAgICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgW3JvdXRlckxpbmtdPVwiaXRlbS51cmxcIlxuICAgICAgICAgICAgICAgICAgICBbcm91dGVyTGlua0FjdGl2ZV09XCJhY3RpdmVDbGFzc2VzXCJcbiAgICAgICAgICAgICAgICAgICAgW3JvdXRlckxpbmtBY3RpdmVPcHRpb25zXT1cInsgZXhhY3Q6IHRydWUgfVwiXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzc109XCJjbihcbiAgICAgICAgICAgICAgICAgICAgICAnZ3JvdXAgcmVsYXRpdmUgaG92ZXI6bm8tdW5kZXJsaW5lIGZsZXggaXRlbXMtY2VudGVyIHJvdW5kZWQtbWQgcHgtMyBweS0yIHRleHQtc20gZm9udC1tZWRpdW0gdHJhbnNpdGlvbi1jb2xvcnMgZm9jdXMtdmlzaWJsZTpvdXRsaW5lLW5vbmUgZm9jdXMtdmlzaWJsZTpyaW5nLTIgZm9jdXMtdmlzaWJsZTpyaW5nLXJpbmcnLFxuICAgICAgICAgICAgICAgICAgICAgICdob3ZlcjpiZy1hY2NlbnQgaG92ZXI6dGV4dC1hY2NlbnQtZm9yZWdyb3VuZCB0ZXh0LW11dGVkLWZvcmVncm91bmQnLFxuICAgICAgICAgICAgICAgICAgICAgIGNvbGxhcHNlZCA/ICdqdXN0aWZ5LWNlbnRlcicgOiAnanVzdGlmeS1zdGFydCdcbiAgICAgICAgICAgICAgICAgICAgKVwiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxpIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIFtjbGFzc109XCJjbihcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0uaWNvbiB8fCAncmktY2lyY2xlLWZpbGwnLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ2gtNCB3LTQgdGV4dC1sZyBzaHJpbmstMCB0cmFuc2l0aW9uLXRyYW5zZm9ybScsXG4gICAgICAgICAgICAgICAgICAgICAgICAhY29sbGFwc2VkICYmICdncm91cC1ob3ZlcjpzY2FsZS0xMTAnXG4gICAgICAgICAgICAgICAgICAgICAgKVwiPjwvaT5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gW2NsYXNzXT1cImNuKFxuICAgICAgICAgICAgICAgICAgICAgICd0cnVuY2F0ZSB0cmFuc2l0aW9uLWFsbCBkdXJhdGlvbi0zMDAnLFxuICAgICAgICAgICAgICAgICAgICAgIGNvbGxhcHNlZCA/ICdvcGFjaXR5LTAgdy0wIG1sLTAnIDogJ29wYWNpdHktMTAwIHctYXV0byBtbC0zJ1xuICAgICAgICAgICAgICAgICAgICApXCI+XG4gICAgICAgICAgICAgICAgICAgICAge3sgaXRlbS50aXRsZSB9fVxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIEBpZiAoaXRlbS5iYWRnZSAmJiAhY29sbGFwc2VkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtbC1hdXRvIHNocmluay0wIHJvdW5kZWQtZnVsbCBib3JkZXIgYm9yZGVyLXByaW1hcnkvMzAgYmctcHJpbWFyeS8xMCBweC0xLjUgcHktMC41IHRleHQtWzEwcHhdIGZvbnQtbWVkaXVtIGxlYWRpbmctbm9uZSB0ZXh0LXByaW1hcnlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IGl0ZW0uYmFkZ2UgfX1cbiAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiBjbGFzcz1cInNocmluay0wIHAtMyBvdmVyZmxvdy1oaWRkZW4gd2hpdGVzcGFjZS1ub3dyYXBcIj5cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2Zvb3Rlcl1cIj48L25nLWNvbnRlbnQ+XG4gICAgICA8L2Rpdj5cbiAgICA8L2FzaWRlPlxuICBgLFxuICBzdHlsZXM6IFtgXG4gICAgOmhvc3QgeyBkaXNwbGF5OiBibG9jazsgaGVpZ2h0OiAxMDAlOyB9XG4gICAgYnV0dG9uOmRpc2FibGVkIHsgY3Vyc29yOiBub3QtYWxsb3dlZDsgb3BhY2l0eTogMC42OyB9XG4gICAgKiB7IHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpOyB9XG4gIGBdXG59KVxuZXhwb3J0IGNsYXNzIFNpZGViYXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICBASW5wdXQoKSBpdGVtczogU2lkZWJhckdyb3VwW10gPSBbXTtcbiAgQElucHV0KCkgY29sbGFwc2VkID0gZmFsc2U7XG4gIEBJbnB1dCgpIGNsYXNzID0gJyc7XG5cbiAgLyoqXG4gICAqIFN0eWxpbmcgdmFyaWFudCBmb3IgYWN0aXZlIGl0ZW1zLlxuICAgKiAtIGRlZmF1bHQ6IFNvbGlkIHByaW1hcnkgYmFja2dyb3VuZCwgbGlnaHQgdGV4dCAoTWF0Y2hlcyBCYWRnZSBEZWZhdWx0KVxuICAgKiAtIHNlY29uZGFyeTogU29saWQgc2Vjb25kYXJ5IGJhY2tncm91bmRcbiAgICogLSBnaG9zdDogVHJhbnNwYXJlbnQgYmFja2dyb3VuZCwgYWNjZW50IHRleHQgKFNoYWRjbiBzdGFuZGFyZClcbiAgICogLSBvdXRsaW5lOiBCb3JkZXJlZFxuICAgKi9cbiAgQElucHV0KCkgdmFyaWFudDogJ2RlZmF1bHQnIHwgJ3NlY29uZGFyeScgfCAnZ2hvc3QnIHwgJ291dGxpbmUnID0gJ2RlZmF1bHQnO1xuXG4gIGV4cGFuZGVkUGFyZW50cyA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuICBleHBhbmRlZENoaWxkcmVuID0gbmV3IFNldDxzdHJpbmc+KCk7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGNuID0gY247XG5cbiAgZ2V0IGFjdGl2ZUNsYXNzZXMoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gY24oXG4gICAgICAndHJhbnNpdGlvbi1jb2xvcnMnLFxuICAgICAgLy8gRGVmYXVsdDogU29saWQgUHJpbWFyeSAoQmFkZ2UtbGlrZSkgd2l0aCBsaWdodGVyIG9wYWNpdHkgKDgwJSBpbnN0ZWFkIG9mIDkwJSlcbiAgICAgIHRoaXMudmFyaWFudCA9PT0gJ2RlZmF1bHQnICYmICdiZy1wcmltYXJ5LzgwIHRleHQtcHJpbWFyeS1mb3JlZ3JvdW5kIGhvdmVyOmJnLXByaW1hcnkgaG92ZXI6dGV4dC1wcmltYXJ5LWZvcmVncm91bmQnLFxuXG4gICAgICAvLyBTZWNvbmRhcnk6IFNvbGlkIFNlY29uZGFyeVxuICAgICAgdGhpcy52YXJpYW50ID09PSAnc2Vjb25kYXJ5JyAmJiAnYmctc2Vjb25kYXJ5IHRleHQtc2Vjb25kYXJ5LWZvcmVncm91bmQgaG92ZXI6Ymctc2Vjb25kYXJ5LzgwJyxcblxuICAgICAgLy8gR2hvc3Q6IFN1YnRsZSBiYWNrZ3JvdW5kIChTaWRlYmFyIHN0YW5kYXJkKVxuICAgICAgdGhpcy52YXJpYW50ID09PSAnZ2hvc3QnICYmICdiZy1hY2NlbnQgdGV4dC1hY2NlbnQtZm9yZWdyb3VuZCcsXG5cbiAgICAgIC8vIE91dGxpbmU6IEJvcmRlcmVkXG4gICAgICB0aGlzLnZhcmlhbnQgPT09ICdvdXRsaW5lJyAmJiAnYm9yZGVyIGJvcmRlci1ib3JkZXIgYmctYmFja2dyb3VuZCB0ZXh0LWZvcmVncm91bmQgaG92ZXI6YmctYWNjZW50IGhvdmVyOnRleHQtYWNjZW50LWZvcmVncm91bmQnXG4gICAgKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICBpZiAoY2hhbmdlc1snY29sbGFwc2VkJ10gJiYgdGhpcy5jb2xsYXBzZWQpIHtcbiAgICAgIHRoaXMuY29sbGFwc2VBbGwoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKGNoYW5nZXNbJ2l0ZW1zJ10pIHtcbiAgICAgIHRoaXMuaW5pdGlhbGl6ZVN0YXRlKCk7XG4gICAgfVxuICB9XG5cbiAgLy8gLS0tIFNUQVRFIElOSVQgLS0tXG4gIHByaXZhdGUgaW5pdGlhbGl6ZVN0YXRlKCkge1xuICAgIHRoaXMuY29sbGFwc2VBbGwoKTtcbiAgICBpZiAoIXRoaXMuaXRlbXMpIHJldHVybjtcblxuICAgIHRoaXMuaXRlbXMuZm9yRWFjaCgoZ3JvdXAsIGdJbmRleCkgPT4ge1xuICAgICAgZ3JvdXAuaXRlbXMuZm9yRWFjaCgoaXRlbSwgaUluZGV4KSA9PiB7XG4gICAgICAgIGNvbnN0IHBhcmVudElkID0gdGhpcy5nZXRQYXJlbnRJZChncm91cCwgaXRlbSwgZ0luZGV4LCBpSW5kZXgpO1xuXG4gICAgICAgIGlmIChpdGVtLmV4cGFuZGVkKSB7XG4gICAgICAgICAgdGhpcy5leHBhbmRlZFBhcmVudHMuYWRkKHBhcmVudElkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChpdGVtLml0ZW1zKSB7XG4gICAgICAgICAgaXRlbS5pdGVtcy5mb3JFYWNoKChzdWJJdGVtLCBzSW5kZXgpID0+IHtcbiAgICAgICAgICAgIGlmIChzdWJJdGVtLmV4cGFuZGVkKSB7XG4gICAgICAgICAgICAgIGNvbnN0IGNoaWxkSWQgPSB0aGlzLmdldENoaWxkSWQoZ3JvdXAsIGl0ZW0sIHN1Ykl0ZW0sIGdJbmRleCwgaUluZGV4LCBzSW5kZXgpO1xuICAgICAgICAgICAgICB0aGlzLmV4cGFuZGVkQ2hpbGRyZW4uYWRkKGNoaWxkSWQpO1xuICAgICAgICAgICAgICB0aGlzLmV4cGFuZGVkUGFyZW50cy5hZGQocGFyZW50SWQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIC8vIC0tLSBJRCBHRU5FUkFUT1JTIC0tLVxuICBnZXRHcm91cElkKGdyb3VwOiBTaWRlYmFyR3JvdXAsIGluZGV4OiBudW1iZXIpOiBzdHJpbmcge1xuICAgIHJldHVybiBncm91cC5pZCB8fCBncm91cC50aXRsZSB8fCBgZy0ke2luZGV4fWA7XG4gIH1cblxuICBnZXRQYXJlbnRJZChncm91cDogU2lkZWJhckdyb3VwLCBpdGVtOiBTaWRlYmFySXRlbSwgZ0luZGV4OiBudW1iZXIsIGlJbmRleDogbnVtYmVyKTogc3RyaW5nIHtcbiAgICBjb25zdCBncm91cElkID0gdGhpcy5nZXRHcm91cElkKGdyb3VwLCBnSW5kZXgpO1xuICAgIGNvbnN0IGl0ZW1JZCA9IGl0ZW0uaWQgfHwgaXRlbS50aXRsZSB8fCBgcC0ke2lJbmRleH1gO1xuICAgIHJldHVybiBgJHtncm91cElkfV9fJHtpdGVtSWR9YDtcbiAgfVxuXG4gIGdldENoaWxkSWQoZ3JvdXA6IFNpZGViYXJHcm91cCwgcGFyZW50OiBTaWRlYmFySXRlbSwgc3ViSXRlbTogU2lkZWJhckl0ZW0sIGdJbmRleDogbnVtYmVyLCBpSW5kZXg6IG51bWJlciwgc0luZGV4OiBudW1iZXIpOiBzdHJpbmcge1xuICAgIGNvbnN0IHBhcmVudElkID0gdGhpcy5nZXRQYXJlbnRJZChncm91cCwgcGFyZW50LCBnSW5kZXgsIGlJbmRleCk7XG4gICAgY29uc3Qgc3ViSXRlbUlkID0gc3ViSXRlbS5pZCB8fCBzdWJJdGVtLnRpdGxlIHx8IGBjLSR7c0luZGV4fWA7XG4gICAgcmV0dXJuIGAke3BhcmVudElkfV9fJHtzdWJJdGVtSWR9YDtcbiAgfVxuXG4gIC8vIC0tLSBBQ1RJT05TIC0tLVxuICB0b2dnbGVQYXJlbnQoZ3JvdXA6IFNpZGViYXJHcm91cCwgaXRlbTogU2lkZWJhckl0ZW0sIGdJbmRleDogbnVtYmVyLCBpSW5kZXg6IG51bWJlcikge1xuICAgIGlmICh0aGlzLmNvbGxhcHNlZCkgcmV0dXJuO1xuICAgIGNvbnN0IGlkID0gdGhpcy5nZXRQYXJlbnRJZChncm91cCwgaXRlbSwgZ0luZGV4LCBpSW5kZXgpO1xuXG4gICAgY29uc3QgbmV3U2V0ID0gbmV3IFNldCh0aGlzLmV4cGFuZGVkUGFyZW50cyk7XG4gICAgaWYgKG5ld1NldC5oYXMoaWQpKSB7XG4gICAgICBuZXdTZXQuZGVsZXRlKGlkKTtcbiAgICB9IGVsc2Uge1xuICAgICAgbmV3U2V0LmFkZChpZCk7XG4gICAgfVxuICAgIHRoaXMuZXhwYW5kZWRQYXJlbnRzID0gbmV3U2V0O1xuICB9XG5cbiAgdG9nZ2xlQ2hpbGQoZ3JvdXA6IFNpZGViYXJHcm91cCwgcGFyZW50OiBTaWRlYmFySXRlbSwgc3ViSXRlbTogU2lkZWJhckl0ZW0sIGdJbmRleDogbnVtYmVyLCBpSW5kZXg6IG51bWJlciwgc0luZGV4OiBudW1iZXIpIHtcbiAgICBjb25zdCBpZCA9IHRoaXMuZ2V0Q2hpbGRJZChncm91cCwgcGFyZW50LCBzdWJJdGVtLCBnSW5kZXgsIGlJbmRleCwgc0luZGV4KTtcblxuICAgIGNvbnN0IG5ld1NldCA9IG5ldyBTZXQodGhpcy5leHBhbmRlZENoaWxkcmVuKTtcbiAgICBpZiAobmV3U2V0LmhhcyhpZCkpIHtcbiAgICAgIG5ld1NldC5kZWxldGUoaWQpO1xuICAgIH0gZWxzZSB7XG4gICAgICBuZXdTZXQuYWRkKGlkKTtcbiAgICB9XG4gICAgdGhpcy5leHBhbmRlZENoaWxkcmVuID0gbmV3U2V0O1xuICB9XG5cbiAgcHJpdmF0ZSBjb2xsYXBzZUFsbCgpIHtcbiAgICB0aGlzLmV4cGFuZGVkUGFyZW50cyA9IG5ldyBTZXQoKTtcbiAgICB0aGlzLmV4cGFuZGVkQ2hpbGRyZW4gPSBuZXcgU2V0KCk7XG4gIH1cblxuICAvLyAtLS0gVEVNUExBVEUgSEVMUEVSUyAtLS1cbiAgaXNQYXJlbnRFeHBhbmRlZChncm91cDogU2lkZWJhckdyb3VwLCBpdGVtOiBTaWRlYmFySXRlbSwgZ0luZGV4OiBudW1iZXIsIGlJbmRleDogbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZXhwYW5kZWRQYXJlbnRzLmhhcyh0aGlzLmdldFBhcmVudElkKGdyb3VwLCBpdGVtLCBnSW5kZXgsIGlJbmRleCkpO1xuICB9XG5cbiAgaXNDaGlsZEV4cGFuZGVkKGdyb3VwOiBTaWRlYmFyR3JvdXAsIHBhcmVudDogU2lkZWJhckl0ZW0sIHN1Ykl0ZW06IFNpZGViYXJJdGVtLCBnSW5kZXg6IG51bWJlciwgaUluZGV4OiBudW1iZXIsIHNJbmRleDogbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZXhwYW5kZWRDaGlsZHJlbi5oYXModGhpcy5nZXRDaGlsZElkKGdyb3VwLCBwYXJlbnQsIHN1Ykl0ZW0sIGdJbmRleCwgaUluZGV4LCBzSW5kZXgpKTtcbiAgfVxufVxuIl19
@@ -28,21 +28,16 @@ export class SkeletonComponent {
28
28
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SkeletonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
29
29
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: SkeletonComponent, isStandalone: true, selector: "tolle-skeleton", inputs: { variant: "variant", class: "class" }, ngImport: i0, template: `
30
30
  <div [class]="computedClass"></div>
31
- `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }] });
31
+ `, isInline: true, styles: [":host{display:block}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }] });
32
32
  }
33
33
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SkeletonComponent, decorators: [{
34
34
  type: Component,
35
- args: [{
36
- selector: 'tolle-skeleton',
37
- standalone: true,
38
- imports: [CommonModule],
39
- template: `
35
+ args: [{ selector: 'tolle-skeleton', standalone: true, imports: [CommonModule], template: `
40
36
  <div [class]="computedClass"></div>
41
- `,
42
- }]
37
+ `, styles: [":host{display:block}\n"] }]
43
38
  }], propDecorators: { variant: [{
44
39
  type: Input
45
40
  }], class: [{
46
41
  type: Input
47
42
  }] } });
48
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2tlbGV0b24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvdG9sbGUvc3JjL2xpYi9za2VsZXRvbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxHQUFHLEVBQXFCLE1BQU0sMEJBQTBCLENBQUM7QUFDbEUsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLFlBQVksQ0FBQzs7QUFFaEMsTUFBTSxnQkFBZ0IsR0FBRyxHQUFHO0FBQzFCLDREQUE0RDtBQUM1RCxxREFBcUQsRUFDckQ7SUFDRSxRQUFRLEVBQUU7UUFDUixPQUFPLEVBQUU7WUFDUCxJQUFJLEVBQUUsRUFBRTtZQUNSLE1BQU0sRUFBRSxjQUFjO1lBQ3RCLElBQUksRUFBRSxjQUFjO1NBQ3JCO0tBQ0Y7SUFDRCxlQUFlLEVBQUU7UUFDZixPQUFPLEVBQUUsTUFBTTtLQUNoQjtDQUNGLENBQ0YsQ0FBQztBQVlGLE1BQU0sT0FBTyxpQkFBaUI7SUFDNUIseURBQXlEO0lBQ2hELE9BQU8sR0FBNkIsTUFBTSxDQUFDO0lBQ3BELDhFQUE4RTtJQUNyRSxLQUFLLEdBQUcsRUFBRSxDQUFDO0lBRXBCLElBQUksYUFBYTtRQUNmLE9BQU8sRUFBRSxDQUFDLGdCQUFnQixDQUFDLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNyRSxDQUFDO3dHQVJVLGlCQUFpQjs0RkFBakIsaUJBQWlCLDBIQUpsQjs7R0FFVCwyREFIUyxZQUFZOzs0RkFLWCxpQkFBaUI7a0JBUjdCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGdCQUFnQjtvQkFDMUIsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQztvQkFDdkIsUUFBUSxFQUFFOztHQUVUO2lCQUNGOzhCQUdVLE9BQU87c0JBQWYsS0FBSztnQkFFRyxLQUFLO3NCQUFiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgY3ZhLCB0eXBlIFZhcmlhbnRQcm9wcyB9IGZyb20gJ2NsYXNzLXZhcmlhbmNlLWF1dGhvcml0eSc7XG5pbXBvcnQgeyBjbiB9IGZyb20gJy4vdXRpbHMvY24nO1xuXG5jb25zdCBza2VsZXRvblZhcmlhbnRzID0gY3ZhKFxuICAvLyBUaGUgYmFja2dyb3VuZCBtYXRjaGVzIHRoZSBHb29nbGUgRGFyayBNb2RlIFwiTXV0ZWRcIiBjb2xvclxuICAnYW5pbWF0ZS1wdWxzZSBiZy1tdXRlZCBkYXJrOmJnLXNlY29uZGFyeSByb3VuZGVkLW1kJyxcbiAge1xuICAgIHZhcmlhbnRzOiB7XG4gICAgICB2YXJpYW50OiB7XG4gICAgICAgIHJlY3Q6ICcnLFxuICAgICAgICBjaXJjbGU6ICdyb3VuZGVkLWZ1bGwnLFxuICAgICAgICBwaWxsOiAncm91bmRlZC1mdWxsJyxcbiAgICAgIH0sXG4gICAgfSxcbiAgICBkZWZhdWx0VmFyaWFudHM6IHtcbiAgICAgIHZhcmlhbnQ6ICdyZWN0JyxcbiAgICB9LFxuICB9XG4pO1xuXG5leHBvcnQgdHlwZSBTa2VsZXRvblByb3BzID0gVmFyaWFudFByb3BzPHR5cGVvZiBza2VsZXRvblZhcmlhbnRzPjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndG9sbGUtc2tlbGV0b24nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2IFtjbGFzc109XCJjb21wdXRlZENsYXNzXCI+PC9kaXY+XG4gIGAsXG59KVxuZXhwb3J0IGNsYXNzIFNrZWxldG9uQ29tcG9uZW50IHtcbiAgLyoqIFNoYXBlIG9mIHRoZSBza2VsZXRvbiBwbGFjZWhvbGRlci4gQGRlZmF1bHQgJ3JlY3QnICovXG4gIEBJbnB1dCgpIHZhcmlhbnQ6IFNrZWxldG9uUHJvcHNbJ3ZhcmlhbnQnXSA9ICdyZWN0JztcbiAgLyoqIEV4dHJhIFRhaWx3aW5kIGNsYXNzZXMgbWVyZ2VkIG9udG8gdGhlIHNrZWxldG9uIHZpYSBgY24oKWAgKGxhc3Qtd2lucykuICovXG4gIEBJbnB1dCgpIGNsYXNzID0gJyc7XG5cbiAgZ2V0IGNvbXB1dGVkQ2xhc3MoKSB7XG4gICAgcmV0dXJuIGNuKHNrZWxldG9uVmFyaWFudHMoeyB2YXJpYW50OiB0aGlzLnZhcmlhbnQgfSksIHRoaXMuY2xhc3MpO1xuICB9XG59XG4iXX0=
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2tlbGV0b24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvdG9sbGUvc3JjL2xpYi9za2VsZXRvbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxHQUFHLEVBQXFCLE1BQU0sMEJBQTBCLENBQUM7QUFDbEUsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLFlBQVksQ0FBQzs7QUFFaEMsTUFBTSxnQkFBZ0IsR0FBRyxHQUFHO0FBQzFCLDREQUE0RDtBQUM1RCxxREFBcUQsRUFDckQ7SUFDRSxRQUFRLEVBQUU7UUFDUixPQUFPLEVBQUU7WUFDUCxJQUFJLEVBQUUsRUFBRTtZQUNSLE1BQU0sRUFBRSxjQUFjO1lBQ3RCLElBQUksRUFBRSxjQUFjO1NBQ3JCO0tBQ0Y7SUFDRCxlQUFlLEVBQUU7UUFDZixPQUFPLEVBQUUsTUFBTTtLQUNoQjtDQUNGLENBQ0YsQ0FBQztBQWFGLE1BQU0sT0FBTyxpQkFBaUI7SUFDNUIseURBQXlEO0lBQ2hELE9BQU8sR0FBNkIsTUFBTSxDQUFDO0lBQ3BELDhFQUE4RTtJQUNyRSxLQUFLLEdBQUcsRUFBRSxDQUFDO0lBRXBCLElBQUksYUFBYTtRQUNmLE9BQU8sRUFBRSxDQUFDLGdCQUFnQixDQUFDLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNyRSxDQUFDO3dHQVJVLGlCQUFpQjs0RkFBakIsaUJBQWlCLDBIQUpsQjs7R0FFVCwrRkFIUyxZQUFZOzs0RkFLWCxpQkFBaUI7a0JBVDdCLFNBQVM7K0JBQ0UsZ0JBQWdCLGNBRWQsSUFBSSxXQUNQLENBQUMsWUFBWSxDQUFDLFlBQ2I7O0dBRVQ7OEJBSVEsT0FBTztzQkFBZixLQUFLO2dCQUVHLEtBQUs7c0JBQWIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBjdmEsIHR5cGUgVmFyaWFudFByb3BzIH0gZnJvbSAnY2xhc3MtdmFyaWFuY2UtYXV0aG9yaXR5JztcbmltcG9ydCB7IGNuIH0gZnJvbSAnLi91dGlscy9jbic7XG5cbmNvbnN0IHNrZWxldG9uVmFyaWFudHMgPSBjdmEoXG4gIC8vIFRoZSBiYWNrZ3JvdW5kIG1hdGNoZXMgdGhlIEdvb2dsZSBEYXJrIE1vZGUgXCJNdXRlZFwiIGNvbG9yXG4gICdhbmltYXRlLXB1bHNlIGJnLW11dGVkIGRhcms6Ymctc2Vjb25kYXJ5IHJvdW5kZWQtbWQnLFxuICB7XG4gICAgdmFyaWFudHM6IHtcbiAgICAgIHZhcmlhbnQ6IHtcbiAgICAgICAgcmVjdDogJycsXG4gICAgICAgIGNpcmNsZTogJ3JvdW5kZWQtZnVsbCcsXG4gICAgICAgIHBpbGw6ICdyb3VuZGVkLWZ1bGwnLFxuICAgICAgfSxcbiAgICB9LFxuICAgIGRlZmF1bHRWYXJpYW50czoge1xuICAgICAgdmFyaWFudDogJ3JlY3QnLFxuICAgIH0sXG4gIH1cbik7XG5cbmV4cG9ydCB0eXBlIFNrZWxldG9uUHJvcHMgPSBWYXJpYW50UHJvcHM8dHlwZW9mIHNrZWxldG9uVmFyaWFudHM+O1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0b2xsZS1za2VsZXRvbicsXG4gIHN0eWxlczogWyc6aG9zdCB7IGRpc3BsYXk6IGJsb2NrOyB9J10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXYgW2NsYXNzXT1cImNvbXB1dGVkQ2xhc3NcIj48L2Rpdj5cbiAgYCxcbn0pXG5leHBvcnQgY2xhc3MgU2tlbGV0b25Db21wb25lbnQge1xuICAvKiogU2hhcGUgb2YgdGhlIHNrZWxldG9uIHBsYWNlaG9sZGVyLiBAZGVmYXVsdCAncmVjdCcgKi9cbiAgQElucHV0KCkgdmFyaWFudDogU2tlbGV0b25Qcm9wc1sndmFyaWFudCddID0gJ3JlY3QnO1xuICAvKiogRXh0cmEgVGFpbHdpbmQgY2xhc3NlcyBtZXJnZWQgb250byB0aGUgc2tlbGV0b24gdmlhIGBjbigpYCAobGFzdC13aW5zKS4gKi9cbiAgQElucHV0KCkgY2xhc3MgPSAnJztcblxuICBnZXQgY29tcHV0ZWRDbGFzcygpIHtcbiAgICByZXR1cm4gY24oc2tlbGV0b25WYXJpYW50cyh7IHZhcmlhbnQ6IHRoaXMudmFyaWFudCB9KSwgdGhpcy5jbGFzcyk7XG4gIH1cbn1cbiJdfQ==