@sbb-esta/lyne-elements 2.11.1 → 2.11.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (374) hide show
  1. package/accordion/accordion.component.js +19 -22
  2. package/action-group/action-group.component.js +3 -5
  3. package/alert/alert/alert.component.js +1 -2
  4. package/alert/alert-group/alert-group.component.js +2 -3
  5. package/autocomplete/autocomplete-base-element.js +71 -82
  6. package/autocomplete/autocomplete.component.js +31 -36
  7. package/autocomplete-grid/autocomplete-grid/autocomplete-grid.component.js +44 -52
  8. package/autocomplete-grid/autocomplete-grid-button/autocomplete-grid-button.component.js +3 -4
  9. package/autocomplete-grid/autocomplete-grid-optgroup/autocomplete-grid-optgroup.component.js +17 -20
  10. package/autocomplete-grid/autocomplete-grid-option/autocomplete-grid-option.component.js +23 -26
  11. package/autocomplete-grid/autocomplete-grid-row/autocomplete-grid-row.component.js +9 -9
  12. package/breadcrumb/breadcrumb-group/breadcrumb-group.component.js +29 -33
  13. package/button/mini-button/mini-button.component.js +1 -1
  14. package/button/mini-button-group/mini-button-group.component.js +1 -2
  15. package/calendar/calendar.component.js +8 -13
  16. package/card/card/card.component.js +12 -12
  17. package/card/card-badge/card-badge.component.js +16 -16
  18. package/card/common/card-action-common.js +23 -25
  19. package/checkbox/checkbox/checkbox.component.js +17 -20
  20. package/checkbox/checkbox-group/checkbox-group.component.js +39 -52
  21. package/checkbox/checkbox-panel/checkbox-panel.component.js +22 -25
  22. package/checkbox/common/checkbox-common.js +13 -15
  23. package/chip/chip-group/chip-group.component.js +59 -70
  24. package/clock/clock.component.js +50 -60
  25. package/container/container/container.component.js +28 -29
  26. package/container/sticky-bar/sticky-bar.component.js +26 -27
  27. package/core/a11y/focus-trap-controller.js +11 -14
  28. package/core/a11y/focus.js +27 -29
  29. package/core/a11y/input-modality-detector.js +18 -19
  30. package/core/a11y/interactivity-checker.js +10 -10
  31. package/core/base-elements/button-base-element.js +13 -18
  32. package/core/base-elements/link-base-element.js +3 -6
  33. package/core/base-elements/open-close-base-element.js +1 -1
  34. package/core/controllers/connected-abort-controller.js +2 -4
  35. package/core/controllers/escapable-overlay-controller.js +10 -12
  36. package/core/controllers/id-reference-controller.js +13 -14
  37. package/core/controllers/inert-controller.js +8 -10
  38. package/core/controllers/slot-state-controller.js +16 -26
  39. package/core/datetime/date-adapter.d.ts.map +1 -1
  40. package/core/datetime/date-adapter.js +21 -21
  41. package/core/datetime/native-date-adapter.js +11 -11
  42. package/core/decorators/date-converter.js +10 -12
  43. package/core/decorators/date-only-type.js +5 -6
  44. package/core/decorators/force-type.js +4 -5
  45. package/core/dom/breakpoint.js +8 -8
  46. package/core/dom/input-element.js +4 -9
  47. package/core/eventing/event-emitter.js +4 -5
  48. package/core/mixins/form-associated-checkbox-mixin.js +32 -37
  49. package/core/mixins/form-associated-input-mixin.js +58 -64
  50. package/core/mixins/form-associated-mixin.js +42 -44
  51. package/core/mixins/form-associated-radio-button-mixin.js +3 -5
  52. package/core/mixins/hydration-mixin.js +12 -13
  53. package/core/mixins/named-slot-list-mixin.js +32 -37
  54. package/core/mixins/panel-mixin.js +26 -27
  55. package/core/mixins.js +1 -1
  56. package/core/overlay/position.js +23 -23
  57. package/core/styles/core/mediaqueries.scss +1 -1
  58. package/core/styles/core.scss +27 -28
  59. package/core/styles/mixins/table.scss +1 -24
  60. package/core/testing/event-spy.js +2 -4
  61. package/core/testing/wait-for-image-ready.js +8 -9
  62. package/core/testing/wait-for-render.js +8 -9
  63. package/custom-elements.json +2 -2
  64. package/date-input/date-input.component.js +2 -4
  65. package/datepicker/common/datepicker-association-controllers.js +21 -24
  66. package/datepicker/common/datepicker-button.js +53 -57
  67. package/datepicker/datepicker/datepicker.component.js +82 -95
  68. package/datepicker/datepicker-next-day/datepicker-next-day.component.js +1 -1
  69. package/datepicker/datepicker-previous-day/datepicker-previous-day.component.js +1 -1
  70. package/datepicker/datepicker-toggle/datepicker-toggle.component.js +74 -81
  71. package/development/accordion/accordion.component.js +4 -7
  72. package/development/action-group/action-group.component.js +3 -5
  73. package/development/alert/alert/alert.component.js +2 -3
  74. package/development/alert/alert-group/alert-group.component.js +2 -3
  75. package/development/autocomplete/autocomplete-base-element.js +19 -30
  76. package/development/autocomplete/autocomplete.component.js +7 -12
  77. package/development/autocomplete-grid/autocomplete-grid/autocomplete-grid.component.js +10 -18
  78. package/development/autocomplete-grid/autocomplete-grid-button/autocomplete-grid-button.component.js +3 -4
  79. package/development/autocomplete-grid/autocomplete-grid-cell/autocomplete-grid-cell.component.js +1 -1
  80. package/development/autocomplete-grid/autocomplete-grid-optgroup/autocomplete-grid-optgroup.component.js +4 -7
  81. package/development/autocomplete-grid/autocomplete-grid-option/autocomplete-grid-option.component.js +4 -7
  82. package/development/autocomplete-grid/autocomplete-grid-row/autocomplete-grid-row.component.js +2 -2
  83. package/development/breadcrumb/breadcrumb/breadcrumb.component.js +1 -1
  84. package/development/breadcrumb/breadcrumb-group/breadcrumb-group.component.js +5 -9
  85. package/development/button/accent-button/accent-button.component.js +1 -1
  86. package/development/button/accent-button-link/accent-button-link.component.js +1 -1
  87. package/development/button/accent-button-static/accent-button-static.component.js +1 -1
  88. package/development/button/button/button.component.js +1 -1
  89. package/development/button/button-link/button-link.component.js +1 -1
  90. package/development/button/button-static/button-static.component.js +1 -1
  91. package/development/button/common/button-common.js +1 -1
  92. package/development/button/mini-button/mini-button.component.js +1 -1
  93. package/development/button/mini-button-group/mini-button-group.component.js +2 -3
  94. package/development/button/secondary-button/secondary-button.component.js +1 -1
  95. package/development/button/secondary-button-link/secondary-button-link.component.js +1 -1
  96. package/development/button/secondary-button-static/secondary-button-static.component.js +1 -1
  97. package/development/button/transparent-button/transparent-button.component.js +1 -1
  98. package/development/button/transparent-button-link/transparent-button-link.component.js +1 -1
  99. package/development/button/transparent-button-static/transparent-button-static.component.js +1 -1
  100. package/development/calendar/calendar.component.js +9 -14
  101. package/development/card/card/card.component.js +1 -1
  102. package/development/card/card-badge/card-badge.component.js +1 -1
  103. package/development/card/card-button/card-button.component.js +1 -1
  104. package/development/card/card-link/card-link.component.js +1 -1
  105. package/development/card/common/card-action-common.js +3 -5
  106. package/development/checkbox/checkbox/checkbox.component.js +2 -5
  107. package/development/checkbox/checkbox-group/checkbox-group.component.js +8 -21
  108. package/development/checkbox/checkbox-panel/checkbox-panel.component.js +2 -5
  109. package/development/checkbox/common/checkbox-common.js +3 -5
  110. package/development/chip/chip/chip.component.js +1 -1
  111. package/development/chip/chip-group/chip-group.component.js +15 -26
  112. package/development/chip-label/chip-label.component.js +1 -1
  113. package/development/clock/clock.component.js +23 -33
  114. package/development/container/container/container.component.js +2 -3
  115. package/development/container/sticky-bar/sticky-bar.component.js +2 -3
  116. package/development/core/a11y/arrow-navigation.js +1 -1
  117. package/development/core/a11y/fake-event-detection.js +1 -1
  118. package/development/core/a11y/focus-trap-controller.js +6 -9
  119. package/development/core/a11y/focus-visible-within-controller.js +1 -1
  120. package/development/core/a11y/focus.js +8 -10
  121. package/development/core/a11y/input-modality-detector.js +2 -3
  122. package/development/core/a11y/interactivity-checker.js +2 -2
  123. package/development/core/base-elements/action-base-element.js +2 -3
  124. package/development/core/base-elements/button-base-element.js +6 -11
  125. package/development/core/base-elements/link-base-element.js +4 -7
  126. package/development/core/base-elements/open-close-base-element.js +2 -2
  127. package/development/core/config/config.js +1 -1
  128. package/development/core/controllers/connected-abort-controller.js +3 -5
  129. package/development/core/controllers/escapable-overlay-controller.js +3 -5
  130. package/development/core/controllers/id-reference-controller.js +2 -3
  131. package/development/core/controllers/inert-controller.js +4 -6
  132. package/development/core/controllers/language-controller.js +1 -1
  133. package/development/core/controllers/media-matchers-controller.js +1 -1
  134. package/development/core/controllers/slot-state-controller.js +8 -18
  135. package/development/core/datetime/date-adapter.d.ts.map +1 -1
  136. package/development/core/datetime/date-adapter.js +5 -5
  137. package/development/core/datetime/native-date-adapter.js +2 -2
  138. package/development/core/decorators/date-converter.js +3 -5
  139. package/development/core/decorators/date-only-type.js +2 -3
  140. package/development/core/decorators/force-type.js +3 -4
  141. package/development/core/decorators/get-override.js +1 -1
  142. package/development/core/decorators/handle-distinct-change.js +1 -1
  143. package/development/core/decorators/host-attributes.js +1 -1
  144. package/development/core/decorators/slot-state.js +1 -1
  145. package/development/core/dom/animation.js +1 -1
  146. package/development/core/dom/breakpoint.js +2 -2
  147. package/development/core/dom/find-referenced-element.js +1 -1
  148. package/development/core/dom/host-context.js +1 -1
  149. package/development/core/dom/input-element.js +3 -4
  150. package/development/core/dom/platform.js +1 -1
  151. package/development/core/dom/scroll.js +1 -1
  152. package/development/core/dom/set-or-remove-attribute.js +1 -1
  153. package/development/core/eventing/composed-path-has-attribute.js +1 -1
  154. package/development/core/eventing/event-emitter.js +2 -3
  155. package/development/core/eventing/form-element-handlers.js +1 -1
  156. package/development/core/eventing/forward-event.js +1 -1
  157. package/development/core/eventing/throttle.js +1 -1
  158. package/development/core/i18n/i18n.js +1 -1
  159. package/development/core/mixins/animation-complete-mixin.js +1 -1
  160. package/development/core/mixins/disabled-mixin.js +1 -1
  161. package/development/core/mixins/form-associated-checkbox-mixin.js +6 -9
  162. package/development/core/mixins/form-associated-input-mixin.js +14 -20
  163. package/development/core/mixins/form-associated-mixin.js +5 -7
  164. package/development/core/mixins/form-associated-radio-button-mixin.js +7 -9
  165. package/development/core/mixins/hydration-mixin.js +3 -4
  166. package/development/core/mixins/named-slot-list-mixin.js +4 -7
  167. package/development/core/mixins/negative-mixin.js +1 -1
  168. package/development/core/mixins/panel-mixin.js +2 -3
  169. package/development/core/mixins/required-mixin.js +1 -1
  170. package/development/core/mixins/update-scheduler-mixin.js +1 -1
  171. package/development/core/overlay/overlay-option-panel.js +1 -1
  172. package/development/core/overlay/overlay-trigger-attributes.js +1 -1
  173. package/development/core/overlay/overlay.js +1 -1
  174. package/development/core/overlay/position.js +5 -5
  175. package/development/core/testing/event-spy.js +3 -5
  176. package/development/core/testing/mocha-extensions.js +1 -1
  177. package/development/core/testing/wait-for-condition.js +1 -1
  178. package/development/core/testing/wait-for-image-ready.js +2 -3
  179. package/development/core/testing/wait-for-render.js +2 -3
  180. package/development/date-input/date-input.component.js +4 -6
  181. package/development/datepicker/common/datepicker-association-controllers.js +6 -9
  182. package/development/datepicker/common/datepicker-button.js +7 -11
  183. package/development/datepicker/datepicker/datepicker.component.js +22 -35
  184. package/development/datepicker/datepicker-next-day/datepicker-next-day.component.js +1 -1
  185. package/development/datepicker/datepicker-previous-day/datepicker-previous-day.component.js +1 -1
  186. package/development/datepicker/datepicker-toggle/datepicker-toggle.component.js +13 -20
  187. package/development/dialog/dialog/dialog.component.js +16 -27
  188. package/development/dialog/dialog-actions/dialog-actions.component.js +1 -1
  189. package/development/dialog/dialog-content/dialog-content.component.js +1 -1
  190. package/development/dialog/dialog-title/dialog-title.component.js +1 -1
  191. package/development/divider/divider.component.js +1 -1
  192. package/development/expansion-panel/expansion-panel/expansion-panel.component.js +9 -13
  193. package/development/expansion-panel/expansion-panel-content/expansion-panel-content.component.js +1 -1
  194. package/development/expansion-panel/expansion-panel-header/expansion-panel-header.component.js +4 -5
  195. package/development/file-selector/common/file-selector-common.js +2 -3
  196. package/development/file-selector/file-selector/file-selector.component.js +1 -1
  197. package/development/file-selector/file-selector-dropzone/file-selector-dropzone.component.js +1 -1
  198. package/development/flip-card/flip-card/flip-card.component.js +7 -13
  199. package/development/flip-card/flip-card-details/flip-card-details.component.js +2 -3
  200. package/development/flip-card/flip-card-summary/flip-card-summary.component.js +2 -3
  201. package/development/footer/footer.component.js +1 -1
  202. package/development/form-error/form-error.component.js +3 -4
  203. package/development/form-field/form-field/form-field.component.js +19 -30
  204. package/development/form-field/form-field-clear/form-field-clear.component.js +4 -6
  205. package/development/header/common/header-action-common.js +1 -1
  206. package/development/header/header/header.component.js +5 -8
  207. package/development/header/header-button/header-button.component.js +1 -1
  208. package/development/header/header-link/header-link.component.js +1 -1
  209. package/development/icon/icon-base.js +1 -1
  210. package/development/icon/icon-name-mixin.js +1 -1
  211. package/development/icon/icon-request.js +2 -3
  212. package/development/icon/icon-validate.js +1 -1
  213. package/development/icon/icon.component.js +1 -1
  214. package/development/image/image.component.js +7 -9
  215. package/development/journey-header/journey-header.component.js +1 -1
  216. package/development/lead-container/lead-container.component.js +1 -1
  217. package/development/link/block-link/block-link.component.js +1 -1
  218. package/development/link/block-link-button/block-link-button.component.js +1 -1
  219. package/development/link/block-link-static/block-link-static.component.js +1 -1
  220. package/development/link/common/block-link-common.js +1 -1
  221. package/development/link/common/inline-link-common.js +1 -1
  222. package/development/link/link/link.component.js +1 -1
  223. package/development/link/link-button/link-button.component.js +1 -1
  224. package/development/link/link-static/link-static.component.js +1 -1
  225. package/development/link-common-CJEWffDZ.js +1 -1
  226. package/development/link-list/common/link-list-base.js +1 -1
  227. package/development/link-list/link-list/link-list.component.js +1 -1
  228. package/development/link-list/link-list-anchor/link-list-anchor.component.js +1 -1
  229. package/development/loading-indicator/loading-indicator.component.js +1 -1
  230. package/development/loading-indicator-circle/loading-indicator-circle.component.js +1 -1
  231. package/development/logo/logo.component.js +1 -1
  232. package/development/map-container/map-container.component.js +2 -3
  233. package/development/menu/common/menu-action-common.js +1 -1
  234. package/development/menu/menu/menu.component.js +17 -25
  235. package/development/menu/menu-button/menu-button.component.js +1 -1
  236. package/development/menu/menu-link/menu-link.component.js +1 -1
  237. package/development/message/message.component.js +1 -1
  238. package/development/navigation/common/navigation-action-common.js +3 -5
  239. package/development/navigation/navigation/navigation.component.js +19 -35
  240. package/development/navigation/navigation-button/navigation-button.component.js +1 -1
  241. package/development/navigation/navigation-link/navigation-link.component.js +1 -1
  242. package/development/navigation/navigation-list/navigation-list.component.js +1 -1
  243. package/development/navigation/navigation-marker/navigation-marker.component.js +4 -6
  244. package/development/navigation/navigation-section/navigation-section.component.js +22 -32
  245. package/development/notification/notification.component.js +22 -24
  246. package/development/option/optgroup/optgroup-base-element.js +4 -6
  247. package/development/option/optgroup/optgroup.component.js +6 -10
  248. package/development/option/option/option-base-element.js +3 -4
  249. package/development/option/option/option.component.js +7 -10
  250. package/development/overlay/overlay-base-element.js +4 -6
  251. package/development/overlay/overlay.component.js +7 -9
  252. package/development/paginator/common/paginator-common.js +1 -1
  253. package/development/paginator/compact-paginator/compact-paginator.component.js +1 -1
  254. package/development/paginator/paginator/paginator.component.js +2 -3
  255. package/development/popover/popover/popover.component.js +12 -17
  256. package/development/popover/popover-trigger/popover-trigger.component.js +1 -1
  257. package/development/radio-button/common/radio-button-common.js +6 -10
  258. package/development/radio-button/radio-button/radio-button.component.js +2 -5
  259. package/development/radio-button/radio-button-group/radio-button-group.component.js +8 -24
  260. package/development/radio-button/radio-button-panel/radio-button-panel.component.js +3 -7
  261. package/development/screen-reader-only/screen-reader-only.component.js +1 -1
  262. package/development/select/select.component.js +26 -48
  263. package/development/selection-expansion-panel/selection-expansion-panel.component.js +7 -11
  264. package/development/sidebar/icon-sidebar/icon-sidebar.component.js +1 -1
  265. package/development/sidebar/icon-sidebar-button/icon-sidebar-button.component.js +1 -1
  266. package/development/sidebar/icon-sidebar-container/icon-sidebar-container.component.js +4 -7
  267. package/development/sidebar/icon-sidebar-content/icon-sidebar-content.component.js +1 -1
  268. package/development/sidebar/icon-sidebar-link/icon-sidebar-link.component.js +1 -1
  269. package/development/sidebar/sidebar/sidebar.component.js +8 -15
  270. package/development/sidebar/sidebar-close-button/sidebar-close-button.component.js +1 -1
  271. package/development/sidebar/sidebar-container/sidebar-container.component.js +9 -13
  272. package/development/sidebar/sidebar-content/sidebar-content.component.js +1 -1
  273. package/development/sidebar/sidebar-title/sidebar-title.component.js +2 -2
  274. package/development/signet/signet.component.js +1 -1
  275. package/development/skiplink-list/skiplink-list.component.js +1 -1
  276. package/development/slider/slider.component.js +3 -4
  277. package/development/status/status.component.js +1 -1
  278. package/development/stepper/step/step.component.js +5 -7
  279. package/development/stepper/step-label/step-label.component.js +3 -4
  280. package/development/stepper/stepper/stepper.component.js +16 -29
  281. package/development/table/table-wrapper/table-wrapper.component.js +2 -7
  282. package/development/tabs/tab/tab.component.js +1 -1
  283. package/development/tabs/tab-group/tab-group.component.js +23 -38
  284. package/development/tabs/tab-label/tab-label.component.js +1 -1
  285. package/development/tag/tag/tag.component.js +6 -12
  286. package/development/tag/tag-group/tag-group.component.js +5 -13
  287. package/development/teaser/teaser.component.js +1 -1
  288. package/development/teaser-hero/teaser-hero.component.js +1 -1
  289. package/development/teaser-product/common/teaser-product-common.js +1 -1
  290. package/development/teaser-product/teaser-product/teaser-product.component.js +1 -1
  291. package/development/teaser-product/teaser-product-static/teaser-product-static.component.js +1 -1
  292. package/development/time-input/time-input.component.js +8 -12
  293. package/development/timetable-occupancy/timetable-occupancy.component.js +1 -1
  294. package/development/timetable-occupancy-icon/timetable-occupancy-icon.component.js +2 -3
  295. package/development/title/title-base.js +1 -1
  296. package/development/title/title.component.js +1 -1
  297. package/development/toast/toast.component.js +4 -7
  298. package/development/toggle/toggle/toggle.component.js +8 -12
  299. package/development/toggle/toggle-option/toggle-option.component.js +9 -16
  300. package/development/toggle-check/toggle-check.component.js +1 -1
  301. package/development/train/train/train.component.js +1 -1
  302. package/development/train/train-blocked-passage/train-blocked-passage.component.js +1 -1
  303. package/development/train/train-formation/train-formation.component.js +5 -7
  304. package/development/train/train-wagon/train-wagon.component.js +1 -1
  305. package/development/visual-checkbox/visual-checkbox.component.js +1 -1
  306. package/dialog/dialog/dialog.component.js +59 -70
  307. package/expansion-panel/expansion-panel/expansion-panel.component.js +5 -9
  308. package/expansion-panel/expansion-panel-header/expansion-panel-header.component.js +31 -32
  309. package/file-selector/common/file-selector-common.js +1 -2
  310. package/flip-card/flip-card/flip-card.component.js +48 -54
  311. package/flip-card/flip-card-details/flip-card-details.component.js +16 -17
  312. package/flip-card/flip-card-summary/flip-card-summary.component.js +18 -19
  313. package/form-error/form-error.component.js +13 -14
  314. package/form-field/form-field/form-field.component.js +128 -139
  315. package/form-field/form-field-clear/form-field-clear.component.js +20 -22
  316. package/header/header/header.component.js +25 -28
  317. package/icon/icon-request.js +10 -11
  318. package/icon-sidebar-button-common-CM-ueEhH.js +7 -0
  319. package/image/image.component.js +4 -6
  320. package/map-container/map-container.component.js +1 -2
  321. package/menu/menu/menu.component.js +48 -56
  322. package/navigation/common/navigation-action-common.js +19 -21
  323. package/navigation/navigation/navigation.component.js +74 -93
  324. package/navigation/navigation-marker/navigation-marker.component.js +26 -28
  325. package/navigation/navigation-section/navigation-section.component.js +79 -89
  326. package/notification/notification.component.js +18 -20
  327. package/option/optgroup/optgroup-base-element.js +40 -42
  328. package/option/optgroup/optgroup.component.js +16 -20
  329. package/option/option/option-base-element.js +3 -4
  330. package/option/option/option.component.js +28 -31
  331. package/overlay/overlay-base-element.js +25 -27
  332. package/overlay/overlay.component.js +38 -40
  333. package/package.json +1 -1
  334. package/paginator/paginator/paginator.component.js +3 -4
  335. package/popover/popover/popover.component.js +82 -91
  336. package/popover/popover-trigger/popover-trigger.component.js +1 -1
  337. package/radio-button/common/radio-button-common.js +11 -15
  338. package/radio-button/radio-button/radio-button.component.js +20 -23
  339. package/radio-button/radio-button-group/radio-button-group.component.js +27 -43
  340. package/radio-button/radio-button-panel/radio-button-panel.component.js +31 -35
  341. package/select/select.component.js +89 -111
  342. package/selection-expansion-panel/selection-expansion-panel.component.js +35 -39
  343. package/sidebar/common.js +1 -1
  344. package/sidebar/icon-sidebar-container/icon-sidebar-container.component.js +10 -13
  345. package/sidebar/sidebar/sidebar.component.js +61 -68
  346. package/sidebar/sidebar-container/sidebar-container.component.js +29 -33
  347. package/sidebar/sidebar-title/sidebar-title.component.js +1 -1
  348. package/sidebar.js +1 -1
  349. package/slider/slider.component.js +3 -4
  350. package/standard-theme.css +0 -25
  351. package/stepper/step/step.component.js +22 -24
  352. package/stepper/step-label/step-label.component.js +2 -3
  353. package/stepper/stepper/stepper.component.js +72 -86
  354. package/table/table-wrapper/table-wrapper.component.js +13 -14
  355. package/table.css +0 -25
  356. package/tabs/tab-group/tab-group.component.js +77 -92
  357. package/tabs/tab-label/tab-label.component.js +10 -10
  358. package/tag/tag/tag.component.js +55 -61
  359. package/tag/tag-group/tag-group.component.js +21 -29
  360. package/teaser/teaser.component.js +1 -1
  361. package/teaser-product/common.js +1 -1
  362. package/teaser-product/teaser-product/teaser-product.component.js +1 -1
  363. package/teaser-product-common-C8oSkIxy.js +5 -0
  364. package/teaser-product.js +1 -1
  365. package/time-input/time-input.component.js +62 -66
  366. package/timetable-occupancy-icon/timetable-occupancy-icon.component.js +9 -10
  367. package/toast/toast.component.js +4 -7
  368. package/toggle/toggle/toggle.component.js +38 -42
  369. package/toggle/toggle-option/toggle-option.component.js +47 -54
  370. package/train/train-formation/train-formation.component.js +41 -43
  371. package/core/styles/node_modules_@sbb-esta_lyne-design-tokens_dist_scss_sbb-variables.scss +0 -530
  372. package/core/styles/node_modules_@sbb-esta_lyne-design-tokens_dist_scss_sbb-variables_css--mixin.scss +0 -1123
  373. package/icon-sidebar-button-common-DG8bnrBu.js +0 -7
  374. package/teaser-product-common-CpMAlYEp.js +0 -5
@@ -15,4 +15,4 @@ const throttle = (func, delay) => {
15
15
  export {
16
16
  throttle
17
17
  };
18
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhyb3R0bGUuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb3JlL2V2ZW50aW5nL3Rocm90dGxlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCB0aHJvdHRsZSA9IDxGIGV4dGVuZHMgKC4uLmFyZ3M6IGFueVtdKSA9PiBhbnk+KFxuICBmdW5jOiBGLFxuICBkZWxheTogbnVtYmVyLFxuKTogKCguLi5hcmdzOiBQYXJhbWV0ZXJzPEY+KSA9PiBQcm9taXNlPFJldHVyblR5cGU8Rj4+KSA9PiB7XG4gIGxldCBzaG91bGRXYWl0ID0gZmFsc2U7XG5cbiAgY29uc3QgdGhyb3R0bGVkID0gKC4uLmFyZ3M6IFBhcmFtZXRlcnM8Rj4pOiBhbnkgPT4ge1xuICAgIGlmIChzaG91bGRXYWl0KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGZ1bmMoLi4uYXJncyk7XG4gICAgc2hvdWxkV2FpdCA9IHRydWU7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBzaG91bGRXYWl0ID0gZmFsc2U7XG4gICAgfSwgZGVsYXkpO1xuICB9O1xuXG4gIHJldHVybiB0aHJvdHRsZWQgYXMgKC4uLmFyZ3M6IFBhcmFtZXRlcnM8Rj4pID0+IFJldHVyblR5cGU8Rj47XG59O1xuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFhLE1BQUEsV0FBVyxDQUN0QixNQUNBLFVBQ3dEO0FBQ3hELE1BQUksYUFBYTtBQUVYLFFBQUEsWUFBWSxJQUFJLFNBQTRCO0FBQ2hELFFBQUksWUFBWTtBQUNkO0FBQUEsSUFBQTtBQUVGLFNBQUssR0FBRyxJQUFJO0FBQ0MsaUJBQUE7QUFDYixlQUFXLE1BQUs7QUFDRCxtQkFBQTtBQUFBLE9BQ1osS0FBSztBQUFBLEVBQ1Y7QUFFTyxTQUFBO0FBQ1Q7In0=
18
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhyb3R0bGUuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb3JlL2V2ZW50aW5nL3Rocm90dGxlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCB0aHJvdHRsZSA9IDxGIGV4dGVuZHMgKC4uLmFyZ3M6IGFueVtdKSA9PiBhbnk+KFxuICBmdW5jOiBGLFxuICBkZWxheTogbnVtYmVyLFxuKTogKCguLi5hcmdzOiBQYXJhbWV0ZXJzPEY+KSA9PiBQcm9taXNlPFJldHVyblR5cGU8Rj4+KSA9PiB7XG4gIGxldCBzaG91bGRXYWl0ID0gZmFsc2U7XG5cbiAgY29uc3QgdGhyb3R0bGVkID0gKC4uLmFyZ3M6IFBhcmFtZXRlcnM8Rj4pOiBhbnkgPT4ge1xuICAgIGlmIChzaG91bGRXYWl0KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGZ1bmMoLi4uYXJncyk7XG4gICAgc2hvdWxkV2FpdCA9IHRydWU7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBzaG91bGRXYWl0ID0gZmFsc2U7XG4gICAgfSwgZGVsYXkpO1xuICB9O1xuXG4gIHJldHVybiB0aHJvdHRsZWQgYXMgKC4uLmFyZ3M6IFBhcmFtZXRlcnM8Rj4pID0+IFJldHVyblR5cGU8Rj47XG59O1xuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFPLE1BQU0sV0FBVyxDQUN0QixNQUNBLFVBQ3dEO0FBQ3hELE1BQUksYUFBYTtBQUVqQixRQUFNLFlBQVksSUFBSSxTQUE0QjtBQUNoRCxRQUFJLFlBQVk7QUFDZDtBQUFBLElBQUE7QUFFRixTQUFLLEdBQUcsSUFBSTtBQUNaLGlCQUFhO0FBQ2IsZUFBVyxNQUFLO0FBQ2QsbUJBQWE7QUFBQSxJQUFBLEdBQ1osS0FBSztBQUFBLEVBQUE7QUFHVixTQUFPO0FBQ1Q7In0=
@@ -790,4 +790,4 @@ export {
790
790
  i18nWalkingDistanceDeparture,
791
791
  i18nYearMonthSelection
792
792
  };
793
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaTE4bi5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NvcmUvaTE4bi9pMThuLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgU2JiTGFuZ3VhZ2UsIFNiYk9jY3VwYW5jeSB9IGZyb20gJy4uL2ludGVyZmFjZXMuanMnO1xuXG5leHBvcnQgY29uc3QgaTE4bkRpcmVjdGlvbjogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZGU6ICdSaWNodHVuZycsXG4gIGVuOiAnRGlyZWN0aW9uJyxcbiAgZnI6ICdEaXJlY3Rpb24nLFxuICBpdDogJ0RpcmV6aW9uZScsXG59O1xuXG5leHBvcnQgY29uc3QgaTE4bkFycml2YWw6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnQW5rdW5mdCcsXG4gIGVuOiAnQXJyaXZhbCcsXG4gIGZyOiAnQXJyaXbDqWUnLFxuICBpdDogJ0Fycml2bycsXG59O1xuXG5leHBvcnQgY29uc3QgaTE4blNlY3RvcjogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZGU6ICdTZWt0b3InLFxuICBlbjogJ1NlY3RvcicsXG4gIGZyOiAnU2VjdGV1cicsXG4gIGl0OiAnU2V0dG9yZScsXG59O1xuXG5leHBvcnQgY29uc3QgaTE4blNlY3RvclNob3J0OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBkZTogJ1NrdC4nLFxuICBlbjogJ1NlYy4nLFxuICBmcjogJ1NlY3QuJyxcbiAgaXQ6ICdTZXQuJyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuQ2xhc3M6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHN0cmluZz4+ID0ge1xuICBmaXJzdDoge1xuICAgIGRlOiAnRXJzdGUgS2xhc3NlJyxcbiAgICBlbjogJ0ZpcnN0IENsYXNzJyxcbiAgICBmcjogJ1ByZW1pw6hyZSBjbGFzc2UnLFxuICAgIGl0OiAnUHJpbWEgY2xhc3NlJyxcbiAgfSxcbiAgc2Vjb25kOiB7XG4gICAgZGU6ICdad2VpdGUgS2xhc3NlJyxcbiAgICBlbjogJ1NlY29uZCBDbGFzcycsXG4gICAgZnI6ICdEZXV4acOobWUgY2xhc3NlJyxcbiAgICBpdDogJ1NlY29uZGEgY2xhc3NlJyxcbiAgfSxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuVHJhaW46IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnWnVnJyxcbiAgZW46ICdUcmFpbicsXG4gIGZyOiAnVHJhaW4nLFxuICBpdDogJ1RyZW5vJyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuVHJhaW5zOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBkZTogJ1rDvGdlJyxcbiAgZW46ICdUcmFpbnMnLFxuICBmcjogJ1RyYWlucycsXG4gIGl0OiAnVHJlbmknLFxufTtcblxuZXhwb3J0IGNvbnN0IGkxOG5XYWdvbnNMYWJlbDogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZGU6ICdXYWdlbiBkZXMgWnVnZXMnLFxuICBlbjogJ0NvYWNoZXMgb2YgdGhlIHRyYWluJyxcbiAgZnI6ICdXYWdvbnMgZGUgdHJhaW4nLFxuICBpdDogJ0NhcnJvenplIGRlbCB0cmVubycsXG59O1xuXG5leHBvcnQgY29uc3QgaTE4bldhZ29uTGFiZWw6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnV2FnZW4nLFxuICBlbjogJ1RyYWluIGNvYWNoJyxcbiAgZnI6ICdXYWdvbiBkZSB0cmFpbicsXG4gIGl0OiAnQ2Fycm96emEgZGVsIHRyZW5vJyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuV2Fnb25MYWJlbE51bWJlcjogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZGU6IGBOdW1tZXJgLFxuICBlbjogYE51bWJlcmAsXG4gIGZyOiBgTnVtw6lyb2AsXG4gIGl0OiBgTnVtZXJvYCxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuQ2xvc2VkQ29tcGFydG1lbnRMYWJlbDogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZGU6ICdHZXNjaGxvc3NlbmVyIFp1Z3dhZ2dvbicsXG4gIGVuOiAnQ2xvc2VkIHRyYWluIGNvYWNoJyxcbiAgZnI6ICdXYWdvbiBkZSB0cmFpbiBmZXJtw6knLFxuICBpdDogJ0NhcnJvenphIGRlbCB0cmVubyBjaGl1c28nLFxufTtcblxuZXhwb3J0IGNvbnN0IGkxOG5Mb2NvbW90aXZlTGFiZWw6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnTG9rb21vdGl2ZScsXG4gIGVuOiAnTG9jb21vdGl2ZScsXG4gIGZyOiAnTG9jb21vdGl2ZScsXG4gIGl0OiAnTG9jb21vdGl2YScsXG59O1xuXG5leHBvcnQgY29uc3QgaTE4blNsZWVwaW5nV2Fnb25MYWJlbDogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZGU6ICdTY2hsYWZ3YWdlbicsXG4gIGVuOiAnU2xlZXBpbmcgY2FyJyxcbiAgZnI6ICdWb2l0dXJlLWxpdHMnLFxuICBpdDogJ0NhcnJvenphIGxldHRpJyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuQ291Y2hldHRlV2Fnb25MYWJlbDogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZGU6ICdMaWVnZXdhZ2VuJyxcbiAgZW46ICdDb3VjaGV0dGUgY2FyJyxcbiAgZnI6ICdWb2l0dXJlLWNvdWNoZXR0ZXMnLFxuICBpdDogJ0NhcnJvenphIGN1Y2NldHRlJyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuUmVzdGF1cmFudFdhZ29uTGFiZWw6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnU3BlaXNld2FnZW4nLFxuICBlbjogJ0RpbmluZyBjYXInLFxuICBmcjogJ1ZvaXR1cmUtcmVzdGF1cmFudCcsXG4gIGl0OiAnQ2Fycm96emEgcmlzdG9yYW50ZScsXG59O1xuXG5leHBvcnQgY29uc3QgaTE4bkJsb2NrZWRQYXNzYWdlOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PiA9IHtcbiAgcHJldmlvdXM6IHtcbiAgICBkZTogJ0tlaW4gRHVyY2hnYW5nIHp1bSB2b3JoZXJpZ2VuIFdhZ2VuJyxcbiAgICBlbjogJ05vIHBhc3NhZ2UgdG8gdGhlIHByZXZpb3VzIHRyYWluIGNvYWNoJyxcbiAgICBmcjogJ1BhcyBkZSBwYXNzYWdlIGF1IHdhZ29uIGR1IHRyYWluIHByw6ljw6lkZW50JyxcbiAgICBpdDogJ05lc3N1biBwYXNzYWdnaW8gYWxsYSBjYXJyb3p6YSBkZWwgdHJlbm8gcHJlY2VkZW50ZScsXG4gIH0sXG4gIG5leHQ6IHtcbiAgICBkZTogJ0tlaW4gRHVyY2hnYW5nIHp1bSBuw6RjaHN0ZW4gV2FnZW4nLFxuICAgIGVuOiAnTm8gcGFzc2FnZSB0byB0aGUgbmV4dCB0cmFpbiBjb2FjaCcsXG4gICAgZnI6ICdQYXMgZGUgcGFzc2FnZSBhdSB3YWdvbiBkZSB0cmFpbiBzdWl2YW50JyxcbiAgICBpdDogJ05lc3N1biBwYXNzYWdnaW8gYWxsYSBjYXJyb3p6YSBkZWwgdHJlbm8gc3VjY2Vzc2l2bycsXG4gIH0sXG4gIGJvdGg6IHtcbiAgICBkZTogJ0tlaW4gRHVyY2hnYW5nIHp1bSBuw6RjaHN0ZW4gdW5kIHZvcmhlcmlnZW4gV2FnZW4nLFxuICAgIGVuOiAnTm8gcGFzc2FnZSB0byB0aGUgbmV4dCBhbmQgcHJldmlvdXMgdHJhaW4gY29hY2gnLFxuICAgIGZyOiAnUGFzIGRlIHBhc3NhZ2UgYXUgd2Fnb24gZGUgdHJhaW4gc3VpdmFudCBldCBwcsOpY8OpZGVudCcsXG4gICAgaXQ6ICdOZXNzdW4gcGFzc2FnZ2lvIGFsbGEgY2Fycm96emEgZGVsIHRyZW5vIHN1Y2Nlc3Npdm8gZSBwcmVjZWRlbnRlJyxcbiAgfSxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuQWRkaXRpb25hbFdhZ29uSW5mb3JtYXRpb25IZWFkaW5nOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBkZTogJ1p1c8OkdHpsaWNoZSBXYWdlbmluZm9ybWF0aW9uJyxcbiAgZW46ICdBZGRpdGlvbmFsIHdhZ29uIGluZm9ybWF0aW9uJyxcbiAgZnI6ICdJbmZvcm1hdGlvbnMgc3VwcGzDqW1lbnRhaXJlcyBzdXIgbGVzIHdhZ29ucycsXG4gIGl0OiAnSW5mb3JtYXppb25pIGFnZ2l1bnRpdmUgc3VsbGEgY2Fycm96emEgZGVsIHRyZW5vJyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuRGVwYXJ0dXJlOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBkZTogJ0FiZmFocnQnLFxuICBlbjogJ0RlcGFydHVyZScsXG4gIGZyOiAnRMOpcGFydCcsXG4gIGl0OiAnUGFydGVuemEnLFxufTtcblxuZXhwb3J0IGNvbnN0IGkxOG5EdXJhdGlvbk1pbnV0ZTogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgc3RyaW5nPj4+ID0ge1xuICBzaW5nbGU6IHtcbiAgICBsb25nOiB7XG4gICAgICBkZTogJ01pbnV0ZScsXG4gICAgICBlbjogJ01pbnV0ZScsXG4gICAgICBmcjogJ01pbnV0ZScsXG4gICAgICBpdDogJ01pbnV0bycsXG4gICAgfSxcbiAgICBzaG9ydDoge1xuICAgICAgZGU6ICdtJyxcbiAgICAgIGVuOiAnbScsXG4gICAgICBmcjogJ20nLFxuICAgICAgaXQ6ICdtJyxcbiAgICB9LFxuICB9LFxuICBtdWx0aXBsZToge1xuICAgIGxvbmc6IHtcbiAgICAgIGRlOiAnTWludXRlbicsXG4gICAgICBlbjogJ01pbnV0ZXMnLFxuICAgICAgZnI6ICdNaW51dGVzJyxcbiAgICAgIGl0OiAnTWludXRpJyxcbiAgICB9LFxuICAgIHNob3J0OiB7XG4gICAgICBkZTogJ01pbicsXG4gICAgICBlbjogJ21pbicsXG4gICAgICBmcjogJ21pbi4nLFxuICAgICAgaXQ6ICdtaW5zJyxcbiAgICB9LFxuICB9LFxufTtcblxuZXhwb3J0IGNvbnN0IGkxOG5EdXJhdGlvbkhvdXI6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHN0cmluZz4+PiA9IHtcbiAgc2luZ2xlOiB7XG4gICAgbG9uZzoge1xuICAgICAgZGU6ICdTdHVuZGUnLFxuICAgICAgZW46ICdIb3VyJyxcbiAgICAgIGZyOiAnSGV1cmUnLFxuICAgICAgaXQ6ICdPcmEnLFxuICAgIH0sXG4gICAgc2hvcnQ6IHtcbiAgICAgIGRlOiAnU3RkLicsXG4gICAgICBlbjogJ2gnLFxuICAgICAgZnI6ICdvcmUnLFxuICAgICAgaXQ6ICdocnMnLFxuICAgIH0sXG4gIH0sXG4gIG11bHRpcGxlOiB7XG4gICAgbG9uZzoge1xuICAgICAgZGU6ICdTdHVuZGVuJyxcbiAgICAgIGVuOiAnSG91cnMnLFxuICAgICAgZnI6ICdIZXVyZXMnLFxuICAgICAgaXQ6ICdPcmUnLFxuICAgIH0sXG4gICAgc2hvcnQ6IHtcbiAgICAgIGRlOiAnU3RkLicsXG4gICAgICBlbjogJ2gnLFxuICAgICAgZnI6ICdvcmUnLFxuICAgICAgaXQ6ICdocnMnLFxuICAgIH0sXG4gIH0sXG59O1xuXG5leHBvcnQgY29uc3QgaTE4bkR1cmF0aW9uRGF5OiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+Pj4gPSB7XG4gIHNpbmdsZToge1xuICAgIGxvbmc6IHtcbiAgICAgIGRlOiAnVGFnJyxcbiAgICAgIGVuOiAnRGF5JyxcbiAgICAgIGZyOiAnSm91cicsXG4gICAgICBpdDogJ0dpb3JubycsXG4gICAgfSxcbiAgfSxcbiAgbXVsdGlwbGU6IHtcbiAgICBsb25nOiB7XG4gICAgICBkZTogJ1RhZ2UnLFxuICAgICAgZW46ICdEYXlzJyxcbiAgICAgIGZyOiAnSm91cnMnLFxuICAgICAgaXQ6ICdHaW9ybmknLFxuICAgIH0sXG4gIH0sXG59O1xuXG5leHBvcnQgY29uc3QgaTE4blRyaXBRdWF5Q2hhbmdlOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBkZTogJ0dsZWlzw6RuZGVydW5nIGltIFZlcmxhdWYgZGllc2VyIFZlcmJpbmR1bmcnLFxuICBlbjogJ1RyYWNrIGNoYW5nZSBpbiB0aGUgY291cnNlIG9mIHRoaXMgY29ubmVjdGlvbicsXG4gIGZyOiAnQ2hhbmdlbWVudCBkZSB2b2llIHN1ciBsZSBwYXJjb3VycyBkZSBjZXR0ZSBjb25uZXhpb24nLFxuICBpdDogJ0NhbWJpYW1lbnRvIGRpIGJpbmFyaW8gbmVsIGNvcnNvIGRpIHF1ZXN0YSBjb25uZXNzaW9uZScsXG59O1xuXG5leHBvcnQgY29uc3QgaTE4blRyaXBEdXJhdGlvbjogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZGU6ICdSZWlzZWRhdWVyJyxcbiAgZW46ICdUcmF2ZWwgdGltZScsXG4gIGZyOiAnRHVyw6llIGR1IHZveWFnZScsXG4gIGl0OiAnRHVyYXRhIGRlbCB2aWFnZ2lvJyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuVHJhdmVsaGludHM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnUmVpc2VoaW53ZWlzZScsXG4gIGVuOiAnVHJhdmVsaGludHMnLFxuICBmcjogJ0luZGljYXRpb25zIHN1ciBsZSB2b3lhZ2UnLFxuICBpdDogJ0lkaWljYXppb25pIGRpIHZpYWdnaW8nLFxufTtcblxuZXhwb3J0IGNvbnN0IGkxOG5SZWFsVGltZUluZm86IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnRWNodHplaXRpbmZvcm1hdGlvbmVuJyxcbiAgZW46ICdSZWFsIHRpbWUgaW5mb3JtYXRpb24nLFxuICBmcjogJ0luZm9ybWF0aW9ucyBlbiB0ZW1wcyByw6llbCcsXG4gIGl0OiAnSW5mb3JtYXppb25pIGluIHRlbXBvIHJlYWxlJyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuVHJhbnNmZXJQcm9jZWR1cmU6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnbWFsIHVtc3RlaWdlbicsXG4gIGVuOiAnY2hhbmdlJyxcbiAgZnI6ICdjaGFuZ2VtZW50IGRlIHRyYWluJyxcbiAgaXQ6ICdjYW1iaW8nLFxufTtcblxuZXhwb3J0IGNvbnN0IGkxOG5UcmFuc2ZlclByb2NlZHVyZXM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnbWFsIHVtc3RlaWdlbicsXG4gIGVuOiAnY2hhbmdlcycsXG4gIGZyOiAnY2hhbmdlbWVudHMgZGUgdHJhaW4nLFxuICBpdDogJ2NhbWJpJyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuTmV3OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBkZTogJ25ldScsXG4gIGVuOiAnbmV3JyxcbiAgZnI6ICdub3V2ZWF1JyxcbiAgaXQ6ICdudW92bycsXG59O1xuXG5leHBvcnQgY29uc3QgaTE4bkZyb21QbGF0Zm9ybTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZGU6ICdBdWYnLFxuICBlbjogJ29uJyxcbiAgZnI6ICdzdXInLFxuICBpdDogJ3N1Jyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuU3VwZXJzYXZlcjogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZGU6ICdTcGFyYmlsbGV0dGUnLFxuICBlbjogJ1N1cGVyc2F2ZXIgdGlja2V0cycsXG4gIGZyOiAnQmlsbGV0cyBkw6lncmlmZsOpcycsXG4gIGl0OiAnQmlnbGlldHRpIHJpc3Bhcm1pbycsXG59O1xuXG5leHBvcnQgY29uc3QgaTE4bk9jY3VwYW5jeTogUmVjb3JkPFNiYk9jY3VwYW5jeSwgUmVjb3JkPFNiYkxhbmd1YWdlLCBzdHJpbmc+PiA9IHtcbiAgbm9uZToge1xuICAgIGRlOiAnS2VpbmUgQmVsZWd1bmdzcHJvZ25vc2UgdmVyZsO8Z2JhcicsXG4gICAgZW46ICdObyBvY2N1cGFuY3kgZm9yZWNhc3QgYXZhaWxhYmxlJyxcbiAgICBmcjogXCJBdWN1bmUgcHLDqXZpc2lvbiBkJ29jY3VwYXRpb24gZGlzcG9uaWJsZVwiLFxuICAgIGl0OiAnTmVzc3VuYSBwcmV2aXNpb25lIGRpIG9jY3VwYXppb25lIGRpc3BvbmliaWxlJyxcbiAgfSxcbiAgbG93OiB7XG4gICAgZGU6ICdUaWVmZSBiaXMgbWl0dGxlcmUgQmVsZWd1bmcgZXJ3YXJ0ZXQnLFxuICAgIGVuOiAnTG93IHRvIG1lZGl1bSBvY2N1cGFuY3kgZXhwZWN0ZWQnLFxuICAgIGZyOiBcIk9uIHMnYXR0ZW5kIMOgIHVuIHRhdXggZCdvY2N1cGF0aW9uIGZhaWJsZSDDoCBtb3llblwiLFxuICAgIGl0OiBcIlNpIHByZXZlZGUgdW4nb2NjdXBhemlvbmUgbWVkaW8tYmFzc2FcIixcbiAgfSxcbiAgbWVkaXVtOiB7XG4gICAgZGU6ICdIb2hlIEJlbGVndW5nIGVyd2FydGV0JyxcbiAgICBlbjogJ0hpZ2ggb2NjdXBhbmN5IGV4cGVjdGVkJyxcbiAgICBmcjogXCJVbiB0YXV4IGQnb2NjdXBhdGlvbiDDqWxldsOpIGVzdCBhdHRlbmR1XCIsXG4gICAgaXQ6IFwiQ2kgc2kgYXNwZXR0YSB1bidhbHRhIG9jY3VwYXppb25lXCIsXG4gIH0sXG4gIGhpZ2g6IHtcbiAgICBkZTogJ1NlaHIgaG9oZSBCZWxlZ3VuZyBlcndhcnRldCcsXG4gICAgZW46ICdWZXJ5IGhpZ2ggb2NjdXBhbmN5IGV4cGVjdGVkJyxcbiAgICBmcjogXCJVbiB0YXV4IGQnb2NjdXBhdGlvbiB0csOocyDDqWxldsOpIGVzdCBhdHRlbmR1XCIsXG4gICAgaXQ6IFwiQ2kgc2kgYXNwZXR0YSB1bidvY2N1cGF6aW9uZSBtb2x0byBhbHRhXCIsXG4gIH0sXG59O1xuXG5leHBvcnQgY29uc3QgaTE4bk1lYW5zT2ZUcmFuc3BvcnQ6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHN0cmluZz4+ID0ge1xuICBmdW5pY3VsYXI6IHtcbiAgICBkZTogJ1NlaWxiYWhuL1phaG5yYWRiYWhuJyxcbiAgICBlbjogJ0Z1bmljdWxhci9Db2cgcmFpbHdheScsXG4gICAgZnI6ICdGdW5pY3VsYWlyZS9DaGVtaW4gZGUgZmVyIMOgIGNyw6ltYWlsbMOocmUnLFxuICAgIGl0OiAnRnVuaXZpYS9GZXJyb3ZpYSBhIGNyZW1hZ2xpZXJhJyxcbiAgfSxcbiAgZWNfaWQ6IHtcbiAgICBkZTogJ0VDL0lDJyxcbiAgICBlbjogJ0VDL0lDJyxcbiAgICBmcjogJ0VDL0lDJyxcbiAgICBpdDogJ0VDL0lDJyxcbiAgfSxcbiAgYnVzOiB7XG4gICAgZGU6ICdCdXMnLFxuICAgIGVuOiAnQnVzJyxcbiAgICBmcjogJ0J1cycsXG4gICAgaXQ6ICdCdXMnLFxuICB9LFxuICByZToge1xuICAgIGRlOiAnUkUnLFxuICAgIGVuOiAnUkUnLFxuICAgIGZyOiAnUkUnLFxuICAgIGl0OiAnUkUnLFxuICB9LFxuICBhcnpfZXh0OiB7XG4gICAgZGU6ICdBUlovRVhUJyxcbiAgICBlbjogJ0FSWi9FWFQnLFxuICAgIGZyOiAnQVJaL0VYVCcsXG4gICAgaXQ6ICdBUlovRVhUJyxcbiAgfSxcbiAgaWNlX3Rndl9yang6IHtcbiAgICBkZTogJ0lDRS9UR1YvUkpYJyxcbiAgICBlbjogJ0lDRS9UR1YvUkpYJyxcbiAgICBmcjogJ0lDRS9UR1YvUkpYJyxcbiAgICBpdDogJ0lDRS9UR1YvUkpYJyxcbiAgfSxcbiAgaXJfcGU6IHtcbiAgICBkZTogJ0lSL1BFJyxcbiAgICBlbjogJ0lSL1BFJyxcbiAgICBmcjogJ0lSL1BFJyxcbiAgICBpdDogJ0lSL1BFJyxcbiAgfSxcbiAgc19zbl9yOiB7XG4gICAgZGU6ICdTL1NOL1InLFxuICAgIGVuOiAnUy9TTi9SJyxcbiAgICBmcjogJ1MvU04vUicsXG4gICAgaXQ6ICdTL1NOL1InLFxuICB9LFxuICB0cmFtd2F5OiB7XG4gICAgZGU6ICdUcmFtL01ldHJvJyxcbiAgICBlbjogJ1RyYW13YXkvVW5kZXJncm91bmQnLFxuICAgIGZyOiAnVHJhbS9Nw6l0cm8nLFxuICAgIGl0OiAnVHJhbS9NZXRybycsXG4gIH0sXG4gIHNoaXA6IHtcbiAgICBkZTogJ1NjaGlmZicsXG4gICAgZW46ICdTaGlwJyxcbiAgICBmcjogJ0JhdGVhdScsXG4gICAgaXQ6ICdCYXR0ZWxsbycsXG4gIH0sXG4gIHRyYWluOiB7XG4gICAgZGU6ICdadWcnLFxuICAgIGVuOiAnVHJhaW4nLFxuICAgIGZyOiAnVHJhaW4nLFxuICAgIGl0OiAnVHJlbm8nLFxuICB9LFxufTtcblxuZXhwb3J0IGNvbnN0IGkxOG5PcHRpb25hbDogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZGU6ICcob3B0aW9uYWwpJyxcbiAgZW46ICcob3B0aW9uYWwpJyxcbiAgZnI6ICcoZmFjdWx0YXRpZiknLFxuICBpdDogJyhmYWNvbHRhdGl2byknLFxufTtcblxuZXhwb3J0IGNvbnN0IGkxOG5UYXJnZXRPcGVuc0luTmV3V2luZG93OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBkZTogJ0xpbmt6aWVsIMO2ZmZuZXQgaW4gbmV1ZW0gRmVuc3Rlci4nLFxuICBlbjogJ0xpbmsgdGFyZ2V0IG9wZW5zIGluIGEgbmV3IHdpbmRvdy4nLFxuICBmcjogXCJMZSBsaWVuIHMnb3V2cmUgZGFucyB1bmUgbm91dmVsbGUgZmVuw6p0cmUuXCIsXG4gIGl0OiBcIkwnb2JpZXR0aXZvIGRlbCBsaW5rIHNpIGFwcmUgaW4gdW5hIG51b3ZhIGZpbmVzdHJhLlwiLFxufTtcblxuZXhwb3J0IGNvbnN0IGkxOG5XYWxraW5nRGlzdGFuY2VBcnJpdmFsOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBkZTogJ01pbnV0ZW4gRnVzc3dlZyBuYWNoIEFua3VuZnQ6JyxcbiAgZW46ICdtaW51dGVzIG9mIHdhbGtpbmcgdGltZSBhZnRlciBhcnJpdmFsOicsXG4gIGZyOiAnbWludXRlcyBkZSB0cmFqZXQgw6AgcGllZCBhcHLDqHMgbOKAmWFycml2w6llOicsXG4gIGl0OiAnbWludXRpIGEgcGllZGkgYWxs4oCZYXJyaXZvOicsXG59O1xuXG5leHBvcnQgY29uc3QgaTE4bldhbGtpbmdEaXN0YW5jZURlcGFydHVyZTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZGU6ICdNaW51dGVuIEZ1c3N3ZWcgdm9yIEFiZmFocnQ6JyxcbiAgZW46ICdtaW51dGVzIG9mIHdhbGtpbmcgdGltZSBiZWZvcmUgZGVwYXJ0dXJlOicsXG4gIGZyOiAnbWludXRlcyB0cmFqZXQgw6AgcGllZCBhdmFudCBsZSBkw6lwYXJ0OicsXG4gIGl0OiAnbWludXRpIGEgcGllZGkgcHJpbWEgZGVsbGEgcGFydGVuemE6Jyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuQ2xvc2VBbGVydDogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZGU6ICdNZWxkdW5nIHNjaGxpZXNzZW4nLFxuICBlbjogJ0Nsb3NlIG1lc3NhZ2UnLFxuICBmcjogJ0Zlcm1lciBtZXNzYWdlJyxcbiAgaXQ6ICdDaGl1ZGVyZSBpbCBtZXNzYWdnaW8nLFxufTtcblxuZXhwb3J0IGNvbnN0IGkxOG5DbG9zZU5vdGlmaWNhdGlvbjogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZGU6ICdOYWNocmljaHQgc2NobGllc3NlbicsXG4gIGVuOiAnQ2xvc2UgbWVzc2FnZScsXG4gIGZyOiAnRmVybWVyIG1lc3NhZ2UnLFxuICBpdDogJ0NoaXVkZXJlIGlsIG1lc3NhZ2dpbycsXG59O1xuXG5leHBvcnQgY29uc3QgaTE4bkRpYWxvZzogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZGU6ICdEaWFsb2cnLFxuICBlbjogJ0RpYWxvZycsXG4gIGZyOiAnRGlhbG9ndWUnLFxuICBpdDogJ0RpYWxvZ28nLFxufTtcblxuZXhwb3J0IGNvbnN0IGkxOG5DbG9zZURpYWxvZzogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZGU6ICfDnGJlcmdlbGFnZXJ0ZXMgRmVuc3RlciBzY2hsaWVzc2VuJyxcbiAgZW46ICdDbG9zZSBzZWNvbmRhcnkgd2luZG93JyxcbiAgZnI6ICdGZXJtZXIgbGEgZmVuw6p0cmUgc3VwZXJwb3PDqWUnLFxuICBpdDogJ0NoaXVkZXJlIGxhIGZpbmVzdHJhIHNvdnJhcHBvc3RhJyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuQ2xvc2VOYXZpZ2F0aW9uOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBkZTogJ05hdmlnYXRpb24gc2NobGllc3NlbicsXG4gIGVuOiAnQ2xvc2UgbmF2aWdhdGlvbicsXG4gIGZyOiAnRmVybWVyIGxhIG5hdmlnYXRpb24nLFxuICBpdDogJ0NoaXVkZXJlIGxhIG5hdmlnYXppb25lJyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuQ2xvc2VTaWRlYmFyOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBkZTogJ1NlaXRlbmxlaXN0ZSBzY2hsaWVzc2VuJyxcbiAgZW46ICdDbG9zZSBzaWRlYmFyJyxcbiAgZnI6ICdGZXJtZXIgbGEgYmFycmUgbGF0w6lyYWxlJyxcbiAgaXQ6ICdDaGl1ZGVyZSBsYSBiYXJyYSBsYXRlcmFsZScsXG59O1xuXG5leHBvcnQgY29uc3QgaTE4bkNsb3NlUG9wb3ZlcjogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZGU6ICdIaW53ZWlzIHNjaGxpZXNzZW4nLFxuICBlbjogJ0Nsb3NlIG5vdGUnLFxuICBmcjogJ0Zlcm1lciBsYSBub3RlJyxcbiAgaXQ6ICdDaGl1ZGVyZSBsYSBub3RhJyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuR29CYWNrOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBkZTogJ1p1csO8Y2snLFxuICBlbjogJ0dvIGJhY2snLFxuICBmcjogJ1JldG91cm5lcicsXG4gIGl0OiAnVmFpIGluZGlldHJvJyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuVG9kYXk6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnSGV1dGUnLFxuICBlbjogJ1RvZGF5JyxcbiAgZnI6ICdBdWpvdXJk4oCZaHVpJyxcbiAgaXQ6ICdPZ2dpJyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuTmV4dE1vbnRoOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBkZTogJ1p1bSBuw6RjaHN0ZW4gTW9uYXQgd2VjaHNlbG4nLFxuICBlbjogJ0NoYW5nZSB0byB0aGUgbmV4dCBtb250aCcsXG4gIGZyOiAnUGFzc2VyIGF1IG1vaXMgc3VpdmFudCcsXG4gIGl0OiAnUGFzc2FyZSBhbCBtZXNlIHN1Y2Nlc3Npdm8nLFxufTtcblxuZXhwb3J0IGNvbnN0IGkxOG5QcmV2aW91c01vbnRoOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBkZTogJ1p1bSBsZXR6dGVuIE1vbmF0IHdlY2hzZWxuJyxcbiAgZW46ICdDaGFuZ2UgdG8gdGhlIHByZXZpb3VzIG1vbnRoJyxcbiAgZnI6ICdQYXNzZXIgYXUgbW9pcyBwcsOpY8OpZGVudCcsXG4gIGl0OiAnUGFzc2FyZSBhbCBtZXNlIHByZWNlZGVudGUnLFxufTtcblxuZXhwb3J0IGNvbnN0IGkxOG5OZXh0RGF5OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBkZTogJ07DpGNoc3RlciBUYWcnLFxuICBlbjogJ05leHQgZGF5JyxcbiAgZnI6ICdMZSBwcm9jaGFpbiBqb3VyJyxcbiAgaXQ6ICdHaW9ybm8gc3VjY2Vzc2l2bycsXG59O1xuXG5leHBvcnQgY29uc3QgaTE4blByZXZpb3VzRGF5OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBkZTogJ1ZvcmhlcmlnZXIgVGFnJyxcbiAgZW46ICdQcmV2aW91cyBkYXknLFxuICBmcjogJ0pvdXIgcHLDqWPDqWRlbnQnLFxuICBpdDogJ0dpb3JubyBwcmVjZWRlbnRlJyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuWWVhck1vbnRoU2VsZWN0aW9uOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBkZTogJ0phaHIgdW5kIE1vbmF0IGF1c3fDpGhsZW4nLFxuICBlbjogJ0Nob29zZSB5ZWFyIGFuZCBtb250aCcsXG4gIGZyOiBcIkNob2lzaXNzZXogbCdhbm7DqWUgZXQgbGUgbW9pc1wiLFxuICBpdDogJ1NlbGV6aW9uYSBhbm5vIGUgbWVzZScsXG59O1xuXG5leHBvcnQgY29uc3QgaTE4bkNhbGVuZGFyRGF0ZVNlbGVjdGlvbjogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZGU6ICdEYXR1bSBhdXN3w6RobGVuJyxcbiAgZW46ICdDaG9vc2UgZGF0ZScsXG4gIGZyOiAnQ2hvaXNpciB1bmUgZGF0ZScsXG4gIGl0OiAnU2VsZXppb25hIHVuYSBkYXRhJyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuTmV4dFllYXJSYW5nZSA9ICh5ZWFyUmFuZ2U6IG51bWJlcik6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPT4gKHtcbiAgZGU6IGBXZWNoc2VsIHp1IGRlbiBuw6RjaHN0ZW4gJHt5ZWFyUmFuZ2V9IEphaHJlbmAsXG4gIGVuOiBgQ2hhbmdlIHRvIHRoZSBuZXh0ICR7eWVhclJhbmdlfSB5ZWFyc2AsXG4gIGZyOiBgUGFzc2VyIGF1eCAke3llYXJSYW5nZX0gcHJvY2hhaW5lcyBhbm7DqWVzYCxcbiAgaXQ6IGBQYXNzYXJlIGFpIHN1Y2Nlc3NpdmkgJHt5ZWFyUmFuZ2V9IGFubmlgLFxufSk7XG5cbmV4cG9ydCBjb25zdCBpMThuUHJldmlvdXNZZWFyUmFuZ2UgPSAoeWVhclJhbmdlOiBudW1iZXIpOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0+ICh7XG4gIGRlOiBgV2VjaHNlbCB6dSBkZW4gdm9yaGVyaWdlbiAke3llYXJSYW5nZX0gSmFocmVuYCxcbiAgZW46IGBDaGFuZ2UgdG8gdGhlIHByZXZpb3VzICR7eWVhclJhbmdlfSB5ZWFyc2AsXG4gIGZyOiBgUGFzc2FnZSBhdXggJHt5ZWFyUmFuZ2V9IHByw6ljw6lkZW50ZXMgYW5uw6llc2AsXG4gIGl0OiBgUGFzc2FyZSBhaSBwcmVjZWRlbnRpICR7eWVhclJhbmdlfSBhbm5pYCxcbn0pO1xuXG5leHBvcnQgY29uc3QgaTE4bk5leHRZZWFyOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBkZTogJ1p1bSBuw6RjaHN0ZW4gSmFociB3ZWNoc2VsbicsXG4gIGVuOiAnQ2hhbmdlIHRvIHRoZSBuZXh0IHllYXInLFxuICBmcjogXCJQYXNzZXIgw6AgbCdhbm7DqWUgc3VpdmFudGVcIixcbiAgaXQ6IFwiUGFzc2FyZSBhbGwnYW5ubyBzdWNjZXNzaXZvXCIsXG59O1xuXG5leHBvcnQgY29uc3QgaTE4blByZXZpb3VzWWVhcjogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZGU6ICdadW0gbGV0enRlbiBKYWhyIHdlY2hzZWxuJyxcbiAgZW46ICdDaGFuZ2UgdG8gdGhlIHByZXZpb3VzIHllYXInLFxuICBmcjogXCJQYXNzZXIgw6AgbCdhbm7DqWUgcHLDqWPDqWRlbnRcIixcbiAgaXQ6IFwiUGFzc2FyZSBhbGwnYW5ubyBwcmVjZWRlbnRlXCIsXG59O1xuXG5leHBvcnQgY29uc3QgaTE4blNlbGVjdE5leHREYXkgPSAoY3VycmVudERhdGU6IHN0cmluZyk6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPT4gKHtcbiAgZGU6IGBadW0gbsOkY2hzdGVuIFRhZyB3ZWNoc2VsbiwgZGVyemVpdCBhdXNnZXfDpGhsdCAke2N1cnJlbnREYXRlfS5gLFxuICBlbjogYENoYW5nZSB0byB0aGUgbmV4dCBkYXksIGN1cnJlbnRseSBzZWxlY3RlZCAke2N1cnJlbnREYXRlfS5gLFxuICBmcjogYFBhc3NlciBhdSBqb3VyIHN1aXZhbnQsIGFjdHVlbGxlbWVudCBzw6lsZWN0aW9ubsOpICR7Y3VycmVudERhdGV9LmAsXG4gIGl0OiBgUGFzc2FyZSBhbCBnaW9ybm8gc3VjY2Vzc2l2bywgYXR0dWFsbWVudGUgc2VsZXppb25hdG8gJHtjdXJyZW50RGF0ZX0uYCxcbn0pO1xuXG5leHBvcnQgY29uc3QgaTE4blNlbGVjdFByZXZpb3VzRGF5ID0gKGN1cnJlbnREYXRlOiBzdHJpbmcpOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0+ICh7XG4gIGRlOiBgWnVtIHZvcmhlcmlnZW4gVGFnIHdlY2hzZWxuLCBkZXJ6ZWl0IGF1c2dld8OkaGx0ICR7Y3VycmVudERhdGV9LmAsXG4gIGVuOiBgQ2hhbmdlIHRvIHRoZSBwcmV2aW91cyBkYXksIGN1cnJlbnRseSBzZWxlY3RlZCAke2N1cnJlbnREYXRlfS5gLFxuICBmcjogYFBhc3NlciBhdSBqb3VyIHByw6ljw6lkZW50LCBhY3R1ZWxsZW1lbnQgc8OpbGVjdGlvbm7DqSAke2N1cnJlbnREYXRlfS5gLFxuICBpdDogYFBhc3NhcmUgYWwgZ2lvcm5vIHByZWNlZGVudGUsIGF0dHVhbG1lbnRlIHNlbGV6aW9uYXRvICR7Y3VycmVudERhdGV9LmAsXG59KTtcblxuZXhwb3J0IGNvbnN0IGkxOG5TaG93Q2FsZW5kYXI6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnS2FsZW5kZXIgYW56ZWlnZW4nLFxuICBlbjogJ1Nob3cgY2FsZW5kYXInLFxuICBmcjogJ0FmZmljaGVyIGxlIGNhbGVuZHJpZXInLFxuICBpdDogJ1Zpc3VhbGl6emFyZSBjYWxlbmRhcmlvJyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuRGF0ZVBpY2tlclBsYWNlaG9sZGVyOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBkZTogJ1RULk1NLkpKSkonLFxuICBlbjogJ0RELk1NLllZWVknLFxuICBmcjogJ0pKLk1NLkFBQUEnLFxuICBpdDogJ0dHLk1NLkFBQUEnLFxufTtcblxuZXhwb3J0IGNvbnN0IGkxOG5EYXRlQ2hhbmdlZFRvOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBkZTogJ0RhdHVtIGdlw6RuZGVydCBhdWYnLFxuICBlbjogJ0RhdGUgY2hhbmdlZCB0bycsXG4gIGZyOiAnRGF0ZSBtb2RpZmnDqWUgYXUnLFxuICBpdDogJ0RhdGEgbW9kaWZpY2F0YSBpbicsXG59O1xuXG5leHBvcnQgY29uc3QgaTE4bkNvbm5lY3Rpb25Gcm9tOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBkZTogJ1ZlcmJpbmR1bmcgdm9uJyxcbiAgZW46ICdDb25uZWN0aW9uIGZyb20nLFxuICBmcjogJ0xpYWlzb24gZGUnLFxuICBpdDogJ0NvbGxlZ2FtZW50byBkYScsXG59O1xuXG5leHBvcnQgY29uc3QgaTE4bkNvbm5lY3Rpb25UbzogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZGU6ICduYWNoJyxcbiAgZW46ICd0bycsXG4gIGZyOiAnw6AnLFxuICBpdDogJ2EnLFxufTtcblxuZXhwb3J0IGNvbnN0IGkxOG5Db25uZWN0aW9uUm91bmR0cmlwID0gKHJldHVybkNpdHk6IHN0cmluZyk6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPT4gKHtcbiAgZGU6IGB1bmQgenVyw7xjayBuYWNoICR7cmV0dXJuQ2l0eX0uYCxcbiAgZW46IGBhbmQgYmFjayB0byAke3JldHVybkNpdHl9LmAsXG4gIGZyOiBgZXQgcmV0b3VyIMOgICR7cmV0dXJuQ2l0eX0uYCxcbiAgaXQ6IGBlIHJpdG9ybm8gYSAke3JldHVybkNpdHl9LmAsXG59KTtcblxuZXhwb3J0IGNvbnN0IGkxOG5FeHBhbmRlZDogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZGU6ICdlcndlaXRlcnQnLFxuICBlbjogJ2V4cGFuZGVkJyxcbiAgZnI6ICdlc3QgdGlyw6knLFxuICBpdDogJ2VzYXBuc28nLFxufTtcblxuZXhwb3J0IGNvbnN0IGkxOG5Db2xsYXBzZWQ6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAncmVkdXppZXJ0JyxcbiAgZW46ICdjb2xsYXBzZWQnLFxuICBmcjogJ2NvbmRlbnPDqScsXG4gIGl0OiAnY29tcHJlc3NvJyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuTWFwQ29udGFpbmVyQnV0dG9uTGFiZWw6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnS2FydGUgemVpZ2VuJyxcbiAgZW46ICdTaG93IG1hcCcsXG4gIGZyOiAnQWZmaWNoZXIgbGEgY2FydGUnLFxuICBpdDogJ01vc3RyYSBsYSBtYXBwYScsXG59O1xuXG5leHBvcnQgY29uc3QgaTE4bkJyZWFkY3J1bWJFbGxpcHNpc0J1dHRvbkxhYmVsOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBkZTogJ01laHIgQnJlYWRjcnVtYnMgYW56ZWlnZW4nLFxuICBlbjogJ1Nob3cgbW9yZSBicmVhZGNydW1icycsXG4gIGZyOiAnQWZmaWNoZXIgcGx1cyBicmVhZGNydW1icycsXG4gIGl0OiAnTW9zdHJhIHBpw7kgYnJlYWRjcnVtYnMnLFxufTtcblxuZXhwb3J0IGNvbnN0IGkxOG5UaW1lSW5wdXRDaGFuZ2U6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnWmVpdCBnZcOkbmRlcnQgenUnLFxuICBlbjogJ1RpbWUgY2hhbmdlZCB0bycsXG4gIGZyOiAnSGV1cmUgbW9kaWZpw6llOicsXG4gIGl0OiAnT3JhcmlvIG1vZGlmaWNhdGEgYWxsZScsXG59O1xuXG5leHBvcnQgY29uc3QgaTE4bkNsZWFySW5wdXQ6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnRmVsZGluaGFsdCBsw7ZzY2hlbicsXG4gIGVuOiAnQ2xlYXIgaW5wdXQgdmFsdWUnLFxuICBmcjogJ0VmZmFjZXIgbGEgdmFsZXVyIGTigJllbnRyw6llJyxcbiAgaXQ6ICdDYW5jZWxsYSBpbCB2YWxvcmUgZGVsbOKAmWlucHV0Jyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuRmxpcENhcmQ6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnS2xpY2tlbiBTaWUgYXVmIGRpZXNlIEthcnRlIGbDvHIgRGV0YWlscycsXG4gIGVuOiAnQ2xpY2sgb24gdGhpcyBjYXJkIGZvciBkZXRhaWxzJyxcbiAgZnI6ICdDbGlxdWV6IHN1ciBjZXR0ZSBjYXJ0ZSBwb3VyIHBsdXMgZGUgZMOpdGFpbHMnLFxuICBpdDogJ0NsaWNjYSBzdSBxdWVzdGEgc2NoZWRhIHBlciBpIGRldHRhZ2xpJyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuUmV2ZXJzZUNhcmQ6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnS2xpY2tlbiBTaWUgYXVmIGRpZXNlIEthcnRlLCB1bSB6dXLDvGNrIHp1ciBadXNhbW1lbmZhc3N1bmcgenUgZ2VsYW5nZW4nLFxuICBlbjogJ0NsaWNrIG9uIHRoaXMgY2FyZCB0byBnbyBiYWNrIHRvIHRoZSBzdW1tYXJ5JyxcbiAgZnI6ICdDbGlxdWV6IHN1ciBjZXR0ZSBjYXJ0ZSBwb3VyIHJldmVuaXIgYXUgcsOpc3Vtw6knLFxuICBpdDogJ0NsaWNjYSBzdSBxdWVzdGEgc2NoZWRhIHBlciB0b3JuYXJlIGFsIHNvbW1hcmlvJyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuRmlsZVNlbGVjdG9yQnV0dG9uTGFiZWw6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnRGF0ZWkgYXVzd8OkaGxlbicsXG4gIGVuOiAnQ2hvb3NlIGEgZmlsZScsXG4gIGZyOiAnQ2hvaXNpc3NleiB1biBmaWNoaWVyJyxcbiAgaXQ6ICdTY2VnbGkgdW4gZmlsZScsXG59O1xuXG5leHBvcnQgY29uc3QgaTE4bkZpbGVTZWxlY3RvclN1YnRpdGxlTGFiZWw6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnWmllaGUgZGVpbmUgRGF0ZWllbiBoaWVyIGhpbiAoRHJhZyAmIERyb3ApJyxcbiAgZW46ICdEcmFnICYgRHJvcCB5b3VyIGZpbGVzIGhlcmUnLFxuICBmcjogJ0ZhaXRlcyBnbGlzc2VyIGV0IGTDqXBvc2V6IHZvcyBmaWNoaWVycyBpY2knLFxuICBpdDogJ1RyYXNjaW5hIGUgcmlsYXNjaWEgaSB0dW9pIGZpbGUgcXVpJyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuRmlsZVNlbGVjdG9yRGVsZXRlRmlsZTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZGU6ICdEYXRlaSBlbnRmZXJuZW4nLFxuICBlbjogJ1JlbW92ZSBmaWxlJyxcbiAgZnI6ICdFZmZhY2VyIGxlIGZpY2hpZXInLFxuICBpdDogJ1JpbXVvdmkgaWwgZmlsZScsXG59O1xuXG5leHBvcnQgY29uc3QgaTE4bkZpbGVTZWxlY3RvckN1cnJlbnRseVNlbGVjdGVkID0gKGZpbGVzTmFtZTogc3RyaW5nW10pOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0+IHtcbiAgaWYgKGZpbGVzTmFtZSAmJiBmaWxlc05hbWUubGVuZ3RoID4gMCkge1xuICAgIHJldHVybiB7XG4gICAgICBkZTogYEFrdHVlbGwgYXVzZ2V3w6RobHRlIERhdGVpOiAke2ZpbGVzTmFtZS5qb2luKCcsICcpfS5gLFxuICAgICAgZW46IGBDdXJyZW50bHkgc2VsZWN0ZWQgZmlsZXM6ICR7ZmlsZXNOYW1lLmpvaW4oJywgJyl9LmAsXG4gICAgICBmcjogYEZpY2hpZXIgYWN0dWVsbGVtZW50IHPDqWxlY3Rpb25uw6k6ICR7ZmlsZXNOYW1lLmpvaW4oJywgJyl9LmAsXG4gICAgICBpdDogYEZpbGUgYXR0dWFsbWVudGUgc2VsZXppb25hdG86ICR7ZmlsZXNOYW1lLmpvaW4oJywgJyl9LmAsXG4gICAgfTtcbiAgfVxuICByZXR1cm4ge1xuICAgIGRlOiAnS2VpbmUgRGF0ZWkgYXVzZ2V3w6RobHQuJyxcbiAgICBlbjogJ05vIGZpbGVzIHNlbGVjdGVkLicsXG4gICAgZnI6ICdOZXNzdW4gZmljaGllciBzw6lsZWN0aW9ubsOpLicsXG4gICAgaXQ6ICdOZXNzdW4gZmlsZSBzZWxlemlvbmF0by4nLFxuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IGkxOG5OZXh0UGFnZTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZGU6ICdOw6RjaHN0ZSBTZWl0ZScsXG4gIGVuOiAnTmV4dCBwYWdlJyxcbiAgZnI6ICdQcm9jaGFpbmUgcGFnZScsXG4gIGl0OiAnUGFnaW5hIHN1Y2Nlc3NpdmEnLFxufTtcblxuZXhwb3J0IGNvbnN0IGkxOG5QcmV2aW91c1BhZ2U6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnVm9yaGVyaWdlIFNlaXRlJyxcbiAgZW46ICdQcmV2aW91cyBwYWdlJyxcbiAgZnI6ICdQYWdlIHByw6ljw6lkZW50ZScsXG4gIGl0OiAnUGFnaW5hIHByZWNlZGVudGUnLFxufTtcblxuZXhwb3J0IGNvbnN0IGkxOG5QYWdlOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBkZTogJ1NlaXRlJyxcbiAgZW46ICdQYWdlJyxcbiAgZnI6ICdQYWdlJyxcbiAgaXQ6ICdQYWdpbmEnLFxufTtcblxuZXhwb3J0IGNvbnN0IGkxOG5JdGVtc1BlclBhZ2U6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnRWludHLDpGdlIHBybyBTZWl0ZScsXG4gIGVuOiAnSXRlbXMgcGVyIHBhZ2UnLFxuICBmcjogJ0VudHLDqWVzIHBhciBwYWdlJyxcbiAgaXQ6ICdFbGVtZW50aSBwZXIgcGFnaW5hJyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuU2VsZWN0ZWRQYWdlID0gKHBhZ2VOdW1iZXI6IG51bWJlcik6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPT4gKHtcbiAgZGU6IGBTZWl0ZSAke3BhZ2VOdW1iZXJ9IGF1c2dld8OkaGx0LmAsXG4gIGVuOiBgUGFnZSAke3BhZ2VOdW1iZXJ9IHNlbGVjdGVkLmAsXG4gIGZyOiBgUGFnZSAke3BhZ2VOdW1iZXJ9IHPDqWxlY3Rpb25uw6llLmAsXG4gIGl0OiBgUGFnaW5hICR7cGFnZU51bWJlcn0gc2VsZXppb25hdGEuYCxcbn0pO1xuXG5leHBvcnQgY29uc3QgaTE4bkNoZWNrYm94UmVxdWlyZWQ6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnTXVzcyBnZXNldHp0IHNlaW4uJyxcbiAgZW46ICdNdXN0IGJlIGNoZWNrZWQuJyxcbiAgZnI6ICdEb2l0IMOqdHJlIGTDqWZpbmkuJyxcbiAgaXQ6ICdEZXZlIGVzc2VyZSBpbXBvc3RhdG8uJyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuU2VsZWN0aW9uUmVxdWlyZWQ6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnQXVzd2FobCBlcmZvcmRlcmxpY2guJyxcbiAgZW46ICdTZWxlY3Rpb24gcmVxdWlyZWQuJyxcbiAgZnI6ICdTw6lsZWN0aW9uIHJlcXVpc2UuJyxcbiAgaXQ6ICdTZWxlemlvbmUgbmVjZXNzYXJpYS4nLFxufTtcblxuZXhwb3J0IGNvbnN0IGkxOG5JbnB1dFJlcXVpcmVkOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBkZTogJ0VpbmdhYmUgZXJmb3JkZXJsaWNoLicsXG4gIGVuOiAnSW5wdXQgcmVxdWlyZWQuJyxcbiAgZnI6ICdFbnRyw6llIG9ibGlnYXRvaXJlLicsXG4gIGl0OiAnSW5zZXJpbWVudG8gbmVjZXNzYXJpby4nLFxufTtcblxuZXhwb3J0IGNvbnN0IGkxOG5EYXRlSW52YWxpZDogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZGU6ICdCaXR0ZSBnw7xsdGlnZXMgRGF0dW0gZWluZ2ViZW4uJyxcbiAgZW46ICdQbGVhc2UgcHJvdmlkZSBhIHZhbGlkIGRhdGUuJyxcbiAgZnI6ICdWZXVpbGxleiBzYWlzaXIgdW5lIGRhdGUgdmFsaWRlLicsXG4gIGl0OiAnSW5zZXJpcmUgdW5hIGRhdGEgdmFsaWRhLicsXG59O1xuXG5leHBvcnQgY29uc3QgaTE4bkRhdGVNaW4gPSAobWluOiBzdHJpbmcpOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0+ICh7XG4gIGRlOiBgRGF0dW0gZGFyZiBuaWNodCB2b3IgJHttaW59IHNlaW4uYCxcbiAgZW46IGBEYXRlIG11c3Qgbm90IGJlIGJlZm9yZSAke21pbn0uYCxcbiAgZnI6IGBMYSBkYXRlIG5lIGRvaXQgcGFzIMOqdHJlIGFudMOpcmlldXJlIGF1ICR7bWlufS5gLFxuICBpdDogYExhIGRhdGEgbm9uIGRldmUgZXNzZXJlIGFudGVyaW9yZSBhbCAke21pbn0uYCxcbn0pO1xuXG5leHBvcnQgY29uc3QgaTE4bkRhdGVNYXggPSAobWF4OiBzdHJpbmcpOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0+ICh7XG4gIGRlOiBgRGF0dW0gZGFyZiBuaWNodCBuYWNoICR7bWF4fSBzZWluLmAsXG4gIGVuOiBgRGF0ZSBtdXN0IG5vdCBiZSBhZnRlciAke21heH0uYCxcbiAgZnI6IGBMYSBkYXRlIG5lIGRvaXQgcGFzIMOqdHJlIHBvc3TDqXJpZXVyZSBhdSAke21heH0uYCxcbiAgaXQ6IGBMYSBkYXRhIG5vbiBkZXZlIGVzc2VyZSBzdWNjZXNzaXZhIGFsICR7bWF4fS5gLFxufSk7XG5cbmV4cG9ydCBjb25zdCBpMThuQ2hpcERlbGV0ZTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZGU6ICdEcsO8Y2tlbiBTaWUgZGllIEVudGZlcm5lbi1UYXN0ZSB1bSBkZW4gQ2hpcCB6dSBsw7ZzY2hlbicsXG4gIGVuOiAnUHJlc3MgdGhlIERlbGV0ZSBidXR0b24gdG8gcmVtb3ZlIHRoZSBjaGlwJyxcbiAgZnI6ICdBcHB1eWV6IHN1ciBsYSB0b3VjaGUgRGVsIHBvdXIgc3VwcHJpbWVyIGNldHRlIHB1Y2UnLFxuICBpdDogJ1ByZW1pIGlsIHRhc3RvIENhbmMgcGVyIHJpbXVvdmVyZSBxdWVzdGEgY2hpcCcsXG59O1xuXG5leHBvcnQgY29uc3QgaTE4bkNoaXBHcm91cElucHV0RGVzY3JpcHRpb246IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnQXVzZ2V3w6RobHRlIEVsZW1lbnRlOicsXG4gIGVuOiAnU2VsZWN0ZWQgZWxlbWVudHM6JyxcbiAgZnI6ICfDiWzDqW1lbnRzIHPDqWxlY3Rpb25uw6lzOicsXG4gIGl0OiAnRWxlbWVudGkgc2VsZXppb25hdGk6Jyxcbn07XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRU8sTUFBTSxnQkFBd0M7QUFBQSxFQUNuRCxJQUFJO0FBQUEsRUFDSixJQUFJO0FBQUEsRUFDSixJQUFJO0FBQUEsRUFDSixJQUFJOztBQUdDLE1BQU0sY0FBc0M7QUFBQSxFQUNqRCxJQUFJO0FBQUEsRUFDSixJQUFJO0FBQUEsRUFDSixJQUFJO0FBQUEsRUFDSixJQUFJOztBQUdDLE1BQU0sYUFBcUM7QUFBQSxFQUNoRCxJQUFJO0FBQUEsRUFDSixJQUFJO0FBQUEsRUFDSixJQUFJO0FBQUEsRUFDSixJQUFJOztBQUdDLE1BQU0sa0JBQTBDO0FBQUEsRUFDckQsSUFBSTtBQUFBLEVBQ0osSUFBSTtBQUFBLEVBQ0osSUFBSTtBQUFBLEVBQ0osSUFBSTs7QUFHQyxNQUFNLFlBQW9EO0FBQUEsRUFDL0QsT0FBTztBQUFBLElBQ0wsSUFBSTtBQUFBLElBQ0osSUFBSTtBQUFBLElBQ0osSUFBSTtBQUFBLElB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
793
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaTE4bi5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NvcmUvaTE4bi9pMThuLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgU2JiTGFuZ3VhZ2UsIFNiYk9jY3VwYW5jeSB9IGZyb20gJy4uL2ludGVyZmFjZXMuanMnO1xuXG5leHBvcnQgY29uc3QgaTE4bkRpcmVjdGlvbjogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZGU6ICdSaWNodHVuZycsXG4gIGVuOiAnRGlyZWN0aW9uJyxcbiAgZnI6ICdEaXJlY3Rpb24nLFxuICBpdDogJ0RpcmV6aW9uZScsXG59O1xuXG5leHBvcnQgY29uc3QgaTE4bkFycml2YWw6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnQW5rdW5mdCcsXG4gIGVuOiAnQXJyaXZhbCcsXG4gIGZyOiAnQXJyaXbDqWUnLFxuICBpdDogJ0Fycml2bycsXG59O1xuXG5leHBvcnQgY29uc3QgaTE4blNlY3RvcjogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZGU6ICdTZWt0b3InLFxuICBlbjogJ1NlY3RvcicsXG4gIGZyOiAnU2VjdGV1cicsXG4gIGl0OiAnU2V0dG9yZScsXG59O1xuXG5leHBvcnQgY29uc3QgaTE4blNlY3RvclNob3J0OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBkZTogJ1NrdC4nLFxuICBlbjogJ1NlYy4nLFxuICBmcjogJ1NlY3QuJyxcbiAgaXQ6ICdTZXQuJyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuQ2xhc3M6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHN0cmluZz4+ID0ge1xuICBmaXJzdDoge1xuICAgIGRlOiAnRXJzdGUgS2xhc3NlJyxcbiAgICBlbjogJ0ZpcnN0IENsYXNzJyxcbiAgICBmcjogJ1ByZW1pw6hyZSBjbGFzc2UnLFxuICAgIGl0OiAnUHJpbWEgY2xhc3NlJyxcbiAgfSxcbiAgc2Vjb25kOiB7XG4gICAgZGU6ICdad2VpdGUgS2xhc3NlJyxcbiAgICBlbjogJ1NlY29uZCBDbGFzcycsXG4gICAgZnI6ICdEZXV4acOobWUgY2xhc3NlJyxcbiAgICBpdDogJ1NlY29uZGEgY2xhc3NlJyxcbiAgfSxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuVHJhaW46IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnWnVnJyxcbiAgZW46ICdUcmFpbicsXG4gIGZyOiAnVHJhaW4nLFxuICBpdDogJ1RyZW5vJyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuVHJhaW5zOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBkZTogJ1rDvGdlJyxcbiAgZW46ICdUcmFpbnMnLFxuICBmcjogJ1RyYWlucycsXG4gIGl0OiAnVHJlbmknLFxufTtcblxuZXhwb3J0IGNvbnN0IGkxOG5XYWdvbnNMYWJlbDogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZGU6ICdXYWdlbiBkZXMgWnVnZXMnLFxuICBlbjogJ0NvYWNoZXMgb2YgdGhlIHRyYWluJyxcbiAgZnI6ICdXYWdvbnMgZGUgdHJhaW4nLFxuICBpdDogJ0NhcnJvenplIGRlbCB0cmVubycsXG59O1xuXG5leHBvcnQgY29uc3QgaTE4bldhZ29uTGFiZWw6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnV2FnZW4nLFxuICBlbjogJ1RyYWluIGNvYWNoJyxcbiAgZnI6ICdXYWdvbiBkZSB0cmFpbicsXG4gIGl0OiAnQ2Fycm96emEgZGVsIHRyZW5vJyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuV2Fnb25MYWJlbE51bWJlcjogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZGU6IGBOdW1tZXJgLFxuICBlbjogYE51bWJlcmAsXG4gIGZyOiBgTnVtw6lyb2AsXG4gIGl0OiBgTnVtZXJvYCxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuQ2xvc2VkQ29tcGFydG1lbnRMYWJlbDogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZGU6ICdHZXNjaGxvc3NlbmVyIFp1Z3dhZ2dvbicsXG4gIGVuOiAnQ2xvc2VkIHRyYWluIGNvYWNoJyxcbiAgZnI6ICdXYWdvbiBkZSB0cmFpbiBmZXJtw6knLFxuICBpdDogJ0NhcnJvenphIGRlbCB0cmVubyBjaGl1c28nLFxufTtcblxuZXhwb3J0IGNvbnN0IGkxOG5Mb2NvbW90aXZlTGFiZWw6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnTG9rb21vdGl2ZScsXG4gIGVuOiAnTG9jb21vdGl2ZScsXG4gIGZyOiAnTG9jb21vdGl2ZScsXG4gIGl0OiAnTG9jb21vdGl2YScsXG59O1xuXG5leHBvcnQgY29uc3QgaTE4blNsZWVwaW5nV2Fnb25MYWJlbDogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZGU6ICdTY2hsYWZ3YWdlbicsXG4gIGVuOiAnU2xlZXBpbmcgY2FyJyxcbiAgZnI6ICdWb2l0dXJlLWxpdHMnLFxuICBpdDogJ0NhcnJvenphIGxldHRpJyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuQ291Y2hldHRlV2Fnb25MYWJlbDogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZGU6ICdMaWVnZXdhZ2VuJyxcbiAgZW46ICdDb3VjaGV0dGUgY2FyJyxcbiAgZnI6ICdWb2l0dXJlLWNvdWNoZXR0ZXMnLFxuICBpdDogJ0NhcnJvenphIGN1Y2NldHRlJyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuUmVzdGF1cmFudFdhZ29uTGFiZWw6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnU3BlaXNld2FnZW4nLFxuICBlbjogJ0RpbmluZyBjYXInLFxuICBmcjogJ1ZvaXR1cmUtcmVzdGF1cmFudCcsXG4gIGl0OiAnQ2Fycm96emEgcmlzdG9yYW50ZScsXG59O1xuXG5leHBvcnQgY29uc3QgaTE4bkJsb2NrZWRQYXNzYWdlOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PiA9IHtcbiAgcHJldmlvdXM6IHtcbiAgICBkZTogJ0tlaW4gRHVyY2hnYW5nIHp1bSB2b3JoZXJpZ2VuIFdhZ2VuJyxcbiAgICBlbjogJ05vIHBhc3NhZ2UgdG8gdGhlIHByZXZpb3VzIHRyYWluIGNvYWNoJyxcbiAgICBmcjogJ1BhcyBkZSBwYXNzYWdlIGF1IHdhZ29uIGR1IHRyYWluIHByw6ljw6lkZW50JyxcbiAgICBpdDogJ05lc3N1biBwYXNzYWdnaW8gYWxsYSBjYXJyb3p6YSBkZWwgdHJlbm8gcHJlY2VkZW50ZScsXG4gIH0sXG4gIG5leHQ6IHtcbiAgICBkZTogJ0tlaW4gRHVyY2hnYW5nIHp1bSBuw6RjaHN0ZW4gV2FnZW4nLFxuICAgIGVuOiAnTm8gcGFzc2FnZSB0byB0aGUgbmV4dCB0cmFpbiBjb2FjaCcsXG4gICAgZnI6ICdQYXMgZGUgcGFzc2FnZSBhdSB3YWdvbiBkZSB0cmFpbiBzdWl2YW50JyxcbiAgICBpdDogJ05lc3N1biBwYXNzYWdnaW8gYWxsYSBjYXJyb3p6YSBkZWwgdHJlbm8gc3VjY2Vzc2l2bycsXG4gIH0sXG4gIGJvdGg6IHtcbiAgICBkZTogJ0tlaW4gRHVyY2hnYW5nIHp1bSBuw6RjaHN0ZW4gdW5kIHZvcmhlcmlnZW4gV2FnZW4nLFxuICAgIGVuOiAnTm8gcGFzc2FnZSB0byB0aGUgbmV4dCBhbmQgcHJldmlvdXMgdHJhaW4gY29hY2gnLFxuICAgIGZyOiAnUGFzIGRlIHBhc3NhZ2UgYXUgd2Fnb24gZGUgdHJhaW4gc3VpdmFudCBldCBwcsOpY8OpZGVudCcsXG4gICAgaXQ6ICdOZXNzdW4gcGFzc2FnZ2lvIGFsbGEgY2Fycm96emEgZGVsIHRyZW5vIHN1Y2Nlc3Npdm8gZSBwcmVjZWRlbnRlJyxcbiAgfSxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuQWRkaXRpb25hbFdhZ29uSW5mb3JtYXRpb25IZWFkaW5nOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBkZTogJ1p1c8OkdHpsaWNoZSBXYWdlbmluZm9ybWF0aW9uJyxcbiAgZW46ICdBZGRpdGlvbmFsIHdhZ29uIGluZm9ybWF0aW9uJyxcbiAgZnI6ICdJbmZvcm1hdGlvbnMgc3VwcGzDqW1lbnRhaXJlcyBzdXIgbGVzIHdhZ29ucycsXG4gIGl0OiAnSW5mb3JtYXppb25pIGFnZ2l1bnRpdmUgc3VsbGEgY2Fycm96emEgZGVsIHRyZW5vJyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuRGVwYXJ0dXJlOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBkZTogJ0FiZmFocnQnLFxuICBlbjogJ0RlcGFydHVyZScsXG4gIGZyOiAnRMOpcGFydCcsXG4gIGl0OiAnUGFydGVuemEnLFxufTtcblxuZXhwb3J0IGNvbnN0IGkxOG5EdXJhdGlvbk1pbnV0ZTogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgc3RyaW5nPj4+ID0ge1xuICBzaW5nbGU6IHtcbiAgICBsb25nOiB7XG4gICAgICBkZTogJ01pbnV0ZScsXG4gICAgICBlbjogJ01pbnV0ZScsXG4gICAgICBmcjogJ01pbnV0ZScsXG4gICAgICBpdDogJ01pbnV0bycsXG4gICAgfSxcbiAgICBzaG9ydDoge1xuICAgICAgZGU6ICdtJyxcbiAgICAgIGVuOiAnbScsXG4gICAgICBmcjogJ20nLFxuICAgICAgaXQ6ICdtJyxcbiAgICB9LFxuICB9LFxuICBtdWx0aXBsZToge1xuICAgIGxvbmc6IHtcbiAgICAgIGRlOiAnTWludXRlbicsXG4gICAgICBlbjogJ01pbnV0ZXMnLFxuICAgICAgZnI6ICdNaW51dGVzJyxcbiAgICAgIGl0OiAnTWludXRpJyxcbiAgICB9LFxuICAgIHNob3J0OiB7XG4gICAgICBkZTogJ01pbicsXG4gICAgICBlbjogJ21pbicsXG4gICAgICBmcjogJ21pbi4nLFxuICAgICAgaXQ6ICdtaW5zJyxcbiAgICB9LFxuICB9LFxufTtcblxuZXhwb3J0IGNvbnN0IGkxOG5EdXJhdGlvbkhvdXI6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHN0cmluZz4+PiA9IHtcbiAgc2luZ2xlOiB7XG4gICAgbG9uZzoge1xuICAgICAgZGU6ICdTdHVuZGUnLFxuICAgICAgZW46ICdIb3VyJyxcbiAgICAgIGZyOiAnSGV1cmUnLFxuICAgICAgaXQ6ICdPcmEnLFxuICAgIH0sXG4gICAgc2hvcnQ6IHtcbiAgICAgIGRlOiAnU3RkLicsXG4gICAgICBlbjogJ2gnLFxuICAgICAgZnI6ICdvcmUnLFxuICAgICAgaXQ6ICdocnMnLFxuICAgIH0sXG4gIH0sXG4gIG11bHRpcGxlOiB7XG4gICAgbG9uZzoge1xuICAgICAgZGU6ICdTdHVuZGVuJyxcbiAgICAgIGVuOiAnSG91cnMnLFxuICAgICAgZnI6ICdIZXVyZXMnLFxuICAgICAgaXQ6ICdPcmUnLFxuICAgIH0sXG4gICAgc2hvcnQ6IHtcbiAgICAgIGRlOiAnU3RkLicsXG4gICAgICBlbjogJ2gnLFxuICAgICAgZnI6ICdvcmUnLFxuICAgICAgaXQ6ICdocnMnLFxuICAgIH0sXG4gIH0sXG59O1xuXG5leHBvcnQgY29uc3QgaTE4bkR1cmF0aW9uRGF5OiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+Pj4gPSB7XG4gIHNpbmdsZToge1xuICAgIGxvbmc6IHtcbiAgICAgIGRlOiAnVGFnJyxcbiAgICAgIGVuOiAnRGF5JyxcbiAgICAgIGZyOiAnSm91cicsXG4gICAgICBpdDogJ0dpb3JubycsXG4gICAgfSxcbiAgfSxcbiAgbXVsdGlwbGU6IHtcbiAgICBsb25nOiB7XG4gICAgICBkZTogJ1RhZ2UnLFxuICAgICAgZW46ICdEYXlzJyxcbiAgICAgIGZyOiAnSm91cnMnLFxuICAgICAgaXQ6ICdHaW9ybmknLFxuICAgIH0sXG4gIH0sXG59O1xuXG5leHBvcnQgY29uc3QgaTE4blRyaXBRdWF5Q2hhbmdlOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBkZTogJ0dsZWlzw6RuZGVydW5nIGltIFZlcmxhdWYgZGllc2VyIFZlcmJpbmR1bmcnLFxuICBlbjogJ1RyYWNrIGNoYW5nZSBpbiB0aGUgY291cnNlIG9mIHRoaXMgY29ubmVjdGlvbicsXG4gIGZyOiAnQ2hhbmdlbWVudCBkZSB2b2llIHN1ciBsZSBwYXJjb3VycyBkZSBjZXR0ZSBjb25uZXhpb24nLFxuICBpdDogJ0NhbWJpYW1lbnRvIGRpIGJpbmFyaW8gbmVsIGNvcnNvIGRpIHF1ZXN0YSBjb25uZXNzaW9uZScsXG59O1xuXG5leHBvcnQgY29uc3QgaTE4blRyaXBEdXJhdGlvbjogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZGU6ICdSZWlzZWRhdWVyJyxcbiAgZW46ICdUcmF2ZWwgdGltZScsXG4gIGZyOiAnRHVyw6llIGR1IHZveWFnZScsXG4gIGl0OiAnRHVyYXRhIGRlbCB2aWFnZ2lvJyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuVHJhdmVsaGludHM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnUmVpc2VoaW53ZWlzZScsXG4gIGVuOiAnVHJhdmVsaGludHMnLFxuICBmcjogJ0luZGljYXRpb25zIHN1ciBsZSB2b3lhZ2UnLFxuICBpdDogJ0lkaWljYXppb25pIGRpIHZpYWdnaW8nLFxufTtcblxuZXhwb3J0IGNvbnN0IGkxOG5SZWFsVGltZUluZm86IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnRWNodHplaXRpbmZvcm1hdGlvbmVuJyxcbiAgZW46ICdSZWFsIHRpbWUgaW5mb3JtYXRpb24nLFxuICBmcjogJ0luZm9ybWF0aW9ucyBlbiB0ZW1wcyByw6llbCcsXG4gIGl0OiAnSW5mb3JtYXppb25pIGluIHRlbXBvIHJlYWxlJyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuVHJhbnNmZXJQcm9jZWR1cmU6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnbWFsIHVtc3RlaWdlbicsXG4gIGVuOiAnY2hhbmdlJyxcbiAgZnI6ICdjaGFuZ2VtZW50IGRlIHRyYWluJyxcbiAgaXQ6ICdjYW1iaW8nLFxufTtcblxuZXhwb3J0IGNvbnN0IGkxOG5UcmFuc2ZlclByb2NlZHVyZXM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnbWFsIHVtc3RlaWdlbicsXG4gIGVuOiAnY2hhbmdlcycsXG4gIGZyOiAnY2hhbmdlbWVudHMgZGUgdHJhaW4nLFxuICBpdDogJ2NhbWJpJyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuTmV3OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBkZTogJ25ldScsXG4gIGVuOiAnbmV3JyxcbiAgZnI6ICdub3V2ZWF1JyxcbiAgaXQ6ICdudW92bycsXG59O1xuXG5leHBvcnQgY29uc3QgaTE4bkZyb21QbGF0Zm9ybTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZGU6ICdBdWYnLFxuICBlbjogJ29uJyxcbiAgZnI6ICdzdXInLFxuICBpdDogJ3N1Jyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuU3VwZXJzYXZlcjogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZGU6ICdTcGFyYmlsbGV0dGUnLFxuICBlbjogJ1N1cGVyc2F2ZXIgdGlja2V0cycsXG4gIGZyOiAnQmlsbGV0cyBkw6lncmlmZsOpcycsXG4gIGl0OiAnQmlnbGlldHRpIHJpc3Bhcm1pbycsXG59O1xuXG5leHBvcnQgY29uc3QgaTE4bk9jY3VwYW5jeTogUmVjb3JkPFNiYk9jY3VwYW5jeSwgUmVjb3JkPFNiYkxhbmd1YWdlLCBzdHJpbmc+PiA9IHtcbiAgbm9uZToge1xuICAgIGRlOiAnS2VpbmUgQmVsZWd1bmdzcHJvZ25vc2UgdmVyZsO8Z2JhcicsXG4gICAgZW46ICdObyBvY2N1cGFuY3kgZm9yZWNhc3QgYXZhaWxhYmxlJyxcbiAgICBmcjogXCJBdWN1bmUgcHLDqXZpc2lvbiBkJ29jY3VwYXRpb24gZGlzcG9uaWJsZVwiLFxuICAgIGl0OiAnTmVzc3VuYSBwcmV2aXNpb25lIGRpIG9jY3VwYXppb25lIGRpc3BvbmliaWxlJyxcbiAgfSxcbiAgbG93OiB7XG4gICAgZGU6ICdUaWVmZSBiaXMgbWl0dGxlcmUgQmVsZWd1bmcgZXJ3YXJ0ZXQnLFxuICAgIGVuOiAnTG93IHRvIG1lZGl1bSBvY2N1cGFuY3kgZXhwZWN0ZWQnLFxuICAgIGZyOiBcIk9uIHMnYXR0ZW5kIMOgIHVuIHRhdXggZCdvY2N1cGF0aW9uIGZhaWJsZSDDoCBtb3llblwiLFxuICAgIGl0OiBcIlNpIHByZXZlZGUgdW4nb2NjdXBhemlvbmUgbWVkaW8tYmFzc2FcIixcbiAgfSxcbiAgbWVkaXVtOiB7XG4gICAgZGU6ICdIb2hlIEJlbGVndW5nIGVyd2FydGV0JyxcbiAgICBlbjogJ0hpZ2ggb2NjdXBhbmN5IGV4cGVjdGVkJyxcbiAgICBmcjogXCJVbiB0YXV4IGQnb2NjdXBhdGlvbiDDqWxldsOpIGVzdCBhdHRlbmR1XCIsXG4gICAgaXQ6IFwiQ2kgc2kgYXNwZXR0YSB1bidhbHRhIG9jY3VwYXppb25lXCIsXG4gIH0sXG4gIGhpZ2g6IHtcbiAgICBkZTogJ1NlaHIgaG9oZSBCZWxlZ3VuZyBlcndhcnRldCcsXG4gICAgZW46ICdWZXJ5IGhpZ2ggb2NjdXBhbmN5IGV4cGVjdGVkJyxcbiAgICBmcjogXCJVbiB0YXV4IGQnb2NjdXBhdGlvbiB0csOocyDDqWxldsOpIGVzdCBhdHRlbmR1XCIsXG4gICAgaXQ6IFwiQ2kgc2kgYXNwZXR0YSB1bidvY2N1cGF6aW9uZSBtb2x0byBhbHRhXCIsXG4gIH0sXG59O1xuXG5leHBvcnQgY29uc3QgaTE4bk1lYW5zT2ZUcmFuc3BvcnQ6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHN0cmluZz4+ID0ge1xuICBmdW5pY3VsYXI6IHtcbiAgICBkZTogJ1NlaWxiYWhuL1phaG5yYWRiYWhuJyxcbiAgICBlbjogJ0Z1bmljdWxhci9Db2cgcmFpbHdheScsXG4gICAgZnI6ICdGdW5pY3VsYWlyZS9DaGVtaW4gZGUgZmVyIMOgIGNyw6ltYWlsbMOocmUnLFxuICAgIGl0OiAnRnVuaXZpYS9GZXJyb3ZpYSBhIGNyZW1hZ2xpZXJhJyxcbiAgfSxcbiAgZWNfaWQ6IHtcbiAgICBkZTogJ0VDL0lDJyxcbiAgICBlbjogJ0VDL0lDJyxcbiAgICBmcjogJ0VDL0lDJyxcbiAgICBpdDogJ0VDL0lDJyxcbiAgfSxcbiAgYnVzOiB7XG4gICAgZGU6ICdCdXMnLFxuICAgIGVuOiAnQnVzJyxcbiAgICBmcjogJ0J1cycsXG4gICAgaXQ6ICdCdXMnLFxuICB9LFxuICByZToge1xuICAgIGRlOiAnUkUnLFxuICAgIGVuOiAnUkUnLFxuICAgIGZyOiAnUkUnLFxuICAgIGl0OiAnUkUnLFxuICB9LFxuICBhcnpfZXh0OiB7XG4gICAgZGU6ICdBUlovRVhUJyxcbiAgICBlbjogJ0FSWi9FWFQnLFxuICAgIGZyOiAnQVJaL0VYVCcsXG4gICAgaXQ6ICdBUlovRVhUJyxcbiAgfSxcbiAgaWNlX3Rndl9yang6IHtcbiAgICBkZTogJ0lDRS9UR1YvUkpYJyxcbiAgICBlbjogJ0lDRS9UR1YvUkpYJyxcbiAgICBmcjogJ0lDRS9UR1YvUkpYJyxcbiAgICBpdDogJ0lDRS9UR1YvUkpYJyxcbiAgfSxcbiAgaXJfcGU6IHtcbiAgICBkZTogJ0lSL1BFJyxcbiAgICBlbjogJ0lSL1BFJyxcbiAgICBmcjogJ0lSL1BFJyxcbiAgICBpdDogJ0lSL1BFJyxcbiAgfSxcbiAgc19zbl9yOiB7XG4gICAgZGU6ICdTL1NOL1InLFxuICAgIGVuOiAnUy9TTi9SJyxcbiAgICBmcjogJ1MvU04vUicsXG4gICAgaXQ6ICdTL1NOL1InLFxuICB9LFxuICB0cmFtd2F5OiB7XG4gICAgZGU6ICdUcmFtL01ldHJvJyxcbiAgICBlbjogJ1RyYW13YXkvVW5kZXJncm91bmQnLFxuICAgIGZyOiAnVHJhbS9Nw6l0cm8nLFxuICAgIGl0OiAnVHJhbS9NZXRybycsXG4gIH0sXG4gIHNoaXA6IHtcbiAgICBkZTogJ1NjaGlmZicsXG4gICAgZW46ICdTaGlwJyxcbiAgICBmcjogJ0JhdGVhdScsXG4gICAgaXQ6ICdCYXR0ZWxsbycsXG4gIH0sXG4gIHRyYWluOiB7XG4gICAgZGU6ICdadWcnLFxuICAgIGVuOiAnVHJhaW4nLFxuICAgIGZyOiAnVHJhaW4nLFxuICAgIGl0OiAnVHJlbm8nLFxuICB9LFxufTtcblxuZXhwb3J0IGNvbnN0IGkxOG5PcHRpb25hbDogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZGU6ICcob3B0aW9uYWwpJyxcbiAgZW46ICcob3B0aW9uYWwpJyxcbiAgZnI6ICcoZmFjdWx0YXRpZiknLFxuICBpdDogJyhmYWNvbHRhdGl2byknLFxufTtcblxuZXhwb3J0IGNvbnN0IGkxOG5UYXJnZXRPcGVuc0luTmV3V2luZG93OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBkZTogJ0xpbmt6aWVsIMO2ZmZuZXQgaW4gbmV1ZW0gRmVuc3Rlci4nLFxuICBlbjogJ0xpbmsgdGFyZ2V0IG9wZW5zIGluIGEgbmV3IHdpbmRvdy4nLFxuICBmcjogXCJMZSBsaWVuIHMnb3V2cmUgZGFucyB1bmUgbm91dmVsbGUgZmVuw6p0cmUuXCIsXG4gIGl0OiBcIkwnb2JpZXR0aXZvIGRlbCBsaW5rIHNpIGFwcmUgaW4gdW5hIG51b3ZhIGZpbmVzdHJhLlwiLFxufTtcblxuZXhwb3J0IGNvbnN0IGkxOG5XYWxraW5nRGlzdGFuY2VBcnJpdmFsOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBkZTogJ01pbnV0ZW4gRnVzc3dlZyBuYWNoIEFua3VuZnQ6JyxcbiAgZW46ICdtaW51dGVzIG9mIHdhbGtpbmcgdGltZSBhZnRlciBhcnJpdmFsOicsXG4gIGZyOiAnbWludXRlcyBkZSB0cmFqZXQgw6AgcGllZCBhcHLDqHMgbOKAmWFycml2w6llOicsXG4gIGl0OiAnbWludXRpIGEgcGllZGkgYWxs4oCZYXJyaXZvOicsXG59O1xuXG5leHBvcnQgY29uc3QgaTE4bldhbGtpbmdEaXN0YW5jZURlcGFydHVyZTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZGU6ICdNaW51dGVuIEZ1c3N3ZWcgdm9yIEFiZmFocnQ6JyxcbiAgZW46ICdtaW51dGVzIG9mIHdhbGtpbmcgdGltZSBiZWZvcmUgZGVwYXJ0dXJlOicsXG4gIGZyOiAnbWludXRlcyB0cmFqZXQgw6AgcGllZCBhdmFudCBsZSBkw6lwYXJ0OicsXG4gIGl0OiAnbWludXRpIGEgcGllZGkgcHJpbWEgZGVsbGEgcGFydGVuemE6Jyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuQ2xvc2VBbGVydDogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZGU6ICdNZWxkdW5nIHNjaGxpZXNzZW4nLFxuICBlbjogJ0Nsb3NlIG1lc3NhZ2UnLFxuICBmcjogJ0Zlcm1lciBtZXNzYWdlJyxcbiAgaXQ6ICdDaGl1ZGVyZSBpbCBtZXNzYWdnaW8nLFxufTtcblxuZXhwb3J0IGNvbnN0IGkxOG5DbG9zZU5vdGlmaWNhdGlvbjogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZGU6ICdOYWNocmljaHQgc2NobGllc3NlbicsXG4gIGVuOiAnQ2xvc2UgbWVzc2FnZScsXG4gIGZyOiAnRmVybWVyIG1lc3NhZ2UnLFxuICBpdDogJ0NoaXVkZXJlIGlsIG1lc3NhZ2dpbycsXG59O1xuXG5leHBvcnQgY29uc3QgaTE4bkRpYWxvZzogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZGU6ICdEaWFsb2cnLFxuICBlbjogJ0RpYWxvZycsXG4gIGZyOiAnRGlhbG9ndWUnLFxuICBpdDogJ0RpYWxvZ28nLFxufTtcblxuZXhwb3J0IGNvbnN0IGkxOG5DbG9zZURpYWxvZzogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZGU6ICfDnGJlcmdlbGFnZXJ0ZXMgRmVuc3RlciBzY2hsaWVzc2VuJyxcbiAgZW46ICdDbG9zZSBzZWNvbmRhcnkgd2luZG93JyxcbiAgZnI6ICdGZXJtZXIgbGEgZmVuw6p0cmUgc3VwZXJwb3PDqWUnLFxuICBpdDogJ0NoaXVkZXJlIGxhIGZpbmVzdHJhIHNvdnJhcHBvc3RhJyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuQ2xvc2VOYXZpZ2F0aW9uOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBkZTogJ05hdmlnYXRpb24gc2NobGllc3NlbicsXG4gIGVuOiAnQ2xvc2UgbmF2aWdhdGlvbicsXG4gIGZyOiAnRmVybWVyIGxhIG5hdmlnYXRpb24nLFxuICBpdDogJ0NoaXVkZXJlIGxhIG5hdmlnYXppb25lJyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuQ2xvc2VTaWRlYmFyOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBkZTogJ1NlaXRlbmxlaXN0ZSBzY2hsaWVzc2VuJyxcbiAgZW46ICdDbG9zZSBzaWRlYmFyJyxcbiAgZnI6ICdGZXJtZXIgbGEgYmFycmUgbGF0w6lyYWxlJyxcbiAgaXQ6ICdDaGl1ZGVyZSBsYSBiYXJyYSBsYXRlcmFsZScsXG59O1xuXG5leHBvcnQgY29uc3QgaTE4bkNsb3NlUG9wb3ZlcjogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZGU6ICdIaW53ZWlzIHNjaGxpZXNzZW4nLFxuICBlbjogJ0Nsb3NlIG5vdGUnLFxuICBmcjogJ0Zlcm1lciBsYSBub3RlJyxcbiAgaXQ6ICdDaGl1ZGVyZSBsYSBub3RhJyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuR29CYWNrOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBkZTogJ1p1csO8Y2snLFxuICBlbjogJ0dvIGJhY2snLFxuICBmcjogJ1JldG91cm5lcicsXG4gIGl0OiAnVmFpIGluZGlldHJvJyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuVG9kYXk6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnSGV1dGUnLFxuICBlbjogJ1RvZGF5JyxcbiAgZnI6ICdBdWpvdXJk4oCZaHVpJyxcbiAgaXQ6ICdPZ2dpJyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuTmV4dE1vbnRoOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBkZTogJ1p1bSBuw6RjaHN0ZW4gTW9uYXQgd2VjaHNlbG4nLFxuICBlbjogJ0NoYW5nZSB0byB0aGUgbmV4dCBtb250aCcsXG4gIGZyOiAnUGFzc2VyIGF1IG1vaXMgc3VpdmFudCcsXG4gIGl0OiAnUGFzc2FyZSBhbCBtZXNlIHN1Y2Nlc3Npdm8nLFxufTtcblxuZXhwb3J0IGNvbnN0IGkxOG5QcmV2aW91c01vbnRoOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBkZTogJ1p1bSBsZXR6dGVuIE1vbmF0IHdlY2hzZWxuJyxcbiAgZW46ICdDaGFuZ2UgdG8gdGhlIHByZXZpb3VzIG1vbnRoJyxcbiAgZnI6ICdQYXNzZXIgYXUgbW9pcyBwcsOpY8OpZGVudCcsXG4gIGl0OiAnUGFzc2FyZSBhbCBtZXNlIHByZWNlZGVudGUnLFxufTtcblxuZXhwb3J0IGNvbnN0IGkxOG5OZXh0RGF5OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBkZTogJ07DpGNoc3RlciBUYWcnLFxuICBlbjogJ05leHQgZGF5JyxcbiAgZnI6ICdMZSBwcm9jaGFpbiBqb3VyJyxcbiAgaXQ6ICdHaW9ybm8gc3VjY2Vzc2l2bycsXG59O1xuXG5leHBvcnQgY29uc3QgaTE4blByZXZpb3VzRGF5OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBkZTogJ1ZvcmhlcmlnZXIgVGFnJyxcbiAgZW46ICdQcmV2aW91cyBkYXknLFxuICBmcjogJ0pvdXIgcHLDqWPDqWRlbnQnLFxuICBpdDogJ0dpb3JubyBwcmVjZWRlbnRlJyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuWWVhck1vbnRoU2VsZWN0aW9uOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBkZTogJ0phaHIgdW5kIE1vbmF0IGF1c3fDpGhsZW4nLFxuICBlbjogJ0Nob29zZSB5ZWFyIGFuZCBtb250aCcsXG4gIGZyOiBcIkNob2lzaXNzZXogbCdhbm7DqWUgZXQgbGUgbW9pc1wiLFxuICBpdDogJ1NlbGV6aW9uYSBhbm5vIGUgbWVzZScsXG59O1xuXG5leHBvcnQgY29uc3QgaTE4bkNhbGVuZGFyRGF0ZVNlbGVjdGlvbjogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZGU6ICdEYXR1bSBhdXN3w6RobGVuJyxcbiAgZW46ICdDaG9vc2UgZGF0ZScsXG4gIGZyOiAnQ2hvaXNpciB1bmUgZGF0ZScsXG4gIGl0OiAnU2VsZXppb25hIHVuYSBkYXRhJyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuTmV4dFllYXJSYW5nZSA9ICh5ZWFyUmFuZ2U6IG51bWJlcik6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPT4gKHtcbiAgZGU6IGBXZWNoc2VsIHp1IGRlbiBuw6RjaHN0ZW4gJHt5ZWFyUmFuZ2V9IEphaHJlbmAsXG4gIGVuOiBgQ2hhbmdlIHRvIHRoZSBuZXh0ICR7eWVhclJhbmdlfSB5ZWFyc2AsXG4gIGZyOiBgUGFzc2VyIGF1eCAke3llYXJSYW5nZX0gcHJvY2hhaW5lcyBhbm7DqWVzYCxcbiAgaXQ6IGBQYXNzYXJlIGFpIHN1Y2Nlc3NpdmkgJHt5ZWFyUmFuZ2V9IGFubmlgLFxufSk7XG5cbmV4cG9ydCBjb25zdCBpMThuUHJldmlvdXNZZWFyUmFuZ2UgPSAoeWVhclJhbmdlOiBudW1iZXIpOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0+ICh7XG4gIGRlOiBgV2VjaHNlbCB6dSBkZW4gdm9yaGVyaWdlbiAke3llYXJSYW5nZX0gSmFocmVuYCxcbiAgZW46IGBDaGFuZ2UgdG8gdGhlIHByZXZpb3VzICR7eWVhclJhbmdlfSB5ZWFyc2AsXG4gIGZyOiBgUGFzc2FnZSBhdXggJHt5ZWFyUmFuZ2V9IHByw6ljw6lkZW50ZXMgYW5uw6llc2AsXG4gIGl0OiBgUGFzc2FyZSBhaSBwcmVjZWRlbnRpICR7eWVhclJhbmdlfSBhbm5pYCxcbn0pO1xuXG5leHBvcnQgY29uc3QgaTE4bk5leHRZZWFyOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBkZTogJ1p1bSBuw6RjaHN0ZW4gSmFociB3ZWNoc2VsbicsXG4gIGVuOiAnQ2hhbmdlIHRvIHRoZSBuZXh0IHllYXInLFxuICBmcjogXCJQYXNzZXIgw6AgbCdhbm7DqWUgc3VpdmFudGVcIixcbiAgaXQ6IFwiUGFzc2FyZSBhbGwnYW5ubyBzdWNjZXNzaXZvXCIsXG59O1xuXG5leHBvcnQgY29uc3QgaTE4blByZXZpb3VzWWVhcjogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZGU6ICdadW0gbGV0enRlbiBKYWhyIHdlY2hzZWxuJyxcbiAgZW46ICdDaGFuZ2UgdG8gdGhlIHByZXZpb3VzIHllYXInLFxuICBmcjogXCJQYXNzZXIgw6AgbCdhbm7DqWUgcHLDqWPDqWRlbnRcIixcbiAgaXQ6IFwiUGFzc2FyZSBhbGwnYW5ubyBwcmVjZWRlbnRlXCIsXG59O1xuXG5leHBvcnQgY29uc3QgaTE4blNlbGVjdE5leHREYXkgPSAoY3VycmVudERhdGU6IHN0cmluZyk6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPT4gKHtcbiAgZGU6IGBadW0gbsOkY2hzdGVuIFRhZyB3ZWNoc2VsbiwgZGVyemVpdCBhdXNnZXfDpGhsdCAke2N1cnJlbnREYXRlfS5gLFxuICBlbjogYENoYW5nZSB0byB0aGUgbmV4dCBkYXksIGN1cnJlbnRseSBzZWxlY3RlZCAke2N1cnJlbnREYXRlfS5gLFxuICBmcjogYFBhc3NlciBhdSBqb3VyIHN1aXZhbnQsIGFjdHVlbGxlbWVudCBzw6lsZWN0aW9ubsOpICR7Y3VycmVudERhdGV9LmAsXG4gIGl0OiBgUGFzc2FyZSBhbCBnaW9ybm8gc3VjY2Vzc2l2bywgYXR0dWFsbWVudGUgc2VsZXppb25hdG8gJHtjdXJyZW50RGF0ZX0uYCxcbn0pO1xuXG5leHBvcnQgY29uc3QgaTE4blNlbGVjdFByZXZpb3VzRGF5ID0gKGN1cnJlbnREYXRlOiBzdHJpbmcpOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0+ICh7XG4gIGRlOiBgWnVtIHZvcmhlcmlnZW4gVGFnIHdlY2hzZWxuLCBkZXJ6ZWl0IGF1c2dld8OkaGx0ICR7Y3VycmVudERhdGV9LmAsXG4gIGVuOiBgQ2hhbmdlIHRvIHRoZSBwcmV2aW91cyBkYXksIGN1cnJlbnRseSBzZWxlY3RlZCAke2N1cnJlbnREYXRlfS5gLFxuICBmcjogYFBhc3NlciBhdSBqb3VyIHByw6ljw6lkZW50LCBhY3R1ZWxsZW1lbnQgc8OpbGVjdGlvbm7DqSAke2N1cnJlbnREYXRlfS5gLFxuICBpdDogYFBhc3NhcmUgYWwgZ2lvcm5vIHByZWNlZGVudGUsIGF0dHVhbG1lbnRlIHNlbGV6aW9uYXRvICR7Y3VycmVudERhdGV9LmAsXG59KTtcblxuZXhwb3J0IGNvbnN0IGkxOG5TaG93Q2FsZW5kYXI6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnS2FsZW5kZXIgYW56ZWlnZW4nLFxuICBlbjogJ1Nob3cgY2FsZW5kYXInLFxuICBmcjogJ0FmZmljaGVyIGxlIGNhbGVuZHJpZXInLFxuICBpdDogJ1Zpc3VhbGl6emFyZSBjYWxlbmRhcmlvJyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuRGF0ZVBpY2tlclBsYWNlaG9sZGVyOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBkZTogJ1RULk1NLkpKSkonLFxuICBlbjogJ0RELk1NLllZWVknLFxuICBmcjogJ0pKLk1NLkFBQUEnLFxuICBpdDogJ0dHLk1NLkFBQUEnLFxufTtcblxuZXhwb3J0IGNvbnN0IGkxOG5EYXRlQ2hhbmdlZFRvOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBkZTogJ0RhdHVtIGdlw6RuZGVydCBhdWYnLFxuICBlbjogJ0RhdGUgY2hhbmdlZCB0bycsXG4gIGZyOiAnRGF0ZSBtb2RpZmnDqWUgYXUnLFxuICBpdDogJ0RhdGEgbW9kaWZpY2F0YSBpbicsXG59O1xuXG5leHBvcnQgY29uc3QgaTE4bkNvbm5lY3Rpb25Gcm9tOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBkZTogJ1ZlcmJpbmR1bmcgdm9uJyxcbiAgZW46ICdDb25uZWN0aW9uIGZyb20nLFxuICBmcjogJ0xpYWlzb24gZGUnLFxuICBpdDogJ0NvbGxlZ2FtZW50byBkYScsXG59O1xuXG5leHBvcnQgY29uc3QgaTE4bkNvbm5lY3Rpb25UbzogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZGU6ICduYWNoJyxcbiAgZW46ICd0bycsXG4gIGZyOiAnw6AnLFxuICBpdDogJ2EnLFxufTtcblxuZXhwb3J0IGNvbnN0IGkxOG5Db25uZWN0aW9uUm91bmR0cmlwID0gKHJldHVybkNpdHk6IHN0cmluZyk6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPT4gKHtcbiAgZGU6IGB1bmQgenVyw7xjayBuYWNoICR7cmV0dXJuQ2l0eX0uYCxcbiAgZW46IGBhbmQgYmFjayB0byAke3JldHVybkNpdHl9LmAsXG4gIGZyOiBgZXQgcmV0b3VyIMOgICR7cmV0dXJuQ2l0eX0uYCxcbiAgaXQ6IGBlIHJpdG9ybm8gYSAke3JldHVybkNpdHl9LmAsXG59KTtcblxuZXhwb3J0IGNvbnN0IGkxOG5FeHBhbmRlZDogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZGU6ICdlcndlaXRlcnQnLFxuICBlbjogJ2V4cGFuZGVkJyxcbiAgZnI6ICdlc3QgdGlyw6knLFxuICBpdDogJ2VzYXBuc28nLFxufTtcblxuZXhwb3J0IGNvbnN0IGkxOG5Db2xsYXBzZWQ6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAncmVkdXppZXJ0JyxcbiAgZW46ICdjb2xsYXBzZWQnLFxuICBmcjogJ2NvbmRlbnPDqScsXG4gIGl0OiAnY29tcHJlc3NvJyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuTWFwQ29udGFpbmVyQnV0dG9uTGFiZWw6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnS2FydGUgemVpZ2VuJyxcbiAgZW46ICdTaG93IG1hcCcsXG4gIGZyOiAnQWZmaWNoZXIgbGEgY2FydGUnLFxuICBpdDogJ01vc3RyYSBsYSBtYXBwYScsXG59O1xuXG5leHBvcnQgY29uc3QgaTE4bkJyZWFkY3J1bWJFbGxpcHNpc0J1dHRvbkxhYmVsOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBkZTogJ01laHIgQnJlYWRjcnVtYnMgYW56ZWlnZW4nLFxuICBlbjogJ1Nob3cgbW9yZSBicmVhZGNydW1icycsXG4gIGZyOiAnQWZmaWNoZXIgcGx1cyBicmVhZGNydW1icycsXG4gIGl0OiAnTW9zdHJhIHBpw7kgYnJlYWRjcnVtYnMnLFxufTtcblxuZXhwb3J0IGNvbnN0IGkxOG5UaW1lSW5wdXRDaGFuZ2U6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnWmVpdCBnZcOkbmRlcnQgenUnLFxuICBlbjogJ1RpbWUgY2hhbmdlZCB0bycsXG4gIGZyOiAnSGV1cmUgbW9kaWZpw6llOicsXG4gIGl0OiAnT3JhcmlvIG1vZGlmaWNhdGEgYWxsZScsXG59O1xuXG5leHBvcnQgY29uc3QgaTE4bkNsZWFySW5wdXQ6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnRmVsZGluaGFsdCBsw7ZzY2hlbicsXG4gIGVuOiAnQ2xlYXIgaW5wdXQgdmFsdWUnLFxuICBmcjogJ0VmZmFjZXIgbGEgdmFsZXVyIGTigJllbnRyw6llJyxcbiAgaXQ6ICdDYW5jZWxsYSBpbCB2YWxvcmUgZGVsbOKAmWlucHV0Jyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuRmxpcENhcmQ6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnS2xpY2tlbiBTaWUgYXVmIGRpZXNlIEthcnRlIGbDvHIgRGV0YWlscycsXG4gIGVuOiAnQ2xpY2sgb24gdGhpcyBjYXJkIGZvciBkZXRhaWxzJyxcbiAgZnI6ICdDbGlxdWV6IHN1ciBjZXR0ZSBjYXJ0ZSBwb3VyIHBsdXMgZGUgZMOpdGFpbHMnLFxuICBpdDogJ0NsaWNjYSBzdSBxdWVzdGEgc2NoZWRhIHBlciBpIGRldHRhZ2xpJyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuUmV2ZXJzZUNhcmQ6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnS2xpY2tlbiBTaWUgYXVmIGRpZXNlIEthcnRlLCB1bSB6dXLDvGNrIHp1ciBadXNhbW1lbmZhc3N1bmcgenUgZ2VsYW5nZW4nLFxuICBlbjogJ0NsaWNrIG9uIHRoaXMgY2FyZCB0byBnbyBiYWNrIHRvIHRoZSBzdW1tYXJ5JyxcbiAgZnI6ICdDbGlxdWV6IHN1ciBjZXR0ZSBjYXJ0ZSBwb3VyIHJldmVuaXIgYXUgcsOpc3Vtw6knLFxuICBpdDogJ0NsaWNjYSBzdSBxdWVzdGEgc2NoZWRhIHBlciB0b3JuYXJlIGFsIHNvbW1hcmlvJyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuRmlsZVNlbGVjdG9yQnV0dG9uTGFiZWw6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnRGF0ZWkgYXVzd8OkaGxlbicsXG4gIGVuOiAnQ2hvb3NlIGEgZmlsZScsXG4gIGZyOiAnQ2hvaXNpc3NleiB1biBmaWNoaWVyJyxcbiAgaXQ6ICdTY2VnbGkgdW4gZmlsZScsXG59O1xuXG5leHBvcnQgY29uc3QgaTE4bkZpbGVTZWxlY3RvclN1YnRpdGxlTGFiZWw6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnWmllaGUgZGVpbmUgRGF0ZWllbiBoaWVyIGhpbiAoRHJhZyAmIERyb3ApJyxcbiAgZW46ICdEcmFnICYgRHJvcCB5b3VyIGZpbGVzIGhlcmUnLFxuICBmcjogJ0ZhaXRlcyBnbGlzc2VyIGV0IGTDqXBvc2V6IHZvcyBmaWNoaWVycyBpY2knLFxuICBpdDogJ1RyYXNjaW5hIGUgcmlsYXNjaWEgaSB0dW9pIGZpbGUgcXVpJyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuRmlsZVNlbGVjdG9yRGVsZXRlRmlsZTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZGU6ICdEYXRlaSBlbnRmZXJuZW4nLFxuICBlbjogJ1JlbW92ZSBmaWxlJyxcbiAgZnI6ICdFZmZhY2VyIGxlIGZpY2hpZXInLFxuICBpdDogJ1JpbXVvdmkgaWwgZmlsZScsXG59O1xuXG5leHBvcnQgY29uc3QgaTE4bkZpbGVTZWxlY3RvckN1cnJlbnRseVNlbGVjdGVkID0gKGZpbGVzTmFtZTogc3RyaW5nW10pOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0+IHtcbiAgaWYgKGZpbGVzTmFtZSAmJiBmaWxlc05hbWUubGVuZ3RoID4gMCkge1xuICAgIHJldHVybiB7XG4gICAgICBkZTogYEFrdHVlbGwgYXVzZ2V3w6RobHRlIERhdGVpOiAke2ZpbGVzTmFtZS5qb2luKCcsICcpfS5gLFxuICAgICAgZW46IGBDdXJyZW50bHkgc2VsZWN0ZWQgZmlsZXM6ICR7ZmlsZXNOYW1lLmpvaW4oJywgJyl9LmAsXG4gICAgICBmcjogYEZpY2hpZXIgYWN0dWVsbGVtZW50IHPDqWxlY3Rpb25uw6k6ICR7ZmlsZXNOYW1lLmpvaW4oJywgJyl9LmAsXG4gICAgICBpdDogYEZpbGUgYXR0dWFsbWVudGUgc2VsZXppb25hdG86ICR7ZmlsZXNOYW1lLmpvaW4oJywgJyl9LmAsXG4gICAgfTtcbiAgfVxuICByZXR1cm4ge1xuICAgIGRlOiAnS2VpbmUgRGF0ZWkgYXVzZ2V3w6RobHQuJyxcbiAgICBlbjogJ05vIGZpbGVzIHNlbGVjdGVkLicsXG4gICAgZnI6ICdOZXNzdW4gZmljaGllciBzw6lsZWN0aW9ubsOpLicsXG4gICAgaXQ6ICdOZXNzdW4gZmlsZSBzZWxlemlvbmF0by4nLFxuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IGkxOG5OZXh0UGFnZTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZGU6ICdOw6RjaHN0ZSBTZWl0ZScsXG4gIGVuOiAnTmV4dCBwYWdlJyxcbiAgZnI6ICdQcm9jaGFpbmUgcGFnZScsXG4gIGl0OiAnUGFnaW5hIHN1Y2Nlc3NpdmEnLFxufTtcblxuZXhwb3J0IGNvbnN0IGkxOG5QcmV2aW91c1BhZ2U6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnVm9yaGVyaWdlIFNlaXRlJyxcbiAgZW46ICdQcmV2aW91cyBwYWdlJyxcbiAgZnI6ICdQYWdlIHByw6ljw6lkZW50ZScsXG4gIGl0OiAnUGFnaW5hIHByZWNlZGVudGUnLFxufTtcblxuZXhwb3J0IGNvbnN0IGkxOG5QYWdlOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBkZTogJ1NlaXRlJyxcbiAgZW46ICdQYWdlJyxcbiAgZnI6ICdQYWdlJyxcbiAgaXQ6ICdQYWdpbmEnLFxufTtcblxuZXhwb3J0IGNvbnN0IGkxOG5JdGVtc1BlclBhZ2U6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnRWludHLDpGdlIHBybyBTZWl0ZScsXG4gIGVuOiAnSXRlbXMgcGVyIHBhZ2UnLFxuICBmcjogJ0VudHLDqWVzIHBhciBwYWdlJyxcbiAgaXQ6ICdFbGVtZW50aSBwZXIgcGFnaW5hJyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuU2VsZWN0ZWRQYWdlID0gKHBhZ2VOdW1iZXI6IG51bWJlcik6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPT4gKHtcbiAgZGU6IGBTZWl0ZSAke3BhZ2VOdW1iZXJ9IGF1c2dld8OkaGx0LmAsXG4gIGVuOiBgUGFnZSAke3BhZ2VOdW1iZXJ9IHNlbGVjdGVkLmAsXG4gIGZyOiBgUGFnZSAke3BhZ2VOdW1iZXJ9IHPDqWxlY3Rpb25uw6llLmAsXG4gIGl0OiBgUGFnaW5hICR7cGFnZU51bWJlcn0gc2VsZXppb25hdGEuYCxcbn0pO1xuXG5leHBvcnQgY29uc3QgaTE4bkNoZWNrYm94UmVxdWlyZWQ6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnTXVzcyBnZXNldHp0IHNlaW4uJyxcbiAgZW46ICdNdXN0IGJlIGNoZWNrZWQuJyxcbiAgZnI6ICdEb2l0IMOqdHJlIGTDqWZpbmkuJyxcbiAgaXQ6ICdEZXZlIGVzc2VyZSBpbXBvc3RhdG8uJyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuU2VsZWN0aW9uUmVxdWlyZWQ6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnQXVzd2FobCBlcmZvcmRlcmxpY2guJyxcbiAgZW46ICdTZWxlY3Rpb24gcmVxdWlyZWQuJyxcbiAgZnI6ICdTw6lsZWN0aW9uIHJlcXVpc2UuJyxcbiAgaXQ6ICdTZWxlemlvbmUgbmVjZXNzYXJpYS4nLFxufTtcblxuZXhwb3J0IGNvbnN0IGkxOG5JbnB1dFJlcXVpcmVkOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBkZTogJ0VpbmdhYmUgZXJmb3JkZXJsaWNoLicsXG4gIGVuOiAnSW5wdXQgcmVxdWlyZWQuJyxcbiAgZnI6ICdFbnRyw6llIG9ibGlnYXRvaXJlLicsXG4gIGl0OiAnSW5zZXJpbWVudG8gbmVjZXNzYXJpby4nLFxufTtcblxuZXhwb3J0IGNvbnN0IGkxOG5EYXRlSW52YWxpZDogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZGU6ICdCaXR0ZSBnw7xsdGlnZXMgRGF0dW0gZWluZ2ViZW4uJyxcbiAgZW46ICdQbGVhc2UgcHJvdmlkZSBhIHZhbGlkIGRhdGUuJyxcbiAgZnI6ICdWZXVpbGxleiBzYWlzaXIgdW5lIGRhdGUgdmFsaWRlLicsXG4gIGl0OiAnSW5zZXJpcmUgdW5hIGRhdGEgdmFsaWRhLicsXG59O1xuXG5leHBvcnQgY29uc3QgaTE4bkRhdGVNaW4gPSAobWluOiBzdHJpbmcpOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0+ICh7XG4gIGRlOiBgRGF0dW0gZGFyZiBuaWNodCB2b3IgJHttaW59IHNlaW4uYCxcbiAgZW46IGBEYXRlIG11c3Qgbm90IGJlIGJlZm9yZSAke21pbn0uYCxcbiAgZnI6IGBMYSBkYXRlIG5lIGRvaXQgcGFzIMOqdHJlIGFudMOpcmlldXJlIGF1ICR7bWlufS5gLFxuICBpdDogYExhIGRhdGEgbm9uIGRldmUgZXNzZXJlIGFudGVyaW9yZSBhbCAke21pbn0uYCxcbn0pO1xuXG5leHBvcnQgY29uc3QgaTE4bkRhdGVNYXggPSAobWF4OiBzdHJpbmcpOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0+ICh7XG4gIGRlOiBgRGF0dW0gZGFyZiBuaWNodCBuYWNoICR7bWF4fSBzZWluLmAsXG4gIGVuOiBgRGF0ZSBtdXN0IG5vdCBiZSBhZnRlciAke21heH0uYCxcbiAgZnI6IGBMYSBkYXRlIG5lIGRvaXQgcGFzIMOqdHJlIHBvc3TDqXJpZXVyZSBhdSAke21heH0uYCxcbiAgaXQ6IGBMYSBkYXRhIG5vbiBkZXZlIGVzc2VyZSBzdWNjZXNzaXZhIGFsICR7bWF4fS5gLFxufSk7XG5cbmV4cG9ydCBjb25zdCBpMThuQ2hpcERlbGV0ZTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZGU6ICdEcsO8Y2tlbiBTaWUgZGllIEVudGZlcm5lbi1UYXN0ZSB1bSBkZW4gQ2hpcCB6dSBsw7ZzY2hlbicsXG4gIGVuOiAnUHJlc3MgdGhlIERlbGV0ZSBidXR0b24gdG8gcmVtb3ZlIHRoZSBjaGlwJyxcbiAgZnI6ICdBcHB1eWV6IHN1ciBsYSB0b3VjaGUgRGVsIHBvdXIgc3VwcHJpbWVyIGNldHRlIHB1Y2UnLFxuICBpdDogJ1ByZW1pIGlsIHRhc3RvIENhbmMgcGVyIHJpbXVvdmVyZSBxdWVzdGEgY2hpcCcsXG59O1xuXG5leHBvcnQgY29uc3QgaTE4bkNoaXBHcm91cElucHV0RGVzY3JpcHRpb246IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnQXVzZ2V3w6RobHRlIEVsZW1lbnRlOicsXG4gIGVuOiAnU2VsZWN0ZWQgZWxlbWVudHM6JyxcbiAgZnI6ICfDiWzDqW1lbnRzIHPDqWxlY3Rpb25uw6lzOicsXG4gIGl0OiAnRWxlbWVudGkgc2VsZXppb25hdGk6Jyxcbn07XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRU8sTUFBTSxnQkFBd0M7QUFBQSxFQUNuRCxJQUFJO0FBQUEsRUFDSixJQUFJO0FBQUEsRUFDSixJQUFJO0FBQUEsRUFDSixJQUFJOztBQUdDLE1BQU0sY0FBc0M7QUFBQSxFQUNqRCxJQUFJO0FBQUEsRUFDSixJQUFJO0FBQUEsRUFDSixJQUFJO0FBQUEsRUFDSixJQUFJOztBQUdDLE1BQU0sYUFBcUM7QUFBQSxFQUNoRCxJQUFJO0FBQUEsRUFDSixJQUFJO0FBQUEsRUFDSixJQUFJO0FBQUEsRUFDSixJQUFJOztBQUdDLE1BQU0sa0JBQTBDO0FBQUEsRUFDckQsSUFBSTtBQUFBLEVBQ0osSUFBSTtBQUFBLEVBQ0osSUFBSTtBQUFBLEVBQ0osSUFBSTs7QUFHQyxNQUFNLFlBQW9EO0FBQUEsRUFDL0QsT0FBTztBQUFBLElBQ0wsSUFBSTtBQUFBLElBQ0osSUFBSTtBQUFBLElBQ0osSUFBSTtBQUFBLElB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
@@ -49,4 +49,4 @@ const SbbAnimationCompleteMixin = (superClass) => {
49
49
  export {
50
50
  SbbAnimationCompleteMixin
51
51
  };
52
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5pbWF0aW9uLWNvbXBsZXRlLW1peGluLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvY29yZS9taXhpbnMvYW5pbWF0aW9uLWNvbXBsZXRlLW1peGluLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgTGl0RWxlbWVudCB9IGZyb20gJ2xpdCc7XG5cbmltcG9ydCB0eXBlIHsgQWJzdHJhY3RDb25zdHJ1Y3RvciB9IGZyb20gJy4vY29uc3RydWN0b3IuanMnO1xuXG5leHBvcnQgZGVjbGFyZSBjbGFzcyBTYmJBbmltYXRpb25Db21wbGV0ZU1peGluVHlwZSB7XG4gIHB1YmxpYyBpc0FuaW1hdGluZzogYm9vbGVhbjtcbiAgcHVibGljIGdldCBhbmltYXRpb25Db21wbGV0ZSgpOiBQcm9taXNlPHZvaWQ+IHwgbnVsbDtcbiAgcHJvdGVjdGVkIHN0YXJ0QW5pbWF0aW9uKCk6IHZvaWQ7XG4gIHByb3RlY3RlZCBzdG9wQW5pbWF0aW9uKCk6IHZvaWQ7XG59XG5cbi8qKlxuICogRW5oYW5jZXMgdGhlIGNvbXBvbmVudCB3aXRoIGEgUHJvbWlzZSB3aGljaCByZXNvbHZlcyB3aGVuZXZlciBhbiBhbmltYXRpb24gZW5kcy5cbiAqL1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuZXhwb3J0IGNvbnN0IFNiYkFuaW1hdGlvbkNvbXBsZXRlTWl4aW4gPSA8VCBleHRlbmRzIEFic3RyYWN0Q29uc3RydWN0b3I8TGl0RWxlbWVudD4+KFxuICBzdXBlckNsYXNzOiBULFxuKTogQWJzdHJhY3RDb25zdHJ1Y3RvcjxTYmJBbmltYXRpb25Db21wbGV0ZU1peGluVHlwZT4gJiBUID0+IHtcbiAgYWJzdHJhY3QgY2xhc3MgU2JiQW5pbWF0aW9uQ29tcGxldGVFbGVtZW50XG4gICAgZXh0ZW5kcyBzdXBlckNsYXNzXG4gICAgaW1wbGVtZW50cyBQYXJ0aWFsPFNiYkFuaW1hdGlvbkNvbXBsZXRlTWl4aW5UeXBlPlxuICB7XG4gICAgLyoqXG4gICAgICogV2hldGhlciB0aGUgY29tcG9uZW50IGlzIGN1cnJlbnRseSBhbmltYXRpbmcuXG4gICAgICovXG4gICAgcHVibGljIGlzQW5pbWF0aW5nID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIGEgcHJvbWlzZSB3aGljaCBjb21wbGV0ZXMgd2hlbmV2ZXIgYW4gYW5pbWF0aW9uIGVuZHMuXG4gICAgICogV2hlbiBhIG5ldyBhbmltYXRpb24gc3RhcnRzLCBhIG5ldyBQcm9taXNlIGlzIHJldHVybmVkLlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgYW5pbWF0aW9uQ29tcGxldGUoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICByZXR1cm4gdGhpcy5fYW5pbWF0aW9uUHJvbWlzZTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfYW5pbWF0aW9uUHJvbWlzZTogUHJvbWlzZTx2b2lkPiA9IFByb21pc2UucmVzb2x2ZSgpO1xuXG4gICAgcHVibGljIG92ZXJyaWRlIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgICAgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKTtcbiAgICAgIHRoaXMuc3RvcEFuaW1hdGlvbigpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBzdGFydEFuaW1hdGlvbigpOiB2b2lkIHtcbiAgICAgIGlmICghdGhpcy5pc0FuaW1hdGluZykge1xuICAgICAgICB0aGlzLl9hbmltYXRpb25Qcm9taXNlID0gdGhpcy5fZW5xdWV1ZUFuaW1hdGlvbigpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE92ZXJyaWRpbmcgc3RvcEFuaW1hdGlvbigpIGJyZWFrcyBmdW5jdGlvbmFsaXR5LlxuICAgICAqL1xuICAgIHByb3RlY3RlZCBzdG9wQW5pbWF0aW9uKCk6IHZvaWQge31cblxuICAgIHByaXZhdGUgYXN5bmMgX2VucXVldWVBbmltYXRpb24oKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICB0aGlzLmlzQW5pbWF0aW5nID0gdHJ1ZTtcbiAgICAgIGNvbnN0IHN0b3BBbmltYXRpb24gPSB0aGlzLnN0b3BBbmltYXRpb247XG5cbiAgICAgIGNvbnN0IHJlc3VsdCA9IG5ldyBQcm9taXNlPHZvaWQ+KChyKSA9PiB7XG4gICAgICAgIHRoaXMuc3RvcEFuaW1hdGlvbiA9ICgpID0+IHtcbiAgICAgICAgICBzdG9wQW5pbWF0aW9uKCk7XG4gICAgICAgICAgdGhpcy5pc0FuaW1hdGluZyA9IGZhbHNlO1xuICAgICAgICAgIHIoKTtcbiAgICAgICAgfTtcbiAgICAgIH0pO1xuICAgICAgdHJ5IHtcbiAgICAgICAgLy8gRW5zdXJlIGFueSBwcmV2aW91cyB1cGRhdGUgaGFzIHJlc29sdmVkIGJlZm9yZSB1cGRhdGluZy5cbiAgICAgICAgYXdhaXQgdGhpcy5fYW5pbWF0aW9uUHJvbWlzZTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgLy8gUmVmaXJlIGFueSBwcmV2aW91cyBlcnJvcnMgYXN5bmMgc28gdGhleSBkbyBub3QgZGlzcnVwdCB0aGUgdXBkYXRlXG4gICAgICAgIC8vIGN5Y2xlLiBFcnJvcnMgYXJlIHJlLWZpcmVkIHNvIGRldmVsb3BlcnMgaGF2ZSBhIGNoYW5jZSB0byBvYnNlcnZlXG4gICAgICAgIC8vIHRoZW0sIGFuZCB0aGlzIGNhbiBiZSBkb25lIGJ5IGltcGxlbWVudGluZ1xuICAgICAgICAvLyBgd2luZG93Lm9udW5oYW5kbGVkcmVqZWN0aW9uYC5cbiAgICAgICAgUHJvbWlzZS5yZWplY3QoZSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBTYmJBbmltYXRpb25Db21wbGV0ZUVsZW1lbnQgYXMgdW5rbm93biBhcyBBYnN0cmFjdENvbnN0cnVjdG9yPFNiYkFuaW1hdGlvbkNvbXBsZXRlTWl4aW5UeXBlPiAmXG4gICAgVDtcbn07XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBZWEsTUFBQSw0QkFBNEIsQ0FDdkMsZUFDMEQ7QUFBQSxFQUMxRCxNQUFlLG9DQUNMLFdBQVU7QUFBQSxJQURwQixjQUFBOztBQU9TLFdBQVcsY0FBRztBQVNiLFdBQUEsb0JBQW1DLFFBQVE7Ozs7OztJQUhuRCxJQUFXLG9CQUFpQjtBQUMxQixhQUFPLEtBQUs7QUFBQSxJQUFBO0FBQUEsSUFJRSx1QkFBb0I7QUFDbEMsWUFBTSxxQkFBb0I7QUFDMUIsV0FBSyxjQUFhO0FBQUEsSUFBQTtBQUFBLElBR1YsaUJBQWM7QUFDbEIsVUFBQSxDQUFDLEtBQUssYUFBYTtBQUNoQixhQUFBLG9CQUFvQixLQUFLOztJQUNoQztBQUFBO0FBQUE7QUFBQTtBQUFBLElBTVE7O0lBRUYsTUFBTSxvQkFBaUI7QUFDN0IsV0FBSyxjQUFjO0FBQ25CLFlBQU0sZ0JBQWdCLEtBQUs7QUFFM0IsWUFBTSxTQUFTLElBQUksUUFBYyxDQUFDLE1BQUs7QUFDckMsYUFBSyxnQkFBZ0IsTUFBSzs7QUFFeEIsZUFBSyxjQUFjOztRQUVyQjtBQUFBLE1BQUEsQ0FDRDtBQUNHLFVBQUE7QUFFRixjQUFNLEtBQUs7QUFBQSxlQUNKLEdBQUc7QUFLVixnQkFBUSxPQUFPLENBQUM7QUFBQSxNQUFBO0FBRVgsYUFBQTtBQUFBLElBQUE7QUFBQSxFQUNUO0FBR0ssU0FBQTtBQUVUOyJ9
52
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5pbWF0aW9uLWNvbXBsZXRlLW1peGluLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvY29yZS9taXhpbnMvYW5pbWF0aW9uLWNvbXBsZXRlLW1peGluLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgTGl0RWxlbWVudCB9IGZyb20gJ2xpdCc7XG5cbmltcG9ydCB0eXBlIHsgQWJzdHJhY3RDb25zdHJ1Y3RvciB9IGZyb20gJy4vY29uc3RydWN0b3IuanMnO1xuXG5leHBvcnQgZGVjbGFyZSBjbGFzcyBTYmJBbmltYXRpb25Db21wbGV0ZU1peGluVHlwZSB7XG4gIHB1YmxpYyBpc0FuaW1hdGluZzogYm9vbGVhbjtcbiAgcHVibGljIGdldCBhbmltYXRpb25Db21wbGV0ZSgpOiBQcm9taXNlPHZvaWQ+IHwgbnVsbDtcbiAgcHJvdGVjdGVkIHN0YXJ0QW5pbWF0aW9uKCk6IHZvaWQ7XG4gIHByb3RlY3RlZCBzdG9wQW5pbWF0aW9uKCk6IHZvaWQ7XG59XG5cbi8qKlxuICogRW5oYW5jZXMgdGhlIGNvbXBvbmVudCB3aXRoIGEgUHJvbWlzZSB3aGljaCByZXNvbHZlcyB3aGVuZXZlciBhbiBhbmltYXRpb24gZW5kcy5cbiAqL1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuZXhwb3J0IGNvbnN0IFNiYkFuaW1hdGlvbkNvbXBsZXRlTWl4aW4gPSA8VCBleHRlbmRzIEFic3RyYWN0Q29uc3RydWN0b3I8TGl0RWxlbWVudD4+KFxuICBzdXBlckNsYXNzOiBULFxuKTogQWJzdHJhY3RDb25zdHJ1Y3RvcjxTYmJBbmltYXRpb25Db21wbGV0ZU1peGluVHlwZT4gJiBUID0+IHtcbiAgYWJzdHJhY3QgY2xhc3MgU2JiQW5pbWF0aW9uQ29tcGxldGVFbGVtZW50XG4gICAgZXh0ZW5kcyBzdXBlckNsYXNzXG4gICAgaW1wbGVtZW50cyBQYXJ0aWFsPFNiYkFuaW1hdGlvbkNvbXBsZXRlTWl4aW5UeXBlPlxuICB7XG4gICAgLyoqXG4gICAgICogV2hldGhlciB0aGUgY29tcG9uZW50IGlzIGN1cnJlbnRseSBhbmltYXRpbmcuXG4gICAgICovXG4gICAgcHVibGljIGlzQW5pbWF0aW5nID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIGEgcHJvbWlzZSB3aGljaCBjb21wbGV0ZXMgd2hlbmV2ZXIgYW4gYW5pbWF0aW9uIGVuZHMuXG4gICAgICogV2hlbiBhIG5ldyBhbmltYXRpb24gc3RhcnRzLCBhIG5ldyBQcm9taXNlIGlzIHJldHVybmVkLlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgYW5pbWF0aW9uQ29tcGxldGUoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICByZXR1cm4gdGhpcy5fYW5pbWF0aW9uUHJvbWlzZTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfYW5pbWF0aW9uUHJvbWlzZTogUHJvbWlzZTx2b2lkPiA9IFByb21pc2UucmVzb2x2ZSgpO1xuXG4gICAgcHVibGljIG92ZXJyaWRlIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgICAgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKTtcbiAgICAgIHRoaXMuc3RvcEFuaW1hdGlvbigpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBzdGFydEFuaW1hdGlvbigpOiB2b2lkIHtcbiAgICAgIGlmICghdGhpcy5pc0FuaW1hdGluZykge1xuICAgICAgICB0aGlzLl9hbmltYXRpb25Qcm9taXNlID0gdGhpcy5fZW5xdWV1ZUFuaW1hdGlvbigpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE92ZXJyaWRpbmcgc3RvcEFuaW1hdGlvbigpIGJyZWFrcyBmdW5jdGlvbmFsaXR5LlxuICAgICAqL1xuICAgIHByb3RlY3RlZCBzdG9wQW5pbWF0aW9uKCk6IHZvaWQge31cblxuICAgIHByaXZhdGUgYXN5bmMgX2VucXVldWVBbmltYXRpb24oKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICB0aGlzLmlzQW5pbWF0aW5nID0gdHJ1ZTtcbiAgICAgIGNvbnN0IHN0b3BBbmltYXRpb24gPSB0aGlzLnN0b3BBbmltYXRpb247XG5cbiAgICAgIGNvbnN0IHJlc3VsdCA9IG5ldyBQcm9taXNlPHZvaWQ+KChyKSA9PiB7XG4gICAgICAgIHRoaXMuc3RvcEFuaW1hdGlvbiA9ICgpID0+IHtcbiAgICAgICAgICBzdG9wQW5pbWF0aW9uKCk7XG4gICAgICAgICAgdGhpcy5pc0FuaW1hdGluZyA9IGZhbHNlO1xuICAgICAgICAgIHIoKTtcbiAgICAgICAgfTtcbiAgICAgIH0pO1xuICAgICAgdHJ5IHtcbiAgICAgICAgLy8gRW5zdXJlIGFueSBwcmV2aW91cyB1cGRhdGUgaGFzIHJlc29sdmVkIGJlZm9yZSB1cGRhdGluZy5cbiAgICAgICAgYXdhaXQgdGhpcy5fYW5pbWF0aW9uUHJvbWlzZTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgLy8gUmVmaXJlIGFueSBwcmV2aW91cyBlcnJvcnMgYXN5bmMgc28gdGhleSBkbyBub3QgZGlzcnVwdCB0aGUgdXBkYXRlXG4gICAgICAgIC8vIGN5Y2xlLiBFcnJvcnMgYXJlIHJlLWZpcmVkIHNvIGRldmVsb3BlcnMgaGF2ZSBhIGNoYW5jZSB0byBvYnNlcnZlXG4gICAgICAgIC8vIHRoZW0sIGFuZCB0aGlzIGNhbiBiZSBkb25lIGJ5IGltcGxlbWVudGluZ1xuICAgICAgICAvLyBgd2luZG93Lm9udW5oYW5kbGVkcmVqZWN0aW9uYC5cbiAgICAgICAgUHJvbWlzZS5yZWplY3QoZSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBTYmJBbmltYXRpb25Db21wbGV0ZUVsZW1lbnQgYXMgdW5rbm93biBhcyBBYnN0cmFjdENvbnN0cnVjdG9yPFNiYkFuaW1hdGlvbkNvbXBsZXRlTWl4aW5UeXBlPiAmXG4gICAgVDtcbn07XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBZU8sTUFBTSw0QkFBNEIsQ0FDdkMsZUFDMEQ7QUFBQSxFQUMxRCxNQUFlLG9DQUNMLFdBQVU7QUFBQSxJQURwQixjQUFBOztBQU9TLFdBQUEsY0FBYztBQVNiLFdBQUEsb0JBQW1DLFFBQVEsUUFBQTtBQUFBOzs7OztJQUhuRCxJQUFXLG9CQUFpQjtBQUMxQixhQUFPLEtBQUs7QUFBQSxJQUFBO0FBQUEsSUFJRSx1QkFBb0I7QUFDbEMsWUFBTSxxQkFBQTtBQUNOLFdBQUssY0FBQTtBQUFBLElBQWE7QUFBQSxJQUdWLGlCQUFjO0FBQ3RCLFVBQUksQ0FBQyxLQUFLLGFBQWE7QUFDckIsYUFBSyxvQkFBb0IsS0FBSyxrQkFBQTtBQUFBO0lBQ2hDO0FBQUE7QUFBQTtBQUFBO0FBQUEsSUFNUTs7SUFFRixNQUFNLG9CQUFpQjtBQUM3QixXQUFLLGNBQWM7QUFDbkIsWUFBTSxnQkFBZ0IsS0FBSztBQUUzQixZQUFNLFNBQVMsSUFBSSxRQUFjLENBQUMsTUFBSztBQUNyQyxhQUFLLGdCQUFnQixNQUFLO0FBQ3hCLHdCQUFBO0FBQ0EsZUFBSyxjQUFjO0FBQ25CLFlBQUE7QUFBQTtNQUNGLENBQ0Q7QUFDRCxVQUFJO0FBRUYsY0FBTSxLQUFLO0FBQUEsTUFBQSxTQUNKLEdBQUc7QUFLVixnQkFBUSxPQUFPLENBQUM7QUFBQSxNQUFBO0FBRWxCLGFBQU87QUFBQSxJQUFBO0FBQUEsRUFDVDtBQUdGLFNBQU87QUFFVDsifQ==
@@ -101,4 +101,4 @@ export {
101
101
  SbbDisabledMixin,
102
102
  SbbDisabledTabIndexActionMixin
103
103
  };
104
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzYWJsZWQtbWl4aW4uanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb3JlL21peGlucy9kaXNhYmxlZC1taXhpbi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IExpdEVsZW1lbnQsIFByb3BlcnR5VmFsdWVzIH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IHByb3BlcnR5IH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuXG5pbXBvcnQgeyBmb3JjZVR5cGUsIGdldE92ZXJyaWRlIH0gZnJvbSAnLi4vZGVjb3JhdG9ycy5qcyc7XG5cbmltcG9ydCB0eXBlIHsgQWJzdHJhY3RDb25zdHJ1Y3RvciB9IGZyb20gJy4vY29uc3RydWN0b3IuanMnO1xuaW1wb3J0IHR5cGUgeyBTYmJGb3JtQXNzb2NpYXRlZE1peGluVHlwZSB9IGZyb20gJy4vZm9ybS1hc3NvY2lhdGVkLW1peGluLmpzJztcblxuZXhwb3J0IGRlY2xhcmUgY2xhc3MgU2JiRGlzYWJsZWRNaXhpblR5cGUge1xuICBwdWJsaWMgYWNjZXNzb3IgZGlzYWJsZWQ6IGJvb2xlYW47XG4gIHByb3RlY3RlZCBpc0Rpc2FibGVkRXh0ZXJuYWxseSgpOiBib29sZWFuO1xufVxuXG5leHBvcnQgZGVjbGFyZSBjbGFzcyBTYmJEaXNhYmxlZEludGVyYWN0aXZlTWl4aW5UeXBlIHtcbiAgcHVibGljIGFjY2Vzc29yIGRpc2FibGVkSW50ZXJhY3RpdmU6IGJvb2xlYW47XG59XG5cbi8qKlxuICogRW5oYW5jZSB5b3VyIGNvbXBvbmVudCB3aXRoIGEgZGlzYWJsZWQgcHJvcGVydHkuXG4gKi9cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbmV4cG9ydCBjb25zdCBTYmJEaXNhYmxlZE1peGluID0gPFQgZXh0ZW5kcyBBYnN0cmFjdENvbnN0cnVjdG9yPExpdEVsZW1lbnQ+PihcbiAgc3VwZXJDbGFzczogVCxcbik6IEFic3RyYWN0Q29uc3RydWN0b3I8U2JiRGlzYWJsZWRNaXhpblR5cGU+ICYgVCA9PiB7XG4gIGFic3RyYWN0IGNsYXNzIFNiYkRpc2FibGVkRWxlbWVudCBleHRlbmRzIHN1cGVyQ2xhc3MgaW1wbGVtZW50cyBQYXJ0aWFsPFNiYkRpc2FibGVkTWl4aW5UeXBlPiB7XG4gICAgLyoqIFdoZXRoZXIgdGhlIGNvbXBvbmVudCBpcyBkaXNhYmxlZC4gKi9cbiAgICBAZm9yY2VUeXBlKClcbiAgICBAcHJvcGVydHkoeyByZWZsZWN0OiB0cnVlLCB0eXBlOiBCb29sZWFuIH0pXG4gICAgQGdldE92ZXJyaWRlKChlOiBTYmJEaXNhYmxlZEVsZW1lbnQsIHY6IGJvb2xlYW4pOiBib29sZWFuID0+IHYgfHwgZS5pc0Rpc2FibGVkRXh0ZXJuYWxseSgpKVxuICAgIHB1YmxpYyBhY2Nlc3NvciBkaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogV2lsbCBiZSB1c2VkIGFzICdvcicgY2hlY2sgdG8gdGhlIGN1cnJlbnQgZGlzYWJsZWQgc3RhdGUuXG4gICAgICogQ2FuIGUuZy4gYmUgdXNlZCB0byByZWFkIGRpc2FibGVkIHN0YXRlIG9mIGEgZ3JvdXAuXG4gICAgICovXG4gICAgcHJvdGVjdGVkIGlzRGlzYWJsZWRFeHRlcm5hbGx5KCk6IGJvb2xlYW4ge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBTYmJEaXNhYmxlZEVsZW1lbnQgYXMgdW5rbm93biBhcyBBYnN0cmFjdENvbnN0cnVjdG9yPFNiYkRpc2FibGVkTWl4aW5UeXBlPiAmIFQ7XG59O1xuXG4vKipcbiAqIEVuaGFuY2UgeW91ciBjb21wb25lbnQgd2l0aCBhIGRpc2FibGVkIGludGVyYWN0aXZlIHByb3BlcnR5LlxuICovXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG5leHBvcnQgY29uc3QgU2JiRGlzYWJsZWRJbnRlcmFjdGl2ZU1peGluID0gPFxuICBUIGV4dGVuZHMgQWJzdHJhY3RDb25zdHJ1Y3RvcjxMaXRFbGVtZW50ICYgU2JiRGlzYWJsZWRNaXhpblR5cGU+LFxuPihcbiAgc3VwZXJDbGFzczogVCxcbik6IEFic3RyYWN0Q29uc3RydWN0b3I8U2JiRGlzYWJsZWRJbnRlcmFjdGl2ZU1peGluVHlwZT4gJiBUID0+IHtcbiAgYWJzdHJhY3QgY2xhc3MgU2JiRGlzYWJsZWRJbnRlcmFjdGl2ZUVsZW1lbnRcbiAgICBleHRlbmRzIHN1cGVyQ2xhc3NcbiAgICBpbXBsZW1lbnRzIFBhcnRpYWw8U2JiRGlzYWJsZWRJbnRlcmFjdGl2ZU1peGluVHlwZT5cbiAge1xuICAgIC8qKiBXaGV0aGVyIHRoZSBidXR0b24gc2hvdWxkIGJlIGFyaWEtZGlzYWJsZWQgYnV0IHN0YXkgaW50ZXJhY3RpdmUuICovXG4gICAgQGZvcmNlVHlwZSgpXG4gICAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAnZGlzYWJsZWQtaW50ZXJhY3RpdmUnLCB0eXBlOiBCb29sZWFuLCByZWZsZWN0OiB0cnVlIH0pXG4gICAgcHVibGljIGFjY2Vzc29yIGRpc2FibGVkSW50ZXJhY3RpdmU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgfVxuXG4gIHJldHVybiBTYmJEaXNhYmxlZEludGVyYWN0aXZlRWxlbWVudCBhcyB1bmtub3duIGFzIEFic3RyYWN0Q29uc3RydWN0b3I8U2JiRGlzYWJsZWRJbnRlcmFjdGl2ZU1peGluVHlwZT4gJlxuICAgIFQ7XG59O1xuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG5leHBvcnQgY29uc3QgU2JiRGlzYWJsZWRUYWJJbmRleEFjdGlvbk1peGluID0gPFxuICBUIGV4dGVuZHMgQWJzdHJhY3RDb25zdHJ1Y3RvcjxMaXRFbGVtZW50ICYgU2JiRm9ybUFzc29jaWF0ZWRNaXhpblR5cGU+LFxuPihcbiAgc3VwZXJDbGFzczogVCxcbik6IEFic3RyYWN0Q29uc3RydWN0b3I8U2JiRGlzYWJsZWRNaXhpblR5cGUgJiBTYmJEaXNhYmxlZEludGVyYWN0aXZlTWl4aW5UeXBlPiAmIFQgPT4ge1xuICBhYnN0cmFjdCBjbGFzcyBTYmJEaXNhYmxlZFRhYkluZGV4QWN0aW9uXG4gICAgZXh0ZW5kcyBTYmJEaXNhYmxlZEludGVyYWN0aXZlTWl4aW4oU2JiRGlzYWJsZWRNaXhpbihzdXBlckNsYXNzKSlcbiAgICBpbXBsZW1lbnRzIFNiYkRpc2FibGVkTWl4aW5UeXBlLCBTYmJEaXNhYmxlZEludGVyYWN0aXZlTWl4aW5UeXBlXG4gIHtcbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgd2lsbFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXM8dGhpcz4pOiB2b2lkIHtcbiAgICAgIHN1cGVyLndpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXMpO1xuXG4gICAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdkaXNhYmxlZEludGVyYWN0aXZlJykpIHtcbiAgICAgICAgdGhpcy5pbnRlcm5hbHMuYXJpYURpc2FibGVkID0gdGhpcy5kaXNhYmxlZEludGVyYWN0aXZlID8gJ3RydWUnIDogbnVsbDtcbiAgICAgIH1cblxuICAgICAgaWYgKCFjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ2Rpc2FibGVkJykpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZiAoIXRoaXMuZGlzYWJsZWQpIHtcbiAgICAgICAgdGhpcy5zZXRBdHRyaWJ1dGUoJ3RhYmluZGV4JywgJzAnKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMucmVtb3ZlQXR0cmlidXRlKCd0YWJpbmRleCcpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICByZXR1cm4gU2JiRGlzYWJsZWRUYWJJbmRleEFjdGlvbiBhcyBBYnN0cmFjdENvbnN0cnVjdG9yPFxuICAgIFNiYkRpc2FibGVkTWl4aW5UeXBlICYgU2JiRGlzYWJsZWRJbnRl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
104
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzYWJsZWQtbWl4aW4uanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb3JlL21peGlucy9kaXNhYmxlZC1taXhpbi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IExpdEVsZW1lbnQsIFByb3BlcnR5VmFsdWVzIH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IHByb3BlcnR5IH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuXG5pbXBvcnQgeyBmb3JjZVR5cGUsIGdldE92ZXJyaWRlIH0gZnJvbSAnLi4vZGVjb3JhdG9ycy5qcyc7XG5cbmltcG9ydCB0eXBlIHsgQWJzdHJhY3RDb25zdHJ1Y3RvciB9IGZyb20gJy4vY29uc3RydWN0b3IuanMnO1xuaW1wb3J0IHR5cGUgeyBTYmJGb3JtQXNzb2NpYXRlZE1peGluVHlwZSB9IGZyb20gJy4vZm9ybS1hc3NvY2lhdGVkLW1peGluLmpzJztcblxuZXhwb3J0IGRlY2xhcmUgY2xhc3MgU2JiRGlzYWJsZWRNaXhpblR5cGUge1xuICBwdWJsaWMgYWNjZXNzb3IgZGlzYWJsZWQ6IGJvb2xlYW47XG4gIHByb3RlY3RlZCBpc0Rpc2FibGVkRXh0ZXJuYWxseSgpOiBib29sZWFuO1xufVxuXG5leHBvcnQgZGVjbGFyZSBjbGFzcyBTYmJEaXNhYmxlZEludGVyYWN0aXZlTWl4aW5UeXBlIHtcbiAgcHVibGljIGFjY2Vzc29yIGRpc2FibGVkSW50ZXJhY3RpdmU6IGJvb2xlYW47XG59XG5cbi8qKlxuICogRW5oYW5jZSB5b3VyIGNvbXBvbmVudCB3aXRoIGEgZGlzYWJsZWQgcHJvcGVydHkuXG4gKi9cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbmV4cG9ydCBjb25zdCBTYmJEaXNhYmxlZE1peGluID0gPFQgZXh0ZW5kcyBBYnN0cmFjdENvbnN0cnVjdG9yPExpdEVsZW1lbnQ+PihcbiAgc3VwZXJDbGFzczogVCxcbik6IEFic3RyYWN0Q29uc3RydWN0b3I8U2JiRGlzYWJsZWRNaXhpblR5cGU+ICYgVCA9PiB7XG4gIGFic3RyYWN0IGNsYXNzIFNiYkRpc2FibGVkRWxlbWVudCBleHRlbmRzIHN1cGVyQ2xhc3MgaW1wbGVtZW50cyBQYXJ0aWFsPFNiYkRpc2FibGVkTWl4aW5UeXBlPiB7XG4gICAgLyoqIFdoZXRoZXIgdGhlIGNvbXBvbmVudCBpcyBkaXNhYmxlZC4gKi9cbiAgICBAZm9yY2VUeXBlKClcbiAgICBAcHJvcGVydHkoeyByZWZsZWN0OiB0cnVlLCB0eXBlOiBCb29sZWFuIH0pXG4gICAgQGdldE92ZXJyaWRlKChlOiBTYmJEaXNhYmxlZEVsZW1lbnQsIHY6IGJvb2xlYW4pOiBib29sZWFuID0+IHYgfHwgZS5pc0Rpc2FibGVkRXh0ZXJuYWxseSgpKVxuICAgIHB1YmxpYyBhY2Nlc3NvciBkaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogV2lsbCBiZSB1c2VkIGFzICdvcicgY2hlY2sgdG8gdGhlIGN1cnJlbnQgZGlzYWJsZWQgc3RhdGUuXG4gICAgICogQ2FuIGUuZy4gYmUgdXNlZCB0byByZWFkIGRpc2FibGVkIHN0YXRlIG9mIGEgZ3JvdXAuXG4gICAgICovXG4gICAgcHJvdGVjdGVkIGlzRGlzYWJsZWRFeHRlcm5hbGx5KCk6IGJvb2xlYW4ge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBTYmJEaXNhYmxlZEVsZW1lbnQgYXMgdW5rbm93biBhcyBBYnN0cmFjdENvbnN0cnVjdG9yPFNiYkRpc2FibGVkTWl4aW5UeXBlPiAmIFQ7XG59O1xuXG4vKipcbiAqIEVuaGFuY2UgeW91ciBjb21wb25lbnQgd2l0aCBhIGRpc2FibGVkIGludGVyYWN0aXZlIHByb3BlcnR5LlxuICovXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG5leHBvcnQgY29uc3QgU2JiRGlzYWJsZWRJbnRlcmFjdGl2ZU1peGluID0gPFxuICBUIGV4dGVuZHMgQWJzdHJhY3RDb25zdHJ1Y3RvcjxMaXRFbGVtZW50ICYgU2JiRGlzYWJsZWRNaXhpblR5cGU+LFxuPihcbiAgc3VwZXJDbGFzczogVCxcbik6IEFic3RyYWN0Q29uc3RydWN0b3I8U2JiRGlzYWJsZWRJbnRlcmFjdGl2ZU1peGluVHlwZT4gJiBUID0+IHtcbiAgYWJzdHJhY3QgY2xhc3MgU2JiRGlzYWJsZWRJbnRlcmFjdGl2ZUVsZW1lbnRcbiAgICBleHRlbmRzIHN1cGVyQ2xhc3NcbiAgICBpbXBsZW1lbnRzIFBhcnRpYWw8U2JiRGlzYWJsZWRJbnRlcmFjdGl2ZU1peGluVHlwZT5cbiAge1xuICAgIC8qKiBXaGV0aGVyIHRoZSBidXR0b24gc2hvdWxkIGJlIGFyaWEtZGlzYWJsZWQgYnV0IHN0YXkgaW50ZXJhY3RpdmUuICovXG4gICAgQGZvcmNlVHlwZSgpXG4gICAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAnZGlzYWJsZWQtaW50ZXJhY3RpdmUnLCB0eXBlOiBCb29sZWFuLCByZWZsZWN0OiB0cnVlIH0pXG4gICAgcHVibGljIGFjY2Vzc29yIGRpc2FibGVkSW50ZXJhY3RpdmU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgfVxuXG4gIHJldHVybiBTYmJEaXNhYmxlZEludGVyYWN0aXZlRWxlbWVudCBhcyB1bmtub3duIGFzIEFic3RyYWN0Q29uc3RydWN0b3I8U2JiRGlzYWJsZWRJbnRlcmFjdGl2ZU1peGluVHlwZT4gJlxuICAgIFQ7XG59O1xuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG5leHBvcnQgY29uc3QgU2JiRGlzYWJsZWRUYWJJbmRleEFjdGlvbk1peGluID0gPFxuICBUIGV4dGVuZHMgQWJzdHJhY3RDb25zdHJ1Y3RvcjxMaXRFbGVtZW50ICYgU2JiRm9ybUFzc29jaWF0ZWRNaXhpblR5cGU+LFxuPihcbiAgc3VwZXJDbGFzczogVCxcbik6IEFic3RyYWN0Q29uc3RydWN0b3I8U2JiRGlzYWJsZWRNaXhpblR5cGUgJiBTYmJEaXNhYmxlZEludGVyYWN0aXZlTWl4aW5UeXBlPiAmIFQgPT4ge1xuICBhYnN0cmFjdCBjbGFzcyBTYmJEaXNhYmxlZFRhYkluZGV4QWN0aW9uXG4gICAgZXh0ZW5kcyBTYmJEaXNhYmxlZEludGVyYWN0aXZlTWl4aW4oU2JiRGlzYWJsZWRNaXhpbihzdXBlckNsYXNzKSlcbiAgICBpbXBsZW1lbnRzIFNiYkRpc2FibGVkTWl4aW5UeXBlLCBTYmJEaXNhYmxlZEludGVyYWN0aXZlTWl4aW5UeXBlXG4gIHtcbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgd2lsbFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXM8dGhpcz4pOiB2b2lkIHtcbiAgICAgIHN1cGVyLndpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXMpO1xuXG4gICAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdkaXNhYmxlZEludGVyYWN0aXZlJykpIHtcbiAgICAgICAgdGhpcy5pbnRlcm5hbHMuYXJpYURpc2FibGVkID0gdGhpcy5kaXNhYmxlZEludGVyYWN0aXZlID8gJ3RydWUnIDogbnVsbDtcbiAgICAgIH1cblxuICAgICAgaWYgKCFjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ2Rpc2FibGVkJykpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZiAoIXRoaXMuZGlzYWJsZWQpIHtcbiAgICAgICAgdGhpcy5zZXRBdHRyaWJ1dGUoJ3RhYmluZGV4JywgJzAnKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMucmVtb3ZlQXR0cmlidXRlKCd0YWJpbmRleCcpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICByZXR1cm4gU2JiRGlzYWJsZWRUYWJJbmRleEFjdGlvbiBhcyBBYnN0cmFjdENvbnN0cnVjdG9yPFxuICAgIFNiYkRpc2FibGVkTWl4aW5UeXBlICYgU2JiRGlzYWJsZWRJbnRl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
@@ -44,7 +44,6 @@ const SbbFormAssociatedCheckboxMixin = (superClass) => {
44
44
  return "checkbox";
45
45
  }
46
46
  constructor() {
47
- var _a2, _b, _c;
48
47
  super();
49
48
  this._attributeMutationBlocked = (__runInitializers(this, _instanceExtraInitializers), false);
50
49
  this._languageController = new SbbLanguageController(this);
@@ -55,20 +54,19 @@ const SbbFormAssociatedCheckboxMixin = (superClass) => {
55
54
  }
56
55
  };
57
56
  this._handleUserInteraction = () => {
58
- var _a3;
59
57
  if (this.disabled) {
60
58
  return;
61
59
  }
62
- (_a3 = this.withUserInteraction) == null ? void 0 : _a3.call(this);
60
+ this.withUserInteraction?.();
63
61
  this.checked = !this.checked;
64
62
  this._attributeMutationBlocked = true;
65
63
  this.dispatchEvent(new InputEvent("input", { composed: true, bubbles: true }));
66
64
  this.dispatchEvent(new Event("change", { bubbles: true }));
67
65
  };
68
66
  this.internals.role = "checkbox";
69
- (_a2 = this.addEventListener) == null ? void 0 : _a2.call(this, "click", this._handleUserInteraction);
70
- (_b = this.addEventListener) == null ? void 0 : _b.call(this, "keydown", preventScrollOnSpacebarPress);
71
- (_c = this.addEventListener) == null ? void 0 : _c.call(this, "keyup", this._handleKeyboardInteraction);
67
+ this.addEventListener?.("click", this._handleUserInteraction);
68
+ this.addEventListener?.("keydown", preventScrollOnSpacebarPress);
69
+ this.addEventListener?.("keyup", this._handleKeyboardInteraction);
72
70
  }
73
71
  attributeChangedCallback(name, old, value) {
74
72
  if (name !== "checked" || !this._attributeMutationBlocked) {
@@ -124,8 +122,7 @@ const SbbFormAssociatedCheckboxMixin = (superClass) => {
124
122
  ...defaultConverter,
125
123
  // We need to pass information to the setter so that we know it was called by attribute change.
126
124
  fromAttribute: (value, type) => {
127
- var _a2, _b;
128
- const result = (_b = (_a2 = defaultConverter).fromAttribute) == null ? void 0 : _b.call(_a2, value, type);
125
+ const result = defaultConverter.fromAttribute?.(value, type);
129
126
  return { value: result, attribute: true };
130
127
  }
131
128
  }
@@ -145,4 +142,4 @@ const SbbFormAssociatedCheckboxMixin = (superClass) => {
145
142
  export {
146
143
  SbbFormAssociatedCheckboxMixin
147
144
  };
148
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1hc3NvY2lhdGVkLWNoZWNrYm94LW1peGluLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvY29yZS9taXhpbnMvZm9ybS1hc3NvY2lhdGVkLWNoZWNrYm94LW1peGluLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGRlZmF1bHRDb252ZXJ0ZXIsIHR5cGUgTGl0RWxlbWVudCB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBwcm9wZXJ0eSB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcblxuaW1wb3J0IHsgU2JiTGFuZ3VhZ2VDb250cm9sbGVyIH0gZnJvbSAnLi4vY29udHJvbGxlcnMuanMnO1xuaW1wb3J0IHsgaG9zdEF0dHJpYnV0ZXMgfSBmcm9tICcuLi9kZWNvcmF0b3JzLmpzJztcbmltcG9ydCB7IHByZXZlbnRTY3JvbGxPblNwYWNlYmFyUHJlc3MgfSBmcm9tICcuLi9ldmVudGluZy5qcyc7XG5pbXBvcnQgeyBpMThuQ2hlY2tib3hSZXF1aXJlZCB9IGZyb20gJy4uL2kxOG4uanMnO1xuXG5pbXBvcnQgdHlwZSB7IENvbnN0cnVjdG9yIH0gZnJvbSAnLi9jb25zdHJ1Y3Rvci5qcyc7XG5pbXBvcnQgeyBTYmJEaXNhYmxlZE1peGluLCB0eXBlIFNiYkRpc2FibGVkTWl4aW5UeXBlIH0gZnJvbSAnLi9kaXNhYmxlZC1taXhpbi5qcyc7XG5pbXBvcnQge1xuICBTYmJGb3JtQXNzb2NpYXRlZE1peGluLFxuICB0eXBlIEZvcm1SZXN0b3JlUmVhc29uLFxuICB0eXBlIEZvcm1SZXN0b3JlU3RhdGUsXG4gIHR5cGUgU2JiRm9ybUFzc29jaWF0ZWRNaXhpblR5cGUsXG59IGZyb20gJy4vZm9ybS1hc3NvY2lhdGVkLW1peGluLmpzJztcbmltcG9ydCB7IFNiYlJlcXVpcmVkTWl4aW4sIHR5cGUgU2JiUmVxdWlyZWRNaXhpblR5cGUgfSBmcm9tICcuL3JlcXVpcmVkLW1peGluLmpzJztcblxudHlwZSBDaGVja2VkU2V0dGVyVmFsdWUgPSB7IHZhbHVlOiBib29sZWFuOyBhdHRyaWJ1dGU6IGJvb2xlYW4gfTtcblxuZXhwb3J0IGRlY2xhcmUgYWJzdHJhY3QgY2xhc3MgU2JiRm9ybUFzc29jaWF0ZWRDaGVja2JveE1peGluVHlwZVxuICBleHRlbmRzIFNiYkZvcm1Bc3NvY2lhdGVkTWl4aW5UeXBlXG4gIGltcGxlbWVudHMgUGFydGlhbDxTYmJEaXNhYmxlZE1peGluVHlwZT4sIFBhcnRpYWw8U2JiUmVxdWlyZWRNaXhpblR5cGU+XG57XG4gIHB1YmxpYyBnZXQgY2hlY2tlZCgpOiBib29sZWFuO1xuICBwdWJsaWMgc2V0IGNoZWNrZWQodmFsdWU6IGJvb2xlYW4pO1xuXG4gIHB1YmxpYyBzZXQgZGlzYWJsZWQodmFsdWU6IGJvb2xlYW4pO1xuICBwdWJsaWMgZ2V0IGRpc2FibGVkKCk6IGJvb2xlYW47XG5cbiAgcHVibGljIHNldCByZXF1aXJlZCh2YWx1ZTogYm9vbGVhbik7XG4gIHB1YmxpYyBnZXQgcmVxdWlyZWQoKTogYm9vbGVhbjtcblxuICBwdWJsaWMgZm9ybVJlc2V0Q2FsbGJhY2soKTogdm9pZDtcbiAgcHVibGljIGZvcm1TdGF0ZVJlc3RvcmVDYWxsYmFjayhzdGF0ZTogRm9ybVJlc3RvcmVTdGF0ZSB8IG51bGwsIHJlYXNvbjogRm9ybVJlc3RvcmVSZWFzb24pOiB2b2lkO1xuXG4gIHByb3RlY3RlZCBpc0Rpc2FibGVkRXh0ZXJuYWxseSgpOiBib29sZWFuO1xuICBwcm90ZWN0ZWQgaXNSZXF1aXJlZEV4dGVybmFsbHkoKTogYm9vbGVhbjtcbiAgcHJvdGVjdGVkIHdpdGhVc2VySW50ZXJhY3Rpb24/KCk6IHZvaWQ7XG4gIHByb3RlY3RlZCB1cGRhdGVGb3JtVmFsdWUoKTogdm9pZDtcbn1cblxuLyoqXG4gKiBUaGUgRm9ybUFzc29jaWF0ZWRDaGVja2JveE1peGluIGVuYWJsZXMgbmF0aXZlIGZvcm0gc3VwcG9ydCBmb3IgY2hlY2tib3ggY29udHJvbHMuXG4gKlxuICogSW5oZXJpdGVkIGNsYXNzZXMgTVVTVCBpbXBsZW1lbnQgdGhlIGFyaWFDaGVja2VkIHN0YXRlIChFbGVtZW50SW50ZXJuYWxzKSB0aGVtc2VsdmVzLlxuICovXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG5leHBvcnQgY29uc3QgU2JiRm9ybUFzc29jaWF0ZWRDaGVja2JveE1peGluID0gPFQgZXh0ZW5kcyBDb25zdHJ1Y3RvcjxMaXRFbGVtZW50Pj4oXG4gIHN1cGVyQ2xhc3M6IFQsXG4pOiBDb25zdHJ1Y3RvcjxTYmJGb3JtQXNzb2NpYXRlZENoZWNrYm94TWl4aW5UeXBlPiAmIFQgPT4ge1xuICBAaG9zdEF0dHJpYnV0ZXMoe1xuICAgIHRhYmluZGV4OiAnMCcsXG4gIH0pXG4gIGFic3RyYWN0IGNsYXNzIFNiYkZvcm1Bc3NvY2lhdGVkQ2hlY2tib3hFbGVtZW50XG4gICAgZXh0ZW5kcyBTYmJEaXNhYmxlZE1peGluKFNiYlJlcXVpcmVkTWl4aW4oU2JiRm9ybUFzc29jaWF0ZWRNaXhpbihzdXBlckNsYXNzKSkpXG4gICAgaW1wbGVtZW50cyBQYXJ0aWFsPFNiYkZvcm1Bc3NvY2lhdGVkQ2hlY2tib3hNaXhpblR5cGU+XG4gIHtcbiAgICBwcml2YXRlIF9hdHRyaWJ1dGVNdXRhdGlvbkJsb2NrZWQgPSBmYWxzZTtcbiAgICBwcml2YXRlIF9sYW5ndWFnZUNvbnRyb2xsZXIgPSBuZXcgU2JiTGFuZ3VhZ2VDb250cm9sbGVyKHRoaXMpO1xuXG4gICAgLyoqIFdoZXRoZXIgdGhlIGNoZWNrYm94IGlzIGNoZWNrZWQuICovXG4gICAgQHByb3BlcnR5KHtcbiAgICAgIHR5cGU6IEJvb2xlYW4sXG4gICAgICBjb252ZXJ0ZXI6IHtcbiAgICAgICAgLi4uZGVmYXVsdENvbnZlcnRlcixcbiAgICAgICAgLy8gV2UgbmVlZCB0byBwYXNzIGluZm9ybWF0aW9uIHRvIHRoZSBzZXR0ZXIgc28gdGhhdCB3ZSBrbm93IGl0IHdhcyBjYWxsZWQgYnkgYXR0cmlidXRlIGNoYW5nZS5cbiAgICAgICAgZnJvbUF0dHJpYnV0ZTogKHZhbHVlOiBzdHJpbmcgfCBudWxsLCB0eXBlPzogdW5rbm93bik6IENoZWNrZWRTZXR0ZXJWYWx1ZSA9PiB7XG4gICAgICAgICAgY29uc3QgcmVzdWx0ID0gZGVmYXVsdENvbnZlcnRlci5mcm9tQXR0cmlidXRlPy4odmFsdWUsIHR5cGUpO1xuICAgICAgICAgIHJldHVybiB7IHZhbHVlOiByZXN1bHQsIGF0dHJpYnV0ZTogdHJ1ZSB9IGFzIENoZWNrZWRTZXR0ZXJWYWx1ZTtcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSlcbiAgICBwdWJsaWMgc2V0IGNoZWNrZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgIGNvbnN0IGF0dHJpYnV0ZVNldHRlciA9XG4gICAgICAgIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgPyAodmFsdWUgYXMgdW5rbm93biBhcyBDaGVja2VkU2V0dGVyVmFsdWUpLmF0dHJpYnV0ZSA6IGZhbHNlO1xuICAgICAgaWYgKGF0dHJpYnV0ZVNldHRlcikge1xuICAgICAgICB2YWx1ZSA9ICh2YWx1ZSBhcyB1bmtub3duIGFzIENoZWNrZWRTZXR0ZXJWYWx1ZSkudmFsdWU7XG4gICAgICB9XG5cbiAgICAgIC8vIEFzIHNvb24gYXMgbXV0YXRpb24gd2FzIGRvbmUgbm90IGJ5IHNldHRpbmcgYXR0cmlidXRlLFxuICAgICAgLy8gd2UgbmVlZCB0byBibG9jayBzeW5jaW5nIGF0dHJpYnV0ZS5cbiAgICAgIGlmICh0aGlzLmhhc1VwZGF0ZWQgJiYgIWF0dHJpYnV0ZVNldHRlcikge1xuICAgICAgICB0aGlzLl9hdHRyaWJ1dGVNdXRhdGlvbkJsb2NrZWQgPSB0cnVlO1xuICAgICAgfVxuICAgICAgdGhpcy5fY2hlY2tlZCA9IEJvb2xlYW4odmFsdWUpO1xuICAgICAgdGhpcy51cGRhdGVGb3JtVmFsdWUoKTtcbiAgICB9XG4gICAgcHVibGljIGdldCBjaGVja2VkKCk6IGJvb2xlYW4ge1xuICAgICAgcmV0dXJuIHRoaXMuX2NoZWNrZWQ7XG4gICAgfVxuICAgIHByaXZhdGUgX2NoZWNrZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIEZvcm0gdHlwZSBvZiBlbGVtZW50LlxuICAgICAqIEBkZWZhdWx0ICdjaGVja2JveCdcbiAgICAgKi9cbiAgICBwdWJsaWMgb3ZlcnJpZGUgZ2V0IHR5cGUoKTogc3RyaW5nIHtcbiAgICAgIHJldHVybiAnY2hlY2tib3gnO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBjb25zdHJ1Y3RvcigpIHtcbiAgICAgIHN1cGVyKCk7XG4gICAgICAvKiogQGludGVybmFsICovXG4gICAgICB0aGlzLmludGVybmFscy5yb2xlID0gJ2NoZWNrYm94JztcblxuICAgICAgdGhpcy5hZGRFdmVudExpc3RlbmVyPy4oJ2NsaWNrJywgdGhpcy5faGFuZGxlVXNlckludGVyYWN0aW9uKTtcbiAgICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcj8uKCdrZXlkb3duJywgcHJldmVudFNjcm9sbE9uU3BhY2ViYXJQcmVzcyk7XG4gICAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/Ligna2V5dXAnLCB0aGlzLl9oYW5kbGVLZXlib2FyZEludGVyYWN0aW9uKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb3ZlcnJpZGUgYXR0cmlidXRlQ2hhbmdlZENhbGxiYWNrKFxuICAgICAgbmFtZTogc3RyaW5nLFxuICAgICAgb2xkOiBzdHJpbmcgfCBudWxsLFxuICAgICAgdmFsdWU6IHN0cmluZyB8IG51bGwsXG4gICAgKTogdm9pZCB7XG4gICAgICAvLyBBdHRyaWJ1dGUgc2hvdWxkIG5vdCBiZSBpbnRlcnByZXRlZCBhZnRlciBwcm9ncmFtbWF0aWMgb3IgbWFudWFsIHN0YXRlIGNoYW5nZS5cbiAgICAgIGlmIChuYW1lICE9PSAnY2hlY2tlZCcgfHwgIXRoaXMuX2F0dHJpYnV0ZU11dGF0aW9uQmxvY2tlZCkge1xuICAgICAgICBzdXBlci5hdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2sobmFtZSwgb2xkLCB2YWx1ZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSXMgY2FsbGVkIHdoZW5ldmVyIHRoZSBmb3JtIGlzIGJlaW5nIHJlc2V0LlxuICAgICAqXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgcHVibGljIG92ZXJyaWRlIGZvcm1SZXNldENhbGxiYWNrKCk6IHZvaWQge1xuICAgICAgdGhpcy5jaGVja2VkID0gdGhpcy5oYXNBdHRyaWJ1dGUoJ2NoZWNrZWQnKTtcbiAgICAgIHRoaXMuX2F0dHJpYnV0ZU11dGF0aW9uQmxvY2tlZCA9IGZhbHNlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqICBDYWxsZWQgd2hlbiB0aGUgYnJvd3NlciBpcyB0cnlpbmcgdG8gcmVzdG9yZSBlbGVtZW504oCZcyBzdGF0ZSB0byBzdGF0ZSBpbiB3aGljaCBjYXNlXG4gICAgICogIHJlYXNvbiBpcyBcInJlc3RvcmVcIiwgb3Igd2hlbiB0aGUgYnJvd3NlciBpcyB0cnlpbmcgdG8gZnVsZmlsbCBhdXRvZmlsbCBvbiBiZWhhbGYgb2ZcbiAgICAgKiAgdXNlciBpbiB3aGljaCBjYXNlIHJlYXNvbiBpcyBcImF1dG9jb21wbGV0ZVwiLlxuICAgICAqICBJbiB0aGUgY2FzZSBvZiBcInJlc3RvcmVcIiwgc3RhdGUgaXMgYSBzdHJpbmcsIEZpbGUsIG9yIEZvcm1EYXRhIG9iamVjdFxuICAgICAqICBwcmV2aW91c2x5IHNldCBhcyB0aGUgc2Vjb25kIGFyZ3VtZW50IHRvIHNldEZvcm1WYWx1ZS5cbiAgICAgKlxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHB1YmxpYyBvdmVycmlkZSBmb3JtU3RhdGVSZXN0b3JlQ2FsbGJhY2soXG4gICAgICBzdGF0ZTogRm9ybVJlc3RvcmVTdGF0ZSB8IG51bGwsXG4gICAgICBfcmVhc29uOiBGb3JtUmVzdG9yZVJlYXNvbixcbiAgICApOiB2b2lkIHtcbiAgICAgIGlmIChzdGF0ZSkge1xuICAgICAgICB0aGlzLmNoZWNrZWQgPSBzdGF0ZSA9PT0gJ3RydWUnO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFkZGl0aW9uYWwgbG9naWMgd2hpY2ggaXMgYmVpbmcgZXhlY3V0ZWQgd2hlbiB1c2VyXG4gICAgICogaW50ZXJhY3Rpb24gaGFwcGVucyBhbmQgc3RhdGUgaXMgbm90IGRpc2FibGVkLlxuICAgICAqL1xuICAgIHByb3RlY3RlZCB3aXRoVXNlckludGVyYWN0aW9uPygpOiB2b2lkO1xuXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIHVwZGF0ZUZvcm1WYWx1ZSgpOiB2b2lkIHtcbiAgICAgIGlmICh0aGlzLmNoZWNrZWQpIHtcbiAgICAgICAgdGhpcy5pbnRlcm5hbHMuc2V0Rm9ybVZhbHVlKHRoaXMudmFsdWUsIGAke3RoaXMuY2hlY2tlZH1gKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuaW50ZXJuYWxzLnNldEZvcm1WYWx1ZShudWxsKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgc2hvdWxkVmFsaWRhdGUobmFtZTogUHJvcGVydHlLZXkgfCB1bmRlZmluZWQpOiBib29sZWFuIHtcbiAgICAgIHJldHVybiBzdXBlci5zaG91bGRWYWxpZGF0ZShuYW1lKSB8fCBuYW1lID09PSAnY2hlY2tlZCcgfHwgbmFtZSA9PT0gJ3JlcXVpcmVkJztcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgdmFsaWRhdGUoKTogdm9pZCB7XG4gICAgICBzdXBlci52YWxpZGF0ZSgpO1xuICAgICAgaWYgKHRoaXMucmVxdWlyZWQgJiYgIXRoaXMuY2hlY2tlZCkge1xuICAgICAgICB0aGlzLnNldFZhbGlkaXR5RmxhZyhcbiAgICAgICAgICAndmFsdWVNaXNzaW5nJyxcbiAgICAgICAgICBpMThuQ2hlY2tib3hSZXF1aXJlZFt0aGlzLl9sYW5ndWFnZUNvbnRyb2xsZXIuY3VycmVudF0sXG4gICAgICAgICk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnJlbW92ZVZhbGlkaXR5RmxhZygndmFsdWVNaXNzaW5nJyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLyoqIE1ldGhvZCB0cmlnZ2VyZWQgb24ga2V5Ym9hcmQgdXNlciBpbnRlcmFjdGlvbiB3aXRoIGNoZWNrYm94LiAqL1xuICAgIHByaXZhdGUgX2hhbmRsZUtleWJvYXJkSW50ZXJhY3Rpb24gPSAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkID0+IHtcbiAgICAgIGlmIChldmVudC5rZXkgPT09ICcgJykge1xuICAgICAgICB0aGlzLl9oYW5kbGVVc2VySW50ZXJhY3Rpb24oKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgLyoqIE1ldGhvZCB0cmlnZ2VyZWQgb24gdXNlciBpbnRlcmFjdGlvbiB3aXRoIGNoZWNrYm94LiAqL1xuICAgIHByaXZhdGUgX2hhbmRsZVVzZXJJbnRlcmFjdGlvbiA9ICgpOiB2b2lkID0+IHtcbiAgICAgIGlmICh0aGlzLmRpc2FibGVkKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHRoaXMud2l0aFVzZXJJbnRlcmFjdGlvbj8uKCk7XG4gICAgICB0aGlzLmNoZWNrZWQgPSAhdGhpcy5jaGVja2VkO1xuICAgICAgdGhpcy5fYXR0cmlidXRlTXV0YXRpb25CbG9ja2VkID0gdHJ1ZTtcblxuICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBJbnB1dEV2ZW50KCdpbnB1dCcsIHsgY29tcG9zZWQ6IHRydWUsIGJ1YmJsZXM6IHRydWUgfSkpO1xuICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgnY2hhbmdlJywgeyBidWJibGVzOiB0cnVlIH0pKTtcbiAgICB9O1xuICB9XG5cbiAgcmV0dXJuIFNiYkZvcm1Bc3NvY2lhdGVkQ2hlY2tib3hFbGVtZW50IGFzIHVua25vd24gYXMgQ29uc3RydWN0b3I8U2JiRm9ybUFzc29jaWF0ZWRDaGVja2JveE1peGluVHlwZT4gJlxuICAgIFQ7XG59O1xuIl0sIm5hbWVzIjpbIl9hIl0sIm1hcHBpbmdzIjoiOzs7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
145
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1hc3NvY2lhdGVkLWNoZWNrYm94LW1peGluLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvY29yZS9taXhpbnMvZm9ybS1hc3NvY2lhdGVkLWNoZWNrYm94LW1peGluLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGRlZmF1bHRDb252ZXJ0ZXIsIHR5cGUgTGl0RWxlbWVudCB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBwcm9wZXJ0eSB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcblxuaW1wb3J0IHsgU2JiTGFuZ3VhZ2VDb250cm9sbGVyIH0gZnJvbSAnLi4vY29udHJvbGxlcnMuanMnO1xuaW1wb3J0IHsgaG9zdEF0dHJpYnV0ZXMgfSBmcm9tICcuLi9kZWNvcmF0b3JzLmpzJztcbmltcG9ydCB7IHByZXZlbnRTY3JvbGxPblNwYWNlYmFyUHJlc3MgfSBmcm9tICcuLi9ldmVudGluZy5qcyc7XG5pbXBvcnQgeyBpMThuQ2hlY2tib3hSZXF1aXJlZCB9IGZyb20gJy4uL2kxOG4uanMnO1xuXG5pbXBvcnQgdHlwZSB7IENvbnN0cnVjdG9yIH0gZnJvbSAnLi9jb25zdHJ1Y3Rvci5qcyc7XG5pbXBvcnQgeyBTYmJEaXNhYmxlZE1peGluLCB0eXBlIFNiYkRpc2FibGVkTWl4aW5UeXBlIH0gZnJvbSAnLi9kaXNhYmxlZC1taXhpbi5qcyc7XG5pbXBvcnQge1xuICBTYmJGb3JtQXNzb2NpYXRlZE1peGluLFxuICB0eXBlIEZvcm1SZXN0b3JlUmVhc29uLFxuICB0eXBlIEZvcm1SZXN0b3JlU3RhdGUsXG4gIHR5cGUgU2JiRm9ybUFzc29jaWF0ZWRNaXhpblR5cGUsXG59IGZyb20gJy4vZm9ybS1hc3NvY2lhdGVkLW1peGluLmpzJztcbmltcG9ydCB7IFNiYlJlcXVpcmVkTWl4aW4sIHR5cGUgU2JiUmVxdWlyZWRNaXhpblR5cGUgfSBmcm9tICcuL3JlcXVpcmVkLW1peGluLmpzJztcblxudHlwZSBDaGVja2VkU2V0dGVyVmFsdWUgPSB7IHZhbHVlOiBib29sZWFuOyBhdHRyaWJ1dGU6IGJvb2xlYW4gfTtcblxuZXhwb3J0IGRlY2xhcmUgYWJzdHJhY3QgY2xhc3MgU2JiRm9ybUFzc29jaWF0ZWRDaGVja2JveE1peGluVHlwZVxuICBleHRlbmRzIFNiYkZvcm1Bc3NvY2lhdGVkTWl4aW5UeXBlXG4gIGltcGxlbWVudHMgUGFydGlhbDxTYmJEaXNhYmxlZE1peGluVHlwZT4sIFBhcnRpYWw8U2JiUmVxdWlyZWRNaXhpblR5cGU+XG57XG4gIHB1YmxpYyBnZXQgY2hlY2tlZCgpOiBib29sZWFuO1xuICBwdWJsaWMgc2V0IGNoZWNrZWQodmFsdWU6IGJvb2xlYW4pO1xuXG4gIHB1YmxpYyBzZXQgZGlzYWJsZWQodmFsdWU6IGJvb2xlYW4pO1xuICBwdWJsaWMgZ2V0IGRpc2FibGVkKCk6IGJvb2xlYW47XG5cbiAgcHVibGljIHNldCByZXF1aXJlZCh2YWx1ZTogYm9vbGVhbik7XG4gIHB1YmxpYyBnZXQgcmVxdWlyZWQoKTogYm9vbGVhbjtcblxuICBwdWJsaWMgZm9ybVJlc2V0Q2FsbGJhY2soKTogdm9pZDtcbiAgcHVibGljIGZvcm1TdGF0ZVJlc3RvcmVDYWxsYmFjayhzdGF0ZTogRm9ybVJlc3RvcmVTdGF0ZSB8IG51bGwsIHJlYXNvbjogRm9ybVJlc3RvcmVSZWFzb24pOiB2b2lkO1xuXG4gIHByb3RlY3RlZCBpc0Rpc2FibGVkRXh0ZXJuYWxseSgpOiBib29sZWFuO1xuICBwcm90ZWN0ZWQgaXNSZXF1aXJlZEV4dGVybmFsbHkoKTogYm9vbGVhbjtcbiAgcHJvdGVjdGVkIHdpdGhVc2VySW50ZXJhY3Rpb24/KCk6IHZvaWQ7XG4gIHByb3RlY3RlZCB1cGRhdGVGb3JtVmFsdWUoKTogdm9pZDtcbn1cblxuLyoqXG4gKiBUaGUgRm9ybUFzc29jaWF0ZWRDaGVja2JveE1peGluIGVuYWJsZXMgbmF0aXZlIGZvcm0gc3VwcG9ydCBmb3IgY2hlY2tib3ggY29udHJvbHMuXG4gKlxuICogSW5oZXJpdGVkIGNsYXNzZXMgTVVTVCBpbXBsZW1lbnQgdGhlIGFyaWFDaGVja2VkIHN0YXRlIChFbGVtZW50SW50ZXJuYWxzKSB0aGVtc2VsdmVzLlxuICovXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG5leHBvcnQgY29uc3QgU2JiRm9ybUFzc29jaWF0ZWRDaGVja2JveE1peGluID0gPFQgZXh0ZW5kcyBDb25zdHJ1Y3RvcjxMaXRFbGVtZW50Pj4oXG4gIHN1cGVyQ2xhc3M6IFQsXG4pOiBDb25zdHJ1Y3RvcjxTYmJGb3JtQXNzb2NpYXRlZENoZWNrYm94TWl4aW5UeXBlPiAmIFQgPT4ge1xuICBAaG9zdEF0dHJpYnV0ZXMoe1xuICAgIHRhYmluZGV4OiAnMCcsXG4gIH0pXG4gIGFic3RyYWN0IGNsYXNzIFNiYkZvcm1Bc3NvY2lhdGVkQ2hlY2tib3hFbGVtZW50XG4gICAgZXh0ZW5kcyBTYmJEaXNhYmxlZE1peGluKFNiYlJlcXVpcmVkTWl4aW4oU2JiRm9ybUFzc29jaWF0ZWRNaXhpbihzdXBlckNsYXNzKSkpXG4gICAgaW1wbGVtZW50cyBQYXJ0aWFsPFNiYkZvcm1Bc3NvY2lhdGVkQ2hlY2tib3hNaXhpblR5cGU+XG4gIHtcbiAgICBwcml2YXRlIF9hdHRyaWJ1dGVNdXRhdGlvbkJsb2NrZWQgPSBmYWxzZTtcbiAgICBwcml2YXRlIF9sYW5ndWFnZUNvbnRyb2xsZXIgPSBuZXcgU2JiTGFuZ3VhZ2VDb250cm9sbGVyKHRoaXMpO1xuXG4gICAgLyoqIFdoZXRoZXIgdGhlIGNoZWNrYm94IGlzIGNoZWNrZWQuICovXG4gICAgQHByb3BlcnR5KHtcbiAgICAgIHR5cGU6IEJvb2xlYW4sXG4gICAgICBjb252ZXJ0ZXI6IHtcbiAgICAgICAgLi4uZGVmYXVsdENvbnZlcnRlcixcbiAgICAgICAgLy8gV2UgbmVlZCB0byBwYXNzIGluZm9ybWF0aW9uIHRvIHRoZSBzZXR0ZXIgc28gdGhhdCB3ZSBrbm93IGl0IHdhcyBjYWxsZWQgYnkgYXR0cmlidXRlIGNoYW5nZS5cbiAgICAgICAgZnJvbUF0dHJpYnV0ZTogKHZhbHVlOiBzdHJpbmcgfCBudWxsLCB0eXBlPzogdW5rbm93bik6IENoZWNrZWRTZXR0ZXJWYWx1ZSA9PiB7XG4gICAgICAgICAgY29uc3QgcmVzdWx0ID0gZGVmYXVsdENvbnZlcnRlci5mcm9tQXR0cmlidXRlPy4odmFsdWUsIHR5cGUpO1xuICAgICAgICAgIHJldHVybiB7IHZhbHVlOiByZXN1bHQsIGF0dHJpYnV0ZTogdHJ1ZSB9IGFzIENoZWNrZWRTZXR0ZXJWYWx1ZTtcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSlcbiAgICBwdWJsaWMgc2V0IGNoZWNrZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgIGNvbnN0IGF0dHJpYnV0ZVNldHRlciA9XG4gICAgICAgIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgPyAodmFsdWUgYXMgdW5rbm93biBhcyBDaGVja2VkU2V0dGVyVmFsdWUpLmF0dHJpYnV0ZSA6IGZhbHNlO1xuICAgICAgaWYgKGF0dHJpYnV0ZVNldHRlcikge1xuICAgICAgICB2YWx1ZSA9ICh2YWx1ZSBhcyB1bmtub3duIGFzIENoZWNrZWRTZXR0ZXJWYWx1ZSkudmFsdWU7XG4gICAgICB9XG5cbiAgICAgIC8vIEFzIHNvb24gYXMgbXV0YXRpb24gd2FzIGRvbmUgbm90IGJ5IHNldHRpbmcgYXR0cmlidXRlLFxuICAgICAgLy8gd2UgbmVlZCB0byBibG9jayBzeW5jaW5nIGF0dHJpYnV0ZS5cbiAgICAgIGlmICh0aGlzLmhhc1VwZGF0ZWQgJiYgIWF0dHJpYnV0ZVNldHRlcikge1xuICAgICAgICB0aGlzLl9hdHRyaWJ1dGVNdXRhdGlvbkJsb2NrZWQgPSB0cnVlO1xuICAgICAgfVxuICAgICAgdGhpcy5fY2hlY2tlZCA9IEJvb2xlYW4odmFsdWUpO1xuICAgICAgdGhpcy51cGRhdGVGb3JtVmFsdWUoKTtcbiAgICB9XG4gICAgcHVibGljIGdldCBjaGVja2VkKCk6IGJvb2xlYW4ge1xuICAgICAgcmV0dXJuIHRoaXMuX2NoZWNrZWQ7XG4gICAgfVxuICAgIHByaXZhdGUgX2NoZWNrZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIEZvcm0gdHlwZSBvZiBlbGVtZW50LlxuICAgICAqIEBkZWZhdWx0ICdjaGVja2JveCdcbiAgICAgKi9cbiAgICBwdWJsaWMgb3ZlcnJpZGUgZ2V0IHR5cGUoKTogc3RyaW5nIHtcbiAgICAgIHJldHVybiAnY2hlY2tib3gnO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBjb25zdHJ1Y3RvcigpIHtcbiAgICAgIHN1cGVyKCk7XG4gICAgICAvKiogQGludGVybmFsICovXG4gICAgICB0aGlzLmludGVybmFscy5yb2xlID0gJ2NoZWNrYm94JztcblxuICAgICAgdGhpcy5hZGRFdmVudExpc3RlbmVyPy4oJ2NsaWNrJywgdGhpcy5faGFuZGxlVXNlckludGVyYWN0aW9uKTtcbiAgICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcj8uKCdrZXlkb3duJywgcHJldmVudFNjcm9sbE9uU3BhY2ViYXJQcmVzcyk7XG4gICAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/Ligna2V5dXAnLCB0aGlzLl9oYW5kbGVLZXlib2FyZEludGVyYWN0aW9uKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb3ZlcnJpZGUgYXR0cmlidXRlQ2hhbmdlZENhbGxiYWNrKFxuICAgICAgbmFtZTogc3RyaW5nLFxuICAgICAgb2xkOiBzdHJpbmcgfCBudWxsLFxuICAgICAgdmFsdWU6IHN0cmluZyB8IG51bGwsXG4gICAgKTogdm9pZCB7XG4gICAgICAvLyBBdHRyaWJ1dGUgc2hvdWxkIG5vdCBiZSBpbnRlcnByZXRlZCBhZnRlciBwcm9ncmFtbWF0aWMgb3IgbWFudWFsIHN0YXRlIGNoYW5nZS5cbiAgICAgIGlmIChuYW1lICE9PSAnY2hlY2tlZCcgfHwgIXRoaXMuX2F0dHJpYnV0ZU11dGF0aW9uQmxvY2tlZCkge1xuICAgICAgICBzdXBlci5hdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2sobmFtZSwgb2xkLCB2YWx1ZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSXMgY2FsbGVkIHdoZW5ldmVyIHRoZSBmb3JtIGlzIGJlaW5nIHJlc2V0LlxuICAgICAqXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgcHVibGljIG92ZXJyaWRlIGZvcm1SZXNldENhbGxiYWNrKCk6IHZvaWQge1xuICAgICAgdGhpcy5jaGVja2VkID0gdGhpcy5oYXNBdHRyaWJ1dGUoJ2NoZWNrZWQnKTtcbiAgICAgIHRoaXMuX2F0dHJpYnV0ZU11dGF0aW9uQmxvY2tlZCA9IGZhbHNlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqICBDYWxsZWQgd2hlbiB0aGUgYnJvd3NlciBpcyB0cnlpbmcgdG8gcmVzdG9yZSBlbGVtZW504oCZcyBzdGF0ZSB0byBzdGF0ZSBpbiB3aGljaCBjYXNlXG4gICAgICogIHJlYXNvbiBpcyBcInJlc3RvcmVcIiwgb3Igd2hlbiB0aGUgYnJvd3NlciBpcyB0cnlpbmcgdG8gZnVsZmlsbCBhdXRvZmlsbCBvbiBiZWhhbGYgb2ZcbiAgICAgKiAgdXNlciBpbiB3aGljaCBjYXNlIHJlYXNvbiBpcyBcImF1dG9jb21wbGV0ZVwiLlxuICAgICAqICBJbiB0aGUgY2FzZSBvZiBcInJlc3RvcmVcIiwgc3RhdGUgaXMgYSBzdHJpbmcsIEZpbGUsIG9yIEZvcm1EYXRhIG9iamVjdFxuICAgICAqICBwcmV2aW91c2x5IHNldCBhcyB0aGUgc2Vjb25kIGFyZ3VtZW50IHRvIHNldEZvcm1WYWx1ZS5cbiAgICAgKlxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHB1YmxpYyBvdmVycmlkZSBmb3JtU3RhdGVSZXN0b3JlQ2FsbGJhY2soXG4gICAgICBzdGF0ZTogRm9ybVJlc3RvcmVTdGF0ZSB8IG51bGwsXG4gICAgICBfcmVhc29uOiBGb3JtUmVzdG9yZVJlYXNvbixcbiAgICApOiB2b2lkIHtcbiAgICAgIGlmIChzdGF0ZSkge1xuICAgICAgICB0aGlzLmNoZWNrZWQgPSBzdGF0ZSA9PT0gJ3RydWUnO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFkZGl0aW9uYWwgbG9naWMgd2hpY2ggaXMgYmVpbmcgZXhlY3V0ZWQgd2hlbiB1c2VyXG4gICAgICogaW50ZXJhY3Rpb24gaGFwcGVucyBhbmQgc3RhdGUgaXMgbm90IGRpc2FibGVkLlxuICAgICAqL1xuICAgIHByb3RlY3RlZCB3aXRoVXNlckludGVyYWN0aW9uPygpOiB2b2lkO1xuXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIHVwZGF0ZUZvcm1WYWx1ZSgpOiB2b2lkIHtcbiAgICAgIGlmICh0aGlzLmNoZWNrZWQpIHtcbiAgICAgICAgdGhpcy5pbnRlcm5hbHMuc2V0Rm9ybVZhbHVlKHRoaXMudmFsdWUsIGAke3RoaXMuY2hlY2tlZH1gKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuaW50ZXJuYWxzLnNldEZvcm1WYWx1ZShudWxsKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgc2hvdWxkVmFsaWRhdGUobmFtZTogUHJvcGVydHlLZXkgfCB1bmRlZmluZWQpOiBib29sZWFuIHtcbiAgICAgIHJldHVybiBzdXBlci5zaG91bGRWYWxpZGF0ZShuYW1lKSB8fCBuYW1lID09PSAnY2hlY2tlZCcgfHwgbmFtZSA9PT0gJ3JlcXVpcmVkJztcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgdmFsaWRhdGUoKTogdm9pZCB7XG4gICAgICBzdXBlci52YWxpZGF0ZSgpO1xuICAgICAgaWYgKHRoaXMucmVxdWlyZWQgJiYgIXRoaXMuY2hlY2tlZCkge1xuICAgICAgICB0aGlzLnNldFZhbGlkaXR5RmxhZyhcbiAgICAgICAgICAndmFsdWVNaXNzaW5nJyxcbiAgICAgICAgICBpMThuQ2hlY2tib3hSZXF1aXJlZFt0aGlzLl9sYW5ndWFnZUNvbnRyb2xsZXIuY3VycmVudF0sXG4gICAgICAgICk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnJlbW92ZVZhbGlkaXR5RmxhZygndmFsdWVNaXNzaW5nJyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLyoqIE1ldGhvZCB0cmlnZ2VyZWQgb24ga2V5Ym9hcmQgdXNlciBpbnRlcmFjdGlvbiB3aXRoIGNoZWNrYm94LiAqL1xuICAgIHByaXZhdGUgX2hhbmRsZUtleWJvYXJkSW50ZXJhY3Rpb24gPSAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkID0+IHtcbiAgICAgIGlmIChldmVudC5rZXkgPT09ICcgJykge1xuICAgICAgICB0aGlzLl9oYW5kbGVVc2VySW50ZXJhY3Rpb24oKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgLyoqIE1ldGhvZCB0cmlnZ2VyZWQgb24gdXNlciBpbnRlcmFjdGlvbiB3aXRoIGNoZWNrYm94LiAqL1xuICAgIHByaXZhdGUgX2hhbmRsZVVzZXJJbnRlcmFjdGlvbiA9ICgpOiB2b2lkID0+IHtcbiAgICAgIGlmICh0aGlzLmRpc2FibGVkKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHRoaXMud2l0aFVzZXJJbnRlcmFjdGlvbj8uKCk7XG4gICAgICB0aGlzLmNoZWNrZWQgPSAhdGhpcy5jaGVja2VkO1xuICAgICAgdGhpcy5fYXR0cmlidXRlTXV0YXRpb25CbG9ja2VkID0gdHJ1ZTtcblxuICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBJbnB1dEV2ZW50KCdpbnB1dCcsIHsgY29tcG9zZWQ6IHRydWUsIGJ1YmJsZXM6IHRydWUgfSkpO1xuICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgnY2hhbmdlJywgeyBidWJibGVzOiB0cnVlIH0pKTtcbiAgICB9O1xuICB9XG5cbiAgcmV0dXJuIFNiYkZvcm1Bc3NvY2lhdGVkQ2hlY2tib3hFbGVtZW50IGFzIHVua25vd24gYXMgQ29uc3RydWN0b3I8U2JiRm9ybUFzc29jaWF0ZWRDaGVja2JveE1peGluVHlwZT4gJlxuICAgIFQ7XG59O1xuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7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
@@ -83,21 +83,19 @@ const SbbFormAssociatedInputMixin = (superClass) => {
83
83
  return this.getAttribute("placeholder") ?? "";
84
84
  }
85
85
  constructor() {
86
- var _a2, _b, _c, _d, _e, _f, _g;
87
86
  super();
88
87
  this._interacted = (__runInitializers(this, _instanceExtraInitializers), false);
89
88
  this._shouldEmitChange = false;
90
89
  this._shouldTriggerSubmit = false;
91
90
  this.language = new SbbLanguageController(this);
92
91
  this.internals.role = "textbox";
93
- (_a2 = this.addEventListener) == null ? void 0 : _a2.call(this, "input", () => {
92
+ this.addEventListener?.("input", () => {
94
93
  super.value = this._cleanText(this.textContent ?? "");
95
94
  this._interacted = true;
96
95
  this._shouldEmitChange = true;
97
96
  }, { capture: true });
98
- (_b = this.addEventListener) == null ? void 0 : _b.call(this, "change", () => this._shouldEmitChange = false, { capture: true });
99
- (_c = this.addEventListener) == null ? void 0 : _c.call(this, "keydown", (event) => {
100
- var _a3;
97
+ this.addEventListener?.("change", () => this._shouldEmitChange = false, { capture: true });
98
+ this.addEventListener?.("keydown", (event) => {
101
99
  if ((event.key === "Enter" || event.key === "\n") && event.isTrusted) {
102
100
  event.preventDefault();
103
101
  event.stopImmediatePropagation();
@@ -108,7 +106,7 @@ const SbbFormAssociatedInputMixin = (superClass) => {
108
106
  if (!this.dispatchEvent(new KeyboardEvent("keydown", event))) {
109
107
  return;
110
108
  }
111
- const selectedRange = (_a3 = window.getSelection()) == null ? void 0 : _a3.getRangeAt(0);
109
+ const selectedRange = window.getSelection()?.getRangeAt(0);
112
110
  if (!selectedRange) {
113
111
  return;
114
112
  }
@@ -126,21 +124,19 @@ const SbbFormAssociatedInputMixin = (superClass) => {
126
124
  }
127
125
  }
128
126
  }, { capture: true });
129
- (_d = this.addEventListener) == null ? void 0 : _d.call(this, "keyup", (event) => {
130
- var _a3;
127
+ this.addEventListener?.("keyup", (event) => {
131
128
  if (event.key === "Enter" || event.key === "\n") {
132
129
  this._emitChangeIfNecessary();
133
130
  if (this._shouldTriggerSubmit) {
134
131
  this._shouldTriggerSubmit = false;
135
- (_a3 = this.form) == null ? void 0 : _a3.requestSubmit();
132
+ this.form?.requestSubmit();
136
133
  }
137
134
  }
138
135
  }, { capture: true });
139
- (_e = this.addEventListener) == null ? void 0 : _e.call(this, "paste", (e) => {
140
- var _a3, _b2;
136
+ this.addEventListener?.("paste", (e) => {
141
137
  e.preventDefault();
142
- const text = this._cleanText(((_a3 = e.clipboardData) == null ? void 0 : _a3.getData("text/plain")) ?? "");
143
- const selectedRange = (_b2 = window.getSelection()) == null ? void 0 : _b2.getRangeAt(0);
138
+ const text = this._cleanText(e.clipboardData?.getData("text/plain") ?? "");
139
+ const selectedRange = window.getSelection()?.getRangeAt(0);
144
140
  if (!selectedRange || !text) {
145
141
  return;
146
142
  }
@@ -149,15 +145,13 @@ const SbbFormAssociatedInputMixin = (superClass) => {
149
145
  selectedRange.setStart(selectedRange.endContainer, selectedRange.endOffset);
150
146
  this._dispatchInputEvent();
151
147
  });
152
- (_f = this.addEventListener) == null ? void 0 : _f.call(this, "focus", () => {
153
- var _a3;
148
+ this.addEventListener?.("focus", () => {
154
149
  if (sbbInputModalityDetector.mostRecentModality === "keyboard") {
155
- (_a3 = window.getSelection()) == null ? void 0 : _a3.selectAllChildren(this);
150
+ window.getSelection()?.selectAllChildren(this);
156
151
  }
157
152
  });
158
- (_g = this.addEventListener) == null ? void 0 : _g.call(this, "blur", () => {
159
- var _a3;
160
- (_a3 = window.getSelection()) == null ? void 0 : _a3.removeAllRanges();
153
+ this.addEventListener?.("blur", () => {
154
+ window.getSelection()?.removeAllRanges();
161
155
  this._emitChangeIfNecessary();
162
156
  this.scrollLeft = 0;
163
157
  }, { capture: true });
@@ -291,4 +285,4 @@ const SbbFormAssociatedInputMixin = (superClass) => {
291
285
  export {
292
286
  SbbFormAssociatedInputMixin
293
287
  };
294
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1hc3NvY2lhdGVkLWlucHV0LW1peGluLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvY29yZS9taXhpbnMvZm9ybS1hc3NvY2lhdGVkLWlucHV0LW1peGluLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGh0bWwsIGlzU2VydmVyLCB0eXBlIExpdEVsZW1lbnQsIHR5cGUgUHJvcGVydHlWYWx1ZXMgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgZXZlbnRPcHRpb25zLCBwcm9wZXJ0eSB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcblxuaW1wb3J0IHsgc2JiSW5wdXRNb2RhbGl0eURldGVjdG9yIH0gZnJvbSAnLi4vYTExeS5qcyc7XG5pbXBvcnQgeyBTYmJMYW5ndWFnZUNvbnRyb2xsZXIgfSBmcm9tICcuLi9jb250cm9sbGVycy5qcyc7XG5pbXBvcnQgeyBpc1dlYmtpdCB9IGZyb20gJy4uL2RvbS5qcyc7XG5pbXBvcnQgeyBpMThuSW5wdXRSZXF1aXJlZCB9IGZyb20gJy4uL2kxOG4uanMnO1xuXG5pbXBvcnQgdHlwZSB7IENvbnN0cnVjdG9yIH0gZnJvbSAnLi9jb25zdHJ1Y3Rvci5qcyc7XG5pbXBvcnQge1xuICB0eXBlIEZvcm1SZXN0b3JlUmVhc29uLFxuICB0eXBlIEZvcm1SZXN0b3JlU3RhdGUsXG4gIFNiYkZvcm1Bc3NvY2lhdGVkTWl4aW4sXG4gIHR5cGUgU2JiRm9ybUFzc29jaWF0ZWRNaXhpblR5cGUsXG59IGZyb20gJy4vZm9ybS1hc3NvY2lhdGVkLW1peGluLmpzJztcbmltcG9ydCB7IFNiYlJlcXVpcmVkTWl4aW4sIHR5cGUgU2JiUmVxdWlyZWRNaXhpblR5cGUgfSBmcm9tICcuL3JlcXVpcmVkLW1peGluLmpzJztcblxuZXhwb3J0IGRlY2xhcmUgYWJzdHJhY3QgY2xhc3MgU2JiRm9ybUFzc29jaWF0ZWRJbnB1dE1peGluVHlwZVxuICBleHRlbmRzIFNiYkZvcm1Bc3NvY2lhdGVkTWl4aW5UeXBlXG4gIGltcGxlbWVudHMgUGFydGlhbDxTYmJSZXF1aXJlZE1peGluVHlwZT5cbntcbiAgcHVibGljIHNldCBkaXNhYmxlZCh2YWx1ZTogYm9vbGVhbik7XG4gIHB1YmxpYyBnZXQgZGlzYWJsZWQoKTogYm9vbGVhbjtcblxuICBwdWJsaWMgc2V0IHJlYWRPbmx5KHZhbHVlOiBib29sZWFuKTtcbiAgcHVibGljIGdldCByZWFkT25seSgpOiBib29sZWFuO1xuXG4gIHB1YmxpYyBzZXQgcmVxdWlyZWQodmFsdWU6IGJvb2xlYW4pO1xuICBwdWJsaWMgZ2V0IHJlcXVpcmVkKCk6IGJvb2xlYW47XG5cbiAgcHVibGljIHNldCBwbGFjZWhvbGRlcih2YWx1ZTogc3RyaW5nKTtcbiAgcHVibGljIGdldCBwbGFjZWhvbGRlcigpOiBzdHJpbmc7XG5cbiAgcHVibGljIGZvcm1SZXNldENhbGxiYWNrKCk6IHZvaWQ7XG4gIHB1YmxpYyBmb3JtU3RhdGVSZXN0b3JlQ2FsbGJhY2soc3RhdGU6IEZvcm1SZXN0b3JlU3RhdGUgfCBudWxsLCByZWFzb246IEZvcm1SZXN0b3JlUmVhc29uKTogdm9pZDtcblxuICBwcm90ZWN0ZWQgd2l0aFVzZXJJbnRlcmFjdGlvbj8oKTogdm9pZDtcbiAgcHJvdGVjdGVkIHVwZGF0ZUZvcm1WYWx1ZSgpOiB2b2lkO1xuICBwcm90ZWN0ZWQgbGFuZ3VhZ2U6IFNiYkxhbmd1YWdlQ29udHJvbGxlcjtcbn1cblxuY29uc3QgY2hlY2tQbGFpbnRleHRPbmx5U3VwcG9ydCA9ICgpOiBib29sZWFuID0+IHtcbiAgaWYgKGlzU2VydmVyKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgY29uc3QgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gIGRpdi5zZXRBdHRyaWJ1dGUoJ2NvbnRlbnRlZGl0YWJsZScsICdQTEFJTlRFWFQtT05MWScpO1xuXG4gIC8vIElmIHBsYWludGV4dC1vbmx5IGlzIHN1cHBvcnRlZCwgdGhlIGF0dHJpYnV0ZSB2YWx1ZSBpc1xuICAvLyByZXR1cm5lZCBhcyBsb3dlci1jYXNlIGZyb20gdGhlIHByb3BlcnR5IGFjY2Vzcy5cbiAgcmV0dXJuIGRpdi5jb250ZW50RWRpdGFibGUgPT09ICdwbGFpbnRleHQtb25seSc7XG59O1xuY29uc3QgcGxhaW50ZXh0T25seVN1cHBvcnRlZCA9IGNoZWNrUGxhaW50ZXh0T25seVN1cHBvcnQoKTtcblxuLyoqXG4gKiBUaGUgU2JiRm9ybUFzc29jaWF0ZWRJbnB1dE1peGluIGVuYWJsZXMgbmF0aXZlIGZvcm0gc3VwcG9ydCBmb3IgdGV4dCBpbnB1dCBjb250cm9scy5cbiAqL1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuZXhwb3J0IGNvbnN0IFNiYkZvcm1Bc3NvY2lhdGVkSW5wdXRNaXhpbiA9IDxUIGV4dGVuZHMgQ29uc3RydWN0b3I8TGl0RWxlbWVudD4+KFxuICBzdXBlckNsYXNzOiBULFxuKTogQ29uc3RydWN0b3I8U2JiRm9ybUFzc29jaWF0ZWRJbnB1dE1peGluVHlwZT4gJiBUID0+IHtcbiAgYWJzdHJhY3QgY2xhc3MgU2JiRm9ybUFzc29jaWF0ZWRJbnB1dEVsZW1lbnRcbiAgICBleHRlbmRzIFNiYlJlcXVpcmVkTWl4aW4oU2JiRm9ybUFzc29jaWF0ZWRNaXhpbihzdXBlckNsYXNzKSlcbiAgICBpbXBsZW1lbnRzIFBhcnRpYWw8U2JiRm9ybUFzc29jaWF0ZWRJbnB1dE1peGluVHlwZT5cbiAge1xuICAgIC8qKlxuICAgICAqIFRoZSBuYXRpdmUgdGV4dCBpbnB1dCBjaGFuZ2VzIHRoZSB2YWx1ZSBwcm9wZXJ0eSB3aGVuIHRoZSB2YWx1ZSBhdHRyaWJ1dGUgaXNcbiAgICAgKiBjaGFuZ2VkIHVuZGVyIHRoZSBjb25kaXRpb24gdGhhdCBubyBpbnB1dCBldmVudCBoYXMgb2NjdXJlZCBzaW5jZSBjcmVhdGlvblxuICAgICAqIG9yIHRoZSBsYXN0IGZvcm0gcmVzZXQuXG4gICAgICovXG4gICAgcHJpdmF0ZSBfaW50ZXJhY3RlZCA9IGZhbHNlO1xuICAgIC8qKlxuICAgICAqIEFuIGVsZW1lbnQgd2l0aCBjb250ZW50ZWRpdGFibGUgd2lsbCBub3QgZW1pdCBhIGNoYW5nZSBldmVudC4gVG8gYWNoaWV2ZSBwYXJpdHlcbiAgICAgKiB3aXRoIGEgbmF0aXZlIHRleHQgaW5wdXQsIHdlIG5lZWQgdG8gdHJhY2sgd2hldGhlciBhIGNoYW5nZSBldmVudCBzaG91bGQgYmVcbiAgICAgKiBlbWl0dGVkLlxuICAgICAqL1xuICAgIHByaXZhdGUgX3Nob3VsZEVtaXRDaGFuZ2UgPSBmYWxzZTtcbiAgICAvKipcbiAgICAgKiBBIG5hdGl2ZSB0ZXh0IGlucHV0IGF0dGVtcHRzIHRvIHN1Ym1pdCB0aGUgZm9ybSB3aGVuIHByZXNzaW5nIEVudGVyLlxuICAgICAqIFRoaXMgY2FuIGJlIHByZXZlbnRlZCBieSBjYWxsaW5nIHByZXZlbnREZWZhdWx0IG9uIHRoZSBrZXlkb3duIGV2ZW50LlxuICAgICAqIFdlIHRyYWNrIHdoZXRoZXIgdG8gcmVxdWVzdCBzdWJtaXQsIHdoaWNoIHNob3VsZCBvY2N1ciBiZWZvcmUgdGhlIGtleXVwXG4gICAgICogZXZlbnQuXG4gICAgICovXG4gICAgcHJpdmF0ZSBfc2hvdWxkVHJpZ2dlclN1Ym1pdCA9IGZhbHNlO1xuXG4gICAgcHJvdGVjdGVkIGxhbmd1YWdlID0gbmV3IFNiYkxhbmd1YWdlQ29udHJvbGxlcih0aGlzKTtcblxuICAgIC8qKlxuICAgICAqIEZvcm0gdHlwZSBvZiBlbGVtZW50LlxuICAgICAqIEBkZWZhdWx0ICd0ZXh0J1xuICAgICAqL1xuICAgIHB1YmxpYyBvdmVycmlkZSBnZXQgdHlwZSgpOiBzdHJpbmcge1xuICAgICAgcmV0dXJuICd0ZXh0JztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGUgdGV4dCB2YWx1ZSBvZiB0aGUgaW5wdXQgZWxlbWVudC5cbiAgICAgKi9cbiAgICBwdWJsaWMgb3ZlcnJpZGUgc2V0IHZhbHVlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgIHN1cGVyLnZhbHVlID0gdGhpcy5fY2xlYW5UZXh0KHZhbHVlKTtcbiAgICAgIGlmICh0aGlzLmhhc1VwZGF0ZWQpIHtcbiAgICAgICAgdGhpcy5pbm5lckhUTUwgPSBzdXBlci52YWx1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcHVibGljIG92ZXJyaWRlIGdldCB2YWx1ZSgpOiBzdHJpbmcge1xuICAgICAgcmV0dXJuIHN1cGVyLnZhbHVlID8/ICcnO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdGhlIGNvbXBvbmVudCBpcyByZWFkb25seS5cbiAgICAgKiBAYXR0ciByZWFkb25seVxuICAgICAqIEBkZWZhdWx0IGZhbHNlXG4gICAgICovXG4gICAgQHByb3BlcnR5KHsgdHlwZTogQm9vbGVhbiB9KVxuICAgIHB1YmxpYyBzZXQgcmVhZE9ubHkodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgIHRoaXMudG9nZ2xlQXR0cmlidXRlKCdyZWFkb25seScsICEhdmFsdWUpO1xuICAgICAgdGhpcy5pbnRlcm5hbHMuYXJpYVJlYWRPbmx5ID0gdmFsdWUgPyAndHJ1ZScgOiBudWxsO1xuICAgICAgdGhpcy5fdXBkYXRlQ29udGVudGVkaXRhYmxlKCk7XG4gICAgfVxuICAgIHB1YmxpYyBnZXQgcmVhZE9ubHkoKTogYm9vbGVhbiB7XG4gICAgICByZXR1cm4gdGhpcy5oYXNBdHRyaWJ1dGUoJ3JlYWRvbmx5Jyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogV2hldGhlciB0aGUgY29tcG9uZW50IGlzIGRpc2FibGVkLlxuICAgICAqIEBhdHRyIGRpc2FibGVkXG4gICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgKi9cbiAgICBAcHJvcGVydHkoeyB0eXBlOiBCb29sZWFuIH0pXG4gICAgcHVibGljIHNldCBkaXNhYmxlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgdGhpcy50b2dnbGVBdHRyaWJ1dGUoJ2Rpc2FibGVkJywgISF2YWx1ZSk7XG4gICAgICB0aGlzLmludGVybmFscy5hcmlhRGlzYWJsZWQgPSB2YWx1ZSA/ICd0cnVlJyA6IG51bGw7XG4gICAgICB0aGlzLl91cGRhdGVDb250ZW50ZWRpdGFibGUoKTtcbiAgICB9XG4gICAgcHVibGljIGdldCBkaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICAgIHJldHVybiB0aGlzLmhhc0F0dHJpYnV0ZSgnZGlzYWJsZWQnKTtcbiAgICB9XG5cbiAgICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6IGZhbHNlIH0pXG4gICAgcHVibGljIHNldCBwbGFjZWhvbGRlcih2YWx1ZTogc3RyaW5nKSB7XG4gICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgdGhpcy5zZXRBdHRyaWJ1dGUoJ3BsYWNlaG9sZGVyJywgdmFsdWUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5yZW1vdmVBdHRyaWJ1dGUoJ3BsYWNlaG9sZGVyJyk7XG4gICAgICB9XG4gICAgICB0aGlzLmludGVybmFscy5hcmlhUGxhY2Vob2xkZXIgPSB2YWx1ZSA/IHZhbHVlIDogbnVsbDtcbiAgICB9XG4gICAgcHVibGljIGdldCBwbGFjZWhvbGRlcigpOiBzdHJpbmcge1xuICAgICAgcmV0dXJuIHRoaXMuZ2V0QXR0cmlidXRlKCdwbGFjZWhvbGRlcicpID8/ICcnO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBjb25zdHJ1Y3RvcigpIHtcbiAgICAgIHN1cGVyKCk7XG4gICAgICAvKiogQGludGVybmFsICovXG4gICAgICB0aGlzLmludGVybmFscy5yb2xlID0gJ3RleHRib3gnO1xuICAgICAgLy8gV2UgcHJpbWFyaWx5IHVzZSBjYXB0dXJlIGV2ZW50IGxpc3RlbmVycywgYXMgd2Ugd2FudFxuICAgICAgLy8gb3VyIGxpc3RlbmVycyB0byBvY2N1ciBiZWZvcmUgY29uc3VtZXIgZXZlbnQgbGlzdGVuZXJzLlxuICAgICAgdGhpcy5hZGRFdmVudExpc3RlbmVyPy4oXG4gICAgICAgICdpbnB1dCcsXG4gICAgICAgICgpID0+IHtcbiAgICAgICAgICBzdXBlci52YWx1ZSA9IHRoaXMuX2NsZWFuVGV4dCh0aGlzLnRleHRDb250ZW50ID8/ICcnKTtcbiAgICAgICAgICB0aGlzLl9pbnRlcmFjdGVkID0gdHJ1ZTtcbiAgICAgICAgICB0aGlzLl9zaG91bGRFbWl0Q2hhbmdlID0gdHJ1ZTtcbiAgICAgICAgfSxcbiAgICAgICAgeyBjYXB0dXJlOiB0cnVlIH0sXG4gICAgICApO1xuICAgICAgdGhpcy5hZGRFdmVudExpc3RlbmVyPy4oJ2NoYW5nZScsICgpID0+ICh0aGlzLl9zaG91bGRFbWl0Q2hhbmdlID0gZmFsc2UpLCB7IGNhcHR1cmU6IHRydWUgfSk7XG4gICAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/LihcbiAgICAgICAgJ2tleWRvd24nLFxuICAgICAgICAoZXZlbnQpID0+IHtcbiAgICAgICAgICAvLyBXZSBwcmV2ZW50IHJlY3Vyc2l2ZSBldmVudHMgYnkgY2hlY2tpbmcgdGhlIG9yaWdpbmFsIGV2ZW50IGZvciBpc1RydXN0ZWRcbiAgICAgICAgICAvLyB3aGljaCBpcyBmYWxzZSBmb3IgbWFudWFsbHkgZGlzcGF0Y2hlZCBldmVudHMgKHdoaWNoIHdlIGRpc3BhdGNoIGJlbG93KS5cbiAgICAgICAgICBpZiAoKGV2ZW50LmtleSA9PT0gJ0VudGVyJyB8fCBldmVudC5rZXkgPT09ICdcXG4nKSAmJiBldmVudC5pc1RydXN0ZWQpIHtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgIHRoaXMuX3Nob3VsZFRyaWdnZXJTdWJtaXQgPSB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEtleWJvYXJkRXZlbnQoJ2tleWRvd24nLCBldmVudCkpO1xuICAgICAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgICAgICBpc1dlYmtpdCAmJlxuICAgICAgICAgICAgdGhpcy52YWx1ZSAmJlxuICAgICAgICAgICAgKGV2ZW50LmtleSA9PT0gJ0JhY2tzcGFjZScgfHwgZXZlbnQua2V5ID09PSAnRGVsZXRlJykgJiZcbiAgICAgICAgICAgIGV2ZW50LmlzVHJ1c3RlZFxuICAgICAgICAgICkge1xuICAgICAgICAgICAgLy8gSW4gV2Via2l0IHByZXNzaW5nIEJhY2tzcGFjZSBvciBEZWxldGUgY29tcGxldGVseSByZW1vdmVzIGFsbCB0aGUgY29udGVudFxuICAgICAgICAgICAgLy8gaWYgY29udGVudGVkaXRhYmxlIGlzIHNldCBvbiBhIHdlYiBjb21wb25lbnQgaG9zdC5cbiAgICAgICAgICAgIC8vIFdlIGhhdmUgdG8gcmVwbGljYXRlIHRoZSBub3JtYWwgZGVsZXRlIGJlaGF2aW9yLlxuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO1xuXG4gICAgICAgICAgICBpZiAoIXRoaXMuZGlzcGF0Y2hFdmVudChuZXcgS2V5Ym9hcmRFdmVudCgna2V5ZG93bicsIGV2ZW50KSkpIHtcbiAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBzZWxlY3RlZFJhbmdlID0gd2luZG93LmdldFNlbGVjdGlvbigpPy5nZXRSYW5nZUF0KDApO1xuICAgICAgICAgICAgaWYgKCFzZWxlY3RlZFJhbmdlKSB7XG4gICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHNlbGVjdGVkUmFuZ2Uuc3RhcnRPZmZzZXQgIT09IHNlbGVjdGVkUmFuZ2UuZW5kT2Zmc2V0KSB7XG4gICAgICAgICAgICAgIC8vIElmIGEgdGV4dCByYW5nZSBpcyBzZWxlY3RlZCwgdGhlbiBkZWxldGUgdGhpcyByYW5nZVxuICAgICAgICAgICAgICBzZWxlY3RlZFJhbmdlLmRlbGV0ZUNvbnRlbnRzKCk7XG4gICAgICAgICAgICAgIHRoaXMuX2Rpc3BhdGNoSW5wdXRFdmVudCgpO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChldmVudC5rZXkgPT09ICdCYWNrc3BhY2UnICYmIHNlbGVjdGVkUmFuZ2Uuc3RhcnRPZmZzZXQgPiAwKSB7XG4gICAgICAgICAgICAgIC8vIFdoZW4gcHJlc3NpbmcgQmFja3NwYWNlLCB3ZSBzZWxlY3QgdGhlIHByZXZpb3VzIGNoYXJhY3RlciBmcm9tXG4gICAgICAgICAgICAgIC8vIHRoZSBjdXJyZW50IGN1cnNvciBwb3NpdGlvbiBhbmQgZGVsZXRlIGl0LlxuICAgICAgICAgICAgICBzZWxlY3RlZFJhbmdlLnNldFN0YXJ0KHNlbGVjdGVkUmFuZ2Uuc3RhcnRDb250YWluZXIsIHNlbGVjdGVkUmFuZ2Uuc3RhcnRPZmZzZXQgLSAxKTtcbiAgICAgICAgICAgICAgc2VsZWN0ZWRSYW5nZS5kZWxldGVDb250ZW50cygpO1xuICAgICAgICAgICAgICB0aGlzLl9kaXNwYXRjaElucHV0RXZlbnQoKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoZXZlbnQua2V5ID09PSAnRGVsZXRlJyAmJiBzZWxlY3RlZFJhbmdlLmVuZE9mZnNldCA8IHRoaXMudmFsdWUubGVuZ3RoKSB7XG4gICAgICAgICAgICAgIC8vIFdoZW4gcHJlc3NpbmcgRGVsZXRlLCB3ZSBzZWxlY3QgdGhlIG5leHQgY2hhcmFjdGVyIGZyb21cbiAgICAgICAgICAgICAgLy8gdGhlIGN1cnJlbnQgY3Vyc29yIHBvc2l0aW9uIGFuZCBkZWxldGUgaXQuXG4gICAgICAgICAgICAgIHNlbGVjdGVkUmFuZ2Uuc2V0RW5kKHNlbGVjdGVkUmFuZ2UuZW5kQ29udGFpbmVyLCBzZWxlY3RlZFJhbmdlLmVuZE9mZnNldCArIDEpO1xuICAgICAgICAgICAgICBzZWxlY3RlZFJhbmdlLmRlbGV0ZUNvbnRlbnRzKCk7XG4gICAgICAgICAgICAgIHRoaXMuX2Rpc3BhdGNoSW5wdXRFdmVudCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgeyBjYXB0dXJlOiB0cnVlIH0sXG4gICAgICApO1xuICAgICAgdGhpcy5hZGRFdmVudExpc3RlbmVyPy4oXG4gICAgICAgICdrZXl1cCcsXG4gICAgICAgIChldmVudCkgPT4ge1xuICAgICAgICAgIGlmIChldmVudC5rZXkgPT09ICdFbnRlcicgfHwgZXZlbnQua2V5ID09PSAnXFxuJykge1xuICAgICAgICAgICAgdGhpcy5fZW1pdENoYW5nZUlmTmVjZXNzYXJ5KCk7XG4gICAgICAgICAgICBpZiAodGhpcy5fc2hvdWxkVHJpZ2dlclN1Ym1pdCkge1xuICAgICAgICAgICAgICB0aGlzLl9zaG91bGRUcmlnZ2VyU3VibWl0ID0gZmFsc2U7XG4gICAgICAgICAgICAgIHRoaXMuZm9ybT8ucmVxdWVzdFN1Ym1pdCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgeyBjYXB0dXJlOiB0cnVlIH0sXG4gICAgICApO1xuICAgICAgLy8gY29udGVudGVkaXRhYmxlIGFsbG93cyBwYXN0aW5nIHJpY2ggY29udGVudCBpbnRvIGl0cyBob3N0LlxuICAgICAgLy8gV2UgcHJldmVudCB0aGlzIGJ5IGxpc3RlbmluZyB0byB0aGUgcGFzdGUgZXZlbnQgYW5kXG4gICAgICAvLyBleHRyYWN0aW5nIHRoZSBwbGFpbiB0ZXh0IGZyb20gdGhlIHBhc3RlZCBjb250ZW50XG4gICAgICAvLyBhbmQgaW5zZXJ0aW5nIGl0IGludG8gdGhlIHNlbGVjdGVkIHJhbmdlIChjdXJzb3IgcG9zaXRpb25cbiAgICAgIC8vIG9yIHNlbGVjdGlvbikuXG4gICAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/LigncGFzdGUnLCAoZSkgPT4ge1xuICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGNvbnN0IHRleHQgPSB0aGlzLl9jbGVhblRleHQoZS5jbGlwYm9hcmREYXRhPy5nZXREYXRhKCd0ZXh0L3BsYWluJykgPz8gJycpO1xuICAgICAgICBjb25zdCBzZWxlY3RlZFJhbmdlID0gd2luZG93LmdldFNlbGVjdGlvbigpPy5nZXRSYW5nZUF0KDApO1xuICAgICAgICBpZiAoIXNlbGVjdGVkUmFuZ2UgfHwgIXRleHQpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBzZWxlY3RlZFJhbmdlLmRlbGV0ZUNvbnRlbnRzKCk7XG4gICAgICAgIHNlbGVjdGVkUmFuZ2UuaW5zZXJ0Tm9kZShkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSh0ZXh0KSk7XG4gICAgICAgIHNlbGVjdGVkUmFuZ2Uuc2V0U3RhcnQoc2VsZWN0ZWRSYW5nZS5lbmRDb250YWluZXIsIHNlbGVjdGVkUmFuZ2UuZW5kT2Zmc2V0KTtcbiAgICAgICAgdGhpcy5fZGlzcGF0Y2hJbnB1dEV2ZW50KCk7XG4gICAgICB9KTtcbiAgICAgIC8vIFdoZW4gZm9jdXNpbmcgYSB0ZXh0IGlucHV0IHZpYSBrZXlib2FyZCwgdGhlIHRleHQgY29udGVudCBzaG91bGQgYmUgc2VsZWN0ZWQuXG4gICAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/LignZm9jdXMnLCAoKSA9PiB7XG4gICAgICAgIGlmIChzYmJJbnB1dE1vZGFsaXR5RGV0ZWN0b3IubW9zdFJlY2VudE1vZGFsaXR5ID09PSAna2V5Ym9hcmQnKSB7XG4gICAgICAgICAgd2luZG93LmdldFNlbGVjdGlvbigpPy5zZWxlY3RBbGxDaGlsZHJlbih0aGlzKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICAvLyBPbiBibHVyIHRoZSBuYXRpdmUgdGV4dCBpbnB1dCBzY3JvbGxzIHRoZSB0ZXh0IHRvIHRoZSBzdGFydCBvZiB0aGUgdGV4dC5cbiAgICAgIC8vIFdlIG1pbWljayB0aGF0IGJ5IHJlc2V0dGluZyB0aGUgc2Nyb2xsIHBvc2l0aW9uLlxuICAgICAgLy8gV2UgYWxzbyB1bnNldCBhbnkgc2VsZWN0aW9uIHRvIGFsaWduIHdpdGggdGhlIG5hdGl2ZSB0ZXh0IGlucHV0LlxuICAgICAgdGhpcy5hZGRFdmVudExpc3RlbmVyPy4oXG4gICAgICAgICdibHVyJyxcbiAgICAgICAgKCkgPT4ge1xuICAgICAgICAgIHdpbmRvdy5nZXRTZWxlY3Rpb24oKT8ucmVtb3ZlQWxsUmFuZ2VzKCk7XG4gICAgICAgICAgdGhpcy5fZW1pdENoYW5nZUlmTmVjZXNzYXJ5KCk7XG4gICAgICAgICAgdGhpcy5zY3JvbGxMZWZ0ID0gMDtcbiAgICAgICAgfSxcbiAgICAgICAgeyBjYXB0dXJlOiB0cnVlIH0sXG4gICAgICApO1xuICAgIH1cblxuICAgIHB1YmxpYyBvdmVycmlkZSBjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICAgIHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgICB0aGlzLmludGVybmFscy5hcmlhTXVsdGlMaW5lID0gJ2ZhbHNlJztcbiAgICAgIHRoaXMuX3VwZGF0ZUNvbnRlbnRlZGl0YWJsZSgpO1xuXG4gICAgICAvLyBXZSB3YW50IHRvIHJlcGxhY2UgYW55IGNvbnRlbnQgYnkganVzdCB0aGUgdGV4dCBjb250ZW50LlxuICAgICAgdGhpcy5pbm5lckhUTUwgPSB0aGlzLnZhbHVlO1xuICAgIH1cblxuICAgIHB1YmxpYyBvdmVycmlkZSBmb2N1cyhvcHRpb25zPzogRm9jdXNPcHRpb25zKTogdm9pZCB7XG4gICAgICBzdXBlci5mb2N1cyhvcHRpb25zKTtcbiAgICAgIC8vIEJ5IGRlZmF1bHQsIHdoZW4gY2FsbGluZyBmb2N1cyBvbiBhbiBpbnB1dCBlbGVtZW50LCB0aGUgY3Vyc29yIGlzIHBsYWNlZFxuICAgICAgLy8gYXQgdGhlIGVuZCBvZiB0aGUgaW5wdXQgdGV4dC4gSG93ZXZlciwgd2l0aCBjb250ZW50ZWRpdGFibGUsIHRoZSBjdXJzb3JcbiAgICAgIC8vIGlzIHBsYWNlZCBhdCB0aGUgYmVnaW5uaW5nLCBzbyB3ZSBtb3ZlIGl0IHRvIHRoZSBlbmQsIGlmIHRoYXQgaXMgdGhlIGNhc2UuXG4gICAgICBpZiAoIWlzU2VydmVyICYmICF0aGlzLmRpc2FibGVkICYmICF0aGlzLnJlYWRPbmx5ICYmIHRoaXMudmFsdWUpIHtcbiAgICAgICAgY29uc3Qgc2VsZWN0aW9uID0gd2luZG93LmdldFNlbGVjdGlvbigpO1xuICAgICAgICBpZiAoIXNlbGVjdGlvbikge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBsZXQgcmFuZ2UgPSBzZWxlY3Rpb24ucmFuZ2VDb3VudCA+IDAgPyBzZWxlY3Rpb24uZ2V0UmFuZ2VBdCgwKSA6IG51bGw7XG4gICAgICAgIGlmIChyYW5nZSAmJiByYW5nZS5zdGFydE9mZnNldCAhPT0gMCkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHJhbmdlID0gZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKTtcbiAgICAgICAgcmFuZ2Uuc2V0U3RhcnQodGhpcy5maXJzdENoaWxkISwgdGhpcy50ZXh0Q29udGVudCEubGVuZ3RoKTtcbiAgICAgICAgcmFuZ2UuY29sbGFwc2UodHJ1ZSk7XG4gICAgICAgIHNlbGVjdGlvbi5yZW1vdmVBbGxSYW5nZXMoKTtcbiAgICAgICAgc2VsZWN0aW9uLmFkZFJhbmdlKHJhbmdlKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgb3ZlcnJpZGUgYXR0cmlidXRlQ2hhbmdlZENhbGxiYWNrKFxuICAgICAgbmFtZTogc3RyaW5nLFxuICAgICAgb2xkOiBzdHJpbmcgfCBudWxsLFxuICAgICAgdmFsdWU6IHN0cmluZyB8IG51bGwsXG4gICAgKTogdm9pZCB7XG4gICAgICBpZiAobmFtZSAhPT0gJ3ZhbHVlJyB8fCAhdGhpcy5faW50ZXJhY3RlZCkge1xuICAgICAgICBzdXBlci5hdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2sobmFtZSwgb2xkLCB2YWx1ZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSXMgY2FsbGVkIHdoZW5ldmVyIHRoZSBmb3JtIGlzIGJlaW5nIHJlc2V0LlxuICAgICAqXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgcHVibGljIG92ZXJyaWRlIGZvcm1SZXNldENhbGxiYWNrKCk6IHZvaWQge1xuICAgICAgdGhpcy5faW50ZXJhY3RlZCA9IGZhbHNlO1xuICAgICAgdGhpcy52YWx1ZSA9IHRoaXMuZ2V0QXR0cmlidXRlKCd2YWx1ZScpID8/ICcnO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqICBDYWxsZWQgd2hlbiB0aGUgYnJvd3NlciBpcyB0cnlpbmcgdG8gcmVzdG9yZSBlbGVtZW504oCZcyBzdGF0ZSB0byBzdGF0ZSBpbiB3aGljaCBjYXNlXG4gICAgICogIHJlYXNvbiBpcyBcInJlc3RvcmVcIiwgb3Igd2hlbiB0aGUgYnJvd3NlciBpcyB0cnlpbmcgdG8gZnVsZmlsbCBhdXRvZmlsbCBvbiBiZWhhbGYgb2ZcbiAgICAgKiAgdXNlciBpbiB3aGljaCBjYXNlIHJlYXNvbiBpcyBcImF1dG9jb21wbGV0ZVwiLlxuICAgICAqICBJbiB0aGUgY2FzZSBvZiBcInJlc3RvcmVcIiwgc3RhdGUgaXMgYSBzdHJpbmcsIEZpbGUsIG9yIEZvcm1EYXRhIG9iamVjdFxuICAgICAqICBwcmV2aW91c2x5IHNldCBhcyB0aGUgc2Vjb25kIGFyZ3VtZW50IHRvIHNldEZvcm1WYWx1ZS5cbiAgICAgKlxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHB1YmxpYyBvdmVycmlkZSBmb3JtU3RhdGVSZXN0b3JlQ2FsbGJhY2soXG4gICAgICBzdGF0ZTogRm9ybVJlc3RvcmVTdGF0ZSB8IG51bGwsXG4gICAgICBfcmVhc29uOiBGb3JtUmVzdG9yZVJlYXNvbixcbiAgICApOiB2b2lkIHtcbiAgICAgIGlmIChzdGF0ZSAmJiB0eXBlb2Ygc3RhdGUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHRoaXMudmFsdWUgPSBzdGF0ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgYXN5bmMgZmlyc3RVcGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzOiBQcm9wZXJ0eVZhbHVlczx0aGlzPik6IFByb21pc2U8dm9pZD4ge1xuICAgICAgc3VwZXIuZmlyc3RVcGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzKTtcblxuICAgICAgLy8gSWYgdGhlIHZhbHVlIHdhcyBhc3NpZ25lZCBiZWZvcmUgZmlyc3RVcGRhdGUsIHdlIGhhdmUgdG9cbiAgICAgIC8vIHdyaXRlIGl0IHRoZSBkb2N1bWVudCB0byBiZSB2aXN1YWxseSBzZWVuXG4gICAgICBpZiAodGhpcy52YWx1ZSAmJiAhdGhpcy5pbm5lckhUTUwubGVuZ3RoKSB7XG4gICAgICAgIHRoaXMuaW5uZXJIVE1MID0gdGhpcy52YWx1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgdXBkYXRlRm9ybVZhbHVlKCk6IHZvaWQge1xuICAgICAgdGhpcy5pbnRlcm5hbHMuc2V0Rm9ybVZhbHVlKHRoaXMudmFsdWUsIHRoaXMudmFsdWUpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBvdmVycmlkZSBzaG91bGRWYWxpZGF0ZShuYW1lOiBQcm9wZXJ0eUtleSB8IHVuZGVmaW5lZCk6IGJvb2xlYW4ge1xuICAgICAgcmV0dXJuIHN1cGVyLnNob3VsZFZhbGlkYXRlKG5hbWUpIHx8IG5hbWUgPT09ICd2YWx1ZScgfHwgbmFtZSA9PT0gJ3JlcXVpcmVkJztcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgdmFsaWRhdGUoKTogdm9pZCB7XG4gICAgICBzdXBlci52YWxpZGF0ZSgpO1xuICAgICAgaWYgKHRoaXMucmVxdWlyZWQgJiYgIXRoaXMudmFsdWUpIHtcbiAgICAgICAgdGhpcy5zZXRWYWxpZGl0eUZsYWcoJ3ZhbHVlTWlzc2luZycsIGkxOG5JbnB1dFJlcXVpcmVkW3RoaXMubGFuZ3VhZ2UuY3VycmVudF0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5yZW1vdmVWYWxpZGl0eUZsYWcoJ3ZhbHVlTWlzc2luZycpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgX2NsZWFuVGV4dCh2YWx1ZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgIC8vIFRoZSBuYXRpdmUgdGV4dCBpbnB1dCByZW1vdmVzIGFsbCBuZXdsaW5lIGNoYXJhY3RlcnMgaWYgcGFzc2VkIHRvIHRoZSB2YWx1ZSBwcm9wZXJ0eVxuICAgICAgcmV0dXJuIHZhbHVlID09PSBudWxsID8gJycgOiBgJHt2YWx1ZX1gLnJlcGxhY2UoL1tcXG5cXHJdKy9nLCAnJyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfZGlzcGF0Y2hJbnB1dEV2ZW50KCk6IHZvaWQge1xuICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBJbnB1dEV2ZW50KCdpbnB1dCcsIHsgYnViYmxlczogdHJ1ZSwgY29tcG9zZWQ6IHRydWUgfSkpO1xuICAgIH1cblxuICAgIEBldmVudE9wdGlvbnMoeyBwYXNzaXZlOiB0cnVlIH0pXG4gICAgcHJpdmF0ZSBfY2xlYW5DaGlsZHJlbigpOiB2b2lkIHtcbiAgICAgIGlmICh0aGlzLmNoaWxkRWxlbWVudENvdW50KSB7XG4gICAgICAgIGZvciAoY29uc3QgZWxlbWVudCBvZiB0aGlzLmNoaWxkcmVuKSB7XG4gICAgICAgICAgZWxlbWVudC5yZW1vdmUoKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgX3VwZGF0ZUNvbnRlbnRlZGl0YWJsZSgpOiB2b2lkIHtcbiAgICAgIGlmICghaXNTZXJ2ZXIgJiYgdGhpcy5pc0Nvbm5lY3RlZCkge1xuICAgICAgICAvLyBUT0RPKDIwMjYpOiBGaXJlZm94IHN1cHBvcnRzIHBsYWludGV4dC1vbmx5IHNpbmNlIHZlcnNpb24gMTM2IChNYXJjaCAyMDI1KS5cbiAgICAgICAgLy8gVW50aWwgdGhpcyBpcyBwYXJ0IG9mIG91ciBiYXNlbGluZSwgd2Ugc2hvdWxkIGZlYXR1cmUgY2hlY2sgdG8gZW5hYmxlIGl0LlxuICAgICAgICBjb25zdCB2YWx1ZSA9XG4gICAgICAgICAgdGhpcy5kaXNhYmxlZCB8fCB0aGlzLnJlYWRPbmx5XG4gICAgICAgICAgICA/ICdmYWxzZSdcbiAgICAgICAgICAgIDogcGxhaW50ZXh0T25seVN1cHBvcnRlZFxuICAgICAgICAgICAgICA/ICdwbGFpbnRleHQtb25seSdcbiAgICAgICAgICAgICAgOiAndHJ1ZSc7XG4gICAgICAgIHRoaXMuc2V0QXR0cmlidXRlKCdjb250ZW50ZWRpdGFibGUnLCB2YWx1ZSk7XG4gICAgICAgIC8vIEluIHRoZSByZWFkb25seSBjYXNlLCB3ZSBkaXNhYmxlIGNvbnRlbnRlZGl0YWJsZSwgYnV0IGl0IHN0aWxsXG4gICAgICAgIC8vIG5lZWRzIHRvIGJlIGZvY3VzYWJsZS4gV2UgYWNoaWV2ZSB0aGlzIGJ5IHNldHRpbmcgdGFiaW5kZXggaW4gdGhhdCBjYXNlLlxuICAgICAgICBpZiAodGhpcy5yZWFkT25seSkge1xuICAgICAgICAgIHRoaXMuc2V0QXR0cmlidXRlKCd0YWJpbmRleCcsICcwJyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5yZW1vdmVBdHRyaWJ1dGUoJ3RhYmluZGV4Jyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIF9lbWl0Q2hhbmdlSWZOZWNlc3NhcnkoKTogdm9pZCB7XG4gICAgICBpZiAodGhpcy5fc2hvdWxkRW1pdENoYW5nZSkge1xuICAgICAgICB0aGlzLl9zaG91bGRFbWl0Q2hhbmdlID0gZmFsc2U7XG4gICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ2NoYW5nZScsIHsgYnViYmxlczogdHJ1ZSB9KSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlbmRlcigpOiB1bmtub3duIHtcbiAgICAgIHJldHVybiBodG1sYDxzbG90IEBzbG90Y2hhbmdlPSR7dGhpcy5fY2xlYW5DaGlsZHJlbn0+PC9zbG90PmA7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIFNiYkZvcm1Bc3NvY2lhdGVkSW5wdXRFbGVtZW50IGFzIHVua25vd24gYXMgQ29uc3RydWN0b3I8U2JiRm9ybUFzc29jaWF0ZWRJbnB1dE1peGluVHlwZT4gJlxuICAgIFQ7XG59O1xuIl0sIm5hbWVzIjpbIl9hIiwiX2Ii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
288
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1hc3NvY2lhdGVkLWlucHV0LW1peGluLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvY29yZS9taXhpbnMvZm9ybS1hc3NvY2lhdGVkLWlucHV0LW1peGluLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGh0bWwsIGlzU2VydmVyLCB0eXBlIExpdEVsZW1lbnQsIHR5cGUgUHJvcGVydHlWYWx1ZXMgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgZXZlbnRPcHRpb25zLCBwcm9wZXJ0eSB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcblxuaW1wb3J0IHsgc2JiSW5wdXRNb2RhbGl0eURldGVjdG9yIH0gZnJvbSAnLi4vYTExeS5qcyc7XG5pbXBvcnQgeyBTYmJMYW5ndWFnZUNvbnRyb2xsZXIgfSBmcm9tICcuLi9jb250cm9sbGVycy5qcyc7XG5pbXBvcnQgeyBpc1dlYmtpdCB9IGZyb20gJy4uL2RvbS5qcyc7XG5pbXBvcnQgeyBpMThuSW5wdXRSZXF1aXJlZCB9IGZyb20gJy4uL2kxOG4uanMnO1xuXG5pbXBvcnQgdHlwZSB7IENvbnN0cnVjdG9yIH0gZnJvbSAnLi9jb25zdHJ1Y3Rvci5qcyc7XG5pbXBvcnQge1xuICB0eXBlIEZvcm1SZXN0b3JlUmVhc29uLFxuICB0eXBlIEZvcm1SZXN0b3JlU3RhdGUsXG4gIFNiYkZvcm1Bc3NvY2lhdGVkTWl4aW4sXG4gIHR5cGUgU2JiRm9ybUFzc29jaWF0ZWRNaXhpblR5cGUsXG59IGZyb20gJy4vZm9ybS1hc3NvY2lhdGVkLW1peGluLmpzJztcbmltcG9ydCB7IFNiYlJlcXVpcmVkTWl4aW4sIHR5cGUgU2JiUmVxdWlyZWRNaXhpblR5cGUgfSBmcm9tICcuL3JlcXVpcmVkLW1peGluLmpzJztcblxuZXhwb3J0IGRlY2xhcmUgYWJzdHJhY3QgY2xhc3MgU2JiRm9ybUFzc29jaWF0ZWRJbnB1dE1peGluVHlwZVxuICBleHRlbmRzIFNiYkZvcm1Bc3NvY2lhdGVkTWl4aW5UeXBlXG4gIGltcGxlbWVudHMgUGFydGlhbDxTYmJSZXF1aXJlZE1peGluVHlwZT5cbntcbiAgcHVibGljIHNldCBkaXNhYmxlZCh2YWx1ZTogYm9vbGVhbik7XG4gIHB1YmxpYyBnZXQgZGlzYWJsZWQoKTogYm9vbGVhbjtcblxuICBwdWJsaWMgc2V0IHJlYWRPbmx5KHZhbHVlOiBib29sZWFuKTtcbiAgcHVibGljIGdldCByZWFkT25seSgpOiBib29sZWFuO1xuXG4gIHB1YmxpYyBzZXQgcmVxdWlyZWQodmFsdWU6IGJvb2xlYW4pO1xuICBwdWJsaWMgZ2V0IHJlcXVpcmVkKCk6IGJvb2xlYW47XG5cbiAgcHVibGljIHNldCBwbGFjZWhvbGRlcih2YWx1ZTogc3RyaW5nKTtcbiAgcHVibGljIGdldCBwbGFjZWhvbGRlcigpOiBzdHJpbmc7XG5cbiAgcHVibGljIGZvcm1SZXNldENhbGxiYWNrKCk6IHZvaWQ7XG4gIHB1YmxpYyBmb3JtU3RhdGVSZXN0b3JlQ2FsbGJhY2soc3RhdGU6IEZvcm1SZXN0b3JlU3RhdGUgfCBudWxsLCByZWFzb246IEZvcm1SZXN0b3JlUmVhc29uKTogdm9pZDtcblxuICBwcm90ZWN0ZWQgd2l0aFVzZXJJbnRlcmFjdGlvbj8oKTogdm9pZDtcbiAgcHJvdGVjdGVkIHVwZGF0ZUZvcm1WYWx1ZSgpOiB2b2lkO1xuICBwcm90ZWN0ZWQgbGFuZ3VhZ2U6IFNiYkxhbmd1YWdlQ29udHJvbGxlcjtcbn1cblxuY29uc3QgY2hlY2tQbGFpbnRleHRPbmx5U3VwcG9ydCA9ICgpOiBib29sZWFuID0+IHtcbiAgaWYgKGlzU2VydmVyKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgY29uc3QgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gIGRpdi5zZXRBdHRyaWJ1dGUoJ2NvbnRlbnRlZGl0YWJsZScsICdQTEFJTlRFWFQtT05MWScpO1xuXG4gIC8vIElmIHBsYWludGV4dC1vbmx5IGlzIHN1cHBvcnRlZCwgdGhlIGF0dHJpYnV0ZSB2YWx1ZSBpc1xuICAvLyByZXR1cm5lZCBhcyBsb3dlci1jYXNlIGZyb20gdGhlIHByb3BlcnR5IGFjY2Vzcy5cbiAgcmV0dXJuIGRpdi5jb250ZW50RWRpdGFibGUgPT09ICdwbGFpbnRleHQtb25seSc7XG59O1xuY29uc3QgcGxhaW50ZXh0T25seVN1cHBvcnRlZCA9IGNoZWNrUGxhaW50ZXh0T25seVN1cHBvcnQoKTtcblxuLyoqXG4gKiBUaGUgU2JiRm9ybUFzc29jaWF0ZWRJbnB1dE1peGluIGVuYWJsZXMgbmF0aXZlIGZvcm0gc3VwcG9ydCBmb3IgdGV4dCBpbnB1dCBjb250cm9scy5cbiAqL1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuZXhwb3J0IGNvbnN0IFNiYkZvcm1Bc3NvY2lhdGVkSW5wdXRNaXhpbiA9IDxUIGV4dGVuZHMgQ29uc3RydWN0b3I8TGl0RWxlbWVudD4+KFxuICBzdXBlckNsYXNzOiBULFxuKTogQ29uc3RydWN0b3I8U2JiRm9ybUFzc29jaWF0ZWRJbnB1dE1peGluVHlwZT4gJiBUID0+IHtcbiAgYWJzdHJhY3QgY2xhc3MgU2JiRm9ybUFzc29jaWF0ZWRJbnB1dEVsZW1lbnRcbiAgICBleHRlbmRzIFNiYlJlcXVpcmVkTWl4aW4oU2JiRm9ybUFzc29jaWF0ZWRNaXhpbihzdXBlckNsYXNzKSlcbiAgICBpbXBsZW1lbnRzIFBhcnRpYWw8U2JiRm9ybUFzc29jaWF0ZWRJbnB1dE1peGluVHlwZT5cbiAge1xuICAgIC8qKlxuICAgICAqIFRoZSBuYXRpdmUgdGV4dCBpbnB1dCBjaGFuZ2VzIHRoZSB2YWx1ZSBwcm9wZXJ0eSB3aGVuIHRoZSB2YWx1ZSBhdHRyaWJ1dGUgaXNcbiAgICAgKiBjaGFuZ2VkIHVuZGVyIHRoZSBjb25kaXRpb24gdGhhdCBubyBpbnB1dCBldmVudCBoYXMgb2NjdXJlZCBzaW5jZSBjcmVhdGlvblxuICAgICAqIG9yIHRoZSBsYXN0IGZvcm0gcmVzZXQuXG4gICAgICovXG4gICAgcHJpdmF0ZSBfaW50ZXJhY3RlZCA9IGZhbHNlO1xuICAgIC8qKlxuICAgICAqIEFuIGVsZW1lbnQgd2l0aCBjb250ZW50ZWRpdGFibGUgd2lsbCBub3QgZW1pdCBhIGNoYW5nZSBldmVudC4gVG8gYWNoaWV2ZSBwYXJpdHlcbiAgICAgKiB3aXRoIGEgbmF0aXZlIHRleHQgaW5wdXQsIHdlIG5lZWQgdG8gdHJhY2sgd2hldGhlciBhIGNoYW5nZSBldmVudCBzaG91bGQgYmVcbiAgICAgKiBlbWl0dGVkLlxuICAgICAqL1xuICAgIHByaXZhdGUgX3Nob3VsZEVtaXRDaGFuZ2UgPSBmYWxzZTtcbiAgICAvKipcbiAgICAgKiBBIG5hdGl2ZSB0ZXh0IGlucHV0IGF0dGVtcHRzIHRvIHN1Ym1pdCB0aGUgZm9ybSB3aGVuIHByZXNzaW5nIEVudGVyLlxuICAgICAqIFRoaXMgY2FuIGJlIHByZXZlbnRlZCBieSBjYWxsaW5nIHByZXZlbnREZWZhdWx0IG9uIHRoZSBrZXlkb3duIGV2ZW50LlxuICAgICAqIFdlIHRyYWNrIHdoZXRoZXIgdG8gcmVxdWVzdCBzdWJtaXQsIHdoaWNoIHNob3VsZCBvY2N1ciBiZWZvcmUgdGhlIGtleXVwXG4gICAgICogZXZlbnQuXG4gICAgICovXG4gICAgcHJpdmF0ZSBfc2hvdWxkVHJpZ2dlclN1Ym1pdCA9IGZhbHNlO1xuXG4gICAgcHJvdGVjdGVkIGxhbmd1YWdlID0gbmV3IFNiYkxhbmd1YWdlQ29udHJvbGxlcih0aGlzKTtcblxuICAgIC8qKlxuICAgICAqIEZvcm0gdHlwZSBvZiBlbGVtZW50LlxuICAgICAqIEBkZWZhdWx0ICd0ZXh0J1xuICAgICAqL1xuICAgIHB1YmxpYyBvdmVycmlkZSBnZXQgdHlwZSgpOiBzdHJpbmcge1xuICAgICAgcmV0dXJuICd0ZXh0JztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGUgdGV4dCB2YWx1ZSBvZiB0aGUgaW5wdXQgZWxlbWVudC5cbiAgICAgKi9cbiAgICBwdWJsaWMgb3ZlcnJpZGUgc2V0IHZhbHVlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgIHN1cGVyLnZhbHVlID0gdGhpcy5fY2xlYW5UZXh0KHZhbHVlKTtcbiAgICAgIGlmICh0aGlzLmhhc1VwZGF0ZWQpIHtcbiAgICAgICAgdGhpcy5pbm5lckhUTUwgPSBzdXBlci52YWx1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcHVibGljIG92ZXJyaWRlIGdldCB2YWx1ZSgpOiBzdHJpbmcge1xuICAgICAgcmV0dXJuIHN1cGVyLnZhbHVlID8/ICcnO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdGhlIGNvbXBvbmVudCBpcyByZWFkb25seS5cbiAgICAgKiBAYXR0ciByZWFkb25seVxuICAgICAqIEBkZWZhdWx0IGZhbHNlXG4gICAgICovXG4gICAgQHByb3BlcnR5KHsgdHlwZTogQm9vbGVhbiB9KVxuICAgIHB1YmxpYyBzZXQgcmVhZE9ubHkodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgIHRoaXMudG9nZ2xlQXR0cmlidXRlKCdyZWFkb25seScsICEhdmFsdWUpO1xuICAgICAgdGhpcy5pbnRlcm5hbHMuYXJpYVJlYWRPbmx5ID0gdmFsdWUgPyAndHJ1ZScgOiBudWxsO1xuICAgICAgdGhpcy5fdXBkYXRlQ29udGVudGVkaXRhYmxlKCk7XG4gICAgfVxuICAgIHB1YmxpYyBnZXQgcmVhZE9ubHkoKTogYm9vbGVhbiB7XG4gICAgICByZXR1cm4gdGhpcy5oYXNBdHRyaWJ1dGUoJ3JlYWRvbmx5Jyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogV2hldGhlciB0aGUgY29tcG9uZW50IGlzIGRpc2FibGVkLlxuICAgICAqIEBhdHRyIGRpc2FibGVkXG4gICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgKi9cbiAgICBAcHJvcGVydHkoeyB0eXBlOiBCb29sZWFuIH0pXG4gICAgcHVibGljIHNldCBkaXNhYmxlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgdGhpcy50b2dnbGVBdHRyaWJ1dGUoJ2Rpc2FibGVkJywgISF2YWx1ZSk7XG4gICAgICB0aGlzLmludGVybmFscy5hcmlhRGlzYWJsZWQgPSB2YWx1ZSA/ICd0cnVlJyA6IG51bGw7XG4gICAgICB0aGlzLl91cGRhdGVDb250ZW50ZWRpdGFibGUoKTtcbiAgICB9XG4gICAgcHVibGljIGdldCBkaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICAgIHJldHVybiB0aGlzLmhhc0F0dHJpYnV0ZSgnZGlzYWJsZWQnKTtcbiAgICB9XG5cbiAgICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6IGZhbHNlIH0pXG4gICAgcHVibGljIHNldCBwbGFjZWhvbGRlcih2YWx1ZTogc3RyaW5nKSB7XG4gICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgdGhpcy5zZXRBdHRyaWJ1dGUoJ3BsYWNlaG9sZGVyJywgdmFsdWUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5yZW1vdmVBdHRyaWJ1dGUoJ3BsYWNlaG9sZGVyJyk7XG4gICAgICB9XG4gICAgICB0aGlzLmludGVybmFscy5hcmlhUGxhY2Vob2xkZXIgPSB2YWx1ZSA/IHZhbHVlIDogbnVsbDtcbiAgICB9XG4gICAgcHVibGljIGdldCBwbGFjZWhvbGRlcigpOiBzdHJpbmcge1xuICAgICAgcmV0dXJuIHRoaXMuZ2V0QXR0cmlidXRlKCdwbGFjZWhvbGRlcicpID8/ICcnO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBjb25zdHJ1Y3RvcigpIHtcbiAgICAgIHN1cGVyKCk7XG4gICAgICAvKiogQGludGVybmFsICovXG4gICAgICB0aGlzLmludGVybmFscy5yb2xlID0gJ3RleHRib3gnO1xuICAgICAgLy8gV2UgcHJpbWFyaWx5IHVzZSBjYXB0dXJlIGV2ZW50IGxpc3RlbmVycywgYXMgd2Ugd2FudFxuICAgICAgLy8gb3VyIGxpc3RlbmVycyB0byBvY2N1ciBiZWZvcmUgY29uc3VtZXIgZXZlbnQgbGlzdGVuZXJzLlxuICAgICAgdGhpcy5hZGRFdmVudExpc3RlbmVyPy4oXG4gICAgICAgICdpbnB1dCcsXG4gICAgICAgICgpID0+IHtcbiAgICAgICAgICBzdXBlci52YWx1ZSA9IHRoaXMuX2NsZWFuVGV4dCh0aGlzLnRleHRDb250ZW50ID8/ICcnKTtcbiAgICAgICAgICB0aGlzLl9pbnRlcmFjdGVkID0gdHJ1ZTtcbiAgICAgICAgICB0aGlzLl9zaG91bGRFbWl0Q2hhbmdlID0gdHJ1ZTtcbiAgICAgICAgfSxcbiAgICAgICAgeyBjYXB0dXJlOiB0cnVlIH0sXG4gICAgICApO1xuICAgICAgdGhpcy5hZGRFdmVudExpc3RlbmVyPy4oJ2NoYW5nZScsICgpID0+ICh0aGlzLl9zaG91bGRFbWl0Q2hhbmdlID0gZmFsc2UpLCB7IGNhcHR1cmU6IHRydWUgfSk7XG4gICAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/LihcbiAgICAgICAgJ2tleWRvd24nLFxuICAgICAgICAoZXZlbnQpID0+IHtcbiAgICAgICAgICAvLyBXZSBwcmV2ZW50IHJlY3Vyc2l2ZSBldmVudHMgYnkgY2hlY2tpbmcgdGhlIG9yaWdpbmFsIGV2ZW50IGZvciBpc1RydXN0ZWRcbiAgICAgICAgICAvLyB3aGljaCBpcyBmYWxzZSBmb3IgbWFudWFsbHkgZGlzcGF0Y2hlZCBldmVudHMgKHdoaWNoIHdlIGRpc3BhdGNoIGJlbG93KS5cbiAgICAgICAgICBpZiAoKGV2ZW50LmtleSA9PT0gJ0VudGVyJyB8fCBldmVudC5rZXkgPT09ICdcXG4nKSAmJiBldmVudC5pc1RydXN0ZWQpIHtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgIHRoaXMuX3Nob3VsZFRyaWdnZXJTdWJtaXQgPSB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEtleWJvYXJkRXZlbnQoJ2tleWRvd24nLCBldmVudCkpO1xuICAgICAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgICAgICBpc1dlYmtpdCAmJlxuICAgICAgICAgICAgdGhpcy52YWx1ZSAmJlxuICAgICAgICAgICAgKGV2ZW50LmtleSA9PT0gJ0JhY2tzcGFjZScgfHwgZXZlbnQua2V5ID09PSAnRGVsZXRlJykgJiZcbiAgICAgICAgICAgIGV2ZW50LmlzVHJ1c3RlZFxuICAgICAgICAgICkge1xuICAgICAgICAgICAgLy8gSW4gV2Via2l0IHByZXNzaW5nIEJhY2tzcGFjZSBvciBEZWxldGUgY29tcGxldGVseSByZW1vdmVzIGFsbCB0aGUgY29udGVudFxuICAgICAgICAgICAgLy8gaWYgY29udGVudGVkaXRhYmxlIGlzIHNldCBvbiBhIHdlYiBjb21wb25lbnQgaG9zdC5cbiAgICAgICAgICAgIC8vIFdlIGhhdmUgdG8gcmVwbGljYXRlIHRoZSBub3JtYWwgZGVsZXRlIGJlaGF2aW9yLlxuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO1xuXG4gICAgICAgICAgICBpZiAoIXRoaXMuZGlzcGF0Y2hFdmVudChuZXcgS2V5Ym9hcmRFdmVudCgna2V5ZG93bicsIGV2ZW50KSkpIHtcbiAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBzZWxlY3RlZFJhbmdlID0gd2luZG93LmdldFNlbGVjdGlvbigpPy5nZXRSYW5nZUF0KDApO1xuICAgICAgICAgICAgaWYgKCFzZWxlY3RlZFJhbmdlKSB7XG4gICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHNlbGVjdGVkUmFuZ2Uuc3RhcnRPZmZzZXQgIT09IHNlbGVjdGVkUmFuZ2UuZW5kT2Zmc2V0KSB7XG4gICAgICAgICAgICAgIC8vIElmIGEgdGV4dCByYW5nZSBpcyBzZWxlY3RlZCwgdGhlbiBkZWxldGUgdGhpcyByYW5nZVxuICAgICAgICAgICAgICBzZWxlY3RlZFJhbmdlLmRlbGV0ZUNvbnRlbnRzKCk7XG4gICAgICAgICAgICAgIHRoaXMuX2Rpc3BhdGNoSW5wdXRFdmVudCgpO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChldmVudC5rZXkgPT09ICdCYWNrc3BhY2UnICYmIHNlbGVjdGVkUmFuZ2Uuc3RhcnRPZmZzZXQgPiAwKSB7XG4gICAgICAgICAgICAgIC8vIFdoZW4gcHJlc3NpbmcgQmFja3NwYWNlLCB3ZSBzZWxlY3QgdGhlIHByZXZpb3VzIGNoYXJhY3RlciBmcm9tXG4gICAgICAgICAgICAgIC8vIHRoZSBjdXJyZW50IGN1cnNvciBwb3NpdGlvbiBhbmQgZGVsZXRlIGl0LlxuICAgICAgICAgICAgICBzZWxlY3RlZFJhbmdlLnNldFN0YXJ0KHNlbGVjdGVkUmFuZ2Uuc3RhcnRDb250YWluZXIsIHNlbGVjdGVkUmFuZ2Uuc3RhcnRPZmZzZXQgLSAxKTtcbiAgICAgICAgICAgICAgc2VsZWN0ZWRSYW5nZS5kZWxldGVDb250ZW50cygpO1xuICAgICAgICAgICAgICB0aGlzLl9kaXNwYXRjaElucHV0RXZlbnQoKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoZXZlbnQua2V5ID09PSAnRGVsZXRlJyAmJiBzZWxlY3RlZFJhbmdlLmVuZE9mZnNldCA8IHRoaXMudmFsdWUubGVuZ3RoKSB7XG4gICAgICAgICAgICAgIC8vIFdoZW4gcHJlc3NpbmcgRGVsZXRlLCB3ZSBzZWxlY3QgdGhlIG5leHQgY2hhcmFjdGVyIGZyb21cbiAgICAgICAgICAgICAgLy8gdGhlIGN1cnJlbnQgY3Vyc29yIHBvc2l0aW9uIGFuZCBkZWxldGUgaXQuXG4gICAgICAgICAgICAgIHNlbGVjdGVkUmFuZ2Uuc2V0RW5kKHNlbGVjdGVkUmFuZ2UuZW5kQ29udGFpbmVyLCBzZWxlY3RlZFJhbmdlLmVuZE9mZnNldCArIDEpO1xuICAgICAgICAgICAgICBzZWxlY3RlZFJhbmdlLmRlbGV0ZUNvbnRlbnRzKCk7XG4gICAgICAgICAgICAgIHRoaXMuX2Rpc3BhdGNoSW5wdXRFdmVudCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgeyBjYXB0dXJlOiB0cnVlIH0sXG4gICAgICApO1xuICAgICAgdGhpcy5hZGRFdmVudExpc3RlbmVyPy4oXG4gICAgICAgICdrZXl1cCcsXG4gICAgICAgIChldmVudCkgPT4ge1xuICAgICAgICAgIGlmIChldmVudC5rZXkgPT09ICdFbnRlcicgfHwgZXZlbnQua2V5ID09PSAnXFxuJykge1xuICAgICAgICAgICAgdGhpcy5fZW1pdENoYW5nZUlmTmVjZXNzYXJ5KCk7XG4gICAgICAgICAgICBpZiAodGhpcy5fc2hvdWxkVHJpZ2dlclN1Ym1pdCkge1xuICAgICAgICAgICAgICB0aGlzLl9zaG91bGRUcmlnZ2VyU3VibWl0ID0gZmFsc2U7XG4gICAgICAgICAgICAgIHRoaXMuZm9ybT8ucmVxdWVzdFN1Ym1pdCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgeyBjYXB0dXJlOiB0cnVlIH0sXG4gICAgICApO1xuICAgICAgLy8gY29udGVudGVkaXRhYmxlIGFsbG93cyBwYXN0aW5nIHJpY2ggY29udGVudCBpbnRvIGl0cyBob3N0LlxuICAgICAgLy8gV2UgcHJldmVudCB0aGlzIGJ5IGxpc3RlbmluZyB0byB0aGUgcGFzdGUgZXZlbnQgYW5kXG4gICAgICAvLyBleHRyYWN0aW5nIHRoZSBwbGFpbiB0ZXh0IGZyb20gdGhlIHBhc3RlZCBjb250ZW50XG4gICAgICAvLyBhbmQgaW5zZXJ0aW5nIGl0IGludG8gdGhlIHNlbGVjdGVkIHJhbmdlIChjdXJzb3IgcG9zaXRpb25cbiAgICAgIC8vIG9yIHNlbGVjdGlvbikuXG4gICAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/LigncGFzdGUnLCAoZSkgPT4ge1xuICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGNvbnN0IHRleHQgPSB0aGlzLl9jbGVhblRleHQoZS5jbGlwYm9hcmREYXRhPy5nZXREYXRhKCd0ZXh0L3BsYWluJykgPz8gJycpO1xuICAgICAgICBjb25zdCBzZWxlY3RlZFJhbmdlID0gd2luZG93LmdldFNlbGVjdGlvbigpPy5nZXRSYW5nZUF0KDApO1xuICAgICAgICBpZiAoIXNlbGVjdGVkUmFuZ2UgfHwgIXRleHQpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBzZWxlY3RlZFJhbmdlLmRlbGV0ZUNvbnRlbnRzKCk7XG4gICAgICAgIHNlbGVjdGVkUmFuZ2UuaW5zZXJ0Tm9kZShkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSh0ZXh0KSk7XG4gICAgICAgIHNlbGVjdGVkUmFuZ2Uuc2V0U3RhcnQoc2VsZWN0ZWRSYW5nZS5lbmRDb250YWluZXIsIHNlbGVjdGVkUmFuZ2UuZW5kT2Zmc2V0KTtcbiAgICAgICAgdGhpcy5fZGlzcGF0Y2hJbnB1dEV2ZW50KCk7XG4gICAgICB9KTtcbiAgICAgIC8vIFdoZW4gZm9jdXNpbmcgYSB0ZXh0IGlucHV0IHZpYSBrZXlib2FyZCwgdGhlIHRleHQgY29udGVudCBzaG91bGQgYmUgc2VsZWN0ZWQuXG4gICAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/LignZm9jdXMnLCAoKSA9PiB7XG4gICAgICAgIGlmIChzYmJJbnB1dE1vZGFsaXR5RGV0ZWN0b3IubW9zdFJlY2VudE1vZGFsaXR5ID09PSAna2V5Ym9hcmQnKSB7XG4gICAgICAgICAgd2luZG93LmdldFNlbGVjdGlvbigpPy5zZWxlY3RBbGxDaGlsZHJlbih0aGlzKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICAvLyBPbiBibHVyIHRoZSBuYXRpdmUgdGV4dCBpbnB1dCBzY3JvbGxzIHRoZSB0ZXh0IHRvIHRoZSBzdGFydCBvZiB0aGUgdGV4dC5cbiAgICAgIC8vIFdlIG1pbWljayB0aGF0IGJ5IHJlc2V0dGluZyB0aGUgc2Nyb2xsIHBvc2l0aW9uLlxuICAgICAgLy8gV2UgYWxzbyB1bnNldCBhbnkgc2VsZWN0aW9uIHRvIGFsaWduIHdpdGggdGhlIG5hdGl2ZSB0ZXh0IGlucHV0LlxuICAgICAgdGhpcy5hZGRFdmVudExpc3RlbmVyPy4oXG4gICAgICAgICdibHVyJyxcbiAgICAgICAgKCkgPT4ge1xuICAgICAgICAgIHdpbmRvdy5nZXRTZWxlY3Rpb24oKT8ucmVtb3ZlQWxsUmFuZ2VzKCk7XG4gICAgICAgICAgdGhpcy5fZW1pdENoYW5nZUlmTmVjZXNzYXJ5KCk7XG4gICAgICAgICAgdGhpcy5zY3JvbGxMZWZ0ID0gMDtcbiAgICAgICAgfSxcbiAgICAgICAgeyBjYXB0dXJlOiB0cnVlIH0sXG4gICAgICApO1xuICAgIH1cblxuICAgIHB1YmxpYyBvdmVycmlkZSBjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICAgIHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgICB0aGlzLmludGVybmFscy5hcmlhTXVsdGlMaW5lID0gJ2ZhbHNlJztcbiAgICAgIHRoaXMuX3VwZGF0ZUNvbnRlbnRlZGl0YWJsZSgpO1xuXG4gICAgICAvLyBXZSB3YW50IHRvIHJlcGxhY2UgYW55IGNvbnRlbnQgYnkganVzdCB0aGUgdGV4dCBjb250ZW50LlxuICAgICAgdGhpcy5pbm5lckhUTUwgPSB0aGlzLnZhbHVlO1xuICAgIH1cblxuICAgIHB1YmxpYyBvdmVycmlkZSBmb2N1cyhvcHRpb25zPzogRm9jdXNPcHRpb25zKTogdm9pZCB7XG4gICAgICBzdXBlci5mb2N1cyhvcHRpb25zKTtcbiAgICAgIC8vIEJ5IGRlZmF1bHQsIHdoZW4gY2FsbGluZyBmb2N1cyBvbiBhbiBpbnB1dCBlbGVtZW50LCB0aGUgY3Vyc29yIGlzIHBsYWNlZFxuICAgICAgLy8gYXQgdGhlIGVuZCBvZiB0aGUgaW5wdXQgdGV4dC4gSG93ZXZlciwgd2l0aCBjb250ZW50ZWRpdGFibGUsIHRoZSBjdXJzb3JcbiAgICAgIC8vIGlzIHBsYWNlZCBhdCB0aGUgYmVnaW5uaW5nLCBzbyB3ZSBtb3ZlIGl0IHRvIHRoZSBlbmQsIGlmIHRoYXQgaXMgdGhlIGNhc2UuXG4gICAgICBpZiAoIWlzU2VydmVyICYmICF0aGlzLmRpc2FibGVkICYmICF0aGlzLnJlYWRPbmx5ICYmIHRoaXMudmFsdWUpIHtcbiAgICAgICAgY29uc3Qgc2VsZWN0aW9uID0gd2luZG93LmdldFNlbGVjdGlvbigpO1xuICAgICAgICBpZiAoIXNlbGVjdGlvbikge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBsZXQgcmFuZ2UgPSBzZWxlY3Rpb24ucmFuZ2VDb3VudCA+IDAgPyBzZWxlY3Rpb24uZ2V0UmFuZ2VBdCgwKSA6IG51bGw7XG4gICAgICAgIGlmIChyYW5nZSAmJiByYW5nZS5zdGFydE9mZnNldCAhPT0gMCkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHJhbmdlID0gZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKTtcbiAgICAgICAgcmFuZ2Uuc2V0U3RhcnQodGhpcy5maXJzdENoaWxkISwgdGhpcy50ZXh0Q29udGVudCEubGVuZ3RoKTtcbiAgICAgICAgcmFuZ2UuY29sbGFwc2UodHJ1ZSk7XG4gICAgICAgIHNlbGVjdGlvbi5yZW1vdmVBbGxSYW5nZXMoKTtcbiAgICAgICAgc2VsZWN0aW9uLmFkZFJhbmdlKHJhbmdlKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgb3ZlcnJpZGUgYXR0cmlidXRlQ2hhbmdlZENhbGxiYWNrKFxuICAgICAgbmFtZTogc3RyaW5nLFxuICAgICAgb2xkOiBzdHJpbmcgfCBudWxsLFxuICAgICAgdmFsdWU6IHN0cmluZyB8IG51bGwsXG4gICAgKTogdm9pZCB7XG4gICAgICBpZiAobmFtZSAhPT0gJ3ZhbHVlJyB8fCAhdGhpcy5faW50ZXJhY3RlZCkge1xuICAgICAgICBzdXBlci5hdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2sobmFtZSwgb2xkLCB2YWx1ZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSXMgY2FsbGVkIHdoZW5ldmVyIHRoZSBmb3JtIGlzIGJlaW5nIHJlc2V0LlxuICAgICAqXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgcHVibGljIG92ZXJyaWRlIGZvcm1SZXNldENhbGxiYWNrKCk6IHZvaWQge1xuICAgICAgdGhpcy5faW50ZXJhY3RlZCA9IGZhbHNlO1xuICAgICAgdGhpcy52YWx1ZSA9IHRoaXMuZ2V0QXR0cmlidXRlKCd2YWx1ZScpID8/ICcnO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqICBDYWxsZWQgd2hlbiB0aGUgYnJvd3NlciBpcyB0cnlpbmcgdG8gcmVzdG9yZSBlbGVtZW504oCZcyBzdGF0ZSB0byBzdGF0ZSBpbiB3aGljaCBjYXNlXG4gICAgICogIHJlYXNvbiBpcyBcInJlc3RvcmVcIiwgb3Igd2hlbiB0aGUgYnJvd3NlciBpcyB0cnlpbmcgdG8gZnVsZmlsbCBhdXRvZmlsbCBvbiBiZWhhbGYgb2ZcbiAgICAgKiAgdXNlciBpbiB3aGljaCBjYXNlIHJlYXNvbiBpcyBcImF1dG9jb21wbGV0ZVwiLlxuICAgICAqICBJbiB0aGUgY2FzZSBvZiBcInJlc3RvcmVcIiwgc3RhdGUgaXMgYSBzdHJpbmcsIEZpbGUsIG9yIEZvcm1EYXRhIG9iamVjdFxuICAgICAqICBwcmV2aW91c2x5IHNldCBhcyB0aGUgc2Vjb25kIGFyZ3VtZW50IHRvIHNldEZvcm1WYWx1ZS5cbiAgICAgKlxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHB1YmxpYyBvdmVycmlkZSBmb3JtU3RhdGVSZXN0b3JlQ2FsbGJhY2soXG4gICAgICBzdGF0ZTogRm9ybVJlc3RvcmVTdGF0ZSB8IG51bGwsXG4gICAgICBfcmVhc29uOiBGb3JtUmVzdG9yZVJlYXNvbixcbiAgICApOiB2b2lkIHtcbiAgICAgIGlmIChzdGF0ZSAmJiB0eXBlb2Ygc3RhdGUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHRoaXMudmFsdWUgPSBzdGF0ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgYXN5bmMgZmlyc3RVcGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzOiBQcm9wZXJ0eVZhbHVlczx0aGlzPik6IFByb21pc2U8dm9pZD4ge1xuICAgICAgc3VwZXIuZmlyc3RVcGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzKTtcblxuICAgICAgLy8gSWYgdGhlIHZhbHVlIHdhcyBhc3NpZ25lZCBiZWZvcmUgZmlyc3RVcGRhdGUsIHdlIGhhdmUgdG9cbiAgICAgIC8vIHdyaXRlIGl0IHRoZSBkb2N1bWVudCB0byBiZSB2aXN1YWxseSBzZWVuXG4gICAgICBpZiAodGhpcy52YWx1ZSAmJiAhdGhpcy5pbm5lckhUTUwubGVuZ3RoKSB7XG4gICAgICAgIHRoaXMuaW5uZXJIVE1MID0gdGhpcy52YWx1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgdXBkYXRlRm9ybVZhbHVlKCk6IHZvaWQge1xuICAgICAgdGhpcy5pbnRlcm5hbHMuc2V0Rm9ybVZhbHVlKHRoaXMudmFsdWUsIHRoaXMudmFsdWUpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBvdmVycmlkZSBzaG91bGRWYWxpZGF0ZShuYW1lOiBQcm9wZXJ0eUtleSB8IHVuZGVmaW5lZCk6IGJvb2xlYW4ge1xuICAgICAgcmV0dXJuIHN1cGVyLnNob3VsZFZhbGlkYXRlKG5hbWUpIHx8IG5hbWUgPT09ICd2YWx1ZScgfHwgbmFtZSA9PT0gJ3JlcXVpcmVkJztcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgdmFsaWRhdGUoKTogdm9pZCB7XG4gICAgICBzdXBlci52YWxpZGF0ZSgpO1xuICAgICAgaWYgKHRoaXMucmVxdWlyZWQgJiYgIXRoaXMudmFsdWUpIHtcbiAgICAgICAgdGhpcy5zZXRWYWxpZGl0eUZsYWcoJ3ZhbHVlTWlzc2luZycsIGkxOG5JbnB1dFJlcXVpcmVkW3RoaXMubGFuZ3VhZ2UuY3VycmVudF0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5yZW1vdmVWYWxpZGl0eUZsYWcoJ3ZhbHVlTWlzc2luZycpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgX2NsZWFuVGV4dCh2YWx1ZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgIC8vIFRoZSBuYXRpdmUgdGV4dCBpbnB1dCByZW1vdmVzIGFsbCBuZXdsaW5lIGNoYXJhY3RlcnMgaWYgcGFzc2VkIHRvIHRoZSB2YWx1ZSBwcm9wZXJ0eVxuICAgICAgcmV0dXJuIHZhbHVlID09PSBudWxsID8gJycgOiBgJHt2YWx1ZX1gLnJlcGxhY2UoL1tcXG5cXHJdKy9nLCAnJyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfZGlzcGF0Y2hJbnB1dEV2ZW50KCk6IHZvaWQge1xuICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBJbnB1dEV2ZW50KCdpbnB1dCcsIHsgYnViYmxlczogdHJ1ZSwgY29tcG9zZWQ6IHRydWUgfSkpO1xuICAgIH1cblxuICAgIEBldmVudE9wdGlvbnMoeyBwYXNzaXZlOiB0cnVlIH0pXG4gICAgcHJpdmF0ZSBfY2xlYW5DaGlsZHJlbigpOiB2b2lkIHtcbiAgICAgIGlmICh0aGlzLmNoaWxkRWxlbWVudENvdW50KSB7XG4gICAgICAgIGZvciAoY29uc3QgZWxlbWVudCBvZiB0aGlzLmNoaWxkcmVuKSB7XG4gICAgICAgICAgZWxlbWVudC5yZW1vdmUoKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgX3VwZGF0ZUNvbnRlbnRlZGl0YWJsZSgpOiB2b2lkIHtcbiAgICAgIGlmICghaXNTZXJ2ZXIgJiYgdGhpcy5pc0Nvbm5lY3RlZCkge1xuICAgICAgICAvLyBUT0RPKDIwMjYpOiBGaXJlZm94IHN1cHBvcnRzIHBsYWludGV4dC1vbmx5IHNpbmNlIHZlcnNpb24gMTM2IChNYXJjaCAyMDI1KS5cbiAgICAgICAgLy8gVW50aWwgdGhpcyBpcyBwYXJ0IG9mIG91ciBiYXNlbGluZSwgd2Ugc2hvdWxkIGZlYXR1cmUgY2hlY2sgdG8gZW5hYmxlIGl0LlxuICAgICAgICBjb25zdCB2YWx1ZSA9XG4gICAgICAgICAgdGhpcy5kaXNhYmxlZCB8fCB0aGlzLnJlYWRPbmx5XG4gICAgICAgICAgICA/ICdmYWxzZSdcbiAgICAgICAgICAgIDogcGxhaW50ZXh0T25seVN1cHBvcnRlZFxuICAgICAgICAgICAgICA/ICdwbGFpbnRleHQtb25seSdcbiAgICAgICAgICAgICAgOiAndHJ1ZSc7XG4gICAgICAgIHRoaXMuc2V0QXR0cmlidXRlKCdjb250ZW50ZWRpdGFibGUnLCB2YWx1ZSk7XG4gICAgICAgIC8vIEluIHRoZSByZWFkb25seSBjYXNlLCB3ZSBkaXNhYmxlIGNvbnRlbnRlZGl0YWJsZSwgYnV0IGl0IHN0aWxsXG4gICAgICAgIC8vIG5lZWRzIHRvIGJlIGZvY3VzYWJsZS4gV2UgYWNoaWV2ZSB0aGlzIGJ5IHNldHRpbmcgdGFiaW5kZXggaW4gdGhhdCBjYXNlLlxuICAgICAgICBpZiAodGhpcy5yZWFkT25seSkge1xuICAgICAgICAgIHRoaXMuc2V0QXR0cmlidXRlKCd0YWJpbmRleCcsICcwJyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5yZW1vdmVBdHRyaWJ1dGUoJ3RhYmluZGV4Jyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIF9lbWl0Q2hhbmdlSWZOZWNlc3NhcnkoKTogdm9pZCB7XG4gICAgICBpZiAodGhpcy5fc2hvdWxkRW1pdENoYW5nZSkge1xuICAgICAgICB0aGlzLl9zaG91bGRFbWl0Q2hhbmdlID0gZmFsc2U7XG4gICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ2NoYW5nZScsIHsgYnViYmxlczogdHJ1ZSB9KSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlbmRlcigpOiB1bmtub3duIHtcbiAgICAgIHJldHVybiBodG1sYDxzbG90IEBzbG90Y2hhbmdlPSR7dGhpcy5fY2xlYW5DaGlsZHJlbn0+PC9zbG90PmA7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIFNiYkZvcm1Bc3NvY2lhdGVkSW5wdXRFbGVtZW50IGFzIHVua25vd24gYXMgQ29uc3RydWN0b3I8U2JiRm9ybUFzc29jaWF0ZWRJbnB1dE1peGluVHlwZT4gJlxuICAgIFQ7XG59O1xuIl0sIm5hbWVzIjpbXSwibWFwcGlu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