@sbb-esta/lyne-elements 4.11.0 → 4.12.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (556) hide show
  1. package/autocomplete/autocomplete-base-element.js +1 -1
  2. package/autocomplete/autocomplete.component.js +3 -2
  3. package/{autocomplete-base-element-DarHnnYC.js → autocomplete-base-element-De2O5Wx-.js} +14 -9
  4. package/autocomplete.js +1 -1
  5. package/autocomplete.pure.js +1 -1
  6. package/{block-link-common-DzGY49Xc.js → block-link-common-1kRa_czx.js} +1 -1
  7. package/breadcrumb/breadcrumb-group/breadcrumb-group.component.js +1 -1
  8. package/breadcrumb/breadcrumb-group.js +1 -1
  9. package/{breadcrumb-group.component-F3-JZkfO.js → breadcrumb-group.component-CKNsaUqs.js} +1 -1
  10. package/breadcrumb.js +1 -1
  11. package/breadcrumb.pure.js +1 -1
  12. package/button/common/button-common.js +1 -1
  13. package/button/common.js +1 -1
  14. package/button-common-BMEhm-dn.js +87 -0
  15. package/button.js +1 -1
  16. package/button.pure.js +1 -1
  17. package/calendar/calendar/calendar.component.js +1 -1
  18. package/calendar/calendar.js +1 -1
  19. package/{calendar.component-DjQOyRGl.js → calendar.component-C1jk_uE0.js} +3 -3
  20. package/calendar.js +1 -1
  21. package/calendar.pure.js +1 -1
  22. package/card/card-badge/card-badge.component.js +1 -1
  23. package/card/card-badge.js +1 -1
  24. package/{card-badge.component-BSOEYrN4.js → card-badge.component-D0r2iixU.js} +1 -1
  25. package/card.js +1 -1
  26. package/card.pure.js +1 -1
  27. package/checkbox/checkbox.component.js +1 -1
  28. package/checkbox/checkbox.js +1 -1
  29. package/checkbox/common/checkbox-common.js +1 -1
  30. package/checkbox/common.js +1 -1
  31. package/{checkbox-common-DdieysTG.js → checkbox-common-BpW4_bbi.js} +1 -1
  32. package/{checkbox.component-ROzxEnPh.js → checkbox.component-DS48CA_v.js} +1 -1
  33. package/checkbox.js +2 -2
  34. package/checkbox.pure.js +2 -2
  35. package/chip/chip-group/chip-group.component.js +1 -1
  36. package/chip/chip-group.js +1 -1
  37. package/{chip-group.component-DJzUToem.js → chip-group.component-BqBYzfXA.js} +1 -1
  38. package/chip.js +1 -1
  39. package/chip.pure.js +1 -1
  40. package/{compact-paginator.component-Cyi-t_YD.js → compact-paginator.component-BIAPutro.js} +1 -1
  41. package/container/sticky-bar/sticky-bar.component.js +1 -1
  42. package/container/sticky-bar.js +1 -1
  43. package/container.js +1 -1
  44. package/container.pure.js +1 -1
  45. package/core/controllers/overlay-position-controller.js +4 -1
  46. package/core/mixins/element-internals-mixin.js +1 -1
  47. package/core/mixins/form-associated-input-mixin.js +1 -1
  48. package/core/mixins/named-slot-list-mixin.js +4 -1
  49. package/core/overlay/position.js +4 -4
  50. package/core/styles/core.scss +62 -77
  51. package/core/styles/mixins/helpers.scss +3 -3
  52. package/core/styles/mixins/overlay.scss +2 -2
  53. package/core/styles/mixins/typo.scss +2 -2
  54. package/core/styles/node_modules_@sbb-esta_lyne-design-tokens_dist_scss_sbb-variables-as-css.scss +8 -0
  55. package/core.css +177 -73
  56. package/custom-elements.json +574 -306
  57. package/development/autocomplete/autocomplete-base-element.d.ts +8 -1
  58. package/development/autocomplete/autocomplete-base-element.d.ts.map +1 -1
  59. package/development/autocomplete/autocomplete-base-element.js +1 -1
  60. package/development/autocomplete/autocomplete.component.js +4 -3
  61. package/development/autocomplete-base-element-BpCpYcX9.js +692 -0
  62. package/development/autocomplete.js +1 -1
  63. package/development/autocomplete.pure.js +1 -1
  64. package/development/{block-link-common-GckvjULA.js → block-link-common-COY1RI1I.js} +2 -2
  65. package/development/breadcrumb/breadcrumb-group/breadcrumb-group.component.js +1 -1
  66. package/development/breadcrumb/breadcrumb-group.js +1 -1
  67. package/development/breadcrumb-group.component-DZslNBlB.js +195 -0
  68. package/development/breadcrumb.js +1 -1
  69. package/development/breadcrumb.pure.js +1 -1
  70. package/development/button/common/button-common.js +1 -1
  71. package/development/button/common.js +1 -1
  72. package/development/{button-common-CAu09Yim.js → button-common-7dmrUx4A.js} +3 -3
  73. package/development/button.js +1 -1
  74. package/development/button.pure.js +1 -1
  75. package/development/calendar/calendar/calendar.component.js +1 -1
  76. package/development/calendar/calendar.js +1 -1
  77. package/development/calendar-cell-base-element-BXohfDSl.js +1 -1
  78. package/development/calendar.component-Dg3D2A7k.js +1453 -0
  79. package/development/calendar.js +1 -1
  80. package/development/calendar.pure.js +1 -1
  81. package/development/card/card-badge/card-badge.component.js +1 -1
  82. package/development/card/card-badge.js +1 -1
  83. package/development/card-action-common-1FDHbfeR.js +1 -1
  84. package/development/card-badge.component-CUZIoVbL.js +84 -0
  85. package/development/card.js +1 -1
  86. package/development/card.pure.js +1 -1
  87. package/development/carousel-list.component-L-nYpHcN.js +1 -1
  88. package/development/carousel.component-Dl48ROSf.js +1 -1
  89. package/development/checkbox/checkbox.component.js +1 -1
  90. package/development/checkbox/checkbox.js +1 -1
  91. package/development/checkbox/common/checkbox-common.js +1 -1
  92. package/development/checkbox/common.js +1 -1
  93. package/development/checkbox-common-Dd5uup8K.js +86 -0
  94. package/development/checkbox-group/checkbox-group.component.js +1 -1
  95. package/development/{checkbox.component-D3_FFSys.js → checkbox.component-CFZrwUTA.js} +2 -2
  96. package/development/checkbox.js +2 -2
  97. package/development/checkbox.pure.js +2 -2
  98. package/development/chip/chip-group/chip-group.component.js +1 -1
  99. package/development/chip/chip-group.js +1 -1
  100. package/development/chip-group.component-BVfHWX2-.js +409 -0
  101. package/development/chip.js +1 -1
  102. package/development/chip.pure.js +1 -1
  103. package/development/clock.component-CVPv4mCp.js +1 -1
  104. package/development/compact-paginator.component-5_Q2Reul.js +51 -0
  105. package/development/container/sticky-bar/sticky-bar.component.js +1 -1
  106. package/development/container/sticky-bar.js +1 -1
  107. package/development/container.js +1 -1
  108. package/development/container.pure.js +1 -1
  109. package/development/core/a11y/input-modality-detector.js +1 -1
  110. package/development/core/base-elements/element.js +1 -1
  111. package/development/core/controllers/media-matchers-controller.js +1 -1
  112. package/development/core/controllers/overlay-position-controller.js +3 -2
  113. package/development/core/datetime/date-adapter.js +1 -1
  114. package/development/core/datetime/native-date-adapter.js +1 -1
  115. package/development/core/datetime/temporal-date-adapter.js +1 -1
  116. package/development/core/eventing/throttle.d.ts +1 -0
  117. package/development/core/eventing/throttle.d.ts.map +1 -1
  118. package/development/core/eventing/throttle.js +2 -1
  119. package/development/core/mixins/disabled-mixin.js +1 -1
  120. package/development/core/mixins/element-internals-mixin.js +2 -2
  121. package/development/core/mixins/form-associated-checkbox-mixin.js +1 -1
  122. package/development/core/mixins/form-associated-input-mixin.js +2 -2
  123. package/development/core/mixins/form-associated-mixin.js +1 -1
  124. package/development/core/mixins/form-associated-radio-button-mixin.js +1 -1
  125. package/development/core/mixins/named-slot-list-mixin.d.ts.map +1 -1
  126. package/development/core/mixins/named-slot-list-mixin.js +5 -2
  127. package/development/core/mixins/negative-mixin.js +1 -1
  128. package/development/core/mixins/readonly-mixin.js +1 -1
  129. package/development/core/mixins/required-mixin.js +1 -1
  130. package/development/core/overlay/position.d.ts.map +1 -1
  131. package/development/core/overlay/position.js +4 -2
  132. package/development/core/testing/event-spy.js +1 -1
  133. package/development/datepicker/common/datepicker-button.d.ts +6 -0
  134. package/development/datepicker/common/datepicker-button.d.ts.map +1 -1
  135. package/development/datepicker/common/datepicker-button.js +1 -1
  136. package/development/datepicker/common.js +1 -1
  137. package/development/datepicker/datepicker/datepicker.component.d.ts +3 -0
  138. package/development/datepicker/datepicker/datepicker.component.d.ts.map +1 -1
  139. package/development/datepicker/datepicker/datepicker.component.js +1 -1
  140. package/development/datepicker/datepicker.js +1 -1
  141. package/development/datepicker-button-CUPeoQgH.js +169 -0
  142. package/development/datepicker.component-D2DxFng_.js +216 -0
  143. package/development/datepicker.js +2 -2
  144. package/development/datepicker.pure.js +2 -2
  145. package/development/error.component-OBpWoVRL.js +55 -0
  146. package/development/expansion-panel/expansion-panel-header/expansion-panel-header.component.js +1 -1
  147. package/development/expansion-panel/expansion-panel-header.js +1 -1
  148. package/development/expansion-panel-header.component-C1xRGcAN.js +85 -0
  149. package/development/expansion-panel.js +1 -1
  150. package/development/expansion-panel.pure.js +1 -1
  151. package/development/file-selector/common/file-selector-common.d.ts.map +1 -1
  152. package/development/file-selector/common/file-selector-common.js +1 -1
  153. package/development/file-selector/common.js +1 -1
  154. package/development/file-selector/file-selector-dropzone/file-selector-dropzone.component.d.ts.map +1 -1
  155. package/development/file-selector/file-selector-dropzone/file-selector-dropzone.component.js +1 -1
  156. package/development/file-selector/file-selector-dropzone.js +1 -1
  157. package/development/file-selector-common-C7xIEiV4.js +416 -0
  158. package/development/file-selector-dropzone.component-BAWMZW4F.js +111 -0
  159. package/development/file-selector.js +2 -2
  160. package/development/file-selector.pure.js +2 -2
  161. package/development/footer/footer.component.js +1 -1
  162. package/development/footer.component-BmDkxYW9.js +172 -0
  163. package/development/footer.js +1 -1
  164. package/development/footer.pure.js +1 -1
  165. package/development/form-field/error/error.component.js +1 -1
  166. package/development/form-field/error.js +1 -1
  167. package/development/form-field/form-field/form-field.component.js +1 -1
  168. package/development/form-field/form-field-clear/form-field-clear.component.d.ts +3 -0
  169. package/development/form-field/form-field-clear/form-field-clear.component.d.ts.map +1 -1
  170. package/development/form-field/form-field-clear/form-field-clear.component.js +4 -1
  171. package/development/form-field/form-field.js +1 -1
  172. package/development/form-field/hint/hint.component.js +1 -1
  173. package/development/form-field.component-BU3Sv2mD.js +707 -0
  174. package/development/form-field.js +3 -3
  175. package/development/form-field.pure.js +3 -3
  176. package/development/header/header/header.component.js +1 -1
  177. package/development/header/header.js +1 -1
  178. package/development/header-action-common-MTYV0dqA.js +1 -1
  179. package/development/header.component-CWJ36jF0.js +340 -0
  180. package/development/header.js +1 -1
  181. package/development/header.pure.js +1 -1
  182. package/development/hint.component-DUtL0RS3.js +38 -0
  183. package/development/icon/icon-name-mixin.js +1 -1
  184. package/development/image.component-BD0jc-u-.js +1 -1
  185. package/development/link/common/block-link-common.js +1 -1
  186. package/development/link/common.js +1 -1
  187. package/development/link-common-DJ2FfG_Q.js +1 -1
  188. package/development/link-list-base-CKMNz30d.js +1 -1
  189. package/development/link.js +1 -1
  190. package/development/link.pure.js +1 -1
  191. package/development/message/message.component.js +1 -1
  192. package/development/message.component-Dlf5V5ba.js +44 -0
  193. package/development/message.js +1 -1
  194. package/development/message.pure.js +1 -1
  195. package/development/mini-calendar.component-BufzKw74.js +1 -1
  196. package/development/navigation/common/navigation-action-common.js +1 -1
  197. package/development/navigation/common.js +1 -1
  198. package/development/navigation/navigation-marker/navigation-marker.component.js +1 -1
  199. package/development/navigation/navigation-marker.js +1 -1
  200. package/development/navigation/navigation-section/navigation-section.component.js +1 -1
  201. package/development/navigation/navigation-section.js +1 -1
  202. package/development/{navigation-action-common-DpBp7-eZ.js → navigation-action-common-Hjr4dI9J.js} +2 -2
  203. package/development/{navigation-marker.component-BpZdT4xz.js → navigation-marker.component-GOv42emC.js} +2 -2
  204. package/development/{navigation-section.component-CtZtuacK.js → navigation-section.component-CnVrRETN.js} +2 -2
  205. package/development/navigation.component-CTNQ1dix.js +1 -1
  206. package/development/navigation.js +3 -3
  207. package/development/navigation.pure.js +3 -3
  208. package/development/notification/notification.component.js +1 -1
  209. package/development/notification.component-Cvq_uViC.js +274 -0
  210. package/development/notification.js +1 -1
  211. package/development/notification.pure.js +1 -1
  212. package/development/option/option/option-base-element.d.ts.map +1 -1
  213. package/development/option/option/option-base-element.js +3 -1
  214. package/development/option/option/option.component.js +1 -1
  215. package/development/option/option.js +1 -1
  216. package/development/option.component-Bb2C7ae5.js +130 -0
  217. package/development/option.js +1 -1
  218. package/development/option.pure.js +1 -1
  219. package/development/paginator/common/paginator-common.js +1 -1
  220. package/development/paginator/compact-paginator/compact-paginator.component.js +1 -1
  221. package/development/paginator/compact-paginator.js +1 -1
  222. package/development/paginator/paginator/paginator.component.js +1 -1
  223. package/development/paginator/paginator.js +1 -1
  224. package/development/paginator.component-Bn5tK0FK.js +259 -0
  225. package/development/paginator.js +2 -2
  226. package/development/paginator.pure.js +2 -2
  227. package/development/panel-mixin-Dj_rsgL9.js +1 -1
  228. package/development/popover/popover.component.d.ts +2 -1
  229. package/development/popover/popover.component.d.ts.map +1 -1
  230. package/development/popover/popover.component.js +1 -1
  231. package/development/popover.component-EgOs-wsR.js +572 -0
  232. package/development/popover.js +1 -1
  233. package/development/popover.pure.js +1 -1
  234. package/development/radio-button/common/radio-button-common.js +1 -1
  235. package/development/radio-button/common.js +1 -1
  236. package/development/radio-button/radio-button.component.js +1 -1
  237. package/development/radio-button/radio-button.js +1 -1
  238. package/development/radio-button-common--d3WX-ZM.js +126 -0
  239. package/development/radio-button-panel/radio-button-panel.component.js +1 -1
  240. package/development/{radio-button.component-BrQF2FfA.js → radio-button.component-BauLEeCV.js} +2 -2
  241. package/development/radio-button.js +2 -2
  242. package/development/radio-button.pure.js +2 -2
  243. package/development/select/select.component.d.ts.map +1 -1
  244. package/development/select/select.component.js +1 -1
  245. package/development/select.component-D9SFG7Lk.js +814 -0
  246. package/development/select.js +1 -1
  247. package/development/select.pure.js +1 -1
  248. package/development/sidebar-container.component-BDSoDAym.js +1 -1
  249. package/development/sidebar.component-BLqO52nH.js +1 -1
  250. package/development/slider/slider.component.js +1 -1
  251. package/development/{slider.component-BjfLnUvP.js → slider.component-C3qZB6ar.js} +2 -2
  252. package/development/slider.js +1 -1
  253. package/development/slider.pure.js +1 -1
  254. package/development/status/status.component.js +1 -1
  255. package/development/status.component-CPi1cPN0.js +111 -0
  256. package/development/status.js +1 -1
  257. package/development/status.pure.js +1 -1
  258. package/development/step-label.component-BJ9eainz.js +131 -0
  259. package/development/stepper/step-label/step-label.component.js +1 -1
  260. package/development/stepper/step-label.js +1 -1
  261. package/development/stepper.component-CxOBayI1.js +1 -1
  262. package/development/stepper.js +1 -1
  263. package/development/stepper.pure.js +1 -1
  264. package/development/{sticky-bar.component-Dzrdsnxu.js → sticky-bar.component-CysAIZTd.js} +3 -3
  265. package/development/styles-D8-q-irv.js +1 -1
  266. package/development/styles-Jlhoev1S.js +14 -0
  267. package/development/tab-group.component-D9jCK26q.js +275 -0
  268. package/development/{tab-label.component-14j2eh4Z.js → tab-label.component-B9e9kgVf.js} +2 -2
  269. package/development/tabs/common/styles.js +1 -1
  270. package/development/tabs/common.js +1 -1
  271. package/development/tabs/tab-group/tab-group.component.d.ts +1 -0
  272. package/development/tabs/tab-group/tab-group.component.d.ts.map +1 -1
  273. package/development/tabs/tab-group/tab-group.component.js +1 -1
  274. package/development/tabs/tab-group.js +1 -1
  275. package/development/tabs/tab-label/tab-label.component.js +1 -1
  276. package/development/tabs/tab-label.js +1 -1
  277. package/development/tabs.js +3 -3
  278. package/development/tabs.pure.js +3 -3
  279. package/development/tag/tag/tag.component.js +1 -1
  280. package/development/tag/tag.js +1 -1
  281. package/development/tag.component-Bl1nlIXQ.js +245 -0
  282. package/development/tag.js +1 -1
  283. package/development/tag.pure.js +1 -1
  284. package/development/teaser-hero/teaser-hero.component.js +1 -1
  285. package/development/{teaser-hero.component-DNlc8Tbl.js → teaser-hero.component-BIOpoGME.js} +2 -2
  286. package/development/teaser-hero.js +1 -1
  287. package/development/teaser-hero.pure.js +1 -1
  288. package/development/teaser-product-common-DYX370pm.js +1 -1
  289. package/development/time-input.component-BtdSR8kB.js +1 -1
  290. package/development/timetable-form/timetable-form/timetable-form.component.js +1 -1
  291. package/development/timetable-form/timetable-form-details/timetable-form-details.component.js +1 -1
  292. package/development/timetable-form/timetable-form-details.js +1 -1
  293. package/development/timetable-form/timetable-form-field/timetable-form-field.component.js +1 -1
  294. package/development/timetable-form/timetable-form-field.js +1 -1
  295. package/development/timetable-form/timetable-form-swap-button/timetable-form-swap-button.component.d.ts +3 -0
  296. package/development/timetable-form/timetable-form-swap-button/timetable-form-swap-button.component.d.ts.map +1 -1
  297. package/development/timetable-form/timetable-form-swap-button/timetable-form-swap-button.component.js +1 -1
  298. package/development/timetable-form/timetable-form-swap-button.js +1 -1
  299. package/development/timetable-form/timetable-form.js +1 -1
  300. package/development/timetable-form-details.component-DJl5Qt9y.js +26 -0
  301. package/development/timetable-form-field.component-DQ_TzcF4.js +44 -0
  302. package/development/{timetable-form-swap-button.component-BUKUjrpl.js → timetable-form-swap-button.component-Bh9aPmdn.js} +4 -1
  303. package/development/timetable-form.component-N8h4JBlH.js +27 -0
  304. package/development/timetable-form.js +4 -4
  305. package/development/timetable-form.pure.js +4 -4
  306. package/development/timetable-occupancy/timetable-occupancy.component.js +1 -1
  307. package/development/timetable-occupancy.component-BBcznUh0.js +124 -0
  308. package/development/timetable-occupancy.js +1 -1
  309. package/development/timetable-occupancy.pure.js +1 -1
  310. package/development/title/title-base.js +1 -1
  311. package/development/title/title.component.js +1 -1
  312. package/development/{title-base-CBE_2Hkb.js → title-base-BdYKwj3-.js} +2 -2
  313. package/development/{title.component-Dk23JVct.js → title.component-DSXVkddh.js} +2 -2
  314. package/development/title.js +2 -2
  315. package/development/title.pure.js +2 -2
  316. package/development/toast/toast.component.js +1 -1
  317. package/development/toast.component-IhHx0Qt3.js +275 -0
  318. package/development/toast.js +1 -1
  319. package/development/toast.pure.js +1 -1
  320. package/development/toggle/toggle/toggle.component.d.ts.map +1 -1
  321. package/development/toggle/toggle/toggle.component.js +1 -1
  322. package/development/toggle/toggle-option/toggle-option.component.d.ts +1 -0
  323. package/development/toggle/toggle-option/toggle-option.component.d.ts.map +1 -1
  324. package/development/toggle/toggle-option/toggle-option.component.js +1 -1
  325. package/development/toggle/toggle-option.js +1 -1
  326. package/development/toggle/toggle.js +1 -1
  327. package/development/toggle-check/toggle-check.component.js +1 -1
  328. package/development/toggle-check.component-_fDAuLob.js +159 -0
  329. package/development/toggle-check.js +1 -1
  330. package/development/toggle-check.pure.js +1 -1
  331. package/development/toggle-option.component-DTS3a603.js +167 -0
  332. package/development/toggle.component-BJpD1b9H.js +249 -0
  333. package/development/toggle.js +2 -2
  334. package/development/toggle.pure.js +2 -2
  335. package/development/tooltip/tooltip.component.js +1 -1
  336. package/development/tooltip.component-YaUQA-Id.js +378 -0
  337. package/development/tooltip.js +1 -1
  338. package/development/tooltip.pure.js +1 -1
  339. package/development/train/train-wagon/train-wagon.component.js +1 -1
  340. package/development/train/train-wagon.js +1 -1
  341. package/development/{train-wagon.component-BzA8-S_6.js → train-wagon.component-CNxkffOO.js} +2 -2
  342. package/development/train.js +1 -1
  343. package/development/train.pure.js +1 -1
  344. package/{error.component-B_D8WUP5.js → error.component-DH9Obd7a.js} +1 -1
  345. package/expansion-panel/expansion-panel-header/expansion-panel-header.component.js +1 -1
  346. package/expansion-panel/expansion-panel-header.js +1 -1
  347. package/{expansion-panel-header.component-B_dQ3ZWT.js → expansion-panel-header.component-uhZcVE_i.js} +2 -2
  348. package/expansion-panel.js +1 -1
  349. package/expansion-panel.pure.js +1 -1
  350. package/file-selector/common/file-selector-common.js +1 -1
  351. package/file-selector/common.js +1 -1
  352. package/file-selector/file-selector-dropzone/file-selector-dropzone.component.js +1 -1
  353. package/file-selector/file-selector-dropzone.js +1 -1
  354. package/{file-selector-common-DN4vHMpP.js → file-selector-common-BL9mM4SZ.js} +38 -40
  355. package/{file-selector-dropzone.component-CBKsZsC2.js → file-selector-dropzone.component-Ctar2kEw.js} +3 -4
  356. package/file-selector.js +2 -2
  357. package/file-selector.pure.js +2 -2
  358. package/footer/footer.component.js +1 -1
  359. package/{footer.component-BM91Utiz.js → footer.component-b2docCY_.js} +1 -1
  360. package/footer.js +1 -1
  361. package/footer.pure.js +1 -1
  362. package/form-field/error/error.component.js +1 -1
  363. package/form-field/error.js +1 -1
  364. package/form-field/form-field/form-field.component.js +1 -1
  365. package/form-field/form-field.js +1 -1
  366. package/form-field/hint/hint.component.js +1 -1
  367. package/{form-field.component-Cx5Keg_p.js → form-field.component-BwZDRKbQ.js} +3 -2
  368. package/form-field.js +3 -3
  369. package/form-field.pure.js +3 -3
  370. package/header/header/header.component.js +1 -1
  371. package/header/header.js +1 -1
  372. package/{header.component-hZqs06Yh.js → header.component-UQUFcMOD.js} +1 -1
  373. package/header.js +1 -1
  374. package/header.pure.js +1 -1
  375. package/{hint.component-BVUUrSSu.js → hint.component-CE2D2TLU.js} +1 -1
  376. package/link/common/block-link-common.js +1 -1
  377. package/link/common.js +1 -1
  378. package/link.js +1 -1
  379. package/link.pure.js +1 -1
  380. package/message/message.component.js +1 -1
  381. package/message.component-DhN-aFms.js +27 -0
  382. package/message.js +1 -1
  383. package/message.pure.js +1 -1
  384. package/navigation/common/navigation-action-common.js +1 -1
  385. package/navigation/common.js +1 -1
  386. package/navigation/navigation-marker/navigation-marker.component.js +1 -1
  387. package/navigation/navigation-marker.js +1 -1
  388. package/navigation/navigation-section/navigation-section.component.js +1 -1
  389. package/navigation/navigation-section.js +1 -1
  390. package/{navigation-action-common-2ix0xrBs.js → navigation-action-common-AzRltwrb.js} +1 -1
  391. package/{navigation-marker.component-DKxK16IU.js → navigation-marker.component-BzbbKlfT.js} +1 -1
  392. package/{navigation-section.component-CvjXVn5r.js → navigation-section.component-DQxCi3O_.js} +1 -1
  393. package/navigation.js +3 -3
  394. package/navigation.pure.js +3 -3
  395. package/notification/notification.component.js +1 -1
  396. package/{notification.component-DjXJFh1G.js → notification.component-D80Wl5xM.js} +1 -1
  397. package/notification.js +1 -1
  398. package/notification.pure.js +1 -1
  399. package/off-brand-theme.css +177 -73
  400. package/option/option/option-base-element.js +1 -1
  401. package/option/option/option.component.js +1 -1
  402. package/option/option.js +1 -1
  403. package/{option.component-M-V_tdSC.js → option.component-CMp8QVZT.js} +2 -2
  404. package/option.js +1 -1
  405. package/option.pure.js +1 -1
  406. package/package.json +1 -1
  407. package/paginator/compact-paginator/compact-paginator.component.js +1 -1
  408. package/paginator/compact-paginator.js +1 -1
  409. package/paginator/paginator/paginator.component.js +1 -1
  410. package/paginator/paginator.js +1 -1
  411. package/{paginator.component-CZt7Epaf.js → paginator.component-BEr0qU0m.js} +1 -1
  412. package/paginator.js +2 -2
  413. package/paginator.pure.js +2 -2
  414. package/popover/popover.component.js +1 -1
  415. package/{popover.component-DWNuW4wM.js → popover.component-CnOrQaaa.js} +82 -58
  416. package/popover.js +1 -1
  417. package/popover.pure.js +1 -1
  418. package/radio-button/common/radio-button-common.js +1 -1
  419. package/radio-button/common.js +1 -1
  420. package/radio-button/radio-button.component.js +1 -1
  421. package/radio-button/radio-button.js +1 -1
  422. package/{radio-button-common-DP4Izwwf.js → radio-button-common-C1mIf9KY.js} +1 -1
  423. package/{radio-button.component-BiGeOI5L.js → radio-button.component-Bae-yK_U.js} +1 -1
  424. package/radio-button.js +2 -2
  425. package/radio-button.pure.js +2 -2
  426. package/safety-theme.css +177 -73
  427. package/select/select.component.js +1 -1
  428. package/{select.component-DWLdApt_.js → select.component-BT6RbERH.js} +3 -3
  429. package/select.js +1 -1
  430. package/select.pure.js +1 -1
  431. package/slider/slider.component.js +1 -1
  432. package/{slider.component-CoqCppCq.js → slider.component-BlRVR6iU.js} +1 -1
  433. package/slider.js +1 -1
  434. package/slider.pure.js +1 -1
  435. package/standard-theme.css +177 -73
  436. package/status/status.component.js +1 -1
  437. package/{status.component-BFyXTFXH.js → status.component-lw_WDs7W.js} +1 -1
  438. package/status.js +1 -1
  439. package/status.pure.js +1 -1
  440. package/step-label.component-Dqis4FAN.js +80 -0
  441. package/stepper/step-label/step-label.component.js +1 -1
  442. package/stepper/step-label.js +1 -1
  443. package/stepper.js +1 -1
  444. package/stepper.pure.js +1 -1
  445. package/{sticky-bar.component-DDBq8uXU.js → sticky-bar.component-37iKnzVR.js} +2 -2
  446. package/styles-BNu0Fjw5.js +5 -0
  447. package/{tab-group.component-Doy39cEh.js → tab-group.component-BCJix5Cq.js} +37 -34
  448. package/{tab-label.component-CD56RH1Z.js → tab-label.component-CpdUyfiq.js} +1 -1
  449. package/tabs/common/styles.js +1 -1
  450. package/tabs/common.js +1 -1
  451. package/tabs/tab-group/tab-group.component.js +1 -1
  452. package/tabs/tab-group.js +1 -1
  453. package/tabs/tab-label/tab-label.component.js +1 -1
  454. package/tabs/tab-label.js +1 -1
  455. package/tabs.js +3 -3
  456. package/tabs.pure.js +3 -3
  457. package/tag/tag/tag.component.js +1 -1
  458. package/tag/tag.js +1 -1
  459. package/{tag.component-CzYJZuFT.js → tag.component-CsNszQvB.js} +1 -1
  460. package/tag.js +1 -1
  461. package/tag.pure.js +1 -1
  462. package/teaser-hero/teaser-hero.component.js +1 -1
  463. package/{teaser-hero.component-CHy82SKQ.js → teaser-hero.component-D8yj-N5n.js} +1 -1
  464. package/teaser-hero.js +1 -1
  465. package/teaser-hero.pure.js +1 -1
  466. package/timetable-form/timetable-form/timetable-form.component.js +1 -1
  467. package/timetable-form/timetable-form-details/timetable-form-details.component.js +1 -1
  468. package/timetable-form/timetable-form-details.js +1 -1
  469. package/timetable-form/timetable-form-field/timetable-form-field.component.js +1 -1
  470. package/timetable-form/timetable-form-field.js +1 -1
  471. package/timetable-form/timetable-form.js +1 -1
  472. package/timetable-form-details.component-mWKaBW_9.js +16 -0
  473. package/timetable-form-field.component-Cv_lv8vf.js +32 -0
  474. package/{timetable-form.component-CU1FXAZH.js → timetable-form.component-YcvKAlfz.js} +1 -1
  475. package/timetable-form.js +3 -3
  476. package/timetable-form.pure.js +3 -3
  477. package/timetable-occupancy/timetable-occupancy.component.js +1 -1
  478. package/{timetable-occupancy.component-Db9SfiyD.js → timetable-occupancy.component-BCXPxz68.js} +1 -1
  479. package/timetable-occupancy.js +1 -1
  480. package/timetable-occupancy.pure.js +1 -1
  481. package/title/title-base.js +1 -1
  482. package/title/title.component.js +1 -1
  483. package/{title-base-D72Xo2SW.js → title-base-DV0qhfG9.js} +1 -1
  484. package/{title.component-CoMa84Sz.js → title.component-DAGyXwDm.js} +1 -1
  485. package/title.js +2 -2
  486. package/title.pure.js +2 -2
  487. package/toast/toast.component.js +1 -1
  488. package/{toast.component-BDE1vYLS.js → toast.component-CORnf2Tl.js} +3 -3
  489. package/toast.js +1 -1
  490. package/toast.pure.js +1 -1
  491. package/toggle/toggle/toggle.component.js +1 -1
  492. package/toggle/toggle-option/toggle-option.component.js +1 -1
  493. package/toggle/toggle-option.js +1 -1
  494. package/toggle/toggle.js +1 -1
  495. package/toggle-check/toggle-check.component.js +1 -1
  496. package/toggle-check.component-DvoslSRr.js +119 -0
  497. package/toggle-check.js +1 -1
  498. package/toggle-check.pure.js +1 -1
  499. package/{toggle-option.component-Bw-GXUQK.js → toggle-option.component-pX3tNwjE.js} +5 -7
  500. package/{toggle.component-BPpsMMPG.js → toggle.component-B20xAw1V.js} +6 -10
  501. package/toggle.js +2 -2
  502. package/toggle.pure.js +2 -2
  503. package/tooltip/tooltip.component.js +1 -1
  504. package/{tooltip.component-BY9mV5Sw.js → tooltip.component-ocVpJogs.js} +1 -1
  505. package/tooltip.js +1 -1
  506. package/tooltip.pure.js +1 -1
  507. package/train/train-wagon/train-wagon.component.js +1 -1
  508. package/train/train-wagon.js +1 -1
  509. package/{train-wagon.component-BwCcF4GD.js → train-wagon.component-BT4Xnzxr.js} +1 -1
  510. package/train.js +1 -1
  511. package/train.pure.js +1 -1
  512. package/button-common-yFVzAoGy.js +0 -87
  513. package/development/autocomplete-base-element-YwfObJzm.js +0 -678
  514. package/development/breadcrumb-group.component-HBWRdDpS.js +0 -195
  515. package/development/calendar.component-6p9vsp-V.js +0 -1452
  516. package/development/card-badge.component-D4Mes-Gw.js +0 -84
  517. package/development/checkbox-common-DiTlHvFJ.js +0 -86
  518. package/development/chip-group.component-CvpUdzu1.js +0 -409
  519. package/development/compact-paginator.component-TfDVt_ST.js +0 -51
  520. package/development/datepicker-button-CANzGO5m.js +0 -163
  521. package/development/datepicker.component-C8XQVo45.js +0 -213
  522. package/development/error.component-xD_c9IBA.js +0 -55
  523. package/development/expansion-panel-header.component-Bw4uROTe.js +0 -85
  524. package/development/file-selector-common-C82QR3zb.js +0 -418
  525. package/development/file-selector-dropzone.component-B-cBO4bf.js +0 -112
  526. package/development/footer.component-BblB5218.js +0 -172
  527. package/development/form-field.component-DfMO_ihX.js +0 -706
  528. package/development/header.component-Cg0ZcA1s.js +0 -340
  529. package/development/hint.component-BsIzdUOV.js +0 -38
  530. package/development/message.component-CeJhYXSC.js +0 -44
  531. package/development/notification.component-Co9QChXc.js +0 -274
  532. package/development/option.component-CdL7fdzZ.js +0 -130
  533. package/development/paginator.component-DAdS2mMm.js +0 -259
  534. package/development/popover.component-BCMdJBUR.js +0 -537
  535. package/development/radio-button-common-C3-xuY78.js +0 -126
  536. package/development/select.component-CGNEhqzl.js +0 -812
  537. package/development/status.component-CHC2pBa-.js +0 -111
  538. package/development/step-label.component-CJFPHIZa.js +0 -131
  539. package/development/styles-DCQBzC2C.js +0 -14
  540. package/development/tab-group.component-DRipdAyc.js +0 -272
  541. package/development/tag.component-CnNPL6aI.js +0 -245
  542. package/development/timetable-form-details.component-C8awcdP5.js +0 -26
  543. package/development/timetable-form-field.component-BI24VjkC.js +0 -44
  544. package/development/timetable-form.component-CUG86CSN.js +0 -27
  545. package/development/timetable-occupancy.component-D_PXXvI9.js +0 -124
  546. package/development/toast.component-BnbpuU9L.js +0 -274
  547. package/development/toggle-check.component-BG4w_sE8.js +0 -159
  548. package/development/toggle-option.component-D-F7Fh7i.js +0 -168
  549. package/development/toggle.component-BFYLRN8o.js +0 -254
  550. package/development/tooltip.component-DzSd9VjW.js +0 -378
  551. package/message.component-BQjnZ5Z3.js +0 -27
  552. package/step-label.component-DnQBwnL8.js +0 -80
  553. package/styles-BUpK1iP2.js +0 -5
  554. package/timetable-form-details.component-CBZ7QSAx.js +0 -16
  555. package/timetable-form-field.component-BKxQQqt7.js +0 -32
  556. package/toggle-check.component-B6Ww5pLD.js +0 -119
@@ -291,4 +291,4 @@ var SbbFormAssociatedMixin = (superClass) => {
291
291
  //#endregion
292
292
  export { SbbFormAssociatedMixin };
293
293
 
294
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1hc3NvY2lhdGVkLW1peGluLmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb3JlL21peGlucy9mb3JtLWFzc29jaWF0ZWQtbWl4aW4udHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LW9iamVjdC10eXBlICovXG5pbXBvcnQgdHlwZSB7IExpdEVsZW1lbnQsIFByb3BlcnR5RGVjbGFyYXRpb24sIFByb3BlcnR5VmFsdWVzIH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IHByb3BlcnR5LCBzdGF0ZSB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcblxuaW1wb3J0IHsgaXNXZWJraXQgfSBmcm9tICcuLi9kb20udHMnO1xuXG5pbXBvcnQgdHlwZSB7IEFic3RyYWN0Q29uc3RydWN0b3IgfSBmcm9tICcuL2NvbnN0cnVjdG9yLnRzJztcbmltcG9ydCB0eXBlIHsgU2JiRWxlbWVudEludGVybmFsc01peGluVHlwZSB9IGZyb20gJy4vZWxlbWVudC1pbnRlcm5hbHMtbWl4aW4udHMnO1xuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIC8qKlxuICAgKiBEZWZpbmVzIGN1c3RvbSB2YWxpZGl0eSBzdGF0ZSBwcm9wZXJ0aWVzLlxuICAgKi9cbiAgaW50ZXJmYWNlIEN1c3RvbVZhbGlkaXR5U3RhdGUge31cbiAgaW50ZXJmYWNlIFZhbGlkaXR5U3RhdGUgZXh0ZW5kcyBDdXN0b21WYWxpZGl0eVN0YXRlIHt9XG4gIGludGVyZmFjZSBWYWxpZGl0eVN0YXRlRmxhZ3MgZXh0ZW5kcyBQYXJ0aWFsPEN1c3RvbVZhbGlkaXR5U3RhdGU+IHt9XG59XG5cbmNvbnN0IHZhbGlkaXR5S2V5czogUmVxdWlyZWQ8T21pdDxWYWxpZGl0eVN0YXRlRmxhZ3MsIGtleW9mIEN1c3RvbVZhbGlkaXR5U3RhdGU+PiA9IHtcbiAgYmFkSW5wdXQ6IGZhbHNlLFxuICBjdXN0b21FcnJvcjogZmFsc2UsXG4gIHBhdHRlcm5NaXNtYXRjaDogZmFsc2UsXG4gIHJhbmdlT3ZlcmZsb3c6IGZhbHNlLFxuICByYW5nZVVuZGVyZmxvdzogZmFsc2UsXG4gIHN0ZXBNaXNtYXRjaDogZmFsc2UsXG4gIHRvb0xvbmc6IGZhbHNlLFxuICB0b29TaG9ydDogZmFsc2UsXG4gIHR5cGVNaXNtYXRjaDogZmFsc2UsXG4gIHZhbHVlTWlzc2luZzogZmFsc2UsXG59O1xuLy8gV2UgbmVlZCBWYWxpZGl0eVN0YXRlIGluIHRoZSBnbG9iYWwgY29udGV4dCwgYXMgd2UgY2hlY2sgdGhlIHByb3RvdHlwZSBmb3Jcbi8vIGV4dGVuc2lvbnMuIEluIGVudmlyb25tZW50cyB3aGVyZSB0aGF0IGlzIG5vdCB0aGUgY2FzZSAoZS5nLiBOb2RlLmpzKSB3ZVxuLy8gcGF0Y2ggaXQgd2l0aCBhIG1pbmltYWwgc2hpbS5cbmlmICh0eXBlb2YgVmFsaWRpdHlTdGF0ZSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgY29uc3QgdmFsaWRpdHlDbGFzcyA9IGNsYXNzIFZhbGlkaXR5U3RhdGUge1xuICAgIHB1YmxpYyBnZXQgdmFsaWQoKTogYm9vbGVhbiB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcHJpdmF0ZSBjb25zdHJ1Y3RvcigpIHtcbiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ0lsbGVnYWwgY29uc3RydWN0b3InKTtcbiAgICB9XG4gIH07XG4gIE9iamVjdC5lbnRyaWVzKHZhbGlkaXR5S2V5cykuZm9yRWFjaCgoW2tleSwgdmFsdWVdKSA9PlxuICAgIE9iamVjdC5hc3NpZ24odmFsaWRpdHlDbGFzcy5wcm90b3R5cGUsIHtcbiAgICAgIGdldCBba2V5XSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgfSxcbiAgICB9KSxcbiAgKTtcbiAgZ2xvYmFsVGhpcy5WYWxpZGl0eVN0YXRlID0gdmFsaWRpdHlDbGFzcyBhcyB1bmtub3duIGFzIHR5cGVvZiBWYWxpZGl0eVN0YXRlO1xufVxuXG5leHBvcnQgZGVjbGFyZSBhYnN0cmFjdCBjbGFzcyBTYmJGb3JtQXNzb2NpYXRlZE1peGluVHlwZSB7XG4gIHB1YmxpYyBnZXQgZm9ybSgpOiBIVE1MRm9ybUVsZW1lbnQgfCBudWxsO1xuICBwdWJsaWMgYWNjZXNzb3IgbmFtZTogc3RyaW5nO1xuICBwdWJsaWMgZ2V0IHR5cGUoKTogc3RyaW5nO1xuXG4gIHB1YmxpYyBhYnN0cmFjdCBhY2Nlc3NvciB2YWx1ZTogdW5rbm93bjtcblxuICBwdWJsaWMgZ2V0IHZhbGlkaXR5KCk6IFZhbGlkaXR5U3RhdGU7XG4gIHB1YmxpYyBnZXQgdmFsaWRhdGlvbk1lc3NhZ2UoKTogc3RyaW5nO1xuICBwdWJsaWMgZ2V0IHdpbGxWYWxpZGF0ZSgpOiBib29sZWFuO1xuXG4gIHByb3RlY3RlZCBmb3JtRGlzYWJsZWQ6IGJvb2xlYW47XG5cbiAgcHVibGljIGNoZWNrVmFsaWRpdHkoKTogYm9vbGVhbjtcbiAgcHVibGljIHJlcG9ydFZhbGlkaXR5KCk6IGJvb2xlYW47XG4gIHB1YmxpYyBzZXRDdXN0b21WYWxpZGl0eShtZXNzYWdlOiBzdHJpbmcpOiB2b2lkO1xuXG4gIHB1YmxpYyBmb3JtQXNzb2NpYXRlZENhbGxiYWNrPyhmb3JtOiBIVE1MRm9ybUVsZW1lbnQgfCBudWxsKTogdm9pZDtcbiAgcHVibGljIGZvcm1EaXNhYmxlZENhbGxiYWNrKGRpc2FibGVkOiBib29sZWFuKTogdm9pZDtcbiAgcHVibGljIGFic3RyYWN0IGZvcm1SZXNldENhbGxiYWNrKCk6IHZvaWQ7XG4gIHB1YmxpYyBhYnN0cmFjdCBmb3JtU3RhdGVSZXN0b3JlQ2FsbGJhY2soXG4gICAgc3RhdGU6IEZvcm1SZXN0b3JlU3RhdGUgfCBudWxsLFxuICAgIHJlYXNvbjogRm9ybVJlc3RvcmVSZWFzb24sXG4gICk6IHZvaWQ7XG5cbiAgcHJvdGVjdGVkIHVwZGF0ZUZvcm1WYWx1ZSgpOiB2b2lkO1xuICBwcm90ZWN0ZWQgZm9ybVN0YXRlPygpOiBGb3JtUmVzdG9yZVN0YXRlO1xuICBwcm90ZWN0ZWQgc2V0VmFsaWRpdHlGbGFnPFQgZXh0ZW5kcyBrZXlvZiBWYWxpZGl0eVN0YXRlRmxhZ3M+KFxuICAgIGZsYWc6IFQsXG4gICAgbWVzc2FnZTogc3RyaW5nLFxuICAgIGZsYWdWYWx1ZT86IFZhbGlkaXR5U3RhdGVGbGFnc1tUXSxcbiAgKTogdm9pZDtcbiAgcHJvdGVjdGVkIHJlbW92ZVZhbGlkaXR5RmxhZzxUIGV4dGVuZHMga2V5b2YgVmFsaWRpdHlTdGF0ZUZsYWdzPihmbGFnOiBUKTogdm9pZDtcbiAgcHJvdGVjdGVkIHZhbGlkYXRlKCk6IHZvaWQ7XG4gIHByb3RlY3RlZCBzaG91bGRWYWxpZGF0ZShuYW1lOiBQcm9wZXJ0eUtleSB8IHVuZGVmaW5lZCk6IGJvb2xlYW47XG59XG5cbi8qKlxuICogVGhlIEZvcm1Bc3NvY2lhdGVkTWl4aW4gZW5hYmxlcyBuYXRpdmUgZm9ybSBzdXBwb3J0IGZvciBjdXN0b20gY29udHJvbHMuXG4gKi9cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbmV4cG9ydCBjb25zdCBTYmJGb3JtQXNzb2NpYXRlZE1peGluID0gPFxuICBUIGV4dGVuZHMgQWJzdHJhY3RDb25zdHJ1Y3RvcjxMaXRFbGVtZW50ICYgU2JiRWxlbWVudEludGVybmFsc01peGluVHlwZT4sXG4+KFxuICBzdXBlckNsYXNzOiBULFxuKTogQWJzdHJhY3RDb25zdHJ1Y3RvcjxTYmJGb3JtQXNzb2NpYXRlZE1peGluVHlwZT4gJiBUID0+IHtcbiAgYWJzdHJhY3QgY2xhc3MgU2JiRm9ybUFzc29jaWF0ZWRFbGVtZW50XG4gICAgZXh0ZW5kcyBzdXBlckNsYXNzXG4gICAgaW1wbGVtZW50cyBQYXJ0aWFsPFNiYkZvcm1Bc3NvY2lhdGVkTWl4aW5UeXBlPlxuICB7XG4gICAgcHVibGljIHN0YXRpYyBmb3JtQXNzb2NpYXRlZCA9IHRydWU7XG5cbiAgICBwdWJsaWMgYWJzdHJhY3QgYWNjZXNzb3IgdmFsdWU6IHVua25vd247XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHRoZSBmb3JtIG93bmVyIG9mIHRoaXMgZWxlbWVudC5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IGZvcm0oKTogSFRNTEZvcm1FbGVtZW50IHwgbnVsbCB7XG4gICAgICByZXR1cm4gdGhpcy5pbnRlcm5hbHMuZm9ybTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBOYW1lIG9mIHRoZSBmb3JtIGVsZW1lbnQuIFdpbGwgYmUgcmVhZCBmcm9tIG5hbWUgYXR0cmlidXRlLlxuICAgICAqXG4gICAgICogQGRlc2NyaXB0aW9uIERldmVsb3BlciBub3RlOiBJbiB0aGlzIGNhc2UgdXBkYXRpbmcgdGhlIGF0dHJpYnV0ZSBtdXN0IGJlIHN5bmNocm9ub3VzLlxuICAgICAqIER1ZSB0byB0aGlzIGl0IGlzIGltcGxlbWVudGVkIGFzIGEgZ2V0dGVyL3NldHRlciBhbmQgdGhlIGF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFjaygpIGhhbmRsZXMgdGhlIGRpZmYgY2hlY2suXG4gICAgICovXG4gICAgQHByb3BlcnR5KClcbiAgICBwdWJsaWMgc2V0IG5hbWUobmFtZTogc3RyaW5nKSB7XG4gICAgICB0aGlzLnNldEF0dHJpYnV0ZSgnbmFtZScsIGAke25hbWV9YCk7XG5cbiAgICAgIC8vIEZvciBgRm9ybURhdGFgIHZhbHVlcywgd2UgaGF2ZSB0byBtYW51YWxseSB1cGRhdGUgdGhlIGZpZWxkTmFtZSBrZXlcbiAgICAgIHRoaXMudXBkYXRlRm9ybVZhbHVlKCk7XG4gICAgfVxuICAgIHB1YmxpYyBnZXQgbmFtZSgpOiBzdHJpbmcge1xuICAgICAgcmV0dXJuIHRoaXMuZ2V0QXR0cmlidXRlKCduYW1lJykgPz8gJyc7XG4gICAgfVxuXG4gICAgLyoqIEBpbnRlcm5hbCAqL1xuICAgIHB1YmxpYyBnZXQgdHlwZSgpOiBzdHJpbmcge1xuICAgICAgcmV0dXJuIHRoaXMubG9jYWxOYW1lO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdGhlIFZhbGlkaXR5U3RhdGUgb2JqZWN0IGZvciB0aGlzIGVsZW1lbnQuXG4gICAgICovXG4gICAgcHVibGljIGdldCB2YWxpZGl0eSgpOiBWYWxpZGl0eVN0YXRlIHtcbiAgICAgIHJldHVybiB0aGlzLmludGVybmFscy52YWxpZGl0eTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHRoZSBjdXJyZW50IGVycm9yIG1lc3NhZ2UsIGlmIGF2YWlsYWJsZSwgd2hpY2ggY29ycmVzcG9uZHNcbiAgICAgKiB0byB0aGUgY3VycmVudCB2YWxpZGF0aW9uIHN0YXRlLlxuICAgICAqIFBsZWFzZSBub3RlIHRoYXQgb25seSBvbmUgbWVzc2FnZSBpcyByZXR1cm5lZCBhdCBhIHRpbWUgKGUuZy4gaWZcbiAgICAgKiBtdWx0aXBsZSB2YWxpZGl0eSBzdGF0ZXMgYXJlIGludmFsaWQsIG9ubHkgdGhlIGNocm9ub2xvZ2ljYWxseSBmaXJzdCBvbmVcbiAgICAgKiBpcyByZXR1cm5lZCB1bnRpbCBpdCBpcyBmaXhlZCwgYXQgd2hpY2ggcG9pbnQgdGhlIG5leHQgbWVzc2FnZSBtaWdodCBiZVxuICAgICAqIHJldHVybmVkLCBpZiBpdCBpcyBzdGlsbCBhcHBsaWNhYmxlKS4gQWxzbywgYSBjdXN0b20gdmFsaWRpdHkgbWVzc2FnZVxuICAgICAqIChzZWUgYmVsb3cpIGhhcyBwcmVjZWRlbmNlIG92ZXIgbmF0aXZlIHZhbGlkYXRpb24gbWVzc2FnZXMuXG4gICAgICovXG4gICAgcHVibGljIGdldCB2YWxpZGF0aW9uTWVzc2FnZSgpOiBzdHJpbmcge1xuICAgICAgcmV0dXJuIHRoaXMuaW50ZXJuYWxzLnZhbGlkYXRpb25NZXNzYWdlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdHJ1ZSBpZiB0aGlzIGVsZW1lbnQgd2lsbCBiZSB2YWxpZGF0ZWRcbiAgICAgKiB3aGVuIHRoZSBmb3JtIGlzIHN1Ym1pdHRlZDsgZmFsc2Ugb3RoZXJ3aXNlLlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgd2lsbFZhbGlkYXRlKCk6IGJvb2xlYW4ge1xuICAgICAgcmV0dXJuIHRoaXMuaW50ZXJuYWxzLndpbGxWYWxpZGF0ZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF92YWxpZGl0eVN0YXRlcyA9IG5ldyBNYXA8XG4gICAgICBrZXlvZiBWYWxpZGl0eVN0YXRlRmxhZ3MsXG4gICAgICB7IGZsYWdWYWx1ZTogdW5rbm93bjsgbWVzc2FnZTogc3RyaW5nIH1cbiAgICA+KCk7XG5cbiAgICAvKiogV2hlbmV2ZXIgYSBzdXJyb3VuZGluZyBmb3JtIG9yIGZpZWxkc2V0IGlzIGNoYW5naW5nIGl0cyBkaXNhYmxlZCBzdGF0ZS4gKi9cbiAgICBAc3RhdGUoKSBwcm90ZWN0ZWQgYWNjZXNzb3IgZm9ybURpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IoLi4uYXJnczogYW55W10pIHtcbiAgICAgIHN1cGVyKC4uLmFyZ3MpO1xuICAgICAgLy8gV2Ugd2FudCB0byBwcmV2ZW50IHRoZSBuYXRpdmUgYnJvd3NlciB2YWxpZGF0aW9uIG1lc3NhZ2UgcG9wb3ZlclxuICAgICAgLy8gdG8gYmUgc2hvd24uIFRoaXMgYWxzbyBwcmV2ZW50cyBhIGJ1ZyBpbiBXZWJLaXQsIHdoaWNoIHdvdWxkIG5vdFxuICAgICAgLy8gYWxsb3cgaG9zdCBhcyB0aGUgdmFsaWRpdHkgYW5jaG9yOiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjY5ODMyXG4gICAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/LignaW52YWxpZCcsIChlKSA9PiBlLnByZXZlbnREZWZhdWx0KCkpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvdmVycmlkZSBhdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2soXG4gICAgICBuYW1lOiBzdHJpbmcsXG4gICAgICBvbGQ6IHN0cmluZyB8IG51bGwsXG4gICAgICB2YWx1ZTogc3RyaW5nIHwgbnVsbCxcbiAgICApOiB2b2lkIHtcbiAgICAgIGlmIChuYW1lICE9PSAnbmFtZScgfHwgb2xkICE9PSB2YWx1ZSkge1xuICAgICAgICBzdXBlci5hdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2sobmFtZSwgb2xkLCB2YWx1ZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0cnVlIGlmIHRoaXMgZWxlbWVudCBoYXMgbm8gdmFsaWRpdHkgcHJvYmxlbXM7IGZhbHNlIG90aGVyd2lzZS5cbiAgICAgKiBGaXJlcyBhbiBpbnZhbGlkIGV2ZW50IGF0IHRoZSBlbGVtZW50IGluIHRoZSBsYXR0ZXIgY2FzZS5cbiAgICAgKi9cbiAgICBwdWJsaWMgY2hlY2tWYWxpZGl0eSgpOiBib29sZWFuIHtcbiAgICAgIHJldHVybiB0aGlzLmludGVybmFscy5jaGVja1ZhbGlkaXR5KCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0cnVlIGlmIHRoaXMgZWxlbWVudCBoYXMgbm8gdmFsaWRpdHkgcHJvYmxlbXM7IG90aGVyd2lzZSxcbiAgICAgKiByZXR1cm5zIGZhbHNlLCBmaXJlcyBhbiBpbnZhbGlkIGV2ZW50IGF0IHRoZSBlbGVtZW50LFxuICAgICAqIGFuZCAoaWYgdGhlIGV2ZW50IGlzbid0IGNhbmNlbGVkKSByZXBvcnRzIHRoZSBwcm9ibGVtIHRvIHRoZSB1c2VyLlxuICAgICAqL1xuICAgIHB1YmxpYyByZXBvcnRWYWxpZGl0eSgpOiBib29sZWFuIHtcbiAgICAgIHJldHVybiB0aGlzLmludGVybmFscy5yZXBvcnRWYWxpZGl0eSgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldHMgdGhlIGN1c3RvbSB2YWxpZGl0eSBtZXNzYWdlIGZvciB0aGlzIGVsZW1lbnQuIFVzZSB0aGUgZW1wdHkgc3RyaW5nXG4gICAgICogdG8gaW5kaWNhdGUgdGhhdCB0aGUgZWxlbWVudCBkb2VzIG5vdCBoYXZlIGEgY3VzdG9tIHZhbGlkaXR5IGVycm9yLlxuICAgICAqL1xuICAgIHB1YmxpYyBzZXRDdXN0b21WYWxpZGl0eShtZXNzYWdlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgIGlmIChtZXNzYWdlKSB7XG4gICAgICAgIHRoaXMuc2V0VmFsaWRpdHlGbGFnKCdjdXN0b21FcnJvcicsIG1lc3NhZ2UpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5yZW1vdmVWYWxpZGl0eUZsYWcoJ2N1c3RvbUVycm9yJyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2FsbGVkIHdoZW4gdGhlIGFzc29jaWF0ZWQgZm9ybSBlbGVtZW50IGNoYW5nZXMuXG4gICAgICogRWxlbWVudEludGVybmFscy5mb3JtIHJldHVybnMgdGhlIGFzc29jaWF0ZWQgZnJvbSBlbGVtZW50LlxuICAgICAqXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgcHVibGljIGZvcm1Bc3NvY2lhdGVkQ2FsbGJhY2s/KGZvcm06IEhUTUxGb3JtRWxlbWVudCB8IG51bGwpOiB2b2lkO1xuXG4gICAgLyoqXG4gICAgICogSXMgY2FsbGVkIHdoZW5ldmVyIGEgc3Vycm91bmRpbmcgZmllbGRzZXQgY2hhbmdlcyBkaXNhYmxlZCBzdGF0ZS5cbiAgICAgKlxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHB1YmxpYyBmb3JtRGlzYWJsZWRDYWxsYmFjayhfZGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgIHRoaXMuZm9ybURpc2FibGVkID0gdGhpcy5faGFzRGlzYWJsZWRBbmNlc3RvcigpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2hhc0Rpc2FibGVkQW5jZXN0b3IoKTogYm9vbGVhbiB7XG4gICAgICAvLyBDaGVjayBpZiBhbnkgb2YgdGhlIGZpZWxkc2V0IGFuY2VzdG9ycyBoYXMgdGhlIGRpc2FibGVkIGF0dHJpYnV0ZSBzZXQuXG4gICAgICBsZXQgZWxlbWVudDogSFRNTEVsZW1lbnQgfCBudWxsID0gdGhpcy5wYXJlbnRFbGVtZW50O1xuICAgICAgd2hpbGUgKGVsZW1lbnQpIHtcbiAgICAgICAgaWYgKGVsZW1lbnQubG9jYWxOYW1lID09PSAnZmllbGRzZXQnICYmIGVsZW1lbnQuaGFzQXR0cmlidXRlKCdkaXNhYmxlZCcpKSB7XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgZWxlbWVudCA9IGVsZW1lbnQucGFyZW50RWxlbWVudDtcbiAgICAgIH1cbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBJcyBjYWxsZWQgd2hlbmV2ZXIgdGhlIGZvcm0gaXMgYmVpbmcgcmVzZXQuXG4gICAgICpcbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBwdWJsaWMgYWJzdHJhY3QgZm9ybVJlc2V0Q2FsbGJhY2soKTogdm9pZDtcblxuICAgIC8qKlxuICAgICAqICBDYWxsZWQgd2hlbiB0aGUgYnJvd3NlciBpcyB0cnlpbmcgdG8gcmVzdG9yZSBlbGVtZW504oCZcyBzdGF0ZSB0byBzdGF0ZSBpbiB3aGljaCBjYXNlXG4gICAgICogIHJlYXNvbiBpcyBcInJlc3RvcmVcIiwgb3Igd2hlbiB0aGUgYnJvd3NlciBpcyB0cnlpbmcgdG8gZnVsZmlsbCBhdXRvZmlsbCBvbiBiZWhhbGYgb2ZcbiAgICAgKiAgdXNlciBpbiB3aGljaCBjYXNlIHJlYXNvbiBpcyBcImF1dG9jb21wbGV0ZVwiLlxuICAgICAqICBJbiB0aGUgY2FzZSBvZiBcInJlc3RvcmVcIiwgc3RhdGUgaXMgYSBzdHJpbmcsIEZpbGUsIG9yIEZvcm1EYXRhIG9iamVjdFxuICAgICAqICBwcmV2aW91c2x5IHNldCBhcyB0aGUgc2Vjb25kIGFyZ3VtZW50IHRvIHNldEZvcm1WYWx1ZS5cbiAgICAgKlxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHB1YmxpYyBhYnN0cmFjdCBmb3JtU3RhdGVSZXN0b3JlQ2FsbGJhY2soXG4gICAgICBzdGF0ZTogRm9ybVJlc3RvcmVTdGF0ZSB8IG51bGwsXG4gICAgICByZWFzb246IEZvcm1SZXN0b3JlUmVhc29uLFxuICAgICk6IHZvaWQ7XG5cbiAgICBwdWJsaWMgb3ZlcnJpZGUgcmVxdWVzdFVwZGF0ZShcbiAgICAgIG5hbWU/OiBQcm9wZXJ0eUtleSxcbiAgICAgIG9sZFZhbHVlPzogdW5rbm93bixcbiAgICAgIG9wdGlvbnM/OiBQcm9wZXJ0eURlY2xhcmF0aW9uLFxuICAgICk6IHZvaWQge1xuICAgICAgc3VwZXIucmVxdWVzdFVwZGF0ZShuYW1lLCBvbGRWYWx1ZSwgb3B0aW9ucyk7XG4gICAgICBpZiAobmFtZSA9PT0gJ3ZhbHVlJykge1xuICAgICAgICB0aGlzLnVwZGF0ZUZvcm1WYWx1ZSgpO1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMuaGFzVXBkYXRlZCAmJiB0aGlzLnNob3VsZFZhbGlkYXRlKG5hbWUpKSB7XG4gICAgICAgIHRoaXMudmFsaWRhdGUoKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgZmlyc3RVcGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzOiBQcm9wZXJ0eVZhbHVlczx0aGlzPik6IHZvaWQge1xuICAgICAgc3VwZXIuZmlyc3RVcGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzKTtcbiAgICAgIHRoaXMudmFsaWRhdGUoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTaG91bGQgYmUgY2FsbGVkIHdoZW4gZm9ybSB2YWx1ZSBpcyBjaGFuZ2VkLlxuICAgICAqIEFkYXB0cyBhbmQgc2V0cyB0aGUgZm9ybVZhbHVlIGluIHRoZSBzdXBwb3J0ZWQgZm9ybWF0IChzdHJpbmcgfCBGb3JtRGF0YSB8IEZpbGUgfCBudWxsKVxuICAgICAqIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0FQSS9FbGVtZW50SW50ZXJuYWxzL3NldEZvcm1WYWx1ZVxuICAgICAqL1xuICAgIHByb3RlY3RlZCB1cGRhdGVGb3JtVmFsdWUoKTogdm9pZCB7XG4gICAgICBsZXQgZm9ybVZhbHVlOiBGb3JtRGF0YSB8IHN0cmluZyB8IG51bGw7XG4gICAgICBjb25zdCBuYW1lID0gdGhpcy5uYW1lID8/IHRoaXMuZ2V0QXR0cmlidXRlKCduYW1lJyk7XG5cbiAgICAgIGlmICh0eXBlb2YgdGhpcy52YWx1ZSA9PT0gJ3N0cmluZycgfHwgdGhpcy52YWx1ZSA9PSBudWxsKSB7XG4gICAgICAgIGZvcm1WYWx1ZSA9IHRoaXMudmFsdWUgYXMgc3RyaW5nIHwgbnVsbDtcbiAgICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheSh0aGlzLnZhbHVlKSkge1xuICAgICAgICBmb3JtVmFsdWUgPSBuZXcgRm9ybURhdGEoKTtcbiAgICAgICAgdGhpcy52YWx1ZS5mb3JFYWNoKChlbCkgPT4ge1xuICAgICAgICAgIChmb3JtVmFsdWUgYXMgRm9ybURhdGEpLmFwcGVuZChcbiAgICAgICAgICAgIG5hbWUsXG4gICAgICAgICAgICB0eXBlb2YgZWwgPT09ICdzdHJpbmcnXG4gICAgICAgICAgICAgID8gZWxcbiAgICAgICAgICAgICAgOiBuZXcgQmxvYihbSlNPTi5zdHJpbmdpZnkoZWwpXSwge1xuICAgICAgICAgICAgICAgICAgdHlwZTogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICk7XG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZm9ybVZhbHVlID0gbmV3IEZvcm1EYXRhKCk7XG4gICAgICAgIGZvcm1WYWx1ZS5hcHBlbmQoXG4gICAgICAgICAgbmFtZSxcbiAgICAgICAgICBuZXcgQmxvYihbSlNPTi5zdHJpbmdpZnkodGhpcy52YWx1ZSldLCB7XG4gICAgICAgICAgICB0eXBlOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgICAgICAgfSksXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIC8vIElmIHRoZSBmb3JtIHN0YXRlIGlzIHVuZGVmaW5lZCB0aGVuIGZvcm0gdmFsdWUgd2lsbCBiZSBjb3BpZWQgdG8gc3RhdGUuXG4gICAgICB0aGlzLmludGVybmFscy5zZXRGb3JtVmFsdWUoZm9ybVZhbHVlLCB0aGlzLmZvcm1TdGF0ZT8uKCkpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBmb3JtU3RhdGU/KCk6IEZvcm1SZXN0b3JlU3RhdGU7XG5cbiAgICAvKipcbiAgICAgKiBNYXJrcyB0aGlzIGVsZW1lbnQgYXMgc3VmZmVyaW5nIGZyb20gdGhlIGNvbnN0cmFpbnQgaW5kaWNhdGVkIGJ5IHRoZVxuICAgICAqIGZsYWcgYXJndW1lbnQgYW5kIGFzc29jaWF0ZXMgdGhlIGdpdmVuIG1lc3NhZ2UgdG8gaXQuXG4gICAgICogTm90ZSB0aGF0IG9ubHkgb25lIG1lc3NhZ2UgaXMgZGlzcGxheWVkIGF0IGEgdGltZSBhbmQgY3VzdG9tIG1lc3NhZ2VzIGJ5XG4gICAgICogY29uc3VtZXJzIGFyZSBhbHdheXMgZGlzcGxheWVkIGJlZm9yZSBpbnRlcm5hbCBtZXNzYWdlcyBhbmQgaW50ZXJuYWxcbiAgICAgKiBtZXNzYWdlcyBhcmUgZGlzcGxheWVkIGluIHRoZSBvcmRlciB0aGV5IHdlcmUgYWRkZWQuXG4gICAgICogVG8gc2V0L2RlZmluZSBjdXN0b20gdmFsaWRpdHkgc3RhdGUgZmxhZ3MsIHlvdSBuZWVkIHRvIGV4dGVuZCB0aGVcbiAgICAgKiBWYWxpZGl0eVN0YXRlIHByb3RvdHlwZSAoYW5kIHRoZSBDdXN0b21WYWxpZGl0eVN0YXRlIGludGVyZmFjZSkuXG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogICAvLyBUaGUgdHlwZSBvZiB0aGUgY3VzdG9tIHZhbGlkaXR5IHN0YXRlIGRvZXMgbm90IG5lZWQgdG8gYmUgYm9vbGVhbi5cbiAgICAgKiAgIE9iamVjdC5hc3NpZ24oVmFsaWRpdHlTdGF0ZS5wcm90b3R5cGUsIHtcbiAgICAgKiAgICAgZ2V0IG15RXJyb3IoKTogYm9vbGVhbiB7XG4gICAgICogICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAqICAgICB9LFxuICAgICAqICAgfSk7XG4gICAgICpcbiAgICAgKiAgIGRlY2xhcmUgZ2xvYmFsIHtcbiAgICAgKiAgICAgaW50ZXJmYWNlIEN1c3RvbVZhbGlkaXR5U3RhdGUge1xuICAgICAqICAgICAgIG15RXJyb3I6IGJvb2xlYW47XG4gICAgICogICAgIH1cbiAgICAgKiAgIH1cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgc2V0VmFsaWRpdHlGbGFnPFQgZXh0ZW5kcyBrZXlvZiBWYWxpZGl0eVN0YXRlRmxhZ3M+KFxuICAgICAgZmxhZzogVCxcbiAgICAgIG1lc3NhZ2U6IHN0cmluZyxcbiAgICAgIGZsYWdWYWx1ZT86IFZhbGlkaXR5U3RhdGVGbGFnc1tUXSxcbiAgICApOiB2b2lkIHtcbiAgICAgIGZsYWdWYWx1ZSA/Pz0gdHJ1ZTtcbiAgICAgIGNvbnN0IHZhbGlkaXR5U3RhdGUgPSB0aGlzLl92YWxpZGl0eVN0YXRlcy5nZXQoZmxhZyk7XG4gICAgICBpZiAoXG4gICAgICAgICF2YWxpZGl0eVN0YXRlIHx8XG4gICAgICAgIHZhbGlkaXR5U3RhdGUubWVzc2FnZSAhPT0gbWVzc2FnZSB8fFxuICAgICAgICB2YWxpZGl0eVN0YXRlLmZsYWdWYWx1ZSAhPT0gZmxhZ1ZhbHVlXG4gICAgICApIHtcbiAgICAgICAgdGhpcy5fdmFsaWRpdHlTdGF0ZXMuc2V0KGZsYWcsIHsgZmxhZ1ZhbHVlLCBtZXNzYWdlIH0pO1xuICAgICAgICB0aGlzLl9zZXRJbnRlcm5hbFZhbGlkaXR5KCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLyoqIFJlbW92ZXMgdGhlIHZhbGlkaXR5IHN0YXRlIGZsYWcgZW50cnkgYW5kIHVwZGF0ZXMgdmFsaWRpdHkgc3RhdGUuICovXG4gICAgcHJvdGVjdGVkIHJlbW92ZVZhbGlkaXR5RmxhZzxUIGV4dGVuZHMga2V5b2YgVmFsaWRpdHlTdGF0ZUZsYWdzPihmbGFnOiBUKTogdm9pZCB7XG4gICAgICBpZiAodGhpcy5fdmFsaWRpdHlTdGF0ZXMuaGFzKGZsYWcpKSB7XG4gICAgICAgIHRoaXMuX3ZhbGlkaXR5U3RhdGVzLmRlbGV0ZShmbGFnKTtcbiAgICAgICAgdGhpcy5fc2V0SW50ZXJuYWxWYWxpZGl0eSgpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBUbyBiZSBjYWxsZWQgd2hlbmV2ZXIgdGhlIGN1cnJlbnQgZWxlbWVudCBuZWVkcyB0byBiZSB2YWxpZGF0ZWQuICovXG4gICAgcHJvdGVjdGVkIHZhbGlkYXRlKCk6IHZvaWQge31cblxuICAgIC8qKiBXaGV0aGVyIHZhbGlkYXRpb24gc2hvdWxkIGJlIHJ1biBvbiBhIHByb3BlcnR5IGNoYW5nZSB3aXRoIHRoZSBnaXZlbiBuYW1lLiAqL1xuICAgIHByb3RlY3RlZCBzaG91bGRWYWxpZGF0ZShuYW1lOiBQcm9wZXJ0eUtleSB8IHVuZGVmaW5lZCk6IGJvb2xlYW4ge1xuICAgICAgcmV0dXJuICFuYW1lO1xuICAgIH1cblxuICAgIHByaXZhdGUgX3NldEludGVybmFsVmFsaWRpdHkoKTogdm9pZCB7XG4gICAgICBsZXQgb3V0cHV0TWVzc2FnZSA9IHRoaXMuX3ZhbGlkaXR5U3RhdGVzLmdldCgnY3VzdG9tRXJyb3InKT8ubWVzc2FnZTtcbiAgICAgIGNvbnN0IGZsYWdzOiBWYWxpZGl0eVN0YXRlRmxhZ3MgPSB7fTtcbiAgICAgIHRoaXMuX3ZhbGlkaXR5U3RhdGVzLmZvckVhY2goKHsgZmxhZ1ZhbHVlLCBtZXNzYWdlIH0sIGZsYWcpID0+IHtcbiAgICAgICAgZmxhZ3NbZmxhZ10gPSBmbGFnVmFsdWUgYXMgYW55O1xuICAgICAgICBvdXRwdXRNZXNzYWdlIHx8PSBtZXNzYWdlO1xuICAgICAgfSk7XG5cbiAgICAgIGNvbnN0IGN1c3RvbUZsYWdzID0gT2JqZWN0LmtleXMoVmFsaWRpdHlTdGF0ZS5wcm90b3R5cGUpLmZpbHRlcihcbiAgICAgICAgKGYpID0+ICEoZiBpbiB2YWxpZGl0eUtleXMpICYmIGYgIT09ICd2YWxpZCcsXG4gICAgICApO1xuICAgICAgZm9yIChjb25zdCBmbGFnIG9mIGN1c3RvbUZsYWdzKSB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gZmxhZyBpbiBmbGFncyA/IGZsYWdzW2ZsYWcgYXMga2V5b2YgVmFsaWRpdHlTdGF0ZUZsYWdzXSA6IGZhbHNlO1xuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcy5pbnRlcm5hbHMudmFsaWRpdHksIGZsYWcsIHsgdmFsdWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZSB9KTtcbiAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgLy8gSWYgYW55IGN1c3RvbSBlcnJvcnMgYXJlIHByb3ZpZGVkLCB3ZSBuZWVkIHRvIHNldCBjdXN0b21FcnJvciB0byB0cnVlLFxuICAgICAgICAgIC8vIGFzIHRoaXMgaXMgdGhlIG9ubHkgY3VzdG9tIGVycm9yIHByb3BlcnR5IGJyb3dzZXJzIGFjY2VwdC5cbiAgICAgICAgICBmbGFncy5jdXN0b21FcnJvciA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgdGhpcy5pbnRlcm5hbHMuc2V0VmFsaWRpdHkoZmxhZ3MsIG91dHB1dE1lc3NhZ2UpO1xuXG4gICAgICAvLyBXZWJLaXQgc2VlbXMgdG8gYWx3YXlzIHNldCBjdXN0b21FcnJvciB0byB0cnVlLCBpZiBhbnkgZXJyb3IgaXMgYWN0aXZlLlxuICAgICAgLy8gRHVlIHRvIHRoaXMgd2UgcGF0Y2ggdGhlIGN1c3RvbUVycm9yIHZhbHVlIG1hbnVhbGx5LlxuICAgICAgaWYgKGlzV2Via2l0KSB7XG4gICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLmludGVybmFscy52YWxpZGl0eSwgJ2N1c3RvbUVycm9yJywge1xuICAgICAgICAgIHZhbHVlOiB0aGlzLl92YWxpZGl0eVN0YXRlcy5oYXMoJ2N1c3RvbUVycm9yJykgfHwgISFmbGFncy5jdXN0b21FcnJvcixcbiAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICByZXR1cm4gU2JiRm9ybUFzc29jaWF0ZWRFbGVtZW50IGFzIHVua25vd24gYXMgQWJzdHJhY3RDb25zdHJ1Y3RvcjxTYmJGb3JtQXNzb2NpYXRlZE1peGluVHlwZT4gJiBUO1xufTtcblxuLyoqXG4gKiBBIHZhbHVlIHRvIGJlIHJlc3RvcmVkIGZvciBhIGNvbXBvbmVudCdzIGZvcm0gdmFsdWUuIElmIGEgY29tcG9uZW50J3MgZm9ybVxuICogc3RhdGUgaXMgYSBgRm9ybURhdGFgIG9iamVjdCwgaXRzIGVudHJ5IGxpc3Qgb2YgbmFtZSBhbmQgdmFsdWVzIHdpbGwgYmVcbiAqIHByb3ZpZGVkLlxuICovXG5leHBvcnQgdHlwZSBGb3JtUmVzdG9yZVN0YXRlID0gc3RyaW5nIHwgRm9ybURhdGEgfCBGaWxlO1xuXG4vKipcbiAqIFRoZSByZWFzb24gYSBmb3JtIGNvbXBvbmVudCBpcyBiZWluZyByZXN0b3JlZCBmb3IsIGVpdGhlciBgJ3Jlc3RvcmUnYCBmb3JcbiAqIGJyb3dzZXIgcmVzdG9yYXRpb24gb3IgYCdhdXRvY29tcGxldGUnYCBmb3IgcmVzdG9yaW5nIHVzZXIgdmFsdWVzLlxuICovXG5leHBvcnQgdHlwZSBGb3JtUmVzdG9yZVJlYXNvbiA9ICdyZXN0b3JlJyB8ICdhdXRvY29tcGxldGUnO1xuIl0sIm1hcHBpbmdzIjoiOzs7O0FBa0JBLElBQU0sZUFBOEU7Q0FDbEYsVUFBVTtDQUNWLGFBQWE7Q0FDYixpQkFBaUI7Q0FDakIsZUFBZTtDQUNmLGdCQUFnQjtDQUNoQixjQUFjO0NBQ2QsU0FBUztDQUNULFVBQVU7Q0FDVixjQUFjO0NBQ2QsY0FBYztDQUNmO0FBSUQsSUFBSSxPQUFPLGtCQUFrQixhQUFhO0NBQ3hDLE1BQU0sZ0JBQWdCLE1BQU0sY0FBYTtFQUN2QyxJQUFXLFFBQUs7QUFDZCxVQUFPOztFQUVULGNBQUE7QUFDRSxTQUFNLElBQUksVUFBVSxzQkFBc0I7OztBQUc5QyxRQUFPLFFBQVEsYUFBYSxDQUFDLFNBQVMsQ0FBQyxLQUFLLFdBQzFDLE9BQU8sT0FBTyxjQUFjLFdBQVcsRUFDckMsS0FBSyxPQUFJO0FBQ1AsU0FBTztJQUVWLENBQUMsQ0FDSDtBQUNELFlBQVcsZ0JBQWdCOzs7OztBQTRDN0IsSUFBYSwwQkFHWCxlQUN1RDtB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
294
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1hc3NvY2lhdGVkLW1peGluLmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb3JlL21peGlucy9mb3JtLWFzc29jaWF0ZWQtbWl4aW4udHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LW9iamVjdC10eXBlICovXG5pbXBvcnQgdHlwZSB7IExpdEVsZW1lbnQsIFByb3BlcnR5RGVjbGFyYXRpb24sIFByb3BlcnR5VmFsdWVzIH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IHByb3BlcnR5LCBzdGF0ZSB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcblxuaW1wb3J0IHsgaXNXZWJraXQgfSBmcm9tICcuLi9kb20udHMnO1xuXG5pbXBvcnQgdHlwZSB7IEFic3RyYWN0Q29uc3RydWN0b3IgfSBmcm9tICcuL2NvbnN0cnVjdG9yLnRzJztcbmltcG9ydCB0eXBlIHsgU2JiRWxlbWVudEludGVybmFsc01peGluVHlwZSB9IGZyb20gJy4vZWxlbWVudC1pbnRlcm5hbHMtbWl4aW4udHMnO1xuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIC8qKlxuICAgKiBEZWZpbmVzIGN1c3RvbSB2YWxpZGl0eSBzdGF0ZSBwcm9wZXJ0aWVzLlxuICAgKi9cbiAgaW50ZXJmYWNlIEN1c3RvbVZhbGlkaXR5U3RhdGUge31cbiAgaW50ZXJmYWNlIFZhbGlkaXR5U3RhdGUgZXh0ZW5kcyBDdXN0b21WYWxpZGl0eVN0YXRlIHt9XG4gIGludGVyZmFjZSBWYWxpZGl0eVN0YXRlRmxhZ3MgZXh0ZW5kcyBQYXJ0aWFsPEN1c3RvbVZhbGlkaXR5U3RhdGU+IHt9XG59XG5cbmNvbnN0IHZhbGlkaXR5S2V5czogUmVxdWlyZWQ8T21pdDxWYWxpZGl0eVN0YXRlRmxhZ3MsIGtleW9mIEN1c3RvbVZhbGlkaXR5U3RhdGU+PiA9IHtcbiAgYmFkSW5wdXQ6IGZhbHNlLFxuICBjdXN0b21FcnJvcjogZmFsc2UsXG4gIHBhdHRlcm5NaXNtYXRjaDogZmFsc2UsXG4gIHJhbmdlT3ZlcmZsb3c6IGZhbHNlLFxuICByYW5nZVVuZGVyZmxvdzogZmFsc2UsXG4gIHN0ZXBNaXNtYXRjaDogZmFsc2UsXG4gIHRvb0xvbmc6IGZhbHNlLFxuICB0b29TaG9ydDogZmFsc2UsXG4gIHR5cGVNaXNtYXRjaDogZmFsc2UsXG4gIHZhbHVlTWlzc2luZzogZmFsc2UsXG59O1xuLy8gV2UgbmVlZCBWYWxpZGl0eVN0YXRlIGluIHRoZSBnbG9iYWwgY29udGV4dCwgYXMgd2UgY2hlY2sgdGhlIHByb3RvdHlwZSBmb3Jcbi8vIGV4dGVuc2lvbnMuIEluIGVudmlyb25tZW50cyB3aGVyZSB0aGF0IGlzIG5vdCB0aGUgY2FzZSAoZS5nLiBOb2RlLmpzKSB3ZVxuLy8gcGF0Y2ggaXQgd2l0aCBhIG1pbmltYWwgc2hpbS5cbmlmICh0eXBlb2YgVmFsaWRpdHlTdGF0ZSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgY29uc3QgdmFsaWRpdHlDbGFzcyA9IGNsYXNzIFZhbGlkaXR5U3RhdGUge1xuICAgIHB1YmxpYyBnZXQgdmFsaWQoKTogYm9vbGVhbiB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcHJpdmF0ZSBjb25zdHJ1Y3RvcigpIHtcbiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ0lsbGVnYWwgY29uc3RydWN0b3InKTtcbiAgICB9XG4gIH07XG4gIE9iamVjdC5lbnRyaWVzKHZhbGlkaXR5S2V5cykuZm9yRWFjaCgoW2tleSwgdmFsdWVdKSA9PlxuICAgIE9iamVjdC5hc3NpZ24odmFsaWRpdHlDbGFzcy5wcm90b3R5cGUsIHtcbiAgICAgIGdldCBba2V5XSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgfSxcbiAgICB9KSxcbiAgKTtcbiAgZ2xvYmFsVGhpcy5WYWxpZGl0eVN0YXRlID0gdmFsaWRpdHlDbGFzcyBhcyB1bmtub3duIGFzIHR5cGVvZiBWYWxpZGl0eVN0YXRlO1xufVxuXG5leHBvcnQgZGVjbGFyZSBhYnN0cmFjdCBjbGFzcyBTYmJGb3JtQXNzb2NpYXRlZE1peGluVHlwZSB7XG4gIHB1YmxpYyBnZXQgZm9ybSgpOiBIVE1MRm9ybUVsZW1lbnQgfCBudWxsO1xuICBwdWJsaWMgYWNjZXNzb3IgbmFtZTogc3RyaW5nO1xuICBwdWJsaWMgZ2V0IHR5cGUoKTogc3RyaW5nO1xuXG4gIHB1YmxpYyBhYnN0cmFjdCBhY2Nlc3NvciB2YWx1ZTogdW5rbm93bjtcblxuICBwdWJsaWMgZ2V0IHZhbGlkaXR5KCk6IFZhbGlkaXR5U3RhdGU7XG4gIHB1YmxpYyBnZXQgdmFsaWRhdGlvbk1lc3NhZ2UoKTogc3RyaW5nO1xuICBwdWJsaWMgZ2V0IHdpbGxWYWxpZGF0ZSgpOiBib29sZWFuO1xuXG4gIHByb3RlY3RlZCBmb3JtRGlzYWJsZWQ6IGJvb2xlYW47XG5cbiAgcHVibGljIGNoZWNrVmFsaWRpdHkoKTogYm9vbGVhbjtcbiAgcHVibGljIHJlcG9ydFZhbGlkaXR5KCk6IGJvb2xlYW47XG4gIHB1YmxpYyBzZXRDdXN0b21WYWxpZGl0eShtZXNzYWdlOiBzdHJpbmcpOiB2b2lkO1xuXG4gIHB1YmxpYyBmb3JtQXNzb2NpYXRlZENhbGxiYWNrPyhmb3JtOiBIVE1MRm9ybUVsZW1lbnQgfCBudWxsKTogdm9pZDtcbiAgcHVibGljIGZvcm1EaXNhYmxlZENhbGxiYWNrKGRpc2FibGVkOiBib29sZWFuKTogdm9pZDtcbiAgcHVibGljIGFic3RyYWN0IGZvcm1SZXNldENhbGxiYWNrKCk6IHZvaWQ7XG4gIHB1YmxpYyBhYnN0cmFjdCBmb3JtU3RhdGVSZXN0b3JlQ2FsbGJhY2soXG4gICAgc3RhdGU6IEZvcm1SZXN0b3JlU3RhdGUgfCBudWxsLFxuICAgIHJlYXNvbjogRm9ybVJlc3RvcmVSZWFzb24sXG4gICk6IHZvaWQ7XG5cbiAgcHJvdGVjdGVkIHVwZGF0ZUZvcm1WYWx1ZSgpOiB2b2lkO1xuICBwcm90ZWN0ZWQgZm9ybVN0YXRlPygpOiBGb3JtUmVzdG9yZVN0YXRlO1xuICBwcm90ZWN0ZWQgc2V0VmFsaWRpdHlGbGFnPFQgZXh0ZW5kcyBrZXlvZiBWYWxpZGl0eVN0YXRlRmxhZ3M+KFxuICAgIGZsYWc6IFQsXG4gICAgbWVzc2FnZTogc3RyaW5nLFxuICAgIGZsYWdWYWx1ZT86IFZhbGlkaXR5U3RhdGVGbGFnc1tUXSxcbiAgKTogdm9pZDtcbiAgcHJvdGVjdGVkIHJlbW92ZVZhbGlkaXR5RmxhZzxUIGV4dGVuZHMga2V5b2YgVmFsaWRpdHlTdGF0ZUZsYWdzPihmbGFnOiBUKTogdm9pZDtcbiAgcHJvdGVjdGVkIHZhbGlkYXRlKCk6IHZvaWQ7XG4gIHByb3RlY3RlZCBzaG91bGRWYWxpZGF0ZShuYW1lOiBQcm9wZXJ0eUtleSB8IHVuZGVmaW5lZCk6IGJvb2xlYW47XG59XG5cbi8qKlxuICogVGhlIEZvcm1Bc3NvY2lhdGVkTWl4aW4gZW5hYmxlcyBuYXRpdmUgZm9ybSBzdXBwb3J0IGZvciBjdXN0b20gY29udHJvbHMuXG4gKi9cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbmV4cG9ydCBjb25zdCBTYmJGb3JtQXNzb2NpYXRlZE1peGluID0gPFxuICBUIGV4dGVuZHMgQWJzdHJhY3RDb25zdHJ1Y3RvcjxMaXRFbGVtZW50ICYgU2JiRWxlbWVudEludGVybmFsc01peGluVHlwZT4sXG4+KFxuICBzdXBlckNsYXNzOiBULFxuKTogQWJzdHJhY3RDb25zdHJ1Y3RvcjxTYmJGb3JtQXNzb2NpYXRlZE1peGluVHlwZT4gJiBUID0+IHtcbiAgYWJzdHJhY3QgY2xhc3MgU2JiRm9ybUFzc29jaWF0ZWRFbGVtZW50XG4gICAgZXh0ZW5kcyBzdXBlckNsYXNzXG4gICAgaW1wbGVtZW50cyBQYXJ0aWFsPFNiYkZvcm1Bc3NvY2lhdGVkTWl4aW5UeXBlPlxuICB7XG4gICAgcHVibGljIHN0YXRpYyBmb3JtQXNzb2NpYXRlZCA9IHRydWU7XG5cbiAgICBwdWJsaWMgYWJzdHJhY3QgYWNjZXNzb3IgdmFsdWU6IHVua25vd247XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHRoZSBmb3JtIG93bmVyIG9mIHRoaXMgZWxlbWVudC5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IGZvcm0oKTogSFRNTEZvcm1FbGVtZW50IHwgbnVsbCB7XG4gICAgICByZXR1cm4gdGhpcy5pbnRlcm5hbHMuZm9ybTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBOYW1lIG9mIHRoZSBmb3JtIGVsZW1lbnQuIFdpbGwgYmUgcmVhZCBmcm9tIG5hbWUgYXR0cmlidXRlLlxuICAgICAqXG4gICAgICogQGRlc2NyaXB0aW9uIERldmVsb3BlciBub3RlOiBJbiB0aGlzIGNhc2UgdXBkYXRpbmcgdGhlIGF0dHJpYnV0ZSBtdXN0IGJlIHN5bmNocm9ub3VzLlxuICAgICAqIER1ZSB0byB0aGlzIGl0IGlzIGltcGxlbWVudGVkIGFzIGEgZ2V0dGVyL3NldHRlciBhbmQgdGhlIGF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFjaygpIGhhbmRsZXMgdGhlIGRpZmYgY2hlY2suXG4gICAgICovXG4gICAgQHByb3BlcnR5KClcbiAgICBwdWJsaWMgc2V0IG5hbWUobmFtZTogc3RyaW5nKSB7XG4gICAgICB0aGlzLnNldEF0dHJpYnV0ZSgnbmFtZScsIGAke25hbWV9YCk7XG5cbiAgICAgIC8vIEZvciBgRm9ybURhdGFgIHZhbHVlcywgd2UgaGF2ZSB0byBtYW51YWxseSB1cGRhdGUgdGhlIGZpZWxkTmFtZSBrZXlcbiAgICAgIHRoaXMudXBkYXRlRm9ybVZhbHVlKCk7XG4gICAgfVxuICAgIHB1YmxpYyBnZXQgbmFtZSgpOiBzdHJpbmcge1xuICAgICAgcmV0dXJuIHRoaXMuZ2V0QXR0cmlidXRlKCduYW1lJykgPz8gJyc7XG4gICAgfVxuXG4gICAgLyoqIEBpbnRlcm5hbCAqL1xuICAgIHB1YmxpYyBnZXQgdHlwZSgpOiBzdHJpbmcge1xuICAgICAgcmV0dXJuIHRoaXMubG9jYWxOYW1lO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdGhlIFZhbGlkaXR5U3RhdGUgb2JqZWN0IGZvciB0aGlzIGVsZW1lbnQuXG4gICAgICovXG4gICAgcHVibGljIGdldCB2YWxpZGl0eSgpOiBWYWxpZGl0eVN0YXRlIHtcbiAgICAgIHJldHVybiB0aGlzLmludGVybmFscy52YWxpZGl0eTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHRoZSBjdXJyZW50IGVycm9yIG1lc3NhZ2UsIGlmIGF2YWlsYWJsZSwgd2hpY2ggY29ycmVzcG9uZHNcbiAgICAgKiB0byB0aGUgY3VycmVudCB2YWxpZGF0aW9uIHN0YXRlLlxuICAgICAqIFBsZWFzZSBub3RlIHRoYXQgb25seSBvbmUgbWVzc2FnZSBpcyByZXR1cm5lZCBhdCBhIHRpbWUgKGUuZy4gaWZcbiAgICAgKiBtdWx0aXBsZSB2YWxpZGl0eSBzdGF0ZXMgYXJlIGludmFsaWQsIG9ubHkgdGhlIGNocm9ub2xvZ2ljYWxseSBmaXJzdCBvbmVcbiAgICAgKiBpcyByZXR1cm5lZCB1bnRpbCBpdCBpcyBmaXhlZCwgYXQgd2hpY2ggcG9pbnQgdGhlIG5leHQgbWVzc2FnZSBtaWdodCBiZVxuICAgICAqIHJldHVybmVkLCBpZiBpdCBpcyBzdGlsbCBhcHBsaWNhYmxlKS4gQWxzbywgYSBjdXN0b20gdmFsaWRpdHkgbWVzc2FnZVxuICAgICAqIChzZWUgYmVsb3cpIGhhcyBwcmVjZWRlbmNlIG92ZXIgbmF0aXZlIHZhbGlkYXRpb24gbWVzc2FnZXMuXG4gICAgICovXG4gICAgcHVibGljIGdldCB2YWxpZGF0aW9uTWVzc2FnZSgpOiBzdHJpbmcge1xuICAgICAgcmV0dXJuIHRoaXMuaW50ZXJuYWxzLnZhbGlkYXRpb25NZXNzYWdlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdHJ1ZSBpZiB0aGlzIGVsZW1lbnQgd2lsbCBiZSB2YWxpZGF0ZWRcbiAgICAgKiB3aGVuIHRoZSBmb3JtIGlzIHN1Ym1pdHRlZDsgZmFsc2Ugb3RoZXJ3aXNlLlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgd2lsbFZhbGlkYXRlKCk6IGJvb2xlYW4ge1xuICAgICAgcmV0dXJuIHRoaXMuaW50ZXJuYWxzLndpbGxWYWxpZGF0ZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF92YWxpZGl0eVN0YXRlcyA9IG5ldyBNYXA8XG4gICAgICBrZXlvZiBWYWxpZGl0eVN0YXRlRmxhZ3MsXG4gICAgICB7IGZsYWdWYWx1ZTogdW5rbm93bjsgbWVzc2FnZTogc3RyaW5nIH1cbiAgICA+KCk7XG5cbiAgICAvKiogV2hlbmV2ZXIgYSBzdXJyb3VuZGluZyBmb3JtIG9yIGZpZWxkc2V0IGlzIGNoYW5naW5nIGl0cyBkaXNhYmxlZCBzdGF0ZS4gKi9cbiAgICBAc3RhdGUoKSBwcm90ZWN0ZWQgYWNjZXNzb3IgZm9ybURpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IoLi4uYXJnczogYW55W10pIHtcbiAgICAgIHN1cGVyKC4uLmFyZ3MpO1xuICAgICAgLy8gV2Ugd2FudCB0byBwcmV2ZW50IHRoZSBuYXRpdmUgYnJvd3NlciB2YWxpZGF0aW9uIG1lc3NhZ2UgcG9wb3ZlclxuICAgICAgLy8gdG8gYmUgc2hvd24uIFRoaXMgYWxzbyBwcmV2ZW50cyBhIGJ1ZyBpbiBXZWJLaXQsIHdoaWNoIHdvdWxkIG5vdFxuICAgICAgLy8gYWxsb3cgaG9zdCBhcyB0aGUgdmFsaWRpdHkgYW5jaG9yOiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjY5ODMyXG4gICAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/LignaW52YWxpZCcsIChlKSA9PiBlLnByZXZlbnREZWZhdWx0KCkpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvdmVycmlkZSBhdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2soXG4gICAgICBuYW1lOiBzdHJpbmcsXG4gICAgICBvbGQ6IHN0cmluZyB8IG51bGwsXG4gICAgICB2YWx1ZTogc3RyaW5nIHwgbnVsbCxcbiAgICApOiB2b2lkIHtcbiAgICAgIGlmIChuYW1lICE9PSAnbmFtZScgfHwgb2xkICE9PSB2YWx1ZSkge1xuICAgICAgICBzdXBlci5hdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2sobmFtZSwgb2xkLCB2YWx1ZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0cnVlIGlmIHRoaXMgZWxlbWVudCBoYXMgbm8gdmFsaWRpdHkgcHJvYmxlbXM7IGZhbHNlIG90aGVyd2lzZS5cbiAgICAgKiBGaXJlcyBhbiBpbnZhbGlkIGV2ZW50IGF0IHRoZSBlbGVtZW50IGluIHRoZSBsYXR0ZXIgY2FzZS5cbiAgICAgKi9cbiAgICBwdWJsaWMgY2hlY2tWYWxpZGl0eSgpOiBib29sZWFuIHtcbiAgICAgIHJldHVybiB0aGlzLmludGVybmFscy5jaGVja1ZhbGlkaXR5KCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0cnVlIGlmIHRoaXMgZWxlbWVudCBoYXMgbm8gdmFsaWRpdHkgcHJvYmxlbXM7IG90aGVyd2lzZSxcbiAgICAgKiByZXR1cm5zIGZhbHNlLCBmaXJlcyBhbiBpbnZhbGlkIGV2ZW50IGF0IHRoZSBlbGVtZW50LFxuICAgICAqIGFuZCAoaWYgdGhlIGV2ZW50IGlzbid0IGNhbmNlbGVkKSByZXBvcnRzIHRoZSBwcm9ibGVtIHRvIHRoZSB1c2VyLlxuICAgICAqL1xuICAgIHB1YmxpYyByZXBvcnRWYWxpZGl0eSgpOiBib29sZWFuIHtcbiAgICAgIHJldHVybiB0aGlzLmludGVybmFscy5yZXBvcnRWYWxpZGl0eSgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldHMgdGhlIGN1c3RvbSB2YWxpZGl0eSBtZXNzYWdlIGZvciB0aGlzIGVsZW1lbnQuIFVzZSB0aGUgZW1wdHkgc3RyaW5nXG4gICAgICogdG8gaW5kaWNhdGUgdGhhdCB0aGUgZWxlbWVudCBkb2VzIG5vdCBoYXZlIGEgY3VzdG9tIHZhbGlkaXR5IGVycm9yLlxuICAgICAqL1xuICAgIHB1YmxpYyBzZXRDdXN0b21WYWxpZGl0eShtZXNzYWdlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgIGlmIChtZXNzYWdlKSB7XG4gICAgICAgIHRoaXMuc2V0VmFsaWRpdHlGbGFnKCdjdXN0b21FcnJvcicsIG1lc3NhZ2UpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5yZW1vdmVWYWxpZGl0eUZsYWcoJ2N1c3RvbUVycm9yJyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2FsbGVkIHdoZW4gdGhlIGFzc29jaWF0ZWQgZm9ybSBlbGVtZW50IGNoYW5nZXMuXG4gICAgICogRWxlbWVudEludGVybmFscy5mb3JtIHJldHVybnMgdGhlIGFzc29jaWF0ZWQgZnJvbSBlbGVtZW50LlxuICAgICAqXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgcHVibGljIGZvcm1Bc3NvY2lhdGVkQ2FsbGJhY2s/KGZvcm06IEhUTUxGb3JtRWxlbWVudCB8IG51bGwpOiB2b2lkO1xuXG4gICAgLyoqXG4gICAgICogSXMgY2FsbGVkIHdoZW5ldmVyIGEgc3Vycm91bmRpbmcgZmllbGRzZXQgY2hhbmdlcyBkaXNhYmxlZCBzdGF0ZS5cbiAgICAgKlxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHB1YmxpYyBmb3JtRGlzYWJsZWRDYWxsYmFjayhfZGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgIHRoaXMuZm9ybURpc2FibGVkID0gdGhpcy5faGFzRGlzYWJsZWRBbmNlc3RvcigpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2hhc0Rpc2FibGVkQW5jZXN0b3IoKTogYm9vbGVhbiB7XG4gICAgICAvLyBDaGVjayBpZiBhbnkgb2YgdGhlIGZpZWxkc2V0IGFuY2VzdG9ycyBoYXMgdGhlIGRpc2FibGVkIGF0dHJpYnV0ZSBzZXQuXG4gICAgICBsZXQgZWxlbWVudDogSFRNTEVsZW1lbnQgfCBudWxsID0gdGhpcy5wYXJlbnRFbGVtZW50O1xuICAgICAgd2hpbGUgKGVsZW1lbnQpIHtcbiAgICAgICAgaWYgKGVsZW1lbnQubG9jYWxOYW1lID09PSAnZmllbGRzZXQnICYmIGVsZW1lbnQuaGFzQXR0cmlidXRlKCdkaXNhYmxlZCcpKSB7XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgZWxlbWVudCA9IGVsZW1lbnQucGFyZW50RWxlbWVudDtcbiAgICAgIH1cbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBJcyBjYWxsZWQgd2hlbmV2ZXIgdGhlIGZvcm0gaXMgYmVpbmcgcmVzZXQuXG4gICAgICpcbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBwdWJsaWMgYWJzdHJhY3QgZm9ybVJlc2V0Q2FsbGJhY2soKTogdm9pZDtcblxuICAgIC8qKlxuICAgICAqICBDYWxsZWQgd2hlbiB0aGUgYnJvd3NlciBpcyB0cnlpbmcgdG8gcmVzdG9yZSBlbGVtZW504oCZcyBzdGF0ZSB0byBzdGF0ZSBpbiB3aGljaCBjYXNlXG4gICAgICogIHJlYXNvbiBpcyBcInJlc3RvcmVcIiwgb3Igd2hlbiB0aGUgYnJvd3NlciBpcyB0cnlpbmcgdG8gZnVsZmlsbCBhdXRvZmlsbCBvbiBiZWhhbGYgb2ZcbiAgICAgKiAgdXNlciBpbiB3aGljaCBjYXNlIHJlYXNvbiBpcyBcImF1dG9jb21wbGV0ZVwiLlxuICAgICAqICBJbiB0aGUgY2FzZSBvZiBcInJlc3RvcmVcIiwgc3RhdGUgaXMgYSBzdHJpbmcsIEZpbGUsIG9yIEZvcm1EYXRhIG9iamVjdFxuICAgICAqICBwcmV2aW91c2x5IHNldCBhcyB0aGUgc2Vjb25kIGFyZ3VtZW50IHRvIHNldEZvcm1WYWx1ZS5cbiAgICAgKlxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHB1YmxpYyBhYnN0cmFjdCBmb3JtU3RhdGVSZXN0b3JlQ2FsbGJhY2soXG4gICAgICBzdGF0ZTogRm9ybVJlc3RvcmVTdGF0ZSB8IG51bGwsXG4gICAgICByZWFzb246IEZvcm1SZXN0b3JlUmVhc29uLFxuICAgICk6IHZvaWQ7XG5cbiAgICBwdWJsaWMgb3ZlcnJpZGUgcmVxdWVzdFVwZGF0ZShcbiAgICAgIG5hbWU/OiBQcm9wZXJ0eUtleSxcbiAgICAgIG9sZFZhbHVlPzogdW5rbm93bixcbiAgICAgIG9wdGlvbnM/OiBQcm9wZXJ0eURlY2xhcmF0aW9uLFxuICAgICk6IHZvaWQge1xuICAgICAgc3VwZXIucmVxdWVzdFVwZGF0ZShuYW1lLCBvbGRWYWx1ZSwgb3B0aW9ucyk7XG4gICAgICBpZiAobmFtZSA9PT0gJ3ZhbHVlJykge1xuICAgICAgICB0aGlzLnVwZGF0ZUZvcm1WYWx1ZSgpO1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMuaGFzVXBkYXRlZCAmJiB0aGlzLnNob3VsZFZhbGlkYXRlKG5hbWUpKSB7XG4gICAgICAgIHRoaXMudmFsaWRhdGUoKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgZmlyc3RVcGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzOiBQcm9wZXJ0eVZhbHVlczx0aGlzPik6IHZvaWQge1xuICAgICAgc3VwZXIuZmlyc3RVcGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzKTtcbiAgICAgIHRoaXMudmFsaWRhdGUoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTaG91bGQgYmUgY2FsbGVkIHdoZW4gZm9ybSB2YWx1ZSBpcyBjaGFuZ2VkLlxuICAgICAqIEFkYXB0cyBhbmQgc2V0cyB0aGUgZm9ybVZhbHVlIGluIHRoZSBzdXBwb3J0ZWQgZm9ybWF0IChzdHJpbmcgfCBGb3JtRGF0YSB8IEZpbGUgfCBudWxsKVxuICAgICAqIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0FQSS9FbGVtZW50SW50ZXJuYWxzL3NldEZvcm1WYWx1ZVxuICAgICAqL1xuICAgIHByb3RlY3RlZCB1cGRhdGVGb3JtVmFsdWUoKTogdm9pZCB7XG4gICAgICBsZXQgZm9ybVZhbHVlOiBGb3JtRGF0YSB8IHN0cmluZyB8IG51bGw7XG4gICAgICBjb25zdCBuYW1lID0gdGhpcy5uYW1lID8/IHRoaXMuZ2V0QXR0cmlidXRlKCduYW1lJyk7XG5cbiAgICAgIGlmICh0eXBlb2YgdGhpcy52YWx1ZSA9PT0gJ3N0cmluZycgfHwgdGhpcy52YWx1ZSA9PSBudWxsKSB7XG4gICAgICAgIGZvcm1WYWx1ZSA9IHRoaXMudmFsdWUgYXMgc3RyaW5nIHwgbnVsbDtcbiAgICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheSh0aGlzLnZhbHVlKSkge1xuICAgICAgICBmb3JtVmFsdWUgPSBuZXcgRm9ybURhdGEoKTtcbiAgICAgICAgdGhpcy52YWx1ZS5mb3JFYWNoKChlbCkgPT4ge1xuICAgICAgICAgIChmb3JtVmFsdWUgYXMgRm9ybURhdGEpLmFwcGVuZChcbiAgICAgICAgICAgIG5hbWUsXG4gICAgICAgICAgICB0eXBlb2YgZWwgPT09ICdzdHJpbmcnXG4gICAgICAgICAgICAgID8gZWxcbiAgICAgICAgICAgICAgOiBuZXcgQmxvYihbSlNPTi5zdHJpbmdpZnkoZWwpXSwge1xuICAgICAgICAgICAgICAgICAgdHlwZTogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICk7XG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZm9ybVZhbHVlID0gbmV3IEZvcm1EYXRhKCk7XG4gICAgICAgIGZvcm1WYWx1ZS5hcHBlbmQoXG4gICAgICAgICAgbmFtZSxcbiAgICAgICAgICBuZXcgQmxvYihbSlNPTi5zdHJpbmdpZnkodGhpcy52YWx1ZSldLCB7XG4gICAgICAgICAgICB0eXBlOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgICAgICAgfSksXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIC8vIElmIHRoZSBmb3JtIHN0YXRlIGlzIHVuZGVmaW5lZCB0aGVuIGZvcm0gdmFsdWUgd2lsbCBiZSBjb3BpZWQgdG8gc3RhdGUuXG4gICAgICB0aGlzLmludGVybmFscy5zZXRGb3JtVmFsdWUoZm9ybVZhbHVlLCB0aGlzLmZvcm1TdGF0ZT8uKCkpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBmb3JtU3RhdGU/KCk6IEZvcm1SZXN0b3JlU3RhdGU7XG5cbiAgICAvKipcbiAgICAgKiBNYXJrcyB0aGlzIGVsZW1lbnQgYXMgc3VmZmVyaW5nIGZyb20gdGhlIGNvbnN0cmFpbnQgaW5kaWNhdGVkIGJ5IHRoZVxuICAgICAqIGZsYWcgYXJndW1lbnQgYW5kIGFzc29jaWF0ZXMgdGhlIGdpdmVuIG1lc3NhZ2UgdG8gaXQuXG4gICAgICogTm90ZSB0aGF0IG9ubHkgb25lIG1lc3NhZ2UgaXMgZGlzcGxheWVkIGF0IGEgdGltZSBhbmQgY3VzdG9tIG1lc3NhZ2VzIGJ5XG4gICAgICogY29uc3VtZXJzIGFyZSBhbHdheXMgZGlzcGxheWVkIGJlZm9yZSBpbnRlcm5hbCBtZXNzYWdlcyBhbmQgaW50ZXJuYWxcbiAgICAgKiBtZXNzYWdlcyBhcmUgZGlzcGxheWVkIGluIHRoZSBvcmRlciB0aGV5IHdlcmUgYWRkZWQuXG4gICAgICogVG8gc2V0L2RlZmluZSBjdXN0b20gdmFsaWRpdHkgc3RhdGUgZmxhZ3MsIHlvdSBuZWVkIHRvIGV4dGVuZCB0aGVcbiAgICAgKiBWYWxpZGl0eVN0YXRlIHByb3RvdHlwZSAoYW5kIHRoZSBDdXN0b21WYWxpZGl0eVN0YXRlIGludGVyZmFjZSkuXG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogICAvLyBUaGUgdHlwZSBvZiB0aGUgY3VzdG9tIHZhbGlkaXR5IHN0YXRlIGRvZXMgbm90IG5lZWQgdG8gYmUgYm9vbGVhbi5cbiAgICAgKiAgIE9iamVjdC5hc3NpZ24oVmFsaWRpdHlTdGF0ZS5wcm90b3R5cGUsIHtcbiAgICAgKiAgICAgZ2V0IG15RXJyb3IoKTogYm9vbGVhbiB7XG4gICAgICogICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAqICAgICB9LFxuICAgICAqICAgfSk7XG4gICAgICpcbiAgICAgKiAgIGRlY2xhcmUgZ2xvYmFsIHtcbiAgICAgKiAgICAgaW50ZXJmYWNlIEN1c3RvbVZhbGlkaXR5U3RhdGUge1xuICAgICAqICAgICAgIG15RXJyb3I6IGJvb2xlYW47XG4gICAgICogICAgIH1cbiAgICAgKiAgIH1cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgc2V0VmFsaWRpdHlGbGFnPFQgZXh0ZW5kcyBrZXlvZiBWYWxpZGl0eVN0YXRlRmxhZ3M+KFxuICAgICAgZmxhZzogVCxcbiAgICAgIG1lc3NhZ2U6IHN0cmluZyxcbiAgICAgIGZsYWdWYWx1ZT86IFZhbGlkaXR5U3RhdGVGbGFnc1tUXSxcbiAgICApOiB2b2lkIHtcbiAgICAgIGZsYWdWYWx1ZSA/Pz0gdHJ1ZTtcbiAgICAgIGNvbnN0IHZhbGlkaXR5U3RhdGUgPSB0aGlzLl92YWxpZGl0eVN0YXRlcy5nZXQoZmxhZyk7XG4gICAgICBpZiAoXG4gICAgICAgICF2YWxpZGl0eVN0YXRlIHx8XG4gICAgICAgIHZhbGlkaXR5U3RhdGUubWVzc2FnZSAhPT0gbWVzc2FnZSB8fFxuICAgICAgICB2YWxpZGl0eVN0YXRlLmZsYWdWYWx1ZSAhPT0gZmxhZ1ZhbHVlXG4gICAgICApIHtcbiAgICAgICAgdGhpcy5fdmFsaWRpdHlTdGF0ZXMuc2V0KGZsYWcsIHsgZmxhZ1ZhbHVlLCBtZXNzYWdlIH0pO1xuICAgICAgICB0aGlzLl9zZXRJbnRlcm5hbFZhbGlkaXR5KCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLyoqIFJlbW92ZXMgdGhlIHZhbGlkaXR5IHN0YXRlIGZsYWcgZW50cnkgYW5kIHVwZGF0ZXMgdmFsaWRpdHkgc3RhdGUuICovXG4gICAgcHJvdGVjdGVkIHJlbW92ZVZhbGlkaXR5RmxhZzxUIGV4dGVuZHMga2V5b2YgVmFsaWRpdHlTdGF0ZUZsYWdzPihmbGFnOiBUKTogdm9pZCB7XG4gICAgICBpZiAodGhpcy5fdmFsaWRpdHlTdGF0ZXMuaGFzKGZsYWcpKSB7XG4gICAgICAgIHRoaXMuX3ZhbGlkaXR5U3RhdGVzLmRlbGV0ZShmbGFnKTtcbiAgICAgICAgdGhpcy5fc2V0SW50ZXJuYWxWYWxpZGl0eSgpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBUbyBiZSBjYWxsZWQgd2hlbmV2ZXIgdGhlIGN1cnJlbnQgZWxlbWVudCBuZWVkcyB0byBiZSB2YWxpZGF0ZWQuICovXG4gICAgcHJvdGVjdGVkIHZhbGlkYXRlKCk6IHZvaWQge31cblxuICAgIC8qKiBXaGV0aGVyIHZhbGlkYXRpb24gc2hvdWxkIGJlIHJ1biBvbiBhIHByb3BlcnR5IGNoYW5nZSB3aXRoIHRoZSBnaXZlbiBuYW1lLiAqL1xuICAgIHByb3RlY3RlZCBzaG91bGRWYWxpZGF0ZShuYW1lOiBQcm9wZXJ0eUtleSB8IHVuZGVmaW5lZCk6IGJvb2xlYW4ge1xuICAgICAgcmV0dXJuICFuYW1lO1xuICAgIH1cblxuICAgIHByaXZhdGUgX3NldEludGVybmFsVmFsaWRpdHkoKTogdm9pZCB7XG4gICAgICBsZXQgb3V0cHV0TWVzc2FnZSA9IHRoaXMuX3ZhbGlkaXR5U3RhdGVzLmdldCgnY3VzdG9tRXJyb3InKT8ubWVzc2FnZTtcbiAgICAgIGNvbnN0IGZsYWdzOiBWYWxpZGl0eVN0YXRlRmxhZ3MgPSB7fTtcbiAgICAgIHRoaXMuX3ZhbGlkaXR5U3RhdGVzLmZvckVhY2goKHsgZmxhZ1ZhbHVlLCBtZXNzYWdlIH0sIGZsYWcpID0+IHtcbiAgICAgICAgZmxhZ3NbZmxhZ10gPSBmbGFnVmFsdWUgYXMgYW55O1xuICAgICAgICBvdXRwdXRNZXNzYWdlIHx8PSBtZXNzYWdlO1xuICAgICAgfSk7XG5cbiAgICAgIGNvbnN0IGN1c3RvbUZsYWdzID0gT2JqZWN0LmtleXMoVmFsaWRpdHlTdGF0ZS5wcm90b3R5cGUpLmZpbHRlcihcbiAgICAgICAgKGYpID0+ICEoZiBpbiB2YWxpZGl0eUtleXMpICYmIGYgIT09ICd2YWxpZCcsXG4gICAgICApO1xuICAgICAgZm9yIChjb25zdCBmbGFnIG9mIGN1c3RvbUZsYWdzKSB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gZmxhZyBpbiBmbGFncyA/IGZsYWdzW2ZsYWcgYXMga2V5b2YgVmFsaWRpdHlTdGF0ZUZsYWdzXSA6IGZhbHNlO1xuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcy5pbnRlcm5hbHMudmFsaWRpdHksIGZsYWcsIHsgdmFsdWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZSB9KTtcbiAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgLy8gSWYgYW55IGN1c3RvbSBlcnJvcnMgYXJlIHByb3ZpZGVkLCB3ZSBuZWVkIHRvIHNldCBjdXN0b21FcnJvciB0byB0cnVlLFxuICAgICAgICAgIC8vIGFzIHRoaXMgaXMgdGhlIG9ubHkgY3VzdG9tIGVycm9yIHByb3BlcnR5IGJyb3dzZXJzIGFjY2VwdC5cbiAgICAgICAgICBmbGFncy5jdXN0b21FcnJvciA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgdGhpcy5pbnRlcm5hbHMuc2V0VmFsaWRpdHkoZmxhZ3MsIG91dHB1dE1lc3NhZ2UpO1xuXG4gICAgICAvLyBXZWJLaXQgc2VlbXMgdG8gYWx3YXlzIHNldCBjdXN0b21FcnJvciB0byB0cnVlLCBpZiBhbnkgZXJyb3IgaXMgYWN0aXZlLlxuICAgICAgLy8gRHVlIHRvIHRoaXMgd2UgcGF0Y2ggdGhlIGN1c3RvbUVycm9yIHZhbHVlIG1hbnVhbGx5LlxuICAgICAgaWYgKGlzV2Via2l0KSB7XG4gICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLmludGVybmFscy52YWxpZGl0eSwgJ2N1c3RvbUVycm9yJywge1xuICAgICAgICAgIHZhbHVlOiB0aGlzLl92YWxpZGl0eVN0YXRlcy5oYXMoJ2N1c3RvbUVycm9yJykgfHwgISFmbGFncy5jdXN0b21FcnJvcixcbiAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICByZXR1cm4gU2JiRm9ybUFzc29jaWF0ZWRFbGVtZW50IGFzIHVua25vd24gYXMgQWJzdHJhY3RDb25zdHJ1Y3RvcjxTYmJGb3JtQXNzb2NpYXRlZE1peGluVHlwZT4gJiBUO1xufTtcblxuLyoqXG4gKiBBIHZhbHVlIHRvIGJlIHJlc3RvcmVkIGZvciBhIGNvbXBvbmVudCdzIGZvcm0gdmFsdWUuIElmIGEgY29tcG9uZW50J3MgZm9ybVxuICogc3RhdGUgaXMgYSBgRm9ybURhdGFgIG9iamVjdCwgaXRzIGVudHJ5IGxpc3Qgb2YgbmFtZSBhbmQgdmFsdWVzIHdpbGwgYmVcbiAqIHByb3ZpZGVkLlxuICovXG5leHBvcnQgdHlwZSBGb3JtUmVzdG9yZVN0YXRlID0gc3RyaW5nIHwgRm9ybURhdGEgfCBGaWxlO1xuXG4vKipcbiAqIFRoZSByZWFzb24gYSBmb3JtIGNvbXBvbmVudCBpcyBiZWluZyByZXN0b3JlZCBmb3IsIGVpdGhlciBgJ3Jlc3RvcmUnYCBmb3JcbiAqIGJyb3dzZXIgcmVzdG9yYXRpb24gb3IgYCdhdXRvY29tcGxldGUnYCBmb3IgcmVzdG9yaW5nIHVzZXIgdmFsdWVzLlxuICovXG5leHBvcnQgdHlwZSBGb3JtUmVzdG9yZVJlYXNvbiA9ICdyZXN0b3JlJyB8ICdhdXRvY29tcGxldGUnO1xuIl0sIm1hcHBpbmdzIjoiOzs7O0FBa0JBLElBQU0sZUFBOEU7Q0FDbEYsVUFBVTtDQUNWLGFBQWE7Q0FDYixpQkFBaUI7Q0FDakIsZUFBZTtDQUNmLGdCQUFnQjtDQUNoQixjQUFjO0NBQ2QsU0FBUztDQUNULFVBQVU7Q0FDVixjQUFjO0NBQ2QsY0FBYztDQUNmO0FBSUQsSUFBSSxPQUFPLGtCQUFrQixhQUFhO0NBQ3hDLE1BQU0sZ0JBQWdCLE1BQU0sY0FBYTtFQUN2QyxJQUFXLFFBQUs7QUFDZCxVQUFPOztFQUVULGNBQUE7QUFDRSxTQUFNLElBQUksVUFBVSxzQkFBc0I7OztBQUc5QyxRQUFPLFFBQVEsYUFBYSxDQUFDLFNBQVMsQ0FBQyxLQUFLLFdBQzFDLE9BQU8sT0FBTyxjQUFjLFdBQVcsRUFDckMsS0FBSyxPQUFJO0FBQ1AsU0FBTztJQUVWLENBQUMsQ0FDSDtBQUNELFlBQVcsZ0JBQWdCOzs7OztBQTRDN0IsSUFBYSwwQkFHWCxlQUN1RDtB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
@@ -263,4 +263,4 @@ var SbbFormAssociatedRadioButtonMixin = (superClass) => {
263
263
  //#endregion
264
264
  export { SbbFormAssociatedRadioButtonMixin, radioButtonRegistry };
265
265
 
266
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1hc3NvY2lhdGVkLXJhZGlvLWJ1dHRvbi1taXhpbi5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvY29yZS9taXhpbnMvZm9ybS1hc3NvY2lhdGVkLXJhZGlvLWJ1dHRvbi1taXhpbi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc1NlcnZlciwgdHlwZSBMaXRFbGVtZW50LCB0eXBlIFByb3BlcnR5VmFsdWVzIH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IHByb3BlcnR5IH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuXG5pbXBvcnQgeyBnZXROZXh0RWxlbWVudEluZGV4LCBpbnRlcmFjdGl2aXR5Q2hlY2tlciwgaXNBcnJvd0tleVByZXNzZWQgfSBmcm9tICcuLi9hMTF5LnRzJztcbmltcG9ydCB7IFNiYkxhbmd1YWdlQ29udHJvbGxlciB9IGZyb20gJy4uL2NvbnRyb2xsZXJzLnRzJztcbmltcG9ydCB7IGkxOG5TZWxlY3Rpb25SZXF1aXJlZCB9IGZyb20gJy4uL2kxOG4udHMnO1xuXG5pbXBvcnQgdHlwZSB7IEFic3RyYWN0Q29uc3RydWN0b3IgfSBmcm9tICcuL2NvbnN0cnVjdG9yLnRzJztcbmltcG9ydCB7IFNiYkRpc2FibGVkTWl4aW4gfSBmcm9tICcuL2Rpc2FibGVkLW1peGluLnRzJztcbmltcG9ydCB7XG4gIFNiYkVsZW1lbnRJbnRlcm5hbHNNaXhpbixcbiAgdHlwZSBTYmJFbGVtZW50SW50ZXJuYWxzTWl4aW5UeXBlLFxuICB0eXBlIFNiYkVsZW1lbnRJbnRlcm5hbHNDb25zdHJ1Y3Rvcixcbn0gZnJvbSAnLi9lbGVtZW50LWludGVybmFscy1taXhpbi50cyc7XG5pbXBvcnQge1xuICB0eXBlIEZvcm1SZXN0b3JlUmVhc29uLFxuICB0eXBlIEZvcm1SZXN0b3JlU3RhdGUsXG4gIFNiYkZvcm1Bc3NvY2lhdGVkTWl4aW4sXG59IGZyb20gJy4vZm9ybS1hc3NvY2lhdGVkLW1peGluLnRzJztcbmltcG9ydCB7IFNiYlJlcXVpcmVkTWl4aW4gfSBmcm9tICcuL3JlcXVpcmVkLW1peGluLnRzJztcblxuLyoqXG4gKiBBIHN0YXRpYyByZWdpc3RyeSB0aGF0IGhvbGRzIGEgY29sbGVjdGlvbiBvZiBncm91cGVkIGByYWRpby1idXR0b25zYC5cbiAqIEdyb3VwcyBvZiByYWRpbyBidXR0b25zIGFyZSBsb2NhbCB0byB0aGUgZm9ybSB0aGV5IGJlbG9uZyAob3IgdGhlIGByZW5kZXJSb290YCBpZiB0aGV5J3JlIG5vdCBwYXJ0IG9mIGFueSBmb3JtKVxuICogTXVsdGlwbGUgZ3JvdXBzIG9mIHJhZGlvIHdpdGggdGhlIHNhbWUgbmFtZSBjYW4gY29leGlzdCAoYXMgbG9uZyBhcyB0aGV5IGJlbG9uZyB0byBhIGRpZmZlcmVudCBmb3JtIC8gcmVuZGVyUm9vdClcbiAqIEl0IGlzIG1haW5seSB1c2VkIHRvIHN1cHBvcnQgdGhlIHN0YW5kYWxvbmUgZ3JvdXBzIG9mIHJhZGlvcy5cbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgY29uc3QgcmFkaW9CdXR0b25SZWdpc3RyeSA9IG5ldyBXZWFrTWFwPFxuICBOb2RlLFxuICBNYXA8c3RyaW5nLCBTZXQ8U2JiRm9ybUFzc29jaWF0ZWRSYWRpb0J1dHRvbk1peGluVHlwZT4+XG4+KCk7XG5cbmV4cG9ydCBkZWNsYXJlIGFic3RyYWN0IGNsYXNzIFNiYkZvcm1Bc3NvY2lhdGVkUmFkaW9CdXR0b25NaXhpblR5cGUgZXh0ZW5kcyBTYmJEaXNhYmxlZE1peGluKFxuICBTYmJSZXF1aXJlZE1peGluKFNiYkZvcm1Bc3NvY2lhdGVkTWl4aW4oU2JiRWxlbWVudEludGVybmFsc01peGluKExpdEVsZW1lbnQpKSksXG4pIHtcbiAgcHVibGljIGFjY2Vzc29yIGNoZWNrZWQ6IGJvb2xlYW47XG5cbiAgcHJvdGVjdGVkIGFzc29jaWF0ZWRSYWRpb0J1dHRvbnM/OiBTZXQ8U2JiRm9ybUFzc29jaWF0ZWRSYWRpb0J1dHRvbk1peGluVHlwZT47XG5cbiAgcHVibGljIGZvcm1SZXNldENhbGxiYWNrKCk6IHZvaWQ7XG4gIHB1YmxpYyBmb3JtU3RhdGVSZXN0b3JlQ2FsbGJhY2soc3RhdGU6IEZvcm1SZXN0b3JlU3RhdGUgfCBudWxsLCByZWFzb246IEZvcm1SZXN0b3JlUmVhc29uKTogdm9pZDtcblxuICBwcm90ZWN0ZWQgdXBkYXRlRm9ybVZhbHVlKCk6IHZvaWQ7XG4gIHByb3RlY3RlZCB1cGRhdGVGb2N1c2FibGVSYWRpb3MoKTogdm9pZDtcbiAgcHJvdGVjdGVkIGVtaXRDaGFuZ2VFdmVudHMoKTogdm9pZDtcbiAgcHJvdGVjdGVkIG5hdmlnYXRlQnlLZXlib2FyZChyYWRpbzogU2JiRm9ybUFzc29jaWF0ZWRSYWRpb0J1dHRvbk1peGluVHlwZSk6IFByb21pc2U8dm9pZD47XG59XG5cbi8qKlxuICogVGhlIFNiYkZvcm1Bc3NvY2lhdGVkUmFkaW9CdXR0b25NaXhpbiBlbmFibGVzIG5hdGl2ZSBmb3JtIHN1cHBvcnQgZm9yIHJhZGlvIGNvbnRyb2xzLlxuICovXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG5leHBvcnQgY29uc3QgU2JiRm9ybUFzc29jaWF0ZWRSYWRpb0J1dHRvbk1peGluID0gPFQgZXh0ZW5kcyBBYnN0cmFjdENvbnN0cnVjdG9yPExpdEVsZW1lbnQ+PihcbiAgc3VwZXJDbGFzczogVCxcbik6IEFic3RyYWN0Q29uc3RydWN0b3I8U2JiRm9ybUFzc29jaWF0ZWRSYWRpb0J1dHRvbk1peGluVHlwZT4gJiBUID0+IHtcbiAgLy8gVE9ETyhicmVha2luZy1jaGFuZ2UpOiBSZW1vdmUgU2JiRWxlbWVudEludGVybmFsc01peGluIGFuZCBkZXBlbmQgb24gU2JiRWxlbWVudCBhcyBiYXNlIGNsYXNzIGluc3RlYWQgb2YgTGl0RWxlbWVudFxuICBjb25zdCBjb25kaXRpb25hbFN1cGVyQ2xhc3MgPSAoc3VwZXJDbGFzcyBhcyB1bmtub3duIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+KVsnXyRzYmJFbGVtZW50JCddXG4gICAgPyAoc3VwZXJDbGFzcyBhcyB1bmtub3duIGFzIEFic3RyYWN0Q29uc3RydWN0b3I8U2JiRWxlbWVudEludGVybmFsc01peGluVHlwZT4gJlxuICAgICAgICBUICZcbiAgICAgICAgU2JiRWxlbWVudEludGVybmFsc0NvbnN0cnVjdG9yKVxuICAgIDogU2JiRWxlbWVudEludGVybmFsc01peGluKHN1cGVyQ2xhc3MpO1xuXG4gIGFic3RyYWN0IGNsYXNzIFNiYkZvcm1Bc3NvY2lhdGVkUmFkaW9CdXR0b25FbGVtZW50XG4gICAgZXh0ZW5kcyBTYmJEaXNhYmxlZE1peGluKFNiYlJlcXVpcmVkTWl4aW4oU2JiRm9ybUFzc29jaWF0ZWRNaXhpbihjb25kaXRpb25hbFN1cGVyQ2xhc3MpKSlcbiAgICBpbXBsZW1lbnRzIFBhcnRpYWw8U2JiRm9ybUFzc29jaWF0ZWRSYWRpb0J1dHRvbk1peGluVHlwZT5cbiAge1xuICAgIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgcmVhZG9ubHkgcm9sZSA9ICdyYWRpbyc7XG5cbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHRoZSByYWRpbyBidXR0b24gaXMgY2hlY2tlZC5cbiAgICAgKi9cbiAgICBAcHJvcGVydHkoeyB0eXBlOiBCb29sZWFuIH0pXG4gICAgcHVibGljIHNldCBjaGVja2VkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICB0aGlzLl9jaGVja2VkID0gISF2YWx1ZTtcblxuICAgICAgdGhpcy50b2dnbGVTdGF0ZSgnY2hlY2tlZCcsIHRoaXMuY2hlY2tlZCk7XG4gICAgICB0aGlzLmludGVybmFscy5hcmlhQ2hlY2tlZCA9IHRoaXMuY2hlY2tlZC50b1N0cmluZygpO1xuICAgICAgdGhpcy51cGRhdGVGb3JtVmFsdWUoKTtcbiAgICAgIHRoaXMuX3N5bmNocm9uaXplR3JvdXBTdGF0ZSgpO1xuICAgIH1cbiAgICBwdWJsaWMgZ2V0IGNoZWNrZWQoKTogYm9vbGVhbiB7XG4gICAgICByZXR1cm4gdGhpcy5fY2hlY2tlZDtcbiAgICB9XG4gICAgcHJpdmF0ZSBfY2hlY2tlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgQHByb3BlcnR5KClcbiAgICBwdWJsaWMgb3ZlcnJpZGUgc2V0IG5hbWUodmFsdWU6IHN0cmluZykge1xuICAgICAgc3VwZXIubmFtZSA9IHZhbHVlO1xuXG4gICAgICB0aGlzLl9kaXNjb25uZWN0RnJvbVJlZ2lzdHJ5KCk7XG4gICAgICB0aGlzLl9jb25uZWN0VG9SZWdpc3RyeSgpO1xuICAgICAgdGhpcy5fc3luY2hyb25pemVHcm91cFN0YXRlKCk7XG4gICAgfVxuICAgIHB1YmxpYyBvdmVycmlkZSBnZXQgbmFtZSgpOiBzdHJpbmcge1xuICAgICAgcmV0dXJuIHN1cGVyLm5hbWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRm9ybSB0eXBlIG9mIGVsZW1lbnQuXG4gICAgICogQGRlZmF1bHQgJ3JhZGlvJ1xuICAgICAqL1xuICAgIHB1YmxpYyBvdmVycmlkZSBnZXQgdHlwZSgpOiBzdHJpbmcge1xuICAgICAgcmV0dXJuICdyYWRpbyc7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0IG9mIHJhZGlvIGJ1dHRvbnMgdGhhdCBiZWxvbmdzIHRvIHRoZSBzYW1lIGdyb3VwIG9mIGB0aGlzYC5cbiAgICAgKiBBc3N1bWUgdGhlbSBvcmRlcmVkIGluIERPTSBvcmRlclxuICAgICAqL1xuICAgIHByb3RlY3RlZCBhc3NvY2lhdGVkUmFkaW9CdXR0b25zPzogU2V0PFNiYkZvcm1Bc3NvY2lhdGVkUmFkaW9CdXR0b25FbGVtZW50PjtcbiAgICBwcml2YXRlIF9yYWRpb0J1dHRvbkdyb3Vwc01hcD86IE1hcDxzdHJpbmcsIFNldDxTYmJGb3JtQXNzb2NpYXRlZFJhZGlvQnV0dG9uTWl4aW5UeXBlPj47XG4gICAgcHJpdmF0ZSBfbGFuZ3VhZ2VDb250cm9sbGVyID0gbmV3IFNiYkxhbmd1YWdlQ29udHJvbGxlcih0aGlzKTtcblxuICAgIHByb3RlY3RlZCBjb25zdHJ1Y3RvcigpIHtcbiAgICAgIHN1cGVyKCk7XG4gICAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/Ligna2V5ZG93bicsIChlKSA9PiB0aGlzLl9oYW5kbGVBcnJvd0tleURvd24oZSkpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvdmVycmlkZSBjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICAgIHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgICB0aGlzLl9jb25uZWN0VG9SZWdpc3RyeSgpO1xuICAgICAgdGhpcy5fc3luY2hyb25pemVHcm91cFN0YXRlKCk7XG4gICAgfVxuXG4gICAgcHVibGljIG92ZXJyaWRlIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgICAgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKTtcbiAgICAgIHRoaXMuX2Rpc2Nvbm5lY3RGcm9tUmVnaXN0cnkoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBJcyBjYWxsZWQgd2hlbmV2ZXIgdGhlIGZvcm0gaXMgYmVpbmcgcmVzZXQuXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgcHVibGljIG92ZXJyaWRlIGZvcm1SZXNldENhbGxiYWNrKCk6IHZvaWQge1xuICAgICAgdGhpcy5jaGVja2VkID0gdGhpcy5oYXNBdHRyaWJ1dGUoJ2NoZWNrZWQnKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiAgQ2FsbGVkIHdoZW4gdGhlIGJyb3dzZXIgaXMgdHJ5aW5nIHRvIHJlc3RvcmUgZWxlbWVudOKAmXMgc3RhdGUgdG8gc3RhdGUgaW4gd2hpY2ggY2FzZVxuICAgICAqICByZWFzb24gaXMgXCJyZXN0b3JlXCIsIG9yIHdoZW4gdGhlIGJyb3dzZXIgaXMgdHJ5aW5nIHRvIGZ1bGZpbGwgYXV0b2ZpbGwgb24gYmVoYWxmIG9mXG4gICAgICogIHVzZXIgaW4gd2hpY2ggY2FzZSByZWFzb24gaXMgXCJhdXRvY29tcGxldGVcIi5cbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBwdWJsaWMgb3ZlcnJpZGUgZm9ybVN0YXRlUmVzdG9yZUNhbGxiYWNrKFxuICAgICAgc3RhdGU6IEZvcm1SZXN0b3JlU3RhdGUgfCBudWxsLFxuICAgICAgX3JlYXNvbjogRm9ybVJlc3RvcmVSZWFzb24sXG4gICAgKTogdm9pZCB7XG4gICAgICBpZiAodHlwZW9mIHN0YXRlID09PSAnc3RyaW5nJyB8fCBzdGF0ZSA9PSBudWxsKSB7XG4gICAgICAgIHRoaXMuY2hlY2tlZCA9IHN0YXRlID09PSB0aGlzLnZhbHVlO1xuICAgICAgfSBlbHNlIGlmIChzdGF0ZSBpbnN0YW5jZW9mIEZvcm1EYXRhKSB7XG4gICAgICAgIHRoaXMuX3JlYWRGb3JtRGF0YShzdGF0ZSkudGhlbigoZGF0YSkgPT4ge1xuICAgICAgICAgIHRoaXMuY2hlY2tlZCA9IGRhdGEgPT09IHRoaXMudmFsdWU7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgYXN5bmMgX3JlYWRGb3JtRGF0YShmb3JtRGF0YTogRm9ybURhdGEpOiBQcm9taXNlPHVua25vd24+IHtcbiAgICAgIGNvbnN0IGRhdGEgPSBmb3JtRGF0YS5nZXQodGhpcy5uYW1lKTtcbiAgICAgIHJldHVybiBkYXRhIGluc3RhbmNlb2YgQmxvYiA/IEpTT04ucGFyc2UoYXdhaXQgZGF0YS50ZXh0KCkpIDogZGF0YTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgd2lsbFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXM8dGhpcz4pOiB2b2lkIHtcbiAgICAgIHN1cGVyLndpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXMpO1xuXG4gICAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdkaXNhYmxlZCcpKSB7XG4gICAgICAgIHRoaXMudXBkYXRlRm9jdXNhYmxlUmFkaW9zKCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIGZpcnN0VXBkYXRlZChjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXM8dGhpcz4pOiB2b2lkIHtcbiAgICAgIHN1cGVyLmZpcnN0VXBkYXRlZChjaGFuZ2VkUHJvcGVydGllcyk7XG4gICAgICB0aGlzLnVwZGF0ZUZvY3VzYWJsZVJhZGlvcygpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENhbGxlZCBvbiBgdmFsdWVgIGNoYW5nZVxuICAgICAqIElmICdjaGVja2VkJywgdXBkYXRlIHRoZSB2YWx1ZS4gT3RoZXJ3aXNlLCBkbyBub3RoaW5nLlxuICAgICAqL1xuICAgIHByb3RlY3RlZCBvdmVycmlkZSB1cGRhdGVGb3JtVmFsdWUoKTogdm9pZCB7XG4gICAgICBpZiAodGhpcy5jaGVja2VkKSB7XG4gICAgICAgIHN1cGVyLnVwZGF0ZUZvcm1WYWx1ZSgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5pbnRlcm5hbHMuc2V0Rm9ybVZhbHVlKG51bGwpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBvdmVycmlkZSBzaG91bGRWYWxpZGF0ZShuYW1lOiBQcm9wZXJ0eUtleSB8IHVuZGVmaW5lZCk6IGJvb2xlYW4ge1xuICAgICAgcmV0dXJuIHN1cGVyLnNob3VsZFZhbGlkYXRlKG5hbWUpIHx8IG5hbWUgPT09ICdjaGVja2VkJyB8fCBuYW1lID09PSAncmVxdWlyZWQnO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldHMgdGhlIHZhbGlkaXR5IG9mIGFsbCBhc3NvY2lhdGVkIHJhZGlvIGJ1dHRvbnMuXG4gICAgICogSWYgYW55IHJhZGlvIGJ1dHRvbiBpcyByZXF1aXJlZCwgYWxsIGFzc29jaWF0ZWQgYXJlIHJlcXVpcmVkIGFzIHdlbGwuXG4gICAgICovXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIHZhbGlkYXRlKCk6IHZvaWQge1xuICAgICAgc3VwZXIudmFsaWRhdGUoKTtcbiAgICAgIGlmICghdGhpcy5hc3NvY2lhdGVkUmFkaW9CdXR0b25zKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgbGV0IHJlcXVpcmVkID0gZmFsc2U7XG4gICAgICBsZXQgY2hlY2tlZCA9IGZhbHNlO1xuICAgICAgZm9yIChjb25zdCByYWRpbyBvZiB0aGlzLmFzc29jaWF0ZWRSYWRpb0J1dHRvbnMpIHtcbiAgICAgICAgcmVxdWlyZWQgfHw9IHJhZGlvLnJlcXVpcmVkO1xuICAgICAgICBjaGVja2VkIHx8PSByYWRpby5jaGVja2VkO1xuICAgICAgfVxuXG4gICAgICBpZiAocmVxdWlyZWQgJiYgIWNoZWNrZWQpIHtcbiAgICAgICAgdGhpcy5hc3NvY2lhdGVkUmFkaW9CdXR0b25zLmZvckVhY2goKHIpID0+XG4gICAgICAgICAgci5zZXRWYWxpZGl0eUZsYWcoXG4gICAgICAgICAgICAndmFsdWVNaXNzaW5nJyxcbiAgICAgICAgICAgIGkxOG5TZWxlY3Rpb25SZXF1aXJlZFt0aGlzLl9sYW5ndWFnZUNvbnRyb2xsZXIuY3VycmVudF0sXG4gICAgICAgICAgKSxcbiAgICAgICAgKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuYXNzb2NpYXRlZFJhZGlvQnV0dG9ucy5mb3JFYWNoKChyKSA9PiByLnJlbW92ZVZhbGlkaXR5RmxhZygndmFsdWVNaXNzaW5nJykpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE9ubHkgYSBzaW5nbGUgcmFkaW8gc2hvdWxkIGJlIGZvY3VzYWJsZSBpbiB0aGUgZ3JvdXAuIERlZmluZWQgYXM6XG4gICAgICogLSB0aGUgY2hlY2tlZCByYWRpbztcbiAgICAgKiAtIHRoZSBmaXJzdCBub24tZGlzYWJsZWQgcmFkaW8gaW4gRE9NIG9yZGVyO1xuICAgICAqL1xuICAgIHByb3RlY3RlZCB1cGRhdGVGb2N1c2FibGVSYWRpb3MoKTogdm9pZCB7XG4gICAgICBpZiAoIXRoaXMuaGFzVXBkYXRlZCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBjb25zdCByYWRpb3MgPSB0aGlzLl9pbnRlcmFjdGFibGVHcm91cGVkUmFkaW9zKCk7XG4gICAgICBjb25zdCBjaGVja2VkSW5kZXggPSByYWRpb3MuZmluZEluZGV4KChyKSA9PiByLmNoZWNrZWQgJiYgIXIuZGlzYWJsZWQgJiYgIXIuZm9ybURpc2FibGVkKTtcbiAgICAgIGNvbnN0IGZvY3VzYWJsZUluZGV4ID1cbiAgICAgICAgY2hlY2tlZEluZGV4ICE9PSAtMVxuICAgICAgICAgID8gY2hlY2tlZEluZGV4XG4gICAgICAgICAgOiByYWRpb3MuZmluZEluZGV4KChyKSA9PiAhci5kaXNhYmxlZCAmJiAhci5mb3JtRGlzYWJsZWQpOyAvLyBHZXQgdGhlIGZpcnN0IGZvY3VzYWJsZSByYWRpb1xuXG4gICAgICBpZiAoZm9jdXNhYmxlSW5kZXggIT09IC0xKSB7XG4gICAgICAgIHJhZGlvc1tmb2N1c2FibGVJbmRleF0udGFiSW5kZXggPSAwO1xuICAgICAgICByYWRpb3Muc3BsaWNlKGZvY3VzYWJsZUluZGV4LCAxKTtcbiAgICAgIH1cblxuICAgICAgLy8gUmVzZXQgdGFiSW5kZXggb24gb3RoZXIgcmFkaW9zXG4gICAgICByYWRpb3MuZm9yRWFjaCgocikgPT4gci5yZW1vdmVBdHRyaWJ1dGUoJ3RhYmluZGV4JykpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBhc3luYyBuYXZpZ2F0ZUJ5S2V5Ym9hcmQobmV4dDogU2JiRm9ybUFzc29jaWF0ZWRSYWRpb0J1dHRvbkVsZW1lbnQpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgIG5leHQuY2hlY2tlZCA9IHRydWU7XG4gICAgICB0aGlzLmVtaXRDaGFuZ2VFdmVudHMoKTtcblxuICAgICAgYXdhaXQgbmV4dC51cGRhdGVDb21wbGV0ZTtcbiAgICAgIG5leHQuZm9jdXMoKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZW1pdENoYW5nZUV2ZW50cygpOiB2b2lkIHtcbiAgICAgIC8vIE1hbnVhbGx5IGRpc3BhdGNoIGV2ZW50cyB0byBzaW11bGF0ZSBhIHVzZXIgaW50ZXJhY3Rpb25cbiAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudChcbiAgICAgICAgbmV3IElucHV0RXZlbnQoJ2lucHV0JywgeyBidWJibGVzOiB0cnVlLCBjYW5jZWxhYmxlOiB0cnVlLCBjb21wb3NlZDogdHJ1ZSB9KSxcbiAgICAgICk7XG4gICAgICB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCdjaGFuZ2UnLCB7IGJ1YmJsZXM6IHRydWUgfSkpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX3N5bmNocm9uaXplR3JvdXBTdGF0ZSgpOiB2b2lkIHtcbiAgICAgIGlmICh0aGlzLmNoZWNrZWQpIHtcbiAgICAgICAgdGhpcy5fZGVzZWxlY3RHcm91cGVkUmFkaW9zKCk7XG4gICAgICB9XG4gICAgICB0aGlzLnVwZGF0ZUZvY3VzYWJsZVJhZGlvcygpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFkZCBgdGhpc2AgdG8gdGhlIHJhZGlvQnV0dG9uIHJlZ2lzdHJ5XG4gICAgICovXG4gICAgcHJpdmF0ZSBfY29ubmVjdFRvUmVnaXN0cnkoKTogdm9pZCB7XG4gICAgICBpZiAoIXRoaXMubmFtZSB8fCBpc1NlcnZlcikge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBjb25zdCByb290ID0gdGhpcy5mb3JtID8/IHRoaXMuZ2V0Um9vdE5vZGUoKTtcbiAgICAgIHRoaXMuX3JhZGlvQnV0dG9uR3JvdXBzTWFwID0gcmFkaW9CdXR0b25SZWdpc3RyeS5nZXQocm9vdCk7XG5cbiAgICAgIC8vIEluaXRpYWxpemUgdGhlICdyb290JyBtYXAgZW50cnlcbiAgICAgIGlmICghdGhpcy5fcmFkaW9CdXR0b25Hcm91cHNNYXApIHtcbiAgICAgICAgdGhpcy5fcmFkaW9CdXR0b25Hcm91cHNNYXAgPSBuZXcgTWFwKCk7XG4gICAgICAgIHJhZGlvQnV0dG9uUmVnaXN0cnkuc2V0KHJvb3QsIHRoaXMuX3JhZGlvQnV0dG9uR3JvdXBzTWFwKTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5hc3NvY2lhdGVkUmFkaW9CdXR0b25zID0gdGhpcy5fcmFkaW9CdXR0b25Hcm91cHNNYXAuZ2V0KFxuICAgICAgICB0aGlzLm5hbWUsXG4gICAgICApIGFzIHVua25vd24gYXMgU2V0PFNiYkZvcm1Bc3NvY2lhdGVkUmFkaW9CdXR0b25FbGVtZW50PjtcblxuICAgICAgLy8gSW5pdGlhbGl6ZSB0aGUgZ3JvdXAgc2V0XG4gICAgICBpZiAoIXRoaXMuYXNzb2NpYXRlZFJhZGlvQnV0dG9ucykge1xuICAgICAgICB0aGlzLmFzc29jaWF0ZWRSYWRpb0J1dHRvbnMgPSBuZXcgU2V0KCk7XG4gICAgICAgIHRoaXMuX3JhZGlvQnV0dG9uR3JvdXBzTWFwLnNldChcbiAgICAgICAgICB0aGlzLm5hbWUsXG4gICAgICAgICAgdGhpcy5hc3NvY2lhdGVkUmFkaW9CdXR0b25zIGFzIHVua25vd24gYXMgU2V0PFNiYkZvcm1Bc3NvY2lhdGVkUmFkaW9CdXR0b25NaXhpblR5cGU+LFxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICAvLyBJbnNlcnQgdGhlIG5ldyByYWRpbyBpbnRvIHRoZSBzZXQgYW5kIHNvcnQgZm9sbG93aW5nIHRoZSBET00gb3JkZXIuXG4gICAgICAvLyBTaW5jZSB0aGUgb3JkZXIgb2YgYSAnU2V0JyBpcyB0aGUgaW5zZXJ0IG9yZGVyLCB3ZSBoYXZlIHRvIGVtcHR5IGl0IGFuZCByZS1pbnNlcnQgcmFkaW9zIGluIG9yZGVyXG4gICAgICBjb25zdCBlbnRyaWVzID0gQXJyYXkuZnJvbSh0aGlzLmFzc29jaWF0ZWRSYWRpb0J1dHRvbnMpO1xuICAgICAgdGhpcy5hc3NvY2lhdGVkUmFkaW9CdXR0b25zLmNsZWFyKCk7XG5cbiAgICAgIC8vIEZpbmQgYHRoaXNgIHBvc2l0aW9uIGFuZCBpbnNlcnQgaXRcbiAgICAgIGNvbnN0IGluZGV4ID0gZW50cmllcy5maW5kSW5kZXgoXG4gICAgICAgIChyKSA9PiB0aGlzLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKHIpICYgTm9kZS5ET0NVTUVOVF9QT1NJVElPTl9GT0xMT1dJTkcsXG4gICAgICApO1xuICAgICAgaWYgKGluZGV4ICE9PSAtMSkge1xuICAgICAgICBlbnRyaWVzLnNwbGljZShpbmRleCwgMCwgdGhpcyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBlbnRyaWVzLnB1c2godGhpcyk7XG4gICAgICB9XG5cbiAgICAgIC8vIFJlcG9wdWxhdGUgdGhlIFNldFxuICAgICAgZW50cmllcy5mb3JFYWNoKChyKSA9PiB0aGlzLmFzc29jaWF0ZWRSYWRpb0J1dHRvbnMhLmFkZChyKSk7XG5cbiAgICAgIHRoaXMudmFsaWRhdGUoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZW1vdmUgYHRoaXNgIGZyb20gdGhlIHJhZGlvQnV0dG9uIHJlZ2lzdHJ5IGFuZCwgaWYgdGhlIGdyb3VwIGlzIGVtcHR5LCBkZWxldGUgdGhlIGVudHJ5IGZyb20gdGhlIGdyb3VwcyBNYXBcbiAgICAgKi9cbiAgICBwcml2YXRlIF9kaXNjb25uZWN0RnJvbVJlZ2lzdHJ5KCk6IHZvaWQge1xuICAgICAgdGhpcy5hc3NvY2lhdGVkUmFkaW9CdXR0b25zPy5kZWxldGUodGhpcyk7XG5cbiAgICAgIGlmICh0aGlzLmFzc29jaWF0ZWRSYWRpb0J1dHRvbnM/LnNpemUgPT09IDApIHtcbiAgICAgICAgdGhpcy5fcmFkaW9CdXR0b25Hcm91cHNNYXA/LmRlbGV0ZSh0aGlzLm5hbWUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy52YWxpZGF0ZSgpO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmFzc29jaWF0ZWRSYWRpb0J1dHRvbnMgPSB1bmRlZmluZWQ7XG4gICAgICB0aGlzLl9yYWRpb0J1dHRvbkdyb3Vwc01hcCA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm4gYSBsaXN0IG9mICdpbnRlcmFjdGFibGUnIGdyb3VwZWQgcmFkaW9zLCBvcmRlcmVkIGluIERPTSBvcmRlclxuICAgICAqL1xuICAgIHByaXZhdGUgX2ludGVyYWN0YWJsZUdyb3VwZWRSYWRpb3MoKTogU2JiRm9ybUFzc29jaWF0ZWRSYWRpb0J1dHRvbkVsZW1lbnRbXSB7XG4gICAgICByZXR1cm4gQXJyYXkuZnJvbSh0aGlzLmFzc29jaWF0ZWRSYWRpb0J1dHRvbnMgPz8gW10pLmZpbHRlcigoZWwpID0+XG4gICAgICAgIGludGVyYWN0aXZpdHlDaGVja2VyLmlzVmlzaWJsZShlbCksXG4gICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERlc2VsZWN0IG90aGVyIHJhZGlvIG9mIHRoZSBzYW1lIGdyb3VwXG4gICAgICovXG4gICAgcHJpdmF0ZSBfZGVzZWxlY3RHcm91cGVkUmFkaW9zKCk6IHZvaWQge1xuICAgICAgQXJyYXkuZnJvbSh0aGlzLmFzc29jaWF0ZWRSYWRpb0J1dHRvbnMgPz8gW10pXG4gICAgICAgIC5maWx0ZXIoKHIpID0+IHIgIT09IHRoaXMpXG4gICAgICAgIC5mb3JFYWNoKChyKSA9PiAoci5jaGVja2VkID0gZmFsc2UpKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFzeW5jIF9oYW5kbGVBcnJvd0tleURvd24oZXZ0OiBLZXlib2FyZEV2ZW50KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICBpZiAoIWlzQXJyb3dLZXlQcmVzc2VkKGV2dCkpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICAgIGNvbnN0IGVuYWJsZWRSYWRpb3MgPSB0aGlzLl9pbnRlcmFjdGFibGVHcm91cGVkUmFkaW9zKCkuZmlsdGVyKFxuICAgICAgICAocikgPT4gIXIuZGlzYWJsZWQgJiYgIXIuZm9ybURpc2FibGVkLFxuICAgICAgKTtcbiAgICAgIGNvbnN0IGN1cnJlbnQ6IG51bWJlciA9IGVuYWJsZWRSYWRpb3MuaW5kZXhPZih0aGlzKTtcbiAgICAgIGNvbnN0IG5leHRJbmRleDogbnVtYmVyID0gZ2V0TmV4dEVsZW1lbnRJbmRleChldnQsIGN1cnJlbnQsIGVuYWJsZWRSYWRpb3MubGVuZ3RoKTtcblxuICAgICAgYXdhaXQgdGhpcy5uYXZpZ2F0ZUJ5S2V5Ym9hcmQoZW5hYmxlZFJhZGlvc1tuZXh0SW5kZXhdKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gU2JiRm9ybUFzc29jaWF0ZWRSYWRpb0J1dHRvbkVsZW1lbnQgYXMgdW5rbm93biBhcyBBYnN0cmFjdENvbnN0cnVjdG9yPFNiYkZvcm1Bc3NvY2lhdGVkUmFkaW9CdXR0b25NaXhpblR5cGU+ICZcbiAgICBUO1xufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBNEJBLElBQWEsc0NBQXNCLElBQUksU0FHcEM7Ozs7QUFzQkgsSUFBYSxxQ0FDWCxlQUNrRTtDQUVsRSxNQUFNLHdCQUF5QixXQUFrRCxtQkFDNUUsYUFHRCx5QkFBeUIsV0FBVztBQW1UeEMsZUFqVGtEO29CQUN4QyxpQkFBaUIsaUJBQWlCLHVCQUF1QixzQkFBc0IsQ0FBQyxDQUFDOzs7O2VBRDVFLDRDQUNMLFlBQWlGOzs7K0JBUXhGLFNBQVMsRUFBRSxNQUFNLFNBQVMsQ0FBQyxDQUFBOzRCQWMzQixVQUFVLENBQUE7QUFiWCxpQkFBQSxNQUFBLE1BQUEseUJBQUE7S0FBQSxNQUFBO0tBQUEsTUFBQTtLQUFBLFFBQUE7S0FBQSxTQUFBO0tBQUEsUUFBQTtNQUFBLE1BQUEsUUFBQSxhQUFBO01BQUEsTUFBQSxLQUFBLFVBQUE7QUFBQSxXQUFXLFVBQU87O01BQUE7S0FBQSxVQUFBO0tBQUEsRUFBQSxNQUFBLDJCQUFBO0FBY2xCLGlCQUFBLE1BQUEsTUFBQSxzQkFBQTtLQUFBLE1BQUE7S0FBQSxNQUFBO0tBQUEsUUFBQTtLQUFBLFNBQUE7S0FBQSxRQUFBO01BQUEsTUFBQSxRQUFBLFVBQUE7TUFBQSxNQUFBLEtBQUEsVUFBQTtBQUFBLFdBQW9CLE9BQUk7O01BQUE7S0FBQSxVQUFBO0tBQUEsRUFBQSxNQUFBLDJCQUFBOzs7Ozs7Ozs7QUFwQlEsU0FBQSxPQUFPOzs7OztHQU12QyxJQUFXLFFBQVEsT0FBYztBQUMvQixTQUFLLFdBQVcsQ0FBQyxDQUFDO0FBRWxCLFNBQUssWUFBWSxXQUFXLEtBQUssUUFBUTtBQUN6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
266
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1hc3NvY2lhdGVkLXJhZGlvLWJ1dHRvbi1taXhpbi5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvY29yZS9taXhpbnMvZm9ybS1hc3NvY2lhdGVkLXJhZGlvLWJ1dHRvbi1taXhpbi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc1NlcnZlciwgdHlwZSBMaXRFbGVtZW50LCB0eXBlIFByb3BlcnR5VmFsdWVzIH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IHByb3BlcnR5IH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuXG5pbXBvcnQgeyBnZXROZXh0RWxlbWVudEluZGV4LCBpbnRlcmFjdGl2aXR5Q2hlY2tlciwgaXNBcnJvd0tleVByZXNzZWQgfSBmcm9tICcuLi9hMTF5LnRzJztcbmltcG9ydCB7IFNiYkxhbmd1YWdlQ29udHJvbGxlciB9IGZyb20gJy4uL2NvbnRyb2xsZXJzLnRzJztcbmltcG9ydCB7IGkxOG5TZWxlY3Rpb25SZXF1aXJlZCB9IGZyb20gJy4uL2kxOG4udHMnO1xuXG5pbXBvcnQgdHlwZSB7IEFic3RyYWN0Q29uc3RydWN0b3IgfSBmcm9tICcuL2NvbnN0cnVjdG9yLnRzJztcbmltcG9ydCB7IFNiYkRpc2FibGVkTWl4aW4gfSBmcm9tICcuL2Rpc2FibGVkLW1peGluLnRzJztcbmltcG9ydCB7XG4gIFNiYkVsZW1lbnRJbnRlcm5hbHNNaXhpbixcbiAgdHlwZSBTYmJFbGVtZW50SW50ZXJuYWxzTWl4aW5UeXBlLFxuICB0eXBlIFNiYkVsZW1lbnRJbnRlcm5hbHNDb25zdHJ1Y3Rvcixcbn0gZnJvbSAnLi9lbGVtZW50LWludGVybmFscy1taXhpbi50cyc7XG5pbXBvcnQge1xuICB0eXBlIEZvcm1SZXN0b3JlUmVhc29uLFxuICB0eXBlIEZvcm1SZXN0b3JlU3RhdGUsXG4gIFNiYkZvcm1Bc3NvY2lhdGVkTWl4aW4sXG59IGZyb20gJy4vZm9ybS1hc3NvY2lhdGVkLW1peGluLnRzJztcbmltcG9ydCB7IFNiYlJlcXVpcmVkTWl4aW4gfSBmcm9tICcuL3JlcXVpcmVkLW1peGluLnRzJztcblxuLyoqXG4gKiBBIHN0YXRpYyByZWdpc3RyeSB0aGF0IGhvbGRzIGEgY29sbGVjdGlvbiBvZiBncm91cGVkIGByYWRpby1idXR0b25zYC5cbiAqIEdyb3VwcyBvZiByYWRpbyBidXR0b25zIGFyZSBsb2NhbCB0byB0aGUgZm9ybSB0aGV5IGJlbG9uZyAob3IgdGhlIGByZW5kZXJSb290YCBpZiB0aGV5J3JlIG5vdCBwYXJ0IG9mIGFueSBmb3JtKVxuICogTXVsdGlwbGUgZ3JvdXBzIG9mIHJhZGlvIHdpdGggdGhlIHNhbWUgbmFtZSBjYW4gY29leGlzdCAoYXMgbG9uZyBhcyB0aGV5IGJlbG9uZyB0byBhIGRpZmZlcmVudCBmb3JtIC8gcmVuZGVyUm9vdClcbiAqIEl0IGlzIG1haW5seSB1c2VkIHRvIHN1cHBvcnQgdGhlIHN0YW5kYWxvbmUgZ3JvdXBzIG9mIHJhZGlvcy5cbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgY29uc3QgcmFkaW9CdXR0b25SZWdpc3RyeSA9IG5ldyBXZWFrTWFwPFxuICBOb2RlLFxuICBNYXA8c3RyaW5nLCBTZXQ8U2JiRm9ybUFzc29jaWF0ZWRSYWRpb0J1dHRvbk1peGluVHlwZT4+XG4+KCk7XG5cbmV4cG9ydCBkZWNsYXJlIGFic3RyYWN0IGNsYXNzIFNiYkZvcm1Bc3NvY2lhdGVkUmFkaW9CdXR0b25NaXhpblR5cGUgZXh0ZW5kcyBTYmJEaXNhYmxlZE1peGluKFxuICBTYmJSZXF1aXJlZE1peGluKFNiYkZvcm1Bc3NvY2lhdGVkTWl4aW4oU2JiRWxlbWVudEludGVybmFsc01peGluKExpdEVsZW1lbnQpKSksXG4pIHtcbiAgcHVibGljIGFjY2Vzc29yIGNoZWNrZWQ6IGJvb2xlYW47XG5cbiAgcHJvdGVjdGVkIGFzc29jaWF0ZWRSYWRpb0J1dHRvbnM/OiBTZXQ8U2JiRm9ybUFzc29jaWF0ZWRSYWRpb0J1dHRvbk1peGluVHlwZT47XG5cbiAgcHVibGljIGZvcm1SZXNldENhbGxiYWNrKCk6IHZvaWQ7XG4gIHB1YmxpYyBmb3JtU3RhdGVSZXN0b3JlQ2FsbGJhY2soc3RhdGU6IEZvcm1SZXN0b3JlU3RhdGUgfCBudWxsLCByZWFzb246IEZvcm1SZXN0b3JlUmVhc29uKTogdm9pZDtcblxuICBwcm90ZWN0ZWQgdXBkYXRlRm9ybVZhbHVlKCk6IHZvaWQ7XG4gIHByb3RlY3RlZCB1cGRhdGVGb2N1c2FibGVSYWRpb3MoKTogdm9pZDtcbiAgcHJvdGVjdGVkIGVtaXRDaGFuZ2VFdmVudHMoKTogdm9pZDtcbiAgcHJvdGVjdGVkIG5hdmlnYXRlQnlLZXlib2FyZChyYWRpbzogU2JiRm9ybUFzc29jaWF0ZWRSYWRpb0J1dHRvbk1peGluVHlwZSk6IFByb21pc2U8dm9pZD47XG59XG5cbi8qKlxuICogVGhlIFNiYkZvcm1Bc3NvY2lhdGVkUmFkaW9CdXR0b25NaXhpbiBlbmFibGVzIG5hdGl2ZSBmb3JtIHN1cHBvcnQgZm9yIHJhZGlvIGNvbnRyb2xzLlxuICovXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG5leHBvcnQgY29uc3QgU2JiRm9ybUFzc29jaWF0ZWRSYWRpb0J1dHRvbk1peGluID0gPFQgZXh0ZW5kcyBBYnN0cmFjdENvbnN0cnVjdG9yPExpdEVsZW1lbnQ+PihcbiAgc3VwZXJDbGFzczogVCxcbik6IEFic3RyYWN0Q29uc3RydWN0b3I8U2JiRm9ybUFzc29jaWF0ZWRSYWRpb0J1dHRvbk1peGluVHlwZT4gJiBUID0+IHtcbiAgLy8gVE9ETyhicmVha2luZy1jaGFuZ2UpOiBSZW1vdmUgU2JiRWxlbWVudEludGVybmFsc01peGluIGFuZCBkZXBlbmQgb24gU2JiRWxlbWVudCBhcyBiYXNlIGNsYXNzIGluc3RlYWQgb2YgTGl0RWxlbWVudFxuICBjb25zdCBjb25kaXRpb25hbFN1cGVyQ2xhc3MgPSAoc3VwZXJDbGFzcyBhcyB1bmtub3duIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+KVsnXyRzYmJFbGVtZW50JCddXG4gICAgPyAoc3VwZXJDbGFzcyBhcyB1bmtub3duIGFzIEFic3RyYWN0Q29uc3RydWN0b3I8U2JiRWxlbWVudEludGVybmFsc01peGluVHlwZT4gJlxuICAgICAgICBUICZcbiAgICAgICAgU2JiRWxlbWVudEludGVybmFsc0NvbnN0cnVjdG9yKVxuICAgIDogU2JiRWxlbWVudEludGVybmFsc01peGluKHN1cGVyQ2xhc3MpO1xuXG4gIGFic3RyYWN0IGNsYXNzIFNiYkZvcm1Bc3NvY2lhdGVkUmFkaW9CdXR0b25FbGVtZW50XG4gICAgZXh0ZW5kcyBTYmJEaXNhYmxlZE1peGluKFNiYlJlcXVpcmVkTWl4aW4oU2JiRm9ybUFzc29jaWF0ZWRNaXhpbihjb25kaXRpb25hbFN1cGVyQ2xhc3MpKSlcbiAgICBpbXBsZW1lbnRzIFBhcnRpYWw8U2JiRm9ybUFzc29jaWF0ZWRSYWRpb0J1dHRvbk1peGluVHlwZT5cbiAge1xuICAgIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgcmVhZG9ubHkgcm9sZSA9ICdyYWRpbyc7XG5cbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHRoZSByYWRpbyBidXR0b24gaXMgY2hlY2tlZC5cbiAgICAgKi9cbiAgICBAcHJvcGVydHkoeyB0eXBlOiBCb29sZWFuIH0pXG4gICAgcHVibGljIHNldCBjaGVja2VkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICB0aGlzLl9jaGVja2VkID0gISF2YWx1ZTtcblxuICAgICAgdGhpcy50b2dnbGVTdGF0ZSgnY2hlY2tlZCcsIHRoaXMuY2hlY2tlZCk7XG4gICAgICB0aGlzLmludGVybmFscy5hcmlhQ2hlY2tlZCA9IHRoaXMuY2hlY2tlZC50b1N0cmluZygpO1xuICAgICAgdGhpcy51cGRhdGVGb3JtVmFsdWUoKTtcbiAgICAgIHRoaXMuX3N5bmNocm9uaXplR3JvdXBTdGF0ZSgpO1xuICAgIH1cbiAgICBwdWJsaWMgZ2V0IGNoZWNrZWQoKTogYm9vbGVhbiB7XG4gICAgICByZXR1cm4gdGhpcy5fY2hlY2tlZDtcbiAgICB9XG4gICAgcHJpdmF0ZSBfY2hlY2tlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgQHByb3BlcnR5KClcbiAgICBwdWJsaWMgb3ZlcnJpZGUgc2V0IG5hbWUodmFsdWU6IHN0cmluZykge1xuICAgICAgc3VwZXIubmFtZSA9IHZhbHVlO1xuXG4gICAgICB0aGlzLl9kaXNjb25uZWN0RnJvbVJlZ2lzdHJ5KCk7XG4gICAgICB0aGlzLl9jb25uZWN0VG9SZWdpc3RyeSgpO1xuICAgICAgdGhpcy5fc3luY2hyb25pemVHcm91cFN0YXRlKCk7XG4gICAgfVxuICAgIHB1YmxpYyBvdmVycmlkZSBnZXQgbmFtZSgpOiBzdHJpbmcge1xuICAgICAgcmV0dXJuIHN1cGVyLm5hbWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRm9ybSB0eXBlIG9mIGVsZW1lbnQuXG4gICAgICogQGRlZmF1bHQgJ3JhZGlvJ1xuICAgICAqL1xuICAgIHB1YmxpYyBvdmVycmlkZSBnZXQgdHlwZSgpOiBzdHJpbmcge1xuICAgICAgcmV0dXJuICdyYWRpbyc7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0IG9mIHJhZGlvIGJ1dHRvbnMgdGhhdCBiZWxvbmdzIHRvIHRoZSBzYW1lIGdyb3VwIG9mIGB0aGlzYC5cbiAgICAgKiBBc3N1bWUgdGhlbSBvcmRlcmVkIGluIERPTSBvcmRlclxuICAgICAqL1xuICAgIHByb3RlY3RlZCBhc3NvY2lhdGVkUmFkaW9CdXR0b25zPzogU2V0PFNiYkZvcm1Bc3NvY2lhdGVkUmFkaW9CdXR0b25FbGVtZW50PjtcbiAgICBwcml2YXRlIF9yYWRpb0J1dHRvbkdyb3Vwc01hcD86IE1hcDxzdHJpbmcsIFNldDxTYmJGb3JtQXNzb2NpYXRlZFJhZGlvQnV0dG9uTWl4aW5UeXBlPj47XG4gICAgcHJpdmF0ZSBfbGFuZ3VhZ2VDb250cm9sbGVyID0gbmV3IFNiYkxhbmd1YWdlQ29udHJvbGxlcih0aGlzKTtcblxuICAgIHByb3RlY3RlZCBjb25zdHJ1Y3RvcigpIHtcbiAgICAgIHN1cGVyKCk7XG4gICAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/Ligna2V5ZG93bicsIChlKSA9PiB0aGlzLl9oYW5kbGVBcnJvd0tleURvd24oZSkpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvdmVycmlkZSBjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICAgIHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgICB0aGlzLl9jb25uZWN0VG9SZWdpc3RyeSgpO1xuICAgICAgdGhpcy5fc3luY2hyb25pemVHcm91cFN0YXRlKCk7XG4gICAgfVxuXG4gICAgcHVibGljIG92ZXJyaWRlIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgICAgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKTtcbiAgICAgIHRoaXMuX2Rpc2Nvbm5lY3RGcm9tUmVnaXN0cnkoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBJcyBjYWxsZWQgd2hlbmV2ZXIgdGhlIGZvcm0gaXMgYmVpbmcgcmVzZXQuXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgcHVibGljIG92ZXJyaWRlIGZvcm1SZXNldENhbGxiYWNrKCk6IHZvaWQge1xuICAgICAgdGhpcy5jaGVja2VkID0gdGhpcy5oYXNBdHRyaWJ1dGUoJ2NoZWNrZWQnKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiAgQ2FsbGVkIHdoZW4gdGhlIGJyb3dzZXIgaXMgdHJ5aW5nIHRvIHJlc3RvcmUgZWxlbWVudOKAmXMgc3RhdGUgdG8gc3RhdGUgaW4gd2hpY2ggY2FzZVxuICAgICAqICByZWFzb24gaXMgXCJyZXN0b3JlXCIsIG9yIHdoZW4gdGhlIGJyb3dzZXIgaXMgdHJ5aW5nIHRvIGZ1bGZpbGwgYXV0b2ZpbGwgb24gYmVoYWxmIG9mXG4gICAgICogIHVzZXIgaW4gd2hpY2ggY2FzZSByZWFzb24gaXMgXCJhdXRvY29tcGxldGVcIi5cbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBwdWJsaWMgb3ZlcnJpZGUgZm9ybVN0YXRlUmVzdG9yZUNhbGxiYWNrKFxuICAgICAgc3RhdGU6IEZvcm1SZXN0b3JlU3RhdGUgfCBudWxsLFxuICAgICAgX3JlYXNvbjogRm9ybVJlc3RvcmVSZWFzb24sXG4gICAgKTogdm9pZCB7XG4gICAgICBpZiAodHlwZW9mIHN0YXRlID09PSAnc3RyaW5nJyB8fCBzdGF0ZSA9PSBudWxsKSB7XG4gICAgICAgIHRoaXMuY2hlY2tlZCA9IHN0YXRlID09PSB0aGlzLnZhbHVlO1xuICAgICAgfSBlbHNlIGlmIChzdGF0ZSBpbnN0YW5jZW9mIEZvcm1EYXRhKSB7XG4gICAgICAgIHRoaXMuX3JlYWRGb3JtRGF0YShzdGF0ZSkudGhlbigoZGF0YSkgPT4ge1xuICAgICAgICAgIHRoaXMuY2hlY2tlZCA9IGRhdGEgPT09IHRoaXMudmFsdWU7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgYXN5bmMgX3JlYWRGb3JtRGF0YShmb3JtRGF0YTogRm9ybURhdGEpOiBQcm9taXNlPHVua25vd24+IHtcbiAgICAgIGNvbnN0IGRhdGEgPSBmb3JtRGF0YS5nZXQodGhpcy5uYW1lKTtcbiAgICAgIHJldHVybiBkYXRhIGluc3RhbmNlb2YgQmxvYiA/IEpTT04ucGFyc2UoYXdhaXQgZGF0YS50ZXh0KCkpIDogZGF0YTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgd2lsbFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXM8dGhpcz4pOiB2b2lkIHtcbiAgICAgIHN1cGVyLndpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXMpO1xuXG4gICAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdkaXNhYmxlZCcpKSB7XG4gICAgICAgIHRoaXMudXBkYXRlRm9jdXNhYmxlUmFkaW9zKCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIGZpcnN0VXBkYXRlZChjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXM8dGhpcz4pOiB2b2lkIHtcbiAgICAgIHN1cGVyLmZpcnN0VXBkYXRlZChjaGFuZ2VkUHJvcGVydGllcyk7XG4gICAgICB0aGlzLnVwZGF0ZUZvY3VzYWJsZVJhZGlvcygpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENhbGxlZCBvbiBgdmFsdWVgIGNoYW5nZVxuICAgICAqIElmICdjaGVja2VkJywgdXBkYXRlIHRoZSB2YWx1ZS4gT3RoZXJ3aXNlLCBkbyBub3RoaW5nLlxuICAgICAqL1xuICAgIHByb3RlY3RlZCBvdmVycmlkZSB1cGRhdGVGb3JtVmFsdWUoKTogdm9pZCB7XG4gICAgICBpZiAodGhpcy5jaGVja2VkKSB7XG4gICAgICAgIHN1cGVyLnVwZGF0ZUZvcm1WYWx1ZSgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5pbnRlcm5hbHMuc2V0Rm9ybVZhbHVlKG51bGwpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBvdmVycmlkZSBzaG91bGRWYWxpZGF0ZShuYW1lOiBQcm9wZXJ0eUtleSB8IHVuZGVmaW5lZCk6IGJvb2xlYW4ge1xuICAgICAgcmV0dXJuIHN1cGVyLnNob3VsZFZhbGlkYXRlKG5hbWUpIHx8IG5hbWUgPT09ICdjaGVja2VkJyB8fCBuYW1lID09PSAncmVxdWlyZWQnO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldHMgdGhlIHZhbGlkaXR5IG9mIGFsbCBhc3NvY2lhdGVkIHJhZGlvIGJ1dHRvbnMuXG4gICAgICogSWYgYW55IHJhZGlvIGJ1dHRvbiBpcyByZXF1aXJlZCwgYWxsIGFzc29jaWF0ZWQgYXJlIHJlcXVpcmVkIGFzIHdlbGwuXG4gICAgICovXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIHZhbGlkYXRlKCk6IHZvaWQge1xuICAgICAgc3VwZXIudmFsaWRhdGUoKTtcbiAgICAgIGlmICghdGhpcy5hc3NvY2lhdGVkUmFkaW9CdXR0b25zKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgbGV0IHJlcXVpcmVkID0gZmFsc2U7XG4gICAgICBsZXQgY2hlY2tlZCA9IGZhbHNlO1xuICAgICAgZm9yIChjb25zdCByYWRpbyBvZiB0aGlzLmFzc29jaWF0ZWRSYWRpb0J1dHRvbnMpIHtcbiAgICAgICAgcmVxdWlyZWQgfHw9IHJhZGlvLnJlcXVpcmVkO1xuICAgICAgICBjaGVja2VkIHx8PSByYWRpby5jaGVja2VkO1xuICAgICAgfVxuXG4gICAgICBpZiAocmVxdWlyZWQgJiYgIWNoZWNrZWQpIHtcbiAgICAgICAgdGhpcy5hc3NvY2lhdGVkUmFkaW9CdXR0b25zLmZvckVhY2goKHIpID0+XG4gICAgICAgICAgci5zZXRWYWxpZGl0eUZsYWcoXG4gICAgICAgICAgICAndmFsdWVNaXNzaW5nJyxcbiAgICAgICAgICAgIGkxOG5TZWxlY3Rpb25SZXF1aXJlZFt0aGlzLl9sYW5ndWFnZUNvbnRyb2xsZXIuY3VycmVudF0sXG4gICAgICAgICAgKSxcbiAgICAgICAgKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuYXNzb2NpYXRlZFJhZGlvQnV0dG9ucy5mb3JFYWNoKChyKSA9PiByLnJlbW92ZVZhbGlkaXR5RmxhZygndmFsdWVNaXNzaW5nJykpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE9ubHkgYSBzaW5nbGUgcmFkaW8gc2hvdWxkIGJlIGZvY3VzYWJsZSBpbiB0aGUgZ3JvdXAuIERlZmluZWQgYXM6XG4gICAgICogLSB0aGUgY2hlY2tlZCByYWRpbztcbiAgICAgKiAtIHRoZSBmaXJzdCBub24tZGlzYWJsZWQgcmFkaW8gaW4gRE9NIG9yZGVyO1xuICAgICAqL1xuICAgIHByb3RlY3RlZCB1cGRhdGVGb2N1c2FibGVSYWRpb3MoKTogdm9pZCB7XG4gICAgICBpZiAoIXRoaXMuaGFzVXBkYXRlZCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBjb25zdCByYWRpb3MgPSB0aGlzLl9pbnRlcmFjdGFibGVHcm91cGVkUmFkaW9zKCk7XG4gICAgICBjb25zdCBjaGVja2VkSW5kZXggPSByYWRpb3MuZmluZEluZGV4KChyKSA9PiByLmNoZWNrZWQgJiYgIXIuZGlzYWJsZWQgJiYgIXIuZm9ybURpc2FibGVkKTtcbiAgICAgIGNvbnN0IGZvY3VzYWJsZUluZGV4ID1cbiAgICAgICAgY2hlY2tlZEluZGV4ICE9PSAtMVxuICAgICAgICAgID8gY2hlY2tlZEluZGV4XG4gICAgICAgICAgOiByYWRpb3MuZmluZEluZGV4KChyKSA9PiAhci5kaXNhYmxlZCAmJiAhci5mb3JtRGlzYWJsZWQpOyAvLyBHZXQgdGhlIGZpcnN0IGZvY3VzYWJsZSByYWRpb1xuXG4gICAgICBpZiAoZm9jdXNhYmxlSW5kZXggIT09IC0xKSB7XG4gICAgICAgIHJhZGlvc1tmb2N1c2FibGVJbmRleF0udGFiSW5kZXggPSAwO1xuICAgICAgICByYWRpb3Muc3BsaWNlKGZvY3VzYWJsZUluZGV4LCAxKTtcbiAgICAgIH1cblxuICAgICAgLy8gUmVzZXQgdGFiSW5kZXggb24gb3RoZXIgcmFkaW9zXG4gICAgICByYWRpb3MuZm9yRWFjaCgocikgPT4gci5yZW1vdmVBdHRyaWJ1dGUoJ3RhYmluZGV4JykpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBhc3luYyBuYXZpZ2F0ZUJ5S2V5Ym9hcmQobmV4dDogU2JiRm9ybUFzc29jaWF0ZWRSYWRpb0J1dHRvbkVsZW1lbnQpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgIG5leHQuY2hlY2tlZCA9IHRydWU7XG4gICAgICB0aGlzLmVtaXRDaGFuZ2VFdmVudHMoKTtcblxuICAgICAgYXdhaXQgbmV4dC51cGRhdGVDb21wbGV0ZTtcbiAgICAgIG5leHQuZm9jdXMoKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZW1pdENoYW5nZUV2ZW50cygpOiB2b2lkIHtcbiAgICAgIC8vIE1hbnVhbGx5IGRpc3BhdGNoIGV2ZW50cyB0byBzaW11bGF0ZSBhIHVzZXIgaW50ZXJhY3Rpb25cbiAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudChcbiAgICAgICAgbmV3IElucHV0RXZlbnQoJ2lucHV0JywgeyBidWJibGVzOiB0cnVlLCBjYW5jZWxhYmxlOiB0cnVlLCBjb21wb3NlZDogdHJ1ZSB9KSxcbiAgICAgICk7XG4gICAgICB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCdjaGFuZ2UnLCB7IGJ1YmJsZXM6IHRydWUgfSkpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX3N5bmNocm9uaXplR3JvdXBTdGF0ZSgpOiB2b2lkIHtcbiAgICAgIGlmICh0aGlzLmNoZWNrZWQpIHtcbiAgICAgICAgdGhpcy5fZGVzZWxlY3RHcm91cGVkUmFkaW9zKCk7XG4gICAgICB9XG4gICAgICB0aGlzLnVwZGF0ZUZvY3VzYWJsZVJhZGlvcygpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFkZCBgdGhpc2AgdG8gdGhlIHJhZGlvQnV0dG9uIHJlZ2lzdHJ5XG4gICAgICovXG4gICAgcHJpdmF0ZSBfY29ubmVjdFRvUmVnaXN0cnkoKTogdm9pZCB7XG4gICAgICBpZiAoIXRoaXMubmFtZSB8fCBpc1NlcnZlcikge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBjb25zdCByb290ID0gdGhpcy5mb3JtID8/IHRoaXMuZ2V0Um9vdE5vZGUoKTtcbiAgICAgIHRoaXMuX3JhZGlvQnV0dG9uR3JvdXBzTWFwID0gcmFkaW9CdXR0b25SZWdpc3RyeS5nZXQocm9vdCk7XG5cbiAgICAgIC8vIEluaXRpYWxpemUgdGhlICdyb290JyBtYXAgZW50cnlcbiAgICAgIGlmICghdGhpcy5fcmFkaW9CdXR0b25Hcm91cHNNYXApIHtcbiAgICAgICAgdGhpcy5fcmFkaW9CdXR0b25Hcm91cHNNYXAgPSBuZXcgTWFwKCk7XG4gICAgICAgIHJhZGlvQnV0dG9uUmVnaXN0cnkuc2V0KHJvb3QsIHRoaXMuX3JhZGlvQnV0dG9uR3JvdXBzTWFwKTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5hc3NvY2lhdGVkUmFkaW9CdXR0b25zID0gdGhpcy5fcmFkaW9CdXR0b25Hcm91cHNNYXAuZ2V0KFxuICAgICAgICB0aGlzLm5hbWUsXG4gICAgICApIGFzIHVua25vd24gYXMgU2V0PFNiYkZvcm1Bc3NvY2lhdGVkUmFkaW9CdXR0b25FbGVtZW50PjtcblxuICAgICAgLy8gSW5pdGlhbGl6ZSB0aGUgZ3JvdXAgc2V0XG4gICAgICBpZiAoIXRoaXMuYXNzb2NpYXRlZFJhZGlvQnV0dG9ucykge1xuICAgICAgICB0aGlzLmFzc29jaWF0ZWRSYWRpb0J1dHRvbnMgPSBuZXcgU2V0KCk7XG4gICAgICAgIHRoaXMuX3JhZGlvQnV0dG9uR3JvdXBzTWFwLnNldChcbiAgICAgICAgICB0aGlzLm5hbWUsXG4gICAgICAgICAgdGhpcy5hc3NvY2lhdGVkUmFkaW9CdXR0b25zIGFzIHVua25vd24gYXMgU2V0PFNiYkZvcm1Bc3NvY2lhdGVkUmFkaW9CdXR0b25NaXhpblR5cGU+LFxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICAvLyBJbnNlcnQgdGhlIG5ldyByYWRpbyBpbnRvIHRoZSBzZXQgYW5kIHNvcnQgZm9sbG93aW5nIHRoZSBET00gb3JkZXIuXG4gICAgICAvLyBTaW5jZSB0aGUgb3JkZXIgb2YgYSAnU2V0JyBpcyB0aGUgaW5zZXJ0IG9yZGVyLCB3ZSBoYXZlIHRvIGVtcHR5IGl0IGFuZCByZS1pbnNlcnQgcmFkaW9zIGluIG9yZGVyXG4gICAgICBjb25zdCBlbnRyaWVzID0gQXJyYXkuZnJvbSh0aGlzLmFzc29jaWF0ZWRSYWRpb0J1dHRvbnMpO1xuICAgICAgdGhpcy5hc3NvY2lhdGVkUmFkaW9CdXR0b25zLmNsZWFyKCk7XG5cbiAgICAgIC8vIEZpbmQgYHRoaXNgIHBvc2l0aW9uIGFuZCBpbnNlcnQgaXRcbiAgICAgIGNvbnN0IGluZGV4ID0gZW50cmllcy5maW5kSW5kZXgoXG4gICAgICAgIChyKSA9PiB0aGlzLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKHIpICYgTm9kZS5ET0NVTUVOVF9QT1NJVElPTl9GT0xMT1dJTkcsXG4gICAgICApO1xuICAgICAgaWYgKGluZGV4ICE9PSAtMSkge1xuICAgICAgICBlbnRyaWVzLnNwbGljZShpbmRleCwgMCwgdGhpcyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBlbnRyaWVzLnB1c2godGhpcyk7XG4gICAgICB9XG5cbiAgICAgIC8vIFJlcG9wdWxhdGUgdGhlIFNldFxuICAgICAgZW50cmllcy5mb3JFYWNoKChyKSA9PiB0aGlzLmFzc29jaWF0ZWRSYWRpb0J1dHRvbnMhLmFkZChyKSk7XG5cbiAgICAgIHRoaXMudmFsaWRhdGUoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZW1vdmUgYHRoaXNgIGZyb20gdGhlIHJhZGlvQnV0dG9uIHJlZ2lzdHJ5IGFuZCwgaWYgdGhlIGdyb3VwIGlzIGVtcHR5LCBkZWxldGUgdGhlIGVudHJ5IGZyb20gdGhlIGdyb3VwcyBNYXBcbiAgICAgKi9cbiAgICBwcml2YXRlIF9kaXNjb25uZWN0RnJvbVJlZ2lzdHJ5KCk6IHZvaWQge1xuICAgICAgdGhpcy5hc3NvY2lhdGVkUmFkaW9CdXR0b25zPy5kZWxldGUodGhpcyk7XG5cbiAgICAgIGlmICh0aGlzLmFzc29jaWF0ZWRSYWRpb0J1dHRvbnM/LnNpemUgPT09IDApIHtcbiAgICAgICAgdGhpcy5fcmFkaW9CdXR0b25Hcm91cHNNYXA/LmRlbGV0ZSh0aGlzLm5hbWUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy52YWxpZGF0ZSgpO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmFzc29jaWF0ZWRSYWRpb0J1dHRvbnMgPSB1bmRlZmluZWQ7XG4gICAgICB0aGlzLl9yYWRpb0J1dHRvbkdyb3Vwc01hcCA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm4gYSBsaXN0IG9mICdpbnRlcmFjdGFibGUnIGdyb3VwZWQgcmFkaW9zLCBvcmRlcmVkIGluIERPTSBvcmRlclxuICAgICAqL1xuICAgIHByaXZhdGUgX2ludGVyYWN0YWJsZUdyb3VwZWRSYWRpb3MoKTogU2JiRm9ybUFzc29jaWF0ZWRSYWRpb0J1dHRvbkVsZW1lbnRbXSB7XG4gICAgICByZXR1cm4gQXJyYXkuZnJvbSh0aGlzLmFzc29jaWF0ZWRSYWRpb0J1dHRvbnMgPz8gW10pLmZpbHRlcigoZWwpID0+XG4gICAgICAgIGludGVyYWN0aXZpdHlDaGVja2VyLmlzVmlzaWJsZShlbCksXG4gICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERlc2VsZWN0IG90aGVyIHJhZGlvIG9mIHRoZSBzYW1lIGdyb3VwXG4gICAgICovXG4gICAgcHJpdmF0ZSBfZGVzZWxlY3RHcm91cGVkUmFkaW9zKCk6IHZvaWQge1xuICAgICAgQXJyYXkuZnJvbSh0aGlzLmFzc29jaWF0ZWRSYWRpb0J1dHRvbnMgPz8gW10pXG4gICAgICAgIC5maWx0ZXIoKHIpID0+IHIgIT09IHRoaXMpXG4gICAgICAgIC5mb3JFYWNoKChyKSA9PiAoci5jaGVja2VkID0gZmFsc2UpKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFzeW5jIF9oYW5kbGVBcnJvd0tleURvd24oZXZ0OiBLZXlib2FyZEV2ZW50KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICBpZiAoIWlzQXJyb3dLZXlQcmVzc2VkKGV2dCkpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICAgIGNvbnN0IGVuYWJsZWRSYWRpb3MgPSB0aGlzLl9pbnRlcmFjdGFibGVHcm91cGVkUmFkaW9zKCkuZmlsdGVyKFxuICAgICAgICAocikgPT4gIXIuZGlzYWJsZWQgJiYgIXIuZm9ybURpc2FibGVkLFxuICAgICAgKTtcbiAgICAgIGNvbnN0IGN1cnJlbnQ6IG51bWJlciA9IGVuYWJsZWRSYWRpb3MuaW5kZXhPZih0aGlzKTtcbiAgICAgIGNvbnN0IG5leHRJbmRleDogbnVtYmVyID0gZ2V0TmV4dEVsZW1lbnRJbmRleChldnQsIGN1cnJlbnQsIGVuYWJsZWRSYWRpb3MubGVuZ3RoKTtcblxuICAgICAgYXdhaXQgdGhpcy5uYXZpZ2F0ZUJ5S2V5Ym9hcmQoZW5hYmxlZFJhZGlvc1tuZXh0SW5kZXhdKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gU2JiRm9ybUFzc29jaWF0ZWRSYWRpb0J1dHRvbkVsZW1lbnQgYXMgdW5rbm93biBhcyBBYnN0cmFjdENvbnN0cnVjdG9yPFNiYkZvcm1Bc3NvY2lhdGVkUmFkaW9CdXR0b25NaXhpblR5cGU+ICZcbiAgICBUO1xufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBNEJBLElBQWEsc0NBQXNCLElBQUksU0FHcEM7Ozs7QUFzQkgsSUFBYSxxQ0FDWCxlQUNrRTtDQUVsRSxNQUFNLHdCQUF5QixXQUFrRCxtQkFDNUUsYUFHRCx5QkFBeUIsV0FBVztBQW1UeEMsZUFqVGtEO29CQUN4QyxpQkFBaUIsaUJBQWlCLHVCQUF1QixzQkFBc0IsQ0FBQyxDQUFDOzs7O2VBRDVFLDRDQUNMLFlBQWlGOzs7K0JBUXhGLFNBQVMsRUFBRSxNQUFNLFNBQVMsQ0FBQyxDQUFBOzRCQWMzQixVQUFVLENBQUE7QUFiWCxpQkFBQSxNQUFBLE1BQUEseUJBQUE7S0FBQSxNQUFBO0tBQUEsTUFBQTtLQUFBLFFBQUE7S0FBQSxTQUFBO0tBQUEsUUFBQTtNQUFBLE1BQUEsUUFBQSxhQUFBO01BQUEsTUFBQSxLQUFBLFVBQUE7QUFBQSxXQUFXLFVBQU87O01BQUE7S0FBQSxVQUFBO0tBQUEsRUFBQSxNQUFBLDJCQUFBO0FBY2xCLGlCQUFBLE1BQUEsTUFBQSxzQkFBQTtLQUFBLE1BQUE7S0FBQSxNQUFBO0tBQUEsUUFBQTtLQUFBLFNBQUE7S0FBQSxRQUFBO01BQUEsTUFBQSxRQUFBLFVBQUE7TUFBQSxNQUFBLEtBQUEsVUFBQTtBQUFBLFdBQW9CLE9BQUk7O01BQUE7S0FBQSxVQUFBO0tBQUEsRUFBQSxNQUFBLDJCQUFBOzs7Ozs7Ozs7QUFwQlEsU0FBQSxPQUFPOzs7OztHQU12QyxJQUFXLFFBQVEsT0FBYztBQUMvQixTQUFLLFdBQVcsQ0FBQyxDQUFDO0FBRWxCLFNBQUssWUFBWSxXQUFXLEtBQUssUUFBUTtBQUN6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
@@ -1 +1 @@
1
- {"version":3,"file":"named-slot-list-mixin.d.ts","sourceRoot":"","sources":["../../../../../src/elements/core/mixins/named-slot-list-mixin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,UAAU,EAAW,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAG1E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAqB,KAAK,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAErF,OAAO,6BAA6B,CAAC;AAKrC,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,OAAO,CAAC;CACrB;AAED;;;;;;;;;;GAUG;AACH,MAAM,MAAM,gBAAgB,CAC1B,CAAC,SAAS,yBAAyB,CAAC,CAAC,CAAC,EACtC,CAAC,SAAS,WAAW,GAAG,WAAW,IACjC,CAAC,GAAG;IAAE,YAAY,EAAE,CAAC,EAAE,CAAA;CAAE,CAAC;AAE9B,MAAM,CAAC,OAAO,CAAC,QAAQ,OAAO,yBAAyB,CACrD,CAAC,SAAS,WAAW,CACrB,SAAQ,qBAAqB;IAC7B,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,EAAE,CAAC;IAC1D,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC,EAAE,CAAC;IACrC,SAAS,CAAC,UAAU,CAClB,UAAU,CAAC,EAAE;QACX,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,cAAc,CAAC,EAAE,MAAM,CAAC;KACzB,EACD,kBAAkB,CAAC,EAAE;QACnB,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;KAChC,GACA,cAAc;IACjB,SAAS,CAAC,eAAe,IAAI,sBAAsB,EAAE;IACrD,SAAS,CAAC,gBAAgB,IAAI,cAAc;CAC7C;AAGD,eAAO,MAAM,qBAAqB,GAChC,CAAC,SAAS,WAAW,EACrB,CAAC,SAAS,mBAAmB,CAAC,UAAU,CAAC,EAEzC,YAAY,CAAC,KACZ,mBAAmB,CAAC,yBAAyB,CAAC,CAAC,CAAC,CAAC,GAAG,CA2ItD,CAAC"}
1
+ {"version":3,"file":"named-slot-list-mixin.d.ts","sourceRoot":"","sources":["../../../../../src/elements/core/mixins/named-slot-list-mixin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,UAAU,EAAgC,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAG/F,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAqB,KAAK,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAErF,OAAO,6BAA6B,CAAC;AAKrC,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,OAAO,CAAC;CACrB;AAED;;;;;;;;;;GAUG;AACH,MAAM,MAAM,gBAAgB,CAC1B,CAAC,SAAS,yBAAyB,CAAC,CAAC,CAAC,EACtC,CAAC,SAAS,WAAW,GAAG,WAAW,IACjC,CAAC,GAAG;IAAE,YAAY,EAAE,CAAC,EAAE,CAAA;CAAE,CAAC;AAE9B,MAAM,CAAC,OAAO,CAAC,QAAQ,OAAO,yBAAyB,CACrD,CAAC,SAAS,WAAW,CACrB,SAAQ,qBAAqB;IAC7B,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,EAAE,CAAC;IAC1D,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC,EAAE,CAAC;IACrC,SAAS,CAAC,UAAU,CAClB,UAAU,CAAC,EAAE;QACX,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,cAAc,CAAC,EAAE,MAAM,CAAC;KACzB,EACD,kBAAkB,CAAC,EAAE;QACnB,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;KAChC,GACA,cAAc;IACjB,SAAS,CAAC,eAAe,IAAI,sBAAsB,EAAE;IACrD,SAAS,CAAC,gBAAgB,IAAI,cAAc;CAC7C;AAGD,eAAO,MAAM,qBAAqB,GAChC,CAAC,SAAS,WAAW,EACrB,CAAC,SAAS,mBAAmB,CAAC,UAAU,CAAC,EAEzC,YAAY,CAAC,KACZ,mBAAmB,CAAC,yBAAyB,CAAC,CAAC,CAAC,CAAC,GAAG,CAsJtD,CAAC"}
@@ -22,7 +22,6 @@ var SbbNamedSlotListMixin = (superClass) => {
22
22
  if (listChildren.length === this.listChildren.length && this.listChildren.every((e, i) => listChildren[i] === e)) return;
23
23
  this.listChildren.filter((c) => !listChildren.includes(c)).forEach((c) => c.removeAttribute("slot"));
24
24
  this.listChildren = listChildren;
25
- this.listChildren.forEach((c, index) => c.setAttribute("slot", `${SLOTNAME_PREFIX}-${index}`));
26
25
  this.removeAttribute(SSR_CHILD_COUNT_ATTRIBUTE);
27
26
  });
28
27
  }
@@ -70,6 +69,10 @@ var SbbNamedSlotListMixin = (superClass) => {
70
69
  super.disconnectedCallback();
71
70
  this.shadowRoot?.removeEventListener("slotchange", this._handleSlotchange);
72
71
  }
72
+ updated(changedProperties) {
73
+ super.updated(changedProperties);
74
+ if (changedProperties.has("listChildren")) this.listChildren.forEach((c, index) => c.setAttribute("slot", `${SLOTNAME_PREFIX}-${index}`));
75
+ }
73
76
  /**
74
77
  * Renders list and list slots for slotted children or a number of list slots
75
78
  * corresponding to the `data-ssr-child-count` attribute value.
@@ -133,4 +136,4 @@ var SbbNamedSlotListMixin = (superClass) => {
133
136
  //#endregion
134
137
  export { SbbNamedSlotListMixin };
135
138
 
136
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmFtZWQtc2xvdC1saXN0LW1peGluLmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb3JlL21peGlucy9uYW1lZC1zbG90LWxpc3QtbWl4aW4udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaHRtbCwgdHlwZSBMaXRFbGVtZW50LCBub3RoaW5nLCB0eXBlIFRlbXBsYXRlUmVzdWx0IH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IHN0YXRlIH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuXG5pbXBvcnQgdHlwZSB7IEFic3RyYWN0Q29uc3RydWN0b3IgfSBmcm9tICcuL2NvbnN0cnVjdG9yLnRzJztcbmltcG9ydCB7IFNiYkh5ZHJhdGlvbk1peGluLCB0eXBlIFNiYkh5ZHJhdGlvbk1peGluVHlwZSB9IGZyb20gJy4vaHlkcmF0aW9uLW1peGluLnRzJztcblxuaW1wb3J0ICcuLi8uLi9zY3JlZW4tcmVhZGVyLW9ubHkudHMnO1xuXG5jb25zdCBTU1JfQ0hJTERfQ09VTlRfQVRUUklCVVRFID0gJ2RhdGEtc3NyLWNoaWxkLWNvdW50JztcbmNvbnN0IFNMT1ROQU1FX1BSRUZJWCA9ICdsaSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2JiTmFtZWRTbG90UHJvcGVydGllcyB7XG4gIG5hbWU6IHN0cmluZztcbiAgYXJpYUhpZGRlbjogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBIZWxwZXIgdHlwZSBmb3Igd2lsbFVwZGF0ZSBvciBzaW1pbGFyIGNoZWNrcy5cbiAqIEFsbG93cyB0aGUgdXNhZ2Ugb2YgdGhlIHN0cmluZyBsaXRlcmFsICdsaXN0Q2hpbGRyZW4nLlxuICpcbiAqIEBleGFtcGxlXG4gKiBwcm90ZWN0ZWQgb3ZlcnJpZGUgd2lsbFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXM8V2l0aExpc3RDaGlsZHJlbjx0aGlzPj4pOiB2b2lkIHtcbiAqICAgaWYgKGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygnbGlzdENoaWxkcmVuJykpIHtcbiAqICAgICAuLi5cbiAqICAgfVxuICogfVxuICovXG5leHBvcnQgdHlwZSBXaXRoTGlzdENoaWxkcmVuPFxuICBUIGV4dGVuZHMgU2JiTmFtZWRTbG90TGlzdE1peGluVHlwZTxDPixcbiAgQyBleHRlbmRzIEhUTUxFbGVtZW50ID0gSFRNTEVsZW1lbnQsXG4+ID0gVCAmIHsgbGlzdENoaWxkcmVuOiBDW10gfTtcblxuZXhwb3J0IGRlY2xhcmUgYWJzdHJhY3QgY2xhc3MgU2JiTmFtZWRTbG90TGlzdE1peGluVHlwZTxcbiAgQyBleHRlbmRzIEhUTUxFbGVtZW50LFxuPiBleHRlbmRzIFNiYkh5ZHJhdGlvbk1peGluVHlwZSB7XG4gIHByb3RlY3RlZCBhYnN0cmFjdCByZWFkb25seSBsaXN0Q2hpbGRMb2NhbE5hbWVzOiBzdHJpbmdbXTtcbiAgcHJvdGVjdGVkIGFjY2Vzc29yIGxpc3RDaGlsZHJlbjogQ1tdO1xuICBwcm90ZWN0ZWQgcmVuZGVyTGlzdChcbiAgICBhdHRyaWJ1dGVzPzoge1xuICAgICAgY2xhc3M/OiBzdHJpbmc7XG4gICAgICBhcmlhTGFiZWw/OiBzdHJpbmc7XG4gICAgICBhcmlhTGFiZWxsZWRieT86IHN0cmluZztcbiAgICB9LFxuICAgIGxpc3RJdGVtQXR0cmlidXRlcz86IHtcbiAgICAgIGxvY2FsTmFtZVZpc3VhbE9ubHk/OiBzdHJpbmdbXTtcbiAgICB9LFxuICApOiBUZW1wbGF0ZVJlc3VsdDtcbiAgcHJvdGVjdGVkIGxpc3RTbG90RW50cmllcygpOiBTYmJOYW1lZFNsb3RQcm9wZXJ0aWVzW107XG4gIHByb3RlY3RlZCByZW5kZXJIaWRkZW5TbG90KCk6IFRlbXBsYXRlUmVzdWx0O1xufVxuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG5leHBvcnQgY29uc3QgU2JiTmFtZWRTbG90TGlzdE1peGluID0gPFxuICBDIGV4dGVuZHMgSFRNTEVsZW1lbnQsXG4gIFQgZXh0ZW5kcyBBYnN0cmFjdENvbnN0cnVjdG9yPExpdEVsZW1lbnQ+LFxuPihcbiAgc3VwZXJDbGFzczogVCxcbik6IEFic3RyYWN0Q29uc3RydWN0b3I8U2JiTmFtZWRTbG90TGlzdE1peGluVHlwZTxDPj4gJiBUID0+IHtcbiAgLy8gVE9ETyhicmVha2luZy1jaGFuZ2UpOiBSZW1vdmUgU2JiRWxlbWVudEludGVybmFsc01peGluIGFuZCBkZXBlbmQgb24gU2JiRWxlbWVudCBhcyBiYXNlIGNsYXNzIGluc3RlYWQgb2YgTGl0RWxlbWVudFxuICBjb25zdCBjb25kaXRpb25hbFN1cGVyQ2xhc3MgPSAoc3VwZXJDbGFzcyBhcyB1bmtub3duIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+KVsnXyRzYmJFbGVtZW50JCddXG4gICAgPyAoc3VwZXJDbGFzcyBhcyB1bmtub3duIGFzIEFic3RyYWN0Q29uc3RydWN0b3I8U2JiSHlkcmF0aW9uTWl4aW5UeXBlPiAmIFQpXG4gICAgOiBTYmJIeWRyYXRpb25NaXhpbihzdXBlckNsYXNzKTtcblxuICAvKipcbiAgICogVGhpcyBiYXNlIGNsYXNzIHByb3ZpZGVzIG5hbWVkIHNsb3QgbGlzdCBvYnNlcnZlciBmdW5jdGlvbmFsaXR5LlxuICAgKiBUaGlzIGFsbG93cyB1c2luZyB0aGUgcGF0dGVybiBvZiByZW5kZXJpbmcgYSBuYW1lZCBzbG90IGZvciBlYWNoIGNoaWxkLCB3aGljaCBhbGxvd3NcbiAgICogd3JhcHBpbmcgY2hpbGRyZW4gaW4gYW4gdWwvbGkgbGlzdC5cbiAgICovXG4gIGFic3RyYWN0IGNsYXNzIE5hbWVkU2xvdExpc3RFbGVtZW50PEMgZXh0ZW5kcyBIVE1MRWxlbWVudCA9IEhUTUxFbGVtZW50PlxuICAgIGV4dGVuZHMgY29uZGl0aW9uYWxTdXBlckNsYXNzXG4gICAgaW1wbGVtZW50cyBQYXJ0aWFsPFNiYk5hbWVkU2xvdExpc3RNaXhpblR5cGU8Qz4+XG4gIHtcbiAgICAvKiogQSBsaXN0IG9mIGxvd2VyLWNhc2VkIHRhZyBuYW1lcyB0byBtYXRjaCBhZ2FpbnN0LiAoZS5nLiBgc2JiLWxpbmtgKSAqL1xuICAgIHByb3RlY3RlZCBhYnN0cmFjdCByZWFkb25seSBsaXN0Q2hpbGRMb2NhbE5hbWVzOiBzdHJpbmdbXTtcblxuICAgIC8qKlxuICAgICAqIEEgbGlzdCBvZiBjaGlsZHJlbiB3aXRoIHRoZSBkZWZpbmVkIHRhZyBuYW1lcy5cbiAgICAgKiBUaGlzIGFycmF5IGlzIG9ubHkgdXBkYXRlZCBpZiB0aGVyZSBpcyBhbiBhY3R1YWwgY2hhbmdlXG4gICAgICogdG8gdGhlIGNoaWxkIGVsZW1lbnRzLlxuICAgICAqL1xuICAgIEBzdGF0ZSgpIHByb3RlY3RlZCBhY2Nlc3NvciBsaXN0Q2hpbGRyZW46IENbXSA9IFtdO1xuXG4gICAgcHVibGljIG92ZXJyaWRlIGNvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgICAgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKTtcbiAgICAgIHRoaXMuc2hhZG93Um9vdD8uYWRkRXZlbnRMaXN0ZW5lcignc2xvdGNoYW5nZScsIHRoaXMuX2hhbmRsZVNsb3RjaGFuZ2UsIHsgcGFzc2l2ZTogdHJ1ZSB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb3ZlcnJpZGUgZGlzY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgICBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpO1xuICAgICAgdGhpcy5zaGFkb3dSb290Py5yZW1vdmVFdmVudExpc3RlbmVyKCdzbG90Y2hhbmdlJywgdGhpcy5faGFuZGxlU2xvdGNoYW5nZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfaGFuZGxlU2xvdGNoYW5nZSA9ICgpOiB2b2lkID0+IHtcbiAgICAgIGNvbnN0IGxpc3RDaGlsZHJlbiA9IEFycmF5LmZyb20odGhpcy5jaGlsZHJlbiA/PyBbXSkuZmlsdGVyKChlKTogZSBpcyBDID0+XG4gICAgICAgIHRoaXMubGlzdENoaWxkTG9jYWxOYW1lcy5pbmNsdWRlcyhlLmxvY2FsTmFtZSksXG4gICAgICApO1xuICAgICAgLy8gSWYgdGhlIHNsb3R0ZWQgY2hpbGQgaW5zdGFuY2VzIGhhdmUgbm90IGNoYW5nZWQsIHdlIGNhbiBza2lwIHN5bmNpbmcgYW5kIHVwZGF0aW5nXG4gICAgICAvLyB0aGUgbGluayByZWZlcmVuY2UgbGlzdC5cbiAgICAgIGlmIChcbiAgICAgICAgbGlzdENoaWxkcmVuLmxlbmd0aCA9PT0gdGhpcy5saXN0Q2hpbGRyZW4ubGVuZ3RoICYmXG4gICAgICAgIHRoaXMubGlzdENoaWxkcmVuLmV2ZXJ5KChlLCBpKSA9PiBsaXN0Q2hpbGRyZW5baV0gPT09IGUpXG4gICAgICApIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmxpc3RDaGlsZHJlblxuICAgICAgICAuZmlsdGVyKChjKSA9PiAhbGlzdENoaWxkcmVuLmluY2x1ZGVzKGMpKVxuICAgICAgICAuZm9yRWFjaCgoYykgPT4gYy5yZW1vdmVBdHRyaWJ1dGUoJ3Nsb3QnKSk7XG4gICAgICB0aGlzLmxpc3RDaGlsZHJlbiA9IGxpc3RDaGlsZHJlbjtcbiAgICAgIHRoaXMubGlzdENoaWxkcmVuLmZvckVhY2goKGMsIGluZGV4KSA9PlxuICAgICAgICBjLnNldEF0dHJpYnV0ZSgnc2xvdCcsIGAke1NMT1ROQU1FX1BSRUZJWH0tJHtpbmRleH1gKSxcbiAgICAgICk7XG5cbiAgICAgIC8vIFJlbW92ZSB0aGUgc3NyIGF0dHJpYnV0ZSwgb25jZSB3ZSBoYXZlIGFjdHVhbGx5IGluaXRpYWxpemVkIHRoZSBjaGlsZHJlbiBlbGVtZW50cy5cbiAgICAgIHRoaXMucmVtb3ZlQXR0cmlidXRlKFNTUl9DSElMRF9DT1VOVF9BVFRSSUJVVEUpO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBSZW5kZXJzIGxpc3QgYW5kIGxpc3Qgc2xvdHMgZm9yIHNsb3R0ZWQgY2hpbGRyZW4gb3IgYSBudW1iZXIgb2YgbGlzdCBzbG90c1xuICAgICAqIGNvcnJlc3BvbmRpbmcgdG8gdGhlIGBkYXRhLXNzci1jaGlsZC1jb3VudGAgYXR0cmlidXRlIHZhbHVlLlxuICAgICAqXG4gICAgICogVGhpcyBpcyBhIHBvc3NpYmxlIG9wdGltaXphdGlvbiBmb3IgU1NSLCBhcyBpbiBhbiBTU1IgTGl0IGVudmlyb25tZW50XG4gICAgICogb3RoZXIgZWxlbWVudHMgYXJlIG5vdCBhdmFpbGFibGUsIGJ1dCBtaWdodCBiZSBhdmFpbGFibGUgaW4gdGhlIG1ldGFcbiAgICAgKiBmcmFtZXdvcmsgd3JhcHBlciAobGlrZSBlLmcuIFJlYWN0KS4gVGhpcyBhbGxvd3MgdG8gcHJvdmlkZSB0aGUgbnVtYmVyIG9mXG4gICAgICogY2hpbGRyZW4gdG8gYmUgcGFzc2VkIHZpYSB0aGUgYGRhdGEtc3NyLWNoaWxkLWNvdW50YCBhdHRyaWJ1dGUgdmFsdWUuXG4gICAgICovXG4gICAgcHJvdGVjdGVkIHJlbmRlckxpc3QoXG4gICAgICBhdHRyaWJ1dGVzOiB7IGNsYXNzPzogc3RyaW5nOyBhcmlhTGFiZWw/OiBzdHJpbmc7IGFyaWFMYWJlbGxlZGJ5Pzogc3RyaW5nIH0gPSB7fSxcbiAgICAgIGxpc3RJdGVtQXR0cmlidXRlczogeyBsb2NhbE5hbWVWaXN1YWxPbmx5Pzogc3RyaW5nW10gfSA9IHt9LFxuICAgICk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICAgIGNvbnN0IGxpc3RTbG90TmFtZXM6IFNiYk5hbWVkU2xvdFByb3BlcnRpZXNbXSA9IHRoaXMubGlzdFNsb3RFbnRyaWVzKGxpc3RJdGVtQXR0cmlidXRlcyk7XG5cbiAgICAgIGlmIChsaXN0U2xvdE5hbWVzLmxlbmd0aCA+PSAyKSB7XG4gICAgICAgIHJldHVybiBodG1sYFxuICAgICAgICAgIDx1bFxuICAgICAgICAgICAgY2xhc3M9JHthdHRyaWJ1dGVzLmNsYXNzIHx8IHRoaXMubG9jYWxOYW1lfVxuICAgICAgICAgICAgYXJpYS1sYWJlbD0ke2F0dHJpYnV0ZXMuYXJpYUxhYmVsIHx8IG5vdGhpbmd9XG4gICAgICAgICAgICBhcmlhLWxhYmVsbGVkYnk9JHthdHRyaWJ1dGVzLmFyaWFMYWJlbGxlZGJ5IHx8IG5vdGhpbmd9XG4gICAgICAgICAgPlxuICAgICAgICAgICAgJHtsaXN0U2xvdE5hbWVzLm1hcChcbiAgICAgICAgICAgICAgKHNsb3QpID0+IGh0bWxgXG4gICAgICAgICAgICAgICAgPGxpIGFyaWEtaGlkZGVuPSR7c2xvdC5hcmlhSGlkZGVuIHx8IG5vdGhpbmd9PlxuICAgICAgICAgICAgICAgICAgPHNsb3QgbmFtZT0ke3Nsb3QubmFtZX0+PC9zbG90PlxuICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgIGAsXG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgJHt0aGlzLnJlbmRlckhpZGRlblNsb3QoKX1cbiAgICAgICAgYDtcbiAgICAgIH0gZWxzZSBpZiAobGlzdFNsb3ROYW1lcy5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgcmV0dXJuIGh0bWxgPHNiYi1zY3JlZW4tcmVhZGVyLW9ubHk+JHthdHRyaWJ1dGVzLmFyaWFMYWJlbH08L3NiYi1zY3JlZW4tcmVhZGVyLW9ubHk+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9JHthdHRyaWJ1dGVzLmNsYXNzIHx8IHRoaXMubG9jYWxOYW1lfT5cbiAgICAgICAgICAgIDxzcGFuPjxzbG90IG5hbWU9JHtsaXN0U2xvdE5hbWVzWzBdLm5hbWV9Pjwvc2xvdD48L3NwYW4+XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICR7dGhpcy5yZW5kZXJIaWRkZW5TbG90KCl9IGA7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gdGhpcy5yZW5kZXJIaWRkZW5TbG90KCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyBhbiBhcnJheSBvZiBTYmJOYW1lZFNsb3RQcm9wZXJ0aWVzLCB3aGljaCBob2xkcyB0aGUgbGlzdCBzbG90IG5hbWVzIGFuZCB0aGUgaGlkZGVuIHByb3BlcnR5O1xuICAgICAqIGl0cyBsZW5ndGggY29ycmVzcG9uZHMgdG8gdGhlIG51bWJlciBvZiBtYXRjaGVkIGNoaWxkcmVuIG9yIHRoZSBgZGF0YS1zc3ItY2hpbGQtY291bnRgIGF0dHJpYnV0ZSB2YWx1ZS5cbiAgICAgKlxuICAgICAqIFRoaXMgaXMgYSBwb3NzaWJsZSBvcHRpbWl6YXRpb24gZm9yIFNTUiwgYXMgaW4gYW4gU1NSIExpdCBlbnZpcm9ubWVudFxuICAgICAqIG90aGVyIGVsZW1lbnRzIGFyZSBub3QgYXZhaWxhYmxlLCBidXQgbWlnaHQgYmUgYXZhaWxhYmxlIGluIHRoZSBtZXRhXG4gICAgICogZnJhbWV3b3JrIHdyYXBwZXIgKGxpa2UgZS5nLiBSZWFjdCkuIFRoaXMgYWxsb3dzIHRvIHByb3ZpZGUgdGhlIG51bWJlciBvZlxuICAgICAqIGNoaWxkcmVuIHRvIGJlIHBhc3NlZCB2aWEgdGhlIGBkYXRhLXNzci1jaGlsZC1jb3VudGAgYXR0cmlidXRlIHZhbHVlLlxuICAgICAqL1xuICAgIHByb3RlY3RlZCBsaXN0U2xvdEVudHJpZXMobGlzdEl0ZW1BdHRyaWJ1dGVzOiB7XG4gICAgICBsb2NhbE5hbWVWaXN1YWxPbmx5Pzogc3RyaW5nW107XG4gICAgfSk6IFNiYk5hbWVkU2xvdFByb3BlcnRpZXNbXSB7XG4gICAgICBjb25zdCBsaXN0Q2hpbGRyZW4gPSB0aGlzLmxpc3RDaGlsZHJlbi5sZW5ndGhcbiAgICAgICAgPyB0aGlzLmxpc3RDaGlsZHJlblxuICAgICAgICA6IEFycmF5LmZyb20oeyBsZW5ndGg6ICsodGhpcy5nZXRBdHRyaWJ1dGUoU1NSX0NISUxEX0NPVU5UX0FUVFJJQlVURSkgPz8gMCkgfSk7XG4gICAgICByZXR1cm4gbGlzdENoaWxkcmVuLm1hcCgoZSwgaSkgPT4ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIG5hbWU6IGAke1NMT1ROQU1FX1BSRUZJWH0tJHtpfWAsXG4gICAgICAgICAgYXJpYUhpZGRlbjpcbiAgICAgICAgICAgIGxpc3RJdGVtQXR0cmlidXRlcz8ubG9jYWxOYW1lVmlzdWFsT25seT8uaW5jbHVkZXMoKGUgYXMgSFRNTEVsZW1lbnQpLmxvY2FsTmFtZSkgPz9cbiAgICAgICAgICAgIGZhbHNlLFxuICAgICAgICB9O1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyBhIGhpZGRlbiBzbG90LCB3aGljaCBpcyBpbnRlbmRlZCBhcyB0aGUgY2hpbGRyZW4gY2hhbmdlIGRldGVjdGlvbi5cbiAgICAgKiBXaGVuIGFuIGVsZW1lbnQgd2l0aG91dCBhIHNsb3QgYXR0cmlidXRlIGlzIHNsb3R0ZWQgdG8gdGhlIGVsZW1lbnQsIGl0IHRyaWdnZXJzXG4gICAgICogdGhlIHNsb3RjaGFuZ2UgZXZlbnQsIHdoaWNoIGNhbiBiZSB1c2VkIHRvIGFzc2lnbiBpdCB0byB0aGUgYXBwcm9wcmlhdGUgbmFtZWQgc2xvdC5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgcmVuZGVySGlkZGVuU2xvdCgpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgICByZXR1cm4gaHRtbGA8c3BhbiBoaWRkZW4+PHNsb3Q+PC9zbG90Pjwvc3Bhbj5gO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBOYW1lZFNsb3RMaXN0RWxlbWVudCBhcyB1bmtub3duIGFzIEFic3RyYWN0Q29uc3RydWN0b3I8U2JiTmFtZWRTbG90TGlzdE1peGluVHlwZTxDPj4gJiBUO1xufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBUUEsSUFBTSw0QkFBNEI7QUFDbEMsSUFBTSxrQkFBa0I7QUEyQ3hCLElBQWEseUJBSVgsZUFDeUQ7Q0FFekQsTUFBTSx3QkFBeUIsV0FBa0QsbUJBQzVFLGFBQ0Qsa0JBQWtCLFdBQVc7QUFzSWpDLGVBL0htQztvQkFDekI7Ozs7ZUFESyw2QkFDTCxZQUFxQjs7O0FBV0QsVUFBQSxnQ0FBQSxrQkFBQSxNQUFBLDRCQUFvQixFQUFFLENBQUE7QUFZMUMsU0FBQSxxQkFBaUIsa0JBQUEsTUFBQSxnQ0FBQSxRQUFjO0tBQ3JDLE1BQU0sZUFBZSxNQUFNLEtBQUssS0FBSyxZQUFZLEVBQUUs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
139
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmFtZWQtc2xvdC1saXN0LW1peGluLmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb3JlL21peGlucy9uYW1lZC1zbG90LWxpc3QtbWl4aW4udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaHRtbCwgdHlwZSBMaXRFbGVtZW50LCBub3RoaW5nLCB0eXBlIFByb3BlcnR5VmFsdWVzLCB0eXBlIFRlbXBsYXRlUmVzdWx0IH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IHN0YXRlIH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuXG5pbXBvcnQgdHlwZSB7IEFic3RyYWN0Q29uc3RydWN0b3IgfSBmcm9tICcuL2NvbnN0cnVjdG9yLnRzJztcbmltcG9ydCB7IFNiYkh5ZHJhdGlvbk1peGluLCB0eXBlIFNiYkh5ZHJhdGlvbk1peGluVHlwZSB9IGZyb20gJy4vaHlkcmF0aW9uLW1peGluLnRzJztcblxuaW1wb3J0ICcuLi8uLi9zY3JlZW4tcmVhZGVyLW9ubHkudHMnO1xuXG5jb25zdCBTU1JfQ0hJTERfQ09VTlRfQVRUUklCVVRFID0gJ2RhdGEtc3NyLWNoaWxkLWNvdW50JztcbmNvbnN0IFNMT1ROQU1FX1BSRUZJWCA9ICdsaSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2JiTmFtZWRTbG90UHJvcGVydGllcyB7XG4gIG5hbWU6IHN0cmluZztcbiAgYXJpYUhpZGRlbjogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBIZWxwZXIgdHlwZSBmb3Igd2lsbFVwZGF0ZSBvciBzaW1pbGFyIGNoZWNrcy5cbiAqIEFsbG93cyB0aGUgdXNhZ2Ugb2YgdGhlIHN0cmluZyBsaXRlcmFsICdsaXN0Q2hpbGRyZW4nLlxuICpcbiAqIEBleGFtcGxlXG4gKiBwcm90ZWN0ZWQgb3ZlcnJpZGUgd2lsbFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXM8V2l0aExpc3RDaGlsZHJlbjx0aGlzPj4pOiB2b2lkIHtcbiAqICAgaWYgKGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygnbGlzdENoaWxkcmVuJykpIHtcbiAqICAgICAuLi5cbiAqICAgfVxuICogfVxuICovXG5leHBvcnQgdHlwZSBXaXRoTGlzdENoaWxkcmVuPFxuICBUIGV4dGVuZHMgU2JiTmFtZWRTbG90TGlzdE1peGluVHlwZTxDPixcbiAgQyBleHRlbmRzIEhUTUxFbGVtZW50ID0gSFRNTEVsZW1lbnQsXG4+ID0gVCAmIHsgbGlzdENoaWxkcmVuOiBDW10gfTtcblxuZXhwb3J0IGRlY2xhcmUgYWJzdHJhY3QgY2xhc3MgU2JiTmFtZWRTbG90TGlzdE1peGluVHlwZTxcbiAgQyBleHRlbmRzIEhUTUxFbGVtZW50LFxuPiBleHRlbmRzIFNiYkh5ZHJhdGlvbk1peGluVHlwZSB7XG4gIHByb3RlY3RlZCBhYnN0cmFjdCByZWFkb25seSBsaXN0Q2hpbGRMb2NhbE5hbWVzOiBzdHJpbmdbXTtcbiAgcHJvdGVjdGVkIGFjY2Vzc29yIGxpc3RDaGlsZHJlbjogQ1tdO1xuICBwcm90ZWN0ZWQgcmVuZGVyTGlzdChcbiAgICBhdHRyaWJ1dGVzPzoge1xuICAgICAgY2xhc3M/OiBzdHJpbmc7XG4gICAgICBhcmlhTGFiZWw/OiBzdHJpbmc7XG4gICAgICBhcmlhTGFiZWxsZWRieT86IHN0cmluZztcbiAgICB9LFxuICAgIGxpc3RJdGVtQXR0cmlidXRlcz86IHtcbiAgICAgIGxvY2FsTmFtZVZpc3VhbE9ubHk/OiBzdHJpbmdbXTtcbiAgICB9LFxuICApOiBUZW1wbGF0ZVJlc3VsdDtcbiAgcHJvdGVjdGVkIGxpc3RTbG90RW50cmllcygpOiBTYmJOYW1lZFNsb3RQcm9wZXJ0aWVzW107XG4gIHByb3RlY3RlZCByZW5kZXJIaWRkZW5TbG90KCk6IFRlbXBsYXRlUmVzdWx0O1xufVxuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG5leHBvcnQgY29uc3QgU2JiTmFtZWRTbG90TGlzdE1peGluID0gPFxuICBDIGV4dGVuZHMgSFRNTEVsZW1lbnQsXG4gIFQgZXh0ZW5kcyBBYnN0cmFjdENvbnN0cnVjdG9yPExpdEVsZW1lbnQ+LFxuPihcbiAgc3VwZXJDbGFzczogVCxcbik6IEFic3RyYWN0Q29uc3RydWN0b3I8U2JiTmFtZWRTbG90TGlzdE1peGluVHlwZTxDPj4gJiBUID0+IHtcbiAgLy8gVE9ETyhicmVha2luZy1jaGFuZ2UpOiBSZW1vdmUgU2JiRWxlbWVudEludGVybmFsc01peGluIGFuZCBkZXBlbmQgb24gU2JiRWxlbWVudCBhcyBiYXNlIGNsYXNzIGluc3RlYWQgb2YgTGl0RWxlbWVudFxuICBjb25zdCBjb25kaXRpb25hbFN1cGVyQ2xhc3MgPSAoc3VwZXJDbGFzcyBhcyB1bmtub3duIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+KVsnXyRzYmJFbGVtZW50JCddXG4gICAgPyAoc3VwZXJDbGFzcyBhcyB1bmtub3duIGFzIEFic3RyYWN0Q29uc3RydWN0b3I8U2JiSHlkcmF0aW9uTWl4aW5UeXBlPiAmIFQpXG4gICAgOiBTYmJIeWRyYXRpb25NaXhpbihzdXBlckNsYXNzKTtcblxuICAvKipcbiAgICogVGhpcyBiYXNlIGNsYXNzIHByb3ZpZGVzIG5hbWVkIHNsb3QgbGlzdCBvYnNlcnZlciBmdW5jdGlvbmFsaXR5LlxuICAgKiBUaGlzIGFsbG93cyB1c2luZyB0aGUgcGF0dGVybiBvZiByZW5kZXJpbmcgYSBuYW1lZCBzbG90IGZvciBlYWNoIGNoaWxkLCB3aGljaCBhbGxvd3NcbiAgICogd3JhcHBpbmcgY2hpbGRyZW4gaW4gYW4gdWwvbGkgbGlzdC5cbiAgICovXG4gIGFic3RyYWN0IGNsYXNzIE5hbWVkU2xvdExpc3RFbGVtZW50PEMgZXh0ZW5kcyBIVE1MRWxlbWVudCA9IEhUTUxFbGVtZW50PlxuICAgIGV4dGVuZHMgY29uZGl0aW9uYWxTdXBlckNsYXNzXG4gICAgaW1wbGVtZW50cyBQYXJ0aWFsPFNiYk5hbWVkU2xvdExpc3RNaXhpblR5cGU8Qz4+XG4gIHtcbiAgICAvKiogQSBsaXN0IG9mIGxvd2VyLWNhc2VkIHRhZyBuYW1lcyB0byBtYXRjaCBhZ2FpbnN0LiAoZS5nLiBgc2JiLWxpbmtgKSAqL1xuICAgIHByb3RlY3RlZCBhYnN0cmFjdCByZWFkb25seSBsaXN0Q2hpbGRMb2NhbE5hbWVzOiBzdHJpbmdbXTtcblxuICAgIC8qKlxuICAgICAqIEEgbGlzdCBvZiBjaGlsZHJlbiB3aXRoIHRoZSBkZWZpbmVkIHRhZyBuYW1lcy5cbiAgICAgKiBUaGlzIGFycmF5IGlzIG9ubHkgdXBkYXRlZCBpZiB0aGVyZSBpcyBhbiBhY3R1YWwgY2hhbmdlXG4gICAgICogdG8gdGhlIGNoaWxkIGVsZW1lbnRzLlxuICAgICAqL1xuICAgIEBzdGF0ZSgpIHByb3RlY3RlZCBhY2Nlc3NvciBsaXN0Q2hpbGRyZW46IENbXSA9IFtdO1xuXG4gICAgcHVibGljIG92ZXJyaWRlIGNvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgICAgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKTtcbiAgICAgIHRoaXMuc2hhZG93Um9vdD8uYWRkRXZlbnRMaXN0ZW5lcignc2xvdGNoYW5nZScsIHRoaXMuX2hhbmRsZVNsb3RjaGFuZ2UsIHsgcGFzc2l2ZTogdHJ1ZSB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb3ZlcnJpZGUgZGlzY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgICBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpO1xuICAgICAgdGhpcy5zaGFkb3dSb290Py5yZW1vdmVFdmVudExpc3RlbmVyKCdzbG90Y2hhbmdlJywgdGhpcy5faGFuZGxlU2xvdGNoYW5nZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfaGFuZGxlU2xvdGNoYW5nZSA9ICgpOiB2b2lkID0+IHtcbiAgICAgIGNvbnN0IGxpc3RDaGlsZHJlbiA9IEFycmF5LmZyb20odGhpcy5jaGlsZHJlbiA/PyBbXSkuZmlsdGVyKChlKTogZSBpcyBDID0+XG4gICAgICAgIHRoaXMubGlzdENoaWxkTG9jYWxOYW1lcy5pbmNsdWRlcyhlLmxvY2FsTmFtZSksXG4gICAgICApO1xuICAgICAgLy8gSWYgdGhlIHNsb3R0ZWQgY2hpbGQgaW5zdGFuY2VzIGhhdmUgbm90IGNoYW5nZWQsIHdlIGNhbiBza2lwIHN5bmNpbmcgYW5kIHVwZGF0aW5nXG4gICAgICAvLyB0aGUgbGluayByZWZlcmVuY2UgbGlzdC5cbiAgICAgIGlmIChcbiAgICAgICAgbGlzdENoaWxkcmVuLmxlbmd0aCA9PT0gdGhpcy5saXN0Q2hpbGRyZW4ubGVuZ3RoICYmXG4gICAgICAgIHRoaXMubGlzdENoaWxkcmVuLmV2ZXJ5KChlLCBpKSA9PiBsaXN0Q2hpbGRyZW5baV0gPT09IGUpXG4gICAgICApIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmxpc3RDaGlsZHJlblxuICAgICAgICAuZmlsdGVyKChjKSA9PiAhbGlzdENoaWxkcmVuLmluY2x1ZGVzKGMpKVxuICAgICAgICAuZm9yRWFjaCgoYykgPT4gYy5yZW1vdmVBdHRyaWJ1dGUoJ3Nsb3QnKSk7XG4gICAgICB0aGlzLmxpc3RDaGlsZHJlbiA9IGxpc3RDaGlsZHJlbjtcblxuICAgICAgLy8gUmVtb3ZlIHRoZSBzc3IgYXR0cmlidXRlLCBvbmNlIHdlIGhhdmUgYWN0dWFsbHkgaW5pdGlhbGl6ZWQgdGhlIGNoaWxkcmVuIGVsZW1lbnRzLlxuICAgICAgdGhpcy5yZW1vdmVBdHRyaWJ1dGUoU1NSX0NISUxEX0NPVU5UX0FUVFJJQlVURSk7XG4gICAgfTtcblxuICAgIHByb3RlY3RlZCBvdmVycmlkZSB1cGRhdGVkKFxuICAgICAgY2hhbmdlZFByb3BlcnRpZXM6IFByb3BlcnR5VmFsdWVzPHRoaXMgJiB7IGxpc3RDaGlsZHJlbjogQ1tdIH0+LFxuICAgICk6IHZvaWQge1xuICAgICAgc3VwZXIudXBkYXRlZChjaGFuZ2VkUHJvcGVydGllcyk7XG5cbiAgICAgIGlmIChjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ2xpc3RDaGlsZHJlbicpKSB7XG4gICAgICAgIC8vIElmIHlvdSBhc3NpZ24gYSBzbG90IGF0dHJpYnV0ZSB3aXRob3V0IGEgY29ycmVzcG9uZGluZyBzbG90IGVsZW1lbnQsXG4gICAgICAgIC8vIGl0IGlzIG5vdCBmdWxseSBwYXJ0IG9mIHRoZSBET00gYW5kIGUuZy4gbWVkaWEgcXVlcmllcyB3aWxsIGZhaWwuXG4gICAgICAgIHRoaXMubGlzdENoaWxkcmVuLmZvckVhY2goKGMsIGluZGV4KSA9PlxuICAgICAgICAgIGMuc2V0QXR0cmlidXRlKCdzbG90JywgYCR7U0xPVE5BTUVfUFJFRklYfS0ke2luZGV4fWApLFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlbmRlcnMgbGlzdCBhbmQgbGlzdCBzbG90cyBmb3Igc2xvdHRlZCBjaGlsZHJlbiBvciBhIG51bWJlciBvZiBsaXN0IHNsb3RzXG4gICAgICogY29ycmVzcG9uZGluZyB0byB0aGUgYGRhdGEtc3NyLWNoaWxkLWNvdW50YCBhdHRyaWJ1dGUgdmFsdWUuXG4gICAgICpcbiAgICAgKiBUaGlzIGlzIGEgcG9zc2libGUgb3B0aW1pemF0aW9uIGZvciBTU1IsIGFzIGluIGFuIFNTUiBMaXQgZW52aXJvbm1lbnRcbiAgICAgKiBvdGhlciBlbGVtZW50cyBhcmUgbm90IGF2YWlsYWJsZSwgYnV0IG1pZ2h0IGJlIGF2YWlsYWJsZSBpbiB0aGUgbWV0YVxuICAgICAqIGZyYW1ld29yayB3cmFwcGVyIChsaWtlIGUuZy4gUmVhY3QpLiBUaGlzIGFsbG93cyB0byBwcm92aWRlIHRoZSBudW1iZXIgb2ZcbiAgICAgKiBjaGlsZHJlbiB0byBiZSBwYXNzZWQgdmlhIHRoZSBgZGF0YS1zc3ItY2hpbGQtY291bnRgIGF0dHJpYnV0ZSB2YWx1ZS5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgcmVuZGVyTGlzdChcbiAgICAgIGF0dHJpYnV0ZXM6IHsgY2xhc3M/OiBzdHJpbmc7IGFyaWFMYWJlbD86IHN0cmluZzsgYXJpYUxhYmVsbGVkYnk/OiBzdHJpbmcgfSA9IHt9LFxuICAgICAgbGlzdEl0ZW1BdHRyaWJ1dGVzOiB7IGxvY2FsTmFtZVZpc3VhbE9ubHk/OiBzdHJpbmdbXSB9ID0ge30sXG4gICAgKTogVGVtcGxhdGVSZXN1bHQge1xuICAgICAgY29uc3QgbGlzdFNsb3ROYW1lczogU2JiTmFtZWRTbG90UHJvcGVydGllc1tdID0gdGhpcy5saXN0U2xvdEVudHJpZXMobGlzdEl0ZW1BdHRyaWJ1dGVzKTtcblxuICAgICAgaWYgKGxpc3RTbG90TmFtZXMubGVuZ3RoID49IDIpIHtcbiAgICAgICAgcmV0dXJuIGh0bWxgXG4gICAgICAgICAgPHVsXG4gICAgICAgICAgICBjbGFzcz0ke2F0dHJpYnV0ZXMuY2xhc3MgfHwgdGhpcy5sb2NhbE5hbWV9XG4gICAgICAgICAgICBhcmlhLWxhYmVsPSR7YXR0cmlidXRlcy5hcmlhTGFiZWwgfHwgbm90aGluZ31cbiAgICAgICAgICAgIGFyaWEtbGFiZWxsZWRieT0ke2F0dHJpYnV0ZXMuYXJpYUxhYmVsbGVkYnkgfHwgbm90aGluZ31cbiAgICAgICAgICA+XG4gICAgICAgICAgICAke2xpc3RTbG90TmFtZXMubWFwKFxuICAgICAgICAgICAgICAoc2xvdCkgPT4gaHRtbGBcbiAgICAgICAgICAgICAgICA8bGkgYXJpYS1oaWRkZW49JHtzbG90LmFyaWFIaWRkZW4gfHwgbm90aGluZ30+XG4gICAgICAgICAgICAgICAgICA8c2xvdCBuYW1lPSR7c2xvdC5uYW1lfT48L3Nsb3Q+XG4gICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgYCxcbiAgICAgICAgICAgICl9XG4gICAgICAgICAgPC91bD5cbiAgICAgICAgICAke3RoaXMucmVuZGVySGlkZGVuU2xvdCgpfVxuICAgICAgICBgO1xuICAgICAgfSBlbHNlIGlmIChsaXN0U2xvdE5hbWVzLmxlbmd0aCA9PT0gMSkge1xuICAgICAgICByZXR1cm4gaHRtbGA8c2JiLXNjcmVlbi1yZWFkZXItb25seT4ke2F0dHJpYnV0ZXMuYXJpYUxhYmVsfTwvc2JiLXNjcmVlbi1yZWFkZXItb25seT5cbiAgICAgICAgICA8c3BhbiBjbGFzcz0ke2F0dHJpYnV0ZXMuY2xhc3MgfHwgdGhpcy5sb2NhbE5hbWV9PlxuICAgICAgICAgICAgPHNwYW4+PHNsb3QgbmFtZT0ke2xpc3RTbG90TmFtZXNbMF0ubmFtZX0+PC9zbG90Pjwvc3Bhbj5cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgJHt0aGlzLnJlbmRlckhpZGRlblNsb3QoKX0gYDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiB0aGlzLnJlbmRlckhpZGRlblNsb3QoKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIGFuIGFycmF5IG9mIFNiYk5hbWVkU2xvdFByb3BlcnRpZXMsIHdoaWNoIGhvbGRzIHRoZSBsaXN0IHNsb3QgbmFtZXMgYW5kIHRoZSBoaWRkZW4gcHJvcGVydHk7XG4gICAgICogaXRzIGxlbmd0aCBjb3JyZXNwb25kcyB0byB0aGUgbnVtYmVyIG9mIG1hdGNoZWQgY2hpbGRyZW4gb3IgdGhlIGBkYXRhLXNzci1jaGlsZC1jb3VudGAgYXR0cmlidXRlIHZhbHVlLlxuICAgICAqXG4gICAgICogVGhpcyBpcyBhIHBvc3NpYmxlIG9wdGltaXphdGlvbiBmb3IgU1NSLCBhcyBpbiBhbiBTU1IgTGl0IGVudmlyb25tZW50XG4gICAgICogb3RoZXIgZWxlbWVudHMgYXJlIG5vdCBhdmFpbGFibGUsIGJ1dCBtaWdodCBiZSBhdmFpbGFibGUgaW4gdGhlIG1ldGFcbiAgICAgKiBmcmFtZXdvcmsgd3JhcHBlciAobGlrZSBlLmcuIFJlYWN0KS4gVGhpcyBhbGxvd3MgdG8gcHJvdmlkZSB0aGUgbnVtYmVyIG9mXG4gICAgICogY2hpbGRyZW4gdG8gYmUgcGFzc2VkIHZpYSB0aGUgYGRhdGEtc3NyLWNoaWxkLWNvdW50YCBhdHRyaWJ1dGUgdmFsdWUuXG4gICAgICovXG4gICAgcHJvdGVjdGVkIGxpc3RTbG90RW50cmllcyhsaXN0SXRlbUF0dHJpYnV0ZXM6IHtcbiAgICAgIGxvY2FsTmFtZVZpc3VhbE9ubHk/OiBzdHJpbmdbXTtcbiAgICB9KTogU2JiTmFtZWRTbG90UHJvcGVydGllc1tdIHtcbiAgICAgIGNvbnN0IGxpc3RDaGlsZHJlbiA9IHRoaXMubGlzdENoaWxkcmVuLmxlbmd0aFxuICAgICAgICA/IHRoaXMubGlzdENoaWxkcmVuXG4gICAgICAgIDogQXJyYXkuZnJvbSh7IGxlbmd0aDogKyh0aGlzLmdldEF0dHJpYnV0ZShTU1JfQ0hJTERfQ09VTlRfQVRUUklCVVRFKSA/PyAwKSB9KTtcbiAgICAgIHJldHVybiBsaXN0Q2hpbGRyZW4ubWFwKChlLCBpKSA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgbmFtZTogYCR7U0xPVE5BTUVfUFJFRklYfS0ke2l9YCxcbiAgICAgICAgICBhcmlhSGlkZGVuOlxuICAgICAgICAgICAgbGlzdEl0ZW1BdHRyaWJ1dGVzPy5sb2NhbE5hbWVWaXN1YWxPbmx5Py5pbmNsdWRlcygoZSBhcyBIVE1MRWxlbWVudCkubG9jYWxOYW1lKSA/P1xuICAgICAgICAgICAgZmFsc2UsXG4gICAgICAgIH07XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIGEgaGlkZGVuIHNsb3QsIHdoaWNoIGlzIGludGVuZGVkIGFzIHRoZSBjaGlsZHJlbiBjaGFuZ2UgZGV0ZWN0aW9uLlxuICAgICAqIFdoZW4gYW4gZWxlbWVudCB3aXRob3V0IGEgc2xvdCBhdHRyaWJ1dGUgaXMgc2xvdHRlZCB0byB0aGUgZWxlbWVudCwgaXQgdHJpZ2dlcnNcbiAgICAgKiB0aGUgc2xvdGNoYW5nZSBldmVudCwgd2hpY2ggY2FuIGJlIHVzZWQgdG8gYXNzaWduIGl0IHRvIHRoZSBhcHByb3ByaWF0ZSBuYW1lZCBzbG90LlxuICAgICAqL1xuICAgIHByb3RlY3RlZCByZW5kZXJIaWRkZW5TbG90KCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICAgIHJldHVybiBodG1sYDxzcGFuIGhpZGRlbj48c2xvdD48L3Nsb3Q+PC9zcGFuPmA7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIE5hbWVkU2xvdExpc3RFbGVtZW50IGFzIHVua25vd24gYXMgQWJzdHJhY3RDb25zdHJ1Y3RvcjxTYmJOYW1lZFNsb3RMaXN0TWl4aW5UeXBlPEM+PiAmIFQ7XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFRQSxJQUFNLDRCQUE0QjtBQUNsQyxJQUFNLGtCQUFrQjtBQTJDeEIsSUFBYSx5QkFJWCxlQUN5RDtDQUV6RCxNQUFNLHdCQUF5QixXQUFrRCxtQkFDNUUsYUFDRCxrQkFBa0IsV0FBVztBQWlKakMsZUExSW1DO29CQUN6Qjs7OztlQURLLDZCQUNMLFlBQXFCOzs7QUFXRCxVQUFBLGdDQUFBLGtCQUFBLE1BQUEsNEJBQW9CLEVBQUUsQ0FBQTtBQVkxQyxTQUFBLHFCQUFpQixrQkFBQSxNQUFBLGdDQUFBLFFBQWM7S0FDckMsTUFBTSxlQUFlLE1BQU0sS0FBSyxLQUFLLFlBQVksRUFBRSxDQUFDLENBQUMsUUFBUSxNQUMzRCxLQUFLLG9CQUFvQixTQUFTLEVBQUUsVUFBVSxDQUMvQztBQUdELFNBQ0UsYUFBYSxXQUFXLEtBQUssYUFBYSxVQUMxQyxLQUFLLGFBQWEsT0FBTyxHQUFHLE1BQU0sYUFBYSxPQUFPLEVBQUUsQ0FFeEQ7QUFHRixVQUFLLGFBQ0YsUUFBUSxNQUFNLENBQUMsYUFBYSxTQUFTLEVBQUUsQ0FBQyxDQUN4QyxTQUFTLE1BQU0sRUFBRSxnQkFBZ0IsT0FBTyxDQUFDO0FBQzVDLFVBQUssZUFBZTtBQUdwQixVQUFLLGdCQUFnQiwwQkFBMEI7Ozs7O2dDQS9CaEQsT0FBTyxDQUFBO0FBQUMsaUJBQUEsTUFBQSxNQUFBLDBCQUFBO0tBQUEsTUFBQTtLQUFBLE1BQUE7S0FBQSxRQUFBO0tBQUEsU0FBQTtLQUFBLFFBQUE7TUFBQSxNQUFBLFFBQUEsa0JBQUE7TUFBQSxNQUFBLFFBQUEsSUFBbUI7TUFBWSxNQUFBLEtBQUEsVUFBQTtBQUFBLFdBQVosZUFBWTs7TUFBQTtLQUFBLFVBQUE7S0FBQSxFQUFBLDRCQUFBLGdDQUFBOzs7Ozs7OztHQUEvQjs7Ozs7O0dBQUEsSUFBbUIsZUFBWTtBQUFBLFdBQUEsTUFBQTs7R0FBL0IsSUFBbUIsYUFBWSxPQUFBO0FBQUEsVUFBQSxnQ0FBQTs7R0FFeEIsb0JBQWlCO0FBQy9CLFVBQU0sbUJBQW1CO0FBQ3pCLFNBQUssWUFBWSxpQkFBaUIsY0FBYyxLQUFLLG1CQUFtQixFQUFFLFNBQVMsTUFBTSxDQUFDOztHQUc1RSx1QkFBb0I7QUFDbEMsVUFBTSxzQkFBc0I7QUFDNUIsU0FBSyxZQUFZLG9CQUFvQixjQUFjLEtBQUssa0JBQWtCOztHQXlCekQsUUFDakIsbUJBQStEO0FBRS9ELFVBQU0sUUFBUSxrQkFBa0I7QUFFaEMsUUFBSSxrQkFBa0IsSUFBSSxlQUFlLENBR3ZDLE1BQUssYUFBYSxTQUFTLEdBQUcsVUFDNUIsRUFBRSxhQUFhLFFBQVEsR0FBRyxnQkFBZSxHQUFJLFFBQVEsQ0FDdEQ7Ozs7Ozs7Ozs7O0dBYUssV0FDUixhQUE4RSxFQUFFLEVBQ2hGLHFCQUF5RCxFQUFFLEVBQUE7SUFFM0QsTUFBTSxnQkFBMEMsS0FBSyxnQkFBZ0IsbUJBQW1CO0FBRXhGLFFBQUksY0FBYyxVQUFVLEVBQzFCLFFBQU8sSUFBSTs7b0JBRUMsV0FBVyxTQUFTLEtBQUssVUFBQTt5QkFDcEIsV0FBVyxhQUFhLFFBQUE7OEJBQ25CLFdBQVcsa0JBQWtCLFFBQUE7O2NBRTdDLGNBQWMsS0FDYixTQUFTLElBQUk7a0NBQ00sS0FBSyxjQUFjLFFBQU87K0JBQzdCLEtBQUssS0FBSTs7Z0JBRzNCLENBQUE7O1lBRUQsS0FBSyxrQkFBa0IsQ0FBQTs7YUFFbEIsY0FBYyxXQUFXLEVBQ2xDLFFBQU8sSUFBSSwyQkFBMkIsV0FBVyxVQUFTO3dCQUMxQyxXQUFXLFNBQVMsS0FBSyxVQUFTOytCQUMzQixjQUFjLEdBQUcsS0FBSTs7WUFFeEMsS0FBSyxrQkFBa0IsQ0FBQTtRQUUzQixRQUFPLEtBQUssa0JBQWtCOzs7Ozs7Ozs7OztHQWF4QixnQkFBZ0Isb0JBRXpCO0FBSUMsWUFIcUIsS0FBSyxhQUFhLFNBQ25DLEtBQUssZUFDTCxNQUFNLEtBQUssRUFBRSxRQUFRLEVBQUUsS0FBSyxhQUFhLDBCQUEwQixJQUFJLElBQUksQ0FBQyxFQUM1RCxLQUFLLEdBQUcsTUFBSztBQUMvQixZQUFPO01BQ0wsTUFBTSxHQUFHLGdCQUFlLEdBQUk7TUFDNUIsWUFDRSxvQkFBb0IscUJBQXFCLFNBQVUsRUFBa0IsVUFBVSxJQUMvRTtNQUNIO01BQ0Q7Ozs7Ozs7R0FRTSxtQkFBZ0I7QUFDeEIsV0FBTyxJQUFJOzs7S0FJUiJ9
@@ -57,4 +57,4 @@ var SbbNegativeMixin = (superClass) => {
57
57
  //#endregion
58
58
  export { SbbNegativeMixin };
59
59
 
60
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmVnYXRpdmUtbWl4aW4uanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NvcmUvbWl4aW5zL25lZ2F0aXZlLW1peGluLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgTGl0RWxlbWVudCB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBwcm9wZXJ0eSB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcblxuaW1wb3J0IHsgZm9yY2VUeXBlIH0gZnJvbSAnLi4vZGVjb3JhdG9ycy50cyc7XG5cbmltcG9ydCB0eXBlIHsgQWJzdHJhY3RDb25zdHJ1Y3RvciB9IGZyb20gJy4vY29uc3RydWN0b3IudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBjbGFzcyBTYmJOZWdhdGl2ZU1peGluVHlwZSB7XG4gIHB1YmxpYyBhY2Nlc3NvciBuZWdhdGl2ZTogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBFbmhhbmNlIHlvdXIgY29tcG9uZW50IHdpdGggYSBuZWdhdGl2ZSBwcm9wZXJ0eS5cbiAqL1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuZXhwb3J0IGNvbnN0IFNiYk5lZ2F0aXZlTWl4aW4gPSA8VCBleHRlbmRzIEFic3RyYWN0Q29uc3RydWN0b3I8TGl0RWxlbWVudD4+KFxuICBzdXBlckNsYXNzOiBULFxuKTogQWJzdHJhY3RDb25zdHJ1Y3RvcjxTYmJOZWdhdGl2ZU1peGluVHlwZT4gJiBUID0+IHtcbiAgYWJzdHJhY3QgY2xhc3MgU2JiTmVnYXRpdmVFbGVtZW50IGV4dGVuZHMgc3VwZXJDbGFzcyBpbXBsZW1lbnRzIFNiYk5lZ2F0aXZlTWl4aW5UeXBlIHtcbiAgICAvKiogTmVnYXRpdmUgY29sb3JpbmcgdmFyaWFudCBmbGFnLiAqL1xuICAgIEBmb3JjZVR5cGUoKVxuICAgIEBwcm9wZXJ0eSh7IHJlZmxlY3Q6IHRydWUsIHR5cGU6IEJvb2xlYW4gfSlcbiAgICBwdWJsaWMgYWNjZXNzb3IgbmVnYXRpdmU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgfVxuXG4gIHJldHVybiBTYmJOZWdhdGl2ZUVsZW1lbnQgYXMgQWJzdHJhY3RDb25zdHJ1Y3RvcjxTYmJOZWdhdGl2ZU1peGluVHlwZT4gJiBUO1xufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQWVBLElBQWEsb0JBQ1gsZUFDaUQ7QUFRakQsZUFQaUM7b0JBQVM7Ozs7ZUFBM0IsMkJBQTJCLFlBQVU7Ozs0QkFFakQsV0FBVyxFQUNYLFNBQVM7S0FBRSxTQUFTO0tBQU0sTUFBTTtLQUFTLENBQUMsQ0FBQTtBQUMzQyxpQkFBQSxNQUFBLE1BQUEsc0JBQUE7S0FBQSxNQUFBO0tBQUEsTUFBQTtLQUFBLFFBQUE7S0FBQSxTQUFBO0tBQUEsUUFBQTtNQUFBLE1BQUEsUUFBQSxjQUFBO01BQUEsTUFBQSxRQUFBLElBQWdCO01BQVEsTUFBQSxLQUFBLFVBQUE7QUFBQSxXQUFSLFdBQVE7O01BQUE7S0FBQSxVQUFBO0tBQUEsRUFBQSx3QkFBQSw0QkFBQTs7Ozs7Ozs7R0FBeEIsNkJBQUEsa0JBQUEsTUFBQSx3QkFBb0MsTUFBSzs7R0FBekMsSUFBZ0IsV0FBUTtBQUFBLFdBQUEsTUFBQTs7R0FBeEIsSUFBZ0IsU0FBUSxPQUFBO0FBQUEsVUFBQSw0QkFBQSJ9
60
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmVnYXRpdmUtbWl4aW4uanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NvcmUvbWl4aW5zL25lZ2F0aXZlLW1peGluLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgTGl0RWxlbWVudCB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBwcm9wZXJ0eSB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcblxuaW1wb3J0IHsgZm9yY2VUeXBlIH0gZnJvbSAnLi4vZGVjb3JhdG9ycy50cyc7XG5cbmltcG9ydCB0eXBlIHsgQWJzdHJhY3RDb25zdHJ1Y3RvciB9IGZyb20gJy4vY29uc3RydWN0b3IudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBjbGFzcyBTYmJOZWdhdGl2ZU1peGluVHlwZSB7XG4gIHB1YmxpYyBhY2Nlc3NvciBuZWdhdGl2ZTogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBFbmhhbmNlIHlvdXIgY29tcG9uZW50IHdpdGggYSBuZWdhdGl2ZSBwcm9wZXJ0eS5cbiAqL1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuZXhwb3J0IGNvbnN0IFNiYk5lZ2F0aXZlTWl4aW4gPSA8VCBleHRlbmRzIEFic3RyYWN0Q29uc3RydWN0b3I8TGl0RWxlbWVudD4+KFxuICBzdXBlckNsYXNzOiBULFxuKTogQWJzdHJhY3RDb25zdHJ1Y3RvcjxTYmJOZWdhdGl2ZU1peGluVHlwZT4gJiBUID0+IHtcbiAgYWJzdHJhY3QgY2xhc3MgU2JiTmVnYXRpdmVFbGVtZW50IGV4dGVuZHMgc3VwZXJDbGFzcyBpbXBsZW1lbnRzIFNiYk5lZ2F0aXZlTWl4aW5UeXBlIHtcbiAgICAvKiogTmVnYXRpdmUgY29sb3JpbmcgdmFyaWFudCBmbGFnLiAqL1xuICAgIEBmb3JjZVR5cGUoKVxuICAgIEBwcm9wZXJ0eSh7IHJlZmxlY3Q6IHRydWUsIHR5cGU6IEJvb2xlYW4gfSlcbiAgICBwdWJsaWMgYWNjZXNzb3IgbmVnYXRpdmU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgfVxuXG4gIHJldHVybiBTYmJOZWdhdGl2ZUVsZW1lbnQgYXMgQWJzdHJhY3RDb25zdHJ1Y3RvcjxTYmJOZWdhdGl2ZU1peGluVHlwZT4gJiBUO1xufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQWVBLElBQWEsb0JBQ1gsZUFDaUQ7QUFRakQsZUFQaUM7b0JBQVM7Ozs7ZUFBM0IsMkJBQTJCLFlBQVU7Ozs0QkFFakQsV0FBVyxFQUNYLFNBQVM7S0FBRSxTQUFTO0tBQU0sTUFBTTtLQUFTLENBQUMsQ0FBQTtBQUMzQyxpQkFBQSxNQUFBLE1BQUEsc0JBQUE7S0FBQSxNQUFBO0tBQUEsTUFBQTtLQUFBLFFBQUE7S0FBQSxTQUFBO0tBQUEsUUFBQTtNQUFBLE1BQUEsUUFBQSxjQUFBO01BQUEsTUFBQSxRQUFBLElBQWdCO01BQVEsTUFBQSxLQUFBLFVBQUE7QUFBQSxXQUFSLFdBQVE7O01BQUE7S0FBQSxVQUFBO0tBQUEsRUFBQSx3QkFBQSw0QkFBQTs7Ozs7Ozs7R0FBeEIsNkJBQUEsa0JBQUEsTUFBQSx3QkFBb0MsTUFBSzs7R0FBekMsSUFBZ0IsV0FBUTtBQUFBLFdBQUEsTUFBQTs7R0FBeEIsSUFBZ0IsU0FBUSxPQUFBO0FBQUEsVUFBQSw0QkFBQTs7Ozs7OztLQUduQiJ9
@@ -54,4 +54,4 @@ var SbbReadonlyMixin = (superClass) => {
54
54
  //#endregion
55
55
  export { SbbReadonlyMixin };
56
56
 
57
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVhZG9ubHktbWl4aW4uanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NvcmUvbWl4aW5zL3JlYWRvbmx5LW1peGluLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgTGl0RWxlbWVudCB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBwcm9wZXJ0eSB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcblxuaW1wb3J0IHR5cGUgeyBBYnN0cmFjdENvbnN0cnVjdG9yIH0gZnJvbSAnLi9jb25zdHJ1Y3Rvci50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGNsYXNzIFNiYlJlYWRvbmx5TWl4aW5UeXBlIHtcbiAgcHVibGljIGFjY2Vzc29yIHJlYWRPbmx5OiBib29sZWFuO1xufVxuXG4vKipcbiAqIEVuaGFuY2UgeW91ciBjb21wb25lbnQgd2l0aCBhIHJlYWRvbmx5IHByb3BlcnR5LlxuICovXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG5leHBvcnQgY29uc3QgU2JiUmVhZG9ubHlNaXhpbiA9IDxUIGV4dGVuZHMgQWJzdHJhY3RDb25zdHJ1Y3RvcjxMaXRFbGVtZW50Pj4oXG4gIHN1cGVyQ2xhc3M6IFQsXG4pOiBBYnN0cmFjdENvbnN0cnVjdG9yPFNiYlJlYWRvbmx5TWl4aW5UeXBlPiAmIFQgPT4ge1xuICBhYnN0cmFjdCBjbGFzcyBTYmJSZWFkb25seUVsZW1lbnQgZXh0ZW5kcyBzdXBlckNsYXNzIGltcGxlbWVudHMgUGFydGlhbDxTYmJSZWFkb25seU1peGluVHlwZT4ge1xuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdGhlIGNvbXBvbmVudCBpcyByZWFkb25seS5cbiAgICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgICAqL1xuICAgIEBwcm9wZXJ0eSh7IHR5cGU6IEJvb2xlYW4sIGF0dHJpYnV0ZTogJ3JlYWRvbmx5JyB9KVxuICAgIHB1YmxpYyBzZXQgcmVhZE9ubHkodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgIHRoaXMuI3JlYWRPbmx5ID0gISF2YWx1ZTtcblxuICAgICAgLy8gVGhlIGF0dHJpYnV0ZSBuZWVkcyB0byBiZSByZWZsZWN0ZWQgc3luY2hyb25vdXNseSAobGlrZSBuYXRpdmUpXG4gICAgICB0aGlzLnRvZ2dsZUF0dHJpYnV0ZSgncmVhZG9ubHknLCB0aGlzLiNyZWFkT25seSk7XG4gICAgfVxuICAgIHB1YmxpYyBnZXQgcmVhZE9ubHkoKTogYm9vbGVhbiB7XG4gICAgICByZXR1cm4gdGhpcy4jcmVhZE9ubHk7XG4gICAgfVxuICAgICNyZWFkT25seSA9IGZhbHNlO1xuICB9XG5cbiAgcmV0dXJuIFNiYlJlYWRvbmx5RWxlbWVudCBhcyB1bmtub3duIGFzIEFic3RyYWN0Q29uc3RydWN0b3I8U2JiUmVhZG9ubHlNaXhpblR5cGU+ICYgVDtcbn07XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQWFBLElBQWEsb0JBQ1gsZUFDaUQ7QUFtQmpELGVBbEJpQztvQkFBUzs7O2VBQTNCLDJCQUEyQixZQUFVOzs7Z0NBS2pELFNBQVM7S0FBRSxNQUFNO0tBQVMsV0FBVztLQUFZLENBQUMsQ0FBQTtBQUNuRCxpQkFBQSxNQUFBLE1BQUEsMEJBQUE7S0FBQSxNQUFBO0tBQUEsTUFBQTtLQUFBLFFBQUE7S0FBQSxTQUFBO0tBQUEsUUFBQTtNQUFBLE1BQUEsUUFBQSxjQUFBO01BQUEsTUFBQSxLQUFBLFVBQUE7QUFBQSxXQUFXLFdBQVE7O01BQUE7S0FBQSxVQUFBO0tBQUEsRUFBQSxNQUFBLDJCQUFBOzs7Ozs7Ozs7Ozs7R0FBbkIsSUFBVyxTQUFTLE9BQWM7QUFDaEMsVUFBQSxXQUFpQixDQUFDLENBQUM7QUFHbkIsU0FBSyxnQkFBZ0IsWUFBWSxNQUFBLFNBQWU7O0dBRWxELElBQVcsV0FBUTtBQUNqQixXQUFPLE1BQUE7O0dBRVQsYUFmYSxrQkFBQSxNQUFBLDJCQUFrQixFQWVuQiJ9
57
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVhZG9ubHktbWl4aW4uanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NvcmUvbWl4aW5zL3JlYWRvbmx5LW1peGluLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgTGl0RWxlbWVudCB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBwcm9wZXJ0eSB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcblxuaW1wb3J0IHR5cGUgeyBBYnN0cmFjdENvbnN0cnVjdG9yIH0gZnJvbSAnLi9jb25zdHJ1Y3Rvci50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGNsYXNzIFNiYlJlYWRvbmx5TWl4aW5UeXBlIHtcbiAgcHVibGljIGFjY2Vzc29yIHJlYWRPbmx5OiBib29sZWFuO1xufVxuXG4vKipcbiAqIEVuaGFuY2UgeW91ciBjb21wb25lbnQgd2l0aCBhIHJlYWRvbmx5IHByb3BlcnR5LlxuICovXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG5leHBvcnQgY29uc3QgU2JiUmVhZG9ubHlNaXhpbiA9IDxUIGV4dGVuZHMgQWJzdHJhY3RDb25zdHJ1Y3RvcjxMaXRFbGVtZW50Pj4oXG4gIHN1cGVyQ2xhc3M6IFQsXG4pOiBBYnN0cmFjdENvbnN0cnVjdG9yPFNiYlJlYWRvbmx5TWl4aW5UeXBlPiAmIFQgPT4ge1xuICBhYnN0cmFjdCBjbGFzcyBTYmJSZWFkb25seUVsZW1lbnQgZXh0ZW5kcyBzdXBlckNsYXNzIGltcGxlbWVudHMgUGFydGlhbDxTYmJSZWFkb25seU1peGluVHlwZT4ge1xuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdGhlIGNvbXBvbmVudCBpcyByZWFkb25seS5cbiAgICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgICAqL1xuICAgIEBwcm9wZXJ0eSh7IHR5cGU6IEJvb2xlYW4sIGF0dHJpYnV0ZTogJ3JlYWRvbmx5JyB9KVxuICAgIHB1YmxpYyBzZXQgcmVhZE9ubHkodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgIHRoaXMuI3JlYWRPbmx5ID0gISF2YWx1ZTtcblxuICAgICAgLy8gVGhlIGF0dHJpYnV0ZSBuZWVkcyB0byBiZSByZWZsZWN0ZWQgc3luY2hyb25vdXNseSAobGlrZSBuYXRpdmUpXG4gICAgICB0aGlzLnRvZ2dsZUF0dHJpYnV0ZSgncmVhZG9ubHknLCB0aGlzLiNyZWFkT25seSk7XG4gICAgfVxuICAgIHB1YmxpYyBnZXQgcmVhZE9ubHkoKTogYm9vbGVhbiB7XG4gICAgICByZXR1cm4gdGhpcy4jcmVhZE9ubHk7XG4gICAgfVxuICAgICNyZWFkT25seSA9IGZhbHNlO1xuICB9XG5cbiAgcmV0dXJuIFNiYlJlYWRvbmx5RWxlbWVudCBhcyB1bmtub3duIGFzIEFic3RyYWN0Q29uc3RydWN0b3I8U2JiUmVhZG9ubHlNaXhpblR5cGU+ICYgVDtcbn07XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQWFBLElBQWEsb0JBQ1gsZUFDaUQ7QUFtQmpELGVBbEJpQztvQkFBUzs7O2VBQTNCLDJCQUEyQixZQUFVOzs7Z0NBS2pELFNBQVM7S0FBRSxNQUFNO0tBQVMsV0FBVztLQUFZLENBQUMsQ0FBQTtBQUNuRCxpQkFBQSxNQUFBLE1BQUEsMEJBQUE7S0FBQSxNQUFBO0tBQUEsTUFBQTtLQUFBLFFBQUE7S0FBQSxTQUFBO0tBQUEsUUFBQTtNQUFBLE1BQUEsUUFBQSxjQUFBO01BQUEsTUFBQSxLQUFBLFVBQUE7QUFBQSxXQUFXLFdBQVE7O01BQUE7S0FBQSxVQUFBO0tBQUEsRUFBQSxNQUFBLDJCQUFBOzs7Ozs7Ozs7Ozs7R0FBbkIsSUFBVyxTQUFTLE9BQWM7QUFDaEMsVUFBQSxXQUFpQixDQUFDLENBQUM7QUFHbkIsU0FBSyxnQkFBZ0IsWUFBWSxNQUFBLFNBQWU7O0dBRWxELElBQVcsV0FBUTtBQUNqQixXQUFPLE1BQUE7O0dBRVQsYUFmYSxrQkFBQSxNQUFBLDJCQUFrQixFQWVuQjs7S0FHUCJ9
@@ -64,4 +64,4 @@ var SbbRequiredMixin = (superClass) => {
64
64
  //#endregion
65
65
  export { SbbRequiredMixin };
66
66
 
67
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWlyZWQtbWl4aW4uanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NvcmUvbWl4aW5zL3JlcXVpcmVkLW1peGluLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgTGl0RWxlbWVudCwgUHJvcGVydHlWYWx1ZXMgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgcHJvcGVydHkgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5cbmltcG9ydCB0eXBlIHsgQWJzdHJhY3RDb25zdHJ1Y3RvciB9IGZyb20gJy4vY29uc3RydWN0b3IudHMnO1xuaW1wb3J0IHR5cGUgeyBTYmJFbGVtZW50SW50ZXJuYWxzTWl4aW5UeXBlIH0gZnJvbSAnLi9lbGVtZW50LWludGVybmFscy1taXhpbi50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGNsYXNzIFNiYlJlcXVpcmVkTWl4aW5UeXBlIHtcbiAgcHVibGljIGFjY2Vzc29yIHJlcXVpcmVkOiBib29sZWFuO1xuICBwcm90ZWN0ZWQgaXNSZXF1aXJlZEV4dGVybmFsbHkoKTogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBFbmhhbmNlIHlvdXIgY29tcG9uZW50IHdpdGggYSByZXF1aXJlZCBwcm9wZXJ0eS5cbiAqL1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuZXhwb3J0IGNvbnN0IFNiYlJlcXVpcmVkTWl4aW4gPSA8XG4gIFQgZXh0ZW5kcyBBYnN0cmFjdENvbnN0cnVjdG9yPExpdEVsZW1lbnQgJiBTYmJFbGVtZW50SW50ZXJuYWxzTWl4aW5UeXBlPixcbj4oXG4gIHN1cGVyQ2xhc3M6IFQsXG4pOiBBYnN0cmFjdENvbnN0cnVjdG9yPFNiYlJlcXVpcmVkTWl4aW5UeXBlPiAmIFQgPT4ge1xuICBhYnN0cmFjdCBjbGFzcyBTYmJSZXF1aXJlZEVsZW1lbnQgZXh0ZW5kcyBzdXBlckNsYXNzIGltcGxlbWVudHMgUGFydGlhbDxTYmJSZXF1aXJlZE1peGluVHlwZT4ge1xuICAgIC8qKiBXaGV0aGVyIHRoZSBjb21wb25lbnQgaXMgcmVxdWlyZWQuICovXG4gICAgQHByb3BlcnR5KHsgcmVmbGVjdDogdHJ1ZSwgdHlwZTogQm9vbGVhbiB9KVxuICAgIHB1YmxpYyBzZXQgcmVxdWlyZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgIC8vIFRvIHByb3ZpZGUgdGhlIHNhbWUgYmVoYXZpb3IgYXMgdGhlIG5hdGl2ZSByZXF1aXJlZCBzdGF0ZSxcbiAgICAgIC8vIGFueSB2YWx1ZSBpcyBjb252ZXJ0ZWQgdG8gYSBib29sZWFuLlxuICAgICAgdGhpcy5fcmVxdWlyZWQgPSBCb29sZWFuKHZhbHVlKTtcbiAgICB9XG4gICAgcHVibGljIGdldCByZXF1aXJlZCgpOiBib29sZWFuIHtcbiAgICAgIHJldHVybiB0aGlzLl9yZXF1aXJlZCB8fCB0aGlzLmlzUmVxdWlyZWRFeHRlcm5hbGx5KCk7XG4gICAgfVxuICAgIHByaXZhdGUgX3JlcXVpcmVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgd2lsbFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXM8dGhpcz4pOiB2b2lkIHtcbiAgICAgIHN1cGVyLndpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXMpO1xuXG4gICAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdyZXF1aXJlZCcpKSB7XG4gICAgICAgIC8vIEZpcmVmb3ggbmVlZHMgZXhwbGljaXRseSBzZXQgYXJpYS1yZXF1aXJlZCB2YWx1ZS5cbiAgICAgICAgdGhpcy5pbnRlcm5hbHMuYXJpYVJlcXVpcmVkID0gYCR7dGhpcy5yZXF1aXJlZH1gO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFdpbGwgYmUgdXNlZCBhcyAnb3InIGNoZWNrIHRvIHRoZSBjdXJyZW50IHJlcXVpcmVkIHN0YXRlLlxuICAgICAqIENhbiBlLmcuIGJlIHVzZWQgdG8gcmVhZCByZXF1aXJlZCBzdGF0ZSBvZiBhIGdyb3VwLlxuICAgICAqL1xuICAgIHByb3RlY3RlZCBpc1JlcXVpcmVkRXh0ZXJuYWxseSgpOiBib29sZWFuIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gU2JiUmVxdWlyZWRFbGVtZW50IGFzIHVua25vd24gYXMgQWJzdHJhY3RDb25zdHJ1Y3RvcjxTYmJSZXF1aXJlZE1peGluVHlwZT4gJiBUO1xufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBZUEsSUFBYSxvQkFHWCxlQUNpRDtBQWdDakQsZUEvQmlDO29CQUFTOzs7ZUFBM0IsMkJBQTJCLFlBQVU7OztBQVcxQyxTQUFBLGFBWEssa0JBQUEsTUFBQSwyQkFBa0IsRUFXRjs7OztnQ0FUNUIsU0FBUztLQUFFLFNBQVM7S0FBTSxNQUFNO0tBQVMsQ0FBQyxDQUFBO0FBQzNDLGlCQUFBLE1BQUEsTUFBQSwwQkFBQTtLQUFBLE1BQUE7S0FBQSxNQUFBO0tBQUEsUUFBQTtLQUFBLFNBQUE7S0FBQSxRQUFBO01BQUEsTUFBQSxRQUFBLGNBQUE7TUFBQSxNQUFBLEtBQUEsVUFBQTtBQUFBLFdBQVcsV0FBUTs7TUFBQTtLQUFBLFVBQUE7S0FBQSxFQUFBLE1BQUEsMkJBQUE7Ozs7Ozs7OztHQUFuQixJQUFXLFNBQVMsT0FBYztBQUdoQyxTQUFLLFlBQVksUUFBUSxNQUFNOztHQUVqQyxJQUFXLFdBQVE7QUFDakIsV0FBTyxLQUFLLGFBQWEsS0FBSyxzQkFBc0I7O0dBSW5DLFdBQVcsbUJBQXVDO0FBQ25FLFVBQU0sV0FBVyxrQkFBa0I7QUFFbkMsUUFBSSxrQkFBa0IsSUFBSSxXQUFXLENBRW5DLE1BQUssVUFBVSxlQUFlLEdBQUcsS0FBSzs7Ozs7O0dBUWhDLHVCQUFvQjtBQUM1QixXQUFPIn0=
67
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWlyZWQtbWl4aW4uanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NvcmUvbWl4aW5zL3JlcXVpcmVkLW1peGluLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgTGl0RWxlbWVudCwgUHJvcGVydHlWYWx1ZXMgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgcHJvcGVydHkgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5cbmltcG9ydCB0eXBlIHsgQWJzdHJhY3RDb25zdHJ1Y3RvciB9IGZyb20gJy4vY29uc3RydWN0b3IudHMnO1xuaW1wb3J0IHR5cGUgeyBTYmJFbGVtZW50SW50ZXJuYWxzTWl4aW5UeXBlIH0gZnJvbSAnLi9lbGVtZW50LWludGVybmFscy1taXhpbi50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGNsYXNzIFNiYlJlcXVpcmVkTWl4aW5UeXBlIHtcbiAgcHVibGljIGFjY2Vzc29yIHJlcXVpcmVkOiBib29sZWFuO1xuICBwcm90ZWN0ZWQgaXNSZXF1aXJlZEV4dGVybmFsbHkoKTogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBFbmhhbmNlIHlvdXIgY29tcG9uZW50IHdpdGggYSByZXF1aXJlZCBwcm9wZXJ0eS5cbiAqL1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuZXhwb3J0IGNvbnN0IFNiYlJlcXVpcmVkTWl4aW4gPSA8XG4gIFQgZXh0ZW5kcyBBYnN0cmFjdENvbnN0cnVjdG9yPExpdEVsZW1lbnQgJiBTYmJFbGVtZW50SW50ZXJuYWxzTWl4aW5UeXBlPixcbj4oXG4gIHN1cGVyQ2xhc3M6IFQsXG4pOiBBYnN0cmFjdENvbnN0cnVjdG9yPFNiYlJlcXVpcmVkTWl4aW5UeXBlPiAmIFQgPT4ge1xuICBhYnN0cmFjdCBjbGFzcyBTYmJSZXF1aXJlZEVsZW1lbnQgZXh0ZW5kcyBzdXBlckNsYXNzIGltcGxlbWVudHMgUGFydGlhbDxTYmJSZXF1aXJlZE1peGluVHlwZT4ge1xuICAgIC8qKiBXaGV0aGVyIHRoZSBjb21wb25lbnQgaXMgcmVxdWlyZWQuICovXG4gICAgQHByb3BlcnR5KHsgcmVmbGVjdDogdHJ1ZSwgdHlwZTogQm9vbGVhbiB9KVxuICAgIHB1YmxpYyBzZXQgcmVxdWlyZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgIC8vIFRvIHByb3ZpZGUgdGhlIHNhbWUgYmVoYXZpb3IgYXMgdGhlIG5hdGl2ZSByZXF1aXJlZCBzdGF0ZSxcbiAgICAgIC8vIGFueSB2YWx1ZSBpcyBjb252ZXJ0ZWQgdG8gYSBib29sZWFuLlxuICAgICAgdGhpcy5fcmVxdWlyZWQgPSBCb29sZWFuKHZhbHVlKTtcbiAgICB9XG4gICAgcHVibGljIGdldCByZXF1aXJlZCgpOiBib29sZWFuIHtcbiAgICAgIHJldHVybiB0aGlzLl9yZXF1aXJlZCB8fCB0aGlzLmlzUmVxdWlyZWRFeHRlcm5hbGx5KCk7XG4gICAgfVxuICAgIHByaXZhdGUgX3JlcXVpcmVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgd2lsbFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXM8dGhpcz4pOiB2b2lkIHtcbiAgICAgIHN1cGVyLndpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXMpO1xuXG4gICAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdyZXF1aXJlZCcpKSB7XG4gICAgICAgIC8vIEZpcmVmb3ggbmVlZHMgZXhwbGljaXRseSBzZXQgYXJpYS1yZXF1aXJlZCB2YWx1ZS5cbiAgICAgICAgdGhpcy5pbnRlcm5hbHMuYXJpYVJlcXVpcmVkID0gYCR7dGhpcy5yZXF1aXJlZH1gO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFdpbGwgYmUgdXNlZCBhcyAnb3InIGNoZWNrIHRvIHRoZSBjdXJyZW50IHJlcXVpcmVkIHN0YXRlLlxuICAgICAqIENhbiBlLmcuIGJlIHVzZWQgdG8gcmVhZCByZXF1aXJlZCBzdGF0ZSBvZiBhIGdyb3VwLlxuICAgICAqL1xuICAgIHByb3RlY3RlZCBpc1JlcXVpcmVkRXh0ZXJuYWxseSgpOiBib29sZWFuIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gU2JiUmVxdWlyZWRFbGVtZW50IGFzIHVua25vd24gYXMgQWJzdHJhY3RDb25zdHJ1Y3RvcjxTYmJSZXF1aXJlZE1peGluVHlwZT4gJiBUO1xufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBZUEsSUFBYSxvQkFHWCxlQUNpRDtBQWdDakQsZUEvQmlDO29CQUFTOzs7ZUFBM0IsMkJBQTJCLFlBQVU7OztBQVcxQyxTQUFBLGFBWEssa0JBQUEsTUFBQSwyQkFBa0IsRUFXRjs7OztnQ0FUNUIsU0FBUztLQUFFLFNBQVM7S0FBTSxNQUFNO0tBQVMsQ0FBQyxDQUFBO0FBQzNDLGlCQUFBLE1BQUEsTUFBQSwwQkFBQTtLQUFBLE1BQUE7S0FBQSxNQUFBO0tBQUEsUUFBQTtLQUFBLFNBQUE7S0FBQSxRQUFBO01BQUEsTUFBQSxRQUFBLGNBQUE7TUFBQSxNQUFBLEtBQUEsVUFBQTtBQUFBLFdBQVcsV0FBUTs7TUFBQTtLQUFBLFVBQUE7S0FBQSxFQUFBLE1BQUEsMkJBQUE7Ozs7Ozs7OztHQUFuQixJQUFXLFNBQVMsT0FBYztBQUdoQyxTQUFLLFlBQVksUUFBUSxNQUFNOztHQUVqQyxJQUFXLFdBQVE7QUFDakIsV0FBTyxLQUFLLGFBQWEsS0FBSyxzQkFBc0I7O0dBSW5DLFdBQVcsbUJBQXVDO0FBQ25FLFVBQU0sV0FBVyxrQkFBa0I7QUFFbkMsUUFBSSxrQkFBa0IsSUFBSSxXQUFXLENBRW5DLE1BQUssVUFBVSxlQUFlLEdBQUcsS0FBSzs7Ozs7O0dBUWhDLHVCQUFvQjtBQUM1QixXQUFPOzs7S0FJSiJ9
@@ -1 +1 @@
1
- {"version":3,"file":"position.d.ts","sourceRoot":"","sources":["../../../../../src/elements/core/overlay/position.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,gBAAgB,GAAG,IAAI,CACjC,WAAW,EACX,cAAc,GAAG,cAAc,GAAG,cAAc,GAAG,aAAa,GAAG,aAAa,GAAG,aAAa,CACjG,CAAC;AAEF,MAAM,WAAW,YAAY;IAC3B,UAAU,EAAE,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAC;IACvC,QAAQ,EAAE,OAAO,GAAG,OAAO,CAAC;CAC7B;AAED,MAAM,WAAW,uBAAuB;IACtC,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,YAAY,CAAC;CACzB;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,WAAW,GAAG,gBAAgB,CAoCrE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,WAAW,GAAG,IAAI,EAC3B,KAAK,EAAE,UAAU,GAAG,YAAY,GAC/B,OAAO,CAYT;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,WAAW,EACpB,OAAO,EAAE,WAAW,EACpB,SAAS,EAAE,WAAW,EACtB,UAAU,CAAC,EAAE;IACX,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB,GACA,uBAAuB,CAsGzB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,4BAA4B,CAC1C,OAAO,EAAE,WAAW,EACpB,OAAO,EAAE,WAAW,EACpB,SAAS,EAAE,WAAW,EACtB,UAAU,CAAC,EAAE;IACX,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B,GACA,uBAAuB,CAgEzB"}
1
+ {"version":3,"file":"position.d.ts","sourceRoot":"","sources":["../../../../../src/elements/core/overlay/position.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,gBAAgB,GAAG,IAAI,CACjC,WAAW,EACX,cAAc,GAAG,cAAc,GAAG,cAAc,GAAG,aAAa,GAAG,aAAa,GAAG,aAAa,CACjG,CAAC;AAEF,MAAM,WAAW,YAAY;IAC3B,UAAU,EAAE,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAC;IACvC,QAAQ,EAAE,OAAO,GAAG,OAAO,CAAC;CAC7B;AAED,MAAM,WAAW,uBAAuB;IACtC,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,YAAY,CAAC;CACzB;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,WAAW,GAAG,gBAAgB,CAoCrE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,WAAW,GAAG,IAAI,EAC3B,KAAK,EAAE,UAAU,GAAG,YAAY,GAC/B,OAAO,CAYT;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,WAAW,EACpB,OAAO,EAAE,WAAW,EACpB,SAAS,EAAE,WAAW,EACtB,UAAU,CAAC,EAAE;IACX,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB,GACA,uBAAuB,CAuGzB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,4BAA4B,CAC1C,OAAO,EAAE,WAAW,EACpB,OAAO,EAAE,WAAW,EACpB,SAAS,EAAE,WAAW,EACtB,UAAU,CAAC,EAAE;IACX,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B,GACA,uBAAuB,CAgEzB"}
@@ -81,7 +81,9 @@ function getElementPosition(element, trigger, container, properties) {
81
81
  }
82
82
  if (horizontalOffset && alignment.horizontal !== "center" && triggerRec.width / 2 < horizontalOffset) elementXPosition += horizontalOffset * (alignment.horizontal === "start" ? -1 : 1);
83
83
  if (triggerLeft < elementXOverflow && availableSpaceRight < elementXOverflow || document.documentElement.clientWidth < elementRec.offsetWidth) elementXPosition = document.documentElement.clientWidth / 2 - elementRec.offsetWidth / 2;
84
- const shouldOpenAbove = availableSpaceBelow - verticalOffset < elementRec.scrollHeight && availableSpaceAbove - verticalOffset > (responsiveHeight ? elementRec.clientHeight : elementRec.scrollHeight) || availableSpaceAbove > availableSpaceBelow && availableSpaceBelow - verticalOffset < elementRec.clientHeight && !responsiveHeight;
84
+ const fitsBelow = availableSpaceBelow - verticalOffset >= elementRec.scrollHeight;
85
+ const fitsAbove = availableSpaceAbove - verticalOffset >= (responsiveHeight ? elementRec.clientHeight : elementRec.scrollHeight);
86
+ const shouldOpenAbove = !fitsBelow && (fitsAbove || availableSpaceAbove > availableSpaceBelow);
85
87
  if (!properties?.forceBelow && (properties?.forceAbove || shouldOpenAbove)) {
86
88
  elementYPosition = availableSpaceAbove < elementRec.scrollHeight ? elementYPosition - triggerRec.height - availableSpaceAbove - verticalOffset : triggerTop - elementRec.clientHeight - verticalOffset;
87
89
  elementMaxHeight = `${availableSpaceAbove - verticalOffset}px`;
@@ -148,4 +150,4 @@ function getElementPositionHorizontal(element, trigger, container, properties) {
148
150
  //#endregion
149
151
  export { getElementPosition, getElementPositionHorizontal, getElementRectangle, isEventOnElement };
150
152
 
151
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9zaXRpb24uanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NvcmUvb3ZlcmxheS9wb3NpdGlvbi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdHlwZSBFbGVtZW50UmVjdGFuZ2xlID0gUGljazxcbiAgSFRNTEVsZW1lbnQsXG4gICdzY3JvbGxIZWlnaHQnIHwgJ2NsaWVudEhlaWdodCcgfCAnb2Zmc2V0SGVpZ2h0JyB8ICdzY3JvbGxXaWR0aCcgfCAnY2xpZW50V2lkdGgnIHwgJ29mZnNldFdpZHRoJ1xuPjtcblxuZXhwb3J0IGludGVyZmFjZSBTYmJBbGlnbm1lbnQge1xuICBob3Jpem9udGFsOiAnc3RhcnQnIHwgJ2NlbnRlcicgfCAnZW5kJztcbiAgdmVydGljYWw6ICdhYm92ZScgfCAnYmVsb3cnO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNiYkVsZW1lbnRQb3NpdGlvbkluZm9zIHtcbiAgdG9wOiBudW1iZXI7XG4gIGxlZnQ6IG51bWJlcjtcbiAgbWF4SGVpZ2h0OiBzdHJpbmc7XG4gIGFsaWdubWVudDogU2JiQWxpZ25tZW50O1xufVxuXG4vKipcbiAqIEdldHMgaGVpZ2h0IGFuZCB3aWR0aCBvZiBhbiBlbGVtZW50IGV2ZW4gaWYgaXQncyBoaWRkZW4gKGBkaXNwbGF5OiBub25lYCkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRFbGVtZW50UmVjdGFuZ2xlKGVsOiBIVE1MRWxlbWVudCk6IEVsZW1lbnRSZWN0YW5nbGUge1xuICBjb25zdCBlbGVtZW50U3R5bGUgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShlbCksXG4gICAgZWxlbWVudERpc3BsYXkgPSBlbGVtZW50U3R5bGUuZGlzcGxheSxcbiAgICBlbGVtZW50TWF4SGVpZ2h0ID0gcGFyc2VJbnQoZWxlbWVudFN0eWxlLm1heEhlaWdodCwgMTApLnRvU3RyaW5nKCk7XG5cbiAgLy8gSWYgaXQgaXMgbm90IGhpZGRlbiB3ZSBqdXN0IHJldHVybiBub3JtYWwgaGVpZ2h0XG4gIGlmIChlbGVtZW50RGlzcGxheSAhPT0gJ25vbmUnICYmIGVsZW1lbnRNYXhIZWlnaHQgIT09ICcwJykge1xuICAgIHJldHVybiB7XG4gICAgICBzY3JvbGxIZWlnaHQ6IGVsLnNjcm9sbEhlaWdodCxcbiAgICAgIGNsaWVudEhlaWdodDogZWwuY2xpZW50SGVpZ2h0LFxuICAgICAgb2Zmc2V0SGVpZ2h0OiBlbC5vZmZzZXRIZWlnaHQsXG4gICAgICBzY3JvbGxXaWR0aDogZWwuc2Nyb2xsV2lkdGgsXG4gICAgICBjbGllbnRXaWR0aDogZWwuY2xpZW50V2lkdGgsXG4gICAgICBvZmZzZXRXaWR0aDogZWwub2Zmc2V0V2lkdGgsXG4gICAgfTtcbiAgfVxuXG4gIC8vIFRoZSBlbGVtZW50IGlzIGhpZGRlbiBzbzpcbiAgLy8gbWFrZSB0aGUgZWwgYmxvY2sgaW4gb3JkZXIgdG8gbWVhc3VyZSBpdHMgaGVpZ2h0IGJ1dCBzdGlsbCBiZSBoaWRkZW5cbiAgZWwuc3R5bGUucG9zaXRpb24gPSAnYWJzb2x1dGUnO1xuICBlbC5zdHlsZS52aXNpYmlsaXR5ID0gJ2hpZGRlbic7XG4gIGVsLnN0eWxlLmRpc3BsYXkgPSAnYmxvY2snO1xuXG4gIGNvbnN0IHNjcm9sbEhlaWdodCA9IGVsLnNjcm9sbEhlaWdodCxcbiAgICBjbGllbnRIZWlnaHQgPSBlbC5jbGllbnRIZWlnaHQsXG4gICAgb2Zmc2V0SGVpZ2h0ID0gZWwub2Zmc2V0SGVpZ2h0LFxuICAgIHNjcm9sbFdpZHRoID0gZWwuc2Nyb2xsV2lkdGgsXG4gICAgY2xpZW50V2lkdGggPSBlbC5jbGllbnRXaWR0aCxcbiAgICBvZmZzZXRXaWR0aCA9IGVsLm9mZnNldFdpZHRoO1xuXG4gIC8vIFJldmVydGluZyB0byB0aGUgb3JpZ2luYWwgdmFsdWVzXG4gIGVsLnN0eWxlLmRpc3BsYXkgPSAnJztcbiAgZWwuc3R5bGUucG9zaXRpb24gPSAnJztcbiAgZWwuc3R5bGUudmlzaWJpbGl0eSA9ICcnO1xuXG4gIHJldHVybiB7IHNjcm9sbEhlaWdodCwgY2xpZW50SGVpZ2h0LCBvZmZzZXRIZWlnaHQsIHNjcm9sbFdpZHRoLCBjbGllbnRXaWR0aCwgb2Zmc2V0V2lkdGggfTtcbn1cblxuLyoqXG4gKiBEZXRlcm1pbmVzIHdoZXRoZXIgYW4gZXZlbnQgaXMgZmlyZWQgb24gYSBzcGVjaWZpYyBlbGVtZW50LlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNFdmVudE9uRWxlbWVudChcbiAgZWxlbWVudDogSFRNTEVsZW1lbnQgfCBudWxsLFxuICBldmVudDogTW91c2VFdmVudCB8IFBvaW50ZXJFdmVudCxcbik6IGJvb2xlYW4ge1xuICBpZiAoIWVsZW1lbnQgfHwgIWV2ZW50KSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgY29uc3QgcmVjdCA9IGVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gIHJldHVybiAoXG4gICAgcmVjdC50b3AgPD0gZXZlbnQuY2xpZW50WSAmJlxuICAgIGV2ZW50LmNsaWVudFkgPD0gcmVjdC50b3AgKyByZWN0LmhlaWdodCAmJlxuICAgIHJlY3QubGVmdCA8PSBldmVudC5jbGllbnRYICYmXG4gICAgZXZlbnQuY2xpZW50WCA8PSByZWN0LmxlZnQgKyByZWN0LndpZHRoXG4gICk7XG59XG5cbi8qKlxuICogRGV0ZXJtaW5lcyB0aGUgcG9zaXRpb24gb2YgYW4gZWxlbWVudCByZWxhdGl2ZSB0byBhIHRyaWdnZXIgZWxlbWVudCBieSBldmFsdWF0aW5nXG4gKiB0aGUgb3B0aW1hbCBwb3NpdGlvbiBiYXNlZCBvbiB0aGUgYXZhaWxhYmxlIHNwYWNlLlxuICpcbiAqIEBwYXJhbSBlbGVtZW50IFRoZSBlbGVtZW50IG9mIHdoaWNoIHRvIGNhbGN1bGF0ZSB0aGUgcG9zaXRpb24uXG4gKiBAcGFyYW0gdHJpZ2dlciBUaGUgZWxlbWVudCByZWxhdGl2ZSB0byB3aGljaCB0byBjYWxjdWxhdGUgdGhlIHBvc2l0aW9uLlxuICogQHBhcmFtIGNvbnRhaW5lciBUaGUgZWxlbWVudCB3aGljaCBoYXMgdGhlIHBvc2l0aW9uOmZpeGVkIGFwcGxpZWQuXG4gKiBAcGFyYW0gcHJvcGVydGllcyBQcm9wZXJ0aWVzIHRvIHRha2UgaW50byBhY2NvdW50IGluIGNhbGN1bGF0aW9ucyAob3B0aW9uYWwpLlxuICogQHBhcmFtIHByb3BlcnRpZXMudmVydGljYWxPZmZzZXQgVGhlIGRpc3RhbmNlIHRvIGJlIGFkZGVkIGJldHdlZW4gdGhlIGVsZW1lbnQgYW5kIHRoZSB0cmlnZ2VyIChvcHRpb25hbCkuXG4gKiBAcGFyYW0gcHJvcGVydGllcy5ob3Jpem9udGFsT2Zmc2V0IFRoZSBob3Jpem9udGFsIG9mZnNldCB0byBiZSBhcHBsaWVkIHRvIHRoZSBlbGVtZW50IChvcHRpb25hbCkuXG4gKiBAcGFyYW0gcHJvcGVydGllcy5jZW50ZXJlZCBXaGV0aGVyIHRoZSBlbGVtZW50IHNob3VsZCBiZSBwbGFjZWQgaW4gdGhlIGNlbnRlciBieSBkZWZhdWx0IChvcHRpb25hbCkuXG4gKiBAcGFyYW0gcHJvcGVydGllcy5yZXNwb25zaXZlSGVpZ2h0IFdoZXRoZXIgdGhlIGVsZW1lbnQgY2FsY3VsYXRlcyBpdHMgaGVpZ2h0IGJhc2VkIG9uIGl0cyBjb250ZW50IChvcHRpb25hbCkuXG4gKiBAcmV0dXJucyBSZXR1cm5zIGFuIG9iamVjdCBjb250YWluaW5nIHRoZSBsZWZ0IHBvc2l0aW9uLCB0aGUgdG9wIHBvc2l0aW9uLCB0aGUgbWF4aW11bSBoZWlnaHRcbiAqIG9mIHRoZSBlbGVtZW50IGFuZCB0aGUgY3VycmVudCBhbGlnbm1lbnQgb2JqZWN0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0RWxlbWVudFBvc2l0aW9uKFxuICBlbGVtZW50OiBIVE1MRWxlbWVudCxcbiAgdHJpZ2dlcjogSFRNTEVsZW1lbnQsXG4gIGNvbnRhaW5lcjogSFRNTEVsZW1lbnQsXG4gIHByb3BlcnRpZXM/OiB7XG4gICAgdmVydGljYWxPZmZzZXQ/OiBudW1iZXI7XG4gICAgaG9yaXpvbnRhbE9mZnNldD86IG51bWJlcjtcbiAgICBjZW50ZXJlZD86IGJvb2xlYW47XG4gICAgcmVzcG9uc2l2ZUhlaWdodD86IGJvb2xlYW47XG4gICAgZm9yY2VBYm92ZT86IGJvb2xlYW47XG4gICAgZm9yY2VCZWxvdz86IGJvb2xlYW47XG4gIH0sXG4pOiBTYmJFbGVtZW50UG9zaXRpb25JbmZvcyB7XG4gIGNvbnN0IG1heFdpZHRoT2Zmc2V0ID0gMTY7XG4gIGNvbnN0IHZlcnRpY2FsT2Zmc2V0ID0gcHJvcGVydGllcz8udmVydGljYWxPZmZzZXQgfHwgMDtcbiAgY29uc3QgaG9yaXpvbnRhbE9mZnNldCA9IHByb3BlcnRpZXM/Lmhvcml6b250YWxPZmZzZXQgfHwgMDtcbiAgY29uc3QgcmVzcG9uc2l2ZUhlaWdodCA9IHByb3BlcnRpZXM/LnJlc3BvbnNpdmVIZWlnaHQgfHwgZmFsc2U7XG5cbiAgY29uc3QgdHJpZ2dlclJlYyA9IHRyaWdnZXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gIGNvbnN0IGVsZW1lbnRSZWMgPSBnZXRFbGVtZW50UmVjdGFuZ2xlKGVsZW1lbnQpO1xuXG4gIGNvbnN0IHRyaWdnZXJMZWZ0ID0gdHJpZ2dlclJlYy5sZWZ0O1xuICBjb25zdCB0cmlnZ2VyVG9wID0gdHJpZ2dlclJlYy50b3A7XG5cbiAgY29uc3QgYXZhaWxhYmxlU3BhY2VSaWdodCA9XG4gICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoIC0gKHRyaWdnZXJMZWZ0ICsgdHJpZ2dlclJlYy53aWR0aCk7XG4gIGNvbnN0IGF2YWlsYWJsZVNwYWNlQWJvdmUgPSB0cmlnZ2VyVG9wIC0gdmVydGljYWxPZmZzZXQ7XG4gIGNvbnN0IGF2YWlsYWJsZVNwYWNlQmVsb3cgPVxuICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHQgLSAodHJpZ2dlclRvcCArIHRyaWdnZXJSZWMuaGVpZ2h0ICsgdmVydGljYWxPZmZzZXQpO1xuXG4gIC8vIERlZmF1bHQgZWxlbWVudCBhbGlnbm1lbnQgaXMgXCJzdGFydC9iZWxvd1wiXG4gIGxldCBlbGVtZW50WFBvc2l0aW9uID0gdHJpZ2dlckxlZnQ7XG4gIGxldCBlbGVtZW50WVBvc2l0aW9uID0gdHJpZ2dlclRvcCArIHRyaWdnZXJSZWMuaGVpZ2h0ICsgdmVydGljYWxPZmZzZXQ7XG4gIGxldCBlbGVtZW50WE92ZXJmbG93ID0gZWxlbWVudFJlYy5vZmZzZXRXaWR0aCAtIHRyaWdnZXJSZWMud2lkdGg7XG4gIGNvbnN0IGFsaWdubWVudDogU2JiQWxpZ25tZW50ID0geyBob3Jpem9udGFsOiAnc3RhcnQnLCB2ZXJ0aWNhbDogJ2JlbG93JyB9O1xuXG4gIC8vIENhbGN1bGF0ZSBlbGVtZW50IG1heC1oZWlnaHRcbiAgbGV0IGVsZW1lbnRNYXhIZWlnaHQgPSBgJHthdmFpbGFibGVTcGFjZUJlbG93IC0gdmVydGljYWxPZmZzZXR9cHhgO1xuXG4gIC8vIENoZWNrIGlmIGhvcml6b250YWwgYWxpZ25tZW50IG5lZWRzIHRvIGJlIGNoYW5nZWQgdG8gXCJjZW50ZXJcIlxuICBpZiAoXG4gICAgcHJvcGVydGllcz8uY2VudGVyZWQgJiZcbiAgICB0cmlnZ2VyTGVmdCAtIG1heFdpZHRoT2Zmc2V0ICsgdHJpZ2dlclJlYy53aWR0aCAvIDIgPiBlbGVtZW50UmVjLm9mZnNldFdpZHRoIC8gMiAmJlxuICAgIGF2YWlsYWJsZVNwYWNlUmlnaHQgLSBtYXhXaWR0aE9mZnNldCA+IGVsZW1lbnRYT3ZlcmZsb3cgLyAyXG4gICkge1xuICAgIGVsZW1lbnRYUG9zaXRpb24gLT0gZWxlbWVudFhPdmVyZmxvdyAvPSAyO1xuICAgIGFsaWdubWVudC5ob3Jpem9udGFsID0gJ2NlbnRlcic7XG4gIH1cblxuICAvLyBDaGVjayBpZiBob3Jpem9udGFsIGFsaWdubWVudCBuZWVkcyB0byBiZSBjaGFuZ2VkIHRvIFwiZW5kXCJcbiAgaWYgKGF2YWlsYWJsZVNwYWNlUmlnaHQgPCBlbGVtZW50WE92ZXJmbG93ICYmIHRyaWdnZXJMZWZ0ID4gZWxlbWVudFhPdmVyZmxvdykge1xuICAgIGVsZW1lbnRYUG9zaXRpb24gPSBlbGVtZW50WFBvc2l0aW9uIC0gZWxlbWVudFhPdmVyZmxvdztcbiAgICBhbGlnbm1lbnQuaG9yaXpvbnRhbCA9ICdlbmQnO1xuICB9XG5cbiAgLy8gQWRkIGhvcml6b250YWwgb2Zmc2V0XG4gIGlmIChcbiAgICBob3Jpem9udGFsT2Zmc2V0ICYmXG4gICAgYWxpZ25tZW50Lmhvcml6b250YWwgIT09ICdjZW50ZXInICYmXG4gICAgdHJpZ2dlclJlYy53aWR0aCAvIDIgPCBob3Jpem9udGFsT2Zmc2V0XG4gICkge1xuICAgIGVsZW1lbnRYUG9zaXRpb24gKz0gaG9yaXpvbnRhbE9mZnNldCAqIChhbGlnbm1lbnQuaG9yaXpvbnRhbCA9PT0gJ3N0YXJ0JyA/IC0xIDogMSk7XG4gIH1cblxuICAvLyBDaGVjayB3aGV0aGVyIHRoZXJlIGlzIGluc3VmZmljaWVudCBzcGFjZSBvbiBib3RoIHNpZGVzXG4gIGlmIChcbiAgICAodHJpZ2dlckxlZnQgPCBlbGVtZW50WE92ZXJmbG93ICYmIGF2YWlsYWJsZVNwYWNlUmlnaHQgPCBlbGVtZW50WE92ZXJmbG93KSB8fFxuICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRXaWR0aCA8IGVsZW1lbnRSZWMub2Zmc2V0V2lkdGhcbiAgKSB7XG4gICAgZWxlbWVudFhQb3NpdGlvbiA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRXaWR0aCAvIDIgLSBlbGVtZW50UmVjLm9mZnNldFdpZHRoIC8gMjtcbiAgfVxuXG4gIC8vIENoZWNrIGlmIHZlcnRpY2FsIGFsaWdubWVudCBuZWVkcyB0byBiZSBjaGFuZ2VkIHRvIFwiYWJvdmVcIjpcbiAgY29uc3Qgc2hvdWxkT3BlbkFib3ZlID1cbiAgICAoYXZhaWxhYmxlU3BhY2VCZWxvdyAtIHZlcnRpY2FsT2Zmc2V0IDwgZWxlbWVudFJlYy5zY3JvbGxIZWlnaHQgJiZcbiAgICAgIGF2YWlsYWJsZVNwYWNlQWJvdmUgLSB2ZXJ0aWNhbE9mZnNldCA+XG4gICAgICAgIChyZXNwb25zaXZlSGVpZ2h0ID8gZWxlbWVudFJlYy5jbGllbnRIZWlnaHQgOiBlbGVtZW50UmVjLnNjcm9sbEhlaWdodCkpIHx8XG4gICAgKGF2YWlsYWJsZVNwYWNlQWJvdmUgPiBhdmFpbGFibGVTcGFjZUJlbG93ICYmXG4gICAgICBhdmFpbGFibGVTcGFjZUJlbG93IC0gdmVydGljYWxPZmZzZXQgPCBlbGVtZW50UmVjLmNsaWVudEhlaWdodCAmJlxuICAgICAgIXJlc3BvbnNpdmVIZWlnaHQpO1xuXG4gIGlmICghcHJvcGVydGllcz8uZm9yY2VCZWxvdyAmJiAocHJvcGVydGllcz8uZm9yY2VBYm92ZSB8fCBzaG91bGRPcGVuQWJvdmUpKSB7XG4gICAgZWxlbWVudFlQb3NpdGlvbiA9XG4gICAgICBhdmFpbGFibGVTcGFjZUFib3ZlIDwgZWxlbWVudFJlYy5zY3JvbGxIZWlnaHRcbiAgICAgICAgPyBlbGVtZW50WVBvc2l0aW9uIC0gdHJpZ2dlclJlYy5oZWlnaHQgLSBhdmFpbGFibGVTcGFjZUFib3ZlIC0gdmVydGljYWxPZmZzZXRcbiAgICAgICAgOiB0cmlnZ2VyVG9wIC0gZWxlbWVudFJlYy5jbGllbnRIZWlnaHQgLSB2ZXJ0aWNhbE9mZnNldDtcblxuICAgIGVsZW1lbnRNYXhIZWlnaHQgPSBgJHthdmFpbGFibGVTcGFjZUFib3ZlIC0gdmVydGljYWxPZmZzZXR9cHhgO1xuICAgIGFsaWdubWVudC52ZXJ0aWNhbCA9ICdhYm92ZSc7XG4gIH1cblxuICBjb25zdCBjb250YWluZXJSZWN0ID0gY29udGFpbmVyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuXG4gIC8vIFdoZW4gem9vbWluZyBpbiBTYWZhcmkgdGhlIGNvbnRhaW5lciByZWN0YW5nbGUgY29udGFpbnMgbmVnYXRpdmUgdmFsdWVzIGZvciB0aGUgcG9zaXRpb24sXG4gIC8vIGFuZCB3ZSBuZWVkIHRvIHJlLWFkZCB0aGVtIHRvIHRoZSBjYWxjdWxhdGVkIGNvb3JkaW5hdGVzLlxuICBpZiAoY29udGFpbmVyUmVjdC5sZWZ0IDwgMCkge1xuICAgIGVsZW1lbnRYUG9zaXRpb24gLT0gY29udGFpbmVyUmVjdC5sZWZ0O1xuICB9XG5cbiAgLy8gTm9ybWFsbHkgdGhlIGNvbnRhaW5lclJlY3QncyB0b3AgdmFsdWUgd291bGQgYmUgemVybywgaG93ZXZlciB3aGVuIHRoZSBvdmVybGF5IGlzIGF0dGFjaGVkIHRvIGFuIGlucHV0XG4gIC8vIChlLmcuIGluIGFuIGF1dG9jb21wbGV0ZSksIG1vYmlsZSBicm93c2VycyB3aWxsIHNoaWZ0IGV2ZXJ5dGhpbmcgaW4gb3JkZXIgdG8gcHV0IHRoZSBpbnB1dCBpbiB0aGUgbWlkZGxlXG4gIC8vIG9mIHRoZSBzY3JlZW4gYW5kIHRvIG1ha2Ugc3BhY2UgZm9yIHRoZSB2aXJ0dWFsIGtleWJvYXJkLiBXZSBuZWVkIHRvIGFjY291bnQgZm9yIHRoaXMgb2Zmc2V0LFxuICAvLyBvdGhlcndpc2Ugb3VyIHBvc2l0aW9uaW5nIHdpbGwgYmUgdGhyb3duIG9mZi5cbiAgLy8gQWRkaXRpb25hbGx5LCB3aGVuIHpvb21pbmcgaW4gU2FmYXJpIHRoaXMgZml4ZXMgdGhlIHZlcnRpY2FsIHBvc2l0aW9uLlxuICBpZiAoY29udGFpbmVyUmVjdC50b3AgPCAwKSB7XG4gICAgZWxlbWVudFlQb3NpdGlvbiAtPSBjb250YWluZXJSZWN0LnRvcDtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgdG9wOiBlbGVtZW50WVBvc2l0aW9uLFxuICAgIGxlZnQ6IGVsZW1lbnRYUG9zaXRpb24sXG4gICAgbWF4SGVpZ2h0OiBlbGVtZW50TWF4SGVpZ2h0LFxuICAgIGFsaWdubWVudDogYWxpZ25tZW50LFxuICB9O1xufVxuXG4vKipcbiAqIERldGVybWluZXMgdGhlIHBvc2l0aW9uIG9mIGFuIGVsZW1lbnQgcmVsYXRpdmUgdG8gYSB0cmlnZ2VyIGVsZW1lbnQgYnkgZXZhbHVhdGluZ1xuICogdGhlIG9wdGltYWwgcG9zaXRpb24gYmFzZWQgb24gdGhlIGF2YWlsYWJsZSBzcGFjZS5cbiAqXG4gKiBAcGFyYW0gZWxlbWVudCBUaGUgZWxlbWVudCBvZiB3aGljaCB0byBjYWxjdWxhdGUgdGhlIHBvc2l0aW9uLlxuICogQHBhcmFtIHRyaWdnZXIgVGhlIGVsZW1lbnQgcmVsYXRpdmUgdG8gd2hpY2ggdG8gY2FsY3VsYXRlIHRoZSBwb3NpdGlvbi5cbiAqIEBwYXJhbSBjb250YWluZXIgVGhlIGVsZW1lbnQgd2hpY2ggaGFzIHRoZSBwb3NpdGlvbjpmaXhlZCBhcHBsaWVkLlxuICogQHBhcmFtIHByb3BlcnRpZXMgUHJvcGVydGllcyB0byB0YWtlIGludG8gYWNjb3VudCBpbiBjYWxjdWxhdGlvbnMgKG9wdGlvbmFsKS5cbiAqIEBwYXJhbSBwcm9wZXJ0aWVzLnZlcnRpY2FsT2Zmc2V0IFRoZSBkaXN0YW5jZSB0byBiZSBhZGRlZCBiZXR3ZWVuIHRoZSBlbGVtZW50IGFuZCB0aGUgdHJpZ2dlciAob3B0aW9uYWwpLlxuICogQHBhcmFtIHByb3BlcnRpZXMuaG9yaXpvbnRhbE9mZnNldCBUaGUgaG9yaXpvbnRhbCBvZmZzZXQgdG8gYmUgYXBwbGllZCB0byB0aGUgZWxlbWVudCAob3B0aW9uYWwpLlxuICogQHBhcmFtIHByb3BlcnRpZXMucmVzcG9uc2l2ZUhlaWdodCBXaGV0aGVyIHRoZSBlbGVtZW50IGNhbGN1bGF0ZXMgaXRzIGhlaWdodCBiYXNlZCBvbiBpdHMgY29udGVudCAob3B0aW9uYWwpLlxuICogQHJldHVybnMgUmV0dXJucyBhbiBvYmplY3QgY29udGFpbmluZyB0aGUgbGVmdCBwb3NpdGlvbiwgdGhlIHRvcCBwb3NpdGlvbiwgdGhlIG1heGltdW0gaGVpZ2h0XG4gKiBvZiB0aGUgZWxlbWVudCBhbmQgdGhlIGN1cnJlbnQgYWxpZ25tZW50IG9iamVjdC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEVsZW1lbnRQb3NpdGlvbkhvcml6b250YWwoXG4gIGVsZW1lbnQ6IEhUTUxFbGVtZW50LFxuICB0cmlnZ2VyOiBIVE1MRWxlbWVudCxcbiAgY29udGFpbmVyOiBIVE1MRWxlbWVudCxcbiAgcHJvcGVydGllcz86IHtcbiAgICB2ZXJ0aWNhbE9mZnNldD86IG51bWJlcjtcbiAgICBob3Jpem9udGFsT2Zmc2V0PzogbnVtYmVyO1xuICAgIHJlc3BvbnNpdmVIZWlnaHQ/OiBib29sZWFuO1xuICAgIGNvbnRlbnRTZWxlY3Rvcj86IHN0cmluZztcbiAgfSxcbik6IFNiYkVsZW1lbnRQb3NpdGlvbkluZm9zIHtcbiAgY29uc3QgbWF4SGVpZ2h0T2Zmc2V0ID0gMTY7XG5cbiAgY29uc3QgdmVydGljYWxPZmZzZXQgPSBwcm9wZXJ0aWVzPy52ZXJ0aWNhbE9mZnNldCB8fCAwO1xuICBjb25zdCBob3Jpem9udGFsT2Zmc2V0ID0gcHJvcGVydGllcz8uaG9yaXpvbnRhbE9mZnNldCB8fCAwO1xuXG4gIGNvbnN0IHRyaWdnZXJSZWMgPSB0cmlnZ2VyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICBjb25zdCBlbGVtZW50UmVjID0gZ2V0RWxlbWVudFJlY3RhbmdsZShlbGVtZW50KTtcbiAgY29uc3QgdHJpZ2dlclBhcmVudFJlYyA9IHRyaWdnZXJcbiAgICAucGFyZW50RWxlbWVudCEuc2hhZG93Um9vdCEucXVlcnlTZWxlY3RvcihcbiAgICAgIHByb3BlcnRpZXM/LmNvbnRlbnRTZWxlY3RvciA/PyBgLiR7ZWxlbWVudC5jbGFzc05hbWV9YCxcbiAgICApIVxuICAgIC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgY29uc3QgY29udGFpbmVyUmVjdCA9IGNvbnRhaW5lci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcblxuICBjb25zdCBhdmFpbGFibGVTcGFjZVJpZ2h0ID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoIC0gdHJpZ2dlclBhcmVudFJlYy5yaWdodDtcbiAgY29uc3QgYXZhaWxhYmxlU3BhY2VCZWxvdyA9XG4gICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodCAtICh0cmlnZ2VyUmVjLnRvcCAtIHZlcnRpY2FsT2Zmc2V0KTtcbiAgY29uc3QgYXZhaWxhYmxlVmVydGljYWxTcGFjZSA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHQ7XG4gIGNvbnN0IGVsZW1lbnRNYXhIZWlnaHQgPSBgJHthdmFpbGFibGVWZXJ0aWNhbFNwYWNlIC0gbWF4SGVpZ2h0T2Zmc2V0ICogMn1weGA7XG4gIGNvbnN0IGFsaWdubWVudDogU2JiQWxpZ25tZW50ID0geyBob3Jpem9udGFsOiAnZW5kJywgdmVydGljYWw6ICdhYm92ZScgfTtcbiAgY29uc3QgZWxlbWVudFhPdmVyZmxvdyA9IGVsZW1lbnRSZWMub2Zmc2V0V2lkdGggKyBob3Jpem9udGFsT2Zmc2V0O1xuXG4gIC8vIERlZmF1bHQgZWxlbWVudCBhbGlnbm1lbnQgaXMgXCJlbmQvYWJvdmVcIlxuICBsZXQgZWxlbWVudFhQb3NpdGlvbiA9IHRyaWdnZXJQYXJlbnRSZWMucmlnaHQ7XG4gIGxldCBlbGVtZW50WVBvc2l0aW9uID0gdHJpZ2dlclJlYy50b3AgKyB2ZXJ0aWNhbE9mZnNldDtcblxuICAvLyBDaGVjayBpZiBob3Jpem9udGFsIGFsaWdubWVudCBuZWVkcyB0byBiZSBjaGFuZ2VkIHRvIFwic3RhcnRcIlxuICBpZiAoYXZhaWxhYmxlU3BhY2VSaWdodCA8IGVsZW1lbnRYT3ZlcmZsb3cgJiYgdHJpZ2dlclJlYy5sZWZ0ID4gZWxlbWVudFhPdmVyZmxvdykge1xuICAgIGVsZW1lbnRYUG9zaXRpb24gPSBlbGVtZW50WFBvc2l0aW9uIC0gdHJpZ2dlclBhcmVudFJlYy53aWR0aCAtIGVsZW1lbnRSZWMub2Zmc2V0V2lkdGg7XG4gICAgYWxpZ25tZW50Lmhvcml6b250YWwgPSAnc3RhcnQnO1xuICB9XG5cbiAgLy8gQWRkIGhvcml6b250YWwgb2Zmc2V0XG4gIGlmIChob3Jpem9udGFsT2Zmc2V0ICYmIGFsaWdubWVudC5ob3Jpem9udGFsICE9PSAnY2VudGVyJykge1xuICAgIGVsZW1lbnRYUG9zaXRpb24gKz0gaG9yaXpvbnRhbE9mZnNldCAqIChhbGlnbm1lbnQuaG9yaXpvbnRhbCA9PT0gJ3N0YXJ0JyA/IC0xIDogMSk7XG4gIH1cblxuICAvLyBDaGVjayBpZiB2ZXJ0aWNhbCBhbGlnbm1lbnQgbmVlZHMgdG8gYmUgY2hhbmdlZCB0byBcImFib3ZlXCI6XG4gIGlmIChhdmFpbGFibGVTcGFjZUJlbG93IDwgZWxlbWVudFJlYy5zY3JvbGxIZWlnaHQpIHtcbiAgICBlbGVtZW50WVBvc2l0aW9uID0gYXZhaWxhYmxlVmVydGljYWxTcGFjZSAtIGVsZW1lbnRSZWMuY2xpZW50SGVpZ2h0IC0gbWF4SGVpZ2h0T2Zmc2V0O1xuICB9XG5cbiAgLy8gV2hlbiB6b29taW5nIGluIFNhZmFyaSB0aGUgY29udGFpbmVyIHJlY3RhbmdsZSBjb250YWlucyBuZWdhdGl2ZSB2YWx1ZXMgZm9yIHRoZSBwb3NpdGlvbixcbiAgLy8gYW5kIHdlIG5lZWQgdG8gcmUtYWRkIHRoZW0gdG8gdGhlIGNhbGN1bGF0ZWQgY29vcmRpbmF0ZXMuXG4gIGlmIChjb250YWluZXJSZWN0LmxlZnQgPCAwKSB7XG4gICAgZWxlbWVudFhQb3NpdGlvbiAtPSBjb250YWluZXJSZWN0LmxlZnQ7XG4gIH1cblxuICAvLyBOb3JtYWxseSB0aGUgY29udGFpbmVyUmVjdCdzIHRvcCB2YWx1ZSB3b3VsZCBiZSB6ZXJvLCBob3dldmVyIHdoZW4gdGhlIG92ZXJsYXkgaXMgYXR0YWNoZWQgdG8gYW4gaW5wdXRcbiAgLy8gKGUuZy4gaW4gYW4gYXV0b2NvbXBsZXRlKSwgbW9iaWxlIGJyb3dzZXJzIHdpbGwgc2hpZnQgZXZlcnl0aGluZyBpbiBvcmRlciB0byBwdXQgdGhlIGlucHV0IGluIHRoZSBtaWRkbGVcbiAgLy8gb2YgdGhlIHNjcmVlbiBhbmQgdG8gbWFrZSBzcGFjZSBmb3IgdGhlIHZpcnR1YWwga2V5Ym9hcmQuIFdlIG5lZWQgdG8gYWNjb3VudCBmb3IgdGhpcyBvZmZzZXQsXG4gIC8vIG90aGVyd2lzZSBvdXIgcG9zaXRpb25pbmcgd2lsbCBiZSB0aHJvd24gb2ZmLlxuICAvLyBBZGRpdGlvbmFsbHksIHdoZW4gem9vbWluZyBpbiBTYWZhcmkgdGhpcyBmaXhlcyB0aGUgdmVydGljYWwgcG9zaXRpb24uXG4gIGlmIChjb250YWluZXJSZWN0LnRvcCA8IDApIHtcbiAgICBlbGVtZW50WVBvc2l0aW9uIC09IGNvbnRhaW5lclJlY3QudG9wO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICB0b3A6IGVsZW1lbnRZUG9zaXRpb24sXG4gICAgbGVmdDogZWxlbWVudFhQb3NpdGlvbixcbiAgICBtYXhIZWlnaHQ6IGVsZW1lbnRNYXhIZWlnaHQsXG4gICAgYWxpZ25tZW50OiBhbGlnbm1lbnQsXG4gIH07XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7QUFvQkEsU0FBZ0Isb0JBQW9CLElBQWU7Q0FDakQsTUFBTSxlQUFlLE9BQU8saUJBQWlCLEdBQUcsRUFDOUMsaUJBQWlCLGFBQWEsU0FDOUIsbUJBQW1CLFNBQVMsYUFBYSxXQUFXLEdBQUcsQ0FBQyxVQUFVO0FBR3BFLEtBQUksbUJBQW1CLFVBQVUscUJBQXFCLElBQ3BELFFBQU87RUFDTCxjQUFjLEdBQUc7RUFDakIsY0FBYyxHQUFHO0VBQ2pCLGNBQWMsR0FBRztFQUNqQixhQUFhLEdBQUc7RUFDaEIsYUFBYSxHQUFHO0VBQ2hCLGFBQWEsR0FBRztFQUNqQjtBQUtILElBQUcsTUFBTSxXQUFXO0FBQ3BCLElBQUcsTUFBTSxhQUFhO0FBQ3RCLElBQUcsTUFBTSxVQUFVO0NBRW5CLE1BQU0sZUFBZSxHQUFHLGNBQ3RCLGVBQWUsR0FBRyxjQUNsQixlQUFlLEdBQUcsY0FDbEIsY0FBYyxHQUFHLGFBQ2pCLGNBQWMsR0FBRyxhQUNqQixjQUFjLEdBQUc7QUFHbkIsSUFBRyxNQUFNLFVBQVU7QUFDbkIsSUFBRyxNQUFNLFdBQVc7QUFDcEIsSUFBRyxNQUFNLGFBQWE7QUFFdEIsUUFBTztFQUFFO0VBQWM7RUFBYztFQUFjO0VBQWE7RUFBYTtFQUFhOzs7OztBQU01RixTQUFnQixpQkFDZCxTQUNBLE9BQWdDO0FBRWhDLEtBQUksQ0FBQyxXQUFXLENBQUMsTUFDZixRQUFPO0NBR1QsTUFBTSxPQUFPLFFB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
153
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9zaXRpb24uanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NvcmUvb3ZlcmxheS9wb3NpdGlvbi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdHlwZSBFbGVtZW50UmVjdGFuZ2xlID0gUGljazxcbiAgSFRNTEVsZW1lbnQsXG4gICdzY3JvbGxIZWlnaHQnIHwgJ2NsaWVudEhlaWdodCcgfCAnb2Zmc2V0SGVpZ2h0JyB8ICdzY3JvbGxXaWR0aCcgfCAnY2xpZW50V2lkdGgnIHwgJ29mZnNldFdpZHRoJ1xuPjtcblxuZXhwb3J0IGludGVyZmFjZSBTYmJBbGlnbm1lbnQge1xuICBob3Jpem9udGFsOiAnc3RhcnQnIHwgJ2NlbnRlcicgfCAnZW5kJztcbiAgdmVydGljYWw6ICdhYm92ZScgfCAnYmVsb3cnO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNiYkVsZW1lbnRQb3NpdGlvbkluZm9zIHtcbiAgdG9wOiBudW1iZXI7XG4gIGxlZnQ6IG51bWJlcjtcbiAgbWF4SGVpZ2h0OiBzdHJpbmc7XG4gIGFsaWdubWVudDogU2JiQWxpZ25tZW50O1xufVxuXG4vKipcbiAqIEdldHMgaGVpZ2h0IGFuZCB3aWR0aCBvZiBhbiBlbGVtZW50IGV2ZW4gaWYgaXQncyBoaWRkZW4gKGBkaXNwbGF5OiBub25lYCkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRFbGVtZW50UmVjdGFuZ2xlKGVsOiBIVE1MRWxlbWVudCk6IEVsZW1lbnRSZWN0YW5nbGUge1xuICBjb25zdCBlbGVtZW50U3R5bGUgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShlbCksXG4gICAgZWxlbWVudERpc3BsYXkgPSBlbGVtZW50U3R5bGUuZGlzcGxheSxcbiAgICBlbGVtZW50TWF4SGVpZ2h0ID0gcGFyc2VJbnQoZWxlbWVudFN0eWxlLm1heEhlaWdodCwgMTApLnRvU3RyaW5nKCk7XG5cbiAgLy8gSWYgaXQgaXMgbm90IGhpZGRlbiB3ZSBqdXN0IHJldHVybiBub3JtYWwgaGVpZ2h0XG4gIGlmIChlbGVtZW50RGlzcGxheSAhPT0gJ25vbmUnICYmIGVsZW1lbnRNYXhIZWlnaHQgIT09ICcwJykge1xuICAgIHJldHVybiB7XG4gICAgICBzY3JvbGxIZWlnaHQ6IGVsLnNjcm9sbEhlaWdodCxcbiAgICAgIGNsaWVudEhlaWdodDogZWwuY2xpZW50SGVpZ2h0LFxuICAgICAgb2Zmc2V0SGVpZ2h0OiBlbC5vZmZzZXRIZWlnaHQsXG4gICAgICBzY3JvbGxXaWR0aDogZWwuc2Nyb2xsV2lkdGgsXG4gICAgICBjbGllbnRXaWR0aDogZWwuY2xpZW50V2lkdGgsXG4gICAgICBvZmZzZXRXaWR0aDogZWwub2Zmc2V0V2lkdGgsXG4gICAgfTtcbiAgfVxuXG4gIC8vIFRoZSBlbGVtZW50IGlzIGhpZGRlbiBzbzpcbiAgLy8gbWFrZSB0aGUgZWwgYmxvY2sgaW4gb3JkZXIgdG8gbWVhc3VyZSBpdHMgaGVpZ2h0IGJ1dCBzdGlsbCBiZSBoaWRkZW5cbiAgZWwuc3R5bGUucG9zaXRpb24gPSAnYWJzb2x1dGUnO1xuICBlbC5zdHlsZS52aXNpYmlsaXR5ID0gJ2hpZGRlbic7XG4gIGVsLnN0eWxlLmRpc3BsYXkgPSAnYmxvY2snO1xuXG4gIGNvbnN0IHNjcm9sbEhlaWdodCA9IGVsLnNjcm9sbEhlaWdodCxcbiAgICBjbGllbnRIZWlnaHQgPSBlbC5jbGllbnRIZWlnaHQsXG4gICAgb2Zmc2V0SGVpZ2h0ID0gZWwub2Zmc2V0SGVpZ2h0LFxuICAgIHNjcm9sbFdpZHRoID0gZWwuc2Nyb2xsV2lkdGgsXG4gICAgY2xpZW50V2lkdGggPSBlbC5jbGllbnRXaWR0aCxcbiAgICBvZmZzZXRXaWR0aCA9IGVsLm9mZnNldFdpZHRoO1xuXG4gIC8vIFJldmVydGluZyB0byB0aGUgb3JpZ2luYWwgdmFsdWVzXG4gIGVsLnN0eWxlLmRpc3BsYXkgPSAnJztcbiAgZWwuc3R5bGUucG9zaXRpb24gPSAnJztcbiAgZWwuc3R5bGUudmlzaWJpbGl0eSA9ICcnO1xuXG4gIHJldHVybiB7IHNjcm9sbEhlaWdodCwgY2xpZW50SGVpZ2h0LCBvZmZzZXRIZWlnaHQsIHNjcm9sbFdpZHRoLCBjbGllbnRXaWR0aCwgb2Zmc2V0V2lkdGggfTtcbn1cblxuLyoqXG4gKiBEZXRlcm1pbmVzIHdoZXRoZXIgYW4gZXZlbnQgaXMgZmlyZWQgb24gYSBzcGVjaWZpYyBlbGVtZW50LlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNFdmVudE9uRWxlbWVudChcbiAgZWxlbWVudDogSFRNTEVsZW1lbnQgfCBudWxsLFxuICBldmVudDogTW91c2VFdmVudCB8IFBvaW50ZXJFdmVudCxcbik6IGJvb2xlYW4ge1xuICBpZiAoIWVsZW1lbnQgfHwgIWV2ZW50KSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgY29uc3QgcmVjdCA9IGVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gIHJldHVybiAoXG4gICAgcmVjdC50b3AgPD0gZXZlbnQuY2xpZW50WSAmJlxuICAgIGV2ZW50LmNsaWVudFkgPD0gcmVjdC50b3AgKyByZWN0LmhlaWdodCAmJlxuICAgIHJlY3QubGVmdCA8PSBldmVudC5jbGllbnRYICYmXG4gICAgZXZlbnQuY2xpZW50WCA8PSByZWN0LmxlZnQgKyByZWN0LndpZHRoXG4gICk7XG59XG5cbi8qKlxuICogRGV0ZXJtaW5lcyB0aGUgcG9zaXRpb24gb2YgYW4gZWxlbWVudCByZWxhdGl2ZSB0byBhIHRyaWdnZXIgZWxlbWVudCBieSBldmFsdWF0aW5nXG4gKiB0aGUgb3B0aW1hbCBwb3NpdGlvbiBiYXNlZCBvbiB0aGUgYXZhaWxhYmxlIHNwYWNlLlxuICpcbiAqIEBwYXJhbSBlbGVtZW50IFRoZSBlbGVtZW50IG9mIHdoaWNoIHRvIGNhbGN1bGF0ZSB0aGUgcG9zaXRpb24uXG4gKiBAcGFyYW0gdHJpZ2dlciBUaGUgZWxlbWVudCByZWxhdGl2ZSB0byB3aGljaCB0byBjYWxjdWxhdGUgdGhlIHBvc2l0aW9uLlxuICogQHBhcmFtIGNvbnRhaW5lciBUaGUgZWxlbWVudCB3aGljaCBoYXMgdGhlIHBvc2l0aW9uOmZpeGVkIGFwcGxpZWQuXG4gKiBAcGFyYW0gcHJvcGVydGllcyBQcm9wZXJ0aWVzIHRvIHRha2UgaW50byBhY2NvdW50IGluIGNhbGN1bGF0aW9ucyAob3B0aW9uYWwpLlxuICogQHBhcmFtIHByb3BlcnRpZXMudmVydGljYWxPZmZzZXQgVGhlIGRpc3RhbmNlIHRvIGJlIGFkZGVkIGJldHdlZW4gdGhlIGVsZW1lbnQgYW5kIHRoZSB0cmlnZ2VyIChvcHRpb25hbCkuXG4gKiBAcGFyYW0gcHJvcGVydGllcy5ob3Jpem9udGFsT2Zmc2V0IFRoZSBob3Jpem9udGFsIG9mZnNldCB0byBiZSBhcHBsaWVkIHRvIHRoZSBlbGVtZW50IChvcHRpb25hbCkuXG4gKiBAcGFyYW0gcHJvcGVydGllcy5jZW50ZXJlZCBXaGV0aGVyIHRoZSBlbGVtZW50IHNob3VsZCBiZSBwbGFjZWQgaW4gdGhlIGNlbnRlciBieSBkZWZhdWx0IChvcHRpb25hbCkuXG4gKiBAcGFyYW0gcHJvcGVydGllcy5yZXNwb25zaXZlSGVpZ2h0IFdoZXRoZXIgdGhlIGVsZW1lbnQgY2FsY3VsYXRlcyBpdHMgaGVpZ2h0IGJhc2VkIG9uIGl0cyBjb250ZW50IChvcHRpb25hbCkuXG4gKiBAcmV0dXJucyBSZXR1cm5zIGFuIG9iamVjdCBjb250YWluaW5nIHRoZSBsZWZ0IHBvc2l0aW9uLCB0aGUgdG9wIHBvc2l0aW9uLCB0aGUgbWF4aW11bSBoZWlnaHRcbiAqIG9mIHRoZSBlbGVtZW50IGFuZCB0aGUgY3VycmVudCBhbGlnbm1lbnQgb2JqZWN0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0RWxlbWVudFBvc2l0aW9uKFxuICBlbGVtZW50OiBIVE1MRWxlbWVudCxcbiAgdHJpZ2dlcjogSFRNTEVsZW1lbnQsXG4gIGNvbnRhaW5lcjogSFRNTEVsZW1lbnQsXG4gIHByb3BlcnRpZXM/OiB7XG4gICAgdmVydGljYWxPZmZzZXQ/OiBudW1iZXI7XG4gICAgaG9yaXpvbnRhbE9mZnNldD86IG51bWJlcjtcbiAgICBjZW50ZXJlZD86IGJvb2xlYW47XG4gICAgcmVzcG9uc2l2ZUhlaWdodD86IGJvb2xlYW47XG4gICAgZm9yY2VBYm92ZT86IGJvb2xlYW47XG4gICAgZm9yY2VCZWxvdz86IGJvb2xlYW47XG4gIH0sXG4pOiBTYmJFbGVtZW50UG9zaXRpb25JbmZvcyB7XG4gIGNvbnN0IG1heFdpZHRoT2Zmc2V0ID0gMTY7XG4gIGNvbnN0IHZlcnRpY2FsT2Zmc2V0ID0gcHJvcGVydGllcz8udmVydGljYWxPZmZzZXQgfHwgMDtcbiAgY29uc3QgaG9yaXpvbnRhbE9mZnNldCA9IHByb3BlcnRpZXM/Lmhvcml6b250YWxPZmZzZXQgfHwgMDtcbiAgY29uc3QgcmVzcG9uc2l2ZUhlaWdodCA9IHByb3BlcnRpZXM/LnJlc3BvbnNpdmVIZWlnaHQgfHwgZmFsc2U7XG5cbiAgY29uc3QgdHJpZ2dlclJlYyA9IHRyaWdnZXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gIGNvbnN0IGVsZW1lbnRSZWMgPSBnZXRFbGVtZW50UmVjdGFuZ2xlKGVsZW1lbnQpO1xuXG4gIGNvbnN0IHRyaWdnZXJMZWZ0ID0gdHJpZ2dlclJlYy5sZWZ0O1xuICBjb25zdCB0cmlnZ2VyVG9wID0gdHJpZ2dlclJlYy50b3A7XG5cbiAgY29uc3QgYXZhaWxhYmxlU3BhY2VSaWdodCA9XG4gICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoIC0gKHRyaWdnZXJMZWZ0ICsgdHJpZ2dlclJlYy53aWR0aCk7XG4gIGNvbnN0IGF2YWlsYWJsZVNwYWNlQWJvdmUgPSB0cmlnZ2VyVG9wIC0gdmVydGljYWxPZmZzZXQ7XG4gIGNvbnN0IGF2YWlsYWJsZVNwYWNlQmVsb3cgPVxuICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHQgLSAodHJpZ2dlclRvcCArIHRyaWdnZXJSZWMuaGVpZ2h0ICsgdmVydGljYWxPZmZzZXQpO1xuXG4gIC8vIERlZmF1bHQgZWxlbWVudCBhbGlnbm1lbnQgaXMgXCJzdGFydC9iZWxvd1wiXG4gIGxldCBlbGVtZW50WFBvc2l0aW9uID0gdHJpZ2dlckxlZnQ7XG4gIGxldCBlbGVtZW50WVBvc2l0aW9uID0gdHJpZ2dlclRvcCArIHRyaWdnZXJSZWMuaGVpZ2h0ICsgdmVydGljYWxPZmZzZXQ7XG4gIGxldCBlbGVtZW50WE92ZXJmbG93ID0gZWxlbWVudFJlYy5vZmZzZXRXaWR0aCAtIHRyaWdnZXJSZWMud2lkdGg7XG4gIGNvbnN0IGFsaWdubWVudDogU2JiQWxpZ25tZW50ID0geyBob3Jpem9udGFsOiAnc3RhcnQnLCB2ZXJ0aWNhbDogJ2JlbG93JyB9O1xuXG4gIC8vIENhbGN1bGF0ZSBlbGVtZW50IG1heC1oZWlnaHRcbiAgbGV0IGVsZW1lbnRNYXhIZWlnaHQgPSBgJHthdmFpbGFibGVTcGFjZUJlbG93IC0gdmVydGljYWxPZmZzZXR9cHhgO1xuXG4gIC8vIENoZWNrIGlmIGhvcml6b250YWwgYWxpZ25tZW50IG5lZWRzIHRvIGJlIGNoYW5nZWQgdG8gXCJjZW50ZXJcIlxuICBpZiAoXG4gICAgcHJvcGVydGllcz8uY2VudGVyZWQgJiZcbiAgICB0cmlnZ2VyTGVmdCAtIG1heFdpZHRoT2Zmc2V0ICsgdHJpZ2dlclJlYy53aWR0aCAvIDIgPiBlbGVtZW50UmVjLm9mZnNldFdpZHRoIC8gMiAmJlxuICAgIGF2YWlsYWJsZVNwYWNlUmlnaHQgLSBtYXhXaWR0aE9mZnNldCA+IGVsZW1lbnRYT3ZlcmZsb3cgLyAyXG4gICkge1xuICAgIGVsZW1lbnRYUG9zaXRpb24gLT0gZWxlbWVudFhPdmVyZmxvdyAvPSAyO1xuICAgIGFsaWdubWVudC5ob3Jpem9udGFsID0gJ2NlbnRlcic7XG4gIH1cblxuICAvLyBDaGVjayBpZiBob3Jpem9udGFsIGFsaWdubWVudCBuZWVkcyB0byBiZSBjaGFuZ2VkIHRvIFwiZW5kXCJcbiAgaWYgKGF2YWlsYWJsZVNwYWNlUmlnaHQgPCBlbGVtZW50WE92ZXJmbG93ICYmIHRyaWdnZXJMZWZ0ID4gZWxlbWVudFhPdmVyZmxvdykge1xuICAgIGVsZW1lbnRYUG9zaXRpb24gPSBlbGVtZW50WFBvc2l0aW9uIC0gZWxlbWVudFhPdmVyZmxvdztcbiAgICBhbGlnbm1lbnQuaG9yaXpvbnRhbCA9ICdlbmQnO1xuICB9XG5cbiAgLy8gQWRkIGhvcml6b250YWwgb2Zmc2V0XG4gIGlmIChcbiAgICBob3Jpem9udGFsT2Zmc2V0ICYmXG4gICAgYWxpZ25tZW50Lmhvcml6b250YWwgIT09ICdjZW50ZXInICYmXG4gICAgdHJpZ2dlclJlYy53aWR0aCAvIDIgPCBob3Jpem9udGFsT2Zmc2V0XG4gICkge1xuICAgIGVsZW1lbnRYUG9zaXRpb24gKz0gaG9yaXpvbnRhbE9mZnNldCAqIChhbGlnbm1lbnQuaG9yaXpvbnRhbCA9PT0gJ3N0YXJ0JyA/IC0xIDogMSk7XG4gIH1cblxuICAvLyBDaGVjayB3aGV0aGVyIHRoZXJlIGlzIGluc3VmZmljaWVudCBzcGFjZSBvbiBib3RoIHNpZGVzXG4gIGlmIChcbiAgICAodHJpZ2dlckxlZnQgPCBlbGVtZW50WE92ZXJmbG93ICYmIGF2YWlsYWJsZVNwYWNlUmlnaHQgPCBlbGVtZW50WE92ZXJmbG93KSB8fFxuICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRXaWR0aCA8IGVsZW1lbnRSZWMub2Zmc2V0V2lkdGhcbiAgKSB7XG4gICAgZWxlbWVudFhQb3NpdGlvbiA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRXaWR0aCAvIDIgLSBlbGVtZW50UmVjLm9mZnNldFdpZHRoIC8gMjtcbiAgfVxuXG4gIC8vIENoZWNrIGlmIHZlcnRpY2FsIGFsaWdubWVudCBuZWVkcyB0byBiZSBjaGFuZ2VkIHRvIFwiYWJvdmVcIi5cbiAgLy8gV2hlbiB0aGUgZWxlbWVudCBkb2Vzbid0IGZpdCBpbiBlaXRoZXIgZGlyZWN0aW9uLCBwcmVmZXIgdGhlIHNpZGUgd2l0aCBtb3JlIHNwYWNlXG4gIC8vIHRvIGF2b2lkIGFuIGluZmluaXRlIHJlcG9zaXRpb25pbmcgbG9vcCAoYWJvdmUg4oaUIGJlbG93KS5cbiAgY29uc3QgZml0c0JlbG93ID0gYXZhaWxhYmxlU3BhY2VCZWxvdyAtIHZlcnRpY2FsT2Zmc2V0ID49IGVsZW1lbnRSZWMuc2Nyb2xsSGVpZ2h0O1xuICBjb25zdCBmaXRzQWJvdmUgPVxuICAgIGF2YWlsYWJsZVNwYWNlQWJvdmUgLSB2ZXJ0aWNhbE9mZnNldCA+PVxuICAgIChyZXNwb25zaXZlSGVpZ2h0ID8gZWxlbWVudFJlYy5jbGllbnRIZWlnaHQgOiBlbGVtZW50UmVjLnNjcm9sbEhlaWdodCk7XG4gIGNvbnN0IG1vcmVTcGFjZUFib3ZlID0gYXZhaWxhYmxlU3BhY2VBYm92ZSA+IGF2YWlsYWJsZVNwYWNlQmVsb3c7XG4gIGNvbnN0IHNob3VsZE9wZW5BYm92ZSA9ICFmaXRzQmVsb3cgJiYgKGZpdHNBYm92ZSB8fCBtb3JlU3BhY2VBYm92ZSk7XG5cbiAgaWYgKCFwcm9wZXJ0aWVzPy5mb3JjZUJlbG93ICYmIChwcm9wZXJ0aWVzPy5mb3JjZUFib3ZlIHx8IHNob3VsZE9wZW5BYm92ZSkpIHtcbiAgICBlbGVtZW50WVBvc2l0aW9uID1cbiAgICAgIGF2YWlsYWJsZVNwYWNlQWJvdmUgPCBlbGVtZW50UmVjLnNjcm9sbEhlaWdodFxuICAgICAgICA/IGVsZW1lbnRZUG9zaXRpb24gLSB0cmlnZ2VyUmVjLmhlaWdodCAtIGF2YWlsYWJsZVNwYWNlQWJvdmUgLSB2ZXJ0aWNhbE9mZnNldFxuICAgICAgICA6IHRyaWdnZXJUb3AgLSBlbGVtZW50UmVjLmNsaWVudEhlaWdodCAtIHZlcnRpY2FsT2Zmc2V0O1xuXG4gICAgZWxlbWVudE1heEhlaWdodCA9IGAke2F2YWlsYWJsZVNwYWNlQWJvdmUgLSB2ZXJ0aWNhbE9mZnNldH1weGA7XG4gICAgYWxpZ25tZW50LnZlcnRpY2FsID0gJ2Fib3ZlJztcbiAgfVxuXG4gIGNvbnN0IGNvbnRhaW5lclJlY3QgPSBjb250YWluZXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG5cbiAgLy8gV2hlbiB6b29taW5nIGluIFNhZmFyaSB0aGUgY29udGFpbmVyIHJlY3RhbmdsZSBjb250YWlucyBuZWdhdGl2ZSB2YWx1ZXMgZm9yIHRoZSBwb3NpdGlvbixcbiAgLy8gYW5kIHdlIG5lZWQgdG8gcmUtYWRkIHRoZW0gdG8gdGhlIGNhbGN1bGF0ZWQgY29vcmRpbmF0ZXMuXG4gIGlmIChjb250YWluZXJSZWN0LmxlZnQgPCAwKSB7XG4gICAgZWxlbWVudFhQb3NpdGlvbiAtPSBjb250YWluZXJSZWN0LmxlZnQ7XG4gIH1cblxuICAvLyBOb3JtYWxseSB0aGUgY29udGFpbmVyUmVjdCdzIHRvcCB2YWx1ZSB3b3VsZCBiZSB6ZXJvLCBob3dldmVyIHdoZW4gdGhlIG92ZXJsYXkgaXMgYXR0YWNoZWQgdG8gYW4gaW5wdXRcbiAgLy8gKGUuZy4gaW4gYW4gYXV0b2NvbXBsZXRlKSwgbW9iaWxlIGJyb3dzZXJzIHdpbGwgc2hpZnQgZXZlcnl0aGluZyBpbiBvcmRlciB0byBwdXQgdGhlIGlucHV0IGluIHRoZSBtaWRkbGVcbiAgLy8gb2YgdGhlIHNjcmVlbiBhbmQgdG8gbWFrZSBzcGFjZSBmb3IgdGhlIHZpcnR1YWwga2V5Ym9hcmQuIFdlIG5lZWQgdG8gYWNjb3VudCBmb3IgdGhpcyBvZmZzZXQsXG4gIC8vIG90aGVyd2lzZSBvdXIgcG9zaXRpb25pbmcgd2lsbCBiZSB0aHJvd24gb2ZmLlxuICAvLyBBZGRpdGlvbmFsbHksIHdoZW4gem9vbWluZyBpbiBTYWZhcmkgdGhpcyBmaXhlcyB0aGUgdmVydGljYWwgcG9zaXRpb24uXG4gIGlmIChjb250YWluZXJSZWN0LnRvcCA8IDApIHtcbiAgICBlbGVtZW50WVBvc2l0aW9uIC09IGNvbnRhaW5lclJlY3QudG9wO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICB0b3A6IGVsZW1lbnRZUG9zaXRpb24sXG4gICAgbGVmdDogZWxlbWVudFhQb3NpdGlvbixcbiAgICBtYXhIZWlnaHQ6IGVsZW1lbnRNYXhIZWlnaHQsXG4gICAgYWxpZ25tZW50OiBhbGlnbm1lbnQsXG4gIH07XG59XG5cbi8qKlxuICogRGV0ZXJtaW5lcyB0aGUgcG9zaXRpb24gb2YgYW4gZWxlbWVudCByZWxhdGl2ZSB0byBhIHRyaWdnZXIgZWxlbWVudCBieSBldmFsdWF0aW5nXG4gKiB0aGUgb3B0aW1hbCBwb3NpdGlvbiBiYXNlZCBvbiB0aGUgYXZhaWxhYmxlIHNwYWNlLlxuICpcbiAqIEBwYXJhbSBlbGVtZW50IFRoZSBlbGVtZW50IG9mIHdoaWNoIHRvIGNhbGN1bGF0ZSB0aGUgcG9zaXRpb24uXG4gKiBAcGFyYW0gdHJpZ2dlciBUaGUgZWxlbWVudCByZWxhdGl2ZSB0byB3aGljaCB0byBjYWxjdWxhdGUgdGhlIHBvc2l0aW9uLlxuICogQHBhcmFtIGNvbnRhaW5lciBUaGUgZWxlbWVudCB3aGljaCBoYXMgdGhlIHBvc2l0aW9uOmZpeGVkIGFwcGxpZWQuXG4gKiBAcGFyYW0gcHJvcGVydGllcyBQcm9wZXJ0aWVzIHRvIHRha2UgaW50byBhY2NvdW50IGluIGNhbGN1bGF0aW9ucyAob3B0aW9uYWwpLlxuICogQHBhcmFtIHByb3BlcnRpZXMudmVydGljYWxPZmZzZXQgVGhlIGRpc3RhbmNlIHRvIGJlIGFkZGVkIGJldHdlZW4gdGhlIGVsZW1lbnQgYW5kIHRoZSB0cmlnZ2VyIChvcHRpb25hbCkuXG4gKiBAcGFyYW0gcHJvcGVydGllcy5ob3Jpem9udGFsT2Zmc2V0IFRoZSBob3Jpem9udGFsIG9mZnNldCB0byBiZSBhcHBsaWVkIHRvIHRoZSBlbGVtZW50IChvcHRpb25hbCkuXG4gKiBAcGFyYW0gcHJvcGVydGllcy5yZXNwb25zaXZlSGVpZ2h0IFdoZXRoZXIgdGhlIGVsZW1lbnQgY2FsY3VsYXRlcyBpdHMgaGVpZ2h0IGJhc2VkIG9uIGl0cyBjb250ZW50IChvcHRpb25hbCkuXG4gKiBAcmV0dXJucyBSZXR1cm5zIGFuIG9iamVjdCBjb250YWluaW5nIHRoZSBsZWZ0IHBvc2l0aW9uLCB0aGUgdG9wIHBvc2l0aW9uLCB0aGUgbWF4aW11bSBoZWlnaHRcbiAqIG9mIHRoZSBlbGVtZW50IGFuZCB0aGUgY3VycmVudCBhbGlnbm1lbnQgb2JqZWN0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0RWxlbWVudFBvc2l0aW9uSG9yaXpvbnRhbChcbiAgZWxlbWVudDogSFRNTEVsZW1lbnQsXG4gIHRyaWdnZXI6IEhUTUxFbGVtZW50LFxuICBjb250YWluZXI6IEhUTUxFbGVtZW50LFxuICBwcm9wZXJ0aWVzPzoge1xuICAgIHZlcnRpY2FsT2Zmc2V0PzogbnVtYmVyO1xuICAgIGhvcml6b250YWxPZmZzZXQ/OiBudW1iZXI7XG4gICAgcmVzcG9uc2l2ZUhlaWdodD86IGJvb2xlYW47XG4gICAgY29udGVudFNlbGVjdG9yPzogc3RyaW5nO1xuICB9LFxuKTogU2JiRWxlbWVudFBvc2l0aW9uSW5mb3Mge1xuICBjb25zdCBtYXhIZWlnaHRPZmZzZXQgPSAxNjtcblxuICBjb25zdCB2ZXJ0aWNhbE9mZnNldCA9IHByb3BlcnRpZXM/LnZlcnRpY2FsT2Zmc2V0IHx8IDA7XG4gIGNvbnN0IGhvcml6b250YWxPZmZzZXQgPSBwcm9wZXJ0aWVzPy5ob3Jpem9udGFsT2Zmc2V0IHx8IDA7XG5cbiAgY29uc3QgdHJpZ2dlclJlYyA9IHRyaWdnZXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gIGNvbnN0IGVsZW1lbnRSZWMgPSBnZXRFbGVtZW50UmVjdGFuZ2xlKGVsZW1lbnQpO1xuICBjb25zdCB0cmlnZ2VyUGFyZW50UmVjID0gdHJpZ2dlclxuICAgIC5wYXJlbnRFbGVtZW50IS5zaGFkb3dSb290IS5xdWVyeVNlbGVjdG9yKFxuICAgICAgcHJvcGVydGllcz8uY29udGVudFNlbGVjdG9yID8/IGAuJHtlbGVtZW50LmNsYXNzTmFtZX1gLFxuICAgICkhXG4gICAgLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICBjb25zdCBjb250YWluZXJSZWN0ID0gY29udGFpbmVyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuXG4gIGNvbnN0IGF2YWlsYWJsZVNwYWNlUmlnaHQgPSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50V2lkdGggLSB0cmlnZ2VyUGFyZW50UmVjLnJpZ2h0O1xuICBjb25zdCBhdmFpbGFibGVTcGFjZUJlbG93ID1cbiAgICBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0IC0gKHRyaWdnZXJSZWMudG9wIC0gdmVydGljYWxPZmZzZXQpO1xuICBjb25zdCBhdmFpbGFibGVWZXJ0aWNhbFNwYWNlID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodDtcbiAgY29uc3QgZWxlbWVudE1heEhlaWdodCA9IGAke2F2YWlsYWJsZVZlcnRpY2FsU3BhY2UgLSBtYXhIZWlnaHRPZmZzZXQgKiAyfXB4YDtcbiAgY29uc3QgYWxpZ25tZW50OiBTYmJBbGlnbm1lbnQgPSB7IGhvcml6b250YWw6ICdlbmQnLCB2ZXJ0aWNhbDogJ2Fib3ZlJyB9O1xuICBjb25zdCBlbGVtZW50WE92ZXJmbG93ID0gZWxlbWVudFJlYy5vZmZzZXRXaWR0aCArIGhvcml6b250YWxPZmZzZXQ7XG5cbiAgLy8gRGVmYXVsdCBlbGVtZW50IGFsaWdubWVudCBpcyBcImVuZC9hYm92ZVwiXG4gIGxldCBlbGVtZW50WFBvc2l0aW9uID0gdHJpZ2dlclBhcmVudFJlYy5yaWdodDtcbiAgbGV0IGVsZW1lbnRZUG9zaXRpb24gPSB0cmlnZ2VyUmVjLnRvcCArIHZlcnRpY2FsT2Zmc2V0O1xuXG4gIC8vIENoZWNrIGlmIGhvcml6b250YWwgYWxpZ25tZW50IG5lZWRzIHRvIGJlIGNoYW5nZWQgdG8gXCJzdGFydFwiXG4gIGlmIChhdmFpbGFibGVTcGFjZVJpZ2h0IDwgZWxlbWVudFhPdmVyZmxvdyAmJiB0cmlnZ2VyUmVjLmxlZnQgPiBlbGVtZW50WE92ZXJmbG93KSB7XG4gICAgZWxlbWVudFhQb3NpdGlvbiA9IGVsZW1lbnRYUG9zaXRpb24gLSB0cmlnZ2VyUGFyZW50UmVjLndpZHRoIC0gZWxlbWVudFJlYy5vZmZzZXRXaWR0aDtcbiAgICBhbGlnbm1lbnQuaG9yaXpvbnRhbCA9ICdzdGFydCc7XG4gIH1cblxuICAvLyBBZGQgaG9yaXpvbnRhbCBvZmZzZXRcbiAgaWYgKGhvcml6b250YWxPZmZzZXQgJiYgYWxpZ25tZW50Lmhvcml6b250YWwgIT09ICdjZW50ZXInKSB7XG4gICAgZWxlbWVudFhQb3NpdGlvbiArPSBob3Jpem9udGFsT2Zmc2V0ICogKGFsaWdubWVudC5ob3Jpem9udGFsID09PSAnc3RhcnQnID8gLTEgOiAxKTtcbiAgfVxuXG4gIC8vIENoZWNrIGlmIHZlcnRpY2FsIGFsaWdubWVudCBuZWVkcyB0byBiZSBjaGFuZ2VkIHRvIFwiYWJvdmVcIjpcbiAgaWYgKGF2YWlsYWJsZVNwYWNlQmVsb3cgPCBlbGVtZW50UmVjLnNjcm9sbEhlaWdodCkge1xuICAgIGVsZW1lbnRZUG9zaXRpb24gPSBhdmFpbGFibGVWZXJ0aWNhbFNwYWNlIC0gZWxlbWVudFJlYy5jbGllbnRIZWlnaHQgLSBtYXhIZWlnaHRPZmZzZXQ7XG4gIH1cblxuICAvLyBXaGVuIHpvb21pbmcgaW4gU2FmYXJpIHRoZSBjb250YWluZXIgcmVjdGFuZ2xlIGNvbnRhaW5zIG5lZ2F0aXZlIHZhbHVlcyBmb3IgdGhlIHBvc2l0aW9uLFxuICAvLyBhbmQgd2UgbmVlZCB0byByZS1hZGQgdGhlbSB0byB0aGUgY2FsY3VsYXRlZCBjb29yZGluYXRlcy5cbiAgaWYgKGNvbnRhaW5lclJlY3QubGVmdCA8IDApIHtcbiAgICBlbGVtZW50WFBvc2l0aW9uIC09IGNvbnRhaW5lclJlY3QubGVmdDtcbiAgfVxuXG4gIC8vIE5vcm1hbGx5IHRoZSBjb250YWluZXJSZWN0J3MgdG9wIHZhbHVlIHdvdWxkIGJlIHplcm8sIGhvd2V2ZXIgd2hlbiB0aGUgb3ZlcmxheSBpcyBhdHRhY2hlZCB0byBhbiBpbnB1dFxuICAvLyAoZS5nLiBpbiBhbiBhdXRvY29tcGxldGUpLCBtb2JpbGUgYnJvd3NlcnMgd2lsbCBzaGlmdCBldmVyeXRoaW5nIGluIG9yZGVyIHRvIHB1dCB0aGUgaW5wdXQgaW4gdGhlIG1pZGRsZVxuICAvLyBvZiB0aGUgc2NyZWVuIGFuZCB0byBtYWtlIHNwYWNlIGZvciB0aGUgdmlydHVhbCBrZXlib2FyZC4gV2UgbmVlZCB0byBhY2NvdW50IGZvciB0aGlzIG9mZnNldCxcbiAgLy8gb3RoZXJ3aXNlIG91ciBwb3NpdGlvbmluZyB3aWxsIGJlIHRocm93biBvZmYuXG4gIC8vIEFkZGl0aW9uYWxseSwgd2hlbiB6b29taW5nIGluIFNhZmFyaSB0aGlzIGZpeGVzIHRoZSB2ZXJ0aWNhbCBwb3NpdGlvbi5cbiAgaWYgKGNvbnRhaW5lclJlY3QudG9wIDwgMCkge1xuICAgIGVsZW1lbnRZUG9zaXRpb24gLT0gY29udGFpbmVyUmVjdC50b3A7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIHRvcDogZWxlbWVudFlQb3NpdGlvbixcbiAgICBsZWZ0OiBlbGVtZW50WFBvc2l0aW9uLFxuICAgIG1heEhlaWdodDogZWxlbWVudE1heEhlaWdodCxcbiAgICBhbGlnbm1lbnQ6IGFsaWdubWVudCxcbiAgfTtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7OztBQW9CQSxTQUFnQixvQkFBb0IsSUFBZTtDQUNqRCxNQUFNLGVBQWUsT0FBTyxpQkFBaUIsR0FBRyxFQUM5QyxpQkFBaUIsYUFBYSxTQUM5QixtQkFBbUIsU0FBUyxhQUFhLFdBQVcsR0FBRyxDQUFDLFVBQVU7QUFHcEUsS0FBSSxtQkFBbUIsVUFBVSxxQkFBcUIsSUFDcEQsUUFBTztFQUNMLGNBQWMsR0FBRztFQUNqQixjQUFjLEdBQUc7RUFDakIsY0FBYyxHQUFHO0VBQ2pCLGFBQWEsR0FBRztFQUNoQixhQUFhLEdBQUc7RUFDaEIsYUFBYSxHQUFHO0VBQ2pCO0FBS0gsSUFBRyxNQUFNLFdBQVc7QUFDcEIsSUFBRyxNQUFNLGFBQWE7QUFDdEIsSUFBRyxNQUFNLFVBQVU7Q0FFbkIsTUFBTSxlQUFlLEdBQUcsY0FDdEIsZUFBZSxHQUFHLGNBQ2xCLGVBQWUsR0FBRyxjQUNsQixjQUFjLEdBQUcsYUFDakIsY0FBYyxHQUFHLGFBQ2pCLGNBQWMsR0FBRztBQUduQixJQUFHLE1BQU0sVUFBVTtBQUNuQixJQUFHLE1BQU0sV0FBVztBQUNwQixJQUFH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
@@ -64,4 +64,4 @@ var EventSpy = class {
64
64
  //#endregion
65
65
  export { EventSpy };
66
66
 
67
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQtc3B5LmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb3JlL3Rlc3RpbmcvZXZlbnQtc3B5LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImludGVyZmFjZSBQcm9taXNlV2l0aEV4ZWN1dG9yPFQgZXh0ZW5kcyBFdmVudD4ge1xuICBwcm9taXNlOiBQcm9taXNlPFQ+O1xuICByZXNvbHZlOiAodmFsdWU6IFQpID0+IHZvaWQ7XG4gIHJlamVjdDogKHJlYXNvbj86IGFueSkgPT4gdm9pZDtcbn1cblxuLyoqXG4gKiBUaGlzIGNsYXNzIGV4aXN0cyB0byBmYWNpbGl0YXRlIHRoZSB0ZXN0IG1pZ3JhdGlvbiBmcm9tIHN0ZW5jaWwgdG8gbGl0LlxuICogSXQgbWltaWNzIHRoZSBBUEkgdGhhdCBzdGVuY2lsIHByb3ZpZGVkIHRvIHRlc3QgZXZlbnRzLlxuICovXG5leHBvcnQgY2xhc3MgRXZlbnRTcHk8VCBleHRlbmRzIEV2ZW50PiB7XG4gIHB1YmxpYyBnZXQgY291bnQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fY291bnQ7XG4gIH1cbiAgcHJpdmF0ZSBfY291bnQ6IG51bWJlciA9IDA7XG5cbiAgcHVibGljIGdldCBldmVudHMoKTogVFtdIHtcbiAgICByZXR1cm4gdGhpcy5fZXZlbnRzO1xuICB9XG4gIHByaXZhdGUgX2V2ZW50czogVFtdID0gW107XG5cbiAgcHVibGljIGdldCBmaXJzdEV2ZW50KCk6IFQgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5ldmVudHMubGVuZ3RoID8gdGhpcy5ldmVudHNbMF0gOiBudWxsO1xuICB9XG5cbiAgcHVibGljIGdldCBsYXN0RXZlbnQoKTogVCB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLmV2ZW50cy5sZW5ndGggPyB0aGlzLmV2ZW50c1t0aGlzLmV2ZW50cy5sZW5ndGggLSAxXSA6IG51bGw7XG4gIH1cblxuICBwcml2YXRlIF9wcm9taXNlRXZlbnRNYXAgPSBuZXcgTWFwPG51bWJlciwgUHJvbWlzZVdpdGhFeGVjdXRvcjxUPj4oKTtcblxuICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfZXZlbnQ6IHN0cmluZyxcbiAgICBwcml2YXRlIHJlYWRvbmx5IF90YXJnZXQ6IE5vZGUgfCBudWxsID0gbnVsbCxcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9vcHRpb25zOiBBZGRFdmVudExpc3RlbmVyT3B0aW9ucyB8IG51bGwgPSBudWxsLFxuICApIHtcbiAgICBpZiAoIXRoaXMuX3RhcmdldCkge1xuICAgICAgdGhpcy5fdGFyZ2V0ID0gZG9jdW1lbnQ7XG4gICAgfVxuXG4gICAgdGhpcy5fbGlzdGVuRm9yRXZlbnQoKTtcbiAgfVxuXG4gIHB1YmxpYyBjYWxsZWRPbmNlKHRpbWVvdXQ/OiBudW1iZXIpOiBQcm9taXNlPFQ+IHtcbiAgICByZXR1cm4gdGhpcy5jYWxsZWRUaW1lcygxLCB0aW1lb3V0KTtcbiAgfVxuXG4gIHB1YmxpYyBjYWxsZWRUaW1lcyhjb3VudDogbnVtYmVyLCB0aW1lb3V0ID0gMjAwMCk6IFByb21pc2U8VD4ge1xuICAgIGlmICh0aGlzLmNvdW50ID4gY291bnQpIHtcbiAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdChcbiAgICAgICAgYEV2ZW50ICcke3RoaXMuX2V2ZW50fScgaGFzIGJlZW4gZW1pdHRlZCBtb3JlIHRoYW4gZXhwZWN0ZWQgKGV4cGVjdGVkICR7Y291bnR9LCBhY3R1YWwgJHt0aGlzLmNvdW50fWAsXG4gICAgICApO1xuICAgIH0gZWxzZSBpZiAodGhpcy5jb3VudCA9PT0gY291bnQpIHtcbiAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUodGhpcy5ldmVudHNbY291bnQgLSAxXSk7XG4gICAgfSBlbHNlIGlmICh0aGlzLl9wcm9taXNlRXZlbnRNYXAuaGFzKGNvdW50KSkge1xuICAgICAgcmV0dXJuIHRoaXMuX3Byb21pc2VFdmVudE1hcC5nZXQoY291bnQpIS5wcm9taXNlO1xuICAgIH0gZWxzZSB7XG4gICAgICBsZXQgcmVzb2x2ZTogKHZhbHVlOiBUKSA9PiB2b2lkO1xuICAgICAgbGV0IHJlamVjdDogKHJlYXNvbj86IGFueSkgPT4gdm9pZDtcbiAgICAgIGNvbnN0IHByb21pc2UgPSBuZXcgUHJvbWlzZTxUPigocmVzb2x2ZUZ1bmN0aW9uLCByZWplY3RGdW5jdGlvbikgPT4ge1xuICAgICAgICByZXNvbHZlID0gcmVzb2x2ZUZ1bmN0aW9uO1xuICAgICAgICByZWplY3QgPSByZWplY3RGdW5jdGlvbjtcbiAgICAgIH0pO1xuXG4gICAgICBjb25zdCBwcm9taXNlV2l0aEV4ZWN1dG9yID0ge1xuICAgICAgICBwcm9taXNlLFxuICAgICAgICByZXNvbHZlOiByZXNvbHZlISxcbiAgICAgICAgcmVqZWN0OiByZWplY3QhLFxuICAgICAgfTtcblxuICAgICAgdGhpcy5fcHJvbWlzZUV2ZW50TWFwLnNldChjb3VudCwgcHJvbWlzZVdpdGhFeGVjdXRvcik7XG5cbiAgICAgIHJldHVybiB0aGlzLl93cmFwUHJvbWlzZVdpdGhUaW1lb3V0KHByb21pc2VXaXRoRXhlY3V0b3IsIGNvdW50LCB0aW1lb3V0KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF93cmFwUHJvbWlzZVdpdGhUaW1lb3V0KFxuICAgIHByb21pc2VXaXRoRXhlY3V0b3I6IFByb21pc2VXaXRoRXhlY3V0b3I8VD4sXG4gICAgY291bnQ6IG51bWJlcixcbiAgICB0aW1lb3V0OiBudW1iZXIsXG4gICk6IFByb21pc2U8VD4ge1xuICAgIGNvbnN0IGNsZWFyVGltZW91dElkID0gc2V0VGltZW91dChcbiAgICAgICgpID0+XG4gICAgICAgIHByb21pc2VXaXRoRXhlY3V0b3IucmVqZWN0KFxuICAgICAgICAgIGBhd2FpdGluZyBjYWxsZWRUaW1lcygke2NvdW50fSkgZm9yIGV2ZW50ICcke3RoaXMuX2V2ZW50fScgcmVzdWx0cyBpbiB0aW1lb3V0YCxcbiAgICAgICAgKSxcbiAgICAgIHRpbWVvdXQsXG4gICAgKTtcbiAgICBwcm9taXNlV2l0aEV4ZWN1dG9yLnByb21pc2UudGhlbigoKSA9PiBjbGVhclRpbWVvdXQoY2xlYXJUaW1lb3V0SWQpKTtcbiAgICByZXR1cm4gcHJvbWlzZVdpdGhFeGVjdXRvci5wcm9taXNlO1xuICB9XG5cbiAgcHJpdmF0ZSBfbGlzdGVuRm9yRXZlbnQoKTogdm9pZCB7XG4gICAgdGhpcy5fdGFyZ2V0Py5hZGRFdmVudExpc3RlbmVyKFxuICAgICAgdGhpcy5fZXZlbnQsXG4gICAgICAoZXYpID0+IHtcbiAgICAgICAgdGhpcy5fZXZlbnRzLnB1c2goZXYgYXMgVCk7XG4gICAgICAgIHRoaXMuX2NvdW50Kys7XG4gICAgICAgIHRoaXMuX3Byb21pc2VFdmVudE1hcC5nZXQodGhpcy5jb3VudCk/LnJlc29sdmUoZXYgYXMgVCk7XG4gICAgICB9LFxuICAgICAgdGhpcy5fb3B0aW9ucyA/PyB1bmRlZmluZWQsXG4gICAgKTtcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7OztBQVVBLElBQWEsV0FBYixNQUFxQjtDQUNuQixJQUFXLFFBQUs7QUFDZCxTQUFPLEtBQUs7O0NBSWQsSUFBVyxTQUFNO0FBQ2YsU0FBTyxLQUFLOztDQUlkLElBQVcsYUFBVTtBQUNuQixTQUFPLEtBQUssT0FBTyxTQUFTLEtBQUssT0FBTyxLQUFLOztDQUcvQyxJQUFXLFlBQVM7QUFDbEIsU0FBTyxLQUFLLE9BQU8sU0FBUyxLQUFLLE9BQU8sS0FBSyxPQUFPLFNBQVMsS0FBSzs7Q0FLcEUsWUFDVSxRQUNTLFVBQXVCLE1BQ3ZCLFdBQTJDLE1BQUk7QUFGeEQsT0FBQSxTQUFBO0FBQ1MsT0FBQSxVQUFBO0FBQ0EsT0FBQSxXQUFBO0FBcEJYLE9BQUEsU0FBaUI7QUFLakIsT0FBQSxVQUFlLEVBQUU7QUFVakIsT0FBQSxtQ0FBbUIsSUFBSSxLQUFxQztBQU9sRSxNQUFJLENBQUMsS0FBSyxRQUNSLE1BQUssVUFBVTtBQUdqQixPQUFLLGlCQUFpQjs7Q0FHakIsV0FBVyxTQUFnQjtBQUNoQyxTQUFPLEtBQUssWUFBWSxHQUFHLFFBQVE7O0NBRzlCLFlBQVksT0FBZSxVQUFVLEtBQUk7QUFDOUMsTUFBSSxLQUFLLFFBQVEsTUFDZixRQUFPLFFBQVEsT0FDYixVQUFVLEtBQUssT0FBTSxrREFBbUQsTUFBSyxXQUFZLEtBQUssUUFDL0Y7V0FDUSxLQUFLLFVBQVUsTUFDeEIsUUFBTyxRQUFRLFFBQVEsS0FBSyxPQUFPLFFBQVEsR0FBRztXQUNyQyxLQUFLLGlCQUFpQixJQUFJLE1BQU0sQ0FDekMsUUFBTyxLQUFLLGlCQUFpQixJQUFJLE1BQU8sQ0FBQztPQUNwQztHQUNMLElBQUk7R0FDSixJQUFJO0dBTUosTUFBTSxzQkFBc0I7SUFDMUIsU0FOYyxJQUFJLFNBQVksaUJBQWlCLG1CQUFrQjtBQUNqRSxlQUFVO0FBQ1YsY0FBUztNQUNUO0lBSVM7SUFDRDtJQUNUO0FBRUQsUUFBSyxpQkFBaUIsSUFBSSxPQUFPLG9CQUFvQjtBQUVyRCxVQUFPLEtBQUssd0JBQXdCLHFCQUFxQixPQUFPLFFBQVE7OztDQUlwRSx3QkFDTixxQkFDQSxPQUNBLFNBQWU7RUFFZixNQUFNLGlCQUFpQixpQkFFbkIsb0JBQW9CLE9BQ2xCLHdCQUF3QixNQUFLLGVBQWdCLEtBQUssT0FBTSxzQkFDekQsRUFDSCxRQUNEO0FBQ0Qsc0JBQW9CLFFBQVEsV0FBVyxhQUFhLGVBQWUsQ0FBQztBQUNwRSxTQUFPLG9CQUFvQjs7Q0FHckIsa0JBQWU7QUFDckIsT0FBSyxTQUFTLGlCQUNaLEtBQUssU0FDSixPQUFNO0FBQ0wsUUFBSyxRQUFRLEtBQUssR0FBUTtBQUMxQixRQUFLO0FBQ0wsUUFBSyxpQkFBaUIsSUFBSSxLQUFLLE1BQU0sRUFBRSxRQUFRLEdBQVE7S0FFekQsS0FBSyxZQUFZLEtBQUEsRUFDbEIifQ==
67
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQtc3B5LmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb3JlL3Rlc3RpbmcvZXZlbnQtc3B5LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImludGVyZmFjZSBQcm9taXNlV2l0aEV4ZWN1dG9yPFQgZXh0ZW5kcyBFdmVudD4ge1xuICBwcm9taXNlOiBQcm9taXNlPFQ+O1xuICByZXNvbHZlOiAodmFsdWU6IFQpID0+IHZvaWQ7XG4gIHJlamVjdDogKHJlYXNvbj86IGFueSkgPT4gdm9pZDtcbn1cblxuLyoqXG4gKiBUaGlzIGNsYXNzIGV4aXN0cyB0byBmYWNpbGl0YXRlIHRoZSB0ZXN0IG1pZ3JhdGlvbiBmcm9tIHN0ZW5jaWwgdG8gbGl0LlxuICogSXQgbWltaWNzIHRoZSBBUEkgdGhhdCBzdGVuY2lsIHByb3ZpZGVkIHRvIHRlc3QgZXZlbnRzLlxuICovXG5leHBvcnQgY2xhc3MgRXZlbnRTcHk8VCBleHRlbmRzIEV2ZW50PiB7XG4gIHB1YmxpYyBnZXQgY291bnQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fY291bnQ7XG4gIH1cbiAgcHJpdmF0ZSBfY291bnQ6IG51bWJlciA9IDA7XG5cbiAgcHVibGljIGdldCBldmVudHMoKTogVFtdIHtcbiAgICByZXR1cm4gdGhpcy5fZXZlbnRzO1xuICB9XG4gIHByaXZhdGUgX2V2ZW50czogVFtdID0gW107XG5cbiAgcHVibGljIGdldCBmaXJzdEV2ZW50KCk6IFQgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5ldmVudHMubGVuZ3RoID8gdGhpcy5ldmVudHNbMF0gOiBudWxsO1xuICB9XG5cbiAgcHVibGljIGdldCBsYXN0RXZlbnQoKTogVCB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLmV2ZW50cy5sZW5ndGggPyB0aGlzLmV2ZW50c1t0aGlzLmV2ZW50cy5sZW5ndGggLSAxXSA6IG51bGw7XG4gIH1cblxuICBwcml2YXRlIF9wcm9taXNlRXZlbnRNYXAgPSBuZXcgTWFwPG51bWJlciwgUHJvbWlzZVdpdGhFeGVjdXRvcjxUPj4oKTtcblxuICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfZXZlbnQ6IHN0cmluZyxcbiAgICBwcml2YXRlIHJlYWRvbmx5IF90YXJnZXQ6IE5vZGUgfCBudWxsID0gbnVsbCxcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9vcHRpb25zOiBBZGRFdmVudExpc3RlbmVyT3B0aW9ucyB8IG51bGwgPSBudWxsLFxuICApIHtcbiAgICBpZiAoIXRoaXMuX3RhcmdldCkge1xuICAgICAgdGhpcy5fdGFyZ2V0ID0gZG9jdW1lbnQ7XG4gICAgfVxuXG4gICAgdGhpcy5fbGlzdGVuRm9yRXZlbnQoKTtcbiAgfVxuXG4gIHB1YmxpYyBjYWxsZWRPbmNlKHRpbWVvdXQ/OiBudW1iZXIpOiBQcm9taXNlPFQ+IHtcbiAgICByZXR1cm4gdGhpcy5jYWxsZWRUaW1lcygxLCB0aW1lb3V0KTtcbiAgfVxuXG4gIHB1YmxpYyBjYWxsZWRUaW1lcyhjb3VudDogbnVtYmVyLCB0aW1lb3V0ID0gMjAwMCk6IFByb21pc2U8VD4ge1xuICAgIGlmICh0aGlzLmNvdW50ID4gY291bnQpIHtcbiAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdChcbiAgICAgICAgYEV2ZW50ICcke3RoaXMuX2V2ZW50fScgaGFzIGJlZW4gZW1pdHRlZCBtb3JlIHRoYW4gZXhwZWN0ZWQgKGV4cGVjdGVkICR7Y291bnR9LCBhY3R1YWwgJHt0aGlzLmNvdW50fWAsXG4gICAgICApO1xuICAgIH0gZWxzZSBpZiAodGhpcy5jb3VudCA9PT0gY291bnQpIHtcbiAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUodGhpcy5ldmVudHNbY291bnQgLSAxXSk7XG4gICAgfSBlbHNlIGlmICh0aGlzLl9wcm9taXNlRXZlbnRNYXAuaGFzKGNvdW50KSkge1xuICAgICAgcmV0dXJuIHRoaXMuX3Byb21pc2VFdmVudE1hcC5nZXQoY291bnQpIS5wcm9taXNlO1xuICAgIH0gZWxzZSB7XG4gICAgICBsZXQgcmVzb2x2ZTogKHZhbHVlOiBUKSA9PiB2b2lkO1xuICAgICAgbGV0IHJlamVjdDogKHJlYXNvbj86IGFueSkgPT4gdm9pZDtcbiAgICAgIGNvbnN0IHByb21pc2UgPSBuZXcgUHJvbWlzZTxUPigocmVzb2x2ZUZ1bmN0aW9uLCByZWplY3RGdW5jdGlvbikgPT4ge1xuICAgICAgICByZXNvbHZlID0gcmVzb2x2ZUZ1bmN0aW9uO1xuICAgICAgICByZWplY3QgPSByZWplY3RGdW5jdGlvbjtcbiAgICAgIH0pO1xuXG4gICAgICBjb25zdCBwcm9taXNlV2l0aEV4ZWN1dG9yID0ge1xuICAgICAgICBwcm9taXNlLFxuICAgICAgICByZXNvbHZlOiByZXNvbHZlISxcbiAgICAgICAgcmVqZWN0OiByZWplY3QhLFxuICAgICAgfTtcblxuICAgICAgdGhpcy5fcHJvbWlzZUV2ZW50TWFwLnNldChjb3VudCwgcHJvbWlzZVdpdGhFeGVjdXRvcik7XG5cbiAgICAgIHJldHVybiB0aGlzLl93cmFwUHJvbWlzZVdpdGhUaW1lb3V0KHByb21pc2VXaXRoRXhlY3V0b3IsIGNvdW50LCB0aW1lb3V0KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF93cmFwUHJvbWlzZVdpdGhUaW1lb3V0KFxuICAgIHByb21pc2VXaXRoRXhlY3V0b3I6IFByb21pc2VXaXRoRXhlY3V0b3I8VD4sXG4gICAgY291bnQ6IG51bWJlcixcbiAgICB0aW1lb3V0OiBudW1iZXIsXG4gICk6IFByb21pc2U8VD4ge1xuICAgIGNvbnN0IGNsZWFyVGltZW91dElkID0gc2V0VGltZW91dChcbiAgICAgICgpID0+XG4gICAgICAgIHByb21pc2VXaXRoRXhlY3V0b3IucmVqZWN0KFxuICAgICAgICAgIGBhd2FpdGluZyBjYWxsZWRUaW1lcygke2NvdW50fSkgZm9yIGV2ZW50ICcke3RoaXMuX2V2ZW50fScgcmVzdWx0cyBpbiB0aW1lb3V0YCxcbiAgICAgICAgKSxcbiAgICAgIHRpbWVvdXQsXG4gICAgKTtcbiAgICBwcm9taXNlV2l0aEV4ZWN1dG9yLnByb21pc2UudGhlbigoKSA9PiBjbGVhclRpbWVvdXQoY2xlYXJUaW1lb3V0SWQpKTtcbiAgICByZXR1cm4gcHJvbWlzZVdpdGhFeGVjdXRvci5wcm9taXNlO1xuICB9XG5cbiAgcHJpdmF0ZSBfbGlzdGVuRm9yRXZlbnQoKTogdm9pZCB7XG4gICAgdGhpcy5fdGFyZ2V0Py5hZGRFdmVudExpc3RlbmVyKFxuICAgICAgdGhpcy5fZXZlbnQsXG4gICAgICAoZXYpID0+IHtcbiAgICAgICAgdGhpcy5fZXZlbnRzLnB1c2goZXYgYXMgVCk7XG4gICAgICAgIHRoaXMuX2NvdW50Kys7XG4gICAgICAgIHRoaXMuX3Byb21pc2VFdmVudE1hcC5nZXQodGhpcy5jb3VudCk/LnJlc29sdmUoZXYgYXMgVCk7XG4gICAgICB9LFxuICAgICAgdGhpcy5fb3B0aW9ucyA/PyB1bmRlZmluZWQsXG4gICAgKTtcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7OztBQVVBLElBQWEsV0FBYixNQUFxQjtDQUNuQixJQUFXLFFBQUs7QUFDZCxTQUFPLEtBQUs7O0NBSWQsSUFBVyxTQUFNO0FBQ2YsU0FBTyxLQUFLOztDQUlkLElBQVcsYUFBVTtBQUNuQixTQUFPLEtBQUssT0FBTyxTQUFTLEtBQUssT0FBTyxLQUFLOztDQUcvQyxJQUFXLFlBQVM7QUFDbEIsU0FBTyxLQUFLLE9BQU8sU0FBUyxLQUFLLE9BQU8sS0FBSyxPQUFPLFNBQVMsS0FBSzs7Q0FLcEUsWUFDVSxRQUNTLFVBQXVCLE1BQ3ZCLFdBQTJDLE1BQUk7QUFGeEQsT0FBQSxTQUFBO0FBQ1MsT0FBQSxVQUFBO0FBQ0EsT0FBQSxXQUFBO0FBcEJYLE9BQUEsU0FBaUI7QUFLakIsT0FBQSxVQUFlLEVBQUU7QUFVakIsT0FBQSxtQ0FBbUIsSUFBSSxLQUFxQztBQU9sRSxNQUFJLENBQUMsS0FBSyxRQUNSLE1BQUssVUFBVTtBQUdqQixPQUFLLGlCQUFpQjs7Q0FHakIsV0FBVyxTQUFnQjtBQUNoQyxTQUFPLEtBQUssWUFBWSxHQUFHLFFBQVE7O0NBRzlCLFlBQVksT0FBZSxVQUFVLEtBQUk7QUFDOUMsTUFBSSxLQUFLLFFBQVEsTUFDZixRQUFPLFFBQVEsT0FDYixVQUFVLEtBQUssT0FBTSxrREFBbUQsTUFBSyxXQUFZLEtBQUssUUFDL0Y7V0FDUSxLQUFLLFVBQVUsTUFDeEIsUUFBTyxRQUFRLFFBQVEsS0FBSyxPQUFPLFFBQVEsR0FBRztXQUNyQyxLQUFLLGlCQUFpQixJQUFJLE1BQU0sQ0FDekMsUUFBTyxLQUFLLGlCQUFpQixJQUFJLE1BQU8sQ0FBQztPQUNwQztHQUNMLElBQUk7R0FDSixJQUFJO0dBTUosTUFBTSxzQkFBc0I7SUFDMUIsU0FBQSxJQU5rQixTQUFZLGlCQUFpQixtQkFBa0I7QUFDakUsZUFBVTtBQUNWLGNBQVM7TUFJVDtJQUNTO0lBQ0Q7SUFDVDtBQUVELFFBQUssaUJBQWlCLElBQUksT0FBTyxvQkFBb0I7QUFFckQsVUFBTyxLQUFLLHdCQUF3QixxQkFBcUIsT0FBTyxRQUFROzs7Q0FJcEUsd0JBQ04scUJBQ0EsT0FDQSxTQUFlO0VBRWYsTUFBTSxpQkFBaUIsaUJBRW5CLG9CQUFvQixPQUNsQix3QkFBd0IsTUFBSyxlQUFnQixLQUFLLE9BQU0sc0JBQ3pELEVBQ0gsUUFDRDtBQUNELHNCQUFvQixRQUFRLFdBQVcsYUFBYSxlQUFlLENBQUM7QUFDcEUsU0FBTyxvQkFBb0I7O0NBR3JCLGtCQUFlO0FBQ3JCLE9BQUssU0FBUyxpQkFDWixLQUFLLFNBQ0osT0FBTTtBQUNMLFFBQUssUUFBUSxLQUFLLEdBQVE7QUFDMUIsUUFBSztBQUNMLFFBQUssaUJBQWlCLElBQUksS0FBSyxNQUFNLEVBQUUsUUFBUSxHQUFRO0tBRXpELEtBQUssWUFBWSxLQUFBLEVBQ2xCIn0=
@@ -5,6 +5,12 @@ import { DateAdapter } from '../../core/datetime.ts';
5
5
  import { SbbDateInputElement, SbbDateInputAssociated } from '../../date-input.ts';
6
6
  export declare const datepickerButtonStyle: import('lit').CSSResult;
7
7
  declare const SbbDatepickerButtonBase_base: import('../../core/mixins.ts').AbstractConstructor<import('../../core/mixins.ts').SbbNegativeMixinType> & typeof SbbButtonBaseElement;
8
+ /**
9
+ * Base component for datepicker's buttons.
10
+ *
11
+ * @event {Event} change - The change event is fired on the datepicker's input when the user modifies the element's value. Unlike the input event, the change event is not necessarily fired for each alteration to an element's value.
12
+ * @event {InputEvent} input - The input event fires on the datepicker's input when the value has been changed as a direct result of a user action.
13
+ */
8
14
  export declare abstract class SbbDatepickerButtonBase<T = Date> extends SbbDatepickerButtonBase_base implements SbbDateInputAssociated<T> {
9
15
  static readonly sbbDateInputAssociated = true;
10
16
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"datepicker-button.d.ts","sourceRoot":"","sources":["../../../../../src/elements/datepicker/common/datepicker-button.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,KAAK,mBAAmB,EAAE,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAGrF,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAEnE,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,KAAK,WAAW,EAAsB,MAAM,wBAAwB,CAAC;AAI9E,OAAO,EAAE,mBAAmB,EAAE,KAAK,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAIvF,OAAO,eAAe,CAAC;AAEvB,eAAO,MAAM,qBAAqB,yBAAyC,CAAC;;AAE5E,8BAAsB,uBAAuB,CAAC,CAAC,GAAG,IAAI,CACpD,SAAQ,4BACR,YAAW,sBAAsB,CAAC,CAAC,CAAC;IAEpC,gBAAuB,sBAAsB,QAAQ;IAErD;;;;OAIG;IACH,SAEgB,KAAK,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAAG,IAAI,CAAQ;IAE5D,uCAAuC;IACvC,IAAW,QAAQ,IAAI,OAAO,CAE7B;IAED,0EAA0E;IAC1E,OAAO,CAAC,cAAc,CAAQ;IAE9B,OAAO,CAAC,qBAAqB,CAAC,CAAkB;IAEhD,SAAS,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC,CAA4D;IACjG,SAAS,CAAC,QAAQ,wBAAmC;IACrD,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAEpB,iBAAiB,IAAI,IAAI;IAYzB,aAAa,CAC3B,IAAI,CAAC,EAAE,WAAW,EAClB,QAAQ,CAAC,EAAE,OAAO,EAClB,OAAO,CAAC,EAAE,mBAAmB,GAC5B,IAAI;IAuBP,OAAO,CAAC,iBAAiB;IAOzB,OAAO,CAAC,KAAK;IAUb,SAAS,CAAC,kBAAkB,IAAI,IAAI;cAIjB,cAAc,IAAI,cAAc;CAGpD;AAED,8BAAsB,mBAAmB,CAAC,CAAC,GAAG,IAAI,CAAE,SAAQ,uBAAuB,CAAC,CAAC,CAAC;IACpF,0EAA0E;IAC1E,OAAO,CAAC,SAAS,CAAQ;IAEzB,SAAS,CAAC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9D,SAAS,CAAC,QAAQ,CAAC,wBAAwB,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAE9F,IAAoB,QAAQ,IAAI,OAAO,CAEtC;;IAOD,2DAA2D;IAC3D,SAAS,CAAC,iBAAiB,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,GAAG,IAAI;IAI/C,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,GAAG,IAAI;IAEvD,OAAO,CAAC,YAAY;cAgBD,kBAAkB,IAAI,IAAI;CAmB9C"}
1
+ {"version":3,"file":"datepicker-button.d.ts","sourceRoot":"","sources":["../../../../../src/elements/datepicker/common/datepicker-button.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,KAAK,mBAAmB,EAAE,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAGrF,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAEnE,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,KAAK,WAAW,EAAsB,MAAM,wBAAwB,CAAC;AAI9E,OAAO,EAAE,mBAAmB,EAAE,KAAK,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAIvF,OAAO,eAAe,CAAC;AAEvB,eAAO,MAAM,qBAAqB,yBAAyC,CAAC;;AAE5E;;;;;GAKG;AACH,8BAAsB,uBAAuB,CAAC,CAAC,GAAG,IAAI,CACpD,SAAQ,4BACR,YAAW,sBAAsB,CAAC,CAAC,CAAC;IAEpC,gBAAuB,sBAAsB,QAAQ;IAErD;;;;OAIG;IACH,SAEgB,KAAK,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAAG,IAAI,CAAQ;IAE5D,uCAAuC;IACvC,IAAW,QAAQ,IAAI,OAAO,CAE7B;IAED,0EAA0E;IAC1E,OAAO,CAAC,cAAc,CAAQ;IAE9B,OAAO,CAAC,qBAAqB,CAAC,CAAkB;IAEhD,SAAS,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC,CAA4D;IACjG,SAAS,CAAC,QAAQ,wBAAmC;IACrD,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAEpB,iBAAiB,IAAI,IAAI;IAYzB,aAAa,CAC3B,IAAI,CAAC,EAAE,WAAW,EAClB,QAAQ,CAAC,EAAE,OAAO,EAClB,OAAO,CAAC,EAAE,mBAAmB,GAC5B,IAAI;IAuBP,OAAO,CAAC,iBAAiB;IAOzB,OAAO,CAAC,KAAK;IAUb,SAAS,CAAC,kBAAkB,IAAI,IAAI;cAIjB,cAAc,IAAI,cAAc;CAGpD;AAED,8BAAsB,mBAAmB,CAAC,CAAC,GAAG,IAAI,CAAE,SAAQ,uBAAuB,CAAC,CAAC,CAAC;IACpF,0EAA0E;IAC1E,OAAO,CAAC,SAAS,CAAQ;IAEzB,SAAS,CAAC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9D,SAAS,CAAC,QAAQ,CAAC,wBAAwB,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAE9F,IAAoB,QAAQ,IAAI,OAAO,CAEtC;;IAOD,2DAA2D;IAC3D,SAAS,CAAC,iBAAiB,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,GAAG,IAAI;IAI/C,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,GAAG,IAAI;IAEvD,OAAO,CAAC,YAAY;cAgBD,kBAAkB,IAAI,IAAI;CAmB9C"}
@@ -1,2 +1,2 @@
1
- import { n as SbbDatepickerButtonBase, r as datepickerButtonStyle, t as SbbDatepickerButton } from "../../datepicker-button-CANzGO5m.js";
1
+ import { n as SbbDatepickerButtonBase, r as datepickerButtonStyle, t as SbbDatepickerButton } from "../../datepicker-button-CUPeoQgH.js";
2
2
  export { SbbDatepickerButton, SbbDatepickerButtonBase, datepickerButtonStyle };
@@ -1,4 +1,4 @@
1
- import { n as SbbDatepickerButtonBase, r as datepickerButtonStyle, t as SbbDatepickerButton } from "../datepicker-button-CANzGO5m.js";
1
+ import { n as SbbDatepickerButtonBase, r as datepickerButtonStyle, t as SbbDatepickerButton } from "../datepicker-button-CUPeoQgH.js";
2
2
  //#region src/elements/datepicker/common.ts
3
3
  console.warn(`The entrypoint '@sbb-esta/elements/datepicker/common.js' has been deprecated.
4
4
  Use either '@sbb-esta/elements/datepicker.js' or '@sbb-esta/elements/datepicker.pure.js' instead.`);
@@ -5,7 +5,10 @@ import { SbbPopoverBaseElement } from '../../popover.ts';
5
5
  declare const SbbDatepickerElement_base: import('../../core/mixins.ts').AbstractConstructor<import('../../core/mixins.ts').SbbUpdateSchedulerMixinType> & typeof SbbPopoverBaseElement;
6
6
  /**
7
7
  * A datepicker component that allows users to select a date from a calendar view.
8
+ *
8
9
  * @event {CustomEvent<T>} dateselected - Event emitted on date selection.
10
+ * @event {Event} change - The change event is fired on the datepicker's input when the user modifies the element's value. Unlike the input event, the change event is not necessarily fired for each alteration to an element's value.
11
+ * @event {InputEvent} input - The input event fires on the datepicker's input when the value has been changed as a direct result of a user action.
9
12
  */
10
13
  export declare class SbbDatepickerElement<T = Date> extends SbbDatepickerElement_base implements SbbDateInputAssociated<T> {
11
14
  static readonly elementName: string;