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

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 (919) hide show
  1. package/accordion/accordion.component.js +1 -1
  2. package/{accordion.component-DN0x35kD.js → accordion.component-DbuSYzV1.js} +20 -19
  3. package/accordion.js +1 -1
  4. package/accordion.pure.js +1 -1
  5. package/alert/alert/alert.component.js +1 -1
  6. package/{alert.component-D8NT9YJ-.js → alert.component-DN7sW2NC.js} +17 -17
  7. package/alert.js +1 -1
  8. package/alert.pure.js +1 -1
  9. package/autocomplete/autocomplete-base-element.js +1 -1
  10. package/autocomplete/autocomplete.component.js +1 -1
  11. package/{autocomplete-base-element-BuCAxBy3.js → autocomplete-base-element-DRGjFF9_.js} +25 -28
  12. package/autocomplete.js +1 -1
  13. package/autocomplete.pure.js +1 -1
  14. package/{block-link-common-aUfrxxDp.js → block-link-common-B1E38xKe.js} +14 -15
  15. package/button/common/button-common.js +1 -1
  16. package/button/mini-button-group/mini-button-group.component.js +1 -1
  17. package/{button-common-BMpS65Zf.js → button-common-BQdNXKwl.js} +18 -18
  18. package/button.js +2 -2
  19. package/button.pure.js +2 -2
  20. package/checkbox/checkbox.component.js +1 -1
  21. package/checkbox-panel/checkbox-panel.component.js +1 -1
  22. package/{checkbox.component-ChQmCxal.js → checkbox.component-DWmjiv_c.js} +8 -8
  23. package/checkbox.js +1 -1
  24. package/checkbox.pure.js +1 -1
  25. package/chip/chip-group/chip-group.component.js +1 -1
  26. package/{chip-group.component-BMpczIZH.js → chip-group.component-DJORKUef.js} +19 -19
  27. package/chip.js +1 -1
  28. package/chip.pure.js +1 -1
  29. package/{compact-paginator.component-sRHapku-.js → compact-paginator.component-BAuShgQE.js} +4 -6
  30. package/container/sticky-bar/sticky-bar.component.js +1 -1
  31. package/container.js +1 -1
  32. package/container.pure.js +1 -1
  33. package/core/base-elements/selection-group-base-element.js +1 -1
  34. package/core/mixins/panel-mixin.js +1 -1
  35. package/core/mixins/selection-panel-mixin.js +1 -1
  36. package/core/overlay/overlay-option-panel.js +6 -5
  37. package/core/styles/_index.scss +0 -1
  38. package/core/styles/core.scss +8 -2
  39. package/core/styles/lean-off-brand-theme.scss +3 -0
  40. package/core/styles/lean-safety-theme.scss +3 -0
  41. package/core/styles/option-panel-common.global.scss +11 -0
  42. package/core/styles/option-panel-common.scss +157 -0
  43. package/core/styles/styles.js +2 -2
  44. package/core.css +88 -71
  45. package/core.js +31 -33
  46. package/custom-elements.json +72135 -71892
  47. package/development/accordion/accordion.component.d.ts +5 -7
  48. package/development/accordion/accordion.component.d.ts.map +1 -1
  49. package/development/accordion/accordion.component.js +1 -1
  50. package/development/accordion.component-xx7XabDY.js +165 -0
  51. package/development/accordion.js +1 -1
  52. package/development/accordion.pure.js +1 -1
  53. package/development/action-group/action-group.component.d.ts +8 -6
  54. package/development/action-group/action-group.component.d.ts.map +1 -1
  55. package/development/action-group/action-group.component.js +1 -1
  56. package/development/{action-group.component-DZkXqIbQ.js → action-group.component-wgXPpkQe.js} +3 -1
  57. package/development/action-group.js +1 -1
  58. package/development/action-group.pure.js +1 -1
  59. package/development/alert/alert/alert.component.d.ts +2 -3
  60. package/development/alert/alert/alert.component.d.ts.map +1 -1
  61. package/development/alert/alert/alert.component.js +1 -1
  62. package/development/alert/alert-group/alert-group.component.d.ts +2 -3
  63. package/development/alert/alert-group/alert-group.component.d.ts.map +1 -1
  64. package/development/alert-group.component-w5PbU_4C.js +1 -1
  65. package/development/{alert.component-DxzF0FOi.js → alert.component-Dzm5z0jh.js} +5 -6
  66. package/development/alert.js +1 -1
  67. package/development/alert.pure.js +1 -1
  68. package/development/autocomplete/autocomplete-base-element.d.ts +3 -4
  69. package/development/autocomplete/autocomplete-base-element.d.ts.map +1 -1
  70. package/development/autocomplete/autocomplete-base-element.js +1 -1
  71. package/development/autocomplete/autocomplete.component.js +2 -2
  72. package/development/autocomplete-base-element-DQiZ6hhk.js +683 -0
  73. package/development/autocomplete.js +1 -1
  74. package/development/autocomplete.pure.js +1 -1
  75. package/development/{block-link-common-CoZgcEBY.js → block-link-common-DNvRfeay.js} +3 -5
  76. package/development/breadcrumb-group.component-BUBfl6LV.js +1 -1
  77. package/development/breadcrumb.component-D6Cd2FPo.js +1 -1
  78. package/development/button/accent-button/accent-button.component.js +1 -1
  79. package/development/button/accent-button-link/accent-button-link.component.js +1 -1
  80. package/development/button/accent-button-static/accent-button-static.component.js +1 -1
  81. package/development/button/button/button.component.js +1 -1
  82. package/development/button/button-link/button-link.component.js +1 -1
  83. package/development/button/button-static/button-static.component.js +1 -1
  84. package/development/button/common/button-common.d.ts +1 -2
  85. package/development/button/common/button-common.d.ts.map +1 -1
  86. package/development/button/common/button-common.js +1 -1
  87. package/development/button/mini-button/mini-button.component.js +1 -1
  88. package/development/button/mini-button-group/mini-button-group.component.d.ts +2 -4
  89. package/development/button/mini-button-group/mini-button-group.component.d.ts.map +1 -1
  90. package/development/button/mini-button-group/mini-button-group.component.js +1 -1
  91. package/development/button/secondary-button/secondary-button.component.js +1 -1
  92. package/development/button/secondary-button-link/secondary-button-link.component.js +1 -1
  93. package/development/button/secondary-button-static/secondary-button-static.component.js +1 -1
  94. package/development/button/transparent-button/transparent-button.component.js +1 -1
  95. package/development/button/transparent-button-link/transparent-button-link.component.js +1 -1
  96. package/development/button/transparent-button-static/transparent-button-static.component.js +1 -1
  97. package/development/{button-common-DZUBRwwD.js → button-common-C-A7Dulr.js} +5 -6
  98. package/development/button.js +2 -2
  99. package/development/button.pure.js +2 -2
  100. package/development/calendar/calendar/calendar.component.d.ts +3 -4
  101. package/development/calendar/calendar/calendar.component.d.ts.map +1 -1
  102. package/development/calendar/calendar-month/calendar-month.component.js +1 -1
  103. package/development/calendar/calendar-weekday/calendar-weekday.component.js +1 -1
  104. package/development/calendar/calendar-weeknumber/calendar-weeknumber.component.js +1 -1
  105. package/development/calendar/calendar-year/calendar-year.component.js +1 -1
  106. package/development/calendar/common/calendar-cell-base-element.d.ts.map +1 -1
  107. package/development/calendar-cell-base-element-mWRSDeWc.js +1 -1
  108. package/development/calendar-day.component-BHvdRxll.js +1 -1
  109. package/development/calendar.component-CjlcDyS5.js +1 -1
  110. package/development/card/card-button/card-button.component.js +1 -1
  111. package/development/card/card-link/card-link.component.js +1 -1
  112. package/development/card-action-common-zS5iNz23.js +1 -1
  113. package/development/card-badge.component-CEfJdJBs.js +1 -1
  114. package/development/card.component-CL2gHoyP.js +1 -1
  115. package/development/carousel-item.component-B_0wdIAu.js +1 -1
  116. package/development/carousel-list.component-DpDh5tqB.js +1 -1
  117. package/development/carousel.component-ClWvnZ8s.js +1 -1
  118. package/development/checkbox/checkbox.component.d.ts +4 -6
  119. package/development/checkbox/checkbox.component.d.ts.map +1 -1
  120. package/development/checkbox/checkbox.component.js +1 -1
  121. package/development/checkbox/common/checkbox-common.d.ts +0 -1
  122. package/development/checkbox/common/checkbox-common.d.ts.map +1 -1
  123. package/development/checkbox-common-C3Ekixul.js +1 -1
  124. package/development/checkbox-group/checkbox-group.component.js +1 -1
  125. package/development/checkbox-panel/checkbox-panel.component.js +2 -2
  126. package/development/{checkbox.component-D6BR8e7w.js → checkbox.component-UbxCpZmi.js} +6 -7
  127. package/development/checkbox.js +1 -1
  128. package/development/checkbox.pure.js +1 -1
  129. package/development/chip/chip-group/chip-group.component.d.ts +1 -1
  130. package/development/chip/chip-group/chip-group.component.d.ts.map +1 -1
  131. package/development/chip/chip-group/chip-group.component.js +1 -1
  132. package/development/chip-group.component-Sgmi-kSy.js +403 -0
  133. package/development/chip-label.component-DHHNtvTt.js +1 -1
  134. package/development/chip.component-Uuf3tGFz.js +1 -1
  135. package/development/chip.js +1 -1
  136. package/development/chip.pure.js +1 -1
  137. package/development/clock/clock.component.d.ts +2 -2
  138. package/development/clock/clock.component.d.ts.map +1 -1
  139. package/development/clock.component-DcM1WFTN.js +1 -1
  140. package/development/compact-paginator.component-BgkpxaaD.js +49 -0
  141. package/development/container/sticky-bar/sticky-bar.component.d.ts +2 -3
  142. package/development/container/sticky-bar/sticky-bar.component.d.ts.map +1 -1
  143. package/development/container/sticky-bar/sticky-bar.component.js +1 -1
  144. package/development/container.component-D1Qgp4HW.js +1 -1
  145. package/development/container.js +1 -1
  146. package/development/container.pure.js +1 -1
  147. package/development/core/a11y/arrow-navigation.js +1 -1
  148. package/development/core/a11y/fake-event-detection.js +1 -1
  149. package/development/core/a11y/focus-trap-controller.js +1 -1
  150. package/development/core/a11y/focus-visible-within-controller.js +1 -1
  151. package/development/core/a11y/input-modality-detector.js +1 -1
  152. package/development/core/a11y/interactivity-checker.js +1 -1
  153. package/development/core/a11y/live-announcer.js +1 -1
  154. package/development/core/base-elements/action-base-element.js +1 -1
  155. package/development/core/base-elements/button-base-element.d.ts +2 -4
  156. package/development/core/base-elements/button-base-element.d.ts.map +1 -1
  157. package/development/core/base-elements/button-base-element.js +1 -1
  158. package/development/core/base-elements/link-base-element.d.ts +1 -3
  159. package/development/core/base-elements/link-base-element.d.ts.map +1 -1
  160. package/development/core/base-elements/link-base-element.js +1 -1
  161. package/development/core/base-elements/open-close-base-element.d.ts +1 -1
  162. package/development/core/base-elements/open-close-base-element.d.ts.map +1 -1
  163. package/development/core/base-elements/open-close-base-element.js +1 -1
  164. package/development/core/base-elements/selection-group-base-element.d.ts +4 -5
  165. package/development/core/base-elements/selection-group-base-element.d.ts.map +1 -1
  166. package/development/core/base-elements/selection-group-base-element.js +1 -1
  167. package/development/core/config/config.js +1 -1
  168. package/development/core/controllers/escapable-overlay-controller.js +1 -1
  169. package/development/core/controllers/id-reference-controller.js +1 -1
  170. package/development/core/controllers/inert-controller.js +1 -1
  171. package/development/core/controllers/language-controller.js +1 -1
  172. package/development/core/controllers/media-matchers-controller.js +1 -1
  173. package/development/core/controllers/overlay-position-controller.js +1 -1
  174. package/development/core/controllers/property-watcher-controller.js +1 -1
  175. package/development/core/datetime/date-adapter.js +1 -1
  176. package/development/core/datetime/native-date-adapter.js +1 -1
  177. package/development/core/datetime/temporal-date-adapter.js +1 -1
  178. package/development/core/decorators/force-type.js +1 -1
  179. package/development/core/decorators/get-override.js +1 -1
  180. package/development/core/decorators/handle-distinct-change.js +1 -1
  181. package/development/core/decorators/host-attributes.js +1 -1
  182. package/development/core/decorators/id-reference.js +1 -1
  183. package/development/core/decorators/omit-empty-converter.js +1 -1
  184. package/development/core/decorators/plain-date.js +1 -1
  185. package/development/core/dom/animation.js +1 -1
  186. package/development/core/dom/contains-pierce-shadow-dom.js +1 -1
  187. package/development/core/dom/platform.js +1 -1
  188. package/development/core/dom/queue-dom-content-loaded.js +1 -1
  189. package/development/core/dom/scroll.js +1 -1
  190. package/development/core/dom/set-or-remove-attribute.js +1 -1
  191. package/development/core/eventing/composed-path-has-attribute.js +1 -1
  192. package/development/core/eventing/event-target.js +1 -1
  193. package/development/core/eventing/form-element-handlers.js +1 -1
  194. package/development/core/eventing/forward-event.js +1 -1
  195. package/development/core/eventing/is-event-prevented.js +1 -1
  196. package/development/core/eventing/throttle.js +1 -1
  197. package/development/core/i18n/i18n.d.ts +2 -2
  198. package/development/core/i18n/i18n.d.ts.map +1 -1
  199. package/development/core/i18n/i18n.js +1 -1
  200. package/development/core/interfaces/types.d.ts +1 -6
  201. package/development/core/interfaces/types.d.ts.map +1 -1
  202. package/development/core/mixins/animation-complete-mixin.js +1 -1
  203. package/development/core/mixins/disabled-mixin.js +1 -1
  204. package/development/core/mixins/form-associated-checkbox-mixin.js +1 -1
  205. package/development/core/mixins/form-associated-input-mixin.js +1 -1
  206. package/development/core/mixins/form-associated-mixin.js +1 -1
  207. package/development/core/mixins/form-associated-radio-button-mixin.js +1 -1
  208. package/development/core/mixins/named-slot-list-mixin.js +1 -1
  209. package/development/core/mixins/negative-mixin.js +1 -1
  210. package/development/core/mixins/panel-mixin.d.ts +3 -3
  211. package/development/core/mixins/panel-mixin.d.ts.map +1 -1
  212. package/development/core/mixins/panel-mixin.js +1 -1
  213. package/development/core/mixins/readonly-mixin.js +1 -1
  214. package/development/core/mixins/required-mixin.js +1 -1
  215. package/development/core/mixins/selection-panel-mixin.js +2 -1
  216. package/development/core/mixins/update-scheduler-mixin.js +1 -1
  217. package/development/core/overlay/overlay-option-panel.d.ts +1 -1
  218. package/development/core/overlay/overlay-option-panel.d.ts.map +1 -1
  219. package/development/core/overlay/overlay-option-panel.js +5 -2
  220. package/development/core/overlay/overlay-outside-pointer-event-listener.js +1 -1
  221. package/development/core/overlay/overlay-trigger-attributes.js +1 -1
  222. package/development/core/overlay/position.js +1 -1
  223. package/development/core/styles/styles.d.ts +1 -0
  224. package/development/core/styles/styles.d.ts.map +1 -1
  225. package/development/core/styles/styles.js +2 -2
  226. package/development/core/testing/event-spy.js +1 -1
  227. package/development/core/testing/mocha-extensions.js +1 -1
  228. package/development/core/testing/wait-for-condition.js +1 -1
  229. package/development/core/testing/wait-for-image-ready.js +1 -1
  230. package/development/core/testing/wait-for-render.js +1 -1
  231. package/development/core.d.ts +0 -2
  232. package/development/core.d.ts.map +1 -1
  233. package/development/core.js +4 -6
  234. package/development/date-input.component-HxRyCudr.js +1 -1
  235. package/development/datepicker/datepicker/datepicker.component.d.ts +2 -2
  236. package/development/datepicker/datepicker/datepicker.component.d.ts.map +1 -1
  237. package/development/datepicker/datepicker/datepicker.component.js +1 -1
  238. package/development/datepicker/datepicker-next-day/datepicker-next-day.component.js +1 -1
  239. package/development/datepicker/datepicker-previous-day/datepicker-previous-day.component.js +1 -1
  240. package/development/datepicker/datepicker-toggle/datepicker-toggle.component.js +1 -1
  241. package/development/datepicker-button-BAT1ebzJ.js +1 -1
  242. package/development/dialog-actions.component-e0ZTTUin.js +1 -1
  243. package/development/dialog-close-button.component-Idc00dB9.js +1 -1
  244. package/development/dialog-content.component-CThU7Z8A.js +1 -1
  245. package/development/dialog-title.component-0uNsUR2C.js +1 -1
  246. package/development/dialog.component-AItB8ixG.js +1 -1
  247. package/development/divider/divider.component.d.ts +2 -2
  248. package/development/divider/divider.component.d.ts.map +1 -1
  249. package/development/divider.component-Ck_0vISe.js +1 -1
  250. package/development/element-BAsBayf5.js +1 -1
  251. package/development/error.component-WCkiwM7_.js +1 -1
  252. package/development/expansion-panel/expansion-panel/expansion-panel.component.d.ts +4 -6
  253. package/development/expansion-panel/expansion-panel/expansion-panel.component.d.ts.map +1 -1
  254. package/development/expansion-panel/expansion-panel/expansion-panel.component.js +1 -1
  255. package/development/expansion-panel/expansion-panel-content/expansion-panel-content.component.d.ts +1 -1
  256. package/development/expansion-panel/expansion-panel-content/expansion-panel-content.component.d.ts.map +1 -1
  257. package/development/expansion-panel/expansion-panel-content/expansion-panel-content.component.js +1 -1
  258. package/development/expansion-panel/expansion-panel-header/expansion-panel-header.component.d.ts +1 -1
  259. package/development/expansion-panel/expansion-panel-header/expansion-panel-header.component.d.ts.map +1 -1
  260. package/development/expansion-panel/expansion-panel-header/expansion-panel-header.component.js +1 -1
  261. package/development/{expansion-panel-content.component-BUbiseFP.js → expansion-panel-content.component-Bs0pYNJO.js} +2 -1
  262. package/development/{expansion-panel-header.component-CQFSwrqu.js → expansion-panel-header.component-gg5A_7Pz.js} +2 -1
  263. package/development/expansion-panel.component-DptYMbwV.js +317 -0
  264. package/development/expansion-panel.js +3 -3
  265. package/development/expansion-panel.pure.js +3 -3
  266. package/development/file-selector/common/file-selector-common.d.ts +1 -1
  267. package/development/file-selector/common/file-selector-common.d.ts.map +1 -1
  268. package/development/file-selector/common/file-selector-common.js +1 -1
  269. package/development/file-selector/file-selector/file-selector.component.d.ts.map +1 -1
  270. package/development/file-selector/file-selector/file-selector.component.js +5 -4
  271. package/development/file-selector/file-selector-dropzone/file-selector-dropzone.component.d.ts.map +1 -1
  272. package/development/file-selector/file-selector-dropzone/file-selector-dropzone.component.js +1 -1
  273. package/development/file-selector-common-CGL95Rnw.js +412 -0
  274. package/development/file-selector-dropzone.component-B84OL4Xd.js +106 -0
  275. package/development/file-selector.js +2 -2
  276. package/development/file-selector.pure.js +2 -2
  277. package/development/flip-card/flip-card-summary/flip-card-summary.component.d.ts +1 -2
  278. package/development/flip-card/flip-card-summary/flip-card-summary.component.d.ts.map +1 -1
  279. package/development/flip-card/flip-card-summary/flip-card-summary.component.js +1 -1
  280. package/development/flip-card-details.component-BYv_W66a.js +1 -1
  281. package/development/{flip-card-summary.component-C-US77Nw.js → flip-card-summary.component-jLNjJUNl.js} +2 -2
  282. package/development/flip-card.component-DujrPKzU.js +1 -1
  283. package/development/flip-card.js +1 -1
  284. package/development/flip-card.pure.js +1 -1
  285. package/development/footer/footer.component.d.ts +2 -3
  286. package/development/footer/footer.component.d.ts.map +1 -1
  287. package/development/footer.component-K2bWizjw.js +1 -1
  288. package/development/form-field/form-field/form-field.component.d.ts +2 -3
  289. package/development/form-field/form-field/form-field.component.d.ts.map +1 -1
  290. package/development/form-field/form-field/form-field.component.js +1 -1
  291. package/development/form-field/form-field-clear/form-field-clear.component.js +1 -1
  292. package/development/form-field/form-field-text-counter/form-field-text-counter.component.js +1 -1
  293. package/development/form-field.component-CPWBCHer.js +702 -0
  294. package/development/form-field.js +1 -1
  295. package/development/form-field.pure.js +1 -1
  296. package/development/header/common/header-action-common.d.ts.map +1 -1
  297. package/development/header/common/header-action-common.js +1 -1
  298. package/development/header/header/header.component.d.ts +2 -3
  299. package/development/header/header/header.component.d.ts.map +1 -1
  300. package/development/header/header/header.component.js +1 -1
  301. package/development/header/header-button/header-button.component.js +1 -1
  302. package/development/header/header-link/header-link.component.js +1 -1
  303. package/development/header-action-common-Be0XQge2.js +86 -0
  304. package/development/header-environment.component-CIyxQwkQ.js +1 -1
  305. package/development/header.component-C4e7CNql.js +334 -0
  306. package/development/header.js +2 -2
  307. package/development/header.pure.js +2 -2
  308. package/development/hint.component-BB9QLGGx.js +1 -1
  309. package/development/icon/icon-name-mixin.js +1 -1
  310. package/development/icon/icon-request.js +1 -1
  311. package/development/icon/icon-validate.js +1 -1
  312. package/development/icon/icon.component.js +1 -1
  313. package/development/icon-base-DrBHy9BT.js +1 -1
  314. package/development/icon-sidebar/icon-sidebar-button/icon-sidebar-button.component.js +1 -1
  315. package/development/icon-sidebar/icon-sidebar-link/icon-sidebar-link.component.js +1 -1
  316. package/development/icon-sidebar-container.component-CM94Spwy.js +1 -1
  317. package/development/icon-sidebar-content.component-BP9W5ZxR.js +1 -1
  318. package/development/icon-sidebar.component-B68P2aNh.js +1 -1
  319. package/development/image.component-EfSMgHI_.js +1 -1
  320. package/development/inline-link-common-gmt6yz3v.js +1 -1
  321. package/development/journey-header.component-CA4juz9x.js +1 -1
  322. package/development/lead-container.component-C_mFeq1B.js +1 -1
  323. package/development/link/block-link/block-link.component.js +1 -1
  324. package/development/link/block-link-button/block-link-button.component.js +1 -1
  325. package/development/link/block-link-static/block-link-static.component.js +1 -1
  326. package/development/link/common/block-link-common.d.ts +3 -4
  327. package/development/link/common/block-link-common.d.ts.map +1 -1
  328. package/development/link/common/block-link-common.js +1 -1
  329. package/development/link/link/link.component.js +1 -1
  330. package/development/link/link-button/link-button.component.js +1 -1
  331. package/development/link/link-static/link-static.component.js +1 -1
  332. package/development/link-common-2RGn9Qz_.js +1 -1
  333. package/development/link-list/common/link-list-base.d.ts +5 -7
  334. package/development/link-list/common/link-list-base.d.ts.map +1 -1
  335. package/development/link-list/common/link-list-base.js +1 -1
  336. package/development/link-list/link-list.component.d.ts +2 -2
  337. package/development/link-list/link-list.component.d.ts.map +1 -1
  338. package/development/link-list/link-list.component.js +1 -1
  339. package/development/link-list-anchor.component-Csb-FOQL.js +1 -1
  340. package/development/{link-list-base-QADBTZCN.js → link-list-base-CKT3c8yW.js} +4 -5
  341. package/development/{link-list.component-CKVU3Gsr.js → link-list.component-B90qHOUD.js} +2 -2
  342. package/development/link-list.js +2 -2
  343. package/development/link-list.pure.js +2 -2
  344. package/development/link.js +1 -1
  345. package/development/link.pure.js +1 -1
  346. package/development/loading-indicator-circle.component-Cfjw5vyz.js +1 -1
  347. package/development/loading-indicator.component-By2VaLCf.js +1 -1
  348. package/development/logo/logo.component.d.ts +2 -2
  349. package/development/logo/logo.component.d.ts.map +1 -1
  350. package/development/logo.component-DYKgAgq0.js +1 -1
  351. package/development/map-container.component-D0UVTolK.js +1 -1
  352. package/development/menu/menu-button/menu-button.component.js +1 -1
  353. package/development/menu/menu-link/menu-link.component.js +1 -1
  354. package/development/menu-action-common-DRXQc85Y.js +1 -1
  355. package/development/menu.component-Cv9wRj4H.js +1 -1
  356. package/development/message.component-CdO5GyE2.js +1 -1
  357. package/development/mini-button-group.component-VYKZf1rq.js +115 -0
  358. package/development/mini-button-link.component-kpRsi8I2.js +1 -1
  359. package/development/mini-calendar/mini-calendar/mini-calendar.component.d.ts +2 -2
  360. package/development/mini-calendar/mini-calendar/mini-calendar.component.d.ts.map +1 -1
  361. package/development/mini-calendar/mini-calendar-month/mini-calendar-month.component.d.ts.map +1 -1
  362. package/development/mini-calendar-day.component-BLkJ12Bw.js +1 -1
  363. package/development/mini-calendar-month.component-D8XjjLmN.js +1 -1
  364. package/development/mini-calendar.component-BOk8JovO.js +1 -1
  365. package/development/navigation/common/navigation-action-common.d.ts +0 -2
  366. package/development/navigation/common/navigation-action-common.d.ts.map +1 -1
  367. package/development/navigation/common/navigation-action-common.js +1 -1
  368. package/development/navigation/navigation-button/navigation-button.component.js +1 -1
  369. package/development/navigation/navigation-link/navigation-link.component.js +1 -1
  370. package/development/navigation/navigation-list/navigation-list.component.d.ts +2 -3
  371. package/development/navigation/navigation-list/navigation-list.component.d.ts.map +1 -1
  372. package/development/navigation/navigation-list/navigation-list.component.js +1 -1
  373. package/development/navigation/navigation-marker/navigation-marker.component.d.ts +1 -1
  374. package/development/navigation/navigation-marker/navigation-marker.component.d.ts.map +1 -1
  375. package/development/navigation/navigation-marker/navigation-marker.component.js +1 -1
  376. package/development/navigation-action-common-fkYNyX19.js +56 -0
  377. package/development/{navigation-list.component-DrdbtDRs.js → navigation-list.component-Dvv-bZ2V.js} +1 -5
  378. package/development/{navigation-marker.component-fB05cjtE.js → navigation-marker.component-DMqe-VlY.js} +3 -4
  379. package/development/navigation-section.component-iaypc6yQ.js +1 -1
  380. package/development/navigation.component-CqNkBvEs.js +1 -1
  381. package/development/navigation.js +3 -3
  382. package/development/navigation.pure.js +3 -3
  383. package/development/notification/notification.component.d.ts +2 -5
  384. package/development/notification/notification.component.d.ts.map +1 -1
  385. package/development/notification/notification.component.js +1 -1
  386. package/development/notification.component-BiJSo7Pl.js +259 -0
  387. package/development/notification.js +1 -1
  388. package/development/notification.pure.js +1 -1
  389. package/development/optgroup-base-element-CLfE6pmz.js +147 -0
  390. package/development/option/optgroup/optgroup-base-element.d.ts +2 -1
  391. package/development/option/optgroup/optgroup-base-element.d.ts.map +1 -1
  392. package/development/option/optgroup/optgroup-base-element.js +1 -1
  393. package/development/option/optgroup/optgroup.component.js +2 -2
  394. package/development/option/option/option-base-element.d.ts +2 -1
  395. package/development/option/option/option-base-element.d.ts.map +1 -1
  396. package/development/option/option/option-base-element.js +9 -3
  397. package/development/option/option/option.component.d.ts +0 -1
  398. package/development/option/option/option.component.d.ts.map +1 -1
  399. package/development/option/option/option.component.js +1 -1
  400. package/development/option/option-hint/option-hint.component.d.ts +2 -0
  401. package/development/option/option-hint/option-hint.component.d.ts.map +1 -1
  402. package/development/option/option-hint/option-hint.component.js +1 -1
  403. package/development/option-hint.component-DPfgcpVn.js +40 -0
  404. package/development/option.component-CV6cZnJe.js +131 -0
  405. package/development/option.js +3 -3
  406. package/development/option.pure.js +3 -3
  407. package/development/overlay/overlay-base-element.js +1 -1
  408. package/development/overlay.component-rFmitc_r.js +1 -1
  409. package/development/paginator/common/paginator-common.d.ts +1 -1
  410. package/development/paginator/common/paginator-common.d.ts.map +1 -1
  411. package/development/paginator/common/paginator-common.js +1 -407
  412. package/development/paginator/compact-paginator/compact-paginator.component.d.ts.map +1 -1
  413. package/development/paginator/compact-paginator/compact-paginator.component.js +1 -1
  414. package/development/paginator/paginator/paginator.component.js +1 -1
  415. package/development/paginator-common-BCeNUko_.js +410 -0
  416. package/development/paginator.component-BwLUSpDj.js +261 -0
  417. package/development/paginator.js +3 -3
  418. package/development/paginator.pure.js +3 -3
  419. package/development/{panel-mixin-CFz9-K_8.js → panel-mixin-DPybe45K.js} +3 -5
  420. package/development/popover/popover.component.d.ts.map +1 -1
  421. package/development/popover/popover.component.js +1 -1
  422. package/development/{popover.component-Bvbf4NyI.js → popover.component-BmTfHMFw.js} +1 -1
  423. package/development/popover.js +1 -1
  424. package/development/popover.pure.js +1 -1
  425. package/development/radio-button/common/radio-button-common.d.ts +0 -1
  426. package/development/radio-button/common/radio-button-common.d.ts.map +1 -1
  427. package/development/radio-button/common/radio-button-common.js +1 -1
  428. package/development/radio-button/radio-button.component.d.ts +2 -3
  429. package/development/radio-button/radio-button.component.d.ts.map +1 -1
  430. package/development/radio-button/radio-button.component.js +1 -1
  431. package/development/{radio-button-common-tC_l-WdB.js → radio-button-common-G0jLFo41.js} +1 -1
  432. package/development/radio-button-group/radio-button-group.component.js +1 -1
  433. package/development/radio-button-panel/radio-button-panel.component.js +1 -1
  434. package/development/{radio-button.component-3BV31Fkc.js → radio-button.component-DnErH-1J.js} +5 -5
  435. package/development/radio-button.js +2 -2
  436. package/development/radio-button.pure.js +2 -2
  437. package/development/select/select.component.d.ts +4 -5
  438. package/development/select/select.component.d.ts.map +1 -1
  439. package/development/select/select.component.js +1 -1
  440. package/development/select.component-CUjF11sq.js +807 -0
  441. package/development/select.js +1 -1
  442. package/development/select.pure.js +1 -1
  443. package/development/selection-action-panel/selection-action-panel.component.js +1 -1
  444. package/development/{selection-action-panel.component-ClpKsc-Z.js → selection-action-panel.component-BT0HmTja.js} +1 -1
  445. package/development/selection-action-panel.js +1 -1
  446. package/development/selection-action-panel.pure.js +1 -1
  447. package/development/selection-expansion-panel/selection-expansion-panel.component.js +1 -1
  448. package/development/{selection-expansion-panel.component-CTCVJiug.js → selection-expansion-panel.component-BT78Qhbf.js} +1 -1
  449. package/development/selection-expansion-panel.js +1 -1
  450. package/development/selection-expansion-panel.pure.js +1 -1
  451. package/development/{selection-group-base-element-RafKyWXP.js → selection-group-base-element-DRT3Ctp2.js} +3 -5
  452. package/development/sidebar/sidebar/sidebar.component.js +1 -1
  453. package/development/sidebar/sidebar-close-button/sidebar-close-button.component.js +1 -1
  454. package/development/sidebar/sidebar-container/sidebar-container.component.js +1 -1
  455. package/development/sidebar/sidebar-content/sidebar-content.component.js +1 -1
  456. package/development/sidebar/sidebar-title/sidebar-title.component.d.ts +3 -2
  457. package/development/sidebar/sidebar-title/sidebar-title.component.d.ts.map +1 -1
  458. package/development/sidebar/sidebar-title/sidebar-title.component.js +1 -1
  459. package/development/{sidebar-close-button.component-D_grme_h.js → sidebar-close-button.component-CXnf-P5H.js} +1 -1
  460. package/development/{sidebar-container.component-C_cu3Vfy.js → sidebar-container.component-CxwDKxv9.js} +1 -1
  461. package/development/{sidebar-content.component-CbYPeaaz.js → sidebar-content.component-DbcREBUa.js} +1 -1
  462. package/development/{sidebar-title.component-BFqfnG6B.js → sidebar-title.component-BW04otyD.js} +1 -1
  463. package/development/{sidebar.component-DcVKyd9R.js → sidebar.component-mfXnE6WQ.js} +1 -1
  464. package/development/sidebar.js +5 -5
  465. package/development/sidebar.pure.js +5 -5
  466. package/development/signet/signet.component.d.ts +2 -3
  467. package/development/signet/signet.component.d.ts.map +1 -1
  468. package/development/signet/signet.component.js +1 -1
  469. package/development/{signet.component-NdFqUZK9.js → signet.component-k14RJ8FA.js} +1 -1
  470. package/development/signet.js +1 -1
  471. package/development/signet.pure.js +1 -1
  472. package/development/skiplink-list/skiplink-list.component.d.ts +2 -3
  473. package/development/skiplink-list/skiplink-list.component.d.ts.map +1 -1
  474. package/development/skiplink-list/skiplink-list.component.js +1 -1
  475. package/development/{skiplink-list.component-ppyytKn2.js → skiplink-list.component-m7xm-pns.js} +3 -3
  476. package/development/skiplink-list.js +1 -1
  477. package/development/skiplink-list.pure.js +1 -1
  478. package/development/slider/slider.component.js +1 -1
  479. package/development/{slider.component-k8g6G0j9.js → slider.component-D_nLTlRF.js} +1 -1
  480. package/development/slider.js +1 -1
  481. package/development/slider.pure.js +1 -1
  482. package/development/status/status.component.d.ts +1 -2
  483. package/development/status/status.component.d.ts.map +1 -1
  484. package/development/status/status.component.js +1 -1
  485. package/development/{status.component-CtTNDvLl.js → status.component-B9en2l26.js} +1 -1
  486. package/development/status.js +1 -1
  487. package/development/status.pure.js +1 -1
  488. package/development/step-label.component-Bo7Z0w7N.js +127 -0
  489. package/development/{step.component-Di2fT-VG.js → step.component-CcjtUFyR.js} +11 -2
  490. package/development/stepper/step/step.component.d.ts +1 -0
  491. package/development/stepper/step/step.component.d.ts.map +1 -1
  492. package/development/stepper/step/step.component.js +1 -1
  493. package/development/stepper/step-label/step-label.component.d.ts +1 -1
  494. package/development/stepper/step-label/step-label.component.d.ts.map +1 -1
  495. package/development/stepper/step-label/step-label.component.js +1 -1
  496. package/development/stepper/stepper/stepper.component.d.ts +4 -5
  497. package/development/stepper/stepper/stepper.component.d.ts.map +1 -1
  498. package/development/stepper/stepper/stepper.component.js +1 -1
  499. package/development/stepper.component-80S-oXrH.js +422 -0
  500. package/development/stepper.js +3 -3
  501. package/development/stepper.pure.js +3 -3
  502. package/development/{sticky-bar.component-BrSBKlh-.js → sticky-bar.component-BJLtRvcd.js} +4 -5
  503. package/development/styles-Cctez2BS.js +22 -0
  504. package/development/{styles-Jlhoev1S.js → styles-WppEBrlW.js} +1 -1
  505. package/development/tab-group.component-D4fvd6Uu.js +265 -0
  506. package/development/{tab-label.component-CPaKKeox.js → tab-label.component-CNX8bsJL.js} +2 -2
  507. package/development/tab-nav-bar.component-B_mi8GGR.js +109 -0
  508. package/development/{tab.component-DxZtEaTP.js → tab.component-BVhYPy5Y.js} +1 -1
  509. package/development/table/table-wrapper/table-wrapper.component.js +1 -1
  510. package/development/{table-wrapper.component-Ba6NpQu1.js → table-wrapper.component-By59zmcU.js} +1 -1
  511. package/development/table.js +1 -1
  512. package/development/table.pure.js +1 -1
  513. package/development/tabs/common/styles.js +1 -1
  514. package/development/tabs/tab/tab.component.js +1 -1
  515. package/development/tabs/tab-group/tab-group.component.d.ts +2 -3
  516. package/development/tabs/tab-group/tab-group.component.d.ts.map +1 -1
  517. package/development/tabs/tab-group/tab-group.component.js +1 -1
  518. package/development/tabs/tab-label/tab-label.component.d.ts +2 -3
  519. package/development/tabs/tab-label/tab-label.component.d.ts.map +1 -1
  520. package/development/tabs/tab-label/tab-label.component.js +1 -1
  521. package/development/tabs/tab-nav-bar/tab-nav-bar.component.d.ts +2 -3
  522. package/development/tabs/tab-nav-bar/tab-nav-bar.component.d.ts.map +1 -1
  523. package/development/tabs/tab-nav-bar/tab-nav-bar.component.js +1 -1
  524. package/development/tabs.js +5 -5
  525. package/development/tabs.pure.js +5 -5
  526. package/development/tag/tag/tag.component.d.ts +4 -7
  527. package/development/tag/tag/tag.component.d.ts.map +1 -1
  528. package/development/tag/tag/tag.component.js +1 -1
  529. package/development/tag/tag-group/tag-group.component.d.ts +3 -4
  530. package/development/tag/tag-group/tag-group.component.d.ts.map +1 -1
  531. package/development/tag/tag-group/tag-group.component.js +1 -1
  532. package/development/{tag-group.component-CYL62Umh.js → tag-group.component-Db8prSBL.js} +5 -7
  533. package/development/tag.component-DG1uxD28.js +238 -0
  534. package/development/tag.js +2 -2
  535. package/development/tag.pure.js +2 -2
  536. package/development/teaser/teaser.component.d.ts.map +1 -1
  537. package/development/teaser/teaser.component.js +1 -1
  538. package/development/teaser-hero/teaser-hero.component.js +1 -1
  539. package/development/{teaser-hero.component-DrdkFx5X.js → teaser-hero.component-BHMcPmdh.js} +1 -1
  540. package/development/teaser-hero.js +1 -1
  541. package/development/teaser-hero.pure.js +1 -1
  542. package/development/teaser-panel/teaser-panel.component.js +1 -1
  543. package/development/{teaser-panel.component-WSXbBzCq.js → teaser-panel.component-BRfbvmkb.js} +1 -1
  544. package/development/teaser-panel.js +1 -1
  545. package/development/teaser-panel.pure.js +1 -1
  546. package/development/teaser-product/common/teaser-product-common.js +1 -1
  547. package/development/teaser-product/teaser-product/teaser-product.component.d.ts.map +1 -1
  548. package/development/teaser-product/teaser-product/teaser-product.component.js +1 -1
  549. package/development/teaser-product/teaser-product-static/teaser-product-static.component.js +1 -1
  550. package/development/{teaser-product-common-B8a-KHTi.js → teaser-product-common-DOyLdTks.js} +1 -1
  551. package/development/{teaser-product.component-gHjSaG6c.js → teaser-product.component-DMyuB-cH.js} +3 -3
  552. package/development/teaser-product.js +2 -2
  553. package/development/teaser-product.pure.js +2 -2
  554. package/development/{teaser.component-B8kQNF6g.js → teaser.component-CF_NUbwJ.js} +3 -3
  555. package/development/teaser.js +1 -1
  556. package/development/teaser.pure.js +1 -1
  557. package/development/time-input/time-input.component.js +1 -1
  558. package/development/{time-input.component-Bc4Sfu-1.js → time-input.component-XxzRoupm.js} +1 -1
  559. package/development/time-input.js +1 -1
  560. package/development/time-input.pure.js +1 -1
  561. package/development/timetable-form/timetable-form/timetable-form.component.js +1 -1
  562. package/development/timetable-form/timetable-form-details/timetable-form-details.component.js +1 -1
  563. package/development/timetable-form/timetable-form-field/timetable-form-field.component.d.ts.map +1 -1
  564. package/development/timetable-form/timetable-form-field/timetable-form-field.component.js +1 -1
  565. package/development/timetable-form/timetable-form-swap-button/timetable-form-swap-button.component.js +1 -1
  566. package/development/{timetable-form-details.component-DacESFsP.js → timetable-form-details.component-BeuAZUQe.js} +1 -1
  567. package/development/{timetable-form-field.component-DWCb4SY0.js → timetable-form-field.component-DC2z1Cwf.js} +4 -1
  568. package/development/{timetable-form-swap-button.component-DGCpV2_y.js → timetable-form-swap-button.component-CnbVc8Ok.js} +1 -1
  569. package/development/{timetable-form.component-CtRlKR7e.js → timetable-form.component-C8DfPePn.js} +1 -1
  570. package/development/timetable-form.js +4 -4
  571. package/development/timetable-form.pure.js +4 -4
  572. package/development/timetable-occupancy/timetable-occupancy.component.js +1 -1
  573. package/development/timetable-occupancy-icon/timetable-occupancy-icon.component.js +1 -1
  574. package/development/{timetable-occupancy-icon.component-uaabLEC5.js → timetable-occupancy-icon.component-UBmyZsTO.js} +1 -1
  575. package/development/timetable-occupancy-icon.js +1 -1
  576. package/development/timetable-occupancy-icon.pure.js +1 -1
  577. package/development/{timetable-occupancy.component-DKWki5pG.js → timetable-occupancy.component-DMm242Fr.js} +1 -1
  578. package/development/timetable-occupancy.js +1 -1
  579. package/development/timetable-occupancy.pure.js +1 -1
  580. package/development/title/title-base.d.ts +3 -4
  581. package/development/title/title-base.d.ts.map +1 -1
  582. package/development/title/title-base.js +1 -1
  583. package/development/title/title.component.d.ts +3 -2
  584. package/development/title/title.component.d.ts.map +1 -1
  585. package/development/title/title.component.js +1 -1
  586. package/development/{title-base-fg03gSOD.js → title-base-D_Rjyk_j.js} +1 -1
  587. package/development/{title.component-B1Uq-Ctr.js → title.component-CMxYhTfw.js} +2 -2
  588. package/development/title.js +2 -2
  589. package/development/title.pure.js +2 -2
  590. package/development/toast/toast.component.js +1 -1
  591. package/development/{toast.component-DeQSxWdf.js → toast.component-DonS3uQm.js} +1 -1
  592. package/development/toast.js +1 -1
  593. package/development/toast.pure.js +1 -1
  594. package/development/toggle/toggle/toggle.component.d.ts +2 -3
  595. package/development/toggle/toggle/toggle.component.d.ts.map +1 -1
  596. package/development/toggle/toggle/toggle.component.js +1 -1
  597. package/development/toggle/toggle-option/toggle-option.component.js +1 -1
  598. package/development/toggle-check/toggle-check.component.d.ts +2 -3
  599. package/development/toggle-check/toggle-check.component.d.ts.map +1 -1
  600. package/development/toggle-check/toggle-check.component.js +1 -1
  601. package/development/{toggle-check.component-BUYj49gP.js → toggle-check.component-BIV7jFIc.js} +4 -5
  602. package/development/toggle-check.js +1 -1
  603. package/development/toggle-check.pure.js +1 -1
  604. package/development/{toggle-option.component-heU6pMCB.js → toggle-option.component-DRxwLSKU.js} +1 -1
  605. package/development/toggle.component-B03k5qc1.js +243 -0
  606. package/development/toggle.js +2 -2
  607. package/development/toggle.pure.js +2 -2
  608. package/development/tooltip/tooltip.component.js +1 -1
  609. package/development/{tooltip.component-BjOgv29e.js → tooltip.component-D8zik3p4.js} +1 -1
  610. package/development/tooltip.js +1 -1
  611. package/development/tooltip.pure.js +1 -1
  612. package/development/train/train/train.component.d.ts +2 -3
  613. package/development/train/train/train.component.d.ts.map +1 -1
  614. package/development/train/train/train.component.js +1 -1
  615. package/development/train/train-blocked-passage/train-blocked-passage.component.js +1 -1
  616. package/development/train/train-formation/train-formation.component.d.ts +2 -2
  617. package/development/train/train-formation/train-formation.component.d.ts.map +1 -1
  618. package/development/train/train-formation/train-formation.component.js +1 -1
  619. package/development/train/train-formation-orientation-mixin.d.ts +1 -2
  620. package/development/train/train-formation-orientation-mixin.d.ts.map +1 -1
  621. package/development/train/train-formation-orientation-mixin.js +1 -1
  622. package/development/train/train-wagon/train-wagon.component.js +1 -1
  623. package/development/train/train-wagon-button/train-wagon-button.component.js +1 -1
  624. package/development/train/train-wagon-common.js +1 -1
  625. package/development/train/train-wagon-link/train-wagon-link.component.js +1 -1
  626. package/development/{train-blocked-passage.component-2TuSqbDg.js → train-blocked-passage.component-Cxd7dBDC.js} +1 -1
  627. package/development/{train-formation.component-BYB03zX5.js → train-formation.component-BEg6OPib.js} +1 -1
  628. package/development/{train-wagon-common-C-0fI1r2.js → train-wagon-common-Dg-BjUtC.js} +1 -1
  629. package/development/{train.component-BDG8SlCc.js → train.component-dECIGw2x.js} +1 -1
  630. package/development/train.js +5 -5
  631. package/development/train.pure.js +4 -4
  632. package/development/visual-checkbox/visual-checkbox.component.d.ts +3 -4
  633. package/development/visual-checkbox/visual-checkbox.component.d.ts.map +1 -1
  634. package/development/visual-checkbox/visual-checkbox.component.js +1 -1
  635. package/development/{visual-checkbox.component-Dzdm0TH-.js → visual-checkbox.component-Dm8DNhH2.js} +4 -5
  636. package/development/visual-checkbox.js +1 -1
  637. package/development/visual-checkbox.pure.js +1 -1
  638. package/expansion-panel/expansion-panel/expansion-panel.component.js +1 -1
  639. package/expansion-panel/expansion-panel-content/expansion-panel-content.component.js +1 -1
  640. package/expansion-panel/expansion-panel-header/expansion-panel-header.component.js +1 -1
  641. package/{expansion-panel-content.component-Cf1CWu5_.js → expansion-panel-content.component-WG1cwhjd.js} +1 -1
  642. package/{expansion-panel-header.component-DloOF4eC.js → expansion-panel-header.component-CnUqRql_.js} +1 -1
  643. package/expansion-panel.component-DvZogUuX.js +222 -0
  644. package/expansion-panel.js +3 -3
  645. package/expansion-panel.pure.js +3 -3
  646. package/file-selector/common/file-selector-common.js +1 -1
  647. package/file-selector/file-selector/file-selector.component.js +14 -13
  648. package/file-selector/file-selector-dropzone/file-selector-dropzone.component.js +1 -1
  649. package/{file-selector-common-CmbsJ64j.js → file-selector-common-BE780nIa.js} +34 -34
  650. package/{file-selector-dropzone.component-74fipV3m.js → file-selector-dropzone.component-CGo6odhC.js} +23 -23
  651. package/file-selector.js +2 -2
  652. package/file-selector.pure.js +2 -2
  653. package/flip-card/flip-card-summary/flip-card-summary.component.js +1 -1
  654. package/{flip-card-summary.component-CuMMdJ-B.js → flip-card-summary.component-D5cKgj47.js} +1 -1
  655. package/flip-card.js +1 -1
  656. package/flip-card.pure.js +1 -1
  657. package/form-field/form-field/form-field.component.js +1 -1
  658. package/{form-field.component-Dg-a3lS5.js → form-field.component-BdfK6r2v.js} +13 -13
  659. package/form-field.js +1 -1
  660. package/form-field.pure.js +1 -1
  661. package/header/common/header-action-common.js +1 -1
  662. package/header/header/header.component.js +1 -1
  663. package/header-action-common-DuPx0U2o.js +64 -0
  664. package/{header.component-Bj7phY1B.js → header.component-TU3e89pY.js} +18 -18
  665. package/header.js +2 -2
  666. package/header.pure.js +2 -2
  667. package/lean-off-brand-theme.css +3755 -0
  668. package/lean-safety-theme.css +3755 -0
  669. package/lean-theme.css +3755 -0
  670. package/link/common/block-link-common.js +1 -1
  671. package/link-list/common/link-list-base.js +1 -1
  672. package/link-list/link-list.component.js +1 -1
  673. package/{link-list-base-CEEw1SMd.js → link-list-base-C12PTC8e.js} +16 -16
  674. package/{link-list.component-CS4KuMkQ.js → link-list.component-BNVd0a8U.js} +1 -1
  675. package/link-list.js +2 -2
  676. package/link-list.pure.js +2 -2
  677. package/link.js +1 -1
  678. package/link.pure.js +1 -1
  679. package/mini-button-group.component-DQBU0BDm.js +85 -0
  680. package/navigation/common/navigation-action-common.js +1 -1
  681. package/navigation/navigation-list/navigation-list.component.js +1 -1
  682. package/navigation/navigation-marker/navigation-marker.component.js +1 -1
  683. package/navigation-action-common-x7PMfho0.js +38 -0
  684. package/{navigation-list.component-NQZA2mui.js → navigation-list.component-Cezo1tC-.js} +0 -3
  685. package/{navigation-marker.component-D1p9TkWH.js → navigation-marker.component-CNsMaqpH.js} +2 -3
  686. package/navigation.js +3 -3
  687. package/navigation.pure.js +3 -3
  688. package/notification/notification.component.js +1 -1
  689. package/notification.component-CDGtGwRv.js +188 -0
  690. package/notification.js +1 -1
  691. package/notification.pure.js +1 -1
  692. package/off-brand-theme.css +100 -86
  693. package/optgroup-base-element-Cxe8SIQh.js +108 -0
  694. package/option/optgroup/optgroup-base-element.js +1 -1
  695. package/option/optgroup/optgroup.component.js +1 -1
  696. package/option/option/option-base-element.js +27 -25
  697. package/option/option/option.component.js +1 -1
  698. package/option/option-hint/option-hint.component.js +1 -1
  699. package/option-hint.component-NSxCKXEy.js +26 -0
  700. package/option.component-BeorlZT0.js +100 -0
  701. package/option.js +3 -3
  702. package/option.pure.js +3 -3
  703. package/package.json +13 -1
  704. package/paginator/common/paginator-common.js +2 -294
  705. package/paginator/compact-paginator/compact-paginator.component.js +1 -1
  706. package/paginator/paginator/paginator.component.js +1 -1
  707. package/paginator-common-uoCIcl4X.js +294 -0
  708. package/{paginator.component-3ra04AQU.js → paginator.component-DB8l-B6J.js} +1 -1
  709. package/paginator.js +3 -3
  710. package/paginator.pure.js +3 -3
  711. package/{panel-mixin-CcbyRemy.js → panel-mixin-XQXElTGt.js} +18 -19
  712. package/popover/popover.component.js +1 -1
  713. package/popover.js +1 -1
  714. package/popover.pure.js +1 -1
  715. package/radio-button/common/radio-button-common.js +1 -1
  716. package/radio-button/radio-button.component.js +1 -1
  717. package/{radio-button.component-DedTTka_.js → radio-button.component-CZ273yAb.js} +14 -14
  718. package/radio-button.js +2 -2
  719. package/radio-button.pure.js +2 -2
  720. package/safety-theme.css +100 -86
  721. package/select/select.component.js +1 -1
  722. package/{select.component-PLjAiAA3.js → select.component-CLPLpFDz.js} +36 -36
  723. package/select.js +1 -1
  724. package/select.pure.js +1 -1
  725. package/selection-action-panel/selection-action-panel.component.js +1 -1
  726. package/selection-action-panel.js +1 -1
  727. package/selection-action-panel.pure.js +1 -1
  728. package/selection-expansion-panel/selection-expansion-panel.component.js +1 -1
  729. package/selection-expansion-panel.js +1 -1
  730. package/selection-expansion-panel.pure.js +1 -1
  731. package/{selection-group-base-element-BCEzcnya.js → selection-group-base-element-COFsU6Ur.js} +17 -18
  732. package/sidebar/sidebar/sidebar.component.js +1 -1
  733. package/sidebar/sidebar-close-button/sidebar-close-button.component.js +1 -1
  734. package/sidebar/sidebar-container/sidebar-container.component.js +1 -1
  735. package/sidebar/sidebar-content/sidebar-content.component.js +1 -1
  736. package/sidebar/sidebar-title/sidebar-title.component.js +1 -1
  737. package/sidebar.js +5 -5
  738. package/sidebar.pure.js +5 -5
  739. package/signet/signet.component.js +1 -1
  740. package/signet.js +1 -1
  741. package/signet.pure.js +1 -1
  742. package/skiplink-list/skiplink-list.component.js +1 -1
  743. package/{skiplink-list.component-Dsg-qVWZ.js → skiplink-list.component-BXaqYpsI.js} +18 -18
  744. package/skiplink-list.js +1 -1
  745. package/skiplink-list.pure.js +1 -1
  746. package/slider/slider.component.js +1 -1
  747. package/slider.js +1 -1
  748. package/slider.pure.js +1 -1
  749. package/standard-theme.css +100 -86
  750. package/status/status.component.js +1 -1
  751. package/status.js +1 -1
  752. package/status.pure.js +1 -1
  753. package/step-label.component-BGSaHafq.js +77 -0
  754. package/{step.component-KiTfzfTj.js → step.component-BY6_2Wh2.js} +6 -2
  755. package/stepper/step/step.component.js +1 -1
  756. package/stepper/step-label/step-label.component.js +1 -1
  757. package/stepper/stepper/stepper.component.js +1 -1
  758. package/{stepper.component-BX3gSLpt.js → stepper.component-lh0YSbT1.js} +22 -22
  759. package/stepper.js +3 -3
  760. package/stepper.pure.js +3 -3
  761. package/{sticky-bar.component-CmB6U3iY.js → sticky-bar.component-dmlGAZLW.js} +13 -13
  762. package/styles-DAMaYe4p.js +5 -0
  763. package/{tab-group.component-BGDY-hvA.js → tab-group.component-t4eeCNf-.js} +20 -20
  764. package/{tab-label.component-CMbmEoNe.js → tab-label.component-DvvSohaG.js} +1 -1
  765. package/{tab-nav-bar.component-Cwrqhb-2.js → tab-nav-bar.component-FT2W0urU.js} +13 -13
  766. package/table/table-wrapper/table-wrapper.component.js +1 -1
  767. package/table.css +12 -15
  768. package/table.js +1 -1
  769. package/table.pure.js +1 -1
  770. package/tabs/common/styles.js +1 -1
  771. package/tabs/tab/tab.component.js +1 -1
  772. package/tabs/tab-group/tab-group.component.js +1 -1
  773. package/tabs/tab-label/tab-label.component.js +1 -1
  774. package/tabs/tab-nav-bar/tab-nav-bar.component.js +1 -1
  775. package/tabs.js +5 -5
  776. package/tabs.pure.js +5 -5
  777. package/tag/tag/tag.component.js +1 -1
  778. package/tag/tag-group/tag-group.component.js +1 -1
  779. package/{tag-group.component-DyXEgvbN.js → tag-group.component-9UfHHJ79.js} +14 -14
  780. package/{tag.component-C74wsPOB.js → tag.component-BKuxfdDi.js} +28 -26
  781. package/tag.js +2 -2
  782. package/tag.pure.js +2 -2
  783. package/teaser/teaser.component.js +1 -1
  784. package/teaser-hero/teaser-hero.component.js +1 -1
  785. package/teaser-hero.js +1 -1
  786. package/teaser-hero.pure.js +1 -1
  787. package/teaser-panel/teaser-panel.component.js +1 -1
  788. package/teaser-panel.js +1 -1
  789. package/teaser-panel.pure.js +1 -1
  790. package/teaser-product/common/teaser-product-common.js +1 -1
  791. package/teaser-product/teaser-product/teaser-product.component.js +1 -1
  792. package/{teaser-product.component-Dzclz3Sg.js → teaser-product.component-BcleFVcu.js} +8 -8
  793. package/teaser-product.js +2 -2
  794. package/teaser-product.pure.js +2 -2
  795. package/{teaser.component-BSpcEI3Z.js → teaser.component-BOqCERR7.js} +15 -15
  796. package/teaser.js +1 -1
  797. package/teaser.pure.js +1 -1
  798. package/time-input/time-input.component.js +1 -1
  799. package/time-input.js +1 -1
  800. package/time-input.pure.js +1 -1
  801. package/timetable-form/timetable-form/timetable-form.component.js +1 -1
  802. package/timetable-form/timetable-form-details/timetable-form-details.component.js +1 -1
  803. package/timetable-form/timetable-form-field/timetable-form-field.component.js +1 -1
  804. package/timetable-form/timetable-form-swap-button/timetable-form-swap-button.component.js +1 -1
  805. package/timetable-form.js +4 -4
  806. package/timetable-form.pure.js +4 -4
  807. package/timetable-occupancy/timetable-occupancy.component.js +1 -1
  808. package/timetable-occupancy-icon/timetable-occupancy-icon.component.js +1 -1
  809. package/timetable-occupancy-icon.js +1 -1
  810. package/timetable-occupancy-icon.pure.js +1 -1
  811. package/timetable-occupancy.js +1 -1
  812. package/timetable-occupancy.pure.js +1 -1
  813. package/title/title-base.js +1 -1
  814. package/title/title.component.js +1 -1
  815. package/{title.component-DO67K8g1.js → title.component-VnTeqomb.js} +1 -1
  816. package/title.js +2 -2
  817. package/title.pure.js +2 -2
  818. package/toast/toast.component.js +1 -1
  819. package/toast.js +1 -1
  820. package/toast.pure.js +1 -1
  821. package/toggle/toggle/toggle.component.js +1 -1
  822. package/toggle/toggle-option/toggle-option.component.js +1 -1
  823. package/toggle-check/toggle-check.component.js +1 -1
  824. package/{toggle-check.component-YWr3IHEL.js → toggle-check.component-BcQ5ht0O.js} +17 -17
  825. package/toggle-check.js +1 -1
  826. package/toggle-check.pure.js +1 -1
  827. package/{toggle.component-BFsrJ98d.js → toggle.component-DARkqJol.js} +13 -13
  828. package/toggle.js +2 -2
  829. package/toggle.pure.js +2 -2
  830. package/tooltip/tooltip.component.js +1 -1
  831. package/tooltip.js +1 -1
  832. package/tooltip.pure.js +1 -1
  833. package/train/train/train.component.js +1 -1
  834. package/train/train-blocked-passage/train-blocked-passage.component.js +1 -1
  835. package/train/train-formation/train-formation.component.js +1 -1
  836. package/train/train-wagon-common.js +1 -1
  837. package/train.js +4 -4
  838. package/train.pure.js +4 -4
  839. package/visual-checkbox/visual-checkbox.component.js +1 -1
  840. package/{visual-checkbox.component-R9bYxeNp.js → visual-checkbox.component-YhX5Qk3j.js} +17 -17
  841. package/visual-checkbox.js +1 -1
  842. package/visual-checkbox.pure.js +1 -1
  843. package/core/dom/lean-context.js +0 -7
  844. package/core/overlay/overlay.js +0 -14
  845. package/core/styles/mixins/overlay.scss +0 -175
  846. package/development/accordion.component-Bvx-b38W.js +0 -165
  847. package/development/autocomplete-base-element-CG5m0PpY.js +0 -686
  848. package/development/chip-group.component-DThvmmnh.js +0 -402
  849. package/development/compact-paginator.component-Dyj5CulS.js +0 -51
  850. package/development/core/dom/lean-context.d.ts +0 -5
  851. package/development/core/dom/lean-context.d.ts.map +0 -1
  852. package/development/core/dom/lean-context.js +0 -12
  853. package/development/core/overlay/overlay.d.ts +0 -7
  854. package/development/core/overlay/overlay.d.ts.map +0 -1
  855. package/development/core/overlay/overlay.js +0 -20
  856. package/development/expansion-panel.component-BVdylpqi.js +0 -318
  857. package/development/file-selector-common-Da0KNfDP.js +0 -413
  858. package/development/file-selector-dropzone.component-Bdcau18t.js +0 -106
  859. package/development/form-field.component-_lnIpJF5.js +0 -703
  860. package/development/header-action-common-CQ1CaaBd.js +0 -79
  861. package/development/header.component-BX1rKPa_.js +0 -335
  862. package/development/mini-button-group.component-Bg-etiu1.js +0 -116
  863. package/development/navigation-action-common-CGy4K8q-.js +0 -91
  864. package/development/notification.component-D0rkSF3p.js +0 -271
  865. package/development/optgroup-base-element-BEG1P4gK.js +0 -140
  866. package/development/option-hint.component-CcSUSwjN.js +0 -31
  867. package/development/option.component-BEbIEh5o.js +0 -132
  868. package/development/paginator.component-DIuiY7It.js +0 -261
  869. package/development/select.component-B8_tnz6D.js +0 -806
  870. package/development/step-label.component-BpuNDWKl.js +0 -126
  871. package/development/stepper.component-BnCUoYv6.js +0 -423
  872. package/development/styles-BzEbxmCd.js +0 -18
  873. package/development/tab-group.component-o1F-M_-2.js +0 -266
  874. package/development/tab-nav-bar.component-3uXgOman.js +0 -110
  875. package/development/tag.component-D5DYXQ3i.js +0 -241
  876. package/development/toggle.component-DndGyA1x.js +0 -244
  877. package/expansion-panel.component-5heRRQ0C.js +0 -222
  878. package/header-action-common-B1jGzY-U.js +0 -61
  879. package/mini-button-group.component-BOJNsLrh.js +0 -85
  880. package/navigation-action-common-HG5kdQJR.js +0 -65
  881. package/notification.component-DpC6ulTx.js +0 -195
  882. package/optgroup-base-element-C6KwbQ0N.js +0 -106
  883. package/option-hint.component-Bayihbh1.js +0 -21
  884. package/option.component-C-GGTcqF.js +0 -100
  885. package/step-label.component-BkiOyF7s.js +0 -77
  886. package/styles-OHFAsnJq.js +0 -5
  887. /package/{popover.component-C66BxhNQ.js → popover.component-DJruKzY-.js} +0 -0
  888. /package/{radio-button-common-BDGoskeZ.js → radio-button-common-CrIRn10q.js} +0 -0
  889. /package/{selection-action-panel.component-B7OtT_t2.js → selection-action-panel.component-DCGJQ3Mx.js} +0 -0
  890. /package/{selection-expansion-panel.component-NXfxG9uN.js → selection-expansion-panel.component-Cu1egfTY.js} +0 -0
  891. /package/{sidebar-close-button.component-D5gxiJ_e.js → sidebar-close-button.component-8owwjvk3.js} +0 -0
  892. /package/{sidebar-container.component-BI2Jm-cJ.js → sidebar-container.component-Dcke-Uhr.js} +0 -0
  893. /package/{sidebar-content.component-C44ixSgf.js → sidebar-content.component-CYupfsq_.js} +0 -0
  894. /package/{sidebar-title.component-ByroIWTZ.js → sidebar-title.component-Cf64lCJx.js} +0 -0
  895. /package/{sidebar.component-B2IfBEhW.js → sidebar.component-LaqQzMo2.js} +0 -0
  896. /package/{signet.component-xkCj9Bel.js → signet.component-3Xfke8uk.js} +0 -0
  897. /package/{slider.component-DX8K9GWl.js → slider.component-BlUWAWJU.js} +0 -0
  898. /package/{status.component-BkBUOZC5.js → status.component-mel7wA1j.js} +0 -0
  899. /package/{styles-BNu0Fjw5.js → styles-DisU4TWi.js} +0 -0
  900. /package/{tab.component-BtN993ye.js → tab.component-D6hfhlZw.js} +0 -0
  901. /package/{table-wrapper.component-CQ76PAQl.js → table-wrapper.component-C83EYuZP.js} +0 -0
  902. /package/{teaser-hero.component-mT8miROU.js → teaser-hero.component-mv6HL4vm.js} +0 -0
  903. /package/{teaser-panel.component-DWdMzyoI.js → teaser-panel.component-qRmy2lbz.js} +0 -0
  904. /package/{teaser-product-common-DOQ6f2B7.js → teaser-product-common-J1KZ2Hlw.js} +0 -0
  905. /package/{time-input.component-BRJerke6.js → time-input.component-Dw8pPYDK.js} +0 -0
  906. /package/{timetable-form-details.component-Wmad9usT.js → timetable-form-details.component-0c6h6shd.js} +0 -0
  907. /package/{timetable-form-field.component-D3P3lV86.js → timetable-form-field.component-Cya8n2Ms.js} +0 -0
  908. /package/{timetable-form-swap-button.component-B8yPDfMq.js → timetable-form-swap-button.component-rI_0UYJw.js} +0 -0
  909. /package/{timetable-form.component-CJKyHMZk.js → timetable-form.component-DVps6baq.js} +0 -0
  910. /package/{timetable-occupancy-icon.component-DA9NTQJn.js → timetable-occupancy-icon.component-ABh1bz-X.js} +0 -0
  911. /package/{timetable-occupancy.component-B0OJi-B1.js → timetable-occupancy.component-DGQ20zH1.js} +0 -0
  912. /package/{title-base-B70qaksx.js → title-base-JBhKD3ur.js} +0 -0
  913. /package/{toast.component-DVaz-D5o.js → toast.component-BMN90Ouu.js} +0 -0
  914. /package/{toggle-option.component-BP9QEwh9.js → toggle-option.component-DQcPDXyl.js} +0 -0
  915. /package/{tooltip.component-BrXCWlQB.js → tooltip.component-NfyDxfw7.js} +0 -0
  916. /package/{train-blocked-passage.component-DxqSh9I8.js → train-blocked-passage.component-B601YYJl.js} +0 -0
  917. /package/{train-formation.component-HM0M0FHW.js → train-formation.component-DVxNBPIB.js} +0 -0
  918. /package/{train-wagon-common-BH9bSebN.js → train-wagon-common-CDCsWVgi.js} +0 -0
  919. /package/{train.component-BZ3jtqQ4.js → train.component-DxadS7O8.js} +0 -0
@@ -336,4 +336,4 @@ var SbbFormAssociatedInputMixin = (superClass) => {
336
336
  //#endregion
337
337
  export { SbbFormAssociatedInputMixin };
338
338
 
339
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1hc3NvY2lhdGVkLWlucHV0LW1peGluLmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb3JlL21peGlucy9mb3JtLWFzc29jaWF0ZWQtaW5wdXQtbWl4aW4udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaHRtbCwgaXNTZXJ2ZXIsIHR5cGUgUHJvcGVydHlEZWNsYXJhdGlvbiwgdHlwZSBQcm9wZXJ0eVZhbHVlcyB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBldmVudE9wdGlvbnMsIHByb3BlcnR5IH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuXG5pbXBvcnQgeyBzYmJJbnB1dE1vZGFsaXR5RGV0ZWN0b3IgfSBmcm9tICcuLi9hMTF5L2lucHV0LW1vZGFsaXR5LWRldGVjdG9yLnRzJztcbmltcG9ydCB0eXBlIHsgU2JiRWxlbWVudCwgU2JiRWxlbWVudENvbnN0cnVjdG9yIH0gZnJvbSAnLi4vYmFzZS1lbGVtZW50cy9lbGVtZW50LnRzJztcbmltcG9ydCB7IFNiYkxhbmd1YWdlQ29udHJvbGxlciB9IGZyb20gJy4uL2NvbnRyb2xsZXJzL2xhbmd1YWdlLWNvbnRyb2xsZXIudHMnO1xuaW1wb3J0IHsgU2JiTWVkaWFRdWVyeVBvaW50ZXJDb2Fyc2UgfSBmcm9tICcuLi9jb250cm9sbGVycy9tZWRpYS1tYXRjaGVycy1jb250cm9sbGVyLnRzJztcbmltcG9ydCB7IGlzQmxpbmssIGlzV2Via2l0IH0gZnJvbSAnLi4vZG9tL3BsYXRmb3JtLnRzJztcbmltcG9ydCB7IGkxOG5JbnB1dFJlcXVpcmVkIH0gZnJvbSAnLi4vaTE4bi9pMThuLnRzJztcblxuaW1wb3J0IHR5cGUgeyBBYnN0cmFjdENvbnN0cnVjdG9yIH0gZnJvbSAnLi9jb25zdHJ1Y3Rvci50cyc7XG5pbXBvcnQgeyBTYmJEaXNhYmxlZE1peGluIH0gZnJvbSAnLi9kaXNhYmxlZC1taXhpbi50cyc7XG5pbXBvcnQge1xuICB0eXBlIEZvcm1SZXN0b3JlUmVhc29uLFxuICB0eXBlIEZvcm1SZXN0b3JlU3RhdGUsXG4gIFNiYkZvcm1Bc3NvY2lhdGVkTWl4aW4sXG59IGZyb20gJy4vZm9ybS1hc3NvY2lhdGVkLW1peGluLnRzJztcbmltcG9ydCB7IFNiYlJlYWRvbmx5TWl4aW4gfSBmcm9tICcuL3JlYWRvbmx5LW1peGluLnRzJztcbmltcG9ydCB7IFNiYlJlcXVpcmVkTWl4aW4gfSBmcm9tICcuL3JlcXVpcmVkLW1peGluLnRzJztcblxuZXhwb3J0IGRlY2xhcmUgYWJzdHJhY3QgY2xhc3MgU2JiRm9ybUFzc29jaWF0ZWRJbnB1dE1peGluVHlwZSBleHRlbmRzIFNiYlJlcXVpcmVkTWl4aW4oXG4gIFNiYkZvcm1Bc3NvY2lhdGVkTWl4aW4oU2JiRWxlbWVudCksXG4pIHtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBmb3JtRmllbGRBc3NvY2lhdGVkID0gdHJ1ZTtcblxuICBwdWJsaWMgc2V0IHZhbHVlKHZhbHVlOiBzdHJpbmcpO1xuICBwdWJsaWMgZ2V0IHZhbHVlKCk6IHN0cmluZztcblxuICBwdWJsaWMgc2V0IGRpc2FibGVkKHZhbHVlOiBib29sZWFuKTtcbiAgcHVibGljIGdldCBkaXNhYmxlZCgpOiBib29sZWFuO1xuXG4gIHB1YmxpYyBzZXQgcmVhZE9ubHkodmFsdWU6IGJvb2xlYW4pO1xuICBwdWJsaWMgZ2V0IHJlYWRPbmx5KCk6IGJvb2xlYW47XG5cbiAgcHVibGljIHNldCBwbGFjZWhvbGRlcih2YWx1ZTogc3RyaW5nKTtcbiAgcHVibGljIGdldCBwbGFjZWhvbGRlcigpOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE1ha2VzIHRoZSBzZWxlY3Rpb24gZXF1YWwgdG8gdGhlIGN1cnJlbnQgb2JqZWN0LlxuICAgKlxuICAgKiBbTUROIFJlZmVyZW5jZV0oaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZG9jcy9XZWIvQVBJL0hUTUxJbnB1dEVsZW1lbnQvc2VsZWN0KVxuICAgKi9cbiAgcHVibGljIHNlbGVjdCgpOiB2b2lkO1xuXG4gIHB1YmxpYyBmb3JtUmVzZXRDYWxsYmFjaygpOiB2b2lkO1xuICBwdWJsaWMgZm9ybVN0YXRlUmVzdG9yZUNhbGxiYWNrKHN0YXRlOiBGb3JtUmVzdG9yZVN0YXRlIHwgbnVsbCwgcmVhc29uOiBGb3JtUmVzdG9yZVJlYXNvbik6IHZvaWQ7XG5cbiAgcHJvdGVjdGVkIHByZXBhcmVQYXN0ZWRUZXh0KHRleHQ6IHN0cmluZyk6IHN0cmluZztcbiAgcHJvdGVjdGVkIGxhbmd1YWdlOiBTYmJMYW5ndWFnZUNvbnRyb2xsZXI7XG59XG5cbmNvbnN0IGNoZWNrUGxhaW50ZXh0T25seVN1cHBvcnQgPSAoKTogYm9vbGVhbiA9PiB7XG4gIGlmIChpc1NlcnZlcikge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGNvbnN0IGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICBkaXYuc2V0QXR0cmlidXRlKCdjb250ZW50ZWRpdGFibGUnLCAnUExBSU5URVhULU9OTFknKTtcblxuICAvLyBJZiBwbGFpbnRleHQtb25seSBpcyBzdXBwb3J0ZWQsIHRoZSBhdHRyaWJ1dGUgdmFsdWUgaXNcbiAgLy8gcmV0dXJuZWQgYXMgbG93ZXItY2FzZSBmcm9tIHRoZSBwcm9wZXJ0eSBhY2Nlc3MuXG4gIHJldHVybiBkaXYuY29udGVudEVkaXRhYmxlID09PSAncGxhaW50ZXh0LW9ubHknO1xufTtcbmNvbnN0IHBsYWludGV4dE9ubHlTdXBwb3J0ZWQgPSBjaGVja1BsYWludGV4dE9ubHlTdXBwb3J0KCk7XG5cbi8qKlxuICogVGhlIFNiYkZvcm1Bc3NvY2lhdGVkSW5wdXRNaXhpbiBlbmFibGVzIG5hdGl2ZSBmb3JtIHN1cHBvcnQgZm9yIHRleHQgaW5wdXQgY29udHJvbHMuXG4gKi9cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbmV4cG9ydCBjb25zdCBTYmJGb3JtQXNzb2NpYXRlZElucHV0TWl4aW4gPSA8XG4gIFQgZXh0ZW5kcyBBYnN0cmFjdENvbnN0cnVjdG9yPFNiYkVsZW1lbnQ+ICYgU2JiRWxlbWVudENvbnN0cnVjdG9yLFxuPihcbiAgc3VwZXJDbGFzczogVCxcbik6IEFic3RyYWN0Q29uc3RydWN0b3I8U2JiRm9ybUFzc29jaWF0ZWRJbnB1dE1peGluVHlwZT4gJiBUID0+IHtcbiAgYWJzdHJhY3QgY2xhc3MgU2JiRm9ybUFzc29jaWF0ZWRJbnB1dEVsZW1lbnRcbiAgICBleHRlbmRzIFNiYlJlYWRvbmx5TWl4aW4oU2JiRGlzYWJsZWRNaXhpbihTYmJSZXF1aXJlZE1peGluKFNiYkZvcm1Bc3NvY2lhdGVkTWl4aW4oc3VwZXJDbGFzcykpKSlcbiAgICBpbXBsZW1lbnRzIFBhcnRpYWw8U2JiRm9ybUFzc29jaWF0ZWRJbnB1dE1peGluVHlwZT5cbiAge1xuICAgIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgcmVhZG9ubHkgcm9sZSA9ICd0ZXh0Ym94JztcbiAgICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IGZvcm1GaWVsZEFzc29jaWF0ZWQgPSB0cnVlO1xuXG4gICAgLyoqXG4gICAgICogQW4gZWxlbWVudCB3aXRoIGNvbnRlbnRlZGl0YWJsZSB3aWxsIG5vdCBlbWl0IGEgY2hhbmdlIGV2ZW50LiBUbyBhY2hpZXZlIHBhcml0eVxuICAgICAqIHdpdGggYSBuYXRpdmUgdGV4dCBpbnB1dCwgd2UgbmVlZCB0byB0cmFjayB3aGV0aGVyIGEgY2hhbmdlIGV2ZW50IHNob3VsZCBiZVxuICAgICAqIGVtaXR0ZWQuXG4gICAgICovXG4gICAgcHJpdmF0ZSBfc2hvdWxkRW1pdENoYW5nZSA9IGZhbHNlO1xuICAgIC8qKlxuICAgICAqIEEgbmF0aXZlIHRleHQgaW5wdXQgYXR0ZW1wdHMgdG8gc3VibWl0IHRoZSBmb3JtIHdoZW4gcHJlc3NpbmcgRW50ZXIuXG4gICAgICogVGhpcyBjYW4gYmUgcHJldmVudGVkIGJ5IGNhbGxpbmcgcHJldmVudERlZmF1bHQgb24gdGhlIGtleWRvd24gZXZlbnQuXG4gICAgICogV2UgdHJhY2sgd2hldGhlciB0byByZXF1ZXN0IHN1Ym1pdCwgd2hpY2ggc2hvdWxkIG9jY3VyIGJlZm9yZSB0aGUga2V5dXBcbiAgICAgKiBldmVudC5cbiAgICAgKi9cbiAgICBwcml2YXRlIF9zaG91bGRUcmlnZ2VyU3VibWl0ID0gZmFsc2U7XG5cbiAgICBwcm90ZWN0ZWQgbGFuZ3VhZ2UgPSBuZXcgU2JiTGFuZ3VhZ2VDb250cm9sbGVyKHRoaXMpO1xuXG4gICAgLyoqXG4gICAgICogRm9ybSB0eXBlIG9mIGVsZW1lbnQuXG4gICAgICogQGRlZmF1bHQgJ3RleHQnXG4gICAgICovXG4gICAgcHVibGljIG92ZXJyaWRlIGdldCB0eXBlKCk6IHN0cmluZyB7XG4gICAgICByZXR1cm4gJ3RleHQnO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSB2YWx1ZSBvZiB0aGUgaW5wdXQuIFJlZmxlY3RzIHRoZSBjdXJyZW50IHRleHQgdmFsdWUgb2YgdGhpcyBpbnB1dC5cbiAgICAgKi9cbiAgICBAcHJvcGVydHkoKVxuICAgIHB1YmxpYyBzZXQgdmFsdWUodmFsdWU6IHN0cmluZykge1xuICAgICAgdGhpcy5fdmFsdWUgPSB0aGlzLl9jbGVhblRleHQodmFsdWUpO1xuICAgICAgaWYgKHRoaXMuaGFzVXBkYXRlZCkge1xuICAgICAgICB0aGlzLl9hc3NpZ25WYWx1ZSh0aGlzLl92YWx1ZSk7XG4gICAgICB9XG4gICAgICAvKiogQGludGVybmFsICovXG4gICAgICB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCdkaXNwbGF5dmFsdWVjaGFuZ2UnLCB7IGJ1YmJsZXM6IHRydWUsIGNvbXBvc2VkOiB0cnVlIH0pKTtcbiAgICB9XG4gICAgcHVibGljIGdldCB2YWx1ZSgpOiBzdHJpbmcge1xuICAgICAgcmV0dXJuIHRoaXMuX3ZhbHVlID8/ICcnO1xuICAgIH1cbiAgICBwcml2YXRlIF92YWx1ZTogc3RyaW5nID0gJyc7XG5cbiAgICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6IGZhbHNlIH0pXG4gICAgcHVibGljIHNldCBwbGFjZWhvbGRlcih2YWx1ZTogc3RyaW5nKSB7XG4gICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgdGhpcy5zZXRBdHRyaWJ1dGUoJ3BsYWNlaG9sZGVyJywgdmFsdWUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5yZW1vdmVBdHRyaWJ1dGUoJ3BsYWNlaG9sZGVyJyk7XG4gICAgICB9XG4gICAgICB0aGlzLmludGVybmFscy5hcmlhUGxhY2Vob2xkZXIgPSB2YWx1ZSA/IHZhbHVlIDogbnVsbDtcbiAgICB9XG4gICAgcHVibGljIGdldCBwbGFjZWhvbGRlcigpOiBzdHJpbmcge1xuICAgICAgcmV0dXJuIHRoaXMuZ2V0QXR0cmlidXRlKCdwbGFjZWhvbGRlcicpID8/ICcnO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBjb25zdHJ1Y3RvcigpIHtcbiAgICAgIHN1cGVyKCk7XG4gICAgICAvLyBXZSBwcmltYXJpbHkgdXNlIGNhcHR1cmUgZXZlbnQgbGlzdGVuZXJzLCBhcyB3ZSB3YW50XG4gICAgICAvLyBvdXIgbGlzdGVuZXJzIHRvIG9jY3VyIGJlZm9yZSBjb25zdW1lciBldmVudCBsaXN0ZW5lcnMuXG4gICAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/LihcbiAgICAgICAgJ2lucHV0JyxcbiAgICAgICAgKCkgPT4ge1xuICAgICAgICAgIGNvbnN0IG9sZFZhbHVlID0gdGhpcy5fdmFsdWU7XG4gICAgICAgICAgdGhpcy5fdmFsdWUgPSB0aGlzLl9jbGVhblRleHQodGhpcy50ZXh0Q29udGVudCA/PyAnJyk7XG4gICAgICAgICAgdGhpcy5yZXF1ZXN0VXBkYXRlKCd2YWx1ZScsIG9sZFZhbHVlKTtcbiAgICAgICAgICB0aGlzLmludGVybmFscy5zdGF0ZXMuYWRkKCdpbnRlcmFjdGVkJyk7XG4gICAgICAgICAgdGhpcy5fc2hvdWxkRW1pdENoYW5nZSA9IHRydWU7XG4gICAgICAgIH0sXG4gICAgICAgIHsgY2FwdHVyZTogdHJ1ZSB9LFxuICAgICAgKTtcbiAgICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcj8uKCdjaGFuZ2UnLCAoKSA9PiAodGhpcy5fc2hvdWxkRW1pdENoYW5nZSA9IGZhbHNlKSwgeyBjYXB0dXJlOiB0cnVlIH0pO1xuICAgICAgdGhpcy5hZGRFdmVudExpc3RlbmVyPy4oXG4gICAgICAgICdrZXlkb3duJyxcbiAgICAgICAgKGV2ZW50KSA9PiB7XG4gICAgICAgICAgaWYgKHRoaXMuX3JlcXVpcmVzRW1wdHlQYXRjaCgpKSB7XG4gICAgICAgICAgICB0aGlzLl9hc3NpZ25WYWx1ZSgnJyk7XG4gICAgICAgICAgfVxuICAgICAgICAgIC8vIFdlIHByZXZlbnQgcmVjdXJzaXZlIGV2ZW50cyBieSBjaGVja2luZyB0aGUgb3JpZ2luYWwgZXZlbnQgZm9yIGlzVHJ1c3RlZFxuICAgICAgICAgIC8vIHdoaWNoIGlzIGZhbHNlIGZvciBtYW51YWxseSBkaXNwYXRjaGVkIGV2ZW50cyAod2hpY2ggd2UgZGlzcGF0Y2ggYmVsb3cpLlxuICAgICAgICAgIGlmICgoZXZlbnQua2V5ID09PSAnRW50ZXInIHx8IGV2ZW50LmtleSA9PT0gJ1xcbicpICYmIGV2ZW50LmlzVHJ1c3RlZCkge1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgdGhpcy5fc2hvdWxkVHJpZ2dlclN1Ym1pdCA9IHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgS2V5Ym9hcmRFdmVudCgna2V5ZG93bicsIGV2ZW50KSk7XG4gICAgICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgICAgIGlzV2Via2l0ICYmXG4gICAgICAgICAgICB0aGlzLnZhbHVlICYmXG4gICAgICAgICAgICAoZXZlbnQua2V5ID09PSAnQmFja3NwYWNlJyB8fCBldmVudC5rZXkgPT09ICdEZWxldGUnKSAmJlxuICAgICAgICAgICAgZXZlbnQuaXNUcnVzdGVkXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICAvLyBJbiBXZWJraXQgcHJlc3NpbmcgQmFja3NwYWNlIG9yIERlbGV0ZSBjb21wbGV0ZWx5IHJlbW92ZXMgYWxsIHRoZSBjb250ZW50XG4gICAgICAgICAgICAvLyBpZiBjb250ZW50ZWRpdGFibGUgaXMgc2V0IG9uIGEgd2ViIGNvbXBvbmVudCBob3N0LlxuICAgICAgICAgICAgLy8gV2UgaGF2ZSB0byByZXBsaWNhdGUgdGhlIG5vcm1hbCBkZWxldGUgYmVoYXZpb3IuXG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgZXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7XG5cbiAgICAgICAgICAgIGlmICghdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBLZXlib2FyZEV2ZW50KCdrZXlkb3duJywgZXZlbnQpKSkge1xuICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkUmFuZ2UgPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk/LmdldFJhbmdlQXQoMCk7XG4gICAgICAgICAgICBpZiAoIXNlbGVjdGVkUmFuZ2UpIHtcbiAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoc2VsZWN0ZWRSYW5nZS5zdGFydE9mZnNldCAhPT0gc2VsZWN0ZWRSYW5nZS5lbmRPZmZzZXQpIHtcbiAgICAgICAgICAgICAgLy8gSWYgYSB0ZXh0IHJhbmdlIGlzIHNlbGVjdGVkLCB0aGVuIGRlbGV0ZSB0aGlzIHJhbmdlXG4gICAgICAgICAgICAgIHNlbGVjdGVkUmFuZ2UuZGVsZXRlQ29udGVudHMoKTtcbiAgICAgICAgICAgICAgdGhpcy5fZGlzcGF0Y2hJbnB1dEV2ZW50KCk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGV2ZW50LmtleSA9PT0gJ0JhY2tzcGFjZScgJiYgc2VsZWN0ZWRSYW5nZS5zdGFydE9mZnNldCA+IDApIHtcbiAgICAgICAgICAgICAgLy8gV2hlbiBwcmVzc2luZyBCYWNrc3BhY2UsIHdlIHNlbGVjdCB0aGUgcHJldmlvdXMgY2hhcmFjdGVyIGZyb21cbiAgICAgICAgICAgICAgLy8gdGhlIGN1cnJlbnQgY3Vyc29yIHBvc2l0aW9uIGFuZCBkZWxldGUgaXQuXG4gICAgICAgICAgICAgIHNlbGVjdGVkUmFuZ2Uuc2V0U3RhcnQoc2VsZWN0ZWRSYW5nZS5zdGFydENvbnRhaW5lciwgc2VsZWN0ZWRSYW5nZS5zdGFydE9mZnNldCAtIDEpO1xuICAgICAgICAgICAgICBzZWxlY3RlZFJhbmdlLmRlbGV0ZUNvbnRlbnRzKCk7XG4gICAgICAgICAgICAgIHRoaXMuX2Rpc3BhdGNoSW5wdXRFdmVudCgpO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChldmVudC5rZXkgPT09ICdEZWxldGUnICYmIHNlbGVjdGVkUmFuZ2UuZW5kT2Zmc2V0IDwgdGhpcy52YWx1ZS5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgLy8gV2hlbiBwcmVzc2luZyBEZWxldGUsIHdlIHNlbGVjdCB0aGUgbmV4dCBjaGFyYWN0ZXIgZnJvbVxuICAgICAgICAgICAgICAvLyB0aGUgY3VycmVudCBjdXJzb3IgcG9zaXRpb24gYW5kIGRlbGV0ZSBpdC5cbiAgICAgICAgICAgICAgc2VsZWN0ZWRSYW5nZS5zZXRFbmQoc2VsZWN0ZWRSYW5nZS5lbmRDb250YWluZXIsIHNlbGVjdGVkUmFuZ2UuZW5kT2Zmc2V0ICsgMSk7XG4gICAgICAgICAgICAgIHNlbGVjdGVkUmFuZ2UuZGVsZXRlQ29udGVudHMoKTtcbiAgICAgICAgICAgICAgdGhpcy5fZGlzcGF0Y2hJbnB1dEV2ZW50KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICB7IGNhcHR1cmU6IHRydWUgfSxcbiAgICAgICk7XG4gICAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/LihcbiAgICAgICAgJ2tleXVwJyxcbiAgICAgICAgKGV2ZW50KSA9PiB7XG4gICAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gJ0VudGVyJyB8fCBldmVudC5rZXkgPT09ICdcXG4nKSB7XG4gICAgICAgICAgICB0aGlzLl9lbWl0Q2hhbmdlSWZOZWNlc3NhcnkoKTtcbiAgICAgICAgICAgIGlmICh0aGlzLl9zaG91bGRUcmlnZ2VyU3VibWl0KSB7XG4gICAgICAgICAgICAgIHRoaXMuX3Nob3VsZFRyaWdnZXJTdWJtaXQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgdGhpcy5mb3JtPy5yZXF1ZXN0U3VibWl0KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIGlmICh0aGlzLl9yZXF1aXJlc0VtcHR5UGF0Y2goKSkge1xuICAgICAgICAgICAgdGhpcy5fc2V0Q3Vyc29yQXQoMCk7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICB7IGNhcHR1cmU6IHRydWUgfSxcbiAgICAgICk7XG4gICAgICAvLyBjb250ZW50ZWRpdGFibGUgYWxsb3dzIHBhc3RpbmcgcmljaCBjb250ZW50IGludG8gaXRzIGhvc3QuXG4gICAgICAvLyBXZSBwcmV2ZW50IHRoaXMgYnkgbGlzdGVuaW5nIHRvIHRoZSBwYXN0ZSBldmVudCBhbmRcbiAgICAgIC8vIGV4dHJhY3RpbmcgdGhlIHBsYWluIHRleHQgZnJvbSB0aGUgcGFzdGVkIGNvbnRlbnRcbiAgICAgIC8vIGFuZCBpbnNlcnRpbmcgaXQgaW50byB0aGUgc2VsZWN0ZWQgcmFuZ2UgKGN1cnNvciBwb3NpdGlvblxuICAgICAgLy8gb3Igc2VsZWN0aW9uKS5cbiAgICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcj8uKCdwYXN0ZScsIChlKSA9PiB7XG4gICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgaWYgKHRoaXMuX3JlcXVpcmVzRW1wdHlQYXRjaCgpKSB7XG4gICAgICAgICAgdGhpcy5fYXNzaWduVmFsdWUoJycpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgdGV4dCA9IHRoaXMuX2NsZWFuVGV4dChlLmNsaXBib2FyZERhdGE/LmdldERhdGEoJ3RleHQvcGxhaW4nKSA/PyAnJyk7XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkUmFuZ2UgPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk/LmdldFJhbmdlQXQoMCk7XG4gICAgICAgIGlmICghc2VsZWN0ZWRSYW5nZSB8fCAhdGV4dCkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHNlbGVjdGVkUmFuZ2UuZGVsZXRlQ29udGVudHMoKTtcbiAgICAgICAgc2VsZWN0ZWRSYW5nZS5pbnNlcnROb2RlKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHRoaXMucHJlcGFyZVBhc3RlZFRleHQodGV4dCkpKTtcbiAgICAgICAgc2VsZWN0ZWRSYW5nZS5zZXRTdGFydChzZWxlY3RlZFJhbmdlLmVuZENvbnRhaW5lciwgc2VsZWN0ZWRSYW5nZS5lbmRPZmZzZXQpO1xuICAgICAgICB0aGlzLl9kaXNwYXRjaElucHV0RXZlbnQoKTtcbiAgICAgIH0pO1xuICAgICAgLy8gV2hlbiBmb2N1c2luZyBhIHRleHQgaW5wdXQgdmlhIGtleWJvYXJkLCB0aGUgdGV4dCBjb250ZW50IHNob3VsZCBiZSBzZWxlY3RlZC5cbiAgICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcj8uKCdmb2N1cycsICgpID0+IHtcbiAgICAgICAgaWYgKHNiYklucHV0TW9kYWxpdHlEZXRlY3Rvci5tb3N0UmVjZW50TW9kYWxpdHkgPT09ICdrZXlib2FyZCcpIHtcbiAgICAgICAgICAvLyBUT0RPOiBUaGlzIGRvZXMgbm90IHNlZW0gdG8gd29yayBpbiBGaXJlZm94IHdpdGggcmVhZG9ubHkuXG4gICAgICAgICAgd2luZG93LmdldFNlbGVjdGlvbigpPy5zZWxlY3RBbGxDaGlsZHJlbih0aGlzKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/LigndG91Y2hlbmQnLCAoKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLl9yZXF1aXJlc0VtcHR5UGF0Y2goKSkge1xuICAgICAgICAgIHRoaXMuX2Fzc2lnblZhbHVlKCcmbmJzcDsnKTtcbiAgICAgICAgICB0aGlzLl9zZXRDdXJzb3JBdCgwKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/LignY2xpY2snLCAoKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLl9yZXF1aXJlc0VtcHR5UGF0Y2goKSAmJiBzYmJJbnB1dE1vZGFsaXR5RGV0ZWN0b3IubW9zdFJlY2VudE1vZGFsaXR5ID09PSAndG91Y2gnKSB7XG4gICAgICAgICAgdGhpcy5fc2V0Q3Vyc29yQXQoMCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgICAvLyBPbiBibHVyIHRoZSBuYXRpdmUgdGV4dCBpbnB1dCBzY3JvbGxzIHRoZSB0ZXh0IHRvIHRoZSBzdGFydCBvZiB0aGUgdGV4dC5cbiAgICAgIC8vIFdlIG1pbWljIHRoYXQgYnkgcmVzZXR0aW5nIHRoZSBzY3JvbGwgcG9zaXRpb24uXG4gICAgICAvLyBXZSBhbHNvIHVuc2V0IGFueSBzZWxlY3Rpb24gdG8gYWxpZ24gd2l0aCB0aGUgbmF0aXZlIHRleHQgaW5wdXQuXG4gICAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/LihcbiAgICAgICAgJ2JsdXInLFxuICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgd2luZG93LmdldFNlbGVjdGlvbigpPy5yZW1vdmVBbGxSYW5nZXMoKTtcbiAgICAgICAgICBpZiAodGhpcy52YWx1ZSA9PT0gJycpIHtcbiAgICAgICAgICAgIHRoaXMuX2Fzc2lnblZhbHVlKCcnKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5fZW1pdENoYW5nZUlmTmVjZXNzYXJ5KCk7XG4gICAgICAgICAgdGhpcy5zY3JvbGxMZWZ0ID0gMDtcbiAgICAgICAgfSxcbiAgICAgICAgeyBjYXB0dXJlOiB0cnVlIH0sXG4gICAgICApO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBvdmVycmlkZSBpc0Rpc2FibGVkRXh0ZXJuYWxseSgpOiBib29sZWFuIHtcbiAgICAgIHJldHVybiB0aGlzLmZvcm1EaXNhYmxlZDtcbiAgICB9XG5cbiAgICBwdWJsaWMgb3ZlcnJpZGUgY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgICBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpO1xuICAgICAgdGhpcy5pbnRlcm5hbHMuYXJpYU11bHRpTGluZSA9ICdmYWxzZSc7XG4gICAgICB0aGlzLl91cGRhdGVDb250ZW50ZWRpdGFibGUoKTtcblxuICAgICAgLy8gV2Ugd2FudCB0byByZXBsYWNlIGFueSBjb250ZW50IGJ5IGp1c3QgdGhlIHRleHQgY29udGVudC5cbiAgICAgIHRoaXMuX2Fzc2lnblZhbHVlKHRoaXMudmFsdWUpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvdmVycmlkZSBmb2N1cyhvcHRpb25zPzogRm9jdXNPcHRpb25zKTogdm9pZCB7XG4gICAgICBzdXBlci5mb2N1cyhvcHRpb25zKTtcbiAgICAgIC8vIEJ5IGRlZmF1bHQsIHdoZW4gY2FsbGluZyBmb2N1cyBvbiBhbiBpbnB1dCBlbGVtZW50LCB0aGUgY3Vyc29yIGlzIHBsYWNlZFxuICAgICAgLy8gYXQgdGhlIGVuZCBvZiB0aGUgaW5wdXQgdGV4dC4gSG93ZXZlciwgd2l0aCBjb250ZW50ZWRpdGFibGUsIHRoZSBjdXJzb3JcbiAgICAgIC8vIGlzIHBsYWNlZCBhdCB0aGUgYmVnaW5uaW5nLCBzbyB3ZSBtb3ZlIGl0IHRvIHRoZSBlbmQsIGlmIHRoYXQgaXMgdGhlIGNhc2UuXG4gICAgICBpZiAodGhpcy5fY2FuU2VsZWN0KCkpIHtcbiAgICAgICAgY29uc3Qgc2VsZWN0aW9uID0gd2luZG93LmdldFNlbGVjdGlvbigpO1xuICAgICAgICBpZiAoIXNlbGVjdGlvbikge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCByYW5nZSA9IHNlbGVjdGlvbi5yYW5nZUNvdW50ID4gMCA/IHNlbGVjdGlvbi5nZXRSYW5nZUF0KDApIDogbnVsbDtcbiAgICAgICAgaWYgKHJhbmdlICYmIHJhbmdlLnN0YXJ0T2Zmc2V0ICE9PSAwKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fc2V0Q3Vyc29yQXQodGhpcy50ZXh0Q29udGVudCEubGVuZ3RoKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgb3ZlcnJpZGUgYXR0cmlidXRlQ2hhbmdlZENhbGxiYWNrKFxuICAgICAgbmFtZTogc3RyaW5nLFxuICAgICAgb2xkOiBzdHJpbmcgfCBudWxsLFxuICAgICAgdmFsdWU6IHN0cmluZyB8IG51bGwsXG4gICAgKTogdm9pZCB7XG4gICAgICAvKipcbiAgICAgICAqIFRoZSBuYXRpdmUgdGV4dCBpbnB1dCBjaGFuZ2VzIHRoZSB2YWx1ZSBwcm9wZXJ0eSB3aGVuIHRoZSB2YWx1ZSBhdHRyaWJ1dGUgaXNcbiAgICAgICAqIGNoYW5nZWQgdW5kZXIgdGhlIGNvbmRpdGlvbiB0aGF0IG5vIGlucHV0IGV2ZW50IGhhcyBvY2N1cnJlZCBzaW5jZSBjcmVhdGlvblxuICAgICAgICogb3IgdGhlIGxhc3QgZm9ybSByZXNldC5cbiAgICAgICAqL1xuICAgICAgaWYgKG5hbWUgIT09ICd2YWx1ZScgfHwgIXRoaXMubWF0Y2hlcz8uKCc6c3RhdGUoaW50ZXJhY3RlZCknKSkge1xuICAgICAgICBzdXBlci5hdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2sobmFtZSwgb2xkLCB2YWx1ZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSXMgY2FsbGVkIHdoZW5ldmVyIHRoZSBmb3JtIGlzIGJlaW5nIHJlc2V0LlxuICAgICAqXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgcHVibGljIG92ZXJyaWRlIGZvcm1SZXNldENhbGxiYWNrKCk6IHZvaWQge1xuICAgICAgdGhpcy5pbnRlcm5hbHMuc3RhdGVzLmRlbGV0ZSgnaW50ZXJhY3RlZCcpO1xuICAgICAgdGhpcy52YWx1ZSA9IHRoaXMuZ2V0QXR0cmlidXRlKCd2YWx1ZScpID8/ICcnO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqICBDYWxsZWQgd2hlbiB0aGUgYnJvd3NlciBpcyB0cnlpbmcgdG8gcmVzdG9yZSBlbGVtZW504oCZcyBzdGF0ZSB0byBzdGF0ZSBpbiB3aGljaCBjYXNlXG4gICAgICogIHJlYXNvbiBpcyBcInJlc3RvcmVcIiwgb3Igd2hlbiB0aGUgYnJvd3NlciBpcyB0cnlpbmcgdG8gZnVsZmlsbCBhdXRvZmlsbCBvbiBiZWhhbGYgb2ZcbiAgICAgKiAgdXNlciBpbiB3aGljaCBjYXNlIHJlYXNvbiBpcyBcImF1dG9jb21wbGV0ZVwiLlxuICAgICAqICBJbiB0aGUgY2FzZSBvZiBcInJlc3RvcmVcIiwgc3RhdGUgaXMgYSBzdHJpbmcsIEZpbGUsIG9yIEZvcm1EYXRhIG9iamVjdFxuICAgICAqICBwcmV2aW91c2x5IHNldCBhcyB0aGUgc2Vjb25kIGFyZ3VtZW50IHRvIHNldEZvcm1WYWx1ZS5cbiAgICAgKlxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHB1YmxpYyBvdmVycmlkZSBmb3JtU3RhdGVSZXN0b3JlQ2FsbGJhY2soXG4gICAgICBzdGF0ZTogRm9ybVJlc3RvcmVTdGF0ZSB8IG51bGwsXG4gICAgICBfcmVhc29uOiBGb3JtUmVzdG9yZVJlYXNvbixcbiAgICApOiB2b2lkIHtcbiAgICAgIGlmIChzdGF0ZSAmJiB0eXBlb2Ygc3RhdGUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHRoaXMudmFsdWUgPSBzdGF0ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBNYWtlcyB0aGUgc2VsZWN0aW9uIGVxdWFsIHRvIHRoZSBjdXJyZW50IG9iamVjdC5cbiAgICAgKlxuICAgICAqIEBsaW5rIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2RvY3MvV2ViL0FQSS9IVE1MSW5wdXRFbGVtZW50L3NlbGVjdFxuICAgICAqL1xuICAgIHB1YmxpYyBzZWxlY3QoKTogdm9pZCB7XG4gICAgICB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk/LnNlbGVjdEFsbENoaWxkcmVuKHRoaXMpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBvdmVycmlkZSBmaXJzdFVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXM6IFByb3BlcnR5VmFsdWVzPHRoaXM+KTogdm9pZCB7XG4gICAgICBzdXBlci5maXJzdFVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXMpO1xuXG4gICAgICAvLyBJZiB0aGUgdmFsdWUgd2FzIGFzc2lnbmVkIGJlZm9yZSBmaXJzdFVwZGF0ZSwgd2UgaGF2ZSB0b1xuICAgICAgLy8gd3JpdGUgaXQgdGhlIGRvY3VtZW50IHRvIGJlIHZpc3VhbGx5IHNlZW5cbiAgICAgIGlmICh0aGlzLnZhbHVlICYmICF0aGlzLmlubmVySFRNTC5sZW5ndGgpIHtcbiAgICAgICAgdGhpcy5fYXNzaWduVmFsdWUodGhpcy52YWx1ZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIG92ZXJyaWRlIHJlcXVlc3RVcGRhdGUoXG4gICAgICBuYW1lPzogUHJvcGVydHlLZXksXG4gICAgICBvbGRWYWx1ZT86IHVua25vd24sXG4gICAgICBvcHRpb25zPzogUHJvcGVydHlEZWNsYXJhdGlvbixcbiAgICApOiB2b2lkIHtcbiAgICAgIHN1cGVyLnJlcXVlc3RVcGRhdGUobmFtZSwgb2xkVmFsdWUsIG9wdGlvbnMpO1xuICAgICAgaWYgKFxuICAgICAgICB0aGlzLmlzQ29ubmVjdGVkICYmXG4gICAgICAgIChuYW1lID09PSAnZGlzYWJsZWQnIHx8IG5hbWUgPT09ICdmb3JtRGlzYWJsZWQnIHx8IG5hbWUgPT09ICdyZWFkT25seScpXG4gICAgICApIHtcbiAgICAgICAgdGhpcy5fdXBkYXRlQ29udGVudGVkaXRhYmxlKCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIHNob3VsZFZhbGlkYXRlKG5hbWU6IFByb3BlcnR5S2V5IHwgdW5kZWZpbmVkKTogYm9vbGVhbiB7XG4gICAgICByZXR1cm4gc3VwZXIuc2hvdWxkVmFsaWRhdGUobmFtZSkgfHwgbmFtZSA9PT0gJ3ZhbHVlJyB8fCBuYW1lID09PSAncmVxdWlyZWQnO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBvdmVycmlkZSB2YWxpZGF0ZSgpOiB2b2lkIHtcbiAgICAgIHN1cGVyLnZhbGlkYXRlKCk7XG4gICAgICBpZiAodGhpcy5yZXF1aXJlZCAmJiAhdGhpcy52YWx1ZSkge1xuICAgICAgICB0aGlzLnNldFZhbGlkaXR5RmxhZygndmFsdWVNaXNzaW5nJywgaTE4bklucHV0UmVxdWlyZWRbdGhpcy5sYW5ndWFnZS5jdXJyZW50XSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnJlbW92ZVZhbGlkaXR5RmxhZygndmFsdWVNaXNzaW5nJyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHByZXBhcmVQYXN0ZWRUZXh0KHRleHQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICByZXR1cm4gdGV4dDtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9yZXF1aXJlc0VtcHR5UGF0Y2goKTogYm9vbGVhbiB7XG4gICAgICAvLyBJbiBCbGluaywgYSBjb250ZW50ZWRpdGFibGUgZWxlbWVudCB3aXRoIGVtcHR5IGNvbnRlbnQgd2lsbCBjcmFzaFxuICAgICAgLy8gdXBvbiByZWNlaXZpbmcgZm9jdXMsIHdoZW4gaW4gTW9iaWxlIG1vZGUuXG4gICAgICAvLyBUbyBwcmV2ZW50IHRoaXMsIHdlIHBhdGNoIHRoZSBlbXB0eSBzdGF0ZSBieSBpbnNlcnRpbmcgYSBub24tYnJlYWtpbmcgc3BhY2UuXG4gICAgICByZXR1cm4gaXNTZXJ2ZXJcbiAgICAgICAgPyBmYWxzZVxuICAgICAgICA6IGlzQmxpbmsgJiYgdGhpcy52YWx1ZSA9PT0gJycgJiYgd2luZG93Lm1hdGNoTWVkaWEoU2JiTWVkaWFRdWVyeVBvaW50ZXJDb2Fyc2UpLm1hdGNoZXM7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfYXNzaWduVmFsdWUodmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgdGhpcy5pbm5lckhUTUwgPSB2YWx1ZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9zZXRDdXJzb3JBdChwb3NpdGlvbjogbnVtYmVyKTogdm9pZCB7XG4gICAgICBjb25zdCBzZWxlY3Rpb24gPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk7XG4gICAgICBpZiAoIXNlbGVjdGlvbikge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHJhbmdlID0gZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKTtcbiAgICAgIHJhbmdlLnNldFN0YXJ0KHRoaXMuZmlyc3RDaGlsZCEsIHBvc2l0aW9uKTtcbiAgICAgIHJhbmdlLmNvbGxhcHNlKHRydWUpO1xuICAgICAgc2VsZWN0aW9uLnJlbW92ZUFsbFJhbmdlcygpO1xuICAgICAgc2VsZWN0aW9uLmFkZFJhbmdlKHJhbmdlKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9jbGVhblRleHQodmFsdWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAvLyBUaGUgbmF0aXZlIHRleHQgaW5wdXQgcmVtb3ZlcyBhbGwgbmV3bGluZSBjaGFyYWN0ZXJzIGlmIHBhc3NlZCB0byB0aGUgdmFsdWUgcHJvcGVydHlcbiAgICAgIHJldHVybiB2YWx1ZSA9PT0gbnVsbCA/ICcnIDogYCR7dmFsdWV9YC5yZXBsYWNlKC9bXFxuXFxyXSsvZywgJycpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2Rpc3BhdGNoSW5wdXRFdmVudCgpOiB2b2lkIHtcbiAgICAgIC8qKiBUaGUgaW5wdXQgZXZlbnQgZmlyZXMgd2hlbiB0aGUgdmFsdWUgaGFzIGJlZW4gY2hhbmdlZCBhcyBhIGRpcmVjdCByZXN1bHQgb2YgYSB1c2VyIGFjdGlvbi4gKi9cbiAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgSW5wdXRFdmVudCgnaW5wdXQnLCB7IGJ1YmJsZXM6IHRydWUsIGNvbXBvc2VkOiB0cnVlIH0pKTtcbiAgICB9XG5cbiAgICBAZXZlbnRPcHRpb25zKHsgcGFzc2l2ZTogdHJ1ZSB9KVxuICAgIHByaXZhdGUgX2NsZWFuQ2hpbGRyZW4oKTogdm9pZCB7XG4gICAgICBpZiAodGhpcy5jaGlsZEVsZW1lbnRDb3VudCkge1xuICAgICAgICBmb3IgKGNvbnN0IGVsZW1lbnQgb2YgdGhpcy5jaGlsZHJlbikge1xuICAgICAgICAgIGVsZW1lbnQucmVtb3ZlKCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIF91cGRhdGVDb250ZW50ZWRpdGFibGUoKTogdm9pZCB7XG4gICAgICBpZiAoIWlzU2VydmVyICYmIHRoaXMuaXNDb25uZWN0ZWQpIHtcbiAgICAgICAgdGhpcy5pbnRlcm5hbHMuYXJpYVJlYWRPbmx5ID0gdGhpcy5yZWFkT25seSA/ICd0cnVlJyA6IG51bGw7XG4gICAgICAgIHRoaXMuaW50ZXJuYWxzLmFyaWFEaXNhYmxlZCA9IHRoaXMuZGlzYWJsZWQgPyAndHJ1ZScgOiBudWxsO1xuICAgICAgICAvLyBUT0RPKDIwMjYpOiBGaXJlZm94IHN1cHBvcnRzIHBsYWludGV4dC1vbmx5IHNpbmNlIHZlcnNpb24gMTM2IChNYXJjaCAyMDI1KS5cbiAgICAgICAgLy8gVW50aWwgdGhpcyBpcyBwYXJ0IG9mIG91ciBiYXNlbGluZSwgd2Ugc2hvdWxkIGZlYXR1cmUgY2hlY2sgdG8gZW5hYmxlIGl0LlxuICAgICAgICBjb25zdCB2YWx1ZSA9XG4gICAgICAgICAgdGhpcy5kaXNhYmxlZCB8fCB0aGlzLnJlYWRPbmx5XG4gICAgICAgICAgICA/ICdmYWxzZSdcbiAgICAgICAgICAgIDogcGxhaW50ZXh0T25seVN1cHBvcnRlZFxuICAgICAgICAgICAgICA/ICdwbGFpbnRleHQtb25seSdcbiAgICAgICAgICAgICAgOiAndHJ1ZSc7XG4gICAgICAgIHRoaXMuc2V0QXR0cmlidXRlKCdjb250ZW50ZWRpdGFibGUnLCB2YWx1ZSk7XG4gICAgICAgIC8vIEluIHRoZSByZWFkb25seSBjYXNlLCB3ZSBkaXNhYmxlIGNvbnRlbnRlZGl0YWJsZSwgYnV0IGl0IHN0aWxsXG4gICAgICAgIC8vIG5lZWRzIHRvIGJlIGZvY3VzYWJsZS4gV2UgYWNoaWV2ZSB0aGlzIGJ5IHNldHRpbmcgdGFiaW5kZXggaW4gdGhhdCBjYXNlLlxuICAgICAgICBpZiAodGhpcy5yZWFkT25seSkge1xuICAgICAgICAgIHRoaXMuc2V0QXR0cmlidXRlKCd0YWJpbmRleCcsICcwJyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5yZW1vdmVBdHRyaWJ1dGUoJ3RhYmluZGV4Jyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIF9lbWl0Q2hhbmdlSWZOZWNlc3NhcnkoKTogdm9pZCB7XG4gICAgICBpZiAodGhpcy5fc2hvdWxkRW1pdENoYW5nZSkge1xuICAgICAgICB0aGlzLl9zaG91bGRFbWl0Q2hhbmdlID0gZmFsc2U7XG4gICAgICAgIC8qKiBUaGUgY2hhbmdlIGV2ZW50IGlzIGZpcmVkIHdoZW4gdGhlIHVzZXIgbW9kaWZpZXMgdGhlIGVsZW1lbnQncyB2YWx1ZS4gVW5saWtlIHRoZSBpbnB1dCBldmVudCwgdGhlIGNoYW5nZSBldmVudCBpcyBub3QgbmVjZXNzYXJpbHkgZmlyZWQgZm9yIGVhY2ggYWx0ZXJhdGlvbiB0byBhbiBlbGVtZW50J3MgdmFsdWUuICovXG4gICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ2NoYW5nZScsIHsgYnViYmxlczogdHJ1ZSB9KSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfY2FuU2VsZWN0KCk6IGJvb2xlYW4ge1xuICAgICAgcmV0dXJuICFpc1NlcnZlciAmJiAhdGhpcy5kaXNhYmxlZCAmJiAhdGhpcy5yZWFkT25seSAmJiAhIXRoaXMudmFsdWU7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlbmRlcigpOiB1bmtub3duIHtcbiAgICAgIHJldHVybiBodG1sYDxzbG90IEBzbG90Y2hhbmdlPSR7dGhpcy5fY2xlYW5DaGlsZHJlbn0+PC9zbG90PmA7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIFNiYkZvcm1Bc3NvY2lhdGVkSW5wdXRFbGVtZW50IGFzIHVua25vd24gYXMgQWJzdHJhY3RDb25zdHJ1Y3RvcjxTYmJGb3JtQXNzb2NpYXRlZElucHV0TWl4aW5UeXBlPiAmXG4gICAgVDtcbn07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFtREEsSUFBTSxrQ0FBMEM7QUFDOUMsS0FBSSxTQUNGLFFBQU87Q0FHVCxNQUFNLE1BQU0sU0FBUyxjQUFjLE1BQU07QUFDekMsS0FBSSxhQUFhLG1CQUFtQixpQkFBaUI7QUFJckQsUUFBTyxJQUFJLG9CQUFvQjs7QUFFakMsSUFBTSx5QkFBeUIsMkJBQTJCOzs7O0FBTTFELElBQWEsK0JBR1gsZUFDNEQ7QUErWjVELGVBOVo0QztvQkFDbEMsaUJBQWlCLGlCQUFpQixpQkFBaUIsdUJBQXVCLFdBQVcsQ0FBQyxDQUFDLENBQUM7Ozs7O2VBRG5GLHNDQUNMLFlBQXdGOzs7NkJBaUMvRixVQUFVLENBQUE7bUNBY1YsU0FBUyxFQUFFLFdBQVcsT0FBTyxDQUFDLENBQUE7a0NBNlQ5QixhQUFhLEVBQUUsU0FBUyxNQUFNLENBQUMsQ0FBQTtBQTFVaEMsaUJBQUEsTUFBQSxNQUFBLHVCQUFBO0tBQUEsTUFBQTtLQUFBLE1BQUE7S0FBQSxRQUFBO0tBQUEsU0FBQTtLQUFBLFFBQUE7TUFBQSxNQUFBLFFBQUEsV0FBQTtNQUFBLE1BQUEsS0FBQSxVQUFBO0FBQUEsV0FBVyxRQUFLOztNQUFBO0tBQUEsVUFBQTtLQUFBLEVBQUEsTUFBQSwyQkFBQTtBQWNoQixpQkFBQSxNQUFBLE1BQUEsNkJBQUE7S0FBQSxNQUFBO0tBQUEsTUFBQTtLQUFBLFFBQUE7S0FBQSxTQUFBO0tBQUEsUUFBQTtNQUFBLE1BQUEsUUFBQSxpQkFBQTtNQUFBLE1BQUEsS0FBQSxVQUFBO0FBQUEsV0FBVyxjQUFXOztNQUFBO0tBQUEsVUFBQTtLQUFBLEVBQUEsTUFBQSwyQkFBQTtBQTZUdEIsaUJBQUEsTUFB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
339
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1hc3NvY2lhdGVkLWlucHV0LW1peGluLmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb3JlL21peGlucy9mb3JtLWFzc29jaWF0ZWQtaW5wdXQtbWl4aW4udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaHRtbCwgaXNTZXJ2ZXIsIHR5cGUgUHJvcGVydHlEZWNsYXJhdGlvbiwgdHlwZSBQcm9wZXJ0eVZhbHVlcyB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBldmVudE9wdGlvbnMsIHByb3BlcnR5IH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuXG5pbXBvcnQgeyBzYmJJbnB1dE1vZGFsaXR5RGV0ZWN0b3IgfSBmcm9tICcuLi9hMTF5L2lucHV0LW1vZGFsaXR5LWRldGVjdG9yLnRzJztcbmltcG9ydCB0eXBlIHsgU2JiRWxlbWVudCwgU2JiRWxlbWVudENvbnN0cnVjdG9yIH0gZnJvbSAnLi4vYmFzZS1lbGVtZW50cy9lbGVtZW50LnRzJztcbmltcG9ydCB7IFNiYkxhbmd1YWdlQ29udHJvbGxlciB9IGZyb20gJy4uL2NvbnRyb2xsZXJzL2xhbmd1YWdlLWNvbnRyb2xsZXIudHMnO1xuaW1wb3J0IHsgU2JiTWVkaWFRdWVyeVBvaW50ZXJDb2Fyc2UgfSBmcm9tICcuLi9jb250cm9sbGVycy9tZWRpYS1tYXRjaGVycy1jb250cm9sbGVyLnRzJztcbmltcG9ydCB7IGlzQmxpbmssIGlzV2Via2l0IH0gZnJvbSAnLi4vZG9tL3BsYXRmb3JtLnRzJztcbmltcG9ydCB7IGkxOG5JbnB1dFJlcXVpcmVkIH0gZnJvbSAnLi4vaTE4bi9pMThuLnRzJztcblxuaW1wb3J0IHR5cGUgeyBBYnN0cmFjdENvbnN0cnVjdG9yIH0gZnJvbSAnLi9jb25zdHJ1Y3Rvci50cyc7XG5pbXBvcnQgeyBTYmJEaXNhYmxlZE1peGluIH0gZnJvbSAnLi9kaXNhYmxlZC1taXhpbi50cyc7XG5pbXBvcnQge1xuICB0eXBlIEZvcm1SZXN0b3JlUmVhc29uLFxuICB0eXBlIEZvcm1SZXN0b3JlU3RhdGUsXG4gIFNiYkZvcm1Bc3NvY2lhdGVkTWl4aW4sXG59IGZyb20gJy4vZm9ybS1hc3NvY2lhdGVkLW1peGluLnRzJztcbmltcG9ydCB7IFNiYlJlYWRvbmx5TWl4aW4gfSBmcm9tICcuL3JlYWRvbmx5LW1peGluLnRzJztcbmltcG9ydCB7IFNiYlJlcXVpcmVkTWl4aW4gfSBmcm9tICcuL3JlcXVpcmVkLW1peGluLnRzJztcblxuZXhwb3J0IGRlY2xhcmUgYWJzdHJhY3QgY2xhc3MgU2JiRm9ybUFzc29jaWF0ZWRJbnB1dE1peGluVHlwZSBleHRlbmRzIFNiYlJlcXVpcmVkTWl4aW4oXG4gIFNiYkZvcm1Bc3NvY2lhdGVkTWl4aW4oU2JiRWxlbWVudCksXG4pIHtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBmb3JtRmllbGRBc3NvY2lhdGVkID0gdHJ1ZTtcblxuICBwdWJsaWMgc2V0IHZhbHVlKHZhbHVlOiBzdHJpbmcpO1xuICBwdWJsaWMgZ2V0IHZhbHVlKCk6IHN0cmluZztcblxuICBwdWJsaWMgc2V0IGRpc2FibGVkKHZhbHVlOiBib29sZWFuKTtcbiAgcHVibGljIGdldCBkaXNhYmxlZCgpOiBib29sZWFuO1xuXG4gIHB1YmxpYyBzZXQgcmVhZE9ubHkodmFsdWU6IGJvb2xlYW4pO1xuICBwdWJsaWMgZ2V0IHJlYWRPbmx5KCk6IGJvb2xlYW47XG5cbiAgcHVibGljIHNldCBwbGFjZWhvbGRlcih2YWx1ZTogc3RyaW5nKTtcbiAgcHVibGljIGdldCBwbGFjZWhvbGRlcigpOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE1ha2VzIHRoZSBzZWxlY3Rpb24gZXF1YWwgdG8gdGhlIGN1cnJlbnQgb2JqZWN0LlxuICAgKlxuICAgKiBbTUROIFJlZmVyZW5jZV0oaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZG9jcy9XZWIvQVBJL0hUTUxJbnB1dEVsZW1lbnQvc2VsZWN0KVxuICAgKi9cbiAgcHVibGljIHNlbGVjdCgpOiB2b2lkO1xuXG4gIHB1YmxpYyBmb3JtUmVzZXRDYWxsYmFjaygpOiB2b2lkO1xuICBwdWJsaWMgZm9ybVN0YXRlUmVzdG9yZUNhbGxiYWNrKHN0YXRlOiBGb3JtUmVzdG9yZVN0YXRlIHwgbnVsbCwgcmVhc29uOiBGb3JtUmVzdG9yZVJlYXNvbik6IHZvaWQ7XG5cbiAgcHJvdGVjdGVkIHByZXBhcmVQYXN0ZWRUZXh0KHRleHQ6IHN0cmluZyk6IHN0cmluZztcbiAgcHJvdGVjdGVkIGxhbmd1YWdlOiBTYmJMYW5ndWFnZUNvbnRyb2xsZXI7XG59XG5cbmNvbnN0IGNoZWNrUGxhaW50ZXh0T25seVN1cHBvcnQgPSAoKTogYm9vbGVhbiA9PiB7XG4gIGlmIChpc1NlcnZlcikge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGNvbnN0IGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICBkaXYuc2V0QXR0cmlidXRlKCdjb250ZW50ZWRpdGFibGUnLCAnUExBSU5URVhULU9OTFknKTtcblxuICAvLyBJZiBwbGFpbnRleHQtb25seSBpcyBzdXBwb3J0ZWQsIHRoZSBhdHRyaWJ1dGUgdmFsdWUgaXNcbiAgLy8gcmV0dXJuZWQgYXMgbG93ZXItY2FzZSBmcm9tIHRoZSBwcm9wZXJ0eSBhY2Nlc3MuXG4gIHJldHVybiBkaXYuY29udGVudEVkaXRhYmxlID09PSAncGxhaW50ZXh0LW9ubHknO1xufTtcbmNvbnN0IHBsYWludGV4dE9ubHlTdXBwb3J0ZWQgPSBjaGVja1BsYWludGV4dE9ubHlTdXBwb3J0KCk7XG5cbi8qKlxuICogVGhlIFNiYkZvcm1Bc3NvY2lhdGVkSW5wdXRNaXhpbiBlbmFibGVzIG5hdGl2ZSBmb3JtIHN1cHBvcnQgZm9yIHRleHQgaW5wdXQgY29udHJvbHMuXG4gKi9cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbmV4cG9ydCBjb25zdCBTYmJGb3JtQXNzb2NpYXRlZElucHV0TWl4aW4gPSA8XG4gIFQgZXh0ZW5kcyBBYnN0cmFjdENvbnN0cnVjdG9yPFNiYkVsZW1lbnQ+ICYgU2JiRWxlbWVudENvbnN0cnVjdG9yLFxuPihcbiAgc3VwZXJDbGFzczogVCxcbik6IEFic3RyYWN0Q29uc3RydWN0b3I8U2JiRm9ybUFzc29jaWF0ZWRJbnB1dE1peGluVHlwZT4gJiBUID0+IHtcbiAgYWJzdHJhY3QgY2xhc3MgU2JiRm9ybUFzc29jaWF0ZWRJbnB1dEVsZW1lbnRcbiAgICBleHRlbmRzIFNiYlJlYWRvbmx5TWl4aW4oU2JiRGlzYWJsZWRNaXhpbihTYmJSZXF1aXJlZE1peGluKFNiYkZvcm1Bc3NvY2lhdGVkTWl4aW4oc3VwZXJDbGFzcykpKSlcbiAgICBpbXBsZW1lbnRzIFBhcnRpYWw8U2JiRm9ybUFzc29jaWF0ZWRJbnB1dE1peGluVHlwZT5cbiAge1xuICAgIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgcmVhZG9ubHkgcm9sZSA9ICd0ZXh0Ym94JztcbiAgICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IGZvcm1GaWVsZEFzc29jaWF0ZWQgPSB0cnVlO1xuXG4gICAgLyoqXG4gICAgICogQW4gZWxlbWVudCB3aXRoIGNvbnRlbnRlZGl0YWJsZSB3aWxsIG5vdCBlbWl0IGEgY2hhbmdlIGV2ZW50LiBUbyBhY2hpZXZlIHBhcml0eVxuICAgICAqIHdpdGggYSBuYXRpdmUgdGV4dCBpbnB1dCwgd2UgbmVlZCB0byB0cmFjayB3aGV0aGVyIGEgY2hhbmdlIGV2ZW50IHNob3VsZCBiZVxuICAgICAqIGVtaXR0ZWQuXG4gICAgICovXG4gICAgcHJpdmF0ZSBfc2hvdWxkRW1pdENoYW5nZSA9IGZhbHNlO1xuICAgIC8qKlxuICAgICAqIEEgbmF0aXZlIHRleHQgaW5wdXQgYXR0ZW1wdHMgdG8gc3VibWl0IHRoZSBmb3JtIHdoZW4gcHJlc3NpbmcgRW50ZXIuXG4gICAgICogVGhpcyBjYW4gYmUgcHJldmVudGVkIGJ5IGNhbGxpbmcgcHJldmVudERlZmF1bHQgb24gdGhlIGtleWRvd24gZXZlbnQuXG4gICAgICogV2UgdHJhY2sgd2hldGhlciB0byByZXF1ZXN0IHN1Ym1pdCwgd2hpY2ggc2hvdWxkIG9jY3VyIGJlZm9yZSB0aGUga2V5dXBcbiAgICAgKiBldmVudC5cbiAgICAgKi9cbiAgICBwcml2YXRlIF9zaG91bGRUcmlnZ2VyU3VibWl0ID0gZmFsc2U7XG5cbiAgICBwcm90ZWN0ZWQgbGFuZ3VhZ2UgPSBuZXcgU2JiTGFuZ3VhZ2VDb250cm9sbGVyKHRoaXMpO1xuXG4gICAgLyoqXG4gICAgICogRm9ybSB0eXBlIG9mIGVsZW1lbnQuXG4gICAgICogQGRlZmF1bHQgJ3RleHQnXG4gICAgICovXG4gICAgcHVibGljIG92ZXJyaWRlIGdldCB0eXBlKCk6IHN0cmluZyB7XG4gICAgICByZXR1cm4gJ3RleHQnO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSB2YWx1ZSBvZiB0aGUgaW5wdXQuIFJlZmxlY3RzIHRoZSBjdXJyZW50IHRleHQgdmFsdWUgb2YgdGhpcyBpbnB1dC5cbiAgICAgKi9cbiAgICBAcHJvcGVydHkoKVxuICAgIHB1YmxpYyBzZXQgdmFsdWUodmFsdWU6IHN0cmluZykge1xuICAgICAgdGhpcy5fdmFsdWUgPSB0aGlzLl9jbGVhblRleHQodmFsdWUpO1xuICAgICAgaWYgKHRoaXMuaGFzVXBkYXRlZCkge1xuICAgICAgICB0aGlzLl9hc3NpZ25WYWx1ZSh0aGlzLl92YWx1ZSk7XG4gICAgICB9XG4gICAgICAvKiogQGludGVybmFsICovXG4gICAgICB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCdkaXNwbGF5dmFsdWVjaGFuZ2UnLCB7IGJ1YmJsZXM6IHRydWUsIGNvbXBvc2VkOiB0cnVlIH0pKTtcbiAgICB9XG4gICAgcHVibGljIGdldCB2YWx1ZSgpOiBzdHJpbmcge1xuICAgICAgcmV0dXJuIHRoaXMuX3ZhbHVlID8/ICcnO1xuICAgIH1cbiAgICBwcml2YXRlIF92YWx1ZTogc3RyaW5nID0gJyc7XG5cbiAgICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6IGZhbHNlIH0pXG4gICAgcHVibGljIHNldCBwbGFjZWhvbGRlcih2YWx1ZTogc3RyaW5nKSB7XG4gICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgdGhpcy5zZXRBdHRyaWJ1dGUoJ3BsYWNlaG9sZGVyJywgdmFsdWUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5yZW1vdmVBdHRyaWJ1dGUoJ3BsYWNlaG9sZGVyJyk7XG4gICAgICB9XG4gICAgICB0aGlzLmludGVybmFscy5hcmlhUGxhY2Vob2xkZXIgPSB2YWx1ZSA/IHZhbHVlIDogbnVsbDtcbiAgICB9XG4gICAgcHVibGljIGdldCBwbGFjZWhvbGRlcigpOiBzdHJpbmcge1xuICAgICAgcmV0dXJuIHRoaXMuZ2V0QXR0cmlidXRlKCdwbGFjZWhvbGRlcicpID8/ICcnO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBjb25zdHJ1Y3RvcigpIHtcbiAgICAgIHN1cGVyKCk7XG4gICAgICAvLyBXZSBwcmltYXJpbHkgdXNlIGNhcHR1cmUgZXZlbnQgbGlzdGVuZXJzLCBhcyB3ZSB3YW50XG4gICAgICAvLyBvdXIgbGlzdGVuZXJzIHRvIG9jY3VyIGJlZm9yZSBjb25zdW1lciBldmVudCBsaXN0ZW5lcnMuXG4gICAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/LihcbiAgICAgICAgJ2lucHV0JyxcbiAgICAgICAgKCkgPT4ge1xuICAgICAgICAgIGNvbnN0IG9sZFZhbHVlID0gdGhpcy5fdmFsdWU7XG4gICAgICAgICAgdGhpcy5fdmFsdWUgPSB0aGlzLl9jbGVhblRleHQodGhpcy50ZXh0Q29udGVudCA/PyAnJyk7XG4gICAgICAgICAgdGhpcy5yZXF1ZXN0VXBkYXRlKCd2YWx1ZScsIG9sZFZhbHVlKTtcbiAgICAgICAgICB0aGlzLmludGVybmFscy5zdGF0ZXMuYWRkKCdpbnRlcmFjdGVkJyk7XG4gICAgICAgICAgdGhpcy5fc2hvdWxkRW1pdENoYW5nZSA9IHRydWU7XG4gICAgICAgIH0sXG4gICAgICAgIHsgY2FwdHVyZTogdHJ1ZSB9LFxuICAgICAgKTtcbiAgICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcj8uKCdjaGFuZ2UnLCAoKSA9PiAodGhpcy5fc2hvdWxkRW1pdENoYW5nZSA9IGZhbHNlKSwgeyBjYXB0dXJlOiB0cnVlIH0pO1xuICAgICAgdGhpcy5hZGRFdmVudExpc3RlbmVyPy4oXG4gICAgICAgICdrZXlkb3duJyxcbiAgICAgICAgKGV2ZW50KSA9PiB7XG4gICAgICAgICAgaWYgKHRoaXMuX3JlcXVpcmVzRW1wdHlQYXRjaCgpKSB7XG4gICAgICAgICAgICB0aGlzLl9hc3NpZ25WYWx1ZSgnJyk7XG4gICAgICAgICAgfVxuICAgICAgICAgIC8vIFdlIHByZXZlbnQgcmVjdXJzaXZlIGV2ZW50cyBieSBjaGVja2luZyB0aGUgb3JpZ2luYWwgZXZlbnQgZm9yIGlzVHJ1c3RlZFxuICAgICAgICAgIC8vIHdoaWNoIGlzIGZhbHNlIGZvciBtYW51YWxseSBkaXNwYXRjaGVkIGV2ZW50cyAod2hpY2ggd2UgZGlzcGF0Y2ggYmVsb3cpLlxuICAgICAgICAgIGlmICgoZXZlbnQua2V5ID09PSAnRW50ZXInIHx8IGV2ZW50LmtleSA9PT0gJ1xcbicpICYmIGV2ZW50LmlzVHJ1c3RlZCkge1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgdGhpcy5fc2hvdWxkVHJpZ2dlclN1Ym1pdCA9IHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgS2V5Ym9hcmRFdmVudCgna2V5ZG93bicsIGV2ZW50KSk7XG4gICAgICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgICAgIGlzV2Via2l0ICYmXG4gICAgICAgICAgICB0aGlzLnZhbHVlICYmXG4gICAgICAgICAgICAoZXZlbnQua2V5ID09PSAnQmFja3NwYWNlJyB8fCBldmVudC5rZXkgPT09ICdEZWxldGUnKSAmJlxuICAgICAgICAgICAgZXZlbnQuaXNUcnVzdGVkXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICAvLyBJbiBXZWJraXQgcHJlc3NpbmcgQmFja3NwYWNlIG9yIERlbGV0ZSBjb21wbGV0ZWx5IHJlbW92ZXMgYWxsIHRoZSBjb250ZW50XG4gICAgICAgICAgICAvLyBpZiBjb250ZW50ZWRpdGFibGUgaXMgc2V0IG9uIGEgd2ViIGNvbXBvbmVudCBob3N0LlxuICAgICAgICAgICAgLy8gV2UgaGF2ZSB0byByZXBsaWNhdGUgdGhlIG5vcm1hbCBkZWxldGUgYmVoYXZpb3IuXG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgZXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7XG5cbiAgICAgICAgICAgIGlmICghdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBLZXlib2FyZEV2ZW50KCdrZXlkb3duJywgZXZlbnQpKSkge1xuICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkUmFuZ2UgPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk/LmdldFJhbmdlQXQoMCk7XG4gICAgICAgICAgICBpZiAoIXNlbGVjdGVkUmFuZ2UpIHtcbiAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoc2VsZWN0ZWRSYW5nZS5zdGFydE9mZnNldCAhPT0gc2VsZWN0ZWRSYW5nZS5lbmRPZmZzZXQpIHtcbiAgICAgICAgICAgICAgLy8gSWYgYSB0ZXh0IHJhbmdlIGlzIHNlbGVjdGVkLCB0aGVuIGRlbGV0ZSB0aGlzIHJhbmdlXG4gICAgICAgICAgICAgIHNlbGVjdGVkUmFuZ2UuZGVsZXRlQ29udGVudHMoKTtcbiAgICAgICAgICAgICAgdGhpcy5fZGlzcGF0Y2hJbnB1dEV2ZW50KCk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGV2ZW50LmtleSA9PT0gJ0JhY2tzcGFjZScgJiYgc2VsZWN0ZWRSYW5nZS5zdGFydE9mZnNldCA+IDApIHtcbiAgICAgICAgICAgICAgLy8gV2hlbiBwcmVzc2luZyBCYWNrc3BhY2UsIHdlIHNlbGVjdCB0aGUgcHJldmlvdXMgY2hhcmFjdGVyIGZyb21cbiAgICAgICAgICAgICAgLy8gdGhlIGN1cnJlbnQgY3Vyc29yIHBvc2l0aW9uIGFuZCBkZWxldGUgaXQuXG4gICAgICAgICAgICAgIHNlbGVjdGVkUmFuZ2Uuc2V0U3RhcnQoc2VsZWN0ZWRSYW5nZS5zdGFydENvbnRhaW5lciwgc2VsZWN0ZWRSYW5nZS5zdGFydE9mZnNldCAtIDEpO1xuICAgICAgICAgICAgICBzZWxlY3RlZFJhbmdlLmRlbGV0ZUNvbnRlbnRzKCk7XG4gICAgICAgICAgICAgIHRoaXMuX2Rpc3BhdGNoSW5wdXRFdmVudCgpO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChldmVudC5rZXkgPT09ICdEZWxldGUnICYmIHNlbGVjdGVkUmFuZ2UuZW5kT2Zmc2V0IDwgdGhpcy52YWx1ZS5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgLy8gV2hlbiBwcmVzc2luZyBEZWxldGUsIHdlIHNlbGVjdCB0aGUgbmV4dCBjaGFyYWN0ZXIgZnJvbVxuICAgICAgICAgICAgICAvLyB0aGUgY3VycmVudCBjdXJzb3IgcG9zaXRpb24gYW5kIGRlbGV0ZSBpdC5cbiAgICAgICAgICAgICAgc2VsZWN0ZWRSYW5nZS5zZXRFbmQoc2VsZWN0ZWRSYW5nZS5lbmRDb250YWluZXIsIHNlbGVjdGVkUmFuZ2UuZW5kT2Zmc2V0ICsgMSk7XG4gICAgICAgICAgICAgIHNlbGVjdGVkUmFuZ2UuZGVsZXRlQ29udGVudHMoKTtcbiAgICAgICAgICAgICAgdGhpcy5fZGlzcGF0Y2hJbnB1dEV2ZW50KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICB7IGNhcHR1cmU6IHRydWUgfSxcbiAgICAgICk7XG4gICAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/LihcbiAgICAgICAgJ2tleXVwJyxcbiAgICAgICAgKGV2ZW50KSA9PiB7XG4gICAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gJ0VudGVyJyB8fCBldmVudC5rZXkgPT09ICdcXG4nKSB7XG4gICAgICAgICAgICB0aGlzLl9lbWl0Q2hhbmdlSWZOZWNlc3NhcnkoKTtcbiAgICAgICAgICAgIGlmICh0aGlzLl9zaG91bGRUcmlnZ2VyU3VibWl0KSB7XG4gICAgICAgICAgICAgIHRoaXMuX3Nob3VsZFRyaWdnZXJTdWJtaXQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgdGhpcy5mb3JtPy5yZXF1ZXN0U3VibWl0KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIGlmICh0aGlzLl9yZXF1aXJlc0VtcHR5UGF0Y2goKSkge1xuICAgICAgICAgICAgdGhpcy5fc2V0Q3Vyc29yQXQoMCk7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICB7IGNhcHR1cmU6IHRydWUgfSxcbiAgICAgICk7XG4gICAgICAvLyBjb250ZW50ZWRpdGFibGUgYWxsb3dzIHBhc3RpbmcgcmljaCBjb250ZW50IGludG8gaXRzIGhvc3QuXG4gICAgICAvLyBXZSBwcmV2ZW50IHRoaXMgYnkgbGlzdGVuaW5nIHRvIHRoZSBwYXN0ZSBldmVudCBhbmRcbiAgICAgIC8vIGV4dHJhY3RpbmcgdGhlIHBsYWluIHRleHQgZnJvbSB0aGUgcGFzdGVkIGNvbnRlbnRcbiAgICAgIC8vIGFuZCBpbnNlcnRpbmcgaXQgaW50byB0aGUgc2VsZWN0ZWQgcmFuZ2UgKGN1cnNvciBwb3NpdGlvblxuICAgICAgLy8gb3Igc2VsZWN0aW9uKS5cbiAgICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcj8uKCdwYXN0ZScsIChlKSA9PiB7XG4gICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgaWYgKHRoaXMuX3JlcXVpcmVzRW1wdHlQYXRjaCgpKSB7XG4gICAgICAgICAgdGhpcy5fYXNzaWduVmFsdWUoJycpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgdGV4dCA9IHRoaXMuX2NsZWFuVGV4dChlLmNsaXBib2FyZERhdGE/LmdldERhdGEoJ3RleHQvcGxhaW4nKSA/PyAnJyk7XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkUmFuZ2UgPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk/LmdldFJhbmdlQXQoMCk7XG4gICAgICAgIGlmICghc2VsZWN0ZWRSYW5nZSB8fCAhdGV4dCkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHNlbGVjdGVkUmFuZ2UuZGVsZXRlQ29udGVudHMoKTtcbiAgICAgICAgc2VsZWN0ZWRSYW5nZS5pbnNlcnROb2RlKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHRoaXMucHJlcGFyZVBhc3RlZFRleHQodGV4dCkpKTtcbiAgICAgICAgc2VsZWN0ZWRSYW5nZS5zZXRTdGFydChzZWxlY3RlZFJhbmdlLmVuZENvbnRhaW5lciwgc2VsZWN0ZWRSYW5nZS5lbmRPZmZzZXQpO1xuICAgICAgICB0aGlzLl9kaXNwYXRjaElucHV0RXZlbnQoKTtcbiAgICAgIH0pO1xuICAgICAgLy8gV2hlbiBmb2N1c2luZyBhIHRleHQgaW5wdXQgdmlhIGtleWJvYXJkLCB0aGUgdGV4dCBjb250ZW50IHNob3VsZCBiZSBzZWxlY3RlZC5cbiAgICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcj8uKCdmb2N1cycsICgpID0+IHtcbiAgICAgICAgaWYgKHNiYklucHV0TW9kYWxpdHlEZXRlY3Rvci5tb3N0UmVjZW50TW9kYWxpdHkgPT09ICdrZXlib2FyZCcpIHtcbiAgICAgICAgICAvLyBUT0RPOiBUaGlzIGRvZXMgbm90IHNlZW0gdG8gd29yayBpbiBGaXJlZm94IHdpdGggcmVhZG9ubHkuXG4gICAgICAgICAgd2luZG93LmdldFNlbGVjdGlvbigpPy5zZWxlY3RBbGxDaGlsZHJlbih0aGlzKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/LigndG91Y2hlbmQnLCAoKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLl9yZXF1aXJlc0VtcHR5UGF0Y2goKSkge1xuICAgICAgICAgIHRoaXMuX2Fzc2lnblZhbHVlKCcmbmJzcDsnKTtcbiAgICAgICAgICB0aGlzLl9zZXRDdXJzb3JBdCgwKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/LignY2xpY2snLCAoKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLl9yZXF1aXJlc0VtcHR5UGF0Y2goKSAmJiBzYmJJbnB1dE1vZGFsaXR5RGV0ZWN0b3IubW9zdFJlY2VudE1vZGFsaXR5ID09PSAndG91Y2gnKSB7XG4gICAgICAgICAgdGhpcy5fc2V0Q3Vyc29yQXQoMCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgICAvLyBPbiBibHVyIHRoZSBuYXRpdmUgdGV4dCBpbnB1dCBzY3JvbGxzIHRoZSB0ZXh0IHRvIHRoZSBzdGFydCBvZiB0aGUgdGV4dC5cbiAgICAgIC8vIFdlIG1pbWljIHRoYXQgYnkgcmVzZXR0aW5nIHRoZSBzY3JvbGwgcG9zaXRpb24uXG4gICAgICAvLyBXZSBhbHNvIHVuc2V0IGFueSBzZWxlY3Rpb24gdG8gYWxpZ24gd2l0aCB0aGUgbmF0aXZlIHRleHQgaW5wdXQuXG4gICAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/LihcbiAgICAgICAgJ2JsdXInLFxuICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgd2luZG93LmdldFNlbGVjdGlvbigpPy5yZW1vdmVBbGxSYW5nZXMoKTtcbiAgICAgICAgICBpZiAodGhpcy52YWx1ZSA9PT0gJycpIHtcbiAgICAgICAgICAgIHRoaXMuX2Fzc2lnblZhbHVlKCcnKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5fZW1pdENoYW5nZUlmTmVjZXNzYXJ5KCk7XG4gICAgICAgICAgdGhpcy5zY3JvbGxMZWZ0ID0gMDtcbiAgICAgICAgfSxcbiAgICAgICAgeyBjYXB0dXJlOiB0cnVlIH0sXG4gICAgICApO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBvdmVycmlkZSBpc0Rpc2FibGVkRXh0ZXJuYWxseSgpOiBib29sZWFuIHtcbiAgICAgIHJldHVybiB0aGlzLmZvcm1EaXNhYmxlZDtcbiAgICB9XG5cbiAgICBwdWJsaWMgb3ZlcnJpZGUgY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgICBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpO1xuICAgICAgdGhpcy5pbnRlcm5hbHMuYXJpYU11bHRpTGluZSA9ICdmYWxzZSc7XG4gICAgICB0aGlzLl91cGRhdGVDb250ZW50ZWRpdGFibGUoKTtcblxuICAgICAgLy8gV2Ugd2FudCB0byByZXBsYWNlIGFueSBjb250ZW50IGJ5IGp1c3QgdGhlIHRleHQgY29udGVudC5cbiAgICAgIHRoaXMuX2Fzc2lnblZhbHVlKHRoaXMudmFsdWUpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvdmVycmlkZSBmb2N1cyhvcHRpb25zPzogRm9jdXNPcHRpb25zKTogdm9pZCB7XG4gICAgICBzdXBlci5mb2N1cyhvcHRpb25zKTtcbiAgICAgIC8vIEJ5IGRlZmF1bHQsIHdoZW4gY2FsbGluZyBmb2N1cyBvbiBhbiBpbnB1dCBlbGVtZW50LCB0aGUgY3Vyc29yIGlzIHBsYWNlZFxuICAgICAgLy8gYXQgdGhlIGVuZCBvZiB0aGUgaW5wdXQgdGV4dC4gSG93ZXZlciwgd2l0aCBjb250ZW50ZWRpdGFibGUsIHRoZSBjdXJzb3JcbiAgICAgIC8vIGlzIHBsYWNlZCBhdCB0aGUgYmVnaW5uaW5nLCBzbyB3ZSBtb3ZlIGl0IHRvIHRoZSBlbmQsIGlmIHRoYXQgaXMgdGhlIGNhc2UuXG4gICAgICBpZiAodGhpcy5fY2FuU2VsZWN0KCkpIHtcbiAgICAgICAgY29uc3Qgc2VsZWN0aW9uID0gd2luZG93LmdldFNlbGVjdGlvbigpO1xuICAgICAgICBpZiAoIXNlbGVjdGlvbikge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCByYW5nZSA9IHNlbGVjdGlvbi5yYW5nZUNvdW50ID4gMCA/IHNlbGVjdGlvbi5nZXRSYW5nZUF0KDApIDogbnVsbDtcbiAgICAgICAgaWYgKHJhbmdlICYmIHJhbmdlLnN0YXJ0T2Zmc2V0ICE9PSAwKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fc2V0Q3Vyc29yQXQodGhpcy50ZXh0Q29udGVudCEubGVuZ3RoKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgb3ZlcnJpZGUgYXR0cmlidXRlQ2hhbmdlZENhbGxiYWNrKFxuICAgICAgbmFtZTogc3RyaW5nLFxuICAgICAgb2xkOiBzdHJpbmcgfCBudWxsLFxuICAgICAgdmFsdWU6IHN0cmluZyB8IG51bGwsXG4gICAgKTogdm9pZCB7XG4gICAgICAvKipcbiAgICAgICAqIFRoZSBuYXRpdmUgdGV4dCBpbnB1dCBjaGFuZ2VzIHRoZSB2YWx1ZSBwcm9wZXJ0eSB3aGVuIHRoZSB2YWx1ZSBhdHRyaWJ1dGUgaXNcbiAgICAgICAqIGNoYW5nZWQgdW5kZXIgdGhlIGNvbmRpdGlvbiB0aGF0IG5vIGlucHV0IGV2ZW50IGhhcyBvY2N1cnJlZCBzaW5jZSBjcmVhdGlvblxuICAgICAgICogb3IgdGhlIGxhc3QgZm9ybSByZXNldC5cbiAgICAgICAqL1xuICAgICAgaWYgKG5hbWUgIT09ICd2YWx1ZScgfHwgIXRoaXMubWF0Y2hlcz8uKCc6c3RhdGUoaW50ZXJhY3RlZCknKSkge1xuICAgICAgICBzdXBlci5hdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2sobmFtZSwgb2xkLCB2YWx1ZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSXMgY2FsbGVkIHdoZW5ldmVyIHRoZSBmb3JtIGlzIGJlaW5nIHJlc2V0LlxuICAgICAqXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgcHVibGljIG92ZXJyaWRlIGZvcm1SZXNldENhbGxiYWNrKCk6IHZvaWQge1xuICAgICAgdGhpcy5pbnRlcm5hbHMuc3RhdGVzLmRlbGV0ZSgnaW50ZXJhY3RlZCcpO1xuICAgICAgdGhpcy52YWx1ZSA9IHRoaXMuZ2V0QXR0cmlidXRlKCd2YWx1ZScpID8/ICcnO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqICBDYWxsZWQgd2hlbiB0aGUgYnJvd3NlciBpcyB0cnlpbmcgdG8gcmVzdG9yZSBlbGVtZW504oCZcyBzdGF0ZSB0byBzdGF0ZSBpbiB3aGljaCBjYXNlXG4gICAgICogIHJlYXNvbiBpcyBcInJlc3RvcmVcIiwgb3Igd2hlbiB0aGUgYnJvd3NlciBpcyB0cnlpbmcgdG8gZnVsZmlsbCBhdXRvZmlsbCBvbiBiZWhhbGYgb2ZcbiAgICAgKiAgdXNlciBpbiB3aGljaCBjYXNlIHJlYXNvbiBpcyBcImF1dG9jb21wbGV0ZVwiLlxuICAgICAqICBJbiB0aGUgY2FzZSBvZiBcInJlc3RvcmVcIiwgc3RhdGUgaXMgYSBzdHJpbmcsIEZpbGUsIG9yIEZvcm1EYXRhIG9iamVjdFxuICAgICAqICBwcmV2aW91c2x5IHNldCBhcyB0aGUgc2Vjb25kIGFyZ3VtZW50IHRvIHNldEZvcm1WYWx1ZS5cbiAgICAgKlxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHB1YmxpYyBvdmVycmlkZSBmb3JtU3RhdGVSZXN0b3JlQ2FsbGJhY2soXG4gICAgICBzdGF0ZTogRm9ybVJlc3RvcmVTdGF0ZSB8IG51bGwsXG4gICAgICBfcmVhc29uOiBGb3JtUmVzdG9yZVJlYXNvbixcbiAgICApOiB2b2lkIHtcbiAgICAgIGlmIChzdGF0ZSAmJiB0eXBlb2Ygc3RhdGUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHRoaXMudmFsdWUgPSBzdGF0ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBNYWtlcyB0aGUgc2VsZWN0aW9uIGVxdWFsIHRvIHRoZSBjdXJyZW50IG9iamVjdC5cbiAgICAgKlxuICAgICAqIEBsaW5rIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2RvY3MvV2ViL0FQSS9IVE1MSW5wdXRFbGVtZW50L3NlbGVjdFxuICAgICAqL1xuICAgIHB1YmxpYyBzZWxlY3QoKTogdm9pZCB7XG4gICAgICB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk/LnNlbGVjdEFsbENoaWxkcmVuKHRoaXMpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBvdmVycmlkZSBmaXJzdFVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXM6IFByb3BlcnR5VmFsdWVzPHRoaXM+KTogdm9pZCB7XG4gICAgICBzdXBlci5maXJzdFVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXMpO1xuXG4gICAgICAvLyBJZiB0aGUgdmFsdWUgd2FzIGFzc2lnbmVkIGJlZm9yZSBmaXJzdFVwZGF0ZSwgd2UgaGF2ZSB0b1xuICAgICAgLy8gd3JpdGUgaXQgdGhlIGRvY3VtZW50IHRvIGJlIHZpc3VhbGx5IHNlZW5cbiAgICAgIGlmICh0aGlzLnZhbHVlICYmICF0aGlzLmlubmVySFRNTC5sZW5ndGgpIHtcbiAgICAgICAgdGhpcy5fYXNzaWduVmFsdWUodGhpcy52YWx1ZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIG92ZXJyaWRlIHJlcXVlc3RVcGRhdGUoXG4gICAgICBuYW1lPzogUHJvcGVydHlLZXksXG4gICAgICBvbGRWYWx1ZT86IHVua25vd24sXG4gICAgICBvcHRpb25zPzogUHJvcGVydHlEZWNsYXJhdGlvbixcbiAgICApOiB2b2lkIHtcbiAgICAgIHN1cGVyLnJlcXVlc3RVcGRhdGUobmFtZSwgb2xkVmFsdWUsIG9wdGlvbnMpO1xuICAgICAgaWYgKFxuICAgICAgICB0aGlzLmlzQ29ubmVjdGVkICYmXG4gICAgICAgIChuYW1lID09PSAnZGlzYWJsZWQnIHx8IG5hbWUgPT09ICdmb3JtRGlzYWJsZWQnIHx8IG5hbWUgPT09ICdyZWFkT25seScpXG4gICAgICApIHtcbiAgICAgICAgdGhpcy5fdXBkYXRlQ29udGVudGVkaXRhYmxlKCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIHNob3VsZFZhbGlkYXRlKG5hbWU6IFByb3BlcnR5S2V5IHwgdW5kZWZpbmVkKTogYm9vbGVhbiB7XG4gICAgICByZXR1cm4gc3VwZXIuc2hvdWxkVmFsaWRhdGUobmFtZSkgfHwgbmFtZSA9PT0gJ3ZhbHVlJyB8fCBuYW1lID09PSAncmVxdWlyZWQnO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBvdmVycmlkZSB2YWxpZGF0ZSgpOiB2b2lkIHtcbiAgICAgIHN1cGVyLnZhbGlkYXRlKCk7XG4gICAgICBpZiAodGhpcy5yZXF1aXJlZCAmJiAhdGhpcy52YWx1ZSkge1xuICAgICAgICB0aGlzLnNldFZhbGlkaXR5RmxhZygndmFsdWVNaXNzaW5nJywgaTE4bklucHV0UmVxdWlyZWRbdGhpcy5sYW5ndWFnZS5jdXJyZW50XSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnJlbW92ZVZhbGlkaXR5RmxhZygndmFsdWVNaXNzaW5nJyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHByZXBhcmVQYXN0ZWRUZXh0KHRleHQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICByZXR1cm4gdGV4dDtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9yZXF1aXJlc0VtcHR5UGF0Y2goKTogYm9vbGVhbiB7XG4gICAgICAvLyBJbiBCbGluaywgYSBjb250ZW50ZWRpdGFibGUgZWxlbWVudCB3aXRoIGVtcHR5IGNvbnRlbnQgd2lsbCBjcmFzaFxuICAgICAgLy8gdXBvbiByZWNlaXZpbmcgZm9jdXMsIHdoZW4gaW4gTW9iaWxlIG1vZGUuXG4gICAgICAvLyBUbyBwcmV2ZW50IHRoaXMsIHdlIHBhdGNoIHRoZSBlbXB0eSBzdGF0ZSBieSBpbnNlcnRpbmcgYSBub24tYnJlYWtpbmcgc3BhY2UuXG4gICAgICByZXR1cm4gaXNTZXJ2ZXJcbiAgICAgICAgPyBmYWxzZVxuICAgICAgICA6IGlzQmxpbmsgJiYgdGhpcy52YWx1ZSA9PT0gJycgJiYgd2luZG93Lm1hdGNoTWVkaWEoU2JiTWVkaWFRdWVyeVBvaW50ZXJDb2Fyc2UpLm1hdGNoZXM7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfYXNzaWduVmFsdWUodmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgdGhpcy5pbm5lckhUTUwgPSB2YWx1ZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9zZXRDdXJzb3JBdChwb3NpdGlvbjogbnVtYmVyKTogdm9pZCB7XG4gICAgICBjb25zdCBzZWxlY3Rpb24gPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk7XG4gICAgICBpZiAoIXNlbGVjdGlvbikge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHJhbmdlID0gZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKTtcbiAgICAgIHJhbmdlLnNldFN0YXJ0KHRoaXMuZmlyc3RDaGlsZCEsIHBvc2l0aW9uKTtcbiAgICAgIHJhbmdlLmNvbGxhcHNlKHRydWUpO1xuICAgICAgc2VsZWN0aW9uLnJlbW92ZUFsbFJhbmdlcygpO1xuICAgICAgc2VsZWN0aW9uLmFkZFJhbmdlKHJhbmdlKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9jbGVhblRleHQodmFsdWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAvLyBUaGUgbmF0aXZlIHRleHQgaW5wdXQgcmVtb3ZlcyBhbGwgbmV3bGluZSBjaGFyYWN0ZXJzIGlmIHBhc3NlZCB0byB0aGUgdmFsdWUgcHJvcGVydHlcbiAgICAgIHJldHVybiB2YWx1ZSA9PT0gbnVsbCA/ICcnIDogYCR7dmFsdWV9YC5yZXBsYWNlKC9bXFxuXFxyXSsvZywgJycpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2Rpc3BhdGNoSW5wdXRFdmVudCgpOiB2b2lkIHtcbiAgICAgIC8qKiBUaGUgaW5wdXQgZXZlbnQgZmlyZXMgd2hlbiB0aGUgdmFsdWUgaGFzIGJlZW4gY2hhbmdlZCBhcyBhIGRpcmVjdCByZXN1bHQgb2YgYSB1c2VyIGFjdGlvbi4gKi9cbiAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgSW5wdXRFdmVudCgnaW5wdXQnLCB7IGJ1YmJsZXM6IHRydWUsIGNvbXBvc2VkOiB0cnVlIH0pKTtcbiAgICB9XG5cbiAgICBAZXZlbnRPcHRpb25zKHsgcGFzc2l2ZTogdHJ1ZSB9KVxuICAgIHByaXZhdGUgX2NsZWFuQ2hpbGRyZW4oKTogdm9pZCB7XG4gICAgICBpZiAodGhpcy5jaGlsZEVsZW1lbnRDb3VudCkge1xuICAgICAgICBmb3IgKGNvbnN0IGVsZW1lbnQgb2YgdGhpcy5jaGlsZHJlbikge1xuICAgICAgICAgIGVsZW1lbnQucmVtb3ZlKCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIF91cGRhdGVDb250ZW50ZWRpdGFibGUoKTogdm9pZCB7XG4gICAgICBpZiAoIWlzU2VydmVyICYmIHRoaXMuaXNDb25uZWN0ZWQpIHtcbiAgICAgICAgdGhpcy5pbnRlcm5hbHMuYXJpYVJlYWRPbmx5ID0gdGhpcy5yZWFkT25seSA/ICd0cnVlJyA6IG51bGw7XG4gICAgICAgIHRoaXMuaW50ZXJuYWxzLmFyaWFEaXNhYmxlZCA9IHRoaXMuZGlzYWJsZWQgPyAndHJ1ZScgOiBudWxsO1xuICAgICAgICAvLyBUT0RPKDIwMjYpOiBGaXJlZm94IHN1cHBvcnRzIHBsYWludGV4dC1vbmx5IHNpbmNlIHZlcnNpb24gMTM2IChNYXJjaCAyMDI1KS5cbiAgICAgICAgLy8gVW50aWwgdGhpcyBpcyBwYXJ0IG9mIG91ciBiYXNlbGluZSwgd2Ugc2hvdWxkIGZlYXR1cmUgY2hlY2sgdG8gZW5hYmxlIGl0LlxuICAgICAgICBjb25zdCB2YWx1ZSA9XG4gICAgICAgICAgdGhpcy5kaXNhYmxlZCB8fCB0aGlzLnJlYWRPbmx5XG4gICAgICAgICAgICA/ICdmYWxzZSdcbiAgICAgICAgICAgIDogcGxhaW50ZXh0T25seVN1cHBvcnRlZFxuICAgICAgICAgICAgICA/ICdwbGFpbnRleHQtb25seSdcbiAgICAgICAgICAgICAgOiAndHJ1ZSc7XG4gICAgICAgIHRoaXMuc2V0QXR0cmlidXRlKCdjb250ZW50ZWRpdGFibGUnLCB2YWx1ZSk7XG4gICAgICAgIC8vIEluIHRoZSByZWFkb25seSBjYXNlLCB3ZSBkaXNhYmxlIGNvbnRlbnRlZGl0YWJsZSwgYnV0IGl0IHN0aWxsXG4gICAgICAgIC8vIG5lZWRzIHRvIGJlIGZvY3VzYWJsZS4gV2UgYWNoaWV2ZSB0aGlzIGJ5IHNldHRpbmcgdGFiaW5kZXggaW4gdGhhdCBjYXNlLlxuICAgICAgICBpZiAodGhpcy5yZWFkT25seSkge1xuICAgICAgICAgIHRoaXMuc2V0QXR0cmlidXRlKCd0YWJpbmRleCcsICcwJyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5yZW1vdmVBdHRyaWJ1dGUoJ3RhYmluZGV4Jyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIF9lbWl0Q2hhbmdlSWZOZWNlc3NhcnkoKTogdm9pZCB7XG4gICAgICBpZiAodGhpcy5fc2hvdWxkRW1pdENoYW5nZSkge1xuICAgICAgICB0aGlzLl9zaG91bGRFbWl0Q2hhbmdlID0gZmFsc2U7XG4gICAgICAgIC8qKiBUaGUgY2hhbmdlIGV2ZW50IGlzIGZpcmVkIHdoZW4gdGhlIHVzZXIgbW9kaWZpZXMgdGhlIGVsZW1lbnQncyB2YWx1ZS4gVW5saWtlIHRoZSBpbnB1dCBldmVudCwgdGhlIGNoYW5nZSBldmVudCBpcyBub3QgbmVjZXNzYXJpbHkgZmlyZWQgZm9yIGVhY2ggYWx0ZXJhdGlvbiB0byBhbiBlbGVtZW50J3MgdmFsdWUuICovXG4gICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ2NoYW5nZScsIHsgYnViYmxlczogdHJ1ZSB9KSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfY2FuU2VsZWN0KCk6IGJvb2xlYW4ge1xuICAgICAgcmV0dXJuICFpc1NlcnZlciAmJiAhdGhpcy5kaXNhYmxlZCAmJiAhdGhpcy5yZWFkT25seSAmJiAhIXRoaXMudmFsdWU7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlbmRlcigpOiB1bmtub3duIHtcbiAgICAgIHJldHVybiBodG1sYDxzbG90IEBzbG90Y2hhbmdlPSR7dGhpcy5fY2xlYW5DaGlsZHJlbn0+PC9zbG90PmA7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIFNiYkZvcm1Bc3NvY2lhdGVkSW5wdXRFbGVtZW50IGFzIHVua25vd24gYXMgQWJzdHJhY3RDb25zdHJ1Y3RvcjxTYmJGb3JtQXNzb2NpYXRlZElucHV0TWl4aW5UeXBlPiAmXG4gICAgVDtcbn07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFtREEsSUFBTSxrQ0FBMEM7Q0FDOUMsSUFBSSxVQUNGLE9BQU87Q0FHVCxNQUFNLE1BQU0sU0FBUyxjQUFjLE1BQU07Q0FDekMsSUFBSSxhQUFhLG1CQUFtQixpQkFBaUI7Q0FJckQsT0FBTyxJQUFJLG9CQUFvQjs7QUFFakMsSUFBTSx5QkFBeUIsMkJBQTJCOzs7O0FBTTFELElBQWEsK0JBR1gsZUFDNEQ7Q0ErWjVELGNBOVo0QztvQkFDbEMsaUJBQWlCLGlCQUFpQixpQkFBaUIsdUJBQXVCLFdBQVcsQ0FBQyxDQUFDLENBQUM7Ozs7O2VBRG5GLHNDQUNMLFlBQXdGOzs7NkJBaUMvRixVQUFVLENBQUE7bUNBY1YsU0FBUyxFQUFFLFdBQVcsT0FBTyxDQUFDLENBQUE7a0NBNlQ5QixhQUFhLEVBQUUsU0FBUyxNQUFNLENBQUMsQ0FBQTtJQTFVaEMsYUFBQSxNQUFBLE1BQUEsdUJBQUE7S0FBQSxNQUFBO0tBQUEsTUFBQTtLQUFBLFFBQUE7S0FBQSxTQUFBO0tBQUEsUUFBQTtNQUFBLE1BQUEsUUFBQSxXQUFBO01BQUEsTUFBQSxLQUFBLFVBQUE7T0FBQSxJQUFXLFFBQUs7O01BQUE7S0FBQSxVQUFBO0tBQUEsRUFBQSxNQUFBLDJCQUFBO0lBY2hCLGFBQUEsTUFBQSxNQUFBLDZCQUFBO0tBQUEsTUFBQTtLQUFBLE1BQUE7S0FBQSxRQUFBO0tBQUEsU0FBQTtLQUFBLFFBQUE7TUFBQSxNQUFBLFFBQUEsaUJBQUE7TUFBQSxNQUFBLEtBQUEsVUFBQTtPQUFBLElBQVcsY0FBVzs7TUFBQTtLQUFBLFVBQUE7S0FBQSxFQUFBLE1BQUEsMkJBQUE7SUE2VHRCLGFBQUEsTUFBQSxN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
@@ -291,4 +291,4 @@ var SbbFormAssociatedMixin = (superClass) => {
291
291
  //#endregion
292
292
  export { SbbFormAssociatedMixin };
293
293
 
294
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1hc3NvY2lhdGVkLW1peGluLmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb3JlL21peGlucy9mb3JtLWFzc29jaWF0ZWQtbWl4aW4udHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LW9iamVjdC10eXBlICovXG5pbXBvcnQgdHlwZSB7IFByb3BlcnR5RGVjbGFyYXRpb24sIFByb3BlcnR5VmFsdWVzIH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IHByb3BlcnR5LCBzdGF0ZSB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcblxuaW1wb3J0IHR5cGUgeyBTYmJFbGVtZW50IH0gZnJvbSAnLi4vYmFzZS1lbGVtZW50cy9lbGVtZW50LnRzJztcbmltcG9ydCB7IGlzV2Via2l0IH0gZnJvbSAnLi4vZG9tL3BsYXRmb3JtLnRzJztcblxuaW1wb3J0IHR5cGUgeyBBYnN0cmFjdENvbnN0cnVjdG9yIH0gZnJvbSAnLi9jb25zdHJ1Y3Rvci50cyc7XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgLyoqXG4gICAqIERlZmluZXMgY3VzdG9tIHZhbGlkaXR5IHN0YXRlIHByb3BlcnRpZXMuXG4gICAqL1xuICBpbnRlcmZhY2UgQ3VzdG9tVmFsaWRpdHlTdGF0ZSB7fVxuICBpbnRlcmZhY2UgVmFsaWRpdHlTdGF0ZSBleHRlbmRzIEN1c3RvbVZhbGlkaXR5U3RhdGUge31cbiAgaW50ZXJmYWNlIFZhbGlkaXR5U3RhdGVGbGFncyBleHRlbmRzIFBhcnRpYWw8Q3VzdG9tVmFsaWRpdHlTdGF0ZT4ge31cbn1cblxuY29uc3QgdmFsaWRpdHlLZXlzOiBSZXF1aXJlZDxPbWl0PFZhbGlkaXR5U3RhdGVGbGFncywga2V5b2YgQ3VzdG9tVmFsaWRpdHlTdGF0ZT4+ID0ge1xuICBiYWRJbnB1dDogZmFsc2UsXG4gIGN1c3RvbUVycm9yOiBmYWxzZSxcbiAgcGF0dGVybk1pc21hdGNoOiBmYWxzZSxcbiAgcmFuZ2VPdmVyZmxvdzogZmFsc2UsXG4gIHJhbmdlVW5kZXJmbG93OiBmYWxzZSxcbiAgc3RlcE1pc21hdGNoOiBmYWxzZSxcbiAgdG9vTG9uZzogZmFsc2UsXG4gIHRvb1Nob3J0OiBmYWxzZSxcbiAgdHlwZU1pc21hdGNoOiBmYWxzZSxcbiAgdmFsdWVNaXNzaW5nOiBmYWxzZSxcbn07XG4vLyBXZSBuZWVkIFZhbGlkaXR5U3RhdGUgaW4gdGhlIGdsb2JhbCBjb250ZXh0LCBhcyB3ZSBjaGVjayB0aGUgcHJvdG90eXBlIGZvclxuLy8gZXh0ZW5zaW9ucy4gSW4gZW52aXJvbm1lbnRzIHdoZXJlIHRoYXQgaXMgbm90IHRoZSBjYXNlIChlLmcuIE5vZGUuanMpIHdlXG4vLyBwYXRjaCBpdCB3aXRoIGEgbWluaW1hbCBzaGltLlxuaWYgKHR5cGVvZiBWYWxpZGl0eVN0YXRlID09PSAndW5kZWZpbmVkJykge1xuICBjb25zdCB2YWxpZGl0eUNsYXNzID0gY2xhc3MgVmFsaWRpdHlTdGF0ZSB7XG4gICAgcHVibGljIGdldCB2YWxpZCgpOiBib29sZWFuIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBwcml2YXRlIGNvbnN0cnVjdG9yKCkge1xuICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignSWxsZWdhbCBjb25zdHJ1Y3RvcicpO1xuICAgIH1cbiAgfTtcbiAgT2JqZWN0LmVudHJpZXModmFsaWRpdHlLZXlzKS5mb3JFYWNoKChba2V5LCB2YWx1ZV0pID0+XG4gICAgT2JqZWN0LmFzc2lnbih2YWxpZGl0eUNsYXNzLnByb3RvdHlwZSwge1xuICAgICAgZ2V0IFtrZXldKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICB9LFxuICAgIH0pLFxuICApO1xuICBnbG9iYWxUaGlzLlZhbGlkaXR5U3RhdGUgPSB2YWxpZGl0eUNsYXNzIGFzIHVua25vd24gYXMgdHlwZW9mIFZhbGlkaXR5U3RhdGU7XG59XG5cbmV4cG9ydCBkZWNsYXJlIGFic3RyYWN0IGNsYXNzIFNiYkZvcm1Bc3NvY2lhdGVkTWl4aW5UeXBlIHtcbiAgcHVibGljIGdldCBmb3JtKCk6IEhUTUxGb3JtRWxlbWVudCB8IG51bGw7XG4gIHB1YmxpYyBhY2Nlc3NvciBuYW1lOiBzdHJpbmc7XG4gIHB1YmxpYyBnZXQgdHlwZSgpOiBzdHJpbmc7XG5cbiAgcHVibGljIGFic3RyYWN0IGFjY2Vzc29yIHZhbHVlOiB1bmtub3duO1xuXG4gIHB1YmxpYyBnZXQgdmFsaWRpdHkoKTogVmFsaWRpdHlTdGF0ZTtcbiAgcHVibGljIGdldCB2YWxpZGF0aW9uTWVzc2FnZSgpOiBzdHJpbmc7XG4gIHB1YmxpYyBnZXQgd2lsbFZhbGlkYXRlKCk6IGJvb2xlYW47XG5cbiAgcHJvdGVjdGVkIGZvcm1EaXNhYmxlZDogYm9vbGVhbjtcblxuICBwdWJsaWMgY2hlY2tWYWxpZGl0eSgpOiBib29sZWFuO1xuICBwdWJsaWMgcmVwb3J0VmFsaWRpdHkoKTogYm9vbGVhbjtcbiAgcHVibGljIHNldEN1c3RvbVZhbGlkaXR5KG1lc3NhZ2U6IHN0cmluZyk6IHZvaWQ7XG5cbiAgcHVibGljIGZvcm1Bc3NvY2lhdGVkQ2FsbGJhY2s/KGZvcm06IEhUTUxGb3JtRWxlbWVudCB8IG51bGwpOiB2b2lkO1xuICBwdWJsaWMgZm9ybURpc2FibGVkQ2FsbGJhY2soZGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkO1xuICBwdWJsaWMgYWJzdHJhY3QgZm9ybVJlc2V0Q2FsbGJhY2soKTogdm9pZDtcbiAgcHVibGljIGFic3RyYWN0IGZvcm1TdGF0ZVJlc3RvcmVDYWxsYmFjayhcbiAgICBzdGF0ZTogRm9ybVJlc3RvcmVTdGF0ZSB8IG51bGwsXG4gICAgcmVhc29uOiBGb3JtUmVzdG9yZVJlYXNvbixcbiAgKTogdm9pZDtcblxuICBwcm90ZWN0ZWQgdXBkYXRlRm9ybVZhbHVlKCk6IHZvaWQ7XG4gIHByb3RlY3RlZCBmb3JtU3RhdGU/KCk6IEZvcm1SZXN0b3JlU3RhdGU7XG4gIHByb3RlY3RlZCBzZXRWYWxpZGl0eUZsYWc8VCBleHRlbmRzIGtleW9mIFZhbGlkaXR5U3RhdGVGbGFncz4oXG4gICAgZmxhZzogVCxcbiAgICBtZXNzYWdlOiBzdHJpbmcsXG4gICAgZmxhZ1ZhbHVlPzogVmFsaWRpdHlTdGF0ZUZsYWdzW1RdLFxuICApOiB2b2lkO1xuICBwcm90ZWN0ZWQgcmVtb3ZlVmFsaWRpdHlGbGFnPFQgZXh0ZW5kcyBrZXlvZiBWYWxpZGl0eVN0YXRlRmxhZ3M+KGZsYWc6IFQpOiB2b2lkO1xuICBwcm90ZWN0ZWQgdmFsaWRhdGUoKTogdm9pZDtcbiAgcHJvdGVjdGVkIHNob3VsZFZhbGlkYXRlKG5hbWU6IFByb3BlcnR5S2V5IHwgdW5kZWZpbmVkKTogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBUaGUgRm9ybUFzc29jaWF0ZWRNaXhpbiBlbmFibGVzIG5hdGl2ZSBmb3JtIHN1cHBvcnQgZm9yIGN1c3RvbSBjb250cm9scy5cbiAqL1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuZXhwb3J0IGNvbnN0IFNiYkZvcm1Bc3NvY2lhdGVkTWl4aW4gPSA8VCBleHRlbmRzIEFic3RyYWN0Q29uc3RydWN0b3I8U2JiRWxlbWVudD4+KFxuICBzdXBlckNsYXNzOiBULFxuKTogQWJzdHJhY3RDb25zdHJ1Y3RvcjxTYmJGb3JtQXNzb2NpYXRlZE1peGluVHlwZT4gJiBUID0+IHtcbiAgYWJzdHJhY3QgY2xhc3MgU2JiRm9ybUFzc29jaWF0ZWRFbGVtZW50XG4gICAgZXh0ZW5kcyBzdXBlckNsYXNzXG4gICAgaW1wbGVtZW50cyBQYXJ0aWFsPFNiYkZvcm1Bc3NvY2lhdGVkTWl4aW5UeXBlPlxuICB7XG4gICAgcHVibGljIHN0YXRpYyBmb3JtQXNzb2NpYXRlZCA9IHRydWU7XG5cbiAgICBwdWJsaWMgYWJzdHJhY3QgYWNjZXNzb3IgdmFsdWU6IHVua25vd247XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHRoZSBmb3JtIG93bmVyIG9mIHRoaXMgZWxlbWVudC5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IGZvcm0oKTogSFRNTEZvcm1FbGVtZW50IHwgbnVsbCB7XG4gICAgICByZXR1cm4gdGhpcy5pbnRlcm5hbHMuZm9ybTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBOYW1lIG9mIHRoZSBmb3JtIGVsZW1lbnQuIFdpbGwgYmUgcmVhZCBmcm9tIG5hbWUgYXR0cmlidXRlLlxuICAgICAqXG4gICAgICogQGRlc2NyaXB0aW9uIERldmVsb3BlciBub3RlOiBJbiB0aGlzIGNhc2UgdXBkYXRpbmcgdGhlIGF0dHJpYnV0ZSBtdXN0IGJlIHN5bmNocm9ub3VzLlxuICAgICAqIER1ZSB0byB0aGlzIGl0IGlzIGltcGxlbWVudGVkIGFzIGEgZ2V0dGVyL3NldHRlciBhbmQgdGhlIGF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFjaygpIGhhbmRsZXMgdGhlIGRpZmYgY2hlY2suXG4gICAgICovXG4gICAgQHByb3BlcnR5KClcbiAgICBwdWJsaWMgc2V0IG5hbWUobmFtZTogc3RyaW5nKSB7XG4gICAgICB0aGlzLnNldEF0dHJpYnV0ZSgnbmFtZScsIGAke25hbWV9YCk7XG5cbiAgICAgIC8vIEZvciBgRm9ybURhdGFgIHZhbHVlcywgd2UgaGF2ZSB0byBtYW51YWxseSB1cGRhdGUgdGhlIGZpZWxkTmFtZSBrZXlcbiAgICAgIHRoaXMudXBkYXRlRm9ybVZhbHVlKCk7XG4gICAgfVxuICAgIHB1YmxpYyBnZXQgbmFtZSgpOiBzdHJpbmcge1xuICAgICAgcmV0dXJuIHRoaXMuZ2V0QXR0cmlidXRlKCduYW1lJykgPz8gJyc7XG4gICAgfVxuXG4gICAgLyoqIEBpbnRlcm5hbCAqL1xuICAgIHB1YmxpYyBnZXQgdHlwZSgpOiBzdHJpbmcge1xuICAgICAgcmV0dXJuIHRoaXMubG9jYWxOYW1lO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdGhlIFZhbGlkaXR5U3RhdGUgb2JqZWN0IGZvciB0aGlzIGVsZW1lbnQuXG4gICAgICovXG4gICAgcHVibGljIGdldCB2YWxpZGl0eSgpOiBWYWxpZGl0eVN0YXRlIHtcbiAgICAgIHJldHVybiB0aGlzLmludGVybmFscy52YWxpZGl0eTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHRoZSBjdXJyZW50IGVycm9yIG1lc3NhZ2UsIGlmIGF2YWlsYWJsZSwgd2hpY2ggY29ycmVzcG9uZHNcbiAgICAgKiB0byB0aGUgY3VycmVudCB2YWxpZGF0aW9uIHN0YXRlLlxuICAgICAqIFBsZWFzZSBub3RlIHRoYXQgb25seSBvbmUgbWVzc2FnZSBpcyByZXR1cm5lZCBhdCBhIHRpbWUgKGUuZy4gaWZcbiAgICAgKiBtdWx0aXBsZSB2YWxpZGl0eSBzdGF0ZXMgYXJlIGludmFsaWQsIG9ubHkgdGhlIGNocm9ub2xvZ2ljYWxseSBmaXJzdCBvbmVcbiAgICAgKiBpcyByZXR1cm5lZCB1bnRpbCBpdCBpcyBmaXhlZCwgYXQgd2hpY2ggcG9pbnQgdGhlIG5leHQgbWVzc2FnZSBtaWdodCBiZVxuICAgICAqIHJldHVybmVkLCBpZiBpdCBpcyBzdGlsbCBhcHBsaWNhYmxlKS4gQWxzbywgYSBjdXN0b20gdmFsaWRpdHkgbWVzc2FnZVxuICAgICAqIChzZWUgYmVsb3cpIGhhcyBwcmVjZWRlbmNlIG92ZXIgbmF0aXZlIHZhbGlkYXRpb24gbWVzc2FnZXMuXG4gICAgICovXG4gICAgcHVibGljIGdldCB2YWxpZGF0aW9uTWVzc2FnZSgpOiBzdHJpbmcge1xuICAgICAgcmV0dXJuIHRoaXMuaW50ZXJuYWxzLnZhbGlkYXRpb25NZXNzYWdlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdHJ1ZSBpZiB0aGlzIGVsZW1lbnQgd2lsbCBiZSB2YWxpZGF0ZWRcbiAgICAgKiB3aGVuIHRoZSBmb3JtIGlzIHN1Ym1pdHRlZDsgZmFsc2Ugb3RoZXJ3aXNlLlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgd2lsbFZhbGlkYXRlKCk6IGJvb2xlYW4ge1xuICAgICAgcmV0dXJuIHRoaXMuaW50ZXJuYWxzLndpbGxWYWxpZGF0ZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF92YWxpZGl0eVN0YXRlcyA9IG5ldyBNYXA8XG4gICAgICBrZXlvZiBWYWxpZGl0eVN0YXRlRmxhZ3MsXG4gICAgICB7IGZsYWdWYWx1ZTogdW5rbm93bjsgbWVzc2FnZTogc3RyaW5nIH1cbiAgICA+KCk7XG5cbiAgICAvKiogV2hlbmV2ZXIgYSBzdXJyb3VuZGluZyBmb3JtIG9yIGZpZWxkc2V0IGlzIGNoYW5naW5nIGl0cyBkaXNhYmxlZCBzdGF0ZS4gKi9cbiAgICBAc3RhdGUoKSBwcm90ZWN0ZWQgYWNjZXNzb3IgZm9ybURpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IoLi4uYXJnczogYW55W10pIHtcbiAgICAgIHN1cGVyKC4uLmFyZ3MpO1xuICAgICAgLy8gV2Ugd2FudCB0byBwcmV2ZW50IHRoZSBuYXRpdmUgYnJvd3NlciB2YWxpZGF0aW9uIG1lc3NhZ2UgcG9wb3ZlclxuICAgICAgLy8gdG8gYmUgc2hvd24uIFRoaXMgYWxzbyBwcmV2ZW50cyBhIGJ1ZyBpbiBXZWJLaXQsIHdoaWNoIHdvdWxkIG5vdFxuICAgICAgLy8gYWxsb3cgaG9zdCBhcyB0aGUgdmFsaWRpdHkgYW5jaG9yOiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjY5ODMyXG4gICAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/LignaW52YWxpZCcsIChlKSA9PiBlLnByZXZlbnREZWZhdWx0KCkpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvdmVycmlkZSBhdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2soXG4gICAgICBuYW1lOiBzdHJpbmcsXG4gICAgICBvbGQ6IHN0cmluZyB8IG51bGwsXG4gICAgICB2YWx1ZTogc3RyaW5nIHwgbnVsbCxcbiAgICApOiB2b2lkIHtcbiAgICAgIGlmIChuYW1lICE9PSAnbmFtZScgfHwgb2xkICE9PSB2YWx1ZSkge1xuICAgICAgICBzdXBlci5hdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2sobmFtZSwgb2xkLCB2YWx1ZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0cnVlIGlmIHRoaXMgZWxlbWVudCBoYXMgbm8gdmFsaWRpdHkgcHJvYmxlbXM7IGZhbHNlIG90aGVyd2lzZS5cbiAgICAgKiBGaXJlcyBhbiBpbnZhbGlkIGV2ZW50IGF0IHRoZSBlbGVtZW50IGluIHRoZSBsYXR0ZXIgY2FzZS5cbiAgICAgKi9cbiAgICBwdWJsaWMgY2hlY2tWYWxpZGl0eSgpOiBib29sZWFuIHtcbiAgICAgIHJldHVybiB0aGlzLmludGVybmFscy5jaGVja1ZhbGlkaXR5KCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0cnVlIGlmIHRoaXMgZWxlbWVudCBoYXMgbm8gdmFsaWRpdHkgcHJvYmxlbXM7IG90aGVyd2lzZSxcbiAgICAgKiByZXR1cm5zIGZhbHNlLCBmaXJlcyBhbiBpbnZhbGlkIGV2ZW50IGF0IHRoZSBlbGVtZW50LFxuICAgICAqIGFuZCAoaWYgdGhlIGV2ZW50IGlzbid0IGNhbmNlbGVkKSByZXBvcnRzIHRoZSBwcm9ibGVtIHRvIHRoZSB1c2VyLlxuICAgICAqL1xuICAgIHB1YmxpYyByZXBvcnRWYWxpZGl0eSgpOiBib29sZWFuIHtcbiAgICAgIHJldHVybiB0aGlzLmludGVybmFscy5yZXBvcnRWYWxpZGl0eSgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldHMgdGhlIGN1c3RvbSB2YWxpZGl0eSBtZXNzYWdlIGZvciB0aGlzIGVsZW1lbnQuIFVzZSB0aGUgZW1wdHkgc3RyaW5nXG4gICAgICogdG8gaW5kaWNhdGUgdGhhdCB0aGUgZWxlbWVudCBkb2VzIG5vdCBoYXZlIGEgY3VzdG9tIHZhbGlkaXR5IGVycm9yLlxuICAgICAqL1xuICAgIHB1YmxpYyBzZXRDdXN0b21WYWxpZGl0eShtZXNzYWdlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgIGlmIChtZXNzYWdlKSB7XG4gICAgICAgIHRoaXMuc2V0VmFsaWRpdHlGbGFnKCdjdXN0b21FcnJvcicsIG1lc3NhZ2UpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5yZW1vdmVWYWxpZGl0eUZsYWcoJ2N1c3RvbUVycm9yJyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2FsbGVkIHdoZW4gdGhlIGFzc29jaWF0ZWQgZm9ybSBlbGVtZW50IGNoYW5nZXMuXG4gICAgICogRWxlbWVudEludGVybmFscy5mb3JtIHJldHVybnMgdGhlIGFzc29jaWF0ZWQgZnJvbSBlbGVtZW50LlxuICAgICAqXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgcHVibGljIGZvcm1Bc3NvY2lhdGVkQ2FsbGJhY2s/KGZvcm06IEhUTUxGb3JtRWxlbWVudCB8IG51bGwpOiB2b2lkO1xuXG4gICAgLyoqXG4gICAgICogSXMgY2FsbGVkIHdoZW5ldmVyIGEgc3Vycm91bmRpbmcgZmllbGRzZXQgY2hhbmdlcyBkaXNhYmxlZCBzdGF0ZS5cbiAgICAgKlxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHB1YmxpYyBmb3JtRGlzYWJsZWRDYWxsYmFjayhfZGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgIHRoaXMuZm9ybURpc2FibGVkID0gdGhpcy5faGFzRGlzYWJsZWRBbmNlc3RvcigpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2hhc0Rpc2FibGVkQW5jZXN0b3IoKTogYm9vbGVhbiB7XG4gICAgICAvLyBDaGVjayBpZiBhbnkgb2YgdGhlIGZpZWxkc2V0IGFuY2VzdG9ycyBoYXMgdGhlIGRpc2FibGVkIGF0dHJpYnV0ZSBzZXQuXG4gICAgICBsZXQgZWxlbWVudDogSFRNTEVsZW1lbnQgfCBudWxsID0gdGhpcy5wYXJlbnRFbGVtZW50O1xuICAgICAgd2hpbGUgKGVsZW1lbnQpIHtcbiAgICAgICAgaWYgKGVsZW1lbnQubG9jYWxOYW1lID09PSAnZmllbGRzZXQnICYmIGVsZW1lbnQuaGFzQXR0cmlidXRlKCdkaXNhYmxlZCcpKSB7XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgZWxlbWVudCA9IGVsZW1lbnQucGFyZW50RWxlbWVudDtcbiAgICAgIH1cbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBJcyBjYWxsZWQgd2hlbmV2ZXIgdGhlIGZvcm0gaXMgYmVpbmcgcmVzZXQuXG4gICAgICpcbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBwdWJsaWMgYWJzdHJhY3QgZm9ybVJlc2V0Q2FsbGJhY2soKTogdm9pZDtcblxuICAgIC8qKlxuICAgICAqICBDYWxsZWQgd2hlbiB0aGUgYnJvd3NlciBpcyB0cnlpbmcgdG8gcmVzdG9yZSBlbGVtZW504oCZcyBzdGF0ZSB0byBzdGF0ZSBpbiB3aGljaCBjYXNlXG4gICAgICogIHJlYXNvbiBpcyBcInJlc3RvcmVcIiwgb3Igd2hlbiB0aGUgYnJvd3NlciBpcyB0cnlpbmcgdG8gZnVsZmlsbCBhdXRvZmlsbCBvbiBiZWhhbGYgb2ZcbiAgICAgKiAgdXNlciBpbiB3aGljaCBjYXNlIHJlYXNvbiBpcyBcImF1dG9jb21wbGV0ZVwiLlxuICAgICAqICBJbiB0aGUgY2FzZSBvZiBcInJlc3RvcmVcIiwgc3RhdGUgaXMgYSBzdHJpbmcsIEZpbGUsIG9yIEZvcm1EYXRhIG9iamVjdFxuICAgICAqICBwcmV2aW91c2x5IHNldCBhcyB0aGUgc2Vjb25kIGFyZ3VtZW50IHRvIHNldEZvcm1WYWx1ZS5cbiAgICAgKlxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHB1YmxpYyBhYnN0cmFjdCBmb3JtU3RhdGVSZXN0b3JlQ2FsbGJhY2soXG4gICAgICBzdGF0ZTogRm9ybVJlc3RvcmVTdGF0ZSB8IG51bGwsXG4gICAgICByZWFzb246IEZvcm1SZXN0b3JlUmVhc29uLFxuICAgICk6IHZvaWQ7XG5cbiAgICBwdWJsaWMgb3ZlcnJpZGUgcmVxdWVzdFVwZGF0ZShcbiAgICAgIG5hbWU/OiBQcm9wZXJ0eUtleSxcbiAgICAgIG9sZFZhbHVlPzogdW5rbm93bixcbiAgICAgIG9wdGlvbnM/OiBQcm9wZXJ0eURlY2xhcmF0aW9uLFxuICAgICk6IHZvaWQge1xuICAgICAgc3VwZXIucmVxdWVzdFVwZGF0ZShuYW1lLCBvbGRWYWx1ZSwgb3B0aW9ucyk7XG4gICAgICBpZiAobmFtZSA9PT0gJ3ZhbHVlJykge1xuICAgICAgICB0aGlzLnVwZGF0ZUZvcm1WYWx1ZSgpO1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMuaGFzVXBkYXRlZCAmJiB0aGlzLnNob3VsZFZhbGlkYXRlKG5hbWUpKSB7XG4gICAgICAgIHRoaXMudmFsaWRhdGUoKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgZmlyc3RVcGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzOiBQcm9wZXJ0eVZhbHVlczx0aGlzPik6IHZvaWQge1xuICAgICAgc3VwZXIuZmlyc3RVcGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzKTtcbiAgICAgIHRoaXMudmFsaWRhdGUoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTaG91bGQgYmUgY2FsbGVkIHdoZW4gZm9ybSB2YWx1ZSBpcyBjaGFuZ2VkLlxuICAgICAqIEFkYXB0cyBhbmQgc2V0cyB0aGUgZm9ybVZhbHVlIGluIHRoZSBzdXBwb3J0ZWQgZm9ybWF0IChzdHJpbmcgfCBGb3JtRGF0YSB8IEZpbGUgfCBudWxsKVxuICAgICAqIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0FQSS9FbGVtZW50SW50ZXJuYWxzL3NldEZvcm1WYWx1ZVxuICAgICAqL1xuICAgIHByb3RlY3RlZCB1cGRhdGVGb3JtVmFsdWUoKTogdm9pZCB7XG4gICAgICBsZXQgZm9ybVZhbHVlOiBGb3JtRGF0YSB8IHN0cmluZyB8IG51bGw7XG4gICAgICBjb25zdCBuYW1lID0gdGhpcy5uYW1lID8/IHRoaXMuZ2V0QXR0cmlidXRlKCduYW1lJyk7XG5cbiAgICAgIGlmICh0eXBlb2YgdGhpcy52YWx1ZSA9PT0gJ3N0cmluZycgfHwgdGhpcy52YWx1ZSA9PSBudWxsKSB7XG4gICAgICAgIGZvcm1WYWx1ZSA9IHRoaXMudmFsdWUgYXMgc3RyaW5nIHwgbnVsbDtcbiAgICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheSh0aGlzLnZhbHVlKSkge1xuICAgICAgICBmb3JtVmFsdWUgPSBuZXcgRm9ybURhdGEoKTtcbiAgICAgICAgdGhpcy52YWx1ZS5mb3JFYWNoKChlbCkgPT4ge1xuICAgICAgICAgIChmb3JtVmFsdWUgYXMgRm9ybURhdGEpLmFwcGVuZChcbiAgICAgICAgICAgIG5hbWUsXG4gICAgICAgICAgICB0eXBlb2YgZWwgPT09ICdzdHJpbmcnXG4gICAgICAgICAgICAgID8gZWxcbiAgICAgICAgICAgICAgOiBuZXcgQmxvYihbSlNPTi5zdHJpbmdpZnkoZWwpXSwge1xuICAgICAgICAgICAgICAgICAgdHlwZTogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICk7XG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZm9ybVZhbHVlID0gbmV3IEZvcm1EYXRhKCk7XG4gICAgICAgIGZvcm1WYWx1ZS5hcHBlbmQoXG4gICAgICAgICAgbmFtZSxcbiAgICAgICAgICBuZXcgQmxvYihbSlNPTi5zdHJpbmdpZnkodGhpcy52YWx1ZSldLCB7XG4gICAgICAgICAgICB0eXBlOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgICAgICAgfSksXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIC8vIElmIHRoZSBmb3JtIHN0YXRlIGlzIHVuZGVmaW5lZCB0aGVuIGZvcm0gdmFsdWUgd2lsbCBiZSBjb3BpZWQgdG8gc3RhdGUuXG4gICAgICB0aGlzLmludGVybmFscy5zZXRGb3JtVmFsdWUoZm9ybVZhbHVlLCB0aGlzLmZvcm1TdGF0ZT8uKCkpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBmb3JtU3RhdGU/KCk6IEZvcm1SZXN0b3JlU3RhdGU7XG5cbiAgICAvKipcbiAgICAgKiBNYXJrcyB0aGlzIGVsZW1lbnQgYXMgc3VmZmVyaW5nIGZyb20gdGhlIGNvbnN0cmFpbnQgaW5kaWNhdGVkIGJ5IHRoZVxuICAgICAqIGZsYWcgYXJndW1lbnQgYW5kIGFzc29jaWF0ZXMgdGhlIGdpdmVuIG1lc3NhZ2UgdG8gaXQuXG4gICAgICogTm90ZSB0aGF0IG9ubHkgb25lIG1lc3NhZ2UgaXMgZGlzcGxheWVkIGF0IGEgdGltZSBhbmQgY3VzdG9tIG1lc3NhZ2VzIGJ5XG4gICAgICogY29uc3VtZXJzIGFyZSBhbHdheXMgZGlzcGxheWVkIGJlZm9yZSBpbnRlcm5hbCBtZXNzYWdlcyBhbmQgaW50ZXJuYWxcbiAgICAgKiBtZXNzYWdlcyBhcmUgZGlzcGxheWVkIGluIHRoZSBvcmRlciB0aGV5IHdlcmUgYWRkZWQuXG4gICAgICogVG8gc2V0L2RlZmluZSBjdXN0b20gdmFsaWRpdHkgc3RhdGUgZmxhZ3MsIHlvdSBuZWVkIHRvIGV4dGVuZCB0aGVcbiAgICAgKiBWYWxpZGl0eVN0YXRlIHByb3RvdHlwZSAoYW5kIHRoZSBDdXN0b21WYWxpZGl0eVN0YXRlIGludGVyZmFjZSkuXG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogICAvLyBUaGUgdHlwZSBvZiB0aGUgY3VzdG9tIHZhbGlkaXR5IHN0YXRlIGRvZXMgbm90IG5lZWQgdG8gYmUgYm9vbGVhbi5cbiAgICAgKiAgIE9iamVjdC5hc3NpZ24oVmFsaWRpdHlTdGF0ZS5wcm90b3R5cGUsIHtcbiAgICAgKiAgICAgZ2V0IG15RXJyb3IoKTogYm9vbGVhbiB7XG4gICAgICogICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAqICAgICB9LFxuICAgICAqICAgfSk7XG4gICAgICpcbiAgICAgKiAgIGRlY2xhcmUgZ2xvYmFsIHtcbiAgICAgKiAgICAgaW50ZXJmYWNlIEN1c3RvbVZhbGlkaXR5U3RhdGUge1xuICAgICAqICAgICAgIG15RXJyb3I6IGJvb2xlYW47XG4gICAgICogICAgIH1cbiAgICAgKiAgIH1cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgc2V0VmFsaWRpdHlGbGFnPFQgZXh0ZW5kcyBrZXlvZiBWYWxpZGl0eVN0YXRlRmxhZ3M+KFxuICAgICAgZmxhZzogVCxcbiAgICAgIG1lc3NhZ2U6IHN0cmluZyxcbiAgICAgIGZsYWdWYWx1ZT86IFZhbGlkaXR5U3RhdGVGbGFnc1tUXSxcbiAgICApOiB2b2lkIHtcbiAgICAgIGZsYWdWYWx1ZSA/Pz0gdHJ1ZTtcbiAgICAgIGNvbnN0IHZhbGlkaXR5U3RhdGUgPSB0aGlzLl92YWxpZGl0eVN0YXRlcy5nZXQoZmxhZyk7XG4gICAgICBpZiAoXG4gICAgICAgICF2YWxpZGl0eVN0YXRlIHx8XG4gICAgICAgIHZhbGlkaXR5U3RhdGUubWVzc2FnZSAhPT0gbWVzc2FnZSB8fFxuICAgICAgICB2YWxpZGl0eVN0YXRlLmZsYWdWYWx1ZSAhPT0gZmxhZ1ZhbHVlXG4gICAgICApIHtcbiAgICAgICAgdGhpcy5fdmFsaWRpdHlTdGF0ZXMuc2V0KGZsYWcsIHsgZmxhZ1ZhbHVlLCBtZXNzYWdlIH0pO1xuICAgICAgICB0aGlzLl9zZXRJbnRlcm5hbFZhbGlkaXR5KCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLyoqIFJlbW92ZXMgdGhlIHZhbGlkaXR5IHN0YXRlIGZsYWcgZW50cnkgYW5kIHVwZGF0ZXMgdmFsaWRpdHkgc3RhdGUuICovXG4gICAgcHJvdGVjdGVkIHJlbW92ZVZhbGlkaXR5RmxhZzxUIGV4dGVuZHMga2V5b2YgVmFsaWRpdHlTdGF0ZUZsYWdzPihmbGFnOiBUKTogdm9pZCB7XG4gICAgICBpZiAodGhpcy5fdmFsaWRpdHlTdGF0ZXMuaGFzKGZsYWcpKSB7XG4gICAgICAgIHRoaXMuX3ZhbGlkaXR5U3RhdGVzLmRlbGV0ZShmbGFnKTtcbiAgICAgICAgdGhpcy5fc2V0SW50ZXJuYWxWYWxpZGl0eSgpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBUbyBiZSBjYWxsZWQgd2hlbmV2ZXIgdGhlIGN1cnJlbnQgZWxlbWVudCBuZWVkcyB0byBiZSB2YWxpZGF0ZWQuICovXG4gICAgcHJvdGVjdGVkIHZhbGlkYXRlKCk6IHZvaWQge31cblxuICAgIC8qKiBXaGV0aGVyIHZhbGlkYXRpb24gc2hvdWxkIGJlIHJ1biBvbiBhIHByb3BlcnR5IGNoYW5nZSB3aXRoIHRoZSBnaXZlbiBuYW1lLiAqL1xuICAgIHByb3RlY3RlZCBzaG91bGRWYWxpZGF0ZShuYW1lOiBQcm9wZXJ0eUtleSB8IHVuZGVmaW5lZCk6IGJvb2xlYW4ge1xuICAgICAgcmV0dXJuICFuYW1lO1xuICAgIH1cblxuICAgIHByaXZhdGUgX3NldEludGVybmFsVmFsaWRpdHkoKTogdm9pZCB7XG4gICAgICBsZXQgb3V0cHV0TWVzc2FnZSA9IHRoaXMuX3ZhbGlkaXR5U3RhdGVzLmdldCgnY3VzdG9tRXJyb3InKT8ubWVzc2FnZTtcbiAgICAgIGNvbnN0IGZsYWdzOiBWYWxpZGl0eVN0YXRlRmxhZ3MgPSB7fTtcbiAgICAgIHRoaXMuX3ZhbGlkaXR5U3RhdGVzLmZvckVhY2goKHsgZmxhZ1ZhbHVlLCBtZXNzYWdlIH0sIGZsYWcpID0+IHtcbiAgICAgICAgZmxhZ3NbZmxhZ10gPSBmbGFnVmFsdWUgYXMgYW55O1xuICAgICAgICBvdXRwdXRNZXNzYWdlIHx8PSBtZXNzYWdlO1xuICAgICAgfSk7XG5cbiAgICAgIGNvbnN0IGN1c3RvbUZsYWdzID0gT2JqZWN0LmtleXMoVmFsaWRpdHlTdGF0ZS5wcm90b3R5cGUpLmZpbHRlcihcbiAgICAgICAgKGYpID0+ICEoZiBpbiB2YWxpZGl0eUtleXMpICYmIGYgIT09ICd2YWxpZCcsXG4gICAgICApO1xuICAgICAgZm9yIChjb25zdCBmbGFnIG9mIGN1c3RvbUZsYWdzKSB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gZmxhZyBpbiBmbGFncyA/IGZsYWdzW2ZsYWcgYXMga2V5b2YgVmFsaWRpdHlTdGF0ZUZsYWdzXSA6IGZhbHNlO1xuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcy5pbnRlcm5hbHMudmFsaWRpdHksIGZsYWcsIHsgdmFsdWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZSB9KTtcbiAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgLy8gSWYgYW55IGN1c3RvbSBlcnJvcnMgYXJlIHByb3ZpZGVkLCB3ZSBuZWVkIHRvIHNldCBjdXN0b21FcnJvciB0byB0cnVlLFxuICAgICAgICAgIC8vIGFzIHRoaXMgaXMgdGhlIG9ubHkgY3VzdG9tIGVycm9yIHByb3BlcnR5IGJyb3dzZXJzIGFjY2VwdC5cbiAgICAgICAgICBmbGFncy5jdXN0b21FcnJvciA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgdGhpcy5pbnRlcm5hbHMuc2V0VmFsaWRpdHkoZmxhZ3MsIG91dHB1dE1lc3NhZ2UpO1xuXG4gICAgICAvLyBXZWJLaXQgc2VlbXMgdG8gYWx3YXlzIHNldCBjdXN0b21FcnJvciB0byB0cnVlLCBpZiBhbnkgZXJyb3IgaXMgYWN0aXZlLlxuICAgICAgLy8gRHVlIHRvIHRoaXMgd2UgcGF0Y2ggdGhlIGN1c3RvbUVycm9yIHZhbHVlIG1hbnVhbGx5LlxuICAgICAgaWYgKGlzV2Via2l0KSB7XG4gICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLmludGVybmFscy52YWxpZGl0eSwgJ2N1c3RvbUVycm9yJywge1xuICAgICAgICAgIHZhbHVlOiB0aGlzLl92YWxpZGl0eVN0YXRlcy5oYXMoJ2N1c3RvbUVycm9yJykgfHwgISFmbGFncy5jdXN0b21FcnJvcixcbiAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICByZXR1cm4gU2JiRm9ybUFzc29jaWF0ZWRFbGVtZW50IGFzIHVua25vd24gYXMgQWJzdHJhY3RDb25zdHJ1Y3RvcjxTYmJGb3JtQXNzb2NpYXRlZE1peGluVHlwZT4gJiBUO1xufTtcblxuLyoqXG4gKiBBIHZhbHVlIHRvIGJlIHJlc3RvcmVkIGZvciBhIGNvbXBvbmVudCdzIGZvcm0gdmFsdWUuIElmIGEgY29tcG9uZW50J3MgZm9ybVxuICogc3RhdGUgaXMgYSBgRm9ybURhdGFgIG9iamVjdCwgaXRzIGVudHJ5IGxpc3Qgb2YgbmFtZSBhbmQgdmFsdWVzIHdpbGwgYmVcbiAqIHByb3ZpZGVkLlxuICovXG5leHBvcnQgdHlwZSBGb3JtUmVzdG9yZVN0YXRlID0gc3RyaW5nIHwgRm9ybURhdGEgfCBGaWxlO1xuXG4vKipcbiAqIFRoZSByZWFzb24gYSBmb3JtIGNvbXBvbmVudCBpcyBiZWluZyByZXN0b3JlZCBmb3IsIGVpdGhlciBgJ3Jlc3RvcmUnYCBmb3JcbiAqIGJyb3dzZXIgcmVzdG9yYXRpb24gb3IgYCdhdXRvY29tcGxldGUnYCBmb3IgcmVzdG9yaW5nIHVzZXIgdmFsdWVzLlxuICovXG5leHBvcnQgdHlwZSBGb3JtUmVzdG9yZVJlYXNvbiA9ICdyZXN0b3JlJyB8ICdhdXRvY29tcGxldGUnO1xuIl0sIm1hcHBpbmdzIjoiOzs7O0FBa0JBLElBQU0sZUFBOEU7Q0FDbEYsVUFBVTtDQUNWLGFBQWE7Q0FDYixpQkFBaUI7Q0FDakIsZUFBZTtDQUNmLGdCQUFnQjtDQUNoQixjQUFjO0NBQ2QsU0FBUztDQUNULFVBQVU7Q0FDVixjQUFjO0NBQ2QsY0FBYztDQUNmO0FBSUQsSUFBSSxPQUFPLGtCQUFrQixhQUFhO0NBQ3hDLE1BQU0sZ0JBQWdCLE1BQU0sY0FBYTtFQUN2QyxJQUFXLFFBQUs7QUFDZCxVQUFPOztFQUVULGNBQUE7QUFDRSxTQUFNLElBQUksVUFBVSxzQkFBc0I7OztBQUc5QyxRQUFPLFFBQVEsYUFBYSxDQUFDLFNBQVMsQ0FBQyxLQUFLLFdBQzFDLE9BQU8sT0FBTyxjQUFjLFdBQVcsRUFDckMsS0FBSyxPQUFJO0FBQ1AsU0FBTztJQUVWLENBQUMsQ0FDSDtBQUNELFlBQVcsZ0JBQWdCOzs7OztBQTRDN0IsSUFBYSwwQkFDWCxlQUN1RDtBQStUdkQsZUE5VHVDO29CQUM3Qjs7Ozs7O2VBREssaUNBQ0wsWUFBVTs7OzRCQW9CakIsVUFBVSxDQUFB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
294
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1hc3NvY2lhdGVkLW1peGluLmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb3JlL21peGlucy9mb3JtLWFzc29jaWF0ZWQtbWl4aW4udHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LW9iamVjdC10eXBlICovXG5pbXBvcnQgdHlwZSB7IFByb3BlcnR5RGVjbGFyYXRpb24sIFByb3BlcnR5VmFsdWVzIH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IHByb3BlcnR5LCBzdGF0ZSB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcblxuaW1wb3J0IHR5cGUgeyBTYmJFbGVtZW50IH0gZnJvbSAnLi4vYmFzZS1lbGVtZW50cy9lbGVtZW50LnRzJztcbmltcG9ydCB7IGlzV2Via2l0IH0gZnJvbSAnLi4vZG9tL3BsYXRmb3JtLnRzJztcblxuaW1wb3J0IHR5cGUgeyBBYnN0cmFjdENvbnN0cnVjdG9yIH0gZnJvbSAnLi9jb25zdHJ1Y3Rvci50cyc7XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgLyoqXG4gICAqIERlZmluZXMgY3VzdG9tIHZhbGlkaXR5IHN0YXRlIHByb3BlcnRpZXMuXG4gICAqL1xuICBpbnRlcmZhY2UgQ3VzdG9tVmFsaWRpdHlTdGF0ZSB7fVxuICBpbnRlcmZhY2UgVmFsaWRpdHlTdGF0ZSBleHRlbmRzIEN1c3RvbVZhbGlkaXR5U3RhdGUge31cbiAgaW50ZXJmYWNlIFZhbGlkaXR5U3RhdGVGbGFncyBleHRlbmRzIFBhcnRpYWw8Q3VzdG9tVmFsaWRpdHlTdGF0ZT4ge31cbn1cblxuY29uc3QgdmFsaWRpdHlLZXlzOiBSZXF1aXJlZDxPbWl0PFZhbGlkaXR5U3RhdGVGbGFncywga2V5b2YgQ3VzdG9tVmFsaWRpdHlTdGF0ZT4+ID0ge1xuICBiYWRJbnB1dDogZmFsc2UsXG4gIGN1c3RvbUVycm9yOiBmYWxzZSxcbiAgcGF0dGVybk1pc21hdGNoOiBmYWxzZSxcbiAgcmFuZ2VPdmVyZmxvdzogZmFsc2UsXG4gIHJhbmdlVW5kZXJmbG93OiBmYWxzZSxcbiAgc3RlcE1pc21hdGNoOiBmYWxzZSxcbiAgdG9vTG9uZzogZmFsc2UsXG4gIHRvb1Nob3J0OiBmYWxzZSxcbiAgdHlwZU1pc21hdGNoOiBmYWxzZSxcbiAgdmFsdWVNaXNzaW5nOiBmYWxzZSxcbn07XG4vLyBXZSBuZWVkIFZhbGlkaXR5U3RhdGUgaW4gdGhlIGdsb2JhbCBjb250ZXh0LCBhcyB3ZSBjaGVjayB0aGUgcHJvdG90eXBlIGZvclxuLy8gZXh0ZW5zaW9ucy4gSW4gZW52aXJvbm1lbnRzIHdoZXJlIHRoYXQgaXMgbm90IHRoZSBjYXNlIChlLmcuIE5vZGUuanMpIHdlXG4vLyBwYXRjaCBpdCB3aXRoIGEgbWluaW1hbCBzaGltLlxuaWYgKHR5cGVvZiBWYWxpZGl0eVN0YXRlID09PSAndW5kZWZpbmVkJykge1xuICBjb25zdCB2YWxpZGl0eUNsYXNzID0gY2xhc3MgVmFsaWRpdHlTdGF0ZSB7XG4gICAgcHVibGljIGdldCB2YWxpZCgpOiBib29sZWFuIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBwcml2YXRlIGNvbnN0cnVjdG9yKCkge1xuICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignSWxsZWdhbCBjb25zdHJ1Y3RvcicpO1xuICAgIH1cbiAgfTtcbiAgT2JqZWN0LmVudHJpZXModmFsaWRpdHlLZXlzKS5mb3JFYWNoKChba2V5LCB2YWx1ZV0pID0+XG4gICAgT2JqZWN0LmFzc2lnbih2YWxpZGl0eUNsYXNzLnByb3RvdHlwZSwge1xuICAgICAgZ2V0IFtrZXldKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICB9LFxuICAgIH0pLFxuICApO1xuICBnbG9iYWxUaGlzLlZhbGlkaXR5U3RhdGUgPSB2YWxpZGl0eUNsYXNzIGFzIHVua25vd24gYXMgdHlwZW9mIFZhbGlkaXR5U3RhdGU7XG59XG5cbmV4cG9ydCBkZWNsYXJlIGFic3RyYWN0IGNsYXNzIFNiYkZvcm1Bc3NvY2lhdGVkTWl4aW5UeXBlIHtcbiAgcHVibGljIGdldCBmb3JtKCk6IEhUTUxGb3JtRWxlbWVudCB8IG51bGw7XG4gIHB1YmxpYyBhY2Nlc3NvciBuYW1lOiBzdHJpbmc7XG4gIHB1YmxpYyBnZXQgdHlwZSgpOiBzdHJpbmc7XG5cbiAgcHVibGljIGFic3RyYWN0IGFjY2Vzc29yIHZhbHVlOiB1bmtub3duO1xuXG4gIHB1YmxpYyBnZXQgdmFsaWRpdHkoKTogVmFsaWRpdHlTdGF0ZTtcbiAgcHVibGljIGdldCB2YWxpZGF0aW9uTWVzc2FnZSgpOiBzdHJpbmc7XG4gIHB1YmxpYyBnZXQgd2lsbFZhbGlkYXRlKCk6IGJvb2xlYW47XG5cbiAgcHJvdGVjdGVkIGZvcm1EaXNhYmxlZDogYm9vbGVhbjtcblxuICBwdWJsaWMgY2hlY2tWYWxpZGl0eSgpOiBib29sZWFuO1xuICBwdWJsaWMgcmVwb3J0VmFsaWRpdHkoKTogYm9vbGVhbjtcbiAgcHVibGljIHNldEN1c3RvbVZhbGlkaXR5KG1lc3NhZ2U6IHN0cmluZyk6IHZvaWQ7XG5cbiAgcHVibGljIGZvcm1Bc3NvY2lhdGVkQ2FsbGJhY2s/KGZvcm06IEhUTUxGb3JtRWxlbWVudCB8IG51bGwpOiB2b2lkO1xuICBwdWJsaWMgZm9ybURpc2FibGVkQ2FsbGJhY2soZGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkO1xuICBwdWJsaWMgYWJzdHJhY3QgZm9ybVJlc2V0Q2FsbGJhY2soKTogdm9pZDtcbiAgcHVibGljIGFic3RyYWN0IGZvcm1TdGF0ZVJlc3RvcmVDYWxsYmFjayhcbiAgICBzdGF0ZTogRm9ybVJlc3RvcmVTdGF0ZSB8IG51bGwsXG4gICAgcmVhc29uOiBGb3JtUmVzdG9yZVJlYXNvbixcbiAgKTogdm9pZDtcblxuICBwcm90ZWN0ZWQgdXBkYXRlRm9ybVZhbHVlKCk6IHZvaWQ7XG4gIHByb3RlY3RlZCBmb3JtU3RhdGU/KCk6IEZvcm1SZXN0b3JlU3RhdGU7XG4gIHByb3RlY3RlZCBzZXRWYWxpZGl0eUZsYWc8VCBleHRlbmRzIGtleW9mIFZhbGlkaXR5U3RhdGVGbGFncz4oXG4gICAgZmxhZzogVCxcbiAgICBtZXNzYWdlOiBzdHJpbmcsXG4gICAgZmxhZ1ZhbHVlPzogVmFsaWRpdHlTdGF0ZUZsYWdzW1RdLFxuICApOiB2b2lkO1xuICBwcm90ZWN0ZWQgcmVtb3ZlVmFsaWRpdHlGbGFnPFQgZXh0ZW5kcyBrZXlvZiBWYWxpZGl0eVN0YXRlRmxhZ3M+KGZsYWc6IFQpOiB2b2lkO1xuICBwcm90ZWN0ZWQgdmFsaWRhdGUoKTogdm9pZDtcbiAgcHJvdGVjdGVkIHNob3VsZFZhbGlkYXRlKG5hbWU6IFByb3BlcnR5S2V5IHwgdW5kZWZpbmVkKTogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBUaGUgRm9ybUFzc29jaWF0ZWRNaXhpbiBlbmFibGVzIG5hdGl2ZSBmb3JtIHN1cHBvcnQgZm9yIGN1c3RvbSBjb250cm9scy5cbiAqL1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuZXhwb3J0IGNvbnN0IFNiYkZvcm1Bc3NvY2lhdGVkTWl4aW4gPSA8VCBleHRlbmRzIEFic3RyYWN0Q29uc3RydWN0b3I8U2JiRWxlbWVudD4+KFxuICBzdXBlckNsYXNzOiBULFxuKTogQWJzdHJhY3RDb25zdHJ1Y3RvcjxTYmJGb3JtQXNzb2NpYXRlZE1peGluVHlwZT4gJiBUID0+IHtcbiAgYWJzdHJhY3QgY2xhc3MgU2JiRm9ybUFzc29jaWF0ZWRFbGVtZW50XG4gICAgZXh0ZW5kcyBzdXBlckNsYXNzXG4gICAgaW1wbGVtZW50cyBQYXJ0aWFsPFNiYkZvcm1Bc3NvY2lhdGVkTWl4aW5UeXBlPlxuICB7XG4gICAgcHVibGljIHN0YXRpYyBmb3JtQXNzb2NpYXRlZCA9IHRydWU7XG5cbiAgICBwdWJsaWMgYWJzdHJhY3QgYWNjZXNzb3IgdmFsdWU6IHVua25vd247XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHRoZSBmb3JtIG93bmVyIG9mIHRoaXMgZWxlbWVudC5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IGZvcm0oKTogSFRNTEZvcm1FbGVtZW50IHwgbnVsbCB7XG4gICAgICByZXR1cm4gdGhpcy5pbnRlcm5hbHMuZm9ybTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBOYW1lIG9mIHRoZSBmb3JtIGVsZW1lbnQuIFdpbGwgYmUgcmVhZCBmcm9tIG5hbWUgYXR0cmlidXRlLlxuICAgICAqXG4gICAgICogQGRlc2NyaXB0aW9uIERldmVsb3BlciBub3RlOiBJbiB0aGlzIGNhc2UgdXBkYXRpbmcgdGhlIGF0dHJpYnV0ZSBtdXN0IGJlIHN5bmNocm9ub3VzLlxuICAgICAqIER1ZSB0byB0aGlzIGl0IGlzIGltcGxlbWVudGVkIGFzIGEgZ2V0dGVyL3NldHRlciBhbmQgdGhlIGF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFjaygpIGhhbmRsZXMgdGhlIGRpZmYgY2hlY2suXG4gICAgICovXG4gICAgQHByb3BlcnR5KClcbiAgICBwdWJsaWMgc2V0IG5hbWUobmFtZTogc3RyaW5nKSB7XG4gICAgICB0aGlzLnNldEF0dHJpYnV0ZSgnbmFtZScsIGAke25hbWV9YCk7XG5cbiAgICAgIC8vIEZvciBgRm9ybURhdGFgIHZhbHVlcywgd2UgaGF2ZSB0byBtYW51YWxseSB1cGRhdGUgdGhlIGZpZWxkTmFtZSBrZXlcbiAgICAgIHRoaXMudXBkYXRlRm9ybVZhbHVlKCk7XG4gICAgfVxuICAgIHB1YmxpYyBnZXQgbmFtZSgpOiBzdHJpbmcge1xuICAgICAgcmV0dXJuIHRoaXMuZ2V0QXR0cmlidXRlKCduYW1lJykgPz8gJyc7XG4gICAgfVxuXG4gICAgLyoqIEBpbnRlcm5hbCAqL1xuICAgIHB1YmxpYyBnZXQgdHlwZSgpOiBzdHJpbmcge1xuICAgICAgcmV0dXJuIHRoaXMubG9jYWxOYW1lO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdGhlIFZhbGlkaXR5U3RhdGUgb2JqZWN0IGZvciB0aGlzIGVsZW1lbnQuXG4gICAgICovXG4gICAgcHVibGljIGdldCB2YWxpZGl0eSgpOiBWYWxpZGl0eVN0YXRlIHtcbiAgICAgIHJldHVybiB0aGlzLmludGVybmFscy52YWxpZGl0eTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHRoZSBjdXJyZW50IGVycm9yIG1lc3NhZ2UsIGlmIGF2YWlsYWJsZSwgd2hpY2ggY29ycmVzcG9uZHNcbiAgICAgKiB0byB0aGUgY3VycmVudCB2YWxpZGF0aW9uIHN0YXRlLlxuICAgICAqIFBsZWFzZSBub3RlIHRoYXQgb25seSBvbmUgbWVzc2FnZSBpcyByZXR1cm5lZCBhdCBhIHRpbWUgKGUuZy4gaWZcbiAgICAgKiBtdWx0aXBsZSB2YWxpZGl0eSBzdGF0ZXMgYXJlIGludmFsaWQsIG9ubHkgdGhlIGNocm9ub2xvZ2ljYWxseSBmaXJzdCBvbmVcbiAgICAgKiBpcyByZXR1cm5lZCB1bnRpbCBpdCBpcyBmaXhlZCwgYXQgd2hpY2ggcG9pbnQgdGhlIG5leHQgbWVzc2FnZSBtaWdodCBiZVxuICAgICAqIHJldHVybmVkLCBpZiBpdCBpcyBzdGlsbCBhcHBsaWNhYmxlKS4gQWxzbywgYSBjdXN0b20gdmFsaWRpdHkgbWVzc2FnZVxuICAgICAqIChzZWUgYmVsb3cpIGhhcyBwcmVjZWRlbmNlIG92ZXIgbmF0aXZlIHZhbGlkYXRpb24gbWVzc2FnZXMuXG4gICAgICovXG4gICAgcHVibGljIGdldCB2YWxpZGF0aW9uTWVzc2FnZSgpOiBzdHJpbmcge1xuICAgICAgcmV0dXJuIHRoaXMuaW50ZXJuYWxzLnZhbGlkYXRpb25NZXNzYWdlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdHJ1ZSBpZiB0aGlzIGVsZW1lbnQgd2lsbCBiZSB2YWxpZGF0ZWRcbiAgICAgKiB3aGVuIHRoZSBmb3JtIGlzIHN1Ym1pdHRlZDsgZmFsc2Ugb3RoZXJ3aXNlLlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgd2lsbFZhbGlkYXRlKCk6IGJvb2xlYW4ge1xuICAgICAgcmV0dXJuIHRoaXMuaW50ZXJuYWxzLndpbGxWYWxpZGF0ZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF92YWxpZGl0eVN0YXRlcyA9IG5ldyBNYXA8XG4gICAgICBrZXlvZiBWYWxpZGl0eVN0YXRlRmxhZ3MsXG4gICAgICB7IGZsYWdWYWx1ZTogdW5rbm93bjsgbWVzc2FnZTogc3RyaW5nIH1cbiAgICA+KCk7XG5cbiAgICAvKiogV2hlbmV2ZXIgYSBzdXJyb3VuZGluZyBmb3JtIG9yIGZpZWxkc2V0IGlzIGNoYW5naW5nIGl0cyBkaXNhYmxlZCBzdGF0ZS4gKi9cbiAgICBAc3RhdGUoKSBwcm90ZWN0ZWQgYWNjZXNzb3IgZm9ybURpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IoLi4uYXJnczogYW55W10pIHtcbiAgICAgIHN1cGVyKC4uLmFyZ3MpO1xuICAgICAgLy8gV2Ugd2FudCB0byBwcmV2ZW50IHRoZSBuYXRpdmUgYnJvd3NlciB2YWxpZGF0aW9uIG1lc3NhZ2UgcG9wb3ZlclxuICAgICAgLy8gdG8gYmUgc2hvd24uIFRoaXMgYWxzbyBwcmV2ZW50cyBhIGJ1ZyBpbiBXZWJLaXQsIHdoaWNoIHdvdWxkIG5vdFxuICAgICAgLy8gYWxsb3cgaG9zdCBhcyB0aGUgdmFsaWRpdHkgYW5jaG9yOiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjY5ODMyXG4gICAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/LignaW52YWxpZCcsIChlKSA9PiBlLnByZXZlbnREZWZhdWx0KCkpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvdmVycmlkZSBhdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2soXG4gICAgICBuYW1lOiBzdHJpbmcsXG4gICAgICBvbGQ6IHN0cmluZyB8IG51bGwsXG4gICAgICB2YWx1ZTogc3RyaW5nIHwgbnVsbCxcbiAgICApOiB2b2lkIHtcbiAgICAgIGlmIChuYW1lICE9PSAnbmFtZScgfHwgb2xkICE9PSB2YWx1ZSkge1xuICAgICAgICBzdXBlci5hdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2sobmFtZSwgb2xkLCB2YWx1ZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0cnVlIGlmIHRoaXMgZWxlbWVudCBoYXMgbm8gdmFsaWRpdHkgcHJvYmxlbXM7IGZhbHNlIG90aGVyd2lzZS5cbiAgICAgKiBGaXJlcyBhbiBpbnZhbGlkIGV2ZW50IGF0IHRoZSBlbGVtZW50IGluIHRoZSBsYXR0ZXIgY2FzZS5cbiAgICAgKi9cbiAgICBwdWJsaWMgY2hlY2tWYWxpZGl0eSgpOiBib29sZWFuIHtcbiAgICAgIHJldHVybiB0aGlzLmludGVybmFscy5jaGVja1ZhbGlkaXR5KCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0cnVlIGlmIHRoaXMgZWxlbWVudCBoYXMgbm8gdmFsaWRpdHkgcHJvYmxlbXM7IG90aGVyd2lzZSxcbiAgICAgKiByZXR1cm5zIGZhbHNlLCBmaXJlcyBhbiBpbnZhbGlkIGV2ZW50IGF0IHRoZSBlbGVtZW50LFxuICAgICAqIGFuZCAoaWYgdGhlIGV2ZW50IGlzbid0IGNhbmNlbGVkKSByZXBvcnRzIHRoZSBwcm9ibGVtIHRvIHRoZSB1c2VyLlxuICAgICAqL1xuICAgIHB1YmxpYyByZXBvcnRWYWxpZGl0eSgpOiBib29sZWFuIHtcbiAgICAgIHJldHVybiB0aGlzLmludGVybmFscy5yZXBvcnRWYWxpZGl0eSgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldHMgdGhlIGN1c3RvbSB2YWxpZGl0eSBtZXNzYWdlIGZvciB0aGlzIGVsZW1lbnQuIFVzZSB0aGUgZW1wdHkgc3RyaW5nXG4gICAgICogdG8gaW5kaWNhdGUgdGhhdCB0aGUgZWxlbWVudCBkb2VzIG5vdCBoYXZlIGEgY3VzdG9tIHZhbGlkaXR5IGVycm9yLlxuICAgICAqL1xuICAgIHB1YmxpYyBzZXRDdXN0b21WYWxpZGl0eShtZXNzYWdlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgIGlmIChtZXNzYWdlKSB7XG4gICAgICAgIHRoaXMuc2V0VmFsaWRpdHlGbGFnKCdjdXN0b21FcnJvcicsIG1lc3NhZ2UpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5yZW1vdmVWYWxpZGl0eUZsYWcoJ2N1c3RvbUVycm9yJyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2FsbGVkIHdoZW4gdGhlIGFzc29jaWF0ZWQgZm9ybSBlbGVtZW50IGNoYW5nZXMuXG4gICAgICogRWxlbWVudEludGVybmFscy5mb3JtIHJldHVybnMgdGhlIGFzc29jaWF0ZWQgZnJvbSBlbGVtZW50LlxuICAgICAqXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgcHVibGljIGZvcm1Bc3NvY2lhdGVkQ2FsbGJhY2s/KGZvcm06IEhUTUxGb3JtRWxlbWVudCB8IG51bGwpOiB2b2lkO1xuXG4gICAgLyoqXG4gICAgICogSXMgY2FsbGVkIHdoZW5ldmVyIGEgc3Vycm91bmRpbmcgZmllbGRzZXQgY2hhbmdlcyBkaXNhYmxlZCBzdGF0ZS5cbiAgICAgKlxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHB1YmxpYyBmb3JtRGlzYWJsZWRDYWxsYmFjayhfZGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgIHRoaXMuZm9ybURpc2FibGVkID0gdGhpcy5faGFzRGlzYWJsZWRBbmNlc3RvcigpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2hhc0Rpc2FibGVkQW5jZXN0b3IoKTogYm9vbGVhbiB7XG4gICAgICAvLyBDaGVjayBpZiBhbnkgb2YgdGhlIGZpZWxkc2V0IGFuY2VzdG9ycyBoYXMgdGhlIGRpc2FibGVkIGF0dHJpYnV0ZSBzZXQuXG4gICAgICBsZXQgZWxlbWVudDogSFRNTEVsZW1lbnQgfCBudWxsID0gdGhpcy5wYXJlbnRFbGVtZW50O1xuICAgICAgd2hpbGUgKGVsZW1lbnQpIHtcbiAgICAgICAgaWYgKGVsZW1lbnQubG9jYWxOYW1lID09PSAnZmllbGRzZXQnICYmIGVsZW1lbnQuaGFzQXR0cmlidXRlKCdkaXNhYmxlZCcpKSB7XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgZWxlbWVudCA9IGVsZW1lbnQucGFyZW50RWxlbWVudDtcbiAgICAgIH1cbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBJcyBjYWxsZWQgd2hlbmV2ZXIgdGhlIGZvcm0gaXMgYmVpbmcgcmVzZXQuXG4gICAgICpcbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBwdWJsaWMgYWJzdHJhY3QgZm9ybVJlc2V0Q2FsbGJhY2soKTogdm9pZDtcblxuICAgIC8qKlxuICAgICAqICBDYWxsZWQgd2hlbiB0aGUgYnJvd3NlciBpcyB0cnlpbmcgdG8gcmVzdG9yZSBlbGVtZW504oCZcyBzdGF0ZSB0byBzdGF0ZSBpbiB3aGljaCBjYXNlXG4gICAgICogIHJlYXNvbiBpcyBcInJlc3RvcmVcIiwgb3Igd2hlbiB0aGUgYnJvd3NlciBpcyB0cnlpbmcgdG8gZnVsZmlsbCBhdXRvZmlsbCBvbiBiZWhhbGYgb2ZcbiAgICAgKiAgdXNlciBpbiB3aGljaCBjYXNlIHJlYXNvbiBpcyBcImF1dG9jb21wbGV0ZVwiLlxuICAgICAqICBJbiB0aGUgY2FzZSBvZiBcInJlc3RvcmVcIiwgc3RhdGUgaXMgYSBzdHJpbmcsIEZpbGUsIG9yIEZvcm1EYXRhIG9iamVjdFxuICAgICAqICBwcmV2aW91c2x5IHNldCBhcyB0aGUgc2Vjb25kIGFyZ3VtZW50IHRvIHNldEZvcm1WYWx1ZS5cbiAgICAgKlxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHB1YmxpYyBhYnN0cmFjdCBmb3JtU3RhdGVSZXN0b3JlQ2FsbGJhY2soXG4gICAgICBzdGF0ZTogRm9ybVJlc3RvcmVTdGF0ZSB8IG51bGwsXG4gICAgICByZWFzb246IEZvcm1SZXN0b3JlUmVhc29uLFxuICAgICk6IHZvaWQ7XG5cbiAgICBwdWJsaWMgb3ZlcnJpZGUgcmVxdWVzdFVwZGF0ZShcbiAgICAgIG5hbWU/OiBQcm9wZXJ0eUtleSxcbiAgICAgIG9sZFZhbHVlPzogdW5rbm93bixcbiAgICAgIG9wdGlvbnM/OiBQcm9wZXJ0eURlY2xhcmF0aW9uLFxuICAgICk6IHZvaWQge1xuICAgICAgc3VwZXIucmVxdWVzdFVwZGF0ZShuYW1lLCBvbGRWYWx1ZSwgb3B0aW9ucyk7XG4gICAgICBpZiAobmFtZSA9PT0gJ3ZhbHVlJykge1xuICAgICAgICB0aGlzLnVwZGF0ZUZvcm1WYWx1ZSgpO1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMuaGFzVXBkYXRlZCAmJiB0aGlzLnNob3VsZFZhbGlkYXRlKG5hbWUpKSB7XG4gICAgICAgIHRoaXMudmFsaWRhdGUoKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgZmlyc3RVcGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzOiBQcm9wZXJ0eVZhbHVlczx0aGlzPik6IHZvaWQge1xuICAgICAgc3VwZXIuZmlyc3RVcGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzKTtcbiAgICAgIHRoaXMudmFsaWRhdGUoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTaG91bGQgYmUgY2FsbGVkIHdoZW4gZm9ybSB2YWx1ZSBpcyBjaGFuZ2VkLlxuICAgICAqIEFkYXB0cyBhbmQgc2V0cyB0aGUgZm9ybVZhbHVlIGluIHRoZSBzdXBwb3J0ZWQgZm9ybWF0IChzdHJpbmcgfCBGb3JtRGF0YSB8IEZpbGUgfCBudWxsKVxuICAgICAqIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0FQSS9FbGVtZW50SW50ZXJuYWxzL3NldEZvcm1WYWx1ZVxuICAgICAqL1xuICAgIHByb3RlY3RlZCB1cGRhdGVGb3JtVmFsdWUoKTogdm9pZCB7XG4gICAgICBsZXQgZm9ybVZhbHVlOiBGb3JtRGF0YSB8IHN0cmluZyB8IG51bGw7XG4gICAgICBjb25zdCBuYW1lID0gdGhpcy5uYW1lID8/IHRoaXMuZ2V0QXR0cmlidXRlKCduYW1lJyk7XG5cbiAgICAgIGlmICh0eXBlb2YgdGhpcy52YWx1ZSA9PT0gJ3N0cmluZycgfHwgdGhpcy52YWx1ZSA9PSBudWxsKSB7XG4gICAgICAgIGZvcm1WYWx1ZSA9IHRoaXMudmFsdWUgYXMgc3RyaW5nIHwgbnVsbDtcbiAgICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheSh0aGlzLnZhbHVlKSkge1xuICAgICAgICBmb3JtVmFsdWUgPSBuZXcgRm9ybURhdGEoKTtcbiAgICAgICAgdGhpcy52YWx1ZS5mb3JFYWNoKChlbCkgPT4ge1xuICAgICAgICAgIChmb3JtVmFsdWUgYXMgRm9ybURhdGEpLmFwcGVuZChcbiAgICAgICAgICAgIG5hbWUsXG4gICAgICAgICAgICB0eXBlb2YgZWwgPT09ICdzdHJpbmcnXG4gICAgICAgICAgICAgID8gZWxcbiAgICAgICAgICAgICAgOiBuZXcgQmxvYihbSlNPTi5zdHJpbmdpZnkoZWwpXSwge1xuICAgICAgICAgICAgICAgICAgdHlwZTogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICk7XG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZm9ybVZhbHVlID0gbmV3IEZvcm1EYXRhKCk7XG4gICAgICAgIGZvcm1WYWx1ZS5hcHBlbmQoXG4gICAgICAgICAgbmFtZSxcbiAgICAgICAgICBuZXcgQmxvYihbSlNPTi5zdHJpbmdpZnkodGhpcy52YWx1ZSldLCB7XG4gICAgICAgICAgICB0eXBlOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgICAgICAgfSksXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIC8vIElmIHRoZSBmb3JtIHN0YXRlIGlzIHVuZGVmaW5lZCB0aGVuIGZvcm0gdmFsdWUgd2lsbCBiZSBjb3BpZWQgdG8gc3RhdGUuXG4gICAgICB0aGlzLmludGVybmFscy5zZXRGb3JtVmFsdWUoZm9ybVZhbHVlLCB0aGlzLmZvcm1TdGF0ZT8uKCkpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBmb3JtU3RhdGU/KCk6IEZvcm1SZXN0b3JlU3RhdGU7XG5cbiAgICAvKipcbiAgICAgKiBNYXJrcyB0aGlzIGVsZW1lbnQgYXMgc3VmZmVyaW5nIGZyb20gdGhlIGNvbnN0cmFpbnQgaW5kaWNhdGVkIGJ5IHRoZVxuICAgICAqIGZsYWcgYXJndW1lbnQgYW5kIGFzc29jaWF0ZXMgdGhlIGdpdmVuIG1lc3NhZ2UgdG8gaXQuXG4gICAgICogTm90ZSB0aGF0IG9ubHkgb25lIG1lc3NhZ2UgaXMgZGlzcGxheWVkIGF0IGEgdGltZSBhbmQgY3VzdG9tIG1lc3NhZ2VzIGJ5XG4gICAgICogY29uc3VtZXJzIGFyZSBhbHdheXMgZGlzcGxheWVkIGJlZm9yZSBpbnRlcm5hbCBtZXNzYWdlcyBhbmQgaW50ZXJuYWxcbiAgICAgKiBtZXNzYWdlcyBhcmUgZGlzcGxheWVkIGluIHRoZSBvcmRlciB0aGV5IHdlcmUgYWRkZWQuXG4gICAgICogVG8gc2V0L2RlZmluZSBjdXN0b20gdmFsaWRpdHkgc3RhdGUgZmxhZ3MsIHlvdSBuZWVkIHRvIGV4dGVuZCB0aGVcbiAgICAgKiBWYWxpZGl0eVN0YXRlIHByb3RvdHlwZSAoYW5kIHRoZSBDdXN0b21WYWxpZGl0eVN0YXRlIGludGVyZmFjZSkuXG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqXG4gICAgICogICAvLyBUaGUgdHlwZSBvZiB0aGUgY3VzdG9tIHZhbGlkaXR5IHN0YXRlIGRvZXMgbm90IG5lZWQgdG8gYmUgYm9vbGVhbi5cbiAgICAgKiAgIE9iamVjdC5hc3NpZ24oVmFsaWRpdHlTdGF0ZS5wcm90b3R5cGUsIHtcbiAgICAgKiAgICAgZ2V0IG15RXJyb3IoKTogYm9vbGVhbiB7XG4gICAgICogICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAqICAgICB9LFxuICAgICAqICAgfSk7XG4gICAgICpcbiAgICAgKiAgIGRlY2xhcmUgZ2xvYmFsIHtcbiAgICAgKiAgICAgaW50ZXJmYWNlIEN1c3RvbVZhbGlkaXR5U3RhdGUge1xuICAgICAqICAgICAgIG15RXJyb3I6IGJvb2xlYW47XG4gICAgICogICAgIH1cbiAgICAgKiAgIH1cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgc2V0VmFsaWRpdHlGbGFnPFQgZXh0ZW5kcyBrZXlvZiBWYWxpZGl0eVN0YXRlRmxhZ3M+KFxuICAgICAgZmxhZzogVCxcbiAgICAgIG1lc3NhZ2U6IHN0cmluZyxcbiAgICAgIGZsYWdWYWx1ZT86IFZhbGlkaXR5U3RhdGVGbGFnc1tUXSxcbiAgICApOiB2b2lkIHtcbiAgICAgIGZsYWdWYWx1ZSA/Pz0gdHJ1ZTtcbiAgICAgIGNvbnN0IHZhbGlkaXR5U3RhdGUgPSB0aGlzLl92YWxpZGl0eVN0YXRlcy5nZXQoZmxhZyk7XG4gICAgICBpZiAoXG4gICAgICAgICF2YWxpZGl0eVN0YXRlIHx8XG4gICAgICAgIHZhbGlkaXR5U3RhdGUubWVzc2FnZSAhPT0gbWVzc2FnZSB8fFxuICAgICAgICB2YWxpZGl0eVN0YXRlLmZsYWdWYWx1ZSAhPT0gZmxhZ1ZhbHVlXG4gICAgICApIHtcbiAgICAgICAgdGhpcy5fdmFsaWRpdHlTdGF0ZXMuc2V0KGZsYWcsIHsgZmxhZ1ZhbHVlLCBtZXNzYWdlIH0pO1xuICAgICAgICB0aGlzLl9zZXRJbnRlcm5hbFZhbGlkaXR5KCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLyoqIFJlbW92ZXMgdGhlIHZhbGlkaXR5IHN0YXRlIGZsYWcgZW50cnkgYW5kIHVwZGF0ZXMgdmFsaWRpdHkgc3RhdGUuICovXG4gICAgcHJvdGVjdGVkIHJlbW92ZVZhbGlkaXR5RmxhZzxUIGV4dGVuZHMga2V5b2YgVmFsaWRpdHlTdGF0ZUZsYWdzPihmbGFnOiBUKTogdm9pZCB7XG4gICAgICBpZiAodGhpcy5fdmFsaWRpdHlTdGF0ZXMuaGFzKGZsYWcpKSB7XG4gICAgICAgIHRoaXMuX3ZhbGlkaXR5U3RhdGVzLmRlbGV0ZShmbGFnKTtcbiAgICAgICAgdGhpcy5fc2V0SW50ZXJuYWxWYWxpZGl0eSgpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBUbyBiZSBjYWxsZWQgd2hlbmV2ZXIgdGhlIGN1cnJlbnQgZWxlbWVudCBuZWVkcyB0byBiZSB2YWxpZGF0ZWQuICovXG4gICAgcHJvdGVjdGVkIHZhbGlkYXRlKCk6IHZvaWQge31cblxuICAgIC8qKiBXaGV0aGVyIHZhbGlkYXRpb24gc2hvdWxkIGJlIHJ1biBvbiBhIHByb3BlcnR5IGNoYW5nZSB3aXRoIHRoZSBnaXZlbiBuYW1lLiAqL1xuICAgIHByb3RlY3RlZCBzaG91bGRWYWxpZGF0ZShuYW1lOiBQcm9wZXJ0eUtleSB8IHVuZGVmaW5lZCk6IGJvb2xlYW4ge1xuICAgICAgcmV0dXJuICFuYW1lO1xuICAgIH1cblxuICAgIHByaXZhdGUgX3NldEludGVybmFsVmFsaWRpdHkoKTogdm9pZCB7XG4gICAgICBsZXQgb3V0cHV0TWVzc2FnZSA9IHRoaXMuX3ZhbGlkaXR5U3RhdGVzLmdldCgnY3VzdG9tRXJyb3InKT8ubWVzc2FnZTtcbiAgICAgIGNvbnN0IGZsYWdzOiBWYWxpZGl0eVN0YXRlRmxhZ3MgPSB7fTtcbiAgICAgIHRoaXMuX3ZhbGlkaXR5U3RhdGVzLmZvckVhY2goKHsgZmxhZ1ZhbHVlLCBtZXNzYWdlIH0sIGZsYWcpID0+IHtcbiAgICAgICAgZmxhZ3NbZmxhZ10gPSBmbGFnVmFsdWUgYXMgYW55O1xuICAgICAgICBvdXRwdXRNZXNzYWdlIHx8PSBtZXNzYWdlO1xuICAgICAgfSk7XG5cbiAgICAgIGNvbnN0IGN1c3RvbUZsYWdzID0gT2JqZWN0LmtleXMoVmFsaWRpdHlTdGF0ZS5wcm90b3R5cGUpLmZpbHRlcihcbiAgICAgICAgKGYpID0+ICEoZiBpbiB2YWxpZGl0eUtleXMpICYmIGYgIT09ICd2YWxpZCcsXG4gICAgICApO1xuICAgICAgZm9yIChjb25zdCBmbGFnIG9mIGN1c3RvbUZsYWdzKSB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gZmxhZyBpbiBmbGFncyA/IGZsYWdzW2ZsYWcgYXMga2V5b2YgVmFsaWRpdHlTdGF0ZUZsYWdzXSA6IGZhbHNlO1xuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcy5pbnRlcm5hbHMudmFsaWRpdHksIGZsYWcsIHsgdmFsdWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZSB9KTtcbiAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgLy8gSWYgYW55IGN1c3RvbSBlcnJvcnMgYXJlIHByb3ZpZGVkLCB3ZSBuZWVkIHRvIHNldCBjdXN0b21FcnJvciB0byB0cnVlLFxuICAgICAgICAgIC8vIGFzIHRoaXMgaXMgdGhlIG9ubHkgY3VzdG9tIGVycm9yIHByb3BlcnR5IGJyb3dzZXJzIGFjY2VwdC5cbiAgICAgICAgICBmbGFncy5jdXN0b21FcnJvciA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgdGhpcy5pbnRlcm5hbHMuc2V0VmFsaWRpdHkoZmxhZ3MsIG91dHB1dE1lc3NhZ2UpO1xuXG4gICAgICAvLyBXZWJLaXQgc2VlbXMgdG8gYWx3YXlzIHNldCBjdXN0b21FcnJvciB0byB0cnVlLCBpZiBhbnkgZXJyb3IgaXMgYWN0aXZlLlxuICAgICAgLy8gRHVlIHRvIHRoaXMgd2UgcGF0Y2ggdGhlIGN1c3RvbUVycm9yIHZhbHVlIG1hbnVhbGx5LlxuICAgICAgaWYgKGlzV2Via2l0KSB7XG4gICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLmludGVybmFscy52YWxpZGl0eSwgJ2N1c3RvbUVycm9yJywge1xuICAgICAgICAgIHZhbHVlOiB0aGlzLl92YWxpZGl0eVN0YXRlcy5oYXMoJ2N1c3RvbUVycm9yJykgfHwgISFmbGFncy5jdXN0b21FcnJvcixcbiAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICByZXR1cm4gU2JiRm9ybUFzc29jaWF0ZWRFbGVtZW50IGFzIHVua25vd24gYXMgQWJzdHJhY3RDb25zdHJ1Y3RvcjxTYmJGb3JtQXNzb2NpYXRlZE1peGluVHlwZT4gJiBUO1xufTtcblxuLyoqXG4gKiBBIHZhbHVlIHRvIGJlIHJlc3RvcmVkIGZvciBhIGNvbXBvbmVudCdzIGZvcm0gdmFsdWUuIElmIGEgY29tcG9uZW50J3MgZm9ybVxuICogc3RhdGUgaXMgYSBgRm9ybURhdGFgIG9iamVjdCwgaXRzIGVudHJ5IGxpc3Qgb2YgbmFtZSBhbmQgdmFsdWVzIHdpbGwgYmVcbiAqIHByb3ZpZGVkLlxuICovXG5leHBvcnQgdHlwZSBGb3JtUmVzdG9yZVN0YXRlID0gc3RyaW5nIHwgRm9ybURhdGEgfCBGaWxlO1xuXG4vKipcbiAqIFRoZSByZWFzb24gYSBmb3JtIGNvbXBvbmVudCBpcyBiZWluZyByZXN0b3JlZCBmb3IsIGVpdGhlciBgJ3Jlc3RvcmUnYCBmb3JcbiAqIGJyb3dzZXIgcmVzdG9yYXRpb24gb3IgYCdhdXRvY29tcGxldGUnYCBmb3IgcmVzdG9yaW5nIHVzZXIgdmFsdWVzLlxuICovXG5leHBvcnQgdHlwZSBGb3JtUmVzdG9yZVJlYXNvbiA9ICdyZXN0b3JlJyB8ICdhdXRvY29tcGxldGUnO1xuIl0sIm1hcHBpbmdzIjoiOzs7O0FBa0JBLElBQU0sZUFBOEU7Q0FDbEYsVUFBVTtDQUNWLGFBQWE7Q0FDYixpQkFBaUI7Q0FDakIsZUFBZTtDQUNmLGdCQUFnQjtDQUNoQixjQUFjO0NBQ2QsU0FBUztDQUNULFVBQVU7Q0FDVixjQUFjO0NBQ2QsY0FBYztDQUNmO0FBSUQsSUFBSSxPQUFPLGtCQUFrQixhQUFhO0NBQ3hDLE1BQU0sZ0JBQWdCLE1BQU0sY0FBYTtFQUN2QyxJQUFXLFFBQUs7R0FDZCxPQUFPOztFQUVULGNBQUE7R0FDRSxNQUFNLElBQUksVUFBVSxzQkFBc0I7OztDQUc5QyxPQUFPLFFBQVEsYUFBYSxDQUFDLFNBQVMsQ0FBQyxLQUFLLFdBQzFDLE9BQU8sT0FBTyxjQUFjLFdBQVcsRUFDckMsS0FBSyxPQUFJO0VBQ1AsT0FBTztJQUVWLENBQUMsQ0FDSDtDQUNELFdBQVcsZ0JBQWdCOzs7OztBQTRDN0IsSUFBYSwwQkFDWCxlQUN1RDtDQStUdkQsY0E5VHVDO29CQUM3Qjs7Ozs7O2VBREssaUNBQ0wsWUFBVTs7OzRCQW9CakIsVUFBVSxDQUFB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
@@ -262,4 +262,4 @@ var SbbFormAssociatedRadioButtonMixin = (superClass) => {
262
262
  //#endregion
263
263
  export { SbbFormAssociatedRadioButtonMixin, radioButtonRegistry };
264
264
 
265
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1hc3NvY2lhdGVkLXJhZGlvLWJ1dHRvbi1taXhpbi5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvY29yZS9taXhpbnMvZm9ybS1hc3NvY2lhdGVkLXJhZGlvLWJ1dHRvbi1taXhpbi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc1NlcnZlciwgdHlwZSBQcm9wZXJ0eVZhbHVlcyB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBwcm9wZXJ0eSB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcblxuaW1wb3J0IHsgZ2V0TmV4dEVsZW1lbnRJbmRleCwgaXNBcnJvd0tleVByZXNzZWQgfSBmcm9tICcuLi9hMTF5L2Fycm93LW5hdmlnYXRpb24udHMnO1xuaW1wb3J0IHsgaW50ZXJhY3Rpdml0eUNoZWNrZXIgfSBmcm9tICcuLi9hMTF5L2ludGVyYWN0aXZpdHktY2hlY2tlci50cyc7XG5pbXBvcnQgdHlwZSB7IFNiYkVsZW1lbnQsIFNiYkVsZW1lbnRDb25zdHJ1Y3RvciB9IGZyb20gJy4uL2Jhc2UtZWxlbWVudHMvZWxlbWVudC50cyc7XG5pbXBvcnQgeyBTYmJMYW5ndWFnZUNvbnRyb2xsZXIgfSBmcm9tICcuLi9jb250cm9sbGVycy9sYW5ndWFnZS1jb250cm9sbGVyLnRzJztcbmltcG9ydCB7IGkxOG5TZWxlY3Rpb25SZXF1aXJlZCB9IGZyb20gJy4uL2kxOG4vaTE4bi50cyc7XG5cbmltcG9ydCB0eXBlIHsgQWJzdHJhY3RDb25zdHJ1Y3RvciB9IGZyb20gJy4vY29uc3RydWN0b3IudHMnO1xuaW1wb3J0IHsgU2JiRGlzYWJsZWRNaXhpbiB9IGZyb20gJy4vZGlzYWJsZWQtbWl4aW4udHMnO1xuaW1wb3J0IHtcbiAgdHlwZSBGb3JtUmVzdG9yZVJlYXNvbixcbiAgdHlwZSBGb3JtUmVzdG9yZVN0YXRlLFxuICBTYmJGb3JtQXNzb2NpYXRlZE1peGluLFxufSBmcm9tICcuL2Zvcm0tYXNzb2NpYXRlZC1taXhpbi50cyc7XG5pbXBvcnQgeyBTYmJSZXF1aXJlZE1peGluIH0gZnJvbSAnLi9yZXF1aXJlZC1taXhpbi50cyc7XG5cbi8qKlxuICogQSBzdGF0aWMgcmVnaXN0cnkgdGhhdCBob2xkcyBhIGNvbGxlY3Rpb24gb2YgZ3JvdXBlZCBgcmFkaW8tYnV0dG9uc2AuXG4gKiBHcm91cHMgb2YgcmFkaW8gYnV0dG9ucyBhcmUgbG9jYWwgdG8gdGhlIGZvcm0gdGhleSBiZWxvbmcgKG9yIHRoZSBgcmVuZGVyUm9vdGAgaWYgdGhleSdyZSBub3QgcGFydCBvZiBhbnkgZm9ybSlcbiAqIE11bHRpcGxlIGdyb3VwcyBvZiByYWRpbyB3aXRoIHRoZSBzYW1lIG5hbWUgY2FuIGNvZXhpc3QgKGFzIGxvbmcgYXMgdGhleSBiZWxvbmcgdG8gYSBkaWZmZXJlbnQgZm9ybSAvIHJlbmRlclJvb3QpXG4gKiBJdCBpcyBtYWlubHkgdXNlZCB0byBzdXBwb3J0IHRoZSBzdGFuZGFsb25lIGdyb3VwcyBvZiByYWRpb3MuXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGNvbnN0IHJhZGlvQnV0dG9uUmVnaXN0cnkgPSBuZXcgV2Vha01hcDxcbiAgTm9kZSxcbiAgTWFwPHN0cmluZywgU2V0PFNiYkZvcm1Bc3NvY2lhdGVkUmFkaW9CdXR0b25NaXhpblR5cGU+PlxuPigpO1xuXG5leHBvcnQgZGVjbGFyZSBhYnN0cmFjdCBjbGFzcyBTYmJGb3JtQXNzb2NpYXRlZFJhZGlvQnV0dG9uTWl4aW5UeXBlIGV4dGVuZHMgU2JiRGlzYWJsZWRNaXhpbihcbiAgU2JiUmVxdWlyZWRNaXhpbihTYmJGb3JtQXNzb2NpYXRlZE1peGluKFNiYkVsZW1lbnQpKSxcbikge1xuICBwdWJsaWMgYWNjZXNzb3IgY2hlY2tlZDogYm9vbGVhbjtcblxuICBwcm90ZWN0ZWQgYXNzb2NpYXRlZFJhZGlvQnV0dG9ucz86IFNldDxTYmJGb3JtQXNzb2NpYXRlZFJhZGlvQnV0dG9uTWl4aW5UeXBlPjtcblxuICBwdWJsaWMgZm9ybVJlc2V0Q2FsbGJhY2soKTogdm9pZDtcbiAgcHVibGljIGZvcm1TdGF0ZVJlc3RvcmVDYWxsYmFjayhzdGF0ZTogRm9ybVJlc3RvcmVTdGF0ZSB8IG51bGwsIHJlYXNvbjogRm9ybVJlc3RvcmVSZWFzb24pOiB2b2lkO1xuXG4gIHByb3RlY3RlZCB1cGRhdGVGb3JtVmFsdWUoKTogdm9pZDtcbiAgcHJvdGVjdGVkIHVwZGF0ZUZvY3VzYWJsZVJhZGlvcygpOiB2b2lkO1xuICBwcm90ZWN0ZWQgZW1pdENoYW5nZUV2ZW50cygpOiB2b2lkO1xuICBwcm90ZWN0ZWQgbmF2aWdhdGVCeUtleWJvYXJkKHJhZGlvOiBTYmJGb3JtQXNzb2NpYXRlZFJhZGlvQnV0dG9uTWl4aW5UeXBlKTogUHJvbWlzZTx2b2lkPjtcbn1cblxuLyoqXG4gKiBUaGUgU2JiRm9ybUFzc29jaWF0ZWRSYWRpb0J1dHRvbk1peGluIGVuYWJsZXMgbmF0aXZlIGZvcm0gc3VwcG9ydCBmb3IgcmFkaW8gY29udHJvbHMuXG4gKi9cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbmV4cG9ydCBjb25zdCBTYmJGb3JtQXNzb2NpYXRlZFJhZGlvQnV0dG9uTWl4aW4gPSA8XG4gIFQgZXh0ZW5kcyBBYnN0cmFjdENvbnN0cnVjdG9yPFNiYkVsZW1lbnQ+ICYgU2JiRWxlbWVudENvbnN0cnVjdG9yLFxuPihcbiAgc3VwZXJDbGFzczogVCxcbik6IEFic3RyYWN0Q29uc3RydWN0b3I8U2JiRm9ybUFzc29jaWF0ZWRSYWRpb0J1dHRvbk1peGluVHlwZT4gJiBUID0+IHtcbiAgYWJzdHJhY3QgY2xhc3MgU2JiRm9ybUFzc29jaWF0ZWRSYWRpb0J1dHRvbkVsZW1lbnRcbiAgICBleHRlbmRzIFNiYkRpc2FibGVkTWl4aW4oU2JiUmVxdWlyZWRNaXhpbihTYmJGb3JtQXNzb2NpYXRlZE1peGluKHN1cGVyQ2xhc3MpKSlcbiAgICBpbXBsZW1lbnRzIFBhcnRpYWw8U2JiRm9ybUFzc29jaWF0ZWRSYWRpb0J1dHRvbk1peGluVHlwZT5cbiAge1xuICAgIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgcmVhZG9ubHkgcm9sZSA9ICdyYWRpbyc7XG5cbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHRoZSByYWRpbyBidXR0b24gaXMgY2hlY2tlZC5cbiAgICAgKi9cbiAgICBAcHJvcGVydHkoeyB0eXBlOiBCb29sZWFuIH0pXG4gICAgcHVibGljIHNldCBjaGVja2VkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICB0aGlzLl9jaGVja2VkID0gISF2YWx1ZTtcblxuICAgICAgdGhpcy50b2dnbGVTdGF0ZSgnY2hlY2tlZCcsIHRoaXMuY2hlY2tlZCk7XG4gICAgICB0aGlzLmludGVybmFscy5hcmlhQ2hlY2tlZCA9IHRoaXMuY2hlY2tlZC50b1N0cmluZygpO1xuICAgICAgdGhpcy51cGRhdGVGb3JtVmFsdWUoKTtcbiAgICAgIHRoaXMuX3N5bmNocm9uaXplR3JvdXBTdGF0ZSgpO1xuICAgIH1cbiAgICBwdWJsaWMgZ2V0IGNoZWNrZWQoKTogYm9vbGVhbiB7XG4gICAgICByZXR1cm4gdGhpcy5fY2hlY2tlZDtcbiAgICB9XG4gICAgcHJpdmF0ZSBfY2hlY2tlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgQHByb3BlcnR5KClcbiAgICBwdWJsaWMgb3ZlcnJpZGUgc2V0IG5hbWUodmFsdWU6IHN0cmluZykge1xuICAgICAgc3VwZXIubmFtZSA9IHZhbHVlO1xuXG4gICAgICB0aGlzLl9kaXNjb25uZWN0RnJvbVJlZ2lzdHJ5KCk7XG4gICAgICB0aGlzLl9jb25uZWN0VG9SZWdpc3RyeSgpO1xuICAgICAgdGhpcy5fc3luY2hyb25pemVHcm91cFN0YXRlKCk7XG4gICAgfVxuICAgIHB1YmxpYyBvdmVycmlkZSBnZXQgbmFtZSgpOiBzdHJpbmcge1xuICAgICAgcmV0dXJuIHN1cGVyLm5hbWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRm9ybSB0eXBlIG9mIGVsZW1lbnQuXG4gICAgICogQGRlZmF1bHQgJ3JhZGlvJ1xuICAgICAqL1xuICAgIHB1YmxpYyBvdmVycmlkZSBnZXQgdHlwZSgpOiBzdHJpbmcge1xuICAgICAgcmV0dXJuICdyYWRpbyc7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0IG9mIHJhZGlvIGJ1dHRvbnMgdGhhdCBiZWxvbmdzIHRvIHRoZSBzYW1lIGdyb3VwIG9mIGB0aGlzYC5cbiAgICAgKiBBc3N1bWUgdGhlbSBvcmRlcmVkIGluIERPTSBvcmRlclxuICAgICAqL1xuICAgIHByb3RlY3RlZCBhc3NvY2lhdGVkUmFkaW9CdXR0b25zPzogU2V0PFNiYkZvcm1Bc3NvY2lhdGVkUmFkaW9CdXR0b25FbGVtZW50PjtcbiAgICBwcml2YXRlIF9yYWRpb0J1dHRvbkdyb3Vwc01hcD86IE1hcDxzdHJpbmcsIFNldDxTYmJGb3JtQXNzb2NpYXRlZFJhZGlvQnV0dG9uTWl4aW5UeXBlPj47XG4gICAgcHJpdmF0ZSBfbGFuZ3VhZ2VDb250cm9sbGVyID0gbmV3IFNiYkxhbmd1YWdlQ29udHJvbGxlcih0aGlzKTtcblxuICAgIHByb3RlY3RlZCBjb25zdHJ1Y3RvcigpIHtcbiAgICAgIHN1cGVyKCk7XG4gICAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/Ligna2V5ZG93bicsIChlKSA9PiB0aGlzLl9oYW5kbGVBcnJvd0tleURvd24oZSkpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvdmVycmlkZSBjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICAgIHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgICB0aGlzLl9jb25uZWN0VG9SZWdpc3RyeSgpO1xuICAgICAgdGhpcy5fc3luY2hyb25pemVHcm91cFN0YXRlKCk7XG4gICAgfVxuXG4gICAgcHVibGljIG92ZXJyaWRlIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgICAgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKTtcbiAgICAgIHRoaXMuX2Rpc2Nvbm5lY3RGcm9tUmVnaXN0cnkoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBJcyBjYWxsZWQgd2hlbmV2ZXIgdGhlIGZvcm0gaXMgYmVpbmcgcmVzZXQuXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgcHVibGljIG92ZXJyaWRlIGZvcm1SZXNldENhbGxiYWNrKCk6IHZvaWQge1xuICAgICAgdGhpcy5jaGVja2VkID0gdGhpcy5oYXNBdHRyaWJ1dGUoJ2NoZWNrZWQnKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiAgQ2FsbGVkIHdoZW4gdGhlIGJyb3dzZXIgaXMgdHJ5aW5nIHRvIHJlc3RvcmUgZWxlbWVudOKAmXMgc3RhdGUgdG8gc3RhdGUgaW4gd2hpY2ggY2FzZVxuICAgICAqICByZWFzb24gaXMgXCJyZXN0b3JlXCIsIG9yIHdoZW4gdGhlIGJyb3dzZXIgaXMgdHJ5aW5nIHRvIGZ1bGZpbGwgYXV0b2ZpbGwgb24gYmVoYWxmIG9mXG4gICAgICogIHVzZXIgaW4gd2hpY2ggY2FzZSByZWFzb24gaXMgXCJhdXRvY29tcGxldGVcIi5cbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBwdWJsaWMgb3ZlcnJpZGUgZm9ybVN0YXRlUmVzdG9yZUNhbGxiYWNrKFxuICAgICAgc3RhdGU6IEZvcm1SZXN0b3JlU3RhdGUgfCBudWxsLFxuICAgICAgX3JlYXNvbjogRm9ybVJlc3RvcmVSZWFzb24sXG4gICAgKTogdm9pZCB7XG4gICAgICBpZiAodHlwZW9mIHN0YXRlID09PSAnc3RyaW5nJyB8fCBzdGF0ZSA9PSBudWxsKSB7XG4gICAgICAgIHRoaXMuY2hlY2tlZCA9IHN0YXRlID09PSB0aGlzLnZhbHVlO1xuICAgICAgfSBlbHNlIGlmIChzdGF0ZSBpbnN0YW5jZW9mIEZvcm1EYXRhKSB7XG4gICAgICAgIHRoaXMuX3JlYWRGb3JtRGF0YShzdGF0ZSkudGhlbigoZGF0YSkgPT4ge1xuICAgICAgICAgIHRoaXMuY2hlY2tlZCA9IGRhdGEgPT09IHRoaXMudmFsdWU7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgYXN5bmMgX3JlYWRGb3JtRGF0YShmb3JtRGF0YTogRm9ybURhdGEpOiBQcm9taXNlPHVua25vd24+IHtcbiAgICAgIGNvbnN0IGRhdGEgPSBmb3JtRGF0YS5nZXQodGhpcy5uYW1lKTtcbiAgICAgIHJldHVybiBkYXRhIGluc3RhbmNlb2YgQmxvYiA/IEpTT04ucGFyc2UoYXdhaXQgZGF0YS50ZXh0KCkpIDogZGF0YTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgd2lsbFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXM8dGhpcz4pOiB2b2lkIHtcbiAgICAgIHN1cGVyLndpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXMpO1xuXG4gICAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdkaXNhYmxlZCcpKSB7XG4gICAgICAgIHRoaXMudXBkYXRlRm9jdXNhYmxlUmFkaW9zKCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIGZpcnN0VXBkYXRlZChjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXM8dGhpcz4pOiB2b2lkIHtcbiAgICAgIHN1cGVyLmZpcnN0VXBkYXRlZChjaGFuZ2VkUHJvcGVydGllcyk7XG4gICAgICB0aGlzLnVwZGF0ZUZvY3VzYWJsZVJhZGlvcygpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENhbGxlZCBvbiBgdmFsdWVgIGNoYW5nZVxuICAgICAqIElmICdjaGVja2VkJywgdXBkYXRlIHRoZSB2YWx1ZS4gT3RoZXJ3aXNlLCBkbyBub3RoaW5nLlxuICAgICAqL1xuICAgIHByb3RlY3RlZCBvdmVycmlkZSB1cGRhdGVGb3JtVmFsdWUoKTogdm9pZCB7XG4gICAgICBpZiAodGhpcy5jaGVja2VkKSB7XG4gICAgICAgIHN1cGVyLnVwZGF0ZUZvcm1WYWx1ZSgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5pbnRlcm5hbHMuc2V0Rm9ybVZhbHVlKG51bGwpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBvdmVycmlkZSBzaG91bGRWYWxpZGF0ZShuYW1lOiBQcm9wZXJ0eUtleSB8IHVuZGVmaW5lZCk6IGJvb2xlYW4ge1xuICAgICAgcmV0dXJuIHN1cGVyLnNob3VsZFZhbGlkYXRlKG5hbWUpIHx8IG5hbWUgPT09ICdjaGVja2VkJyB8fCBuYW1lID09PSAncmVxdWlyZWQnO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldHMgdGhlIHZhbGlkaXR5IG9mIGFsbCBhc3NvY2lhdGVkIHJhZGlvIGJ1dHRvbnMuXG4gICAgICogSWYgYW55IHJhZGlvIGJ1dHRvbiBpcyByZXF1aXJlZCwgYWxsIGFzc29jaWF0ZWQgYXJlIHJlcXVpcmVkIGFzIHdlbGwuXG4gICAgICovXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIHZhbGlkYXRlKCk6IHZvaWQge1xuICAgICAgc3VwZXIudmFsaWRhdGUoKTtcbiAgICAgIGlmICghdGhpcy5hc3NvY2lhdGVkUmFkaW9CdXR0b25zKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgbGV0IHJlcXVpcmVkID0gZmFsc2U7XG4gICAgICBsZXQgY2hlY2tlZCA9IGZhbHNlO1xuICAgICAgZm9yIChjb25zdCByYWRpbyBvZiB0aGlzLmFzc29jaWF0ZWRSYWRpb0J1dHRvbnMpIHtcbiAgICAgICAgcmVxdWlyZWQgfHw9IHJhZGlvLnJlcXVpcmVkO1xuICAgICAgICBjaGVja2VkIHx8PSByYWRpby5jaGVja2VkO1xuICAgICAgfVxuXG4gICAgICBpZiAocmVxdWlyZWQgJiYgIWNoZWNrZWQpIHtcbiAgICAgICAgdGhpcy5hc3NvY2lhdGVkUmFkaW9CdXR0b25zLmZvckVhY2goKHIpID0+XG4gICAgICAgICAgci5zZXRWYWxpZGl0eUZsYWcoXG4gICAgICAgICAgICAndmFsdWVNaXNzaW5nJyxcbiAgICAgICAgICAgIGkxOG5TZWxlY3Rpb25SZXF1aXJlZFt0aGlzLl9sYW5ndWFnZUNvbnRyb2xsZXIuY3VycmVudF0sXG4gICAgICAgICAgKSxcbiAgICAgICAgKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuYXNzb2NpYXRlZFJhZGlvQnV0dG9ucy5mb3JFYWNoKChyKSA9PiByLnJlbW92ZVZhbGlkaXR5RmxhZygndmFsdWVNaXNzaW5nJykpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE9ubHkgYSBzaW5nbGUgcmFkaW8gc2hvdWxkIGJlIGZvY3VzYWJsZSBpbiB0aGUgZ3JvdXAuIERlZmluZWQgYXM6XG4gICAgICogLSB0aGUgY2hlY2tlZCByYWRpbztcbiAgICAgKiAtIHRoZSBmaXJzdCBub24tZGlzYWJsZWQgcmFkaW8gaW4gRE9NIG9yZGVyO1xuICAgICAqL1xuICAgIHByb3RlY3RlZCB1cGRhdGVGb2N1c2FibGVSYWRpb3MoKTogdm9pZCB7XG4gICAgICBpZiAoIXRoaXMuaGFzVXBkYXRlZCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBjb25zdCByYWRpb3MgPSB0aGlzLl9pbnRlcmFjdGFibGVHcm91cGVkUmFkaW9zKCk7XG4gICAgICBjb25zdCBjaGVja2VkSW5kZXggPSByYWRpb3MuZmluZEluZGV4KChyKSA9PiByLmNoZWNrZWQgJiYgIXIuZGlzYWJsZWQgJiYgIXIuZm9ybURpc2FibGVkKTtcbiAgICAgIGNvbnN0IGZvY3VzYWJsZUluZGV4ID1cbiAgICAgICAgY2hlY2tlZEluZGV4ICE9PSAtMVxuICAgICAgICAgID8gY2hlY2tlZEluZGV4XG4gICAgICAgICAgOiByYWRpb3MuZmluZEluZGV4KChyKSA9PiAhci5kaXNhYmxlZCAmJiAhci5mb3JtRGlzYWJsZWQpOyAvLyBHZXQgdGhlIGZpcnN0IGZvY3VzYWJsZSByYWRpb1xuXG4gICAgICBpZiAoZm9jdXNhYmxlSW5kZXggIT09IC0xKSB7XG4gICAgICAgIHJhZGlvc1tmb2N1c2FibGVJbmRleF0udGFiSW5kZXggPSAwO1xuICAgICAgICByYWRpb3Muc3BsaWNlKGZvY3VzYWJsZUluZGV4LCAxKTtcbiAgICAgIH1cblxuICAgICAgLy8gUmVzZXQgdGFiSW5kZXggb24gb3RoZXIgcmFkaW9zXG4gICAgICByYWRpb3MuZm9yRWFjaCgocikgPT4gci5yZW1vdmVBdHRyaWJ1dGUoJ3RhYmluZGV4JykpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBhc3luYyBuYXZpZ2F0ZUJ5S2V5Ym9hcmQobmV4dDogU2JiRm9ybUFzc29jaWF0ZWRSYWRpb0J1dHRvbkVsZW1lbnQpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgIG5leHQuY2hlY2tlZCA9IHRydWU7XG4gICAgICB0aGlzLmVtaXRDaGFuZ2VFdmVudHMoKTtcblxuICAgICAgYXdhaXQgbmV4dC51cGRhdGVDb21wbGV0ZTtcbiAgICAgIG5leHQuZm9jdXMoKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZW1pdENoYW5nZUV2ZW50cygpOiB2b2lkIHtcbiAgICAgIC8vIE1hbnVhbGx5IGRpc3BhdGNoIGV2ZW50cyB0byBzaW11bGF0ZSBhIHVzZXIgaW50ZXJhY3Rpb25cbiAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudChcbiAgICAgICAgbmV3IElucHV0RXZlbnQoJ2lucHV0JywgeyBidWJibGVzOiB0cnVlLCBjYW5jZWxhYmxlOiB0cnVlLCBjb21wb3NlZDogdHJ1ZSB9KSxcbiAgICAgICk7XG4gICAgICB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCdjaGFuZ2UnLCB7IGJ1YmJsZXM6IHRydWUgfSkpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX3N5bmNocm9uaXplR3JvdXBTdGF0ZSgpOiB2b2lkIHtcbiAgICAgIGlmICh0aGlzLmNoZWNrZWQpIHtcbiAgICAgICAgdGhpcy5fZGVzZWxlY3RHcm91cGVkUmFkaW9zKCk7XG4gICAgICB9XG4gICAgICB0aGlzLnVwZGF0ZUZvY3VzYWJsZVJhZGlvcygpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFkZCBgdGhpc2AgdG8gdGhlIHJhZGlvQnV0dG9uIHJlZ2lzdHJ5XG4gICAgICovXG4gICAgcHJpdmF0ZSBfY29ubmVjdFRvUmVnaXN0cnkoKTogdm9pZCB7XG4gICAgICBpZiAoIXRoaXMubmFtZSB8fCBpc1NlcnZlcikge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBjb25zdCByb290ID0gdGhpcy5mb3JtID8/IHRoaXMuZ2V0Um9vdE5vZGUoKTtcbiAgICAgIHRoaXMuX3JhZGlvQnV0dG9uR3JvdXBzTWFwID0gcmFkaW9CdXR0b25SZWdpc3RyeS5nZXQocm9vdCk7XG5cbiAgICAgIC8vIEluaXRpYWxpemUgdGhlICdyb290JyBtYXAgZW50cnlcbiAgICAgIGlmICghdGhpcy5fcmFkaW9CdXR0b25Hcm91cHNNYXApIHtcbiAgICAgICAgdGhpcy5fcmFkaW9CdXR0b25Hcm91cHNNYXAgPSBuZXcgTWFwKCk7XG4gICAgICAgIHJhZGlvQnV0dG9uUmVnaXN0cnkuc2V0KHJvb3QsIHRoaXMuX3JhZGlvQnV0dG9uR3JvdXBzTWFwKTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5hc3NvY2lhdGVkUmFkaW9CdXR0b25zID0gdGhpcy5fcmFkaW9CdXR0b25Hcm91cHNNYXAuZ2V0KFxuICAgICAgICB0aGlzLm5hbWUsXG4gICAgICApIGFzIHVua25vd24gYXMgU2V0PFNiYkZvcm1Bc3NvY2lhdGVkUmFkaW9CdXR0b25FbGVtZW50PjtcblxuICAgICAgLy8gSW5pdGlhbGl6ZSB0aGUgZ3JvdXAgc2V0XG4gICAgICBpZiAoIXRoaXMuYXNzb2NpYXRlZFJhZGlvQnV0dG9ucykge1xuICAgICAgICB0aGlzLmFzc29jaWF0ZWRSYWRpb0J1dHRvbnMgPSBuZXcgU2V0KCk7XG4gICAgICAgIHRoaXMuX3JhZGlvQnV0dG9uR3JvdXBzTWFwLnNldChcbiAgICAgICAgICB0aGlzLm5hbWUsXG4gICAgICAgICAgdGhpcy5hc3NvY2lhdGVkUmFkaW9CdXR0b25zIGFzIHVua25vd24gYXMgU2V0PFNiYkZvcm1Bc3NvY2lhdGVkUmFkaW9CdXR0b25NaXhpblR5cGU+LFxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICAvLyBJbnNlcnQgdGhlIG5ldyByYWRpbyBpbnRvIHRoZSBzZXQgYW5kIHNvcnQgZm9sbG93aW5nIHRoZSBET00gb3JkZXIuXG4gICAgICAvLyBTaW5jZSB0aGUgb3JkZXIgb2YgYSAnU2V0JyBpcyB0aGUgaW5zZXJ0IG9yZGVyLCB3ZSBoYXZlIHRvIGVtcHR5IGl0IGFuZCByZS1pbnNlcnQgcmFkaW9zIGluIG9yZGVyXG4gICAgICBjb25zdCBlbnRyaWVzID0gQXJyYXkuZnJvbSh0aGlzLmFzc29jaWF0ZWRSYWRpb0J1dHRvbnMpO1xuICAgICAgdGhpcy5hc3NvY2lhdGVkUmFkaW9CdXR0b25zLmNsZWFyKCk7XG5cbiAgICAgIC8vIEZpbmQgYHRoaXNgIHBvc2l0aW9uIGFuZCBpbnNlcnQgaXRcbiAgICAgIGNvbnN0IGluZGV4ID0gZW50cmllcy5maW5kSW5kZXgoXG4gICAgICAgIChyKSA9PiB0aGlzLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKHIpICYgTm9kZS5ET0NVTUVOVF9QT1NJVElPTl9GT0xMT1dJTkcsXG4gICAgICApO1xuICAgICAgaWYgKGluZGV4ICE9PSAtMSkge1xuICAgICAgICBlbnRyaWVzLnNwbGljZShpbmRleCwgMCwgdGhpcyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBlbnRyaWVzLnB1c2godGhpcyk7XG4gICAgICB9XG5cbiAgICAgIC8vIFJlcG9wdWxhdGUgdGhlIFNldFxuICAgICAgZW50cmllcy5mb3JFYWNoKChyKSA9PiB0aGlzLmFzc29jaWF0ZWRSYWRpb0J1dHRvbnMhLmFkZChyKSk7XG5cbiAgICAgIHRoaXMudmFsaWRhdGUoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZW1vdmUgYHRoaXNgIGZyb20gdGhlIHJhZGlvQnV0dG9uIHJlZ2lzdHJ5IGFuZCwgaWYgdGhlIGdyb3VwIGlzIGVtcHR5LCBkZWxldGUgdGhlIGVudHJ5IGZyb20gdGhlIGdyb3VwcyBNYXBcbiAgICAgKi9cbiAgICBwcml2YXRlIF9kaXNjb25uZWN0RnJvbVJlZ2lzdHJ5KCk6IHZvaWQge1xuICAgICAgdGhpcy5hc3NvY2lhdGVkUmFkaW9CdXR0b25zPy5kZWxldGUodGhpcyk7XG5cbiAgICAgIGlmICh0aGlzLmFzc29jaWF0ZWRSYWRpb0J1dHRvbnM/LnNpemUgPT09IDApIHtcbiAgICAgICAgdGhpcy5fcmFkaW9CdXR0b25Hcm91cHNNYXA/LmRlbGV0ZSh0aGlzLm5hbWUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy52YWxpZGF0ZSgpO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmFzc29jaWF0ZWRSYWRpb0J1dHRvbnMgPSB1bmRlZmluZWQ7XG4gICAgICB0aGlzLl9yYWRpb0J1dHRvbkdyb3Vwc01hcCA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm4gYSBsaXN0IG9mICdpbnRlcmFjdGFibGUnIGdyb3VwZWQgcmFkaW9zLCBvcmRlcmVkIGluIERPTSBvcmRlclxuICAgICAqL1xuICAgIHByaXZhdGUgX2ludGVyYWN0YWJsZUdyb3VwZWRSYWRpb3MoKTogU2JiRm9ybUFzc29jaWF0ZWRSYWRpb0J1dHRvbkVsZW1lbnRbXSB7XG4gICAgICByZXR1cm4gQXJyYXkuZnJvbSh0aGlzLmFzc29jaWF0ZWRSYWRpb0J1dHRvbnMgPz8gW10pLmZpbHRlcigoZWwpID0+XG4gICAgICAgIGludGVyYWN0aXZpdHlDaGVja2VyLmlzVmlzaWJsZShlbCksXG4gICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERlc2VsZWN0IG90aGVyIHJhZGlvIG9mIHRoZSBzYW1lIGdyb3VwXG4gICAgICovXG4gICAgcHJpdmF0ZSBfZGVzZWxlY3RHcm91cGVkUmFkaW9zKCk6IHZvaWQge1xuICAgICAgQXJyYXkuZnJvbSh0aGlzLmFzc29jaWF0ZWRSYWRpb0J1dHRvbnMgPz8gW10pXG4gICAgICAgIC5maWx0ZXIoKHIpID0+IHIgIT09IHRoaXMpXG4gICAgICAgIC5mb3JFYWNoKChyKSA9PiAoci5jaGVja2VkID0gZmFsc2UpKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFzeW5jIF9oYW5kbGVBcnJvd0tleURvd24oZXZ0OiBLZXlib2FyZEV2ZW50KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICBpZiAoIWlzQXJyb3dLZXlQcmVzc2VkKGV2dCkpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICAgIGNvbnN0IGVuYWJsZWRSYWRpb3MgPSB0aGlzLl9pbnRlcmFjdGFibGVHcm91cGVkUmFkaW9zKCkuZmlsdGVyKFxuICAgICAgICAocikgPT4gIXIuZGlzYWJsZWQgJiYgIXIuZm9ybURpc2FibGVkLFxuICAgICAgKTtcbiAgICAgIGNvbnN0IGN1cnJlbnQ6IG51bWJlciA9IGVuYWJsZWRSYWRpb3MuaW5kZXhPZih0aGlzKTtcbiAgICAgIGNvbnN0IG5leHRJbmRleDogbnVtYmVyID0gZ2V0TmV4dEVsZW1lbnRJbmRleChldnQsIGN1cnJlbnQsIGVuYWJsZWRSYWRpb3MubGVuZ3RoKTtcblxuICAgICAgYXdhaXQgdGhpcy5uYXZpZ2F0ZUJ5S2V5Ym9hcmQoZW5hYmxlZFJhZGlvc1tuZXh0SW5kZXhdKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gU2JiRm9ybUFzc29jaWF0ZWRSYWRpb0J1dHRvbkVsZW1lbnQgYXMgdW5rbm93biBhcyBBYnN0cmFjdENvbnN0cnVjdG9yPFNiYkZvcm1Bc3NvY2lhdGVkUmFkaW9CdXR0b25NaXhpblR5cGU+ICZcbiAgICBUO1xufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBeUJBLElBQWEsc0NBQXNCLElBQUksU0FHcEM7Ozs7QUFzQkgsSUFBYSxxQ0FHWCxlQUNrRTtBQWtUbEUsZUFqVGtEO29CQUN4QyxpQkFBaUIsaUJBQWlCLHVCQUF1QixXQUFXLENBQUMsQ0FBQzs7OztlQURqRSw0Q0FDTCxZQUFzRTs7OytCQVE3RSxTQUFTLEVBQUUsTUFBTSxTQUFTLENBQUMsQ0FBQTs0QkFjM0IsVUFBVSxDQUFBO0FBYlgsaUJB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
265
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1hc3NvY2lhdGVkLXJhZGlvLWJ1dHRvbi1taXhpbi5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvY29yZS9taXhpbnMvZm9ybS1hc3NvY2lhdGVkLXJhZGlvLWJ1dHRvbi1taXhpbi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc1NlcnZlciwgdHlwZSBQcm9wZXJ0eVZhbHVlcyB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBwcm9wZXJ0eSB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcblxuaW1wb3J0IHsgZ2V0TmV4dEVsZW1lbnRJbmRleCwgaXNBcnJvd0tleVByZXNzZWQgfSBmcm9tICcuLi9hMTF5L2Fycm93LW5hdmlnYXRpb24udHMnO1xuaW1wb3J0IHsgaW50ZXJhY3Rpdml0eUNoZWNrZXIgfSBmcm9tICcuLi9hMTF5L2ludGVyYWN0aXZpdHktY2hlY2tlci50cyc7XG5pbXBvcnQgdHlwZSB7IFNiYkVsZW1lbnQsIFNiYkVsZW1lbnRDb25zdHJ1Y3RvciB9IGZyb20gJy4uL2Jhc2UtZWxlbWVudHMvZWxlbWVudC50cyc7XG5pbXBvcnQgeyBTYmJMYW5ndWFnZUNvbnRyb2xsZXIgfSBmcm9tICcuLi9jb250cm9sbGVycy9sYW5ndWFnZS1jb250cm9sbGVyLnRzJztcbmltcG9ydCB7IGkxOG5TZWxlY3Rpb25SZXF1aXJlZCB9IGZyb20gJy4uL2kxOG4vaTE4bi50cyc7XG5cbmltcG9ydCB0eXBlIHsgQWJzdHJhY3RDb25zdHJ1Y3RvciB9IGZyb20gJy4vY29uc3RydWN0b3IudHMnO1xuaW1wb3J0IHsgU2JiRGlzYWJsZWRNaXhpbiB9IGZyb20gJy4vZGlzYWJsZWQtbWl4aW4udHMnO1xuaW1wb3J0IHtcbiAgdHlwZSBGb3JtUmVzdG9yZVJlYXNvbixcbiAgdHlwZSBGb3JtUmVzdG9yZVN0YXRlLFxuICBTYmJGb3JtQXNzb2NpYXRlZE1peGluLFxufSBmcm9tICcuL2Zvcm0tYXNzb2NpYXRlZC1taXhpbi50cyc7XG5pbXBvcnQgeyBTYmJSZXF1aXJlZE1peGluIH0gZnJvbSAnLi9yZXF1aXJlZC1taXhpbi50cyc7XG5cbi8qKlxuICogQSBzdGF0aWMgcmVnaXN0cnkgdGhhdCBob2xkcyBhIGNvbGxlY3Rpb24gb2YgZ3JvdXBlZCBgcmFkaW8tYnV0dG9uc2AuXG4gKiBHcm91cHMgb2YgcmFkaW8gYnV0dG9ucyBhcmUgbG9jYWwgdG8gdGhlIGZvcm0gdGhleSBiZWxvbmcgKG9yIHRoZSBgcmVuZGVyUm9vdGAgaWYgdGhleSdyZSBub3QgcGFydCBvZiBhbnkgZm9ybSlcbiAqIE11bHRpcGxlIGdyb3VwcyBvZiByYWRpbyB3aXRoIHRoZSBzYW1lIG5hbWUgY2FuIGNvZXhpc3QgKGFzIGxvbmcgYXMgdGhleSBiZWxvbmcgdG8gYSBkaWZmZXJlbnQgZm9ybSAvIHJlbmRlclJvb3QpXG4gKiBJdCBpcyBtYWlubHkgdXNlZCB0byBzdXBwb3J0IHRoZSBzdGFuZGFsb25lIGdyb3VwcyBvZiByYWRpb3MuXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGNvbnN0IHJhZGlvQnV0dG9uUmVnaXN0cnkgPSBuZXcgV2Vha01hcDxcbiAgTm9kZSxcbiAgTWFwPHN0cmluZywgU2V0PFNiYkZvcm1Bc3NvY2lhdGVkUmFkaW9CdXR0b25NaXhpblR5cGU+PlxuPigpO1xuXG5leHBvcnQgZGVjbGFyZSBhYnN0cmFjdCBjbGFzcyBTYmJGb3JtQXNzb2NpYXRlZFJhZGlvQnV0dG9uTWl4aW5UeXBlIGV4dGVuZHMgU2JiRGlzYWJsZWRNaXhpbihcbiAgU2JiUmVxdWlyZWRNaXhpbihTYmJGb3JtQXNzb2NpYXRlZE1peGluKFNiYkVsZW1lbnQpKSxcbikge1xuICBwdWJsaWMgYWNjZXNzb3IgY2hlY2tlZDogYm9vbGVhbjtcblxuICBwcm90ZWN0ZWQgYXNzb2NpYXRlZFJhZGlvQnV0dG9ucz86IFNldDxTYmJGb3JtQXNzb2NpYXRlZFJhZGlvQnV0dG9uTWl4aW5UeXBlPjtcblxuICBwdWJsaWMgZm9ybVJlc2V0Q2FsbGJhY2soKTogdm9pZDtcbiAgcHVibGljIGZvcm1TdGF0ZVJlc3RvcmVDYWxsYmFjayhzdGF0ZTogRm9ybVJlc3RvcmVTdGF0ZSB8IG51bGwsIHJlYXNvbjogRm9ybVJlc3RvcmVSZWFzb24pOiB2b2lkO1xuXG4gIHByb3RlY3RlZCB1cGRhdGVGb3JtVmFsdWUoKTogdm9pZDtcbiAgcHJvdGVjdGVkIHVwZGF0ZUZvY3VzYWJsZVJhZGlvcygpOiB2b2lkO1xuICBwcm90ZWN0ZWQgZW1pdENoYW5nZUV2ZW50cygpOiB2b2lkO1xuICBwcm90ZWN0ZWQgbmF2aWdhdGVCeUtleWJvYXJkKHJhZGlvOiBTYmJGb3JtQXNzb2NpYXRlZFJhZGlvQnV0dG9uTWl4aW5UeXBlKTogUHJvbWlzZTx2b2lkPjtcbn1cblxuLyoqXG4gKiBUaGUgU2JiRm9ybUFzc29jaWF0ZWRSYWRpb0J1dHRvbk1peGluIGVuYWJsZXMgbmF0aXZlIGZvcm0gc3VwcG9ydCBmb3IgcmFkaW8gY29udHJvbHMuXG4gKi9cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbmV4cG9ydCBjb25zdCBTYmJGb3JtQXNzb2NpYXRlZFJhZGlvQnV0dG9uTWl4aW4gPSA8XG4gIFQgZXh0ZW5kcyBBYnN0cmFjdENvbnN0cnVjdG9yPFNiYkVsZW1lbnQ+ICYgU2JiRWxlbWVudENvbnN0cnVjdG9yLFxuPihcbiAgc3VwZXJDbGFzczogVCxcbik6IEFic3RyYWN0Q29uc3RydWN0b3I8U2JiRm9ybUFzc29jaWF0ZWRSYWRpb0J1dHRvbk1peGluVHlwZT4gJiBUID0+IHtcbiAgYWJzdHJhY3QgY2xhc3MgU2JiRm9ybUFzc29jaWF0ZWRSYWRpb0J1dHRvbkVsZW1lbnRcbiAgICBleHRlbmRzIFNiYkRpc2FibGVkTWl4aW4oU2JiUmVxdWlyZWRNaXhpbihTYmJGb3JtQXNzb2NpYXRlZE1peGluKHN1cGVyQ2xhc3MpKSlcbiAgICBpbXBsZW1lbnRzIFBhcnRpYWw8U2JiRm9ybUFzc29jaWF0ZWRSYWRpb0J1dHRvbk1peGluVHlwZT5cbiAge1xuICAgIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgcmVhZG9ubHkgcm9sZSA9ICdyYWRpbyc7XG5cbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHRoZSByYWRpbyBidXR0b24gaXMgY2hlY2tlZC5cbiAgICAgKi9cbiAgICBAcHJvcGVydHkoeyB0eXBlOiBCb29sZWFuIH0pXG4gICAgcHVibGljIHNldCBjaGVja2VkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICB0aGlzLl9jaGVja2VkID0gISF2YWx1ZTtcblxuICAgICAgdGhpcy50b2dnbGVTdGF0ZSgnY2hlY2tlZCcsIHRoaXMuY2hlY2tlZCk7XG4gICAgICB0aGlzLmludGVybmFscy5hcmlhQ2hlY2tlZCA9IHRoaXMuY2hlY2tlZC50b1N0cmluZygpO1xuICAgICAgdGhpcy51cGRhdGVGb3JtVmFsdWUoKTtcbiAgICAgIHRoaXMuX3N5bmNocm9uaXplR3JvdXBTdGF0ZSgpO1xuICAgIH1cbiAgICBwdWJsaWMgZ2V0IGNoZWNrZWQoKTogYm9vbGVhbiB7XG4gICAgICByZXR1cm4gdGhpcy5fY2hlY2tlZDtcbiAgICB9XG4gICAgcHJpdmF0ZSBfY2hlY2tlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgQHByb3BlcnR5KClcbiAgICBwdWJsaWMgb3ZlcnJpZGUgc2V0IG5hbWUodmFsdWU6IHN0cmluZykge1xuICAgICAgc3VwZXIubmFtZSA9IHZhbHVlO1xuXG4gICAgICB0aGlzLl9kaXNjb25uZWN0RnJvbVJlZ2lzdHJ5KCk7XG4gICAgICB0aGlzLl9jb25uZWN0VG9SZWdpc3RyeSgpO1xuICAgICAgdGhpcy5fc3luY2hyb25pemVHcm91cFN0YXRlKCk7XG4gICAgfVxuICAgIHB1YmxpYyBvdmVycmlkZSBnZXQgbmFtZSgpOiBzdHJpbmcge1xuICAgICAgcmV0dXJuIHN1cGVyLm5hbWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRm9ybSB0eXBlIG9mIGVsZW1lbnQuXG4gICAgICogQGRlZmF1bHQgJ3JhZGlvJ1xuICAgICAqL1xuICAgIHB1YmxpYyBvdmVycmlkZSBnZXQgdHlwZSgpOiBzdHJpbmcge1xuICAgICAgcmV0dXJuICdyYWRpbyc7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0IG9mIHJhZGlvIGJ1dHRvbnMgdGhhdCBiZWxvbmdzIHRvIHRoZSBzYW1lIGdyb3VwIG9mIGB0aGlzYC5cbiAgICAgKiBBc3N1bWUgdGhlbSBvcmRlcmVkIGluIERPTSBvcmRlclxuICAgICAqL1xuICAgIHByb3RlY3RlZCBhc3NvY2lhdGVkUmFkaW9CdXR0b25zPzogU2V0PFNiYkZvcm1Bc3NvY2lhdGVkUmFkaW9CdXR0b25FbGVtZW50PjtcbiAgICBwcml2YXRlIF9yYWRpb0J1dHRvbkdyb3Vwc01hcD86IE1hcDxzdHJpbmcsIFNldDxTYmJGb3JtQXNzb2NpYXRlZFJhZGlvQnV0dG9uTWl4aW5UeXBlPj47XG4gICAgcHJpdmF0ZSBfbGFuZ3VhZ2VDb250cm9sbGVyID0gbmV3IFNiYkxhbmd1YWdlQ29udHJvbGxlcih0aGlzKTtcblxuICAgIHByb3RlY3RlZCBjb25zdHJ1Y3RvcigpIHtcbiAgICAgIHN1cGVyKCk7XG4gICAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/Ligna2V5ZG93bicsIChlKSA9PiB0aGlzLl9oYW5kbGVBcnJvd0tleURvd24oZSkpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvdmVycmlkZSBjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICAgIHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgICB0aGlzLl9jb25uZWN0VG9SZWdpc3RyeSgpO1xuICAgICAgdGhpcy5fc3luY2hyb25pemVHcm91cFN0YXRlKCk7XG4gICAgfVxuXG4gICAgcHVibGljIG92ZXJyaWRlIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgICAgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKTtcbiAgICAgIHRoaXMuX2Rpc2Nvbm5lY3RGcm9tUmVnaXN0cnkoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBJcyBjYWxsZWQgd2hlbmV2ZXIgdGhlIGZvcm0gaXMgYmVpbmcgcmVzZXQuXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgcHVibGljIG92ZXJyaWRlIGZvcm1SZXNldENhbGxiYWNrKCk6IHZvaWQge1xuICAgICAgdGhpcy5jaGVja2VkID0gdGhpcy5oYXNBdHRyaWJ1dGUoJ2NoZWNrZWQnKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiAgQ2FsbGVkIHdoZW4gdGhlIGJyb3dzZXIgaXMgdHJ5aW5nIHRvIHJlc3RvcmUgZWxlbWVudOKAmXMgc3RhdGUgdG8gc3RhdGUgaW4gd2hpY2ggY2FzZVxuICAgICAqICByZWFzb24gaXMgXCJyZXN0b3JlXCIsIG9yIHdoZW4gdGhlIGJyb3dzZXIgaXMgdHJ5aW5nIHRvIGZ1bGZpbGwgYXV0b2ZpbGwgb24gYmVoYWxmIG9mXG4gICAgICogIHVzZXIgaW4gd2hpY2ggY2FzZSByZWFzb24gaXMgXCJhdXRvY29tcGxldGVcIi5cbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBwdWJsaWMgb3ZlcnJpZGUgZm9ybVN0YXRlUmVzdG9yZUNhbGxiYWNrKFxuICAgICAgc3RhdGU6IEZvcm1SZXN0b3JlU3RhdGUgfCBudWxsLFxuICAgICAgX3JlYXNvbjogRm9ybVJlc3RvcmVSZWFzb24sXG4gICAgKTogdm9pZCB7XG4gICAgICBpZiAodHlwZW9mIHN0YXRlID09PSAnc3RyaW5nJyB8fCBzdGF0ZSA9PSBudWxsKSB7XG4gICAgICAgIHRoaXMuY2hlY2tlZCA9IHN0YXRlID09PSB0aGlzLnZhbHVlO1xuICAgICAgfSBlbHNlIGlmIChzdGF0ZSBpbnN0YW5jZW9mIEZvcm1EYXRhKSB7XG4gICAgICAgIHRoaXMuX3JlYWRGb3JtRGF0YShzdGF0ZSkudGhlbigoZGF0YSkgPT4ge1xuICAgICAgICAgIHRoaXMuY2hlY2tlZCA9IGRhdGEgPT09IHRoaXMudmFsdWU7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgYXN5bmMgX3JlYWRGb3JtRGF0YShmb3JtRGF0YTogRm9ybURhdGEpOiBQcm9taXNlPHVua25vd24+IHtcbiAgICAgIGNvbnN0IGRhdGEgPSBmb3JtRGF0YS5nZXQodGhpcy5uYW1lKTtcbiAgICAgIHJldHVybiBkYXRhIGluc3RhbmNlb2YgQmxvYiA/IEpTT04ucGFyc2UoYXdhaXQgZGF0YS50ZXh0KCkpIDogZGF0YTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgd2lsbFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXM8dGhpcz4pOiB2b2lkIHtcbiAgICAgIHN1cGVyLndpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXMpO1xuXG4gICAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdkaXNhYmxlZCcpKSB7XG4gICAgICAgIHRoaXMudXBkYXRlRm9jdXNhYmxlUmFkaW9zKCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIGZpcnN0VXBkYXRlZChjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXM8dGhpcz4pOiB2b2lkIHtcbiAgICAgIHN1cGVyLmZpcnN0VXBkYXRlZChjaGFuZ2VkUHJvcGVydGllcyk7XG4gICAgICB0aGlzLnVwZGF0ZUZvY3VzYWJsZVJhZGlvcygpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENhbGxlZCBvbiBgdmFsdWVgIGNoYW5nZVxuICAgICAqIElmICdjaGVja2VkJywgdXBkYXRlIHRoZSB2YWx1ZS4gT3RoZXJ3aXNlLCBkbyBub3RoaW5nLlxuICAgICAqL1xuICAgIHByb3RlY3RlZCBvdmVycmlkZSB1cGRhdGVGb3JtVmFsdWUoKTogdm9pZCB7XG4gICAgICBpZiAodGhpcy5jaGVja2VkKSB7XG4gICAgICAgIHN1cGVyLnVwZGF0ZUZvcm1WYWx1ZSgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5pbnRlcm5hbHMuc2V0Rm9ybVZhbHVlKG51bGwpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBvdmVycmlkZSBzaG91bGRWYWxpZGF0ZShuYW1lOiBQcm9wZXJ0eUtleSB8IHVuZGVmaW5lZCk6IGJvb2xlYW4ge1xuICAgICAgcmV0dXJuIHN1cGVyLnNob3VsZFZhbGlkYXRlKG5hbWUpIHx8IG5hbWUgPT09ICdjaGVja2VkJyB8fCBuYW1lID09PSAncmVxdWlyZWQnO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldHMgdGhlIHZhbGlkaXR5IG9mIGFsbCBhc3NvY2lhdGVkIHJhZGlvIGJ1dHRvbnMuXG4gICAgICogSWYgYW55IHJhZGlvIGJ1dHRvbiBpcyByZXF1aXJlZCwgYWxsIGFzc29jaWF0ZWQgYXJlIHJlcXVpcmVkIGFzIHdlbGwuXG4gICAgICovXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIHZhbGlkYXRlKCk6IHZvaWQge1xuICAgICAgc3VwZXIudmFsaWRhdGUoKTtcbiAgICAgIGlmICghdGhpcy5hc3NvY2lhdGVkUmFkaW9CdXR0b25zKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgbGV0IHJlcXVpcmVkID0gZmFsc2U7XG4gICAgICBsZXQgY2hlY2tlZCA9IGZhbHNlO1xuICAgICAgZm9yIChjb25zdCByYWRpbyBvZiB0aGlzLmFzc29jaWF0ZWRSYWRpb0J1dHRvbnMpIHtcbiAgICAgICAgcmVxdWlyZWQgfHw9IHJhZGlvLnJlcXVpcmVkO1xuICAgICAgICBjaGVja2VkIHx8PSByYWRpby5jaGVja2VkO1xuICAgICAgfVxuXG4gICAgICBpZiAocmVxdWlyZWQgJiYgIWNoZWNrZWQpIHtcbiAgICAgICAgdGhpcy5hc3NvY2lhdGVkUmFkaW9CdXR0b25zLmZvckVhY2goKHIpID0+XG4gICAgICAgICAgci5zZXRWYWxpZGl0eUZsYWcoXG4gICAgICAgICAgICAndmFsdWVNaXNzaW5nJyxcbiAgICAgICAgICAgIGkxOG5TZWxlY3Rpb25SZXF1aXJlZFt0aGlzLl9sYW5ndWFnZUNvbnRyb2xsZXIuY3VycmVudF0sXG4gICAgICAgICAgKSxcbiAgICAgICAgKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuYXNzb2NpYXRlZFJhZGlvQnV0dG9ucy5mb3JFYWNoKChyKSA9PiByLnJlbW92ZVZhbGlkaXR5RmxhZygndmFsdWVNaXNzaW5nJykpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE9ubHkgYSBzaW5nbGUgcmFkaW8gc2hvdWxkIGJlIGZvY3VzYWJsZSBpbiB0aGUgZ3JvdXAuIERlZmluZWQgYXM6XG4gICAgICogLSB0aGUgY2hlY2tlZCByYWRpbztcbiAgICAgKiAtIHRoZSBmaXJzdCBub24tZGlzYWJsZWQgcmFkaW8gaW4gRE9NIG9yZGVyO1xuICAgICAqL1xuICAgIHByb3RlY3RlZCB1cGRhdGVGb2N1c2FibGVSYWRpb3MoKTogdm9pZCB7XG4gICAgICBpZiAoIXRoaXMuaGFzVXBkYXRlZCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBjb25zdCByYWRpb3MgPSB0aGlzLl9pbnRlcmFjdGFibGVHcm91cGVkUmFkaW9zKCk7XG4gICAgICBjb25zdCBjaGVja2VkSW5kZXggPSByYWRpb3MuZmluZEluZGV4KChyKSA9PiByLmNoZWNrZWQgJiYgIXIuZGlzYWJsZWQgJiYgIXIuZm9ybURpc2FibGVkKTtcbiAgICAgIGNvbnN0IGZvY3VzYWJsZUluZGV4ID1cbiAgICAgICAgY2hlY2tlZEluZGV4ICE9PSAtMVxuICAgICAgICAgID8gY2hlY2tlZEluZGV4XG4gICAgICAgICAgOiByYWRpb3MuZmluZEluZGV4KChyKSA9PiAhci5kaXNhYmxlZCAmJiAhci5mb3JtRGlzYWJsZWQpOyAvLyBHZXQgdGhlIGZpcnN0IGZvY3VzYWJsZSByYWRpb1xuXG4gICAgICBpZiAoZm9jdXNhYmxlSW5kZXggIT09IC0xKSB7XG4gICAgICAgIHJhZGlvc1tmb2N1c2FibGVJbmRleF0udGFiSW5kZXggPSAwO1xuICAgICAgICByYWRpb3Muc3BsaWNlKGZvY3VzYWJsZUluZGV4LCAxKTtcbiAgICAgIH1cblxuICAgICAgLy8gUmVzZXQgdGFiSW5kZXggb24gb3RoZXIgcmFkaW9zXG4gICAgICByYWRpb3MuZm9yRWFjaCgocikgPT4gci5yZW1vdmVBdHRyaWJ1dGUoJ3RhYmluZGV4JykpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBhc3luYyBuYXZpZ2F0ZUJ5S2V5Ym9hcmQobmV4dDogU2JiRm9ybUFzc29jaWF0ZWRSYWRpb0J1dHRvbkVsZW1lbnQpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgIG5leHQuY2hlY2tlZCA9IHRydWU7XG4gICAgICB0aGlzLmVtaXRDaGFuZ2VFdmVudHMoKTtcblxuICAgICAgYXdhaXQgbmV4dC51cGRhdGVDb21wbGV0ZTtcbiAgICAgIG5leHQuZm9jdXMoKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZW1pdENoYW5nZUV2ZW50cygpOiB2b2lkIHtcbiAgICAgIC8vIE1hbnVhbGx5IGRpc3BhdGNoIGV2ZW50cyB0byBzaW11bGF0ZSBhIHVzZXIgaW50ZXJhY3Rpb25cbiAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudChcbiAgICAgICAgbmV3IElucHV0RXZlbnQoJ2lucHV0JywgeyBidWJibGVzOiB0cnVlLCBjYW5jZWxhYmxlOiB0cnVlLCBjb21wb3NlZDogdHJ1ZSB9KSxcbiAgICAgICk7XG4gICAgICB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCdjaGFuZ2UnLCB7IGJ1YmJsZXM6IHRydWUgfSkpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX3N5bmNocm9uaXplR3JvdXBTdGF0ZSgpOiB2b2lkIHtcbiAgICAgIGlmICh0aGlzLmNoZWNrZWQpIHtcbiAgICAgICAgdGhpcy5fZGVzZWxlY3RHcm91cGVkUmFkaW9zKCk7XG4gICAgICB9XG4gICAgICB0aGlzLnVwZGF0ZUZvY3VzYWJsZVJhZGlvcygpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFkZCBgdGhpc2AgdG8gdGhlIHJhZGlvQnV0dG9uIHJlZ2lzdHJ5XG4gICAgICovXG4gICAgcHJpdmF0ZSBfY29ubmVjdFRvUmVnaXN0cnkoKTogdm9pZCB7XG4gICAgICBpZiAoIXRoaXMubmFtZSB8fCBpc1NlcnZlcikge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBjb25zdCByb290ID0gdGhpcy5mb3JtID8/IHRoaXMuZ2V0Um9vdE5vZGUoKTtcbiAgICAgIHRoaXMuX3JhZGlvQnV0dG9uR3JvdXBzTWFwID0gcmFkaW9CdXR0b25SZWdpc3RyeS5nZXQocm9vdCk7XG5cbiAgICAgIC8vIEluaXRpYWxpemUgdGhlICdyb290JyBtYXAgZW50cnlcbiAgICAgIGlmICghdGhpcy5fcmFkaW9CdXR0b25Hcm91cHNNYXApIHtcbiAgICAgICAgdGhpcy5fcmFkaW9CdXR0b25Hcm91cHNNYXAgPSBuZXcgTWFwKCk7XG4gICAgICAgIHJhZGlvQnV0dG9uUmVnaXN0cnkuc2V0KHJvb3QsIHRoaXMuX3JhZGlvQnV0dG9uR3JvdXBzTWFwKTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5hc3NvY2lhdGVkUmFkaW9CdXR0b25zID0gdGhpcy5fcmFkaW9CdXR0b25Hcm91cHNNYXAuZ2V0KFxuICAgICAgICB0aGlzLm5hbWUsXG4gICAgICApIGFzIHVua25vd24gYXMgU2V0PFNiYkZvcm1Bc3NvY2lhdGVkUmFkaW9CdXR0b25FbGVtZW50PjtcblxuICAgICAgLy8gSW5pdGlhbGl6ZSB0aGUgZ3JvdXAgc2V0XG4gICAgICBpZiAoIXRoaXMuYXNzb2NpYXRlZFJhZGlvQnV0dG9ucykge1xuICAgICAgICB0aGlzLmFzc29jaWF0ZWRSYWRpb0J1dHRvbnMgPSBuZXcgU2V0KCk7XG4gICAgICAgIHRoaXMuX3JhZGlvQnV0dG9uR3JvdXBzTWFwLnNldChcbiAgICAgICAgICB0aGlzLm5hbWUsXG4gICAgICAgICAgdGhpcy5hc3NvY2lhdGVkUmFkaW9CdXR0b25zIGFzIHVua25vd24gYXMgU2V0PFNiYkZvcm1Bc3NvY2lhdGVkUmFkaW9CdXR0b25NaXhpblR5cGU+LFxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICAvLyBJbnNlcnQgdGhlIG5ldyByYWRpbyBpbnRvIHRoZSBzZXQgYW5kIHNvcnQgZm9sbG93aW5nIHRoZSBET00gb3JkZXIuXG4gICAgICAvLyBTaW5jZSB0aGUgb3JkZXIgb2YgYSAnU2V0JyBpcyB0aGUgaW5zZXJ0IG9yZGVyLCB3ZSBoYXZlIHRvIGVtcHR5IGl0IGFuZCByZS1pbnNlcnQgcmFkaW9zIGluIG9yZGVyXG4gICAgICBjb25zdCBlbnRyaWVzID0gQXJyYXkuZnJvbSh0aGlzLmFzc29jaWF0ZWRSYWRpb0J1dHRvbnMpO1xuICAgICAgdGhpcy5hc3NvY2lhdGVkUmFkaW9CdXR0b25zLmNsZWFyKCk7XG5cbiAgICAgIC8vIEZpbmQgYHRoaXNgIHBvc2l0aW9uIGFuZCBpbnNlcnQgaXRcbiAgICAgIGNvbnN0IGluZGV4ID0gZW50cmllcy5maW5kSW5kZXgoXG4gICAgICAgIChyKSA9PiB0aGlzLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKHIpICYgTm9kZS5ET0NVTUVOVF9QT1NJVElPTl9GT0xMT1dJTkcsXG4gICAgICApO1xuICAgICAgaWYgKGluZGV4ICE9PSAtMSkge1xuICAgICAgICBlbnRyaWVzLnNwbGljZShpbmRleCwgMCwgdGhpcyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBlbnRyaWVzLnB1c2godGhpcyk7XG4gICAgICB9XG5cbiAgICAgIC8vIFJlcG9wdWxhdGUgdGhlIFNldFxuICAgICAgZW50cmllcy5mb3JFYWNoKChyKSA9PiB0aGlzLmFzc29jaWF0ZWRSYWRpb0J1dHRvbnMhLmFkZChyKSk7XG5cbiAgICAgIHRoaXMudmFsaWRhdGUoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZW1vdmUgYHRoaXNgIGZyb20gdGhlIHJhZGlvQnV0dG9uIHJlZ2lzdHJ5IGFuZCwgaWYgdGhlIGdyb3VwIGlzIGVtcHR5LCBkZWxldGUgdGhlIGVudHJ5IGZyb20gdGhlIGdyb3VwcyBNYXBcbiAgICAgKi9cbiAgICBwcml2YXRlIF9kaXNjb25uZWN0RnJvbVJlZ2lzdHJ5KCk6IHZvaWQge1xuICAgICAgdGhpcy5hc3NvY2lhdGVkUmFkaW9CdXR0b25zPy5kZWxldGUodGhpcyk7XG5cbiAgICAgIGlmICh0aGlzLmFzc29jaWF0ZWRSYWRpb0J1dHRvbnM/LnNpemUgPT09IDApIHtcbiAgICAgICAgdGhpcy5fcmFkaW9CdXR0b25Hcm91cHNNYXA/LmRlbGV0ZSh0aGlzLm5hbWUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy52YWxpZGF0ZSgpO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmFzc29jaWF0ZWRSYWRpb0J1dHRvbnMgPSB1bmRlZmluZWQ7XG4gICAgICB0aGlzLl9yYWRpb0J1dHRvbkdyb3Vwc01hcCA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm4gYSBsaXN0IG9mICdpbnRlcmFjdGFibGUnIGdyb3VwZWQgcmFkaW9zLCBvcmRlcmVkIGluIERPTSBvcmRlclxuICAgICAqL1xuICAgIHByaXZhdGUgX2ludGVyYWN0YWJsZUdyb3VwZWRSYWRpb3MoKTogU2JiRm9ybUFzc29jaWF0ZWRSYWRpb0J1dHRvbkVsZW1lbnRbXSB7XG4gICAgICByZXR1cm4gQXJyYXkuZnJvbSh0aGlzLmFzc29jaWF0ZWRSYWRpb0J1dHRvbnMgPz8gW10pLmZpbHRlcigoZWwpID0+XG4gICAgICAgIGludGVyYWN0aXZpdHlDaGVja2VyLmlzVmlzaWJsZShlbCksXG4gICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERlc2VsZWN0IG90aGVyIHJhZGlvIG9mIHRoZSBzYW1lIGdyb3VwXG4gICAgICovXG4gICAgcHJpdmF0ZSBfZGVzZWxlY3RHcm91cGVkUmFkaW9zKCk6IHZvaWQge1xuICAgICAgQXJyYXkuZnJvbSh0aGlzLmFzc29jaWF0ZWRSYWRpb0J1dHRvbnMgPz8gW10pXG4gICAgICAgIC5maWx0ZXIoKHIpID0+IHIgIT09IHRoaXMpXG4gICAgICAgIC5mb3JFYWNoKChyKSA9PiAoci5jaGVja2VkID0gZmFsc2UpKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFzeW5jIF9oYW5kbGVBcnJvd0tleURvd24oZXZ0OiBLZXlib2FyZEV2ZW50KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICBpZiAoIWlzQXJyb3dLZXlQcmVzc2VkKGV2dCkpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICAgIGNvbnN0IGVuYWJsZWRSYWRpb3MgPSB0aGlzLl9pbnRlcmFjdGFibGVHcm91cGVkUmFkaW9zKCkuZmlsdGVyKFxuICAgICAgICAocikgPT4gIXIuZGlzYWJsZWQgJiYgIXIuZm9ybURpc2FibGVkLFxuICAgICAgKTtcbiAgICAgIGNvbnN0IGN1cnJlbnQ6IG51bWJlciA9IGVuYWJsZWRSYWRpb3MuaW5kZXhPZih0aGlzKTtcbiAgICAgIGNvbnN0IG5leHRJbmRleDogbnVtYmVyID0gZ2V0TmV4dEVsZW1lbnRJbmRleChldnQsIGN1cnJlbnQsIGVuYWJsZWRSYWRpb3MubGVuZ3RoKTtcblxuICAgICAgYXdhaXQgdGhpcy5uYXZpZ2F0ZUJ5S2V5Ym9hcmQoZW5hYmxlZFJhZGlvc1tuZXh0SW5kZXhdKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gU2JiRm9ybUFzc29jaWF0ZWRSYWRpb0J1dHRvbkVsZW1lbnQgYXMgdW5rbm93biBhcyBBYnN0cmFjdENvbnN0cnVjdG9yPFNiYkZvcm1Bc3NvY2lhdGVkUmFkaW9CdXR0b25NaXhpblR5cGU+ICZcbiAgICBUO1xufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBeUJBLElBQWEsc0NBQXNCLElBQUksU0FHcEM7Ozs7QUFzQkgsSUFBYSxxQ0FHWCxlQUNrRTtDQWtUbEUsY0FqVGtEO29CQUN4QyxpQkFBaUIsaUJBQWlCLHVCQUF1QixXQUFXLENBQUMsQ0FBQzs7OztlQURqRSw0Q0FDTCxZQUFzRTs7OytCQVE3RSxTQUFTLEVBQUUsTUFBTSxTQUFTLENBQUMsQ0FBQTs0QkFjM0IsVUFBVSxDQUFBO0lBYlgsYUFB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
@@ -140,4 +140,4 @@ var SbbNamedSlotListMixin = (superClass) => {
140
140
  //#endregion
141
141
  export { SbbNamedSlotListMixin };
142
142
 
143
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmFtZWQtc2xvdC1saXN0LW1peGluLmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb3JlL21peGlucy9uYW1lZC1zbG90LWxpc3QtbWl4aW4udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdHlwZSBDU1NSZXN1bHRHcm91cCwgaHRtbCwgbm90aGluZywgdHlwZSBQcm9wZXJ0eVZhbHVlcywgdHlwZSBUZW1wbGF0ZVJlc3VsdCB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBzdGF0ZSB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcblxuaW1wb3J0IHR5cGUge1xuICBTYmJFbGVtZW50LFxuICBTYmJFbGVtZW50Q29uc3RydWN0b3IsXG4gIFNiYkVsZW1lbnRUeXBlLFxufSBmcm9tICcuLi9iYXNlLWVsZW1lbnRzL2VsZW1lbnQudHMnO1xuaW1wb3J0IHsgc2NyZWVuUmVhZGVyT25seVN0eWxlcyB9IGZyb20gJy4uL3N0eWxlcy9zdHlsZXMudHMnO1xuXG5pbXBvcnQgdHlwZSB7IEFic3RyYWN0Q29uc3RydWN0b3IgfSBmcm9tICcuL2NvbnN0cnVjdG9yLnRzJztcblxuY29uc3QgU1NSX0NISUxEX0NPVU5UX0FUVFJJQlVURSA9ICdkYXRhLXNzci1jaGlsZC1jb3VudCc7XG5jb25zdCBTTE9UTkFNRV9QUkVGSVggPSAnbGknO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNiYk5hbWVkU2xvdFByb3BlcnRpZXMge1xuICBuYW1lOiBzdHJpbmc7XG4gIGFyaWFIaWRkZW46IGJvb2xlYW47XG59XG5cbi8qKlxuICogSGVscGVyIHR5cGUgZm9yIHdpbGxVcGRhdGUgb3Igc2ltaWxhciBjaGVja3MuXG4gKiBBbGxvd3MgdGhlIHVzYWdlIG9mIHRoZSBzdHJpbmcgbGl0ZXJhbCAnbGlzdENoaWxkcmVuJy5cbiAqXG4gKiBAZXhhbXBsZVxuICogcHJvdGVjdGVkIG92ZXJyaWRlIHdpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXM6IFByb3BlcnR5VmFsdWVzPFdpdGhMaXN0Q2hpbGRyZW48dGhpcz4+KTogdm9pZCB7XG4gKiAgIGlmIChjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ2xpc3RDaGlsZHJlbicpKSB7XG4gKiAgICAgLi4uXG4gKiAgIH1cbiAqIH1cbiAqL1xuZXhwb3J0IHR5cGUgV2l0aExpc3RDaGlsZHJlbjxcbiAgVCBleHRlbmRzIFNiYk5hbWVkU2xvdExpc3RNaXhpblR5cGU8Qz4sXG4gIEMgZXh0ZW5kcyBIVE1MRWxlbWVudCA9IEhUTUxFbGVtZW50LFxuPiA9IFQgJiB7IGxpc3RDaGlsZHJlbjogQ1tdIH07XG5cbmV4cG9ydCBkZWNsYXJlIGFic3RyYWN0IGNsYXNzIFNiYk5hbWVkU2xvdExpc3RNaXhpblR5cGU8QyBleHRlbmRzIEhUTUxFbGVtZW50PiBleHRlbmRzIFNiYkVsZW1lbnQge1xuICBwcm90ZWN0ZWQgYWJzdHJhY3QgcmVhZG9ubHkgbGlzdENoaWxkTG9jYWxOYW1lczogc3RyaW5nW107XG4gIHByb3RlY3RlZCBhY2Nlc3NvciBsaXN0Q2hpbGRyZW46IENbXTtcbiAgcHJvdGVjdGVkIHJlbmRlckxpc3QoXG4gICAgYXR0cmlidXRlcz86IHtcbiAgICAgIGNsYXNzPzogc3RyaW5nO1xuICAgICAgYXJpYUxhYmVsPzogc3RyaW5nO1xuICAgICAgYXJpYUxhYmVsbGVkYnk/OiBzdHJpbmc7XG4gICAgfSxcbiAgICBsaXN0SXRlbUF0dHJpYnV0ZXM/OiB7XG4gICAgICBsb2NhbE5hbWVWaXN1YWxPbmx5Pzogc3RyaW5nW107XG4gICAgfSxcbiAgKTogVGVtcGxhdGVSZXN1bHQ7XG4gIHByb3RlY3RlZCBsaXN0U2xvdEVudHJpZXMoKTogU2JiTmFtZWRTbG90UHJvcGVydGllc1tdO1xuICBwcm90ZWN0ZWQgcmVuZGVySGlkZGVuU2xvdCgpOiBUZW1wbGF0ZVJlc3VsdDtcbn1cblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuZXhwb3J0IGNvbnN0IFNiYk5hbWVkU2xvdExpc3RNaXhpbiA9IDxcbiAgQyBleHRlbmRzIEhUTUxFbGVtZW50LFxuICBUIGV4dGVuZHMgQWJzdHJhY3RDb25zdHJ1Y3RvcjxTYmJFbGVtZW50PiAmIFNiYkVsZW1lbnRDb25zdHJ1Y3Rvcixcbj4oXG4gIHN1cGVyQ2xhc3M6IFQsXG4pOiBBYnN0cmFjdENvbnN0cnVjdG9yPFNiYk5hbWVkU2xvdExpc3RNaXhpblR5cGU8Qz4+ICYgVCA9PiB7XG4gIC8qKlxuICAgKiBUaGlzIGJhc2UgY2xhc3MgcHJvdmlkZXMgbmFtZWQgc2xvdCBsaXN0IG9ic2VydmVyIGZ1bmN0aW9uYWxpdHkuXG4gICAqIFRoaXMgYWxsb3dzIHVzaW5nIHRoZSBwYXR0ZXJuIG9mIHJlbmRlcmluZyBhIG5hbWVkIHNsb3QgZm9yIGVhY2ggY2hpbGQsIHdoaWNoIGFsbG93c1xuICAgKiB3cmFwcGluZyBjaGlsZHJlbiBpbiBhbiB1bC9saSBsaXN0LlxuICAgKi9cbiAgYWJzdHJhY3QgY2xhc3MgTmFtZWRTbG90TGlzdEVsZW1lbnRcbiAgICBleHRlbmRzIHN1cGVyQ2xhc3NcbiAgICBpbXBsZW1lbnRzIFBhcnRpYWw8U2JiTmFtZWRTbG90TGlzdE1peGluVHlwZTxDPj5cbiAge1xuICAgIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgZWxlbWVudERlcGVuZGVuY2llczogU2JiRWxlbWVudFR5cGVbXSA9IFtdO1xuICAgIHB1YmxpYyBzdGF0aWMgc3R5bGVzOiBDU1NSZXN1bHRHcm91cCA9IFtzY3JlZW5SZWFkZXJPbmx5U3R5bGVzXTtcbiAgICAvKiogQSBsaXN0IG9mIGxvd2VyLWNhc2VkIHRhZyBuYW1lcyB0byBtYXRjaCBhZ2FpbnN0LiAoZS5nLiBgc2JiLWxpbmtgKSAqL1xuICAgIHByb3RlY3RlZCBhYnN0cmFjdCByZWFkb25seSBsaXN0Q2hpbGRMb2NhbE5hbWVzOiBzdHJpbmdbXTtcblxuICAgIC8qKlxuICAgICAqIEEgbGlzdCBvZiBjaGlsZHJlbiB3aXRoIHRoZSBkZWZpbmVkIHRhZyBuYW1lcy5cbiAgICAgKiBUaGlzIGFycmF5IGlzIG9ubHkgdXBkYXRlZCBpZiB0aGVyZSBpcyBhbiBhY3R1YWwgY2hhbmdlXG4gICAgICogdG8gdGhlIGNoaWxkIGVsZW1lbnRzLlxuICAgICAqL1xuICAgIEBzdGF0ZSgpIHByb3RlY3RlZCBhY2Nlc3NvciBsaXN0Q2hpbGRyZW46IENbXSA9IFtdO1xuXG4gICAgcHVibGljIG92ZXJyaWRlIGNvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgICAgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKTtcbiAgICAgIHRoaXMuc2hhZG93Um9vdD8uYWRkRXZlbnRMaXN0ZW5lcignc2xvdGNoYW5nZScsIHRoaXMuX2hhbmRsZVNsb3RjaGFuZ2UsIHsgcGFzc2l2ZTogdHJ1ZSB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb3ZlcnJpZGUgZGlzY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgICBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpO1xuICAgICAgdGhpcy5zaGFkb3dSb290Py5yZW1vdmVFdmVudExpc3RlbmVyKCdzbG90Y2hhbmdlJywgdGhpcy5faGFuZGxlU2xvdGNoYW5nZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfaGFuZGxlU2xvdGNoYW5nZSA9ICgpOiB2b2lkID0+IHtcbiAgICAgIGNvbnN0IGxpc3RDaGlsZHJlbiA9IEFycmF5LmZyb20odGhpcy5jaGlsZHJlbiA/PyBbXSkuZmlsdGVyKChlKTogZSBpcyBDID0+XG4gICAgICAgIHRoaXMubGlzdENoaWxkTG9jYWxOYW1lcy5pbmNsdWRlcyhlLmxvY2FsTmFtZSksXG4gICAgICApO1xuICAgICAgLy8gSWYgdGhlIHNsb3R0ZWQgY2hpbGQgaW5zdGFuY2VzIGhhdmUgbm90IGNoYW5nZWQsIHdlIGNhbiBza2lwIHN5bmNpbmcgYW5kIHVwZGF0aW5nXG4gICAgICAvLyB0aGUgbGluayByZWZlcmVuY2UgbGlzdC5cbiAgICAgIGlmIChcbiAgICAgICAgbGlzdENoaWxkcmVuLmxlbmd0aCA9PT0gdGhpcy5saXN0Q2hpbGRyZW4ubGVuZ3RoICYmXG4gICAgICAgIHRoaXMubGlzdENoaWxkcmVuLmV2ZXJ5KChlLCBpKSA9PiBsaXN0Q2hpbGRyZW5baV0gPT09IGUpXG4gICAgICApIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmxpc3RDaGlsZHJlblxuICAgICAgICAuZmlsdGVyKChjKSA9PiAhbGlzdENoaWxkcmVuLmluY2x1ZGVzKGMpKVxuICAgICAgICAuZm9yRWFjaCgoYykgPT4gYy5yZW1vdmVBdHRyaWJ1dGUoJ3Nsb3QnKSk7XG4gICAgICB0aGlzLmxpc3RDaGlsZHJlbiA9IGxpc3RDaGlsZHJlbjtcblxuICAgICAgLy8gUmVtb3ZlIHRoZSBzc3IgYXR0cmlidXRlLCBvbmNlIHdlIGhhdmUgYWN0dWFsbHkgaW5pdGlhbGl6ZWQgdGhlIGNoaWxkcmVuIGVsZW1lbnRzLlxuICAgICAgdGhpcy5yZW1vdmVBdHRyaWJ1dGUoU1NSX0NISUxEX0NPVU5UX0FUVFJJQlVURSk7XG4gICAgfTtcblxuICAgIHByb3RlY3RlZCBvdmVycmlkZSB1cGRhdGVkKFxuICAgICAgY2hhbmdlZFByb3BlcnRpZXM6IFByb3BlcnR5VmFsdWVzPHRoaXMgJiB7IGxpc3RDaGlsZHJlbjogQ1tdIH0+LFxuICAgICk6IHZvaWQge1xuICAgICAgc3VwZXIudXBkYXRlZChjaGFuZ2VkUHJvcGVydGllcyk7XG5cbiAgICAgIGlmIChjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ2xpc3RDaGlsZHJlbicpKSB7XG4gICAgICAgIC8vIElmIHlvdSBhc3NpZ24gYSBzbG90IGF0dHJpYnV0ZSB3aXRob3V0IGEgY29ycmVzcG9uZGluZyBzbG90IGVsZW1lbnQsXG4gICAgICAgIC8vIGl0IGlzIG5vdCBmdWxseSBwYXJ0IG9mIHRoZSBET00gYW5kIGUuZy4gbWVkaWEgcXVlcmllcyB3aWxsIGZhaWwuXG4gICAgICAgIHRoaXMubGlzdENoaWxkcmVuLmZvckVhY2goKGMsIGluZGV4KSA9PlxuICAgICAgICAgIGMuc2V0QXR0cmlidXRlKCdzbG90JywgYCR7U0xPVE5BTUVfUFJFRklYfS0ke2luZGV4fWApLFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlbmRlcnMgbGlzdCBhbmQgbGlzdCBzbG90cyBmb3Igc2xvdHRlZCBjaGlsZHJlbiBvciBhIG51bWJlciBvZiBsaXN0IHNsb3RzXG4gICAgICogY29ycmVzcG9uZGluZyB0byB0aGUgYGRhdGEtc3NyLWNoaWxkLWNvdW50YCBhdHRyaWJ1dGUgdmFsdWUuXG4gICAgICpcbiAgICAgKiBUaGlzIGlzIGEgcG9zc2libGUgb3B0aW1pemF0aW9uIGZvciBTU1IsIGFzIGluIGFuIFNTUiBMaXQgZW52aXJvbm1lbnRcbiAgICAgKiBvdGhlciBlbGVtZW50cyBhcmUgbm90IGF2YWlsYWJsZSwgYnV0IG1pZ2h0IGJlIGF2YWlsYWJsZSBpbiB0aGUgbWV0YVxuICAgICAqIGZyYW1ld29yayB3cmFwcGVyIChsaWtlIGUuZy4gUmVhY3QpLiBUaGlzIGFsbG93cyB0byBwcm92aWRlIHRoZSBudW1iZXIgb2ZcbiAgICAgKiBjaGlsZHJlbiB0byBiZSBwYXNzZWQgdmlhIHRoZSBgZGF0YS1zc3ItY2hpbGQtY291bnRgIGF0dHJpYnV0ZSB2YWx1ZS5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgcmVuZGVyTGlzdChcbiAgICAgIGF0dHJpYnV0ZXM6IHsgY2xhc3M/OiBzdHJpbmc7IGFyaWFMYWJlbD86IHN0cmluZzsgYXJpYUxhYmVsbGVkYnk/OiBzdHJpbmcgfSA9IHt9LFxuICAgICAgbGlzdEl0ZW1BdHRyaWJ1dGVzOiB7IGxvY2FsTmFtZVZpc3VhbE9ubHk/OiBzdHJpbmdbXSB9ID0ge30sXG4gICAgKTogVGVtcGxhdGVSZXN1bHQge1xuICAgICAgY29uc3QgbGlzdFNsb3ROYW1lczogU2JiTmFtZWRTbG90UHJvcGVydGllc1tdID0gdGhpcy5saXN0U2xvdEVudHJpZXMobGlzdEl0ZW1BdHRyaWJ1dGVzKTtcblxuICAgICAgaWYgKGxpc3RTbG90TmFtZXMubGVuZ3RoID49IDIpIHtcbiAgICAgICAgcmV0dXJuIGh0bWxgXG4gICAgICAgICAgPHVsXG4gICAgICAgICAgICBjbGFzcz0ke2F0dHJpYnV0ZXMuY2xhc3MgfHwgdGhpcy5sb2NhbE5hbWV9XG4gICAgICAgICAgICBhcmlhLWxhYmVsPSR7YXR0cmlidXRlcy5hcmlhTGFiZWwgfHwgbm90aGluZ31cbiAgICAgICAgICAgIGFyaWEtbGFiZWxsZWRieT0ke2F0dHJpYnV0ZXMuYXJpYUxhYmVsbGVkYnkgfHwgbm90aGluZ31cbiAgICAgICAgICA+XG4gICAgICAgICAgICAke2xpc3RTbG90TmFtZXMubWFwKFxuICAgICAgICAgICAgICAoc2xvdCkgPT4gaHRtbGBcbiAgICAgICAgICAgICAgICA8bGkgYXJpYS1oaWRkZW49JHtzbG90LmFyaWFIaWRkZW4gfHwgbm90aGluZ30+XG4gICAgICAgICAgICAgICAgICA8c2xvdCBuYW1lPSR7c2xvdC5uYW1lfT48L3Nsb3Q+XG4gICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgYCxcbiAgICAgICAgICAgICl9XG4gICAgICAgICAgPC91bD5cbiAgICAgICAgICAke3RoaXMucmVuZGVySGlkZGVuU2xvdCgpfVxuICAgICAgICBgO1xuICAgICAgfSBlbHNlIGlmIChsaXN0U2xvdE5hbWVzLmxlbmd0aCA9PT0gMSkge1xuICAgICAgICByZXR1cm4gaHRtbGA8c3BhbiBjbGFzcz1cInNiYi1zY3JlZW4tcmVhZGVyLW9ubHlcIj4ke2F0dHJpYnV0ZXMuYXJpYUxhYmVsfTwvc3Bhbj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz0ke2F0dHJpYnV0ZXMuY2xhc3MgfHwgdGhpcy5sb2NhbE5hbWV9PlxuICAgICAgICAgICAgPHNwYW4+PHNsb3QgbmFtZT0ke2xpc3RTbG90TmFtZXNbMF0ubmFtZX0+PC9zbG90Pjwvc3Bhbj5cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgJHt0aGlzLnJlbmRlckhpZGRlblNsb3QoKX0gYDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiB0aGlzLnJlbmRlckhpZGRlblNsb3QoKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIGFuIGFycmF5IG9mIFNiYk5hbWVkU2xvdFByb3BlcnRpZXMsIHdoaWNoIGhvbGRzIHRoZSBsaXN0IHNsb3QgbmFtZXMgYW5kIHRoZSBoaWRkZW4gcHJvcGVydHk7XG4gICAgICogaXRzIGxlbmd0aCBjb3JyZXNwb25kcyB0byB0aGUgbnVtYmVyIG9mIG1hdGNoZWQgY2hpbGRyZW4gb3IgdGhlIGBkYXRhLXNzci1jaGlsZC1jb3VudGAgYXR0cmlidXRlIHZhbHVlLlxuICAgICAqXG4gICAgICogVGhpcyBpcyBhIHBvc3NpYmxlIG9wdGltaXphdGlvbiBmb3IgU1NSLCBhcyBpbiBhbiBTU1IgTGl0IGVudmlyb25tZW50XG4gICAgICogb3RoZXIgZWxlbWVudHMgYXJlIG5vdCBhdmFpbGFibGUsIGJ1dCBtaWdodCBiZSBhdmFpbGFibGUgaW4gdGhlIG1ldGFcbiAgICAgKiBmcmFtZXdvcmsgd3JhcHBlciAobGlrZSBlLmcuIFJlYWN0KS4gVGhpcyBhbGxvd3MgdG8gcHJvdmlkZSB0aGUgbnVtYmVyIG9mXG4gICAgICogY2hpbGRyZW4gdG8gYmUgcGFzc2VkIHZpYSB0aGUgYGRhdGEtc3NyLWNoaWxkLWNvdW50YCBhdHRyaWJ1dGUgdmFsdWUuXG4gICAgICovXG4gICAgcHJvdGVjdGVkIGxpc3RTbG90RW50cmllcyhsaXN0SXRlbUF0dHJpYnV0ZXM6IHtcbiAgICAgIGxvY2FsTmFtZVZpc3VhbE9ubHk/OiBzdHJpbmdbXTtcbiAgICB9KTogU2JiTmFtZWRTbG90UHJvcGVydGllc1tdIHtcbiAgICAgIGNvbnN0IGxpc3RDaGlsZHJlbiA9IHRoaXMubGlzdENoaWxkcmVuLmxlbmd0aFxuICAgICAgICA/IHRoaXMubGlzdENoaWxkcmVuXG4gICAgICAgIDogQXJyYXkuZnJvbSh7IGxlbmd0aDogKyh0aGlzLmdldEF0dHJpYnV0ZShTU1JfQ0hJTERfQ09VTlRfQVRUUklCVVRFKSA/PyAwKSB9KTtcbiAgICAgIHJldHVybiBsaXN0Q2hpbGRyZW4ubWFwKChlLCBpKSA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgbmFtZTogYCR7U0xPVE5BTUVfUFJFRklYfS0ke2l9YCxcbiAgICAgICAgICBhcmlhSGlkZGVuOlxuICAgICAgICAgICAgbGlzdEl0ZW1BdHRyaWJ1dGVzPy5sb2NhbE5hbWVWaXN1YWxPbmx5Py5pbmNsdWRlcygoZSBhcyBIVE1MRWxlbWVudCkubG9jYWxOYW1lKSA/P1xuICAgICAgICAgICAgZmFsc2UsXG4gICAgICAgIH07XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIGEgaGlkZGVuIHNsb3QsIHdoaWNoIGlzIGludGVuZGVkIGFzIHRoZSBjaGlsZHJlbiBjaGFuZ2UgZGV0ZWN0aW9uLlxuICAgICAqIFdoZW4gYW4gZWxlbWVudCB3aXRob3V0IGEgc2xvdCBhdHRyaWJ1dGUgaXMgc2xvdHRlZCB0byB0aGUgZWxlbWVudCwgaXQgdHJpZ2dlcnNcbiAgICAgKiB0aGUgc2xvdGNoYW5nZSBldmVudCwgd2hpY2ggY2FuIGJlIHVzZWQgdG8gYXNzaWduIGl0IHRvIHRoZSBhcHByb3ByaWF0ZSBuYW1lZCBzbG90LlxuICAgICAqL1xuICAgIHByb3RlY3RlZCByZW5kZXJIaWRkZW5TbG90KCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICAgIHJldHVybiBodG1sYDxzcGFuIGhpZGRlbj48c2xvdD48L3Nsb3Q+PC9zcGFuPmA7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIE5hbWVkU2xvdExpc3RFbGVtZW50IGFzIHVua25vd24gYXMgQWJzdHJhY3RDb25zdHJ1Y3RvcjxTYmJOYW1lZFNsb3RMaXN0TWl4aW5UeXBlPEM+PiAmIFQ7XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7OztBQVlBLElBQU0sNEJBQTRCO0FBQ2xDLElBQU0sa0JBQWtCO0FBeUN4QixJQUFhLHlC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
143
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmFtZWQtc2xvdC1saXN0LW1peGluLmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb3JlL21peGlucy9uYW1lZC1zbG90LWxpc3QtbWl4aW4udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdHlwZSBDU1NSZXN1bHRHcm91cCwgaHRtbCwgbm90aGluZywgdHlwZSBQcm9wZXJ0eVZhbHVlcywgdHlwZSBUZW1wbGF0ZVJlc3VsdCB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBzdGF0ZSB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcblxuaW1wb3J0IHR5cGUge1xuICBTYmJFbGVtZW50LFxuICBTYmJFbGVtZW50Q29uc3RydWN0b3IsXG4gIFNiYkVsZW1lbnRUeXBlLFxufSBmcm9tICcuLi9iYXNlLWVsZW1lbnRzL2VsZW1lbnQudHMnO1xuaW1wb3J0IHsgc2NyZWVuUmVhZGVyT25seVN0eWxlcyB9IGZyb20gJy4uL3N0eWxlcy9zdHlsZXMudHMnO1xuXG5pbXBvcnQgdHlwZSB7IEFic3RyYWN0Q29uc3RydWN0b3IgfSBmcm9tICcuL2NvbnN0cnVjdG9yLnRzJztcblxuY29uc3QgU1NSX0NISUxEX0NPVU5UX0FUVFJJQlVURSA9ICdkYXRhLXNzci1jaGlsZC1jb3VudCc7XG5jb25zdCBTTE9UTkFNRV9QUkVGSVggPSAnbGknO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNiYk5hbWVkU2xvdFByb3BlcnRpZXMge1xuICBuYW1lOiBzdHJpbmc7XG4gIGFyaWFIaWRkZW46IGJvb2xlYW47XG59XG5cbi8qKlxuICogSGVscGVyIHR5cGUgZm9yIHdpbGxVcGRhdGUgb3Igc2ltaWxhciBjaGVja3MuXG4gKiBBbGxvd3MgdGhlIHVzYWdlIG9mIHRoZSBzdHJpbmcgbGl0ZXJhbCAnbGlzdENoaWxkcmVuJy5cbiAqXG4gKiBAZXhhbXBsZVxuICogcHJvdGVjdGVkIG92ZXJyaWRlIHdpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXM6IFByb3BlcnR5VmFsdWVzPFdpdGhMaXN0Q2hpbGRyZW48dGhpcz4+KTogdm9pZCB7XG4gKiAgIGlmIChjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ2xpc3RDaGlsZHJlbicpKSB7XG4gKiAgICAgLi4uXG4gKiAgIH1cbiAqIH1cbiAqL1xuZXhwb3J0IHR5cGUgV2l0aExpc3RDaGlsZHJlbjxcbiAgVCBleHRlbmRzIFNiYk5hbWVkU2xvdExpc3RNaXhpblR5cGU8Qz4sXG4gIEMgZXh0ZW5kcyBIVE1MRWxlbWVudCA9IEhUTUxFbGVtZW50LFxuPiA9IFQgJiB7IGxpc3RDaGlsZHJlbjogQ1tdIH07XG5cbmV4cG9ydCBkZWNsYXJlIGFic3RyYWN0IGNsYXNzIFNiYk5hbWVkU2xvdExpc3RNaXhpblR5cGU8QyBleHRlbmRzIEhUTUxFbGVtZW50PiBleHRlbmRzIFNiYkVsZW1lbnQge1xuICBwcm90ZWN0ZWQgYWJzdHJhY3QgcmVhZG9ubHkgbGlzdENoaWxkTG9jYWxOYW1lczogc3RyaW5nW107XG4gIHByb3RlY3RlZCBhY2Nlc3NvciBsaXN0Q2hpbGRyZW46IENbXTtcbiAgcHJvdGVjdGVkIHJlbmRlckxpc3QoXG4gICAgYXR0cmlidXRlcz86IHtcbiAgICAgIGNsYXNzPzogc3RyaW5nO1xuICAgICAgYXJpYUxhYmVsPzogc3RyaW5nO1xuICAgICAgYXJpYUxhYmVsbGVkYnk/OiBzdHJpbmc7XG4gICAgfSxcbiAgICBsaXN0SXRlbUF0dHJpYnV0ZXM/OiB7XG4gICAgICBsb2NhbE5hbWVWaXN1YWxPbmx5Pzogc3RyaW5nW107XG4gICAgfSxcbiAgKTogVGVtcGxhdGVSZXN1bHQ7XG4gIHByb3RlY3RlZCBsaXN0U2xvdEVudHJpZXMoKTogU2JiTmFtZWRTbG90UHJvcGVydGllc1tdO1xuICBwcm90ZWN0ZWQgcmVuZGVySGlkZGVuU2xvdCgpOiBUZW1wbGF0ZVJlc3VsdDtcbn1cblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuZXhwb3J0IGNvbnN0IFNiYk5hbWVkU2xvdExpc3RNaXhpbiA9IDxcbiAgQyBleHRlbmRzIEhUTUxFbGVtZW50LFxuICBUIGV4dGVuZHMgQWJzdHJhY3RDb25zdHJ1Y3RvcjxTYmJFbGVtZW50PiAmIFNiYkVsZW1lbnRDb25zdHJ1Y3Rvcixcbj4oXG4gIHN1cGVyQ2xhc3M6IFQsXG4pOiBBYnN0cmFjdENvbnN0cnVjdG9yPFNiYk5hbWVkU2xvdExpc3RNaXhpblR5cGU8Qz4+ICYgVCA9PiB7XG4gIC8qKlxuICAgKiBUaGlzIGJhc2UgY2xhc3MgcHJvdmlkZXMgbmFtZWQgc2xvdCBsaXN0IG9ic2VydmVyIGZ1bmN0aW9uYWxpdHkuXG4gICAqIFRoaXMgYWxsb3dzIHVzaW5nIHRoZSBwYXR0ZXJuIG9mIHJlbmRlcmluZyBhIG5hbWVkIHNsb3QgZm9yIGVhY2ggY2hpbGQsIHdoaWNoIGFsbG93c1xuICAgKiB3cmFwcGluZyBjaGlsZHJlbiBpbiBhbiB1bC9saSBsaXN0LlxuICAgKi9cbiAgYWJzdHJhY3QgY2xhc3MgTmFtZWRTbG90TGlzdEVsZW1lbnRcbiAgICBleHRlbmRzIHN1cGVyQ2xhc3NcbiAgICBpbXBsZW1lbnRzIFBhcnRpYWw8U2JiTmFtZWRTbG90TGlzdE1peGluVHlwZTxDPj5cbiAge1xuICAgIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgZWxlbWVudERlcGVuZGVuY2llczogU2JiRWxlbWVudFR5cGVbXSA9IFtdO1xuICAgIHB1YmxpYyBzdGF0aWMgc3R5bGVzOiBDU1NSZXN1bHRHcm91cCA9IFtzY3JlZW5SZWFkZXJPbmx5U3R5bGVzXTtcbiAgICAvKiogQSBsaXN0IG9mIGxvd2VyLWNhc2VkIHRhZyBuYW1lcyB0byBtYXRjaCBhZ2FpbnN0LiAoZS5nLiBgc2JiLWxpbmtgKSAqL1xuICAgIHByb3RlY3RlZCBhYnN0cmFjdCByZWFkb25seSBsaXN0Q2hpbGRMb2NhbE5hbWVzOiBzdHJpbmdbXTtcblxuICAgIC8qKlxuICAgICAqIEEgbGlzdCBvZiBjaGlsZHJlbiB3aXRoIHRoZSBkZWZpbmVkIHRhZyBuYW1lcy5cbiAgICAgKiBUaGlzIGFycmF5IGlzIG9ubHkgdXBkYXRlZCBpZiB0aGVyZSBpcyBhbiBhY3R1YWwgY2hhbmdlXG4gICAgICogdG8gdGhlIGNoaWxkIGVsZW1lbnRzLlxuICAgICAqL1xuICAgIEBzdGF0ZSgpIHByb3RlY3RlZCBhY2Nlc3NvciBsaXN0Q2hpbGRyZW46IENbXSA9IFtdO1xuXG4gICAgcHVibGljIG92ZXJyaWRlIGNvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgICAgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKTtcbiAgICAgIHRoaXMuc2hhZG93Um9vdD8uYWRkRXZlbnRMaXN0ZW5lcignc2xvdGNoYW5nZScsIHRoaXMuX2hhbmRsZVNsb3RjaGFuZ2UsIHsgcGFzc2l2ZTogdHJ1ZSB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb3ZlcnJpZGUgZGlzY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgICBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpO1xuICAgICAgdGhpcy5zaGFkb3dSb290Py5yZW1vdmVFdmVudExpc3RlbmVyKCdzbG90Y2hhbmdlJywgdGhpcy5faGFuZGxlU2xvdGNoYW5nZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfaGFuZGxlU2xvdGNoYW5nZSA9ICgpOiB2b2lkID0+IHtcbiAgICAgIGNvbnN0IGxpc3RDaGlsZHJlbiA9IEFycmF5LmZyb20odGhpcy5jaGlsZHJlbiA/PyBbXSkuZmlsdGVyKChlKTogZSBpcyBDID0+XG4gICAgICAgIHRoaXMubGlzdENoaWxkTG9jYWxOYW1lcy5pbmNsdWRlcyhlLmxvY2FsTmFtZSksXG4gICAgICApO1xuICAgICAgLy8gSWYgdGhlIHNsb3R0ZWQgY2hpbGQgaW5zdGFuY2VzIGhhdmUgbm90IGNoYW5nZWQsIHdlIGNhbiBza2lwIHN5bmNpbmcgYW5kIHVwZGF0aW5nXG4gICAgICAvLyB0aGUgbGluayByZWZlcmVuY2UgbGlzdC5cbiAgICAgIGlmIChcbiAgICAgICAgbGlzdENoaWxkcmVuLmxlbmd0aCA9PT0gdGhpcy5saXN0Q2hpbGRyZW4ubGVuZ3RoICYmXG4gICAgICAgIHRoaXMubGlzdENoaWxkcmVuLmV2ZXJ5KChlLCBpKSA9PiBsaXN0Q2hpbGRyZW5baV0gPT09IGUpXG4gICAgICApIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmxpc3RDaGlsZHJlblxuICAgICAgICAuZmlsdGVyKChjKSA9PiAhbGlzdENoaWxkcmVuLmluY2x1ZGVzKGMpKVxuICAgICAgICAuZm9yRWFjaCgoYykgPT4gYy5yZW1vdmVBdHRyaWJ1dGUoJ3Nsb3QnKSk7XG4gICAgICB0aGlzLmxpc3RDaGlsZHJlbiA9IGxpc3RDaGlsZHJlbjtcblxuICAgICAgLy8gUmVtb3ZlIHRoZSBzc3IgYXR0cmlidXRlLCBvbmNlIHdlIGhhdmUgYWN0dWFsbHkgaW5pdGlhbGl6ZWQgdGhlIGNoaWxkcmVuIGVsZW1lbnRzLlxuICAgICAgdGhpcy5yZW1vdmVBdHRyaWJ1dGUoU1NSX0NISUxEX0NPVU5UX0FUVFJJQlVURSk7XG4gICAgfTtcblxuICAgIHByb3RlY3RlZCBvdmVycmlkZSB1cGRhdGVkKFxuICAgICAgY2hhbmdlZFByb3BlcnRpZXM6IFByb3BlcnR5VmFsdWVzPHRoaXMgJiB7IGxpc3RDaGlsZHJlbjogQ1tdIH0+LFxuICAgICk6IHZvaWQge1xuICAgICAgc3VwZXIudXBkYXRlZChjaGFuZ2VkUHJvcGVydGllcyk7XG5cbiAgICAgIGlmIChjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ2xpc3RDaGlsZHJlbicpKSB7XG4gICAgICAgIC8vIElmIHlvdSBhc3NpZ24gYSBzbG90IGF0dHJpYnV0ZSB3aXRob3V0IGEgY29ycmVzcG9uZGluZyBzbG90IGVsZW1lbnQsXG4gICAgICAgIC8vIGl0IGlzIG5vdCBmdWxseSBwYXJ0IG9mIHRoZSBET00gYW5kIGUuZy4gbWVkaWEgcXVlcmllcyB3aWxsIGZhaWwuXG4gICAgICAgIHRoaXMubGlzdENoaWxkcmVuLmZvckVhY2goKGMsIGluZGV4KSA9PlxuICAgICAgICAgIGMuc2V0QXR0cmlidXRlKCdzbG90JywgYCR7U0xPVE5BTUVfUFJFRklYfS0ke2luZGV4fWApLFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlbmRlcnMgbGlzdCBhbmQgbGlzdCBzbG90cyBmb3Igc2xvdHRlZCBjaGlsZHJlbiBvciBhIG51bWJlciBvZiBsaXN0IHNsb3RzXG4gICAgICogY29ycmVzcG9uZGluZyB0byB0aGUgYGRhdGEtc3NyLWNoaWxkLWNvdW50YCBhdHRyaWJ1dGUgdmFsdWUuXG4gICAgICpcbiAgICAgKiBUaGlzIGlzIGEgcG9zc2libGUgb3B0aW1pemF0aW9uIGZvciBTU1IsIGFzIGluIGFuIFNTUiBMaXQgZW52aXJvbm1lbnRcbiAgICAgKiBvdGhlciBlbGVtZW50cyBhcmUgbm90IGF2YWlsYWJsZSwgYnV0IG1pZ2h0IGJlIGF2YWlsYWJsZSBpbiB0aGUgbWV0YVxuICAgICAqIGZyYW1ld29yayB3cmFwcGVyIChsaWtlIGUuZy4gUmVhY3QpLiBUaGlzIGFsbG93cyB0byBwcm92aWRlIHRoZSBudW1iZXIgb2ZcbiAgICAgKiBjaGlsZHJlbiB0byBiZSBwYXNzZWQgdmlhIHRoZSBgZGF0YS1zc3ItY2hpbGQtY291bnRgIGF0dHJpYnV0ZSB2YWx1ZS5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgcmVuZGVyTGlzdChcbiAgICAgIGF0dHJpYnV0ZXM6IHsgY2xhc3M/OiBzdHJpbmc7IGFyaWFMYWJlbD86IHN0cmluZzsgYXJpYUxhYmVsbGVkYnk/OiBzdHJpbmcgfSA9IHt9LFxuICAgICAgbGlzdEl0ZW1BdHRyaWJ1dGVzOiB7IGxvY2FsTmFtZVZpc3VhbE9ubHk/OiBzdHJpbmdbXSB9ID0ge30sXG4gICAgKTogVGVtcGxhdGVSZXN1bHQge1xuICAgICAgY29uc3QgbGlzdFNsb3ROYW1lczogU2JiTmFtZWRTbG90UHJvcGVydGllc1tdID0gdGhpcy5saXN0U2xvdEVudHJpZXMobGlzdEl0ZW1BdHRyaWJ1dGVzKTtcblxuICAgICAgaWYgKGxpc3RTbG90TmFtZXMubGVuZ3RoID49IDIpIHtcbiAgICAgICAgcmV0dXJuIGh0bWxgXG4gICAgICAgICAgPHVsXG4gICAgICAgICAgICBjbGFzcz0ke2F0dHJpYnV0ZXMuY2xhc3MgfHwgdGhpcy5sb2NhbE5hbWV9XG4gICAgICAgICAgICBhcmlhLWxhYmVsPSR7YXR0cmlidXRlcy5hcmlhTGFiZWwgfHwgbm90aGluZ31cbiAgICAgICAgICAgIGFyaWEtbGFiZWxsZWRieT0ke2F0dHJpYnV0ZXMuYXJpYUxhYmVsbGVkYnkgfHwgbm90aGluZ31cbiAgICAgICAgICA+XG4gICAgICAgICAgICAke2xpc3RTbG90TmFtZXMubWFwKFxuICAgICAgICAgICAgICAoc2xvdCkgPT4gaHRtbGBcbiAgICAgICAgICAgICAgICA8bGkgYXJpYS1oaWRkZW49JHtzbG90LmFyaWFIaWRkZW4gfHwgbm90aGluZ30+XG4gICAgICAgICAgICAgICAgICA8c2xvdCBuYW1lPSR7c2xvdC5uYW1lfT48L3Nsb3Q+XG4gICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgYCxcbiAgICAgICAgICAgICl9XG4gICAgICAgICAgPC91bD5cbiAgICAgICAgICAke3RoaXMucmVuZGVySGlkZGVuU2xvdCgpfVxuICAgICAgICBgO1xuICAgICAgfSBlbHNlIGlmIChsaXN0U2xvdE5hbWVzLmxlbmd0aCA9PT0gMSkge1xuICAgICAgICByZXR1cm4gaHRtbGA8c3BhbiBjbGFzcz1cInNiYi1zY3JlZW4tcmVhZGVyLW9ubHlcIj4ke2F0dHJpYnV0ZXMuYXJpYUxhYmVsfTwvc3Bhbj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz0ke2F0dHJpYnV0ZXMuY2xhc3MgfHwgdGhpcy5sb2NhbE5hbWV9PlxuICAgICAgICAgICAgPHNwYW4+PHNsb3QgbmFtZT0ke2xpc3RTbG90TmFtZXNbMF0ubmFtZX0+PC9zbG90Pjwvc3Bhbj5cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgJHt0aGlzLnJlbmRlckhpZGRlblNsb3QoKX0gYDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiB0aGlzLnJlbmRlckhpZGRlblNsb3QoKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIGFuIGFycmF5IG9mIFNiYk5hbWVkU2xvdFByb3BlcnRpZXMsIHdoaWNoIGhvbGRzIHRoZSBsaXN0IHNsb3QgbmFtZXMgYW5kIHRoZSBoaWRkZW4gcHJvcGVydHk7XG4gICAgICogaXRzIGxlbmd0aCBjb3JyZXNwb25kcyB0byB0aGUgbnVtYmVyIG9mIG1hdGNoZWQgY2hpbGRyZW4gb3IgdGhlIGBkYXRhLXNzci1jaGlsZC1jb3VudGAgYXR0cmlidXRlIHZhbHVlLlxuICAgICAqXG4gICAgICogVGhpcyBpcyBhIHBvc3NpYmxlIG9wdGltaXphdGlvbiBmb3IgU1NSLCBhcyBpbiBhbiBTU1IgTGl0IGVudmlyb25tZW50XG4gICAgICogb3RoZXIgZWxlbWVudHMgYXJlIG5vdCBhdmFpbGFibGUsIGJ1dCBtaWdodCBiZSBhdmFpbGFibGUgaW4gdGhlIG1ldGFcbiAgICAgKiBmcmFtZXdvcmsgd3JhcHBlciAobGlrZSBlLmcuIFJlYWN0KS4gVGhpcyBhbGxvd3MgdG8gcHJvdmlkZSB0aGUgbnVtYmVyIG9mXG4gICAgICogY2hpbGRyZW4gdG8gYmUgcGFzc2VkIHZpYSB0aGUgYGRhdGEtc3NyLWNoaWxkLWNvdW50YCBhdHRyaWJ1dGUgdmFsdWUuXG4gICAgICovXG4gICAgcHJvdGVjdGVkIGxpc3RTbG90RW50cmllcyhsaXN0SXRlbUF0dHJpYnV0ZXM6IHtcbiAgICAgIGxvY2FsTmFtZVZpc3VhbE9ubHk/OiBzdHJpbmdbXTtcbiAgICB9KTogU2JiTmFtZWRTbG90UHJvcGVydGllc1tdIHtcbiAgICAgIGNvbnN0IGxpc3RDaGlsZHJlbiA9IHRoaXMubGlzdENoaWxkcmVuLmxlbmd0aFxuICAgICAgICA/IHRoaXMubGlzdENoaWxkcmVuXG4gICAgICAgIDogQXJyYXkuZnJvbSh7IGxlbmd0aDogKyh0aGlzLmdldEF0dHJpYnV0ZShTU1JfQ0hJTERfQ09VTlRfQVRUUklCVVRFKSA/PyAwKSB9KTtcbiAgICAgIHJldHVybiBsaXN0Q2hpbGRyZW4ubWFwKChlLCBpKSA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgbmFtZTogYCR7U0xPVE5BTUVfUFJFRklYfS0ke2l9YCxcbiAgICAgICAgICBhcmlhSGlkZGVuOlxuICAgICAgICAgICAgbGlzdEl0ZW1BdHRyaWJ1dGVzPy5sb2NhbE5hbWVWaXN1YWxPbmx5Py5pbmNsdWRlcygoZSBhcyBIVE1MRWxlbWVudCkubG9jYWxOYW1lKSA/P1xuICAgICAgICAgICAgZmFsc2UsXG4gICAgICAgIH07XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIGEgaGlkZGVuIHNsb3QsIHdoaWNoIGlzIGludGVuZGVkIGFzIHRoZSBjaGlsZHJlbiBjaGFuZ2UgZGV0ZWN0aW9uLlxuICAgICAqIFdoZW4gYW4gZWxlbWVudCB3aXRob3V0IGEgc2xvdCBhdHRyaWJ1dGUgaXMgc2xvdHRlZCB0byB0aGUgZWxlbWVudCwgaXQgdHJpZ2dlcnNcbiAgICAgKiB0aGUgc2xvdGNoYW5nZSBldmVudCwgd2hpY2ggY2FuIGJlIHVzZWQgdG8gYXNzaWduIGl0IHRvIHRoZSBhcHByb3ByaWF0ZSBuYW1lZCBzbG90LlxuICAgICAqL1xuICAgIHByb3RlY3RlZCByZW5kZXJIaWRkZW5TbG90KCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICAgIHJldHVybiBodG1sYDxzcGFuIGhpZGRlbj48c2xvdD48L3Nsb3Q+PC9zcGFuPmA7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIE5hbWVkU2xvdExpc3RFbGVtZW50IGFzIHVua25vd24gYXMgQWJzdHJhY3RDb25zdHJ1Y3RvcjxTYmJOYW1lZFNsb3RMaXN0TWl4aW5UeXBlPEM+PiAmIFQ7XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7OztBQVlBLElBQU0sNEJBQTRCO0FBQ2xDLElBQU0sa0JBQWtCO0FBeUN4QixJQUFhLHlC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
@@ -57,4 +57,4 @@ var SbbNegativeMixin = (superClass) => {
57
57
  //#endregion
58
58
  export { SbbNegativeMixin };
59
59
 
60
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmVnYXRpdmUtbWl4aW4uanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NvcmUvbWl4aW5zL25lZ2F0aXZlLW1peGluLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgTGl0RWxlbWVudCB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBwcm9wZXJ0eSB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcblxuaW1wb3J0IHsgZm9yY2VUeXBlIH0gZnJvbSAnLi4vZGVjb3JhdG9ycy9mb3JjZS10eXBlLnRzJztcblxuaW1wb3J0IHR5cGUgeyBBYnN0cmFjdENvbnN0cnVjdG9yIH0gZnJvbSAnLi9jb25zdHJ1Y3Rvci50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGNsYXNzIFNiYk5lZ2F0aXZlTWl4aW5UeXBlIHtcbiAgcHVibGljIGFjY2Vzc29yIG5lZ2F0aXZlOiBib29sZWFuO1xufVxuXG4vKipcbiAqIEVuaGFuY2UgeW91ciBjb21wb25lbnQgd2l0aCBhIG5lZ2F0aXZlIHByb3BlcnR5LlxuICovXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG5leHBvcnQgY29uc3QgU2JiTmVnYXRpdmVNaXhpbiA9IDxUIGV4dGVuZHMgQWJzdHJhY3RDb25zdHJ1Y3RvcjxMaXRFbGVtZW50Pj4oXG4gIHN1cGVyQ2xhc3M6IFQsXG4pOiBBYnN0cmFjdENvbnN0cnVjdG9yPFNiYk5lZ2F0aXZlTWl4aW5UeXBlPiAmIFQgPT4ge1xuICBhYnN0cmFjdCBjbGFzcyBTYmJOZWdhdGl2ZUVsZW1lbnQgZXh0ZW5kcyBzdXBlckNsYXNzIGltcGxlbWVudHMgU2JiTmVnYXRpdmVNaXhpblR5cGUge1xuICAgIC8qKiBOZWdhdGl2ZSBjb2xvcmluZyB2YXJpYW50IGZsYWcuICovXG4gICAgQGZvcmNlVHlwZSgpXG4gICAgQHByb3BlcnR5KHsgcmVmbGVjdDogdHJ1ZSwgdHlwZTogQm9vbGVhbiB9KVxuICAgIHB1YmxpYyBhY2Nlc3NvciBuZWdhdGl2ZTogYm9vbGVhbiA9IGZhbHNlO1xuICB9XG5cbiAgcmV0dXJuIFNiYk5lZ2F0aXZlRWxlbWVudCBhcyBBYnN0cmFjdENvbnN0cnVjdG9yPFNiYk5lZ2F0aXZlTWl4aW5UeXBlPiAmIFQ7XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBZUEsSUFBYSxvQkFDWCxlQUNpRDtBQVFqRCxlQVBpQztvQkFBUzs7OztlQUEzQiwyQkFBMkIsWUFBVTs7OzRCQUVqRCxXQUFXLEVBQ1gsU0FBUztLQUFFLFNBQVM7S0FBTSxNQUFNO0tBQVMsQ0FBQyxDQUFBO0FBQzNDLGlCQUFBLE1BQUEsTUFBQSxzQkFBQTtLQUFBLE1BQUE7S0FBQSxNQUFBO0tBQUEsUUFBQTtLQUFBLFNBQUE7S0FBQSxRQUFBO01BQUEsTUFBQSxRQUFBLGNBQUE7TUFBQSxNQUFBLFFBQUEsSUFBZ0I7TUFBUSxNQUFBLEtBQUEsVUFBQTtBQUFBLFdBQVIsV0FBUTs7TUFBQTtLQUFBLFVBQUE7S0FBQSxFQUFBLHdCQUFBLDRCQUFBOzs7Ozs7OztHQUF4Qiw2QkFBQSxrQkFBQSxNQUFBLHdCQUFvQyxNQUFLOztHQUF6QyxJQUFnQixXQUFRO0FBQUEsV0FBQSxNQUFBOztHQUF4QixJQUFnQixTQUFRLE9BQUE7QUFBQSxVQUFBLDRCQUFBOzs7Ozs7O0tBR25CIn0=
60
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmVnYXRpdmUtbWl4aW4uanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NvcmUvbWl4aW5zL25lZ2F0aXZlLW1peGluLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgTGl0RWxlbWVudCB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBwcm9wZXJ0eSB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcblxuaW1wb3J0IHsgZm9yY2VUeXBlIH0gZnJvbSAnLi4vZGVjb3JhdG9ycy9mb3JjZS10eXBlLnRzJztcblxuaW1wb3J0IHR5cGUgeyBBYnN0cmFjdENvbnN0cnVjdG9yIH0gZnJvbSAnLi9jb25zdHJ1Y3Rvci50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGNsYXNzIFNiYk5lZ2F0aXZlTWl4aW5UeXBlIHtcbiAgcHVibGljIGFjY2Vzc29yIG5lZ2F0aXZlOiBib29sZWFuO1xufVxuXG4vKipcbiAqIEVuaGFuY2UgeW91ciBjb21wb25lbnQgd2l0aCBhIG5lZ2F0aXZlIHByb3BlcnR5LlxuICovXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG5leHBvcnQgY29uc3QgU2JiTmVnYXRpdmVNaXhpbiA9IDxUIGV4dGVuZHMgQWJzdHJhY3RDb25zdHJ1Y3RvcjxMaXRFbGVtZW50Pj4oXG4gIHN1cGVyQ2xhc3M6IFQsXG4pOiBBYnN0cmFjdENvbnN0cnVjdG9yPFNiYk5lZ2F0aXZlTWl4aW5UeXBlPiAmIFQgPT4ge1xuICBhYnN0cmFjdCBjbGFzcyBTYmJOZWdhdGl2ZUVsZW1lbnQgZXh0ZW5kcyBzdXBlckNsYXNzIGltcGxlbWVudHMgU2JiTmVnYXRpdmVNaXhpblR5cGUge1xuICAgIC8qKiBOZWdhdGl2ZSBjb2xvcmluZyB2YXJpYW50IGZsYWcuICovXG4gICAgQGZvcmNlVHlwZSgpXG4gICAgQHByb3BlcnR5KHsgcmVmbGVjdDogdHJ1ZSwgdHlwZTogQm9vbGVhbiB9KVxuICAgIHB1YmxpYyBhY2Nlc3NvciBuZWdhdGl2ZTogYm9vbGVhbiA9IGZhbHNlO1xuICB9XG5cbiAgcmV0dXJuIFNiYk5lZ2F0aXZlRWxlbWVudCBhcyBBYnN0cmFjdENvbnN0cnVjdG9yPFNiYk5lZ2F0aXZlTWl4aW5UeXBlPiAmIFQ7XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBZUEsSUFBYSxvQkFDWCxlQUNpRDtDQVFqRCxjQVBpQztvQkFBUzs7OztlQUEzQiwyQkFBMkIsWUFBVTs7OzRCQUVqRCxXQUFXLEVBQ1gsU0FBUztLQUFFLFNBQVM7S0FBTSxNQUFNO0tBQVMsQ0FBQyxDQUFBO0lBQzNDLGFBQUEsTUFBQSxNQUFBLHNCQUFBO0tBQUEsTUFBQTtLQUFBLE1BQUE7S0FBQSxRQUFBO0tBQUEsU0FBQTtLQUFBLFFBQUE7TUFBQSxNQUFBLFFBQUEsY0FBQTtNQUFBLE1BQUEsUUFBQSxJQUFnQjtNQUFRLE1BQUEsS0FBQSxVQUFBO09BQUEsSUFBUixXQUFROztNQUFBO0tBQUEsVUFBQTtLQUFBLEVBQUEsd0JBQUEsNEJBQUE7Ozs7Ozs7O0dBQXhCLDZCQUFBLGtCQUFBLE1BQUEsd0JBQW9DLE1BQUs7O0dBQXpDLElBQWdCLFdBQVE7SUFBQSxPQUFBLEtBQUE7O0dBQXhCLElBQWdCLFNBQVEsT0FBQTtJQUFBLEtBQUEsNkJBQUE7Ozs7Ozs7S0FHbkIifQ==
@@ -1,8 +1,8 @@
1
1
  import { LitElement } from 'lit';
2
- import { SbbCheckboxSize } from '../../checkbox/common/checkbox-common.ts';
3
2
  import { SbbCheckboxGroupElement } from '../../checkbox-group.pure.ts';
4
- import { SbbRadioButtonSize } from '../../radio-button/common/radio-button-common.ts';
3
+ import { SbbCheckboxElement } from '../../checkbox.pure.ts';
5
4
  import { SbbRadioButtonGroupElement } from '../../radio-button-group.pure.ts';
5
+ import { SbbRadioButtonElement } from '../../radio-button.pure.ts';
6
6
  import { AbstractConstructor } from './constructor.ts';
7
7
  interface SbbPanelWithGroup {
8
8
  group: SbbCheckboxGroupElement | SbbRadioButtonGroupElement | null;
@@ -11,7 +11,7 @@ export declare class SbbPanelMixinType {
11
11
  accessor color: 'white' | 'milk';
12
12
  accessor borderless: boolean;
13
13
  accessor expansionState: string;
14
- accessor size: SbbCheckboxSize | SbbRadioButtonSize;
14
+ accessor size: SbbCheckboxElement['size'] | SbbRadioButtonElement['size'];
15
15
  }
16
16
  /**
17
17
  * Mixin for common panel behaviors
@@ -1 +1 @@
1
- {"version":3,"file":"panel-mixin.d.ts","sourceRoot":"","sources":["../../../../../src/elements/core/mixins/panel-mixin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,KAAK,UAAU,EAAa,MAAM,KAAK,CAAC;AAGtE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0CAA0C,CAAC;AAChF,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAC5E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kDAAkD,CAAC;AAC3F,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,kCAAkC,CAAC;AAKnF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAG5D,UAAU,iBAAiB;IACzB,KAAK,EAAE,uBAAuB,GAAG,0BAA0B,GAAG,IAAI,CAAC;CACpE;AAED,MAAM,CAAC,OAAO,OAAO,iBAAiB;IACpC,SAAgB,KAAK,EAAE,OAAO,GAAG,MAAM,CAAC;IACxC,SAAgB,UAAU,EAAE,OAAO,CAAC;IACpC,SAAgB,cAAc,EAAE,MAAM,CAAC;IACvC,SAAgB,IAAI,EAAE,eAAe,GAAG,kBAAkB,CAAC;CAC5D;AAED;;GAEG;AAEH,eAAO,MAAM,aAAa,GAAI,CAAC,SAAS,mBAAmB,CAAC,UAAU,GAAG,iBAAiB,CAAC,EACzF,YAAY,CAAC,KACZ,mBAAmB,CAAC,iBAAiB,CAAC,GAAG,CAmC3C,CAAC"}
1
+ {"version":3,"file":"panel-mixin.d.ts","sourceRoot":"","sources":["../../../../../src/elements/core/mixins/panel-mixin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,KAAK,UAAU,EAAa,MAAM,KAAK,CAAC;AAGtE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAC5E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,kCAAkC,CAAC;AACnF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAIxE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAG5D,UAAU,iBAAiB;IACzB,KAAK,EAAE,uBAAuB,GAAG,0BAA0B,GAAG,IAAI,CAAC;CACpE;AAED,MAAM,CAAC,OAAO,OAAO,iBAAiB;IACpC,SAAgB,KAAK,EAAE,OAAO,GAAG,MAAM,CAAC;IACxC,SAAgB,UAAU,EAAE,OAAO,CAAC;IACpC,SAAgB,cAAc,EAAE,MAAM,CAAC;IACvC,SAAgB,IAAI,EAAE,kBAAkB,CAAC,MAAM,CAAC,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC;CAClF;AAED;;GAEG;AAEH,eAAO,MAAM,aAAa,GAAI,CAAC,SAAS,mBAAmB,CAAC,UAAU,GAAG,iBAAiB,CAAC,EACzF,YAAY,CAAC,KACZ,mBAAmB,CAAC,iBAAiB,CAAC,GAAG,CAkC3C,CAAC"}
@@ -1,2 +1,2 @@
1
- import { t as SbbPanelMixin } from "../../panel-mixin-CFz9-K_8.js";
1
+ import { t as SbbPanelMixin } from "../../panel-mixin-DPybe45K.js";
2
2
  export { SbbPanelMixin };
@@ -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+ICYgVDtcbn07XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQWFBLElBQWEsb0JBQ1gsZUFDaUQ7QUFtQmpELGVBbEJpQztvQkFBUzs7O2VBQTNCLDJCQUEyQixZQUFVOzs7Z0NBS2pELFNBQVM7S0FBRSxNQUFNO0tBQVMsV0FBVztLQUFZLENBQUMsQ0FBQTtBQUNuRCxpQkFBQSxNQUFBLE1BQUEsMEJBQUE7S0FBQSxNQUFBO0tBQUEsTUFBQTtLQUFBLFFBQUE7S0FBQSxTQUFBO0tBQUEsUUFBQTtNQUFBLE1BQUEsUUFBQSxjQUFBO01BQUEsTUFBQSxLQUFBLFVBQUE7QUFBQSxXQUFXLFdBQVE7O01BQUE7S0FBQSxVQUFBO0tBQUEsRUFBQSxNQUFBLDJCQUFBOzs7Ozs7Ozs7Ozs7R0FBbkIsSUFBVyxTQUFTLE9BQWM7QUFDaEMsVUFBQSxXQUFpQixDQUFDLENBQUM7QUFHbkIsU0FBSyxnQkFBZ0IsWUFBWSxNQUFBLFNBQWU7O0dBRWxELElBQVcsV0FBUTtBQUNqQixXQUFPLE1BQUE7O0dBRVQsYUFmYSxrQkFBQSxNQUFBLDJCQUFrQixFQWVuQjs7S0FHUCJ9
57
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVhZG9ubHktbWl4aW4uanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NvcmUvbWl4aW5zL3JlYWRvbmx5LW1peGluLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgTGl0RWxlbWVudCB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBwcm9wZXJ0eSB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcblxuaW1wb3J0IHR5cGUgeyBBYnN0cmFjdENvbnN0cnVjdG9yIH0gZnJvbSAnLi9jb25zdHJ1Y3Rvci50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGNsYXNzIFNiYlJlYWRvbmx5TWl4aW5UeXBlIHtcbiAgcHVibGljIGFjY2Vzc29yIHJlYWRPbmx5OiBib29sZWFuO1xufVxuXG4vKipcbiAqIEVuaGFuY2UgeW91ciBjb21wb25lbnQgd2l0aCBhIHJlYWRvbmx5IHByb3BlcnR5LlxuICovXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG5leHBvcnQgY29uc3QgU2JiUmVhZG9ubHlNaXhpbiA9IDxUIGV4dGVuZHMgQWJzdHJhY3RDb25zdHJ1Y3RvcjxMaXRFbGVtZW50Pj4oXG4gIHN1cGVyQ2xhc3M6IFQsXG4pOiBBYnN0cmFjdENvbnN0cnVjdG9yPFNiYlJlYWRvbmx5TWl4aW5UeXBlPiAmIFQgPT4ge1xuICBhYnN0cmFjdCBjbGFzcyBTYmJSZWFkb25seUVsZW1lbnQgZXh0ZW5kcyBzdXBlckNsYXNzIGltcGxlbWVudHMgUGFydGlhbDxTYmJSZWFkb25seU1peGluVHlwZT4ge1xuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdGhlIGNvbXBvbmVudCBpcyByZWFkb25seS5cbiAgICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgICAqL1xuICAgIEBwcm9wZXJ0eSh7IHR5cGU6IEJvb2xlYW4sIGF0dHJpYnV0ZTogJ3JlYWRvbmx5JyB9KVxuICAgIHB1YmxpYyBzZXQgcmVhZE9ubHkodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgIHRoaXMuI3JlYWRPbmx5ID0gISF2YWx1ZTtcblxuICAgICAgLy8gVGhlIGF0dHJpYnV0ZSBuZWVkcyB0byBiZSByZWZsZWN0ZWQgc3luY2hyb25vdXNseSAobGlrZSBuYXRpdmUpXG4gICAgICB0aGlzLnRvZ2dsZUF0dHJpYnV0ZSgncmVhZG9ubHknLCB0aGlzLiNyZWFkT25seSk7XG4gICAgfVxuICAgIHB1YmxpYyBnZXQgcmVhZE9ubHkoKTogYm9vbGVhbiB7XG4gICAgICByZXR1cm4gdGhpcy4jcmVhZE9ubHk7XG4gICAgfVxuICAgICNyZWFkT25seSA9IGZhbHNlO1xuICB9XG5cbiAgcmV0dXJuIFNiYlJlYWRvbmx5RWxlbWVudCBhcyB1bmtub3duIGFzIEFic3RyYWN0Q29uc3RydWN0b3I8U2JiUmVhZG9ubHlNaXhpblR5cGU+ICYgVDtcbn07XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQWFBLElBQWEsb0JBQ1gsZUFDaUQ7Q0FtQmpELGNBbEJpQztvQkFBUzs7O2VBQTNCLDJCQUEyQixZQUFVOzs7Z0NBS2pELFNBQVM7S0FBRSxNQUFNO0tBQVMsV0FBVztLQUFZLENBQUMsQ0FBQTtJQUNuRCxhQUFBLE1BQUEsTUFBQSwwQkFBQTtLQUFBLE1BQUE7S0FBQSxNQUFBO0tBQUEsUUFBQTtLQUFBLFNBQUE7S0FBQSxRQUFBO01BQUEsTUFBQSxRQUFBLGNBQUE7TUFBQSxNQUFBLEtBQUEsVUFBQTtPQUFBLElBQVcsV0FBUTs7TUFBQTtLQUFBLFVBQUE7S0FBQSxFQUFBLE1BQUEsMkJBQUE7Ozs7Ozs7Ozs7OztHQUFuQixJQUFXLFNBQVMsT0FBYztJQUNoQyxLQUFLLFlBQVksQ0FBQyxDQUFDO0lBR25CLEtBQUssZ0JBQWdCLFlBQVksS0FBSyxVQUFVOztHQUVsRCxJQUFXLFdBQVE7SUFDakIsT0FBTyxLQUFLOztHQUVkLGFBZmEsa0JBQUEsTUFBQSwyQkFBa0IsRUFlbkI7O0tBR1AifQ==
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWlyZWQtbWl4aW4uanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NvcmUvbWl4aW5zL3JlcXVpcmVkLW1peGluLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUHJvcGVydHlWYWx1ZXMgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgcHJvcGVydHkgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5cbmltcG9ydCB0eXBlIHsgU2JiRWxlbWVudCB9IGZyb20gJy4uL2Jhc2UtZWxlbWVudHMvZWxlbWVudC50cyc7XG5cbmltcG9ydCB0eXBlIHsgQWJzdHJhY3RDb25zdHJ1Y3RvciB9IGZyb20gJy4vY29uc3RydWN0b3IudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBjbGFzcyBTYmJSZXF1aXJlZE1peGluVHlwZSB7XG4gIHB1YmxpYyBhY2Nlc3NvciByZXF1aXJlZDogYm9vbGVhbjtcbiAgcHJvdGVjdGVkIGlzUmVxdWlyZWRFeHRlcm5hbGx5KCk6IGJvb2xlYW47XG59XG5cbi8qKlxuICogRW5oYW5jZSB5b3VyIGNvbXBvbmVudCB3aXRoIGEgcmVxdWlyZWQgcHJvcGVydHkuXG4gKi9cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbmV4cG9ydCBjb25zdCBTYmJSZXF1aXJlZE1peGluID0gPFQgZXh0ZW5kcyBBYnN0cmFjdENvbnN0cnVjdG9yPFNiYkVsZW1lbnQ+PihcbiAgc3VwZXJDbGFzczogVCxcbik6IEFic3RyYWN0Q29uc3RydWN0b3I8U2JiUmVxdWlyZWRNaXhpblR5cGU+ICYgVCA9PiB7XG4gIGFic3RyYWN0IGNsYXNzIFNiYlJlcXVpcmVkRWxlbWVudCBleHRlbmRzIHN1cGVyQ2xhc3MgaW1wbGVtZW50cyBQYXJ0aWFsPFNiYlJlcXVpcmVkTWl4aW5UeXBlPiB7XG4gICAgLyoqIFdoZXRoZXIgdGhlIGNvbXBvbmVudCBpcyByZXF1aXJlZC4gKi9cbiAgICBAcHJvcGVydHkoeyByZWZsZWN0OiB0cnVlLCB0eXBlOiBCb29sZWFuIH0pXG4gICAgcHVibGljIHNldCByZXF1aXJlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgLy8gVG8gcHJvdmlkZSB0aGUgc2FtZSBiZWhhdmlvciBhcyB0aGUgbmF0aXZlIHJlcXVpcmVkIHN0YXRlLFxuICAgICAgLy8gYW55IHZhbHVlIGlzIGNvbnZlcnRlZCB0byBhIGJvb2xlYW4uXG4gICAgICB0aGlzLl9yZXF1aXJlZCA9IEJvb2xlYW4odmFsdWUpO1xuICAgIH1cbiAgICBwdWJsaWMgZ2V0IHJlcXVpcmVkKCk6IGJvb2xlYW4ge1xuICAgICAgcmV0dXJuIHRoaXMuX3JlcXVpcmVkIHx8IHRoaXMuaXNSZXF1aXJlZEV4dGVybmFsbHkoKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfcmVxdWlyZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIHByb3RlY3RlZCBvdmVycmlkZSB3aWxsVXBkYXRlKGNoYW5nZWRQcm9wZXJ0aWVzOiBQcm9wZXJ0eVZhbHVlczx0aGlzPik6IHZvaWQge1xuICAgICAgc3VwZXIud2lsbFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllcyk7XG5cbiAgICAgIGlmIChjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ3JlcXVpcmVkJykpIHtcbiAgICAgICAgLy8gRmlyZWZveCBuZWVkcyBleHBsaWNpdGx5IHNldCBhcmlhLXJlcXVpcmVkIHZhbHVlLlxuICAgICAgICB0aGlzLmludGVybmFscy5hcmlhUmVxdWlyZWQgPSBgJHt0aGlzLnJlcXVpcmVkfWA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogV2lsbCBiZSB1c2VkIGFzICdvcicgY2hlY2sgdG8gdGhlIGN1cnJlbnQgcmVxdWlyZWQgc3RhdGUuXG4gICAgICogQ2FuIGUuZy4gYmUgdXNlZCB0byByZWFkIHJlcXVpcmVkIHN0YXRlIG9mIGEgZ3JvdXAuXG4gICAgICovXG4gICAgcHJvdGVjdGVkIGlzUmVxdWlyZWRFeHRlcm5hbGx5KCk6IGJvb2xlYW4ge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBTYmJSZXF1aXJlZEVsZW1lbnQgYXMgdW5rbm93biBhcyBBYnN0cmFjdENvbnN0cnVjdG9yPFNiYlJlcXVpcmVkTWl4aW5UeXBlPiAmIFQ7XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFnQkEsSUFBYSxvQkFDWCxlQUNpRDtBQWdDakQsZUEvQmlDO29CQUFTOzs7ZUFBM0IsMkJBQTJCLFlBQVU7OztBQVcxQyxTQUFBLGFBWEssa0JBQUEsTUFBQSwyQkFBa0IsRUFXRjs7OztnQ0FUNUIsU0FBUztLQUFFLFNBQVM7S0FBTSxNQUFNO0tBQVMsQ0FBQyxDQUFBO0FBQzNDLGlCQUFBLE1BQUEsTUFBQSwwQkFBQTtLQUFBLE1BQUE7S0FBQSxNQUFBO0tBQUEsUUFBQTtLQUFBLFNBQUE7S0FBQSxRQUFBO01BQUEsTUFBQSxRQUFBLGNBQUE7TUFBQSxNQUFBLEtBQUEsVUFBQTtBQUFBLFdBQVcsV0FBUTs7TUFBQTtLQUFBLFVBQUE7S0FBQSxFQUFBLE1BQUEsMkJBQUE7Ozs7Ozs7OztHQUFuQixJQUFXLFNBQVMsT0FBYztBQUdoQyxTQUFLLFlBQVksUUFBUSxNQUFNOztHQUVqQyxJQUFXLFdBQVE7QUFDakIsV0FBTyxLQUFLLGFBQWEsS0FBSyxzQkFBc0I7O0dBSW5DLFdBQVcsbUJBQXVDO0FBQ25FLFVBQU0sV0FBVyxrQkFBa0I7QUFFbkMsUUFBSSxrQkFBa0IsSUFBSSxXQUFXLENBRW5DLE1BQUssVUFBVSxlQUFlLEdBQUcsS0FBSzs7Ozs7O0dBUWhDLHVCQUFvQjtBQUM1QixXQUFPOzs7S0FJSiJ9
67
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWlyZWQtbWl4aW4uanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NvcmUvbWl4aW5zL3JlcXVpcmVkLW1peGluLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUHJvcGVydHlWYWx1ZXMgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgcHJvcGVydHkgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5cbmltcG9ydCB0eXBlIHsgU2JiRWxlbWVudCB9IGZyb20gJy4uL2Jhc2UtZWxlbWVudHMvZWxlbWVudC50cyc7XG5cbmltcG9ydCB0eXBlIHsgQWJzdHJhY3RDb25zdHJ1Y3RvciB9IGZyb20gJy4vY29uc3RydWN0b3IudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBjbGFzcyBTYmJSZXF1aXJlZE1peGluVHlwZSB7XG4gIHB1YmxpYyBhY2Nlc3NvciByZXF1aXJlZDogYm9vbGVhbjtcbiAgcHJvdGVjdGVkIGlzUmVxdWlyZWRFeHRlcm5hbGx5KCk6IGJvb2xlYW47XG59XG5cbi8qKlxuICogRW5oYW5jZSB5b3VyIGNvbXBvbmVudCB3aXRoIGEgcmVxdWlyZWQgcHJvcGVydHkuXG4gKi9cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbmV4cG9ydCBjb25zdCBTYmJSZXF1aXJlZE1peGluID0gPFQgZXh0ZW5kcyBBYnN0cmFjdENvbnN0cnVjdG9yPFNiYkVsZW1lbnQ+PihcbiAgc3VwZXJDbGFzczogVCxcbik6IEFic3RyYWN0Q29uc3RydWN0b3I8U2JiUmVxdWlyZWRNaXhpblR5cGU+ICYgVCA9PiB7XG4gIGFic3RyYWN0IGNsYXNzIFNiYlJlcXVpcmVkRWxlbWVudCBleHRlbmRzIHN1cGVyQ2xhc3MgaW1wbGVtZW50cyBQYXJ0aWFsPFNiYlJlcXVpcmVkTWl4aW5UeXBlPiB7XG4gICAgLyoqIFdoZXRoZXIgdGhlIGNvbXBvbmVudCBpcyByZXF1aXJlZC4gKi9cbiAgICBAcHJvcGVydHkoeyByZWZsZWN0OiB0cnVlLCB0eXBlOiBCb29sZWFuIH0pXG4gICAgcHVibGljIHNldCByZXF1aXJlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgLy8gVG8gcHJvdmlkZSB0aGUgc2FtZSBiZWhhdmlvciBhcyB0aGUgbmF0aXZlIHJlcXVpcmVkIHN0YXRlLFxuICAgICAgLy8gYW55IHZhbHVlIGlzIGNvbnZlcnRlZCB0byBhIGJvb2xlYW4uXG4gICAgICB0aGlzLl9yZXF1aXJlZCA9IEJvb2xlYW4odmFsdWUpO1xuICAgIH1cbiAgICBwdWJsaWMgZ2V0IHJlcXVpcmVkKCk6IGJvb2xlYW4ge1xuICAgICAgcmV0dXJuIHRoaXMuX3JlcXVpcmVkIHx8IHRoaXMuaXNSZXF1aXJlZEV4dGVybmFsbHkoKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfcmVxdWlyZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIHByb3RlY3RlZCBvdmVycmlkZSB3aWxsVXBkYXRlKGNoYW5nZWRQcm9wZXJ0aWVzOiBQcm9wZXJ0eVZhbHVlczx0aGlzPik6IHZvaWQge1xuICAgICAgc3VwZXIud2lsbFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllcyk7XG5cbiAgICAgIGlmIChjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ3JlcXVpcmVkJykpIHtcbiAgICAgICAgLy8gRmlyZWZveCBuZWVkcyBleHBsaWNpdGx5IHNldCBhcmlhLXJlcXVpcmVkIHZhbHVlLlxuICAgICAgICB0aGlzLmludGVybmFscy5hcmlhUmVxdWlyZWQgPSBgJHt0aGlzLnJlcXVpcmVkfWA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogV2lsbCBiZSB1c2VkIGFzICdvcicgY2hlY2sgdG8gdGhlIGN1cnJlbnQgcmVxdWlyZWQgc3RhdGUuXG4gICAgICogQ2FuIGUuZy4gYmUgdXNlZCB0byByZWFkIHJlcXVpcmVkIHN0YXRlIG9mIGEgZ3JvdXAuXG4gICAgICovXG4gICAgcHJvdGVjdGVkIGlzUmVxdWlyZWRFeHRlcm5hbGx5KCk6IGJvb2xlYW4ge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBTYmJSZXF1aXJlZEVsZW1lbnQgYXMgdW5rbm93biBhcyBBYnN0cmFjdENvbnN0cnVjdG9yPFNiYlJlcXVpcmVkTWl4aW5UeXBlPiAmIFQ7XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFnQkEsSUFBYSxvQkFDWCxlQUNpRDtDQWdDakQsY0EvQmlDO29CQUFTOzs7ZUFBM0IsMkJBQTJCLFlBQVU7OztJQVcxQyxLQUFBLGFBWEssa0JBQUEsTUFBQSwyQkFBa0IsRUFXRjs7OztnQ0FUNUIsU0FBUztLQUFFLFNBQVM7S0FBTSxNQUFNO0tBQVMsQ0FBQyxDQUFBO0lBQzNDLGFBQUEsTUFBQSxNQUFBLDBCQUFBO0tBQUEsTUFBQTtLQUFBLE1BQUE7S0FBQSxRQUFBO0tBQUEsU0FBQTtLQUFBLFFBQUE7TUFBQSxNQUFBLFFBQUEsY0FBQTtNQUFBLE1BQUEsS0FBQSxVQUFBO09BQUEsSUFBVyxXQUFROztNQUFBO0tBQUEsVUFBQTtLQUFBLEVBQUEsTUFBQSwyQkFBQTs7Ozs7Ozs7O0dBQW5CLElBQVcsU0FBUyxPQUFjO0lBR2hDLEtBQUssWUFBWSxRQUFRLE1BQU07O0dBRWpDLElBQVcsV0FBUTtJQUNqQixPQUFPLEtBQUssYUFBYSxLQUFLLHNCQUFzQjs7R0FJbkMsV0FBVyxtQkFBdUM7SUFDbkUsTUFBTSxXQUFXLGtCQUFrQjtJQUVuQyxJQUFJLGtCQUFrQixJQUFJLFdBQVcsRUFFbkMsS0FBSyxVQUFVLGVBQWUsR0FBRyxLQUFLOzs7Ozs7R0FRaEMsdUJBQW9CO0lBQzVCLE9BQU87OztLQUlKIn0=
@@ -15,6 +15,7 @@ var SbbSelectionPanelMixin = (superClass) => {
15
15
  }
16
16
  constructor(...args) {
17
17
  super(args);
18
+ this._previousSize = null;
18
19
  this._propertyWatcher = new SbbPropertyWatcherController(this, () => this.panel, {
19
20
  checked: (panel) => {
20
21
  this.toggleState("checked", panel.checked);
@@ -47,4 +48,4 @@ var SbbSelectionPanelMixin = (superClass) => {
47
48
  //#endregion
48
49
  export { SbbSelectionPanelMixin };
49
50
 
50
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0aW9uLXBhbmVsLW1peGluLmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb3JlL21peGlucy9zZWxlY3Rpb24tcGFuZWwtbWl4aW4udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBTYmJDaGVja2JveEdyb3VwRWxlbWVudCB9IGZyb20gJy4uLy4uL2NoZWNrYm94LWdyb3VwLnB1cmUudHMnO1xuaW1wb3J0IHR5cGUgeyBTYmJDaGVja2JveFBhbmVsRWxlbWVudCB9IGZyb20gJy4uLy4uL2NoZWNrYm94LXBhbmVsLnB1cmUudHMnO1xuaW1wb3J0IHR5cGUgeyBTYmJSYWRpb0J1dHRvbkdyb3VwRWxlbWVudCB9IGZyb20gJy4uLy4uL3JhZGlvLWJ1dHRvbi1ncm91cC5wdXJlLnRzJztcbmltcG9ydCB0eXBlIHsgU2JiUmFkaW9CdXR0b25QYW5lbEVsZW1lbnQgfSBmcm9tICcuLi8uLi9yYWRpby1idXR0b24tcGFuZWwucHVyZS50cyc7XG5pbXBvcnQgdHlwZSB7IFNiYkVsZW1lbnQgfSBmcm9tICcuLi9iYXNlLWVsZW1lbnRzL2VsZW1lbnQudHMnO1xuaW1wb3J0IHsgU2JiUHJvcGVydHlXYXRjaGVyQ29udHJvbGxlciB9IGZyb20gJy4uL2NvbnRyb2xsZXJzL3Byb3BlcnR5LXdhdGNoZXItY29udHJvbGxlci50cyc7XG5cbmltcG9ydCB0eXBlIHsgQWJzdHJhY3RDb25zdHJ1Y3RvciB9IGZyb20gJy4vY29uc3RydWN0b3IudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBjbGFzcyBTYmJTZWxlY3Rpb25QYW5lbE1peGluVHlwZSBleHRlbmRzIFNiYkVsZW1lbnQge1xuICBwdWJsaWMgZ2V0IHBhbmVsKCk6IFNiYlJhZGlvQnV0dG9uUGFuZWxFbGVtZW50IHwgU2JiQ2hlY2tib3hQYW5lbEVsZW1lbnQgfCBudWxsO1xuICBwdWJsaWMgZ2V0IGdyb3VwKCk6IFNiYlJhZGlvQnV0dG9uR3JvdXBFbGVtZW50IHwgU2JiQ2hlY2tib3hHcm91cEVsZW1lbnQgfCBudWxsO1xuXG4gIHByb3RlY3RlZCBvbklucHV0U3RhdGVDaGFuZ2U/KCk6IHZvaWQ7XG59XG5cbi8qKlxuICogTWl4aW4gZm9yIGNvbW1vbiBzZWxlY3Rpb24gcGFuZWwgYmVoYXZpb3JzXG4gKi9cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbmV4cG9ydCBjb25zdCBTYmJTZWxlY3Rpb25QYW5lbE1peGluID0gPFQgZXh0ZW5kcyBBYnN0cmFjdENvbnN0cnVjdG9yPFNiYkVsZW1lbnQ+PihcbiAgc3VwZXJDbGFzczogVCxcbik6IEFic3RyYWN0Q29uc3RydWN0b3I8U2JiU2VsZWN0aW9uUGFuZWxNaXhpblR5cGU+ICYgVCA9PiB7XG4gIGFic3RyYWN0IGNsYXNzIFNiYlNlbGVjdGlvblBhbmVsRWxlbWVudFxuICAgIGV4dGVuZHMgc3VwZXJDbGFzc1xuICAgIGltcGxlbWVudHMgUGFydGlhbDxTYmJTZWxlY3Rpb25QYW5lbE1peGluVHlwZT5cbiAge1xuICAgIC8qKiBHcm91cCBlbGVtZW50IGlmIHByZXNlbnQgKi9cbiAgICBwdWJsaWMgZ2V0IGdyb3VwKCk6IFNiYlJhZGlvQnV0dG9uR3JvdXBFbGVtZW50IHwgU2JiQ2hlY2tib3hHcm91cEVsZW1lbnQgfCBudWxsIHtcbiAgICAgIHJldHVybiB0aGlzLmNsb3Nlc3Q/Lignc2JiLXJhZGlvLWJ1dHRvbi1ncm91cCwgc2JiLWNoZWNrYm94LWdyb3VwJykgPz8gbnVsbDtcbiAgICB9XG5cbiAgICAvKiogSW5wdXQgcGFuZWwgZWxlbWVudCAqL1xuICAgIHB1YmxpYyBnZXQgcGFuZWwoKTogU2JiQ2hlY2tib3hQYW5lbEVsZW1lbnQgfCBTYmJSYWRpb0J1dHRvblBhbmVsRWxlbWVudCB8IG51bGwge1xuICAgICAgcmV0dXJuIHRoaXMucXVlcnlTZWxlY3Rvcj8uKCdzYmItcmFkaW8tYnV0dG9uLXBhbmVsLCBzYmItY2hlY2tib3gtcGFuZWwnKSA/PyBudWxsO1xuICAgIH1cblxuICAgIHByaXZhdGUgX3ByZXZpb3VzU2l6ZT86IChTYmJDaGVja2JveFBhbmVsRWxlbWVudCB8IFNiYlJhZGlvQnV0dG9uUGFuZWxFbGVtZW50KVsnc2l6ZSddO1xuICAgIHByaXZhdGUgX3ByZXZpb3VzQ29sb3I/OiAoU2JiQ2hlY2tib3hQYW5lbEVsZW1lbnQgfCBTYmJSYWRpb0J1dHRvblBhbmVsRWxlbWVudClbJ2NvbG9yJ107XG5cbiAgICBwcml2YXRlIF9wcm9wZXJ0eVdhdGNoZXIgPSBuZXcgU2JiUHJvcGVydHlXYXRjaGVyQ29udHJvbGxlcih0aGlzLCAoKSA9PiB0aGlzLnBhbmVsLCB7XG4gICAgICBjaGVja2VkOiAocGFuZWwpID0+IHtcbiAgICAgICAgdGhpcy50b2dnbGVTdGF0ZSgnY2hlY2tlZCcsIHBhbmVsLmNoZWNrZWQpO1xuICAgICAgICB0aGlzLm9uSW5wdXRTdGF0ZUNoYW5nZT8uKCk7XG4gICAgICB9LFxuICAgICAgZGlzYWJsZWQ6IChwYW5lbCkgPT4ge1xuICAgICAgICB0aGlzLnRvZ2dsZVN0YXRlKCdkaXNhYmxlZCcsIHBhbmVsLmRpc2FibGVkKTtcbiAgICAgICAgdGhpcy5vbklucHV0U3RhdGVDaGFuZ2U/LigpO1xuICAgICAgfSxcbiAgICAgIHNpemU6IChwYW5lbCkgPT4ge1xuICAgICAgICBpZiAodGhpcy5fcHJldmlvdXNTaXplKSB7XG4gICAgICAgICAgdGhpcy5pbnRlcm5hbHMuc3RhdGVzLmRlbGV0ZShgc2l6ZS0ke3RoaXMuX3ByZXZpb3VzU2l6ZX1gKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9wcmV2aW91c1NpemUgPSBwYW5lbC5zaXplO1xuICAgICAgICBpZiAodGhpcy5fcHJldmlvdXNTaXplKSB7XG4gICAgICAgICAgdGhpcy5pbnRlcm5hbHMuc3RhdGVzLmFkZChgc2l6ZS0ke3RoaXMuX3ByZXZpb3VzU2l6ZX1gKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIGJvcmRlcmxlc3M6IChwYW5lbCkgPT4ge1xuICAgICAgICB0aGlzLnRvZ2dsZVN0YXRlKCdib3JkZXJsZXNzJywgcGFuZWwuYm9yZGVybGVzcyk7XG4gICAgICB9LFxuICAgICAgY29sb3I6IChwYW5lbCkgPT4ge1xuICAgICAgICBpZiAodGhpcy5fcHJldmlvdXNDb2xvcikge1xuICAgICAgICAgIHRoaXMuaW50ZXJuYWxzLnN0YXRlcy5kZWxldGUoYGNvbG9yLSR7dGhpcy5fcHJldmlvdXNDb2xvcn1gKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9wcmV2aW91c0NvbG9yID0gcGFuZWwuY29sb3I7XG4gICAgICAgIGlmICh0aGlzLl9wcmV2aW91c0NvbG9yKSB7XG4gICAgICAgICAgdGhpcy5pbnRlcm5hbHMuc3RhdGVzLmFkZChgY29sb3ItJHt0aGlzLl9wcmV2aW91c0NvbG9yfWApO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKC4uLmFyZ3M6IGFueVtdKSB7XG4gICAgICBzdXBlcihhcmdzKTtcbiAgICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcj8uKCdwYW5lbGNvbm5lY3RlZCcsICgpID0+IHRoaXMuX3Byb3BlcnR5V2F0Y2hlci5jb25uZWN0KCkpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBvbklucHV0U3RhdGVDaGFuZ2U/KCk6IHZvaWQge31cbiAgfVxuXG4gIHJldHVybiBTYmJTZWxlY3Rpb25QYW5lbEVsZW1lbnQgYXMgdW5rbm93biBhcyBBYnN0cmFjdENvbnN0cnVjdG9yPFNiYlNlbGVjdGlvblBhbmVsTWl4aW5UeXBlPiAmIFQ7XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7OztBQW9CQSxJQUFhLDBCQUNYLGVBQ3VEO0NBQ3ZELE1BQWUsaUNBQ0wsV0FBVTs7RUFJbEIsSUFBVyxRQUFLO0FBQ2QsVUFBTyxLQUFLLFVBQVUsNkNBQTZDLElBQUk7OztFQUl6RSxJQUFXLFFBQUs7QUFDZCxVQUFPLEtBQUssZ0JBQWdCLDZDQUE2QyxJQUFJOztFQXNDL0UsWUFBc0IsR0FBRyxNQUFXO0FBQ2xDLFNBQU0sS0FBSztBQWpDTCxRQUFBLG1CQUFtQixJQUFJLDZCQUE2QixZQUFZLEtBQUssT0FBTztJQUNsRixVQUFVLFVBQVM7QUFDakIsVUFBSyxZQUFZLFdBQVcsTUFBTSxRQUFRO0FBQzFDLFVBQUssc0JBQXNCOztJQUU3QixXQUFXLFVBQVM7QUFDbEIsVUFBSyxZQUFZLFlBQVksTUFBTSxTQUFTO0FBQzVDLFVBQUssc0JBQXNCOztJQUU3QixPQUFPLFVBQVM7QUFDZCxTQUFJLEtBQUssY0FDUCxNQUFLLFVBQVUsT0FBTyxPQUFPLFFBQVEsS0FBSyxnQkFBZ0I7QUFFNUQsVUFBSyxnQkFBZ0IsTUFBTTtBQUMzQixTQUFJLEtBQUssY0FDUCxNQUFLLFVBQVUsT0FBTyxJQUFJLFFBQVEsS0FBSyxnQkFBZ0I7O0lBRzNELGFBQWEsVUFBUztBQUNwQixVQUFLLFlBQVksY0FBYyxNQUFNLFdBQVc7O0lBRWxELFFBQVEsVUFBUztBQUNmLFNBQUksS0FBSyxlQUNQLE1BQUssVUFBVSxPQUFPLE9BQU8sU0FBUyxLQUFLLGlCQUFpQjtBQUU5RCxVQUFLLGlCQUFpQixNQUFNO0FBQzVCLFNBQUksS0FBSyxlQUNQLE1BQUssVUFBVSxPQUFPLElBQUksU0FBUyxLQUFLLGlCQUFpQjs7SUFHOUQsQ0FBQztBQUlBLFFBQUssbUJBQW1CLHdCQUF3QixLQUFLLGlCQUFpQixTQUFTLENBQUM7O0VBR3hFLHFCQUFrQjs7QUFHOUIsUUFBTyJ9
51
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0aW9uLXBhbmVsLW1peGluLmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb3JlL21peGlucy9zZWxlY3Rpb24tcGFuZWwtbWl4aW4udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBTYmJDaGVja2JveEdyb3VwRWxlbWVudCB9IGZyb20gJy4uLy4uL2NoZWNrYm94LWdyb3VwLnB1cmUudHMnO1xuaW1wb3J0IHR5cGUgeyBTYmJDaGVja2JveFBhbmVsRWxlbWVudCB9IGZyb20gJy4uLy4uL2NoZWNrYm94LXBhbmVsLnB1cmUudHMnO1xuaW1wb3J0IHR5cGUgeyBTYmJSYWRpb0J1dHRvbkdyb3VwRWxlbWVudCB9IGZyb20gJy4uLy4uL3JhZGlvLWJ1dHRvbi1ncm91cC5wdXJlLnRzJztcbmltcG9ydCB0eXBlIHsgU2JiUmFkaW9CdXR0b25QYW5lbEVsZW1lbnQgfSBmcm9tICcuLi8uLi9yYWRpby1idXR0b24tcGFuZWwucHVyZS50cyc7XG5pbXBvcnQgdHlwZSB7IFNiYkVsZW1lbnQgfSBmcm9tICcuLi9iYXNlLWVsZW1lbnRzL2VsZW1lbnQudHMnO1xuaW1wb3J0IHsgU2JiUHJvcGVydHlXYXRjaGVyQ29udHJvbGxlciB9IGZyb20gJy4uL2NvbnRyb2xsZXJzL3Byb3BlcnR5LXdhdGNoZXItY29udHJvbGxlci50cyc7XG5cbmltcG9ydCB0eXBlIHsgQWJzdHJhY3RDb25zdHJ1Y3RvciB9IGZyb20gJy4vY29uc3RydWN0b3IudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBjbGFzcyBTYmJTZWxlY3Rpb25QYW5lbE1peGluVHlwZSBleHRlbmRzIFNiYkVsZW1lbnQge1xuICBwdWJsaWMgZ2V0IHBhbmVsKCk6IFNiYlJhZGlvQnV0dG9uUGFuZWxFbGVtZW50IHwgU2JiQ2hlY2tib3hQYW5lbEVsZW1lbnQgfCBudWxsO1xuICBwdWJsaWMgZ2V0IGdyb3VwKCk6IFNiYlJhZGlvQnV0dG9uR3JvdXBFbGVtZW50IHwgU2JiQ2hlY2tib3hHcm91cEVsZW1lbnQgfCBudWxsO1xuXG4gIHByb3RlY3RlZCBvbklucHV0U3RhdGVDaGFuZ2U/KCk6IHZvaWQ7XG59XG5cbi8qKlxuICogTWl4aW4gZm9yIGNvbW1vbiBzZWxlY3Rpb24gcGFuZWwgYmVoYXZpb3JzXG4gKi9cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbmV4cG9ydCBjb25zdCBTYmJTZWxlY3Rpb25QYW5lbE1peGluID0gPFQgZXh0ZW5kcyBBYnN0cmFjdENvbnN0cnVjdG9yPFNiYkVsZW1lbnQ+PihcbiAgc3VwZXJDbGFzczogVCxcbik6IEFic3RyYWN0Q29uc3RydWN0b3I8U2JiU2VsZWN0aW9uUGFuZWxNaXhpblR5cGU+ICYgVCA9PiB7XG4gIGFic3RyYWN0IGNsYXNzIFNiYlNlbGVjdGlvblBhbmVsRWxlbWVudFxuICAgIGV4dGVuZHMgc3VwZXJDbGFzc1xuICAgIGltcGxlbWVudHMgUGFydGlhbDxTYmJTZWxlY3Rpb25QYW5lbE1peGluVHlwZT5cbiAge1xuICAgIC8qKiBHcm91cCBlbGVtZW50IGlmIHByZXNlbnQgKi9cbiAgICBwdWJsaWMgZ2V0IGdyb3VwKCk6IFNiYlJhZGlvQnV0dG9uR3JvdXBFbGVtZW50IHwgU2JiQ2hlY2tib3hHcm91cEVsZW1lbnQgfCBudWxsIHtcbiAgICAgIHJldHVybiB0aGlzLmNsb3Nlc3Q/Lignc2JiLXJhZGlvLWJ1dHRvbi1ncm91cCwgc2JiLWNoZWNrYm94LWdyb3VwJykgPz8gbnVsbDtcbiAgICB9XG5cbiAgICAvKiogSW5wdXQgcGFuZWwgZWxlbWVudCAqL1xuICAgIHB1YmxpYyBnZXQgcGFuZWwoKTogU2JiQ2hlY2tib3hQYW5lbEVsZW1lbnQgfCBTYmJSYWRpb0J1dHRvblBhbmVsRWxlbWVudCB8IG51bGwge1xuICAgICAgcmV0dXJuIHRoaXMucXVlcnlTZWxlY3Rvcj8uKCdzYmItcmFkaW8tYnV0dG9uLXBhbmVsLCBzYmItY2hlY2tib3gtcGFuZWwnKSA/PyBudWxsO1xuICAgIH1cblxuICAgIHByaXZhdGUgX3ByZXZpb3VzU2l6ZTogKFNiYkNoZWNrYm94UGFuZWxFbGVtZW50IHwgU2JiUmFkaW9CdXR0b25QYW5lbEVsZW1lbnQpWydzaXplJ10gPSBudWxsO1xuICAgIHByaXZhdGUgX3ByZXZpb3VzQ29sb3I/OiAoU2JiQ2hlY2tib3hQYW5lbEVsZW1lbnQgfCBTYmJSYWRpb0J1dHRvblBhbmVsRWxlbWVudClbJ2NvbG9yJ107XG5cbiAgICBwcml2YXRlIF9wcm9wZXJ0eVdhdGNoZXIgPSBuZXcgU2JiUHJvcGVydHlXYXRjaGVyQ29udHJvbGxlcih0aGlzLCAoKSA9PiB0aGlzLnBhbmVsLCB7XG4gICAgICBjaGVja2VkOiAocGFuZWwpID0+IHtcbiAgICAgICAgdGhpcy50b2dnbGVTdGF0ZSgnY2hlY2tlZCcsIHBhbmVsLmNoZWNrZWQpO1xuICAgICAgICB0aGlzLm9uSW5wdXRTdGF0ZUNoYW5nZT8uKCk7XG4gICAgICB9LFxuICAgICAgZGlzYWJsZWQ6IChwYW5lbCkgPT4ge1xuICAgICAgICB0aGlzLnRvZ2dsZVN0YXRlKCdkaXNhYmxlZCcsIHBhbmVsLmRpc2FibGVkKTtcbiAgICAgICAgdGhpcy5vbklucHV0U3RhdGVDaGFuZ2U/LigpO1xuICAgICAgfSxcbiAgICAgIHNpemU6IChwYW5lbCkgPT4ge1xuICAgICAgICBpZiAodGhpcy5fcHJldmlvdXNTaXplKSB7XG4gICAgICAgICAgdGhpcy5pbnRlcm5hbHMuc3RhdGVzLmRlbGV0ZShgc2l6ZS0ke3RoaXMuX3ByZXZpb3VzU2l6ZX1gKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9wcmV2aW91c1NpemUgPSBwYW5lbC5zaXplO1xuICAgICAgICBpZiAodGhpcy5fcHJldmlvdXNTaXplKSB7XG4gICAgICAgICAgdGhpcy5pbnRlcm5hbHMuc3RhdGVzLmFkZChgc2l6ZS0ke3RoaXMuX3ByZXZpb3VzU2l6ZX1gKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIGJvcmRlcmxlc3M6IChwYW5lbCkgPT4ge1xuICAgICAgICB0aGlzLnRvZ2dsZVN0YXRlKCdib3JkZXJsZXNzJywgcGFuZWwuYm9yZGVybGVzcyk7XG4gICAgICB9LFxuICAgICAgY29sb3I6IChwYW5lbCkgPT4ge1xuICAgICAgICBpZiAodGhpcy5fcHJldmlvdXNDb2xvcikge1xuICAgICAgICAgIHRoaXMuaW50ZXJuYWxzLnN0YXRlcy5kZWxldGUoYGNvbG9yLSR7dGhpcy5fcHJldmlvdXNDb2xvcn1gKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9wcmV2aW91c0NvbG9yID0gcGFuZWwuY29sb3I7XG4gICAgICAgIGlmICh0aGlzLl9wcmV2aW91c0NvbG9yKSB7XG4gICAgICAgICAgdGhpcy5pbnRlcm5hbHMuc3RhdGVzLmFkZChgY29sb3ItJHt0aGlzLl9wcmV2aW91c0NvbG9yfWApO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKC4uLmFyZ3M6IGFueVtdKSB7XG4gICAgICBzdXBlcihhcmdzKTtcbiAgICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcj8uKCdwYW5lbGNvbm5lY3RlZCcsICgpID0+IHRoaXMuX3Byb3BlcnR5V2F0Y2hlci5jb25uZWN0KCkpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBvbklucHV0U3RhdGVDaGFuZ2U/KCk6IHZvaWQge31cbiAgfVxuXG4gIHJldHVybiBTYmJTZWxlY3Rpb25QYW5lbEVsZW1lbnQgYXMgdW5rbm93biBhcyBBYnN0cmFjdENvbnN0cnVjdG9yPFNiYlNlbGVjdGlvblBhbmVsTWl4aW5UeXBlPiAmIFQ7XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7OztBQW9CQSxJQUFhLDBCQUNYLGVBQ3VEO0NBQ3ZELE1BQWUsaUNBQ0wsV0FBVTs7RUFJbEIsSUFBVyxRQUFLO0dBQ2QsT0FBTyxLQUFLLFVBQVUsNkNBQTZDLElBQUk7OztFQUl6RSxJQUFXLFFBQUs7R0FDZCxPQUFPLEtBQUssZ0JBQWdCLDZDQUE2QyxJQUFJOztFQXNDL0UsWUFBc0IsR0FBRyxNQUFXO0dBQ2xDLE1BQU0sS0FBSztHQXBDTCxLQUFBLGdCQUFnRjtHQUdoRixLQUFBLG1CQUFtQixJQUFJLDZCQUE2QixZQUFZLEtBQUssT0FBTztJQUNsRixVQUFVLFVBQVM7S0FDakIsS0FBSyxZQUFZLFdBQVcsTUFBTSxRQUFRO0tBQzFDLEtBQUssc0JBQXNCOztJQUU3QixXQUFXLFVBQVM7S0FDbEIsS0FBSyxZQUFZLFlBQVksTUFBTSxTQUFTO0tBQzVDLEtBQUssc0JBQXNCOztJQUU3QixPQUFPLFVBQVM7S0FDZCxJQUFJLEtBQUssZUFDUCxLQUFLLFVBQVUsT0FBTyxPQUFPLFFBQVEsS0FBSyxnQkFBZ0I7S0FFNUQsS0FBSyxnQkFBZ0IsTUFBTTtLQUMzQixJQUFJLEtBQUssZUFDUCxLQUFLLFVBQVUsT0FBTyxJQUFJLFFBQVEsS0FBSyxnQkFBZ0I7O0lBRzNELGFBQWEsVUFBUztLQUNwQixLQUFLLFlBQVksY0FBYyxNQUFNLFdBQVc7O0lBRWxELFFBQVEsVUFBUztLQUNmLElBQUksS0FBSyxnQkFDUCxLQUFLLFVBQVUsT0FBTyxPQUFPLFNBQVMsS0FBSyxpQkFBaUI7S0FFOUQsS0FBSyxpQkFBaUIsTUFBTTtLQUM1QixJQUFJLEtBQUssZ0JBQ1AsS0FBSyxVQUFVLE9BQU8sSUFBSSxTQUFTLEtBQUssaUJBQWlCOztJQUc5RCxDQUFDO0dBSUEsS0FBSyxtQkFBbUIsd0JBQXdCLEtBQUssaUJBQWlCLFNBQVMsQ0FBQzs7RUFHeEUscUJBQWtCOztDQUc5QixPQUFPIn0=
@@ -28,4 +28,4 @@ var SbbUpdateSchedulerMixin = (base) => {
28
28
  //#endregion
29
29
  export { SbbUpdateSchedulerMixin };
30
30
 
31
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlLXNjaGVkdWxlci1taXhpbi5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvY29yZS9taXhpbnMvdXBkYXRlLXNjaGVkdWxlci1taXhpbi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IExpdEVsZW1lbnQgfSBmcm9tICdsaXQnO1xuXG5pbXBvcnQgdHlwZSB7IEFic3RyYWN0Q29uc3RydWN0b3IgfSBmcm9tICcuL2NvbnN0cnVjdG9yLnRzJztcblxuLy8gRGVmaW5lIHRoZSBpbnRlcmZhY2UgZm9yIHRoZSBtaXhpblxuZXhwb3J0IGRlY2xhcmUgY2xhc3MgU2JiVXBkYXRlU2NoZWR1bGVyTWl4aW5UeXBlIHtcbiAgcHJvdGVjdGVkIHN0YXJ0VXBkYXRlKCk6IHZvaWQ7XG4gIHByb3RlY3RlZCBjb21wbGV0ZVVwZGF0ZSgpOiB2b2lkO1xufVxuXG4vKipcbiAqIFRoaXMgbWl4aW4gYWxsb3dzIHNjaGVkdWxpbmcgbWFudWFsIHVwZGF0ZXMsIHdoaWNoIGFmZmVjdCB1cGRhdGVDb21wbGV0ZS5cbiAqIEBwYXJhbSBiYXNlIFRoZSBjbGFzcyB0byBleHRlbmQuXG4gKiBAcmV0dXJucyBBIGNsYXNzIGV4dGVuZGVkIHdpdGggdGhlIHNsb3QgY2hpbGQgb2JzZXJ2ZXIgZnVuY3Rpb25hbGl0eS5cbiAqL1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuZXhwb3J0IGNvbnN0IFNiYlVwZGF0ZVNjaGVkdWxlck1peGluID0gPFQgZXh0ZW5kcyBBYnN0cmFjdENvbnN0cnVjdG9yPExpdEVsZW1lbnQ+PihcbiAgYmFzZTogVCxcbik6IEFic3RyYWN0Q29uc3RydWN0b3I8U2JiVXBkYXRlU2NoZWR1bGVyTWl4aW5UeXBlPiAmIFQgPT4ge1xuICBhYnN0cmFjdCBjbGFzcyBTYmJVcGRhdGVTY2hlZHVsZXJFbGVtZW50XG4gICAgZXh0ZW5kcyBiYXNlXG4gICAgaW1wbGVtZW50cyBQYXJ0aWFsPFNiYlVwZGF0ZVNjaGVkdWxlck1peGluVHlwZT5cbiAge1xuICAgIHByaXZhdGUgX3VwZGF0ZVByb21pc2UgPSBQcm9taXNlLnJlc29sdmUoKTtcbiAgICBwcml2YXRlIF91cGRhdGVSZXNvbHZlID0gKCk6IHZvaWQgPT4ge307XG5cbiAgICBwcm90ZWN0ZWQgc3RhcnRVcGRhdGUoKTogdm9pZCB7XG4gICAgICB0aGlzLl91cGRhdGVQcm9taXNlID0gbmV3IFByb21pc2U8dm9pZD4oKHIpID0+ICh0aGlzLl91cGRhdGVSZXNvbHZlID0gcikpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBjb21wbGV0ZVVwZGF0ZSgpOiB2b2lkIHtcbiAgICAgIHRoaXMuX3VwZGF0ZVJlc29sdmUoKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgYXN5bmMgZ2V0VXBkYXRlQ29tcGxldGUoKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBzdXBlci5nZXRVcGRhdGVDb21wbGV0ZSgpO1xuICAgICAgYXdhaXQgdGhpcy5fdXBkYXRlUHJvbWlzZTtcbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuICB9XG4gIHJldHVybiBTYmJVcGRhdGVTY2hlZHVsZXJFbGVtZW50IGFzIHVua25vd24gYXMgQWJzdHJhY3RDb25zdHJ1Y3RvcjxTYmJVcGRhdGVTY2hlZHVsZXJNaXhpblR5cGU+ICZcbiAgICBUO1xufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBZ0JBLElBQWEsMkJBQ1gsU0FDd0Q7Q0FDeEQsTUFBZSxrQ0FDTCxLQUFJO0VBRGQsY0FBQTs7QUFJVSxRQUFBLGlCQUFpQixRQUFRLFNBQVM7QUFDbEMsUUFBQSx1QkFBNEI7O0VBRTFCLGNBQVc7QUFDbkIsUUFBSyxpQkFBaUIsSUFBSSxTQUFlLE1BQU8sS0FBSyxpQkFBaUIsRUFBRzs7RUFHakUsaUJBQWM7QUFDdEIsUUFBSyxnQkFBZ0I7O0VBR0osTUFBTSxvQkFBaUI7R0FDeEMsTUFBTSxTQUFTLE1BQU0sTUFBTSxtQkFBbUI7QUFDOUMsU0FBTSxLQUFLO0FBQ1gsVUFBTzs7O0FBR1gsUUFBTyJ9
31
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlLXNjaGVkdWxlci1taXhpbi5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvY29yZS9taXhpbnMvdXBkYXRlLXNjaGVkdWxlci1taXhpbi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IExpdEVsZW1lbnQgfSBmcm9tICdsaXQnO1xuXG5pbXBvcnQgdHlwZSB7IEFic3RyYWN0Q29uc3RydWN0b3IgfSBmcm9tICcuL2NvbnN0cnVjdG9yLnRzJztcblxuLy8gRGVmaW5lIHRoZSBpbnRlcmZhY2UgZm9yIHRoZSBtaXhpblxuZXhwb3J0IGRlY2xhcmUgY2xhc3MgU2JiVXBkYXRlU2NoZWR1bGVyTWl4aW5UeXBlIHtcbiAgcHJvdGVjdGVkIHN0YXJ0VXBkYXRlKCk6IHZvaWQ7XG4gIHByb3RlY3RlZCBjb21wbGV0ZVVwZGF0ZSgpOiB2b2lkO1xufVxuXG4vKipcbiAqIFRoaXMgbWl4aW4gYWxsb3dzIHNjaGVkdWxpbmcgbWFudWFsIHVwZGF0ZXMsIHdoaWNoIGFmZmVjdCB1cGRhdGVDb21wbGV0ZS5cbiAqIEBwYXJhbSBiYXNlIFRoZSBjbGFzcyB0byBleHRlbmQuXG4gKiBAcmV0dXJucyBBIGNsYXNzIGV4dGVuZGVkIHdpdGggdGhlIHNsb3QgY2hpbGQgb2JzZXJ2ZXIgZnVuY3Rpb25hbGl0eS5cbiAqL1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuZXhwb3J0IGNvbnN0IFNiYlVwZGF0ZVNjaGVkdWxlck1peGluID0gPFQgZXh0ZW5kcyBBYnN0cmFjdENvbnN0cnVjdG9yPExpdEVsZW1lbnQ+PihcbiAgYmFzZTogVCxcbik6IEFic3RyYWN0Q29uc3RydWN0b3I8U2JiVXBkYXRlU2NoZWR1bGVyTWl4aW5UeXBlPiAmIFQgPT4ge1xuICBhYnN0cmFjdCBjbGFzcyBTYmJVcGRhdGVTY2hlZHVsZXJFbGVtZW50XG4gICAgZXh0ZW5kcyBiYXNlXG4gICAgaW1wbGVtZW50cyBQYXJ0aWFsPFNiYlVwZGF0ZVNjaGVkdWxlck1peGluVHlwZT5cbiAge1xuICAgIHByaXZhdGUgX3VwZGF0ZVByb21pc2UgPSBQcm9taXNlLnJlc29sdmUoKTtcbiAgICBwcml2YXRlIF91cGRhdGVSZXNvbHZlID0gKCk6IHZvaWQgPT4ge307XG5cbiAgICBwcm90ZWN0ZWQgc3RhcnRVcGRhdGUoKTogdm9pZCB7XG4gICAgICB0aGlzLl91cGRhdGVQcm9taXNlID0gbmV3IFByb21pc2U8dm9pZD4oKHIpID0+ICh0aGlzLl91cGRhdGVSZXNvbHZlID0gcikpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBjb21wbGV0ZVVwZGF0ZSgpOiB2b2lkIHtcbiAgICAgIHRoaXMuX3VwZGF0ZVJlc29sdmUoKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgYXN5bmMgZ2V0VXBkYXRlQ29tcGxldGUoKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBzdXBlci5nZXRVcGRhdGVDb21wbGV0ZSgpO1xuICAgICAgYXdhaXQgdGhpcy5fdXBkYXRlUHJvbWlzZTtcbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuICB9XG4gIHJldHVybiBTYmJVcGRhdGVTY2hlZHVsZXJFbGVtZW50IGFzIHVua25vd24gYXMgQWJzdHJhY3RDb25zdHJ1Y3RvcjxTYmJVcGRhdGVTY2hlZHVsZXJNaXhpblR5cGU+ICZcbiAgICBUO1xufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBZ0JBLElBQWEsMkJBQ1gsU0FDd0Q7Q0FDeEQsTUFBZSxrQ0FDTCxLQUFJO0VBRGQsY0FBQTs7R0FJVSxLQUFBLGlCQUFpQixRQUFRLFNBQVM7R0FDbEMsS0FBQSx1QkFBNEI7O0VBRTFCLGNBQVc7R0FDbkIsS0FBSyxpQkFBaUIsSUFBSSxTQUFlLE1BQU8sS0FBSyxpQkFBaUIsRUFBRzs7RUFHakUsaUJBQWM7R0FDdEIsS0FBSyxnQkFBZ0I7O0VBR0osTUFBTSxvQkFBaUI7R0FDeEMsTUFBTSxTQUFTLE1BQU0sTUFBTSxtQkFBbUI7R0FDOUMsTUFBTSxLQUFLO0dBQ1gsT0FBTzs7O0NBR1gsT0FBTyJ9