@sbb-esta/lyne-elements 4.13.0 → 4.13.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1241) hide show
  1. package/accordion/accordion.component.js +1 -1
  2. package/accordion.js +1 -1
  3. package/accordion.pure.js +1 -1
  4. package/action-group/action-group.component.js +1 -1
  5. package/action-group.js +1 -1
  6. package/action-group.pure.js +1 -1
  7. package/alert/alert/alert.component.js +1 -1
  8. package/alert/alert-group/alert-group.component.js +1 -1
  9. package/alert/alert-group.js +1 -1
  10. package/alert/alert.js +1 -1
  11. package/alert.js +2 -2
  12. package/alert.pure.js +2 -2
  13. package/autocomplete/autocomplete-base-element.js +1 -1
  14. package/autocomplete/autocomplete.component.js +1 -1
  15. package/autocomplete.js +1 -1
  16. package/autocomplete.pure.js +1 -1
  17. package/{block-link-common-1kRa_czx.js → block-link-common-CKboIDLC.js} +1 -1
  18. package/breadcrumb/breadcrumb/breadcrumb.component.js +1 -1
  19. package/breadcrumb/breadcrumb-group/breadcrumb-group.component.js +1 -1
  20. package/breadcrumb/breadcrumb-group.js +1 -1
  21. package/breadcrumb/breadcrumb.js +1 -1
  22. package/breadcrumb.js +2 -2
  23. package/breadcrumb.pure.js +2 -2
  24. package/button/common/button-common.js +1 -1
  25. package/button/common.js +1 -1
  26. package/button/mini-button-group/mini-button-group.component.js +1 -1
  27. package/button/mini-button-group.js +1 -1
  28. package/button/mini-button-link/mini-button-link.component.js +1 -1
  29. package/button/mini-button-link.js +1 -1
  30. package/button.js +3 -3
  31. package/button.pure.js +3 -3
  32. package/calendar/calendar/calendar.component.js +1 -1
  33. package/calendar/calendar-day/calendar-day.component.js +1 -1
  34. package/calendar/calendar-day.js +1 -1
  35. package/calendar/calendar.js +1 -1
  36. package/calendar/common/calendar-cell-base-element.js +1 -1
  37. package/calendar/common.js +1 -1
  38. package/calendar.js +2 -2
  39. package/calendar.pure.js +2 -2
  40. package/card/card/card.component.js +1 -1
  41. package/card/card-badge/card-badge.component.js +1 -1
  42. package/card/card-badge.js +1 -1
  43. package/card/card.js +1 -1
  44. package/card/common/card-action-common.js +1 -1
  45. package/card/common.js +1 -1
  46. package/card.js +3 -3
  47. package/card.pure.js +3 -3
  48. package/carousel/carousel/carousel.component.js +1 -1
  49. package/carousel/carousel-item/carousel-item.component.js +1 -1
  50. package/carousel/carousel-item.js +1 -1
  51. package/carousel/carousel-list/carousel-list.component.js +1 -1
  52. package/carousel/carousel-list.js +1 -1
  53. package/carousel/carousel.js +1 -1
  54. package/carousel.js +3 -3
  55. package/carousel.pure.js +3 -3
  56. package/checkbox/checkbox.component.js +1 -1
  57. package/checkbox/checkbox.js +1 -1
  58. package/checkbox/common/checkbox-common.js +1 -1
  59. package/checkbox/common.js +1 -1
  60. package/{checkbox.component-DS48CA_v.js → checkbox.component-BcEm3ykz.js} +1 -1
  61. package/checkbox.js +2 -2
  62. package/checkbox.pure.js +2 -2
  63. package/chip/chip/chip.component.js +1 -1
  64. package/chip/chip-group/chip-group.component.js +1 -1
  65. package/chip/chip-group.js +1 -1
  66. package/chip/chip.js +1 -1
  67. package/chip-label/chip-label.component.js +1 -1
  68. package/chip-label.js +1 -1
  69. package/chip-label.pure.js +1 -1
  70. package/chip.js +2 -2
  71. package/chip.pure.js +2 -2
  72. package/clock/clock.component.js +1 -1
  73. package/clock.js +1 -1
  74. package/clock.pure.js +1 -1
  75. package/container/container/container.component.js +1 -1
  76. package/container/container.js +1 -1
  77. package/container/sticky-bar/sticky-bar.component.js +1 -1
  78. package/container/sticky-bar.js +1 -1
  79. package/container.js +2 -2
  80. package/container.pure.js +2 -2
  81. package/core/base-elements/selection-group-base-element.js +1 -1
  82. package/core/base-elements.js +1 -1
  83. package/core/controllers/media-matchers-controller.js +1 -1
  84. package/core/mixins/form-associated-input-mixin.js +5 -0
  85. package/core/mixins/form-associated-radio-button-mixin.js +5 -4
  86. package/core/mixins/panel-mixin.js +1 -1
  87. package/core/mixins.js +1 -1
  88. package/core/styles/styles.js +1 -1
  89. package/core/styles.js +1 -1
  90. package/core.js +3 -3
  91. package/custom-elements.json +2157 -2027
  92. package/date-input/date-input.component.js +1 -1
  93. package/{date-input.component-B3f_GThS.js → date-input.component-kYGldhkg.js} +8 -6
  94. package/date-input.js +1 -1
  95. package/date-input.pure.js +1 -1
  96. package/datepicker/common/datepicker-button.js +1 -1
  97. package/datepicker/common.js +1 -1
  98. package/datepicker/datepicker/datepicker.component.js +1 -1
  99. package/datepicker/datepicker.js +1 -1
  100. package/datepicker.js +2 -2
  101. package/datepicker.pure.js +2 -2
  102. package/development/accordion/accordion.component.js +1 -1
  103. package/development/{accordion.component-CGTwcntz.js → accordion.component-BHkIOnto.js} +1 -1
  104. package/development/accordion.js +2 -2
  105. package/development/accordion.pure.js +1 -1
  106. package/development/action-group/action-group.component.js +1 -1
  107. package/development/{action-group.component-DQ7_kjB9.js → action-group.component-CQKkfQej.js} +1 -1
  108. package/development/action-group.js +2 -2
  109. package/development/action-group.pure.js +1 -1
  110. package/development/alert/alert/alert.component.js +1 -1
  111. package/development/alert/alert-group/alert-group.component.js +1 -1
  112. package/development/alert/alert-group.js +2 -2
  113. package/development/alert/alert.js +2 -2
  114. package/development/{alert-group.component-DnnPrv5I.js → alert-group.component-hXjjuTYZ.js} +1 -1
  115. package/development/{alert.component-CYb1vnDZ.js → alert.component-zi9h-VS5.js} +1 -1
  116. package/development/alert.js +3 -3
  117. package/development/alert.pure.js +2 -2
  118. package/development/autocomplete/autocomplete-base-element.js +1 -1
  119. package/development/autocomplete/autocomplete.component.js +2 -2
  120. package/development/{autocomplete-base-element-BSd5IXMZ.js → autocomplete-base-element-ChtKZW4Z.js} +1 -1
  121. package/development/autocomplete.js +2 -2
  122. package/development/autocomplete.pure.js +1 -1
  123. package/development/{block-link-common-COY1RI1I.js → block-link-common-CJEbRZzQ.js} +2 -2
  124. package/development/breadcrumb/breadcrumb/breadcrumb.component.js +1 -1
  125. package/development/breadcrumb/breadcrumb-group/breadcrumb-group.component.js +1 -1
  126. package/development/breadcrumb/breadcrumb-group.js +2 -2
  127. package/development/breadcrumb/breadcrumb.js +2 -2
  128. package/development/{breadcrumb-group.component-DZslNBlB.js → breadcrumb-group.component-D1KKqzD5.js} +1 -1
  129. package/development/{breadcrumb.component-DxSUxLZO.js → breadcrumb.component-ByLfVFAv.js} +1 -1
  130. package/development/breadcrumb.js +3 -3
  131. package/development/breadcrumb.pure.js +2 -2
  132. package/development/button/accent-button/accent-button.component.js +1 -1
  133. package/development/button/accent-button-link/accent-button-link.component.js +1 -1
  134. package/development/button/accent-button-link.js +1 -1
  135. package/development/button/accent-button-static/accent-button-static.component.js +1 -1
  136. package/development/button/accent-button-static.js +1 -1
  137. package/development/button/accent-button.js +1 -1
  138. package/development/button/button/button.component.js +1 -1
  139. package/development/button/button-link/button-link.component.js +1 -1
  140. package/development/button/button-link.js +1 -1
  141. package/development/button/button-static/button-static.component.js +1 -1
  142. package/development/button/button-static.js +1 -1
  143. package/development/button/button.js +1 -1
  144. package/development/button/common/button-common.js +1 -1
  145. package/development/button/common.js +2 -2
  146. package/development/button/mini-button/mini-button.component.js +1 -1
  147. package/development/button/mini-button-group/mini-button-group.component.js +1 -1
  148. package/development/button/mini-button-group.js +2 -2
  149. package/development/button/mini-button-link/mini-button-link.component.js +1 -1
  150. package/development/button/mini-button-link.js +2 -2
  151. package/development/button/mini-button.js +1 -1
  152. package/development/button/secondary-button/secondary-button.component.js +1 -1
  153. package/development/button/secondary-button-link/secondary-button-link.component.js +1 -1
  154. package/development/button/secondary-button-link.js +1 -1
  155. package/development/button/secondary-button-static/secondary-button-static.component.js +1 -1
  156. package/development/button/secondary-button-static.js +1 -1
  157. package/development/button/secondary-button.js +1 -1
  158. package/development/button/transparent-button/transparent-button.component.js +1 -1
  159. package/development/button/transparent-button-link/transparent-button-link.component.js +1 -1
  160. package/development/button/transparent-button-link.js +1 -1
  161. package/development/button/transparent-button-static/transparent-button-static.component.js +1 -1
  162. package/development/button/transparent-button-static.js +1 -1
  163. package/development/button/transparent-button.js +1 -1
  164. package/development/{button-common-7dmrUx4A.js → button-common-CstAJ1zB.js} +1 -1
  165. package/development/button.js +4 -4
  166. package/development/button.pure.js +3 -3
  167. package/development/calendar/calendar/calendar.component.js +1 -1
  168. package/development/calendar/calendar-day/calendar-day.component.js +1 -1
  169. package/development/calendar/calendar-day.js +2 -2
  170. package/development/calendar/calendar-month/calendar-month.component.js +1 -1
  171. package/development/calendar/calendar-month.js +1 -1
  172. package/development/calendar/calendar-weekday/calendar-weekday.component.js +1 -1
  173. package/development/calendar/calendar-weekday.js +1 -1
  174. package/development/calendar/calendar-weeknumber/calendar-weeknumber.component.js +1 -1
  175. package/development/calendar/calendar-weeknumber.js +1 -1
  176. package/development/calendar/calendar-year/calendar-year.component.js +1 -1
  177. package/development/calendar/calendar-year.js +1 -1
  178. package/development/calendar/calendar.js +2 -2
  179. package/development/calendar/common/calendar-cell-base-element.js +1 -1
  180. package/development/calendar/common.js +1 -1
  181. package/development/{calendar-cell-base-element-BXohfDSl.js → calendar-cell-base-element-C9bSs3Q8.js} +1 -1
  182. package/development/{calendar-day.component-DFvRrp2O.js → calendar-day.component-gckR6I-2.js} +1 -1
  183. package/development/{calendar.component-Dg3D2A7k.js → calendar.component-_aQkgYF_.js} +1 -1
  184. package/development/calendar.js +3 -3
  185. package/development/calendar.pure.js +2 -2
  186. package/development/card/card/card.component.js +1 -1
  187. package/development/card/card-badge/card-badge.component.js +1 -1
  188. package/development/card/card-badge.js +2 -2
  189. package/development/card/card-button/card-button.component.js +1 -1
  190. package/development/card/card-button.js +1 -1
  191. package/development/card/card-link/card-link.component.js +1 -1
  192. package/development/card/card-link.js +1 -1
  193. package/development/card/card.js +2 -2
  194. package/development/card/common/card-action-common.js +1 -1
  195. package/development/card/common.js +2 -2
  196. package/development/{card-action-common-1FDHbfeR.js → card-action-common-CvEX5FKi.js} +1 -1
  197. package/development/{card-badge.component-CUZIoVbL.js → card-badge.component-BrtuBhjn.js} +1 -1
  198. package/development/{card.component-DsqIZC_u.js → card.component-Byk9-XZO.js} +1 -1
  199. package/development/card.js +4 -4
  200. package/development/card.pure.js +3 -3
  201. package/development/carousel/carousel/carousel.component.js +1 -1
  202. package/development/carousel/carousel-item/carousel-item.component.js +1 -1
  203. package/development/carousel/carousel-item.js +2 -2
  204. package/development/carousel/carousel-list/carousel-list.component.js +1 -1
  205. package/development/carousel/carousel-list.js +2 -2
  206. package/development/carousel/carousel.js +2 -2
  207. package/development/{carousel-item.component-CIgUJtDJ.js → carousel-item.component-BxPxGpbz.js} +1 -1
  208. package/development/{carousel-list.component-L-nYpHcN.js → carousel-list.component-DG6lxyT9.js} +1 -1
  209. package/development/{carousel.component-Dl48ROSf.js → carousel.component-Ct8WETPk.js} +1 -1
  210. package/development/carousel.js +4 -4
  211. package/development/carousel.pure.js +3 -3
  212. package/development/checkbox/checkbox-group.js +1 -1
  213. package/development/checkbox/checkbox-panel.js +1 -1
  214. package/development/checkbox/checkbox.component.js +1 -1
  215. package/development/checkbox/checkbox.js +2 -2
  216. package/development/checkbox/common/checkbox-common.js +1 -1
  217. package/development/checkbox/common.js +2 -2
  218. package/development/{checkbox-common-Dd5uup8K.js → checkbox-common-CVyGPWbf.js} +1 -1
  219. package/development/checkbox-group/checkbox-group.component.js +1 -1
  220. package/development/checkbox-group.js +1 -1
  221. package/development/checkbox-panel/checkbox-panel.component.js +1 -1
  222. package/development/checkbox-panel.js +1 -1
  223. package/development/{checkbox.component-CFZrwUTA.js → checkbox.component-BEfXDZZU.js} +2 -2
  224. package/development/checkbox.js +3 -3
  225. package/development/checkbox.pure.js +2 -2
  226. package/development/chip/chip/chip.component.js +1 -1
  227. package/development/chip/chip-group/chip-group.component.js +1 -1
  228. package/development/chip/chip-group.js +2 -2
  229. package/development/chip/chip.js +2 -2
  230. package/development/{chip-group.component-BVfHWX2-.js → chip-group.component-D3TJApSK.js} +1 -1
  231. package/development/chip-label/chip-label.component.js +1 -1
  232. package/development/{chip-label.component-DU8s-hfA.js → chip-label.component-BRyrmYcJ.js} +1 -1
  233. package/development/chip-label.js +2 -2
  234. package/development/chip-label.pure.js +1 -1
  235. package/development/{chip.component-C6v1-PLX.js → chip.component-CXmPMnVG.js} +1 -1
  236. package/development/chip.js +3 -3
  237. package/development/chip.pure.js +2 -2
  238. package/development/clock/clock.component.js +1 -1
  239. package/development/{clock.component-CVPv4mCp.js → clock.component-BkV63t0Z.js} +1 -1
  240. package/development/clock.js +2 -2
  241. package/development/clock.pure.js +1 -1
  242. package/development/{compact-paginator.component-5_Q2Reul.js → compact-paginator.component-lAUCVDx7.js} +1 -1
  243. package/development/container/container/container.component.js +1 -1
  244. package/development/container/container.js +2 -2
  245. package/development/container/sticky-bar/sticky-bar.component.js +1 -1
  246. package/development/container/sticky-bar.js +2 -2
  247. package/development/{container.component-CG_i65Op.js → container.component-DLh0UnYd.js} +1 -1
  248. package/development/container.js +3 -3
  249. package/development/container.pure.js +2 -2
  250. package/development/core/a11y/arrow-navigation.js +1 -1
  251. package/development/core/a11y/fake-event-detection.js +1 -1
  252. package/development/core/a11y/focus-trap-controller.js +1 -1
  253. package/development/core/a11y/focus-visible-within-controller.js +1 -1
  254. package/development/core/a11y/focus.js +1 -1
  255. package/development/core/a11y/input-modality-detector.js +1 -1
  256. package/development/core/a11y/interactivity-checker.js +1 -1
  257. package/development/core/a11y/live-announcer.js +1 -1
  258. package/development/core/base-elements/action-base-element.js +1 -1
  259. package/development/core/base-elements/button-base-element.js +1 -1
  260. package/development/core/base-elements/element.js +1 -1
  261. package/development/core/base-elements/link-base-element.js +1 -1
  262. package/development/core/base-elements/open-close-base-element.js +1 -1
  263. package/development/core/base-elements/selection-group-base-element.js +1 -1
  264. package/development/core/base-elements.js +1 -1
  265. package/development/core/config/config.js +1 -1
  266. package/development/core/controllers/escapable-overlay-controller.js +1 -1
  267. package/development/core/controllers/id-reference-controller.js +1 -1
  268. package/development/core/controllers/inert-controller.js +1 -1
  269. package/development/core/controllers/language-controller.js +1 -1
  270. package/development/core/controllers/media-matchers-controller.js +2 -2
  271. package/development/core/controllers/overlay-position-controller.js +1 -1
  272. package/development/core/controllers/property-watcher-controller.js +1 -1
  273. package/development/core/controllers/slot-state-controller.js +1 -1
  274. package/development/core/datetime/date-adapter.js +1 -1
  275. package/development/core/datetime/native-date-adapter.js +1 -1
  276. package/development/core/datetime/temporal-date-adapter.js +1 -1
  277. package/development/core/decorators/force-type.js +1 -1
  278. package/development/core/decorators/get-override.js +1 -1
  279. package/development/core/decorators/handle-distinct-change.js +1 -1
  280. package/development/core/decorators/host-attributes.js +1 -1
  281. package/development/core/decorators/id-reference.js +1 -1
  282. package/development/core/decorators/omit-empty-converter.js +1 -1
  283. package/development/core/decorators/plain-date.js +1 -1
  284. package/development/core/dom/animation.js +1 -1
  285. package/development/core/dom/contains-pierce-shadow-dom.js +1 -1
  286. package/development/core/dom/lean-context.js +1 -1
  287. package/development/core/dom/platform.js +1 -1
  288. package/development/core/dom/queue-dom-content-loaded.js +1 -1
  289. package/development/core/dom/scroll.js +1 -1
  290. package/development/core/dom/set-or-remove-attribute.js +1 -1
  291. package/development/core/eventing/composed-path-has-attribute.js +1 -1
  292. package/development/core/eventing/event-target.js +1 -1
  293. package/development/core/eventing/form-element-handlers.js +1 -1
  294. package/development/core/eventing/forward-event.js +1 -1
  295. package/development/core/eventing/is-event-prevented.js +1 -1
  296. package/development/core/eventing/throttle.js +1 -1
  297. package/development/core/i18n/i18n.js +1 -1
  298. package/development/core/images.js +1 -1
  299. package/development/core/mixins/animation-complete-mixin.js +1 -1
  300. package/development/core/mixins/disabled-mixin.js +1 -1
  301. package/development/core/mixins/element-internals-mixin.js +1 -1
  302. package/development/core/mixins/form-associated-checkbox-mixin.js +1 -1
  303. package/development/core/mixins/form-associated-input-mixin.d.ts +1 -0
  304. package/development/core/mixins/form-associated-input-mixin.d.ts.map +1 -1
  305. package/development/core/mixins/form-associated-input-mixin.js +6 -1
  306. package/development/core/mixins/form-associated-mixin.js +1 -1
  307. package/development/core/mixins/form-associated-radio-button-mixin.d.ts.map +1 -1
  308. package/development/core/mixins/form-associated-radio-button-mixin.js +11 -8
  309. package/development/core/mixins/hydration-mixin.js +1 -1
  310. package/development/core/mixins/named-slot-list-mixin.js +1 -1
  311. package/development/core/mixins/negative-mixin.js +1 -1
  312. package/development/core/mixins/panel-mixin.js +1 -1
  313. package/development/core/mixins/readonly-mixin.js +1 -1
  314. package/development/core/mixins/required-mixin.js +1 -1
  315. package/development/core/mixins/selection-panel-mixin.js +1 -1
  316. package/development/core/mixins/update-scheduler-mixin.js +1 -1
  317. package/development/core/mixins.js +1 -1
  318. package/development/core/overlay/overlay-option-panel.js +1 -1
  319. package/development/core/overlay/overlay-outside-pointer-event-listener.js +1 -1
  320. package/development/core/overlay/overlay-trigger-attributes.js +1 -1
  321. package/development/core/overlay/overlay.js +1 -1
  322. package/development/core/overlay/position.js +1 -1
  323. package/development/core/styles/styles.js +1 -1
  324. package/development/core/styles.js +1 -1
  325. package/development/core/testing/event-spy.js +1 -1
  326. package/development/core/testing/mocha-extensions.js +1 -1
  327. package/development/core/testing/wait-for-condition.js +1 -1
  328. package/development/core/testing/wait-for-image-ready.js +1 -1
  329. package/development/core/testing/wait-for-render.js +1 -1
  330. package/development/core.js +3 -3
  331. package/development/date-input/date-input.component.d.ts.map +1 -1
  332. package/development/date-input/date-input.component.js +1 -1
  333. package/development/date-input.component-BBdsFSUJ.js +307 -0
  334. package/development/date-input.js +2 -2
  335. package/development/date-input.pure.js +1 -1
  336. package/development/datepicker/common/datepicker-button.js +1 -1
  337. package/development/datepicker/common.js +2 -2
  338. package/development/datepicker/datepicker/datepicker.component.js +1 -1
  339. package/development/datepicker/datepicker-next-day/datepicker-next-day.component.js +1 -1
  340. package/development/datepicker/datepicker-next-day.js +1 -1
  341. package/development/datepicker/datepicker-previous-day/datepicker-previous-day.component.js +1 -1
  342. package/development/datepicker/datepicker-previous-day.js +1 -1
  343. package/development/datepicker/datepicker-toggle/datepicker-toggle.component.js +1 -1
  344. package/development/datepicker/datepicker-toggle.js +1 -1
  345. package/development/datepicker/datepicker.js +2 -2
  346. package/development/{datepicker-button-CUPeoQgH.js → datepicker-button-Czvip-Gd.js} +1 -1
  347. package/development/{datepicker.component-D2DxFng_.js → datepicker.component-C7ukqb-L.js} +1 -1
  348. package/development/datepicker.js +3 -3
  349. package/development/datepicker.pure.js +2 -2
  350. package/development/dialog/dialog/dialog.component.js +1 -1
  351. package/development/dialog/dialog-actions/dialog-actions.component.js +1 -1
  352. package/development/dialog/dialog-actions.js +2 -2
  353. package/development/dialog/dialog-close-button/dialog-close-button.component.js +1 -1
  354. package/development/dialog/dialog-close-button.js +2 -2
  355. package/development/dialog/dialog-content/dialog-content.component.js +1 -1
  356. package/development/dialog/dialog-content.js +2 -2
  357. package/development/dialog/dialog-title/dialog-title.component.js +1 -1
  358. package/development/dialog/dialog-title.js +2 -2
  359. package/development/dialog/dialog.js +2 -2
  360. package/development/{dialog-actions.component-CegGvLGp.js → dialog-actions.component-oA335JZQ.js} +1 -1
  361. package/development/{dialog-close-button.component-C4P-8J8j.js → dialog-close-button.component-B7DK_j4Q.js} +1 -1
  362. package/development/{dialog-content.component-bm8piC0O.js → dialog-content.component-DTxT4eFj.js} +1 -1
  363. package/development/{dialog-title.component-CUAbFzCr.js → dialog-title.component-DwTo8syw.js} +1 -1
  364. package/development/{dialog.component-DKuR4u-y.js → dialog.component-CqWh22II.js} +1 -1
  365. package/development/dialog.js +6 -6
  366. package/development/dialog.pure.js +5 -5
  367. package/development/divider/divider.component.js +1 -1
  368. package/development/{divider.component-Bisnf286.js → divider.component-O4kPjU88.js} +1 -1
  369. package/development/divider.js +2 -2
  370. package/development/divider.pure.js +1 -1
  371. package/development/{error.component-OBpWoVRL.js → error.component-clhPgi-w.js} +1 -1
  372. package/development/expansion-panel/expansion-panel/expansion-panel.component.d.ts.map +1 -1
  373. package/development/expansion-panel/expansion-panel/expansion-panel.component.js +1 -1
  374. package/development/expansion-panel/expansion-panel-content/expansion-panel-content.component.js +1 -1
  375. package/development/expansion-panel/expansion-panel-content.js +2 -2
  376. package/development/expansion-panel/expansion-panel-header/expansion-panel-header.component.js +1 -1
  377. package/development/expansion-panel/expansion-panel-header.js +2 -2
  378. package/development/expansion-panel/expansion-panel.js +2 -2
  379. package/development/{expansion-panel-content.component-XIsKm8JD.js → expansion-panel-content.component-aD0sErUh.js} +1 -1
  380. package/development/{expansion-panel-header.component-C1xRGcAN.js → expansion-panel-header.component-CDRRNszp.js} +1 -1
  381. package/development/{expansion-panel.component-CV_IuWZA.js → expansion-panel.component-DUMM_Qhi.js} +10 -7
  382. package/development/expansion-panel.js +4 -4
  383. package/development/expansion-panel.pure.js +3 -3
  384. package/development/file-selector/common/file-selector-common.js +1 -1
  385. package/development/file-selector/common.js +2 -2
  386. package/development/file-selector/file-selector/file-selector.component.js +1 -1
  387. package/development/file-selector/file-selector-dropzone/file-selector-dropzone.component.js +1 -1
  388. package/development/file-selector/file-selector-dropzone.js +2 -2
  389. package/development/file-selector/file-selector.js +1 -1
  390. package/development/{file-selector-common-C7xIEiV4.js → file-selector-common-C5XMrlw6.js} +1 -1
  391. package/development/{file-selector-dropzone.component-BAWMZW4F.js → file-selector-dropzone.component-koTO2N3Z.js} +1 -1
  392. package/development/file-selector.js +3 -3
  393. package/development/file-selector.pure.js +2 -2
  394. package/development/flip-card/flip-card/flip-card.component.js +1 -1
  395. package/development/flip-card/flip-card-details/flip-card-details.component.js +1 -1
  396. package/development/flip-card/flip-card-details.js +2 -2
  397. package/development/flip-card/flip-card-summary/flip-card-summary.component.js +1 -1
  398. package/development/flip-card/flip-card-summary.js +2 -2
  399. package/development/flip-card/flip-card.js +2 -2
  400. package/development/{flip-card-details.component-iMm7NrgQ.js → flip-card-details.component-AvYTBZH-.js} +1 -1
  401. package/development/{flip-card-summary.component-HQ_VAn2j.js → flip-card-summary.component-BUqpGUbJ.js} +1 -1
  402. package/development/{flip-card.component-CJanLtkJ.js → flip-card.component-Df226cP3.js} +1 -1
  403. package/development/flip-card.js +4 -4
  404. package/development/flip-card.pure.js +3 -3
  405. package/development/footer/footer.component.js +1 -1
  406. package/development/{footer.component-BmDkxYW9.js → footer.component-DYEWvB3P.js} +1 -1
  407. package/development/footer.js +2 -2
  408. package/development/footer.pure.js +1 -1
  409. package/development/form-field/error/error.component.js +1 -1
  410. package/development/form-field/error.js +2 -2
  411. package/development/form-field/form-field/form-field.component.js +1 -1
  412. package/development/form-field/form-field-clear/form-field-clear.component.js +1 -1
  413. package/development/form-field/form-field-clear.js +1 -1
  414. package/development/form-field/form-field-text-counter/form-field-text-counter.component.js +1 -1
  415. package/development/form-field/form-field.js +2 -2
  416. package/development/form-field/hint/hint.component.js +1 -1
  417. package/development/{form-field.component-BU3Sv2mD.js → form-field.component-BkcCAGS2.js} +1 -1
  418. package/development/form-field.js +4 -4
  419. package/development/form-field.pure.js +3 -3
  420. package/development/header/common/header-action-common.js +1 -1
  421. package/development/header/common.js +2 -2
  422. package/development/header/header/header.component.js +1 -1
  423. package/development/header/header-button/header-button.component.js +1 -1
  424. package/development/header/header-button.js +1 -1
  425. package/development/header/header-environment/header-environment.component.js +1 -1
  426. package/development/header/header-environment.js +2 -2
  427. package/development/header/header-link/header-link.component.js +1 -1
  428. package/development/header/header-link.js +1 -1
  429. package/development/header/header.js +2 -2
  430. package/development/{header-action-common-MTYV0dqA.js → header-action-common-BNkB5F6_.js} +1 -1
  431. package/development/{header-environment.component-DHqoX_lg.js → header-environment.component-q1GtI6Lm.js} +1 -1
  432. package/development/{header.component-CWJ36jF0.js → header.component-CxJT1O-P.js} +1 -1
  433. package/development/header.js +4 -4
  434. package/development/header.pure.js +3 -3
  435. package/development/{hint.component-DUtL0RS3.js → hint.component-D2yunLum.js} +1 -1
  436. package/development/icon/icon-base.js +1 -1
  437. package/development/icon/icon-name-mixin.js +1 -1
  438. package/development/icon/icon-request.js +1 -1
  439. package/development/icon/icon-validate.js +1 -1
  440. package/development/icon/icon.component.js +2 -2
  441. package/development/{icon-base-DHN9pz2I.js → icon-base-Dq9MpfWT.js} +1 -1
  442. package/development/icon-sidebar/icon-sidebar/icon-sidebar.component.js +1 -1
  443. package/development/icon-sidebar/icon-sidebar-button/icon-sidebar-button.component.js +1 -1
  444. package/development/icon-sidebar/icon-sidebar-button.js +1 -1
  445. package/development/icon-sidebar/icon-sidebar-container/icon-sidebar-container.component.js +1 -1
  446. package/development/icon-sidebar/icon-sidebar-container.js +2 -2
  447. package/development/icon-sidebar/icon-sidebar-content/icon-sidebar-content.component.js +1 -1
  448. package/development/icon-sidebar/icon-sidebar-content.js +2 -2
  449. package/development/icon-sidebar/icon-sidebar-link/icon-sidebar-link.component.js +1 -1
  450. package/development/icon-sidebar/icon-sidebar-link.js +1 -1
  451. package/development/icon-sidebar/icon-sidebar.js +2 -2
  452. package/development/{icon-sidebar-container.component-BH_R88Rf.js → icon-sidebar-container.component-CdXeW3mX.js} +1 -1
  453. package/development/{icon-sidebar-content.component-yoF6FjkW.js → icon-sidebar-content.component-BPEyV1W0.js} +1 -1
  454. package/development/{icon-sidebar.component-BGEkfXVs.js → icon-sidebar.component-BufmPKms.js} +1 -1
  455. package/development/icon-sidebar.js +4 -4
  456. package/development/icon-sidebar.pure.js +3 -3
  457. package/development/icon.js +2 -2
  458. package/development/icon.pure.js +1 -1
  459. package/development/image/image.component.js +1 -1
  460. package/development/{image.component-BD0jc-u-.js → image.component-mUKzaK2k.js} +5 -16
  461. package/development/image.js +2 -2
  462. package/development/image.pure.js +1 -1
  463. package/development/{inline-link-common-CgTIwFAI.js → inline-link-common-itvi22nu.js} +2 -2
  464. package/development/journey-header/journey-header.component.js +1 -1
  465. package/development/{journey-header.component-BwVODlXk.js → journey-header.component-I7lZUyCY.js} +1 -1
  466. package/development/journey-header.js +2 -2
  467. package/development/journey-header.pure.js +1 -1
  468. package/development/lead-container/lead-container.component.js +1 -1
  469. package/development/{lead-container.component-CGVdBWJr.js → lead-container.component-BL89hZHA.js} +1 -1
  470. package/development/lead-container.js +2 -2
  471. package/development/lead-container.pure.js +1 -1
  472. package/development/link/block-link/block-link.component.js +1 -1
  473. package/development/link/block-link-button/block-link-button.component.js +1 -1
  474. package/development/link/block-link-button.js +1 -1
  475. package/development/link/block-link-static/block-link-static.component.js +1 -1
  476. package/development/link/block-link-static.js +1 -1
  477. package/development/link/block-link.js +1 -1
  478. package/development/link/common/block-link-common.js +1 -1
  479. package/development/link/common/inline-link-common.js +1 -1
  480. package/development/link/common/link-common.js +1 -1
  481. package/development/link/common.js +4 -4
  482. package/development/link/link/link.component.js +1 -1
  483. package/development/link/link-button/link-button.component.js +1 -1
  484. package/development/link/link-button.js +1 -1
  485. package/development/link/link-static/link-static.component.js +1 -1
  486. package/development/link/link-static.js +1 -1
  487. package/development/link/link.js +1 -1
  488. package/development/{link-common-DJ2FfG_Q.js → link-common-cGlWYqkY.js} +1 -1
  489. package/development/link-list/common/link-list-base.js +1 -1
  490. package/development/link-list/common.js +2 -2
  491. package/development/link-list/link-list-anchor.js +2 -2
  492. package/development/link-list/link-list.component.js +1 -1
  493. package/development/link-list/link-list.js +2 -2
  494. package/development/link-list-anchor/link-list-anchor.component.js +1 -1
  495. package/development/{link-list-anchor.component-Du7kfDZ-.js → link-list-anchor.component-D1SvQ66g.js} +1 -1
  496. package/development/link-list-anchor.js +2 -2
  497. package/development/link-list-anchor.pure.js +1 -1
  498. package/development/{link-list-base-CKMNz30d.js → link-list-base-BnV5SFiO.js} +1 -1
  499. package/development/{link-list.component-DQMg8MdQ.js → link-list.component-D_DVCimH.js} +2 -2
  500. package/development/link-list.js +4 -4
  501. package/development/link-list.pure.js +2 -2
  502. package/development/link.js +4 -4
  503. package/development/link.pure.js +3 -3
  504. package/development/loading-indicator/loading-indicator.component.js +1 -1
  505. package/development/loading-indicator-circle/loading-indicator-circle.component.js +1 -1
  506. package/development/{loading-indicator-circle.component-np96Tu5S.js → loading-indicator-circle.component-DzNpKk8l.js} +1 -1
  507. package/development/loading-indicator-circle.js +2 -2
  508. package/development/loading-indicator-circle.pure.js +1 -1
  509. package/development/{loading-indicator.component-CgHYNMxB.js → loading-indicator.component-BgbKfUDX.js} +1 -1
  510. package/development/loading-indicator.js +2 -2
  511. package/development/loading-indicator.pure.js +1 -1
  512. package/development/logo/logo.component.js +1 -1
  513. package/development/{logo.component-I0yP2SKr.js → logo.component-DOHr28xU.js} +1 -1
  514. package/development/logo.js +2 -2
  515. package/development/logo.pure.js +1 -1
  516. package/development/map-container/map-container.component.js +1 -1
  517. package/development/{map-container.component-D9NWw-wA.js → map-container.component-CIqThcx2.js} +1 -1
  518. package/development/map-container.js +2 -2
  519. package/development/map-container.pure.js +1 -1
  520. package/development/menu/common/menu-action-common.js +1 -1
  521. package/development/menu/common.js +2 -2
  522. package/development/menu/menu/menu.component.js +1 -1
  523. package/development/menu/menu-button/menu-button.component.js +1 -1
  524. package/development/menu/menu-button.js +1 -1
  525. package/development/menu/menu-link/menu-link.component.js +1 -1
  526. package/development/menu/menu-link.js +1 -1
  527. package/development/menu/menu.js +2 -2
  528. package/development/{menu-action-common-CBZCra6n.js → menu-action-common-BZE-EXWE.js} +1 -1
  529. package/development/{menu.component-Lh3JbVow.js → menu.component-BDcEd8fU.js} +1 -1
  530. package/development/menu.js +3 -3
  531. package/development/menu.pure.js +2 -2
  532. package/development/message/message.component.js +1 -1
  533. package/development/{message.component-Dlf5V5ba.js → message.component-SmdtsjkC.js} +1 -1
  534. package/development/message.js +2 -2
  535. package/development/message.pure.js +1 -1
  536. package/development/{mini-button-group.component-B3CA9KG0.js → mini-button-group.component-BdAxrqyu.js} +1 -1
  537. package/development/{mini-button-link.component-I3VpWeNU.js → mini-button-link.component-CvPvNIBL.js} +1 -1
  538. package/development/mini-calendar/mini-calendar/mini-calendar.component.js +1 -1
  539. package/development/mini-calendar/mini-calendar-day/mini-calendar-day.component.js +1 -1
  540. package/development/mini-calendar/mini-calendar-day.js +2 -2
  541. package/development/mini-calendar/mini-calendar-month/mini-calendar-month.component.js +1 -1
  542. package/development/mini-calendar/mini-calendar-month.js +2 -2
  543. package/development/mini-calendar/mini-calendar.js +2 -2
  544. package/development/{mini-calendar-day.component-BUNVO4ZU.js → mini-calendar-day.component-2tL6pRbt.js} +1 -1
  545. package/development/{mini-calendar-month.component-DZXvAhc3.js → mini-calendar-month.component-DaVLqI4h.js} +1 -1
  546. package/development/{mini-calendar.component-BufzKw74.js → mini-calendar.component-BOaOR0OO.js} +1 -1
  547. package/development/mini-calendar.js +4 -4
  548. package/development/mini-calendar.pure.js +3 -3
  549. package/development/navigation/common/navigation-action-common.js +1 -1
  550. package/development/navigation/common.js +2 -2
  551. package/development/navigation/navigation/navigation.component.js +1 -1
  552. package/development/navigation/navigation-button/navigation-button.component.js +1 -1
  553. package/development/navigation/navigation-button.js +1 -1
  554. package/development/navigation/navigation-link/navigation-link.component.js +1 -1
  555. package/development/navigation/navigation-link.js +1 -1
  556. package/development/navigation/navigation-list/navigation-list.component.js +1 -1
  557. package/development/navigation/navigation-list.js +2 -2
  558. package/development/navigation/navigation-marker/navigation-marker.component.js +1 -1
  559. package/development/navigation/navigation-marker.js +2 -2
  560. package/development/navigation/navigation-section/navigation-section.component.js +1 -1
  561. package/development/navigation/navigation-section.js +2 -2
  562. package/development/navigation/navigation.js +2 -2
  563. package/development/{navigation-action-common-Hjr4dI9J.js → navigation-action-common-EqMDRz8Z.js} +1 -1
  564. package/development/{navigation-list.component-DqITJqFx.js → navigation-list.component-DNHBxMKU.js} +1 -1
  565. package/development/{navigation-marker.component-GOv42emC.js → navigation-marker.component-A1v9Hd9J.js} +1 -1
  566. package/development/{navigation-section.component-CnVrRETN.js → navigation-section.component-DT34_2-O.js} +1 -1
  567. package/development/{navigation.component-CTNQ1dix.js → navigation.component-C4M2wVbM.js} +1 -1
  568. package/development/navigation.js +6 -6
  569. package/development/navigation.pure.js +5 -5
  570. package/development/notification/notification.component.js +1 -1
  571. package/development/{notification.component-Cvq_uViC.js → notification.component-CN_R2kpL.js} +1 -1
  572. package/development/notification.js +2 -2
  573. package/development/notification.pure.js +1 -1
  574. package/development/{optgroup-base-element-BaG2W_AP.js → optgroup-base-element-BKTWGTV2.js} +1 -1
  575. package/development/option/optgroup/optgroup-base-element.js +1 -1
  576. package/development/option/optgroup/optgroup.component.js +2 -2
  577. package/development/option/optgroup.js +2 -2
  578. package/development/option/option/option-base-element.js +1 -1
  579. package/development/option/option/option.component.js +1 -1
  580. package/development/option/option-hint/option-hint.component.js +1 -1
  581. package/development/option/option-hint.js +2 -2
  582. package/development/option/option.js +2 -2
  583. package/development/{option-hint.component-BH8dP1fM.js → option-hint.component-DoZ2KiO0.js} +1 -1
  584. package/development/{option.component-Bb2C7ae5.js → option.component-j1BtK1VA.js} +1 -1
  585. package/development/option.js +4 -4
  586. package/development/option.pure.js +3 -3
  587. package/development/overlay/overlay-base-element.js +1 -1
  588. package/development/overlay/overlay.component.js +1 -1
  589. package/development/{overlay.component-M0JuSq4C.js → overlay.component-D9yF8nHe.js} +1 -1
  590. package/development/overlay.js +2 -2
  591. package/development/overlay.pure.js +1 -1
  592. package/development/paginator/common/paginator-common.js +1 -1
  593. package/development/paginator/common.js +1 -1
  594. package/development/paginator/compact-paginator/compact-paginator.component.js +1 -1
  595. package/development/paginator/compact-paginator.js +2 -2
  596. package/development/paginator/paginator/paginator.component.js +1 -1
  597. package/development/paginator/paginator.js +2 -2
  598. package/development/{paginator.component-Bn5tK0FK.js → paginator.component-AuOrVA84.js} +4 -4
  599. package/development/paginator.js +3 -3
  600. package/development/paginator.pure.js +2 -2
  601. package/development/{panel-mixin-Dj_rsgL9.js → panel-mixin-BNGQatfO.js} +1 -1
  602. package/development/popover/popover.component.js +1 -1
  603. package/development/{popover.component-EgOs-wsR.js → popover.component-DCRonDZ_.js} +1 -1
  604. package/development/popover.js +2 -2
  605. package/development/popover.pure.js +1 -1
  606. package/development/radio-button/common/radio-button-common.js +1 -1
  607. package/development/radio-button/common.js +2 -2
  608. package/development/radio-button/radio-button-group.js +1 -1
  609. package/development/radio-button/radio-button-panel.js +1 -1
  610. package/development/radio-button/radio-button.component.js +1 -1
  611. package/development/radio-button/radio-button.js +2 -2
  612. package/development/{radio-button-common--d3WX-ZM.js → radio-button-common-BVAoj2Kq.js} +1 -1
  613. package/development/radio-button-group/radio-button-group.component.js +1 -1
  614. package/development/radio-button-group.js +1 -1
  615. package/development/radio-button-panel/radio-button-panel.component.js +1 -1
  616. package/development/radio-button-panel.js +1 -1
  617. package/development/{radio-button.component-BauLEeCV.js → radio-button.component-chdFG08o.js} +2 -2
  618. package/development/radio-button.js +3 -3
  619. package/development/radio-button.pure.js +2 -2
  620. package/development/{sbb-tokens-Cr3wVegh.js → sbb-tokens-DGQJTWqa.js} +1 -1
  621. package/development/screen-reader-only/screen-reader-only.component.js +1 -1
  622. package/development/{screen-reader-only.component-B77UuVCI.js → screen-reader-only.component-CdqwsaNQ.js} +1 -1
  623. package/development/screen-reader-only.js +2 -2
  624. package/development/screen-reader-only.pure.js +1 -1
  625. package/development/select/select.component.js +1 -1
  626. package/development/{select.component-D9SFG7Lk.js → select.component--Mx51ijv.js} +1 -1
  627. package/development/select.js +2 -2
  628. package/development/select.pure.js +1 -1
  629. package/development/selection-action-panel/selection-action-panel.component.js +1 -1
  630. package/development/{selection-action-panel.component-D6I5wdEL.js → selection-action-panel.component-Um-_SEWj.js} +1 -1
  631. package/development/selection-action-panel.js +2 -2
  632. package/development/selection-action-panel.pure.js +1 -1
  633. package/development/selection-expansion-panel/selection-expansion-panel.component.js +1 -1
  634. package/development/{selection-expansion-panel.component-eO7b_EQF.js → selection-expansion-panel.component-p3HZ05ul.js} +1 -1
  635. package/development/selection-expansion-panel.js +2 -2
  636. package/development/selection-expansion-panel.pure.js +1 -1
  637. package/development/{selection-group-base-element-DvDpwhPl.js → selection-group-base-element-Cqxds9XS.js} +1 -1
  638. package/development/sidebar/common/styles.js +1 -1
  639. package/development/sidebar/common.js +2 -2
  640. package/development/sidebar/sidebar/sidebar.component.js +1 -1
  641. package/development/sidebar/sidebar-close-button/sidebar-close-button.component.js +1 -1
  642. package/development/sidebar/sidebar-close-button.js +2 -2
  643. package/development/sidebar/sidebar-container/sidebar-container.component.js +1 -1
  644. package/development/sidebar/sidebar-container.js +2 -2
  645. package/development/sidebar/sidebar-content/sidebar-content.component.js +1 -1
  646. package/development/sidebar/sidebar-content.js +2 -2
  647. package/development/sidebar/sidebar-title/sidebar-title.component.js +1 -1
  648. package/development/sidebar/sidebar-title.js +2 -2
  649. package/development/sidebar/sidebar.js +2 -2
  650. package/development/{sidebar-close-button.component-CYWv39Mu.js → sidebar-close-button.component-D2oeYOqk.js} +1 -1
  651. package/development/{sidebar-container.component-BDSoDAym.js → sidebar-container.component-y6Lv-ekk.js} +1 -1
  652. package/development/{sidebar-content.component-JcVKpKbK.js → sidebar-content.component-Cti9Y8DD.js} +1 -1
  653. package/development/{sidebar-title.component-BA_j-Igh.js → sidebar-title.component-D95cPhCG.js} +1 -1
  654. package/development/{sidebar.component-BLqO52nH.js → sidebar.component-fAct2rbJ.js} +1 -1
  655. package/development/sidebar.js +6 -6
  656. package/development/sidebar.pure.js +5 -5
  657. package/development/signet/signet.component.js +1 -1
  658. package/development/{signet.component-3D2ZsajP.js → signet.component-Bw0R1j5v.js} +1 -1
  659. package/development/signet.js +2 -2
  660. package/development/signet.pure.js +1 -1
  661. package/development/skiplink-list/skiplink-list.component.js +1 -1
  662. package/development/{skiplink-list.component-EDPOitEB.js → skiplink-list.component-BBhrMJYv.js} +1 -1
  663. package/development/skiplink-list.js +2 -2
  664. package/development/skiplink-list.pure.js +1 -1
  665. package/development/slider/slider.component.js +1 -1
  666. package/development/{slider.component-C3qZB6ar.js → slider.component-CSaXTWQ9.js} +2 -2
  667. package/development/slider.js +2 -2
  668. package/development/slider.pure.js +1 -1
  669. package/development/status/status.component.js +1 -1
  670. package/development/{status.component-CPi1cPN0.js → status.component-Cyxc7ICo.js} +1 -1
  671. package/development/status.js +2 -2
  672. package/development/status.pure.js +1 -1
  673. package/development/{step-label.component-BJ9eainz.js → step-label.component-DbAKY6cG.js} +1 -1
  674. package/development/{step.component-CTsOBGAn.js → step.component-B5kHxVl7.js} +1 -1
  675. package/development/stepper/step/step.component.js +1 -1
  676. package/development/stepper/step-label/step-label.component.js +1 -1
  677. package/development/stepper/step-label.js +2 -2
  678. package/development/stepper/step.js +2 -2
  679. package/development/stepper/stepper/stepper.component.js +1 -1
  680. package/development/stepper/stepper.js +2 -2
  681. package/development/{stepper.component-CxOBayI1.js → stepper.component-BbeFQDmb.js} +1 -1
  682. package/development/stepper.js +4 -4
  683. package/development/stepper.pure.js +3 -3
  684. package/development/{sticky-bar.component-CysAIZTd.js → sticky-bar.component-D5uSDTQR.js} +1 -1
  685. package/development/{styles-Jlhoev1S.js → styles-BTV2MyrZ.js} +1 -1
  686. package/development/{styles-D8-q-irv.js → styles-BqagEMJX.js} +1 -1
  687. package/development/{styles-D2RLaAYK.js → styles-DiDvDJct.js} +1 -1
  688. package/development/{tab-group.component-D9jCK26q.js → tab-group.component-BWPgocri.js} +1 -1
  689. package/development/{tab-label.component-B9e9kgVf.js → tab-label.component-D8tEoOpH.js} +1 -1
  690. package/development/{tab-nav-bar.component-CgYwCSVY.js → tab-nav-bar.component-ks5dMvvA.js} +1 -1
  691. package/development/{tab.component-DThKG7-a.js → tab.component-buuzN61Z.js} +1 -1
  692. package/development/table/table-wrapper/table-wrapper.component.js +1 -1
  693. package/development/table/table-wrapper.js +2 -2
  694. package/development/{table-wrapper.component-D1p7kqCB.js → table-wrapper.component-lwzfWj_O.js} +1 -1
  695. package/development/table.js +2 -2
  696. package/development/table.pure.js +1 -1
  697. package/development/tabs/common/styles.js +1 -1
  698. package/development/tabs/common.js +2 -2
  699. package/development/tabs/tab/tab.component.js +1 -1
  700. package/development/tabs/tab-group/tab-group.component.js +1 -1
  701. package/development/tabs/tab-group.js +2 -2
  702. package/development/tabs/tab-label/tab-label.component.js +1 -1
  703. package/development/tabs/tab-label.js +2 -2
  704. package/development/tabs/tab-nav-bar/tab-nav-bar.component.js +1 -1
  705. package/development/tabs/tab-nav-bar.js +2 -2
  706. package/development/tabs/tab.js +2 -2
  707. package/development/tabs.js +6 -6
  708. package/development/tabs.pure.js +5 -5
  709. package/development/tag/tag/tag.component.js +1 -1
  710. package/development/tag/tag-group/tag-group.component.js +1 -1
  711. package/development/tag/tag-group.js +2 -2
  712. package/development/tag/tag.js +2 -2
  713. package/development/{tag-group.component-Cw46bt0E.js → tag-group.component-CgSsY4so.js} +1 -1
  714. package/development/{tag.component-Bl1nlIXQ.js → tag.component-DDHD0f_Z.js} +1 -1
  715. package/development/tag.js +3 -3
  716. package/development/tag.pure.js +2 -2
  717. package/development/teaser/teaser.component.js +1 -1
  718. package/development/teaser-hero/teaser-hero.component.js +1 -1
  719. package/development/{teaser-hero.component-BIOpoGME.js → teaser-hero.component-DIOC0KCx.js} +1 -1
  720. package/development/teaser-hero.js +2 -2
  721. package/development/teaser-hero.pure.js +1 -1
  722. package/development/teaser-product/common/teaser-product-common.js +1 -1
  723. package/development/teaser-product/common.js +2 -2
  724. package/development/teaser-product/teaser-product/teaser-product.component.js +1 -1
  725. package/development/teaser-product/teaser-product-static/teaser-product-static.component.js +1 -1
  726. package/development/teaser-product/teaser-product-static.js +1 -1
  727. package/development/teaser-product/teaser-product.js +2 -2
  728. package/development/{teaser-product-common-DYX370pm.js → teaser-product-common-Bn-YyeXw.js} +1 -1
  729. package/development/{teaser-product.component-CSArA8bH.js → teaser-product.component-BimnPgnF.js} +1 -1
  730. package/development/teaser-product.js +3 -3
  731. package/development/teaser-product.pure.js +2 -2
  732. package/development/{teaser.component-Cky6kKU0.js → teaser.component-Ci1zVbvf.js} +1 -1
  733. package/development/teaser.js +2 -2
  734. package/development/teaser.pure.js +1 -1
  735. package/development/time-input/time-input.component.d.ts +3 -1
  736. package/development/time-input/time-input.component.d.ts.map +1 -1
  737. package/development/time-input/time-input.component.js +1 -1
  738. package/development/time-input.component-BgsJfVZ1.js +198 -0
  739. package/development/time-input.js +2 -2
  740. package/development/time-input.pure.js +1 -1
  741. package/development/timetable-form/timetable-form/timetable-form.component.js +1 -1
  742. package/development/timetable-form/timetable-form-details/timetable-form-details.component.js +1 -1
  743. package/development/timetable-form/timetable-form-details.js +2 -2
  744. package/development/timetable-form/timetable-form-field/timetable-form-field.component.js +1 -1
  745. package/development/timetable-form/timetable-form-field.js +2 -2
  746. package/development/timetable-form/timetable-form-swap-button/timetable-form-swap-button.component.js +1 -1
  747. package/development/timetable-form/timetable-form-swap-button.js +2 -2
  748. package/development/timetable-form/timetable-form.js +2 -2
  749. package/development/{timetable-form-details.component-DJl5Qt9y.js → timetable-form-details.component-CJj4Ix0R.js} +1 -1
  750. package/development/{timetable-form-field.component-DQ_TzcF4.js → timetable-form-field.component-ZlYKZVdx.js} +1 -1
  751. package/development/{timetable-form-swap-button.component-Bh9aPmdn.js → timetable-form-swap-button.component-CnpDHEqk.js} +1 -1
  752. package/development/{timetable-form.component-N8h4JBlH.js → timetable-form.component-o0qXkQ3s.js} +1 -1
  753. package/development/timetable-form.js +5 -5
  754. package/development/timetable-form.pure.js +4 -4
  755. package/development/timetable-occupancy/timetable-occupancy.component.js +1 -1
  756. package/development/timetable-occupancy-icon/timetable-occupancy-icon.component.js +1 -1
  757. package/development/{timetable-occupancy-icon.component-lI7__-G5.js → timetable-occupancy-icon.component--0mckD_t.js} +1 -1
  758. package/development/timetable-occupancy-icon.js +2 -2
  759. package/development/timetable-occupancy-icon.pure.js +1 -1
  760. package/development/{timetable-occupancy.component-BBcznUh0.js → timetable-occupancy.component-Da5JZ1YL.js} +1 -1
  761. package/development/timetable-occupancy.js +2 -2
  762. package/development/timetable-occupancy.pure.js +1 -1
  763. package/development/title/title-base.js +1 -1
  764. package/development/title/title.component.js +1 -1
  765. package/development/{title-base-BdYKwj3-.js → title-base-CUh1dDaN.js} +1 -1
  766. package/development/{title.component-DSXVkddh.js → title.component--7kFUTWv.js} +2 -2
  767. package/development/title.js +3 -3
  768. package/development/title.pure.js +2 -2
  769. package/development/toast/toast.component.js +1 -1
  770. package/development/{toast.component-IhHx0Qt3.js → toast.component-Cr8wyDlQ.js} +1 -1
  771. package/development/toast.js +2 -2
  772. package/development/toast.pure.js +1 -1
  773. package/development/toggle/toggle/toggle.component.js +1 -1
  774. package/development/toggle/toggle-option/toggle-option.component.js +1 -1
  775. package/development/toggle/toggle-option.js +2 -2
  776. package/development/toggle/toggle.js +2 -2
  777. package/development/toggle-check/toggle-check.component.js +1 -1
  778. package/development/{toggle-check.component-_fDAuLob.js → toggle-check.component-DSN9PMAk.js} +1 -1
  779. package/development/toggle-check.js +2 -2
  780. package/development/toggle-check.pure.js +1 -1
  781. package/development/{toggle-option.component-DTS3a603.js → toggle-option.component-CsMbH_VC.js} +1 -1
  782. package/development/{toggle.component-BJpD1b9H.js → toggle.component-Dyt4IoG5.js} +1 -1
  783. package/development/toggle.js +3 -3
  784. package/development/toggle.pure.js +2 -2
  785. package/development/tooltip/tooltip.component.js +1 -1
  786. package/development/{tooltip.component-YaUQA-Id.js → tooltip.component-CkWwk338.js} +1 -1
  787. package/development/tooltip.js +2 -2
  788. package/development/tooltip.pure.js +1 -1
  789. package/development/train/train/train.component.js +1 -1
  790. package/development/train/train-blocked-passage/train-blocked-passage.component.js +1 -1
  791. package/development/train/train-blocked-passage.js +2 -2
  792. package/development/train/train-formation/train-formation.component.js +1 -1
  793. package/development/train/train-formation.js +2 -2
  794. package/development/train/train-wagon/train-wagon.component.js +1 -1
  795. package/development/train/train-wagon.js +2 -2
  796. package/development/train/train.js +2 -2
  797. package/development/{train-blocked-passage.component-BrUJK0gf.js → train-blocked-passage.component-CMSOBkRZ.js} +1 -1
  798. package/development/{train-formation.component-vt-nYQXA.js → train-formation.component-t-744--d.js} +1 -1
  799. package/development/{train-wagon.component-CNxkffOO.js → train-wagon.component-CCOQor0T.js} +1 -1
  800. package/development/{train.component-BgpmEDx-.js → train.component-saVL5OV2.js} +1 -1
  801. package/development/train.js +5 -5
  802. package/development/train.pure.js +4 -4
  803. package/development/visual-checkbox/visual-checkbox.component.js +1 -1
  804. package/development/{visual-checkbox.component-rdeoQN40.js → visual-checkbox.component-CJI3fnrF.js} +1 -1
  805. package/development/visual-checkbox.js +2 -2
  806. package/development/visual-checkbox.pure.js +1 -1
  807. package/dialog/dialog/dialog.component.js +1 -1
  808. package/dialog/dialog-actions/dialog-actions.component.js +1 -1
  809. package/dialog/dialog-actions.js +1 -1
  810. package/dialog/dialog-close-button/dialog-close-button.component.js +1 -1
  811. package/dialog/dialog-close-button.js +1 -1
  812. package/dialog/dialog-content/dialog-content.component.js +1 -1
  813. package/dialog/dialog-content.js +1 -1
  814. package/dialog/dialog-title/dialog-title.component.js +1 -1
  815. package/dialog/dialog-title.js +1 -1
  816. package/dialog/dialog.js +1 -1
  817. package/dialog.js +5 -5
  818. package/dialog.pure.js +5 -5
  819. package/divider/divider.component.js +1 -1
  820. package/divider.js +1 -1
  821. package/divider.pure.js +1 -1
  822. package/expansion-panel/expansion-panel/expansion-panel.component.js +1 -1
  823. package/expansion-panel/expansion-panel-content/expansion-panel-content.component.js +1 -1
  824. package/expansion-panel/expansion-panel-content.js +1 -1
  825. package/expansion-panel/expansion-panel-header/expansion-panel-header.component.js +1 -1
  826. package/expansion-panel/expansion-panel-header.js +1 -1
  827. package/expansion-panel/expansion-panel.js +1 -1
  828. package/{expansion-panel.component-DBnZ6IgB.js → expansion-panel.component-BC6xgmqg.js} +24 -21
  829. package/expansion-panel.js +3 -3
  830. package/expansion-panel.pure.js +3 -3
  831. package/file-selector/common/file-selector-common.js +1 -1
  832. package/file-selector/common.js +1 -1
  833. package/file-selector/file-selector-dropzone/file-selector-dropzone.component.js +1 -1
  834. package/file-selector/file-selector-dropzone.js +1 -1
  835. package/file-selector.js +2 -2
  836. package/file-selector.pure.js +2 -2
  837. package/flip-card/flip-card/flip-card.component.js +1 -1
  838. package/flip-card/flip-card-details/flip-card-details.component.js +1 -1
  839. package/flip-card/flip-card-details.js +1 -1
  840. package/flip-card/flip-card-summary/flip-card-summary.component.js +1 -1
  841. package/flip-card/flip-card-summary.js +1 -1
  842. package/flip-card/flip-card.js +1 -1
  843. package/flip-card.js +3 -3
  844. package/flip-card.pure.js +3 -3
  845. package/footer/footer.component.js +1 -1
  846. package/footer.js +1 -1
  847. package/footer.pure.js +1 -1
  848. package/form-field/error/error.component.js +1 -1
  849. package/form-field/error.js +1 -1
  850. package/form-field/form-field/form-field.component.js +1 -1
  851. package/form-field/form-field.js +1 -1
  852. package/form-field/hint/hint.component.js +1 -1
  853. package/form-field.js +3 -3
  854. package/form-field.pure.js +3 -3
  855. package/header/common/header-action-common.js +1 -1
  856. package/header/common.js +1 -1
  857. package/header/header/header.component.js +1 -1
  858. package/header/header-environment/header-environment.component.js +1 -1
  859. package/header/header-environment.js +1 -1
  860. package/header/header.js +1 -1
  861. package/header.js +3 -3
  862. package/header.pure.js +3 -3
  863. package/icon/icon-base.js +1 -1
  864. package/icon/icon.component.js +1 -1
  865. package/icon-sidebar/icon-sidebar/icon-sidebar.component.js +1 -1
  866. package/icon-sidebar/icon-sidebar-container/icon-sidebar-container.component.js +1 -1
  867. package/icon-sidebar/icon-sidebar-container.js +1 -1
  868. package/icon-sidebar/icon-sidebar-content/icon-sidebar-content.component.js +1 -1
  869. package/icon-sidebar/icon-sidebar-content.js +1 -1
  870. package/icon-sidebar/icon-sidebar.js +1 -1
  871. package/icon-sidebar.js +3 -3
  872. package/icon-sidebar.pure.js +3 -3
  873. package/icon.js +1 -1
  874. package/icon.pure.js +1 -1
  875. package/image/image.component.js +1 -1
  876. package/{image.component-9ttsTuRh.js → image.component-_ZwNXHRl.js} +1 -1
  877. package/image.js +1 -1
  878. package/image.pure.js +1 -1
  879. package/{inline-link-common-B5AHg8oa.js → inline-link-common-CLxDNeTA.js} +1 -1
  880. package/journey-header/journey-header.component.js +1 -1
  881. package/journey-header.js +1 -1
  882. package/journey-header.pure.js +1 -1
  883. package/lead-container/lead-container.component.js +1 -1
  884. package/lead-container.js +1 -1
  885. package/lead-container.pure.js +1 -1
  886. package/link/common/block-link-common.js +1 -1
  887. package/link/common/inline-link-common.js +1 -1
  888. package/link/common/link-common.js +1 -1
  889. package/link/common.js +3 -3
  890. package/link-list/common/link-list-base.js +1 -1
  891. package/link-list/common.js +1 -1
  892. package/link-list/link-list-anchor.js +1 -1
  893. package/link-list/link-list.component.js +1 -1
  894. package/link-list/link-list.js +1 -1
  895. package/link-list-anchor/link-list-anchor.component.js +1 -1
  896. package/link-list-anchor.js +1 -1
  897. package/link-list-anchor.pure.js +1 -1
  898. package/{link-list.component-AiEJJGPT.js → link-list.component-BJK4TICr.js} +1 -1
  899. package/link-list.js +3 -3
  900. package/link-list.pure.js +2 -2
  901. package/link.js +3 -3
  902. package/link.pure.js +3 -3
  903. package/loading-indicator/loading-indicator.component.js +1 -1
  904. package/loading-indicator-circle/loading-indicator-circle.component.js +1 -1
  905. package/loading-indicator-circle.js +1 -1
  906. package/loading-indicator-circle.pure.js +1 -1
  907. package/loading-indicator.js +1 -1
  908. package/loading-indicator.pure.js +1 -1
  909. package/logo/logo.component.js +1 -1
  910. package/logo.js +1 -1
  911. package/logo.pure.js +1 -1
  912. package/map-container/map-container.component.js +1 -1
  913. package/map-container.js +1 -1
  914. package/map-container.pure.js +1 -1
  915. package/menu/common/menu-action-common.js +1 -1
  916. package/menu/common.js +1 -1
  917. package/menu/menu/menu.component.js +1 -1
  918. package/menu/menu.js +1 -1
  919. package/menu.js +2 -2
  920. package/menu.pure.js +2 -2
  921. package/message/message.component.js +1 -1
  922. package/message.js +1 -1
  923. package/message.pure.js +1 -1
  924. package/mini-calendar/mini-calendar/mini-calendar.component.js +1 -1
  925. package/mini-calendar/mini-calendar-day/mini-calendar-day.component.js +1 -1
  926. package/mini-calendar/mini-calendar-day.js +1 -1
  927. package/mini-calendar/mini-calendar-month/mini-calendar-month.component.js +1 -1
  928. package/mini-calendar/mini-calendar-month.js +1 -1
  929. package/mini-calendar/mini-calendar.js +1 -1
  930. package/mini-calendar.js +3 -3
  931. package/mini-calendar.pure.js +3 -3
  932. package/navigation/common/navigation-action-common.js +1 -1
  933. package/navigation/common.js +1 -1
  934. package/navigation/navigation/navigation.component.js +1 -1
  935. package/navigation/navigation-list/navigation-list.component.js +1 -1
  936. package/navigation/navigation-list.js +1 -1
  937. package/navigation/navigation-marker/navigation-marker.component.js +1 -1
  938. package/navigation/navigation-marker.js +1 -1
  939. package/navigation/navigation-section/navigation-section.component.js +1 -1
  940. package/navigation/navigation-section.js +1 -1
  941. package/navigation/navigation.js +1 -1
  942. package/navigation.js +5 -5
  943. package/navigation.pure.js +5 -5
  944. package/notification/notification.component.js +1 -1
  945. package/notification.js +1 -1
  946. package/notification.pure.js +1 -1
  947. package/option/optgroup/optgroup-base-element.js +1 -1
  948. package/option/optgroup/optgroup.component.js +1 -1
  949. package/option/optgroup.js +1 -1
  950. package/option/option/option.component.js +1 -1
  951. package/option/option-hint/option-hint.component.js +1 -1
  952. package/option/option-hint.js +1 -1
  953. package/option/option.js +1 -1
  954. package/option.js +3 -3
  955. package/option.pure.js +3 -3
  956. package/overlay/overlay.component.js +1 -1
  957. package/overlay.js +1 -1
  958. package/overlay.pure.js +1 -1
  959. package/package.json +2 -2
  960. package/paginator/compact-paginator/compact-paginator.component.js +1 -1
  961. package/paginator/compact-paginator.js +1 -1
  962. package/paginator/paginator/paginator.component.js +1 -1
  963. package/paginator/paginator.js +1 -1
  964. package/{paginator.component-BEr0qU0m.js → paginator.component-Dqwz6i2O.js} +3 -3
  965. package/paginator.js +2 -2
  966. package/paginator.pure.js +2 -2
  967. package/popover/popover.component.js +1 -1
  968. package/popover.js +1 -1
  969. package/popover.pure.js +1 -1
  970. package/radio-button/common/radio-button-common.js +1 -1
  971. package/radio-button/common.js +1 -1
  972. package/radio-button/radio-button.component.js +1 -1
  973. package/radio-button/radio-button.js +1 -1
  974. package/{radio-button.component-Bae-yK_U.js → radio-button.component-CG4uNkGk.js} +1 -1
  975. package/radio-button.js +2 -2
  976. package/radio-button.pure.js +2 -2
  977. package/screen-reader-only/screen-reader-only.component.js +1 -1
  978. package/screen-reader-only.js +1 -1
  979. package/screen-reader-only.pure.js +1 -1
  980. package/select/select.component.js +1 -1
  981. package/select.js +1 -1
  982. package/select.pure.js +1 -1
  983. package/selection-action-panel/selection-action-panel.component.js +1 -1
  984. package/selection-action-panel.js +1 -1
  985. package/selection-action-panel.pure.js +1 -1
  986. package/selection-expansion-panel/selection-expansion-panel.component.js +1 -1
  987. package/selection-expansion-panel.js +1 -1
  988. package/selection-expansion-panel.pure.js +1 -1
  989. package/sidebar/common/styles.js +1 -1
  990. package/sidebar/common.js +1 -1
  991. package/sidebar/sidebar/sidebar.component.js +1 -1
  992. package/sidebar/sidebar-close-button/sidebar-close-button.component.js +1 -1
  993. package/sidebar/sidebar-close-button.js +1 -1
  994. package/sidebar/sidebar-container/sidebar-container.component.js +1 -1
  995. package/sidebar/sidebar-container.js +1 -1
  996. package/sidebar/sidebar-content/sidebar-content.component.js +1 -1
  997. package/sidebar/sidebar-content.js +1 -1
  998. package/sidebar/sidebar-title/sidebar-title.component.js +1 -1
  999. package/sidebar/sidebar-title.js +1 -1
  1000. package/sidebar/sidebar.js +1 -1
  1001. package/sidebar.js +5 -5
  1002. package/sidebar.pure.js +5 -5
  1003. package/signet/signet.component.js +1 -1
  1004. package/signet.js +1 -1
  1005. package/signet.pure.js +1 -1
  1006. package/skiplink-list/skiplink-list.component.js +1 -1
  1007. package/skiplink-list.js +1 -1
  1008. package/skiplink-list.pure.js +1 -1
  1009. package/slider/slider.component.js +1 -1
  1010. package/{slider.component-BlRVR6iU.js → slider.component-DlvtELrZ.js} +1 -1
  1011. package/slider.js +1 -1
  1012. package/slider.pure.js +1 -1
  1013. package/status/status.component.js +1 -1
  1014. package/status.js +1 -1
  1015. package/status.pure.js +1 -1
  1016. package/stepper/step/step.component.js +1 -1
  1017. package/stepper/step-label/step-label.component.js +1 -1
  1018. package/stepper/step-label.js +1 -1
  1019. package/stepper/step.js +1 -1
  1020. package/stepper/stepper/stepper.component.js +1 -1
  1021. package/stepper/stepper.js +1 -1
  1022. package/stepper.js +3 -3
  1023. package/stepper.pure.js +3 -3
  1024. package/table/table-wrapper/table-wrapper.component.js +1 -1
  1025. package/table/table-wrapper.js +1 -1
  1026. package/table.js +1 -1
  1027. package/table.pure.js +1 -1
  1028. package/tabs/common/styles.js +1 -1
  1029. package/tabs/common.js +1 -1
  1030. package/tabs/tab/tab.component.js +1 -1
  1031. package/tabs/tab-group/tab-group.component.js +1 -1
  1032. package/tabs/tab-group.js +1 -1
  1033. package/tabs/tab-label/tab-label.component.js +1 -1
  1034. package/tabs/tab-label.js +1 -1
  1035. package/tabs/tab-nav-bar/tab-nav-bar.component.js +1 -1
  1036. package/tabs/tab-nav-bar.js +1 -1
  1037. package/tabs/tab.js +1 -1
  1038. package/tabs.js +5 -5
  1039. package/tabs.pure.js +5 -5
  1040. package/tag/tag/tag.component.js +1 -1
  1041. package/tag/tag-group/tag-group.component.js +1 -1
  1042. package/tag/tag-group.js +1 -1
  1043. package/tag/tag.js +1 -1
  1044. package/tag.js +2 -2
  1045. package/tag.pure.js +2 -2
  1046. package/teaser/teaser.component.js +1 -1
  1047. package/teaser-hero/teaser-hero.component.js +1 -1
  1048. package/teaser-hero.js +1 -1
  1049. package/teaser-hero.pure.js +1 -1
  1050. package/teaser-product/common/teaser-product-common.js +1 -1
  1051. package/teaser-product/common.js +1 -1
  1052. package/teaser-product/teaser-product/teaser-product.component.js +1 -1
  1053. package/teaser-product/teaser-product.js +1 -1
  1054. package/teaser-product.js +2 -2
  1055. package/teaser-product.pure.js +2 -2
  1056. package/teaser.js +1 -1
  1057. package/teaser.pure.js +1 -1
  1058. package/time-input/time-input.component.js +1 -1
  1059. package/{time-input.component-CuQ-3YEM.js → time-input.component-DBXdyVPm.js} +15 -8
  1060. package/time-input.js +1 -1
  1061. package/time-input.pure.js +1 -1
  1062. package/timetable-form/timetable-form/timetable-form.component.js +1 -1
  1063. package/timetable-form/timetable-form-details/timetable-form-details.component.js +1 -1
  1064. package/timetable-form/timetable-form-details.js +1 -1
  1065. package/timetable-form/timetable-form-field/timetable-form-field.component.js +1 -1
  1066. package/timetable-form/timetable-form-field.js +1 -1
  1067. package/timetable-form/timetable-form-swap-button/timetable-form-swap-button.component.js +1 -1
  1068. package/timetable-form/timetable-form-swap-button.js +1 -1
  1069. package/timetable-form/timetable-form.js +1 -1
  1070. package/timetable-form.js +4 -4
  1071. package/timetable-form.pure.js +4 -4
  1072. package/timetable-occupancy/timetable-occupancy.component.js +1 -1
  1073. package/timetable-occupancy-icon/timetable-occupancy-icon.component.js +1 -1
  1074. package/timetable-occupancy-icon.js +1 -1
  1075. package/timetable-occupancy-icon.pure.js +1 -1
  1076. package/timetable-occupancy.js +1 -1
  1077. package/timetable-occupancy.pure.js +1 -1
  1078. package/title/title-base.js +1 -1
  1079. package/title/title.component.js +1 -1
  1080. package/{title.component-DAGyXwDm.js → title.component-BYShLJX4.js} +1 -1
  1081. package/title.js +2 -2
  1082. package/title.pure.js +2 -2
  1083. package/toast/toast.component.js +1 -1
  1084. package/toast.js +1 -1
  1085. package/toast.pure.js +1 -1
  1086. package/toggle/toggle/toggle.component.js +1 -1
  1087. package/toggle/toggle-option/toggle-option.component.js +1 -1
  1088. package/toggle/toggle-option.js +1 -1
  1089. package/toggle/toggle.js +1 -1
  1090. package/toggle-check/toggle-check.component.js +1 -1
  1091. package/toggle-check.js +1 -1
  1092. package/toggle-check.pure.js +1 -1
  1093. package/toggle.js +2 -2
  1094. package/toggle.pure.js +2 -2
  1095. package/tooltip/tooltip.component.js +1 -1
  1096. package/tooltip.js +1 -1
  1097. package/tooltip.pure.js +1 -1
  1098. package/train/train/train.component.js +1 -1
  1099. package/train/train-blocked-passage/train-blocked-passage.component.js +1 -1
  1100. package/train/train-blocked-passage.js +1 -1
  1101. package/train/train-formation/train-formation.component.js +1 -1
  1102. package/train/train-formation.js +1 -1
  1103. package/train/train-wagon/train-wagon.component.js +1 -1
  1104. package/train/train-wagon.js +1 -1
  1105. package/train/train.js +1 -1
  1106. package/train.js +4 -4
  1107. package/train.pure.js +4 -4
  1108. package/visual-checkbox/visual-checkbox.component.js +1 -1
  1109. package/visual-checkbox.js +1 -1
  1110. package/visual-checkbox.pure.js +1 -1
  1111. package/development/date-input.component-UP1afzgy.js +0 -307
  1112. package/development/time-input.component-BtdSR8kB.js +0 -191
  1113. /package/{accordion.component-Bos7Gwof.js → accordion.component-wCiqsnEs.js} +0 -0
  1114. /package/{action-group.component-BYif_gBd.js → action-group.component-CE_MPTDh.js} +0 -0
  1115. /package/{alert-group.component-Es6bBiff.js → alert-group.component-CV5f0dUD.js} +0 -0
  1116. /package/{alert.component-BiAbeeYd.js → alert.component-D_ePlEJb.js} +0 -0
  1117. /package/{autocomplete-base-element-Bo4fEieX.js → autocomplete-base-element-BON705dp.js} +0 -0
  1118. /package/{breadcrumb-group.component-CKNsaUqs.js → breadcrumb-group.component-Ci2I0mD3.js} +0 -0
  1119. /package/{breadcrumb.component-C1xO7cgt.js → breadcrumb.component-DhJGW-dZ.js} +0 -0
  1120. /package/{button-common-BMEhm-dn.js → button-common-DCjF70vG.js} +0 -0
  1121. /package/{calendar-cell-base-element-CBaanSU3.js → calendar-cell-base-element-BmCNJgsW.js} +0 -0
  1122. /package/{calendar-day.component-BBszRsGw.js → calendar-day.component-BECTdjpk.js} +0 -0
  1123. /package/{calendar.component-C1jk_uE0.js → calendar.component-Ba0Fwb29.js} +0 -0
  1124. /package/{card-action-common-Ct0e9dtO.js → card-action-common-CB5zFIAM.js} +0 -0
  1125. /package/{card-badge.component-D0r2iixU.js → card-badge.component-DE2ohFDU.js} +0 -0
  1126. /package/{card.component-D14GBu6y.js → card.component-D60BZprX.js} +0 -0
  1127. /package/{carousel-item.component-DUII_cjr.js → carousel-item.component-PU5q192l.js} +0 -0
  1128. /package/{carousel-list.component-C0i7aHTM.js → carousel-list.component-BB7unlht.js} +0 -0
  1129. /package/{carousel.component-BxKrGk84.js → carousel.component-Cky6IF7Z.js} +0 -0
  1130. /package/{checkbox-common-BpW4_bbi.js → checkbox-common-Brv8RN2H.js} +0 -0
  1131. /package/{chip-group.component-BqBYzfXA.js → chip-group.component-yS1gonBt.js} +0 -0
  1132. /package/{chip-label.component-B76PdOCg.js → chip-label.component-CZGsirh5.js} +0 -0
  1133. /package/{chip.component-Cu5guQs8.js → chip.component-D9KWgH37.js} +0 -0
  1134. /package/{clock.component-DHFuoi2A.js → clock.component-DpU8KAT5.js} +0 -0
  1135. /package/{compact-paginator.component-BIAPutro.js → compact-paginator.component-CQDbQFSM.js} +0 -0
  1136. /package/{container.component-CkYADvvc.js → container.component-BKZcAIyH.js} +0 -0
  1137. /package/{datepicker-button-B91ISxhE.js → datepicker-button-SUUQkrOL.js} +0 -0
  1138. /package/{datepicker.component-DJ_9VBnC.js → datepicker.component-BKR_413s.js} +0 -0
  1139. /package/{dialog-actions.component-Cp2cISc5.js → dialog-actions.component-CHLR1IFk.js} +0 -0
  1140. /package/{dialog-close-button.component-CQfIeflt.js → dialog-close-button.component-D4qtgj3k.js} +0 -0
  1141. /package/{dialog-content.component-BTAZtlGb.js → dialog-content.component-Xa9OyngJ.js} +0 -0
  1142. /package/{dialog-title.component-PVHbhrCM.js → dialog-title.component-CGPNhsMX.js} +0 -0
  1143. /package/{dialog.component-Dv5ch5mh.js → dialog.component-BGriJzOq.js} +0 -0
  1144. /package/{divider.component-D4C31FWl.js → divider.component-DxkWLCl4.js} +0 -0
  1145. /package/{error.component-DH9Obd7a.js → error.component-DbIaA-xT.js} +0 -0
  1146. /package/{expansion-panel-content.component--OJYAiBh.js → expansion-panel-content.component-rstbG52A.js} +0 -0
  1147. /package/{expansion-panel-header.component-uhZcVE_i.js → expansion-panel-header.component-DX4mPhIU.js} +0 -0
  1148. /package/{file-selector-common-BL9mM4SZ.js → file-selector-common-yy_QdLWk.js} +0 -0
  1149. /package/{file-selector-dropzone.component-Ctar2kEw.js → file-selector-dropzone.component-g0oeq3_7.js} +0 -0
  1150. /package/{flip-card-details.component-CUaLeEKc.js → flip-card-details.component-DaKTOPiS.js} +0 -0
  1151. /package/{flip-card-summary.component-T2UMG_YI.js → flip-card-summary.component-BSKe6OsO.js} +0 -0
  1152. /package/{flip-card.component-D7HNqWXz.js → flip-card.component-D8D-b1oO.js} +0 -0
  1153. /package/{footer.component-b2docCY_.js → footer.component-DVnt-rqs.js} +0 -0
  1154. /package/{form-field.component-BwZDRKbQ.js → form-field.component-Bi6alIG7.js} +0 -0
  1155. /package/{header-action-common-DSx5QDWI.js → header-action-common-D7IMoI9s.js} +0 -0
  1156. /package/{header-environment.component-rUR1XhR5.js → header-environment.component-D5OyNuJt.js} +0 -0
  1157. /package/{header.component-UQUFcMOD.js → header.component-iBP8on-G.js} +0 -0
  1158. /package/{hint.component-CE2D2TLU.js → hint.component-DiHbPOnM.js} +0 -0
  1159. /package/{icon-base-ChhGqAkg.js → icon-base-DeoAyImv.js} +0 -0
  1160. /package/{icon-sidebar-container.component-BrBnPZP_.js → icon-sidebar-container.component-DdcVHbJr.js} +0 -0
  1161. /package/{icon-sidebar-content.component-DXoyBsGO.js → icon-sidebar-content.component-CQ5gyai9.js} +0 -0
  1162. /package/{icon-sidebar.component-CSUM1GjR.js → icon-sidebar.component-CYp0wuYn.js} +0 -0
  1163. /package/{journey-header.component-BBRryMN8.js → journey-header.component-D56gqkKi.js} +0 -0
  1164. /package/{lead-container.component-D9Wotyyl.js → lead-container.component-BUT_gJpV.js} +0 -0
  1165. /package/{link-common-C-LzCFHg.js → link-common-BGEp0NyU.js} +0 -0
  1166. /package/{link-list-anchor.component-B1hvFA17.js → link-list-anchor.component-BHS2kpvU.js} +0 -0
  1167. /package/{link-list-base-COzF-Lbi.js → link-list-base-l4KAzs4B.js} +0 -0
  1168. /package/{loading-indicator-circle.component-BSVoTtX4.js → loading-indicator-circle.component-CNmWNbbF.js} +0 -0
  1169. /package/{loading-indicator.component-B85wTVDM.js → loading-indicator.component-D7O1Oiu6.js} +0 -0
  1170. /package/{logo.component-COL1QTWW.js → logo.component-CH2K-zLa.js} +0 -0
  1171. /package/{map-container.component-CEyz8sfi.js → map-container.component-DbMFVr7m.js} +0 -0
  1172. /package/{menu-action-common-p5YGaq2r.js → menu-action-common-DFfT-vSo.js} +0 -0
  1173. /package/{menu.component-DohFZw2N.js → menu.component-DOzjXsTL.js} +0 -0
  1174. /package/{message.component-DhN-aFms.js → message.component-CZLg8Agz.js} +0 -0
  1175. /package/{mini-button-group.component-DmxOnls1.js → mini-button-group.component-DRs7vhk9.js} +0 -0
  1176. /package/{mini-button-link.component-l5MIlgEB.js → mini-button-link.component-Czv7tPIq.js} +0 -0
  1177. /package/{mini-calendar-day.component-DOMxLDsW.js → mini-calendar-day.component-C1u-7WwY.js} +0 -0
  1178. /package/{mini-calendar-month.component-BAN0k3N6.js → mini-calendar-month.component-CPtonQ15.js} +0 -0
  1179. /package/{mini-calendar.component-DJfOT7ir.js → mini-calendar.component-Ck144S-D.js} +0 -0
  1180. /package/{navigation-action-common-AzRltwrb.js → navigation-action-common-CLsrcLBB.js} +0 -0
  1181. /package/{navigation-list.component-BIl68kYy.js → navigation-list.component-CjhrqS3z.js} +0 -0
  1182. /package/{navigation-marker.component-BzbbKlfT.js → navigation-marker.component-nPOUlkgg.js} +0 -0
  1183. /package/{navigation-section.component-DQxCi3O_.js → navigation-section.component-CkMmzz5Y.js} +0 -0
  1184. /package/{navigation.component-D3xUqPZB.js → navigation.component-Djv4CC1A.js} +0 -0
  1185. /package/{notification.component-D80Wl5xM.js → notification.component-DcKSFQbG.js} +0 -0
  1186. /package/{optgroup-base-element-B2WJv9gb.js → optgroup-base-element-tgwVzTR-.js} +0 -0
  1187. /package/{option-hint.component-CZH1i3mN.js → option-hint.component-LqqkYqZk.js} +0 -0
  1188. /package/{option.component-CMp8QVZT.js → option.component-DLd_HcYc.js} +0 -0
  1189. /package/{overlay.component-CbvHE6Lw.js → overlay.component-Vjh2fGRi.js} +0 -0
  1190. /package/{panel-mixin-B6dEo538.js → panel-mixin-CHWPlhxd.js} +0 -0
  1191. /package/{popover.component-CnOrQaaa.js → popover.component-BwNipVtb.js} +0 -0
  1192. /package/{radio-button-common-C1mIf9KY.js → radio-button-common-DU3-BdU-.js} +0 -0
  1193. /package/{sbb-tokens-CWYlBuxJ.js → sbb-tokens-C-MoUcho.js} +0 -0
  1194. /package/{screen-reader-only.component-Dxj7rAnR.js → screen-reader-only.component-BDVeoCjr.js} +0 -0
  1195. /package/{select.component-BT6RbERH.js → select.component-lpdrrh_X.js} +0 -0
  1196. /package/{selection-action-panel.component-C3g4OJY9.js → selection-action-panel.component-B4oqqV61.js} +0 -0
  1197. /package/{selection-expansion-panel.component-CGSkSA6y.js → selection-expansion-panel.component-CLy_okzL.js} +0 -0
  1198. /package/{selection-group-base-element-B2VHp5_l.js → selection-group-base-element-1JcLfI8U.js} +0 -0
  1199. /package/{sidebar-close-button.component-BEYnX3Hk.js → sidebar-close-button.component-B6t1fB8p.js} +0 -0
  1200. /package/{sidebar-container.component-BGh7mxq4.js → sidebar-container.component-nAJowuEC.js} +0 -0
  1201. /package/{sidebar-content.component-BEI3kpFh.js → sidebar-content.component-DRxAnYLT.js} +0 -0
  1202. /package/{sidebar-title.component-CvKixoOS.js → sidebar-title.component-4V-FrhrP.js} +0 -0
  1203. /package/{sidebar.component-Dsx1FAg0.js → sidebar.component-B93IV0Uq.js} +0 -0
  1204. /package/{signet.component-ImdnCMXV.js → signet.component-C0UZifjQ.js} +0 -0
  1205. /package/{skiplink-list.component-hqQIOxQD.js → skiplink-list.component-CoM0kPB3.js} +0 -0
  1206. /package/{status.component-lw_WDs7W.js → status.component-DUlR4ZTD.js} +0 -0
  1207. /package/{step-label.component-Dqis4FAN.js → step-label.component-9c6AsssT.js} +0 -0
  1208. /package/{step.component-xDgeguVi.js → step.component-BObsD05D.js} +0 -0
  1209. /package/{stepper.component-CYLW1eRI.js → stepper.component-0cm4c8_V.js} +0 -0
  1210. /package/{sticky-bar.component-37iKnzVR.js → sticky-bar.component-Cjbgus2r.js} +0 -0
  1211. /package/{styles-Dqjgvm-Y.js → styles-BbZA3P0N.js} +0 -0
  1212. /package/{styles-CMI5maF5.js → styles-Cedk8xO5.js} +0 -0
  1213. /package/{styles-BNu0Fjw5.js → styles-DGAxTLMz.js} +0 -0
  1214. /package/{tab-group.component-BCJix5Cq.js → tab-group.component-BeOUc69a.js} +0 -0
  1215. /package/{tab-label.component-CpdUyfiq.js → tab-label.component-CzS2ALh4.js} +0 -0
  1216. /package/{tab-nav-bar.component-7mG-Dk6g.js → tab-nav-bar.component-BwvzhK69.js} +0 -0
  1217. /package/{tab.component-rEJAbgtn.js → tab.component-DKU9Npfq.js} +0 -0
  1218. /package/{table-wrapper.component-BpMpU8um.js → table-wrapper.component-Ds-L_Ea6.js} +0 -0
  1219. /package/{tag-group.component-DkQVBbQY.js → tag-group.component-BiuzCZFt.js} +0 -0
  1220. /package/{tag.component-CsNszQvB.js → tag.component-z9wZvWME.js} +0 -0
  1221. /package/{teaser-hero.component-D8yj-N5n.js → teaser-hero.component-VqWAZaWS.js} +0 -0
  1222. /package/{teaser-product-common-Ct19HzVX.js → teaser-product-common-CLEihVea.js} +0 -0
  1223. /package/{teaser-product.component-Csj9pAne.js → teaser-product.component-D1_F6jN3.js} +0 -0
  1224. /package/{teaser.component-WZL0vAo9.js → teaser.component--IKyi0-p.js} +0 -0
  1225. /package/{timetable-form-details.component-mWKaBW_9.js → timetable-form-details.component-DJPFaGbp.js} +0 -0
  1226. /package/{timetable-form-field.component-Cv_lv8vf.js → timetable-form-field.component-DhahZl0d.js} +0 -0
  1227. /package/{timetable-form-swap-button.component-C71eoTQH.js → timetable-form-swap-button.component-BiK3VfwS.js} +0 -0
  1228. /package/{timetable-form.component-YcvKAlfz.js → timetable-form.component-Bxt2N6Ir.js} +0 -0
  1229. /package/{timetable-occupancy-icon.component-Ck0VCzxz.js → timetable-occupancy-icon.component-BM8ncpbN.js} +0 -0
  1230. /package/{timetable-occupancy.component-BCXPxz68.js → timetable-occupancy.component-DsZHIFrr.js} +0 -0
  1231. /package/{title-base-DV0qhfG9.js → title-base-Cu3A4Qtx.js} +0 -0
  1232. /package/{toast.component-CORnf2Tl.js → toast.component-D9Msa7td.js} +0 -0
  1233. /package/{toggle-check.component-DvoslSRr.js → toggle-check.component-DeHdUQ0h.js} +0 -0
  1234. /package/{toggle-option.component-pX3tNwjE.js → toggle-option.component-BnOb1ATD.js} +0 -0
  1235. /package/{toggle.component-B20xAw1V.js → toggle.component-BJomCzot.js} +0 -0
  1236. /package/{tooltip.component-ocVpJogs.js → tooltip.component-BhzGF2KQ.js} +0 -0
  1237. /package/{train-blocked-passage.component-C-ltrsRr.js → train-blocked-passage.component-CNEXrync.js} +0 -0
  1238. /package/{train-formation.component-y0TGSIGR.js → train-formation.component-CByO_sU4.js} +0 -0
  1239. /package/{train-wagon.component-BT4Xnzxr.js → train-wagon.component-MDsylhfh.js} +0 -0
  1240. /package/{train.component-NTimqCpY.js → train.component-DbbswJvo.js} +0 -0
  1241. /package/{visual-checkbox.component-CJWm74Zi.js → visual-checkbox.component-6sAtAAFY.js} +0 -0
@@ -299,4 +299,4 @@ var SbbOverlayPositionController = class {
299
299
  //#endregion
300
300
  export { SbbOverlayPositionController };
301
301
 
302
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmxheS1wb3NpdGlvbi1jb250cm9sbGVyLmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb3JlL2NvbnRyb2xsZXJzL292ZXJsYXktcG9zaXRpb24tY29udHJvbGxlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc1NlcnZlciwgdHlwZSBSZWFjdGl2ZUNvbnRyb2xsZXIsIHR5cGUgUmVhY3RpdmVDb250cm9sbGVySG9zdCB9IGZyb20gJ2xpdCc7XG5cbmltcG9ydCB0eXBlIHsgU2JiRWxlbWVudEludGVybmFsc01peGluVHlwZSB9IGZyb20gJy4uL21peGlucy50cyc7XG5cbmNvbnN0IGNzc0FuY2hvclBvc2l0aW9uU3VwcG9ydGVkID0gIWlzU2VydmVyICYmIENTUy5zdXBwb3J0cygnYW5jaG9yLW5hbWUnLCAnLS10ZXN0Jyk7XG5cbmNvbnN0IHBoeXNpY2FsU3VwcG9ydGVkUG9zaXRpb25zID0gW1xuICAndG9wJyxcbiAgJ2JvdHRvbScsXG4gICdsZWZ0JyxcbiAgJ3JpZ2h0JyxcbiAgJ3RvcCBzcGFuLWxlZnQnLFxuICAndG9wIHNwYW4tcmlnaHQnLFxuICAnYm90dG9tIHNwYW4tbGVmdCcsXG4gICdib3R0b20gc3Bhbi1yaWdodCcsXG4gICdsZWZ0IHNwYW4tdG9wJyxcbiAgJ2xlZnQgc3Bhbi1ib3R0b20nLFxuICAncmlnaHQgc3Bhbi10b3AnLFxuICAncmlnaHQgc3Bhbi1ib3R0b20nLFxuXTtcblxuLy8gTm90ZTogaWYgeW91IGFkZCBuZXcgbG9naWNhbCBzdXBwb3J0ZWQgcG9zaXRpb25zLCB1cGRhdGUgYWxzbyB0aGUgJ3J0bFBvc2l0aW9uTWFwcGluZydcbmNvbnN0IGxvZ2ljYWxTdXBwb3J0ZWRQb3NpdGlvbnMgPSBbXG4gICdibG9jay1zdGFydCcsXG4gICdibG9jay1lbmQnLFxuICAnaW5saW5lLXN0YXJ0JyxcbiAgJ2lubGluZS1lbmQnLFxuICAnYmxvY2stc3RhcnQgc3Bhbi1pbmxpbmUtc3RhcnQnLFxuICAnYmxvY2stc3RhcnQgc3Bhbi1pbmxpbmUtZW5kJyxcbiAgJ2Jsb2NrLWVuZCBzcGFuLWlubGluZS1zdGFydCcsXG4gICdibG9jay1lbmQgc3Bhbi1pbmxpbmUtZW5kJyxcbiAgJ2lubGluZS1zdGFydCBzcGFuLWJsb2NrLXN0YXJ0JyxcbiAgJ2lubGluZS1zdGFydCBzcGFuLWJsb2NrLWVuZCcsXG4gICdpbmxpbmUtZW5kIHNwYW4tYmxvY2stc3RhcnQnLFxuICAnaW5saW5lLWVuZCBzcGFuLWJsb2NrLWVuZCcsXG5dO1xuXG5jb25zdCBydGxQb3NpdGlvbk1hcHBpbmc6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gPSB7XG4gICdibG9jay1zdGFydCc6ICdibG9jay1zdGFydCcsXG4gICdibG9jay1lbmQnOiAnYmxvY2stZW5kJyxcbiAgJ2lubGluZS1zdGFydCc6ICdpbmxpbmUtZW5kJyxcbiAgJ2lubGluZS1lbmQnOiAnaW5saW5lLXN0YXJ0JyxcbiAgJ2Jsb2NrLXN0YXJ0IHNwYW4taW5saW5lLXN0YXJ0JzogJ2Jsb2NrLXN0YXJ0IHNwYW4taW5saW5lLWVuZCcsXG4gICdibG9jay1zdGFydCBzcGFuLWlubGluZS1lbmQnOiAnYmxvY2stc3RhcnQgc3Bhbi1pbmxpbmUtc3RhcnQnLFxuICAnYmxvY2stZW5kIHNwYW4taW5saW5lLXN0YXJ0JzogJ2Jsb2NrLWVuZCBzcGFuLWlubGluZS1lbmQnLFxuICAnYmxvY2stZW5kIHNwYW4taW5saW5lLWVuZCc6ICdibG9jay1lbmQgc3Bhbi1pbmxpbmUtc3RhcnQnLFxuICAnaW5saW5lLXN0YXJ0IHNwYW4tYmxvY2stc3RhcnQnOiAnaW5saW5lLWVuZCBzcGFuLWJsb2NrLXN0YXJ0JyxcbiAgJ2lubGluZS1zdGFydCBzcGFuLWJsb2NrLWVuZCc6ICdpbmxpbmUtZW5kIHNwYW4tYmxvY2stZW5kJyxcbiAgJ2lubGluZS1lbmQgc3Bhbi1ibG9jay1zdGFydCc6ICdpbmxpbmUtc3RhcnQgc3Bhbi1ibG9jay1zdGFydCcsXG4gICdpbmxpbmUtZW5kIHNwYW4tYmxvY2stZW5kJzogJ2lubGluZS1zdGFydCBzcGFuLWJsb2NrLWVuZCcsXG59O1xuXG5jb25zdCBzdXBwb3J0ZWRQb3NpdGlvbnMgPSBbLi4ucGh5c2ljYWxTdXBwb3J0ZWRQb3NpdGlvbnMsIC4uLmxvZ2ljYWxTdXBwb3J0ZWRQb3NpdGlvbnNdO1xubGV0IG5leHRJZCA9IDA7XG5cbi8qKlxuICogQ29udHJvbGxlciBmb3IgbWFuYWdpbmcgb3ZlcmxheXMgcG9zaXRpb25pbmcuIEFsc28gYWN0cyBhcyBhIHBvbHlmaWxsIHdoZW4gbmF0aXZlXG4gKiBDU1MgQW5jaG9yIFBvc2l0aW9uaW5nIGlzIG5vdCBzdXBwb3J0ZWQgKGVub3VnaCkuXG4gKiBBcHBsaWVzIHVuaXF1ZSBhbmNob3IgbmFtZXMgd2hlbiB1c2luZyBuYXRpdmUgQ1NTIEFuY2hvciBQb3NpdGlvbmluZ1xuICogb3IgY2FsY3VsYXRlcyBhbmQgYXBwbGllcyBjb3JyZWN0IHBvc2l0aW9ucyBpbiBwb2x5ZmlsbCBtb2RlLlxuICpcbiAqIEFsc28sIHRoZSBjb250cm9sbGVyIHNldHMgdGhlICdkYXRhLXBvc2l0aW9uJyBhdHRyaWJ1dGUgb24gdGhlIG92ZXJsYXkgZWxlbWVudC5cbiAqIFRoaXMgY2FuIGJlIHVzZWQgdG8gYXBwbHkgc3BlY2lmaWMgc3R5bGVzIGJhc2VkIG9uIHRoZSBjdXJyZW50IHBvc2l0aW9uIG9mIHRoZSBvdmVybGF5LlxuICpcbiAqICMjIyBJbXBsZW1lbnRhdGlvblxuICogRGVmaW5lIGFuZCBhcHBseSB0aGUgZm9sbG93aW5nIENTUyB2YXJpYWJsZXMgb24gdGhlIG92ZXJsYXkgZWxlbWVudDpcbiAqIGBgYHNjc3NcbiAqICAgLS1zYmItb3ZlcmxheS1wb3NpdGlvbi1hcmVhOiBibG9jay1lbmQ7IC8vIERlZmF1bHRcbiAqICAgLS1zYmItb3ZlcmxheS1wb3NpdGlvbi10cnktZmFsbGJhY2tzOiBibG9jay1zdGFydCwgaW5saW5lLWVuZCwgaW5saW5lLXN0YXJ0OyAvLyBGYWxsYmFja3NcbiAqXG4gKiAgIHBvc2l0aW9uLWFyZWE6IHZhcigtLXNiYi1vdmVybGF5LXBvc2l0aW9uLWFyZWEpO1xuICogICBwb3NpdGlvbi10cnktZmFsbGJhY2tzOiB2YXIoLS1zYmItb3ZlcmxheS1wb3NpdGlvbi10cnktZmFsbGJhY2tzKTtcbiAqIGBgYFxuICovXG5leHBvcnQgY2xhc3MgU2JiT3ZlcmxheVBvc2l0aW9uQ29udHJvbGxlciBpbXBsZW1lbnRzIFJlYWN0aXZlQ29udHJvbGxlciB7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3Jlc2l6ZU9ic2VydmVyID0gIWlzU2VydmVyXG4gICAgPyBuZXcgUmVzaXplT2JzZXJ2ZXIoKCkgPT4gdGhpcy5fcmVxdWVzdENhbGN1bGF0ZVBvc2l0aW9uKCkpXG4gICAgOiBudWxsITtcbiAgcHJpdmF0ZSByZWFkb25seSBfb3ZlcmxheTogUmVhY3RpdmVDb250cm9sbGVySG9zdCAmIEhUTUxFbGVtZW50ICYgU2JiRWxlbWVudEludGVybmFsc01peGluVHlwZTtcbiAgcHJpdmF0ZSBfYWJvcnRDb250cm9sbGVyPzogQWJvcnRDb250cm9sbGVyO1xuICBwcml2YXRlIF9hbmNob3I/OiBIVE1MRWxlbWVudDtcbiAgcHJpdmF0ZSBfb3ZlcmxheVN0eWxlcz86IENTU1N0eWxlRGVjbGFyYXRpb247XG4gIHByaXZhdGUgX2ZyYW1lPzogUmV0dXJuVHlwZTx0eXBlb2YgcmVxdWVzdEFuaW1hdGlvbkZyYW1lPjtcbiAgcHJpdmF0ZSBfYW5jaG9yTmFtZSA9IGAtLXNiYi1vdmVybGF5LWFuY2hvci0keysrbmV4dElkfWA7XG4gIHByaXZhdGUgX3Bvc2l0aW9uczogc3RyaW5nW10gPSBbXTtcbiAgcHJpdmF0ZSBfbGFzdFBvc2l0aW9uPzogc3RyaW5nO1xuXG4gIC8qKiBHZXQgdGhlIGN1cnJlbnQgcG9zaXRpb24uIChlLmcuIGJsb2NrLWVuZCwgYmxvY2stc3RhcnQsIGV0Yy4pICovXG4gIHB1YmxpYyBnZXQgY3VycmVudFBvc2l0aW9uKCk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMuX3VzZVBvbHlmaWxsKSB7XG4gICAgICByZXR1cm4gdGhpcy5fbGFzdFBvc2l0aW9uID8/IHRoaXMuX3Bvc2l0aW9uc1swXSA/PyAnJztcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fb3ZlcmxheVN0eWxlcyA/Pz0gZ2V0Q29tcHV0ZWRTdHlsZSh0aGlzLl9vdmVybGF5KTtcbiAgICAgIHJldHVybiB0aGlzLl9vdmVybGF5U3R5bGVzLmdldFByb3BlcnR5VmFsdWUoJ3Bvc2l0aW9uLWFyZWEnKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgaG9zdDogUmVhY3RpdmVDb250cm9sbGVySG9zdCAmIEhUTUxFbGVtZW50ICYgU2JiRWxlbWVudEludGVybmFsc01peGluVHlwZSxcbiAgICBwcml2YXRlIF91c2VQb2x5ZmlsbCA9ICFjc3NBbmNob3JQb3NpdGlvblN1cHBvcnRlZCxcbiAgKSB7XG4gICAgaG9zdC5hZGRDb250cm9sbGVyKHRoaXMpO1xuICAgIHRoaXMuX292ZXJsYXkgPSBob3N0O1xuICB9XG5cbiAgcHVibGljIGhvc3RDb25uZWN0ZWQoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLl91c2VQb2x5ZmlsbCkge1xuICAgICAgdGhpcy5fb3ZlcmxheS5zdHlsZS5zZXRQcm9wZXJ0eSgncG9zaXRpb24tYW5jaG9yJywgdGhpcy5fYW5jaG9yTmFtZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFJlc2V0IHRoZSAncG9zaXRpb24tYXJlYScgdmFsdWUgdG8gYXZvaWQgYW55IHVud2FudGVkIHNpZGUgZWZmZWN0IHdoZW4gdXNpbmcgdGhlIHBvbHlmaWxsLlxuICAgICAgdGhpcy5fb3ZlcmxheS5zdHlsZS5zZXRQcm9wZXJ0eSgncG9zaXRpb24tYXJlYScsICdpbml0aWFsJyk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGhvc3RVcGRhdGUoKTogdm9pZCB7XG4gICAgaWYgKGlzU2VydmVyKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuX3JlYWRQb3NpdGlvbnNGcm9tQ3NzKCk7XG4gIH1cblxuICAvKipcbiAgICogQ29ubmVjdHMgdGhlIG92ZXJsYXkgdG8gdGhlIGdpdmVuIHRyaWdnZXIgZWxlbWVudCBhbmQgZGV0ZXJtaW5lcyB0aGUgb3B0aW1hbCBwb3NpdGlvbi5cbiAgICogVXN1YWxseSwgdGhpcyBpcyBjYWxsZWQgd2hlbiB0aGUgb3ZlcmxheSBpcyBvcGVuZWQuXG4gICAqIEBwYXJhbSBhbmNob3IgVGhlIGFuY2hvciBlbGVtZW50LlxuICAgKi9cbiAgcHVibGljIGNvbm5lY3QoYW5jaG9yOiBIVE1MRWxlbWVudCk6IHZvaWQge1xuICAgIGlmIChpc1NlcnZlcikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLl9hbmNob3IpIHtcbiAgICAgIHRoaXMuZGlzY29ubmVjdCgpO1xuICAgIH1cbiAgICB0aGlzLl9hbmNob3IgPSBhbmNob3I7XG5cbiAgICBpZiAoIXRoaXMuX3VzZVBvbHlmaWxsKSB7XG4gICAgICB0aGlzLl9hbmNob3Iuc3R5bGUuc2V0UHJvcGVydHkoJ2FuY2hvci1uYW1lJywgdGhpcy5fYW5jaG9yTmFtZSEpO1xuICAgIH1cblxuICAgIHRoaXMuX3JlYWRQb3NpdGlvbnNGcm9tQ3NzKCk7XG4gICAgdGhpcy5fY2FsY3VsYXRlUG9zaXRpb24oKTtcbiAgICB0aGlzLl9hYm9ydENvbnRyb2xsZXI/LmFib3J0KCk7XG4gICAgdGhpcy5fYWJvcnRDb250cm9sbGVyID0gbmV3IEFib3J0Q29udHJvbGxlcigpO1xuXG4gICAgLy8gV2UgbmVlZCB0byB1c2UgY2FwdHVyZSBoZXJlIHRvIHJlYWN0IHRvIGFsbCBzY3JvbGwgZXZlbnRzLlxuICAgIC8vIElmIGNhcHR1cmUgd2FzIG5vdCB1c2VkLCB0aGVuIHNjcm9sbCBldmVudHMgaW5zaWRlIHNlcGFyYXRlIHNjcm9sbFxuICAgIC8vIGNvbnRhaW5lcnMgd291bGQgbm90IGJlIGNhdWdodC5cbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCAoKSA9PiB0aGlzLl9yZXF1ZXN0Q2FsY3VsYXRlUG9zaXRpb24oKSwge1xuICAgICAgY2FwdHVyZTogdHJ1ZSxcbiAgICAgIHBhc3NpdmU6IHRydWUsXG4gICAgICBzaWduYWw6IHRoaXMuX2Fib3J0Q29udHJvbGxlci5zaWduYWwsXG4gICAgfSk7XG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsICgpID0+IHRoaXMuX3JlcXVlc3RDYWxjdWxhdGVQb3NpdGlvbigpLCB7XG4gICAgICBwYXNzaXZlOiB0cnVlLFxuICAgICAgc2lnbmFsOiB0aGlzLl9hYm9ydENvbnRyb2xsZXIuc2lnbmFsLFxuICAgIH0pO1xuICAgIHRoaXMuX3Jlc2l6ZU9ic2VydmVyLm9ic2VydmUoYW5jaG9yLCB7IGJveDogJ2JvcmRlci1ib3gnIH0pO1xuICAgIHRoaXMuX3Jlc2l6ZU9ic2VydmVyLm9ic2VydmUodGhpcy5fb3ZlcmxheSwgeyBib3g6ICdib3JkZXItYm94JyB9KTtcbiAgfVxuXG4gIHB1YmxpYyBkaXNjb25uZWN0KCk6IHZvaWQge1xuICAgIHRoaXMuX2FuY2hvcj8uc3R5bGUucmVtb3ZlUHJvcGVydHkoJ2FuY2hvci1uYW1lJyk7XG4gICAgdGhpcy5fYW5jaG9yID0gdW5kZWZpbmVkO1xuICAgIHRoaXMuX2Fib3J0Q29udHJvbGxlcj8uYWJvcnQoKTtcbiAgICB0aGlzLl9yZXNpemVPYnNlcnZlci5kaXNjb25uZWN0KCk7XG4gIH1cblxuICBwcml2YXRlIF9yZXF1ZXN0Q2FsY3VsYXRlUG9zaXRpb24oKTogdm9pZCB7XG4gICAgdGhpcy5fZnJhbWUgPz89IHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICB0aGlzLl9jYWxjdWxhdGVQb3NpdGlvbigpO1xuICAgICAgdGhpcy5fZnJhbWUgPSB1bmRlZmluZWQ7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF9jYWxjdWxhdGVQb3NpdGlvbigpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuX2FuY2hvcikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLl91c2VQb2x5ZmlsbCkge1xuICAgICAgY29uc3QgcG9zaXRpb24gPSB0aGlzLl9nZXRPcHRpbWFsUG9zaXRpb24odGhpcy5fcG9zaXRpb25zKTtcbiAgICAgIHRoaXMuX2FwcGx5T3ZlcmxheVBvc2l0aW9uKHBvc2l0aW9uLnBvc2l0aW9uLCBwb3NpdGlvbi5sZWZ0LCBwb3NpdGlvbi50b3ApO1xuICAgIH1cblxuICAgIHRoaXMuX292ZXJsYXkuc2V0QXR0cmlidXRlKCdkYXRhLXBvc2l0aW9uJywgdGhpcy5jdXJyZW50UG9zaXRpb24pO1xuICB9XG5cbiAgLyoqXG4gICAqIENhbGN1bGF0ZXMgdGhlIG9wdGltYWwgcG9zaXRpb24gdGhhdCBmaXRzIHRoZSBvdmVybGF5LlxuICAgKiBAcGFyYW0gcG9zaXRpb25zIFRoZSBsaXN0IG9mIHBvc2l0aW9ucyB0byBjaGVjay5cbiAgICogQHByaXZhdGVcbiAgICovXG4gIHByaXZhdGUgX2dldE9wdGltYWxQb3NpdGlvbihwb3NpdGlvbnM6IHN0cmluZ1tdKToge1xuICAgIGxlZnQ6IG51bWJlcjtcbiAgICB0b3A6IG51bWJlcjtcbiAgICBwb3NpdGlvbjogc3RyaW5nO1xuICAgIGZpdHM/OiBib29sZWFuO1xuICB9IHtcbiAgICBjb25zdCB7IG9mZnNldEhlaWdodDogb3ZlcmxheUhlaWdodCwgb2Zmc2V0V2lkdGg6IG92ZXJsYXlXaWR0aCB9ID0gdGhpcy5fb3ZlcmxheTtcbiAgICBjb25zdCB7IGlubmVySGVpZ2h0OiB2aWV3cG9ydEhlaWdodCwgaW5uZXJXaWR0aDogdmlld3BvcnRXaWR0aCB9ID0gd2luZG93O1xuICAgIGNvbnN0IHtcbiAgICAgIHRvcDogdHJpZ2dlck9mZnNldFRvcCxcbiAgICAgIGxlZnQ6IHRyaWdnZXJPZmZzZXRMZWZ0LFxuICAgICAgaGVpZ2h0OiB0cmlnZ2VySGVpZ2h0LFxuICAgICAgd2lkdGg6IHRyaWdnZXJXaWR0aCxcbiAgICB9ID0gdGhpcy5fYW5jaG9yIS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcblxuICAgIGNvbnN0IGlzUnRsID0gdGhpcy5fb3ZlcmxheS5tYXRjaGVzKCc6ZGlyKHJ0bCknKTtcbiAgICBjb25zdCB0b3BTcGFjZSA9IHRyaWdnZXJPZmZzZXRUb3A7XG4gICAgY29uc3QgYm90dG9tU3BhY2UgPSB2aWV3cG9ydEhlaWdodCAtIHRyaWdnZXJIZWlnaHQgLSB0cmlnZ2VyT2Zmc2V0VG9wO1xuICAgIGNvbnN0IGxlZnRTcGFjZSA9IHRyaWdnZXJPZmZzZXRMZWZ0O1xuICAgIGNvbnN0IHJpZ2h0U3BhY2UgPSB2aWV3cG9ydFdpZHRoIC0gdHJpZ2dlcldpZHRoIC0gdHJpZ2dlck9mZnNldExlZnQ7XG5cbiAgICAvLyBUaGUgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoZSBvdmVybGF5IGFuZCB0aGUgdHJpZ2dlciB3aWR0aC9oZWlnaHQuXG4gICAgY29uc3Qgb3ZlcmxheVdpZHRoTmV0ID0gb3ZlcmxheVdpZHRoIC0gdHJpZ2dlcldpZHRoO1xuICAgIGNvbnN0IG92ZXJsYXlIZWlnaHROZXQgPSBvdmVybGF5SGVpZ2h0IC0gdHJpZ2dlckhlaWdodDtcblxuICAgIC8vIFRoZSBhbW91bnQgdGhhdCB3b3VsZCBleGNlZWQgdGhlIHRyaWdnZXIgaWYgdGhlIG92ZXJsYXkgd2VyZSBjZW50ZXJlZCBvbiBpdC5cbiAgICBjb25zdCBvdmVybGF5V2lkdGhPdmVybGFwID0gb3ZlcmxheVdpZHRoTmV0IC8gMjtcbiAgICBjb25zdCBvdmVybGF5SGVpZ2h0T3ZlcmxhcCA9IG92ZXJsYXlIZWlnaHROZXQgLyAyO1xuXG4gICAgdGhpcy5fb3ZlcmxheS5zdHlsZS5zZXRQcm9wZXJ0eShcbiAgICAgICctLXNiYi1vdmVybGF5LWNvbnRyb2xsZXItdHJpZ2dlci1oZWlnaHQnLFxuICAgICAgYCR7dHJpZ2dlckhlaWdodH1weGAsXG4gICAgKTtcbiAgICB0aGlzLl9vdmVybGF5LnN0eWxlLnNldFByb3BlcnR5KCctLXNiYi1vdmVybGF5LWNvbnRyb2xsZXItdHJpZ2dlci13aWR0aCcsIGAke3RyaWdnZXJXaWR0aH1weGApO1xuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVzZWxlc3MtYXNzaWdubWVudFxuICAgIGxldCByZXN1bHQ6IFJldHVyblR5cGU8dHlwZW9mIHRoaXMuX2dldE9wdGltYWxQb3NpdGlvbj4gPSB7IGxlZnQ6IDAsIHRvcDogMCwgcG9zaXRpb246ICcnIH07XG4gICAgbGV0IGZpcnN0UG9zaXRpb246IFJldHVyblR5cGU8dHlwZW9mIHRoaXMuX2dldE9wdGltYWxQb3NpdGlvbj4gfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG4gICAgZm9yIChjb25zdCBwb3NpdGlvbiBvZiBwb3NpdGlvbnMpIHtcbiAgICAgIC8vIElmIHJ0bCBpcyBlbmFibGVkLCB3ZSBtYXAgdGhlIGxvZ2ljYWwgcG9zaXRpb24gdG8gdGhlaXIgUlRMIGVxdWl2YWxlbnQuIChlLmcuICdpbmxpbmUtc3RhcnQnIC0+ICdpbmxpbmUtZW5kJylcbiAgICAgIGNvbnN0IHBoeXNpY2FsUG9zaXRpb24gPVxuICAgICAgICBpc1J0bCAmJiBsb2dpY2FsU3VwcG9ydGVkUG9zaXRpb25zLmluY2x1ZGVzKHBvc2l0aW9uKVxuICAgICAgICAgID8gcnRsUG9zaXRpb25NYXBwaW5nW3Bvc2l0aW9uXVxuICAgICAgICAgIDogcG9zaXRpb247XG5cbiAgICAgIHN3aXRjaCAocGh5c2ljYWxQb3NpdGlvbikge1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICBjYXNlICdib3R0b20nOlxuICAgICAgICBjYXNlICdibG9jay1lbmQnOlxuICAgICAgICAgIHJlc3VsdCA9IHtcbiAgICAgICAgICAgIHBvc2l0aW9uLFxuICAgICAgICAgICAgbGVmdDogdHJpZ2dlck9mZnNldExlZnQgLSBvdmVybGF5V2lkdGhPdmVybGFwLFxuICAgICAgICAgICAgdG9wOiB0cmlnZ2VyT2Zmc2V0VG9wICsgdHJpZ2dlckhlaWdodCxcbiAgICAgICAgICAgIGZpdHM6XG4gICAgICAgICAgICAgIG92ZXJsYXlIZWlnaHQgPD0gYm90dG9tU3BhY2UgJiZcbiAgICAgICAgICAgICAgb3ZlcmxheVdpZHRoT3ZlcmxhcCA8PSBsZWZ0U3BhY2UgJiZcbiAgICAgICAgICAgICAgb3ZlcmxheVdpZHRoT3ZlcmxhcCA8PSByaWdodFNwYWNlLFxuICAgICAgICAgIH07XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ3RvcCc6XG4gICAgICAgIGNhc2UgJ2Jsb2NrLXN0YXJ0JzpcbiAgICAgICAgICByZXN1bHQgPSB7XG4gICAgICAgICAgICBwb3NpdGlvbixcbiAgICAgICAgICAgIGxlZnQ6IHRyaWdnZXJPZmZzZXRMZWZ0IC0gb3ZlcmxheVdpZHRoT3ZlcmxhcCxcbiAgICAgICAgICAgIHRvcDogdHJpZ2dlck9mZnNldFRvcCAtIG92ZXJsYXlIZWlnaHQsXG4gICAgICAgICAgICBmaXRzOlxuICAgICAgICAgICAgICBvdmVybGF5SGVpZ2h0IDw9IHRvcFNwYWNlICYmXG4gICAgICAgICAgICAgIG92ZXJsYXlXaWR0aE92ZXJsYXAgPD0gbGVmdFNwYWNlICYmXG4gICAgICAgICAgICAgIG92ZXJsYXlXaWR0aE92ZXJsYXAgPD0gcmlnaHRTcGFjZSxcbiAgICAgICAgICB9O1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdyaWdodCc6XG4gICAgICAgIGNhc2UgJ2lubGluZS1lbmQnOlxuICAgICAgICAgIHJlc3VsdCA9IHtcbiAgICAgICAgICAgIHBvc2l0aW9uLFxuICAgICAgICAgICAgbGVmdDogdHJpZ2dlck9mZnNldExlZnQgKyB0cmlnZ2VyV2lkdGgsXG4gICAgICAgICAgICB0b3A6IHRyaWdnZXJPZmZzZXRUb3AgLSBvdmVybGF5SGVpZ2h0T3ZlcmxhcCxcbiAgICAgICAgICAgIGZpdHM6XG4gICAgICAgICAgICAgIG92ZXJsYXlXaWR0aCA8PSByaWdodFNwYWNlICYmXG4gICAgICAgICAgICAgIG92ZXJsYXlIZWlnaHRPdmVybGFwIDw9IHRvcFNwYWNlICYmXG4gICAgICAgICAgICAgIG92ZXJsYXlIZWlnaHRPdmVybGFwIDw9IGJvdHRvbVNwYWNlLFxuICAgICAgICAgIH07XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2xlZnQnOlxuICAgICAgICBjYXNlICdpbmxpbmUtc3RhcnQnOlxuICAgICAgICAgIHJlc3VsdCA9IHtcbiAgICAgICAgICAgIHBvc2l0aW9uLFxuICAgICAgICAgICAgbGVmdDogdHJpZ2dlck9mZnNldExlZnQgLSBvdmVybGF5V2lkdGgsXG4gICAgICAgICAgICB0b3A6IHRyaWdnZXJPZmZzZXRUb3AgLSBvdmVybGF5SGVpZ2h0T3ZlcmxhcCxcbiAgICAgICAgICAgIGZpdHM6XG4gICAgICAgICAgICAgIG92ZXJsYXlXaWR0aCA8PSBsZWZ0U3BhY2UgJiZcbiAgICAgICAgICAgICAgb3ZlcmxheUhlaWdodE92ZXJsYXAgPD0gdG9wU3BhY2UgJiZcbiAgICAgICAgICAgICAgb3ZlcmxheUhlaWdodE92ZXJsYXAgPD0gYm90dG9tU3BhY2UsXG4gICAgICAgICAgfTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAndG9wIHNwYW4tbGVmdCc6XG4gICAgICAgIGNhc2UgJ2Jsb2NrLXN0YXJ0IHNwYW4taW5saW5lLXN0YXJ0JzpcbiAgICAgICAgICByZXN1bHQgPSB7XG4gICAgICAgICAgICBwb3NpdGlvbixcbiAgICAgICAgICAgIGxlZnQ6IHRyaWdnZXJPZmZzZXRMZWZ0IC0gb3ZlcmxheVdpZHRoTmV0LFxuICAgICAgICAgICAgdG9wOiB0cmlnZ2VyT2Zmc2V0VG9wIC0gb3ZlcmxheUhlaWdodCxcbiAgICAgICAgICAgIGZpdHM6IG92ZXJsYXlIZWlnaHQgPD0gdG9wU3BhY2UgJiYgb3ZlcmxheVdpZHRoTmV0IDw9IGxlZnRTcGFjZSxcbiAgICAgICAgICB9O1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICd0b3Agc3Bhbi1yaWdodCc6XG4gICAgICAgIGNhc2UgJ2Jsb2NrLXN0YXJ0IHNwYW4taW5saW5lLWVuZCc6XG4gICAgICAgICAgcmVzdWx0ID0ge1xuICAgICAgICAgICAgcG9zaXRpb24sXG4gICAgICAgICAgICBsZWZ0OiB0cmlnZ2VyT2Zmc2V0TGVmdCxcbiAgICAgICAgICAgIHRvcDogdHJpZ2dlck9mZnNldFRvcCAtIG92ZXJsYXlIZWlnaHQsXG4gICAgICAgICAgICBmaXRzOiBvdmVybGF5SGVpZ2h0IDw9IHRvcFNwYWNlICYmIG92ZXJsYXlXaWR0aE5ldCA8PSByaWdodFNwYWNlLFxuICAgICAgICAgIH07XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2JvdHRvbSBzcGFuLWxlZnQnOlxuICAgICAgICBjYXNlICdibG9jay1lbmQgc3Bhbi1pbmxpbmUtc3RhcnQnOlxuICAgICAgICAgIHJlc3VsdCA9IHtcbiAgICAgICAgICAgIHBvc2l0aW9uLFxuICAgICAgICAgICAgbGVmdDogdHJpZ2dlck9mZnNldExlZnQgLSBvdmVybGF5V2lkdGhOZXQsXG4gICAgICAgICAgICB0b3A6IHRyaWdnZXJPZmZzZXRUb3AgKyB0cmlnZ2VySGVpZ2h0LFxuICAgICAgICAgICAgZml0czogb3ZlcmxheUhlaWdodCA8PSBib3R0b21TcGFjZSAmJiBvdmVybGF5V2lkdGhOZXQgPD0gbGVmdFNwYWNlLFxuICAgICAgICAgIH07XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2JvdHRvbSBzcGFuLXJpZ2h0JzpcbiAgICAgICAgY2FzZSAnYmxvY2stZW5kIHNwYW4taW5saW5lLWVuZCc6XG4gICAgICAgICAgcmVzdWx0ID0ge1xuICAgICAgICAgICAgcG9zaXRpb24sXG4gICAgICAgICAgICBsZWZ0OiB0cmlnZ2VyT2Zmc2V0TGVmdCxcbiAgICAgICAgICAgIHRvcDogdHJpZ2dlck9mZnNldFRvcCArIHRyaWdnZXJIZWlnaHQsXG4gICAgICAgICAgICBmaXRzOiBvdmVybGF5SGVpZ2h0IDw9IGJvdHRvbVNwYWNlICYmIG92ZXJsYXlXaWR0aE5ldCA8PSByaWdodFNwYWNlLFxuICAgICAgICAgIH07XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2xlZnQgc3Bhbi10b3AnOlxuICAgICAgICBjYXNlICdpbmxpbmUtc3RhcnQgc3Bhbi1ibG9jay1zdGFydCc6XG4gICAgICAgICAgcmVzdWx0ID0ge1xuICAgICAgICAgICAgcG9zaXRpb24sXG4gICAgICAgICAgICBsZWZ0OiB0cmlnZ2VyT2Zmc2V0TGVmdCAtIG92ZXJsYXlXaWR0aCxcbiAgICAgICAgICAgIHRvcDogdHJpZ2dlck9mZnNldFRvcCArIHRyaWdnZXJIZWlnaHQgLSBvdmVybGF5SGVpZ2h0LFxuICAgICAgICAgICAgZml0czogb3ZlcmxheVdpZHRoIDw9IGxlZnRTcGFjZSAmJiBvdmVybGF5SGVpZ2h0TmV0IDw9IHRvcFNwYWNlLFxuICAgICAgICAgIH07XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2xlZnQgc3Bhbi1ib3R0b20nOlxuICAgICAgICBjYXNlICdpbmxpbmUtc3RhcnQgc3Bhbi1ibG9jay1lbmQnOlxuICAgICAgICAgIHJlc3VsdCA9IHtcbiAgICAgICAgICAgIHBvc2l0aW9uLFxuICAgICAgICAgICAgbGVmdDogdHJpZ2dlck9mZnNldExlZnQgLSBvdmVybGF5V2lkdGgsXG4gICAgICAgICAgICB0b3A6IHRyaWdnZXJPZmZzZXRUb3AsXG4gICAgICAgICAgICBmaXRzOiBvdmVybGF5V2lkdGggPD0gbGVmdFNwYWNlICYmIG92ZXJsYXlIZWlnaHROZXQgPD0gYm90dG9tU3BhY2UsXG4gICAgICAgICAgfTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAncmlnaHQgc3Bhbi10b3AnOlxuICAgICAgICBjYXNlICdpbmxpbmUtZW5kIHNwYW4tYmxvY2stc3RhcnQnOlxuICAgICAgICAgIHJlc3VsdCA9IHtcbiAgICAgICAgICAgIHBvc2l0aW9uLFxuICAgICAgICAgICAgbGVmdDogdHJpZ2dlck9mZnNldExlZnQgKyB0cmlnZ2VyV2lkdGgsXG4gICAgICAgICAgICB0b3A6IHRyaWdnZXJPZmZzZXRUb3AgKyB0cmlnZ2VySGVpZ2h0IC0gb3ZlcmxheUhlaWdodCxcbiAgICAgICAgICAgIGZpdHM6IG92ZXJsYXlXaWR0aCA8PSByaWdodFNwYWNlICYmIG92ZXJsYXlIZWlnaHROZXQgPD0gdG9wU3BhY2UsXG4gICAgICAgICAgfTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAncmlnaHQgc3Bhbi1ib3R0b20nOlxuICAgICAgICBjYXNlICdpbmxpbmUtZW5kIHNwYW4tYmxvY2stZW5kJzpcbiAgICAgICAgICByZXN1bHQgPSB7XG4gICAgICAgICAgICBwb3NpdGlvbixcbiAgICAgICAgICAgIGxlZnQ6IHRyaWdnZXJPZmZzZXRMZWZ0ICsgdHJpZ2dlcldpZHRoLFxuICAgICAgICAgICAgdG9wOiB0cmlnZ2VyT2Zmc2V0VG9wLFxuICAgICAgICAgICAgZml0czogb3ZlcmxheVdpZHRoIDw9IHJpZ2h0U3BhY2UgJiYgb3ZlcmxheUhlaWdodE5ldCA8PSBib3R0b21TcGFjZSxcbiAgICAgICAgICB9O1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgaWYgKHJlc3VsdC5maXRzKSB7XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICB9XG4gICAgICBmaXJzdFBvc2l0aW9uID8/PSByZXN1bHQ7XG4gICAgfVxuXG4gICAgLy8gSWYgbm8gcG9zaXRpb24gZml0cywgd2UgcmV0dXJuIHRoZSBmaXJzdCBvbmUuXG4gICAgcmV0dXJuIGZpcnN0UG9zaXRpb24hO1xuICB9XG5cbiAgcHJpdmF0ZSBfYXBwbHlPdmVybGF5UG9zaXRpb24ocG9zaXRpb246IHN0cmluZywgbGVmdDogbnVtYmVyLCB0b3A6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMuX2xhc3RQb3NpdGlvbiA9IHBvc2l0aW9uO1xuICAgIHRoaXMuX292ZXJsYXkuc3R5bGUubGVmdCA9IGAke2xlZnR9cHhgO1xuICAgIHRoaXMuX292ZXJsYXkuc3R5bGUudG9wID0gYCR7dG9wfXB4YDtcbiAgfVxuXG4gIC8qKlxuICAgKiBPbmx5IHVzZWQgaW4gcG9seWZpbGwgbW9kZS5cbiAgICogUmVhZHMgdGhlIGxpc3Qgb2YgdGhlIGNvbmZpZ3VyZWQgcG9zaXRpb25zIGZyb20gdGhlIENTUyB2YXJpYWJsZXMuXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBwcml2YXRlIF9yZWFkUG9zaXRpb25zRnJvbUNzcygpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuX3VzZVBvbHlmaWxsKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuX292ZXJsYXlTdHlsZXMgPz89IGdldENvbXB1dGVkU3R5bGUodGhpcy5fb3ZlcmxheSk7XG4gICAgY29uc3QgcG9zaXRpb25zID0gW1xuICAgICAgdGhpcy5fb3ZlcmxheVN0eWxlcy5nZXRQcm9wZXJ0eVZhbHVlKCctLXNiYi1vdmVybGF5LXBvc2l0aW9uLWFyZWEnKSB8fCAnYmxvY2stZW5kJyxcbiAgICAgIC4uLnRoaXMuX292ZXJsYXlTdHlsZXNcbiAgICAgICAgLmdldFByb3BlcnR5VmFsdWUoJy0tc2JiLW92ZXJsYXktcG9zaXRpb24tdHJ5LWZhbGxiYWNrcycpXG4gICAgICAgIC5zcGxpdCgnLCcpXG4gICAgICAgIC5tYXAoKGYpID0+IGYudHJpbSgpKVxuICAgICAgICAuZmlsdGVyKChmKSA9PiAhIWYpLFxuICAgIF07XG5cbiAgICBpZiAoaW1wb3J0Lm1ldGEuZW52LkRFViAmJiBwb3NpdGlvbnMuc29tZSgocCkgPT4gIXN1cHBvcnRlZFBvc2l0aW9ucy5pbmNsdWRlcyhwKSkpIHtcbiAgICAgIGNvbnN0IHVuc3VwcG9ydGVkUG9zaXRpb25zID0gcG9zaXRpb25zXG4gICAgICAgIC5maWx0ZXIoKHApID0+ICFzdXBwb3J0ZWRQb3NpdGlvbnMuaW5jbHVkZXMocCkpXG4gICAgICAgIC5zb3J0KClcbiAgICAgICAgLmpvaW4oJywgJyk7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBVbnN1cHBvcnRlZCBwb3NpdGlvbi10cnktZmFsbGJhY2tzICR7dW5zdXBwb3J0ZWRQb3NpdGlvbnN9IChTdXBwb3J0ZWQ6ICR7c3VwcG9ydGVkUG9zaXRpb25zLmpvaW4oJywgJyl9KWAsXG4gICAgICApO1xuICAgIH1cblxuICAgIHRoaXMuX3Bvc2l0aW9ucyA9IHBvc2l0aW9ucztcbiAgICBpZiAodGhpcy5fbGFzdFBvc2l0aW9uICYmICF0aGlzLl9wb3NpdGlvbnMuaW5jbHVkZXModGhpcy5fbGFzdFBvc2l0aW9uKSkge1xuICAgICAgdGhpcy5fbGFzdFBvc2l0aW9uID0gdW5kZWZpbmVkO1xuICAgIH1cbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOztBQUlBLElBQU0sNkJBQTZCLENBQUMsWUFBWSxJQUFJLFNBQVMsZUFBZSxTQUFTO0FBRXJGLElBQU0sNkJBQTZCO0NBQ2pDO0NBQ0E7Q0FDQTtDQUNBO0NBQ0E7Q0FDQTtDQUNBO0NBQ0E7Q0FDQTtDQUNBO0NBQ0E7Q0FDQTtDQUNEO0FBR0QsSUFBTSw0QkFBNEI7Q0FDaEM7Q0FDQTtDQUNBO0NBQ0E7Q0FDQTtDQUNBO0NBQ0E7Q0FDQTtDQUNBO0NBQ0E7Q0FDQTtDQUNBO0NBQ0Q7QUFFRCxJQUFNLHFCQUFnRDtDQUNwRCxlQUFlO0NBQ2YsYUFBYTtDQUNiLGdCQUFnQjtDQUNoQixjQUFjO0NBQ2QsaUNBQWlDO0NBQ2pDLCtCQUErQjtDQUMvQiwrQkFBK0I7Q0FDL0IsNkJBQTZCO0NBQzdCLGlDQUFpQztDQUNqQywrQkFBK0I7Q0FDL0IsK0JBQStCO0NBQy9CLDZCQUE2QjtDQUM5QjtBQUUwQixDQUFDLEdBQUcsNEJBQTRCLEdBQUcsMEJBQTBCO0FBQ3hGLElBQUksU0FBUzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFxQmIsSUFBYSwrQkFBYixNQUF5Qzs7Q0FjdkMsSUFBVyxrQkFBZTtFQUN4QixJQUFJLEtBQUssY0FDUCxPQUFPLEtBQUssaUJBQWlCLEtBQUssV0FBVyxNQUFNO09BQzlDO0dBQ0wsS0FBSyxtQkFBbUIsaUJBQWlCLEtBQUssU0FBUztHQUN2RCxPQUFPLEtBQUssZUFBZSxpQkFBaUIs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
302
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmxheS1wb3NpdGlvbi1jb250cm9sbGVyLmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb3JlL2NvbnRyb2xsZXJzL292ZXJsYXktcG9zaXRpb24tY29udHJvbGxlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc1NlcnZlciwgdHlwZSBSZWFjdGl2ZUNvbnRyb2xsZXIsIHR5cGUgUmVhY3RpdmVDb250cm9sbGVySG9zdCB9IGZyb20gJ2xpdCc7XG5cbmltcG9ydCB0eXBlIHsgU2JiRWxlbWVudEludGVybmFsc01peGluVHlwZSB9IGZyb20gJy4uL21peGlucy50cyc7XG5cbmNvbnN0IGNzc0FuY2hvclBvc2l0aW9uU3VwcG9ydGVkID0gIWlzU2VydmVyICYmIENTUy5zdXBwb3J0cygnYW5jaG9yLW5hbWUnLCAnLS10ZXN0Jyk7XG5cbmNvbnN0IHBoeXNpY2FsU3VwcG9ydGVkUG9zaXRpb25zID0gW1xuICAndG9wJyxcbiAgJ2JvdHRvbScsXG4gICdsZWZ0JyxcbiAgJ3JpZ2h0JyxcbiAgJ3RvcCBzcGFuLWxlZnQnLFxuICAndG9wIHNwYW4tcmlnaHQnLFxuICAnYm90dG9tIHNwYW4tbGVmdCcsXG4gICdib3R0b20gc3Bhbi1yaWdodCcsXG4gICdsZWZ0IHNwYW4tdG9wJyxcbiAgJ2xlZnQgc3Bhbi1ib3R0b20nLFxuICAncmlnaHQgc3Bhbi10b3AnLFxuICAncmlnaHQgc3Bhbi1ib3R0b20nLFxuXTtcblxuLy8gTm90ZTogaWYgeW91IGFkZCBuZXcgbG9naWNhbCBzdXBwb3J0ZWQgcG9zaXRpb25zLCB1cGRhdGUgYWxzbyB0aGUgJ3J0bFBvc2l0aW9uTWFwcGluZydcbmNvbnN0IGxvZ2ljYWxTdXBwb3J0ZWRQb3NpdGlvbnMgPSBbXG4gICdibG9jay1zdGFydCcsXG4gICdibG9jay1lbmQnLFxuICAnaW5saW5lLXN0YXJ0JyxcbiAgJ2lubGluZS1lbmQnLFxuICAnYmxvY2stc3RhcnQgc3Bhbi1pbmxpbmUtc3RhcnQnLFxuICAnYmxvY2stc3RhcnQgc3Bhbi1pbmxpbmUtZW5kJyxcbiAgJ2Jsb2NrLWVuZCBzcGFuLWlubGluZS1zdGFydCcsXG4gICdibG9jay1lbmQgc3Bhbi1pbmxpbmUtZW5kJyxcbiAgJ2lubGluZS1zdGFydCBzcGFuLWJsb2NrLXN0YXJ0JyxcbiAgJ2lubGluZS1zdGFydCBzcGFuLWJsb2NrLWVuZCcsXG4gICdpbmxpbmUtZW5kIHNwYW4tYmxvY2stc3RhcnQnLFxuICAnaW5saW5lLWVuZCBzcGFuLWJsb2NrLWVuZCcsXG5dO1xuXG5jb25zdCBydGxQb3NpdGlvbk1hcHBpbmc6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gPSB7XG4gICdibG9jay1zdGFydCc6ICdibG9jay1zdGFydCcsXG4gICdibG9jay1lbmQnOiAnYmxvY2stZW5kJyxcbiAgJ2lubGluZS1zdGFydCc6ICdpbmxpbmUtZW5kJyxcbiAgJ2lubGluZS1lbmQnOiAnaW5saW5lLXN0YXJ0JyxcbiAgJ2Jsb2NrLXN0YXJ0IHNwYW4taW5saW5lLXN0YXJ0JzogJ2Jsb2NrLXN0YXJ0IHNwYW4taW5saW5lLWVuZCcsXG4gICdibG9jay1zdGFydCBzcGFuLWlubGluZS1lbmQnOiAnYmxvY2stc3RhcnQgc3Bhbi1pbmxpbmUtc3RhcnQnLFxuICAnYmxvY2stZW5kIHNwYW4taW5saW5lLXN0YXJ0JzogJ2Jsb2NrLWVuZCBzcGFuLWlubGluZS1lbmQnLFxuICAnYmxvY2stZW5kIHNwYW4taW5saW5lLWVuZCc6ICdibG9jay1lbmQgc3Bhbi1pbmxpbmUtc3RhcnQnLFxuICAnaW5saW5lLXN0YXJ0IHNwYW4tYmxvY2stc3RhcnQnOiAnaW5saW5lLWVuZCBzcGFuLWJsb2NrLXN0YXJ0JyxcbiAgJ2lubGluZS1zdGFydCBzcGFuLWJsb2NrLWVuZCc6ICdpbmxpbmUtZW5kIHNwYW4tYmxvY2stZW5kJyxcbiAgJ2lubGluZS1lbmQgc3Bhbi1ibG9jay1zdGFydCc6ICdpbmxpbmUtc3RhcnQgc3Bhbi1ibG9jay1zdGFydCcsXG4gICdpbmxpbmUtZW5kIHNwYW4tYmxvY2stZW5kJzogJ2lubGluZS1zdGFydCBzcGFuLWJsb2NrLWVuZCcsXG59O1xuXG5jb25zdCBzdXBwb3J0ZWRQb3NpdGlvbnMgPSBbLi4ucGh5c2ljYWxTdXBwb3J0ZWRQb3NpdGlvbnMsIC4uLmxvZ2ljYWxTdXBwb3J0ZWRQb3NpdGlvbnNdO1xubGV0IG5leHRJZCA9IDA7XG5cbi8qKlxuICogQ29udHJvbGxlciBmb3IgbWFuYWdpbmcgb3ZlcmxheXMgcG9zaXRpb25pbmcuIEFsc28gYWN0cyBhcyBhIHBvbHlmaWxsIHdoZW4gbmF0aXZlXG4gKiBDU1MgQW5jaG9yIFBvc2l0aW9uaW5nIGlzIG5vdCBzdXBwb3J0ZWQgKGVub3VnaCkuXG4gKiBBcHBsaWVzIHVuaXF1ZSBhbmNob3IgbmFtZXMgd2hlbiB1c2luZyBuYXRpdmUgQ1NTIEFuY2hvciBQb3NpdGlvbmluZ1xuICogb3IgY2FsY3VsYXRlcyBhbmQgYXBwbGllcyBjb3JyZWN0IHBvc2l0aW9ucyBpbiBwb2x5ZmlsbCBtb2RlLlxuICpcbiAqIEFsc28sIHRoZSBjb250cm9sbGVyIHNldHMgdGhlICdkYXRhLXBvc2l0aW9uJyBhdHRyaWJ1dGUgb24gdGhlIG92ZXJsYXkgZWxlbWVudC5cbiAqIFRoaXMgY2FuIGJlIHVzZWQgdG8gYXBwbHkgc3BlY2lmaWMgc3R5bGVzIGJhc2VkIG9uIHRoZSBjdXJyZW50IHBvc2l0aW9uIG9mIHRoZSBvdmVybGF5LlxuICpcbiAqICMjIyBJbXBsZW1lbnRhdGlvblxuICogRGVmaW5lIGFuZCBhcHBseSB0aGUgZm9sbG93aW5nIENTUyB2YXJpYWJsZXMgb24gdGhlIG92ZXJsYXkgZWxlbWVudDpcbiAqIGBgYHNjc3NcbiAqICAgLS1zYmItb3ZlcmxheS1wb3NpdGlvbi1hcmVhOiBibG9jay1lbmQ7IC8vIERlZmF1bHRcbiAqICAgLS1zYmItb3ZlcmxheS1wb3NpdGlvbi10cnktZmFsbGJhY2tzOiBibG9jay1zdGFydCwgaW5saW5lLWVuZCwgaW5saW5lLXN0YXJ0OyAvLyBGYWxsYmFja3NcbiAqXG4gKiAgIHBvc2l0aW9uLWFyZWE6IHZhcigtLXNiYi1vdmVybGF5LXBvc2l0aW9uLWFyZWEpO1xuICogICBwb3NpdGlvbi10cnktZmFsbGJhY2tzOiB2YXIoLS1zYmItb3ZlcmxheS1wb3NpdGlvbi10cnktZmFsbGJhY2tzKTtcbiAqIGBgYFxuICovXG5leHBvcnQgY2xhc3MgU2JiT3ZlcmxheVBvc2l0aW9uQ29udHJvbGxlciBpbXBsZW1lbnRzIFJlYWN0aXZlQ29udHJvbGxlciB7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3Jlc2l6ZU9ic2VydmVyID0gIWlzU2VydmVyXG4gICAgPyBuZXcgUmVzaXplT2JzZXJ2ZXIoKCkgPT4gdGhpcy5fcmVxdWVzdENhbGN1bGF0ZVBvc2l0aW9uKCkpXG4gICAgOiBudWxsITtcbiAgcHJpdmF0ZSByZWFkb25seSBfb3ZlcmxheTogUmVhY3RpdmVDb250cm9sbGVySG9zdCAmIEhUTUxFbGVtZW50ICYgU2JiRWxlbWVudEludGVybmFsc01peGluVHlwZTtcbiAgcHJpdmF0ZSBfYWJvcnRDb250cm9sbGVyPzogQWJvcnRDb250cm9sbGVyO1xuICBwcml2YXRlIF9hbmNob3I/OiBIVE1MRWxlbWVudDtcbiAgcHJpdmF0ZSBfb3ZlcmxheVN0eWxlcz86IENTU1N0eWxlRGVjbGFyYXRpb247XG4gIHByaXZhdGUgX2ZyYW1lPzogUmV0dXJuVHlwZTx0eXBlb2YgcmVxdWVzdEFuaW1hdGlvbkZyYW1lPjtcbiAgcHJpdmF0ZSBfYW5jaG9yTmFtZSA9IGAtLXNiYi1vdmVybGF5LWFuY2hvci0keysrbmV4dElkfWA7XG4gIHByaXZhdGUgX3Bvc2l0aW9uczogc3RyaW5nW10gPSBbXTtcbiAgcHJpdmF0ZSBfbGFzdFBvc2l0aW9uPzogc3RyaW5nO1xuXG4gIC8qKiBHZXQgdGhlIGN1cnJlbnQgcG9zaXRpb24uIChlLmcuIGJsb2NrLWVuZCwgYmxvY2stc3RhcnQsIGV0Yy4pICovXG4gIHB1YmxpYyBnZXQgY3VycmVudFBvc2l0aW9uKCk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMuX3VzZVBvbHlmaWxsKSB7XG4gICAgICByZXR1cm4gdGhpcy5fbGFzdFBvc2l0aW9uID8/IHRoaXMuX3Bvc2l0aW9uc1swXSA/PyAnJztcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fb3ZlcmxheVN0eWxlcyA/Pz0gZ2V0Q29tcHV0ZWRTdHlsZSh0aGlzLl9vdmVybGF5KTtcbiAgICAgIHJldHVybiB0aGlzLl9vdmVybGF5U3R5bGVzLmdldFByb3BlcnR5VmFsdWUoJ3Bvc2l0aW9uLWFyZWEnKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgaG9zdDogUmVhY3RpdmVDb250cm9sbGVySG9zdCAmIEhUTUxFbGVtZW50ICYgU2JiRWxlbWVudEludGVybmFsc01peGluVHlwZSxcbiAgICBwcml2YXRlIF91c2VQb2x5ZmlsbCA9ICFjc3NBbmNob3JQb3NpdGlvblN1cHBvcnRlZCxcbiAgKSB7XG4gICAgaG9zdC5hZGRDb250cm9sbGVyKHRoaXMpO1xuICAgIHRoaXMuX292ZXJsYXkgPSBob3N0O1xuICB9XG5cbiAgcHVibGljIGhvc3RDb25uZWN0ZWQoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLl91c2VQb2x5ZmlsbCkge1xuICAgICAgdGhpcy5fb3ZlcmxheS5zdHlsZS5zZXRQcm9wZXJ0eSgncG9zaXRpb24tYW5jaG9yJywgdGhpcy5fYW5jaG9yTmFtZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFJlc2V0IHRoZSAncG9zaXRpb24tYXJlYScgdmFsdWUgdG8gYXZvaWQgYW55IHVud2FudGVkIHNpZGUgZWZmZWN0IHdoZW4gdXNpbmcgdGhlIHBvbHlmaWxsLlxuICAgICAgdGhpcy5fb3ZlcmxheS5zdHlsZS5zZXRQcm9wZXJ0eSgncG9zaXRpb24tYXJlYScsICdpbml0aWFsJyk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGhvc3RVcGRhdGUoKTogdm9pZCB7XG4gICAgaWYgKGlzU2VydmVyKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuX3JlYWRQb3NpdGlvbnNGcm9tQ3NzKCk7XG4gIH1cblxuICAvKipcbiAgICogQ29ubmVjdHMgdGhlIG92ZXJsYXkgdG8gdGhlIGdpdmVuIHRyaWdnZXIgZWxlbWVudCBhbmQgZGV0ZXJtaW5lcyB0aGUgb3B0aW1hbCBwb3NpdGlvbi5cbiAgICogVXN1YWxseSwgdGhpcyBpcyBjYWxsZWQgd2hlbiB0aGUgb3ZlcmxheSBpcyBvcGVuZWQuXG4gICAqIEBwYXJhbSBhbmNob3IgVGhlIGFuY2hvciBlbGVtZW50LlxuICAgKi9cbiAgcHVibGljIGNvbm5lY3QoYW5jaG9yOiBIVE1MRWxlbWVudCk6IHZvaWQge1xuICAgIGlmIChpc1NlcnZlcikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLl9hbmNob3IpIHtcbiAgICAgIHRoaXMuZGlzY29ubmVjdCgpO1xuICAgIH1cbiAgICB0aGlzLl9hbmNob3IgPSBhbmNob3I7XG5cbiAgICBpZiAoIXRoaXMuX3VzZVBvbHlmaWxsKSB7XG4gICAgICB0aGlzLl9hbmNob3Iuc3R5bGUuc2V0UHJvcGVydHkoJ2FuY2hvci1uYW1lJywgdGhpcy5fYW5jaG9yTmFtZSEpO1xuICAgIH1cblxuICAgIHRoaXMuX3JlYWRQb3NpdGlvbnNGcm9tQ3NzKCk7XG4gICAgdGhpcy5fY2FsY3VsYXRlUG9zaXRpb24oKTtcbiAgICB0aGlzLl9hYm9ydENvbnRyb2xsZXI/LmFib3J0KCk7XG4gICAgdGhpcy5fYWJvcnRDb250cm9sbGVyID0gbmV3IEFib3J0Q29udHJvbGxlcigpO1xuXG4gICAgLy8gV2UgbmVlZCB0byB1c2UgY2FwdHVyZSBoZXJlIHRvIHJlYWN0IHRvIGFsbCBzY3JvbGwgZXZlbnRzLlxuICAgIC8vIElmIGNhcHR1cmUgd2FzIG5vdCB1c2VkLCB0aGVuIHNjcm9sbCBldmVudHMgaW5zaWRlIHNlcGFyYXRlIHNjcm9sbFxuICAgIC8vIGNvbnRhaW5lcnMgd291bGQgbm90IGJlIGNhdWdodC5cbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCAoKSA9PiB0aGlzLl9yZXF1ZXN0Q2FsY3VsYXRlUG9zaXRpb24oKSwge1xuICAgICAgY2FwdHVyZTogdHJ1ZSxcbiAgICAgIHBhc3NpdmU6IHRydWUsXG4gICAgICBzaWduYWw6IHRoaXMuX2Fib3J0Q29udHJvbGxlci5zaWduYWwsXG4gICAgfSk7XG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsICgpID0+IHRoaXMuX3JlcXVlc3RDYWxjdWxhdGVQb3NpdGlvbigpLCB7XG4gICAgICBwYXNzaXZlOiB0cnVlLFxuICAgICAgc2lnbmFsOiB0aGlzLl9hYm9ydENvbnRyb2xsZXIuc2lnbmFsLFxuICAgIH0pO1xuICAgIHRoaXMuX3Jlc2l6ZU9ic2VydmVyLm9ic2VydmUoYW5jaG9yLCB7IGJveDogJ2JvcmRlci1ib3gnIH0pO1xuICAgIHRoaXMuX3Jlc2l6ZU9ic2VydmVyLm9ic2VydmUodGhpcy5fb3ZlcmxheSwgeyBib3g6ICdib3JkZXItYm94JyB9KTtcbiAgfVxuXG4gIHB1YmxpYyBkaXNjb25uZWN0KCk6IHZvaWQge1xuICAgIHRoaXMuX2FuY2hvcj8uc3R5bGUucmVtb3ZlUHJvcGVydHkoJ2FuY2hvci1uYW1lJyk7XG4gICAgdGhpcy5fYW5jaG9yID0gdW5kZWZpbmVkO1xuICAgIHRoaXMuX2Fib3J0Q29udHJvbGxlcj8uYWJvcnQoKTtcbiAgICB0aGlzLl9yZXNpemVPYnNlcnZlci5kaXNjb25uZWN0KCk7XG4gIH1cblxuICBwcml2YXRlIF9yZXF1ZXN0Q2FsY3VsYXRlUG9zaXRpb24oKTogdm9pZCB7XG4gICAgdGhpcy5fZnJhbWUgPz89IHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICB0aGlzLl9jYWxjdWxhdGVQb3NpdGlvbigpO1xuICAgICAgdGhpcy5fZnJhbWUgPSB1bmRlZmluZWQ7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF9jYWxjdWxhdGVQb3NpdGlvbigpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuX2FuY2hvcikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLl91c2VQb2x5ZmlsbCkge1xuICAgICAgY29uc3QgcG9zaXRpb24gPSB0aGlzLl9nZXRPcHRpbWFsUG9zaXRpb24odGhpcy5fcG9zaXRpb25zKTtcbiAgICAgIHRoaXMuX2FwcGx5T3ZlcmxheVBvc2l0aW9uKHBvc2l0aW9uLnBvc2l0aW9uLCBwb3NpdGlvbi5sZWZ0LCBwb3NpdGlvbi50b3ApO1xuICAgIH1cblxuICAgIHRoaXMuX292ZXJsYXkuc2V0QXR0cmlidXRlKCdkYXRhLXBvc2l0aW9uJywgdGhpcy5jdXJyZW50UG9zaXRpb24pO1xuICB9XG5cbiAgLyoqXG4gICAqIENhbGN1bGF0ZXMgdGhlIG9wdGltYWwgcG9zaXRpb24gdGhhdCBmaXRzIHRoZSBvdmVybGF5LlxuICAgKiBAcGFyYW0gcG9zaXRpb25zIFRoZSBsaXN0IG9mIHBvc2l0aW9ucyB0byBjaGVjay5cbiAgICogQHByaXZhdGVcbiAgICovXG4gIHByaXZhdGUgX2dldE9wdGltYWxQb3NpdGlvbihwb3NpdGlvbnM6IHN0cmluZ1tdKToge1xuICAgIGxlZnQ6IG51bWJlcjtcbiAgICB0b3A6IG51bWJlcjtcbiAgICBwb3NpdGlvbjogc3RyaW5nO1xuICAgIGZpdHM/OiBib29sZWFuO1xuICB9IHtcbiAgICBjb25zdCB7IG9mZnNldEhlaWdodDogb3ZlcmxheUhlaWdodCwgb2Zmc2V0V2lkdGg6IG92ZXJsYXlXaWR0aCB9ID0gdGhpcy5fb3ZlcmxheTtcbiAgICBjb25zdCB7IGlubmVySGVpZ2h0OiB2aWV3cG9ydEhlaWdodCwgaW5uZXJXaWR0aDogdmlld3BvcnRXaWR0aCB9ID0gd2luZG93O1xuICAgIGNvbnN0IHtcbiAgICAgIHRvcDogdHJpZ2dlck9mZnNldFRvcCxcbiAgICAgIGxlZnQ6IHRyaWdnZXJPZmZzZXRMZWZ0LFxuICAgICAgaGVpZ2h0OiB0cmlnZ2VySGVpZ2h0LFxuICAgICAgd2lkdGg6IHRyaWdnZXJXaWR0aCxcbiAgICB9ID0gdGhpcy5fYW5jaG9yIS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcblxuICAgIGNvbnN0IGlzUnRsID0gdGhpcy5fb3ZlcmxheS5tYXRjaGVzKCc6ZGlyKHJ0bCknKTtcbiAgICBjb25zdCB0b3BTcGFjZSA9IHRyaWdnZXJPZmZzZXRUb3A7XG4gICAgY29uc3QgYm90dG9tU3BhY2UgPSB2aWV3cG9ydEhlaWdodCAtIHRyaWdnZXJIZWlnaHQgLSB0cmlnZ2VyT2Zmc2V0VG9wO1xuICAgIGNvbnN0IGxlZnRTcGFjZSA9IHRyaWdnZXJPZmZzZXRMZWZ0O1xuICAgIGNvbnN0IHJpZ2h0U3BhY2UgPSB2aWV3cG9ydFdpZHRoIC0gdHJpZ2dlcldpZHRoIC0gdHJpZ2dlck9mZnNldExlZnQ7XG5cbiAgICAvLyBUaGUgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoZSBvdmVybGF5IGFuZCB0aGUgdHJpZ2dlciB3aWR0aC9oZWlnaHQuXG4gICAgY29uc3Qgb3ZlcmxheVdpZHRoTmV0ID0gb3ZlcmxheVdpZHRoIC0gdHJpZ2dlcldpZHRoO1xuICAgIGNvbnN0IG92ZXJsYXlIZWlnaHROZXQgPSBvdmVybGF5SGVpZ2h0IC0gdHJpZ2dlckhlaWdodDtcblxuICAgIC8vIFRoZSBhbW91bnQgdGhhdCB3b3VsZCBleGNlZWQgdGhlIHRyaWdnZXIgaWYgdGhlIG92ZXJsYXkgd2VyZSBjZW50ZXJlZCBvbiBpdC5cbiAgICBjb25zdCBvdmVybGF5V2lkdGhPdmVybGFwID0gb3ZlcmxheVdpZHRoTmV0IC8gMjtcbiAgICBjb25zdCBvdmVybGF5SGVpZ2h0T3ZlcmxhcCA9IG92ZXJsYXlIZWlnaHROZXQgLyAyO1xuXG4gICAgdGhpcy5fb3ZlcmxheS5zdHlsZS5zZXRQcm9wZXJ0eShcbiAgICAgICctLXNiYi1vdmVybGF5LWNvbnRyb2xsZXItdHJpZ2dlci1oZWlnaHQnLFxuICAgICAgYCR7dHJpZ2dlckhlaWdodH1weGAsXG4gICAgKTtcbiAgICB0aGlzLl9vdmVybGF5LnN0eWxlLnNldFByb3BlcnR5KCctLXNiYi1vdmVybGF5LWNvbnRyb2xsZXItdHJpZ2dlci13aWR0aCcsIGAke3RyaWdnZXJXaWR0aH1weGApO1xuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVzZWxlc3MtYXNzaWdubWVudFxuICAgIGxldCByZXN1bHQ6IFJldHVyblR5cGU8dHlwZW9mIHRoaXMuX2dldE9wdGltYWxQb3NpdGlvbj4gPSB7IGxlZnQ6IDAsIHRvcDogMCwgcG9zaXRpb246ICcnIH07XG4gICAgbGV0IGZpcnN0UG9zaXRpb246IFJldHVyblR5cGU8dHlwZW9mIHRoaXMuX2dldE9wdGltYWxQb3NpdGlvbj4gfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG4gICAgZm9yIChjb25zdCBwb3NpdGlvbiBvZiBwb3NpdGlvbnMpIHtcbiAgICAgIC8vIElmIHJ0bCBpcyBlbmFibGVkLCB3ZSBtYXAgdGhlIGxvZ2ljYWwgcG9zaXRpb24gdG8gdGhlaXIgUlRMIGVxdWl2YWxlbnQuIChlLmcuICdpbmxpbmUtc3RhcnQnIC0+ICdpbmxpbmUtZW5kJylcbiAgICAgIGNvbnN0IHBoeXNpY2FsUG9zaXRpb24gPVxuICAgICAgICBpc1J0bCAmJiBsb2dpY2FsU3VwcG9ydGVkUG9zaXRpb25zLmluY2x1ZGVzKHBvc2l0aW9uKVxuICAgICAgICAgID8gcnRsUG9zaXRpb25NYXBwaW5nW3Bvc2l0aW9uXVxuICAgICAgICAgIDogcG9zaXRpb247XG5cbiAgICAgIHN3aXRjaCAocGh5c2ljYWxQb3NpdGlvbikge1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICBjYXNlICdib3R0b20nOlxuICAgICAgICBjYXNlICdibG9jay1lbmQnOlxuICAgICAgICAgIHJlc3VsdCA9IHtcbiAgICAgICAgICAgIHBvc2l0aW9uLFxuICAgICAgICAgICAgbGVmdDogdHJpZ2dlck9mZnNldExlZnQgLSBvdmVybGF5V2lkdGhPdmVybGFwLFxuICAgICAgICAgICAgdG9wOiB0cmlnZ2VyT2Zmc2V0VG9wICsgdHJpZ2dlckhlaWdodCxcbiAgICAgICAgICAgIGZpdHM6XG4gICAgICAgICAgICAgIG92ZXJsYXlIZWlnaHQgPD0gYm90dG9tU3BhY2UgJiZcbiAgICAgICAgICAgICAgb3ZlcmxheVdpZHRoT3ZlcmxhcCA8PSBsZWZ0U3BhY2UgJiZcbiAgICAgICAgICAgICAgb3ZlcmxheVdpZHRoT3ZlcmxhcCA8PSByaWdodFNwYWNlLFxuICAgICAgICAgIH07XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ3RvcCc6XG4gICAgICAgIGNhc2UgJ2Jsb2NrLXN0YXJ0JzpcbiAgICAgICAgICByZXN1bHQgPSB7XG4gICAgICAgICAgICBwb3NpdGlvbixcbiAgICAgICAgICAgIGxlZnQ6IHRyaWdnZXJPZmZzZXRMZWZ0IC0gb3ZlcmxheVdpZHRoT3ZlcmxhcCxcbiAgICAgICAgICAgIHRvcDogdHJpZ2dlck9mZnNldFRvcCAtIG92ZXJsYXlIZWlnaHQsXG4gICAgICAgICAgICBmaXRzOlxuICAgICAgICAgICAgICBvdmVybGF5SGVpZ2h0IDw9IHRvcFNwYWNlICYmXG4gICAgICAgICAgICAgIG92ZXJsYXlXaWR0aE92ZXJsYXAgPD0gbGVmdFNwYWNlICYmXG4gICAgICAgICAgICAgIG92ZXJsYXlXaWR0aE92ZXJsYXAgPD0gcmlnaHRTcGFjZSxcbiAgICAgICAgICB9O1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdyaWdodCc6XG4gICAgICAgIGNhc2UgJ2lubGluZS1lbmQnOlxuICAgICAgICAgIHJlc3VsdCA9IHtcbiAgICAgICAgICAgIHBvc2l0aW9uLFxuICAgICAgICAgICAgbGVmdDogdHJpZ2dlck9mZnNldExlZnQgKyB0cmlnZ2VyV2lkdGgsXG4gICAgICAgICAgICB0b3A6IHRyaWdnZXJPZmZzZXRUb3AgLSBvdmVybGF5SGVpZ2h0T3ZlcmxhcCxcbiAgICAgICAgICAgIGZpdHM6XG4gICAgICAgICAgICAgIG92ZXJsYXlXaWR0aCA8PSByaWdodFNwYWNlICYmXG4gICAgICAgICAgICAgIG92ZXJsYXlIZWlnaHRPdmVybGFwIDw9IHRvcFNwYWNlICYmXG4gICAgICAgICAgICAgIG92ZXJsYXlIZWlnaHRPdmVybGFwIDw9IGJvdHRvbVNwYWNlLFxuICAgICAgICAgIH07XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2xlZnQnOlxuICAgICAgICBjYXNlICdpbmxpbmUtc3RhcnQnOlxuICAgICAgICAgIHJlc3VsdCA9IHtcbiAgICAgICAgICAgIHBvc2l0aW9uLFxuICAgICAgICAgICAgbGVmdDogdHJpZ2dlck9mZnNldExlZnQgLSBvdmVybGF5V2lkdGgsXG4gICAgICAgICAgICB0b3A6IHRyaWdnZXJPZmZzZXRUb3AgLSBvdmVybGF5SGVpZ2h0T3ZlcmxhcCxcbiAgICAgICAgICAgIGZpdHM6XG4gICAgICAgICAgICAgIG92ZXJsYXlXaWR0aCA8PSBsZWZ0U3BhY2UgJiZcbiAgICAgICAgICAgICAgb3ZlcmxheUhlaWdodE92ZXJsYXAgPD0gdG9wU3BhY2UgJiZcbiAgICAgICAgICAgICAgb3ZlcmxheUhlaWdodE92ZXJsYXAgPD0gYm90dG9tU3BhY2UsXG4gICAgICAgICAgfTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAndG9wIHNwYW4tbGVmdCc6XG4gICAgICAgIGNhc2UgJ2Jsb2NrLXN0YXJ0IHNwYW4taW5saW5lLXN0YXJ0JzpcbiAgICAgICAgICByZXN1bHQgPSB7XG4gICAgICAgICAgICBwb3NpdGlvbixcbiAgICAgICAgICAgIGxlZnQ6IHRyaWdnZXJPZmZzZXRMZWZ0IC0gb3ZlcmxheVdpZHRoTmV0LFxuICAgICAgICAgICAgdG9wOiB0cmlnZ2VyT2Zmc2V0VG9wIC0gb3ZlcmxheUhlaWdodCxcbiAgICAgICAgICAgIGZpdHM6IG92ZXJsYXlIZWlnaHQgPD0gdG9wU3BhY2UgJiYgb3ZlcmxheVdpZHRoTmV0IDw9IGxlZnRTcGFjZSxcbiAgICAgICAgICB9O1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICd0b3Agc3Bhbi1yaWdodCc6XG4gICAgICAgIGNhc2UgJ2Jsb2NrLXN0YXJ0IHNwYW4taW5saW5lLWVuZCc6XG4gICAgICAgICAgcmVzdWx0ID0ge1xuICAgICAgICAgICAgcG9zaXRpb24sXG4gICAgICAgICAgICBsZWZ0OiB0cmlnZ2VyT2Zmc2V0TGVmdCxcbiAgICAgICAgICAgIHRvcDogdHJpZ2dlck9mZnNldFRvcCAtIG92ZXJsYXlIZWlnaHQsXG4gICAgICAgICAgICBmaXRzOiBvdmVybGF5SGVpZ2h0IDw9IHRvcFNwYWNlICYmIG92ZXJsYXlXaWR0aE5ldCA8PSByaWdodFNwYWNlLFxuICAgICAgICAgIH07XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2JvdHRvbSBzcGFuLWxlZnQnOlxuICAgICAgICBjYXNlICdibG9jay1lbmQgc3Bhbi1pbmxpbmUtc3RhcnQnOlxuICAgICAgICAgIHJlc3VsdCA9IHtcbiAgICAgICAgICAgIHBvc2l0aW9uLFxuICAgICAgICAgICAgbGVmdDogdHJpZ2dlck9mZnNldExlZnQgLSBvdmVybGF5V2lkdGhOZXQsXG4gICAgICAgICAgICB0b3A6IHRyaWdnZXJPZmZzZXRUb3AgKyB0cmlnZ2VySGVpZ2h0LFxuICAgICAgICAgICAgZml0czogb3ZlcmxheUhlaWdodCA8PSBib3R0b21TcGFjZSAmJiBvdmVybGF5V2lkdGhOZXQgPD0gbGVmdFNwYWNlLFxuICAgICAgICAgIH07XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2JvdHRvbSBzcGFuLXJpZ2h0JzpcbiAgICAgICAgY2FzZSAnYmxvY2stZW5kIHNwYW4taW5saW5lLWVuZCc6XG4gICAgICAgICAgcmVzdWx0ID0ge1xuICAgICAgICAgICAgcG9zaXRpb24sXG4gICAgICAgICAgICBsZWZ0OiB0cmlnZ2VyT2Zmc2V0TGVmdCxcbiAgICAgICAgICAgIHRvcDogdHJpZ2dlck9mZnNldFRvcCArIHRyaWdnZXJIZWlnaHQsXG4gICAgICAgICAgICBmaXRzOiBvdmVybGF5SGVpZ2h0IDw9IGJvdHRvbVNwYWNlICYmIG92ZXJsYXlXaWR0aE5ldCA8PSByaWdodFNwYWNlLFxuICAgICAgICAgIH07XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2xlZnQgc3Bhbi10b3AnOlxuICAgICAgICBjYXNlICdpbmxpbmUtc3RhcnQgc3Bhbi1ibG9jay1zdGFydCc6XG4gICAgICAgICAgcmVzdWx0ID0ge1xuICAgICAgICAgICAgcG9zaXRpb24sXG4gICAgICAgICAgICBsZWZ0OiB0cmlnZ2VyT2Zmc2V0TGVmdCAtIG92ZXJsYXlXaWR0aCxcbiAgICAgICAgICAgIHRvcDogdHJpZ2dlck9mZnNldFRvcCArIHRyaWdnZXJIZWlnaHQgLSBvdmVybGF5SGVpZ2h0LFxuICAgICAgICAgICAgZml0czogb3ZlcmxheVdpZHRoIDw9IGxlZnRTcGFjZSAmJiBvdmVybGF5SGVpZ2h0TmV0IDw9IHRvcFNwYWNlLFxuICAgICAgICAgIH07XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2xlZnQgc3Bhbi1ib3R0b20nOlxuICAgICAgICBjYXNlICdpbmxpbmUtc3RhcnQgc3Bhbi1ibG9jay1lbmQnOlxuICAgICAgICAgIHJlc3VsdCA9IHtcbiAgICAgICAgICAgIHBvc2l0aW9uLFxuICAgICAgICAgICAgbGVmdDogdHJpZ2dlck9mZnNldExlZnQgLSBvdmVybGF5V2lkdGgsXG4gICAgICAgICAgICB0b3A6IHRyaWdnZXJPZmZzZXRUb3AsXG4gICAgICAgICAgICBmaXRzOiBvdmVybGF5V2lkdGggPD0gbGVmdFNwYWNlICYmIG92ZXJsYXlIZWlnaHROZXQgPD0gYm90dG9tU3BhY2UsXG4gICAgICAgICAgfTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAncmlnaHQgc3Bhbi10b3AnOlxuICAgICAgICBjYXNlICdpbmxpbmUtZW5kIHNwYW4tYmxvY2stc3RhcnQnOlxuICAgICAgICAgIHJlc3VsdCA9IHtcbiAgICAgICAgICAgIHBvc2l0aW9uLFxuICAgICAgICAgICAgbGVmdDogdHJpZ2dlck9mZnNldExlZnQgKyB0cmlnZ2VyV2lkdGgsXG4gICAgICAgICAgICB0b3A6IHRyaWdnZXJPZmZzZXRUb3AgKyB0cmlnZ2VySGVpZ2h0IC0gb3ZlcmxheUhlaWdodCxcbiAgICAgICAgICAgIGZpdHM6IG92ZXJsYXlXaWR0aCA8PSByaWdodFNwYWNlICYmIG92ZXJsYXlIZWlnaHROZXQgPD0gdG9wU3BhY2UsXG4gICAgICAgICAgfTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAncmlnaHQgc3Bhbi1ib3R0b20nOlxuICAgICAgICBjYXNlICdpbmxpbmUtZW5kIHNwYW4tYmxvY2stZW5kJzpcbiAgICAgICAgICByZXN1bHQgPSB7XG4gICAgICAgICAgICBwb3NpdGlvbixcbiAgICAgICAgICAgIGxlZnQ6IHRyaWdnZXJPZmZzZXRMZWZ0ICsgdHJpZ2dlcldpZHRoLFxuICAgICAgICAgICAgdG9wOiB0cmlnZ2VyT2Zmc2V0VG9wLFxuICAgICAgICAgICAgZml0czogb3ZlcmxheVdpZHRoIDw9IHJpZ2h0U3BhY2UgJiYgb3ZlcmxheUhlaWdodE5ldCA8PSBib3R0b21TcGFjZSxcbiAgICAgICAgICB9O1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgaWYgKHJlc3VsdC5maXRzKSB7XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICB9XG4gICAgICBmaXJzdFBvc2l0aW9uID8/PSByZXN1bHQ7XG4gICAgfVxuXG4gICAgLy8gSWYgbm8gcG9zaXRpb24gZml0cywgd2UgcmV0dXJuIHRoZSBmaXJzdCBvbmUuXG4gICAgcmV0dXJuIGZpcnN0UG9zaXRpb24hO1xuICB9XG5cbiAgcHJpdmF0ZSBfYXBwbHlPdmVybGF5UG9zaXRpb24ocG9zaXRpb246IHN0cmluZywgbGVmdDogbnVtYmVyLCB0b3A6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMuX2xhc3RQb3NpdGlvbiA9IHBvc2l0aW9uO1xuICAgIHRoaXMuX292ZXJsYXkuc3R5bGUubGVmdCA9IGAke2xlZnR9cHhgO1xuICAgIHRoaXMuX292ZXJsYXkuc3R5bGUudG9wID0gYCR7dG9wfXB4YDtcbiAgfVxuXG4gIC8qKlxuICAgKiBPbmx5IHVzZWQgaW4gcG9seWZpbGwgbW9kZS5cbiAgICogUmVhZHMgdGhlIGxpc3Qgb2YgdGhlIGNvbmZpZ3VyZWQgcG9zaXRpb25zIGZyb20gdGhlIENTUyB2YXJpYWJsZXMuXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBwcml2YXRlIF9yZWFkUG9zaXRpb25zRnJvbUNzcygpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuX3VzZVBvbHlmaWxsKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuX292ZXJsYXlTdHlsZXMgPz89IGdldENvbXB1dGVkU3R5bGUodGhpcy5fb3ZlcmxheSk7XG4gICAgY29uc3QgcG9zaXRpb25zID0gW1xuICAgICAgdGhpcy5fb3ZlcmxheVN0eWxlcy5nZXRQcm9wZXJ0eVZhbHVlKCctLXNiYi1vdmVybGF5LXBvc2l0aW9uLWFyZWEnKSB8fCAnYmxvY2stZW5kJyxcbiAgICAgIC4uLnRoaXMuX292ZXJsYXlTdHlsZXNcbiAgICAgICAgLmdldFByb3BlcnR5VmFsdWUoJy0tc2JiLW92ZXJsYXktcG9zaXRpb24tdHJ5LWZhbGxiYWNrcycpXG4gICAgICAgIC5zcGxpdCgnLCcpXG4gICAgICAgIC5tYXAoKGYpID0+IGYudHJpbSgpKVxuICAgICAgICAuZmlsdGVyKChmKSA9PiAhIWYpLFxuICAgIF07XG5cbiAgICBpZiAoaW1wb3J0Lm1ldGEuZW52LkRFViAmJiBwb3NpdGlvbnMuc29tZSgocCkgPT4gIXN1cHBvcnRlZFBvc2l0aW9ucy5pbmNsdWRlcyhwKSkpIHtcbiAgICAgIGNvbnN0IHVuc3VwcG9ydGVkUG9zaXRpb25zID0gcG9zaXRpb25zXG4gICAgICAgIC5maWx0ZXIoKHApID0+ICFzdXBwb3J0ZWRQb3NpdGlvbnMuaW5jbHVkZXMocCkpXG4gICAgICAgIC5zb3J0KClcbiAgICAgICAgLmpvaW4oJywgJyk7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBVbnN1cHBvcnRlZCBwb3NpdGlvbi10cnktZmFsbGJhY2tzICR7dW5zdXBwb3J0ZWRQb3NpdGlvbnN9IChTdXBwb3J0ZWQ6ICR7c3VwcG9ydGVkUG9zaXRpb25zLmpvaW4oJywgJyl9KWAsXG4gICAgICApO1xuICAgIH1cblxuICAgIHRoaXMuX3Bvc2l0aW9ucyA9IHBvc2l0aW9ucztcbiAgICBpZiAodGhpcy5fbGFzdFBvc2l0aW9uICYmICF0aGlzLl9wb3NpdGlvbnMuaW5jbHVkZXModGhpcy5fbGFzdFBvc2l0aW9uKSkge1xuICAgICAgdGhpcy5fbGFzdFBvc2l0aW9uID0gdW5kZWZpbmVkO1xuICAgIH1cbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOztBQUlBLElBQU0sNkJBQTZCLENBQUMsWUFBWSxJQUFJLFNBQVMsZUFBZSxRQUFRO0FBRXBGLElBQU0sNkJBQTZCO0NBQ2pDO0NBQ0E7Q0FDQTtDQUNBO0NBQ0E7Q0FDQTtDQUNBO0NBQ0E7Q0FDQTtDQUNBO0NBQ0E7Q0FDQTs7QUFJRixJQUFNLDRCQUE0QjtDQUNoQztDQUNBO0NBQ0E7Q0FDQTtDQUNBO0NBQ0E7Q0FDQTtDQUNBO0NBQ0E7Q0FDQTtDQUNBO0NBQ0E7O0FBR0YsSUFBTSxxQkFBZ0Q7Q0FDcEQsZUFBZTtDQUNmLGFBQWE7Q0FDYixnQkFBZ0I7Q0FDaEIsY0FBYztDQUNkLGlDQUFpQztDQUNqQywrQkFBK0I7Q0FDL0IsK0JBQStCO0NBQy9CLDZCQUE2QjtDQUM3QixpQ0FBaUM7Q0FDakMsK0JBQStCO0NBQy9CLCtCQUErQjtDQUMvQiw2QkFBNkI7O0FBR0osQ0FBQyxHQUFHLDRCQUE0QixHQUFHLHlCQUF5QjtBQUN2RixJQUFJLFNBQVM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBcUJiLElBQWEsK0JBQWIsTUFBeUM7O0NBY3ZDLElBQVcsa0JBQWU7RUFDeEIsSUFBSSxLQUFLLGNBQ1AsT0FBTyxLQUFLLGlCQUFpQixLQUFLLFdBQVcsTUFBTTtPQUM5QztHQUNMLEtBQUssbUJBQW1CLGlCQUFpQixLQUFLLFFBQVE7R0FDdEQsT0FBTyxLQUFLLGVBQWUsaUJBQWlCLGVBQWU7RUFDN0Q7Q0FD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
@@ -93,4 +93,4 @@ var SbbPropertyWatcherController = class {
93
93
  //#endregion
94
94
  export { SbbPropertyWatcherController };
95
95
 
96
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktd2F0Y2hlci1jb250cm9sbGVyLmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb3JlL2NvbnRyb2xsZXJzL3Byb3BlcnR5LXdhdGNoZXItY29udHJvbGxlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICB0eXBlIFJlYWN0aXZlQ29udHJvbGxlckhvc3QsXG4gIHR5cGUgTGl0RWxlbWVudCxcbiAgdHlwZSBSZWFjdGl2ZUNvbnRyb2xsZXIsXG4gIGlzU2VydmVyLFxufSBmcm9tICdsaXQnO1xuXG50eXBlIFByb3BlcnR5V2F0Y2hlckhhbmRsZXI8VCBleHRlbmRzIExpdEVsZW1lbnQ+ID0gKHJlZmVyZW5jZTogVCkgPT4gdm9pZDtcblxuY2xhc3MgUHJvcGVydHlXYXRjaGVyPFQgZXh0ZW5kcyBMaXRFbGVtZW50PiBpbXBsZW1lbnRzIFJlYWN0aXZlQ29udHJvbGxlciB7XG4gIHByaXZhdGUgX3ZhbHVlOiB1bmtub3duO1xuICBwcml2YXRlIF9oYW5kbGVycyA9IG5ldyBTZXQ8UHJvcGVydHlXYXRjaGVySGFuZGxlcjxUPj4oKTtcbiAgcHJpdmF0ZSBfaG9zdERlZmluZWRQcm9taXNlOiBQcm9taXNlPHZvaWQ+IHwgbnVsbCA9IG51bGw7XG5cbiAgcHVibGljIGdldCBzaXplKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX2hhbmRsZXJzLnNpemU7XG4gIH1cblxuICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBfaG9zdDogVCxcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9wcm9wZXJ0eTogc3RyaW5nLFxuICApIHtcbiAgICBpZiAoIWlzU2VydmVyKSB7XG4gICAgICBpZiAoY3VzdG9tRWxlbWVudHMuZ2V0KHRoaXMuX2hvc3QubG9jYWxOYW1lKSkge1xuICAgICAgICBjdXN0b21FbGVtZW50cy51cGdyYWRlKHRoaXMuX2hvc3QpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gVGhlIGhvc3QgZWxlbWVudCBpcyBub3QgeWV0IGRlZmluZWQsIHdhaXQgZm9yIGl0cyBkZWZpbml0aW9uIGJlZm9yZSB1cGdyYWRpbmdcbiAgICAgICAgdGhpcy5faG9zdERlZmluZWRQcm9taXNlID0gY3VzdG9tRWxlbWVudHMud2hlbkRlZmluZWQodGhpcy5faG9zdC5sb2NhbE5hbWUpLnRoZW4oKCkgPT4ge1xuICAgICAgICAgIGN1c3RvbUVsZW1lbnRzLnVwZ3JhZGUodGhpcy5faG9zdCk7XG4gICAgICAgICAgdGhpcy5faG9zdERlZmluZWRQcm9taXNlID0gbnVsbDtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuX3ZhbHVlID0gKHRoaXMuX2hvc3QgYXMgdW5rbm93biBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPilbdGhpcy5fcHJvcGVydHldO1xuICB9XG5cbiAgcHVibGljIGFkZEhhbmRsZXIoaGFuZGxlcjogUHJvcGVydHlXYXRjaGVySGFuZGxlcjxUPik6IHZvaWQge1xuICAgIGlmICghdGhpcy5faGFuZGxlcnMuc2l6ZSkge1xuICAgICAgLy8gV2UgY2hlY2sgaWYgdGhlIGFkZENvbnRyb2xsZXIgbWV0aG9kIGlzIGF2YWlsYWJsZSAoZWxlbWVudCB3YXMgZGVmaW5lZCAmJiB1cGdyYWRlZCksIG90aGVyd2lzZSB3ZSB3YWl0IGZvciB0aGUgaG9zdCB0byBiZSBkZWZpbmVkXG4gICAgICBpZiAodGhpcy5faG9zdC5hZGRDb250cm9sbGVyKSB7XG4gICAgICAgIHRoaXMuX2hvc3QuYWRkQ29udHJvbGxlcih0aGlzKTtcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5faG9zdERlZmluZWRQcm9taXNlKSB7XG4gICAgICAgIHRoaXMuX2hvc3REZWZpbmVkUHJvbWlzZS50aGVuKCgpID0+IHRoaXMuX2hvc3QuYWRkQ29udHJvbGxlcih0aGlzKSk7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuX2hhbmRsZXJzLmFkZChoYW5kbGVyKTtcblxuICAgIGlmICghdGhpcy5faG9zdERlZmluZWRQcm9taXNlKSB7XG4gICAgICBoYW5kbGVyKHRoaXMuX2hvc3QpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9ob3N0RGVmaW5lZFByb21pc2UudGhlbigoKSA9PiBoYW5kbGVyKHRoaXMuX2hvc3QpKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgcmVtb3ZlSGFuZGxlcihoYW5kbGVyOiBQcm9wZXJ0eVdhdGNoZXJIYW5kbGVyPFQ+KTogdm9pZCB7XG4gICAgdGhpcy5faGFuZGxlcnMuZGVsZXRlKGhhbmRsZXIpO1xuICAgIGlmICghdGhpcy5faGFuZGxlcnMuc2l6ZSkge1xuICAgICAgLy8gV2UgY2hlY2sgaWYgdGhlIHJlbW92ZUNvbnRyb2xsZXIgbWV0aG9kIGlzIGF2YWlsYWJsZSAoZWxlbWVudCB3YXMgZGVmaW5lZCAmJiB1cGdyYWRlZCksIG90aGVyd2lzZSB3ZSB3YWl0IGZvciB0aGUgaG9zdCB0byBiZSBkZWZpbmVkXG4gICAgICBpZiAodGhpcy5faG9zdC5yZW1vdmVDb250cm9sbGVyKSB7XG4gICAgICAgIHRoaXMuX2hvc3QucmVtb3ZlQ29udHJvbGxlcih0aGlzKTtcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5faG9zdERlZmluZWRQcm9taXNlKSB7XG4gICAgICAgIHRoaXMuX2hvc3REZWZpbmVkUHJvbWlzZS50aGVuKCgpID0+IHRoaXMuX2hvc3QucmVtb3ZlQ29udHJvbGxlcih0aGlzKSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGhvc3RVcGRhdGUoKTogdm9pZCB7XG4gICAgY29uc3QgY3VycmVudFZhbHVlID0gKHRoaXMuX2hvc3QgYXMgdW5rbm93biBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPilbdGhpcy5fcHJvcGVydHldO1xuICAgIGlmICh0aGlzLl92YWx1ZSAhPT0gY3VycmVudFZhbHVlKSB7XG4gICAgICB0aGlzLl92YWx1ZSA9IGN1cnJlbnRWYWx1ZTtcbiAgICAgIGZvciAoY29uc3QgaGFuZGxlciBvZiB0aGlzLl9oYW5kbGVycykge1xuICAgICAgICBoYW5kbGVyKHRoaXMuX2hvc3QpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5jb25zdCBwcm9wZXJ0eVdhdGNoZXJzID0gbmV3IFdlYWtNYXA8TGl0RWxlbWVudCwgTWFwPHN0cmluZywgUHJvcGVydHlXYXRjaGVyPGFueT4+PigpO1xuXG5leHBvcnQgY2xhc3MgU2JiUHJvcGVydHlXYXRjaGVyQ29udHJvbGxlcjxUIGV4dGVuZHMgTGl0RWxlbWVudD4gaW1wbGVtZW50cyBSZWFjdGl2ZUNvbnRyb2xsZXIge1xuICBwcml2YXRlIF9yZWZlcmVuY2U/OiBUIHwgbnVsbDtcbiAgcHJpdmF0ZSBfd2F0Y2hlcnM/OiBNYXA8c3RyaW5nLCBQcm9wZXJ0eVdhdGNoZXI8VD4+O1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9ob3N0OiBSZWFjdGl2ZUNvbnRyb2xsZXJIb3N0ICYgSFRNTEVsZW1lbnQsXG4gICAgcHJpdmF0ZSByZWFkb25seSBfcmVmZXJlbmNlUmVzb2x2ZXI6ICgpID0+IFQgfCBudWxsLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgX2hhbmRsZXJzOiBQYXJ0aWFsPFJlY29yZDxrZXlvZiBULCBQcm9wZXJ0eVdhdGNoZXJIYW5kbGVyPFQ+Pj4sXG4gICkge1xuICAgIHRoaXMuX2hvc3QuYWRkQ29udHJvbGxlcih0aGlzKTtcbiAgfVxuXG4gIHB1YmxpYyBob3N0Q29ubmVjdGVkKCk6IHZvaWQge1xuICAgIHRoaXMuY29ubmVjdCgpO1xuICB9XG5cbiAgcHVibGljIGhvc3REaXNjb25uZWN0ZWQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX3JlZmVyZW5jZSAhPT0gdGhpcy5fcmVmZXJlbmNlUmVzb2x2ZXIoKSkge1xuICAgICAgdGhpcy5kaXNjb25uZWN0KCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGNvbm5lY3QoKTogdm9pZCB7XG4gICAgY29uc3QgcmVmZXJlbmNlID0gdGhpcy5fcmVmZXJlbmNlUmVzb2x2ZXIoKTtcbiAgICBpZiAodGhpcy5fcmVmZXJlbmNlID09PSByZWZlcmVuY2UpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5kaXNjb25uZWN0KCk7XG4gICAgdGhpcy5fcmVmZXJlbmNlID0gcmVmZXJlbmNlO1xuICAgIGlmICghdGhpcy5fcmVmZXJlbmNlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGxldCB3YXRjaGVycyA9IHByb3BlcnR5V2F0Y2hlcnMuZ2V0KHRoaXMuX3JlZmVyZW5jZSkgYXNcbiAgICAgIHwgTWFwPHN0cmluZywgUHJvcGVydHlXYXRjaGVyPFQ+PlxuICAgICAgfCB1bmRlZmluZWQ7XG4gICAgaWYgKCF3YXRjaGVycykge1xuICAgICAgd2F0Y2hlcnMgPSBuZXcgTWFwKCk7XG4gICAgICBwcm9wZXJ0eVdhdGNoZXJzLnNldCh0aGlzLl9yZWZlcmVuY2UsIHdhdGNoZXJzKTtcbiAgICB9XG4gICAgdGhpcy5fd2F0Y2hlcnMgPSB3YXRjaGVycztcblxuICAgIGZvciAoY29uc3QgW3Byb3BlcnR5LCBoYW5kbGVyXSBvZiBPYmplY3QuZW50cmllcyh0aGlzLl9oYW5kbGVycykpIHtcbiAgICAgIGxldCB3YXRjaGVyID0gdGhpcy5fd2F0Y2hlcnMuZ2V0KHByb3BlcnR5KTtcbiAgICAgIGlmICghd2F0Y2hlcikge1xuICAgICAgICB3YXRjaGVyID0gbmV3IFByb3BlcnR5V2F0Y2hlcjxUPih0aGlzLl9yZWZlcmVuY2UsIHByb3BlcnR5KTtcbiAgICAgICAgdGhpcy5fd2F0Y2hlcnMuc2V0KHByb3BlcnR5LCB3YXRjaGVyKTtcbiAgICAgIH1cbiAgICAgIHdhdGNoZXIuYWRkSGFuZGxlcihoYW5kbGVyKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZGlzY29ubmVjdCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuX3JlZmVyZW5jZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGZvciAoY29uc3QgW3Byb3BlcnR5LCBoYW5kbGVyXSBvZiBPYmplY3QuZW50cmllcyh0aGlzLl9oYW5kbGVycykpIHtcbiAgICAgIGNvbnN0IHdhdGNoZXIgPSB0aGlzLl93YXRjaGVycz8uZ2V0KHByb3BlcnR5KTtcbiAgICAgIGlmICh3YXRjaGVyKSB7XG4gICAgICAgIHdhdGNoZXIucmVtb3ZlSGFuZGxlcihoYW5kbGVyKTtcbiAgICAgICAgaWYgKCF3YXRjaGVyLnNpemUpIHtcbiAgICAgICAgICB0aGlzLl93YXRjaGVycyEuZGVsZXRlKHByb3BlcnR5KTtcbiAgICAgICAgICBpZiAoIXRoaXMuX3dhdGNoZXJzIS5zaXplICYmIHRoaXMuX3JlZmVyZW5jZSkge1xuICAgICAgICAgICAgcHJvcGVydHlXYXRjaGVycy5kZWxldGUodGhpcy5fcmVmZXJlbmNlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5fcmVmZXJlbmNlID0gbnVsbDtcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOztBQVNBLElBQU0sa0JBQU4sTUFBcUI7Q0FLbkIsSUFBVyxPQUFJO0VBQ2IsT0FBTyxLQUFLLFVBQVU7O0NBR3hCLFlBQ21CLE9BQ0EsV0FBaUI7RUFEakIsS0FBQSxRQUFBO0VBQ0EsS0FBQSxZQUFBO0VBVFgsS0FBQSw0QkFBWSxJQUFJLEtBQWdDO0VBQ2hELEtBQUEsc0JBQTRDO0VBVWxELElBQUksQ0FBQyxVQUNILElBQUksZUFBZSxJQUFJLEtBQUssTUFBTSxVQUFVLEVBQzFDLGVBQWUsUUFBUSxLQUFLLE1BQU07T0FHbEMsS0FBSyxzQkFBc0IsZUFBZSxZQUFZLEtBQUssTUFBTSxVQUFVLENBQUMsV0FBVTtHQUNwRixlQUFlLFFBQVEsS0FBSyxNQUFNO0dBQ2xDLEtBQUssc0JBQXNCO0lBQzNCO0VBR04sS0FBSyxTQUFVLEtBQUssTUFBNkMsS0FBSzs7Q0FHakUsV0FBVyxTQUFrQztFQUNsRCxJQUFJLENBQUMsS0FBSyxVQUFVO09BRWQsS0FBSyxNQUFNLGVBQ2IsS0FBSyxNQUFNLGNBQWMsS0FBSztRQUN6QixJQUFJLEtBQUsscUJBQ2QsS0FBSyxvQkFBb0IsV0FBVyxLQUFLLE1BQU0sY0FBYyxLQUFLLENBQUM7O0VBR3ZFLEtBQUssVUFBVSxJQUFJLFFBQVE7RUFFM0IsSUFBSSxDQUFDLEtBQUsscUJBQ1IsUUFBUSxLQUFLLE1BQU07T0FFbkIsS0FBSyxvQkFBb0IsV0FBVyxRQUFRLEtBQUssTUFBTSxDQUFDOztDQUlyRCxjQUFjLFNBQWtDO0VBQ3JELEtBQUssVUFBVSxPQUFPLFFBQVE7RUFDOUIsSUFBSSxDQUFDLEtBQUssVUFBVTtPQUVkLEtBQUssTUFBTSxrQkFDYixLQUFLLE1BQU0saUJBQWlCLEtBQUs7UUFDNUIsSUFBSSxLQUFLLHFCQUNkLEtBQUssb0JBQW9CLFdBQVcsS0FBSyxNQUFNLGlCQUFpQixLQUFLLENBQUM7OztDQUtyRSxhQUFVO0VBQ2YsTUFBTSxlQUFnQixLQUFLLE1BQTZDLEtBQUs7RUFDN0UsSUFBSSxLQUFLLFdBQVcsY0FBYztHQUNoQyxLQUFLLFNBQVM7R0FDZCxLQUFLLE1BQU0sV0FBVyxLQUFLLFdBQ3pCLFFBQVEsS0FBSyxNQUFNOzs7O0FBTTNCLElBQU0sbUNBQW1CLElBQUksU0FBd0Q7QUFFckYsSUFBYSwrQkFBYixNQUF5QztDQUl2QyxZQUNtQixPQUNBLG9CQUNBLFdBQThEO0VBRjlELEtBQUEsUUFBQTtFQUNBLEtBQUEscUJBQUE7RUFDQSxLQUFBLFlBQUE7RUFFakIsS0FBSyxNQUFNLGNBQWMsS0FBSzs7Q0FHekIsZ0JBQWE7RUFDbEIsS0FBSyxTQUFTOztDQUdULG1CQUFnQjtFQUNyQixJQUFJLEtBQUssZUFBZSxLQUFLLG9CQUFvQixFQUMvQyxLQUFLLFlBQVk7O0NBSWQsVUFBTztFQUNaLE1BQU0sWUFBWSxLQUFLLG9CQUFvQjtFQUMzQyxJQUFJLEtBQUssZUFBZSxXQUN0QjtFQUVGLEtBQUssWUFBWTtFQUNqQixLQUFLLGFBQWE7RUFDbEIsSUFBSSxDQUFDLEtBQUssWUFDUjtFQUVGLElBQUksV0FBVyxpQkFBaUIsSUFBSSxLQUFLLFdBRTVCO0VBQ2IsSUFBSSxDQUFDLFVBQVU7R0FDYiwyQkFBVyxJQUFJLEtBQUs7R0FDcEIsaUJBQWlCLElBQUksS0FBSyxZQUFZLFNBQVM7O0VBRWpELEtBQUssWUFBWTtFQUVqQixLQUFLLE1BQU0sQ0FBQyxVQUFVLFlBQVksT0FBTyxRQUFRLEtBQUssVUFBVSxFQUFFO0dBQ2hFLElBQUksVUFBVSxLQUFLLFVBQVUsSUFBSSxTQUFTO0dBQzFDLElBQUksQ0FBQyxTQUFTO0lBQ1osVUFBVSxJQUFJLGdCQUFtQixLQUFLLFlBQVksU0FBUztJQUMzRCxLQUFLLFVBQVUsSUFBSSxVQUFVLFFBQVE7O0dBRXZDLFFBQVEsV0FBVyxRQUFROzs7Q0FJeEIsYUFBVTtFQUNmLElBQUksQ0FBQyxLQUFLLFlBQ1I7RUFHRixLQUFLLE1BQU0sQ0FBQyxVQUFVLFlBQVksT0FBTyxRQUFRLEtBQUssVUFBVSxFQUFFO0dBQ2hFLE1BQU0sVUFBVSxLQUFLLFdBQVcsSUFBSSxTQUFTO0dBQzdDLElBQUksU0FBUztJQUNYLFFBQVEsY0FBYyxRQUFRO0lBQzlCLElBQUksQ0FBQyxRQUFRLE1BQU07S0FDakIsS0FBSyxVQUFXLE9BQU8sU0FBUztLQUNoQyxJQUFJLENBQUMsS0FBSyxVQUFXLFFBQVEsS0FBSyxZQUNoQyxpQkFBaUIsT0FBTyxLQUFLLFdBQVc7Ozs7RUFLaEQsS0FBSyxhQUFhIn0=
96
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktd2F0Y2hlci1jb250cm9sbGVyLmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb3JlL2NvbnRyb2xsZXJzL3Byb3BlcnR5LXdhdGNoZXItY29udHJvbGxlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICB0eXBlIFJlYWN0aXZlQ29udHJvbGxlckhvc3QsXG4gIHR5cGUgTGl0RWxlbWVudCxcbiAgdHlwZSBSZWFjdGl2ZUNvbnRyb2xsZXIsXG4gIGlzU2VydmVyLFxufSBmcm9tICdsaXQnO1xuXG50eXBlIFByb3BlcnR5V2F0Y2hlckhhbmRsZXI8VCBleHRlbmRzIExpdEVsZW1lbnQ+ID0gKHJlZmVyZW5jZTogVCkgPT4gdm9pZDtcblxuY2xhc3MgUHJvcGVydHlXYXRjaGVyPFQgZXh0ZW5kcyBMaXRFbGVtZW50PiBpbXBsZW1lbnRzIFJlYWN0aXZlQ29udHJvbGxlciB7XG4gIHByaXZhdGUgX3ZhbHVlOiB1bmtub3duO1xuICBwcml2YXRlIF9oYW5kbGVycyA9IG5ldyBTZXQ8UHJvcGVydHlXYXRjaGVySGFuZGxlcjxUPj4oKTtcbiAgcHJpdmF0ZSBfaG9zdERlZmluZWRQcm9taXNlOiBQcm9taXNlPHZvaWQ+IHwgbnVsbCA9IG51bGw7XG5cbiAgcHVibGljIGdldCBzaXplKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX2hhbmRsZXJzLnNpemU7XG4gIH1cblxuICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBfaG9zdDogVCxcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9wcm9wZXJ0eTogc3RyaW5nLFxuICApIHtcbiAgICBpZiAoIWlzU2VydmVyKSB7XG4gICAgICBpZiAoY3VzdG9tRWxlbWVudHMuZ2V0KHRoaXMuX2hvc3QubG9jYWxOYW1lKSkge1xuICAgICAgICBjdXN0b21FbGVtZW50cy51cGdyYWRlKHRoaXMuX2hvc3QpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gVGhlIGhvc3QgZWxlbWVudCBpcyBub3QgeWV0IGRlZmluZWQsIHdhaXQgZm9yIGl0cyBkZWZpbml0aW9uIGJlZm9yZSB1cGdyYWRpbmdcbiAgICAgICAgdGhpcy5faG9zdERlZmluZWRQcm9taXNlID0gY3VzdG9tRWxlbWVudHMud2hlbkRlZmluZWQodGhpcy5faG9zdC5sb2NhbE5hbWUpLnRoZW4oKCkgPT4ge1xuICAgICAgICAgIGN1c3RvbUVsZW1lbnRzLnVwZ3JhZGUodGhpcy5faG9zdCk7XG4gICAgICAgICAgdGhpcy5faG9zdERlZmluZWRQcm9taXNlID0gbnVsbDtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuX3ZhbHVlID0gKHRoaXMuX2hvc3QgYXMgdW5rbm93biBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPilbdGhpcy5fcHJvcGVydHldO1xuICB9XG5cbiAgcHVibGljIGFkZEhhbmRsZXIoaGFuZGxlcjogUHJvcGVydHlXYXRjaGVySGFuZGxlcjxUPik6IHZvaWQge1xuICAgIGlmICghdGhpcy5faGFuZGxlcnMuc2l6ZSkge1xuICAgICAgLy8gV2UgY2hlY2sgaWYgdGhlIGFkZENvbnRyb2xsZXIgbWV0aG9kIGlzIGF2YWlsYWJsZSAoZWxlbWVudCB3YXMgZGVmaW5lZCAmJiB1cGdyYWRlZCksIG90aGVyd2lzZSB3ZSB3YWl0IGZvciB0aGUgaG9zdCB0byBiZSBkZWZpbmVkXG4gICAgICBpZiAodGhpcy5faG9zdC5hZGRDb250cm9sbGVyKSB7XG4gICAgICAgIHRoaXMuX2hvc3QuYWRkQ29udHJvbGxlcih0aGlzKTtcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5faG9zdERlZmluZWRQcm9taXNlKSB7XG4gICAgICAgIHRoaXMuX2hvc3REZWZpbmVkUHJvbWlzZS50aGVuKCgpID0+IHRoaXMuX2hvc3QuYWRkQ29udHJvbGxlcih0aGlzKSk7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuX2hhbmRsZXJzLmFkZChoYW5kbGVyKTtcblxuICAgIGlmICghdGhpcy5faG9zdERlZmluZWRQcm9taXNlKSB7XG4gICAgICBoYW5kbGVyKHRoaXMuX2hvc3QpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9ob3N0RGVmaW5lZFByb21pc2UudGhlbigoKSA9PiBoYW5kbGVyKHRoaXMuX2hvc3QpKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgcmVtb3ZlSGFuZGxlcihoYW5kbGVyOiBQcm9wZXJ0eVdhdGNoZXJIYW5kbGVyPFQ+KTogdm9pZCB7XG4gICAgdGhpcy5faGFuZGxlcnMuZGVsZXRlKGhhbmRsZXIpO1xuICAgIGlmICghdGhpcy5faGFuZGxlcnMuc2l6ZSkge1xuICAgICAgLy8gV2UgY2hlY2sgaWYgdGhlIHJlbW92ZUNvbnRyb2xsZXIgbWV0aG9kIGlzIGF2YWlsYWJsZSAoZWxlbWVudCB3YXMgZGVmaW5lZCAmJiB1cGdyYWRlZCksIG90aGVyd2lzZSB3ZSB3YWl0IGZvciB0aGUgaG9zdCB0byBiZSBkZWZpbmVkXG4gICAgICBpZiAodGhpcy5faG9zdC5yZW1vdmVDb250cm9sbGVyKSB7XG4gICAgICAgIHRoaXMuX2hvc3QucmVtb3ZlQ29udHJvbGxlcih0aGlzKTtcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5faG9zdERlZmluZWRQcm9taXNlKSB7XG4gICAgICAgIHRoaXMuX2hvc3REZWZpbmVkUHJvbWlzZS50aGVuKCgpID0+IHRoaXMuX2hvc3QucmVtb3ZlQ29udHJvbGxlcih0aGlzKSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGhvc3RVcGRhdGUoKTogdm9pZCB7XG4gICAgY29uc3QgY3VycmVudFZhbHVlID0gKHRoaXMuX2hvc3QgYXMgdW5rbm93biBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPilbdGhpcy5fcHJvcGVydHldO1xuICAgIGlmICh0aGlzLl92YWx1ZSAhPT0gY3VycmVudFZhbHVlKSB7XG4gICAgICB0aGlzLl92YWx1ZSA9IGN1cnJlbnRWYWx1ZTtcbiAgICAgIGZvciAoY29uc3QgaGFuZGxlciBvZiB0aGlzLl9oYW5kbGVycykge1xuICAgICAgICBoYW5kbGVyKHRoaXMuX2hvc3QpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5jb25zdCBwcm9wZXJ0eVdhdGNoZXJzID0gbmV3IFdlYWtNYXA8TGl0RWxlbWVudCwgTWFwPHN0cmluZywgUHJvcGVydHlXYXRjaGVyPGFueT4+PigpO1xuXG5leHBvcnQgY2xhc3MgU2JiUHJvcGVydHlXYXRjaGVyQ29udHJvbGxlcjxUIGV4dGVuZHMgTGl0RWxlbWVudD4gaW1wbGVtZW50cyBSZWFjdGl2ZUNvbnRyb2xsZXIge1xuICBwcml2YXRlIF9yZWZlcmVuY2U/OiBUIHwgbnVsbDtcbiAgcHJpdmF0ZSBfd2F0Y2hlcnM/OiBNYXA8c3RyaW5nLCBQcm9wZXJ0eVdhdGNoZXI8VD4+O1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9ob3N0OiBSZWFjdGl2ZUNvbnRyb2xsZXJIb3N0ICYgSFRNTEVsZW1lbnQsXG4gICAgcHJpdmF0ZSByZWFkb25seSBfcmVmZXJlbmNlUmVzb2x2ZXI6ICgpID0+IFQgfCBudWxsLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgX2hhbmRsZXJzOiBQYXJ0aWFsPFJlY29yZDxrZXlvZiBULCBQcm9wZXJ0eVdhdGNoZXJIYW5kbGVyPFQ+Pj4sXG4gICkge1xuICAgIHRoaXMuX2hvc3QuYWRkQ29udHJvbGxlcih0aGlzKTtcbiAgfVxuXG4gIHB1YmxpYyBob3N0Q29ubmVjdGVkKCk6IHZvaWQge1xuICAgIHRoaXMuY29ubmVjdCgpO1xuICB9XG5cbiAgcHVibGljIGhvc3REaXNjb25uZWN0ZWQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX3JlZmVyZW5jZSAhPT0gdGhpcy5fcmVmZXJlbmNlUmVzb2x2ZXIoKSkge1xuICAgICAgdGhpcy5kaXNjb25uZWN0KCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGNvbm5lY3QoKTogdm9pZCB7XG4gICAgY29uc3QgcmVmZXJlbmNlID0gdGhpcy5fcmVmZXJlbmNlUmVzb2x2ZXIoKTtcbiAgICBpZiAodGhpcy5fcmVmZXJlbmNlID09PSByZWZlcmVuY2UpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5kaXNjb25uZWN0KCk7XG4gICAgdGhpcy5fcmVmZXJlbmNlID0gcmVmZXJlbmNlO1xuICAgIGlmICghdGhpcy5fcmVmZXJlbmNlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGxldCB3YXRjaGVycyA9IHByb3BlcnR5V2F0Y2hlcnMuZ2V0KHRoaXMuX3JlZmVyZW5jZSkgYXNcbiAgICAgIHwgTWFwPHN0cmluZywgUHJvcGVydHlXYXRjaGVyPFQ+PlxuICAgICAgfCB1bmRlZmluZWQ7XG4gICAgaWYgKCF3YXRjaGVycykge1xuICAgICAgd2F0Y2hlcnMgPSBuZXcgTWFwKCk7XG4gICAgICBwcm9wZXJ0eVdhdGNoZXJzLnNldCh0aGlzLl9yZWZlcmVuY2UsIHdhdGNoZXJzKTtcbiAgICB9XG4gICAgdGhpcy5fd2F0Y2hlcnMgPSB3YXRjaGVycztcblxuICAgIGZvciAoY29uc3QgW3Byb3BlcnR5LCBoYW5kbGVyXSBvZiBPYmplY3QuZW50cmllcyh0aGlzLl9oYW5kbGVycykpIHtcbiAgICAgIGxldCB3YXRjaGVyID0gdGhpcy5fd2F0Y2hlcnMuZ2V0KHByb3BlcnR5KTtcbiAgICAgIGlmICghd2F0Y2hlcikge1xuICAgICAgICB3YXRjaGVyID0gbmV3IFByb3BlcnR5V2F0Y2hlcjxUPih0aGlzLl9yZWZlcmVuY2UsIHByb3BlcnR5KTtcbiAgICAgICAgdGhpcy5fd2F0Y2hlcnMuc2V0KHByb3BlcnR5LCB3YXRjaGVyKTtcbiAgICAgIH1cbiAgICAgIHdhdGNoZXIuYWRkSGFuZGxlcihoYW5kbGVyKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZGlzY29ubmVjdCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuX3JlZmVyZW5jZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGZvciAoY29uc3QgW3Byb3BlcnR5LCBoYW5kbGVyXSBvZiBPYmplY3QuZW50cmllcyh0aGlzLl9oYW5kbGVycykpIHtcbiAgICAgIGNvbnN0IHdhdGNoZXIgPSB0aGlzLl93YXRjaGVycz8uZ2V0KHByb3BlcnR5KTtcbiAgICAgIGlmICh3YXRjaGVyKSB7XG4gICAgICAgIHdhdGNoZXIucmVtb3ZlSGFuZGxlcihoYW5kbGVyKTtcbiAgICAgICAgaWYgKCF3YXRjaGVyLnNpemUpIHtcbiAgICAgICAgICB0aGlzLl93YXRjaGVycyEuZGVsZXRlKHByb3BlcnR5KTtcbiAgICAgICAgICBpZiAoIXRoaXMuX3dhdGNoZXJzIS5zaXplICYmIHRoaXMuX3JlZmVyZW5jZSkge1xuICAgICAgICAgICAgcHJvcGVydHlXYXRjaGVycy5kZWxldGUodGhpcy5fcmVmZXJlbmNlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5fcmVmZXJlbmNlID0gbnVsbDtcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOztBQVNBLElBQU0sa0JBQU4sTUFBcUI7Q0FLbkIsSUFBVyxPQUFJO0VBQ2IsT0FBTyxLQUFLLFVBQVU7Q0FDeEI7Q0FFQSxZQUNtQixPQUNBLFdBQWlCO0VBRGpCLEtBQUEsUUFBQTtFQUNBLEtBQUEsWUFBQTtFQVRYLEtBQUEsNEJBQVksSUFBSSxJQUFHO0VBQ25CLEtBQUEsc0JBQTRDO0VBVWxELElBQUksQ0FBQyxVQUNILElBQUksZUFBZSxJQUFJLEtBQUssTUFBTSxTQUFTLEdBQ3pDLGVBQWUsUUFBUSxLQUFLLEtBQUs7T0FHakMsS0FBSyxzQkFBc0IsZUFBZSxZQUFZLEtBQUssTUFBTSxTQUFTLEVBQUUsV0FBVTtHQUNwRixlQUFlLFFBQVEsS0FBSyxLQUFLO0dBQ2pDLEtBQUssc0JBQXNCO0VBQzdCLENBQUM7RUFHTCxLQUFLLFNBQVUsS0FBSyxNQUE2QyxLQUFLO0NBQ3hFO0NBRU8sV0FBVyxTQUFrQztFQUNsRCxJQUFJLENBQUMsS0FBSyxVQUFVO09BRWQsS0FBSyxNQUFNLGVBQ2IsS0FB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
@@ -74,4 +74,4 @@ var SbbSlotStateController = class {
74
74
  //#endregion
75
75
  export { SbbSlotStateController, SbbSlottedChangeEvent };
76
76
 
77
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xvdC1zdGF0ZS1jb250cm9sbGVyLmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb3JlL2NvbnRyb2xsZXJzL3Nsb3Qtc3RhdGUtY29udHJvbGxlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc1NlcnZlciwgdHlwZSBSZWFjdGl2ZUNvbnRyb2xsZXIsIHR5cGUgUmVhY3RpdmVDb250cm9sbGVySG9zdCB9IGZyb20gJ2xpdCc7XG5cbmV4cG9ydCBjbGFzcyBTYmJTbG90dGVkQ2hhbmdlRXZlbnQgZXh0ZW5kcyBFdmVudCB7XG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihwdWJsaWMgcmVhZG9ubHkgc2xvdDogSFRNTFNsb3RFbGVtZW50KSB7XG4gICAgc3VwZXIoJ3Nsb3R0ZWRjaGFuZ2UnLCB7IGNvbXBvc2VkOiB0cnVlIH0pO1xuICB9XG59XG5cbi8qKlxuICogVGhpcyBjb250cm9sbGVyIGNoZWNrcyBmb3Igc2xvdHRlZCBjaGlsZHJlbi4gRnJvbSB0aGVzZSBpdCB1cGRhdGVzXG4gKiB0aGUgRWxlbWVudEludGVybmFscyBzdGF0ZXMgd2l0aCB0aGUgcGF0dGVybiBgc2xvdHRlZC08bmFtZT5gIG9yIGBzbG90dGVkYFxuICogZm9yIHRoZSB1bm5hbWVkIHNsb3QuXG4gKlxuICogVGhpcyBhbGxvd3MgYSA6c3RhdGUoc2xvdHRlZC08bmFtZT4pIENTUyBzZWxlY3RvciB0byBkaXNwbGF5L2hpZGUvY29uZmlndXJlXG4gKiBhIHNlY3Rpb24gb2YgdGhlIGNvbXBvbmVudCBhcyByZXF1aXJlZC5cbiAqXG4gKiBAZXhhbXBsZVxuICogLmV4YW1wbGUge1xuICogICBkaXNwbGF5OiBub25lO1xuICpcbiAqICAgOmhvc3QoOnN0YXRlKHNsb3R0ZWQtaWNvbikpICYge1xuICogICAgIGRpc3BsYXk6IGlubGluZTtcbiAqICAgfVxuICogfVxuICpcbiAqIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0NTUy86c3RhdGVcbiAqL1xuZXhwb3J0IGNsYXNzIFNiYlNsb3RTdGF0ZUNvbnRyb2xsZXIgaW1wbGVtZW50cyBSZWFjdGl2ZUNvbnRyb2xsZXIge1xuICBwcml2YXRlIF90ZXh0T2JzZXJ2ZXIgPVxuICAgICFpc1NlcnZlciAmJlxuICAgIG5ldyBNdXRhdGlvbk9ic2VydmVyKCgpID0+IHtcbiAgICAgIGNvbnN0IHNsb3QgPSB0aGlzLl9ob3N0LnNoYWRvd1Jvb3QhLnF1ZXJ5U2VsZWN0b3I8SFRNTFNsb3RFbGVtZW50Pignc2xvdDpub3QoW25hbWVdKScpO1xuICAgICAgaWYgKHNsb3QpIHtcbiAgICAgICAgdGhpcy5fdXBkYXRlU2xvdHRlZFN0YXRlKHNsb3QpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5fdGV4dE9ic2VydmVyLmRpc2Nvbm5lY3QoKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfaG9zdDogUmVhY3RpdmVDb250cm9sbGVySG9zdCAmIEhUTUxFbGVtZW50LFxuICAgIHByaXZhdGUgX2ludGVybmFsczogRWxlbWVudEludGVybmFscyxcbiAgKSB7XG4gICAgdGhpcy5faG9zdC5hZGRDb250cm9sbGVyKHRoaXMpO1xuICB9XG5cbiAgcHVibGljIGhvc3RDb25uZWN0ZWQ6IFJlYWN0aXZlQ29udHJvbGxlclsnaG9zdENvbm5lY3RlZCddID0gKCk6IHZvaWQgPT4ge1xuICAgIHRoaXMuX2hvc3Quc2hhZG93Um9vdD8uYWRkRXZlbnRMaXN0ZW5lcignc2xvdGNoYW5nZScsIChlKSA9PlxuICAgICAgdGhpcy5fc2xvdGNoYW5nZUhhbmRsZXIoZSwgZS50YXJnZXQgYXMgSFRNTFNsb3RFbGVtZW50KSxcbiAgICApO1xuICAgIHRoaXMuX2hvc3Quc2hhZG93Um9vdD8uYWRkRXZlbnRMaXN0ZW5lcihcbiAgICAgICdzbG90dGVkY2hhbmdlJyxcbiAgICAgIChlKSA9PiB0aGlzLl9zbG90Y2hhbmdlSGFuZGxlcihlLCBlLnNsb3QpLFxuICAgICAgeyBjYXB0dXJlOiB0cnVlIH0sXG4gICAgKTtcbiAgICB0aGlzLl9pbnRlcm5hbHMuc2hhZG93Um9vdFxuICAgICAgPy5xdWVyeVNlbGVjdG9yQWxsKCdzbG90JylcbiAgICAgIC5mb3JFYWNoKChzbG90KSA9PiB0aGlzLl9oYW5kbGVTbG90Q2hhbmdlKHNsb3QpKTtcbiAgICB0aGlzLmhvc3RDb25uZWN0ZWQgPSB1bmRlZmluZWQ7XG4gIH07XG5cbiAgcHJpdmF0ZSBfc2xvdGNoYW5nZUhhbmRsZXIoZXZlbnQ6IEV2ZW50LCBzbG90OiBIVE1MU2xvdEVsZW1lbnQpOiB2b2lkIHtcbiAgICBjb25zdCByZXNvbHZlZFNsb3QgPSB0aGlzLl9ob3N0LnNoYWRvd1Jvb3QhLmNvbnRhaW5zKHNsb3QpXG4gICAgICA/IHNsb3RcbiAgICAgIDogZXZlbnRcbiAgICAgICAgICAuY29tcG9zZWRQYXRoKClcbiAgICAgICAgICAuZmluZChcbiAgICAgICAgICAgIChlbCk6IGVsIGlzIEhUTUxTbG90RWxlbWVudCA9PlxuICAgICAgICAgICAgICBlbCBpbnN0YW5jZW9mIEhUTUxTbG90RWxlbWVudCAmJiB0aGlzLl9ob3N0LnNoYWRvd1Jvb3QhLmNvbnRhaW5zKGVsKSxcbiAgICAgICAgICApO1xuICAgIGlmIChyZXNvbHZlZFNsb3QpIHtcbiAgICAgIHRoaXMuX2hhbmRsZVNsb3RDaGFuZ2UocmVzb2x2ZWRTbG90KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9oYW5kbGVTbG90Q2hhbmdlKHNsb3Q6IEhUTUxTbG90RWxlbWVudCk6IHZvaWQge1xuICAgIHRoaXMuX3VwZGF0ZVNsb3R0ZWRTdGF0ZShzbG90KTtcbiAgICBpZiAoIXNsb3QubmFtZSkge1xuICAgICAgdGhpcy5fb2JzZXJ2ZVRleHROb2Rlc0luU2xvdChzbG90KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF91cGRhdGVTbG90dGVkU3RhdGUoc2xvdDogSFRNTFNsb3RFbGVtZW50KTogdm9pZCB7XG4gICAgY29uc3Qgc3RhdGVOYW1lID0gc2xvdC5uYW1lID8gYHNsb3R0ZWQtJHtzbG90Lm5hbWV9YCA6ICdzbG90dGVkJztcbiAgICBjb25zdCBoYXNTbG90dGVkQ29udGVudCA9IHRoaXMuX2hhc1Nsb3R0ZWRDb250ZW50KHNsb3QpO1xuICAgIGlmIChoYXNTbG90dGVkQ29udGVudCAmJiAhdGhpcy5faW50ZXJuYWxzLnN0YXRlcy5oYXMoc3RhdGVOYW1lKSkge1xuICAgICAgdGhpcy5faW50ZXJuYWxzLnN0YXRlcy5hZGQoc3RhdGVOYW1lKTtcbiAgICAgIHRoaXMuX2hvc3QuZGlzcGF0Y2hFdmVudChuZXcgU2JiU2xvdHRlZENoYW5nZUV2ZW50KHNsb3QpKTtcbiAgICB9IGVsc2UgaWYgKCFoYXNTbG90dGVkQ29udGVudCAmJiB0aGlzLl9pbnRlcm5hbHMuc3RhdGVzLmhhcyhzdGF0ZU5hbWUpKSB7XG4gICAgICB0aGlzLl9pbnRlcm5hbHMuc3RhdGVzLmRlbGV0ZShzdGF0ZU5hbWUpO1xuICAgICAgdGhpcy5faG9zdC5kaXNwYXRjaEV2ZW50KG5ldyBTYmJTbG90dGVkQ2hhbmdlRXZlbnQoc2xvdCkpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX29ic2VydmVUZXh0Tm9kZXNJblNsb3Qoc2xvdDogSFRNTFNsb3RFbGVtZW50KTogdm9pZCB7XG4gICAgdGhpcy5fdGV4dE9ic2VydmVyLmRpc2Nvbm5lY3QoKTtcbiAgICAvLyBUZXh0IG5vZGVzIGNhbiBiZSBlbXB0eSBhbmQgZmlsbGVkIGxhdGVyIChvciB2aWNlIHZlcnNhKS5cbiAgICAvLyBGaWxsaW5nIGFuIGV4aXN0aW5nIG5vZGUgbGF0ZXIgd291bGQgbm90IHRyaWdnZXIgYW5vdGhlciBzbG90Y2hhbmdlIGV2ZW50LlxuICAgIC8vIFRoZXJlZm9yZSwgd2UgbmVlZCB0byBvYnNlcnZlIHRleHQgbm9kZXMgYW5kIGNoZWNrIGlmIHRoZXkgYmVjb21lIGZpbGxlZCBvciBlbXB0eS5cbiAgICAvLyBUaGlzIGlzIG9ubHkgbmVlZGVkIGZvciB0aGUgdW5uYW1lZCBzbG90IGFzIGZvciBldmVyeSBvdGhlciB0aGVyZSB3b3VsZFxuICAgIC8vIGJlIGEgdGFnIHdoaWNoIHRyaWdnZXJzIHRoZSBzbG90IGNoYW5nZSBldmVudC5cbiAgICAvLyBUaGUgbWFpbiByZWFzb24gaXMgdGhhdCBBbmd1bGFyIGNyZWF0ZXMgZW1wdHkgdGV4dCBub2RlcyBhbmQgZmlsbHMgdGhlbSBsYXRlci5cbiAgICBzbG90XG4gICAgICAuYXNzaWduZWROb2RlcygpXG4gICAgICAuZmlsdGVyKChuKSA9PiBuLm5vZGVUeXBlID09PSBuLlRFWFRfTk9ERSlcbiAgICAgIC5mb3JFYWNoKChub2RlKSA9PiB0aGlzLl90ZXh0T2JzZXJ2ZXIub2JzZXJ2ZShub2RlLCB7IGNoYXJhY3RlckRhdGE6IHRydWUgfSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBfaGFzU2xvdHRlZENvbnRlbnQoc2xvdDogSFRNTFNsb3RFbGVtZW50KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHNsb3QubmFtZVxuICAgICAgPyBzbG90XG4gICAgICAgICAgLmFzc2lnbmVkRWxlbWVudHMoKVxuICAgICAgICAgIC5zb21lKChub2RlKSA9PiAhKG5vZGUgaW5zdGFuY2VvZiBIVE1MU2xvdEVsZW1lbnQpIHx8IHRoaXMuX2hhc1Nsb3R0ZWRDb250ZW50KG5vZGUpKVxuICAgICAgOiBzbG90LmFzc2lnbmVkTm9kZXMoKS5zb21lKChub2RlKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIG5vZGUgaW5zdGFuY2VvZiBIVE1MU2xvdEVsZW1lbnRcbiAgICAgICAgICAgID8gdGhpcy5faGFzU2xvdHRlZENvbnRlbnQobm9kZSlcbiAgICAgICAgICAgIDogbm9kZS5ub2RlVHlwZSAhPT0gbm9kZS5URVhUX05PREUgfHwgISFub2RlLnRleHRDb250ZW50Py50cmltKCk7XG4gICAgICAgIH0pO1xuICB9XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50RXZlbnRNYXAge1xuICAgIHNsb3R0ZWRjaGFuZ2U6IFNiYlNsb3R0ZWRDaGFuZ2VFdmVudDtcbiAgfVxuICBpbnRlcmZhY2UgU2hhZG93Um9vdEV2ZW50TWFwIHtcbiAgICBzbG90dGVkY2hhbmdlOiBTYmJTbG90dGVkQ2hhbmdlRXZlbnQ7XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7QUFFQSxJQUFhLHdCQUFiLGNBQTJDLE1BQUs7Q0FDOUMsWUFBbUMsTUFBcUI7RUFDdEQsTUFBTSxpQkFBaUIsRUFBRSxVQUFVLE1BQU0sQ0FBQztFQURULEtBQUEsT0FBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQXdCckMsSUFBYSx5QkFBYixNQUFtQztDQVlqQyxZQUNVLE9BQ0EsWUFBNEI7RUFENUIsS0FBQSxRQUFBO0VBQ0EsS0FBQSxhQUFBO0VBYkYsS0FBQSxnQkFDTixDQUFDLFlBQ0QsSUFBSSx1QkFBc0I7R0FDeEIsTUFBTSxPQUFPLEtBQUssTUFBTSxXQUFZLGNBQStCLG1CQUFtQjtHQUN0RixJQUFJLE1BQ0YsS0FBSyxvQkFBb0IsS0FBSztRQUU5QixLQUFLLGNBQWMsWUFBWTtJQUVqQztFQVNHLEtBQUEsc0JBQWdFO0dBQ3JFLEtBQUssTUFBTSxZQUFZLGlCQUFpQixlQUFlLE1BQ3JELEtBQUssbUJBQW1CLEdBQUcsRUFBRSxPQUEwQixDQUN4RDtHQUNELEtBQUssTUFBTSxZQUFZLGlCQUNyQixrQkFDQyxNQUFNLEtBQUssbUJBQW1CLEdBQUcsRUFBRSxLQUFLLEVBQ3pDLEVBQUUsU0FBUyxNQUFNLENBQ2xCO0dBQ0QsS0FBSyxXQUFXLFlBQ1osaUJBQWlCLE9BQU8sQ0FDekIsU0FBUyxTQUFTLEtBQUssa0JBQWtCLEtBQUssQ0FBQztHQUNsRCxLQUFLLGdCQUFnQixLQUFBOztFQWZyQixLQUFLLE1BQU0sY0FBYyxLQUFLOztDQWtCeEIsbUJBQW1CLE9BQWMsTUFBcUI7RUFDNUQsTUFBTSxlQUFlLEtBQUssTUFBTSxXQUFZLFNBQVMsS0FBSyxHQUN0RCxPQUNBLE1BQ0csY0FBYyxDQUNkLE1BQ0UsT0FDQyxjQUFjLG1CQUFtQixLQUFLLE1BQU0sV0FBWSxTQUFTLEdBQUcsQ0FDdkU7RUFDUCxJQUFJLGNBQ0YsS0FBSyxrQkFBa0IsYUFBYTs7Q0FJaEMsa0JBQWtCLE1BQXFCO0VBQzdDLEtBQUssb0JBQW9CLEtBQUs7RUFDOUIsSUFBSSxDQUFDLEtBQUssTUFDUixLQUFLLHdCQUF3QixLQUFLOztDQUk5QixvQkFBb0IsTUFBcUI7RUFDL0MsTUFBTSxZQUFZLEtBQUssT0FBTyxXQUFXLEtBQUssU0FBUztFQUN2RCxNQUFNLG9CQUFvQixLQUFLLG1CQUFtQixLQUFLO0VBQ3ZELElBQUkscUJBQXFCLENBQUMsS0FBSyxXQUFXLE9BQU8sSUFBSSxVQUFVLEVBQUU7R0FDL0QsS0FBSyxXQUFXLE9BQU8sSUFBSSxVQUFVO0dBQ3JDLEtBQUssTUFBTSxjQUFjLElBQUksc0JBQXNCLEtBQUssQ0FBQztTQUNwRCxJQUFJLENBQUMscUJBQXFCLEtBQUssV0FBVyxPQUFPLElBQUksVUFBVSxFQUFFO0dBQ3RFLEtBQUssV0FBVyxPQUFPLE9BQU8sVUFBVTtHQUN4QyxLQUFLLE1BQU0sY0FBYyxJQUFJLHNCQUFzQixLQUFLLENBQUM7OztDQUlyRCx3QkFBd0IsTUFBcUI7RUFDbkQsS0FBSyxjQUFjLFlBQVk7RUFPL0IsS0FDRyxlQUFlLENBQ2YsUUFBUSxNQUFNLEVBQUUsYUFBYSxFQUFFLFVBQVUsQ0FDekMsU0FBUyxTQUFTLEtBQUssY0FBYyxRQUFRLE1BQU0sRUFBRSxlQUFlLE1BQU0sQ0FBQyxDQUFDOztDQUd6RSxtQkFBbUIsTUFBcUI7RUFDOUMsT0FBTyxLQUFLLE9BQ1IsS0FDRyxrQkFBa0IsQ0FDbEIsTUFBTSxTQUFTLEVBQUUsZ0JBQWdCLG9CQUFvQixLQUFLLG1CQUFtQixLQUFLLENBQUMsR0FDdEYsS0FBSyxlQUFlLENBQUMsTUFBTSxTQUFRO0dBQ2pDLE9BQU8sZ0JBQWdCLGtCQUNuQixLQUFLLG1CQUFtQixLQUFLLEdBQzdCLEtBQUssYUFBYSxLQUFLLGFBQWEsQ0FBQyxDQUFDLEtBQUssYUFBYSxNQUFNO0lBQ2xFIn0=
77
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xvdC1zdGF0ZS1jb250cm9sbGVyLmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb3JlL2NvbnRyb2xsZXJzL3Nsb3Qtc3RhdGUtY29udHJvbGxlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc1NlcnZlciwgdHlwZSBSZWFjdGl2ZUNvbnRyb2xsZXIsIHR5cGUgUmVhY3RpdmVDb250cm9sbGVySG9zdCB9IGZyb20gJ2xpdCc7XG5cbmV4cG9ydCBjbGFzcyBTYmJTbG90dGVkQ2hhbmdlRXZlbnQgZXh0ZW5kcyBFdmVudCB7XG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihwdWJsaWMgcmVhZG9ubHkgc2xvdDogSFRNTFNsb3RFbGVtZW50KSB7XG4gICAgc3VwZXIoJ3Nsb3R0ZWRjaGFuZ2UnLCB7IGNvbXBvc2VkOiB0cnVlIH0pO1xuICB9XG59XG5cbi8qKlxuICogVGhpcyBjb250cm9sbGVyIGNoZWNrcyBmb3Igc2xvdHRlZCBjaGlsZHJlbi4gRnJvbSB0aGVzZSBpdCB1cGRhdGVzXG4gKiB0aGUgRWxlbWVudEludGVybmFscyBzdGF0ZXMgd2l0aCB0aGUgcGF0dGVybiBgc2xvdHRlZC08bmFtZT5gIG9yIGBzbG90dGVkYFxuICogZm9yIHRoZSB1bm5hbWVkIHNsb3QuXG4gKlxuICogVGhpcyBhbGxvd3MgYSA6c3RhdGUoc2xvdHRlZC08bmFtZT4pIENTUyBzZWxlY3RvciB0byBkaXNwbGF5L2hpZGUvY29uZmlndXJlXG4gKiBhIHNlY3Rpb24gb2YgdGhlIGNvbXBvbmVudCBhcyByZXF1aXJlZC5cbiAqXG4gKiBAZXhhbXBsZVxuICogLmV4YW1wbGUge1xuICogICBkaXNwbGF5OiBub25lO1xuICpcbiAqICAgOmhvc3QoOnN0YXRlKHNsb3R0ZWQtaWNvbikpICYge1xuICogICAgIGRpc3BsYXk6IGlubGluZTtcbiAqICAgfVxuICogfVxuICpcbiAqIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0NTUy86c3RhdGVcbiAqL1xuZXhwb3J0IGNsYXNzIFNiYlNsb3RTdGF0ZUNvbnRyb2xsZXIgaW1wbGVtZW50cyBSZWFjdGl2ZUNvbnRyb2xsZXIge1xuICBwcml2YXRlIF90ZXh0T2JzZXJ2ZXIgPVxuICAgICFpc1NlcnZlciAmJlxuICAgIG5ldyBNdXRhdGlvbk9ic2VydmVyKCgpID0+IHtcbiAgICAgIGNvbnN0IHNsb3QgPSB0aGlzLl9ob3N0LnNoYWRvd1Jvb3QhLnF1ZXJ5U2VsZWN0b3I8SFRNTFNsb3RFbGVtZW50Pignc2xvdDpub3QoW25hbWVdKScpO1xuICAgICAgaWYgKHNsb3QpIHtcbiAgICAgICAgdGhpcy5fdXBkYXRlU2xvdHRlZFN0YXRlKHNsb3QpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5fdGV4dE9ic2VydmVyLmRpc2Nvbm5lY3QoKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfaG9zdDogUmVhY3RpdmVDb250cm9sbGVySG9zdCAmIEhUTUxFbGVtZW50LFxuICAgIHByaXZhdGUgX2ludGVybmFsczogRWxlbWVudEludGVybmFscyxcbiAgKSB7XG4gICAgdGhpcy5faG9zdC5hZGRDb250cm9sbGVyKHRoaXMpO1xuICB9XG5cbiAgcHVibGljIGhvc3RDb25uZWN0ZWQ6IFJlYWN0aXZlQ29udHJvbGxlclsnaG9zdENvbm5lY3RlZCddID0gKCk6IHZvaWQgPT4ge1xuICAgIHRoaXMuX2hvc3Quc2hhZG93Um9vdD8uYWRkRXZlbnRMaXN0ZW5lcignc2xvdGNoYW5nZScsIChlKSA9PlxuICAgICAgdGhpcy5fc2xvdGNoYW5nZUhhbmRsZXIoZSwgZS50YXJnZXQgYXMgSFRNTFNsb3RFbGVtZW50KSxcbiAgICApO1xuICAgIHRoaXMuX2hvc3Quc2hhZG93Um9vdD8uYWRkRXZlbnRMaXN0ZW5lcihcbiAgICAgICdzbG90dGVkY2hhbmdlJyxcbiAgICAgIChlKSA9PiB0aGlzLl9zbG90Y2hhbmdlSGFuZGxlcihlLCBlLnNsb3QpLFxuICAgICAgeyBjYXB0dXJlOiB0cnVlIH0sXG4gICAgKTtcbiAgICB0aGlzLl9pbnRlcm5hbHMuc2hhZG93Um9vdFxuICAgICAgPy5xdWVyeVNlbGVjdG9yQWxsKCdzbG90JylcbiAgICAgIC5mb3JFYWNoKChzbG90KSA9PiB0aGlzLl9oYW5kbGVTbG90Q2hhbmdlKHNsb3QpKTtcbiAgICB0aGlzLmhvc3RDb25uZWN0ZWQgPSB1bmRlZmluZWQ7XG4gIH07XG5cbiAgcHJpdmF0ZSBfc2xvdGNoYW5nZUhhbmRsZXIoZXZlbnQ6IEV2ZW50LCBzbG90OiBIVE1MU2xvdEVsZW1lbnQpOiB2b2lkIHtcbiAgICBjb25zdCByZXNvbHZlZFNsb3QgPSB0aGlzLl9ob3N0LnNoYWRvd1Jvb3QhLmNvbnRhaW5zKHNsb3QpXG4gICAgICA/IHNsb3RcbiAgICAgIDogZXZlbnRcbiAgICAgICAgICAuY29tcG9zZWRQYXRoKClcbiAgICAgICAgICAuZmluZChcbiAgICAgICAgICAgIChlbCk6IGVsIGlzIEhUTUxTbG90RWxlbWVudCA9PlxuICAgICAgICAgICAgICBlbCBpbnN0YW5jZW9mIEhUTUxTbG90RWxlbWVudCAmJiB0aGlzLl9ob3N0LnNoYWRvd1Jvb3QhLmNvbnRhaW5zKGVsKSxcbiAgICAgICAgICApO1xuICAgIGlmIChyZXNvbHZlZFNsb3QpIHtcbiAgICAgIHRoaXMuX2hhbmRsZVNsb3RDaGFuZ2UocmVzb2x2ZWRTbG90KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9oYW5kbGVTbG90Q2hhbmdlKHNsb3Q6IEhUTUxTbG90RWxlbWVudCk6IHZvaWQge1xuICAgIHRoaXMuX3VwZGF0ZVNsb3R0ZWRTdGF0ZShzbG90KTtcbiAgICBpZiAoIXNsb3QubmFtZSkge1xuICAgICAgdGhpcy5fb2JzZXJ2ZVRleHROb2Rlc0luU2xvdChzbG90KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF91cGRhdGVTbG90dGVkU3RhdGUoc2xvdDogSFRNTFNsb3RFbGVtZW50KTogdm9pZCB7XG4gICAgY29uc3Qgc3RhdGVOYW1lID0gc2xvdC5uYW1lID8gYHNsb3R0ZWQtJHtzbG90Lm5hbWV9YCA6ICdzbG90dGVkJztcbiAgICBjb25zdCBoYXNTbG90dGVkQ29udGVudCA9IHRoaXMuX2hhc1Nsb3R0ZWRDb250ZW50KHNsb3QpO1xuICAgIGlmIChoYXNTbG90dGVkQ29udGVudCAmJiAhdGhpcy5faW50ZXJuYWxzLnN0YXRlcy5oYXMoc3RhdGVOYW1lKSkge1xuICAgICAgdGhpcy5faW50ZXJuYWxzLnN0YXRlcy5hZGQoc3RhdGVOYW1lKTtcbiAgICAgIHRoaXMuX2hvc3QuZGlzcGF0Y2hFdmVudChuZXcgU2JiU2xvdHRlZENoYW5nZUV2ZW50KHNsb3QpKTtcbiAgICB9IGVsc2UgaWYgKCFoYXNTbG90dGVkQ29udGVudCAmJiB0aGlzLl9pbnRlcm5hbHMuc3RhdGVzLmhhcyhzdGF0ZU5hbWUpKSB7XG4gICAgICB0aGlzLl9pbnRlcm5hbHMuc3RhdGVzLmRlbGV0ZShzdGF0ZU5hbWUpO1xuICAgICAgdGhpcy5faG9zdC5kaXNwYXRjaEV2ZW50KG5ldyBTYmJTbG90dGVkQ2hhbmdlRXZlbnQoc2xvdCkpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX29ic2VydmVUZXh0Tm9kZXNJblNsb3Qoc2xvdDogSFRNTFNsb3RFbGVtZW50KTogdm9pZCB7XG4gICAgdGhpcy5fdGV4dE9ic2VydmVyLmRpc2Nvbm5lY3QoKTtcbiAgICAvLyBUZXh0IG5vZGVzIGNhbiBiZSBlbXB0eSBhbmQgZmlsbGVkIGxhdGVyIChvciB2aWNlIHZlcnNhKS5cbiAgICAvLyBGaWxsaW5nIGFuIGV4aXN0aW5nIG5vZGUgbGF0ZXIgd291bGQgbm90IHRyaWdnZXIgYW5vdGhlciBzbG90Y2hhbmdlIGV2ZW50LlxuICAgIC8vIFRoZXJlZm9yZSwgd2UgbmVlZCB0byBvYnNlcnZlIHRleHQgbm9kZXMgYW5kIGNoZWNrIGlmIHRoZXkgYmVjb21lIGZpbGxlZCBvciBlbXB0eS5cbiAgICAvLyBUaGlzIGlzIG9ubHkgbmVlZGVkIGZvciB0aGUgdW5uYW1lZCBzbG90IGFzIGZvciBldmVyeSBvdGhlciB0aGVyZSB3b3VsZFxuICAgIC8vIGJlIGEgdGFnIHdoaWNoIHRyaWdnZXJzIHRoZSBzbG90IGNoYW5nZSBldmVudC5cbiAgICAvLyBUaGUgbWFpbiByZWFzb24gaXMgdGhhdCBBbmd1bGFyIGNyZWF0ZXMgZW1wdHkgdGV4dCBub2RlcyBhbmQgZmlsbHMgdGhlbSBsYXRlci5cbiAgICBzbG90XG4gICAgICAuYXNzaWduZWROb2RlcygpXG4gICAgICAuZmlsdGVyKChuKSA9PiBuLm5vZGVUeXBlID09PSBuLlRFWFRfTk9ERSlcbiAgICAgIC5mb3JFYWNoKChub2RlKSA9PiB0aGlzLl90ZXh0T2JzZXJ2ZXIub2JzZXJ2ZShub2RlLCB7IGNoYXJhY3RlckRhdGE6IHRydWUgfSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBfaGFzU2xvdHRlZENvbnRlbnQoc2xvdDogSFRNTFNsb3RFbGVtZW50KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHNsb3QubmFtZVxuICAgICAgPyBzbG90XG4gICAgICAgICAgLmFzc2lnbmVkRWxlbWVudHMoKVxuICAgICAgICAgIC5zb21lKChub2RlKSA9PiAhKG5vZGUgaW5zdGFuY2VvZiBIVE1MU2xvdEVsZW1lbnQpIHx8IHRoaXMuX2hhc1Nsb3R0ZWRDb250ZW50KG5vZGUpKVxuICAgICAgOiBzbG90LmFzc2lnbmVkTm9kZXMoKS5zb21lKChub2RlKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIG5vZGUgaW5zdGFuY2VvZiBIVE1MU2xvdEVsZW1lbnRcbiAgICAgICAgICAgID8gdGhpcy5faGFzU2xvdHRlZENvbnRlbnQobm9kZSlcbiAgICAgICAgICAgIDogbm9kZS5ub2RlVHlwZSAhPT0gbm9kZS5URVhUX05PREUgfHwgISFub2RlLnRleHRDb250ZW50Py50cmltKCk7XG4gICAgICAgIH0pO1xuICB9XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50RXZlbnRNYXAge1xuICAgIHNsb3R0ZWRjaGFuZ2U6IFNiYlNsb3R0ZWRDaGFuZ2VFdmVudDtcbiAgfVxuICBpbnRlcmZhY2UgU2hhZG93Um9vdEV2ZW50TWFwIHtcbiAgICBzbG90dGVkY2hhbmdlOiBTYmJTbG90dGVkQ2hhbmdlRXZlbnQ7XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7QUFFQSxJQUFhLHdCQUFiLGNBQTJDLE1BQUs7Q0FDOUMsWUFBbUMsTUFBcUI7RUFDdEQsTUFBTSxpQkFBaUIsRUFBRSxVQUFVLEtBQUksQ0FBRTtFQURSLEtBQUEsT0FBQTtDQUVuQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBc0JGLElBQWEseUJBQWIsTUFBbUM7Q0FZakMsWUFDVSxPQUNBLFlBQTRCO0VBRDVCLEtBQUEsUUFBQTtFQUNBLEtBQUEsYUFBQTtFQWJGLEtBQUEsZ0JBQ04sQ0FBQyxZQUNELElBQUksdUJBQXNCO0dBQ3hCLE1BQU0sT0FBTyxLQUFLLE1BQU0sV0FBWSxjQUErQixrQkFBa0I7R0FDckYsSUFBSSxNQUNGLEtBQUssb0JBQW9CLElBQUk7UUFFN0IsS0FBSyxjQUFjLFdBQVU7RUFFakMsQ0FBQztFQVNJLEtBQUEsc0JBQWdFO0dBQ3JFLEtBQUssTUFBTSxZQUFZLGlCQUFpQixlQUFlLE1BQ3JELEtBQUssbUJBQW1CLEdBQUcsRUFBRSxNQUF5QixDQUFDO0dBRXpELEtBQUssTUFBTSxZQUFZLGlCQUNyQixrQkFDQyxNQUFNLEtBQUssbUJBQW1CLEdBQUcsRUFBRSxJQUFJLEdBQ3hDLEVBQUUsU0FBUyxLQUFJLENBQUU7R0FFbkIsS0FBSyxXQUFXLFlBQ1osaUJBQWlCLE1BQU0sRUFDeEIsU0FBUyxTQUFTLEtBQUssa0JBQWtCLElBQUksQ0FBQztHQUNqRCxLQUFLLGdCQUFnQixLQUFBO0VBQ3ZCO0VBaEJFLEtBQUssTUFBTSxjQUFjLElBQUk7Q0FDL0I7Q0FpQlEsbUJBQW1CLE9BQWMsTUFBcUI7RUFDNUQsTUFBTSxlQUFlLEtBQUssTUFBTSxXQUFZLFNBQVMsSUFBSSxJQUNyRCxPQUNBLE1BQ0csYUFBWSxFQUNaLE1BQ0UsT0FDQyxjQUFjLG1CQUFtQixLQUFLLE1BQU0sV0FBWSxTQUFTLEVBQUUsQ0FBQztFQUU5RSxJQUFJLGNBQ0YsS0FBSyxrQkFBa0IsWUFBWTtDQUV2QztDQUVRLGtCQUFrQixNQUFxQjtFQUM3QyxLQUFLLG9CQUFvQixJQUFJO0VBQzdCLElBQUksQ0FBQyxLQUFLLE1BQ1IsS0FBSyx3QkFBd0IsSUFBSTtDQUVyQztDQUVRLG9CQUFvQixNQUFxQjtFQUMvQyxNQUFNLFlBQVksS0FBSyxPQUFPLFdBQVcsS0FBSyxTQUFTO0VBQ3ZELE1BQU0sb0JBQW9CLEtBQUssbUJBQW1CLElBQUk7RUFDdEQsSUFBSSxxQkFBcUIsQ0FBQyxLQUFLLFdBQVcsT0FBTyxJQUFJLFNBQVMsR0FBRztHQUMvRCxLQUFLLFdBQVcsT0FBTyxJQUFJLFNBQVM7R0FDcEMsS0FBSyxNQUFNLGNBQWMsSUFBSSxzQkFBc0IsSUFBSSxDQUFDO0VBQzFELE9BQU8sSUFBSSxDQUFDLHFCQUFxQixLQUFLLFdBQVcsT0FBTyxJQUFJLFNBQVMsR0FBRztHQUN0RSxLQUFLLFdBQVcsT0FBTyxPQUFPLFNBQVM7R0FDdkMsS0FBSyxNQUFNLGNBQWMsSUFBSSxzQkFBc0IsSUFBSSxDQUFDO0VBQzFEO0NBQ0Y7Q0FFUSx3QkFBd0IsTUFBcUI7RUFDbkQsS0FBSyxjQUFjLFdBQVU7RUFPN0IsS0FDRyxjQUFhLEVBQ2IsUUFBUSxNQUFNLEVBQUUsYUFBYSxFQUFFLFNBQVMsRUFDeEMsU0FBUyxTQUFTLEtBQUssY0FBYyxRQUFRLE1BQU0sRUFBRSxlQUFlLEtBQUksQ0FBRSxDQUFDO0NBQ2hGO0NBRVEsbUJBQW1CLE1BQXFCO0VBQzlDLE9BQU8sS0FBSyxPQUNSLEtBQ0csaUJBQWdCLEVBQ2hCLE1BQU0sU0FBUyxFQUFFLGdCQUFnQixvQkFBb0IsS0FBSyxtQkFBbUIsSUFBSSxDQUFDLElBQ3JGLEtBQUssY0FBYSxFQUFHLE1BQU0sU0FBUTtHQUNqQyxPQUFPLGdCQUFnQixrQkFDbkIsS0FBSyxtQkFBbUIsSUFBSSxJQUM1QixLQUFLLGFBQWEsS0FBSyxhQUFhLENBQUMsQ0FBQyxLQUFLLGFBQWEsS0FBSTtFQUNsRSxDQUFDO0NBQ1AifQ==
@@ -148,4 +148,4 @@ var DateAdapter = class {
148
148
  //#endregion
149
149
  export { DAYS_PER_ROW, DateAdapter, FORMAT_DATE, FRIDAY, ISO8601_FORMAT_DATE, MONDAY, MONTHS_PER_PAGE, MONTHS_PER_ROW, SATURDAY, SUNDAY, THURSDAY, TUESDAY, WEDNESDAY, YEARS_PER_PAGE, YEARS_PER_ROW };
150
150
 
151
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1hZGFwdGVyLmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb3JlL2RhdGV0aW1lL2RhdGUtYWRhcHRlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgRk9STUFUX0RBVEUgPVxuICAvKDA/WzEtOV18WzEyXVswLTldfDNbMDFdKVsuLFxcXFwvXFwtXFxzXSgwP1sxLTldfDFbMC0yXSlbLixcXFxcL1xcLVxcc10oWzAtOV17MSw0fSQpPy87XG5leHBvcnQgY29uc3QgSVNPODYwMV9GT1JNQVRfREFURSA9IC9eKFswLTldezR9KS0oMFsxLTldfDFbMC0yXSktKDBbMS05XXxbMS0zXVswLTldKSQvO1xuZXhwb3J0IGNvbnN0IE1PTkRBWSA9IDE7XG5leHBvcnQgY29uc3QgVFVFU0RBWSA9IDI7XG5leHBvcnQgY29uc3QgV0VETkVTREFZID0gMztcbmV4cG9ydCBjb25zdCBUSFVSU0RBWSA9IDQ7XG5leHBvcnQgY29uc3QgRlJJREFZID0gNTtcbmV4cG9ydCBjb25zdCBTQVRVUkRBWSA9IDY7XG5leHBvcnQgY29uc3QgU1VOREFZID0gMDtcblxuLy8gVE9ETyhicmVha2luZy1jaGFuZ2UpOiBNb3ZlIHRoZXNlIHZhcmlhYmxlcyB0byBjYWxlbmRhclxuZXhwb3J0IGNvbnN0IERBWVNfUEVSX1JPVzogbnVtYmVyID0gNztcbmV4cG9ydCBjb25zdCBNT05USFNfUEVSX1JPVzogbnVtYmVyID0gNDtcbmV4cG9ydCBjb25zdCBZRUFSU19QRVJfUk9XOiBudW1iZXIgPSA0O1xuZXhwb3J0IGNvbnN0IE1PTlRIU19QRVJfUEFHRTogbnVtYmVyID0gMTI7XG5leHBvcnQgY29uc3QgWUVBUlNfUEVSX1BBR0U6IG51bWJlciA9IDI0O1xuXG4vKipcbiAqIEFic3RyYWN0IGRhdGUgZnVuY3Rpb25hbGl0eS5cbiAqXG4gKiBBZGFwdGVkIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvY29tcG9uZW50cy9ibG9iL21haW4vc3JjL21hdGVyaWFsL2NvcmUvZGF0ZXRpbWUvZGF0ZS1hZGFwdGVyLnRzXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBEYXRlQWRhcHRlcjxUID0gYW55PiB7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2N1dG9mZlllYXJPZmZzZXQ6IG51bWJlcjtcblxuICAvKipcbiAgICogQHBhcmFtIGN1dG9mZlllYXJPZmZzZXQgVGhlIHRocmVzaG9sZCBvbiB3aGV0aGVyIGEgdHdvLWRpZ2l0IHllYXJcbiAgICogc2hvdWxkIGJlIHRyZWF0ZWQgYXMgYmVsb25naW5nIHRvIDIwMDAgb3IgMTkwMC4gZS5nLiB3aXRoIDE1IChkZWZhdWx0KVxuICAgKiB0aGUgY3VycmVudCB5ZWFyIHBsdXMgMTUgd2lsbCBiZSB0cmVhdGVkIGFzIGJlbG9uZ2luZyB0byAyMDAwLCBhbmQgdGhlIHJlc3QgdG8gMTkwMC5cbiAgICogU28gZS5nLiB3aXRoIHRoZSBjdXJyZW50IHllYXIgMjAyNSwgNDAgd2lsbCBiZSB0cmVhdGVkIGFzIDIwNDAsIHdoaWxlIDQxIHdpbGwgYmUgdHJlYXRlZCBhcyAxOTQxLlxuICAgKi9cbiAgcHVibGljIGNvbnN0cnVjdG9yKGN1dG9mZlllYXJPZmZzZXQ6IG51bWJlciA9IDE1KSB7XG4gICAgdGhpcy5fY3V0b2ZmWWVhck9mZnNldCA9IGN1dG9mZlllYXJPZmZzZXQ7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSB5ZWFyIGFzIGEgbnVtYmVyLlxuICAgKiBAcGFyYW0gZGF0ZVxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IGdldFllYXIoZGF0ZTogVCk6IG51bWJlcjtcblxuICAvKipcbiAgICogR2V0IHRoZSBtb250aCBhcyBhIG51bWJlci5cbiAgICogQXR0ZW50aW9uOiBUaGlzIHJldHVybnMgMS0xMiBhbmQgbWl0aWdhdGVzIHRoZSBkZWZhdWx0IEphdmFTY3JpcHQgRGF0ZSBiZWhhdmlvci5cbiAgICogQHBhcmFtIGRhdGVcbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCBnZXRNb250aChkYXRlOiBUKTogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGRheSBvZiB0aGUgbW9udGggYXMgYSBudW1iZXIuXG4gICAqIEBwYXJhbSBkYXRlXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgZ2V0RGF0ZShkYXRlOiBUKTogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBHZXQgdGhlIERheSBvZiB0aGUgd2VlayBhcyBhIG51bWJlci5cbiAgICogQHBhcmFtIGRhdGVcbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCBnZXREYXlPZldlZWsoZGF0ZTogVCk6IG51bWJlcjtcblxuICAvKiogR2V0IHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsgKDA6IHN1bmRheTsgMTogbW9uZGF5OyBldGMuKS4gKi9cbiAgcHVibGljIGFic3RyYWN0IGdldEZpcnN0RGF5T2ZXZWVrKCk6IG51bWJlcjtcblxuICAvKipcbiAgICogR2V0IHRoZSBudW1iZXIgb2YgZGF5cyBpbiBhIG1vbnRoLlxuICAgKiBAcGFyYW0gZGF0ZVxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IGdldE51bURheXNJbk1vbnRoKGRhdGU6IFQpOiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIEdldCBhIGxpc3Qgb2YgYWxsIHRoZSBtb250aHMgaW4gYSBnaXZlbiBzdHlsZS5cbiAgICogQHBhcmFtIHN0eWxlXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgZ2V0TW9udGhOYW1lcyhzdHlsZTogJ2xvbmcnIHwgJ3Nob3J0JyB8ICduYXJyb3cnKTogc3RyaW5nW107XG5cbiAgLyoqIEdldCBhIHN0cmluZyBhcnJheSB3aXRoIGxlbmd0aCA9IDMxLCBmaWxsZWQgd2l0aCB0aGUgZGF5cyBpbiBhIG1vbnRoLCBzdGFydGluZyBmcm9tIDEuICovXG4gIHB1YmxpYyBhYnN0cmFjdCBnZXREYXRlTmFtZXMoKTogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIEdldCBhIGxpc3Qgb2YgYWxsIHRoZSB3ZWVrIGRheXMgaW4gYSBnaXZlbiBzdHlsZS5cbiAgICogQHBhcmFtIHN0eWxlXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgZ2V0RGF5T2ZXZWVrTmFtZXMoc3R5bGU6ICdsb25nJyB8ICdzaG9ydCcgfCAnbmFycm93Jyk6IHN0cmluZ1tdO1xuXG4gIC8qKiBDcmVhdGVzIHRvZGF5J3MgZGF0ZS4gKi9cbiAgcHVibGljIGFic3RyYWN0IHRvZGF5KCk6IFQ7XG5cbiAgLyoqXG4gICAqIENoZWNrcyB3aGV0aGVyIGEgZ2l2ZW4gYGRhdGVgIGlzIHZhbGlkLlxuICAgKiBAcGFyYW0gZGF0ZVxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IGlzVmFsaWQoZGF0ZTogVCB8IG51bGwgfCB1bmRlZmluZWQpOiBkYXRlIGlzIFQ7XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgZGF0ZSBieSBjbG9uaW5nIHRoZSBnaXZlbiBvbmUuXG4gICAqIEBwYXJhbSBkYXRlXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgY2xvbmUoZGF0ZTogVCk6IFQ7XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgZGF0ZSwgZ2l2ZW4gZGF5LCBtb250aCBhbmQgeWVhcjsgd2l0aG91dCBkYXRlJ3Mgb3ZlcmZsb3cuXG4gICAqIEBwYXJhbSB5ZWFyXG4gICAqIEBwYXJhbSBtb250aCBUaGUgbW9udGggb2YgdGhlIGRhdGUgKDEtaW5kZXhlZCwgMSA9IEphbnVhcnkpLiBNdXN0IGJlIGFuIGludGVnZXIgMSAtIDEyLlxuICAgKiBAcGFyYW0gZGF5XG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgY3JlYXRlRGF0ZSh5ZWFyOiBudW1iZXIsIG1vbnRoOiBudW1iZXIsIGRheTogbnVtYmVyKTogVDtcblxuICAvKipcbiAgICogQXR0ZW1wdHMgdG8gZGVzZXJpYWxpemUgYSB2YWx1ZSB0byBhIHZhbGlkIGRhdGUgb2JqZWN0LiBUaGlzIGlzIGRpZmZlcmVudCBmcm9tIHBhcnNpbmcgaW4gdGhhdFxuICAgKiBkZXNlcmlhbGl6ZSBzaG91bGQgb25seSBhY2NlcHQgbm9uLWFtYmlndW91cywgbG9jYWxlLWluZGVwZW5kZW50IGZvcm1hdHMgKGUuZy4gYSBJU08gODYwMVxuICAgKiBzdHJpbmcpLiBUaGUgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiBkb2VzIG5vdCBhbGxvdyBhbnkgZGVzZXJpYWxpemF0aW9uLCBpdCBzaW1wbHkgY2hlY2tzIHRoYXRcbiAgICogdGhlIGdpdmVuIHZhbHVlIGlzIGFscmVhZHkgYSB2YWxpZCBkYXRlIG9iamVjdCBvciBudWxsLlxuICAgKiBAcGFyYW0gdmFsdWUgRWl0aGVyIGEgZGF0ZSBvYmplY3QsIElTTyBzdHJpbmcgb3IgYW4gZW1wdHkgdmFsdWUuXG4gICAqIEByZXR1cm5zIFRoZSBkYXRlIGlmIHRoZSBpbnB1dCBpcyB2YWxpZCwgYG51bGxgIG90aGVyd2lzZS5cbiAgICovXG4gIHB1YmxpYyBkZXNlcmlhbGl6ZSh2YWx1ZTogVCB8IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQpOiBUIHwgbnVsbCB7XG4gICAgaWYgKFxuICAgICAgdmFsdWUgPT0gbnVsbCB8fFxuICAgICAgKHRoaXMuaXNEYXRlSW5zdGFuY2UodmFsdWUpICYmIHRoaXMuaXNWYWxpZCh2YWx1ZSBhcyBUIHwgbnVsbCB8IHVuZGVmaW5lZCkpXG4gICAgKSB7XG4gICAgICByZXR1cm4gdmFsdWUgYXMgVCB8IG51bGw7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmludmFsaWQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IGRhdGUgYWRkaW5nIHRoZSBudW1iZXIgb2YgcHJvdmlkZWQgYHllYXJzYCB0byB0aGUgcHJvdmlkZWQgYGRhdGVgLlxuICAgKiBAcGFyYW0gZGF0ZSBUaGUgc3RhcnRpbmcgZGF0ZS5cbiAgICogQHBhcmFtIHllYXJzIFRoZSBudW1iZXIgb2YgeWVhcnMgdG8gYWRkLlxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IGFkZENhbGVuZGFyWWVhcnMoZGF0ZTogVCwgeWVhcnM6IG51bWJlcik6IFQ7XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgZGF0ZSBhZGRpbmcgdGhlIG51bWJlciBvZiBwcm92aWRlZCBgbW9udGhzYCB0byB0aGUgcHJvdmlkZWQgYGRhdGVgLlxuICAgKiBJZiB0aGUgY2FsY3VsYXRlZCBtb250aCBoYXMgZmV3ZXIgZGF5cyB0aGFuIHRoZSBvcmlnaW5hbCBvbmUsIHRoZSBkYXRlIGlzIHNldCB0byB0aGUgbGFzdCBkYXkgb2YgdGhlIG1vbnRoLlxuICAgKiBFLmcuIHdpdGggYGRhdGVgID0gbmV3IERhdGUoMjAyMiwgMCwgMzEpIGFuZCBgbW9udGhzYCA9IDEsIGl0IHJldHVybnMgbmV3IERhdGUoMjAyMiwgMSwgMjgpLlxuICAgKiBAcGFyYW0gZGF0ZSBUaGUgc3RhcnRpbmcgZGF0ZS5cbiAgICogQHBhcmFtIG1vbnRocyBUaGUgbnVtYmVyIG9mIG1vbnRocyB0byBhZGQuXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgYWRkQ2FsZW5kYXJNb250aHMoZGF0ZTogVCwgbW9udGhzOiBudW1iZXIpOiBUO1xuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IGRhdGUgYnkgYWRkaW5nIHRoZSBudW1iZXIgb2YgcHJvdmlkZWQgYGRheXNgIHRvIHRoZSBwcm92aWRlZCBgZGF0ZWAuXG4gICAqIEBwYXJhbSBkYXRlIFRoZSBzdGFydGluZyBkYXRlLlxuICAgKiBAcGFyYW0gZGF5cyBUaGUgbnVtYmVyIG9mIGRheXMgdG8gYWRkLlxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IGFkZENhbGVuZGFyRGF5cyhkYXRlOiBULCBkYXlzOiBudW1iZXIpOiBUO1xuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGRhdGUgaW4gdGhlIGxvY2FsIGZvcm1hdC5cbiAgICogQHBhcmFtIGRhdGUgVGhlIGRhdGUgdG8gZm9ybWF0XG4gICAqIEByZXR1cm5zIFRoZSBgZGF0ZWAgaW4gdGhlIGxvY2FsIGZvcm1hdCBhcyBzdHJpbmcuXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgZ2V0QWNjZXNzaWJpbGl0eUZvcm1hdERhdGUoZGF0ZTogVCB8IHN0cmluZyk6IHN0cmluZztcblxuICAvKipcbiAgICogR2V0IHRoZSBnaXZlbiBzdHJpbmcgYXMgRGF0ZS5cbiAgICogQHBhcmFtIHZhbHVlIFRoZSBkYXRlIGluIHRoZSBmb3JtYXQgREQuTU0uWVlZWS5cbiAgICovXG4gIHB1YmxpYyBwYXJzZSh2YWx1ZTogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCk6IFQgfCBudWxsIHtcbiAgICBpZiAoIXZhbHVlKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBsZXQgZGF0ZTogVCB8IG51bGwgPSBudWxsO1xuICAgIGNvbnN0IGlzb01hdGNoID0gdmFsdWUubWF0Y2goSVNPODYwMV9GT1JNQVRfREFURSk7XG4gICAgdHJ5IHtcbiAgICAgIGRhdGUgPSBpc29NYXRjaCA/IHRoaXMuY3JlYXRlRGF0ZSgraXNvTWF0Y2hbMV0sICtpc29NYXRjaFsyXSwgK2lzb01hdGNoWzNdKSA6IG51bGw7XG4gICAgfSBjYXRjaCB7XG4gICAgICAvKiBlbXB0eSAqL1xuICAgIH1cbiAgICBpZiAodGhpcy5pc1ZhbGlkKGRhdGUpKSB7XG4gICAgICByZXR1cm4gZGF0ZTtcbiAgICB9XG5cbiAgICBjb25zdCBzdHJpcHBlZFZhbHVlID0gdmFsdWUucmVwbGFjZSgvXFxEL2csICcgJykudHJpbSgpO1xuXG4gICAgY29uc3QgbWF0Y2g6IFJlZ0V4cE1hdGNoQXJyYXkgfCBudWxsIHwgdW5kZWZpbmVkID0gc3RyaXBwZWRWYWx1ZT8ubWF0Y2goRk9STUFUX0RBVEUpO1xuICAgIGlmIChcbiAgICAgICFtYXRjaCB8fFxuICAgICAgbWF0Y2guaW5kZXggIT09IDAgfHxcbiAgICAgIG1hdGNoLmxlbmd0aCA8PSAyIHx8XG4gICAgICBtYXRjaC5zb21lKChlKSA9PiBlID09PSB1bmRlZmluZWQpIHx8XG4gICAgICAhdGhpcy5pc1ZhbGlkKHRoaXMuY3JlYXRlRGF0ZSgrbWF0Y2hbM10sICttYXRjaFsyXSwgK21hdGNoWzFdKSlcbiAgICApIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGxldCB5ZWFyID0gK21hdGNoWzNdO1xuXG4gICAgaWYgKHR5cGVvZiB5ZWFyID09PSAnbnVtYmVyJyAmJiB5ZWFyIDwgMTAwICYmIHllYXIgPj0gMCkge1xuICAgICAgY29uc3Qgc2hpZnQgPSB0aGlzLmdldFllYXIodGhpcy50b2RheSgpKSAtIDIwMDAgKyB0aGlzLl9jdXRvZmZZZWFyT2Zmc2V0O1xuICAgICAgeWVhciA9IHllYXIgPD0gc2hpZnQgPyAyMDAwICsgeWVhciA6IDE5MDAgKyB5ZWFyO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmNyZWF0ZURhdGUoeWVhciwgK21hdGNoWzJdLCArbWF0Y2hbMV0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEZvcm1hdCB0aGUgZ2l2ZW4gZGF0ZSBhcyBzdHJpbmcuXG4gICAqIEBwYXJhbSBkYXRlIFRoZSBkYXRlIHRvIGZvcm1hdC5cbiAgICogQHBhcmFtIG9wdGlvbnMgb3B0aW9ucyBvYmplY3Qgd2l0aCB3ZWVrZGF5U3R5bGUgYXMgcHJvcGVydHlcbiAgICovXG4gIHB1YmxpYyBmb3JtYXQoXG4gICAgZGF0ZTogVCB8IG51bGwgfCB1bmRlZmluZWQsXG4gICAgb3B0aW9ucz86IHsgd2Vla2RheVN0eWxlPzogJ2xvbmcnIHwgJ3Nob3J0JyB8ICduYXJyb3cnIHwgJ25vbmUnIH0sXG4gICk6IHN0cmluZyB7XG4gICAgaWYgKCF0aGlzLmlzVmFsaWQoZGF0ZSkpIHtcbiAgICAgIHJldHVybiAnJztcbiAgICB9XG5cbiAgICBjb25zdCB2YWx1ZSA9IG5ldyBEYXRlKHRoaXMudG9Jc284NjAxKGRhdGUhKSArICdUMDA6MDA6MDAnKTtcbiAgICBjb25zdCBkYXRlRm9ybWF0dGVyID0gbmV3IEludGwuRGF0ZVRpbWVGb3JtYXQoJ2RlLUNIJywge1xuICAgICAgZGF5OiAnMi1kaWdpdCcsXG4gICAgICBtb250aDogJzItZGlnaXQnLFxuICAgICAgeWVhcjogJ251bWVyaWMnLFxuICAgIH0pO1xuXG4gICAgaWYgKG9wdGlvbnM/LndlZWtkYXlTdHlsZSA9PT0gJ25vbmUnKSB7XG4gICAgICByZXR1cm4gZGF0ZUZvcm1hdHRlci5mb3JtYXQodmFsdWUpO1xuICAgIH1cblxuICAgIGNvbnN0IHdlZWtkYXlTdHlsZSA9IG9wdGlvbnM/LndlZWtkYXlTdHlsZSA/PyAnc2hvcnQnO1xuICAgIGxldCB3ZWVrZGF5ID0gdGhpcy5nZXREYXlPZldlZWtOYW1lcyh3ZWVrZGF5U3R5bGUpW3RoaXMuZ2V0RGF5T2ZXZWVrKGRhdGUhKV07XG4gICAgd2Vla2RheSA9IHdlZWtkYXkuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyB3ZWVrZGF5LnN1YnN0cmluZygxKTtcbiAgICAvLyBXZSBoYXZlIHRoZSBzcGVjaWFsIHJlcXVpcmVtZW50IGZvciBkYXRlIGZvcm1hdHMgYXQgU0JCLCB3aGVyZSB0aGUgc2hvcnQgZm9ybVxuICAgIC8vIGZvciB3ZWVrZGF5cyBzaG91bGQgYmUgdHdvIGNoYXJhY3RlcnMgaW4gbGVuZ3RoLlxuICAgIGlmICh3ZWVrZGF5U3R5bGUgPT09ICdzaG9ydCcpIHtcbiAgICAgIHdlZWtkYXkgPSB3ZWVrZGF5LnN1YnN0cmluZygwLCAyKTtcbiAgICB9XG5cbiAgICByZXR1cm4gYCR7d2Vla2RheX0sICR7ZGF0ZUZvcm1hdHRlci5mb3JtYXQodmFsdWUpfWA7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIHdoZXRoZXIgdGhlIGdpdmVuIGBvYmpgIGlzIGEgRGF0ZS5cbiAgICogQHBhcmFtIG9iaiBUaGUgb2JqZWN0IHRvIGNoZWNrLlxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IGlzRGF0ZUluc3RhbmNlKG9iajogYW55KTogYm9vbGVhbjtcblxuICAvKipcbiAgICogR2V0cyBkYXRlIGluc3RhbmNlIHRoYXQgaXMgbm90IHZhbGlkLlxuICAgKiBAcmV0dXJucyBBbiBpbnZhbGlkIGRhdGUuXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgaW52YWxpZCgpOiBUO1xuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGdpdmVuIGRhdGUgYXMgSVNPIFN0cmluZy5cbiAgICogQHBhcmFtIGRhdGUgVGhlIGRhdGUgdG8gY29udmVydCB0byBJU08gU3RyaW5nLlxuICAgKi9cbiAgcHVibGljIHRvSXNvODYwMShkYXRlOiBUKTogc3RyaW5nIHtcbiAgICBjb25zdCBwYWQgPSAodmFsdWU6IG51bWJlciwgbGVuZ3RoID0gMik6IHN0cmluZyA9PiBgJHt2YWx1ZX1gLnBhZFN0YXJ0KGxlbmd0aCwgJzAnKTtcbiAgICByZXR1cm4gYCR7cGFkKHRoaXMuZ2V0WWVhcihkYXRlKSwgNCl9LSR7cGFkKHRoaXMuZ2V0TW9udGgoZGF0ZSkpfS0ke3BhZCh0aGlzLmdldERhdGUoZGF0ZSkpfWA7XG4gIH1cblxuICAvKipcbiAgICogR2l2ZW4gYSBwb3RlbnRpYWwgZGF0ZSBvYmplY3QsIHJldHVybnMgdGhhdCBzYW1lIGRhdGUgb2JqZWN0IGlmIGl0IGlzXG4gICAqIGEgdmFsaWQgZGF0ZSwgb3IgYG51bGxgIGlmIGl0J3Mgbm90IGEgdmFsaWQgZGF0ZS5cbiAgICogQHBhcmFtIHZhbHVlIFRoZSBvYmplY3QgdG8gY2hlY2suXG4gICAqIEByZXR1cm5zIEEgZGF0ZSBvciBgbnVsbGAuXG4gICAqL1xuICBwdWJsaWMgZ2V0VmFsaWREYXRlT3JOdWxsKHZhbHVlOiB1bmtub3duKTogVCB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLmlzRGF0ZUluc3RhbmNlKHZhbHVlKSAmJiB0aGlzLmlzVmFsaWQodmFsdWUgYXMgVCkgPyAodmFsdWUgYXMgVCkgOiBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIENhbGN1bGF0ZXMgdGhlIGRheSBvZiB0aGUgd2VlayBvZiB0aGUgZmlyc3QgZGF5IG9mIHRoZSBtb250aCwgYW5kIHRoZW4gaXRzIG9mZnNldCBmcm9tIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAqL1xuICBwdWJsaWMgZ2V0Rmlyc3RXZWVrT2Zmc2V0KGRhdGU6IFQpOiBudW1iZXIge1xuICAgIGNvbnN0IGZpcnN0T2ZNb250aCA9IHRoaXMuY3JlYXRlRGF0ZSh0aGlzLmdldFllYXIoZGF0ZSksIHRoaXMuZ2V0TW9udGgoZGF0ZSksIDEpITtcbiAgICByZXR1cm4gKDcgKyB0aGlzLmdldERheU9mV2VlayhmaXJzdE9mTW9udGgpIC0gdGhpcy5nZXRGaXJzdERheU9mV2VlaygpKSAlIDc7XG4gIH1cblxuICAvKipcbiAgICogQ29tcGFyZXMgdHdvIGRhdGVzLlxuICAgKiBAcGFyYW0gZmlyc3QgVGhlIGZpcnN0IGRhdGUgdG8gY29tcGFyZS5cbiAgICogQHBhcmFtIHNlY29uZCBUaGUgc2Vjb25kIGRhdGUgdG8gY29tcGFyZS5cbiAgICogQHJldHVybnMgMCBpZiB0aGUgZGF0ZXMgYXJlIGVxdWFsLCBhIG51bWJlciBsZXNzIHRoYW4gMCBpZiB0aGUgZmlyc3QgZGF0ZSBpcyBlYXJsaWVyLFxuICAgKiAgICAgYSBudW1iZXIgZ3JlYXRlciB0aGFuIDAgaWYgdGhlIGZpcnN0IGRhdGUgaXMgbGF0ZXIuXG4gICAqL1xuICBwdWJsaWMgY29tcGFyZURhdGUoZmlyc3Q6IFQsIHNlY29uZDogVCk6IG51bWJlciB7XG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMuZ2V0WWVhcihmaXJzdCkgLSB0aGlzLmdldFllYXIoc2Vjb25kKSB8fFxuICAgICAgdGhpcy5nZXRNb250aChmaXJzdCkgLSB0aGlzLmdldE1vbnRoKHNlY29uZCkgfHxcbiAgICAgIHRoaXMuZ2V0RGF0ZShmaXJzdCkgLSB0aGlzLmdldERhdGUoc2Vjb25kKVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIGlmIHR3byBkYXRlcyBhcmUgZXF1YWwuXG4gICAqIEBwYXJhbSBmaXJzdCBUaGUgZmlyc3QgZGF0ZSB0byBjaGVjay5cbiAgICogQHBhcmFtIHNlY29uZCBUaGUgc2Vjb25kIGRhdGUgdG8gY2hlY2suXG4gICAqIEByZXR1cm5zIFdoZXRoZXIgdGhlIHR3byBkYXRlcyBhcmUgZXF1YWwuXG4gICAqICAgICBOdWxsIGRhdGVzIGFyZSBjb25zaWRlcmVkIGVxdWFsIHRvIG90aGVyIG51bGwgZGF0ZXMuXG4gICAqL1xuICBwdWJsaWMgc2FtZURhdGUoZmlyc3Q6IFQgfCBudWxsLCBzZWNvbmQ6IFQgfCBudWxsKTogYm9vbGVhbiB7XG4gICAgaWYgKGZpcnN0ICYmIHNlY29uZCkge1xuICAgICAgY29uc3QgZmlyc3RWYWxpZCA9IHRoaXMuaXNWYWxpZChmaXJzdCk7XG4gICAgICBjb25zdCBzZWNvbmRWYWxpZCA9IHRoaXMuaXNWYWxpZChzZWNvbmQpO1xuICAgICAgaWYgKGZpcnN0VmFsaWQgJiYgc2Vjb25kVmFsaWQpIHtcbiAgICAgICAgcmV0dXJuICF0aGlzLmNvbXBhcmVEYXRlKGZpcnN0LCBzZWNvbmQpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGZpcnN0VmFsaWQgPT0gc2Vjb25kVmFsaWQ7XG4gICAgfVxuICAgIHJldHVybiBmaXJzdCA9PSBzZWNvbmQ7XG4gIH1cblxuICAvKipcbiAgICogQ2xhbXAgdGhlIGdpdmVuIGRhdGUgYmV0d2VlbiBtaW4gYW5kIG1heCBkYXRlcy5cbiAgICogQHBhcmFtIGRhdGUgVGhlIGRhdGUgdG8gY2xhbXAuXG4gICAqIEBwYXJhbSBtaW4gVGhlIG1pbmltdW0gdmFsdWUgdG8gYWxsb3cuIElmIG51bGwgb3Igb21pdHRlZCBubyBtaW4gaXMgZW5mb3JjZWQuXG4gICAqIEBwYXJhbSBtYXggVGhlIG1heGltdW0gdmFsdWUgdG8gYWxsb3cuIElmIG51bGwgb3Igb21pdHRlZCBubyBtYXggaXMgZW5mb3JjZWQuXG4gICAqIEByZXR1cm5zIGBtaW5gIGlmIGBkYXRlYCBpcyBsZXNzIHRoYW4gYG1pbmAsIGBtYXhgIGlmIGRhdGUgaXMgZ3JlYXRlciB0aGFuIGBtYXhgLFxuICAgKiAgICAgb3RoZXJ3aXNlIGBkYXRlYC5cbiAgICovXG4gIHB1YmxpYyBjbGFtcERhdGUoZGF0ZTogVCwgbWluPzogVCB8IG51bGwsIG1heD86IFQgfCBudWxsKTogVCB7XG4gICAgaWYgKG1pbiAmJiB0aGlzLmNvbXBhcmVEYXRlKGRhdGUsIG1pbikgPCAwKSB7XG4gICAgICByZXR1cm4gbWluO1xuICAgIH1cbiAgICBpZiAobWF4ICYmIHRoaXMuY29tcGFyZURhdGUoZGF0ZSwgbWF4KSA+IDApIHtcbiAgICAgIHJldHVybiBtYXg7XG4gICAgfVxuICAgIHJldHVybiBkYXRlO1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7QUFBQSxJQUFhLGNBQ1g7QUFDRixJQUFhLHNCQUFzQjtBQUNuQyxJQUFhLFNBQVM7QUFDdEIsSUFBYSxVQUFVO0FBQ3ZCLElBQWEsWUFBWTtBQUN6QixJQUFhLFdBQVc7QUFDeEIsSUFBYSxTQUFTO0FBQ3RCLElBQWEsV0FBVztBQUN4QixJQUFhLFNBQVM7QUFHdEIsSUFBYSxlQUF1QjtBQUNwQyxJQUFhLGlCQUF5QjtBQUN0QyxJQUFhLGdCQUF3QjtBQUNyQyxJQUFhLGtCQUEwQjtBQUN2QyxJQUFhLGlCQUF5Qjs7Ozs7O0FBT3RDLElBQXNCLGNBQXRCLE1BQWlDOzs7Ozs7O0NBUy9CLFlBQW1CLG1CQUEyQixJQUFFO0VBQzlDLEtBQUssb0JBQW9COzs7Ozs7Ozs7O0NBbUZwQixZQUFZLE9BQW9DO0VBQ3JELElBQ0UsU0FBUyxRQUNSLEtBQUssZUFBZSxNQUFNLElBQUksS0FBSyxRQUFRLE1BQThCLEVBRTFFLE9BQU87RUFFVCxPQUFPLEtBQUssU0FBUzs7Ozs7O0NBcUNoQixNQUFNLE9BQWdDO0VBQzNDLElBQUksQ0FBQyxPQUNILE9BQU87RUFHVCxJQUFJLE9BQWlCO0VBQ3JCLE1BQU0sV0FBVyxNQUFNLE1BQU0sb0JBQW9CO0VBQ2pELElBQUk7R0FDRixPQUFPLFdBQVcsS0FBSyxXQUFXLENBQUMsU0FBUyxJQUFJLENBQUMsU0FBUyxJQUFJLENBQUMsU0FBUyxHQUFHLEdBQUc7VUFDeEU7RUFHUixJQUFJLEtBQUssUUFBUSxLQUFLLEVBQ3BCLE9BQU87RUFLVCxNQUFNLFFBRmdCLE1BQU0sUUFBUSxPQUFPLElBQUksQ0FBQyxNQUVHLEVBQWUsTUFBTSxZQUFZO0VBQ3BGLElBQ0UsQ0FBQyxTQUNELE1BQU0sVUFBVSxLQUNoQixNQUFNLFVBQVUsS0FDaEIsTUFBTSxNQUFNLE1BQU0sTUFBTSxLQUFBLEVBQVUsSUFDbEMsQ0FBQyxLQUFLLFFBQVEsS0FBSyxXQUFXLENBQUMsTUFBTSxJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsRUFFL0QsT0FBTztFQUdULElBQUksT0FBTyxDQUFDLE1BQU07RUFFbEIsSUFBSSxPQUFPLFNBQVMsWUFBWSxPQUFPLE9BQU8sUUFBUSxHQUFHO0dBQ3ZELE1BQU0sUUFBUSxLQUFLLFFBQVEsS0FBSyxPQUFPLENBQUMsR0FBRyxNQUFPLEtBQUs7R0FDdkQsT0FBTyxRQUFRLFFBQVEsTUFBTyxPQUFPLE9BQU87O0VBRzlDLE9BQU8sS0FBSyxXQUFXLE1BQU0sQ0FBQyxNQUFNLElBQUksQ0FBQyxNQUFNLEdBQUc7Ozs7Ozs7Q0FRN0MsT0FDTCxNQUNBLFNBQWlFO0VBRWpFLElBQUksQ0FBQyxLQUFLLFFBQVEsS0FBSyxFQUNyQixPQUFPO0VBR1QsTUFBTSx3QkFBUSxJQUFJLEtBQUssS0FBSyxVQUFVLEtBQU0sR0FBRyxZQUFZO0VBQzNELE1BQU0sZ0JBQWdCLElBQUksS0FBSyxlQUFlLFNBQVM7R0FDckQsS0FBSztHQUNMLE9BQU87R0FDUCxNQUFNO0dBQ1AsQ0FBQztFQUVGLElBQUksU0FBUyxpQkFBaUIsUUFDNUIsT0FBTyxjQUFjLE9BQU8sTUFBTTtFQUdwQyxNQUFNLGVBQWUsU0FBUyxnQkFBZ0I7RUFDOUMsSUFBSSxVQUFVLEtBQUssa0JBQWtCLGFBQWEsQ0FBQyxLQUFLLGFBQWEsS0FBTTtFQUMzRSxVQUFVLFFBQVEsT0FBTyxFQUFFLENBQUMsYUFBYSxHQUFHLFFBQVEsVUFBVSxFQUFFO0VBR2hFLElBQUksaUJBQWlCLFNBQ25CLFVBQVUsUUFBUSxVQUFVLEdBQUcsRUFBRTtFQUduQyxPQUFPLEdBQUcsUUFBTyxJQUFLLGNBQWMsT0FBTyxNQUFNOzs7Ozs7Q0FtQjVDLFVBQVUsTUFBTztFQUN0QixNQUFNLE9BQU8sT0FBZSxTQUFTLE1BQWMsR0FBRyxRQUFRLFNBQVMsUUFBUSxJQUFJO0VBQ25GLE9BQU8sR0FBRyxJQUFJLEtBQUssUUFBUSxLQUFLLEVBQUUsRUFBRSxDQUFBLEdBQUksSUFBSSxLQUFLLFNBQVMsS0FBSyxDQUFDLENBQUEsR0FBSSxJQUFJLEtBQUssUUFBUSxLQUFLLENBQUM7Ozs7Ozs7O0NBU3RGLG1CQUFtQixPQUFjO0VBQ3RDLE9BQU8sS0FBSyxlQUFlLE1BQU0sSUFBSSxLQUFLLFFBQVEsTUFBVyxHQUFJLFFBQWM7Ozs7O0NBTTFFLG1CQUFtQixNQUFPO0VBQy9CLE1BQU0sZUFBZSxLQUFLLFdBQVcsS0FBSyxRQUFRLEtBQUssRUFBRSxLQUFLLFNBQVMsS0FBSyxFQUFFLEVBQUc7RUFDakYsUUFBUSxJQUFJLEtBQUssYUFBYSxhQUFhLEdBQUcsS0FBSyxtQkFBbUIsSUFBSTs7Ozs7Ozs7O0NBVXJFLFlBQVksT0FBVSxRQUFTO0VBQ3BDLE9BQ0UsS0FBSyxRQUFRLE1BQU0sR0FBRyxLQUFLLFFBQVEsT0FBTyxJQUMxQyxLQUFLLFNBQVMsTUFBTSxHQUFHLEtBQUssU0FBUyxPQUFPLElBQzVDLEtBQUssUUFBUSxNQUFNLEdBQUcsS0FBSyxRQUFRLE9BQU87Ozs7Ozs7OztDQVd2QyxTQUFTLE9BQWlCLFFBQWdCO0VBQy9DLElBQUksU0FBUyxRQUFRO0dBQ25CLE1BQU0sYUFBYSxLQUFLLFFBQVEsTUFBTTtHQUN0QyxNQUFNLGNBQWMsS0FBSyxRQUFRLE9BQU87R0FDeEMsSUFBSSxjQUFjLGFBQ2hCLE9BQU8sQ0FBQyxLQUFLLFlBQVksT0FBTyxPQUFPO0dBRXpDLE9BQU8sY0FBYzs7RUFFdkIsT0FBTyxTQUFTOzs7Ozs7Ozs7O0NBV1gsVUFBVSxNQUFTLEtBQWdCLEtBQWM7RUFDdEQsSUFBSSxPQUFPLEtBQUssWUFBWSxNQUFNLElBQUksR0FBRyxHQUN2QyxPQUFPO0VBRVQsSUFBSSxPQUFPLEtBQUssWUFBWSxNQUFNLElBQUksR0FBRyxHQUN2QyxPQUFPO0VBRVQsT0FBTyJ9
151
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1hZGFwdGVyLmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb3JlL2RhdGV0aW1lL2RhdGUtYWRhcHRlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgRk9STUFUX0RBVEUgPVxuICAvKDA/WzEtOV18WzEyXVswLTldfDNbMDFdKVsuLFxcXFwvXFwtXFxzXSgwP1sxLTldfDFbMC0yXSlbLixcXFxcL1xcLVxcc10oWzAtOV17MSw0fSQpPy87XG5leHBvcnQgY29uc3QgSVNPODYwMV9GT1JNQVRfREFURSA9IC9eKFswLTldezR9KS0oMFsxLTldfDFbMC0yXSktKDBbMS05XXxbMS0zXVswLTldKSQvO1xuZXhwb3J0IGNvbnN0IE1PTkRBWSA9IDE7XG5leHBvcnQgY29uc3QgVFVFU0RBWSA9IDI7XG5leHBvcnQgY29uc3QgV0VETkVTREFZID0gMztcbmV4cG9ydCBjb25zdCBUSFVSU0RBWSA9IDQ7XG5leHBvcnQgY29uc3QgRlJJREFZID0gNTtcbmV4cG9ydCBjb25zdCBTQVRVUkRBWSA9IDY7XG5leHBvcnQgY29uc3QgU1VOREFZID0gMDtcblxuLy8gVE9ETyhicmVha2luZy1jaGFuZ2UpOiBNb3ZlIHRoZXNlIHZhcmlhYmxlcyB0byBjYWxlbmRhclxuZXhwb3J0IGNvbnN0IERBWVNfUEVSX1JPVzogbnVtYmVyID0gNztcbmV4cG9ydCBjb25zdCBNT05USFNfUEVSX1JPVzogbnVtYmVyID0gNDtcbmV4cG9ydCBjb25zdCBZRUFSU19QRVJfUk9XOiBudW1iZXIgPSA0O1xuZXhwb3J0IGNvbnN0IE1PTlRIU19QRVJfUEFHRTogbnVtYmVyID0gMTI7XG5leHBvcnQgY29uc3QgWUVBUlNfUEVSX1BBR0U6IG51bWJlciA9IDI0O1xuXG4vKipcbiAqIEFic3RyYWN0IGRhdGUgZnVuY3Rpb25hbGl0eS5cbiAqXG4gKiBBZGFwdGVkIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvY29tcG9uZW50cy9ibG9iL21haW4vc3JjL21hdGVyaWFsL2NvcmUvZGF0ZXRpbWUvZGF0ZS1hZGFwdGVyLnRzXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBEYXRlQWRhcHRlcjxUID0gYW55PiB7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2N1dG9mZlllYXJPZmZzZXQ6IG51bWJlcjtcblxuICAvKipcbiAgICogQHBhcmFtIGN1dG9mZlllYXJPZmZzZXQgVGhlIHRocmVzaG9sZCBvbiB3aGV0aGVyIGEgdHdvLWRpZ2l0IHllYXJcbiAgICogc2hvdWxkIGJlIHRyZWF0ZWQgYXMgYmVsb25naW5nIHRvIDIwMDAgb3IgMTkwMC4gZS5nLiB3aXRoIDE1IChkZWZhdWx0KVxuICAgKiB0aGUgY3VycmVudCB5ZWFyIHBsdXMgMTUgd2lsbCBiZSB0cmVhdGVkIGFzIGJlbG9uZ2luZyB0byAyMDAwLCBhbmQgdGhlIHJlc3QgdG8gMTkwMC5cbiAgICogU28gZS5nLiB3aXRoIHRoZSBjdXJyZW50IHllYXIgMjAyNSwgNDAgd2lsbCBiZSB0cmVhdGVkIGFzIDIwNDAsIHdoaWxlIDQxIHdpbGwgYmUgdHJlYXRlZCBhcyAxOTQxLlxuICAgKi9cbiAgcHVibGljIGNvbnN0cnVjdG9yKGN1dG9mZlllYXJPZmZzZXQ6IG51bWJlciA9IDE1KSB7XG4gICAgdGhpcy5fY3V0b2ZmWWVhck9mZnNldCA9IGN1dG9mZlllYXJPZmZzZXQ7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSB5ZWFyIGFzIGEgbnVtYmVyLlxuICAgKiBAcGFyYW0gZGF0ZVxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IGdldFllYXIoZGF0ZTogVCk6IG51bWJlcjtcblxuICAvKipcbiAgICogR2V0IHRoZSBtb250aCBhcyBhIG51bWJlci5cbiAgICogQXR0ZW50aW9uOiBUaGlzIHJldHVybnMgMS0xMiBhbmQgbWl0aWdhdGVzIHRoZSBkZWZhdWx0IEphdmFTY3JpcHQgRGF0ZSBiZWhhdmlvci5cbiAgICogQHBhcmFtIGRhdGVcbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCBnZXRNb250aChkYXRlOiBUKTogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGRheSBvZiB0aGUgbW9udGggYXMgYSBudW1iZXIuXG4gICAqIEBwYXJhbSBkYXRlXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgZ2V0RGF0ZShkYXRlOiBUKTogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBHZXQgdGhlIERheSBvZiB0aGUgd2VlayBhcyBhIG51bWJlci5cbiAgICogQHBhcmFtIGRhdGVcbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCBnZXREYXlPZldlZWsoZGF0ZTogVCk6IG51bWJlcjtcblxuICAvKiogR2V0IHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsgKDA6IHN1bmRheTsgMTogbW9uZGF5OyBldGMuKS4gKi9cbiAgcHVibGljIGFic3RyYWN0IGdldEZpcnN0RGF5T2ZXZWVrKCk6IG51bWJlcjtcblxuICAvKipcbiAgICogR2V0IHRoZSBudW1iZXIgb2YgZGF5cyBpbiBhIG1vbnRoLlxuICAgKiBAcGFyYW0gZGF0ZVxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IGdldE51bURheXNJbk1vbnRoKGRhdGU6IFQpOiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIEdldCBhIGxpc3Qgb2YgYWxsIHRoZSBtb250aHMgaW4gYSBnaXZlbiBzdHlsZS5cbiAgICogQHBhcmFtIHN0eWxlXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgZ2V0TW9udGhOYW1lcyhzdHlsZTogJ2xvbmcnIHwgJ3Nob3J0JyB8ICduYXJyb3cnKTogc3RyaW5nW107XG5cbiAgLyoqIEdldCBhIHN0cmluZyBhcnJheSB3aXRoIGxlbmd0aCA9IDMxLCBmaWxsZWQgd2l0aCB0aGUgZGF5cyBpbiBhIG1vbnRoLCBzdGFydGluZyBmcm9tIDEuICovXG4gIHB1YmxpYyBhYnN0cmFjdCBnZXREYXRlTmFtZXMoKTogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIEdldCBhIGxpc3Qgb2YgYWxsIHRoZSB3ZWVrIGRheXMgaW4gYSBnaXZlbiBzdHlsZS5cbiAgICogQHBhcmFtIHN0eWxlXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgZ2V0RGF5T2ZXZWVrTmFtZXMoc3R5bGU6ICdsb25nJyB8ICdzaG9ydCcgfCAnbmFycm93Jyk6IHN0cmluZ1tdO1xuXG4gIC8qKiBDcmVhdGVzIHRvZGF5J3MgZGF0ZS4gKi9cbiAgcHVibGljIGFic3RyYWN0IHRvZGF5KCk6IFQ7XG5cbiAgLyoqXG4gICAqIENoZWNrcyB3aGV0aGVyIGEgZ2l2ZW4gYGRhdGVgIGlzIHZhbGlkLlxuICAgKiBAcGFyYW0gZGF0ZVxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IGlzVmFsaWQoZGF0ZTogVCB8IG51bGwgfCB1bmRlZmluZWQpOiBkYXRlIGlzIFQ7XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgZGF0ZSBieSBjbG9uaW5nIHRoZSBnaXZlbiBvbmUuXG4gICAqIEBwYXJhbSBkYXRlXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgY2xvbmUoZGF0ZTogVCk6IFQ7XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgZGF0ZSwgZ2l2ZW4gZGF5LCBtb250aCBhbmQgeWVhcjsgd2l0aG91dCBkYXRlJ3Mgb3ZlcmZsb3cuXG4gICAqIEBwYXJhbSB5ZWFyXG4gICAqIEBwYXJhbSBtb250aCBUaGUgbW9udGggb2YgdGhlIGRhdGUgKDEtaW5kZXhlZCwgMSA9IEphbnVhcnkpLiBNdXN0IGJlIGFuIGludGVnZXIgMSAtIDEyLlxuICAgKiBAcGFyYW0gZGF5XG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgY3JlYXRlRGF0ZSh5ZWFyOiBudW1iZXIsIG1vbnRoOiBudW1iZXIsIGRheTogbnVtYmVyKTogVDtcblxuICAvKipcbiAgICogQXR0ZW1wdHMgdG8gZGVzZXJpYWxpemUgYSB2YWx1ZSB0byBhIHZhbGlkIGRhdGUgb2JqZWN0LiBUaGlzIGlzIGRpZmZlcmVudCBmcm9tIHBhcnNpbmcgaW4gdGhhdFxuICAgKiBkZXNlcmlhbGl6ZSBzaG91bGQgb25seSBhY2NlcHQgbm9uLWFtYmlndW91cywgbG9jYWxlLWluZGVwZW5kZW50IGZvcm1hdHMgKGUuZy4gYSBJU08gODYwMVxuICAgKiBzdHJpbmcpLiBUaGUgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiBkb2VzIG5vdCBhbGxvdyBhbnkgZGVzZXJpYWxpemF0aW9uLCBpdCBzaW1wbHkgY2hlY2tzIHRoYXRcbiAgICogdGhlIGdpdmVuIHZhbHVlIGlzIGFscmVhZHkgYSB2YWxpZCBkYXRlIG9iamVjdCBvciBudWxsLlxuICAgKiBAcGFyYW0gdmFsdWUgRWl0aGVyIGEgZGF0ZSBvYmplY3QsIElTTyBzdHJpbmcgb3IgYW4gZW1wdHkgdmFsdWUuXG4gICAqIEByZXR1cm5zIFRoZSBkYXRlIGlmIHRoZSBpbnB1dCBpcyB2YWxpZCwgYG51bGxgIG90aGVyd2lzZS5cbiAgICovXG4gIHB1YmxpYyBkZXNlcmlhbGl6ZSh2YWx1ZTogVCB8IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQpOiBUIHwgbnVsbCB7XG4gICAgaWYgKFxuICAgICAgdmFsdWUgPT0gbnVsbCB8fFxuICAgICAgKHRoaXMuaXNEYXRlSW5zdGFuY2UodmFsdWUpICYmIHRoaXMuaXNWYWxpZCh2YWx1ZSBhcyBUIHwgbnVsbCB8IHVuZGVmaW5lZCkpXG4gICAgKSB7XG4gICAgICByZXR1cm4gdmFsdWUgYXMgVCB8IG51bGw7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmludmFsaWQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IGRhdGUgYWRkaW5nIHRoZSBudW1iZXIgb2YgcHJvdmlkZWQgYHllYXJzYCB0byB0aGUgcHJvdmlkZWQgYGRhdGVgLlxuICAgKiBAcGFyYW0gZGF0ZSBUaGUgc3RhcnRpbmcgZGF0ZS5cbiAgICogQHBhcmFtIHllYXJzIFRoZSBudW1iZXIgb2YgeWVhcnMgdG8gYWRkLlxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IGFkZENhbGVuZGFyWWVhcnMoZGF0ZTogVCwgeWVhcnM6IG51bWJlcik6IFQ7XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgZGF0ZSBhZGRpbmcgdGhlIG51bWJlciBvZiBwcm92aWRlZCBgbW9udGhzYCB0byB0aGUgcHJvdmlkZWQgYGRhdGVgLlxuICAgKiBJZiB0aGUgY2FsY3VsYXRlZCBtb250aCBoYXMgZmV3ZXIgZGF5cyB0aGFuIHRoZSBvcmlnaW5hbCBvbmUsIHRoZSBkYXRlIGlzIHNldCB0byB0aGUgbGFzdCBkYXkgb2YgdGhlIG1vbnRoLlxuICAgKiBFLmcuIHdpdGggYGRhdGVgID0gbmV3IERhdGUoMjAyMiwgMCwgMzEpIGFuZCBgbW9udGhzYCA9IDEsIGl0IHJldHVybnMgbmV3IERhdGUoMjAyMiwgMSwgMjgpLlxuICAgKiBAcGFyYW0gZGF0ZSBUaGUgc3RhcnRpbmcgZGF0ZS5cbiAgICogQHBhcmFtIG1vbnRocyBUaGUgbnVtYmVyIG9mIG1vbnRocyB0byBhZGQuXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgYWRkQ2FsZW5kYXJNb250aHMoZGF0ZTogVCwgbW9udGhzOiBudW1iZXIpOiBUO1xuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IGRhdGUgYnkgYWRkaW5nIHRoZSBudW1iZXIgb2YgcHJvdmlkZWQgYGRheXNgIHRvIHRoZSBwcm92aWRlZCBgZGF0ZWAuXG4gICAqIEBwYXJhbSBkYXRlIFRoZSBzdGFydGluZyBkYXRlLlxuICAgKiBAcGFyYW0gZGF5cyBUaGUgbnVtYmVyIG9mIGRheXMgdG8gYWRkLlxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IGFkZENhbGVuZGFyRGF5cyhkYXRlOiBULCBkYXlzOiBudW1iZXIpOiBUO1xuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGRhdGUgaW4gdGhlIGxvY2FsIGZvcm1hdC5cbiAgICogQHBhcmFtIGRhdGUgVGhlIGRhdGUgdG8gZm9ybWF0XG4gICAqIEByZXR1cm5zIFRoZSBgZGF0ZWAgaW4gdGhlIGxvY2FsIGZvcm1hdCBhcyBzdHJpbmcuXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgZ2V0QWNjZXNzaWJpbGl0eUZvcm1hdERhdGUoZGF0ZTogVCB8IHN0cmluZyk6IHN0cmluZztcblxuICAvKipcbiAgICogR2V0IHRoZSBnaXZlbiBzdHJpbmcgYXMgRGF0ZS5cbiAgICogQHBhcmFtIHZhbHVlIFRoZSBkYXRlIGluIHRoZSBmb3JtYXQgREQuTU0uWVlZWS5cbiAgICovXG4gIHB1YmxpYyBwYXJzZSh2YWx1ZTogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCk6IFQgfCBudWxsIHtcbiAgICBpZiAoIXZhbHVlKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBsZXQgZGF0ZTogVCB8IG51bGwgPSBudWxsO1xuICAgIGNvbnN0IGlzb01hdGNoID0gdmFsdWUubWF0Y2goSVNPODYwMV9GT1JNQVRfREFURSk7XG4gICAgdHJ5IHtcbiAgICAgIGRhdGUgPSBpc29NYXRjaCA/IHRoaXMuY3JlYXRlRGF0ZSgraXNvTWF0Y2hbMV0sICtpc29NYXRjaFsyXSwgK2lzb01hdGNoWzNdKSA6IG51bGw7XG4gICAgfSBjYXRjaCB7XG4gICAgICAvKiBlbXB0eSAqL1xuICAgIH1cbiAgICBpZiAodGhpcy5pc1ZhbGlkKGRhdGUpKSB7XG4gICAgICByZXR1cm4gZGF0ZTtcbiAgICB9XG5cbiAgICBjb25zdCBzdHJpcHBlZFZhbHVlID0gdmFsdWUucmVwbGFjZSgvXFxEL2csICcgJykudHJpbSgpO1xuXG4gICAgY29uc3QgbWF0Y2g6IFJlZ0V4cE1hdGNoQXJyYXkgfCBudWxsIHwgdW5kZWZpbmVkID0gc3RyaXBwZWRWYWx1ZT8ubWF0Y2goRk9STUFUX0RBVEUpO1xuICAgIGlmIChcbiAgICAgICFtYXRjaCB8fFxuICAgICAgbWF0Y2guaW5kZXggIT09IDAgfHxcbiAgICAgIG1hdGNoLmxlbmd0aCA8PSAyIHx8XG4gICAgICBtYXRjaC5zb21lKChlKSA9PiBlID09PSB1bmRlZmluZWQpIHx8XG4gICAgICAhdGhpcy5pc1ZhbGlkKHRoaXMuY3JlYXRlRGF0ZSgrbWF0Y2hbM10sICttYXRjaFsyXSwgK21hdGNoWzFdKSlcbiAgICApIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGxldCB5ZWFyID0gK21hdGNoWzNdO1xuXG4gICAgaWYgKHR5cGVvZiB5ZWFyID09PSAnbnVtYmVyJyAmJiB5ZWFyIDwgMTAwICYmIHllYXIgPj0gMCkge1xuICAgICAgY29uc3Qgc2hpZnQgPSB0aGlzLmdldFllYXIodGhpcy50b2RheSgpKSAtIDIwMDAgKyB0aGlzLl9jdXRvZmZZZWFyT2Zmc2V0O1xuICAgICAgeWVhciA9IHllYXIgPD0gc2hpZnQgPyAyMDAwICsgeWVhciA6IDE5MDAgKyB5ZWFyO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmNyZWF0ZURhdGUoeWVhciwgK21hdGNoWzJdLCArbWF0Y2hbMV0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEZvcm1hdCB0aGUgZ2l2ZW4gZGF0ZSBhcyBzdHJpbmcuXG4gICAqIEBwYXJhbSBkYXRlIFRoZSBkYXRlIHRvIGZvcm1hdC5cbiAgICogQHBhcmFtIG9wdGlvbnMgb3B0aW9ucyBvYmplY3Qgd2l0aCB3ZWVrZGF5U3R5bGUgYXMgcHJvcGVydHlcbiAgICovXG4gIHB1YmxpYyBmb3JtYXQoXG4gICAgZGF0ZTogVCB8IG51bGwgfCB1bmRlZmluZWQsXG4gICAgb3B0aW9ucz86IHsgd2Vla2RheVN0eWxlPzogJ2xvbmcnIHwgJ3Nob3J0JyB8ICduYXJyb3cnIHwgJ25vbmUnIH0sXG4gICk6IHN0cmluZyB7XG4gICAgaWYgKCF0aGlzLmlzVmFsaWQoZGF0ZSkpIHtcbiAgICAgIHJldHVybiAnJztcbiAgICB9XG5cbiAgICBjb25zdCB2YWx1ZSA9IG5ldyBEYXRlKHRoaXMudG9Jc284NjAxKGRhdGUhKSArICdUMDA6MDA6MDAnKTtcbiAgICBjb25zdCBkYXRlRm9ybWF0dGVyID0gbmV3IEludGwuRGF0ZVRpbWVGb3JtYXQoJ2RlLUNIJywge1xuICAgICAgZGF5OiAnMi1kaWdpdCcsXG4gICAgICBtb250aDogJzItZGlnaXQnLFxuICAgICAgeWVhcjogJ251bWVyaWMnLFxuICAgIH0pO1xuXG4gICAgaWYgKG9wdGlvbnM/LndlZWtkYXlTdHlsZSA9PT0gJ25vbmUnKSB7XG4gICAgICByZXR1cm4gZGF0ZUZvcm1hdHRlci5mb3JtYXQodmFsdWUpO1xuICAgIH1cblxuICAgIGNvbnN0IHdlZWtkYXlTdHlsZSA9IG9wdGlvbnM/LndlZWtkYXlTdHlsZSA/PyAnc2hvcnQnO1xuICAgIGxldCB3ZWVrZGF5ID0gdGhpcy5nZXREYXlPZldlZWtOYW1lcyh3ZWVrZGF5U3R5bGUpW3RoaXMuZ2V0RGF5T2ZXZWVrKGRhdGUhKV07XG4gICAgd2Vla2RheSA9IHdlZWtkYXkuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyB3ZWVrZGF5LnN1YnN0cmluZygxKTtcbiAgICAvLyBXZSBoYXZlIHRoZSBzcGVjaWFsIHJlcXVpcmVtZW50IGZvciBkYXRlIGZvcm1hdHMgYXQgU0JCLCB3aGVyZSB0aGUgc2hvcnQgZm9ybVxuICAgIC8vIGZvciB3ZWVrZGF5cyBzaG91bGQgYmUgdHdvIGNoYXJhY3RlcnMgaW4gbGVuZ3RoLlxuICAgIGlmICh3ZWVrZGF5U3R5bGUgPT09ICdzaG9ydCcpIHtcbiAgICAgIHdlZWtkYXkgPSB3ZWVrZGF5LnN1YnN0cmluZygwLCAyKTtcbiAgICB9XG5cbiAgICByZXR1cm4gYCR7d2Vla2RheX0sICR7ZGF0ZUZvcm1hdHRlci5mb3JtYXQodmFsdWUpfWA7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIHdoZXRoZXIgdGhlIGdpdmVuIGBvYmpgIGlzIGEgRGF0ZS5cbiAgICogQHBhcmFtIG9iaiBUaGUgb2JqZWN0IHRvIGNoZWNrLlxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IGlzRGF0ZUluc3RhbmNlKG9iajogYW55KTogYm9vbGVhbjtcblxuICAvKipcbiAgICogR2V0cyBkYXRlIGluc3RhbmNlIHRoYXQgaXMgbm90IHZhbGlkLlxuICAgKiBAcmV0dXJucyBBbiBpbnZhbGlkIGRhdGUuXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgaW52YWxpZCgpOiBUO1xuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGdpdmVuIGRhdGUgYXMgSVNPIFN0cmluZy5cbiAgICogQHBhcmFtIGRhdGUgVGhlIGRhdGUgdG8gY29udmVydCB0byBJU08gU3RyaW5nLlxuICAgKi9cbiAgcHVibGljIHRvSXNvODYwMShkYXRlOiBUKTogc3RyaW5nIHtcbiAgICBjb25zdCBwYWQgPSAodmFsdWU6IG51bWJlciwgbGVuZ3RoID0gMik6IHN0cmluZyA9PiBgJHt2YWx1ZX1gLnBhZFN0YXJ0KGxlbmd0aCwgJzAnKTtcbiAgICByZXR1cm4gYCR7cGFkKHRoaXMuZ2V0WWVhcihkYXRlKSwgNCl9LSR7cGFkKHRoaXMuZ2V0TW9udGgoZGF0ZSkpfS0ke3BhZCh0aGlzLmdldERhdGUoZGF0ZSkpfWA7XG4gIH1cblxuICAvKipcbiAgICogR2l2ZW4gYSBwb3RlbnRpYWwgZGF0ZSBvYmplY3QsIHJldHVybnMgdGhhdCBzYW1lIGRhdGUgb2JqZWN0IGlmIGl0IGlzXG4gICAqIGEgdmFsaWQgZGF0ZSwgb3IgYG51bGxgIGlmIGl0J3Mgbm90IGEgdmFsaWQgZGF0ZS5cbiAgICogQHBhcmFtIHZhbHVlIFRoZSBvYmplY3QgdG8gY2hlY2suXG4gICAqIEByZXR1cm5zIEEgZGF0ZSBvciBgbnVsbGAuXG4gICAqL1xuICBwdWJsaWMgZ2V0VmFsaWREYXRlT3JOdWxsKHZhbHVlOiB1bmtub3duKTogVCB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLmlzRGF0ZUluc3RhbmNlKHZhbHVlKSAmJiB0aGlzLmlzVmFsaWQodmFsdWUgYXMgVCkgPyAodmFsdWUgYXMgVCkgOiBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIENhbGN1bGF0ZXMgdGhlIGRheSBvZiB0aGUgd2VlayBvZiB0aGUgZmlyc3QgZGF5IG9mIHRoZSBtb250aCwgYW5kIHRoZW4gaXRzIG9mZnNldCBmcm9tIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAqL1xuICBwdWJsaWMgZ2V0Rmlyc3RXZWVrT2Zmc2V0KGRhdGU6IFQpOiBudW1iZXIge1xuICAgIGNvbnN0IGZpcnN0T2ZNb250aCA9IHRoaXMuY3JlYXRlRGF0ZSh0aGlzLmdldFllYXIoZGF0ZSksIHRoaXMuZ2V0TW9udGgoZGF0ZSksIDEpITtcbiAgICByZXR1cm4gKDcgKyB0aGlzLmdldERheU9mV2VlayhmaXJzdE9mTW9udGgpIC0gdGhpcy5nZXRGaXJzdERheU9mV2VlaygpKSAlIDc7XG4gIH1cblxuICAvKipcbiAgICogQ29tcGFyZXMgdHdvIGRhdGVzLlxuICAgKiBAcGFyYW0gZmlyc3QgVGhlIGZpcnN0IGRhdGUgdG8gY29tcGFyZS5cbiAgICogQHBhcmFtIHNlY29uZCBUaGUgc2Vjb25kIGRhdGUgdG8gY29tcGFyZS5cbiAgICogQHJldHVybnMgMCBpZiB0aGUgZGF0ZXMgYXJlIGVxdWFsLCBhIG51bWJlciBsZXNzIHRoYW4gMCBpZiB0aGUgZmlyc3QgZGF0ZSBpcyBlYXJsaWVyLFxuICAgKiAgICAgYSBudW1iZXIgZ3JlYXRlciB0aGFuIDAgaWYgdGhlIGZpcnN0IGRhdGUgaXMgbGF0ZXIuXG4gICAqL1xuICBwdWJsaWMgY29tcGFyZURhdGUoZmlyc3Q6IFQsIHNlY29uZDogVCk6IG51bWJlciB7XG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMuZ2V0WWVhcihmaXJzdCkgLSB0aGlzLmdldFllYXIoc2Vjb25kKSB8fFxuICAgICAgdGhpcy5nZXRNb250aChmaXJzdCkgLSB0aGlzLmdldE1vbnRoKHNlY29uZCkgfHxcbiAgICAgIHRoaXMuZ2V0RGF0ZShmaXJzdCkgLSB0aGlzLmdldERhdGUoc2Vjb25kKVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIGlmIHR3byBkYXRlcyBhcmUgZXF1YWwuXG4gICAqIEBwYXJhbSBmaXJzdCBUaGUgZmlyc3QgZGF0ZSB0byBjaGVjay5cbiAgICogQHBhcmFtIHNlY29uZCBUaGUgc2Vjb25kIGRhdGUgdG8gY2hlY2suXG4gICAqIEByZXR1cm5zIFdoZXRoZXIgdGhlIHR3byBkYXRlcyBhcmUgZXF1YWwuXG4gICAqICAgICBOdWxsIGRhdGVzIGFyZSBjb25zaWRlcmVkIGVxdWFsIHRvIG90aGVyIG51bGwgZGF0ZXMuXG4gICAqL1xuICBwdWJsaWMgc2FtZURhdGUoZmlyc3Q6IFQgfCBudWxsLCBzZWNvbmQ6IFQgfCBudWxsKTogYm9vbGVhbiB7XG4gICAgaWYgKGZpcnN0ICYmIHNlY29uZCkge1xuICAgICAgY29uc3QgZmlyc3RWYWxpZCA9IHRoaXMuaXNWYWxpZChmaXJzdCk7XG4gICAgICBjb25zdCBzZWNvbmRWYWxpZCA9IHRoaXMuaXNWYWxpZChzZWNvbmQpO1xuICAgICAgaWYgKGZpcnN0VmFsaWQgJiYgc2Vjb25kVmFsaWQpIHtcbiAgICAgICAgcmV0dXJuICF0aGlzLmNvbXBhcmVEYXRlKGZpcnN0LCBzZWNvbmQpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGZpcnN0VmFsaWQgPT0gc2Vjb25kVmFsaWQ7XG4gICAgfVxuICAgIHJldHVybiBmaXJzdCA9PSBzZWNvbmQ7XG4gIH1cblxuICAvKipcbiAgICogQ2xhbXAgdGhlIGdpdmVuIGRhdGUgYmV0d2VlbiBtaW4gYW5kIG1heCBkYXRlcy5cbiAgICogQHBhcmFtIGRhdGUgVGhlIGRhdGUgdG8gY2xhbXAuXG4gICAqIEBwYXJhbSBtaW4gVGhlIG1pbmltdW0gdmFsdWUgdG8gYWxsb3cuIElmIG51bGwgb3Igb21pdHRlZCBubyBtaW4gaXMgZW5mb3JjZWQuXG4gICAqIEBwYXJhbSBtYXggVGhlIG1heGltdW0gdmFsdWUgdG8gYWxsb3cuIElmIG51bGwgb3Igb21pdHRlZCBubyBtYXggaXMgZW5mb3JjZWQuXG4gICAqIEByZXR1cm5zIGBtaW5gIGlmIGBkYXRlYCBpcyBsZXNzIHRoYW4gYG1pbmAsIGBtYXhgIGlmIGRhdGUgaXMgZ3JlYXRlciB0aGFuIGBtYXhgLFxuICAgKiAgICAgb3RoZXJ3aXNlIGBkYXRlYC5cbiAgICovXG4gIHB1YmxpYyBjbGFtcERhdGUoZGF0ZTogVCwgbWluPzogVCB8IG51bGwsIG1heD86IFQgfCBudWxsKTogVCB7XG4gICAgaWYgKG1pbiAmJiB0aGlzLmNvbXBhcmVEYXRlKGRhdGUsIG1pbikgPCAwKSB7XG4gICAgICByZXR1cm4gbWluO1xuICAgIH1cbiAgICBpZiAobWF4ICYmIHRoaXMuY29tcGFyZURhdGUoZGF0ZSwgbWF4KSA+IDApIHtcbiAgICAgIHJldHVybiBtYXg7XG4gICAgfVxuICAgIHJldHVybiBkYXRlO1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7QUFBQSxJQUFhLGNBQ1g7QUFDRixJQUFhLHNCQUFzQjtBQUNuQyxJQUFhLFNBQVM7QUFDdEIsSUFBYSxVQUFVO0FBQ3ZCLElBQWEsWUFBWTtBQUN6QixJQUFhLFdBQVc7QUFDeEIsSUFBYSxTQUFTO0FBQ3RCLElBQWEsV0FBVztBQUN4QixJQUFhLFNBQVM7QUFHdEIsSUFBYSxlQUF1QjtBQUNwQyxJQUFhLGlCQUF5QjtBQUN0QyxJQUFhLGdCQUF3QjtBQUNyQyxJQUFhLGtCQUEwQjtBQUN2QyxJQUFhLGlCQUF5Qjs7Ozs7O0FBT3RDLElBQXNCLGNBQXRCLE1BQWlDOzs7Ozs7O0NBUy9CLFlBQW1CLG1CQUEyQixJQUFFO0VBQzlDLEtBQUssb0JBQW9CO0NBQzNCOzs7Ozs7Ozs7Q0FrRk8sWUFBWSxPQUFvQztFQUNyRCxJQUNFLFNBQVMsUUFDUixLQUFLLGVBQWUsS0FBSyxLQUFLLEtBQUssUUFBUSxLQUE2QixHQUV6RSxPQUFPO0VBRVQsT0FBTyxLQUFLLFFBQU87Q0FDckI7Ozs7O0NBb0NPLE1BQU0sT0FBZ0M7RUFDM0MsSUFBSSxDQUFDLE9BQ0gsT0FBTztFQUdULElBQUksT0FBaUI7RUFDckIsTUFBTSxXQUFXLE1BQU0sTUFBTSxtQkFBbUI7RUFDaEQsSUFBSTtHQUNGLE9BQU8sV0FBVyxLQUFLLFdBQVcsQ0FBQyxTQUFTLElBQUksQ0FBQyxTQUFTLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSTtFQUNoRixRQUFRLENBRVI7RUFDQSxJQUFJLEtBQUssUUFBUSxJQUFJLEdBQ25CLE9BQU87RUFLVCxNQUFNLFFBRmdCLE1BQU0sUUFBUSxPQUFPLEdBQUcsRUFBRSxLQUVHLEdBQWUsTUFBTSxXQUFXO0VBQ25GLElBQ0UsQ0FBQyxTQUNELE1BQU0sVUFBVSxLQUNoQixNQUFNLFVBQVUsS0FDaEIsTUFBTSxNQUFNLE1BQU0sTUFBTSxLQUFBLENBQVMsS0FDakMsQ0FBQyxLQUFLLFFBQVEsS0FBSyxXQUFXLENBQUMsTUFBTSxJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsR0FFOUQsT0FBTztFQUdULElBQUksT0FBTyxDQUFDLE1BQU07RUFFbEIsSUFBSSxPQUFPLFNBQVMsWUFBWSxPQUFPLE9BQU8sUUFBUSxHQUFHO0dBQ3ZELE1BQU0sUUFBUSxLQUFLLFFBQVEsS0FBSyxNQUFLLENBQUUsSUFBSSxNQUFPLEtBQUs7R0FDdkQsT0FBTyxRQUFRLFFBQVEsTUFBTyxPQUFPLE9BQU87RUFDOUM7RUFFQSxPQUFPLEtBQUssV0FBVyxNQUFNLENBQUMsTUFBTSxJQUFJLENBQUMsTUFBTSxFQUFFO0NBQ25EOzs7Ozs7Q0FPTyxPQUNMLE1BQ0EsU0FBaUU7RUFFakUsSUFBSSxDQUFDLEtBQUssUUFBUSxJQUFJLEdBQ3BCLE9BQU87RUFHVCxNQUFNLHdCQUFRLElBQUksS0FBSyxLQUFLLFVBQVUsSUFBSyxJQUFJLFdBQVc7RUFDMUQsTUFBTSxnQkFBZ0IsSUFBSSxLQUFLLGVBQWUsU0FBUztHQUNyRCxLQUFLO0dBQ0wsT0FBTztHQUNQLE1BQU07R0FDUDtFQUVELElBQUksU0FBUyxpQkFBaUIsUUFDNUIsT0FBTyxjQUFjLE9BQU8sS0FBSztFQUduQyxNQUFNLGVBQWUsU0FBUyxnQkFBZ0I7RUFDOUMsSUFBSSxVQUFVLEtBQUssa0JBQWtCLFlBQVksRUFBRSxLQUFLLGFBQWEsSUFBSztFQUMxRSxVQUFVLFFBQVEsT0FBTyxDQUFDLEVBQUUsWUFBVyxJQUFLLFFBQVEsVUFBVSxDQUFDO0VBRy9ELElBQUksaUJBQWlCLFNBQ25CLFVBQVUsUUFBUSxVQUFVLEdBQUcsQ0FBQztFQUdsQyxPQUFPLEdBQUcsUUFBTyxJQUFLLGNBQWMsT0FBTyxLQUFLO0NBQ2xEOzs7OztDQWtCTyxVQUFVLE1BQU87RUFDdEIsTUFBTSxPQUFPLE9BQWUsU0FBUyxNQUFjLEdBQUcsUUFBUSxTQUFTLFFBQVEsR0FBRztFQUNsRixPQUFPLEdBQUcsSUFBSSxLQUFLLFFBQVEsSUFBSSxHQUFHLENBQUMsRUFBQyxHQUFJLElBQUksS0FBSyxTQUFTLElBQUksQ0FBQyxFQUFDLEdBQUksSUFBSSxLQUFLLFFBQVEsSUFBSSxDQUFDO0NBQzVGOzs7Ozs7O0NBUU8sbUJBQW1CLE9BQWM7RUFDdEMsT0FBTyxLQUFLLGVBQWUsS0FBSyxLQUFLLEtBQUssUUFBUSxLQUFVLElBQUssUUFBYztDQUNqRjs7OztDQUtPLG1CQUFtQixNQUFPO0VBQy9CLE1BQU0sZUFBZSxLQUFLLFdBQVcsS0FBSyxRQUFRLElBQUksR0FBRyxLQUFLLFNBQVMsSUFBSSxHQUFHLENBQUM7RUFDL0UsUUFBUSxJQUFJLEtBQUssYUFBYSxZQUFZLElBQUksS0FBSyxrQkFBaUIsS0FBTTtDQUM1RTs7Ozs7Ozs7Q0FTTyxZQUFZLE9BQVUsUUFBUztFQUNwQyxPQUNFLEtBQUssUUFBUSxLQUFLLElBQUksS0FBSyxRQUFRLE1BQU0sS0FDekMsS0FBSyxTQUFTLEtBQUssSUFBSSxLQUFLLFNBQVMsTUFBTSxLQUMzQyxLQUFLLFFBQVEsS0FBSyxJQUFJLEtBQUssUUFBUSxNQUFNO0NBRTdDOzs7Ozs7OztDQVNPLFNBQVMsT0FBaUIsUUFBZ0I7RUFDL0MsSUFBSSxTQUFTLFFBQVE7R0FDbkIsTUFBTSxhQUFhLEtBQUssUUFBUSxLQUFLO0dBQ3JDLE1BQU0sY0FBYyxLQUFLLFFBQVEsTUFBTTtHQUN2QyxJQUFJLGNBQWMsYUFDaEIsT0FBTyxDQUFDLEtBQUssWUFBWSxPQUFPLE1BQU07R0FFeEMsT0FBTyxjQUFjO0VBQ3ZCO0VBQ0EsT0FBTyxTQUFTO0NBQ2xCOzs7Ozs7Ozs7Q0FVTyxVQUFVLE1BQVMsS0FBZ0IsS0FBYztFQUN0RCxJQUFJLE9BQU8sS0FBSyxZQUFZLE1BQU0sR0FBRyxJQUFJLEdBQ3ZDLE9BQU87RUFFVCxJQUFJLE9BQU8sS0FBSyxZQUFZLE1BQU0sR0FBRyxJQUFJLEdBQ3ZDLE9BQU87RUFFVCxPQUFPO0NBQ1QifQ==
@@ -141,4 +141,4 @@ var defaultDateAdapter = new NativeDateAdapter();
141
141
  //#endregion
142
142
  export { NativeDateAdapter, defaultDateAdapter };
143
143
 
144
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF0aXZlLWRhdGUtYWRhcHRlci5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvY29yZS9kYXRldGltZS9uYXRpdmUtZGF0ZS1hZGFwdGVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNiYkxhbmd1YWdlQ29udHJvbGxlciB9IGZyb20gJy4uL2NvbnRyb2xsZXJzLnRzJztcblxuaW1wb3J0IHsgRGF0ZUFkYXB0ZXIgfSBmcm9tICcuL2RhdGUtYWRhcHRlci50cyc7XG5cbi8qKlxuICogTWF0Y2hlcyBzdHJpbmdzIHRoYXQgaGF2ZSB0aGUgZm9ybSBvZiBhIHZhbGlkIFJGQyAzMzM5IHN0cmluZ1xuICogKGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmMzMzM5KS4gTm90ZSB0aGF0IHRoZSBzdHJpbmcgbWF5IG5vdCBhY3R1YWxseSBiZSBhIHZhbGlkIGRhdGVcbiAqIGJlY2F1c2UgdGhlIHJlZ2V4IHdpbGwgbWF0Y2ggc3RyaW5ncyBhbmQgd2l0aG91dCBvZiBib3VuZHMgbW9udGgsIGRhdGUsIGV0Yy5cbiAqL1xuY29uc3QgSVNPXzg2MDFfUkVHRVggPVxuICAvXlxcZHs0fS1cXGR7Mn0tXFxkezJ9KD86VFxcZHsyfTpcXGR7Mn06XFxkezJ9KD86XFwuXFxkKyk/KD86WnwoPzooPzpcXCt8LSlcXGR7Mn06XFxkezJ9KSk/KT8kLztcblxuZXhwb3J0IGNsYXNzIE5hdGl2ZURhdGVBZGFwdGVyIGV4dGVuZHMgRGF0ZUFkYXB0ZXI8RGF0ZT4ge1xuICAvKiogR2V0cyB0aGUgeWVhciBvZiB0aGUgaW5wdXQgZGF0ZS4gKi9cbiAgcHVibGljIGdldFllYXIoZGF0ZTogRGF0ZSk6IG51bWJlciB7XG4gICAgcmV0dXJuIGRhdGUuZ2V0RnVsbFllYXIoKTtcbiAgfVxuXG4gIC8qKiBHZXRzIHRoZSBtb250aCBvZiB0aGUgaW5wdXQgZGF0ZS4gKi9cbiAgcHVibGljIGdldE1vbnRoKGRhdGU6IERhdGUpOiBudW1iZXIge1xuICAgIHJldHVybiBkYXRlLmdldE1vbnRoKCkgKyAxO1xuICB9XG5cbiAgLyoqIEdldHMgdGhlIGRheSBvZiB0aGUgaW5wdXQgZGF0ZS4gKi9cbiAgcHVibGljIGdldERhdGUoZGF0ZTogRGF0ZSk6IG51bWJlciB7XG4gICAgcmV0dXJuIGRhdGUuZ2V0RGF0ZSgpO1xuICB9XG5cbiAgLyoqIEdldHMgdGhlIGRheSBvZiB0aGUgd2VlayBvZiB0aGUgaW5wdXQgZGF0ZS4gKi9cbiAgcHVibGljIGdldERheU9mV2VlayhkYXRlOiBEYXRlKTogbnVtYmVyIHtcbiAgICByZXR1cm4gZGF0ZS5nZXREYXkoKTtcbiAgfVxuXG4gIC8qKiBHZXRzIHRoZSBkYXRlIGluIHRoZSBsb2NhbCBmb3JtYXQuICovXG4gIHB1YmxpYyBnZXRBY2Nlc3NpYmlsaXR5Rm9ybWF0RGF0ZShkYXRlOiBEYXRlIHwgc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCBvcHRpb25zOiBJbnRsLkRhdGVUaW1lRm9ybWF0T3B0aW9ucyA9IHtcbiAgICAgIHllYXI6ICdudW1lcmljJyxcbiAgICAgIG1vbnRoOiAnbG9uZycsXG4gICAgICBkYXk6ICdudW1lcmljJyxcbiAgICB9O1xuICAgIHJldHVybiBuZXcgSW50bC5EYXRlVGltZUZvcm1hdChTYmJMYW5ndWFnZUNvbnRyb2xsZXIuY3VycmVudCwgb3B0aW9ucykuZm9ybWF0KG5ldyBEYXRlKGRhdGUpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGFuIGFycmF5IG9mIHN0cmluZ3Mgd2l0aCBsZW5ndGggPSAxMiwgZmlsbGVkIHdpdGggdGhlIG5hbWUgb2YgdGhlIG1vbnRocyBzdGFydGluZyBmcm9tIEphbnVhcnksIGluIHRoZSBkb2N1bWVudCBsYW5ndWFnZS5cbiAgICogQHBhcmFtIHN0eWxlIFNlZSBgbW9udGhgIGluIGBEYXRlVGltZUZvcm1hdE9wdGlvbnNgOiBgbG9uZ2AgZm9yIGZ1bGwgbmFtZSwgYHNob3J0YCBmb3Igc2hvcnQgbmFtZSwgYG5hcnJvd2AgZm9yIHNpbmdsZSBsZXR0ZXIsXG4gICAqIEUuZy4sIHdpdGggSmFudWFyeSBpbiBlbi1nYjogYGxvbmdgIHJldHVybnMgXCJKYW51YXJ5XCIsIGBzaG9ydGAgcmV0dXJucyBcIkphblwiLCBgbmFycm93YCByZXR1cm5zIFwiSlwiLlxuICAgKi9cbiAgcHVibGljIGdldE1vbnRoTmFtZXMoc3R5bGU6ICdsb25nJyB8ICdzaG9ydCcgfCAnbmFycm93Jyk6IHN0cmluZ1tdIHtcbiAgICBjb25zdCBmb3JtYXR0ZXIgPSBuZXcgSW50bC5EYXRlVGltZUZvcm1hdChTYmJMYW5ndWFnZUNvbnRyb2xsZXIuY3VycmVudCwgeyBtb250aDogc3R5bGUgfSk7XG4gICAgcmV0dXJuIHRoaXMuX3JhbmdlKDEyLCAoaSkgPT4gZm9ybWF0dGVyLmZvcm1hdChuZXcgRGF0ZSgyMDE3LCBpLCAxKSkpO1xuICB9XG5cbiAgLyoqIENyZWF0ZXMgYSBzdHJpbmcgYXJyYXkgd2l0aCBsZW5ndGggPSAzMSwgZmlsbGVkIHdpdGggdGhlIGRheXMgaW4gYSBtb250aCwgc3RhcnRpbmcgZnJvbSAxLiAqL1xuICBwdWJsaWMgZ2V0RGF0ZU5hbWVzKCk6IHN0cmluZ1tdIHtcbiAgICBjb25zdCBmb3JtYXR0ZXIgPSBuZXcgSW50bC5EYXRlVGltZUZvcm1hdChTYmJMYW5ndWFnZUNvbnRyb2xsZXIuY3VycmVudCwgeyBkYXk6ICdudW1lcmljJyB9KTtcbiAgICByZXR1cm4gdGhpcy5fcmFuZ2UoMzEsIChpKSA9PiBmb3JtYXR0ZXIuZm9ybWF0KG5ldyBEYXRlKDIwMTcsIDAsIGkgKyAxKSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBzdHJpbmcgYXJyYXkgd2l0aCBsZW5ndGggPSA3LCBmaWxsZWQgd2l0aCB0aGUgbmFtZSBvZiB0aGUgZGF5cyBpbiBhIHdlZWsgc3RhcnRpbmcgZnJvbSBTdW5kYXksIGluIHRoZSBkb2N1bWVudCBsYW5ndWFnZS5cbiAgICogQHBhcmFtIHN0eWxlIFNlZSBgd2Vla2RheWAgaW4gYERhdGVUaW1lRm9ybWF0T3B0aW9uc2AgLSAnbG9uZycgZm9yIGZ1bGwgbmFtZSwgJ3Nob3J0JyBmb3Igc2hvcnQgbmFtZSwgJ25hcnJvdycgZm9yIHNpbmdsZSBsZXR0ZXI7XG4gICAqIEUuZy4sIHdpdGggTW9uZGF5IGluIGVuLWdiOiBgbG9uZ2AgcmV0dXJucyBcIk1vbmRheVwiLCBgc2hvcnRgIHJldHVybnMgXCJNb25cIiwgYG5hcnJvd2AgcmV0dXJucyBcIk1cIi5cbiAgICovXG4gIHB1YmxpYyBnZXREYXlPZldlZWtOYW1lcyhzdHlsZTogJ2xvbmcnIHwgJ3Nob3J0JyB8ICduYXJyb3cnKTogc3RyaW5nW10ge1xuICAgIGNvbnN0IGZvcm1hdHRlciA9IG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KFNiYkxhbmd1YWdlQ29udHJvbGxlci5jdXJyZW50LCB7IHdlZWtkYXk6IHN0eWxlIH0pO1xuICAgIHJldHVybiB0aGlzLl9yYW5nZSg3LCAoaSkgPT4gZm9ybWF0dGVyLmZvcm1hdChuZXcgRGF0ZSgyMDE3LCAwLCBpICsgMSkpKTtcbiAgfVxuXG4gIC8qKiBEZWZpbmVzIHdoaWNoIGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsgKDA6IHN1bmRheTsgMTogbW9uZGF5OyBldGMuKS4gKi9cbiAgcHVibGljIGdldEZpcnN0RGF5T2ZXZWVrKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIDE7XG4gIH1cblxuICAvKiogQ2FsY3VsYXRlcyB0aGUgbnVtYmVyIG9mIGRheXMgaW4gYSBtb250aCBnaXZlbiB0aGUgeWVhciBhbmQgdGhlIG1vbnRoLiAqL1xuICBwdWJsaWMgZ2V0TnVtRGF5c0luTW9udGgoZGF0ZTogRGF0ZSk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0RGF0ZSh0aGlzLl9jcmVhdGVEYXRlV2l0aE92ZXJmbG93KHRoaXMuZ2V0WWVhcihkYXRlKSwgdGhpcy5nZXRNb250aChkYXRlKSwgMCkpO1xuICB9XG5cbiAgLyoqIENyZWF0ZXMgdG9kYXkncyBkYXRlLiAqL1xuICBwdWJsaWMgdG9kYXkoKTogRGF0ZSB7XG4gICAgcmV0dXJuIG5ldyBEYXRlKG5ldyBEYXRlKCkuc2V0SG91cnMoMCwgMCwgMCwgMCkpO1xuICB9XG5cbiAgLyoqIENyZWF0ZXMgYSBuZXcgZGF0ZSwgZ2l2ZW4gZGF5LCBtb250aCBhbmQgeWVhcjsgdGhlIG1ldGhvZCBkb2Vzbid0IGFsbG93IGRhdGUncyBvdmVyZmxvdy4gKi9cbiAgcHVibGljIGNyZWF0ZURhdGUoeWVhcjogbnVtYmVyLCBtb250aDogbnVtYmVyLCBkYXk6IG51bWJlcik6IERhdGUge1xuICAgIC8vIENoZWNrIGZvciBpbnZhbGlkIG1vbnRoIGFuZCBkYXRlIChleGNlcHQgdXBwZXIgYm91bmQgb24gZGF0ZSB3aGljaCB3ZSBoYXZlIHRvIGNoZWNrIGFmdGVyIGNyZWF0aW5nIHRoZSBEYXRlKS5cbiAgICBpZiAobW9udGggPCAxIHx8IG1vbnRoID4gMTIpIHtcbiAgICAgIHRocm93IEVycm9yKGBJbnZhbGlkIG1vbnRoIFwiJHttb250aH1cIi4gTW9udGggaGFzIHRvIGJlIGJldHdlZW4gMSBhbmQgMTIuYCk7XG4gICAgfSBlbHNlIGlmIChkYXkgPCAxKSB7XG4gICAgICB0aHJvdyBFcnJvcihgSW52YWxpZCBkYXkgXCIke2RheX1cIi4gRGF5IGhhcyB0byBiZSBncmVhdGVyIHRoYW4gMC5gKTtcbiAgICB9XG5cbiAgICBjb25zdCByZXN1bHQgPSB0aGlzLl9jcmVhdGVEYXRlV2l0aE92ZXJmbG93KHllYXIsIG1vbnRoIC0gMSwgZGF5KTtcbiAgICAvLyBDaGVjayB0aGF0IHRoZSBkYXRlIHdhc24ndCBhYm92ZSB0aGUgdXBwZXIgYm91bmQgZm9yIHRoZSBtb250aCwgY2F1c2luZyB0aGUgbW9udGggdG8gb3ZlcmZsb3dcbiAgICBpZiAocmVzdWx0LmdldE1vbnRoKCkgKyAxICE9PSBtb250aCkge1xuICAgICAgdGhyb3cgRXJyb3IoYEludmFsaWQgZGF5IFwiJHtkYXl9XCIgZm9yIG1vbnRoIFwiJHttb250aH1cIi5gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgLyoqIENoZWNrcyB3aGV0aGVyIHRoZSBnaXZlbiBgb2JqYCBpcyBhIERhdGUuICovXG4gIHB1YmxpYyBpc0RhdGVJbnN0YW5jZShvYmo6IGFueSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBvYmogaW5zdGFuY2VvZiBEYXRlO1xuICB9XG5cbiAgLyoqIENoZWNrcyB3aGV0aGVyIHRoZSBnaXZlbiBgZGF0ZWAgaXMgYSB2YWxpZCBEYXRlLiAqL1xuICBwdWJsaWMgaXNWYWxpZChkYXRlOiBEYXRlIHwgbnVsbCB8IHVuZGVmaW5lZCk6IGRhdGUgaXMgRGF0ZSB7XG4gICAgcmV0dXJuICEhZGF0ZSAmJiAhaXNOYU4oZGF0ZS52YWx1ZU9mKCkpO1xuICB9XG5cbiAgLyoqIENyZWF0ZXMgYSBuZXcgZGF0ZSBieSBjbG9uaW5nIHRoZSBnaXZlbiBvbmUuICovXG4gIHB1YmxpYyBjbG9uZShkYXRlOiBEYXRlKTogRGF0ZSB7XG4gICAgcmV0dXJuIG5ldyBEYXRlKGRhdGUudmFsdWVPZigpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IGRhdGUgYWRkaW5nIHRoZSBudW1iZXIgb2YgcHJvdmlkZWQgYHllYXJzYCB0byB0aGUgcHJvdmlkZWQgYGRhdGVgLlxuICAgKiBAcGFyYW0gZGF0ZSBUaGUgc3RhcnRpbmcgZGF0ZS5cbiAgICogQHBhcmFtIHllYXJzIFRoZSBudW1iZXIgb2YgeWVhcnMgdG8gYWRkLlxuICAgKi9cbiAgcHVibGljIGFkZENhbGVuZGFyWWVhcnMoZGF0ZTogRGF0ZSwgeWVhcnM6IG51bWJlcik6IERhdGUge1xuICAgIHJldHVybiB0aGlzLmFkZENhbGVuZGFyTW9udGhzKGRhdGUsIHllYXJzICogMTIpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgZGF0ZSBhZGRpbmcgdGhlIG51bWJlciBvZiBwcm92aWRlZCBgbW9udGhzYCB0byB0aGUgcHJvdmlkZWQgYGRhdGVgLlxuICAgKiBJZiB0aGUgY2FsY3VsYXRlZCBtb250aCBoYXMgZmV3ZXIgZGF5cyB0aGFuIHRoZSBvcmlnaW5hbCBvbmUsIHRoZSBkYXRlIGlzIHNldCB0byB0aGUgbGFzdCBkYXkgb2YgdGhlIG1vbnRoLlxuICAgKiBFLmcuLCB3aXRoIGBkYXRlYCA9IG5ldyBEYXRlKDIwMjIsIDAsIDMxKSBhbmQgYG1vbnRoc2AgPSAxLCBpdCByZXR1cm5zIG5ldyBEYXRlKDIwMjIsIDEsIDI4KS5cbiAgICovXG4gIHB1YmxpYyBhZGRDYWxlbmRhck1vbnRocyhkYXRlOiBEYXRlLCBtb250aHM6IG51bWJlcik6IERhdGUge1xuICAgIGNvbnN0IHRhcmdldE1vbnRoID0gZGF0ZS5nZXRNb250aCgpICsgbW9udGhzO1xuICAgIGNvbnN0IGRhdGVXaXRoQ29ycmVjdE1vbnRoID0gbmV3IERhdGUoZGF0ZS5nZXRGdWxsWWVhcigpLCB0YXJnZXRNb250aCwgMSwgMCwgMCwgMCwgMCk7XG4gICAgY29uc3QgZGF5c0luTW9udGggPSB0aGlzLmdldE51bURheXNJbk1vbnRoKGRhdGVXaXRoQ29ycmVjdE1vbnRoKTtcbiAgICAvLyBBZGFwdCB0aGUgbGFzdCBkYXkgb2YgbW9udGggZm9yIHNob3J0ZXIgbW9udGhzXG4gICAgcmV0dXJuIG5ldyBEYXRlKHRoaXMuY2xvbmUoZGF0ZSkuc2V0TW9udGgodGFyZ2V0TW9udGgsIE1hdGgubWluKGRheXNJbk1vbnRoLCBkYXRlLmdldERhdGUoKSkpKTtcbiAgfVxuXG4gIC8qKiBDcmVhdGVzIGEgbmV3IGRhdGUgYnkgYWRkaW5nIHRoZSBudW1iZXIgb2YgcHJvdmlkZWQgYGRheXNgIHRvIHRoZSBwcm92aWRlZCBgZGF0ZWAuICovXG4gIHB1YmxpYyBhZGRDYWxlbmRhckRheXMoZGF0ZTogRGF0ZSwgZGF5czogbnVtYmVyKTogRGF0ZSB7XG4gICAgY29uc3QgdGFyZ2V0RGF5ID0gZGF0ZS5nZXREYXRlKCkgKyBkYXlzO1xuICAgIHJldHVybiBuZXcgRGF0ZShkYXRlLmdldEZ1bGxZZWFyKCksIGRhdGUuZ2V0TW9udGgoKSwgdGFyZ2V0RGF5LCAwLCAwLCAwLCAwKTtcbiAgfVxuXG4gIC8qKiBDcmVhdGVzIGEgRGF0ZSBmcm9tIGEgdmFsaWQgaW5wdXQgKERhdGUgb3IgSVNPIHN0cmluZykuICovXG4gIHB1YmxpYyBvdmVycmlkZSBkZXNlcmlhbGl6ZShkYXRlOiBEYXRlIHwgc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCk6IERhdGUgfCBudWxsIHtcbiAgICBpZiAodHlwZW9mIGRhdGUgPT09ICdzdHJpbmcnKSB7XG4gICAgICBpZiAoIWRhdGUpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9IGVsc2UgaWYgKElTT184NjAxX1JFR0VYLnRlc3QoZGF0ZSkpIHtcbiAgICAgICAgLy8gVGhlIGBEYXRlYCBjb25zdHJ1Y3RvciBhY2NlcHRzIGZvcm1hdHMgb3RoZXIgdGhhbiBJU08gODYwMSwgc28gd2UgbmVlZCB0byBtYWtlIHN1cmUgdGhlXG4gICAgICAgIC8vIHN0cmluZyBpcyB0aGUgcmlnaHQgZm9ybWF0IGZpcnN0LlxuICAgICAgICByZXR1cm4gdGhpcy5nZXRWYWxpZERhdGVPck51bGwobmV3IERhdGUoZGF0ZS5pbmNsdWRlcygnVCcpID8gZGF0ZSA6IGRhdGUgKyAnVDAwOjAwOjAwJykpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gc3VwZXIuZGVzZXJpYWxpemUoZGF0ZSk7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgaW52YWxpZCgpOiBEYXRlIHtcbiAgICByZXR1cm4gbmV3IERhdGUoTmFOKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGFuIGFycmF5IHdpdGggdGhlIGdpdmVuIGxlbmd0aCBhbmQgZmlsbHMgaXQgYnkgbWFwcGluZyB3aXRoIHRoZSBwcm92aWRlZCBmdW5jdGlvbi5cbiAgICogQHBhcmFtIGxlbmd0aCBUaGUgbGVuZ3RoIG9mIHRoZSBhcnJheSB0byBiZSBjcmVhdGVkLlxuICAgKiBAcGFyYW0gdmFsdWVGdW5jdGlvbiBUaGUgZnVuY3Rpb24gb2YgYXJyYXkncyBpbmRleCB1c2VkIHRvIGZpbGwgdGhlIGFycmF5LlxuICAgKi9cbiAgcHJpdmF0ZSBfcmFuZ2U8VD4obGVuZ3RoOiBudW1iZXIsIHZhbHVlRnVuY3Rpb246IChpbmRleDogbnVtYmVyKSA9PiBUKTogVFtdIHtcbiAgICByZXR1cm4gQXJyYXkuZnJvbSh7IGxlbmd0aCB9KS5tYXAoKF8sIGkpID0+IHZhbHVlRnVuY3Rpb24oaSkpO1xuICB9XG5cbiAgLyoqIENyZWF0ZXMgYSBkYXRlIGJ1dCBhbGxvd3MgdGhlIG1vbnRoIGFuZCBkYXRlIHRvIG92ZXJmbG93LiAqL1xuICBwcml2YXRlIF9jcmVhdGVEYXRlV2l0aE92ZXJmbG93KHllYXI6IG51bWJlciwgbW9udGg6IG51bWJlciwgZGF0ZTogbnVtYmVyKTogRGF0ZSB7XG4gICAgY29uc3QgcmVzdWx0ID0gbmV3IERhdGUoeWVhciwgbW9udGgsIGRhdGUpO1xuICAgIC8vIFdlIG5lZWQgdG8gY29ycmVjdCBmb3IgdGhlIGZhY3QgdGhhdCBKUyBuYXRpdmUgRGF0ZSB0cmVhdHMgeWVhcnMgaW4gcmFuZ2UgWzAsIDk5XSBhc1xuICAgIC8vIGFiYnJldmlhdGlvbnMgZm9yIDE5eHguXG4gICAgaWYgKHllYXIgPj0gMCAmJiB5ZWFyIDwgMTAwKSB7XG4gICAgICByZXN1bHQuc2V0RnVsbFllYXIodGhpcy5nZXRZZWFyKHJlc3VsdCkgLSAxOTAwKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxufVxuXG5leHBvcnQgY29uc3QgZGVmYXVsdERhdGVBZGFwdGVyID0gbmV3IE5hdGl2ZURhdGVBZGFwdGVyKCk7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBU0EsSUFBTSxpQkFDSjtBQUVGLElBQWEsb0JBQWIsY0FBdUMsWUFBaUI7O0NBRS9DLFFBQVEsTUFBVTtFQUN2QixPQUFPLEtBQUssYUFBYTs7O0NBSXBCLFNBQVMsTUFBVTtFQUN4QixPQUFPLEtBQUssVUFBVSxHQUFHOzs7Q0FJcEIsUUFBUSxNQUFVO0VBQ3ZCLE9BQU8sS0FBSyxTQUFT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
144
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF0aXZlLWRhdGUtYWRhcHRlci5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvY29yZS9kYXRldGltZS9uYXRpdmUtZGF0ZS1hZGFwdGVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNiYkxhbmd1YWdlQ29udHJvbGxlciB9IGZyb20gJy4uL2NvbnRyb2xsZXJzLnRzJztcblxuaW1wb3J0IHsgRGF0ZUFkYXB0ZXIgfSBmcm9tICcuL2RhdGUtYWRhcHRlci50cyc7XG5cbi8qKlxuICogTWF0Y2hlcyBzdHJpbmdzIHRoYXQgaGF2ZSB0aGUgZm9ybSBvZiBhIHZhbGlkIFJGQyAzMzM5IHN0cmluZ1xuICogKGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmMzMzM5KS4gTm90ZSB0aGF0IHRoZSBzdHJpbmcgbWF5IG5vdCBhY3R1YWxseSBiZSBhIHZhbGlkIGRhdGVcbiAqIGJlY2F1c2UgdGhlIHJlZ2V4IHdpbGwgbWF0Y2ggc3RyaW5ncyBhbmQgd2l0aG91dCBvZiBib3VuZHMgbW9udGgsIGRhdGUsIGV0Yy5cbiAqL1xuY29uc3QgSVNPXzg2MDFfUkVHRVggPVxuICAvXlxcZHs0fS1cXGR7Mn0tXFxkezJ9KD86VFxcZHsyfTpcXGR7Mn06XFxkezJ9KD86XFwuXFxkKyk/KD86WnwoPzooPzpcXCt8LSlcXGR7Mn06XFxkezJ9KSk/KT8kLztcblxuZXhwb3J0IGNsYXNzIE5hdGl2ZURhdGVBZGFwdGVyIGV4dGVuZHMgRGF0ZUFkYXB0ZXI8RGF0ZT4ge1xuICAvKiogR2V0cyB0aGUgeWVhciBvZiB0aGUgaW5wdXQgZGF0ZS4gKi9cbiAgcHVibGljIGdldFllYXIoZGF0ZTogRGF0ZSk6IG51bWJlciB7XG4gICAgcmV0dXJuIGRhdGUuZ2V0RnVsbFllYXIoKTtcbiAgfVxuXG4gIC8qKiBHZXRzIHRoZSBtb250aCBvZiB0aGUgaW5wdXQgZGF0ZS4gKi9cbiAgcHVibGljIGdldE1vbnRoKGRhdGU6IERhdGUpOiBudW1iZXIge1xuICAgIHJldHVybiBkYXRlLmdldE1vbnRoKCkgKyAxO1xuICB9XG5cbiAgLyoqIEdldHMgdGhlIGRheSBvZiB0aGUgaW5wdXQgZGF0ZS4gKi9cbiAgcHVibGljIGdldERhdGUoZGF0ZTogRGF0ZSk6IG51bWJlciB7XG4gICAgcmV0dXJuIGRhdGUuZ2V0RGF0ZSgpO1xuICB9XG5cbiAgLyoqIEdldHMgdGhlIGRheSBvZiB0aGUgd2VlayBvZiB0aGUgaW5wdXQgZGF0ZS4gKi9cbiAgcHVibGljIGdldERheU9mV2VlayhkYXRlOiBEYXRlKTogbnVtYmVyIHtcbiAgICByZXR1cm4gZGF0ZS5nZXREYXkoKTtcbiAgfVxuXG4gIC8qKiBHZXRzIHRoZSBkYXRlIGluIHRoZSBsb2NhbCBmb3JtYXQuICovXG4gIHB1YmxpYyBnZXRBY2Nlc3NpYmlsaXR5Rm9ybWF0RGF0ZShkYXRlOiBEYXRlIHwgc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCBvcHRpb25zOiBJbnRsLkRhdGVUaW1lRm9ybWF0T3B0aW9ucyA9IHtcbiAgICAgIHllYXI6ICdudW1lcmljJyxcbiAgICAgIG1vbnRoOiAnbG9uZycsXG4gICAgICBkYXk6ICdudW1lcmljJyxcbiAgICB9O1xuICAgIHJldHVybiBuZXcgSW50bC5EYXRlVGltZUZvcm1hdChTYmJMYW5ndWFnZUNvbnRyb2xsZXIuY3VycmVudCwgb3B0aW9ucykuZm9ybWF0KG5ldyBEYXRlKGRhdGUpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGFuIGFycmF5IG9mIHN0cmluZ3Mgd2l0aCBsZW5ndGggPSAxMiwgZmlsbGVkIHdpdGggdGhlIG5hbWUgb2YgdGhlIG1vbnRocyBzdGFydGluZyBmcm9tIEphbnVhcnksIGluIHRoZSBkb2N1bWVudCBsYW5ndWFnZS5cbiAgICogQHBhcmFtIHN0eWxlIFNlZSBgbW9udGhgIGluIGBEYXRlVGltZUZvcm1hdE9wdGlvbnNgOiBgbG9uZ2AgZm9yIGZ1bGwgbmFtZSwgYHNob3J0YCBmb3Igc2hvcnQgbmFtZSwgYG5hcnJvd2AgZm9yIHNpbmdsZSBsZXR0ZXIsXG4gICAqIEUuZy4sIHdpdGggSmFudWFyeSBpbiBlbi1nYjogYGxvbmdgIHJldHVybnMgXCJKYW51YXJ5XCIsIGBzaG9ydGAgcmV0dXJucyBcIkphblwiLCBgbmFycm93YCByZXR1cm5zIFwiSlwiLlxuICAgKi9cbiAgcHVibGljIGdldE1vbnRoTmFtZXMoc3R5bGU6ICdsb25nJyB8ICdzaG9ydCcgfCAnbmFycm93Jyk6IHN0cmluZ1tdIHtcbiAgICBjb25zdCBmb3JtYXR0ZXIgPSBuZXcgSW50bC5EYXRlVGltZUZvcm1hdChTYmJMYW5ndWFnZUNvbnRyb2xsZXIuY3VycmVudCwgeyBtb250aDogc3R5bGUgfSk7XG4gICAgcmV0dXJuIHRoaXMuX3JhbmdlKDEyLCAoaSkgPT4gZm9ybWF0dGVyLmZvcm1hdChuZXcgRGF0ZSgyMDE3LCBpLCAxKSkpO1xuICB9XG5cbiAgLyoqIENyZWF0ZXMgYSBzdHJpbmcgYXJyYXkgd2l0aCBsZW5ndGggPSAzMSwgZmlsbGVkIHdpdGggdGhlIGRheXMgaW4gYSBtb250aCwgc3RhcnRpbmcgZnJvbSAxLiAqL1xuICBwdWJsaWMgZ2V0RGF0ZU5hbWVzKCk6IHN0cmluZ1tdIHtcbiAgICBjb25zdCBmb3JtYXR0ZXIgPSBuZXcgSW50bC5EYXRlVGltZUZvcm1hdChTYmJMYW5ndWFnZUNvbnRyb2xsZXIuY3VycmVudCwgeyBkYXk6ICdudW1lcmljJyB9KTtcbiAgICByZXR1cm4gdGhpcy5fcmFuZ2UoMzEsIChpKSA9PiBmb3JtYXR0ZXIuZm9ybWF0KG5ldyBEYXRlKDIwMTcsIDAsIGkgKyAxKSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBzdHJpbmcgYXJyYXkgd2l0aCBsZW5ndGggPSA3LCBmaWxsZWQgd2l0aCB0aGUgbmFtZSBvZiB0aGUgZGF5cyBpbiBhIHdlZWsgc3RhcnRpbmcgZnJvbSBTdW5kYXksIGluIHRoZSBkb2N1bWVudCBsYW5ndWFnZS5cbiAgICogQHBhcmFtIHN0eWxlIFNlZSBgd2Vla2RheWAgaW4gYERhdGVUaW1lRm9ybWF0T3B0aW9uc2AgLSAnbG9uZycgZm9yIGZ1bGwgbmFtZSwgJ3Nob3J0JyBmb3Igc2hvcnQgbmFtZSwgJ25hcnJvdycgZm9yIHNpbmdsZSBsZXR0ZXI7XG4gICAqIEUuZy4sIHdpdGggTW9uZGF5IGluIGVuLWdiOiBgbG9uZ2AgcmV0dXJucyBcIk1vbmRheVwiLCBgc2hvcnRgIHJldHVybnMgXCJNb25cIiwgYG5hcnJvd2AgcmV0dXJucyBcIk1cIi5cbiAgICovXG4gIHB1YmxpYyBnZXREYXlPZldlZWtOYW1lcyhzdHlsZTogJ2xvbmcnIHwgJ3Nob3J0JyB8ICduYXJyb3cnKTogc3RyaW5nW10ge1xuICAgIGNvbnN0IGZvcm1hdHRlciA9IG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KFNiYkxhbmd1YWdlQ29udHJvbGxlci5jdXJyZW50LCB7IHdlZWtkYXk6IHN0eWxlIH0pO1xuICAgIHJldHVybiB0aGlzLl9yYW5nZSg3LCAoaSkgPT4gZm9ybWF0dGVyLmZvcm1hdChuZXcgRGF0ZSgyMDE3LCAwLCBpICsgMSkpKTtcbiAgfVxuXG4gIC8qKiBEZWZpbmVzIHdoaWNoIGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsgKDA6IHN1bmRheTsgMTogbW9uZGF5OyBldGMuKS4gKi9cbiAgcHVibGljIGdldEZpcnN0RGF5T2ZXZWVrKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIDE7XG4gIH1cblxuICAvKiogQ2FsY3VsYXRlcyB0aGUgbnVtYmVyIG9mIGRheXMgaW4gYSBtb250aCBnaXZlbiB0aGUgeWVhciBhbmQgdGhlIG1vbnRoLiAqL1xuICBwdWJsaWMgZ2V0TnVtRGF5c0luTW9udGgoZGF0ZTogRGF0ZSk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0RGF0ZSh0aGlzLl9jcmVhdGVEYXRlV2l0aE92ZXJmbG93KHRoaXMuZ2V0WWVhcihkYXRlKSwgdGhpcy5nZXRNb250aChkYXRlKSwgMCkpO1xuICB9XG5cbiAgLyoqIENyZWF0ZXMgdG9kYXkncyBkYXRlLiAqL1xuICBwdWJsaWMgdG9kYXkoKTogRGF0ZSB7XG4gICAgcmV0dXJuIG5ldyBEYXRlKG5ldyBEYXRlKCkuc2V0SG91cnMoMCwgMCwgMCwgMCkpO1xuICB9XG5cbiAgLyoqIENyZWF0ZXMgYSBuZXcgZGF0ZSwgZ2l2ZW4gZGF5LCBtb250aCBhbmQgeWVhcjsgdGhlIG1ldGhvZCBkb2Vzbid0IGFsbG93IGRhdGUncyBvdmVyZmxvdy4gKi9cbiAgcHVibGljIGNyZWF0ZURhdGUoeWVhcjogbnVtYmVyLCBtb250aDogbnVtYmVyLCBkYXk6IG51bWJlcik6IERhdGUge1xuICAgIC8vIENoZWNrIGZvciBpbnZhbGlkIG1vbnRoIGFuZCBkYXRlIChleGNlcHQgdXBwZXIgYm91bmQgb24gZGF0ZSB3aGljaCB3ZSBoYXZlIHRvIGNoZWNrIGFmdGVyIGNyZWF0aW5nIHRoZSBEYXRlKS5cbiAgICBpZiAobW9udGggPCAxIHx8IG1vbnRoID4gMTIpIHtcbiAgICAgIHRocm93IEVycm9yKGBJbnZhbGlkIG1vbnRoIFwiJHttb250aH1cIi4gTW9udGggaGFzIHRvIGJlIGJldHdlZW4gMSBhbmQgMTIuYCk7XG4gICAgfSBlbHNlIGlmIChkYXkgPCAxKSB7XG4gICAgICB0aHJvdyBFcnJvcihgSW52YWxpZCBkYXkgXCIke2RheX1cIi4gRGF5IGhhcyB0byBiZSBncmVhdGVyIHRoYW4gMC5gKTtcbiAgICB9XG5cbiAgICBjb25zdCByZXN1bHQgPSB0aGlzLl9jcmVhdGVEYXRlV2l0aE92ZXJmbG93KHllYXIsIG1vbnRoIC0gMSwgZGF5KTtcbiAgICAvLyBDaGVjayB0aGF0IHRoZSBkYXRlIHdhc24ndCBhYm92ZSB0aGUgdXBwZXIgYm91bmQgZm9yIHRoZSBtb250aCwgY2F1c2luZyB0aGUgbW9udGggdG8gb3ZlcmZsb3dcbiAgICBpZiAocmVzdWx0LmdldE1vbnRoKCkgKyAxICE9PSBtb250aCkge1xuICAgICAgdGhyb3cgRXJyb3IoYEludmFsaWQgZGF5IFwiJHtkYXl9XCIgZm9yIG1vbnRoIFwiJHttb250aH1cIi5gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgLyoqIENoZWNrcyB3aGV0aGVyIHRoZSBnaXZlbiBgb2JqYCBpcyBhIERhdGUuICovXG4gIHB1YmxpYyBpc0RhdGVJbnN0YW5jZShvYmo6IGFueSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBvYmogaW5zdGFuY2VvZiBEYXRlO1xuICB9XG5cbiAgLyoqIENoZWNrcyB3aGV0aGVyIHRoZSBnaXZlbiBgZGF0ZWAgaXMgYSB2YWxpZCBEYXRlLiAqL1xuICBwdWJsaWMgaXNWYWxpZChkYXRlOiBEYXRlIHwgbnVsbCB8IHVuZGVmaW5lZCk6IGRhdGUgaXMgRGF0ZSB7XG4gICAgcmV0dXJuICEhZGF0ZSAmJiAhaXNOYU4oZGF0ZS52YWx1ZU9mKCkpO1xuICB9XG5cbiAgLyoqIENyZWF0ZXMgYSBuZXcgZGF0ZSBieSBjbG9uaW5nIHRoZSBnaXZlbiBvbmUuICovXG4gIHB1YmxpYyBjbG9uZShkYXRlOiBEYXRlKTogRGF0ZSB7XG4gICAgcmV0dXJuIG5ldyBEYXRlKGRhdGUudmFsdWVPZigpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IGRhdGUgYWRkaW5nIHRoZSBudW1iZXIgb2YgcHJvdmlkZWQgYHllYXJzYCB0byB0aGUgcHJvdmlkZWQgYGRhdGVgLlxuICAgKiBAcGFyYW0gZGF0ZSBUaGUgc3RhcnRpbmcgZGF0ZS5cbiAgICogQHBhcmFtIHllYXJzIFRoZSBudW1iZXIgb2YgeWVhcnMgdG8gYWRkLlxuICAgKi9cbiAgcHVibGljIGFkZENhbGVuZGFyWWVhcnMoZGF0ZTogRGF0ZSwgeWVhcnM6IG51bWJlcik6IERhdGUge1xuICAgIHJldHVybiB0aGlzLmFkZENhbGVuZGFyTW9udGhzKGRhdGUsIHllYXJzICogMTIpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgZGF0ZSBhZGRpbmcgdGhlIG51bWJlciBvZiBwcm92aWRlZCBgbW9udGhzYCB0byB0aGUgcHJvdmlkZWQgYGRhdGVgLlxuICAgKiBJZiB0aGUgY2FsY3VsYXRlZCBtb250aCBoYXMgZmV3ZXIgZGF5cyB0aGFuIHRoZSBvcmlnaW5hbCBvbmUsIHRoZSBkYXRlIGlzIHNldCB0byB0aGUgbGFzdCBkYXkgb2YgdGhlIG1vbnRoLlxuICAgKiBFLmcuLCB3aXRoIGBkYXRlYCA9IG5ldyBEYXRlKDIwMjIsIDAsIDMxKSBhbmQgYG1vbnRoc2AgPSAxLCBpdCByZXR1cm5zIG5ldyBEYXRlKDIwMjIsIDEsIDI4KS5cbiAgICovXG4gIHB1YmxpYyBhZGRDYWxlbmRhck1vbnRocyhkYXRlOiBEYXRlLCBtb250aHM6IG51bWJlcik6IERhdGUge1xuICAgIGNvbnN0IHRhcmdldE1vbnRoID0gZGF0ZS5nZXRNb250aCgpICsgbW9udGhzO1xuICAgIGNvbnN0IGRhdGVXaXRoQ29ycmVjdE1vbnRoID0gbmV3IERhdGUoZGF0ZS5nZXRGdWxsWWVhcigpLCB0YXJnZXRNb250aCwgMSwgMCwgMCwgMCwgMCk7XG4gICAgY29uc3QgZGF5c0luTW9udGggPSB0aGlzLmdldE51bURheXNJbk1vbnRoKGRhdGVXaXRoQ29ycmVjdE1vbnRoKTtcbiAgICAvLyBBZGFwdCB0aGUgbGFzdCBkYXkgb2YgbW9udGggZm9yIHNob3J0ZXIgbW9udGhzXG4gICAgcmV0dXJuIG5ldyBEYXRlKHRoaXMuY2xvbmUoZGF0ZSkuc2V0TW9udGgodGFyZ2V0TW9udGgsIE1hdGgubWluKGRheXNJbk1vbnRoLCBkYXRlLmdldERhdGUoKSkpKTtcbiAgfVxuXG4gIC8qKiBDcmVhdGVzIGEgbmV3IGRhdGUgYnkgYWRkaW5nIHRoZSBudW1iZXIgb2YgcHJvdmlkZWQgYGRheXNgIHRvIHRoZSBwcm92aWRlZCBgZGF0ZWAuICovXG4gIHB1YmxpYyBhZGRDYWxlbmRhckRheXMoZGF0ZTogRGF0ZSwgZGF5czogbnVtYmVyKTogRGF0ZSB7XG4gICAgY29uc3QgdGFyZ2V0RGF5ID0gZGF0ZS5nZXREYXRlKCkgKyBkYXlzO1xuICAgIHJldHVybiBuZXcgRGF0ZShkYXRlLmdldEZ1bGxZZWFyKCksIGRhdGUuZ2V0TW9udGgoKSwgdGFyZ2V0RGF5LCAwLCAwLCAwLCAwKTtcbiAgfVxuXG4gIC8qKiBDcmVhdGVzIGEgRGF0ZSBmcm9tIGEgdmFsaWQgaW5wdXQgKERhdGUgb3IgSVNPIHN0cmluZykuICovXG4gIHB1YmxpYyBvdmVycmlkZSBkZXNlcmlhbGl6ZShkYXRlOiBEYXRlIHwgc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCk6IERhdGUgfCBudWxsIHtcbiAgICBpZiAodHlwZW9mIGRhdGUgPT09ICdzdHJpbmcnKSB7XG4gICAgICBpZiAoIWRhdGUpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9IGVsc2UgaWYgKElTT184NjAxX1JFR0VYLnRlc3QoZGF0ZSkpIHtcbiAgICAgICAgLy8gVGhlIGBEYXRlYCBjb25zdHJ1Y3RvciBhY2NlcHRzIGZvcm1hdHMgb3RoZXIgdGhhbiBJU08gODYwMSwgc28gd2UgbmVlZCB0byBtYWtlIHN1cmUgdGhlXG4gICAgICAgIC8vIHN0cmluZyBpcyB0aGUgcmlnaHQgZm9ybWF0IGZpcnN0LlxuICAgICAgICByZXR1cm4gdGhpcy5nZXRWYWxpZERhdGVPck51bGwobmV3IERhdGUoZGF0ZS5pbmNsdWRlcygnVCcpID8gZGF0ZSA6IGRhdGUgKyAnVDAwOjAwOjAwJykpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gc3VwZXIuZGVzZXJpYWxpemUoZGF0ZSk7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgaW52YWxpZCgpOiBEYXRlIHtcbiAgICByZXR1cm4gbmV3IERhdGUoTmFOKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGFuIGFycmF5IHdpdGggdGhlIGdpdmVuIGxlbmd0aCBhbmQgZmlsbHMgaXQgYnkgbWFwcGluZyB3aXRoIHRoZSBwcm92aWRlZCBmdW5jdGlvbi5cbiAgICogQHBhcmFtIGxlbmd0aCBUaGUgbGVuZ3RoIG9mIHRoZSBhcnJheSB0byBiZSBjcmVhdGVkLlxuICAgKiBAcGFyYW0gdmFsdWVGdW5jdGlvbiBUaGUgZnVuY3Rpb24gb2YgYXJyYXkncyBpbmRleCB1c2VkIHRvIGZpbGwgdGhlIGFycmF5LlxuICAgKi9cbiAgcHJpdmF0ZSBfcmFuZ2U8VD4obGVuZ3RoOiBudW1iZXIsIHZhbHVlRnVuY3Rpb246IChpbmRleDogbnVtYmVyKSA9PiBUKTogVFtdIHtcbiAgICByZXR1cm4gQXJyYXkuZnJvbSh7IGxlbmd0aCB9KS5tYXAoKF8sIGkpID0+IHZhbHVlRnVuY3Rpb24oaSkpO1xuICB9XG5cbiAgLyoqIENyZWF0ZXMgYSBkYXRlIGJ1dCBhbGxvd3MgdGhlIG1vbnRoIGFuZCBkYXRlIHRvIG92ZXJmbG93LiAqL1xuICBwcml2YXRlIF9jcmVhdGVEYXRlV2l0aE92ZXJmbG93KHllYXI6IG51bWJlciwgbW9udGg6IG51bWJlciwgZGF0ZTogbnVtYmVyKTogRGF0ZSB7XG4gICAgY29uc3QgcmVzdWx0ID0gbmV3IERhdGUoeWVhciwgbW9udGgsIGRhdGUpO1xuICAgIC8vIFdlIG5lZWQgdG8gY29ycmVjdCBmb3IgdGhlIGZhY3QgdGhhdCBKUyBuYXRpdmUgRGF0ZSB0cmVhdHMgeWVhcnMgaW4gcmFuZ2UgWzAsIDk5XSBhc1xuICAgIC8vIGFiYnJldmlhdGlvbnMgZm9yIDE5eHguXG4gICAgaWYgKHllYXIgPj0gMCAmJiB5ZWFyIDwgMTAwKSB7XG4gICAgICByZXN1bHQuc2V0RnVsbFllYXIodGhpcy5nZXRZZWFyKHJlc3VsdCkgLSAxOTAwKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxufVxuXG5leHBvcnQgY29uc3QgZGVmYXVsdERhdGVBZGFwdGVyID0gbmV3IE5hdGl2ZURhdGVBZGFwdGVyKCk7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBU0EsSUFBTSxpQkFDSjtBQUVGLElBQWEsb0JBQWIsY0FBdUMsWUFBaUI7O0NBRS9DLFFBQVEsTUFBVTtFQUN2QixPQUFPLEtBQUssWUFBVztDQUN6Qjs7Q0FHTyxTQUFTLE1BQVU7RUFDeEIsT0FBTyxLQUFLLFNBQVEsSUFBSztDQUMzQjs7Q0FHTyxRQUFRLE1BQVU7RUFDdkIsT0FBTyxL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
@@ -161,4 +161,4 @@ var TemporalDateAdapter = class extends DateAdapter {
161
161
  //#endregion
162
162
  export { TemporalDateAdapter };
163
163
 
164
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcG9yYWwtZGF0ZS1hZGFwdGVyLmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb3JlL2RhdGV0aW1lL3RlbXBvcmFsLWRhdGUtYWRhcHRlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLy8gPHJlZmVyZW5jZSB0eXBlcz1cInRlbXBvcmFsLXBvbHlmaWxsL2dsb2JhbFwiIC8+XG5cbmltcG9ydCB7IFNiYkxhbmd1YWdlQ29udHJvbGxlciB9IGZyb20gJy4uL2NvbnRyb2xsZXJzLnRzJztcblxuaW1wb3J0IHsgRGF0ZUFkYXB0ZXIgfSBmcm9tICcuL2RhdGUtYWRhcHRlci50cyc7XG5cbi8qKlxuICogTWF0Y2hlcyBzdHJpbmdzIHRoYXQgaGF2ZSB0aGUgZm9ybSBvZiBhIHZhbGlkIFJGQyAzMzM5IHN0cmluZ1xuICogKGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmMzMzM5KS4gTm90ZSB0aGF0IHRoZSBzdHJpbmcgbWF5IG5vdCBhY3R1YWxseSBiZSBhIHZhbGlkIGRhdGVcbiAqIGJlY2F1c2UgdGhlIHJlZ2V4IHdpbGwgbWF0Y2ggc3RyaW5ncyBhbmQgd2l0aG91dCBvZiBib3VuZHMgbW9udGgsIGRhdGUsIGV0Yy5cbiAqL1xuY29uc3QgSVNPXzg2MDFfUkVHRVggPVxuICAvXlxcZHs0fS1cXGR7Mn0tXFxkezJ9KD86VFxcZHsyfTpcXGR7Mn06XFxkezJ9KD86XFwuXFxkKyk/KD86WnwoPzooPzpcXCt8LSlcXGR7Mn06XFxkezJ9KSk/KT8kLztcblxuZXhwb3J0IGNsYXNzIFRlbXBvcmFsRGF0ZUFkYXB0ZXIgZXh0ZW5kcyBEYXRlQWRhcHRlcjxUZW1wb3JhbC5QbGFpbkRhdGU+IHtcbiAgLyoqXG4gICAqIEBwYXJhbSBjdXRvZmZZZWFyT2Zmc2V0IFRoZSB0aHJlc2hvbGQgb24gd2hldGhlciBhIHR3by1kaWdpdCB5ZWFyXG4gICAqIHNob3VsZCBiZSB0cmVhdGVkIGFzIGJlbG9uZ2luZyB0byAyMDAwIG9yIDE5MDAuIGUuZy4gd2l0aCAxNSAoZGVmYXVsdClcbiAgICogdGhlIGN1cnJlbnQgeWVhciBwbHVzIDE1IHdpbGwgYmUgdHJlYXRlZCBhcyBiZWxvbmdpbmcgdG8gMjAwMCwgYW5kIHRoZSByZXN0IHRvIDE5MDAuXG4gICAqIFNvIGUuZy4gd2l0aCB0aGUgY3VycmVudCB5ZWFyIDIwMjUsIDQwIHdpbGwgYmUgdHJlYXRlZCBhcyAyMDQwLCB3aGlsZSA0MSB3aWxsIGJlIHRyZWF0ZWQgYXMgMTk0MS5cbiAgICovXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihjdXRvZmZZZWFyT2Zmc2V0PzogbnVtYmVyKSB7XG4gICAgc3VwZXIoY3V0b2ZmWWVhck9mZnNldCk7XG4gICAgaWYgKHR5cGVvZiBUZW1wb3JhbCAhPT0gJ29iamVjdCcpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ1RlbXBvcmFsIGlzIG5vdCBhdmFpbGFibGUgaW4gdGhlIGN1cnJlbnQgZW52aXJvbm1lbnQuIFBsZWFzZSBtYWtlIHN1cmUgdG8gaW5jbHVkZSB0aGUgdGVtcG9yYWwgcG9seWZpbGwuJyxcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgLyoqIEdldHMgdGhlIHllYXIgb2YgdGhlIGlucHV0IGRhdGUuICovXG4gIHB1YmxpYyBnZXRZZWFyKGRhdGU6IFRlbXBvcmFsLlBsYWluRGF0ZSk6IG51bWJlciB7XG4gICAgcmV0dXJuIGRhdGUueWVhcjtcbiAgfVxuXG4gIC8qKiBHZXRzIHRoZSBtb250aCBvZiB0aGUgaW5wdXQgZGF0ZS4gKi9cbiAgcHVibGljIGdldE1vbnRoKGRhdGU6IFRlbXBvcmFsLlBsYWluRGF0ZSk6IG51bWJlciB7XG4gICAgcmV0dXJuIGRhdGUubW9udGg7XG4gIH1cblxuICAvKiogR2V0cyB0aGUgZGF5IG9mIHRoZSBpbnB1dCBkYXRlLiAqL1xuICBwdWJsaWMgZ2V0RGF0ZShkYXRlOiBUZW1wb3JhbC5QbGFpbkRhdGUpOiBudW1iZXIge1xuICAgIHJldHVybiBkYXRlLmRheTtcbiAgfVxuXG4gIC8qKiBHZXRzIHRoZSBkYXkgb2YgdGhlIHdlZWsgb2YgdGhlIGlucHV0IGRhdGUuICovXG4gIHB1YmxpYyBnZXREYXlPZldlZWsoZGF0ZTogVGVtcG9yYWwuUGxhaW5EYXRlKTogbnVtYmVyIHtcbiAgICAvLyBPdXIgZXhwZWN0YXRpb24gaXMgMCA9IFN1bmRheSBidXQgVGVtcG9yYWwuUGxhaW5EYXRlLmRheU9mV2VlayByZXR1cm5zIDcgPSBTdW5kYXlcbiAgICAvLyBUT0RPOiBSZW1vdmUgdGhpcyB3aXRoIGEgZnV0dXJlIHJlbGVhc2UuXG4gICAgcmV0dXJuIGRhdGUuZGF5T2ZXZWVrICUgNztcbiAgfVxuXG4gIC8qKiBHZXRzIHRoZSBkYXRlIGluIHRoZSBsb2NhbCBmb3JtYXQuICovXG4gIHB1YmxpYyBnZXRBY2Nlc3NpYmlsaXR5Rm9ybWF0RGF0ZShkYXRlOiBUZW1wb3JhbC5QbGFpbkRhdGUgfCBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IG9wdGlvbnM6IEludGwuRGF0ZVRpbWVGb3JtYXRPcHRpb25zID0ge1xuICAgICAgeWVhcjogJ251bWVyaWMnLFxuICAgICAgbW9udGg6ICdsb25nJyxcbiAgICAgIGRheTogJ251bWVyaWMnLFxuICAgIH07XG4gICAgcmV0dXJuIHRoaXMuZGVzZXJpYWxpemUoZGF0ZSkhLnRvTG9jYWxlU3RyaW5nKFNiYkxhbmd1YWdlQ29udHJvbGxlci5jdXJyZW50LCBvcHRpb25zKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGFuIGFycmF5IG9mIHN0cmluZ3Mgd2l0aCBsZW5ndGggPSAxMiwgZmlsbGVkIHdpdGggdGhlIG5hbWUgb2YgdGhlIG1vbnRocyBzdGFydGluZyBmcm9tIEphbnVhcnksIGluIHRoZSBkb2N1bWVudCBsYW5ndWFnZS5cbiAgICogQHBhcmFtIHN0eWxlIFNlZSBgbW9udGhgIGluIGBEYXRlVGltZUZvcm1hdE9wdGlvbnNgOiBgbG9uZ2AgZm9yIGZ1bGwgbmFtZSwgYHNob3J0YCBmb3Igc2hvcnQgbmFtZSwgYG5hcnJvd2AgZm9yIHNpbmdsZSBsZXR0ZXIsXG4gICAqIEUuZy4sIHdpdGggSmFudWFyeSBpbiBlbi1nYjogYGxvbmdgIHJldHVybnMgXCJKYW51YXJ5XCIsIGBzaG9ydGAgcmV0dXJucyBcIkphblwiLCBgbmFycm93YCByZXR1cm5zIFwiSlwiLlxuICAgKi9cbiAgcHVibGljIGdldE1vbnRoTmFtZXMoc3R5bGU6ICdsb25nJyB8ICdzaG9ydCcgfCAnbmFycm93Jyk6IHN0cmluZ1tdIHtcbiAgICBjb25zdCBmb3JtYXR0ZXIgPSBuZXcgSW50bC5EYXRlVGltZUZvcm1hdChTYmJMYW5ndWFnZUNvbnRyb2xsZXIuY3VycmVudCwgeyBtb250aDogc3R5bGUgfSk7XG4gICAgcmV0dXJuIHRoaXMuX3JhbmdlKDEyLCAoaSkgPT5cbiAgICAgIGZvcm1hdHRlci5mb3JtYXQoVGVtcG9yYWwuUGxhaW5EYXRlLmZyb20oeyB5ZWFyOiAyMDE3LCBtb250aDogaSArIDEsIGRheTogMSB9KSksXG4gICAgKTtcbiAgfVxuXG4gIC8qKiBDcmVhdGVzIGEgc3RyaW5nIGFycmF5IHdpdGggbGVuZ3RoID0gMzEsIGZpbGxlZCB3aXRoIHRoZSBkYXlzIGluIGEgbW9udGgsIHN0YXJ0aW5nIGZyb20gMS4gKi9cbiAgcHVibGljIGdldERhdGVOYW1lcygpOiBzdHJpbmdbXSB7XG4gICAgY29uc3QgZm9ybWF0dGVyID0gbmV3IEludGwuRGF0ZVRpbWVGb3JtYXQoU2JiTGFuZ3VhZ2VDb250cm9sbGVyLmN1cnJlbnQsIHsgZGF5OiAnbnVtZXJpYycgfSk7XG4gICAgcmV0dXJuIHRoaXMuX3JhbmdlKDMxLCAoaSkgPT5cbiAgICAgIGZvcm1hdHRlci5mb3JtYXQoVGVtcG9yYWwuUGxhaW5EYXRlLmZyb20oeyB5ZWFyOiAyMDE3LCBtb250aDogMSwgZGF5OiBpICsgMSB9KSksXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgc3RyaW5nIGFycmF5IHdpdGggbGVuZ3RoID0gNywgZmlsbGVkIHdpdGggdGhlIG5hbWUgb2YgdGhlIGRheXMgaW4gYSB3ZWVrIHN0YXJ0aW5nIGZyb20gU3VuZGF5LCBpbiB0aGUgZG9jdW1lbnQgbGFuZ3VhZ2UuXG4gICAqIEBwYXJhbSBzdHlsZSBTZWUgYHdlZWtkYXlgIGluIGBEYXRlVGltZUZvcm1hdE9wdGlvbnNgIC0gJ2xvbmcnIGZvciBmdWxsIG5hbWUsICdzaG9ydCcgZm9yIHNob3J0IG5hbWUsICduYXJyb3cnIGZvciBzaW5nbGUgbGV0dGVyO1xuICAgKiBFLmcuLCB3aXRoIE1vbmRheSBpbiBlbi1nYjogYGxvbmdgIHJldHVybnMgXCJNb25kYXlcIiwgYHNob3J0YCByZXR1cm5zIFwiTW9uXCIsIGBuYXJyb3dgIHJldHVybnMgXCJNXCIuXG4gICAqL1xuICBwdWJsaWMgZ2V0RGF5T2ZXZWVrTmFtZXMoc3R5bGU6ICdsb25nJyB8ICdzaG9ydCcgfCAnbmFycm93Jyk6IHN0cmluZ1tdIHtcbiAgICBjb25zdCBmb3JtYXR0ZXIgPSBuZXcgSW50bC5EYXRlVGltZUZvcm1hdChTYmJMYW5ndWFnZUNvbnRyb2xsZXIuY3VycmVudCwgeyB3ZWVrZGF5OiBzdHlsZSB9KTtcbiAgICByZXR1cm4gdGhpcy5fcmFuZ2UoNywgKGkpID0+XG4gICAgICBmb3JtYXR0ZXIuZm9ybWF0KFRlbXBvcmFsLlBsYWluRGF0ZS5mcm9tKHsgeWVhcjogMjAxNywgbW9udGg6IDEsIGRheTogaSArIDEgfSkpLFxuICAgICk7XG4gIH1cblxuICAvKiogRGVmaW5lcyB3aGljaCBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrICgwOiBzdW5kYXk7IDE6IG1vbmRheTsgZXRjLikuICovXG4gIHB1YmxpYyBnZXRGaXJzdERheU9mV2VlaygpOiBudW1iZXIge1xuICAgIHJldHVybiAxO1xuICB9XG5cbiAgLyoqIENhbGN1bGF0ZXMgdGhlIG51bWJlciBvZiBkYXlzIGluIGEgbW9udGggZ2l2ZW4gdGhlIHllYXIgYW5kIHRoZSBtb250aC4gKi9cbiAgcHVibGljIGdldE51bURheXNJbk1vbnRoKGRhdGU6IFRlbXBvcmFsLlBsYWluRGF0ZSk6IG51bWJlciB7XG4gICAgcmV0dXJuIGRhdGUuZGF5c0luTW9udGg7XG4gIH1cblxuICAvKiogQ3JlYXRlcyB0b2RheSdzIGRhdGUuICovXG4gIHB1YmxpYyB0b2RheSgpOiBUZW1wb3JhbC5QbGFpbkRhdGUge1xuICAgIHJldHVybiBUZW1wb3JhbC5Ob3cucGxhaW5EYXRlSVNPKCk7XG4gIH1cblxuICAvKiogQ3JlYXRlcyBhIG5ldyBkYXRlLCBnaXZlbiBkYXksIG1vbnRoIGFuZCB5ZWFyOyB0aGUgbWV0aG9kIGRvZXNuJ3QgYWxsb3cgZGF0ZSdzIG92ZXJmbG93LiAqL1xuICBwdWJsaWMgY3JlYXRlRGF0ZSh5ZWFyOiBudW1iZXIsIG1vbnRoOiBudW1iZXIsIGRheTogbnVtYmVyKTogVGVtcG9yYWwuUGxhaW5EYXRlIHtcbiAgICAvLyBDaGVjayBmb3IgaW52YWxpZCBtb250aCBhbmQgZGF0ZSAoZXhjZXB0IHVwcGVyIGJvdW5kIG9uIGRhdGUgd2hpY2ggd2UgaGF2ZSB0byBjaGVjayBhZnRlciBjcmVhdGluZyB0aGUgVGVtcG9yYWwuUGxhaW5EYXRlKS5cbiAgICBpZiAobW9udGggPCAxIHx8IG1vbnRoID4gMTIpIHtcbiAgICAgIHRocm93IEVycm9yKGBJbnZhbGlkIG1vbnRoIFwiJHttb250aH1cIi4gTW9udGggaGFzIHRvIGJlIGJldHdlZW4gMSBhbmQgMTIuYCk7XG4gICAgfSBlbHNlIGlmIChkYXkgPCAxKSB7XG4gICAgICB0aHJvdyBFcnJvcihgSW52YWxpZCBkYXkgXCIke2RheX1cIi4gRGF5IGhhcyB0byBiZSBncmVhdGVyIHRoYW4gMC5gKTtcbiAgICB9XG5cbiAgICB0cnkge1xuICAgICAgcmV0dXJuIFRlbXBvcmFsLlBsYWluRGF0ZS5mcm9tKHsgeWVhciwgbW9udGgsIGRheTogZGF5IH0sIHsgb3ZlcmZsb3c6ICdyZWplY3QnIH0pO1xuICAgIH0gY2F0Y2gge1xuICAgICAgdGhyb3cgRXJyb3IoYEludmFsaWQgZGF0ZSBcIiR7ZGF5fVwiIGZvciBtb250aCB3aXRoIGluZGV4IFwiJHttb250aH1cIi5gKTtcbiAgICB9XG4gIH1cblxuICAvKiogQ2hlY2tzIHdoZXRoZXIgdGhlIGdpdmVuIGBvYmpgIGlzIGEgVGVtcG9yYWwuUGxhaW5EYXRlLiAqL1xuICBwdWJsaWMgaXNEYXRlSW5zdGFuY2Uob2JqOiBhbnkpOiBib29sZWFuIHtcbiAgICByZXR1cm4gb2JqIGluc3RhbmNlb2YgVGVtcG9yYWwuUGxhaW5EYXRlO1xuICB9XG5cbiAgLyoqIENoZWNrcyB3aGV0aGVyIHRoZSBnaXZlbiBgZGF0ZWAgaXMgYSB2YWxpZCBUZW1wb3JhbC5QbGFpbkRhdGUuICovXG4gIHB1YmxpYyBpc1ZhbGlkKGRhdGU6IFRlbXBvcmFsLlBsYWluRGF0ZSB8IG51bGwgfCB1bmRlZmluZWQpOiBkYXRlIGlzIFRlbXBvcmFsLlBsYWluRGF0ZSB7XG4gICAgcmV0dXJuIHRoaXMuaXNEYXRlSW5zdGFuY2UoZGF0ZSk7XG4gIH1cblxuICAvKiogQ3JlYXRlcyBhIG5ldyBkYXRlIGJ5IGNsb25pbmcgdGhlIGdpdmVuIG9uZS4gKi9cbiAgcHVibGljIGNsb25lKGRhdGU6IFRlbXBvcmFsLlBsYWluRGF0ZSk6IFRlbXBvcmFsLlBsYWluRGF0ZSB7XG4gICAgcmV0dXJuIFRlbXBvcmFsLlBsYWluRGF0ZS5mcm9tKGRhdGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgZGF0ZSBhZGRpbmcgdGhlIG51bWJlciBvZiBwcm92aWRlZCBgeWVhcnNgIHRvIHRoZSBwcm92aWRlZCBgZGF0ZWAuXG4gICAqIEBwYXJhbSBkYXRlIFRoZSBzdGFydGluZyBkYXRlLlxuICAgKiBAcGFyYW0geWVhcnMgVGhlIG51bWJlciBvZiB5ZWFycyB0byBhZGQuXG4gICAqL1xuICBwdWJsaWMgYWRkQ2FsZW5kYXJZZWFycyhkYXRlOiBUZW1wb3JhbC5QbGFpbkRhdGUsIHllYXJzOiBudW1iZXIpOiBUZW1wb3JhbC5QbGFpbkRhdGUge1xuICAgIHJldHVybiBkYXRlLmFkZCh7IHllYXJzIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgZGF0ZSBhZGRpbmcgdGhlIG51bWJlciBvZiBwcm92aWRlZCBgbW9udGhzYCB0byB0aGUgcHJvdmlkZWQgYGRhdGVgLlxuICAgKiBJZiB0aGUgY2FsY3VsYXRlZCBtb250aCBoYXMgZmV3ZXIgZGF5cyB0aGFuIHRoZSBvcmlnaW5hbCBvbmUsIHRoZSBkYXRlIGlzIHNldCB0byB0aGUgbGFzdCBkYXkgb2YgdGhlIG1vbnRoLlxuICAgKiBFLmcuLCB3aXRoIGBkYXRlYCA9IG5ldyBUZW1wb3JhbC5QbGFpbkRhdGUoMjAyMiwgMCwgMzEpIGFuZCBgbW9udGhzYCA9IDEsIGl0IHJldHVybnMgbmV3IFRlbXBvcmFsLlBsYWluRGF0ZSgyMDIyLCAxLCAyOCkuXG4gICAqL1xuICBwdWJsaWMgYWRkQ2FsZW5kYXJNb250aHMoZGF0ZTogVGVtcG9yYWwuUGxhaW5EYXRlLCBtb250aHM6IG51bWJlcik6IFRlbXBvcmFsLlBsYWluRGF0ZSB7XG4gICAgcmV0dXJuIGRhdGUuYWRkKHsgbW9udGhzIH0pO1xuICB9XG5cbiAgLyoqIENyZWF0ZXMgYSBuZXcgZGF0ZSBieSBhZGRpbmcgdGhlIG51bWJlciBvZiBwcm92aWRlZCBgZGF5c2AgdG8gdGhlIHByb3ZpZGVkIGBkYXRlYC4gKi9cbiAgcHVibGljIGFkZENhbGVuZGFyRGF5cyhkYXRlOiBUZW1wb3JhbC5QbGFpbkRhdGUsIGRheXM6IG51bWJlcik6IFRlbXBvcmFsLlBsYWluRGF0ZSB7XG4gICAgcmV0dXJuIGRhdGUuYWRkKHsgZGF5cyB9KTtcbiAgfVxuXG4gIC8qKiBDcmVhdGVzIGEgVGVtcG9yYWwuUGxhaW5EYXRlIGZyb20gYSB2YWxpZCBpbnB1dCAoVGVtcG9yYWwuUGxhaW5EYXRlIG9yIElTTyBzdHJpbmcpLiAqL1xuICBwdWJsaWMgb3ZlcnJpZGUgZGVzZXJpYWxpemUoXG4gICAgZGF0ZTogVGVtcG9yYWwuUGxhaW5EYXRlIHwgc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCxcbiAgKTogVGVtcG9yYWwuUGxhaW5EYXRlIHwgbnVsbCB7XG4gICAgaWYgKHR5cGVvZiBkYXRlID09PSAnc3RyaW5nJykge1xuICAgICAgaWYgKCFkYXRlKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfSBlbHNlIGlmIChJU09fODYwMV9SRUdFWC50ZXN0KGRhdGUpKSB7XG4gICAgICAgIC8vIGBUZW1wb3JhbC5QbGFpbkRhdGUuZnJvbWAgb25seSBhY2NlcHRzIElTTyA4NjAxIGRhdGUgc3RyaW5ncyB3aXRob3V0IHRpbWUgY29tcG9uZW50cy5cbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0VmFsaWREYXRlT3JOdWxsKFRlbXBvcmFsLlBsYWluRGF0ZS5mcm9tKGRhdGUuc3BsaXQoJ1QnKVswXSkpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gc3VwZXIuZGVzZXJpYWxpemUoZGF0ZSk7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgaW52YWxpZCgpOiBUZW1wb3JhbC5QbGFpbkRhdGUge1xuICAgIC8vIEl0IGlzIG5vdCBwb3NzaWJsZSB0byBjcmVhdGUgYW4gaW52YWxpZCBUZW1wb3JhbC5QbGFpbkRhdGUsIHNvIHdlIHJldHVybiBudWxsLlxuICAgIHJldHVybiBudWxsITtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSB0b0lzbzg2MDEoZGF0ZTogVGVtcG9yYWwuUGxhaW5EYXRlKTogc3RyaW5nIHtcbiAgICByZXR1cm4gZGF0ZS50b0pTT04oKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGFuIGFycmF5IHdpdGggdGhlIGdpdmVuIGxlbmd0aCBhbmQgZmlsbHMgaXQgYnkgbWFwcGluZyB3aXRoIHRoZSBwcm92aWRlZCBmdW5jdGlvbi5cbiAgICogQHBhcmFtIGxlbmd0aCBUaGUgbGVuZ3RoIG9mIHRoZSBhcnJheSB0byBiZSBjcmVhdGVkLlxuICAgKiBAcGFyYW0gdmFsdWVGdW5jdGlvbiBUaGUgZnVuY3Rpb24gb2YgYXJyYXkncyBpbmRleCB1c2VkIHRvIGZpbGwgdGhlIGFycmF5LlxuICAgKi9cbiAgcHJpdmF0ZSBfcmFuZ2U8VD4obGVuZ3RoOiBudW1iZXIsIHZhbHVlRnVuY3Rpb246IChpbmRleDogbnVtYmVyKSA9PiBUKTogVFtdIHtcbiAgICByZXR1cm4gQXJyYXkuZnJvbSh7IGxlbmd0aCB9KS5tYXAoKF8sIGkpID0+IHZhbHVlRnVuY3Rpb24oaSkpO1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBV0EsSUFBTSxpQkFDSjtBQUVGLElBQWEsc0JBQWIsY0FBeUMsWUFBK0I7Ozs7Ozs7Q0FPdEUsWUFBbUIsa0JBQXlCO0VBQzFDLE1BQU0saUJBQWlCO0VBQ3ZCLElBQUksT0FBTyxhQUFhLFVBQ3RCLE1BQU0sSUFBSSxNQUNSLDJHQUNEOzs7Q0FLRSxRQUFRLE1BQXdCO0VBQ3JDLE9BQU8sS0FBSzs7O0NBSVAsU0FBUyxNQUF3QjtFQUN0QyxPQUFPLEtBQUs7OztDQUlQLFFBQVEsTUFBd0I7RUFDckMsT0FBTyxLQUFLOzs7Q0FJUCxhQUFhLE1BQXdCO0VBRzFDLE9BQU8sS0FBSyxZQUFZOzs7Q0FJbkIsMkJBQTJCLE1BQWlDO0VBTWpFLE9BQU8sS0FBSyxZQUFZLEtBQU0sQ0FBQyxlQUFlLHNCQUFzQixTQUFTO0dBSjNFLE1BQU07R0FDTixPQUFPO0dBQ1AsS0FBSztHQUVzRSxDQUFROzs7Ozs7O0NBUWhGLGNBQWMsT0FBa0M7RUFDckQsTUFBTSxZQUFZLElBQUksS0FBSyxlQUFlLHNCQUFzQixTQUFTLEVBQUUsT0FBTyxPQUFPLENBQUM7RUFDMUYsT0FBTyxLQUFLLE9BQU8sS0FBSyxNQUN0QixVQUFVLE9BQU8sU0FBUyxVQUFVLEtBQUs7R0FBRSxNQUFNO0dBQU0sT0FBTyxJQUFJO0dBQUcsS0FBSztHQUFHLENBQUMsQ0FBQyxDQUNoRjs7O0NBSUksZUFBWTtFQUNqQixNQUFNLFlBQVksSUFBSSxLQUFLLGVBQWUsc0JBQXNCLFNBQVMsRUFBRSxLQUFLLFdBQVcsQ0FBQztFQUM1RixPQUFPLEtBQUssT0FBTyxLQUFLLE1BQ3RCLFVBQVUsT0FBTyxTQUFTLFVBQVUsS0FBSztHQUFFLE1BQU07R0FBTSxPQUFPO0dBQUcsS0FBSyxJQUFJO0dBQUcsQ0FBQyxDQUFDLENBQ2hGOzs7Ozs7O0NBUUksa0JBQWtCLE9BQWtDO0VBQ3pELE1BQU0sWUFBWSxJQUFJLEtBQUssZUFBZSxzQkFBc0IsU0FBUyxFQUFFLFNBQVMsT0FBTyxDQUFDO0VBQzVGLE9BQU8sS0FBSyxPQUFPLElBQUksTUFDckIsVUFBVSxPQUFPLFNBQVMsVUFBVSxLQUFLO0dBQUUsTUFBTTtHQUFNLE9BQU87R0FBRyxLQUFLLElBQUk7R0FBRyxDQUFDLENBQUMsQ0FDaEY7OztDQUlJLG9CQUFpQjtFQUN0QixPQUFPOzs7Q0FJRixrQkFBa0IsTUFBd0I7RUFDL0MsT0FBTyxLQUFLOzs7Q0FJUCxRQUFLO0VBQ1YsT0FBTyxTQUFTLElBQUksY0FBYzs7O0NBSTdCLFdBQVcsTUFBYyxPQUFlLEtBQVc7RUFFeEQsSUFBSSxRQUFRLEtBQUssUUFBUSxJQUN2QixNQUFNLE1BQU0sa0JBQWtCLE1BQUssc0NBQXVDO09BQ3JFLElBQUksTUFBTSxHQUNmLE1BQU0sTUFBTSxnQkFBZ0IsSUFBRyxrQ0FBbUM7RUFHcEUsSUFBSTtHQUNGLE9BQU8sU0FBUyxVQUFVLEtBQUs7SUFBRTtJQUFNO0lBQVk7SUFBSyxFQUFFLEVBQUUsVUFBVSxVQUFVLENBQUM7VUFDM0U7R0FDTixNQUFNLE1BQU0saUJBQWlCLElBQUcsMEJBQTJCLE1BQUssSUFBSzs7OztDQUtsRSxlQUFlLEtBQVE7RUFDNUIsT0FBTyxlQUFlLFNBQVM7OztDQUkxQixRQUFRLE1BQTJDO0VBQ3hELE9BQU8sS0FBSyxlQUFlLEtBQUs7OztDQUkzQixNQUFNLE1BQXdCO0VBQ25DLE9BQU8sU0FBUyxVQUFVLEtBQUssS0FBSzs7Ozs7OztDQVEvQixpQkFBaUIsTUFBMEIsT0FBYTtFQUM3RCxPQUFPLEtBQUssSUFBSSxFQUFFLE9BQU8sQ0FBQzs7Ozs7OztDQVFyQixrQkFBa0IsTUFBMEIsUUFBYztFQUMvRCxPQUFPLEtBQUssSUFBSSxFQUFFLFFBQVEsQ0FBQzs7O0NBSXRCLGdCQUFnQixNQUEwQixNQUFZO0VBQzNELE9BQU8sS0FBSyxJQUFJLEVBQUUsTUFBTSxDQUFDOzs7Q0FJWCxZQUNkLE1BQW9EO0VBRXBELElBQUksT0FBTyxTQUFTO09BQ2QsQ0FBQyxNQUNILE9BQU87UUFDRixJQUFJLGVBQWUsS0FBSyxLQUFLLEVBRWxDLE9BQU8sS0FBSyxtQkFBbUIsU0FBUyxVQUFVLEtBQUssS0FBSyxNQUFNLElBQUksQ0FBQyxHQUFHLENBQUM7O0VBRy9FLE9BQU8sTUFBTSxZQUFZLEtBQUs7O0NBR2hCLFVBQU87RUFFckIsT0FBTzs7Q0FHTyxVQUFVLE1BQXdCO0VBQ2hELE9BQU8sS0FBSyxRQUFROzs7Ozs7O0NBUWQsT0FBVSxRQUFnQixlQUFtQztFQUNuRSxPQUFPLE1BQU0sS0FBSyxFQUFFLFFBQVEsQ0FBQyxDQUFDLEtBQUssR0FBRyxNQUFNLGNBQWMsRUFBRSxDQUFDIn0=
164
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcG9yYWwtZGF0ZS1hZGFwdGVyLmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb3JlL2RhdGV0aW1lL3RlbXBvcmFsLWRhdGUtYWRhcHRlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLy8gPHJlZmVyZW5jZSB0eXBlcz1cInRlbXBvcmFsLXBvbHlmaWxsL2dsb2JhbFwiIC8+XG5cbmltcG9ydCB7IFNiYkxhbmd1YWdlQ29udHJvbGxlciB9IGZyb20gJy4uL2NvbnRyb2xsZXJzLnRzJztcblxuaW1wb3J0IHsgRGF0ZUFkYXB0ZXIgfSBmcm9tICcuL2RhdGUtYWRhcHRlci50cyc7XG5cbi8qKlxuICogTWF0Y2hlcyBzdHJpbmdzIHRoYXQgaGF2ZSB0aGUgZm9ybSBvZiBhIHZhbGlkIFJGQyAzMzM5IHN0cmluZ1xuICogKGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmMzMzM5KS4gTm90ZSB0aGF0IHRoZSBzdHJpbmcgbWF5IG5vdCBhY3R1YWxseSBiZSBhIHZhbGlkIGRhdGVcbiAqIGJlY2F1c2UgdGhlIHJlZ2V4IHdpbGwgbWF0Y2ggc3RyaW5ncyBhbmQgd2l0aG91dCBvZiBib3VuZHMgbW9udGgsIGRhdGUsIGV0Yy5cbiAqL1xuY29uc3QgSVNPXzg2MDFfUkVHRVggPVxuICAvXlxcZHs0fS1cXGR7Mn0tXFxkezJ9KD86VFxcZHsyfTpcXGR7Mn06XFxkezJ9KD86XFwuXFxkKyk/KD86WnwoPzooPzpcXCt8LSlcXGR7Mn06XFxkezJ9KSk/KT8kLztcblxuZXhwb3J0IGNsYXNzIFRlbXBvcmFsRGF0ZUFkYXB0ZXIgZXh0ZW5kcyBEYXRlQWRhcHRlcjxUZW1wb3JhbC5QbGFpbkRhdGU+IHtcbiAgLyoqXG4gICAqIEBwYXJhbSBjdXRvZmZZZWFyT2Zmc2V0IFRoZSB0aHJlc2hvbGQgb24gd2hldGhlciBhIHR3by1kaWdpdCB5ZWFyXG4gICAqIHNob3VsZCBiZSB0cmVhdGVkIGFzIGJlbG9uZ2luZyB0byAyMDAwIG9yIDE5MDAuIGUuZy4gd2l0aCAxNSAoZGVmYXVsdClcbiAgICogdGhlIGN1cnJlbnQgeWVhciBwbHVzIDE1IHdpbGwgYmUgdHJlYXRlZCBhcyBiZWxvbmdpbmcgdG8gMjAwMCwgYW5kIHRoZSByZXN0IHRvIDE5MDAuXG4gICAqIFNvIGUuZy4gd2l0aCB0aGUgY3VycmVudCB5ZWFyIDIwMjUsIDQwIHdpbGwgYmUgdHJlYXRlZCBhcyAyMDQwLCB3aGlsZSA0MSB3aWxsIGJlIHRyZWF0ZWQgYXMgMTk0MS5cbiAgICovXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihjdXRvZmZZZWFyT2Zmc2V0PzogbnVtYmVyKSB7XG4gICAgc3VwZXIoY3V0b2ZmWWVhck9mZnNldCk7XG4gICAgaWYgKHR5cGVvZiBUZW1wb3JhbCAhPT0gJ29iamVjdCcpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ1RlbXBvcmFsIGlzIG5vdCBhdmFpbGFibGUgaW4gdGhlIGN1cnJlbnQgZW52aXJvbm1lbnQuIFBsZWFzZSBtYWtlIHN1cmUgdG8gaW5jbHVkZSB0aGUgdGVtcG9yYWwgcG9seWZpbGwuJyxcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgLyoqIEdldHMgdGhlIHllYXIgb2YgdGhlIGlucHV0IGRhdGUuICovXG4gIHB1YmxpYyBnZXRZZWFyKGRhdGU6IFRlbXBvcmFsLlBsYWluRGF0ZSk6IG51bWJlciB7XG4gICAgcmV0dXJuIGRhdGUueWVhcjtcbiAgfVxuXG4gIC8qKiBHZXRzIHRoZSBtb250aCBvZiB0aGUgaW5wdXQgZGF0ZS4gKi9cbiAgcHVibGljIGdldE1vbnRoKGRhdGU6IFRlbXBvcmFsLlBsYWluRGF0ZSk6IG51bWJlciB7XG4gICAgcmV0dXJuIGRhdGUubW9udGg7XG4gIH1cblxuICAvKiogR2V0cyB0aGUgZGF5IG9mIHRoZSBpbnB1dCBkYXRlLiAqL1xuICBwdWJsaWMgZ2V0RGF0ZShkYXRlOiBUZW1wb3JhbC5QbGFpbkRhdGUpOiBudW1iZXIge1xuICAgIHJldHVybiBkYXRlLmRheTtcbiAgfVxuXG4gIC8qKiBHZXRzIHRoZSBkYXkgb2YgdGhlIHdlZWsgb2YgdGhlIGlucHV0IGRhdGUuICovXG4gIHB1YmxpYyBnZXREYXlPZldlZWsoZGF0ZTogVGVtcG9yYWwuUGxhaW5EYXRlKTogbnVtYmVyIHtcbiAgICAvLyBPdXIgZXhwZWN0YXRpb24gaXMgMCA9IFN1bmRheSBidXQgVGVtcG9yYWwuUGxhaW5EYXRlLmRheU9mV2VlayByZXR1cm5zIDcgPSBTdW5kYXlcbiAgICAvLyBUT0RPOiBSZW1vdmUgdGhpcyB3aXRoIGEgZnV0dXJlIHJlbGVhc2UuXG4gICAgcmV0dXJuIGRhdGUuZGF5T2ZXZWVrICUgNztcbiAgfVxuXG4gIC8qKiBHZXRzIHRoZSBkYXRlIGluIHRoZSBsb2NhbCBmb3JtYXQuICovXG4gIHB1YmxpYyBnZXRBY2Nlc3NpYmlsaXR5Rm9ybWF0RGF0ZShkYXRlOiBUZW1wb3JhbC5QbGFpbkRhdGUgfCBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IG9wdGlvbnM6IEludGwuRGF0ZVRpbWVGb3JtYXRPcHRpb25zID0ge1xuICAgICAgeWVhcjogJ251bWVyaWMnLFxuICAgICAgbW9udGg6ICdsb25nJyxcbiAgICAgIGRheTogJ251bWVyaWMnLFxuICAgIH07XG4gICAgcmV0dXJuIHRoaXMuZGVzZXJpYWxpemUoZGF0ZSkhLnRvTG9jYWxlU3RyaW5nKFNiYkxhbmd1YWdlQ29udHJvbGxlci5jdXJyZW50LCBvcHRpb25zKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGFuIGFycmF5IG9mIHN0cmluZ3Mgd2l0aCBsZW5ndGggPSAxMiwgZmlsbGVkIHdpdGggdGhlIG5hbWUgb2YgdGhlIG1vbnRocyBzdGFydGluZyBmcm9tIEphbnVhcnksIGluIHRoZSBkb2N1bWVudCBsYW5ndWFnZS5cbiAgICogQHBhcmFtIHN0eWxlIFNlZSBgbW9udGhgIGluIGBEYXRlVGltZUZvcm1hdE9wdGlvbnNgOiBgbG9uZ2AgZm9yIGZ1bGwgbmFtZSwgYHNob3J0YCBmb3Igc2hvcnQgbmFtZSwgYG5hcnJvd2AgZm9yIHNpbmdsZSBsZXR0ZXIsXG4gICAqIEUuZy4sIHdpdGggSmFudWFyeSBpbiBlbi1nYjogYGxvbmdgIHJldHVybnMgXCJKYW51YXJ5XCIsIGBzaG9ydGAgcmV0dXJucyBcIkphblwiLCBgbmFycm93YCByZXR1cm5zIFwiSlwiLlxuICAgKi9cbiAgcHVibGljIGdldE1vbnRoTmFtZXMoc3R5bGU6ICdsb25nJyB8ICdzaG9ydCcgfCAnbmFycm93Jyk6IHN0cmluZ1tdIHtcbiAgICBjb25zdCBmb3JtYXR0ZXIgPSBuZXcgSW50bC5EYXRlVGltZUZvcm1hdChTYmJMYW5ndWFnZUNvbnRyb2xsZXIuY3VycmVudCwgeyBtb250aDogc3R5bGUgfSk7XG4gICAgcmV0dXJuIHRoaXMuX3JhbmdlKDEyLCAoaSkgPT5cbiAgICAgIGZvcm1hdHRlci5mb3JtYXQoVGVtcG9yYWwuUGxhaW5EYXRlLmZyb20oeyB5ZWFyOiAyMDE3LCBtb250aDogaSArIDEsIGRheTogMSB9KSksXG4gICAgKTtcbiAgfVxuXG4gIC8qKiBDcmVhdGVzIGEgc3RyaW5nIGFycmF5IHdpdGggbGVuZ3RoID0gMzEsIGZpbGxlZCB3aXRoIHRoZSBkYXlzIGluIGEgbW9udGgsIHN0YXJ0aW5nIGZyb20gMS4gKi9cbiAgcHVibGljIGdldERhdGVOYW1lcygpOiBzdHJpbmdbXSB7XG4gICAgY29uc3QgZm9ybWF0dGVyID0gbmV3IEludGwuRGF0ZVRpbWVGb3JtYXQoU2JiTGFuZ3VhZ2VDb250cm9sbGVyLmN1cnJlbnQsIHsgZGF5OiAnbnVtZXJpYycgfSk7XG4gICAgcmV0dXJuIHRoaXMuX3JhbmdlKDMxLCAoaSkgPT5cbiAgICAgIGZvcm1hdHRlci5mb3JtYXQoVGVtcG9yYWwuUGxhaW5EYXRlLmZyb20oeyB5ZWFyOiAyMDE3LCBtb250aDogMSwgZGF5OiBpICsgMSB9KSksXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgc3RyaW5nIGFycmF5IHdpdGggbGVuZ3RoID0gNywgZmlsbGVkIHdpdGggdGhlIG5hbWUgb2YgdGhlIGRheXMgaW4gYSB3ZWVrIHN0YXJ0aW5nIGZyb20gU3VuZGF5LCBpbiB0aGUgZG9jdW1lbnQgbGFuZ3VhZ2UuXG4gICAqIEBwYXJhbSBzdHlsZSBTZWUgYHdlZWtkYXlgIGluIGBEYXRlVGltZUZvcm1hdE9wdGlvbnNgIC0gJ2xvbmcnIGZvciBmdWxsIG5hbWUsICdzaG9ydCcgZm9yIHNob3J0IG5hbWUsICduYXJyb3cnIGZvciBzaW5nbGUgbGV0dGVyO1xuICAgKiBFLmcuLCB3aXRoIE1vbmRheSBpbiBlbi1nYjogYGxvbmdgIHJldHVybnMgXCJNb25kYXlcIiwgYHNob3J0YCByZXR1cm5zIFwiTW9uXCIsIGBuYXJyb3dgIHJldHVybnMgXCJNXCIuXG4gICAqL1xuICBwdWJsaWMgZ2V0RGF5T2ZXZWVrTmFtZXMoc3R5bGU6ICdsb25nJyB8ICdzaG9ydCcgfCAnbmFycm93Jyk6IHN0cmluZ1tdIHtcbiAgICBjb25zdCBmb3JtYXR0ZXIgPSBuZXcgSW50bC5EYXRlVGltZUZvcm1hdChTYmJMYW5ndWFnZUNvbnRyb2xsZXIuY3VycmVudCwgeyB3ZWVrZGF5OiBzdHlsZSB9KTtcbiAgICByZXR1cm4gdGhpcy5fcmFuZ2UoNywgKGkpID0+XG4gICAgICBmb3JtYXR0ZXIuZm9ybWF0KFRlbXBvcmFsLlBsYWluRGF0ZS5mcm9tKHsgeWVhcjogMjAxNywgbW9udGg6IDEsIGRheTogaSArIDEgfSkpLFxuICAgICk7XG4gIH1cblxuICAvKiogRGVmaW5lcyB3aGljaCBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrICgwOiBzdW5kYXk7IDE6IG1vbmRheTsgZXRjLikuICovXG4gIHB1YmxpYyBnZXRGaXJzdERheU9mV2VlaygpOiBudW1iZXIge1xuICAgIHJldHVybiAxO1xuICB9XG5cbiAgLyoqIENhbGN1bGF0ZXMgdGhlIG51bWJlciBvZiBkYXlzIGluIGEgbW9udGggZ2l2ZW4gdGhlIHllYXIgYW5kIHRoZSBtb250aC4gKi9cbiAgcHVibGljIGdldE51bURheXNJbk1vbnRoKGRhdGU6IFRlbXBvcmFsLlBsYWluRGF0ZSk6IG51bWJlciB7XG4gICAgcmV0dXJuIGRhdGUuZGF5c0luTW9udGg7XG4gIH1cblxuICAvKiogQ3JlYXRlcyB0b2RheSdzIGRhdGUuICovXG4gIHB1YmxpYyB0b2RheSgpOiBUZW1wb3JhbC5QbGFpbkRhdGUge1xuICAgIHJldHVybiBUZW1wb3JhbC5Ob3cucGxhaW5EYXRlSVNPKCk7XG4gIH1cblxuICAvKiogQ3JlYXRlcyBhIG5ldyBkYXRlLCBnaXZlbiBkYXksIG1vbnRoIGFuZCB5ZWFyOyB0aGUgbWV0aG9kIGRvZXNuJ3QgYWxsb3cgZGF0ZSdzIG92ZXJmbG93LiAqL1xuICBwdWJsaWMgY3JlYXRlRGF0ZSh5ZWFyOiBudW1iZXIsIG1vbnRoOiBudW1iZXIsIGRheTogbnVtYmVyKTogVGVtcG9yYWwuUGxhaW5EYXRlIHtcbiAgICAvLyBDaGVjayBmb3IgaW52YWxpZCBtb250aCBhbmQgZGF0ZSAoZXhjZXB0IHVwcGVyIGJvdW5kIG9uIGRhdGUgd2hpY2ggd2UgaGF2ZSB0byBjaGVjayBhZnRlciBjcmVhdGluZyB0aGUgVGVtcG9yYWwuUGxhaW5EYXRlKS5cbiAgICBpZiAobW9udGggPCAxIHx8IG1vbnRoID4gMTIpIHtcbiAgICAgIHRocm93IEVycm9yKGBJbnZhbGlkIG1vbnRoIFwiJHttb250aH1cIi4gTW9udGggaGFzIHRvIGJlIGJldHdlZW4gMSBhbmQgMTIuYCk7XG4gICAgfSBlbHNlIGlmIChkYXkgPCAxKSB7XG4gICAgICB0aHJvdyBFcnJvcihgSW52YWxpZCBkYXkgXCIke2RheX1cIi4gRGF5IGhhcyB0byBiZSBncmVhdGVyIHRoYW4gMC5gKTtcbiAgICB9XG5cbiAgICB0cnkge1xuICAgICAgcmV0dXJuIFRlbXBvcmFsLlBsYWluRGF0ZS5mcm9tKHsgeWVhciwgbW9udGgsIGRheTogZGF5IH0sIHsgb3ZlcmZsb3c6ICdyZWplY3QnIH0pO1xuICAgIH0gY2F0Y2gge1xuICAgICAgdGhyb3cgRXJyb3IoYEludmFsaWQgZGF0ZSBcIiR7ZGF5fVwiIGZvciBtb250aCB3aXRoIGluZGV4IFwiJHttb250aH1cIi5gKTtcbiAgICB9XG4gIH1cblxuICAvKiogQ2hlY2tzIHdoZXRoZXIgdGhlIGdpdmVuIGBvYmpgIGlzIGEgVGVtcG9yYWwuUGxhaW5EYXRlLiAqL1xuICBwdWJsaWMgaXNEYXRlSW5zdGFuY2Uob2JqOiBhbnkpOiBib29sZWFuIHtcbiAgICByZXR1cm4gb2JqIGluc3RhbmNlb2YgVGVtcG9yYWwuUGxhaW5EYXRlO1xuICB9XG5cbiAgLyoqIENoZWNrcyB3aGV0aGVyIHRoZSBnaXZlbiBgZGF0ZWAgaXMgYSB2YWxpZCBUZW1wb3JhbC5QbGFpbkRhdGUuICovXG4gIHB1YmxpYyBpc1ZhbGlkKGRhdGU6IFRlbXBvcmFsLlBsYWluRGF0ZSB8IG51bGwgfCB1bmRlZmluZWQpOiBkYXRlIGlzIFRlbXBvcmFsLlBsYWluRGF0ZSB7XG4gICAgcmV0dXJuIHRoaXMuaXNEYXRlSW5zdGFuY2UoZGF0ZSk7XG4gIH1cblxuICAvKiogQ3JlYXRlcyBhIG5ldyBkYXRlIGJ5IGNsb25pbmcgdGhlIGdpdmVuIG9uZS4gKi9cbiAgcHVibGljIGNsb25lKGRhdGU6IFRlbXBvcmFsLlBsYWluRGF0ZSk6IFRlbXBvcmFsLlBsYWluRGF0ZSB7XG4gICAgcmV0dXJuIFRlbXBvcmFsLlBsYWluRGF0ZS5mcm9tKGRhdGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgZGF0ZSBhZGRpbmcgdGhlIG51bWJlciBvZiBwcm92aWRlZCBgeWVhcnNgIHRvIHRoZSBwcm92aWRlZCBgZGF0ZWAuXG4gICAqIEBwYXJhbSBkYXRlIFRoZSBzdGFydGluZyBkYXRlLlxuICAgKiBAcGFyYW0geWVhcnMgVGhlIG51bWJlciBvZiB5ZWFycyB0byBhZGQuXG4gICAqL1xuICBwdWJsaWMgYWRkQ2FsZW5kYXJZZWFycyhkYXRlOiBUZW1wb3JhbC5QbGFpbkRhdGUsIHllYXJzOiBudW1iZXIpOiBUZW1wb3JhbC5QbGFpbkRhdGUge1xuICAgIHJldHVybiBkYXRlLmFkZCh7IHllYXJzIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgZGF0ZSBhZGRpbmcgdGhlIG51bWJlciBvZiBwcm92aWRlZCBgbW9udGhzYCB0byB0aGUgcHJvdmlkZWQgYGRhdGVgLlxuICAgKiBJZiB0aGUgY2FsY3VsYXRlZCBtb250aCBoYXMgZmV3ZXIgZGF5cyB0aGFuIHRoZSBvcmlnaW5hbCBvbmUsIHRoZSBkYXRlIGlzIHNldCB0byB0aGUgbGFzdCBkYXkgb2YgdGhlIG1vbnRoLlxuICAgKiBFLmcuLCB3aXRoIGBkYXRlYCA9IG5ldyBUZW1wb3JhbC5QbGFpbkRhdGUoMjAyMiwgMCwgMzEpIGFuZCBgbW9udGhzYCA9IDEsIGl0IHJldHVybnMgbmV3IFRlbXBvcmFsLlBsYWluRGF0ZSgyMDIyLCAxLCAyOCkuXG4gICAqL1xuICBwdWJsaWMgYWRkQ2FsZW5kYXJNb250aHMoZGF0ZTogVGVtcG9yYWwuUGxhaW5EYXRlLCBtb250aHM6IG51bWJlcik6IFRlbXBvcmFsLlBsYWluRGF0ZSB7XG4gICAgcmV0dXJuIGRhdGUuYWRkKHsgbW9udGhzIH0pO1xuICB9XG5cbiAgLyoqIENyZWF0ZXMgYSBuZXcgZGF0ZSBieSBhZGRpbmcgdGhlIG51bWJlciBvZiBwcm92aWRlZCBgZGF5c2AgdG8gdGhlIHByb3ZpZGVkIGBkYXRlYC4gKi9cbiAgcHVibGljIGFkZENhbGVuZGFyRGF5cyhkYXRlOiBUZW1wb3JhbC5QbGFpbkRhdGUsIGRheXM6IG51bWJlcik6IFRlbXBvcmFsLlBsYWluRGF0ZSB7XG4gICAgcmV0dXJuIGRhdGUuYWRkKHsgZGF5cyB9KTtcbiAgfVxuXG4gIC8qKiBDcmVhdGVzIGEgVGVtcG9yYWwuUGxhaW5EYXRlIGZyb20gYSB2YWxpZCBpbnB1dCAoVGVtcG9yYWwuUGxhaW5EYXRlIG9yIElTTyBzdHJpbmcpLiAqL1xuICBwdWJsaWMgb3ZlcnJpZGUgZGVzZXJpYWxpemUoXG4gICAgZGF0ZTogVGVtcG9yYWwuUGxhaW5EYXRlIHwgc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCxcbiAgKTogVGVtcG9yYWwuUGxhaW5EYXRlIHwgbnVsbCB7XG4gICAgaWYgKHR5cGVvZiBkYXRlID09PSAnc3RyaW5nJykge1xuICAgICAgaWYgKCFkYXRlKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfSBlbHNlIGlmIChJU09fODYwMV9SRUdFWC50ZXN0KGRhdGUpKSB7XG4gICAgICAgIC8vIGBUZW1wb3JhbC5QbGFpbkRhdGUuZnJvbWAgb25seSBhY2NlcHRzIElTTyA4NjAxIGRhdGUgc3RyaW5ncyB3aXRob3V0IHRpbWUgY29tcG9uZW50cy5cbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0VmFsaWREYXRlT3JOdWxsKFRlbXBvcmFsLlBsYWluRGF0ZS5mcm9tKGRhdGUuc3BsaXQoJ1QnKVswXSkpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gc3VwZXIuZGVzZXJpYWxpemUoZGF0ZSk7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgaW52YWxpZCgpOiBUZW1wb3JhbC5QbGFpbkRhdGUge1xuICAgIC8vIEl0IGlzIG5vdCBwb3NzaWJsZSB0byBjcmVhdGUgYW4gaW52YWxpZCBUZW1wb3JhbC5QbGFpbkRhdGUsIHNvIHdlIHJldHVybiBudWxsLlxuICAgIHJldHVybiBudWxsITtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSB0b0lzbzg2MDEoZGF0ZTogVGVtcG9yYWwuUGxhaW5EYXRlKTogc3RyaW5nIHtcbiAgICByZXR1cm4gZGF0ZS50b0pTT04oKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGFuIGFycmF5IHdpdGggdGhlIGdpdmVuIGxlbmd0aCBhbmQgZmlsbHMgaXQgYnkgbWFwcGluZyB3aXRoIHRoZSBwcm92aWRlZCBmdW5jdGlvbi5cbiAgICogQHBhcmFtIGxlbmd0aCBUaGUgbGVuZ3RoIG9mIHRoZSBhcnJheSB0byBiZSBjcmVhdGVkLlxuICAgKiBAcGFyYW0gdmFsdWVGdW5jdGlvbiBUaGUgZnVuY3Rpb24gb2YgYXJyYXkncyBpbmRleCB1c2VkIHRvIGZpbGwgdGhlIGFycmF5LlxuICAgKi9cbiAgcHJpdmF0ZSBfcmFuZ2U8VD4obGVuZ3RoOiBudW1iZXIsIHZhbHVlRnVuY3Rpb246IChpbmRleDogbnVtYmVyKSA9PiBUKTogVFtdIHtcbiAgICByZXR1cm4gQXJyYXkuZnJvbSh7IGxlbmd0aCB9KS5tYXAoKF8sIGkpID0+IHZhbHVlRnVuY3Rpb24oaSkpO1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBV0EsSUFBTSxpQkFDSjtBQUVGLElBQWEsc0JBQWIsY0FBeUMsWUFBK0I7Ozs7Ozs7Q0FPdEUsWUFBbUIsa0JBQXlCO0VBQzFDLE1BQU0sZ0JBQWdCO0VBQ3RCLElBQUksT0FBTyxhQUFhLFVBQ3RCLE1BQU0sSUFBSSxNQUNSLDBHQUEwRztDQUdoSDs7Q0FHTyxRQUFRLE1BQXdCO0VBQ3JDLE9BQU8sS0FBSztDQUNkOztDQUdPLFNBQVMsTUFBd0I7RUFDdEMsT0FBTyxLQUFLO0NBQ2Q7O0NBR08sUUFBUSxNQUF3QjtFQUNyQyxPQUFPLEtBQUs7Q0FDZDs7Q0FHTyxhQUFhLE1BQXdCO0VBRzFDLE9BQU8sS0FBSyxZQUFZO0NBQzFCOztDQUdPLDJCQUEyQixNQUFpQztFQU1qRSxPQUFPLEtBQUssWUFBWSxJQUFJLEVBQUcsZUFBZSxzQkFBc0IsU0FBUztHQUozRSxNQUFNO0dBQ04sT0FBTztHQUNQLEtBQUs7RUFFc0UsQ0FBTztDQUN0Rjs7Ozs7O0NBT08sY0FBYyxPQUFrQztFQUNyRCxNQUFNLFlBQVksSUFBSSxLQUFLLGVBQWUsc0JBQXNCLFNBQVMsRUFBRSxPQUFPLE1BQUssQ0FBRTtFQUN6RixPQUFPLEtBQUssT0FBTyxLQUFLLE1BQ3RCLFVBQVUsT0FBTyxTQUFTLFVBQVUsS0FBSztHQUFFLE1BQU07R0FBTSxPQUFPLElBQUk7R0FBRyxLQUFLO0VBQUMsQ0FBRSxDQUFDLENBQUM7Q0FFbkY7O0NBR08sZUFBWTtFQUNqQixNQUFNLFlBQVksSUFBSSxLQUFLLGVBQWUsc0JBQXNCLFNBQVMsRUFBRSxLQUFLLFVBQVMsQ0FBRTtFQUMzRixPQUFPLEtBQUssT0FBTyxLQUFLLE1BQ3RCLFVBQVUsT0FBTyxTQUFTLFVBQVUsS0FBSztHQUFFLE1BQU07R0FBTSxPQUFPO0dBQUcsS0FBSyxJQUFJO0VBQUMsQ0FBRSxDQUFDLENBQUM7Q0FFbkY7Ozs7OztDQU9PLGtCQUFrQixPQUFrQztFQUN6RCxNQUFNLFlBQVksSUFBSSxLQUFLLGVBQWUsc0JBQXNCLFNBQVMsRUFBRSxTQUFTLE1BQUssQ0FBRTtFQUMzRixPQUFPLEtBQUssT0FBTyxJQUFJLE1BQ3JCLFVBQVUsT0FBTyxTQUFTLFVBQVUsS0FBSztHQUFFLE1BQU07R0FBTSxPQUFPO0dBQUcsS0FBSyxJQUFJO0VBQUMsQ0FBRSxDQUFDLENBQUM7Q0FFbkY7O0NBR08sb0JBQWlCO0VBQ3RCLE9BQU87Q0FDVDs7Q0FHTyxrQkFBa0IsTUFBd0I7RUFDL0MsT0FBTyxLQUFLO0NBQ2Q7O0NBR08sUUFBSztFQUNWLE9BQU8sU0FBUyxJQUFJLGFBQVk7Q0FDbEM7O0NBR08sV0FBVyxNQUFjLE9BQWUsS0FBVztFQUV4RCxJQUFJLFFBQVEsS0FBSyxRQUFRLElBQ3ZCLE1BQU0sTUFBTSxrQkFBa0IsTUFBSyxxQ0FBc0M7T0FDcEUsSUFBSSxNQUFNLEdBQ2YsTUFBTSxNQUFNLGdCQUFnQixJQUFHLGlDQUFrQztFQUduRSxJQUFJO0dBQ0YsT0FBTyxTQUFTLFVBQVUsS0FBSztJQUFFO0lBQU07SUFBWTtHQUFHLEdBQUksRUFBRSxVQUFVLFNBQVEsQ0FBRTtFQUNsRixRQUFRO0dBQ04sTUFBTSxNQUFNLGlCQUFpQixJQUFHLDBCQUEyQixNQUFLLEdBQUk7RUFDdEU7Q0FDRjs7Q0FHTyxlQUFlLEtBQVE7RUFDNUIsT0FBTyxlQUFlLFNBQVM7Q0FDakM7O0NBR08sUUFBUSxNQUEyQztFQUN4RCxPQUFPLEtBQUssZUFBZSxJQUFJO0NBQ2pDOztDQUdPLE1BQU0sTUFBd0I7RUFDbkMsT0FBTyxTQUFTLFVBQVUsS0FBSyxJQUFJO0NBQ3JDOzs7Ozs7Q0FPTyxpQkFBaUIsTUFBMEIsT0FBYTtFQUM3RCxPQUFPLEtBQUssSUFBSSxFQUFFLE1BQUssQ0FBRTtDQUMzQjs7Ozs7O0NBT08sa0JBQWtCLE1BQTBCLFFBQWM7RUFDL0QsT0FBTyxLQUFLLElBQUksRUFBRSxPQUFNLENBQUU7Q0FDNUI7O0NBR08sZ0JBQWdCLE1BQTBCLE1BQVk7RUFDM0QsT0FBTyxLQUFLLElBQUksRUFBRSxLQUFJLENBQUU7Q0FDMUI7O0NBR2dCLFlBQ2QsTUFBb0Q7RUFFcEQsSUFBSSxPQUFPLFNBQVM7T0FDZCxDQUFDLE1BQ0gsT0FBTztRQUNGLElBQUksZUFBZSxLQUFLLElBQUksR0FFakMsT0FBTyxLQUFLLG1CQUFtQixTQUFTLFVBQVUsS0FBSyxLQUFLLE1BQU0sR0FBRyxFQUFFLEVBQUUsQ0FBQztFQUFBO0VBRzlFLE9BQU8sTUFBTSxZQUFZLElBQUk7Q0FDL0I7Q0FFZ0IsVUFBTztFQUVyQixPQUFPO0NBQ1Q7Q0FFZ0IsVUFBVSxNQUF3QjtFQUNoRCxPQUFPLEtBQUssT0FBTTtDQUNwQjs7Ozs7O0NBT1EsT0FBVSxRQUFnQixlQUFtQztFQUNuRSxPQUFPLE1BQU0sS0FBSyxFQUFFLE9BQU0sQ0FBRSxFQUFFLEtBQUssR0FBRyxNQUFNLGNBQWMsQ0FBQyxDQUFDO0NBQzlEIn0=
@@ -22,4 +22,4 @@ var forceType = (convert) => {
22
22
  //#endregion
23
23
  export { forceType };
24
24
 
25
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9yY2UtdHlwZS5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvY29yZS9kZWNvcmF0b3JzL2ZvcmNlLXR5cGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBSZWFjdGl2ZUVsZW1lbnQgfSBmcm9tICdsaXQnO1xuXG5pbXBvcnQgdHlwZSB7IEludGVyZmFjZSwgUHJvcGVydHlEZWNvcmF0b3IgfSBmcm9tICcuL2Jhc2UudHMnO1xuXG4vKipcbiAqIERlY29yYXRvciB0aGF0IGZvcmNlcyB0aGUgdmFsdWUgb2YgYSBwcm9wZXJ0eSBvciBnZXR0ZXIvc2V0dGVyXG4gKiB0byB0aGUgZGVmaW5lZCB0eXBlLlxuICovXG5leHBvcnQgY29uc3QgZm9yY2VUeXBlID0gPEMgZXh0ZW5kcyBJbnRlcmZhY2U8UmVhY3RpdmVFbGVtZW50PiwgVj4oXG4gIGNvbnZlcnQ/OiAodjogdW5rbm93bikgPT4gVixcbik6IFByb3BlcnR5RGVjb3JhdG9yID0+IHtcbiAgcmV0dXJuIChcbiAgICB0YXJnZXQ6IENsYXNzQWNjZXNzb3JEZWNvcmF0b3JUYXJnZXQ8QywgVj4gfCAoKHZhbHVlOiBWKSA9PiB2b2lkKSxcbiAgICBjb250ZXh0OiBDbGFzc0FjY2Vzc29yRGVjb3JhdG9yQ29udGV4dDxDLCBWPiB8IENsYXNzU2V0dGVyRGVjb3JhdG9yQ29udGV4dDxDLCBWPixcbiAgKTogYW55ID0+IHtcbiAgICBjb25zdCB7IGtpbmQsIG1ldGFkYXRhLCBuYW1lIH0gPSBjb250ZXh0O1xuXG4gICAgY29uc3QgdHlwZSA9IChnbG9iYWxUaGlzLmxpdFByb3BlcnR5TWV0YWRhdGEuZ2V0KG1ldGFkYXRhKT8uZ2V0KG5hbWUpPy50eXBlID8/IFN0cmluZykgYXMgKFxuICAgICAgdjogdW5rbm93bixcbiAgICApID0+IFY7XG5cbiAgICBjb252ZXJ0ID8/PSB0eXBlO1xuXG4gICAgaWYgKChjb252ZXJ0IGFzIHVua25vd24pID09PSBTdHJpbmcpIHtcbiAgICAgIC8vIEluIGNhc2Ugb2YgU3RyaW5nLCB3ZSB3YW50IHRvIGhhbmRsZSBudWxsL3VuZGVmaW5lZCBkaWZmZXJlbnRseVxuICAgICAgLy8gZnJvbSB0aGUgbmF0aXZlIGJlaGF2aW9yIGluIHRoYXQgd2Ugd2FudCB0byB0cmVhdCB0aGVzZSB2YWx1ZXNcbiAgICAgIC8vIGFzIGVtcHR5IHN0cmluZ3MuXG4gICAgICBjb252ZXJ0ID0gKHYpID0+ICh2ID09IG51bGwgPyAnJyA6IFN0cmluZyh2KSkgYXMgVjtcbiAgICB9IGVsc2UgaWYgKChjb252ZXJ0IGFzIHVua25vd24pID09PSBOdW1iZXIpIHtcbiAgICAgIC8vIEluIGNhc2Ugb2YgTnVtYmVyLCB3ZSB3YW50IHRvIGhhbmRsZSBudWxsIGRpZmZlcmVudGx5XG4gICAgICAvLyBmcm9tIHRoZSBuYXRpdmUgYmVoYXZpb3IgaW4gdGhhdCB3ZSB3YW50IHRvIHRyZWF0IG51bGwgYXMgTmFOLlxuICAgICAgY29udmVydCA9ICh2KSA9PiAodiA9PSBudWxsID8gTmFOIDogTnVtYmVyKHYpKSBhcyBWO1xuICAgIH1cbiAgICBpZiAoa2luZCA9PT0gJ2FjY2Vzc29yJykge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgc2V0KHRoaXM6IEMsIHZhbHVlKSB7XG4gICAgICAgICAgKHRhcmdldCBhcyBDbGFzc0FjY2Vzc29yRGVjb3JhdG9yVGFyZ2V0PEMsIFY+KS5zZXQuY2FsbChcbiAgICAgICAgICAgIHRoaXMgYXMgdW5rbm93biBhcyBDLFxuICAgICAgICAgICAgY29udmVydCEodmFsdWUpIGFzIFYsXG4gICAgICAgICAgKTtcbiAgICAgICAgfSxcbiAgICAgIH0gc2F0aXNmaWVzIENsYXNzQWNjZXNzb3JEZWNvcmF0b3JSZXN1bHQ8QywgVj47XG4gICAgfSBlbHNlIGlmIChraW5kID09PSAnc2V0dGVyJykge1xuICAgICAgcmV0dXJuIGZ1bmN0aW9uICh2YWx1ZTogdW5rbm93bikge1xuICAgICAgICAodGFyZ2V0IGFzICh2YWx1ZTogdW5rbm93bikgPT4gdm9pZCkuY2FsbCh0aGlzLCBjb252ZXJ0ISh2YWx1ZSkpO1xuICAgICAgfSBzYXRpc2ZpZXMgKHRoaXM6IEMsIHZhbHVlOiBWKSA9PiB2b2lkO1xuICAgIH1cblxuICAgIHRocm93IG5ldyBFcnJvcihgVW5zdXBwb3J0ZWQgZGVjb3JhdG9yIGxvY2F0aW9uOiAke2tpbmR9YCk7XG4gIH07XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7OztBQVFBLElBQWEsYUFDWCxZQUNxQjtDQUNyQixRQUNFLFFBQ0EsWUFDTztFQUNQLE1BQU0sRUFBRSxNQUFNLFVBQVUsU0FBUztFQUVqQyxNQUFNLE9BQVEsV0FBVyxvQkFBb0IsSUFBSSxTQUFTLEVBQUUsSUFBSSxLQUFLLEVBQUUsUUFBUTtFQUkvRSxZQUFZO0VBRVosSUFBSyxZQUF3QixRQUkzQixXQUFXLE1BQU8sS0FBSyxPQUFPLEtBQUssT0FBTyxFQUFFO09BQ3ZDLElBQUssWUFBd0IsUUFHbEMsV0FBVyxNQUFPLEtBQUssT0FBTyxNQUFNLE9BQU8sRUFBRTtFQUUvQyxJQUFJLFNBQVMsWUFDWCxPQUFPLEVBQ0wsSUFBYSxPQUFLO0dBQ2YsT0FBOEMsSUFBSSxLQUNqRCxNQUNBLFFBQVMsTUFBVyxDQUNyQjtLQUV5QztPQUN6QyxJQUFJLFNBQVMsVUFDbEIsT0FBTyxTQUFVLE9BQWM7R0FDNUIsT0FBb0MsS0FBSyxNQUFNLFFBQVMsTUFBTSxDQUFDOztFQUlwRSxNQUFNLElBQUksTUFBTSxtQ0FBbUMsT0FBTyJ9
25
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9yY2UtdHlwZS5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvY29yZS9kZWNvcmF0b3JzL2ZvcmNlLXR5cGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBSZWFjdGl2ZUVsZW1lbnQgfSBmcm9tICdsaXQnO1xuXG5pbXBvcnQgdHlwZSB7IEludGVyZmFjZSwgUHJvcGVydHlEZWNvcmF0b3IgfSBmcm9tICcuL2Jhc2UudHMnO1xuXG4vKipcbiAqIERlY29yYXRvciB0aGF0IGZvcmNlcyB0aGUgdmFsdWUgb2YgYSBwcm9wZXJ0eSBvciBnZXR0ZXIvc2V0dGVyXG4gKiB0byB0aGUgZGVmaW5lZCB0eXBlLlxuICovXG5leHBvcnQgY29uc3QgZm9yY2VUeXBlID0gPEMgZXh0ZW5kcyBJbnRlcmZhY2U8UmVhY3RpdmVFbGVtZW50PiwgVj4oXG4gIGNvbnZlcnQ/OiAodjogdW5rbm93bikgPT4gVixcbik6IFByb3BlcnR5RGVjb3JhdG9yID0+IHtcbiAgcmV0dXJuIChcbiAgICB0YXJnZXQ6IENsYXNzQWNjZXNzb3JEZWNvcmF0b3JUYXJnZXQ8QywgVj4gfCAoKHZhbHVlOiBWKSA9PiB2b2lkKSxcbiAgICBjb250ZXh0OiBDbGFzc0FjY2Vzc29yRGVjb3JhdG9yQ29udGV4dDxDLCBWPiB8IENsYXNzU2V0dGVyRGVjb3JhdG9yQ29udGV4dDxDLCBWPixcbiAgKTogYW55ID0+IHtcbiAgICBjb25zdCB7IGtpbmQsIG1ldGFkYXRhLCBuYW1lIH0gPSBjb250ZXh0O1xuXG4gICAgY29uc3QgdHlwZSA9IChnbG9iYWxUaGlzLmxpdFByb3BlcnR5TWV0YWRhdGEuZ2V0KG1ldGFkYXRhKT8uZ2V0KG5hbWUpPy50eXBlID8/IFN0cmluZykgYXMgKFxuICAgICAgdjogdW5rbm93bixcbiAgICApID0+IFY7XG5cbiAgICBjb252ZXJ0ID8/PSB0eXBlO1xuXG4gICAgaWYgKChjb252ZXJ0IGFzIHVua25vd24pID09PSBTdHJpbmcpIHtcbiAgICAgIC8vIEluIGNhc2Ugb2YgU3RyaW5nLCB3ZSB3YW50IHRvIGhhbmRsZSBudWxsL3VuZGVmaW5lZCBkaWZmZXJlbnRseVxuICAgICAgLy8gZnJvbSB0aGUgbmF0aXZlIGJlaGF2aW9yIGluIHRoYXQgd2Ugd2FudCB0byB0cmVhdCB0aGVzZSB2YWx1ZXNcbiAgICAgIC8vIGFzIGVtcHR5IHN0cmluZ3MuXG4gICAgICBjb252ZXJ0ID0gKHYpID0+ICh2ID09IG51bGwgPyAnJyA6IFN0cmluZyh2KSkgYXMgVjtcbiAgICB9IGVsc2UgaWYgKChjb252ZXJ0IGFzIHVua25vd24pID09PSBOdW1iZXIpIHtcbiAgICAgIC8vIEluIGNhc2Ugb2YgTnVtYmVyLCB3ZSB3YW50IHRvIGhhbmRsZSBudWxsIGRpZmZlcmVudGx5XG4gICAgICAvLyBmcm9tIHRoZSBuYXRpdmUgYmVoYXZpb3IgaW4gdGhhdCB3ZSB3YW50IHRvIHRyZWF0IG51bGwgYXMgTmFOLlxuICAgICAgY29udmVydCA9ICh2KSA9PiAodiA9PSBudWxsID8gTmFOIDogTnVtYmVyKHYpKSBhcyBWO1xuICAgIH1cbiAgICBpZiAoa2luZCA9PT0gJ2FjY2Vzc29yJykge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgc2V0KHRoaXM6IEMsIHZhbHVlKSB7XG4gICAgICAgICAgKHRhcmdldCBhcyBDbGFzc0FjY2Vzc29yRGVjb3JhdG9yVGFyZ2V0PEMsIFY+KS5zZXQuY2FsbChcbiAgICAgICAgICAgIHRoaXMgYXMgdW5rbm93biBhcyBDLFxuICAgICAgICAgICAgY29udmVydCEodmFsdWUpIGFzIFYsXG4gICAgICAgICAgKTtcbiAgICAgICAgfSxcbiAgICAgIH0gc2F0aXNmaWVzIENsYXNzQWNjZXNzb3JEZWNvcmF0b3JSZXN1bHQ8QywgVj47XG4gICAgfSBlbHNlIGlmIChraW5kID09PSAnc2V0dGVyJykge1xuICAgICAgcmV0dXJuIGZ1bmN0aW9uICh2YWx1ZTogdW5rbm93bikge1xuICAgICAgICAodGFyZ2V0IGFzICh2YWx1ZTogdW5rbm93bikgPT4gdm9pZCkuY2FsbCh0aGlzLCBjb252ZXJ0ISh2YWx1ZSkpO1xuICAgICAgfSBzYXRpc2ZpZXMgKHRoaXM6IEMsIHZhbHVlOiBWKSA9PiB2b2lkO1xuICAgIH1cblxuICAgIHRocm93IG5ldyBFcnJvcihgVW5zdXBwb3J0ZWQgZGVjb3JhdG9yIGxvY2F0aW9uOiAke2tpbmR9YCk7XG4gIH07XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7OztBQVFBLElBQWEsYUFDWCxZQUNxQjtDQUNyQixRQUNFLFFBQ0EsWUFDTztFQUNQLE1BQU0sRUFBRSxNQUFNLFVBQVUsU0FBUztFQUVqQyxNQUFNLE9BQVEsV0FBVyxvQkFBb0IsSUFBSSxRQUFRLEdBQUcsSUFBSSxJQUFJLEdBQUcsUUFBUTtFQUkvRSxZQUFZO0VBRVosSUFBSyxZQUF3QixRQUkzQixXQUFXLE1BQU8sS0FBSyxPQUFPLEtBQUssT0FBTyxDQUFDO09BQ3RDLElBQUssWUFBd0IsUUFHbEMsV0FBVyxNQUFPLEtBQUssT0FBTyxNQUFNLE9BQU8sQ0FBQztFQUU5QyxJQUFJLFNBQVMsWUFDWCxPQUFPLEVBQ0wsSUFBYSxPQUFLO0dBQ2YsT0FBOEMsSUFBSSxLQUNqRCxNQUNBLFFBQVMsS0FBSyxDQUFNO0VBRXhCLEVBQUE7T0FFRyxJQUFJLFNBQVMsVUFDbEIsT0FBTyxTQUFVLE9BQWM7R0FDNUIsT0FBb0MsS0FBSyxNQUFNLFFBQVMsS0FBSyxDQUFDO0VBQ2pFO0VBR0YsTUFBTSxJQUFJLE1BQU0sbUNBQW1DLE1BQU07Q0FDM0Q7QUFDRiJ9
@@ -15,4 +15,4 @@ var getOverride = (callback) => {
15
15
  //#endregion
16
16
  export { getOverride };
17
17
 
18
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LW92ZXJyaWRlLmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb3JlL2RlY29yYXRvcnMvZ2V0LW92ZXJyaWRlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUmVhY3RpdmVFbGVtZW50IH0gZnJvbSAnbGl0JztcblxuaW1wb3J0IHR5cGUgeyBJbnRlcmZhY2UgfSBmcm9tICcuL2Jhc2UudHMnO1xuXG4vKipcbiAqIERlY29yYXRvciB0aGF0IG92ZXJyaWRlcyB0aGUgdW5kZXJseWluZyBnZXR0ZXIgb2YgdGhlIGFjY2Vzc29yLlxuICovXG5leHBvcnQgY29uc3QgZ2V0T3ZlcnJpZGUgPSA8QyBleHRlbmRzIEludGVyZmFjZTxSZWFjdGl2ZUVsZW1lbnQ+LCBWPihcbiAgY2FsbGJhY2s6IChpbnN0YW5jZTogQywgaW5uZXJWYWx1ZTogVikgPT4gVixcbikgPT4ge1xuICByZXR1cm4gKFxuICAgIHRhcmdldDogQ2xhc3NBY2Nlc3NvckRlY29yYXRvclRhcmdldDxDLCBWPixcbiAgICBjb250ZXh0OiBDbGFzc0FjY2Vzc29yRGVjb3JhdG9yQ29udGV4dDxDLCBWPixcbiAgKTogYW55ID0+IHtcbiAgICBjb25zdCB7IGtpbmQgfSA9IGNvbnRleHQ7XG4gICAgaWYgKGtpbmQgPT09ICdhY2Nlc3NvcicpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGdldCh0aGlzOiBDKSB7XG4gICAgICAgICAgY29uc3QgaW5uZXJWYWx1ZSA9ICh0YXJnZXQgYXMgQ2xhc3NBY2Nlc3NvckRlY29yYXRvclRhcmdldDxDLCBWPikuZ2V0LmNhbGwoXG4gICAgICAgICAgICB0aGlzIGFzIHVua25vd24gYXMgQyxcbiAgICAgICAgICApO1xuICAgICAgICAgIHJldHVybiBjYWxsYmFjayh0aGlzLCBpbm5lclZhbHVlKTtcbiAgICAgICAgfSxcbiAgICAgIH0gc2F0aXNmaWVzIENsYXNzQWNjZXNzb3JEZWNvcmF0b3JSZXN1bHQ8QywgVj47XG4gICAgfVxuXG4gICAgdGhyb3cgbmV3IEVycm9yKGBVbnN1cHBvcnRlZCBkZWNvcmF0b3IgbG9jYXRpb246ICR7a2luZH1gKTtcbiAgfTtcbn07XG4iXSwibWFwcGluZ3MiOiI7Ozs7QUFPQSxJQUFhLGVBQ1gsYUFDRTtDQUNGLFFBQ0UsUUFDQSxZQUNPO0VBQ1AsTUFBTSxFQUFFLFNBQVM7RUFDakIsSUFBSSxTQUFTLFlBQ1gsT0FBTyxFQUNMLE1BQUc7R0FDRCxNQUFNLGFBQWMsT0FBOEMsSUFBSSxLQUNwRSxLQUNEO0dBQ0QsT0FBTyxTQUFTLE1BQU0sV0FBVztLQUVTO0VBR2hELE1BQU0sSUFBSSxNQUFNLG1DQUFtQyxPQUFPIn0=
18
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LW92ZXJyaWRlLmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb3JlL2RlY29yYXRvcnMvZ2V0LW92ZXJyaWRlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUmVhY3RpdmVFbGVtZW50IH0gZnJvbSAnbGl0JztcblxuaW1wb3J0IHR5cGUgeyBJbnRlcmZhY2UgfSBmcm9tICcuL2Jhc2UudHMnO1xuXG4vKipcbiAqIERlY29yYXRvciB0aGF0IG92ZXJyaWRlcyB0aGUgdW5kZXJseWluZyBnZXR0ZXIgb2YgdGhlIGFjY2Vzc29yLlxuICovXG5leHBvcnQgY29uc3QgZ2V0T3ZlcnJpZGUgPSA8QyBleHRlbmRzIEludGVyZmFjZTxSZWFjdGl2ZUVsZW1lbnQ+LCBWPihcbiAgY2FsbGJhY2s6IChpbnN0YW5jZTogQywgaW5uZXJWYWx1ZTogVikgPT4gVixcbikgPT4ge1xuICByZXR1cm4gKFxuICAgIHRhcmdldDogQ2xhc3NBY2Nlc3NvckRlY29yYXRvclRhcmdldDxDLCBWPixcbiAgICBjb250ZXh0OiBDbGFzc0FjY2Vzc29yRGVjb3JhdG9yQ29udGV4dDxDLCBWPixcbiAgKTogYW55ID0+IHtcbiAgICBjb25zdCB7IGtpbmQgfSA9IGNvbnRleHQ7XG4gICAgaWYgKGtpbmQgPT09ICdhY2Nlc3NvcicpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGdldCh0aGlzOiBDKSB7XG4gICAgICAgICAgY29uc3QgaW5uZXJWYWx1ZSA9ICh0YXJnZXQgYXMgQ2xhc3NBY2Nlc3NvckRlY29yYXRvclRhcmdldDxDLCBWPikuZ2V0LmNhbGwoXG4gICAgICAgICAgICB0aGlzIGFzIHVua25vd24gYXMgQyxcbiAgICAgICAgICApO1xuICAgICAgICAgIHJldHVybiBjYWxsYmFjayh0aGlzLCBpbm5lclZhbHVlKTtcbiAgICAgICAgfSxcbiAgICAgIH0gc2F0aXNmaWVzIENsYXNzQWNjZXNzb3JEZWNvcmF0b3JSZXN1bHQ8QywgVj47XG4gICAgfVxuXG4gICAgdGhyb3cgbmV3IEVycm9yKGBVbnN1cHBvcnRlZCBkZWNvcmF0b3IgbG9jYXRpb246ICR7a2luZH1gKTtcbiAgfTtcbn07XG4iXSwibWFwcGluZ3MiOiI7Ozs7QUFPQSxJQUFhLGVBQ1gsYUFDRTtDQUNGLFFBQ0UsUUFDQSxZQUNPO0VBQ1AsTUFBTSxFQUFFLFNBQVM7RUFDakIsSUFBSSxTQUFTLFlBQ1gsT0FBTyxFQUNMLE1BQUc7R0FDRCxNQUFNLGFBQWMsT0FBOEMsSUFBSSxLQUNwRSxJQUFvQjtHQUV0QixPQUFPLFNBQVMsTUFBTSxVQUFVO0VBQ2xDLEVBQUE7RUFJSixNQUFNLElBQUksTUFBTSxtQ0FBbUMsTUFBTTtDQUMzRDtBQUNGIn0=
@@ -18,4 +18,4 @@ var handleDistinctChange = (callback) => {
18
18
  //#endregion
19
19
  export { handleDistinctChange };
20
20
 
21
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFuZGxlLWRpc3RpbmN0LWNoYW5nZS5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvY29yZS9kZWNvcmF0b3JzL2hhbmRsZS1kaXN0aW5jdC1jaGFuZ2UudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBSZWFjdGl2ZUVsZW1lbnQgfSBmcm9tICdsaXQnO1xuXG5pbXBvcnQgdHlwZSB7IEludGVyZmFjZSB9IGZyb20gJy4vYmFzZS50cyc7XG5cbi8qKlxuICogRGVjb3JhdG9yIHRoYXQgY2FsbHMgdGhlIGdpdmVuIGNhbGxiYWNrIHdoZW4gdGhlIHZhbHVlXG4gKiBvZiB0aGUgYXNzb2NpYXRlZCBwcm9wZXJ0eSBpcyBjaGFuZ2VkLlxuICovXG5leHBvcnQgY29uc3QgaGFuZGxlRGlzdGluY3RDaGFuZ2UgPSA8QyBleHRlbmRzIEludGVyZmFjZTxSZWFjdGl2ZUVsZW1lbnQ+LCBWPihcbiAgY2FsbGJhY2s6IChpbnN0YW5jZTogQywgbmV3VmFsdWU6IFYsIG9sZFZhbHVlOiBWIHwgdW5kZWZpbmVkKSA9PiB2b2lkLFxuKSA9PiB7XG4gIHJldHVybiAoXG4gICAgdGFyZ2V0OiBDbGFzc0FjY2Vzc29yRGVjb3JhdG9yVGFyZ2V0PEMsIFY+LFxuICAgIGNvbnRleHQ6IENsYXNzQWNjZXNzb3JEZWNvcmF0b3JDb250ZXh0PEMsIFY+LFxuICApOiBhbnkgPT4ge1xuICAgIGNvbnN0IHsga2luZCB9ID0gY29udGV4dDtcbiAgICBpZiAoa2luZCA9PT0gJ2FjY2Vzc29yJykge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgc2V0KHRoaXM6IEMsIHZhbHVlKSB7XG4gICAgICAgICAgY29uc3Qgb2xkVmFsdWUgPSBjb250ZXh0LmFjY2Vzcy5nZXQodGhpcyk7XG4gICAgICAgICAgKHRhcmdldCBhcyBDbGFzc0FjY2Vzc29yRGVjb3JhdG9yVGFyZ2V0PEMsIFY+KS5zZXQuY2FsbCh0aGlzIGFzIHVua25vd24gYXMgQywgdmFsdWUpO1xuICAgICAgICAgIGNvbnN0IG5ld1ZhbHVlID0gY29udGV4dC5hY2Nlc3MuZ2V0KHRoaXMpO1xuICAgICAgICAgIGlmIChuZXdWYWx1ZSAhPT0gb2xkVmFsdWUpIHtcbiAgICAgICAgICAgIGNhbGxiYWNrKHRoaXMsIG5ld1ZhbHVlLCBvbGRWYWx1ZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgfSBzYXRpc2ZpZXMgQ2xhc3NBY2Nlc3NvckRlY29yYXRvclJlc3VsdDxDLCBWPjtcbiAgICB9XG5cbiAgICB0aHJvdyBuZXcgRXJyb3IoYFVuc3VwcG9ydGVkIGRlY29yYXRvciBsb2NhdGlvbjogJHtraW5kfWApO1xuICB9O1xufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFRQSxJQUFhLHdCQUNYLGFBQ0U7Q0FDRixRQUNFLFFBQ0EsWUFDTztFQUNQLE1BQU0sRUFBRSxTQUFTO0VBQ2pCLElBQUksU0FBUyxZQUNYLE9BQU8sRUFDTCxJQUFhLE9BQUs7R0FDaEIsTUFBTSxXQUFXLFFBQVEsT0FBTyxJQUFJLEtBQUs7R0FDeEMsT0FBOEMsSUFBSSxLQUFLLE1BQXNCLE1BQU07R0FDcEYsTUFBTSxXQUFXLFFBQVEsT0FBTyxJQUFJLEtBQUs7R0FDekMsSUFBSSxhQUFhLFVBQ2YsU0FBUyxNQUFNLFVBQVUsU0FBUztLQUdNO0VBR2hELE1BQU0sSUFBSSxNQUFNLG1DQUFtQyxPQUFPIn0=
21
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFuZGxlLWRpc3RpbmN0LWNoYW5nZS5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvY29yZS9kZWNvcmF0b3JzL2hhbmRsZS1kaXN0aW5jdC1jaGFuZ2UudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBSZWFjdGl2ZUVsZW1lbnQgfSBmcm9tICdsaXQnO1xuXG5pbXBvcnQgdHlwZSB7IEludGVyZmFjZSB9IGZyb20gJy4vYmFzZS50cyc7XG5cbi8qKlxuICogRGVjb3JhdG9yIHRoYXQgY2FsbHMgdGhlIGdpdmVuIGNhbGxiYWNrIHdoZW4gdGhlIHZhbHVlXG4gKiBvZiB0aGUgYXNzb2NpYXRlZCBwcm9wZXJ0eSBpcyBjaGFuZ2VkLlxuICovXG5leHBvcnQgY29uc3QgaGFuZGxlRGlzdGluY3RDaGFuZ2UgPSA8QyBleHRlbmRzIEludGVyZmFjZTxSZWFjdGl2ZUVsZW1lbnQ+LCBWPihcbiAgY2FsbGJhY2s6IChpbnN0YW5jZTogQywgbmV3VmFsdWU6IFYsIG9sZFZhbHVlOiBWIHwgdW5kZWZpbmVkKSA9PiB2b2lkLFxuKSA9PiB7XG4gIHJldHVybiAoXG4gICAgdGFyZ2V0OiBDbGFzc0FjY2Vzc29yRGVjb3JhdG9yVGFyZ2V0PEMsIFY+LFxuICAgIGNvbnRleHQ6IENsYXNzQWNjZXNzb3JEZWNvcmF0b3JDb250ZXh0PEMsIFY+LFxuICApOiBhbnkgPT4ge1xuICAgIGNvbnN0IHsga2luZCB9ID0gY29udGV4dDtcbiAgICBpZiAoa2luZCA9PT0gJ2FjY2Vzc29yJykge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgc2V0KHRoaXM6IEMsIHZhbHVlKSB7XG4gICAgICAgICAgY29uc3Qgb2xkVmFsdWUgPSBjb250ZXh0LmFjY2Vzcy5nZXQodGhpcyk7XG4gICAgICAgICAgKHRhcmdldCBhcyBDbGFzc0FjY2Vzc29yRGVjb3JhdG9yVGFyZ2V0PEMsIFY+KS5zZXQuY2FsbCh0aGlzIGFzIHVua25vd24gYXMgQywgdmFsdWUpO1xuICAgICAgICAgIGNvbnN0IG5ld1ZhbHVlID0gY29udGV4dC5hY2Nlc3MuZ2V0KHRoaXMpO1xuICAgICAgICAgIGlmIChuZXdWYWx1ZSAhPT0gb2xkVmFsdWUpIHtcbiAgICAgICAgICAgIGNhbGxiYWNrKHRoaXMsIG5ld1ZhbHVlLCBvbGRWYWx1ZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgfSBzYXRpc2ZpZXMgQ2xhc3NBY2Nlc3NvckRlY29yYXRvclJlc3VsdDxDLCBWPjtcbiAgICB9XG5cbiAgICB0aHJvdyBuZXcgRXJyb3IoYFVuc3VwcG9ydGVkIGRlY29yYXRvciBsb2NhdGlvbjogJHtraW5kfWApO1xuICB9O1xufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFRQSxJQUFhLHdCQUNYLGFBQ0U7Q0FDRixRQUNFLFFBQ0EsWUFDTztFQUNQLE1BQU0sRUFBRSxTQUFTO0VBQ2pCLElBQUksU0FBUyxZQUNYLE9BQU8sRUFDTCxJQUFhLE9BQUs7R0FDaEIsTUFBTSxXQUFXLFFBQVEsT0FBTyxJQUFJLElBQUk7R0FDdkMsT0FBOEMsSUFBSSxLQUFLLE1BQXNCLEtBQUs7R0FDbkYsTUFBTSxXQUFXLFFBQVEsT0FBTyxJQUFJLElBQUk7R0FDeEMsSUFBSSxhQUFhLFVBQ2YsU0FBUyxNQUFNLFVBQVUsUUFBUTtFQUVyQyxFQUFBO0VBSUosTUFBTSxJQUFJLE1BQU0sbUNBQW1DLE1BQU07Q0FDM0Q7QUFDRiJ9
@@ -38,4 +38,4 @@ var hostAttributes = (attributes) => (target) => target.addInitializer((instance
38
38
  //#endregion
39
39
  export { hostAttributes };
40
40
 
41
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9zdC1hdHRyaWJ1dGVzLmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb3JlL2RlY29yYXRvcnMvaG9zdC1hdHRyaWJ1dGVzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzU2VydmVyLCB0eXBlIFJlYWN0aXZlRWxlbWVudCB9IGZyb20gJ2xpdCc7XG5cbmltcG9ydCB0eXBlIHsgQWJzdHJhY3RDb25zdHJ1Y3RvciB9IGZyb20gJy4uL21peGlucy50cyc7XG5cbmZ1bmN0aW9uIGFwcGx5QXR0cmlidXRlcyhcbiAgaW5zdGFuY2U6IFJlYWN0aXZlRWxlbWVudCxcbiAgYXR0cmlidXRlczogUmVjb3JkPHN0cmluZywgc3RyaW5nIHwgbnVsbD4sXG4pOiB2b2lkIHtcbiAgZm9yIChjb25zdCBbbmFtZSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKGF0dHJpYnV0ZXMpKSB7XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICBpbnN0YW5jZS5zZXRBdHRyaWJ1dGUobmFtZSwgdmFsdWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICBpbnN0YW5jZS50b2dnbGVBdHRyaWJ1dGUobmFtZSwgdmFsdWUgIT09IG51bGwpO1xuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIEFwcGxpZXMgdGhlIGdpdmVuIGF0dHJpYnV0ZXMgdG8gdGhlIHJlbGF0ZWQgZWxlbWVudC5cbiAqIElmIGFuIGVtcHR5IHN0cmluZyBpcyBwYXNzZWQgYXMgYSB2YWx1ZSwgdGhlIGF0dHJpYnV0ZSB3aWxsIGJlIHNldFxuICogd2l0aG91dCB2YWx1ZS5cbiAqXG4gKiBAZXhhbXBsZVxuICpcbiAqIEBjdXN0b21FbGVtZW50KCdteS1lbGVtZW50KVxuICogQGhvc3RBdHRyaWJ1dGVzKHtcbiAqICAgcm9sZTogJ3JlZ2lvbidcbiAqIH0pXG4gKiBleHBvcnQgY2xhc3MgTXlFbGVtZW50IGV4dGVuZHMgTGl0RWxlbWVudCB7XG4gKiAgIC4uLlxuICogfVxuICpcbiAqIEBwYXJhbSBhdHRyaWJ1dGVzIEEgcmVjb3JkIG9mIGF0dHJpYnV0ZXMgdG8gYXBwbHkgdG8gdGhlIGVsZW1lbnQuXG4gKiBAZGVwcmVjYXRlZCBXaWxsIGJlIHJlbW92ZWQgd2l0aCBuZXh0IG1ham9yIHZlcnNpb24uXG4gKi9cbmV4cG9ydCBjb25zdCBob3N0QXR0cmlidXRlcyA9XG4gIChhdHRyaWJ1dGVzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCBudWxsPikgPT4gKHRhcmdldDogQWJzdHJhY3RDb25zdHJ1Y3RvcjxSZWFjdGl2ZUVsZW1lbnQ+KSA9PlxuICAgICh0YXJnZXQgYXMgdHlwZW9mIFJlYWN0aXZlRWxlbWVudCkuYWRkSW5pdGlhbGl6ZXIoKGluc3RhbmNlOiBSZWFjdGl2ZUVsZW1lbnQpID0+IHtcbiAgICAgIGlmIChpc1NlcnZlcikge1xuICAgICAgICBhcHBseUF0dHJpYnV0ZXMoaW5zdGFuY2UsIGF0dHJpYnV0ZXMpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gSXQgaXMgbm90IGFsbG93ZWQgdG8gc2V0IGF0dHJpYnV0ZXMgZHVyaW5nIGNvbnN0cnVjdG9yIHBoYXNlLiBEdWUgdG8gdGhpcyB3ZSB1c2UgYVxuICAgICAgICAvLyBjb250cm9sbGVyIHRvIGFzc2lnbiB0aGUgYXR0cmlidXRlcyBkdXJpbmcgbGl0IGluaXRpYWxpemF0aW9uIHBoYXNlLlxuICAgICAgICAvLyBIb3N0Q29ubmVjdGVkIG9yIGhvc3RVcGRhdGUgY2FuIGJlIGNhbGxlZCBlaXRoZXIgb3JkZXIuIER1ZSB0byB0aGF0IHdlIGFwcGx5IGluIHRoZVxuICAgICAgICAvLyBmaXJzdCBvY2N1cnJlbmNlIGFuZCBkaXJlY3RseSByZW1vdmUgdGhlIGNvbnRyb2xsZXIsIHNvIGl0J3Mgb25seSBjYWxsZWQgb25jZS5cbiAgICAgICAgaW5zdGFuY2UuYWRkQ29udHJvbGxlcih7XG4gICAgICAgICAgaG9zdENvbm5lY3RlZCgpIHtcbiAgICAgICAgICAgIGFwcGx5QXR0cmlidXRlcyhpbnN0YW5jZSwgYXR0cmlidXRlcyk7XG4gICAgICAgICAgICBpbnN0YW5jZS5yZW1vdmVDb250cm9sbGVyKHRoaXMpO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgaG9zdFVwZGF0ZSgpIHtcbiAgICAgICAgICAgIGFwcGx5QXR0cmlidXRlcyhpbnN0YW5jZSwgYXR0cmlidXRlcyk7XG4gICAgICAgICAgICBpbnN0YW5jZS5yZW1vdmVDb250cm9sbGVyKHRoaXMpO1xuICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuIl0sIm1hcHBpbmdzIjoiOztBQUlBLFNBQVMsZ0JBQ1AsVUFDQSxZQUF5QztDQUV6QyxLQUFLLE1BQU0sQ0FBQyxNQUFNLFVBQVUsT0FBTyxRQUFRLFdBQVcsRUFDcEQsSUFBSSxPQUNGLFNBQVMsYUFBYSxNQUFNLE1BQU07TUFFbEMsU0FBUyxnQkFBZ0IsTUFBTSxVQUFVLEtBQUs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBdUJwRCxJQUFhLGtCQUNWLGdCQUErQyxXQUM3QyxPQUFrQyxnQkFBZ0IsYUFBNkI7Q0FDOUUsSUFBSSxVQUNGLGdCQUFnQixVQUFVLFdBQVc7TUFNckMsU0FBUyxjQUFjO0VBQ3JCLGdCQUFhO0dBQ1gsZ0JBQWdCLFVBQVUsV0FBVztHQUNyQyxTQUFTLGlCQUFpQixLQUFLOztFQUVqQyxhQUFVO0dBQ1IsZ0JBQWdCLFVBQVUsV0FBVztHQUNyQyxTQUFTLGlCQUFpQixLQUFLOztFQUVsQyxDQUFDO0VBRUoifQ==
41
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9zdC1hdHRyaWJ1dGVzLmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb3JlL2RlY29yYXRvcnMvaG9zdC1hdHRyaWJ1dGVzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzU2VydmVyLCB0eXBlIFJlYWN0aXZlRWxlbWVudCB9IGZyb20gJ2xpdCc7XG5cbmltcG9ydCB0eXBlIHsgQWJzdHJhY3RDb25zdHJ1Y3RvciB9IGZyb20gJy4uL21peGlucy50cyc7XG5cbmZ1bmN0aW9uIGFwcGx5QXR0cmlidXRlcyhcbiAgaW5zdGFuY2U6IFJlYWN0aXZlRWxlbWVudCxcbiAgYXR0cmlidXRlczogUmVjb3JkPHN0cmluZywgc3RyaW5nIHwgbnVsbD4sXG4pOiB2b2lkIHtcbiAgZm9yIChjb25zdCBbbmFtZSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKGF0dHJpYnV0ZXMpKSB7XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICBpbnN0YW5jZS5zZXRBdHRyaWJ1dGUobmFtZSwgdmFsdWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICBpbnN0YW5jZS50b2dnbGVBdHRyaWJ1dGUobmFtZSwgdmFsdWUgIT09IG51bGwpO1xuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIEFwcGxpZXMgdGhlIGdpdmVuIGF0dHJpYnV0ZXMgdG8gdGhlIHJlbGF0ZWQgZWxlbWVudC5cbiAqIElmIGFuIGVtcHR5IHN0cmluZyBpcyBwYXNzZWQgYXMgYSB2YWx1ZSwgdGhlIGF0dHJpYnV0ZSB3aWxsIGJlIHNldFxuICogd2l0aG91dCB2YWx1ZS5cbiAqXG4gKiBAZXhhbXBsZVxuICpcbiAqIEBjdXN0b21FbGVtZW50KCdteS1lbGVtZW50KVxuICogQGhvc3RBdHRyaWJ1dGVzKHtcbiAqICAgcm9sZTogJ3JlZ2lvbidcbiAqIH0pXG4gKiBleHBvcnQgY2xhc3MgTXlFbGVtZW50IGV4dGVuZHMgTGl0RWxlbWVudCB7XG4gKiAgIC4uLlxuICogfVxuICpcbiAqIEBwYXJhbSBhdHRyaWJ1dGVzIEEgcmVjb3JkIG9mIGF0dHJpYnV0ZXMgdG8gYXBwbHkgdG8gdGhlIGVsZW1lbnQuXG4gKiBAZGVwcmVjYXRlZCBXaWxsIGJlIHJlbW92ZWQgd2l0aCBuZXh0IG1ham9yIHZlcnNpb24uXG4gKi9cbmV4cG9ydCBjb25zdCBob3N0QXR0cmlidXRlcyA9XG4gIChhdHRyaWJ1dGVzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCBudWxsPikgPT4gKHRhcmdldDogQWJzdHJhY3RDb25zdHJ1Y3RvcjxSZWFjdGl2ZUVsZW1lbnQ+KSA9PlxuICAgICh0YXJnZXQgYXMgdHlwZW9mIFJlYWN0aXZlRWxlbWVudCkuYWRkSW5pdGlhbGl6ZXIoKGluc3RhbmNlOiBSZWFjdGl2ZUVsZW1lbnQpID0+IHtcbiAgICAgIGlmIChpc1NlcnZlcikge1xuICAgICAgICBhcHBseUF0dHJpYnV0ZXMoaW5zdGFuY2UsIGF0dHJpYnV0ZXMpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gSXQgaXMgbm90IGFsbG93ZWQgdG8gc2V0IGF0dHJpYnV0ZXMgZHVyaW5nIGNvbnN0cnVjdG9yIHBoYXNlLiBEdWUgdG8gdGhpcyB3ZSB1c2UgYVxuICAgICAgICAvLyBjb250cm9sbGVyIHRvIGFzc2lnbiB0aGUgYXR0cmlidXRlcyBkdXJpbmcgbGl0IGluaXRpYWxpemF0aW9uIHBoYXNlLlxuICAgICAgICAvLyBIb3N0Q29ubmVjdGVkIG9yIGhvc3RVcGRhdGUgY2FuIGJlIGNhbGxlZCBlaXRoZXIgb3JkZXIuIER1ZSB0byB0aGF0IHdlIGFwcGx5IGluIHRoZVxuICAgICAgICAvLyBmaXJzdCBvY2N1cnJlbmNlIGFuZCBkaXJlY3RseSByZW1vdmUgdGhlIGNvbnRyb2xsZXIsIHNvIGl0J3Mgb25seSBjYWxsZWQgb25jZS5cbiAgICAgICAgaW5zdGFuY2UuYWRkQ29udHJvbGxlcih7XG4gICAgICAgICAgaG9zdENvbm5lY3RlZCgpIHtcbiAgICAgICAgICAgIGFwcGx5QXR0cmlidXRlcyhpbnN0YW5jZSwgYXR0cmlidXRlcyk7XG4gICAgICAgICAgICBpbnN0YW5jZS5yZW1vdmVDb250cm9sbGVyKHRoaXMpO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgaG9zdFVwZGF0ZSgpIHtcbiAgICAgICAgICAgIGFwcGx5QXR0cmlidXRlcyhpbnN0YW5jZSwgYXR0cmlidXRlcyk7XG4gICAgICAgICAgICBpbnN0YW5jZS5yZW1vdmVDb250cm9sbGVyKHRoaXMpO1xuICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuIl0sIm1hcHBpbmdzIjoiOztBQUlBLFNBQVMsZ0JBQ1AsVUFDQSxZQUF5QztDQUV6QyxLQUFLLE1BQU0sQ0FBQyxNQUFNLFVBQVUsT0FBTyxRQUFRLFVBQVUsR0FDbkQsSUFBSSxPQUNGLFNBQVMsYUFBYSxNQUFNLEtBQUs7TUFFakMsU0FBUyxnQkFBZ0IsTUFBTSxVQUFVLElBQUk7QUFHbkQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFvQkEsSUFBYSxrQkFDVixnQkFBK0MsV0FDN0MsT0FBa0MsZ0JBQWdCLGFBQTZCO0NBQzlFLElBQUksVUFDRixnQkFBZ0IsVUFBVSxVQUFVO01BTXBDLFNBQVMsY0FBYztFQUNyQixnQkFBYTtHQUNYLGdCQUFnQixVQUFVLFVBQVU7R0FDcEMsU0FBUyxpQkFBaUIsSUFBSTtFQUNoQztFQUNBLGFBQVU7R0FDUixnQkFBZ0IsVUFBVSxVQUFVO0dBQ3BDLFNBQVMsaUJBQWlCLElBQUk7RUFDaEM7RUFDRDtBQUVMLENBQUMifQ==
@@ -114,4 +114,4 @@ var idReference = () => {
114
114
  //#endregion
115
115
  export { idReference };
116
116
 
117
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWQtcmVmZXJlbmNlLmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb3JlL2RlY29yYXRvcnMvaWQtcmVmZXJlbmNlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzU2VydmVyLCB0eXBlIFJlYWN0aXZlQ29udHJvbGxlciwgdHlwZSBSZWFjdGl2ZUVsZW1lbnQgfSBmcm9tICdsaXQnO1xuXG5pbXBvcnQgdHlwZSB7IEludGVyZmFjZSB9IGZyb20gJy4vYmFzZS50cyc7XG5cbmludGVyZmFjZSBJZFJlZmVyZW5jZUNvbnRyb2xsZXIgZXh0ZW5kcyBSZWFjdGl2ZUNvbnRyb2xsZXIge1xuICBob3N0OiBJbnRlcmZhY2U8UmVhY3RpdmVFbGVtZW50PjtcbiAgcm9vdE5vZGU6IERvY3VtZW50IHwgU2hhZG93Um9vdCB8IG51bGw7XG4gIGNoZWNrSWRSZWZlcmVuY2U6IChjaGFuZ2VkSWRzPzogU2V0PHN0cmluZz4pID0+IHZvaWQ7XG59XG5cbi8qKlxuICogV2Uga2VlcCB0cmFjayBvZiB0aGUgb2JzZXJ2ZXJzIGZvciBlYWNoIHJvb3Qgbm9kZSwgd2hpY2ggaXMgZWl0aGVyIGEgZG9jdW1lbnRcbiAqIG9yIGEgc2hhZG93IHJvb3QuXG4gKiBFYWNoIG9ic2VydmVyIGlzIGFzc29jaWF0ZWQgd2l0aCBhIHNldCBvZiBjb250cm9sbGVycyB0aGF0IGVhY2ggcmVwcmVzZW50XG4gKiBhbiBpZCByZWZlcmVuY2UuXG4gKiBXaGVuZXZlciB0aGUgTXV0YXRpb25PYnNlcnZlciBkZXRlY3RzIGEgY2hhbmdlIHRoYXQgYWZmZWN0cyBhIHBvdGVudGlhbCBpZFxuICogcmVmZXJlbmNlLCBpdCBub3RpZmllcyBhbGwgY29udHJvbGxlcnMgYXNzb2NpYXRlZCB3aXRoIHRoYXQgb2JzZXJ2ZXIuXG4gKi9cbmNvbnN0IG9ic2VydmVycyA9IG5ldyBXZWFrTWFwPFxuICBOb2RlLFxuICB7XG4gICAgb2JzZXJ2ZXI6IE11dGF0aW9uT2JzZXJ2ZXI7XG4gICAgY29udHJvbGxlcnM6IFNldDxJZFJlZmVyZW5jZUNvbnRyb2xsZXI+O1xuICB9XG4+KCk7XG4vKipcbiAqIFdoZW5ldmVyIGFuIGlkIHN0cmluZyBpcyBwYXNzZWQgdG8gdGhlIHNldHRlciBhbmQgbm8gcmVmZXJlbmNlIGlzIGZvdW5kLFxuICogd2Ugc3RvcmUgaXQgaW4gdGhpcyBXZWFrTWFwLlxuICogVGhlIGtleSBpcyB0aGUgaG9zdCBlbGVtZW50IGFuZCB0aGUgdmFsdWUgaXMgdGhlIGlkIHN0cmluZy5cbiAqIFBsZWFzZSBub3RlIHRoYXQgaWYgYW4gaWQgcmVmZXJlbmNlIHByb3BlcnR5IGhhcyBib3RoIGFuIGVudHJ5XG4gKiBpbiB0aGlzIFdlYWtNYXAgYW5kIGFuIGFzc29jaWF0ZWQgYXR0cmlidXRlLCB0aGUgYXR0cmlidXRlIHdpbGwgdGFrZSBwcmVjZWRlbmNlLlxuICovXG5jb25zdCBpZFJlZmVyZW5jZXMgPSBuZXcgV2Vha01hcDxvYmplY3QsIHN0cmluZyB8IG51bGw+KCk7XG5cbi8qKlxuICogQWNjZXNzb3IgZGVjb3JhdG9yIHRoYXQgcmVzb2x2ZXMgaWQgcmVmZXJlbmNlcyBkeW5hbWljYWxseS5cbiAqIElmIGEgc3RyaW5nIGlzIHBhc3NlZCAoZS5nLiBmcm9tIGFuIGF0dHJpYnV0ZSksIGl0IHdpbGwgYmUgcmVzb2x2ZWQgdG8gdGhlIGVsZW1lbnQgd2l0aCB0aGF0IGlkLlxuICogVGhpcyBkZWNvcmF0b3Igb2JzZXJ2ZXMgdGhlIGNvbm5lY3RlZCBkb2N1bWVudCBmcmFnbWVudCBmb3IgY2hhbmdlcyB0byB0aGUgaWQgYXR0cmlidXRlXG4gKiBhbmQgY2hpbGQgZWxlbWVudHMgYW5kIGlmIGFueSBpZCByZWZlcmVuY2UgaXMgZXN0YWJsaXNoZWQgb3IgcmVtb3ZlZCwgaXQgd2lsbFxuICogdXBkYXRlIHRoZSBhc3NvY2lhdGVkIHByb3BlcnR5LlxuICovXG5leHBvcnQgY29uc3QgaWRSZWZlcmVuY2UgPSA8QyBleHRlbmRzIEludGVyZmFjZTxSZWFjdGl2ZUVsZW1lbnQ+LCBWPigpID0+IHtcbiAgcmV0dXJuIChcbiAgICB0YXJnZXQ6IENsYXNzQWNjZXNzb3JEZWNvcmF0b3JUYXJnZXQ8QywgVj4sXG4gICAgY29udGV4dDogQ2xhc3NBY2Nlc3NvckRlY29yYXRvckNvbnRleHQ8QywgVj4sXG4gICk6IGFueSA9PiB7XG4gICAgY29uc3QgeyBraW5kLCBtZXRhZGF0YSwgbmFtZSB9ID0gY29udGV4dDtcbiAgICBpZiAoa2luZCA9PT0gJ2FjY2Vzc29yJykge1xuICAgICAgaWYgKGlzU2VydmVyKSB7XG4gICAgICAgIHJldHVybiB7fTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgYXR0cmlidXRlID0gZ2xvYmFsVGhpcy5saXRQcm9wZXJ0eU1ldGFkYXRhLmdldChtZXRhZGF0YSk/LmdldChuYW1lKT8uYXR0cmlidXRlO1xuICAgICAgY29uc3QgYXR0cmlidXRlTmFtZSA9IHR5cGVvZiBhdHRyaWJ1dGUgPT09ICdzdHJpbmcnID8gYXR0cmlidXRlIDogKG5hbWUgYXMgc3RyaW5nKTtcbiAgICAgIGNvbnRleHQuYWRkSW5pdGlhbGl6ZXIoZnVuY3Rpb24gKCkge1xuICAgICAgICB0aGlzLmFkZENvbnRyb2xsZXIoe1xuICAgICAgICAgIGhvc3Q6IHRoaXMsXG4gICAgICAgICAgcm9vdE5vZGU6IG51bGwsXG4gICAgICAgICAgY2hlY2tJZFJlZmVyZW5jZShjaGFuZ2VkSWRzPzogU2V0PHN0cmluZz4pOiB2b2lkIHtcbiAgICAgICAgICAgIGNvbnN0IGlkID0gdGhpcy5ob3N0LmdldEF0dHJpYnV0ZShhdHRyaWJ1dGVOYW1lKSA/PyBpZFJlZmVyZW5jZXMuZ2V0KHRoaXMuaG9zdCk7XG4gICAgICAgICAgICBpZiAoaWQgJiYgdHlwZW9mIGlkID09PSAnc3RyaW5nJyAmJiAoIWNoYW5nZWRJZHMgfHwgY2hhbmdlZElkcy5oYXMoaWQpKSkge1xuICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9ICh0aGlzLnJvb3ROb2RlPy5nZXRFbGVtZW50QnlJZD8uKGlkKSA/PyBudWxsKSBhcyB1bmtub3duIGFzIFY7XG4gICAgICAgICAgICAgIGlmIChjb250ZXh0LmFjY2Vzcy5nZXQodGhpcy5ob3N0IGFzIEMpICE9PSB2YWx1ZSkge1xuICAgICAgICAgICAgICAgIGNvbnRleHQuYWNjZXNzLnNldCh0aGlzLmhvc3QgYXMgQywgdmFsdWUpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBob3N0Q29ubmVjdGVkKCkge1xuICAgICAgICAgICAgdGhpcy5yb290Tm9kZSA9IHRoaXMuaG9zdC5nZXRSb290Tm9kZSgpIGFzIERvY3VtZW50IHwgU2hhZG93Um9vdDtcbiAgICAgICAgICAgIHRoaXMuY2hlY2tJZFJlZmVyZW5jZSgpO1xuICAgICAgICAgICAgY29uc3Qgb2JzZXJ2ZXJDb250ZXh0ID0gb2JzZXJ2ZXJzLmdldCh0aGlzLnJvb3ROb2RlKTtcblxuICAgICAgICAgICAgaWYgKG9ic2VydmVyQ29udGV4dCkge1xuICAgICAgICAgICAgICBvYnNlcnZlckNvbnRleHQuY29udHJvbGxlcnMuYWRkKHRoaXMpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgY29uc3QgY29udHJvbGxlcnMgPSBuZXcgU2V0KFt0aGlzXSk7XG4gICAgICAgICAgICAgIGNvbnN0IG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoKG11dGF0aW9ucykgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IG11dGF0ZWRJZHMgPSBuZXcgU2V0PHN0cmluZz4oKTtcblxuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgbXV0YXRpb24gb2YgbXV0YXRpb25zKSB7XG4gICAgICAgICAgICAgICAgICBpZiAobXV0YXRpb24udHlwZSA9PT0gJ2F0dHJpYnV0ZXMnKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChtdXRhdGlvbi5vbGRWYWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICAgIG11dGF0ZWRJZHMuYWRkKG11dGF0aW9uLm9sZFZhbHVlISk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKChtdXRhdGlvbi50YXJnZXQgYXMgSFRNTEVsZW1lbnQpLmlkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgbXV0YXRlZElkcy5hZGQoKG11dGF0aW9uLnRhcmdldCBhcyBIVE1MRWxlbWVudCkuaWQpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG11dGF0aW9uLnR5cGUgPT09ICdjaGlsZExpc3QnKSB7XG4gICAgICAgICAgICAgICAgICAgIGZvciAoY29uc3Qgbm9kZSBvZiBbLi4ubXV0YXRpb24uYWRkZWROb2RlcywgLi4ubXV0YXRpb24ucmVtb3ZlZE5vZGVzXSkge1xuICAgICAgICAgICAgICAgICAgICAgIGlmIChub2RlIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChub2RlLmlkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG11dGF0ZWRJZHMuYWRkKG5vZGUuaWQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgbm9kZS5xdWVyeVNlbGVjdG9yQWxsKCdbaWRdJykuZm9yRWFjaCgoZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZS5pZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG11dGF0ZWRJZHMuYWRkKGUuaWQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBjb250cm9sbGVycy5mb3JFYWNoKChjKSA9PiBjLmNoZWNrSWRSZWZlcmVuY2UobXV0YXRlZElkcykpO1xuICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICBvYnNlcnZlci5vYnNlcnZlKHRoaXMucm9vdE5vZGUsIHtcbiAgICAgICAgICAgICAgICBhdHRyaWJ1dGVGaWx0ZXI6IFsnaWQnXSxcbiAgICAgICAgICAgICAgICBhdHRyaWJ1dGVPbGRWYWx1ZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICBjaGlsZExpc3Q6IHRydWUsXG4gICAgICAgICAgICAgICAgc3VidHJlZTogdHJ1ZSxcbiAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgb2JzZXJ2ZXJzLnNldCh0aGlzLnJvb3ROb2RlLCB7IG9ic2VydmVyLCBjb250cm9sbGVycyB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIGhvc3REaXNjb25uZWN0ZWQoKSB7XG4gICAgICAgICAgICBpZiAoaXNTZXJ2ZXIgfHwgIXRoaXMucm9vdE5vZGUpIHtcbiAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBvYnNlcnZlckNvbnRleHQgPSBvYnNlcnZlcnMuZ2V0KHRoaXMucm9vdE5vZGUpO1xuICAgICAgICAgICAgaWYgKCFvYnNlcnZlckNvbnRleHQpIHtcbiAgICAgICAgICAgICAgdGhpcy5yb290Tm9kZSA9IG51bGw7XG4gICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgb2JzZXJ2ZXJDb250ZXh0LmNvbnRyb2xsZXJzLmRlbGV0ZSh0aGlzKTtcbiAgICAgICAgICAgIGlmIChvYnNlcnZlckNvbnRleHQuY29udHJvbGxlcnMuc2l6ZSA9PT0gMCkge1xuICAgICAgICAgICAgICBvYnNlcnZlckNvbnRleHQub2JzZXJ2ZXIuZGlzY29ubmVjdCgpO1xuICAgICAgICAgICAgICBvYnNlcnZlcnMuZGVsZXRlKHRoaXMucm9vdE5vZGUpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLnJvb3ROb2RlID0gbnVsbDtcbiAgICAgICAgICB9LFxuICAgICAgICB9IGFzIElkUmVmZXJlbmNlQ29udHJvbGxlcik7XG4gICAgICB9KTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHNldCh0aGlzOiBDLCB2YWx1ZSkge1xuICAgICAgICAgIGlmICh0eXBlb2YgdmFsdWUgIT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICBpZFJlZmVyZW5jZXMuZGVsZXRlKHRoaXMpO1xuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICB2YWx1ZSBpbnN0YW5jZW9mIEhUTUxFbGVtZW50ICYmXG4gICAgICAgICAgICAgIHRoaXMuaGFzQXR0cmlidXRlKGF0dHJpYnV0ZU5hbWUpICYmXG4gICAgICAgICAgICAgIHZhbHVlLmlkICE9PSB0aGlzLmdldEF0dHJpYnV0ZShhdHRyaWJ1dGVOYW1lKVxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgIGlmIChpbXBvcnQubWV0YS5lbnYuREVWKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZWxlbWVudElkZW50aXR5ID0gdmFsdWUuaWRcbiAgICAgICAgICAgICAgICAgID8gYCMke3ZhbHVlLmlkfWBcbiAgICAgICAgICAgICAgICAgIDogdmFsdWUuY2xhc3NMaXN0LnZhbHVlXG4gICAgICAgICAgICAgICAgICAgICAgLnNwbGl0KCcgJylcbiAgICAgICAgICAgICAgICAgICAgICAubWFwKChjKSA9PiBgLiR7Y31gKVxuICAgICAgICAgICAgICAgICAgICAgIC5qb2luKCcnKTtcbiAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICAgICAgICAgICBgQW4gZWxlbWVudCAoJHt2YWx1ZS5sb2NhbE5hbWUgKyBlbGVtZW50SWRlbnRpdHl9KSB3YXMgYCArXG4gICAgICAgICAgICAgICAgICAgIGBwYXNzZWQgdG8gdGhlICR7dGhpcy5sb2NhbE5hbWV9LiR7bmFtZSBhcyBzdHJpbmd9IHByb3BlcnR5LCBgICtcbiAgICAgICAgICAgICAgICAgICAgYHdoaWNoIGRvZXMgbm90IG1hdGNoIHRoZSBleGlzdGluZyBpZCByZWZlcmVuY2UgYXR0cmlidXRlIGAgK1xuICAgICAgICAgICAgICAgICAgICBgJHthdHRyaWJ1dGVOYW1lfSB3aXRoIHZhbHVlICR7dGhpcy5nZXRBdHRyaWJ1dGUoYXR0cmlidXRlTmFtZSl9LiBgICtcbiAgICAgICAgICAgICAgICAgICAgYFRoaXMgd2lsbCByZW1vdmUgdGhlIGN1cnJlbnQgYXR0cmlidXRlIHZhbHVlLmAsXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB0aGlzLnJlbW92ZUF0dHJpYnV0ZShhdHRyaWJ1dGVOYW1lKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2UgaWYgKFxuICAgICAgICAgICAgdGhpcy5oYXNBdHRyaWJ1dGUoYXR0cmlidXRlTmFtZSkgJiZcbiAgICAgICAgICAgIHRoaXMuZ2V0QXR0cmlidXRlKGF0dHJpYnV0ZU5hbWUpICE9PSB2YWx1ZVxuICAgICAgICAgICkge1xuICAgICAgICAgICAgLy8gV2hlbiBhIHN0cmluZyBpcyBwYXNzZWQgdG8gdGhlIHNldHRlciBidXQgdGhlIGF0dHJpYnV0ZSBpcyBzZXQgdG8gYVxuICAgICAgICAgICAgLy8gZGlmZmVyZW50IHZhbHVlLCB3ZSBpZ25vcmUgdGhlIHBhc3NlZCB2YWx1ZS5cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgZWxlbWVudCA9IHZhbHVlXG4gICAgICAgICAgICAgID8gKHRoaXMuZ2V0Um9vdE5vZGU/LigpIGFzIERvY3VtZW50IHwgU2hhZG93Um9vdCk/LmdldEVsZW1lbnRCeUlkPy4odmFsdWUpXG4gICAgICAgICAgICAgIDogbnVsbDtcbiAgICAgICAgICAgIGlmIChlbGVtZW50KSB7XG4gICAgICAgICAgICAgIHZhbHVlID0gZWxlbWVudCBhcyB1bmtub3duIGFzIFY7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgICAgIC8vIElmIHdlIGFyZSB1bmFibGUgdG8gcmVzb2x2ZSB0aGUgaWQgcmVmZXJlbmNlLCB3ZSB0ZW1wb3JhcmlseSBzdG9yZSBpdFxuICAgICAgICAgICAgICAvLyB0byB0cnkgdG8gcmVzb2x2ZSBpdCBsYXRlci5cbiAgICAgICAgICAgICAgaWRSZWZlcmVuY2VzLnNldCh0aGlzLCB2YWx1ZSBhcyBzdHJpbmcpO1xuICAgICAgICAgICAgICB2YWx1ZSA9IG51bGwhO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgICh0YXJnZXQgYXMgQ2xhc3NBY2Nlc3NvckRlY29yYXRvclRhcmdldDxDLCBWPikuc2V0LmNhbGwodGhpcyBhcyB1bmtub3duIGFzIEMsIHZhbHVlKTtcbiAgICAgICAgfSxcbiAgICAgIH0gc2F0aXNmaWVzIENsYXNzQWNjZXNzb3JEZWNvcmF0b3JSZXN1bHQ8QywgVj47XG4gICAgfVxuXG4gICAgdGhyb3cgbmV3IEVycm9yKGBVbnN1cHBvcnRlZCBkZWNvcmF0b3IgbG9jYXRpb246ICR7a2luZH1gKTtcbiAgfTtcbn07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFrQkEsSUFBTSw0QkFBWSxJQUFJLFNBTW5COzs7Ozs7OztBQVFILElBQU0sK0JBQWUsSUFBSSxTQUFnQzs7Ozs7Ozs7QUFTekQsSUFBYSxvQkFBNEQ7Q0FDdkUsUUFDRSxRQUNBLFlBQ087RUFDUCxNQUFNLEVBQUUsTUFBTSxVQUFVLFNBQVM7RUFDakMsSUFBSSxTQUFTLFlBQVk7R0FDdkIsSUFBSSxVQUNGLE9BQU8sRUFBRTtHQUdYLE1BQU0sWUFBWSxXQUFXLG9CQUFvQixJQUFJLFNBQVMsRUFBRSxJQUFJLEtBQUssRUFBRTtHQUMzRSxNQUFNLGdCQUFnQixPQUFPLGNBQWMsV0FBVyxZQUFhO0dBQ25FLFFBQVEsZUFBZSxXQUFBO0lBQ3JCLEtBQUssY0FBYztLQUNqQixNQUFNO0tBQ04sVUFBVTtLQUNWLGlCQUFpQixZQUF3QjtNQUN2QyxNQUFNLEtBQUssS0FBSyxLQUFLLGFBQWEsY0FBYyxJQUFJLGFBQWEsSUFBSSxLQUFLLEtBQUs7TUFDL0UsSUFBSSxNQUFNLE9BQU8sT0FBTyxhQUFhLENBQUMsY0FBYyxXQUFXLElBQUksR0FBRyxHQUFHO09BQ3ZFLE1BQU0sUUFBUyxLQUFLLFVBQVUsaUJBQWlCLEdBQUcsSUFBSTtPQUN0RCxJQUFJLFFBQVEsT0FBTyxJQUFJLEtBQUssS0FBVSxLQUFLLE9BQ3pDLFFBQVEsT0FBTyxJQUFJLEtBQUssTUFBVyxNQUFNOzs7S0FJL0MsZ0JBQWE7TUFDWCxLQUFLLFdBQVcsS0FBSyxLQUFLLGFBQXNDO01BQ2hFLEtBQUssa0JBQWtCO01BQ3ZCLE1BQU0sa0JBQWtCLFVBQVUsSUFBSSxLQUFLLFNBQVM7TUFFcEQsSUFBSSxpQkFDRixnQkFBZ0IsWUFBWSxJQUFJLEtBQUs7V0FDaEM7T0FDTCxNQUFNLGNBQWMsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDO09BQ25DLE1BQU0sV0FBVyxJQUFJLGtCQUFrQixjQUFhO1FBQ2xELE1BQU0sNkJBQWEsSUFBSSxLQUFhO1FBRXBDLEtBQUssTUFBTSxZQUFZLFdBQ3JCLElBQUksU0FBUyxTQUFTLGNBQWM7U0FDbEMsSUFBSSxTQUFTLFVBQ1gsV0FBVyxJQUFJLFNBQVMsU0FBVTtTQUVwQyxJQUFLLFNBQVMsT0FBdUIsSUFDbkMsV0FBVyxJQUFLLFNBQVMsT0FBdUIsR0FBRztlQUVoRCxJQUFJLFNBQVMsU0FBUztjQUN0QixNQUFNLFFBQVEsQ0FBQyxHQUFHLFNBQVMsWUFBWSxHQUFHLFNBQVMsYUFBYSxFQUNuRSxJQUFJLGdCQUFnQixhQUFhO1VBQy9CLElBQUksS0FBSyxJQUNQLFdBQVcsSUFBSSxLQUFLLEdBQUc7VUFFekIsS0FBSyxpQkFBaUIsT0FBTyxDQUFDLFNBQVMsTUFBSztXQUMxQyxJQUFJLEVBQUUsSUFDSixXQUFXLElBQUksRUFBRSxHQUFHO1lBRXRCOzs7UUFNVixZQUFZLFNBQVMsTUFBTSxFQUFFLGlCQUFpQixXQUFXLENBQUM7U0FDMUQ7T0FFRixTQUFTLFFBQVEsS0FBSyxVQUFVO1FBQzlCLGlCQUFpQixDQUFDLEtBQUs7UUFDdkIsbUJBQW1CO1FBQ25CLFdBQVc7UUFDWCxTQUFTO1FBQ1YsQ0FBQztPQUVGLFVBQVUsSUFBSSxLQUFLLFVBQVU7UUFBRTtRQUFVO1FBQWEsQ0FBQzs7O0tBRzNELG1CQUFnQjtNQUNkLElBQUksWUFBWSxDQUFDLEtBQUssVUFDcEI7TUFHRixNQUFNLGtCQUFrQixVQUFVLElBQUksS0FBSyxTQUFTO01BQ3BELElBQUksQ0FBQyxpQkFBaUI7T0FDcEIsS0FBSyxXQUFXO09BQ2hCOztNQUdGLGdCQUFnQixZQUFZLE9BQU8sS0FBSztNQUN4QyxJQUFJLGdCQUFnQixZQUFZLFNBQVMsR0FBRztPQUMxQyxnQkFBZ0IsU0FBUyxZQUFZO09BQ3JDLFVBQVUsT0FBTyxLQUFLLFNBQVM7O01BR2pDLEtBQUssV0FBVzs7S0FFTSxDQUFDO0tBQzNCO0dBQ0YsT0FBTyxFQUNMLElBQWEsT0FBSztJQUNoQixJQUFJLE9BQU8sVUFBVSxVQUFVO0tBQzdCLGFBQWEsT0FBTyxLQUFLO0tBQ3pCLElBQ0UsaUJBQWlCLGVBQ2pCLEtBQUssYUFBYSxjQUFjLElBQ2hDLE1BQU0sT0FBTyxLQUFLLGFBQWEsY0FBYyxFQWlCN0MsS0FBSyxnQkFBZ0IsY0FBYztXQUVoQyxJQUNMLEtBQUssYUFBYSxjQUFjLElBQ2hDLEtBQUssYUFBYSxjQUFjLEtBQUssT0FJckM7U0FDSztLQUNMLE1BQU0sVUFBVSxRQUNYLEtBQUssZUFBeUMsRUFBRSxpQkFBaUIsTUFBTSxHQUN4RTtLQUNKLElBQUksU0FDRixRQUFRO1VBQ0gsSUFBSSxPQUFPO01BR2hCLGFBQWEsSUFBSSxNQUFNLE1BQWdCO01BQ3ZDLFFBQVE7OztJQUlYLE9BQThDLElBQUksS0FBSyxNQUFzQixNQUFNO01BRTFDOztFQUdoRCxNQUFNLElBQUksTUFBTSxtQ0FBbUMsT0FBTyJ9
117
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWQtcmVmZXJlbmNlLmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb3JlL2RlY29yYXRvcnMvaWQtcmVmZXJlbmNlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzU2VydmVyLCB0eXBlIFJlYWN0aXZlQ29udHJvbGxlciwgdHlwZSBSZWFjdGl2ZUVsZW1lbnQgfSBmcm9tICdsaXQnO1xuXG5pbXBvcnQgdHlwZSB7IEludGVyZmFjZSB9IGZyb20gJy4vYmFzZS50cyc7XG5cbmludGVyZmFjZSBJZFJlZmVyZW5jZUNvbnRyb2xsZXIgZXh0ZW5kcyBSZWFjdGl2ZUNvbnRyb2xsZXIge1xuICBob3N0OiBJbnRlcmZhY2U8UmVhY3RpdmVFbGVtZW50PjtcbiAgcm9vdE5vZGU6IERvY3VtZW50IHwgU2hhZG93Um9vdCB8IG51bGw7XG4gIGNoZWNrSWRSZWZlcmVuY2U6IChjaGFuZ2VkSWRzPzogU2V0PHN0cmluZz4pID0+IHZvaWQ7XG59XG5cbi8qKlxuICogV2Uga2VlcCB0cmFjayBvZiB0aGUgb2JzZXJ2ZXJzIGZvciBlYWNoIHJvb3Qgbm9kZSwgd2hpY2ggaXMgZWl0aGVyIGEgZG9jdW1lbnRcbiAqIG9yIGEgc2hhZG93IHJvb3QuXG4gKiBFYWNoIG9ic2VydmVyIGlzIGFzc29jaWF0ZWQgd2l0aCBhIHNldCBvZiBjb250cm9sbGVycyB0aGF0IGVhY2ggcmVwcmVzZW50XG4gKiBhbiBpZCByZWZlcmVuY2UuXG4gKiBXaGVuZXZlciB0aGUgTXV0YXRpb25PYnNlcnZlciBkZXRlY3RzIGEgY2hhbmdlIHRoYXQgYWZmZWN0cyBhIHBvdGVudGlhbCBpZFxuICogcmVmZXJlbmNlLCBpdCBub3RpZmllcyBhbGwgY29udHJvbGxlcnMgYXNzb2NpYXRlZCB3aXRoIHRoYXQgb2JzZXJ2ZXIuXG4gKi9cbmNvbnN0IG9ic2VydmVycyA9IG5ldyBXZWFrTWFwPFxuICBOb2RlLFxuICB7XG4gICAgb2JzZXJ2ZXI6IE11dGF0aW9uT2JzZXJ2ZXI7XG4gICAgY29udHJvbGxlcnM6IFNldDxJZFJlZmVyZW5jZUNvbnRyb2xsZXI+O1xuICB9XG4+KCk7XG4vKipcbiAqIFdoZW5ldmVyIGFuIGlkIHN0cmluZyBpcyBwYXNzZWQgdG8gdGhlIHNldHRlciBhbmQgbm8gcmVmZXJlbmNlIGlzIGZvdW5kLFxuICogd2Ugc3RvcmUgaXQgaW4gdGhpcyBXZWFrTWFwLlxuICogVGhlIGtleSBpcyB0aGUgaG9zdCBlbGVtZW50IGFuZCB0aGUgdmFsdWUgaXMgdGhlIGlkIHN0cmluZy5cbiAqIFBsZWFzZSBub3RlIHRoYXQgaWYgYW4gaWQgcmVmZXJlbmNlIHByb3BlcnR5IGhhcyBib3RoIGFuIGVudHJ5XG4gKiBpbiB0aGlzIFdlYWtNYXAgYW5kIGFuIGFzc29jaWF0ZWQgYXR0cmlidXRlLCB0aGUgYXR0cmlidXRlIHdpbGwgdGFrZSBwcmVjZWRlbmNlLlxuICovXG5jb25zdCBpZFJlZmVyZW5jZXMgPSBuZXcgV2Vha01hcDxvYmplY3QsIHN0cmluZyB8IG51bGw+KCk7XG5cbi8qKlxuICogQWNjZXNzb3IgZGVjb3JhdG9yIHRoYXQgcmVzb2x2ZXMgaWQgcmVmZXJlbmNlcyBkeW5hbWljYWxseS5cbiAqIElmIGEgc3RyaW5nIGlzIHBhc3NlZCAoZS5nLiBmcm9tIGFuIGF0dHJpYnV0ZSksIGl0IHdpbGwgYmUgcmVzb2x2ZWQgdG8gdGhlIGVsZW1lbnQgd2l0aCB0aGF0IGlkLlxuICogVGhpcyBkZWNvcmF0b3Igb2JzZXJ2ZXMgdGhlIGNvbm5lY3RlZCBkb2N1bWVudCBmcmFnbWVudCBmb3IgY2hhbmdlcyB0byB0aGUgaWQgYXR0cmlidXRlXG4gKiBhbmQgY2hpbGQgZWxlbWVudHMgYW5kIGlmIGFueSBpZCByZWZlcmVuY2UgaXMgZXN0YWJsaXNoZWQgb3IgcmVtb3ZlZCwgaXQgd2lsbFxuICogdXBkYXRlIHRoZSBhc3NvY2lhdGVkIHByb3BlcnR5LlxuICovXG5leHBvcnQgY29uc3QgaWRSZWZlcmVuY2UgPSA8QyBleHRlbmRzIEludGVyZmFjZTxSZWFjdGl2ZUVsZW1lbnQ+LCBWPigpID0+IHtcbiAgcmV0dXJuIChcbiAgICB0YXJnZXQ6IENsYXNzQWNjZXNzb3JEZWNvcmF0b3JUYXJnZXQ8QywgVj4sXG4gICAgY29udGV4dDogQ2xhc3NBY2Nlc3NvckRlY29yYXRvckNvbnRleHQ8QywgVj4sXG4gICk6IGFueSA9PiB7XG4gICAgY29uc3QgeyBraW5kLCBtZXRhZGF0YSwgbmFtZSB9ID0gY29udGV4dDtcbiAgICBpZiAoa2luZCA9PT0gJ2FjY2Vzc29yJykge1xuICAgICAgaWYgKGlzU2VydmVyKSB7XG4gICAgICAgIHJldHVybiB7fTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgYXR0cmlidXRlID0gZ2xvYmFsVGhpcy5saXRQcm9wZXJ0eU1ldGFkYXRhLmdldChtZXRhZGF0YSk/LmdldChuYW1lKT8uYXR0cmlidXRlO1xuICAgICAgY29uc3QgYXR0cmlidXRlTmFtZSA9IHR5cGVvZiBhdHRyaWJ1dGUgPT09ICdzdHJpbmcnID8gYXR0cmlidXRlIDogKG5hbWUgYXMgc3RyaW5nKTtcbiAgICAgIGNvbnRleHQuYWRkSW5pdGlhbGl6ZXIoZnVuY3Rpb24gKCkge1xuICAgICAgICB0aGlzLmFkZENvbnRyb2xsZXIoe1xuICAgICAgICAgIGhvc3Q6IHRoaXMsXG4gICAgICAgICAgcm9vdE5vZGU6IG51bGwsXG4gICAgICAgICAgY2hlY2tJZFJlZmVyZW5jZShjaGFuZ2VkSWRzPzogU2V0PHN0cmluZz4pOiB2b2lkIHtcbiAgICAgICAgICAgIGNvbnN0IGlkID0gdGhpcy5ob3N0LmdldEF0dHJpYnV0ZShhdHRyaWJ1dGVOYW1lKSA/PyBpZFJlZmVyZW5jZXMuZ2V0KHRoaXMuaG9zdCk7XG4gICAgICAgICAgICBpZiAoaWQgJiYgdHlwZW9mIGlkID09PSAnc3RyaW5nJyAmJiAoIWNoYW5nZWRJZHMgfHwgY2hhbmdlZElkcy5oYXMoaWQpKSkge1xuICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9ICh0aGlzLnJvb3ROb2RlPy5nZXRFbGVtZW50QnlJZD8uKGlkKSA/PyBudWxsKSBhcyB1bmtub3duIGFzIFY7XG4gICAgICAgICAgICAgIGlmIChjb250ZXh0LmFjY2Vzcy5nZXQodGhpcy5ob3N0IGFzIEMpICE9PSB2YWx1ZSkge1xuICAgICAgICAgICAgICAgIGNvbnRleHQuYWNjZXNzLnNldCh0aGlzLmhvc3QgYXMgQywgdmFsdWUpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBob3N0Q29ubmVjdGVkKCkge1xuICAgICAgICAgICAgdGhpcy5yb290Tm9kZSA9IHRoaXMuaG9zdC5nZXRSb290Tm9kZSgpIGFzIERvY3VtZW50IHwgU2hhZG93Um9vdDtcbiAgICAgICAgICAgIHRoaXMuY2hlY2tJZFJlZmVyZW5jZSgpO1xuICAgICAgICAgICAgY29uc3Qgb2JzZXJ2ZXJDb250ZXh0ID0gb2JzZXJ2ZXJzLmdldCh0aGlzLnJvb3ROb2RlKTtcblxuICAgICAgICAgICAgaWYgKG9ic2VydmVyQ29udGV4dCkge1xuICAgICAgICAgICAgICBvYnNlcnZlckNvbnRleHQuY29udHJvbGxlcnMuYWRkKHRoaXMpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgY29uc3QgY29udHJvbGxlcnMgPSBuZXcgU2V0KFt0aGlzXSk7XG4gICAgICAgICAgICAgIGNvbnN0IG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoKG11dGF0aW9ucykgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IG11dGF0ZWRJZHMgPSBuZXcgU2V0PHN0cmluZz4oKTtcblxuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgbXV0YXRpb24gb2YgbXV0YXRpb25zKSB7XG4gICAgICAgICAgICAgICAgICBpZiAobXV0YXRpb24udHlwZSA9PT0gJ2F0dHJpYnV0ZXMnKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChtdXRhdGlvbi5vbGRWYWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICAgIG11dGF0ZWRJZHMuYWRkKG11dGF0aW9uLm9sZFZhbHVlISk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKChtdXRhdGlvbi50YXJnZXQgYXMgSFRNTEVsZW1lbnQpLmlkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgbXV0YXRlZElkcy5hZGQoKG11dGF0aW9uLnRhcmdldCBhcyBIVE1MRWxlbWVudCkuaWQpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG11dGF0aW9uLnR5cGUgPT09ICdjaGlsZExpc3QnKSB7XG4gICAgICAgICAgICAgICAgICAgIGZvciAoY29uc3Qgbm9kZSBvZiBbLi4ubXV0YXRpb24uYWRkZWROb2RlcywgLi4ubXV0YXRpb24ucmVtb3ZlZE5vZGVzXSkge1xuICAgICAgICAgICAgICAgICAgICAgIGlmIChub2RlIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChub2RlLmlkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG11dGF0ZWRJZHMuYWRkKG5vZGUuaWQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgbm9kZS5xdWVyeVNlbGVjdG9yQWxsKCdbaWRdJykuZm9yRWFjaCgoZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZS5pZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG11dGF0ZWRJZHMuYWRkKGUuaWQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBjb250cm9sbGVycy5mb3JFYWNoKChjKSA9PiBjLmNoZWNrSWRSZWZlcmVuY2UobXV0YXRlZElkcykpO1xuICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICBvYnNlcnZlci5vYnNlcnZlKHRoaXMucm9vdE5vZGUsIHtcbiAgICAgICAgICAgICAgICBhdHRyaWJ1dGVGaWx0ZXI6IFsnaWQnXSxcbiAgICAgICAgICAgICAgICBhdHRyaWJ1dGVPbGRWYWx1ZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICBjaGlsZExpc3Q6IHRydWUsXG4gICAgICAgICAgICAgICAgc3VidHJlZTogdHJ1ZSxcbiAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgb2JzZXJ2ZXJzLnNldCh0aGlzLnJvb3ROb2RlLCB7IG9ic2VydmVyLCBjb250cm9sbGVycyB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIGhvc3REaXNjb25uZWN0ZWQoKSB7XG4gICAgICAgICAgICBpZiAoaXNTZXJ2ZXIgfHwgIXRoaXMucm9vdE5vZGUpIHtcbiAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBvYnNlcnZlckNvbnRleHQgPSBvYnNlcnZlcnMuZ2V0KHRoaXMucm9vdE5vZGUpO1xuICAgICAgICAgICAgaWYgKCFvYnNlcnZlckNvbnRleHQpIHtcbiAgICAgICAgICAgICAgdGhpcy5yb290Tm9kZSA9IG51bGw7XG4gICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgb2JzZXJ2ZXJDb250ZXh0LmNvbnRyb2xsZXJzLmRlbGV0ZSh0aGlzKTtcbiAgICAgICAgICAgIGlmIChvYnNlcnZlckNvbnRleHQuY29udHJvbGxlcnMuc2l6ZSA9PT0gMCkge1xuICAgICAgICAgICAgICBvYnNlcnZlckNvbnRleHQub2JzZXJ2ZXIuZGlzY29ubmVjdCgpO1xuICAgICAgICAgICAgICBvYnNlcnZlcnMuZGVsZXRlKHRoaXMucm9vdE5vZGUpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLnJvb3ROb2RlID0gbnVsbDtcbiAgICAgICAgICB9LFxuICAgICAgICB9IGFzIElkUmVmZXJlbmNlQ29udHJvbGxlcik7XG4gICAgICB9KTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHNldCh0aGlzOiBDLCB2YWx1ZSkge1xuICAgICAgICAgIGlmICh0eXBlb2YgdmFsdWUgIT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICBpZFJlZmVyZW5jZXMuZGVsZXRlKHRoaXMpO1xuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICB2YWx1ZSBpbnN0YW5jZW9mIEhUTUxFbGVtZW50ICYmXG4gICAgICAgICAgICAgIHRoaXMuaGFzQXR0cmlidXRlKGF0dHJpYnV0ZU5hbWUpICYmXG4gICAgICAgICAgICAgIHZhbHVlLmlkICE9PSB0aGlzLmdldEF0dHJpYnV0ZShhdHRyaWJ1dGVOYW1lKVxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgIGlmIChpbXBvcnQubWV0YS5lbnYuREVWKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZWxlbWVudElkZW50aXR5ID0gdmFsdWUuaWRcbiAgICAgICAgICAgICAgICAgID8gYCMke3ZhbHVlLmlkfWBcbiAgICAgICAgICAgICAgICAgIDogdmFsdWUuY2xhc3NMaXN0LnZhbHVlXG4gICAgICAgICAgICAgICAgICAgICAgLnNwbGl0KCcgJylcbiAgICAgICAgICAgICAgICAgICAgICAubWFwKChjKSA9PiBgLiR7Y31gKVxuICAgICAgICAgICAgICAgICAgICAgIC5qb2luKCcnKTtcbiAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICAgICAgICAgICBgQW4gZWxlbWVudCAoJHt2YWx1ZS5sb2NhbE5hbWUgKyBlbGVtZW50SWRlbnRpdHl9KSB3YXMgYCArXG4gICAgICAgICAgICAgICAgICAgIGBwYXNzZWQgdG8gdGhlICR7dGhpcy5sb2NhbE5hbWV9LiR7bmFtZSBhcyBzdHJpbmd9IHByb3BlcnR5LCBgICtcbiAgICAgICAgICAgICAgICAgICAgYHdoaWNoIGRvZXMgbm90IG1hdGNoIHRoZSBleGlzdGluZyBpZCByZWZlcmVuY2UgYXR0cmlidXRlIGAgK1xuICAgICAgICAgICAgICAgICAgICBgJHthdHRyaWJ1dGVOYW1lfSB3aXRoIHZhbHVlICR7dGhpcy5nZXRBdHRyaWJ1dGUoYXR0cmlidXRlTmFtZSl9LiBgICtcbiAgICAgICAgICAgICAgICAgICAgYFRoaXMgd2lsbCByZW1vdmUgdGhlIGN1cnJlbnQgYXR0cmlidXRlIHZhbHVlLmAsXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB0aGlzLnJlbW92ZUF0dHJpYnV0ZShhdHRyaWJ1dGVOYW1lKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2UgaWYgKFxuICAgICAgICAgICAgdGhpcy5oYXNBdHRyaWJ1dGUoYXR0cmlidXRlTmFtZSkgJiZcbiAgICAgICAgICAgIHRoaXMuZ2V0QXR0cmlidXRlKGF0dHJpYnV0ZU5hbWUpICE9PSB2YWx1ZVxuICAgICAgICAgICkge1xuICAgICAgICAgICAgLy8gV2hlbiBhIHN0cmluZyBpcyBwYXNzZWQgdG8gdGhlIHNldHRlciBidXQgdGhlIGF0dHJpYnV0ZSBpcyBzZXQgdG8gYVxuICAgICAgICAgICAgLy8gZGlmZmVyZW50IHZhbHVlLCB3ZSBpZ25vcmUgdGhlIHBhc3NlZCB2YWx1ZS5cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgZWxlbWVudCA9IHZhbHVlXG4gICAgICAgICAgICAgID8gKHRoaXMuZ2V0Um9vdE5vZGU/LigpIGFzIERvY3VtZW50IHwgU2hhZG93Um9vdCk/LmdldEVsZW1lbnRCeUlkPy4odmFsdWUpXG4gICAgICAgICAgICAgIDogbnVsbDtcbiAgICAgICAgICAgIGlmIChlbGVtZW50KSB7XG4gICAgICAgICAgICAgIHZhbHVlID0gZWxlbWVudCBhcyB1bmtub3duIGFzIFY7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgICAgIC8vIElmIHdlIGFyZSB1bmFibGUgdG8gcmVzb2x2ZSB0aGUgaWQgcmVmZXJlbmNlLCB3ZSB0ZW1wb3JhcmlseSBzdG9yZSBpdFxuICAgICAgICAgICAgICAvLyB0byB0cnkgdG8gcmVzb2x2ZSBpdCBsYXRlci5cbiAgICAgICAgICAgICAgaWRSZWZlcmVuY2VzLnNldCh0aGlzLCB2YWx1ZSBhcyBzdHJpbmcpO1xuICAgICAgICAgICAgICB2YWx1ZSA9IG51bGwhO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgICh0YXJnZXQgYXMgQ2xhc3NBY2Nlc3NvckRlY29yYXRvclRhcmdldDxDLCBWPikuc2V0LmNhbGwodGhpcyBhcyB1bmtub3duIGFzIEMsIHZhbHVlKTtcbiAgICAgICAgfSxcbiAgICAgIH0gc2F0aXNmaWVzIENsYXNzQWNjZXNzb3JEZWNvcmF0b3JSZXN1bHQ8QywgVj47XG4gICAgfVxuXG4gICAgdGhyb3cgbmV3IEVycm9yKGBVbnN1cHBvcnRlZCBkZWNvcmF0b3IgbG9jYXRpb246ICR7a2luZH1gKTtcbiAgfTtcbn07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFrQkEsSUFBTSw0QkFBWSxJQUFJLFFBQU87Ozs7Ozs7O0FBYzdCLElBQU0sK0JBQWUsSUFBSSxRQUFPOzs7Ozs7OztBQVNoQyxJQUFhLG9CQUE0RDtDQUN2RSxRQUNFLFFBQ0EsWUFDTztFQUNQLE1BQU0sRUFBRSxNQUFNLFVBQVUsU0FBUztFQUNqQyxJQUFJLFNBQVMsWUFBWTtHQUN2QixJQUFJLFVBQ0YsT0FBTyxDQUFBO0dBR1QsTUFBTSxZQUFZLFdBQVcsb0JBQW9CLElBQUksUUFBUSxHQUFHLElBQUksSUFBSSxHQUFHO0dBQzNFLE1BQU0sZ0JBQWdCLE9BQU8sY0FBYyxXQUFXLFlBQWE7R0FDbkUsUUFBUSxlQUFlLFdBQUE7SUFDckIsS0FBSyxjQUFjO0tBQ2pCLE1B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