@sbb-esta/lyne-elements 5.0.0-next.2 → 5.0.0

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 (1476) hide show
  1. package/_index.scss +69 -2
  2. package/accordion/accordion.component.js +1 -1
  3. package/{accordion.component-DN0x35kD.js → accordion.component-ClJHZh_N.js} +20 -19
  4. package/accordion.js +1 -1
  5. package/accordion.pure.js +1 -1
  6. package/action-group/_action-group.global.scss +7 -0
  7. package/action-group/action-group.component.js +1 -1
  8. package/action-group.component-DBfkhMYG.js +16 -0
  9. package/action-group.js +1 -1
  10. package/action-group.pure.js +1 -1
  11. package/alert/_alert.global.scss +47 -0
  12. package/alert/alert/alert.component.js +1 -1
  13. package/alert/alert-group/alert-group.component.js +1 -1
  14. package/{alert.component-D8NT9YJ-.js → alert.component-B8EGWmcc.js} +17 -17
  15. package/alert.js +2 -2
  16. package/alert.pure.js +2 -2
  17. package/autocomplete/autocomplete-base-element.js +2 -2
  18. package/autocomplete/autocomplete.component.js +4 -4
  19. package/{autocomplete-base-element-BuCAxBy3.js → autocomplete-base-element-CLMoJtJb.js} +44 -36
  20. package/autocomplete.js +4 -4
  21. package/autocomplete.pure.js +3 -3
  22. package/{core/styles/mixins/badge.scss → badge/_badge.global.scss} +9 -5
  23. package/{block-link-common-aUfrxxDp.js → block-link-common-BZZ4NhPD.js} +15 -16
  24. package/breadcrumb/_breadcrumb.global.scss +36 -0
  25. package/breadcrumb/breadcrumb/breadcrumb.component.js +1 -1
  26. package/breadcrumb/breadcrumb-group/breadcrumb-group.component.js +1 -1
  27. package/{breadcrumb-group.component-XPdnV6-a.js → breadcrumb-group.component-FLbOLqwi.js} +23 -19
  28. package/breadcrumb.js +2 -2
  29. package/breadcrumb.pure.js +2 -2
  30. package/button/_button.global.scss +99 -0
  31. package/button/common/button-common.js +1 -1
  32. package/button/mini-button-group/mini-button-group.component.js +1 -1
  33. package/button/mini-button-link/mini-button-link.component.js +1 -1
  34. package/{button-common-BMpS65Zf.js → button-common-Br6zOEgv.js} +18 -18
  35. package/button.js +3 -3
  36. package/button.pure.js +3 -3
  37. package/calendar/_calendar.global.scss +46 -0
  38. package/calendar/calendar/calendar.component.js +2 -2
  39. package/calendar/calendar-day/calendar-day.component.js +1 -1
  40. package/calendar/calendar-month/calendar-month.component.js +1 -1
  41. package/calendar/calendar-year/calendar-year.component.js +1 -1
  42. package/calendar/common/calendar-cell-base-element.js +1 -1
  43. package/calendar-cell-base-element-DHCKK3bU.js +23 -0
  44. package/{calendar-day.component-CcZymuSD.js → calendar-day.component-DrMWf6-w.js} +2 -2
  45. package/calendar.component-RVAHcJf6.js +1010 -0
  46. package/calendar.js +5 -5
  47. package/calendar.pure.js +4 -4
  48. package/{core/styles/mixins/card.scss → card/_card.global.scss} +67 -45
  49. package/card/card/card.component.js +1 -1
  50. package/card/card-badge/card-badge.component.js +1 -1
  51. package/card/common/card-action-common.js +1 -1
  52. package/card.js +3 -3
  53. package/card.pure.js +3 -3
  54. package/carousel/_carousel.global.scss +11 -0
  55. package/carousel/carousel/carousel.component.js +1 -1
  56. package/carousel/carousel-item/carousel-item.component.js +2 -2
  57. package/carousel/carousel-list/carousel-list.component.js +1 -1
  58. package/{carousel-item.component-DyZAdXL_.js → carousel-item.component-DRfpza-9.js} +12 -2
  59. package/{carousel-list.component-Ai0uJWB7.js → carousel-list.component-DAPO_Oce.js} +6 -13
  60. package/{carousel.component-9oMMOyWo.js → carousel.component-B6XqR3Bc.js} +1 -1
  61. package/carousel.js +5 -5
  62. package/carousel.pure.js +4 -4
  63. package/checkbox/_checkbox.global.scss +29 -0
  64. package/checkbox/checkbox.component.js +1 -1
  65. package/checkbox/common/checkbox-common.js +1 -1
  66. package/{checkbox-common-BSzAnug3.js → checkbox-common-Dz5PUD9H.js} +15 -15
  67. package/checkbox-panel/checkbox-panel.component.js +1 -1
  68. package/{checkbox.component-ChQmCxal.js → checkbox.component-DNVief0q.js} +9 -9
  69. package/checkbox.js +2 -2
  70. package/checkbox.pure.js +2 -2
  71. package/chip/_chip.global.scss +72 -0
  72. package/chip/chip/chip.component.js +1 -1
  73. package/chip/chip-group/chip-group.component.js +1 -1
  74. package/{chip-group.component-BMpczIZH.js → chip-group.component-DKF_Z2QU.js} +20 -25
  75. package/chip-label/_chip-label.global.scss +11 -0
  76. package/chip-label/chip-label.component.js +1 -1
  77. package/chip-label.js +1 -1
  78. package/chip-label.pure.js +1 -1
  79. package/chip.js +2 -2
  80. package/chip.pure.js +2 -2
  81. package/clock/_clock.global.scss +9 -0
  82. package/clock/clock.component.js +1 -1
  83. package/clock.js +1 -1
  84. package/clock.pure.js +1 -1
  85. package/{compact-paginator.component-sRHapku-.js → compact-paginator.component-CmPlZsd4.js} +4 -6
  86. package/container/_container.global.scss +32 -0
  87. package/container/container/container.component.js +1 -1
  88. package/container/sticky-bar/sticky-bar.component.js +1 -1
  89. package/container.js +2 -2
  90. package/container.pure.js +2 -2
  91. package/core/base-elements/_selection-group-base-element.global.scss +16 -0
  92. package/core/base-elements/action-base-element.js +1 -1
  93. package/core/base-elements/button-base-element.js +47 -68
  94. package/core/base-elements/element.js +1 -1
  95. package/core/base-elements/open-close-base-element.js +1 -1
  96. package/core/base-elements/selection-group-base-element.js +1 -1
  97. package/core/controllers/media-matchers-controller.js +1 -1
  98. package/core/datetime/date-adapter.js +2 -2
  99. package/core/i18n/i18n.js +73 -78
  100. package/core/mixins/_panel-common.global.scss +41 -0
  101. package/core/mixins/form-associated-checkbox-mixin.js +17 -26
  102. package/core/mixins/form-associated-input-mixin.js +5 -0
  103. package/core/mixins/form-associated-radio-button-mixin.js +5 -4
  104. package/core/mixins/named-slot-list-mixin.js +14 -14
  105. package/core/mixins/panel-mixin.js +1 -1
  106. package/core/mixins/selection-panel-mixin.js +1 -1
  107. package/core/overlay/overlay-option-panel.js +6 -5
  108. package/core/overlay/overlay-outside-pointer-event-listener.js +1 -1
  109. package/core/styles/_index.scss +4 -16
  110. package/core/styles/_theme.scss +370 -0
  111. package/core/styles/{a11y.scss → features/a11y.scss} +2 -2
  112. package/core/styles/{animation.scss → features/animation.scss} +1 -1
  113. package/core/styles/features/color-scheme.scss +11 -0
  114. package/core/styles/features/font-face.scss +3 -0
  115. package/core/styles/{image.scss → features/image.scss} +29 -7
  116. package/core/styles/{layout.private.scss → features/layout.private.scss} +5 -4
  117. package/core/styles/features/layout.scss +47 -0
  118. package/core/styles/{lists.scss → features/lists.scss} +1 -1
  119. package/core/styles/{scrollbar.scss → features/scrollbar.scss} +1 -1
  120. package/core/styles/features/typography.private.scss +9 -0
  121. package/core/styles/{typography.scss → features/typography.scss} +12 -4
  122. package/core/styles/internals/button-reset.scss +5 -0
  123. package/core/styles/{host-scrollbar.scss → internals/host-scrollbar.scss} +1 -1
  124. package/core/styles/internals/list-reset.scss +6 -0
  125. package/core/styles/internals/popover-reset.scss +6 -0
  126. package/core/styles/{screen-reader-only.scss → internals/screen-reader-only.scss} +1 -1
  127. package/core/styles/lean-off-brand-theme.scss +3 -0
  128. package/core/styles/lean-safety-theme.scss +3 -0
  129. package/core/styles/mixins/{a11y.scss → _a11y.scss} +0 -21
  130. package/core/styles/mixins/_core.scss +69 -0
  131. package/core/styles/{core/functions.scss → mixins/_functions.scss} +0 -8
  132. package/core/styles/mixins/{helpers.scss → _helpers.scss} +3 -14
  133. package/core/styles/mixins/{layout.scss → _layout.scss} +1 -1
  134. package/core/styles/mixins/{lists.scss → _lists.scss} +10 -14
  135. package/core/styles/mixins/{pearl-chain-bullet.scss → _pearl-chain-bullet.scss} +6 -6
  136. package/core/styles/mixins/_reset.scss +38 -0
  137. package/core/styles/mixins/{scrollbar.scss → _scrollbar.scss} +7 -1
  138. package/core/styles/mixins/_typo.scss +162 -0
  139. package/core/styles/styles.js +2 -2
  140. package/core.js +41 -46
  141. package/custom-elements.json +73764 -71600
  142. package/date-input/date-input.component.js +1 -1
  143. package/{date-input.component-aFuUH3N_.js → date-input.component-CKdDrnEj.js} +8 -6
  144. package/date-input.js +1 -1
  145. package/date-input.pure.js +1 -1
  146. package/datepicker/common/datepicker-button.js +1 -1
  147. package/datepicker/datepicker/datepicker.component.js +45 -27
  148. package/{datepicker-button-aYDFZ_3v.js → datepicker-button-D8t6_DBS.js} +0 -3
  149. package/datepicker.js +1 -1
  150. package/datepicker.pure.js +1 -1
  151. package/development/accordion/accordion.component.d.ts +5 -7
  152. package/development/accordion/accordion.component.d.ts.map +1 -1
  153. package/development/accordion/accordion.component.js +1 -1
  154. package/development/accordion.component-pI5XM-iT.js +165 -0
  155. package/development/accordion.js +2 -2
  156. package/development/accordion.pure.js +1 -1
  157. package/development/action-group/action-group.component.d.ts +2 -29
  158. package/development/action-group/action-group.component.d.ts.map +1 -1
  159. package/development/action-group/action-group.component.js +1 -1
  160. package/development/action-group.component-BUWevlaI.js +26 -0
  161. package/development/action-group.js +2 -2
  162. package/development/action-group.pure.js +1 -1
  163. package/development/alert/alert/alert.component.d.ts +2 -3
  164. package/development/alert/alert/alert.component.d.ts.map +1 -1
  165. package/development/alert/alert/alert.component.js +1 -1
  166. package/development/alert/alert-group/alert-group.component.d.ts +2 -3
  167. package/development/alert/alert-group/alert-group.component.d.ts.map +1 -1
  168. package/development/alert/alert-group/alert-group.component.js +1 -1
  169. package/development/alert-group.component-DYmA3spO.js +186 -0
  170. package/development/{alert.component-DxzF0FOi.js → alert.component-Cq0IPcfk.js} +5 -6
  171. package/development/alert.js +3 -3
  172. package/development/alert.pure.js +2 -2
  173. package/development/autocomplete/autocomplete-base-element.d.ts +9 -9
  174. package/development/autocomplete/autocomplete-base-element.d.ts.map +1 -1
  175. package/development/autocomplete/autocomplete-base-element.js +2 -2
  176. package/development/autocomplete/autocomplete.component.d.ts.map +1 -1
  177. package/development/autocomplete/autocomplete.component.js +5 -5
  178. package/development/autocomplete-base-element-DtwUdjCd.js +695 -0
  179. package/development/autocomplete.js +3 -3
  180. package/development/autocomplete.pure.js +2 -2
  181. package/development/block-link-common-DCKM3jJQ.js +99 -0
  182. package/development/breadcrumb/breadcrumb/breadcrumb.component.js +1 -1
  183. package/development/breadcrumb/breadcrumb-group/breadcrumb-group.component.d.ts.map +1 -1
  184. package/development/breadcrumb/breadcrumb-group/breadcrumb-group.component.js +1 -1
  185. package/development/breadcrumb-group.component-mofwnLS1.js +197 -0
  186. package/development/breadcrumb.component-B3XsV_Aq.js +34 -0
  187. package/development/breadcrumb.js +3 -3
  188. package/development/breadcrumb.pure.js +2 -2
  189. package/development/button/accent-button/accent-button.component.js +1 -1
  190. package/development/button/accent-button-link/accent-button-link.component.js +1 -1
  191. package/development/button/accent-button-static/accent-button-static.component.js +1 -1
  192. package/development/button/button/button.component.js +1 -1
  193. package/development/button/button-link/button-link.component.js +1 -1
  194. package/development/button/button-static/button-static.component.js +1 -1
  195. package/development/button/common/button-common.d.ts +1 -2
  196. package/development/button/common/button-common.d.ts.map +1 -1
  197. package/development/button/common/button-common.js +1 -1
  198. package/development/button/mini-button/mini-button.component.js +1 -1
  199. package/development/button/mini-button-group/mini-button-group.component.d.ts +2 -4
  200. package/development/button/mini-button-group/mini-button-group.component.d.ts.map +1 -1
  201. package/development/button/mini-button-group/mini-button-group.component.js +1 -1
  202. package/development/button/mini-button-link/mini-button-link.component.js +1 -1
  203. package/development/button/secondary-button/secondary-button.component.js +1 -1
  204. package/development/button/secondary-button-link/secondary-button-link.component.js +1 -1
  205. package/development/button/secondary-button-static/secondary-button-static.component.js +1 -1
  206. package/development/button/transparent-button/transparent-button.component.js +1 -1
  207. package/development/button/transparent-button-link/transparent-button-link.component.js +1 -1
  208. package/development/button/transparent-button-static/transparent-button-static.component.js +1 -1
  209. package/development/{button-common-DZUBRwwD.js → button-common-DvuYiiku.js} +5 -6
  210. package/development/button.js +4 -4
  211. package/development/button.pure.js +3 -3
  212. package/development/calendar/calendar/calendar.component.d.ts +47 -56
  213. package/development/calendar/calendar/calendar.component.d.ts.map +1 -1
  214. package/development/calendar/calendar/calendar.component.js +2 -2
  215. package/development/calendar/calendar-day/calendar-day.component.js +1 -1
  216. package/development/calendar/calendar-month/calendar-month.component.js +2 -2
  217. package/development/calendar/calendar-weekday/calendar-weekday.component.js +1 -1
  218. package/development/calendar/calendar-weeknumber/calendar-weeknumber.component.js +1 -1
  219. package/development/calendar/calendar-year/calendar-year.component.js +2 -2
  220. package/development/calendar/common/calendar-cell-base-element.d.ts.map +1 -1
  221. package/development/calendar/common/calendar-cell-base-element.js +1 -1
  222. package/development/calendar-cell-base-element-D9XadTz1.js +38 -0
  223. package/development/calendar-day.component-Zky9Z-Fq.js +139 -0
  224. package/development/calendar.component-BmB8HoZt.js +1399 -0
  225. package/development/calendar.js +5 -5
  226. package/development/calendar.pure.js +4 -4
  227. package/development/card/card/card.component.js +1 -1
  228. package/development/card/card-badge/card-badge.component.js +1 -1
  229. package/development/card/card-button/card-button.component.js +1 -1
  230. package/development/card/card-link/card-link.component.js +1 -1
  231. package/development/card/common/card-action-common.js +1 -1
  232. package/development/{card-action-common-zS5iNz23.js → card-action-common-Dr-EX0gr.js} +1 -1
  233. package/development/{card-badge.component-CEfJdJBs.js → card-badge.component-CENJTZ4g.js} +1 -1
  234. package/development/{card.component-CL2gHoyP.js → card.component-CVAgqDNK.js} +1 -1
  235. package/development/card.js +4 -4
  236. package/development/card.pure.js +3 -3
  237. package/development/carousel/carousel/carousel.component.js +1 -1
  238. package/development/carousel/carousel-item/carousel-item.component.d.ts +8 -6
  239. package/development/carousel/carousel-item/carousel-item.component.d.ts.map +1 -1
  240. package/development/carousel/carousel-item/carousel-item.component.js +2 -2
  241. package/development/carousel/carousel-list/carousel-list.component.d.ts.map +1 -1
  242. package/development/carousel/carousel-list/carousel-list.component.js +1 -1
  243. package/development/{carousel-item.component-B_0wdIAu.js → carousel-item.component-DjDAg-DC.js} +16 -4
  244. package/development/carousel-list.component-pJBqbfi9.js +126 -0
  245. package/development/carousel.component-CD2_hauh.js +139 -0
  246. package/development/carousel.js +5 -5
  247. package/development/carousel.pure.js +4 -4
  248. package/development/checkbox/checkbox.component.d.ts +4 -6
  249. package/development/checkbox/checkbox.component.d.ts.map +1 -1
  250. package/development/checkbox/checkbox.component.js +1 -1
  251. package/development/checkbox/common/checkbox-common.d.ts +0 -1
  252. package/development/checkbox/common/checkbox-common.d.ts.map +1 -1
  253. package/development/checkbox/common/checkbox-common.js +1 -1
  254. package/development/{checkbox-common-C3Ekixul.js → checkbox-common-o3Su1McS.js} +12 -12
  255. package/development/checkbox-group/checkbox-group.component.js +1 -1
  256. package/development/checkbox-group.js +1 -1
  257. package/development/checkbox-panel/checkbox-panel.component.js +2 -2
  258. package/development/checkbox-panel.js +1 -1
  259. package/development/{checkbox.component-D6BR8e7w.js → checkbox.component-6zr36eQq.js} +7 -8
  260. package/development/checkbox.js +3 -3
  261. package/development/checkbox.pure.js +2 -2
  262. package/development/chip/chip/chip.component.js +1 -1
  263. package/development/chip/chip-group/chip-group.component.d.ts +2 -24
  264. package/development/chip/chip-group/chip-group.component.d.ts.map +1 -1
  265. package/development/chip/chip-group/chip-group.component.js +1 -1
  266. package/development/chip-group.component-BY025VTb.js +395 -0
  267. package/development/chip-label/chip-label.component.js +1 -1
  268. package/development/{chip-label.component-DHHNtvTt.js → chip-label.component-D8Il3pvk.js} +1 -1
  269. package/development/chip-label.js +2 -2
  270. package/development/chip-label.pure.js +1 -1
  271. package/development/{chip.component-Uuf3tGFz.js → chip.component-C2VmHfZa.js} +1 -1
  272. package/development/chip.js +3 -3
  273. package/development/chip.pure.js +2 -2
  274. package/development/clock/clock.component.d.ts +2 -2
  275. package/development/clock/clock.component.d.ts.map +1 -1
  276. package/development/clock/clock.component.js +1 -1
  277. package/development/clock.component-CyCPrufS.js +289 -0
  278. package/development/clock.js +2 -2
  279. package/development/clock.pure.js +1 -1
  280. package/development/compact-paginator.component-CKHS0U1v.js +49 -0
  281. package/development/container/container/container.component.js +1 -1
  282. package/development/container/sticky-bar/sticky-bar.component.d.ts +2 -3
  283. package/development/container/sticky-bar/sticky-bar.component.d.ts.map +1 -1
  284. package/development/container/sticky-bar/sticky-bar.component.js +1 -1
  285. package/development/{container.component-D1Qgp4HW.js → container.component-Ctdd3D-A.js} +1 -1
  286. package/development/container.js +3 -3
  287. package/development/container.pure.js +2 -2
  288. package/development/core/a11y/arrow-navigation.js +1 -1
  289. package/development/core/a11y/fake-event-detection.js +1 -1
  290. package/development/core/a11y/focus-trap-controller.js +1 -1
  291. package/development/core/a11y/focus-visible-within-controller.js +1 -1
  292. package/development/core/a11y/focus.js +1 -1
  293. package/development/core/a11y/input-modality-detector.js +1 -1
  294. package/development/core/a11y/interactivity-checker.js +1 -1
  295. package/development/core/a11y/live-announcer.js +1 -1
  296. package/development/core/base-elements/action-base-element.js +2 -2
  297. package/development/core/base-elements/button-base-element.d.ts +3 -4
  298. package/development/core/base-elements/button-base-element.d.ts.map +1 -1
  299. package/development/core/base-elements/button-base-element.js +66 -92
  300. package/development/core/base-elements/element.d.ts.map +1 -1
  301. package/development/core/base-elements/element.js +1 -1
  302. package/development/core/base-elements/link-base-element.d.ts +1 -3
  303. package/development/core/base-elements/link-base-element.d.ts.map +1 -1
  304. package/development/core/base-elements/link-base-element.js +1 -1
  305. package/development/core/base-elements/open-close-base-element.d.ts +1 -1
  306. package/development/core/base-elements/open-close-base-element.d.ts.map +1 -1
  307. package/development/core/base-elements/open-close-base-element.js +2 -2
  308. package/development/core/base-elements/selection-group-base-element.d.ts +5 -7
  309. package/development/core/base-elements/selection-group-base-element.d.ts.map +1 -1
  310. package/development/core/base-elements/selection-group-base-element.js +1 -1
  311. package/development/core/config/config.js +1 -1
  312. package/development/core/controllers/escapable-overlay-controller.js +1 -1
  313. package/development/core/controllers/id-reference-controller.js +1 -1
  314. package/development/core/controllers/inert-controller.js +1 -1
  315. package/development/core/controllers/language-controller.js +1 -1
  316. package/development/core/controllers/media-matchers-controller.js +2 -2
  317. package/development/core/controllers/overlay-position-controller.js +1 -1
  318. package/development/core/controllers/property-watcher-controller.js +1 -1
  319. package/development/core/datetime/date-adapter.d.ts +0 -5
  320. package/development/core/datetime/date-adapter.d.ts.map +1 -1
  321. package/development/core/datetime/date-adapter.js +2 -7
  322. package/development/core/datetime/native-date-adapter.js +1 -1
  323. package/development/core/datetime/temporal-date-adapter.js +1 -1
  324. package/development/core/decorators/force-type.js +1 -1
  325. package/development/core/decorators/get-override.js +1 -1
  326. package/development/core/decorators/handle-distinct-change.js +1 -1
  327. package/development/core/decorators/id-reference.d.ts.map +1 -1
  328. package/development/core/decorators/id-reference.js +1 -1
  329. package/development/core/decorators/omit-empty-converter.js +1 -1
  330. package/development/core/decorators/plain-date.js +1 -1
  331. package/development/core/dom/animation.js +1 -1
  332. package/development/core/dom/contains-pierce-shadow-dom.js +1 -1
  333. package/development/core/dom/platform.js +1 -1
  334. package/development/core/dom/queue-dom-content-loaded.js +1 -1
  335. package/development/core/dom/scroll.js +1 -1
  336. package/development/core/dom/set-or-remove-attribute.js +1 -1
  337. package/development/core/eventing/event-target.js +1 -1
  338. package/development/core/eventing/form-element-handlers.js +1 -1
  339. package/development/core/eventing/forward-event.js +1 -1
  340. package/development/core/eventing/is-event-prevented.js +1 -1
  341. package/development/core/i18n/i18n.d.ts +2 -3
  342. package/development/core/i18n/i18n.d.ts.map +1 -1
  343. package/development/core/i18n/i18n.js +6 -12
  344. package/development/core/interfaces/types.d.ts +1 -6
  345. package/development/core/interfaces/types.d.ts.map +1 -1
  346. package/development/core/mixins/animation-complete-mixin.js +1 -1
  347. package/development/core/mixins/disabled-mixin.js +1 -1
  348. package/development/core/mixins/form-associated-checkbox-mixin.d.ts.map +1 -1
  349. package/development/core/mixins/form-associated-checkbox-mixin.js +7 -21
  350. package/development/core/mixins/form-associated-input-mixin.d.ts +1 -0
  351. package/development/core/mixins/form-associated-input-mixin.d.ts.map +1 -1
  352. package/development/core/mixins/form-associated-input-mixin.js +6 -1
  353. package/development/core/mixins/form-associated-mixin.d.ts +1 -1
  354. package/development/core/mixins/form-associated-mixin.d.ts.map +1 -1
  355. package/development/core/mixins/form-associated-mixin.js +1 -1
  356. package/development/core/mixins/form-associated-radio-button-mixin.d.ts.map +1 -1
  357. package/development/core/mixins/form-associated-radio-button-mixin.js +11 -8
  358. package/development/core/mixins/named-slot-list-mixin.js +3 -3
  359. package/development/core/mixins/negative-mixin.js +1 -1
  360. package/development/core/mixins/panel-mixin.d.ts +3 -3
  361. package/development/core/mixins/panel-mixin.d.ts.map +1 -1
  362. package/development/core/mixins/panel-mixin.js +1 -1
  363. package/development/core/mixins/readonly-mixin.js +1 -1
  364. package/development/core/mixins/required-mixin.js +1 -1
  365. package/development/core/mixins/selection-panel-mixin.js +2 -1
  366. package/development/core/mixins/update-scheduler-mixin.js +1 -1
  367. package/development/core/overlay/overlay-option-panel.d.ts +1 -1
  368. package/development/core/overlay/overlay-option-panel.d.ts.map +1 -1
  369. package/development/core/overlay/overlay-option-panel.js +5 -2
  370. package/development/core/overlay/overlay-outside-pointer-event-listener.d.ts +1 -1
  371. package/development/core/overlay/overlay-outside-pointer-event-listener.d.ts.map +1 -1
  372. package/development/core/overlay/overlay-outside-pointer-event-listener.js +2 -2
  373. package/development/core/overlay/overlay-trigger-attributes.js +1 -1
  374. package/development/core/overlay/position.js +1 -1
  375. package/development/core/styles/styles.d.ts +3 -0
  376. package/development/core/styles/styles.d.ts.map +1 -1
  377. package/development/core/styles/styles.js +2 -2
  378. package/development/core/testing/event-spy.js +1 -1
  379. package/development/core/testing/mocha-extensions.js +1 -1
  380. package/development/core/testing/wait-for-condition.js +1 -1
  381. package/development/core/testing/wait-for-image-ready.js +1 -1
  382. package/development/core/testing/wait-for-render.js +1 -1
  383. package/development/core.d.ts +0 -6
  384. package/development/core.d.ts.map +1 -1
  385. package/development/core.js +7 -12
  386. package/development/date-input/date-input.component.d.ts.map +1 -1
  387. package/development/date-input/date-input.component.js +1 -1
  388. package/development/date-input.component-DMNqiZ6l.js +302 -0
  389. package/development/date-input.js +2 -2
  390. package/development/date-input.pure.js +1 -1
  391. package/development/datepicker/common/datepicker-button.d.ts +0 -2
  392. package/development/datepicker/common/datepicker-button.d.ts.map +1 -1
  393. package/development/datepicker/common/datepicker-button.js +1 -1
  394. package/development/datepicker/datepicker/datepicker.component.d.ts +5 -3
  395. package/development/datepicker/datepicker/datepicker.component.d.ts.map +1 -1
  396. package/development/datepicker/datepicker/datepicker.component.js +38 -12
  397. package/development/datepicker/datepicker-next-day/datepicker-next-day.component.js +1 -1
  398. package/development/datepicker/datepicker-previous-day/datepicker-previous-day.component.js +1 -1
  399. package/development/datepicker/datepicker-toggle/datepicker-toggle.component.js +1 -1
  400. package/development/{datepicker-button-BAT1ebzJ.js → datepicker-button-BvBQB6Sv.js} +1 -5
  401. package/development/datepicker.js +2 -2
  402. package/development/datepicker.pure.js +1 -1
  403. package/development/dialog/dialog/dialog.component.d.ts +2 -3
  404. package/development/dialog/dialog/dialog.component.d.ts.map +1 -1
  405. package/development/dialog/dialog/dialog.component.js +1 -1
  406. package/development/dialog/dialog-actions/dialog-actions.component.js +1 -1
  407. package/development/dialog/dialog-close-button/dialog-close-button.component.js +1 -1
  408. package/development/dialog/dialog-content/dialog-content.component.js +1 -1
  409. package/development/dialog/dialog-title/dialog-title.component.js +1 -1
  410. package/development/{dialog-actions.component-e0ZTTUin.js → dialog-actions.component-Dyzg7z-B.js} +1 -1
  411. package/development/{dialog-close-button.component-Idc00dB9.js → dialog-close-button.component-dgLnsaLx.js} +1 -1
  412. package/development/{dialog-content.component-CThU7Z8A.js → dialog-content.component-DDtVV0Lh.js} +1 -1
  413. package/development/dialog-title.component-DyItyahT.js +29 -0
  414. package/development/{dialog.component-AItB8ixG.js → dialog.component-B1Tke2ym.js} +8 -11
  415. package/development/dialog.js +6 -6
  416. package/development/dialog.pure.js +5 -5
  417. package/development/divider/divider.component.d.ts +2 -2
  418. package/development/divider/divider.component.d.ts.map +1 -1
  419. package/development/divider/divider.component.js +1 -1
  420. package/development/{divider.component-Ck_0vISe.js → divider.component-CYP23U4q.js} +1 -1
  421. package/development/divider.js +2 -2
  422. package/development/divider.pure.js +1 -1
  423. package/development/{element-BAsBayf5.js → element-BS28ba7w.js} +1 -1
  424. package/development/error.component-Bp7ztvQB.js +53 -0
  425. package/development/expansion-panel/expansion-panel/expansion-panel.component.d.ts +4 -6
  426. package/development/expansion-panel/expansion-panel/expansion-panel.component.d.ts.map +1 -1
  427. package/development/expansion-panel/expansion-panel/expansion-panel.component.js +1 -1
  428. package/development/expansion-panel/expansion-panel-content/expansion-panel-content.component.d.ts +1 -1
  429. package/development/expansion-panel/expansion-panel-content/expansion-panel-content.component.d.ts.map +1 -1
  430. package/development/expansion-panel/expansion-panel-content/expansion-panel-content.component.js +1 -1
  431. package/development/expansion-panel/expansion-panel-header/expansion-panel-header.component.d.ts +1 -1
  432. package/development/expansion-panel/expansion-panel-header/expansion-panel-header.component.d.ts.map +1 -1
  433. package/development/expansion-panel/expansion-panel-header/expansion-panel-header.component.js +1 -1
  434. package/development/{expansion-panel-content.component-BUbiseFP.js → expansion-panel-content.component-CKhGtjji.js} +2 -1
  435. package/development/expansion-panel-header.component-Do3pLbzs.js +83 -0
  436. package/development/expansion-panel.component-BnbRiLrk.js +320 -0
  437. package/development/expansion-panel.js +4 -4
  438. package/development/expansion-panel.pure.js +3 -3
  439. package/development/file-selector/common/file-selector-common.d.ts +6 -1
  440. package/development/file-selector/common/file-selector-common.d.ts.map +1 -1
  441. package/development/file-selector/common/file-selector-common.js +2 -2
  442. package/development/file-selector/file-selector/file-selector.component.d.ts.map +1 -1
  443. package/development/file-selector/file-selector/file-selector.component.js +5 -4
  444. package/development/file-selector/file-selector-dropzone/file-selector-dropzone.component.d.ts.map +1 -1
  445. package/development/file-selector/file-selector-dropzone/file-selector-dropzone.component.js +1 -1
  446. package/development/file-selector-common-CCvgN1G2.js +421 -0
  447. package/development/file-selector-dropzone.component-BeqSG2IM.js +106 -0
  448. package/development/file-selector.js +4 -4
  449. package/development/file-selector.pure.js +3 -3
  450. package/development/flip-card/flip-card/flip-card.component.d.ts.map +1 -1
  451. package/development/flip-card/flip-card/flip-card.component.js +1 -1
  452. package/development/flip-card/flip-card-details/flip-card-details.component.js +1 -1
  453. package/development/flip-card/flip-card-summary/flip-card-summary.component.d.ts +1 -2
  454. package/development/flip-card/flip-card-summary/flip-card-summary.component.d.ts.map +1 -1
  455. package/development/flip-card/flip-card-summary/flip-card-summary.component.js +1 -1
  456. package/development/{flip-card-details.component-BYv_W66a.js → flip-card-details.component-RJ43uhma.js} +1 -1
  457. package/development/{flip-card-summary.component-C-US77Nw.js → flip-card-summary.component-D9zMzU8m.js} +2 -2
  458. package/development/flip-card.component-CAsfIcvt.js +189 -0
  459. package/development/flip-card.js +4 -4
  460. package/development/flip-card.pure.js +3 -3
  461. package/development/footer/footer.component.d.ts +2 -3
  462. package/development/footer/footer.component.d.ts.map +1 -1
  463. package/development/footer/footer.component.js +1 -1
  464. package/development/{footer.component-K2bWizjw.js → footer.component-DJH7E5aO.js} +1 -1
  465. package/development/footer.js +2 -2
  466. package/development/footer.pure.js +1 -1
  467. package/development/form-field/error/error.component.js +1 -1
  468. package/development/form-field/form-field/form-field.component.d.ts +3 -10
  469. package/development/form-field/form-field/form-field.component.d.ts.map +1 -1
  470. package/development/form-field/form-field/form-field.component.js +1 -1
  471. package/development/form-field/form-field-clear/form-field-clear.component.js +1 -1
  472. package/development/form-field/form-field-text-counter/form-field-text-counter.component.js +1 -1
  473. package/development/form-field/hint/hint.component.js +1 -1
  474. package/development/form-field.component-YM-Z5aZf.js +670 -0
  475. package/development/form-field.js +4 -4
  476. package/development/form-field.pure.js +3 -3
  477. package/development/header/common/header-action-common.d.ts +2 -2
  478. package/development/header/common/header-action-common.d.ts.map +1 -1
  479. package/development/header/common/header-action-common.js +1 -1
  480. package/development/header/header/header.component.d.ts +4 -3
  481. package/development/header/header/header.component.d.ts.map +1 -1
  482. package/development/header/header/header.component.js +1 -1
  483. package/development/header/header-button/header-button.component.js +1 -1
  484. package/development/header/header-environment/header-environment.component.js +1 -1
  485. package/development/header/header-link/header-link.component.js +1 -1
  486. package/development/header-action-common-DX2ejpAL.js +86 -0
  487. package/development/{header-environment.component-CIyxQwkQ.js → header-environment.component--4YEZyKq.js} +1 -1
  488. package/development/header.component-FVw_5NRT.js +336 -0
  489. package/development/header.js +4 -4
  490. package/development/header.pure.js +3 -3
  491. package/development/{hint.component-BB9QLGGx.js → hint.component-CdM71SNj.js} +1 -1
  492. package/development/icon/icon-base.js +1 -1
  493. package/development/icon/icon-name-mixin.js +1 -1
  494. package/development/icon/icon-request.js +1 -1
  495. package/development/icon/icon-validate.js +1 -1
  496. package/development/icon/icon.component.d.ts +1 -1
  497. package/development/icon/icon.component.d.ts.map +1 -1
  498. package/development/icon/icon.component.js +6 -8
  499. package/development/icon-base-Cq6DxOUh.js +163 -0
  500. package/development/icon-sidebar/icon-sidebar/icon-sidebar.component.js +1 -1
  501. package/development/icon-sidebar/icon-sidebar-button/icon-sidebar-button.component.js +1 -1
  502. package/development/icon-sidebar/icon-sidebar-container/icon-sidebar-container.component.js +1 -1
  503. package/development/icon-sidebar/icon-sidebar-content/icon-sidebar-content.component.js +1 -1
  504. package/development/icon-sidebar/icon-sidebar-link/icon-sidebar-link.component.js +1 -1
  505. package/development/{icon-sidebar-container.component-CM94Spwy.js → icon-sidebar-container.component-G8wyj1Sb.js} +1 -1
  506. package/development/{icon-sidebar-content.component-BP9W5ZxR.js → icon-sidebar-content.component-D1VPTNhO.js} +1 -1
  507. package/development/{icon-sidebar.component-B68P2aNh.js → icon-sidebar.component-DLlCKweu.js} +1 -1
  508. package/development/icon-sidebar.js +4 -4
  509. package/development/icon-sidebar.pure.js +3 -3
  510. package/development/icon.js +2 -2
  511. package/development/icon.pure.js +1 -1
  512. package/development/image/image.component.js +1 -1
  513. package/development/{image.component-EfSMgHI_.js → image.component-DoRIca5y.js} +5 -16
  514. package/development/image.js +2 -2
  515. package/development/image.pure.js +1 -1
  516. package/development/inline-link-common-CXYyREBi.js +18 -0
  517. package/development/journey-header/journey-header.component.js +1 -1
  518. package/development/journey-header.component-tBukBhVq.js +146 -0
  519. package/development/journey-header.js +2 -2
  520. package/development/journey-header.pure.js +1 -1
  521. package/development/lead-container/lead-container.component.js +1 -1
  522. package/development/{lead-container.component-C_mFeq1B.js → lead-container.component-D93DLU_J.js} +1 -1
  523. package/development/lead-container.js +2 -2
  524. package/development/lead-container.pure.js +1 -1
  525. package/development/link/block-link/block-link.component.js +1 -1
  526. package/development/link/block-link-button/block-link-button.component.js +1 -1
  527. package/development/link/block-link-static/block-link-static.component.js +1 -1
  528. package/development/link/common/block-link-common.d.ts +3 -4
  529. package/development/link/common/block-link-common.d.ts.map +1 -1
  530. package/development/link/common/block-link-common.js +1 -1
  531. package/development/link/common/inline-link-common.js +1 -1
  532. package/development/link/common/link-common.js +1 -1
  533. package/development/link/link/link.component.js +1 -1
  534. package/development/link/link-button/link-button.component.js +1 -1
  535. package/development/link/link-static/link-static.component.js +1 -1
  536. package/development/link-common-DWTP-lFX.js +26 -0
  537. package/development/link-list/common/link-list-base.d.ts +5 -7
  538. package/development/link-list/common/link-list-base.d.ts.map +1 -1
  539. package/development/link-list/common/link-list-base.js +1 -1
  540. package/development/link-list/link-list.component.d.ts +2 -2
  541. package/development/link-list/link-list.component.d.ts.map +1 -1
  542. package/development/link-list/link-list.component.js +1 -1
  543. package/development/link-list-anchor/link-list-anchor.component.js +1 -1
  544. package/development/{link-list-anchor.component-Csb-FOQL.js → link-list-anchor.component-9C1H5KXX.js} +2 -2
  545. package/development/link-list-anchor.js +2 -2
  546. package/development/link-list-anchor.pure.js +1 -1
  547. package/development/{link-list-base-QADBTZCN.js → link-list-base-CaPkNR_V.js} +4 -5
  548. package/development/link-list.component-By_lSSYE.js +97 -0
  549. package/development/link-list.js +3 -3
  550. package/development/link-list.pure.js +2 -2
  551. package/development/link.js +4 -4
  552. package/development/link.pure.js +3 -3
  553. package/development/loading-indicator/loading-indicator.component.js +1 -1
  554. package/development/loading-indicator-circle/loading-indicator-circle.component.js +1 -1
  555. package/development/{loading-indicator-circle.component-Cfjw5vyz.js → loading-indicator-circle.component-CudNN1Z6.js} +1 -1
  556. package/development/loading-indicator-circle.js +2 -2
  557. package/development/loading-indicator-circle.pure.js +1 -1
  558. package/development/{loading-indicator.component-By2VaLCf.js → loading-indicator.component-sEdpEBpx.js} +1 -1
  559. package/development/loading-indicator.js +2 -2
  560. package/development/loading-indicator.pure.js +1 -1
  561. package/development/logo/logo.component.d.ts +2 -2
  562. package/development/logo/logo.component.d.ts.map +1 -1
  563. package/development/logo/logo.component.js +1 -1
  564. package/development/{logo.component-DYKgAgq0.js → logo.component-SqyPA1M-.js} +1 -1
  565. package/development/logo.js +2 -2
  566. package/development/logo.pure.js +1 -1
  567. package/development/map-container/map-container.component.d.ts +2 -2
  568. package/development/map-container/map-container.component.js +1 -1
  569. package/development/map-container.component-ASCfDs-R.js +176 -0
  570. package/development/map-container.js +2 -2
  571. package/development/map-container.pure.js +1 -1
  572. package/development/menu/common/menu-action-common.js +1 -1
  573. package/development/menu/menu/menu.component.d.ts.map +1 -1
  574. package/development/menu/menu/menu.component.js +1 -1
  575. package/development/menu/menu-button/menu-button.component.js +1 -1
  576. package/development/menu/menu-link/menu-link.component.js +1 -1
  577. package/development/menu-action-common-BUIJFq1R.js +32 -0
  578. package/development/menu.component-B3uWxwbt.js +369 -0
  579. package/development/menu.js +3 -3
  580. package/development/menu.pure.js +2 -2
  581. package/development/message/message.component.js +1 -1
  582. package/development/{message.component-CdO5GyE2.js → message.component-BrqWVCJV.js} +2 -2
  583. package/development/message.js +2 -2
  584. package/development/message.pure.js +1 -1
  585. package/development/mini-button-group.component-C2KcpK5c.js +115 -0
  586. package/development/mini-button-link.component-BHaNYXk0.js +39 -0
  587. package/development/mini-calendar/mini-calendar/mini-calendar.component.d.ts +2 -2
  588. package/development/mini-calendar/mini-calendar/mini-calendar.component.d.ts.map +1 -1
  589. package/development/mini-calendar/mini-calendar/mini-calendar.component.js +1 -1
  590. package/development/mini-calendar/mini-calendar-day/mini-calendar-day.component.js +1 -1
  591. package/development/mini-calendar/mini-calendar-month/mini-calendar-month.component.d.ts.map +1 -1
  592. package/development/mini-calendar/mini-calendar-month/mini-calendar-month.component.js +1 -1
  593. package/development/{mini-calendar-day.component-BLkJ12Bw.js → mini-calendar-day.component-UG6wpckK.js} +1 -1
  594. package/development/{mini-calendar-month.component-D8XjjLmN.js → mini-calendar-month.component-GE-cmXxP.js} +1 -1
  595. package/development/mini-calendar.component-DQ_zxELt.js +184 -0
  596. package/development/mini-calendar.js +4 -4
  597. package/development/mini-calendar.pure.js +3 -3
  598. package/development/navigation/common/navigation-action-common.d.ts +3 -3
  599. package/development/navigation/common/navigation-action-common.d.ts.map +1 -1
  600. package/development/navigation/common/navigation-action-common.js +1 -1
  601. package/development/navigation/navigation/navigation.component.d.ts +0 -1
  602. package/development/navigation/navigation/navigation.component.d.ts.map +1 -1
  603. package/development/navigation/navigation/navigation.component.js +1 -1
  604. package/development/navigation/navigation-button/navigation-button.component.js +1 -1
  605. package/development/navigation/navigation-link/navigation-link.component.js +1 -1
  606. package/development/navigation/navigation-list/navigation-list.component.d.ts +2 -3
  607. package/development/navigation/navigation-list/navigation-list.component.d.ts.map +1 -1
  608. package/development/navigation/navigation-list/navigation-list.component.js +1 -1
  609. package/development/navigation/navigation-marker/navigation-marker.component.d.ts +1 -1
  610. package/development/navigation/navigation-marker/navigation-marker.component.d.ts.map +1 -1
  611. package/development/navigation/navigation-marker/navigation-marker.component.js +1 -1
  612. package/development/navigation/navigation-section/navigation-section.component.d.ts +0 -1
  613. package/development/navigation/navigation-section/navigation-section.component.d.ts.map +1 -1
  614. package/development/navigation/navigation-section/navigation-section.component.js +1 -1
  615. package/development/navigation-action-common-BdJOaItd.js +56 -0
  616. package/development/navigation-list.component-CWOSnwgm.js +86 -0
  617. package/development/navigation-marker.component-D3Vbe1dH.js +120 -0
  618. package/development/navigation-section.component-34GEIPaN.js +343 -0
  619. package/development/navigation.component-CqQuaq7V.js +316 -0
  620. package/development/navigation.js +6 -6
  621. package/development/navigation.pure.js +5 -5
  622. package/development/notification/notification.component.d.ts +2 -5
  623. package/development/notification/notification.component.d.ts.map +1 -1
  624. package/development/notification/notification.component.js +1 -1
  625. package/development/notification.component-BlWGjgrP.js +259 -0
  626. package/development/notification.js +2 -2
  627. package/development/notification.pure.js +1 -1
  628. package/development/optgroup-base-element--G8myprb.js +140 -0
  629. package/development/option/optgroup/optgroup-base-element.d.ts +3 -3
  630. package/development/option/optgroup/optgroup-base-element.d.ts.map +1 -1
  631. package/development/option/optgroup/optgroup-base-element.js +1 -1
  632. package/development/option/optgroup/optgroup.component.js +2 -2
  633. package/development/option/option/option-base-element.d.ts +2 -3
  634. package/development/option/option/option-base-element.d.ts.map +1 -1
  635. package/development/option/option/option-base-element.js +9 -8
  636. package/development/option/option/option.component.d.ts +0 -2
  637. package/development/option/option/option.component.d.ts.map +1 -1
  638. package/development/option/option/option.component.js +1 -1
  639. package/development/option/option-hint/option-hint.component.d.ts +2 -0
  640. package/development/option/option-hint/option-hint.component.d.ts.map +1 -1
  641. package/development/option/option-hint/option-hint.component.js +1 -1
  642. package/development/option/option-styles.d.ts +2 -0
  643. package/development/option/option-styles.d.ts.map +1 -0
  644. package/development/option/option-styles.js +2 -0
  645. package/development/option-hint.component-DyCue4gx.js +40 -0
  646. package/development/option-styles-CJMae7_-.js +8 -0
  647. package/development/option.component-BSHq97Of.js +130 -0
  648. package/development/option.js +6 -5
  649. package/development/option.pure.d.ts +1 -0
  650. package/development/option.pure.d.ts.map +1 -1
  651. package/development/option.pure.js +5 -4
  652. package/development/overlay/overlay-base-element.d.ts +6 -8
  653. package/development/overlay/overlay-base-element.d.ts.map +1 -1
  654. package/development/overlay/overlay-base-element.js +12 -17
  655. package/development/overlay/overlay.component.d.ts +3 -3
  656. package/development/overlay/overlay.component.d.ts.map +1 -1
  657. package/development/overlay/overlay.component.js +1 -1
  658. package/development/{overlay.component-rFmitc_r.js → overlay.component-D_BLhfdG.js} +8 -11
  659. package/development/overlay.js +2 -2
  660. package/development/overlay.pure.js +1 -1
  661. package/development/paginator/common/paginator-common.d.ts +12 -7
  662. package/development/paginator/common/paginator-common.d.ts.map +1 -1
  663. package/development/paginator/common/paginator-common.js +2 -408
  664. package/development/paginator/compact-paginator/compact-paginator.component.d.ts.map +1 -1
  665. package/development/paginator/compact-paginator/compact-paginator.component.js +1 -1
  666. package/development/paginator/paginator/paginator.component.d.ts.map +1 -1
  667. package/development/paginator/paginator/paginator.component.js +1 -1
  668. package/development/paginator-common-B9EN1Fjx.js +432 -0
  669. package/development/paginator.component-DisPJ2Qa.js +265 -0
  670. package/development/paginator.js +5 -5
  671. package/development/paginator.pure.js +4 -4
  672. package/development/{panel-mixin-CFz9-K_8.js → panel-mixin-Da_cHQn-.js} +3 -5
  673. package/development/popover/popover/popover.component.d.ts +54 -0
  674. package/development/popover/popover/popover.component.d.ts.map +1 -0
  675. package/development/popover/popover/popover.component.js +2 -0
  676. package/development/popover/popover-base/popover-base.d.ts +61 -0
  677. package/development/popover/popover-base/popover-base.d.ts.map +1 -0
  678. package/development/popover/popover-base/popover-base.js +2 -0
  679. package/development/popover/popover-close-button/popover-close-button.component.d.ts +21 -0
  680. package/development/popover/popover-close-button/popover-close-button.component.d.ts.map +1 -0
  681. package/development/popover/popover-close-button/popover-close-button.component.js +30 -0
  682. package/development/popover-base-BcIAVXWF.js +288 -0
  683. package/development/popover.component-CMR0eV2t.js +233 -0
  684. package/development/popover.js +6 -3
  685. package/development/popover.pure.d.ts +3 -1
  686. package/development/popover.pure.d.ts.map +1 -1
  687. package/development/popover.pure.js +4 -2
  688. package/development/radio-button/common/radio-button-common.d.ts +0 -1
  689. package/development/radio-button/common/radio-button-common.d.ts.map +1 -1
  690. package/development/radio-button/common/radio-button-common.js +1 -1
  691. package/development/radio-button/radio-button.component.d.ts +2 -3
  692. package/development/radio-button/radio-button.component.d.ts.map +1 -1
  693. package/development/radio-button/radio-button.component.js +1 -1
  694. package/development/radio-button-common-BaGYHkpD.js +129 -0
  695. package/development/radio-button-group/radio-button-group.component.js +1 -1
  696. package/development/radio-button-group.js +1 -1
  697. package/development/radio-button-panel/radio-button-panel.component.js +1 -1
  698. package/development/radio-button-panel.js +1 -1
  699. package/development/{radio-button.component-3BV31Fkc.js → radio-button.component-CmQGrMHr.js} +5 -5
  700. package/development/radio-button.js +3 -3
  701. package/development/radio-button.pure.js +2 -2
  702. package/development/{sbb-tokens-bg2elLoF.js → sbb-tokens-DGQJTWqa.js} +1 -1
  703. package/development/select/select.component.d.ts +4 -5
  704. package/development/select/select.component.d.ts.map +1 -1
  705. package/development/select/select.component.js +1 -1
  706. package/development/select.component-3S8E6UwN.js +809 -0
  707. package/development/select.js +2 -2
  708. package/development/select.pure.js +1 -1
  709. package/development/selection-action-panel/selection-action-panel.component.js +1 -1
  710. package/development/{selection-action-panel.component-ClpKsc-Z.js → selection-action-panel.component-pd9B6lRD.js} +1 -1
  711. package/development/selection-action-panel.js +2 -2
  712. package/development/selection-action-panel.pure.js +1 -1
  713. package/development/selection-expansion-panel/selection-expansion-panel.component.js +1 -1
  714. package/development/selection-expansion-panel.component-Dtfnz1AE.js +186 -0
  715. package/development/selection-expansion-panel.js +2 -2
  716. package/development/selection-expansion-panel.pure.js +1 -1
  717. package/development/selection-group-base-element-govDKjsE.js +146 -0
  718. package/development/sidebar/common/styles.js +1 -1
  719. package/development/sidebar/sidebar/sidebar.component.js +1 -1
  720. package/development/sidebar/sidebar-close-button/sidebar-close-button.component.js +1 -1
  721. package/development/sidebar/sidebar-container/sidebar-container.component.js +1 -1
  722. package/development/sidebar/sidebar-content/sidebar-content.component.js +1 -1
  723. package/development/sidebar/sidebar-title/sidebar-title.component.d.ts +3 -2
  724. package/development/sidebar/sidebar-title/sidebar-title.component.d.ts.map +1 -1
  725. package/development/sidebar/sidebar-title/sidebar-title.component.js +1 -1
  726. package/development/{sidebar-close-button.component-D_grme_h.js → sidebar-close-button.component-tkbcoR-I.js} +1 -1
  727. package/development/sidebar-container.component-CbE9878W.js +100 -0
  728. package/development/{sidebar-content.component-CbYPeaaz.js → sidebar-content.component-CBfaiAsJ.js} +1 -1
  729. package/development/{sidebar-title.component-BFqfnG6B.js → sidebar-title.component-ZKarv4Mz.js} +1 -1
  730. package/development/{sidebar.component-DcVKyd9R.js → sidebar.component-Cmkn9X-M.js} +1 -1
  731. package/development/sidebar.js +6 -6
  732. package/development/sidebar.pure.js +5 -5
  733. package/development/signet/signet.component.d.ts +2 -3
  734. package/development/signet/signet.component.d.ts.map +1 -1
  735. package/development/signet/signet.component.js +1 -1
  736. package/development/{signet.component-NdFqUZK9.js → signet.component--kuRWLGw.js} +1 -1
  737. package/development/signet.js +2 -2
  738. package/development/signet.pure.js +1 -1
  739. package/development/skiplink-list/skiplink-list.component.d.ts +2 -3
  740. package/development/skiplink-list/skiplink-list.component.d.ts.map +1 -1
  741. package/development/skiplink-list/skiplink-list.component.js +1 -1
  742. package/development/skiplink-list.component-Cpyo7JAH.js +129 -0
  743. package/development/skiplink-list.js +2 -2
  744. package/development/skiplink-list.pure.js +1 -1
  745. package/development/slider/slider.component.d.ts +1 -0
  746. package/development/slider/slider.component.d.ts.map +1 -1
  747. package/development/slider/slider.component.js +1 -1
  748. package/development/slider.component-Dymr4YvE.js +333 -0
  749. package/development/slider.js +2 -2
  750. package/development/slider.pure.js +1 -1
  751. package/development/status/status.component.d.ts +1 -2
  752. package/development/status/status.component.d.ts.map +1 -1
  753. package/development/status/status.component.js +1 -1
  754. package/development/{status.component-CtTNDvLl.js → status.component-DnnX98xP.js} +1 -1
  755. package/development/status.js +2 -2
  756. package/development/status.pure.js +1 -1
  757. package/development/step-label.component-i13wQWJJ.js +127 -0
  758. package/development/step.component-lTLpcOUh.js +167 -0
  759. package/development/stepper/step/step.component.d.ts +16 -12
  760. package/development/stepper/step/step.component.d.ts.map +1 -1
  761. package/development/stepper/step/step.component.js +2 -2
  762. package/development/stepper/step-label/step-label.component.d.ts +1 -1
  763. package/development/stepper/step-label/step-label.component.d.ts.map +1 -1
  764. package/development/stepper/step-label/step-label.component.js +1 -1
  765. package/development/stepper/stepper/stepper.component.d.ts +13 -10
  766. package/development/stepper/stepper/stepper.component.d.ts.map +1 -1
  767. package/development/stepper/stepper/stepper.component.js +1 -1
  768. package/development/stepper.component-DBE685VL.js +443 -0
  769. package/development/stepper.js +5 -5
  770. package/development/stepper.pure.js +4 -4
  771. package/development/sticky-bar.component-BEhV0azF.js +202 -0
  772. package/development/{styles-Jlhoev1S.js → styles-BTV2MyrZ.js} +1 -1
  773. package/development/styles-CUz7LBUc.js +30 -0
  774. package/development/tab-group.component-DBg6I8W7.js +297 -0
  775. package/development/tab-label.component-BbQu5sA-.js +233 -0
  776. package/development/tab-nav-bar.component-DC4Ba7w2.js +109 -0
  777. package/development/{tab.component-DxZtEaTP.js → tab.component-Bsdzs7P2.js} +1 -1
  778. package/development/table/table-wrapper/table-wrapper.component.js +1 -1
  779. package/development/{table-wrapper.component-Ba6NpQu1.js → table-wrapper.component-Cqc9PHZl.js} +1 -1
  780. package/development/table.js +2 -2
  781. package/development/table.pure.js +1 -1
  782. package/development/tabs/common/styles.js +1 -1
  783. package/development/tabs/tab/tab.component.js +1 -1
  784. package/development/tabs/tab-group/tab-group.component.d.ts +17 -11
  785. package/development/tabs/tab-group/tab-group.component.d.ts.map +1 -1
  786. package/development/tabs/tab-group/tab-group.component.js +2 -2
  787. package/development/tabs/tab-label/tab-label.component.d.ts +2 -3
  788. package/development/tabs/tab-label/tab-label.component.d.ts.map +1 -1
  789. package/development/tabs/tab-label/tab-label.component.js +1 -1
  790. package/development/tabs/tab-nav-bar/tab-nav-bar.component.d.ts +2 -3
  791. package/development/tabs/tab-nav-bar/tab-nav-bar.component.d.ts.map +1 -1
  792. package/development/tabs/tab-nav-bar/tab-nav-bar.component.js +1 -1
  793. package/development/tabs.js +7 -7
  794. package/development/tabs.pure.js +6 -6
  795. package/development/tag/tag/tag.component.d.ts +5 -7
  796. package/development/tag/tag/tag.component.d.ts.map +1 -1
  797. package/development/tag/tag/tag.component.js +1 -1
  798. package/development/tag/tag-group/tag-group.component.d.ts +9 -5
  799. package/development/tag/tag-group/tag-group.component.d.ts.map +1 -1
  800. package/development/tag/tag-group/tag-group.component.js +1 -1
  801. package/development/tag-group.component-DTff1eBB.js +225 -0
  802. package/development/tag.component-CDDb2fnV.js +258 -0
  803. package/development/tag.js +3 -3
  804. package/development/tag.pure.js +2 -2
  805. package/development/teaser/teaser.component.d.ts.map +1 -1
  806. package/development/teaser/teaser.component.js +1 -1
  807. package/development/teaser-hero/teaser-hero.component.js +1 -1
  808. package/development/{teaser-hero.component-DrdkFx5X.js → teaser-hero.component-d0iLCgA7.js} +1 -1
  809. package/development/teaser-hero.js +2 -2
  810. package/development/teaser-hero.pure.js +1 -1
  811. package/development/teaser-panel/teaser-panel.component.js +1 -1
  812. package/development/{teaser-panel.component-WSXbBzCq.js → teaser-panel.component-CXT3l9-M.js} +1 -1
  813. package/development/teaser-panel.js +2 -2
  814. package/development/teaser-panel.pure.js +1 -1
  815. package/development/teaser-product/common/teaser-product-common.js +1 -1
  816. package/development/teaser-product/teaser-product/teaser-product.component.d.ts.map +1 -1
  817. package/development/teaser-product/teaser-product/teaser-product.component.js +1 -1
  818. package/development/teaser-product/teaser-product-static/teaser-product-static.component.js +1 -1
  819. package/development/{teaser-product-common-B8a-KHTi.js → teaser-product-common-DfbpBlTk.js} +1 -1
  820. package/development/teaser-product.component-Cv9PR0lo.js +37 -0
  821. package/development/teaser-product.js +3 -3
  822. package/development/teaser-product.pure.js +2 -2
  823. package/development/teaser.component-BGnmuXOI.js +116 -0
  824. package/development/teaser.js +2 -2
  825. package/development/teaser.pure.js +1 -1
  826. package/development/time-input/time-input.component.d.ts +3 -1
  827. package/development/time-input/time-input.component.d.ts.map +1 -1
  828. package/development/time-input/time-input.component.js +1 -1
  829. package/development/time-input.component-Cdd1dzcG.js +194 -0
  830. package/development/time-input.js +2 -2
  831. package/development/time-input.pure.js +1 -1
  832. package/development/timetable-form/timetable-form/timetable-form.component.js +1 -1
  833. package/development/timetable-form/timetable-form-details/timetable-form-details.component.js +1 -1
  834. package/development/timetable-form/timetable-form-field/timetable-form-field.component.d.ts.map +1 -1
  835. package/development/timetable-form/timetable-form-field/timetable-form-field.component.js +1 -1
  836. package/development/timetable-form/timetable-form-swap-button/timetable-form-swap-button.component.js +1 -1
  837. package/development/{timetable-form-details.component-DacESFsP.js → timetable-form-details.component-HPb8xks3.js} +1 -1
  838. package/development/{timetable-form-field.component-DWCb4SY0.js → timetable-form-field.component-DxUpCWe0.js} +4 -1
  839. package/development/{timetable-form-swap-button.component-DGCpV2_y.js → timetable-form-swap-button.component-BT63vkZr.js} +1 -1
  840. package/development/{timetable-form.component-CtRlKR7e.js → timetable-form.component-DcvKOLvm.js} +1 -1
  841. package/development/timetable-form.js +5 -5
  842. package/development/timetable-form.pure.js +4 -4
  843. package/development/timetable-occupancy/timetable-occupancy.component.d.ts.map +1 -1
  844. package/development/timetable-occupancy/timetable-occupancy.component.js +1 -1
  845. package/development/timetable-occupancy-icon/timetable-occupancy-icon.component.js +1 -1
  846. package/development/timetable-occupancy-icon.component-Bsct9zga.js +95 -0
  847. package/development/timetable-occupancy-icon.js +2 -2
  848. package/development/timetable-occupancy-icon.pure.js +1 -1
  849. package/development/timetable-occupancy.component-62YNjs5z.js +126 -0
  850. package/development/timetable-occupancy.js +2 -2
  851. package/development/timetable-occupancy.pure.js +1 -1
  852. package/development/title/title-base.d.ts +3 -4
  853. package/development/title/title-base.d.ts.map +1 -1
  854. package/development/title/title-base.js +1 -1
  855. package/development/title/title.component.d.ts +3 -4
  856. package/development/title/title.component.d.ts.map +1 -1
  857. package/development/title/title.component.js +1 -1
  858. package/development/title-base-DPAFIjFK.js +102 -0
  859. package/development/title.component-BSrkZhnI.js +69 -0
  860. package/development/title.js +3 -3
  861. package/development/title.pure.js +2 -2
  862. package/development/toast/toast.component.d.ts.map +1 -1
  863. package/development/toast/toast.component.js +1 -1
  864. package/development/{toast.component-DeQSxWdf.js → toast.component-BgGWVr4o.js} +4 -5
  865. package/development/toast.js +2 -2
  866. package/development/toast.pure.js +1 -1
  867. package/development/toggle/toggle/toggle.component.d.ts +2 -3
  868. package/development/toggle/toggle/toggle.component.d.ts.map +1 -1
  869. package/development/toggle/toggle/toggle.component.js +1 -1
  870. package/development/toggle/toggle-option/toggle-option.component.js +1 -1
  871. package/development/toggle-check/toggle-check.component.d.ts +2 -3
  872. package/development/toggle-check/toggle-check.component.d.ts.map +1 -1
  873. package/development/toggle-check/toggle-check.component.js +1 -1
  874. package/development/{toggle-check.component-BUYj49gP.js → toggle-check.component--On4AuVo.js} +4 -5
  875. package/development/toggle-check.js +2 -2
  876. package/development/toggle-check.pure.js +1 -1
  877. package/development/{toggle-option.component-heU6pMCB.js → toggle-option.component-CZY7xnrX.js} +1 -1
  878. package/development/toggle.component-D3IbJqAH.js +243 -0
  879. package/development/toggle.js +3 -3
  880. package/development/toggle.pure.js +2 -2
  881. package/development/tooltip/tooltip.component.d.ts.map +1 -1
  882. package/development/tooltip/tooltip.component.js +1 -1
  883. package/development/tooltip.component-BE8BlKzE.js +369 -0
  884. package/development/tooltip.js +2 -2
  885. package/development/tooltip.pure.js +1 -1
  886. package/development/train/train/train.component.d.ts +2 -3
  887. package/development/train/train/train.component.d.ts.map +1 -1
  888. package/development/train/train/train.component.js +1 -1
  889. package/development/train/train-blocked-passage/train-blocked-passage.component.js +1 -1
  890. package/development/train/train-formation/train-formation.component.d.ts +2 -2
  891. package/development/train/train-formation/train-formation.component.d.ts.map +1 -1
  892. package/development/train/train-formation/train-formation.component.js +1 -1
  893. package/development/train/train-formation-orientation-mixin.d.ts +1 -2
  894. package/development/train/train-formation-orientation-mixin.d.ts.map +1 -1
  895. package/development/train/train-formation-orientation-mixin.js +1 -1
  896. package/development/train/train-wagon/train-wagon.component.js +1 -1
  897. package/development/train/train-wagon-button/train-wagon-button.component.js +1 -1
  898. package/development/train/train-wagon-common.js +1 -1
  899. package/development/train/train-wagon-link/train-wagon-link.component.js +1 -1
  900. package/development/{train-blocked-passage.component-2TuSqbDg.js → train-blocked-passage.component-BGCuXvjt.js} +1 -1
  901. package/development/{train-formation.component-BYB03zX5.js → train-formation.component-XGatA4-S.js} +2 -2
  902. package/development/train-wagon-common-4dC995mT.js +441 -0
  903. package/development/train.component-CX1HEDwX.js +239 -0
  904. package/development/train.js +5 -5
  905. package/development/train.pure.js +4 -4
  906. package/development/visual-checkbox/visual-checkbox.component.d.ts +3 -4
  907. package/development/visual-checkbox/visual-checkbox.component.d.ts.map +1 -1
  908. package/development/visual-checkbox/visual-checkbox.component.js +1 -1
  909. package/development/{visual-checkbox.component-Dzdm0TH-.js → visual-checkbox.component-EpRxoteZ.js} +4 -5
  910. package/development/visual-checkbox.js +2 -2
  911. package/development/visual-checkbox.pure.js +1 -1
  912. package/dialog/_dialog.global.scss +77 -0
  913. package/dialog/dialog/dialog.component.js +1 -1
  914. package/dialog/dialog-actions/dialog-actions.component.js +1 -1
  915. package/dialog/dialog-close-button/dialog-close-button.component.js +1 -1
  916. package/dialog/dialog-content/dialog-content.component.js +1 -1
  917. package/dialog/dialog-title/dialog-title.component.js +1 -1
  918. package/{dialog.component-4O3__zyd.js → dialog.component-Bs62s2eB.js} +7 -10
  919. package/dialog.js +5 -5
  920. package/dialog.pure.js +5 -5
  921. package/divider/_divider.global.scss +9 -0
  922. package/divider/divider.component.js +1 -1
  923. package/divider.js +1 -1
  924. package/divider.pure.js +1 -1
  925. package/expansion-panel/_expansion-panel.global.scss +66 -0
  926. package/expansion-panel/expansion-panel/expansion-panel.component.js +1 -1
  927. package/expansion-panel/expansion-panel-content/expansion-panel-content.component.js +1 -1
  928. package/expansion-panel/expansion-panel-header/expansion-panel-header.component.js +1 -1
  929. package/{expansion-panel-content.component-Cf1CWu5_.js → expansion-panel-content.component-Dm761peO.js} +1 -1
  930. package/{expansion-panel-header.component-DloOF4eC.js → expansion-panel-header.component-Cli4Qy1p.js} +1 -1
  931. package/expansion-panel.component-kyVRxBRu.js +225 -0
  932. package/expansion-panel.js +3 -3
  933. package/expansion-panel.pure.js +3 -3
  934. package/file-selector/_file-selector.global.scss +25 -0
  935. package/file-selector/common/file-selector-common.js +2 -2
  936. package/file-selector/file-selector/file-selector.component.js +14 -13
  937. package/file-selector/file-selector-dropzone/file-selector-dropzone.component.js +1 -1
  938. package/{file-selector-common-CmbsJ64j.js → file-selector-common-Bk347JZN.js} +35 -28
  939. package/{file-selector-dropzone.component-74fipV3m.js → file-selector-dropzone.component-CywJG8KU.js} +23 -23
  940. package/file-selector.js +5 -5
  941. package/file-selector.pure.js +4 -4
  942. package/flip-card/_flip-card.global.scss +38 -0
  943. package/flip-card/flip-card/flip-card.component.js +1 -1
  944. package/flip-card/flip-card-details/flip-card-details.component.js +1 -1
  945. package/flip-card/flip-card-summary/flip-card-summary.component.js +1 -1
  946. package/{flip-card-summary.component-CuMMdJ-B.js → flip-card-summary.component-ZvTeHtPV.js} +1 -1
  947. package/{flip-card.component-CZ0v44Ym.js → flip-card.component-CtUxr9yF.js} +22 -18
  948. package/flip-card.js +3 -3
  949. package/flip-card.pure.js +3 -3
  950. package/footer/_footer.global.scss +17 -0
  951. package/footer/footer.component.js +1 -1
  952. package/footer.js +1 -1
  953. package/footer.pure.js +1 -1
  954. package/form-field/_form-field.global.scss +274 -0
  955. package/form-field/error/error.component.js +1 -1
  956. package/form-field/form-field/form-field.component.js +1 -1
  957. package/form-field/hint/hint.component.js +1 -1
  958. package/form-field.component-eH2C_qPG.js +454 -0
  959. package/form-field.js +3 -3
  960. package/form-field.pure.js +3 -3
  961. package/header/_header.global.scss +108 -0
  962. package/header/common/header-action-common.js +1 -1
  963. package/header/header/header.component.js +1 -1
  964. package/header/header-environment/header-environment.component.js +1 -1
  965. package/header-action-common-B5M7_3Q1.js +64 -0
  966. package/{header.component-Bj7phY1B.js → header.component-BbdHh5fF.js} +18 -18
  967. package/header.js +3 -3
  968. package/header.pure.js +3 -3
  969. package/icon/icon-base.js +1 -1
  970. package/icon/icon.component.js +3 -6
  971. package/{icon-base-CCpB1w3b.js → icon-base-TSCmR5QC.js} +1 -1
  972. package/icon-sidebar/_icon-sidebar.global.scss +21 -0
  973. package/icon-sidebar/icon-sidebar/icon-sidebar.component.js +1 -1
  974. package/icon-sidebar/icon-sidebar-container/icon-sidebar-container.component.js +1 -1
  975. package/icon-sidebar/icon-sidebar-content/icon-sidebar-content.component.js +1 -1
  976. package/icon-sidebar.js +3 -3
  977. package/icon-sidebar.pure.js +3 -3
  978. package/icon.js +1 -1
  979. package/icon.pure.js +1 -1
  980. package/image/image.component.js +1 -1
  981. package/{image.component-BSSyfPru.js → image.component-K7sre7oE.js} +1 -1
  982. package/image.js +1 -1
  983. package/image.pure.js +1 -1
  984. package/index.d.ts +2 -1
  985. package/index.js +2 -1
  986. package/inline-link-common-D0sat0cr.js +13 -0
  987. package/journey-header/journey-header.component.js +1 -1
  988. package/journey-header.js +1 -1
  989. package/journey-header.pure.js +1 -1
  990. package/lead-container/_lead-container.global.scss +31 -0
  991. package/lead-container/lead-container.component.js +1 -1
  992. package/lead-container.js +1 -1
  993. package/lead-container.pure.js +1 -1
  994. package/lean-off-brand-theme.css +3509 -0
  995. package/lean-safety-theme.css +3509 -0
  996. package/{core.css → lean-theme.css} +1439 -626
  997. package/{core/styles/mixins/link.scss → link/_link.global.scss} +53 -43
  998. package/link/common/block-link-common.js +1 -1
  999. package/link/common/inline-link-common.js +1 -1
  1000. package/link/common/link-common.js +1 -1
  1001. package/link-list/common/link-list-base.js +1 -1
  1002. package/link-list/link-list.component.js +1 -1
  1003. package/link-list-anchor/link-list-anchor.component.js +1 -1
  1004. package/{link-list-anchor.component-DG_HCtHH.js → link-list-anchor.component-as1bjNH1.js} +1 -1
  1005. package/link-list-anchor.js +1 -1
  1006. package/link-list-anchor.pure.js +1 -1
  1007. package/{link-list-base-CEEw1SMd.js → link-list-base-Dgu0yeTL.js} +16 -16
  1008. package/{link-list.component-CS4KuMkQ.js → link-list.component-bTG45ml0.js} +2 -2
  1009. package/link-list.js +2 -2
  1010. package/link-list.pure.js +2 -2
  1011. package/link.js +3 -3
  1012. package/link.pure.js +3 -3
  1013. package/loading-indicator/_loading-indicator.global.scss +10 -0
  1014. package/loading-indicator/loading-indicator.component.js +1 -1
  1015. package/loading-indicator-circle/_loading-indicator-circle.global.scss +19 -0
  1016. package/loading-indicator-circle/loading-indicator-circle.component.js +1 -1
  1017. package/loading-indicator-circle.js +1 -1
  1018. package/loading-indicator-circle.pure.js +1 -1
  1019. package/loading-indicator.js +1 -1
  1020. package/loading-indicator.pure.js +1 -1
  1021. package/logo/_logo.global.scss +15 -0
  1022. package/logo/logo.component.js +1 -1
  1023. package/logo.js +1 -1
  1024. package/logo.pure.js +1 -1
  1025. package/map-container/_map-container.global.scss +15 -0
  1026. package/map-container/map-container.component.js +1 -1
  1027. package/{map-container.component-DyJBA3qj.js → map-container.component-C2_Miiv0.js} +1 -1
  1028. package/map-container.js +1 -1
  1029. package/map-container.pure.js +1 -1
  1030. package/menu/_menu.global.scss +31 -0
  1031. package/menu/common/menu-action-common.js +1 -1
  1032. package/menu/menu/menu.component.js +1 -1
  1033. package/{menu-action-common-Wy36tk18.js → menu-action-common-_iII6n1T.js} +1 -1
  1034. package/{menu.component-DrrKSRmJ.js → menu.component-CqXIRQq2.js} +25 -21
  1035. package/menu.js +2 -2
  1036. package/menu.pure.js +2 -2
  1037. package/message/_message.global.scss +20 -0
  1038. package/message/message.component.js +1 -1
  1039. package/{message.component-CdfsCpnE.js → message.component-BpQ4ikV6.js} +1 -1
  1040. package/message.js +1 -1
  1041. package/message.pure.js +1 -1
  1042. package/{mini-button-group.component-BOJNsLrh.js → mini-button-group.component-C-pJ_J-1.js} +11 -11
  1043. package/mini-calendar/_mini-calendar.global.scss +15 -0
  1044. package/mini-calendar/mini-calendar/mini-calendar.component.js +1 -1
  1045. package/mini-calendar/mini-calendar-day/mini-calendar-day.component.js +1 -1
  1046. package/mini-calendar/mini-calendar-month/mini-calendar-month.component.js +1 -1
  1047. package/mini-calendar.js +3 -3
  1048. package/mini-calendar.pure.js +3 -3
  1049. package/navigation/_navigation.global.scss +78 -0
  1050. package/navigation/common/navigation-action-common.js +1 -1
  1051. package/navigation/navigation/navigation.component.js +1 -1
  1052. package/navigation/navigation-list/navigation-list.component.js +1 -1
  1053. package/navigation/navigation-marker/navigation-marker.component.js +1 -1
  1054. package/navigation/navigation-section/navigation-section.component.js +1 -1
  1055. package/navigation-action-common-DSPULZFe.js +38 -0
  1056. package/{navigation-list.component-NQZA2mui.js → navigation-list.component-Bkmh_wqm.js} +1 -4
  1057. package/{navigation-marker.component-D1p9TkWH.js → navigation-marker.component-CCXJWsN1.js} +2 -3
  1058. package/{navigation-section.component-Bmh4Xtrm.js → navigation-section.component-DPgBlCf8.js} +1 -4
  1059. package/{navigation.component-DLgmWh_c.js → navigation.component-CY_9Q6dT.js} +24 -23
  1060. package/navigation.js +5 -5
  1061. package/navigation.pure.js +5 -5
  1062. package/notification/_notification.global.scss +53 -0
  1063. package/notification/notification.component.js +1 -1
  1064. package/notification.component-IRuswhzC.js +188 -0
  1065. package/notification.js +1 -1
  1066. package/notification.pure.js +1 -1
  1067. package/off-brand-theme.css +860 -1092
  1068. package/{optgroup-base-element-C6KwbQ0N.js → optgroup-base-element-BbxwRc0x.js} +11 -16
  1069. package/option/_option.global.scss +80 -0
  1070. package/option/optgroup/optgroup-base-element.js +1 -1
  1071. package/option/optgroup/optgroup.component.js +1 -1
  1072. package/option/option/option-base-element.js +14 -15
  1073. package/option/option/option.component.js +1 -1
  1074. package/option/option-hint/option-hint.component.js +1 -1
  1075. package/option/option-styles.js +2 -0
  1076. package/option-hint.component-CUf2d2d5.js +26 -0
  1077. package/option-styles-BmvwR7PD.js +6 -0
  1078. package/option.component-9AlEwsE3.js +100 -0
  1079. package/option.js +7 -6
  1080. package/option.pure.js +6 -5
  1081. package/overlay/_overlay.global.scss +13 -0
  1082. package/overlay/overlay-base-element.js +25 -31
  1083. package/overlay/overlay.component.js +1 -1
  1084. package/{overlay.component-C80XN61v.js → overlay.component-BvoOK_O-.js} +7 -10
  1085. package/overlay.js +1 -1
  1086. package/overlay.pure.js +1 -1
  1087. package/package.json +14 -46
  1088. package/paginator/_paginator.global.scss +21 -0
  1089. package/paginator/common/paginator-common.js +2 -294
  1090. package/paginator/compact-paginator/compact-paginator.component.js +1 -1
  1091. package/paginator/paginator/paginator.component.js +1 -1
  1092. package/paginator-common-Xiv6UZlo.js +312 -0
  1093. package/paginator.component-buCkeyDv.js +212 -0
  1094. package/paginator.js +5 -5
  1095. package/paginator.pure.js +4 -4
  1096. package/{panel-mixin-CcbyRemy.js → panel-mixin-CG-f0J6K.js} +18 -19
  1097. package/popover/_popover.global.scss +12 -0
  1098. package/popover/popover/popover.component.js +2 -0
  1099. package/popover/popover-base/popover-base.js +2 -0
  1100. package/popover/popover-close-button/popover-close-button.component.js +20 -0
  1101. package/popover-base-DlSa-ajc.js +181 -0
  1102. package/popover.component-BHg4Qtqd.js +158 -0
  1103. package/popover.js +5 -4
  1104. package/popover.pure.js +4 -2
  1105. package/radio-button/_radio-button.global.scss +37 -0
  1106. package/radio-button/common/radio-button-common.js +1 -1
  1107. package/radio-button/radio-button.component.js +1 -1
  1108. package/{radio-button-common-BDGoskeZ.js → radio-button-common-OaxGvaS9.js} +15 -15
  1109. package/{radio-button.component-DedTTka_.js → radio-button.component-DznnXJCN.js} +14 -14
  1110. package/radio-button.js +2 -2
  1111. package/radio-button.pure.js +2 -2
  1112. package/safety-theme.css +860 -1092
  1113. package/select/_select.global.scss +24 -0
  1114. package/select/select.component.js +1 -1
  1115. package/{select.component-PLjAiAA3.js → select.component-Drb7KsP3.js} +63 -61
  1116. package/select.js +1 -1
  1117. package/select.pure.js +1 -1
  1118. package/selection-action-panel/_selection-action-panel.global.scss +19 -0
  1119. package/selection-action-panel/selection-action-panel.component.js +1 -1
  1120. package/selection-action-panel.js +1 -1
  1121. package/selection-action-panel.pure.js +1 -1
  1122. package/selection-expansion-panel/_selection-expansion-panel.global.scss +21 -0
  1123. package/selection-expansion-panel/selection-expansion-panel.component.js +1 -1
  1124. package/selection-expansion-panel.js +1 -1
  1125. package/selection-expansion-panel.pure.js +1 -1
  1126. package/{selection-group-base-element-BCEzcnya.js → selection-group-base-element-BcEQ5-ML.js} +18 -22
  1127. package/sidebar/_sidebar.global.scss +81 -0
  1128. package/sidebar/sidebar/sidebar.component.js +1 -1
  1129. package/sidebar/sidebar-close-button/sidebar-close-button.component.js +1 -1
  1130. package/sidebar/sidebar-container/sidebar-container.component.js +1 -1
  1131. package/sidebar/sidebar-content/sidebar-content.component.js +1 -1
  1132. package/sidebar/sidebar-title/sidebar-title.component.js +1 -1
  1133. package/sidebar.js +5 -5
  1134. package/sidebar.pure.js +5 -5
  1135. package/signet/_signet.global.scss +16 -0
  1136. package/signet/signet.component.js +1 -1
  1137. package/signet.js +1 -1
  1138. package/signet.pure.js +1 -1
  1139. package/skiplink-list/skiplink-list.component.js +1 -1
  1140. package/{skiplink-list.component-Dsg-qVWZ.js → skiplink-list.component-Cc6QNvVU.js} +18 -18
  1141. package/skiplink-list.js +1 -1
  1142. package/skiplink-list.pure.js +1 -1
  1143. package/slider/_slider.global.scss +30 -0
  1144. package/slider/slider.component.js +1 -1
  1145. package/{slider.component-DX8K9GWl.js → slider.component-pDx_g7eE.js} +24 -32
  1146. package/slider.js +1 -1
  1147. package/slider.pure.js +1 -1
  1148. package/standard-theme.css +860 -1092
  1149. package/status/_status.global.scss +10 -0
  1150. package/status/status.component.js +1 -1
  1151. package/status.js +1 -1
  1152. package/status.pure.js +1 -1
  1153. package/step-label.component-olqRA-s7.js +77 -0
  1154. package/{step.component-KiTfzfTj.js → step.component-CcjV_283.js} +29 -10
  1155. package/stepper/_stepper.global.scss +47 -0
  1156. package/stepper/step/step.component.js +2 -2
  1157. package/stepper/step-label/step-label.component.js +1 -1
  1158. package/stepper/stepper/stepper.component.js +1 -1
  1159. package/{stepper.component-BX3gSLpt.js → stepper.component-CqClDxL6.js} +41 -24
  1160. package/stepper.js +5 -5
  1161. package/stepper.pure.js +4 -4
  1162. package/{sticky-bar.component-CmB6U3iY.js → sticky-bar.component-DBSVB1lE.js} +13 -13
  1163. package/styles-BwvY_TyZ.js +5 -0
  1164. package/{tab-group.component-BGDY-hvA.js → tab-group.component-Dx0xldWI.js} +45 -20
  1165. package/tab-label.component-C5HCrNFB.js +158 -0
  1166. package/{tab-nav-bar.component-Cwrqhb-2.js → tab-nav-bar.component-7j-RCq7p.js} +13 -13
  1167. package/table/_table.global.scss +295 -0
  1168. package/table/table-wrapper/table-wrapper.component.js +1 -1
  1169. package/table.js +1 -1
  1170. package/table.pure.js +1 -1
  1171. package/tabs/_tabs.global.scss +61 -0
  1172. package/tabs/common/styles.js +1 -1
  1173. package/tabs/tab/tab.component.js +1 -1
  1174. package/tabs/tab-group/tab-group.component.js +2 -2
  1175. package/tabs/tab-label/tab-label.component.js +1 -1
  1176. package/tabs/tab-nav-bar/tab-nav-bar.component.js +1 -1
  1177. package/tabs.js +7 -7
  1178. package/tabs.pure.js +6 -6
  1179. package/tag/_tag.global.scss +41 -0
  1180. package/tag/tag/tag.component.js +1 -1
  1181. package/tag/tag-group/tag-group.component.js +1 -1
  1182. package/{tag-group.component-DyXEgvbN.js → tag-group.component-CJwbkP70.js} +29 -14
  1183. package/{tag.component-C74wsPOB.js → tag.component-r8diGGP-.js} +39 -28
  1184. package/tag.js +2 -2
  1185. package/tag.pure.js +2 -2
  1186. package/teaser/_teaser.global.scss +51 -0
  1187. package/teaser/teaser.component.js +1 -1
  1188. package/teaser-hero/_teaser-hero.global.scss +29 -0
  1189. package/teaser-hero/teaser-hero.component.js +1 -1
  1190. package/teaser-hero.js +1 -1
  1191. package/teaser-hero.pure.js +1 -1
  1192. package/teaser-panel/_teaser-panel.global.scss +33 -0
  1193. package/teaser-panel/teaser-panel.component.js +1 -1
  1194. package/teaser-panel.js +1 -1
  1195. package/teaser-panel.pure.js +1 -1
  1196. package/teaser-product/_teaser-product.global.scss +52 -0
  1197. package/teaser-product/common/teaser-product-common.js +1 -1
  1198. package/teaser-product/teaser-product/teaser-product.component.js +1 -1
  1199. package/{teaser-product.component-Dzclz3Sg.js → teaser-product.component-DHu47PGd.js} +8 -8
  1200. package/teaser-product.js +2 -2
  1201. package/teaser-product.pure.js +2 -2
  1202. package/{teaser.component-BSpcEI3Z.js → teaser.component-CkIii0_d.js} +15 -15
  1203. package/teaser.js +1 -1
  1204. package/teaser.pure.js +1 -1
  1205. package/time-input/_time-input.global.scss +11 -0
  1206. package/time-input/time-input.component.js +1 -1
  1207. package/{time-input.component-BRJerke6.js → time-input.component-j2vUlNKx.js} +15 -8
  1208. package/time-input.js +1 -1
  1209. package/time-input.pure.js +1 -1
  1210. package/timetable-form/_timetable-form.global.scss +107 -0
  1211. package/timetable-form/timetable-form/timetable-form.component.js +1 -1
  1212. package/timetable-form/timetable-form-details/timetable-form-details.component.js +1 -1
  1213. package/timetable-form/timetable-form-field/timetable-form-field.component.js +1 -1
  1214. package/timetable-form/timetable-form-swap-button/timetable-form-swap-button.component.js +1 -1
  1215. package/timetable-form.js +4 -4
  1216. package/timetable-form.pure.js +4 -4
  1217. package/timetable-occupancy/_timetable-occupancy.global.scss +10 -0
  1218. package/timetable-occupancy/timetable-occupancy.component.js +1 -1
  1219. package/timetable-occupancy-icon/timetable-occupancy-icon.component.js +1 -1
  1220. package/timetable-occupancy-icon.js +1 -1
  1221. package/timetable-occupancy-icon.pure.js +1 -1
  1222. package/{timetable-occupancy.component-B0OJi-B1.js → timetable-occupancy.component-B040dznI.js} +17 -13
  1223. package/timetable-occupancy.js +1 -1
  1224. package/timetable-occupancy.pure.js +1 -1
  1225. package/title/_title.global.scss +16 -0
  1226. package/title/title-base.js +1 -1
  1227. package/title/title.component.js +1 -1
  1228. package/{title-base-B70qaksx.js → title-base-DWrwrsx4.js} +1 -1
  1229. package/{title.component-DO67K8g1.js → title.component-BZ0nVpam.js} +2 -2
  1230. package/title.js +2 -2
  1231. package/title.pure.js +2 -2
  1232. package/toast/_toast.global.scss +18 -0
  1233. package/toast/toast.component.js +1 -1
  1234. package/{toast.component-DVaz-D5o.js → toast.component-Dlr0Koxu.js} +6 -7
  1235. package/toast.js +1 -1
  1236. package/toast.pure.js +1 -1
  1237. package/toggle/_toggle.global.scss +48 -0
  1238. package/toggle/toggle/toggle.component.js +1 -1
  1239. package/toggle/toggle-option/toggle-option.component.js +1 -1
  1240. package/toggle-check/_toggle-check.global.scss +32 -0
  1241. package/toggle-check/toggle-check.component.js +1 -1
  1242. package/{toggle-check.component-YWr3IHEL.js → toggle-check.component-BNGDAvXJ.js} +17 -17
  1243. package/toggle-check.js +1 -1
  1244. package/toggle-check.pure.js +1 -1
  1245. package/{toggle.component-BFsrJ98d.js → toggle.component-Cz3OnOMI.js} +13 -13
  1246. package/toggle.js +2 -2
  1247. package/toggle.pure.js +2 -2
  1248. package/tooltip/_tooltip.global.scss +20 -0
  1249. package/tooltip/tooltip.component.js +1 -1
  1250. package/{tooltip.component-BrXCWlQB.js → tooltip.component-BLzyft0C.js} +25 -25
  1251. package/tooltip.js +1 -1
  1252. package/tooltip.pure.js +1 -1
  1253. package/train/_train.global.scss +66 -0
  1254. package/train/train/train.component.js +1 -1
  1255. package/train/train-blocked-passage/train-blocked-passage.component.js +1 -1
  1256. package/train/train-formation/train-formation.component.js +1 -1
  1257. package/train/train-wagon-common.js +1 -1
  1258. package/{train-formation.component-HM0M0FHW.js → train-formation.component-Di5d_G5x.js} +1 -1
  1259. package/{train-wagon-common-BH9bSebN.js → train-wagon-common-HuRuHdNZ.js} +1 -1
  1260. package/{train.component-BZ3jtqQ4.js → train.component-Dwp6ltDo.js} +1 -1
  1261. package/train.js +4 -4
  1262. package/train.pure.js +4 -4
  1263. package/visual-checkbox/_visual-checkbox.global.scss +38 -0
  1264. package/visual-checkbox/visual-checkbox.component.js +1 -1
  1265. package/{visual-checkbox.component-R9bYxeNp.js → visual-checkbox.component-CPIhZcmN.js} +17 -17
  1266. package/visual-checkbox.js +1 -1
  1267. package/visual-checkbox.pure.js +1 -1
  1268. package/a11y.css +0 -20
  1269. package/action-group.component-BMYAFyHh.js +0 -156
  1270. package/animation.css +0 -14
  1271. package/badge.css +0 -32
  1272. package/calendar-cell-base-element-CUG1qYFb.js +0 -23
  1273. package/calendar.component-oS_T4s4k.js +0 -1065
  1274. package/core/decorators/host-attributes.js +0 -17
  1275. package/core/dom/lean-context.js +0 -7
  1276. package/core/eventing/composed-path-has-attribute.js +0 -7
  1277. package/core/eventing/throttle.js +0 -11
  1278. package/core/overlay/overlay.js +0 -14
  1279. package/core/styles/badge.scss +0 -3
  1280. package/core/styles/core.scss +0 -645
  1281. package/core/styles/layout.scss +0 -20
  1282. package/core/styles/mixins/buttons.scss +0 -12
  1283. package/core/styles/mixins/dev_and_debug.scss +0 -8
  1284. package/core/styles/mixins/image.scss +0 -43
  1285. package/core/styles/mixins/inputs.scss +0 -11
  1286. package/core/styles/mixins/overlay.scss +0 -175
  1287. package/core/styles/mixins/panel.scss +0 -80
  1288. package/core/styles/mixins/popover.scss +0 -14
  1289. package/core/styles/mixins/table.scss +0 -185
  1290. package/core/styles/mixins/timetable-form.scss +0 -63
  1291. package/core/styles/mixins/typo.scss +0 -237
  1292. package/core/styles/theme.scss +0 -20
  1293. package/core/styles/timetable-form.scss +0 -27
  1294. package/core/styles/typography.private.scss +0 -9
  1295. package/development/accordion.component-Bvx-b38W.js +0 -165
  1296. package/development/action-group.component-DZkXqIbQ.js +0 -213
  1297. package/development/alert-group.component-w5PbU_4C.js +0 -186
  1298. package/development/autocomplete-base-element-CG5m0PpY.js +0 -686
  1299. package/development/block-link-common-CoZgcEBY.js +0 -101
  1300. package/development/breadcrumb-group.component-BUBfl6LV.js +0 -193
  1301. package/development/breadcrumb.component-D6Cd2FPo.js +0 -34
  1302. package/development/calendar-cell-base-element-mWRSDeWc.js +0 -38
  1303. package/development/calendar-day.component-BHvdRxll.js +0 -139
  1304. package/development/calendar.component-CjlcDyS5.js +0 -1450
  1305. package/development/carousel-list.component-DpDh5tqB.js +0 -133
  1306. package/development/carousel.component-ClWvnZ8s.js +0 -139
  1307. package/development/chip-group.component-DThvmmnh.js +0 -402
  1308. package/development/clock.component-DcM1WFTN.js +0 -289
  1309. package/development/compact-paginator.component-Dyj5CulS.js +0 -51
  1310. package/development/core/decorators/host-attributes.d.ts +0 -22
  1311. package/development/core/decorators/host-attributes.d.ts.map +0 -1
  1312. package/development/core/decorators/host-attributes.js +0 -41
  1313. package/development/core/dom/lean-context.d.ts +0 -5
  1314. package/development/core/dom/lean-context.d.ts.map +0 -1
  1315. package/development/core/dom/lean-context.js +0 -12
  1316. package/development/core/eventing/composed-path-has-attribute.d.ts +0 -10
  1317. package/development/core/eventing/composed-path-has-attribute.d.ts.map +0 -1
  1318. package/development/core/eventing/composed-path-has-attribute.js +0 -19
  1319. package/development/core/eventing/throttle.d.ts +0 -3
  1320. package/development/core/eventing/throttle.d.ts.map +0 -1
  1321. package/development/core/eventing/throttle.js +0 -18
  1322. package/development/core/interfaces/overlay-close-details.d.ts +0 -6
  1323. package/development/core/interfaces/overlay-close-details.d.ts.map +0 -1
  1324. package/development/core/overlay/overlay.d.ts +0 -7
  1325. package/development/core/overlay/overlay.d.ts.map +0 -1
  1326. package/development/core/overlay/overlay.js +0 -20
  1327. package/development/date-input.component-HxRyCudr.js +0 -302
  1328. package/development/dialog-title.component-0uNsUR2C.js +0 -29
  1329. package/development/error.component-WCkiwM7_.js +0 -53
  1330. package/development/expansion-panel-header.component-CQFSwrqu.js +0 -82
  1331. package/development/expansion-panel.component-BVdylpqi.js +0 -318
  1332. package/development/file-selector-common-Da0KNfDP.js +0 -413
  1333. package/development/file-selector-dropzone.component-Bdcau18t.js +0 -106
  1334. package/development/flip-card.component-DujrPKzU.js +0 -185
  1335. package/development/form-field.component-_lnIpJF5.js +0 -703
  1336. package/development/header-action-common-CQ1CaaBd.js +0 -79
  1337. package/development/header.component-BX1rKPa_.js +0 -335
  1338. package/development/icon-base-DrBHy9BT.js +0 -163
  1339. package/development/inline-link-common-gmt6yz3v.js +0 -18
  1340. package/development/journey-header.component-CA4juz9x.js +0 -146
  1341. package/development/link-common-2RGn9Qz_.js +0 -26
  1342. package/development/link-list.component-CKVU3Gsr.js +0 -97
  1343. package/development/map-container.component-D0UVTolK.js +0 -176
  1344. package/development/menu-action-common-DRXQc85Y.js +0 -32
  1345. package/development/menu.component-Cv9wRj4H.js +0 -365
  1346. package/development/mini-button-group.component-Bg-etiu1.js +0 -116
  1347. package/development/mini-button-link.component-kpRsi8I2.js +0 -39
  1348. package/development/mini-calendar.component-BOk8JovO.js +0 -184
  1349. package/development/navigation-action-common-CGy4K8q-.js +0 -91
  1350. package/development/navigation-list.component-DrdbtDRs.js +0 -90
  1351. package/development/navigation-marker.component-fB05cjtE.js +0 -121
  1352. package/development/navigation-section.component-iaypc6yQ.js +0 -346
  1353. package/development/navigation.component-CqNkBvEs.js +0 -315
  1354. package/development/notification.component-D0rkSF3p.js +0 -271
  1355. package/development/optgroup-base-element-BEG1P4gK.js +0 -140
  1356. package/development/option-hint.component-CcSUSwjN.js +0 -31
  1357. package/development/option.component-BEbIEh5o.js +0 -132
  1358. package/development/paginator.component-DIuiY7It.js +0 -261
  1359. package/development/popover/popover.component.d.ts +0 -111
  1360. package/development/popover/popover.component.d.ts.map +0 -1
  1361. package/development/popover/popover.component.js +0 -2
  1362. package/development/popover.component-Bvbf4NyI.js +0 -564
  1363. package/development/radio-button-common-tC_l-WdB.js +0 -129
  1364. package/development/select.component-B8_tnz6D.js +0 -806
  1365. package/development/selection-expansion-panel.component-CTCVJiug.js +0 -186
  1366. package/development/selection-group-base-element-RafKyWXP.js +0 -154
  1367. package/development/sidebar-container.component-C_cu3Vfy.js +0 -100
  1368. package/development/skiplink-list.component-ppyytKn2.js +0 -129
  1369. package/development/slider.component-k8g6G0j9.js +0 -346
  1370. package/development/step-label.component-BpuNDWKl.js +0 -126
  1371. package/development/step.component-Di2fT-VG.js +0 -146
  1372. package/development/stepper.component-BnCUoYv6.js +0 -423
  1373. package/development/sticky-bar.component-BrSBKlh-.js +0 -203
  1374. package/development/styles-BzEbxmCd.js +0 -18
  1375. package/development/tab-group.component-o1F-M_-2.js +0 -266
  1376. package/development/tab-label.component-CPaKKeox.js +0 -235
  1377. package/development/tab-nav-bar.component-3uXgOman.js +0 -110
  1378. package/development/tag-group.component-CYL62Umh.js +0 -196
  1379. package/development/tag.component-D5DYXQ3i.js +0 -241
  1380. package/development/teaser-product.component-gHjSaG6c.js +0 -37
  1381. package/development/teaser.component-B8kQNF6g.js +0 -116
  1382. package/development/time-input.component-Bc4Sfu-1.js +0 -187
  1383. package/development/timetable-occupancy-icon.component-uaabLEC5.js +0 -95
  1384. package/development/timetable-occupancy.component-DKWki5pG.js +0 -122
  1385. package/development/title-base-fg03gSOD.js +0 -102
  1386. package/development/title.component-B1Uq-Ctr.js +0 -71
  1387. package/development/toggle.component-DndGyA1x.js +0 -244
  1388. package/development/tooltip.component-BjOgv29e.js +0 -369
  1389. package/development/train-wagon-common-C-0fI1r2.js +0 -441
  1390. package/development/train.component-BDG8SlCc.js +0 -239
  1391. package/expansion-panel.component-5heRRQ0C.js +0 -222
  1392. package/form-field.component-Dg-a3lS5.js +0 -475
  1393. package/header-action-common-B1jGzY-U.js +0 -61
  1394. package/inline-link-common-BqqH1ExY.js +0 -13
  1395. package/layout.css +0 -30
  1396. package/lists.css +0 -194
  1397. package/navigation-action-common-HG5kdQJR.js +0 -65
  1398. package/normalize.css +0 -95
  1399. package/notification.component-DpC6ulTx.js +0 -195
  1400. package/option-hint.component-Bayihbh1.js +0 -21
  1401. package/option.component-C-GGTcqF.js +0 -100
  1402. package/paginator.component-3ra04AQU.js +0 -208
  1403. package/popover/popover.component.js +0 -2
  1404. package/popover.component-C66BxhNQ.js +0 -373
  1405. package/scrollbar.css +0 -124
  1406. package/step-label.component-BkiOyF7s.js +0 -77
  1407. package/styles-OHFAsnJq.js +0 -5
  1408. package/tab-label.component-CMbmEoNe.js +0 -157
  1409. package/table.css +0 -270
  1410. package/timetable-form.css +0 -73
  1411. package/typography.css +0 -67
  1412. /package/{alert-group.component-BqJ6B49z.js → alert-group.component-Ck1kYZb4.js} +0 -0
  1413. /package/{breadcrumb.component-Kk1U6Iju.js → breadcrumb.component-CC8MxtJj.js} +0 -0
  1414. /package/{card-action-common-BNdGcJl-.js → card-action-common-DRSSDHqY.js} +0 -0
  1415. /package/{card-badge.component-BLAK_y8x.js → card-badge.component-B-uJVrxT.js} +0 -0
  1416. /package/{card.component-WUQRK9jT.js → card.component-Bwuv9ur1.js} +0 -0
  1417. /package/{chip-label.component-BLbhqUAp.js → chip-label.component-DVUxt7Sk.js} +0 -0
  1418. /package/{chip.component-gcvF3pEX.js → chip.component-SLuNizyV.js} +0 -0
  1419. /package/{clock.component-Cqrl999I.js → clock.component-gnEqkZ4T.js} +0 -0
  1420. /package/{container.component-sQtiqWxT.js → container.component-DJgFIJ0b.js} +0 -0
  1421. /package/core/styles/{disable-animation.scss → disable-animation-extension.scss} +0 -0
  1422. /package/core/styles/{core → features}/node_modules_@sbb-esta_lyne-design-tokens_dist_scss_sbb-variables.scss +0 -0
  1423. /package/core/styles/{normalize.scss → features/normalize.scss} +0 -0
  1424. /package/core/styles/{scrollbar.private.scss → features/scrollbar.private.scss} +0 -0
  1425. /package/core/styles/mixins/{animation.scss → _animation.scss} +0 -0
  1426. /package/core/styles/mixins/{font-face.scss → _font-face.scss} +0 -0
  1427. /package/core/styles/{core/mediaqueries.scss → mixins/_mediaqueries.scss} +0 -0
  1428. /package/core/styles/{node_modules_@sbb-esta_lyne-design-tokens_dist_scss_sbb-variables.scss → mixins/node_modules_@sbb-esta_lyne-design-tokens_dist_scss_sbb-variables.scss} +0 -0
  1429. /package/{dialog-actions.component-DxmjSvd-.js → dialog-actions.component-CHFJ8HjT.js} +0 -0
  1430. /package/{dialog-close-button.component-B8troaaQ.js → dialog-close-button.component-CV55ej8Q.js} +0 -0
  1431. /package/{dialog-content.component-Chfg-IY1.js → dialog-content.component-D7SeDETW.js} +0 -0
  1432. /package/{dialog-title.component-BbcbQXjp.js → dialog-title.component-DP7l1zQE.js} +0 -0
  1433. /package/{disable-animation.css → disable-animation-extension.css} +0 -0
  1434. /package/{divider.component-WsZcNUnN.js → divider.component-wL7Cw3YB.js} +0 -0
  1435. /package/{element-C7t5_1gu.js → element-CvshSA3k.js} +0 -0
  1436. /package/{error.component-D9Tu2YIl.js → error.component-D0rmgyFk.js} +0 -0
  1437. /package/{flip-card-details.component-BgOeJ53R.js → flip-card-details.component-D4C0Fde7.js} +0 -0
  1438. /package/{footer.component-DsIoOLu-.js → footer.component-x4yuXpWV.js} +0 -0
  1439. /package/{header-environment.component-B0VYZh7C.js → header-environment.component-Diy44YpD.js} +0 -0
  1440. /package/{hint.component-DTKfI9tq.js → hint.component-BZZJXuHG.js} +0 -0
  1441. /package/{icon-sidebar-container.component-CDBkiGlz.js → icon-sidebar-container.component-CYVyqKnZ.js} +0 -0
  1442. /package/{icon-sidebar-content.component-CN4Que2a.js → icon-sidebar-content.component-C5ZspZQk.js} +0 -0
  1443. /package/{icon-sidebar.component-DA2cmcyy.js → icon-sidebar.component-BkqYbGHz.js} +0 -0
  1444. /package/{journey-header.component-CXyULeHJ.js → journey-header.component-Ct9LmhWY.js} +0 -0
  1445. /package/{lead-container.component-CdfHJFFN.js → lead-container.component-Fv9F5Yh4.js} +0 -0
  1446. /package/{link-common-ezSu7e9c.js → link-common-C4Jbge1L.js} +0 -0
  1447. /package/{loading-indicator-circle.component-CSU2Ludy.js → loading-indicator-circle.component-BSdKx0eK.js} +0 -0
  1448. /package/{loading-indicator.component-DxyhIaFo.js → loading-indicator.component-B2cGE1Mj.js} +0 -0
  1449. /package/{logo.component-DVMNS8Op.js → logo.component-BOxQbVu9.js} +0 -0
  1450. /package/{mini-button-link.component-B8HmvVCg.js → mini-button-link.component-MBesHG--.js} +0 -0
  1451. /package/{mini-calendar-day.component-CVYqN3Yn.js → mini-calendar-day.component-UvIp06lc.js} +0 -0
  1452. /package/{mini-calendar-month.component-DbiqMOH8.js → mini-calendar-month.component-BZV7QSlC.js} +0 -0
  1453. /package/{mini-calendar.component-BKzbqHim.js → mini-calendar.component-B6EGO9bp.js} +0 -0
  1454. /package/{sbb-tokens-BBic3kP6.js → sbb-tokens-C-MoUcho.js} +0 -0
  1455. /package/{selection-action-panel.component-B7OtT_t2.js → selection-action-panel.component-m13MKp44.js} +0 -0
  1456. /package/{selection-expansion-panel.component-NXfxG9uN.js → selection-expansion-panel.component-BMI-n5Xc.js} +0 -0
  1457. /package/{sidebar-close-button.component-D5gxiJ_e.js → sidebar-close-button.component-BoOFzuBn.js} +0 -0
  1458. /package/{sidebar-container.component-BI2Jm-cJ.js → sidebar-container.component-BFm6HnIu.js} +0 -0
  1459. /package/{sidebar-content.component-C44ixSgf.js → sidebar-content.component-DFLqVK-O.js} +0 -0
  1460. /package/{sidebar-title.component-ByroIWTZ.js → sidebar-title.component-4B18yGLO.js} +0 -0
  1461. /package/{sidebar.component-B2IfBEhW.js → sidebar.component-VL6TFd9H.js} +0 -0
  1462. /package/{signet.component-xkCj9Bel.js → signet.component-DoXHpxDU.js} +0 -0
  1463. /package/{status.component-BkBUOZC5.js → status.component-Cg671ic2.js} +0 -0
  1464. /package/{styles-BNu0Fjw5.js → styles-DGAxTLMz.js} +0 -0
  1465. /package/{tab.component-BtN993ye.js → tab.component-C5xxMwwX.js} +0 -0
  1466. /package/{table-wrapper.component-CQ76PAQl.js → table-wrapper.component-BzmzJJim.js} +0 -0
  1467. /package/{teaser-hero.component-mT8miROU.js → teaser-hero.component-BNV8sgb6.js} +0 -0
  1468. /package/{teaser-panel.component-DWdMzyoI.js → teaser-panel.component-Bfhra0zG.js} +0 -0
  1469. /package/{teaser-product-common-DOQ6f2B7.js → teaser-product-common-D7kWWxU-.js} +0 -0
  1470. /package/{timetable-form-details.component-Wmad9usT.js → timetable-form-details.component-BTRh4w9g.js} +0 -0
  1471. /package/{timetable-form-field.component-D3P3lV86.js → timetable-form-field.component-BPKgSLQb.js} +0 -0
  1472. /package/{timetable-form-swap-button.component-B8yPDfMq.js → timetable-form-swap-button.component-DgUiFKbA.js} +0 -0
  1473. /package/{timetable-form.component-CJKyHMZk.js → timetable-form.component-Crq-rb5Z.js} +0 -0
  1474. /package/{timetable-occupancy-icon.component-DA9NTQJn.js → timetable-occupancy-icon.component-9RhBPwBN.js} +0 -0
  1475. /package/{toggle-option.component-BP9QEwh9.js → toggle-option.component-UXno4hFd.js} +0 -0
  1476. /package/{train-blocked-passage.component-DxqSh9I8.js → train-blocked-passage.component-Bk_YvTRh.js} +0 -0
@@ -276,6 +276,11 @@ var SbbFormAssociatedInputMixin = (superClass) => {
276
276
  if (this.required && !this.value) this.setValidityFlag("valueMissing", i18nInputRequired[this.language.current]);
277
277
  else this.removeValidityFlag("valueMissing");
278
278
  }
279
+ isSelected() {
280
+ if (isServer) return false;
281
+ const selection = window.getSelection();
282
+ return !!selection && selection.rangeCount > 0 && this.contains(selection.anchorNode);
283
+ }
279
284
  preparePastedText(text) {
280
285
  return text;
281
286
  }
@@ -336,4 +341,4 @@ var SbbFormAssociatedInputMixin = (superClass) => {
336
341
  //#endregion
337
342
  export { SbbFormAssociatedInputMixin };
338
343
 
339
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1hc3NvY2lhdGVkLWlucHV0LW1peGluLmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb3JlL21peGlucy9mb3JtLWFzc29jaWF0ZWQtaW5wdXQtbWl4aW4udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaHRtbCwgaXNTZXJ2ZXIsIHR5cGUgUHJvcGVydHlEZWNsYXJhdGlvbiwgdHlwZSBQcm9wZXJ0eVZhbHVlcyB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBldmVudE9wdGlvbnMsIHByb3BlcnR5IH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuXG5pbXBvcnQgeyBzYmJJbnB1dE1vZGFsaXR5RGV0ZWN0b3IgfSBmcm9tICcuLi9hMTF5L2lucHV0LW1vZGFsaXR5LWRldGVjdG9yLnRzJztcbmltcG9ydCB0eXBlIHsgU2JiRWxlbWVudCwgU2JiRWxlbWVudENvbnN0cnVjdG9yIH0gZnJvbSAnLi4vYmFzZS1lbGVtZW50cy9lbGVtZW50LnRzJztcbmltcG9ydCB7IFNiYkxhbmd1YWdlQ29udHJvbGxlciB9IGZyb20gJy4uL2NvbnRyb2xsZXJzL2xhbmd1YWdlLWNvbnRyb2xsZXIudHMnO1xuaW1wb3J0IHsgU2JiTWVkaWFRdWVyeVBvaW50ZXJDb2Fyc2UgfSBmcm9tICcuLi9jb250cm9sbGVycy9tZWRpYS1tYXRjaGVycy1jb250cm9sbGVyLnRzJztcbmltcG9ydCB7IGlzQmxpbmssIGlzV2Via2l0IH0gZnJvbSAnLi4vZG9tL3BsYXRmb3JtLnRzJztcbmltcG9ydCB7IGkxOG5JbnB1dFJlcXVpcmVkIH0gZnJvbSAnLi4vaTE4bi9pMThuLnRzJztcblxuaW1wb3J0IHR5cGUgeyBBYnN0cmFjdENvbnN0cnVjdG9yIH0gZnJvbSAnLi9jb25zdHJ1Y3Rvci50cyc7XG5pbXBvcnQgeyBTYmJEaXNhYmxlZE1peGluIH0gZnJvbSAnLi9kaXNhYmxlZC1taXhpbi50cyc7XG5pbXBvcnQge1xuICB0eXBlIEZvcm1SZXN0b3JlUmVhc29uLFxuICB0eXBlIEZvcm1SZXN0b3JlU3RhdGUsXG4gIFNiYkZvcm1Bc3NvY2lhdGVkTWl4aW4sXG59IGZyb20gJy4vZm9ybS1hc3NvY2lhdGVkLW1peGluLnRzJztcbmltcG9ydCB7IFNiYlJlYWRvbmx5TWl4aW4gfSBmcm9tICcuL3JlYWRvbmx5LW1peGluLnRzJztcbmltcG9ydCB7IFNiYlJlcXVpcmVkTWl4aW4gfSBmcm9tICcuL3JlcXVpcmVkLW1peGluLnRzJztcblxuZXhwb3J0IGRlY2xhcmUgYWJzdHJhY3QgY2xhc3MgU2JiRm9ybUFzc29jaWF0ZWRJbnB1dE1peGluVHlwZSBleHRlbmRzIFNiYlJlcXVpcmVkTWl4aW4oXG4gIFNiYkZvcm1Bc3NvY2lhdGVkTWl4aW4oU2JiRWxlbWVudCksXG4pIHtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBmb3JtRmllbGRBc3NvY2lhdGVkID0gdHJ1ZTtcblxuICBwdWJsaWMgc2V0IHZhbHVlKHZhbHVlOiBzdHJpbmcpO1xuICBwdWJsaWMgZ2V0IHZhbHVlKCk6IHN0cmluZztcblxuICBwdWJsaWMgc2V0IGRpc2FibGVkKHZhbHVlOiBib29sZWFuKTtcbiAgcHVibGljIGdldCBkaXNhYmxlZCgpOiBib29sZWFuO1xuXG4gIHB1YmxpYyBzZXQgcmVhZE9ubHkodmFsdWU6IGJvb2xlYW4pO1xuICBwdWJsaWMgZ2V0IHJlYWRPbmx5KCk6IGJvb2xlYW47XG5cbiAgcHVibGljIHNldCBwbGFjZWhvbGRlcih2YWx1ZTogc3RyaW5nKTtcbiAgcHVibGljIGdldCBwbGFjZWhvbGRlcigpOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE1ha2VzIHRoZSBzZWxlY3Rpb24gZXF1YWwgdG8gdGhlIGN1cnJlbnQgb2JqZWN0LlxuICAgKlxuICAgKiBbTUROIFJlZmVyZW5jZV0oaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZG9jcy9XZWIvQVBJL0hUTUxJbnB1dEVsZW1lbnQvc2VsZWN0KVxuICAgKi9cbiAgcHVibGljIHNlbGVjdCgpOiB2b2lkO1xuXG4gIHB1YmxpYyBmb3JtUmVzZXRDYWxsYmFjaygpOiB2b2lkO1xuICBwdWJsaWMgZm9ybVN0YXRlUmVzdG9yZUNhbGxiYWNrKHN0YXRlOiBGb3JtUmVzdG9yZVN0YXRlIHwgbnVsbCwgcmVhc29uOiBGb3JtUmVzdG9yZVJlYXNvbik6IHZvaWQ7XG5cbiAgcHJvdGVjdGVkIHByZXBhcmVQYXN0ZWRUZXh0KHRleHQ6IHN0cmluZyk6IHN0cmluZztcbiAgcHJvdGVjdGVkIGxhbmd1YWdlOiBTYmJMYW5ndWFnZUNvbnRyb2xsZXI7XG59XG5cbmNvbnN0IGNoZWNrUGxhaW50ZXh0T25seVN1cHBvcnQgPSAoKTogYm9vbGVhbiA9PiB7XG4gIGlmIChpc1NlcnZlcikge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGNvbnN0IGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICBkaXYuc2V0QXR0cmlidXRlKCdjb250ZW50ZWRpdGFibGUnLCAnUExBSU5URVhULU9OTFknKTtcblxuICAvLyBJZiBwbGFpbnRleHQtb25seSBpcyBzdXBwb3J0ZWQsIHRoZSBhdHRyaWJ1dGUgdmFsdWUgaXNcbiAgLy8gcmV0dXJuZWQgYXMgbG93ZXItY2FzZSBmcm9tIHRoZSBwcm9wZXJ0eSBhY2Nlc3MuXG4gIHJldHVybiBkaXYuY29udGVudEVkaXRhYmxlID09PSAncGxhaW50ZXh0LW9ubHknO1xufTtcbmNvbnN0IHBsYWludGV4dE9ubHlTdXBwb3J0ZWQgPSBjaGVja1BsYWludGV4dE9ubHlTdXBwb3J0KCk7XG5cbi8qKlxuICogVGhlIFNiYkZvcm1Bc3NvY2lhdGVkSW5wdXRNaXhpbiBlbmFibGVzIG5hdGl2ZSBmb3JtIHN1cHBvcnQgZm9yIHRleHQgaW5wdXQgY29udHJvbHMuXG4gKi9cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbmV4cG9ydCBjb25zdCBTYmJGb3JtQXNzb2NpYXRlZElucHV0TWl4aW4gPSA8XG4gIFQgZXh0ZW5kcyBBYnN0cmFjdENvbnN0cnVjdG9yPFNiYkVsZW1lbnQ+ICYgU2JiRWxlbWVudENvbnN0cnVjdG9yLFxuPihcbiAgc3VwZXJDbGFzczogVCxcbik6IEFic3RyYWN0Q29uc3RydWN0b3I8U2JiRm9ybUFzc29jaWF0ZWRJbnB1dE1peGluVHlwZT4gJiBUID0+IHtcbiAgYWJzdHJhY3QgY2xhc3MgU2JiRm9ybUFzc29jaWF0ZWRJbnB1dEVsZW1lbnRcbiAgICBleHRlbmRzIFNiYlJlYWRvbmx5TWl4aW4oU2JiRGlzYWJsZWRNaXhpbihTYmJSZXF1aXJlZE1peGluKFNiYkZvcm1Bc3NvY2lhdGVkTWl4aW4oc3VwZXJDbGFzcykpKSlcbiAgICBpbXBsZW1lbnRzIFBhcnRpYWw8U2JiRm9ybUFzc29jaWF0ZWRJbnB1dE1peGluVHlwZT5cbiAge1xuICAgIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgcmVhZG9ubHkgcm9sZSA9ICd0ZXh0Ym94JztcbiAgICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IGZvcm1GaWVsZEFzc29jaWF0ZWQgPSB0cnVlO1xuXG4gICAgLyoqXG4gICAgICogQW4gZWxlbWVudCB3aXRoIGNvbnRlbnRlZGl0YWJsZSB3aWxsIG5vdCBlbWl0IGEgY2hhbmdlIGV2ZW50LiBUbyBhY2hpZXZlIHBhcml0eVxuICAgICAqIHdpdGggYSBuYXRpdmUgdGV4dCBpbnB1dCwgd2UgbmVlZCB0byB0cmFjayB3aGV0aGVyIGEgY2hhbmdlIGV2ZW50IHNob3VsZCBiZVxuICAgICAqIGVtaXR0ZWQuXG4gICAgICovXG4gICAgcHJpdmF0ZSBfc2hvdWxkRW1pdENoYW5nZSA9IGZhbHNlO1xuICAgIC8qKlxuICAgICAqIEEgbmF0aXZlIHRleHQgaW5wdXQgYXR0ZW1wdHMgdG8gc3VibWl0IHRoZSBmb3JtIHdoZW4gcHJlc3NpbmcgRW50ZXIuXG4gICAgICogVGhpcyBjYW4gYmUgcHJldmVudGVkIGJ5IGNhbGxpbmcgcHJldmVudERlZmF1bHQgb24gdGhlIGtleWRvd24gZXZlbnQuXG4gICAgICogV2UgdHJhY2sgd2hldGhlciB0byByZXF1ZXN0IHN1Ym1pdCwgd2hpY2ggc2hvdWxkIG9jY3VyIGJlZm9yZSB0aGUga2V5dXBcbiAgICAgKiBldmVudC5cbiAgICAgKi9cbiAgICBwcml2YXRlIF9zaG91bGRUcmlnZ2VyU3VibWl0ID0gZmFsc2U7XG5cbiAgICBwcm90ZWN0ZWQgbGFuZ3VhZ2UgPSBuZXcgU2JiTGFuZ3VhZ2VDb250cm9sbGVyKHRoaXMpO1xuXG4gICAgLyoqXG4gICAgICogRm9ybSB0eXBlIG9mIGVsZW1lbnQuXG4gICAgICogQGRlZmF1bHQgJ3RleHQnXG4gICAgICovXG4gICAgcHVibGljIG92ZXJyaWRlIGdldCB0eXBlKCk6IHN0cmluZyB7XG4gICAgICByZXR1cm4gJ3RleHQnO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSB2YWx1ZSBvZiB0aGUgaW5wdXQuIFJlZmxlY3RzIHRoZSBjdXJyZW50IHRleHQgdmFsdWUgb2YgdGhpcyBpbnB1dC5cbiAgICAgKi9cbiAgICBAcHJvcGVydHkoKVxuICAgIHB1YmxpYyBzZXQgdmFsdWUodmFsdWU6IHN0cmluZykge1xuICAgICAgdGhpcy5fdmFsdWUgPSB0aGlzLl9jbGVhblRleHQodmFsdWUpO1xuICAgICAgaWYgKHRoaXMuaGFzVXBkYXRlZCkge1xuICAgICAgICB0aGlzLl9hc3NpZ25WYWx1ZSh0aGlzLl92YWx1ZSk7XG4gICAgICB9XG4gICAgICAvKiogQGludGVybmFsICovXG4gICAgICB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCdkaXNwbGF5dmFsdWVjaGFuZ2UnLCB7IGJ1YmJsZXM6IHRydWUsIGNvbXBvc2VkOiB0cnVlIH0pKTtcbiAgICB9XG4gICAgcHVibGljIGdldCB2YWx1ZSgpOiBzdHJpbmcge1xuICAgICAgcmV0dXJuIHRoaXMuX3ZhbHVlID8/ICcnO1xuICAgIH1cbiAgICBwcml2YXRlIF92YWx1ZTogc3RyaW5nID0gJyc7XG5cbiAgICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6IGZhbHNlIH0pXG4gICAgcHVibGljIHNldCBwbGFjZWhvbGRlcih2YWx1ZTogc3RyaW5nKSB7XG4gICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgdGhpcy5zZXRBdHRyaWJ1dGUoJ3BsYWNlaG9sZGVyJywgdmFsdWUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5yZW1vdmVBdHRyaWJ1dGUoJ3BsYWNlaG9sZGVyJyk7XG4gICAgICB9XG4gICAgICB0aGlzLmludGVybmFscy5hcmlhUGxhY2Vob2xkZXIgPSB2YWx1ZSA/IHZhbHVlIDogbnVsbDtcbiAgICB9XG4gICAgcHVibGljIGdldCBwbGFjZWhvbGRlcigpOiBzdHJpbmcge1xuICAgICAgcmV0dXJuIHRoaXMuZ2V0QXR0cmlidXRlKCdwbGFjZWhvbGRlcicpID8/ICcnO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBjb25zdHJ1Y3RvcigpIHtcbiAgICAgIHN1cGVyKCk7XG4gICAgICAvLyBXZSBwcmltYXJpbHkgdXNlIGNhcHR1cmUgZXZlbnQgbGlzdGVuZXJzLCBhcyB3ZSB3YW50XG4gICAgICAvLyBvdXIgbGlzdGVuZXJzIHRvIG9jY3VyIGJlZm9yZSBjb25zdW1lciBldmVudCBsaXN0ZW5lcnMuXG4gICAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/LihcbiAgICAgICAgJ2lucHV0JyxcbiAgICAgICAgKCkgPT4ge1xuICAgICAgICAgIGNvbnN0IG9sZFZhbHVlID0gdGhpcy5fdmFsdWU7XG4gICAgICAgICAgdGhpcy5fdmFsdWUgPSB0aGlzLl9jbGVhblRleHQodGhpcy50ZXh0Q29udGVudCA/PyAnJyk7XG4gICAgICAgICAgdGhpcy5yZXF1ZXN0VXBkYXRlKCd2YWx1ZScsIG9sZFZhbHVlKTtcbiAgICAgICAgICB0aGlzLmludGVybmFscy5zdGF0ZXMuYWRkKCdpbnRlcmFjdGVkJyk7XG4gICAgICAgICAgdGhpcy5fc2hvdWxkRW1pdENoYW5nZSA9IHRydWU7XG4gICAgICAgIH0sXG4gICAgICAgIHsgY2FwdHVyZTogdHJ1ZSB9LFxuICAgICAgKTtcbiAgICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcj8uKCdjaGFuZ2UnLCAoKSA9PiAodGhpcy5fc2hvdWxkRW1pdENoYW5nZSA9IGZhbHNlKSwgeyBjYXB0dXJlOiB0cnVlIH0pO1xuICAgICAgdGhpcy5hZGRFdmVudExpc3RlbmVyPy4oXG4gICAgICAgICdrZXlkb3duJyxcbiAgICAgICAgKGV2ZW50KSA9PiB7XG4gICAgICAgICAgaWYgKHRoaXMuX3JlcXVpcmVzRW1wdHlQYXRjaCgpKSB7XG4gICAgICAgICAgICB0aGlzLl9hc3NpZ25WYWx1ZSgnJyk7XG4gICAgICAgICAgfVxuICAgICAgICAgIC8vIFdlIHByZXZlbnQgcmVjdXJzaXZlIGV2ZW50cyBieSBjaGVja2luZyB0aGUgb3JpZ2luYWwgZXZlbnQgZm9yIGlzVHJ1c3RlZFxuICAgICAgICAgIC8vIHdoaWNoIGlzIGZhbHNlIGZvciBtYW51YWxseSBkaXNwYXRjaGVkIGV2ZW50cyAod2hpY2ggd2UgZGlzcGF0Y2ggYmVsb3cpLlxuICAgICAgICAgIGlmICgoZXZlbnQua2V5ID09PSAnRW50ZXInIHx8IGV2ZW50LmtleSA9PT0gJ1xcbicpICYmIGV2ZW50LmlzVHJ1c3RlZCkge1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgdGhpcy5fc2hvdWxkVHJpZ2dlclN1Ym1pdCA9IHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgS2V5Ym9hcmRFdmVudCgna2V5ZG93bicsIGV2ZW50KSk7XG4gICAgICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgICAgIGlzV2Via2l0ICYmXG4gICAgICAgICAgICB0aGlzLnZhbHVlICYmXG4gICAgICAgICAgICAoZXZlbnQua2V5ID09PSAnQmFja3NwYWNlJyB8fCBldmVudC5rZXkgPT09ICdEZWxldGUnKSAmJlxuICAgICAgICAgICAgZXZlbnQuaXNUcnVzdGVkXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICAvLyBJbiBXZWJraXQgcHJlc3NpbmcgQmFja3NwYWNlIG9yIERlbGV0ZSBjb21wbGV0ZWx5IHJlbW92ZXMgYWxsIHRoZSBjb250ZW50XG4gICAgICAgICAgICAvLyBpZiBjb250ZW50ZWRpdGFibGUgaXMgc2V0IG9uIGEgd2ViIGNvbXBvbmVudCBob3N0LlxuICAgICAgICAgICAgLy8gV2UgaGF2ZSB0byByZXBsaWNhdGUgdGhlIG5vcm1hbCBkZWxldGUgYmVoYXZpb3IuXG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgZXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7XG5cbiAgICAgICAgICAgIGlmICghdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBLZXlib2FyZEV2ZW50KCdrZXlkb3duJywgZXZlbnQpKSkge1xuICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkUmFuZ2UgPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk/LmdldFJhbmdlQXQoMCk7XG4gICAgICAgICAgICBpZiAoIXNlbGVjdGVkUmFuZ2UpIHtcbiAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoc2VsZWN0ZWRSYW5nZS5zdGFydE9mZnNldCAhPT0gc2VsZWN0ZWRSYW5nZS5lbmRPZmZzZXQpIHtcbiAgICAgICAgICAgICAgLy8gSWYgYSB0ZXh0IHJhbmdlIGlzIHNlbGVjdGVkLCB0aGVuIGRlbGV0ZSB0aGlzIHJhbmdlXG4gICAgICAgICAgICAgIHNlbGVjdGVkUmFuZ2UuZGVsZXRlQ29udGVudHMoKTtcbiAgICAgICAgICAgICAgdGhpcy5fZGlzcGF0Y2hJbnB1dEV2ZW50KCk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGV2ZW50LmtleSA9PT0gJ0JhY2tzcGFjZScgJiYgc2VsZWN0ZWRSYW5nZS5zdGFydE9mZnNldCA+IDApIHtcbiAgICAgICAgICAgICAgLy8gV2hlbiBwcmVzc2luZyBCYWNrc3BhY2UsIHdlIHNlbGVjdCB0aGUgcHJldmlvdXMgY2hhcmFjdGVyIGZyb21cbiAgICAgICAgICAgICAgLy8gdGhlIGN1cnJlbnQgY3Vyc29yIHBvc2l0aW9uIGFuZCBkZWxldGUgaXQuXG4gICAgICAgICAgICAgIHNlbGVjdGVkUmFuZ2Uuc2V0U3RhcnQoc2VsZWN0ZWRSYW5nZS5zdGFydENvbnRhaW5lciwgc2VsZWN0ZWRSYW5nZS5zdGFydE9mZnNldCAtIDEpO1xuICAgICAgICAgICAgICBzZWxlY3RlZFJhbmdlLmRlbGV0ZUNvbnRlbnRzKCk7XG4gICAgICAgICAgICAgIHRoaXMuX2Rpc3BhdGNoSW5wdXRFdmVudCgpO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChldmVudC5rZXkgPT09ICdEZWxldGUnICYmIHNlbGVjdGVkUmFuZ2UuZW5kT2Zmc2V0IDwgdGhpcy52YWx1ZS5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgLy8gV2hlbiBwcmVzc2luZyBEZWxldGUsIHdlIHNlbGVjdCB0aGUgbmV4dCBjaGFyYWN0ZXIgZnJvbVxuICAgICAgICAgICAgICAvLyB0aGUgY3VycmVudCBjdXJzb3IgcG9zaXRpb24gYW5kIGRlbGV0ZSBpdC5cbiAgICAgICAgICAgICAgc2VsZWN0ZWRSYW5nZS5zZXRFbmQoc2VsZWN0ZWRSYW5nZS5lbmRDb250YWluZXIsIHNlbGVjdGVkUmFuZ2UuZW5kT2Zmc2V0ICsgMSk7XG4gICAgICAgICAgICAgIHNlbGVjdGVkUmFuZ2UuZGVsZXRlQ29udGVudHMoKTtcbiAgICAgICAgICAgICAgdGhpcy5fZGlzcGF0Y2hJbnB1dEV2ZW50KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICB7IGNhcHR1cmU6IHRydWUgfSxcbiAgICAgICk7XG4gICAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/LihcbiAgICAgICAgJ2tleXVwJyxcbiAgICAgICAgKGV2ZW50KSA9PiB7XG4gICAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gJ0VudGVyJyB8fCBldmVudC5rZXkgPT09ICdcXG4nKSB7XG4gICAgICAgICAgICB0aGlzLl9lbWl0Q2hhbmdlSWZOZWNlc3NhcnkoKTtcbiAgICAgICAgICAgIGlmICh0aGlzLl9zaG91bGRUcmlnZ2VyU3VibWl0KSB7XG4gICAgICAgICAgICAgIHRoaXMuX3Nob3VsZFRyaWdnZXJTdWJtaXQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgdGhpcy5mb3JtPy5yZXF1ZXN0U3VibWl0KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIGlmICh0aGlzLl9yZXF1aXJlc0VtcHR5UGF0Y2goKSkge1xuICAgICAgICAgICAgdGhpcy5fc2V0Q3Vyc29yQXQoMCk7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICB7IGNhcHR1cmU6IHRydWUgfSxcbiAgICAgICk7XG4gICAgICAvLyBjb250ZW50ZWRpdGFibGUgYWxsb3dzIHBhc3RpbmcgcmljaCBjb250ZW50IGludG8gaXRzIGhvc3QuXG4gICAgICAvLyBXZSBwcmV2ZW50IHRoaXMgYnkgbGlzdGVuaW5nIHRvIHRoZSBwYXN0ZSBldmVudCBhbmRcbiAgICAgIC8vIGV4dHJhY3RpbmcgdGhlIHBsYWluIHRleHQgZnJvbSB0aGUgcGFzdGVkIGNvbnRlbnRcbiAgICAgIC8vIGFuZCBpbnNlcnRpbmcgaXQgaW50byB0aGUgc2VsZWN0ZWQgcmFuZ2UgKGN1cnNvciBwb3NpdGlvblxuICAgICAgLy8gb3Igc2VsZWN0aW9uKS5cbiAgICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcj8uKCdwYXN0ZScsIChlKSA9PiB7XG4gICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgaWYgKHRoaXMuX3JlcXVpcmVzRW1wdHlQYXRjaCgpKSB7XG4gICAgICAgICAgdGhpcy5fYXNzaWduVmFsdWUoJycpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgdGV4dCA9IHRoaXMuX2NsZWFuVGV4dChlLmNsaXBib2FyZERhdGE/LmdldERhdGEoJ3RleHQvcGxhaW4nKSA/PyAnJyk7XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkUmFuZ2UgPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk/LmdldFJhbmdlQXQoMCk7XG4gICAgICAgIGlmICghc2VsZWN0ZWRSYW5nZSB8fCAhdGV4dCkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHNlbGVjdGVkUmFuZ2UuZGVsZXRlQ29udGVudHMoKTtcbiAgICAgICAgc2VsZWN0ZWRSYW5nZS5pbnNlcnROb2RlKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHRoaXMucHJlcGFyZVBhc3RlZFRleHQodGV4dCkpKTtcbiAgICAgICAgc2VsZWN0ZWRSYW5nZS5zZXRTdGFydChzZWxlY3RlZFJhbmdlLmVuZENvbnRhaW5lciwgc2VsZWN0ZWRSYW5nZS5lbmRPZmZzZXQpO1xuICAgICAgICB0aGlzLl9kaXNwYXRjaElucHV0RXZlbnQoKTtcbiAgICAgIH0pO1xuICAgICAgLy8gV2hlbiBmb2N1c2luZyBhIHRleHQgaW5wdXQgdmlhIGtleWJvYXJkLCB0aGUgdGV4dCBjb250ZW50IHNob3VsZCBiZSBzZWxlY3RlZC5cbiAgICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcj8uKCdmb2N1cycsICgpID0+IHtcbiAgICAgICAgaWYgKHNiYklucHV0TW9kYWxpdHlEZXRlY3Rvci5tb3N0UmVjZW50TW9kYWxpdHkgPT09ICdrZXlib2FyZCcpIHtcbiAgICAgICAgICAvLyBUT0RPOiBUaGlzIGRvZXMgbm90IHNlZW0gdG8gd29yayBpbiBGaXJlZm94IHdpdGggcmVhZG9ubHkuXG4gICAgICAgICAgd2luZG93LmdldFNlbGVjdGlvbigpPy5zZWxlY3RBbGxDaGlsZHJlbih0aGlzKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/LigndG91Y2hlbmQnLCAoKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLl9yZXF1aXJlc0VtcHR5UGF0Y2goKSkge1xuICAgICAgICAgIHRoaXMuX2Fzc2lnblZhbHVlKCcmbmJzcDsnKTtcbiAgICAgICAgICB0aGlzLl9zZXRDdXJzb3JBdCgwKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/LignY2xpY2snLCAoKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLl9yZXF1aXJlc0VtcHR5UGF0Y2goKSAmJiBzYmJJbnB1dE1vZGFsaXR5RGV0ZWN0b3IubW9zdFJlY2VudE1vZGFsaXR5ID09PSAndG91Y2gnKSB7XG4gICAgICAgICAgdGhpcy5fc2V0Q3Vyc29yQXQoMCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgICAvLyBPbiBibHVyIHRoZSBuYXRpdmUgdGV4dCBpbnB1dCBzY3JvbGxzIHRoZSB0ZXh0IHRvIHRoZSBzdGFydCBvZiB0aGUgdGV4dC5cbiAgICAgIC8vIFdlIG1pbWljIHRoYXQgYnkgcmVzZXR0aW5nIHRoZSBzY3JvbGwgcG9zaXRpb24uXG4gICAgICAvLyBXZSBhbHNvIHVuc2V0IGFueSBzZWxlY3Rpb24gdG8gYWxpZ24gd2l0aCB0aGUgbmF0aXZlIHRleHQgaW5wdXQuXG4gICAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/LihcbiAgICAgICAgJ2JsdXInLFxuICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgd2luZG93LmdldFNlbGVjdGlvbigpPy5yZW1vdmVBbGxSYW5nZXMoKTtcbiAgICAgICAgICBpZiAodGhpcy52YWx1ZSA9PT0gJycpIHtcbiAgICAgICAgICAgIHRoaXMuX2Fzc2lnblZhbHVlKCcnKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5fZW1pdENoYW5nZUlmTmVjZXNzYXJ5KCk7XG4gICAgICAgICAgdGhpcy5zY3JvbGxMZWZ0ID0gMDtcbiAgICAgICAgfSxcbiAgICAgICAgeyBjYXB0dXJlOiB0cnVlIH0sXG4gICAgICApO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBvdmVycmlkZSBpc0Rpc2FibGVkRXh0ZXJuYWxseSgpOiBib29sZWFuIHtcbiAgICAgIHJldHVybiB0aGlzLmZvcm1EaXNhYmxlZDtcbiAgICB9XG5cbiAgICBwdWJsaWMgb3ZlcnJpZGUgY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgICBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpO1xuICAgICAgdGhpcy5pbnRlcm5hbHMuYXJpYU11bHRpTGluZSA9ICdmYWxzZSc7XG4gICAgICB0aGlzLl91cGRhdGVDb250ZW50ZWRpdGFibGUoKTtcblxuICAgICAgLy8gV2Ugd2FudCB0byByZXBsYWNlIGFueSBjb250ZW50IGJ5IGp1c3QgdGhlIHRleHQgY29udGVudC5cbiAgICAgIHRoaXMuX2Fzc2lnblZhbHVlKHRoaXMudmFsdWUpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvdmVycmlkZSBmb2N1cyhvcHRpb25zPzogRm9jdXNPcHRpb25zKTogdm9pZCB7XG4gICAgICBzdXBlci5mb2N1cyhvcHRpb25zKTtcbiAgICAgIC8vIEJ5IGRlZmF1bHQsIHdoZW4gY2FsbGluZyBmb2N1cyBvbiBhbiBpbnB1dCBlbGVtZW50LCB0aGUgY3Vyc29yIGlzIHBsYWNlZFxuICAgICAgLy8gYXQgdGhlIGVuZCBvZiB0aGUgaW5wdXQgdGV4dC4gSG93ZXZlciwgd2l0aCBjb250ZW50ZWRpdGFibGUsIHRoZSBjdXJzb3JcbiAgICAgIC8vIGlzIHBsYWNlZCBhdCB0aGUgYmVnaW5uaW5nLCBzbyB3ZSBtb3ZlIGl0IHRvIHRoZSBlbmQsIGlmIHRoYXQgaXMgdGhlIGNhc2UuXG4gICAgICBpZiAodGhpcy5fY2FuU2VsZWN0KCkpIHtcbiAgICAgICAgY29uc3Qgc2VsZWN0aW9uID0gd2luZG93LmdldFNlbGVjdGlvbigpO1xuICAgICAgICBpZiAoIXNlbGVjdGlvbikge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCByYW5nZSA9IHNlbGVjdGlvbi5yYW5nZUNvdW50ID4gMCA/IHNlbGVjdGlvbi5nZXRSYW5nZUF0KDApIDogbnVsbDtcbiAgICAgICAgaWYgKHJhbmdlICYmIHJhbmdlLnN0YXJ0T2Zmc2V0ICE9PSAwKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fc2V0Q3Vyc29yQXQodGhpcy50ZXh0Q29udGVudCEubGVuZ3RoKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgb3ZlcnJpZGUgYXR0cmlidXRlQ2hhbmdlZENhbGxiYWNrKFxuICAgICAgbmFtZTogc3RyaW5nLFxuICAgICAgb2xkOiBzdHJpbmcgfCBudWxsLFxuICAgICAgdmFsdWU6IHN0cmluZyB8IG51bGwsXG4gICAgKTogdm9pZCB7XG4gICAgICAvKipcbiAgICAgICAqIFRoZSBuYXRpdmUgdGV4dCBpbnB1dCBjaGFuZ2VzIHRoZSB2YWx1ZSBwcm9wZXJ0eSB3aGVuIHRoZSB2YWx1ZSBhdHRyaWJ1dGUgaXNcbiAgICAgICAqIGNoYW5nZWQgdW5kZXIgdGhlIGNvbmRpdGlvbiB0aGF0IG5vIGlucHV0IGV2ZW50IGhhcyBvY2N1cnJlZCBzaW5jZSBjcmVhdGlvblxuICAgICAgICogb3IgdGhlIGxhc3QgZm9ybSByZXNldC5cbiAgICAgICAqL1xuICAgICAgaWYgKG5hbWUgIT09ICd2YWx1ZScgfHwgIXRoaXMubWF0Y2hlcz8uKCc6c3RhdGUoaW50ZXJhY3RlZCknKSkge1xuICAgICAgICBzdXBlci5hdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2sobmFtZSwgb2xkLCB2YWx1ZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSXMgY2FsbGVkIHdoZW5ldmVyIHRoZSBmb3JtIGlzIGJlaW5nIHJlc2V0LlxuICAgICAqXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgcHVibGljIG92ZXJyaWRlIGZvcm1SZXNldENhbGxiYWNrKCk6IHZvaWQge1xuICAgICAgdGhpcy5pbnRlcm5hbHMuc3RhdGVzLmRlbGV0ZSgnaW50ZXJhY3RlZCcpO1xuICAgICAgdGhpcy52YWx1ZSA9IHRoaXMuZ2V0QXR0cmlidXRlKCd2YWx1ZScpID8/ICcnO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqICBDYWxsZWQgd2hlbiB0aGUgYnJvd3NlciBpcyB0cnlpbmcgdG8gcmVzdG9yZSBlbGVtZW504oCZcyBzdGF0ZSB0byBzdGF0ZSBpbiB3aGljaCBjYXNlXG4gICAgICogIHJlYXNvbiBpcyBcInJlc3RvcmVcIiwgb3Igd2hlbiB0aGUgYnJvd3NlciBpcyB0cnlpbmcgdG8gZnVsZmlsbCBhdXRvZmlsbCBvbiBiZWhhbGYgb2ZcbiAgICAgKiAgdXNlciBpbiB3aGljaCBjYXNlIHJlYXNvbiBpcyBcImF1dG9jb21wbGV0ZVwiLlxuICAgICAqICBJbiB0aGUgY2FzZSBvZiBcInJlc3RvcmVcIiwgc3RhdGUgaXMgYSBzdHJpbmcsIEZpbGUsIG9yIEZvcm1EYXRhIG9iamVjdFxuICAgICAqICBwcmV2aW91c2x5IHNldCBhcyB0aGUgc2Vjb25kIGFyZ3VtZW50IHRvIHNldEZvcm1WYWx1ZS5cbiAgICAgKlxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHB1YmxpYyBvdmVycmlkZSBmb3JtU3RhdGVSZXN0b3JlQ2FsbGJhY2soXG4gICAgICBzdGF0ZTogRm9ybVJlc3RvcmVTdGF0ZSB8IG51bGwsXG4gICAgICBfcmVhc29uOiBGb3JtUmVzdG9yZVJlYXNvbixcbiAgICApOiB2b2lkIHtcbiAgICAgIGlmIChzdGF0ZSAmJiB0eXBlb2Ygc3RhdGUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHRoaXMudmFsdWUgPSBzdGF0ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBNYWtlcyB0aGUgc2VsZWN0aW9uIGVxdWFsIHRvIHRoZSBjdXJyZW50IG9iamVjdC5cbiAgICAgKlxuICAgICAqIEBsaW5rIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2RvY3MvV2ViL0FQSS9IVE1MSW5wdXRFbGVtZW50L3NlbGVjdFxuICAgICAqL1xuICAgIHB1YmxpYyBzZWxlY3QoKTogdm9pZCB7XG4gICAgICB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk/LnNlbGVjdEFsbENoaWxkcmVuKHRoaXMpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBvdmVycmlkZSBmaXJzdFVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXM6IFByb3BlcnR5VmFsdWVzPHRoaXM+KTogdm9pZCB7XG4gICAgICBzdXBlci5maXJzdFVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXMpO1xuXG4gICAgICAvLyBJZiB0aGUgdmFsdWUgd2FzIGFzc2lnbmVkIGJlZm9yZSBmaXJzdFVwZGF0ZSwgd2UgaGF2ZSB0b1xuICAgICAgLy8gd3JpdGUgaXQgdGhlIGRvY3VtZW50IHRvIGJlIHZpc3VhbGx5IHNlZW5cbiAgICAgIGlmICh0aGlzLnZhbHVlICYmICF0aGlzLmlubmVySFRNTC5sZW5ndGgpIHtcbiAgICAgICAgdGhpcy5fYXNzaWduVmFsdWUodGhpcy52YWx1ZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIG92ZXJyaWRlIHJlcXVlc3RVcGRhdGUoXG4gICAgICBuYW1lPzogUHJvcGVydHlLZXksXG4gICAgICBvbGRWYWx1ZT86IHVua25vd24sXG4gICAgICBvcHRpb25zPzogUHJvcGVydHlEZWNsYXJhdGlvbixcbiAgICApOiB2b2lkIHtcbiAgICAgIHN1cGVyLnJlcXVlc3RVcGRhdGUobmFtZSwgb2xkVmFsdWUsIG9wdGlvbnMpO1xuICAgICAgaWYgKFxuICAgICAgICB0aGlzLmlzQ29ubmVjdGVkICYmXG4gICAgICAgIChuYW1lID09PSAnZGlzYWJsZWQnIHx8IG5hbWUgPT09ICdmb3JtRGlzYWJsZWQnIHx8IG5hbWUgPT09ICdyZWFkT25seScpXG4gICAgICApIHtcbiAgICAgICAgdGhpcy5fdXBkYXRlQ29udGVudGVkaXRhYmxlKCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIHNob3VsZFZhbGlkYXRlKG5hbWU6IFByb3BlcnR5S2V5IHwgdW5kZWZpbmVkKTogYm9vbGVhbiB7XG4gICAgICByZXR1cm4gc3VwZXIuc2hvdWxkVmFsaWRhdGUobmFtZSkgfHwgbmFtZSA9PT0gJ3ZhbHVlJyB8fCBuYW1lID09PSAncmVxdWlyZWQnO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBvdmVycmlkZSB2YWxpZGF0ZSgpOiB2b2lkIHtcbiAgICAgIHN1cGVyLnZhbGlkYXRlKCk7XG4gICAgICBpZiAodGhpcy5yZXF1aXJlZCAmJiAhdGhpcy52YWx1ZSkge1xuICAgICAgICB0aGlzLnNldFZhbGlkaXR5RmxhZygndmFsdWVNaXNzaW5nJywgaTE4bklucHV0UmVxdWlyZWRbdGhpcy5sYW5ndWFnZS5jdXJyZW50XSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnJlbW92ZVZhbGlkaXR5RmxhZygndmFsdWVNaXNzaW5nJyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHByZXBhcmVQYXN0ZWRUZXh0KHRleHQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICByZXR1cm4gdGV4dDtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9yZXF1aXJlc0VtcHR5UGF0Y2goKTogYm9vbGVhbiB7XG4gICAgICAvLyBJbiBCbGluaywgYSBjb250ZW50ZWRpdGFibGUgZWxlbWVudCB3aXRoIGVtcHR5IGNvbnRlbnQgd2lsbCBjcmFzaFxuICAgICAgLy8gdXBvbiByZWNlaXZpbmcgZm9jdXMsIHdoZW4gaW4gTW9iaWxlIG1vZGUuXG4gICAgICAvLyBUbyBwcmV2ZW50IHRoaXMsIHdlIHBhdGNoIHRoZSBlbXB0eSBzdGF0ZSBieSBpbnNlcnRpbmcgYSBub24tYnJlYWtpbmcgc3BhY2UuXG4gICAgICByZXR1cm4gaXNTZXJ2ZXJcbiAgICAgICAgPyBmYWxzZVxuICAgICAgICA6IGlzQmxpbmsgJiYgdGhpcy52YWx1ZSA9PT0gJycgJiYgd2luZG93Lm1hdGNoTWVkaWEoU2JiTWVkaWFRdWVyeVBvaW50ZXJDb2Fyc2UpLm1hdGNoZXM7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfYXNzaWduVmFsdWUodmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgdGhpcy5pbm5lckhUTUwgPSB2YWx1ZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9zZXRDdXJzb3JBdChwb3NpdGlvbjogbnVtYmVyKTogdm9pZCB7XG4gICAgICBjb25zdCBzZWxlY3Rpb24gPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk7XG4gICAgICBpZiAoIXNlbGVjdGlvbikge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHJhbmdlID0gZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKTtcbiAgICAgIHJhbmdlLnNldFN0YXJ0KHRoaXMuZmlyc3RDaGlsZCEsIHBvc2l0aW9uKTtcbiAgICAgIHJhbmdlLmNvbGxhcHNlKHRydWUpO1xuICAgICAgc2VsZWN0aW9uLnJlbW92ZUFsbFJhbmdlcygpO1xuICAgICAgc2VsZWN0aW9uLmFkZFJhbmdlKHJhbmdlKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9jbGVhblRleHQodmFsdWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAvLyBUaGUgbmF0aXZlIHRleHQgaW5wdXQgcmVtb3ZlcyBhbGwgbmV3bGluZSBjaGFyYWN0ZXJzIGlmIHBhc3NlZCB0byB0aGUgdmFsdWUgcHJvcGVydHlcbiAgICAgIHJldHVybiB2YWx1ZSA9PT0gbnVsbCA/ICcnIDogYCR7dmFsdWV9YC5yZXBsYWNlKC9bXFxuXFxyXSsvZywgJycpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2Rpc3BhdGNoSW5wdXRFdmVudCgpOiB2b2lkIHtcbiAgICAgIC8qKiBUaGUgaW5wdXQgZXZlbnQgZmlyZXMgd2hlbiB0aGUgdmFsdWUgaGFzIGJlZW4gY2hhbmdlZCBhcyBhIGRpcmVjdCByZXN1bHQgb2YgYSB1c2VyIGFjdGlvbi4gKi9cbiAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgSW5wdXRFdmVudCgnaW5wdXQnLCB7IGJ1YmJsZXM6IHRydWUsIGNvbXBvc2VkOiB0cnVlIH0pKTtcbiAgICB9XG5cbiAgICBAZXZlbnRPcHRpb25zKHsgcGFzc2l2ZTogdHJ1ZSB9KVxuICAgIHByaXZhdGUgX2NsZWFuQ2hpbGRyZW4oKTogdm9pZCB7XG4gICAgICBpZiAodGhpcy5jaGlsZEVsZW1lbnRDb3VudCkge1xuICAgICAgICBmb3IgKGNvbnN0IGVsZW1lbnQgb2YgdGhpcy5jaGlsZHJlbikge1xuICAgICAgICAgIGVsZW1lbnQucmVtb3ZlKCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIF91cGRhdGVDb250ZW50ZWRpdGFibGUoKTogdm9pZCB7XG4gICAgICBpZiAoIWlzU2VydmVyICYmIHRoaXMuaXNDb25uZWN0ZWQpIHtcbiAgICAgICAgdGhpcy5pbnRlcm5hbHMuYXJpYVJlYWRPbmx5ID0gdGhpcy5yZWFkT25seSA/ICd0cnVlJyA6IG51bGw7XG4gICAgICAgIHRoaXMuaW50ZXJuYWxzLmFyaWFEaXNhYmxlZCA9IHRoaXMuZGlzYWJsZWQgPyAndHJ1ZScgOiBudWxsO1xuICAgICAgICAvLyBUT0RPKDIwMjYpOiBGaXJlZm94IHN1cHBvcnRzIHBsYWludGV4dC1vbmx5IHNpbmNlIHZlcnNpb24gMTM2IChNYXJjaCAyMDI1KS5cbiAgICAgICAgLy8gVW50aWwgdGhpcyBpcyBwYXJ0IG9mIG91ciBiYXNlbGluZSwgd2Ugc2hvdWxkIGZlYXR1cmUgY2hlY2sgdG8gZW5hYmxlIGl0LlxuICAgICAgICBjb25zdCB2YWx1ZSA9XG4gICAgICAgICAgdGhpcy5kaXNhYmxlZCB8fCB0aGlzLnJlYWRPbmx5XG4gICAgICAgICAgICA/ICdmYWxzZSdcbiAgICAgICAgICAgIDogcGxhaW50ZXh0T25seVN1cHBvcnRlZFxuICAgICAgICAgICAgICA/ICdwbGFpbnRleHQtb25seSdcbiAgICAgICAgICAgICAgOiAndHJ1ZSc7XG4gICAgICAgIHRoaXMuc2V0QXR0cmlidXRlKCdjb250ZW50ZWRpdGFibGUnLCB2YWx1ZSk7XG4gICAgICAgIC8vIEluIHRoZSByZWFkb25seSBjYXNlLCB3ZSBkaXNhYmxlIGNvbnRlbnRlZGl0YWJsZSwgYnV0IGl0IHN0aWxsXG4gICAgICAgIC8vIG5lZWRzIHRvIGJlIGZvY3VzYWJsZS4gV2UgYWNoaWV2ZSB0aGlzIGJ5IHNldHRpbmcgdGFiaW5kZXggaW4gdGhhdCBjYXNlLlxuICAgICAgICBpZiAodGhpcy5yZWFkT25seSkge1xuICAgICAgICAgIHRoaXMuc2V0QXR0cmlidXRlKCd0YWJpbmRleCcsICcwJyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5yZW1vdmVBdHRyaWJ1dGUoJ3RhYmluZGV4Jyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIF9lbWl0Q2hhbmdlSWZOZWNlc3NhcnkoKTogdm9pZCB7XG4gICAgICBpZiAodGhpcy5fc2hvdWxkRW1pdENoYW5nZSkge1xuICAgICAgICB0aGlzLl9zaG91bGRFbWl0Q2hhbmdlID0gZmFsc2U7XG4gICAgICAgIC8qKiBUaGUgY2hhbmdlIGV2ZW50IGlzIGZpcmVkIHdoZW4gdGhlIHVzZXIgbW9kaWZpZXMgdGhlIGVsZW1lbnQncyB2YWx1ZS4gVW5saWtlIHRoZSBpbnB1dCBldmVudCwgdGhlIGNoYW5nZSBldmVudCBpcyBub3QgbmVjZXNzYXJpbHkgZmlyZWQgZm9yIGVhY2ggYWx0ZXJhdGlvbiB0byBhbiBlbGVtZW50J3MgdmFsdWUuICovXG4gICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ2NoYW5nZScsIHsgYnViYmxlczogdHJ1ZSB9KSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfY2FuU2VsZWN0KCk6IGJvb2xlYW4ge1xuICAgICAgcmV0dXJuICFpc1NlcnZlciAmJiAhdGhpcy5kaXNhYmxlZCAmJiAhdGhpcy5yZWFkT25seSAmJiAhIXRoaXMudmFsdWU7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlbmRlcigpOiB1bmtub3duIHtcbiAgICAgIHJldHVybiBodG1sYDxzbG90IEBzbG90Y2hhbmdlPSR7dGhpcy5fY2xlYW5DaGlsZHJlbn0+PC9zbG90PmA7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIFNiYkZvcm1Bc3NvY2lhdGVkSW5wdXRFbGVtZW50IGFzIHVua25vd24gYXMgQWJzdHJhY3RDb25zdHJ1Y3RvcjxTYmJGb3JtQXNzb2NpYXRlZElucHV0TWl4aW5UeXBlPiAmXG4gICAgVDtcbn07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFtREEsSUFBTSxrQ0FBMEM7QUFDOUMsS0FBSSxTQUNGLFFBQU87Q0FHVCxNQUFNLE1BQU0sU0FBUyxjQUFjLE1BQU07QUFDekMsS0FBSSxhQUFhLG1CQUFtQixpQkFBaUI7QUFJckQsUUFBTyxJQUFJLG9CQUFvQjs7QUFFakMsSUFBTSx5QkFBeUIsMkJBQTJCOzs7O0FBTTFELElBQWEsK0JBR1gsZUFDNEQ7QUErWjVELGVBOVo0QztvQkFDbEMsaUJBQWlCLGlCQUFpQixpQkFBaUIsdUJBQXVCLFdBQVcsQ0FBQyxDQUFDLENBQUM7Ozs7O2VBRG5GLHNDQUNMLFlBQXdGOzs7NkJBaUMvRixVQUFVLENBQUE7bUNBY1YsU0FBUyxFQUFFLFdBQVcsT0FBTyxDQUFDLENBQUE7a0NBNlQ5QixhQUFhLEVBQUUsU0FBUyxNQUFNLENBQUMsQ0FBQTtBQTFVaEMsaUJBQUEsTUFBQSxNQUFBLHVCQUFBO0tBQUEsTUFBQTtLQUFBLE1BQUE7S0FBQSxRQUFBO0tBQUEsU0FBQTtLQUFBLFFBQUE7TUFBQSxNQUFBLFFBQUEsV0FBQTtNQUFBLE1BQUEsS0FBQSxVQUFBO0FBQUEsV0FBVyxRQUFLOztNQUFBO0tBQUEsVUFBQTtLQUFBLEVBQUEsTUFBQSwyQkFBQTtBQWNoQixpQkFBQSxNQUFBLE1BQUEsNkJBQUE7S0FBQSxNQUFBO0tBQUEsTUFBQTtLQUFBLFFBQUE7S0FBQSxTQUFBO0tBQUEsUUFBQTtNQUFBLE1BQUEsUUFBQSxpQkFBQTtNQUFBLE1BQUEsS0FBQSxVQUFBO0FBQUEsV0FBVyxjQUFXOztNQUFBO0tBQUEsVUFBQTtLQUFBLEVBQUEsTUFBQSwyQkFBQTtBQTZUdEIsaUJBQUEsTUFB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
344
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1hc3NvY2lhdGVkLWlucHV0LW1peGluLmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb3JlL21peGlucy9mb3JtLWFzc29jaWF0ZWQtaW5wdXQtbWl4aW4udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaHRtbCwgaXNTZXJ2ZXIsIHR5cGUgUHJvcGVydHlEZWNsYXJhdGlvbiwgdHlwZSBQcm9wZXJ0eVZhbHVlcyB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBldmVudE9wdGlvbnMsIHByb3BlcnR5IH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuXG5pbXBvcnQgeyBzYmJJbnB1dE1vZGFsaXR5RGV0ZWN0b3IgfSBmcm9tICcuLi9hMTF5L2lucHV0LW1vZGFsaXR5LWRldGVjdG9yLnRzJztcbmltcG9ydCB0eXBlIHsgU2JiRWxlbWVudCwgU2JiRWxlbWVudENvbnN0cnVjdG9yIH0gZnJvbSAnLi4vYmFzZS1lbGVtZW50cy9lbGVtZW50LnRzJztcbmltcG9ydCB7IFNiYkxhbmd1YWdlQ29udHJvbGxlciB9IGZyb20gJy4uL2NvbnRyb2xsZXJzL2xhbmd1YWdlLWNvbnRyb2xsZXIudHMnO1xuaW1wb3J0IHsgU2JiTWVkaWFRdWVyeVBvaW50ZXJDb2Fyc2UgfSBmcm9tICcuLi9jb250cm9sbGVycy9tZWRpYS1tYXRjaGVycy1jb250cm9sbGVyLnRzJztcbmltcG9ydCB7IGlzQmxpbmssIGlzV2Via2l0IH0gZnJvbSAnLi4vZG9tL3BsYXRmb3JtLnRzJztcbmltcG9ydCB7IGkxOG5JbnB1dFJlcXVpcmVkIH0gZnJvbSAnLi4vaTE4bi9pMThuLnRzJztcblxuaW1wb3J0IHR5cGUgeyBBYnN0cmFjdENvbnN0cnVjdG9yIH0gZnJvbSAnLi9jb25zdHJ1Y3Rvci50cyc7XG5pbXBvcnQgeyBTYmJEaXNhYmxlZE1peGluIH0gZnJvbSAnLi9kaXNhYmxlZC1taXhpbi50cyc7XG5pbXBvcnQge1xuICB0eXBlIEZvcm1SZXN0b3JlUmVhc29uLFxuICB0eXBlIEZvcm1SZXN0b3JlU3RhdGUsXG4gIFNiYkZvcm1Bc3NvY2lhdGVkTWl4aW4sXG59IGZyb20gJy4vZm9ybS1hc3NvY2lhdGVkLW1peGluLnRzJztcbmltcG9ydCB7IFNiYlJlYWRvbmx5TWl4aW4gfSBmcm9tICcuL3JlYWRvbmx5LW1peGluLnRzJztcbmltcG9ydCB7IFNiYlJlcXVpcmVkTWl4aW4gfSBmcm9tICcuL3JlcXVpcmVkLW1peGluLnRzJztcblxuZXhwb3J0IGRlY2xhcmUgYWJzdHJhY3QgY2xhc3MgU2JiRm9ybUFzc29jaWF0ZWRJbnB1dE1peGluVHlwZSBleHRlbmRzIFNiYlJlcXVpcmVkTWl4aW4oXG4gIFNiYkZvcm1Bc3NvY2lhdGVkTWl4aW4oU2JiRWxlbWVudCksXG4pIHtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBmb3JtRmllbGRBc3NvY2lhdGVkID0gdHJ1ZTtcblxuICBwdWJsaWMgc2V0IHZhbHVlKHZhbHVlOiBzdHJpbmcpO1xuICBwdWJsaWMgZ2V0IHZhbHVlKCk6IHN0cmluZztcblxuICBwdWJsaWMgc2V0IGRpc2FibGVkKHZhbHVlOiBib29sZWFuKTtcbiAgcHVibGljIGdldCBkaXNhYmxlZCgpOiBib29sZWFuO1xuXG4gIHB1YmxpYyBzZXQgcmVhZE9ubHkodmFsdWU6IGJvb2xlYW4pO1xuICBwdWJsaWMgZ2V0IHJlYWRPbmx5KCk6IGJvb2xlYW47XG5cbiAgcHVibGljIHNldCBwbGFjZWhvbGRlcih2YWx1ZTogc3RyaW5nKTtcbiAgcHVibGljIGdldCBwbGFjZWhvbGRlcigpOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE1ha2VzIHRoZSBzZWxlY3Rpb24gZXF1YWwgdG8gdGhlIGN1cnJlbnQgb2JqZWN0LlxuICAgKlxuICAgKiBbTUROIFJlZmVyZW5jZV0oaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZG9jcy9XZWIvQVBJL0hUTUxJbnB1dEVsZW1lbnQvc2VsZWN0KVxuICAgKi9cbiAgcHVibGljIHNlbGVjdCgpOiB2b2lkO1xuXG4gIHB1YmxpYyBmb3JtUmVzZXRDYWxsYmFjaygpOiB2b2lkO1xuICBwdWJsaWMgZm9ybVN0YXRlUmVzdG9yZUNhbGxiYWNrKHN0YXRlOiBGb3JtUmVzdG9yZVN0YXRlIHwgbnVsbCwgcmVhc29uOiBGb3JtUmVzdG9yZVJlYXNvbik6IHZvaWQ7XG5cbiAgcHJvdGVjdGVkIGlzU2VsZWN0ZWQoKTogYm9vbGVhbjtcbiAgcHJvdGVjdGVkIHByZXBhcmVQYXN0ZWRUZXh0KHRleHQ6IHN0cmluZyk6IHN0cmluZztcbiAgcHJvdGVjdGVkIGxhbmd1YWdlOiBTYmJMYW5ndWFnZUNvbnRyb2xsZXI7XG59XG5cbmNvbnN0IGNoZWNrUGxhaW50ZXh0T25seVN1cHBvcnQgPSAoKTogYm9vbGVhbiA9PiB7XG4gIGlmIChpc1NlcnZlcikge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGNvbnN0IGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICBkaXYuc2V0QXR0cmlidXRlKCdjb250ZW50ZWRpdGFibGUnLCAnUExBSU5URVhULU9OTFknKTtcblxuICAvLyBJZiBwbGFpbnRleHQtb25seSBpcyBzdXBwb3J0ZWQsIHRoZSBhdHRyaWJ1dGUgdmFsdWUgaXNcbiAgLy8gcmV0dXJuZWQgYXMgbG93ZXItY2FzZSBmcm9tIHRoZSBwcm9wZXJ0eSBhY2Nlc3MuXG4gIHJldHVybiBkaXYuY29udGVudEVkaXRhYmxlID09PSAncGxhaW50ZXh0LW9ubHknO1xufTtcbmNvbnN0IHBsYWludGV4dE9ubHlTdXBwb3J0ZWQgPSBjaGVja1BsYWludGV4dE9ubHlTdXBwb3J0KCk7XG5cbi8qKlxuICogVGhlIFNiYkZvcm1Bc3NvY2lhdGVkSW5wdXRNaXhpbiBlbmFibGVzIG5hdGl2ZSBmb3JtIHN1cHBvcnQgZm9yIHRleHQgaW5wdXQgY29udHJvbHMuXG4gKi9cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbmV4cG9ydCBjb25zdCBTYmJGb3JtQXNzb2NpYXRlZElucHV0TWl4aW4gPSA8XG4gIFQgZXh0ZW5kcyBBYnN0cmFjdENvbnN0cnVjdG9yPFNiYkVsZW1lbnQ+ICYgU2JiRWxlbWVudENvbnN0cnVjdG9yLFxuPihcbiAgc3VwZXJDbGFzczogVCxcbik6IEFic3RyYWN0Q29uc3RydWN0b3I8U2JiRm9ybUFzc29jaWF0ZWRJbnB1dE1peGluVHlwZT4gJiBUID0+IHtcbiAgYWJzdHJhY3QgY2xhc3MgU2JiRm9ybUFzc29jaWF0ZWRJbnB1dEVsZW1lbnRcbiAgICBleHRlbmRzIFNiYlJlYWRvbmx5TWl4aW4oU2JiRGlzYWJsZWRNaXhpbihTYmJSZXF1aXJlZE1peGluKFNiYkZvcm1Bc3NvY2lhdGVkTWl4aW4oc3VwZXJDbGFzcykpKSlcbiAgICBpbXBsZW1lbnRzIFBhcnRpYWw8U2JiRm9ybUFzc29jaWF0ZWRJbnB1dE1peGluVHlwZT5cbiAge1xuICAgIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgcmVhZG9ubHkgcm9sZSA9ICd0ZXh0Ym94JztcbiAgICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IGZvcm1GaWVsZEFzc29jaWF0ZWQgPSB0cnVlO1xuXG4gICAgLyoqXG4gICAgICogQW4gZWxlbWVudCB3aXRoIGNvbnRlbnRlZGl0YWJsZSB3aWxsIG5vdCBlbWl0IGEgY2hhbmdlIGV2ZW50LiBUbyBhY2hpZXZlIHBhcml0eVxuICAgICAqIHdpdGggYSBuYXRpdmUgdGV4dCBpbnB1dCwgd2UgbmVlZCB0byB0cmFjayB3aGV0aGVyIGEgY2hhbmdlIGV2ZW50IHNob3VsZCBiZVxuICAgICAqIGVtaXR0ZWQuXG4gICAgICovXG4gICAgcHJpdmF0ZSBfc2hvdWxkRW1pdENoYW5nZSA9IGZhbHNlO1xuICAgIC8qKlxuICAgICAqIEEgbmF0aXZlIHRleHQgaW5wdXQgYXR0ZW1wdHMgdG8gc3VibWl0IHRoZSBmb3JtIHdoZW4gcHJlc3NpbmcgRW50ZXIuXG4gICAgICogVGhpcyBjYW4gYmUgcHJldmVudGVkIGJ5IGNhbGxpbmcgcHJldmVudERlZmF1bHQgb24gdGhlIGtleWRvd24gZXZlbnQuXG4gICAgICogV2UgdHJhY2sgd2hldGhlciB0byByZXF1ZXN0IHN1Ym1pdCwgd2hpY2ggc2hvdWxkIG9jY3VyIGJlZm9yZSB0aGUga2V5dXBcbiAgICAgKiBldmVudC5cbiAgICAgKi9cbiAgICBwcml2YXRlIF9zaG91bGRUcmlnZ2VyU3VibWl0ID0gZmFsc2U7XG5cbiAgICBwcm90ZWN0ZWQgbGFuZ3VhZ2UgPSBuZXcgU2JiTGFuZ3VhZ2VDb250cm9sbGVyKHRoaXMpO1xuXG4gICAgLyoqXG4gICAgICogRm9ybSB0eXBlIG9mIGVsZW1lbnQuXG4gICAgICogQGRlZmF1bHQgJ3RleHQnXG4gICAgICovXG4gICAgcHVibGljIG92ZXJyaWRlIGdldCB0eXBlKCk6IHN0cmluZyB7XG4gICAgICByZXR1cm4gJ3RleHQnO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSB2YWx1ZSBvZiB0aGUgaW5wdXQuIFJlZmxlY3RzIHRoZSBjdXJyZW50IHRleHQgdmFsdWUgb2YgdGhpcyBpbnB1dC5cbiAgICAgKi9cbiAgICBAcHJvcGVydHkoKVxuICAgIHB1YmxpYyBzZXQgdmFsdWUodmFsdWU6IHN0cmluZykge1xuICAgICAgdGhpcy5fdmFsdWUgPSB0aGlzLl9jbGVhblRleHQodmFsdWUpO1xuICAgICAgaWYgKHRoaXMuaGFzVXBkYXRlZCkge1xuICAgICAgICB0aGlzLl9hc3NpZ25WYWx1ZSh0aGlzLl92YWx1ZSk7XG4gICAgICB9XG4gICAgICAvKiogQGludGVybmFsICovXG4gICAgICB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCdkaXNwbGF5dmFsdWVjaGFuZ2UnLCB7IGJ1YmJsZXM6IHRydWUsIGNvbXBvc2VkOiB0cnVlIH0pKTtcbiAgICB9XG4gICAgcHVibGljIGdldCB2YWx1ZSgpOiBzdHJpbmcge1xuICAgICAgcmV0dXJuIHRoaXMuX3ZhbHVlID8/ICcnO1xuICAgIH1cbiAgICBwcml2YXRlIF92YWx1ZTogc3RyaW5nID0gJyc7XG5cbiAgICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6IGZhbHNlIH0pXG4gICAgcHVibGljIHNldCBwbGFjZWhvbGRlcih2YWx1ZTogc3RyaW5nKSB7XG4gICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgdGhpcy5zZXRBdHRyaWJ1dGUoJ3BsYWNlaG9sZGVyJywgdmFsdWUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5yZW1vdmVBdHRyaWJ1dGUoJ3BsYWNlaG9sZGVyJyk7XG4gICAgICB9XG4gICAgICB0aGlzLmludGVybmFscy5hcmlhUGxhY2Vob2xkZXIgPSB2YWx1ZSA/IHZhbHVlIDogbnVsbDtcbiAgICB9XG4gICAgcHVibGljIGdldCBwbGFjZWhvbGRlcigpOiBzdHJpbmcge1xuICAgICAgcmV0dXJuIHRoaXMuZ2V0QXR0cmlidXRlKCdwbGFjZWhvbGRlcicpID8/ICcnO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBjb25zdHJ1Y3RvcigpIHtcbiAgICAgIHN1cGVyKCk7XG4gICAgICAvLyBXZSBwcmltYXJpbHkgdXNlIGNhcHR1cmUgZXZlbnQgbGlzdGVuZXJzLCBhcyB3ZSB3YW50XG4gICAgICAvLyBvdXIgbGlzdGVuZXJzIHRvIG9jY3VyIGJlZm9yZSBjb25zdW1lciBldmVudCBsaXN0ZW5lcnMuXG4gICAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/LihcbiAgICAgICAgJ2lucHV0JyxcbiAgICAgICAgKCkgPT4ge1xuICAgICAgICAgIGNvbnN0IG9sZFZhbHVlID0gdGhpcy5fdmFsdWU7XG4gICAgICAgICAgdGhpcy5fdmFsdWUgPSB0aGlzLl9jbGVhblRleHQodGhpcy50ZXh0Q29udGVudCA/PyAnJyk7XG4gICAgICAgICAgdGhpcy5yZXF1ZXN0VXBkYXRlKCd2YWx1ZScsIG9sZFZhbHVlKTtcbiAgICAgICAgICB0aGlzLmludGVybmFscy5zdGF0ZXMuYWRkKCdpbnRlcmFjdGVkJyk7XG4gICAgICAgICAgdGhpcy5fc2hvdWxkRW1pdENoYW5nZSA9IHRydWU7XG4gICAgICAgIH0sXG4gICAgICAgIHsgY2FwdHVyZTogdHJ1ZSB9LFxuICAgICAgKTtcbiAgICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcj8uKCdjaGFuZ2UnLCAoKSA9PiAodGhpcy5fc2hvdWxkRW1pdENoYW5nZSA9IGZhbHNlKSwgeyBjYXB0dXJlOiB0cnVlIH0pO1xuICAgICAgdGhpcy5hZGRFdmVudExpc3RlbmVyPy4oXG4gICAgICAgICdrZXlkb3duJyxcbiAgICAgICAgKGV2ZW50KSA9PiB7XG4gICAgICAgICAgaWYgKHRoaXMuX3JlcXVpcmVzRW1wdHlQYXRjaCgpKSB7XG4gICAgICAgICAgICB0aGlzLl9hc3NpZ25WYWx1ZSgnJyk7XG4gICAgICAgICAgfVxuICAgICAgICAgIC8vIFdlIHByZXZlbnQgcmVjdXJzaXZlIGV2ZW50cyBieSBjaGVja2luZyB0aGUgb3JpZ2luYWwgZXZlbnQgZm9yIGlzVHJ1c3RlZFxuICAgICAgICAgIC8vIHdoaWNoIGlzIGZhbHNlIGZvciBtYW51YWxseSBkaXNwYXRjaGVkIGV2ZW50cyAod2hpY2ggd2UgZGlzcGF0Y2ggYmVsb3cpLlxuICAgICAgICAgIGlmICgoZXZlbnQua2V5ID09PSAnRW50ZXInIHx8IGV2ZW50LmtleSA9PT0gJ1xcbicpICYmIGV2ZW50LmlzVHJ1c3RlZCkge1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgdGhpcy5fc2hvdWxkVHJpZ2dlclN1Ym1pdCA9IHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgS2V5Ym9hcmRFdmVudCgna2V5ZG93bicsIGV2ZW50KSk7XG4gICAgICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgICAgIGlzV2Via2l0ICYmXG4gICAgICAgICAgICB0aGlzLnZhbHVlICYmXG4gICAgICAgICAgICAoZXZlbnQua2V5ID09PSAnQmFja3NwYWNlJyB8fCBldmVudC5rZXkgPT09ICdEZWxldGUnKSAmJlxuICAgICAgICAgICAgZXZlbnQuaXNUcnVzdGVkXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICAvLyBJbiBXZWJraXQgcHJlc3NpbmcgQmFja3NwYWNlIG9yIERlbGV0ZSBjb21wbGV0ZWx5IHJlbW92ZXMgYWxsIHRoZSBjb250ZW50XG4gICAgICAgICAgICAvLyBpZiBjb250ZW50ZWRpdGFibGUgaXMgc2V0IG9uIGEgd2ViIGNvbXBvbmVudCBob3N0LlxuICAgICAgICAgICAgLy8gV2UgaGF2ZSB0byByZXBsaWNhdGUgdGhlIG5vcm1hbCBkZWxldGUgYmVoYXZpb3IuXG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgZXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7XG5cbiAgICAgICAgICAgIGlmICghdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBLZXlib2FyZEV2ZW50KCdrZXlkb3duJywgZXZlbnQpKSkge1xuICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkUmFuZ2UgPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk/LmdldFJhbmdlQXQoMCk7XG4gICAgICAgICAgICBpZiAoIXNlbGVjdGVkUmFuZ2UpIHtcbiAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoc2VsZWN0ZWRSYW5nZS5zdGFydE9mZnNldCAhPT0gc2VsZWN0ZWRSYW5nZS5lbmRPZmZzZXQpIHtcbiAgICAgICAgICAgICAgLy8gSWYgYSB0ZXh0IHJhbmdlIGlzIHNlbGVjdGVkLCB0aGVuIGRlbGV0ZSB0aGlzIHJhbmdlXG4gICAgICAgICAgICAgIHNlbGVjdGVkUmFuZ2UuZGVsZXRlQ29udGVudHMoKTtcbiAgICAgICAgICAgICAgdGhpcy5fZGlzcGF0Y2hJbnB1dEV2ZW50KCk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGV2ZW50LmtleSA9PT0gJ0JhY2tzcGFjZScgJiYgc2VsZWN0ZWRSYW5nZS5zdGFydE9mZnNldCA+IDApIHtcbiAgICAgICAgICAgICAgLy8gV2hlbiBwcmVzc2luZyBCYWNrc3BhY2UsIHdlIHNlbGVjdCB0aGUgcHJldmlvdXMgY2hhcmFjdGVyIGZyb21cbiAgICAgICAgICAgICAgLy8gdGhlIGN1cnJlbnQgY3Vyc29yIHBvc2l0aW9uIGFuZCBkZWxldGUgaXQuXG4gICAgICAgICAgICAgIHNlbGVjdGVkUmFuZ2Uuc2V0U3RhcnQoc2VsZWN0ZWRSYW5nZS5zdGFydENvbnRhaW5lciwgc2VsZWN0ZWRSYW5nZS5zdGFydE9mZnNldCAtIDEpO1xuICAgICAgICAgICAgICBzZWxlY3RlZFJhbmdlLmRlbGV0ZUNvbnRlbnRzKCk7XG4gICAgICAgICAgICAgIHRoaXMuX2Rpc3BhdGNoSW5wdXRFdmVudCgpO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChldmVudC5rZXkgPT09ICdEZWxldGUnICYmIHNlbGVjdGVkUmFuZ2UuZW5kT2Zmc2V0IDwgdGhpcy52YWx1ZS5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgLy8gV2hlbiBwcmVzc2luZyBEZWxldGUsIHdlIHNlbGVjdCB0aGUgbmV4dCBjaGFyYWN0ZXIgZnJvbVxuICAgICAgICAgICAgICAvLyB0aGUgY3VycmVudCBjdXJzb3IgcG9zaXRpb24gYW5kIGRlbGV0ZSBpdC5cbiAgICAgICAgICAgICAgc2VsZWN0ZWRSYW5nZS5zZXRFbmQoc2VsZWN0ZWRSYW5nZS5lbmRDb250YWluZXIsIHNlbGVjdGVkUmFuZ2UuZW5kT2Zmc2V0ICsgMSk7XG4gICAgICAgICAgICAgIHNlbGVjdGVkUmFuZ2UuZGVsZXRlQ29udGVudHMoKTtcbiAgICAgICAgICAgICAgdGhpcy5fZGlzcGF0Y2hJbnB1dEV2ZW50KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICB7IGNhcHR1cmU6IHRydWUgfSxcbiAgICAgICk7XG4gICAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/LihcbiAgICAgICAgJ2tleXVwJyxcbiAgICAgICAgKGV2ZW50KSA9PiB7XG4gICAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gJ0VudGVyJyB8fCBldmVudC5rZXkgPT09ICdcXG4nKSB7XG4gICAgICAgICAgICB0aGlzLl9lbWl0Q2hhbmdlSWZOZWNlc3NhcnkoKTtcbiAgICAgICAgICAgIGlmICh0aGlzLl9zaG91bGRUcmlnZ2VyU3VibWl0KSB7XG4gICAgICAgICAgICAgIHRoaXMuX3Nob3VsZFRyaWdnZXJTdWJtaXQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgdGhpcy5mb3JtPy5yZXF1ZXN0U3VibWl0KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIGlmICh0aGlzLl9yZXF1aXJlc0VtcHR5UGF0Y2goKSkge1xuICAgICAgICAgICAgdGhpcy5fc2V0Q3Vyc29yQXQoMCk7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICB7IGNhcHR1cmU6IHRydWUgfSxcbiAgICAgICk7XG4gICAgICAvLyBjb250ZW50ZWRpdGFibGUgYWxsb3dzIHBhc3RpbmcgcmljaCBjb250ZW50IGludG8gaXRzIGhvc3QuXG4gICAgICAvLyBXZSBwcmV2ZW50IHRoaXMgYnkgbGlzdGVuaW5nIHRvIHRoZSBwYXN0ZSBldmVudCBhbmRcbiAgICAgIC8vIGV4dHJhY3RpbmcgdGhlIHBsYWluIHRleHQgZnJvbSB0aGUgcGFzdGVkIGNvbnRlbnRcbiAgICAgIC8vIGFuZCBpbnNlcnRpbmcgaXQgaW50byB0aGUgc2VsZWN0ZWQgcmFuZ2UgKGN1cnNvciBwb3NpdGlvblxuICAgICAgLy8gb3Igc2VsZWN0aW9uKS5cbiAgICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcj8uKCdwYXN0ZScsIChlKSA9PiB7XG4gICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgaWYgKHRoaXMuX3JlcXVpcmVzRW1wdHlQYXRjaCgpKSB7XG4gICAgICAgICAgdGhpcy5fYXNzaWduVmFsdWUoJycpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgdGV4dCA9IHRoaXMuX2NsZWFuVGV4dChlLmNsaXBib2FyZERhdGE/LmdldERhdGEoJ3RleHQvcGxhaW4nKSA/PyAnJyk7XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkUmFuZ2UgPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk/LmdldFJhbmdlQXQoMCk7XG4gICAgICAgIGlmICghc2VsZWN0ZWRSYW5nZSB8fCAhdGV4dCkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHNlbGVjdGVkUmFuZ2UuZGVsZXRlQ29udGVudHMoKTtcbiAgICAgICAgc2VsZWN0ZWRSYW5nZS5pbnNlcnROb2RlKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHRoaXMucHJlcGFyZVBhc3RlZFRleHQodGV4dCkpKTtcbiAgICAgICAgc2VsZWN0ZWRSYW5nZS5zZXRTdGFydChzZWxlY3RlZFJhbmdlLmVuZENvbnRhaW5lciwgc2VsZWN0ZWRSYW5nZS5lbmRPZmZzZXQpO1xuICAgICAgICB0aGlzLl9kaXNwYXRjaElucHV0RXZlbnQoKTtcbiAgICAgIH0pO1xuICAgICAgLy8gV2hlbiBmb2N1c2luZyBhIHRleHQgaW5wdXQgdmlhIGtleWJvYXJkLCB0aGUgdGV4dCBjb250ZW50IHNob3VsZCBiZSBzZWxlY3RlZC5cbiAgICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcj8uKCdmb2N1cycsICgpID0+IHtcbiAgICAgICAgaWYgKHNiYklucHV0TW9kYWxpdHlEZXRlY3Rvci5tb3N0UmVjZW50TW9kYWxpdHkgPT09ICdrZXlib2FyZCcpIHtcbiAgICAgICAgICAvLyBUT0RPOiBUaGlzIGRvZXMgbm90IHNlZW0gdG8gd29yayBpbiBGaXJlZm94IHdpdGggcmVhZG9ubHkuXG4gICAgICAgICAgd2luZG93LmdldFNlbGVjdGlvbigpPy5zZWxlY3RBbGxDaGlsZHJlbih0aGlzKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/LigndG91Y2hlbmQnLCAoKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLl9yZXF1aXJlc0VtcHR5UGF0Y2goKSkge1xuICAgICAgICAgIHRoaXMuX2Fzc2lnblZhbHVlKCcmbmJzcDsnKTtcbiAgICAgICAgICB0aGlzLl9zZXRDdXJzb3JBdCgwKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/LignY2xpY2snLCAoKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLl9yZXF1aXJlc0VtcHR5UGF0Y2goKSAmJiBzYmJJbnB1dE1vZGFsaXR5RGV0ZWN0b3IubW9zdFJlY2VudE1vZGFsaXR5ID09PSAndG91Y2gnKSB7XG4gICAgICAgICAgdGhpcy5fc2V0Q3Vyc29yQXQoMCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgICAvLyBPbiBibHVyIHRoZSBuYXRpdmUgdGV4dCBpbnB1dCBzY3JvbGxzIHRoZSB0ZXh0IHRvIHRoZSBzdGFydCBvZiB0aGUgdGV4dC5cbiAgICAgIC8vIFdlIG1pbWljIHRoYXQgYnkgcmVzZXR0aW5nIHRoZSBzY3JvbGwgcG9zaXRpb24uXG4gICAgICAvLyBXZSBhbHNvIHVuc2V0IGFueSBzZWxlY3Rpb24gdG8gYWxpZ24gd2l0aCB0aGUgbmF0aXZlIHRleHQgaW5wdXQuXG4gICAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/LihcbiAgICAgICAgJ2JsdXInLFxuICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgd2luZG93LmdldFNlbGVjdGlvbigpPy5yZW1vdmVBbGxSYW5nZXMoKTtcbiAgICAgICAgICBpZiAodGhpcy52YWx1ZSA9PT0gJycpIHtcbiAgICAgICAgICAgIHRoaXMuX2Fzc2lnblZhbHVlKCcnKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5fZW1pdENoYW5nZUlmTmVjZXNzYXJ5KCk7XG4gICAgICAgICAgdGhpcy5zY3JvbGxMZWZ0ID0gMDtcbiAgICAgICAgfSxcbiAgICAgICAgeyBjYXB0dXJlOiB0cnVlIH0sXG4gICAgICApO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBvdmVycmlkZSBpc0Rpc2FibGVkRXh0ZXJuYWxseSgpOiBib29sZWFuIHtcbiAgICAgIHJldHVybiB0aGlzLmZvcm1EaXNhYmxlZDtcbiAgICB9XG5cbiAgICBwdWJsaWMgb3ZlcnJpZGUgY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgICBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpO1xuICAgICAgdGhpcy5pbnRlcm5hbHMuYXJpYU11bHRpTGluZSA9ICdmYWxzZSc7XG4gICAgICB0aGlzLl91cGRhdGVDb250ZW50ZWRpdGFibGUoKTtcblxuICAgICAgLy8gV2Ugd2FudCB0byByZXBsYWNlIGFueSBjb250ZW50IGJ5IGp1c3QgdGhlIHRleHQgY29udGVudC5cbiAgICAgIHRoaXMuX2Fzc2lnblZhbHVlKHRoaXMudmFsdWUpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvdmVycmlkZSBmb2N1cyhvcHRpb25zPzogRm9jdXNPcHRpb25zKTogdm9pZCB7XG4gICAgICBzdXBlci5mb2N1cyhvcHRpb25zKTtcbiAgICAgIC8vIEJ5IGRlZmF1bHQsIHdoZW4gY2FsbGluZyBmb2N1cyBvbiBhbiBpbnB1dCBlbGVtZW50LCB0aGUgY3Vyc29yIGlzIHBsYWNlZFxuICAgICAgLy8gYXQgdGhlIGVuZCBvZiB0aGUgaW5wdXQgdGV4dC4gSG93ZXZlciwgd2l0aCBjb250ZW50ZWRpdGFibGUsIHRoZSBjdXJzb3JcbiAgICAgIC8vIGlzIHBsYWNlZCBhdCB0aGUgYmVnaW5uaW5nLCBzbyB3ZSBtb3ZlIGl0IHRvIHRoZSBlbmQsIGlmIHRoYXQgaXMgdGhlIGNhc2UuXG4gICAgICBpZiAodGhpcy5fY2FuU2VsZWN0KCkpIHtcbiAgICAgICAgY29uc3Qgc2VsZWN0aW9uID0gd2luZG93LmdldFNlbGVjdGlvbigpO1xuICAgICAgICBpZiAoIXNlbGVjdGlvbikge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCByYW5nZSA9IHNlbGVjdGlvbi5yYW5nZUNvdW50ID4gMCA/IHNlbGVjdGlvbi5nZXRSYW5nZUF0KDApIDogbnVsbDtcbiAgICAgICAgaWYgKHJhbmdlICYmIHJhbmdlLnN0YXJ0T2Zmc2V0ICE9PSAwKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fc2V0Q3Vyc29yQXQodGhpcy50ZXh0Q29udGVudCEubGVuZ3RoKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgb3ZlcnJpZGUgYXR0cmlidXRlQ2hhbmdlZENhbGxiYWNrKFxuICAgICAgbmFtZTogc3RyaW5nLFxuICAgICAgb2xkOiBzdHJpbmcgfCBudWxsLFxuICAgICAgdmFsdWU6IHN0cmluZyB8IG51bGwsXG4gICAgKTogdm9pZCB7XG4gICAgICAvKipcbiAgICAgICAqIFRoZSBuYXRpdmUgdGV4dCBpbnB1dCBjaGFuZ2VzIHRoZSB2YWx1ZSBwcm9wZXJ0eSB3aGVuIHRoZSB2YWx1ZSBhdHRyaWJ1dGUgaXNcbiAgICAgICAqIGNoYW5nZWQgdW5kZXIgdGhlIGNvbmRpdGlvbiB0aGF0IG5vIGlucHV0IGV2ZW50IGhhcyBvY2N1cnJlZCBzaW5jZSBjcmVhdGlvblxuICAgICAgICogb3IgdGhlIGxhc3QgZm9ybSByZXNldC5cbiAgICAgICAqL1xuICAgICAgaWYgKG5hbWUgIT09ICd2YWx1ZScgfHwgIXRoaXMubWF0Y2hlcz8uKCc6c3RhdGUoaW50ZXJhY3RlZCknKSkge1xuICAgICAgICBzdXBlci5hdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2sobmFtZSwgb2xkLCB2YWx1ZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSXMgY2FsbGVkIHdoZW5ldmVyIHRoZSBmb3JtIGlzIGJlaW5nIHJlc2V0LlxuICAgICAqXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgcHVibGljIG92ZXJyaWRlIGZvcm1SZXNldENhbGxiYWNrKCk6IHZvaWQge1xuICAgICAgdGhpcy5pbnRlcm5hbHMuc3RhdGVzLmRlbGV0ZSgnaW50ZXJhY3RlZCcpO1xuICAgICAgdGhpcy52YWx1ZSA9IHRoaXMuZ2V0QXR0cmlidXRlKCd2YWx1ZScpID8/ICcnO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqICBDYWxsZWQgd2hlbiB0aGUgYnJvd3NlciBpcyB0cnlpbmcgdG8gcmVzdG9yZSBlbGVtZW504oCZcyBzdGF0ZSB0byBzdGF0ZSBpbiB3aGljaCBjYXNlXG4gICAgICogIHJlYXNvbiBpcyBcInJlc3RvcmVcIiwgb3Igd2hlbiB0aGUgYnJvd3NlciBpcyB0cnlpbmcgdG8gZnVsZmlsbCBhdXRvZmlsbCBvbiBiZWhhbGYgb2ZcbiAgICAgKiAgdXNlciBpbiB3aGljaCBjYXNlIHJlYXNvbiBpcyBcImF1dG9jb21wbGV0ZVwiLlxuICAgICAqICBJbiB0aGUgY2FzZSBvZiBcInJlc3RvcmVcIiwgc3RhdGUgaXMgYSBzdHJpbmcsIEZpbGUsIG9yIEZvcm1EYXRhIG9iamVjdFxuICAgICAqICBwcmV2aW91c2x5IHNldCBhcyB0aGUgc2Vjb25kIGFyZ3VtZW50IHRvIHNldEZvcm1WYWx1ZS5cbiAgICAgKlxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHB1YmxpYyBvdmVycmlkZSBmb3JtU3RhdGVSZXN0b3JlQ2FsbGJhY2soXG4gICAgICBzdGF0ZTogRm9ybVJlc3RvcmVTdGF0ZSB8IG51bGwsXG4gICAgICBfcmVhc29uOiBGb3JtUmVzdG9yZVJlYXNvbixcbiAgICApOiB2b2lkIHtcbiAgICAgIGlmIChzdGF0ZSAmJiB0eXBlb2Ygc3RhdGUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHRoaXMudmFsdWUgPSBzdGF0ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBNYWtlcyB0aGUgc2VsZWN0aW9uIGVxdWFsIHRvIHRoZSBjdXJyZW50IG9iamVjdC5cbiAgICAgKlxuICAgICAqIEBsaW5rIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2RvY3MvV2ViL0FQSS9IVE1MSW5wdXRFbGVtZW50L3NlbGVjdFxuICAgICAqL1xuICAgIHB1YmxpYyBzZWxlY3QoKTogdm9pZCB7XG4gICAgICB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk/LnNlbGVjdEFsbENoaWxkcmVuKHRoaXMpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBvdmVycmlkZSBmaXJzdFVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXM6IFByb3BlcnR5VmFsdWVzPHRoaXM+KTogdm9pZCB7XG4gICAgICBzdXBlci5maXJzdFVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXMpO1xuXG4gICAgICAvLyBJZiB0aGUgdmFsdWUgd2FzIGFzc2lnbmVkIGJlZm9yZSBmaXJzdFVwZGF0ZSwgd2UgaGF2ZSB0b1xuICAgICAgLy8gd3JpdGUgaXQgdGhlIGRvY3VtZW50IHRvIGJlIHZpc3VhbGx5IHNlZW5cbiAgICAgIGlmICh0aGlzLnZhbHVlICYmICF0aGlzLmlubmVySFRNTC5sZW5ndGgpIHtcbiAgICAgICAgdGhpcy5fYXNzaWduVmFsdWUodGhpcy52YWx1ZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIG92ZXJyaWRlIHJlcXVlc3RVcGRhdGUoXG4gICAgICBuYW1lPzogUHJvcGVydHlLZXksXG4gICAgICBvbGRWYWx1ZT86IHVua25vd24sXG4gICAgICBvcHRpb25zPzogUHJvcGVydHlEZWNsYXJhdGlvbixcbiAgICApOiB2b2lkIHtcbiAgICAgIHN1cGVyLnJlcXVlc3RVcGRhdGUobmFtZSwgb2xkVmFsdWUsIG9wdGlvbnMpO1xuICAgICAgaWYgKFxuICAgICAgICB0aGlzLmlzQ29ubmVjdGVkICYmXG4gICAgICAgIChuYW1lID09PSAnZGlzYWJsZWQnIHx8IG5hbWUgPT09ICdmb3JtRGlzYWJsZWQnIHx8IG5hbWUgPT09ICdyZWFkT25seScpXG4gICAgICApIHtcbiAgICAgICAgdGhpcy5fdXBkYXRlQ29udGVudGVkaXRhYmxlKCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIHNob3VsZFZhbGlkYXRlKG5hbWU6IFByb3BlcnR5S2V5IHwgdW5kZWZpbmVkKTogYm9vbGVhbiB7XG4gICAgICByZXR1cm4gc3VwZXIuc2hvdWxkVmFsaWRhdGUobmFtZSkgfHwgbmFtZSA9PT0gJ3ZhbHVlJyB8fCBuYW1lID09PSAncmVxdWlyZWQnO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBvdmVycmlkZSB2YWxpZGF0ZSgpOiB2b2lkIHtcbiAgICAgIHN1cGVyLnZhbGlkYXRlKCk7XG4gICAgICBpZiAodGhpcy5yZXF1aXJlZCAmJiAhdGhpcy52YWx1ZSkge1xuICAgICAgICB0aGlzLnNldFZhbGlkaXR5RmxhZygndmFsdWVNaXNzaW5nJywgaTE4bklucHV0UmVxdWlyZWRbdGhpcy5sYW5ndWFnZS5jdXJyZW50XSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnJlbW92ZVZhbGlkaXR5RmxhZygndmFsdWVNaXNzaW5nJyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGlzU2VsZWN0ZWQoKTogYm9vbGVhbiB7XG4gICAgICBpZiAoaXNTZXJ2ZXIpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgY29uc3Qgc2VsZWN0aW9uID0gd2luZG93LmdldFNlbGVjdGlvbigpO1xuICAgICAgcmV0dXJuICEhc2VsZWN0aW9uICYmIHNlbGVjdGlvbi5yYW5nZUNvdW50ID4gMCAmJiB0aGlzLmNvbnRhaW5zKHNlbGVjdGlvbi5hbmNob3JOb2RlKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgcHJlcGFyZVBhc3RlZFRleHQodGV4dDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgIHJldHVybiB0ZXh0O1xuICAgIH1cblxuICAgIHByaXZhdGUgX3JlcXVpcmVzRW1wdHlQYXRjaCgpOiBib29sZWFuIHtcbiAgICAgIC8vIEluIEJsaW5rLCBhIGNvbnRlbnRlZGl0YWJsZSBlbGVtZW50IHdpdGggZW1wdHkgY29udGVudCB3aWxsIGNyYXNoXG4gICAgICAvLyB1cG9uIHJlY2VpdmluZyBmb2N1cywgd2hlbiBpbiBNb2JpbGUgbW9kZS5cbiAgICAgIC8vIFRvIHByZXZlbnQgdGhpcywgd2UgcGF0Y2ggdGhlIGVtcHR5IHN0YXRlIGJ5IGluc2VydGluZyBhIG5vbi1icmVha2luZyBzcGFjZS5cbiAgICAgIHJldHVybiBpc1NlcnZlclxuICAgICAgICA/IGZhbHNlXG4gICAgICAgIDogaXNCbGluayAmJiB0aGlzLnZhbHVlID09PSAnJyAmJiB3aW5kb3cubWF0Y2hNZWRpYShTYmJNZWRpYVF1ZXJ5UG9pbnRlckNvYXJzZSkubWF0Y2hlcztcbiAgICB9XG5cbiAgICBwcml2YXRlIF9hc3NpZ25WYWx1ZSh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgICB0aGlzLmlubmVySFRNTCA9IHZhbHVlO1xuICAgIH1cblxuICAgIHByaXZhdGUgX3NldEN1cnNvckF0KHBvc2l0aW9uOiBudW1iZXIpOiB2b2lkIHtcbiAgICAgIGNvbnN0IHNlbGVjdGlvbiA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKTtcbiAgICAgIGlmICghc2VsZWN0aW9uKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgY29uc3QgcmFuZ2UgPSBkb2N1bWVudC5jcmVhdGVSYW5nZSgpO1xuICAgICAgcmFuZ2Uuc2V0U3RhcnQodGhpcy5maXJzdENoaWxkISwgcG9zaXRpb24pO1xuICAgICAgcmFuZ2UuY29sbGFwc2UodHJ1ZSk7XG4gICAgICBzZWxlY3Rpb24ucmVtb3ZlQWxsUmFuZ2VzKCk7XG4gICAgICBzZWxlY3Rpb24uYWRkUmFuZ2UocmFuZ2UpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2NsZWFuVGV4dCh2YWx1ZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgIC8vIFRoZSBuYXRpdmUgdGV4dCBpbnB1dCByZW1vdmVzIGFsbCBuZXdsaW5lIGNoYXJhY3RlcnMgaWYgcGFzc2VkIHRvIHRoZSB2YWx1ZSBwcm9wZXJ0eVxuICAgICAgcmV0dXJuIHZhbHVlID09PSBudWxsID8gJycgOiBgJHt2YWx1ZX1gLnJlcGxhY2UoL1tcXG5cXHJdKy9nLCAnJyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfZGlzcGF0Y2hJbnB1dEV2ZW50KCk6IHZvaWQge1xuICAgICAgLyoqIFRoZSBpbnB1dCBldmVudCBmaXJlcyB3aGVuIHRoZSB2YWx1ZSBoYXMgYmVlbiBjaGFuZ2VkIGFzIGEgZGlyZWN0IHJlc3VsdCBvZiBhIHVzZXIgYWN0aW9uLiAqL1xuICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBJbnB1dEV2ZW50KCdpbnB1dCcsIHsgYnViYmxlczogdHJ1ZSwgY29tcG9zZWQ6IHRydWUgfSkpO1xuICAgIH1cblxuICAgIEBldmVudE9wdGlvbnMoeyBwYXNzaXZlOiB0cnVlIH0pXG4gICAgcHJpdmF0ZSBfY2xlYW5DaGlsZHJlbigpOiB2b2lkIHtcbiAgICAgIGlmICh0aGlzLmNoaWxkRWxlbWVudENvdW50KSB7XG4gICAgICAgIGZvciAoY29uc3QgZWxlbWVudCBvZiB0aGlzLmNoaWxkcmVuKSB7XG4gICAgICAgICAgZWxlbWVudC5yZW1vdmUoKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgX3VwZGF0ZUNvbnRlbnRlZGl0YWJsZSgpOiB2b2lkIHtcbiAgICAgIGlmICghaXNTZXJ2ZXIgJiYgdGhpcy5pc0Nvbm5lY3RlZCkge1xuICAgICAgICB0aGlzLmludGVybmFscy5hcmlhUmVhZE9ubHkgPSB0aGlzLnJlYWRPbmx5ID8gJ3RydWUnIDogbnVsbDtcbiAgICAgICAgdGhpcy5pbnRlcm5hbHMuYXJpYURpc2FibGVkID0gdGhpcy5kaXNhYmxlZCA/ICd0cnVlJyA6IG51bGw7XG4gICAgICAgIC8vIFRPRE8oMjAyNik6IEZpcmVmb3ggc3VwcG9ydHMgcGxhaW50ZXh0LW9ubHkgc2luY2UgdmVyc2lvbiAxMzYgKE1hcmNoIDIwMjUpLlxuICAgICAgICAvLyBVbnRpbCB0aGlzIGlzIHBhcnQgb2Ygb3VyIGJhc2VsaW5lLCB3ZSBzaG91bGQgZmVhdHVyZSBjaGVjayB0byBlbmFibGUgaXQuXG4gICAgICAgIGNvbnN0IHZhbHVlID1cbiAgICAgICAgICB0aGlzLmRpc2FibGVkIHx8IHRoaXMucmVhZE9ubHlcbiAgICAgICAgICAgID8gJ2ZhbHNlJ1xuICAgICAgICAgICAgOiBwbGFpbnRleHRPbmx5U3VwcG9ydGVkXG4gICAgICAgICAgICAgID8gJ3BsYWludGV4dC1vbmx5J1xuICAgICAgICAgICAgICA6ICd0cnVlJztcbiAgICAgICAgdGhpcy5zZXRBdHRyaWJ1dGUoJ2NvbnRlbnRlZGl0YWJsZScsIHZhbHVlKTtcbiAgICAgICAgLy8gSW4gdGhlIHJlYWRvbmx5IGNhc2UsIHdlIGRpc2FibGUgY29udGVudGVkaXRhYmxlLCBidXQgaXQgc3RpbGxcbiAgICAgICAgLy8gbmVlZHMgdG8gYmUgZm9jdXNhYmxlLiBXZSBhY2hpZXZlIHRoaXMgYnkgc2V0dGluZyB0YWJpbmRleCBpbiB0aGF0IGNhc2UuXG4gICAgICAgIGlmICh0aGlzLnJlYWRPbmx5KSB7XG4gICAgICAgICAgdGhpcy5zZXRBdHRyaWJ1dGUoJ3RhYmluZGV4JywgJzAnKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLnJlbW92ZUF0dHJpYnV0ZSgndGFiaW5kZXgnKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgX2VtaXRDaGFuZ2VJZk5lY2Vzc2FyeSgpOiB2b2lkIHtcbiAgICAgIGlmICh0aGlzLl9zaG91bGRFbWl0Q2hhbmdlKSB7XG4gICAgICAgIHRoaXMuX3Nob3VsZEVtaXRDaGFuZ2UgPSBmYWxzZTtcbiAgICAgICAgLyoqIFRoZSBjaGFuZ2UgZXZlbnQgaXMgZmlyZWQgd2hlbiB0aGUgdXNlciBtb2RpZmllcyB0aGUgZWxlbWVudCdzIHZhbHVlLiBVbmxpa2UgdGhlIGlucHV0IGV2ZW50LCB0aGUgY2hhbmdlIGV2ZW50IGlzIG5vdCBuZWNlc3NhcmlseSBmaXJlZCBmb3IgZWFjaCBhbHRlcmF0aW9uIHRvIGFuIGVsZW1lbnQncyB2YWx1ZS4gKi9cbiAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgnY2hhbmdlJywgeyBidWJibGVzOiB0cnVlIH0pKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIF9jYW5TZWxlY3QoKTogYm9vbGVhbiB7XG4gICAgICByZXR1cm4gIWlzU2VydmVyICYmICF0aGlzLmRpc2FibGVkICYmICF0aGlzLnJlYWRPbmx5ICYmICEhdGhpcy52YWx1ZTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyKCk6IHVua25vd24ge1xuICAgICAgcmV0dXJuIGh0bWxgPHNsb3QgQHNsb3RjaGFuZ2U9JHt0aGlzLl9jbGVhbkNoaWxkcmVufT48L3Nsb3Q+YDtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gU2JiRm9ybUFzc29jaWF0ZWRJbnB1dEVsZW1lbnQgYXMgdW5rbm93biBhcyBBYnN0cmFjdENvbnN0cnVjdG9yPFNiYkZvcm1Bc3NvY2lhdGVkSW5wdXRNaXhpblR5cGU+ICZcbiAgICBUO1xufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztBQW9EQSxJQUFNLGtDQUEwQztDQUM5QyxJQUFJLFVBQ0YsT0FBTztDQUdULE1BQU0sTUFBTSxTQUFTLGNBQWMsS0FBSztDQUN4QyxJQUFJLGFBQWEsbUJBQW1CLGdCQUFnQjtDQUlwRCxPQUFPLElBQUksb0JBQW9CO0FBQ2pDO0FBQ0EsSUFBTSx5QkFBeUIsMEJBQXlCOzs7O0FBTXhELElBQWEsK0JBR1gsZUFDNEQ7Q0F1YTVELGNBdGE0QztvQkFDbEMsaUJBQWlCLGlCQUFpQixpQkFBaUIsdUJBQXVCLFVBQVUsQ0FBQyxDQUFDLENBQUM7Ozs7O2VBRGxGLHNDQUNMLFlBQXdGOzs7NkJBaUMvRixTQUFRLENBQUU7bUNBY1YsU0FBUyxFQUFFLFdBQVcsTUFBSyxDQUFFLENBQUM7a0NBcVU5QixhQUFhLEVBQUUsU0FBUyxLQUFJLENBQUUsQ0FBQztJQWxWaEMsYUFBQSxNQUFBLE1BQUEsdUJBQUE7S0FBQSxNQUFBO0tBQUEsTUFBQTtLQUFBLFFBQUE7S0FBQSxTQUFBO0tBQUEs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
@@ -19,7 +19,7 @@ export declare abstract class SbbFormAssociatedMixinType {
19
19
  get validity(): ValidityState;
20
20
  get validationMessage(): string;
21
21
  get willValidate(): boolean;
22
- protected formDisabled: boolean;
22
+ protected accessor formDisabled: boolean;
23
23
  checkValidity(): boolean;
24
24
  reportValidity(): boolean;
25
25
  setCustomValidity(message: string): void;
@@ -1 +1 @@
1
- {"version":3,"file":"form-associated-mixin.d.ts","sourceRoot":"","sources":["../../../../../src/elements/core/mixins/form-associated-mixin.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAG9D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAE5D,OAAO,CAAC,MAAM,CAAC;IACb;;OAEG;IACH,UAAU,mBAAmB;KAAG;IAChC,UAAU,aAAc,SAAQ,mBAAmB;KAAG;IACtD,UAAU,kBAAmB,SAAQ,OAAO,CAAC,mBAAmB,CAAC;KAAG;CACrE;AAoCD,MAAM,CAAC,OAAO,CAAC,QAAQ,OAAO,0BAA0B;IACtD,IAAW,IAAI,IAAI,eAAe,GAAG,IAAI,CAAC;IAC1C,SAAgB,IAAI,EAAE,MAAM,CAAC;IAC7B,IAAW,IAAI,IAAI,MAAM,CAAC;IAE1B,kBAAyB,KAAK,EAAE,OAAO,CAAC;IAExC,IAAW,QAAQ,IAAI,aAAa,CAAC;IACrC,IAAW,iBAAiB,IAAI,MAAM,CAAC;IACvC,IAAW,YAAY,IAAI,OAAO,CAAC;IAEnC,SAAS,CAAC,YAAY,EAAE,OAAO,CAAC;IAEzB,aAAa,IAAI,OAAO;IACxB,cAAc,IAAI,OAAO;IACzB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAExC,sBAAsB,CAAC,CAAC,IAAI,EAAE,eAAe,GAAG,IAAI,GAAG,IAAI;IAC3D,oBAAoB,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI;aACpC,iBAAiB,IAAI,IAAI;aACzB,wBAAwB,CACtC,KAAK,EAAE,gBAAgB,GAAG,IAAI,EAC9B,MAAM,EAAE,iBAAiB,GACxB,IAAI;IAEP,SAAS,CAAC,eAAe,IAAI,IAAI;IACjC,SAAS,CAAC,SAAS,CAAC,IAAI,gBAAgB;IACxC,SAAS,CAAC,eAAe,CAAC,CAAC,SAAS,MAAM,kBAAkB,EAC1D,IAAI,EAAE,CAAC,EACP,OAAO,EAAE,MAAM,EACf,SAAS,CAAC,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAChC,IAAI;IACP,SAAS,CAAC,kBAAkB,CAAC,CAAC,SAAS,MAAM,kBAAkB,EAAE,IAAI,EAAE,CAAC,GAAG,IAAI;IAC/E,SAAS,CAAC,QAAQ,IAAI,IAAI;IAC1B,SAAS,CAAC,cAAc,CAAC,IAAI,EAAE,WAAW,GAAG,SAAS,GAAG,OAAO;CACjE;AAED;;GAEG;AAEH,eAAO,MAAM,sBAAsB,GAAI,CAAC,SAAS,mBAAmB,CAAC,UAAU,CAAC,EAC9E,YAAY,CAAC,KACZ,mBAAmB,CAAC,0BAA0B,CAAC,GAAG,CAgUpD,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,QAAQ,GAAG,IAAI,CAAC;AAExD;;;GAGG;AACH,MAAM,MAAM,iBAAiB,GAAG,SAAS,GAAG,cAAc,CAAC"}
1
+ {"version":3,"file":"form-associated-mixin.d.ts","sourceRoot":"","sources":["../../../../../src/elements/core/mixins/form-associated-mixin.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAG9D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAE5D,OAAO,CAAC,MAAM,CAAC;IACb;;OAEG;IACH,UAAU,mBAAmB;KAAG;IAChC,UAAU,aAAc,SAAQ,mBAAmB;KAAG;IACtD,UAAU,kBAAmB,SAAQ,OAAO,CAAC,mBAAmB,CAAC;KAAG;CACrE;AAoCD,MAAM,CAAC,OAAO,CAAC,QAAQ,OAAO,0BAA0B;IACtD,IAAW,IAAI,IAAI,eAAe,GAAG,IAAI,CAAC;IAC1C,SAAgB,IAAI,EAAE,MAAM,CAAC;IAC7B,IAAW,IAAI,IAAI,MAAM,CAAC;IAE1B,kBAAyB,KAAK,EAAE,OAAO,CAAC;IAExC,IAAW,QAAQ,IAAI,aAAa,CAAC;IACrC,IAAW,iBAAiB,IAAI,MAAM,CAAC;IACvC,IAAW,YAAY,IAAI,OAAO,CAAC;IAEnC,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAElC,aAAa,IAAI,OAAO;IACxB,cAAc,IAAI,OAAO;IACzB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAExC,sBAAsB,CAAC,CAAC,IAAI,EAAE,eAAe,GAAG,IAAI,GAAG,IAAI;IAC3D,oBAAoB,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI;aACpC,iBAAiB,IAAI,IAAI;aACzB,wBAAwB,CACtC,KAAK,EAAE,gBAAgB,GAAG,IAAI,EAC9B,MAAM,EAAE,iBAAiB,GACxB,IAAI;IAEP,SAAS,CAAC,eAAe,IAAI,IAAI;IACjC,SAAS,CAAC,SAAS,CAAC,IAAI,gBAAgB;IACxC,SAAS,CAAC,eAAe,CAAC,CAAC,SAAS,MAAM,kBAAkB,EAC1D,IAAI,EAAE,CAAC,EACP,OAAO,EAAE,MAAM,EACf,SAAS,CAAC,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAChC,IAAI;IACP,SAAS,CAAC,kBAAkB,CAAC,CAAC,SAAS,MAAM,kBAAkB,EAAE,IAAI,EAAE,CAAC,GAAG,IAAI;IAC/E,SAAS,CAAC,QAAQ,IAAI,IAAI;IAC1B,SAAS,CAAC,cAAc,CAAC,IAAI,EAAE,WAAW,GAAG,SAAS,GAAG,OAAO;CACjE;AAED;;GAEG;AAEH,eAAO,MAAM,sBAAsB,GAAI,CAAC,SAAS,mBAAmB,CAAC,UAAU,CAAC,EAC9E,YAAY,CAAC,KACZ,mBAAmB,CAAC,0BAA0B,CAAC,GAAG,CAgUpD,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,QAAQ,GAAG,IAAI,CAAC;AAExD;;;GAGG;AACH,MAAM,MAAM,iBAAiB,GAAG,SAAS,GAAG,cAAc,CAAC"}
@@ -291,4 +291,4 @@ var SbbFormAssociatedMixin = (superClass) => {
291
291
  //#endregion
292
292
  export { SbbFormAssociatedMixin };
293
293
 
294
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1hc3NvY2lhdGVkLW1peGluLmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb3JlL21peGlucy9mb3JtLWFzc29jaWF0ZWQtbWl4aW4udHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LW9iamVjdC10eXBlICovXG5pbXBvcnQgdHlwZSB7IFByb3BlcnR5RGVjbGFyYXRpb24sIFByb3BlcnR5VmFsdWVzIH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IHByb3BlcnR5LCBzdGF0ZSB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcblxuaW1wb3J0IHR5cGUgeyBTYmJFbGVtZW50IH0gZnJvbSAnLi4vYmFzZS1lbGVtZW50cy9lbGVtZW50LnRzJztcbmltcG9ydCB7IGlzV2Via2l0IH0gZnJvbSAnLi4vZG9tL3BsYXRmb3JtLnRzJztcblxuaW1wb3J0IHR5cGUgeyBBYnN0cmFjdENvbnN0cnVjdG9yIH0gZnJvbSAnLi9jb25zdHJ1Y3Rvci50cyc7XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgLyoqXG4gICAqIERlZmluZXMgY3VzdG9tIHZhbGlkaXR5IHN0YXRlIHByb3BlcnRpZXMuXG4gICAqL1xuICBpbnRlcmZhY2UgQ3VzdG9tVmFsaWRpdHlTdGF0ZSB7fVxuICBpbnRlcmZhY2UgVmFsaWRpdHlTdGF0ZSBleHRlbmRzIEN1c3RvbVZhbGlkaXR5U3RhdGUge31cbiAgaW50ZXJmYWNlIFZhbGlkaXR5U3RhdGVGbGFncyBleHRlbmRzIFBhcnRpYWw8Q3VzdG9tVmFsaWRpdHlTdGF0ZT4ge31cbn1cblxuY29uc3QgdmFsaWRpdHlLZXlzOiBSZXF1aXJlZDxPbWl0PFZhbGlkaXR5U3RhdGVGbGFncywga2V5b2YgQ3VzdG9tVmFsaWRpdHlTdGF0ZT4+ID0ge1xuICBiYWRJbnB1dDogZmFsc2UsXG4gIGN1c3RvbUVycm9yOiBmYWxzZSxcbiAgcGF0dGVybk1pc21hdGNoOiBmYWxzZSxcbiAgcmFuZ2VPdmVyZmxvdzogZmFsc2UsXG4gIHJhbmdlVW5kZXJmbG93OiBmYWxzZSxcbiAgc3RlcE1pc21hdGNoOiBmYWxzZSxcbiAgdG9vTG9uZzogZmFsc2UsXG4gIHRvb1Nob3J0OiBmYWxzZSxcbiAgdHlwZU1pc21hdGNoOiBmYWxzZSxcbiAgdmFsdWVNaXNzaW5nOiBmYWxzZSxcbn07XG4vLyBXZSBuZWVkIFZhbGlkaXR5U3RhdGUgaW4gdGhlIGdsb2JhbCBjb250ZXh0LCBhcyB3ZSBjaGVjayB0aGUgcHJvdG90eXBlIGZvclxuLy8gZXh0ZW5zaW9ucy4gSW4gZW52aXJvbm1lbnRzIHdoZXJlIHRoYXQgaXMgbm90IHRoZSBjYXNlIChlLmcuIE5vZGUuanMpIHdlXG4vLyBwYXRjaCBpdCB3aXRoIGEgbWluaW1hbCBzaGltLlxuaWYgKHR5cGVvZiBWYWxpZGl0eVN0YXRlID09PSAndW5kZWZpbmVkJykge1xuICBjb25zdCB2YWxpZGl0eUNsYXNzID0gY2xhc3MgVmFsaWRpdHlTdGF0ZSB7XG4gICAgcHVibGljIGdldCB2YWxpZCgpOiBib29sZWFuIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBwcml2YXRlIGNvbnN0cnVjdG9yKCkge1xuICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignSWxsZWdhbCBjb25zdHJ1Y3RvcicpO1xuICAgIH1cbiAgfTtcbiAgT2JqZWN0LmVudHJpZXModmFsaWRpdHlLZXlzKS5mb3JFYWNoKChba2V5LCB2YWx1ZV0pID0+XG4gICAgT2JqZWN0LmFzc2lnbih2YWxpZGl0eUNsYXNzLnByb3RvdHlwZSwge1xuICAgICAgZ2V0IFtrZXldKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICB9LFxuICAgIH0pLFxuICApO1xuICBnbG9iYWxUaGlzLlZhbGlkaXR5U3RhdGUgPSB2YWxpZGl0eUNsYXNzIGFzIHVua25vd24gYXMgdHlwZW9mIFZhbGlkaXR5U3RhdGU7XG59XG5cbmV4cG9ydCBkZWNsYXJlIGFic3RyYWN0IGNsYXNzIFNiYkZvcm1Bc3NvY2lhdGVkTWl4aW5UeXBlIHtcbiAgcHVibGljIGdldCBmb3JtKCk6IEhUTUxGb3JtRWxlbWVudCB8IG51bGw7XG4gIHB1YmxpYyBhY2Nlc3NvciBuYW1lOiBzdHJpbmc7XG4gIHB1YmxpYyBnZXQgdHlwZSgpOiBzdHJpbmc7XG5cbiAgcHVibGljIGFic3RyYWN0IGFjY2Vzc29yIHZhbHVlOiB1bmtub3duO1xuXG4gIHB1YmxpYyBnZXQgdmFsaWRpdHkoKTogVmFsaWRpdHlTdGF0ZTtcbiAgcHVibGljIGdldCB2YWxpZGF0aW9uTWVzc2FnZSgpOiBzdHJpbmc7XG4gIHB1YmxpYyBnZXQgd2lsbFZhbGlkYXRlKCk6IGJvb2xlYW47XG5cbiAgcHJvdGVjdGVkIGZvcm1EaXNhYmxlZDogYm9vbGVhbjtcblxuICBwdWJsaWMgY2hlY2tWYWxpZGl0eSgpOiBib29sZWFuO1xuICBwdWJsaWMgcmVwb3J0VmFsaWRpdHkoKTogYm9vbGVhbjtcbiAgcHVibGljIHNldEN1c3RvbVZhbGlkaXR5KG1lc3NhZ2U6IHN0cmluZyk6IHZvaWQ7XG5cbiAgcHVibGljIGZvcm1Bc3NvY2lhdGVkQ2FsbGJhY2s/KGZvcm06IEhUTUxGb3JtRWxlbWVudCB8IG51bGwpOiB2b2lkO1xuICBwdWJsaWMgZm9ybURpc2FibGVkQ2FsbGJhY2soZGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkO1xuICBwdWJsaWMgYWJzdHJhY3QgZm9ybVJlc2V0Q2FsbGJhY2soKTogdm9pZDtcbiAgcHVibGljIGFic3RyYWN0IGZvcm1TdGF0ZVJlc3RvcmVDYWxsYmFjayhcbiAgICBzdGF0ZTogRm9ybVJlc3RvcmVTdGF0ZSB8IG51bGwsXG4gICAgcmVhc29uOiBGb3JtUmVzdG9yZVJlYXNvbixcbiAgKTogdm9pZDtcblxuICBwcm90ZWN0ZWQgdXBkYXRlRm9ybVZhbHVlKCk6IHZvaWQ7XG4gIHByb3RlY3RlZCBmb3JtU3RhdGU/KCk6IEZvcm1SZXN0b3JlU3RhdGU7XG4gIHByb3RlY3RlZCBzZXRWYWxpZGl0eUZsYWc8VCBleHRlbmRzIGtleW9mIFZhbGlkaXR5U3RhdGVGbGFncz4oXG4gICAgZmxhZzogVCxcbiAgICBtZXNzYWdlOiBzdHJpbmcsXG4gICAgZmxhZ1ZhbHVlPzogVmFsaWRpdHlTdGF0ZUZsYWdzW1RdLFxuICApOiB2b2lkO1xuICBwcm90ZWN0ZWQgcmVtb3ZlVmFsaWRpdHlGbGFnPFQgZXh0ZW5kcyBrZXlvZiBWYWxpZGl0eVN0YXRlRmxhZ3M+KGZsYWc6IFQpOiB2b2lkO1xuICBwcm90ZWN0ZWQgdmFsaWRhdGUoKTogdm9pZDtcbiAgcHJvdGVjdGVkIHNob3VsZFZhbGlkYXRlKG5hbWU6IFByb3BlcnR5S2V5IHwgdW5kZWZpbmVkKTogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBUaGUgRm9ybUFzc29jaWF0ZWRNaXhpbiBlbmFibGVzIG5hdGl2ZSBmb3JtIHN1cHBvcnQgZm9yIGN1c3RvbSBjb250cm9scy5cbiAqL1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuZXhwb3J0IGNvbnN0IFNiYkZvcm1Bc3NvY2lhdGVkTWl4aW4gPSA8VCBleHRlbmRzIEFic3RyYWN0Q29uc3RydWN0b3I8U2JiRWxlbWVudD4+KFxuICBzdXBlckNsYXNzOiBULFxuKTogQWJzdHJhY3RDb25zdHJ1Y3RvcjxTYmJGb3JtQXNzb2NpYXRlZE1peGluVHlwZT4gJiBUID0+IHtcbiAgYWJzdHJhY3QgY2xhc3MgU2JiRm9ybUFzc29jaWF0ZWRFbGVtZW50XG4gICAgZXh0ZW5kcyBzdXBlckNsYXNzXG4gICAgaW1wbGVtZW50cyBQYXJ0aWFsPFNiYkZvcm1Bc3NvY2lhdGVkTWl4aW5UeXBlPlxuICB7XG4gICAgcHVibGljIHN0YXRpYyBmb3JtQXNzb2NpYXRlZCA9IHRydWU7XG5cbiAgICBwdWJsaWMgYWJzdHJhY3QgYWNjZXNzb3IgdmFsdWU6IHVua25vd247XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHRoZSBmb3JtIG93bmVyIG9mIHRoaXMgZWxlbWVudC5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IGZvcm0oKTogSFRNTEZvcm1FbGVtZW50IHwgbnVsbCB7XG4gICAgICByZXR1cm4gdGhpcy5pbnRlcm5hbHMuZm9ybTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBOYW1lIG9mIHRoZSBmb3JtIGVsZW1lbnQuIFdpbGwgYmUgcmVhZCBmcm9tIG5hbWUgYXR0cmlidXRlLlxuICAgICAqXG4gICAgICogQGRlc2NyaXB0aW9uIERldmVsb3BlciBub3RlOiBJbiB0aGlzIGNhc2UgdXBkYXRpbmcgdGhlIGF0dHJpYnV0ZSBtdXN0IGJlIHN5bmNocm9ub3VzLlxuICAgICAqIER1ZSB0byB0aGlzIGl0IGlzIGltcGxlbWVudGVkIGFzIGEgZ2V0dGVyL3NldHRlciBhbmQgdGhlIGF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFjaygpIGhhbmRsZXMgdGhlIGRpZmYgY2hlY2suXG4gICAgICovXG4gICAgQHByb3BlcnR5KClcbiAgICBwdWJsaWMgc2V0IG5hbWUobmFtZTogc3RyaW5nKSB7XG4gICAgICB0aGlzLnNldEF0dHJpYnV0ZSgnbmFtZScsIGAke25hbWV9YCk7XG5cbiAgICAgIC8vIEZvciBgRm9ybURhdGFgIHZhbHVlcywgd2UgaGF2ZSB0byBtYW51YWxseSB1cGRhdGUgdGhlIGZpZWxkTmFtZSBrZXlcbiAgICAgIHRoaXMudXBkYXRlRm9ybVZhbHVlKCk7XG4gICAgfVxuICAgIHB1YmxpYyBnZXQgbmFtZSgpOiBzdHJpbmcge1xuICAgICAgcmV0dXJuIHRoaXMuZ2V0QXR0cmlidXRlKCduYW1lJykgPz8gJyc7XG4gICAgfVxuXG4gICAgLyoqIEBpbnRlcm5hbCAqL1xuICAgIHB1YmxpYyBnZXQgdHlwZSgpOiBzdHJpbmcge1xuICAgICAgcmV0dXJuIHRoaXMubG9jYWxOYW1lO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdGhlIFZhbGlkaXR5U3RhdGUgb2JqZWN0IGZvciB0aGlzIGVsZW1lbnQuXG4gICAgICovXG4gICAgcHVibGljIGdldCB2YWxpZGl0eSgpOiBWYWxpZGl0eVN0YXRlIHtcbiAgICAgIHJldHVybiB0aGlzLmludGVybmFscy52YWxpZGl0eTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHRoZSBjdXJyZW50IGVycm9yIG1lc3NhZ2UsIGlmIGF2YWlsYWJsZSwgd2hpY2ggY29ycmVzcG9uZHNcbiAgICAgKiB0byB0aGUgY3VycmVudCB2YWxpZGF0aW9uIHN0YXRlLlxuICAgICAqIFBsZWFzZSBub3RlIHRoYXQgb25seSBvbmUgbWVzc2FnZSBpcyByZXR1cm5lZCBhdCBhIHRpbWUgKGUuZy4gaWZcbiAgICAgKiBtdWx0aXBsZSB2YWxpZGl0eSBzdGF0ZXMgYXJlIGludmFsaWQsIG9ubHkgdGhlIGNocm9ub2xvZ2ljYWxseSBmaXJzdCBvbmVcbiAgICAgKiBpcyByZXR1cm5lZCB1bnRpbCBpdCBpcyBmaXhlZCwgYXQgd2hpY2ggcG9pbnQgdGhlIG5leHQgbWVzc2FnZSBtaWdodCBiZVxuICAgICAqIHJldHVybmVkLCBpZiBpdCBpcyBzdGlsbCBhcHBsaWNhYmxlKS4gQWxzbywgYSBjdXN0b20gdmFsaWRpdHkgbWVzc2FnZVxuICAgICAqIChzZWUgYmVsb3cpIGhhcyBwcmVjZWRlbmNlIG92ZXIgbmF0aXZlIHZhbGlkYXRpb24gbWVzc2FnZXMuXG4gICAgICovXG4gICAgcHVibGljIGdldCB2YWxpZGF0aW9uTWVzc2FnZSgpOiBzdHJpbmcge1xuICAgICAgcmV0dXJuIHRoaXMuaW50ZXJuYWxzLnZhbGlkYXRpb25NZXNzYWdlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdHJ1ZSBpZiB0aGlzIGVsZW1lbnQgd2lsbCBiZSB2YWxpZGF0ZWRcbiAgICAgKiB3aGVuIHRoZSBmb3JtIGlzIHN1Ym1pdHRlZDsgZmFsc2Ugb3RoZXJ3aXNlLlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgd2lsbFZhbGlkYXRlKCk6IGJvb2xlYW4ge1xuICAgICAgcmV0dXJuIHRoaXMuaW50ZXJuYWxzLndpbGxWYWxpZGF0ZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF92YWxpZGl0eVN0YXRlcyA9IG5ldyBNYXA8XG4gICAgICBrZXlvZiBWYWxpZGl0eVN0YXRlRmxhZ3MsXG4gICAgICB7IGZsYWdWYWx1ZTogdW5rbm93bjsgbWVzc2FnZTogc3RyaW5nIH1cbiAgICA+KCk7XG5cbiAgICAvKiogV2hlbmV2ZXIgYSBzdXJyb3VuZGluZyBmb3JtIG9yIGZpZWxkc2V0IGlzIGNoYW5naW5nIGl0cyBkaXNhYmxlZCBzdGF0ZS4gKi9cbiAgICBAc3RhdGUoKSBwcm90ZWN0ZWQgYWNjZXNzb3IgZm9ybURpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IoLi4uYXJnczogYW55W10pIHtcbiAgICAgIHN1cGVyKC4uLmFyZ3MpO1xuICAgICAgLy8gV2Ugd2FudCB0byBwcmV2ZW50IHRoZSBuYXRpdmUgYnJvd3NlciB2YWxpZGF0aW9uIG1lc3NhZ2UgcG9wb3ZlclxuICAgICAgLy8gdG8gYmUgc2hvd24uIFRoaXMgYWxzbyBwcmV2ZW50cyBhIGJ1ZyBpbiBXZWJLaXQsIHdoaWNoIHdvdWxkIG5vdFxuICAgICAgLy8gYWxsb3cgaG9zdCBhcyB0aGUgdmFsaWRpdHkgYW5jaG9yOiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjY5ODMyXG4gICAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/LignaW52YWxpZCcsIChlKSA9PiBlLnByZXZlbnREZWZhdWx0KCkpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvdmVycmlkZSBhdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2soXG4gICAgICBuYW1lOiBzdHJpbmcsXG4gICAgICBvbGQ6IHN0cmluZyB8IG51bGwsXG4gICAgICB2YWx1ZTogc3RyaW5nIHwgbnVsbCxcbiAgICApOiB2b2lkIHtcbiAgICAgIGlmIChuYW1lICE9PSAnbmFtZScgfHwgb2xkICE9PSB2YWx1ZSkge1xuICAgICAgICBzdXBlci5hdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2sobmFtZSwgb2xkLCB2YWx1ZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0cnVlIGlmIHRoaXMgZWxlbWVudCBoYXMgbm8gdmFsaWRpdHkgcHJvYmxlbXM7IGZhbHNlIG90aGVyd2lzZS5cbiAgICAgKiBGaXJlcyBhbiBpbnZhbGlkIGV2ZW50IGF0IHRoZSBlbGVtZW50IGluIHRoZSBsYXR0ZXIgY2FzZS5cbiAgICAgKi9cbiAgICBwdWJsaWMgY2hlY2tWYWxpZGl0eSgpOiBib29sZWFuIHtcbiAgICAgIHJldHVybiB0aGlzLmludGVybmFscy5jaGVja1ZhbGlkaXR5KCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0cnVlIGlmIHRoaXMgZWxlbWVudCBoYXMgbm8gdmFsaWRpdHkgcHJvYmxlbXM7IG90aGVyd2lzZSxcbiAgICAgKiByZXR1cm5zIGZhbHNlLCBmaXJlcyBhbiBpbnZhbGlkIGV2ZW50IGF0IHRoZSBlbGVtZW50LFxuICAgICAqIGFuZCAoaWYgdGhlIGV2ZW50IGlzbid0IGNhbmNlbGVkKSByZXBvcnRzIHRoZSBwcm9ibGVtIHRvIHRoZSB1c2VyLlxuICAgICAqL1xuICAgIHB1YmxpYyByZXBvcnRWYWxpZGl0eSgpOiBib29sZWFuIHtcbiAgICAgIHJldHVybiB0aGlzLmludGVybmFscy5yZXBvcnRWYWxpZGl0eSgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldHMgdGhlIGN1c3RvbSB2YWxpZGl0eSBtZXNzYWdlIGZvciB0aGlzIGVsZW1lbnQuIFVzZSB0aGUgZW1wdHkgc3RyaW5nXG4gICAgICogdG8gaW5kaWNhdGUgdGhhdCB0aGUgZWxlbWVudCBkb2VzIG5vdCBoYXZlIGEgY3VzdG9tIHZhbGlkaXR5IGVycm9yLlxuICAgICAqL1xuICAgIHB1YmxpYyBzZXRDdXN0b21WYWxpZGl0eShtZXNzYWdlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgIGlmIChtZXNzYWdlKSB7XG4gICAgICAgIHRoaXMuc2V0VmFsaWRpdHlGbGFnKCdjdXN0b21FcnJvcicsIG1lc3NhZ2UpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5yZW1vdmVWYWxpZGl0eUZsYWcoJ2N1c3RvbUVycm9yJyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2FsbGVkIHdoZW4gdGhlIGFzc29jaWF0ZWQgZm9ybSBlbGVtZW50IGNoYW5nZXMuXG4gICAgICogRWxlbWVudEludGVybmFscy5mb3JtIHJldHVybnMgdGhlIGFzc29jaWF0ZWQgZnJvbSBlbGVtZW50LlxuICAgICAqXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgcHVibGljIGZvcm1Bc3NvY2lhdGVkQ2FsbGJhY2s/KGZvcm06IEhUTUxGb3JtRWxlbWVudCB8IG51bGwpOiB2b2lkO1xuXG4gICAgLyoqXG4gICAgICogSXMgY2FsbGVkIHdoZW5ldmVyIGEgc3Vycm91bmRpbmcgZmllbGRzZXQgY2hhbmdlcyBkaXNhYmxlZCBzdGF0ZS5cbiAgICAgKlxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHB1YmxpYyBmb3JtRGlzYWJsZWRDYWxsYmFjayhfZGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgIHRoaXMuZm9ybURpc2FibGVkID0gdGhpcy5faGFzRGlzYWJsZWRBbmNlc3RvcigpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2hhc0Rpc2FibGVkQW5jZXN0b3IoKTogYm9vbGVhbiB7XG4gICAgICAvLyBDaGVjayBpZiBhbnkgb2YgdGhlIGZpZWxkc2V0IGFuY2VzdG9ycyBoYXMgdGhlIGRpc2FibGVkIGF0dHJpYnV0ZSBzZXQuXG4gICAgICBsZXQgZWxlbWVudDogSFRNTEVsZW1lbnQgfCBudWxsID0gdGhpcy5wYXJlbnRFbGVtZW50O1xuICAgICAgd2hpbGUgKGVsZW1lbnQpIHtcbiAgICAgICAgaWYgKGVsZW1lbnQubG9jYWxOYW1lID09PSAnZmllbGRzZXQnICYmIGVsZW1lbnQuaGFzQXR0cmlidXRlKCdkaXNhYmxlZCcpKSB7XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgZWxlbWVudCA9IGVsZW1lbnQucGFyZW50RWxlbWVudDtcbiAgICAgIH1cbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBJcyBjYWxsZWQgd2hlbmV2ZXIgdGhlIGZvcm0gaXMgYmVpbmcgcmVzZXQuXG4gICAgICpcbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBwdWJsaWMgYWJzdHJhY3QgZm9ybVJlc2V0Q2FsbGJhY2soKTogdm9pZDtcblxuICAgIC8qKlxuICAgICAqICBDYWxsZWQgd2hlbiB0aGUgYnJvd3NlciBpcyB0cnlpbmcgdG8gcmVzdG9yZSBlbGVtZW504oCZcyBzdGF0ZSB0byBzdGF0ZSBpbiB3aGljaCBjYXNlXG4gICAgICogIHJlYXNvbiBpcyBcInJlc3RvcmVcIiwgb3Igd2hlbiB0aGUgYnJvd3NlciBpcyB0cnlpbmcgdG8gZnVsZmlsbCBhdXRvZmlsbCBvbiBiZWhhbGYgb2ZcbiAgICAgKiAgdXNlciBpbiB3aGljaCBjYXNlIHJlYXNvbiBpcyBcImF1dG9jb21wbGV0ZVwiLlxuICAgICAqICBJbiB0aGUgY2FzZSBvZiBcInJlc3RvcmVcIiwgc3RhdGUgaXMgYSBzdHJpbmcsIEZpbGUsIG9yIEZvcm1EYXRhIG9iamVjdFxuICAgICAqICBwcmV2aW91c2x5IHNldCBhcyB0aGUgc2Vjb25kIGFyZ3VtZW50IHRvIHNldEZvcm1WYWx1ZS5cbiAgICAgKlxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHB1YmxpYyBhYnN0cmFjdCBmb3JtU3RhdGVSZXN0b3JlQ2FsbGJhY2soXG4gICAgICBzdGF0ZTogRm9ybVJlc3RvcmVTdGF0ZSB8IG51bGwsXG4gICAgICByZWFzb246IEZvcm1SZXN0b3JlUmVhc29uLFxuICAgICk6IHZvaWQ7XG5cbiAgICBwdWJsaWMgb3ZlcnJpZGUgcmVxdWVzdFVwZGF0ZShcbiAgICAgIG5hbWU/OiBQcm9wZXJ0eUtleSxcbiAgICAgIG9sZFZhbHVlPzogdW5rbm93bixcbiAgICAgIG9wdGlvbnM/OiBQcm9wZXJ0eURlY2xhcmF0aW9uLFxuICAgICk6IHZvaWQge1xuICAgICAgc3VwZXIucmVxdWVzdFVwZGF0ZShuYW1lLCBvbGRWYWx1ZSwgb3B0aW9ucyk7XG4gICAgICBpZiAobmFtZSA9PT0gJ3ZhbHVlJykge1xuICAgICAgICB0aGlzLnVwZGF0ZUZvcm1WYWx1ZSgpO1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMuaGFzVXBkYXRlZCAmJiB0aGlzLnNob3VsZFZhbGlkYXRlKG5hbWUpKSB7XG4gICAgICAgIHRoaXMudmFsaWRhdGUoKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgZmlyc3RVcGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzOiBQcm9wZXJ0eVZhbHVlczx0aGlzPik6IHZvaWQge1xuICAgICAgc3VwZXIuZmlyc3RVcGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzKTtcbiAgICAgIHRoaXMudmFsaWRhdGUoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTaG91bGQgYmUgY2FsbGVkIHdoZW4gZm9ybSB2YWx1ZSBpcyBjaGFuZ2VkLlxuICAgICAqIEFkYXB0cyBhbmQgc2V0cyB0aGUgZm9ybVZhbHVlIGluIHRoZSBzdXBwb3J0ZWQgZm9ybWF0IChzdHJpbmcgfCBGb3JtRGF0YSB8IEZpbGUgfCBudWxsKVxuICAgICAqIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0FQSS9FbGVtZW50SW50ZXJuYWxzL3NldEZvcm1WYWx1ZVxuICAgICAqL1xuICAgIHByb3RlY3RlZCB1cGRhdGVGb3JtVmFsdWUoKTogdm9pZCB7XG4gICAgICBsZXQgZm9ybVZhbHVlOiBGb3JtRGF0YSB8IHN0cmluZyB8IG51bGw7XG4gICAgICBjb25zdCBuYW1lID0gdGhpcy5uYW1lID8/IHRoaXMuZ2V0QXR0cmlidXRlKCduYW1lJyk7XG5cbiAgICAgIGlmICh0eXBlb2YgdGhpcy52YWx1ZSA9PT0gJ3N0cmluZycgfHwgdGhpcy52YWx1ZSA9PSBudWxsKSB7XG4gICAgICAgIGZvcm1WYWx1ZSA9IHRoaXMudmFsdWUgYXMgc3RyaW5nIHwgbnVsbDtcbiAgICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheSh0aGlzLnZhbHVlKSkge1xuICAgICAgICBmb3JtVmFsdWUgPSBuZXcgRm9ybURhdGEoKTtcbiAgICAgICAgdGhpcy52YWx1ZS5mb3JFYWNoKChlbCkgPT4ge1xuICAgICAgICAgIChmb3JtVmFsdWUgYXMgRm9ybURhdGEpLmFwcGVuZChcbiAgICAgICAgICAgIG5hbWUsXG4gICAgICAgICAgICB0eXBlb2YgZWwgPT09ICdzdHJpbmcnXG4gICAgICAgICAgICAgID8gZWxcbiAgICAgICAgICAgICAgOiBuZXcgQmxvYihbSlNPTi5zdHJpbmdpZnkoZWwpXSwge1xuICAgICAgICAgICAgICAgICAgdHlwZTogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICk7XG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZm9ybVZhbHVlID0gbmV3IEZvcm1EYXRhKCk7XG4gICAgICAgIGZvcm1WYWx1ZS5hcHBlbmQoXG4gICAgICAgICAgbmFtZSxcbiAgICAgICAgICBuZXcgQmxvYihbSlNPTi5zdHJpbmdpZnkodGhpcy52YWx1ZSldLCB7XG4gICAgICAgICAgICB0eXBlOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgICAgICAgfSksXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIC8vIElmIHRoZSBmb3JtIHN0YXRlIGlzIHVuZGVmaW5lZCB0aGVuIGZvcm0gdmFsdWUgd2lsbCBiZSBjb3BpZWQgdG8gc3RhdGUuXG4gICAgICB0aGlzLmludGVybmFscy5zZXRGb3JtVmFsdWUoZm9ybVZhbHVlLCB0aGlzLmZvcm1TdGF0ZT8uKCkpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBmb3JtU3RhdGU/KCk6IEZvcm1SZXN0b3JlU3RhdGU7XG5cbiAgICAvKipcbiAgICAgKiBNYXJrcyB0aGlzIGVsZW1lbnQgYXMgc3VmZmVyaW5nIGZyb20gdGhlIGNvbnN0cmFpbnQgaW5kaWNhdGVkIGJ5IHRoZVxuICAgICAqIGZsYWcgYXJndW1lbnQgYW5kIGFzc29jaWF0ZXMgdGhlIGdpdmVuIG1lc3NhZ2UgdG8gaXQuXG4gICAgICogTm90ZSB0aGF0IG9ubHkgb25lIG1lc3NhZ2UgaXMgZGlzcGxheWVkIGF0IGEgdGltZSBhbmQgY3VzdG9tIG1lc3NhZ2VzIGJ5XG4gICAgICogY29uc3VtZXJzIGFyZSBhbHdheXMgZGlzcGxheWVkIGJlZm9yZSBpbnRlcm5hbCBtZXNzYWdlcyBhbmQgaW50ZXJuYWxcbiAgICAgKiBtZXNzYWdlcyBhcmUgZGlzcGxheWVkIGluIHRoZSBvcmRlciB0aGV5IHdlcmUgYWRkZWQuXG4gICAgICogVG8gc2V0L2RlZmluZSBjdXN0b20gdmFsaWRpdHkgc3RhdGUgZmxhZ3MsIHlvdSBuZWVkIHRvIGV4dGVuZCB0aGVcbiAgICAgKiBWYWxpZGl0eVN0YXRlIHByb3RvdHlwZSAoYW5kIHRoZSBDdXN0b21WYWxpZGl0eVN0YXRlIGludGVyZmFjZSkuXG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogICAvLyBUaGUgdHlwZSBvZiB0aGUgY3VzdG9tIHZhbGlkaXR5IHN0YXRlIGRvZXMgbm90IG5lZWQgdG8gYmUgYm9vbGVhbi5cbiAgICAgKiAgIE9iamVjdC5hc3NpZ24oVmFsaWRpdHlTdGF0ZS5wcm90b3R5cGUsIHtcbiAgICAgKiAgICAgZ2V0IG15RXJyb3IoKTogYm9vbGVhbiB7XG4gICAgICogICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAqICAgICB9LFxuICAgICAqICAgfSk7XG4gICAgICpcbiAgICAgKiAgIGRlY2xhcmUgZ2xvYmFsIHtcbiAgICAgKiAgICAgaW50ZXJmYWNlIEN1c3RvbVZhbGlkaXR5U3RhdGUge1xuICAgICAqICAgICAgIG15RXJyb3I6IGJvb2xlYW47XG4gICAgICogICAgIH1cbiAgICAgKiAgIH1cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgc2V0VmFsaWRpdHlGbGFnPFQgZXh0ZW5kcyBrZXlvZiBWYWxpZGl0eVN0YXRlRmxhZ3M+KFxuICAgICAgZmxhZzogVCxcbiAgICAgIG1lc3NhZ2U6IHN0cmluZyxcbiAgICAgIGZsYWdWYWx1ZT86IFZhbGlkaXR5U3RhdGVGbGFnc1tUXSxcbiAgICApOiB2b2lkIHtcbiAgICAgIGZsYWdWYWx1ZSA/Pz0gdHJ1ZTtcbiAgICAgIGNvbnN0IHZhbGlkaXR5U3RhdGUgPSB0aGlzLl92YWxpZGl0eVN0YXRlcy5nZXQoZmxhZyk7XG4gICAgICBpZiAoXG4gICAgICAgICF2YWxpZGl0eVN0YXRlIHx8XG4gICAgICAgIHZhbGlkaXR5U3RhdGUubWVzc2FnZSAhPT0gbWVzc2FnZSB8fFxuICAgICAgICB2YWxpZGl0eVN0YXRlLmZsYWdWYWx1ZSAhPT0gZmxhZ1ZhbHVlXG4gICAgICApIHtcbiAgICAgICAgdGhpcy5fdmFsaWRpdHlTdGF0ZXMuc2V0KGZsYWcsIHsgZmxhZ1ZhbHVlLCBtZXNzYWdlIH0pO1xuICAgICAgICB0aGlzLl9zZXRJbnRlcm5hbFZhbGlkaXR5KCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLyoqIFJlbW92ZXMgdGhlIHZhbGlkaXR5IHN0YXRlIGZsYWcgZW50cnkgYW5kIHVwZGF0ZXMgdmFsaWRpdHkgc3RhdGUuICovXG4gICAgcHJvdGVjdGVkIHJlbW92ZVZhbGlkaXR5RmxhZzxUIGV4dGVuZHMga2V5b2YgVmFsaWRpdHlTdGF0ZUZsYWdzPihmbGFnOiBUKTogdm9pZCB7XG4gICAgICBpZiAodGhpcy5fdmFsaWRpdHlTdGF0ZXMuaGFzKGZsYWcpKSB7XG4gICAgICAgIHRoaXMuX3ZhbGlkaXR5U3RhdGVzLmRlbGV0ZShmbGFnKTtcbiAgICAgICAgdGhpcy5fc2V0SW50ZXJuYWxWYWxpZGl0eSgpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBUbyBiZSBjYWxsZWQgd2hlbmV2ZXIgdGhlIGN1cnJlbnQgZWxlbWVudCBuZWVkcyB0byBiZSB2YWxpZGF0ZWQuICovXG4gICAgcHJvdGVjdGVkIHZhbGlkYXRlKCk6IHZvaWQge31cblxuICAgIC8qKiBXaGV0aGVyIHZhbGlkYXRpb24gc2hvdWxkIGJlIHJ1biBvbiBhIHByb3BlcnR5IGNoYW5nZSB3aXRoIHRoZSBnaXZlbiBuYW1lLiAqL1xuICAgIHByb3RlY3RlZCBzaG91bGRWYWxpZGF0ZShuYW1lOiBQcm9wZXJ0eUtleSB8IHVuZGVmaW5lZCk6IGJvb2xlYW4ge1xuICAgICAgcmV0dXJuICFuYW1lO1xuICAgIH1cblxuICAgIHByaXZhdGUgX3NldEludGVybmFsVmFsaWRpdHkoKTogdm9pZCB7XG4gICAgICBsZXQgb3V0cHV0TWVzc2FnZSA9IHRoaXMuX3ZhbGlkaXR5U3RhdGVzLmdldCgnY3VzdG9tRXJyb3InKT8ubWVzc2FnZTtcbiAgICAgIGNvbnN0IGZsYWdzOiBWYWxpZGl0eVN0YXRlRmxhZ3MgPSB7fTtcbiAgICAgIHRoaXMuX3ZhbGlkaXR5U3RhdGVzLmZvckVhY2goKHsgZmxhZ1ZhbHVlLCBtZXNzYWdlIH0sIGZsYWcpID0+IHtcbiAgICAgICAgZmxhZ3NbZmxhZ10gPSBmbGFnVmFsdWUgYXMgYW55O1xuICAgICAgICBvdXRwdXRNZXNzYWdlIHx8PSBtZXNzYWdlO1xuICAgICAgfSk7XG5cbiAgICAgIGNvbnN0IGN1c3RvbUZsYWdzID0gT2JqZWN0LmtleXMoVmFsaWRpdHlTdGF0ZS5wcm90b3R5cGUpLmZpbHRlcihcbiAgICAgICAgKGYpID0+ICEoZiBpbiB2YWxpZGl0eUtleXMpICYmIGYgIT09ICd2YWxpZCcsXG4gICAgICApO1xuICAgICAgZm9yIChjb25zdCBmbGFnIG9mIGN1c3RvbUZsYWdzKSB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gZmxhZyBpbiBmbGFncyA/IGZsYWdzW2ZsYWcgYXMga2V5b2YgVmFsaWRpdHlTdGF0ZUZsYWdzXSA6IGZhbHNlO1xuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcy5pbnRlcm5hbHMudmFsaWRpdHksIGZsYWcsIHsgdmFsdWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZSB9KTtcbiAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgLy8gSWYgYW55IGN1c3RvbSBlcnJvcnMgYXJlIHByb3ZpZGVkLCB3ZSBuZWVkIHRvIHNldCBjdXN0b21FcnJvciB0byB0cnVlLFxuICAgICAgICAgIC8vIGFzIHRoaXMgaXMgdGhlIG9ubHkgY3VzdG9tIGVycm9yIHByb3BlcnR5IGJyb3dzZXJzIGFjY2VwdC5cbiAgICAgICAgICBmbGFncy5jdXN0b21FcnJvciA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgdGhpcy5pbnRlcm5hbHMuc2V0VmFsaWRpdHkoZmxhZ3MsIG91dHB1dE1lc3NhZ2UpO1xuXG4gICAgICAvLyBXZWJLaXQgc2VlbXMgdG8gYWx3YXlzIHNldCBjdXN0b21FcnJvciB0byB0cnVlLCBpZiBhbnkgZXJyb3IgaXMgYWN0aXZlLlxuICAgICAgLy8gRHVlIHRvIHRoaXMgd2UgcGF0Y2ggdGhlIGN1c3RvbUVycm9yIHZhbHVlIG1hbnVhbGx5LlxuICAgICAgaWYgKGlzV2Via2l0KSB7XG4gICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLmludGVybmFscy52YWxpZGl0eSwgJ2N1c3RvbUVycm9yJywge1xuICAgICAgICAgIHZhbHVlOiB0aGlzLl92YWxpZGl0eVN0YXRlcy5oYXMoJ2N1c3RvbUVycm9yJykgfHwgISFmbGFncy5jdXN0b21FcnJvcixcbiAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICByZXR1cm4gU2JiRm9ybUFzc29jaWF0ZWRFbGVtZW50IGFzIHVua25vd24gYXMgQWJzdHJhY3RDb25zdHJ1Y3RvcjxTYmJGb3JtQXNzb2NpYXRlZE1peGluVHlwZT4gJiBUO1xufTtcblxuLyoqXG4gKiBBIHZhbHVlIHRvIGJlIHJlc3RvcmVkIGZvciBhIGNvbXBvbmVudCdzIGZvcm0gdmFsdWUuIElmIGEgY29tcG9uZW50J3MgZm9ybVxuICogc3RhdGUgaXMgYSBgRm9ybURhdGFgIG9iamVjdCwgaXRzIGVudHJ5IGxpc3Qgb2YgbmFtZSBhbmQgdmFsdWVzIHdpbGwgYmVcbiAqIHByb3ZpZGVkLlxuICovXG5leHBvcnQgdHlwZSBGb3JtUmVzdG9yZVN0YXRlID0gc3RyaW5nIHwgRm9ybURhdGEgfCBGaWxlO1xuXG4vKipcbiAqIFRoZSByZWFzb24gYSBmb3JtIGNvbXBvbmVudCBpcyBiZWluZyByZXN0b3JlZCBmb3IsIGVpdGhlciBgJ3Jlc3RvcmUnYCBmb3JcbiAqIGJyb3dzZXIgcmVzdG9yYXRpb24gb3IgYCdhdXRvY29tcGxldGUnYCBmb3IgcmVzdG9yaW5nIHVzZXIgdmFsdWVzLlxuICovXG5leHBvcnQgdHlwZSBGb3JtUmVzdG9yZVJlYXNvbiA9ICdyZXN0b3JlJyB8ICdhdXRvY29tcGxldGUnO1xuIl0sIm1hcHBpbmdzIjoiOzs7O0FBa0JBLElBQU0sZUFBOEU7Q0FDbEYsVUFBVTtDQUNWLGFBQWE7Q0FDYixpQkFBaUI7Q0FDakIsZUFBZTtDQUNmLGdCQUFnQjtDQUNoQixjQUFjO0NBQ2QsU0FBUztDQUNULFVBQVU7Q0FDVixjQUFjO0NBQ2QsY0FBYztDQUNmO0FBSUQsSUFBSSxPQUFPLGtCQUFrQixhQUFhO0NBQ3hDLE1BQU0sZ0JBQWdCLE1BQU0sY0FBYTtFQUN2QyxJQUFXLFFBQUs7QUFDZCxVQUFPOztFQUVULGNBQUE7QUFDRSxTQUFNLElBQUksVUFBVSxzQkFBc0I7OztBQUc5QyxRQUFPLFFBQVEsYUFBYSxDQUFDLFNBQVMsQ0FBQyxLQUFLLFdBQzFDLE9BQU8sT0FBTyxjQUFjLFdBQVcsRUFDckMsS0FBSyxPQUFJO0FBQ1AsU0FBTztJQUVWLENBQUMsQ0FDSDtBQUNELFlBQVcsZ0JBQWdCOzs7OztBQTRDN0IsSUFBYSwwQkFDWCxlQUN1RDtBQStUdkQsZUE5VHVDO29CQUM3Qjs7Ozs7O2VBREssaUNBQ0wsWUFBVTs7OzRCQW9CakIsVUFBVSxDQUFB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
294
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1hc3NvY2lhdGVkLW1peGluLmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb3JlL21peGlucy9mb3JtLWFzc29jaWF0ZWQtbWl4aW4udHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LW9iamVjdC10eXBlICovXG5pbXBvcnQgdHlwZSB7IFByb3BlcnR5RGVjbGFyYXRpb24sIFByb3BlcnR5VmFsdWVzIH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IHByb3BlcnR5LCBzdGF0ZSB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcblxuaW1wb3J0IHR5cGUgeyBTYmJFbGVtZW50IH0gZnJvbSAnLi4vYmFzZS1lbGVtZW50cy9lbGVtZW50LnRzJztcbmltcG9ydCB7IGlzV2Via2l0IH0gZnJvbSAnLi4vZG9tL3BsYXRmb3JtLnRzJztcblxuaW1wb3J0IHR5cGUgeyBBYnN0cmFjdENvbnN0cnVjdG9yIH0gZnJvbSAnLi9jb25zdHJ1Y3Rvci50cyc7XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgLyoqXG4gICAqIERlZmluZXMgY3VzdG9tIHZhbGlkaXR5IHN0YXRlIHByb3BlcnRpZXMuXG4gICAqL1xuICBpbnRlcmZhY2UgQ3VzdG9tVmFsaWRpdHlTdGF0ZSB7fVxuICBpbnRlcmZhY2UgVmFsaWRpdHlTdGF0ZSBleHRlbmRzIEN1c3RvbVZhbGlkaXR5U3RhdGUge31cbiAgaW50ZXJmYWNlIFZhbGlkaXR5U3RhdGVGbGFncyBleHRlbmRzIFBhcnRpYWw8Q3VzdG9tVmFsaWRpdHlTdGF0ZT4ge31cbn1cblxuY29uc3QgdmFsaWRpdHlLZXlzOiBSZXF1aXJlZDxPbWl0PFZhbGlkaXR5U3RhdGVGbGFncywga2V5b2YgQ3VzdG9tVmFsaWRpdHlTdGF0ZT4+ID0ge1xuICBiYWRJbnB1dDogZmFsc2UsXG4gIGN1c3RvbUVycm9yOiBmYWxzZSxcbiAgcGF0dGVybk1pc21hdGNoOiBmYWxzZSxcbiAgcmFuZ2VPdmVyZmxvdzogZmFsc2UsXG4gIHJhbmdlVW5kZXJmbG93OiBmYWxzZSxcbiAgc3RlcE1pc21hdGNoOiBmYWxzZSxcbiAgdG9vTG9uZzogZmFsc2UsXG4gIHRvb1Nob3J0OiBmYWxzZSxcbiAgdHlwZU1pc21hdGNoOiBmYWxzZSxcbiAgdmFsdWVNaXNzaW5nOiBmYWxzZSxcbn07XG4vLyBXZSBuZWVkIFZhbGlkaXR5U3RhdGUgaW4gdGhlIGdsb2JhbCBjb250ZXh0LCBhcyB3ZSBjaGVjayB0aGUgcHJvdG90eXBlIGZvclxuLy8gZXh0ZW5zaW9ucy4gSW4gZW52aXJvbm1lbnRzIHdoZXJlIHRoYXQgaXMgbm90IHRoZSBjYXNlIChlLmcuIE5vZGUuanMpIHdlXG4vLyBwYXRjaCBpdCB3aXRoIGEgbWluaW1hbCBzaGltLlxuaWYgKHR5cGVvZiBWYWxpZGl0eVN0YXRlID09PSAndW5kZWZpbmVkJykge1xuICBjb25zdCB2YWxpZGl0eUNsYXNzID0gY2xhc3MgVmFsaWRpdHlTdGF0ZSB7XG4gICAgcHVibGljIGdldCB2YWxpZCgpOiBib29sZWFuIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBwcml2YXRlIGNvbnN0cnVjdG9yKCkge1xuICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignSWxsZWdhbCBjb25zdHJ1Y3RvcicpO1xuICAgIH1cbiAgfTtcbiAgT2JqZWN0LmVudHJpZXModmFsaWRpdHlLZXlzKS5mb3JFYWNoKChba2V5LCB2YWx1ZV0pID0+XG4gICAgT2JqZWN0LmFzc2lnbih2YWxpZGl0eUNsYXNzLnByb3RvdHlwZSwge1xuICAgICAgZ2V0IFtrZXldKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICB9LFxuICAgIH0pLFxuICApO1xuICBnbG9iYWxUaGlzLlZhbGlkaXR5U3RhdGUgPSB2YWxpZGl0eUNsYXNzIGFzIHVua25vd24gYXMgdHlwZW9mIFZhbGlkaXR5U3RhdGU7XG59XG5cbmV4cG9ydCBkZWNsYXJlIGFic3RyYWN0IGNsYXNzIFNiYkZvcm1Bc3NvY2lhdGVkTWl4aW5UeXBlIHtcbiAgcHVibGljIGdldCBmb3JtKCk6IEhUTUxGb3JtRWxlbWVudCB8IG51bGw7XG4gIHB1YmxpYyBhY2Nlc3NvciBuYW1lOiBzdHJpbmc7XG4gIHB1YmxpYyBnZXQgdHlwZSgpOiBzdHJpbmc7XG5cbiAgcHVibGljIGFic3RyYWN0IGFjY2Vzc29yIHZhbHVlOiB1bmtub3duO1xuXG4gIHB1YmxpYyBnZXQgdmFsaWRpdHkoKTogVmFsaWRpdHlTdGF0ZTtcbiAgcHVibGljIGdldCB2YWxpZGF0aW9uTWVzc2FnZSgpOiBzdHJpbmc7XG4gIHB1YmxpYyBnZXQgd2lsbFZhbGlkYXRlKCk6IGJvb2xlYW47XG5cbiAgcHJvdGVjdGVkIGFjY2Vzc29yIGZvcm1EaXNhYmxlZDogYm9vbGVhbjtcblxuICBwdWJsaWMgY2hlY2tWYWxpZGl0eSgpOiBib29sZWFuO1xuICBwdWJsaWMgcmVwb3J0VmFsaWRpdHkoKTogYm9vbGVhbjtcbiAgcHVibGljIHNldEN1c3RvbVZhbGlkaXR5KG1lc3NhZ2U6IHN0cmluZyk6IHZvaWQ7XG5cbiAgcHVibGljIGZvcm1Bc3NvY2lhdGVkQ2FsbGJhY2s/KGZvcm06IEhUTUxGb3JtRWxlbWVudCB8IG51bGwpOiB2b2lkO1xuICBwdWJsaWMgZm9ybURpc2FibGVkQ2FsbGJhY2soZGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkO1xuICBwdWJsaWMgYWJzdHJhY3QgZm9ybVJlc2V0Q2FsbGJhY2soKTogdm9pZDtcbiAgcHVibGljIGFic3RyYWN0IGZvcm1TdGF0ZVJlc3RvcmVDYWxsYmFjayhcbiAgICBzdGF0ZTogRm9ybVJlc3RvcmVTdGF0ZSB8IG51bGwsXG4gICAgcmVhc29uOiBGb3JtUmVzdG9yZVJlYXNvbixcbiAgKTogdm9pZDtcblxuICBwcm90ZWN0ZWQgdXBkYXRlRm9ybVZhbHVlKCk6IHZvaWQ7XG4gIHByb3RlY3RlZCBmb3JtU3RhdGU/KCk6IEZvcm1SZXN0b3JlU3RhdGU7XG4gIHByb3RlY3RlZCBzZXRWYWxpZGl0eUZsYWc8VCBleHRlbmRzIGtleW9mIFZhbGlkaXR5U3RhdGVGbGFncz4oXG4gICAgZmxhZzogVCxcbiAgICBtZXNzYWdlOiBzdHJpbmcsXG4gICAgZmxhZ1ZhbHVlPzogVmFsaWRpdHlTdGF0ZUZsYWdzW1RdLFxuICApOiB2b2lkO1xuICBwcm90ZWN0ZWQgcmVtb3ZlVmFsaWRpdHlGbGFnPFQgZXh0ZW5kcyBrZXlvZiBWYWxpZGl0eVN0YXRlRmxhZ3M+KGZsYWc6IFQpOiB2b2lkO1xuICBwcm90ZWN0ZWQgdmFsaWRhdGUoKTogdm9pZDtcbiAgcHJvdGVjdGVkIHNob3VsZFZhbGlkYXRlKG5hbWU6IFByb3BlcnR5S2V5IHwgdW5kZWZpbmVkKTogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBUaGUgRm9ybUFzc29jaWF0ZWRNaXhpbiBlbmFibGVzIG5hdGl2ZSBmb3JtIHN1cHBvcnQgZm9yIGN1c3RvbSBjb250cm9scy5cbiAqL1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuZXhwb3J0IGNvbnN0IFNiYkZvcm1Bc3NvY2lhdGVkTWl4aW4gPSA8VCBleHRlbmRzIEFic3RyYWN0Q29uc3RydWN0b3I8U2JiRWxlbWVudD4+KFxuICBzdXBlckNsYXNzOiBULFxuKTogQWJzdHJhY3RDb25zdHJ1Y3RvcjxTYmJGb3JtQXNzb2NpYXRlZE1peGluVHlwZT4gJiBUID0+IHtcbiAgYWJzdHJhY3QgY2xhc3MgU2JiRm9ybUFzc29jaWF0ZWRFbGVtZW50XG4gICAgZXh0ZW5kcyBzdXBlckNsYXNzXG4gICAgaW1wbGVtZW50cyBQYXJ0aWFsPFNiYkZvcm1Bc3NvY2lhdGVkTWl4aW5UeXBlPlxuICB7XG4gICAgcHVibGljIHN0YXRpYyBmb3JtQXNzb2NpYXRlZCA9IHRydWU7XG5cbiAgICBwdWJsaWMgYWJzdHJhY3QgYWNjZXNzb3IgdmFsdWU6IHVua25vd247XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHRoZSBmb3JtIG93bmVyIG9mIHRoaXMgZWxlbWVudC5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IGZvcm0oKTogSFRNTEZvcm1FbGVtZW50IHwgbnVsbCB7XG4gICAgICByZXR1cm4gdGhpcy5pbnRlcm5hbHMuZm9ybTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBOYW1lIG9mIHRoZSBmb3JtIGVsZW1lbnQuIFdpbGwgYmUgcmVhZCBmcm9tIG5hbWUgYXR0cmlidXRlLlxuICAgICAqXG4gICAgICogQGRlc2NyaXB0aW9uIERldmVsb3BlciBub3RlOiBJbiB0aGlzIGNhc2UgdXBkYXRpbmcgdGhlIGF0dHJpYnV0ZSBtdXN0IGJlIHN5bmNocm9ub3VzLlxuICAgICAqIER1ZSB0byB0aGlzIGl0IGlzIGltcGxlbWVudGVkIGFzIGEgZ2V0dGVyL3NldHRlciBhbmQgdGhlIGF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFjaygpIGhhbmRsZXMgdGhlIGRpZmYgY2hlY2suXG4gICAgICovXG4gICAgQHByb3BlcnR5KClcbiAgICBwdWJsaWMgc2V0IG5hbWUobmFtZTogc3RyaW5nKSB7XG4gICAgICB0aGlzLnNldEF0dHJpYnV0ZSgnbmFtZScsIGAke25hbWV9YCk7XG5cbiAgICAgIC8vIEZvciBgRm9ybURhdGFgIHZhbHVlcywgd2UgaGF2ZSB0byBtYW51YWxseSB1cGRhdGUgdGhlIGZpZWxkTmFtZSBrZXlcbiAgICAgIHRoaXMudXBkYXRlRm9ybVZhbHVlKCk7XG4gICAgfVxuICAgIHB1YmxpYyBnZXQgbmFtZSgpOiBzdHJpbmcge1xuICAgICAgcmV0dXJuIHRoaXMuZ2V0QXR0cmlidXRlKCduYW1lJykgPz8gJyc7XG4gICAgfVxuXG4gICAgLyoqIEBpbnRlcm5hbCAqL1xuICAgIHB1YmxpYyBnZXQgdHlwZSgpOiBzdHJpbmcge1xuICAgICAgcmV0dXJuIHRoaXMubG9jYWxOYW1lO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdGhlIFZhbGlkaXR5U3RhdGUgb2JqZWN0IGZvciB0aGlzIGVsZW1lbnQuXG4gICAgICovXG4gICAgcHVibGljIGdldCB2YWxpZGl0eSgpOiBWYWxpZGl0eVN0YXRlIHtcbiAgICAgIHJldHVybiB0aGlzLmludGVybmFscy52YWxpZGl0eTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHRoZSBjdXJyZW50IGVycm9yIG1lc3NhZ2UsIGlmIGF2YWlsYWJsZSwgd2hpY2ggY29ycmVzcG9uZHNcbiAgICAgKiB0byB0aGUgY3VycmVudCB2YWxpZGF0aW9uIHN0YXRlLlxuICAgICAqIFBsZWFzZSBub3RlIHRoYXQgb25seSBvbmUgbWVzc2FnZSBpcyByZXR1cm5lZCBhdCBhIHRpbWUgKGUuZy4gaWZcbiAgICAgKiBtdWx0aXBsZSB2YWxpZGl0eSBzdGF0ZXMgYXJlIGludmFsaWQsIG9ubHkgdGhlIGNocm9ub2xvZ2ljYWxseSBmaXJzdCBvbmVcbiAgICAgKiBpcyByZXR1cm5lZCB1bnRpbCBpdCBpcyBmaXhlZCwgYXQgd2hpY2ggcG9pbnQgdGhlIG5leHQgbWVzc2FnZSBtaWdodCBiZVxuICAgICAqIHJldHVybmVkLCBpZiBpdCBpcyBzdGlsbCBhcHBsaWNhYmxlKS4gQWxzbywgYSBjdXN0b20gdmFsaWRpdHkgbWVzc2FnZVxuICAgICAqIChzZWUgYmVsb3cpIGhhcyBwcmVjZWRlbmNlIG92ZXIgbmF0aXZlIHZhbGlkYXRpb24gbWVzc2FnZXMuXG4gICAgICovXG4gICAgcHVibGljIGdldCB2YWxpZGF0aW9uTWVzc2FnZSgpOiBzdHJpbmcge1xuICAgICAgcmV0dXJuIHRoaXMuaW50ZXJuYWxzLnZhbGlkYXRpb25NZXNzYWdlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdHJ1ZSBpZiB0aGlzIGVsZW1lbnQgd2lsbCBiZSB2YWxpZGF0ZWRcbiAgICAgKiB3aGVuIHRoZSBmb3JtIGlzIHN1Ym1pdHRlZDsgZmFsc2Ugb3RoZXJ3aXNlLlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgd2lsbFZhbGlkYXRlKCk6IGJvb2xlYW4ge1xuICAgICAgcmV0dXJuIHRoaXMuaW50ZXJuYWxzLndpbGxWYWxpZGF0ZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF92YWxpZGl0eVN0YXRlcyA9IG5ldyBNYXA8XG4gICAgICBrZXlvZiBWYWxpZGl0eVN0YXRlRmxhZ3MsXG4gICAgICB7IGZsYWdWYWx1ZTogdW5rbm93bjsgbWVzc2FnZTogc3RyaW5nIH1cbiAgICA+KCk7XG5cbiAgICAvKiogV2hlbmV2ZXIgYSBzdXJyb3VuZGluZyBmb3JtIG9yIGZpZWxkc2V0IGlzIGNoYW5naW5nIGl0cyBkaXNhYmxlZCBzdGF0ZS4gKi9cbiAgICBAc3RhdGUoKSBwcm90ZWN0ZWQgYWNjZXNzb3IgZm9ybURpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IoLi4uYXJnczogYW55W10pIHtcbiAgICAgIHN1cGVyKC4uLmFyZ3MpO1xuICAgICAgLy8gV2Ugd2FudCB0byBwcmV2ZW50IHRoZSBuYXRpdmUgYnJvd3NlciB2YWxpZGF0aW9uIG1lc3NhZ2UgcG9wb3ZlclxuICAgICAgLy8gdG8gYmUgc2hvd24uIFRoaXMgYWxzbyBwcmV2ZW50cyBhIGJ1ZyBpbiBXZWJLaXQsIHdoaWNoIHdvdWxkIG5vdFxuICAgICAgLy8gYWxsb3cgaG9zdCBhcyB0aGUgdmFsaWRpdHkgYW5jaG9yOiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjY5ODMyXG4gICAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/LignaW52YWxpZCcsIChlKSA9PiBlLnByZXZlbnREZWZhdWx0KCkpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvdmVycmlkZSBhdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2soXG4gICAgICBuYW1lOiBzdHJpbmcsXG4gICAgICBvbGQ6IHN0cmluZyB8IG51bGwsXG4gICAgICB2YWx1ZTogc3RyaW5nIHwgbnVsbCxcbiAgICApOiB2b2lkIHtcbiAgICAgIGlmIChuYW1lICE9PSAnbmFtZScgfHwgb2xkICE9PSB2YWx1ZSkge1xuICAgICAgICBzdXBlci5hdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2sobmFtZSwgb2xkLCB2YWx1ZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0cnVlIGlmIHRoaXMgZWxlbWVudCBoYXMgbm8gdmFsaWRpdHkgcHJvYmxlbXM7IGZhbHNlIG90aGVyd2lzZS5cbiAgICAgKiBGaXJlcyBhbiBpbnZhbGlkIGV2ZW50IGF0IHRoZSBlbGVtZW50IGluIHRoZSBsYXR0ZXIgY2FzZS5cbiAgICAgKi9cbiAgICBwdWJsaWMgY2hlY2tWYWxpZGl0eSgpOiBib29sZWFuIHtcbiAgICAgIHJldHVybiB0aGlzLmludGVybmFscy5jaGVja1ZhbGlkaXR5KCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0cnVlIGlmIHRoaXMgZWxlbWVudCBoYXMgbm8gdmFsaWRpdHkgcHJvYmxlbXM7IG90aGVyd2lzZSxcbiAgICAgKiByZXR1cm5zIGZhbHNlLCBmaXJlcyBhbiBpbnZhbGlkIGV2ZW50IGF0IHRoZSBlbGVtZW50LFxuICAgICAqIGFuZCAoaWYgdGhlIGV2ZW50IGlzbid0IGNhbmNlbGVkKSByZXBvcnRzIHRoZSBwcm9ibGVtIHRvIHRoZSB1c2VyLlxuICAgICAqL1xuICAgIHB1YmxpYyByZXBvcnRWYWxpZGl0eSgpOiBib29sZWFuIHtcbiAgICAgIHJldHVybiB0aGlzLmludGVybmFscy5yZXBvcnRWYWxpZGl0eSgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldHMgdGhlIGN1c3RvbSB2YWxpZGl0eSBtZXNzYWdlIGZvciB0aGlzIGVsZW1lbnQuIFVzZSB0aGUgZW1wdHkgc3RyaW5nXG4gICAgICogdG8gaW5kaWNhdGUgdGhhdCB0aGUgZWxlbWVudCBkb2VzIG5vdCBoYXZlIGEgY3VzdG9tIHZhbGlkaXR5IGVycm9yLlxuICAgICAqL1xuICAgIHB1YmxpYyBzZXRDdXN0b21WYWxpZGl0eShtZXNzYWdlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgIGlmIChtZXNzYWdlKSB7XG4gICAgICAgIHRoaXMuc2V0VmFsaWRpdHlGbGFnKCdjdXN0b21FcnJvcicsIG1lc3NhZ2UpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5yZW1vdmVWYWxpZGl0eUZsYWcoJ2N1c3RvbUVycm9yJyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2FsbGVkIHdoZW4gdGhlIGFzc29jaWF0ZWQgZm9ybSBlbGVtZW50IGNoYW5nZXMuXG4gICAgICogRWxlbWVudEludGVybmFscy5mb3JtIHJldHVybnMgdGhlIGFzc29jaWF0ZWQgZnJvbSBlbGVtZW50LlxuICAgICAqXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgcHVibGljIGZvcm1Bc3NvY2lhdGVkQ2FsbGJhY2s/KGZvcm06IEhUTUxGb3JtRWxlbWVudCB8IG51bGwpOiB2b2lkO1xuXG4gICAgLyoqXG4gICAgICogSXMgY2FsbGVkIHdoZW5ldmVyIGEgc3Vycm91bmRpbmcgZmllbGRzZXQgY2hhbmdlcyBkaXNhYmxlZCBzdGF0ZS5cbiAgICAgKlxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHB1YmxpYyBmb3JtRGlzYWJsZWRDYWxsYmFjayhfZGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgIHRoaXMuZm9ybURpc2FibGVkID0gdGhpcy5faGFzRGlzYWJsZWRBbmNlc3RvcigpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2hhc0Rpc2FibGVkQW5jZXN0b3IoKTogYm9vbGVhbiB7XG4gICAgICAvLyBDaGVjayBpZiBhbnkgb2YgdGhlIGZpZWxkc2V0IGFuY2VzdG9ycyBoYXMgdGhlIGRpc2FibGVkIGF0dHJpYnV0ZSBzZXQuXG4gICAgICBsZXQgZWxlbWVudDogSFRNTEVsZW1lbnQgfCBudWxsID0gdGhpcy5wYXJlbnRFbGVtZW50O1xuICAgICAgd2hpbGUgKGVsZW1lbnQpIHtcbiAgICAgICAgaWYgKGVsZW1lbnQubG9jYWxOYW1lID09PSAnZmllbGRzZXQnICYmIGVsZW1lbnQuaGFzQXR0cmlidXRlKCdkaXNhYmxlZCcpKSB7XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgZWxlbWVudCA9IGVsZW1lbnQucGFyZW50RWxlbWVudDtcbiAgICAgIH1cbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBJcyBjYWxsZWQgd2hlbmV2ZXIgdGhlIGZvcm0gaXMgYmVpbmcgcmVzZXQuXG4gICAgICpcbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBwdWJsaWMgYWJzdHJhY3QgZm9ybVJlc2V0Q2FsbGJhY2soKTogdm9pZDtcblxuICAgIC8qKlxuICAgICAqICBDYWxsZWQgd2hlbiB0aGUgYnJvd3NlciBpcyB0cnlpbmcgdG8gcmVzdG9yZSBlbGVtZW504oCZcyBzdGF0ZSB0byBzdGF0ZSBpbiB3aGljaCBjYXNlXG4gICAgICogIHJlYXNvbiBpcyBcInJlc3RvcmVcIiwgb3Igd2hlbiB0aGUgYnJvd3NlciBpcyB0cnlpbmcgdG8gZnVsZmlsbCBhdXRvZmlsbCBvbiBiZWhhbGYgb2ZcbiAgICAgKiAgdXNlciBpbiB3aGljaCBjYXNlIHJlYXNvbiBpcyBcImF1dG9jb21wbGV0ZVwiLlxuICAgICAqICBJbiB0aGUgY2FzZSBvZiBcInJlc3RvcmVcIiwgc3RhdGUgaXMgYSBzdHJpbmcsIEZpbGUsIG9yIEZvcm1EYXRhIG9iamVjdFxuICAgICAqICBwcmV2aW91c2x5IHNldCBhcyB0aGUgc2Vjb25kIGFyZ3VtZW50IHRvIHNldEZvcm1WYWx1ZS5cbiAgICAgKlxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHB1YmxpYyBhYnN0cmFjdCBmb3JtU3RhdGVSZXN0b3JlQ2FsbGJhY2soXG4gICAgICBzdGF0ZTogRm9ybVJlc3RvcmVTdGF0ZSB8IG51bGwsXG4gICAgICByZWFzb246IEZvcm1SZXN0b3JlUmVhc29uLFxuICAgICk6IHZvaWQ7XG5cbiAgICBwdWJsaWMgb3ZlcnJpZGUgcmVxdWVzdFVwZGF0ZShcbiAgICAgIG5hbWU/OiBQcm9wZXJ0eUtleSxcbiAgICAgIG9sZFZhbHVlPzogdW5rbm93bixcbiAgICAgIG9wdGlvbnM/OiBQcm9wZXJ0eURlY2xhcmF0aW9uLFxuICAgICk6IHZvaWQge1xuICAgICAgc3VwZXIucmVxdWVzdFVwZGF0ZShuYW1lLCBvbGRWYWx1ZSwgb3B0aW9ucyk7XG4gICAgICBpZiAobmFtZSA9PT0gJ3ZhbHVlJykge1xuICAgICAgICB0aGlzLnVwZGF0ZUZvcm1WYWx1ZSgpO1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMuaGFzVXBkYXRlZCAmJiB0aGlzLnNob3VsZFZhbGlkYXRlKG5hbWUpKSB7XG4gICAgICAgIHRoaXMudmFsaWRhdGUoKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgZmlyc3RVcGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzOiBQcm9wZXJ0eVZhbHVlczx0aGlzPik6IHZvaWQge1xuICAgICAgc3VwZXIuZmlyc3RVcGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzKTtcbiAgICAgIHRoaXMudmFsaWRhdGUoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTaG91bGQgYmUgY2FsbGVkIHdoZW4gZm9ybSB2YWx1ZSBpcyBjaGFuZ2VkLlxuICAgICAqIEFkYXB0cyBhbmQgc2V0cyB0aGUgZm9ybVZhbHVlIGluIHRoZSBzdXBwb3J0ZWQgZm9ybWF0IChzdHJpbmcgfCBGb3JtRGF0YSB8IEZpbGUgfCBudWxsKVxuICAgICAqIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0FQSS9FbGVtZW50SW50ZXJuYWxzL3NldEZvcm1WYWx1ZVxuICAgICAqL1xuICAgIHByb3RlY3RlZCB1cGRhdGVGb3JtVmFsdWUoKTogdm9pZCB7XG4gICAgICBsZXQgZm9ybVZhbHVlOiBGb3JtRGF0YSB8IHN0cmluZyB8IG51bGw7XG4gICAgICBjb25zdCBuYW1lID0gdGhpcy5uYW1lID8/IHRoaXMuZ2V0QXR0cmlidXRlKCduYW1lJyk7XG5cbiAgICAgIGlmICh0eXBlb2YgdGhpcy52YWx1ZSA9PT0gJ3N0cmluZycgfHwgdGhpcy52YWx1ZSA9PSBudWxsKSB7XG4gICAgICAgIGZvcm1WYWx1ZSA9IHRoaXMudmFsdWUgYXMgc3RyaW5nIHwgbnVsbDtcbiAgICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheSh0aGlzLnZhbHVlKSkge1xuICAgICAgICBmb3JtVmFsdWUgPSBuZXcgRm9ybURhdGEoKTtcbiAgICAgICAgdGhpcy52YWx1ZS5mb3JFYWNoKChlbCkgPT4ge1xuICAgICAgICAgIChmb3JtVmFsdWUgYXMgRm9ybURhdGEpLmFwcGVuZChcbiAgICAgICAgICAgIG5hbWUsXG4gICAgICAgICAgICB0eXBlb2YgZWwgPT09ICdzdHJpbmcnXG4gICAgICAgICAgICAgID8gZWxcbiAgICAgICAgICAgICAgOiBuZXcgQmxvYihbSlNPTi5zdHJpbmdpZnkoZWwpXSwge1xuICAgICAgICAgICAgICAgICAgdHlwZTogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICk7XG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZm9ybVZhbHVlID0gbmV3IEZvcm1EYXRhKCk7XG4gICAgICAgIGZvcm1WYWx1ZS5hcHBlbmQoXG4gICAgICAgICAgbmFtZSxcbiAgICAgICAgICBuZXcgQmxvYihbSlNPTi5zdHJpbmdpZnkodGhpcy52YWx1ZSldLCB7XG4gICAgICAgICAgICB0eXBlOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgICAgICAgfSksXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIC8vIElmIHRoZSBmb3JtIHN0YXRlIGlzIHVuZGVmaW5lZCB0aGVuIGZvcm0gdmFsdWUgd2lsbCBiZSBjb3BpZWQgdG8gc3RhdGUuXG4gICAgICB0aGlzLmludGVybmFscy5zZXRGb3JtVmFsdWUoZm9ybVZhbHVlLCB0aGlzLmZvcm1TdGF0ZT8uKCkpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBmb3JtU3RhdGU/KCk6IEZvcm1SZXN0b3JlU3RhdGU7XG5cbiAgICAvKipcbiAgICAgKiBNYXJrcyB0aGlzIGVsZW1lbnQgYXMgc3VmZmVyaW5nIGZyb20gdGhlIGNvbnN0cmFpbnQgaW5kaWNhdGVkIGJ5IHRoZVxuICAgICAqIGZsYWcgYXJndW1lbnQgYW5kIGFzc29jaWF0ZXMgdGhlIGdpdmVuIG1lc3NhZ2UgdG8gaXQuXG4gICAgICogTm90ZSB0aGF0IG9ubHkgb25lIG1lc3NhZ2UgaXMgZGlzcGxheWVkIGF0IGEgdGltZSBhbmQgY3VzdG9tIG1lc3NhZ2VzIGJ5XG4gICAgICogY29uc3VtZXJzIGFyZSBhbHdheXMgZGlzcGxheWVkIGJlZm9yZSBpbnRlcm5hbCBtZXNzYWdlcyBhbmQgaW50ZXJuYWxcbiAgICAgKiBtZXNzYWdlcyBhcmUgZGlzcGxheWVkIGluIHRoZSBvcmRlciB0aGV5IHdlcmUgYWRkZWQuXG4gICAgICogVG8gc2V0L2RlZmluZSBjdXN0b20gdmFsaWRpdHkgc3RhdGUgZmxhZ3MsIHlvdSBuZWVkIHRvIGV4dGVuZCB0aGVcbiAgICAgKiBWYWxpZGl0eVN0YXRlIHByb3RvdHlwZSAoYW5kIHRoZSBDdXN0b21WYWxpZGl0eVN0YXRlIGludGVyZmFjZSkuXG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogICAvLyBUaGUgdHlwZSBvZiB0aGUgY3VzdG9tIHZhbGlkaXR5IHN0YXRlIGRvZXMgbm90IG5lZWQgdG8gYmUgYm9vbGVhbi5cbiAgICAgKiAgIE9iamVjdC5hc3NpZ24oVmFsaWRpdHlTdGF0ZS5wcm90b3R5cGUsIHtcbiAgICAgKiAgICAgZ2V0IG15RXJyb3IoKTogYm9vbGVhbiB7XG4gICAgICogICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAqICAgICB9LFxuICAgICAqICAgfSk7XG4gICAgICpcbiAgICAgKiAgIGRlY2xhcmUgZ2xvYmFsIHtcbiAgICAgKiAgICAgaW50ZXJmYWNlIEN1c3RvbVZhbGlkaXR5U3RhdGUge1xuICAgICAqICAgICAgIG15RXJyb3I6IGJvb2xlYW47XG4gICAgICogICAgIH1cbiAgICAgKiAgIH1cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgc2V0VmFsaWRpdHlGbGFnPFQgZXh0ZW5kcyBrZXlvZiBWYWxpZGl0eVN0YXRlRmxhZ3M+KFxuICAgICAgZmxhZzogVCxcbiAgICAgIG1lc3NhZ2U6IHN0cmluZyxcbiAgICAgIGZsYWdWYWx1ZT86IFZhbGlkaXR5U3RhdGVGbGFnc1tUXSxcbiAgICApOiB2b2lkIHtcbiAgICAgIGZsYWdWYWx1ZSA/Pz0gdHJ1ZTtcbiAgICAgIGNvbnN0IHZhbGlkaXR5U3RhdGUgPSB0aGlzLl92YWxpZGl0eVN0YXRlcy5nZXQoZmxhZyk7XG4gICAgICBpZiAoXG4gICAgICAgICF2YWxpZGl0eVN0YXRlIHx8XG4gICAgICAgIHZhbGlkaXR5U3RhdGUubWVzc2FnZSAhPT0gbWVzc2FnZSB8fFxuICAgICAgICB2YWxpZGl0eVN0YXRlLmZsYWdWYWx1ZSAhPT0gZmxhZ1ZhbHVlXG4gICAgICApIHtcbiAgICAgICAgdGhpcy5fdmFsaWRpdHlTdGF0ZXMuc2V0KGZsYWcsIHsgZmxhZ1ZhbHVlLCBtZXNzYWdlIH0pO1xuICAgICAgICB0aGlzLl9zZXRJbnRlcm5hbFZhbGlkaXR5KCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLyoqIFJlbW92ZXMgdGhlIHZhbGlkaXR5IHN0YXRlIGZsYWcgZW50cnkgYW5kIHVwZGF0ZXMgdmFsaWRpdHkgc3RhdGUuICovXG4gICAgcHJvdGVjdGVkIHJlbW92ZVZhbGlkaXR5RmxhZzxUIGV4dGVuZHMga2V5b2YgVmFsaWRpdHlTdGF0ZUZsYWdzPihmbGFnOiBUKTogdm9pZCB7XG4gICAgICBpZiAodGhpcy5fdmFsaWRpdHlTdGF0ZXMuaGFzKGZsYWcpKSB7XG4gICAgICAgIHRoaXMuX3ZhbGlkaXR5U3RhdGVzLmRlbGV0ZShmbGFnKTtcbiAgICAgICAgdGhpcy5fc2V0SW50ZXJuYWxWYWxpZGl0eSgpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBUbyBiZSBjYWxsZWQgd2hlbmV2ZXIgdGhlIGN1cnJlbnQgZWxlbWVudCBuZWVkcyB0byBiZSB2YWxpZGF0ZWQuICovXG4gICAgcHJvdGVjdGVkIHZhbGlkYXRlKCk6IHZvaWQge31cblxuICAgIC8qKiBXaGV0aGVyIHZhbGlkYXRpb24gc2hvdWxkIGJlIHJ1biBvbiBhIHByb3BlcnR5IGNoYW5nZSB3aXRoIHRoZSBnaXZlbiBuYW1lLiAqL1xuICAgIHByb3RlY3RlZCBzaG91bGRWYWxpZGF0ZShuYW1lOiBQcm9wZXJ0eUtleSB8IHVuZGVmaW5lZCk6IGJvb2xlYW4ge1xuICAgICAgcmV0dXJuICFuYW1lO1xuICAgIH1cblxuICAgIHByaXZhdGUgX3NldEludGVybmFsVmFsaWRpdHkoKTogdm9pZCB7XG4gICAgICBsZXQgb3V0cHV0TWVzc2FnZSA9IHRoaXMuX3ZhbGlkaXR5U3RhdGVzLmdldCgnY3VzdG9tRXJyb3InKT8ubWVzc2FnZTtcbiAgICAgIGNvbnN0IGZsYWdzOiBWYWxpZGl0eVN0YXRlRmxhZ3MgPSB7fTtcbiAgICAgIHRoaXMuX3ZhbGlkaXR5U3RhdGVzLmZvckVhY2goKHsgZmxhZ1ZhbHVlLCBtZXNzYWdlIH0sIGZsYWcpID0+IHtcbiAgICAgICAgZmxhZ3NbZmxhZ10gPSBmbGFnVmFsdWUgYXMgYW55O1xuICAgICAgICBvdXRwdXRNZXNzYWdlIHx8PSBtZXNzYWdlO1xuICAgICAgfSk7XG5cbiAgICAgIGNvbnN0IGN1c3RvbUZsYWdzID0gT2JqZWN0LmtleXMoVmFsaWRpdHlTdGF0ZS5wcm90b3R5cGUpLmZpbHRlcihcbiAgICAgICAgKGYpID0+ICEoZiBpbiB2YWxpZGl0eUtleXMpICYmIGYgIT09ICd2YWxpZCcsXG4gICAgICApO1xuICAgICAgZm9yIChjb25zdCBmbGFnIG9mIGN1c3RvbUZsYWdzKSB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gZmxhZyBpbiBmbGFncyA/IGZsYWdzW2ZsYWcgYXMga2V5b2YgVmFsaWRpdHlTdGF0ZUZsYWdzXSA6IGZhbHNlO1xuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcy5pbnRlcm5hbHMudmFsaWRpdHksIGZsYWcsIHsgdmFsdWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZSB9KTtcbiAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgLy8gSWYgYW55IGN1c3RvbSBlcnJvcnMgYXJlIHByb3ZpZGVkLCB3ZSBuZWVkIHRvIHNldCBjdXN0b21FcnJvciB0byB0cnVlLFxuICAgICAgICAgIC8vIGFzIHRoaXMgaXMgdGhlIG9ubHkgY3VzdG9tIGVycm9yIHByb3BlcnR5IGJyb3dzZXJzIGFjY2VwdC5cbiAgICAgICAgICBmbGFncy5jdXN0b21FcnJvciA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgdGhpcy5pbnRlcm5hbHMuc2V0VmFsaWRpdHkoZmxhZ3MsIG91dHB1dE1lc3NhZ2UpO1xuXG4gICAgICAvLyBXZWJLaXQgc2VlbXMgdG8gYWx3YXlzIHNldCBjdXN0b21FcnJvciB0byB0cnVlLCBpZiBhbnkgZXJyb3IgaXMgYWN0aXZlLlxuICAgICAgLy8gRHVlIHRvIHRoaXMgd2UgcGF0Y2ggdGhlIGN1c3RvbUVycm9yIHZhbHVlIG1hbnVhbGx5LlxuICAgICAgaWYgKGlzV2Via2l0KSB7XG4gICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLmludGVybmFscy52YWxpZGl0eSwgJ2N1c3RvbUVycm9yJywge1xuICAgICAgICAgIHZhbHVlOiB0aGlzLl92YWxpZGl0eVN0YXRlcy5oYXMoJ2N1c3RvbUVycm9yJykgfHwgISFmbGFncy5jdXN0b21FcnJvcixcbiAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICByZXR1cm4gU2JiRm9ybUFzc29jaWF0ZWRFbGVtZW50IGFzIHVua25vd24gYXMgQWJzdHJhY3RDb25zdHJ1Y3RvcjxTYmJGb3JtQXNzb2NpYXRlZE1peGluVHlwZT4gJiBUO1xufTtcblxuLyoqXG4gKiBBIHZhbHVlIHRvIGJlIHJlc3RvcmVkIGZvciBhIGNvbXBvbmVudCdzIGZvcm0gdmFsdWUuIElmIGEgY29tcG9uZW50J3MgZm9ybVxuICogc3RhdGUgaXMgYSBgRm9ybURhdGFgIG9iamVjdCwgaXRzIGVudHJ5IGxpc3Qgb2YgbmFtZSBhbmQgdmFsdWVzIHdpbGwgYmVcbiAqIHByb3ZpZGVkLlxuICovXG5leHBvcnQgdHlwZSBGb3JtUmVzdG9yZVN0YXRlID0gc3RyaW5nIHwgRm9ybURhdGEgfCBGaWxlO1xuXG4vKipcbiAqIFRoZSByZWFzb24gYSBmb3JtIGNvbXBvbmVudCBpcyBiZWluZyByZXN0b3JlZCBmb3IsIGVpdGhlciBgJ3Jlc3RvcmUnYCBmb3JcbiAqIGJyb3dzZXIgcmVzdG9yYXRpb24gb3IgYCdhdXRvY29tcGxldGUnYCBmb3IgcmVzdG9yaW5nIHVzZXIgdmFsdWVzLlxuICovXG5leHBvcnQgdHlwZSBGb3JtUmVzdG9yZVJlYXNvbiA9ICdyZXN0b3JlJyB8ICdhdXRvY29tcGxldGUnO1xuIl0sIm1hcHBpbmdzIjoiOzs7O0FBa0JBLElBQU0sZUFBOEU7Q0FDbEYsVUFBVTtDQUNWLGFBQWE7Q0FDYixpQkFBaUI7Q0FDakIsZUFBZTtDQUNmLGdCQUFnQjtDQUNoQixjQUFjO0NBQ2QsU0FBUztDQUNULFVBQVU7Q0FDVixjQUFjO0NBQ2QsY0FBYzs7QUFLaEIsSUFBSSxPQUFPLGtCQUFrQixhQUFhO0NBQ3hDLE1BQU0sZ0JBQWdCLE1BQU0sY0FBYTtFQUN2QyxJQUFXLFFBQUs7R0FDZCxPQUFPO0VBQ1Q7RUFDQSxjQUFBO0dBQ0UsTUFBTSxJQUFJLFVBQVUscUJBQXFCO0VBQzNDOztDQUVGLE9BQU8sUUFBUSxZQUFZLEVBQUUsU0FBUyxDQUFDLEtBQUssV0FDMUMsT0FBTyxPQUFPLGNBQWMsV0FBVyxFQUNyQyxLQUFLLE9BQUk7RUFDUCxPQUFPO0NBQ1QsRUFBQSxDQUNELENBQUM7Q0FFSixXQUFXLGdCQUFnQjtBQUM3Qjs7OztBQTJDQSxJQUFhLDBCQUNYLGVBQ3VEO0NBK1R2RCxjQTlUdUM7b0JBQzdCOzs7Ozs7ZUFESyxpQ0FDTCxZ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
@@ -1 +1 @@
1
- {"version":3,"file":"form-associated-radio-button-mixin.d.ts","sourceRoot":"","sources":["../../../../../src/elements/core/mixins/form-associated-radio-button-mixin.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,UAAU,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAIrF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAE5D,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EAEtB,MAAM,4BAA4B,CAAC;AAGpC;;;;;;GAMG;AACH,eAAO,MAAM,mBAAmB,wEAG7B,CAAC;;AAEJ,MAAM,CAAC,OAAO,CAAC,QAAQ,OAAO,qCAAsC,SAAQ,0CAE3E;IACC,SAAgB,OAAO,EAAE,OAAO,CAAC;IAEjC,SAAS,CAAC,sBAAsB,CAAC,EAAE,GAAG,CAAC,qCAAqC,CAAC,CAAC;IAEvE,iBAAiB,IAAI,IAAI;IACzB,wBAAwB,CAAC,KAAK,EAAE,gBAAgB,GAAG,IAAI,EAAE,MAAM,EAAE,iBAAiB,GAAG,IAAI;IAEhG,SAAS,CAAC,eAAe,IAAI,IAAI;IACjC,SAAS,CAAC,qBAAqB,IAAI,IAAI;IACvC,SAAS,CAAC,gBAAgB,IAAI,IAAI;IAClC,SAAS,CAAC,kBAAkB,CAAC,KAAK,EAAE,qCAAqC,GAAG,OAAO,CAAC,IAAI,CAAC;CAC1F;AAED;;GAEG;AAEH,eAAO,MAAM,iCAAiC,GAC5C,CAAC,SAAS,mBAAmB,CAAC,UAAU,CAAC,GAAG,qBAAqB,EAEjE,YAAY,CAAC,KACZ,mBAAmB,CAAC,qCAAqC,CAAC,GAAG,CAoT/D,CAAC"}
1
+ {"version":3,"file":"form-associated-radio-button-mixin.d.ts","sourceRoot":"","sources":["../../../../../src/elements/core/mixins/form-associated-radio-button-mixin.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,UAAU,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAIrF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAE5D,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EAEtB,MAAM,4BAA4B,CAAC;AAGpC;;;;;;GAMG;AACH,eAAO,MAAM,mBAAmB,wEAG7B,CAAC;;AAEJ,MAAM,CAAC,OAAO,CAAC,QAAQ,OAAO,qCAAsC,SAAQ,0CAE3E;IACC,SAAgB,OAAO,EAAE,OAAO,CAAC;IAEjC,SAAS,CAAC,sBAAsB,CAAC,EAAE,GAAG,CAAC,qCAAqC,CAAC,CAAC;IAEvE,iBAAiB,IAAI,IAAI;IACzB,wBAAwB,CAAC,KAAK,EAAE,gBAAgB,GAAG,IAAI,EAAE,MAAM,EAAE,iBAAiB,GAAG,IAAI;IAEhG,SAAS,CAAC,eAAe,IAAI,IAAI;IACjC,SAAS,CAAC,qBAAqB,IAAI,IAAI;IACvC,SAAS,CAAC,gBAAgB,IAAI,IAAI;IAClC,SAAS,CAAC,kBAAkB,CAAC,KAAK,EAAE,qCAAqC,GAAG,OAAO,CAAC,IAAI,CAAC;CAC1F;AAED;;GAEG;AAEH,eAAO,MAAM,iCAAiC,GAC5C,CAAC,SAAS,mBAAmB,CAAC,UAAU,CAAC,GAAG,qBAAqB,EAEjE,YAAY,CAAC,KACZ,mBAAmB,CAAC,qCAAqC,CAAC,GAAG,CAsT/D,CAAC"}
@@ -81,10 +81,13 @@ var SbbFormAssociatedRadioButtonMixin = (superClass) => {
81
81
  return this._checked;
82
82
  }
83
83
  set name(value) {
84
- super.name = value;
85
- this._disconnectFromRegistry();
86
- this._connectToRegistry();
87
- this._synchronizeGroupState();
84
+ const previousName = this.name;
85
+ if (value !== previousName) {
86
+ super.name = value;
87
+ this._disconnectFromRegistry(previousName);
88
+ this._connectToRegistry();
89
+ this._synchronizeGroupState();
90
+ }
88
91
  }
89
92
  get name() {
90
93
  return super.name;
@@ -109,7 +112,7 @@ var SbbFormAssociatedRadioButtonMixin = (superClass) => {
109
112
  }
110
113
  disconnectedCallback() {
111
114
  super.disconnectedCallback();
112
- this._disconnectFromRegistry();
115
+ this._disconnectFromRegistry(this.name);
113
116
  }
114
117
  /**
115
118
  * Is called whenever the form is being reset.
@@ -230,9 +233,9 @@ var SbbFormAssociatedRadioButtonMixin = (superClass) => {
230
233
  /**
231
234
  * Remove `this` from the radioButton registry and, if the group is empty, delete the entry from the groups Map
232
235
  */
233
- _disconnectFromRegistry() {
236
+ _disconnectFromRegistry(previousName) {
234
237
  this.associatedRadioButtons?.delete(this);
235
- if (this.associatedRadioButtons?.size === 0) this._radioButtonGroupsMap?.delete(this.name);
238
+ if (this.associatedRadioButtons?.size === 0) this._radioButtonGroupsMap?.delete(previousName);
236
239
  else this.validate();
237
240
  this.associatedRadioButtons = void 0;
238
241
  this._radioButtonGroupsMap = void 0;
@@ -262,4 +265,4 @@ var SbbFormAssociatedRadioButtonMixin = (superClass) => {
262
265
  //#endregion
263
266
  export { SbbFormAssociatedRadioButtonMixin, radioButtonRegistry };
264
267
 
265
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1hc3NvY2lhdGVkLXJhZGlvLWJ1dHRvbi1taXhpbi5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvY29yZS9taXhpbnMvZm9ybS1hc3NvY2lhdGVkLXJhZGlvLWJ1dHRvbi1taXhpbi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc1NlcnZlciwgdHlwZSBQcm9wZXJ0eVZhbHVlcyB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBwcm9wZXJ0eSB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcblxuaW1wb3J0IHsgZ2V0TmV4dEVsZW1lbnRJbmRleCwgaXNBcnJvd0tleVByZXNzZWQgfSBmcm9tICcuLi9hMTF5L2Fycm93LW5hdmlnYXRpb24udHMnO1xuaW1wb3J0IHsgaW50ZXJhY3Rpdml0eUNoZWNrZXIgfSBmcm9tICcuLi9hMTF5L2ludGVyYWN0aXZpdHktY2hlY2tlci50cyc7XG5pbXBvcnQgdHlwZSB7IFNiYkVsZW1lbnQsIFNiYkVsZW1lbnRDb25zdHJ1Y3RvciB9IGZyb20gJy4uL2Jhc2UtZWxlbWVudHMvZWxlbWVudC50cyc7XG5pbXBvcnQgeyBTYmJMYW5ndWFnZUNvbnRyb2xsZXIgfSBmcm9tICcuLi9jb250cm9sbGVycy9sYW5ndWFnZS1jb250cm9sbGVyLnRzJztcbmltcG9ydCB7IGkxOG5TZWxlY3Rpb25SZXF1aXJlZCB9IGZyb20gJy4uL2kxOG4vaTE4bi50cyc7XG5cbmltcG9ydCB0eXBlIHsgQWJzdHJhY3RDb25zdHJ1Y3RvciB9IGZyb20gJy4vY29uc3RydWN0b3IudHMnO1xuaW1wb3J0IHsgU2JiRGlzYWJsZWRNaXhpbiB9IGZyb20gJy4vZGlzYWJsZWQtbWl4aW4udHMnO1xuaW1wb3J0IHtcbiAgdHlwZSBGb3JtUmVzdG9yZVJlYXNvbixcbiAgdHlwZSBGb3JtUmVzdG9yZVN0YXRlLFxuICBTYmJGb3JtQXNzb2NpYXRlZE1peGluLFxufSBmcm9tICcuL2Zvcm0tYXNzb2NpYXRlZC1taXhpbi50cyc7XG5pbXBvcnQgeyBTYmJSZXF1aXJlZE1peGluIH0gZnJvbSAnLi9yZXF1aXJlZC1taXhpbi50cyc7XG5cbi8qKlxuICogQSBzdGF0aWMgcmVnaXN0cnkgdGhhdCBob2xkcyBhIGNvbGxlY3Rpb24gb2YgZ3JvdXBlZCBgcmFkaW8tYnV0dG9uc2AuXG4gKiBHcm91cHMgb2YgcmFkaW8gYnV0dG9ucyBhcmUgbG9jYWwgdG8gdGhlIGZvcm0gdGhleSBiZWxvbmcgKG9yIHRoZSBgcmVuZGVyUm9vdGAgaWYgdGhleSdyZSBub3QgcGFydCBvZiBhbnkgZm9ybSlcbiAqIE11bHRpcGxlIGdyb3VwcyBvZiByYWRpbyB3aXRoIHRoZSBzYW1lIG5hbWUgY2FuIGNvZXhpc3QgKGFzIGxvbmcgYXMgdGhleSBiZWxvbmcgdG8gYSBkaWZmZXJlbnQgZm9ybSAvIHJlbmRlclJvb3QpXG4gKiBJdCBpcyBtYWlubHkgdXNlZCB0byBzdXBwb3J0IHRoZSBzdGFuZGFsb25lIGdyb3VwcyBvZiByYWRpb3MuXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGNvbnN0IHJhZGlvQnV0dG9uUmVnaXN0cnkgPSBuZXcgV2Vha01hcDxcbiAgTm9kZSxcbiAgTWFwPHN0cmluZywgU2V0PFNiYkZvcm1Bc3NvY2lhdGVkUmFkaW9CdXR0b25NaXhpblR5cGU+PlxuPigpO1xuXG5leHBvcnQgZGVjbGFyZSBhYnN0cmFjdCBjbGFzcyBTYmJGb3JtQXNzb2NpYXRlZFJhZGlvQnV0dG9uTWl4aW5UeXBlIGV4dGVuZHMgU2JiRGlzYWJsZWRNaXhpbihcbiAgU2JiUmVxdWlyZWRNaXhpbihTYmJGb3JtQXNzb2NpYXRlZE1peGluKFNiYkVsZW1lbnQpKSxcbikge1xuICBwdWJsaWMgYWNjZXNzb3IgY2hlY2tlZDogYm9vbGVhbjtcblxuICBwcm90ZWN0ZWQgYXNzb2NpYXRlZFJhZGlvQnV0dG9ucz86IFNldDxTYmJGb3JtQXNzb2NpYXRlZFJhZGlvQnV0dG9uTWl4aW5UeXBlPjtcblxuICBwdWJsaWMgZm9ybVJlc2V0Q2FsbGJhY2soKTogdm9pZDtcbiAgcHVibGljIGZvcm1TdGF0ZVJlc3RvcmVDYWxsYmFjayhzdGF0ZTogRm9ybVJlc3RvcmVTdGF0ZSB8IG51bGwsIHJlYXNvbjogRm9ybVJlc3RvcmVSZWFzb24pOiB2b2lkO1xuXG4gIHByb3RlY3RlZCB1cGRhdGVGb3JtVmFsdWUoKTogdm9pZDtcbiAgcHJvdGVjdGVkIHVwZGF0ZUZvY3VzYWJsZVJhZGlvcygpOiB2b2lkO1xuICBwcm90ZWN0ZWQgZW1pdENoYW5nZUV2ZW50cygpOiB2b2lkO1xuICBwcm90ZWN0ZWQgbmF2aWdhdGVCeUtleWJvYXJkKHJhZGlvOiBTYmJGb3JtQXNzb2NpYXRlZFJhZGlvQnV0dG9uTWl4aW5UeXBlKTogUHJvbWlzZTx2b2lkPjtcbn1cblxuLyoqXG4gKiBUaGUgU2JiRm9ybUFzc29jaWF0ZWRSYWRpb0J1dHRvbk1peGluIGVuYWJsZXMgbmF0aXZlIGZvcm0gc3VwcG9ydCBmb3IgcmFkaW8gY29udHJvbHMuXG4gKi9cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbmV4cG9ydCBjb25zdCBTYmJGb3JtQXNzb2NpYXRlZFJhZGlvQnV0dG9uTWl4aW4gPSA8XG4gIFQgZXh0ZW5kcyBBYnN0cmFjdENvbnN0cnVjdG9yPFNiYkVsZW1lbnQ+ICYgU2JiRWxlbWVudENvbnN0cnVjdG9yLFxuPihcbiAgc3VwZXJDbGFzczogVCxcbik6IEFic3RyYWN0Q29uc3RydWN0b3I8U2JiRm9ybUFzc29jaWF0ZWRSYWRpb0J1dHRvbk1peGluVHlwZT4gJiBUID0+IHtcbiAgYWJzdHJhY3QgY2xhc3MgU2JiRm9ybUFzc29jaWF0ZWRSYWRpb0J1dHRvbkVsZW1lbnRcbiAgICBleHRlbmRzIFNiYkRpc2FibGVkTWl4aW4oU2JiUmVxdWlyZWRNaXhpbihTYmJGb3JtQXNzb2NpYXRlZE1peGluKHN1cGVyQ2xhc3MpKSlcbiAgICBpbXBsZW1lbnRzIFBhcnRpYWw8U2JiRm9ybUFzc29jaWF0ZWRSYWRpb0J1dHRvbk1peGluVHlwZT5cbiAge1xuICAgIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgcmVhZG9ubHkgcm9sZSA9ICdyYWRpbyc7XG5cbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHRoZSByYWRpbyBidXR0b24gaXMgY2hlY2tlZC5cbiAgICAgKi9cbiAgICBAcHJvcGVydHkoeyB0eXBlOiBCb29sZWFuIH0pXG4gICAgcHVibGljIHNldCBjaGVja2VkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICB0aGlzLl9jaGVja2VkID0gISF2YWx1ZTtcblxuICAgICAgdGhpcy50b2dnbGVTdGF0ZSgnY2hlY2tlZCcsIHRoaXMuY2hlY2tlZCk7XG4gICAgICB0aGlzLmludGVybmFscy5hcmlhQ2hlY2tlZCA9IHRoaXMuY2hlY2tlZC50b1N0cmluZygpO1xuICAgICAgdGhpcy51cGRhdGVGb3JtVmFsdWUoKTtcbiAgICAgIHRoaXMuX3N5bmNocm9uaXplR3JvdXBTdGF0ZSgpO1xuICAgIH1cbiAgICBwdWJsaWMgZ2V0IGNoZWNrZWQoKTogYm9vbGVhbiB7XG4gICAgICByZXR1cm4gdGhpcy5fY2hlY2tlZDtcbiAgICB9XG4gICAgcHJpdmF0ZSBfY2hlY2tlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgQHByb3BlcnR5KClcbiAgICBwdWJsaWMgb3ZlcnJpZGUgc2V0IG5hbWUodmFsdWU6IHN0cmluZykge1xuICAgICAgc3VwZXIubmFtZSA9IHZhbHVlO1xuXG4gICAgICB0aGlzLl9kaXNjb25uZWN0RnJvbVJlZ2lzdHJ5KCk7XG4gICAgICB0aGlzLl9jb25uZWN0VG9SZWdpc3RyeSgpO1xuICAgICAgdGhpcy5fc3luY2hyb25pemVHcm91cFN0YXRlKCk7XG4gICAgfVxuICAgIHB1YmxpYyBvdmVycmlkZSBnZXQgbmFtZSgpOiBzdHJpbmcge1xuICAgICAgcmV0dXJuIHN1cGVyLm5hbWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRm9ybSB0eXBlIG9mIGVsZW1lbnQuXG4gICAgICogQGRlZmF1bHQgJ3JhZGlvJ1xuICAgICAqL1xuICAgIHB1YmxpYyBvdmVycmlkZSBnZXQgdHlwZSgpOiBzdHJpbmcge1xuICAgICAgcmV0dXJuICdyYWRpbyc7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0IG9mIHJhZGlvIGJ1dHRvbnMgdGhhdCBiZWxvbmdzIHRvIHRoZSBzYW1lIGdyb3VwIG9mIGB0aGlzYC5cbiAgICAgKiBBc3N1bWUgdGhlbSBvcmRlcmVkIGluIERPTSBvcmRlclxuICAgICAqL1xuICAgIHByb3RlY3RlZCBhc3NvY2lhdGVkUmFkaW9CdXR0b25zPzogU2V0PFNiYkZvcm1Bc3NvY2lhdGVkUmFkaW9CdXR0b25FbGVtZW50PjtcbiAgICBwcml2YXRlIF9yYWRpb0J1dHRvbkdyb3Vwc01hcD86IE1hcDxzdHJpbmcsIFNldDxTYmJGb3JtQXNzb2NpYXRlZFJhZGlvQnV0dG9uTWl4aW5UeXBlPj47XG4gICAgcHJpdmF0ZSBfbGFuZ3VhZ2VDb250cm9sbGVyID0gbmV3IFNiYkxhbmd1YWdlQ29udHJvbGxlcih0aGlzKTtcblxuICAgIHByb3RlY3RlZCBjb25zdHJ1Y3RvcigpIHtcbiAgICAgIHN1cGVyKCk7XG4gICAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/Ligna2V5ZG93bicsIChlKSA9PiB0aGlzLl9oYW5kbGVBcnJvd0tleURvd24oZSkpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvdmVycmlkZSBjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICAgIHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgICB0aGlzLl9jb25uZWN0VG9SZWdpc3RyeSgpO1xuICAgICAgdGhpcy5fc3luY2hyb25pemVHcm91cFN0YXRlKCk7XG4gICAgfVxuXG4gICAgcHVibGljIG92ZXJyaWRlIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgICAgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKTtcbiAgICAgIHRoaXMuX2Rpc2Nvbm5lY3RGcm9tUmVnaXN0cnkoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBJcyBjYWxsZWQgd2hlbmV2ZXIgdGhlIGZvcm0gaXMgYmVpbmcgcmVzZXQuXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgcHVibGljIG92ZXJyaWRlIGZvcm1SZXNldENhbGxiYWNrKCk6IHZvaWQge1xuICAgICAgdGhpcy5jaGVja2VkID0gdGhpcy5oYXNBdHRyaWJ1dGUoJ2NoZWNrZWQnKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiAgQ2FsbGVkIHdoZW4gdGhlIGJyb3dzZXIgaXMgdHJ5aW5nIHRvIHJlc3RvcmUgZWxlbWVudOKAmXMgc3RhdGUgdG8gc3RhdGUgaW4gd2hpY2ggY2FzZVxuICAgICAqICByZWFzb24gaXMgXCJyZXN0b3JlXCIsIG9yIHdoZW4gdGhlIGJyb3dzZXIgaXMgdHJ5aW5nIHRvIGZ1bGZpbGwgYXV0b2ZpbGwgb24gYmVoYWxmIG9mXG4gICAgICogIHVzZXIgaW4gd2hpY2ggY2FzZSByZWFzb24gaXMgXCJhdXRvY29tcGxldGVcIi5cbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBwdWJsaWMgb3ZlcnJpZGUgZm9ybVN0YXRlUmVzdG9yZUNhbGxiYWNrKFxuICAgICAgc3RhdGU6IEZvcm1SZXN0b3JlU3RhdGUgfCBudWxsLFxuICAgICAgX3JlYXNvbjogRm9ybVJlc3RvcmVSZWFzb24sXG4gICAgKTogdm9pZCB7XG4gICAgICBpZiAodHlwZW9mIHN0YXRlID09PSAnc3RyaW5nJyB8fCBzdGF0ZSA9PSBudWxsKSB7XG4gICAgICAgIHRoaXMuY2hlY2tlZCA9IHN0YXRlID09PSB0aGlzLnZhbHVlO1xuICAgICAgfSBlbHNlIGlmIChzdGF0ZSBpbnN0YW5jZW9mIEZvcm1EYXRhKSB7XG4gICAgICAgIHRoaXMuX3JlYWRGb3JtRGF0YShzdGF0ZSkudGhlbigoZGF0YSkgPT4ge1xuICAgICAgICAgIHRoaXMuY2hlY2tlZCA9IGRhdGEgPT09IHRoaXMudmFsdWU7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgYXN5bmMgX3JlYWRGb3JtRGF0YShmb3JtRGF0YTogRm9ybURhdGEpOiBQcm9taXNlPHVua25vd24+IHtcbiAgICAgIGNvbnN0IGRhdGEgPSBmb3JtRGF0YS5nZXQodGhpcy5uYW1lKTtcbiAgICAgIHJldHVybiBkYXRhIGluc3RhbmNlb2YgQmxvYiA/IEpTT04ucGFyc2UoYXdhaXQgZGF0YS50ZXh0KCkpIDogZGF0YTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgd2lsbFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXM8dGhpcz4pOiB2b2lkIHtcbiAgICAgIHN1cGVyLndpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXMpO1xuXG4gICAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdkaXNhYmxlZCcpKSB7XG4gICAgICAgIHRoaXMudXBkYXRlRm9jdXNhYmxlUmFkaW9zKCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIGZpcnN0VXBkYXRlZChjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXM8dGhpcz4pOiB2b2lkIHtcbiAgICAgIHN1cGVyLmZpcnN0VXBkYXRlZChjaGFuZ2VkUHJvcGVydGllcyk7XG4gICAgICB0aGlzLnVwZGF0ZUZvY3VzYWJsZVJhZGlvcygpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENhbGxlZCBvbiBgdmFsdWVgIGNoYW5nZVxuICAgICAqIElmICdjaGVja2VkJywgdXBkYXRlIHRoZSB2YWx1ZS4gT3RoZXJ3aXNlLCBkbyBub3RoaW5nLlxuICAgICAqL1xuICAgIHByb3RlY3RlZCBvdmVycmlkZSB1cGRhdGVGb3JtVmFsdWUoKTogdm9pZCB7XG4gICAgICBpZiAodGhpcy5jaGVja2VkKSB7XG4gICAgICAgIHN1cGVyLnVwZGF0ZUZvcm1WYWx1ZSgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5pbnRlcm5hbHMuc2V0Rm9ybVZhbHVlKG51bGwpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBvdmVycmlkZSBzaG91bGRWYWxpZGF0ZShuYW1lOiBQcm9wZXJ0eUtleSB8IHVuZGVmaW5lZCk6IGJvb2xlYW4ge1xuICAgICAgcmV0dXJuIHN1cGVyLnNob3VsZFZhbGlkYXRlKG5hbWUpIHx8IG5hbWUgPT09ICdjaGVja2VkJyB8fCBuYW1lID09PSAncmVxdWlyZWQnO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldHMgdGhlIHZhbGlkaXR5IG9mIGFsbCBhc3NvY2lhdGVkIHJhZGlvIGJ1dHRvbnMuXG4gICAgICogSWYgYW55IHJhZGlvIGJ1dHRvbiBpcyByZXF1aXJlZCwgYWxsIGFzc29jaWF0ZWQgYXJlIHJlcXVpcmVkIGFzIHdlbGwuXG4gICAgICovXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIHZhbGlkYXRlKCk6IHZvaWQge1xuICAgICAgc3VwZXIudmFsaWRhdGUoKTtcbiAgICAgIGlmICghdGhpcy5hc3NvY2lhdGVkUmFkaW9CdXR0b25zKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgbGV0IHJlcXVpcmVkID0gZmFsc2U7XG4gICAgICBsZXQgY2hlY2tlZCA9IGZhbHNlO1xuICAgICAgZm9yIChjb25zdCByYWRpbyBvZiB0aGlzLmFzc29jaWF0ZWRSYWRpb0J1dHRvbnMpIHtcbiAgICAgICAgcmVxdWlyZWQgfHw9IHJhZGlvLnJlcXVpcmVkO1xuICAgICAgICBjaGVja2VkIHx8PSByYWRpby5jaGVja2VkO1xuICAgICAgfVxuXG4gICAgICBpZiAocmVxdWlyZWQgJiYgIWNoZWNrZWQpIHtcbiAgICAgICAgdGhpcy5hc3NvY2lhdGVkUmFkaW9CdXR0b25zLmZvckVhY2goKHIpID0+XG4gICAgICAgICAgci5zZXRWYWxpZGl0eUZsYWcoXG4gICAgICAgICAgICAndmFsdWVNaXNzaW5nJyxcbiAgICAgICAgICAgIGkxOG5TZWxlY3Rpb25SZXF1aXJlZFt0aGlzLl9sYW5ndWFnZUNvbnRyb2xsZXIuY3VycmVudF0sXG4gICAgICAgICAgKSxcbiAgICAgICAgKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuYXNzb2NpYXRlZFJhZGlvQnV0dG9ucy5mb3JFYWNoKChyKSA9PiByLnJlbW92ZVZhbGlkaXR5RmxhZygndmFsdWVNaXNzaW5nJykpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE9ubHkgYSBzaW5nbGUgcmFkaW8gc2hvdWxkIGJlIGZvY3VzYWJsZSBpbiB0aGUgZ3JvdXAuIERlZmluZWQgYXM6XG4gICAgICogLSB0aGUgY2hlY2tlZCByYWRpbztcbiAgICAgKiAtIHRoZSBmaXJzdCBub24tZGlzYWJsZWQgcmFkaW8gaW4gRE9NIG9yZGVyO1xuICAgICAqL1xuICAgIHByb3RlY3RlZCB1cGRhdGVGb2N1c2FibGVSYWRpb3MoKTogdm9pZCB7XG4gICAgICBpZiAoIXRoaXMuaGFzVXBkYXRlZCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBjb25zdCByYWRpb3MgPSB0aGlzLl9pbnRlcmFjdGFibGVHcm91cGVkUmFkaW9zKCk7XG4gICAgICBjb25zdCBjaGVja2VkSW5kZXggPSByYWRpb3MuZmluZEluZGV4KChyKSA9PiByLmNoZWNrZWQgJiYgIXIuZGlzYWJsZWQgJiYgIXIuZm9ybURpc2FibGVkKTtcbiAgICAgIGNvbnN0IGZvY3VzYWJsZUluZGV4ID1cbiAgICAgICAgY2hlY2tlZEluZGV4ICE9PSAtMVxuICAgICAgICAgID8gY2hlY2tlZEluZGV4XG4gICAgICAgICAgOiByYWRpb3MuZmluZEluZGV4KChyKSA9PiAhci5kaXNhYmxlZCAmJiAhci5mb3JtRGlzYWJsZWQpOyAvLyBHZXQgdGhlIGZpcnN0IGZvY3VzYWJsZSByYWRpb1xuXG4gICAgICBpZiAoZm9jdXNhYmxlSW5kZXggIT09IC0xKSB7XG4gICAgICAgIHJhZGlvc1tmb2N1c2FibGVJbmRleF0udGFiSW5kZXggPSAwO1xuICAgICAgICByYWRpb3Muc3BsaWNlKGZvY3VzYWJsZUluZGV4LCAxKTtcbiAgICAgIH1cblxuICAgICAgLy8gUmVzZXQgdGFiSW5kZXggb24gb3RoZXIgcmFkaW9zXG4gICAgICByYWRpb3MuZm9yRWFjaCgocikgPT4gci5yZW1vdmVBdHRyaWJ1dGUoJ3RhYmluZGV4JykpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBhc3luYyBuYXZpZ2F0ZUJ5S2V5Ym9hcmQobmV4dDogU2JiRm9ybUFzc29jaWF0ZWRSYWRpb0J1dHRvbkVsZW1lbnQpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgIG5leHQuY2hlY2tlZCA9IHRydWU7XG4gICAgICB0aGlzLmVtaXRDaGFuZ2VFdmVudHMoKTtcblxuICAgICAgYXdhaXQgbmV4dC51cGRhdGVDb21wbGV0ZTtcbiAgICAgIG5leHQuZm9jdXMoKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZW1pdENoYW5nZUV2ZW50cygpOiB2b2lkIHtcbiAgICAgIC8vIE1hbnVhbGx5IGRpc3BhdGNoIGV2ZW50cyB0byBzaW11bGF0ZSBhIHVzZXIgaW50ZXJhY3Rpb25cbiAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudChcbiAgICAgICAgbmV3IElucHV0RXZlbnQoJ2lucHV0JywgeyBidWJibGVzOiB0cnVlLCBjYW5jZWxhYmxlOiB0cnVlLCBjb21wb3NlZDogdHJ1ZSB9KSxcbiAgICAgICk7XG4gICAgICB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCdjaGFuZ2UnLCB7IGJ1YmJsZXM6IHRydWUgfSkpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX3N5bmNocm9uaXplR3JvdXBTdGF0ZSgpOiB2b2lkIHtcbiAgICAgIGlmICh0aGlzLmNoZWNrZWQpIHtcbiAgICAgICAgdGhpcy5fZGVzZWxlY3RHcm91cGVkUmFkaW9zKCk7XG4gICAgICB9XG4gICAgICB0aGlzLnVwZGF0ZUZvY3VzYWJsZVJhZGlvcygpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFkZCBgdGhpc2AgdG8gdGhlIHJhZGlvQnV0dG9uIHJlZ2lzdHJ5XG4gICAgICovXG4gICAgcHJpdmF0ZSBfY29ubmVjdFRvUmVnaXN0cnkoKTogdm9pZCB7XG4gICAgICBpZiAoIXRoaXMubmFtZSB8fCBpc1NlcnZlcikge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBjb25zdCByb290ID0gdGhpcy5mb3JtID8/IHRoaXMuZ2V0Um9vdE5vZGUoKTtcbiAgICAgIHRoaXMuX3JhZGlvQnV0dG9uR3JvdXBzTWFwID0gcmFkaW9CdXR0b25SZWdpc3RyeS5nZXQocm9vdCk7XG5cbiAgICAgIC8vIEluaXRpYWxpemUgdGhlICdyb290JyBtYXAgZW50cnlcbiAgICAgIGlmICghdGhpcy5fcmFkaW9CdXR0b25Hcm91cHNNYXApIHtcbiAgICAgICAgdGhpcy5fcmFkaW9CdXR0b25Hcm91cHNNYXAgPSBuZXcgTWFwKCk7XG4gICAgICAgIHJhZGlvQnV0dG9uUmVnaXN0cnkuc2V0KHJvb3QsIHRoaXMuX3JhZGlvQnV0dG9uR3JvdXBzTWFwKTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5hc3NvY2lhdGVkUmFkaW9CdXR0b25zID0gdGhpcy5fcmFkaW9CdXR0b25Hcm91cHNNYXAuZ2V0KFxuICAgICAgICB0aGlzLm5hbWUsXG4gICAgICApIGFzIHVua25vd24gYXMgU2V0PFNiYkZvcm1Bc3NvY2lhdGVkUmFkaW9CdXR0b25FbGVtZW50PjtcblxuICAgICAgLy8gSW5pdGlhbGl6ZSB0aGUgZ3JvdXAgc2V0XG4gICAgICBpZiAoIXRoaXMuYXNzb2NpYXRlZFJhZGlvQnV0dG9ucykge1xuICAgICAgICB0aGlzLmFzc29jaWF0ZWRSYWRpb0J1dHRvbnMgPSBuZXcgU2V0KCk7XG4gICAgICAgIHRoaXMuX3JhZGlvQnV0dG9uR3JvdXBzTWFwLnNldChcbiAgICAgICAgICB0aGlzLm5hbWUsXG4gICAgICAgICAgdGhpcy5hc3NvY2lhdGVkUmFkaW9CdXR0b25zIGFzIHVua25vd24gYXMgU2V0PFNiYkZvcm1Bc3NvY2lhdGVkUmFkaW9CdXR0b25NaXhpblR5cGU+LFxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICAvLyBJbnNlcnQgdGhlIG5ldyByYWRpbyBpbnRvIHRoZSBzZXQgYW5kIHNvcnQgZm9sbG93aW5nIHRoZSBET00gb3JkZXIuXG4gICAgICAvLyBTaW5jZSB0aGUgb3JkZXIgb2YgYSAnU2V0JyBpcyB0aGUgaW5zZXJ0IG9yZGVyLCB3ZSBoYXZlIHRvIGVtcHR5IGl0IGFuZCByZS1pbnNlcnQgcmFkaW9zIGluIG9yZGVyXG4gICAgICBjb25zdCBlbnRyaWVzID0gQXJyYXkuZnJvbSh0aGlzLmFzc29jaWF0ZWRSYWRpb0J1dHRvbnMpO1xuICAgICAgdGhpcy5hc3NvY2lhdGVkUmFkaW9CdXR0b25zLmNsZWFyKCk7XG5cbiAgICAgIC8vIEZpbmQgYHRoaXNgIHBvc2l0aW9uIGFuZCBpbnNlcnQgaXRcbiAgICAgIGNvbnN0IGluZGV4ID0gZW50cmllcy5maW5kSW5kZXgoXG4gICAgICAgIChyKSA9PiB0aGlzLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKHIpICYgTm9kZS5ET0NVTUVOVF9QT1NJVElPTl9GT0xMT1dJTkcsXG4gICAgICApO1xuICAgICAgaWYgKGluZGV4ICE9PSAtMSkge1xuICAgICAgICBlbnRyaWVzLnNwbGljZShpbmRleCwgMCwgdGhpcyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBlbnRyaWVzLnB1c2godGhpcyk7XG4gICAgICB9XG5cbiAgICAgIC8vIFJlcG9wdWxhdGUgdGhlIFNldFxuICAgICAgZW50cmllcy5mb3JFYWNoKChyKSA9PiB0aGlzLmFzc29jaWF0ZWRSYWRpb0J1dHRvbnMhLmFkZChyKSk7XG5cbiAgICAgIHRoaXMudmFsaWRhdGUoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZW1vdmUgYHRoaXNgIGZyb20gdGhlIHJhZGlvQnV0dG9uIHJlZ2lzdHJ5IGFuZCwgaWYgdGhlIGdyb3VwIGlzIGVtcHR5LCBkZWxldGUgdGhlIGVudHJ5IGZyb20gdGhlIGdyb3VwcyBNYXBcbiAgICAgKi9cbiAgICBwcml2YXRlIF9kaXNjb25uZWN0RnJvbVJlZ2lzdHJ5KCk6IHZvaWQge1xuICAgICAgdGhpcy5hc3NvY2lhdGVkUmFkaW9CdXR0b25zPy5kZWxldGUodGhpcyk7XG5cbiAgICAgIGlmICh0aGlzLmFzc29jaWF0ZWRSYWRpb0J1dHRvbnM/LnNpemUgPT09IDApIHtcbiAgICAgICAgdGhpcy5fcmFkaW9CdXR0b25Hcm91cHNNYXA/LmRlbGV0ZSh0aGlzLm5hbWUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy52YWxpZGF0ZSgpO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmFzc29jaWF0ZWRSYWRpb0J1dHRvbnMgPSB1bmRlZmluZWQ7XG4gICAgICB0aGlzLl9yYWRpb0J1dHRvbkdyb3Vwc01hcCA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm4gYSBsaXN0IG9mICdpbnRlcmFjdGFibGUnIGdyb3VwZWQgcmFkaW9zLCBvcmRlcmVkIGluIERPTSBvcmRlclxuICAgICAqL1xuICAgIHByaXZhdGUgX2ludGVyYWN0YWJsZUdyb3VwZWRSYWRpb3MoKTogU2JiRm9ybUFzc29jaWF0ZWRSYWRpb0J1dHRvbkVsZW1lbnRbXSB7XG4gICAgICByZXR1cm4gQXJyYXkuZnJvbSh0aGlzLmFzc29jaWF0ZWRSYWRpb0J1dHRvbnMgPz8gW10pLmZpbHRlcigoZWwpID0+XG4gICAgICAgIGludGVyYWN0aXZpdHlDaGVja2VyLmlzVmlzaWJsZShlbCksXG4gICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERlc2VsZWN0IG90aGVyIHJhZGlvIG9mIHRoZSBzYW1lIGdyb3VwXG4gICAgICovXG4gICAgcHJpdmF0ZSBfZGVzZWxlY3RHcm91cGVkUmFkaW9zKCk6IHZvaWQge1xuICAgICAgQXJyYXkuZnJvbSh0aGlzLmFzc29jaWF0ZWRSYWRpb0J1dHRvbnMgPz8gW10pXG4gICAgICAgIC5maWx0ZXIoKHIpID0+IHIgIT09IHRoaXMpXG4gICAgICAgIC5mb3JFYWNoKChyKSA9PiAoci5jaGVja2VkID0gZmFsc2UpKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFzeW5jIF9oYW5kbGVBcnJvd0tleURvd24oZXZ0OiBLZXlib2FyZEV2ZW50KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICBpZiAoIWlzQXJyb3dLZXlQcmVzc2VkKGV2dCkpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICAgIGNvbnN0IGVuYWJsZWRSYWRpb3MgPSB0aGlzLl9pbnRlcmFjdGFibGVHcm91cGVkUmFkaW9zKCkuZmlsdGVyKFxuICAgICAgICAocikgPT4gIXIuZGlzYWJsZWQgJiYgIXIuZm9ybURpc2FibGVkLFxuICAgICAgKTtcbiAgICAgIGNvbnN0IGN1cnJlbnQ6IG51bWJlciA9IGVuYWJsZWRSYWRpb3MuaW5kZXhPZih0aGlzKTtcbiAgICAgIGNvbnN0IG5leHRJbmRleDogbnVtYmVyID0gZ2V0TmV4dEVsZW1lbnRJbmRleChldnQsIGN1cnJlbnQsIGVuYWJsZWRSYWRpb3MubGVuZ3RoKTtcblxuICAgICAgYXdhaXQgdGhpcy5uYXZpZ2F0ZUJ5S2V5Ym9hcmQoZW5hYmxlZFJhZGlvc1tuZXh0SW5kZXhdKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gU2JiRm9ybUFzc29jaWF0ZWRSYWRpb0J1dHRvbkVsZW1lbnQgYXMgdW5rbm93biBhcyBBYnN0cmFjdENvbnN0cnVjdG9yPFNiYkZvcm1Bc3NvY2lhdGVkUmFkaW9CdXR0b25NaXhpblR5cGU+ICZcbiAgICBUO1xufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBeUJBLElBQWEsc0NBQXNCLElBQUksU0FHcEM7Ozs7QUFzQkgsSUFBYSxxQ0FHWCxlQUNrRTtBQWtUbEUsZUFqVGtEO29CQUN4QyxpQkFBaUIsaUJBQWlCLHVCQUF1QixXQUFXLENBQUMsQ0FBQzs7OztlQURqRSw0Q0FDTCxZQUFzRTs7OytCQVE3RSxTQUFTLEVBQUUsTUFBTSxTQUFTLENBQUMsQ0FBQTs0QkFjM0IsVUFBVSxDQUFBO0FBYlgsaUJB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
268
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1hc3NvY2lhdGVkLXJhZGlvLWJ1dHRvbi1taXhpbi5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvY29yZS9taXhpbnMvZm9ybS1hc3NvY2lhdGVkLXJhZGlvLWJ1dHRvbi1taXhpbi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc1NlcnZlciwgdHlwZSBQcm9wZXJ0eVZhbHVlcyB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBwcm9wZXJ0eSB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcblxuaW1wb3J0IHsgZ2V0TmV4dEVsZW1lbnRJbmRleCwgaXNBcnJvd0tleVByZXNzZWQgfSBmcm9tICcuLi9hMTF5L2Fycm93LW5hdmlnYXRpb24udHMnO1xuaW1wb3J0IHsgaW50ZXJhY3Rpdml0eUNoZWNrZXIgfSBmcm9tICcuLi9hMTF5L2ludGVyYWN0aXZpdHktY2hlY2tlci50cyc7XG5pbXBvcnQgdHlwZSB7IFNiYkVsZW1lbnQsIFNiYkVsZW1lbnRDb25zdHJ1Y3RvciB9IGZyb20gJy4uL2Jhc2UtZWxlbWVudHMvZWxlbWVudC50cyc7XG5pbXBvcnQgeyBTYmJMYW5ndWFnZUNvbnRyb2xsZXIgfSBmcm9tICcuLi9jb250cm9sbGVycy9sYW5ndWFnZS1jb250cm9sbGVyLnRzJztcbmltcG9ydCB7IGkxOG5TZWxlY3Rpb25SZXF1aXJlZCB9IGZyb20gJy4uL2kxOG4vaTE4bi50cyc7XG5cbmltcG9ydCB0eXBlIHsgQWJzdHJhY3RDb25zdHJ1Y3RvciB9IGZyb20gJy4vY29uc3RydWN0b3IudHMnO1xuaW1wb3J0IHsgU2JiRGlzYWJsZWRNaXhpbiB9IGZyb20gJy4vZGlzYWJsZWQtbWl4aW4udHMnO1xuaW1wb3J0IHtcbiAgdHlwZSBGb3JtUmVzdG9yZVJlYXNvbixcbiAgdHlwZSBGb3JtUmVzdG9yZVN0YXRlLFxuICBTYmJGb3JtQXNzb2NpYXRlZE1peGluLFxufSBmcm9tICcuL2Zvcm0tYXNzb2NpYXRlZC1taXhpbi50cyc7XG5pbXBvcnQgeyBTYmJSZXF1aXJlZE1peGluIH0gZnJvbSAnLi9yZXF1aXJlZC1taXhpbi50cyc7XG5cbi8qKlxuICogQSBzdGF0aWMgcmVnaXN0cnkgdGhhdCBob2xkcyBhIGNvbGxlY3Rpb24gb2YgZ3JvdXBlZCBgcmFkaW8tYnV0dG9uc2AuXG4gKiBHcm91cHMgb2YgcmFkaW8gYnV0dG9ucyBhcmUgbG9jYWwgdG8gdGhlIGZvcm0gdGhleSBiZWxvbmcgKG9yIHRoZSBgcmVuZGVyUm9vdGAgaWYgdGhleSdyZSBub3QgcGFydCBvZiBhbnkgZm9ybSlcbiAqIE11bHRpcGxlIGdyb3VwcyBvZiByYWRpbyB3aXRoIHRoZSBzYW1lIG5hbWUgY2FuIGNvZXhpc3QgKGFzIGxvbmcgYXMgdGhleSBiZWxvbmcgdG8gYSBkaWZmZXJlbnQgZm9ybSAvIHJlbmRlclJvb3QpXG4gKiBJdCBpcyBtYWlubHkgdXNlZCB0byBzdXBwb3J0IHRoZSBzdGFuZGFsb25lIGdyb3VwcyBvZiByYWRpb3MuXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGNvbnN0IHJhZGlvQnV0dG9uUmVnaXN0cnkgPSBuZXcgV2Vha01hcDxcbiAgTm9kZSxcbiAgTWFwPHN0cmluZywgU2V0PFNiYkZvcm1Bc3NvY2lhdGVkUmFkaW9CdXR0b25NaXhpblR5cGU+PlxuPigpO1xuXG5leHBvcnQgZGVjbGFyZSBhYnN0cmFjdCBjbGFzcyBTYmJGb3JtQXNzb2NpYXRlZFJhZGlvQnV0dG9uTWl4aW5UeXBlIGV4dGVuZHMgU2JiRGlzYWJsZWRNaXhpbihcbiAgU2JiUmVxdWlyZWRNaXhpbihTYmJGb3JtQXNzb2NpYXRlZE1peGluKFNiYkVsZW1lbnQpKSxcbikge1xuICBwdWJsaWMgYWNjZXNzb3IgY2hlY2tlZDogYm9vbGVhbjtcblxuICBwcm90ZWN0ZWQgYXNzb2NpYXRlZFJhZGlvQnV0dG9ucz86IFNldDxTYmJGb3JtQXNzb2NpYXRlZFJhZGlvQnV0dG9uTWl4aW5UeXBlPjtcblxuICBwdWJsaWMgZm9ybVJlc2V0Q2FsbGJhY2soKTogdm9pZDtcbiAgcHVibGljIGZvcm1TdGF0ZVJlc3RvcmVDYWxsYmFjayhzdGF0ZTogRm9ybVJlc3RvcmVTdGF0ZSB8IG51bGwsIHJlYXNvbjogRm9ybVJlc3RvcmVSZWFzb24pOiB2b2lkO1xuXG4gIHByb3RlY3RlZCB1cGRhdGVGb3JtVmFsdWUoKTogdm9pZDtcbiAgcHJvdGVjdGVkIHVwZGF0ZUZvY3VzYWJsZVJhZGlvcygpOiB2b2lkO1xuICBwcm90ZWN0ZWQgZW1pdENoYW5nZUV2ZW50cygpOiB2b2lkO1xuICBwcm90ZWN0ZWQgbmF2aWdhdGVCeUtleWJvYXJkKHJhZGlvOiBTYmJGb3JtQXNzb2NpYXRlZFJhZGlvQnV0dG9uTWl4aW5UeXBlKTogUHJvbWlzZTx2b2lkPjtcbn1cblxuLyoqXG4gKiBUaGUgU2JiRm9ybUFzc29jaWF0ZWRSYWRpb0J1dHRvbk1peGluIGVuYWJsZXMgbmF0aXZlIGZvcm0gc3VwcG9ydCBmb3IgcmFkaW8gY29udHJvbHMuXG4gKi9cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbmV4cG9ydCBjb25zdCBTYmJGb3JtQXNzb2NpYXRlZFJhZGlvQnV0dG9uTWl4aW4gPSA8XG4gIFQgZXh0ZW5kcyBBYnN0cmFjdENvbnN0cnVjdG9yPFNiYkVsZW1lbnQ+ICYgU2JiRWxlbWVudENvbnN0cnVjdG9yLFxuPihcbiAgc3VwZXJDbGFzczogVCxcbik6IEFic3RyYWN0Q29uc3RydWN0b3I8U2JiRm9ybUFzc29jaWF0ZWRSYWRpb0J1dHRvbk1peGluVHlwZT4gJiBUID0+IHtcbiAgYWJzdHJhY3QgY2xhc3MgU2JiRm9ybUFzc29jaWF0ZWRSYWRpb0J1dHRvbkVsZW1lbnRcbiAgICBleHRlbmRzIFNiYkRpc2FibGVkTWl4aW4oU2JiUmVxdWlyZWRNaXhpbihTYmJGb3JtQXNzb2NpYXRlZE1peGluKHN1cGVyQ2xhc3MpKSlcbiAgICBpbXBsZW1lbnRzIFBhcnRpYWw8U2JiRm9ybUFzc29jaWF0ZWRSYWRpb0J1dHRvbk1peGluVHlwZT5cbiAge1xuICAgIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgcmVhZG9ubHkgcm9sZSA9ICdyYWRpbyc7XG5cbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHRoZSByYWRpbyBidXR0b24gaXMgY2hlY2tlZC5cbiAgICAgKi9cbiAgICBAcHJvcGVydHkoeyB0eXBlOiBCb29sZWFuIH0pXG4gICAgcHVibGljIHNldCBjaGVja2VkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICB0aGlzLl9jaGVja2VkID0gISF2YWx1ZTtcblxuICAgICAgdGhpcy50b2dnbGVTdGF0ZSgnY2hlY2tlZCcsIHRoaXMuY2hlY2tlZCk7XG4gICAgICB0aGlzLmludGVybmFscy5hcmlhQ2hlY2tlZCA9IHRoaXMuY2hlY2tlZC50b1N0cmluZygpO1xuICAgICAgdGhpcy51cGRhdGVGb3JtVmFsdWUoKTtcbiAgICAgIHRoaXMuX3N5bmNocm9uaXplR3JvdXBTdGF0ZSgpO1xuICAgIH1cbiAgICBwdWJsaWMgZ2V0IGNoZWNrZWQoKTogYm9vbGVhbiB7XG4gICAgICByZXR1cm4gdGhpcy5fY2hlY2tlZDtcbiAgICB9XG4gICAgcHJpdmF0ZSBfY2hlY2tlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgQHByb3BlcnR5KClcbiAgICBwdWJsaWMgb3ZlcnJpZGUgc2V0IG5hbWUodmFsdWU6IHN0cmluZykge1xuICAgICAgY29uc3QgcHJldmlvdXNOYW1lID0gdGhpcy5uYW1lO1xuICAgICAgaWYgKHZhbHVlICE9PSBwcmV2aW91c05hbWUpIHtcbiAgICAgICAgc3VwZXIubmFtZSA9IHZhbHVlO1xuICAgICAgICB0aGlzLl9kaXNjb25uZWN0RnJvbVJlZ2lzdHJ5KHByZXZpb3VzTmFtZSk7XG4gICAgICAgIHRoaXMuX2Nvbm5lY3RUb1JlZ2lzdHJ5KCk7XG4gICAgICAgIHRoaXMuX3N5bmNocm9uaXplR3JvdXBTdGF0ZSgpO1xuICAgICAgfVxuICAgIH1cbiAgICBwdWJsaWMgb3ZlcnJpZGUgZ2V0IG5hbWUoKTogc3RyaW5nIHtcbiAgICAgIHJldHVybiBzdXBlci5uYW1lO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEZvcm0gdHlwZSBvZiBlbGVtZW50LlxuICAgICAqIEBkZWZhdWx0ICdyYWRpbydcbiAgICAgKi9cbiAgICBwdWJsaWMgb3ZlcnJpZGUgZ2V0IHR5cGUoKTogc3RyaW5nIHtcbiAgICAgIHJldHVybiAncmFkaW8nO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldCBvZiByYWRpbyBidXR0b25zIHRoYXQgYmVsb25ncyB0byB0aGUgc2FtZSBncm91cCBvZiBgdGhpc2AuXG4gICAgICogQXNzdW1lIHRoZW0gb3JkZXJlZCBpbiBET00gb3JkZXJcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgYXNzb2NpYXRlZFJhZGlvQnV0dG9ucz86IFNldDxTYmJGb3JtQXNzb2NpYXRlZFJhZGlvQnV0dG9uRWxlbWVudD47XG4gICAgcHJpdmF0ZSBfcmFkaW9CdXR0b25Hcm91cHNNYXA/OiBNYXA8c3RyaW5nLCBTZXQ8U2JiRm9ybUFzc29jaWF0ZWRSYWRpb0J1dHRvbk1peGluVHlwZT4+O1xuICAgIHByaXZhdGUgX2xhbmd1YWdlQ29udHJvbGxlciA9IG5ldyBTYmJMYW5ndWFnZUNvbnRyb2xsZXIodGhpcyk7XG5cbiAgICBwcm90ZWN0ZWQgY29uc3RydWN0b3IoKSB7XG4gICAgICBzdXBlcigpO1xuICAgICAgdGhpcy5hZGRFdmVudExpc3RlbmVyPy4oJ2tleWRvd24nLCAoZSkgPT4gdGhpcy5faGFuZGxlQXJyb3dLZXlEb3duKGUpKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb3ZlcnJpZGUgY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgICBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpO1xuICAgICAgdGhpcy5fY29ubmVjdFRvUmVnaXN0cnkoKTtcbiAgICAgIHRoaXMuX3N5bmNocm9uaXplR3JvdXBTdGF0ZSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvdmVycmlkZSBkaXNjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICAgIHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgICB0aGlzLl9kaXNjb25uZWN0RnJvbVJlZ2lzdHJ5KHRoaXMubmFtZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSXMgY2FsbGVkIHdoZW5ldmVyIHRoZSBmb3JtIGlzIGJlaW5nIHJlc2V0LlxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHB1YmxpYyBvdmVycmlkZSBmb3JtUmVzZXRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICAgIHRoaXMuY2hlY2tlZCA9IHRoaXMuaGFzQXR0cmlidXRlKCdjaGVja2VkJyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogIENhbGxlZCB3aGVuIHRoZSBicm93c2VyIGlzIHRyeWluZyB0byByZXN0b3JlIGVsZW1lbnTigJlzIHN0YXRlIHRvIHN0YXRlIGluIHdoaWNoIGNhc2VcbiAgICAgKiAgcmVhc29uIGlzIFwicmVzdG9yZVwiLCBvciB3aGVuIHRoZSBicm93c2VyIGlzIHRyeWluZyB0byBmdWxmaWxsIGF1dG9maWxsIG9uIGJlaGFsZiBvZlxuICAgICAqICB1c2VyIGluIHdoaWNoIGNhc2UgcmVhc29uIGlzIFwiYXV0b2NvbXBsZXRlXCIuXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgcHVibGljIG92ZXJyaWRlIGZvcm1TdGF0ZVJlc3RvcmVDYWxsYmFjayhcbiAgICAgIHN0YXRlOiBGb3JtUmVzdG9yZVN0YXRlIHwgbnVsbCxcbiAgICAgIF9yZWFzb246IEZvcm1SZXN0b3JlUmVhc29uLFxuICAgICk6IHZvaWQge1xuICAgICAgaWYgKHR5cGVvZiBzdGF0ZSA9PT0gJ3N0cmluZycgfHwgc3RhdGUgPT0gbnVsbCkge1xuICAgICAgICB0aGlzLmNoZWNrZWQgPSBzdGF0ZSA9PT0gdGhpcy52YWx1ZTtcbiAgICAgIH0gZWxzZSBpZiAoc3RhdGUgaW5zdGFuY2VvZiBGb3JtRGF0YSkge1xuICAgICAgICB0aGlzLl9yZWFkRm9ybURhdGEoc3RhdGUpLnRoZW4oKGRhdGEpID0+IHtcbiAgICAgICAgICB0aGlzLmNoZWNrZWQgPSBkYXRhID09PSB0aGlzLnZhbHVlO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGFzeW5jIF9yZWFkRm9ybURhdGEoZm9ybURhdGE6IEZvcm1EYXRhKTogUHJvbWlzZTx1bmtub3duPiB7XG4gICAgICBjb25zdCBkYXRhID0gZm9ybURhdGEuZ2V0KHRoaXMubmFtZSk7XG4gICAgICByZXR1cm4gZGF0YSBpbnN0YW5jZW9mIEJsb2IgPyBKU09OLnBhcnNlKGF3YWl0IGRhdGEudGV4dCgpKSA6IGRhdGE7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIHdpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXM6IFByb3BlcnR5VmFsdWVzPHRoaXM+KTogdm9pZCB7XG4gICAgICBzdXBlci53aWxsVXBkYXRlKGNoYW5nZWRQcm9wZXJ0aWVzKTtcblxuICAgICAgaWYgKGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygnZGlzYWJsZWQnKSkge1xuICAgICAgICB0aGlzLnVwZGF0ZUZvY3VzYWJsZVJhZGlvcygpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBvdmVycmlkZSBmaXJzdFVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXM6IFByb3BlcnR5VmFsdWVzPHRoaXM+KTogdm9pZCB7XG4gICAgICBzdXBlci5maXJzdFVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXMpO1xuICAgICAgdGhpcy51cGRhdGVGb2N1c2FibGVSYWRpb3MoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDYWxsZWQgb24gYHZhbHVlYCBjaGFuZ2VcbiAgICAgKiBJZiAnY2hlY2tlZCcsIHVwZGF0ZSB0aGUgdmFsdWUuIE90aGVyd2lzZSwgZG8gbm90aGluZy5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgdXBkYXRlRm9ybVZhbHVlKCk6IHZvaWQge1xuICAgICAgaWYgKHRoaXMuY2hlY2tlZCkge1xuICAgICAgICBzdXBlci51cGRhdGVGb3JtVmFsdWUoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuaW50ZXJuYWxzLnNldEZvcm1WYWx1ZShudWxsKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgc2hvdWxkVmFsaWRhdGUobmFtZTogUHJvcGVydHlLZXkgfCB1bmRlZmluZWQpOiBib29sZWFuIHtcbiAgICAgIHJldHVybiBzdXBlci5zaG91bGRWYWxpZGF0ZShuYW1lKSB8fCBuYW1lID09PSAnY2hlY2tlZCcgfHwgbmFtZSA9PT0gJ3JlcXVpcmVkJztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXRzIHRoZSB2YWxpZGl0eSBvZiBhbGwgYXNzb2NpYXRlZCByYWRpbyBidXR0b25zLlxuICAgICAqIElmIGFueSByYWRpbyBidXR0b24gaXMgcmVxdWlyZWQsIGFsbCBhc3NvY2lhdGVkIGFyZSByZXF1aXJlZCBhcyB3ZWxsLlxuICAgICAqL1xuICAgIHByb3RlY3RlZCBvdmVycmlkZSB2YWxpZGF0ZSgpOiB2b2lkIHtcbiAgICAgIHN1cGVyLnZhbGlkYXRlKCk7XG4gICAgICBpZiAoIXRoaXMuYXNzb2NpYXRlZFJhZGlvQnV0dG9ucykge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGxldCByZXF1aXJlZCA9IGZhbHNlO1xuICAgICAgbGV0IGNoZWNrZWQgPSBmYWxzZTtcbiAgICAgIGZvciAoY29uc3QgcmFkaW8gb2YgdGhpcy5hc3NvY2lhdGVkUmFkaW9CdXR0b25zKSB7XG4gICAgICAgIHJlcXVpcmVkIHx8PSByYWRpby5yZXF1aXJlZDtcbiAgICAgICAgY2hlY2tlZCB8fD0gcmFkaW8uY2hlY2tlZDtcbiAgICAgIH1cblxuICAgICAgaWYgKHJlcXVpcmVkICYmICFjaGVja2VkKSB7XG4gICAgICAgIHRoaXMuYXNzb2NpYXRlZFJhZGlvQnV0dG9ucy5mb3JFYWNoKChyKSA9PlxuICAgICAgICAgIHIuc2V0VmFsaWRpdHlGbGFnKFxuICAgICAgICAgICAgJ3ZhbHVlTWlzc2luZycsXG4gICAgICAgICAgICBpMThuU2VsZWN0aW9uUmVxdWlyZWRbdGhpcy5fbGFuZ3VhZ2VDb250cm9sbGVyLmN1cnJlbnRdLFxuICAgICAgICAgICksXG4gICAgICAgICk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmFzc29jaWF0ZWRSYWRpb0J1dHRvbnMuZm9yRWFjaCgocikgPT4gci5yZW1vdmVWYWxpZGl0eUZsYWcoJ3ZhbHVlTWlzc2luZycpKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBPbmx5IGEgc2luZ2xlIHJhZGlvIHNob3VsZCBiZSBmb2N1c2FibGUgaW4gdGhlIGdyb3VwLiBEZWZpbmVkIGFzOlxuICAgICAqIC0gdGhlIGNoZWNrZWQgcmFkaW87XG4gICAgICogLSB0aGUgZmlyc3Qgbm9uLWRpc2FibGVkIHJhZGlvIGluIERPTSBvcmRlcjtcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgdXBkYXRlRm9jdXNhYmxlUmFkaW9zKCk6IHZvaWQge1xuICAgICAgaWYgKCF0aGlzLmhhc1VwZGF0ZWQpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgY29uc3QgcmFkaW9zID0gdGhpcy5faW50ZXJhY3RhYmxlR3JvdXBlZFJhZGlvcygpO1xuICAgICAgY29uc3QgY2hlY2tlZEluZGV4ID0gcmFkaW9zLmZpbmRJbmRleCgocikgPT4gci5jaGVja2VkICYmICFyLmRpc2FibGVkICYmICFyLmZvcm1EaXNhYmxlZCk7XG4gICAgICBjb25zdCBmb2N1c2FibGVJbmRleCA9XG4gICAgICAgIGNoZWNrZWRJbmRleCAhPT0gLTFcbiAgICAgICAgICA/IGNoZWNrZWRJbmRleFxuICAgICAgICAgIDogcmFkaW9zLmZpbmRJbmRleCgocikgPT4gIXIuZGlzYWJsZWQgJiYgIXIuZm9ybURpc2FibGVkKTsgLy8gR2V0IHRoZSBmaXJzdCBmb2N1c2FibGUgcmFkaW9cblxuICAgICAgaWYgKGZvY3VzYWJsZUluZGV4ICE9PSAtMSkge1xuICAgICAgICByYWRpb3NbZm9jdXNhYmxlSW5kZXhdLnRhYkluZGV4ID0gMDtcbiAgICAgICAgcmFkaW9zLnNwbGljZShmb2N1c2FibGVJbmRleCwgMSk7XG4gICAgICB9XG5cbiAgICAgIC8vIFJlc2V0IHRhYkluZGV4IG9uIG90aGVyIHJhZGlvc1xuICAgICAgcmFkaW9zLmZvckVhY2goKHIpID0+IHIucmVtb3ZlQXR0cmlidXRlKCd0YWJpbmRleCcpKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgYXN5bmMgbmF2aWdhdGVCeUtleWJvYXJkKG5leHQ6IFNiYkZvcm1Bc3NvY2lhdGVkUmFkaW9CdXR0b25FbGVtZW50KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICBuZXh0LmNoZWNrZWQgPSB0cnVlO1xuICAgICAgdGhpcy5lbWl0Q2hhbmdlRXZlbnRzKCk7XG5cbiAgICAgIGF3YWl0IG5leHQudXBkYXRlQ29tcGxldGU7XG4gICAgICBuZXh0LmZvY3VzKCk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGVtaXRDaGFuZ2VFdmVudHMoKTogdm9pZCB7XG4gICAgICAvLyBNYW51YWxseSBkaXNwYXRjaCBldmVudHMgdG8gc2ltdWxhdGUgYSB1c2VyIGludGVyYWN0aW9uXG4gICAgICB0aGlzLmRpc3BhdGNoRXZlbnQoXG4gICAgICAgIG5ldyBJbnB1dEV2ZW50KCdpbnB1dCcsIHsgYnViYmxlczogdHJ1ZSwgY2FuY2VsYWJsZTogdHJ1ZSwgY29tcG9zZWQ6IHRydWUgfSksXG4gICAgICApO1xuICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgnY2hhbmdlJywgeyBidWJibGVzOiB0cnVlIH0pKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9zeW5jaHJvbml6ZUdyb3VwU3RhdGUoKTogdm9pZCB7XG4gICAgICBpZiAodGhpcy5jaGVja2VkKSB7XG4gICAgICAgIHRoaXMuX2Rlc2VsZWN0R3JvdXBlZFJhZGlvcygpO1xuICAgICAgfVxuICAgICAgdGhpcy51cGRhdGVGb2N1c2FibGVSYWRpb3MoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBZGQgYHRoaXNgIHRvIHRoZSByYWRpb0J1dHRvbiByZWdpc3RyeVxuICAgICAqL1xuICAgIHByaXZhdGUgX2Nvbm5lY3RUb1JlZ2lzdHJ5KCk6IHZvaWQge1xuICAgICAgaWYgKCF0aGlzLm5hbWUgfHwgaXNTZXJ2ZXIpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgY29uc3Qgcm9vdCA9IHRoaXMuZm9ybSA/PyB0aGlzLmdldFJvb3ROb2RlKCk7XG4gICAgICB0aGlzLl9yYWRpb0J1dHRvbkdyb3Vwc01hcCA9IHJhZGlvQnV0dG9uUmVnaXN0cnkuZ2V0KHJvb3QpO1xuXG4gICAgICAvLyBJbml0aWFsaXplIHRoZSAncm9vdCcgbWFwIGVudHJ5XG4gICAgICBpZiAoIXRoaXMuX3JhZGlvQnV0dG9uR3JvdXBzTWFwKSB7XG4gICAgICAgIHRoaXMuX3JhZGlvQnV0dG9uR3JvdXBzTWFwID0gbmV3IE1hcCgpO1xuICAgICAgICByYWRpb0J1dHRvblJlZ2lzdHJ5LnNldChyb290LCB0aGlzLl9yYWRpb0J1dHRvbkdyb3Vwc01hcCk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuYXNzb2NpYXRlZFJhZGlvQnV0dG9ucyA9IHRoaXMuX3JhZGlvQnV0dG9uR3JvdXBzTWFwLmdldChcbiAgICAgICAgdGhpcy5uYW1lLFxuICAgICAgKSBhcyB1bmtub3duIGFzIFNldDxTYmJGb3JtQXNzb2NpYXRlZFJhZGlvQnV0dG9uRWxlbWVudD47XG5cbiAgICAgIC8vIEluaXRpYWxpemUgdGhlIGdyb3VwIHNldFxuICAgICAgaWYgKCF0aGlzLmFzc29jaWF0ZWRSYWRpb0J1dHRvbnMpIHtcbiAgICAgICAgdGhpcy5hc3NvY2lhdGVkUmFkaW9CdXR0b25zID0gbmV3IFNldCgpO1xuICAgICAgICB0aGlzLl9yYWRpb0J1dHRvbkdyb3Vwc01hcC5zZXQoXG4gICAgICAgICAgdGhpcy5uYW1lLFxuICAgICAgICAgIHRoaXMuYXNzb2NpYXRlZFJhZGlvQnV0dG9ucyBhcyB1bmtub3duIGFzIFNldDxTYmJGb3JtQXNzb2NpYXRlZFJhZGlvQnV0dG9uTWl4aW5UeXBlPixcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgLy8gSW5zZXJ0IHRoZSBuZXcgcmFkaW8gaW50byB0aGUgc2V0IGFuZCBzb3J0IGZvbGxvd2luZyB0aGUgRE9NIG9yZGVyLlxuICAgICAgLy8gU2luY2UgdGhlIG9yZGVyIG9mIGEgJ1NldCcgaXMgdGhlIGluc2VydCBvcmRlciwgd2UgaGF2ZSB0byBlbXB0eSBpdCBhbmQgcmUtaW5zZXJ0IHJhZGlvcyBpbiBvcmRlclxuICAgICAgY29uc3QgZW50cmllcyA9IEFycmF5LmZyb20odGhpcy5hc3NvY2lhdGVkUmFkaW9CdXR0b25zKTtcbiAgICAgIHRoaXMuYXNzb2NpYXRlZFJhZGlvQnV0dG9ucy5jbGVhcigpO1xuXG4gICAgICAvLyBGaW5kIGB0aGlzYCBwb3NpdGlvbiBhbmQgaW5zZXJ0IGl0XG4gICAgICBjb25zdCBpbmRleCA9IGVudHJpZXMuZmluZEluZGV4KFxuICAgICAgICAocikgPT4gdGhpcy5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihyKSAmIE5vZGUuRE9DVU1FTlRfUE9TSVRJT05fRk9MTE9XSU5HLFxuICAgICAgKTtcbiAgICAgIGlmIChpbmRleCAhPT0gLTEpIHtcbiAgICAgICAgZW50cmllcy5zcGxpY2UoaW5kZXgsIDAsIHRoaXMpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZW50cmllcy5wdXNoKHRoaXMpO1xuICAgICAgfVxuXG4gICAgICAvLyBSZXBvcHVsYXRlIHRoZSBTZXRcbiAgICAgIGVudHJpZXMuZm9yRWFjaCgocikgPT4gdGhpcy5hc3NvY2lhdGVkUmFkaW9CdXR0b25zIS5hZGQocikpO1xuXG4gICAgICB0aGlzLnZhbGlkYXRlKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVtb3ZlIGB0aGlzYCBmcm9tIHRoZSByYWRpb0J1dHRvbiByZWdpc3RyeSBhbmQsIGlmIHRoZSBncm91cCBpcyBlbXB0eSwgZGVsZXRlIHRoZSBlbnRyeSBmcm9tIHRoZSBncm91cHMgTWFwXG4gICAgICovXG4gICAgcHJpdmF0ZSBfZGlzY29ubmVjdEZyb21SZWdpc3RyeShwcmV2aW91c05hbWU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgdGhpcy5hc3NvY2lhdGVkUmFkaW9CdXR0b25zPy5kZWxldGUodGhpcyk7XG5cbiAgICAgIGlmICh0aGlzLmFzc29jaWF0ZWRSYWRpb0J1dHRvbnM/LnNpemUgPT09IDApIHtcbiAgICAgICAgdGhpcy5fcmFkaW9CdXR0b25Hcm91cHNNYXA/LmRlbGV0ZShwcmV2aW91c05hbWUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy52YWxpZGF0ZSgpO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmFzc29jaWF0ZWRSYWRpb0J1dHRvbnMgPSB1bmRlZmluZWQ7XG4gICAgICB0aGlzLl9yYWRpb0J1dHRvbkdyb3Vwc01hcCA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm4gYSBsaXN0IG9mICdpbnRlcmFjdGFibGUnIGdyb3VwZWQgcmFkaW9zLCBvcmRlcmVkIGluIERPTSBvcmRlclxuICAgICAqL1xuICAgIHByaXZhdGUgX2ludGVyYWN0YWJsZUdyb3VwZWRSYWRpb3MoKTogU2JiRm9ybUFzc29jaWF0ZWRSYWRpb0J1dHRvbkVsZW1lbnRbXSB7XG4gICAgICByZXR1cm4gQXJyYXkuZnJvbSh0aGlzLmFzc29jaWF0ZWRSYWRpb0J1dHRvbnMgPz8gW10pLmZpbHRlcigoZWwpID0+XG4gICAgICAgIGludGVyYWN0aXZpdHlDaGVja2VyLmlzVmlzaWJsZShlbCksXG4gICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERlc2VsZWN0IG90aGVyIHJhZGlvIG9mIHRoZSBzYW1lIGdyb3VwXG4gICAgICovXG4gICAgcHJpdmF0ZSBfZGVzZWxlY3RHcm91cGVkUmFkaW9zKCk6IHZvaWQge1xuICAgICAgQXJyYXkuZnJvbSh0aGlzLmFzc29jaWF0ZWRSYWRpb0J1dHRvbnMgPz8gW10pXG4gICAgICAgIC5maWx0ZXIoKHIpID0+IHIgIT09IHRoaXMpXG4gICAgICAgIC5mb3JFYWNoKChyKSA9PiAoci5jaGVja2VkID0gZmFsc2UpKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFzeW5jIF9oYW5kbGVBcnJvd0tleURvd24oZXZ0OiBLZXlib2FyZEV2ZW50KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICBpZiAoIWlzQXJyb3dLZXlQcmVzc2VkKGV2dCkpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICAgIGNvbnN0IGVuYWJsZWRSYWRpb3MgPSB0aGlzLl9pbnRlcmFjdGFibGVHcm91cGVkUmFkaW9zKCkuZmlsdGVyKFxuICAgICAgICAocikgPT4gIXIuZGlzYWJsZWQgJiYgIXIuZm9ybURpc2FibGVkLFxuICAgICAgKTtcbiAgICAgIGNvbnN0IGN1cnJlbnQ6IG51bWJlciA9IGVuYWJsZWRSYWRpb3MuaW5kZXhPZih0aGlzKTtcbiAgICAgIGNvbnN0IG5leHRJbmRleDogbnVtYmVyID0gZ2V0TmV4dEVsZW1lbnRJbmRleChldnQsIGN1cnJlbnQsIGVuYWJsZWRSYWRpb3MubGVuZ3RoKTtcblxuICAgICAgYXdhaXQgdGhpcy5uYXZpZ2F0ZUJ5S2V5Ym9hcmQoZW5hYmxlZFJhZGlvc1tuZXh0SW5kZXhdKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gU2JiRm9ybUFzc29jaWF0ZWRSYWRpb0J1dHRvbkVsZW1lbnQgYXMgdW5rbm93biBhcyBBYnN0cmFjdENvbnN0cnVjdG9yPFNiYkZvcm1Bc3NvY2lhdGVkUmFkaW9CdXR0b25NaXhpblR5cGU+ICZcbiAgICBUO1xufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBeUJBLElBQWEsc0NBQXNCLElBQUksUUFBTzs7OztBQXlCOUMsSUFBYSxxQ0FHWCxlQUNrRTtDQW9UbEUs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
@@ -1,7 +1,7 @@
1
1
  import { __esDecorate, __runInitializers } from "tslib";
2
2
  import { html, nothing } from "lit";
3
3
  import { state } from "lit/decorators.js";
4
- import { screenReaderOnlyStyles } from "../styles/styles.js";
4
+ import { listResetStyles, screenReaderOnlyStyles } from "../styles/styles.js";
5
5
  //#region src/elements/core/mixins/named-slot-list-mixin.ts
6
6
  var SSR_CHILD_COUNT_ATTRIBUTE = "data-ssr-child-count";
7
7
  var SLOTNAME_PREFIX = "li";
@@ -51,7 +51,7 @@ var SbbNamedSlotListMixin = (superClass) => {
51
51
  this.elementDependencies = [];
52
52
  }
53
53
  static {
54
- this.styles = [screenReaderOnlyStyles];
54
+ this.styles = [listResetStyles, screenReaderOnlyStyles];
55
55
  }
56
56
  #listChildren_accessor_storage;
57
57
  /**
@@ -140,4 +140,4 @@ var SbbNamedSlotListMixin = (superClass) => {
140
140
  //#endregion
141
141
  export { SbbNamedSlotListMixin };
142
142
 
143
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmFtZWQtc2xvdC1saXN0LW1peGluLmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb3JlL21peGlucy9uYW1lZC1zbG90LWxpc3QtbWl4aW4udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdHlwZSBDU1NSZXN1bHRHcm91cCwgaHRtbCwgbm90aGluZywgdHlwZSBQcm9wZXJ0eVZhbHVlcywgdHlwZSBUZW1wbGF0ZVJlc3VsdCB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBzdGF0ZSB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcblxuaW1wb3J0IHR5cGUge1xuICBTYmJFbGVtZW50LFxuICBTYmJFbGVtZW50Q29uc3RydWN0b3IsXG4gIFNiYkVsZW1lbnRUeXBlLFxufSBmcm9tICcuLi9iYXNlLWVsZW1lbnRzL2VsZW1lbnQudHMnO1xuaW1wb3J0IHsgc2NyZWVuUmVhZGVyT25seVN0eWxlcyB9IGZyb20gJy4uL3N0eWxlcy9zdHlsZXMudHMnO1xuXG5pbXBvcnQgdHlwZSB7IEFic3RyYWN0Q29uc3RydWN0b3IgfSBmcm9tICcuL2NvbnN0cnVjdG9yLnRzJztcblxuY29uc3QgU1NSX0NISUxEX0NPVU5UX0FUVFJJQlVURSA9ICdkYXRhLXNzci1jaGlsZC1jb3VudCc7XG5jb25zdCBTTE9UTkFNRV9QUkVGSVggPSAnbGknO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNiYk5hbWVkU2xvdFByb3BlcnRpZXMge1xuICBuYW1lOiBzdHJpbmc7XG4gIGFyaWFIaWRkZW46IGJvb2xlYW47XG59XG5cbi8qKlxuICogSGVscGVyIHR5cGUgZm9yIHdpbGxVcGRhdGUgb3Igc2ltaWxhciBjaGVja3MuXG4gKiBBbGxvd3MgdGhlIHVzYWdlIG9mIHRoZSBzdHJpbmcgbGl0ZXJhbCAnbGlzdENoaWxkcmVuJy5cbiAqXG4gKiBAZXhhbXBsZVxuICogcHJvdGVjdGVkIG92ZXJyaWRlIHdpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXM6IFByb3BlcnR5VmFsdWVzPFdpdGhMaXN0Q2hpbGRyZW48dGhpcz4+KTogdm9pZCB7XG4gKiAgIGlmIChjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ2xpc3RDaGlsZHJlbicpKSB7XG4gKiAgICAgLi4uXG4gKiAgIH1cbiAqIH1cbiAqL1xuZXhwb3J0IHR5cGUgV2l0aExpc3RDaGlsZHJlbjxcbiAgVCBleHRlbmRzIFNiYk5hbWVkU2xvdExpc3RNaXhpblR5cGU8Qz4sXG4gIEMgZXh0ZW5kcyBIVE1MRWxlbWVudCA9IEhUTUxFbGVtZW50LFxuPiA9IFQgJiB7IGxpc3RDaGlsZHJlbjogQ1tdIH07XG5cbmV4cG9ydCBkZWNsYXJlIGFic3RyYWN0IGNsYXNzIFNiYk5hbWVkU2xvdExpc3RNaXhpblR5cGU8QyBleHRlbmRzIEhUTUxFbGVtZW50PiBleHRlbmRzIFNiYkVsZW1lbnQge1xuICBwcm90ZWN0ZWQgYWJzdHJhY3QgcmVhZG9ubHkgbGlzdENoaWxkTG9jYWxOYW1lczogc3RyaW5nW107XG4gIHByb3RlY3RlZCBhY2Nlc3NvciBsaXN0Q2hpbGRyZW46IENbXTtcbiAgcHJvdGVjdGVkIHJlbmRlckxpc3QoXG4gICAgYXR0cmlidXRlcz86IHtcbiAgICAgIGNsYXNzPzogc3RyaW5nO1xuICAgICAgYXJpYUxhYmVsPzogc3RyaW5nO1xuICAgICAgYXJpYUxhYmVsbGVkYnk/OiBzdHJpbmc7XG4gICAgfSxcbiAgICBsaXN0SXRlbUF0dHJpYnV0ZXM/OiB7XG4gICAgICBsb2NhbE5hbWVWaXN1YWxPbmx5Pzogc3RyaW5nW107XG4gICAgfSxcbiAgKTogVGVtcGxhdGVSZXN1bHQ7XG4gIHByb3RlY3RlZCBsaXN0U2xvdEVudHJpZXMoKTogU2JiTmFtZWRTbG90UHJvcGVydGllc1tdO1xuICBwcm90ZWN0ZWQgcmVuZGVySGlkZGVuU2xvdCgpOiBUZW1wbGF0ZVJlc3VsdDtcbn1cblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuZXhwb3J0IGNvbnN0IFNiYk5hbWVkU2xvdExpc3RNaXhpbiA9IDxcbiAgQyBleHRlbmRzIEhUTUxFbGVtZW50LFxuICBUIGV4dGVuZHMgQWJzdHJhY3RDb25zdHJ1Y3RvcjxTYmJFbGVtZW50PiAmIFNiYkVsZW1lbnRDb25zdHJ1Y3Rvcixcbj4oXG4gIHN1cGVyQ2xhc3M6IFQsXG4pOiBBYnN0cmFjdENvbnN0cnVjdG9yPFNiYk5hbWVkU2xvdExpc3RNaXhpblR5cGU8Qz4+ICYgVCA9PiB7XG4gIC8qKlxuICAgKiBUaGlzIGJhc2UgY2xhc3MgcHJvdmlkZXMgbmFtZWQgc2xvdCBsaXN0IG9ic2VydmVyIGZ1bmN0aW9uYWxpdHkuXG4gICAqIFRoaXMgYWxsb3dzIHVzaW5nIHRoZSBwYXR0ZXJuIG9mIHJlbmRlcmluZyBhIG5hbWVkIHNsb3QgZm9yIGVhY2ggY2hpbGQsIHdoaWNoIGFsbG93c1xuICAgKiB3cmFwcGluZyBjaGlsZHJlbiBpbiBhbiB1bC9saSBsaXN0LlxuICAgKi9cbiAgYWJzdHJhY3QgY2xhc3MgTmFtZWRTbG90TGlzdEVsZW1lbnRcbiAgICBleHRlbmRzIHN1cGVyQ2xhc3NcbiAgICBpbXBsZW1lbnRzIFBhcnRpYWw8U2JiTmFtZWRTbG90TGlzdE1peGluVHlwZTxDPj5cbiAge1xuICAgIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgZWxlbWVudERlcGVuZGVuY2llczogU2JiRWxlbWVudFR5cGVbXSA9IFtdO1xuICAgIHB1YmxpYyBzdGF0aWMgc3R5bGVzOiBDU1NSZXN1bHRHcm91cCA9IFtzY3JlZW5SZWFkZXJPbmx5U3R5bGVzXTtcbiAgICAvKiogQSBsaXN0IG9mIGxvd2VyLWNhc2VkIHRhZyBuYW1lcyB0byBtYXRjaCBhZ2FpbnN0LiAoZS5nLiBgc2JiLWxpbmtgKSAqL1xuICAgIHByb3RlY3RlZCBhYnN0cmFjdCByZWFkb25seSBsaXN0Q2hpbGRMb2NhbE5hbWVzOiBzdHJpbmdbXTtcblxuICAgIC8qKlxuICAgICAqIEEgbGlzdCBvZiBjaGlsZHJlbiB3aXRoIHRoZSBkZWZpbmVkIHRhZyBuYW1lcy5cbiAgICAgKiBUaGlzIGFycmF5IGlzIG9ubHkgdXBkYXRlZCBpZiB0aGVyZSBpcyBhbiBhY3R1YWwgY2hhbmdlXG4gICAgICogdG8gdGhlIGNoaWxkIGVsZW1lbnRzLlxuICAgICAqL1xuICAgIEBzdGF0ZSgpIHByb3RlY3RlZCBhY2Nlc3NvciBsaXN0Q2hpbGRyZW46IENbXSA9IFtdO1xuXG4gICAgcHVibGljIG92ZXJyaWRlIGNvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgICAgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKTtcbiAgICAgIHRoaXMuc2hhZG93Um9vdD8uYWRkRXZlbnRMaXN0ZW5lcignc2xvdGNoYW5nZScsIHRoaXMuX2hhbmRsZVNsb3RjaGFuZ2UsIHsgcGFzc2l2ZTogdHJ1ZSB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb3ZlcnJpZGUgZGlzY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgICBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpO1xuICAgICAgdGhpcy5zaGFkb3dSb290Py5yZW1vdmVFdmVudExpc3RlbmVyKCdzbG90Y2hhbmdlJywgdGhpcy5faGFuZGxlU2xvdGNoYW5nZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfaGFuZGxlU2xvdGNoYW5nZSA9ICgpOiB2b2lkID0+IHtcbiAgICAgIGNvbnN0IGxpc3RDaGlsZHJlbiA9IEFycmF5LmZyb20odGhpcy5jaGlsZHJlbiA/PyBbXSkuZmlsdGVyKChlKTogZSBpcyBDID0+XG4gICAgICAgIHRoaXMubGlzdENoaWxkTG9jYWxOYW1lcy5pbmNsdWRlcyhlLmxvY2FsTmFtZSksXG4gICAgICApO1xuICAgICAgLy8gSWYgdGhlIHNsb3R0ZWQgY2hpbGQgaW5zdGFuY2VzIGhhdmUgbm90IGNoYW5nZWQsIHdlIGNhbiBza2lwIHN5bmNpbmcgYW5kIHVwZGF0aW5nXG4gICAgICAvLyB0aGUgbGluayByZWZlcmVuY2UgbGlzdC5cbiAgICAgIGlmIChcbiAgICAgICAgbGlzdENoaWxkcmVuLmxlbmd0aCA9PT0gdGhpcy5saXN0Q2hpbGRyZW4ubGVuZ3RoICYmXG4gICAgICAgIHRoaXMubGlzdENoaWxkcmVuLmV2ZXJ5KChlLCBpKSA9PiBsaXN0Q2hpbGRyZW5baV0gPT09IGUpXG4gICAgICApIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmxpc3RDaGlsZHJlblxuICAgICAgICAuZmlsdGVyKChjKSA9PiAhbGlzdENoaWxkcmVuLmluY2x1ZGVzKGMpKVxuICAgICAgICAuZm9yRWFjaCgoYykgPT4gYy5yZW1vdmVBdHRyaWJ1dGUoJ3Nsb3QnKSk7XG4gICAgICB0aGlzLmxpc3RDaGlsZHJlbiA9IGxpc3RDaGlsZHJlbjtcblxuICAgICAgLy8gUmVtb3ZlIHRoZSBzc3IgYXR0cmlidXRlLCBvbmNlIHdlIGhhdmUgYWN0dWFsbHkgaW5pdGlhbGl6ZWQgdGhlIGNoaWxkcmVuIGVsZW1lbnRzLlxuICAgICAgdGhpcy5yZW1vdmVBdHRyaWJ1dGUoU1NSX0NISUxEX0NPVU5UX0FUVFJJQlVURSk7XG4gICAgfTtcblxuICAgIHByb3RlY3RlZCBvdmVycmlkZSB1cGRhdGVkKFxuICAgICAgY2hhbmdlZFByb3BlcnRpZXM6IFByb3BlcnR5VmFsdWVzPHRoaXMgJiB7IGxpc3RDaGlsZHJlbjogQ1tdIH0+LFxuICAgICk6IHZvaWQge1xuICAgICAgc3VwZXIudXBkYXRlZChjaGFuZ2VkUHJvcGVydGllcyk7XG5cbiAgICAgIGlmIChjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ2xpc3RDaGlsZHJlbicpKSB7XG4gICAgICAgIC8vIElmIHlvdSBhc3NpZ24gYSBzbG90IGF0dHJpYnV0ZSB3aXRob3V0IGEgY29ycmVzcG9uZGluZyBzbG90IGVsZW1lbnQsXG4gICAgICAgIC8vIGl0IGlzIG5vdCBmdWxseSBwYXJ0IG9mIHRoZSBET00gYW5kIGUuZy4gbWVkaWEgcXVlcmllcyB3aWxsIGZhaWwuXG4gICAgICAgIHRoaXMubGlzdENoaWxkcmVuLmZvckVhY2goKGMsIGluZGV4KSA9PlxuICAgICAgICAgIGMuc2V0QXR0cmlidXRlKCdzbG90JywgYCR7U0xPVE5BTUVfUFJFRklYfS0ke2luZGV4fWApLFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlbmRlcnMgbGlzdCBhbmQgbGlzdCBzbG90cyBmb3Igc2xvdHRlZCBjaGlsZHJlbiBvciBhIG51bWJlciBvZiBsaXN0IHNsb3RzXG4gICAgICogY29ycmVzcG9uZGluZyB0byB0aGUgYGRhdGEtc3NyLWNoaWxkLWNvdW50YCBhdHRyaWJ1dGUgdmFsdWUuXG4gICAgICpcbiAgICAgKiBUaGlzIGlzIGEgcG9zc2libGUgb3B0aW1pemF0aW9uIGZvciBTU1IsIGFzIGluIGFuIFNTUiBMaXQgZW52aXJvbm1lbnRcbiAgICAgKiBvdGhlciBlbGVtZW50cyBhcmUgbm90IGF2YWlsYWJsZSwgYnV0IG1pZ2h0IGJlIGF2YWlsYWJsZSBpbiB0aGUgbWV0YVxuICAgICAqIGZyYW1ld29yayB3cmFwcGVyIChsaWtlIGUuZy4gUmVhY3QpLiBUaGlzIGFsbG93cyB0byBwcm92aWRlIHRoZSBudW1iZXIgb2ZcbiAgICAgKiBjaGlsZHJlbiB0byBiZSBwYXNzZWQgdmlhIHRoZSBgZGF0YS1zc3ItY2hpbGQtY291bnRgIGF0dHJpYnV0ZSB2YWx1ZS5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgcmVuZGVyTGlzdChcbiAgICAgIGF0dHJpYnV0ZXM6IHsgY2xhc3M/OiBzdHJpbmc7IGFyaWFMYWJlbD86IHN0cmluZzsgYXJpYUxhYmVsbGVkYnk/OiBzdHJpbmcgfSA9IHt9LFxuICAgICAgbGlzdEl0ZW1BdHRyaWJ1dGVzOiB7IGxvY2FsTmFtZVZpc3VhbE9ubHk/OiBzdHJpbmdbXSB9ID0ge30sXG4gICAgKTogVGVtcGxhdGVSZXN1bHQge1xuICAgICAgY29uc3QgbGlzdFNsb3ROYW1lczogU2JiTmFtZWRTbG90UHJvcGVydGllc1tdID0gdGhpcy5saXN0U2xvdEVudHJpZXMobGlzdEl0ZW1BdHRyaWJ1dGVzKTtcblxuICAgICAgaWYgKGxpc3RTbG90TmFtZXMubGVuZ3RoID49IDIpIHtcbiAgICAgICAgcmV0dXJuIGh0bWxgXG4gICAgICAgICAgPHVsXG4gICAgICAgICAgICBjbGFzcz0ke2F0dHJpYnV0ZXMuY2xhc3MgfHwgdGhpcy5sb2NhbE5hbWV9XG4gICAgICAgICAgICBhcmlhLWxhYmVsPSR7YXR0cmlidXRlcy5hcmlhTGFiZWwgfHwgbm90aGluZ31cbiAgICAgICAgICAgIGFyaWEtbGFiZWxsZWRieT0ke2F0dHJpYnV0ZXMuYXJpYUxhYmVsbGVkYnkgfHwgbm90aGluZ31cbiAgICAgICAgICA+XG4gICAgICAgICAgICAke2xpc3RTbG90TmFtZXMubWFwKFxuICAgICAgICAgICAgICAoc2xvdCkgPT4gaHRtbGBcbiAgICAgICAgICAgICAgICA8bGkgYXJpYS1oaWRkZW49JHtzbG90LmFyaWFIaWRkZW4gfHwgbm90aGluZ30+XG4gICAgICAgICAgICAgICAgICA8c2xvdCBuYW1lPSR7c2xvdC5uYW1lfT48L3Nsb3Q+XG4gICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgYCxcbiAgICAgICAgICAgICl9XG4gICAgICAgICAgPC91bD5cbiAgICAgICAgICAke3RoaXMucmVuZGVySGlkZGVuU2xvdCgpfVxuICAgICAgICBgO1xuICAgICAgfSBlbHNlIGlmIChsaXN0U2xvdE5hbWVzLmxlbmd0aCA9PT0gMSkge1xuICAgICAgICByZXR1cm4gaHRtbGA8c3BhbiBjbGFzcz1cInNiYi1zY3JlZW4tcmVhZGVyLW9ubHlcIj4ke2F0dHJpYnV0ZXMuYXJpYUxhYmVsfTwvc3Bhbj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz0ke2F0dHJpYnV0ZXMuY2xhc3MgfHwgdGhpcy5sb2NhbE5hbWV9PlxuICAgICAgICAgICAgPHNwYW4+PHNsb3QgbmFtZT0ke2xpc3RTbG90TmFtZXNbMF0ubmFtZX0+PC9zbG90Pjwvc3Bhbj5cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgJHt0aGlzLnJlbmRlckhpZGRlblNsb3QoKX0gYDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiB0aGlzLnJlbmRlckhpZGRlblNsb3QoKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIGFuIGFycmF5IG9mIFNiYk5hbWVkU2xvdFByb3BlcnRpZXMsIHdoaWNoIGhvbGRzIHRoZSBsaXN0IHNsb3QgbmFtZXMgYW5kIHRoZSBoaWRkZW4gcHJvcGVydHk7XG4gICAgICogaXRzIGxlbmd0aCBjb3JyZXNwb25kcyB0byB0aGUgbnVtYmVyIG9mIG1hdGNoZWQgY2hpbGRyZW4gb3IgdGhlIGBkYXRhLXNzci1jaGlsZC1jb3VudGAgYXR0cmlidXRlIHZhbHVlLlxuICAgICAqXG4gICAgICogVGhpcyBpcyBhIHBvc3NpYmxlIG9wdGltaXphdGlvbiBmb3IgU1NSLCBhcyBpbiBhbiBTU1IgTGl0IGVudmlyb25tZW50XG4gICAgICogb3RoZXIgZWxlbWVudHMgYXJlIG5vdCBhdmFpbGFibGUsIGJ1dCBtaWdodCBiZSBhdmFpbGFibGUgaW4gdGhlIG1ldGFcbiAgICAgKiBmcmFtZXdvcmsgd3JhcHBlciAobGlrZSBlLmcuIFJlYWN0KS4gVGhpcyBhbGxvd3MgdG8gcHJvdmlkZSB0aGUgbnVtYmVyIG9mXG4gICAgICogY2hpbGRyZW4gdG8gYmUgcGFzc2VkIHZpYSB0aGUgYGRhdGEtc3NyLWNoaWxkLWNvdW50YCBhdHRyaWJ1dGUgdmFsdWUuXG4gICAgICovXG4gICAgcHJvdGVjdGVkIGxpc3RTbG90RW50cmllcyhsaXN0SXRlbUF0dHJpYnV0ZXM6IHtcbiAgICAgIGxvY2FsTmFtZVZpc3VhbE9ubHk/OiBzdHJpbmdbXTtcbiAgICB9KTogU2JiTmFtZWRTbG90UHJvcGVydGllc1tdIHtcbiAgICAgIGNvbnN0IGxpc3RDaGlsZHJlbiA9IHRoaXMubGlzdENoaWxkcmVuLmxlbmd0aFxuICAgICAgICA/IHRoaXMubGlzdENoaWxkcmVuXG4gICAgICAgIDogQXJyYXkuZnJvbSh7IGxlbmd0aDogKyh0aGlzLmdldEF0dHJpYnV0ZShTU1JfQ0hJTERfQ09VTlRfQVRUUklCVVRFKSA/PyAwKSB9KTtcbiAgICAgIHJldHVybiBsaXN0Q2hpbGRyZW4ubWFwKChlLCBpKSA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgbmFtZTogYCR7U0xPVE5BTUVfUFJFRklYfS0ke2l9YCxcbiAgICAgICAgICBhcmlhSGlkZGVuOlxuICAgICAgICAgICAgbGlzdEl0ZW1BdHRyaWJ1dGVzPy5sb2NhbE5hbWVWaXN1YWxPbmx5Py5pbmNsdWRlcygoZSBhcyBIVE1MRWxlbWVudCkubG9jYWxOYW1lKSA/P1xuICAgICAgICAgICAgZmFsc2UsXG4gICAgICAgIH07XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIGEgaGlkZGVuIHNsb3QsIHdoaWNoIGlzIGludGVuZGVkIGFzIHRoZSBjaGlsZHJlbiBjaGFuZ2UgZGV0ZWN0aW9uLlxuICAgICAqIFdoZW4gYW4gZWxlbWVudCB3aXRob3V0IGEgc2xvdCBhdHRyaWJ1dGUgaXMgc2xvdHRlZCB0byB0aGUgZWxlbWVudCwgaXQgdHJpZ2dlcnNcbiAgICAgKiB0aGUgc2xvdGNoYW5nZSBldmVudCwgd2hpY2ggY2FuIGJlIHVzZWQgdG8gYXNzaWduIGl0IHRvIHRoZSBhcHByb3ByaWF0ZSBuYW1lZCBzbG90LlxuICAgICAqL1xuICAgIHByb3RlY3RlZCByZW5kZXJIaWRkZW5TbG90KCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICAgIHJldHVybiBodG1sYDxzcGFuIGhpZGRlbj48c2xvdD48L3Nsb3Q+PC9zcGFuPmA7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIE5hbWVkU2xvdExpc3RFbGVtZW50IGFzIHVua25vd24gYXMgQWJzdHJhY3RDb25zdHJ1Y3RvcjxTYmJOYW1lZFNsb3RMaXN0TWl4aW5UeXBlPEM+PiAmIFQ7XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7OztBQVlBLElBQU0sNEJBQTRCO0FBQ2xDLElBQU0sa0JBQWtCO0FBeUN4QixJQUFhLHlC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
143
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmFtZWQtc2xvdC1saXN0LW1peGluLmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb3JlL21peGlucy9uYW1lZC1zbG90LWxpc3QtbWl4aW4udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdHlwZSBDU1NSZXN1bHRHcm91cCwgaHRtbCwgbm90aGluZywgdHlwZSBQcm9wZXJ0eVZhbHVlcywgdHlwZSBUZW1wbGF0ZVJlc3VsdCB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBzdGF0ZSB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcblxuaW1wb3J0IHR5cGUge1xuICBTYmJFbGVtZW50LFxuICBTYmJFbGVtZW50Q29uc3RydWN0b3IsXG4gIFNiYkVsZW1lbnRUeXBlLFxufSBmcm9tICcuLi9iYXNlLWVsZW1lbnRzL2VsZW1lbnQudHMnO1xuaW1wb3J0IHsgbGlzdFJlc2V0U3R5bGVzLCBzY3JlZW5SZWFkZXJPbmx5U3R5bGVzIH0gZnJvbSAnLi4vc3R5bGVzL3N0eWxlcy50cyc7XG5cbmltcG9ydCB0eXBlIHsgQWJzdHJhY3RDb25zdHJ1Y3RvciB9IGZyb20gJy4vY29uc3RydWN0b3IudHMnO1xuXG5jb25zdCBTU1JfQ0hJTERfQ09VTlRfQVRUUklCVVRFID0gJ2RhdGEtc3NyLWNoaWxkLWNvdW50JztcbmNvbnN0IFNMT1ROQU1FX1BSRUZJWCA9ICdsaSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2JiTmFtZWRTbG90UHJvcGVydGllcyB7XG4gIG5hbWU6IHN0cmluZztcbiAgYXJpYUhpZGRlbjogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBIZWxwZXIgdHlwZSBmb3Igd2lsbFVwZGF0ZSBvciBzaW1pbGFyIGNoZWNrcy5cbiAqIEFsbG93cyB0aGUgdXNhZ2Ugb2YgdGhlIHN0cmluZyBsaXRlcmFsICdsaXN0Q2hpbGRyZW4nLlxuICpcbiAqIEBleGFtcGxlXG4gKiBwcm90ZWN0ZWQgb3ZlcnJpZGUgd2lsbFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXM8V2l0aExpc3RDaGlsZHJlbjx0aGlzPj4pOiB2b2lkIHtcbiAqICAgaWYgKGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygnbGlzdENoaWxkcmVuJykpIHtcbiAqICAgICAuLi5cbiAqICAgfVxuICogfVxuICovXG5leHBvcnQgdHlwZSBXaXRoTGlzdENoaWxkcmVuPFxuICBUIGV4dGVuZHMgU2JiTmFtZWRTbG90TGlzdE1peGluVHlwZTxDPixcbiAgQyBleHRlbmRzIEhUTUxFbGVtZW50ID0gSFRNTEVsZW1lbnQsXG4+ID0gVCAmIHsgbGlzdENoaWxkcmVuOiBDW10gfTtcblxuZXhwb3J0IGRlY2xhcmUgYWJzdHJhY3QgY2xhc3MgU2JiTmFtZWRTbG90TGlzdE1peGluVHlwZTxDIGV4dGVuZHMgSFRNTEVsZW1lbnQ+IGV4dGVuZHMgU2JiRWxlbWVudCB7XG4gIHByb3RlY3RlZCBhYnN0cmFjdCByZWFkb25seSBsaXN0Q2hpbGRMb2NhbE5hbWVzOiBzdHJpbmdbXTtcbiAgcHJvdGVjdGVkIGFjY2Vzc29yIGxpc3RDaGlsZHJlbjogQ1tdO1xuICBwcm90ZWN0ZWQgcmVuZGVyTGlzdChcbiAgICBhdHRyaWJ1dGVzPzoge1xuICAgICAgY2xhc3M/OiBzdHJpbmc7XG4gICAgICBhcmlhTGFiZWw/OiBzdHJpbmc7XG4gICAgICBhcmlhTGFiZWxsZWRieT86IHN0cmluZztcbiAgICB9LFxuICAgIGxpc3RJdGVtQXR0cmlidXRlcz86IHtcbiAgICAgIGxvY2FsTmFtZVZpc3VhbE9ubHk/OiBzdHJpbmdbXTtcbiAgICB9LFxuICApOiBUZW1wbGF0ZVJlc3VsdDtcbiAgcHJvdGVjdGVkIGxpc3RTbG90RW50cmllcygpOiBTYmJOYW1lZFNsb3RQcm9wZXJ0aWVzW107XG4gIHByb3RlY3RlZCByZW5kZXJIaWRkZW5TbG90KCk6IFRlbXBsYXRlUmVzdWx0O1xufVxuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG5leHBvcnQgY29uc3QgU2JiTmFtZWRTbG90TGlzdE1peGluID0gPFxuICBDIGV4dGVuZHMgSFRNTEVsZW1lbnQsXG4gIFQgZXh0ZW5kcyBBYnN0cmFjdENvbnN0cnVjdG9yPFNiYkVsZW1lbnQ+ICYgU2JiRWxlbWVudENvbnN0cnVjdG9yLFxuPihcbiAgc3VwZXJDbGFzczogVCxcbik6IEFic3RyYWN0Q29uc3RydWN0b3I8U2JiTmFtZWRTbG90TGlzdE1peGluVHlwZTxDPj4gJiBUID0+IHtcbiAgLyoqXG4gICAqIFRoaXMgYmFzZSBjbGFzcyBwcm92aWRlcyBuYW1lZCBzbG90IGxpc3Qgb2JzZXJ2ZXIgZnVuY3Rpb25hbGl0eS5cbiAgICogVGhpcyBhbGxvd3MgdXNpbmcgdGhlIHBhdHRlcm4gb2YgcmVuZGVyaW5nIGEgbmFtZWQgc2xvdCBmb3IgZWFjaCBjaGlsZCwgd2hpY2ggYWxsb3dzXG4gICAqIHdyYXBwaW5nIGNoaWxkcmVuIGluIGFuIHVsL2xpIGxpc3QuXG4gICAqL1xuICBhYnN0cmFjdCBjbGFzcyBOYW1lZFNsb3RMaXN0RWxlbWVudFxuICAgIGV4dGVuZHMgc3VwZXJDbGFzc1xuICAgIGltcGxlbWVudHMgUGFydGlhbDxTYmJOYW1lZFNsb3RMaXN0TWl4aW5UeXBlPEM+PlxuICB7XG4gICAgcHVibGljIHN0YXRpYyBvdmVycmlkZSBlbGVtZW50RGVwZW5kZW5jaWVzOiBTYmJFbGVtZW50VHlwZVtdID0gW107XG4gICAgcHVibGljIHN0YXRpYyBzdHlsZXM6IENTU1Jlc3VsdEdyb3VwID0gW2xpc3RSZXNldFN0eWxlcywgc2NyZWVuUmVhZGVyT25seVN0eWxlc107XG4gICAgLyoqIEEgbGlzdCBvZiBsb3dlci1jYXNlZCB0YWcgbmFtZXMgdG8gbWF0Y2ggYWdhaW5zdC4gKGUuZy4gYHNiYi1saW5rYCkgKi9cbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgcmVhZG9ubHkgbGlzdENoaWxkTG9jYWxOYW1lczogc3RyaW5nW107XG5cbiAgICAvKipcbiAgICAgKiBBIGxpc3Qgb2YgY2hpbGRyZW4gd2l0aCB0aGUgZGVmaW5lZCB0YWcgbmFtZXMuXG4gICAgICogVGhpcyBhcnJheSBpcyBvbmx5IHVwZGF0ZWQgaWYgdGhlcmUgaXMgYW4gYWN0dWFsIGNoYW5nZVxuICAgICAqIHRvIHRoZSBjaGlsZCBlbGVtZW50cy5cbiAgICAgKi9cbiAgICBAc3RhdGUoKSBwcm90ZWN0ZWQgYWNjZXNzb3IgbGlzdENoaWxkcmVuOiBDW10gPSBbXTtcblxuICAgIHB1YmxpYyBvdmVycmlkZSBjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICAgIHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgICB0aGlzLnNoYWRvd1Jvb3Q/LmFkZEV2ZW50TGlzdGVuZXIoJ3Nsb3RjaGFuZ2UnLCB0aGlzLl9oYW5kbGVTbG90Y2hhbmdlLCB7IHBhc3NpdmU6IHRydWUgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIG92ZXJyaWRlIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgICAgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKTtcbiAgICAgIHRoaXMuc2hhZG93Um9vdD8ucmVtb3ZlRXZlbnRMaXN0ZW5lcignc2xvdGNoYW5nZScsIHRoaXMuX2hhbmRsZVNsb3RjaGFuZ2UpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2hhbmRsZVNsb3RjaGFuZ2UgPSAoKTogdm9pZCA9PiB7XG4gICAgICBjb25zdCBsaXN0Q2hpbGRyZW4gPSBBcnJheS5mcm9tKHRoaXMuY2hpbGRyZW4gPz8gW10pLmZpbHRlcigoZSk6IGUgaXMgQyA9PlxuICAgICAgICB0aGlzLmxpc3RDaGlsZExvY2FsTmFtZXMuaW5jbHVkZXMoZS5sb2NhbE5hbWUpLFxuICAgICAgKTtcbiAgICAgIC8vIElmIHRoZSBzbG90dGVkIGNoaWxkIGluc3RhbmNlcyBoYXZlIG5vdCBjaGFuZ2VkLCB3ZSBjYW4gc2tpcCBzeW5jaW5nIGFuZCB1cGRhdGluZ1xuICAgICAgLy8gdGhlIGxpbmsgcmVmZXJlbmNlIGxpc3QuXG4gICAgICBpZiAoXG4gICAgICAgIGxpc3RDaGlsZHJlbi5sZW5ndGggPT09IHRoaXMubGlzdENoaWxkcmVuLmxlbmd0aCAmJlxuICAgICAgICB0aGlzLmxpc3RDaGlsZHJlbi5ldmVyeSgoZSwgaSkgPT4gbGlzdENoaWxkcmVuW2ldID09PSBlKVxuICAgICAgKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgdGhpcy5saXN0Q2hpbGRyZW5cbiAgICAgICAgLmZpbHRlcigoYykgPT4gIWxpc3RDaGlsZHJlbi5pbmNsdWRlcyhjKSlcbiAgICAgICAgLmZvckVhY2goKGMpID0+IGMucmVtb3ZlQXR0cmlidXRlKCdzbG90JykpO1xuICAgICAgdGhpcy5saXN0Q2hpbGRyZW4gPSBsaXN0Q2hpbGRyZW47XG5cbiAgICAgIC8vIFJlbW92ZSB0aGUgc3NyIGF0dHJpYnV0ZSwgb25jZSB3ZSBoYXZlIGFjdHVhbGx5IGluaXRpYWxpemVkIHRoZSBjaGlsZHJlbiBlbGVtZW50cy5cbiAgICAgIHRoaXMucmVtb3ZlQXR0cmlidXRlKFNTUl9DSElMRF9DT1VOVF9BVFRSSUJVVEUpO1xuICAgIH07XG5cbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgdXBkYXRlZChcbiAgICAgIGNoYW5nZWRQcm9wZXJ0aWVzOiBQcm9wZXJ0eVZhbHVlczx0aGlzICYgeyBsaXN0Q2hpbGRyZW46IENbXSB9PixcbiAgICApOiB2b2lkIHtcbiAgICAgIHN1cGVyLnVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXMpO1xuXG4gICAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdsaXN0Q2hpbGRyZW4nKSkge1xuICAgICAgICAvLyBJZiB5b3UgYXNzaWduIGEgc2xvdCBhdHRyaWJ1dGUgd2l0aG91dCBhIGNvcnJlc3BvbmRpbmcgc2xvdCBlbGVtZW50LFxuICAgICAgICAvLyBpdCBpcyBub3QgZnVsbHkgcGFydCBvZiB0aGUgRE9NIGFuZCBlLmcuIG1lZGlhIHF1ZXJpZXMgd2lsbCBmYWlsLlxuICAgICAgICB0aGlzLmxpc3RDaGlsZHJlbi5mb3JFYWNoKChjLCBpbmRleCkgPT5cbiAgICAgICAgICBjLnNldEF0dHJpYnV0ZSgnc2xvdCcsIGAke1NMT1ROQU1FX1BSRUZJWH0tJHtpbmRleH1gKSxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZW5kZXJzIGxpc3QgYW5kIGxpc3Qgc2xvdHMgZm9yIHNsb3R0ZWQgY2hpbGRyZW4gb3IgYSBudW1iZXIgb2YgbGlzdCBzbG90c1xuICAgICAqIGNvcnJlc3BvbmRpbmcgdG8gdGhlIGBkYXRhLXNzci1jaGlsZC1jb3VudGAgYXR0cmlidXRlIHZhbHVlLlxuICAgICAqXG4gICAgICogVGhpcyBpcyBhIHBvc3NpYmxlIG9wdGltaXphdGlvbiBmb3IgU1NSLCBhcyBpbiBhbiBTU1IgTGl0IGVudmlyb25tZW50XG4gICAgICogb3RoZXIgZWxlbWVudHMgYXJlIG5vdCBhdmFpbGFibGUsIGJ1dCBtaWdodCBiZSBhdmFpbGFibGUgaW4gdGhlIG1ldGFcbiAgICAgKiBmcmFtZXdvcmsgd3JhcHBlciAobGlrZSBlLmcuIFJlYWN0KS4gVGhpcyBhbGxvd3MgdG8gcHJvdmlkZSB0aGUgbnVtYmVyIG9mXG4gICAgICogY2hpbGRyZW4gdG8gYmUgcGFzc2VkIHZpYSB0aGUgYGRhdGEtc3NyLWNoaWxkLWNvdW50YCBhdHRyaWJ1dGUgdmFsdWUuXG4gICAgICovXG4gICAgcHJvdGVjdGVkIHJlbmRlckxpc3QoXG4gICAgICBhdHRyaWJ1dGVzOiB7IGNsYXNzPzogc3RyaW5nOyBhcmlhTGFiZWw/OiBzdHJpbmc7IGFyaWFMYWJlbGxlZGJ5Pzogc3RyaW5nIH0gPSB7fSxcbiAgICAgIGxpc3RJdGVtQXR0cmlidXRlczogeyBsb2NhbE5hbWVWaXN1YWxPbmx5Pzogc3RyaW5nW10gfSA9IHt9LFxuICAgICk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICAgIGNvbnN0IGxpc3RTbG90TmFtZXM6IFNiYk5hbWVkU2xvdFByb3BlcnRpZXNbXSA9IHRoaXMubGlzdFNsb3RFbnRyaWVzKGxpc3RJdGVtQXR0cmlidXRlcyk7XG5cbiAgICAgIGlmIChsaXN0U2xvdE5hbWVzLmxlbmd0aCA+PSAyKSB7XG4gICAgICAgIHJldHVybiBodG1sYFxuICAgICAgICAgIDx1bFxuICAgICAgICAgICAgY2xhc3M9JHthdHRyaWJ1dGVzLmNsYXNzIHx8IHRoaXMubG9jYWxOYW1lfVxuICAgICAgICAgICAgYXJpYS1sYWJlbD0ke2F0dHJpYnV0ZXMuYXJpYUxhYmVsIHx8IG5vdGhpbmd9XG4gICAgICAgICAgICBhcmlhLWxhYmVsbGVkYnk9JHthdHRyaWJ1dGVzLmFyaWFMYWJlbGxlZGJ5IHx8IG5vdGhpbmd9XG4gICAgICAgICAgPlxuICAgICAgICAgICAgJHtsaXN0U2xvdE5hbWVzLm1hcChcbiAgICAgICAgICAgICAgKHNsb3QpID0+IGh0bWxgXG4gICAgICAgICAgICAgICAgPGxpIGFyaWEtaGlkZGVuPSR7c2xvdC5hcmlhSGlkZGVuIHx8IG5vdGhpbmd9PlxuICAgICAgICAgICAgICAgICAgPHNsb3QgbmFtZT0ke3Nsb3QubmFtZX0+PC9zbG90PlxuICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgIGAsXG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgJHt0aGlzLnJlbmRlckhpZGRlblNsb3QoKX1cbiAgICAgICAgYDtcbiAgICAgIH0gZWxzZSBpZiAobGlzdFNsb3ROYW1lcy5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgcmV0dXJuIGh0bWxgPHNwYW4gY2xhc3M9XCJzYmItc2NyZWVuLXJlYWRlci1vbmx5XCI+JHthdHRyaWJ1dGVzLmFyaWFMYWJlbH08L3NwYW4+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9JHthdHRyaWJ1dGVzLmNsYXNzIHx8IHRoaXMubG9jYWxOYW1lfT5cbiAgICAgICAgICAgIDxzcGFuPjxzbG90IG5hbWU9JHtsaXN0U2xvdE5hbWVzWzBdLm5hbWV9Pjwvc2xvdD48L3NwYW4+XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICR7dGhpcy5yZW5kZXJIaWRkZW5TbG90KCl9IGA7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gdGhpcy5yZW5kZXJIaWRkZW5TbG90KCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyBhbiBhcnJheSBvZiBTYmJOYW1lZFNsb3RQcm9wZXJ0aWVzLCB3aGljaCBob2xkcyB0aGUgbGlzdCBzbG90IG5hbWVzIGFuZCB0aGUgaGlkZGVuIHByb3BlcnR5O1xuICAgICAqIGl0cyBsZW5ndGggY29ycmVzcG9uZHMgdG8gdGhlIG51bWJlciBvZiBtYXRjaGVkIGNoaWxkcmVuIG9yIHRoZSBgZGF0YS1zc3ItY2hpbGQtY291bnRgIGF0dHJpYnV0ZSB2YWx1ZS5cbiAgICAgKlxuICAgICAqIFRoaXMgaXMgYSBwb3NzaWJsZSBvcHRpbWl6YXRpb24gZm9yIFNTUiwgYXMgaW4gYW4gU1NSIExpdCBlbnZpcm9ubWVudFxuICAgICAqIG90aGVyIGVsZW1lbnRzIGFyZSBub3QgYXZhaWxhYmxlLCBidXQgbWlnaHQgYmUgYXZhaWxhYmxlIGluIHRoZSBtZXRhXG4gICAgICogZnJhbWV3b3JrIHdyYXBwZXIgKGxpa2UgZS5nLiBSZWFjdCkuIFRoaXMgYWxsb3dzIHRvIHByb3ZpZGUgdGhlIG51bWJlciBvZlxuICAgICAqIGNoaWxkcmVuIHRvIGJlIHBhc3NlZCB2aWEgdGhlIGBkYXRhLXNzci1jaGlsZC1jb3VudGAgYXR0cmlidXRlIHZhbHVlLlxuICAgICAqL1xuICAgIHByb3RlY3RlZCBsaXN0U2xvdEVudHJpZXMobGlzdEl0ZW1BdHRyaWJ1dGVzOiB7XG4gICAgICBsb2NhbE5hbWVWaXN1YWxPbmx5Pzogc3RyaW5nW107XG4gICAgfSk6IFNiYk5hbWVkU2xvdFByb3BlcnRpZXNbXSB7XG4gICAgICBjb25zdCBsaXN0Q2hpbGRyZW4gPSB0aGlzLmxpc3RDaGlsZHJlbi5sZW5ndGhcbiAgICAgICAgPyB0aGlzLmxpc3RDaGlsZHJlblxuICAgICAgICA6IEFycmF5LmZyb20oeyBsZW5ndGg6ICsodGhpcy5nZXRBdHRyaWJ1dGUoU1NSX0NISUxEX0NPVU5UX0FUVFJJQlVURSkgPz8gMCkgfSk7XG4gICAgICByZXR1cm4gbGlzdENoaWxkcmVuLm1hcCgoZSwgaSkgPT4ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIG5hbWU6IGAke1NMT1ROQU1FX1BSRUZJWH0tJHtpfWAsXG4gICAgICAgICAgYXJpYUhpZGRlbjpcbiAgICAgICAgICAgIGxpc3RJdGVtQXR0cmlidXRlcz8ubG9jYWxOYW1lVmlzdWFsT25seT8uaW5jbHVkZXMoKGUgYXMgSFRNTEVsZW1lbnQpLmxvY2FsTmFtZSkgPz9cbiAgICAgICAgICAgIGZhbHNlLFxuICAgICAgICB9O1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyBhIGhpZGRlbiBzbG90LCB3aGljaCBpcyBpbnRlbmRlZCBhcyB0aGUgY2hpbGRyZW4gY2hhbmdlIGRldGVjdGlvbi5cbiAgICAgKiBXaGVuIGFuIGVsZW1lbnQgd2l0aG91dCBhIHNsb3QgYXR0cmlidXRlIGlzIHNsb3R0ZWQgdG8gdGhlIGVsZW1lbnQsIGl0IHRyaWdnZXJzXG4gICAgICogdGhlIHNsb3RjaGFuZ2UgZXZlbnQsIHdoaWNoIGNhbiBiZSB1c2VkIHRvIGFzc2lnbiBpdCB0byB0aGUgYXBwcm9wcmlhdGUgbmFtZWQgc2xvdC5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgcmVuZGVySGlkZGVuU2xvdCgpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgICByZXR1cm4gaHRtbGA8c3BhbiBoaWRkZW4+PHNsb3Q+PC9zbG90Pjwvc3Bhbj5gO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBOYW1lZFNsb3RMaXN0RWxlbWVudCBhcyB1bmtub3duIGFzIEFic3RyYWN0Q29uc3RydWN0b3I8U2JiTmFtZWRTbG90TGlzdE1peGluVHlwZTxDPj4gJiBUO1xufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFZQSxJQUFNLDRCQUE0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
@@ -57,4 +57,4 @@ var SbbNegativeMixin = (superClass) => {
57
57
  //#endregion
58
58
  export { SbbNegativeMixin };
59
59
 
60
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmVnYXRpdmUtbWl4aW4uanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NvcmUvbWl4aW5zL25lZ2F0aXZlLW1peGluLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgTGl0RWxlbWVudCB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBwcm9wZXJ0eSB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcblxuaW1wb3J0IHsgZm9yY2VUeXBlIH0gZnJvbSAnLi4vZGVjb3JhdG9ycy9mb3JjZS10eXBlLnRzJztcblxuaW1wb3J0IHR5cGUgeyBBYnN0cmFjdENvbnN0cnVjdG9yIH0gZnJvbSAnLi9jb25zdHJ1Y3Rvci50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGNsYXNzIFNiYk5lZ2F0aXZlTWl4aW5UeXBlIHtcbiAgcHVibGljIGFjY2Vzc29yIG5lZ2F0aXZlOiBib29sZWFuO1xufVxuXG4vKipcbiAqIEVuaGFuY2UgeW91ciBjb21wb25lbnQgd2l0aCBhIG5lZ2F0aXZlIHByb3BlcnR5LlxuICovXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG5leHBvcnQgY29uc3QgU2JiTmVnYXRpdmVNaXhpbiA9IDxUIGV4dGVuZHMgQWJzdHJhY3RDb25zdHJ1Y3RvcjxMaXRFbGVtZW50Pj4oXG4gIHN1cGVyQ2xhc3M6IFQsXG4pOiBBYnN0cmFjdENvbnN0cnVjdG9yPFNiYk5lZ2F0aXZlTWl4aW5UeXBlPiAmIFQgPT4ge1xuICBhYnN0cmFjdCBjbGFzcyBTYmJOZWdhdGl2ZUVsZW1lbnQgZXh0ZW5kcyBzdXBlckNsYXNzIGltcGxlbWVudHMgU2JiTmVnYXRpdmVNaXhpblR5cGUge1xuICAgIC8qKiBOZWdhdGl2ZSBjb2xvcmluZyB2YXJpYW50IGZsYWcuICovXG4gICAgQGZvcmNlVHlwZSgpXG4gICAgQHByb3BlcnR5KHsgcmVmbGVjdDogdHJ1ZSwgdHlwZTogQm9vbGVhbiB9KVxuICAgIHB1YmxpYyBhY2Nlc3NvciBuZWdhdGl2ZTogYm9vbGVhbiA9IGZhbHNlO1xuICB9XG5cbiAgcmV0dXJuIFNiYk5lZ2F0aXZlRWxlbWVudCBhcyBBYnN0cmFjdENvbnN0cnVjdG9yPFNiYk5lZ2F0aXZlTWl4aW5UeXBlPiAmIFQ7XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBZUEsSUFBYSxvQkFDWCxlQUNpRDtBQVFqRCxlQVBpQztvQkFBUzs7OztlQUEzQiwyQkFBMkIsWUFBVTs7OzRCQUVqRCxXQUFXLEVBQ1gsU0FBUztLQUFFLFNBQVM7S0FBTSxNQUFNO0tBQVMsQ0FBQyxDQUFBO0FBQzNDLGlCQUFBLE1BQUEsTUFBQSxzQkFBQTtLQUFBLE1BQUE7S0FBQSxNQUFBO0tBQUEsUUFBQTtLQUFBLFNBQUE7S0FBQSxRQUFBO01BQUEsTUFBQSxRQUFBLGNBQUE7TUFBQSxNQUFBLFFBQUEsSUFBZ0I7TUFBUSxNQUFBLEtBQUEsVUFBQTtBQUFBLFdBQVIsV0FBUTs7TUFBQTtLQUFBLFVBQUE7S0FBQSxFQUFBLHdCQUFBLDRCQUFBOzs7Ozs7OztHQUF4Qiw2QkFBQSxrQkFBQSxNQUFBLHdCQUFvQyxNQUFLOztHQUF6QyxJQUFnQixXQUFRO0FBQUEsV0FBQSxNQUFBOztHQUF4QixJQUFnQixTQUFRLE9BQUE7QUFBQSxVQUFBLDRCQUFBOzs7Ozs7O0tBR25CIn0=
60
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmVnYXRpdmUtbWl4aW4uanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NvcmUvbWl4aW5zL25lZ2F0aXZlLW1peGluLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgTGl0RWxlbWVudCB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBwcm9wZXJ0eSB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcblxuaW1wb3J0IHsgZm9yY2VUeXBlIH0gZnJvbSAnLi4vZGVjb3JhdG9ycy9mb3JjZS10eXBlLnRzJztcblxuaW1wb3J0IHR5cGUgeyBBYnN0cmFjdENvbnN0cnVjdG9yIH0gZnJvbSAnLi9jb25zdHJ1Y3Rvci50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGNsYXNzIFNiYk5lZ2F0aXZlTWl4aW5UeXBlIHtcbiAgcHVibGljIGFjY2Vzc29yIG5lZ2F0aXZlOiBib29sZWFuO1xufVxuXG4vKipcbiAqIEVuaGFuY2UgeW91ciBjb21wb25lbnQgd2l0aCBhIG5lZ2F0aXZlIHByb3BlcnR5LlxuICovXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG5leHBvcnQgY29uc3QgU2JiTmVnYXRpdmVNaXhpbiA9IDxUIGV4dGVuZHMgQWJzdHJhY3RDb25zdHJ1Y3RvcjxMaXRFbGVtZW50Pj4oXG4gIHN1cGVyQ2xhc3M6IFQsXG4pOiBBYnN0cmFjdENvbnN0cnVjdG9yPFNiYk5lZ2F0aXZlTWl4aW5UeXBlPiAmIFQgPT4ge1xuICBhYnN0cmFjdCBjbGFzcyBTYmJOZWdhdGl2ZUVsZW1lbnQgZXh0ZW5kcyBzdXBlckNsYXNzIGltcGxlbWVudHMgU2JiTmVnYXRpdmVNaXhpblR5cGUge1xuICAgIC8qKiBOZWdhdGl2ZSBjb2xvcmluZyB2YXJpYW50IGZsYWcuICovXG4gICAgQGZvcmNlVHlwZSgpXG4gICAgQHByb3BlcnR5KHsgcmVmbGVjdDogdHJ1ZSwgdHlwZTogQm9vbGVhbiB9KVxuICAgIHB1YmxpYyBhY2Nlc3NvciBuZWdhdGl2ZTogYm9vbGVhbiA9IGZhbHNlO1xuICB9XG5cbiAgcmV0dXJuIFNiYk5lZ2F0aXZlRWxlbWVudCBhcyBBYnN0cmFjdENvbnN0cnVjdG9yPFNiYk5lZ2F0aXZlTWl4aW5UeXBlPiAmIFQ7XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBZUEsSUFBYSxvQkFDWCxlQUNpRDtDQVFqRCxjQVBpQztvQkFBUzs7OztlQUEzQiwyQkFBMkIsWUFBVTs7OzRCQUVqRCxVQUFTLEdBQ1QsU0FBUztLQUFFLFNBQVM7S0FBTSxNQUFNO0lBQU8sQ0FBRSxDQUFDO0lBQzNDLGFBQUEsTUFBQSxNQUFBLHNCQUFBO0tBQUEsTUFBQTtLQUFBLE1BQUE7S0FBQSxRQUFBO0tBQUEsU0FBQTtLQUFBLFFBQUE7TUFBQSxNQUFBLFFBQUEsY0FBQTtNQUFBLE1BQUEsUUFBQSxJQUFnQjtNQUFRLE1BQUEsS0FBQSxVQUFBO09BQUEsSUFBUixXQUFRO01BQUE7S0FBQTtLQUFBLFVBQUE7SUFBQSxHQUFBLHdCQUFBLDJCQUFBOzs7Ozs7OztHQUF4Qiw2QkFBQSxrQkFBQSxNQUFBLHdCQUFvQyxLQUFLOztHQUF6QyxJQUFnQixXQUFRO0lBQUEsT0FBQSxLQUFBO0dBQUE7R0FBeEIsSUFBZ0IsU0FBUSxPQUFBO0lBQUEsS0FBQSw2QkFBQTtHQUFBOzs7Ozs7SUFHbkI7QUFDVCJ9
@@ -1,8 +1,8 @@
1
1
  import { LitElement } from 'lit';
2
- import { SbbCheckboxSize } from '../../checkbox/common/checkbox-common.ts';
3
2
  import { SbbCheckboxGroupElement } from '../../checkbox-group.pure.ts';
4
- import { SbbRadioButtonSize } from '../../radio-button/common/radio-button-common.ts';
3
+ import { SbbCheckboxElement } from '../../checkbox.pure.ts';
5
4
  import { SbbRadioButtonGroupElement } from '../../radio-button-group.pure.ts';
5
+ import { SbbRadioButtonElement } from '../../radio-button.pure.ts';
6
6
  import { AbstractConstructor } from './constructor.ts';
7
7
  interface SbbPanelWithGroup {
8
8
  group: SbbCheckboxGroupElement | SbbRadioButtonGroupElement | null;
@@ -11,7 +11,7 @@ export declare class SbbPanelMixinType {
11
11
  accessor color: 'white' | 'milk';
12
12
  accessor borderless: boolean;
13
13
  accessor expansionState: string;
14
- accessor size: SbbCheckboxSize | SbbRadioButtonSize;
14
+ accessor size: SbbCheckboxElement['size'] | SbbRadioButtonElement['size'];
15
15
  }
16
16
  /**
17
17
  * Mixin for common panel behaviors
@@ -1 +1 @@
1
- {"version":3,"file":"panel-mixin.d.ts","sourceRoot":"","sources":["../../../../../src/elements/core/mixins/panel-mixin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,KAAK,UAAU,EAAa,MAAM,KAAK,CAAC;AAGtE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0CAA0C,CAAC;AAChF,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAC5E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kDAAkD,CAAC;AAC3F,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,kCAAkC,CAAC;AAKnF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAG5D,UAAU,iBAAiB;IACzB,KAAK,EAAE,uBAAuB,GAAG,0BAA0B,GAAG,IAAI,CAAC;CACpE;AAED,MAAM,CAAC,OAAO,OAAO,iBAAiB;IACpC,SAAgB,KAAK,EAAE,OAAO,GAAG,MAAM,CAAC;IACxC,SAAgB,UAAU,EAAE,OAAO,CAAC;IACpC,SAAgB,cAAc,EAAE,MAAM,CAAC;IACvC,SAAgB,IAAI,EAAE,eAAe,GAAG,kBAAkB,CAAC;CAC5D;AAED;;GAEG;AAEH,eAAO,MAAM,aAAa,GAAI,CAAC,SAAS,mBAAmB,CAAC,UAAU,GAAG,iBAAiB,CAAC,EACzF,YAAY,CAAC,KACZ,mBAAmB,CAAC,iBAAiB,CAAC,GAAG,CAmC3C,CAAC"}
1
+ {"version":3,"file":"panel-mixin.d.ts","sourceRoot":"","sources":["../../../../../src/elements/core/mixins/panel-mixin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,KAAK,UAAU,EAAa,MAAM,KAAK,CAAC;AAGtE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAC5E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,kCAAkC,CAAC;AACnF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAIxE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAG5D,UAAU,iBAAiB;IACzB,KAAK,EAAE,uBAAuB,GAAG,0BAA0B,GAAG,IAAI,CAAC;CACpE;AAED,MAAM,CAAC,OAAO,OAAO,iBAAiB;IACpC,SAAgB,KAAK,EAAE,OAAO,GAAG,MAAM,CAAC;IACxC,SAAgB,UAAU,EAAE,OAAO,CAAC;IACpC,SAAgB,cAAc,EAAE,MAAM,CAAC;IACvC,SAAgB,IAAI,EAAE,kBAAkB,CAAC,MAAM,CAAC,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC;CAClF;AAED;;GAEG;AAEH,eAAO,MAAM,aAAa,GAAI,CAAC,SAAS,mBAAmB,CAAC,UAAU,GAAG,iBAAiB,CAAC,EACzF,YAAY,CAAC,KACZ,mBAAmB,CAAC,iBAAiB,CAAC,GAAG,CAkC3C,CAAC"}
@@ -1,2 +1,2 @@
1
- import { t as SbbPanelMixin } from "../../panel-mixin-CFz9-K_8.js";
1
+ import { t as SbbPanelMixin } from "../../panel-mixin-Da_cHQn-.js";
2
2
  export { SbbPanelMixin };