@sbb-esta/lyne-elements-dev 5.0.0-next-dev.1776353458 → 5.0.0-next-dev.1776358174

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 (385) hide show
  1. package/custom-elements.json +956 -956
  2. package/development/accordion/accordion.component.d.ts.map +1 -1
  3. package/development/accordion.component-DGUoG6p2.js +1 -1
  4. package/development/action-group/action-group.component.d.ts.map +1 -1
  5. package/development/action-group.component-CJT4RArG.js +1 -1
  6. package/development/alert/alert/alert.component.d.ts +1 -1
  7. package/development/alert/alert/alert.component.d.ts.map +1 -1
  8. package/development/alert/alert-group/alert-group.component.d.ts.map +1 -1
  9. package/development/alert-group.component-DeI6kuwn.js +1 -1
  10. package/development/alert.component-Cn36k_Hf.js +1 -1
  11. package/development/autocomplete/autocomplete-base-element.d.ts.map +1 -1
  12. package/development/autocomplete-base-element-DnpaK_k3.js +1 -1
  13. package/development/block-link-common-CwurjMj1.js +1 -1
  14. package/development/breadcrumb/breadcrumb/breadcrumb.component.d.ts.map +1 -1
  15. package/development/breadcrumb/breadcrumb-group/breadcrumb-group.component.d.ts.map +1 -1
  16. package/development/breadcrumb-group.component-DP9X9qV1.js +1 -1
  17. package/development/breadcrumb.component-BLxRIaje.js +1 -1
  18. package/development/button/accent-button/accent-button.component.d.ts.map +1 -1
  19. package/development/button/accent-button/accent-button.component.js +1 -1
  20. package/development/button/accent-button-link/accent-button-link.component.d.ts.map +1 -1
  21. package/development/button/accent-button-link/accent-button-link.component.js +1 -1
  22. package/development/button/accent-button-static/accent-button-static.component.d.ts.map +1 -1
  23. package/development/button/accent-button-static/accent-button-static.component.js +1 -1
  24. package/development/button/button/button.component.d.ts.map +1 -1
  25. package/development/button/button/button.component.js +1 -1
  26. package/development/button/button-link/button-link.component.d.ts.map +1 -1
  27. package/development/button/button-link/button-link.component.js +1 -1
  28. package/development/button/button-static/button-static.component.d.ts.map +1 -1
  29. package/development/button/button-static/button-static.component.js +1 -1
  30. package/development/button/common/button-common.d.ts +1 -1
  31. package/development/button/common/button-common.d.ts.map +1 -1
  32. package/development/button/mini-button/mini-button.component.d.ts.map +1 -1
  33. package/development/button/mini-button/mini-button.component.js +1 -1
  34. package/development/button/mini-button-group/mini-button-group.component.d.ts.map +1 -1
  35. package/development/button/mini-button-link/mini-button-link.component.d.ts.map +1 -1
  36. package/development/button/secondary-button/secondary-button.component.d.ts.map +1 -1
  37. package/development/button/secondary-button/secondary-button.component.js +1 -1
  38. package/development/button/secondary-button-link/secondary-button-link.component.d.ts.map +1 -1
  39. package/development/button/secondary-button-link/secondary-button-link.component.js +1 -1
  40. package/development/button/secondary-button-static/secondary-button-static.component.d.ts.map +1 -1
  41. package/development/button/secondary-button-static/secondary-button-static.component.js +1 -1
  42. package/development/button/transparent-button/transparent-button.component.d.ts.map +1 -1
  43. package/development/button/transparent-button/transparent-button.component.js +1 -1
  44. package/development/button/transparent-button-link/transparent-button-link.component.d.ts.map +1 -1
  45. package/development/button/transparent-button-link/transparent-button-link.component.js +1 -1
  46. package/development/button/transparent-button-static/transparent-button-static.component.d.ts.map +1 -1
  47. package/development/button/transparent-button-static/transparent-button-static.component.js +1 -1
  48. package/development/button-common-jaQVRdwS.js +1 -1
  49. package/development/calendar/calendar/calendar.component.d.ts.map +1 -1
  50. package/development/calendar/calendar-day/calendar-day.component.d.ts.map +1 -1
  51. package/development/calendar/calendar-month/calendar-month.component.d.ts.map +1 -1
  52. package/development/calendar/calendar-month/calendar-month.component.js +1 -1
  53. package/development/calendar/calendar-weekday/calendar-weekday.component.d.ts.map +1 -1
  54. package/development/calendar/calendar-weekday/calendar-weekday.component.js +1 -1
  55. package/development/calendar/calendar-weeknumber/calendar-weeknumber.component.d.ts.map +1 -1
  56. package/development/calendar/calendar-weeknumber/calendar-weeknumber.component.js +1 -1
  57. package/development/calendar/calendar-year/calendar-year.component.d.ts.map +1 -1
  58. package/development/calendar/calendar-year/calendar-year.component.js +1 -1
  59. package/development/calendar/common/calendar-cell-base-element.d.ts +1 -1
  60. package/development/calendar/common/calendar-cell-base-element.d.ts.map +1 -1
  61. package/development/calendar-cell-base-element-DDNYX7UQ.js +1 -1
  62. package/development/calendar-day.component-CnNml44_.js +1 -1
  63. package/development/calendar.component-CByyksy8.js +1 -1
  64. package/development/calendar.js +1 -1
  65. package/development/card/card/card.component.d.ts.map +1 -1
  66. package/development/card/card-badge/card-badge.component.d.ts.map +1 -1
  67. package/development/card/common/card-action-common.d.ts.map +1 -1
  68. package/development/card-action-common-HYrFMTkA.js +1 -1
  69. package/development/card-badge.component-Be4gXazr.js +1 -1
  70. package/development/card.component-B2cQYSCD.js +1 -1
  71. package/development/card.js +1 -1
  72. package/development/carousel/carousel/carousel.component.d.ts.map +1 -1
  73. package/development/carousel/carousel-item/carousel-item.component.d.ts.map +1 -1
  74. package/development/carousel/carousel-list/carousel-list.component.d.ts.map +1 -1
  75. package/development/carousel-item.component-MZIypyNR.js +1 -1
  76. package/development/carousel-list.component-z40-4ANn.js +1 -1
  77. package/development/carousel.component-BHYBvOm7.js +1 -1
  78. package/development/checkbox/checkbox.component.d.ts +1 -1
  79. package/development/checkbox/checkbox.component.d.ts.map +1 -1
  80. package/development/checkbox/common/checkbox-common.d.ts +1 -1
  81. package/development/checkbox/common/checkbox-common.d.ts.map +1 -1
  82. package/development/checkbox-common-DpE48IrV.js +1 -1
  83. package/development/checkbox-panel/checkbox-panel.component.d.ts.map +1 -1
  84. package/development/checkbox-panel/checkbox-panel.component.js +1 -1
  85. package/development/checkbox.component-DgrfkdyZ.js +1 -1
  86. package/development/chip/chip/chip.component.d.ts.map +1 -1
  87. package/development/chip/chip-group/chip-group.component.d.ts +1 -1
  88. package/development/chip/chip-group/chip-group.component.d.ts.map +1 -1
  89. package/development/chip-group.component-CxM8l839.js +1 -1
  90. package/development/chip-label/chip-label.component.d.ts.map +1 -1
  91. package/development/chip-label.component-C1CGL8zb.js +1 -1
  92. package/development/chip.component-zwTaIBf2.js +1 -1
  93. package/development/clock/clock.component.d.ts.map +1 -1
  94. package/development/clock.component-EqFTxYod.js +1 -1
  95. package/development/compact-paginator.component-DiMeNNTc.js +1 -1
  96. package/development/container/container/container.component.d.ts.map +1 -1
  97. package/development/container/sticky-bar/sticky-bar.component.d.ts.map +1 -1
  98. package/development/container.component-CM10qyHy.js +1 -1
  99. package/development/core/base-elements/button-base-element.d.ts +1 -1
  100. package/development/core/base-elements/button-base-element.d.ts.map +1 -1
  101. package/development/core/base-elements/button-base-element.js +1 -1
  102. package/development/core/base-elements/selection-group-base-element.d.ts.map +1 -1
  103. package/development/core/controllers/property-watcher-controller.d.ts +1 -1
  104. package/development/core/controllers/property-watcher-controller.d.ts.map +1 -1
  105. package/development/core/controllers/property-watcher-controller.js +1 -1
  106. package/development/core/decorators/omit-empty-converter.d.ts.map +1 -1
  107. package/development/core/decorators/omit-empty-converter.js +1 -1
  108. package/development/core/mixins/form-associated-checkbox-mixin.d.ts.map +1 -1
  109. package/development/core/mixins/form-associated-checkbox-mixin.js +1 -1
  110. package/development/core/mixins/panel-mixin.d.ts.map +1 -1
  111. package/development/core/screen-reader-only/screen-reader-only.component.d.ts.map +1 -1
  112. package/development/date-input/date-input.component.d.ts.map +1 -1
  113. package/development/date-input.component-osVJFOS-.js +1 -1
  114. package/development/datepicker/common/datepicker-button.d.ts +2 -2
  115. package/development/datepicker/common/datepicker-button.d.ts.map +1 -1
  116. package/development/datepicker/datepicker/datepicker.component.d.ts.map +1 -1
  117. package/development/datepicker/datepicker-next-day/datepicker-next-day.component.js +1 -1
  118. package/development/datepicker/datepicker-previous-day/datepicker-previous-day.component.js +1 -1
  119. package/development/datepicker/datepicker-toggle/datepicker-toggle.component.js +1 -1
  120. package/development/datepicker-button-BI5R118p.js +1 -1
  121. package/development/datepicker.component-AKlc7SAO.js +1 -1
  122. package/development/dialog/dialog/dialog.component.d.ts.map +1 -1
  123. package/development/dialog/dialog-actions/dialog-actions.component.d.ts.map +1 -1
  124. package/development/dialog/dialog-close-button/dialog-close-button.component.d.ts.map +1 -1
  125. package/development/dialog/dialog-content/dialog-content.component.d.ts.map +1 -1
  126. package/development/dialog/dialog-title/dialog-title.component.d.ts.map +1 -1
  127. package/development/dialog-actions.component-DErVa4WR.js +1 -1
  128. package/development/dialog-close-button.component-CxtWzXR4.js +1 -1
  129. package/development/dialog-content.component-B3VB2ptp.js +1 -1
  130. package/development/dialog-title.component-CNMzIUB2.js +1 -1
  131. package/development/dialog.component-BYVTZAUU.js +1 -1
  132. package/development/dialog.js +1 -1
  133. package/development/divider/divider.component.d.ts.map +1 -1
  134. package/development/divider.component-BvmLUhzD.js +1 -1
  135. package/development/error.component-C8JQQqSB.js +1 -1
  136. package/development/expansion-panel/expansion-panel/expansion-panel.component.d.ts.map +1 -1
  137. package/development/expansion-panel/expansion-panel-content/expansion-panel-content.component.d.ts.map +1 -1
  138. package/development/expansion-panel-content.component-B-SV6ier.js +1 -1
  139. package/development/expansion-panel-header.component-CWojFAB-.js +1 -1
  140. package/development/expansion-panel.component-q7cJOmUs.js +1 -1
  141. package/development/expansion-panel.js +1 -1
  142. package/development/file-selector/common/file-selector-common.d.ts +1 -1
  143. package/development/file-selector/common/file-selector-common.d.ts.map +1 -1
  144. package/development/file-selector/file-selector/file-selector.component.d.ts.map +1 -1
  145. package/development/file-selector/file-selector/file-selector.component.js +1 -1
  146. package/development/file-selector/file-selector-dropzone/file-selector-dropzone.component.d.ts.map +1 -1
  147. package/development/file-selector-common-DE_jT1fa.js +1 -1
  148. package/development/file-selector-dropzone.component-dyv_u-Ga.js +1 -1
  149. package/development/file-selector.js +1 -1
  150. package/development/flip-card/flip-card/flip-card.component.d.ts.map +1 -1
  151. package/development/flip-card/flip-card-details/flip-card-details.component.d.ts.map +1 -1
  152. package/development/flip-card/flip-card-summary/flip-card-summary.component.d.ts.map +1 -1
  153. package/development/flip-card-details.component-CKRovHqO.js +1 -1
  154. package/development/flip-card-summary.component-THvJF3Cl.js +1 -1
  155. package/development/flip-card.component-qnodzif2.js +1 -1
  156. package/development/flip-card.js +1 -1
  157. package/development/footer/footer.component.d.ts.map +1 -1
  158. package/development/footer.component-Dbc5xFqr.js +1 -1
  159. package/development/form-field/error/error.component.d.ts.map +1 -1
  160. package/development/form-field/form-field/form-field.component.d.ts.map +1 -1
  161. package/development/form-field/form-field-clear/form-field-clear.component.d.ts.map +1 -1
  162. package/development/form-field/form-field-clear/form-field-clear.component.js +1 -1
  163. package/development/form-field/form-field-text-counter/form-field-text-counter.component.d.ts.map +1 -1
  164. package/development/form-field/form-field-text-counter/form-field-text-counter.component.js +1 -1
  165. package/development/form-field/hint/hint.component.d.ts.map +1 -1
  166. package/development/form-field.component-DGOrnYkc.js +1 -1
  167. package/development/header/common/header-action-common.d.ts +1 -1
  168. package/development/header/common/header-action-common.d.ts.map +1 -1
  169. package/development/header/header/header.component.d.ts.map +1 -1
  170. package/development/header/header-environment/header-environment.component.d.ts.map +1 -1
  171. package/development/header-action-common-BEnsweEr.js +1 -1
  172. package/development/header-environment.component-D-SLP3CC.js +1 -1
  173. package/development/header.component-Hfgz9sSb.js +1 -1
  174. package/development/header.js +1 -1
  175. package/development/hint.component-hKw1TLvO.js +1 -1
  176. package/development/icon/icon-base.d.ts.map +1 -1
  177. package/development/icon/icon-name-mixin.d.ts +1 -1
  178. package/development/icon/icon-name-mixin.d.ts.map +1 -1
  179. package/development/icon/icon-name-mixin.js +1 -1
  180. package/development/icon-base-VYmbZT1-.js +1 -1
  181. package/development/icon-sidebar/icon-sidebar-button/icon-sidebar-button.component.d.ts.map +1 -1
  182. package/development/icon-sidebar/icon-sidebar-button/icon-sidebar-button.component.js +1 -1
  183. package/development/icon-sidebar/icon-sidebar-link/icon-sidebar-link.component.d.ts.map +1 -1
  184. package/development/icon-sidebar/icon-sidebar-link/icon-sidebar-link.component.js +1 -1
  185. package/development/icon-sidebar.js +1 -1
  186. package/development/image/image.component.d.ts.map +1 -1
  187. package/development/image.component-BuAPmhIt.js +1 -1
  188. package/development/inline-link-common-CONiCeR9.js +1 -1
  189. package/development/journey-header/journey-header.component.d.ts.map +1 -1
  190. package/development/journey-header.component-BKX1K6cf.js +1 -1
  191. package/development/lead-container/lead-container.component.d.ts.map +1 -1
  192. package/development/lead-container.component-B1eW6Xgb.js +1 -1
  193. package/development/link/block-link/block-link.component.d.ts.map +1 -1
  194. package/development/link/block-link/block-link.component.js +1 -1
  195. package/development/link/common/block-link-common.d.ts +1 -1
  196. package/development/link/common/block-link-common.d.ts.map +1 -1
  197. package/development/link/common/inline-link-common.d.ts +1 -1
  198. package/development/link/common/inline-link-common.d.ts.map +1 -1
  199. package/development/link/common/link-common.d.ts +1 -1
  200. package/development/link/common/link-common.d.ts.map +1 -1
  201. package/development/link/link/link.component.d.ts.map +1 -1
  202. package/development/link/link/link.component.js +1 -1
  203. package/development/link-common-4Ag6Mio-.js +1 -1
  204. package/development/link-list/common/link-list-base.d.ts.map +1 -1
  205. package/development/link-list/link-list.component.d.ts.map +1 -1
  206. package/development/link-list-anchor/link-list-anchor.component.d.ts.map +1 -1
  207. package/development/link-list-anchor.component-Cotg5LDT.js +1 -1
  208. package/development/link-list-base-B7vidwUW.js +1 -1
  209. package/development/link-list.component-BFbrLjs0.js +1 -1
  210. package/development/loading-indicator/loading-indicator.component.d.ts.map +1 -1
  211. package/development/loading-indicator-circle/loading-indicator-circle.component.d.ts.map +1 -1
  212. package/development/loading-indicator-circle.component-nc-RH0jT.js +1 -1
  213. package/development/loading-indicator.component-DNCUlh6S.js +1 -1
  214. package/development/logo/logo.component.d.ts.map +1 -1
  215. package/development/logo.component-tFe_T36e.js +1 -1
  216. package/development/map-container/map-container.component.d.ts.map +1 -1
  217. package/development/map-container.component-mzZ_K_fR.js +1 -1
  218. package/development/menu/common/menu-action-common.d.ts +1 -1
  219. package/development/menu/common/menu-action-common.d.ts.map +1 -1
  220. package/development/menu/menu/menu.component.d.ts +1 -1
  221. package/development/menu/menu/menu.component.d.ts.map +1 -1
  222. package/development/menu/menu-link/menu-link.component.d.ts.map +1 -1
  223. package/development/menu/menu-link/menu-link.component.js +1 -1
  224. package/development/menu-action-common-Crx-dDgH.js +1 -1
  225. package/development/menu.component-DOv7PKIi.js +1 -1
  226. package/development/menu.js +1 -1
  227. package/development/message/message.component.d.ts.map +1 -1
  228. package/development/message.component-CrXtMprr.js +1 -1
  229. package/development/mini-button-group.component-DNFyLMg_.js +1 -1
  230. package/development/mini-button-link.component-DflgG59S.js +1 -1
  231. package/development/mini-calendar/mini-calendar/mini-calendar.component.d.ts +1 -1
  232. package/development/mini-calendar/mini-calendar/mini-calendar.component.d.ts.map +1 -1
  233. package/development/mini-calendar/mini-calendar-day/mini-calendar-day.component.d.ts.map +1 -1
  234. package/development/mini-calendar/mini-calendar-month/mini-calendar-month.component.d.ts.map +1 -1
  235. package/development/mini-calendar-day.component-Bmx2GYGZ.js +1 -1
  236. package/development/mini-calendar-month.component-CdIsxUAx.js +1 -1
  237. package/development/mini-calendar.component-Ddxgy4Tj.js +1 -1
  238. package/development/mini-calendar.js +1 -1
  239. package/development/navigation/common/navigation-action-common.d.ts +1 -1
  240. package/development/navigation/common/navigation-action-common.d.ts.map +1 -1
  241. package/development/navigation/navigation/navigation.component.d.ts +1 -1
  242. package/development/navigation/navigation/navigation.component.d.ts.map +1 -1
  243. package/development/navigation/navigation-list/navigation-list.component.d.ts.map +1 -1
  244. package/development/navigation/navigation-marker/navigation-marker.component.d.ts.map +1 -1
  245. package/development/navigation/navigation-section/navigation-section.component.d.ts +1 -1
  246. package/development/navigation/navigation-section/navigation-section.component.d.ts.map +1 -1
  247. package/development/navigation-action-common-ZBiv0Xiw.js +1 -1
  248. package/development/navigation-list.component-DilKlDwx.js +1 -1
  249. package/development/navigation-marker.component-BsfPR_uk.js +1 -1
  250. package/development/navigation-section.component-C_9myQKr.js +1 -1
  251. package/development/navigation.component-C8MhqBLY.js +1 -1
  252. package/development/navigation.js +1 -1
  253. package/development/notification/notification.component.d.ts.map +1 -1
  254. package/development/notification.component-CKyNdgbx.js +1 -1
  255. package/development/optgroup-base-element-er7EBllh.js +1 -1
  256. package/development/option/optgroup/optgroup-base-element.d.ts.map +1 -1
  257. package/development/option/option/option-base-element.d.ts.map +1 -1
  258. package/development/option/option/option-base-element.js +1 -1
  259. package/development/option/option/option.component.d.ts +1 -1
  260. package/development/option/option/option.component.d.ts.map +1 -1
  261. package/development/option/option-hint/option-hint.component.d.ts.map +1 -1
  262. package/development/option-hint.component-DLp9rQrk.js +1 -1
  263. package/development/option.component-Dod6JgbH.js +1 -1
  264. package/development/overlay/overlay-base-element.d.ts +1 -1
  265. package/development/overlay/overlay-base-element.d.ts.map +1 -1
  266. package/development/overlay/overlay-base-element.js +1 -1
  267. package/development/overlay/overlay.component.d.ts.map +1 -1
  268. package/development/overlay.component-BuCkqG6Q.js +1 -1
  269. package/development/paginator/common/paginator-common.d.ts +1 -1
  270. package/development/paginator/common/paginator-common.d.ts.map +1 -1
  271. package/development/paginator/common/paginator-common.js +1 -1
  272. package/development/paginator/compact-paginator/compact-paginator.component.d.ts.map +1 -1
  273. package/development/paginator/paginator/paginator.component.d.ts.map +1 -1
  274. package/development/paginator.component-Cqm7MuRD.js +1 -1
  275. package/development/panel-mixin-CKHxLmjh.js +1 -1
  276. package/development/popover/popover.component.d.ts +1 -1
  277. package/development/popover/popover.component.d.ts.map +1 -1
  278. package/development/popover.component-B15jFLe9.js +1 -1
  279. package/development/radio-button/common/radio-button-common.d.ts +1 -1
  280. package/development/radio-button/common/radio-button-common.d.ts.map +1 -1
  281. package/development/radio-button/radio-button.component.d.ts.map +1 -1
  282. package/development/radio-button-common-u7NYOI2p.js +1 -1
  283. package/development/radio-button-group/radio-button-group.component.d.ts.map +1 -1
  284. package/development/radio-button-group/radio-button-group.component.js +1 -1
  285. package/development/radio-button-panel/radio-button-panel.component.d.ts.map +1 -1
  286. package/development/radio-button-panel/radio-button-panel.component.js +1 -1
  287. package/development/radio-button.component-DAgH41z0.js +1 -1
  288. package/development/screen-reader-only.component-D60AmiFy.js +1 -1
  289. package/development/select/select.component.d.ts +1 -1
  290. package/development/select/select.component.d.ts.map +1 -1
  291. package/development/select.component-CqwBdtsN.js +1 -1
  292. package/development/selection-action-panel/selection-action-panel.component.d.ts.map +1 -1
  293. package/development/selection-action-panel.component-DvhL5Z_Q.js +1 -1
  294. package/development/selection-expansion-panel/selection-expansion-panel.component.d.ts.map +1 -1
  295. package/development/selection-expansion-panel.component-D_HF9lzq.js +1 -1
  296. package/development/selection-group-base-element-rKKX4OAJ.js +1 -1
  297. package/development/sidebar/sidebar/sidebar.component.d.ts.map +1 -1
  298. package/development/sidebar/sidebar-close-button/sidebar-close-button.component.d.ts.map +1 -1
  299. package/development/sidebar/sidebar-container/sidebar-container.component.d.ts.map +1 -1
  300. package/development/sidebar/sidebar-title/sidebar-title.component.d.ts.map +1 -1
  301. package/development/sidebar-close-button.component-DYE0tK-I.js +1 -1
  302. package/development/sidebar-container.component-CC9TtB6I.js +1 -1
  303. package/development/sidebar-title.component-DBb5MfIC.js +1 -1
  304. package/development/sidebar.component-CwuT6dno.js +1 -1
  305. package/development/sidebar.js +1 -1
  306. package/development/signet/signet.component.d.ts.map +1 -1
  307. package/development/signet.component-DO73qKor.js +1 -1
  308. package/development/skiplink-list/skiplink-list.component.d.ts.map +1 -1
  309. package/development/skiplink-list.component-DqYT2mmv.js +1 -1
  310. package/development/slider/slider.component.d.ts +1 -1
  311. package/development/slider/slider.component.d.ts.map +1 -1
  312. package/development/slider.component-ZBdkbZei.js +1 -1
  313. package/development/status/status.component.d.ts.map +1 -1
  314. package/development/status.component-p-egQ_U4.js +1 -1
  315. package/development/step-label.component-CxqPgbzK.js +1 -1
  316. package/development/step.component-B2qbHl0l.js +1 -1
  317. package/development/stepper/step/step.component.d.ts.map +1 -1
  318. package/development/stepper/step-label/step-label.component.d.ts.map +1 -1
  319. package/development/stepper/stepper/stepper.component.d.ts.map +1 -1
  320. package/development/stepper.component-BTwJttZt.js +1 -1
  321. package/development/sticky-bar.component-MMBSPa2B.js +1 -1
  322. package/development/tab-group.component-DX7BY7Xy.js +1 -1
  323. package/development/tab-label.component-Du1W0dxN.js +1 -1
  324. package/development/tab-nav-bar.component-BTPTHy2C.js +1 -1
  325. package/development/tab.component-DteuwiHv.js +1 -1
  326. package/development/table/table-wrapper/table-wrapper.component.d.ts.map +1 -1
  327. package/development/table-wrapper.component-iSeT-FPH.js +1 -1
  328. package/development/tabs/tab/tab.component.d.ts.map +1 -1
  329. package/development/tabs/tab-group/tab-group.component.d.ts.map +1 -1
  330. package/development/tabs/tab-label/tab-label.component.d.ts.map +1 -1
  331. package/development/tabs/tab-nav-bar/tab-nav-bar.component.d.ts.map +1 -1
  332. package/development/tag/tag/tag.component.d.ts +1 -1
  333. package/development/tag/tag/tag.component.d.ts.map +1 -1
  334. package/development/tag/tag-group/tag-group.component.d.ts.map +1 -1
  335. package/development/tag-group.component-SEbOfnip.js +1 -1
  336. package/development/tag.component-CWL9jJTW.js +1 -1
  337. package/development/teaser/teaser.component.d.ts.map +1 -1
  338. package/development/teaser-hero/teaser-hero.component.d.ts +1 -1
  339. package/development/teaser-hero/teaser-hero.component.d.ts.map +1 -1
  340. package/development/teaser-hero.component-7KeR7bPf.js +1 -1
  341. package/development/teaser-product/common/teaser-product-common.d.ts +1 -1
  342. package/development/teaser-product/common/teaser-product-common.d.ts.map +1 -1
  343. package/development/teaser-product/teaser-product/teaser-product.component.d.ts +1 -1
  344. package/development/teaser-product/teaser-product/teaser-product.component.d.ts.map +1 -1
  345. package/development/teaser-product/teaser-product-static/teaser-product-static.component.d.ts.map +1 -1
  346. package/development/teaser-product/teaser-product-static/teaser-product-static.component.js +1 -1
  347. package/development/teaser-product-common-DhbAGnQN.js +1 -1
  348. package/development/teaser-product.component-C3PZbA5W.js +1 -1
  349. package/development/teaser.component-BJso_6lz.js +1 -1
  350. package/development/time-input/time-input.component.d.ts.map +1 -1
  351. package/development/time-input.component-BWMBV6fm.js +1 -1
  352. package/development/timetable-form/timetable-form/timetable-form.component.d.ts.map +1 -1
  353. package/development/timetable-form/timetable-form-details/timetable-form-details.component.d.ts.map +1 -1
  354. package/development/timetable-form/timetable-form-swap-button/timetable-form-swap-button.component.d.ts.map +1 -1
  355. package/development/timetable-form-details.component-C8EdT4rZ.js +1 -1
  356. package/development/timetable-form-swap-button.component-_EUhzoww.js +1 -1
  357. package/development/timetable-form.component-DLjBbFRv.js +1 -1
  358. package/development/timetable-form.js +1 -1
  359. package/development/timetable-occupancy/timetable-occupancy.component.d.ts +1 -1
  360. package/development/timetable-occupancy/timetable-occupancy.component.d.ts.map +1 -1
  361. package/development/timetable-occupancy-icon/timetable-occupancy-icon.component.d.ts.map +1 -1
  362. package/development/timetable-occupancy-icon.component-DXFUx67a.js +1 -1
  363. package/development/timetable-occupancy.component-By7X3Sj2.js +1 -1
  364. package/development/title/title-base.d.ts.map +1 -1
  365. package/development/title/title.component.d.ts.map +1 -1
  366. package/development/title-base-Bc3biGfy.js +1 -1
  367. package/development/title.component-B7rIqG0N.js +1 -1
  368. package/development/toast/toast.component.d.ts +1 -1
  369. package/development/toast/toast.component.d.ts.map +1 -1
  370. package/development/toast.component-Cy13egVy.js +1 -1
  371. package/development/toggle/toggle/toggle.component.d.ts +1 -1
  372. package/development/toggle/toggle/toggle.component.d.ts.map +1 -1
  373. package/development/toggle/toggle-option/toggle-option.component.d.ts.map +1 -1
  374. package/development/toggle-check/toggle-check.component.d.ts.map +1 -1
  375. package/development/toggle-check.component-CuODx4cx.js +1 -1
  376. package/development/toggle-option.component-DscH6K3b.js +1 -1
  377. package/development/toggle.component-Dap1d4rK.js +1 -1
  378. package/development/tooltip/tooltip.component.d.ts.map +1 -1
  379. package/development/tooltip.component-BtWTK2R0.js +1 -1
  380. package/development/train/train/train.component.d.ts.map +1 -1
  381. package/development/train.component-D5Z4vgej.js +1 -1
  382. package/development/train.js +1 -1
  383. package/development/visual-checkbox/visual-checkbox.component.d.ts.map +1 -1
  384. package/development/visual-checkbox.component-jRksxrOu.js +1 -1
  385. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"accordion.component.d.ts","sourceRoot":"","sources":["../../../../src/elements/accordion/accordion.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,cAAc,EACpB,MAAM,KAAK,CAAC;AAGb,OAAO,EACL,UAAU,EAOX,MAAM,YAAY,CAAC;AAEpB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAItD;;;;GAIG;AACH,qBAAa,mBAAoB,SAAQ,UAAU;IACjD,gBAAgC,WAAW,EAAE,MAAM,CAAmB;IACtE,OAAuB,MAAM,EAAE,cAAc,CAAuC;IAEpF;;;OAGG;IACH,SACgB,IAAI,EAAE,GAAG,GAAG,GAAG,CAAwB;IAEvD;;;OAGG;IACH,SAEgB,UAAU,EAAE,aAAa,GAAG,IAAI,CAAQ;IAExD,8EAA8E;IAC9E,SAMgB,KAAK,EAAE,OAAO,CAAS;;IAkBvC,OAAO,CAAC,gBAAgB;IAIxB,OAAO,CAAC,YAAY;cAUD,UAAU,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;IAU5E,OAAO,CAAC,qBAAqB;IAW7B,OAAO,CAAC,wBAAwB;IAMhC,OAAO,CAAC,iBAAiB;cAYN,MAAM,IAAI,cAAc;CAG5C;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,eAAe,EAAE,mBAAmB,CAAC;KACtC;CACF"}
1
+ {"version":3,"file":"accordion.component.d.ts","sourceRoot":"","sources":["../../../../src/elements/accordion/accordion.component.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,cAAc,EAEnB,KAAK,cAAc,EACnB,KAAK,cAAc,EAEpB,MAAM,KAAK,CAAC;AAGb,OAAO,EAML,UAAU,EAEX,MAAM,YAAY,CAAC;AAEpB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAItD;;;;GAIG;AACH,qBAAa,mBAAoB,SAAQ,UAAU;IACjD,gBAAgC,WAAW,EAAE,MAAM,CAAmB;IACtE,OAAuB,MAAM,EAAE,cAAc,CAAuC;IAEpF;;;OAGG;IACH,SACgB,IAAI,EAAE,GAAG,GAAG,GAAG,CAAwB;IAEvD;;;OAGG;IACH,SAEgB,UAAU,EAAE,aAAa,GAAG,IAAI,CAAQ;IAExD,8EAA8E;IAC9E,SAMgB,KAAK,EAAE,OAAO,CAAS;;IAkBvC,OAAO,CAAC,gBAAgB;IAIxB,OAAO,CAAC,YAAY;cAUD,UAAU,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;IAU5E,OAAO,CAAC,qBAAqB;IAW7B,OAAO,CAAC,wBAAwB;IAMhC,OAAO,CAAC,iBAAiB;cAYN,MAAM,IAAI,cAAc;CAG5C;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,eAAe,EAAE,mBAAmB,CAAC;KACtC;CACF"}
@@ -162,4 +162,4 @@ var SbbAccordionElement = (() => {
162
162
  //#endregion
163
163
  export { SbbAccordionElement as t };
164
164
 
165
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3JkaW9uLmNvbXBvbmVudC1ER1VvRzZwMi5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZWxlbWVudHMvYWNjb3JkaW9uL2FjY29yZGlvbi5zY3NzP2lubGluZSIsIi4uLy4uLy4uL3NyYy9lbGVtZW50cy9hY2NvcmRpb24vYWNjb3JkaW9uLmNvbXBvbmVudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJAdXNlICcuLi9jb3JlL3N0eWxlcycgYXMgc2JiO1xuXG46aG9zdCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuIiwiaW1wb3J0IHtcbiAgaHRtbCxcbiAgdW5zYWZlQ1NTLFxuICB0eXBlIENTU1Jlc3VsdEdyb3VwLFxuICB0eXBlIFByb3BlcnR5VmFsdWVzLFxuICB0eXBlIFRlbXBsYXRlUmVzdWx0LFxufSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgcHJvcGVydHkgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5cbmltcG9ydCB7XG4gIFNiYkVsZW1lbnQsXG4gIMm1c3RhdGVDb250cm9sbGVyLFxuICBmb3JjZVR5cGUsXG4gIGhhbmRsZURpc3RpbmN0Q2hhbmdlLFxuICBpc0xlYW4sXG4gIGlzRXZlbnRQcmV2ZW50ZWQsXG4gIGJveFNpemluZ1N0eWxlcyxcbn0gZnJvbSAnLi4vY29yZS50cyc7XG5pbXBvcnQgdHlwZSB7IFNiYkV4cGFuc2lvblBhbmVsRWxlbWVudCB9IGZyb20gJy4uL2V4cGFuc2lvbi1wYW5lbC5wdXJlLnRzJztcbmltcG9ydCB0eXBlIHsgU2JiVGl0bGVMZXZlbCB9IGZyb20gJy4uL3RpdGxlLnB1cmUudHMnO1xuXG5pbXBvcnQgc3R5bGUgZnJvbSAnLi9hY2NvcmRpb24uc2Nzcz9pbmxpbmUnO1xuXG4vKipcbiAqIEl0IGNhbiBiZSB1c2VkIGFzIGEgY29udGFpbmVyIGZvciBvbmUgb3IgbW9yZSBgc2JiLWV4cGFuc2lvbi1wYW5lbGAgY29tcG9uZW50LlxuICpcbiAqIEBzbG90IC0gVXNlIHRoZSB1bm5hbWVkIHNsb3QgdG8gYWRkIGBzYmItZXhwYW5zaW9uLXBhbmVsYCBlbGVtZW50cy5cbiAqL1xuZXhwb3J0IGNsYXNzIFNiYkFjY29yZGlvbkVsZW1lbnQgZXh0ZW5kcyBTYmJFbGVtZW50IHtcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSByZWFkb25seSBlbGVtZW50TmFtZTogc3RyaW5nID0gJ3NiYi1hY2NvcmRpb24nO1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHN0eWxlczogQ1NTUmVzdWx0R3JvdXAgPSBbYm94U2l6aW5nU3R5bGVzLCB1bnNhZmVDU1Moc3R5bGUpXTtcblxuICAvKipcbiAgICogU2l6ZSB2YXJpYW50LCBlaXRoZXIgbCBvciBzOyBvdmVycmlkZXMgdGhlIHNpemUgb24gYW55IHByb2plY3RlZCBgc2JiLWV4cGFuc2lvbi1wYW5lbGAuXG4gICAqIEBkZWZhdWx0ICdsJyAvICdzJyAobGVhbilcbiAgICovXG4gIEBwcm9wZXJ0eSh7IHJlZmxlY3Q6IHRydWUgfSlcbiAgcHVibGljIGFjY2Vzc29yIHNpemU6ICdzJyB8ICdsJyA9IGlzTGVhbigpID8gJ3MnIDogJ2wnO1xuXG4gIC8qKlxuICAgKiBUaGUgaGVhZGluZyBsZXZlbCBmb3IgdGhlIHNiYi1leHBhbnNpb24tcGFuZWwtaGVhZGVycyB3aXRoaW4gdGhlIGNvbXBvbmVudC5cbiAgICogQGNvbnRyb2xzIFNiYkV4cGFuc2lvblBhbmVsRWxlbWVudC50aXRsZUxldmVsXG4gICAqL1xuICBAaGFuZGxlRGlzdGluY3RDaGFuZ2UoKGU6IFNiYkFjY29yZGlvbkVsZW1lbnQpID0+IGUuX3NldFRpdGxlTGV2ZWxPbkNoaWxkcmVuKCkpXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ3RpdGxlLWxldmVsJyB9KVxuICBwdWJsaWMgYWNjZXNzb3IgdGl0bGVMZXZlbDogU2JiVGl0bGVMZXZlbCB8IG51bGwgPSBudWxsO1xuXG4gIC8qKiBXaGV0aGVyIG1vcmUgdGhhbiBvbmUgc2JiLWV4cGFuc2lvbi1wYW5lbCBjYW4gYmUgb3BlbiBhdCB0aGUgc2FtZSB0aW1lLiAqL1xuICBAZm9yY2VUeXBlKClcbiAgQGhhbmRsZURpc3RpbmN0Q2hhbmdlKFxuICAgIChlOiBTYmJBY2NvcmRpb25FbGVtZW50LCBuZXdWYWx1ZTogYm9vbGVhbiwgb2xkVmFsdWU6IGJvb2xlYW4gfCB1bmRlZmluZWQpID0+XG4gICAgICBlLl9yZXNldEV4cGFuc2lvblBhbmVscyhuZXdWYWx1ZSwgISFvbGRWYWx1ZSksXG4gIClcbiAgQHByb3BlcnR5KHsgdHlwZTogQm9vbGVhbiB9KVxuICBwdWJsaWMgYWNjZXNzb3IgbXVsdGk6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBwdWJsaWMgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/LihcbiAgICAgICdiZWZvcmVvcGVuJyxcbiAgICAgIGFzeW5jIChlOiBFdmVudCkgPT4ge1xuICAgICAgICBpZiAoIShhd2FpdCBpc0V2ZW50UHJldmVudGVkKGUpKSkge1xuICAgICAgICAgIHRoaXMuX2Nsb3NlUGFuZWxzKGUpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAge1xuICAgICAgICAvLyBXZSB1c2UgY2FwdHVyZSBoZXJlLCBiZWNhdXNlICdiZWZvcmVvcGVuJyBkb2VzIG5vdCBidWJibGUuXG4gICAgICAgIGNhcHR1cmU6IHRydWUsXG4gICAgICB9LFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIF9leHBhbnNpb25QYW5lbHMoKTogU2JiRXhwYW5zaW9uUGFuZWxFbGVtZW50W10ge1xuICAgIHJldHVybiBBcnJheS5mcm9tKHRoaXMucXVlcnlTZWxlY3RvckFsbD8uKCdzYmItZXhwYW5zaW9uLXBhbmVsJykgPz8gW10pO1xuICB9XG5cbiAgcHJpdmF0ZSBfY2xvc2VQYW5lbHMoZTogRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoKGUudGFyZ2V0IGFzIEhUTUxFbGVtZW50KT8ubG9jYWxOYW1lICE9PSAnc2JiLWV4cGFuc2lvbi1wYW5lbCcgfHwgdGhpcy5tdWx0aSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuX2V4cGFuc2lvblBhbmVscygpXG4gICAgICAuZmlsdGVyKChwYW5lbCkgPT4gcGFuZWwgIT09IGUudGFyZ2V0KVxuICAgICAgLmZvckVhY2goKHBhbmVsKSA9PiAocGFuZWwuZXhwYW5kZWQgPSBmYWxzZSkpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHdpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXM6IFByb3BlcnR5VmFsdWVzPHRoaXM+KTogdm9pZCB7XG4gICAgc3VwZXIud2lsbFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllcyk7XG5cbiAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdzaXplJykpIHtcbiAgICAgIHRoaXMuX2V4cGFuc2lvblBhbmVscygpLmZvckVhY2goXG4gICAgICAgIChwYW5lbDogU2JiRXhwYW5zaW9uUGFuZWxFbGVtZW50KSA9PiAocGFuZWwuc2l6ZSA9IHRoaXMuc2l6ZSksXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX3Jlc2V0RXhwYW5zaW9uUGFuZWxzKG5ld1ZhbHVlOiBib29sZWFuLCBvbGRWYWx1ZTogYm9vbGVhbik6IHZvaWQge1xuICAgIC8vIElmIGl0J3MgY2hhbmdpbmcgZnJvbSBcIm11bHRpID0gdHJ1ZVwiIHRvIFwibXVsdGkgPSBmYWxzZVwiLCBvcGVuIHRoZSBmaXJzdCBwYW5lbCBhbmQgY2xvc2UgYWxsIHRoZSBvdGhlcnMuXG4gICAgY29uc3QgZXhwYW5zaW9uUGFuZWxzID0gdGhpcy5fZXhwYW5zaW9uUGFuZWxzKCk7XG4gICAgaWYgKGV4cGFuc2lvblBhbmVscy5sZW5ndGggPiAxICYmIG9sZFZhbHVlICYmICFuZXdWYWx1ZSkge1xuICAgICAgZXhwYW5zaW9uUGFuZWxzWzBdLmV4cGFuZGVkID0gdHJ1ZTtcbiAgICAgIGV4cGFuc2lvblBhbmVsc1xuICAgICAgICAuZmlsdGVyKChfLCBpbmRleDogbnVtYmVyKSA9PiBpbmRleCA+IDApXG4gICAgICAgIC5mb3JFYWNoKChwYW5lbCkgPT4gKHBhbmVsLmV4cGFuZGVkID0gZmFsc2UpKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9zZXRUaXRsZUxldmVsT25DaGlsZHJlbigpOiB2b2lkIHtcbiAgICB0aGlzLl9leHBhbnNpb25QYW5lbHMoKS5mb3JFYWNoKFxuICAgICAgKHBhbmVsOiBTYmJFeHBhbnNpb25QYW5lbEVsZW1lbnQpID0+IChwYW5lbC50aXRsZUxldmVsID0gdGhpcy50aXRsZUxldmVsKSxcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBfaGFuZGxlU2xvdGNoYW5nZSgpOiB2b2lkIHtcbiAgICB0aGlzLl9leHBhbnNpb25QYW5lbHMoKS5mb3JFYWNoKFxuICAgICAgKHBhbmVsOiBTYmJFeHBhbnNpb25QYW5lbEVsZW1lbnQsIGluZGV4OiBudW1iZXIsIGFycmF5OiBTYmJFeHBhbnNpb25QYW5lbEVsZW1lbnRbXSkgPT4ge1xuICAgICAgICBwYW5lbC50aXRsZUxldmVsID0gdGhpcy50aXRsZUxldmVsO1xuICAgICAgICBwYW5lbC5zaXplID0gdGhpcy5zaXplO1xuICAgICAgICBjb25zdCBjb250cm9sbGVyID0gybVzdGF0ZUNvbnRyb2xsZXIocGFuZWwpO1xuICAgICAgICBjb250cm9sbGVyLnRvZ2dsZSgnYWNjb3JkaW9uLWZpcnN0JywgaW5kZXggPT09IDApO1xuICAgICAgICBjb250cm9sbGVyLnRvZ2dsZSgnYWNjb3JkaW9uLWxhc3QnLCBpbmRleCA9PT0gYXJyYXkubGVuZ3RoIC0gMSk7XG4gICAgICB9LFxuICAgICk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICByZXR1cm4gaHRtbGA8c2xvdCBAc2xvdGNoYW5nZT0ke3RoaXMuX2hhbmRsZVNsb3RjaGFuZ2V9Pjwvc2xvdD5gO1xuICB9XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgICdzYmItYWNjb3JkaW9uJzogU2JiQWNjb3JkaW9uRWxlbWVudDtcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0lDNEJhLDZCQUFtQjttQkFBUzs7Ozs7Ozs7OztjQUE1Qiw0QkFBNEIsWUFBVTs7O3VCQVFoRCxTQUFTLEVBQUUsU0FBUyxNQUFNLENBQUMsQ0FBQTs2QkFPM0Isc0JBQXNCLE1BQTJCLEVBQUUsMEJBQTBCLENBQUMsRUFDOUUsU0FBUyxFQUFFLFdBQVcsZUFBZSxDQUFDLENBQUE7O0lBSXRDLFdBQVc7SUFDWCxzQkFDRSxHQUF3QixVQUFtQixhQUMxQyxFQUFFLHNCQUFzQixVQUFVLENBQUMsQ0FBQyxTQUFTLENBQ2hEO0lBQ0EsU0FBUyxFQUFFLE1BQU0sU0FBUyxDQUFBO0lBQUM7QUFoQjVCLGdCQUFBLE1BQUEsTUFBQSxrQkFBQTtJQUFBLE1BQUE7SUFBQSxNQUFBO0lBQUEsUUFBQTtJQUFBLFNBQUE7SUFBQSxRQUFBO0tBQUEsTUFBQSxRQUFBLFVBQUE7S0FBQSxNQUFBLFFBQUEsSUFBZ0I7S0FBSSxNQUFBLEtBQUEsVUFBQTtBQUFBLFVBQUosT0FBSTs7S0FBQTtJQUFBLFVBQUE7SUFBQSxFQUFBLG9CQUFBLHdCQUFBO0FBUXBCLGdCQUFBLE1BQUEsTUFBQSx3QkFBQTtJQUFBLE1BQUE7SUFBQSxNQUFBO0lBQUEsUUFBQTtJQUFBLFNBQUE7SUFBQSxRQUFBO0tBQUEsTUFBQSxRQUFBLGdCQUFBO0tBQUEsTUFBQSxRQUFBLElBQWdCO0tBQVUsTUFBQSxLQUFBLFVBQUE7QUFBQSxVQUFWLGFBQVU7O0tBQUE7SUFBQSxVQUFBO0lBQUEsRUFBQSwwQkFBQSw4QkFBQTtBQVMxQixnQkFBQSxNQUFBLE1BQUEsbUJBQUE7SUFBQSxNQUFBO0lBQUEsTUFBQTtJQUFBLFFBQUE7SUFBQSxTQUFBO0lBQUEsUUFBQTtLQUFBLE1BQUEsUUFBQSxXQUFBO0tBQUEsTUFBQSxRQUFBLElBQWdCO0tBQUssTUFBQSxLQUFBLFVBQUE7QUFBQSxVQUFMLFFBQUs7O0tBQUE7SUFBQSxVQUFBO0lBQUEsRUFBQSxxQkFBQSx5QkFBQTs7Ozs7Ozs7O0FBekJXLFFBQUEsY0FBc0I7OztBQUMvQixRQUFBLFNBQXlCLENBQUMsaUJBQWlCLFVBQVUsa0JBQU0sQ0FBQzs7RUFPbkYseUJBQUEsa0JBQUEsTUFBQSxvQkFBa0MsUUFBUSxHQUFHLE1BQU0sSUFBRzs7Ozs7RUFBdEQsSUFBZ0IsT0FBSTtBQUFBLFVBQUEsTUFBQTs7RUFBcEIsSUFBZ0IsS0FBSSxPQUFBO0FBQUEsU0FBQSx3QkFBQTs7RUFRcEIsZ0NBQUEsa0JBQUEsTUFBQSx3QkFBQSxFQUFBLGtCQUFBLE1BQUEsMEJBQW1ELEtBQUk7Ozs7O0VBQXZELElBQWdCLGFBQVU7QUFBQSxVQUFBLE1BQUE7O0VBQTFCLElBQWdCLFdBQVUsT0FBQTtBQUFBLFNBQUEsOEJBQUE7O0VBUzFCLDJCQUFBLGtCQUFBLE1BQUEsOEJBQUEsRUFBQSxrQkFBQSxNQUFBLHFCQUFpQyxNQUFLOztFQUF0QyxJQUFnQixRQUFLO0FBQUEsVUFBQSxNQUFBOztFQUFyQixJQUFnQixNQUFLLE9BQUE7QUFBQSxTQUFBLHlCQUFBOztFQUVyQixjQUFBO0FBQ0UsVUFBTzs7QUFDUCxRQUFLLG1CQUNILGNBQ0EsT0FBTyxNQUFZO0FBQ2pCLFFBQUksQ0FBRSxNQUFNLGlCQUFpQixFQUFFLENBQzdCLE1BQUssYUFBYSxFQUFFO01BR3hCLEVBRUUsU0FBUyxNQUNWLENBQ0Y7O0VBR0ssbUJBQWdCO0FBQ3RCLFVBQU8sTUFBTSxLQUFLLEtBQUssbUJBQW1CLHNCQUFzQixJQUFJLEVBQUUsQ0FBQzs7RUFHakUsYUFBYSxHQUFRO0FBQzNCLE9BQUssRUFBRSxRQUF3QixjQUFjLHlCQUF5QixLQUFLLE1BQ3pFO0FBR0YsUUFBSyxrQkFBa0IsQ0FDcEIsUUFBUSxVQUFVLFVBQVUsRUFBRSxPQUFPLENBQ3JDLFNBQVMsVUFBVyxNQUFNLFdBQVcsTUFBTzs7RUFHOUIsV0FBVyxtQkFBdUM7QUFDbkUsU0FBTSxXQUFXLGtCQUFrQjtBQUVuQyxPQUFJLGtCQUFrQixJQUFJLE9BQU8sQ0FDL0IsTUFBSyxrQkFBa0IsQ0FBQyxTQUNyQixVQUFxQyxNQUFNLE9BQU8sS0FBSyxLQUN6RDs7RUFJRyxzQkFBc0IsVUFBbUIsVUFBaUI7R0FFaEUsTUFBTSxrQkFBa0IsS0FBSyxrQkFBa0I7QUFDL0MsT0FBSSxnQkFBZ0IsU0FBUyxLQUFLLFlBQVksQ0FBQyxVQUFVO0FBQ3ZELG9CQUFnQixHQUFHLFdBQVc7QUFDOUIsb0JBQ0csUUFBUSxHQUFHLFVBQWtCLFFBQVEsRUFBRSxDQUN2QyxTQUFTLFVBQVcsTUFBTSxXQUFXLE1BQU87OztFQUkzQywyQkFBd0I7QUFDOUIsUUFBSyxrQkFBa0IsQ0FBQyxTQUNyQixVQUFxQyxNQUFNLGFBQWEsS0FBSyxXQUMvRDs7RUFHSyxvQkFBaUI7QUFDdkIsUUFBSyxrQkFBa0IsQ0FBQyxTQUNyQixPQUFpQyxPQUFlLFVBQXFDO0FBQ3BGLFVBQU0sYUFBYSxLQUFLO0FBQ3hCLFVBQU0sT0FBTyxLQUFLO0lBQ2xCLE1BQU0sYUFBYSxpQkFBaUIsTUFBTTtBQUMxQyxlQUFXLE9BQU8sbUJBQW1CLFVBQVUsRUFBRTtBQUNqRCxlQUFXLE9BQU8sa0JBQWtCLFVBQVUsTUFBTSxTQUFTLEVBQUU7S0FFbEU7O0VBR2dCLFNBQU07QUFDdkIsVUFBTyxJQUFJLHFCQUFxQixLQUFLLGtCQUFpQiJ9
165
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3JkaW9uLmNvbXBvbmVudC1ER1VvRzZwMi5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZWxlbWVudHMvYWNjb3JkaW9uL2FjY29yZGlvbi5zY3NzP2lubGluZSIsIi4uLy4uLy4uL3NyYy9lbGVtZW50cy9hY2NvcmRpb24vYWNjb3JkaW9uLmNvbXBvbmVudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJAdXNlICcuLi9jb3JlL3N0eWxlcycgYXMgc2JiO1xuXG46aG9zdCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuIiwiaW1wb3J0IHtcbiAgdHlwZSBDU1NSZXN1bHRHcm91cCxcbiAgaHRtbCxcbiAgdHlwZSBQcm9wZXJ0eVZhbHVlcyxcbiAgdHlwZSBUZW1wbGF0ZVJlc3VsdCxcbiAgdW5zYWZlQ1NTLFxufSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgcHJvcGVydHkgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5cbmltcG9ydCB7XG4gIGJveFNpemluZ1N0eWxlcyxcbiAgZm9yY2VUeXBlLFxuICBoYW5kbGVEaXN0aW5jdENoYW5nZSxcbiAgaXNFdmVudFByZXZlbnRlZCxcbiAgaXNMZWFuLFxuICBTYmJFbGVtZW50LFxuICDJtXN0YXRlQ29udHJvbGxlcixcbn0gZnJvbSAnLi4vY29yZS50cyc7XG5pbXBvcnQgdHlwZSB7IFNiYkV4cGFuc2lvblBhbmVsRWxlbWVudCB9IGZyb20gJy4uL2V4cGFuc2lvbi1wYW5lbC5wdXJlLnRzJztcbmltcG9ydCB0eXBlIHsgU2JiVGl0bGVMZXZlbCB9IGZyb20gJy4uL3RpdGxlLnB1cmUudHMnO1xuXG5pbXBvcnQgc3R5bGUgZnJvbSAnLi9hY2NvcmRpb24uc2Nzcz9pbmxpbmUnO1xuXG4vKipcbiAqIEl0IGNhbiBiZSB1c2VkIGFzIGEgY29udGFpbmVyIGZvciBvbmUgb3IgbW9yZSBgc2JiLWV4cGFuc2lvbi1wYW5lbGAgY29tcG9uZW50LlxuICpcbiAqIEBzbG90IC0gVXNlIHRoZSB1bm5hbWVkIHNsb3QgdG8gYWRkIGBzYmItZXhwYW5zaW9uLXBhbmVsYCBlbGVtZW50cy5cbiAqL1xuZXhwb3J0IGNsYXNzIFNiYkFjY29yZGlvbkVsZW1lbnQgZXh0ZW5kcyBTYmJFbGVtZW50IHtcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSByZWFkb25seSBlbGVtZW50TmFtZTogc3RyaW5nID0gJ3NiYi1hY2NvcmRpb24nO1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHN0eWxlczogQ1NTUmVzdWx0R3JvdXAgPSBbYm94U2l6aW5nU3R5bGVzLCB1bnNhZmVDU1Moc3R5bGUpXTtcblxuICAvKipcbiAgICogU2l6ZSB2YXJpYW50LCBlaXRoZXIgbCBvciBzOyBvdmVycmlkZXMgdGhlIHNpemUgb24gYW55IHByb2plY3RlZCBgc2JiLWV4cGFuc2lvbi1wYW5lbGAuXG4gICAqIEBkZWZhdWx0ICdsJyAvICdzJyAobGVhbilcbiAgICovXG4gIEBwcm9wZXJ0eSh7IHJlZmxlY3Q6IHRydWUgfSlcbiAgcHVibGljIGFjY2Vzc29yIHNpemU6ICdzJyB8ICdsJyA9IGlzTGVhbigpID8gJ3MnIDogJ2wnO1xuXG4gIC8qKlxuICAgKiBUaGUgaGVhZGluZyBsZXZlbCBmb3IgdGhlIHNiYi1leHBhbnNpb24tcGFuZWwtaGVhZGVycyB3aXRoaW4gdGhlIGNvbXBvbmVudC5cbiAgICogQGNvbnRyb2xzIFNiYkV4cGFuc2lvblBhbmVsRWxlbWVudC50aXRsZUxldmVsXG4gICAqL1xuICBAaGFuZGxlRGlzdGluY3RDaGFuZ2UoKGU6IFNiYkFjY29yZGlvbkVsZW1lbnQpID0+IGUuX3NldFRpdGxlTGV2ZWxPbkNoaWxkcmVuKCkpXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ3RpdGxlLWxldmVsJyB9KVxuICBwdWJsaWMgYWNjZXNzb3IgdGl0bGVMZXZlbDogU2JiVGl0bGVMZXZlbCB8IG51bGwgPSBudWxsO1xuXG4gIC8qKiBXaGV0aGVyIG1vcmUgdGhhbiBvbmUgc2JiLWV4cGFuc2lvbi1wYW5lbCBjYW4gYmUgb3BlbiBhdCB0aGUgc2FtZSB0aW1lLiAqL1xuICBAZm9yY2VUeXBlKClcbiAgQGhhbmRsZURpc3RpbmN0Q2hhbmdlKFxuICAgIChlOiBTYmJBY2NvcmRpb25FbGVtZW50LCBuZXdWYWx1ZTogYm9vbGVhbiwgb2xkVmFsdWU6IGJvb2xlYW4gfCB1bmRlZmluZWQpID0+XG4gICAgICBlLl9yZXNldEV4cGFuc2lvblBhbmVscyhuZXdWYWx1ZSwgISFvbGRWYWx1ZSksXG4gIClcbiAgQHByb3BlcnR5KHsgdHlwZTogQm9vbGVhbiB9KVxuICBwdWJsaWMgYWNjZXNzb3IgbXVsdGk6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBwdWJsaWMgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/LihcbiAgICAgICdiZWZvcmVvcGVuJyxcbiAgICAgIGFzeW5jIChlOiBFdmVudCkgPT4ge1xuICAgICAgICBpZiAoIShhd2FpdCBpc0V2ZW50UHJldmVudGVkKGUpKSkge1xuICAgICAgICAgIHRoaXMuX2Nsb3NlUGFuZWxzKGUpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAge1xuICAgICAgICAvLyBXZSB1c2UgY2FwdHVyZSBoZXJlLCBiZWNhdXNlICdiZWZvcmVvcGVuJyBkb2VzIG5vdCBidWJibGUuXG4gICAgICAgIGNhcHR1cmU6IHRydWUsXG4gICAgICB9LFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIF9leHBhbnNpb25QYW5lbHMoKTogU2JiRXhwYW5zaW9uUGFuZWxFbGVtZW50W10ge1xuICAgIHJldHVybiBBcnJheS5mcm9tKHRoaXMucXVlcnlTZWxlY3RvckFsbD8uKCdzYmItZXhwYW5zaW9uLXBhbmVsJykgPz8gW10pO1xuICB9XG5cbiAgcHJpdmF0ZSBfY2xvc2VQYW5lbHMoZTogRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoKGUudGFyZ2V0IGFzIEhUTUxFbGVtZW50KT8ubG9jYWxOYW1lICE9PSAnc2JiLWV4cGFuc2lvbi1wYW5lbCcgfHwgdGhpcy5tdWx0aSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuX2V4cGFuc2lvblBhbmVscygpXG4gICAgICAuZmlsdGVyKChwYW5lbCkgPT4gcGFuZWwgIT09IGUudGFyZ2V0KVxuICAgICAgLmZvckVhY2goKHBhbmVsKSA9PiAocGFuZWwuZXhwYW5kZWQgPSBmYWxzZSkpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHdpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXM6IFByb3BlcnR5VmFsdWVzPHRoaXM+KTogdm9pZCB7XG4gICAgc3VwZXIud2lsbFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllcyk7XG5cbiAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdzaXplJykpIHtcbiAgICAgIHRoaXMuX2V4cGFuc2lvblBhbmVscygpLmZvckVhY2goXG4gICAgICAgIChwYW5lbDogU2JiRXhwYW5zaW9uUGFuZWxFbGVtZW50KSA9PiAocGFuZWwuc2l6ZSA9IHRoaXMuc2l6ZSksXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX3Jlc2V0RXhwYW5zaW9uUGFuZWxzKG5ld1ZhbHVlOiBib29sZWFuLCBvbGRWYWx1ZTogYm9vbGVhbik6IHZvaWQge1xuICAgIC8vIElmIGl0J3MgY2hhbmdpbmcgZnJvbSBcIm11bHRpID0gdHJ1ZVwiIHRvIFwibXVsdGkgPSBmYWxzZVwiLCBvcGVuIHRoZSBmaXJzdCBwYW5lbCBhbmQgY2xvc2UgYWxsIHRoZSBvdGhlcnMuXG4gICAgY29uc3QgZXhwYW5zaW9uUGFuZWxzID0gdGhpcy5fZXhwYW5zaW9uUGFuZWxzKCk7XG4gICAgaWYgKGV4cGFuc2lvblBhbmVscy5sZW5ndGggPiAxICYmIG9sZFZhbHVlICYmICFuZXdWYWx1ZSkge1xuICAgICAgZXhwYW5zaW9uUGFuZWxzWzBdLmV4cGFuZGVkID0gdHJ1ZTtcbiAgICAgIGV4cGFuc2lvblBhbmVsc1xuICAgICAgICAuZmlsdGVyKChfLCBpbmRleDogbnVtYmVyKSA9PiBpbmRleCA+IDApXG4gICAgICAgIC5mb3JFYWNoKChwYW5lbCkgPT4gKHBhbmVsLmV4cGFuZGVkID0gZmFsc2UpKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9zZXRUaXRsZUxldmVsT25DaGlsZHJlbigpOiB2b2lkIHtcbiAgICB0aGlzLl9leHBhbnNpb25QYW5lbHMoKS5mb3JFYWNoKFxuICAgICAgKHBhbmVsOiBTYmJFeHBhbnNpb25QYW5lbEVsZW1lbnQpID0+IChwYW5lbC50aXRsZUxldmVsID0gdGhpcy50aXRsZUxldmVsKSxcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBfaGFuZGxlU2xvdGNoYW5nZSgpOiB2b2lkIHtcbiAgICB0aGlzLl9leHBhbnNpb25QYW5lbHMoKS5mb3JFYWNoKFxuICAgICAgKHBhbmVsOiBTYmJFeHBhbnNpb25QYW5lbEVsZW1lbnQsIGluZGV4OiBudW1iZXIsIGFycmF5OiBTYmJFeHBhbnNpb25QYW5lbEVsZW1lbnRbXSkgPT4ge1xuICAgICAgICBwYW5lbC50aXRsZUxldmVsID0gdGhpcy50aXRsZUxldmVsO1xuICAgICAgICBwYW5lbC5zaXplID0gdGhpcy5zaXplO1xuICAgICAgICBjb25zdCBjb250cm9sbGVyID0gybVzdGF0ZUNvbnRyb2xsZXIocGFuZWwpO1xuICAgICAgICBjb250cm9sbGVyLnRvZ2dsZSgnYWNjb3JkaW9uLWZpcnN0JywgaW5kZXggPT09IDApO1xuICAgICAgICBjb250cm9sbGVyLnRvZ2dsZSgnYWNjb3JkaW9uLWxhc3QnLCBpbmRleCA9PT0gYXJyYXkubGVuZ3RoIC0gMSk7XG4gICAgICB9LFxuICAgICk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICByZXR1cm4gaHRtbGA8c2xvdCBAc2xvdGNoYW5nZT0ke3RoaXMuX2hhbmRsZVNsb3RjaGFuZ2V9Pjwvc2xvdD5gO1xuICB9XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgICdzYmItYWNjb3JkaW9uJzogU2JiQWNjb3JkaW9uRWxlbWVudDtcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0lDNEJhLDZCQUFtQjttQkFBUzs7Ozs7Ozs7OztjQUE1Qiw0QkFBNEIsWUFBVTs7O3VCQVFoRCxTQUFTLEVBQUUsU0FBUyxNQUFNLENBQUMsQ0FBQTs2QkFPM0Isc0JBQXNCLE1BQTJCLEVBQUUsMEJBQTBCLENBQUMsRUFDOUUsU0FBUyxFQUFFLFdBQVcsZUFBZSxDQUFDLENBQUE7O0lBSXRDLFdBQVc7SUFDWCxzQkFDRSxHQUF3QixVQUFtQixhQUMxQyxFQUFFLHNCQUFzQixVQUFVLENBQUMsQ0FBQyxTQUFTLENBQ2hEO0lBQ0EsU0FBUyxFQUFFLE1BQU0sU0FBUyxDQUFBO0lBQUM7QUFoQjVCLGdCQUFBLE1BQUEsTUFBQSxrQkFBQTtJQUFBLE1BQUE7SUFBQSxNQUFBO0lBQUEsUUFBQTtJQUFBLFNBQUE7SUFBQSxRQUFBO0tBQUEsTUFBQSxRQUFBLFVBQUE7S0FBQSxNQUFBLFFBQUEsSUFBZ0I7S0FBSSxNQUFBLEtBQUEsVUFBQTtBQUFBLFVBQUosT0FBSTs7S0FBQTtJQUFBLFVBQUE7SUFBQSxFQUFBLG9CQUFBLHdCQUFBO0FBUXBCLGdCQUFBLE1BQUEsTUFBQSx3QkFBQTtJQUFBLE1BQUE7SUFBQSxNQUFBO0lBQUEsUUFBQTtJQUFBLFNBQUE7SUFBQSxRQUFBO0tBQUEsTUFBQSxRQUFBLGdCQUFBO0tBQUEsTUFBQSxRQUFBLElBQWdCO0tBQVUsTUFBQSxLQUFBLFVBQUE7QUFBQSxVQUFWLGFBQVU7O0tBQUE7SUFBQSxVQUFBO0lBQUEsRUFBQSwwQkFBQSw4QkFBQTtBQVMxQixnQkFBQSxNQUFBLE1BQUEsbUJBQUE7SUFBQSxNQUFBO0lBQUEsTUFBQTtJQUFBLFFBQUE7SUFBQSxTQUFBO0lBQUEsUUFBQTtLQUFBLE1BQUEs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
@@ -1 +1 @@
1
- {"version":3,"file":"action-group.component.d.ts","sourceRoot":"","sources":["../../../../src/elements/action-group/action-group.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,cAAc,EACpB,MAAM,KAAK,CAAC;AAGb,OAAO,KAAK,EAAmC,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACxF,OAAO,KAAK,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACpE,OAAO,EAAE,UAAU,EAA2B,MAAM,YAAY,CAAC;AACjE,OAAO,KAAK,EAIV,WAAW,EACZ,MAAM,iBAAiB,CAAC;AAIzB;;;;GAIG;AACH,qBAAa,qBAAsB,SAAQ,UAAU;IACnD,gBAAgC,WAAW,EAAE,MAAM,CAAsB;IACzE,OAAuB,MAAM,EAAE,cAAc,CAAuC;IAEpF;;OAEG;IACH,SACgB,UAAU,EAAE,OAAO,GAAG,QAAQ,GAAG,SAAS,GAAG,KAAK,CAAW;IAE7E;;OAEG;IAEH,SACgB,cAAc,EAAE,iBAAiB,CAAW;IAE5D;;OAEG;IACH,SACgB,WAAW,EAAE,cAAc,CAAgB;IAE3D;;;;OAIG;IACH,SACgB,UAAU,EAAE,aAAa,CAAwB;IAEjE;;;;OAIG;IACH,SACgB,QAAQ,EAAE,WAAW,CAAyB;cAE3C,UAAU,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;IAW5E,OAAO,CAAC,YAAY;IAMpB,OAAO,CAAC,UAAU;cAQC,MAAM,IAAI,cAAc;CAG5C;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,kBAAkB,EAAE,qBAAqB,CAAC;KAC3C;CACF"}
1
+ {"version":3,"file":"action-group.component.d.ts","sourceRoot":"","sources":["../../../../src/elements/action-group/action-group.component.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,cAAc,EAEnB,KAAK,cAAc,EACnB,KAAK,cAAc,EAEpB,MAAM,KAAK,CAAC;AAGb,OAAO,KAAK,EAAmC,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACxF,OAAO,KAAK,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACpE,OAAO,EAA2B,UAAU,EAAE,MAAM,YAAY,CAAC;AACjE,OAAO,KAAK,EAIV,WAAW,EACZ,MAAM,iBAAiB,CAAC;AAIzB;;;;GAIG;AACH,qBAAa,qBAAsB,SAAQ,UAAU;IACnD,gBAAgC,WAAW,EAAE,MAAM,CAAsB;IACzE,OAAuB,MAAM,EAAE,cAAc,CAAuC;IAEpF;;OAEG;IACH,SACgB,UAAU,EAAE,OAAO,GAAG,QAAQ,GAAG,SAAS,GAAG,KAAK,CAAW;IAE7E;;OAEG;IAEH,SACgB,cAAc,EAAE,iBAAiB,CAAW;IAE5D;;OAEG;IACH,SACgB,WAAW,EAAE,cAAc,CAAgB;IAE3D;;;;OAIG;IACH,SACgB,UAAU,EAAE,aAAa,CAAwB;IAEjE;;;;OAIG;IACH,SACgB,QAAQ,EAAE,WAAW,CAAyB;cAE3C,UAAU,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;IAW5E,OAAO,CAAC,YAAY;IAMpB,OAAO,CAAC,UAAU;cAQC,MAAM,IAAI,cAAc;CAG5C;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,kBAAkB,EAAE,qBAAqB,CAAC;KAC3C;CACF"}
@@ -210,4 +210,4 @@ var SbbActionGroupElement = (() => {
210
210
  //#endregion
211
211
  export { SbbActionGroupElement as t };
212
212
 
213
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLWdyb3VwLmNvbXBvbmVudC1DSlQ0UkFyRy5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZWxlbWVudHMvYWN0aW9uLWdyb3VwL2FjdGlvbi1ncm91cC5zY3NzP2lubGluZSIsIi4uLy4uLy4uL3NyYy9lbGVtZW50cy9hY3Rpb24tZ3JvdXAvYWN0aW9uLWdyb3VwLmNvbXBvbmVudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJAdXNlICcuLi9jb3JlL3N0eWxlcycgYXMgc2JiO1xuXG4kYnJlYWtwb2ludHM6ICd6ZXJvJywgJ3NtYWxsJywgJ2xhcmdlJywgJ3VsdHJhJztcbiR2ZXJ0aWNhbC1vcmllbnRhdGlvbnM6IChcbiAgc3RhcnQ6IGZsZXgtc3RhcnQsXG4gIGNlbnRlcjogY2VudGVyLFxuICBzdHJldGNoOiBzdHJldGNoLFxuICBlbmQ6IGZsZXgtZW5kLFxuKTtcbiRob3Jpem9udGFsLW9yaWVudGF0aW9uczogKFxuICBzdGFydDogZmxleC1zdGFydCxcbiAgY2VudGVyOiBjZW50ZXIsXG4gIHN0cmV0Y2g6IHNwYWNlLWJldHdlZW4sXG4gIGVuZDogZmxleC1lbmQsXG4pO1xuXG46aG9zdCB7XG4gIC0tc2JiLWFjdGlvbi1ncm91cC1nYXA6IHZhcigtLXNiYi1zcGFjaW5nLWZpeGVkLTR4KTtcblxuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogdmFyKC0tc2JiLWFjdGlvbi1ncm91cC1vcmllbnRhdGlvbiwgcm93KTtcbiAgYWxpZ24taXRlbXM6IHZhcigtLXNiYi1hY3Rpb24tZ3JvdXAtYWxpZ24taXRlbXMsIGNlbnRlcik7XG4gIGp1c3RpZnktY29udGVudDogdmFyKC0tc2JiLWFjdGlvbi1ncm91cC1qdXN0aWZ5LWNvbnRlbnQsIHN0YXJ0KTtcbiAgZ2FwOiB2YXIoLS1zYmItYWN0aW9uLWdyb3VwLWdhcCk7XG59XG5cbkBlYWNoICRrZXksICR2YWx1ZSBpbiAkaG9yaXpvbnRhbC1vcmllbnRhdGlvbnMge1xuICA6aG9zdChbb3JpZW50YXRpb249J2hvcml6b250YWwnXVthbGlnbi1ncm91cD0nI3ska2V5fSddKSB7XG4gICAgLS1zYmItYWN0aW9uLWdyb3VwLWp1c3RpZnktY29udGVudDogI3skdmFsdWV9O1xuICB9XG59XG5cbjpob3N0KFtvcmllbnRhdGlvbj0ndmVydGljYWwnXSkge1xuICAtLXNiYi1hY3Rpb24tZ3JvdXAtb3JpZW50YXRpb246IGNvbHVtbjtcbiAgLS1zYmItYWN0aW9uLWdyb3VwLWdhcDogdmFyKC0tc2JiLXNwYWNpbmctZml4ZWQtMngpO1xufVxuXG5AZWFjaCAka2V5LCAkdmFsdWUgaW4gJHZlcnRpY2FsLW9yaWVudGF0aW9ucyB7XG4gIDpob3N0KFtvcmllbnRhdGlvbj0ndmVydGljYWwnXVthbGlnbi1ncm91cD0nI3ska2V5fSddKSB7XG4gICAgLS1zYmItYWN0aW9uLWdyb3VwLWFsaWduLWl0ZW1zOiAjeyR2YWx1ZX07XG4gIH1cbn1cblxuQGVhY2ggJGJyZWFrcG9pbnQgaW4gJGJyZWFrcG9pbnRzIHtcbiAgQGluY2x1ZGUgc2JiLm1xKCRmcm9tOiAjeyRicmVha3BvaW50fSkge1xuICAgIEBlYWNoICRrZXksICR2YWx1ZSBpbiAkaG9yaXpvbnRhbC1vcmllbnRhdGlvbnMge1xuICAgICAgLy8gaG9yaXpvbnRhbC1mcm9tIG92ZXJyaWRlcyBvcmllbnRhdGlvbiB2ZXJ0aWNhbFxuICAgICAgOmhvc3QoW29yaWVudGF0aW9uPSd2ZXJ0aWNhbCddW2hvcml6b250YWwtZnJvbT0nI3skYnJlYWtwb2ludH0nXVthbGlnbi1ncm91cD0nI3ska2V5fSddKSB7XG4gICAgICAgIC0tc2JiLWFjdGlvbi1ncm91cC1vcmllbnRhdGlvbjogcm93O1xuICAgICAgICAtLXNiYi1hY3Rpb24tZ3JvdXAtYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgLS1zYmItYWN0aW9uLWdyb3VwLWp1c3RpZnktY29udGVudDogI3skdmFsdWV9O1xuICAgICAgICAtLXNiYi1hY3Rpb24tZ3JvdXAtZ2FwOiB2YXIoLS1zYmItc3BhY2luZy1maXhlZC00eCk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbjo6c2xvdHRlZChbYWxpZ24tc2VsZj0nc3RhcnQnXSkge1xuICBtYXJnaW4taW5saW5lLWVuZDogYXV0bztcbn1cblxuOjpzbG90dGVkKFthbGlnbi1zZWxmPSdjZW50ZXInXSkge1xuICBtYXJnaW4taW5saW5lOiBhdXRvO1xufVxuXG46OnNsb3R0ZWQoW2FsaWduLXNlbGY9J2VuZCddKSB7XG4gIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IGF1dG87XG59XG5cbjo6c2xvdHRlZCg6aXMoc2JiLWJsb2NrLWxpbmssIHNiYi1ibG9jay1saW5rLWJ1dHRvbiwgc2JiLWJsb2NrLWxpbmstc3RhdGljKSkge1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuIiwiaW1wb3J0IHtcbiAgaHRtbCxcbiAgdW5zYWZlQ1NTLFxuICB0eXBlIENTU1Jlc3VsdEdyb3VwLFxuICB0eXBlIFByb3BlcnR5VmFsdWVzLFxuICB0eXBlIFRlbXBsYXRlUmVzdWx0LFxufSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgcHJvcGVydHkgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5cbmltcG9ydCB0eXBlIHsgU2JiQnV0dG9uQ29tbW9uRWxlbWVudE1peGluVHlwZSwgU2JiQnV0dG9uU2l6ZSB9IGZyb20gJy4uL2J1dHRvbi5wdXJlLnRzJztcbmltcG9ydCB0eXBlIHsgU2JiSG9yaXpvbnRhbEZyb20sIFNiYk9yaWVudGF0aW9uIH0gZnJvbSAnLi4vY29yZS50cyc7XG5pbXBvcnQgeyBTYmJFbGVtZW50LCBpc0xlYW4sIGJveFNpemluZ1N0eWxlcyB9IGZyb20gJy4uL2NvcmUudHMnO1xuaW1wb3J0IHR5cGUge1xuICBTYmJCbG9ja0xpbmtCdXR0b25FbGVtZW50LFxuICBTYmJCbG9ja0xpbmtFbGVtZW50LFxuICBTYmJCbG9ja0xpbmtTdGF0aWNFbGVtZW50LFxuICBTYmJMaW5rU2l6ZSxcbn0gZnJvbSAnLi4vbGluay5wdXJlLnRzJztcblxuaW1wb3J0IHN0eWxlIGZyb20gJy4vYWN0aW9uLWdyb3VwLnNjc3M/aW5saW5lJztcblxuLyoqXG4gKiBJdCBjYW4gYmUgdXNlZCBhcyBhIGNvbnRhaW5lciBmb3Igb25lIG9yIG1vcmUgYWN0aW9uIGVsZW1lbnQsIGxpa2UgYHNiYi1idXR0b25gIG9yIGBzYmItYmxvY2stbGlua2AuXG4gKlxuICogQHNsb3QgLSBVc2UgdGhlIHVubmFtZWQgc2xvdCB0byBhZGQgYHNiYi1ibG9jay1saW5rYCBvciBgc2JiLWJ1dHRvbmAgZWxlbWVudHMgdG8gdGhlIGBzYmItYWN0aW9uLWdyb3VwYC5cbiAqL1xuZXhwb3J0IGNsYXNzIFNiYkFjdGlvbkdyb3VwRWxlbWVudCBleHRlbmRzIFNiYkVsZW1lbnQge1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHJlYWRvbmx5IGVsZW1lbnROYW1lOiBzdHJpbmcgPSAnc2JiLWFjdGlvbi1ncm91cCc7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgc3R5bGVzOiBDU1NSZXN1bHRHcm91cCA9IFtib3hTaXppbmdTdHlsZXMsIHVuc2FmZUNTUyhzdHlsZSldO1xuXG4gIC8qKlxuICAgKiBTZXQgdGhlIHNsb3R0ZWQgYDxzYmItYWN0aW9uLWdyb3VwPmAgY2hpbGRyZW4ncyBhbGlnbm1lbnQuXG4gICAqL1xuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdhbGlnbi1ncm91cCcsIHJlZmxlY3Q6IHRydWUgfSlcbiAgcHVibGljIGFjY2Vzc29yIGFsaWduR3JvdXA6ICdzdGFydCcgfCAnY2VudGVyJyB8ICdzdHJldGNoJyB8ICdlbmQnID0gJ3N0YXJ0JztcblxuICAvKipcbiAgICogT3ZlcnJpZGVzIHRoZSBiZWhhdmlvciBvZiBgb3JpZW50YXRpb25gIHByb3BlcnR5LlxuICAgKi9cbiAgLy8gVE9ETzogTmVlZHMgYSBicmVha2luZyBjaGFuZ2UgdG8gd29yayB3aXRoIHRoZSAnbm8tZGVmYXVsdC1yZWZsZWN0JyBiZWhhdmlvclxuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdob3Jpem9udGFsLWZyb20nLCByZWZsZWN0OiB0cnVlIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBob3Jpem9udGFsRnJvbTogU2JiSG9yaXpvbnRhbEZyb20gPSAnbGFyZ2UnO1xuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgdGhlIG9yaWVudGF0aW9uIG9mIHRoZSBjb21wb25lbnRzIGluc2lkZSB0aGUgYDxzYmItYWN0aW9uLWdyb3VwPmAuXG4gICAqL1xuICBAcHJvcGVydHkoeyByZWZsZWN0OiB0cnVlIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBvcmllbnRhdGlvbjogU2JiT3JpZW50YXRpb24gPSAnaG9yaXpvbnRhbCc7XG5cbiAgLyoqXG4gICAqIFNpemUgb2YgdGhlIG5lc3RlZCBzYmItYnV0dG9uIGluc3RhbmNlcy5cbiAgICogVGhpcyB3aWxsIG92ZXJ3cml0ZSB0aGUgc2l6ZSBhdHRyaWJ1dGUgb2YgbmVzdGVkIHNiYi1idXR0b24gaW5zdGFuY2VzLlxuICAgKiBAZGVmYXVsdCAnbCcgLyAncycgKGxlYW4pXG4gICAqL1xuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdidXR0b24tc2l6ZScsIHJlZmxlY3Q6IHRydWUgfSlcbiAgcHVibGljIGFjY2Vzc29yIGJ1dHRvblNpemU6IFNiYkJ1dHRvblNpemUgPSBpc0xlYW4oKSA/ICdzJyA6ICdsJztcblxuICAvKipcbiAgICogU2l6ZSBvZiB0aGUgbmVzdGVkIHNiYi1ibG9jay1saW5rIGluc3RhbmNlcy5cbiAgICogVGhpcyB3aWxsIG92ZXJ3cml0ZSB0aGUgc2l6ZSBhdHRyaWJ1dGUgb2YgbmVzdGVkIHNiYi1ibG9jay1saW5rIGluc3RhbmNlcy5cbiAgICogQGRlZmF1bHQgJ20nIC8gJ3hzJyAobGVhbilcbiAgICovXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ2xpbmstc2l6ZScsIHJlZmxlY3Q6IHRydWUgfSlcbiAgcHVibGljIGFjY2Vzc29yIGxpbmtTaXplOiBTYmJMaW5rU2l6ZSA9IGlzTGVhbigpID8gJ3hzJyA6ICdtJztcblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgd2lsbFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXM8dGhpcz4pOiB2b2lkIHtcbiAgICBzdXBlci53aWxsVXBkYXRlKGNoYW5nZWRQcm9wZXJ0aWVzKTtcblxuICAgIGlmIChjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ2J1dHRvblNpemUnKSkge1xuICAgICAgdGhpcy5fc3luY0J1dHRvbnMoKTtcbiAgICB9XG4gICAgaWYgKGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygnbGlua1NpemUnKSkge1xuICAgICAgdGhpcy5fc3luY0xpbmtzKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfc3luY0J1dHRvbnMoKTogdm9pZCB7XG4gICAgdGhpcy5xdWVyeVNlbGVjdG9yQWxsPy48U2JiQnV0dG9uQ29tbW9uRWxlbWVudE1peGluVHlwZT4oJzpzdGF0ZShzYmItYnV0dG9uKScpLmZvckVhY2goXG4gICAgICAoYikgPT4gKGIuc2l6ZSA9IHRoaXMuYnV0dG9uU2l6ZSksXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgX3N5bmNMaW5rcygpOiB2b2lkIHtcbiAgICB0aGlzLnF1ZXJ5U2VsZWN0b3JBbGw/LjxcbiAgICAgIFNiYkJsb2NrTGlua0VsZW1lbnQgfCBTYmJCbG9ja0xpbmtCdXR0b25FbGVtZW50IHwgU2JiQmxvY2tMaW5rU3RhdGljRWxlbWVudFxuICAgID4oJ3NiYi1ibG9jay1saW5rLCBzYmItYmxvY2stbGluay1idXR0b24sIHNiYi1ibG9jay1saW5rLXN0YXRpYycpLmZvckVhY2goKGxpbmspID0+IHtcbiAgICAgIGxpbmsuc2l6ZSA9IHRoaXMubGlua1NpemU7XG4gICAgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICByZXR1cm4gaHRtbGA8c2xvdD48L3Nsb3Q+YDtcbiAgfVxufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAnc2JiLWFjdGlvbi1ncm91cCc6IFNiYkFjdGlvbkdyb3VwRWxlbWVudDtcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0lDMEJhLCtCQUFxQjttQkFBUzs7Ozs7Ozs7Ozs7Ozs7OztjQUE5Qiw4QkFBOEIsWUFBVTs7OzZCQU9sRCxTQUFTO0lBQUUsV0FBVztJQUFlLFNBQVM7SUFBTSxDQUFDLENBQUE7aUNBT3JELFNBQVM7SUFBRSxXQUFXO0lBQW1CLFNBQVM7SUFBTSxDQUFDLENBQUE7OEJBTXpELFNBQVMsRUFBRSxTQUFTLE1BQU0sQ0FBQyxDQUFBOzZCQVEzQixTQUFTO0lBQUUsV0FBVztJQUFlLFNBQVM7SUFBTSxDQUFDLENBQUE7MkJBUXJELFNBQVM7SUFBRSxXQUFXO0lBQWEsU0FBUztJQUFNLENBQUMsQ0FBQTtBQTVCcEQsZ0JBQUEsTUFBQSxNQUFBLHdCQUFBO0lBQUEsTUFBQTtJQUFBLE1BQUE7SUFBQSxRQUFBO0lBQUEsU0FBQTtJQUFBLFFBQUE7S0FBQSxNQUFBLFFBQUEsZ0JBQUE7S0FBQSxNQUFBLFFBQUEsSUFBZ0I7S0FBVSxNQUFBLEtBQUEsVUFBQTtBQUFBLFVBQVYsYUFBVTs7S0FBQTtJQUFBLFVBQUE7SUFBQSxFQUFBLDBCQUFBLDhCQUFBO0FBTzFCLGdCQUFBLE1BQUEsTUFBQSw0QkFBQTtJQUFBLE1BQUE7SUFBQSxNQUFBO0lBQUEsUUFBQTtJQUFBLFNBQUE7SUFBQSxRQUFBO0tBQUEsTUFBQSxRQUFBLG9CQUFBO0tBQUEsTUFBQSxRQUFBLElBQWdCO0tBQWMsTUFBQSxLQUFBLFVBQUE7QUFBQSxVQUFkLGlCQUFjOztLQUFBO0lBQUEsVUFBQTtJQUFBLEVBQUEsOEJBQUEsa0NBQUE7QUFNOUIsZ0JBQUEsTUFBQSxNQUFBLHlCQUFBO0lBQUEsTUFBQTtJQUFBLE1BQUE7SUFB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
213
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLWdyb3VwLmNvbXBvbmVudC1DSlQ0UkFyRy5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZWxlbWVudHMvYWN0aW9uLWdyb3VwL2FjdGlvbi1ncm91cC5zY3NzP2lubGluZSIsIi4uLy4uLy4uL3NyYy9lbGVtZW50cy9hY3Rpb24tZ3JvdXAvYWN0aW9uLWdyb3VwLmNvbXBvbmVudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJAdXNlICcuLi9jb3JlL3N0eWxlcycgYXMgc2JiO1xuXG4kYnJlYWtwb2ludHM6ICd6ZXJvJywgJ3NtYWxsJywgJ2xhcmdlJywgJ3VsdHJhJztcbiR2ZXJ0aWNhbC1vcmllbnRhdGlvbnM6IChcbiAgc3RhcnQ6IGZsZXgtc3RhcnQsXG4gIGNlbnRlcjogY2VudGVyLFxuICBzdHJldGNoOiBzdHJldGNoLFxuICBlbmQ6IGZsZXgtZW5kLFxuKTtcbiRob3Jpem9udGFsLW9yaWVudGF0aW9uczogKFxuICBzdGFydDogZmxleC1zdGFydCxcbiAgY2VudGVyOiBjZW50ZXIsXG4gIHN0cmV0Y2g6IHNwYWNlLWJldHdlZW4sXG4gIGVuZDogZmxleC1lbmQsXG4pO1xuXG46aG9zdCB7XG4gIC0tc2JiLWFjdGlvbi1ncm91cC1nYXA6IHZhcigtLXNiYi1zcGFjaW5nLWZpeGVkLTR4KTtcblxuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogdmFyKC0tc2JiLWFjdGlvbi1ncm91cC1vcmllbnRhdGlvbiwgcm93KTtcbiAgYWxpZ24taXRlbXM6IHZhcigtLXNiYi1hY3Rpb24tZ3JvdXAtYWxpZ24taXRlbXMsIGNlbnRlcik7XG4gIGp1c3RpZnktY29udGVudDogdmFyKC0tc2JiLWFjdGlvbi1ncm91cC1qdXN0aWZ5LWNvbnRlbnQsIHN0YXJ0KTtcbiAgZ2FwOiB2YXIoLS1zYmItYWN0aW9uLWdyb3VwLWdhcCk7XG59XG5cbkBlYWNoICRrZXksICR2YWx1ZSBpbiAkaG9yaXpvbnRhbC1vcmllbnRhdGlvbnMge1xuICA6aG9zdChbb3JpZW50YXRpb249J2hvcml6b250YWwnXVthbGlnbi1ncm91cD0nI3ska2V5fSddKSB7XG4gICAgLS1zYmItYWN0aW9uLWdyb3VwLWp1c3RpZnktY29udGVudDogI3skdmFsdWV9O1xuICB9XG59XG5cbjpob3N0KFtvcmllbnRhdGlvbj0ndmVydGljYWwnXSkge1xuICAtLXNiYi1hY3Rpb24tZ3JvdXAtb3JpZW50YXRpb246IGNvbHVtbjtcbiAgLS1zYmItYWN0aW9uLWdyb3VwLWdhcDogdmFyKC0tc2JiLXNwYWNpbmctZml4ZWQtMngpO1xufVxuXG5AZWFjaCAka2V5LCAkdmFsdWUgaW4gJHZlcnRpY2FsLW9yaWVudGF0aW9ucyB7XG4gIDpob3N0KFtvcmllbnRhdGlvbj0ndmVydGljYWwnXVthbGlnbi1ncm91cD0nI3ska2V5fSddKSB7XG4gICAgLS1zYmItYWN0aW9uLWdyb3VwLWFsaWduLWl0ZW1zOiAjeyR2YWx1ZX07XG4gIH1cbn1cblxuQGVhY2ggJGJyZWFrcG9pbnQgaW4gJGJyZWFrcG9pbnRzIHtcbiAgQGluY2x1ZGUgc2JiLm1xKCRmcm9tOiAjeyRicmVha3BvaW50fSkge1xuICAgIEBlYWNoICRrZXksICR2YWx1ZSBpbiAkaG9yaXpvbnRhbC1vcmllbnRhdGlvbnMge1xuICAgICAgLy8gaG9yaXpvbnRhbC1mcm9tIG92ZXJyaWRlcyBvcmllbnRhdGlvbiB2ZXJ0aWNhbFxuICAgICAgOmhvc3QoW29yaWVudGF0aW9uPSd2ZXJ0aWNhbCddW2hvcml6b250YWwtZnJvbT0nI3skYnJlYWtwb2ludH0nXVthbGlnbi1ncm91cD0nI3ska2V5fSddKSB7XG4gICAgICAgIC0tc2JiLWFjdGlvbi1ncm91cC1vcmllbnRhdGlvbjogcm93O1xuICAgICAgICAtLXNiYi1hY3Rpb24tZ3JvdXAtYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgLS1zYmItYWN0aW9uLWdyb3VwLWp1c3RpZnktY29udGVudDogI3skdmFsdWV9O1xuICAgICAgICAtLXNiYi1hY3Rpb24tZ3JvdXAtZ2FwOiB2YXIoLS1zYmItc3BhY2luZy1maXhlZC00eCk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbjo6c2xvdHRlZChbYWxpZ24tc2VsZj0nc3RhcnQnXSkge1xuICBtYXJnaW4taW5saW5lLWVuZDogYXV0bztcbn1cblxuOjpzbG90dGVkKFthbGlnbi1zZWxmPSdjZW50ZXInXSkge1xuICBtYXJnaW4taW5saW5lOiBhdXRvO1xufVxuXG46OnNsb3R0ZWQoW2FsaWduLXNlbGY9J2VuZCddKSB7XG4gIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IGF1dG87XG59XG5cbjo6c2xvdHRlZCg6aXMoc2JiLWJsb2NrLWxpbmssIHNiYi1ibG9jay1saW5rLWJ1dHRvbiwgc2JiLWJsb2NrLWxpbmstc3RhdGljKSkge1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuIiwiaW1wb3J0IHtcbiAgdHlwZSBDU1NSZXN1bHRHcm91cCxcbiAgaHRtbCxcbiAgdHlwZSBQcm9wZXJ0eVZhbHVlcyxcbiAgdHlwZSBUZW1wbGF0ZVJlc3VsdCxcbiAgdW5zYWZlQ1NTLFxufSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgcHJvcGVydHkgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5cbmltcG9ydCB0eXBlIHsgU2JiQnV0dG9uQ29tbW9uRWxlbWVudE1peGluVHlwZSwgU2JiQnV0dG9uU2l6ZSB9IGZyb20gJy4uL2J1dHRvbi5wdXJlLnRzJztcbmltcG9ydCB0eXBlIHsgU2JiSG9yaXpvbnRhbEZyb20sIFNiYk9yaWVudGF0aW9uIH0gZnJvbSAnLi4vY29yZS50cyc7XG5pbXBvcnQgeyBib3hTaXppbmdTdHlsZXMsIGlzTGVhbiwgU2JiRWxlbWVudCB9IGZyb20gJy4uL2NvcmUudHMnO1xuaW1wb3J0IHR5cGUge1xuICBTYmJCbG9ja0xpbmtCdXR0b25FbGVtZW50LFxuICBTYmJCbG9ja0xpbmtFbGVtZW50LFxuICBTYmJCbG9ja0xpbmtTdGF0aWNFbGVtZW50LFxuICBTYmJMaW5rU2l6ZSxcbn0gZnJvbSAnLi4vbGluay5wdXJlLnRzJztcblxuaW1wb3J0IHN0eWxlIGZyb20gJy4vYWN0aW9uLWdyb3VwLnNjc3M/aW5saW5lJztcblxuLyoqXG4gKiBJdCBjYW4gYmUgdXNlZCBhcyBhIGNvbnRhaW5lciBmb3Igb25lIG9yIG1vcmUgYWN0aW9uIGVsZW1lbnQsIGxpa2UgYHNiYi1idXR0b25gIG9yIGBzYmItYmxvY2stbGlua2AuXG4gKlxuICogQHNsb3QgLSBVc2UgdGhlIHVubmFtZWQgc2xvdCB0byBhZGQgYHNiYi1ibG9jay1saW5rYCBvciBgc2JiLWJ1dHRvbmAgZWxlbWVudHMgdG8gdGhlIGBzYmItYWN0aW9uLWdyb3VwYC5cbiAqL1xuZXhwb3J0IGNsYXNzIFNiYkFjdGlvbkdyb3VwRWxlbWVudCBleHRlbmRzIFNiYkVsZW1lbnQge1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHJlYWRvbmx5IGVsZW1lbnROYW1lOiBzdHJpbmcgPSAnc2JiLWFjdGlvbi1ncm91cCc7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgc3R5bGVzOiBDU1NSZXN1bHRHcm91cCA9IFtib3hTaXppbmdTdHlsZXMsIHVuc2FmZUNTUyhzdHlsZSldO1xuXG4gIC8qKlxuICAgKiBTZXQgdGhlIHNsb3R0ZWQgYDxzYmItYWN0aW9uLWdyb3VwPmAgY2hpbGRyZW4ncyBhbGlnbm1lbnQuXG4gICAqL1xuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdhbGlnbi1ncm91cCcsIHJlZmxlY3Q6IHRydWUgfSlcbiAgcHVibGljIGFjY2Vzc29yIGFsaWduR3JvdXA6ICdzdGFydCcgfCAnY2VudGVyJyB8ICdzdHJldGNoJyB8ICdlbmQnID0gJ3N0YXJ0JztcblxuICAvKipcbiAgICogT3ZlcnJpZGVzIHRoZSBiZWhhdmlvciBvZiBgb3JpZW50YXRpb25gIHByb3BlcnR5LlxuICAgKi9cbiAgLy8gVE9ETzogTmVlZHMgYSBicmVha2luZyBjaGFuZ2UgdG8gd29yayB3aXRoIHRoZSAnbm8tZGVmYXVsdC1yZWZsZWN0JyBiZWhhdmlvclxuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdob3Jpem9udGFsLWZyb20nLCByZWZsZWN0OiB0cnVlIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBob3Jpem9udGFsRnJvbTogU2JiSG9yaXpvbnRhbEZyb20gPSAnbGFyZ2UnO1xuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgdGhlIG9yaWVudGF0aW9uIG9mIHRoZSBjb21wb25lbnRzIGluc2lkZSB0aGUgYDxzYmItYWN0aW9uLWdyb3VwPmAuXG4gICAqL1xuICBAcHJvcGVydHkoeyByZWZsZWN0OiB0cnVlIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBvcmllbnRhdGlvbjogU2JiT3JpZW50YXRpb24gPSAnaG9yaXpvbnRhbCc7XG5cbiAgLyoqXG4gICAqIFNpemUgb2YgdGhlIG5lc3RlZCBzYmItYnV0dG9uIGluc3RhbmNlcy5cbiAgICogVGhpcyB3aWxsIG92ZXJ3cml0ZSB0aGUgc2l6ZSBhdHRyaWJ1dGUgb2YgbmVzdGVkIHNiYi1idXR0b24gaW5zdGFuY2VzLlxuICAgKiBAZGVmYXVsdCAnbCcgLyAncycgKGxlYW4pXG4gICAqL1xuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdidXR0b24tc2l6ZScsIHJlZmxlY3Q6IHRydWUgfSlcbiAgcHVibGljIGFjY2Vzc29yIGJ1dHRvblNpemU6IFNiYkJ1dHRvblNpemUgPSBpc0xlYW4oKSA/ICdzJyA6ICdsJztcblxuICAvKipcbiAgICogU2l6ZSBvZiB0aGUgbmVzdGVkIHNiYi1ibG9jay1saW5rIGluc3RhbmNlcy5cbiAgICogVGhpcyB3aWxsIG92ZXJ3cml0ZSB0aGUgc2l6ZSBhdHRyaWJ1dGUgb2YgbmVzdGVkIHNiYi1ibG9jay1saW5rIGluc3RhbmNlcy5cbiAgICogQGRlZmF1bHQgJ20nIC8gJ3hzJyAobGVhbilcbiAgICovXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ2xpbmstc2l6ZScsIHJlZmxlY3Q6IHRydWUgfSlcbiAgcHVibGljIGFjY2Vzc29yIGxpbmtTaXplOiBTYmJMaW5rU2l6ZSA9IGlzTGVhbigpID8gJ3hzJyA6ICdtJztcblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgd2lsbFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXM8dGhpcz4pOiB2b2lkIHtcbiAgICBzdXBlci53aWxsVXBkYXRlKGNoYW5nZWRQcm9wZXJ0aWVzKTtcblxuICAgIGlmIChjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ2J1dHRvblNpemUnKSkge1xuICAgICAgdGhpcy5fc3luY0J1dHRvbnMoKTtcbiAgICB9XG4gICAgaWYgKGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygnbGlua1NpemUnKSkge1xuICAgICAgdGhpcy5fc3luY0xpbmtzKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfc3luY0J1dHRvbnMoKTogdm9pZCB7XG4gICAgdGhpcy5xdWVyeVNlbGVjdG9yQWxsPy48U2JiQnV0dG9uQ29tbW9uRWxlbWVudE1peGluVHlwZT4oJzpzdGF0ZShzYmItYnV0dG9uKScpLmZvckVhY2goXG4gICAgICAoYikgPT4gKGIuc2l6ZSA9IHRoaXMuYnV0dG9uU2l6ZSksXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgX3N5bmNMaW5rcygpOiB2b2lkIHtcbiAgICB0aGlzLnF1ZXJ5U2VsZWN0b3JBbGw/LjxcbiAgICAgIFNiYkJsb2NrTGlua0VsZW1lbnQgfCBTYmJCbG9ja0xpbmtCdXR0b25FbGVtZW50IHwgU2JiQmxvY2tMaW5rU3RhdGljRWxlbWVudFxuICAgID4oJ3NiYi1ibG9jay1saW5rLCBzYmItYmxvY2stbGluay1idXR0b24sIHNiYi1ibG9jay1saW5rLXN0YXRpYycpLmZvckVhY2goKGxpbmspID0+IHtcbiAgICAgIGxpbmsuc2l6ZSA9IHRoaXMubGlua1NpemU7XG4gICAgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICByZXR1cm4gaHRtbGA8c2xvdD48L3Nsb3Q+YDtcbiAgfVxufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAnc2JiLWFjdGlvbi1ncm91cCc6IFNiYkFjdGlvbkdyb3VwRWxlbWVudDtcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0lDMEJhLCtCQUFxQjttQkFBUzs7Ozs7Ozs7Ozs7Ozs7OztjQUE5Qiw4QkFBOEIsWUFBVTs7OzZCQU9sRCxTQUFTO0lBQUUsV0FBVztJQUFlLFNBQVM7SUFBTSxDQUFDLENBQUE7aUNBT3JELFNBQVM7SUFBRSxXQUFXO0lBQW1CLFNBQVM7SUFBTSxDQUFDLENBQUE7OEJBTXpELFNBQVMsRUFBRSxTQUFTLE1BQU0sQ0FBQyxDQUFBOzZCQVEzQixTQUFTO0lBQUUsV0FBVztJQUFlLFNBQVM7SUFBTSxDQUFDLENBQUE7MkJBUXJELFNBQVM7SUFBRSxXQUFXO0lBQWEsU0FBUztJQUFNLENBQUMsQ0FBQTtBQTVCcEQsZ0JBQUEsTUFBQSxNQUFBLHdCQUFBO0lBQUEsTUFBQTtJQUFBLE1BQUE7SUFBQSxRQUFBO0lBQUEsU0FBQTtJQUFBLFFBQUE7S0FBQSxNQUFBLFFBQUEsZ0JBQUE7S0FBQSxNQUFBLFFBQUEsSUFBZ0I7S0FBVSxNQUFBLEtBQUEsVUFBQTtBQUFBLFVBQVYsYUFBVTs7S0FBQTtJQUFBLFVBQUE7SUFBQSxFQUFBLDBCQUFBLDhCQUFBO0FBTzFCLGdCQUFBLE1BQUEsTUFBQSw0QkFBQTtJQUFBLE1BQUE7SUFBQSxNQUFBO0lBQUEsUUFBQTtJQUFBLFNBQUE7SUFBQSxRQUFBO0tBQUEsTUFBQSxRQUFBLG9CQUFBO0tBQUEsTUFBQSxRQUFBLElBQWdCO0tBQWMsTUFBQSxLQUFBLFVBQUE7QUFBQSxVQUFkLGlCQUFjOztLQUFBO0lBQUEsVUFBQTtJQUFBLEVBQUEsOEJBQUEsa0NBQUE7QUFNOUIsZ0JBQUEsTUFBQSxNQUFBLHlCQUFBO0lBQUEsTUFBQTtJQUFBLE1BQUE7SUFB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
@@ -1,5 +1,5 @@
1
1
  import { CSSResultGroup, PropertyValues, TemplateResult } from 'lit';
2
- import { SbbOpenCloseBaseElement, SbbElementType } from '../../core.ts';
2
+ import { SbbElementType, SbbOpenCloseBaseElement } from '../../core.ts';
3
3
  declare const SbbAlertElement_base: import('../../core.ts').AbstractConstructor<import('../../icon.pure.ts').SbbIconNameMixinType> & import('../../core.ts').AbstractConstructor<import('../../core.ts').SbbReadonlyMixinType> & typeof SbbOpenCloseBaseElement;
4
4
  /**
5
5
  * It displays messages which require user's attention.
@@ -1 +1 @@
1
- {"version":3,"file":"alert.component.d.ts","sourceRoot":"","sources":["../../../../../src/elements/alert/alert/alert.component.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,cAAc,EAGnB,KAAK,cAAc,EACnB,KAAK,cAAc,EAEpB,MAAM,KAAK,CAAC;AAIb,OAAO,EAAE,uBAAuB,EAAE,KAAK,cAAc,EAAE,MAAM,eAAe,CAAC;;AAiB7E;;;;;;GAMG;AACH,qBAAa,eAAgB,SAAQ,oBAA2D;IAC9F,gBAAgC,WAAW,EAAE,MAAM,CAAe;IAClE,OAAuB,mBAAmB,EAAE,cAAc,EAAE,CAG1D;IACF,OAAuB,MAAM,EAAE,cAAc,CAAuC;IACpF,gBAAgC,MAAM;;;;;MAK3B;IAEX;;;OAGG;IACH,SAA6C,IAAI,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,CAAwB;IAE1F,8BAA8B;IAC9B,SAA6C,SAAS,EAAE,MAAM,GAAG,OAAO,GAAG,KAAK,GAAG,MAAM,CAAS;IAElG,OAAO,CAAC,SAAS,CAAmC;IACpD,OAAO,CAAC,mBAAmB,CAIxB;IAEH,sBAAsB;IACf,IAAI,IAAI,IAAI;IAcnB,uBAAuB;IAChB,KAAK,IAAI,IAAI;cAYD,YAAY,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;cAM3D,UAAU,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;IAQ5E,OAAO,CAAC,wBAAwB;IAIhC,OAAO,CAAC,eAAe;IAQvB,OAAO,CAAC,cAAc;IAKtB,OAAO,CAAC,cAAc;IAMtB,OAAO,CAAC,iBAAiB;IASzB,OAAO,CAAC,UAAU;IAOlB,OAAO,CAAC,eAAe;IASvB,OAAO,CAAC,YAAY;cAID,cAAc,IAAI,MAAM;cAIxB,MAAM,IAAI,cAAc;CAmC5C;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,WAAW,EAAE,eAAe,CAAC;KAC9B;CACF"}
1
+ {"version":3,"file":"alert.component.d.ts","sourceRoot":"","sources":["../../../../../src/elements/alert/alert/alert.component.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,cAAc,EAGnB,KAAK,cAAc,EACnB,KAAK,cAAc,EAEpB,MAAM,KAAK,CAAC;AAIb,OAAO,EAML,KAAK,cAAc,EAEnB,uBAAuB,EAExB,MAAM,eAAe,CAAC;;AAQvB;;;;;;GAMG;AACH,qBAAa,eAAgB,SAAQ,oBAA2D;IAC9F,gBAAgC,WAAW,EAAE,MAAM,CAAe;IAClE,OAAuB,mBAAmB,EAAE,cAAc,EAAE,CAG1D;IACF,OAAuB,MAAM,EAAE,cAAc,CAAuC;IACpF,gBAAgC,MAAM;;;;;MAK3B;IAEX;;;OAGG;IACH,SAA6C,IAAI,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,CAAwB;IAE1F,8BAA8B;IAC9B,SAA6C,SAAS,EAAE,MAAM,GAAG,OAAO,GAAG,KAAK,GAAG,MAAM,CAAS;IAElG,OAAO,CAAC,SAAS,CAAmC;IACpD,OAAO,CAAC,mBAAmB,CAIxB;IAEH,sBAAsB;IACf,IAAI,IAAI,IAAI;IAcnB,uBAAuB;IAChB,KAAK,IAAI,IAAI;cAYD,YAAY,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;cAM3D,UAAU,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;IAQ5E,OAAO,CAAC,wBAAwB;IAIhC,OAAO,CAAC,eAAe;IAQvB,OAAO,CAAC,cAAc;IAKtB,OAAO,CAAC,cAAc;IAMtB,OAAO,CAAC,iBAAiB;IASzB,OAAO,CAAC,UAAU;IAOlB,OAAO,CAAC,eAAe;IASvB,OAAO,CAAC,YAAY;cAID,cAAc,IAAI,MAAM;cAIxB,MAAM,IAAI,cAAc;CAmC5C;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,WAAW,EAAE,eAAe,CAAC;KAC9B;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"alert-group.component.d.ts","sourceRoot":"","sources":["../../../../../src/elements/alert/alert-group/alert-group.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,KAAK,cAAc,EAAE,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAInF,OAAO,EAAE,UAAU,EAAgD,MAAM,eAAe,CAAC;AACzF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAKzD;;;;;GAKG;AACH,qBAAa,oBAAqB,SAAQ,UAAU;IAClD,gBAAgC,WAAW,EAAE,MAAM,CAAqB;IACxE,OAAuB,MAAM,EAAE,cAAc,CAAuC;IACpF,gBAAuB,MAAM;;MAElB;IAEX;;;;;OAKG;IACH,SACyB,IAAI,EAAE,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAY;IAEtE,gFAAgF;IAChF,SAEgB,kBAAkB,EAAE,MAAM,CAAM;IAEhD,wGAAwG;IACxG,SACgB,uBAAuB,EAAE,aAAa,CAAO;IAE7D,kDAAkD;IACzC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAkB;;IAkBtD,OAAO,CAAC,YAAY;IAiBpB,OAAO,CAAC,YAAY;cAcD,MAAM,IAAI,cAAc;CAe5C;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,iBAAiB,EAAE,oBAAoB,CAAC;KACzC;CACF"}
1
+ {"version":3,"file":"alert-group.component.d.ts","sourceRoot":"","sources":["../../../../../src/elements/alert/alert-group/alert-group.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAW,KAAK,cAAc,EAAa,MAAM,KAAK,CAAC;AAInF,OAAO,EAAgD,UAAU,EAAE,MAAM,eAAe,CAAC;AACzF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAKzD;;;;;GAKG;AACH,qBAAa,oBAAqB,SAAQ,UAAU;IAClD,gBAAgC,WAAW,EAAE,MAAM,CAAqB;IACxE,OAAuB,MAAM,EAAE,cAAc,CAAuC;IACpF,gBAAuB,MAAM;;MAElB;IAEX;;;;;OAKG;IACH,SACyB,IAAI,EAAE,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAY;IAEtE,gFAAgF;IAChF,SAEgB,kBAAkB,EAAE,MAAM,CAAM;IAEhD,wGAAwG;IACxG,SACgB,uBAAuB,EAAE,aAAa,CAAO;IAE7D,kDAAkD;IACzC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAkB;;IAkBtD,OAAO,CAAC,YAAY;IAiBpB,OAAO,CAAC,YAAY;cAcD,MAAM,IAAI,cAAc;CAe5C;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,iBAAiB,EAAE,oBAAoB,CAAC;KACzC;CACF"}
@@ -185,4 +185,4 @@ var SbbAlertGroupElement = (() => {
185
185
  //#endregion
186
186
  export { SbbAlertGroupElement as t };
187
187
 
188
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxlcnQtZ3JvdXAuY29tcG9uZW50LURlSTZrdXduLmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50cy9hbGVydC9hbGVydC1ncm91cC9hbGVydC1ncm91cC5zY3NzP2lubGluZSIsIi4uLy4uLy4uL3NyYy9lbGVtZW50cy9hbGVydC9hbGVydC1ncm91cC9hbGVydC1ncm91cC5jb21wb25lbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiQHVzZSAnLi4vLi4vY29yZS9zdHlsZXMnIGFzIHNiYjtcblxuOmhvc3Qge1xuICAtLXNiYi1hbGVydC1ncm91cC1nYXA6IHZhcigtLXNiYi1zcGFjaW5nLWZpeGVkLTN4KTtcbiAgLS1zYmItYWxlcnQtZ3JvdXAtYm9yZGVyLXJhZGl1czogdmFyKC0tc2JiLWJvcmRlci1yYWRpdXMtNHgpO1xuXG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4uc2JiLWFsZXJ0LWdyb3VwIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiB2YXIoLS1zYmItYWxlcnQtZ3JvdXAtZ2FwKTtcbn1cblxuOmhvc3QoOmZvY3VzLXZpc2libGU6bm90KDpzdGF0ZShlbXB0eSkpKSB7XG4gIEBpbmNsdWRlIHNiYi5mb2N1cy1vdXRsaW5lO1xuXG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXNiYi1hbGVydC1ncm91cC1ib3JkZXItcmFkaXVzKTtcbn1cblxuLnNiYi1hbGVydC1ncm91cF9fdGl0bGUge1xuICBAaW5jbHVkZSBzYmIuc2NyZWVuLXJlYWRlci1vbmx5O1xufVxuIiwiaW1wb3J0IHsgbm90aGluZywgdW5zYWZlQ1NTLCB0eXBlIENTU1Jlc3VsdEdyb3VwLCB0eXBlIFRlbXBsYXRlUmVzdWx0IH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IHByb3BlcnR5LCBzdGF0ZSB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcbmltcG9ydCB7IGh0bWwsIHVuc2FmZVN0YXRpYyB9IGZyb20gJ2xpdC9zdGF0aWMtaHRtbC5qcyc7XG5cbmltcG9ydCB7IFNiYkVsZW1lbnQsIGZvcmNlVHlwZSwgaXNFdmVudFByZXZlbnRlZCwgYm94U2l6aW5nU3R5bGVzIH0gZnJvbSAnLi4vLi4vY29yZS50cyc7XG5pbXBvcnQgdHlwZSB7IFNiYlRpdGxlTGV2ZWwgfSBmcm9tICcuLi8uLi90aXRsZS5wdXJlLnRzJztcbmltcG9ydCB0eXBlIHsgU2JiQWxlcnRFbGVtZW50IH0gZnJvbSAnLi4vYWxlcnQvYWxlcnQuY29tcG9uZW50LnRzJztcblxuaW1wb3J0IHN0eWxlIGZyb20gJy4vYWxlcnQtZ3JvdXAuc2Nzcz9pbmxpbmUnO1xuXG4vKipcbiAqIEl0IGNhbiBiZSB1c2VkIGFzIGEgY29udGFpbmVyIGZvciBvbmUgb3IgbW9yZSBgc2JiLWFsZXJ0YCBjb21wb25lbnQuXG4gKlxuICogQHNsb3QgLSBVc2UgdGhlIHVubmFtZWQgc2xvdCB0byBhZGQgYHNiYi1hbGVydGAgZWxlbWVudHMgdG8gdGhlIGBzYmItYWxlcnQtZ3JvdXBgLlxuICogQHNsb3QgYWNjZXNzaWJpbGl0eS10aXRsZSAtIHRpdGxlIGZvciB0aGlzIGBzYmItYWxlcnQtZ3JvdXBgIHdoaWNoIGlzIG9ubHkgdmlzaWJsZSBmb3Igc2NyZWVuIHJlYWRlciB1c2Vycy5cbiAqL1xuZXhwb3J0IGNsYXNzIFNiYkFsZXJ0R3JvdXBFbGVtZW50IGV4dGVuZHMgU2JiRWxlbWVudCB7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgcmVhZG9ubHkgZWxlbWVudE5hbWU6IHN0cmluZyA9ICdzYmItYWxlcnQtZ3JvdXAnO1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHN0eWxlczogQ1NTUmVzdWx0R3JvdXAgPSBbYm94U2l6aW5nU3R5bGVzLCB1bnNhZmVDU1Moc3R5bGUpXTtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBldmVudHMgPSB7XG4gICAgZW1wdHk6ICdlbXB0eScsXG4gIH0gYXMgY29uc3Q7XG5cbiAgLyoqXG4gICAqIFRoZSByb2xlIGF0dHJpYnV0ZSBkZWZpbmVzIGhvdyB0byBhbm5vdW5jZSBhbGVydHMgdG8gdGhlIHVzZXIuXG4gICAqXG4gICAqICdzdGF0dXMnOiBzZXRzIGFyaWEtbGl2ZSB0byBwb2xpdGUgYW5kIGFyaWEtYXRvbWljIHRvIHRydWUuXG4gICAqICdhbGVydCc6IHNldHMgYXJpYS1saXZlIHRvIGFzc2VydGl2ZSBhbmQgYXJpYS1hdG9taWMgdG8gdHJ1ZS5cbiAgICovXG4gIEBwcm9wZXJ0eSh7IHJlZmxlY3Q6IHRydWUgfSlcbiAgcHVibGljIG92ZXJyaWRlIGFjY2Vzc29yIHJvbGU6ICdhbGVydCcgfCAnc3RhdHVzJyB8IHN0cmluZyA9ICdzdGF0dXMnO1xuXG4gIC8qKiBUaXRsZSBmb3IgdGhpcyBhbGVydCBncm91cCB3aGljaCBpcyBvbmx5IHZpc2libGUgZm9yIHNjcmVlbiByZWFkZXIgdXNlcnMuICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdhY2Nlc3NpYmlsaXR5LXRpdGxlJyB9KVxuICBwdWJsaWMgYWNjZXNzb3IgYWNjZXNzaWJpbGl0eVRpdGxlOiBzdHJpbmcgPSAnJztcblxuICAvKiogTGV2ZWwgb2YgdGhlIGFjY2Vzc2liaWxpdHkgdGl0bGUsIHdpbGwgYmUgcmVuZGVyZWQgYXMgaGVhZGluZyB0YWcgKGUuZy4gaDIpLiBEZWZhdWx0cyB0byBsZXZlbCAyLiAqL1xuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdhY2Nlc3NpYmlsaXR5LXRpdGxlLWxldmVsJyB9KVxuICBwdWJsaWMgYWNjZXNzb3IgYWNjZXNzaWJpbGl0eVRpdGxlTGV2ZWw6IFNiYlRpdGxlTGV2ZWwgPSAnMic7XG5cbiAgLyoqIFdoZXRoZXIgdGhlIGdyb3VwIGN1cnJlbnRseSBoYXMgYW55IGFsZXJ0cy4gKi9cbiAgQHN0YXRlKCkgcHJpdmF0ZSBhY2Nlc3NvciBfaGFzQWxlcnRzOiBib29sZWFuID0gZmFsc2U7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyPy4oXG4gICAgICAnY2xvc2UnLFxuICAgICAgYXN5bmMgKGU6IEV2ZW50KSA9PiB7XG4gICAgICAgIGlmICghKGF3YWl0IGlzRXZlbnRQcmV2ZW50ZWQoZSkpKSB7XG4gICAgICAgICAgdGhpcy5fYWxlcnRDbG9zZWQoZSk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIC8vIFdlIHVzZSBjYXB0dXJlIGhlcmUsIGJlY2F1c2UgJ2Nsb3NlJyBkb2VzIG5vdCBidWJibGUuXG4gICAgICAgIGNhcHR1cmU6IHRydWUsXG4gICAgICB9LFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIF9hbGVydENsb3NlZChldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCB0YXJnZXQgPSBldmVudC50YXJnZXQgYXMgU2JiQWxlcnRFbGVtZW50O1xuICAgIGNvbnN0IGhhc0ZvY3VzSW5zaWRlQWxlcnRHcm91cCA9IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgPT09IHRhcmdldDtcblxuICAgIC8vIFJlc3RvcmUgZm9jdXNcbiAgICBpZiAoaGFzRm9jdXNJbnNpZGVBbGVydEdyb3VwKSB7XG4gICAgICAvLyBTZXQgdGFiaW5kZXggdG8gMCB0aGUgbWFrZSBpdCBmb2N1c2FibGUgYW5kIGFmdGVyd2FyZCBmb2N1cyBpdC5cbiAgICAgIC8vIFRoaXMgaXMgZG9uZSB0byBub3QgY29tcGxldGVseSBsb3NlIGZvY3VzIGFmdGVyIHJlbW92YWwgb2YgYW4gYWxlcnQuXG4gICAgICAvLyBPbmNlIHRoZSBzYmItYWxlcnQtZ3JvdXAgd2FzIGJsdXJyZWQsIG1ha2UgdGhlIGFsZXJ0IGdyb3VwIG5vdCBmb2N1c2FibGUgYWdhaW4uXG4gICAgICB0aGlzLnRhYkluZGV4ID0gMDtcbiAgICAgIHRoaXMuZm9jdXMoKTtcbiAgICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcignYmx1cicsICgpID0+IHRoaXMucmVtb3ZlQXR0cmlidXRlKCd0YWJpbmRleCcpLCB7XG4gICAgICAgIG9uY2U6IHRydWUsXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9zbG90Q2hhbmdlZChldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCBoYWRBbGVydHMgPSB0aGlzLl9oYXNBbGVydHM7XG4gICAgdGhpcy5faGFzQWxlcnRzID1cbiAgICAgIChldmVudC50YXJnZXQgYXMgSFRNTFNsb3RFbGVtZW50KVxuICAgICAgICAuYXNzaWduZWRFbGVtZW50cygpXG4gICAgICAgIC5maWx0ZXIoKGUpID0+IGUgaW5zdGFuY2VvZiBFbGVtZW50ICYmIGUubG9jYWxOYW1lID09PSAnc2JiLWFsZXJ0JykubGVuZ3RoID4gMDtcbiAgICBpZiAoIXRoaXMuX2hhc0FsZXJ0cyAmJiBoYWRBbGVydHMpIHtcbiAgICAgIC8qKiBFbWl0cyB3aGVuIGBzYmItYWxlcnQtZ3JvdXBgIGJlY29tZXMgZW1wdHkuICovXG4gICAgICB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCdlbXB0eScsIHsgY29tcG9zZWQ6IHRydWUsIGJ1YmJsZXM6IHRydWUgfSkpO1xuICAgIH1cblxuICAgIHRoaXMudG9nZ2xlU3RhdGUoJ2VtcHR5JywgIXRoaXMuX2hhc0FsZXJ0cyk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICBjb25zdCBUSVRMRV9UQUdfTkFNRSA9IGBoJHt0aGlzLmFjY2Vzc2liaWxpdHlUaXRsZUxldmVsfWA7XG5cbiAgICAvKiBlc2xpbnQtZGlzYWJsZSBsaXQvYmluZGluZy1wb3NpdGlvbnMgKi9cbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxkaXYgY2xhc3M9XCJzYmItYWxlcnQtZ3JvdXBcIj5cbiAgICAgICAgJHt0aGlzLl9oYXNBbGVydHNcbiAgICAgICAgICA/IGh0bWxgPCR7dW5zYWZlU3RhdGljKFRJVExFX1RBR19OQU1FKX0gY2xhc3M9XCJzYmItYWxlcnQtZ3JvdXBfX3RpdGxlXCI+XG4gICAgICAgICAgICAgIDxzbG90IG5hbWU9XCJhY2Nlc3NpYmlsaXR5LXRpdGxlXCI+JHt0aGlzLmFjY2Vzc2liaWxpdHlUaXRsZX08L3Nsb3Q+XG4gICAgICAgICAgICA8LyR7dW5zYWZlU3RhdGljKFRJVExFX1RBR19OQU1FKX0+YFxuICAgICAgICAgIDogbm90aGluZ31cbiAgICAgICAgPHNsb3QgQHNsb3RjaGFuZ2U9JHsoZXZlbnQ6IEV2ZW50KSA9PiB0aGlzLl9zbG90Q2hhbmdlZChldmVudCl9Pjwvc2xvdD5cbiAgICAgIDwvZGl2PlxuICAgIGA7XG4gIH1cbn1cblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgSFRNTEVsZW1lbnRUYWdOYW1lTWFwIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG4gICAgJ3NiYi1hbGVydC1ncm91cCc6IFNiYkFsZXJ0R3JvdXBFbGVtZW50O1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztJQ2dCYSw4QkFBb0I7bUJBQVM7Ozs7Ozs7Ozs7Ozs7Y0FBN0IsNkJBQTZCLFlBQVU7Ozt1QkFhakQsU0FBUyxFQUFFLFNBQVMsTUFBTSxDQUFDLENBQUE7cUNBSTNCLFdBQVcsRUFDWCxTQUFTLEVBQUUsV0FBVyx1QkFBdUIsQ0FBQyxDQUFBOzBDQUk5QyxTQUFTLEVBQUUsV0FBVyw2QkFBNkIsQ0FBQyxDQUFBOzZCQUlwRCxPQUFPLENBQUE7QUFaUixnQkFBQSxNQUFBLE1BQUEsa0JBQUE7SUFBQSxNQUFBO0lBQUEsTUFBQTtJQUFBLFFBQUE7SUFBQSxTQUFBO0lBQUEsUUFBQTtLQUFBLE1BQUEsUUFBQSxVQUFBO0tBQUEsTUFBQSxRQUFBLElBQXlCO0tBQUksTUFBQSxLQUFBLFVBQUE7QUFBQSxVQUFKLE9BQUk7O0tBQUE7SUFBQSxVQUFBO0lBQUEsRUFBQSxvQkFBQSx3QkFBQTtBQUs3QixnQkFBQSxNQUFBLE1BQUEsZ0NBQUE7SUFBQSxNQUFB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
188
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxlcnQtZ3JvdXAuY29tcG9uZW50LURlSTZrdXduLmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50cy9hbGVydC9hbGVydC1ncm91cC9hbGVydC1ncm91cC5zY3NzP2lubGluZSIsIi4uLy4uLy4uL3NyYy9lbGVtZW50cy9hbGVydC9hbGVydC1ncm91cC9hbGVydC1ncm91cC5jb21wb25lbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiQHVzZSAnLi4vLi4vY29yZS9zdHlsZXMnIGFzIHNiYjtcblxuOmhvc3Qge1xuICAtLXNiYi1hbGVydC1ncm91cC1nYXA6IHZhcigtLXNiYi1zcGFjaW5nLWZpeGVkLTN4KTtcbiAgLS1zYmItYWxlcnQtZ3JvdXAtYm9yZGVyLXJhZGl1czogdmFyKC0tc2JiLWJvcmRlci1yYWRpdXMtNHgpO1xuXG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4uc2JiLWFsZXJ0LWdyb3VwIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiB2YXIoLS1zYmItYWxlcnQtZ3JvdXAtZ2FwKTtcbn1cblxuOmhvc3QoOmZvY3VzLXZpc2libGU6bm90KDpzdGF0ZShlbXB0eSkpKSB7XG4gIEBpbmNsdWRlIHNiYi5mb2N1cy1vdXRsaW5lO1xuXG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXNiYi1hbGVydC1ncm91cC1ib3JkZXItcmFkaXVzKTtcbn1cblxuLnNiYi1hbGVydC1ncm91cF9fdGl0bGUge1xuICBAaW5jbHVkZSBzYmIuc2NyZWVuLXJlYWRlci1vbmx5O1xufVxuIiwiaW1wb3J0IHsgdHlwZSBDU1NSZXN1bHRHcm91cCwgbm90aGluZywgdHlwZSBUZW1wbGF0ZVJlc3VsdCwgdW5zYWZlQ1NTIH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IHByb3BlcnR5LCBzdGF0ZSB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcbmltcG9ydCB7IGh0bWwsIHVuc2FmZVN0YXRpYyB9IGZyb20gJ2xpdC9zdGF0aWMtaHRtbC5qcyc7XG5cbmltcG9ydCB7IGJveFNpemluZ1N0eWxlcywgZm9yY2VUeXBlLCBpc0V2ZW50UHJldmVudGVkLCBTYmJFbGVtZW50IH0gZnJvbSAnLi4vLi4vY29yZS50cyc7XG5pbXBvcnQgdHlwZSB7IFNiYlRpdGxlTGV2ZWwgfSBmcm9tICcuLi8uLi90aXRsZS5wdXJlLnRzJztcbmltcG9ydCB0eXBlIHsgU2JiQWxlcnRFbGVtZW50IH0gZnJvbSAnLi4vYWxlcnQvYWxlcnQuY29tcG9uZW50LnRzJztcblxuaW1wb3J0IHN0eWxlIGZyb20gJy4vYWxlcnQtZ3JvdXAuc2Nzcz9pbmxpbmUnO1xuXG4vKipcbiAqIEl0IGNhbiBiZSB1c2VkIGFzIGEgY29udGFpbmVyIGZvciBvbmUgb3IgbW9yZSBgc2JiLWFsZXJ0YCBjb21wb25lbnQuXG4gKlxuICogQHNsb3QgLSBVc2UgdGhlIHVubmFtZWQgc2xvdCB0byBhZGQgYHNiYi1hbGVydGAgZWxlbWVudHMgdG8gdGhlIGBzYmItYWxlcnQtZ3JvdXBgLlxuICogQHNsb3QgYWNjZXNzaWJpbGl0eS10aXRsZSAtIHRpdGxlIGZvciB0aGlzIGBzYmItYWxlcnQtZ3JvdXBgIHdoaWNoIGlzIG9ubHkgdmlzaWJsZSBmb3Igc2NyZWVuIHJlYWRlciB1c2Vycy5cbiAqL1xuZXhwb3J0IGNsYXNzIFNiYkFsZXJ0R3JvdXBFbGVtZW50IGV4dGVuZHMgU2JiRWxlbWVudCB7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgcmVhZG9ubHkgZWxlbWVudE5hbWU6IHN0cmluZyA9ICdzYmItYWxlcnQtZ3JvdXAnO1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHN0eWxlczogQ1NTUmVzdWx0R3JvdXAgPSBbYm94U2l6aW5nU3R5bGVzLCB1bnNhZmVDU1Moc3R5bGUpXTtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBldmVudHMgPSB7XG4gICAgZW1wdHk6ICdlbXB0eScsXG4gIH0gYXMgY29uc3Q7XG5cbiAgLyoqXG4gICAqIFRoZSByb2xlIGF0dHJpYnV0ZSBkZWZpbmVzIGhvdyB0byBhbm5vdW5jZSBhbGVydHMgdG8gdGhlIHVzZXIuXG4gICAqXG4gICAqICdzdGF0dXMnOiBzZXRzIGFyaWEtbGl2ZSB0byBwb2xpdGUgYW5kIGFyaWEtYXRvbWljIHRvIHRydWUuXG4gICAqICdhbGVydCc6IHNldHMgYXJpYS1saXZlIHRvIGFzc2VydGl2ZSBhbmQgYXJpYS1hdG9taWMgdG8gdHJ1ZS5cbiAgICovXG4gIEBwcm9wZXJ0eSh7IHJlZmxlY3Q6IHRydWUgfSlcbiAgcHVibGljIG92ZXJyaWRlIGFjY2Vzc29yIHJvbGU6ICdhbGVydCcgfCAnc3RhdHVzJyB8IHN0cmluZyA9ICdzdGF0dXMnO1xuXG4gIC8qKiBUaXRsZSBmb3IgdGhpcyBhbGVydCBncm91cCB3aGljaCBpcyBvbmx5IHZpc2libGUgZm9yIHNjcmVlbiByZWFkZXIgdXNlcnMuICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdhY2Nlc3NpYmlsaXR5LXRpdGxlJyB9KVxuICBwdWJsaWMgYWNjZXNzb3IgYWNjZXNzaWJpbGl0eVRpdGxlOiBzdHJpbmcgPSAnJztcblxuICAvKiogTGV2ZWwgb2YgdGhlIGFjY2Vzc2liaWxpdHkgdGl0bGUsIHdpbGwgYmUgcmVuZGVyZWQgYXMgaGVhZGluZyB0YWcgKGUuZy4gaDIpLiBEZWZhdWx0cyB0byBsZXZlbCAyLiAqL1xuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdhY2Nlc3NpYmlsaXR5LXRpdGxlLWxldmVsJyB9KVxuICBwdWJsaWMgYWNjZXNzb3IgYWNjZXNzaWJpbGl0eVRpdGxlTGV2ZWw6IFNiYlRpdGxlTGV2ZWwgPSAnMic7XG5cbiAgLyoqIFdoZXRoZXIgdGhlIGdyb3VwIGN1cnJlbnRseSBoYXMgYW55IGFsZXJ0cy4gKi9cbiAgQHN0YXRlKCkgcHJpdmF0ZSBhY2Nlc3NvciBfaGFzQWxlcnRzOiBib29sZWFuID0gZmFsc2U7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyPy4oXG4gICAgICAnY2xvc2UnLFxuICAgICAgYXN5bmMgKGU6IEV2ZW50KSA9PiB7XG4gICAgICAgIGlmICghKGF3YWl0IGlzRXZlbnRQcmV2ZW50ZWQoZSkpKSB7XG4gICAgICAgICAgdGhpcy5fYWxlcnRDbG9zZWQoZSk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIC8vIFdlIHVzZSBjYXB0dXJlIGhlcmUsIGJlY2F1c2UgJ2Nsb3NlJyBkb2VzIG5vdCBidWJibGUuXG4gICAgICAgIGNhcHR1cmU6IHRydWUsXG4gICAgICB9LFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIF9hbGVydENsb3NlZChldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCB0YXJnZXQgPSBldmVudC50YXJnZXQgYXMgU2JiQWxlcnRFbGVtZW50O1xuICAgIGNvbnN0IGhhc0ZvY3VzSW5zaWRlQWxlcnRHcm91cCA9IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgPT09IHRhcmdldDtcblxuICAgIC8vIFJlc3RvcmUgZm9jdXNcbiAgICBpZiAoaGFzRm9jdXNJbnNpZGVBbGVydEdyb3VwKSB7XG4gICAgICAvLyBTZXQgdGFiaW5kZXggdG8gMCB0aGUgbWFrZSBpdCBmb2N1c2FibGUgYW5kIGFmdGVyd2FyZCBmb2N1cyBpdC5cbiAgICAgIC8vIFRoaXMgaXMgZG9uZSB0byBub3QgY29tcGxldGVseSBsb3NlIGZvY3VzIGFmdGVyIHJlbW92YWwgb2YgYW4gYWxlcnQuXG4gICAgICAvLyBPbmNlIHRoZSBzYmItYWxlcnQtZ3JvdXAgd2FzIGJsdXJyZWQsIG1ha2UgdGhlIGFsZXJ0IGdyb3VwIG5vdCBmb2N1c2FibGUgYWdhaW4uXG4gICAgICB0aGlzLnRhYkluZGV4ID0gMDtcbiAgICAgIHRoaXMuZm9jdXMoKTtcbiAgICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcignYmx1cicsICgpID0+IHRoaXMucmVtb3ZlQXR0cmlidXRlKCd0YWJpbmRleCcpLCB7XG4gICAgICAgIG9uY2U6IHRydWUsXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9zbG90Q2hhbmdlZChldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCBoYWRBbGVydHMgPSB0aGlzLl9oYXNBbGVydHM7XG4gICAgdGhpcy5faGFzQWxlcnRzID1cbiAgICAgIChldmVudC50YXJnZXQgYXMgSFRNTFNsb3RFbGVtZW50KVxuICAgICAgICAuYXNzaWduZWRFbGVtZW50cygpXG4gICAgICAgIC5maWx0ZXIoKGUpID0+IGUgaW5zdGFuY2VvZiBFbGVtZW50ICYmIGUubG9jYWxOYW1lID09PSAnc2JiLWFsZXJ0JykubGVuZ3RoID4gMDtcbiAgICBpZiAoIXRoaXMuX2hhc0FsZXJ0cyAmJiBoYWRBbGVydHMpIHtcbiAgICAgIC8qKiBFbWl0cyB3aGVuIGBzYmItYWxlcnQtZ3JvdXBgIGJlY29tZXMgZW1wdHkuICovXG4gICAgICB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCdlbXB0eScsIHsgY29tcG9zZWQ6IHRydWUsIGJ1YmJsZXM6IHRydWUgfSkpO1xuICAgIH1cblxuICAgIHRoaXMudG9nZ2xlU3RhdGUoJ2VtcHR5JywgIXRoaXMuX2hhc0FsZXJ0cyk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICBjb25zdCBUSVRMRV9UQUdfTkFNRSA9IGBoJHt0aGlzLmFjY2Vzc2liaWxpdHlUaXRsZUxldmVsfWA7XG5cbiAgICAvKiBlc2xpbnQtZGlzYWJsZSBsaXQvYmluZGluZy1wb3NpdGlvbnMgKi9cbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxkaXYgY2xhc3M9XCJzYmItYWxlcnQtZ3JvdXBcIj5cbiAgICAgICAgJHt0aGlzLl9oYXNBbGVydHNcbiAgICAgICAgICA/IGh0bWxgPCR7dW5zYWZlU3RhdGljKFRJVExFX1RBR19OQU1FKX0gY2xhc3M9XCJzYmItYWxlcnQtZ3JvdXBfX3RpdGxlXCI+XG4gICAgICAgICAgICAgIDxzbG90IG5hbWU9XCJhY2Nlc3NpYmlsaXR5LXRpdGxlXCI+JHt0aGlzLmFjY2Vzc2liaWxpdHlUaXRsZX08L3Nsb3Q+XG4gICAgICAgICAgICA8LyR7dW5zYWZlU3RhdGljKFRJVExFX1RBR19OQU1FKX0+YFxuICAgICAgICAgIDogbm90aGluZ31cbiAgICAgICAgPHNsb3QgQHNsb3RjaGFuZ2U9JHsoZXZlbnQ6IEV2ZW50KSA9PiB0aGlzLl9zbG90Q2hhbmdlZChldmVudCl9Pjwvc2xvdD5cbiAgICAgIDwvZGl2PlxuICAgIGA7XG4gIH1cbn1cblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgSFRNTEVsZW1lbnRUYWdOYW1lTWFwIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG4gICAgJ3NiYi1hbGVydC1ncm91cCc6IFNiYkFsZXJ0R3JvdXBFbGVtZW50O1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztJQ2dCYSw4QkFBb0I7bUJBQVM7Ozs7Ozs7Ozs7Ozs7Y0FBN0IsNkJBQTZCLFlBQVU7Ozt1QkFhakQsU0FBUyxFQUFFLFNBQVMsTUFBTSxDQUFDLENBQUE7cUNBSTNCLFdBQVcsRUFDWCxTQUFTLEVBQUUsV0FBVyx1QkFBdUIsQ0FBQyxDQUFBOzBDQUk5QyxTQUFTLEVBQUUsV0FBVyw2QkFBNkIsQ0FBQyxDQUFBOzZCQUlwRCxPQUFPLENBQUE7QUFaUixnQkFBQSxNQUFBLE1BQUEsa0JBQUE7SUFBQSxNQUFBO0lBQUEsTUFBQTtJQUFBLFFBQUE7SUFBQSxTQUFBO0lBQUEsUUFBQTtLQUFBLE1BQUEsUUFBQSxVQUFBO0tBQUEsTUFBQSxRQUFBLElBQXlCO0tBQUksTUFBQSxLQUFBLFVBQUE7QUFBQSxVQUFKLE9BQUk7O0tBQUE7SUFBQSxVQUFBO0lBQUEsRUFBQSxvQkFBQSx3QkFBQTtBQUs3QixnQkFBQSxNQUFBLE1BQUEsZ0NBQUE7SUFBQSxNQUFB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
@@ -211,4 +211,4 @@ var SbbAlertElement = (() => {
211
211
  //#endregion
212
212
  export { SbbAlertElement as t };
213
213
 
214
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxlcnQuY29tcG9uZW50LUNuMzZrX0hmLmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50cy9hbGVydC9hbGVydC9hbGVydC5zY3NzP2lubGluZSIsIi4uLy4uLy4uL3NyYy9lbGVtZW50cy9hbGVydC9hbGVydC9hbGVydC5jb21wb25lbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiQHVzZSAnLi4vLi4vY29yZS9zdHlsZXMnIGFzIHNiYjtcblxuLy8gT3Blbi9DbG9zZSBhbmltYXRpb24gdmFyc1xuJG9wZW4tYW5pbS1yb3dzLWZyb206IDBmcjtcbiRvcGVuLWFuaW0tcm93cy10bzogMWZyO1xuJG9wZW4tYW5pbS1vcGFjaXR5LWZyb206IDA7XG4kb3Blbi1hbmltLW9wYWNpdHktdG86IDE7XG5cbjpob3N0IHtcbiAgZGlzcGxheTogYmxvY2s7XG5cbiAgLS1zYmItYWxlcnQtYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2JiLWJhY2tncm91bmQtY29sb3ItMS1pbnZlcnRlZCk7XG4gIC0tc2JiLWFsZXJ0LWJvcmRlci1yYWRpdXM6IHZhcigtLXNiYi1ib3JkZXItcmFkaXVzLTR4KTtcbiAgLS1zYmItYWxlcnQtY29sb3I6IGxpZ2h0LWRhcmsodmFyKC0tc2JiLWNvbG9yLWFsdW1pbml1bSksIHZhcigtLXNiYi1jb2xvci1hbnRocmFjaXRlKSk7XG4gIC0tc2JiLWFsZXJ0LXBhZGRpbmc6IHZhcigtLXNiYi1zcGFjaW5nLXJlc3BvbnNpdmUteHhzKSB2YXIoLS1zYmItc3BhY2luZy1yZXNwb25zaXZlLXhzKTtcbiAgLS1zYmItYWxlcnQtaWNvbi1zaXplOiAje3NiYi5weC10by1yZW0tYnVpbGQoMjApfTtcbiAgLS1zYmItYWxlcnQtY2xvc2UtaWNvbi1tYXJnaW46IHZhcigtLXNiYi1zcGFjaW5nLXJlc3BvbnNpdmUteHhzKTtcbiAgLS1zYmItYWxlcnQtZ2FwOiB2YXIoLS1zYmItc3BhY2luZy1maXhlZC0yeCkgdmFyKC0tc2JiLXNwYWNpbmctcmVzcG9uc2l2ZS14cyk7XG4gIC0tc2JiLWFsZXJ0LWFuaW1hdGlvbi1kdXJhdGlvbjogdmFyKFxuICAgIC0tc2JiLWRpc2FibGUtYW5pbWF0aW9uLWR1cmF0aW9uLFxuICAgIHZhcigtLXNiYi1hbmltYXRpb24tZHVyYXRpb24tNngpXG4gICk7XG4gIC0tc2JiLWFsZXJ0LXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbjtcbiAgLS1zYmItYWxlcnQtdGl0bGUtbWFyZ2luLWJsb2NrOiAwO1xuXG4gIEBpbmNsdWRlIHNiYi5tcSgkZnJvbTogbGFyZ2UpIHtcbiAgICAtLXNiYi1hbGVydC1pY29uLXNpemU6ICN7c2JiLnB4LXRvLXJlbS1idWlsZCgyOCl9O1xuICB9XG5cbiAgQGluY2x1ZGUgc2JiLmlmLWZvcmNlZC1jb2xvcnMge1xuICAgIC8vIFVzZSBvdXRsaW5lIGhlcmUgdG8gbm90IGluZmx1ZW5jZSBjb250ZW50IHBvc2l0aW9uLlxuICAgIC8vIER1ZSB0byBvdmVyZmxvdyBoaWRkZW4gb2YgaW5uZXIgZWxlbWVudHMgaXQncyBwbGFjZWQgb24gaG9zdC5cbiAgICBvdXRsaW5lOiB2YXIoLS1zYmItYm9yZGVyLXdpZHRoLTF4KSBzb2xpZCBDYW52YXNUZXh0O1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXNiYi1hbGVydC1ib3JkZXItcmFkaXVzKTtcbiAgfVxufVxuXG4vLyBCeSBkZWZhdWx0LCB0aGUgb3BlbiBhbmltYXRpb24gaXMgZGlzYWJsZWRcbjpob3N0KDpzdGF0ZShzdGF0ZS1vcGVuaW5nKTpub3QoW2FuaW1hdGlvbj0nb3BlbiddLCBbYW5pbWF0aW9uPSdhbGwnXSkpIHtcbiAgQGluY2x1ZGUgc2JiLmRpc2FibGUtYW5pbWF0aW9uO1xufVxuXG46aG9zdCg6c3RhdGUoc3RhdGUtY2xvc2luZyk6bm90KFthbmltYXRpb249J2Nsb3NlJ10sIFthbmltYXRpb249J2FsbCddKSkge1xuICBAaW5jbHVkZSBzYmIuZGlzYWJsZS1hbmltYXRpb247XG59XG5cbjpob3N0KFtzaXplPSdzJ10pIHtcbiAgLS1zYmItYWxlcnQtZ2FwOiB2YXIoLS1zYmItc3BhY2luZy1maXhlZC0xeCkgdmFyKC0tc2JiLXNwYWNpbmctcmVzcG9uc2l2ZS14eHMpO1xuICAtLXNiYi1hbGVydC1jbG9zZS1pY29uLW1hcmdpbjogdmFyKC0tc2JiLXNwYWNpbmctcmVzcG9uc2l2ZS14eHhzKTtcbn1cblxuOmhvc3QoW3NpemU9J2wnXSkge1xuICAtLXNiYi1hbGVydC1pY29uLXNpemU6IHZhcigtLXNiYi1zaXplLWljb24tdWktc21hbGwpO1xuICAtLXNiYi1hbGVydC10aXRsZS1tYXJnaW4tYmxvY2s6IDAgdmFyKC0tc2JiLXNwYWNpbmctZml4ZWQtMXgpO1xuXG4gIEBpbmNsdWRlIHNiYi5tcSgkZnJvbTogbGFyZ2UpIHtcbiAgICAtLXNiYi1hbGVydC1pY29uLXNpemU6ICN7c2JiLnB4LXRvLXJlbS1idWlsZCgzNCl9O1xuICB9XG59XG5cbjpob3N0KDpub3QoOnN0YXRlKGRhcmspKSkge1xuICAtLXNiYi1mb2N1cy1vdXRsaW5lLWNvbG9yOiB2YXIoLS1zYmItZm9jdXMtb3V0bGluZS1jb2xvci1kYXJrKTtcbn1cblxuLnNiYi1hbGVydF9fdHJhbnNpdGlvbi13cmFwcGVyIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiAjeyRvcGVuLWFuaW0tcm93cy1mcm9tfTtcbiAgb3BhY2l0eTogI3skb3Blbi1hbmltLW9wYWNpdHktZnJvbX07XG5cbiAgOmhvc3QoOmlzKDpzdGF0ZShzdGF0ZS1vcGVuZWQpLCA6c3RhdGUoc3RhdGUtY2xvc2luZykpKSAmIHtcbiAgICBncmlkLXRlbXBsYXRlLXJvd3M6ICN7JG9wZW4tYW5pbS1yb3dzLXRvfTtcbiAgICBvcGFjaXR5OiAjeyRvcGVuLWFuaW0tb3BhY2l0eS10b307XG4gIH1cblxuICA6aG9zdCg6c3RhdGUoc3RhdGUtb3BlbmluZykpICYge1xuICAgIGFuaW1hdGlvbi1uYW1lOiBvcGVuLCBvcGVuLW9wYWNpdHk7XG4gICAgYW5pbWF0aW9uLWZpbGwtbW9kZTogZm9yd2FyZHM7XG4gICAgYW5pbWF0aW9uLWR1cmF0aW9uOiB2YXIoLS1zYmItYWxlcnQtYW5pbWF0aW9uLWR1cmF0aW9uKTtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiB2YXIoLS1zYmItYWxlcnQtdGltaW5nLWZ1bmN0aW9uKTtcbiAgICBhbmltYXRpb24tZGVsYXk6IDBzLCB2YXIoLS1zYmItYWxlcnQtYW5pbWF0aW9uLWR1cmF0aW9uKTtcbiAgfVxuXG4gIDpob3N0KDpzdGF0ZShzdGF0ZS1jbG9zaW5nKSkgJiB7XG4gICAgYW5pbWF0aW9uOiB7XG4gICAgICBuYW1lOiBjbG9zZS1vcGFjaXR5LCBjbG9zZTtcbiAgICAgIGZpbGwtbW9kZTogZm9yd2FyZHM7XG4gICAgICBkdXJhdGlvbjogdmFyKC0tc2JiLWFsZXJ0LWFuaW1hdGlvbi1kdXJhdGlvbik7XG4gICAgICB0aW1pbmctZnVuY3Rpb246IHZhcigtLXNiYi1hbGVydC10aW1pbmctZnVuY3Rpb24pO1xuICAgICAgZGVsYXk6IDBzLCB2YXIoLS1zYmItZGlzYWJsZS1hbmltYXRpb24tZHVyYXRpb24sIHZhcigtLXNiYi1hbmltYXRpb24tZHVyYXRpb24tMngpKTtcbiAgICB9XG4gIH1cbn1cblxuLnNiYi1hbGVydF9fdHJhbnNpdGlvbi1zdWItd3JhcHBlciB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5zYmItYWxlcnQge1xuICBAaW5jbHVkZSBzYmIudGV4dC1zLS1yZWd1bGFyO1xuXG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIGF1dG87XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogdmFyKC0tc2JiLWFsZXJ0LWdhcCk7XG4gIG1pbi13aWR0aDogZml0LWNvbnRlbnQ7XG4gIHBhZGRpbmc6IHZhcigtLXNiYi1hbGVydC1wYWRkaW5nKTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgY29sb3I6IHZhcigtLXNiYi1hbGVydC1jb2xvcik7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNiYi1hbGVydC1iYWNrZ3JvdW5kLWNvbG9yKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tc2JiLWFsZXJ0LWJvcmRlci1yYWRpdXMpO1xuXG4gIEBpbmNsdWRlIHNiYi5tcSgkZnJvbTogc21hbGwpIHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IGF1dG8gMWZyIGF1dG87XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gIH1cbn1cblxuLnNiYi1hbGVydF9faWNvbiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBzdGFydDtcbiAgcGFkZGluZy1ibG9jazogdmFyKC0tc2JiLXNwYWNpbmctZml4ZWQtMXgpO1xuICBtaW4td2lkdGg6IHZhcigtLXNiYi1hbGVydC1pY29uLXNpemUpO1xuXG4gIC0tc2JiLWljb24tc3ZnLXdpZHRoOiB2YXIoLS1zYmItYWxlcnQtaWNvbi1zaXplKTtcbiAgLS1zYmItaWNvbi1zdmctaGVpZ2h0OiB2YXIoLS1zYmItYWxlcnQtaWNvbi1zaXplKTtcbn1cblxuLnNiYi1hbGVydF9fY29udGVudCB7XG4gIC8vIEFzIHRoZSBiYWNrZ3JvdW5kIHR1cm5zIHdoaXRlLCB3ZSBuZWVkIHRvIGVuc3VyZSB0aGF0IGFsbCBjb250ZW50IGlzIGRpc3BsYXllZCBpbiBsaWdodCBtb2RlLlxuICBjb2xvci1zY2hlbWU6IG9ubHkgbGlnaHQ7XG4gIG9yZGVyOiAzO1xuICBncmlkLWNvbHVtbjogMSAvIDM7XG5cbiAgQGluY2x1ZGUgc2JiLm1xKCRmcm9tOiBzbWFsbCkge1xuICAgIG9yZGVyOiBpbml0aWFsO1xuICAgIGdyaWQtY29sdW1uLXN0YXJ0OiBpbml0aWFsO1xuICAgIGdyaWQtY29sdW1uLWVuZDogaW5pdGlhbDtcbiAgfVxufVxuXG4uc2JiLWFsZXJ0X19jb250ZW50LXNsb3Qge1xuICAvLyBSZXNldCBwYXJhZ3JhcGggc3R5bGVzXG4gIGRpc3BsYXk6IGlubGluZTtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xufVxuXG4uc2JiLWFsZXJ0X19jbG9zZS1idXR0b24td3JhcHBlciB7XG4gIC8vIEFzIHRoZSBiYWNrZ3JvdW5kIHR1cm5zIHdoaXRlLCB3ZSBuZWVkIHRvIGVuc3VyZSB0aGF0IHRoZSBidXR0b24gaXMgZGlzcGxheWVkIGluIGxpZ2h0IG1vZGUuXG4gIGNvbG9yLXNjaGVtZTogb25seSBsaWdodDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuXG4uc2JiLWFsZXJ0X19jbG9zZS1idXR0b24ge1xuICBAaW5jbHVkZSBzYmIubXEoJGZyb206IHNtYWxsKSB7XG4gICAgbWFyZ2luLWlubGluZS1zdGFydDogdmFyKC0tc2JiLWFsZXJ0LWNsb3NlLWljb24tbWFyZ2luKTtcbiAgfVxufVxuXG4uc2JiLWFsZXJ0X19jbG9zZS1idXR0b24tZGl2aWRlciB7XG4gIGRpc3BsYXk6IG5vbmU7XG5cbiAgQGluY2x1ZGUgc2JiLm1xKCRmcm9tOiBzbWFsbCkge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGhlaWdodDogY2FsYygxMDAlIC0gKHZhcigtLXNiYi1zcGFjaW5nLWZpeGVkLTF4KSAqIDIpKTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIG9wZW4ge1xuICBmcm9tIHtcbiAgICBncmlkLXRlbXBsYXRlLXJvd3M6ICN7JG9wZW4tYW5pbS1yb3dzLWZyb219O1xuICB9XG5cbiAgdG8ge1xuICAgIGdyaWQtdGVtcGxhdGUtcm93czogI3skb3Blbi1hbmltLXJvd3MtdG99O1xuICB9XG59XG5cbkBrZXlmcmFtZXMgb3Blbi1vcGFjaXR5IHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogI3skb3Blbi1hbmltLW9wYWNpdHktZnJvbX07XG4gIH1cblxuICB0byB7XG4gICAgb3BhY2l0eTogI3skb3Blbi1hbmltLW9wYWNpdHktdG99O1xuICB9XG59XG5cbkBrZXlmcmFtZXMgY2xvc2Uge1xuICBmcm9tIHtcbiAgICBncmlkLXRlbXBsYXRlLXJvd3M6ICN7JG9wZW4tYW5pbS1yb3dzLXRvfTtcbiAgfVxuXG4gIHRvIHtcbiAgICBncmlkLXRlbXBsYXRlLXJvd3M6ICN7JG9wZW4tYW5pbS1yb3dzLWZyb219O1xuICB9XG59XG5cbkBrZXlmcmFtZXMgY2xvc2Utb3BhY2l0eSB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6ICN7JG9wZW4tYW5pbS1vcGFjaXR5LXRvfTtcbiAgfVxuXG4gIHRvIHtcbiAgICBvcGFjaXR5OiAjeyRvcGVuLWFuaW0tb3BhY2l0eS1mcm9tfTtcbiAgfVxufVxuXG46OnNsb3R0ZWQoc2JiLXRpdGxlKSB7XG4gIC8vIE92ZXJ3cml0ZSBzYmItdGl0bGUgZGVmYXVsdCBtYXJnaW5cbiAgbWFyZ2luLWJsb2NrOiB2YXIoLS1zYmItYWxlcnQtdGl0bGUtbWFyZ2luLWJsb2NrKTtcbn1cbiIsImltcG9ydCB7XG4gIHR5cGUgQ1NTUmVzdWx0R3JvdXAsXG4gIGh0bWwsXG4gIG5vdGhpbmcsXG4gIHR5cGUgUHJvcGVydHlWYWx1ZXMsXG4gIHR5cGUgVGVtcGxhdGVSZXN1bHQsXG4gIHVuc2FmZUNTUyxcbn0gZnJvbSAnbGl0JztcbmltcG9ydCB7IHByb3BlcnR5IH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuXG5pbXBvcnQgeyBTYmJUcmFuc3BhcmVudEJ1dHRvbkVsZW1lbnQgfSBmcm9tICcuLi8uLi9idXR0b24ucHVyZS50cyc7XG5pbXBvcnQgeyBTYmJPcGVuQ2xvc2VCYXNlRWxlbWVudCwgdHlwZSBTYmJFbGVtZW50VHlwZSB9IGZyb20gJy4uLy4uL2NvcmUudHMnO1xuaW1wb3J0IHtcbiAgU2JiRGFya01vZGVDb250cm9sbGVyLFxuICBTYmJMYW5ndWFnZUNvbnRyb2xsZXIsXG4gIGlzTGVhbixcbiAgaXNaZXJvQW5pbWF0aW9uRHVyYXRpb24sXG4gIGkxOG5DbG9zZUFsZXJ0LFxuICBTYmJSZWFkb25seU1peGluLFxuICBib3hTaXppbmdTdHlsZXMsXG59IGZyb20gJy4uLy4uL2NvcmUudHMnO1xuaW1wb3J0IHsgU2JiRGl2aWRlckVsZW1lbnQgfSBmcm9tICcuLi8uLi9kaXZpZGVyLnB1cmUudHMnO1xuaW1wb3J0IHsgU2JiSWNvbk5hbWVNaXhpbiB9IGZyb20gJy4uLy4uL2ljb24ucHVyZS50cyc7XG5pbXBvcnQgdHlwZSB7IFNiYkxpbmtFbGVtZW50IH0gZnJvbSAnLi4vLi4vbGluay5wdXJlLnRzJztcbmltcG9ydCB0eXBlIHsgU2JiVGl0bGVFbGVtZW50IH0gZnJvbSAnLi4vLi4vdGl0bGUucHVyZS50cyc7XG5cbmltcG9ydCBzdHlsZSBmcm9tICcuL2FsZXJ0LnNjc3M/aW5saW5lJztcblxuLyoqXG4gKiBJdCBkaXNwbGF5cyBtZXNzYWdlcyB3aGljaCByZXF1aXJlIHVzZXIncyBhdHRlbnRpb24uXG4gKlxuICogQHNsb3QgLSBVc2UgdGhlIHVubmFtZWQgc2xvdCB0byBhZGQgY29udGVudCB0byB0aGUgYHNiYi1hbGVydGAuIEF0IGEgbWluaW11bSBhbiBgc2JiLXRpdGxlYCBlbGVtZW50IGFuZCBhIGRlc2NyaXB0aXZlIHRleHQgc2hvdWxkIGJlIHVzZWQuXG4gKiBAc2xvdCBpY29uIC0gU2hvdWxkIGJlIGEgYHNiYi1pY29uYCB3aGljaCBpcyBkaXNwbGF5ZWQgbmV4dCB0byB0aGUgdGl0bGUuIFN0eWxpbmcgaXMgb3B0aW1pemVkIGZvciBpY29ucyBvZiB0eXBlIEhJTS1DVVMuXG4gKiBAc2xvdCB0aXRsZSAtIFNsb3QgZm9yIHRoZSB0aXRsZS4gRm9yIHRoZSBzdGFuZGFyZCBgc2JiLXRpdGxlYCBlbGVtZW50LCB0aGUgc2xvdCBpcyBhdXRvbWF0aWNhbGx5IGFzc2lnbmVkIHdoZW4gc2xvdHRlZCBpbiB0aGUgdW5uYW1lZCBzbG90LlxuICovXG5leHBvcnQgY2xhc3MgU2JiQWxlcnRFbGVtZW50IGV4dGVuZHMgU2JiSWNvbk5hbWVNaXhpbihTYmJSZWFkb25seU1peGluKFNiYk9wZW5DbG9zZUJhc2VFbGVtZW50KSkge1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHJlYWRvbmx5IGVsZW1lbnROYW1lOiBzdHJpbmcgPSAnc2JiLWFsZXJ0JztcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSBlbGVtZW50RGVwZW5kZW5jaWVzOiBTYmJFbGVtZW50VHlwZVtdID0gW1xuICAgIFNiYlRyYW5zcGFyZW50QnV0dG9uRWxlbWVudCxcbiAgICBTYmJEaXZpZGVyRWxlbWVudCxcbiAgXTtcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSBzdHlsZXM6IENTU1Jlc3VsdEdyb3VwID0gW2JveFNpemluZ1N0eWxlcywgdW5zYWZlQ1NTKHN0eWxlKV07XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgcmVhZG9ubHkgZXZlbnRzID0ge1xuICAgIGJlZm9yZW9wZW46ICdiZWZvcmVvcGVuJyxcbiAgICBvcGVuOiAnb3BlbicsXG4gICAgYmVmb3JlY2xvc2U6ICdiZWZvcmVjbG9zZScsXG4gICAgY2xvc2U6ICdjbG9zZScsXG4gIH0gYXMgY29uc3Q7XG5cbiAgLyoqXG4gICAqIFlvdSBjYW4gY2hvb3NlIGJldHdlZW4gYHNgLCBgbWAgb3IgYGxgIHNpemUuXG4gICAqIEBkZWZhdWx0ICdtJyAvICdzJyAobGVhbilcbiAgICovXG4gIEBwcm9wZXJ0eSh7IHJlZmxlY3Q6IHRydWUgfSkgcHVibGljIGFjY2Vzc29yIHNpemU6ICdzJyB8ICdtJyB8ICdsJyA9IGlzTGVhbigpID8gJ3MnIDogJ20nO1xuXG4gIC8qKiBUaGUgZW5hYmxlZCBhbmltYXRpb25zLiAqL1xuICBAcHJvcGVydHkoeyByZWZsZWN0OiB0cnVlIH0pIHB1YmxpYyBhY2Nlc3NvciBhbmltYXRpb246ICdvcGVuJyB8ICdjbG9zZScgfCAnYWxsJyB8ICdub25lJyA9ICdhbGwnO1xuXG4gIHByaXZhdGUgX2xhbmd1YWdlID0gbmV3IFNiYkxhbmd1YWdlQ29udHJvbGxlcih0aGlzKTtcbiAgcHJpdmF0ZSBfZGFya01vZGVDb250cm9sbGVyID0gbmV3IFNiYkRhcmtNb2RlQ29udHJvbGxlcih0aGlzLCAoKSA9PiB7XG4gICAgdGhpcy5fc3luY0xpbmtzKCk7XG4gICAgdGhpcy5fY29uZmlndXJlVGl0bGUoKTtcbiAgICB0aGlzLnJlcXVlc3RVcGRhdGUoKTtcbiAgfSk7XG5cbiAgLyoqIE9wZW4gdGhlIGFsZXJ0LiAqL1xuICBwdWJsaWMgb3BlbigpOiB2b2lkIHtcbiAgICB0aGlzLnN0YXRlID0gJ29wZW5pbmcnO1xuXG4gICAgaWYgKCF0aGlzLmRpc3BhdGNoQmVmb3JlT3BlbkV2ZW50KCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBJZiB0aGUgYW5pbWF0aW9uIGR1cmF0aW9uIGlzIHplcm8sIHRoZSBhbmltYXRpb25lbmQgZXZlbnQgaXMgbm90IGFsd2F5cyBmaXJlZCByZWxpYWJseS5cbiAgICAvLyBJbiB0aGlzIGNhc2Ugd2UgZGlyZWN0bHkgc2V0IHRoZSBgb3BlbmVkYCBzdGF0ZS5cbiAgICBpZiAodGhpcy5faXNaZXJvQW5pbWF0aW9uRHVyYXRpb24oKSkge1xuICAgICAgdGhpcy5faGFuZGxlT3BlbmluZygpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBDbG9zZSB0aGUgYWxlcnQuICovXG4gIHB1YmxpYyBjbG9zZSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zdGF0ZSA9PT0gJ29wZW5lZCcgJiYgdGhpcy5kaXNwYXRjaEJlZm9yZUNsb3NlRXZlbnQoKSkge1xuICAgICAgdGhpcy5zdGF0ZSA9ICdjbG9zaW5nJztcblxuICAgICAgLy8gSWYgdGhlIGFuaW1hdGlvbiBkdXJhdGlvbiBpcyB6ZXJvLCB0aGUgYW5pbWF0aW9uZW5kIGV2ZW50IGlzIG5vdCBhbHdheXMgZmlyZWQgcmVsaWFibHkuXG4gICAgICAvLyBJbiB0aGlzIGNhc2Ugd2UgZGlyZWN0bHkgc2V0IHRoZSBgY2xvc2VkYCBzdGF0ZS5cbiAgICAgIGlmICh0aGlzLl9pc1plcm9BbmltYXRpb25EdXJhdGlvbigpKSB7XG4gICAgICAgIHRoaXMuX2hhbmRsZUNsb3NpbmcoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgZmlyc3RVcGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzOiBQcm9wZXJ0eVZhbHVlczx0aGlzPik6IHZvaWQge1xuICAgIHN1cGVyLmZpcnN0VXBkYXRlZChjaGFuZ2VkUHJvcGVydGllcyk7XG5cbiAgICB0aGlzLm9wZW4oKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSB3aWxsVXBkYXRlKGNoYW5nZWRQcm9wZXJ0aWVzOiBQcm9wZXJ0eVZhbHVlczx0aGlzPik6IHZvaWQge1xuICAgIHN1cGVyLndpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXMpO1xuXG4gICAgaWYgKGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygnc2l6ZScpKSB7XG4gICAgICB0aGlzLl9jb25maWd1cmVUaXRsZSgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2lzWmVyb0FuaW1hdGlvbkR1cmF0aW9uKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBpc1plcm9BbmltYXRpb25EdXJhdGlvbih0aGlzLCAnLS1zYmItYWxlcnQtYW5pbWF0aW9uLWR1cmF0aW9uJyk7XG4gIH1cblxuICBwcml2YXRlIF9vbkFuaW1hdGlvbkVuZChldmVudDogQW5pbWF0aW9uRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zdGF0ZSA9PT0gJ29wZW5pbmcnICYmIGV2ZW50LmFuaW1hdGlvbk5hbWUgPT09ICdvcGVuLW9wYWNpdHknKSB7XG4gICAgICB0aGlzLl9oYW5kbGVPcGVuaW5nKCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLnN0YXRlID09PSAnY2xvc2luZycgJiYgZXZlbnQuYW5pbWF0aW9uTmFtZSA9PT0gJ2Nsb3NlJykge1xuICAgICAgdGhpcy5faGFuZGxlQ2xvc2luZygpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2hhbmRsZU9wZW5pbmcoKTogdm9pZCB7XG4gICAgdGhpcy5zdGF0ZSA9ICdvcGVuZWQnO1xuICAgIHRoaXMuZGlzcGF0Y2hPcGVuRXZlbnQoKTtcbiAgfVxuXG4gIHByaXZhdGUgX2hhbmRsZUNsb3NpbmcoKTogdm9pZCB7XG4gICAgdGhpcy5zdGF0ZSA9ICdjbG9zZWQnO1xuICAgIHRoaXMuZGlzcGF0Y2hDbG9zZUV2ZW50KCk7XG4gICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLnJlbW92ZSgpKTtcbiAgfVxuXG4gIHByaXZhdGUgX2hhbmRsZVNsb3RjaGFuZ2UoKTogdm9pZCB7XG4gICAgdGhpcy5fc3luY0xpbmtzKCk7XG5cbiAgICBjb25zdCB0aXRsZSA9IEFycmF5LmZyb20odGhpcy5jaGlsZHJlbikuZmluZCgoZWwpID0+IGVsLmxvY2FsTmFtZSA9PT0gJ3NiYi10aXRsZScpO1xuICAgIGlmICh0aXRsZSkge1xuICAgICAgdGl0bGUuc2xvdCA9ICd0aXRsZSc7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfc3luY0xpbmtzKCk6IHZvaWQge1xuICAgIEFycmF5LmZyb20odGhpcy5xdWVyeVNlbGVjdG9yQWxsPy48U2JiTGlua0VsZW1lbnQ+KCdzYmItbGluaycpID8/IFtdKS5mb3JFYWNoKChsaW5rKSA9PiB7XG4gICAgICBjdXN0b21FbGVtZW50cy51cGdyYWRlKGxpbmspO1xuICAgICAgbGluay5uZWdhdGl2ZSA9IHRoaXMuX2lzTGlnaHRNb2RlKCk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF9jb25maWd1cmVUaXRsZSgpOiB2b2lkIHtcbiAgICBjb25zdCB0aXRsZSA9IHRoaXMucXVlcnlTZWxlY3Rvcj8uPFNiYlRpdGxlRWxlbWVudD4oJ3NiYi10aXRsZScpO1xuICAgIGlmICh0aXRsZSkge1xuICAgICAgY3VzdG9tRWxlbWVudHMudXBncmFkZSh0aXRsZSk7XG4gICAgICB0aXRsZS5uZWdhdGl2ZSA9IHRoaXMuX2lzTGlnaHRNb2RlKCk7XG4gICAgICB0aXRsZS52aXN1YWxMZXZlbCA9IHRoaXMuc2l6ZSA9PT0gJ2wnID8gJzMnIDogJzUnO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2lzTGlnaHRNb2RlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhdGhpcy5fZGFya01vZGVDb250cm9sbGVyLm1hdGNoZXMoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXJJY29uTmFtZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiBzdXBlci5yZW5kZXJJY29uTmFtZSgpIHx8ICdpbmZvJztcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXIoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHJldHVybiBodG1sYFxuICAgICAgPGRpdiBjbGFzcz1cInNiYi1hbGVydF9fdHJhbnNpdGlvbi13cmFwcGVyXCIgQGFuaW1hdGlvbmVuZD0ke3RoaXMuX29uQW5pbWF0aW9uRW5kfT5cbiAgICAgICAgPCEtLSBzdWIgd3JhcHBlciBuZWVkZWQgdG8gcHJvcGVybHkgc3VwcG9ydCBmYWRlIGluIGFuaW1hdGlvbiAtLT5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNiYi1hbGVydF9fdHJhbnNpdGlvbi1zdWItd3JhcHBlclwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzYmItYWxlcnRcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2JiLWFsZXJ0X19pY29uXCI+ICR7dGhpcy5yZW5kZXJJY29uU2xvdCgpfSA8L3NwYW4+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNiYi1hbGVydF9fY29udGVudFwiPlxuICAgICAgICAgICAgICA8c2xvdCBuYW1lPVwidGl0bGVcIiBAc2xvdGNoYW5nZT0ke3RoaXMuX2NvbmZpZ3VyZVRpdGxlfT48L3Nsb3Q+XG4gICAgICAgICAgICAgIDxwIGNsYXNzPVwic2JiLWFsZXJ0X19jb250ZW50LXNsb3RcIj5cbiAgICAgICAgICAgICAgICA8c2xvdCBAc2xvdGNoYW5nZT0ke3RoaXMuX2hhbmRsZVNsb3RjaGFuZ2V9Pjwvc2xvdD5cbiAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgJHshdGhpcy5yZWFkT25seVxuICAgICAgICAgICAgICA/IGh0bWxgPHNwYW4gY2xhc3M9XCJzYmItYWxlcnRfX2Nsb3NlLWJ1dHRvbi13cmFwcGVyXCI+XG4gICAgICAgICAgICAgICAgICA8c2JiLWRpdmlkZXJcbiAgICAgICAgICAgICAgICAgICAgb3JpZW50YXRpb249XCJ2ZXJ0aWNhbFwiXG4gICAgICAgICAgICAgICAgICAgID9uZWdhdGl2ZT0ke3RoaXMuX2lzTGlnaHRNb2RlKCl9XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic2JiLWFsZXJ0X19jbG9zZS1idXR0b24tZGl2aWRlclwiXG4gICAgICAgICAgICAgICAgICA+PC9zYmItZGl2aWRlcj5cbiAgICAgICAgICAgICAgICAgIDxzYmItdHJhbnNwYXJlbnQtYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgID9uZWdhdGl2ZT0ke3RoaXMuX2lzTGlnaHRNb2RlKCl9XG4gICAgICAgICAgICAgICAgICAgIHNpemU9JHt0aGlzLnNpemUgPT09ICdsJyA/ICdtJyA6IHRoaXMuc2l6ZX1cbiAgICAgICAgICAgICAgICAgICAgaWNvbi1uYW1lPVwiY3Jvc3Mtc21hbGxcIlxuICAgICAgICAgICAgICAgICAgICBAY2xpY2s9JHsoKSA9PiB0aGlzLmNsb3NlKCl9XG4gICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9JHtpMThuQ2xvc2VBbGVydFt0aGlzLl9sYW5ndWFnZS5jdXJyZW50XX1cbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzYmItYWxlcnRfX2Nsb3NlLWJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICA+PC9zYmItdHJhbnNwYXJlbnQtYnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvc3Bhbj5gXG4gICAgICAgICAgICAgIDogbm90aGluZ31cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICBgO1xuICB9XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgICdzYmItYWxlcnQnOiBTYmJBbGVydEVsZW1lbnQ7XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7O0lDbUNhLHlCQUFlO21CQUFTLGlCQUFpQixpQkFBaUIsd0JBQXdCLENBQUM7Ozs7Ozs7Y0FBbkYsd0JBQXdCLFlBQTJEOzs7QUFrQmpELFNBQUEsd0JBQUEsa0JBQUEsTUFBQSxvQkFBd0IsUUFBUSxHQUFHLE1BQU0sSUFBRztBQUc1QyxTQUFBLDhCQUFBLGtCQUFBLE1BQUEsd0JBQUEsRUFBQSxrQkFBQSxNQUFBLHlCQUErQyxNQUFLO0FBRXpGLFFBQUEsYUFBUyxrQkFBQSxNQUFBLDZCQUFBLEVBQUcsSUFBSSxzQkFBc0IsS0FBSztBQUMzQyxRQUFBLHNCQUFzQixJQUFJLHNCQUFzQixZQUFXO0FBQ2pFLFNBQUssWUFBWTtBQUNqQixTQUFLLGlCQUFpQjtBQUN0QixTQUFLLGVBQWU7S0FDcEI7Ozs7dUJBVkQsU0FBUyxFQUFFLFNBQVMsTUFBTSxDQUFDLENBQUE7NEJBRzNCLFNBQVMsRUFBRSxTQUFTLE1BQU0sQ0FBQyxDQUFBO0FBSEMsZ0JBQUEsTUFBQSxNQUFBLGtCQUFBO0lBQUEsTUFBQTtJQUFBLE1BQUE7SUFBQSxRQUFBO0lBQUEsU0FBQTtJQUFBLFFBQUE7S0FBQSxNQUFBLFFBQUEsVUFBQTtLQUFBLE1BQUEsUUFBQSxJQUFnQjtLQUFJLE1BQUEsS0FBQSxVQUFBO0FBQUEsVUFBSixPQUFJOztLQUFBO0lBQUEsVUFBQTtJQUFBLEVBQUEsb0JBQUEsd0JBQUE7QUFHcEIsZ0JBQUEsTUFBQSxNQUFBLHVCQUFBO0lBQUEsTUFBQTtJQUFBLE1BQUE7SUFBQSxRQUFBO0lBQUEsU0FBQTtJQUFBLFFBQUE7S0FBQSxNQUFBLFFBQUEsZUFBQTtLQUFBLE1BQUEsUUFBQSxJQUFnQjtLQUFTLE1BQUEsS0FBQSxVQUFBO0FBQUEs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
214
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxlcnQuY29tcG9uZW50LUNuMzZrX0hmLmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50cy9hbGVydC9hbGVydC9hbGVydC5zY3NzP2lubGluZSIsIi4uLy4uLy4uL3NyYy9lbGVtZW50cy9hbGVydC9hbGVydC9hbGVydC5jb21wb25lbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiQHVzZSAnLi4vLi4vY29yZS9zdHlsZXMnIGFzIHNiYjtcblxuLy8gT3Blbi9DbG9zZSBhbmltYXRpb24gdmFyc1xuJG9wZW4tYW5pbS1yb3dzLWZyb206IDBmcjtcbiRvcGVuLWFuaW0tcm93cy10bzogMWZyO1xuJG9wZW4tYW5pbS1vcGFjaXR5LWZyb206IDA7XG4kb3Blbi1hbmltLW9wYWNpdHktdG86IDE7XG5cbjpob3N0IHtcbiAgZGlzcGxheTogYmxvY2s7XG5cbiAgLS1zYmItYWxlcnQtYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2JiLWJhY2tncm91bmQtY29sb3ItMS1pbnZlcnRlZCk7XG4gIC0tc2JiLWFsZXJ0LWJvcmRlci1yYWRpdXM6IHZhcigtLXNiYi1ib3JkZXItcmFkaXVzLTR4KTtcbiAgLS1zYmItYWxlcnQtY29sb3I6IGxpZ2h0LWRhcmsodmFyKC0tc2JiLWNvbG9yLWFsdW1pbml1bSksIHZhcigtLXNiYi1jb2xvci1hbnRocmFjaXRlKSk7XG4gIC0tc2JiLWFsZXJ0LXBhZGRpbmc6IHZhcigtLXNiYi1zcGFjaW5nLXJlc3BvbnNpdmUteHhzKSB2YXIoLS1zYmItc3BhY2luZy1yZXNwb25zaXZlLXhzKTtcbiAgLS1zYmItYWxlcnQtaWNvbi1zaXplOiAje3NiYi5weC10by1yZW0tYnVpbGQoMjApfTtcbiAgLS1zYmItYWxlcnQtY2xvc2UtaWNvbi1tYXJnaW46IHZhcigtLXNiYi1zcGFjaW5nLXJlc3BvbnNpdmUteHhzKTtcbiAgLS1zYmItYWxlcnQtZ2FwOiB2YXIoLS1zYmItc3BhY2luZy1maXhlZC0yeCkgdmFyKC0tc2JiLXNwYWNpbmctcmVzcG9uc2l2ZS14cyk7XG4gIC0tc2JiLWFsZXJ0LWFuaW1hdGlvbi1kdXJhdGlvbjogdmFyKFxuICAgIC0tc2JiLWRpc2FibGUtYW5pbWF0aW9uLWR1cmF0aW9uLFxuICAgIHZhcigtLXNiYi1hbmltYXRpb24tZHVyYXRpb24tNngpXG4gICk7XG4gIC0tc2JiLWFsZXJ0LXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbjtcbiAgLS1zYmItYWxlcnQtdGl0bGUtbWFyZ2luLWJsb2NrOiAwO1xuXG4gIEBpbmNsdWRlIHNiYi5tcSgkZnJvbTogbGFyZ2UpIHtcbiAgICAtLXNiYi1hbGVydC1pY29uLXNpemU6ICN7c2JiLnB4LXRvLXJlbS1idWlsZCgyOCl9O1xuICB9XG5cbiAgQGluY2x1ZGUgc2JiLmlmLWZvcmNlZC1jb2xvcnMge1xuICAgIC8vIFVzZSBvdXRsaW5lIGhlcmUgdG8gbm90IGluZmx1ZW5jZSBjb250ZW50IHBvc2l0aW9uLlxuICAgIC8vIER1ZSB0byBvdmVyZmxvdyBoaWRkZW4gb2YgaW5uZXIgZWxlbWVudHMgaXQncyBwbGFjZWQgb24gaG9zdC5cbiAgICBvdXRsaW5lOiB2YXIoLS1zYmItYm9yZGVyLXdpZHRoLTF4KSBzb2xpZCBDYW52YXNUZXh0O1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXNiYi1hbGVydC1ib3JkZXItcmFkaXVzKTtcbiAgfVxufVxuXG4vLyBCeSBkZWZhdWx0LCB0aGUgb3BlbiBhbmltYXRpb24gaXMgZGlzYWJsZWRcbjpob3N0KDpzdGF0ZShzdGF0ZS1vcGVuaW5nKTpub3QoW2FuaW1hdGlvbj0nb3BlbiddLCBbYW5pbWF0aW9uPSdhbGwnXSkpIHtcbiAgQGluY2x1ZGUgc2JiLmRpc2FibGUtYW5pbWF0aW9uO1xufVxuXG46aG9zdCg6c3RhdGUoc3RhdGUtY2xvc2luZyk6bm90KFthbmltYXRpb249J2Nsb3NlJ10sIFthbmltYXRpb249J2FsbCddKSkge1xuICBAaW5jbHVkZSBzYmIuZGlzYWJsZS1hbmltYXRpb247XG59XG5cbjpob3N0KFtzaXplPSdzJ10pIHtcbiAgLS1zYmItYWxlcnQtZ2FwOiB2YXIoLS1zYmItc3BhY2luZy1maXhlZC0xeCkgdmFyKC0tc2JiLXNwYWNpbmctcmVzcG9uc2l2ZS14eHMpO1xuICAtLXNiYi1hbGVydC1jbG9zZS1pY29uLW1hcmdpbjogdmFyKC0tc2JiLXNwYWNpbmctcmVzcG9uc2l2ZS14eHhzKTtcbn1cblxuOmhvc3QoW3NpemU9J2wnXSkge1xuICAtLXNiYi1hbGVydC1pY29uLXNpemU6IHZhcigtLXNiYi1zaXplLWljb24tdWktc21hbGwpO1xuICAtLXNiYi1hbGVydC10aXRsZS1tYXJnaW4tYmxvY2s6IDAgdmFyKC0tc2JiLXNwYWNpbmctZml4ZWQtMXgpO1xuXG4gIEBpbmNsdWRlIHNiYi5tcSgkZnJvbTogbGFyZ2UpIHtcbiAgICAtLXNiYi1hbGVydC1pY29uLXNpemU6ICN7c2JiLnB4LXRvLXJlbS1idWlsZCgzNCl9O1xuICB9XG59XG5cbjpob3N0KDpub3QoOnN0YXRlKGRhcmspKSkge1xuICAtLXNiYi1mb2N1cy1vdXRsaW5lLWNvbG9yOiB2YXIoLS1zYmItZm9jdXMtb3V0bGluZS1jb2xvci1kYXJrKTtcbn1cblxuLnNiYi1hbGVydF9fdHJhbnNpdGlvbi13cmFwcGVyIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiAjeyRvcGVuLWFuaW0tcm93cy1mcm9tfTtcbiAgb3BhY2l0eTogI3skb3Blbi1hbmltLW9wYWNpdHktZnJvbX07XG5cbiAgOmhvc3QoOmlzKDpzdGF0ZShzdGF0ZS1vcGVuZWQpLCA6c3RhdGUoc3RhdGUtY2xvc2luZykpKSAmIHtcbiAgICBncmlkLXRlbXBsYXRlLXJvd3M6ICN7JG9wZW4tYW5pbS1yb3dzLXRvfTtcbiAgICBvcGFjaXR5OiAjeyRvcGVuLWFuaW0tb3BhY2l0eS10b307XG4gIH1cblxuICA6aG9zdCg6c3RhdGUoc3RhdGUtb3BlbmluZykpICYge1xuICAgIGFuaW1hdGlvbi1uYW1lOiBvcGVuLCBvcGVuLW9wYWNpdHk7XG4gICAgYW5pbWF0aW9uLWZpbGwtbW9kZTogZm9yd2FyZHM7XG4gICAgYW5pbWF0aW9uLWR1cmF0aW9uOiB2YXIoLS1zYmItYWxlcnQtYW5pbWF0aW9uLWR1cmF0aW9uKTtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiB2YXIoLS1zYmItYWxlcnQtdGltaW5nLWZ1bmN0aW9uKTtcbiAgICBhbmltYXRpb24tZGVsYXk6IDBzLCB2YXIoLS1zYmItYWxlcnQtYW5pbWF0aW9uLWR1cmF0aW9uKTtcbiAgfVxuXG4gIDpob3N0KDpzdGF0ZShzdGF0ZS1jbG9zaW5nKSkgJiB7XG4gICAgYW5pbWF0aW9uOiB7XG4gICAgICBuYW1lOiBjbG9zZS1vcGFjaXR5LCBjbG9zZTtcbiAgICAgIGZpbGwtbW9kZTogZm9yd2FyZHM7XG4gICAgICBkdXJhdGlvbjogdmFyKC0tc2JiLWFsZXJ0LWFuaW1hdGlvbi1kdXJhdGlvbik7XG4gICAgICB0aW1pbmctZnVuY3Rpb246IHZhcigtLXNiYi1hbGVydC10aW1pbmctZnVuY3Rpb24pO1xuICAgICAgZGVsYXk6IDBzLCB2YXIoLS1zYmItZGlzYWJsZS1hbmltYXRpb24tZHVyYXRpb24sIHZhcigtLXNiYi1hbmltYXRpb24tZHVyYXRpb24tMngpKTtcbiAgICB9XG4gIH1cbn1cblxuLnNiYi1hbGVydF9fdHJhbnNpdGlvbi1zdWItd3JhcHBlciB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5zYmItYWxlcnQge1xuICBAaW5jbHVkZSBzYmIudGV4dC1zLS1yZWd1bGFyO1xuXG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIGF1dG87XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogdmFyKC0tc2JiLWFsZXJ0LWdhcCk7XG4gIG1pbi13aWR0aDogZml0LWNvbnRlbnQ7XG4gIHBhZGRpbmc6IHZhcigtLXNiYi1hbGVydC1wYWRkaW5nKTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgY29sb3I6IHZhcigtLXNiYi1hbGVydC1jb2xvcik7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNiYi1hbGVydC1iYWNrZ3JvdW5kLWNvbG9yKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tc2JiLWFsZXJ0LWJvcmRlci1yYWRpdXMpO1xuXG4gIEBpbmNsdWRlIHNiYi5tcSgkZnJvbTogc21hbGwpIHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IGF1dG8gMWZyIGF1dG87XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gIH1cbn1cblxuLnNiYi1hbGVydF9faWNvbiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBzdGFydDtcbiAgcGFkZGluZy1ibG9jazogdmFyKC0tc2JiLXNwYWNpbmctZml4ZWQtMXgpO1xuICBtaW4td2lkdGg6IHZhcigtLXNiYi1hbGVydC1pY29uLXNpemUpO1xuXG4gIC0tc2JiLWljb24tc3ZnLXdpZHRoOiB2YXIoLS1zYmItYWxlcnQtaWNvbi1zaXplKTtcbiAgLS1zYmItaWNvbi1zdmctaGVpZ2h0OiB2YXIoLS1zYmItYWxlcnQtaWNvbi1zaXplKTtcbn1cblxuLnNiYi1hbGVydF9fY29udGVudCB7XG4gIC8vIEFzIHRoZSBiYWNrZ3JvdW5kIHR1cm5zIHdoaXRlLCB3ZSBuZWVkIHRvIGVuc3VyZSB0aGF0IGFsbCBjb250ZW50IGlzIGRpc3BsYXllZCBpbiBsaWdodCBtb2RlLlxuICBjb2xvci1zY2hlbWU6IG9ubHkgbGlnaHQ7XG4gIG9yZGVyOiAzO1xuICBncmlkLWNvbHVtbjogMSAvIDM7XG5cbiAgQGluY2x1ZGUgc2JiLm1xKCRmcm9tOiBzbWFsbCkge1xuICAgIG9yZGVyOiBpbml0aWFsO1xuICAgIGdyaWQtY29sdW1uLXN0YXJ0OiBpbml0aWFsO1xuICAgIGdyaWQtY29sdW1uLWVuZDogaW5pdGlhbDtcbiAgfVxufVxuXG4uc2JiLWFsZXJ0X19jb250ZW50LXNsb3Qge1xuICAvLyBSZXNldCBwYXJhZ3JhcGggc3R5bGVzXG4gIGRpc3BsYXk6IGlubGluZTtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xufVxuXG4uc2JiLWFsZXJ0X19jbG9zZS1idXR0b24td3JhcHBlciB7XG4gIC8vIEFzIHRoZSBiYWNrZ3JvdW5kIHR1cm5zIHdoaXRlLCB3ZSBuZWVkIHRvIGVuc3VyZSB0aGF0IHRoZSBidXR0b24gaXMgZGlzcGxheWVkIGluIGxpZ2h0IG1vZGUuXG4gIGNvbG9yLXNjaGVtZTogb25seSBsaWdodDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuXG4uc2JiLWFsZXJ0X19jbG9zZS1idXR0b24ge1xuICBAaW5jbHVkZSBzYmIubXEoJGZyb206IHNtYWxsKSB7XG4gICAgbWFyZ2luLWlubGluZS1zdGFydDogdmFyKC0tc2JiLWFsZXJ0LWNsb3NlLWljb24tbWFyZ2luKTtcbiAgfVxufVxuXG4uc2JiLWFsZXJ0X19jbG9zZS1idXR0b24tZGl2aWRlciB7XG4gIGRpc3BsYXk6IG5vbmU7XG5cbiAgQGluY2x1ZGUgc2JiLm1xKCRmcm9tOiBzbWFsbCkge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGhlaWdodDogY2FsYygxMDAlIC0gKHZhcigtLXNiYi1zcGFjaW5nLWZpeGVkLTF4KSAqIDIpKTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIG9wZW4ge1xuICBmcm9tIHtcbiAgICBncmlkLXRlbXBsYXRlLXJvd3M6ICN7JG9wZW4tYW5pbS1yb3dzLWZyb219O1xuICB9XG5cbiAgdG8ge1xuICAgIGdyaWQtdGVtcGxhdGUtcm93czogI3skb3Blbi1hbmltLXJvd3MtdG99O1xuICB9XG59XG5cbkBrZXlmcmFtZXMgb3Blbi1vcGFjaXR5IHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogI3skb3Blbi1hbmltLW9wYWNpdHktZnJvbX07XG4gIH1cblxuICB0byB7XG4gICAgb3BhY2l0eTogI3skb3Blbi1hbmltLW9wYWNpdHktdG99O1xuICB9XG59XG5cbkBrZXlmcmFtZXMgY2xvc2Uge1xuICBmcm9tIHtcbiAgICBncmlkLXRlbXBsYXRlLXJvd3M6ICN7JG9wZW4tYW5pbS1yb3dzLXRvfTtcbiAgfVxuXG4gIHRvIHtcbiAgICBncmlkLXRlbXBsYXRlLXJvd3M6ICN7JG9wZW4tYW5pbS1yb3dzLWZyb219O1xuICB9XG59XG5cbkBrZXlmcmFtZXMgY2xvc2Utb3BhY2l0eSB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6ICN7JG9wZW4tYW5pbS1vcGFjaXR5LXRvfTtcbiAgfVxuXG4gIHRvIHtcbiAgICBvcGFjaXR5OiAjeyRvcGVuLWFuaW0tb3BhY2l0eS1mcm9tfTtcbiAgfVxufVxuXG46OnNsb3R0ZWQoc2JiLXRpdGxlKSB7XG4gIC8vIE92ZXJ3cml0ZSBzYmItdGl0bGUgZGVmYXVsdCBtYXJnaW5cbiAgbWFyZ2luLWJsb2NrOiB2YXIoLS1zYmItYWxlcnQtdGl0bGUtbWFyZ2luLWJsb2NrKTtcbn1cbiIsImltcG9ydCB7XG4gIHR5cGUgQ1NTUmVzdWx0R3JvdXAsXG4gIGh0bWwsXG4gIG5vdGhpbmcsXG4gIHR5cGUgUHJvcGVydHlWYWx1ZXMsXG4gIHR5cGUgVGVtcGxhdGVSZXN1bHQsXG4gIHVuc2FmZUNTUyxcbn0gZnJvbSAnbGl0JztcbmltcG9ydCB7IHByb3BlcnR5IH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuXG5pbXBvcnQgeyBTYmJUcmFuc3BhcmVudEJ1dHRvbkVsZW1lbnQgfSBmcm9tICcuLi8uLi9idXR0b24ucHVyZS50cyc7XG5pbXBvcnQge1xuICBib3hTaXppbmdTdHlsZXMsXG4gIGkxOG5DbG9zZUFsZXJ0LFxuICBpc0xlYW4sXG4gIGlzWmVyb0FuaW1hdGlvbkR1cmF0aW9uLFxuICBTYmJEYXJrTW9kZUNvbnRyb2xsZXIsXG4gIHR5cGUgU2JiRWxlbWVudFR5cGUsXG4gIFNiYkxhbmd1YWdlQ29udHJvbGxlcixcbiAgU2JiT3BlbkNsb3NlQmFzZUVsZW1lbnQsXG4gIFNiYlJlYWRvbmx5TWl4aW4sXG59IGZyb20gJy4uLy4uL2NvcmUudHMnO1xuaW1wb3J0IHsgU2JiRGl2aWRlckVsZW1lbnQgfSBmcm9tICcuLi8uLi9kaXZpZGVyLnB1cmUudHMnO1xuaW1wb3J0IHsgU2JiSWNvbk5hbWVNaXhpbiB9IGZyb20gJy4uLy4uL2ljb24ucHVyZS50cyc7XG5pbXBvcnQgdHlwZSB7IFNiYkxpbmtFbGVtZW50IH0gZnJvbSAnLi4vLi4vbGluay5wdXJlLnRzJztcbmltcG9ydCB0eXBlIHsgU2JiVGl0bGVFbGVtZW50IH0gZnJvbSAnLi4vLi4vdGl0bGUucHVyZS50cyc7XG5cbmltcG9ydCBzdHlsZSBmcm9tICcuL2FsZXJ0LnNjc3M/aW5saW5lJztcblxuLyoqXG4gKiBJdCBkaXNwbGF5cyBtZXNzYWdlcyB3aGljaCByZXF1aXJlIHVzZXIncyBhdHRlbnRpb24uXG4gKlxuICogQHNsb3QgLSBVc2UgdGhlIHVubmFtZWQgc2xvdCB0byBhZGQgY29udGVudCB0byB0aGUgYHNiYi1hbGVydGAuIEF0IGEgbWluaW11bSBhbiBgc2JiLXRpdGxlYCBlbGVtZW50IGFuZCBhIGRlc2NyaXB0aXZlIHRleHQgc2hvdWxkIGJlIHVzZWQuXG4gKiBAc2xvdCBpY29uIC0gU2hvdWxkIGJlIGEgYHNiYi1pY29uYCB3aGljaCBpcyBkaXNwbGF5ZWQgbmV4dCB0byB0aGUgdGl0bGUuIFN0eWxpbmcgaXMgb3B0aW1pemVkIGZvciBpY29ucyBvZiB0eXBlIEhJTS1DVVMuXG4gKiBAc2xvdCB0aXRsZSAtIFNsb3QgZm9yIHRoZSB0aXRsZS4gRm9yIHRoZSBzdGFuZGFyZCBgc2JiLXRpdGxlYCBlbGVtZW50LCB0aGUgc2xvdCBpcyBhdXRvbWF0aWNhbGx5IGFzc2lnbmVkIHdoZW4gc2xvdHRlZCBpbiB0aGUgdW5uYW1lZCBzbG90LlxuICovXG5leHBvcnQgY2xhc3MgU2JiQWxlcnRFbGVtZW50IGV4dGVuZHMgU2JiSWNvbk5hbWVNaXhpbihTYmJSZWFkb25seU1peGluKFNiYk9wZW5DbG9zZUJhc2VFbGVtZW50KSkge1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHJlYWRvbmx5IGVsZW1lbnROYW1lOiBzdHJpbmcgPSAnc2JiLWFsZXJ0JztcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSBlbGVtZW50RGVwZW5kZW5jaWVzOiBTYmJFbGVtZW50VHlwZVtdID0gW1xuICAgIFNiYlRyYW5zcGFyZW50QnV0dG9uRWxlbWVudCxcbiAgICBTYmJEaXZpZGVyRWxlbWVudCxcbiAgXTtcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSBzdHlsZXM6IENTU1Jlc3VsdEdyb3VwID0gW2JveFNpemluZ1N0eWxlcywgdW5zYWZlQ1NTKHN0eWxlKV07XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgcmVhZG9ubHkgZXZlbnRzID0ge1xuICAgIGJlZm9yZW9wZW46ICdiZWZvcmVvcGVuJyxcbiAgICBvcGVuOiAnb3BlbicsXG4gICAgYmVmb3JlY2xvc2U6ICdiZWZvcmVjbG9zZScsXG4gICAgY2xvc2U6ICdjbG9zZScsXG4gIH0gYXMgY29uc3Q7XG5cbiAgLyoqXG4gICAqIFlvdSBjYW4gY2hvb3NlIGJldHdlZW4gYHNgLCBgbWAgb3IgYGxgIHNpemUuXG4gICAqIEBkZWZhdWx0ICdtJyAvICdzJyAobGVhbilcbiAgICovXG4gIEBwcm9wZXJ0eSh7IHJlZmxlY3Q6IHRydWUgfSkgcHVibGljIGFjY2Vzc29yIHNpemU6ICdzJyB8ICdtJyB8ICdsJyA9IGlzTGVhbigpID8gJ3MnIDogJ20nO1xuXG4gIC8qKiBUaGUgZW5hYmxlZCBhbmltYXRpb25zLiAqL1xuICBAcHJvcGVydHkoeyByZWZsZWN0OiB0cnVlIH0pIHB1YmxpYyBhY2Nlc3NvciBhbmltYXRpb246ICdvcGVuJyB8ICdjbG9zZScgfCAnYWxsJyB8ICdub25lJyA9ICdhbGwnO1xuXG4gIHByaXZhdGUgX2xhbmd1YWdlID0gbmV3IFNiYkxhbmd1YWdlQ29udHJvbGxlcih0aGlzKTtcbiAgcHJpdmF0ZSBfZGFya01vZGVDb250cm9sbGVyID0gbmV3IFNiYkRhcmtNb2RlQ29udHJvbGxlcih0aGlzLCAoKSA9PiB7XG4gICAgdGhpcy5fc3luY0xpbmtzKCk7XG4gICAgdGhpcy5fY29uZmlndXJlVGl0bGUoKTtcbiAgICB0aGlzLnJlcXVlc3RVcGRhdGUoKTtcbiAgfSk7XG5cbiAgLyoqIE9wZW4gdGhlIGFsZXJ0LiAqL1xuICBwdWJsaWMgb3BlbigpOiB2b2lkIHtcbiAgICB0aGlzLnN0YXRlID0gJ29wZW5pbmcnO1xuXG4gICAgaWYgKCF0aGlzLmRpc3BhdGNoQmVmb3JlT3BlbkV2ZW50KCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBJZiB0aGUgYW5pbWF0aW9uIGR1cmF0aW9uIGlzIHplcm8sIHRoZSBhbmltYXRpb25lbmQgZXZlbnQgaXMgbm90IGFsd2F5cyBmaXJlZCByZWxpYWJseS5cbiAgICAvLyBJbiB0aGlzIGNhc2Ugd2UgZGlyZWN0bHkgc2V0IHRoZSBgb3BlbmVkYCBzdGF0ZS5cbiAgICBpZiAodGhpcy5faXNaZXJvQW5pbWF0aW9uRHVyYXRpb24oKSkge1xuICAgICAgdGhpcy5faGFuZGxlT3BlbmluZygpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBDbG9zZSB0aGUgYWxlcnQuICovXG4gIHB1YmxpYyBjbG9zZSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zdGF0ZSA9PT0gJ29wZW5lZCcgJiYgdGhpcy5kaXNwYXRjaEJlZm9yZUNsb3NlRXZlbnQoKSkge1xuICAgICAgdGhpcy5zdGF0ZSA9ICdjbG9zaW5nJztcblxuICAgICAgLy8gSWYgdGhlIGFuaW1hdGlvbiBkdXJhdGlvbiBpcyB6ZXJvLCB0aGUgYW5pbWF0aW9uZW5kIGV2ZW50IGlzIG5vdCBhbHdheXMgZmlyZWQgcmVsaWFibHkuXG4gICAgICAvLyBJbiB0aGlzIGNhc2Ugd2UgZGlyZWN0bHkgc2V0IHRoZSBgY2xvc2VkYCBzdGF0ZS5cbiAgICAgIGlmICh0aGlzLl9pc1plcm9BbmltYXRpb25EdXJhdGlvbigpKSB7XG4gICAgICAgIHRoaXMuX2hhbmRsZUNsb3NpbmcoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgZmlyc3RVcGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzOiBQcm9wZXJ0eVZhbHVlczx0aGlzPik6IHZvaWQge1xuICAgIHN1cGVyLmZpcnN0VXBkYXRlZChjaGFuZ2VkUHJvcGVydGllcyk7XG5cbiAgICB0aGlzLm9wZW4oKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSB3aWxsVXBkYXRlKGNoYW5nZWRQcm9wZXJ0aWVzOiBQcm9wZXJ0eVZhbHVlczx0aGlzPik6IHZvaWQge1xuICAgIHN1cGVyLndpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXMpO1xuXG4gICAgaWYgKGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygnc2l6ZScpKSB7XG4gICAgICB0aGlzLl9jb25maWd1cmVUaXRsZSgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2lzWmVyb0FuaW1hdGlvbkR1cmF0aW9uKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBpc1plcm9BbmltYXRpb25EdXJhdGlvbih0aGlzLCAnLS1zYmItYWxlcnQtYW5pbWF0aW9uLWR1cmF0aW9uJyk7XG4gIH1cblxuICBwcml2YXRlIF9vbkFuaW1hdGlvbkVuZChldmVudDogQW5pbWF0aW9uRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zdGF0ZSA9PT0gJ29wZW5pbmcnICYmIGV2ZW50LmFuaW1hdGlvbk5hbWUgPT09ICdvcGVuLW9wYWNpdHknKSB7XG4gICAgICB0aGlzLl9oYW5kbGVPcGVuaW5nKCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLnN0YXRlID09PSAnY2xvc2luZycgJiYgZXZlbnQuYW5pbWF0aW9uTmFtZSA9PT0gJ2Nsb3NlJykge1xuICAgICAgdGhpcy5faGFuZGxlQ2xvc2luZygpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2hhbmRsZU9wZW5pbmcoKTogdm9pZCB7XG4gICAgdGhpcy5zdGF0ZSA9ICdvcGVuZWQnO1xuICAgIHRoaXMuZGlzcGF0Y2hPcGVuRXZlbnQoKTtcbiAgfVxuXG4gIHByaXZhdGUgX2hhbmRsZUNsb3NpbmcoKTogdm9pZCB7XG4gICAgdGhpcy5zdGF0ZSA9ICdjbG9zZWQnO1xuICAgIHRoaXMuZGlzcGF0Y2hDbG9zZUV2ZW50KCk7XG4gICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLnJlbW92ZSgpKTtcbiAgfVxuXG4gIHByaXZhdGUgX2hhbmRsZVNsb3RjaGFuZ2UoKTogdm9pZCB7XG4gICAgdGhpcy5fc3luY0xpbmtzKCk7XG5cbiAgICBjb25zdCB0aXRsZSA9IEFycmF5LmZyb20odGhpcy5jaGlsZHJlbikuZmluZCgoZWwpID0+IGVsLmxvY2FsTmFtZSA9PT0gJ3NiYi10aXRsZScpO1xuICAgIGlmICh0aXRsZSkge1xuICAgICAgdGl0bGUuc2xvdCA9ICd0aXRsZSc7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfc3luY0xpbmtzKCk6IHZvaWQge1xuICAgIEFycmF5LmZyb20odGhpcy5xdWVyeVNlbGVjdG9yQWxsPy48U2JiTGlua0VsZW1lbnQ+KCdzYmItbGluaycpID8/IFtdKS5mb3JFYWNoKChsaW5rKSA9PiB7XG4gICAgICBjdXN0b21FbGVtZW50cy51cGdyYWRlKGxpbmspO1xuICAgICAgbGluay5uZWdhdGl2ZSA9IHRoaXMuX2lzTGlnaHRNb2RlKCk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF9jb25maWd1cmVUaXRsZSgpOiB2b2lkIHtcbiAgICBjb25zdCB0aXRsZSA9IHRoaXMucXVlcnlTZWxlY3Rvcj8uPFNiYlRpdGxlRWxlbWVudD4oJ3NiYi10aXRsZScpO1xuICAgIGlmICh0aXRsZSkge1xuICAgICAgY3VzdG9tRWxlbWVudHMudXBncmFkZSh0aXRsZSk7XG4gICAgICB0aXRsZS5uZWdhdGl2ZSA9IHRoaXMuX2lzTGlnaHRNb2RlKCk7XG4gICAgICB0aXRsZS52aXN1YWxMZXZlbCA9IHRoaXMuc2l6ZSA9PT0gJ2wnID8gJzMnIDogJzUnO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2lzTGlnaHRNb2RlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhdGhpcy5fZGFya01vZGVDb250cm9sbGVyLm1hdGNoZXMoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXJJY29uTmFtZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiBzdXBlci5yZW5kZXJJY29uTmFtZSgpIHx8ICdpbmZvJztcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXIoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHJldHVybiBodG1sYFxuICAgICAgPGRpdiBjbGFzcz1cInNiYi1hbGVydF9fdHJhbnNpdGlvbi13cmFwcGVyXCIgQGFuaW1hdGlvbmVuZD0ke3RoaXMuX29uQW5pbWF0aW9uRW5kfT5cbiAgICAgICAgPCEtLSBzdWIgd3JhcHBlciBuZWVkZWQgdG8gcHJvcGVybHkgc3VwcG9ydCBmYWRlIGluIGFuaW1hdGlvbiAtLT5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNiYi1hbGVydF9fdHJhbnNpdGlvbi1zdWItd3JhcHBlclwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzYmItYWxlcnRcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2JiLWFsZXJ0X19pY29uXCI+ICR7dGhpcy5yZW5kZXJJY29uU2xvdCgpfSA8L3NwYW4+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNiYi1hbGVydF9fY29udGVudFwiPlxuICAgICAgICAgICAgICA8c2xvdCBuYW1lPVwidGl0bGVcIiBAc2xvdGNoYW5nZT0ke3RoaXMuX2NvbmZpZ3VyZVRpdGxlfT48L3Nsb3Q+XG4gICAgICAgICAgICAgIDxwIGNsYXNzPVwic2JiLWFsZXJ0X19jb250ZW50LXNsb3RcIj5cbiAgICAgICAgICAgICAgICA8c2xvdCBAc2xvdGNoYW5nZT0ke3RoaXMuX2hhbmRsZVNsb3RjaGFuZ2V9Pjwvc2xvdD5cbiAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgJHshdGhpcy5yZWFkT25seVxuICAgICAgICAgICAgICA/IGh0bWxgPHNwYW4gY2xhc3M9XCJzYmItYWxlcnRfX2Nsb3NlLWJ1dHRvbi13cmFwcGVyXCI+XG4gICAgICAgICAgICAgICAgICA8c2JiLWRpdmlkZXJcbiAgICAgICAgICAgICAgICAgICAgb3JpZW50YXRpb249XCJ2ZXJ0aWNhbFwiXG4gICAgICAgICAgICAgICAgICAgID9uZWdhdGl2ZT0ke3RoaXMuX2lzTGlnaHRNb2RlKCl9XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic2JiLWFsZXJ0X19jbG9zZS1idXR0b24tZGl2aWRlclwiXG4gICAgICAgICAgICAgICAgICA+PC9zYmItZGl2aWRlcj5cbiAgICAgICAgICAgICAgICAgIDxzYmItdHJhbnNwYXJlbnQtYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgID9uZWdhdGl2ZT0ke3RoaXMuX2lzTGlnaHRNb2RlKCl9XG4gICAgICAgICAgICAgICAgICAgIHNpemU9JHt0aGlzLnNpemUgPT09ICdsJyA/ICdtJyA6IHRoaXMuc2l6ZX1cbiAgICAgICAgICAgICAgICAgICAgaWNvbi1uYW1lPVwiY3Jvc3Mtc21hbGxcIlxuICAgICAgICAgICAgICAgICAgICBAY2xpY2s9JHsoKSA9PiB0aGlzLmNsb3NlKCl9XG4gICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9JHtpMThuQ2xvc2VBbGVydFt0aGlzLl9sYW5ndWFnZS5jdXJyZW50XX1cbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzYmItYWxlcnRfX2Nsb3NlLWJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICA+PC9zYmItdHJhbnNwYXJlbnQtYnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvc3Bhbj5gXG4gICAgICAgICAgICAgIDogbm90aGluZ31cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICBgO1xuICB9XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgICdzYmItYWxlcnQnOiBTYmJBbGVydEVsZW1lbnQ7XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7O0lDb0NhLHlCQUFlO21CQUFTLGlCQUFpQixpQkFBaUIsd0JBQXdCLENBQUM7Ozs7Ozs7Y0FBbkYsd0JBQXdCLFlBQTJEOzs7QUFrQmpELFNBQUEsd0JBQUEsa0JBQUEsTUFBQSxvQkFBd0IsUUFBUSxHQUFHLE1BQU0sSUFBRztBQUc1QyxTQUFBLDhCQUFBLGtCQUFBLE1BQUEsd0JBQUEsRUFBQSxrQkFBQSxNQUFBLHlCQUErQyxNQUFLO0FBRXpGLFFBQUEsYUFBUyxrQkFBQSxNQUFBLDZCQUFBLEVBQUcsSUFBSSxzQkFBc0IsS0FBSztBQUMzQyxRQUFBLHNCQUFzQixJQUFJLHNCQUFzQixZQUFXO0FBQ2pFLFNBQUssWUFBWTtBQUNqQixTQUFLLGlCQUFpQjtBQUN0QixTQUFLLGVBQWU7S0FDcEI7Ozs7dUJBVkQsU0FBUyxFQUFFLFNBQVMsTUFBTSxDQUFDLENBQUE7NEJBRzNCLFNBQVMsRUFBRSxTQUFTLE1BQU0sQ0FBQyxDQUFBO0FBSEMsZ0JBQUEsTUFBQSxNQUFBLGtCQUFBO0lBQUEsTUFBQTtJQUFBLE1BQUE7SUFBQSxRQUFBO0lBQUEsU0FBQTtJQUFBLFFBQUE7S0FBQSxNQUFBLFFBQUEsVUFBQTtLQUFBLE1BQUEsUUFBQSxJQUFnQjtLQUFJLE1BQUEsS0FBQSxVQUFBO0FBQUEsVUFBSixPQUFJOztLQUFBO0lBQUEsVUFBQTtJQUFBLEVBQUEsb0JBQUEsd0JBQUE7QUFHcEIsZ0JBQUEsTUFBQSxNQUFBLHVCQUFBO0lBQUEsTUFBQTtJQUFBLE1BQUE7SUFBQSxRQUFBO0lBQUEsU0FBQTtJQUFBLFFBQUE7S0FBQSxNQUFBLFFBQUEsZUFBQTtLQUFBLE1BQUEsUUFBQSxJQUFnQjtLQUFTLE1BQUEsS0FBQSxVQUFBO0FBQUEsVUFBVCxZQUFTOztLQUFBO0lBQUEsVUFBQTtJQUFBLEVBQUEseUJBQUEsNkJBQUE7Ozs7Ozs7OztBQXBCdEIsUUFBQSxjQUFzQjs7O0FBQy9CLFFBQUEsc0JBQXdDLENBQzdELDZCQUNBLGtCQUNEOzs7QUFDc0IsUUFBQSxTQUF5QixDQUFDLGlCQUFpQixVQUFVLGNBQU0sQ0FBQzs7O0FBQ25ELFFBQUEsU0FBUztJQUN2QyxZQUFZO0lBQ1osTUFBTTtJQUNOLGFBQWE7SUFDYixPQUFPO0lBQ0M7O0VBTW1COzs7OztFQUFBLElBQWdCLE9BQUk7QUFBQSxVQUFBLE1BQUE7O0VBQXBCLElBQWdCLEtBQUksT0FBQTtBQUFBLFNBQUEsd0JBQUE7O0VBR3BCOztFQUFBLElBQWdCLFlBQVM7QUFBQSxVQUFBLE1BQUE7O0VBQXpCLElBQWdCLFVBQVMsT0FBQTtBQUFBLFNBQUEsNkJBQUE7OztFQVUvQyxPQUFJO0FBQ1QsUUFBSyxRQUFRO0FBRWIsT0FBSSxDQUFDLEtBQUsseUJBQXlCLENBQ2pDO0FBS0YsT0FBSSxLQUFLLDBCQUEwQixDQUNqQyxNQUFLLGdCQUFnQjs7O0VBS2xCLFFBQUs7QUFDVixPQUFJLEtBQUssVUFBVSxZQUFZLEtBQUssMEJBQTBCLEVBQUU7QUFDOUQsU0FBSyxRQUFRO0FBSWIsUUFBSSxLQUFLLDBCQUEwQixDQUNqQyxNQUFLLGdCQUFnQjs7O0VBS1IsYUFBYSxtQkFBdUM7QUFDckUsU0FBTSxhQUFhLGtCQUFrQjtBQUVyQyxRQUFLLE1BQU07O0VBR00sV0FBVyxtQkFBdUM7QUFDbkUsU0FBTSxXQUFXLGtCQUFrQjtBQUVuQyxPQUFJLGtCQUFrQixJQUFJLE9BQU8sQ0FDL0IsTUFBSyxpQkFBaUI7O0VBSWxCLDJCQUF3QjtBQUM5QixVQUFPLHdCQUF3QixNQUFNLGlDQUFpQzs7RUFHaEUsZ0JBQWdCLE9BQXFCO0FBQzNDLE9BQUksS0FBSyxVQUFVLGFBQWEsTUFBTSxrQkFBa0IsZUFDdEQsTUFBSyxnQkFBZ0I7WUFDWixLQUFLLFVBQVUsYUFBYSxNQUFNLGtCQUFrQixRQUM3RCxNQUFLLGdCQUFnQjs7RUFJakIsaUJBQWM7QUFDcEIsUUFBSyxRQUFRO0FBQ2IsUUFBSyxtQkFBbUI7O0VBR2xCLGlCQUFjO0FBQ3BCLFFBQUssUUFBUTtBQUNiLFFBQUssb0JBQW9CO0FBQ3pCLG9CQUFpQixLQUFLLFFBQVEsQ0FBQzs7RUFHekIsb0JBQWlCO0FBQ3ZCLFFBQUssWUFBWTtHQUVqQixNQUFNLFFBQVEsTUFBTSxLQUFLLEtBQUssU0FBUyxDQUFDLE1BQU0sT0FBTyxHQUFHLGNBQWMsWUFBWTtBQUNsRixPQUFJLE1BQ0YsT0FBTSxPQUFPOztFQUlULGFBQVU7QUFDaEIsU0FBTSxLQUFLLEtBQUssbUJBQW1DLFdBQVcsSUFBSSxFQUFFLENBQUMsQ0FBQyxTQUFTLFNBQVE7QUFDckYsbUJBQWUsUUFBUSxLQUFLO0FBQzVCLFNBQUssV0FBVyxLQUFLLGNBQWM7S0FDbkM7O0VBR0ksa0JBQWU7R0FDckIsTUFBTSxRQUFRLEtBQUssZ0JBQWlDLFlBQVk7QUFDaEUsT0FBSSxPQUFPO0FBQ1QsbUJBQWUsUUFBUSxNQUFNO0FBQzdCLFVBQU0sV0FBVyxLQUFLLGNBQWM7QUFDcEMsVUFBTSxjQUFjLEtBQUssU0FBUyxNQUFNLE1BQU07OztFQUkxQyxlQUFZO0FBQ2xCLFVBQU8sQ0FBQyxLQUFLLG9CQUFvQixTQUFTOztFQUd6QixpQkFBYztBQUMvQixVQUFPLE1BQU0sZ0JBQWdCLElBQUk7O0VBR2hCLFNBQU07QUFDdkIsVUFBTyxJQUFJO2lFQUNrRCxLQUFLLGdCQUFlOzs7OzZDQUl4QyxLQUFLLGdCQUFnQixDQUFBOzsrQ0FFbkIsS0FBSyxnQkFBZTs7b0NBRS9CLEtBQUssa0JBQWlCOzs7Y0FHNUMsQ0FBQyxLQUFLLFdBQ0osSUFBSTs7O2dDQUdZLEtBQUssY0FBYyxDQUFBOzs7O2dDQUluQixLQUFLLGNBQWMsQ0FBQTsyQkFDeEIsS0FBSyxTQUFTLE1BQU0sTUFBTSxLQUFLLEtBQUE7O21DQUV2QixLQUFLLE9BQU8sQ0FBQTtpQ0FDZCxlQUFlLEtBQUssVUFBVSxTQUFBOzs7MkJBSS9DLFFBQUEifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"autocomplete-base-element.d.ts","sourceRoot":"","sources":["../../../../src/elements/autocomplete/autocomplete-base-element.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"autocomplete-base-element.d.ts","sourceRoot":"","sources":["../../../../src/elements/autocomplete/autocomplete-base-element.ts"],"names":[],"mappings":"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"}
@@ -683,4 +683,4 @@ var SbbAutocompleteBaseElement = (() => {
683
683
  //#endregion
684
684
  export { SbbAutocompleteBaseElement as t };
685
685
 
686
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLWJhc2UtZWxlbWVudC1EbnBhS19rMy5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZWxlbWVudHMvYXV0b2NvbXBsZXRlL2F1dG9jb21wbGV0ZS1iYXNlLWVsZW1lbnQuc2Nzcz9pbmxpbmUiLCIuLi8uLi8uLi9zcmMvZWxlbWVudHMvYXV0b2NvbXBsZXRlL2F1dG9jb21wbGV0ZS1iYXNlLWVsZW1lbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiQHVzZSAnLi4vY29yZS9zdHlsZXMnIGFzIHNiYjtcblxuLy8gRml4ZXMgdGhlIGdhcCBiZXR3ZWVuIHRoZSBvcmlnaW4gYW5kIHRoZSBvdmVybGF5IGJ5IGNyZWF0aW5nIGNvbmp1bmN0aW9uXG4vLyBjb3JuZXJzIGJhc2VkIG9uIHRoZSBvcmlnaW4gZWxlbWVudCBib3JkZXIgcmFkaXVzXG5AaW5jbHVkZSBzYmIub3ZlcmxheS1nYXAtZml4O1xuXG46aG9zdCB7XG4gIEBpbmNsdWRlIHNiYi5vcHRpb25zLXBhbmVsLW92ZXJsYXktdmFyaWFibGVzO1xuXG4gIC0tc2JiLW9wdGlvbnMtcG9pbnRlci1ldmVudHM6IGFsbDtcbiAgLS1zYmItb3B0aW9ucy1wYW5lbC1pbnRlcm5hbC16LWluZGV4OiB2YXIoXG4gICAgLS1zYmItYXV0b2NvbXBsZXRlLXotaW5kZXgsXG4gICAgdmFyKC0tc2JiLW92ZXJsYXktZGVmYXVsdC16LWluZGV4KVxuICApO1xuXG4gIGRpc3BsYXk6IG5vbmU7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG59XG5cbjpob3N0KFtzaXplPSdzJ10pIHtcbiAgQGluY2x1ZGUgc2JiLm9wdGlvbnMtcGFuZWwtb3ZlcmxheS1zaXplLXMtdmFyaWFibGVzO1xufVxuXG46aG9zdChbc2l6ZT0nbSddKSB7XG4gIEBpbmNsdWRlIHNiYi5vcHRpb25zLXBhbmVsLW92ZXJsYXktc2l6ZS1tLXZhcmlhYmxlcztcbn1cblxuOmhvc3QoOmlzKDpzdGF0ZShzdGF0ZS1vcGVuaW5nKSwgOnN0YXRlKHN0YXRlLW9wZW5lZCksIDpzdGF0ZShzdGF0ZS1jbG9zaW5nKSkpIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbjpob3N0KFtuZWdhdGl2ZV0pIHtcbiAgQGluY2x1ZGUgc2JiLm9wdGlvbnMtcGFuZWwtb3ZlcmxheS1uZWdhdGl2ZS12YXJpYWJsZXM7XG59XG5cbjpob3N0KDpub3QoOnN0YXRlKHN0YXRlLW9wZW5pbmcpLCA6c3RhdGUoc3RhdGUtb3BlbmVkKSwgOnN0YXRlKHN0YXRlLWNsb3NpbmcpKSksXG46aG9zdCg6c3RhdGUoc3RhdGUtY2xvc2VkKSkge1xuICAtLXNiYi1vcHRpb25zLXBhbmVsLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgLS1zYmItb3B0aW9ucy1wb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuOmhvc3QoOnN0YXRlKHN0YXRlLW9wZW5pbmcpKSB7XG4gIC0tc2JiLW9wdGlvbnMtcGFuZWwtYW5pbWF0aW9uLW5hbWU6IG9wZW47XG59XG5cbjpob3N0KDpzdGF0ZShzdGF0ZS1jbG9zaW5nKSkge1xuICAtLXNiYi1vcHRpb25zLXBhbmVsLWFuaW1hdGlvbi1uYW1lOiBjbG9zZTtcbn1cblxuOmhvc3QoOnN0YXRlKHN0YXRlLW9wZW5lZCkpLFxuOmhvc3QoOnN0YXRlKHN0YXRlLW9wZW5pbmcpKSB7XG4gIC0tc2JiLW9wdGlvbnMtcGFuZWwtZ2FwLWZpeC1vcGFjaXR5OiAxO1xufVxuXG46aG9zdCg6c3RhdGUob3B0aW9ucy1wYW5lbC1wb3NpdGlvbi1iZWxvdykpIHtcbiAgLS1zYmItb3B0aW9ucy1wYW5lbC1hbmltYXRpb24tdHJhbnNmb3JtOiB0cmFuc2xhdGVZKFxuICAgIGNhbGMoKHZhcigtLXNiYi1vcHRpb25zLXBhbmVsLW9yaWdpbi1oZWlnaHQpIC8gMikgKiAtMSlcbiAgKTtcbn1cblxuOmhvc3QoOnN0YXRlKG9wdGlvbnMtcGFuZWwtcG9zaXRpb24tYWJvdmUpKSB7XG4gIC0tc2JiLW9wdGlvbnMtcGFuZWwtb3B0aW9ucy1ib3JkZXItcmFkaXVzOiB2YXIoLS1zYmItb3B0aW9ucy1wYW5lbC1ib3JkZXItcmFkaXVzKVxuICAgIHZhcigtLXNiYi1vcHRpb25zLXBhbmVsLWJvcmRlci1yYWRpdXMpIDAgMDtcbiAgLS1zYmItb3B0aW9ucy1wYW5lbC1nYXAtZml4LXRvcDogdmFyKC0tX3NiYi1vcHRpb25zLXBhbmVsLW1heC1oZWlnaHQpO1xuICAtLXNiYi1vcHRpb25zLXBhbmVsLWdhcC1maXgtdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTtcbiAgLS1zYmItb3B0aW9ucy1wYW5lbC1hbmltYXRpb24tdHJhbnNmb3JtOiB0cmFuc2xhdGVZKFxuICAgIGNhbGModmFyKC0tc2JiLW9wdGlvbnMtcGFuZWwtb3JpZ2luLWhlaWdodCkgLyAyKVxuICApO1xufVxuXG46aG9zdChbcHJlc2VydmUtaWNvbi1zcGFjZV0pIHtcbiAgLS1zYmItb3B0aW9uLWljb24tY29udGFpbmVyLWRpc3BsYXk6IGJsb2NrO1xufVxuXG46OnNsb3R0ZWQoc2JiLWRpdmlkZXIpIHtcbiAgbWFyZ2luLWJsb2NrOiB2YXIoLS1zYmItb3B0aW9ucy1wYW5lbC1kaXZpZGVyLW1hcmdpbi1ibG9jayk7XG59XG5cbi5zYmItYXV0b2NvbXBsZXRlX19jb250YWluZXIge1xuICBAaW5jbHVkZSBzYmIub3B0aW9ucy1wYW5lbC1vdmVybGF5LWNvbnRhaW5lcjtcbn1cblxuLnNiYi1hdXRvY29tcGxldGVfX2dhcC1maXgge1xuICBAaW5jbHVkZSBzYmIub3B0aW9ucy1wYW5lbC1vdmVybGF5LWdhcDtcbn1cblxuLnNiYi1hdXRvY29tcGxldGVfX3BhbmVsIHtcbiAgQGluY2x1ZGUgc2JiLm9wdGlvbnMtcGFuZWwtb3ZlcmxheTtcblxuICA6aG9zdCg6c3RhdGUob3B0aW9ucy1wYW5lbC1wb3NpdGlvbi1iZWxvdykpICYge1xuICAgIGluc2V0LWJsb2NrLXN0YXJ0OiBjYWxjKFxuICAgICAgdmFyKC0tc2JiLW9wdGlvbnMtcGFuZWwtcG9zaXRpb24teSkgLSB2YXIoLS1zYmItb3B0aW9ucy1wYW5lbC1vcmlnaW4taGVpZ2h0KVxuICAgICk7XG4gIH1cblxuICA6aG9zdCg6aXMoOnN0YXRlKHN0YXRlLW9wZW5lZCksIDpzdGF0ZShzdGF0ZS1vcGVuaW5nKSkpICYge1xuICAgIGJveC1zaGFkb3c6IHZhcigtLXNiYi1ib3gtc2hhZG93LWxldmVsLTUtaGFyZCk7XG4gIH1cblxuICA6aG9zdCg6aXMoOnN0YXRlKHN0YXRlLW9wZW5lZCksIDpzdGF0ZShzdGF0ZS1vcGVuaW5nKSlbbmVnYXRpdmVdKSAmIHtcbiAgICBib3gtc2hhZG93OiB2YXIoLS1zYmItYm94LXNoYWRvdy1sZXZlbC01LWhhcmQtbmVnYXRpdmUpO1xuICB9XG5cbiAgJjo6YmVmb3JlIHtcbiAgICA6aG9zdCg6c3RhdGUob3B0aW9ucy1wYW5lbC1wb3NpdGlvbi1iZWxvdykpICYge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuICB9XG5cbiAgJjo6YWZ0ZXIge1xuICAgIDpob3N0KDpzdGF0ZShvcHRpb25zLXBhbmVsLXBvc2l0aW9uLWFib3ZlKSkgJiB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG4gIH1cblxuICAvLyBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tZGVzY2VuZGluZy1zcGVjaWZpY2l0eVxuICAmOjpiZWZvcmUsXG4gICY6OmFmdGVyIHtcbiAgICA6aG9zdCg6aXMoOnN0YXRlKHN0YXRlLW9wZW5lZCksIDpzdGF0ZShzdGF0ZS1vcGVuaW5nKSk6c3RhdGUob3B0aW9uLXBhbmVsLW9yaWdpbi1ib3JkZXJsZXNzKSlcbiAgICAgICYge1xuICAgICAgYm94LXNoYWRvdzogdmFyKC0tc2JiLWJveC1zaGFkb3ctbGV2ZWwtNS1oYXJkKTtcbiAgICB9XG5cbiAgICA6aG9zdChcbiAgICAgICAgOmlzKDpzdGF0ZShzdGF0ZS1vcGVuZWQpLCA6c3RhdGUoc3RhdGUtb3BlbmluZykpOnN0YXRlKFxuICAgICAgICAgICAgb3B0aW9uLXBhbmVsLW9yaWdpbi1ib3JkZXJsZXNzXG4gICAgICAgICAgKVtuZWdhdGl2ZV1cbiAgICAgIClcbiAgICAgICYge1xuICAgICAgYm94LXNoYWRvdzogdmFyKC0tc2JiLWJveC1zaGFkb3ctbGV2ZWwtNS1oYXJkLW5lZ2F0aXZlKTtcbiAgICB9XG4gIH1cbn1cblxuLnNiYi1hdXRvY29tcGxldGVfX3dyYXBwZXIge1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4uc2JiLWF1dG9jb21wbGV0ZV9fb3B0aW9ucyB7XG4gIEBpbmNsdWRlIHNiYi5vcHRpb25zT3ZlcmxheTtcbiAgQGluY2x1ZGUgc2JiLnNjcm9sbGJhci1ydWxlcztcblxuICBwb2ludGVyLWV2ZW50czogdmFyKC0tc2JiLW9wdGlvbnMtcG9pbnRlci1ldmVudHMpO1xuXG4gIEBpbmNsdWRlIHNiYi5pZi1mb3JjZWQtY29sb3JzIHtcbiAgICBib3JkZXI6IHZhcigtLXNiYi1ib3JkZXItd2lkdGgtMXgpIHNvbGlkIENhbnZhc1RleHQ7XG4gICAgYm9yZGVyLXRvcDogbm9uZTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIG9wZW4ge1xuICBmcm9tIHtcbiAgICB0cmFuc2Zvcm06IHZhcigtLXNiYi1vcHRpb25zLXBhbmVsLWFuaW1hdGlvbi10cmFuc2Zvcm0pO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cblxuICB0byB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBjbG9zZSB7XG4gIGZyb20ge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5cbiAgdG8ge1xuICAgIHRyYW5zZm9ybTogdmFyKC0tc2JiLW9wdGlvbnMtcGFuZWwtYW5pbWF0aW9uLXRyYW5zZm9ybSk7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxufVxuIiwiaW1wb3J0IHsgUmVzaXplQ29udHJvbGxlciB9IGZyb20gJ0BsaXQtbGFicy9vYnNlcnZlcnMvcmVzaXplLWNvbnRyb2xsZXIuanMnO1xuaW1wb3J0IHtcbiAgdHlwZSBDU1NSZXN1bHRHcm91cCxcbiAgaHRtbCxcbiAgaXNTZXJ2ZXIsXG4gIG5vdGhpbmcsXG4gIHR5cGUgUHJvcGVydHlEZWNsYXJhdGlvbixcbiAgdHlwZSBQcm9wZXJ0eVZhbHVlcyxcbiAgdHlwZSBUZW1wbGF0ZVJlc3VsdCxcbiAgdW5zYWZlQ1NTLFxufSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgcHJvcGVydHkgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5pbXBvcnQgeyByZWYgfSBmcm9tICdsaXQvZGlyZWN0aXZlcy9yZWYuanMnO1xuXG5pbXBvcnQge1xuICBTYmJPcGVuQ2xvc2VCYXNlRWxlbWVudCxcbiAgU2JiUHJvcGVydHlXYXRjaGVyQ29udHJvbGxlcixcbiAgU2JiRXNjYXBhYmxlT3ZlcmxheUNvbnRyb2xsZXIsXG4gIGZvcmNlVHlwZSxcbiAgaWRSZWZlcmVuY2UsXG4gIGlzTGVhbixcbiAgaXNTYWZhcmksXG4gIGlzWmVyb0FuaW1hdGlvbkR1cmF0aW9uLFxuICBTYmJOZWdhdGl2ZU1peGluLFxuICBpc0V2ZW50T25FbGVtZW50LFxuICBvdmVybGF5R2FwRml4Q29ybmVycyxcbiAgcmVtb3ZlQXJpYUNvbWJvQm94QXR0cmlidXRlcyxcbiAgc2V0T3ZlcmxheVBvc2l0aW9uLFxuICBib3hTaXppbmdTdHlsZXMsXG59IGZyb20gJy4uL2NvcmUudHMnO1xuaW1wb3J0IHR5cGUgeyBTYmJGb3JtRmllbGRFbGVtZW50IH0gZnJvbSAnLi4vZm9ybS1maWVsZC9mb3JtLWZpZWxkL2Zvcm0tZmllbGQuY29tcG9uZW50LnRzJztcbmltcG9ydCB0eXBlIHsgU2JiT3B0aW9uQmFzZUVsZW1lbnQgfSBmcm9tICcuLi9vcHRpb24ucHVyZS50cyc7XG5cbmltcG9ydCBzdHlsZSBmcm9tICcuL2F1dG9jb21wbGV0ZS1iYXNlLWVsZW1lbnQuc2Nzcz9pbmxpbmUnO1xuXG4vKipcbiAqIE9uIFNhZmFyaSwgdGhlIGFyaWEgcm9sZSAnbGlzdGJveCcgbXVzdCBiZSBvbiB0aGUgaG9zdCBlbGVtZW50LCBvciBlbHNlIFZvaWNlT3ZlciB3b24ndCB3b3JrIGF0IGFsbC5cbiAqIE9uIHRoZSBvdGhlciBoYW5kLCBKQVdTIGFuZCBOVkRBIG5lZWQgdGhlIHJvbGUgdG8gYmUgXCJjbG9zZXJcIiB0byB0aGUgb3B0aW9ucywgb3IgZWxzZSBvcHRncm91cHMgd29uJ3Qgd29yay5cbiAqL1xuY29uc3QgYXJpYVJvbGVPbkhvc3QgPSBpc1NhZmFyaTtcblxuLyoqXG4gKiBCYXNlIGNsYXNzIGZvciBhdXRvY29tcGxldGUgY29tcG9uZW50cy5cbiAqXG4gKiBAZXZlbnQge0V2ZW50fSBjaGFuZ2UgLSBUaGUgY2hhbmdlIGV2ZW50IGlzIGZpcmVkIG9uIHRoZSBhdXRvY29tcGxldGUncyB0cmlnZ2VyIHdoZW4gdGhlIHVzZXIgbW9kaWZpZXMgdGhlIGVsZW1lbnQncyB2YWx1ZS4gVW5saWtlIHRoZSBpbnB1dCBldmVudCwgdGhlIGNoYW5nZSBldmVudCBpcyBub3QgbmVjZXNzYXJpbHkgZmlyZWQgZm9yIGVhY2ggYWx0ZXJhdGlvbiB0byBhbiBlbGVtZW50J3MgdmFsdWUuXG4gKiBAZXZlbnQge0lucHV0RXZlbnR9IGlucHV0IC0gVGhlIGlucHV0IGV2ZW50IGZpcmVzICBvbiB0aGUgYXV0b2NvbXBsZXRlJ3MgdHJpZ2dlciB3aGVuIHRoZSB2YWx1ZSBoYXMgYmVlbiBjaGFuZ2VkIGFzIGEgZGlyZWN0IHJlc3VsdCBvZiBhIHVzZXIgYWN0aW9uLlxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgU2JiQXV0b2NvbXBsZXRlQmFzZUVsZW1lbnQ8VCA9IHN0cmluZz4gZXh0ZW5kcyBTYmJOZWdhdGl2ZU1peGluKFxuICBTYmJPcGVuQ2xvc2VCYXNlRWxlbWVudCxcbikge1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHN0eWxlczogQ1NTUmVzdWx0R3JvdXAgPSBbYm94U2l6aW5nU3R5bGVzLCB1bnNhZmVDU1Moc3R5bGUpXTtcblxuICAvKipcbiAgICogVGhlIGVsZW1lbnQgd2hlcmUgdGhlIGF1dG9jb21wbGV0ZSB3aWxsIGF0dGFjaC5cbiAgICogSWYgbm90IHNldCwgYXMgZmFsbGJhY2sgdGhlcmUgYXJlIHR3byBlbGVtZW50cyB3aGljaCBjYW4gYWN0IGFzIG9yaWdpbiB3aXRoIGZvbGxvd2luZyBwcmlvcml0eSBvcmRlcjpcbiAgICogMS4gYHNiYi1mb3JtLWZpZWxkYCBpZiBpdCBpcyBhbiBhbmNlc3Rvci5cbiAgICogMi4gdHJpZ2dlciBlbGVtZW50IGlmIHNldC5cbiAgICpcbiAgICogRm9yIGF0dHJpYnV0ZSB1c2FnZSwgcHJvdmlkZSBhbiBpZCByZWZlcmVuY2UuXG4gICAqL1xuICBAaWRSZWZlcmVuY2UoKVxuICBAcHJvcGVydHkoKVxuICBwdWJsaWMgYWNjZXNzb3Igb3JpZ2luOiBIVE1MRWxlbWVudCB8IG51bGwgPSBudWxsO1xuXG4gIC8qKlxuICAgKiBUaGUgaW5wdXQgZWxlbWVudCB0aGF0IHdpbGwgdHJpZ2dlciB0aGUgYXV0b2NvbXBsZXRlIG9wZW5pbmcuXG4gICAqIEJ5IGRlZmF1bHQsIHRoZSBhdXRvY29tcGxldGUgd2lsbCBvcGVuIG9uIGZvY3VzLCBjbGljaywgaW5wdXQgb3IgYEFycm93RG93bmAga2V5cHJlc3Mgb2YgdGhlICd0cmlnZ2VyJyBlbGVtZW50LlxuICAgKiBJZiBub3Qgc2V0LCB3aWxsIHNlYXJjaCBmb3IgdGhlIGZpcnN0ICdpbnB1dCcgY2hpbGQgb2YgYSAnc2JiLWZvcm0tZmllbGQnIGFuY2VzdG9yLlxuICAgKlxuICAgKiBGb3IgYXR0cmlidXRlIHVzYWdlLCBwcm92aWRlIGFuIGlkIHJlZmVyZW5jZS5cbiAgICovXG4gIEBpZFJlZmVyZW5jZSgpXG4gIEBwcm9wZXJ0eSgpXG4gIHB1YmxpYyBhY2Nlc3NvciB0cmlnZ2VyOiBIVE1MSW5wdXRFbGVtZW50IHwgbnVsbCA9IG51bGw7XG5cbiAgLyoqIFdoZXRoZXIgdGhlIGljb24gc3BhY2UgaXMgcHJlc2VydmVkIHdoZW4gbm8gaWNvbiBpcyBzZXQuICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdwcmVzZXJ2ZS1pY29uLXNwYWNlJywgcmVmbGVjdDogdHJ1ZSwgdHlwZTogQm9vbGVhbiB9KVxuICBwdWJsaWMgYWNjZXNzb3IgcHJlc2VydmVJY29uU3BhY2U6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKiogV2hldGhlciB0aGUgZmlyc3Qgb3B0aW9uIGlzIGF1dG9tYXRpY2FsbHkgYWN0aXZhdGVkIHdoZW4gdGhlIGF1dG9jb21wbGV0ZSBpcyBvcGVuZWQuICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdhdXRvLWFjdGl2ZS1maXJzdC1vcHRpb24nLCB0eXBlOiBCb29sZWFuIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBhdXRvQWN0aXZlRmlyc3RPcHRpb246IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKiogRnVuY3Rpb24gdGhhdCBtYXBzIGFuIG9wdGlvbidzIGNvbnRyb2wgdmFsdWUgdG8gaXRzIGRpc3BsYXkgdmFsdWUgaW4gdGhlIHRyaWdnZXIuICovXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogZmFsc2UgfSlcbiAgcHVibGljIGFjY2Vzc29yIGRpc3BsYXlXaXRoOiAoKHZhbHVlOiBUKSA9PiBzdHJpbmcpIHwgbnVsbCA9IG51bGw7XG5cbiAgLyoqXG4gICAqIFNpemUgdmFyaWFudCwgZWl0aGVyIG0gb3Igcy5cbiAgICogQGRlZmF1bHQgJ20nIC8gJ3MnIChsZWFuKVxuICAgKi9cbiAgQHByb3BlcnR5KHsgcmVmbGVjdDogdHJ1ZSB9KSBwdWJsaWMgYWNjZXNzb3Igc2l6ZTogJ20nIHwgJ3MnID0gaXNMZWFuKCkgPyAncycgOiAnbSc7XG5cbiAgLyoqIFdoZXRoZXIgdGhlIGFjdGl2ZSBvcHRpb24gc2hvdWxkIGJlIHNlbGVjdGVkIGFzIHRoZSB1c2VyIGlzIG5hdmlnYXRpbmcuICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdhdXRvLXNlbGVjdC1hY3RpdmUtb3B0aW9uJywgdHlwZTogQm9vbGVhbiB9KVxuICBwdWJsaWMgYWNjZXNzb3IgYXV0b1NlbGVjdEFjdGl2ZU9wdGlvbjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBXaGVuIGVuYWJsZWQsIHRoZSBhY3RpdmUgb3B0aW9uIGlzIGF1dG9tYXRpY2FsbHkgc2VsZWN0ZWQgb24gYmx1ci5cbiAgICogVGhpcyBpcyBhbiBleHBlcmltZW50YWwgZmVhdHVyZS4gSXQgbWlnaHQgYmUgc3ViamVjdCB0byBjaGFuZ2VzLlxuICAgKi9cbiAgQGZvcmNlVHlwZSgpXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ2F1dG8tc2VsZWN0LWFjdGl2ZS1vcHRpb24tb24tYmx1cicsIHR5cGU6IEJvb2xlYW4gfSlcbiAgcHVibGljIGFjY2Vzc29yIGF1dG9TZWxlY3RBY3RpdmVPcHRpb25PbkJsdXI6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKipcbiAgICogV2hldGhlciB0aGUgdXNlciBpcyByZXF1aXJlZCB0byBtYWtlIGEgc2VsZWN0aW9uIHdoZW4gdGhleSdyZSBpbnRlcmFjdGluZyB3aXRoIHRoZVxuICAgKiBhdXRvY29tcGxldGUuIElmIHRoZSB1c2VyIG1vdmVzIGF3YXkgZnJvbSB0aGUgYXV0b2NvbXBsZXRlIHdpdGhvdXQgc2VsZWN0aW5nIGFuIG9wdGlvbiBmcm9tXG4gICAqIHRoZSBsaXN0LCB0aGUgdmFsdWUgd2lsbCBiZSByZXNldC4gSWYgdGhlIHVzZXIgb3BlbnMgdGhlIHBhbmVsIGFuZCBjbG9zZXMgaXQgd2l0aG91dFxuICAgKiBpbnRlcmFjdGluZyBvciBzZWxlY3RpbmcgYSB2YWx1ZSwgdGhlIGluaXRpYWwgdmFsdWUgd2lsbCBiZSBrZXB0LlxuICAgKi9cbiAgQGZvcmNlVHlwZSgpXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ3JlcXVpcmUtc2VsZWN0aW9uJywgdHlwZTogQm9vbGVhbiB9KVxuICBwdWJsaWMgYWNjZXNzb3IgcmVxdWlyZVNlbGVjdGlvbjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBUaGUgcG9zaXRpb24gb2YgdGhlIGF1dG9jb21wbGV0ZSBwYW5lbCByZWxhdGl2ZSB0byB0aGUgdHJpZ2dlci5cbiAgICogQGRlZmF1bHQgJ2F1dG8nXG4gICAqL1xuICBAcHJvcGVydHkoKVxuICBwdWJsaWMgYWNjZXNzb3IgcG9zaXRpb246ICdhdXRvJyB8ICdhYm92ZScgfCAnYmVsb3cnID0gJ2F1dG8nO1xuXG4gIC8qKiBSZXR1cm5zIHRoZSBlbGVtZW50IHdoZXJlIHRoZSBhdXRvY29tcGxldGUgb3ZlcmxheSBpcyBhdHRhY2hlZCB0by4gKi9cbiAgcHVibGljIGdldCBvcmlnaW5FbGVtZW50KCk6IEhUTUxFbGVtZW50IHwgbnVsbCB7XG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMub3JpZ2luID8/XG4gICAgICB0aGlzLmNsb3Nlc3Q/Lignc2JiLWZvcm0tZmllbGQnKT8uc2hhZG93Um9vdD8ucXVlcnlTZWxlY3Rvcj8uKCcjb3ZlcmxheS1hbmNob3InKSA/P1xuICAgICAgdGhpcy50cmlnZ2VyID8/XG4gICAgICBudWxsXG4gICAgKTtcbiAgfVxuXG4gIC8qKiBSZXR1cm5zIHRoZSB0cmlnZ2VyIGVsZW1lbnQuICovXG4gIHB1YmxpYyBnZXQgdHJpZ2dlckVsZW1lbnQoKTogSFRNTElucHV0RWxlbWVudCB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLl90cmlnZ2VyRWxlbWVudCA/PyBudWxsO1xuICB9XG4gIHByaXZhdGUgX3RyaWdnZXJFbGVtZW50PzogSFRNTElucHV0RWxlbWVudCB8IG51bGw7XG5cbiAgcHJvdGVjdGVkIGFic3RyYWN0IG92ZXJsYXlJZDogc3RyaW5nO1xuICBwcm90ZWN0ZWQgYWJzdHJhY3QgcGFuZWxSb2xlOiBzdHJpbmc7XG4gIHByb3RlY3RlZCBhY3RpdmVPcHRpb246IFNiYk9wdGlvbkJhc2VFbGVtZW50PFQ+IHwgbnVsbCA9IG51bGw7XG4gIHByb3RlY3RlZCBwZW5kaW5nQXV0b1NlbGVjdGVkT3B0aW9uOiBTYmJPcHRpb25CYXNlRWxlbWVudDxUPiB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIF9yZXNpemVPYnNlcnZlciA9IG5ldyBSZXNpemVDb250cm9sbGVyKHRoaXMsIHtcbiAgICB0YXJnZXQ6IG51bGwsXG4gICAgc2tpcEluaXRpYWw6IHRydWUsXG4gICAgLy8gVGhpcyBpcyBhbiBJSUZFLCBiZWNhdXNlIHdlIG5lZWQgdG8ga2VlcCB0cmFjayBvZiB0aGUgdGltZW91dCBzdGF0ZVxuICAgIC8vIGZvciBkZWJvdW5jaW5nIHRoZSByZXNpemUgY2FsbGJhY2tzLlxuICAgIGNhbGxiYWNrOiAoKCkgPT4ge1xuICAgICAgbGV0IHRpbWVvdXRJZDogUmV0dXJuVHlwZTx0eXBlb2Ygc2V0VGltZW91dD47XG4gICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICBjbGVhclRpbWVvdXQodGltZW91dElkKTtcbiAgICAgICAgdGltZW91dElkID0gc2V0VGltZW91dCgoKSA9PiB0aGlzLl9zZXRPdmVybGF5UG9zaXRpb24oKSwgMTApO1xuICAgICAgfTtcbiAgICB9KSgpLFxuICB9KTtcbiAgLyoqIExpc3RlbnMgdG8gdGhlIGNoYW5nZXMgb24gdGhlIGBkaXNhYmxlZGAgb3IgYHJlYWRvbmx5YCBhdHRyaWJ1dGUgb2YgdGhlIHRyaWdnZXIuICovXG4gIHByaXZhdGUgX3RyaWdnZXJBdHRyaWJ1dGVPYnNlcnZlciA9ICFpc1NlcnZlclxuICAgID8gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoKG11dGF0aW9uczogTXV0YXRpb25SZWNvcmRbXSk6IHZvaWQgPT4ge1xuICAgICAgICBjb25zdCBpbnB1dCA9IG11dGF0aW9uc1swXS50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudDtcbiAgICAgICAgaWYgKGlucHV0Lmhhc0F0dHJpYnV0ZSgnZGlzYWJsZWQnKSB8fCBpbnB1dC5oYXNBdHRyaWJ1dGUoJ3JlYWRvbmx5JykpIHtcbiAgICAgICAgICB0aGlzLmNsb3NlKCk7XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgOiBudWxsO1xuICBwcml2YXRlIF9vdmVybGF5ITogSFRNTEVsZW1lbnQ7XG4gIHByaXZhdGUgX29wdGlvbkNvbnRhaW5lciE6IEhUTUxFbGVtZW50O1xuICBwcml2YXRlIF90cmlnZ2VyQWJvcnRDb250cm9sbGVyITogQWJvcnRDb250cm9sbGVyO1xuICBwcml2YXRlIF9vcGVuUGFuZWxFdmVudHNDb250cm9sbGVyITogQWJvcnRDb250cm9sbGVyO1xuICBwcml2YXRlIF9pc1BvaW50ZXJEb3duRXZlbnRPbk1lbnU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHJpdmF0ZSBfZXNjYXBhYmxlT3ZlcmxheUNvbnRyb2xsZXIgPSBuZXcgU2JiRXNjYXBhYmxlT3ZlcmxheUNvbnRyb2xsZXIodGhpcyk7XG4gIHByaXZhdGUgX29wdGlvbnNDb3VudCA9IDA7XG4gIHByaXZhdGUgX3ByZXZpb3VzRWxlbWVudHM/OiBFbGVtZW50W107XG5cbiAgLyoqIFRyYWNrcyBpbnB1dCBmcm9tIGtleWJvYXJkLiAqL1xuICBwcml2YXRlIF9sYXN0VXNlcklucHV0OiBzdHJpbmcgfCBudWxsID0gbnVsbDtcblxuICAvKiogSWYgdHJ1ZSwgdGhlICdjaGFuZ2UnIGV2ZW50IHNvdXJjZSBpcyBhbiBvcHRpb24gc2VsZWN0aW9uIG9yIGEgJ3JlcXVpcmVTZWxlY3Rpb24nIGZpZWxkIGNsZWFudXAgKi9cbiAgcHJpdmF0ZSBfaXNDdXN0b21DaGFuZ2VFdmVudCA9IGZhbHNlO1xuXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBnZXQgb3B0aW9ucygpOiBTYmJPcHRpb25CYXNlRWxlbWVudDxUPltdO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcj8uKCdvcHRpb25zZWxlY3RlZCcsIChlOiBFdmVudCkgPT4gdGhpcy5vbk9wdGlvblNlbGVjdGVkKGUpKTtcbiAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/LignybVvcHRncm91cHNsb3RjaGFuZ2UnLCAoKSA9PiB0aGlzLl9oYW5kbGVTbG90Y2hhbmdlKCksIHtcbiAgICAgIGNhcHR1cmU6IHRydWUsXG4gICAgfSk7XG4gICAgdGhpcy5hZGRDb250cm9sbGVyKFxuICAgICAgbmV3IFNiYlByb3BlcnR5V2F0Y2hlckNvbnRyb2xsZXIoXG4gICAgICAgIHRoaXMsXG4gICAgICAgICgpID0+IHRoaXMuY2xvc2VzdDxTYmJGb3JtRmllbGRFbGVtZW50Pignc2JiLWZvcm0tZmllbGQnKSxcbiAgICAgICAge1xuICAgICAgICAgIG5lZ2F0aXZlOiAoZSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5uZWdhdGl2ZSA9IGUubmVnYXRpdmU7XG4gICAgICAgICAgICB0aGlzLnN5bmNOZWdhdGl2ZSgpO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgYm9yZGVybGVzczogKGUpID0+IHRoaXMudG9nZ2xlU3RhdGUoJ29wdGlvbi1wYW5lbC1vcmlnaW4tYm9yZGVybGVzcycsIGUuYm9yZGVybGVzcyksXG4gICAgICAgIH0sXG4gICAgICApLFxuICAgICk7XG4gIH1cblxuICBwcm90ZWN0ZWQgYWJzdHJhY3Qgc3luY05lZ2F0aXZlKCk6IHZvaWQ7XG4gIHByb3RlY3RlZCBhYnN0cmFjdCBzZXRUcmlnZ2VyQXR0cmlidXRlcyhlbGVtZW50OiBIVE1MSW5wdXRFbGVtZW50KTogdm9pZDtcbiAgcHJvdGVjdGVkIGFic3RyYWN0IG9wZW5lZFBhbmVsS2V5Ym9hcmRJbnRlcmFjdGlvbihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQ7XG4gIHByb3RlY3RlZCBhYnN0cmFjdCBzZWxlY3RCeUtleWJvYXJkKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZDtcbiAgcHJvdGVjdGVkIGFic3RyYWN0IHNldE5leHRBY3RpdmVPcHRpb24oZXZlbnQ/OiBLZXlib2FyZEV2ZW50KTogdm9pZDtcbiAgcHJvdGVjdGVkIGFic3RyYWN0IHJlc2V0QWN0aXZlRWxlbWVudCgpOiB2b2lkO1xuXG4gIC8qKiBPcGVucyB0aGUgYXV0b2NvbXBsZXRlLiAqL1xuICBwdWJsaWMgb3BlbigpOiB2b2lkIHtcbiAgICBpZiAoXG4gICAgICB0aGlzLnN0YXRlID09PSAnb3BlbmluZycgfHxcbiAgICAgIHRoaXMuc3RhdGUgPT09ICdvcGVuZWQnIHx8XG4gICAgICAhdGhpcy5fb3ZlcmxheSB8fFxuICAgICAgdGhpcy5vcHRpb25zLmxlbmd0aCA9PT0gMCB8fFxuICAgICAgdGhpcy5fcmVhZG9ubHkoKSB8fFxuICAgICAgIXRoaXMuZGlzcGF0Y2hCZWZvcmVPcGVuRXZlbnQoKVxuICAgICkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuc2hvd1BvcG92ZXI/LigpO1xuICAgIHRoaXMuc3RhdGUgPSAnb3BlbmluZyc7XG4gICAgdGhpcy50cmlnZ2VyRWxlbWVudD8udG9nZ2xlQXR0cmlidXRlKCdkYXRhLWV4cGFuZGVkJywgdHJ1ZSk7XG4gICAgY29uc3Qgb3JpZ2luRWxlbWVudCA9IHRoaXMub3JpZ2luRWxlbWVudDtcbiAgICBpZiAoIW9yaWdpbkVsZW1lbnQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ0Nhbm5vdCBmaW5kIHRoZSBvcmlnaW4gZWxlbWVudC4gUGxlYXNlIHNwZWNpZnkgYSB2YWxpZCBlbGVtZW50IG9yIGNoZWNrIHRoZSB1c2FnZSBvZiB0aGUgXCJvcmlnaW5cIiBwcm9wZXJ0eSBmcm9tIHRoZSBkb2N1bWVudGF0aW9uJyxcbiAgICAgICk7XG4gICAgfVxuICAgIHRoaXMuX3NldE92ZXJsYXlQb3NpdGlvbihvcmlnaW5FbGVtZW50KTtcbiAgICB0aGlzLl9zZXROZXh0QWN0aXZlT3B0aW9uSWZBdXRvQWN0aXZlRmlyc3RPcHRpb24oKTtcbiAgICB0aGlzLl9hdHRhY2hPcGVuUGFuZWxFdmVudHMoKTtcbiAgICB0aGlzLl9lc2NhcGFibGVPdmVybGF5Q29udHJvbGxlci5jb25uZWN0KCk7XG5cbiAgICAvLyBJZiB0aGUgYW5pbWF0aW9uIGR1cmF0aW9uIGlzIHplcm8sIHRoZSBhbmltYXRpb25lbmQgZXZlbnQgaXMgbm90IGFsd2F5cyBmaXJlZCByZWxpYWJseS5cbiAgICAvLyBJbiB0aGlzIGNhc2Ugd2UgZGlyZWN0bHkgc2V0IHRoZSBgb3BlbmVkYCBzdGF0ZS5cbiAgICBpZiAodGhpcy5faXNaZXJvQW5pbWF0aW9uRHVyYXRpb24oKSkge1xuICAgICAgdGhpcy5faGFuZGxlT3BlbmluZygpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBDbG9zZXMgdGhlIGF1dG9jb21wbGV0ZS4gKi9cbiAgcHVibGljIGNsb3NlKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnN0YXRlID09PSAnY2xvc2luZycgfHwgdGhpcy5zdGF0ZSA9PT0gJ2Nsb3NlZCcgfHwgIXRoaXMuZGlzcGF0Y2hCZWZvcmVDbG9zZUV2ZW50KCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBBICdwZW5kaW5nIHNlbGVjdGlvbicgaXMgY29uZmlybWVkIG9uIHBhbmVsIGNsb3NlXG4gICAgaWYgKHRoaXMucGVuZGluZ0F1dG9TZWxlY3RlZE9wdGlvbikge1xuICAgICAgdGhpcy5wZW5kaW5nQXV0b1NlbGVjdGVkT3B0aW9uLnNlbGVjdGVkID0gdHJ1ZTtcbiAgICAgIHRoaXMuX3NldFZhbHVlQW5kRGlzcGF0Y2hFdmVudHModGhpcy5wZW5kaW5nQXV0b1NlbGVjdGVkT3B0aW9uLCB0cnVlKTtcbiAgICB9XG5cbiAgICB0aGlzLnN0YXRlID0gJ2Nsb3NpbmcnO1xuICAgIHRoaXMudHJpZ2dlckVsZW1lbnQ/LnJlbW92ZUF0dHJpYnV0ZSgnZGF0YS1leHBhbmRlZCcpO1xuICAgIHRoaXMuX29wZW5QYW5lbEV2ZW50c0NvbnRyb2xsZXIuYWJvcnQoKTtcbiAgICBpZiAodGhpcy5vcmlnaW5FbGVtZW50KSB7XG4gICAgICB0aGlzLl9yZXNpemVPYnNlcnZlci51bm9ic2VydmUodGhpcy5vcmlnaW5FbGVtZW50KTtcbiAgICB9XG5cbiAgICAvLyBJZiB0aGUgYW5pbWF0aW9uIGR1cmF0aW9uIGlzIHplcm8sIHRoZSBhbmltYXRpb25lbmQgZXZlbnQgaXMgbm90IGFsd2F5cyBmaXJlZCByZWxpYWJseS5cbiAgICAvLyBJbiB0aGlzIGNhc2Ugd2UgZGlyZWN0bHkgc2V0IHRoZSBgY2xvc2VkYCBzdGF0ZS5cbiAgICBpZiAodGhpcy5faXNaZXJvQW5pbWF0aW9uRHVyYXRpb24oKSkge1xuICAgICAgdGhpcy5faGFuZGxlQ2xvc2luZygpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2lzWmVyb0FuaW1hdGlvbkR1cmF0aW9uKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBpc1plcm9BbmltYXRpb25EdXJhdGlvbih0aGlzLCAnLS1zYmItb3B0aW9ucy1wYW5lbC1hbmltYXRpb24tZHVyYXRpb24nKTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICB0aGlzLnBvcG92ZXIgPSAnbWFudWFsJztcbiAgICBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpO1xuICAgIGlmIChhcmlhUm9sZU9uSG9zdCkge1xuICAgICAgdGhpcy5pZCB8fD0gdGhpcy5vdmVybGF5SWQ7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuaGFzVXBkYXRlZCkge1xuICAgICAgdGhpcy5fY29tcG9uZW50U2V0dXAoKTtcbiAgICB9XG4gICAgdGhpcy5zeW5jTmVnYXRpdmUoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSB3aWxsVXBkYXRlKGNoYW5nZWRQcm9wZXJ0aWVzOiBQcm9wZXJ0eVZhbHVlczx0aGlzPik6IHZvaWQge1xuICAgIHN1cGVyLndpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXMpO1xuXG4gICAgaWYgKGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygnbmVnYXRpdmUnKSkge1xuICAgICAgdGhpcy5zeW5jTmVnYXRpdmUoKTtcbiAgICB9XG5cbiAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdhdXRvQWN0aXZlRmlyc3RPcHRpb24nKSAmJiB0aGlzLmlzT3Blbikge1xuICAgICAgdGhpcy5fc2V0TmV4dEFjdGl2ZU9wdGlvbklmQXV0b0FjdGl2ZUZpcnN0T3B0aW9uKCk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGZpcnN0VXBkYXRlZChjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXM8dGhpcz4pOiB2b2lkIHtcbiAgICBzdXBlci5maXJzdFVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXMpO1xuICAgIHRoaXMuX2NvbXBvbmVudFNldHVwKCk7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgZGlzY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKTtcbiAgICB0aGlzLl90cmlnZ2VyRWxlbWVudCA9IG51bGw7XG4gICAgdGhpcy5fdHJpZ2dlckFib3J0Q29udHJvbGxlcj8uYWJvcnQoKTtcbiAgICB0aGlzLl9vcGVuUGFuZWxFdmVudHNDb250cm9sbGVyPy5hYm9ydCgpO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIHJlcXVlc3RVcGRhdGUoXG4gICAgbmFtZT86IFByb3BlcnR5S2V5LFxuICAgIG9sZFZhbHVlPzogdW5rbm93bixcbiAgICBvcHRpb25zPzogUHJvcGVydHlEZWNsYXJhdGlvbixcbiAgKTogdm9pZCB7XG4gICAgc3VwZXIucmVxdWVzdFVwZGF0ZShuYW1lLCBvbGRWYWx1ZSwgb3B0aW9ucyk7XG5cbiAgICBpZiAoaXNTZXJ2ZXIgfHwgIXRoaXMuaGFzVXBkYXRlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoIW5hbWUgfHwgbmFtZSA9PT0gJ3RyaWdnZXInKSB7XG4gICAgICB0aGlzLl9jb25maWd1cmVUcmlnZ2VyKCk7XG4gICAgfSBlbHNlIGlmICgoIW5hbWUgfHwgbmFtZSA9PT0gJ29yaWdpbicpICYmIHRoaXMuaXNPcGVuKSB7XG4gICAgICB0aGlzLl9zZXRPdmVybGF5UG9zaXRpb24oKTtcbiAgICB9XG4gIH1cblxuICAvKiogV2hlbiBhbiBvcHRpb24gaXMgc2VsZWN0ZWQsIHVwZGF0ZSB0aGUgaW5wdXQgdmFsdWUgYW5kIGNsb3NlIHRoZSBhdXRvY29tcGxldGUuICovXG4gIHByb3RlY3RlZCBvbk9wdGlvblNlbGVjdGVkKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldCBhcyBTYmJPcHRpb25CYXNlRWxlbWVudDxUPjtcbiAgICB0aGlzLl9zZXRWYWx1ZUFuZERpc3BhdGNoRXZlbnRzKHRhcmdldCk7XG4gICAgdGhpcy5jbG9zZSgpO1xuICB9XG5cbiAgLyoqIEBkZXByZWNhdGVkICovXG4gIHByb3RlY3RlZCBvbk9wdGlvbkFycm93c1NlbGVjdGVkKF9hY3RpdmVPcHRpb246IFNiYk9wdGlvbkJhc2VFbGVtZW50PFQ+KTogdm9pZCB7fVxuXG4gIC8qKlxuICAgKiBBICdwZW5kaW5nIHNlbGVjdGlvbicgc2V0cyB0aGUgb3B0aW9uIHZhbHVlIGluIHRoZSBpbnB1dCBlbGVtZW50IHdpdGhvdXQgZW1pdHRpbmcgZXZlbnRzLlxuICAgKiBBICdwZW5kaW5nIHNlbGVjdGlvbicgaXMgY29uZmlybWVkIHdoZW4gdGhlIHBhbmVsIGNsb3Nlcy4gQW55IG90aGVyIHVzZXIgaW50ZXJhY3Rpb25cbiAgICogd2lsbCByZXNldCB0aGUgcGVuZGluZyB2YWx1ZS5cbiAgICovXG4gIHByb3RlY3RlZCBzZXRQZW5kaW5nU2VsZWN0aW9uKGFjdGl2ZU9wdGlvbjogU2JiT3B0aW9uQmFzZUVsZW1lbnQ8VD4pOiB2b2lkIHtcbiAgICB0aGlzLnBlbmRpbmdBdXRvU2VsZWN0ZWRPcHRpb24gPSBhY3RpdmVPcHRpb247XG4gICAgdGhpcy5fc2V0SW5wdXRWYWx1ZShhY3RpdmVPcHRpb24pO1xuICB9XG5cbiAgcHJpdmF0ZSBfc2V0VmFsdWVBbmREaXNwYXRjaEV2ZW50cyhcbiAgICBzZWxlY3RlZE9wdGlvbjogU2JiT3B0aW9uQmFzZUVsZW1lbnQ8VD4sXG4gICAgcHJldmVudEZvY3VzID0gZmFsc2UsXG4gICk6IHZvaWQge1xuICAgIC8vIERlc2VsZWN0IHRoZSBwcmV2aW91cyBvcHRpb25zXG4gICAgdGhpcy5vcHRpb25zXG4gICAgICAuZmlsdGVyKChvcHRpb24pID0+IG9wdGlvbi5pZCAhPT0gc2VsZWN0ZWRPcHRpb24uaWQgJiYgb3B0aW9uLnNlbGVjdGVkKVxuICAgICAgLmZvckVhY2goKG9wdGlvbikgPT4gKG9wdGlvbi5zZWxlY3RlZCA9IGZhbHNlKSk7XG4gICAgdGhpcy5wZW5kaW5nQXV0b1NlbGVjdGVkT3B0aW9uID0gbnVsbDtcblxuICAgIGlmICh0aGlzLnRyaWdnZXJFbGVtZW50KSB7XG4gICAgICB0aGlzLl9zZXRJbnB1dFZhbHVlKHNlbGVjdGVkT3B0aW9uKTtcblxuICAgICAgLy8gTWFudWFsbHkgdHJpZ2dlciB0aGUgY2hhbmdlIGV2ZW50c1xuICAgICAgdGhpcy5faXNDdXN0b21DaGFuZ2VFdmVudCA9IHRydWU7XG4gICAgICB0aGlzLnRyaWdnZXJFbGVtZW50LmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCdjaGFuZ2UnLCB7IGJ1YmJsZXM6IHRydWUgfSkpO1xuICAgICAgdGhpcy50cmlnZ2VyRWxlbWVudC5kaXNwYXRjaEV2ZW50KG5ldyBJbnB1dEV2ZW50KCdpbnB1dCcsIHsgYnViYmxlczogdHJ1ZSwgY29tcG9zZWQ6IHRydWUgfSkpO1xuXG4gICAgICAvLyBEaXNwYXRjaGluZyB0aGUgaW5wdXQgZXZlbnQgY2hhbmdlcyBfbGFzdElucHV0LCB3aGljaCBzaG91bGQgc3RheSBlbXB0eSBzaW5jZSB0aGVyZSdzIG5vIGtleWJvYXJkIGludGVyYWN0aW9uLlxuICAgICAgdGhpcy5fbGFzdFVzZXJJbnB1dCA9IG51bGw7XG5cbiAgICAgIC8vIEN1c3RvbSBpbnB1dCBldmVudCBlbWl0dGVkIHdoZW4gaW5wdXQgdmFsdWUgY2hhbmdlcyBhZnRlciBhbiBvcHRpb24gaXMgc2VsZWN0ZWRcbiAgICAgIHRoaXMudHJpZ2dlckVsZW1lbnQuZGlzcGF0Y2hFdmVudChcbiAgICAgICAgbmV3IEN1c3RvbUV2ZW50PHsgb3B0aW9uOiBTYmJPcHRpb25CYXNlRWxlbWVudDxUPiB9PignaW5wdXRBdXRvY29tcGxldGUnLCB7XG4gICAgICAgICAgZGV0YWlsOiB7IG9wdGlvbjogc2VsZWN0ZWRPcHRpb24gfSxcbiAgICAgICAgfSksXG4gICAgICApO1xuICAgICAgaWYgKCFwcmV2ZW50Rm9jdXMpIHtcbiAgICAgICAgdGhpcy50cmlnZ2VyRWxlbWVudC5mb2N1cygpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKiBTZXQgdGhlIG9wdGlvbiB2YWx1ZSB3aXRoaW4gdGhlIGlucHV0IGVsZW1lbnQgKi9cbiAgcHJpdmF0ZSBfc2V0SW5wdXRWYWx1ZShvcHRpb246IFNiYk9wdGlvbkJhc2VFbGVtZW50PFQ+KTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnRyaWdnZXJFbGVtZW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gR2l2ZW4gYSB2YWx1ZSwgcmV0dXJucyB0aGUgc3RyaW5nIHRoYXQgc2hvdWxkIGJlIHNob3duIHdpdGhpbiB0aGUgaW5wdXQuXG4gICAgY29uc3QgdG9EaXNwbGF5ID0gdGhpcy5kaXNwbGF5V2l0aD8uKG9wdGlvbi52YWx1ZSBhcyBUKSA/PyBvcHRpb24udmFsdWU7XG5cbiAgICAvLyBTZXQgdGhlIG9wdGlvbiB2YWx1ZVxuICAgIC8vIEluIG9yZGVyIHRvIHN1cHBvcnQgUmVhY3Qgb25DaGFuZ2UgZXZlbnQsIHdlIGhhdmUgdG8gZ2V0IHRoZSBzZXR0ZXIgYW5kIGNhbGwgaXQuXG4gICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL3JlYWN0L2lzc3Vlcy8xMTYwMCNpc3N1ZWNvbW1lbnQtMzQ1ODEzMTMwXG4gICAgY29uc3Qgc2V0VmFsdWUgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEhUTUxJbnB1dEVsZW1lbnQucHJvdG90eXBlLCAndmFsdWUnKSEuc2V0ITtcbiAgICBzZXRWYWx1ZS5jYWxsKHRoaXMudHJpZ2dlckVsZW1lbnQsIHRvRGlzcGxheSk7XG4gIH1cblxuICBwcml2YXRlIF9oYW5kbGVTbG90Y2hhbmdlKCk6IHZvaWQge1xuICAgIHRoaXMuX2hpZ2hsaWdodE9wdGlvbnModGhpcy50cmlnZ2VyRWxlbWVudD8udmFsdWUpO1xuXG4gICAgLy8gSXQgaXMgcG9zc2libGUgdGhhdCBhbiBlbGVtZW50IGlzIGFkZGVkIHRoYXQgaGFzIG5vdCBiZWVuIHJlbmRlcmVkXG4gICAgLy8geWV0IGFuZCB0aGVyZWZvcmUgaGFzIGhlaWdodCAwLiBUaGVyZWZvcmUgd2UgYWxzbyBvYnNlcnZlIHRoZSBzaXplXG4gICAgLy8gb2YgYWxsIGNoaWxkIGVsZW1lbnRzLlxuICAgIGNvbnN0IGN1cnJlbnRFbGVtZW50cyA9IEFycmF5LmZyb20odGhpcy5xdWVyeVNlbGVjdG9yQWxsKCcqJykpO1xuICAgIHRoaXMuX3ByZXZpb3VzRWxlbWVudHM/LmZvckVhY2goKGUpID0+IHRoaXMuX3Jlc2l6ZU9ic2VydmVyLnVub2JzZXJ2ZShlKSk7XG4gICAgdGhpcy5fcHJldmlvdXNFbGVtZW50cyA9IGN1cnJlbnRFbGVtZW50cztcbiAgICB0aGlzLl9wcmV2aW91c0VsZW1lbnRzLmZvckVhY2goKGUpID0+IHRoaXMuX3Jlc2l6ZU9ic2VydmVyLm9ic2VydmUoZSkpO1xuXG4gICAgLyoqXG4gICAgICogSXQncyBwb3NzaWJsZSB0byBmaWx0ZXIgb3V0IG9wdGlvbnMgd2l0aCBhbiBvcGVuZWQgcGFuZWwgb24gaW5wdXQgY2hhbmdlLlxuICAgICAqIEluIHRoaXMgY2FzZSwgdGhlIHBhbmVsJ3MgcG9zaXRpb24gbXVzdCBiZSByZWNhbGN1bGF0ZWQgY29uc2lkZXJpbmcgdGhlIG5ldyBvcHRpb24ncyBsaXN0LlxuICAgICAqL1xuICAgIGlmICh0aGlzLmlzT3Blbikge1xuICAgICAgdGhpcy5fc2V0T3ZlcmxheVBvc2l0aW9uKCk7XG4gICAgICB0aGlzLl9zZXROZXh0QWN0aXZlT3B0aW9uSWZBdXRvQWN0aXZlRmlyc3RPcHRpb24oKTtcblxuICAgICAgLy8gSWYgdGhlIGF1dG9jb21wbGV0ZSBpcyBvcGVuIGFuZCB0aGUgb3B0aW9uIGNvdW50IGdldHMgdG8gemVybywgd2UgY2xvc2UgdGhlIGF1dG9jb21wbGV0ZS5cbiAgICAgIGlmICh0aGlzLl9vcHRpb25zQ291bnQgPiAwICYmIHRoaXMub3B0aW9ucy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgdGhpcy5jbG9zZSgpO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoXG4gICAgICAvLyBJZiB0aGUgJ2lucHV0JyBpcyBmb2N1c2VkIGFuZCB0aGUgY291bnQgb2Ygb3B0aW9ucyBjaGFuZ2VzIGZyb20gMCB0byA+IDAsXG4gICAgICAvLyB0aGUgYXV0b2NvbXBsZXRlIHNob3VsZCBvcGVuIGF1dG9tYXRpY2FsbHkuXG4gICAgICBkb2N1bWVudD8uYWN0aXZlRWxlbWVudCA9PT0gdGhpcy50cmlnZ2VyRWxlbWVudCAmJlxuICAgICAgdGhpcy5fb3B0aW9uc0NvdW50ID09PSAwICYmXG4gICAgICB0aGlzLm9wdGlvbnMubGVuZ3RoID4gMFxuICAgICkge1xuICAgICAgdGhpcy5vcGVuKCk7XG4gICAgfVxuXG4gICAgdGhpcy5fb3B0aW9uc0NvdW50ID0gdGhpcy5vcHRpb25zLmxlbmd0aDtcbiAgfVxuXG4gIHByaXZhdGUgX3NldE5leHRBY3RpdmVPcHRpb25JZkF1dG9BY3RpdmVGaXJzdE9wdGlvbigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5hdXRvQWN0aXZlRmlyc3RPcHRpb24pIHtcbiAgICAgIHRoaXMucmVzZXRBY3RpdmVFbGVtZW50KCk7XG4gICAgICB0aGlzLnNldE5leHRBY3RpdmVPcHRpb24oKTtcbiAgICB9XG4gIH1cblxuICAvKiogVGhlIGF1dG9jb21wbGV0ZSBzaG91bGQgaW5oZXJpdCAncmVhZG9ubHknIHN0YXRlIGZyb20gdGhlIHRyaWdnZXIuICovXG4gIHByaXZhdGUgX3JlYWRvbmx5KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnRyaWdnZXJFbGVtZW50Py5oYXNBdHRyaWJ1dGUoJ3JlYWRvbmx5JykgPz8gZmFsc2U7XG4gIH1cblxuICBwcml2YXRlIF9jb21wb25lbnRTZXR1cCgpOiB2b2lkIHtcbiAgICBpZiAoaXNTZXJ2ZXIpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLl9jb25maWd1cmVUcmlnZ2VyKCk7XG4gIH1cblxuICBwcml2YXRlIF9jb25maWd1cmVUcmlnZ2VyKCk6IHZvaWQge1xuICAgIGNvbnN0IHRyaWdnZXJFbGVtZW50ID0gKHRoaXMudHJpZ2dlciA/P1xuICAgICAgdGhpcy5jbG9zZXN0Py4oJ3NiYi1mb3JtLWZpZWxkJyk/LnF1ZXJ5U2VsZWN0b3IoJ2lucHV0JykpIGFzIEhUTUxJbnB1dEVsZW1lbnQgfCBudWxsO1xuICAgIGlmICh0cmlnZ2VyRWxlbWVudCA9PT0gdGhpcy50cmlnZ2VyRWxlbWVudCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuX3RyaWdnZXJBYm9ydENvbnRyb2xsZXI/LmFib3J0KCk7XG4gICAgcmVtb3ZlQXJpYUNvbWJvQm94QXR0cmlidXRlcyh0aGlzLnRyaWdnZXJFbGVtZW50KTtcbiAgICB0aGlzLnRyaWdnZXJFbGVtZW50Py5yZW1vdmVBdHRyaWJ1dGUoJ2RhdGEtZXhwYW5kZWQnKTtcbiAgICB0aGlzLl90cmlnZ2VyRWxlbWVudCA9IHRyaWdnZXJFbGVtZW50O1xuXG4gICAgaWYgKCF0aGlzLnRyaWdnZXJFbGVtZW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gQXMgdGhlIHRyaWdnZXIgY2FuIGJlIHRoZSBmYWxsYmFjayBvZiB0aGUgb3JpZ2luLCB3ZSBldmVudHVhbGx5IGhhdmUgdG8gdXBkYXRlIHRoZSBwb3NpdGlvbi5cbiAgICBjb25zdCBvcmlnaW5FbGVtZW50ID0gdGhpcy5vcmlnaW5FbGVtZW50O1xuICAgIGlmICh0aGlzLnRyaWdnZXJFbGVtZW50ID09PSBvcmlnaW5FbGVtZW50ICYmIHRoaXMuaXNPcGVuKSB7XG4gICAgICB0aGlzLl9zZXRPdmVybGF5UG9zaXRpb24ob3JpZ2luRWxlbWVudCk7XG4gICAgfVxuXG4gICAgdGhpcy5fdHJpZ2dlckF0dHJpYnV0ZU9ic2VydmVyPy5vYnNlcnZlKHRoaXMudHJpZ2dlckVsZW1lbnQhLCB7XG4gICAgICBhdHRyaWJ1dGVzOiB0cnVlLFxuICAgICAgYXR0cmlidXRlRmlsdGVyOiBbJ2Rpc2FibGVkJywgJ3JlYWRvbmx5J10sXG4gICAgfSk7XG5cbiAgICB0aGlzLnNldFRyaWdnZXJBdHRyaWJ1dGVzKHRoaXMudHJpZ2dlckVsZW1lbnQpO1xuICAgIHRoaXMuX3RyaWdnZXJBYm9ydENvbnRyb2xsZXIgPSBuZXcgQWJvcnRDb250cm9sbGVyKCk7XG5cbiAgICAvLyBPcGVuIHRoZSBvdmVybGF5IG9uIGZvY3VzLCBjbGljaywgaW5wdXQgYW5kIGBBcnJvd0Rvd25gIGV2ZW50XG4gICAgdGhpcy50cmlnZ2VyRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdmb2N1cycsICgpID0+IHRoaXMub3BlbigpLCB7XG4gICAgICBzaWduYWw6IHRoaXMuX3RyaWdnZXJBYm9ydENvbnRyb2xsZXIuc2lnbmFsLFxuICAgIH0pO1xuICAgIHRoaXMudHJpZ2dlckVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoKSA9PiB0aGlzLm9wZW4oKSwge1xuICAgICAgc2lnbmFsOiB0aGlzLl90cmlnZ2VyQWJvcnRDb250cm9sbGVyLnNpZ25hbCxcbiAgICB9KTtcbiAgICB0aGlzLnRyaWdnZXJFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoXG4gICAgICAnaW5wdXQnLFxuICAgICAgKGV2ZW50KSA9PiB7XG4gICAgICAgIGNvbnN0IHZhbHVlOiBzdHJpbmcgPSAoZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQpLnZhbHVlO1xuXG4gICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgIHRoaXMub3BlbigpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2hpZ2hsaWdodE9wdGlvbnModmFsdWUpO1xuICAgICAgICB0aGlzLl9sYXN0VXNlcklucHV0ID0gdmFsdWU7XG4gICAgICAgIHRoaXMucGVuZGluZ0F1dG9TZWxlY3RlZE9wdGlvbiA9IG51bGw7XG4gICAgICB9LFxuICAgICAgeyBzaWduYWw6IHRoaXMuX3RyaWdnZXJBYm9ydENvbnRyb2xsZXIuc2lnbmFsIH0sXG4gICAgKTtcbiAgICB0aGlzLnRyaWdnZXJFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoXG4gICAgICAnY2hhbmdlJyxcbiAgICAgIChldmVudCkgPT4ge1xuICAgICAgICAvKipcbiAgICAgICAgICogSW4gJ3JlcXVpcmVTZWxlY3Rpb24nIG1vZGUsIHdlIGJsb2NrIHRoZSBuYXRpdmUgY2hhbmdlIGV2ZW50cyBhbmRcbiAgICAgICAgICogbGV0IG9ubHkgcGFzcyB0aGUgb25lcyB0aGF0IGNvbWUgd2l0aCBhIHZhbGlkIHZhbHVlICh3aGVuIGFuIG9wdGlvbiBpcyBzZWxlY3RlZClcbiAgICAgICAgICovXG4gICAgICAgIGlmICh0aGlzLnJlcXVpcmVTZWxlY3Rpb24gJiYgIXRoaXMuX2lzQ3VzdG9tQ2hhbmdlRXZlbnQpIHtcbiAgICAgICAgICBldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9pc0N1c3RvbUNoYW5nZUV2ZW50ID0gZmFsc2U7XG4gICAgICB9LFxuICAgICAgeyBzaWduYWw6IHRoaXMuX3RyaWdnZXJBYm9ydENvbnRyb2xsZXIuc2lnbmFsLCBjYXB0dXJlOiB0cnVlIH0sXG4gICAgKTtcbiAgICB0aGlzLnRyaWdnZXJFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoXG4gICAgICAna2V5ZG93bicsXG4gICAgICAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpID0+IHRoaXMuX2Nsb3NlZFBhbmVsS2V5Ym9hcmRJbnRlcmFjdGlvbihldmVudCksXG4gICAgICB7XG4gICAgICAgIHNpZ25hbDogdGhpcy5fdHJpZ2dlckFib3J0Q29udHJvbGxlci5zaWduYWwsXG4gICAgICAgIC8vIFdlIG5lZWQga2V5IGV2ZW50IHRvIHJ1biBiZWZvcmUgYW55IG90aGVyIHN1YnNjcmlwdGlvbiB0byBndWFyYW50ZWUgYSBjb3JyZWN0XG4gICAgICAgIC8vIGludGVyYWN0aW9uIHdpdGggb3RoZXIgY29tcG9uZW50cyAobmVjZXNzYXJ5IGZvciB0aGUgJ3NiYi1jaGlwLWdyb3VwJyB1c2UgY2FzZSkuXG4gICAgICAgIGNhcHR1cmU6IHRydWUsXG4gICAgICB9LFxuICAgICk7XG5cbiAgICB0aGlzLnRyaWdnZXJFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoXG4gICAgICAnYmx1cicsXG4gICAgICAoZSkgPT4ge1xuICAgICAgICAvLyBJZiB0aGUgbmV3IGZvY3VzIGlzIHRoZSBhdXRvY29tcGxldGUgb3IgaW5zaWRlIG9mIGl0IHRoZW4gYW4gb3B0aW9uXG4gICAgICAgIC8vIHdhcyBzZWxlY3RlZC4gVGhlcmVmb3JlLCB0aGUgZm9jdXMgaXMgc3RpbGwgb24gdGhlIGNvbXBvbmVudC5cbiAgICAgICAgaWYgKHRoaXMuY29udGFpbnMoZS5yZWxhdGVkVGFyZ2V0IGFzIE5vZGUpKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gSWYgJ2F1dG9TZWxlY3RBY3RpdmVPcHRpb25PbkJsdXInIGlzIGVuYWJsZWQsIHNlbGVjdCB0aGUgYWN0aXZlIG9wdGlvbiBvbiBibHVyXG4gICAgICAgIGlmIChcbiAgICAgICAgICB0aGlzLmF1dG9TZWxlY3RBY3RpdmVPcHRpb25PbkJsdXIgJiZcbiAgICAgICAgICB0aGlzLmFjdGl2ZU9wdGlvbiAmJlxuICAgICAgICAgIHRoaXMuX2xhc3RVc2VySW5wdXQgJiZcbiAgICAgICAgICB0aGlzLnRyaWdnZXJFbGVtZW50Py52YWx1ZVxuICAgICAgICApIHtcbiAgICAgICAgICB0aGlzLmFjdGl2ZU9wdGlvbi5zZWxlY3RlZCA9IHRydWU7XG4gICAgICAgICAgdGhpcy5fc2V0VmFsdWVBbmREaXNwYXRjaEV2ZW50cyh0aGlzLmFjdGl2ZU9wdGlvbiwgdHJ1ZSk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBDbGVhcnMgdGhlIGlucHV0IGlmIHRoZXJlJ3MgdXNlciBpbnRlcmFjdGlvbiB3aXRob3V0IHNlbGVjdGlvbiAoc2VsZWN0aW9uIGNsZWFycyBgX2xhc3RVc2VySW5wdXRgKS5cbiAgICAgICAgaWYgKHRoaXMucmVxdWlyZVNlbGVjdGlvbiAmJiB0aGlzLnRyaWdnZXJFbGVtZW50ICYmIHRoaXMuX2xhc3RVc2VySW5wdXQgIT0gbnVsbCkge1xuICAgICAgICAgIGNvbnN0IHNldFZhbHVlID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihcbiAgICAgICAgICAgIEhUTUxJbnB1dEVsZW1lbnQucHJvdG90eXBlLFxuICAgICAgICAgICAgJ3ZhbHVlJyxcbiAgICAgICAgICApIS5zZXQhO1xuICAgICAgICAgIHNldFZhbHVlLmNhbGwodGhpcy50cmlnZ2VyRWxlbWVudCwgJycpO1xuICAgICAgICAgIHRoaXMuX2hpZ2hsaWdodE9wdGlvbnMoJycpO1xuICAgICAgICAgIHRoaXMuX2lzQ3VzdG9tQ2hhbmdlRXZlbnQgPSB0cnVlO1xuICAgICAgICAgIHRoaXMudHJpZ2dlckVsZW1lbnQuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ2NoYW5nZScsIHsgYnViYmxlczogdHJ1ZSB9KSk7XG4gICAgICAgICAgdGhpcy50cmlnZ2VyRWxlbWVudC5kaXNwYXRjaEV2ZW50KFxuICAgICAgICAgICAgbmV3IElucHV0RXZlbnQoJ2lucHV0JywgeyBidWJibGVzOiB0cnVlLCBjb21wb3NlZDogdHJ1ZSB9KSxcbiAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5jbG9zZSgpO1xuICAgICAgfSxcbiAgICAgIHsgc2lnbmFsOiB0aGlzLl90cmlnZ2VyQWJvcnRDb250cm9sbGVyLnNpZ25hbCwgY2FwdHVyZTogdHJ1ZSB9LFxuICAgICk7XG4gIH1cblxuICAvLyBTZXQgb3ZlcmxheSBwb3NpdGlvbiwgd2lkdGggYW5kIG1heCBoZWlnaHRcbiAgcHJpdmF0ZSBfc2V0T3ZlcmxheVBvc2l0aW9uKG9yaWdpbkVsZW1lbnQgPSB0aGlzLm9yaWdpbkVsZW1lbnQpOiB2b2lkIHtcbiAgICAvLyBBbiB1bmRlZmluZWQgb3JpZ2luRWxlbWVudCBzaG91bGQgb25seSBvY2N1ciBpbiB0aGUgdW5saWtlbHkgZXZlbnRcbiAgICAvLyB0aGF0IHRoZSBhdXRvY29tcGxldGUgbG9zZXMgaXRzIG9yaWdpbkVsZW1lbnQgYW5kIHRyaWdnZXJFbGVtZW50IGR1cmluZyBhbiBvcGVuIHN0YXRlLlxuICAgIGlmICghb3JpZ2luRWxlbWVudCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBzZXRPdmVybGF5UG9zaXRpb24oXG4gICAgICB0aGlzLl9vdmVybGF5LFxuICAgICAgb3JpZ2luRWxlbWVudCxcbiAgICAgIHRoaXMuX29wdGlvbkNvbnRhaW5lcixcbiAgICAgIHRoaXMuc2hhZG93Um9vdCEucXVlcnlTZWxlY3RvcignLnNiYi1hdXRvY29tcGxldGVfX2NvbnRhaW5lcicpISxcbiAgICAgIHRoaXMsXG4gICAgICB0aGlzLnBvc2l0aW9uLFxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogT24gb3Blbi9jbG9zZSBhbmltYXRpb24gZW5kLlxuICAgKiBJbiByYXJlIGNhc2VzIGl0IGNhbiBiZSB0aGF0IHRoZSBhbmltYXRpb25FbmQgZXZlbnQgaXMgdHJpZ2dlcmVkIHR3aWNlLlxuICAgKiBUbyBhdm9pZCBlbnRlcmluZyBhIGNvcnJ1cHQgc3RhdGUsIGV4aXQgd2hlbiBzdGF0ZSBpcyBub3QgZXhwZWN0ZWQuXG4gICAqL1xuICBwcml2YXRlIF9vbkFuaW1hdGlvbkVuZChldmVudDogQW5pbWF0aW9uRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoZXZlbnQuYW5pbWF0aW9uTmFtZSA9PT0gJ29wZW4nICYmIHRoaXMuc3RhdGUgPT09ICdvcGVuaW5nJykge1xuICAgICAgdGhpcy5faGFuZGxlT3BlbmluZygpO1xuICAgIH0gZWxzZSBpZiAoZXZlbnQuYW5pbWF0aW9uTmFtZSA9PT0gJ2Nsb3NlJyAmJiB0aGlzLnN0YXRlID09PSAnY2xvc2luZycpIHtcbiAgICAgIHRoaXMuX2hhbmRsZUNsb3NpbmcoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9oYW5kbGVPcGVuaW5nKCk6IHZvaWQge1xuICAgIHRoaXMuc3RhdGUgPSAnb3BlbmVkJztcbiAgICBpZiAodGhpcy5vcmlnaW5FbGVtZW50KSB7XG4gICAgICB0aGlzLl9yZXNpemVPYnNlcnZlci5vYnNlcnZlKHRoaXMub3JpZ2luRWxlbWVudCk7XG4gICAgfVxuICAgIHRoaXMudHJpZ2dlckVsZW1lbnQ/LnNldEF0dHJpYnV0ZSgnYXJpYS1leHBhbmRlZCcsICd0cnVlJyk7XG4gICAgdGhpcy5kaXNwYXRjaE9wZW5FdmVudCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfaGFuZGxlQ2xvc2luZygpOiB2b2lkIHtcbiAgICB0aGlzLnN0YXRlID0gJ2Nsb3NlZCc7XG4gICAgdGhpcy5oaWRlUG9wb3Zlcj8uKCk7XG4gICAgdGhpcy50cmlnZ2VyRWxlbWVudD8uc2V0QXR0cmlidXRlKCdhcmlhLWV4cGFuZGVkJywgJ2ZhbHNlJyk7XG5cbiAgICB0aGlzLnJlc2V0QWN0aXZlRWxlbWVudCgpO1xuICAgIHRoaXMuX29wdGlvbkNvbnRhaW5lci5zY3JvbGxUb3AgPSAwO1xuICAgIHRoaXMuX2VzY2FwYWJsZU92ZXJsYXlDb250cm9sbGVyLmRpc2Nvbm5lY3QoKTtcbiAgICB0aGlzLmRpc3BhdGNoQ2xvc2VFdmVudCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfYXR0YWNoT3BlblBhbmVsRXZlbnRzKCk6IHZvaWQge1xuICAgIHRoaXMuX29wZW5QYW5lbEV2ZW50c0NvbnRyb2xsZXIgPSBuZXcgQWJvcnRDb250cm9sbGVyKCk7XG5cbiAgICAvLyBSZWNhbGN1bGF0ZSB0aGUgb3ZlcmxheSBwb3NpdGlvbiBvbiBzY3JvbGwgYW5kIHdpbmRvdyByZXNpemVcbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCAoKSA9PiB0aGlzLl9zZXRPdmVybGF5UG9zaXRpb24oKSwge1xuICAgICAgcGFzc2l2ZTogdHJ1ZSxcbiAgICAgIHNpZ25hbDogdGhpcy5fb3BlblBhbmVsRXZlbnRzQ29udHJvbGxlci5zaWduYWwsXG4gICAgICAvLyBXaXRob3V0IGNhcHR1cmUsIG90aGVyIHNjcm9sbCBjb250ZXh0cyB3b3VsZCBub3QgYnViYmxlIHRvIHRoaXMgZXZlbnQgbGlzdGVuZXIuXG4gICAgICAvLyBDYXB0dXJlIGFsbG93cyB1cyB0byByZWFjdCB0byBhbGwgc2Nyb2xsIGNvbnRleHRzIGluIHRoaXMgRE9NLlxuICAgICAgY2FwdHVyZTogdHJ1ZSxcbiAgICB9KTtcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncmVzaXplJywgKCkgPT4gdGhpcy5fc2V0T3ZlcmxheVBvc2l0aW9uKCksIHtcbiAgICAgIHBhc3NpdmU6IHRydWUsXG4gICAgICBzaWduYWw6IHRoaXMuX29wZW5QYW5lbEV2ZW50c0NvbnRyb2xsZXIuc2lnbmFsLFxuICAgIH0pO1xuXG4gICAgLy8gQ2xvc2UgYXV0b2NvbXBsZXRlIG9uIGJhY2tkcm9wIGNsaWNrXG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3BvaW50ZXJkb3duJywgKGV2KSA9PiB0aGlzLl9wb2ludGVyRG93bkxpc3RlbmVyKGV2KSwge1xuICAgICAgc2lnbmFsOiB0aGlzLl9vcGVuUGFuZWxFdmVudHNDb250cm9sbGVyLnNpZ25hbCxcbiAgICB9KTtcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncG9pbnRlcnVwJywgKGV2KSA9PiB0aGlzLl9jbG9zZU9uQmFja2Ryb3BDbGljayhldiksIHtcbiAgICAgIHNpZ25hbDogdGhpcy5fb3BlblBhbmVsRXZlbnRzQ29udHJvbGxlci5zaWduYWwsXG4gICAgfSk7XG5cbiAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXIoXG4gICAgICAnybVkaXNhYmxlZGNoYW5nZScsXG4gICAgICAoKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLmFjdGl2ZU9wdGlvbj8uZGlzYWJsZWQpIHtcbiAgICAgICAgICB0aGlzLnJlc2V0QWN0aXZlRWxlbWVudCgpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX3NldE5leHRBY3RpdmVPcHRpb25JZkF1dG9BY3RpdmVGaXJzdE9wdGlvbigpO1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgc2lnbmFsOiB0aGlzLl9vcGVuUGFuZWxFdmVudHNDb250cm9sbGVyLnNpZ25hbCxcbiAgICAgIH0sXG4gICAgKTtcblxuICAgIC8vIEtleWJvYXJkIGludGVyYWN0aW9uc1xuICAgIHRoaXMudHJpZ2dlckVsZW1lbnQ/LmFkZEV2ZW50TGlzdGVuZXIoXG4gICAgICAna2V5ZG93bicsXG4gICAgICAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpID0+IHRoaXMub3BlbmVkUGFuZWxLZXlib2FyZEludGVyYWN0aW9uKGV2ZW50KSxcbiAgICAgIHtcbiAgICAgICAgc2lnbmFsOiB0aGlzLl9vcGVuUGFuZWxFdmVudHNDb250cm9sbGVyLnNpZ25hbCxcbiAgICAgICAgLy8gV2UgbmVlZCBrZXkgZXZlbnQgdG8gcnVuIGJlZm9yZSBhbnkgb3RoZXIgc3Vic2NyaXB0aW9uIHRvIGd1YXJhbnRlZSBhIGNvcnJlY3RcbiAgICAgICAgLy8gaW50ZXJhY3Rpb24gd2l0aCBvdGhlciBjb21wb25lbnRzIChuZWNlc3NhcnkgZm9yIHRoZSAnc2JiLWNoaXAtZ3JvdXAnIHVzZSBjYXNlKS5cbiAgICAgICAgY2FwdHVyZTogdHJ1ZSxcbiAgICAgIH0sXG4gICAgKTtcbiAgfVxuXG4gIC8vIENoZWNrIGlmIHRoZSBwb2ludGVyZG93biBldmVudCB0YXJnZXQgaXMgdHJpZ2dlcmVkIG9uIHRoZSBtZW51LlxuICBwcml2YXRlIF9wb2ludGVyRG93bkxpc3RlbmVyID0gKGV2ZW50OiBQb2ludGVyRXZlbnQpOiB2b2lkID0+IHtcbiAgICB0aGlzLl9pc1BvaW50ZXJEb3duRXZlbnRPbk1lbnUgPSBpc0V2ZW50T25FbGVtZW50KHRoaXMuX292ZXJsYXksIGV2ZW50KTtcbiAgfTtcblxuICAvLyBJZiB0aGUgY2xpY2sgaXMgb3V0c2lkZSB0aGUgYXV0b2NvbXBsZXRlLCBjbG9zZXMgdGhlIHBhbmVsLlxuICBwcml2YXRlIF9jbG9zZU9uQmFja2Ryb3BDbGljayA9IChldmVudDogUG9pbnRlckV2ZW50KTogdm9pZCA9PiB7XG4gICAgaWYgKFxuICAgICAgIXRoaXMuX2lzUG9pbnRlckRvd25FdmVudE9uTWVudSAmJlxuICAgICAgIWlzRXZlbnRPbkVsZW1lbnQodGhpcy5fb3ZlcmxheSwgZXZlbnQpICYmXG4gICAgICAhaXNFdmVudE9uRWxlbWVudCh0aGlzLm9yaWdpbkVsZW1lbnQsIGV2ZW50KVxuICAgICkge1xuICAgICAgdGhpcy5jbG9zZSgpO1xuICAgIH1cbiAgfTtcblxuICBwcml2YXRlIF9jbG9zZWRQYW5lbEtleWJvYXJkSW50ZXJhY3Rpb24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zdGF0ZSA9PT0gJ29wZW5pbmcnIHx8IHRoaXMuc3RhdGUgPT09ICdvcGVuZWQnKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgc3dpdGNoIChldmVudC5rZXkpIHtcbiAgICAgIGNhc2UgJ0Fycm93RG93bic6XG4gICAgICBjYXNlICdBcnJvd1VwJzpcbiAgICAgICAgdGhpcy5vcGVuKCk7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBIaWdobGlnaHQgdGhlIHNlYXJjaGVkIHRleHQgb24gdGhlIG9wdGlvbnMuICovXG4gIHByaXZhdGUgX2hpZ2hsaWdodE9wdGlvbnMoc2VhcmNoVGVybT86IHN0cmluZyk6IHZvaWQge1xuICAgIGlmIChzZWFyY2hUZXJtID09PSBudWxsIHx8IHNlYXJjaFRlcm0gPT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLm9wdGlvbnMuZm9yRWFjaCgob3B0aW9uKSA9PiBvcHRpb24uaGlnaGxpZ2h0KHNlYXJjaFRlcm0pKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXIoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIC8vIFNjcm9sbCBhcmVhcyB3aXRob3V0IGNvbnRhaW5pbmcgYW4gaW50ZXJhY3RpdmUgZWxlbWVudCB3aWxsIHJlY2VpdmUgZm9jdXMgd2hlbiB0YWJiaW5nIHRocm91Z2ggdGhlIGRvY3VtZW50LlxuICAgIC8vIElmIHRoZXJlIGFyZSBhIGxvdCBvZiBvcHRpb25zIGFuZCB3aGVuIHByZXNzaW5nIHRhYiBrZXksIHRoZSBzY3JvbGwgYXJlYSBvbiBzYmItYXV0b2NvbXBsZXRlX19vcHRpb25zIGdldHMgZm9jdXMuXG4gICAgLy8gQXMgZWxlbWVudHMgaW5zaWRlIHRoZSBwYW5lbCBzaG91bGQgbmV2ZXIgZ2V0IGZvY3VzLCB3ZSBoYXZlIHRvIGF2b2lkIHRoYXQgYnkgc2V0dGluZyB0YWJpbmRleD0tMS5cbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxkaXYgY2xhc3M9XCJzYmItYXV0b2NvbXBsZXRlX19nYXAtZml4XCI+PC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwic2JiLWF1dG9jb21wbGV0ZV9fY29udGFpbmVyXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzYmItYXV0b2NvbXBsZXRlX19nYXAtZml4XCI+JHtvdmVybGF5R2FwRml4Q29ybmVycygpfTwvZGl2PlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgQGFuaW1hdGlvbmVuZD0ke3RoaXMuX29uQW5pbWF0aW9uRW5kfVxuICAgICAgICAgIGNsYXNzPVwic2JiLWF1dG9jb21wbGV0ZV9fcGFuZWxcIlxuICAgICAgICAgICR7cmVmKChvdmVybGF5UmVmPzogRWxlbWVudCkgPT4gKHRoaXMuX292ZXJsYXkgPSBvdmVybGF5UmVmIGFzIEhUTUxFbGVtZW50KSl9XG4gICAgICAgID5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic2JiLWF1dG9jb21wbGV0ZV9fd3JhcHBlclwiPlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICBjbGFzcz1cInNiYi1hdXRvY29tcGxldGVfX29wdGlvbnNcIlxuICAgICAgICAgICAgICByb2xlPSR7IWFyaWFSb2xlT25Ib3N0ID8gdGhpcy5wYW5lbFJvbGUgOiBub3RoaW5nfVxuICAgICAgICAgICAgICBpZD0keyFhcmlhUm9sZU9uSG9zdCA/IHRoaXMub3ZlcmxheUlkIDogbm90aGluZ31cbiAgICAgICAgICAgICAgdGFiaW5kZXg9XCItMVwiXG4gICAgICAgICAgICAgICR7cmVmKChjb250YWluZXJSZWYpID0+ICh0aGlzLl9vcHRpb25Db250YWluZXIgPSBjb250YWluZXJSZWYgYXMgSFRNTEVsZW1lbnQpKX1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPHNsb3QgQHNsb3RjaGFuZ2U9JHt0aGlzLl9oYW5kbGVTbG90Y2hhbmdlfT48L3Nsb3Q+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICBgO1xuICB9XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50RXZlbnRNYXAge1xuICAgIGlucHV0QXV0b2NvbXBsZXRlOiBDdXN0b21FdmVudDx7IG9wdGlvbjogU2JiT3B0aW9uQmFzZUVsZW1lbnQ8YW55PiB9PjtcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7OztBQ3VDQSxJQUFNLGlCQUFpQjs7Ozs7OztJQVFELG9DQUEwQjttQkFBcUIsaUJBQ25FLHdCQUNEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O2NBRnFCLG1DQUErQyxZQUVwRTs7O3lCQVdFLGFBQWEsRUFDYixVQUFVLENBQUE7MEJBVVYsYUFBYSxFQUNiLFVBQVUsQ0FBQTtvQ0FJVixXQUFXLEVBQ1gsU0FBUztJQUFFLFdBQVc7SUFBdUIsU0FBUztJQUFNLE1BQU07SUFBUyxDQUFDLENBQUE7d0NBSTVFLFdBQVcsRUFDWCxTQUFTO0lBQUUsV0FBVztJQUE0QixNQUFNO0lBQVMs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
686
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLWJhc2UtZWxlbWVudC1EbnBhS19rMy5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZWxlbWVudHMvYXV0b2NvbXBsZXRlL2F1dG9jb21wbGV0ZS1iYXNlLWVsZW1lbnQuc2Nzcz9pbmxpbmUiLCIuLi8uLi8uLi9zcmMvZWxlbWVudHMvYXV0b2NvbXBsZXRlL2F1dG9jb21wbGV0ZS1iYXNlLWVsZW1lbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiQHVzZSAnLi4vY29yZS9zdHlsZXMnIGFzIHNiYjtcblxuLy8gRml4ZXMgdGhlIGdhcCBiZXR3ZWVuIHRoZSBvcmlnaW4gYW5kIHRoZSBvdmVybGF5IGJ5IGNyZWF0aW5nIGNvbmp1bmN0aW9uXG4vLyBjb3JuZXJzIGJhc2VkIG9uIHRoZSBvcmlnaW4gZWxlbWVudCBib3JkZXIgcmFkaXVzXG5AaW5jbHVkZSBzYmIub3ZlcmxheS1nYXAtZml4O1xuXG46aG9zdCB7XG4gIEBpbmNsdWRlIHNiYi5vcHRpb25zLXBhbmVsLW92ZXJsYXktdmFyaWFibGVzO1xuXG4gIC0tc2JiLW9wdGlvbnMtcG9pbnRlci1ldmVudHM6IGFsbDtcbiAgLS1zYmItb3B0aW9ucy1wYW5lbC1pbnRlcm5hbC16LWluZGV4OiB2YXIoXG4gICAgLS1zYmItYXV0b2NvbXBsZXRlLXotaW5kZXgsXG4gICAgdmFyKC0tc2JiLW92ZXJsYXktZGVmYXVsdC16LWluZGV4KVxuICApO1xuXG4gIGRpc3BsYXk6IG5vbmU7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG59XG5cbjpob3N0KFtzaXplPSdzJ10pIHtcbiAgQGluY2x1ZGUgc2JiLm9wdGlvbnMtcGFuZWwtb3ZlcmxheS1zaXplLXMtdmFyaWFibGVzO1xufVxuXG46aG9zdChbc2l6ZT0nbSddKSB7XG4gIEBpbmNsdWRlIHNiYi5vcHRpb25zLXBhbmVsLW92ZXJsYXktc2l6ZS1tLXZhcmlhYmxlcztcbn1cblxuOmhvc3QoOmlzKDpzdGF0ZShzdGF0ZS1vcGVuaW5nKSwgOnN0YXRlKHN0YXRlLW9wZW5lZCksIDpzdGF0ZShzdGF0ZS1jbG9zaW5nKSkpIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbjpob3N0KFtuZWdhdGl2ZV0pIHtcbiAgQGluY2x1ZGUgc2JiLm9wdGlvbnMtcGFuZWwtb3ZlcmxheS1uZWdhdGl2ZS12YXJpYWJsZXM7XG59XG5cbjpob3N0KDpub3QoOnN0YXRlKHN0YXRlLW9wZW5pbmcpLCA6c3RhdGUoc3RhdGUtb3BlbmVkKSwgOnN0YXRlKHN0YXRlLWNsb3NpbmcpKSksXG46aG9zdCg6c3RhdGUoc3RhdGUtY2xvc2VkKSkge1xuICAtLXNiYi1vcHRpb25zLXBhbmVsLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgLS1zYmItb3B0aW9ucy1wb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuOmhvc3QoOnN0YXRlKHN0YXRlLW9wZW5pbmcpKSB7XG4gIC0tc2JiLW9wdGlvbnMtcGFuZWwtYW5pbWF0aW9uLW5hbWU6IG9wZW47XG59XG5cbjpob3N0KDpzdGF0ZShzdGF0ZS1jbG9zaW5nKSkge1xuICAtLXNiYi1vcHRpb25zLXBhbmVsLWFuaW1hdGlvbi1uYW1lOiBjbG9zZTtcbn1cblxuOmhvc3QoOnN0YXRlKHN0YXRlLW9wZW5lZCkpLFxuOmhvc3QoOnN0YXRlKHN0YXRlLW9wZW5pbmcpKSB7XG4gIC0tc2JiLW9wdGlvbnMtcGFuZWwtZ2FwLWZpeC1vcGFjaXR5OiAxO1xufVxuXG46aG9zdCg6c3RhdGUob3B0aW9ucy1wYW5lbC1wb3NpdGlvbi1iZWxvdykpIHtcbiAgLS1zYmItb3B0aW9ucy1wYW5lbC1hbmltYXRpb24tdHJhbnNmb3JtOiB0cmFuc2xhdGVZKFxuICAgIGNhbGMoKHZhcigtLXNiYi1vcHRpb25zLXBhbmVsLW9yaWdpbi1oZWlnaHQpIC8gMikgKiAtMSlcbiAgKTtcbn1cblxuOmhvc3QoOnN0YXRlKG9wdGlvbnMtcGFuZWwtcG9zaXRpb24tYWJvdmUpKSB7XG4gIC0tc2JiLW9wdGlvbnMtcGFuZWwtb3B0aW9ucy1ib3JkZXItcmFkaXVzOiB2YXIoLS1zYmItb3B0aW9ucy1wYW5lbC1ib3JkZXItcmFkaXVzKVxuICAgIHZhcigtLXNiYi1vcHRpb25zLXBhbmVsLWJvcmRlci1yYWRpdXMpIDAgMDtcbiAgLS1zYmItb3B0aW9ucy1wYW5lbC1nYXAtZml4LXRvcDogdmFyKC0tX3NiYi1vcHRpb25zLXBhbmVsLW1heC1oZWlnaHQpO1xuICAtLXNiYi1vcHRpb25zLXBhbmVsLWdhcC1maXgtdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTtcbiAgLS1zYmItb3B0aW9ucy1wYW5lbC1hbmltYXRpb24tdHJhbnNmb3JtOiB0cmFuc2xhdGVZKFxuICAgIGNhbGModmFyKC0tc2JiLW9wdGlvbnMtcGFuZWwtb3JpZ2luLWhlaWdodCkgLyAyKVxuICApO1xufVxuXG46aG9zdChbcHJlc2VydmUtaWNvbi1zcGFjZV0pIHtcbiAgLS1zYmItb3B0aW9uLWljb24tY29udGFpbmVyLWRpc3BsYXk6IGJsb2NrO1xufVxuXG46OnNsb3R0ZWQoc2JiLWRpdmlkZXIpIHtcbiAgbWFyZ2luLWJsb2NrOiB2YXIoLS1zYmItb3B0aW9ucy1wYW5lbC1kaXZpZGVyLW1hcmdpbi1ibG9jayk7XG59XG5cbi5zYmItYXV0b2NvbXBsZXRlX19jb250YWluZXIge1xuICBAaW5jbHVkZSBzYmIub3B0aW9ucy1wYW5lbC1vdmVybGF5LWNvbnRhaW5lcjtcbn1cblxuLnNiYi1hdXRvY29tcGxldGVfX2dhcC1maXgge1xuICBAaW5jbHVkZSBzYmIub3B0aW9ucy1wYW5lbC1vdmVybGF5LWdhcDtcbn1cblxuLnNiYi1hdXRvY29tcGxldGVfX3BhbmVsIHtcbiAgQGluY2x1ZGUgc2JiLm9wdGlvbnMtcGFuZWwtb3ZlcmxheTtcblxuICA6aG9zdCg6c3RhdGUob3B0aW9ucy1wYW5lbC1wb3NpdGlvbi1iZWxvdykpICYge1xuICAgIGluc2V0LWJsb2NrLXN0YXJ0OiBjYWxjKFxuICAgICAgdmFyKC0tc2JiLW9wdGlvbnMtcGFuZWwtcG9zaXRpb24teSkgLSB2YXIoLS1zYmItb3B0aW9ucy1wYW5lbC1vcmlnaW4taGVpZ2h0KVxuICAgICk7XG4gIH1cblxuICA6aG9zdCg6aXMoOnN0YXRlKHN0YXRlLW9wZW5lZCksIDpzdGF0ZShzdGF0ZS1vcGVuaW5nKSkpICYge1xuICAgIGJveC1zaGFkb3c6IHZhcigtLXNiYi1ib3gtc2hhZG93LWxldmVsLTUtaGFyZCk7XG4gIH1cblxuICA6aG9zdCg6aXMoOnN0YXRlKHN0YXRlLW9wZW5lZCksIDpzdGF0ZShzdGF0ZS1vcGVuaW5nKSlbbmVnYXRpdmVdKSAmIHtcbiAgICBib3gtc2hhZG93OiB2YXIoLS1zYmItYm94LXNoYWRvdy1sZXZlbC01LWhhcmQtbmVnYXRpdmUpO1xuICB9XG5cbiAgJjo6YmVmb3JlIHtcbiAgICA6aG9zdCg6c3RhdGUob3B0aW9ucy1wYW5lbC1wb3NpdGlvbi1iZWxvdykpICYge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuICB9XG5cbiAgJjo6YWZ0ZXIge1xuICAgIDpob3N0KDpzdGF0ZShvcHRpb25zLXBhbmVsLXBvc2l0aW9uLWFib3ZlKSkgJiB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG4gIH1cblxuICAvLyBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tZGVzY2VuZGluZy1zcGVjaWZpY2l0eVxuICAmOjpiZWZvcmUsXG4gICY6OmFmdGVyIHtcbiAgICA6aG9zdCg6aXMoOnN0YXRlKHN0YXRlLW9wZW5lZCksIDpzdGF0ZShzdGF0ZS1vcGVuaW5nKSk6c3RhdGUob3B0aW9uLXBhbmVsLW9yaWdpbi1ib3JkZXJsZXNzKSlcbiAgICAgICYge1xuICAgICAgYm94LXNoYWRvdzogdmFyKC0tc2JiLWJveC1zaGFkb3ctbGV2ZWwtNS1oYXJkKTtcbiAgICB9XG5cbiAgICA6aG9zdChcbiAgICAgICAgOmlzKDpzdGF0ZShzdGF0ZS1vcGVuZWQpLCA6c3RhdGUoc3RhdGUtb3BlbmluZykpOnN0YXRlKFxuICAgICAgICAgICAgb3B0aW9uLXBhbmVsLW9yaWdpbi1ib3JkZXJsZXNzXG4gICAgICAgICAgKVtuZWdhdGl2ZV1cbiAgICAgIClcbiAgICAgICYge1xuICAgICAgYm94LXNoYWRvdzogdmFyKC0tc2JiLWJveC1zaGFkb3ctbGV2ZWwtNS1oYXJkLW5lZ2F0aXZlKTtcbiAgICB9XG4gIH1cbn1cblxuLnNiYi1hdXRvY29tcGxldGVfX3dyYXBwZXIge1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4uc2JiLWF1dG9jb21wbGV0ZV9fb3B0aW9ucyB7XG4gIEBpbmNsdWRlIHNiYi5vcHRpb25zT3ZlcmxheTtcbiAgQGluY2x1ZGUgc2JiLnNjcm9sbGJhci1ydWxlcztcblxuICBwb2ludGVyLWV2ZW50czogdmFyKC0tc2JiLW9wdGlvbnMtcG9pbnRlci1ldmVudHMpO1xuXG4gIEBpbmNsdWRlIHNiYi5pZi1mb3JjZWQtY29sb3JzIHtcbiAgICBib3JkZXI6IHZhcigtLXNiYi1ib3JkZXItd2lkdGgtMXgpIHNvbGlkIENhbnZhc1RleHQ7XG4gICAgYm9yZGVyLXRvcDogbm9uZTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIG9wZW4ge1xuICBmcm9tIHtcbiAgICB0cmFuc2Zvcm06IHZhcigtLXNiYi1vcHRpb25zLXBhbmVsLWFuaW1hdGlvbi10cmFuc2Zvcm0pO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cblxuICB0byB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBjbG9zZSB7XG4gIGZyb20ge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5cbiAgdG8ge1xuICAgIHRyYW5zZm9ybTogdmFyKC0tc2JiLW9wdGlvbnMtcGFuZWwtYW5pbWF0aW9uLXRyYW5zZm9ybSk7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxufVxuIiwiaW1wb3J0IHsgUmVzaXplQ29udHJvbGxlciB9IGZyb20gJ0BsaXQtbGFicy9vYnNlcnZlcnMvcmVzaXplLWNvbnRyb2xsZXIuanMnO1xuaW1wb3J0IHtcbiAgdHlwZSBDU1NSZXN1bHRHcm91cCxcbiAgaHRtbCxcbiAgaXNTZXJ2ZXIsXG4gIG5vdGhpbmcsXG4gIHR5cGUgUHJvcGVydHlEZWNsYXJhdGlvbixcbiAgdHlwZSBQcm9wZXJ0eVZhbHVlcyxcbiAgdHlwZSBUZW1wbGF0ZVJlc3VsdCxcbiAgdW5zYWZlQ1NTLFxufSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgcHJvcGVydHkgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5pbXBvcnQgeyByZWYgfSBmcm9tICdsaXQvZGlyZWN0aXZlcy9yZWYuanMnO1xuXG5pbXBvcnQge1xuICBib3hTaXppbmdTdHlsZXMsXG4gIGZvcmNlVHlwZSxcbiAgaWRSZWZlcmVuY2UsXG4gIGlzRXZlbnRPbkVsZW1lbnQsXG4gIGlzTGVhbixcbiAgaXNTYWZhcmksXG4gIGlzWmVyb0FuaW1hdGlvbkR1cmF0aW9uLFxuICBvdmVybGF5R2FwRml4Q29ybmVycyxcbiAgcmVtb3ZlQXJpYUNvbWJvQm94QXR0cmlidXRlcyxcbiAgU2JiRXNjYXBhYmxlT3ZlcmxheUNvbnRyb2xsZXIsXG4gIFNiYk5lZ2F0aXZlTWl4aW4sXG4gIFNiYk9wZW5DbG9zZUJhc2VFbGVtZW50LFxuICBTYmJQcm9wZXJ0eVdhdGNoZXJDb250cm9sbGVyLFxuICBzZXRPdmVybGF5UG9zaXRpb24sXG59IGZyb20gJy4uL2NvcmUudHMnO1xuaW1wb3J0IHR5cGUgeyBTYmJGb3JtRmllbGRFbGVtZW50IH0gZnJvbSAnLi4vZm9ybS1maWVsZC9mb3JtLWZpZWxkL2Zvcm0tZmllbGQuY29tcG9uZW50LnRzJztcbmltcG9ydCB0eXBlIHsgU2JiT3B0aW9uQmFzZUVsZW1lbnQgfSBmcm9tICcuLi9vcHRpb24ucHVyZS50cyc7XG5cbmltcG9ydCBzdHlsZSBmcm9tICcuL2F1dG9jb21wbGV0ZS1iYXNlLWVsZW1lbnQuc2Nzcz9pbmxpbmUnO1xuXG4vKipcbiAqIE9uIFNhZmFyaSwgdGhlIGFyaWEgcm9sZSAnbGlzdGJveCcgbXVzdCBiZSBvbiB0aGUgaG9zdCBlbGVtZW50LCBvciBlbHNlIFZvaWNlT3ZlciB3b24ndCB3b3JrIGF0IGFsbC5cbiAqIE9uIHRoZSBvdGhlciBoYW5kLCBKQVdTIGFuZCBOVkRBIG5lZWQgdGhlIHJvbGUgdG8gYmUgXCJjbG9zZXJcIiB0byB0aGUgb3B0aW9ucywgb3IgZWxzZSBvcHRncm91cHMgd29uJ3Qgd29yay5cbiAqL1xuY29uc3QgYXJpYVJvbGVPbkhvc3QgPSBpc1NhZmFyaTtcblxuLyoqXG4gKiBCYXNlIGNsYXNzIGZvciBhdXRvY29tcGxldGUgY29tcG9uZW50cy5cbiAqXG4gKiBAZXZlbnQge0V2ZW50fSBjaGFuZ2UgLSBUaGUgY2hhbmdlIGV2ZW50IGlzIGZpcmVkIG9uIHRoZSBhdXRvY29tcGxldGUncyB0cmlnZ2VyIHdoZW4gdGhlIHVzZXIgbW9kaWZpZXMgdGhlIGVsZW1lbnQncyB2YWx1ZS4gVW5saWtlIHRoZSBpbnB1dCBldmVudCwgdGhlIGNoYW5nZSBldmVudCBpcyBub3QgbmVjZXNzYXJpbHkgZmlyZWQgZm9yIGVhY2ggYWx0ZXJhdGlvbiB0byBhbiBlbGVtZW50J3MgdmFsdWUuXG4gKiBAZXZlbnQge0lucHV0RXZlbnR9IGlucHV0IC0gVGhlIGlucHV0IGV2ZW50IGZpcmVzICBvbiB0aGUgYXV0b2NvbXBsZXRlJ3MgdHJpZ2dlciB3aGVuIHRoZSB2YWx1ZSBoYXMgYmVlbiBjaGFuZ2VkIGFzIGEgZGlyZWN0IHJlc3VsdCBvZiBhIHVzZXIgYWN0aW9uLlxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgU2JiQXV0b2NvbXBsZXRlQmFzZUVsZW1lbnQ8VCA9IHN0cmluZz4gZXh0ZW5kcyBTYmJOZWdhdGl2ZU1peGluKFxuICBTYmJPcGVuQ2xvc2VCYXNlRWxlbWVudCxcbikge1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHN0eWxlczogQ1NTUmVzdWx0R3JvdXAgPSBbYm94U2l6aW5nU3R5bGVzLCB1bnNhZmVDU1Moc3R5bGUpXTtcblxuICAvKipcbiAgICogVGhlIGVsZW1lbnQgd2hlcmUgdGhlIGF1dG9jb21wbGV0ZSB3aWxsIGF0dGFjaC5cbiAgICogSWYgbm90IHNldCwgYXMgZmFsbGJhY2sgdGhlcmUgYXJlIHR3byBlbGVtZW50cyB3aGljaCBjYW4gYWN0IGFzIG9yaWdpbiB3aXRoIGZvbGxvd2luZyBwcmlvcml0eSBvcmRlcjpcbiAgICogMS4gYHNiYi1mb3JtLWZpZWxkYCBpZiBpdCBpcyBhbiBhbmNlc3Rvci5cbiAgICogMi4gdHJpZ2dlciBlbGVtZW50IGlmIHNldC5cbiAgICpcbiAgICogRm9yIGF0dHJpYnV0ZSB1c2FnZSwgcHJvdmlkZSBhbiBpZCByZWZlcmVuY2UuXG4gICAqL1xuICBAaWRSZWZlcmVuY2UoKVxuICBAcHJvcGVydHkoKVxuICBwdWJsaWMgYWNjZXNzb3Igb3JpZ2luOiBIVE1MRWxlbWVudCB8IG51bGwgPSBudWxsO1xuXG4gIC8qKlxuICAgKiBUaGUgaW5wdXQgZWxlbWVudCB0aGF0IHdpbGwgdHJpZ2dlciB0aGUgYXV0b2NvbXBsZXRlIG9wZW5pbmcuXG4gICAqIEJ5IGRlZmF1bHQsIHRoZSBhdXRvY29tcGxldGUgd2lsbCBvcGVuIG9uIGZvY3VzLCBjbGljaywgaW5wdXQgb3IgYEFycm93RG93bmAga2V5cHJlc3Mgb2YgdGhlICd0cmlnZ2VyJyBlbGVtZW50LlxuICAgKiBJZiBub3Qgc2V0LCB3aWxsIHNlYXJjaCBmb3IgdGhlIGZpcnN0ICdpbnB1dCcgY2hpbGQgb2YgYSAnc2JiLWZvcm0tZmllbGQnIGFuY2VzdG9yLlxuICAgKlxuICAgKiBGb3IgYXR0cmlidXRlIHVzYWdlLCBwcm92aWRlIGFuIGlkIHJlZmVyZW5jZS5cbiAgICovXG4gIEBpZFJlZmVyZW5jZSgpXG4gIEBwcm9wZXJ0eSgpXG4gIHB1YmxpYyBhY2Nlc3NvciB0cmlnZ2VyOiBIVE1MSW5wdXRFbGVtZW50IHwgbnVsbCA9IG51bGw7XG5cbiAgLyoqIFdoZXRoZXIgdGhlIGljb24gc3BhY2UgaXMgcHJlc2VydmVkIHdoZW4gbm8gaWNvbiBpcyBzZXQuICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdwcmVzZXJ2ZS1pY29uLXNwYWNlJywgcmVmbGVjdDogdHJ1ZSwgdHlwZTogQm9vbGVhbiB9KVxuICBwdWJsaWMgYWNjZXNzb3IgcHJlc2VydmVJY29uU3BhY2U6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKiogV2hldGhlciB0aGUgZmlyc3Qgb3B0aW9uIGlzIGF1dG9tYXRpY2FsbHkgYWN0aXZhdGVkIHdoZW4gdGhlIGF1dG9jb21wbGV0ZSBpcyBvcGVuZWQuICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdhdXRvLWFjdGl2ZS1maXJzdC1vcHRpb24nLCB0eXBlOiBCb29sZWFuIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBhdXRvQWN0aXZlRmlyc3RPcHRpb246IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKiogRnVuY3Rpb24gdGhhdCBtYXBzIGFuIG9wdGlvbidzIGNvbnRyb2wgdmFsdWUgdG8gaXRzIGRpc3BsYXkgdmFsdWUgaW4gdGhlIHRyaWdnZXIuICovXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogZmFsc2UgfSlcbiAgcHVibGljIGFjY2Vzc29yIGRpc3BsYXlXaXRoOiAoKHZhbHVlOiBUKSA9PiBzdHJpbmcpIHwgbnVsbCA9IG51bGw7XG5cbiAgLyoqXG4gICAqIFNpemUgdmFyaWFudCwgZWl0aGVyIG0gb3Igcy5cbiAgICogQGRlZmF1bHQgJ20nIC8gJ3MnIChsZWFuKVxuICAgKi9cbiAgQHByb3BlcnR5KHsgcmVmbGVjdDogdHJ1ZSB9KSBwdWJsaWMgYWNjZXNzb3Igc2l6ZTogJ20nIHwgJ3MnID0gaXNMZWFuKCkgPyAncycgOiAnbSc7XG5cbiAgLyoqIFdoZXRoZXIgdGhlIGFjdGl2ZSBvcHRpb24gc2hvdWxkIGJlIHNlbGVjdGVkIGFzIHRoZSB1c2VyIGlzIG5hdmlnYXRpbmcuICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdhdXRvLXNlbGVjdC1hY3RpdmUtb3B0aW9uJywgdHlwZTogQm9vbGVhbiB9KVxuICBwdWJsaWMgYWNjZXNzb3IgYXV0b1NlbGVjdEFjdGl2ZU9wdGlvbjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBXaGVuIGVuYWJsZWQsIHRoZSBhY3RpdmUgb3B0aW9uIGlzIGF1dG9tYXRpY2FsbHkgc2VsZWN0ZWQgb24gYmx1ci5cbiAgICogVGhpcyBpcyBhbiBleHBlcmltZW50YWwgZmVhdHVyZS4gSXQgbWlnaHQgYmUgc3ViamVjdCB0byBjaGFuZ2VzLlxuICAgKi9cbiAgQGZvcmNlVHlwZSgpXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ2F1dG8tc2VsZWN0LWFjdGl2ZS1vcHRpb24tb24tYmx1cicsIHR5cGU6IEJvb2xlYW4gfSlcbiAgcHVibGljIGFjY2Vzc29yIGF1dG9TZWxlY3RBY3RpdmVPcHRpb25PbkJsdXI6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKipcbiAgICogV2hldGhlciB0aGUgdXNlciBpcyByZXF1aXJlZCB0byBtYWtlIGEgc2VsZWN0aW9uIHdoZW4gdGhleSdyZSBpbnRlcmFjdGluZyB3aXRoIHRoZVxuICAgKiBhdXRvY29tcGxldGUuIElmIHRoZSB1c2VyIG1vdmVzIGF3YXkgZnJvbSB0aGUgYXV0b2NvbXBsZXRlIHdpdGhvdXQgc2VsZWN0aW5nIGFuIG9wdGlvbiBmcm9tXG4gICAqIHRoZSBsaXN0LCB0aGUgdmFsdWUgd2lsbCBiZSByZXNldC4gSWYgdGhlIHVzZXIgb3BlbnMgdGhlIHBhbmVsIGFuZCBjbG9zZXMgaXQgd2l0aG91dFxuICAgKiBpbnRlcmFjdGluZyBvciBzZWxlY3RpbmcgYSB2YWx1ZSwgdGhlIGluaXRpYWwgdmFsdWUgd2lsbCBiZSBrZXB0LlxuICAgKi9cbiAgQGZvcmNlVHlwZSgpXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ3JlcXVpcmUtc2VsZWN0aW9uJywgdHlwZTogQm9vbGVhbiB9KVxuICBwdWJsaWMgYWNjZXNzb3IgcmVxdWlyZVNlbGVjdGlvbjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBUaGUgcG9zaXRpb24gb2YgdGhlIGF1dG9jb21wbGV0ZSBwYW5lbCByZWxhdGl2ZSB0byB0aGUgdHJpZ2dlci5cbiAgICogQGRlZmF1bHQgJ2F1dG8nXG4gICAqL1xuICBAcHJvcGVydHkoKVxuICBwdWJsaWMgYWNjZXNzb3IgcG9zaXRpb246ICdhdXRvJyB8ICdhYm92ZScgfCAnYmVsb3cnID0gJ2F1dG8nO1xuXG4gIC8qKiBSZXR1cm5zIHRoZSBlbGVtZW50IHdoZXJlIHRoZSBhdXRvY29tcGxldGUgb3ZlcmxheSBpcyBhdHRhY2hlZCB0by4gKi9cbiAgcHVibGljIGdldCBvcmlnaW5FbGVtZW50KCk6IEhUTUxFbGVtZW50IHwgbnVsbCB7XG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMub3JpZ2luID8/XG4gICAgICB0aGlzLmNsb3Nlc3Q/Lignc2JiLWZvcm0tZmllbGQnKT8uc2hhZG93Um9vdD8ucXVlcnlTZWxlY3Rvcj8uKCcjb3ZlcmxheS1hbmNob3InKSA/P1xuICAgICAgdGhpcy50cmlnZ2VyID8/XG4gICAgICBudWxsXG4gICAgKTtcbiAgfVxuXG4gIC8qKiBSZXR1cm5zIHRoZSB0cmlnZ2VyIGVsZW1lbnQuICovXG4gIHB1YmxpYyBnZXQgdHJpZ2dlckVsZW1lbnQoKTogSFRNTElucHV0RWxlbWVudCB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLl90cmlnZ2VyRWxlbWVudCA/PyBudWxsO1xuICB9XG4gIHByaXZhdGUgX3RyaWdnZXJFbGVtZW50PzogSFRNTElucHV0RWxlbWVudCB8IG51bGw7XG5cbiAgcHJvdGVjdGVkIGFic3RyYWN0IG92ZXJsYXlJZDogc3RyaW5nO1xuICBwcm90ZWN0ZWQgYWJzdHJhY3QgcGFuZWxSb2xlOiBzdHJpbmc7XG4gIHByb3RlY3RlZCBhY3RpdmVPcHRpb246IFNiYk9wdGlvbkJhc2VFbGVtZW50PFQ+IHwgbnVsbCA9IG51bGw7XG4gIHByb3RlY3RlZCBwZW5kaW5nQXV0b1NlbGVjdGVkT3B0aW9uOiBTYmJPcHRpb25CYXNlRWxlbWVudDxUPiB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIF9yZXNpemVPYnNlcnZlciA9IG5ldyBSZXNpemVDb250cm9sbGVyKHRoaXMsIHtcbiAgICB0YXJnZXQ6IG51bGwsXG4gICAgc2tpcEluaXRpYWw6IHRydWUsXG4gICAgLy8gVGhpcyBpcyBhbiBJSUZFLCBiZWNhdXNlIHdlIG5lZWQgdG8ga2VlcCB0cmFjayBvZiB0aGUgdGltZW91dCBzdGF0ZVxuICAgIC8vIGZvciBkZWJvdW5jaW5nIHRoZSByZXNpemUgY2FsbGJhY2tzLlxuICAgIGNhbGxiYWNrOiAoKCkgPT4ge1xuICAgICAgbGV0IHRpbWVvdXRJZDogUmV0dXJuVHlwZTx0eXBlb2Ygc2V0VGltZW91dD47XG4gICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICBjbGVhclRpbWVvdXQodGltZW91dElkKTtcbiAgICAgICAgdGltZW91dElkID0gc2V0VGltZW91dCgoKSA9PiB0aGlzLl9zZXRPdmVybGF5UG9zaXRpb24oKSwgMTApO1xuICAgICAgfTtcbiAgICB9KSgpLFxuICB9KTtcbiAgLyoqIExpc3RlbnMgdG8gdGhlIGNoYW5nZXMgb24gdGhlIGBkaXNhYmxlZGAgb3IgYHJlYWRvbmx5YCBhdHRyaWJ1dGUgb2YgdGhlIHRyaWdnZXIuICovXG4gIHByaXZhdGUgX3RyaWdnZXJBdHRyaWJ1dGVPYnNlcnZlciA9ICFpc1NlcnZlclxuICAgID8gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoKG11dGF0aW9uczogTXV0YXRpb25SZWNvcmRbXSk6IHZvaWQgPT4ge1xuICAgICAgICBjb25zdCBpbnB1dCA9IG11dGF0aW9uc1swXS50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudDtcbiAgICAgICAgaWYgKGlucHV0Lmhhc0F0dHJpYnV0ZSgnZGlzYWJsZWQnKSB8fCBpbnB1dC5oYXNBdHRyaWJ1dGUoJ3JlYWRvbmx5JykpIHtcbiAgICAgICAgICB0aGlzLmNsb3NlKCk7XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgOiBudWxsO1xuICBwcml2YXRlIF9vdmVybGF5ITogSFRNTEVsZW1lbnQ7XG4gIHByaXZhdGUgX29wdGlvbkNvbnRhaW5lciE6IEhUTUxFbGVtZW50O1xuICBwcml2YXRlIF90cmlnZ2VyQWJvcnRDb250cm9sbGVyITogQWJvcnRDb250cm9sbGVyO1xuICBwcml2YXRlIF9vcGVuUGFuZWxFdmVudHNDb250cm9sbGVyITogQWJvcnRDb250cm9sbGVyO1xuICBwcml2YXRlIF9pc1BvaW50ZXJEb3duRXZlbnRPbk1lbnU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHJpdmF0ZSBfZXNjYXBhYmxlT3ZlcmxheUNvbnRyb2xsZXIgPSBuZXcgU2JiRXNjYXBhYmxlT3ZlcmxheUNvbnRyb2xsZXIodGhpcyk7XG4gIHByaXZhdGUgX29wdGlvbnNDb3VudCA9IDA7XG4gIHByaXZhdGUgX3ByZXZpb3VzRWxlbWVudHM/OiBFbGVtZW50W107XG5cbiAgLyoqIFRyYWNrcyBpbnB1dCBmcm9tIGtleWJvYXJkLiAqL1xuICBwcml2YXRlIF9sYXN0VXNlcklucHV0OiBzdHJpbmcgfCBudWxsID0gbnVsbDtcblxuICAvKiogSWYgdHJ1ZSwgdGhlICdjaGFuZ2UnIGV2ZW50IHNvdXJjZSBpcyBhbiBvcHRpb24gc2VsZWN0aW9uIG9yIGEgJ3JlcXVpcmVTZWxlY3Rpb24nIGZpZWxkIGNsZWFudXAgKi9cbiAgcHJpdmF0ZSBfaXNDdXN0b21DaGFuZ2VFdmVudCA9IGZhbHNlO1xuXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBnZXQgb3B0aW9ucygpOiBTYmJPcHRpb25CYXNlRWxlbWVudDxUPltdO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcj8uKCdvcHRpb25zZWxlY3RlZCcsIChlOiBFdmVudCkgPT4gdGhpcy5vbk9wdGlvblNlbGVjdGVkKGUpKTtcbiAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/LignybVvcHRncm91cHNsb3RjaGFuZ2UnLCAoKSA9PiB0aGlzLl9oYW5kbGVTbG90Y2hhbmdlKCksIHtcbiAgICAgIGNhcHR1cmU6IHRydWUsXG4gICAgfSk7XG4gICAgdGhpcy5hZGRDb250cm9sbGVyKFxuICAgICAgbmV3IFNiYlByb3BlcnR5V2F0Y2hlckNvbnRyb2xsZXIoXG4gICAgICAgIHRoaXMsXG4gICAgICAgICgpID0+IHRoaXMuY2xvc2VzdDxTYmJGb3JtRmllbGRFbGVtZW50Pignc2JiLWZvcm0tZmllbGQnKSxcbiAgICAgICAge1xuICAgICAgICAgIG5lZ2F0aXZlOiAoZSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5uZWdhdGl2ZSA9IGUubmVnYXRpdmU7XG4gICAgICAgICAgICB0aGlzLnN5bmNOZWdhdGl2ZSgpO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgYm9yZGVybGVzczogKGUpID0+IHRoaXMudG9nZ2xlU3RhdGUoJ29wdGlvbi1wYW5lbC1vcmlnaW4tYm9yZGVybGVzcycsIGUuYm9yZGVybGVzcyksXG4gICAgICAgIH0sXG4gICAgICApLFxuICAgICk7XG4gIH1cblxuICBwcm90ZWN0ZWQgYWJzdHJhY3Qgc3luY05lZ2F0aXZlKCk6IHZvaWQ7XG4gIHByb3RlY3RlZCBhYnN0cmFjdCBzZXRUcmlnZ2VyQXR0cmlidXRlcyhlbGVtZW50OiBIVE1MSW5wdXRFbGVtZW50KTogdm9pZDtcbiAgcHJvdGVjdGVkIGFic3RyYWN0IG9wZW5lZFBhbmVsS2V5Ym9hcmRJbnRlcmFjdGlvbihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQ7XG4gIHByb3RlY3RlZCBhYnN0cmFjdCBzZWxlY3RCeUtleWJvYXJkKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZDtcbiAgcHJvdGVjdGVkIGFic3RyYWN0IHNldE5leHRBY3RpdmVPcHRpb24oZXZlbnQ/OiBLZXlib2FyZEV2ZW50KTogdm9pZDtcbiAgcHJvdGVjdGVkIGFic3RyYWN0IHJlc2V0QWN0aXZlRWxlbWVudCgpOiB2b2lkO1xuXG4gIC8qKiBPcGVucyB0aGUgYXV0b2NvbXBsZXRlLiAqL1xuICBwdWJsaWMgb3BlbigpOiB2b2lkIHtcbiAgICBpZiAoXG4gICAgICB0aGlzLnN0YXRlID09PSAnb3BlbmluZycgfHxcbiAgICAgIHRoaXMuc3RhdGUgPT09ICdvcGVuZWQnIHx8XG4gICAgICAhdGhpcy5fb3ZlcmxheSB8fFxuICAgICAgdGhpcy5vcHRpb25zLmxlbmd0aCA9PT0gMCB8fFxuICAgICAgdGhpcy5fcmVhZG9ubHkoKSB8fFxuICAgICAgIXRoaXMuZGlzcGF0Y2hCZWZvcmVPcGVuRXZlbnQoKVxuICAgICkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuc2hvd1BvcG92ZXI/LigpO1xuICAgIHRoaXMuc3RhdGUgPSAnb3BlbmluZyc7XG4gICAgdGhpcy50cmlnZ2VyRWxlbWVudD8udG9nZ2xlQXR0cmlidXRlKCdkYXRhLWV4cGFuZGVkJywgdHJ1ZSk7XG4gICAgY29uc3Qgb3JpZ2luRWxlbWVudCA9IHRoaXMub3JpZ2luRWxlbWVudDtcbiAgICBpZiAoIW9yaWdpbkVsZW1lbnQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ0Nhbm5vdCBmaW5kIHRoZSBvcmlnaW4gZWxlbWVudC4gUGxlYXNlIHNwZWNpZnkgYSB2YWxpZCBlbGVtZW50IG9yIGNoZWNrIHRoZSB1c2FnZSBvZiB0aGUgXCJvcmlnaW5cIiBwcm9wZXJ0eSBmcm9tIHRoZSBkb2N1bWVudGF0aW9uJyxcbiAgICAgICk7XG4gICAgfVxuICAgIHRoaXMuX3NldE92ZXJsYXlQb3NpdGlvbihvcmlnaW5FbGVtZW50KTtcbiAgICB0aGlzLl9zZXROZXh0QWN0aXZlT3B0aW9uSWZBdXRvQWN0aXZlRmlyc3RPcHRpb24oKTtcbiAgICB0aGlzLl9hdHRhY2hPcGVuUGFuZWxFdmVudHMoKTtcbiAgICB0aGlzLl9lc2NhcGFibGVPdmVybGF5Q29udHJvbGxlci5jb25uZWN0KCk7XG5cbiAgICAvLyBJZiB0aGUgYW5pbWF0aW9uIGR1cmF0aW9uIGlzIHplcm8sIHRoZSBhbmltYXRpb25lbmQgZXZlbnQgaXMgbm90IGFsd2F5cyBmaXJlZCByZWxpYWJseS5cbiAgICAvLyBJbiB0aGlzIGNhc2Ugd2UgZGlyZWN0bHkgc2V0IHRoZSBgb3BlbmVkYCBzdGF0ZS5cbiAgICBpZiAodGhpcy5faXNaZXJvQW5pbWF0aW9uRHVyYXRpb24oKSkge1xuICAgICAgdGhpcy5faGFuZGxlT3BlbmluZygpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBDbG9zZXMgdGhlIGF1dG9jb21wbGV0ZS4gKi9cbiAgcHVibGljIGNsb3NlKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnN0YXRlID09PSAnY2xvc2luZycgfHwgdGhpcy5zdGF0ZSA9PT0gJ2Nsb3NlZCcgfHwgIXRoaXMuZGlzcGF0Y2hCZWZvcmVDbG9zZUV2ZW50KCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBBICdwZW5kaW5nIHNlbGVjdGlvbicgaXMgY29uZmlybWVkIG9uIHBhbmVsIGNsb3NlXG4gICAgaWYgKHRoaXMucGVuZGluZ0F1dG9TZWxlY3RlZE9wdGlvbikge1xuICAgICAgdGhpcy5wZW5kaW5nQXV0b1NlbGVjdGVkT3B0aW9uLnNlbGVjdGVkID0gdHJ1ZTtcbiAgICAgIHRoaXMuX3NldFZhbHVlQW5kRGlzcGF0Y2hFdmVudHModGhpcy5wZW5kaW5nQXV0b1NlbGVjdGVkT3B0aW9uLCB0cnVlKTtcbiAgICB9XG5cbiAgICB0aGlzLnN0YXRlID0gJ2Nsb3NpbmcnO1xuICAgIHRoaXMudHJpZ2dlckVsZW1lbnQ/LnJlbW92ZUF0dHJpYnV0ZSgnZGF0YS1leHBhbmRlZCcpO1xuICAgIHRoaXMuX29wZW5QYW5lbEV2ZW50c0NvbnRyb2xsZXIuYWJvcnQoKTtcbiAgICBpZiAodGhpcy5vcmlnaW5FbGVtZW50KSB7XG4gICAgICB0aGlzLl9yZXNpemVPYnNlcnZlci51bm9ic2VydmUodGhpcy5vcmlnaW5FbGVtZW50KTtcbiAgICB9XG5cbiAgICAvLyBJZiB0aGUgYW5pbWF0aW9uIGR1cmF0aW9uIGlzIHplcm8sIHRoZSBhbmltYXRpb25lbmQgZXZlbnQgaXMgbm90IGFsd2F5cyBmaXJlZCByZWxpYWJseS5cbiAgICAvLyBJbiB0aGlzIGNhc2Ugd2UgZGlyZWN0bHkgc2V0IHRoZSBgY2xvc2VkYCBzdGF0ZS5cbiAgICBpZiAodGhpcy5faXNaZXJvQW5pbWF0aW9uRHVyYXRpb24oKSkge1xuICAgICAgdGhpcy5faGFuZGxlQ2xvc2luZygpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2lzWmVyb0FuaW1hdGlvbkR1cmF0aW9uKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBpc1plcm9BbmltYXRpb25EdXJhdGlvbih0aGlzLCAnLS1zYmItb3B0aW9ucy1wYW5lbC1hbmltYXRpb24tZHVyYXRpb24nKTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICB0aGlzLnBvcG92ZXIgPSAnbWFudWFsJztcbiAgICBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpO1xuICAgIGlmIChhcmlhUm9sZU9uSG9zdCkge1xuICAgICAgdGhpcy5pZCB8fD0gdGhpcy5vdmVybGF5SWQ7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuaGFzVXBkYXRlZCkge1xuICAgICAgdGhpcy5fY29tcG9uZW50U2V0dXAoKTtcbiAgICB9XG4gICAgdGhpcy5zeW5jTmVnYXRpdmUoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSB3aWxsVXBkYXRlKGNoYW5nZWRQcm9wZXJ0aWVzOiBQcm9wZXJ0eVZhbHVlczx0aGlzPik6IHZvaWQge1xuICAgIHN1cGVyLndpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXMpO1xuXG4gICAgaWYgKGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygnbmVnYXRpdmUnKSkge1xuICAgICAgdGhpcy5zeW5jTmVnYXRpdmUoKTtcbiAgICB9XG5cbiAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdhdXRvQWN0aXZlRmlyc3RPcHRpb24nKSAmJiB0aGlzLmlzT3Blbikge1xuICAgICAgdGhpcy5fc2V0TmV4dEFjdGl2ZU9wdGlvbklmQXV0b0FjdGl2ZUZpcnN0T3B0aW9uKCk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGZpcnN0VXBkYXRlZChjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXM8dGhpcz4pOiB2b2lkIHtcbiAgICBzdXBlci5maXJzdFVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXMpO1xuICAgIHRoaXMuX2NvbXBvbmVudFNldHVwKCk7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgZGlzY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKTtcbiAgICB0aGlzLl90cmlnZ2VyRWxlbWVudCA9IG51bGw7XG4gICAgdGhpcy5fdHJpZ2dlckFib3J0Q29udHJvbGxlcj8uYWJvcnQoKTtcbiAgICB0aGlzLl9vcGVuUGFuZWxFdmVudHNDb250cm9sbGVyPy5hYm9ydCgpO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIHJlcXVlc3RVcGRhdGUoXG4gICAgbmFtZT86IFByb3BlcnR5S2V5LFxuICAgIG9sZFZhbHVlPzogdW5rbm93bixcbiAgICBvcHRpb25zPzogUHJvcGVydHlEZWNsYXJhdGlvbixcbiAgKTogdm9pZCB7XG4gICAgc3VwZXIucmVxdWVzdFVwZGF0ZShuYW1lLCBvbGRWYWx1ZSwgb3B0aW9ucyk7XG5cbiAgICBpZiAoaXNTZXJ2ZXIgfHwgIXRoaXMuaGFzVXBkYXRlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoIW5hbWUgfHwgbmFtZSA9PT0gJ3RyaWdnZXInKSB7XG4gICAgICB0aGlzLl9jb25maWd1cmVUcmlnZ2VyKCk7XG4gICAgfSBlbHNlIGlmICgoIW5hbWUgfHwgbmFtZSA9PT0gJ29yaWdpbicpICYmIHRoaXMuaXNPcGVuKSB7XG4gICAgICB0aGlzLl9zZXRPdmVybGF5UG9zaXRpb24oKTtcbiAgICB9XG4gIH1cblxuICAvKiogV2hlbiBhbiBvcHRpb24gaXMgc2VsZWN0ZWQsIHVwZGF0ZSB0aGUgaW5wdXQgdmFsdWUgYW5kIGNsb3NlIHRoZSBhdXRvY29tcGxldGUuICovXG4gIHByb3RlY3RlZCBvbk9wdGlvblNlbGVjdGVkKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldCBhcyBTYmJPcHRpb25CYXNlRWxlbWVudDxUPjtcbiAgICB0aGlzLl9zZXRWYWx1ZUFuZERpc3BhdGNoRXZlbnRzKHRhcmdldCk7XG4gICAgdGhpcy5jbG9zZSgpO1xuICB9XG5cbiAgLyoqIEBkZXByZWNhdGVkICovXG4gIHByb3RlY3RlZCBvbk9wdGlvbkFycm93c1NlbGVjdGVkKF9hY3RpdmVPcHRpb246IFNiYk9wdGlvbkJhc2VFbGVtZW50PFQ+KTogdm9pZCB7fVxuXG4gIC8qKlxuICAgKiBBICdwZW5kaW5nIHNlbGVjdGlvbicgc2V0cyB0aGUgb3B0aW9uIHZhbHVlIGluIHRoZSBpbnB1dCBlbGVtZW50IHdpdGhvdXQgZW1pdHRpbmcgZXZlbnRzLlxuICAgKiBBICdwZW5kaW5nIHNlbGVjdGlvbicgaXMgY29uZmlybWVkIHdoZW4gdGhlIHBhbmVsIGNsb3Nlcy4gQW55IG90aGVyIHVzZXIgaW50ZXJhY3Rpb25cbiAgICogd2lsbCByZXNldCB0aGUgcGVuZGluZyB2YWx1ZS5cbiAgICovXG4gIHByb3RlY3RlZCBzZXRQZW5kaW5nU2VsZWN0aW9uKGFjdGl2ZU9wdGlvbjogU2JiT3B0aW9uQmFzZUVsZW1lbnQ8VD4pOiB2b2lkIHtcbiAgICB0aGlzLnBlbmRpbmdBdXRvU2VsZWN0ZWRPcHRpb24gPSBhY3RpdmVPcHRpb247XG4gICAgdGhpcy5fc2V0SW5wdXRWYWx1ZShhY3RpdmVPcHRpb24pO1xuICB9XG5cbiAgcHJpdmF0ZSBfc2V0VmFsdWVBbmREaXNwYXRjaEV2ZW50cyhcbiAgICBzZWxlY3RlZE9wdGlvbjogU2JiT3B0aW9uQmFzZUVsZW1lbnQ8VD4sXG4gICAgcHJldmVudEZvY3VzID0gZmFsc2UsXG4gICk6IHZvaWQge1xuICAgIC8vIERlc2VsZWN0IHRoZSBwcmV2aW91cyBvcHRpb25zXG4gICAgdGhpcy5vcHRpb25zXG4gICAgICAuZmlsdGVyKChvcHRpb24pID0+IG9wdGlvbi5pZCAhPT0gc2VsZWN0ZWRPcHRpb24uaWQgJiYgb3B0aW9uLnNlbGVjdGVkKVxuICAgICAgLmZvckVhY2goKG9wdGlvbikgPT4gKG9wdGlvbi5zZWxlY3RlZCA9IGZhbHNlKSk7XG4gICAgdGhpcy5wZW5kaW5nQXV0b1NlbGVjdGVkT3B0aW9uID0gbnVsbDtcblxuICAgIGlmICh0aGlzLnRyaWdnZXJFbGVtZW50KSB7XG4gICAgICB0aGlzLl9zZXRJbnB1dFZhbHVlKHNlbGVjdGVkT3B0aW9uKTtcblxuICAgICAgLy8gTWFudWFsbHkgdHJpZ2dlciB0aGUgY2hhbmdlIGV2ZW50c1xuICAgICAgdGhpcy5faXNDdXN0b21DaGFuZ2VFdmVudCA9IHRydWU7XG4gICAgICB0aGlzLnRyaWdnZXJFbGVtZW50LmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCdjaGFuZ2UnLCB7IGJ1YmJsZXM6IHRydWUgfSkpO1xuICAgICAgdGhpcy50cmlnZ2VyRWxlbWVudC5kaXNwYXRjaEV2ZW50KG5ldyBJbnB1dEV2ZW50KCdpbnB1dCcsIHsgYnViYmxlczogdHJ1ZSwgY29tcG9zZWQ6IHRydWUgfSkpO1xuXG4gICAgICAvLyBEaXNwYXRjaGluZyB0aGUgaW5wdXQgZXZlbnQgY2hhbmdlcyBfbGFzdElucHV0LCB3aGljaCBzaG91bGQgc3RheSBlbXB0eSBzaW5jZSB0aGVyZSdzIG5vIGtleWJvYXJkIGludGVyYWN0aW9uLlxuICAgICAgdGhpcy5fbGFzdFVzZXJJbnB1dCA9IG51bGw7XG5cbiAgICAgIC8vIEN1c3RvbSBpbnB1dCBldmVudCBlbWl0dGVkIHdoZW4gaW5wdXQgdmFsdWUgY2hhbmdlcyBhZnRlciBhbiBvcHRpb24gaXMgc2VsZWN0ZWRcbiAgICAgIHRoaXMudHJpZ2dlckVsZW1lbnQuZGlzcGF0Y2hFdmVudChcbiAgICAgICAgbmV3IEN1c3RvbUV2ZW50PHsgb3B0aW9uOiBTYmJPcHRpb25CYXNlRWxlbWVudDxUPiB9PignaW5wdXRBdXRvY29tcGxldGUnLCB7XG4gICAgICAgICAgZGV0YWlsOiB7IG9wdGlvbjogc2VsZWN0ZWRPcHRpb24gfSxcbiAgICAgICAgfSksXG4gICAgICApO1xuICAgICAgaWYgKCFwcmV2ZW50Rm9jdXMpIHtcbiAgICAgICAgdGhpcy50cmlnZ2VyRWxlbWVudC5mb2N1cygpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKiBTZXQgdGhlIG9wdGlvbiB2YWx1ZSB3aXRoaW4gdGhlIGlucHV0IGVsZW1lbnQgKi9cbiAgcHJpdmF0ZSBfc2V0SW5wdXRWYWx1ZShvcHRpb246IFNiYk9wdGlvbkJhc2VFbGVtZW50PFQ+KTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnRyaWdnZXJFbGVtZW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gR2l2ZW4gYSB2YWx1ZSwgcmV0dXJucyB0aGUgc3RyaW5nIHRoYXQgc2hvdWxkIGJlIHNob3duIHdpdGhpbiB0aGUgaW5wdXQuXG4gICAgY29uc3QgdG9EaXNwbGF5ID0gdGhpcy5kaXNwbGF5V2l0aD8uKG9wdGlvbi52YWx1ZSBhcyBUKSA/PyBvcHRpb24udmFsdWU7XG5cbiAgICAvLyBTZXQgdGhlIG9wdGlvbiB2YWx1ZVxuICAgIC8vIEluIG9yZGVyIHRvIHN1cHBvcnQgUmVhY3Qgb25DaGFuZ2UgZXZlbnQsIHdlIGhhdmUgdG8gZ2V0IHRoZSBzZXR0ZXIgYW5kIGNhbGwgaXQuXG4gICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL3JlYWN0L2lzc3Vlcy8xMTYwMCNpc3N1ZWNvbW1lbnQtMzQ1ODEzMTMwXG4gICAgY29uc3Qgc2V0VmFsdWUgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEhUTUxJbnB1dEVsZW1lbnQucHJvdG90eXBlLCAndmFsdWUnKSEuc2V0ITtcbiAgICBzZXRWYWx1ZS5jYWxsKHRoaXMudHJpZ2dlckVsZW1lbnQsIHRvRGlzcGxheSk7XG4gIH1cblxuICBwcml2YXRlIF9oYW5kbGVTbG90Y2hhbmdlKCk6IHZvaWQge1xuICAgIHRoaXMuX2hpZ2hsaWdodE9wdGlvbnModGhpcy50cmlnZ2VyRWxlbWVudD8udmFsdWUpO1xuXG4gICAgLy8gSXQgaXMgcG9zc2libGUgdGhhdCBhbiBlbGVtZW50IGlzIGFkZGVkIHRoYXQgaGFzIG5vdCBiZWVuIHJlbmRlcmVkXG4gICAgLy8geWV0IGFuZCB0aGVyZWZvcmUgaGFzIGhlaWdodCAwLiBUaGVyZWZvcmUgd2UgYWxzbyBvYnNlcnZlIHRoZSBzaXplXG4gICAgLy8gb2YgYWxsIGNoaWxkIGVsZW1lbnRzLlxuICAgIGNvbnN0IGN1cnJlbnRFbGVtZW50cyA9IEFycmF5LmZyb20odGhpcy5xdWVyeVNlbGVjdG9yQWxsKCcqJykpO1xuICAgIHRoaXMuX3ByZXZpb3VzRWxlbWVudHM/LmZvckVhY2goKGUpID0+IHRoaXMuX3Jlc2l6ZU9ic2VydmVyLnVub2JzZXJ2ZShlKSk7XG4gICAgdGhpcy5fcHJldmlvdXNFbGVtZW50cyA9IGN1cnJlbnRFbGVtZW50cztcbiAgICB0aGlzLl9wcmV2aW91c0VsZW1lbnRzLmZvckVhY2goKGUpID0+IHRoaXMuX3Jlc2l6ZU9ic2VydmVyLm9ic2VydmUoZSkpO1xuXG4gICAgLyoqXG4gICAgICogSXQncyBwb3NzaWJsZSB0byBmaWx0ZXIgb3V0IG9wdGlvbnMgd2l0aCBhbiBvcGVuZWQgcGFuZWwgb24gaW5wdXQgY2hhbmdlLlxuICAgICAqIEluIHRoaXMgY2FzZSwgdGhlIHBhbmVsJ3MgcG9zaXRpb24gbXVzdCBiZSByZWNhbGN1bGF0ZWQgY29uc2lkZXJpbmcgdGhlIG5ldyBvcHRpb24ncyBsaXN0LlxuICAgICAqL1xuICAgIGlmICh0aGlzLmlzT3Blbikge1xuICAgICAgdGhpcy5fc2V0T3ZlcmxheVBvc2l0aW9uKCk7XG4gICAgICB0aGlzLl9zZXROZXh0QWN0aXZlT3B0aW9uSWZBdXRvQWN0aXZlRmlyc3RPcHRpb24oKTtcblxuICAgICAgLy8gSWYgdGhlIGF1dG9jb21wbGV0ZSBpcyBvcGVuIGFuZCB0aGUgb3B0aW9uIGNvdW50IGdldHMgdG8gemVybywgd2UgY2xvc2UgdGhlIGF1dG9jb21wbGV0ZS5cbiAgICAgIGlmICh0aGlzLl9vcHRpb25zQ291bnQgPiAwICYmIHRoaXMub3B0aW9ucy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgdGhpcy5jbG9zZSgpO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoXG4gICAgICAvLyBJZiB0aGUgJ2lucHV0JyBpcyBmb2N1c2VkIGFuZCB0aGUgY291bnQgb2Ygb3B0aW9ucyBjaGFuZ2VzIGZyb20gMCB0byA+IDAsXG4gICAgICAvLyB0aGUgYXV0b2NvbXBsZXRlIHNob3VsZCBvcGVuIGF1dG9tYXRpY2FsbHkuXG4gICAgICBkb2N1bWVudD8uYWN0aXZlRWxlbWVudCA9PT0gdGhpcy50cmlnZ2VyRWxlbWVudCAmJlxuICAgICAgdGhpcy5fb3B0aW9uc0NvdW50ID09PSAwICYmXG4gICAgICB0aGlzLm9wdGlvbnMubGVuZ3RoID4gMFxuICAgICkge1xuICAgICAgdGhpcy5vcGVuKCk7XG4gICAgfVxuXG4gICAgdGhpcy5fb3B0aW9uc0NvdW50ID0gdGhpcy5vcHRpb25zLmxlbmd0aDtcbiAgfVxuXG4gIHByaXZhdGUgX3NldE5leHRBY3RpdmVPcHRpb25JZkF1dG9BY3RpdmVGaXJzdE9wdGlvbigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5hdXRvQWN0aXZlRmlyc3RPcHRpb24pIHtcbiAgICAgIHRoaXMucmVzZXRBY3RpdmVFbGVtZW50KCk7XG4gICAgICB0aGlzLnNldE5leHRBY3RpdmVPcHRpb24oKTtcbiAgICB9XG4gIH1cblxuICAvKiogVGhlIGF1dG9jb21wbGV0ZSBzaG91bGQgaW5oZXJpdCAncmVhZG9ubHknIHN0YXRlIGZyb20gdGhlIHRyaWdnZXIuICovXG4gIHByaXZhdGUgX3JlYWRvbmx5KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnRyaWdnZXJFbGVtZW50Py5oYXNBdHRyaWJ1dGUoJ3JlYWRvbmx5JykgPz8gZmFsc2U7XG4gIH1cblxuICBwcml2YXRlIF9jb21wb25lbnRTZXR1cCgpOiB2b2lkIHtcbiAgICBpZiAoaXNTZXJ2ZXIpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLl9jb25maWd1cmVUcmlnZ2VyKCk7XG4gIH1cblxuICBwcml2YXRlIF9jb25maWd1cmVUcmlnZ2VyKCk6IHZvaWQge1xuICAgIGNvbnN0IHRyaWdnZXJFbGVtZW50ID0gKHRoaXMudHJpZ2dlciA/P1xuICAgICAgdGhpcy5jbG9zZXN0Py4oJ3NiYi1mb3JtLWZpZWxkJyk/LnF1ZXJ5U2VsZWN0b3IoJ2lucHV0JykpIGFzIEhUTUxJbnB1dEVsZW1lbnQgfCBudWxsO1xuICAgIGlmICh0cmlnZ2VyRWxlbWVudCA9PT0gdGhpcy50cmlnZ2VyRWxlbWVudCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuX3RyaWdnZXJBYm9ydENvbnRyb2xsZXI/LmFib3J0KCk7XG4gICAgcmVtb3ZlQXJpYUNvbWJvQm94QXR0cmlidXRlcyh0aGlzLnRyaWdnZXJFbGVtZW50KTtcbiAgICB0aGlzLnRyaWdnZXJFbGVtZW50Py5yZW1vdmVBdHRyaWJ1dGUoJ2RhdGEtZXhwYW5kZWQnKTtcbiAgICB0aGlzLl90cmlnZ2VyRWxlbWVudCA9IHRyaWdnZXJFbGVtZW50O1xuXG4gICAgaWYgKCF0aGlzLnRyaWdnZXJFbGVtZW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gQXMgdGhlIHRyaWdnZXIgY2FuIGJlIHRoZSBmYWxsYmFjayBvZiB0aGUgb3JpZ2luLCB3ZSBldmVudHVhbGx5IGhhdmUgdG8gdXBkYXRlIHRoZSBwb3NpdGlvbi5cbiAgICBjb25zdCBvcmlnaW5FbGVtZW50ID0gdGhpcy5vcmlnaW5FbGVtZW50O1xuICAgIGlmICh0aGlzLnRyaWdnZXJFbGVtZW50ID09PSBvcmlnaW5FbGVtZW50ICYmIHRoaXMuaXNPcGVuKSB7XG4gICAgICB0aGlzLl9zZXRPdmVybGF5UG9zaXRpb24ob3JpZ2luRWxlbWVudCk7XG4gICAgfVxuXG4gICAgdGhpcy5fdHJpZ2dlckF0dHJpYnV0ZU9ic2VydmVyPy5vYnNlcnZlKHRoaXMudHJpZ2dlckVsZW1lbnQhLCB7XG4gICAgICBhdHRyaWJ1dGVzOiB0cnVlLFxuICAgICAgYXR0cmlidXRlRmlsdGVyOiBbJ2Rpc2FibGVkJywgJ3JlYWRvbmx5J10sXG4gICAgfSk7XG5cbiAgICB0aGlzLnNldFRyaWdnZXJBdHRyaWJ1dGVzKHRoaXMudHJpZ2dlckVsZW1lbnQpO1xuICAgIHRoaXMuX3RyaWdnZXJBYm9ydENvbnRyb2xsZXIgPSBuZXcgQWJvcnRDb250cm9sbGVyKCk7XG5cbiAgICAvLyBPcGVuIHRoZSBvdmVybGF5IG9uIGZvY3VzLCBjbGljaywgaW5wdXQgYW5kIGBBcnJvd0Rvd25gIGV2ZW50XG4gICAgdGhpcy50cmlnZ2VyRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdmb2N1cycsICgpID0+IHRoaXMub3BlbigpLCB7XG4gICAgICBzaWduYWw6IHRoaXMuX3RyaWdnZXJBYm9ydENvbnRyb2xsZXIuc2lnbmFsLFxuICAgIH0pO1xuICAgIHRoaXMudHJpZ2dlckVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoKSA9PiB0aGlzLm9wZW4oKSwge1xuICAgICAgc2lnbmFsOiB0aGlzLl90cmlnZ2VyQWJvcnRDb250cm9sbGVyLnNpZ25hbCxcbiAgICB9KTtcbiAgICB0aGlzLnRyaWdnZXJFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoXG4gICAgICAnaW5wdXQnLFxuICAgICAgKGV2ZW50KSA9PiB7XG4gICAgICAgIGNvbnN0IHZhbHVlOiBzdHJpbmcgPSAoZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQpLnZhbHVlO1xuXG4gICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgIHRoaXMub3BlbigpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2hpZ2hsaWdodE9wdGlvbnModmFsdWUpO1xuICAgICAgICB0aGlzLl9sYXN0VXNlcklucHV0ID0gdmFsdWU7XG4gICAgICAgIHRoaXMucGVuZGluZ0F1dG9TZWxlY3RlZE9wdGlvbiA9IG51bGw7XG4gICAgICB9LFxuICAgICAgeyBzaWduYWw6IHRoaXMuX3RyaWdnZXJBYm9ydENvbnRyb2xsZXIuc2lnbmFsIH0sXG4gICAgKTtcbiAgICB0aGlzLnRyaWdnZXJFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoXG4gICAgICAnY2hhbmdlJyxcbiAgICAgIChldmVudCkgPT4ge1xuICAgICAgICAvKipcbiAgICAgICAgICogSW4gJ3JlcXVpcmVTZWxlY3Rpb24nIG1vZGUsIHdlIGJsb2NrIHRoZSBuYXRpdmUgY2hhbmdlIGV2ZW50cyBhbmRcbiAgICAgICAgICogbGV0IG9ubHkgcGFzcyB0aGUgb25lcyB0aGF0IGNvbWUgd2l0aCBhIHZhbGlkIHZhbHVlICh3aGVuIGFuIG9wdGlvbiBpcyBzZWxlY3RlZClcbiAgICAgICAgICovXG4gICAgICAgIGlmICh0aGlzLnJlcXVpcmVTZWxlY3Rpb24gJiYgIXRoaXMuX2lzQ3VzdG9tQ2hhbmdlRXZlbnQpIHtcbiAgICAgICAgICBldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9pc0N1c3RvbUNoYW5nZUV2ZW50ID0gZmFsc2U7XG4gICAgICB9LFxuICAgICAgeyBzaWduYWw6IHRoaXMuX3RyaWdnZXJBYm9ydENvbnRyb2xsZXIuc2lnbmFsLCBjYXB0dXJlOiB0cnVlIH0sXG4gICAgKTtcbiAgICB0aGlzLnRyaWdnZXJFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoXG4gICAgICAna2V5ZG93bicsXG4gICAgICAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpID0+IHRoaXMuX2Nsb3NlZFBhbmVsS2V5Ym9hcmRJbnRlcmFjdGlvbihldmVudCksXG4gICAgICB7XG4gICAgICAgIHNpZ25hbDogdGhpcy5fdHJpZ2dlckFib3J0Q29udHJvbGxlci5zaWduYWwsXG4gICAgICAgIC8vIFdlIG5lZWQga2V5IGV2ZW50IHRvIHJ1biBiZWZvcmUgYW55IG90aGVyIHN1YnNjcmlwdGlvbiB0byBndWFyYW50ZWUgYSBjb3JyZWN0XG4gICAgICAgIC8vIGludGVyYWN0aW9uIHdpdGggb3RoZXIgY29tcG9uZW50cyAobmVjZXNzYXJ5IGZvciB0aGUgJ3NiYi1jaGlwLWdyb3VwJyB1c2UgY2FzZSkuXG4gICAgICAgIGNhcHR1cmU6IHRydWUsXG4gICAgICB9LFxuICAgICk7XG5cbiAgICB0aGlzLnRyaWdnZXJFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoXG4gICAgICAnYmx1cicsXG4gICAgICAoZSkgPT4ge1xuICAgICAgICAvLyBJZiB0aGUgbmV3IGZvY3VzIGlzIHRoZSBhdXRvY29tcGxldGUgb3IgaW5zaWRlIG9mIGl0IHRoZW4gYW4gb3B0aW9uXG4gICAgICAgIC8vIHdhcyBzZWxlY3RlZC4gVGhlcmVmb3JlLCB0aGUgZm9jdXMgaXMgc3RpbGwgb24gdGhlIGNvbXBvbmVudC5cbiAgICAgICAgaWYgKHRoaXMuY29udGFpbnMoZS5yZWxhdGVkVGFyZ2V0IGFzIE5vZGUpKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gSWYgJ2F1dG9TZWxlY3RBY3RpdmVPcHRpb25PbkJsdXInIGlzIGVuYWJsZWQsIHNlbGVjdCB0aGUgYWN0aXZlIG9wdGlvbiBvbiBibHVyXG4gICAgICAgIGlmIChcbiAgICAgICAgICB0aGlzLmF1dG9TZWxlY3RBY3RpdmVPcHRpb25PbkJsdXIgJiZcbiAgICAgICAgICB0aGlzLmFjdGl2ZU9wdGlvbiAmJlxuICAgICAgICAgIHRoaXMuX2xhc3RVc2VySW5wdXQgJiZcbiAgICAgICAgICB0aGlzLnRyaWdnZXJFbGVtZW50Py52YWx1ZVxuICAgICAgICApIHtcbiAgICAgICAgICB0aGlzLmFjdGl2ZU9wdGlvbi5zZWxlY3RlZCA9IHRydWU7XG4gICAgICAgICAgdGhpcy5fc2V0VmFsdWVBbmREaXNwYXRjaEV2ZW50cyh0aGlzLmFjdGl2ZU9wdGlvbiwgdHJ1ZSk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBDbGVhcnMgdGhlIGlucHV0IGlmIHRoZXJlJ3MgdXNlciBpbnRlcmFjdGlvbiB3aXRob3V0IHNlbGVjdGlvbiAoc2VsZWN0aW9uIGNsZWFycyBgX2xhc3RVc2VySW5wdXRgKS5cbiAgICAgICAgaWYgKHRoaXMucmVxdWlyZVNlbGVjdGlvbiAmJiB0aGlzLnRyaWdnZXJFbGVtZW50ICYmIHRoaXMuX2xhc3RVc2VySW5wdXQgIT0gbnVsbCkge1xuICAgICAgICAgIGNvbnN0IHNldFZhbHVlID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihcbiAgICAgICAgICAgIEhUTUxJbnB1dEVsZW1lbnQucHJvdG90eXBlLFxuICAgICAgICAgICAgJ3ZhbHVlJyxcbiAgICAgICAgICApIS5zZXQhO1xuICAgICAgICAgIHNldFZhbHVlLmNhbGwodGhpcy50cmlnZ2VyRWxlbWVudCwgJycpO1xuICAgICAgICAgIHRoaXMuX2hpZ2hsaWdodE9wdGlvbnMoJycpO1xuICAgICAgICAgIHRoaXMuX2lzQ3VzdG9tQ2hhbmdlRXZlbnQgPSB0cnVlO1xuICAgICAgICAgIHRoaXMudHJpZ2dlckVsZW1lbnQuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ2NoYW5nZScsIHsgYnViYmxlczogdHJ1ZSB9KSk7XG4gICAgICAgICAgdGhpcy50cmlnZ2VyRWxlbWVudC5kaXNwYXRjaEV2ZW50KFxuICAgICAgICAgICAgbmV3IElucHV0RXZlbnQoJ2lucHV0JywgeyBidWJibGVzOiB0cnVlLCBjb21wb3NlZDogdHJ1ZSB9KSxcbiAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5jbG9zZSgpO1xuICAgICAgfSxcbiAgICAgIHsgc2lnbmFsOiB0aGlzLl90cmlnZ2VyQWJvcnRDb250cm9sbGVyLnNpZ25hbCwgY2FwdHVyZTogdHJ1ZSB9LFxuICAgICk7XG4gIH1cblxuICAvLyBTZXQgb3ZlcmxheSBwb3NpdGlvbiwgd2lkdGggYW5kIG1heCBoZWlnaHRcbiAgcHJpdmF0ZSBfc2V0T3ZlcmxheVBvc2l0aW9uKG9yaWdpbkVsZW1lbnQgPSB0aGlzLm9yaWdpbkVsZW1lbnQpOiB2b2lkIHtcbiAgICAvLyBBbiB1bmRlZmluZWQgb3JpZ2luRWxlbWVudCBzaG91bGQgb25seSBvY2N1ciBpbiB0aGUgdW5saWtlbHkgZXZlbnRcbiAgICAvLyB0aGF0IHRoZSBhdXRvY29tcGxldGUgbG9zZXMgaXRzIG9yaWdpbkVsZW1lbnQgYW5kIHRyaWdnZXJFbGVtZW50IGR1cmluZyBhbiBvcGVuIHN0YXRlLlxuICAgIGlmICghb3JpZ2luRWxlbWVudCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBzZXRPdmVybGF5UG9zaXRpb24oXG4gICAgICB0aGlzLl9vdmVybGF5LFxuICAgICAgb3JpZ2luRWxlbWVudCxcbiAgICAgIHRoaXMuX29wdGlvbkNvbnRhaW5lcixcbiAgICAgIHRoaXMuc2hhZG93Um9vdCEucXVlcnlTZWxlY3RvcignLnNiYi1hdXRvY29tcGxldGVfX2NvbnRhaW5lcicpISxcbiAgICAgIHRoaXMsXG4gICAgICB0aGlzLnBvc2l0aW9uLFxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogT24gb3Blbi9jbG9zZSBhbmltYXRpb24gZW5kLlxuICAgKiBJbiByYXJlIGNhc2VzIGl0IGNhbiBiZSB0aGF0IHRoZSBhbmltYXRpb25FbmQgZXZlbnQgaXMgdHJpZ2dlcmVkIHR3aWNlLlxuICAgKiBUbyBhdm9pZCBlbnRlcmluZyBhIGNvcnJ1cHQgc3RhdGUsIGV4aXQgd2hlbiBzdGF0ZSBpcyBub3QgZXhwZWN0ZWQuXG4gICAqL1xuICBwcml2YXRlIF9vbkFuaW1hdGlvbkVuZChldmVudDogQW5pbWF0aW9uRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoZXZlbnQuYW5pbWF0aW9uTmFtZSA9PT0gJ29wZW4nICYmIHRoaXMuc3RhdGUgPT09ICdvcGVuaW5nJykge1xuICAgICAgdGhpcy5faGFuZGxlT3BlbmluZygpO1xuICAgIH0gZWxzZSBpZiAoZXZlbnQuYW5pbWF0aW9uTmFtZSA9PT0gJ2Nsb3NlJyAmJiB0aGlzLnN0YXRlID09PSAnY2xvc2luZycpIHtcbiAgICAgIHRoaXMuX2hhbmRsZUNsb3NpbmcoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9oYW5kbGVPcGVuaW5nKCk6IHZvaWQge1xuICAgIHRoaXMuc3RhdGUgPSAnb3BlbmVkJztcbiAgICBpZiAodGhpcy5vcmlnaW5FbGVtZW50KSB7XG4gICAgICB0aGlzLl9yZXNpemVPYnNlcnZlci5vYnNlcnZlKHRoaXMub3JpZ2luRWxlbWVudCk7XG4gICAgfVxuICAgIHRoaXMudHJpZ2dlckVsZW1lbnQ/LnNldEF0dHJpYnV0ZSgnYXJpYS1leHBhbmRlZCcsICd0cnVlJyk7XG4gICAgdGhpcy5kaXNwYXRjaE9wZW5FdmVudCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfaGFuZGxlQ2xvc2luZygpOiB2b2lkIHtcbiAgICB0aGlzLnN0YXRlID0gJ2Nsb3NlZCc7XG4gICAgdGhpcy5oaWRlUG9wb3Zlcj8uKCk7XG4gICAgdGhpcy50cmlnZ2VyRWxlbWVudD8uc2V0QXR0cmlidXRlKCdhcmlhLWV4cGFuZGVkJywgJ2ZhbHNlJyk7XG5cbiAgICB0aGlzLnJlc2V0QWN0aXZlRWxlbWVudCgpO1xuICAgIHRoaXMuX29wdGlvbkNvbnRhaW5lci5zY3JvbGxUb3AgPSAwO1xuICAgIHRoaXMuX2VzY2FwYWJsZU92ZXJsYXlDb250cm9sbGVyLmRpc2Nvbm5lY3QoKTtcbiAgICB0aGlzLmRpc3BhdGNoQ2xvc2VFdmVudCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfYXR0YWNoT3BlblBhbmVsRXZlbnRzKCk6IHZvaWQge1xuICAgIHRoaXMuX29wZW5QYW5lbEV2ZW50c0NvbnRyb2xsZXIgPSBuZXcgQWJvcnRDb250cm9sbGVyKCk7XG5cbiAgICAvLyBSZWNhbGN1bGF0ZSB0aGUgb3ZlcmxheSBwb3NpdGlvbiBvbiBzY3JvbGwgYW5kIHdpbmRvdyByZXNpemVcbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCAoKSA9PiB0aGlzLl9zZXRPdmVybGF5UG9zaXRpb24oKSwge1xuICAgICAgcGFzc2l2ZTogdHJ1ZSxcbiAgICAgIHNpZ25hbDogdGhpcy5fb3BlblBhbmVsRXZlbnRzQ29udHJvbGxlci5zaWduYWwsXG4gICAgICAvLyBXaXRob3V0IGNhcHR1cmUsIG90aGVyIHNjcm9sbCBjb250ZXh0cyB3b3VsZCBub3QgYnViYmxlIHRvIHRoaXMgZXZlbnQgbGlzdGVuZXIuXG4gICAgICAvLyBDYXB0dXJlIGFsbG93cyB1cyB0byByZWFjdCB0byBhbGwgc2Nyb2xsIGNvbnRleHRzIGluIHRoaXMgRE9NLlxuICAgICAgY2FwdHVyZTogdHJ1ZSxcbiAgICB9KTtcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncmVzaXplJywgKCkgPT4gdGhpcy5fc2V0T3ZlcmxheVBvc2l0aW9uKCksIHtcbiAgICAgIHBhc3NpdmU6IHRydWUsXG4gICAgICBzaWduYWw6IHRoaXMuX29wZW5QYW5lbEV2ZW50c0NvbnRyb2xsZXIuc2lnbmFsLFxuICAgIH0pO1xuXG4gICAgLy8gQ2xvc2UgYXV0b2NvbXBsZXRlIG9uIGJhY2tkcm9wIGNsaWNrXG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3BvaW50ZXJkb3duJywgKGV2KSA9PiB0aGlzLl9wb2ludGVyRG93bkxpc3RlbmVyKGV2KSwge1xuICAgICAgc2lnbmFsOiB0aGlzLl9vcGVuUGFuZWxFdmVudHNDb250cm9sbGVyLnNpZ25hbCxcbiAgICB9KTtcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncG9pbnRlcnVwJywgKGV2KSA9PiB0aGlzLl9jbG9zZU9uQmFja2Ryb3BDbGljayhldiksIHtcbiAgICAgIHNpZ25hbDogdGhpcy5fb3BlblBhbmVsRXZlbnRzQ29udHJvbGxlci5zaWduYWwsXG4gICAgfSk7XG5cbiAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXIoXG4gICAgICAnybVkaXNhYmxlZGNoYW5nZScsXG4gICAgICAoKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLmFjdGl2ZU9wdGlvbj8uZGlzYWJsZWQpIHtcbiAgICAgICAgICB0aGlzLnJlc2V0QWN0aXZlRWxlbWVudCgpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX3NldE5leHRBY3RpdmVPcHRpb25JZkF1dG9BY3RpdmVGaXJzdE9wdGlvbigpO1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgc2lnbmFsOiB0aGlzLl9vcGVuUGFuZWxFdmVudHNDb250cm9sbGVyLnNpZ25hbCxcbiAgICAgIH0sXG4gICAgKTtcblxuICAgIC8vIEtleWJvYXJkIGludGVyYWN0aW9uc1xuICAgIHRoaXMudHJpZ2dlckVsZW1lbnQ/LmFkZEV2ZW50TGlzdGVuZXIoXG4gICAgICAna2V5ZG93bicsXG4gICAgICAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpID0+IHRoaXMub3BlbmVkUGFuZWxLZXlib2FyZEludGVyYWN0aW9uKGV2ZW50KSxcbiAgICAgIHtcbiAgICAgICAgc2lnbmFsOiB0aGlzLl9vcGVuUGFuZWxFdmVudHNDb250cm9sbGVyLnNpZ25hbCxcbiAgICAgICAgLy8gV2UgbmVlZCBrZXkgZXZlbnQgdG8gcnVuIGJlZm9yZSBhbnkgb3RoZXIgc3Vic2NyaXB0aW9uIHRvIGd1YXJhbnRlZSBhIGNvcnJlY3RcbiAgICAgICAgLy8gaW50ZXJhY3Rpb24gd2l0aCBvdGhlciBjb21wb25lbnRzIChuZWNlc3NhcnkgZm9yIHRoZSAnc2JiLWNoaXAtZ3JvdXAnIHVzZSBjYXNlKS5cbiAgICAgICAgY2FwdHVyZTogdHJ1ZSxcbiAgICAgIH0sXG4gICAgKTtcbiAgfVxuXG4gIC8vIENoZWNrIGlmIHRoZSBwb2ludGVyZG93biBldmVudCB0YXJnZXQgaXMgdHJpZ2dlcmVkIG9uIHRoZSBtZW51LlxuICBwcml2YXRlIF9wb2ludGVyRG93bkxpc3RlbmVyID0gKGV2ZW50OiBQb2ludGVyRXZlbnQpOiB2b2lkID0+IHtcbiAgICB0aGlzLl9pc1BvaW50ZXJEb3duRXZlbnRPbk1lbnUgPSBpc0V2ZW50T25FbGVtZW50KHRoaXMuX292ZXJsYXksIGV2ZW50KTtcbiAgfTtcblxuICAvLyBJZiB0aGUgY2xpY2sgaXMgb3V0c2lkZSB0aGUgYXV0b2NvbXBsZXRlLCBjbG9zZXMgdGhlIHBhbmVsLlxuICBwcml2YXRlIF9jbG9zZU9uQmFja2Ryb3BDbGljayA9IChldmVudDogUG9pbnRlckV2ZW50KTogdm9pZCA9PiB7XG4gICAgaWYgKFxuICAgICAgIXRoaXMuX2lzUG9pbnRlckRvd25FdmVudE9uTWVudSAmJlxuICAgICAgIWlzRXZlbnRPbkVsZW1lbnQodGhpcy5fb3ZlcmxheSwgZXZlbnQpICYmXG4gICAgICAhaXNFdmVudE9uRWxlbWVudCh0aGlzLm9yaWdpbkVsZW1lbnQsIGV2ZW50KVxuICAgICkge1xuICAgICAgdGhpcy5jbG9zZSgpO1xuICAgIH1cbiAgfTtcblxuICBwcml2YXRlIF9jbG9zZWRQYW5lbEtleWJvYXJkSW50ZXJhY3Rpb24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zdGF0ZSA9PT0gJ29wZW5pbmcnIHx8IHRoaXMuc3RhdGUgPT09ICdvcGVuZWQnKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgc3dpdGNoIChldmVudC5rZXkpIHtcbiAgICAgIGNhc2UgJ0Fycm93RG93bic6XG4gICAgICBjYXNlICdBcnJvd1VwJzpcbiAgICAgICAgdGhpcy5vcGVuKCk7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBIaWdobGlnaHQgdGhlIHNlYXJjaGVkIHRleHQgb24gdGhlIG9wdGlvbnMuICovXG4gIHByaXZhdGUgX2hpZ2hsaWdodE9wdGlvbnMoc2VhcmNoVGVybT86IHN0cmluZyk6IHZvaWQge1xuICAgIGlmIChzZWFyY2hUZXJtID09PSBudWxsIHx8IHNlYXJjaFRlcm0gPT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLm9wdGlvbnMuZm9yRWFjaCgob3B0aW9uKSA9PiBvcHRpb24uaGlnaGxpZ2h0KHNlYXJjaFRlcm0pKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXIoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIC8vIFNjcm9sbCBhcmVhcyB3aXRob3V0IGNvbnRhaW5pbmcgYW4gaW50ZXJhY3RpdmUgZWxlbWVudCB3aWxsIHJlY2VpdmUgZm9jdXMgd2hlbiB0YWJiaW5nIHRocm91Z2ggdGhlIGRvY3VtZW50LlxuICAgIC8vIElmIHRoZXJlIGFyZSBhIGxvdCBvZiBvcHRpb25zIGFuZCB3aGVuIHByZXNzaW5nIHRhYiBrZXksIHRoZSBzY3JvbGwgYXJlYSBvbiBzYmItYXV0b2NvbXBsZXRlX19vcHRpb25zIGdldHMgZm9jdXMuXG4gICAgLy8gQXMgZWxlbWVudHMgaW5zaWRlIHRoZSBwYW5lbCBzaG91bGQgbmV2ZXIgZ2V0IGZvY3VzLCB3ZSBoYXZlIHRvIGF2b2lkIHRoYXQgYnkgc2V0dGluZyB0YWJpbmRleD0tMS5cbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxkaXYgY2xhc3M9XCJzYmItYXV0b2NvbXBsZXRlX19nYXAtZml4XCI+PC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwic2JiLWF1dG9jb21wbGV0ZV9fY29udGFpbmVyXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzYmItYXV0b2NvbXBsZXRlX19nYXAtZml4XCI+JHtvdmVybGF5R2FwRml4Q29ybmVycygpfTwvZGl2PlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgQGFuaW1hdGlvbmVuZD0ke3RoaXMuX29uQW5pbWF0aW9uRW5kfVxuICAgICAgICAgIGNsYXNzPVwic2JiLWF1dG9jb21wbGV0ZV9fcGFuZWxcIlxuICAgICAgICAgICR7cmVmKChvdmVybGF5UmVmPzogRWxlbWVudCkgPT4gKHRoaXMuX292ZXJsYXkgPSBvdmVybGF5UmVmIGFzIEhUTUxFbGVtZW50KSl9XG4gICAgICAgID5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic2JiLWF1dG9jb21wbGV0ZV9fd3JhcHBlclwiPlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICBjbGFzcz1cInNiYi1hdXRvY29tcGxldGVfX29wdGlvbnNcIlxuICAgICAgICAgICAgICByb2xlPSR7IWFyaWFSb2xlT25Ib3N0ID8gdGhpcy5wYW5lbFJvbGUgOiBub3RoaW5nfVxuICAgICAgICAgICAgICBpZD0keyFhcmlhUm9sZU9uSG9zdCA/IHRoaXMub3ZlcmxheUlkIDogbm90aGluZ31cbiAgICAgICAgICAgICAgdGFiaW5kZXg9XCItMVwiXG4gICAgICAgICAgICAgICR7cmVmKChjb250YWluZXJSZWYpID0+ICh0aGlzLl9vcHRpb25Db250YWluZXIgPSBjb250YWluZXJSZWYgYXMgSFRNTEVsZW1lbnQpKX1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPHNsb3QgQHNsb3RjaGFuZ2U9JHt0aGlzLl9oYW5kbGVTbG90Y2hhbmdlfT48L3Nsb3Q+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICBgO1xuICB9XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50RXZlbnRNYXAge1xuICAgIGlucHV0QXV0b2NvbXBsZXRlOiBDdXN0b21FdmVudDx7IG9wdGlvbjogU2JiT3B0aW9uQmFzZUVsZW1lbnQ8YW55PiB9PjtcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7OztBQ3VDQSxJQUFNLGlCQUFpQjs7Ozs7OztJQVFELG9DQUEwQjttQkFBcUIsaUJBQ25FLHdCQUNEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O2NBRnFCLG1DQUErQyxZQUVwRTs7O3lCQVdFLGFBQWEsRUFDYixVQUFVLENBQUE7MEJBVVYsYUFBYSxFQUNiLFVBQVUsQ0FBQTtvQ0FJVixXQUFXLEVBQ1gsU0FBUztJQUFFLFdBQVc7SUFBdUIsU0FBUztJQUFNLE1BQU07SUFBUyxDQUFDLENBQUE7d0NBSTVFLFdBQVcsRUFDWCxTQUFTO0lBQUUsV0FBVztJQUE0QixNQUFNO0lBQVMsQ0FBQyxDQUFBOzhCQUlsRSxTQUFTLEVBQUUsV0FBVyxPQUFPLENBQUMsQ0FBQTt1QkFPOUIsU0FBUyxFQUFFLFNBQVMsTUFBTSxDQUFDLENBQUE7eUNBRzNCLFdBQVcsRUFDWCxTQUFTO0lBQUUsV0FBVztJQUE2QixNQUFNO0lBQVMsQ0FBQyxDQUFBOytDQU9uRSxXQUFXLEVBQ1gsU0FBUztJQUFFLFdBQVc7SUFBcUMsTUFBTTtJQUFTLENBQUMsQ0FBQTttQ0FTM0UsV0FBVyxFQUNYLFNBQVM7SUFBRSxXQUFXO0lBQXFCLE1BQU07SUFBUyxDQUFDLENBQUE7MkJBTzNELFVBQVUsQ0FBQTtBQTVEWCxnQkFBQSxNQUFBLE1BQUEsb0JBQUE7SUFBQSxNQUFBO0lBQUEsTUFBQTtJQUFBLFFBQUE7SUFBQSxTQUFBO0lBQUEsUUFBQTtLQUFBLE1BQUEsUUFBQSxZQUFBO0tBQUEsTUFBQSxRQUFBLElBQWdCO0tBQU0sTUFBQSxLQUFBLFVBQUE7QUFBQSxVQUFOLFNBQU07O0tBQUE7SUFBQSxVQUFBO0lBQUEsRUFBQSxzQkFBQSwwQkFBQTtBQVd0QixnQkFBQSxNQUFBLE1BQUEscUJBQUE7SUFBQSxNQUFBO0lBQUEsTUFBQTtJQUFBLFFBQUE7SUFBQSxTQUFBO0lBQUEsUUFBQTtLQUFBLE1BQUEsUUFBQSxhQUFBO0tBQUEsTUFBQSxRQUFBLElBQWdCO0tBQU8sTUFBQSxLQUFBLFVBQUE7QUFBQSxVQUFQLFVBQU87O0tBQUE7SUFBQSxVQUFBO0lBQUEsRUFBQSx1QkFBQSwyQkFBQTtBQUt2QixnQkFBQSxNQUFBLE1BQUEsK0JBQUE7SUFBQSxNQUFBO0lBQUEsTUFBQTtJQUFBLFFBQUE7SUFBQSxTQUFBO0lBQUEsUUFBQTtLQUFBLE1BQUEsUUFBQSx1QkFBQTtLQUFBLE1BQUEsUUFBQSxJQUFnQjtLQUFpQixNQUFBLEtBQUEsVUFBQTtBQUFBLFVBQWpCLG9CQUFpQjs7S0FBQTtJQUFBLFVBQUE7SUFBQSxFQUFBLGlDQUFBLHFDQUFBO0FBS2pDLGdCQUFBLE1BQUEsTUFBQSxtQ0FBQTtJQUFBLE1BQUE7SUFBQSxNQUFBO0lBQUEsUUFBQTtJQUFBLFNBQUE7SUFBQSxRQUFBO0tBQUEsTUFBQSxRQUFBLDJCQUFBO0tBQUEsTUFBQSxRQUFBLElBQWdCO0tBQXFCLE1BQUEsS0FBQSxVQUFBO0FBQUEsVUFBckIsd0JBQXFCOztLQUFBO0lBQUEsVUFBQTtJQUFBLEVBQUEscUNBQUEseUNBQUE7QUFJckMsZ0JBQUEsTUFBQSxNQUFBLHlCQUFBO0lBQUEsTUFBQTtJQUFBLE1BQUE7SUFBQSxRQUFBO0lBQUEsU0FBQTtJQUFBLFFBQUE7S0FBQSxNQUFBLFFBQUEsaUJBQUE7S0FBQSxNQUFBLFFBQUEsSUFBZ0I7S0FBVyxNQUFBLEtBQUEsVUFBQTtBQUFBLFVBQVgsY0FBVzs7S0FBQTtJQUFBLFVBQUE7SUFBQSxFQUFBLDJCQUFBLCtCQUFBO0FBTUUsZ0JBQUEsTUFBQSxNQUFBLGtCQUFBO0lBQUEsTUFBQTtJQUFBLE1BQUE7SUFBQSxRQUFBO0lBQUEsU0FBQTtJQUFBLFFBQUE7S0FBQSxNQUFBLFFBQUEsVUFBQTtLQUFBLE1BQUEsUUFBQSxJQUFnQjtLQUFJLE1BQUEsS0FBQSxVQUFBO0FBQUEsVUFBSixPQUFJOztLQUFBO0lBQUEsVUFBQTtJQUFBLEVBQUEsb0JBQUEsd0JBQUE7QUFLakQsZ0JBQUEsTUFBQSxNQUFBLG9DQUFBO0lBQUEsTUFBQTtJQUFBLE1BQUE7SUFBQSxRQUFBO0lBQUEsU0FBQTtJQUFBLFFBQUE7S0FBQSxNQUFBLFFBQUEsNEJBQUE7S0FBQSxNQUFBLFFBQUEsSUFBZ0I7S0FBc0IsTUFBQSxLQUFBLFVBQUE7QUFBQSxVQUF0Qix5QkFBc0I7O0tBQUE7SUFBQSxVQUFBO0lBQUEsRUFBQSxzQ0FBQSwwQ0FBQTtBQVF0QyxnQkFBQSxNQUFBLE1BQUEsMENBQUE7SUFBQSxNQUFBO0lBQUEsTUFBQTtJQUFBLFFBQUE7SUFBQSxTQUFBO0lBQUEsUUFBQTtLQUFBLE1BQUEsUUFBQSxrQ0FBQTtLQUFBLE1BQUEsUUFBQSxJQUFnQjtLQUE0QixNQUFBLEtBQUEsVUFBQTtBQUFBLFVBQTVCLCtCQUE0Qjs7S0FBQTtJQUFBLFVBQUE7SUFBQSxFQUFBLDRDQUFBLGdEQUFBO0FBVTVDLGdCQUFBLE1BQUEsTUFBQSw4QkFBQTtJQUFBLE1BQUE7SUFBQSxNQUFBO0lBQUEsUUFBQTtJQUFBLFNBQUE7SUFBQSxRQUFBO0tBQUEsTUFBQSxRQUFBLHNCQUFBO0tBQUEsTUFBQSxRQUFBLElBQWdCO0tBQWdCLE1BQUEsS0FBQSxVQUFBO0FBQUEsVUFBaEIsbUJBQWdCOztLQUFBO0lBQUEsVUFBQTtJQUFBLEVBQUEsZ0NBQUEsb0NBQUE7QUFPaEMsZ0JBQUEsTUFBQSxNQUFBLHNCQUFBO0lBQUEsTUFBQTtJQUFBLE1BQUE7SUFBQSxRQUFBO0lBQUEsU0FBQTtJQUFBLFFBQUE7S0FBQSxNQUFBLFFBQUEsY0FBQTtLQUFBLE1BQUEsUUFBQSxJQUFnQjtLQUFRLE1BQUEsS0FBQSxVQUFBO0FBQUEsVUFBUixXQUFROztLQUFBO0lBQUEsVUFBQTtJQUFBLEVBQUEsd0JBQUEsNEJBQUE7Ozs7Ozs7OztBQXpFRCxRQUFBLFNBQXlCLENBQUMsaUJBQWlCLFVBQVUsa0NBQU0sQ0FBQzs7RUFZbkY7Ozs7Ozs7OztFQUFBLElBQWdCLFNBQU07QUFBQSxVQUFBLE1BQUE7O0VBQXRCLElBQWdCLE9BQU0sT0FBQTtBQUFBLFNBQUEsMEJBQUE7O0VBV3RCOzs7Ozs7OztFQUFBLElBQWdCLFVBQU87QUFBQSxVQUFBLE1BQUE7O0VBQXZCLElBQWdCLFFBQU8sT0FBQTtBQUFBLFNBQUEsMkJBQUE7O0VBS3ZCOztFQUFBLElBQWdCLG9CQUFpQjtBQUFBLFVBQUEsTUFBQTs7RUFBakMsSUFBZ0Isa0JBQWlCLE9BQUE7QUFBQSxTQUFBLHFDQUFBOztFQUtqQzs7RUFBQSxJQUFnQix3QkFBcUI7QUFBQSxVQUFBLE1BQUE7O0VBQXJDLElBQWdCLHNCQUFxQixPQUFBO0FBQUEsU0FBQSx5Q0FBQTs7RUFJckM7O0VBQUEsSUFBZ0IsY0FBVztBQUFBLFVBQUEsTUFBQTs7RUFBM0IsSUFBZ0IsWUFBVyxPQUFBO0FBQUEsU0FBQSwrQkFBQTs7RUFNRTs7Ozs7RUFBQSxJQUFnQixPQUFJO0FBQUEsVUFBQSxNQUFBOztFQUFwQixJQUFnQixLQUFJLE9BQUE7QUFBQSxTQUFBLHdCQUFBOztFQUtqRDs7RUFBQSxJQUFnQix5QkFBc0I7QUFBQSxVQUFBLE1BQUE7O0VBQXRDLElBQWdCLHVCQUFzQixPQUFBO0FBQUEsU0FBQSwwQ0FBQTs7RUFRdEM7Ozs7O0VBQUEsSUFBZ0IsK0JBQTRCO0FBQUEsVUFBQSxNQUFBOztFQUE1QyxJQUFnQiw2QkFBNEIsT0FBQTtBQUFBLFNBQUEsZ0RBQUE7O0VBVTVDOzs7Ozs7O0VBQUEsSUFBZ0IsbUJBQWdCO0FBQUEsVUFBQSxNQUFBOztFQUFoQyxJQUFnQixpQkFBZ0IsT0FBQTtBQUFBLFNBQUEsb0NBQUE7O0VBT2hDOzs7OztFQUFBLElBQWdCLFdBQVE7QUFBQSxVQUFBLE1BQUE7O0VBQXhCLElBQWdCLFNBQVEsT0FBQTtBQUFBLFNBQUEsNEJBQUE7OztFQUd4QixJQUFXLGdCQUFhO0FBQ3RCLFVBQ0UsS0FBSyxVQUNMLEtBQUssVUFBVSxpQkFBaUIsRUFBRSxZQUFZLGdCQUFnQixrQkFBa0IsSUFDaEYsS0FBSyxXQUNMOzs7RUFLSixJQUFXLGlCQUFjO0FBQ3ZCLFVBQU8sS0FBSyxtQkFBbUI7O0VBK0NqQyxjQUFBO0FBQ0UsVUFBTztBQTNITyxTQUFBLDBCQUFBLGtCQUFBLE1BQUEsc0JBQTZCLEtBQUk7QUFXakMsU0FBQSw0QkFBQSxrQkFBQSxNQUFBLDBCQUFBLEVBQUEsa0JBQUEsTUFBQSx1QkFBbUMsS0FBSTtBQUt2QyxTQUFBLHNDQUFBLGtCQUFBLE1BQUEsMkJBQUEsRUFBQSxrQkFBQSxNQUFBLGlDQUE2QixNQUFLO0FBS2xDLFNBQUEsMENBQUEsa0JBQUEsTUFBQSxxQ0FBQSxFQUFBLGtCQUFBLE1BQUEscUNBQWlDLE1BQUs7QUFJdEMsU0FBQSxnQ0FBQSxrQkFBQSxNQUFBLHlDQUFBLEVBQUEsa0JBQUEsTUFBQSwyQkFBNkMsS0FBSTtBQU1wQixTQUFBLHlCQUFBLGtCQUFBLE1BQUEsK0JBQUEsRUFBQSxrQkFBQSxNQUFBLG9CQUFrQixRQUFRLEdBQUcsTUFBTSxJQUFHO0FBS25FLFNBQUEsMkNBQUEsa0JBQUEsTUFBQSx3QkFBQSxFQUFBLGtCQUFBLE1BQUEsc0NBQWtDLE1BQUs7QUFRdkMsU0FBQSxpREFBQSxrQkFBQSxNQUFBLDBDQUFBLEVBQUEsa0JBQUEsTUFBQSw0Q0FBd0MsTUFBSztBQVU3QyxTQUFBLHFDQUFBLGtCQUFBLE1BQUEsZ0RBQUEsRUFBQSxrQkFBQSxNQUFBLGdDQUE0QixNQUFLO0FBT2pDLFNBQUEsNkJBQUEsa0JBQUEsTUFBQSxvQ0FBQSxFQUFBLGtCQUFBLE1BQUEsd0JBQXVDLE9BQU07QUFnQnJELFFBQUEsa0JBQWUsa0JBQUEsTUFBQSw0QkFBQTtBQUliLFFBQUEsZUFBK0M7QUFDL0MsUUFBQSw0QkFBNEQ7QUFDOUQsUUFBQSxrQkFBa0IsSUFBSSxpQkFBaUIsTUFBTTtJQUNuRCxRQUFRO0lBQ1IsYUFBYTtJQUdiLGlCQUFnQjtLQUNkLElBQUk7QUFDSixrQkFBWTtBQUNWLG1CQUFhLFVBQVU7QUFDdkIsa0JBQVksaUJBQWlCLEtBQUsscUJBQXFCLEVBQUUsR0FBRzs7O0lBR2pFLENBQUM7O0FBRU0sUUFBQSw0QkFBNEIsQ0FBQyxXQUNqQyxJQUFJLGtCQUFrQixjQUFxQztJQUN6RCxNQUFNLFFBQVEsVUFBVSxHQUFHO0FBQzNCLFFBQUksTUFBTSxhQUFhLFdBQVcsSUFBSSxNQUFNLGFBQWEsV0FBVyxDQUNsRSxNQUFLLE9BQU87S0FFZCxHQUNGO0FBS0ksUUFBQSw0QkFBcUM7QUFDckMsUUFBQSw4QkFBOEIsSUFBSSw4QkFBOEIsS0FBSztBQUNyRSxRQUFBLGdCQUFnQjs7QUFJaEIsUUFBQSxpQkFBZ0M7O0FBR2hDLFFBQUEsdUJBQXVCO0FBNmV2QixRQUFBLHdCQUF3QixVQUE2QjtBQUMzRCxTQUFLLDRCQUE0QixpQkFBaUIsS0FBSyxVQUFVLE1BQU07O0FBSWpFLFFBQUEseUJBQXlCLFVBQTZCO0FBQzVELFFBQ0UsQ0FBQyxLQUFLLDZCQUNOLENBQUMsaUJBQWlCLEtBQUssVUFBVSxNQUFNLElBQ3ZDLENBQUMsaUJBQWlCLEtBQUssZUFBZSxNQUFNLENBRTVDLE1BQUssT0FBTzs7QUFsZmQsUUFBSyxtQkFBbUIsbUJBQW1CLE1BQWEsS0FBSyxpQkFBaUIsRUFBRSxDQUFDO0FBQ2pGLFFBQUssbUJBQW1CLDZCQUE2QixLQUFLLG1CQUFtQixFQUFFLEVBQzdFLFNBQVMsTUFDVixDQUFDO0FBQ0YsUUFBSyxjQUNILElBQUksNkJBQ0YsWUFDTSxLQUFLLFFBQTZCLGlCQUFpQixFQUN6RDtJQUNFLFdBQVcsTUFBSztBQUNkLFVBQUssV0FBVyxFQUFFO0FBQ2xCLFVBQUssY0FBYzs7SUFFckIsYUFBYSxNQUFNLEtBQUssWUFBWSxrQ0FBa0MsRUFBRSxXQUFBO0lBQ3pFLENBQ0YsQ0FDRjs7O0VBV0ksT0FBSTtBQUNULE9BQ0UsS0FBSyxVQUFVLGFBQ2YsS0FBSyxVQUFVLFlBQ2YsQ0FBQyxLQUFLLFlBQ04sS0FBSyxRQUFRLFdBQVcsS0FDeEIsS0FBSyxXQUFXLElBQ2hCLENBQUMsS0FBSyx5QkFBeUIsQ0FFL0I7QUFHRixRQUFLLGVBQWU7QUFDcEIsUUFBSyxRQUFRO0FBQ2IsUUFBSyxnQkFBZ0IsZ0JBQWdCLGlCQUFpQixLQUFLO0dBQzNELE1BQU0sZ0JBQWdCLEtBQUs7QUFDM0IsT0FBSSxDQUFDLGNBQ0gsT0FBTSxJQUFJLE1BQ1Isc0lBQ0Q7QUFFSCxRQUFLLG9CQUFvQixjQUFjO0FBQ3ZDLFFBQUssNkNBQTZDO0FBQ2xELFFBQUssd0JBQXdCO0FBQzdCLFFBQUssNEJBQTRCLFNBQVM7QUFJMUMsT0FBSSxLQUFLLDBCQUEwQixDQUNqQyxNQUFLLGdCQUFnQjs7O0VBS2xCLFFBQUs7QUFDVixPQUFJLEtBQUssVUFBVSxhQUFhLEtBQUssVUFBVSxZQUFZLENBQUMsS0FBSywwQkFBMEIsQ0FDekY7QUFJRixPQUFJLEtBQUssMkJBQTJCO0FBQ2xDLFNBQUssMEJBQTBCLFdBQVc7QUFDMUMsU0FBSywyQkFBMkIsS0FBSywyQkFBMkIsS0FBSzs7QUFHdkUsUUFBSyxRQUFRO0FBQ2IsUUFBSyxnQkFBZ0IsZ0JBQWdCLGdCQUFnQjtBQUNyRCxRQUFLLDJCQUEyQixPQUFPO0FBQ3ZDLE9BQUksS0FBSyxjQUNQLE1BQUssZ0JBQWdCLFVBQVUsS0FBSyxjQUFjO0FBS3BELE9BQUksS0FBSywwQkFBMEIsQ0FDakMsTUFBSyxnQkFBZ0I7O0VBSWpCLDJCQUF3QjtBQUM5QixVQUFPLHdCQUF3QixNQUFNLHlDQUF5Qzs7RUFHaEUsb0JBQWlCO0FBQy9CLFFBQUssVUFBVTtBQUNmLFNBQU0sbUJBQW1CO0FBQ3pCLE9BQUksZUFDRixNQUFLLE9BQU8sS0FBSztBQUduQixPQUFJLEtBQUssV0FDUCxNQUFLLGlCQUFpQjtBQUV4QixRQUFLLGNBQWM7O0VBR0YsV0FBVyxtQkFBdUM7QUFDbkUsU0FBTSxXQUFXLGtCQUFrQjtBQUVuQyxPQUFJLGtCQUFrQixJQUFJLFdBQVcsQ0FDbkMsTUFBSyxjQUFjO0FBR3JCLE9BQUksa0JBQWtCLElBQUksd0JBQXdCLElBQUksS0FBSyxPQUN6RCxNQUFLLDZDQUE2Qzs7RUFJbkMsYUFBYSxtQkFBdUM7QUFDckUsU0FBTSxhQUFhLGtCQUFrQjtBQUNyQyxRQUFLLGlCQUFpQjs7RUFHUix1QkFBb0I7QUFDbEMsU0FBTSxzQkFBc0I7QUFDNUIsUUFBSyxrQkFBa0I7QUFDdkIsUUFBSyx5QkFBeUIsT0FBTztBQUNyQyxRQUFLLDRCQUE0QixPQUFPOztFQUcxQixjQUNkLE1BQ0EsVUFDQSxTQUE2QjtBQUU3QixTQUFNLGNBQWMsTUFBTSxVQUFVLFFBQVE7QUFFNUMsT0FBSSxZQUFZLENBQUMsS0FBSyxXQUNwQjtBQUVGLE9BQUksQ0FBQyxRQUFRLFNBQVMsVUFDcEIsTUFBSyxtQkFBbUI7YUFDZCxDQUFDLFFBQVEsU0FBUyxhQUFhLEtBQUssT0FDOUMsTUFBSyxxQkFBcUI7OztFQUtwQixpQkFBaUIsT0FBWTtHQUNyQyxNQUFNLFNBQVMsTUFBTTtBQUNyQixRQUFLLDJCQUEyQixPQUFPO0FBQ3ZDLFFBQUssT0FBTzs7O0VBSUosdUJBQXVCLGVBQXNDOzs7Ozs7RUFPN0Qsb0JBQW9CLGNBQXFDO0FBQ2pFLFFBQUssNEJBQTRCO0FBQ2pDLFFBQUssZUFBZSxhQUFhOztFQUczQiwyQkFDTixnQkFDQSxlQUFlLE9BQUs7QUFHcEIsUUFBSyxRQUNGLFFBQVEsV0FBVyxPQUFPLE9BQU8sZUFBZSxNQUFNLE9BQU8sU0FBUyxDQUN0RSxTQUFTLFdBQVksT0FBTyxXQUFXLE1BQU87QUFDakQsUUFBSyw0QkFBNEI7QUFFakMsT0FBSSxLQUFLLGdCQUFnQjtBQUN2QixTQUFLLGVBQWUsZUFBZTtBQUduQyxTQUFLLHVCQUF1QjtBQUM1QixTQUFLLGVBQWUsY0FBYyxJQUFJLE1BQU0sVUFBVSxFQUFFLFNBQVMsTUFBTSxDQUFDLENBQUM7QUFDekUsU0FBSyxlQUFlLGNBQWMsSUFBSSxXQUFXLFNBQVM7S0FBRSxTQUFTO0tBQU0sVUFBVTtLQUFNLENBQUMsQ0FBQztBQUc3RixTQUFLLGlCQUFpQjtBQUd0QixTQUFLLGVBQWUsY0FDbEIsSUFBSSxZQUFpRCxxQkFBcUIsRUFDeEUsUUFBUSxFQUFFLFFBQVEsZ0JBQWdCLEVBQ25DLENBQUMsQ0FDSDtBQUNELFFBQUksQ0FBQyxhQUNILE1BQUssZUFBZSxPQUFPOzs7O0VBTXpCLGVBQWUsUUFBK0I7QUFDcEQsT0FBSSxDQUFDLEtBQUssZUFDUjtHQUlGLE1BQU0sWUFBWSxLQUFLLGNBQWMsT0FBTyxNQUFXLElBQUksT0FBTztBQUtqRCxVQUFPLHlCQUF5QixpQkFBaUIsV0FBVyxRQUFTLENBQUMsSUFDOUUsS0FBSyxLQUFLLGdCQUFnQixVQUFVOztFQUd2QyxvQkFBaUI7QUFDdkIsUUFBSyxrQkFBa0IsS0FBSyxnQkFBZ0IsTUFBTTtHQUtsRCxNQUFNLGtCQUFrQixNQUFNLEtBQUssS0FBSyxpQkFBaUIsSUFBSSxDQUFDO0FBQzlELFFBQUssbUJBQW1CLFNBQVMsTUFBTSxLQUFLLGdCQUFnQixVQUFVLEVBQUUsQ0FBQztBQUN6RSxRQUFLLG9CQUFvQjtBQUN6QixRQUFLLGtCQUFrQixTQUFTLE1BQU0sS0FBSyxnQkFBZ0IsUUFBUSxFQUFFLENBQUM7Ozs7O0FBTXRFLE9BQUksS0FBSyxRQUFRO0FBQ2YsU0FBSyxxQkFBcUI7QUFDMUIsU0FBSyw2Q0FBNkM7QUFHbEQsUUFBSSxLQUFLLGdCQUFnQixLQUFLLEtBQUssUUFBUSxXQUFXLEVBQ3BELE1BQUssT0FBTztjQUtkLFVBQVUsa0JBQWtCLEtBQUssa0JBQ2pDLEtBQUssa0JBQWtCLEtBQ3ZCLEtBQUssUUFBUSxTQUFTLEVBRXRCLE1BQUssTUFBTTtBQUdiLFFBQUssZ0JBQWdCLEtBQUssUUFBUTs7RUFHNUIsOENBQTJDO0FBQ2pELE9BQUksS0FBSyx1QkFBdUI7QUFDOUIsU0FBSyxvQkFBb0I7QUFDekIsU0FBSyxxQkFBcUI7Ozs7RUFLdEIsWUFBUztBQUNmLFVBQU8sS0FBSyxnQkFBZ0IsYUFBYSxXQUFXLElBQUk7O0VBR2xELGtCQUFlO0FBQ3JCLE9BQUksU0FDRjtBQUdGLFFBQUssbUJBQW1COztFQUdsQixvQkFBaUI7R0FDdkIsTUFBTSxpQkFBa0IsS0FBSyxXQUMzQixLQUFLLFVBQVUsaUJBQWlCLEVBQUUsY0FBYyxRQUFRO0FBQzFELE9BQUksbUJBQW1CLEtBQUssZUFDMUI7QUFHRixRQUFLLHlCQUF5QixPQUFPO0FBQ3JDLGdDQUE2QixLQUFLLGVBQWU7QUFDakQsUUFBSyxnQkFBZ0IsZ0JBQWdCLGdCQUFnQjtBQUNyRCxRQUFLLGtCQUFrQjtBQUV2QixPQUFJLENBQUMsS0FBSyxlQUNSO0dBSUYsTUFBTSxnQkFBZ0IsS0FBSztBQUMzQixPQUFJLEtBQUssbUJBQW1CLGlCQUFpQixLQUFLLE9BQ2hELE1BQUssb0JBQW9CLGNBQWM7QUFHekMsUUFBSywyQkFBMkIsUUFBUSxLQUFLLGdCQUFpQjtJQUM1RCxZQUFZO0lBQ1osaUJBQWlCLENBQUMsWUFBWSxXQUFBO0lBQy9CLENBQUM7QUFFRixRQUFLLHFCQUFxQixLQUFLLGVBQWU7QUFDOUMsUUFBSywwQkFBMEIsSUFBSSxpQkFBaUI7QUFHcEQsUUFBSyxlQUFlLGlCQUFpQixlQUFlLEtBQUssTUFBTSxFQUFFLEVBQy9ELFFBQVEsS0FBSyx3QkFBd0IsUUFDdEMsQ0FBQztBQUNGLFFBQUssZUFBZSxpQkFBaUIsZUFBZSxLQUFLLE1BQU0sRUFBRSxFQUMvRCxRQUFRLEtBQUssd0JBQXdCLFFBQ3RDLENBQUM7QUFDRixRQUFLLGVBQWUsaUJBQ2xCLFVBQ0MsVUFBUztJQUNSLE1BQU0sUUFBaUIsTUFBTSxPQUE0QjtBQUV6RCxRQUFJLE1BQ0YsTUFBSyxNQUFNO0FBRWIsU0FBSyxrQkFBa0IsTUFBTTtBQUM3QixTQUFLLGlCQUFpQjtBQUN0QixTQUFLLDRCQUE0QjtNQUVuQyxFQUFFLFFBQVEsS0FBSyx3QkFBd0IsUUFBUSxDQUNoRDtBQUNELFFBQUssZUFBZSxpQkFDbEIsV0FDQyxVQUFTOzs7OztBQUtSLFFBQUksS0FBSyxvQkFBb0IsQ0FBQyxLQUFLLHFCQUNqQyxPQUFNLDBCQUEwQjtBQUVsQyxTQUFLLHVCQUF1QjtNQUU5QjtJQUFFLFFBQVEsS0FBSyx3QkFBd0I7SUFBUSxTQUFTO0lBQU0sQ0FDL0Q7QUFDRCxRQUFLLGVBQWUsaUJBQ2xCLFlBQ0MsVUFBeUIsS0FBSyxnQ0FBZ0MsTUFBTSxFQUNyRTtJQUNFLFFBQVEsS0FBSyx3QkFBd0I7SUFHckMsU0FBUztJQUNWLENBQ0Y7QUFFRCxRQUFLLGVBQWUsaUJBQ2xCLFNBQ0MsTUFBSztBQUdKLFFBQUksS0FBSyxTQUFTLEVBQUUsY0FBc0IsQ0FDeEM7QUFJRixRQUNFLEtBQUssZ0NBQ0wsS0FBSyxnQkFDTCxLQUFLLGtCQUNMLEtBQUssZ0JBQWdCLE9BQ3JCO0FBQ0EsVUFBSyxhQUFhLFdBQVc7QUFDN0IsVUFBSywyQkFBMkIsS0FBSyxjQUFjLEtBQUs7O0FBSTFELFFBQUksS0FBSyxvQkFBb0IsS0FBSyxrQkFBa0IsS0FBSyxrQkFBa0IsTUFBTTtBQUM5RCxZQUFPLHlCQUN0QixpQkFBaUIsV0FDakIsUUFDQSxDQUFDLElBQ00sS0FBSyxLQUFLLGdCQUFnQixHQUFHO0FBQ3RDLFVBQUssa0JBQWtCLEdBQUc7QUFDMUIsVUFBSyx1QkFBdUI7QUFDNUIsVUFBSyxlQUFlLGNBQWMsSUFBSSxNQUFNLFVBQVUsRUFBRSxTQUFTLE1BQU0sQ0FBQyxDQUFDO0FBQ3pFLFVBQUssZUFBZSxjQUNsQixJQUFJLFdBQVcsU0FBUztNQUFFLFNBQVM7TUFBTSxVQUFVO01BQU0sQ0FBQyxDQUMzRDs7QUFHSCxTQUFLLE9BQU87TUFFZDtJQUFFLFFBQVEsS0FBSyx3QkFBd0I7SUFBUSxTQUFTO0lBQU0sQ0FDL0Q7O0VBSUssb0JBQW9CLGdCQUFnQixLQUFLLGVBQWE7QUFHNUQsT0FBSSxDQUFDLGNBQ0g7QUFFRixzQkFDRSxLQUFLLFVBQ0wsZUFDQSxLQUFLLGtCQUNMLEtBQUssV0FBWSxjQUFjLCtCQUFnQyxFQUMvRCxNQUNBLEtBQUssU0FDTjs7Ozs7OztFQVFLLGdCQUFnQixPQUFxQjtBQUMzQyxPQUFJLE1BQU0sa0JBQWtCLFVBQVUsS0FBSyxVQUFVLFVBQ25ELE1BQUssZ0JBQWdCO1lBQ1osTUFBTSxrQkFBa0IsV0FBVyxLQUFLLFVBQVUsVUFDM0QsTUFBSyxnQkFBZ0I7O0VBSWpCLGlCQUFjO0FBQ3BCLFFBQUssUUFBUTtBQUNiLE9BQUksS0FBSyxjQUNQLE1BQUssZ0JBQWdCLFFBQVEsS0FBSyxjQUFjO0FBRWxELFFBQUssZ0JBQWdCLGFBQWEsaUJBQWlCLE9BQU87QUFDMUQsUUFBSyxtQkFBbUI7O0VBR2xCLGlCQUFjO0FBQ3BCLFFBQUssUUFBUTtBQUNiLFFBQUssZUFBZTtBQUNwQixRQUFLLGdCQUFnQixhQUFhLGlCQUFpQixRQUFRO0FBRTNELFFBQUssb0JBQW9CO0FBQ3pCLFFBQUssaUJBQWlCLFlBQVk7QUFDbEMsUUFBSyw0QkFBNEIsWUFBWTtBQUM3QyxRQUFLLG9CQUFvQjs7RUFHbkIseUJBQXNCO0FBQzVCLFFBQUssNkJBQTZCLElBQUksaUJBQWlCO0FBR3ZELFlBQVMsaUJBQWlCLGdCQUFnQixLQUFLLHFCQUFxQixFQUFFO0lBQ3BFLFNBQVM7SUFDVCxRQUFRLEtBQUssMkJBQTJCO0lBR3hDLFNBQVM7SUFDVixDQUFDO0FBQ0YsVUFBTyxpQkFBaUIsZ0JBQWdCLEtBQUsscUJBQXFCLEVBQUU7SUFDbEUsU0FBUztJQUNULFFBQVEsS0FBSywyQkFBMkI7SUFDekMsQ0FBQztBQUdGLFVBQU8saUJBQWlCLGdCQUFnQixPQUFPLEtBQUsscUJBQXFCLEdBQUcsRUFBRSxFQUM1RSxRQUFRLEtBQUssMkJBQTJCLFFBQ3pDLENBQUM7QUFDRixVQUFPLGlCQUFpQixjQUFjLE9BQU8sS0FBSyxzQkFBc0IsR0FBRyxFQUFFLEVBQzNFLFFBQVEsS0FBSywyQkFBMkIsUUFDekMsQ0FBQztBQUVGLFFBQUssaUJBQ0gseUJBQ0s7QUFDSCxRQUFJLEtBQUssY0FBYyxTQUNyQixNQUFLLG9CQUFvQjtBQUUzQixTQUFLLDZDQUE2QztNQUVwRCxFQUNFLFFBQVEsS0FBSywyQkFBMkIsUUFDekMsQ0FDRjtBQUdELFFBQUssZ0JBQWdCLGlCQUNuQixZQUNDLFVBQXlCLEtBQUssK0JBQStCLE1BQU0sRUFDcEU7SUFDRSxRQUFRLEtBQUssMkJBQTJCO0lBR3hDLFNBQVM7SUFDVixDQUNGOztFQW1CSyxnQ0FBZ0MsT0FBb0I7QUFDMUQsT0FBSSxLQUFLLFVBQVUsYUFBYSxLQUFLLFVBQVUsU0FDN0M7QUFHRixXQUFRLE1BQU0sS0FBZDtJQUNFLEtBQUs7SUFDTCxLQUFLO0FBQ0gsVUFBSyxNQUFNO0FBQ1g7Ozs7RUFLRSxrQkFBa0IsWUFBbUI7QUFDM0MsT0FBSSxlQUFlLFFBQVEsZUFBZSxLQUFBLEVBQ3hDO0FBRUYsUUFBSyxRQUFRLFNBQVMsV0FBVyxPQUFPLFVBQVUsV0FBVyxDQUFDOztFQUc3QyxTQUFNO0FBSXZCLFVBQU8sSUFBSTs7O2lEQUdrQyxzQkFBc0IsQ0FBQTs7MEJBRTdDLEtBQUssZ0JBQUE7O1lBRW5CLEtBQUssZUFBMEIsS0FBSyxXQUFXLFdBQTJCLENBQUE7Ozs7O3FCQUtqRSxDQUFDLGlCQUFpQixLQUFLLFlBQVksUUFBQTttQkFDckMsQ0FBQyxpQkFBaUIsS0FBSyxZQUFZLFFBQUE7O2dCQUV0QyxLQUFLLGlCQUFrQixLQUFLLG1CQUFtQixhQUE2QixDQUFBOztrQ0FFMUQsS0FBSyxrQkFBaUIifQ==