@sbb-esta/lyne-elements 4.0.0-next.2 → 4.0.0-next.4

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 (1585) hide show
  1. package/accordion/accordion.component.d.ts +2 -2
  2. package/accordion/accordion.component.d.ts.map +1 -1
  3. package/accordion/accordion.component.js +29 -27
  4. package/accordion.d.ts +1 -1
  5. package/action-group/action-group.component.d.ts +3 -3
  6. package/action-group/action-group.component.js +1 -1
  7. package/action-group.d.ts +1 -1
  8. package/alert/alert/alert.component.d.ts +2 -2
  9. package/alert/alert/alert.component.js +7 -7
  10. package/alert/alert-group/alert-group.component.d.ts +2 -2
  11. package/alert/alert-group/alert-group.component.d.ts.map +1 -1
  12. package/alert/alert-group/alert-group.component.js +23 -23
  13. package/alert/alert-group.d.ts +1 -1
  14. package/alert/alert.d.ts +1 -1
  15. package/alert.d.ts +2 -2
  16. package/autocomplete/autocomplete-base-element.d.ts +4 -3
  17. package/autocomplete/autocomplete-base-element.d.ts.map +1 -1
  18. package/autocomplete/autocomplete-base-element.js +58 -56
  19. package/autocomplete/autocomplete.component.d.ts +2 -2
  20. package/autocomplete/autocomplete.component.d.ts.map +1 -1
  21. package/autocomplete/autocomplete.component.js +14 -14
  22. package/autocomplete.d.ts +2 -2
  23. package/breadcrumb/breadcrumb/breadcrumb.component.d.ts +2 -2
  24. package/breadcrumb/breadcrumb/breadcrumb.component.js +5 -5
  25. package/breadcrumb/breadcrumb-group/breadcrumb-group.component.d.ts +4 -5
  26. package/breadcrumb/breadcrumb-group/breadcrumb-group.component.d.ts.map +1 -1
  27. package/breadcrumb/breadcrumb-group/breadcrumb-group.component.js +53 -47
  28. package/breadcrumb/breadcrumb-group.d.ts +1 -1
  29. package/breadcrumb/breadcrumb.d.ts +1 -1
  30. package/breadcrumb.d.ts +2 -2
  31. package/button/accent-button/accent-button.component.d.ts +2 -2
  32. package/button/accent-button-link/accent-button-link.component.d.ts +2 -2
  33. package/button/accent-button-link.d.ts +1 -1
  34. package/button/accent-button-static/accent-button-static.component.d.ts +2 -2
  35. package/button/accent-button-static.d.ts +1 -1
  36. package/button/accent-button.d.ts +1 -1
  37. package/button/button/button.component.d.ts +2 -2
  38. package/button/button-link/button-link.component.d.ts +2 -2
  39. package/button/button-link.d.ts +1 -1
  40. package/button/button-static/button-static.component.d.ts +2 -2
  41. package/button/button-static.d.ts +1 -1
  42. package/button/button.d.ts +1 -1
  43. package/button/common/button-common.d.ts +3 -3
  44. package/button/common/button-common.d.ts.map +1 -1
  45. package/button/common/button-common.js +40 -42
  46. package/button/common.d.ts +1 -1
  47. package/button/common.js +1 -1
  48. package/button/mini-button/mini-button.component.d.ts +2 -2
  49. package/button/mini-button-group/mini-button-group.component.d.ts +2 -2
  50. package/button/mini-button-group.d.ts +1 -1
  51. package/button/mini-button.d.ts +1 -1
  52. package/button/secondary-button/secondary-button.component.d.ts +2 -2
  53. package/button/secondary-button-link/secondary-button-link.component.d.ts +2 -2
  54. package/button/secondary-button-link.d.ts +1 -1
  55. package/button/secondary-button-static/secondary-button-static.component.d.ts +2 -2
  56. package/button/secondary-button-static.d.ts +1 -1
  57. package/button/secondary-button.d.ts +1 -1
  58. package/button/transparent-button/transparent-button.component.d.ts +2 -2
  59. package/button/transparent-button-link/transparent-button-link.component.d.ts +2 -2
  60. package/button/transparent-button-link.d.ts +1 -1
  61. package/button/transparent-button-static/transparent-button-static.component.d.ts +2 -2
  62. package/button/transparent-button-static.d.ts +1 -1
  63. package/button/transparent-button.d.ts +1 -1
  64. package/button.d.ts +15 -15
  65. package/button.js +1 -1
  66. package/calendar/calendar.component.d.ts +5 -5
  67. package/calendar/calendar.component.d.ts.map +1 -1
  68. package/calendar/calendar.component.js +183 -183
  69. package/calendar.d.ts +1 -1
  70. package/card/card/card.component.d.ts +3 -6
  71. package/card/card/card.component.d.ts.map +1 -1
  72. package/card/card/card.component.js +32 -47
  73. package/card/card-badge/card-badge.component.d.ts +1 -3
  74. package/card/card-badge/card-badge.component.d.ts.map +1 -1
  75. package/card/card-badge/card-badge.component.js +29 -36
  76. package/card/card-badge.d.ts +1 -1
  77. package/card/card-button/card-button.component.d.ts +2 -2
  78. package/card/card-button.d.ts +1 -1
  79. package/card/card-link/card-link.component.d.ts +2 -2
  80. package/card/card-link.d.ts +1 -1
  81. package/card/card.d.ts +1 -1
  82. package/card/common/card-action-common.d.ts +2 -2
  83. package/card/common/card-action-common.d.ts.map +1 -1
  84. package/card/common/card-action-common.js +36 -24
  85. package/card/common.d.ts +1 -1
  86. package/card.d.ts +5 -5
  87. package/carousel/carousel/carousel.component.d.ts +1 -1
  88. package/carousel/carousel-item/carousel-item.component.d.ts +1 -1
  89. package/carousel/carousel-item.d.ts +1 -1
  90. package/carousel/carousel-list/carousel-list.component.d.ts +1 -1
  91. package/carousel/carousel-list.d.ts +1 -1
  92. package/carousel/carousel.d.ts +1 -1
  93. package/carousel.d.ts +3 -3
  94. package/checkbox/checkbox/checkbox.component.d.ts +4 -4
  95. package/checkbox/checkbox/checkbox.component.js +34 -34
  96. package/checkbox/checkbox-group/checkbox-group.component.d.ts +7 -8
  97. package/checkbox/checkbox-group/checkbox-group.component.d.ts.map +1 -1
  98. package/checkbox/checkbox-group/checkbox-group.component.js +58 -59
  99. package/checkbox/checkbox-group.d.ts +1 -1
  100. package/checkbox/checkbox-panel/checkbox-panel.component.d.ts +2 -15
  101. package/checkbox/checkbox-panel/checkbox-panel.component.d.ts.map +1 -1
  102. package/checkbox/checkbox-panel/checkbox-panel.component.js +35 -55
  103. package/checkbox/checkbox-panel.d.ts +1 -1
  104. package/checkbox/checkbox.d.ts +1 -1
  105. package/checkbox/common/checkbox-common.d.ts +3 -3
  106. package/checkbox/common.d.ts +1 -1
  107. package/checkbox/common.js +1 -1
  108. package/checkbox-common-t04WeA36.js +5 -0
  109. package/checkbox.d.ts +4 -4
  110. package/checkbox.js +1 -1
  111. package/chip/chip/chip.component.d.ts +1 -1
  112. package/chip/chip/chip.component.js +7 -7
  113. package/chip/chip-group/chip-group.component.d.ts +3 -2
  114. package/chip/chip-group/chip-group.component.d.ts.map +1 -1
  115. package/chip/chip-group/chip-group.component.js +23 -23
  116. package/chip/chip-group.d.ts +1 -1
  117. package/chip/chip.d.ts +1 -1
  118. package/chip-label.d.ts +1 -1
  119. package/chip.d.ts +2 -2
  120. package/clock/clock.component.d.ts +4 -2
  121. package/clock/clock.component.d.ts.map +1 -1
  122. package/clock/clock.component.js +40 -39
  123. package/clock.d.ts +1 -1
  124. package/container/container/container.component.d.ts +1 -1
  125. package/container/container/container.component.d.ts.map +1 -1
  126. package/container/container/container.component.js +27 -24
  127. package/container/container.d.ts +1 -1
  128. package/container/sticky-bar/sticky-bar.component.d.ts +3 -1
  129. package/container/sticky-bar/sticky-bar.component.d.ts.map +1 -1
  130. package/container/sticky-bar/sticky-bar.component.js +41 -41
  131. package/container/sticky-bar.d.ts +1 -1
  132. package/container.d.ts +2 -2
  133. package/core/a11y/focus-visible-within-controller.d.ts +2 -1
  134. package/core/a11y/focus-visible-within-controller.d.ts.map +1 -1
  135. package/core/a11y/focus-visible-within-controller.js +8 -7
  136. package/core/a11y.d.ts +8 -8
  137. package/core/base-elements/action-base-element.d.ts +2 -1
  138. package/core/base-elements/action-base-element.d.ts.map +1 -1
  139. package/core/base-elements/action-base-element.js +37 -45
  140. package/core/base-elements/button-base-element.d.ts +4 -4
  141. package/core/base-elements/button-base-element.d.ts.map +1 -1
  142. package/core/base-elements/button-base-element.js +55 -56
  143. package/core/base-elements/link-base-element.d.ts +2 -2
  144. package/core/base-elements/link-base-element.d.ts.map +1 -1
  145. package/core/base-elements/link-base-element.js +62 -64
  146. package/core/base-elements/open-close-base-element.d.ts +4 -3
  147. package/core/base-elements/open-close-base-element.d.ts.map +1 -1
  148. package/core/base-elements/open-close-base-element.js +8 -8
  149. package/core/base-elements.d.ts +4 -4
  150. package/core/config/config.d.ts +1 -1
  151. package/core/config.d.ts +1 -1
  152. package/core/controllers/escapable-overlay-controller.d.ts +1 -1
  153. package/core/controllers/inert-controller.d.ts +1 -1
  154. package/core/controllers/media-matchers-controller.d.ts +5 -2
  155. package/core/controllers/media-matchers-controller.d.ts.map +1 -1
  156. package/core/controllers/media-matchers-controller.js +30 -26
  157. package/core/controllers/overlay-position-controller.d.ts +3 -2
  158. package/core/controllers/overlay-position-controller.d.ts.map +1 -1
  159. package/core/controllers/overlay-position-controller.js +35 -35
  160. package/core/controllers/property-watcher-controller.d.ts +16 -0
  161. package/core/controllers/property-watcher-controller.d.ts.map +1 -0
  162. package/core/controllers/property-watcher-controller.js +58 -0
  163. package/core/controllers.d.ts +8 -7
  164. package/core/controllers.d.ts.map +1 -1
  165. package/core/controllers.js +26 -21
  166. package/core/datetime/date-adapter.d.ts +1 -3
  167. package/core/datetime/date-adapter.d.ts.map +1 -1
  168. package/core/datetime/native-date-adapter.d.ts +1 -1
  169. package/core/datetime.d.ts +2 -2
  170. package/core/decorators/force-type.d.ts +1 -1
  171. package/core/decorators/get-override.d.ts +1 -1
  172. package/core/decorators/handle-distinct-change.d.ts +1 -1
  173. package/core/decorators/host-attributes.d.ts +1 -1
  174. package/core/decorators/id-reference.d.ts +1 -1
  175. package/core/decorators/plain-date.d.ts +2 -2
  176. package/core/decorators.d.ts +7 -7
  177. package/core/dom/animation.d.ts.map +1 -1
  178. package/core/dom/animation.js +2 -2
  179. package/core/dom/set-or-remove-attribute.d.ts +0 -14
  180. package/core/dom/set-or-remove-attribute.d.ts.map +1 -1
  181. package/core/dom/set-or-remove-attribute.js +3 -11
  182. package/core/dom.d.ts +7 -9
  183. package/core/dom.d.ts.map +1 -1
  184. package/core/dom.js +25 -33
  185. package/core/eventing.d.ts +6 -6
  186. package/core/i18n/i18n.d.ts +1 -3
  187. package/core/i18n/i18n.d.ts.map +1 -1
  188. package/core/i18n/i18n.js +60 -66
  189. package/core/i18n.d.ts +1 -1
  190. package/core/i18n.js +53 -54
  191. package/core/interfaces/types.d.ts +0 -14
  192. package/core/interfaces/types.d.ts.map +1 -1
  193. package/core/interfaces.d.ts +3 -3
  194. package/core/mixins/animation-complete-mixin.d.ts +1 -1
  195. package/core/mixins/disabled-mixin.d.ts +2 -2
  196. package/core/mixins/element-internals-mixin.d.ts +15 -2
  197. package/core/mixins/element-internals-mixin.d.ts.map +1 -1
  198. package/core/mixins/element-internals-mixin.js +102 -75
  199. package/core/mixins/form-associated-checkbox-mixin.d.ts +3 -3
  200. package/core/mixins/form-associated-input-mixin.d.ts +4 -4
  201. package/core/mixins/form-associated-mixin.d.ts +2 -2
  202. package/core/mixins/form-associated-mixin.js +1 -1
  203. package/core/mixins/form-associated-radio-button-mixin.d.ts +3 -3
  204. package/core/mixins/form-associated-radio-button-mixin.js +16 -16
  205. package/core/mixins/hydration-mixin.d.ts +1 -1
  206. package/core/mixins/named-slot-list-mixin.d.ts +2 -2
  207. package/core/mixins/negative-mixin.d.ts +1 -1
  208. package/core/mixins/panel-mixin.d.ts +11 -3
  209. package/core/mixins/panel-mixin.d.ts.map +1 -1
  210. package/core/mixins/panel-mixin.js +51 -37
  211. package/core/mixins/readonly-mixin.d.ts +1 -1
  212. package/core/mixins/required-mixin.d.ts +2 -2
  213. package/core/mixins/selection-panel-mixin.d.ts +9 -15
  214. package/core/mixins/selection-panel-mixin.d.ts.map +1 -1
  215. package/core/mixins/selection-panel-mixin.js +35 -83
  216. package/core/mixins/update-scheduler-mixin.d.ts +1 -1
  217. package/core/mixins.d.ts +16 -16
  218. package/core/mixins.js +23 -22
  219. package/core/overlay/overlay-option-panel.d.ts +2 -1
  220. package/core/overlay/overlay-option-panel.d.ts.map +1 -1
  221. package/core/overlay/overlay-option-panel.js +9 -6
  222. package/core/overlay.d.ts +5 -5
  223. package/core/styles/core/functions.scss +20 -0
  224. package/core/styles/core.scss +68 -12
  225. package/core/styles/lean-theme.scss +3 -0
  226. package/core/styles/mixins/card.scss +71 -55
  227. package/core/styles/mixins/lists.scss +8 -0
  228. package/core/styles/mixins/overlay.scss +0 -1
  229. package/core/testing/wait-for-image-ready.d.ts +1 -1
  230. package/core/testing/wait-for-render.d.ts +2 -2
  231. package/core/testing.d.ts +5 -5
  232. package/core.css +292 -11
  233. package/custom-elements.json +21815 -24517
  234. package/date-input/date-input.component.d.ts +2 -7
  235. package/date-input/date-input.component.d.ts.map +1 -1
  236. package/date-input/date-input.component.js +0 -7
  237. package/date-input.d.ts +1 -1
  238. package/datepicker/common/datepicker-button.d.ts +5 -5
  239. package/datepicker/common.d.ts +1 -1
  240. package/datepicker/datepicker/datepicker.component.d.ts +4 -4
  241. package/datepicker/datepicker-next-day/datepicker-next-day.component.d.ts +1 -1
  242. package/datepicker/datepicker-next-day.d.ts +1 -1
  243. package/datepicker/datepicker-previous-day/datepicker-previous-day.component.d.ts +1 -1
  244. package/datepicker/datepicker-previous-day.d.ts +1 -1
  245. package/datepicker/datepicker-toggle/datepicker-toggle.component.d.ts +2 -2
  246. package/datepicker/datepicker-toggle.d.ts +1 -1
  247. package/datepicker/datepicker.d.ts +1 -1
  248. package/datepicker.d.ts +5 -5
  249. package/development/accordion/accordion.component.d.ts +2 -2
  250. package/development/accordion/accordion.component.d.ts.map +1 -1
  251. package/development/accordion/accordion.component.js +5 -4
  252. package/development/accordion.d.ts +1 -1
  253. package/development/action-group/action-group.component.d.ts +3 -3
  254. package/development/action-group/action-group.component.js +2 -2
  255. package/development/action-group.d.ts +1 -1
  256. package/development/alert/alert/alert.component.d.ts +2 -2
  257. package/development/alert/alert/alert.component.js +6 -7
  258. package/development/alert/alert-group/alert-group.component.d.ts +2 -2
  259. package/development/alert/alert-group/alert-group.component.d.ts.map +1 -1
  260. package/development/alert/alert-group/alert-group.component.js +5 -5
  261. package/development/alert/alert-group.d.ts +1 -1
  262. package/development/alert/alert.d.ts +1 -1
  263. package/development/alert.d.ts +2 -2
  264. package/development/autocomplete/autocomplete-base-element.d.ts +4 -3
  265. package/development/autocomplete/autocomplete-base-element.d.ts.map +1 -1
  266. package/development/autocomplete/autocomplete-base-element.js +28 -33
  267. package/development/autocomplete/autocomplete.component.d.ts +2 -2
  268. package/development/autocomplete/autocomplete.component.d.ts.map +1 -1
  269. package/development/autocomplete/autocomplete.component.js +2 -3
  270. package/development/autocomplete.d.ts +2 -2
  271. package/development/breadcrumb/breadcrumb/breadcrumb.component.d.ts +2 -2
  272. package/development/breadcrumb/breadcrumb/breadcrumb.component.js +2 -2
  273. package/development/breadcrumb/breadcrumb-group/breadcrumb-group.component.d.ts +4 -5
  274. package/development/breadcrumb/breadcrumb-group/breadcrumb-group.component.d.ts.map +1 -1
  275. package/development/breadcrumb/breadcrumb-group/breadcrumb-group.component.js +33 -24
  276. package/development/breadcrumb/breadcrumb-group.d.ts +1 -1
  277. package/development/breadcrumb/breadcrumb.d.ts +1 -1
  278. package/development/breadcrumb.d.ts +2 -2
  279. package/development/button/accent-button/accent-button.component.d.ts +2 -2
  280. package/development/button/accent-button/accent-button.component.js +1 -1
  281. package/development/button/accent-button-link/accent-button-link.component.d.ts +2 -2
  282. package/development/button/accent-button-link/accent-button-link.component.js +1 -1
  283. package/development/button/accent-button-link.d.ts +1 -1
  284. package/development/button/accent-button-static/accent-button-static.component.d.ts +2 -2
  285. package/development/button/accent-button-static/accent-button-static.component.js +1 -1
  286. package/development/button/accent-button-static.d.ts +1 -1
  287. package/development/button/accent-button.d.ts +1 -1
  288. package/development/button/button/button.component.d.ts +2 -2
  289. package/development/button/button/button.component.js +1 -1
  290. package/development/button/button-link/button-link.component.d.ts +2 -2
  291. package/development/button/button-link/button-link.component.js +1 -1
  292. package/development/button/button-link.d.ts +1 -1
  293. package/development/button/button-static/button-static.component.d.ts +2 -2
  294. package/development/button/button-static/button-static.component.js +1 -1
  295. package/development/button/button-static.d.ts +1 -1
  296. package/development/button/button.d.ts +1 -1
  297. package/development/button/common/button-common.d.ts +3 -3
  298. package/development/button/common/button-common.d.ts.map +1 -1
  299. package/development/button/common/button-common.js +8 -17
  300. package/development/button/common.d.ts +1 -1
  301. package/development/button/common.js +1 -1
  302. package/development/button/mini-button/mini-button.component.d.ts +2 -2
  303. package/development/button/mini-button/mini-button.component.js +1 -1
  304. package/development/button/mini-button-group/mini-button-group.component.d.ts +2 -2
  305. package/development/button/mini-button-group/mini-button-group.component.js +1 -1
  306. package/development/button/mini-button-group.d.ts +1 -1
  307. package/development/button/mini-button.d.ts +1 -1
  308. package/development/button/secondary-button/secondary-button.component.d.ts +2 -2
  309. package/development/button/secondary-button/secondary-button.component.js +1 -1
  310. package/development/button/secondary-button-link/secondary-button-link.component.d.ts +2 -2
  311. package/development/button/secondary-button-link/secondary-button-link.component.js +1 -1
  312. package/development/button/secondary-button-link.d.ts +1 -1
  313. package/development/button/secondary-button-static/secondary-button-static.component.d.ts +2 -2
  314. package/development/button/secondary-button-static/secondary-button-static.component.js +1 -1
  315. package/development/button/secondary-button-static.d.ts +1 -1
  316. package/development/button/secondary-button.d.ts +1 -1
  317. package/development/button/transparent-button/transparent-button.component.d.ts +2 -2
  318. package/development/button/transparent-button/transparent-button.component.js +1 -1
  319. package/development/button/transparent-button-link/transparent-button-link.component.d.ts +2 -2
  320. package/development/button/transparent-button-link/transparent-button-link.component.js +1 -1
  321. package/development/button/transparent-button-link.d.ts +1 -1
  322. package/development/button/transparent-button-static/transparent-button-static.component.d.ts +2 -2
  323. package/development/button/transparent-button-static/transparent-button-static.component.js +1 -1
  324. package/development/button/transparent-button-static.d.ts +1 -1
  325. package/development/button/transparent-button.d.ts +1 -1
  326. package/development/button.d.ts +15 -15
  327. package/development/button.js +1 -1
  328. package/development/calendar/calendar.component.d.ts +5 -5
  329. package/development/calendar/calendar.component.d.ts.map +1 -1
  330. package/development/calendar/calendar.component.js +11 -11
  331. package/development/calendar.d.ts +1 -1
  332. package/development/card/card/card.component.d.ts +3 -6
  333. package/development/card/card/card.component.d.ts.map +1 -1
  334. package/development/card/card/card.component.js +91 -146
  335. package/development/card/card-badge/card-badge.component.d.ts +1 -3
  336. package/development/card/card-badge/card-badge.component.d.ts.map +1 -1
  337. package/development/card/card-badge/card-badge.component.js +34 -71
  338. package/development/card/card-badge.d.ts +1 -1
  339. package/development/card/card-button/card-button.component.d.ts +2 -2
  340. package/development/card/card-button/card-button.component.js +1 -1
  341. package/development/card/card-button.d.ts +1 -1
  342. package/development/card/card-link/card-link.component.d.ts +2 -2
  343. package/development/card/card-link/card-link.component.js +1 -1
  344. package/development/card/card-link.d.ts +1 -1
  345. package/development/card/card.d.ts +1 -1
  346. package/development/card/common/card-action-common.d.ts +2 -2
  347. package/development/card/common/card-action-common.d.ts.map +1 -1
  348. package/development/card/common/card-action-common.js +21 -10
  349. package/development/card/common.d.ts +1 -1
  350. package/development/card.d.ts +5 -5
  351. package/development/carousel/carousel/carousel.component.d.ts +1 -1
  352. package/development/carousel/carousel/carousel.component.js +1 -1
  353. package/development/carousel/carousel-item/carousel-item.component.d.ts +1 -1
  354. package/development/carousel/carousel-item/carousel-item.component.js +1 -1
  355. package/development/carousel/carousel-item.d.ts +1 -1
  356. package/development/carousel/carousel-list/carousel-list.component.d.ts +1 -1
  357. package/development/carousel/carousel-list/carousel-list.component.js +1 -1
  358. package/development/carousel/carousel-list.d.ts +1 -1
  359. package/development/carousel/carousel.d.ts +1 -1
  360. package/development/carousel.d.ts +3 -3
  361. package/development/checkbox/checkbox/checkbox.component.d.ts +4 -4
  362. package/development/checkbox/checkbox/checkbox.component.js +22 -27
  363. package/development/checkbox/checkbox-group/checkbox-group.component.d.ts +7 -8
  364. package/development/checkbox/checkbox-group/checkbox-group.component.d.ts.map +1 -1
  365. package/development/checkbox/checkbox-group/checkbox-group.component.js +25 -47
  366. package/development/checkbox/checkbox-group.d.ts +1 -1
  367. package/development/checkbox/checkbox-panel/checkbox-panel.component.d.ts +2 -15
  368. package/development/checkbox/checkbox-panel/checkbox-panel.component.d.ts.map +1 -1
  369. package/development/checkbox/checkbox-panel/checkbox-panel.component.js +6 -41
  370. package/development/checkbox/checkbox-panel.d.ts +1 -1
  371. package/development/checkbox/checkbox.d.ts +1 -1
  372. package/development/checkbox/common/checkbox-common.d.ts +3 -3
  373. package/development/checkbox/common/checkbox-common.js +1 -1
  374. package/development/checkbox/common.d.ts +1 -1
  375. package/development/checkbox/common.js +1 -1
  376. package/development/{checkbox-common-BKjxH3Rp.js → checkbox-common-D2-QcV8n.js} +15 -27
  377. package/development/checkbox.d.ts +4 -4
  378. package/development/checkbox.js +1 -1
  379. package/development/chip/chip/chip.component.d.ts +1 -1
  380. package/development/chip/chip/chip.component.js +1 -3
  381. package/development/chip/chip-group/chip-group.component.d.ts +3 -2
  382. package/development/chip/chip-group/chip-group.component.d.ts.map +1 -1
  383. package/development/chip/chip-group/chip-group.component.js +11 -5
  384. package/development/chip/chip-group.d.ts +1 -1
  385. package/development/chip/chip.d.ts +1 -1
  386. package/development/chip-label/chip-label.component.js +1 -1
  387. package/development/chip-label.d.ts +1 -1
  388. package/development/chip.d.ts +2 -2
  389. package/development/clock/clock.component.d.ts +4 -2
  390. package/development/clock/clock.component.d.ts.map +1 -1
  391. package/development/clock/clock.component.js +5 -4
  392. package/development/clock.d.ts +1 -1
  393. package/development/container/container/container.component.d.ts +1 -1
  394. package/development/container/container/container.component.d.ts.map +1 -1
  395. package/development/container/container/container.component.js +4 -3
  396. package/development/container/container.d.ts +1 -1
  397. package/development/container/sticky-bar/sticky-bar.component.d.ts +3 -1
  398. package/development/container/sticky-bar/sticky-bar.component.d.ts.map +1 -1
  399. package/development/container/sticky-bar/sticky-bar.component.js +40 -34
  400. package/development/container/sticky-bar.d.ts +1 -1
  401. package/development/container.d.ts +2 -2
  402. package/development/core/a11y/focus-trap-controller.js +1 -1
  403. package/development/core/a11y/focus-visible-within-controller.d.ts +2 -1
  404. package/development/core/a11y/focus-visible-within-controller.d.ts.map +1 -1
  405. package/development/core/a11y/focus-visible-within-controller.js +4 -3
  406. package/development/core/a11y/input-modality-detector.js +1 -1
  407. package/development/core/a11y/interactivity-checker.js +1 -1
  408. package/development/core/a11y.d.ts +8 -8
  409. package/development/core/base-elements/action-base-element.d.ts +2 -1
  410. package/development/core/base-elements/action-base-element.d.ts.map +1 -1
  411. package/development/core/base-elements/action-base-element.js +41 -56
  412. package/development/core/base-elements/button-base-element.d.ts +4 -4
  413. package/development/core/base-elements/button-base-element.d.ts.map +1 -1
  414. package/development/core/base-elements/button-base-element.js +7 -7
  415. package/development/core/base-elements/link-base-element.d.ts +2 -2
  416. package/development/core/base-elements/link-base-element.d.ts.map +1 -1
  417. package/development/core/base-elements/link-base-element.js +6 -15
  418. package/development/core/base-elements/open-close-base-element.d.ts +4 -3
  419. package/development/core/base-elements/open-close-base-element.d.ts.map +1 -1
  420. package/development/core/base-elements/open-close-base-element.js +12 -6
  421. package/development/core/base-elements.d.ts +4 -4
  422. package/development/core/config/config.d.ts +1 -1
  423. package/development/core/config/config.js +1 -1
  424. package/development/core/config.d.ts +1 -1
  425. package/development/core/controllers/escapable-overlay-controller.d.ts +1 -1
  426. package/development/core/controllers/escapable-overlay-controller.js +1 -1
  427. package/development/core/controllers/inert-controller.d.ts +1 -1
  428. package/development/core/controllers/inert-controller.js +1 -1
  429. package/development/core/controllers/language-controller.js +1 -1
  430. package/development/core/controllers/media-matchers-controller.d.ts +5 -2
  431. package/development/core/controllers/media-matchers-controller.d.ts.map +1 -1
  432. package/development/core/controllers/media-matchers-controller.js +12 -5
  433. package/development/core/controllers/overlay-position-controller.d.ts +3 -2
  434. package/development/core/controllers/overlay-position-controller.d.ts.map +1 -1
  435. package/development/core/controllers/overlay-position-controller.js +3 -3
  436. package/development/core/controllers/property-watcher-controller.d.ts +16 -0
  437. package/development/core/controllers/property-watcher-controller.d.ts.map +1 -0
  438. package/development/core/controllers/property-watcher-controller.js +101 -0
  439. package/development/core/controllers.d.ts +8 -7
  440. package/development/core/controllers.d.ts.map +1 -1
  441. package/development/core/controllers.js +7 -2
  442. package/development/core/datetime/date-adapter.d.ts +1 -3
  443. package/development/core/datetime/date-adapter.d.ts.map +1 -1
  444. package/development/core/datetime/date-adapter.js +1 -1
  445. package/development/core/datetime/native-date-adapter.d.ts +1 -1
  446. package/development/core/datetime/native-date-adapter.js +1 -1
  447. package/development/core/datetime.d.ts +2 -2
  448. package/development/core/decorators/force-type.d.ts +1 -1
  449. package/development/core/decorators/force-type.js +1 -1
  450. package/development/core/decorators/get-override.d.ts +1 -1
  451. package/development/core/decorators/get-override.js +1 -1
  452. package/development/core/decorators/handle-distinct-change.d.ts +1 -1
  453. package/development/core/decorators/handle-distinct-change.js +1 -1
  454. package/development/core/decorators/host-attributes.d.ts +1 -1
  455. package/development/core/decorators/host-attributes.js +1 -1
  456. package/development/core/decorators/id-reference.d.ts +1 -1
  457. package/development/core/decorators/id-reference.js +1 -1
  458. package/development/core/decorators/plain-date.d.ts +2 -2
  459. package/development/core/decorators/plain-date.js +1 -1
  460. package/development/core/decorators.d.ts +7 -7
  461. package/development/core/dom/animation.d.ts.map +1 -1
  462. package/development/core/dom/animation.js +2 -2
  463. package/development/core/dom/set-or-remove-attribute.d.ts +0 -14
  464. package/development/core/dom/set-or-remove-attribute.d.ts.map +1 -1
  465. package/development/core/dom/set-or-remove-attribute.js +1 -9
  466. package/development/core/dom.d.ts +7 -9
  467. package/development/core/dom.d.ts.map +1 -1
  468. package/development/core/dom.js +2 -10
  469. package/development/core/eventing.d.ts +6 -6
  470. package/development/core/i18n/i18n.d.ts +1 -3
  471. package/development/core/i18n/i18n.d.ts.map +1 -1
  472. package/development/core/i18n/i18n.js +1 -8
  473. package/development/core/i18n.d.ts +1 -1
  474. package/development/core/i18n.js +1 -2
  475. package/development/core/interfaces/types.d.ts +0 -14
  476. package/development/core/interfaces/types.d.ts.map +1 -1
  477. package/development/core/interfaces.d.ts +3 -3
  478. package/development/core/mixins/animation-complete-mixin.d.ts +1 -1
  479. package/development/core/mixins/animation-complete-mixin.js +1 -1
  480. package/development/core/mixins/disabled-mixin.d.ts +2 -2
  481. package/development/core/mixins/disabled-mixin.js +1 -1
  482. package/development/core/mixins/element-internals-mixin.d.ts +15 -2
  483. package/development/core/mixins/element-internals-mixin.d.ts.map +1 -1
  484. package/development/core/mixins/element-internals-mixin.js +58 -10
  485. package/development/core/mixins/form-associated-checkbox-mixin.d.ts +3 -3
  486. package/development/core/mixins/form-associated-checkbox-mixin.js +1 -1
  487. package/development/core/mixins/form-associated-input-mixin.d.ts +4 -4
  488. package/development/core/mixins/form-associated-input-mixin.js +1 -1
  489. package/development/core/mixins/form-associated-mixin.d.ts +2 -2
  490. package/development/core/mixins/form-associated-mixin.js +2 -2
  491. package/development/core/mixins/form-associated-radio-button-mixin.d.ts +3 -3
  492. package/development/core/mixins/form-associated-radio-button-mixin.js +2 -2
  493. package/development/core/mixins/hydration-mixin.d.ts +1 -1
  494. package/development/core/mixins/hydration-mixin.js +1 -1
  495. package/development/core/mixins/named-slot-list-mixin.d.ts +2 -2
  496. package/development/core/mixins/named-slot-list-mixin.js +1 -1
  497. package/development/core/mixins/negative-mixin.d.ts +1 -1
  498. package/development/core/mixins/negative-mixin.js +1 -1
  499. package/development/core/mixins/panel-mixin.d.ts +11 -3
  500. package/development/core/mixins/panel-mixin.d.ts.map +1 -1
  501. package/development/core/mixins/panel-mixin.js +24 -6
  502. package/development/core/mixins/readonly-mixin.d.ts +1 -1
  503. package/development/core/mixins/readonly-mixin.js +1 -1
  504. package/development/core/mixins/required-mixin.d.ts +2 -2
  505. package/development/core/mixins/required-mixin.js +1 -1
  506. package/development/core/mixins/selection-panel-mixin.d.ts +9 -15
  507. package/development/core/mixins/selection-panel-mixin.d.ts.map +1 -1
  508. package/development/core/mixins/selection-panel-mixin.js +47 -111
  509. package/development/core/mixins/update-scheduler-mixin.d.ts +1 -1
  510. package/development/core/mixins/update-scheduler-mixin.js +1 -1
  511. package/development/core/mixins.d.ts +16 -16
  512. package/development/core/mixins.js +28 -25
  513. package/development/core/overlay/overlay-option-panel.d.ts +2 -1
  514. package/development/core/overlay/overlay-option-panel.d.ts.map +1 -1
  515. package/development/core/overlay/overlay-option-panel.js +10 -2
  516. package/development/core/overlay/overlay-outside-pointer-event-listener.js +1 -1
  517. package/development/core/overlay/position.js +1 -1
  518. package/development/core/overlay.d.ts +5 -5
  519. package/development/core/testing/wait-for-image-ready.d.ts +1 -1
  520. package/development/core/testing/wait-for-image-ready.js +1 -1
  521. package/development/core/testing/wait-for-render.d.ts +2 -2
  522. package/development/core/testing/wait-for-render.js +1 -1
  523. package/development/core/testing.d.ts +5 -5
  524. package/development/date-input/date-input.component.d.ts +2 -7
  525. package/development/date-input/date-input.component.d.ts.map +1 -1
  526. package/development/date-input/date-input.component.js +1 -8
  527. package/development/date-input.d.ts +1 -1
  528. package/development/datepicker/common/datepicker-button.d.ts +5 -5
  529. package/development/datepicker/common/datepicker-button.js +1 -1
  530. package/development/datepicker/common.d.ts +1 -1
  531. package/development/datepicker/datepicker/datepicker.component.d.ts +4 -4
  532. package/development/datepicker/datepicker/datepicker.component.js +1 -1
  533. package/development/datepicker/datepicker-next-day/datepicker-next-day.component.d.ts +1 -1
  534. package/development/datepicker/datepicker-next-day/datepicker-next-day.component.js +1 -1
  535. package/development/datepicker/datepicker-next-day.d.ts +1 -1
  536. package/development/datepicker/datepicker-previous-day/datepicker-previous-day.component.d.ts +1 -1
  537. package/development/datepicker/datepicker-previous-day/datepicker-previous-day.component.js +1 -1
  538. package/development/datepicker/datepicker-previous-day.d.ts +1 -1
  539. package/development/datepicker/datepicker-toggle/datepicker-toggle.component.d.ts +2 -2
  540. package/development/datepicker/datepicker-toggle/datepicker-toggle.component.js +1 -1
  541. package/development/datepicker/datepicker-toggle.d.ts +1 -1
  542. package/development/datepicker/datepicker.d.ts +1 -1
  543. package/development/datepicker.d.ts +5 -5
  544. package/development/dialog/dialog/dialog.component.d.ts +1 -1
  545. package/development/dialog/dialog/dialog.component.js +8 -8
  546. package/development/dialog/dialog-actions/dialog-actions.component.d.ts +1 -1
  547. package/development/dialog/dialog-actions/dialog-actions.component.js +1 -1
  548. package/development/dialog/dialog-actions.d.ts +1 -1
  549. package/development/dialog/dialog-close-button/dialog-close-button.component.d.ts +1 -1
  550. package/development/dialog/dialog-close-button/dialog-close-button.component.js +1 -1
  551. package/development/dialog/dialog-close-button.d.ts +1 -1
  552. package/development/dialog/dialog-content.d.ts +1 -1
  553. package/development/dialog/dialog-title/dialog-title.component.d.ts +2 -2
  554. package/development/dialog/dialog-title/dialog-title.component.js +1 -1
  555. package/development/dialog/dialog-title.d.ts +1 -1
  556. package/development/dialog/dialog.d.ts +1 -1
  557. package/development/dialog.d.ts +5 -5
  558. package/development/divider/divider.component.d.ts +2 -2
  559. package/development/divider/divider.component.js +1 -1
  560. package/development/divider.d.ts +1 -1
  561. package/development/expansion-panel/expansion-panel/expansion-panel.component.d.ts +5 -7
  562. package/development/expansion-panel/expansion-panel/expansion-panel.component.d.ts.map +1 -1
  563. package/development/expansion-panel/expansion-panel/expansion-panel.component.js +30 -33
  564. package/development/expansion-panel/expansion-panel-content/expansion-panel-content.component.d.ts +3 -1
  565. package/development/expansion-panel/expansion-panel-content/expansion-panel-content.component.d.ts.map +1 -1
  566. package/development/expansion-panel/expansion-panel-content/expansion-panel-content.component.js +17 -2
  567. package/development/expansion-panel/expansion-panel-content.d.ts +1 -1
  568. package/development/expansion-panel/expansion-panel-header/expansion-panel-header.component.d.ts +3 -2
  569. package/development/expansion-panel/expansion-panel-header/expansion-panel-header.component.d.ts.map +1 -1
  570. package/development/expansion-panel/expansion-panel-header/expansion-panel-header.component.js +17 -6
  571. package/development/expansion-panel/expansion-panel-header.d.ts +1 -1
  572. package/development/expansion-panel/expansion-panel.d.ts +1 -1
  573. package/development/expansion-panel.d.ts +3 -3
  574. package/development/file-selector/common/file-selector-common.d.ts +4 -4
  575. package/development/file-selector/common/file-selector-common.d.ts.map +1 -1
  576. package/development/file-selector/common/file-selector-common.js +5 -5
  577. package/development/file-selector/common.d.ts +1 -1
  578. package/development/file-selector/file-selector/file-selector.component.d.ts +2 -2
  579. package/development/file-selector/file-selector/file-selector.component.js +1 -1
  580. package/development/file-selector/file-selector-dropzone/file-selector-dropzone.component.d.ts +2 -2
  581. package/development/file-selector/file-selector-dropzone/file-selector-dropzone.component.js +1 -1
  582. package/development/file-selector/file-selector-dropzone.d.ts +1 -1
  583. package/development/file-selector/file-selector.d.ts +1 -1
  584. package/development/file-selector.d.ts +3 -3
  585. package/development/flip-card/flip-card/flip-card.component.d.ts +4 -3
  586. package/development/flip-card/flip-card/flip-card.component.d.ts.map +1 -1
  587. package/development/flip-card/flip-card/flip-card.component.js +25 -14
  588. package/development/flip-card/flip-card-details/flip-card-details.component.d.ts +3 -1
  589. package/development/flip-card/flip-card-details/flip-card-details.component.d.ts.map +1 -1
  590. package/development/flip-card/flip-card-details/flip-card-details.component.js +7 -6
  591. package/development/flip-card/flip-card-details.d.ts +1 -1
  592. package/development/flip-card/flip-card-summary/flip-card-summary.component.d.ts +1 -2
  593. package/development/flip-card/flip-card-summary/flip-card-summary.component.d.ts.map +1 -1
  594. package/development/flip-card/flip-card-summary/flip-card-summary.component.js +1 -7
  595. package/development/flip-card/flip-card-summary.d.ts +1 -1
  596. package/development/flip-card/flip-card.d.ts +1 -1
  597. package/development/flip-card.d.ts +3 -3
  598. package/development/footer/footer.component.d.ts +2 -2
  599. package/development/footer/footer.component.js +1 -1
  600. package/development/footer.d.ts +1 -1
  601. package/{form-error/form-error.component.d.ts → development/form-field/error/error.component.d.ts} +4 -4
  602. package/development/form-field/error/error.component.d.ts.map +1 -0
  603. package/development/form-field/error/error.component.js +101 -0
  604. package/development/form-field/error.d.ts +5 -0
  605. package/development/form-field/error.d.ts.map +1 -0
  606. package/development/form-field/error.js +5 -0
  607. package/development/form-field/form-field/form-field.component.d.ts +3 -3
  608. package/development/form-field/form-field/form-field.component.d.ts.map +1 -1
  609. package/development/form-field/form-field/form-field.component.js +5 -5
  610. package/development/form-field/form-field-clear/form-field-clear.component.d.ts +2 -2
  611. package/development/form-field/form-field-clear/form-field-clear.component.js +2 -2
  612. package/development/form-field/form-field-clear.d.ts +1 -1
  613. package/development/form-field/form-field.d.ts +1 -1
  614. package/development/form-field.d.ts +3 -2
  615. package/development/form-field.d.ts.map +1 -1
  616. package/development/form-field.js +3 -1
  617. package/development/header/common/header-action-common.d.ts +4 -4
  618. package/development/header/common/header-action-common.js +6 -6
  619. package/development/header/common.d.ts +1 -1
  620. package/development/header/header/header.component.d.ts +1 -1
  621. package/development/header/header/header.component.d.ts.map +1 -1
  622. package/development/header/header/header.component.js +14 -14
  623. package/development/header/header-button/header-button.component.d.ts +2 -2
  624. package/development/header/header-button/header-button.component.js +1 -1
  625. package/development/header/header-button.d.ts +1 -1
  626. package/development/header/header-environment/header-environment.component.d.ts +2 -1
  627. package/development/header/header-environment/header-environment.component.d.ts.map +1 -1
  628. package/development/header/header-environment/header-environment.component.js +8 -5
  629. package/development/header/header-environment.d.ts +1 -1
  630. package/development/header/header-link/header-link.component.d.ts +2 -2
  631. package/development/header/header-link/header-link.component.js +1 -1
  632. package/development/header/header-link.d.ts +1 -1
  633. package/development/header/header.d.ts +1 -1
  634. package/development/header.d.ts +4 -4
  635. package/development/icon/icon-base.d.ts +2 -1
  636. package/development/icon/icon-base.d.ts.map +1 -1
  637. package/development/icon/icon-base.js +21 -25
  638. package/development/icon/icon-name-mixin.d.ts +1 -1
  639. package/development/icon/icon-name-mixin.js +1 -1
  640. package/development/icon/icon-request.js +1 -1
  641. package/development/icon/icon-validate.js +2 -2
  642. package/development/icon/icon.component.d.ts +1 -1
  643. package/development/icon/icon.component.js +1 -1
  644. package/{sidebar → development/icon-sidebar}/icon-sidebar/icon-sidebar.component.d.ts +2 -2
  645. package/development/icon-sidebar/icon-sidebar/icon-sidebar.component.d.ts.map +1 -0
  646. package/development/{sidebar → icon-sidebar}/icon-sidebar/icon-sidebar.component.js +1 -1
  647. package/{sidebar → development/icon-sidebar}/icon-sidebar-button/icon-sidebar-button.component.d.ts +3 -3
  648. package/development/icon-sidebar/icon-sidebar-button/icon-sidebar-button.component.d.ts.map +1 -0
  649. package/development/icon-sidebar/icon-sidebar-button/icon-sidebar-button.component.js +33 -0
  650. package/development/{sidebar → icon-sidebar}/icon-sidebar-button.d.ts +1 -1
  651. package/development/icon-sidebar/icon-sidebar-button.d.ts.map +1 -0
  652. package/development/{sidebar → icon-sidebar}/icon-sidebar-container/icon-sidebar-container.component.d.ts +1 -1
  653. package/development/icon-sidebar/icon-sidebar-container/icon-sidebar-container.component.d.ts.map +1 -0
  654. package/development/icon-sidebar/icon-sidebar-container/icon-sidebar-container.component.js +42 -0
  655. package/development/{sidebar → icon-sidebar}/icon-sidebar-container.d.ts +1 -1
  656. package/development/icon-sidebar/icon-sidebar-container.d.ts.map +1 -0
  657. package/development/icon-sidebar/icon-sidebar-content/icon-sidebar-content.component.d.ts.map +1 -0
  658. package/development/icon-sidebar/icon-sidebar-content/icon-sidebar-content.component.js +34 -0
  659. package/development/{sidebar → icon-sidebar}/icon-sidebar-content.d.ts +1 -1
  660. package/development/icon-sidebar/icon-sidebar-content.d.ts.map +1 -0
  661. package/development/{sidebar → icon-sidebar}/icon-sidebar-link/icon-sidebar-link.component.d.ts +3 -3
  662. package/development/icon-sidebar/icon-sidebar-link/icon-sidebar-link.component.d.ts.map +1 -0
  663. package/development/icon-sidebar/icon-sidebar-link/icon-sidebar-link.component.js +33 -0
  664. package/development/icon-sidebar/icon-sidebar-link.d.ts +5 -0
  665. package/development/icon-sidebar/icon-sidebar-link.d.ts.map +1 -0
  666. package/development/icon-sidebar/icon-sidebar.d.ts +5 -0
  667. package/development/icon-sidebar/icon-sidebar.d.ts.map +1 -0
  668. package/development/{icon-sidebar-button-common-C6QChtaa.js → icon-sidebar-button-common-DR6eQvkq.js} +4 -4
  669. package/development/icon-sidebar.d.ts +9 -0
  670. package/development/icon-sidebar.d.ts.map +1 -0
  671. package/development/icon-sidebar.js +13 -0
  672. package/development/icon.d.ts +5 -5
  673. package/development/image/image.component.d.ts +5 -3
  674. package/development/image/image.component.d.ts.map +1 -1
  675. package/development/image/image.component.js +10 -9
  676. package/development/image.d.ts +1 -1
  677. package/development/journey-header/journey-header.component.d.ts +2 -2
  678. package/development/journey-header/journey-header.component.js +1 -1
  679. package/development/journey-header.d.ts +1 -1
  680. package/development/lead-container/lead-container.component.js +1 -1
  681. package/development/lead-container.d.ts +1 -1
  682. package/development/link/block-link/block-link.component.d.ts +2 -2
  683. package/development/link/block-link/block-link.component.js +1 -1
  684. package/development/link/block-link-button/block-link-button.component.d.ts +2 -2
  685. package/development/link/block-link-button/block-link-button.component.js +1 -1
  686. package/development/link/block-link-button.d.ts +1 -1
  687. package/development/link/block-link-static/block-link-static.component.d.ts +2 -2
  688. package/development/link/block-link-static/block-link-static.component.js +1 -1
  689. package/development/link/block-link-static.d.ts +1 -1
  690. package/development/link/block-link.d.ts +1 -1
  691. package/development/link/common/block-link-common.d.ts +4 -4
  692. package/development/link/common/block-link-common.js +2 -2
  693. package/development/link/common/inline-link-common.d.ts +3 -3
  694. package/development/link/common/inline-link-common.js +2 -2
  695. package/development/link/common/link-common.d.ts +3 -3
  696. package/development/link/common/link-common.d.ts.map +1 -1
  697. package/development/link/common/link-common.js +2 -3
  698. package/development/link/common.d.ts +3 -3
  699. package/development/link/common.js +1 -1
  700. package/development/link/link/link.component.d.ts +2 -2
  701. package/development/link/link/link.component.js +1 -1
  702. package/development/link/link-button/link-button.component.d.ts +2 -2
  703. package/development/link/link-button/link-button.component.js +1 -1
  704. package/development/link/link-button.d.ts +1 -1
  705. package/development/link/link-static/link-static.component.d.ts +2 -2
  706. package/development/link/link-static/link-static.component.js +1 -1
  707. package/development/link/link-static.d.ts +1 -1
  708. package/development/link/link.d.ts +1 -1
  709. package/development/{link-common-DYZHRSSJ.js → link-common-CYr3PeRf.js} +9 -16
  710. package/development/link-list/common/link-list-base.d.ts +4 -4
  711. package/development/link-list/common/link-list-base.js +1 -1
  712. package/development/link-list/common.d.ts +1 -1
  713. package/development/link-list/link-list/link-list.component.d.ts +2 -2
  714. package/development/link-list/link-list/link-list.component.js +1 -1
  715. package/development/link-list/link-list-anchor/link-list-anchor.component.d.ts +1 -1
  716. package/development/link-list/link-list-anchor/link-list-anchor.component.js +7 -7
  717. package/development/link-list/link-list-anchor.d.ts +1 -1
  718. package/development/link-list/link-list.d.ts +1 -1
  719. package/development/link-list.d.ts +3 -3
  720. package/development/link.d.ts +7 -7
  721. package/development/link.js +1 -1
  722. package/development/loading-indicator/loading-indicator.component.d.ts +1 -1
  723. package/development/loading-indicator/loading-indicator.component.js +1 -2
  724. package/development/loading-indicator-circle/loading-indicator-circle.component.d.ts +1 -1
  725. package/development/loading-indicator-circle/loading-indicator-circle.component.js +1 -1
  726. package/development/loading-indicator-circle.d.ts +1 -1
  727. package/development/loading-indicator.d.ts +1 -1
  728. package/development/logo/logo.component.d.ts +2 -2
  729. package/development/logo/logo.component.js +1 -2
  730. package/development/logo.d.ts +1 -1
  731. package/development/map-container/map-container.component.d.ts +3 -1
  732. package/development/map-container/map-container.component.d.ts.map +1 -1
  733. package/development/map-container/map-container.component.js +5 -4
  734. package/development/map-container.d.ts +1 -1
  735. package/development/menu/common/menu-action-common.d.ts +3 -3
  736. package/development/menu/common/menu-action-common.js +3 -3
  737. package/development/menu/common.d.ts +1 -1
  738. package/development/menu/menu/menu.component.d.ts +2 -2
  739. package/development/menu/menu/menu.component.d.ts.map +1 -1
  740. package/development/menu/menu/menu.component.js +29 -23
  741. package/development/menu/menu-button/menu-button.component.d.ts +2 -2
  742. package/development/menu/menu-button/menu-button.component.js +1 -1
  743. package/development/menu/menu-button.d.ts +1 -1
  744. package/development/menu/menu-link/menu-link.component.d.ts +2 -2
  745. package/development/menu/menu-link/menu-link.component.js +1 -1
  746. package/development/menu/menu-link.d.ts +1 -1
  747. package/development/menu/menu.d.ts +1 -1
  748. package/development/menu.d.ts +4 -4
  749. package/development/message/message.component.js +1 -1
  750. package/development/message.d.ts +1 -1
  751. package/development/{mini-button-common-D1dU4MgN.js → mini-button-common-CWTMR_Lu.js} +15 -16
  752. package/development/mini-calendar/mini-calendar/mini-calendar.component.d.ts +1 -1
  753. package/development/mini-calendar/mini-calendar/mini-calendar.component.d.ts.map +1 -1
  754. package/development/mini-calendar/mini-calendar/mini-calendar.component.js +7 -6
  755. package/development/mini-calendar/mini-calendar-day/mini-calendar-day.component.d.ts +1 -1
  756. package/development/mini-calendar/mini-calendar-day/mini-calendar-day.component.js +1 -1
  757. package/development/mini-calendar/mini-calendar-day.d.ts +1 -1
  758. package/development/mini-calendar/mini-calendar-month/mini-calendar-month.component.d.ts +1 -1
  759. package/development/mini-calendar/mini-calendar-month/mini-calendar-month.component.js +4 -4
  760. package/development/mini-calendar/mini-calendar-month.d.ts +1 -1
  761. package/development/mini-calendar/mini-calendar.d.ts +1 -1
  762. package/development/mini-calendar.d.ts +3 -3
  763. package/development/navigation/common/navigation-action-common.d.ts +4 -4
  764. package/development/navigation/common/navigation-action-common.js +7 -7
  765. package/development/navigation/common.d.ts +1 -1
  766. package/development/navigation/navigation/navigation.component.d.ts +3 -4
  767. package/development/navigation/navigation/navigation.component.d.ts.map +1 -1
  768. package/development/navigation/navigation/navigation.component.js +26 -38
  769. package/development/navigation/navigation-button/navigation-button.component.d.ts +2 -2
  770. package/development/navigation/navigation-button/navigation-button.component.js +1 -1
  771. package/development/navigation/navigation-button.d.ts +1 -1
  772. package/development/navigation/navigation-link/navigation-link.component.d.ts +2 -2
  773. package/development/navigation/navigation-link/navigation-link.component.js +1 -1
  774. package/development/navigation/navigation-link.d.ts +1 -1
  775. package/development/navigation/navigation-list/navigation-list.component.d.ts +4 -4
  776. package/development/navigation/navigation-list/navigation-list.component.js +1 -1
  777. package/development/navigation/navigation-list.d.ts +1 -1
  778. package/development/navigation/navigation-marker/navigation-marker.component.d.ts +4 -4
  779. package/development/navigation/navigation-marker/navigation-marker.component.d.ts.map +1 -1
  780. package/development/navigation/navigation-marker/navigation-marker.component.js +8 -8
  781. package/development/navigation/navigation-marker.d.ts +1 -1
  782. package/development/navigation/navigation-section/navigation-section.component.d.ts +8 -7
  783. package/development/navigation/navigation-section/navigation-section.component.d.ts.map +1 -1
  784. package/development/navigation/navigation-section/navigation-section.component.js +48 -45
  785. package/development/navigation/navigation-section.d.ts +1 -1
  786. package/development/navigation/navigation.d.ts +1 -1
  787. package/development/navigation.d.ts +7 -7
  788. package/development/notification/notification.component.d.ts +4 -3
  789. package/development/notification/notification.component.d.ts.map +1 -1
  790. package/development/notification/notification.component.js +22 -20
  791. package/development/notification.d.ts +1 -1
  792. package/development/option/optgroup/optgroup-base-element.d.ts +4 -8
  793. package/development/option/optgroup/optgroup-base-element.d.ts.map +1 -1
  794. package/development/option/optgroup/optgroup-base-element.js +11 -63
  795. package/development/option/optgroup/optgroup.component.d.ts +5 -5
  796. package/development/option/optgroup/optgroup.component.d.ts.map +1 -1
  797. package/development/option/optgroup/optgroup.component.js +21 -13
  798. package/development/option/optgroup.d.ts +2 -2
  799. package/development/option/option/option-base-element.d.ts +4 -9
  800. package/development/option/option/option-base-element.d.ts.map +1 -1
  801. package/development/option/option/option-base-element.js +34 -65
  802. package/development/option/option/option.component.d.ts +7 -5
  803. package/development/option/option/option.component.d.ts.map +1 -1
  804. package/development/option/option/option.component.js +62 -49
  805. package/development/option/option-hint/option-hint.component.d.ts +1 -1
  806. package/development/option/option-hint/option-hint.component.js +1 -1
  807. package/development/option/option-hint.d.ts +1 -1
  808. package/development/option/option.d.ts +2 -2
  809. package/development/option.d.ts +3 -3
  810. package/development/overlay/overlay-base-element.d.ts +7 -7
  811. package/development/overlay/overlay-base-element.js +2 -2
  812. package/development/overlay/overlay.component.d.ts +1 -1
  813. package/development/overlay/overlay.component.js +8 -8
  814. package/development/overlay.d.ts +2 -2
  815. package/development/paginator/common/paginator-common.d.ts +4 -5
  816. package/development/paginator/common/paginator-common.d.ts.map +1 -1
  817. package/development/paginator/common/paginator-common.js +1 -1
  818. package/development/paginator/common.d.ts +1 -1
  819. package/development/paginator/compact-paginator/compact-paginator.component.d.ts +1 -1
  820. package/development/paginator/compact-paginator/compact-paginator.component.js +1 -1
  821. package/development/paginator/compact-paginator.d.ts +1 -1
  822. package/development/paginator/paginator/paginator.component.d.ts +2 -2
  823. package/development/paginator/paginator/paginator.component.d.ts.map +1 -1
  824. package/development/paginator/paginator/paginator.component.js +8 -14
  825. package/development/paginator/paginator.d.ts +1 -1
  826. package/development/paginator.d.ts +3 -3
  827. package/development/popover/{popover/popover.component.d.ts → popover.component.d.ts} +2 -2
  828. package/development/popover/popover.component.d.ts.map +1 -0
  829. package/development/popover/popover.component.js +720 -0
  830. package/development/popover.d.ts +1 -1
  831. package/development/popover.d.ts.map +1 -1
  832. package/development/popover.js +1 -1
  833. package/development/radio-button/common/radio-button-common.d.ts +3 -3
  834. package/development/radio-button/common/radio-button-common.js +1 -1
  835. package/development/radio-button/common.d.ts +1 -1
  836. package/development/radio-button/common.js +1 -1
  837. package/development/radio-button/radio-button/radio-button.component.d.ts +2 -3
  838. package/development/radio-button/radio-button/radio-button.component.d.ts.map +1 -1
  839. package/development/radio-button/radio-button/radio-button.component.js +1 -2
  840. package/development/radio-button/radio-button-group/radio-button-group.component.d.ts +6 -7
  841. package/development/radio-button/radio-button-group/radio-button-group.component.d.ts.map +1 -1
  842. package/development/radio-button/radio-button-group/radio-button-group.component.js +28 -43
  843. package/development/radio-button/radio-button-group.d.ts +1 -1
  844. package/development/radio-button/radio-button-panel/radio-button-panel.component.d.ts +1 -13
  845. package/development/radio-button/radio-button-panel/radio-button-panel.component.d.ts.map +1 -1
  846. package/development/radio-button/radio-button-panel/radio-button-panel.component.js +5 -37
  847. package/development/radio-button/radio-button-panel.d.ts +1 -1
  848. package/development/radio-button/radio-button.d.ts +1 -1
  849. package/development/{radio-button-common-BPrInmpg.js → radio-button-common-B3kVD7QV.js} +19 -42
  850. package/development/radio-button.d.ts +4 -4
  851. package/development/radio-button.js +1 -1
  852. package/development/{sbb-tokens-DZrHvErO.js → sbb-tokens-CZCt5L4q.js} +9 -9
  853. package/development/screen-reader-only.d.ts +1 -1
  854. package/development/select/select.component.d.ts +5 -5
  855. package/development/select/select.component.d.ts.map +1 -1
  856. package/development/select/select.component.js +31 -37
  857. package/development/select.d.ts +1 -1
  858. package/development/selection-action-panel/selection-action-panel.component.d.ts +1 -2
  859. package/development/selection-action-panel/selection-action-panel.component.d.ts.map +1 -1
  860. package/development/selection-action-panel/selection-action-panel.component.js +28 -19
  861. package/development/selection-action-panel.d.ts +1 -1
  862. package/development/selection-expansion-panel/selection-expansion-panel.component.d.ts +6 -7
  863. package/development/selection-expansion-panel/selection-expansion-panel.component.d.ts.map +1 -1
  864. package/development/selection-expansion-panel/selection-expansion-panel.component.js +78 -76
  865. package/development/selection-expansion-panel.d.ts +1 -1
  866. package/development/sidebar/common.js +1 -1
  867. package/development/sidebar/sidebar/sidebar.component.d.ts +3 -3
  868. package/development/sidebar/sidebar/sidebar.component.d.ts.map +1 -1
  869. package/development/sidebar/sidebar/sidebar.component.js +13 -14
  870. package/development/sidebar/sidebar-close-button/sidebar-close-button.component.d.ts +1 -1
  871. package/development/sidebar/sidebar-close-button/sidebar-close-button.component.js +1 -1
  872. package/development/sidebar/sidebar-close-button.d.ts +1 -1
  873. package/development/sidebar/sidebar-container/sidebar-container.component.d.ts +1 -1
  874. package/development/sidebar/sidebar-container/sidebar-container.component.d.ts.map +1 -1
  875. package/development/sidebar/sidebar-container/sidebar-container.component.js +10 -8
  876. package/development/sidebar/sidebar-container.d.ts +1 -1
  877. package/development/sidebar/sidebar-content/sidebar-content.component.js +1 -1
  878. package/development/sidebar/sidebar-content.d.ts +1 -1
  879. package/development/sidebar/sidebar-title/sidebar-title.component.d.ts +1 -1
  880. package/development/sidebar/sidebar-title/sidebar-title.component.js +1 -1
  881. package/development/sidebar/sidebar-title.d.ts +1 -1
  882. package/development/sidebar/sidebar.d.ts +1 -1
  883. package/development/sidebar.d.ts +6 -11
  884. package/development/sidebar.d.ts.map +1 -1
  885. package/development/sidebar.js +2 -12
  886. package/development/signet/signet.component.d.ts +1 -1
  887. package/development/signet/signet.component.js +1 -1
  888. package/development/signet.d.ts +1 -1
  889. package/development/skiplink-list/skiplink-list.component.d.ts +4 -4
  890. package/development/skiplink-list/skiplink-list.component.js +2 -2
  891. package/development/skiplink-list.d.ts +1 -1
  892. package/development/slider/slider.component.d.ts +2 -2
  893. package/development/slider/slider.component.js +1 -1
  894. package/development/slider.d.ts +1 -1
  895. package/development/status/status.component.d.ts +1 -1
  896. package/development/status/status.component.js +1 -1
  897. package/development/status.d.ts +1 -1
  898. package/development/stepper/step/step.component.d.ts +5 -3
  899. package/development/stepper/step/step.component.d.ts.map +1 -1
  900. package/development/stepper/step/step.component.js +25 -12
  901. package/development/stepper/step-label/step-label.component.d.ts +7 -4
  902. package/development/stepper/step-label/step-label.component.d.ts.map +1 -1
  903. package/development/stepper/step-label/step-label.component.js +40 -17
  904. package/development/stepper/step-label.d.ts +1 -1
  905. package/development/stepper/step.d.ts +1 -1
  906. package/development/stepper/stepper/stepper.component.d.ts +4 -4
  907. package/development/stepper/stepper/stepper.component.d.ts.map +1 -1
  908. package/development/stepper/stepper/stepper.component.js +21 -22
  909. package/development/stepper/stepper.d.ts +1 -1
  910. package/development/stepper.d.ts +3 -3
  911. package/development/table/table-wrapper/table-wrapper.component.d.ts +1 -1
  912. package/development/table/table-wrapper/table-wrapper.component.js +1 -1
  913. package/development/table/table-wrapper.d.ts +1 -1
  914. package/development/table.d.ts +1 -1
  915. package/development/tabs/tab/tab.component.d.ts +3 -8
  916. package/development/tabs/tab/tab.component.d.ts.map +1 -1
  917. package/development/tabs/tab/tab.component.js +3 -9
  918. package/development/tabs/tab-group/tab-group.component.d.ts +4 -28
  919. package/development/tabs/tab-group/tab-group.component.d.ts.map +1 -1
  920. package/development/tabs/tab-group/tab-group.component.js +19 -23
  921. package/development/tabs/tab-group.d.ts +1 -1
  922. package/development/tabs/tab-label/tab-label.component.d.ts +5 -4
  923. package/development/tabs/tab-label/tab-label.component.d.ts.map +1 -1
  924. package/development/tabs/tab-label/tab-label.component.js +20 -8
  925. package/development/tabs/tab-label.d.ts +1 -1
  926. package/development/tabs/tab.d.ts +1 -1
  927. package/development/tabs.d.ts +3 -3
  928. package/development/tag/tag/tag.component.d.ts +3 -3
  929. package/development/tag/tag/tag.component.js +9 -9
  930. package/development/tag/tag-group/tag-group.component.d.ts +3 -3
  931. package/development/tag/tag-group/tag-group.component.js +1 -1
  932. package/development/tag/tag-group.d.ts +1 -1
  933. package/development/tag/tag.d.ts +1 -1
  934. package/development/tag.d.ts +2 -2
  935. package/development/teaser/teaser.component.d.ts +1 -1
  936. package/development/teaser/teaser.component.js +13 -10
  937. package/development/teaser-hero/teaser-hero.component.d.ts +1 -1
  938. package/development/teaser-hero/teaser-hero.component.js +1 -1
  939. package/development/teaser-hero.d.ts +1 -1
  940. package/development/teaser-product/common/teaser-product-common.d.ts +3 -3
  941. package/development/teaser-product/common/teaser-product-common.js +1 -1
  942. package/development/teaser-product/common.d.ts +1 -1
  943. package/development/teaser-product/common.js +1 -1
  944. package/development/teaser-product/teaser-product/teaser-product.component.d.ts +2 -2
  945. package/development/teaser-product/teaser-product/teaser-product.component.js +2 -2
  946. package/development/teaser-product/teaser-product-static/teaser-product-static.component.d.ts +2 -2
  947. package/development/teaser-product/teaser-product-static/teaser-product-static.component.js +1 -1
  948. package/development/teaser-product/teaser-product-static.d.ts +1 -1
  949. package/development/teaser-product/teaser-product.d.ts +1 -1
  950. package/development/{teaser-product-common-v3BvyFdH.js → teaser-product-common-CJfmvweQ.js} +2 -2
  951. package/development/teaser-product.d.ts +3 -3
  952. package/development/teaser-product.js +1 -1
  953. package/development/teaser.d.ts +1 -1
  954. package/development/time-input/time-input.component.d.ts +1 -6
  955. package/development/time-input/time-input.component.d.ts.map +1 -1
  956. package/development/time-input/time-input.component.js +1 -8
  957. package/development/time-input.d.ts +1 -1
  958. package/development/timetable-form/timetable-form-details.d.ts +1 -1
  959. package/development/timetable-form/timetable-form-field/timetable-form-field.component.d.ts +1 -1
  960. package/development/timetable-form/timetable-form-field/timetable-form-field.component.js +1 -1
  961. package/development/timetable-form/timetable-form-field.d.ts +1 -1
  962. package/development/timetable-form/timetable-form-swap-button/timetable-form-swap-button.component.d.ts +1 -1
  963. package/development/timetable-form/timetable-form-swap-button/timetable-form-swap-button.component.js +1 -1
  964. package/development/timetable-form/timetable-form-swap-button.d.ts +1 -1
  965. package/development/timetable-form/timetable-form.d.ts +1 -1
  966. package/development/timetable-form.d.ts +4 -4
  967. package/development/timetable-occupancy/timetable-occupancy.component.d.ts +2 -2
  968. package/development/timetable-occupancy/timetable-occupancy.component.js +1 -1
  969. package/development/timetable-occupancy-icon/timetable-occupancy-icon.component.d.ts +3 -3
  970. package/development/timetable-occupancy-icon/timetable-occupancy-icon.component.js +1 -1
  971. package/development/timetable-occupancy-icon.d.ts +1 -1
  972. package/development/timetable-occupancy.d.ts +1 -1
  973. package/development/title/title-base.d.ts +1 -1
  974. package/development/title/title-base.js +1 -1
  975. package/development/title/title.component.d.ts +2 -2
  976. package/development/title/title.component.js +1 -1
  977. package/development/title.d.ts +2 -2
  978. package/development/toast/toast.component.d.ts +2 -2
  979. package/development/toast/toast.component.js +5 -5
  980. package/development/toast.d.ts +1 -1
  981. package/development/toggle/toggle/toggle.component.d.ts +3 -3
  982. package/development/toggle/toggle/toggle.component.js +4 -4
  983. package/development/toggle/toggle-option/toggle-option.component.d.ts +1 -1
  984. package/development/toggle/toggle-option/toggle-option.component.d.ts.map +1 -1
  985. package/development/toggle/toggle-option/toggle-option.component.js +2 -3
  986. package/development/toggle/toggle-option.d.ts +1 -1
  987. package/development/toggle/toggle.d.ts +1 -1
  988. package/development/toggle-check/toggle-check.component.d.ts +1 -1
  989. package/development/toggle-check/toggle-check.component.js +4 -4
  990. package/development/toggle-check.d.ts +1 -1
  991. package/development/toggle.d.ts +2 -2
  992. package/development/tooltip/tooltip.component.d.ts +2 -2
  993. package/development/tooltip/tooltip.component.d.ts.map +1 -1
  994. package/development/tooltip/tooltip.component.js +7 -7
  995. package/development/tooltip.d.ts +1 -1
  996. package/development/train/train/train.component.d.ts +5 -5
  997. package/development/train/train/train.component.js +1 -1
  998. package/development/train/train-blocked-passage/train-blocked-passage.component.js +1 -1
  999. package/development/train/train-blocked-passage.d.ts +1 -1
  1000. package/development/train/train-formation/train-formation.component.d.ts +3 -3
  1001. package/development/train/train-formation/train-formation.component.js +1 -1
  1002. package/development/train/train-formation.d.ts +1 -1
  1003. package/development/train/train-wagon/train-wagon.component.d.ts +3 -3
  1004. package/development/train/train-wagon/train-wagon.component.js +1 -1
  1005. package/development/train/train-wagon.d.ts +1 -1
  1006. package/development/train/train.d.ts +1 -1
  1007. package/development/train.d.ts +4 -4
  1008. package/development/visual-checkbox/visual-checkbox.component.d.ts +2 -2
  1009. package/development/visual-checkbox/visual-checkbox.component.d.ts.map +1 -1
  1010. package/development/visual-checkbox/visual-checkbox.component.js +53 -99
  1011. package/development/visual-checkbox.d.ts +1 -1
  1012. package/dialog/dialog/dialog.component.d.ts +1 -1
  1013. package/dialog/dialog/dialog.component.js +20 -20
  1014. package/dialog/dialog-actions/dialog-actions.component.d.ts +1 -1
  1015. package/dialog/dialog-actions.d.ts +1 -1
  1016. package/dialog/dialog-close-button/dialog-close-button.component.d.ts +1 -1
  1017. package/dialog/dialog-close-button.d.ts +1 -1
  1018. package/dialog/dialog-content.d.ts +1 -1
  1019. package/dialog/dialog-title/dialog-title.component.d.ts +2 -2
  1020. package/dialog/dialog-title.d.ts +1 -1
  1021. package/dialog/dialog.d.ts +1 -1
  1022. package/dialog.d.ts +5 -5
  1023. package/divider/divider.component.d.ts +2 -2
  1024. package/divider.d.ts +1 -1
  1025. package/expansion-panel/expansion-panel/expansion-panel.component.d.ts +5 -7
  1026. package/expansion-panel/expansion-panel/expansion-panel.component.d.ts.map +1 -1
  1027. package/expansion-panel/expansion-panel/expansion-panel.component.js +51 -56
  1028. package/expansion-panel/expansion-panel-content/expansion-panel-content.component.d.ts +3 -1
  1029. package/expansion-panel/expansion-panel-content/expansion-panel-content.component.d.ts.map +1 -1
  1030. package/expansion-panel/expansion-panel-content/expansion-panel-content.component.js +21 -13
  1031. package/expansion-panel/expansion-panel-content.d.ts +1 -1
  1032. package/expansion-panel/expansion-panel-header/expansion-panel-header.component.d.ts +3 -2
  1033. package/expansion-panel/expansion-panel-header/expansion-panel-header.component.d.ts.map +1 -1
  1034. package/expansion-panel/expansion-panel-header/expansion-panel-header.component.js +24 -20
  1035. package/expansion-panel/expansion-panel-header.d.ts +1 -1
  1036. package/expansion-panel/expansion-panel.d.ts +1 -1
  1037. package/expansion-panel.d.ts +3 -3
  1038. package/file-selector/common/file-selector-common.d.ts +4 -4
  1039. package/file-selector/common/file-selector-common.d.ts.map +1 -1
  1040. package/file-selector/common/file-selector-common.js +28 -28
  1041. package/file-selector/common.d.ts +1 -1
  1042. package/file-selector/file-selector/file-selector.component.d.ts +2 -2
  1043. package/file-selector/file-selector-dropzone/file-selector-dropzone.component.d.ts +2 -2
  1044. package/file-selector/file-selector-dropzone.d.ts +1 -1
  1045. package/file-selector/file-selector.d.ts +1 -1
  1046. package/file-selector.d.ts +3 -3
  1047. package/flip-card/flip-card/flip-card.component.d.ts +4 -3
  1048. package/flip-card/flip-card/flip-card.component.d.ts.map +1 -1
  1049. package/flip-card/flip-card/flip-card.component.js +44 -40
  1050. package/flip-card/flip-card-details/flip-card-details.component.d.ts +3 -1
  1051. package/flip-card/flip-card-details/flip-card-details.component.d.ts.map +1 -1
  1052. package/flip-card/flip-card-details/flip-card-details.component.js +15 -14
  1053. package/flip-card/flip-card-details.d.ts +1 -1
  1054. package/flip-card/flip-card-summary/flip-card-summary.component.d.ts +1 -2
  1055. package/flip-card/flip-card-summary/flip-card-summary.component.d.ts.map +1 -1
  1056. package/flip-card/flip-card-summary/flip-card-summary.component.js +23 -26
  1057. package/flip-card/flip-card-summary.d.ts +1 -1
  1058. package/flip-card/flip-card.d.ts +1 -1
  1059. package/flip-card.d.ts +3 -3
  1060. package/footer/footer.component.d.ts +2 -2
  1061. package/footer.d.ts +1 -1
  1062. package/{development/form-error/form-error.component.d.ts → form-field/error/error.component.d.ts} +4 -4
  1063. package/form-field/error/error.component.d.ts.map +1 -0
  1064. package/form-field/error/error.component.js +47 -0
  1065. package/form-field/error.d.ts +5 -0
  1066. package/form-field/error.d.ts.map +1 -0
  1067. package/form-field/error.js +4 -0
  1068. package/form-field/form-field/form-field.component.d.ts +3 -3
  1069. package/form-field/form-field/form-field.component.d.ts.map +1 -1
  1070. package/form-field/form-field/form-field.component.js +4 -4
  1071. package/form-field/form-field-clear/form-field-clear.component.d.ts +2 -2
  1072. package/form-field/form-field-clear/form-field-clear.component.js +7 -7
  1073. package/form-field/form-field-clear.d.ts +1 -1
  1074. package/form-field/form-field.d.ts +1 -1
  1075. package/form-field.d.ts +3 -2
  1076. package/form-field.d.ts.map +1 -1
  1077. package/form-field.js +6 -4
  1078. package/header/common/header-action-common.d.ts +4 -4
  1079. package/header/common/header-action-common.js +14 -14
  1080. package/header/common.d.ts +1 -1
  1081. package/header/header/header.component.d.ts +1 -1
  1082. package/header/header/header.component.d.ts.map +1 -1
  1083. package/header/header/header.component.js +40 -40
  1084. package/header/header-button/header-button.component.d.ts +2 -2
  1085. package/header/header-button.d.ts +1 -1
  1086. package/header/header-environment/header-environment.component.d.ts +2 -1
  1087. package/header/header-environment/header-environment.component.d.ts.map +1 -1
  1088. package/header/header-environment/header-environment.component.js +8 -9
  1089. package/header/header-environment.d.ts +1 -1
  1090. package/header/header-link/header-link.component.d.ts +2 -2
  1091. package/header/header-link.d.ts +1 -1
  1092. package/header/header.d.ts +1 -1
  1093. package/header.d.ts +4 -4
  1094. package/icon/icon-base.d.ts +2 -1
  1095. package/icon/icon-base.d.ts.map +1 -1
  1096. package/icon/icon-base.js +45 -48
  1097. package/icon/icon-name-mixin.d.ts +1 -1
  1098. package/icon/icon-validate.js +3 -3
  1099. package/icon/icon.component.d.ts +1 -1
  1100. package/{development/sidebar → icon-sidebar}/icon-sidebar/icon-sidebar.component.d.ts +2 -2
  1101. package/icon-sidebar/icon-sidebar/icon-sidebar.component.d.ts.map +1 -0
  1102. package/{development/sidebar → icon-sidebar}/icon-sidebar-button/icon-sidebar-button.component.d.ts +3 -3
  1103. package/icon-sidebar/icon-sidebar-button/icon-sidebar-button.component.d.ts.map +1 -0
  1104. package/{sidebar → icon-sidebar}/icon-sidebar-button/icon-sidebar-button.component.js +1 -1
  1105. package/{sidebar → icon-sidebar}/icon-sidebar-button.d.ts +1 -1
  1106. package/icon-sidebar/icon-sidebar-button.d.ts.map +1 -0
  1107. package/{sidebar → icon-sidebar}/icon-sidebar-container/icon-sidebar-container.component.d.ts +1 -1
  1108. package/icon-sidebar/icon-sidebar-container/icon-sidebar-container.component.d.ts.map +1 -0
  1109. package/{sidebar → icon-sidebar}/icon-sidebar-container/icon-sidebar-container.component.js +1 -1
  1110. package/{sidebar → icon-sidebar}/icon-sidebar-container.d.ts +1 -1
  1111. package/icon-sidebar/icon-sidebar-container.d.ts.map +1 -0
  1112. package/icon-sidebar/icon-sidebar-content/icon-sidebar-content.component.d.ts.map +1 -0
  1113. package/{sidebar → icon-sidebar}/icon-sidebar-content/icon-sidebar-content.component.js +1 -1
  1114. package/{sidebar → icon-sidebar}/icon-sidebar-content.d.ts +1 -1
  1115. package/icon-sidebar/icon-sidebar-content.d.ts.map +1 -0
  1116. package/{sidebar → icon-sidebar}/icon-sidebar-link/icon-sidebar-link.component.d.ts +3 -3
  1117. package/icon-sidebar/icon-sidebar-link/icon-sidebar-link.component.d.ts.map +1 -0
  1118. package/{sidebar → icon-sidebar}/icon-sidebar-link/icon-sidebar-link.component.js +1 -1
  1119. package/icon-sidebar/icon-sidebar-link.d.ts +5 -0
  1120. package/icon-sidebar/icon-sidebar-link.d.ts.map +1 -0
  1121. package/icon-sidebar/icon-sidebar.d.ts +5 -0
  1122. package/icon-sidebar/icon-sidebar.d.ts.map +1 -0
  1123. package/{icon-sidebar-button-common-W6GYJbVt.js → icon-sidebar-button-common-ffAscVDk.js} +1 -1
  1124. package/icon-sidebar.d.ts +9 -0
  1125. package/icon-sidebar.d.ts.map +1 -0
  1126. package/icon-sidebar.js +12 -0
  1127. package/icon.d.ts +5 -5
  1128. package/image/image.component.d.ts +5 -3
  1129. package/image/image.component.d.ts.map +1 -1
  1130. package/image/image.component.js +31 -30
  1131. package/image.d.ts +1 -1
  1132. package/index.d.ts +8 -20
  1133. package/index.js +8 -20
  1134. package/journey-header/journey-header.component.d.ts +2 -2
  1135. package/journey-header.d.ts +1 -1
  1136. package/lead-container.d.ts +1 -1
  1137. package/link/block-link/block-link.component.d.ts +2 -2
  1138. package/link/block-link-button/block-link-button.component.d.ts +2 -2
  1139. package/link/block-link-button.d.ts +1 -1
  1140. package/link/block-link-static/block-link-static.component.d.ts +2 -2
  1141. package/link/block-link-static.d.ts +1 -1
  1142. package/link/block-link.d.ts +1 -1
  1143. package/link/common/block-link-common.d.ts +4 -4
  1144. package/link/common/block-link-common.js +1 -1
  1145. package/link/common/inline-link-common.d.ts +3 -3
  1146. package/link/common/inline-link-common.js +1 -1
  1147. package/link/common/link-common.d.ts +3 -3
  1148. package/link/common/link-common.d.ts.map +1 -1
  1149. package/link/common/link-common.js +2 -3
  1150. package/link/common.d.ts +3 -3
  1151. package/link/common.js +1 -1
  1152. package/link/link/link.component.d.ts +2 -2
  1153. package/link/link-button/link-button.component.d.ts +2 -2
  1154. package/link/link-button.d.ts +1 -1
  1155. package/link/link-static/link-static.component.d.ts +2 -2
  1156. package/link/link-static.d.ts +1 -1
  1157. package/link/link.d.ts +1 -1
  1158. package/link-common-D9TmX32v.js +45 -0
  1159. package/link-list/common/link-list-base.d.ts +4 -4
  1160. package/link-list/common.d.ts +1 -1
  1161. package/link-list/link-list/link-list.component.d.ts +2 -2
  1162. package/link-list/link-list-anchor/link-list-anchor.component.d.ts +1 -1
  1163. package/link-list/link-list-anchor/link-list-anchor.component.js +9 -9
  1164. package/link-list/link-list-anchor.d.ts +1 -1
  1165. package/link-list/link-list.d.ts +1 -1
  1166. package/link-list.d.ts +3 -3
  1167. package/link.d.ts +7 -7
  1168. package/link.js +1 -1
  1169. package/lists.css +5 -0
  1170. package/loading-indicator/loading-indicator.component.d.ts +1 -1
  1171. package/loading-indicator/loading-indicator.component.js +1 -1
  1172. package/loading-indicator-circle/loading-indicator-circle.component.d.ts +1 -1
  1173. package/loading-indicator-circle.d.ts +1 -1
  1174. package/loading-indicator.d.ts +1 -1
  1175. package/logo/logo.component.d.ts +2 -2
  1176. package/logo/logo.component.js +4 -4
  1177. package/logo.d.ts +1 -1
  1178. package/map-container/map-container.component.d.ts +3 -1
  1179. package/map-container/map-container.component.d.ts.map +1 -1
  1180. package/map-container/map-container.component.js +18 -17
  1181. package/map-container.d.ts +1 -1
  1182. package/menu/common/menu-action-common.d.ts +3 -3
  1183. package/menu/common/menu-action-common.js +5 -5
  1184. package/menu/common.d.ts +1 -1
  1185. package/menu/menu/menu.component.d.ts +2 -2
  1186. package/menu/menu/menu.component.d.ts.map +1 -1
  1187. package/menu/menu/menu.component.js +29 -28
  1188. package/menu/menu-button/menu-button.component.d.ts +2 -2
  1189. package/menu/menu-button.d.ts +1 -1
  1190. package/menu/menu-link/menu-link.component.d.ts +2 -2
  1191. package/menu/menu-link.d.ts +1 -1
  1192. package/menu/menu.d.ts +1 -1
  1193. package/menu.d.ts +4 -4
  1194. package/message.d.ts +1 -1
  1195. package/mini-button-common-Bb4ri3Rn.js +10 -0
  1196. package/mini-calendar/mini-calendar/mini-calendar.component.d.ts +1 -1
  1197. package/mini-calendar/mini-calendar/mini-calendar.component.d.ts.map +1 -1
  1198. package/mini-calendar/mini-calendar/mini-calendar.component.js +22 -21
  1199. package/mini-calendar/mini-calendar-day/mini-calendar-day.component.d.ts +1 -1
  1200. package/mini-calendar/mini-calendar-day.d.ts +1 -1
  1201. package/mini-calendar/mini-calendar-month/mini-calendar-month.component.d.ts +1 -1
  1202. package/mini-calendar/mini-calendar-month.d.ts +1 -1
  1203. package/mini-calendar/mini-calendar.d.ts +1 -1
  1204. package/mini-calendar.d.ts +3 -3
  1205. package/navigation/common/navigation-action-common.d.ts +4 -4
  1206. package/navigation/common/navigation-action-common.js +10 -10
  1207. package/navigation/common.d.ts +1 -1
  1208. package/navigation/navigation/navigation.component.d.ts +3 -4
  1209. package/navigation/navigation/navigation.component.d.ts.map +1 -1
  1210. package/navigation/navigation/navigation.component.js +46 -55
  1211. package/navigation/navigation-button/navigation-button.component.d.ts +2 -2
  1212. package/navigation/navigation-button.d.ts +1 -1
  1213. package/navigation/navigation-link/navigation-link.component.d.ts +2 -2
  1214. package/navigation/navigation-link.d.ts +1 -1
  1215. package/navigation/navigation-list/navigation-list.component.d.ts +4 -4
  1216. package/navigation/navigation-list.d.ts +1 -1
  1217. package/navigation/navigation-marker/navigation-marker.component.d.ts +4 -4
  1218. package/navigation/navigation-marker/navigation-marker.component.d.ts.map +1 -1
  1219. package/navigation/navigation-marker/navigation-marker.component.js +20 -20
  1220. package/navigation/navigation-marker.d.ts +1 -1
  1221. package/navigation/navigation-section/navigation-section.component.d.ts +8 -7
  1222. package/navigation/navigation-section/navigation-section.component.d.ts.map +1 -1
  1223. package/navigation/navigation-section/navigation-section.component.js +65 -65
  1224. package/navigation/navigation-section.d.ts +1 -1
  1225. package/navigation/navigation.d.ts +1 -1
  1226. package/navigation.d.ts +7 -7
  1227. package/notification/notification.component.d.ts +4 -3
  1228. package/notification/notification.component.d.ts.map +1 -1
  1229. package/notification/notification.component.js +26 -29
  1230. package/notification.d.ts +1 -1
  1231. package/off-brand-theme.css +297 -11
  1232. package/option/optgroup/optgroup-base-element.d.ts +4 -8
  1233. package/option/optgroup/optgroup-base-element.d.ts.map +1 -1
  1234. package/option/optgroup/optgroup-base-element.js +48 -82
  1235. package/option/optgroup/optgroup.component.d.ts +5 -5
  1236. package/option/optgroup/optgroup.component.d.ts.map +1 -1
  1237. package/option/optgroup/optgroup.component.js +27 -19
  1238. package/option/optgroup.d.ts +2 -2
  1239. package/option/option/option-base-element.d.ts +4 -9
  1240. package/option/option/option-base-element.d.ts.map +1 -1
  1241. package/option/option/option-base-element.js +46 -59
  1242. package/option/option/option.component.d.ts +7 -5
  1243. package/option/option/option.component.d.ts.map +1 -1
  1244. package/option/option/option.component.js +46 -39
  1245. package/option/option-hint/option-hint.component.d.ts +1 -1
  1246. package/option/option-hint.d.ts +1 -1
  1247. package/option/option.d.ts +2 -2
  1248. package/option.d.ts +3 -3
  1249. package/overlay/overlay-base-element.d.ts +7 -7
  1250. package/overlay/overlay-base-element.js +1 -1
  1251. package/overlay/overlay.component.d.ts +1 -1
  1252. package/overlay/overlay.component.js +28 -28
  1253. package/overlay.d.ts +2 -2
  1254. package/package.json +36 -71
  1255. package/paginator/common/paginator-common.d.ts +4 -5
  1256. package/paginator/common/paginator-common.d.ts.map +1 -1
  1257. package/paginator/common.d.ts +1 -1
  1258. package/paginator/compact-paginator/compact-paginator.component.d.ts +1 -1
  1259. package/paginator/compact-paginator.d.ts +1 -1
  1260. package/paginator/paginator/paginator.component.d.ts +2 -2
  1261. package/paginator/paginator/paginator.component.d.ts.map +1 -1
  1262. package/paginator/paginator/paginator.component.js +17 -20
  1263. package/paginator/paginator.d.ts +1 -1
  1264. package/paginator.d.ts +3 -3
  1265. package/popover/{popover/popover.component.d.ts → popover.component.d.ts} +2 -2
  1266. package/popover/popover.component.d.ts.map +1 -0
  1267. package/popover/popover.component.js +316 -0
  1268. package/popover.d.ts +1 -1
  1269. package/popover.d.ts.map +1 -1
  1270. package/popover.js +1 -1
  1271. package/radio-button/common/radio-button-common.d.ts +3 -3
  1272. package/radio-button/common.d.ts +1 -1
  1273. package/radio-button/common.js +1 -1
  1274. package/radio-button/radio-button/radio-button.component.d.ts +2 -3
  1275. package/radio-button/radio-button/radio-button.component.d.ts.map +1 -1
  1276. package/radio-button/radio-button/radio-button.component.js +4 -5
  1277. package/radio-button/radio-button-group/radio-button-group.component.d.ts +6 -7
  1278. package/radio-button/radio-button-group/radio-button-group.component.d.ts.map +1 -1
  1279. package/radio-button/radio-button-group/radio-button-group.component.js +45 -46
  1280. package/radio-button/radio-button-group.d.ts +1 -1
  1281. package/radio-button/radio-button-panel/radio-button-panel.component.d.ts +1 -13
  1282. package/radio-button/radio-button-panel/radio-button-panel.component.d.ts.map +1 -1
  1283. package/radio-button/radio-button-panel/radio-button-panel.component.js +36 -54
  1284. package/radio-button/radio-button-panel.d.ts +1 -1
  1285. package/radio-button/radio-button.d.ts +1 -1
  1286. package/radio-button-common-1Yg7p8dc.js +5 -0
  1287. package/radio-button.d.ts +4 -4
  1288. package/radio-button.js +1 -1
  1289. package/safety-theme.css +297 -11
  1290. package/{sbb-tokens-BNWpZrLn.js → sbb-tokens-DruExozg.js} +8 -8
  1291. package/screen-reader-only.d.ts +1 -1
  1292. package/select/select.component.d.ts +5 -5
  1293. package/select/select.component.d.ts.map +1 -1
  1294. package/select/select.component.js +52 -52
  1295. package/select.d.ts +1 -1
  1296. package/selection-action-panel/selection-action-panel.component.d.ts +1 -2
  1297. package/selection-action-panel/selection-action-panel.component.d.ts.map +1 -1
  1298. package/selection-action-panel/selection-action-panel.component.js +10 -14
  1299. package/selection-action-panel.d.ts +1 -1
  1300. package/selection-expansion-panel/selection-expansion-panel.component.d.ts +6 -7
  1301. package/selection-expansion-panel/selection-expansion-panel.component.d.ts.map +1 -1
  1302. package/selection-expansion-panel/selection-expansion-panel.component.js +60 -68
  1303. package/selection-expansion-panel.d.ts +1 -1
  1304. package/sidebar/common.js +1 -1
  1305. package/sidebar/sidebar/sidebar.component.d.ts +3 -3
  1306. package/sidebar/sidebar/sidebar.component.d.ts.map +1 -1
  1307. package/sidebar/sidebar/sidebar.component.js +26 -32
  1308. package/sidebar/sidebar-close-button/sidebar-close-button.component.d.ts +1 -1
  1309. package/sidebar/sidebar-close-button.d.ts +1 -1
  1310. package/sidebar/sidebar-container/sidebar-container.component.d.ts +1 -1
  1311. package/sidebar/sidebar-container/sidebar-container.component.d.ts.map +1 -1
  1312. package/sidebar/sidebar-container/sidebar-container.component.js +33 -32
  1313. package/sidebar/sidebar-container.d.ts +1 -1
  1314. package/sidebar/sidebar-content.d.ts +1 -1
  1315. package/sidebar/sidebar-title/sidebar-title.component.d.ts +1 -1
  1316. package/sidebar/sidebar-title.d.ts +1 -1
  1317. package/sidebar/sidebar.d.ts +1 -1
  1318. package/sidebar.d.ts +6 -11
  1319. package/sidebar.d.ts.map +1 -1
  1320. package/sidebar.js +11 -21
  1321. package/signet/signet.component.d.ts +1 -1
  1322. package/signet.d.ts +1 -1
  1323. package/skiplink-list/skiplink-list.component.d.ts +4 -4
  1324. package/skiplink-list/skiplink-list.component.js +1 -1
  1325. package/skiplink-list.d.ts +1 -1
  1326. package/slider/slider.component.d.ts +2 -2
  1327. package/slider.d.ts +1 -1
  1328. package/standard-theme.css +297 -11
  1329. package/status/status.component.d.ts +1 -1
  1330. package/status.d.ts +1 -1
  1331. package/stepper/step/step.component.d.ts +5 -3
  1332. package/stepper/step/step.component.d.ts.map +1 -1
  1333. package/stepper/step/step.component.js +28 -20
  1334. package/stepper/step-label/step-label.component.d.ts +7 -4
  1335. package/stepper/step-label/step-label.component.d.ts.map +1 -1
  1336. package/stepper/step-label/step-label.component.js +35 -23
  1337. package/stepper/step-label.d.ts +1 -1
  1338. package/stepper/step.d.ts +1 -1
  1339. package/stepper/stepper/stepper.component.d.ts +4 -4
  1340. package/stepper/stepper/stepper.component.d.ts.map +1 -1
  1341. package/stepper/stepper/stepper.component.js +49 -48
  1342. package/stepper/stepper.d.ts +1 -1
  1343. package/stepper.d.ts +3 -3
  1344. package/table/table-wrapper/table-wrapper.component.d.ts +1 -1
  1345. package/table/table-wrapper.d.ts +1 -1
  1346. package/table.d.ts +1 -1
  1347. package/tabs/tab/tab.component.d.ts +3 -8
  1348. package/tabs/tab/tab.component.d.ts.map +1 -1
  1349. package/tabs/tab/tab.component.js +12 -18
  1350. package/tabs/tab-group/tab-group.component.d.ts +4 -28
  1351. package/tabs/tab-group/tab-group.component.d.ts.map +1 -1
  1352. package/tabs/tab-group/tab-group.component.js +48 -50
  1353. package/tabs/tab-group.d.ts +1 -1
  1354. package/tabs/tab-label/tab-label.component.d.ts +5 -4
  1355. package/tabs/tab-label/tab-label.component.d.ts.map +1 -1
  1356. package/tabs/tab-label/tab-label.component.js +34 -29
  1357. package/tabs/tab-label.d.ts +1 -1
  1358. package/tabs/tab.d.ts +1 -1
  1359. package/tabs.d.ts +3 -3
  1360. package/tag/tag/tag.component.d.ts +3 -3
  1361. package/tag/tag/tag.component.js +12 -12
  1362. package/tag/tag-group/tag-group.component.d.ts +3 -3
  1363. package/tag/tag-group.d.ts +1 -1
  1364. package/tag/tag.d.ts +1 -1
  1365. package/tag.d.ts +2 -2
  1366. package/teaser/teaser.component.d.ts +1 -1
  1367. package/teaser/teaser.component.js +10 -10
  1368. package/teaser-hero/teaser-hero.component.d.ts +1 -1
  1369. package/teaser-hero.d.ts +1 -1
  1370. package/teaser-product/common/teaser-product-common.d.ts +3 -3
  1371. package/teaser-product/common.d.ts +1 -1
  1372. package/teaser-product/common.js +1 -1
  1373. package/teaser-product/teaser-product/teaser-product.component.d.ts +2 -2
  1374. package/teaser-product/teaser-product/teaser-product.component.js +1 -1
  1375. package/teaser-product/teaser-product-static/teaser-product-static.component.d.ts +2 -2
  1376. package/teaser-product/teaser-product-static.d.ts +1 -1
  1377. package/teaser-product/teaser-product.d.ts +1 -1
  1378. package/teaser-product-common-DwaWdQEh.js +5 -0
  1379. package/teaser-product.d.ts +3 -3
  1380. package/teaser-product.js +1 -1
  1381. package/teaser.d.ts +1 -1
  1382. package/time-input/time-input.component.d.ts +1 -6
  1383. package/time-input/time-input.component.d.ts.map +1 -1
  1384. package/time-input/time-input.component.js +3 -10
  1385. package/time-input.d.ts +1 -1
  1386. package/timetable-form/timetable-form-details.d.ts +1 -1
  1387. package/timetable-form/timetable-form-field/timetable-form-field.component.d.ts +1 -1
  1388. package/timetable-form/timetable-form-field.d.ts +1 -1
  1389. package/timetable-form/timetable-form-swap-button/timetable-form-swap-button.component.d.ts +1 -1
  1390. package/timetable-form/timetable-form-swap-button.d.ts +1 -1
  1391. package/timetable-form/timetable-form.d.ts +1 -1
  1392. package/timetable-form.d.ts +4 -4
  1393. package/timetable-occupancy/timetable-occupancy.component.d.ts +2 -2
  1394. package/timetable-occupancy-icon/timetable-occupancy-icon.component.d.ts +3 -3
  1395. package/timetable-occupancy-icon.d.ts +1 -1
  1396. package/timetable-occupancy.d.ts +1 -1
  1397. package/title/title-base.d.ts +1 -1
  1398. package/title/title.component.d.ts +2 -2
  1399. package/title.d.ts +2 -2
  1400. package/toast/toast.component.d.ts +2 -2
  1401. package/toast/toast.component.js +23 -23
  1402. package/toast.d.ts +1 -1
  1403. package/toggle/toggle/toggle.component.d.ts +3 -3
  1404. package/toggle/toggle/toggle.component.js +13 -13
  1405. package/toggle/toggle-option/toggle-option.component.d.ts +1 -1
  1406. package/toggle/toggle-option/toggle-option.component.d.ts.map +1 -1
  1407. package/toggle/toggle-option/toggle-option.component.js +20 -21
  1408. package/toggle/toggle-option.d.ts +1 -1
  1409. package/toggle/toggle.d.ts +1 -1
  1410. package/toggle-check/toggle-check.component.d.ts +1 -1
  1411. package/toggle-check/toggle-check.component.js +8 -8
  1412. package/toggle-check.d.ts +1 -1
  1413. package/toggle.d.ts +2 -2
  1414. package/tooltip/tooltip.component.d.ts +2 -2
  1415. package/tooltip/tooltip.component.d.ts.map +1 -1
  1416. package/tooltip/tooltip.component.js +39 -39
  1417. package/tooltip.d.ts +1 -1
  1418. package/train/train/train.component.d.ts +5 -5
  1419. package/train/train-blocked-passage.d.ts +1 -1
  1420. package/train/train-formation/train-formation.component.d.ts +3 -3
  1421. package/train/train-formation.d.ts +1 -1
  1422. package/train/train-wagon/train-wagon.component.d.ts +3 -3
  1423. package/train/train-wagon.d.ts +1 -1
  1424. package/train/train.d.ts +1 -1
  1425. package/train.d.ts +4 -4
  1426. package/visual-checkbox/visual-checkbox.component.d.ts +2 -2
  1427. package/visual-checkbox/visual-checkbox.component.d.ts.map +1 -1
  1428. package/visual-checkbox/visual-checkbox.component.js +48 -52
  1429. package/visual-checkbox.d.ts +1 -1
  1430. package/autocomplete-grid/autocomplete-grid/autocomplete-grid.component.d.ts +0 -38
  1431. package/autocomplete-grid/autocomplete-grid/autocomplete-grid.component.d.ts.map +0 -1
  1432. package/autocomplete-grid/autocomplete-grid/autocomplete-grid.component.js +0 -88
  1433. package/autocomplete-grid/autocomplete-grid-button/autocomplete-grid-button.component.d.ts +0 -31
  1434. package/autocomplete-grid/autocomplete-grid-button/autocomplete-grid-button.component.d.ts.map +0 -1
  1435. package/autocomplete-grid/autocomplete-grid-button/autocomplete-grid-button.component.js +0 -62
  1436. package/autocomplete-grid/autocomplete-grid-button.d.ts +0 -5
  1437. package/autocomplete-grid/autocomplete-grid-button.d.ts.map +0 -1
  1438. package/autocomplete-grid/autocomplete-grid-button.js +0 -4
  1439. package/autocomplete-grid/autocomplete-grid-cell/autocomplete-grid-cell.component.d.ts +0 -19
  1440. package/autocomplete-grid/autocomplete-grid-cell/autocomplete-grid-cell.component.d.ts.map +0 -1
  1441. package/autocomplete-grid/autocomplete-grid-cell/autocomplete-grid-cell.component.js +0 -25
  1442. package/autocomplete-grid/autocomplete-grid-cell.d.ts +0 -5
  1443. package/autocomplete-grid/autocomplete-grid-cell.d.ts.map +0 -1
  1444. package/autocomplete-grid/autocomplete-grid-cell.js +0 -4
  1445. package/autocomplete-grid/autocomplete-grid-optgroup/autocomplete-grid-optgroup.component.d.ts +0 -20
  1446. package/autocomplete-grid/autocomplete-grid-optgroup/autocomplete-grid-optgroup.component.d.ts.map +0 -1
  1447. package/autocomplete-grid/autocomplete-grid-optgroup/autocomplete-grid-optgroup.component.js +0 -30
  1448. package/autocomplete-grid/autocomplete-grid-optgroup.d.ts +0 -5
  1449. package/autocomplete-grid/autocomplete-grid-optgroup.d.ts.map +0 -1
  1450. package/autocomplete-grid/autocomplete-grid-optgroup.js +0 -4
  1451. package/autocomplete-grid/autocomplete-grid-option/autocomplete-grid-option.component.d.ts +0 -27
  1452. package/autocomplete-grid/autocomplete-grid-option/autocomplete-grid-option.component.d.ts.map +0 -1
  1453. package/autocomplete-grid/autocomplete-grid-option/autocomplete-grid-option.component.js +0 -39
  1454. package/autocomplete-grid/autocomplete-grid-option.d.ts +0 -5
  1455. package/autocomplete-grid/autocomplete-grid-option.d.ts.map +0 -1
  1456. package/autocomplete-grid/autocomplete-grid-option.js +0 -5
  1457. package/autocomplete-grid/autocomplete-grid-row/autocomplete-grid-row.component.d.ts +0 -20
  1458. package/autocomplete-grid/autocomplete-grid-row/autocomplete-grid-row.component.d.ts.map +0 -1
  1459. package/autocomplete-grid/autocomplete-grid-row/autocomplete-grid-row.component.js +0 -28
  1460. package/autocomplete-grid/autocomplete-grid-row.d.ts +0 -5
  1461. package/autocomplete-grid/autocomplete-grid-row.d.ts.map +0 -1
  1462. package/autocomplete-grid/autocomplete-grid-row.js +0 -4
  1463. package/autocomplete-grid/autocomplete-grid.d.ts +0 -5
  1464. package/autocomplete-grid/autocomplete-grid.d.ts.map +0 -1
  1465. package/autocomplete-grid/autocomplete-grid.js +0 -4
  1466. package/autocomplete-grid.d.ts +0 -10
  1467. package/autocomplete-grid.d.ts.map +0 -1
  1468. package/autocomplete-grid.js +0 -15
  1469. package/checkbox-common-CrwfdL9V.js +0 -5
  1470. package/core/dom/breakpoint.d.ts +0 -16
  1471. package/core/dom/breakpoint.d.ts.map +0 -1
  1472. package/core/dom/breakpoint.js +0 -12
  1473. package/core/dom/host-context.d.ts +0 -11
  1474. package/core/dom/host-context.d.ts.map +0 -1
  1475. package/core/dom/host-context.js +0 -17
  1476. package/development/autocomplete-grid/autocomplete-grid/autocomplete-grid.component.d.ts +0 -38
  1477. package/development/autocomplete-grid/autocomplete-grid/autocomplete-grid.component.d.ts.map +0 -1
  1478. package/development/autocomplete-grid/autocomplete-grid/autocomplete-grid.component.js +0 -139
  1479. package/development/autocomplete-grid/autocomplete-grid-button/autocomplete-grid-button.component.d.ts +0 -31
  1480. package/development/autocomplete-grid/autocomplete-grid-button/autocomplete-grid-button.component.d.ts.map +0 -1
  1481. package/development/autocomplete-grid/autocomplete-grid-button/autocomplete-grid-button.component.js +0 -90
  1482. package/development/autocomplete-grid/autocomplete-grid-button.d.ts +0 -5
  1483. package/development/autocomplete-grid/autocomplete-grid-button.d.ts.map +0 -1
  1484. package/development/autocomplete-grid/autocomplete-grid-button.js +0 -5
  1485. package/development/autocomplete-grid/autocomplete-grid-cell/autocomplete-grid-cell.component.d.ts +0 -19
  1486. package/development/autocomplete-grid/autocomplete-grid-cell/autocomplete-grid-cell.component.d.ts.map +0 -1
  1487. package/development/autocomplete-grid/autocomplete-grid-cell/autocomplete-grid-cell.component.js +0 -40
  1488. package/development/autocomplete-grid/autocomplete-grid-cell.d.ts +0 -5
  1489. package/development/autocomplete-grid/autocomplete-grid-cell.d.ts.map +0 -1
  1490. package/development/autocomplete-grid/autocomplete-grid-cell.js +0 -5
  1491. package/development/autocomplete-grid/autocomplete-grid-optgroup/autocomplete-grid-optgroup.component.d.ts +0 -20
  1492. package/development/autocomplete-grid/autocomplete-grid-optgroup/autocomplete-grid-optgroup.component.d.ts.map +0 -1
  1493. package/development/autocomplete-grid/autocomplete-grid-optgroup/autocomplete-grid-optgroup.component.js +0 -41
  1494. package/development/autocomplete-grid/autocomplete-grid-optgroup.d.ts +0 -5
  1495. package/development/autocomplete-grid/autocomplete-grid-optgroup.d.ts.map +0 -1
  1496. package/development/autocomplete-grid/autocomplete-grid-optgroup.js +0 -5
  1497. package/development/autocomplete-grid/autocomplete-grid-option/autocomplete-grid-option.component.d.ts +0 -27
  1498. package/development/autocomplete-grid/autocomplete-grid-option/autocomplete-grid-option.component.d.ts.map +0 -1
  1499. package/development/autocomplete-grid/autocomplete-grid-option/autocomplete-grid-option.component.js +0 -135
  1500. package/development/autocomplete-grid/autocomplete-grid-option.d.ts +0 -5
  1501. package/development/autocomplete-grid/autocomplete-grid-option.d.ts.map +0 -1
  1502. package/development/autocomplete-grid/autocomplete-grid-option.js +0 -6
  1503. package/development/autocomplete-grid/autocomplete-grid-row/autocomplete-grid-row.component.d.ts +0 -20
  1504. package/development/autocomplete-grid/autocomplete-grid-row/autocomplete-grid-row.component.d.ts.map +0 -1
  1505. package/development/autocomplete-grid/autocomplete-grid-row/autocomplete-grid-row.component.js +0 -125
  1506. package/development/autocomplete-grid/autocomplete-grid-row.d.ts +0 -5
  1507. package/development/autocomplete-grid/autocomplete-grid-row.d.ts.map +0 -1
  1508. package/development/autocomplete-grid/autocomplete-grid-row.js +0 -5
  1509. package/development/autocomplete-grid/autocomplete-grid.d.ts +0 -5
  1510. package/development/autocomplete-grid/autocomplete-grid.d.ts.map +0 -1
  1511. package/development/autocomplete-grid/autocomplete-grid.js +0 -5
  1512. package/development/autocomplete-grid.d.ts +0 -10
  1513. package/development/autocomplete-grid.d.ts.map +0 -1
  1514. package/development/autocomplete-grid.js +0 -16
  1515. package/development/core/dom/breakpoint.d.ts +0 -16
  1516. package/development/core/dom/breakpoint.d.ts.map +0 -1
  1517. package/development/core/dom/breakpoint.js +0 -19
  1518. package/development/core/dom/host-context.d.ts +0 -11
  1519. package/development/core/dom/host-context.d.ts.map +0 -1
  1520. package/development/core/dom/host-context.js +0 -21
  1521. package/development/form-error/form-error.component.d.ts.map +0 -1
  1522. package/development/form-error/form-error.component.js +0 -101
  1523. package/development/form-error.d.ts +0 -5
  1524. package/development/form-error.d.ts.map +0 -1
  1525. package/development/form-error.js +0 -5
  1526. package/development/popover/popover/popover.component.d.ts.map +0 -1
  1527. package/development/popover/popover/popover.component.js +0 -722
  1528. package/development/popover/popover.d.ts +0 -5
  1529. package/development/popover/popover.d.ts.map +0 -1
  1530. package/development/popover/popover.js +0 -6
  1531. package/development/sidebar/icon-sidebar/icon-sidebar.component.d.ts.map +0 -1
  1532. package/development/sidebar/icon-sidebar-button/icon-sidebar-button.component.d.ts.map +0 -1
  1533. package/development/sidebar/icon-sidebar-button/icon-sidebar-button.component.js +0 -33
  1534. package/development/sidebar/icon-sidebar-button.d.ts.map +0 -1
  1535. package/development/sidebar/icon-sidebar-container/icon-sidebar-container.component.d.ts.map +0 -1
  1536. package/development/sidebar/icon-sidebar-container/icon-sidebar-container.component.js +0 -42
  1537. package/development/sidebar/icon-sidebar-container.d.ts.map +0 -1
  1538. package/development/sidebar/icon-sidebar-content/icon-sidebar-content.component.d.ts.map +0 -1
  1539. package/development/sidebar/icon-sidebar-content/icon-sidebar-content.component.js +0 -34
  1540. package/development/sidebar/icon-sidebar-content.d.ts.map +0 -1
  1541. package/development/sidebar/icon-sidebar-link/icon-sidebar-link.component.d.ts.map +0 -1
  1542. package/development/sidebar/icon-sidebar-link/icon-sidebar-link.component.js +0 -33
  1543. package/development/sidebar/icon-sidebar-link.d.ts +0 -5
  1544. package/development/sidebar/icon-sidebar-link.d.ts.map +0 -1
  1545. package/development/sidebar/icon-sidebar.d.ts +0 -5
  1546. package/development/sidebar/icon-sidebar.d.ts.map +0 -1
  1547. package/form-error/form-error.component.d.ts.map +0 -1
  1548. package/form-error/form-error.component.js +0 -47
  1549. package/form-error.d.ts +0 -5
  1550. package/form-error.d.ts.map +0 -1
  1551. package/form-error.js +0 -4
  1552. package/link-common-CdQBSga7.js +0 -46
  1553. package/mini-button-common-DSGLaplg.js +0 -10
  1554. package/popover/popover/popover.component.d.ts.map +0 -1
  1555. package/popover/popover/popover.component.js +0 -321
  1556. package/popover/popover.d.ts +0 -5
  1557. package/popover/popover.d.ts.map +0 -1
  1558. package/popover/popover.js +0 -5
  1559. package/radio-button-common-chJrmIBn.js +0 -5
  1560. package/sidebar/icon-sidebar/icon-sidebar.component.d.ts.map +0 -1
  1561. package/sidebar/icon-sidebar-button/icon-sidebar-button.component.d.ts.map +0 -1
  1562. package/sidebar/icon-sidebar-button.d.ts.map +0 -1
  1563. package/sidebar/icon-sidebar-container/icon-sidebar-container.component.d.ts.map +0 -1
  1564. package/sidebar/icon-sidebar-container.d.ts.map +0 -1
  1565. package/sidebar/icon-sidebar-content/icon-sidebar-content.component.d.ts.map +0 -1
  1566. package/sidebar/icon-sidebar-content.d.ts.map +0 -1
  1567. package/sidebar/icon-sidebar-link/icon-sidebar-link.component.d.ts.map +0 -1
  1568. package/sidebar/icon-sidebar-link.d.ts +0 -5
  1569. package/sidebar/icon-sidebar-link.d.ts.map +0 -1
  1570. package/sidebar/icon-sidebar.d.ts +0 -5
  1571. package/sidebar/icon-sidebar.d.ts.map +0 -1
  1572. package/teaser-product-common-a4NenpSA.js +0 -5
  1573. /package/development/{sidebar → icon-sidebar}/icon-sidebar-button.js +0 -0
  1574. /package/development/{sidebar → icon-sidebar}/icon-sidebar-container.js +0 -0
  1575. /package/development/{sidebar → icon-sidebar}/icon-sidebar-content/icon-sidebar-content.component.d.ts +0 -0
  1576. /package/development/{sidebar → icon-sidebar}/icon-sidebar-content.js +0 -0
  1577. /package/development/{sidebar → icon-sidebar}/icon-sidebar-link.js +0 -0
  1578. /package/development/{sidebar → icon-sidebar}/icon-sidebar.js +0 -0
  1579. /package/{sidebar → icon-sidebar}/icon-sidebar/icon-sidebar.component.js +0 -0
  1580. /package/{sidebar → icon-sidebar}/icon-sidebar-button.js +0 -0
  1581. /package/{sidebar → icon-sidebar}/icon-sidebar-container.js +0 -0
  1582. /package/{sidebar → icon-sidebar}/icon-sidebar-content/icon-sidebar-content.component.d.ts +0 -0
  1583. /package/{sidebar → icon-sidebar}/icon-sidebar-content.js +0 -0
  1584. /package/{sidebar → icon-sidebar}/icon-sidebar-link.js +0 -0
  1585. /package/{sidebar → icon-sidebar}/icon-sidebar.js +0 -0
@@ -1,6 +1,6 @@
1
1
  import { LitElement } from 'lit';
2
- import { AbstractConstructor } from './constructor.js';
3
- import { SbbElementInternalsMixinType } from './element-internals-mixin.js';
2
+ import { AbstractConstructor } from './constructor.ts';
3
+ import { SbbElementInternalsMixinType } from './element-internals-mixin.ts';
4
4
  export declare class SbbDisabledMixinType {
5
5
  accessor disabled: boolean;
6
6
  protected isDisabledExternally(): boolean;
@@ -104,4 +104,4 @@ export {
104
104
  SbbDisabledMixin,
105
105
  SbbDisabledTabIndexActionMixin
106
106
  };
107
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzYWJsZWQtbWl4aW4uanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb3JlL21peGlucy9kaXNhYmxlZC1taXhpbi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IExpdEVsZW1lbnQsIFByb3BlcnR5VmFsdWVzIH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IHByb3BlcnR5IH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuXG5pbXBvcnQgeyBmb3JjZVR5cGUgfSBmcm9tICcuLi9kZWNvcmF0b3JzLmpzJztcblxuaW1wb3J0IHR5cGUgeyBBYnN0cmFjdENvbnN0cnVjdG9yIH0gZnJvbSAnLi9jb25zdHJ1Y3Rvci5qcyc7XG5pbXBvcnQgdHlwZSB7IFNiYkVsZW1lbnRJbnRlcm5hbHNNaXhpblR5cGUgfSBmcm9tICcuL2VsZW1lbnQtaW50ZXJuYWxzLW1peGluLmpzJztcblxuZXhwb3J0IGRlY2xhcmUgY2xhc3MgU2JiRGlzYWJsZWRNaXhpblR5cGUge1xuICBwdWJsaWMgYWNjZXNzb3IgZGlzYWJsZWQ6IGJvb2xlYW47XG4gIHByb3RlY3RlZCBpc0Rpc2FibGVkRXh0ZXJuYWxseSgpOiBib29sZWFuO1xufVxuXG5leHBvcnQgZGVjbGFyZSBjbGFzcyBTYmJEaXNhYmxlZEludGVyYWN0aXZlTWl4aW5UeXBlIHtcbiAgcHVibGljIGFjY2Vzc29yIGRpc2FibGVkSW50ZXJhY3RpdmU6IGJvb2xlYW47XG59XG5cbi8qKlxuICogRW5oYW5jZSB5b3VyIGNvbXBvbmVudCB3aXRoIGEgZGlzYWJsZWQgcHJvcGVydHkuXG4gKi9cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbmV4cG9ydCBjb25zdCBTYmJEaXNhYmxlZE1peGluID0gPFQgZXh0ZW5kcyBBYnN0cmFjdENvbnN0cnVjdG9yPExpdEVsZW1lbnQ+PihcbiAgc3VwZXJDbGFzczogVCxcbik6IEFic3RyYWN0Q29uc3RydWN0b3I8U2JiRGlzYWJsZWRNaXhpblR5cGU+ICYgVCA9PiB7XG4gIGFic3RyYWN0IGNsYXNzIFNiYkRpc2FibGVkRWxlbWVudCBleHRlbmRzIHN1cGVyQ2xhc3MgaW1wbGVtZW50cyBQYXJ0aWFsPFNiYkRpc2FibGVkTWl4aW5UeXBlPiB7XG4gICAgLyoqXG4gICAgICogV2hldGhlciB0aGUgY29tcG9uZW50IGlzIGRpc2FibGVkLlxuICAgICAqIEBkZWZhdWx0IGZhbHNlXG4gICAgICovXG4gICAgLy8gVE9ETzogcmVtb3ZlIHJlZmxlY3Q6IHRydWUgYW5kIG1hbmFnZSBvbmx5IGluIHNldHRlci5cbiAgICBAcHJvcGVydHkoeyB0eXBlOiBCb29sZWFuLCByZWZsZWN0OiB0cnVlIH0pXG4gICAgcHVibGljIHNldCBkaXNhYmxlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgdGhpcy4jZGlzYWJsZWQgPSAhIXZhbHVlO1xuXG4gICAgICAvLyBUaGUgYXR0cmlidXRlIG5lZWRzIHRvIGJlIHJlZmxlY3RlZCBzeW5jaHJvbm91c2x5IChsaWtlIG5hdGl2ZSlcbiAgICAgIC8vIFRPRE86IG9ubHkgZGlzYWJsZWQgb2YgdGhlIGFjdHVhbCBjb21wb25lbnQgc2hvdWxkIGJlIHJlZmxlY3RlZCwgd2l0aG91dCBjb25zaWRlcmluZyB0aGlzLmlzRGlzYWJsZWRFeHRlcm5hbGx5KClcbiAgICAgIHRoaXMudG9nZ2xlQXR0cmlidXRlKCdkaXNhYmxlZCcsIHRoaXMuZGlzYWJsZWQpO1xuICAgIH1cbiAgICBwdWJsaWMgZ2V0IGRpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgICAgcmV0dXJuIHRoaXMuI2Rpc2FibGVkIHx8IHRoaXMuaXNEaXNhYmxlZEV4dGVybmFsbHkoKTtcbiAgICB9XG4gICAgI2Rpc2FibGVkID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBXaWxsIGJlIHVzZWQgYXMgJ29yJyBjaGVjayB0byB0aGUgY3VycmVudCBkaXNhYmxlZCBzdGF0ZS5cbiAgICAgKiBDYW4gZS5nLiBiZSB1c2VkIHRvIHJlYWQgZGlzYWJsZWQgc3RhdGUgb2YgYSBncm91cC5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgaXNEaXNhYmxlZEV4dGVybmFsbHkoKTogYm9vbGVhbiB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIFNiYkRpc2FibGVkRWxlbWVudCBhcyB1bmtub3duIGFzIEFic3RyYWN0Q29uc3RydWN0b3I8U2JiRGlzYWJsZWRNaXhpblR5cGU+ICYgVDtcbn07XG5cbi8qKlxuICogRW5oYW5jZSB5b3VyIGNvbXBvbmVudCB3aXRoIGEgZGlzYWJsZWQgaW50ZXJhY3RpdmUgcHJvcGVydHkuXG4gKi9cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbmV4cG9ydCBjb25zdCBTYmJEaXNhYmxlZEludGVyYWN0aXZlTWl4aW4gPSA8XG4gIFQgZXh0ZW5kcyBBYnN0cmFjdENvbnN0cnVjdG9yPExpdEVsZW1lbnQgJiBTYmJEaXNhYmxlZE1peGluVHlwZT4sXG4+KFxuICBzdXBlckNsYXNzOiBULFxuKTogQWJzdHJhY3RDb25zdHJ1Y3RvcjxTYmJEaXNhYmxlZEludGVyYWN0aXZlTWl4aW5UeXBlPiAmIFQgPT4ge1xuICBhYnN0cmFjdCBjbGFzcyBTYmJEaXNhYmxlZEludGVyYWN0aXZlRWxlbWVudFxuICAgIGV4dGVuZHMgc3VwZXJDbGFzc1xuICAgIGltcGxlbWVudHMgUGFydGlhbDxTYmJEaXNhYmxlZEludGVyYWN0aXZlTWl4aW5UeXBlPlxuICB7XG4gICAgLyoqIFdoZXRoZXIgdGhlIGJ1dHRvbiBzaG91bGQgYmUgYXJpYS1kaXNhYmxlZCBidXQgc3RheSBpbnRlcmFjdGl2ZS4gKi9cbiAgICBAZm9yY2VUeXBlKClcbiAgICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdkaXNhYmxlZC1pbnRlcmFjdGl2ZScsIHR5cGU6IEJvb2xlYW4sIHJlZmxlY3Q6IHRydWUgfSlcbiAgICBwdWJsaWMgYWNjZXNzb3IgZGlzYWJsZWRJbnRlcmFjdGl2ZTogYm9vbGVhbiA9IGZhbHNlO1xuICB9XG5cbiAgcmV0dXJuIFNiYkRpc2FibGVkSW50ZXJhY3RpdmVFbGVtZW50IGFzIHVua25vd24gYXMgQWJzdHJhY3RDb25zdHJ1Y3RvcjxTYmJEaXNhYmxlZEludGVyYWN0aXZlTWl4aW5UeXBlPiAmXG4gICAgVDtcbn07XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbmV4cG9ydCBjb25zdCBTYmJEaXNhYmxlZFRhYkluZGV4QWN0aW9uTWl4aW4gPSA8XG4gIFQgZXh0ZW5kcyBBYnN0cmFjdENvbnN0cnVjdG9yPExpdEVsZW1lbnQgJiBTYmJFbGVtZW50SW50ZXJuYWxzTWl4aW5UeXBlPixcbj4oXG4gIHN1cGVyQ2xhc3M6IFQsXG4pOiBBYnN0cmFjdENvbnN0cnVjdG9yPFNiYkRpc2FibGVkTWl4aW5UeXBlICYgU2JiRGlzYWJsZWRJbnRlcmFjdGl2ZU1peGluVHlwZT4gJiBUID0+IHtcbiAgYWJzdHJhY3QgY2xhc3MgU2JiRGlzYWJsZWRUYWJJbmRleEFjdGlvblxuICAgIGV4dGVuZHMgU2JiRGlzYWJsZWRJbnRlcmFjdGl2ZU1peGluKFNiYkRpc2FibGVkTWl4aW4oc3VwZXJDbGFzcykpXG4gICAgaW1wbGVtZW50cyBTYmJEaXNhYmxlZE1peGluVHlwZSwgU2JiRGlzYWJsZWRJbnRlcmFjdGl2ZU1peGluVHlwZVxuICB7XG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIHdpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXM6IFByb3BlcnR5VmFsdWVzPHRoaXM+KTogdm9pZCB7XG4gICAgICBzdXBlci53aWxsVXBkYXRlKGNoYW5nZWRQcm9wZXJ0aWVzKTtcblxuICAgICAgaWYgKGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygnZGlzYWJsZWRJbnRlcmFjdGl2ZScpKSB7XG4gICAgICAgIHRoaXMuaW50ZXJuYWxzLmFyaWFEaXNhYmxlZCA9IHRoaXMuZGlzYWJsZWRJbnRlcmFjdGl2ZSA/ICd0cnVlJyA6IG51bGw7XG4gICAgICB9XG5cbiAgICAgIGlmICghY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdkaXNhYmxlZCcpKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKCF0aGlzLmRpc2FibGVkKSB7XG4gICAgICAgIHRoaXMuc2V0QXR0cmlidXRlKCd0YWJpbmRleCcsICcwJyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnJlbW92ZUF0dHJpYnV0ZSgndGFiaW5kZXgnKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcmV0dXJuIFNiYkRpc2FibGVkVGFiSW5kZXhBY3Rpb24gYXMgQWJzdHJhY3RDb25zdHJ1Y3RvcjxcbiAgICBTYmJEaXNhYmxlZE1peGluVHlwZSAmIFNiYkRpc2FibGVkSW50ZXJhY3RpdmVNaXhpblR5cGVcbiAgPiAmXG4gICAgVDtcbn07XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQXFCTyxNQUFNLG1CQUFtQixDQUM5QixlQUNpRDtNQUNsQyxzQkFBa0IsTUFBQTs7c0JBQVM7OztBQUEzQixXQUFBLG1CQUEyQixZQUFVO0FBQUEsTUFBckM7QUFBQTtBQWlCYix1Q0FqQmEsa0JBQUEsTUFBQSwwQkFBQSxHQWlCRDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLE1BVlosSUFBVyxTQUFTLE9BQWM7QUFDaEMsMkJBQUssV0FBWSxDQUFDLENBQUM7QUFJbkIsYUFBSyxnQkFBZ0IsWUFBWSxLQUFLLFFBQVE7QUFBQSxNQUNoRDtBQUFBLE1BQ0EsSUFBVyxXQUFRO0FBQ2pCLGVBQU8sbUJBQUssY0FBYSxLQUFLLHFCQUFBO0FBQUEsTUFDaEM7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLE1BT1UsdUJBQW9CO0FBQzVCLGVBQU87QUFBQSxNQUNUO0FBQUEsSUFBQSxHQVJBOztrQ0FYQyxTQUFTLEVBQUUsTUFBTSxTQUFTLFNBQVMsS0FBQSxDQUFNLENBQUM7QUFDM0MsbUJBQUEsSUFBQSxNQUFBLDBCQUFBLEVBQUEsTUFBQSxVQUFBLE1BQUEsWUFBQSxRQUFBLE9BQUEsU0FBQSxPQUFBLFFBQUEsRUFBQSxLQUFBLENBQUEsUUFBQSxjQUFBLEtBQUEsS0FBQSxDQUFBLEtBQUEsVUFBQTtBQUFBLFlBQVcsV0FBUTtBQUFBLE1BQUEsS0FBQSxVQUFBLFVBQUEsR0FBQSxNQUFBLDBCQUFBOztVQVBOO0FBQUE7QUE0QmYsU0FBTztBQUNUO0FBTU8sTUFBTSw4QkFBOEIsQ0FHekMsZUFDNEQ7TUFDN0MsaUNBQTZCLE1BQUE7O3NCQUNsQzs7OztBQURLLFdBQUEsbUJBQ0wsWUFBVTtBQUFBOztBQU1sQixrRUFBQSxrQkFBQSxNQUFBLG1DQUErQyxLQUFLOzs7O01BQXBELElBQWdCLHNCQUFtQjtBQUFBLGVBQUEsbUJBQUE7QUFBQSxNQUFBO0FBQUEsTUFBbkMsSUFBZ0Isb0JBQW1CLE9BQUE7QUFBQSwyQkFBQSx1Q0FBQTtBQUFBLE1BQUE7QUFBQSxPQUFuQzs7QUFGQyx3Q0FBQSxDQUFBLGFBQ0EsU0FBUyxFQUFFLFdBQVcsd0JBQXdCLE1BQU0sU0FBUyxTQUFTLEtBQUEsQ0FBTSxDQUFDO0FBQzlFLG1CQUFBLElBQUEsTUFBQSxpQ0FBQSxFQUFBLE1BQUEsWUFBQSxNQUFBLHVCQUFBLFFBQUEsT0FBQSxTQUFBLE9BQUEsUUFBQSxFQUFBLEtBQUEsQ0FBQSxRQUFBLHlCQUFBLEtBQUEsS0FBQSxDQUFBLFFBQUEsSUFBZ0IscUJBQW1CLEtBQUEsQ0FBQSxLQUFBLFVBQUE7QUFBQSxZQUFuQixzQkFBbUI7QUFBQSxNQUFBLEtBQUEsVUFBQSxVQUFBLEdBQUEsbUNBQUEsc0NBQUE7O1VBUHRCO0FBQUE7QUFVZixTQUFPO0FBRVQ7QUFHTyxNQUFNLGlDQUFpQyxDQUc1QyxlQUNtRjtBQUFBLEVBQ25GLE1BQWUsa0NBQ0wsNEJBQTRCLGlCQUFpQixVQUFVLENBQUMsRUFBQztBQUFBLElBRzlDLFdBQVcsbUJBQXVDO0FBQ25FLFlBQU0sV0FBVyxpQkFBaUI7QUFFbEMsVUFBSSxrQkFBa0IsSUFBSSxxQkFBcUIsR0FBRztBQUNoRCxhQUFLLFVBQVUsZUFBZSxLQUFLLHNCQUFzQixTQUFTO0FBQUEsTUFDcEU7QUFFQSxVQUFJLENBQUMsa0JBQWtCLElBQUksVUFBVSxHQUFHO0FBQ3RDO0FBQUEsTUFDRjtBQUVBLFVBQUksQ0FBQyxLQUFLLFVBQVU7QUFDbEIsYUFBSyxhQUFhLFlBQVksR0FBRztBQUFBLE1BQ25DLE9BQU87QUFDTCxhQUFLLGdCQUFnQixVQUFVO0FBQUEsTUFDakM7QUFBQSxJQUNGO0FBQUEsRUFBQTtBQUVGLFNBQU87QUFJVDsifQ==
107
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzYWJsZWQtbWl4aW4uanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb3JlL21peGlucy9kaXNhYmxlZC1taXhpbi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IExpdEVsZW1lbnQsIFByb3BlcnR5VmFsdWVzIH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IHByb3BlcnR5IH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuXG5pbXBvcnQgeyBmb3JjZVR5cGUgfSBmcm9tICcuLi9kZWNvcmF0b3JzLnRzJztcblxuaW1wb3J0IHR5cGUgeyBBYnN0cmFjdENvbnN0cnVjdG9yIH0gZnJvbSAnLi9jb25zdHJ1Y3Rvci50cyc7XG5pbXBvcnQgdHlwZSB7IFNiYkVsZW1lbnRJbnRlcm5hbHNNaXhpblR5cGUgfSBmcm9tICcuL2VsZW1lbnQtaW50ZXJuYWxzLW1peGluLnRzJztcblxuZXhwb3J0IGRlY2xhcmUgY2xhc3MgU2JiRGlzYWJsZWRNaXhpblR5cGUge1xuICBwdWJsaWMgYWNjZXNzb3IgZGlzYWJsZWQ6IGJvb2xlYW47XG4gIHByb3RlY3RlZCBpc0Rpc2FibGVkRXh0ZXJuYWxseSgpOiBib29sZWFuO1xufVxuXG5leHBvcnQgZGVjbGFyZSBjbGFzcyBTYmJEaXNhYmxlZEludGVyYWN0aXZlTWl4aW5UeXBlIHtcbiAgcHVibGljIGFjY2Vzc29yIGRpc2FibGVkSW50ZXJhY3RpdmU6IGJvb2xlYW47XG59XG5cbi8qKlxuICogRW5oYW5jZSB5b3VyIGNvbXBvbmVudCB3aXRoIGEgZGlzYWJsZWQgcHJvcGVydHkuXG4gKi9cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbmV4cG9ydCBjb25zdCBTYmJEaXNhYmxlZE1peGluID0gPFQgZXh0ZW5kcyBBYnN0cmFjdENvbnN0cnVjdG9yPExpdEVsZW1lbnQ+PihcbiAgc3VwZXJDbGFzczogVCxcbik6IEFic3RyYWN0Q29uc3RydWN0b3I8U2JiRGlzYWJsZWRNaXhpblR5cGU+ICYgVCA9PiB7XG4gIGFic3RyYWN0IGNsYXNzIFNiYkRpc2FibGVkRWxlbWVudCBleHRlbmRzIHN1cGVyQ2xhc3MgaW1wbGVtZW50cyBQYXJ0aWFsPFNiYkRpc2FibGVkTWl4aW5UeXBlPiB7XG4gICAgLyoqXG4gICAgICogV2hldGhlciB0aGUgY29tcG9uZW50IGlzIGRpc2FibGVkLlxuICAgICAqIEBkZWZhdWx0IGZhbHNlXG4gICAgICovXG4gICAgLy8gVE9ETzogcmVtb3ZlIHJlZmxlY3Q6IHRydWUgYW5kIG1hbmFnZSBvbmx5IGluIHNldHRlci5cbiAgICBAcHJvcGVydHkoeyB0eXBlOiBCb29sZWFuLCByZWZsZWN0OiB0cnVlIH0pXG4gICAgcHVibGljIHNldCBkaXNhYmxlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgdGhpcy4jZGlzYWJsZWQgPSAhIXZhbHVlO1xuXG4gICAgICAvLyBUaGUgYXR0cmlidXRlIG5lZWRzIHRvIGJlIHJlZmxlY3RlZCBzeW5jaHJvbm91c2x5IChsaWtlIG5hdGl2ZSlcbiAgICAgIC8vIFRPRE86IG9ubHkgZGlzYWJsZWQgb2YgdGhlIGFjdHVhbCBjb21wb25lbnQgc2hvdWxkIGJlIHJlZmxlY3RlZCwgd2l0aG91dCBjb25zaWRlcmluZyB0aGlzLmlzRGlzYWJsZWRFeHRlcm5hbGx5KClcbiAgICAgIHRoaXMudG9nZ2xlQXR0cmlidXRlKCdkaXNhYmxlZCcsIHRoaXMuZGlzYWJsZWQpO1xuICAgIH1cbiAgICBwdWJsaWMgZ2V0IGRpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgICAgcmV0dXJuIHRoaXMuI2Rpc2FibGVkIHx8IHRoaXMuaXNEaXNhYmxlZEV4dGVybmFsbHkoKTtcbiAgICB9XG4gICAgI2Rpc2FibGVkID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBXaWxsIGJlIHVzZWQgYXMgJ29yJyBjaGVjayB0byB0aGUgY3VycmVudCBkaXNhYmxlZCBzdGF0ZS5cbiAgICAgKiBDYW4gZS5nLiBiZSB1c2VkIHRvIHJlYWQgZGlzYWJsZWQgc3RhdGUgb2YgYSBncm91cC5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgaXNEaXNhYmxlZEV4dGVybmFsbHkoKTogYm9vbGVhbiB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIFNiYkRpc2FibGVkRWxlbWVudCBhcyB1bmtub3duIGFzIEFic3RyYWN0Q29uc3RydWN0b3I8U2JiRGlzYWJsZWRNaXhpblR5cGU+ICYgVDtcbn07XG5cbi8qKlxuICogRW5oYW5jZSB5b3VyIGNvbXBvbmVudCB3aXRoIGEgZGlzYWJsZWQgaW50ZXJhY3RpdmUgcHJvcGVydHkuXG4gKi9cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbmV4cG9ydCBjb25zdCBTYmJEaXNhYmxlZEludGVyYWN0aXZlTWl4aW4gPSA8XG4gIFQgZXh0ZW5kcyBBYnN0cmFjdENvbnN0cnVjdG9yPExpdEVsZW1lbnQgJiBTYmJEaXNhYmxlZE1peGluVHlwZT4sXG4+KFxuICBzdXBlckNsYXNzOiBULFxuKTogQWJzdHJhY3RDb25zdHJ1Y3RvcjxTYmJEaXNhYmxlZEludGVyYWN0aXZlTWl4aW5UeXBlPiAmIFQgPT4ge1xuICBhYnN0cmFjdCBjbGFzcyBTYmJEaXNhYmxlZEludGVyYWN0aXZlRWxlbWVudFxuICAgIGV4dGVuZHMgc3VwZXJDbGFzc1xuICAgIGltcGxlbWVudHMgUGFydGlhbDxTYmJEaXNhYmxlZEludGVyYWN0aXZlTWl4aW5UeXBlPlxuICB7XG4gICAgLyoqIFdoZXRoZXIgdGhlIGJ1dHRvbiBzaG91bGQgYmUgYXJpYS1kaXNhYmxlZCBidXQgc3RheSBpbnRlcmFjdGl2ZS4gKi9cbiAgICBAZm9yY2VUeXBlKClcbiAgICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdkaXNhYmxlZC1pbnRlcmFjdGl2ZScsIHR5cGU6IEJvb2xlYW4sIHJlZmxlY3Q6IHRydWUgfSlcbiAgICBwdWJsaWMgYWNjZXNzb3IgZGlzYWJsZWRJbnRlcmFjdGl2ZTogYm9vbGVhbiA9IGZhbHNlO1xuICB9XG5cbiAgcmV0dXJuIFNiYkRpc2FibGVkSW50ZXJhY3RpdmVFbGVtZW50IGFzIHVua25vd24gYXMgQWJzdHJhY3RDb25zdHJ1Y3RvcjxTYmJEaXNhYmxlZEludGVyYWN0aXZlTWl4aW5UeXBlPiAmXG4gICAgVDtcbn07XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbmV4cG9ydCBjb25zdCBTYmJEaXNhYmxlZFRhYkluZGV4QWN0aW9uTWl4aW4gPSA8XG4gIFQgZXh0ZW5kcyBBYnN0cmFjdENvbnN0cnVjdG9yPExpdEVsZW1lbnQgJiBTYmJFbGVtZW50SW50ZXJuYWxzTWl4aW5UeXBlPixcbj4oXG4gIHN1cGVyQ2xhc3M6IFQsXG4pOiBBYnN0cmFjdENvbnN0cnVjdG9yPFNiYkRpc2FibGVkTWl4aW5UeXBlICYgU2JiRGlzYWJsZWRJbnRlcmFjdGl2ZU1peGluVHlwZT4gJiBUID0+IHtcbiAgYWJzdHJhY3QgY2xhc3MgU2JiRGlzYWJsZWRUYWJJbmRleEFjdGlvblxuICAgIGV4dGVuZHMgU2JiRGlzYWJsZWRJbnRlcmFjdGl2ZU1peGluKFNiYkRpc2FibGVkTWl4aW4oc3VwZXJDbGFzcykpXG4gICAgaW1wbGVtZW50cyBTYmJEaXNhYmxlZE1peGluVHlwZSwgU2JiRGlzYWJsZWRJbnRlcmFjdGl2ZU1peGluVHlwZVxuICB7XG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIHdpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXM6IFByb3BlcnR5VmFsdWVzPHRoaXM+KTogdm9pZCB7XG4gICAgICBzdXBlci53aWxsVXBkYXRlKGNoYW5nZWRQcm9wZXJ0aWVzKTtcblxuICAgICAgaWYgKGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygnZGlzYWJsZWRJbnRlcmFjdGl2ZScpKSB7XG4gICAgICAgIHRoaXMuaW50ZXJuYWxzLmFyaWFEaXNhYmxlZCA9IHRoaXMuZGlzYWJsZWRJbnRlcmFjdGl2ZSA/ICd0cnVlJyA6IG51bGw7XG4gICAgICB9XG5cbiAgICAgIGlmICghY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdkaXNhYmxlZCcpKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKCF0aGlzLmRpc2FibGVkKSB7XG4gICAgICAgIHRoaXMuc2V0QXR0cmlidXRlKCd0YWJpbmRleCcsICcwJyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnJlbW92ZUF0dHJpYnV0ZSgndGFiaW5kZXgnKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcmV0dXJuIFNiYkRpc2FibGVkVGFiSW5kZXhBY3Rpb24gYXMgQWJzdHJhY3RDb25zdHJ1Y3RvcjxcbiAgICBTYmJEaXNhYmxlZE1peGluVHlwZSAmIFNiYkRpc2FibGVkSW50ZXJhY3RpdmVNaXhpblR5cGVcbiAgPiAmXG4gICAgVDtcbn07XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQXFCTyxNQUFNLG1CQUFtQixDQUM5QixlQUNpRDtNQUNsQyxzQkFBa0IsTUFBQTs7c0JBQVM7OztBQUEzQixXQUFBLG1CQUEyQixZQUFVO0FBQUEsTUFBckM7QUFBQTtBQWlCYix1Q0FqQmEsa0JBQUEsTUFBQSwwQkFBQSxHQWlCRDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLE1BVlosSUFBVyxTQUFTLE9BQWM7QUFDaEMsMkJBQUssV0FBWSxDQUFDLENBQUM7QUFJbkIsYUFBSyxnQkFBZ0IsWUFBWSxLQUFLLFFBQVE7QUFBQSxNQUNoRDtBQUFBLE1BQ0EsSUFBVyxXQUFRO0FBQ2pCLGVBQU8sbUJBQUssY0FBYSxLQUFLLHFCQUFBO0FBQUEsTUFDaEM7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLE1BT1UsdUJBQW9CO0FBQzVCLGVBQU87QUFBQSxNQUNUO0FBQUEsSUFBQSxHQVJBOztrQ0FYQyxTQUFTLEVBQUUsTUFBTSxTQUFTLFNBQVMsS0FBQSxDQUFNLENBQUM7QUFDM0MsbUJBQUEsSUFBQSxNQUFBLDBCQUFBLEVBQUEsTUFBQSxVQUFBLE1BQUEsWUFBQSxRQUFBLE9BQUEsU0FBQSxPQUFBLFFBQUEsRUFBQSxLQUFBLENBQUEsUUFBQSxjQUFBLEtBQUEsS0FBQSxDQUFBLEtBQUEsVUFBQTtBQUFBLFlBQVcsV0FBUTtBQUFBLE1BQUEsS0FBQSxVQUFBLFVBQUEsR0FBQSxNQUFBLDBCQUFBOztVQVBOO0FBQUE7QUE0QmYsU0FBTztBQUNUO0FBTU8sTUFBTSw4QkFBOEIsQ0FHekMsZUFDNEQ7TUFDN0MsaUNBQTZCLE1BQUE7O3NCQUNsQzs7OztBQURLLFdBQUEsbUJBQ0wsWUFBVTtBQUFBOztBQU1sQixrRUFBQSxrQkFBQSxNQUFBLG1DQUErQyxLQUFLOzs7O01BQXBELElBQWdCLHNCQUFtQjtBQUFBLGVBQUEsbUJBQUE7QUFBQSxNQUFBO0FBQUEsTUFBbkMsSUFBZ0Isb0JBQW1CLE9BQUE7QUFBQSwyQkFBQSx1Q0FBQTtBQUFBLE1BQUE7QUFBQSxPQUFuQzs7QUFGQyx3Q0FBQSxDQUFBLGFBQ0EsU0FBUyxFQUFFLFdBQVcsd0JBQXdCLE1BQU0sU0FBUyxTQUFTLEtBQUEsQ0FBTSxDQUFDO0FBQzlFLG1CQUFBLElBQUEsTUFBQSxpQ0FBQSxFQUFBLE1BQUEsWUFBQSxNQUFBLHVCQUFBLFFBQUEsT0FBQSxTQUFBLE9BQUEsUUFBQSxFQUFBLEtBQUEsQ0FBQSxRQUFBLHlCQUFBLEtBQUEsS0FBQSxDQUFBLFFBQUEsSUFBZ0IscUJBQW1CLEtBQUEsQ0FBQSxLQUFBLFVBQUE7QUFBQSxZQUFuQixzQkFBbUI7QUFBQSxNQUFBLEtBQUEsVUFBQSxVQUFBLEdBQUEsbUNBQUEsc0NBQUE7O1VBUHRCO0FBQUE7QUFVZixTQUFPO0FBRVQ7QUFHTyxNQUFNLGlDQUFpQyxDQUc1QyxlQUNtRjtBQUFBLEVBQ25GLE1BQWUsa0NBQ0wsNEJBQTRCLGlCQUFpQixVQUFVLENBQUMsRUFBQztBQUFBLElBRzlDLFdBQVcsbUJBQXVDO0FBQ25FLFlBQU0sV0FBVyxpQkFBaUI7QUFFbEMsVUFBSSxrQkFBa0IsSUFBSSxxQkFBcUIsR0FBRztBQUNoRCxhQUFLLFVBQVUsZUFBZSxLQUFLLHNCQUFzQixTQUFTO0FBQUEsTUFDcEU7QUFFQSxVQUFJLENBQUMsa0JBQWtCLElBQUksVUFBVSxHQUFHO0FBQ3RDO0FBQUEsTUFDRjtBQUVBLFVBQUksQ0FBQyxLQUFLLFVBQVU7QUFDbEIsYUFBSyxhQUFhLFlBQVksR0FBRztBQUFBLE1BQ25DLE9BQU87QUFDTCxhQUFLLGdCQUFnQixVQUFVO0FBQUEsTUFDakM7QUFBQSxJQUNGO0FBQUEsRUFBQTtBQUVGLFNBQU87QUFJVDsifQ==
@@ -1,5 +1,5 @@
1
1
  import { LitElement } from 'lit';
2
- import { AbstractConstructor } from './constructor.js';
2
+ import { AbstractConstructor } from './constructor.ts';
3
3
  declare global {
4
4
  interface ARIAMixin {
5
5
  ariaActiveDescendantElement: Element | null;
@@ -11,12 +11,25 @@ declare global {
11
11
  ariaOwnsElements: readonly Element[] | null;
12
12
  }
13
13
  }
14
+ export interface SbbStateController {
15
+ add(value: string): this;
16
+ delete(value: string): boolean;
17
+ has(value: string): boolean;
18
+ toggle(value: string, force?: boolean): void;
19
+ }
20
+ /**
21
+ * Creates a state controller for the given element.
22
+ * NOT INTENDED TO BE USED BY CONSUMERS!
23
+ * @internal
24
+ */
25
+ export declare function ɵstateController(element: Element): SbbStateController;
26
+ export declare function ɵstateController(element: Element | undefined | null): SbbStateController | null;
14
27
  export interface SbbElementInternalsConstructor {
15
28
  role?: ElementInternals['role'];
16
29
  }
17
30
  export declare abstract class SbbElementInternalsMixinType {
18
31
  protected readonly internals: ElementInternals;
19
- protected toggleState(state: string, force?: boolean): void;
32
+ protected toggleState(value: string, force?: boolean): void;
20
33
  }
21
34
  /**
22
35
  * Appends the given elements to the given aria value and returns the
@@ -1 +1 @@
1
- {"version":3,"file":"element-internals-mixin.d.ts","sourceRoot":"","sources":["../../../../../src/elements/core/mixins/element-internals-mixin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,UAAU,EAA2B,MAAM,KAAK,CAAC;AAIzE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AA8C5D,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,SAAS;QACjB,2BAA2B,EAAE,OAAO,GAAG,IAAI,CAAC;QAC5C,oBAAoB,EAAE,SAAS,OAAO,EAAE,GAAG,IAAI,CAAC;QAChD,uBAAuB,EAAE,SAAS,OAAO,EAAE,GAAG,IAAI,CAAC;QACnD,mBAAmB,EAAE,SAAS,OAAO,EAAE,GAAG,IAAI,CAAC;QAC/C,wBAAwB,EAAE,SAAS,OAAO,EAAE,GAAG,IAAI,CAAC;QACpD,sBAAsB,EAAE,SAAS,OAAO,EAAE,GAAG,IAAI,CAAC;QAClD,gBAAgB,EAAE,SAAS,OAAO,EAAE,GAAG,IAAI,CAAC;KAC7C;CACF;AAyKD,MAAM,WAAW,8BAA8B;IAC7C,IAAI,CAAC,EAAE,gBAAgB,CAAC,MAAM,CAAC,CAAC;CACjC;AAED,MAAM,CAAC,OAAO,CAAC,QAAQ,OAAO,4BAA4B;IACxD,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,gBAAgB,CAAC;IAC/C,SAAS,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,IAAI;CAC5D;AAED;;;GAGG;AACH,eAAO,MAAM,kBAAkB,GAC7B,WAAW,SAAS,OAAO,EAAE,GAAG,IAAI,EACpC,GAAG,aAAa,CAAC,OAAO,GAAG,IAAI,CAAC,EAAE,KACjC,OAAO,EAAE,GAAG,IAGd,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,kBAAkB,GAC7B,WAAW,SAAS,OAAO,EAAE,GAAG,IAAI,EACpC,GAAG,mBAAmB,CAAC,OAAO,GAAG,IAAI,CAAC,EAAE,KACvC,OAAO,EAAE,GAAG,IAId,CAAC;AAEF;;;GAGG;AAEH,eAAO,MAAM,wBAAwB,GAAI,CAAC,SAAS,mBAAmB,CAAC,UAAU,CAAC,EAChF,YAAY,CAAC,KACZ,mBAAmB,CAAC,4BAA4B,CAAC,GAAG,CAAC,GAAG,8BA4C1D,CAAC"}
1
+ {"version":3,"file":"element-internals-mixin.d.ts","sourceRoot":"","sources":["../../../../../src/elements/core/mixins/element-internals-mixin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,UAAU,EAA2B,MAAM,KAAK,CAAC;AAIzE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AA8D5D,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,SAAS;QACjB,2BAA2B,EAAE,OAAO,GAAG,IAAI,CAAC;QAC5C,oBAAoB,EAAE,SAAS,OAAO,EAAE,GAAG,IAAI,CAAC;QAChD,uBAAuB,EAAE,SAAS,OAAO,EAAE,GAAG,IAAI,CAAC;QACnD,mBAAmB,EAAE,SAAS,OAAO,EAAE,GAAG,IAAI,CAAC;QAC/C,wBAAwB,EAAE,SAAS,OAAO,EAAE,GAAG,IAAI,CAAC;QACpD,sBAAsB,EAAE,SAAS,OAAO,EAAE,GAAG,IAAI,CAAC;QAClD,gBAAgB,EAAE,SAAS,OAAO,EAAE,GAAG,IAAI,CAAC;KAC7C;CACF;AA2KD,MAAM,WAAW,kBAAkB;IACjC,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;IAC/B,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;IAC5B,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;CAC9C;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,kBAAkB,CAAC;AACvE,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,SAAS,GAAG,IAAI,GAAG,kBAAkB,GAAG,IAAI,CAAC;AAqCjG,MAAM,WAAW,8BAA8B;IAC7C,IAAI,CAAC,EAAE,gBAAgB,CAAC,MAAM,CAAC,CAAC;CACjC;AAED,MAAM,CAAC,OAAO,CAAC,QAAQ,OAAO,4BAA4B;IACxD,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,gBAAgB,CAAC;IAC/C,SAAS,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,IAAI;CAC5D;AAED;;;GAGG;AACH,eAAO,MAAM,kBAAkB,GAC7B,WAAW,SAAS,OAAO,EAAE,GAAG,IAAI,EACpC,GAAG,aAAa,CAAC,OAAO,GAAG,IAAI,CAAC,EAAE,KACjC,OAAO,EAAE,GAAG,IAGd,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,kBAAkB,GAC7B,WAAW,SAAS,OAAO,EAAE,GAAG,IAAI,EACpC,GAAG,mBAAmB,CAAC,OAAO,GAAG,IAAI,CAAC,EAAE,KACvC,OAAO,EAAE,GAAG,IAId,CAAC;AAEF;;;GAGG;AAEH,eAAO,MAAM,wBAAwB,GAAI,CAAC,SAAS,mBAAmB,CAAC,UAAU,CAAC,EAChF,YAAY,CAAC,KACZ,mBAAmB,CAAC,4BAA4B,CAAC,GAAG,CAAC,GAAG,8BA6C1D,CAAC"}
@@ -1,13 +1,17 @@
1
1
  import { isServer } from "lit";
2
- import { SbbSlotStateController } from "../controllers.js";
3
- const CustomStateSetPolyfill = isServer || !CSS.supports("selector(:state(loading))") ? class CustomStateSet extends Set {
2
+ import { SbbSlotStateController } from "../controllers/slot-state-controller.js";
3
+ const CustomStateSetPolyfill = isServer || !CSS.supports("selector(:is(:state(loading),[state--loading]))") ? class CustomStateSet extends Set {
4
4
  constructor(_host) {
5
5
  super();
6
6
  this._host = _host;
7
+ this._applied = isServer;
7
8
  this._host.addController(this);
9
+ if (!isServer) {
10
+ Promise.resolve().then(() => this._applyStates());
11
+ }
8
12
  }
9
13
  add(state) {
10
- if (this._host.isConnected) {
14
+ if (this._applied) {
11
15
  this._toggleState(state, true);
12
16
  }
13
17
  return super.add(state);
@@ -20,11 +24,18 @@ const CustomStateSetPolyfill = isServer || !CSS.supports("selector(:state(loadin
20
24
  this.forEach((state) => this.delete(state));
21
25
  }
22
26
  hostConnected() {
23
- this.forEach((state) => this._toggleState(state, true));
27
+ this._applyStates();
24
28
  }
25
29
  _toggleState(state, enabled) {
26
30
  this._host.toggleAttribute(`state--${state}`, enabled);
27
31
  }
32
+ _applyStates() {
33
+ if (this._applied) {
34
+ return;
35
+ }
36
+ this._applied = true;
37
+ this.forEach((state) => this._toggleState(state, true));
38
+ }
28
39
  } : null;
29
40
  if (!isServer) {
30
41
  let nextId = 0;
@@ -136,6 +147,41 @@ if (!isServer) {
136
147
  }
137
148
  }
138
149
  }
150
+ const attachedElementInternals = /* @__PURE__ */ new WeakMap();
151
+ function ɵstateController(element) {
152
+ if (!element) {
153
+ return null;
154
+ }
155
+ const states = attachedElementInternals.get(element)?.states;
156
+ const toggle = function(value, force) {
157
+ if (force || force !== false && !this.has(value)) {
158
+ this.add(value);
159
+ } else {
160
+ this.delete(value);
161
+ }
162
+ };
163
+ if (states) {
164
+ return {
165
+ add(value) {
166
+ states.add(value);
167
+ return this;
168
+ },
169
+ delete: (value) => states.delete(value),
170
+ has: (value) => states.has(value),
171
+ toggle
172
+ };
173
+ } else {
174
+ return {
175
+ add(value) {
176
+ element.toggleAttribute(`state--${value}`, true);
177
+ return this;
178
+ },
179
+ delete: (value) => element.toggleAttribute(`state--${value}`, false),
180
+ has: (value) => element.hasAttribute(`state--${value}`),
181
+ toggle
182
+ };
183
+ }
184
+ }
139
185
  const appendAriaElements = (ariaValue, ...newElements) => {
140
186
  const elements = newElements.filter((v) => !!v);
141
187
  return ariaValue?.length ? ariaValue.concat(elements) : newElements.length ? elements : null;
@@ -150,6 +196,7 @@ const SbbElementInternalsMixin = (superClass) => {
150
196
  constructor(...args) {
151
197
  super(...args);
152
198
  this.internals = this.attachInternals();
199
+ attachedElementInternals.set(this, this.internals);
153
200
  if (CustomStateSetPolyfill) {
154
201
  Object.defineProperty(this.internals, "states", {
155
202
  value: new CustomStateSetPolyfill(this),
@@ -169,11 +216,11 @@ const SbbElementInternalsMixin = (superClass) => {
169
216
  }
170
217
  this.addController(new SbbSlotStateController(this, this.internals));
171
218
  }
172
- toggleState(state, force) {
173
- if (force || force !== false && !this.internals.states.has(state)) {
174
- this.internals.states.add(state);
219
+ toggleState(value, force) {
220
+ if (force || force !== false && !this.internals.states.has(value)) {
221
+ this.internals.states.add(value);
175
222
  } else {
176
- this.internals.states.delete(state);
223
+ this.internals.states.delete(value);
177
224
  }
178
225
  }
179
226
  }
@@ -182,6 +229,7 @@ const SbbElementInternalsMixin = (superClass) => {
182
229
  export {
183
230
  SbbElementInternalsMixin,
184
231
  appendAriaElements,
185
- removeAriaElements
232
+ removeAriaElements,
233
+ ɵstateController
186
234
  };
187
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlbWVudC1pbnRlcm5hbHMtbWl4aW4uanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb3JlL21peGlucy9lbGVtZW50LWludGVybmFscy1taXhpbi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc1NlcnZlciwgdHlwZSBMaXRFbGVtZW50LCB0eXBlIFJlYWN0aXZlQ29udHJvbGxlciB9IGZyb20gJ2xpdCc7XG5cbmltcG9ydCB7IFNiYlNsb3RTdGF0ZUNvbnRyb2xsZXIgfSBmcm9tICcuLi9jb250cm9sbGVycy5qcyc7XG5cbmltcG9ydCB0eXBlIHsgQWJzdHJhY3RDb25zdHJ1Y3RvciB9IGZyb20gJy4vY29uc3RydWN0b3IuanMnO1xuXG4vLyBNb3N0IG9mIG91ciB0YXJnZXQgYnJvd3NlcnMgc3VwcG9ydCB0aGUgOnN0YXRlKCkgcHNldWRvIGNsYXNzLCBidXQgbm90IGFsbCBvZiB0aGVtLlxuLy8gV2UgcGF0Y2ggdGhlIHN0YXRlcyBwcm9wZXJ0eSBvZiB0aGUgZWxlbWVudCBpbnRlcm5hbHMgdG8gdXNlIGF0dHJpYnV0ZXMgaW5zdGVhZCxcbi8vIGlmIDpzdGF0ZSgpIGlzIG5vdCBzdXBwb3J0ZWQuXG4vLyBOb3RlIHRoYXQgZm9yIFNTUiwgdGhlIHN0YXRlcyBwcm9wZXJ0eSBpcyBhIHNpbXBsZSBTZXQsIGltcGxlbWVudGVkIGluIExpdCBTU1IuXG4vLyBUT0RPOiBSZW1vdmUgaW4gMjAyNi5cbnR5cGUgQ3VzdG9tU3RhdGVTZXRJbnRlcmZhY2UgPSBDdXN0b21TdGF0ZVNldDtcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbmNvbnN0IEN1c3RvbVN0YXRlU2V0UG9seWZpbGw6IChuZXcgKGhvc3Q6IExpdEVsZW1lbnQpID0+IEN1c3RvbVN0YXRlU2V0SW50ZXJmYWNlKSB8IG51bGwgPVxuICBpc1NlcnZlciB8fCAhQ1NTLnN1cHBvcnRzKCdzZWxlY3Rvcig6c3RhdGUobG9hZGluZykpJylcbiAgICA/IGNsYXNzIEN1c3RvbVN0YXRlU2V0XG4gICAgICAgIGV4dGVuZHMgU2V0PHN0cmluZz5cbiAgICAgICAgaW1wbGVtZW50cyBDdXN0b21TdGF0ZVNldEludGVyZmFjZSwgUmVhY3RpdmVDb250cm9sbGVyXG4gICAgICB7XG4gICAgICAgIHB1YmxpYyBjb25zdHJ1Y3Rvcihwcml2YXRlIF9ob3N0OiBMaXRFbGVtZW50KSB7XG4gICAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgICB0aGlzLl9ob3N0LmFkZENvbnRyb2xsZXIodGhpcyk7XG4gICAgICAgIH1cblxuICAgICAgICBwdWJsaWMgb3ZlcnJpZGUgYWRkKHN0YXRlOiBzdHJpbmcpOiB0aGlzIHtcbiAgICAgICAgICBpZiAodGhpcy5faG9zdC5pc0Nvbm5lY3RlZCkge1xuICAgICAgICAgICAgdGhpcy5fdG9nZ2xlU3RhdGUoc3RhdGUsIHRydWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gc3VwZXIuYWRkKHN0YXRlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHB1YmxpYyBvdmVycmlkZSBkZWxldGUoc3RhdGU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgICAgICAgIHRoaXMuX3RvZ2dsZVN0YXRlKHN0YXRlLCBmYWxzZSk7XG4gICAgICAgICAgcmV0dXJuIHN1cGVyLmRlbGV0ZShzdGF0ZSk7XG4gICAgICAgIH1cblxuICAgICAgICBwdWJsaWMgb3ZlcnJpZGUgY2xlYXIoKTogdm9pZCB7XG4gICAgICAgICAgdGhpcy5mb3JFYWNoKChzdGF0ZSkgPT4gdGhpcy5kZWxldGUoc3RhdGUpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHB1YmxpYyBob3N0Q29ubmVjdGVkKCk6IHZvaWQge1xuICAgICAgICAgIHRoaXMuZm9yRWFjaCgoc3RhdGUpID0+IHRoaXMuX3RvZ2dsZVN0YXRlKHN0YXRlLCB0cnVlKSk7XG4gICAgICAgIH1cblxuICAgICAgICBwcml2YXRlIF90b2dnbGVTdGF0ZShzdGF0ZTogc3RyaW5nLCBlbmFibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgICAgdGhpcy5faG9zdC50b2dnbGVBdHRyaWJ1dGUoYHN0YXRlLS0ke3N0YXRlfWAsIGVuYWJsZWQpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgOiBudWxsO1xuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBBUklBTWl4aW4ge1xuICAgIGFyaWFBY3RpdmVEZXNjZW5kYW50RWxlbWVudDogRWxlbWVudCB8IG51bGw7XG4gICAgYXJpYUNvbnRyb2xzRWxlbWVudHM6IHJlYWRvbmx5IEVsZW1lbnRbXSB8IG51bGw7XG4gICAgYXJpYURlc2NyaWJlZEJ5RWxlbWVudHM6IHJlYWRvbmx5IEVsZW1lbnRbXSB8IG51bGw7XG4gICAgYXJpYURldGFpbHNFbGVtZW50czogcmVhZG9ubHkgRWxlbWVudFtdIHwgbnVsbDtcbiAgICBhcmlhRXJyb3JNZXNzYWdlRWxlbWVudHM6IHJlYWRvbmx5IEVsZW1lbnRbXSB8IG51bGw7XG4gICAgYXJpYUxhYmVsbGVkQnlFbGVtZW50czogcmVhZG9ubHkgRWxlbWVudFtdIHwgbnVsbDtcbiAgICBhcmlhT3duc0VsZW1lbnRzOiByZWFkb25seSBFbGVtZW50W10gfCBudWxsO1xuICB9XG59XG5cbmlmICghaXNTZXJ2ZXIpIHtcbiAgLy8gVGhpcyBpcyBhIHBvbHlmaWxsIGZvciB0aGUgYXJpYSBlbGVtZW50cyBwcm9wZXJ0aWVzIG9uIEVsZW1lbnRJbnRlcm5hbHMgYW5kIEVsZW1lbnQuXG4gIGxldCBuZXh0SWQgPSAwO1xuICBjb25zdCByZXNvbHZlSG9zdCA9IChvcmlnaW46IEVsZW1lbnRJbnRlcm5hbHMgfCBFbGVtZW50KTogRWxlbWVudCA9PlxuICAgIG9yaWdpbi5zaGFkb3dSb290Py5ob3N0ID8/XG4gICAgKG9yaWdpbiBpbnN0YW5jZW9mIEVsZW1lbnRcbiAgICAgID8gb3JpZ2luXG4gICAgICA6ICgoKSA9PiB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdVbmFibGUgdG8gcmVzb2x2ZSByZWxhdGVkIGVsZW1lbnQhIFRoaXMgc2hvdWxkIG5ldmVyIGhhcHBlbi4nKTtcbiAgICAgICAgfSkoKSk7XG4gIGNvbnN0IG9ic2VydmVyT3B0aW9uczogTXV0YXRpb25PYnNlcnZlckluaXQgPSB7IGF0dHJpYnV0ZXM6IHRydWUsIGF0dHJpYnV0ZUZpbHRlcjogWydpZCddIH07XG4gIGNvbnN0IGFzc2lnbkVsZW1lbnQgPSAoXG4gICAgaG9zdDogRWxlbWVudCxcbiAgICBhdHRyaWJ1dGU6IHN0cmluZyxcbiAgICBlbGVtZW50czogUmVjb3JkPHN0cmluZywgRWxlbWVudD4sXG4gICk6IHZvaWQgPT4ge1xuICAgIC8vIEluIGNhc2UgYm90aCBFbGVtZW50IGFuZCBFbGVtZW50SW50ZXJuYWxzIHByb3BlcnRpZXMgYXJlIHNldCxcbiAgICAvLyB0aGUgZWxlbWVudCByZWZlcmVuY2UgZnJvbSBFbGVtZW50IGhhcyBwcmlvcml0eS5cbiAgICBjb25zdCBhY3RpdmVFbGVtZW50ID0gZWxlbWVudHNbRWxlbWVudC5uYW1lXSA/PyBlbGVtZW50c1tFbGVtZW50SW50ZXJuYWxzLm5hbWVdO1xuICAgIGhvc3Quc2V0QXR0cmlidXRlKGF0dHJpYnV0ZSwgKGFjdGl2ZUVsZW1lbnQuaWQgfHw9IGBhcmlhLXJlZi0ke25leHRJZCsrfWApKTtcbiAgfTtcbiAgY29uc3QgYXNzaWduRWxlbWVudHMgPSAoXG4gICAgaG9zdDogRWxlbWVudCxcbiAgICBhdHRyaWJ1dGU6IHN0cmluZyxcbiAgICBlbGVtZW50czogUmVjb3JkPHN0cmluZywgRWxlbWVudFtdPixcbiAgKTogdm9pZCA9PiB7XG4gICAgLy8gSW4gY2FzZSBib3RoIEVsZW1lbnQgYW5kIEVsZW1lbnRJbnRlcm5hbHMgcHJvcGVydGllcyBhcmUgc2V0LFxuICAgIC8vIHdlIGNvbWJpbmUgdGhlIGVsZW1lbnQgcmVmZXJlbmNlcy5cbiAgICBob3N0LnNldEF0dHJpYnV0ZShcbiAgICAgIGF0dHJpYnV0ZSxcbiAgICAgIE9iamVjdC52YWx1ZXMoZWxlbWVudHMpXG4gICAgICAgIC5yZWR1Y2UoKGN1cnJlbnQsIG5leHQpID0+IGN1cnJlbnQuY29uY2F0KG5leHQpKVxuICAgICAgICAuZmlsdGVyKCh2LCBpLCBhKSA9PiBhLmluZGV4T2YodikgPT09IGkpXG4gICAgICAgIC5tYXAoKGUpID0+IGUuaWQgfHwgKGUuaWQgPSBgYXJpYS1yZWYtJHtuZXh0SWQrK31gKSlcbiAgICAgICAgLmpvaW4oJyAnKSxcbiAgICApO1xuICB9O1xuXG4gIGZvciAoY29uc3QgdHlwZSBvZiBbRWxlbWVudEludGVybmFscywgRWxlbWVudF0pIHtcbiAgICBjb25zdCBwcm90b3R5cGUgPSB0eXBlLnByb3RvdHlwZTtcbiAgICBpZiAoISgnYXJpYUFjdGl2ZURlc2NlbmRhbnRFbGVtZW50JyBpbiBwcm90b3R5cGUpKSB7XG4gICAgICBjb25zdCBhdHRyaWJ1dGUgPSAnYXJpYS1hY3RpdmVkZXNjZW5kYW50JztcbiAgICAgIGNvbnN0IHN0b3JhZ2UgPSBuZXcgV2Vha01hcDxcbiAgICAgICAgRWxlbWVudCxcbiAgICAgICAgeyBlbGVtZW50czogUmVjb3JkPHN0cmluZywgRWxlbWVudD47IG9ic2VydmVyOiBNdXRhdGlvbk9ic2VydmVyIH1cbiAgICAgID4oKTtcbiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShwcm90b3R5cGUsICdhcmlhQWN0aXZlRGVzY2VuZGFudEVsZW1lbnQnLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICAgICAgZ2V0KHRoaXM6IEVsZW1lbnRJbnRlcm5hbHMgfCBFbGVtZW50KTogRWxlbWVudCB8IG51bGwge1xuICAgICAgICAgIGNvbnN0IGhvc3QgPSByZXNvbHZlSG9zdCh0aGlzKTtcbiAgICAgICAgICBjb25zdCBpZCA9IGhvc3QuZ2V0QXR0cmlidXRlKGF0dHJpYnV0ZSk/LnNwbGl0KC9cXHMrLylbMF0gPz8gbnVsbDtcbiAgICAgICAgICByZXR1cm4gaWRcbiAgICAgICAgICAgID8gKChob3N0LmdldFJvb3ROb2RlKCkgYXMgRG9jdW1lbnQgfCBTaGFkb3dSb290KS5nZXRFbGVtZW50QnlJZD8uKGlkKSA/PyBudWxsKVxuICAgICAgICAgICAgOiBudWxsO1xuICAgICAgICB9LFxuICAgICAgICBzZXQodGhpczogRWxlbWVudEludGVybmFscyB8IEVsZW1lbnQsIHZhbHVlOiBFbGVtZW50IHwgbnVsbCkge1xuICAgICAgICAgIGlmICh2YWx1ZSAhPT0gbnVsbCAmJiAhKHZhbHVlIGluc3RhbmNlb2YgRWxlbWVudCkpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXG4gICAgICAgICAgICAgIGBGYWlsZWQgdG8gc2V0IHRoZSAnYXJpYUFjdGl2ZURlc2NlbmRhbnRFbGVtZW50JyBwcm9wZXJ0eSBvbiAnJHt0eXBlLm5hbWV9JzogRmFpbGVkIHRvIGNvbnZlcnQgdmFsdWUgdG8gJ0VsZW1lbnQnLmAsXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnN0IGhvc3QgPSByZXNvbHZlSG9zdCh0aGlzKTtcbiAgICAgICAgICBjb25zdCBlbnRyeSA9IHN0b3JhZ2UuZ2V0KGhvc3QpO1xuICAgICAgICAgIGVudHJ5Py5vYnNlcnZlcj8uZGlzY29ubmVjdCgpO1xuICAgICAgICAgIGlmICh2YWx1ZSA9PT0gbnVsbCkge1xuICAgICAgICAgICAgaWYgKGVudHJ5KSB7XG4gICAgICAgICAgICAgIGRlbGV0ZSBlbnRyeS5lbGVtZW50c1t0eXBlLm5hbWVdO1xuICAgICAgICAgICAgICBpZiAoIU9iamVjdC5rZXlzKGVudHJ5KS5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICBzdG9yYWdlLmRlbGV0ZShob3N0KTtcbiAgICAgICAgICAgICAgICBob3N0LnJlbW92ZUF0dHJpYnV0ZShhdHRyaWJ1dGUpO1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGVudHJ5Lm9ic2VydmVyLm9ic2VydmUoT2JqZWN0LnZhbHVlcyhlbnRyeS5lbGVtZW50cylbMF0sIG9ic2VydmVyT3B0aW9ucyk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2UgaWYgKCFlbnRyeSkge1xuICAgICAgICAgICAgY29uc3QgZWxlbWVudHM6IFJlY29yZDxzdHJpbmcsIEVsZW1lbnQ+ID0geyBbdHlwZS5uYW1lXTogdmFsdWUgfTtcbiAgICAgICAgICAgIGFzc2lnbkVsZW1lbnQoaG9zdCwgYXR0cmlidXRlLCBlbGVtZW50cyk7XG4gICAgICAgICAgICBjb25zdCBvYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKCgpID0+IGFzc2lnbkVsZW1lbnQoaG9zdCwgYXR0cmlidXRlLCBlbGVtZW50cykpO1xuICAgICAgICAgICAgb2JzZXJ2ZXIub2JzZXJ2ZSh2YWx1ZSwgb2JzZXJ2ZXJPcHRpb25zKTtcbiAgICAgICAgICAgIHN0b3JhZ2Uuc2V0KGhvc3QsIHsgZWxlbWVudHMsIG9ic2VydmVyIH0pO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBlbnRyeS5lbGVtZW50c1t0eXBlLm5hbWVdID0gdmFsdWU7XG4gICAgICAgICAgICBhc3NpZ25FbGVtZW50KGhvc3QsIGF0dHJpYnV0ZSwgZW50cnkuZWxlbWVudHMpO1xuICAgICAgICAgICAgT2JqZWN0LnZhbHVlcyhlbnRyeS5lbGVtZW50cykuZm9yRWFjaCgoZSkgPT5cbiAgICAgICAgICAgICAgZW50cnkub2JzZXJ2ZXIub2JzZXJ2ZShlLCBvYnNlcnZlck9wdGlvbnMpLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IHByb3BlcnR5IG9mIFtcbiAgICAgICdhcmlhQ29udHJvbHNFbGVtZW50cycsXG4gICAgICAnYXJpYURlc2NyaWJlZEJ5RWxlbWVudHMnLFxuICAgICAgJ2FyaWFEZXRhaWxzRWxlbWVudHMnLFxuICAgICAgJ2FyaWFFcnJvck1lc3NhZ2VFbGVtZW50cycsXG4gICAgICAnYXJpYUxhYmVsbGVkQnlFbGVtZW50cycsXG4gICAgICAnYXJpYU93bnNFbGVtZW50cycsXG4gICAgXSkge1xuICAgICAgaWYgKCEocHJvcGVydHkgaW4gcHJvdG90eXBlKSkge1xuICAgICAgICBjb25zdCBzdG9yYWdlID0gbmV3IFdlYWtNYXA8XG4gICAgICAgICAgRWxlbWVudCxcbiAgICAgICAgICB7IGVsZW1lbnRzOiBSZWNvcmQ8c3RyaW5nLCBFbGVtZW50W10+OyBvYnNlcnZlcjogTXV0YXRpb25PYnNlcnZlciB9XG4gICAgICAgID4oKTtcbiAgICAgICAgY29uc3QgYXR0cmlidXRlID0gYGFyaWEtJHtwcm9wZXJ0eS5zbGljZSg0LCAtOCkudG9Mb3dlckNhc2UoKX1gO1xuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkocHJvdG90eXBlLCBwcm9wZXJ0eSwge1xuICAgICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgICAgICAgIGdldCh0aGlzOiBFbGVtZW50SW50ZXJuYWxzIHwgRWxlbWVudCk6IHJlYWRvbmx5IEVsZW1lbnRbXSB8IG51bGwge1xuICAgICAgICAgICAgY29uc3QgaG9zdCA9IHJlc29sdmVIb3N0KHRoaXMpO1xuICAgICAgICAgICAgY29uc3QgZWxlbWVudHMgPSBob3N0XG4gICAgICAgICAgICAgIC5nZXRBdHRyaWJ1dGUoYXR0cmlidXRlKVxuICAgICAgICAgICAgICA/LnNwbGl0KC9cXHMrLylcbiAgICAgICAgICAgICAgLmZpbHRlcigodiwgaSwgYSkgPT4gYS5pbmRleE9mKHYpID09PSBpKVxuICAgICAgICAgICAgICAubWFwKChpZCkgPT4gKGhvc3QuZ2V0Um9vdE5vZGUoKSBhcyBEb2N1bWVudCB8IFNoYWRvd1Jvb3QpLmdldEVsZW1lbnRCeUlkPy4oaWQpKVxuICAgICAgICAgICAgICAuZmlsdGVyKChlKSA9PiBlIGluc3RhbmNlb2YgRWxlbWVudCk7XG4gICAgICAgICAgICByZXR1cm4gZWxlbWVudHM/Lmxlbmd0aCA/IE9iamVjdC5mcmVlemUoZWxlbWVudHMpIDogbnVsbDtcbiAgICAgICAgICB9LFxuICAgICAgICAgIHNldCh0aGlzOiBFbGVtZW50SW50ZXJuYWxzIHwgRWxlbWVudCwgdmFsdWU6IEVsZW1lbnRbXSkge1xuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICB2YWx1ZSAhPT0gbnVsbCAmJlxuICAgICAgICAgICAgICAoIUFycmF5LmlzQXJyYXkodmFsdWUpIHx8IHZhbHVlLnNvbWUoKGVsZW1lbnQpID0+ICEoZWxlbWVudCBpbnN0YW5jZW9mIEVsZW1lbnQpKSlcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFxuICAgICAgICAgICAgICAgIGBGYWlsZWQgdG8gc2V0IHRoZSAnJHtwcm9wZXJ0eX0nIHByb3BlcnR5IG9uICcke3R5cGUubmFtZX0nOiBGYWlsZWQgdG8gY29udmVydCB2YWx1ZSB0byAnRWxlbWVudCcuYCxcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3QgaG9zdCA9IHJlc29sdmVIb3N0KHRoaXMpO1xuICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZT8uZmlsdGVyKCh2LCBpLCBhKSA9PiBhLmluZGV4T2YodikgPT09IGkpID8/IG51bGw7XG4gICAgICAgICAgICBjb25zdCBlbnRyeSA9IHN0b3JhZ2UuZ2V0KGhvc3QpO1xuICAgICAgICAgICAgZW50cnk/Lm9ic2VydmVyPy5kaXNjb25uZWN0KCk7XG4gICAgICAgICAgICBpZiAodmFsdWUgPT09IG51bGwpIHtcbiAgICAgICAgICAgICAgaWYgKGVudHJ5KSB7XG4gICAgICAgICAgICAgICAgZGVsZXRlIGVudHJ5LmVsZW1lbnRzW3R5cGUubmFtZV07XG4gICAgICAgICAgICAgICAgaWYgKCFPYmplY3Qua2V5cyhlbnRyeS5lbGVtZW50cykubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICBzdG9yYWdlLmRlbGV0ZShob3N0KTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgT2JqZWN0LnZhbHVlcyhlbnRyeS5lbGVtZW50cylcbiAgICAgICAgICAgICAgICAgICAgLnJlZHVjZSgoY3VycmVudCwgbmV4dCkgPT4gY3VycmVudC5jb25jYXQobmV4dCkpXG4gICAgICAgICAgICAgICAgICAgIC5mb3JFYWNoKChlKSA9PiBlbnRyeS5vYnNlcnZlci5vYnNlcnZlKGUsIG9ic2VydmVyT3B0aW9ucykpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIGlmICghZW50cnkpIHtcbiAgICAgICAgICAgICAgY29uc3QgZWxlbWVudHM6IFJlY29yZDxzdHJpbmcsIEVsZW1lbnRbXT4gPSB7IFt0eXBlLm5hbWVdOiB2YWx1ZSB9O1xuICAgICAgICAgICAgICBhc3NpZ25FbGVtZW50cyhob3N0LCBhdHRyaWJ1dGUsIGVsZW1lbnRzKTtcbiAgICAgICAgICAgICAgY29uc3Qgb2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcigoKSA9PlxuICAgICAgICAgICAgICAgIGFzc2lnbkVsZW1lbnRzKGhvc3QsIGF0dHJpYnV0ZSwgZWxlbWVudHMpLFxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICB2YWx1ZS5mb3JFYWNoKChlbGVtZW50KSA9PiBvYnNlcnZlci5vYnNlcnZlKGVsZW1lbnQsIG9ic2VydmVyT3B0aW9ucykpO1xuICAgICAgICAgICAgICBzdG9yYWdlLnNldChob3N0LCB7IGVsZW1lbnRzLCBvYnNlcnZlciB9KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIGVudHJ5LmVsZW1lbnRzW3R5cGUubmFtZV0gPSB2YWx1ZTtcbiAgICAgICAgICAgICAgYXNzaWduRWxlbWVudHMoaG9zdCwgYXR0cmlidXRlLCBlbnRyeS5lbGVtZW50cyk7XG4gICAgICAgICAgICAgIE9iamVjdC52YWx1ZXMoZW50cnkuZWxlbWVudHMpXG4gICAgICAgICAgICAgICAgLnJlZHVjZSgoY3VycmVudCwgbmV4dCkgPT4gY3VycmVudC5jb25jYXQobmV4dCkpXG4gICAgICAgICAgICAgICAgLmZvckVhY2goKGUpID0+IGVudHJ5Lm9ic2VydmVyLm9ic2VydmUoZSwgb2JzZXJ2ZXJPcHRpb25zKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2JiRWxlbWVudEludGVybmFsc0NvbnN0cnVjdG9yIHtcbiAgcm9sZT86IEVsZW1lbnRJbnRlcm5hbHNbJ3JvbGUnXTtcbn1cblxuZXhwb3J0IGRlY2xhcmUgYWJzdHJhY3QgY2xhc3MgU2JiRWxlbWVudEludGVybmFsc01peGluVHlwZSB7XG4gIHByb3RlY3RlZCByZWFkb25seSBpbnRlcm5hbHM6IEVsZW1lbnRJbnRlcm5hbHM7XG4gIHByb3RlY3RlZCB0b2dnbGVTdGF0ZShzdGF0ZTogc3RyaW5nLCBmb3JjZT86IGJvb2xlYW4pOiB2b2lkO1xufVxuXG4vKipcbiAqIEFwcGVuZHMgdGhlIGdpdmVuIGVsZW1lbnRzIHRvIHRoZSBnaXZlbiBhcmlhIHZhbHVlIGFuZCByZXR1cm5zIHRoZVxuICogY29tYmluZWQgdmFsdWUgYXMgYSBuZXcgYXJyYXkgb3IgbnVsbCwgaWYgYm90aCB2YWx1ZXMgd2VyZSBlbXB0eS5cbiAqL1xuZXhwb3J0IGNvbnN0IGFwcGVuZEFyaWFFbGVtZW50cyA9IChcbiAgYXJpYVZhbHVlOiByZWFkb25seSBFbGVtZW50W10gfCBudWxsLFxuICAuLi5uZXdFbGVtZW50czogKEVsZW1lbnQgfCBudWxsKVtdXG4pOiBFbGVtZW50W10gfCBudWxsID0+IHtcbiAgY29uc3QgZWxlbWVudHMgPSBuZXdFbGVtZW50cy5maWx0ZXIoKHYpOiB2IGlzIEVsZW1lbnQgPT4gISF2KTtcbiAgcmV0dXJuIGFyaWFWYWx1ZT8ubGVuZ3RoID8gYXJpYVZhbHVlLmNvbmNhdChlbGVtZW50cykgOiBuZXdFbGVtZW50cy5sZW5ndGggPyBlbGVtZW50cyA6IG51bGw7XG59O1xuXG4vKipcbiAqIFJlbW92ZXMgdGhlIGdpdmVuIGVsZW1lbnRzIGZyb20gdGhlIGdpdmVuIGFyaWEgdmFsdWUgYW5kIHJldHVybnNcbiAqIHRoZSByZW1haW5pbmcgZWxlbWVudHMgYXMgYSBuZXcgYXJyYXkgb3IgbnVsbCwgaWYgdGhlIHJlc3VsdCBpcyBlbXB0eS5cbiAqL1xuZXhwb3J0IGNvbnN0IHJlbW92ZUFyaWFFbGVtZW50cyA9IChcbiAgYXJpYVZhbHVlOiByZWFkb25seSBFbGVtZW50W10gfCBudWxsLFxuICAuLi5yZW1vdmFibGVFbGVtZW50czogKEVsZW1lbnQgfCBudWxsKVtdXG4pOiBFbGVtZW50W10gfCBudWxsID0+IHtcbiAgcmVtb3ZhYmxlRWxlbWVudHMgPSByZW1vdmFibGVFbGVtZW50cy5maWx0ZXIoKHYpID0+ICEhdik7XG4gIGNvbnN0IGVsZW1lbnRzID0gYXJpYVZhbHVlPy5maWx0ZXIoKHYpID0+ICFyZW1vdmFibGVFbGVtZW50cy5pbmNsdWRlcyh2KSkgPz8gbnVsbDtcbiAgcmV0dXJuIGVsZW1lbnRzPy5sZW5ndGggPyBlbGVtZW50cyA6IG51bGw7XG59O1xuXG4vKipcbiAqIFRoZSBTYmJFbGVtZW50SW50ZXJuYWxzTWl4aW4gYXR0YWNoZXMgRWxlbWVudEludGVybmFscyB0byB0aGUgZWxlbWVudCBhbmQgc2V0c1xuICogdGhlIHJvbGUsIGlmIGRlZmluZWQuXG4gKi9cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbmV4cG9ydCBjb25zdCBTYmJFbGVtZW50SW50ZXJuYWxzTWl4aW4gPSA8VCBleHRlbmRzIEFic3RyYWN0Q29uc3RydWN0b3I8TGl0RWxlbWVudD4+KFxuICBzdXBlckNsYXNzOiBULFxuKTogQWJzdHJhY3RDb25zdHJ1Y3RvcjxTYmJFbGVtZW50SW50ZXJuYWxzTWl4aW5UeXBlPiAmIFQgJiBTYmJFbGVtZW50SW50ZXJuYWxzQ29uc3RydWN0b3IgPT4ge1xuICBhYnN0cmFjdCBjbGFzcyBTYmJFbGVtZW50SW50ZXJuYWxFbGVtZW50XG4gICAgZXh0ZW5kcyBzdXBlckNsYXNzXG4gICAgaW1wbGVtZW50cyBQYXJ0aWFsPFNiYkVsZW1lbnRJbnRlcm5hbHNNaXhpblR5cGU+XG4gIHtcbiAgICAvKiogQGludGVybmFsICovXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGludGVybmFsczogRWxlbWVudEludGVybmFscyA9IHRoaXMuYXR0YWNoSW50ZXJuYWxzKCk7XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IoLi4uYXJnczogYW55W10pIHtcbiAgICAgIHN1cGVyKC4uLmFyZ3MpO1xuICAgICAgaWYgKEN1c3RvbVN0YXRlU2V0UG9seWZpbGwpIHtcbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMuaW50ZXJuYWxzLCAnc3RhdGVzJywge1xuICAgICAgICAgIHZhbHVlOiBuZXcgQ3VzdG9tU3RhdGVTZXRQb2x5ZmlsbCh0aGlzKSxcbiAgICAgICAgICB3cml0YWJsZTogZmFsc2UsXG4gICAgICAgICAgY29uZmlndXJhYmxlOiBmYWxzZSxcbiAgICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBXZSB1c2UgdGhlIEN1c3RvbVN0YXRlU2V0IHBvbHlmaWxsIGluIFNTUiwgd2hpY2ggcmVuZGVycyB0aGUgc3RhdGUgYXMgYXR0cmlidXRlc1xuICAgICAgICAvLyB3aGljaCBjYW4gYmUgdHJhbnNmZXJyZWQgdG8gY2xpZW50IHNpZGUsIHdoZXJlIHdlIGNhbiB0aGVuIGNvbnZlcnQgW3N0YXRlLS0qXVxuICAgICAgICAvLyBhdHRyaWJ1dGVzIHRvIGludGVybmFsIHN0YXRlLlxuICAgICAgICBmb3IgKGNvbnN0IG5hbWUgb2YgdGhpcy5nZXRBdHRyaWJ1dGVOYW1lcygpLmZpbHRlcigobikgPT4gbi5zdGFydHNXaXRoKCdzdGF0ZS0tJykpKSB7XG4gICAgICAgICAgdGhpcy5pbnRlcm5hbHMuc3RhdGVzLmFkZChuYW1lLnNsaWNlKDcpKTtcbiAgICAgICAgICB0aGlzLnJlbW92ZUF0dHJpYnV0ZShuYW1lKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgY29uc3Qgcm9sZSA9ICh0aGlzLmNvbnN0cnVjdG9yIGFzIFNiYkVsZW1lbnRJbnRlcm5hbHNDb25zdHJ1Y3Rvcikucm9sZTtcbiAgICAgIGlmIChyb2xlKSB7XG4gICAgICAgIHRoaXMuaW50ZXJuYWxzLnJvbGUgPSByb2xlO1xuICAgICAgfVxuICAgICAgdGhpcy5hZGRDb250cm9sbGVyKG5ldyBTYmJTbG90U3RhdGVDb250cm9sbGVyKHRoaXMsIHRoaXMuaW50ZXJuYWxzKSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHRvZ2dsZVN0YXRlKHN0YXRlOiBzdHJpbmcsIGZvcmNlPzogYm9vbGVhbik6IHZvaWQge1xuICAgICAgaWYgKGZvcmNlIHx8IChmb3JjZSAhPT0gZmFsc2UgJiYgIXRoaXMuaW50ZXJuYWxzLnN0YXRlcy5oYXMoc3RhdGUpKSkge1xuICAgICAgICB0aGlzLmludGVybmFscy5zdGF0ZXMuYWRkKHN0YXRlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuaW50ZXJuYWxzLnN0YXRlcy5kZWxldGUoc3RhdGUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICByZXR1cm4gU2JiRWxlbWVudEludGVybmFsRWxlbWVudCBhcyB1bmtub3duIGFzIEFic3RyYWN0Q29uc3RydWN0b3I8U2JiRWxlbWVudEludGVybmFsc01peGluVHlwZT4gJlxuICAgIFQgJlxuICAgIFNiYkVsZW1lbnRJbnRlcm5hbHNDb25zdHJ1Y3Rvcjtcbn07XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFhQSxNQUFNLHlCQUNKLFlBQVksQ0FBQyxJQUFJLFNBQVMsMkJBQTJCLElBQ2pELE1BQU0sdUJBQ0ksSUFBVztBQUFBLEVBR25CLFlBQTJCLE9BQWlCO0FBQzFDLFVBQUE7QUFEeUIsU0FBQSxRQUFBO0FBRXpCLFNBQUssTUFBTSxjQUFjLElBQUk7QUFBQSxFQUMvQjtBQUFBLEVBRWdCLElBQUksT0FBYTtBQUMvQixRQUFJLEtBQUssTUFBTSxhQUFhO0FBQzFCLFdBQUssYUFBYSxPQUFPLElBQUk7QUFBQSxJQUMvQjtBQUNBLFdBQU8sTUFBTSxJQUFJLEtBQUs7QUFBQSxFQUN4QjtBQUFBLEVBRWdCLE9BQU8sT0FBYTtBQUNsQyxTQUFLLGFBQWEsT0FBTyxLQUFLO0FBQzlCLFdBQU8sTUFBTSxPQUFPLEtBQUs7QUFBQSxFQUMzQjtBQUFBLEVBRWdCLFFBQUs7QUFDbkIsU0FBSyxRQUFRLENBQUMsVUFBVSxLQUFLLE9BQU8sS0FBSyxDQUFDO0FBQUEsRUFDNUM7QUFBQSxFQUVPLGdCQUFhO0FBQ2xCLFNBQUssUUFBUSxDQUFDLFVBQVUsS0FBSyxhQUFhLE9BQU8sSUFBSSxDQUFDO0FBQUEsRUFDeEQ7QUFBQSxFQUVRLGFBQWEsT0FBZSxTQUFnQjtBQUNsRCxTQUFLLE1BQU0sZ0JBQWdCLFVBQVUsS0FBSyxJQUFJLE9BQU87QUFBQSxFQUN2RDtBQUNELElBQ0Q7QUFjTixJQUFJLENBQUMsVUFBVTtBQUViLE1BQUksU0FBUztBQUNiLFFBQU0sY0FBYyxDQUFDLFdBQ25CLE9BQU8sWUFBWSxTQUNsQixrQkFBa0IsVUFDZixVQUNDLE1BQUs7QUFDSixVQUFNLElBQUksTUFBTSw4REFBOEQ7QUFBQSxFQUNoRjtBQUNOLFFBQU0sa0JBQXdDLEVBQUUsWUFBWSxNQUFNLGlCQUFpQixDQUFDLElBQUksRUFBQTtBQUN4RixRQUFNLGdCQUFnQixDQUNwQixNQUNBLFdBQ0EsYUFDUTtBQUdSLFVBQU0sZ0JBQWdCLFNBQVMsUUFBUSxJQUFJLEtBQUssU0FBUyxpQkFBaUIsSUFBSTtBQUM5RSxTQUFLLGFBQWEsV0FBWSxjQUFjLE9BQU8sWUFBWSxRQUFRLEVBQUc7QUFBQSxFQUM1RTtBQUNBLFFBQU0saUJBQWlCLENBQ3JCLE1BQ0EsV0FDQSxhQUNRO0FBR1IsU0FBSyxhQUNILFdBQ0EsT0FBTyxPQUFPLFFBQVEsRUFDbkIsT0FBTyxDQUFDLFNBQVMsU0FBUyxRQUFRLE9BQU8sSUFBSSxDQUFDLEVBQzlDLE9BQU8sQ0FBQyxHQUFHLEdBQUcsTUFBTSxFQUFFLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFDdEMsSUFBSSxDQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUUsS0FBSyxZQUFZLFFBQVEsR0FBRyxFQUNsRCxLQUFLLEdBQUcsQ0FBQztBQUFBLEVBRWhCO0FBRUEsYUFBVyxRQUFRLENBQUMsa0JBQWtCLE9BQU8sR0FBRztBQUM5QyxVQUFNLFlBQVksS0FBSztBQUN2QixRQUFJLEVBQUUsaUNBQWlDLFlBQVk7QUFDakQsWUFBTSxZQUFZO0FBQ2xCLFlBQU0sOEJBQWMsUUFBQTtBQUlwQixhQUFPLGVBQWUsV0FBVywrQkFBK0I7QUFBQSxRQUM5RCxZQUFZO0FBQUEsUUFDWixjQUFjO0FBQUEsUUFDZCxNQUFHO0FBQ0QsZ0JBQU0sT0FBTyxZQUFZLElBQUk7QUFDN0IsZ0JBQU0sS0FBSyxLQUFLLGFBQWEsU0FBUyxHQUFHLE1BQU0sS0FBSyxFQUFFLENBQUMsS0FBSztBQUM1RCxpQkFBTyxLQUNELEtBQUssWUFBQSxFQUF3QyxpQkFBaUIsRUFBRSxLQUFLLE9BQ3ZFO0FBQUEsUUFDTjtBQUFBLFFBQ0EsSUFBc0MsT0FBcUI7QUFDekQsY0FBSSxVQUFVLFFBQVEsRUFBRSxpQkFBaUIsVUFBVTtBQUNqRCxrQkFBTSxJQUFJLFVBQ1IsZ0VBQWdFLEtBQUssSUFBSSwwQ0FBMEM7QUFBQSxVQUV2SDtBQUVBLGdCQUFNLE9BQU8sWUFBWSxJQUFJO0FBQzdCLGdCQUFNLFFBQVEsUUFBUSxJQUFJLElBQUk7QUFDOUIsaUJBQU8sVUFBVSxXQUFBO0FBQ2pCLGNBQUksVUFBVSxNQUFNO0FBQ2xCLGdCQUFJLE9BQU87QUFDVCxxQkFBTyxNQUFNLFNBQVMsS0FBSyxJQUFJO0FBQy9CLGtCQUFJLENBQUMsT0FBTyxLQUFLLEtBQUssRUFBRSxRQUFRO0FBQzlCLHdCQUFRLE9BQU8sSUFBSTtBQUNuQixxQkFBSyxnQkFBZ0IsU0FBUztBQUFBLGNBQ2hDLE9BQU87QUFDTCxzQkFBTSxTQUFTLFFBQVEsT0FBTyxPQUFPLE1BQU0sUUFBUSxFQUFFLENBQUMsR0FBRyxlQUFlO0FBQUEsY0FDMUU7QUFBQSxZQUNGO0FBQUEsVUFDRixXQUFXLENBQUMsT0FBTztBQUNqQixrQkFBTSxXQUFvQyxFQUFFLENBQUMsS0FBSyxJQUFJLEdBQUcsTUFBQTtBQUN6RCwwQkFBYyxNQUFNLFdBQVcsUUFBUTtBQUN2QyxrQkFBTSxXQUFXLElBQUksaUJBQWlCLE1BQU0sY0FBYyxNQUFNLFdBQVcsUUFBUSxDQUFDO0FBQ3BGLHFCQUFTLFFBQVEsT0FBTyxlQUFlO0FBQ3ZDLG9CQUFRLElBQUksTUFBTSxFQUFFLFVBQVUsVUFBVTtBQUFBLFVBQzFDLE9BQU87QUFDTCxrQkFBTSxTQUFTLEtBQUssSUFBSSxJQUFJO0FBQzVCLDBCQUFjLE1BQU0sV0FBVyxNQUFNLFFBQVE7QUFDN0MsbUJBQU8sT0FBTyxNQUFNLFFBQVEsRUFBRSxRQUFRLENBQUMsTUFDckMsTUFBTSxTQUFTLFFBQVEsR0FBRyxlQUFlLENBQUM7QUFBQSxVQUU5QztBQUFBLFFBQ0Y7QUFBQSxNQUFBLENBQ0Q7QUFBQSxJQUNIO0FBRUEsZUFBVyxZQUFZO0FBQUEsTUFDckI7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLElBQUEsR0FDQztBQUNELFVBQUksRUFBRSxZQUFZLFlBQVk7QUFDNUIsY0FBTSw4QkFBYyxRQUFBO0FBSXBCLGNBQU0sWUFBWSxRQUFRLFNBQVMsTUFBTSxHQUFHLEVBQUUsRUFBRSxhQUFhO0FBQzdELGVBQU8sZUFBZSxXQUFXLFVBQVU7QUFBQSxVQUN6QyxZQUFZO0FBQUEsVUFDWixjQUFjO0FBQUEsVUFDZCxNQUFHO0FBQ0Qsa0JBQU0sT0FBTyxZQUFZLElBQUk7QUFDN0Isa0JBQU0sV0FBVyxLQUNkLGFBQWEsU0FBUyxHQUNyQixNQUFNLEtBQUssRUFDWixPQUFPLENBQUMsR0FBRyxHQUFHLE1BQU0sRUFBRSxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQ3RDLElBQUksQ0FBQyxPQUFRLEtBQUssWUFBQSxFQUF3QyxpQkFBaUIsRUFBRSxDQUFDLEVBQzlFLE9BQU8sQ0FBQyxNQUFNLGFBQWEsT0FBTztBQUNyQyxtQkFBTyxVQUFVLFNBQVMsT0FBTyxPQUFPLFFBQVEsSUFBSTtBQUFBLFVBQ3REO0FBQUEsVUFDQSxJQUFzQyxPQUFnQjtBQUNwRCxnQkFDRSxVQUFVLFNBQ1QsQ0FBQyxNQUFNLFFBQVEsS0FBSyxLQUFLLE1BQU0sS0FBSyxDQUFDLFlBQVksRUFBRSxtQkFBbUIsUUFBUSxJQUMvRTtBQUNBLG9CQUFNLElBQUksVUFDUixzQkFBc0IsUUFBUSxrQkFBa0IsS0FBSyxJQUFJLDBDQUEwQztBQUFBLFlBRXZHO0FBRUEsa0JBQU0sT0FBTyxZQUFZLElBQUk7QUFDN0Isb0JBQVEsT0FBTyxPQUFPLENBQUMsR0FBRyxHQUFHLE1BQU0sRUFBRSxRQUFRLENBQUMsTUFBTSxDQUFDLEtBQUs7QUFDMUQsa0JBQU0sUUFBUSxRQUFRLElBQUksSUFBSTtBQUM5QixtQkFBTyxVQUFVLFdBQUE7QUFDakIsZ0JBQUksVUFBVSxNQUFNO0FBQ2xCLGtCQUFJLE9BQU87QUFDVCx1QkFBTyxNQUFNLFNBQVMsS0FBSyxJQUFJO0FBQy9CLG9CQUFJLENBQUMsT0FBTyxLQUFLLE1BQU0sUUFBUSxFQUFFLFFBQVE7QUFDdkMsMEJBQVEsT0FBTyxJQUFJO0FBQUEsZ0JBQ3JCLE9BQU87QUFDTCx5QkFBTyxPQUFPLE1BQU0sUUFBUSxFQUN6QixPQUFPLENBQUMsU0FBUyxTQUFTLFFBQVEsT0FBTyxJQUFJLENBQUMsRUFDOUMsUUFBUSxDQUFDLE1BQU0sTUFBTSxTQUFTLFFBQVEsR0FBRyxlQUFlLENBQUM7QUFBQSxnQkFDOUQ7QUFBQSxjQUNGO0FBQUEsWUFDRixXQUFXLENBQUMsT0FBTztBQUNqQixvQkFBTSxXQUFzQyxFQUFFLENBQUMsS0FBSyxJQUFJLEdBQUcsTUFBQTtBQUMzRCw2QkFBZSxNQUFNLFdBQVcsUUFBUTtBQUN4QyxvQkFBTSxXQUFXLElBQUksaUJBQWlCLE1BQ3BDLGVBQWUsTUFBTSxXQUFXLFFBQVEsQ0FBQztBQUUzQyxvQkFBTSxRQUFRLENBQUMsWUFBWSxTQUFTLFFBQVEsU0FBUyxlQUFlLENBQUM7QUFDckUsc0JBQVEsSUFBSSxNQUFNLEVBQUUsVUFBVSxVQUFVO0FBQUEsWUFDMUMsT0FBTztBQUNMLG9CQUFNLFNBQVMsS0FBSyxJQUFJLElBQUk7QUFDNUIsNkJBQWUsTUFBTSxXQUFXLE1BQU0sUUFBUTtBQUM5QyxxQkFBTyxPQUFPLE1BQU0sUUFBUSxFQUN6QixPQUFPLENBQUMsU0FBUyxTQUFTLFFBQVEsT0FBTyxJQUFJLENBQUMsRUFDOUMsUUFBUSxDQUFDLE1BQU0sTUFBTSxTQUFTLFFBQVEsR0FBRyxlQUFlLENBQUM7QUFBQSxZQUM5RDtBQUFBLFVBQ0Y7QUFBQSxRQUFBLENBQ0Q7QUFBQSxNQUNIO0FBQUEsSUFDRjtBQUFBLEVBQ0Y7QUFDRjtBQWVPLE1BQU0scUJBQXFCLENBQ2hDLGNBQ0csZ0JBQ2lCO0FBQ3BCLFFBQU0sV0FBVyxZQUFZLE9BQU8sQ0FBQyxNQUFvQixDQUFDLENBQUMsQ0FBQztBQUM1RCxTQUFPLFdBQVcsU0FBUyxVQUFVLE9BQU8sUUFBUSxJQUFJLFlBQVksU0FBUyxXQUFXO0FBQzFGO0FBTU8sTUFBTSxxQkFBcUIsQ0FDaEMsY0FDRyxzQkFDaUI7QUFDcEIsc0JBQW9CLGtCQUFrQixPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztBQUN2RCxRQUFNLFdBQVcsV0FBVyxPQUFPLENBQUMsTUFBTSxDQUFDLGtCQUFrQixTQUFTLENBQUMsQ0FBQyxLQUFLO0FBQzdFLFNBQU8sVUFBVSxTQUFTLFdBQVc7QUFDdkM7QUFPTyxNQUFNLDJCQUEyQixDQUN0QyxlQUMwRjtBQUFBLEVBQzFGLE1BQWUsa0NBQ0wsV0FBVTtBQUFBLElBTWxCLGVBQXNCLE1BQVc7QUFDL0IsWUFBTSxHQUFHLElBQUk7QUFISSxXQUFBLFlBQThCLEtBQUssZ0JBQUE7QUFJcEQsVUFBSSx3QkFBd0I7QUFDMUIsZUFBTyxlQUFlLEtBQUssV0FBVyxVQUFVO0FBQUEsVUFDOUMsT0FBTyxJQUFJLHVCQUF1QixJQUFJO0FBQUEsVUFDdEMsVUFBVTtBQUFBLFVBQ1YsY0FBYztBQUFBLFVBQ2QsWUFBWTtBQUFBLFFBQUEsQ0FDYjtBQUFBLE1BQ0gsT0FBTztBQUlMLG1CQUFXLFFBQVEsS0FBSyxvQkFBb0IsT0FBTyxDQUFDLE1BQU0sRUFBRSxXQUFXLFNBQVMsQ0FBQyxHQUFHO0FBQ2xGLGVBQUssVUFBVSxPQUFPLElBQUksS0FBSyxNQUFNLENBQUMsQ0FBQztBQUN2QyxlQUFLLGdCQUFnQixJQUFJO0FBQUEsUUFDM0I7QUFBQSxNQUNGO0FBQ0EsWUFBTSxPQUFRLEtBQUssWUFBK0M7QUFDbEUsVUFBSSxNQUFNO0FBQ1IsYUFBSyxVQUFVLE9BQU87QUFBQSxNQUN4QjtBQUNBLFdBQUssY0FBYyxJQUFJLHVCQUF1QixNQUFNLEtBQUssU0FBUyxDQUFDO0FBQUEsSUFDckU7QUFBQSxJQUVVLFlBQVksT0FBZSxPQUFlO0FBQ2xELFVBQUksU0FBVSxVQUFVLFNBQVMsQ0FBQyxLQUFLLFVBQVUsT0FBTyxJQUFJLEtBQUssR0FBSTtBQUNuRSxhQUFLLFVBQVUsT0FBTyxJQUFJLEtBQUs7QUFBQSxNQUNqQyxPQUFPO0FBQ0wsYUFBSyxVQUFVLE9BQU8sT0FBTyxLQUFLO0FBQUEsTUFDcEM7QUFBQSxJQUNGO0FBQUEsRUFBQTtBQUVGLFNBQU87QUFHVDsifQ==
235
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlbWVudC1pbnRlcm5hbHMtbWl4aW4uanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb3JlL21peGlucy9lbGVtZW50LWludGVybmFscy1taXhpbi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc1NlcnZlciwgdHlwZSBMaXRFbGVtZW50LCB0eXBlIFJlYWN0aXZlQ29udHJvbGxlciB9IGZyb20gJ2xpdCc7XG5cbmltcG9ydCB7IFNiYlNsb3RTdGF0ZUNvbnRyb2xsZXIgfSBmcm9tICcuLi9jb250cm9sbGVycy9zbG90LXN0YXRlLWNvbnRyb2xsZXIudHMnO1xuXG5pbXBvcnQgdHlwZSB7IEFic3RyYWN0Q29uc3RydWN0b3IgfSBmcm9tICcuL2NvbnN0cnVjdG9yLnRzJztcblxuLy8gTW9zdCBvZiBvdXIgdGFyZ2V0IGJyb3dzZXJzIHN1cHBvcnQgdGhlIDpzdGF0ZSgpIHBzZXVkbyBjbGFzcywgYnV0IG5vdCBhbGwgb2YgdGhlbS5cbi8vIFdlIHBhdGNoIHRoZSBzdGF0ZXMgcHJvcGVydHkgb2YgdGhlIGVsZW1lbnQgaW50ZXJuYWxzIHRvIHVzZSBhdHRyaWJ1dGVzIGluc3RlYWQsXG4vLyBpZiA6c3RhdGUoKSBpcyBub3Qgc3VwcG9ydGVkLlxuLy8gTm90ZSB0aGF0IGZvciBTU1IsIHRoZSBzdGF0ZXMgcHJvcGVydHkgaXMgYSBzaW1wbGUgU2V0LCBpbXBsZW1lbnRlZCBpbiBMaXQgU1NSLlxuLy8gV2ViS2l0IHNlZW1zIHRvIGhhdmUgc3RhdGUgZGV0ZWN0aW9uIHByb2JsZW1zLCBzbyB3ZSBlbmFibGUgdGhlIHBvbHlmaWxsIGZvciBub3cuXG4vLyBUT0RPOiBSZWNoZWNrIGVuYWJsaW5nIGJ5IHRlc3Rpbmcgc2JiLWF1dG9jb21wbGV0ZSB3aGV0aGVyIGl0IHJlbGlhYmx5IG9wZW5zIGluIFNhZmFyaVxudHlwZSBDdXN0b21TdGF0ZVNldEludGVyZmFjZSA9IEN1c3RvbVN0YXRlU2V0O1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuY29uc3QgQ3VzdG9tU3RhdGVTZXRQb2x5ZmlsbDogKG5ldyAoaG9zdDogTGl0RWxlbWVudCkgPT4gQ3VzdG9tU3RhdGVTZXRJbnRlcmZhY2UpIHwgbnVsbCA9XG4gIGlzU2VydmVyIHx8ICFDU1Muc3VwcG9ydHMoJ3NlbGVjdG9yKDpzdGF0ZShsb2FkaW5nKSknKVxuICAgID8gY2xhc3MgQ3VzdG9tU3RhdGVTZXRcbiAgICAgICAgZXh0ZW5kcyBTZXQ8c3RyaW5nPlxuICAgICAgICBpbXBsZW1lbnRzIEN1c3RvbVN0YXRlU2V0SW50ZXJmYWNlLCBSZWFjdGl2ZUNvbnRyb2xsZXJcbiAgICAgIHtcbiAgICAgICAgcHJpdmF0ZSBfYXBwbGllZCA9IGlzU2VydmVyO1xuXG4gICAgICAgIHB1YmxpYyBjb25zdHJ1Y3Rvcihwcml2YXRlIF9ob3N0OiBMaXRFbGVtZW50KSB7XG4gICAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgICB0aGlzLl9ob3N0LmFkZENvbnRyb2xsZXIodGhpcyk7XG4gICAgICAgICAgaWYgKCFpc1NlcnZlcikge1xuICAgICAgICAgICAgLy8gV2Ugd2FudCB0byBhcHBseSB0aGUgYXR0cmlidXRlcyBhcyBlYXJseSBhcyBwb3NzaWJsZSB3aGljaCBjYW5cbiAgICAgICAgICAgIC8vIGVpdGhlciBiZSB2aWEgdGhpcyBQcm9taXNlLnJlc29sdmUoKSBvciB0aGUgY29ubmVjdGVkQ2FsbGJhY2soKS5cbiAgICAgICAgICAgIFByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCkgPT4gdGhpcy5fYXBwbHlTdGF0ZXMoKSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcHVibGljIG92ZXJyaWRlIGFkZChzdGF0ZTogc3RyaW5nKTogdGhpcyB7XG4gICAgICAgICAgaWYgKHRoaXMuX2FwcGxpZWQpIHtcbiAgICAgICAgICAgIHRoaXMuX3RvZ2dsZVN0YXRlKHN0YXRlLCB0cnVlKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHN1cGVyLmFkZChzdGF0ZSk7XG4gICAgICAgIH1cblxuICAgICAgICBwdWJsaWMgb3ZlcnJpZGUgZGVsZXRlKHN0YXRlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAgICAgICB0aGlzLl90b2dnbGVTdGF0ZShzdGF0ZSwgZmFsc2UpO1xuICAgICAgICAgIHJldHVybiBzdXBlci5kZWxldGUoc3RhdGUpO1xuICAgICAgICB9XG5cbiAgICAgICAgcHVibGljIG92ZXJyaWRlIGNsZWFyKCk6IHZvaWQge1xuICAgICAgICAgIHRoaXMuZm9yRWFjaCgoc3RhdGUpID0+IHRoaXMuZGVsZXRlKHN0YXRlKSk7XG4gICAgICAgIH1cblxuICAgICAgICBwdWJsaWMgaG9zdENvbm5lY3RlZCgpOiB2b2lkIHtcbiAgICAgICAgICB0aGlzLl9hcHBseVN0YXRlcygpO1xuICAgICAgICB9XG5cbiAgICAgICAgcHJpdmF0ZSBfdG9nZ2xlU3RhdGUoc3RhdGU6IHN0cmluZywgZW5hYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICAgIHRoaXMuX2hvc3QudG9nZ2xlQXR0cmlidXRlKGBzdGF0ZS0tJHtzdGF0ZX1gLCBlbmFibGVkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHByaXZhdGUgX2FwcGx5U3RhdGVzKCk6IHZvaWQge1xuICAgICAgICAgIGlmICh0aGlzLl9hcHBsaWVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMuX2FwcGxpZWQgPSB0cnVlO1xuICAgICAgICAgIHRoaXMuZm9yRWFjaCgoc3RhdGUpID0+IHRoaXMuX3RvZ2dsZVN0YXRlKHN0YXRlLCB0cnVlKSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICA6IG51bGw7XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEFSSUFNaXhpbiB7XG4gICAgYXJpYUFjdGl2ZURlc2NlbmRhbnRFbGVtZW50OiBFbGVtZW50IHwgbnVsbDtcbiAgICBhcmlhQ29udHJvbHNFbGVtZW50czogcmVhZG9ubHkgRWxlbWVudFtdIHwgbnVsbDtcbiAgICBhcmlhRGVzY3JpYmVkQnlFbGVtZW50czogcmVhZG9ubHkgRWxlbWVudFtdIHwgbnVsbDtcbiAgICBhcmlhRGV0YWlsc0VsZW1lbnRzOiByZWFkb25seSBFbGVtZW50W10gfCBudWxsO1xuICAgIGFyaWFFcnJvck1lc3NhZ2VFbGVtZW50czogcmVhZG9ubHkgRWxlbWVudFtdIHwgbnVsbDtcbiAgICBhcmlhTGFiZWxsZWRCeUVsZW1lbnRzOiByZWFkb25seSBFbGVtZW50W10gfCBudWxsO1xuICAgIGFyaWFPd25zRWxlbWVudHM6IHJlYWRvbmx5IEVsZW1lbnRbXSB8IG51bGw7XG4gIH1cbn1cblxuaWYgKCFpc1NlcnZlcikge1xuICAvLyBUaGlzIGlzIGEgcG9seWZpbGwgZm9yIHRoZSBhcmlhIGVsZW1lbnRzIHByb3BlcnRpZXMgb24gRWxlbWVudEludGVybmFscyBhbmQgRWxlbWVudC5cbiAgbGV0IG5leHRJZCA9IDA7XG4gIGNvbnN0IHJlc29sdmVIb3N0ID0gKG9yaWdpbjogRWxlbWVudEludGVybmFscyB8IEVsZW1lbnQpOiBFbGVtZW50ID0+XG4gICAgb3JpZ2luLnNoYWRvd1Jvb3Q/Lmhvc3QgPz9cbiAgICAob3JpZ2luIGluc3RhbmNlb2YgRWxlbWVudFxuICAgICAgPyBvcmlnaW5cbiAgICAgIDogKCgpID0+IHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1VuYWJsZSB0byByZXNvbHZlIHJlbGF0ZWQgZWxlbWVudCEgVGhpcyBzaG91bGQgbmV2ZXIgaGFwcGVuLicpO1xuICAgICAgICB9KSgpKTtcbiAgY29uc3Qgb2JzZXJ2ZXJPcHRpb25zOiBNdXRhdGlvbk9ic2VydmVySW5pdCA9IHsgYXR0cmlidXRlczogdHJ1ZSwgYXR0cmlidXRlRmlsdGVyOiBbJ2lkJ10gfTtcbiAgY29uc3QgYXNzaWduRWxlbWVudCA9IChcbiAgICBob3N0OiBFbGVtZW50LFxuICAgIGF0dHJpYnV0ZTogc3RyaW5nLFxuICAgIGVsZW1lbnRzOiBSZWNvcmQ8c3RyaW5nLCBFbGVtZW50PixcbiAgKTogdm9pZCA9PiB7XG4gICAgLy8gSW4gY2FzZSBib3RoIEVsZW1lbnQgYW5kIEVsZW1lbnRJbnRlcm5hbHMgcHJvcGVydGllcyBhcmUgc2V0LFxuICAgIC8vIHRoZSBlbGVtZW50IHJlZmVyZW5jZSBmcm9tIEVsZW1lbnQgaGFzIHByaW9yaXR5LlxuICAgIGNvbnN0IGFjdGl2ZUVsZW1lbnQgPSBlbGVtZW50c1tFbGVtZW50Lm5hbWVdID8/IGVsZW1lbnRzW0VsZW1lbnRJbnRlcm5hbHMubmFtZV07XG4gICAgaG9zdC5zZXRBdHRyaWJ1dGUoYXR0cmlidXRlLCAoYWN0aXZlRWxlbWVudC5pZCB8fD0gYGFyaWEtcmVmLSR7bmV4dElkKyt9YCkpO1xuICB9O1xuICBjb25zdCBhc3NpZ25FbGVtZW50cyA9IChcbiAgICBob3N0OiBFbGVtZW50LFxuICAgIGF0dHJpYnV0ZTogc3RyaW5nLFxuICAgIGVsZW1lbnRzOiBSZWNvcmQ8c3RyaW5nLCBFbGVtZW50W10+LFxuICApOiB2b2lkID0+IHtcbiAgICAvLyBJbiBjYXNlIGJvdGggRWxlbWVudCBhbmQgRWxlbWVudEludGVybmFscyBwcm9wZXJ0aWVzIGFyZSBzZXQsXG4gICAgLy8gd2UgY29tYmluZSB0aGUgZWxlbWVudCByZWZlcmVuY2VzLlxuICAgIGhvc3Quc2V0QXR0cmlidXRlKFxuICAgICAgYXR0cmlidXRlLFxuICAgICAgT2JqZWN0LnZhbHVlcyhlbGVtZW50cylcbiAgICAgICAgLnJlZHVjZSgoY3VycmVudCwgbmV4dCkgPT4gY3VycmVudC5jb25jYXQobmV4dCkpXG4gICAgICAgIC5maWx0ZXIoKHYsIGksIGEpID0+IGEuaW5kZXhPZih2KSA9PT0gaSlcbiAgICAgICAgLm1hcCgoZSkgPT4gZS5pZCB8fCAoZS5pZCA9IGBhcmlhLXJlZi0ke25leHRJZCsrfWApKVxuICAgICAgICAuam9pbignICcpLFxuICAgICk7XG4gIH07XG5cbiAgZm9yIChjb25zdCB0eXBlIG9mIFtFbGVtZW50SW50ZXJuYWxzLCBFbGVtZW50XSkge1xuICAgIGNvbnN0IHByb3RvdHlwZSA9IHR5cGUucHJvdG90eXBlO1xuICAgIGlmICghKCdhcmlhQWN0aXZlRGVzY2VuZGFudEVsZW1lbnQnIGluIHByb3RvdHlwZSkpIHtcbiAgICAgIGNvbnN0IGF0dHJpYnV0ZSA9ICdhcmlhLWFjdGl2ZWRlc2NlbmRhbnQnO1xuICAgICAgY29uc3Qgc3RvcmFnZSA9IG5ldyBXZWFrTWFwPFxuICAgICAgICBFbGVtZW50LFxuICAgICAgICB7IGVsZW1lbnRzOiBSZWNvcmQ8c3RyaW5nLCBFbGVtZW50Pjsgb2JzZXJ2ZXI6IE11dGF0aW9uT2JzZXJ2ZXIgfVxuICAgICAgPigpO1xuICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHByb3RvdHlwZSwgJ2FyaWFBY3RpdmVEZXNjZW5kYW50RWxlbWVudCcsIHtcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgICAgICBnZXQodGhpczogRWxlbWVudEludGVybmFscyB8IEVsZW1lbnQpOiBFbGVtZW50IHwgbnVsbCB7XG4gICAgICAgICAgY29uc3QgaG9zdCA9IHJlc29sdmVIb3N0KHRoaXMpO1xuICAgICAgICAgIGNvbnN0IGlkID0gaG9zdC5nZXRBdHRyaWJ1dGUoYXR0cmlidXRlKT8uc3BsaXQoL1xccysvKVswXSA/PyBudWxsO1xuICAgICAgICAgIHJldHVybiBpZFxuICAgICAgICAgICAgPyAoKGhvc3QuZ2V0Um9vdE5vZGUoKSBhcyBEb2N1bWVudCB8IFNoYWRvd1Jvb3QpLmdldEVsZW1lbnRCeUlkPy4oaWQpID8/IG51bGwpXG4gICAgICAgICAgICA6IG51bGw7XG4gICAgICAgIH0sXG4gICAgICAgIHNldCh0aGlzOiBFbGVtZW50SW50ZXJuYWxzIHwgRWxlbWVudCwgdmFsdWU6IEVsZW1lbnQgfCBudWxsKSB7XG4gICAgICAgICAgaWYgKHZhbHVlICE9PSBudWxsICYmICEodmFsdWUgaW5zdGFuY2VvZiBFbGVtZW50KSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcbiAgICAgICAgICAgICAgYEZhaWxlZCB0byBzZXQgdGhlICdhcmlhQWN0aXZlRGVzY2VuZGFudEVsZW1lbnQnIHByb3BlcnR5IG9uICcke3R5cGUubmFtZX0nOiBGYWlsZWQgdG8gY29udmVydCB2YWx1ZSB0byAnRWxlbWVudCcuYCxcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3QgaG9zdCA9IHJlc29sdmVIb3N0KHRoaXMpO1xuICAgICAgICAgIGNvbnN0IGVudHJ5ID0gc3RvcmFnZS5nZXQoaG9zdCk7XG4gICAgICAgICAgZW50cnk/Lm9ic2VydmVyPy5kaXNjb25uZWN0KCk7XG4gICAgICAgICAgaWYgKHZhbHVlID09PSBudWxsKSB7XG4gICAgICAgICAgICBpZiAoZW50cnkpIHtcbiAgICAgICAgICAgICAgZGVsZXRlIGVudHJ5LmVsZW1lbnRzW3R5cGUubmFtZV07XG4gICAgICAgICAgICAgIGlmICghT2JqZWN0LmtleXMoZW50cnkpLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIHN0b3JhZ2UuZGVsZXRlKGhvc3QpO1xuICAgICAgICAgICAgICAgIGhvc3QucmVtb3ZlQXR0cmlidXRlKGF0dHJpYnV0ZSk7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgZW50cnkub2JzZXJ2ZXIub2JzZXJ2ZShPYmplY3QudmFsdWVzKGVudHJ5LmVsZW1lbnRzKVswXSwgb2JzZXJ2ZXJPcHRpb25zKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSBpZiAoIWVudHJ5KSB7XG4gICAgICAgICAgICBjb25zdCBlbGVtZW50czogUmVjb3JkPHN0cmluZywgRWxlbWVudD4gPSB7IFt0eXBlLm5hbWVdOiB2YWx1ZSB9O1xuICAgICAgICAgICAgYXNzaWduRWxlbWVudChob3N0LCBhdHRyaWJ1dGUsIGVsZW1lbnRzKTtcbiAgICAgICAgICAgIGNvbnN0IG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoKCkgPT4gYXNzaWduRWxlbWVudChob3N0LCBhdHRyaWJ1dGUsIGVsZW1lbnRzKSk7XG4gICAgICAgICAgICBvYnNlcnZlci5vYnNlcnZlKHZhbHVlLCBvYnNlcnZlck9wdGlvbnMpO1xuICAgICAgICAgICAgc3RvcmFnZS5zZXQoaG9zdCwgeyBlbGVtZW50cywgb2JzZXJ2ZXIgfSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGVudHJ5LmVsZW1lbnRzW3R5cGUubmFtZV0gPSB2YWx1ZTtcbiAgICAgICAgICAgIGFzc2lnbkVsZW1lbnQoaG9zdCwgYXR0cmlidXRlLCBlbnRyeS5lbGVtZW50cyk7XG4gICAgICAgICAgICBPYmplY3QudmFsdWVzKGVudHJ5LmVsZW1lbnRzKS5mb3JFYWNoKChlKSA9PlxuICAgICAgICAgICAgICBlbnRyeS5vYnNlcnZlci5vYnNlcnZlKGUsIG9ic2VydmVyT3B0aW9ucyksXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGZvciAoY29uc3QgcHJvcGVydHkgb2YgW1xuICAgICAgJ2FyaWFDb250cm9sc0VsZW1lbnRzJyxcbiAgICAgICdhcmlhRGVzY3JpYmVkQnlFbGVtZW50cycsXG4gICAgICAnYXJpYURldGFpbHNFbGVtZW50cycsXG4gICAgICAnYXJpYUVycm9yTWVzc2FnZUVsZW1lbnRzJyxcbiAgICAgICdhcmlhTGFiZWxsZWRCeUVsZW1lbnRzJyxcbiAgICAgICdhcmlhT3duc0VsZW1lbnRzJyxcbiAgICBdKSB7XG4gICAgICBpZiAoIShwcm9wZXJ0eSBpbiBwcm90b3R5cGUpKSB7XG4gICAgICAgIGNvbnN0IHN0b3JhZ2UgPSBuZXcgV2Vha01hcDxcbiAgICAgICAgICBFbGVtZW50LFxuICAgICAgICAgIHsgZWxlbWVudHM6IFJlY29yZDxzdHJpbmcsIEVsZW1lbnRbXT47IG9ic2VydmVyOiBNdXRhdGlvbk9ic2VydmVyIH1cbiAgICAgICAgPigpO1xuICAgICAgICBjb25zdCBhdHRyaWJ1dGUgPSBgYXJpYS0ke3Byb3BlcnR5LnNsaWNlKDQsIC04KS50b0xvd2VyQ2FzZSgpfWA7XG4gICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShwcm90b3R5cGUsIHByb3BlcnR5LCB7XG4gICAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgICAgICAgZ2V0KHRoaXM6IEVsZW1lbnRJbnRlcm5hbHMgfCBFbGVtZW50KTogcmVhZG9ubHkgRWxlbWVudFtdIHwgbnVsbCB7XG4gICAgICAgICAgICBjb25zdCBob3N0ID0gcmVzb2x2ZUhvc3QodGhpcyk7XG4gICAgICAgICAgICBjb25zdCBlbGVtZW50cyA9IGhvc3RcbiAgICAgICAgICAgICAgLmdldEF0dHJpYnV0ZShhdHRyaWJ1dGUpXG4gICAgICAgICAgICAgID8uc3BsaXQoL1xccysvKVxuICAgICAgICAgICAgICAuZmlsdGVyKCh2LCBpLCBhKSA9PiBhLmluZGV4T2YodikgPT09IGkpXG4gICAgICAgICAgICAgIC5tYXAoKGlkKSA9PiAoaG9zdC5nZXRSb290Tm9kZSgpIGFzIERvY3VtZW50IHwgU2hhZG93Um9vdCkuZ2V0RWxlbWVudEJ5SWQ/LihpZCkpXG4gICAgICAgICAgICAgIC5maWx0ZXIoKGUpID0+IGUgaW5zdGFuY2VvZiBFbGVtZW50KTtcbiAgICAgICAgICAgIHJldHVybiBlbGVtZW50cz8ubGVuZ3RoID8gT2JqZWN0LmZyZWV6ZShlbGVtZW50cykgOiBudWxsO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgc2V0KHRoaXM6IEVsZW1lbnRJbnRlcm5hbHMgfCBFbGVtZW50LCB2YWx1ZTogRWxlbWVudFtdKSB7XG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgIHZhbHVlICE9PSBudWxsICYmXG4gICAgICAgICAgICAgICghQXJyYXkuaXNBcnJheSh2YWx1ZSkgfHwgdmFsdWUuc29tZSgoZWxlbWVudCkgPT4gIShlbGVtZW50IGluc3RhbmNlb2YgRWxlbWVudCkpKVxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXG4gICAgICAgICAgICAgICAgYEZhaWxlZCB0byBzZXQgdGhlICcke3Byb3BlcnR5fScgcHJvcGVydHkgb24gJyR7dHlwZS5uYW1lfSc6IEZhaWxlZCB0byBjb252ZXJ0IHZhbHVlIHRvICdFbGVtZW50Jy5gLFxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBob3N0ID0gcmVzb2x2ZUhvc3QodGhpcyk7XG4gICAgICAgICAgICB2YWx1ZSA9IHZhbHVlPy5maWx0ZXIoKHYsIGksIGEpID0+IGEuaW5kZXhPZih2KSA9PT0gaSkgPz8gbnVsbDtcbiAgICAgICAgICAgIGNvbnN0IGVudHJ5ID0gc3RvcmFnZS5nZXQoaG9zdCk7XG4gICAgICAgICAgICBlbnRyeT8ub2JzZXJ2ZXI/LmRpc2Nvbm5lY3QoKTtcbiAgICAgICAgICAgIGlmICh2YWx1ZSA9PT0gbnVsbCkge1xuICAgICAgICAgICAgICBpZiAoZW50cnkpIHtcbiAgICAgICAgICAgICAgICBkZWxldGUgZW50cnkuZWxlbWVudHNbdHlwZS5uYW1lXTtcbiAgICAgICAgICAgICAgICBpZiAoIU9iamVjdC5rZXlzKGVudHJ5LmVsZW1lbnRzKS5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgIHN0b3JhZ2UuZGVsZXRlKGhvc3QpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICBPYmplY3QudmFsdWVzKGVudHJ5LmVsZW1lbnRzKVxuICAgICAgICAgICAgICAgICAgICAucmVkdWNlKChjdXJyZW50LCBuZXh0KSA9PiBjdXJyZW50LmNvbmNhdChuZXh0KSlcbiAgICAgICAgICAgICAgICAgICAgLmZvckVhY2goKGUpID0+IGVudHJ5Lm9ic2VydmVyLm9ic2VydmUoZSwgb2JzZXJ2ZXJPcHRpb25zKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2UgaWYgKCFlbnRyeSkge1xuICAgICAgICAgICAgICBjb25zdCBlbGVtZW50czogUmVjb3JkPHN0cmluZywgRWxlbWVudFtdPiA9IHsgW3R5cGUubmFtZV06IHZhbHVlIH07XG4gICAgICAgICAgICAgIGFzc2lnbkVsZW1lbnRzKGhvc3QsIGF0dHJpYnV0ZSwgZWxlbWVudHMpO1xuICAgICAgICAgICAgICBjb25zdCBvYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKCgpID0+XG4gICAgICAgICAgICAgICAgYXNzaWduRWxlbWVudHMoaG9zdCwgYXR0cmlidXRlLCBlbGVtZW50cyksXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIHZhbHVlLmZvckVhY2goKGVsZW1lbnQpID0+IG9ic2VydmVyLm9ic2VydmUoZWxlbWVudCwgb2JzZXJ2ZXJPcHRpb25zKSk7XG4gICAgICAgICAgICAgIHN0b3JhZ2Uuc2V0KGhvc3QsIHsgZWxlbWVudHMsIG9ic2VydmVyIH0pO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgZW50cnkuZWxlbWVudHNbdHlwZS5uYW1lXSA9IHZhbHVlO1xuICAgICAgICAgICAgICBhc3NpZ25FbGVtZW50cyhob3N0LCBhdHRyaWJ1dGUsIGVudHJ5LmVsZW1lbnRzKTtcbiAgICAgICAgICAgICAgT2JqZWN0LnZhbHVlcyhlbnRyeS5lbGVtZW50cylcbiAgICAgICAgICAgICAgICAucmVkdWNlKChjdXJyZW50LCBuZXh0KSA9PiBjdXJyZW50LmNvbmNhdChuZXh0KSlcbiAgICAgICAgICAgICAgICAuZm9yRWFjaCgoZSkgPT4gZW50cnkub2JzZXJ2ZXIub2JzZXJ2ZShlLCBvYnNlcnZlck9wdGlvbnMpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuY29uc3QgYXR0YWNoZWRFbGVtZW50SW50ZXJuYWxzID0gbmV3IFdlYWtNYXA8RWxlbWVudCwgRWxlbWVudEludGVybmFscz4oKTtcblxuZXhwb3J0IGludGVyZmFjZSBTYmJTdGF0ZUNvbnRyb2xsZXIge1xuICBhZGQodmFsdWU6IHN0cmluZyk6IHRoaXM7XG4gIGRlbGV0ZSh2YWx1ZTogc3RyaW5nKTogYm9vbGVhbjtcbiAgaGFzKHZhbHVlOiBzdHJpbmcpOiBib29sZWFuO1xuICB0b2dnbGUodmFsdWU6IHN0cmluZywgZm9yY2U/OiBib29sZWFuKTogdm9pZDtcbn1cblxuLyoqXG4gKiBDcmVhdGVzIGEgc3RhdGUgY29udHJvbGxlciBmb3IgdGhlIGdpdmVuIGVsZW1lbnQuXG4gKiBOT1QgSU5URU5ERUQgVE8gQkUgVVNFRCBCWSBDT05TVU1FUlMhXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIMm1c3RhdGVDb250cm9sbGVyKGVsZW1lbnQ6IEVsZW1lbnQpOiBTYmJTdGF0ZUNvbnRyb2xsZXI7XG5leHBvcnQgZnVuY3Rpb24gybVzdGF0ZUNvbnRyb2xsZXIoZWxlbWVudDogRWxlbWVudCB8IHVuZGVmaW5lZCB8IG51bGwpOiBTYmJTdGF0ZUNvbnRyb2xsZXIgfCBudWxsO1xuZXhwb3J0IGZ1bmN0aW9uIMm1c3RhdGVDb250cm9sbGVyKGVsZW1lbnQ6IEVsZW1lbnQgfCB1bmRlZmluZWQgfCBudWxsKTogU2JiU3RhdGVDb250cm9sbGVyIHwgbnVsbCB7XG4gIGlmICghZWxlbWVudCkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG4gIGNvbnN0IHN0YXRlcyA9IGF0dGFjaGVkRWxlbWVudEludGVybmFscy5nZXQoZWxlbWVudCk/LnN0YXRlcztcbiAgY29uc3QgdG9nZ2xlOiBTYmJTdGF0ZUNvbnRyb2xsZXJbJ3RvZ2dsZSddID0gZnVuY3Rpb24gKHRoaXM6IFNiYlN0YXRlQ29udHJvbGxlciwgdmFsdWUsIGZvcmNlKSB7XG4gICAgaWYgKGZvcmNlIHx8IChmb3JjZSAhPT0gZmFsc2UgJiYgIXRoaXMuaGFzKHZhbHVlKSkpIHtcbiAgICAgIHRoaXMuYWRkKHZhbHVlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5kZWxldGUodmFsdWUpO1xuICAgIH1cbiAgfTtcbiAgaWYgKHN0YXRlcykge1xuICAgIHJldHVybiB7XG4gICAgICBhZGQodmFsdWUpIHtcbiAgICAgICAgc3RhdGVzLmFkZCh2YWx1ZSk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgfSxcbiAgICAgIGRlbGV0ZTogKHZhbHVlKSA9PiBzdGF0ZXMuZGVsZXRlKHZhbHVlKSxcbiAgICAgIGhhczogKHZhbHVlKSA9PiBzdGF0ZXMuaGFzKHZhbHVlKSxcbiAgICAgIHRvZ2dsZSxcbiAgICB9O1xuICB9IGVsc2Uge1xuICAgIC8vIElmIG5vIEVsZW1lbnRJbnRlcm5hbHMgaXMgYXR0YWNoZWQsIHdlIGZhbGwgYmFjayB0byB1c2luZyBhdHRyaWJ1dGVzLiBFLmcuIGZvciB0cmlnZ2Vycy5cbiAgICByZXR1cm4ge1xuICAgICAgYWRkKHZhbHVlKSB7XG4gICAgICAgIGVsZW1lbnQudG9nZ2xlQXR0cmlidXRlKGBzdGF0ZS0tJHt2YWx1ZX1gLCB0cnVlKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICB9LFxuICAgICAgZGVsZXRlOiAodmFsdWUpID0+IGVsZW1lbnQudG9nZ2xlQXR0cmlidXRlKGBzdGF0ZS0tJHt2YWx1ZX1gLCBmYWxzZSksXG4gICAgICBoYXM6ICh2YWx1ZSkgPT4gZWxlbWVudC5oYXNBdHRyaWJ1dGUoYHN0YXRlLS0ke3ZhbHVlfWApLFxuICAgICAgdG9nZ2xlLFxuICAgIH07XG4gIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBTYmJFbGVtZW50SW50ZXJuYWxzQ29uc3RydWN0b3Ige1xuICByb2xlPzogRWxlbWVudEludGVybmFsc1sncm9sZSddO1xufVxuXG5leHBvcnQgZGVjbGFyZSBhYnN0cmFjdCBjbGFzcyBTYmJFbGVtZW50SW50ZXJuYWxzTWl4aW5UeXBlIHtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGludGVybmFsczogRWxlbWVudEludGVybmFscztcbiAgcHJvdGVjdGVkIHRvZ2dsZVN0YXRlKHZhbHVlOiBzdHJpbmcsIGZvcmNlPzogYm9vbGVhbik6IHZvaWQ7XG59XG5cbi8qKlxuICogQXBwZW5kcyB0aGUgZ2l2ZW4gZWxlbWVudHMgdG8gdGhlIGdpdmVuIGFyaWEgdmFsdWUgYW5kIHJldHVybnMgdGhlXG4gKiBjb21iaW5lZCB2YWx1ZSBhcyBhIG5ldyBhcnJheSBvciBudWxsLCBpZiBib3RoIHZhbHVlcyB3ZXJlIGVtcHR5LlxuICovXG5leHBvcnQgY29uc3QgYXBwZW5kQXJpYUVsZW1lbnRzID0gKFxuICBhcmlhVmFsdWU6IHJlYWRvbmx5IEVsZW1lbnRbXSB8IG51bGwsXG4gIC4uLm5ld0VsZW1lbnRzOiAoRWxlbWVudCB8IG51bGwpW11cbik6IEVsZW1lbnRbXSB8IG51bGwgPT4ge1xuICBjb25zdCBlbGVtZW50cyA9IG5ld0VsZW1lbnRzLmZpbHRlcigodik6IHYgaXMgRWxlbWVudCA9PiAhIXYpO1xuICByZXR1cm4gYXJpYVZhbHVlPy5sZW5ndGggPyBhcmlhVmFsdWUuY29uY2F0KGVsZW1lbnRzKSA6IG5ld0VsZW1lbnRzLmxlbmd0aCA/IGVsZW1lbnRzIDogbnVsbDtcbn07XG5cbi8qKlxuICogUmVtb3ZlcyB0aGUgZ2l2ZW4gZWxlbWVudHMgZnJvbSB0aGUgZ2l2ZW4gYXJpYSB2YWx1ZSBhbmQgcmV0dXJuc1xuICogdGhlIHJlbWFpbmluZyBlbGVtZW50cyBhcyBhIG5ldyBhcnJheSBvciBudWxsLCBpZiB0aGUgcmVzdWx0IGlzIGVtcHR5LlxuICovXG5leHBvcnQgY29uc3QgcmVtb3ZlQXJpYUVsZW1lbnRzID0gKFxuICBhcmlhVmFsdWU6IHJlYWRvbmx5IEVsZW1lbnRbXSB8IG51bGwsXG4gIC4uLnJlbW92YWJsZUVsZW1lbnRzOiAoRWxlbWVudCB8IG51bGwpW11cbik6IEVsZW1lbnRbXSB8IG51bGwgPT4ge1xuICByZW1vdmFibGVFbGVtZW50cyA9IHJlbW92YWJsZUVsZW1lbnRzLmZpbHRlcigodikgPT4gISF2KTtcbiAgY29uc3QgZWxlbWVudHMgPSBhcmlhVmFsdWU/LmZpbHRlcigodikgPT4gIXJlbW92YWJsZUVsZW1lbnRzLmluY2x1ZGVzKHYpKSA/PyBudWxsO1xuICByZXR1cm4gZWxlbWVudHM/Lmxlbmd0aCA/IGVsZW1lbnRzIDogbnVsbDtcbn07XG5cbi8qKlxuICogVGhlIFNiYkVsZW1lbnRJbnRlcm5hbHNNaXhpbiBhdHRhY2hlcyBFbGVtZW50SW50ZXJuYWxzIHRvIHRoZSBlbGVtZW50IGFuZCBzZXRzXG4gKiB0aGUgcm9sZSwgaWYgZGVmaW5lZC5cbiAqL1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuZXhwb3J0IGNvbnN0IFNiYkVsZW1lbnRJbnRlcm5hbHNNaXhpbiA9IDxUIGV4dGVuZHMgQWJzdHJhY3RDb25zdHJ1Y3RvcjxMaXRFbGVtZW50Pj4oXG4gIHN1cGVyQ2xhc3M6IFQsXG4pOiBBYnN0cmFjdENvbnN0cnVjdG9yPFNiYkVsZW1lbnRJbnRlcm5hbHNNaXhpblR5cGU+ICYgVCAmIFNiYkVsZW1lbnRJbnRlcm5hbHNDb25zdHJ1Y3RvciA9PiB7XG4gIGFic3RyYWN0IGNsYXNzIFNiYkVsZW1lbnRJbnRlcm5hbEVsZW1lbnRcbiAgICBleHRlbmRzIHN1cGVyQ2xhc3NcbiAgICBpbXBsZW1lbnRzIFBhcnRpYWw8U2JiRWxlbWVudEludGVybmFsc01peGluVHlwZT5cbiAge1xuICAgIC8qKiBAaW50ZXJuYWwgKi9cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgaW50ZXJuYWxzOiBFbGVtZW50SW50ZXJuYWxzID0gdGhpcy5hdHRhY2hJbnRlcm5hbHMoKTtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvciguLi5hcmdzOiBhbnlbXSkge1xuICAgICAgc3VwZXIoLi4uYXJncyk7XG4gICAgICBhdHRhY2hlZEVsZW1lbnRJbnRlcm5hbHMuc2V0KHRoaXMsIHRoaXMuaW50ZXJuYWxzKTtcbiAgICAgIGlmIChDdXN0b21TdGF0ZVNldFBvbHlmaWxsKSB7XG4gICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLmludGVybmFscywgJ3N0YXRlcycsIHtcbiAgICAgICAgICB2YWx1ZTogbmV3IEN1c3RvbVN0YXRlU2V0UG9seWZpbGwodGhpcyksXG4gICAgICAgICAgd3JpdGFibGU6IGZhbHNlLFxuICAgICAgICAgIGNvbmZpZ3VyYWJsZTogZmFsc2UsXG4gICAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gV2UgdXNlIHRoZSBDdXN0b21TdGF0ZVNldCBwb2x5ZmlsbCBpbiBTU1IsIHdoaWNoIHJlbmRlcnMgdGhlIHN0YXRlIGFzIGF0dHJpYnV0ZXNcbiAgICAgICAgLy8gd2hpY2ggY2FuIGJlIHRyYW5zZmVycmVkIHRvIGNsaWVudCBzaWRlLCB3aGVyZSB3ZSBjYW4gdGhlbiBjb252ZXJ0IFtzdGF0ZS0tKl1cbiAgICAgICAgLy8gYXR0cmlidXRlcyB0byBpbnRlcm5hbCBzdGF0ZS5cbiAgICAgICAgZm9yIChjb25zdCBuYW1lIG9mIHRoaXMuZ2V0QXR0cmlidXRlTmFtZXMoKS5maWx0ZXIoKG4pID0+IG4uc3RhcnRzV2l0aCgnc3RhdGUtLScpKSkge1xuICAgICAgICAgIHRoaXMuaW50ZXJuYWxzLnN0YXRlcy5hZGQobmFtZS5zbGljZSg3KSk7XG4gICAgICAgICAgdGhpcy5yZW1vdmVBdHRyaWJ1dGUobmFtZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGNvbnN0IHJvbGUgPSAodGhpcy5jb25zdHJ1Y3RvciBhcyBTYmJFbGVtZW50SW50ZXJuYWxzQ29uc3RydWN0b3IpLnJvbGU7XG4gICAgICBpZiAocm9sZSkge1xuICAgICAgICB0aGlzLmludGVybmFscy5yb2xlID0gcm9sZTtcbiAgICAgIH1cbiAgICAgIHRoaXMuYWRkQ29udHJvbGxlcihuZXcgU2JiU2xvdFN0YXRlQ29udHJvbGxlcih0aGlzLCB0aGlzLmludGVybmFscykpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCB0b2dnbGVTdGF0ZSh2YWx1ZTogc3RyaW5nLCBmb3JjZT86IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgIGlmIChmb3JjZSB8fCAoZm9yY2UgIT09IGZhbHNlICYmICF0aGlzLmludGVybmFscy5zdGF0ZXMuaGFzKHZhbHVlKSkpIHtcbiAgICAgICAgdGhpcy5pbnRlcm5hbHMuc3RhdGVzLmFkZCh2YWx1ZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmludGVybmFscy5zdGF0ZXMuZGVsZXRlKHZhbHVlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcmV0dXJuIFNiYkVsZW1lbnRJbnRlcm5hbEVsZW1lbnQgYXMgdW5rbm93biBhcyBBYnN0cmFjdENvbnN0cnVjdG9yPFNiYkVsZW1lbnRJbnRlcm5hbHNNaXhpblR5cGU+ICZcbiAgICBUICZcbiAgICBTYmJFbGVtZW50SW50ZXJuYWxzQ29uc3RydWN0b3I7XG59O1xuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBY0EsTUFBTSx5QkFDSixZQUFZLENBQUMsSUFBSSxTQUFTLGlEQUEyQixJQUNqRCxNQUFNLHVCQUNJLElBQVc7QUFBQSxFQUtuQixZQUEyQixPQUFpQjtBQUMxQyxVQUFBO0FBRHlCLFNBQUEsUUFBQTtBQUZuQixTQUFBLFdBQVc7QUFJakIsU0FBSyxNQUFNLGNBQWMsSUFBSTtBQUM3QixRQUFJLENBQUMsVUFBVTtBQUdiLGNBQVEsVUFBVSxLQUFLLE1BQU0sS0FBSyxjQUFjO0FBQUEsSUFDbEQ7QUFBQSxFQUNGO0FBQUEsRUFFZ0IsSUFBSSxPQUFhO0FBQy9CLFFBQUksS0FBSyxVQUFVO0FBQ2pCLFdBQUssYUFBYSxPQUFPLElBQUk7QUFBQSxJQUMvQjtBQUNBLFdBQU8sTUFBTSxJQUFJLEtBQUs7QUFBQSxFQUN4QjtBQUFBLEVBRWdCLE9BQU8sT0FBYTtBQUNsQyxTQUFLLGFB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
@@ -1,7 +1,7 @@
1
1
  import { LitElement } from 'lit';
2
- import { AbstractConstructor } from './constructor.js';
3
- import { FormRestoreReason, FormRestoreState } from './form-associated-mixin.js';
4
- declare const SbbFormAssociatedCheckboxMixinType_base: AbstractConstructor<import('./disabled-mixin.js').SbbDisabledMixinType> & AbstractConstructor<import('./required-mixin.js').SbbRequiredMixinType> & AbstractConstructor<import('./form-associated-mixin.js').SbbFormAssociatedMixinType> & AbstractConstructor<import('./element-internals-mixin.js').SbbElementInternalsMixinType> & typeof LitElement & import('./element-internals-mixin.js').SbbElementInternalsConstructor;
2
+ import { AbstractConstructor } from './constructor.ts';
3
+ import { FormRestoreReason, FormRestoreState } from './form-associated-mixin.ts';
4
+ declare const SbbFormAssociatedCheckboxMixinType_base: AbstractConstructor<import('./disabled-mixin.ts').SbbDisabledMixinType> & AbstractConstructor<import('./required-mixin.ts').SbbRequiredMixinType> & AbstractConstructor<import('./form-associated-mixin.ts').SbbFormAssociatedMixinType> & AbstractConstructor<import('./element-internals-mixin.ts').SbbElementInternalsMixinType> & typeof LitElement & import('./element-internals-mixin.ts').SbbElementInternalsConstructor;
5
5
  export declare abstract class SbbFormAssociatedCheckboxMixinType extends SbbFormAssociatedCheckboxMixinType_base {
6
6
  accessor checked: boolean;
7
7
  formResetCallback(): void;
@@ -144,4 +144,4 @@ const SbbFormAssociatedCheckboxMixin = (superClass) => {
144
144
  export {
145
145
  SbbFormAssociatedCheckboxMixin
146
146
  };
147
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1hc3NvY2lhdGVkLWNoZWNrYm94LW1peGluLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvY29yZS9taXhpbnMvZm9ybS1hc3NvY2lhdGVkLWNoZWNrYm94LW1peGluLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGRlZmF1bHRDb252ZXJ0ZXIsIHR5cGUgTGl0RWxlbWVudCB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBwcm9wZXJ0eSB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcblxuaW1wb3J0IHsgU2JiTGFuZ3VhZ2VDb250cm9sbGVyIH0gZnJvbSAnLi4vY29udHJvbGxlcnMuanMnO1xuaW1wb3J0IHsgaG9zdEF0dHJpYnV0ZXMgfSBmcm9tICcuLi9kZWNvcmF0b3JzLmpzJztcbmltcG9ydCB7IHByZXZlbnRTY3JvbGxPblNwYWNlYmFyUHJlc3MgfSBmcm9tICcuLi9ldmVudGluZy5qcyc7XG5pbXBvcnQgeyBpMThuQ2hlY2tib3hSZXF1aXJlZCB9IGZyb20gJy4uL2kxOG4uanMnO1xuXG5pbXBvcnQgdHlwZSB7IEFic3RyYWN0Q29uc3RydWN0b3IgfSBmcm9tICcuL2NvbnN0cnVjdG9yLmpzJztcbmltcG9ydCB7IFNiYkRpc2FibGVkTWl4aW4gfSBmcm9tICcuL2Rpc2FibGVkLW1peGluLmpzJztcbmltcG9ydCB7IFNiYkVsZW1lbnRJbnRlcm5hbHNNaXhpbiB9IGZyb20gJy4vZWxlbWVudC1pbnRlcm5hbHMtbWl4aW4uanMnO1xuaW1wb3J0IHtcbiAgU2JiRm9ybUFzc29jaWF0ZWRNaXhpbixcbiAgdHlwZSBGb3JtUmVzdG9yZVJlYXNvbixcbiAgdHlwZSBGb3JtUmVzdG9yZVN0YXRlLFxufSBmcm9tICcuL2Zvcm0tYXNzb2NpYXRlZC1taXhpbi5qcyc7XG5pbXBvcnQgeyBTYmJSZXF1aXJlZE1peGluIH0gZnJvbSAnLi9yZXF1aXJlZC1taXhpbi5qcyc7XG5cbnR5cGUgQ2hlY2tlZFNldHRlclZhbHVlID0geyB2YWx1ZTogYm9vbGVhbjsgYXR0cmlidXRlOiBib29sZWFuIH07XG5cbmV4cG9ydCBkZWNsYXJlIGFic3RyYWN0IGNsYXNzIFNiYkZvcm1Bc3NvY2lhdGVkQ2hlY2tib3hNaXhpblR5cGUgZXh0ZW5kcyBTYmJEaXNhYmxlZE1peGluKFxuICBTYmJSZXF1aXJlZE1peGluKFNiYkZvcm1Bc3NvY2lhdGVkTWl4aW4oU2JiRWxlbWVudEludGVybmFsc01peGluKExpdEVsZW1lbnQpKSksXG4pIHtcbiAgcHVibGljIGFjY2Vzc29yIGNoZWNrZWQ6IGJvb2xlYW47XG5cbiAgcHVibGljIGZvcm1SZXNldENhbGxiYWNrKCk6IHZvaWQ7XG4gIHB1YmxpYyBmb3JtU3RhdGVSZXN0b3JlQ2FsbGJhY2soc3RhdGU6IEZvcm1SZXN0b3JlU3RhdGUgfCBudWxsLCByZWFzb246IEZvcm1SZXN0b3JlUmVhc29uKTogdm9pZDtcblxuICBwcm90ZWN0ZWQgaXNSZXF1aXJlZEV4dGVybmFsbHkoKTogYm9vbGVhbjtcbiAgcHJvdGVjdGVkIHdpdGhVc2VySW50ZXJhY3Rpb24/KCk6IHZvaWQ7XG4gIHByb3RlY3RlZCB1cGRhdGVGb3JtVmFsdWUoKTogdm9pZDtcbn1cblxuLyoqXG4gKiBUaGUgRm9ybUFzc29jaWF0ZWRDaGVja2JveE1peGluIGVuYWJsZXMgbmF0aXZlIGZvcm0gc3VwcG9ydCBmb3IgY2hlY2tib3ggY29udHJvbHMuXG4gKlxuICogSW5oZXJpdGVkIGNsYXNzZXMgTVVTVCBpbXBsZW1lbnQgdGhlIGFyaWFDaGVja2VkIHN0YXRlIChFbGVtZW50SW50ZXJuYWxzKSB0aGVtc2VsdmVzLlxuICovXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG5leHBvcnQgY29uc3QgU2JiRm9ybUFzc29jaWF0ZWRDaGVja2JveE1peGluID0gPFQgZXh0ZW5kcyBBYnN0cmFjdENvbnN0cnVjdG9yPExpdEVsZW1lbnQ+PihcbiAgc3VwZXJDbGFzczogVCxcbik6IEFic3RyYWN0Q29uc3RydWN0b3I8U2JiRm9ybUFzc29jaWF0ZWRDaGVja2JveE1peGluVHlwZT4gJiBUID0+IHtcbiAgQGhvc3RBdHRyaWJ1dGVzKHtcbiAgICB0YWJpbmRleDogJzAnLFxuICB9KVxuICBhYnN0cmFjdCBjbGFzcyBTYmJGb3JtQXNzb2NpYXRlZENoZWNrYm94RWxlbWVudFxuICAgIGV4dGVuZHMgU2JiRGlzYWJsZWRNaXhpbihcbiAgICAgIFNiYlJlcXVpcmVkTWl4aW4oU2JiRm9ybUFzc29jaWF0ZWRNaXhpbihTYmJFbGVtZW50SW50ZXJuYWxzTWl4aW4oc3VwZXJDbGFzcykpKSxcbiAgICApXG4gICAgaW1wbGVtZW50cyBQYXJ0aWFsPFNiYkZvcm1Bc3NvY2lhdGVkQ2hlY2tib3hNaXhpblR5cGU+XG4gIHtcbiAgICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHJlYWRvbmx5IHJvbGUgPSAnY2hlY2tib3gnO1xuXG4gICAgcHJpdmF0ZSBfYXR0cmlidXRlTXV0YXRpb25CbG9ja2VkID0gZmFsc2U7XG4gICAgcHJpdmF0ZSBfbGFuZ3VhZ2VDb250cm9sbGVyID0gbmV3IFNiYkxhbmd1YWdlQ29udHJvbGxlcih0aGlzKTtcblxuICAgIC8qKiBXaGV0aGVyIHRoZSBjaGVja2JveCBpcyBjaGVja2VkLiAqL1xuICAgIEBwcm9wZXJ0eSh7XG4gICAgICB0eXBlOiBCb29sZWFuLFxuICAgICAgY29udmVydGVyOiB7XG4gICAgICAgIC4uLmRlZmF1bHRDb252ZXJ0ZXIsXG4gICAgICAgIC8vIFdlIG5lZWQgdG8gcGFzcyBpbmZvcm1hdGlvbiB0byB0aGUgc2V0dGVyIHNvIHRoYXQgd2Uga25vdyBpdCB3YXMgY2FsbGVkIGJ5IGF0dHJpYnV0ZSBjaGFuZ2UuXG4gICAgICAgIGZyb21BdHRyaWJ1dGU6ICh2YWx1ZTogc3RyaW5nIHwgbnVsbCwgdHlwZT86IHVua25vd24pOiBDaGVja2VkU2V0dGVyVmFsdWUgPT4ge1xuICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGRlZmF1bHRDb252ZXJ0ZXIuZnJvbUF0dHJpYnV0ZT8uKHZhbHVlLCB0eXBlKTtcbiAgICAgICAgICByZXR1cm4geyB2YWx1ZTogcmVzdWx0LCBhdHRyaWJ1dGU6IHRydWUgfSBhcyBDaGVja2VkU2V0dGVyVmFsdWU7XG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0pXG4gICAgcHVibGljIHNldCBjaGVja2VkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICBjb25zdCBhdHRyaWJ1dGVTZXR0ZXIgPVxuICAgICAgICB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnID8gKHZhbHVlIGFzIHVua25vd24gYXMgQ2hlY2tlZFNldHRlclZhbHVlKS5hdHRyaWJ1dGUgOiBmYWxzZTtcbiAgICAgIGlmIChhdHRyaWJ1dGVTZXR0ZXIpIHtcbiAgICAgICAgdmFsdWUgPSAodmFsdWUgYXMgdW5rbm93biBhcyBDaGVja2VkU2V0dGVyVmFsdWUpLnZhbHVlO1xuICAgICAgfVxuXG4gICAgICAvLyBBcyBzb29uIGFzIG11dGF0aW9uIHdhcyBkb25lIG5vdCBieSBzZXR0aW5nIGF0dHJpYnV0ZSxcbiAgICAgIC8vIHdlIG5lZWQgdG8gYmxvY2sgc3luY2luZyBhdHRyaWJ1dGUuXG4gICAgICBpZiAodGhpcy5oYXNVcGRhdGVkICYmICFhdHRyaWJ1dGVTZXR0ZXIpIHtcbiAgICAgICAgdGhpcy5fYXR0cmlidXRlTXV0YXRpb25CbG9ja2VkID0gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIHRoaXMuX2NoZWNrZWQgPSBCb29sZWFuKHZhbHVlKTtcbiAgICAgIHRoaXMudXBkYXRlRm9ybVZhbHVlKCk7XG4gICAgfVxuICAgIHB1YmxpYyBnZXQgY2hlY2tlZCgpOiBib29sZWFuIHtcbiAgICAgIHJldHVybiB0aGlzLl9jaGVja2VkO1xuICAgIH1cbiAgICBwcml2YXRlIF9jaGVja2VkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBGb3JtIHR5cGUgb2YgZWxlbWVudC5cbiAgICAgKiBAZGVmYXVsdCAnY2hlY2tib3gnXG4gICAgICovXG4gICAgcHVibGljIG92ZXJyaWRlIGdldCB0eXBlKCk6IHN0cmluZyB7XG4gICAgICByZXR1cm4gJ2NoZWNrYm94JztcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgY29uc3RydWN0b3IoKSB7XG4gICAgICBzdXBlcigpO1xuICAgICAgdGhpcy5hZGRFdmVudExpc3RlbmVyPy4oJ2NsaWNrJywgdGhpcy5faGFuZGxlVXNlckludGVyYWN0aW9uKTtcbiAgICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcj8uKCdrZXlkb3duJywgcHJldmVudFNjcm9sbE9uU3BhY2ViYXJQcmVzcyk7XG4gICAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/Ligna2V5dXAnLCB0aGlzLl9oYW5kbGVLZXlib2FyZEludGVyYWN0aW9uKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb3ZlcnJpZGUgYXR0cmlidXRlQ2hhbmdlZENhbGxiYWNrKFxuICAgICAgbmFtZTogc3RyaW5nLFxuICAgICAgb2xkOiBzdHJpbmcgfCBudWxsLFxuICAgICAgdmFsdWU6IHN0cmluZyB8IG51bGwsXG4gICAgKTogdm9pZCB7XG4gICAgICAvLyBBdHRyaWJ1dGUgc2hvdWxkIG5vdCBiZSBpbnRlcnByZXRlZCBhZnRlciBwcm9ncmFtbWF0aWMgb3IgbWFudWFsIHN0YXRlIGNoYW5nZS5cbiAgICAgIGlmIChuYW1lICE9PSAnY2hlY2tlZCcgfHwgIXRoaXMuX2F0dHJpYnV0ZU11dGF0aW9uQmxvY2tlZCkge1xuICAgICAgICBzdXBlci5hdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2sobmFtZSwgb2xkLCB2YWx1ZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSXMgY2FsbGVkIHdoZW5ldmVyIHRoZSBmb3JtIGlzIGJlaW5nIHJlc2V0LlxuICAgICAqXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgcHVibGljIG92ZXJyaWRlIGZvcm1SZXNldENhbGxiYWNrKCk6IHZvaWQge1xuICAgICAgdGhpcy5jaGVja2VkID0gdGhpcy5oYXNBdHRyaWJ1dGUoJ2NoZWNrZWQnKTtcbiAgICAgIHRoaXMuX2F0dHJpYnV0ZU11dGF0aW9uQmxvY2tlZCA9IGZhbHNlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqICBDYWxsZWQgd2hlbiB0aGUgYnJvd3NlciBpcyB0cnlpbmcgdG8gcmVzdG9yZSBlbGVtZW504oCZcyBzdGF0ZSB0byBzdGF0ZSBpbiB3aGljaCBjYXNlXG4gICAgICogIHJlYXNvbiBpcyBcInJlc3RvcmVcIiwgb3Igd2hlbiB0aGUgYnJvd3NlciBpcyB0cnlpbmcgdG8gZnVsZmlsbCBhdXRvZmlsbCBvbiBiZWhhbGYgb2ZcbiAgICAgKiAgdXNlciBpbiB3aGljaCBjYXNlIHJlYXNvbiBpcyBcImF1dG9jb21wbGV0ZVwiLlxuICAgICAqICBJbiB0aGUgY2FzZSBvZiBcInJlc3RvcmVcIiwgc3RhdGUgaXMgYSBzdHJpbmcsIEZpbGUsIG9yIEZvcm1EYXRhIG9iamVjdFxuICAgICAqICBwcmV2aW91c2x5IHNldCBhcyB0aGUgc2Vjb25kIGFyZ3VtZW50IHRvIHNldEZvcm1WYWx1ZS5cbiAgICAgKlxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHB1YmxpYyBvdmVycmlkZSBmb3JtU3RhdGVSZXN0b3JlQ2FsbGJhY2soXG4gICAgICBzdGF0ZTogRm9ybVJlc3RvcmVTdGF0ZSB8IG51bGwsXG4gICAgICBfcmVhc29uOiBGb3JtUmVzdG9yZVJlYXNvbixcbiAgICApOiB2b2lkIHtcbiAgICAgIGlmIChzdGF0ZSkge1xuICAgICAgICB0aGlzLmNoZWNrZWQgPSBzdGF0ZSA9PT0gJ3RydWUnO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFkZGl0aW9uYWwgbG9naWMgd2hpY2ggaXMgYmVpbmcgZXhlY3V0ZWQgd2hlbiB1c2VyXG4gICAgICogaW50ZXJhY3Rpb24gaGFwcGVucyBhbmQgc3RhdGUgaXMgbm90IGRpc2FibGVkLlxuICAgICAqL1xuICAgIHByb3RlY3RlZCB3aXRoVXNlckludGVyYWN0aW9uPygpOiB2b2lkO1xuXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIHVwZGF0ZUZvcm1WYWx1ZSgpOiB2b2lkIHtcbiAgICAgIGlmICh0aGlzLmNoZWNrZWQpIHtcbiAgICAgICAgc3VwZXIudXBkYXRlRm9ybVZhbHVlKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmludGVybmFscy5zZXRGb3JtVmFsdWUobnVsbCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIGZvcm1TdGF0ZSgpOiBGb3JtUmVzdG9yZVN0YXRlIHtcbiAgICAgIHJldHVybiBgJHt0aGlzLmNoZWNrZWR9YDtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgc2hvdWxkVmFsaWRhdGUobmFtZTogUHJvcGVydHlLZXkgfCB1bmRlZmluZWQpOiBib29sZWFuIHtcbiAgICAgIHJldHVybiBzdXBlci5zaG91bGRWYWxpZGF0ZShuYW1lKSB8fCBuYW1lID09PSAnY2hlY2tlZCcgfHwgbmFtZSA9PT0gJ3JlcXVpcmVkJztcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgdmFsaWRhdGUoKTogdm9pZCB7XG4gICAgICBzdXBlci52YWxpZGF0ZSgpO1xuICAgICAgaWYgKHRoaXMucmVxdWlyZWQgJiYgIXRoaXMuY2hlY2tlZCkge1xuICAgICAgICB0aGlzLnNldFZhbGlkaXR5RmxhZyhcbiAgICAgICAgICAndmFsdWVNaXNzaW5nJyxcbiAgICAgICAgICBpMThuQ2hlY2tib3hSZXF1aXJlZFt0aGlzLl9sYW5ndWFnZUNvbnRyb2xsZXIuY3VycmVudF0sXG4gICAgICAgICk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnJlbW92ZVZhbGlkaXR5RmxhZygndmFsdWVNaXNzaW5nJyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLyoqIE1ldGhvZCB0cmlnZ2VyZWQgb24ga2V5Ym9hcmQgdXNlciBpbnRlcmFjdGlvbiB3aXRoIGNoZWNrYm94LiAqL1xuICAgIHByaXZhdGUgX2hhbmRsZUtleWJvYXJkSW50ZXJhY3Rpb24gPSAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkID0+IHtcbiAgICAgIGlmIChldmVudC5rZXkgPT09ICcgJykge1xuICAgICAgICB0aGlzLl9oYW5kbGVVc2VySW50ZXJhY3Rpb24oKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgLyoqIE1ldGhvZCB0cmlnZ2VyZWQgb24gdXNlciBpbnRlcmFjdGlvbiB3aXRoIGNoZWNrYm94LiAqL1xuICAgIHByaXZhdGUgX2hhbmRsZVVzZXJJbnRlcmFjdGlvbiA9ICgpOiB2b2lkID0+IHtcbiAgICAgIGlmICh0aGlzLmRpc2FibGVkKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHRoaXMud2l0aFVzZXJJbnRlcmFjdGlvbj8uKCk7XG4gICAgICB0aGlzLmNoZWNrZWQgPSAhdGhpcy5jaGVja2VkO1xuICAgICAgdGhpcy5fYXR0cmlidXRlTXV0YXRpb25CbG9ja2VkID0gdHJ1ZTtcblxuICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBJbnB1dEV2ZW50KCdpbnB1dCcsIHsgY29tcG9zZWQ6IHRydWUsIGJ1YmJsZXM6IHRydWUgfSkpO1xuICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgnY2hhbmdlJywgeyBidWJibGVzOiB0cnVlIH0pKTtcbiAgICB9O1xuICB9XG5cbiAgcmV0dXJuIFNiYkZvcm1Bc3NvY2lhdGVkQ2hlY2tib3hFbGVtZW50IGFzIHVua25vd24gYXMgQWJzdHJhY3RDb25zdHJ1Y3RvcjxTYmJGb3JtQXNzb2NpYXRlZENoZWNrYm94TWl4aW5UeXBlPiAmXG4gICAgVDtcbn07XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUF1Q08sTUFBTSxpQ0FBaUMsQ0FDNUMsZUFDK0Q7TUFJaEQsb0NBQWdDLE1BQUE7O0FBSDlDLFFBQUEsbUJBQUEsQ0FBQSxlQUFlO0FBQUEsTUFDZCxVQUFVO0FBQUEsSUFBQSxDQUNYLENBQUM7Ozs7c0JBRVEsaUJB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
147
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1hc3NvY2lhdGVkLWNoZWNrYm94LW1peGluLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvY29yZS9taXhpbnMvZm9ybS1hc3NvY2lhdGVkLWNoZWNrYm94LW1peGluLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGRlZmF1bHRDb252ZXJ0ZXIsIHR5cGUgTGl0RWxlbWVudCB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBwcm9wZXJ0eSB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcblxuaW1wb3J0IHsgU2JiTGFuZ3VhZ2VDb250cm9sbGVyIH0gZnJvbSAnLi4vY29udHJvbGxlcnMudHMnO1xuaW1wb3J0IHsgaG9zdEF0dHJpYnV0ZXMgfSBmcm9tICcuLi9kZWNvcmF0b3JzLnRzJztcbmltcG9ydCB7IHByZXZlbnRTY3JvbGxPblNwYWNlYmFyUHJlc3MgfSBmcm9tICcuLi9ldmVudGluZy50cyc7XG5pbXBvcnQgeyBpMThuQ2hlY2tib3hSZXF1aXJlZCB9IGZyb20gJy4uL2kxOG4udHMnO1xuXG5pbXBvcnQgdHlwZSB7IEFic3RyYWN0Q29uc3RydWN0b3IgfSBmcm9tICcuL2NvbnN0cnVjdG9yLnRzJztcbmltcG9ydCB7IFNiYkRpc2FibGVkTWl4aW4gfSBmcm9tICcuL2Rpc2FibGVkLW1peGluLnRzJztcbmltcG9ydCB7IFNiYkVsZW1lbnRJbnRlcm5hbHNNaXhpbiB9IGZyb20gJy4vZWxlbWVudC1pbnRlcm5hbHMtbWl4aW4udHMnO1xuaW1wb3J0IHtcbiAgU2JiRm9ybUFzc29jaWF0ZWRNaXhpbixcbiAgdHlwZSBGb3JtUmVzdG9yZVJlYXNvbixcbiAgdHlwZSBGb3JtUmVzdG9yZVN0YXRlLFxufSBmcm9tICcuL2Zvcm0tYXNzb2NpYXRlZC1taXhpbi50cyc7XG5pbXBvcnQgeyBTYmJSZXF1aXJlZE1peGluIH0gZnJvbSAnLi9yZXF1aXJlZC1taXhpbi50cyc7XG5cbnR5cGUgQ2hlY2tlZFNldHRlclZhbHVlID0geyB2YWx1ZTogYm9vbGVhbjsgYXR0cmlidXRlOiBib29sZWFuIH07XG5cbmV4cG9ydCBkZWNsYXJlIGFic3RyYWN0IGNsYXNzIFNiYkZvcm1Bc3NvY2lhdGVkQ2hlY2tib3hNaXhpblR5cGUgZXh0ZW5kcyBTYmJEaXNhYmxlZE1peGluKFxuICBTYmJSZXF1aXJlZE1peGluKFNiYkZvcm1Bc3NvY2lhdGVkTWl4aW4oU2JiRWxlbWVudEludGVybmFsc01peGluKExpdEVsZW1lbnQpKSksXG4pIHtcbiAgcHVibGljIGFjY2Vzc29yIGNoZWNrZWQ6IGJvb2xlYW47XG5cbiAgcHVibGljIGZvcm1SZXNldENhbGxiYWNrKCk6IHZvaWQ7XG4gIHB1YmxpYyBmb3JtU3RhdGVSZXN0b3JlQ2FsbGJhY2soc3RhdGU6IEZvcm1SZXN0b3JlU3RhdGUgfCBudWxsLCByZWFzb246IEZvcm1SZXN0b3JlUmVhc29uKTogdm9pZDtcblxuICBwcm90ZWN0ZWQgaXNSZXF1aXJlZEV4dGVybmFsbHkoKTogYm9vbGVhbjtcbiAgcHJvdGVjdGVkIHdpdGhVc2VySW50ZXJhY3Rpb24/KCk6IHZvaWQ7XG4gIHByb3RlY3RlZCB1cGRhdGVGb3JtVmFsdWUoKTogdm9pZDtcbn1cblxuLyoqXG4gKiBUaGUgRm9ybUFzc29jaWF0ZWRDaGVja2JveE1peGluIGVuYWJsZXMgbmF0aXZlIGZvcm0gc3VwcG9ydCBmb3IgY2hlY2tib3ggY29udHJvbHMuXG4gKlxuICogSW5oZXJpdGVkIGNsYXNzZXMgTVVTVCBpbXBsZW1lbnQgdGhlIGFyaWFDaGVja2VkIHN0YXRlIChFbGVtZW50SW50ZXJuYWxzKSB0aGVtc2VsdmVzLlxuICovXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG5leHBvcnQgY29uc3QgU2JiRm9ybUFzc29jaWF0ZWRDaGVja2JveE1peGluID0gPFQgZXh0ZW5kcyBBYnN0cmFjdENvbnN0cnVjdG9yPExpdEVsZW1lbnQ+PihcbiAgc3VwZXJDbGFzczogVCxcbik6IEFic3RyYWN0Q29uc3RydWN0b3I8U2JiRm9ybUFzc29jaWF0ZWRDaGVja2JveE1peGluVHlwZT4gJiBUID0+IHtcbiAgQGhvc3RBdHRyaWJ1dGVzKHtcbiAgICB0YWJpbmRleDogJzAnLFxuICB9KVxuICBhYnN0cmFjdCBjbGFzcyBTYmJGb3JtQXNzb2NpYXRlZENoZWNrYm94RWxlbWVudFxuICAgIGV4dGVuZHMgU2JiRGlzYWJsZWRNaXhpbihcbiAgICAgIFNiYlJlcXVpcmVkTWl4aW4oU2JiRm9ybUFzc29jaWF0ZWRNaXhpbihTYmJFbGVtZW50SW50ZXJuYWxzTWl4aW4oc3VwZXJDbGFzcykpKSxcbiAgICApXG4gICAgaW1wbGVtZW50cyBQYXJ0aWFsPFNiYkZvcm1Bc3NvY2lhdGVkQ2hlY2tib3hNaXhpblR5cGU+XG4gIHtcbiAgICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHJlYWRvbmx5IHJvbGUgPSAnY2hlY2tib3gnO1xuXG4gICAgcHJpdmF0ZSBfYXR0cmlidXRlTXV0YXRpb25CbG9ja2VkID0gZmFsc2U7XG4gICAgcHJpdmF0ZSBfbGFuZ3VhZ2VDb250cm9sbGVyID0gbmV3IFNiYkxhbmd1YWdlQ29udHJvbGxlcih0aGlzKTtcblxuICAgIC8qKiBXaGV0aGVyIHRoZSBjaGVja2JveCBpcyBjaGVja2VkLiAqL1xuICAgIEBwcm9wZXJ0eSh7XG4gICAgICB0eXBlOiBCb29sZWFuLFxuICAgICAgY29udmVydGVyOiB7XG4gICAgICAgIC4uLmRlZmF1bHRDb252ZXJ0ZXIsXG4gICAgICAgIC8vIFdlIG5lZWQgdG8gcGFzcyBpbmZvcm1hdGlvbiB0byB0aGUgc2V0dGVyIHNvIHRoYXQgd2Uga25vdyBpdCB3YXMgY2FsbGVkIGJ5IGF0dHJpYnV0ZSBjaGFuZ2UuXG4gICAgICAgIGZyb21BdHRyaWJ1dGU6ICh2YWx1ZTogc3RyaW5nIHwgbnVsbCwgdHlwZT86IHVua25vd24pOiBDaGVja2VkU2V0dGVyVmFsdWUgPT4ge1xuICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGRlZmF1bHRDb252ZXJ0ZXIuZnJvbUF0dHJpYnV0ZT8uKHZhbHVlLCB0eXBlKTtcbiAgICAgICAgICByZXR1cm4geyB2YWx1ZTogcmVzdWx0LCBhdHRyaWJ1dGU6IHRydWUgfSBhcyBDaGVja2VkU2V0dGVyVmFsdWU7XG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0pXG4gICAgcHVibGljIHNldCBjaGVja2VkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICBjb25zdCBhdHRyaWJ1dGVTZXR0ZXIgPVxuICAgICAgICB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnID8gKHZhbHVlIGFzIHVua25vd24gYXMgQ2hlY2tlZFNldHRlclZhbHVlKS5hdHRyaWJ1dGUgOiBmYWxzZTtcbiAgICAgIGlmIChhdHRyaWJ1dGVTZXR0ZXIpIHtcbiAgICAgICAgdmFsdWUgPSAodmFsdWUgYXMgdW5rbm93biBhcyBDaGVja2VkU2V0dGVyVmFsdWUpLnZhbHVlO1xuICAgICAgfVxuXG4gICAgICAvLyBBcyBzb29uIGFzIG11dGF0aW9uIHdhcyBkb25lIG5vdCBieSBzZXR0aW5nIGF0dHJpYnV0ZSxcbiAgICAgIC8vIHdlIG5lZWQgdG8gYmxvY2sgc3luY2luZyBhdHRyaWJ1dGUuXG4gICAgICBpZiAodGhpcy5oYXNVcGRhdGVkICYmICFhdHRyaWJ1dGVTZXR0ZXIpIHtcbiAgICAgICAgdGhpcy5fYXR0cmlidXRlTXV0YXRpb25CbG9ja2VkID0gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIHRoaXMuX2NoZWNrZWQgPSBCb29sZWFuKHZhbHVlKTtcbiAgICAgIHRoaXMudXBkYXRlRm9ybVZhbHVlKCk7XG4gICAgfVxuICAgIHB1YmxpYyBnZXQgY2hlY2tlZCgpOiBib29sZWFuIHtcbiAgICAgIHJldHVybiB0aGlzLl9jaGVja2VkO1xuICAgIH1cbiAgICBwcml2YXRlIF9jaGVja2VkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBGb3JtIHR5cGUgb2YgZWxlbWVudC5cbiAgICAgKiBAZGVmYXVsdCAnY2hlY2tib3gnXG4gICAgICovXG4gICAgcHVibGljIG92ZXJyaWRlIGdldCB0eXBlKCk6IHN0cmluZyB7XG4gICAgICByZXR1cm4gJ2NoZWNrYm94JztcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgY29uc3RydWN0b3IoKSB7XG4gICAgICBzdXBlcigpO1xuICAgICAgdGhpcy5hZGRFdmVudExpc3RlbmVyPy4oJ2NsaWNrJywgdGhpcy5faGFuZGxlVXNlckludGVyYWN0aW9uKTtcbiAgICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcj8uKCdrZXlkb3duJywgcHJldmVudFNjcm9sbE9uU3BhY2ViYXJQcmVzcyk7XG4gICAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/Ligna2V5dXAnLCB0aGlzLl9oYW5kbGVLZXlib2FyZEludGVyYWN0aW9uKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb3ZlcnJpZGUgYXR0cmlidXRlQ2hhbmdlZENhbGxiYWNrKFxuICAgICAgbmFtZTogc3RyaW5nLFxuICAgICAgb2xkOiBzdHJpbmcgfCBudWxsLFxuICAgICAgdmFsdWU6IHN0cmluZyB8IG51bGwsXG4gICAgKTogdm9pZCB7XG4gICAgICAvLyBBdHRyaWJ1dGUgc2hvdWxkIG5vdCBiZSBpbnRlcnByZXRlZCBhZnRlciBwcm9ncmFtbWF0aWMgb3IgbWFudWFsIHN0YXRlIGNoYW5nZS5cbiAgICAgIGlmIChuYW1lICE9PSAnY2hlY2tlZCcgfHwgIXRoaXMuX2F0dHJpYnV0ZU11dGF0aW9uQmxvY2tlZCkge1xuICAgICAgICBzdXBlci5hdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2sobmFtZSwgb2xkLCB2YWx1ZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSXMgY2FsbGVkIHdoZW5ldmVyIHRoZSBmb3JtIGlzIGJlaW5nIHJlc2V0LlxuICAgICAqXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgcHVibGljIG92ZXJyaWRlIGZvcm1SZXNldENhbGxiYWNrKCk6IHZvaWQge1xuICAgICAgdGhpcy5jaGVja2VkID0gdGhpcy5oYXNBdHRyaWJ1dGUoJ2NoZWNrZWQnKTtcbiAgICAgIHRoaXMuX2F0dHJpYnV0ZU11dGF0aW9uQmxvY2tlZCA9IGZhbHNlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqICBDYWxsZWQgd2hlbiB0aGUgYnJvd3NlciBpcyB0cnlpbmcgdG8gcmVzdG9yZSBlbGVtZW504oCZcyBzdGF0ZSB0byBzdGF0ZSBpbiB3aGljaCBjYXNlXG4gICAgICogIHJlYXNvbiBpcyBcInJlc3RvcmVcIiwgb3Igd2hlbiB0aGUgYnJvd3NlciBpcyB0cnlpbmcgdG8gZnVsZmlsbCBhdXRvZmlsbCBvbiBiZWhhbGYgb2ZcbiAgICAgKiAgdXNlciBpbiB3aGljaCBjYXNlIHJlYXNvbiBpcyBcImF1dG9jb21wbGV0ZVwiLlxuICAgICAqICBJbiB0aGUgY2FzZSBvZiBcInJlc3RvcmVcIiwgc3RhdGUgaXMgYSBzdHJpbmcsIEZpbGUsIG9yIEZvcm1EYXRhIG9iamVjdFxuICAgICAqICBwcmV2aW91c2x5IHNldCBhcyB0aGUgc2Vjb25kIGFyZ3VtZW50IHRvIHNldEZvcm1WYWx1ZS5cbiAgICAgKlxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHB1YmxpYyBvdmVycmlkZSBmb3JtU3RhdGVSZXN0b3JlQ2FsbGJhY2soXG4gICAgICBzdGF0ZTogRm9ybVJlc3RvcmVTdGF0ZSB8IG51bGwsXG4gICAgICBfcmVhc29uOiBGb3JtUmVzdG9yZVJlYXNvbixcbiAgICApOiB2b2lkIHtcbiAgICAgIGlmIChzdGF0ZSkge1xuICAgICAgICB0aGlzLmNoZWNrZWQgPSBzdGF0ZSA9PT0gJ3RydWUnO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFkZGl0aW9uYWwgbG9naWMgd2hpY2ggaXMgYmVpbmcgZXhlY3V0ZWQgd2hlbiB1c2VyXG4gICAgICogaW50ZXJhY3Rpb24gaGFwcGVucyBhbmQgc3RhdGUgaXMgbm90IGRpc2FibGVkLlxuICAgICAqL1xuICAgIHByb3RlY3RlZCB3aXRoVXNlckludGVyYWN0aW9uPygpOiB2b2lkO1xuXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIHVwZGF0ZUZvcm1WYWx1ZSgpOiB2b2lkIHtcbiAgICAgIGlmICh0aGlzLmNoZWNrZWQpIHtcbiAgICAgICAgc3VwZXIudXBkYXRlRm9ybVZhbHVlKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmludGVybmFscy5zZXRGb3JtVmFsdWUobnVsbCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIGZvcm1TdGF0ZSgpOiBGb3JtUmVzdG9yZVN0YXRlIHtcbiAgICAgIHJldHVybiBgJHt0aGlzLmNoZWNrZWR9YDtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgc2hvdWxkVmFsaWRhdGUobmFtZTogUHJvcGVydHlLZXkgfCB1bmRlZmluZWQpOiBib29sZWFuIHtcbiAgICAgIHJldHVybiBzdXBlci5zaG91bGRWYWxpZGF0ZShuYW1lKSB8fCBuYW1lID09PSAnY2hlY2tlZCcgfHwgbmFtZSA9PT0gJ3JlcXVpcmVkJztcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgdmFsaWRhdGUoKTogdm9pZCB7XG4gICAgICBzdXBlci52YWxpZGF0ZSgpO1xuICAgICAgaWYgKHRoaXMucmVxdWlyZWQgJiYgIXRoaXMuY2hlY2tlZCkge1xuICAgICAgICB0aGlzLnNldFZhbGlkaXR5RmxhZyhcbiAgICAgICAgICAndmFsdWVNaXNzaW5nJyxcbiAgICAgICAgICBpMThuQ2hlY2tib3hSZXF1aXJlZFt0aGlzLl9sYW5ndWFnZUNvbnRyb2xsZXIuY3VycmVudF0sXG4gICAgICAgICk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnJlbW92ZVZhbGlkaXR5RmxhZygndmFsdWVNaXNzaW5nJyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLyoqIE1ldGhvZCB0cmlnZ2VyZWQgb24ga2V5Ym9hcmQgdXNlciBpbnRlcmFjdGlvbiB3aXRoIGNoZWNrYm94LiAqL1xuICAgIHByaXZhdGUgX2hhbmRsZUtleWJvYXJkSW50ZXJhY3Rpb24gPSAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkID0+IHtcbiAgICAgIGlmIChldmVudC5rZXkgPT09ICcgJykge1xuICAgICAgICB0aGlzLl9oYW5kbGVVc2VySW50ZXJhY3Rpb24oKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgLyoqIE1ldGhvZCB0cmlnZ2VyZWQgb24gdXNlciBpbnRlcmFjdGlvbiB3aXRoIGNoZWNrYm94LiAqL1xuICAgIHByaXZhdGUgX2hhbmRsZVVzZXJJbnRlcmFjdGlvbiA9ICgpOiB2b2lkID0+IHtcbiAgICAgIGlmICh0aGlzLmRpc2FibGVkKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHRoaXMud2l0aFVzZXJJbnRlcmFjdGlvbj8uKCk7XG4gICAgICB0aGlzLmNoZWNrZWQgPSAhdGhpcy5jaGVja2VkO1xuICAgICAgdGhpcy5fYXR0cmlidXRlTXV0YXRpb25CbG9ja2VkID0gdHJ1ZTtcblxuICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBJbnB1dEV2ZW50KCdpbnB1dCcsIHsgY29tcG9zZWQ6IHRydWUsIGJ1YmJsZXM6IHRydWUgfSkpO1xuICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgnY2hhbmdlJywgeyBidWJibGVzOiB0cnVlIH0pKTtcbiAgICB9O1xuICB9XG5cbiAgcmV0dXJuIFNiYkZvcm1Bc3NvY2lhdGVkQ2hlY2tib3hFbGVtZW50IGFzIHVua25vd24gYXMgQWJzdHJhY3RDb25zdHJ1Y3RvcjxTYmJGb3JtQXNzb2NpYXRlZENoZWNrYm94TWl4aW5UeXBlPiAmXG4gICAgVDtcbn07XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUF1Q08sTUFBTSxpQ0FBaUMsQ0FDNUMsZUFDK0Q7TUFJaEQsb0NBQWdDLE1BQUE7O0FBSDlDLFFBQUEsbUJBQUEsQ0FBQSxlQUFlO0FBQUEsTUFDZCxVQUFVO0FBQUEsSUFBQSxDQUNYLENBQUM7Ozs7c0JBRVEsaUJB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
@@ -1,8 +1,8 @@
1
1
  import { LitElement } from 'lit';
2
- import { SbbLanguageController } from '../controllers.js';
3
- import { AbstractConstructor } from './constructor.js';
4
- import { FormRestoreReason, FormRestoreState } from './form-associated-mixin.js';
5
- declare const SbbFormAssociatedInputMixinType_base: AbstractConstructor<import('./required-mixin.js').SbbRequiredMixinType> & AbstractConstructor<import('./form-associated-mixin.js').SbbFormAssociatedMixinType> & AbstractConstructor<import('./element-internals-mixin.js').SbbElementInternalsMixinType> & typeof LitElement & import('./element-internals-mixin.js').SbbElementInternalsConstructor;
2
+ import { SbbLanguageController } from '../controllers.ts';
3
+ import { AbstractConstructor } from './constructor.ts';
4
+ import { FormRestoreReason, FormRestoreState } from './form-associated-mixin.ts';
5
+ declare const SbbFormAssociatedInputMixinType_base: AbstractConstructor<import('./required-mixin.ts').SbbRequiredMixinType> & AbstractConstructor<import('./form-associated-mixin.ts').SbbFormAssociatedMixinType> & AbstractConstructor<import('./element-internals-mixin.ts').SbbElementInternalsMixinType> & typeof LitElement & import('./element-internals-mixin.ts').SbbElementInternalsConstructor;
6
6
  export declare abstract class SbbFormAssociatedInputMixinType extends SbbFormAssociatedInputMixinType_base {
7
7
  static readonly formFieldAssociated = true;
8
8
  set value(value: string);
@@ -316,4 +316,4 @@ const SbbFormAssociatedInputMixin = (superClass) => {
316
316
  export {
317
317
  SbbFormAssociatedInputMixin
318
318
  };
319
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1hc3NvY2lhdGVkLWlucHV0LW1peGluLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvY29yZS9taXhpbnMvZm9ybS1hc3NvY2lhdGVkLWlucHV0LW1peGluLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIGh0bWwsXG4gIGlzU2VydmVyLFxuICB0eXBlIExpdEVsZW1lbnQsXG4gIHR5cGUgUHJvcGVydHlEZWNsYXJhdGlvbixcbiAgdHlwZSBQcm9wZXJ0eVZhbHVlcyxcbn0gZnJvbSAnbGl0JztcbmltcG9ydCB7IGV2ZW50T3B0aW9ucywgcHJvcGVydHkgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5cbmltcG9ydCB7IHNiYklucHV0TW9kYWxpdHlEZXRlY3RvciB9IGZyb20gJy4uL2ExMXkuanMnO1xuaW1wb3J0IHsgU2JiTGFuZ3VhZ2VDb250cm9sbGVyLCBTYmJNZWRpYVF1ZXJ5UG9pbnRlckNvYXJzZSB9IGZyb20gJy4uL2NvbnRyb2xsZXJzLmpzJztcbmltcG9ydCB7IGlzQmxpbmssIGlzV2Via2l0IH0gZnJvbSAnLi4vZG9tLmpzJztcbmltcG9ydCB7IGkxOG5JbnB1dFJlcXVpcmVkIH0gZnJvbSAnLi4vaTE4bi5qcyc7XG5cbmltcG9ydCB0eXBlIHsgQWJzdHJhY3RDb25zdHJ1Y3RvciB9IGZyb20gJy4vY29uc3RydWN0b3IuanMnO1xuaW1wb3J0IHsgU2JiRGlzYWJsZWRNaXhpbiB9IGZyb20gJy4vZGlzYWJsZWQtbWl4aW4uanMnO1xuaW1wb3J0IHsgU2JiRWxlbWVudEludGVybmFsc01peGluIH0gZnJvbSAnLi9lbGVtZW50LWludGVybmFscy1taXhpbi5qcyc7XG5pbXBvcnQge1xuICB0eXBlIEZvcm1SZXN0b3JlUmVhc29uLFxuICB0eXBlIEZvcm1SZXN0b3JlU3RhdGUsXG4gIFNiYkZvcm1Bc3NvY2lhdGVkTWl4aW4sXG59IGZyb20gJy4vZm9ybS1hc3NvY2lhdGVkLW1peGluLmpzJztcbmltcG9ydCB7IFNiYlJlYWRvbmx5TWl4aW4gfSBmcm9tICcuL3JlYWRvbmx5LW1peGluLmpzJztcbmltcG9ydCB7IFNiYlJlcXVpcmVkTWl4aW4gfSBmcm9tICcuL3JlcXVpcmVkLW1peGluLmpzJztcblxuZXhwb3J0IGRlY2xhcmUgYWJzdHJhY3QgY2xhc3MgU2JiRm9ybUFzc29jaWF0ZWRJbnB1dE1peGluVHlwZSBleHRlbmRzIFNiYlJlcXVpcmVkTWl4aW4oXG4gIFNiYkZvcm1Bc3NvY2lhdGVkTWl4aW4oU2JiRWxlbWVudEludGVybmFsc01peGluKExpdEVsZW1lbnQpKSxcbikge1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IGZvcm1GaWVsZEFzc29jaWF0ZWQgPSB0cnVlO1xuXG4gIHB1YmxpYyBzZXQgdmFsdWUodmFsdWU6IHN0cmluZyk7XG4gIHB1YmxpYyBnZXQgdmFsdWUoKTogc3RyaW5nO1xuXG4gIHB1YmxpYyBzZXQgZGlzYWJsZWQodmFsdWU6IGJvb2xlYW4pO1xuICBwdWJsaWMgZ2V0IGRpc2FibGVkKCk6IGJvb2xlYW47XG5cbiAgcHVibGljIHNldCByZWFkT25seSh2YWx1ZTogYm9vbGVhbik7XG4gIHB1YmxpYyBnZXQgcmVhZE9ubHkoKTogYm9vbGVhbjtcblxuICBwdWJsaWMgc2V0IHBsYWNlaG9sZGVyKHZhbHVlOiBzdHJpbmcpO1xuICBwdWJsaWMgZ2V0IHBsYWNlaG9sZGVyKCk6IHN0cmluZztcblxuICAvKipcbiAgICogTWFrZXMgdGhlIHNlbGVjdGlvbiBlcXVhbCB0byB0aGUgY3VycmVudCBvYmplY3QuXG4gICAqXG4gICAqIFtNRE4gUmVmZXJlbmNlXShodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9kb2NzL1dlYi9BUEkvSFRNTElucHV0RWxlbWVudC9zZWxlY3QpXG4gICAqL1xuICBwdWJsaWMgc2VsZWN0KCk6IHZvaWQ7XG5cbiAgcHVibGljIGZvcm1SZXNldENhbGxiYWNrKCk6IHZvaWQ7XG4gIHB1YmxpYyBmb3JtU3RhdGVSZXN0b3JlQ2FsbGJhY2soc3RhdGU6IEZvcm1SZXN0b3JlU3RhdGUgfCBudWxsLCByZWFzb246IEZvcm1SZXN0b3JlUmVhc29uKTogdm9pZDtcblxuICBwcm90ZWN0ZWQgcHJlcGFyZVBhc3RlZFRleHQodGV4dDogc3RyaW5nKTogc3RyaW5nO1xuICBwcm90ZWN0ZWQgbGFuZ3VhZ2U6IFNiYkxhbmd1YWdlQ29udHJvbGxlcjtcbn1cblxuY29uc3QgY2hlY2tQbGFpbnRleHRPbmx5U3VwcG9ydCA9ICgpOiBib29sZWFuID0+IHtcbiAgaWYgKGlzU2VydmVyKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgY29uc3QgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gIGRpdi5zZXRBdHRyaWJ1dGUoJ2NvbnRlbnRlZGl0YWJsZScsICdQTEFJTlRFWFQtT05MWScpO1xuXG4gIC8vIElmIHBsYWludGV4dC1vbmx5IGlzIHN1cHBvcnRlZCwgdGhlIGF0dHJpYnV0ZSB2YWx1ZSBpc1xuICAvLyByZXR1cm5lZCBhcyBsb3dlci1jYXNlIGZyb20gdGhlIHByb3BlcnR5IGFjY2Vzcy5cbiAgcmV0dXJuIGRpdi5jb250ZW50RWRpdGFibGUgPT09ICdwbGFpbnRleHQtb25seSc7XG59O1xuY29uc3QgcGxhaW50ZXh0T25seVN1cHBvcnRlZCA9IGNoZWNrUGxhaW50ZXh0T25seVN1cHBvcnQoKTtcblxuLyoqXG4gKiBUaGUgU2JiRm9ybUFzc29jaWF0ZWRJbnB1dE1peGluIGVuYWJsZXMgbmF0aXZlIGZvcm0gc3VwcG9ydCBmb3IgdGV4dCBpbnB1dCBjb250cm9scy5cbiAqL1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuZXhwb3J0IGNvbnN0IFNiYkZvcm1Bc3NvY2lhdGVkSW5wdXRNaXhpbiA9IDxUIGV4dGVuZHMgQWJzdHJhY3RDb25zdHJ1Y3RvcjxMaXRFbGVtZW50Pj4oXG4gIHN1cGVyQ2xhc3M6IFQsXG4pOiBBYnN0cmFjdENvbnN0cnVjdG9yPFNiYkZvcm1Bc3NvY2lhdGVkSW5wdXRNaXhpblR5cGU+ICYgVCA9PiB7XG4gIGFic3RyYWN0IGNsYXNzIFNiYkZvcm1Bc3NvY2lhdGVkSW5wdXRFbGVtZW50XG4gICAgZXh0ZW5kcyBTYmJSZWFkb25seU1peGluKFxuICAgICAgU2JiRGlzYWJsZWRNaXhpbihcbiAgICAgICAgU2JiUmVxdWlyZWRNaXhpbihTYmJGb3JtQXNzb2NpYXRlZE1peGluKFNiYkVsZW1lbnRJbnRlcm5hbHNNaXhpbihzdXBlckNsYXNzKSkpLFxuICAgICAgKSxcbiAgICApXG4gICAgaW1wbGVtZW50cyBQYXJ0aWFsPFNiYkZvcm1Bc3NvY2lhdGVkSW5wdXRNaXhpblR5cGU+XG4gIHtcbiAgICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHJlYWRvbmx5IHJvbGUgPSAndGV4dGJveCc7XG4gICAgcHVibGljIHN0YXRpYyByZWFkb25seSBmb3JtRmllbGRBc3NvY2lhdGVkID0gdHJ1ZTtcblxuICAgIC8qKlxuICAgICAqIEFuIGVsZW1lbnQgd2l0aCBjb250ZW50ZWRpdGFibGUgd2lsbCBub3QgZW1pdCBhIGNoYW5nZSBldmVudC4gVG8gYWNoaWV2ZSBwYXJpdHlcbiAgICAgKiB3aXRoIGEgbmF0aXZlIHRleHQgaW5wdXQsIHdlIG5lZWQgdG8gdHJhY2sgd2hldGhlciBhIGNoYW5nZSBldmVudCBzaG91bGQgYmVcbiAgICAgKiBlbWl0dGVkLlxuICAgICAqL1xuICAgIHByaXZhdGUgX3Nob3VsZEVtaXRDaGFuZ2UgPSBmYWxzZTtcbiAgICAvKipcbiAgICAgKiBBIG5hdGl2ZSB0ZXh0IGlucHV0IGF0dGVtcHRzIHRvIHN1Ym1pdCB0aGUgZm9ybSB3aGVuIHByZXNzaW5nIEVudGVyLlxuICAgICAqIFRoaXMgY2FuIGJlIHByZXZlbnRlZCBieSBjYWxsaW5nIHByZXZlbnREZWZhdWx0IG9uIHRoZSBrZXlkb3duIGV2ZW50LlxuICAgICAqIFdlIHRyYWNrIHdoZXRoZXIgdG8gcmVxdWVzdCBzdWJtaXQsIHdoaWNoIHNob3VsZCBvY2N1ciBiZWZvcmUgdGhlIGtleXVwXG4gICAgICogZXZlbnQuXG4gICAgICovXG4gICAgcHJpdmF0ZSBfc2hvdWxkVHJpZ2dlclN1Ym1pdCA9IGZhbHNlO1xuXG4gICAgcHJvdGVjdGVkIGxhbmd1YWdlID0gbmV3IFNiYkxhbmd1YWdlQ29udHJvbGxlcih0aGlzKTtcblxuICAgIC8qKlxuICAgICAqIEZvcm0gdHlwZSBvZiBlbGVtZW50LlxuICAgICAqIEBkZWZhdWx0ICd0ZXh0J1xuICAgICAqL1xuICAgIHB1YmxpYyBvdmVycmlkZSBnZXQgdHlwZSgpOiBzdHJpbmcge1xuICAgICAgcmV0dXJuICd0ZXh0JztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGUgdmFsdWUgb2YgdGhlIGlucHV0LiBSZWZsZWN0cyB0aGUgY3VycmVudCB0ZXh0IHZhbHVlIG9mIHRoaXMgaW5wdXQuXG4gICAgICovXG4gICAgQHByb3BlcnR5KClcbiAgICBwdWJsaWMgc2V0IHZhbHVlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgIHRoaXMuX3ZhbHVlID0gdGhpcy5fY2xlYW5UZXh0KHZhbHVlKTtcbiAgICAgIGlmICh0aGlzLmhhc1VwZGF0ZWQpIHtcbiAgICAgICAgdGhpcy5fYXNzaWduVmFsdWUodGhpcy5fdmFsdWUpO1xuICAgICAgfVxuICAgICAgLyoqIEBpbnRlcm5hbCAqL1xuICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgnZGlzcGxheXZhbHVlY2hhbmdlJywgeyBidWJibGVzOiB0cnVlLCBjb21wb3NlZDogdHJ1ZSB9KSk7XG4gICAgfVxuICAgIHB1YmxpYyBnZXQgdmFsdWUoKTogc3RyaW5nIHtcbiAgICAgIHJldHVybiB0aGlzLl92YWx1ZSA/PyAnJztcbiAgICB9XG4gICAgcHJpdmF0ZSBfdmFsdWU6IHN0cmluZyA9ICcnO1xuXG4gICAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiBmYWxzZSB9KVxuICAgIHB1YmxpYyBzZXQgcGxhY2Vob2xkZXIodmFsdWU6IHN0cmluZykge1xuICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgIHRoaXMuc2V0QXR0cmlidXRlKCdwbGFjZWhvbGRlcicsIHZhbHVlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMucmVtb3ZlQXR0cmlidXRlKCdwbGFjZWhvbGRlcicpO1xuICAgICAgfVxuICAgICAgdGhpcy5pbnRlcm5hbHMuYXJpYVBsYWNlaG9sZGVyID0gdmFsdWUgPyB2YWx1ZSA6IG51bGw7XG4gICAgfVxuICAgIHB1YmxpYyBnZXQgcGxhY2Vob2xkZXIoKTogc3RyaW5nIHtcbiAgICAgIHJldHVybiB0aGlzLmdldEF0dHJpYnV0ZSgncGxhY2Vob2xkZXInKSA/PyAnJztcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgY29uc3RydWN0b3IoKSB7XG4gICAgICBzdXBlcigpO1xuICAgICAgLy8gV2UgcHJpbWFyaWx5IHVzZSBjYXB0dXJlIGV2ZW50IGxpc3RlbmVycywgYXMgd2Ugd2FudFxuICAgICAgLy8gb3VyIGxpc3RlbmVycyB0byBvY2N1ciBiZWZvcmUgY29uc3VtZXIgZXZlbnQgbGlzdGVuZXJzLlxuICAgICAgdGhpcy5hZGRFdmVudExpc3RlbmVyPy4oXG4gICAgICAgICdpbnB1dCcsXG4gICAgICAgICgpID0+IHtcbiAgICAgICAgICBjb25zdCBvbGRWYWx1ZSA9IHRoaXMuX3ZhbHVlO1xuICAgICAgICAgIHRoaXMuX3ZhbHVlID0gdGhpcy5fY2xlYW5UZXh0KHRoaXMudGV4dENvbnRlbnQgPz8gJycpO1xuICAgICAgICAgIHRoaXMucmVxdWVzdFVwZGF0ZSgndmFsdWUnLCBvbGRWYWx1ZSk7XG4gICAgICAgICAgdGhpcy5pbnRlcm5hbHMuc3RhdGVzLmFkZCgnaW50ZXJhY3RlZCcpO1xuICAgICAgICAgIHRoaXMuX3Nob3VsZEVtaXRDaGFuZ2UgPSB0cnVlO1xuICAgICAgICB9LFxuICAgICAgICB7IGNhcHR1cmU6IHRydWUgfSxcbiAgICAgICk7XG4gICAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/LignY2hhbmdlJywgKCkgPT4gKHRoaXMuX3Nob3VsZEVtaXRDaGFuZ2UgPSBmYWxzZSksIHsgY2FwdHVyZTogdHJ1ZSB9KTtcbiAgICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcj8uKFxuICAgICAgICAna2V5ZG93bicsXG4gICAgICAgIChldmVudCkgPT4ge1xuICAgICAgICAgIGlmICh0aGlzLl9yZXF1aXJlc0VtcHR5UGF0Y2goKSkge1xuICAgICAgICAgICAgdGhpcy5fYXNzaWduVmFsdWUoJycpO1xuICAgICAgICAgIH1cbiAgICAgICAgICAvLyBXZSBwcmV2ZW50IHJlY3Vyc2l2ZSBldmVudHMgYnkgY2hlY2tpbmcgdGhlIG9yaWdpbmFsIGV2ZW50IGZvciBpc1RydXN0ZWRcbiAgICAgICAgICAvLyB3aGljaCBpcyBmYWxzZSBmb3IgbWFudWFsbHkgZGlzcGF0Y2hlZCBldmVudHMgKHdoaWNoIHdlIGRpc3BhdGNoIGJlbG93KS5cbiAgICAgICAgICBpZiAoKGV2ZW50LmtleSA9PT0gJ0VudGVyJyB8fCBldmVudC5rZXkgPT09ICdcXG4nKSAmJiBldmVudC5pc1RydXN0ZWQpIHtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgIHRoaXMuX3Nob3VsZFRyaWdnZXJTdWJtaXQgPSB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEtleWJvYXJkRXZlbnQoJ2tleWRvd24nLCBldmVudCkpO1xuICAgICAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgICAgICBpc1dlYmtpdCAmJlxuICAgICAgICAgICAgdGhpcy52YWx1ZSAmJlxuICAgICAgICAgICAgKGV2ZW50LmtleSA9PT0gJ0JhY2tzcGFjZScgfHwgZXZlbnQua2V5ID09PSAnRGVsZXRlJykgJiZcbiAgICAgICAgICAgIGV2ZW50LmlzVHJ1c3RlZFxuICAgICAgICAgICkge1xuICAgICAgICAgICAgLy8gSW4gV2Via2l0IHByZXNzaW5nIEJhY2tzcGFjZSBvciBEZWxldGUgY29tcGxldGVseSByZW1vdmVzIGFsbCB0aGUgY29udGVudFxuICAgICAgICAgICAgLy8gaWYgY29udGVudGVkaXRhYmxlIGlzIHNldCBvbiBhIHdlYiBjb21wb25lbnQgaG9zdC5cbiAgICAgICAgICAgIC8vIFdlIGhhdmUgdG8gcmVwbGljYXRlIHRoZSBub3JtYWwgZGVsZXRlIGJlaGF2aW9yLlxuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO1xuXG4gICAgICAgICAgICBpZiAoIXRoaXMuZGlzcGF0Y2hFdmVudChuZXcgS2V5Ym9hcmRFdmVudCgna2V5ZG93bicsIGV2ZW50KSkpIHtcbiAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBzZWxlY3RlZFJhbmdlID0gd2luZG93LmdldFNlbGVjdGlvbigpPy5nZXRSYW5nZUF0KDApO1xuICAgICAgICAgICAgaWYgKCFzZWxlY3RlZFJhbmdlKSB7XG4gICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHNlbGVjdGVkUmFuZ2Uuc3RhcnRPZmZzZXQgIT09IHNlbGVjdGVkUmFuZ2UuZW5kT2Zmc2V0KSB7XG4gICAgICAgICAgICAgIC8vIElmIGEgdGV4dCByYW5nZSBpcyBzZWxlY3RlZCwgdGhlbiBkZWxldGUgdGhpcyByYW5nZVxuICAgICAgICAgICAgICBzZWxlY3RlZFJhbmdlLmRlbGV0ZUNvbnRlbnRzKCk7XG4gICAgICAgICAgICAgIHRoaXMuX2Rpc3BhdGNoSW5wdXRFdmVudCgpO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChldmVudC5rZXkgPT09ICdCYWNrc3BhY2UnICYmIHNlbGVjdGVkUmFuZ2Uuc3RhcnRPZmZzZXQgPiAwKSB7XG4gICAgICAgICAgICAgIC8vIFdoZW4gcHJlc3NpbmcgQmFja3NwYWNlLCB3ZSBzZWxlY3QgdGhlIHByZXZpb3VzIGNoYXJhY3RlciBmcm9tXG4gICAgICAgICAgICAgIC8vIHRoZSBjdXJyZW50IGN1cnNvciBwb3NpdGlvbiBhbmQgZGVsZXRlIGl0LlxuICAgICAgICAgICAgICBzZWxlY3RlZFJhbmdlLnNldFN0YXJ0KHNlbGVjdGVkUmFuZ2Uuc3RhcnRDb250YWluZXIsIHNlbGVjdGVkUmFuZ2Uuc3RhcnRPZmZzZXQgLSAxKTtcbiAgICAgICAgICAgICAgc2VsZWN0ZWRSYW5nZS5kZWxldGVDb250ZW50cygpO1xuICAgICAgICAgICAgICB0aGlzLl9kaXNwYXRjaElucHV0RXZlbnQoKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoZXZlbnQua2V5ID09PSAnRGVsZXRlJyAmJiBzZWxlY3RlZFJhbmdlLmVuZE9mZnNldCA8IHRoaXMudmFsdWUubGVuZ3RoKSB7XG4gICAgICAgICAgICAgIC8vIFdoZW4gcHJlc3NpbmcgRGVsZXRlLCB3ZSBzZWxlY3QgdGhlIG5leHQgY2hhcmFjdGVyIGZyb21cbiAgICAgICAgICAgICAgLy8gdGhlIGN1cnJlbnQgY3Vyc29yIHBvc2l0aW9uIGFuZCBkZWxldGUgaXQuXG4gICAgICAgICAgICAgIHNlbGVjdGVkUmFuZ2Uuc2V0RW5kKHNlbGVjdGVkUmFuZ2UuZW5kQ29udGFpbmVyLCBzZWxlY3RlZFJhbmdlLmVuZE9mZnNldCArIDEpO1xuICAgICAgICAgICAgICBzZWxlY3RlZFJhbmdlLmRlbGV0ZUNvbnRlbnRzKCk7XG4gICAgICAgICAgICAgIHRoaXMuX2Rpc3BhdGNoSW5wdXRFdmVudCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgeyBjYXB0dXJlOiB0cnVlIH0sXG4gICAgICApO1xuICAgICAgdGhpcy5hZGRFdmVudExpc3RlbmVyPy4oXG4gICAgICAgICdrZXl1cCcsXG4gICAgICAgIChldmVudCkgPT4ge1xuICAgICAgICAgIGlmIChldmVudC5rZXkgPT09ICdFbnRlcicgfHwgZXZlbnQua2V5ID09PSAnXFxuJykge1xuICAgICAgICAgICAgdGhpcy5fZW1pdENoYW5nZUlmTmVjZXNzYXJ5KCk7XG4gICAgICAgICAgICBpZiAodGhpcy5fc2hvdWxkVHJpZ2dlclN1Ym1pdCkge1xuICAgICAgICAgICAgICB0aGlzLl9zaG91bGRUcmlnZ2VyU3VibWl0ID0gZmFsc2U7XG4gICAgICAgICAgICAgIHRoaXMuZm9ybT8ucmVxdWVzdFN1Ym1pdCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5fcmVxdWlyZXNFbXB0eVBhdGNoKCkpIHtcbiAgICAgICAgICAgIHRoaXMuX3NldEN1cnNvckF0KDApO1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgeyBjYXB0dXJlOiB0cnVlIH0sXG4gICAgICApO1xuICAgICAgLy8gY29udGVudGVkaXRhYmxlIGFsbG93cyBwYXN0aW5nIHJpY2ggY29udGVudCBpbnRvIGl0cyBob3N0LlxuICAgICAgLy8gV2UgcHJldmVudCB0aGlzIGJ5IGxpc3RlbmluZyB0byB0aGUgcGFzdGUgZXZlbnQgYW5kXG4gICAgICAvLyBleHRyYWN0aW5nIHRoZSBwbGFpbiB0ZXh0IGZyb20gdGhlIHBhc3RlZCBjb250ZW50XG4gICAgICAvLyBhbmQgaW5zZXJ0aW5nIGl0IGludG8gdGhlIHNlbGVjdGVkIHJhbmdlIChjdXJzb3IgcG9zaXRpb25cbiAgICAgIC8vIG9yIHNlbGVjdGlvbikuXG4gICAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/LigncGFzdGUnLCAoZSkgPT4ge1xuICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGlmICh0aGlzLl9yZXF1aXJlc0VtcHR5UGF0Y2goKSkge1xuICAgICAgICAgIHRoaXMuX2Fzc2lnblZhbHVlKCcnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHRleHQgPSB0aGlzLl9jbGVhblRleHQoZS5jbGlwYm9hcmREYXRhPy5nZXREYXRhKCd0ZXh0L3BsYWluJykgPz8gJycpO1xuICAgICAgICBjb25zdCBzZWxlY3RlZFJhbmdlID0gd2luZG93LmdldFNlbGVjdGlvbigpPy5nZXRSYW5nZUF0KDApO1xuICAgICAgICBpZiAoIXNlbGVjdGVkUmFuZ2UgfHwgIXRleHQpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBzZWxlY3RlZFJhbmdlLmRlbGV0ZUNvbnRlbnRzKCk7XG4gICAgICAgIHNlbGVjdGVkUmFuZ2UuaW5zZXJ0Tm9kZShkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSh0aGlzLnByZXBhcmVQYXN0ZWRUZXh0KHRleHQpKSk7XG4gICAgICAgIHNlbGVjdGVkUmFuZ2Uuc2V0U3RhcnQoc2VsZWN0ZWRSYW5nZS5lbmRDb250YWluZXIsIHNlbGVjdGVkUmFuZ2UuZW5kT2Zmc2V0KTtcbiAgICAgICAgdGhpcy5fZGlzcGF0Y2hJbnB1dEV2ZW50KCk7XG4gICAgICB9KTtcbiAgICAgIC8vIFdoZW4gZm9jdXNpbmcgYSB0ZXh0IGlucHV0IHZpYSBrZXlib2FyZCwgdGhlIHRleHQgY29udGVudCBzaG91bGQgYmUgc2VsZWN0ZWQuXG4gICAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/LignZm9jdXMnLCAoKSA9PiB7XG4gICAgICAgIGlmIChzYmJJbnB1dE1vZGFsaXR5RGV0ZWN0b3IubW9zdFJlY2VudE1vZGFsaXR5ID09PSAna2V5Ym9hcmQnKSB7XG4gICAgICAgICAgLy8gVE9ETzogVGhpcyBkb2VzIG5vdCBzZWVtIHRvIHdvcmsgaW4gRmlyZWZveCB3aXRoIHJlYWRvbmx5LlxuICAgICAgICAgIHdpbmRvdy5nZXRTZWxlY3Rpb24oKT8uc2VsZWN0QWxsQ2hpbGRyZW4odGhpcyk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgdGhpcy5hZGRFdmVudExpc3RlbmVyPy4oJ3RvdWNoZW5kJywgKCkgPT4ge1xuICAgICAgICBpZiAodGhpcy5fcmVxdWlyZXNFbXB0eVBhdGNoKCkpIHtcbiAgICAgICAgICB0aGlzLl9hc3NpZ25WYWx1ZSgnJm5ic3A7Jyk7XG4gICAgICAgICAgdGhpcy5fc2V0Q3Vyc29yQXQoMCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgdGhpcy5hZGRFdmVudExpc3RlbmVyPy4oJ2NsaWNrJywgKCkgPT4ge1xuICAgICAgICBpZiAodGhpcy5fcmVxdWlyZXNFbXB0eVBhdGNoKCkgJiYgc2JiSW5wdXRNb2RhbGl0eURldGVjdG9yLm1vc3RSZWNlbnRNb2RhbGl0eSA9PT0gJ3RvdWNoJykge1xuICAgICAgICAgIHRoaXMuX3NldEN1cnNvckF0KDApO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgLy8gT24gYmx1ciB0aGUgbmF0aXZlIHRleHQgaW5wdXQgc2Nyb2xscyB0aGUgdGV4dCB0byB0aGUgc3RhcnQgb2YgdGhlIHRleHQuXG4gICAgICAvLyBXZSBtaW1pY2sgdGhhdCBieSByZXNldHRpbmcgdGhlIHNjcm9sbCBwb3NpdGlvbi5cbiAgICAgIC8vIFdlIGFsc28gdW5zZXQgYW55IHNlbGVjdGlvbiB0byBhbGlnbiB3aXRoIHRoZSBuYXRpdmUgdGV4dCBpbnB1dC5cbiAgICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcj8uKFxuICAgICAgICAnYmx1cicsXG4gICAgICAgICgpID0+IHtcbiAgICAgICAgICB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk/LnJlbW92ZUFsbFJhbmdlcygpO1xuICAgICAgICAgIGlmICh0aGlzLnZhbHVlID09PSAnJykge1xuICAgICAgICAgICAgdGhpcy5fYXNzaWduVmFsdWUoJycpO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLl9lbWl0Q2hhbmdlSWZOZWNlc3NhcnkoKTtcbiAgICAgICAgICB0aGlzLnNjcm9sbExlZnQgPSAwO1xuICAgICAgICB9LFxuICAgICAgICB7IGNhcHR1cmU6IHRydWUgfSxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIGlzRGlzYWJsZWRFeHRlcm5hbGx5KCk6IGJvb2xlYW4ge1xuICAgICAgcmV0dXJuIHRoaXMuZm9ybURpc2FibGVkO1xuICAgIH1cblxuICAgIHB1YmxpYyBvdmVycmlkZSBjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICAgIHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgICB0aGlzLmludGVybmFscy5hcmlhTXVsdGlMaW5lID0gJ2ZhbHNlJztcbiAgICAgIHRoaXMuX3VwZGF0ZUNvbnRlbnRlZGl0YWJsZSgpO1xuXG4gICAgICAvLyBXZSB3YW50IHRvIHJlcGxhY2UgYW55IGNvbnRlbnQgYnkganVzdCB0aGUgdGV4dCBjb250ZW50LlxuICAgICAgdGhpcy5fYXNzaWduVmFsdWUodGhpcy52YWx1ZSk7XG4gICAgfVxuXG4gICAgcHVibGljIG92ZXJyaWRlIGZvY3VzKG9wdGlvbnM/OiBGb2N1c09wdGlvbnMpOiB2b2lkIHtcbiAgICAgIHN1cGVyLmZvY3VzKG9wdGlvbnMpO1xuICAgICAgLy8gQnkgZGVmYXVsdCwgd2hlbiBjYWxsaW5nIGZvY3VzIG9uIGFuIGlucHV0IGVsZW1lbnQsIHRoZSBjdXJzb3IgaXMgcGxhY2VkXG4gICAgICAvLyBhdCB0aGUgZW5kIG9mIHRoZSBpbnB1dCB0ZXh0LiBIb3dldmVyLCB3aXRoIGNvbnRlbnRlZGl0YWJsZSwgdGhlIGN1cnNvclxuICAgICAgLy8gaXMgcGxhY2VkIGF0IHRoZSBiZWdpbm5pbmcsIHNvIHdlIG1vdmUgaXQgdG8gdGhlIGVuZCwgaWYgdGhhdCBpcyB0aGUgY2FzZS5cbiAgICAgIGlmICh0aGlzLl9jYW5TZWxlY3QoKSkge1xuICAgICAgICBjb25zdCBzZWxlY3Rpb24gPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk7XG4gICAgICAgIGlmICghc2VsZWN0aW9uKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHJhbmdlID0gc2VsZWN0aW9uLnJhbmdlQ291bnQgPiAwID8gc2VsZWN0aW9uLmdldFJhbmdlQXQoMCkgOiBudWxsO1xuICAgICAgICBpZiAocmFuZ2UgJiYgcmFuZ2Uuc3RhcnRPZmZzZXQgIT09IDApIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9zZXRDdXJzb3JBdCh0aGlzLnRleHRDb250ZW50IS5sZW5ndGgpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBvdmVycmlkZSBhdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2soXG4gICAgICBuYW1lOiBzdHJpbmcsXG4gICAgICBvbGQ6IHN0cmluZyB8IG51bGwsXG4gICAgICB2YWx1ZTogc3RyaW5nIHwgbnVsbCxcbiAgICApOiB2b2lkIHtcbiAgICAgIC8qKlxuICAgICAgICogVGhlIG5hdGl2ZSB0ZXh0IGlucHV0IGNoYW5nZXMgdGhlIHZhbHVlIHByb3BlcnR5IHdoZW4gdGhlIHZhbHVlIGF0dHJpYnV0ZSBpc1xuICAgICAgICogY2hhbmdlZCB1bmRlciB0aGUgY29uZGl0aW9uIHRoYXQgbm8gaW5wdXQgZXZlbnQgaGFzIG9jY3VyZWQgc2luY2UgY3JlYXRpb25cbiAgICAgICAqIG9yIHRoZSBsYXN0IGZvcm0gcmVzZXQuXG4gICAgICAgKi9cbiAgICAgIGlmIChuYW1lICE9PSAndmFsdWUnIHx8ICF0aGlzLmludGVybmFscy5zdGF0ZXMuaGFzKCdpbnRlcmFjdGVkJykpIHtcbiAgICAgICAgc3VwZXIuYXR0cmlidXRlQ2hhbmdlZENhbGxiYWNrKG5hbWUsIG9sZCwgdmFsdWUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIElzIGNhbGxlZCB3aGVuZXZlciB0aGUgZm9ybSBpcyBiZWluZyByZXNldC5cbiAgICAgKlxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHB1YmxpYyBvdmVycmlkZSBmb3JtUmVzZXRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICAgIHRoaXMuaW50ZXJuYWxzLnN0YXRlcy5kZWxldGUoJ2ludGVyYWN0ZWQnKTtcbiAgICAgIHRoaXMudmFsdWUgPSB0aGlzLmdldEF0dHJpYnV0ZSgndmFsdWUnKSA/PyAnJztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiAgQ2FsbGVkIHdoZW4gdGhlIGJyb3dzZXIgaXMgdHJ5aW5nIHRvIHJlc3RvcmUgZWxlbWVudOKAmXMgc3RhdGUgdG8gc3RhdGUgaW4gd2hpY2ggY2FzZVxuICAgICAqICByZWFzb24gaXMgXCJyZXN0b3JlXCIsIG9yIHdoZW4gdGhlIGJyb3dzZXIgaXMgdHJ5aW5nIHRvIGZ1bGZpbGwgYXV0b2ZpbGwgb24gYmVoYWxmIG9mXG4gICAgICogIHVzZXIgaW4gd2hpY2ggY2FzZSByZWFzb24gaXMgXCJhdXRvY29tcGxldGVcIi5cbiAgICAgKiAgSW4gdGhlIGNhc2Ugb2YgXCJyZXN0b3JlXCIsIHN0YXRlIGlzIGEgc3RyaW5nLCBGaWxlLCBvciBGb3JtRGF0YSBvYmplY3RcbiAgICAgKiAgcHJldmlvdXNseSBzZXQgYXMgdGhlIHNlY29uZCBhcmd1bWVudCB0byBzZXRGb3JtVmFsdWUuXG4gICAgICpcbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBwdWJsaWMgb3ZlcnJpZGUgZm9ybVN0YXRlUmVzdG9yZUNhbGxiYWNrKFxuICAgICAgc3RhdGU6IEZvcm1SZXN0b3JlU3RhdGUgfCBudWxsLFxuICAgICAgX3JlYXNvbjogRm9ybVJlc3RvcmVSZWFzb24sXG4gICAgKTogdm9pZCB7XG4gICAgICBpZiAoc3RhdGUgJiYgdHlwZW9mIHN0YXRlID09PSAnc3RyaW5nJykge1xuICAgICAgICB0aGlzLnZhbHVlID0gc3RhdGU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogTWFrZXMgdGhlIHNlbGVjdGlvbiBlcXVhbCB0byB0aGUgY3VycmVudCBvYmplY3QuXG4gICAgICpcbiAgICAgKiBAbGluayBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9kb2NzL1dlYi9BUEkvSFRNTElucHV0RWxlbWVudC9zZWxlY3RcbiAgICAgKi9cbiAgICBwdWJsaWMgc2VsZWN0KCk6IHZvaWQge1xuICAgICAgd2luZG93LmdldFNlbGVjdGlvbigpPy5zZWxlY3RBbGxDaGlsZHJlbih0aGlzKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgZmlyc3RVcGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzOiBQcm9wZXJ0eVZhbHVlczx0aGlzPik6IHZvaWQge1xuICAgICAgc3VwZXIuZmlyc3RVcGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzKTtcblxuICAgICAgLy8gSWYgdGhlIHZhbHVlIHdhcyBhc3NpZ25lZCBiZWZvcmUgZmlyc3RVcGRhdGUsIHdlIGhhdmUgdG9cbiAgICAgIC8vIHdyaXRlIGl0IHRoZSBkb2N1bWVudCB0byBiZSB2aXN1YWxseSBzZWVuXG4gICAgICBpZiAodGhpcy52YWx1ZSAmJiAhdGhpcy5pbm5lckhUTUwubGVuZ3RoKSB7XG4gICAgICAgIHRoaXMuX2Fzc2lnblZhbHVlKHRoaXMudmFsdWUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBvdmVycmlkZSByZXF1ZXN0VXBkYXRlKFxuICAgICAgbmFtZT86IFByb3BlcnR5S2V5LFxuICAgICAgb2xkVmFsdWU/OiB1bmtub3duLFxuICAgICAgb3B0aW9ucz86IFByb3BlcnR5RGVjbGFyYXRpb24sXG4gICAgKTogdm9pZCB7XG4gICAgICBzdXBlci5yZXF1ZXN0VXBkYXRlKG5hbWUsIG9sZFZhbHVlLCBvcHRpb25zKTtcbiAgICAgIGlmIChcbiAgICAgICAgdGhpcy5pc0Nvbm5lY3RlZCAmJlxuICAgICAgICAobmFtZSA9PT0gJ2Rpc2FibGVkJyB8fCBuYW1lID09PSAnZm9ybURpc2FibGVkJyB8fCBuYW1lID09PSAncmVhZE9ubHknKVxuICAgICAgKSB7XG4gICAgICAgIHRoaXMuX3VwZGF0ZUNvbnRlbnRlZGl0YWJsZSgpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBvdmVycmlkZSBzaG91bGRWYWxpZGF0ZShuYW1lOiBQcm9wZXJ0eUtleSB8IHVuZGVmaW5lZCk6IGJvb2xlYW4ge1xuICAgICAgcmV0dXJuIHN1cGVyLnNob3VsZFZhbGlkYXRlKG5hbWUpIHx8IG5hbWUgPT09ICd2YWx1ZScgfHwgbmFtZSA9PT0gJ3JlcXVpcmVkJztcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgdmFsaWRhdGUoKTogdm9pZCB7XG4gICAgICBzdXBlci52YWxpZGF0ZSgpO1xuICAgICAgaWYgKHRoaXMucmVxdWlyZWQgJiYgIXRoaXMudmFsdWUpIHtcbiAgICAgICAgdGhpcy5zZXRWYWxpZGl0eUZsYWcoJ3ZhbHVlTWlzc2luZycsIGkxOG5JbnB1dFJlcXVpcmVkW3RoaXMubGFuZ3VhZ2UuY3VycmVudF0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5yZW1vdmVWYWxpZGl0eUZsYWcoJ3ZhbHVlTWlzc2luZycpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBwcmVwYXJlUGFzdGVkVGV4dCh0ZXh0OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgcmV0dXJuIHRleHQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfcmVxdWlyZXNFbXB0eVBhdGNoKCk6IGJvb2xlYW4ge1xuICAgICAgLy8gSW4gQmxpbmssIGEgY29udGVudGVkaXRhYmxlIGVsZW1lbnQgd2l0aCBlbXB0eSBjb250ZW50IHdpbGwgY3Jhc2hcbiAgICAgIC8vIHVwb24gcmVjZWl2aW5nIGZvY3VzLCB3aGVuIGluIE1vYmlsZSBtb2RlLlxuICAgICAgLy8gVG8gcHJldmVudCB0aGlzLCB3ZSBwYXRjaCB0aGUgZW1wdHkgc3RhdGUgYnkgaW5zZXJ0aW5nIGEgbm9uLWJyZWFraW5nIHNwYWNlLlxuICAgICAgcmV0dXJuIGlzU2VydmVyXG4gICAgICAgID8gZmFsc2VcbiAgICAgICAgOiBpc0JsaW5rICYmIHRoaXMudmFsdWUgPT09ICcnICYmIHdpbmRvdy5tYXRjaE1lZGlhKFNiYk1lZGlhUXVlcnlQb2ludGVyQ29hcnNlKS5tYXRjaGVzO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2Fzc2lnblZhbHVlKHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgIHRoaXMuaW5uZXJIVE1MID0gdmFsdWU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfc2V0Q3Vyc29yQXQocG9zaXRpb246IG51bWJlcik6IHZvaWQge1xuICAgICAgY29uc3Qgc2VsZWN0aW9uID0gd2luZG93LmdldFNlbGVjdGlvbigpO1xuICAgICAgaWYgKCFzZWxlY3Rpb24pIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBjb25zdCByYW5nZSA9IGRvY3VtZW50LmNyZWF0ZVJhbmdlKCk7XG4gICAgICByYW5nZS5zZXRTdGFydCh0aGlzLmZpcnN0Q2hpbGQhLCBwb3NpdGlvbik7XG4gICAgICByYW5nZS5jb2xsYXBzZSh0cnVlKTtcbiAgICAgIHNlbGVjdGlvbi5yZW1vdmVBbGxSYW5nZXMoKTtcbiAgICAgIHNlbGVjdGlvbi5hZGRSYW5nZShyYW5nZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfY2xlYW5UZXh0KHZhbHVlOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgLy8gVGhlIG5hdGl2ZSB0ZXh0IGlucHV0IHJlbW92ZXMgYWxsIG5ld2xpbmUgY2hhcmFjdGVycyBpZiBwYXNzZWQgdG8gdGhlIHZhbHVlIHByb3BlcnR5XG4gICAgICByZXR1cm4gdmFsdWUgPT09IG51bGwgPyAnJyA6IGAke3ZhbHVlfWAucmVwbGFjZSgvW1xcblxccl0rL2csICcnKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9kaXNwYXRjaElucHV0RXZlbnQoKTogdm9pZCB7XG4gICAgICAvKiogVGhlIGlucHV0IGV2ZW50IGZpcmVzIHdoZW4gdGhlIHZhbHVlIGhhcyBiZWVuIGNoYW5nZWQgYXMgYSBkaXJlY3QgcmVzdWx0IG9mIGEgdXNlciBhY3Rpb24uICovXG4gICAgICB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IElucHV0RXZlbnQoJ2lucHV0JywgeyBidWJibGVzOiB0cnVlLCBjb21wb3NlZDogdHJ1ZSB9KSk7XG4gICAgfVxuXG4gICAgQGV2ZW50T3B0aW9ucyh7IHBhc3NpdmU6IHRydWUgfSlcbiAgICBwcml2YXRlIF9jbGVhbkNoaWxkcmVuKCk6IHZvaWQge1xuICAgICAgaWYgKHRoaXMuY2hpbGRFbGVtZW50Q291bnQpIHtcbiAgICAgICAgZm9yIChjb25zdCBlbGVtZW50IG9mIHRoaXMuY2hpbGRyZW4pIHtcbiAgICAgICAgICBlbGVtZW50LnJlbW92ZSgpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfdXBkYXRlQ29udGVudGVkaXRhYmxlKCk6IHZvaWQge1xuICAgICAgaWYgKCFpc1NlcnZlciAmJiB0aGlzLmlzQ29ubmVjdGVkKSB7XG4gICAgICAgIHRoaXMuaW50ZXJuYWxzLmFyaWFSZWFkT25seSA9IHRoaXMucmVhZE9ubHkgPyAndHJ1ZScgOiBudWxsO1xuICAgICAgICB0aGlzLmludGVybmFscy5hcmlhRGlzYWJsZWQgPSB0aGlzLmRpc2FibGVkID8gJ3RydWUnIDogbnVsbDtcbiAgICAgICAgLy8gVE9ETygyMDI2KTogRmlyZWZveCBzdXBwb3J0cyBwbGFpbnRleHQtb25seSBzaW5jZSB2ZXJzaW9uIDEzNiAoTWFyY2ggMjAyNSkuXG4gICAgICAgIC8vIFVudGlsIHRoaXMgaXMgcGFydCBvZiBvdXIgYmFzZWxpbmUsIHdlIHNob3VsZCBmZWF0dXJlIGNoZWNrIHRvIGVuYWJsZSBpdC5cbiAgICAgICAgY29uc3QgdmFsdWUgPVxuICAgICAgICAgIHRoaXMuZGlzYWJsZWQgfHwgdGhpcy5yZWFkT25seVxuICAgICAgICAgICAgPyAnZmFsc2UnXG4gICAgICAgICAgICA6IHBsYWludGV4dE9ubHlTdXBwb3J0ZWRcbiAgICAgICAgICAgICAgPyAncGxhaW50ZXh0LW9ubHknXG4gICAgICAgICAgICAgIDogJ3RydWUnO1xuICAgICAgICB0aGlzLnNldEF0dHJpYnV0ZSgnY29udGVudGVkaXRhYmxlJywgdmFsdWUpO1xuICAgICAgICAvLyBJbiB0aGUgcmVhZG9ubHkgY2FzZSwgd2UgZGlzYWJsZSBjb250ZW50ZWRpdGFibGUsIGJ1dCBpdCBzdGlsbFxuICAgICAgICAvLyBuZWVkcyB0byBiZSBmb2N1c2FibGUuIFdlIGFjaGlldmUgdGhpcyBieSBzZXR0aW5nIHRhYmluZGV4IGluIHRoYXQgY2FzZS5cbiAgICAgICAgaWYgKHRoaXMucmVhZE9ubHkpIHtcbiAgICAgICAgICB0aGlzLnNldEF0dHJpYnV0ZSgndGFiaW5kZXgnLCAnMCcpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMucmVtb3ZlQXR0cmlidXRlKCd0YWJpbmRleCcpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfZW1pdENoYW5nZUlmTmVjZXNzYXJ5KCk6IHZvaWQge1xuICAgICAgaWYgKHRoaXMuX3Nob3VsZEVtaXRDaGFuZ2UpIHtcbiAgICAgICAgdGhpcy5fc2hvdWxkRW1pdENoYW5nZSA9IGZhbHNlO1xuICAgICAgICAvKiogVGhlIGNoYW5nZSBldmVudCBpcyBmaXJlZCB3aGVuIHRoZSB1c2VyIG1vZGlmaWVzIHRoZSBlbGVtZW50J3MgdmFsdWUuIFVubGlrZSB0aGUgaW5wdXQgZXZlbnQsIHRoZSBjaGFuZ2UgZXZlbnQgaXMgbm90IG5lY2Vzc2FyaWx5IGZpcmVkIGZvciBlYWNoIGFsdGVyYXRpb24gdG8gYW4gZWxlbWVudCdzIHZhbHVlLiAqL1xuICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCdjaGFuZ2UnLCB7IGJ1YmJsZXM6IHRydWUgfSkpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgX2NhblNlbGVjdCgpOiBib29sZWFuIHtcbiAgICAgIHJldHVybiAhaXNTZXJ2ZXIgJiYgIXRoaXMuZGlzYWJsZWQgJiYgIXRoaXMucmVhZE9ubHkgJiYgISF0aGlzLnZhbHVlO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXIoKTogdW5rbm93biB7XG4gICAgICByZXR1cm4gaHRtbGA8c2xvdCBAc2xvdGNoYW5nZT0ke3RoaXMuX2NsZWFuQ2hpbGRyZW59Pjwvc2xvdD5gO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBTYmJGb3JtQXNzb2NpYXRlZElucHV0RWxlbWVudCBhcyB1bmtub3duIGFzIEFic3RyYWN0Q29uc3RydWN0b3I8U2JiRm9ybUFzc29jaWF0ZWRJbnB1dE1peGluVHlwZT4gJlxuICAgIFQ7XG59O1xuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQXdEQSxNQUFNLDRCQUE0QixNQUFjO0FBQzlDLE1BQUksVUFBVTtBQUNaLFdBQU87QUFBQSxFQUNUO0FBRUEsUUFBTSxNQUFNLFNBQVMsY0FBYyxLQUFLO0FBQ3hDLE1BQUksYUFBYSxtQkFBbUIsZ0JBQWdCO0FBSXBELFNBQU8sSUFBSSxvQkFBb0I7QUFDakM7QUFDQSxNQUFNLHlCQUF5QiwwQkFBQTtBQU14QixNQUFNLDhCQUE4QixDQUN6QyxlQUM0RDtNQUM3QyxpQ0FBNkIsTUFBQTs7QUFDbEMsUUFBQSxjQUFBLGlCQUNOLGlCQUNFLGlCQUFpQix1QkFBdUIseUJBQXlCLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FDL0U7Ozs7O0FBSlUsV0FBQSxtQkFDTCxZQUlQO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxNQTBCRCxJQUFvQixPQUFJO0FBQ3RCLGVBQU87QUFBQSxNQUNUO0FBQUE7QUFBQTtBQUFBO0FBQUEsTUFNQSxJQUFXLE1BQU0sT0FBYTtBQUM1QixhQUFLLFNBQVMsS0FBSyxXQUFXLEtBQUs7QUFDbkMsWUFBSSxLQUFLLFlBQVk7QUFDbkIsZUFBSyxhQUFhLEtBQUssTUFBTTtBQUFBLFFBQy9CO0FBRUEsYUFBSyxjQUFjLElBQUksTUFBTSxzQkFBc0IsRUFBRSxTQUFTLE1BQU0sVUFBVSxLQUFBLENBQU0sQ0FBQztBQUFBLE1BQ3ZGO0FBQUEsTUFDQSxJQUFXLFFBQUs7QUFDZCxlQUFPLEtBQUssVUFBVTtBQUFBLE1BQ3hCO0FBQUEsTUFJQSxJQUFXLFlBQVksT0FBYTtBQUNsQyxZQUFJLE9BQU87QUFDVCxlQUFLLGFBQWEsZUFBZSxLQUFLO0FBQUEsUUFDeEMsT0FBTztBQUNMLGVBQUssZ0JBQWdCLGFBQWE7QUFBQSxRQUNwQztBQUNB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
319
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1hc3NvY2lhdGVkLWlucHV0LW1peGluLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvY29yZS9taXhpbnMvZm9ybS1hc3NvY2lhdGVkLWlucHV0LW1peGluLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIGh0bWwsXG4gIGlzU2VydmVyLFxuICB0eXBlIExpdEVsZW1lbnQsXG4gIHR5cGUgUHJvcGVydHlEZWNsYXJhdGlvbixcbiAgdHlwZSBQcm9wZXJ0eVZhbHVlcyxcbn0gZnJvbSAnbGl0JztcbmltcG9ydCB7IGV2ZW50T3B0aW9ucywgcHJvcGVydHkgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5cbmltcG9ydCB7IHNiYklucHV0TW9kYWxpdHlEZXRlY3RvciB9IGZyb20gJy4uL2ExMXkudHMnO1xuaW1wb3J0IHsgU2JiTGFuZ3VhZ2VDb250cm9sbGVyLCBTYmJNZWRpYVF1ZXJ5UG9pbnRlckNvYXJzZSB9IGZyb20gJy4uL2NvbnRyb2xsZXJzLnRzJztcbmltcG9ydCB7IGlzQmxpbmssIGlzV2Via2l0IH0gZnJvbSAnLi4vZG9tLnRzJztcbmltcG9ydCB7IGkxOG5JbnB1dFJlcXVpcmVkIH0gZnJvbSAnLi4vaTE4bi50cyc7XG5cbmltcG9ydCB0eXBlIHsgQWJzdHJhY3RDb25zdHJ1Y3RvciB9IGZyb20gJy4vY29uc3RydWN0b3IudHMnO1xuaW1wb3J0IHsgU2JiRGlzYWJsZWRNaXhpbiB9IGZyb20gJy4vZGlzYWJsZWQtbWl4aW4udHMnO1xuaW1wb3J0IHsgU2JiRWxlbWVudEludGVybmFsc01peGluIH0gZnJvbSAnLi9lbGVtZW50LWludGVybmFscy1taXhpbi50cyc7XG5pbXBvcnQge1xuICB0eXBlIEZvcm1SZXN0b3JlUmVhc29uLFxuICB0eXBlIEZvcm1SZXN0b3JlU3RhdGUsXG4gIFNiYkZvcm1Bc3NvY2lhdGVkTWl4aW4sXG59IGZyb20gJy4vZm9ybS1hc3NvY2lhdGVkLW1peGluLnRzJztcbmltcG9ydCB7IFNiYlJlYWRvbmx5TWl4aW4gfSBmcm9tICcuL3JlYWRvbmx5LW1peGluLnRzJztcbmltcG9ydCB7IFNiYlJlcXVpcmVkTWl4aW4gfSBmcm9tICcuL3JlcXVpcmVkLW1peGluLnRzJztcblxuZXhwb3J0IGRlY2xhcmUgYWJzdHJhY3QgY2xhc3MgU2JiRm9ybUFzc29jaWF0ZWRJbnB1dE1peGluVHlwZSBleHRlbmRzIFNiYlJlcXVpcmVkTWl4aW4oXG4gIFNiYkZvcm1Bc3NvY2lhdGVkTWl4aW4oU2JiRWxlbWVudEludGVybmFsc01peGluKExpdEVsZW1lbnQpKSxcbikge1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IGZvcm1GaWVsZEFzc29jaWF0ZWQgPSB0cnVlO1xuXG4gIHB1YmxpYyBzZXQgdmFsdWUodmFsdWU6IHN0cmluZyk7XG4gIHB1YmxpYyBnZXQgdmFsdWUoKTogc3RyaW5nO1xuXG4gIHB1YmxpYyBzZXQgZGlzYWJsZWQodmFsdWU6IGJvb2xlYW4pO1xuICBwdWJsaWMgZ2V0IGRpc2FibGVkKCk6IGJvb2xlYW47XG5cbiAgcHVibGljIHNldCByZWFkT25seSh2YWx1ZTogYm9vbGVhbik7XG4gIHB1YmxpYyBnZXQgcmVhZE9ubHkoKTogYm9vbGVhbjtcblxuICBwdWJsaWMgc2V0IHBsYWNlaG9sZGVyKHZhbHVlOiBzdHJpbmcpO1xuICBwdWJsaWMgZ2V0IHBsYWNlaG9sZGVyKCk6IHN0cmluZztcblxuICAvKipcbiAgICogTWFrZXMgdGhlIHNlbGVjdGlvbiBlcXVhbCB0byB0aGUgY3VycmVudCBvYmplY3QuXG4gICAqXG4gICAqIFtNRE4gUmVmZXJlbmNlXShodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9kb2NzL1dlYi9BUEkvSFRNTElucHV0RWxlbWVudC9zZWxlY3QpXG4gICAqL1xuICBwdWJsaWMgc2VsZWN0KCk6IHZvaWQ7XG5cbiAgcHVibGljIGZvcm1SZXNldENhbGxiYWNrKCk6IHZvaWQ7XG4gIHB1YmxpYyBmb3JtU3RhdGVSZXN0b3JlQ2FsbGJhY2soc3RhdGU6IEZvcm1SZXN0b3JlU3RhdGUgfCBudWxsLCByZWFzb246IEZvcm1SZXN0b3JlUmVhc29uKTogdm9pZDtcblxuICBwcm90ZWN0ZWQgcHJlcGFyZVBhc3RlZFRleHQodGV4dDogc3RyaW5nKTogc3RyaW5nO1xuICBwcm90ZWN0ZWQgbGFuZ3VhZ2U6IFNiYkxhbmd1YWdlQ29udHJvbGxlcjtcbn1cblxuY29uc3QgY2hlY2tQbGFpbnRleHRPbmx5U3VwcG9ydCA9ICgpOiBib29sZWFuID0+IHtcbiAgaWYgKGlzU2VydmVyKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgY29uc3QgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gIGRpdi5zZXRBdHRyaWJ1dGUoJ2NvbnRlbnRlZGl0YWJsZScsICdQTEFJTlRFWFQtT05MWScpO1xuXG4gIC8vIElmIHBsYWludGV4dC1vbmx5IGlzIHN1cHBvcnRlZCwgdGhlIGF0dHJpYnV0ZSB2YWx1ZSBpc1xuICAvLyByZXR1cm5lZCBhcyBsb3dlci1jYXNlIGZyb20gdGhlIHByb3BlcnR5IGFjY2Vzcy5cbiAgcmV0dXJuIGRpdi5jb250ZW50RWRpdGFibGUgPT09ICdwbGFpbnRleHQtb25seSc7XG59O1xuY29uc3QgcGxhaW50ZXh0T25seVN1cHBvcnRlZCA9IGNoZWNrUGxhaW50ZXh0T25seVN1cHBvcnQoKTtcblxuLyoqXG4gKiBUaGUgU2JiRm9ybUFzc29jaWF0ZWRJbnB1dE1peGluIGVuYWJsZXMgbmF0aXZlIGZvcm0gc3VwcG9ydCBmb3IgdGV4dCBpbnB1dCBjb250cm9scy5cbiAqL1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuZXhwb3J0IGNvbnN0IFNiYkZvcm1Bc3NvY2lhdGVkSW5wdXRNaXhpbiA9IDxUIGV4dGVuZHMgQWJzdHJhY3RDb25zdHJ1Y3RvcjxMaXRFbGVtZW50Pj4oXG4gIHN1cGVyQ2xhc3M6IFQsXG4pOiBBYnN0cmFjdENvbnN0cnVjdG9yPFNiYkZvcm1Bc3NvY2lhdGVkSW5wdXRNaXhpblR5cGU+ICYgVCA9PiB7XG4gIGFic3RyYWN0IGNsYXNzIFNiYkZvcm1Bc3NvY2lhdGVkSW5wdXRFbGVtZW50XG4gICAgZXh0ZW5kcyBTYmJSZWFkb25seU1peGluKFxuICAgICAgU2JiRGlzYWJsZWRNaXhpbihcbiAgICAgICAgU2JiUmVxdWlyZWRNaXhpbihTYmJGb3JtQXNzb2NpYXRlZE1peGluKFNiYkVsZW1lbnRJbnRlcm5hbHNNaXhpbihzdXBlckNsYXNzKSkpLFxuICAgICAgKSxcbiAgICApXG4gICAgaW1wbGVtZW50cyBQYXJ0aWFsPFNiYkZvcm1Bc3NvY2lhdGVkSW5wdXRNaXhpblR5cGU+XG4gIHtcbiAgICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHJlYWRvbmx5IHJvbGUgPSAndGV4dGJveCc7XG4gICAgcHVibGljIHN0YXRpYyByZWFkb25seSBmb3JtRmllbGRBc3NvY2lhdGVkID0gdHJ1ZTtcblxuICAgIC8qKlxuICAgICAqIEFuIGVsZW1lbnQgd2l0aCBjb250ZW50ZWRpdGFibGUgd2lsbCBub3QgZW1pdCBhIGNoYW5nZSBldmVudC4gVG8gYWNoaWV2ZSBwYXJpdHlcbiAgICAgKiB3aXRoIGEgbmF0aXZlIHRleHQgaW5wdXQsIHdlIG5lZWQgdG8gdHJhY2sgd2hldGhlciBhIGNoYW5nZSBldmVudCBzaG91bGQgYmVcbiAgICAgKiBlbWl0dGVkLlxuICAgICAqL1xuICAgIHByaXZhdGUgX3Nob3VsZEVtaXRDaGFuZ2UgPSBmYWxzZTtcbiAgICAvKipcbiAgICAgKiBBIG5hdGl2ZSB0ZXh0IGlucHV0IGF0dGVtcHRzIHRvIHN1Ym1pdCB0aGUgZm9ybSB3aGVuIHByZXNzaW5nIEVudGVyLlxuICAgICAqIFRoaXMgY2FuIGJlIHByZXZlbnRlZCBieSBjYWxsaW5nIHByZXZlbnREZWZhdWx0IG9uIHRoZSBrZXlkb3duIGV2ZW50LlxuICAgICAqIFdlIHRyYWNrIHdoZXRoZXIgdG8gcmVxdWVzdCBzdWJtaXQsIHdoaWNoIHNob3VsZCBvY2N1ciBiZWZvcmUgdGhlIGtleXVwXG4gICAgICogZXZlbnQuXG4gICAgICovXG4gICAgcHJpdmF0ZSBfc2hvdWxkVHJpZ2dlclN1Ym1pdCA9IGZhbHNlO1xuXG4gICAgcHJvdGVjdGVkIGxhbmd1YWdlID0gbmV3IFNiYkxhbmd1YWdlQ29udHJvbGxlcih0aGlzKTtcblxuICAgIC8qKlxuICAgICAqIEZvcm0gdHlwZSBvZiBlbGVtZW50LlxuICAgICAqIEBkZWZhdWx0ICd0ZXh0J1xuICAgICAqL1xuICAgIHB1YmxpYyBvdmVycmlkZSBnZXQgdHlwZSgpOiBzdHJpbmcge1xuICAgICAgcmV0dXJuICd0ZXh0JztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGUgdmFsdWUgb2YgdGhlIGlucHV0LiBSZWZsZWN0cyB0aGUgY3VycmVudCB0ZXh0IHZhbHVlIG9mIHRoaXMgaW5wdXQuXG4gICAgICovXG4gICAgQHByb3BlcnR5KClcbiAgICBwdWJsaWMgc2V0IHZhbHVlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgIHRoaXMuX3ZhbHVlID0gdGhpcy5fY2xlYW5UZXh0KHZhbHVlKTtcbiAgICAgIGlmICh0aGlzLmhhc1VwZGF0ZWQpIHtcbiAgICAgICAgdGhpcy5fYXNzaWduVmFsdWUodGhpcy5fdmFsdWUpO1xuICAgICAgfVxuICAgICAgLyoqIEBpbnRlcm5hbCAqL1xuICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgnZGlzcGxheXZhbHVlY2hhbmdlJywgeyBidWJibGVzOiB0cnVlLCBjb21wb3NlZDogdHJ1ZSB9KSk7XG4gICAgfVxuICAgIHB1YmxpYyBnZXQgdmFsdWUoKTogc3RyaW5nIHtcbiAgICAgIHJldHVybiB0aGlzLl92YWx1ZSA/PyAnJztcbiAgICB9XG4gICAgcHJpdmF0ZSBfdmFsdWU6IHN0cmluZyA9ICcnO1xuXG4gICAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiBmYWxzZSB9KVxuICAgIHB1YmxpYyBzZXQgcGxhY2Vob2xkZXIodmFsdWU6IHN0cmluZykge1xuICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgIHRoaXMuc2V0QXR0cmlidXRlKCdwbGFjZWhvbGRlcicsIHZhbHVlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMucmVtb3ZlQXR0cmlidXRlKCdwbGFjZWhvbGRlcicpO1xuICAgICAgfVxuICAgICAgdGhpcy5pbnRlcm5hbHMuYXJpYVBsYWNlaG9sZGVyID0gdmFsdWUgPyB2YWx1ZSA6IG51bGw7XG4gICAgfVxuICAgIHB1YmxpYyBnZXQgcGxhY2Vob2xkZXIoKTogc3RyaW5nIHtcbiAgICAgIHJldHVybiB0aGlzLmdldEF0dHJpYnV0ZSgncGxhY2Vob2xkZXInKSA/PyAnJztcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgY29uc3RydWN0b3IoKSB7XG4gICAgICBzdXBlcigpO1xuICAgICAgLy8gV2UgcHJpbWFyaWx5IHVzZSBjYXB0dXJlIGV2ZW50IGxpc3RlbmVycywgYXMgd2Ugd2FudFxuICAgICAgLy8gb3VyIGxpc3RlbmVycyB0byBvY2N1ciBiZWZvcmUgY29uc3VtZXIgZXZlbnQgbGlzdGVuZXJzLlxuICAgICAgdGhpcy5hZGRFdmVudExpc3RlbmVyPy4oXG4gICAgICAgICdpbnB1dCcsXG4gICAgICAgICgpID0+IHtcbiAgICAgICAgICBjb25zdCBvbGRWYWx1ZSA9IHRoaXMuX3ZhbHVlO1xuICAgICAgICAgIHRoaXMuX3ZhbHVlID0gdGhpcy5fY2xlYW5UZXh0KHRoaXMudGV4dENvbnRlbnQgPz8gJycpO1xuICAgICAgICAgIHRoaXMucmVxdWVzdFVwZGF0ZSgndmFsdWUnLCBvbGRWYWx1ZSk7XG4gICAgICAgICAgdGhpcy5pbnRlcm5hbHMuc3RhdGVzLmFkZCgnaW50ZXJhY3RlZCcpO1xuICAgICAgICAgIHRoaXMuX3Nob3VsZEVtaXRDaGFuZ2UgPSB0cnVlO1xuICAgICAgICB9LFxuICAgICAgICB7IGNhcHR1cmU6IHRydWUgfSxcbiAgICAgICk7XG4gICAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/LignY2hhbmdlJywgKCkgPT4gKHRoaXMuX3Nob3VsZEVtaXRDaGFuZ2UgPSBmYWxzZSksIHsgY2FwdHVyZTogdHJ1ZSB9KTtcbiAgICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcj8uKFxuICAgICAgICAna2V5ZG93bicsXG4gICAgICAgIChldmVudCkgPT4ge1xuICAgICAgICAgIGlmICh0aGlzLl9yZXF1aXJlc0VtcHR5UGF0Y2goKSkge1xuICAgICAgICAgICAgdGhpcy5fYXNzaWduVmFsdWUoJycpO1xuICAgICAgICAgIH1cbiAgICAgICAgICAvLyBXZSBwcmV2ZW50IHJlY3Vyc2l2ZSBldmVudHMgYnkgY2hlY2tpbmcgdGhlIG9yaWdpbmFsIGV2ZW50IGZvciBpc1RydXN0ZWRcbiAgICAgICAgICAvLyB3aGljaCBpcyBmYWxzZSBmb3IgbWFudWFsbHkgZGlzcGF0Y2hlZCBldmVudHMgKHdoaWNoIHdlIGRpc3BhdGNoIGJlbG93KS5cbiAgICAgICAgICBpZiAoKGV2ZW50LmtleSA9PT0gJ0VudGVyJyB8fCBldmVudC5rZXkgPT09ICdcXG4nKSAmJiBldmVudC5pc1RydXN0ZWQpIHtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgIHRoaXMuX3Nob3VsZFRyaWdnZXJTdWJtaXQgPSB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEtleWJvYXJkRXZlbnQoJ2tleWRvd24nLCBldmVudCkpO1xuICAgICAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgICAgICBpc1dlYmtpdCAmJlxuICAgICAgICAgICAgdGhpcy52YWx1ZSAmJlxuICAgICAgICAgICAgKGV2ZW50LmtleSA9PT0gJ0JhY2tzcGFjZScgfHwgZXZlbnQua2V5ID09PSAnRGVsZXRlJykgJiZcbiAgICAgICAgICAgIGV2ZW50LmlzVHJ1c3RlZFxuICAgICAgICAgICkge1xuICAgICAgICAgICAgLy8gSW4gV2Via2l0IHByZXNzaW5nIEJhY2tzcGFjZSBvciBEZWxldGUgY29tcGxldGVseSByZW1vdmVzIGFsbCB0aGUgY29udGVudFxuICAgICAgICAgICAgLy8gaWYgY29udGVudGVkaXRhYmxlIGlzIHNldCBvbiBhIHdlYiBjb21wb25lbnQgaG9zdC5cbiAgICAgICAgICAgIC8vIFdlIGhhdmUgdG8gcmVwbGljYXRlIHRoZSBub3JtYWwgZGVsZXRlIGJlaGF2aW9yLlxuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO1xuXG4gICAgICAgICAgICBpZiAoIXRoaXMuZGlzcGF0Y2hFdmVudChuZXcgS2V5Ym9hcmRFdmVudCgna2V5ZG93bicsIGV2ZW50KSkpIHtcbiAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBzZWxlY3RlZFJhbmdlID0gd2luZG93LmdldFNlbGVjdGlvbigpPy5nZXRSYW5nZUF0KDApO1xuICAgICAgICAgICAgaWYgKCFzZWxlY3RlZFJhbmdlKSB7XG4gICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHNlbGVjdGVkUmFuZ2Uuc3RhcnRPZmZzZXQgIT09IHNlbGVjdGVkUmFuZ2UuZW5kT2Zmc2V0KSB7XG4gICAgICAgICAgICAgIC8vIElmIGEgdGV4dCByYW5nZSBpcyBzZWxlY3RlZCwgdGhlbiBkZWxldGUgdGhpcyByYW5nZVxuICAgICAgICAgICAgICBzZWxlY3RlZFJhbmdlLmRlbGV0ZUNvbnRlbnRzKCk7XG4gICAgICAgICAgICAgIHRoaXMuX2Rpc3BhdGNoSW5wdXRFdmVudCgpO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChldmVudC5rZXkgPT09ICdCYWNrc3BhY2UnICYmIHNlbGVjdGVkUmFuZ2Uuc3RhcnRPZmZzZXQgPiAwKSB7XG4gICAgICAgICAgICAgIC8vIFdoZW4gcHJlc3NpbmcgQmFja3NwYWNlLCB3ZSBzZWxlY3QgdGhlIHByZXZpb3VzIGNoYXJhY3RlciBmcm9tXG4gICAgICAgICAgICAgIC8vIHRoZSBjdXJyZW50IGN1cnNvciBwb3NpdGlvbiBhbmQgZGVsZXRlIGl0LlxuICAgICAgICAgICAgICBzZWxlY3RlZFJhbmdlLnNldFN0YXJ0KHNlbGVjdGVkUmFuZ2Uuc3RhcnRDb250YWluZXIsIHNlbGVjdGVkUmFuZ2Uuc3RhcnRPZmZzZXQgLSAxKTtcbiAgICAgICAgICAgICAgc2VsZWN0ZWRSYW5nZS5kZWxldGVDb250ZW50cygpO1xuICAgICAgICAgICAgICB0aGlzLl9kaXNwYXRjaElucHV0RXZlbnQoKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoZXZlbnQua2V5ID09PSAnRGVsZXRlJyAmJiBzZWxlY3RlZFJhbmdlLmVuZE9mZnNldCA8IHRoaXMudmFsdWUubGVuZ3RoKSB7XG4gICAgICAgICAgICAgIC8vIFdoZW4gcHJlc3NpbmcgRGVsZXRlLCB3ZSBzZWxlY3QgdGhlIG5leHQgY2hhcmFjdGVyIGZyb21cbiAgICAgICAgICAgICAgLy8gdGhlIGN1cnJlbnQgY3Vyc29yIHBvc2l0aW9uIGFuZCBkZWxldGUgaXQuXG4gICAgICAgICAgICAgIHNlbGVjdGVkUmFuZ2Uuc2V0RW5kKHNlbGVjdGVkUmFuZ2UuZW5kQ29udGFpbmVyLCBzZWxlY3RlZFJhbmdlLmVuZE9mZnNldCArIDEpO1xuICAgICAgICAgICAgICBzZWxlY3RlZFJhbmdlLmRlbGV0ZUNvbnRlbnRzKCk7XG4gICAgICAgICAgICAgIHRoaXMuX2Rpc3BhdGNoSW5wdXRFdmVudCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgeyBjYXB0dXJlOiB0cnVlIH0sXG4gICAgICApO1xuICAgICAgdGhpcy5hZGRFdmVudExpc3RlbmVyPy4oXG4gICAgICAgICdrZXl1cCcsXG4gICAgICAgIChldmVudCkgPT4ge1xuICAgICAgICAgIGlmIChldmVudC5rZXkgPT09ICdFbnRlcicgfHwgZXZlbnQua2V5ID09PSAnXFxuJykge1xuICAgICAgICAgICAgdGhpcy5fZW1pdENoYW5nZUlmTmVjZXNzYXJ5KCk7XG4gICAgICAgICAgICBpZiAodGhpcy5fc2hvdWxkVHJpZ2dlclN1Ym1pdCkge1xuICAgICAgICAgICAgICB0aGlzLl9zaG91bGRUcmlnZ2VyU3VibWl0ID0gZmFsc2U7XG4gICAgICAgICAgICAgIHRoaXMuZm9ybT8ucmVxdWVzdFN1Ym1pdCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5fcmVxdWlyZXNFbXB0eVBhdGNoKCkpIHtcbiAgICAgICAgICAgIHRoaXMuX3NldEN1cnNvckF0KDApO1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgeyBjYXB0dXJlOiB0cnVlIH0sXG4gICAgICApO1xuICAgICAgLy8gY29udGVudGVkaXRhYmxlIGFsbG93cyBwYXN0aW5nIHJpY2ggY29udGVudCBpbnRvIGl0cyBob3N0LlxuICAgICAgLy8gV2UgcHJldmVudCB0aGlzIGJ5IGxpc3RlbmluZyB0byB0aGUgcGFzdGUgZXZlbnQgYW5kXG4gICAgICAvLyBleHRyYWN0aW5nIHRoZSBwbGFpbiB0ZXh0IGZyb20gdGhlIHBhc3RlZCBjb250ZW50XG4gICAgICAvLyBhbmQgaW5zZXJ0aW5nIGl0IGludG8gdGhlIHNlbGVjdGVkIHJhbmdlIChjdXJzb3IgcG9zaXRpb25cbiAgICAgIC8vIG9yIHNlbGVjdGlvbikuXG4gICAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/LigncGFzdGUnLCAoZSkgPT4ge1xuICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGlmICh0aGlzLl9yZXF1aXJlc0VtcHR5UGF0Y2goKSkge1xuICAgICAgICAgIHRoaXMuX2Fzc2lnblZhbHVlKCcnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHRleHQgPSB0aGlzLl9jbGVhblRleHQoZS5jbGlwYm9hcmREYXRhPy5nZXREYXRhKCd0ZXh0L3BsYWluJykgPz8gJycpO1xuICAgICAgICBjb25zdCBzZWxlY3RlZFJhbmdlID0gd2luZG93LmdldFNlbGVjdGlvbigpPy5nZXRSYW5nZUF0KDApO1xuICAgICAgICBpZiAoIXNlbGVjdGVkUmFuZ2UgfHwgIXRleHQpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBzZWxlY3RlZFJhbmdlLmRlbGV0ZUNvbnRlbnRzKCk7XG4gICAgICAgIHNlbGVjdGVkUmFuZ2UuaW5zZXJ0Tm9kZShkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSh0aGlzLnByZXBhcmVQYXN0ZWRUZXh0KHRleHQpKSk7XG4gICAgICAgIHNlbGVjdGVkUmFuZ2Uuc2V0U3RhcnQoc2VsZWN0ZWRSYW5nZS5lbmRDb250YWluZXIsIHNlbGVjdGVkUmFuZ2UuZW5kT2Zmc2V0KTtcbiAgICAgICAgdGhpcy5fZGlzcGF0Y2hJbnB1dEV2ZW50KCk7XG4gICAgICB9KTtcbiAgICAgIC8vIFdoZW4gZm9jdXNpbmcgYSB0ZXh0IGlucHV0IHZpYSBrZXlib2FyZCwgdGhlIHRleHQgY29udGVudCBzaG91bGQgYmUgc2VsZWN0ZWQuXG4gICAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/LignZm9jdXMnLCAoKSA9PiB7XG4gICAgICAgIGlmIChzYmJJbnB1dE1vZGFsaXR5RGV0ZWN0b3IubW9zdFJlY2VudE1vZGFsaXR5ID09PSAna2V5Ym9hcmQnKSB7XG4gICAgICAgICAgLy8gVE9ETzogVGhpcyBkb2VzIG5vdCBzZWVtIHRvIHdvcmsgaW4gRmlyZWZveCB3aXRoIHJlYWRvbmx5LlxuICAgICAgICAgIHdpbmRvdy5nZXRTZWxlY3Rpb24oKT8uc2VsZWN0QWxsQ2hpbGRyZW4odGhpcyk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgdGhpcy5hZGRFdmVudExpc3RlbmVyPy4oJ3RvdWNoZW5kJywgKCkgPT4ge1xuICAgICAgICBpZiAodGhpcy5fcmVxdWlyZXNFbXB0eVBhdGNoKCkpIHtcbiAgICAgICAgICB0aGlzLl9hc3NpZ25WYWx1ZSgnJm5ic3A7Jyk7XG4gICAgICAgICAgdGhpcy5fc2V0Q3Vyc29yQXQoMCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgdGhpcy5hZGRFdmVudExpc3RlbmVyPy4oJ2NsaWNrJywgKCkgPT4ge1xuICAgICAgICBpZiAodGhpcy5fcmVxdWlyZXNFbXB0eVBhdGNoKCkgJiYgc2JiSW5wdXRNb2RhbGl0eURldGVjdG9yLm1vc3RSZWNlbnRNb2RhbGl0eSA9PT0gJ3RvdWNoJykge1xuICAgICAgICAgIHRoaXMuX3NldEN1cnNvckF0KDApO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgLy8gT24gYmx1ciB0aGUgbmF0aXZlIHRleHQgaW5wdXQgc2Nyb2xscyB0aGUgdGV4dCB0byB0aGUgc3RhcnQgb2YgdGhlIHRleHQuXG4gICAgICAvLyBXZSBtaW1pYyB0aGF0IGJ5IHJlc2V0dGluZyB0aGUgc2Nyb2xsIHBvc2l0aW9uLlxuICAgICAgLy8gV2UgYWxzbyB1bnNldCBhbnkgc2VsZWN0aW9uIHRvIGFsaWduIHdpdGggdGhlIG5hdGl2ZSB0ZXh0IGlucHV0LlxuICAgICAgdGhpcy5hZGRFdmVudExpc3RlbmVyPy4oXG4gICAgICAgICdibHVyJyxcbiAgICAgICAgKCkgPT4ge1xuICAgICAgICAgIHdpbmRvdy5nZXRTZWxlY3Rpb24oKT8ucmVtb3ZlQWxsUmFuZ2VzKCk7XG4gICAgICAgICAgaWYgKHRoaXMudmFsdWUgPT09ICcnKSB7XG4gICAgICAgICAgICB0aGlzLl9hc3NpZ25WYWx1ZSgnJyk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMuX2VtaXRDaGFuZ2VJZk5lY2Vzc2FyeSgpO1xuICAgICAgICAgIHRoaXMuc2Nyb2xsTGVmdCA9IDA7XG4gICAgICAgIH0sXG4gICAgICAgIHsgY2FwdHVyZTogdHJ1ZSB9LFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgaXNEaXNhYmxlZEV4dGVybmFsbHkoKTogYm9vbGVhbiB7XG4gICAgICByZXR1cm4gdGhpcy5mb3JtRGlzYWJsZWQ7XG4gICAgfVxuXG4gICAgcHVibGljIG92ZXJyaWRlIGNvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgICAgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKTtcbiAgICAgIHRoaXMuaW50ZXJuYWxzLmFyaWFNdWx0aUxpbmUgPSAnZmFsc2UnO1xuICAgICAgdGhpcy5fdXBkYXRlQ29udGVudGVkaXRhYmxlKCk7XG5cbiAgICAgIC8vIFdlIHdhbnQgdG8gcmVwbGFjZSBhbnkgY29udGVudCBieSBqdXN0IHRoZSB0ZXh0IGNvbnRlbnQuXG4gICAgICB0aGlzLl9hc3NpZ25WYWx1ZSh0aGlzLnZhbHVlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb3ZlcnJpZGUgZm9jdXMob3B0aW9ucz86IEZvY3VzT3B0aW9ucyk6IHZvaWQge1xuICAgICAgc3VwZXIuZm9jdXMob3B0aW9ucyk7XG4gICAgICAvLyBCeSBkZWZhdWx0LCB3aGVuIGNhbGxpbmcgZm9jdXMgb24gYW4gaW5wdXQgZWxlbWVudCwgdGhlIGN1cnNvciBpcyBwbGFjZWRcbiAgICAgIC8vIGF0IHRoZSBlbmQgb2YgdGhlIGlucHV0IHRleHQuIEhvd2V2ZXIsIHdpdGggY29udGVudGVkaXRhYmxlLCB0aGUgY3Vyc29yXG4gICAgICAvLyBpcyBwbGFjZWQgYXQgdGhlIGJlZ2lubmluZywgc28gd2UgbW92ZSBpdCB0byB0aGUgZW5kLCBpZiB0aGF0IGlzIHRoZSBjYXNlLlxuICAgICAgaWYgKHRoaXMuX2NhblNlbGVjdCgpKSB7XG4gICAgICAgIGNvbnN0IHNlbGVjdGlvbiA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKTtcbiAgICAgICAgaWYgKCFzZWxlY3Rpb24pIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcmFuZ2UgPSBzZWxlY3Rpb24ucmFuZ2VDb3VudCA+IDAgPyBzZWxlY3Rpb24uZ2V0UmFuZ2VBdCgwKSA6IG51bGw7XG4gICAgICAgIGlmIChyYW5nZSAmJiByYW5nZS5zdGFydE9mZnNldCAhPT0gMCkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX3NldEN1cnNvckF0KHRoaXMudGV4dENvbnRlbnQhLmxlbmd0aCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIG92ZXJyaWRlIGF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFjayhcbiAgICAgIG5hbWU6IHN0cmluZyxcbiAgICAgIG9sZDogc3RyaW5nIHwgbnVsbCxcbiAgICAgIHZhbHVlOiBzdHJpbmcgfCBudWxsLFxuICAgICk6IHZvaWQge1xuICAgICAgLyoqXG4gICAgICAgKiBUaGUgbmF0aXZlIHRleHQgaW5wdXQgY2hhbmdlcyB0aGUgdmFsdWUgcHJvcGVydHkgd2hlbiB0aGUgdmFsdWUgYXR0cmlidXRlIGlzXG4gICAgICAgKiBjaGFuZ2VkIHVuZGVyIHRoZSBjb25kaXRpb24gdGhhdCBubyBpbnB1dCBldmVudCBoYXMgb2NjdXJyZWQgc2luY2UgY3JlYXRpb25cbiAgICAgICAqIG9yIHRoZSBsYXN0IGZvcm0gcmVzZXQuXG4gICAgICAgKi9cbiAgICAgIGlmIChuYW1lICE9PSAndmFsdWUnIHx8ICF0aGlzLmludGVybmFscy5zdGF0ZXMuaGFzKCdpbnRlcmFjdGVkJykpIHtcbiAgICAgICAgc3VwZXIuYXR0cmlidXRlQ2hhbmdlZENhbGxiYWNrKG5hbWUsIG9sZCwgdmFsdWUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIElzIGNhbGxlZCB3aGVuZXZlciB0aGUgZm9ybSBpcyBiZWluZyByZXNldC5cbiAgICAgKlxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHB1YmxpYyBvdmVycmlkZSBmb3JtUmVzZXRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICAgIHRoaXMuaW50ZXJuYWxzLnN0YXRlcy5kZWxldGUoJ2ludGVyYWN0ZWQnKTtcbiAgICAgIHRoaXMudmFsdWUgPSB0aGlzLmdldEF0dHJpYnV0ZSgndmFsdWUnKSA/PyAnJztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiAgQ2FsbGVkIHdoZW4gdGhlIGJyb3dzZXIgaXMgdHJ5aW5nIHRvIHJlc3RvcmUgZWxlbWVudOKAmXMgc3RhdGUgdG8gc3RhdGUgaW4gd2hpY2ggY2FzZVxuICAgICAqICByZWFzb24gaXMgXCJyZXN0b3JlXCIsIG9yIHdoZW4gdGhlIGJyb3dzZXIgaXMgdHJ5aW5nIHRvIGZ1bGZpbGwgYXV0b2ZpbGwgb24gYmVoYWxmIG9mXG4gICAgICogIHVzZXIgaW4gd2hpY2ggY2FzZSByZWFzb24gaXMgXCJhdXRvY29tcGxldGVcIi5cbiAgICAgKiAgSW4gdGhlIGNhc2Ugb2YgXCJyZXN0b3JlXCIsIHN0YXRlIGlzIGEgc3RyaW5nLCBGaWxlLCBvciBGb3JtRGF0YSBvYmplY3RcbiAgICAgKiAgcHJldmlvdXNseSBzZXQgYXMgdGhlIHNlY29uZCBhcmd1bWVudCB0byBzZXRGb3JtVmFsdWUuXG4gICAgICpcbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBwdWJsaWMgb3ZlcnJpZGUgZm9ybVN0YXRlUmVzdG9yZUNhbGxiYWNrKFxuICAgICAgc3RhdGU6IEZvcm1SZXN0b3JlU3RhdGUgfCBudWxsLFxuICAgICAgX3JlYXNvbjogRm9ybVJlc3RvcmVSZWFzb24sXG4gICAgKTogdm9pZCB7XG4gICAgICBpZiAoc3RhdGUgJiYgdHlwZW9mIHN0YXRlID09PSAnc3RyaW5nJykge1xuICAgICAgICB0aGlzLnZhbHVlID0gc3RhdGU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogTWFrZXMgdGhlIHNlbGVjdGlvbiBlcXVhbCB0byB0aGUgY3VycmVudCBvYmplY3QuXG4gICAgICpcbiAgICAgKiBAbGluayBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9kb2NzL1dlYi9BUEkvSFRNTElucHV0RWxlbWVudC9zZWxlY3RcbiAgICAgKi9cbiAgICBwdWJsaWMgc2VsZWN0KCk6IHZvaWQge1xuICAgICAgd2luZG93LmdldFNlbGVjdGlvbigpPy5zZWxlY3RBbGxDaGlsZHJlbih0aGlzKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgZmlyc3RVcGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzOiBQcm9wZXJ0eVZhbHVlczx0aGlzPik6IHZvaWQge1xuICAgICAgc3VwZXIuZmlyc3RVcGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzKTtcblxuICAgICAgLy8gSWYgdGhlIHZhbHVlIHdhcyBhc3NpZ25lZCBiZWZvcmUgZmlyc3RVcGRhdGUsIHdlIGhhdmUgdG9cbiAgICAgIC8vIHdyaXRlIGl0IHRoZSBkb2N1bWVudCB0byBiZSB2aXN1YWxseSBzZWVuXG4gICAgICBpZiAodGhpcy52YWx1ZSAmJiAhdGhpcy5pbm5lckhUTUwubGVuZ3RoKSB7XG4gICAgICAgIHRoaXMuX2Fzc2lnblZhbHVlKHRoaXMudmFsdWUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBvdmVycmlkZSByZXF1ZXN0VXBkYXRlKFxuICAgICAgbmFtZT86IFByb3BlcnR5S2V5LFxuICAgICAgb2xkVmFsdWU/OiB1bmtub3duLFxuICAgICAgb3B0aW9ucz86IFByb3BlcnR5RGVjbGFyYXRpb24sXG4gICAgKTogdm9pZCB7XG4gICAgICBzdXBlci5yZXF1ZXN0VXBkYXRlKG5hbWUsIG9sZFZhbHVlLCBvcHRpb25zKTtcbiAgICAgIGlmIChcbiAgICAgICAgdGhpcy5pc0Nvbm5lY3RlZCAmJlxuICAgICAgICAobmFtZSA9PT0gJ2Rpc2FibGVkJyB8fCBuYW1lID09PSAnZm9ybURpc2FibGVkJyB8fCBuYW1lID09PSAncmVhZE9ubHknKVxuICAgICAgKSB7XG4gICAgICAgIHRoaXMuX3VwZGF0ZUNvbnRlbnRlZGl0YWJsZSgpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBvdmVycmlkZSBzaG91bGRWYWxpZGF0ZShuYW1lOiBQcm9wZXJ0eUtleSB8IHVuZGVmaW5lZCk6IGJvb2xlYW4ge1xuICAgICAgcmV0dXJuIHN1cGVyLnNob3VsZFZhbGlkYXRlKG5hbWUpIHx8IG5hbWUgPT09ICd2YWx1ZScgfHwgbmFtZSA9PT0gJ3JlcXVpcmVkJztcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgdmFsaWRhdGUoKTogdm9pZCB7XG4gICAgICBzdXBlci52YWxpZGF0ZSgpO1xuICAgICAgaWYgKHRoaXMucmVxdWlyZWQgJiYgIXRoaXMudmFsdWUpIHtcbiAgICAgICAgdGhpcy5zZXRWYWxpZGl0eUZsYWcoJ3ZhbHVlTWlzc2luZycsIGkxOG5JbnB1dFJlcXVpcmVkW3RoaXMubGFuZ3VhZ2UuY3VycmVudF0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5yZW1vdmVWYWxpZGl0eUZsYWcoJ3ZhbHVlTWlzc2luZycpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBwcmVwYXJlUGFzdGVkVGV4dCh0ZXh0OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgcmV0dXJuIHRleHQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfcmVxdWlyZXNFbXB0eVBhdGNoKCk6IGJvb2xlYW4ge1xuICAgICAgLy8gSW4gQmxpbmssIGEgY29udGVudGVkaXRhYmxlIGVsZW1lbnQgd2l0aCBlbXB0eSBjb250ZW50IHdpbGwgY3Jhc2hcbiAgICAgIC8vIHVwb24gcmVjZWl2aW5nIGZvY3VzLCB3aGVuIGluIE1vYmlsZSBtb2RlLlxuICAgICAgLy8gVG8gcHJldmVudCB0aGlzLCB3ZSBwYXRjaCB0aGUgZW1wdHkgc3RhdGUgYnkgaW5zZXJ0aW5nIGEgbm9uLWJyZWFraW5nIHNwYWNlLlxuICAgICAgcmV0dXJuIGlzU2VydmVyXG4gICAgICAgID8gZmFsc2VcbiAgICAgICAgOiBpc0JsaW5rICYmIHRoaXMudmFsdWUgPT09ICcnICYmIHdpbmRvdy5tYXRjaE1lZGlhKFNiYk1lZGlhUXVlcnlQb2ludGVyQ29hcnNlKS5tYXRjaGVzO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2Fzc2lnblZhbHVlKHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgIHRoaXMuaW5uZXJIVE1MID0gdmFsdWU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfc2V0Q3Vyc29yQXQocG9zaXRpb246IG51bWJlcik6IHZvaWQge1xuICAgICAgY29uc3Qgc2VsZWN0aW9uID0gd2luZG93LmdldFNlbGVjdGlvbigpO1xuICAgICAgaWYgKCFzZWxlY3Rpb24pIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBjb25zdCByYW5nZSA9IGRvY3VtZW50LmNyZWF0ZVJhbmdlKCk7XG4gICAgICByYW5nZS5zZXRTdGFydCh0aGlzLmZpcnN0Q2hpbGQhLCBwb3NpdGlvbik7XG4gICAgICByYW5nZS5jb2xsYXBzZSh0cnVlKTtcbiAgICAgIHNlbGVjdGlvbi5yZW1vdmVBbGxSYW5nZXMoKTtcbiAgICAgIHNlbGVjdGlvbi5hZGRSYW5nZShyYW5nZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfY2xlYW5UZXh0KHZhbHVlOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgLy8gVGhlIG5hdGl2ZSB0ZXh0IGlucHV0IHJlbW92ZXMgYWxsIG5ld2xpbmUgY2hhcmFjdGVycyBpZiBwYXNzZWQgdG8gdGhlIHZhbHVlIHByb3BlcnR5XG4gICAgICByZXR1cm4gdmFsdWUgPT09IG51bGwgPyAnJyA6IGAke3ZhbHVlfWAucmVwbGFjZSgvW1xcblxccl0rL2csICcnKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9kaXNwYXRjaElucHV0RXZlbnQoKTogdm9pZCB7XG4gICAgICAvKiogVGhlIGlucHV0IGV2ZW50IGZpcmVzIHdoZW4gdGhlIHZhbHVlIGhhcyBiZWVuIGNoYW5nZWQgYXMgYSBkaXJlY3QgcmVzdWx0IG9mIGEgdXNlciBhY3Rpb24uICovXG4gICAgICB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IElucHV0RXZlbnQoJ2lucHV0JywgeyBidWJibGVzOiB0cnVlLCBjb21wb3NlZDogdHJ1ZSB9KSk7XG4gICAgfVxuXG4gICAgQGV2ZW50T3B0aW9ucyh7IHBhc3NpdmU6IHRydWUgfSlcbiAgICBwcml2YXRlIF9jbGVhbkNoaWxkcmVuKCk6IHZvaWQge1xuICAgICAgaWYgKHRoaXMuY2hpbGRFbGVtZW50Q291bnQpIHtcbiAgICAgICAgZm9yIChjb25zdCBlbGVtZW50IG9mIHRoaXMuY2hpbGRyZW4pIHtcbiAgICAgICAgICBlbGVtZW50LnJlbW92ZSgpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfdXBkYXRlQ29udGVudGVkaXRhYmxlKCk6IHZvaWQge1xuICAgICAgaWYgKCFpc1NlcnZlciAmJiB0aGlzLmlzQ29ubmVjdGVkKSB7XG4gICAgICAgIHRoaXMuaW50ZXJuYWxzLmFyaWFSZWFkT25seSA9IHRoaXMucmVhZE9ubHkgPyAndHJ1ZScgOiBudWxsO1xuICAgICAgICB0aGlzLmludGVybmFscy5hcmlhRGlzYWJsZWQgPSB0aGlzLmRpc2FibGVkID8gJ3RydWUnIDogbnVsbDtcbiAgICAgICAgLy8gVE9ETygyMDI2KTogRmlyZWZveCBzdXBwb3J0cyBwbGFpbnRleHQtb25seSBzaW5jZSB2ZXJzaW9uIDEzNiAoTWFyY2ggMjAyNSkuXG4gICAgICAgIC8vIFVudGlsIHRoaXMgaXMgcGFydCBvZiBvdXIgYmFzZWxpbmUsIHdlIHNob3VsZCBmZWF0dXJlIGNoZWNrIHRvIGVuYWJsZSBpdC5cbiAgICAgICAgY29uc3QgdmFsdWUgPVxuICAgICAgICAgIHRoaXMuZGlzYWJsZWQgfHwgdGhpcy5yZWFkT25seVxuICAgICAgICAgICAgPyAnZmFsc2UnXG4gICAgICAgICAgICA6IHBsYWludGV4dE9ubHlTdXBwb3J0ZWRcbiAgICAgICAgICAgICAgPyAncGxhaW50ZXh0LW9ubHknXG4gICAgICAgICAgICAgIDogJ3RydWUnO1xuICAgICAgICB0aGlzLnNldEF0dHJpYnV0ZSgnY29udGVudGVkaXRhYmxlJywgdmFsdWUpO1xuICAgICAgICAvLyBJbiB0aGUgcmVhZG9ubHkgY2FzZSwgd2UgZGlzYWJsZSBjb250ZW50ZWRpdGFibGUsIGJ1dCBpdCBzdGlsbFxuICAgICAgICAvLyBuZWVkcyB0byBiZSBmb2N1c2FibGUuIFdlIGFjaGlldmUgdGhpcyBieSBzZXR0aW5nIHRhYmluZGV4IGluIHRoYXQgY2FzZS5cbiAgICAgICAgaWYgKHRoaXMucmVhZE9ubHkpIHtcbiAgICAgICAgICB0aGlzLnNldEF0dHJpYnV0ZSgndGFiaW5kZXgnLCAnMCcpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMucmVtb3ZlQXR0cmlidXRlKCd0YWJpbmRleCcpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfZW1pdENoYW5nZUlmTmVjZXNzYXJ5KCk6IHZvaWQge1xuICAgICAgaWYgKHRoaXMuX3Nob3VsZEVtaXRDaGFuZ2UpIHtcbiAgICAgICAgdGhpcy5fc2hvdWxkRW1pdENoYW5nZSA9IGZhbHNlO1xuICAgICAgICAvKiogVGhlIGNoYW5nZSBldmVudCBpcyBmaXJlZCB3aGVuIHRoZSB1c2VyIG1vZGlmaWVzIHRoZSBlbGVtZW50J3MgdmFsdWUuIFVubGlrZSB0aGUgaW5wdXQgZXZlbnQsIHRoZSBjaGFuZ2UgZXZlbnQgaXMgbm90IG5lY2Vzc2FyaWx5IGZpcmVkIGZvciBlYWNoIGFsdGVyYXRpb24gdG8gYW4gZWxlbWVudCdzIHZhbHVlLiAqL1xuICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCdjaGFuZ2UnLCB7IGJ1YmJsZXM6IHRydWUgfSkpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgX2NhblNlbGVjdCgpOiBib29sZWFuIHtcbiAgICAgIHJldHVybiAhaXNTZXJ2ZXIgJiYgIXRoaXMuZGlzYWJsZWQgJiYgIXRoaXMucmVhZE9ubHkgJiYgISF0aGlzLnZhbHVlO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXIoKTogdW5rbm93biB7XG4gICAgICByZXR1cm4gaHRtbGA8c2xvdCBAc2xvdGNoYW5nZT0ke3RoaXMuX2NsZWFuQ2hpbGRyZW59Pjwvc2xvdD5gO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBTYmJGb3JtQXNzb2NpYXRlZElucHV0RWxlbWVudCBhcyB1bmtub3duIGFzIEFic3RyYWN0Q29uc3RydWN0b3I8U2JiRm9ybUFzc29jaWF0ZWRJbnB1dE1peGluVHlwZT4gJlxuICAgIFQ7XG59O1xuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQXdEQSxNQUFNLDRCQUE0QixNQUFjO0FBQzlDLE1BQUksVUFBVTtBQUNaLFdBQU87QUFBQSxFQUNUO0FBRUEsUUFBTSxNQUFNLFNBQVMsY0FBYyxLQUFLO0FBQ3hDLE1BQUksYUFBYSxtQkFBbUIsZ0JBQWdCO0FBSXBELFNBQU8sSUFBSSxvQkFBb0I7QUFDakM7QUFDQSxNQUFNLHlCQUF5QiwwQkFBQTtBQU14QixNQUFNLDhCQUE4QixDQUN6QyxlQUM0RDtNQUM3QyxpQ0FBNkIsTUFBQTs7QUFDbEMsUUFBQSxjQUFBLGlCQUNOLGlCQUNFLGlCQUFpQix1QkFBdUIseUJBQXlCLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FDL0U7Ozs7O0FBSlUsV0FBQSxtQkFDTCxZQUlQO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxNQTBCRCxJQUFvQixPQUFJO0FBQ3RCLGVBQU87QUFBQSxNQUNUO0FBQUE7QUFBQTtBQUFBO0FBQUEsTUFNQSxJQUFXLE1BQU0sT0FBYTtBQUM1QixhQUFLLFNBQVMsS0FBSyxXQUFXLEtBQUs7QUFDbkMsWUFBSSxLQUFLLFlBQVk7QUFDbkIsZUFBSyxhQUFhLEtBQUssTUFBTTtBQUFBLFFBQy9CO0FBRUEsYUFBSyxjQUFjLElBQUksTUFBTSxzQkFBc0IsRUFBRSxTQUFTLE1BQU0sVUFBVSxLQUFBLENBQU0sQ0FBQztBQUFBLE1BQ3ZGO0FBQUEsTUFDQSxJQUFXLFFBQUs7QUFDZCxlQUFPLEtBQUssVUFBVTtBQUFBLE1BQ3hCO0FBQUEsTUFJQSxJQUFXLFlBQVksT0FBYTtBQUNsQyxZQUFJLE9BQU87QUFDVCxlQUFLLGFBQWEsZUFBZSxLQUFLO0FBQUEsUUFDeEMsT0FBTztBQUNMLGVBQUssZ0JBQWdCLGFBQWE7QUFBQSxRQUNwQztBQUNB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
@@ -1,6 +1,6 @@
1
1
  import { LitElement } from 'lit';
2
- import { AbstractConstructor } from './constructor.js';
3
- import { SbbElementInternalsMixinType } from './element-internals-mixin.js';
2
+ import { AbstractConstructor } from './constructor.ts';
3
+ import { SbbElementInternalsMixinType } from './element-internals-mixin.ts';
4
4
  declare global {
5
5
  /**
6
6
  * Defines custom validity state properties.