@sbb-esta/lyne-elements-dev 5.0.0-next.2-dev.1778141158 → 5.0.0-next.2-dev.1778145833

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 (270) hide show
  1. package/custom-elements.json +6481 -6474
  2. package/development/accordion.component-Bvx-b38W.js +1 -1
  3. package/development/action-group.component-DZkXqIbQ.js +1 -1
  4. package/development/alert-group.component-w5PbU_4C.js +1 -1
  5. package/development/alert.component-DxzF0FOi.js +1 -1
  6. package/development/autocomplete/autocomplete.component.js +1 -1
  7. package/development/autocomplete-base-element-DZx53PO1.js +1 -1
  8. package/development/block-link-common-CoZgcEBY.js +1 -1
  9. package/development/breadcrumb-group.component-BUBfl6LV.js +1 -1
  10. package/development/breadcrumb.component-D6Cd2FPo.js +1 -1
  11. package/development/button/accent-button/accent-button.component.js +1 -1
  12. package/development/button/accent-button-link/accent-button-link.component.js +1 -1
  13. package/development/button/accent-button-static/accent-button-static.component.js +1 -1
  14. package/development/button/button/button.component.js +1 -1
  15. package/development/button/button-link/button-link.component.js +1 -1
  16. package/development/button/button-static/button-static.component.js +1 -1
  17. package/development/button/mini-button/mini-button.component.js +1 -1
  18. package/development/button/secondary-button/secondary-button.component.js +1 -1
  19. package/development/button/secondary-button-link/secondary-button-link.component.js +1 -1
  20. package/development/button/secondary-button-static/secondary-button-static.component.js +1 -1
  21. package/development/button/transparent-button/transparent-button.component.js +1 -1
  22. package/development/button/transparent-button-link/transparent-button-link.component.js +1 -1
  23. package/development/button/transparent-button-static/transparent-button-static.component.js +1 -1
  24. package/development/button-common-DZUBRwwD.js +1 -1
  25. package/development/calendar/calendar-month/calendar-month.component.js +1 -1
  26. package/development/calendar/calendar-weekday/calendar-weekday.component.js +1 -1
  27. package/development/calendar/calendar-weeknumber/calendar-weeknumber.component.js +1 -1
  28. package/development/calendar/calendar-year/calendar-year.component.js +1 -1
  29. package/development/calendar-cell-base-element-mWRSDeWc.js +1 -1
  30. package/development/calendar-day.component-BHvdRxll.js +1 -1
  31. package/development/calendar.component-CjlcDyS5.js +1 -1
  32. package/development/card/card-button/card-button.component.js +1 -1
  33. package/development/card/card-link/card-link.component.js +1 -1
  34. package/development/card-action-common-zS5iNz23.js +1 -1
  35. package/development/card-badge.component-CEfJdJBs.js +1 -1
  36. package/development/card.component-CL2gHoyP.js +1 -1
  37. package/development/carousel-item.component-B_0wdIAu.js +1 -1
  38. package/development/carousel-list.component-DpDh5tqB.js +1 -1
  39. package/development/carousel.component-ClWvnZ8s.js +1 -1
  40. package/development/checkbox-common-C3Ekixul.js +1 -1
  41. package/development/checkbox-group/checkbox-group.component.js +1 -1
  42. package/development/checkbox-panel/checkbox-panel.component.js +1 -1
  43. package/development/checkbox.component-D6BR8e7w.js +1 -1
  44. package/development/chip-group.component-DThvmmnh.js +1 -1
  45. package/development/chip-label.component-DHHNtvTt.js +1 -1
  46. package/development/chip.component-Uuf3tGFz.js +1 -1
  47. package/development/clock.component-DcM1WFTN.js +1 -1
  48. package/development/compact-paginator.component-Dyj5CulS.js +1 -1
  49. package/development/container.component-D1Qgp4HW.js +1 -1
  50. package/development/core/a11y/arrow-navigation.js +1 -1
  51. package/development/core/a11y/fake-event-detection.js +1 -1
  52. package/development/core/a11y/focus-trap-controller.js +1 -1
  53. package/development/core/a11y/focus-visible-within-controller.js +1 -1
  54. package/development/core/a11y/input-modality-detector.js +1 -1
  55. package/development/core/a11y/interactivity-checker.js +1 -1
  56. package/development/core/a11y/live-announcer.js +1 -1
  57. package/development/core/base-elements/action-base-element.js +1 -1
  58. package/development/core/base-elements/button-base-element.js +1 -1
  59. package/development/core/base-elements/link-base-element.js +1 -1
  60. package/development/core/base-elements/open-close-base-element.js +1 -1
  61. package/development/core/config/config.js +1 -1
  62. package/development/core/controllers/escapable-overlay-controller.js +1 -1
  63. package/development/core/controllers/id-reference-controller.js +1 -1
  64. package/development/core/controllers/inert-controller.js +1 -1
  65. package/development/core/controllers/language-controller.js +1 -1
  66. package/development/core/controllers/media-matchers-controller.js +1 -1
  67. package/development/core/controllers/overlay-position-controller.js +1 -1
  68. package/development/core/controllers/property-watcher-controller.js +1 -1
  69. package/development/core/datetime/date-adapter.js +1 -1
  70. package/development/core/datetime/native-date-adapter.js +1 -1
  71. package/development/core/datetime/temporal-date-adapter.js +1 -1
  72. package/development/core/decorators/force-type.js +1 -1
  73. package/development/core/decorators/get-override.js +1 -1
  74. package/development/core/decorators/handle-distinct-change.js +1 -1
  75. package/development/core/decorators/host-attributes.js +1 -1
  76. package/development/core/decorators/id-reference.js +1 -1
  77. package/development/core/decorators/omit-empty-converter.js +1 -1
  78. package/development/core/decorators/plain-date.js +1 -1
  79. package/development/core/dom/animation.js +1 -1
  80. package/development/core/dom/contains-pierce-shadow-dom.js +1 -1
  81. package/development/core/dom/lean-context.js +1 -1
  82. package/development/core/dom/platform.js +1 -1
  83. package/development/core/dom/queue-dom-content-loaded.js +1 -1
  84. package/development/core/dom/scroll.js +1 -1
  85. package/development/core/dom/set-or-remove-attribute.js +1 -1
  86. package/development/core/eventing/composed-path-has-attribute.js +1 -1
  87. package/development/core/eventing/event-target.js +1 -1
  88. package/development/core/eventing/form-element-handlers.js +1 -1
  89. package/development/core/eventing/forward-event.js +1 -1
  90. package/development/core/eventing/is-event-prevented.js +1 -1
  91. package/development/core/eventing/throttle.js +1 -1
  92. package/development/core/i18n/i18n.js +1 -1
  93. package/development/core/mixins/animation-complete-mixin.js +1 -1
  94. package/development/core/mixins/disabled-mixin.js +1 -1
  95. package/development/core/mixins/form-associated-checkbox-mixin.js +1 -1
  96. package/development/core/mixins/form-associated-input-mixin.js +1 -1
  97. package/development/core/mixins/form-associated-mixin.js +1 -1
  98. package/development/core/mixins/form-associated-radio-button-mixin.js +1 -1
  99. package/development/core/mixins/named-slot-list-mixin.js +1 -1
  100. package/development/core/mixins/negative-mixin.js +1 -1
  101. package/development/core/mixins/readonly-mixin.js +1 -1
  102. package/development/core/mixins/required-mixin.js +1 -1
  103. package/development/core/mixins/selection-panel-mixin.js +1 -1
  104. package/development/core/mixins/update-scheduler-mixin.js +1 -1
  105. package/development/core/overlay/overlay-option-panel.js +1 -1
  106. package/development/core/overlay/overlay-outside-pointer-event-listener.js +1 -1
  107. package/development/core/overlay/overlay-trigger-attributes.js +1 -1
  108. package/development/core/overlay/position.js +1 -1
  109. package/development/core/testing/event-spy.js +1 -1
  110. package/development/core/testing/mocha-extensions.js +1 -1
  111. package/development/core/testing/wait-for-condition.js +1 -1
  112. package/development/core/testing/wait-for-image-ready.js +1 -1
  113. package/development/core/testing/wait-for-render.js +1 -1
  114. package/development/date-input.component-HxRyCudr.js +1 -1
  115. package/development/datepicker/datepicker/datepicker.component.js +1 -1
  116. package/development/datepicker/datepicker-next-day/datepicker-next-day.component.js +1 -1
  117. package/development/datepicker/datepicker-previous-day/datepicker-previous-day.component.js +1 -1
  118. package/development/datepicker/datepicker-toggle/datepicker-toggle.component.js +1 -1
  119. package/development/datepicker-button-BAT1ebzJ.js +1 -1
  120. package/development/dialog-actions.component-e0ZTTUin.js +1 -1
  121. package/development/dialog-close-button.component-Idc00dB9.js +1 -1
  122. package/development/dialog-content.component-CThU7Z8A.js +1 -1
  123. package/development/dialog-title.component-0uNsUR2C.js +1 -1
  124. package/development/dialog.component-AItB8ixG.js +1 -1
  125. package/development/divider.component-Ck_0vISe.js +1 -1
  126. package/development/element-BAsBayf5.js +1 -1
  127. package/development/error.component-WCkiwM7_.js +1 -1
  128. package/development/expansion-panel-content.component-BUbiseFP.js +1 -1
  129. package/development/expansion-panel-header.component-CQFSwrqu.js +1 -1
  130. package/development/expansion-panel.component-BVdylpqi.js +1 -1
  131. package/development/file-selector/file-selector/file-selector.component.js +1 -1
  132. package/development/file-selector-common-Da0KNfDP.js +1 -1
  133. package/development/file-selector-dropzone.component-Bdcau18t.js +1 -1
  134. package/development/flip-card-details.component-BYv_W66a.js +1 -1
  135. package/development/flip-card-summary.component-C-US77Nw.js +1 -1
  136. package/development/flip-card.component-DujrPKzU.js +1 -1
  137. package/development/footer.component-K2bWizjw.js +1 -1
  138. package/development/form-field/form-field-clear/form-field-clear.component.js +1 -1
  139. package/development/form-field/form-field-text-counter/form-field-text-counter.component.js +1 -1
  140. package/development/form-field.component-_lnIpJF5.js +1 -1
  141. package/development/header/header-button/header-button.component.js +1 -1
  142. package/development/header/header-link/header-link.component.js +1 -1
  143. package/development/header-action-common-CQ1CaaBd.js +1 -1
  144. package/development/header-environment.component-CIyxQwkQ.js +1 -1
  145. package/development/header.component-BX1rKPa_.js +1 -1
  146. package/development/hint.component-BB9QLGGx.js +1 -1
  147. package/development/icon/icon-name-mixin.js +1 -1
  148. package/development/icon/icon-request.js +1 -1
  149. package/development/icon/icon-validate.js +1 -1
  150. package/development/icon/icon.component.js +1 -1
  151. package/development/icon-base-DrBHy9BT.js +1 -1
  152. package/development/icon-sidebar/icon-sidebar-button/icon-sidebar-button.component.js +1 -1
  153. package/development/icon-sidebar/icon-sidebar-link/icon-sidebar-link.component.js +1 -1
  154. package/development/icon-sidebar-container.component-CM94Spwy.js +1 -1
  155. package/development/icon-sidebar-content.component-BP9W5ZxR.js +1 -1
  156. package/development/icon-sidebar.component-B68P2aNh.js +1 -1
  157. package/development/image.component-EfSMgHI_.js +1 -1
  158. package/development/inline-link-common-gmt6yz3v.js +1 -1
  159. package/development/journey-header.component-CA4juz9x.js +1 -1
  160. package/development/lead-container.component-C_mFeq1B.js +1 -1
  161. package/development/link/block-link/block-link.component.js +1 -1
  162. package/development/link/block-link-button/block-link-button.component.js +1 -1
  163. package/development/link/block-link-static/block-link-static.component.js +1 -1
  164. package/development/link/link/link.component.js +1 -1
  165. package/development/link/link-button/link-button.component.js +1 -1
  166. package/development/link/link-static/link-static.component.js +1 -1
  167. package/development/link-common-2RGn9Qz_.js +1 -1
  168. package/development/link-list-anchor.component-Csb-FOQL.js +1 -1
  169. package/development/link-list-base-QADBTZCN.js +1 -1
  170. package/development/link-list.component-CKVU3Gsr.js +1 -1
  171. package/development/loading-indicator-circle.component-Cfjw5vyz.js +1 -1
  172. package/development/loading-indicator.component-By2VaLCf.js +1 -1
  173. package/development/logo.component-DYKgAgq0.js +1 -1
  174. package/development/map-container.component-D0UVTolK.js +1 -1
  175. package/development/menu/menu-button/menu-button.component.js +1 -1
  176. package/development/menu/menu-link/menu-link.component.js +1 -1
  177. package/development/menu-action-common-DRXQc85Y.js +1 -1
  178. package/development/menu.component-Cv9wRj4H.js +1 -1
  179. package/development/message.component-CdO5GyE2.js +1 -1
  180. package/development/mini-button-group.component-Bg-etiu1.js +1 -1
  181. package/development/mini-button-link.component-kpRsi8I2.js +1 -1
  182. package/development/mini-calendar-day.component-BLkJ12Bw.js +1 -1
  183. package/development/mini-calendar-month.component-D8XjjLmN.js +1 -1
  184. package/development/mini-calendar.component-BOk8JovO.js +1 -1
  185. package/development/navigation/navigation-button/navigation-button.component.js +1 -1
  186. package/development/navigation/navigation-link/navigation-link.component.js +1 -1
  187. package/development/navigation-action-common-CGy4K8q-.js +1 -1
  188. package/development/navigation-list.component-DrdbtDRs.js +1 -1
  189. package/development/navigation-marker.component-fB05cjtE.js +1 -1
  190. package/development/navigation-section.component-iaypc6yQ.js +1 -1
  191. package/development/navigation.component-CqNkBvEs.js +1 -1
  192. package/development/notification.component-D0rkSF3p.js +1 -1
  193. package/development/optgroup-base-element-Cq8DMPk9.js +1 -1
  194. package/development/option/optgroup/optgroup.component.js +1 -1
  195. package/development/option/option/option-base-element.js +1 -1
  196. package/development/option-hint.component-B4PxB3BW.js +1 -1
  197. package/development/option.component-CV6cZnJe.js +1 -1
  198. package/development/overlay/overlay-base-element.js +1 -1
  199. package/development/overlay.component-rFmitc_r.js +1 -1
  200. package/development/paginator/common/paginator-common.js +1 -1
  201. package/development/paginator.component-DIuiY7It.js +1 -1
  202. package/development/panel-mixin-CFz9-K_8.js +1 -1
  203. package/development/popover.component-Bvbf4NyI.js +1 -1
  204. package/development/radio-button-common-tC_l-WdB.js +1 -1
  205. package/development/radio-button-group/radio-button-group.component.js +1 -1
  206. package/development/radio-button-panel/radio-button-panel.component.js +1 -1
  207. package/development/radio-button.component-3BV31Fkc.js +1 -1
  208. package/development/select.component-VODtrUee.js +1 -1
  209. package/development/selection-action-panel.component-ClpKsc-Z.js +1 -1
  210. package/development/selection-expansion-panel.component-CTCVJiug.js +1 -1
  211. package/development/selection-group-base-element-RafKyWXP.js +1 -1
  212. package/development/sidebar-close-button.component-D_grme_h.js +1 -1
  213. package/development/sidebar-container.component-C_cu3Vfy.js +1 -1
  214. package/development/sidebar-content.component-CbYPeaaz.js +1 -1
  215. package/development/sidebar-title.component-BFqfnG6B.js +1 -1
  216. package/development/sidebar.component-DcVKyd9R.js +1 -1
  217. package/development/signet.component-NdFqUZK9.js +1 -1
  218. package/development/skiplink-list.component-ppyytKn2.js +1 -1
  219. package/development/slider.component-k8g6G0j9.js +1 -1
  220. package/development/status.component-CtTNDvLl.js +1 -1
  221. package/development/step-label.component-BpuNDWKl.js +1 -1
  222. package/development/{step.component-Di2fT-VG.js → step.component-HU8Ji1Pu.js} +11 -2
  223. package/development/stepper/step/step.component.d.ts +1 -0
  224. package/development/stepper/step/step.component.d.ts.map +1 -1
  225. package/development/stepper/step/step.component.js +1 -1
  226. package/development/stepper.component-BnCUoYv6.js +1 -1
  227. package/development/stepper.js +1 -1
  228. package/development/stepper.pure.js +1 -1
  229. package/development/sticky-bar.component-BrSBKlh-.js +1 -1
  230. package/development/tab-group.component-o1F-M_-2.js +1 -1
  231. package/development/tab-label.component-CPaKKeox.js +1 -1
  232. package/development/tab-nav-bar.component-3uXgOman.js +1 -1
  233. package/development/tab.component-DxZtEaTP.js +1 -1
  234. package/development/table-wrapper.component-Ba6NpQu1.js +1 -1
  235. package/development/tag-group.component-CYL62Umh.js +1 -1
  236. package/development/tag.component-D5DYXQ3i.js +1 -1
  237. package/development/teaser-hero.component-DrdkFx5X.js +1 -1
  238. package/development/teaser-panel.component-WSXbBzCq.js +1 -1
  239. package/development/teaser-product/teaser-product-static/teaser-product-static.component.js +1 -1
  240. package/development/teaser-product-common-B8a-KHTi.js +1 -1
  241. package/development/teaser-product.component-gHjSaG6c.js +1 -1
  242. package/development/teaser.component-B8kQNF6g.js +1 -1
  243. package/development/time-input.component-Bc4Sfu-1.js +1 -1
  244. package/development/timetable-form-details.component-DacESFsP.js +1 -1
  245. package/development/timetable-form-field.component-DWCb4SY0.js +1 -1
  246. package/development/timetable-form-swap-button.component-DGCpV2_y.js +1 -1
  247. package/development/timetable-form.component-CtRlKR7e.js +1 -1
  248. package/development/timetable-occupancy-icon.component-uaabLEC5.js +1 -1
  249. package/development/timetable-occupancy.component-DKWki5pG.js +1 -1
  250. package/development/title-base-fg03gSOD.js +1 -1
  251. package/development/title.component-B1Uq-Ctr.js +1 -1
  252. package/development/toast.component-DeQSxWdf.js +1 -1
  253. package/development/toggle-check.component-BUYj49gP.js +1 -1
  254. package/development/toggle-option.component-heU6pMCB.js +1 -1
  255. package/development/toggle.component-DndGyA1x.js +1 -1
  256. package/development/tooltip.component-BjOgv29e.js +1 -1
  257. package/development/train/train-formation-orientation-mixin.js +1 -1
  258. package/development/train/train-wagon/train-wagon.component.js +1 -1
  259. package/development/train/train-wagon-button/train-wagon-button.component.js +1 -1
  260. package/development/train/train-wagon-link/train-wagon-link.component.js +1 -1
  261. package/development/train-blocked-passage.component-2TuSqbDg.js +1 -1
  262. package/development/train-formation.component-BYB03zX5.js +1 -1
  263. package/development/train-wagon-common-C-0fI1r2.js +1 -1
  264. package/development/train.component-BDG8SlCc.js +1 -1
  265. package/development/visual-checkbox.component-Dzdm0TH-.js +1 -1
  266. package/package.json +2 -2
  267. package/{step.component-KiTfzfTj.js → step.component-Djot0mhi.js} +6 -2
  268. package/stepper/step/step.component.js +1 -1
  269. package/stepper.js +1 -1
  270. package/stepper.pure.js +1 -1
@@ -366,4 +366,4 @@ var SbbTooltipElement = (() => {
366
366
  //#endregion
367
367
  export { SbbTooltipElement as t };
368
368
 
369
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5jb21wb25lbnQtQmpPZ3YyOWUuanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2VsZW1lbnRzL3Rvb2x0aXAvdG9vbHRpcC5zY3NzP2lubGluZSIsIi4uLy4uLy4uL3NyYy9lbGVtZW50cy90b29sdGlwL3Rvb2x0aXAuY29tcG9uZW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbIkB1c2UgJy4uL2NvcmUvc3R5bGVzJyBhcyBzYmI7XG5cbjpob3N0IHtcbiAgLS1zYmItdG9vbHRpcC1tYXgtd2lkdGg6IG1pbihcbiAgICAje3NiYi5weC10by1yZW0tYnVpbGQoNDAwKX0sXG4gICAgY2FsYygxMDB2dyAtIHZhcigtLXNiYi1zcGFjaW5nLWZpeGVkLTJ4KSlcbiAgKTtcbiAgLS1zYmItdG9vbHRpcC1hbmltYXRpb24tZHVyYXRpb246IHZhcihcbiAgICAtLXNiYi1kaXNhYmxlLWFuaW1hdGlvbi1kdXJhdGlvbixcbiAgICB2YXIoLS1zYmItYW5pbWF0aW9uLWR1cmF0aW9uLTR4KVxuICApO1xuXG4gIHBvc2l0aW9uLWFyZWE6IHZhcigtLXNiYi1vdmVybGF5LXBvc2l0aW9uLWFyZWEpO1xuICBwb3NpdGlvbi10cnktZmFsbGJhY2tzOiB2YXIoLS1zYmItb3ZlcmxheS1wb3NpdGlvbi10cnktZmFsbGJhY2tzKTtcbiAgZGlzcGxheTogbm9uZTtcbiAgcG9zaXRpb246IGZpeGVkO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgcG9pbnRlci1ldmVudHM6IHZhcigtLXNiYi10b29sdGlwLXBvaW50ZXItZXZlbnRzLCBhbGwpO1xuICB6LWluZGV4OiB2YXIoLS1zYmItdG9vbHRpcC16LWluZGV4LCB2YXIoLS1zYmItb3ZlcmxheS1kZWZhdWx0LXotaW5kZXgpKTtcbiAgYW5pbWF0aW9uLW5hbWU6IHZhcigtLXNiYi10b29sdGlwLWFuaW1hdGlvbi1uYW1lKTtcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiB2YXIoLS1zYmItdG9vbHRpcC1hbmltYXRpb24tZHVyYXRpb24pO1xuICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiB2YXIoLS1zYmItdG9vbHRpcC1hbmltYXRpb24tZWFzaW5nKTtcbiAgZm9udC1zaXplOiB2YXIoLS1zYmItdG9vbHRpcC1mb250LXNpemUpO1xuICBsZXR0ZXItc3BhY2luZzogdmFyKC0tc2JiLXR5cG8tbGV0dGVyLXNwYWNpbmctdGV4dCk7XG4gIGxpbmUtaGVpZ2h0OiB2YXIoLS1zYmItdHlwby1saW5lLWhlaWdodC10ZXh0KTtcblxuICAvLyBSZXNldCBbcG9wb3Zlcl0gc3R5bGVzXG4gIGJvcmRlcjogbm9uZTtcbiAgaW5zZXQ6IGluaXRpYWw7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMDtcbn1cblxuOmhvc3QoOmlzKDpzdGF0ZShzdGF0ZS1vcGVuaW5nKSwgOnN0YXRlKHN0YXRlLW9wZW5lZCksIDpzdGF0ZShzdGF0ZS1jbG9zaW5nKSkpIHtcbiAgLS1zYmItdG9vbHRpcC1hbmltYXRpb24tbmFtZTogb3BlbjtcblxuICBkaXNwbGF5OiBibG9jaztcbn1cblxuOmhvc3QoOnN0YXRlKHN0YXRlLWNsb3NpbmcpKSB7XG4gIC0tc2JiLXRvb2x0aXAtYW5pbWF0aW9uLW5hbWU6IGNsb3NlO1xuICAtLXNiYi10b29sdGlwLXBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG46aG9zdCg6aXMoW2RhdGEtcG9zaXRpb25+PSdibG9jay1lbmQnXSwgW2RhdGEtcG9zaXRpb25+PSdib3R0b20nXSwgW2RhdGEtcG9zaXRpb25ePSdlbmQnXSkpIHtcbiAgcGFkZGluZy1ibG9jay1zdGFydDogdmFyKC0tc2JiLXRvb2x0aXAtZ2FwKTtcbn1cblxuOmhvc3QoOmlzKFtkYXRhLXBvc2l0aW9ufj0nYmxvY2stc3RhcnQnXSwgW2RhdGEtcG9zaXRpb25+PSd0b3AnXSwgW2RhdGEtcG9zaXRpb25ePSdzdGFydCddKSkge1xuICBwYWRkaW5nLWJsb2NrLWVuZDogdmFyKC0tc2JiLXRvb2x0aXAtZ2FwKTtcbn1cblxuOmhvc3QoXG4gIDppcyhcbiAgICBbZGF0YS1wb3NpdGlvbn49J2lubGluZS1zdGFydCddLFxuICAgIFtkYXRhLXBvc2l0aW9ufj0naW5saW5lLWVuZCddLFxuICAgIFtkYXRhLXBvc2l0aW9ufj0nbGVmdCddLFxuICAgIFtkYXRhLXBvc2l0aW9ufj0ncmlnaHQnXSxcbiAgICBbZGF0YS1wb3NpdGlvbiQ9JyBzdGFydCddLFxuICAgIFtkYXRhLXBvc2l0aW9uJD0nIGVuZCddXG4gIClcbikge1xuICAvLyBBZGQgYSBnYXAgb24gYm90aCBzaWRlcyB0byBkaXN0YW5jZSB0aGUgdG9vbHRpcCBmcm9tIHRoZSB0cmlnZ2VyIGFuZCB0aGUgZWRnZSBvZiB0aGUgdmlld3BvcnQuXG4gIHBhZGRpbmctaW5saW5lOiB2YXIoLS1zYmItdG9vbHRpcC1nYXApO1xufVxuXG4uc2JiLXRvb2x0aXAge1xuICBib3gtc2hhZG93OiB2YXIoLS1zYmItYm94LXNoYWRvdy1sZXZlbC01LXNvZnQpO1xuICBib3JkZXI6IHZhcigtLXNiYi1ib3JkZXItd2lkdGgtMXgpIHNvbGlkIHZhcigtLXNiYi10b29sdGlwLWJvcmRlci1jb2xvcik7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXNiYi10b29sdGlwLWJvcmRlci1yYWRpdXMpO1xuICBwYWRkaW5nOiB2YXIoLS1zYmItdG9vbHRpcC1wYWRkaW5nKTtcbiAgY29sb3I6IHZhcigtLXNiYi10b29sdGlwLWNvbG9yKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2JiLXRvb2x0aXAtYmFja2dyb3VuZC1jb2xvcik7XG4gIG1pbi13aWR0aDogdmFyKC0tc2JiLXRvb2x0aXAtbWluLXdpZHRoKTtcbiAgbWF4LXdpZHRoOiB2YXIoLS1zYmItdG9vbHRpcC1tYXgtd2lkdGgpO1xufVxuXG5Aa2V5ZnJhbWVzIG9wZW4ge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zbGF0ZTogdmFyKC0tc2JiLXRvb2x0aXAtYW5pbWF0aW9uLXRyYW5zbGF0ZSk7XG4gIH1cblxuICB0byB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2xhdGU6IDA7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBjbG9zZSB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNsYXRlOiAwO1xuICB9XG5cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNsYXRlOiB2YXIoLS1zYmItdG9vbHRpcC1hbmltYXRpb24tdHJhbnNsYXRlKTtcbiAgfVxufVxuIiwiaW1wb3J0IHtcbiAgdHlwZSBDU1NSZXN1bHRHcm91cCxcbiAgaHRtbCxcbiAgaXNTZXJ2ZXIsXG4gIHR5cGUgUHJvcGVydHlEZWNsYXJhdGlvbixcbiAgdHlwZSBQcm9wZXJ0eVZhbHVlcyxcbiAgdHlwZSBUZW1wbGF0ZVJlc3VsdCxcbiAgdW5zYWZlQ1NTLFxufSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgcHJvcGVydHkgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5cbmltcG9ydCB7XG4gIGFwcGVuZEFyaWFFbGVtZW50cyxcbiAgaWRSZWZlcmVuY2UsXG4gIGlzQW5kcm9pZCxcbiAgaXNJT1MsXG4gIGlzWmVyb0FuaW1hdGlvbkR1cmF0aW9uLFxuICBxdWV1ZURvbUNvbnRlbnRMb2FkZWQsXG4gIHJlYWRDb25maWcsXG4gIHJlbW92ZUFyaWFFbGVtZW50cyxcbiAgU2JiRGlzYWJsZWRNaXhpbixcbiAgU2JiRXNjYXBhYmxlT3ZlcmxheUNvbnRyb2xsZXIsXG4gIFNiYk9wZW5DbG9zZUJhc2VFbGVtZW50LFxuICBzYmJPdmVybGF5T3V0c2lkZVBvaW50ZXJFdmVudExpc3RlbmVyLFxuICBTYmJPdmVybGF5UG9zaXRpb25Db250cm9sbGVyLFxufSBmcm9tICcuLi9jb3JlLnRzJztcblxuaW1wb3J0IHN0eWxlIGZyb20gJy4vdG9vbHRpcC5zY3NzP2lubGluZSc7XG5cbi8qKlxuICogRGVmaW5lcyB0aGUgZGVmYXVsdCBwb3NpdGlvbiBmb3IgdGhlIHRvb2x0aXAgaWYgdGhpcyBlbGVtZW50IGlzIHVzZWQgYXMgYSB0cmlnZ2VyLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNiYlRvb2x0aXBEZWZhdWx0UG9zaXRpb25zIHtcbiAgcmVhZG9ubHkgdG9vbHRpcFBvc2l0aW9uczogc3RyaW5nW107XG59XG5cbi8qKlxuICogVGltZSBiZXR3ZWVuIHRoZSB1c2VyIHB1dHRpbmcgdGhlIHBvaW50ZXIgb24gYSB0b29sdGlwXG4gKiB0cmlnZ2VyIGFuZCB0aGUgbG9uZyBwcmVzcyBldmVudCBiZWluZyBmaXJlZC5cbiAqL1xuY29uc3QgTE9OR1BSRVNTX0RFTEFZID0gNTAwO1xuXG5jb25zdCBpc01vYmlsZSA9IGlzQW5kcm9pZCB8fCBpc0lPUztcbmNvbnN0IHRvb2x0aXBUcmlnZ2VycyA9IG5ldyBXZWFrTWFwPEhUTUxFbGVtZW50LCBTYmJUb29sdGlwRWxlbWVudD4oKTtcblxuLyoqXG4gKiBJdCBkaXNwbGF5cyB0ZXh0IGNvbnRlbnQgd2l0aGluIGEgdG9vbHRpcC5cbiAqXG4gKiBAc2xvdCAtIFVzZSB0aGUgdW5uYW1lZCBzbG90IHRvIGFkZCB0aGUgdGV4dCBpbnRvIHRoZSB0b29sdGlwLlxuICogQGNzc3Byb3AgWy0tc2JiLW92ZXJsYXktcG9zaXRpb24tYXJlYT1ibG9jay1lbmRdIC0gVGhlIHByaW1hcnkgcG9zaXRpb24gZm9yIHRoZSB0b29sdGlwLlxuICogQGNzc3Byb3AgWy0tc2JiLW92ZXJsYXktcG9zaXRpb24tdHJ5LWZhbGxiYWNrcz1ibG9jay1lbmQgc3Bhbi1pbmxpbmUtZW5kLCBibG9jay1lbmQgc3Bhbi1pbmxpbmUtc3RhcnQsIGJsb2NrLXN0YXJ0LCBibG9jay1zdGFydCBzcGFuLWlubGluZS1lbmQsIGJsb2NrLXN0YXJ0IHNwYW4taW5saW5lLXN0YXJ0XSAtXG4gKiBUaGUgbGlzdCBvZiBmYWxsYmFjayBwb3NpdGlvbnMsIHNlcGFyYXRlZCBieSAnLCcsIGZvciB0aGUgdG9vbHRpcFxuICogQGNzc3Byb3AgWy0tc2JiLXRvb2x0aXAtei1pbmRleD12YXIoLS1zYmItb3ZlcmxheS1kZWZhdWx0LXotaW5kZXgpXSAtIFRvIHNwZWNpZnkgYSBjdXN0b20gc3RhY2sgb3JkZXIsXG4gKiB0aGUgYHotaW5kZXhgIGNhbiBiZSBvdmVycmlkZGVuIGJ5IGRlZmluaW5nIHRoaXMgQ1NTIHZhcmlhYmxlLiBUaGUgZGVmYXVsdCBgei1pbmRleGAgb2YgdGhlXG4gKiBjb21wb25lbnQgaXMgc2V0IHRvIGB2YXIoLS1zYmItb3ZlcmxheS1kZWZhdWx0LXotaW5kZXgpYCB3aXRoIGEgdmFsdWUgb2YgYDEwMDBgLlxuICovXG5leHBvcnQgY2xhc3MgU2JiVG9vbHRpcEVsZW1lbnQgZXh0ZW5kcyBTYmJEaXNhYmxlZE1peGluKFNiYk9wZW5DbG9zZUJhc2VFbGVtZW50KSB7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgcmVhZG9ubHkgZWxlbWVudE5hbWU6IHN0cmluZyA9ICdzYmItdG9vbHRpcCc7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgcmVhZG9ubHkgcm9sZSA9ICd0b29sdGlwJztcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSBzdHlsZXM6IENTU1Jlc3VsdEdyb3VwID0gW3Vuc2FmZUNTUyhzdHlsZSldO1xuXG4gIHByaXZhdGUgc3RhdGljIF90b29sdGlwT3V0bGV0OiBFbGVtZW50O1xuXG4gIHN0YXRpYyB7XG4gICAgaWYgKCFpc1NlcnZlcikge1xuICAgICAgLy8gV2UgZG9uJ3Qgd2FudCB0byBibG9jayBleGVjdXRpb24gZm9yIGluaXRpYWxpemF0aW9uLFxuICAgICAgLy8gc28gd2UgZGVmZXIgaXQgdW50aWwgdGhlIERPTSBjb250ZW50IGlzIGxvYWRlZC5cbiAgICAgIHF1ZXVlRG9tQ29udGVudExvYWRlZCgoKSA9PiB0aGlzLl9pbml0aWFsaXplVG9vbHRpcE91dGxldCgpKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVGhlIGVsZW1lbnQgdGhhdCB3aWxsIHRyaWdnZXIgdGhlIHRvb2x0aXAgb3ZlcmxheS5cbiAgICpcbiAgICogRm9yIGF0dHJpYnV0ZSB1c2FnZSwgcHJvdmlkZSBhbiBpZCByZWZlcmVuY2UuXG4gICAqL1xuICBAaWRSZWZlcmVuY2UoKVxuICBAcHJvcGVydHkoKVxuICBwdWJsaWMgYWNjZXNzb3IgdHJpZ2dlcjogSFRNTEVsZW1lbnQgfCBudWxsID0gbnVsbDtcblxuICAvKipcbiAgICogT3BlbiB0aGUgdG9vbHRpcCBhZnRlciBhIGdpdmVuIGRlbGF5IGluIG1pbGxpc2Vjb25kcy5cbiAgICogR2xvYmFsIGNvbmZpZ3VyYXRpb24gaXMgdXNlZCBhcyBkZWZhdWx0LCBpZiBub3Qgc2V0LlxuICAgKlxuICAgKiBAZGVmYXVsdCBudWxsXG4gICAqL1xuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdvcGVuLWRlbGF5JywgdHlwZTogTnVtYmVyIH0pXG4gIHB1YmxpYyBzZXQgb3BlbkRlbGF5KHZhbHVlOiBudW1iZXIgfCBudWxsKSB7XG4gICAgdGhpcy5fb3BlbkRlbGF5ID0gdmFsdWU7XG4gIH1cbiAgcHVibGljIGdldCBvcGVuRGVsYXkoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fb3BlbkRlbGF5ID8/IHJlYWRDb25maWcoKS50b29sdGlwPy5vcGVuRGVsYXkgPz8gMDtcbiAgfVxuICBwcml2YXRlIF9vcGVuRGVsYXk6IG51bWJlciB8IG51bGwgPSBudWxsO1xuXG4gIC8qKlxuICAgKiBDbG9zZSB0aGUgdG9vbHRpcCBhZnRlciBhIGdpdmVuIGRlbGF5IGluIG1pbGxpc2Vjb25kcy5cbiAgICogR2xvYmFsIGNvbmZpZ3VyYXRpb24gaXMgdXNlZCBhcyBkZWZhdWx0LCBpZiBub3Qgc2V0LlxuICAgKlxuICAgKiBAZGVmYXVsdCBudWxsXG4gICAqL1xuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdjbG9zZS1kZWxheScsIHR5cGU6IE51bWJlciB9KVxuICBwdWJsaWMgc2V0IGNsb3NlRGVsYXkodmFsdWU6IG51bWJlciB8IG51bGwpIHtcbiAgICB0aGlzLl9jbG9zZURlbGF5ID0gdmFsdWU7XG4gIH1cbiAgcHVibGljIGdldCBjbG9zZURlbGF5KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX2Nsb3NlRGVsYXkgPz8gcmVhZENvbmZpZygpLnRvb2x0aXA/LmNsb3NlRGVsYXkgPz8gMDtcbiAgfVxuICBwcml2YXRlIF9jbG9zZURlbGF5OiBudW1iZXIgfCBudWxsID0gbnVsbDtcblxuICAvKipcbiAgICogQXV0b21hdGljYWxseSBjbG9zZSB0aGUgdG9vbHRpcCBhZnRlciBpdCBoYXMgYmVlbiBvcGVuIGJ5IGxvbmcgcHJlc3MuXG4gICAqIEdsb2JhbCBjb25maWd1cmF0aW9uIGlzIHVzZWQgYXMgZGVmYXVsdCwgaWYgbm90IHNldC5cbiAgICpcbiAgICogQGRlZmF1bHQgMTUwMFxuICAgKi9cbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAnbG9uZy1wcmVzcy1jbG9zZS1kZWxheScsIHR5cGU6IE51bWJlciB9KVxuICBwdWJsaWMgc2V0IGxvbmdQcmVzc0Nsb3NlRGVsYXkodmFsdWU6IG51bWJlcikge1xuICAgIHRoaXMuX2xvbmdQcmVzc0Nsb3NlRGVsYXkgPSArdmFsdWU7XG4gIH1cbiAgcHVibGljIGdldCBsb25nUHJlc3NDbG9zZURlbGF5KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX2xvbmdQcmVzc0Nsb3NlRGVsYXkgPz8gcmVhZENvbmZpZygpLnRvb2x0aXA/LmxvbmdQcmVzc0Nsb3NlRGVsYXkgPz8gMTUwMDtcbiAgfVxuICBwcml2YXRlIF9sb25nUHJlc3NDbG9zZURlbGF5PzogbnVtYmVyO1xuXG4gIHByaXZhdGUgX3RyaWdnZXJFbGVtZW50OiBIVE1MRWxlbWVudCB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIF90cmlnZ2VyQWJvcnRDb250cm9sbGVyPzogQWJvcnRDb250cm9sbGVyO1xuICBwcml2YXRlIF9vcGVuU3RhdGVDb250cm9sbGVyITogQWJvcnRDb250cm9sbGVyO1xuICBwcml2YXRlIF9lc2NhcGFibGVPdmVybGF5Q29udHJvbGxlciA9IG5ldyBTYmJFc2NhcGFibGVPdmVybGF5Q29udHJvbGxlcih0aGlzKTtcbiAgcHJpdmF0ZSBfb3ZlcmxheUNvbnRyb2xsZXIgPSBuZXcgU2JiT3ZlcmxheVBvc2l0aW9uQ29udHJvbGxlcih0aGlzKTtcbiAgcHJpdmF0ZSBfb3BlblRpbWVvdXQ/OiBSZXR1cm5UeXBlPHR5cGVvZiBzZXRUaW1lb3V0PjtcbiAgcHJpdmF0ZSBfY2xvc2VUaW1lb3V0PzogUmV0dXJuVHlwZTx0eXBlb2Ygc2V0VGltZW91dD47XG4gIHByaXZhdGUgX2xvbmdQcmVzc09wZW5UaW1lb3V0PzogUmV0dXJuVHlwZTx0eXBlb2Ygc2V0VGltZW91dD47XG4gIHByaXZhdGUgX2xvbmdQcmVzc0Nsb3NlVGltZW91dD86IFJldHVyblR5cGU8dHlwZW9mIHNldFRpbWVvdXQ+O1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuXG4gICAgLy8gVW50aWwgdGhlIG1vdXNlIGhvdmVycyB0aGUgdG9vbHRpcCwgaXQgc3RheXMgb3Blbi5cbiAgICAvLyBPbiAnbW91c2VsZWF2ZScgKGlmIHRoZSBtb3VzZSBpcyBub3QgbW92ZWQgb250byB0aGUgdHJpZ2dlciBhZ2FpbiksIGNsb3NlIGl0LlxuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcihcbiAgICAgICdtb3VzZWxlYXZlJyxcbiAgICAgIChldmVudCkgPT4ge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgKHRoaXMuc3RhdGUgPT09ICdvcGVuZWQnIHx8IHRoaXMuc3RhdGUgPT09ICdvcGVuaW5nJykgJiZcbiAgICAgICAgICAoIWV2ZW50LnJlbGF0ZWRUYXJnZXQgfHwgIXRoaXMuX3RyaWdnZXJFbGVtZW50Py5jb250YWlucyhldmVudC5yZWxhdGVkVGFyZ2V0IGFzIE5vZGUpKVxuICAgICAgICApIHtcbiAgICAgICAgICB0aGlzLl9kZWxheWVkQ2xvc2UoKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHsgcGFzc2l2ZTogdHJ1ZSB9LFxuICAgICk7XG5cbiAgICAvLyBBbnkgdXNlciBpbnRlcmFjdGlvbiBvdXRzaWRlIHRoZSB0b29sdGlwIGNsb3NlcyBpdCBpbW1lZGlhdGVseVxuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcignb3ZlcmxheU91dHNpZGVQb2ludGVyJywgKCkgPT4gdGhpcy5jbG9zZSgpLCB7IHBhc3NpdmU6IHRydWUgfSk7XG5cbiAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXIoJ2FuaW1hdGlvbmVuZCcsIChlKSA9PiB0aGlzLl9vblRvb2x0aXBBbmltYXRpb25FbmQoZSksIHsgcGFzc2l2ZTogdHJ1ZSB9KTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIF9pbml0aWFsaXplVG9vbHRpcE91dGxldCgpOiB2b2lkIHtcbiAgICB0aGlzLl90b29sdGlwT3V0bGV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgdGhpcy5fdG9vbHRpcE91dGxldC5jbGFzc0xpc3QuYWRkKCdzYmItb3ZlcmxheS1vdXRsZXQnKTtcbiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHRoaXMuX3Rvb2x0aXBPdXRsZXQpO1xuXG4gICAgLy8gV2UgYXJlIHVzaW5nIE11dGF0aW9uT2JzZXJ2ZXIgZGlyZWN0bHkgaGVyZSwgYXMgaXQgd2lsbCBvbmx5IGJlIGNhbGxlZCBvbiBjbGllbnQgc2lkZSxcbiAgICAvLyBhbmQgd2UgZG8gbm90IG5lZWQgdG8gZGlzY29ubmVjdCBpdCwgYXMgd2Ugd2FudCBpdCB0byB3b3JrIGR1cmluZyB0aGUgZnVsbCBsaWZldGltZVxuICAgIC8vIG9mIHRoZSBwYWdlLlxuICAgIG5ldyBNdXRhdGlvbk9ic2VydmVyKChtdXRhdGlvbnMpID0+IHtcbiAgICAgIGZvciAoY29uc3QgbXV0YXRpb24gb2YgbXV0YXRpb25zKSB7XG4gICAgICAgIGlmIChtdXRhdGlvbi50eXBlID09PSAnYXR0cmlidXRlcycpIHtcbiAgICAgICAgICB0aGlzLl9oYW5kbGVUb29sdGlwVHJpZ2dlcihtdXRhdGlvbi50YXJnZXQgYXMgSFRNTEVsZW1lbnQpO1xuICAgICAgICB9IGVsc2UgaWYgKG11dGF0aW9uLnR5cGUgPT09ICdjaGlsZExpc3QnKSB7XG4gICAgICAgICAgZm9yIChjb25zdCBub2RlIG9mIFsuLi5tdXRhdGlvbi5hZGRlZE5vZGVzLCAuLi5tdXRhdGlvbi5yZW1vdmVkTm9kZXNdLmZpbHRlcihcbiAgICAgICAgICAgIChuKTogbiBpcyBIVE1MRWxlbWVudCA9PiBuLm5vZGVUeXBlID09PSBuLkVMRU1FTlRfTk9ERSxcbiAgICAgICAgICApKSB7XG4gICAgICAgICAgICB0aGlzLl9oYW5kbGVUb29sdGlwVHJpZ2dlcihub2RlKTtcbiAgICAgICAgICAgIHRoaXMuX2ZpbmRBbmRIYW5kbGVUb29sdGlwVHJpZ2dlcnMobm9kZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSkub2JzZXJ2ZShkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsIHtcbiAgICAgIGF0dHJpYnV0ZUZpbHRlcjogW1xuICAgICAgICAnc2JiLXRvb2x0aXAnLFxuICAgICAgICAnc2JiLXRvb2x0aXAtb3Blbi1kZWxheScsXG4gICAgICAgICdzYmItdG9vbHRpcC1jbG9zZS1kZWxheScsXG4gICAgICAgICdzYmItdG9vbHRpcC1wb3NpdGlvbicsXG4gICAgICBdLFxuICAgICAgY2hpbGRMaXN0OiB0cnVlLFxuICAgICAgc3VidHJlZTogdHJ1ZSxcbiAgICB9KTtcbiAgICB0aGlzLl9maW5kQW5kSGFuZGxlVG9vbHRpcFRyaWdnZXJzKGRvY3VtZW50LmJvZHkpO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgX2ZpbmRBbmRIYW5kbGVUb29sdGlwVHJpZ2dlcnMocm9vdDogSFRNTEVsZW1lbnQpOiB2b2lkIHtcbiAgICByb290XG4gICAgICAucXVlcnlTZWxlY3RvckFsbDxIVE1MRWxlbWVudD4oJ1tzYmItdG9vbHRpcF0nKVxuICAgICAgLmZvckVhY2goKGUpID0+IHRoaXMuX2hhbmRsZVRvb2x0aXBUcmlnZ2VyKGUpKTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIF9oYW5kbGVUb29sdGlwVHJpZ2dlcih0cmlnZ2VyRWxlbWVudDogSFRNTEVsZW1lbnQpOiB2b2lkIHtcbiAgICBjb25zdCB0b29sdGlwTWVzc2FnZSA9IHRyaWdnZXJFbGVtZW50LmdldEF0dHJpYnV0ZSgnc2JiLXRvb2x0aXAnKTtcbiAgICBsZXQgdG9vbHRpcCA9IHRvb2x0aXBUcmlnZ2Vycy5nZXQodHJpZ2dlckVsZW1lbnQpO1xuXG4gICAgaWYgKHRvb2x0aXBNZXNzYWdlICYmIHRyaWdnZXJFbGVtZW50LmlzQ29ubmVjdGVkKSB7XG4gICAgICBpZiAoIXRvb2x0aXApIHtcbiAgICAgICAgLy8gQ3JlYXRlIGEgbmV3IHNiYi10b29sdGlwIGluIHRoZSBvdXRsZXQgYW5kIGF0dGFjaCBpdCB0byB0aGUgdHJpZ2dlclxuICAgICAgICB0b29sdGlwID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2JiLXRvb2x0aXAnKTtcbiAgICAgICAgdG9vbHRpcFRyaWdnZXJzLnNldCh0cmlnZ2VyRWxlbWVudCwgdG9vbHRpcCk7XG4gICAgICAgIHRoaXMuX3Rvb2x0aXBPdXRsZXQuYXBwZW5kQ2hpbGQodG9vbHRpcCk7XG4gICAgICAgIHRvb2x0aXAudHJpZ2dlciA9IHRyaWdnZXJFbGVtZW50O1xuICAgICAgfVxuXG4gICAgICB0b29sdGlwLnRleHRDb250ZW50ID0gdG9vbHRpcE1lc3NhZ2U7XG4gICAgICB0b29sdGlwLm9wZW5EZWxheSA9IHRyaWdnZXJFbGVtZW50Lmhhc0F0dHJpYnV0ZSgnc2JiLXRvb2x0aXAtb3Blbi1kZWxheScpXG4gICAgICAgID8gK3RyaWdnZXJFbGVtZW50LmdldEF0dHJpYnV0ZSgnc2JiLXRvb2x0aXAtb3Blbi1kZWxheScpIVxuICAgICAgICA6IG51bGw7XG4gICAgICB0b29sdGlwLmNsb3NlRGVsYXkgPSB0cmlnZ2VyRWxlbWVudC5oYXNBdHRyaWJ1dGUoJ3NiYi10b29sdGlwLWNsb3NlLWRlbGF5JylcbiAgICAgICAgPyArdHJpZ2dlckVsZW1lbnQuZ2V0QXR0cmlidXRlKCdzYmItdG9vbHRpcC1jbG9zZS1kZWxheScpIVxuICAgICAgICA6IG51bGw7XG5cbiAgICAgIC8vIFJlYWQgdGhlIHBvc2l0aW9ucyBmcm9tIHRoZSB0cmlnZ2VyIChlaXRoZXIgZnJvbSB0aGUgYXR0cmlidXRlIG9yIHRoZSBwcm9wZXJ0eSlcbiAgICAgIGNvbnN0IHBvc2l0aW9ucyA9IHRyaWdnZXJFbGVtZW50Lmhhc0F0dHJpYnV0ZSgnc2JiLXRvb2x0aXAtcG9zaXRpb24nKVxuICAgICAgICA/IHRyaWdnZXJFbGVtZW50XG4gICAgICAgICAgICAuZ2V0QXR0cmlidXRlKCdzYmItdG9vbHRpcC1wb3NpdGlvbicpIVxuICAgICAgICAgICAgLnNwbGl0KCcsJylcbiAgICAgICAgICAgIC5tYXAoKHApID0+IHAudHJpbSgpKVxuICAgICAgICA6ICh0cmlnZ2VyRWxlbWVudCBhcyB1bmtub3duIGFzIFNiYlRvb2x0aXBEZWZhdWx0UG9zaXRpb25zKS50b29sdGlwUG9zaXRpb25zO1xuXG4gICAgICBpZiAocG9zaXRpb25zICYmIHBvc2l0aW9ucy5sZW5ndGggPiAwKSB7XG4gICAgICAgIHRvb2x0aXAuc3R5bGUuc2V0UHJvcGVydHkoJy0tc2JiLW92ZXJsYXktcG9zaXRpb24tYXJlYScsIHBvc2l0aW9uc1swXSk7XG4gICAgICAgIHRvb2x0aXAuc3R5bGUuc2V0UHJvcGVydHkoXG4gICAgICAgICAgJy0tc2JiLW92ZXJsYXktcG9zaXRpb24tdHJ5LWZhbGxiYWNrcycsXG4gICAgICAgICAgcG9zaXRpb25zLnNsaWNlKDEpLmpvaW4oJywgJyksXG4gICAgICAgICk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0b29sdGlwLnN0eWxlLnJlbW92ZVByb3BlcnR5KCctLXNiYi1vdmVybGF5LXBvc2l0aW9uLWFyZWEnKTtcbiAgICAgICAgdG9vbHRpcC5zdHlsZS5yZW1vdmVQcm9wZXJ0eSgnLS1zYmItb3ZlcmxheS1wb3NpdGlvbi10cnktZmFsbGJhY2tzJyk7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmICh0b29sdGlwKSB7XG4gICAgICAvLyBUaGUgdHJpZ2dlciBvciB0aGUgYXR0cmlidXRlIGhhcyBiZWVuIGRlbGV0ZWQgPT4gZGVsZXRlIHRoZSBjb25uZWN0ZWQgdG9vbHRpcFxuICAgICAgdG9vbHRpcFRyaWdnZXJzLmRlbGV0ZSh0cmlnZ2VyRWxlbWVudCk7XG4gICAgICAvLyBJZiBhIGNvbnN1bWVyIG92ZXJyaWRlcyB0aGUgYHNiYi10b29sdGlwYCwgdGhlIGZvbGxvd2luZyBjb2RlIHNob3VsZCBub3QgYmVcbiAgICAgIC8vIGV4ZWN1dGVkIGFzIHdlIGNhbid0IGV4cGVjdCB0aGF0IHByaXZhdGUgbWV0aG9kcyBhcmUgbW9ja2VkLlxuICAgICAgdG9vbHRpcC5fZGVzdHJveT8uKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGNvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgIHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgdGhpcy5wb3BvdmVyID0gJ21hbnVhbCc7XG4gICAgdGhpcy5zdGF0ZSA9ICdjbG9zZWQnO1xuICAgIHNiYk92ZXJsYXlPdXRzaWRlUG9pbnRlckV2ZW50TGlzdGVuZXIuY29ubmVjdCh0aGlzKTtcblxuICAgIGlmICh0aGlzLmhhc1VwZGF0ZWQgJiYgdGhpcy50cmlnZ2VyKSB7XG4gICAgICB0aGlzLl9hdHRhY2godGhpcy50cmlnZ2VyKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgZGlzY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKTtcbiAgICBzYmJPdmVybGF5T3V0c2lkZVBvaW50ZXJFdmVudExpc3RlbmVyLmRpc2Nvbm5lY3QodGhpcyk7XG4gICAgdGhpcy5fZGV0YWNoKCk7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgcmVxdWVzdFVwZGF0ZShcbiAgICBuYW1lPzogUHJvcGVydHlLZXksXG4gICAgb2xkVmFsdWU/OiB1bmtub3duLFxuICAgIG9wdGlvbnM/OiBQcm9wZXJ0eURlY2xhcmF0aW9uLFxuICApOiB2b2lkIHtcbiAgICBzdXBlci5yZXF1ZXN0VXBkYXRlKG5hbWUsIG9sZFZhbHVlLCBvcHRpb25zKTtcbiAgICBpZiAoaXNTZXJ2ZXIpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoKCFuYW1lIHx8IG5hbWUgPT09ICd0cmlnZ2VyJykgJiYgdGhpcy5oYXNVcGRhdGVkKSB7XG4gICAgICB0aGlzLl9hdHRhY2godGhpcy50cmlnZ2VyKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgZmlyc3RVcGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzOiBQcm9wZXJ0eVZhbHVlcyk6IHZvaWQge1xuICAgIHN1cGVyLmZpcnN0VXBkYXRlZChjaGFuZ2VkUHJvcGVydGllcyk7XG4gICAgdGhpcy5fYXR0YWNoKHRoaXMudHJpZ2dlcik7XG4gIH1cblxuICBwdWJsaWMgb3BlbigpOiB2b2lkIHtcbiAgICB0aGlzLl9yZXNldE9wZW5DbG9zZVRpbWVvdXQoKTtcbiAgICBpZiAoXG4gICAgICAodGhpcy5zdGF0ZSAhPT0gJ2Nsb3NlZCcgJiYgdGhpcy5zdGF0ZSAhPT0gJ2Nsb3NpbmcnKSB8fFxuICAgICAgdGhpcy5kaXNhYmxlZCB8fFxuICAgICAgIXRoaXMudHJpZ2dlciB8fFxuICAgICAgIXRoaXMuZGlzcGF0Y2hCZWZvcmVPcGVuRXZlbnQoKVxuICAgICkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuc2hvd1BvcG92ZXI/LigpO1xuICAgIHRoaXMuc3RhdGUgPSAnb3BlbmluZyc7XG4gICAgdGhpcy5fb3ZlcmxheUNvbnRyb2xsZXIuY29ubmVjdCh0aGlzLnRyaWdnZXIpO1xuXG4gICAgLy8gSWYgdGhlIGFuaW1hdGlvbiBkdXJhdGlvbiBpcyB6ZXJvLCB0aGUgYW5pbWF0aW9uZW5kIGV2ZW50IGlzIG5vdCBhbHdheXMgZmlyZWQgcmVsaWFibHkuXG4gICAgLy8gSW4gdGhpcyBjYXNlIHdlIGRpcmVjdGx5IHNldCB0aGUgYG9wZW5lZGAgc3RhdGUuXG4gICAgaWYgKHRoaXMuX2lzWmVyb0FuaW1hdGlvbkR1cmF0aW9uKCkpIHtcbiAgICAgIHRoaXMuX2hhbmRsZU9wZW5pbmcoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgY2xvc2UoKTogdm9pZCB7XG4gICAgdGhpcy5fcmVzZXRPcGVuQ2xvc2VUaW1lb3V0KCk7XG4gICAgaWYgKHRoaXMuc3RhdGUgIT09ICdvcGVuZWQnICYmIHRoaXMuc3RhdGUgIT09ICdvcGVuaW5nJykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuZGlzcGF0Y2hCZWZvcmVDbG9zZUV2ZW50KCk7XG4gICAgdGhpcy5zdGF0ZSA9ICdjbG9zaW5nJztcblxuICAgIC8vIElmIHRoZSBhbmltYXRpb24gZHVyYXRpb24gaXMgemVybywgdGhlIGFuaW1hdGlvbmVuZCBldmVudCBpcyBub3QgYWx3YXlzIGZpcmVkIHJlbGlhYmx5LlxuICAgIC8vIEluIHRoaXMgY2FzZSB3ZSBkaXJlY3RseSBzZXQgdGhlIGBjbG9zZWRgIHN0YXRlLlxuICAgIGlmICh0aGlzLl9pc1plcm9BbmltYXRpb25EdXJhdGlvbigpKSB7XG4gICAgICB0aGlzLl9oYW5kbGVDbG9zaW5nKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfZGVsYXllZE9wZW4oKTogdm9pZCB7XG4gICAgdGhpcy5fcmVzZXRPcGVuQ2xvc2VUaW1lb3V0KCk7XG4gICAgdGhpcy5fb3BlblRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHRoaXMub3BlbigpLCB0aGlzLm9wZW5EZWxheSk7XG4gIH1cblxuICBwcml2YXRlIF9oYW5kbGVPcGVuaW5nKCk6IHZvaWQge1xuICAgIHRoaXMuc3RhdGUgPSAnb3BlbmVkJztcbiAgICB0aGlzLl9lc2NhcGFibGVPdmVybGF5Q29udHJvbGxlci5jb25uZWN0KCk7XG4gICAgdGhpcy5kaXNwYXRjaE9wZW5FdmVudCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfZGVsYXllZENsb3NlKCk6IHZvaWQge1xuICAgIHRoaXMuX3Jlc2V0T3BlbkNsb3NlVGltZW91dCgpO1xuICAgIHRoaXMuX2Nsb3NlVGltZW91dCA9IHNldFRpbWVvdXQoKCkgPT4gdGhpcy5jbG9zZSgpLCB0aGlzLmNsb3NlRGVsYXkpO1xuICB9XG5cbiAgcHJpdmF0ZSBfaGFuZGxlQ2xvc2luZygpOiB2b2lkIHtcbiAgICB0aGlzLnN0YXRlID0gJ2Nsb3NlZCc7XG4gICAgdGhpcy5oaWRlUG9wb3Zlcj8uKCk7XG4gICAgdGhpcy5fb3ZlcmxheUNvbnRyb2xsZXIuZGlzY29ubmVjdCgpO1xuXG4gICAgdGhpcy5fZXNjYXBhYmxlT3ZlcmxheUNvbnRyb2xsZXIuZGlzY29ubmVjdCgpO1xuICAgIHRoaXMuZGlzcGF0Y2hDbG9zZUV2ZW50KCk7XG4gICAgdGhpcy5fb3BlblN0YXRlQ29udHJvbGxlcj8uYWJvcnQoKTtcbiAgfVxuXG4gIHByaXZhdGUgX29uVG9vbHRpcEFuaW1hdGlvbkVuZChldmVudDogQW5pbWF0aW9uRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoZXZlbnQuYW5pbWF0aW9uTmFtZSA9PT0gJ29wZW4nICYmIHRoaXMuc3RhdGUgPT09ICdvcGVuaW5nJykge1xuICAgICAgdGhpcy5faGFuZGxlT3BlbmluZygpO1xuICAgIH0gZWxzZSBpZiAoZXZlbnQuYW5pbWF0aW9uTmFtZSA9PT0gJ2Nsb3NlJyAmJiB0aGlzLnN0YXRlID09PSAnY2xvc2luZycpIHtcbiAgICAgIHRoaXMuX2hhbmRsZUNsb3NpbmcoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9hdHRhY2godHJpZ2dlcjogSFRNTEVsZW1lbnQgfCBudWxsKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX3RyaWdnZXJFbGVtZW50KSB7XG4gICAgICAvLyBFdmVudHVhbGx5IGRldGFjaCBmcm9tIHRoZSBvbGQgdHJpZ2dlclxuICAgICAgdGhpcy5fZGV0YWNoKCk7XG4gICAgfVxuXG4gICAgdGhpcy5fdHJpZ2dlckVsZW1lbnQgPSB0cmlnZ2VyO1xuICAgIGlmICghdGhpcy5fdHJpZ2dlckVsZW1lbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5fdHJpZ2dlckVsZW1lbnQuYXJpYURlc2NyaWJlZEJ5RWxlbWVudHMgPSBhcHBlbmRBcmlhRWxlbWVudHMoXG4gICAgICB0aGlzLl90cmlnZ2VyRWxlbWVudC5hcmlhRGVzY3JpYmVkQnlFbGVtZW50cyxcbiAgICAgIHRoaXMsXG4gICAgKTtcbiAgICB0aGlzLl9hZGRUcmlnZ2VyRXZlbnRIYW5kbGVycygpO1xuICB9XG5cbiAgcHJpdmF0ZSBfZGV0YWNoKCk6IHZvaWQge1xuICAgIHRoaXMuX3RyaWdnZXJBYm9ydENvbnRyb2xsZXI/LmFib3J0KCk7XG4gICAgdGhpcy5fb3BlblN0YXRlQ29udHJvbGxlcj8uYWJvcnQoKTtcblxuICAgIC8vIGNsZWFyIHRpbWVvdXRzXG4gICAgdGhpcy5fcmVzZXRPcGVuQ2xvc2VUaW1lb3V0KCk7XG4gICAgY2xlYXJUaW1lb3V0KHRoaXMuX2xvbmdQcmVzc09wZW5UaW1lb3V0KTtcbiAgICBjbGVhclRpbWVvdXQodGhpcy5fbG9uZ1ByZXNzQ2xvc2VUaW1lb3V0KTtcblxuICAgIGlmICghdGhpcy5fdHJpZ2dlckVsZW1lbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5fdHJpZ2dlckVsZW1lbnQuYXJpYURlc2NyaWJlZEJ5RWxlbWVudHMgPSByZW1vdmVBcmlhRWxlbWVudHMoXG4gICAgICB0aGlzLl90cmlnZ2VyRWxlbWVudC5hcmlhRGVzY3JpYmVkQnlFbGVtZW50cyxcbiAgICAgIHRoaXMsXG4gICAgKTtcbiAgICB0aGlzLl90cmlnZ2VyRWxlbWVudCA9IG51bGw7XG4gIH1cblxuICBwcml2YXRlIF9kZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX2RldGFjaCgpO1xuICAgIHRoaXMucmVtb3ZlKCk7XG4gIH1cblxuICBwcml2YXRlIF9hZGRUcmlnZ2VyRXZlbnRIYW5kbGVycygpOiB2b2lkIHtcbiAgICBjb25zdCB0cmlnZ2VyID0gdGhpcy5fdHJpZ2dlckVsZW1lbnQ7XG4gICAgaWYgKCF0cmlnZ2VyKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5fdHJpZ2dlckFib3J0Q29udHJvbGxlcj8uYWJvcnQoKTtcbiAgICB0aGlzLl90cmlnZ2VyQWJvcnRDb250cm9sbGVyID0gbmV3IEFib3J0Q29udHJvbGxlcigpO1xuICAgIGNvbnN0IG9wdGlvbnM6IEFkZEV2ZW50TGlzdGVuZXJPcHRpb25zID0ge1xuICAgICAgc2lnbmFsOiB0aGlzLl90cmlnZ2VyQWJvcnRDb250cm9sbGVyLnNpZ25hbCxcbiAgICAgIHBhc3NpdmU6IHRydWUsXG4gICAgfTtcblxuICAgIGlmICghaXNNb2JpbGUpIHtcbiAgICAgIHRyaWdnZXIuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VlbnRlcicsICgpID0+IHRoaXMuX2RlbGF5ZWRPcGVuKCksIG9wdGlvbnMpO1xuICAgICAgdHJpZ2dlci5hZGRFdmVudExpc3RlbmVyKFxuICAgICAgICAnbW91c2VsZWF2ZScsXG4gICAgICAgIChldmVudCkgPT4ge1xuICAgICAgICAgIGNvbnN0IG5ld1RhcmdldCA9IGV2ZW50LnJlbGF0ZWRUYXJnZXQgYXMgTm9kZSB8IG51bGw7XG4gICAgICAgICAgaWYgKCFuZXdUYXJnZXQgfHwgbmV3VGFyZ2V0ICE9PSB0aGlzKSB7XG4gICAgICAgICAgICB0aGlzLl9kZWxheWVkQ2xvc2UoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIG9wdGlvbnMsXG4gICAgICApO1xuXG4gICAgICAvLyAnYmx1cnMnIGltbWVkaWF0ZWx5IGNsb3NlIHRoZSB0b29sdGlwIGJlY2F1c2UgaXQgaXMgY29uc2lkZXJlZCBhbiAnaW50ZXJhY3Rpb24gd2l0aCBvdGhlciBlbGVtZW50cydcbiAgICAgIHRyaWdnZXIuYWRkRXZlbnRMaXN0ZW5lcignYmx1cicsICgpID0+IHRoaXMuY2xvc2UoKSwgb3B0aW9ucyk7XG4gICAgICB0cmlnZ2VyLmFkZEV2ZW50TGlzdGVuZXIoJ2ZvY3VzJywgKCkgPT4gdGhpcy5fZGVsYXllZE9wZW4oKSwgb3B0aW9ucyk7XG4gICAgfVxuXG4gICAgLy8gTG9uZy1wcmVzcyBldmVudCBoYW5kbGluZyAobWFpbmx5IGZvciBtb2JpbGUgdXNlcnMpXG4gICAgdHJpZ2dlci5hZGRFdmVudExpc3RlbmVyKFxuICAgICAgJ3RvdWNoc3RhcnQnLFxuICAgICAgKCkgPT4ge1xuICAgICAgICBjbGVhclRpbWVvdXQodGhpcy5fbG9uZ1ByZXNzT3BlblRpbWVvdXQpO1xuICAgICAgICBjbGVhclRpbWVvdXQodGhpcy5fbG9uZ1ByZXNzQ2xvc2VUaW1lb3V0KTtcbiAgICAgICAgdGhpcy5fbG9uZ1ByZXNzT3BlblRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHRoaXMub3BlbigpLCBMT05HUFJFU1NfREVMQVkpO1xuICAgICAgfSxcbiAgICAgIG9wdGlvbnMsXG4gICAgKTtcbiAgICB0cmlnZ2VyLmFkZEV2ZW50TGlzdGVuZXIoXG4gICAgICAndG91Y2hlbmQnLFxuICAgICAgKCkgPT4ge1xuICAgICAgICBjbGVhclRpbWVvdXQodGhpcy5fbG9uZ1ByZXNzT3BlblRpbWVvdXQpO1xuICAgICAgICB0aGlzLl9sb25nUHJlc3NDbG9zZVRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHRoaXMuY2xvc2UoKSwgdGhpcy5sb25nUHJlc3NDbG9zZURlbGF5KTtcbiAgICAgIH0sXG4gICAgICBvcHRpb25zLFxuICAgICk7XG4gICAgdHJpZ2dlci5hZGRFdmVudExpc3RlbmVyKFxuICAgICAgJ3RvdWNoY2FuY2VsJyxcbiAgICAgICgpID0+IHtcbiAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuX2xvbmdQcmVzc09wZW5UaW1lb3V0KTtcbiAgICAgIH0sXG4gICAgICBvcHRpb25zLFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIF9pc1plcm9BbmltYXRpb25EdXJhdGlvbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gaXNaZXJvQW5pbWF0aW9uRHVyYXRpb24odGhpcywgJy0tc2JiLXRvb2x0aXAtYW5pbWF0aW9uLWR1cmF0aW9uJyk7XG4gIH1cblxuICBwcml2YXRlIF9yZXNldE9wZW5DbG9zZVRpbWVvdXQoKTogdm9pZCB7XG4gICAgY2xlYXJUaW1lb3V0KHRoaXMuX29wZW5UaW1lb3V0KTtcbiAgICBjbGVhclRpbWVvdXQodGhpcy5fY2xvc2VUaW1lb3V0KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXIoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHJldHVybiBodG1sYFxuICAgICAgPGRpdiBjbGFzcz1cInNiYi10b29sdGlwXCI+XG4gICAgICAgIDxzbG90Pjwvc2xvdD5cbiAgICAgIDwvZGl2PlxuICAgIGA7XG4gIH1cbn1cblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgSFRNTEVsZW1lbnRUYWdOYW1lTWFwIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG4gICAgJ3NiYi10b29sdGlwJzogU2JiVG9vbHRpcEVsZW1lbnQ7XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FDd0NBLElBQU0sa0JBQWtCO0FBRXhCLElBQU0sV0FBVyxhQUFhO0FBQzlCLElBQU0sa0NBQWtCLElBQUksU0FBeUM7Ozs7Ozs7Ozs7OztJQWF4RCwyQkFBaUI7bUJBQVMsaUJBQWlCLHdCQUF3Qjs7Ozs7Ozs7Y0FBbkUsMEJBQTBCLFlBQXlDOzs7MEJBb0I3RSxhQUFhLEVBQ2IsVUFBVSxDQUFBO2dDQVNWLFNBQVM7SUFBRSxXQUFXO0lBQWMsTUFBTTtJQUFRLENBQUMsQ0FBQTtpQ0FlbkQsU0FBUztJQUFFLFdBQVc7SUFBZSxNQUFNO0lBQVEsQ0FBQyxDQUFBOzBDQWVwRCxTQUFTO0lBQUUsV0FBVztJQUEwQixNQUFNO0lBQVEsQ0FBQyxDQUFBO0FBdENoRSxnQkFBQSxNQUFBLE1BQUEscUJBQUE7SUFBQSxNQUFBO0lBQUEsTUFBQTtJQUFB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
369
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5jb21wb25lbnQtQmpPZ3YyOWUuanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2VsZW1lbnRzL3Rvb2x0aXAvdG9vbHRpcC5zY3NzP2lubGluZSIsIi4uLy4uLy4uL3NyYy9lbGVtZW50cy90b29sdGlwL3Rvb2x0aXAuY29tcG9uZW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbIkB1c2UgJy4uL2NvcmUvc3R5bGVzJyBhcyBzYmI7XG5cbjpob3N0IHtcbiAgLS1zYmItdG9vbHRpcC1tYXgtd2lkdGg6IG1pbihcbiAgICAje3NiYi5weC10by1yZW0tYnVpbGQoNDAwKX0sXG4gICAgY2FsYygxMDB2dyAtIHZhcigtLXNiYi1zcGFjaW5nLWZpeGVkLTJ4KSlcbiAgKTtcbiAgLS1zYmItdG9vbHRpcC1hbmltYXRpb24tZHVyYXRpb246IHZhcihcbiAgICAtLXNiYi1kaXNhYmxlLWFuaW1hdGlvbi1kdXJhdGlvbixcbiAgICB2YXIoLS1zYmItYW5pbWF0aW9uLWR1cmF0aW9uLTR4KVxuICApO1xuXG4gIHBvc2l0aW9uLWFyZWE6IHZhcigtLXNiYi1vdmVybGF5LXBvc2l0aW9uLWFyZWEpO1xuICBwb3NpdGlvbi10cnktZmFsbGJhY2tzOiB2YXIoLS1zYmItb3ZlcmxheS1wb3NpdGlvbi10cnktZmFsbGJhY2tzKTtcbiAgZGlzcGxheTogbm9uZTtcbiAgcG9zaXRpb246IGZpeGVkO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgcG9pbnRlci1ldmVudHM6IHZhcigtLXNiYi10b29sdGlwLXBvaW50ZXItZXZlbnRzLCBhbGwpO1xuICB6LWluZGV4OiB2YXIoLS1zYmItdG9vbHRpcC16LWluZGV4LCB2YXIoLS1zYmItb3ZlcmxheS1kZWZhdWx0LXotaW5kZXgpKTtcbiAgYW5pbWF0aW9uLW5hbWU6IHZhcigtLXNiYi10b29sdGlwLWFuaW1hdGlvbi1uYW1lKTtcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiB2YXIoLS1zYmItdG9vbHRpcC1hbmltYXRpb24tZHVyYXRpb24pO1xuICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiB2YXIoLS1zYmItdG9vbHRpcC1hbmltYXRpb24tZWFzaW5nKTtcbiAgZm9udC1zaXplOiB2YXIoLS1zYmItdG9vbHRpcC1mb250LXNpemUpO1xuICBsZXR0ZXItc3BhY2luZzogdmFyKC0tc2JiLXR5cG8tbGV0dGVyLXNwYWNpbmctdGV4dCk7XG4gIGxpbmUtaGVpZ2h0OiB2YXIoLS1zYmItdHlwby1saW5lLWhlaWdodC10ZXh0KTtcblxuICAvLyBSZXNldCBbcG9wb3Zlcl0gc3R5bGVzXG4gIGJvcmRlcjogbm9uZTtcbiAgaW5zZXQ6IGluaXRpYWw7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMDtcbn1cblxuOmhvc3QoOmlzKDpzdGF0ZShzdGF0ZS1vcGVuaW5nKSwgOnN0YXRlKHN0YXRlLW9wZW5lZCksIDpzdGF0ZShzdGF0ZS1jbG9zaW5nKSkpIHtcbiAgLS1zYmItdG9vbHRpcC1hbmltYXRpb24tbmFtZTogb3BlbjtcblxuICBkaXNwbGF5OiBibG9jaztcbn1cblxuOmhvc3QoOnN0YXRlKHN0YXRlLWNsb3NpbmcpKSB7XG4gIC0tc2JiLXRvb2x0aXAtYW5pbWF0aW9uLW5hbWU6IGNsb3NlO1xuICAtLXNiYi10b29sdGlwLXBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG46aG9zdCg6aXMoW2RhdGEtcG9zaXRpb25+PSdibG9jay1lbmQnXSwgW2RhdGEtcG9zaXRpb25+PSdib3R0b20nXSwgW2RhdGEtcG9zaXRpb25ePSdlbmQnXSkpIHtcbiAgcGFkZGluZy1ibG9jay1zdGFydDogdmFyKC0tc2JiLXRvb2x0aXAtZ2FwKTtcbn1cblxuOmhvc3QoOmlzKFtkYXRhLXBvc2l0aW9ufj0nYmxvY2stc3RhcnQnXSwgW2RhdGEtcG9zaXRpb25+PSd0b3AnXSwgW2RhdGEtcG9zaXRpb25ePSdzdGFydCddKSkge1xuICBwYWRkaW5nLWJsb2NrLWVuZDogdmFyKC0tc2JiLXRvb2x0aXAtZ2FwKTtcbn1cblxuOmhvc3QoXG4gIDppcyhcbiAgICBbZGF0YS1wb3NpdGlvbn49J2lubGluZS1zdGFydCddLFxuICAgIFtkYXRhLXBvc2l0aW9ufj0naW5saW5lLWVuZCddLFxuICAgIFtkYXRhLXBvc2l0aW9ufj0nbGVmdCddLFxuICAgIFtkYXRhLXBvc2l0aW9ufj0ncmlnaHQnXSxcbiAgICBbZGF0YS1wb3NpdGlvbiQ9JyBzdGFydCddLFxuICAgIFtkYXRhLXBvc2l0aW9uJD0nIGVuZCddXG4gIClcbikge1xuICAvLyBBZGQgYSBnYXAgb24gYm90aCBzaWRlcyB0byBkaXN0YW5jZSB0aGUgdG9vbHRpcCBmcm9tIHRoZSB0cmlnZ2VyIGFuZCB0aGUgZWRnZSBvZiB0aGUgdmlld3BvcnQuXG4gIHBhZGRpbmctaW5saW5lOiB2YXIoLS1zYmItdG9vbHRpcC1nYXApO1xufVxuXG4uc2JiLXRvb2x0aXAge1xuICBib3gtc2hhZG93OiB2YXIoLS1zYmItYm94LXNoYWRvdy1sZXZlbC01LXNvZnQpO1xuICBib3JkZXI6IHZhcigtLXNiYi1ib3JkZXItd2lkdGgtMXgpIHNvbGlkIHZhcigtLXNiYi10b29sdGlwLWJvcmRlci1jb2xvcik7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXNiYi10b29sdGlwLWJvcmRlci1yYWRpdXMpO1xuICBwYWRkaW5nOiB2YXIoLS1zYmItdG9vbHRpcC1wYWRkaW5nKTtcbiAgY29sb3I6IHZhcigtLXNiYi10b29sdGlwLWNvbG9yKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2JiLXRvb2x0aXAtYmFja2dyb3VuZC1jb2xvcik7XG4gIG1pbi13aWR0aDogdmFyKC0tc2JiLXRvb2x0aXAtbWluLXdpZHRoKTtcbiAgbWF4LXdpZHRoOiB2YXIoLS1zYmItdG9vbHRpcC1tYXgtd2lkdGgpO1xufVxuXG5Aa2V5ZnJhbWVzIG9wZW4ge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zbGF0ZTogdmFyKC0tc2JiLXRvb2x0aXAtYW5pbWF0aW9uLXRyYW5zbGF0ZSk7XG4gIH1cblxuICB0byB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2xhdGU6IDA7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBjbG9zZSB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNsYXRlOiAwO1xuICB9XG5cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNsYXRlOiB2YXIoLS1zYmItdG9vbHRpcC1hbmltYXRpb24tdHJhbnNsYXRlKTtcbiAgfVxufVxuIiwiaW1wb3J0IHtcbiAgdHlwZSBDU1NSZXN1bHRHcm91cCxcbiAgaHRtbCxcbiAgaXNTZXJ2ZXIsXG4gIHR5cGUgUHJvcGVydHlEZWNsYXJhdGlvbixcbiAgdHlwZSBQcm9wZXJ0eVZhbHVlcyxcbiAgdHlwZSBUZW1wbGF0ZVJlc3VsdCxcbiAgdW5zYWZlQ1NTLFxufSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgcHJvcGVydHkgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5cbmltcG9ydCB7XG4gIGFwcGVuZEFyaWFFbGVtZW50cyxcbiAgaWRSZWZlcmVuY2UsXG4gIGlzQW5kcm9pZCxcbiAgaXNJT1MsXG4gIGlzWmVyb0FuaW1hdGlvbkR1cmF0aW9uLFxuICBxdWV1ZURvbUNvbnRlbnRMb2FkZWQsXG4gIHJlYWRDb25maWcsXG4gIHJlbW92ZUFyaWFFbGVtZW50cyxcbiAgU2JiRGlzYWJsZWRNaXhpbixcbiAgU2JiRXNjYXBhYmxlT3ZlcmxheUNvbnRyb2xsZXIsXG4gIFNiYk9wZW5DbG9zZUJhc2VFbGVtZW50LFxuICBzYmJPdmVybGF5T3V0c2lkZVBvaW50ZXJFdmVudExpc3RlbmVyLFxuICBTYmJPdmVybGF5UG9zaXRpb25Db250cm9sbGVyLFxufSBmcm9tICcuLi9jb3JlLnRzJztcblxuaW1wb3J0IHN0eWxlIGZyb20gJy4vdG9vbHRpcC5zY3NzP2lubGluZSc7XG5cbi8qKlxuICogRGVmaW5lcyB0aGUgZGVmYXVsdCBwb3NpdGlvbiBmb3IgdGhlIHRvb2x0aXAgaWYgdGhpcyBlbGVtZW50IGlzIHVzZWQgYXMgYSB0cmlnZ2VyLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNiYlRvb2x0aXBEZWZhdWx0UG9zaXRpb25zIHtcbiAgcmVhZG9ubHkgdG9vbHRpcFBvc2l0aW9uczogc3RyaW5nW107XG59XG5cbi8qKlxuICogVGltZSBiZXR3ZWVuIHRoZSB1c2VyIHB1dHRpbmcgdGhlIHBvaW50ZXIgb24gYSB0b29sdGlwXG4gKiB0cmlnZ2VyIGFuZCB0aGUgbG9uZyBwcmVzcyBldmVudCBiZWluZyBmaXJlZC5cbiAqL1xuY29uc3QgTE9OR1BSRVNTX0RFTEFZID0gNTAwO1xuXG5jb25zdCBpc01vYmlsZSA9IGlzQW5kcm9pZCB8fCBpc0lPUztcbmNvbnN0IHRvb2x0aXBUcmlnZ2VycyA9IG5ldyBXZWFrTWFwPEhUTUxFbGVtZW50LCBTYmJUb29sdGlwRWxlbWVudD4oKTtcblxuLyoqXG4gKiBJdCBkaXNwbGF5cyB0ZXh0IGNvbnRlbnQgd2l0aGluIGEgdG9vbHRpcC5cbiAqXG4gKiBAc2xvdCAtIFVzZSB0aGUgdW5uYW1lZCBzbG90IHRvIGFkZCB0aGUgdGV4dCBpbnRvIHRoZSB0b29sdGlwLlxuICogQGNzc3Byb3AgWy0tc2JiLW92ZXJsYXktcG9zaXRpb24tYXJlYT1ibG9jay1lbmRdIC0gVGhlIHByaW1hcnkgcG9zaXRpb24gZm9yIHRoZSB0b29sdGlwLlxuICogQGNzc3Byb3AgWy0tc2JiLW92ZXJsYXktcG9zaXRpb24tdHJ5LWZhbGxiYWNrcz1ibG9jay1lbmQgc3Bhbi1pbmxpbmUtZW5kLCBibG9jay1lbmQgc3Bhbi1pbmxpbmUtc3RhcnQsIGJsb2NrLXN0YXJ0LCBibG9jay1zdGFydCBzcGFuLWlubGluZS1lbmQsIGJsb2NrLXN0YXJ0IHNwYW4taW5saW5lLXN0YXJ0XSAtXG4gKiBUaGUgbGlzdCBvZiBmYWxsYmFjayBwb3NpdGlvbnMsIHNlcGFyYXRlZCBieSAnLCcsIGZvciB0aGUgdG9vbHRpcFxuICogQGNzc3Byb3AgWy0tc2JiLXRvb2x0aXAtei1pbmRleD12YXIoLS1zYmItb3ZlcmxheS1kZWZhdWx0LXotaW5kZXgpXSAtIFRvIHNwZWNpZnkgYSBjdXN0b20gc3RhY2sgb3JkZXIsXG4gKiB0aGUgYHotaW5kZXhgIGNhbiBiZSBvdmVycmlkZGVuIGJ5IGRlZmluaW5nIHRoaXMgQ1NTIHZhcmlhYmxlLiBUaGUgZGVmYXVsdCBgei1pbmRleGAgb2YgdGhlXG4gKiBjb21wb25lbnQgaXMgc2V0IHRvIGB2YXIoLS1zYmItb3ZlcmxheS1kZWZhdWx0LXotaW5kZXgpYCB3aXRoIGEgdmFsdWUgb2YgYDEwMDBgLlxuICovXG5leHBvcnQgY2xhc3MgU2JiVG9vbHRpcEVsZW1lbnQgZXh0ZW5kcyBTYmJEaXNhYmxlZE1peGluKFNiYk9wZW5DbG9zZUJhc2VFbGVtZW50KSB7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgcmVhZG9ubHkgZWxlbWVudE5hbWU6IHN0cmluZyA9ICdzYmItdG9vbHRpcCc7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgcmVhZG9ubHkgcm9sZSA9ICd0b29sdGlwJztcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSBzdHlsZXM6IENTU1Jlc3VsdEdyb3VwID0gW3Vuc2FmZUNTUyhzdHlsZSldO1xuXG4gIHByaXZhdGUgc3RhdGljIF90b29sdGlwT3V0bGV0OiBFbGVtZW50O1xuXG4gIHN0YXRpYyB7XG4gICAgaWYgKCFpc1NlcnZlcikge1xuICAgICAgLy8gV2UgZG9uJ3Qgd2FudCB0byBibG9jayBleGVjdXRpb24gZm9yIGluaXRpYWxpemF0aW9uLFxuICAgICAgLy8gc28gd2UgZGVmZXIgaXQgdW50aWwgdGhlIERPTSBjb250ZW50IGlzIGxvYWRlZC5cbiAgICAgIHF1ZXVlRG9tQ29udGVudExvYWRlZCgoKSA9PiB0aGlzLl9pbml0aWFsaXplVG9vbHRpcE91dGxldCgpKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVGhlIGVsZW1lbnQgdGhhdCB3aWxsIHRyaWdnZXIgdGhlIHRvb2x0aXAgb3ZlcmxheS5cbiAgICpcbiAgICogRm9yIGF0dHJpYnV0ZSB1c2FnZSwgcHJvdmlkZSBhbiBpZCByZWZlcmVuY2UuXG4gICAqL1xuICBAaWRSZWZlcmVuY2UoKVxuICBAcHJvcGVydHkoKVxuICBwdWJsaWMgYWNjZXNzb3IgdHJpZ2dlcjogSFRNTEVsZW1lbnQgfCBudWxsID0gbnVsbDtcblxuICAvKipcbiAgICogT3BlbiB0aGUgdG9vbHRpcCBhZnRlciBhIGdpdmVuIGRlbGF5IGluIG1pbGxpc2Vjb25kcy5cbiAgICogR2xvYmFsIGNvbmZpZ3VyYXRpb24gaXMgdXNlZCBhcyBkZWZhdWx0LCBpZiBub3Qgc2V0LlxuICAgKlxuICAgKiBAZGVmYXVsdCBudWxsXG4gICAqL1xuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdvcGVuLWRlbGF5JywgdHlwZTogTnVtYmVyIH0pXG4gIHB1YmxpYyBzZXQgb3BlbkRlbGF5KHZhbHVlOiBudW1iZXIgfCBudWxsKSB7XG4gICAgdGhpcy5fb3BlbkRlbGF5ID0gdmFsdWU7XG4gIH1cbiAgcHVibGljIGdldCBvcGVuRGVsYXkoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fb3BlbkRlbGF5ID8/IHJlYWRDb25maWcoKS50b29sdGlwPy5vcGVuRGVsYXkgPz8gMDtcbiAgfVxuICBwcml2YXRlIF9vcGVuRGVsYXk6IG51bWJlciB8IG51bGwgPSBudWxsO1xuXG4gIC8qKlxuICAgKiBDbG9zZSB0aGUgdG9vbHRpcCBhZnRlciBhIGdpdmVuIGRlbGF5IGluIG1pbGxpc2Vjb25kcy5cbiAgICogR2xvYmFsIGNvbmZpZ3VyYXRpb24gaXMgdXNlZCBhcyBkZWZhdWx0LCBpZiBub3Qgc2V0LlxuICAgKlxuICAgKiBAZGVmYXVsdCBudWxsXG4gICAqL1xuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdjbG9zZS1kZWxheScsIHR5cGU6IE51bWJlciB9KVxuICBwdWJsaWMgc2V0IGNsb3NlRGVsYXkodmFsdWU6IG51bWJlciB8IG51bGwpIHtcbiAgICB0aGlzLl9jbG9zZURlbGF5ID0gdmFsdWU7XG4gIH1cbiAgcHVibGljIGdldCBjbG9zZURlbGF5KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX2Nsb3NlRGVsYXkgPz8gcmVhZENvbmZpZygpLnRvb2x0aXA/LmNsb3NlRGVsYXkgPz8gMDtcbiAgfVxuICBwcml2YXRlIF9jbG9zZURlbGF5OiBudW1iZXIgfCBudWxsID0gbnVsbDtcblxuICAvKipcbiAgICogQXV0b21hdGljYWxseSBjbG9zZSB0aGUgdG9vbHRpcCBhZnRlciBpdCBoYXMgYmVlbiBvcGVuIGJ5IGxvbmcgcHJlc3MuXG4gICAqIEdsb2JhbCBjb25maWd1cmF0aW9uIGlzIHVzZWQgYXMgZGVmYXVsdCwgaWYgbm90IHNldC5cbiAgICpcbiAgICogQGRlZmF1bHQgMTUwMFxuICAgKi9cbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAnbG9uZy1wcmVzcy1jbG9zZS1kZWxheScsIHR5cGU6IE51bWJlciB9KVxuICBwdWJsaWMgc2V0IGxvbmdQcmVzc0Nsb3NlRGVsYXkodmFsdWU6IG51bWJlcikge1xuICAgIHRoaXMuX2xvbmdQcmVzc0Nsb3NlRGVsYXkgPSArdmFsdWU7XG4gIH1cbiAgcHVibGljIGdldCBsb25nUHJlc3NDbG9zZURlbGF5KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX2xvbmdQcmVzc0Nsb3NlRGVsYXkgPz8gcmVhZENvbmZpZygpLnRvb2x0aXA/LmxvbmdQcmVzc0Nsb3NlRGVsYXkgPz8gMTUwMDtcbiAgfVxuICBwcml2YXRlIF9sb25nUHJlc3NDbG9zZURlbGF5PzogbnVtYmVyO1xuXG4gIHByaXZhdGUgX3RyaWdnZXJFbGVtZW50OiBIVE1MRWxlbWVudCB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIF90cmlnZ2VyQWJvcnRDb250cm9sbGVyPzogQWJvcnRDb250cm9sbGVyO1xuICBwcml2YXRlIF9vcGVuU3RhdGVDb250cm9sbGVyITogQWJvcnRDb250cm9sbGVyO1xuICBwcml2YXRlIF9lc2NhcGFibGVPdmVybGF5Q29udHJvbGxlciA9IG5ldyBTYmJFc2NhcGFibGVPdmVybGF5Q29udHJvbGxlcih0aGlzKTtcbiAgcHJpdmF0ZSBfb3ZlcmxheUNvbnRyb2xsZXIgPSBuZXcgU2JiT3ZlcmxheVBvc2l0aW9uQ29udHJvbGxlcih0aGlzKTtcbiAgcHJpdmF0ZSBfb3BlblRpbWVvdXQ/OiBSZXR1cm5UeXBlPHR5cGVvZiBzZXRUaW1lb3V0PjtcbiAgcHJpdmF0ZSBfY2xvc2VUaW1lb3V0PzogUmV0dXJuVHlwZTx0eXBlb2Ygc2V0VGltZW91dD47XG4gIHByaXZhdGUgX2xvbmdQcmVzc09wZW5UaW1lb3V0PzogUmV0dXJuVHlwZTx0eXBlb2Ygc2V0VGltZW91dD47XG4gIHByaXZhdGUgX2xvbmdQcmVzc0Nsb3NlVGltZW91dD86IFJldHVyblR5cGU8dHlwZW9mIHNldFRpbWVvdXQ+O1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuXG4gICAgLy8gVW50aWwgdGhlIG1vdXNlIGhvdmVycyB0aGUgdG9vbHRpcCwgaXQgc3RheXMgb3Blbi5cbiAgICAvLyBPbiAnbW91c2VsZWF2ZScgKGlmIHRoZSBtb3VzZSBpcyBub3QgbW92ZWQgb250byB0aGUgdHJpZ2dlciBhZ2FpbiksIGNsb3NlIGl0LlxuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcihcbiAgICAgICdtb3VzZWxlYXZlJyxcbiAgICAgIChldmVudCkgPT4ge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgKHRoaXMuc3RhdGUgPT09ICdvcGVuZWQnIHx8IHRoaXMuc3RhdGUgPT09ICdvcGVuaW5nJykgJiZcbiAgICAgICAgICAoIWV2ZW50LnJlbGF0ZWRUYXJnZXQgfHwgIXRoaXMuX3RyaWdnZXJFbGVtZW50Py5jb250YWlucyhldmVudC5yZWxhdGVkVGFyZ2V0IGFzIE5vZGUpKVxuICAgICAgICApIHtcbiAgICAgICAgICB0aGlzLl9kZWxheWVkQ2xvc2UoKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHsgcGFzc2l2ZTogdHJ1ZSB9LFxuICAgICk7XG5cbiAgICAvLyBBbnkgdXNlciBpbnRlcmFjdGlvbiBvdXRzaWRlIHRoZSB0b29sdGlwIGNsb3NlcyBpdCBpbW1lZGlhdGVseVxuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcignb3ZlcmxheU91dHNpZGVQb2ludGVyJywgKCkgPT4gdGhpcy5jbG9zZSgpLCB7IHBhc3NpdmU6IHRydWUgfSk7XG5cbiAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXIoJ2FuaW1hdGlvbmVuZCcsIChlKSA9PiB0aGlzLl9vblRvb2x0aXBBbmltYXRpb25FbmQoZSksIHsgcGFzc2l2ZTogdHJ1ZSB9KTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIF9pbml0aWFsaXplVG9vbHRpcE91dGxldCgpOiB2b2lkIHtcbiAgICB0aGlzLl90b29sdGlwT3V0bGV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgdGhpcy5fdG9vbHRpcE91dGxldC5jbGFzc0xpc3QuYWRkKCdzYmItb3ZlcmxheS1vdXRsZXQnKTtcbiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHRoaXMuX3Rvb2x0aXBPdXRsZXQpO1xuXG4gICAgLy8gV2UgYXJlIHVzaW5nIE11dGF0aW9uT2JzZXJ2ZXIgZGlyZWN0bHkgaGVyZSwgYXMgaXQgd2lsbCBvbmx5IGJlIGNhbGxlZCBvbiBjbGllbnQgc2lkZSxcbiAgICAvLyBhbmQgd2UgZG8gbm90IG5lZWQgdG8gZGlzY29ubmVjdCBpdCwgYXMgd2Ugd2FudCBpdCB0byB3b3JrIGR1cmluZyB0aGUgZnVsbCBsaWZldGltZVxuICAgIC8vIG9mIHRoZSBwYWdlLlxuICAgIG5ldyBNdXRhdGlvbk9ic2VydmVyKChtdXRhdGlvbnMpID0+IHtcbiAgICAgIGZvciAoY29uc3QgbXV0YXRpb24gb2YgbXV0YXRpb25zKSB7XG4gICAgICAgIGlmIChtdXRhdGlvbi50eXBlID09PSAnYXR0cmlidXRlcycpIHtcbiAgICAgICAgICB0aGlzLl9oYW5kbGVUb29sdGlwVHJpZ2dlcihtdXRhdGlvbi50YXJnZXQgYXMgSFRNTEVsZW1lbnQpO1xuICAgICAgICB9IGVsc2UgaWYgKG11dGF0aW9uLnR5cGUgPT09ICdjaGlsZExpc3QnKSB7XG4gICAgICAgICAgZm9yIChjb25zdCBub2RlIG9mIFsuLi5tdXRhdGlvbi5hZGRlZE5vZGVzLCAuLi5tdXRhdGlvbi5yZW1vdmVkTm9kZXNdLmZpbHRlcihcbiAgICAgICAgICAgIChuKTogbiBpcyBIVE1MRWxlbWVudCA9PiBuLm5vZGVUeXBlID09PSBuLkVMRU1FTlRfTk9ERSxcbiAgICAgICAgICApKSB7XG4gICAgICAgICAgICB0aGlzLl9oYW5kbGVUb29sdGlwVHJpZ2dlcihub2RlKTtcbiAgICAgICAgICAgIHRoaXMuX2ZpbmRBbmRIYW5kbGVUb29sdGlwVHJpZ2dlcnMobm9kZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSkub2JzZXJ2ZShkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsIHtcbiAgICAgIGF0dHJpYnV0ZUZpbHRlcjogW1xuICAgICAgICAnc2JiLXRvb2x0aXAnLFxuICAgICAgICAnc2JiLXRvb2x0aXAtb3Blbi1kZWxheScsXG4gICAgICAgICdzYmItdG9vbHRpcC1jbG9zZS1kZWxheScsXG4gICAgICAgICdzYmItdG9vbHRpcC1wb3NpdGlvbicsXG4gICAgICBdLFxuICAgICAgY2hpbGRMaXN0OiB0cnVlLFxuICAgICAgc3VidHJlZTogdHJ1ZSxcbiAgICB9KTtcbiAgICB0aGlzLl9maW5kQW5kSGFuZGxlVG9vbHRpcFRyaWdnZXJzKGRvY3VtZW50LmJvZHkpO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgX2ZpbmRBbmRIYW5kbGVUb29sdGlwVHJpZ2dlcnMocm9vdDogSFRNTEVsZW1lbnQpOiB2b2lkIHtcbiAgICByb290XG4gICAgICAucXVlcnlTZWxlY3RvckFsbDxIVE1MRWxlbWVudD4oJ1tzYmItdG9vbHRpcF0nKVxuICAgICAgLmZvckVhY2goKGUpID0+IHRoaXMuX2hhbmRsZVRvb2x0aXBUcmlnZ2VyKGUpKTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIF9oYW5kbGVUb29sdGlwVHJpZ2dlcih0cmlnZ2VyRWxlbWVudDogSFRNTEVsZW1lbnQpOiB2b2lkIHtcbiAgICBjb25zdCB0b29sdGlwTWVzc2FnZSA9IHRyaWdnZXJFbGVtZW50LmdldEF0dHJpYnV0ZSgnc2JiLXRvb2x0aXAnKTtcbiAgICBsZXQgdG9vbHRpcCA9IHRvb2x0aXBUcmlnZ2Vycy5nZXQodHJpZ2dlckVsZW1lbnQpO1xuXG4gICAgaWYgKHRvb2x0aXBNZXNzYWdlICYmIHRyaWdnZXJFbGVtZW50LmlzQ29ubmVjdGVkKSB7XG4gICAgICBpZiAoIXRvb2x0aXApIHtcbiAgICAgICAgLy8gQ3JlYXRlIGEgbmV3IHNiYi10b29sdGlwIGluIHRoZSBvdXRsZXQgYW5kIGF0dGFjaCBpdCB0byB0aGUgdHJpZ2dlclxuICAgICAgICB0b29sdGlwID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2JiLXRvb2x0aXAnKTtcbiAgICAgICAgdG9vbHRpcFRyaWdnZXJzLnNldCh0cmlnZ2VyRWxlbWVudCwgdG9vbHRpcCk7XG4gICAgICAgIHRoaXMuX3Rvb2x0aXBPdXRsZXQuYXBwZW5kQ2hpbGQodG9vbHRpcCk7XG4gICAgICAgIHRvb2x0aXAudHJpZ2dlciA9IHRyaWdnZXJFbGVtZW50O1xuICAgICAgfVxuXG4gICAgICB0b29sdGlwLnRleHRDb250ZW50ID0gdG9vbHRpcE1lc3NhZ2U7XG4gICAgICB0b29sdGlwLm9wZW5EZWxheSA9IHRyaWdnZXJFbGVtZW50Lmhhc0F0dHJpYnV0ZSgnc2JiLXRvb2x0aXAtb3Blbi1kZWxheScpXG4gICAgICAgID8gK3RyaWdnZXJFbGVtZW50LmdldEF0dHJpYnV0ZSgnc2JiLXRvb2x0aXAtb3Blbi1kZWxheScpIVxuICAgICAgICA6IG51bGw7XG4gICAgICB0b29sdGlwLmNsb3NlRGVsYXkgPSB0cmlnZ2VyRWxlbWVudC5oYXNBdHRyaWJ1dGUoJ3NiYi10b29sdGlwLWNsb3NlLWRlbGF5JylcbiAgICAgICAgPyArdHJpZ2dlckVsZW1lbnQuZ2V0QXR0cmlidXRlKCdzYmItdG9vbHRpcC1jbG9zZS1kZWxheScpIVxuICAgICAgICA6IG51bGw7XG5cbiAgICAgIC8vIFJlYWQgdGhlIHBvc2l0aW9ucyBmcm9tIHRoZSB0cmlnZ2VyIChlaXRoZXIgZnJvbSB0aGUgYXR0cmlidXRlIG9yIHRoZSBwcm9wZXJ0eSlcbiAgICAgIGNvbnN0IHBvc2l0aW9ucyA9IHRyaWdnZXJFbGVtZW50Lmhhc0F0dHJpYnV0ZSgnc2JiLXRvb2x0aXAtcG9zaXRpb24nKVxuICAgICAgICA/IHRyaWdnZXJFbGVtZW50XG4gICAgICAgICAgICAuZ2V0QXR0cmlidXRlKCdzYmItdG9vbHRpcC1wb3NpdGlvbicpIVxuICAgICAgICAgICAgLnNwbGl0KCcsJylcbiAgICAgICAgICAgIC5tYXAoKHApID0+IHAudHJpbSgpKVxuICAgICAgICA6ICh0cmlnZ2VyRWxlbWVudCBhcyB1bmtub3duIGFzIFNiYlRvb2x0aXBEZWZhdWx0UG9zaXRpb25zKS50b29sdGlwUG9zaXRpb25zO1xuXG4gICAgICBpZiAocG9zaXRpb25zICYmIHBvc2l0aW9ucy5sZW5ndGggPiAwKSB7XG4gICAgICAgIHRvb2x0aXAuc3R5bGUuc2V0UHJvcGVydHkoJy0tc2JiLW92ZXJsYXktcG9zaXRpb24tYXJlYScsIHBvc2l0aW9uc1swXSk7XG4gICAgICAgIHRvb2x0aXAuc3R5bGUuc2V0UHJvcGVydHkoXG4gICAgICAgICAgJy0tc2JiLW92ZXJsYXktcG9zaXRpb24tdHJ5LWZhbGxiYWNrcycsXG4gICAgICAgICAgcG9zaXRpb25zLnNsaWNlKDEpLmpvaW4oJywgJyksXG4gICAgICAgICk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0b29sdGlwLnN0eWxlLnJlbW92ZVByb3BlcnR5KCctLXNiYi1vdmVybGF5LXBvc2l0aW9uLWFyZWEnKTtcbiAgICAgICAgdG9vbHRpcC5zdHlsZS5yZW1vdmVQcm9wZXJ0eSgnLS1zYmItb3ZlcmxheS1wb3NpdGlvbi10cnktZmFsbGJhY2tzJyk7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmICh0b29sdGlwKSB7XG4gICAgICAvLyBUaGUgdHJpZ2dlciBvciB0aGUgYXR0cmlidXRlIGhhcyBiZWVuIGRlbGV0ZWQgPT4gZGVsZXRlIHRoZSBjb25uZWN0ZWQgdG9vbHRpcFxuICAgICAgdG9vbHRpcFRyaWdnZXJzLmRlbGV0ZSh0cmlnZ2VyRWxlbWVudCk7XG4gICAgICAvLyBJZiBhIGNvbnN1bWVyIG92ZXJyaWRlcyB0aGUgYHNiYi10b29sdGlwYCwgdGhlIGZvbGxvd2luZyBjb2RlIHNob3VsZCBub3QgYmVcbiAgICAgIC8vIGV4ZWN1dGVkIGFzIHdlIGNhbid0IGV4cGVjdCB0aGF0IHByaXZhdGUgbWV0aG9kcyBhcmUgbW9ja2VkLlxuICAgICAgdG9vbHRpcC5fZGVzdHJveT8uKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGNvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgIHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgdGhpcy5wb3BvdmVyID0gJ21hbnVhbCc7XG4gICAgdGhpcy5zdGF0ZSA9ICdjbG9zZWQnO1xuICAgIHNiYk92ZXJsYXlPdXRzaWRlUG9pbnRlckV2ZW50TGlzdGVuZXIuY29ubmVjdCh0aGlzKTtcblxuICAgIGlmICh0aGlzLmhhc1VwZGF0ZWQgJiYgdGhpcy50cmlnZ2VyKSB7XG4gICAgICB0aGlzLl9hdHRhY2godGhpcy50cmlnZ2VyKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgZGlzY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKTtcbiAgICBzYmJPdmVybGF5T3V0c2lkZVBvaW50ZXJFdmVudExpc3RlbmVyLmRpc2Nvbm5lY3QodGhpcyk7XG4gICAgdGhpcy5fZGV0YWNoKCk7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgcmVxdWVzdFVwZGF0ZShcbiAgICBuYW1lPzogUHJvcGVydHlLZXksXG4gICAgb2xkVmFsdWU/OiB1bmtub3duLFxuICAgIG9wdGlvbnM/OiBQcm9wZXJ0eURlY2xhcmF0aW9uLFxuICApOiB2b2lkIHtcbiAgICBzdXBlci5yZXF1ZXN0VXBkYXRlKG5hbWUsIG9sZFZhbHVlLCBvcHRpb25zKTtcbiAgICBpZiAoaXNTZXJ2ZXIpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoKCFuYW1lIHx8IG5hbWUgPT09ICd0cmlnZ2VyJykgJiYgdGhpcy5oYXNVcGRhdGVkKSB7XG4gICAgICB0aGlzLl9hdHRhY2godGhpcy50cmlnZ2VyKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgZmlyc3RVcGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzOiBQcm9wZXJ0eVZhbHVlcyk6IHZvaWQge1xuICAgIHN1cGVyLmZpcnN0VXBkYXRlZChjaGFuZ2VkUHJvcGVydGllcyk7XG4gICAgdGhpcy5fYXR0YWNoKHRoaXMudHJpZ2dlcik7XG4gIH1cblxuICBwdWJsaWMgb3BlbigpOiB2b2lkIHtcbiAgICB0aGlzLl9yZXNldE9wZW5DbG9zZVRpbWVvdXQoKTtcbiAgICBpZiAoXG4gICAgICAodGhpcy5zdGF0ZSAhPT0gJ2Nsb3NlZCcgJiYgdGhpcy5zdGF0ZSAhPT0gJ2Nsb3NpbmcnKSB8fFxuICAgICAgdGhpcy5kaXNhYmxlZCB8fFxuICAgICAgIXRoaXMudHJpZ2dlciB8fFxuICAgICAgIXRoaXMuZGlzcGF0Y2hCZWZvcmVPcGVuRXZlbnQoKVxuICAgICkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuc2hvd1BvcG92ZXI/LigpO1xuICAgIHRoaXMuc3RhdGUgPSAnb3BlbmluZyc7XG4gICAgdGhpcy5fb3ZlcmxheUNvbnRyb2xsZXIuY29ubmVjdCh0aGlzLnRyaWdnZXIpO1xuXG4gICAgLy8gSWYgdGhlIGFuaW1hdGlvbiBkdXJhdGlvbiBpcyB6ZXJvLCB0aGUgYW5pbWF0aW9uZW5kIGV2ZW50IGlzIG5vdCBhbHdheXMgZmlyZWQgcmVsaWFibHkuXG4gICAgLy8gSW4gdGhpcyBjYXNlIHdlIGRpcmVjdGx5IHNldCB0aGUgYG9wZW5lZGAgc3RhdGUuXG4gICAgaWYgKHRoaXMuX2lzWmVyb0FuaW1hdGlvbkR1cmF0aW9uKCkpIHtcbiAgICAgIHRoaXMuX2hhbmRsZU9wZW5pbmcoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgY2xvc2UoKTogdm9pZCB7XG4gICAgdGhpcy5fcmVzZXRPcGVuQ2xvc2VUaW1lb3V0KCk7XG4gICAgaWYgKHRoaXMuc3RhdGUgIT09ICdvcGVuZWQnICYmIHRoaXMuc3RhdGUgIT09ICdvcGVuaW5nJykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuZGlzcGF0Y2hCZWZvcmVDbG9zZUV2ZW50KCk7XG4gICAgdGhpcy5zdGF0ZSA9ICdjbG9zaW5nJztcblxuICAgIC8vIElmIHRoZSBhbmltYXRpb24gZHVyYXRpb24gaXMgemVybywgdGhlIGFuaW1hdGlvbmVuZCBldmVudCBpcyBub3QgYWx3YXlzIGZpcmVkIHJlbGlhYmx5LlxuICAgIC8vIEluIHRoaXMgY2FzZSB3ZSBkaXJlY3RseSBzZXQgdGhlIGBjbG9zZWRgIHN0YXRlLlxuICAgIGlmICh0aGlzLl9pc1plcm9BbmltYXRpb25EdXJhdGlvbigpKSB7XG4gICAgICB0aGlzLl9oYW5kbGVDbG9zaW5nKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfZGVsYXllZE9wZW4oKTogdm9pZCB7XG4gICAgdGhpcy5fcmVzZXRPcGVuQ2xvc2VUaW1lb3V0KCk7XG4gICAgdGhpcy5fb3BlblRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHRoaXMub3BlbigpLCB0aGlzLm9wZW5EZWxheSk7XG4gIH1cblxuICBwcml2YXRlIF9oYW5kbGVPcGVuaW5nKCk6IHZvaWQge1xuICAgIHRoaXMuc3RhdGUgPSAnb3BlbmVkJztcbiAgICB0aGlzLl9lc2NhcGFibGVPdmVybGF5Q29udHJvbGxlci5jb25uZWN0KCk7XG4gICAgdGhpcy5kaXNwYXRjaE9wZW5FdmVudCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfZGVsYXllZENsb3NlKCk6IHZvaWQge1xuICAgIHRoaXMuX3Jlc2V0T3BlbkNsb3NlVGltZW91dCgpO1xuICAgIHRoaXMuX2Nsb3NlVGltZW91dCA9IHNldFRpbWVvdXQoKCkgPT4gdGhpcy5jbG9zZSgpLCB0aGlzLmNsb3NlRGVsYXkpO1xuICB9XG5cbiAgcHJpdmF0ZSBfaGFuZGxlQ2xvc2luZygpOiB2b2lkIHtcbiAgICB0aGlzLnN0YXRlID0gJ2Nsb3NlZCc7XG4gICAgdGhpcy5oaWRlUG9wb3Zlcj8uKCk7XG4gICAgdGhpcy5fb3ZlcmxheUNvbnRyb2xsZXIuZGlzY29ubmVjdCgpO1xuXG4gICAgdGhpcy5fZXNjYXBhYmxlT3ZlcmxheUNvbnRyb2xsZXIuZGlzY29ubmVjdCgpO1xuICAgIHRoaXMuZGlzcGF0Y2hDbG9zZUV2ZW50KCk7XG4gICAgdGhpcy5fb3BlblN0YXRlQ29udHJvbGxlcj8uYWJvcnQoKTtcbiAgfVxuXG4gIHByaXZhdGUgX29uVG9vbHRpcEFuaW1hdGlvbkVuZChldmVudDogQW5pbWF0aW9uRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoZXZlbnQuYW5pbWF0aW9uTmFtZSA9PT0gJ29wZW4nICYmIHRoaXMuc3RhdGUgPT09ICdvcGVuaW5nJykge1xuICAgICAgdGhpcy5faGFuZGxlT3BlbmluZygpO1xuICAgIH0gZWxzZSBpZiAoZXZlbnQuYW5pbWF0aW9uTmFtZSA9PT0gJ2Nsb3NlJyAmJiB0aGlzLnN0YXRlID09PSAnY2xvc2luZycpIHtcbiAgICAgIHRoaXMuX2hhbmRsZUNsb3NpbmcoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9hdHRhY2godHJpZ2dlcjogSFRNTEVsZW1lbnQgfCBudWxsKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX3RyaWdnZXJFbGVtZW50KSB7XG4gICAgICAvLyBFdmVudHVhbGx5IGRldGFjaCBmcm9tIHRoZSBvbGQgdHJpZ2dlclxuICAgICAgdGhpcy5fZGV0YWNoKCk7XG4gICAgfVxuXG4gICAgdGhpcy5fdHJpZ2dlckVsZW1lbnQgPSB0cmlnZ2VyO1xuICAgIGlmICghdGhpcy5fdHJpZ2dlckVsZW1lbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5fdHJpZ2dlckVsZW1lbnQuYXJpYURlc2NyaWJlZEJ5RWxlbWVudHMgPSBhcHBlbmRBcmlhRWxlbWVudHMoXG4gICAgICB0aGlzLl90cmlnZ2VyRWxlbWVudC5hcmlhRGVzY3JpYmVkQnlFbGVtZW50cyxcbiAgICAgIHRoaXMsXG4gICAgKTtcbiAgICB0aGlzLl9hZGRUcmlnZ2VyRXZlbnRIYW5kbGVycygpO1xuICB9XG5cbiAgcHJpdmF0ZSBfZGV0YWNoKCk6IHZvaWQge1xuICAgIHRoaXMuX3RyaWdnZXJBYm9ydENvbnRyb2xsZXI/LmFib3J0KCk7XG4gICAgdGhpcy5fb3BlblN0YXRlQ29udHJvbGxlcj8uYWJvcnQoKTtcblxuICAgIC8vIGNsZWFyIHRpbWVvdXRzXG4gICAgdGhpcy5fcmVzZXRPcGVuQ2xvc2VUaW1lb3V0KCk7XG4gICAgY2xlYXJUaW1lb3V0KHRoaXMuX2xvbmdQcmVzc09wZW5UaW1lb3V0KTtcbiAgICBjbGVhclRpbWVvdXQodGhpcy5fbG9uZ1ByZXNzQ2xvc2VUaW1lb3V0KTtcblxuICAgIGlmICghdGhpcy5fdHJpZ2dlckVsZW1lbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5fdHJpZ2dlckVsZW1lbnQuYXJpYURlc2NyaWJlZEJ5RWxlbWVudHMgPSByZW1vdmVBcmlhRWxlbWVudHMoXG4gICAgICB0aGlzLl90cmlnZ2VyRWxlbWVudC5hcmlhRGVzY3JpYmVkQnlFbGVtZW50cyxcbiAgICAgIHRoaXMsXG4gICAgKTtcbiAgICB0aGlzLl90cmlnZ2VyRWxlbWVudCA9IG51bGw7XG4gIH1cblxuICBwcml2YXRlIF9kZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX2RldGFjaCgpO1xuICAgIHRoaXMucmVtb3ZlKCk7XG4gIH1cblxuICBwcml2YXRlIF9hZGRUcmlnZ2VyRXZlbnRIYW5kbGVycygpOiB2b2lkIHtcbiAgICBjb25zdCB0cmlnZ2VyID0gdGhpcy5fdHJpZ2dlckVsZW1lbnQ7XG4gICAgaWYgKCF0cmlnZ2VyKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5fdHJpZ2dlckFib3J0Q29udHJvbGxlcj8uYWJvcnQoKTtcbiAgICB0aGlzLl90cmlnZ2VyQWJvcnRDb250cm9sbGVyID0gbmV3IEFib3J0Q29udHJvbGxlcigpO1xuICAgIGNvbnN0IG9wdGlvbnM6IEFkZEV2ZW50TGlzdGVuZXJPcHRpb25zID0ge1xuICAgICAgc2lnbmFsOiB0aGlzLl90cmlnZ2VyQWJvcnRDb250cm9sbGVyLnNpZ25hbCxcbiAgICAgIHBhc3NpdmU6IHRydWUsXG4gICAgfTtcblxuICAgIGlmICghaXNNb2JpbGUpIHtcbiAgICAgIHRyaWdnZXIuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VlbnRlcicsICgpID0+IHRoaXMuX2RlbGF5ZWRPcGVuKCksIG9wdGlvbnMpO1xuICAgICAgdHJpZ2dlci5hZGRFdmVudExpc3RlbmVyKFxuICAgICAgICAnbW91c2VsZWF2ZScsXG4gICAgICAgIChldmVudCkgPT4ge1xuICAgICAgICAgIGNvbnN0IG5ld1RhcmdldCA9IGV2ZW50LnJlbGF0ZWRUYXJnZXQgYXMgTm9kZSB8IG51bGw7XG4gICAgICAgICAgaWYgKCFuZXdUYXJnZXQgfHwgbmV3VGFyZ2V0ICE9PSB0aGlzKSB7XG4gICAgICAgICAgICB0aGlzLl9kZWxheWVkQ2xvc2UoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIG9wdGlvbnMsXG4gICAgICApO1xuXG4gICAgICAvLyAnYmx1cnMnIGltbWVkaWF0ZWx5IGNsb3NlIHRoZSB0b29sdGlwIGJlY2F1c2UgaXQgaXMgY29uc2lkZXJlZCBhbiAnaW50ZXJhY3Rpb24gd2l0aCBvdGhlciBlbGVtZW50cydcbiAgICAgIHRyaWdnZXIuYWRkRXZlbnRMaXN0ZW5lcignYmx1cicsICgpID0+IHRoaXMuY2xvc2UoKSwgb3B0aW9ucyk7XG4gICAgICB0cmlnZ2VyLmFkZEV2ZW50TGlzdGVuZXIoJ2ZvY3VzJywgKCkgPT4gdGhpcy5fZGVsYXllZE9wZW4oKSwgb3B0aW9ucyk7XG4gICAgfVxuXG4gICAgLy8gTG9uZy1wcmVzcyBldmVudCBoYW5kbGluZyAobWFpbmx5IGZvciBtb2JpbGUgdXNlcnMpXG4gICAgdHJpZ2dlci5hZGRFdmVudExpc3RlbmVyKFxuICAgICAgJ3RvdWNoc3RhcnQnLFxuICAgICAgKCkgPT4ge1xuICAgICAgICBjbGVhclRpbWVvdXQodGhpcy5fbG9uZ1ByZXNzT3BlblRpbWVvdXQpO1xuICAgICAgICBjbGVhclRpbWVvdXQodGhpcy5fbG9uZ1ByZXNzQ2xvc2VUaW1lb3V0KTtcbiAgICAgICAgdGhpcy5fbG9uZ1ByZXNzT3BlblRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHRoaXMub3BlbigpLCBMT05HUFJFU1NfREVMQVkpO1xuICAgICAgfSxcbiAgICAgIG9wdGlvbnMsXG4gICAgKTtcbiAgICB0cmlnZ2VyLmFkZEV2ZW50TGlzdGVuZXIoXG4gICAgICAndG91Y2hlbmQnLFxuICAgICAgKCkgPT4ge1xuICAgICAgICBjbGVhclRpbWVvdXQodGhpcy5fbG9uZ1ByZXNzT3BlblRpbWVvdXQpO1xuICAgICAgICB0aGlzLl9sb25nUHJlc3NDbG9zZVRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHRoaXMuY2xvc2UoKSwgdGhpcy5sb25nUHJlc3NDbG9zZURlbGF5KTtcbiAgICAgIH0sXG4gICAgICBvcHRpb25zLFxuICAgICk7XG4gICAgdHJpZ2dlci5hZGRFdmVudExpc3RlbmVyKFxuICAgICAgJ3RvdWNoY2FuY2VsJyxcbiAgICAgICgpID0+IHtcbiAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuX2xvbmdQcmVzc09wZW5UaW1lb3V0KTtcbiAgICAgIH0sXG4gICAgICBvcHRpb25zLFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIF9pc1plcm9BbmltYXRpb25EdXJhdGlvbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gaXNaZXJvQW5pbWF0aW9uRHVyYXRpb24odGhpcywgJy0tc2JiLXRvb2x0aXAtYW5pbWF0aW9uLWR1cmF0aW9uJyk7XG4gIH1cblxuICBwcml2YXRlIF9yZXNldE9wZW5DbG9zZVRpbWVvdXQoKTogdm9pZCB7XG4gICAgY2xlYXJUaW1lb3V0KHRoaXMuX29wZW5UaW1lb3V0KTtcbiAgICBjbGVhclRpbWVvdXQodGhpcy5fY2xvc2VUaW1lb3V0KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXIoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHJldHVybiBodG1sYFxuICAgICAgPGRpdiBjbGFzcz1cInNiYi10b29sdGlwXCI+XG4gICAgICAgIDxzbG90Pjwvc2xvdD5cbiAgICAgIDwvZGl2PlxuICAgIGA7XG4gIH1cbn1cblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgSFRNTEVsZW1lbnRUYWdOYW1lTWFwIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG4gICAgJ3NiYi10b29sdGlwJzogU2JiVG9vbHRpcEVsZW1lbnQ7XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FDd0NBLElBQU0sa0JBQWtCO0FBRXhCLElBQU0sV0FBVyxhQUFhO0FBQzlCLElBQU0sa0NBQWtCLElBQUksU0FBeUM7Ozs7Ozs7Ozs7OztJQWF4RCwyQkFBaUI7bUJBQVMsaUJBQWlCLHdCQUF3Qjs7Ozs7Ozs7Y0FBbkUsMEJBQTBCLFlBQXlDOzs7MEJBb0I3RSxhQUFhLEVBQ2IsVUFBVSxDQUFBO2dDQVNWLFNBQVM7SUFBRSxXQUFXO0lBQWMsTUFBTTtJQUFRLENBQUMsQ0FBQTtpQ0FlbkQsU0FBUztJQUFFLFdBQVc7SUFBZSxNQUFNO0lBQVEsQ0FBQyxDQUFBOzBDQWVwRCxTQUFTO0lBQUUsV0FBVztJQUEwQixNQUFNO0lBQVEsQ0FBQyxDQUFBO0dBdENoRSxhQUFBLE1BQUEsTUFBQSxxQkFBQTtJQUFBLE1BQUE7SUFBQSxNQUFBO0lBQUEs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
@@ -59,4 +59,4 @@ var SbbTrainFormationOrientationMixin = (superClass) => {
59
59
  //#endregion
60
60
  export { SbbTrainFormationOrientationMixin };
61
61
 
62
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhaW4tZm9ybWF0aW9uLW9yaWVudGF0aW9uLW1peGluLmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy90cmFpbi90cmFpbi1mb3JtYXRpb24tb3JpZW50YXRpb24tbWl4aW4udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgc3RhdGUgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5cbmltcG9ydCB0eXBlIHsgU2JiRWxlbWVudCB9IGZyb20gJy4uL2NvcmUvYmFzZS1lbGVtZW50cy9lbGVtZW50LnRzJztcbmltcG9ydCB0eXBlIHsgQWJzdHJhY3RDb25zdHJ1Y3RvciB9IGZyb20gJy4uL2NvcmUvbWl4aW5zL2NvbnN0cnVjdG9yLnRzJztcbmltcG9ydCB7IHR5cGUgU2JiT3JpZW50YXRpb24sIFNiYlByb3BlcnR5V2F0Y2hlckNvbnRyb2xsZXIgfSBmcm9tICcuLi9jb3JlLnRzJztcblxuaW1wb3J0IHR5cGUgeyBTYmJUcmFpbkZvcm1hdGlvbkVsZW1lbnQgfSBmcm9tICcuL3RyYWluLWZvcm1hdGlvbi90cmFpbi1mb3JtYXRpb24uY29tcG9uZW50LnRzJztcblxuZXhwb3J0IGRlY2xhcmUgY2xhc3MgU2JiVHJhaW5Gb3JtYXRpb25PcmllbnRhdGlvbk1peGluVHlwZSB7XG4gIHByb3RlY3RlZCByZWFkb25seSBvcmllbnRhdGlvbjogU2JiT3JpZW50YXRpb24gfCBudWxsO1xufVxuXG4vKipcbiAqIE1peGluIHRoYXQgcmVhZHMgdGhlIGBvcmllbnRhdGlvbmAgcHJvcGVydHkgZnJvbSB0aGUgY2xvc2VzdCBgc2JiLXRyYWluLWZvcm1hdGlvbmBcbiAqIGFuZCByZWZsZWN0cyBpdCBhcyBhIENTUyBjdXN0b20gc3RhdGUgKGBvcmllbnRhdGlvbi1ob3Jpem9udGFsYCAvIGBvcmllbnRhdGlvbi12ZXJ0aWNhbGApLlxuICovXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG5leHBvcnQgY29uc3QgU2JiVHJhaW5Gb3JtYXRpb25PcmllbnRhdGlvbk1peGluID0gPFQgZXh0ZW5kcyBBYnN0cmFjdENvbnN0cnVjdG9yPFNiYkVsZW1lbnQ+PihcbiAgc3VwZXJDbGFzczogVCxcbik6IEFic3RyYWN0Q29uc3RydWN0b3I8U2JiVHJhaW5Gb3JtYXRpb25PcmllbnRhdGlvbk1peGluVHlwZT4gJiBUID0+IHtcbiAgYWJzdHJhY3QgY2xhc3MgU2JiVHJhaW5Gb3JtYXRpb25PcmllbnRhdGlvbkVsZW1lbnRcbiAgICBleHRlbmRzIHN1cGVyQ2xhc3NcbiAgICBpbXBsZW1lbnRzIFBhcnRpYWw8U2JiVHJhaW5Gb3JtYXRpb25PcmllbnRhdGlvbk1peGluVHlwZT5cbiAge1xuICAgIEBzdGF0ZSgpIHByb3RlY3RlZCBhY2Nlc3NvciBvcmllbnRhdGlvbjogU2JiT3JpZW50YXRpb24gfCBudWxsID0gbnVsbDtcblxuICAgIHByb3RlY3RlZCBjb25zdHJ1Y3RvciguLi5hcmdzOiBhbnlbXSkge1xuICAgICAgc3VwZXIoLi4uYXJncyk7XG4gICAgICB0aGlzLmFkZENvbnRyb2xsZXIoXG4gICAgICAgIG5ldyBTYmJQcm9wZXJ0eVdhdGNoZXJDb250cm9sbGVyKHRoaXMsICgpID0+IHRoaXMuY2xvc2VzdCgnc2JiLXRyYWluLWZvcm1hdGlvbicpLCB7XG4gICAgICAgICAgb3JpZW50YXRpb246ICh0OiBTYmJUcmFpbkZvcm1hdGlvbkVsZW1lbnQpID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLm9yaWVudGF0aW9uKSB7XG4gICAgICAgICAgICAgIHRoaXMuaW50ZXJuYWxzLnN0YXRlcy5kZWxldGUoYG9yaWVudGF0aW9uLSR7dGhpcy5vcmllbnRhdGlvbn1gKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMub3JpZW50YXRpb24gPSB0Lm9yaWVudGF0aW9uO1xuICAgICAgICAgICAgaWYgKHRoaXMub3JpZW50YXRpb24pIHtcbiAgICAgICAgICAgICAgdGhpcy5pbnRlcm5hbHMuc3RhdGVzLmFkZChgb3JpZW50YXRpb24tJHt0aGlzLm9yaWVudGF0aW9ufWApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgIH0pLFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gU2JiVHJhaW5Gb3JtYXRpb25PcmllbnRhdGlvbkVsZW1lbnQgYXMgdW5rbm93biBhcyBBYnN0cmFjdENvbnN0cnVjdG9yPFNiYlRyYWluRm9ybWF0aW9uT3JpZW50YXRpb25NaXhpblR5cGU+ICZcbiAgICBUO1xufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFpQkEsSUFBYSxxQ0FDWCxlQUNrRTtBQXlCbEUsZUF4QmtEO29CQUN4Qzs7OztlQURLLDRDQUNMLFlBQVU7OzsrQkFHakIsT0FBTyxDQUFBO0FBQUMsaUJBQUEsTUFBQSxNQUFBLHlCQUFBO0tBQUEsTUFBQTtLQUFBLE1BQUE7S0FBQSxRQUFBO0tBQUEsU0FBQTtLQUFBLFFBQUE7TUFBQSxNQUFBLFFBQUEsaUJBQUE7TUFBQSxNQUFBLFFBQUEsSUFBbUI7TUFBVyxNQUFBLEtBQUEsVUFBQTtBQUFBLFdBQVgsY0FBVzs7TUFBQTtLQUFBLFVBQUE7S0FBQSxFQUFBLDJCQUFBLCtCQUFBOzs7Ozs7OztHQUE5QixnQ0FBQSxrQkFBQSxNQUFBLDJCQUF3RCxLQUFJO0dBQTVELElBQW1CLGNBQVc7QUFBQSxXQUFBLE1BQUE7O0dBQTlCLElBQW1CLFlBQVcsT0FBQTtBQUFBLFVBQUEsK0JBQUE7O0dBRXZDLFlBQXNCLEdBQUcsTUFBVztBQUNsQyxVQUFNLEdBQUcsS0FBSzs7QUFDZCxTQUFLLGNBQ0gsSUFBSSw2QkFBNkIsWUFBWSxLQUFLLFFBQVEsc0JBQXNCLEVBQUUsRUFDaEYsY0FBYyxNQUErQjtBQUMzQyxTQUFJLEtBQUssWUFDUCxNQUFLLFVBQVUsT0FBTyxPQUFPLGVBQWUsS0FBSyxjQUFjO0FBRWpFLFVBQUssY0FBYyxFQUFFO0FBQ3JCLFNBQUksS0FBSyxZQUNQLE1BQUssVUFBVSxPQUFPLElBQUksZUFBZSxLQUFLLGNBQWM7T0FHakUsQ0FBQyxDQUNIOzs7S0FJRSJ9
62
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhaW4tZm9ybWF0aW9uLW9yaWVudGF0aW9uLW1peGluLmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy90cmFpbi90cmFpbi1mb3JtYXRpb24tb3JpZW50YXRpb24tbWl4aW4udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgc3RhdGUgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5cbmltcG9ydCB0eXBlIHsgU2JiRWxlbWVudCB9IGZyb20gJy4uL2NvcmUvYmFzZS1lbGVtZW50cy9lbGVtZW50LnRzJztcbmltcG9ydCB0eXBlIHsgQWJzdHJhY3RDb25zdHJ1Y3RvciB9IGZyb20gJy4uL2NvcmUvbWl4aW5zL2NvbnN0cnVjdG9yLnRzJztcbmltcG9ydCB7IHR5cGUgU2JiT3JpZW50YXRpb24sIFNiYlByb3BlcnR5V2F0Y2hlckNvbnRyb2xsZXIgfSBmcm9tICcuLi9jb3JlLnRzJztcblxuaW1wb3J0IHR5cGUgeyBTYmJUcmFpbkZvcm1hdGlvbkVsZW1lbnQgfSBmcm9tICcuL3RyYWluLWZvcm1hdGlvbi90cmFpbi1mb3JtYXRpb24uY29tcG9uZW50LnRzJztcblxuZXhwb3J0IGRlY2xhcmUgY2xhc3MgU2JiVHJhaW5Gb3JtYXRpb25PcmllbnRhdGlvbk1peGluVHlwZSB7XG4gIHByb3RlY3RlZCByZWFkb25seSBvcmllbnRhdGlvbjogU2JiT3JpZW50YXRpb24gfCBudWxsO1xufVxuXG4vKipcbiAqIE1peGluIHRoYXQgcmVhZHMgdGhlIGBvcmllbnRhdGlvbmAgcHJvcGVydHkgZnJvbSB0aGUgY2xvc2VzdCBgc2JiLXRyYWluLWZvcm1hdGlvbmBcbiAqIGFuZCByZWZsZWN0cyBpdCBhcyBhIENTUyBjdXN0b20gc3RhdGUgKGBvcmllbnRhdGlvbi1ob3Jpem9udGFsYCAvIGBvcmllbnRhdGlvbi12ZXJ0aWNhbGApLlxuICovXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG5leHBvcnQgY29uc3QgU2JiVHJhaW5Gb3JtYXRpb25PcmllbnRhdGlvbk1peGluID0gPFQgZXh0ZW5kcyBBYnN0cmFjdENvbnN0cnVjdG9yPFNiYkVsZW1lbnQ+PihcbiAgc3VwZXJDbGFzczogVCxcbik6IEFic3RyYWN0Q29uc3RydWN0b3I8U2JiVHJhaW5Gb3JtYXRpb25PcmllbnRhdGlvbk1peGluVHlwZT4gJiBUID0+IHtcbiAgYWJzdHJhY3QgY2xhc3MgU2JiVHJhaW5Gb3JtYXRpb25PcmllbnRhdGlvbkVsZW1lbnRcbiAgICBleHRlbmRzIHN1cGVyQ2xhc3NcbiAgICBpbXBsZW1lbnRzIFBhcnRpYWw8U2JiVHJhaW5Gb3JtYXRpb25PcmllbnRhdGlvbk1peGluVHlwZT5cbiAge1xuICAgIEBzdGF0ZSgpIHByb3RlY3RlZCBhY2Nlc3NvciBvcmllbnRhdGlvbjogU2JiT3JpZW50YXRpb24gfCBudWxsID0gbnVsbDtcblxuICAgIHByb3RlY3RlZCBjb25zdHJ1Y3RvciguLi5hcmdzOiBhbnlbXSkge1xuICAgICAgc3VwZXIoLi4uYXJncyk7XG4gICAgICB0aGlzLmFkZENvbnRyb2xsZXIoXG4gICAgICAgIG5ldyBTYmJQcm9wZXJ0eVdhdGNoZXJDb250cm9sbGVyKHRoaXMsICgpID0+IHRoaXMuY2xvc2VzdCgnc2JiLXRyYWluLWZvcm1hdGlvbicpLCB7XG4gICAgICAgICAgb3JpZW50YXRpb246ICh0OiBTYmJUcmFpbkZvcm1hdGlvbkVsZW1lbnQpID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLm9yaWVudGF0aW9uKSB7XG4gICAgICAgICAgICAgIHRoaXMuaW50ZXJuYWxzLnN0YXRlcy5kZWxldGUoYG9yaWVudGF0aW9uLSR7dGhpcy5vcmllbnRhdGlvbn1gKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMub3JpZW50YXRpb24gPSB0Lm9yaWVudGF0aW9uO1xuICAgICAgICAgICAgaWYgKHRoaXMub3JpZW50YXRpb24pIHtcbiAgICAgICAgICAgICAgdGhpcy5pbnRlcm5hbHMuc3RhdGVzLmFkZChgb3JpZW50YXRpb24tJHt0aGlzLm9yaWVudGF0aW9ufWApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgIH0pLFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gU2JiVHJhaW5Gb3JtYXRpb25PcmllbnRhdGlvbkVsZW1lbnQgYXMgdW5rbm93biBhcyBBYnN0cmFjdENvbnN0cnVjdG9yPFNiYlRyYWluRm9ybWF0aW9uT3JpZW50YXRpb25NaXhpblR5cGU+ICZcbiAgICBUO1xufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFpQkEsSUFBYSxxQ0FDWCxlQUNrRTtDQXlCbEUsY0F4QmtEO29CQUN4Qzs7OztlQURLLDRDQUNMLFlBQVU7OzsrQkFHakIsT0FBTyxDQUFBO0lBQUMsYUFBQSxNQUFBLE1BQUEseUJBQUE7S0FBQSxNQUFBO0tBQUEsTUFBQTtLQUFBLFFBQUE7S0FBQSxTQUFBO0tBQUEsUUFBQTtNQUFBLE1BQUEsUUFBQSxpQkFBQTtNQUFBLE1BQUEsUUFBQSxJQUFtQjtNQUFXLE1BQUEsS0FBQSxVQUFBO09BQUEsSUFBWCxjQUFXOztNQUFBO0tBQUEsVUFBQTtLQUFBLEVBQUEsMkJBQUEsK0JBQUE7Ozs7Ozs7O0dBQTlCLGdDQUFBLGtCQUFBLE1BQUEsMkJBQXdELEtBQUk7R0FBNUQsSUFBbUIsY0FBVztJQUFBLE9BQUEsS0FBQTs7R0FBOUIsSUFBbUIsWUFBVyxPQUFBO0lBQUEsS0FBQSxnQ0FBQTs7R0FFdkMsWUFBc0IsR0FBRyxNQUFXO0lBQ2xDLE1BQU0sR0FBRyxLQUFLOztJQUNkLEtBQUssY0FDSCxJQUFJLDZCQUE2QixZQUFZLEtBQUssUUFBUSxzQkFBc0IsRUFBRSxFQUNoRixjQUFjLE1BQStCO0tBQzNDLElBQUksS0FBSyxhQUNQLEtBQUssVUFBVSxPQUFPLE9BQU8sZUFBZSxLQUFLLGNBQWM7S0FFakUsS0FBSyxjQUFjLEVBQUU7S0FDckIsSUFBSSxLQUFLLGFBQ1AsS0FBSyxVQUFVLE9BQU8sSUFBSSxlQUFlLEtBQUssY0FBYztPQUdqRSxDQUFDLENBQ0g7OztLQUlFIn0=
@@ -17,4 +17,4 @@ var SbbTrainWagonElement = class extends SbbTrainWagonMixin(SbbElement) {
17
17
  //#endregion
18
18
  export { SbbTrainWagonElement };
19
19
 
20
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhaW4td2Fnb24uY29tcG9uZW50LmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy90cmFpbi90cmFpbi13YWdvbi90cmFpbi13YWdvbi5jb21wb25lbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBUZW1wbGF0ZVJlc3VsdCB9IGZyb20gJ2xpdCc7XG5cbmltcG9ydCB7IFNiYkVsZW1lbnQgfSBmcm9tICcuLi8uLi9jb3JlLnRzJztcbmltcG9ydCB7IFNiYlRyYWluV2Fnb25NaXhpbiB9IGZyb20gJy4uL3RyYWluLXdhZ29uLWNvbW1vbi50cyc7XG5cbi8qKlxuICogSXQgZGlzcGxheXMgYSB0cmFpbiBjb21wYXJ0bWVudCB3aXRoaW4gYSBgc2JiLXRyYWluYCBjb21wb25lbnQuXG4gKlxuICogQHNsb3QgLSBVc2UgdGhlIHVubmFtZWQgc2xvdCB0byBhZGQgb25lIG9yIG1vcmUgYHNiYi1pY29uYCBmb3IgbWV0YS1pbmZvcm1hdGlvbiBvZiB0aGUgd2Fnb24uXG4gKi9cbmV4cG9ydCBjbGFzcyBTYmJUcmFpbldhZ29uRWxlbWVudCBleHRlbmRzIFNiYlRyYWluV2Fnb25NaXhpbihTYmJFbGVtZW50KSB7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgcmVhZG9ubHkgZWxlbWVudE5hbWU6IHN0cmluZyA9ICdzYmItdHJhaW4td2Fnb24nO1xuXG4gIHB1YmxpYyBvdmVycmlkZSByZW5kZXIoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHJldHVybiB0aGlzLnJlbmRlclRlbXBsYXRlKCk7XG4gIH1cbn1cblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgSFRNTEVsZW1lbnRUYWdOYW1lTWFwIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG4gICAgJ3NiYi10cmFpbi13YWdvbic6IFNiYlRyYWluV2Fnb25FbGVtZW50O1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBVUEsSUFBYSx1QkFBYixjQUEwQyxtQkFBbUIsV0FBVyxDQUFBOztBQUN0QyxPQUFBLGNBQXNCOztDQUV0QyxTQUFNO0FBQ3BCLFNBQU8sS0FBSyxnQkFBZ0IifQ==
20
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhaW4td2Fnb24uY29tcG9uZW50LmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy90cmFpbi90cmFpbi13YWdvbi90cmFpbi13YWdvbi5jb21wb25lbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBUZW1wbGF0ZVJlc3VsdCB9IGZyb20gJ2xpdCc7XG5cbmltcG9ydCB7IFNiYkVsZW1lbnQgfSBmcm9tICcuLi8uLi9jb3JlLnRzJztcbmltcG9ydCB7IFNiYlRyYWluV2Fnb25NaXhpbiB9IGZyb20gJy4uL3RyYWluLXdhZ29uLWNvbW1vbi50cyc7XG5cbi8qKlxuICogSXQgZGlzcGxheXMgYSB0cmFpbiBjb21wYXJ0bWVudCB3aXRoaW4gYSBgc2JiLXRyYWluYCBjb21wb25lbnQuXG4gKlxuICogQHNsb3QgLSBVc2UgdGhlIHVubmFtZWQgc2xvdCB0byBhZGQgb25lIG9yIG1vcmUgYHNiYi1pY29uYCBmb3IgbWV0YS1pbmZvcm1hdGlvbiBvZiB0aGUgd2Fnb24uXG4gKi9cbmV4cG9ydCBjbGFzcyBTYmJUcmFpbldhZ29uRWxlbWVudCBleHRlbmRzIFNiYlRyYWluV2Fnb25NaXhpbihTYmJFbGVtZW50KSB7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgcmVhZG9ubHkgZWxlbWVudE5hbWU6IHN0cmluZyA9ICdzYmItdHJhaW4td2Fnb24nO1xuXG4gIHB1YmxpYyBvdmVycmlkZSByZW5kZXIoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHJldHVybiB0aGlzLnJlbmRlclRlbXBsYXRlKCk7XG4gIH1cbn1cblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgSFRNTEVsZW1lbnRUYWdOYW1lTWFwIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG4gICAgJ3NiYi10cmFpbi13YWdvbic6IFNiYlRyYWluV2Fnb25FbGVtZW50O1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBVUEsSUFBYSx1QkFBYixjQUEwQyxtQkFBbUIsV0FBVyxDQUFBOztFQUN0QyxLQUFBLGNBQXNCOztDQUV0QyxTQUFNO0VBQ3BCLE9BQU8sS0FBSyxnQkFBZ0IifQ==
@@ -15,4 +15,4 @@ var SbbTrainWagonButtonElement = class extends SbbTrainWagonMixin(SbbButtonBaseE
15
15
  //#endregion
16
16
  export { SbbTrainWagonButtonElement };
17
17
 
18
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhaW4td2Fnb24tYnV0dG9uLmNvbXBvbmVudC5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvdHJhaW4vdHJhaW4td2Fnb24tYnV0dG9uL3RyYWluLXdhZ29uLWJ1dHRvbi5jb21wb25lbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2JiQnV0dG9uQmFzZUVsZW1lbnQgfSBmcm9tICcuLi8uLi9jb3JlLnRzJztcbmltcG9ydCB7IFNiYlRyYWluV2Fnb25NaXhpbiB9IGZyb20gJy4uL3RyYWluLXdhZ29uLWNvbW1vbi50cyc7XG5cbi8qKlxuICogSXQgZGlzcGxheXMgYSB0cmFpbiBjb21wYXJ0bWVudCB3aXRoaW4gYSBgc2JiLXRyYWluYCBjb21wb25lbnQgYW5kIGJlaGF2ZXMgbGlrZSBhIGJ1dHRvbi5cbiAqIEl0IGNhbiBiZSB1c2VkIHRvIGRpc3BsYXkgdGhlIHRyYWluIGNvbXBhcnRtZW50IGFzIHdlbGwgYXMgdG8gdHJpZ2dlciBhbiBhY3Rpb24sIGUuZy4sIHRvIHNob3cgbW9yZSBkZXRhaWxzIGFib3V0IHRoZSB0cmFpbiBjb21wYXJ0bWVudC5cbiAqXG4gKiBAc2xvdCAtIFVzZSB0aGUgdW5uYW1lZCBzbG90IHRvIGFkZCBvbmUgb3IgbW9yZSBgc2JiLWljb25gIGZvciBtZXRhLWluZm9ybWF0aW9uIG9mIHRoZSB3YWdvbi5cbiAqL1xuZXhwb3J0IGNsYXNzIFNiYlRyYWluV2Fnb25CdXR0b25FbGVtZW50IGV4dGVuZHMgU2JiVHJhaW5XYWdvbk1peGluKFNiYkJ1dHRvbkJhc2VFbGVtZW50KSB7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgcmVhZG9ubHkgZWxlbWVudE5hbWU6IHN0cmluZyA9ICdzYmItdHJhaW4td2Fnb24tYnV0dG9uJztcbn1cblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgSFRNTEVsZW1lbnRUYWdOYW1lTWFwIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG4gICAgJ3NiYi10cmFpbi13YWdvbi1idXR0b24nOiBTYmJUcmFpbldhZ29uQnV0dG9uRWxlbWVudDtcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFTQSxJQUFhLDZCQUFiLGNBQWdELG1CQUFtQixxQkFBcUIsQ0FBQTs7QUFDdEQsT0FBQSxjQUFzQiJ9
18
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhaW4td2Fnb24tYnV0dG9uLmNvbXBvbmVudC5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvdHJhaW4vdHJhaW4td2Fnb24tYnV0dG9uL3RyYWluLXdhZ29uLWJ1dHRvbi5jb21wb25lbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2JiQnV0dG9uQmFzZUVsZW1lbnQgfSBmcm9tICcuLi8uLi9jb3JlLnRzJztcbmltcG9ydCB7IFNiYlRyYWluV2Fnb25NaXhpbiB9IGZyb20gJy4uL3RyYWluLXdhZ29uLWNvbW1vbi50cyc7XG5cbi8qKlxuICogSXQgZGlzcGxheXMgYSB0cmFpbiBjb21wYXJ0bWVudCB3aXRoaW4gYSBgc2JiLXRyYWluYCBjb21wb25lbnQgYW5kIGJlaGF2ZXMgbGlrZSBhIGJ1dHRvbi5cbiAqIEl0IGNhbiBiZSB1c2VkIHRvIGRpc3BsYXkgdGhlIHRyYWluIGNvbXBhcnRtZW50IGFzIHdlbGwgYXMgdG8gdHJpZ2dlciBhbiBhY3Rpb24sIGUuZy4sIHRvIHNob3cgbW9yZSBkZXRhaWxzIGFib3V0IHRoZSB0cmFpbiBjb21wYXJ0bWVudC5cbiAqXG4gKiBAc2xvdCAtIFVzZSB0aGUgdW5uYW1lZCBzbG90IHRvIGFkZCBvbmUgb3IgbW9yZSBgc2JiLWljb25gIGZvciBtZXRhLWluZm9ybWF0aW9uIG9mIHRoZSB3YWdvbi5cbiAqL1xuZXhwb3J0IGNsYXNzIFNiYlRyYWluV2Fnb25CdXR0b25FbGVtZW50IGV4dGVuZHMgU2JiVHJhaW5XYWdvbk1peGluKFNiYkJ1dHRvbkJhc2VFbGVtZW50KSB7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgcmVhZG9ubHkgZWxlbWVudE5hbWU6IHN0cmluZyA9ICdzYmItdHJhaW4td2Fnb24tYnV0dG9uJztcbn1cblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgSFRNTEVsZW1lbnRUYWdOYW1lTWFwIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG4gICAgJ3NiYi10cmFpbi13YWdvbi1idXR0b24nOiBTYmJUcmFpbldhZ29uQnV0dG9uRWxlbWVudDtcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFTQSxJQUFhLDZCQUFiLGNBQWdELG1CQUFtQixxQkFBcUIsQ0FBQTs7RUFDdEQsS0FBQSxjQUFzQiJ9
@@ -15,4 +15,4 @@ var SbbTrainWagonLinkElement = class extends SbbTrainWagonMixin(SbbLinkBaseEleme
15
15
  //#endregion
16
16
  export { SbbTrainWagonLinkElement };
17
17
 
18
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhaW4td2Fnb24tbGluay5jb21wb25lbnQuanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL3RyYWluL3RyYWluLXdhZ29uLWxpbmsvdHJhaW4td2Fnb24tbGluay5jb21wb25lbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2JiTGlua0Jhc2VFbGVtZW50IH0gZnJvbSAnLi4vLi4vY29yZS50cyc7XG5pbXBvcnQgeyBTYmJUcmFpbldhZ29uTWl4aW4gfSBmcm9tICcuLi90cmFpbi13YWdvbi1jb21tb24udHMnO1xuXG4vKipcbiAqIEl0IGRpc3BsYXlzIGEgdHJhaW4gY29tcGFydG1lbnQgd2l0aGluIGEgYHNiYi10cmFpbmAgY29tcG9uZW50IGFuZCBiZWhhdmVzIGxpa2UgYSBsaW5rLlxuICogSXQgY2FuIGJlIHVzZWQgdG8gZGlzcGxheSB0aGUgdHJhaW4gY29tcGFydG1lbnQgYXMgd2VsbCBhcyB0byB0cmlnZ2VyIGFuIGFjdGlvbiwgZS5nLiwgdG8gc2hvdyBtb3JlIGRldGFpbHMgYWJvdXQgdGhlIHRyYWluIGNvbXBhcnRtZW50LlxuICpcbiAqIEBzbG90IC0gVXNlIHRoZSB1bm5hbWVkIHNsb3QgdG8gYWRkIG9uZSBvciBtb3JlIGBzYmItaWNvbmAgZm9yIG1ldGEtaW5mb3JtYXRpb24gb2YgdGhlIHdhZ29uLlxuICovXG5leHBvcnQgY2xhc3MgU2JiVHJhaW5XYWdvbkxpbmtFbGVtZW50IGV4dGVuZHMgU2JiVHJhaW5XYWdvbk1peGluKFNiYkxpbmtCYXNlRWxlbWVudCkge1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHJlYWRvbmx5IGVsZW1lbnROYW1lOiBzdHJpbmcgPSAnc2JiLXRyYWluLXdhZ29uLWxpbmsnO1xufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAnc2JiLXRyYWluLXdhZ29uLWxpbmsnOiBTYmJUcmFpbldhZ29uTGlua0VsZW1lbnQ7XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBU0EsSUFBYSwyQkFBYixjQUE4QyxtQkFBbUIsbUJBQW1CLENBQUE7O0FBQ2xELE9BQUEsY0FBc0IifQ==
18
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhaW4td2Fnb24tbGluay5jb21wb25lbnQuanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL3RyYWluL3RyYWluLXdhZ29uLWxpbmsvdHJhaW4td2Fnb24tbGluay5jb21wb25lbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2JiTGlua0Jhc2VFbGVtZW50IH0gZnJvbSAnLi4vLi4vY29yZS50cyc7XG5pbXBvcnQgeyBTYmJUcmFpbldhZ29uTWl4aW4gfSBmcm9tICcuLi90cmFpbi13YWdvbi1jb21tb24udHMnO1xuXG4vKipcbiAqIEl0IGRpc3BsYXlzIGEgdHJhaW4gY29tcGFydG1lbnQgd2l0aGluIGEgYHNiYi10cmFpbmAgY29tcG9uZW50IGFuZCBiZWhhdmVzIGxpa2UgYSBsaW5rLlxuICogSXQgY2FuIGJlIHVzZWQgdG8gZGlzcGxheSB0aGUgdHJhaW4gY29tcGFydG1lbnQgYXMgd2VsbCBhcyB0byB0cmlnZ2VyIGFuIGFjdGlvbiwgZS5nLiwgdG8gc2hvdyBtb3JlIGRldGFpbHMgYWJvdXQgdGhlIHRyYWluIGNvbXBhcnRtZW50LlxuICpcbiAqIEBzbG90IC0gVXNlIHRoZSB1bm5hbWVkIHNsb3QgdG8gYWRkIG9uZSBvciBtb3JlIGBzYmItaWNvbmAgZm9yIG1ldGEtaW5mb3JtYXRpb24gb2YgdGhlIHdhZ29uLlxuICovXG5leHBvcnQgY2xhc3MgU2JiVHJhaW5XYWdvbkxpbmtFbGVtZW50IGV4dGVuZHMgU2JiVHJhaW5XYWdvbk1peGluKFNiYkxpbmtCYXNlRWxlbWVudCkge1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHJlYWRvbmx5IGVsZW1lbnROYW1lOiBzdHJpbmcgPSAnc2JiLXRyYWluLXdhZ29uLWxpbmsnO1xufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAnc2JiLXRyYWluLXdhZ29uLWxpbmsnOiBTYmJUcmFpbldhZ29uTGlua0VsZW1lbnQ7XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBU0EsSUFBYSwyQkFBYixjQUE4QyxtQkFBbUIsbUJBQW1CLENBQUE7O0VBQ2xELEtBQUEsY0FBc0IifQ==
@@ -19,4 +19,4 @@ var SbbTrainBlockedPassageElement = class extends SbbTrainFormationOrientationMi
19
19
  //#endregion
20
20
  export { SbbTrainBlockedPassageElement as t };
21
21
 
22
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhaW4tYmxvY2tlZC1wYXNzYWdlLmNvbXBvbmVudC0yVHVTcWJEZy5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZWxlbWVudHMvdHJhaW4vdHJhaW4tYmxvY2tlZC1wYXNzYWdlL3RyYWluLWJsb2NrZWQtcGFzc2FnZS5zY3NzP2lubGluZSIsIi4uLy4uLy4uL3NyYy9lbGVtZW50cy90cmFpbi90cmFpbi1ibG9ja2VkLXBhc3NhZ2UvdHJhaW4tYmxvY2tlZC1wYXNzYWdlLmNvbXBvbmVudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJAdXNlICcuLi8uLi9jb3JlL3N0eWxlcycgYXMgc2JiO1xuXG46aG9zdCB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtYXJlYXM6ICdpY29uJztcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgd2lkdGg6IHZhcigtLXNiYi10cmFpbi1mb3JtYXRpb24tYmxvY2tlZC1wYXNzYWdlLWRpbWVuc2lvbik7XG4gIGhlaWdodDogdmFyKC0tX3NiYi10cmFpbi1mb3JtYXRpb24td2Fnb24taGVpZ2h0KTtcbn1cblxuOmhvc3QoOnN0YXRlKG9yaWVudGF0aW9uLXZlcnRpY2FsKSkge1xuICB3aWR0aDogdmFyKC0tX3NiYi10cmFpbi1mb3JtYXRpb24td2Fnb24td2lkdGgpO1xuICBoZWlnaHQ6IHZhcigtLXNiYi10cmFpbi1mb3JtYXRpb24tYmxvY2tlZC1wYXNzYWdlLWRpbWVuc2lvbik7XG59XG5cbjpob3N0OjpiZWZvcmUsXG46aG9zdDo6YWZ0ZXIge1xuICBjb250ZW50OiAnJztcbiAgZ3JpZC1hcmVhOiBpY29uO1xuICBqdXN0aWZ5LXNlbGY6IGNlbnRlcjtcbn1cblxuLy8gQ2lyY2xlXG46aG9zdDo6YmVmb3JlIHtcbiAgd2lkdGg6IHZhcigtLXNiYi10cmFpbi1mb3JtYXRpb24tYmxvY2tlZC1wYXNzYWdlLWRpbWVuc2lvbik7XG4gIGhlaWdodDogdmFyKC0tc2JiLXRyYWluLWZvcm1hdGlvbi1ibG9ja2VkLXBhc3NhZ2UtZGltZW5zaW9uKTtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zYmItdHJhaW4tYmxvY2tlZC1wYXNzYWdlLWJhY2tncm91bmQtY29sb3IpO1xufVxuXG4vLyBCYXJcbjpob3N0OjphZnRlciB7XG4gIHdpZHRoOiB2YXIoLS1zYmItdHJhaW4tYmxvY2tlZC1wYXNzYWdlLWljb24tYmFyLXdpZHRoKTtcbiAgaGVpZ2h0OiB2YXIoLS1zYmItdHJhaW4tYmxvY2tlZC1wYXNzYWdlLWljb24tYmFyLWhlaWdodCk7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXNiYi10cmFpbi1ibG9ja2VkLXBhc3NhZ2UtaWNvbi1iYXItYm9yZGVyLXJhZGl1cyk7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNiYi10cmFpbi1ibG9ja2VkLXBhc3NhZ2UtYmFyLWNvbG9yKTtcbn1cbiIsImltcG9ydCB7IHR5cGUgQ1NTUmVzdWx0R3JvdXAsIHVuc2FmZUNTUyB9IGZyb20gJ2xpdCc7XG5cbmltcG9ydCB7IFNiYkVsZW1lbnQgfSBmcm9tICcuLi8uLi9jb3JlLnRzJztcbmltcG9ydCB7IFNiYlRyYWluRm9ybWF0aW9uT3JpZW50YXRpb25NaXhpbiB9IGZyb20gJy4uL3RyYWluLWZvcm1hdGlvbi1vcmllbnRhdGlvbi1taXhpbi50cyc7XG5cbmltcG9ydCBzdHlsZSBmcm9tICcuL3RyYWluLWJsb2NrZWQtcGFzc2FnZS5zY3NzP2lubGluZSc7XG5cbi8qKlxuICogSXQgdmlzdWFsbHkgZGlzcGxheXMgYSBibG9ja2VkIHBhc3NhZ2UgYmV0d2VlbiB0cmFpbiB3YWdvbnMuXG4gKi9cbmV4cG9ydCBjbGFzcyBTYmJUcmFpbkJsb2NrZWRQYXNzYWdlRWxlbWVudCBleHRlbmRzIFNiYlRyYWluRm9ybWF0aW9uT3JpZW50YXRpb25NaXhpbihTYmJFbGVtZW50KSB7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgcmVhZG9ubHkgZWxlbWVudE5hbWU6IHN0cmluZyA9ICdzYmItdHJhaW4tYmxvY2tlZC1wYXNzYWdlJztcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSBzdHlsZXM6IENTU1Jlc3VsdEdyb3VwID0gW3Vuc2FmZUNTUyhzdHlsZSldO1xufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAnc2JiLXRyYWluLWJsb2NrZWQtcGFzc2FnZSc6IFNiYlRyYWluQmxvY2tlZFBhc3NhZ2VFbGVtZW50O1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUNVQSxJQUFhLGdDQUFiLGNBQW1ELGtDQUFrQyxXQUFXLENBQUE7O0FBQzlELE9BQUEsY0FBc0I7OztBQUMvQixPQUFBLFNBQXlCLENBQUMsVUFBVSw4QkFBTSxDQUFDIn0=
22
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhaW4tYmxvY2tlZC1wYXNzYWdlLmNvbXBvbmVudC0yVHVTcWJEZy5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZWxlbWVudHMvdHJhaW4vdHJhaW4tYmxvY2tlZC1wYXNzYWdlL3RyYWluLWJsb2NrZWQtcGFzc2FnZS5zY3NzP2lubGluZSIsIi4uLy4uLy4uL3NyYy9lbGVtZW50cy90cmFpbi90cmFpbi1ibG9ja2VkLXBhc3NhZ2UvdHJhaW4tYmxvY2tlZC1wYXNzYWdlLmNvbXBvbmVudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJAdXNlICcuLi8uLi9jb3JlL3N0eWxlcycgYXMgc2JiO1xuXG46aG9zdCB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtYXJlYXM6ICdpY29uJztcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgd2lkdGg6IHZhcigtLXNiYi10cmFpbi1mb3JtYXRpb24tYmxvY2tlZC1wYXNzYWdlLWRpbWVuc2lvbik7XG4gIGhlaWdodDogdmFyKC0tX3NiYi10cmFpbi1mb3JtYXRpb24td2Fnb24taGVpZ2h0KTtcbn1cblxuOmhvc3QoOnN0YXRlKG9yaWVudGF0aW9uLXZlcnRpY2FsKSkge1xuICB3aWR0aDogdmFyKC0tX3NiYi10cmFpbi1mb3JtYXRpb24td2Fnb24td2lkdGgpO1xuICBoZWlnaHQ6IHZhcigtLXNiYi10cmFpbi1mb3JtYXRpb24tYmxvY2tlZC1wYXNzYWdlLWRpbWVuc2lvbik7XG59XG5cbjpob3N0OjpiZWZvcmUsXG46aG9zdDo6YWZ0ZXIge1xuICBjb250ZW50OiAnJztcbiAgZ3JpZC1hcmVhOiBpY29uO1xuICBqdXN0aWZ5LXNlbGY6IGNlbnRlcjtcbn1cblxuLy8gQ2lyY2xlXG46aG9zdDo6YmVmb3JlIHtcbiAgd2lkdGg6IHZhcigtLXNiYi10cmFpbi1mb3JtYXRpb24tYmxvY2tlZC1wYXNzYWdlLWRpbWVuc2lvbik7XG4gIGhlaWdodDogdmFyKC0tc2JiLXRyYWluLWZvcm1hdGlvbi1ibG9ja2VkLXBhc3NhZ2UtZGltZW5zaW9uKTtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zYmItdHJhaW4tYmxvY2tlZC1wYXNzYWdlLWJhY2tncm91bmQtY29sb3IpO1xufVxuXG4vLyBCYXJcbjpob3N0OjphZnRlciB7XG4gIHdpZHRoOiB2YXIoLS1zYmItdHJhaW4tYmxvY2tlZC1wYXNzYWdlLWljb24tYmFyLXdpZHRoKTtcbiAgaGVpZ2h0OiB2YXIoLS1zYmItdHJhaW4tYmxvY2tlZC1wYXNzYWdlLWljb24tYmFyLWhlaWdodCk7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXNiYi10cmFpbi1ibG9ja2VkLXBhc3NhZ2UtaWNvbi1iYXItYm9yZGVyLXJhZGl1cyk7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNiYi10cmFpbi1ibG9ja2VkLXBhc3NhZ2UtYmFyLWNvbG9yKTtcbn1cbiIsImltcG9ydCB7IHR5cGUgQ1NTUmVzdWx0R3JvdXAsIHVuc2FmZUNTUyB9IGZyb20gJ2xpdCc7XG5cbmltcG9ydCB7IFNiYkVsZW1lbnQgfSBmcm9tICcuLi8uLi9jb3JlLnRzJztcbmltcG9ydCB7IFNiYlRyYWluRm9ybWF0aW9uT3JpZW50YXRpb25NaXhpbiB9IGZyb20gJy4uL3RyYWluLWZvcm1hdGlvbi1vcmllbnRhdGlvbi1taXhpbi50cyc7XG5cbmltcG9ydCBzdHlsZSBmcm9tICcuL3RyYWluLWJsb2NrZWQtcGFzc2FnZS5zY3NzP2lubGluZSc7XG5cbi8qKlxuICogSXQgdmlzdWFsbHkgZGlzcGxheXMgYSBibG9ja2VkIHBhc3NhZ2UgYmV0d2VlbiB0cmFpbiB3YWdvbnMuXG4gKi9cbmV4cG9ydCBjbGFzcyBTYmJUcmFpbkJsb2NrZWRQYXNzYWdlRWxlbWVudCBleHRlbmRzIFNiYlRyYWluRm9ybWF0aW9uT3JpZW50YXRpb25NaXhpbihTYmJFbGVtZW50KSB7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgcmVhZG9ubHkgZWxlbWVudE5hbWU6IHN0cmluZyA9ICdzYmItdHJhaW4tYmxvY2tlZC1wYXNzYWdlJztcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSBzdHlsZXM6IENTU1Jlc3VsdEdyb3VwID0gW3Vuc2FmZUNTUyhzdHlsZSldO1xufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAnc2JiLXRyYWluLWJsb2NrZWQtcGFzc2FnZSc6IFNiYlRyYWluQmxvY2tlZFBhc3NhZ2VFbGVtZW50O1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUNVQSxJQUFhLGdDQUFiLGNBQW1ELGtDQUFrQyxXQUFXLENBQUE7O0VBQzlELEtBQUEsY0FBc0I7OztFQUMvQixLQUFBLFNBQXlCLENBQUMsVUFBVSw4QkFBTSxDQUFDIn0=
@@ -187,4 +187,4 @@ var SbbTrainFormationElement = (() => {
187
187
  //#endregion
188
188
  export { SbbTrainFormationElement as t };
189
189
 
190
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhaW4tZm9ybWF0aW9uLmNvbXBvbmVudC1CWUIwM3pYNS5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZWxlbWVudHMvdHJhaW4vdHJhaW4tZm9ybWF0aW9uL3RyYWluLWZvcm1hdGlvbi5zY3NzP2lubGluZSIsIi4uLy4uLy4uL3NyYy9lbGVtZW50cy90cmFpbi90cmFpbi1mb3JtYXRpb24vdHJhaW4tZm9ybWF0aW9uLmNvbXBvbmVudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJAdXNlICcuLi8uLi9jb3JlL3N0eWxlcycgYXMgc2JiO1xuXG46aG9zdCB7XG4gIC0tc2JiLXRyYWluLWZvcm1hdGlvbi1zY3JvbGwtcGFkZGluZzogdmFyKC0tc2JiLXRyYWluLWZvcm1hdGlvbi1wYWRkaW5nKTtcbiAgLS1fc2JiLXRyYWluLWZvcm1hdGlvbi13YWdvbi13aWR0aDogdmFyKC0tc2JiLXRyYWluLWZvcm1hdGlvbi13YWdvbi1kaW1lbnNpb24tbG9uZyk7XG4gIC0tX3NiYi10cmFpbi1mb3JtYXRpb24td2Fnb24taGVpZ2h0OiB2YXIoLS1zYmItdHJhaW4tZm9ybWF0aW9uLXdhZ29uLWRpbWVuc2lvbi1zaG9ydCk7XG5cbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZTpcbiAgICAnc3RhcnQgc2VjdG9ycyBlbmQnIGF1dG9cbiAgICAnc3RhcnQgdHJhaW5zIGVuZCcgYXV0byAvIGF1dG8gMWZyIGF1dG87XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgb3ZlcmZsb3c6IGF1dG8gdmlzaWJsZTtcbiAgZ2FwOiB2YXIoLS1fc2JiLXRyYWluLWZvcm1hdGlvbi1zZWN0b3JzLXRvLXRyYWluLWdhcCwgMCkgMDtcbiAgcGFkZGluZy1ibG9jazogdmFyKC0tc2JiLXRyYWluLWZvcm1hdGlvbi1wYWRkaW5nKTtcbiAgY29sb3I6IHZhcigtLXNiYi10cmFpbi1mb3JtYXRpb24tdGV4dC1jb2xvcik7XG4gIGZvbnQtc2l6ZTogdmFyKC0tc2JiLXRleHQtZm9udC1zaXplLXhzKTtcbiAgbGV0dGVyLXNwYWNpbmc6IHZhcigtLXNiYi10eXBvLWxldHRlci1zcGFjaW5nLXRleHQpO1xuICBsaW5lLWhlaWdodDogdmFyKC0tc2JiLXR5cG8tbGluZS1oZWlnaHQtdGV4dCk7XG5cbiAgLy8gRW5hYmxlIGlubGluZSBwYWRkaW5nXG4gICY6OmJlZm9yZSxcbiAgJjo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiB2YXIoLS1zYmItdHJhaW4tZm9ybWF0aW9uLXNjcm9sbC1wYWRkaW5nKTtcbiAgfVxuXG4gICY6OmJlZm9yZSB7XG4gICAgZ3JpZC1hcmVhOiBzdGFydDtcbiAgfVxuXG4gICY6OmFmdGVyIHtcbiAgICBncmlkLWFyZWE6IGVuZDtcbiAgfVxufVxuXG4vLyBXaXRoIHNjcm9sbGFibGUgY29udGVudCwgdGhlIHRyYWluIGZvcm1hdGlvbiBjYW4gZ2V0IGZvY3VzLlxuOmhvc3QoOmZvY3VzLXZpc2libGUpIHtcbiAgQGluY2x1ZGUgc2JiLmZvY3VzLW91dGxpbmU7XG59XG5cbjpob3N0KDpzdGF0ZShoYXMtc2VjdG9ycykpIHtcbiAgLS1fc2JiLXRyYWluLWZvcm1hdGlvbi1zZWN0b3JzLXRvLXRyYWluLWdhcDogdmFyKC0tc2JiLXRyYWluLWZvcm1hdGlvbi1nYXApO1xufVxuXG46aG9zdCg6c3RhdGUoaGFzLWRpcmVjdGlvbi1sYWJlbCkpIHtcbiAgLS1fc2JiLXRyYWluLWZvcm1hdGlvbi1yZXNlcnZlLXNwYWNpbmctZGlzcGxheTogYmxvY2s7XG59XG5cbjpob3N0KFtvcmllbnRhdGlvbj0ndmVydGljYWwnXSkge1xuICAtLV9zYmItdHJhaW4tZm9ybWF0aW9uLXdhZ29uLXdpZHRoOiB2YXIoLS1zYmItdHJhaW4tZm9ybWF0aW9uLXdhZ29uLWRpbWVuc2lvbi1zaG9ydCk7XG4gIC0tX3NiYi10cmFpbi1mb3JtYXRpb24td2Fnb24taGVpZ2h0OiB2YXIoLS1zYmItdHJhaW4tZm9ybWF0aW9uLXdhZ29uLWRpbWVuc2lvbi1sb25nKTtcbiAgLS1fc2JiLXRyYWluLWZvcm1hdGlvbi1mbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAtLV9zYmItdHJhaW4tZm9ybWF0aW9uLWZsZXgtZGlyZWN0aW9uLWludmVydGVkOiByb3c7XG5cbiAgZ3JpZC10ZW1wbGF0ZTpcbiAgICAnc3RhcnQgc3RhcnQnIGF1dG9cbiAgICAnc2VjdG9ycyB0cmFpbnMnIDFmclxuICAgICdlbmQgZW5kJyBhdXRvO1xuICBvdmVyZmxvdzogdmlzaWJsZSBhdXRvO1xuICBwYWRkaW5nLWJsb2NrOiB1bnNldDtcbiAgcGFkZGluZy1pbmxpbmU6IHZhcigtLXNiYi10cmFpbi1mb3JtYXRpb24tcGFkZGluZyk7XG4gIGdhcDogMCB2YXIoLS1fc2JiLXRyYWluLWZvcm1hdGlvbi1zZWN0b3JzLXRvLXRyYWluLWdhcCwgMCk7XG4gIHdpZHRoOiBmaXQtY29udGVudDtcblxuICAmOjpiZWZvcmUsXG4gICY6OmFmdGVyIHtcbiAgICB3aWR0aDogYXV0bztcbiAgICBoZWlnaHQ6IHZhcigtLXNiYi10cmFpbi1mb3JtYXRpb24tc2Nyb2xsLXBhZGRpbmcpO1xuICB9XG59XG5cbi5zYmItdHJhaW4tZm9ybWF0aW9uX19zZWN0b3JzIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZ3JpZC1hcmVhOiBzZWN0b3JzO1xuICBnYXA6IHZhcigtLXNiYi10cmFpbi1mb3JtYXRpb24td2Fnb24tZ2FwKTtcbiAgZmxleC1kaXJlY3Rpb246IHZhcigtLV9zYmItdHJhaW4tZm9ybWF0aW9uLWZsZXgtZGlyZWN0aW9uKTtcbn1cblxuLnNiYi10cmFpbi1mb3JtYXRpb25fX3NlY3RvciB7XG4gIC0tX3dhZ29uLXN1bTogdmFyKC0tc2JiLXRyYWluLWZvcm1hdGlvbi13YWdvbi1jb3VudCkgKlxuICAgIHZhcigtLXNiYi10cmFpbi1mb3JtYXRpb24td2Fnb24tZGltZW5zaW9uLWxvbmcpO1xuICAtLV9ibG9ja2VkLXBhc3NhZ2Utc3VtOiB2YXIoLS1zYmItdHJhaW4tZm9ybWF0aW9uLXdhZ29uLWJsb2NrZWQtcGFzc2FnZS1jb3VudCkgKlxuICAgIHZhcigtLXNiYi10cmFpbi1mb3JtYXRpb24tYmxvY2tlZC1wYXNzYWdlLWRpbWVuc2lvbik7XG4gIC0tX3RvdGFsLWNvdW50OiBjYWxjKFxuICAgIHZhcigtLXNiYi10cmFpbi1mb3JtYXRpb24td2Fnb24tY291bnQpICsgdmFyKC0tc2JiLXRyYWluLWZvcm1hdGlvbi13YWdvbi1ibG9ja2VkLXBhc3NhZ2UtY291bnQpXG4gICk7XG4gIC0tX2dhcC1zdW06IGNhbGMoKHZhcigtLV90b3RhbC1jb3VudCkgLSAxKSAqIHZhcigtLXNiYi10cmFpbi1mb3JtYXRpb24td2Fnb24tZ2FwKSk7XG4gIC0tX3NlY3Rvci13aWR0aDogY2FsYyh2YXIoLS1fd2Fnb24tc3VtKSArIHZhcigtLV9ibG9ja2VkLXBhc3NhZ2Utc3VtKSArIHZhcigtLV9nYXAtc3VtKSk7XG4gIC0tX3NlY3Rvci1saW5lLWxlbmd0aDogY2FsYygwLjUgKiB2YXIoLS1fc2VjdG9yLXdpZHRoKSk7XG5cbiAgZmxleDogMCAwIHZhcigtLV9zZWN0b3Itd2lkdGgpO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogdmFyKC0tX3NiYi10cmFpbi1mb3JtYXRpb24tZmxleC1kaXJlY3Rpb24pO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgb3ZlcmZsb3c6IGNsaXAgdmlzaWJsZTtcblxuICA6aG9zdChbb3JpZW50YXRpb249J3ZlcnRpY2FsJ10pICYge1xuICAgIG92ZXJmbG93OiB2aXNpYmxlIGNsaXA7XG4gIH1cbn1cblxuLnNiYi10cmFpbi1mb3JtYXRpb25fX3NlY3Rvci1zdGlja3ktd3JhcHBlciB7XG4gIHBvc2l0aW9uOiBzdGlja3k7XG4gIGluc2V0OiBhdXRvIDA7XG4gIHBhZGRpbmc6IDAgdmFyKC0tc2JiLXRyYWluLWZvcm1hdGlvbi1zZWN0b3ItcGFkZGluZyk7XG4gIG1hcmdpbjogMCB2YXIoLS1zYmItdHJhaW4tZm9ybWF0aW9uLXNlY3Rvci1tYXJnaW4pO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuXG4gIDpob3N0KFtvcmllbnRhdGlvbj0ndmVydGljYWwnXSkgJiB7XG4gICAgd3JpdGluZy1tb2RlOiBzaWRld2F5cy1scjtcbiAgICBpbnNldDogMCBhdXRvO1xuICAgIHBhZGRpbmc6IHZhcigtLXNiYi10cmFpbi1mb3JtYXRpb24tc2VjdG9yLXBhZGRpbmcpIDA7XG4gICAgbWFyZ2luOiB2YXIoLS1zYmItdHJhaW4tZm9ybWF0aW9uLXNlY3Rvci1tYXJnaW4pIDA7XG4gIH1cblxuICAvLyBMaW5lcyBiZXNpZGUgdGhlIHNlY3Rvci1sYWJlbFxuICAmOjpiZWZvcmUsXG4gICY6OmFmdGVyIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAvLyBFeGFjdGx5IGNlbnRlciB0aGUgbGluZSBieSBzdWJ0cmFjdGluZyBoYWxmIG9mIHRoZSBib3JkZXIgd2lkdGhcbiAgICBpbnNldC1ibG9jazogY2FsYyg1MCUgLSB2YXIoLS1zYmItdHJhaW4tZm9ybWF0aW9uLXNlY3Rvci1saW5lLXdpZHRoKSAvIDIpO1xuICAgIGJvcmRlci1ibG9jay1lbmQ6IHZhcigtLXNiYi10cmFpbi1mb3JtYXRpb24tc2VjdG9yLWxpbmUtd2lkdGgpIHNvbGlkXG4gICAgICB2YXIoLS1zYmItdHJhaW4tZm9ybWF0aW9uLXNlY3Rvci1saW5lLWNvbG9yKTtcbiAgICB3aWR0aDogdmFyKC0tX3NlY3Rvci1saW5lLWxlbmd0aCk7XG5cbiAgICA6aG9zdChbb3JpZW50YXRpb249J3ZlcnRpY2FsJ10pICYge1xuICAgICAgd2lkdGg6IGF1dG87XG4gICAgICBoZWlnaHQ6IHZhcigtLV9zZWN0b3ItbGluZS1sZW5ndGgpO1xuICAgIH1cbiAgfVxuXG4gICY6OmJlZm9yZSB7XG4gICAgaW5zZXQtaW5saW5lLWVuZDogMTAwJTtcbiAgfVxuXG4gICY6OmFmdGVyIHtcbiAgICBpbnNldC1pbmxpbmUtc3RhcnQ6IDEwMCU7XG4gIH1cbn1cblxuLnNiYi10cmFpbi1mb3JtYXRpb25fX3RyYWlucyB7XG4gIGdyaWQtYXJlYTogdHJhaW5zO1xufVxuXG4uc2JiLXRyYWluLWZvcm1hdGlvbl9fdHJhaW4tbGlzdCB7XG4gIEBpbmNsdWRlIHNiYi5saXN0LXJlc2V0O1xuXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiB2YXIoLS1fc2JiLXRyYWluLWZvcm1hdGlvbi1mbGV4LWRpcmVjdGlvbik7XG4gIGdhcDogdmFyKC0tc2JiLXRyYWluLWZvcm1hdGlvbi13YWdvbi1nYXApO1xufVxuXG4vLyBVc2luZyAuLi4gbGkgc2VsZWN0b3IsIGJlY2F1c2UgdGhlIGxpIGdlbmVyYXRpb25cbi8vIGlzIGhhbmRsZWQgaW4gdGhlIGNvbXBvbmVudCBiYXNlIGNsYXNzLlxuLnNiYi10cmFpbi1mb3JtYXRpb25fX3RyYWluLWxpc3QgPiA6aXMobGksIHNwYW4pIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG59XG4iLCJpbXBvcnQge1xuICB0eXBlIENTU1Jlc3VsdEdyb3VwLFxuICBodG1sLFxuICBub3RoaW5nLFxuICB0eXBlIFByb3BlcnR5VmFsdWVzLFxuICB0eXBlIFRlbXBsYXRlUmVzdWx0LFxuICB1bnNhZmVDU1MsXG59IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBwcm9wZXJ0eSwgc3RhdGUgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5pbXBvcnQgeyBzdHlsZU1hcCB9IGZyb20gJ2xpdC9kaXJlY3RpdmVzL3N0eWxlLW1hcC5qcyc7XG5cbmltcG9ydCB7XG4gIGhvc3RTY3JvbGxiYXJTdHlsZXMsXG4gIGkxOG5TZWN0b3IsXG4gIGkxOG5TZWN0b3JTaG9ydCxcbiAgaTE4blRyYWlucyxcbiAgU2JiRWxlbWVudCxcbiAgU2JiTGFuZ3VhZ2VDb250cm9sbGVyLFxuICBTYmJOYW1lZFNsb3RMaXN0TWl4aW4sXG4gIHR5cGUgU2JiT3JpZW50YXRpb24sXG4gIHR5cGUgV2l0aExpc3RDaGlsZHJlbixcbn0gZnJvbSAnLi4vLi4vY29yZS50cyc7XG5pbXBvcnQgdHlwZSB7IFNiYlRyYWluRWxlbWVudCB9IGZyb20gJy4uL3RyYWluL3RyYWluLmNvbXBvbmVudC50cyc7XG5pbXBvcnQgdHlwZSB7IFNiYlRyYWluQmxvY2tlZFBhc3NhZ2VFbGVtZW50IH0gZnJvbSAnLi4vdHJhaW4tYmxvY2tlZC1wYXNzYWdlL3RyYWluLWJsb2NrZWQtcGFzc2FnZS5jb21wb25lbnQudHMnO1xuaW1wb3J0IHR5cGUgeyBTYmJUcmFpbldhZ29uTWl4aW5UeXBlIH0gZnJvbSAnLi4vdHJhaW4td2Fnb24tY29tbW9uLnRzJztcblxuaW1wb3J0IHN0eWxlIGZyb20gJy4vdHJhaW4tZm9ybWF0aW9uLnNjc3M/aW5saW5lJztcblxuaW50ZXJmYWNlIEFnZ3JlZ2F0ZWRTZWN0b3Ige1xuICBsYWJlbDogc3RyaW5nO1xuICB3YWdvbkNvdW50OiBudW1iZXI7XG4gIGJsb2NrZWRQYXNzYWdlQ291bnQ6IG51bWJlcjtcbn1cblxuLyoqXG4gKiBJdCBkaXNwbGF5cyBhIHRyYWluIGNvbXBvc2l0aW9uLCBhY3RpbmcgYXMgYSBjb250YWluZXIgZm9yIG9uZSBvciBtb3JlIGBzYmItdHJhaW5gIGNvbXBvbmVudC5cbiAqXG4gKiBAc2xvdCAtIFVzZSB0aGUgdW5uYW1lZCBzbG90IHRvIGFkZCAnc2JiLXRyYWluJyBlbGVtZW50cyB0byB0aGUgYHNiYi10cmFpbi1mb3JtYXRpb25gLlxuICogQGNzc3Byb3AgWy0tc2JiLXRyYWluLWZvcm1hdGlvbi1zY3JvbGwtcGFkZGluZz12YXIoLS1zYmItc3BhY2luZy1maXhlZC0xeCldIC0gRGVmaW5lcyB0aGUgaW5saW5lIG9yIGJsb2NrIHBhZGRpbmcgaW5zaWRlIHRoZSBob3Jpem9udGFsIG9yIHZlcnRpY2FsIHNjcm9sbGluZyBhcmVhLlxuICovXG5leHBvcnQgY2xhc3MgU2JiVHJhaW5Gb3JtYXRpb25FbGVtZW50IGV4dGVuZHMgU2JiTmFtZWRTbG90TGlzdE1peGluPFxuICBTYmJUcmFpbkVsZW1lbnQsXG4gIHR5cGVvZiBTYmJFbGVtZW50XG4+KFNiYkVsZW1lbnQpIHtcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSByZWFkb25seSBlbGVtZW50TmFtZTogc3RyaW5nID0gJ3NiYi10cmFpbi1mb3JtYXRpb24nO1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHN0eWxlczogQ1NTUmVzdWx0R3JvdXAgPSBbaG9zdFNjcm9sbGJhclN0eWxlcywgdW5zYWZlQ1NTKHN0eWxlKV07XG4gIHByb3RlY3RlZCBvdmVycmlkZSByZWFkb25seSBsaXN0Q2hpbGRMb2NhbE5hbWVzID0gWydzYmItdHJhaW4nXTtcblxuICAvKiogV2hldGhlciB0aGUgdmlldyBvZiB0aGUgd2Fnb25zIGlzIGZyb20gc2lkZSBvciB0b3AgcGVyc3BlY3RpdmUuICovXG4gIEBwcm9wZXJ0eSh7IHJlZmxlY3Q6IHRydWUgfSkgcHVibGljIGFjY2Vzc29yIHZpZXc6ICdzaWRlJyB8ICd0b3AnID0gJ3NpZGUnO1xuXG4gIC8qKiBPcmllbnRhdGlvbiwgZWl0aGVyIGhvcml6b250YWwgb3IgdmVydGljYWwuICovXG4gIEBwcm9wZXJ0eSh7IHJlZmxlY3Q6IHRydWUgfSkgcHVibGljIGFjY2Vzc29yIG9yaWVudGF0aW9uOiBTYmJPcmllbnRhdGlvbiA9ICdob3Jpem9udGFsJztcblxuICBAc3RhdGUoKSBwcml2YXRlIGFjY2Vzc29yIF9zZWN0b3JzOiBBZ2dyZWdhdGVkU2VjdG9yW10gPSBbXTtcblxuICBwcml2YXRlIF9sYW5ndWFnZSA9IG5ldyBTYmJMYW5ndWFnZUNvbnRyb2xsZXIodGhpcyk7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyPy4oJ3RyYWluc2xvdGNoYW5nZScsIChlKSA9PiB7XG4gICAgICB0aGlzLl9yZWFkU2VjdG9ycyhlKTtcbiAgICAgIHRoaXMuX3JlYWREaXJlY3Rpb25MYWJlbChlKTtcbiAgICB9KTtcbiAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/Lignc2VjdG9yY2hhbmdlJywgKGUpID0+IHRoaXMuX3JlYWRTZWN0b3JzKGUpKTtcbiAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/LignZGlyZWN0aW9ubGFiZWxjaGFuZ2UnLCAoZSkgPT4gdGhpcy5fcmVhZERpcmVjdGlvbkxhYmVsKGUpKTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpO1xuXG4gICAgLy8gV2hlbiBpbmNsdWRpbmcgdGhlIHNjcm9sbGJhciBzdHlsZXMgb24gdGhlIGhvc3QsIHRoZXJlIGlzIG5vIGhvdmVyIGVmZmVjdCBvZiB0aGUgc2Nyb2xsYmFyIHBvc3NpYmxlLlxuICAgIC8vIEluIG1vc3QgY2FzZXMsIHRoZSBjb21wb25lbnQgd2lsbCBiZSB1c2VkIGluIExpZ2h0IERPTS4gVG8gYWxzbyBzdXBwb3J0IHRoZSBob3ZlciBlZmZlY3QsXG4gICAgLy8gd2UgYWRkaXRpb25hbGx5IGFkZCB0aGUgYHNiYi1zY3JvbGxiYXJgIENTUyBjbGFzcyB0byB0aGUgaG9zdC5cbiAgICAvLyBUaGlzIGlzIGFuIGV4Y2VwdGlvbiBhcyB3ZSBub3JtYWxseSBkb24ndCBhbHRlciB0aGUgY2xhc3NMaXN0IG9mIHRoZSBob3N0LlxuICAgIHRoaXMuY2xhc3NMaXN0LmFkZCgnc2JiLXNjcm9sbGJhcicpO1xuICB9XG5cbiAgcHJpdmF0ZSBfcmVhZERpcmVjdGlvbkxhYmVsKGV2ZW50PzogRXZlbnQpOiB2b2lkIHtcbiAgICAvLyBLZWVwIHRoZSBldmVudCBpbnRlcm5hbC5cbiAgICBldmVudD8uc3RvcFByb3BhZ2F0aW9uKCk7XG5cbiAgICB0aGlzLnRvZ2dsZVN0YXRlKFxuICAgICAgJ2hhcy1kaXJlY3Rpb24tbGFiZWwnLFxuICAgICAgQXJyYXkuZnJvbSh0aGlzLnF1ZXJ5U2VsZWN0b3JBbGw/Lignc2JiLXRyYWluJykgPz8gW10pLnNvbWUoXG4gICAgICAgICh0cmFpbikgPT4gISF0cmFpbi5kaXJlY3Rpb25MYWJlbCxcbiAgICAgICksXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgX3JlYWRTZWN0b3JzKGV2ZW50PzogRXZlbnQpOiB2b2lkIHtcbiAgICAvLyBLZWVwIHRoZSBldmVudCBpbnRlcm5hbC5cbiAgICBldmVudD8uc3RvcFByb3BhZ2F0aW9uKCk7XG5cbiAgICB0aGlzLl9zZWN0b3JzID0gQXJyYXkuZnJvbShcbiAgICAgIHRoaXMucXVlcnlTZWxlY3RvckFsbD8uPFNiYlRyYWluV2Fnb25NaXhpblR5cGUgfCBTYmJUcmFpbkJsb2NrZWRQYXNzYWdlRWxlbWVudD4oXG4gICAgICAgICdzYmItdHJhaW4td2Fnb24sc2JiLXRyYWluLXdhZ29uLWJ1dHRvbixzYmItdHJhaW4td2Fnb24tbGluayxzYmItdHJhaW4tYmxvY2tlZC1wYXNzYWdlJyxcbiAgICAgICkgPz8gW10sXG4gICAgKS5yZWR1Y2UoXG4gICAgICAoXG4gICAgICAgIGFnZ3JlZ2F0ZWRTZWN0b3JzOiBBZ2dyZWdhdGVkU2VjdG9yW10sXG4gICAgICAgIGl0ZW06IFNiYlRyYWluV2Fnb25NaXhpblR5cGUgfCBTYmJUcmFpbkJsb2NrZWRQYXNzYWdlRWxlbWVudCxcbiAgICAgICkgPT4ge1xuICAgICAgICBjb25zdCBjdXJyZW50QWdncmVnYXRlZFNlY3RvciA9IGFnZ3JlZ2F0ZWRTZWN0b3JzW2FnZ3JlZ2F0ZWRTZWN0b3JzLmxlbmd0aCAtIDFdO1xuXG4gICAgICAgIGlmIChpdGVtLmxvY2FsTmFtZS5zdGFydHNXaXRoKCdzYmItdHJhaW4td2Fnb24nKSkge1xuICAgICAgICAgIGNvbnN0IHNlY3RvckF0dHJpYnV0ZSA9XG4gICAgICAgICAgICAoaXRlbSBhcyBTYmJUcmFpbldhZ29uTWl4aW5UeXBlKS5zZWN0b3IgPz8gaXRlbS5nZXRBdHRyaWJ1dGUoJ3NlY3RvcicpO1xuXG4gICAgICAgICAgaWYgKCFjdXJyZW50QWdncmVnYXRlZFNlY3Rvci5sYWJlbCAmJiBzZWN0b3JBdHRyaWJ1dGUpIHtcbiAgICAgICAgICAgIGN1cnJlbnRBZ2dyZWdhdGVkU2VjdG9yLmxhYmVsID0gc2VjdG9yQXR0cmlidXRlO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmICghc2VjdG9yQXR0cmlidXRlIHx8IGN1cnJlbnRBZ2dyZWdhdGVkU2VjdG9yLmxhYmVsID09PSBzZWN0b3JBdHRyaWJ1dGUpIHtcbiAgICAgICAgICAgIGN1cnJlbnRBZ2dyZWdhdGVkU2VjdG9yLndhZ29uQ291bnQrKztcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgYWdncmVnYXRlZFNlY3RvcnMucHVzaCh7XG4gICAgICAgICAgICAgIGxhYmVsOiBzZWN0b3JBdHRyaWJ1dGUsXG4gICAgICAgICAgICAgIHdhZ29uQ291bnQ6IDEsXG4gICAgICAgICAgICAgIGJsb2NrZWRQYXNzYWdlQ291bnQ6IDAsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAoaXRlbS5sb2NhbE5hbWUgPT09ICdzYmItdHJhaW4tYmxvY2tlZC1wYXNzYWdlJykge1xuICAgICAgICAgIGN1cnJlbnRBZ2dyZWdhdGVkU2VjdG9yLmJsb2NrZWRQYXNzYWdlQ291bnQrKztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBhZ2dyZWdhdGVkU2VjdG9ycztcbiAgICAgIH0sXG4gICAgICBbeyB3YWdvbkNvdW50OiAwLCBibG9ja2VkUGFzc2FnZUNvdW50OiAwIH0gYXMgQWdncmVnYXRlZFNlY3Rvcl0sXG4gICAgKTtcblxuICAgIHRoaXMudG9nZ2xlU3RhdGUoXG4gICAgICAnaGFzLXNlY3RvcnMnLFxuICAgICAgdGhpcy5fc2VjdG9ycy5zb21lKChzKSA9PiAhIXMubGFiZWwpLFxuICAgICk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgd2lsbFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXM8V2l0aExpc3RDaGlsZHJlbjx0aGlzPj4pOiB2b2lkIHtcbiAgICBzdXBlci53aWxsVXBkYXRlKGNoYW5nZWRQcm9wZXJ0aWVzKTtcblxuICAgIGlmIChjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ2xpc3RDaGlsZHJlbicpKSB7XG4gICAgICB0aGlzLl9yZWFkU2VjdG9ycygpO1xuICAgICAgdGhpcy5fcmVhZERpcmVjdGlvbkxhYmVsKCk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlbmRlcigpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICAke3RoaXMuX3NlY3RvcnMubGVuZ3RoICYmIHRoaXMuX3NlY3RvcnNbMF0ubGFiZWwgIT09IHVuZGVmaW5lZFxuICAgICAgICA/IGh0bWxgPGRpdiBjbGFzcz1cInNiYi10cmFpbi1mb3JtYXRpb25fX3NlY3RvcnNcIiBhcmlhLWhpZGRlbj1cInRydWVcIj5cbiAgICAgICAgICAgICR7dGhpcy5fc2VjdG9ycy5tYXAoXG4gICAgICAgICAgICAgIChhZ2dyZWdhdGVkU2VjdG9yKSA9PlxuICAgICAgICAgICAgICAgIGh0bWxgPHNwYW5cbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwic2JiLXRyYWluLWZvcm1hdGlvbl9fc2VjdG9yXCJcbiAgICAgICAgICAgICAgICAgIHN0eWxlPSR7c3R5bGVNYXAoe1xuICAgICAgICAgICAgICAgICAgICAnLS1zYmItdHJhaW4tZm9ybWF0aW9uLXdhZ29uLWNvdW50JzogYWdncmVnYXRlZFNlY3Rvci53YWdvbkNvdW50LFxuICAgICAgICAgICAgICAgICAgICAnLS1zYmItdHJhaW4tZm9ybWF0aW9uLXdhZ29uLWJsb2NrZWQtcGFzc2FnZS1jb3VudCc6XG4gICAgICAgICAgICAgICAgICAgICAgYWdncmVnYXRlZFNlY3Rvci5ibG9ja2VkUGFzc2FnZUNvdW50LFxuICAgICAgICAgICAgICAgICAgfSl9XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzYmItdHJhaW4tZm9ybWF0aW9uX19zZWN0b3Itc3RpY2t5LXdyYXBwZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgJHtgJHtcbiAgICAgICAgICAgICAgICAgICAgICBhZ2dyZWdhdGVkU2VjdG9yLndhZ29uQ291bnQgPT09IDEgJiYgYWdncmVnYXRlZFNlY3Rvci5sYWJlbFxuICAgICAgICAgICAgICAgICAgICAgICAgPyBpMThuU2VjdG9yU2hvcnRbdGhpcy5fbGFuZ3VhZ2UuY3VycmVudF1cbiAgICAgICAgICAgICAgICAgICAgICAgIDogaTE4blNlY3Rvclt0aGlzLl9sYW5ndWFnZS5jdXJyZW50XVxuICAgICAgICAgICAgICAgICAgICB9ICR7YWdncmVnYXRlZFNlY3Rvci5sYWJlbCA/IGFnZ3JlZ2F0ZWRTZWN0b3IubGFiZWwgOiAnJ31gfVxuICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvc3Bhbj5gLFxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L2Rpdj5gXG4gICAgICAgIDogbm90aGluZ31cblxuICAgICAgPGRpdiBjbGFzcz1cInNiYi10cmFpbi1mb3JtYXRpb25fX3RyYWluc1wiPlxuICAgICAgICAke3RoaXMucmVuZGVyTGlzdCh7XG4gICAgICAgICAgY2xhc3M6ICdzYmItdHJhaW4tZm9ybWF0aW9uX190cmFpbi1saXN0JyxcbiAgICAgICAgICBhcmlhTGFiZWw6IGkxOG5UcmFpbnNbdGhpcy5fbGFuZ3VhZ2UuY3VycmVudF0sXG4gICAgICAgIH0pfVxuICAgICAgPC9kaXY+XG4gICAgYDtcbiAgfVxufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAnc2JiLXRyYWluLWZvcm1hdGlvbic6IFNiYlRyYWluRm9ybWF0aW9uRWxlbWVudDtcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoi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
190
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhaW4tZm9ybWF0aW9uLmNvbXBvbmVudC1CWUIwM3pYNS5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZWxlbWVudHMvdHJhaW4vdHJhaW4tZm9ybWF0aW9uL3RyYWluLWZvcm1hdGlvbi5zY3NzP2lubGluZSIsIi4uLy4uLy4uL3NyYy9lbGVtZW50cy90cmFpbi90cmFpbi1mb3JtYXRpb24vdHJhaW4tZm9ybWF0aW9uLmNvbXBvbmVudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJAdXNlICcuLi8uLi9jb3JlL3N0eWxlcycgYXMgc2JiO1xuXG46aG9zdCB7XG4gIC0tc2JiLXRyYWluLWZvcm1hdGlvbi1zY3JvbGwtcGFkZGluZzogdmFyKC0tc2JiLXRyYWluLWZvcm1hdGlvbi1wYWRkaW5nKTtcbiAgLS1fc2JiLXRyYWluLWZvcm1hdGlvbi13YWdvbi13aWR0aDogdmFyKC0tc2JiLXRyYWluLWZvcm1hdGlvbi13YWdvbi1kaW1lbnNpb24tbG9uZyk7XG4gIC0tX3NiYi10cmFpbi1mb3JtYXRpb24td2Fnb24taGVpZ2h0OiB2YXIoLS1zYmItdHJhaW4tZm9ybWF0aW9uLXdhZ29uLWRpbWVuc2lvbi1zaG9ydCk7XG5cbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZTpcbiAgICAnc3RhcnQgc2VjdG9ycyBlbmQnIGF1dG9cbiAgICAnc3RhcnQgdHJhaW5zIGVuZCcgYXV0byAvIGF1dG8gMWZyIGF1dG87XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgb3ZlcmZsb3c6IGF1dG8gdmlzaWJsZTtcbiAgZ2FwOiB2YXIoLS1fc2JiLXRyYWluLWZvcm1hdGlvbi1zZWN0b3JzLXRvLXRyYWluLWdhcCwgMCkgMDtcbiAgcGFkZGluZy1ibG9jazogdmFyKC0tc2JiLXRyYWluLWZvcm1hdGlvbi1wYWRkaW5nKTtcbiAgY29sb3I6IHZhcigtLXNiYi10cmFpbi1mb3JtYXRpb24tdGV4dC1jb2xvcik7XG4gIGZvbnQtc2l6ZTogdmFyKC0tc2JiLXRleHQtZm9udC1zaXplLXhzKTtcbiAgbGV0dGVyLXNwYWNpbmc6IHZhcigtLXNiYi10eXBvLWxldHRlci1zcGFjaW5nLXRleHQpO1xuICBsaW5lLWhlaWdodDogdmFyKC0tc2JiLXR5cG8tbGluZS1oZWlnaHQtdGV4dCk7XG5cbiAgLy8gRW5hYmxlIGlubGluZSBwYWRkaW5nXG4gICY6OmJlZm9yZSxcbiAgJjo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiB2YXIoLS1zYmItdHJhaW4tZm9ybWF0aW9uLXNjcm9sbC1wYWRkaW5nKTtcbiAgfVxuXG4gICY6OmJlZm9yZSB7XG4gICAgZ3JpZC1hcmVhOiBzdGFydDtcbiAgfVxuXG4gICY6OmFmdGVyIHtcbiAgICBncmlkLWFyZWE6IGVuZDtcbiAgfVxufVxuXG4vLyBXaXRoIHNjcm9sbGFibGUgY29udGVudCwgdGhlIHRyYWluIGZvcm1hdGlvbiBjYW4gZ2V0IGZvY3VzLlxuOmhvc3QoOmZvY3VzLXZpc2libGUpIHtcbiAgQGluY2x1ZGUgc2JiLmZvY3VzLW91dGxpbmU7XG59XG5cbjpob3N0KDpzdGF0ZShoYXMtc2VjdG9ycykpIHtcbiAgLS1fc2JiLXRyYWluLWZvcm1hdGlvbi1zZWN0b3JzLXRvLXRyYWluLWdhcDogdmFyKC0tc2JiLXRyYWluLWZvcm1hdGlvbi1nYXApO1xufVxuXG46aG9zdCg6c3RhdGUoaGFzLWRpcmVjdGlvbi1sYWJlbCkpIHtcbiAgLS1fc2JiLXRyYWluLWZvcm1hdGlvbi1yZXNlcnZlLXNwYWNpbmctZGlzcGxheTogYmxvY2s7XG59XG5cbjpob3N0KFtvcmllbnRhdGlvbj0ndmVydGljYWwnXSkge1xuICAtLV9zYmItdHJhaW4tZm9ybWF0aW9uLXdhZ29uLXdpZHRoOiB2YXIoLS1zYmItdHJhaW4tZm9ybWF0aW9uLXdhZ29uLWRpbWVuc2lvbi1zaG9ydCk7XG4gIC0tX3NiYi10cmFpbi1mb3JtYXRpb24td2Fnb24taGVpZ2h0OiB2YXIoLS1zYmItdHJhaW4tZm9ybWF0aW9uLXdhZ29uLWRpbWVuc2lvbi1sb25nKTtcbiAgLS1fc2JiLXRyYWluLWZvcm1hdGlvbi1mbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAtLV9zYmItdHJhaW4tZm9ybWF0aW9uLWZsZXgtZGlyZWN0aW9uLWludmVydGVkOiByb3c7XG5cbiAgZ3JpZC10ZW1wbGF0ZTpcbiAgICAnc3RhcnQgc3RhcnQnIGF1dG9cbiAgICAnc2VjdG9ycyB0cmFpbnMnIDFmclxuICAgICdlbmQgZW5kJyBhdXRvO1xuICBvdmVyZmxvdzogdmlzaWJsZSBhdXRvO1xuICBwYWRkaW5nLWJsb2NrOiB1bnNldDtcbiAgcGFkZGluZy1pbmxpbmU6IHZhcigtLXNiYi10cmFpbi1mb3JtYXRpb24tcGFkZGluZyk7XG4gIGdhcDogMCB2YXIoLS1fc2JiLXRyYWluLWZvcm1hdGlvbi1zZWN0b3JzLXRvLXRyYWluLWdhcCwgMCk7XG4gIHdpZHRoOiBmaXQtY29udGVudDtcblxuICAmOjpiZWZvcmUsXG4gICY6OmFmdGVyIHtcbiAgICB3aWR0aDogYXV0bztcbiAgICBoZWlnaHQ6IHZhcigtLXNiYi10cmFpbi1mb3JtYXRpb24tc2Nyb2xsLXBhZGRpbmcpO1xuICB9XG59XG5cbi5zYmItdHJhaW4tZm9ybWF0aW9uX19zZWN0b3JzIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZ3JpZC1hcmVhOiBzZWN0b3JzO1xuICBnYXA6IHZhcigtLXNiYi10cmFpbi1mb3JtYXRpb24td2Fnb24tZ2FwKTtcbiAgZmxleC1kaXJlY3Rpb246IHZhcigtLV9zYmItdHJhaW4tZm9ybWF0aW9uLWZsZXgtZGlyZWN0aW9uKTtcbn1cblxuLnNiYi10cmFpbi1mb3JtYXRpb25fX3NlY3RvciB7XG4gIC0tX3dhZ29uLXN1bTogdmFyKC0tc2JiLXRyYWluLWZvcm1hdGlvbi13YWdvbi1jb3VudCkgKlxuICAgIHZhcigtLXNiYi10cmFpbi1mb3JtYXRpb24td2Fnb24tZGltZW5zaW9uLWxvbmcpO1xuICAtLV9ibG9ja2VkLXBhc3NhZ2Utc3VtOiB2YXIoLS1zYmItdHJhaW4tZm9ybWF0aW9uLXdhZ29uLWJsb2NrZWQtcGFzc2FnZS1jb3VudCkgKlxuICAgIHZhcigtLXNiYi10cmFpbi1mb3JtYXRpb24tYmxvY2tlZC1wYXNzYWdlLWRpbWVuc2lvbik7XG4gIC0tX3RvdGFsLWNvdW50OiBjYWxjKFxuICAgIHZhcigtLXNiYi10cmFpbi1mb3JtYXRpb24td2Fnb24tY291bnQpICsgdmFyKC0tc2JiLXRyYWluLWZvcm1hdGlvbi13YWdvbi1ibG9ja2VkLXBhc3NhZ2UtY291bnQpXG4gICk7XG4gIC0tX2dhcC1zdW06IGNhbGMoKHZhcigtLV90b3RhbC1jb3VudCkgLSAxKSAqIHZhcigtLXNiYi10cmFpbi1mb3JtYXRpb24td2Fnb24tZ2FwKSk7XG4gIC0tX3NlY3Rvci13aWR0aDogY2FsYyh2YXIoLS1fd2Fnb24tc3VtKSArIHZhcigtLV9ibG9ja2VkLXBhc3NhZ2Utc3VtKSArIHZhcigtLV9nYXAtc3VtKSk7XG4gIC0tX3NlY3Rvci1saW5lLWxlbmd0aDogY2FsYygwLjUgKiB2YXIoLS1fc2VjdG9yLXdpZHRoKSk7XG5cbiAgZmxleDogMCAwIHZhcigtLV9zZWN0b3Itd2lkdGgpO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogdmFyKC0tX3NiYi10cmFpbi1mb3JtYXRpb24tZmxleC1kaXJlY3Rpb24pO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgb3ZlcmZsb3c6IGNsaXAgdmlzaWJsZTtcblxuICA6aG9zdChbb3JpZW50YXRpb249J3ZlcnRpY2FsJ10pICYge1xuICAgIG92ZXJmbG93OiB2aXNpYmxlIGNsaXA7XG4gIH1cbn1cblxuLnNiYi10cmFpbi1mb3JtYXRpb25fX3NlY3Rvci1zdGlja3ktd3JhcHBlciB7XG4gIHBvc2l0aW9uOiBzdGlja3k7XG4gIGluc2V0OiBhdXRvIDA7XG4gIHBhZGRpbmc6IDAgdmFyKC0tc2JiLXRyYWluLWZvcm1hdGlvbi1zZWN0b3ItcGFkZGluZyk7XG4gIG1hcmdpbjogMCB2YXIoLS1zYmItdHJhaW4tZm9ybWF0aW9uLXNlY3Rvci1tYXJnaW4pO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuXG4gIDpob3N0KFtvcmllbnRhdGlvbj0ndmVydGljYWwnXSkgJiB7XG4gICAgd3JpdGluZy1tb2RlOiBzaWRld2F5cy1scjtcbiAgICBpbnNldDogMCBhdXRvO1xuICAgIHBhZGRpbmc6IHZhcigtLXNiYi10cmFpbi1mb3JtYXRpb24tc2VjdG9yLXBhZGRpbmcpIDA7XG4gICAgbWFyZ2luOiB2YXIoLS1zYmItdHJhaW4tZm9ybWF0aW9uLXNlY3Rvci1tYXJnaW4pIDA7XG4gIH1cblxuICAvLyBMaW5lcyBiZXNpZGUgdGhlIHNlY3Rvci1sYWJlbFxuICAmOjpiZWZvcmUsXG4gICY6OmFmdGVyIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAvLyBFeGFjdGx5IGNlbnRlciB0aGUgbGluZSBieSBzdWJ0cmFjdGluZyBoYWxmIG9mIHRoZSBib3JkZXIgd2lkdGhcbiAgICBpbnNldC1ibG9jazogY2FsYyg1MCUgLSB2YXIoLS1zYmItdHJhaW4tZm9ybWF0aW9uLXNlY3Rvci1saW5lLXdpZHRoKSAvIDIpO1xuICAgIGJvcmRlci1ibG9jay1lbmQ6IHZhcigtLXNiYi10cmFpbi1mb3JtYXRpb24tc2VjdG9yLWxpbmUtd2lkdGgpIHNvbGlkXG4gICAgICB2YXIoLS1zYmItdHJhaW4tZm9ybWF0aW9uLXNlY3Rvci1saW5lLWNvbG9yKTtcbiAgICB3aWR0aDogdmFyKC0tX3NlY3Rvci1saW5lLWxlbmd0aCk7XG5cbiAgICA6aG9zdChbb3JpZW50YXRpb249J3ZlcnRpY2FsJ10pICYge1xuICAgICAgd2lkdGg6IGF1dG87XG4gICAgICBoZWlnaHQ6IHZhcigtLV9zZWN0b3ItbGluZS1sZW5ndGgpO1xuICAgIH1cbiAgfVxuXG4gICY6OmJlZm9yZSB7XG4gICAgaW5zZXQtaW5saW5lLWVuZDogMTAwJTtcbiAgfVxuXG4gICY6OmFmdGVyIHtcbiAgICBpbnNldC1pbmxpbmUtc3RhcnQ6IDEwMCU7XG4gIH1cbn1cblxuLnNiYi10cmFpbi1mb3JtYXRpb25fX3RyYWlucyB7XG4gIGdyaWQtYXJlYTogdHJhaW5zO1xufVxuXG4uc2JiLXRyYWluLWZvcm1hdGlvbl9fdHJhaW4tbGlzdCB7XG4gIEBpbmNsdWRlIHNiYi5saXN0LXJlc2V0O1xuXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiB2YXIoLS1fc2JiLXRyYWluLWZvcm1hdGlvbi1mbGV4LWRpcmVjdGlvbik7XG4gIGdhcDogdmFyKC0tc2JiLXRyYWluLWZvcm1hdGlvbi13YWdvbi1nYXApO1xufVxuXG4vLyBVc2luZyAuLi4gbGkgc2VsZWN0b3IsIGJlY2F1c2UgdGhlIGxpIGdlbmVyYXRpb25cbi8vIGlzIGhhbmRsZWQgaW4gdGhlIGNvbXBvbmVudCBiYXNlIGNsYXNzLlxuLnNiYi10cmFpbi1mb3JtYXRpb25fX3RyYWluLWxpc3QgPiA6aXMobGksIHNwYW4pIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG59XG4iLCJpbXBvcnQge1xuICB0eXBlIENTU1Jlc3VsdEdyb3VwLFxuICBodG1sLFxuICBub3RoaW5nLFxuICB0eXBlIFByb3BlcnR5VmFsdWVzLFxuICB0eXBlIFRlbXBsYXRlUmVzdWx0LFxuICB1bnNhZmVDU1MsXG59IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBwcm9wZXJ0eSwgc3RhdGUgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5pbXBvcnQgeyBzdHlsZU1hcCB9IGZyb20gJ2xpdC9kaXJlY3RpdmVzL3N0eWxlLW1hcC5qcyc7XG5cbmltcG9ydCB7XG4gIGhvc3RTY3JvbGxiYXJTdHlsZXMsXG4gIGkxOG5TZWN0b3IsXG4gIGkxOG5TZWN0b3JTaG9ydCxcbiAgaTE4blRyYWlucyxcbiAgU2JiRWxlbWVudCxcbiAgU2JiTGFuZ3VhZ2VDb250cm9sbGVyLFxuICBTYmJOYW1lZFNsb3RMaXN0TWl4aW4sXG4gIHR5cGUgU2JiT3JpZW50YXRpb24sXG4gIHR5cGUgV2l0aExpc3RDaGlsZHJlbixcbn0gZnJvbSAnLi4vLi4vY29yZS50cyc7XG5pbXBvcnQgdHlwZSB7IFNiYlRyYWluRWxlbWVudCB9IGZyb20gJy4uL3RyYWluL3RyYWluLmNvbXBvbmVudC50cyc7XG5pbXBvcnQgdHlwZSB7IFNiYlRyYWluQmxvY2tlZFBhc3NhZ2VFbGVtZW50IH0gZnJvbSAnLi4vdHJhaW4tYmxvY2tlZC1wYXNzYWdlL3RyYWluLWJsb2NrZWQtcGFzc2FnZS5jb21wb25lbnQudHMnO1xuaW1wb3J0IHR5cGUgeyBTYmJUcmFpbldhZ29uTWl4aW5UeXBlIH0gZnJvbSAnLi4vdHJhaW4td2Fnb24tY29tbW9uLnRzJztcblxuaW1wb3J0IHN0eWxlIGZyb20gJy4vdHJhaW4tZm9ybWF0aW9uLnNjc3M/aW5saW5lJztcblxuaW50ZXJmYWNlIEFnZ3JlZ2F0ZWRTZWN0b3Ige1xuICBsYWJlbDogc3RyaW5nO1xuICB3YWdvbkNvdW50OiBudW1iZXI7XG4gIGJsb2NrZWRQYXNzYWdlQ291bnQ6IG51bWJlcjtcbn1cblxuLyoqXG4gKiBJdCBkaXNwbGF5cyBhIHRyYWluIGNvbXBvc2l0aW9uLCBhY3RpbmcgYXMgYSBjb250YWluZXIgZm9yIG9uZSBvciBtb3JlIGBzYmItdHJhaW5gIGNvbXBvbmVudC5cbiAqXG4gKiBAc2xvdCAtIFVzZSB0aGUgdW5uYW1lZCBzbG90IHRvIGFkZCAnc2JiLXRyYWluJyBlbGVtZW50cyB0byB0aGUgYHNiYi10cmFpbi1mb3JtYXRpb25gLlxuICogQGNzc3Byb3AgWy0tc2JiLXRyYWluLWZvcm1hdGlvbi1zY3JvbGwtcGFkZGluZz12YXIoLS1zYmItc3BhY2luZy1maXhlZC0xeCldIC0gRGVmaW5lcyB0aGUgaW5saW5lIG9yIGJsb2NrIHBhZGRpbmcgaW5zaWRlIHRoZSBob3Jpem9udGFsIG9yIHZlcnRpY2FsIHNjcm9sbGluZyBhcmVhLlxuICovXG5leHBvcnQgY2xhc3MgU2JiVHJhaW5Gb3JtYXRpb25FbGVtZW50IGV4dGVuZHMgU2JiTmFtZWRTbG90TGlzdE1peGluPFxuICBTYmJUcmFpbkVsZW1lbnQsXG4gIHR5cGVvZiBTYmJFbGVtZW50XG4+KFNiYkVsZW1lbnQpIHtcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSByZWFkb25seSBlbGVtZW50TmFtZTogc3RyaW5nID0gJ3NiYi10cmFpbi1mb3JtYXRpb24nO1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHN0eWxlczogQ1NTUmVzdWx0R3JvdXAgPSBbaG9zdFNjcm9sbGJhclN0eWxlcywgdW5zYWZlQ1NTKHN0eWxlKV07XG4gIHByb3RlY3RlZCBvdmVycmlkZSByZWFkb25seSBsaXN0Q2hpbGRMb2NhbE5hbWVzID0gWydzYmItdHJhaW4nXTtcblxuICAvKiogV2hldGhlciB0aGUgdmlldyBvZiB0aGUgd2Fnb25zIGlzIGZyb20gc2lkZSBvciB0b3AgcGVyc3BlY3RpdmUuICovXG4gIEBwcm9wZXJ0eSh7IHJlZmxlY3Q6IHRydWUgfSkgcHVibGljIGFjY2Vzc29yIHZpZXc6ICdzaWRlJyB8ICd0b3AnID0gJ3NpZGUnO1xuXG4gIC8qKiBPcmllbnRhdGlvbiwgZWl0aGVyIGhvcml6b250YWwgb3IgdmVydGljYWwuICovXG4gIEBwcm9wZXJ0eSh7IHJlZmxlY3Q6IHRydWUgfSkgcHVibGljIGFjY2Vzc29yIG9yaWVudGF0aW9uOiBTYmJPcmllbnRhdGlvbiA9ICdob3Jpem9udGFsJztcblxuICBAc3RhdGUoKSBwcml2YXRlIGFjY2Vzc29yIF9zZWN0b3JzOiBBZ2dyZWdhdGVkU2VjdG9yW10gPSBbXTtcblxuICBwcml2YXRlIF9sYW5ndWFnZSA9IG5ldyBTYmJMYW5ndWFnZUNvbnRyb2xsZXIodGhpcyk7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyPy4oJ3RyYWluc2xvdGNoYW5nZScsIChlKSA9PiB7XG4gICAgICB0aGlzLl9yZWFkU2VjdG9ycyhlKTtcbiAgICAgIHRoaXMuX3JlYWREaXJlY3Rpb25MYWJlbChlKTtcbiAgICB9KTtcbiAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/Lignc2VjdG9yY2hhbmdlJywgKGUpID0+IHRoaXMuX3JlYWRTZWN0b3JzKGUpKTtcbiAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/LignZGlyZWN0aW9ubGFiZWxjaGFuZ2UnLCAoZSkgPT4gdGhpcy5fcmVhZERpcmVjdGlvbkxhYmVsKGUpKTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpO1xuXG4gICAgLy8gV2hlbiBpbmNsdWRpbmcgdGhlIHNjcm9sbGJhciBzdHlsZXMgb24gdGhlIGhvc3QsIHRoZXJlIGlzIG5vIGhvdmVyIGVmZmVjdCBvZiB0aGUgc2Nyb2xsYmFyIHBvc3NpYmxlLlxuICAgIC8vIEluIG1vc3QgY2FzZXMsIHRoZSBjb21wb25lbnQgd2lsbCBiZSB1c2VkIGluIExpZ2h0IERPTS4gVG8gYWxzbyBzdXBwb3J0IHRoZSBob3ZlciBlZmZlY3QsXG4gICAgLy8gd2UgYWRkaXRpb25hbGx5IGFkZCB0aGUgYHNiYi1zY3JvbGxiYXJgIENTUyBjbGFzcyB0byB0aGUgaG9zdC5cbiAgICAvLyBUaGlzIGlzIGFuIGV4Y2VwdGlvbiBhcyB3ZSBub3JtYWxseSBkb24ndCBhbHRlciB0aGUgY2xhc3NMaXN0IG9mIHRoZSBob3N0LlxuICAgIHRoaXMuY2xhc3NMaXN0LmFkZCgnc2JiLXNjcm9sbGJhcicpO1xuICB9XG5cbiAgcHJpdmF0ZSBfcmVhZERpcmVjdGlvbkxhYmVsKGV2ZW50PzogRXZlbnQpOiB2b2lkIHtcbiAgICAvLyBLZWVwIHRoZSBldmVudCBpbnRlcm5hbC5cbiAgICBldmVudD8uc3RvcFByb3BhZ2F0aW9uKCk7XG5cbiAgICB0aGlzLnRvZ2dsZVN0YXRlKFxuICAgICAgJ2hhcy1kaXJlY3Rpb24tbGFiZWwnLFxuICAgICAgQXJyYXkuZnJvbSh0aGlzLnF1ZXJ5U2VsZWN0b3JBbGw/Lignc2JiLXRyYWluJykgPz8gW10pLnNvbWUoXG4gICAgICAgICh0cmFpbikgPT4gISF0cmFpbi5kaXJlY3Rpb25MYWJlbCxcbiAgICAgICksXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgX3JlYWRTZWN0b3JzKGV2ZW50PzogRXZlbnQpOiB2b2lkIHtcbiAgICAvLyBLZWVwIHRoZSBldmVudCBpbnRlcm5hbC5cbiAgICBldmVudD8uc3RvcFByb3BhZ2F0aW9uKCk7XG5cbiAgICB0aGlzLl9zZWN0b3JzID0gQXJyYXkuZnJvbShcbiAgICAgIHRoaXMucXVlcnlTZWxlY3RvckFsbD8uPFNiYlRyYWluV2Fnb25NaXhpblR5cGUgfCBTYmJUcmFpbkJsb2NrZWRQYXNzYWdlRWxlbWVudD4oXG4gICAgICAgICdzYmItdHJhaW4td2Fnb24sc2JiLXRyYWluLXdhZ29uLWJ1dHRvbixzYmItdHJhaW4td2Fnb24tbGluayxzYmItdHJhaW4tYmxvY2tlZC1wYXNzYWdlJyxcbiAgICAgICkgPz8gW10sXG4gICAgKS5yZWR1Y2UoXG4gICAgICAoXG4gICAgICAgIGFnZ3JlZ2F0ZWRTZWN0b3JzOiBBZ2dyZWdhdGVkU2VjdG9yW10sXG4gICAgICAgIGl0ZW06IFNiYlRyYWluV2Fnb25NaXhpblR5cGUgfCBTYmJUcmFpbkJsb2NrZWRQYXNzYWdlRWxlbWVudCxcbiAgICAgICkgPT4ge1xuICAgICAgICBjb25zdCBjdXJyZW50QWdncmVnYXRlZFNlY3RvciA9IGFnZ3JlZ2F0ZWRTZWN0b3JzW2FnZ3JlZ2F0ZWRTZWN0b3JzLmxlbmd0aCAtIDFdO1xuXG4gICAgICAgIGlmIChpdGVtLmxvY2FsTmFtZS5zdGFydHNXaXRoKCdzYmItdHJhaW4td2Fnb24nKSkge1xuICAgICAgICAgIGNvbnN0IHNlY3RvckF0dHJpYnV0ZSA9XG4gICAgICAgICAgICAoaXRlbSBhcyBTYmJUcmFpbldhZ29uTWl4aW5UeXBlKS5zZWN0b3IgPz8gaXRlbS5nZXRBdHRyaWJ1dGUoJ3NlY3RvcicpO1xuXG4gICAgICAgICAgaWYgKCFjdXJyZW50QWdncmVnYXRlZFNlY3Rvci5sYWJlbCAmJiBzZWN0b3JBdHRyaWJ1dGUpIHtcbiAgICAgICAgICAgIGN1cnJlbnRBZ2dyZWdhdGVkU2VjdG9yLmxhYmVsID0gc2VjdG9yQXR0cmlidXRlO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmICghc2VjdG9yQXR0cmlidXRlIHx8IGN1cnJlbnRBZ2dyZWdhdGVkU2VjdG9yLmxhYmVsID09PSBzZWN0b3JBdHRyaWJ1dGUpIHtcbiAgICAgICAgICAgIGN1cnJlbnRBZ2dyZWdhdGVkU2VjdG9yLndhZ29uQ291bnQrKztcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgYWdncmVnYXRlZFNlY3RvcnMucHVzaCh7XG4gICAgICAgICAgICAgIGxhYmVsOiBzZWN0b3JBdHRyaWJ1dGUsXG4gICAgICAgICAgICAgIHdhZ29uQ291bnQ6IDEsXG4gICAgICAgICAgICAgIGJsb2NrZWRQYXNzYWdlQ291bnQ6IDAsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAoaXRlbS5sb2NhbE5hbWUgPT09ICdzYmItdHJhaW4tYmxvY2tlZC1wYXNzYWdlJykge1xuICAgICAgICAgIGN1cnJlbnRBZ2dyZWdhdGVkU2VjdG9yLmJsb2NrZWRQYXNzYWdlQ291bnQrKztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBhZ2dyZWdhdGVkU2VjdG9ycztcbiAgICAgIH0sXG4gICAgICBbeyB3YWdvbkNvdW50OiAwLCBibG9ja2VkUGFzc2FnZUNvdW50OiAwIH0gYXMgQWdncmVnYXRlZFNlY3Rvcl0sXG4gICAgKTtcblxuICAgIHRoaXMudG9nZ2xlU3RhdGUoXG4gICAgICAnaGFzLXNlY3RvcnMnLFxuICAgICAgdGhpcy5fc2VjdG9ycy5zb21lKChzKSA9PiAhIXMubGFiZWwpLFxuICAgICk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgd2lsbFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXM8V2l0aExpc3RDaGlsZHJlbjx0aGlzPj4pOiB2b2lkIHtcbiAgICBzdXBlci53aWxsVXBkYXRlKGNoYW5nZWRQcm9wZXJ0aWVzKTtcblxuICAgIGlmIChjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ2xpc3RDaGlsZHJlbicpKSB7XG4gICAgICB0aGlzLl9yZWFkU2VjdG9ycygpO1xuICAgICAgdGhpcy5fcmVhZERpcmVjdGlvbkxhYmVsKCk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlbmRlcigpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICAke3RoaXMuX3NlY3RvcnMubGVuZ3RoICYmIHRoaXMuX3NlY3RvcnNbMF0ubGFiZWwgIT09IHVuZGVmaW5lZFxuICAgICAgICA/IGh0bWxgPGRpdiBjbGFzcz1cInNiYi10cmFpbi1mb3JtYXRpb25fX3NlY3RvcnNcIiBhcmlhLWhpZGRlbj1cInRydWVcIj5cbiAgICAgICAgICAgICR7dGhpcy5fc2VjdG9ycy5tYXAoXG4gICAgICAgICAgICAgIChhZ2dyZWdhdGVkU2VjdG9yKSA9PlxuICAgICAgICAgICAgICAgIGh0bWxgPHNwYW5cbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwic2JiLXRyYWluLWZvcm1hdGlvbl9fc2VjdG9yXCJcbiAgICAgICAgICAgICAgICAgIHN0eWxlPSR7c3R5bGVNYXAoe1xuICAgICAgICAgICAgICAgICAgICAnLS1zYmItdHJhaW4tZm9ybWF0aW9uLXdhZ29uLWNvdW50JzogYWdncmVnYXRlZFNlY3Rvci53YWdvbkNvdW50LFxuICAgICAgICAgICAgICAgICAgICAnLS1zYmItdHJhaW4tZm9ybWF0aW9uLXdhZ29uLWJsb2NrZWQtcGFzc2FnZS1jb3VudCc6XG4gICAgICAgICAgICAgICAgICAgICAgYWdncmVnYXRlZFNlY3Rvci5ibG9ja2VkUGFzc2FnZUNvdW50LFxuICAgICAgICAgICAgICAgICAgfSl9XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzYmItdHJhaW4tZm9ybWF0aW9uX19zZWN0b3Itc3RpY2t5LXdyYXBwZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgJHtgJHtcbiAgICAgICAgICAgICAgICAgICAgICBhZ2dyZWdhdGVkU2VjdG9yLndhZ29uQ291bnQgPT09IDEgJiYgYWdncmVnYXRlZFNlY3Rvci5sYWJlbFxuICAgICAgICAgICAgICAgICAgICAgICAgPyBpMThuU2VjdG9yU2hvcnRbdGhpcy5fbGFuZ3VhZ2UuY3VycmVudF1cbiAgICAgICAgICAgICAgICAgICAgICAgIDogaTE4blNlY3Rvclt0aGlzLl9sYW5ndWFnZS5jdXJyZW50XVxuICAgICAgICAgICAgICAgICAgICB9ICR7YWdncmVnYXRlZFNlY3Rvci5sYWJlbCA/IGFnZ3JlZ2F0ZWRTZWN0b3IubGFiZWwgOiAnJ31gfVxuICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvc3Bhbj5gLFxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L2Rpdj5gXG4gICAgICAgIDogbm90aGluZ31cblxuICAgICAgPGRpdiBjbGFzcz1cInNiYi10cmFpbi1mb3JtYXRpb25fX3RyYWluc1wiPlxuICAgICAgICAke3RoaXMucmVuZGVyTGlzdCh7XG4gICAgICAgICAgY2xhc3M6ICdzYmItdHJhaW4tZm9ybWF0aW9uX190cmFpbi1saXN0JyxcbiAgICAgICAgICBhcmlhTGFiZWw6IGkxOG5UcmFpbnNbdGhpcy5fbGFuZ3VhZ2UuY3VycmVudF0sXG4gICAgICAgIH0pfVxuICAgICAgPC9kaXY+XG4gICAgYDtcbiAgfVxufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAnc2JiLXRyYWluLWZvcm1hdGlvbic6IFNiYlRyYWluRm9ybWF0aW9uRWxlbWVudDtcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoi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
@@ -438,4 +438,4 @@ var SbbTrainWagonMixin = (superClass) => {
438
438
  //#endregion
439
439
  export { SbbTrainWagonMixin as t };
440
440
 
441
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhaW4td2Fnb24tY29tbW9uLUMtMGZJMXIyLmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50cy90cmFpbi90cmFpbi13YWdvbi1jb21tb24uc2Nzcz9pbmxpbmUiLCIuLi8uLi8uLi9zcmMvZWxlbWVudHMvdHJhaW4vdHJhaW4td2Fnb24tY29tbW9uLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIkB1c2UgJy4uL2NvcmUvc3R5bGVzJyBhcyBzYmI7XG5cbjpob3N0IHtcbiAgLS1zYmItdHJhaW4td2Fnb24tdHJhbnNpdGlvbi1kdXJhdGlvbjogdmFyKFxuICAgIC0tc2JiLWRpc2FibGUtYW5pbWF0aW9uLWR1cmF0aW9uLFxuICAgIHZhcigtLXNiYi1hbmltYXRpb24tZHVyYXRpb24tMngpXG4gICk7XG5cbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtc2l6ZTogdmFyKC0tc2JiLXRyYWluLXdhZ29uLWZvbnQtc2l6ZSk7XG4gIGxldHRlci1zcGFjaW5nOiB2YXIoLS1zYmItdHlwby1sZXR0ZXItc3BhY2luZy10ZXh0KTtcblxuICAvLyBVc2UgIWltcG9ydGFudCBoZXJlIHRvIG5vdCBpbnRlcmZlcmUgd2l0aCBGaXJlZm94IGZvY3VzIHJpbmcgZGVmaW5pdGlvblxuICAvLyB3aGljaCBhcHBlYXJzIGluIG5vcm1hbGl6ZSBDU1Mgb2Ygc2V2ZXJhbCBmcmFtZXdvcmtzLlxuICBvdXRsaW5lOiBub25lICFpbXBvcnRhbnQ7XG59XG5cbjpob3N0KFt3YWdvbi10eXBlPSdjbG9zZWQnXSkge1xuICAtLXNiYi10cmFpbi13YWdvbi1jcm9zc2VkLXNoYXBlLWRpc3BsYXk6IGJsb2NrO1xuXG4gIEBpbmNsdWRlIHNiYi5pZi1mb3JjZWQtY29sb3JzIHtcbiAgICAtLXNiYi10cmFpbi13YWdvbi1zaGFwZS1jb2xvcjogR3JheVRleHQ7XG4gIH1cbn1cblxuOmhvc3QoOnN0YXRlKHZpZXctc2lkZSlbd2Fnb24tdHlwZT0nd2Fnb24tZW5kLWxlZnQnXSkge1xuICAtLXNiYi10cmFpbi13YWdvbi1wYWRkaW5nLWlubGluZTogdmFyKC0tc2JiLXNwYWNpbmctZml4ZWQtNHgpIHZhcigtLXNiYi1zcGFjaW5nLWZpeGVkLTN4KTtcbn1cblxuOmhvc3QoOnN0YXRlKHZpZXctc2lkZSlbd2Fnb24tdHlwZT0nd2Fnb24tZW5kLXJpZ2h0J10pIHtcbiAgLS1zYmItdHJhaW4td2Fnb24tcGFkZGluZy1pbmxpbmU6IHZhcigtLXNiYi1zcGFjaW5nLWZpeGVkLTN4KSB2YXIoLS1zYmItc3BhY2luZy1maXhlZC00eCk7XG59XG5cbjpob3N0KDpzdGF0ZSh2aWV3LXNpZGUpW3dhZ29uLXR5cGU9J2xvY29tb3RpdmUnXSkge1xuICAtLXNiYi10cmFpbi13YWdvbi1wYWRkaW5nLWlubGluZTogdmFyKC0tc2JiLXNwYWNpbmctZml4ZWQtNHgpO1xufVxuXG46aG9zdCg6c3RhdGUodmlldy10b3ApKSB7XG4gIC0tc2JiLXRyYWluLXdhZ29uLWJvcmRlci1yYWRpdXM6IHZhcigtLXNiYi1ib3JkZXItcmFkaXVzLTR4KTtcbn1cblxuOmhvc3QoW2xhYmVsXSkge1xuICAtLV9zYmItdHJhaW4td2Fnb24tYXR0cmlidXRlcy1tYXgtd2lkdGg6IHZhcigtLXNiYi10cmFpbi13YWdvbi1hdHRyaWJ1dGVzLW1heC13aWR0aCk7XG59XG5cbjpob3N0KDpub3QoW2xhYmVsXSkpIHtcbiAgLS1fc2JiLXRyYWluLXdhZ29uLWF0dHJpYnV0ZXMtanVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG5cbjpob3N0KC5zYmItYWN0aXZlKSB7XG4gIC0tc2JiLXRyYWluLXdhZ29uLWJvcmRlci13aWR0aDogdmFyKC0tc2JiLWJvcmRlci13aWR0aC0zeCk7XG59XG5cbjpob3N0KDpzdGF0ZShhY3Rpb24pKSB7XG4gIGN1cnNvcjogdmFyKC0tc2JiLWN1cnNvci1wb2ludGVyKTtcbn1cblxuOmhvc3QoOnN0YXRlKGxpbmspKSB7XG4gIEBpbmNsdWRlIHNiYi5pZi1mb3JjZWQtY29sb3JzIHtcbiAgICAtLXNiYi10cmFpbi13YWdvbi1zaGFwZS1jb2xvcjogTGlua1RleHQ7XG4gIH1cbn1cblxuLnNiYi10cmFpbi13YWdvbi1saW5rIHtcbiAgb3V0bGluZTogbm9uZTtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cblxuLnNiYi10cmFpbi13YWdvbiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiB2YXIoLS1fc2JiLXRyYWluLWZvcm1hdGlvbi1mbGV4LWRpcmVjdGlvbi1pbnZlcnRlZCk7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHdpZHRoOiB2YXIoLS1fc2JiLXRyYWluLWZvcm1hdGlvbi13YWdvbi13aWR0aCk7XG4gIGdhcDogdmFyKC0tc2JiLXRyYWluLXdhZ29uLXZlcnRpY2FsLWdhcCk7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICA6aG9zdCg6c3RhdGUob3JpZW50YXRpb24tdmVydGljYWwpKSAmIHtcbiAgICB3aWR0aDogYXV0bztcbiAgICBoZWlnaHQ6IHZhcigtLV9zYmItdHJhaW4tZm9ybWF0aW9uLXdhZ29uLWhlaWdodCk7XG4gIH1cblxuICAmOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogdmFyKC0tX3NiYi10cmFpbi1mb3JtYXRpb24td2Fnb24td2lkdGgpO1xuICAgIGhlaWdodDogdmFyKC0tX3NiYi10cmFpbi1mb3JtYXRpb24td2Fnb24taGVpZ2h0KTtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1zYmItdHJhaW4td2Fnb24tYm9yZGVyLXJhZGl1cyk7XG5cbiAgICA6aG9zdCg6c3RhdGUoYnV0dG9uKTpmb2N1cy12aXNpYmxlKSAmLFxuICAgIC5zYmItdHJhaW4td2Fnb24tbGluazpmb2N1cy12aXNpYmxlICYge1xuICAgICAgQGluY2x1ZGUgc2JiLmZvY3VzLW91dGxpbmU7XG4gICAgfVxuICB9XG59XG5cbi5zYmItdHJhaW4td2Fnb25fX2NvbXBhcnRtZW50IHtcbiAgQGluY2x1ZGUgc2JiLmxpc3QtcmVzZXQ7XG5cbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IHZhcigtLV9zYmItdHJhaW4tZm9ybWF0aW9uLWZsZXgtZGlyZWN0aW9uKTtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHBhZGRpbmctaW5saW5lOiB2YXIoLS1zYmItdHJhaW4td2Fnb24tcGFkZGluZy1pbmxpbmUpO1xuICBtYXNrLWltYWdlOiB2YXIoLS1fc2JiLXRyYWluLXdhZ29uLWNsaXAtc2hhcGUtY29tcGFydG1lbnQpO1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIHZhcigtLXNiYi10cmFpbi13YWdvbi10cmFuc2l0aW9uLWR1cmF0aW9uKVxuICAgIHZhcigtLXNiYi1hbmltYXRpb24tZWFzaW5nKTtcblxuICA6aG9zdCg6c3RhdGUoYWN0aW9uKTpob3ZlcikgJiB7XG4gICAgQGluY2x1ZGUgc2JiLmhvdmVyLW1xKCRob3ZlcjogdHJ1ZSkge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2JiLXRyYWluLXdhZ29uLWJhY2tncm91bmQtY29sb3ItaG92ZXIpO1xuICAgIH1cbiAgfVxuXG4gIDpob3N0KDpzdGF0ZShhY3Rpb24pOmlzKDphY3RpdmUsIDpzdGF0ZShhY3RpdmUpKSkgJiB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2JiLXRyYWluLXdhZ29uLWJhY2tncm91bmQtY29sb3ItYWN0aXZlKTtcbiAgfVxuXG4gICY6aGFzKC5zYmItdHJhaW4td2Fnb25fX29jY3VwYW5jeSk6aGFzKC5zYmItdHJhaW4td2Fnb25fX2NsYXNzKSB7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICB9XG5cbiAgOmhvc3QoOnN0YXRlKG9yaWVudGF0aW9uLXZlcnRpY2FsKSkgJiB7XG4gICAgcGFkZGluZy1pbmxpbmU6IDA7XG4gICAgcGFkZGluZy1ibG9jazogdmFyKC0tc2JiLXRyYWluLXdhZ29uLXBhZGRpbmctaW5saW5lKTtcbiAgfVxufVxuXG4uc2JiLXRyYWluLXdhZ29uX19jb21wYXJ0bWVudCxcbi5zYmItdHJhaW4td2Fnb25fX21haW4taWNvbiB7XG4gIHdpZHRoOiB2YXIoLS1fc2JiLXRyYWluLWZvcm1hdGlvbi13YWdvbi13aWR0aCk7XG4gIGhlaWdodDogdmFyKC0tX3NiYi10cmFpbi1mb3JtYXRpb24td2Fnb24taGVpZ2h0KTtcbn1cblxuLnNiYi10cmFpbi13YWdvbl9fc2hhcGUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGluc2V0OiAwO1xuICB3aWR0aDogdmFyKC0tc2JiLXRyYWluLWZvcm1hdGlvbi13YWdvbi1kaW1lbnNpb24tbG9uZyk7XG4gIGhlaWdodDogdmFyKC0tc2JiLXRyYWluLWZvcm1hdGlvbi13YWdvbi1kaW1lbnNpb24tc2hvcnQpO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiAwIDA7XG5cbiAgLy8gTmVlZCBpbiBvcmRlciB0byBjb3JyZWN0bHkgcmVuZGVyIGluIFNhZmFyaVxuICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtO1xuXG4gIDpob3N0KDpzdGF0ZShvcmllbnRhdGlvbi12ZXJ0aWNhbCkpICYge1xuICAgIHJvdGF0ZTogLTkwZGVnO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoLTEsIDEpO1xuICB9XG59XG5cbi5zYmItdHJhaW4td2Fnb25fX3NoYXBlIHtcbiAgLy8gV2UgaGF2ZSB0byBjbGlwIHRoZSBzaGFwZSwgYmVjYXVzZSB0aGUgcGF0aCBjYW4gYmUgbGFyZ2VyIHRoYW4gdGhlIHdhZ29uIHNoYXBlIGFuZCB3b3VsZCBvdmVyZmxvdyBvdGhlcndpc2UuXG4gIG1hc2staW1hZ2U6IHZhcigtLV9zYmItdHJhaW4td2Fnb24tY2xpcC1zaGFwZSk7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBmaWxsOiBub25lO1xuICBzdHJva2U6IHZhcigtLXNiYi10cmFpbi13YWdvbi1zaGFwZS1jb2xvcik7XG5cbiAgLy8gV2UgaGF2ZSB0byBtdWx0aXBseSBieSBmYWN0b3IgMiBiZWNhdXNlIHRoZSBib3JkZXIgZ3Jvd3MgZnJvbSB0aGUgYm91bmRpbmcgYm94IGxpbmVzXG4gIHN0cm9rZS13aWR0aDogY2FsYyh2YXIoLS1zYmItdHJhaW4td2Fnb24tYm9yZGVyLXdpZHRoKSAqIDIpO1xufVxuXG4uc2JiLXRyYWluLXdhZ29uX19tYWluLWljb24ge1xuICAtLXNiYi1pY29uLXN2Zy1oZWlnaHQ6IHZhcigtLXNiYi10cmFpbi13YWdvbi1tYWluLWljb24taGVpZ2h0KTtcblxuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGluc2V0OiAwO1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cblxuLnNiYi10cmFpbi13YWdvbl9fc2hhcGUtY2xvc2VkIHtcbiAgZGlzcGxheTogdmFyKC0tc2JiLXRyYWluLXdhZ29uLWNyb3NzZWQtc2hhcGUtZGlzcGxheSwgbm9uZSk7XG4gIHN0cm9rZS13aWR0aDogdmFyKC0tc2JiLWJvcmRlci13aWR0aC0xeCk7XG59XG5cbi5zYmItdHJhaW4td2Fnb25fX29jY3VwYW5jeSxcbi5zYmItdHJhaW4td2Fnb25fX2NsYXNzIHtcbiAgaGVpZ2h0OiB2YXIoLS1fc2JiLXRyYWluLWZvcm1hdGlvbi13YWdvbi1oZWlnaHQpO1xuICBmbGV4LWRpcmVjdGlvbjogdmFyKC0tX3NiYi10cmFpbi1mb3JtYXRpb24tZmxleC1kaXJlY3Rpb24pO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblxuICA6aG9zdCg6c3RhdGUob3JpZW50YXRpb24tdmVydGljYWwpKSAmIHtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgd2lkdGg6IHZhcigtLV9zYmItdHJhaW4tZm9ybWF0aW9uLXdhZ29uLXdpZHRoKTtcbiAgfVxufVxuXG4uc2JiLXRyYWluLXdhZ29uX19vY2N1cGFuY3kge1xuICAtLXNiYi1pY29uLXN2Zy1oZWlnaHQ6IHZhcigtLXNiYi10cmFpbi13YWdvbi1vY2N1cGFuY3ktaGVpZ2h0KTtcblxuICBncmlkLWFyZWE6IG9jY3VwYW5jeTtcbn1cblxuLnNiYi10cmFpbi13YWdvbl9fY2xhc3Mge1xuICBnYXA6ICN7c2JiLnB4LXRvLXJlbS1idWlsZCgxKX07XG4gIG9yZGVyOiAxO1xufVxuXG4uc2JiLXRyYWluLXdhZ29uX19jbGFzcy1lbnRyeSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB3aWR0aDogdmFyKC0tc2JiLXRyYWluLXdhZ29uLWNsYXNzLWRpbWVuc2lvbik7XG4gIGhlaWdodDogdmFyKC0tc2JiLXRyYWluLXdhZ29uLWNsYXNzLWRpbWVuc2lvbik7XG4gIGJvcmRlcjogdmFyKC0tc2JiLXRyYWluLXdhZ29uLWNsYXNzLWJvcmRlcik7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNiYi10cmFpbi13YWdvbi1jbGFzcy1iYWNrZ3JvdW5kLWNvbG9yKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tc2JiLXRyYWluLXdhZ29uLWNsYXNzLWJvcmRlci1yYWRpdXMpO1xuICBmb250LXdlaWdodDogdmFyKC0tc2JiLXRyYWluLXdhZ29uLWNsYXNzLWZvbnQtd2VpZ2h0KTtcbiAgY29sb3I6IHZhcigtLXNiYi10cmFpbi13YWdvbi1jbGFzcy1jb2xvcik7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAvLyBOZWVkZWQgdG8gZml4IFNhZmFyaSB2ZXJ0aWNhbCBjZW50ZXJpbmdcbiAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgJi5maXJzdCB7XG4gICAgJjo6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2JiLXRyYWluLXdhZ29uLWNsYXNzLWZpcnN0LWNvbG9yKTtcbiAgICAgIGJvcmRlci1lbmQtZW5kLXJhZGl1czogdmFyKC0tc2JiLXRyYWluLXdhZ29uLWNsYXNzLWZpcnN0LWJvcmRlci1yYWRpdXMpO1xuXG4gICAgICA6aG9zdCg6bm90KDpzdGF0ZShvcmllbnRhdGlvbi12ZXJ0aWNhbCkpKSAmIHtcbiAgICAgICAgaGVpZ2h0OiB2YXIoLS1zYmItdHJhaW4td2Fnb24tY2xhc3MtZmlyc3QtdGhpY2tuZXNzKTtcbiAgICAgICAgd2lkdGg6IHZhcigtLXNiYi10cmFpbi13YWdvbi1jbGFzcy1kaW1lbnNpb24pO1xuICAgICAgICBpbnNldDogY2FsYyhcbiAgICAgICAgICAgIC0wLjUgKlxuICAgICAgICAgICAgICAodmFyKC0tX3NiYi10cmFpbi1mb3JtYXRpb24td2Fnb24taGVpZ2h0KSAtIHZhcigtLXNiYi10cmFpbi13YWdvbi1jbGFzcy1kaW1lbnNpb24pKSArXG4gICAgICAgICAgICAgIHZhcigtLXNiYi10cmFpbi13YWdvbi1ib3JkZXItd2lkdGgpIC0gdmFyKC0tc2JiLXRyYWluLXdhZ29uLWNsYXNzLWJvcmRlci13aWR0aClcbiAgICAgICAgICApXG4gICAgICAgICAgMCBhdXRvIGNhbGMoLTEgKiB2YXIoLS1zYmItdHJhaW4td2Fnb24tY2xhc3MtYm9yZGVyLXdpZHRoKSk7XG4gICAgICAgIGJvcmRlci1lbmQtc3RhcnQtcmFkaXVzOiB2YXIoLS1zYmItdHJhaW4td2Fnb24tY2xhc3MtZmlyc3QtYm9yZGVyLXJhZGl1cyk7XG4gICAgICB9XG5cbiAgICAgIDpob3N0KDpzdGF0ZShvcmllbnRhdGlvbi12ZXJ0aWNhbCkpICYge1xuICAgICAgICB3aWR0aDogdmFyKC0tc2JiLXRyYWluLXdhZ29uLWNsYXNzLWZpcnN0LXRoaWNrbmVzcyk7XG4gICAgICAgIGhlaWdodDogdmFyKC0tc2JiLXRyYWluLXdhZ29uLWNsYXNzLWRpbWVuc2lvbik7XG4gICAgICAgIGluc2V0OiBjYWxjKC0xICogdmFyKC0tc2JiLXRyYWluLXdhZ29uLWNsYXNzLWJvcmRlci13aWR0aCkpIGF1dG8gMFxuICAgICAgICAgIGNhbGMoXG4gICAgICAgICAgICAtMC41ICpcbiAgICAgICAgICAgICAgKHZhcigtLV9zYmItdHJhaW4tZm9ybWF0aW9uLXdhZ29uLXdpZHRoKSAtIHZhcigtLXNiYi10cmFpbi13YWdvbi1jbGFzcy1kaW1lbnNpb24pKSArXG4gICAgICAgICAgICAgIHZhcigtLXNiYi10cmFpbi13YWdvbi1ib3JkZXItd2lkdGgpIC0gdmFyKC0tc2JiLXRyYWluLXdhZ29uLWNsYXNzLWJvcmRlci13aWR0aClcbiAgICAgICAgICApO1xuICAgICAgICBib3JkZXItc3RhcnQtZW5kLXJhZGl1czogdmFyKC0tc2JiLXRyYWluLXdhZ29uLWNsYXNzLWZpcnN0LWJvcmRlci1yYWRpdXMpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4uc2JiLXRyYWluLXdhZ29uX19pbmZvcm1hdGlvbi13cmFwcGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IHN0YXJ0O1xuICBmbGV4LWRpcmVjdGlvbjogdmFyKC0tX3NiYi10cmFpbi1mb3JtYXRpb24tZmxleC1kaXJlY3Rpb24pO1xuICBnYXA6IHZhcigtLXNiYi10cmFpbi13YWdvbi1pbmZvcm1hdGlvbi1nYXApO1xuXG4gIDpob3N0KDpzdGF0ZShvcmllbnRhdGlvbi12ZXJ0aWNhbCkpICYge1xuICAgIG1pbi13aWR0aDogdmFyKC0tc2JiLXRyYWluLXdhZ29uLWluZm9ybWF0aW9uLW1pbi13aWR0aCk7XG4gIH1cblxuICAmW2hpZGRlbl0ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cblxuOmlzKC5zYmItdHJhaW4td2Fnb25fX2xhYmVsLCAuc2JiLXRyYWluLXdhZ29uX19sYWJlbC1kaXZpZGVyKSB7XG4gIG1hcmdpbi1ibG9jay1zdGFydDogY2FsYyhcbiAgICAwLjUgKiAoMWVtICogdmFyKC0tc2JiLXR5cG8tbGluZS1oZWlnaHQtdGV4dCkgLSB2YXIoLS1zYmItdHJhaW4td2Fnb24tZm9udC1zaXplKSlcbiAgKTtcblxuICA6aG9zdCg6c3RhdGUob3JpZW50YXRpb24tdmVydGljYWwpKSAmIHtcbiAgICBtYXJnaW4tYmxvY2stc3RhcnQ6IDA7XG4gIH1cbn1cblxuLnNiYi10cmFpbi13YWdvbl9fbGFiZWwge1xuICBsaW5lLWhlaWdodDogMTtcblxuICAvLyBJbiB2ZXJ0aWNhbCBvcmllbnRhdGlvbiwgdGhlIGxhYmVsIGlzIGhvcml6b250YWxseSBjZW50ZXJlZCBpbiBhIGZpeGVkIHdpZHRoIGJveCBvZiAzMnB4IGJ5IGRlc2lnbi5cbiAgLy8gQXMgdGhlIGJveCBjYW4gZ3JvdyB0byB0aGUgc2lkZSBpZiB0aGVyZSBhcmUgbWFueSBhdHRyaWJ1dGUgaWNvbnMsIHdlIGhhdmUgdG8gcmUtYXBwbHkgdGhpcyB3aWR0aCBhcyBtYXgtd2lkdGggaGVyZS5cbiAgOmhvc3QoOnN0YXRlKG9yaWVudGF0aW9uLXZlcnRpY2FsKSkgJiB7XG4gICAgbWF4LXdpZHRoOiB2YXIoLS1zYmItdHJhaW4td2Fnb24taW5mb3JtYXRpb24tbWluLXdpZHRoKTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cbn1cblxuLnNiYi10cmFpbi13YWdvbl9fbGFiZWwtZGl2aWRlciB7XG4gIGhlaWdodDogdmFyKC0tc2JiLXRyYWluLXdhZ29uLWZvbnQtc2l6ZSk7XG5cbiAgOmhvc3QoOnN0YXRlKG9yaWVudGF0aW9uLXZlcnRpY2FsKSkgJiB7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIHdpZHRoOiB2YXIoLS1zYmItdHJhaW4td2Fnb24tZm9udC1zaXplKTtcbiAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiBjYWxjKFxuICAgICAgMC41ICogKHZhcigtLXNiYi10cmFpbi13YWdvbi1pbmZvcm1hdGlvbi1taW4td2lkdGgpIC0gdmFyKC0tc2JiLXRyYWluLXdhZ29uLWZvbnQtc2l6ZSkpXG4gICAgKTtcbiAgfVxufVxuXG4uc2JiLXRyYWluLXdhZ29uX19hdHRyaWJ1dGUtaWNvbi1saXN0IHtcbiAgQGluY2x1ZGUgc2JiLmxpc3QtcmVzZXQ7XG5cbiAgLS1zYmItaWNvbi1zdmctaGVpZ2h0OiB2YXIoLS1zYmItdHJhaW4td2Fnb24tYXR0cmlidXRlLWljb24taGVpZ2h0KTtcblxuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHZhcigtLV9zYmItdHJhaW4td2Fnb24tYXR0cmlidXRlcy1qdXN0aWZ5LWNvbnRlbnQsIHN0YXJ0KTtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBnYXA6IHZhcigtLXNiYi10cmFpbi13YWdvbi1hdHRyaWJ1dGUtaWNvbi1nYXApO1xuICBjb2xvcjogdmFyKC0tc2JiLXRyYWluLXdhZ29uLWF0dHJpYnV0ZS1pY29uLWNvbG9yKTtcbiAgcGFkZGluZy1ibG9jay1zdGFydDogY2FsYyhcbiAgICAwLjUgKiAoMWVtICogdmFyKC0tc2JiLXR5cG8tbGluZS1oZWlnaHQtdGV4dCkgLSB2YXIoLS1zYmItdHJhaW4td2Fnb24tYXR0cmlidXRlLWljb24taGVpZ2h0KSlcbiAgKTtcbiAgbWF4LXdpZHRoOiB2YXIoLS1fc2JiLXRyYWluLXdhZ29uLWF0dHJpYnV0ZXMtbWF4LXdpZHRoKTtcblxuICA6aG9zdCg6c3RhdGUob3JpZW50YXRpb24tdmVydGljYWwpKSAmIHtcbiAgICAvLyBXZSBoYXZlIHRvIGVuc3VyZSB0aGF0IHRoZSBpY29ucyBzdGF5IGFzIGxvbmcgYXMgcG9zc2libGUgdG8gdGhlIHNpZGUgb2YgdGhlIHNoYXBlIGFuZCBvbmx5IHRoZW4gdXNlIGEgc2Vjb25kIGNvbHVtbi5cbiAgICAvLyBIb3dldmVyLCB0aGUgb3JkZXIgb2YgdGhlIGljb25zIHNob3VsZCBiZSByb3cgd2lzZS4gVG8gbWl0aWdhdGUgdGhpcyBwcm9ibGVtLCB3ZSBwcm9ncmFtbWF0aWNhbGx5IGdldCB0aGUgYW1vdW50IG9mXG4gICAgLy8gc2xvdHRlZCBpY29ucyBhbmQgY2FuIHRoZXJlZm9yZSBjYWxjdWxhdGUsIGhvdyBtYW55IGNvbHVtbnMgYXBwcm94aW1hdGVseSBhcmUgbmVlZGVkLlxuICAgIC8vIFRvIG1vdmUgdGhlIGljb25zIGFnYWluc3QgdGhlIHNoYXBlLCB3ZSBjb250cm9sIHRoZSBtYXgtd2lkdGguXG4gICAgLy8gVGhlIG1heC1oZWlnaHQgaXMgZ2l2ZW4gYnkgdGhlIGZhY3QsIHRoYXQgMyByb3dzIGZpdCBpbnRvIHRoZSBkZXNpZ24uIEZvciB0aGUgY2FsY3VsYXRpb24sXG4gICAgLy8gYWxzbyB0d28gdGltZXMgdGhlIGdhcCBoYXMgdG8gYmUgaW5jbHVkZWQuXG4gICAgbWF4LXdpZHRoOiBjYWxjKFxuICAgICAgdmFyKC0tX3NiYi10cmFpbi13YWdvbi1hdHRyaWJ1dGVzLWljb24tY29sdW1ucykgKiB2YXIoLS1zYmItdHJhaW4td2Fnb24tYXR0cmlidXRlcy1tZWFuLXdpZHRoKVxuICAgICk7XG4gICAgbWF4LWhlaWdodDogY2FsYyhcbiAgICAgIHZhcigtLV9zYmItdHJhaW4td2Fnb24tYXR0cmlidXRlcy1pY29uLXJvd3MsIDMpICpcbiAgICAgICAgdmFyKC0tc2JiLXRyYWluLXdhZ29uLWF0dHJpYnV0ZS1pY29uLWhlaWdodCkgK1xuICAgICAgICAodmFyKC0tX3NiYi10cmFpbi13YWdvbi1hdHRyaWJ1dGVzLWljb24tcm93cywgMykgLSAxKSAqXG4gICAgICAgIHZhcigtLXNiYi10cmFpbi13YWdvbi1hdHRyaWJ1dGUtaWNvbi1nYXApXG4gICAgKTtcbiAgICBwYWRkaW5nLWJsb2NrLXN0YXJ0OiAwO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG59XG5cbi8vIFVzaW5nIC4uLiBsaSBzZWxlY3RvciwgYmVjYXVzZSB0aGUgbGkgZ2VuZXJhdGlvblxuLy8gaXMgaGFuZGxlZCBpbiB0aGUgY29tcG9uZW50IGJhc2UgY2xhc3MuXG4uc2JiLXRyYWluLXdhZ29uX19hdHRyaWJ1dGUtaWNvbi1saXN0ID4gOmlzKGxpLCBzcGFuKSB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xufVxuIiwiaW1wb3J0IHsgdHlwZSBDU1NSZXN1bHRHcm91cCwgaXNTZXJ2ZXIsIG5vdGhpbmcsIHR5cGUgVGVtcGxhdGVSZXN1bHQsIHVuc2FmZUNTUyB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBwcm9wZXJ0eSwgc3RhdGUgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5pbXBvcnQgeyB3aGVuIH0gZnJvbSAnbGl0L2RpcmVjdGl2ZXMvd2hlbi5qcyc7XG5pbXBvcnQgeyBodG1sIH0gZnJvbSAnbGl0L3N0YXRpYy1odG1sLmpzJztcblxuaW1wb3J0IHR5cGUgeyBBYnN0cmFjdENvbnN0cnVjdG9yIH0gZnJvbSAnLi4vY29yZS9taXhpbnMvY29uc3RydWN0b3IudHMnO1xuaW1wb3J0IHtcbiAgZm9yY2VUeXBlLFxuICBoYW5kbGVEaXN0aW5jdENoYW5nZSxcbiAgaTE4bkFkZGl0aW9uYWxXYWdvbkluZm9ybWF0aW9uSGVhZGluZyxcbiAgaTE4bkFuZCxcbiAgaTE4bkJsb2NrZWRQYXNzYWdlLFxuICBpMThuQ2xhc3MsXG4gIGkxOG5DbG9zZWRDb21wYXJ0bWVudExhYmVsLFxuICBpMThuQ291Y2hldHRlV2Fnb25MYWJlbCxcbiAgaTE4bkxvY29tb3RpdmVMYWJlbCxcbiAgaTE4blJlc3RhdXJhbnRXYWdvbkxhYmVsLFxuICBpMThuU2VjdG9yLFxuICBpMThuU2xlZXBpbmdXYWdvbkxhYmVsLFxuICBpMThuV2Fnb25MYWJlbCxcbiAgaTE4bldhZ29uTGFiZWxOdW1iZXIsXG4gIG9taXRFbXB0eUNvbnZlcnRlcixcbiAgdHlwZSBTYmJFbGVtZW50LFxuICB0eXBlIFNiYkVsZW1lbnRUeXBlLFxuICBTYmJMYW5ndWFnZUNvbnRyb2xsZXIsXG4gIFNiYk5hbWVkU2xvdExpc3RNaXhpbixcbiAgdHlwZSBTYmJPY2N1cGFuY3ksXG4gIFNiYlByb3BlcnR5V2F0Y2hlckNvbnRyb2xsZXIsXG59IGZyb20gJy4uL2NvcmUudHMnO1xuaW1wb3J0IHsgU2JiRGl2aWRlckVsZW1lbnQgfSBmcm9tICcuLi9kaXZpZGVyLnB1cmUudHMnO1xuaW1wb3J0IHsgU2JiSWNvbkVsZW1lbnQgfSBmcm9tICcuLi9pY29uLnB1cmUudHMnO1xuaW1wb3J0IHsgU2JiVGltZXRhYmxlT2NjdXBhbmN5SWNvbkVsZW1lbnQgfSBmcm9tICcuLi90aW1ldGFibGUtb2NjdXBhbmN5LWljb24ucHVyZS50cyc7XG5cbmltcG9ydCB0eXBlIHsgU2JiVHJhaW5Gb3JtYXRpb25FbGVtZW50IH0gZnJvbSAnLi90cmFpbi1mb3JtYXRpb24vdHJhaW4tZm9ybWF0aW9uLmNvbXBvbmVudC50cyc7XG5pbXBvcnQgeyBTYmJUcmFpbkZvcm1hdGlvbk9yaWVudGF0aW9uTWl4aW4gfSBmcm9tICcuL3RyYWluLWZvcm1hdGlvbi1vcmllbnRhdGlvbi1taXhpbi50cyc7XG5pbXBvcnQgc3R5bGUgZnJvbSAnLi90cmFpbi13YWdvbi1jb21tb24uc2Nzcz9pbmxpbmUnO1xuXG5jb25zdCB3YWdvblR5cGVUb0ljb25NYXA6IFBhcnRpYWw8UmVjb3JkPFNiYlRyYWluV2Fnb25NaXhpblR5cGVbJ3dhZ29uVHlwZSddLCBzdHJpbmc+PiA9IHtcbiAgY291Y2hldHRlOiAnc2EtY2MnLFxuICBzbGVlcGluZzogJ3NhLXdsJyxcbiAgcmVzdGF1cmFudDogJ3NhLXdyJyxcbn07XG5cbmNvbnN0IHNoYXBlUGF0aHM6IFJlY29yZDxcbiAgRXhjbHVkZTxTYmJUcmFpbldhZ29uTWl4aW5UeXBlWyd3YWdvblR5cGUnXSwgJ2NvdWNoZXR0ZScgfCAnc2xlZXBpbmcnIHwgJ3Jlc3RhdXJhbnQnIHwgJ2Nsb3NlZCc+LFxuICB7IHNpZGU6IHN0cmluZzsgdG9wOiBzdHJpbmcgfVxuPiA9IHtcbiAgd2Fnb246IHtcbiAgICBzaWRlOiAnTTEyIDBINzJBMTIgMTIgMCAwMTg0IDEyVjI0QTEyIDEyIDAgMDE3MiAzNkgxMkExMiAxMiAwIDAxMCAyNFYxMkExMiAxMiAwIDAxMTIgMFonLFxuICAgIHRvcDogJ004IDBBOCA4IDAgMDAwIDhWMjhhOCA4IDAgMDA4IDhINzZhOCA4IDAgMDA4LThWOEE4IDggMCAwMDc2IDBIOFonLFxuICB9LFxuICBsb2NvbW90aXZlOiB7XG4gICAgc2lkZTogJ003LjcgOC42QzEwLjUgMy42IDE2IDAgMjIgMEg2MmM2IDAgMTEuNSAzLjYgMTQuMyA4LjZsNS4xIDlDODUuOSAyNS42IDgwIDM2IDcxIDM2SDEzQzQgMzYtMS45IDI1LjYgMi42IDE3LjZsNS4xLTlaJyxcbiAgICB0b3A6ICdNNjYgMEgxOEM4IDAgMCA4IDAgMThTOCAzNiAxOCAzNkg2NmMxMCAwIDE4LTggMTgtMThTNzYgMCA2NiAwWicsXG4gIH0sXG4gICd3YWdvbi1lbmQtbGVmdCc6IHtcbiAgICBzaWRlOiAnTTcuNyA4LjZBMTYgMTYgMCAwMTIyIDBINzJjNiAwIDEyIDYgMTIgMTJWMjRjMCA2LTYgMTItMTIgMTJIMTNDMy44IDM2LTIgMjYuMSAyLjYgMTguMVonLFxuICAgIHRvcDogJ003NiAwSDE4QzguMjUgMCAuNSA4LjI1LjUgMThTOCAzNiAxOCAzNkg3NmM0IDAgOC00IDgtOFY4YzAtNC00LTgtOC04WicsXG4gIH0sXG4gICd3YWdvbi1lbmQtcmlnaHQnOiB7XG4gICAgc2lkZTogJ003Ni4zIDguNkExNiAxNiAwIDAwNjIgMEgxMkM2IDAgMCA2IDAgMTN2MTFjMCA2IDYgMTIgMTIgMTJoNTguNGM4LjYgMCAxNS05LjkgMTAuNC0xNy45eicsXG4gICAgdG9wOiAnTTY2IDBIOEM0IDAgMCA0IDAgOFYyOGMwIDQgNCA4IDggOEg2NmM5Ljc1IDAgMTcuNS04LjI1IDE3LjUtMThTNzYgMCA2NiAwWicsXG4gIH0sXG59O1xuXG5leHBvcnQgZGVjbGFyZSBjbGFzcyBTYmJUcmFpbldhZ29uTWl4aW5UeXBlIGV4dGVuZHMgU2JiRWxlbWVudCB7XG4gIHB1YmxpYyBhY2Nlc3NvciB3YWdvblR5cGU6XG4gICAgfCAnd2Fnb24nXG4gICAgfCAnd2Fnb24tZW5kLWxlZnQnXG4gICAgfCAnd2Fnb24tZW5kLXJpZ2h0J1xuICAgIHwgJ2NvdWNoZXR0ZSdcbiAgICB8ICdzbGVlcGluZydcbiAgICB8ICdyZXN0YXVyYW50J1xuICAgIHwgJ2xvY29tb3RpdmUnXG4gICAgfCAnY2xvc2VkJztcbiAgcHVibGljIGFjY2Vzc29yIG9jY3VwYW5jeTogU2JiT2NjdXBhbmN5IHwgbnVsbDtcbiAgcHVibGljIGFjY2Vzc29yIHNlY3Rvcjogc3RyaW5nO1xuICBwdWJsaWMgYWNjZXNzb3IgYmxvY2tlZFBhc3NhZ2U6ICdwcmV2aW91cycgfCAnbmV4dCcgfCAnYm90aCcgfCAnbm9uZSc7XG4gIHB1YmxpYyBhY2Nlc3NvciB3YWdvbkNsYXNzOiAnMScgfCAnMicgfCAnMS0yJyB8ICcyLTEnIHwgbnVsbDtcbiAgcHVibGljIGFjY2Vzc29yIGxhYmVsOiBzdHJpbmc7XG4gIHB1YmxpYyBhY2Nlc3NvciBhZGRpdGlvbmFsQWNjZXNzaWJpbGl0eVRleHQ6IHN0cmluZztcblxuICBwcm90ZWN0ZWQgcmVuZGVyVGVtcGxhdGUoKTogVGVtcGxhdGVSZXN1bHQ7XG59XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbmV4cG9ydCBjb25zdCBTYmJUcmFpbldhZ29uTWl4aW4gPSA8VCBleHRlbmRzIEFic3RyYWN0Q29uc3RydWN0b3I8U2JiRWxlbWVudD4+KFxuICBzdXBlckNsYXNzOiBULFxuKTogQWJzdHJhY3RDb25zdHJ1Y3RvcjxTYmJUcmFpbldhZ29uTWl4aW5UeXBlPiAmIFQgPT4ge1xuICBhYnN0cmFjdCBjbGFzcyBTYmJUcmFpbldhZ29uTWl4aW5FbGVtZW50XG4gICAgZXh0ZW5kcyBTYmJUcmFpbkZvcm1hdGlvbk9yaWVudGF0aW9uTWl4aW4oU2JiTmFtZWRTbG90TGlzdE1peGluPFNiYkljb25FbGVtZW50LCBUPihzdXBlckNsYXNzKSlcbiAgICBpbXBsZW1lbnRzIFBhcnRpYWw8U2JiVHJhaW5XYWdvbk1peGluVHlwZT5cbiAge1xuICAgIHB1YmxpYyBzdGF0aWMgZWxlbWVudERlcGVuZGVuY2llczogU2JiRWxlbWVudFR5cGVbXSA9IFtcbiAgICAgIFNiYkljb25FbGVtZW50LFxuICAgICAgU2JiVGltZXRhYmxlT2NjdXBhbmN5SWNvbkVsZW1lbnQsXG4gICAgICBTYmJEaXZpZGVyRWxlbWVudCxcbiAgICBdO1xuICAgIHB1YmxpYyBzdGF0aWMgc3R5bGVzOiBDU1NSZXN1bHRHcm91cCA9IFt1bnNhZmVDU1Moc3R5bGUpXTtcblxuICAgIC8qKlxuICAgICAqIFdhZ29uIHR5cGUuXG4gICAgICogRm9yIGB3YWdvbi1lbmQtbGVmdGAgYW5kIGB3YWdvbi1lbmQtcmlnaHRgLCBwbGVhc2Ugc2V0IHRoZSBjb3JyZXNwb25kaW5nIHZhbHVlIG9mIHRoZSBgYmxvY2tlZFBhc3NhZ2VgIHByb3BlcnR5LlxuICAgICAqL1xuICAgIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ3dhZ29uLXR5cGUnLCByZWZsZWN0OiB0cnVlIH0pIHB1YmxpYyBhY2Nlc3NvciB3YWdvblR5cGU6XG4gICAgICB8ICd3YWdvbidcbiAgICAgIHwgJ3dhZ29uLWVuZC1sZWZ0J1xuICAgICAgfCAnd2Fnb24tZW5kLXJpZ2h0J1xuICAgICAgfCAnY291Y2hldHRlJ1xuICAgICAgfCAnc2xlZXBpbmcnXG4gICAgICB8ICdyZXN0YXVyYW50J1xuICAgICAgfCAnbG9jb21vdGl2ZSdcbiAgICAgIHwgJ2Nsb3NlZCcgPSAnd2Fnb24nO1xuXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlYWRvbmx5IGxpc3RDaGlsZExvY2FsTmFtZXMgPSBbJ3NiYi1pY29uJ107XG5cbiAgICAvKiogT2NjdXBhbmN5IG9mIGEgd2Fnb24uICovXG4gICAgQHByb3BlcnR5KCkgcHVibGljIGFjY2Vzc29yIG9jY3VwYW5jeTogU2JiT2NjdXBhbmN5IHwgbnVsbCA9IG51bGw7XG5cbiAgICAvKiogU2VjdG9yIGluIHdoaWNoIHRoZSB3YWdvbiBzdG9wcy4gKi9cbiAgICBAZm9yY2VUeXBlKClcbiAgICBAaGFuZGxlRGlzdGluY3RDaGFuZ2UoKGU6IFNiYlRyYWluV2Fnb25NaXhpbkVsZW1lbnQpID0+IGUuX3NlY3RvckNoYW5nZWQoKSlcbiAgICBAcHJvcGVydHkoeyByZWZsZWN0OiB0cnVlLCBjb252ZXJ0ZXI6IG9taXRFbXB0eUNvbnZlcnRlciB9KVxuICAgIHB1YmxpYyBhY2Nlc3NvciBzZWN0b3I6IHN0cmluZyA9ICcnO1xuXG4gICAgLyoqIEFjY2Vzc2liaWxpdHkgdGV4dCBmb3IgYmxvY2tlZCBwYXNzYWdlcyBvZiB0aGUgd2Fnb24uICovXG4gICAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAnYmxvY2tlZC1wYXNzYWdlJyB9KVxuICAgIHB1YmxpYyBhY2Nlc3NvciBibG9ja2VkUGFzc2FnZTogJ3ByZXZpb3VzJyB8ICduZXh0JyB8ICdib3RoJyB8ICdub25lJyA9ICdub25lJztcblxuICAgIC8qKiBDbGFzcyBsYWJlbCAqL1xuICAgIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ3dhZ29uLWNsYXNzJyB9KSBwdWJsaWMgYWNjZXNzb3Igd2Fnb25DbGFzczpcbiAgICAgIHwgJzEnXG4gICAgICB8ICcyJ1xuICAgICAgfCAnMS0yJ1xuICAgICAgfCAnMi0xJ1xuICAgICAgfCBudWxsID0gbnVsbDtcblxuICAgIC8qKiBXYWdvbiBudW1iZXIgKi9cbiAgICBAZm9yY2VUeXBlKClcbiAgICBAcHJvcGVydHkoeyByZWZsZWN0OiB0cnVlLCBjb252ZXJ0ZXI6IG9taXRFbXB0eUNvbnZlcnRlciB9KVxuICAgIHB1YmxpYyBhY2Nlc3NvciBsYWJlbDogc3RyaW5nID0gJyc7XG5cbiAgICAvKiogQWRkaXRpb25hbCBhY2Nlc3NpYmlsaXR5IHRleHQgd2hpY2ggd2lsbCBiZSBhcHBlbmRlZCB0byB0aGUgZW5kLiAqL1xuICAgIEBmb3JjZVR5cGUoKVxuICAgIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ2FkZGl0aW9uYWwtYWNjZXNzaWJpbGl0eS10ZXh0JyB9KVxuICAgIHB1YmxpYyBhY2Nlc3NvciBhZGRpdGlvbmFsQWNjZXNzaWJpbGl0eVRleHQ6IHN0cmluZyA9ICcnO1xuXG4gICAgQHN0YXRlKCkgcHJpdmF0ZSBhY2Nlc3NvciBfdmlldzogU2JiVHJhaW5Gb3JtYXRpb25FbGVtZW50Wyd2aWV3J10gfCBudWxsID0gbnVsbDtcblxuICAgIHByaXZhdGUgX2xhbmd1YWdlID0gbmV3IFNiYkxhbmd1YWdlQ29udHJvbGxlcih0aGlzKTtcbiAgICBwcml2YXRlIF9jbGlwU3R5bGVTaGVldDogQ1NTU3R5bGVTaGVldCB8IG51bGwgPSBudWxsO1xuXG4gICAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKC4uLmFyZ3M6IGFueVtdKSB7XG4gICAgICBzdXBlciguLi5hcmdzKTtcbiAgICAgIHRoaXMuYWRkQ29udHJvbGxlcihcbiAgICAgICAgbmV3IFNiYlByb3BlcnR5V2F0Y2hlckNvbnRyb2xsZXIodGhpcywgKCkgPT4gdGhpcy5jbG9zZXN0KCdzYmItdHJhaW4tZm9ybWF0aW9uJyksIHtcbiAgICAgICAgICB2aWV3OiAodCkgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMuX3ZpZXcpIHtcbiAgICAgICAgICAgICAgdGhpcy5pbnRlcm5hbHMuc3RhdGVzLmRlbGV0ZShgdmlldy0ke3RoaXMuX3ZpZXd9YCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLl92aWV3ID0gdC52aWV3O1xuICAgICAgICAgICAgaWYgKHRoaXMuX3ZpZXcpIHtcbiAgICAgICAgICAgICAgdGhpcy5pbnRlcm5hbHMuc3RhdGVzLmFkZChgdmlldy0ke3RoaXMuX3ZpZXd9YCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgfSksXG4gICAgICApO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBvdmVycmlkZSBjcmVhdGVSZW5kZXJSb290KCk6IEhUTUxFbGVtZW50IHwgRG9jdW1lbnRGcmFnbWVudCB7XG4gICAgICBjb25zdCByZW5kZXJSb290ID0gc3VwZXIuY3JlYXRlUmVuZGVyUm9vdCgpO1xuXG4gICAgICBpZiAoIWlzU2VydmVyKSB7XG4gICAgICAgIHRoaXMuX2NsaXBTdHlsZVNoZWV0ID0gbmV3IENTU1N0eWxlU2hlZXQoKTtcbiAgICAgICAgKHJlbmRlclJvb3QgYXMgU2hhZG93Um9vdCkuYWRvcHRlZFN0eWxlU2hlZXRzLnB1c2godGhpcy5fY2xpcFN0eWxlU2hlZXQpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gcmVuZGVyUm9vdDtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9zZWN0b3JDaGFuZ2VkKCk6IHZvaWQge1xuICAgICAgLyoqIEBpbnRlcm5hbCAqL1xuICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgnc2VjdG9yY2hhbmdlJywgeyBidWJibGVzOiB0cnVlLCBjb21wb3NlZDogdHJ1ZSB9KSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfd2Fnb25UeXBlTGFiZWwoKTogc3RyaW5nIHtcbiAgICAgIHN3aXRjaCAodGhpcy53YWdvblR5cGUpIHtcbiAgICAgICAgY2FzZSAnY2xvc2VkJzpcbiAgICAgICAgICByZXR1cm4gaTE4bkNsb3NlZENvbXBhcnRtZW50TGFiZWxbdGhpcy5fbGFuZ3VhZ2UuY3VycmVudF07XG4gICAgICAgIGNhc2UgJ2xvY29tb3RpdmUnOlxuICAgICAgICAgIHJldHVybiBpMThuTG9jb21vdGl2ZUxhYmVsW3RoaXMuX2xhbmd1YWdlLmN1cnJlbnRdO1xuICAgICAgICBjYXNlICdjb3VjaGV0dGUnOlxuICAgICAgICAgIHJldHVybiBpMThuQ291Y2hldHRlV2Fnb25MYWJlbFt0aGlzLl9sYW5ndWFnZS5jdXJyZW50XTtcbiAgICAgICAgY2FzZSAnc2xlZXBpbmcnOlxuICAgICAgICAgIHJldHVybiBpMThuU2xlZXBpbmdXYWdvbkxhYmVsW3RoaXMuX2xhbmd1YWdlLmN1cnJlbnRdO1xuICAgICAgICBjYXNlICdyZXN0YXVyYW50JzpcbiAgICAgICAgICByZXR1cm4gaTE4blJlc3RhdXJhbnRXYWdvbkxhYmVsW3RoaXMuX2xhbmd1YWdlLmN1cnJlbnRdO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHJldHVybiBpMThuV2Fnb25MYWJlbFt0aGlzLl9sYW5ndWFnZS5jdXJyZW50XTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIF93YWdvblNoYXBlKCk6IHN0cmluZyB7XG4gICAgICBjb25zdCB2aWV3ID0gdGhpcy5fdmlldyA/PyAnc2lkZSc7XG4gICAgICBpZiAoWyd3YWdvbicsICdjb3VjaGV0dGUnLCAnc2xlZXBpbmcnLCAncmVzdGF1cmFudCcsICdjbG9zZWQnXS5pbmNsdWRlcyh0aGlzLndhZ29uVHlwZSkpIHtcbiAgICAgICAgcmV0dXJuIHNoYXBlUGF0aHNbJ3dhZ29uJ11bdmlld107XG4gICAgICB9XG4gICAgICByZXR1cm4gKFxuICAgICAgICBzaGFwZVBhdGhzW3RoaXMud2Fnb25UeXBlIGFzIGtleW9mIHR5cGVvZiBzaGFwZVBhdGhzXVt2aWV3XSA/PyBzaGFwZVBhdGhzWyd3YWdvbiddW3ZpZXddXG4gICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2NsYXNzTGFiZWwoKTogc3RyaW5nIHtcbiAgICAgIHN3aXRjaCAodGhpcy53YWdvbkNsYXNzKSB7XG4gICAgICAgIGNhc2UgJzEnOlxuICAgICAgICAgIHJldHVybiBpMThuQ2xhc3NbJ2ZpcnN0J11bdGhpcy5fbGFuZ3VhZ2UuY3VycmVudF07XG4gICAgICAgIGNhc2UgJzInOlxuICAgICAgICAgIHJldHVybiBpMThuQ2xhc3NbJ3NlY29uZCddW3RoaXMuX2xhbmd1YWdlLmN1cnJlbnRdO1xuICAgICAgICBjYXNlICcxLTInOlxuICAgICAgICAgIHJldHVybiBgJHtpMThuQ2xhc3NbJ2ZpcnN0J11bdGhpcy5fbGFuZ3VhZ2UuY3VycmVudF19ICR7aTE4bkFuZFt0aGlzLl9sYW5ndWFnZS5jdXJyZW50XX0gJHtpMThuQ2xhc3NbJ3NlY29uZCddW3RoaXMuX2xhbmd1YWdlLmN1cnJlbnRdfWA7XG4gICAgICAgIGNhc2UgJzItMSc6XG4gICAgICAgICAgcmV0dXJuIGAke2kxOG5DbGFzc1snc2Vjb25kJ11bdGhpcy5fbGFuZ3VhZ2UuY3VycmVudF19ICR7aTE4bkFuZFt0aGlzLl9sYW5ndWFnZS5jdXJyZW50XX0gJHtpMThuQ2xhc3NbJ2ZpcnN0J11bdGhpcy5fbGFuZ3VhZ2UuY3VycmVudF19YDtcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICByZXR1cm4gJyc7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHJlbmRlclRlbXBsYXRlKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICAgIGNvbnN0IGJsb2NrZWRQYXNzYWdlID1cbiAgICAgICAgdGhpcy53YWdvblR5cGUgPT09ICd3YWdvbi1lbmQtbGVmdCcgJiYgdGhpcy5ibG9ja2VkUGFzc2FnZSA9PT0gJ25vbmUnXG4gICAgICAgICAgPyAncHJldmlvdXMnXG4gICAgICAgICAgOiB0aGlzLndhZ29uVHlwZSA9PT0gJ3dhZ29uLWVuZC1yaWdodCcgJiYgdGhpcy5ibG9ja2VkUGFzc2FnZSA9PT0gJ25vbmUnXG4gICAgICAgICAgICA/ICduZXh0J1xuICAgICAgICAgICAgOiAodGhpcy5ibG9ja2VkUGFzc2FnZSA/PyAnbm9uZScpO1xuXG4gICAgICBjb25zdCBoYXNCbG9ja2VkUGFzc2FnZUVudHJ5ID0gYmxvY2tlZFBhc3NhZ2UgIT09ICdub25lJztcblxuICAgICAgLy8gRnJvbSBhY2Nlc3NpYmlsaXR5IHBlcnNwZWN0aXZlIHdlIGNhbm5vdCBjcmVhdGUgYSBsaXN0IHdpdGggb25seSBvbmUgZW50cnkuXG4gICAgICAvLyBXZSBuZWVkIHRvIGtub3cgd2hhdCB3aWxsIGJlIHByZXNlbnRlZCBhbmQgc3dpdGNoIHNlbWFudGljcyBiYXNlZCBvbiBjb3VudC5cbiAgICAgIGNvbnN0IGxpc3RFbnRyaWVzQ291bnQgPVxuICAgICAgICArISF0aGlzLnNlY3RvciArXG4gICAgICAgICshIXRoaXMubGFiZWwgK1xuICAgICAgICArKCEhdGhpcy53YWdvbkNsYXNzICYmIHRoaXMud2Fnb25UeXBlICE9PSAnY2xvc2VkJykgK1xuICAgICAgICArKCEhdGhpcy5vY2N1cGFuY3kgJiYgdGhpcy53YWdvblR5cGUgIT09ICdjbG9zZWQnKSArXG4gICAgICAgICtoYXNCbG9ja2VkUGFzc2FnZUVudHJ5O1xuXG4gICAgICBjb25zdCBzZWN0b3JTdHJpbmcgPSBgJHtpMThuU2VjdG9yW3RoaXMuX2xhbmd1YWdlLmN1cnJlbnRdfSwgJHt0aGlzLnNlY3Rvcn1gO1xuICAgICAgY29uc3QgbGFiZWxTdHJpbmcgPSBgJHtpMThuV2Fnb25MYWJlbE51bWJlclt0aGlzLl9sYW5ndWFnZS5jdXJyZW50XX0sICR7dGhpcy5sYWJlbH1gO1xuXG4gICAgICBjb25zdCB3YWdvbkNsYXNzQ29udGVudCA9IGh0bWxgPHNwYW4gY2xhc3M9XCJzYmItc2NyZWVuLXJlYWRlci1vbmx5XCI+XG4gICAgICAgICAgJHt0aGlzLl9jbGFzc0xhYmVsKCl9XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgICAgJHt0aGlzLndhZ29uQ2xhc3NcbiAgICAgICAgICA/LnNwbGl0KCctJylcbiAgICAgICAgICAubWFwKFxuICAgICAgICAgICAgKHdhZ29uQ2xhc3MpID0+XG4gICAgICAgICAgICAgIGh0bWxgPHNwYW5cbiAgICAgICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwic2JiLXRyYWluLXdhZ29uX19jbGFzcy1lbnRyeSAke3dhZ29uQ2xhc3MgPT09ICcxJyA/ICdmaXJzdCcgOiAnJ31cIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgJHt3YWdvbkNsYXNzfVxuICAgICAgICAgICAgICA8L3NwYW4+YCxcbiAgICAgICAgICApfSBgO1xuXG4gICAgICBjb25zdCBwYXRoID0gdGhpcy5fd2Fnb25TaGFwZSgpO1xuXG4gICAgICBjb25zdCBhdmFpbGFibGVJY29uUm93cyA9IHRoaXMubGFiZWwgPyAzIDogNDtcbiAgICAgIHRoaXMuX2NsaXBTdHlsZVNoZWV0Py5yZXBsYWNlU3luYyhgOmhvc3Qge1xuICAgICAgICAgICAgLS1fc2JiLXRyYWluLXdhZ29uLWNsaXAtc2hhcGU6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2aWV3Qm94PScwIDAgODQgMzYnIGZpbGw9J2JsYWNrJyUzRSUzQ3BhdGggZD0nJHtwYXRofScgLyUzRSUzQy9zdmclM0VcIik7XG4gICAgICAgICAgICAtLV9zYmItdHJhaW4td2Fnb24tY2xpcC1zaGFwZS1jb21wYXJ0bWVudDogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCAke3RoaXMub3JpZW50YXRpb24gPT09ICd2ZXJ0aWNhbCcgPyAzNiA6IDg0fSAke3RoaXMub3JpZW50YXRpb24gPT09ICd2ZXJ0aWNhbCcgPyA4NCA6IDM2fScgZmlsbD0nYmxhY2snJTNFJTNDcGF0aCBkPScke3BhdGh9JyR7dGhpcy5vcmllbnRhdGlvbiA9PT0gJ3ZlcnRpY2FsJyA/IGAgdHJhbnNmb3JtPSdyb3RhdGUoLTkwLCAwLCAwKSBzY2FsZSgtMSwgMSknYCA6ICcnfSAvJTNFJTNDL3N2ZyUzRVwiKTtcbiAgICAgICAgICAgIC0tX3NiYi10cmFpbi13YWdvbi1hdHRyaWJ1dGVzLWljb24tY29sdW1uczogJHtNYXRoLmNlaWwodGhpcy5saXN0Q2hpbGRyZW4ubGVuZ3RoIC8gYXZhaWxhYmxlSWNvblJvd3MpfTtcbiAgICAgICAgICAgIC0tX3NiYi10cmFpbi13YWdvbi1hdHRyaWJ1dGVzLWljb24tcm93czogJHthdmFpbGFibGVJY29uUm93c307XG4gICAgICAgICAgfWApO1xuXG4gICAgICByZXR1cm4gaHRtbGBcbiAgICAgICAgPGRpdiBjbGFzcz1cInNiYi10cmFpbi13YWdvblwiPlxuICAgICAgICAgICR7d2hlbihcbiAgICAgICAgICAgIGxpc3RFbnRyaWVzQ291bnQgPiAxLFxuICAgICAgICAgICAgKCkgPT5cbiAgICAgICAgICAgICAgaHRtbGA8dWwgYXJpYS1sYWJlbD0ke3RoaXMuX3dhZ29uVHlwZUxhYmVsKCl9IGNsYXNzPVwic2JiLXRyYWluLXdhZ29uX19jb21wYXJ0bWVudFwiPlxuICAgICAgICAgICAgICAgICR7dGhpcy5zZWN0b3JcbiAgICAgICAgICAgICAgICAgID8gaHRtbGA8bGkgY2xhc3M9XCJzYmItc2NyZWVuLXJlYWRlci1vbmx5XCI+JHtzZWN0b3JTdHJpbmd9PC9saT5gXG4gICAgICAgICAgICAgICAgICA6IG5vdGhpbmd9XG4gICAgICAgICAgICAgICAgJHt0aGlzLmxhYmVsXG4gICAgICAgICAgICAgICAgICA/IGh0bWxgPGxpIGNsYXNzPVwic2JiLXNjcmVlbi1yZWFkZXItb25seVwiPiR7bGFiZWxTdHJpbmd9PC9saT5gXG4gICAgICAgICAgICAgICAgICA6IG5vdGhpbmd9XG4gICAgICAgICAgICAgICAgJHt0aGlzLndhZ29uQ2xhc3MgJiYgdGhpcy53YWdvblR5cGUgIT09ICdjbG9zZWQnXG4gICAgICAgICAgICAgICAgICA/IGh0bWxgPGxpIGNsYXNzPVwic2JiLXRyYWluLXdhZ29uX19jbGFzc1wiPiR7d2Fnb25DbGFzc0NvbnRlbnR9PC9saT5gXG4gICAgICAgICAgICAgICAgICA6IG5vdGhpbmd9XG4gICAgICAgICAgICAgICAgJHt0aGlzLm9jY3VwYW5jeSAmJiB0aGlzLndhZ29uVHlwZSAhPT0gJ2Nsb3NlZCdcbiAgICAgICAgICAgICAgICAgID8gaHRtbGA8c2JiLXRpbWV0YWJsZS1vY2N1cGFuY3ktaWNvblxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic2JiLXRyYWluLXdhZ29uX19vY2N1cGFuY3lcIlxuICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJsaXN0aXRlbVwiXG4gICAgICAgICAgICAgICAgICAgICAgb2NjdXBhbmN5PSR7dGhpcy5vY2N1cGFuY3l9XG4gICAgICAgICAgICAgICAgICAgID48L3NiYi10aW1ldGFibGUtb2NjdXBhbmN5LWljb24+YFxuICAgICAgICAgICAgICAgICAgOiBub3RoaW5nfVxuICAgICAgICAgICAgICAgICR7aGFzQmxvY2tlZFBhc3NhZ2VFbnRyeVxuICAgICAgICAgICAgICAgICAgPyBodG1sYDxsaSBjbGFzcz1cInNiYi1zY3JlZW4tcmVhZGVyLW9ubHlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAke2kxOG5CbG9ja2VkUGFzc2FnZVtibG9ja2VkUGFzc2FnZV1bdGhpcy5fbGFuZ3VhZ2UuY3VycmVudF19XG4gICAgICAgICAgICAgICAgICAgIDwvbGk+YFxuICAgICAgICAgICAgICAgICAgOiBub3RoaW5nfVxuICAgICAgICAgICAgICA8L3VsPmAsXG4gICAgICAgICAgICAoKSA9PlxuICAgICAgICAgICAgICBodG1sYDxkaXYgY2xhc3M9XCJzYmItdHJhaW4td2Fnb25fX2NvbXBhcnRtZW50XCI+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzYmItc2NyZWVuLXJlYWRlci1vbmx5XCI+XG4gICAgICAgICAgICAgICAgICAke2Ake3RoaXMuX3dhZ29uVHlwZUxhYmVsKCl9JHt0aGlzLnNlY3RvciA/IGAsICR7c2VjdG9yU3RyaW5nfWAgOiAnJ31gfVxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAke3RoaXMubGFiZWxcbiAgICAgICAgICAgICAgICAgID8gaHRtbGA8c3BhbiBjbGFzcz1cInNiYi1zY3JlZW4tcmVhZGVyLW9ubHlcIj4ke2xhYmVsU3RyaW5nfTwvc3Bhbj5gXG4gICAgICAgICAgICAgICAgICA6IG5vdGhpbmd9XG4gICAgICAgICAgICAgICAgJHt0aGlzLndhZ29uQ2xhc3MgJiYgdGhpcy53YWdvblR5cGUgIT09ICdjbG9zZWQnXG4gICAgICAgICAgICAgICAgICA/IGh0bWxgPHNwYW4gY2xhc3M9XCJzYmItdHJhaW4td2Fnb25fX2NsYXNzXCI+JHt3YWdvbkNsYXNzQ29udGVudH08L3NwYW4+YFxuICAgICAgICAgICAgICAgICAgOiBub3RoaW5nfVxuICAgICAgICAgICAgICAgICR7dGhpcy5vY2N1cGFuY3kgJiYgdGhpcy53YWdvblR5cGUgIT09ICdjbG9zZWQnXG4gICAgICAgICAgICAgICAgICA/IGh0bWxgPHNiYi10aW1ldGFibGUtb2NjdXBhbmN5LWljb25cbiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInNiYi10cmFpbi13YWdvbl9fb2NjdXBhbmN5XCJcbiAgICAgICAgICAgICAgICAgICAgICBvY2N1cGFuY3k9JHt0aGlzLm9jY3VwYW5jeX1cbiAgICAgICAgICAgICAgICAgICAgPjwvc2JiLXRpbWV0YWJsZS1vY2N1cGFuY3ktaWNvbj5gXG4gICAgICAgICAgICAgICAgICA6IG5vdGhpbmd9XG4gICAgICAgICAgICAgICAgJHtoYXNCbG9ja2VkUGFzc2FnZUVudHJ5XG4gICAgICAgICAgICAgICAgICA/IGh0bWxgPHNwYW4gY2xhc3M9XCJzYmItc2NyZWVuLXJlYWRlci1vbmx5XCI+XG4gICAgICAgICAgICAgICAgICAgICAgJHtpMThuQmxvY2tlZFBhc3NhZ2VbYmxvY2tlZFBhc3NhZ2VdW3RoaXMuX2xhbmd1YWdlLmN1cnJlbnRdfVxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+YFxuICAgICAgICAgICAgICAgICAgOiBub3RoaW5nfVxuICAgICAgICAgICAgICA8L2Rpdj4gYCxcbiAgICAgICAgICApfVxuICAgICAgICAgICR7d2Fnb25UeXBlVG9JY29uTWFwW3RoaXMud2Fnb25UeXBlXVxuICAgICAgICAgICAgPyBodG1sYDxzYmItaWNvblxuICAgICAgICAgICAgICAgIG5hbWU9JHt3YWdvblR5cGVUb0ljb25NYXBbdGhpcy53YWdvblR5cGVdIX1cbiAgICAgICAgICAgICAgICBjbGFzcz1cInNiYi10cmFpbi13YWdvbl9fbWFpbi1pY29uXCJcbiAgICAgICAgICAgICAgPjwvc2JiLWljb24+YFxuICAgICAgICAgICAgOiBub3RoaW5nfVxuICAgICAgICAgIDxzdmcgY2xhc3M9XCJzYmItdHJhaW4td2Fnb25fX3NoYXBlXCIgdmlld0JveD1cIjAgMCA4NCAzNlwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPlxuICAgICAgICAgICAgPHBhdGggZD0ke3BhdGh9PjwvcGF0aD5cbiAgICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICAgIGNsYXNzPVwic2JiLXRyYWluLXdhZ29uX19zaGFwZS1jbG9zZWRcIlxuICAgICAgICAgICAgICBkPSR7dGhpcy5fdmlldyA9PT0gJ3RvcCcgPyAnTTgxIDNMMyAzNCcgOiAnTTgxIDRMNCAzMid9XG4gICAgICAgICAgICA+PC9wYXRoPlxuICAgICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgICAgY2xhc3M9XCJzYmItdHJhaW4td2Fnb25fX3NoYXBlLWNsb3NlZFwiXG4gICAgICAgICAgICAgIGQ9JHt0aGlzLl92aWV3ID09PSAndG9wJyA/ICdNODEgMzRMMyAzJyA6ICdNODEgMzJMNCA0J31cbiAgICAgICAgICAgID48L3BhdGg+XG4gICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgJHt0aGlzLmFkZGl0aW9uYWxBY2Nlc3NpYmlsaXR5VGV4dFxuICAgICAgICAgICAgPyBodG1sYDxzcGFuIGNsYXNzPVwic2JiLXNjcmVlbi1yZWFkZXItb25seVwiXG4gICAgICAgICAgICAgICAgPiwgJHt0aGlzLmFkZGl0aW9uYWxBY2Nlc3NpYmlsaXR5VGV4dH08L3NwYW5cbiAgICAgICAgICAgICAgPmBcbiAgICAgICAgICAgIDogbm90aGluZ31cbiAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgY2xhc3M9XCJzYmItdHJhaW4td2Fnb25fX2luZm9ybWF0aW9uLXdyYXBwZXJcIlxuICAgICAgICAgICAgP2hpZGRlbj0keyF0aGlzLmxpc3RDaGlsZHJlbi5sZW5ndGggJiYgIXRoaXMubGFiZWx9XG4gICAgICAgICAgPlxuICAgICAgICAgICAgJHt0aGlzLmxhYmVsXG4gICAgICAgICAgICAgID8gaHRtbGA8c3BhbiBhcmlhLWhpZGRlbj1cInRydWVcIiBjbGFzcz1cInNiYi10cmFpbi13YWdvbl9fbGFiZWxcIj4ke3RoaXMubGFiZWx9PC9zcGFuPmBcbiAgICAgICAgICAgICAgOiBub3RoaW5nfVxuICAgICAgICAgICAgJHt0aGlzLmxhYmVsICYmIHRoaXMubGlzdENoaWxkcmVuLmxlbmd0aFxuICAgICAgICAgICAgICA/IGh0bWxgPHNiYi1kaXZpZGVyXG4gICAgICAgICAgICAgICAgICBvcmllbnRhdGlvbj0ke3RoaXMub3JpZW50YXRpb24gPT09ICd2ZXJ0aWNhbCcgPyAnaG9yaXpvbnRhbCcgOiAndmVydGljYWwnfVxuICAgICAgICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwic2JiLXRyYWluLXdhZ29uX19sYWJlbC1kaXZpZGVyXCJcbiAgICAgICAgICAgICAgICA+PC9zYmItZGl2aWRlcj5gXG4gICAgICAgICAgICAgIDogbm90aGluZ31cbiAgICAgICAgICAgICR7dGhpcy5yZW5kZXJMaXN0KHtcbiAgICAgICAgICAgICAgY2xhc3M6ICdzYmItdHJhaW4td2Fnb25fX2F0dHJpYnV0ZS1pY29uLWxpc3QnLFxuICAgICAgICAgICAgICBhcmlhTGFiZWw6IGkxOG5BZGRpdGlvbmFsV2Fnb25JbmZvcm1hdGlvbkhlYWRpbmdbdGhpcy5fbGFuZ3VhZ2UuY3VycmVudF0sXG4gICAgICAgICAgICB9KX1cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgYDtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gU2JiVHJhaW5XYWdvbk1peGluRWxlbWVudCBhcyB1bmtub3duIGFzIEFic3RyYWN0Q29uc3RydWN0b3I8U2JiVHJhaW5XYWdvbk1peGluVHlwZT4gJiBUO1xufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7QUNxQ0EsSUFBTSxxQkFBbUY7Q0FDdkYsV0FBVztDQUNYLFVBQVU7Q0FDVixZQUFZO0NBQ2I7QUFFRCxJQUFNLGFBR0Y7Q0FDRixPQUFPO0VBQ0wsTUFBTTtFQUNOLEtBQUs7RUFDTjtDQUNELFlBQVk7RUFDVixNQUFNO0VBQ04sS0FBSztFQUNOO0NBQ0Qsa0JB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
441
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhaW4td2Fnb24tY29tbW9uLUMtMGZJMXIyLmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50cy90cmFpbi90cmFpbi13YWdvbi1jb21tb24uc2Nzcz9pbmxpbmUiLCIuLi8uLi8uLi9zcmMvZWxlbWVudHMvdHJhaW4vdHJhaW4td2Fnb24tY29tbW9uLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIkB1c2UgJy4uL2NvcmUvc3R5bGVzJyBhcyBzYmI7XG5cbjpob3N0IHtcbiAgLS1zYmItdHJhaW4td2Fnb24tdHJhbnNpdGlvbi1kdXJhdGlvbjogdmFyKFxuICAgIC0tc2JiLWRpc2FibGUtYW5pbWF0aW9uLWR1cmF0aW9uLFxuICAgIHZhcigtLXNiYi1hbmltYXRpb24tZHVyYXRpb24tMngpXG4gICk7XG5cbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtc2l6ZTogdmFyKC0tc2JiLXRyYWluLXdhZ29uLWZvbnQtc2l6ZSk7XG4gIGxldHRlci1zcGFjaW5nOiB2YXIoLS1zYmItdHlwby1sZXR0ZXItc3BhY2luZy10ZXh0KTtcblxuICAvLyBVc2UgIWltcG9ydGFudCBoZXJlIHRvIG5vdCBpbnRlcmZlcmUgd2l0aCBGaXJlZm94IGZvY3VzIHJpbmcgZGVmaW5pdGlvblxuICAvLyB3aGljaCBhcHBlYXJzIGluIG5vcm1hbGl6ZSBDU1Mgb2Ygc2V2ZXJhbCBmcmFtZXdvcmtzLlxuICBvdXRsaW5lOiBub25lICFpbXBvcnRhbnQ7XG59XG5cbjpob3N0KFt3YWdvbi10eXBlPSdjbG9zZWQnXSkge1xuICAtLXNiYi10cmFpbi13YWdvbi1jcm9zc2VkLXNoYXBlLWRpc3BsYXk6IGJsb2NrO1xuXG4gIEBpbmNsdWRlIHNiYi5pZi1mb3JjZWQtY29sb3JzIHtcbiAgICAtLXNiYi10cmFpbi13YWdvbi1zaGFwZS1jb2xvcjogR3JheVRleHQ7XG4gIH1cbn1cblxuOmhvc3QoOnN0YXRlKHZpZXctc2lkZSlbd2Fnb24tdHlwZT0nd2Fnb24tZW5kLWxlZnQnXSkge1xuICAtLXNiYi10cmFpbi13YWdvbi1wYWRkaW5nLWlubGluZTogdmFyKC0tc2JiLXNwYWNpbmctZml4ZWQtNHgpIHZhcigtLXNiYi1zcGFjaW5nLWZpeGVkLTN4KTtcbn1cblxuOmhvc3QoOnN0YXRlKHZpZXctc2lkZSlbd2Fnb24tdHlwZT0nd2Fnb24tZW5kLXJpZ2h0J10pIHtcbiAgLS1zYmItdHJhaW4td2Fnb24tcGFkZGluZy1pbmxpbmU6IHZhcigtLXNiYi1zcGFjaW5nLWZpeGVkLTN4KSB2YXIoLS1zYmItc3BhY2luZy1maXhlZC00eCk7XG59XG5cbjpob3N0KDpzdGF0ZSh2aWV3LXNpZGUpW3dhZ29uLXR5cGU9J2xvY29tb3RpdmUnXSkge1xuICAtLXNiYi10cmFpbi13YWdvbi1wYWRkaW5nLWlubGluZTogdmFyKC0tc2JiLXNwYWNpbmctZml4ZWQtNHgpO1xufVxuXG46aG9zdCg6c3RhdGUodmlldy10b3ApKSB7XG4gIC0tc2JiLXRyYWluLXdhZ29uLWJvcmRlci1yYWRpdXM6IHZhcigtLXNiYi1ib3JkZXItcmFkaXVzLTR4KTtcbn1cblxuOmhvc3QoW2xhYmVsXSkge1xuICAtLV9zYmItdHJhaW4td2Fnb24tYXR0cmlidXRlcy1tYXgtd2lkdGg6IHZhcigtLXNiYi10cmFpbi13YWdvbi1hdHRyaWJ1dGVzLW1heC13aWR0aCk7XG59XG5cbjpob3N0KDpub3QoW2xhYmVsXSkpIHtcbiAgLS1fc2JiLXRyYWluLXdhZ29uLWF0dHJpYnV0ZXMtanVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG5cbjpob3N0KC5zYmItYWN0aXZlKSB7XG4gIC0tc2JiLXRyYWluLXdhZ29uLWJvcmRlci13aWR0aDogdmFyKC0tc2JiLWJvcmRlci13aWR0aC0zeCk7XG59XG5cbjpob3N0KDpzdGF0ZShhY3Rpb24pKSB7XG4gIGN1cnNvcjogdmFyKC0tc2JiLWN1cnNvci1wb2ludGVyKTtcbn1cblxuOmhvc3QoOnN0YXRlKGxpbmspKSB7XG4gIEBpbmNsdWRlIHNiYi5pZi1mb3JjZWQtY29sb3JzIHtcbiAgICAtLXNiYi10cmFpbi13YWdvbi1zaGFwZS1jb2xvcjogTGlua1RleHQ7XG4gIH1cbn1cblxuLnNiYi10cmFpbi13YWdvbi1saW5rIHtcbiAgb3V0bGluZTogbm9uZTtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cblxuLnNiYi10cmFpbi13YWdvbiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiB2YXIoLS1fc2JiLXRyYWluLWZvcm1hdGlvbi1mbGV4LWRpcmVjdGlvbi1pbnZlcnRlZCk7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHdpZHRoOiB2YXIoLS1fc2JiLXRyYWluLWZvcm1hdGlvbi13YWdvbi13aWR0aCk7XG4gIGdhcDogdmFyKC0tc2JiLXRyYWluLXdhZ29uLXZlcnRpY2FsLWdhcCk7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICA6aG9zdCg6c3RhdGUob3JpZW50YXRpb24tdmVydGljYWwpKSAmIHtcbiAgICB3aWR0aDogYXV0bztcbiAgICBoZWlnaHQ6IHZhcigtLV9zYmItdHJhaW4tZm9ybWF0aW9uLXdhZ29uLWhlaWdodCk7XG4gIH1cblxuICAmOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogdmFyKC0tX3NiYi10cmFpbi1mb3JtYXRpb24td2Fnb24td2lkdGgpO1xuICAgIGhlaWdodDogdmFyKC0tX3NiYi10cmFpbi1mb3JtYXRpb24td2Fnb24taGVpZ2h0KTtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1zYmItdHJhaW4td2Fnb24tYm9yZGVyLXJhZGl1cyk7XG5cbiAgICA6aG9zdCg6c3RhdGUoYnV0dG9uKTpmb2N1cy12aXNpYmxlKSAmLFxuICAgIC5zYmItdHJhaW4td2Fnb24tbGluazpmb2N1cy12aXNpYmxlICYge1xuICAgICAgQGluY2x1ZGUgc2JiLmZvY3VzLW91dGxpbmU7XG4gICAgfVxuICB9XG59XG5cbi5zYmItdHJhaW4td2Fnb25fX2NvbXBhcnRtZW50IHtcbiAgQGluY2x1ZGUgc2JiLmxpc3QtcmVzZXQ7XG5cbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IHZhcigtLV9zYmItdHJhaW4tZm9ybWF0aW9uLWZsZXgtZGlyZWN0aW9uKTtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHBhZGRpbmctaW5saW5lOiB2YXIoLS1zYmItdHJhaW4td2Fnb24tcGFkZGluZy1pbmxpbmUpO1xuICBtYXNrLWltYWdlOiB2YXIoLS1fc2JiLXRyYWluLXdhZ29uLWNsaXAtc2hhcGUtY29tcGFydG1lbnQpO1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIHZhcigtLXNiYi10cmFpbi13YWdvbi10cmFuc2l0aW9uLWR1cmF0aW9uKVxuICAgIHZhcigtLXNiYi1hbmltYXRpb24tZWFzaW5nKTtcblxuICA6aG9zdCg6c3RhdGUoYWN0aW9uKTpob3ZlcikgJiB7XG4gICAgQGluY2x1ZGUgc2JiLmhvdmVyLW1xKCRob3ZlcjogdHJ1ZSkge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2JiLXRyYWluLXdhZ29uLWJhY2tncm91bmQtY29sb3ItaG92ZXIpO1xuICAgIH1cbiAgfVxuXG4gIDpob3N0KDpzdGF0ZShhY3Rpb24pOmlzKDphY3RpdmUsIDpzdGF0ZShhY3RpdmUpKSkgJiB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2JiLXRyYWluLXdhZ29uLWJhY2tncm91bmQtY29sb3ItYWN0aXZlKTtcbiAgfVxuXG4gICY6aGFzKC5zYmItdHJhaW4td2Fnb25fX29jY3VwYW5jeSk6aGFzKC5zYmItdHJhaW4td2Fnb25fX2NsYXNzKSB7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICB9XG5cbiAgOmhvc3QoOnN0YXRlKG9yaWVudGF0aW9uLXZlcnRpY2FsKSkgJiB7XG4gICAgcGFkZGluZy1pbmxpbmU6IDA7XG4gICAgcGFkZGluZy1ibG9jazogdmFyKC0tc2JiLXRyYWluLXdhZ29uLXBhZGRpbmctaW5saW5lKTtcbiAgfVxufVxuXG4uc2JiLXRyYWluLXdhZ29uX19jb21wYXJ0bWVudCxcbi5zYmItdHJhaW4td2Fnb25fX21haW4taWNvbiB7XG4gIHdpZHRoOiB2YXIoLS1fc2JiLXRyYWluLWZvcm1hdGlvbi13YWdvbi13aWR0aCk7XG4gIGhlaWdodDogdmFyKC0tX3NiYi10cmFpbi1mb3JtYXRpb24td2Fnb24taGVpZ2h0KTtcbn1cblxuLnNiYi10cmFpbi13YWdvbl9fc2hhcGUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGluc2V0OiAwO1xuICB3aWR0aDogdmFyKC0tc2JiLXRyYWluLWZvcm1hdGlvbi13YWdvbi1kaW1lbnNpb24tbG9uZyk7XG4gIGhlaWdodDogdmFyKC0tc2JiLXRyYWluLWZvcm1hdGlvbi13YWdvbi1kaW1lbnNpb24tc2hvcnQpO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiAwIDA7XG5cbiAgLy8gTmVlZCBpbiBvcmRlciB0byBjb3JyZWN0bHkgcmVuZGVyIGluIFNhZmFyaVxuICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtO1xuXG4gIDpob3N0KDpzdGF0ZShvcmllbnRhdGlvbi12ZXJ0aWNhbCkpICYge1xuICAgIHJvdGF0ZTogLTkwZGVnO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoLTEsIDEpO1xuICB9XG59XG5cbi5zYmItdHJhaW4td2Fnb25fX3NoYXBlIHtcbiAgLy8gV2UgaGF2ZSB0byBjbGlwIHRoZSBzaGFwZSwgYmVjYXVzZSB0aGUgcGF0aCBjYW4gYmUgbGFyZ2VyIHRoYW4gdGhlIHdhZ29uIHNoYXBlIGFuZCB3b3VsZCBvdmVyZmxvdyBvdGhlcndpc2UuXG4gIG1hc2staW1hZ2U6IHZhcigtLV9zYmItdHJhaW4td2Fnb24tY2xpcC1zaGFwZSk7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBmaWxsOiBub25lO1xuICBzdHJva2U6IHZhcigtLXNiYi10cmFpbi13YWdvbi1zaGFwZS1jb2xvcik7XG5cbiAgLy8gV2UgaGF2ZSB0byBtdWx0aXBseSBieSBmYWN0b3IgMiBiZWNhdXNlIHRoZSBib3JkZXIgZ3Jvd3MgZnJvbSB0aGUgYm91bmRpbmcgYm94IGxpbmVzXG4gIHN0cm9rZS13aWR0aDogY2FsYyh2YXIoLS1zYmItdHJhaW4td2Fnb24tYm9yZGVyLXdpZHRoKSAqIDIpO1xufVxuXG4uc2JiLXRyYWluLXdhZ29uX19tYWluLWljb24ge1xuICAtLXNiYi1pY29uLXN2Zy1oZWlnaHQ6IHZhcigtLXNiYi10cmFpbi13YWdvbi1tYWluLWljb24taGVpZ2h0KTtcblxuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGluc2V0OiAwO1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cblxuLnNiYi10cmFpbi13YWdvbl9fc2hhcGUtY2xvc2VkIHtcbiAgZGlzcGxheTogdmFyKC0tc2JiLXRyYWluLXdhZ29uLWNyb3NzZWQtc2hhcGUtZGlzcGxheSwgbm9uZSk7XG4gIHN0cm9rZS13aWR0aDogdmFyKC0tc2JiLWJvcmRlci13aWR0aC0xeCk7XG59XG5cbi5zYmItdHJhaW4td2Fnb25fX29jY3VwYW5jeSxcbi5zYmItdHJhaW4td2Fnb25fX2NsYXNzIHtcbiAgaGVpZ2h0OiB2YXIoLS1fc2JiLXRyYWluLWZvcm1hdGlvbi13YWdvbi1oZWlnaHQpO1xuICBmbGV4LWRpcmVjdGlvbjogdmFyKC0tX3NiYi10cmFpbi1mb3JtYXRpb24tZmxleC1kaXJlY3Rpb24pO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblxuICA6aG9zdCg6c3RhdGUob3JpZW50YXRpb24tdmVydGljYWwpKSAmIHtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgd2lkdGg6IHZhcigtLV9zYmItdHJhaW4tZm9ybWF0aW9uLXdhZ29uLXdpZHRoKTtcbiAgfVxufVxuXG4uc2JiLXRyYWluLXdhZ29uX19vY2N1cGFuY3kge1xuICAtLXNiYi1pY29uLXN2Zy1oZWlnaHQ6IHZhcigtLXNiYi10cmFpbi13YWdvbi1vY2N1cGFuY3ktaGVpZ2h0KTtcblxuICBncmlkLWFyZWE6IG9jY3VwYW5jeTtcbn1cblxuLnNiYi10cmFpbi13YWdvbl9fY2xhc3Mge1xuICBnYXA6ICN7c2JiLnB4LXRvLXJlbS1idWlsZCgxKX07XG4gIG9yZGVyOiAxO1xufVxuXG4uc2JiLXRyYWluLXdhZ29uX19jbGFzcy1lbnRyeSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB3aWR0aDogdmFyKC0tc2JiLXRyYWluLXdhZ29uLWNsYXNzLWRpbWVuc2lvbik7XG4gIGhlaWdodDogdmFyKC0tc2JiLXRyYWluLXdhZ29uLWNsYXNzLWRpbWVuc2lvbik7XG4gIGJvcmRlcjogdmFyKC0tc2JiLXRyYWluLXdhZ29uLWNsYXNzLWJvcmRlcik7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNiYi10cmFpbi13YWdvbi1jbGFzcy1iYWNrZ3JvdW5kLWNvbG9yKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tc2JiLXRyYWluLXdhZ29uLWNsYXNzLWJvcmRlci1yYWRpdXMpO1xuICBmb250LXdlaWdodDogdmFyKC0tc2JiLXRyYWluLXdhZ29uLWNsYXNzLWZvbnQtd2VpZ2h0KTtcbiAgY29sb3I6IHZhcigtLXNiYi10cmFpbi13YWdvbi1jbGFzcy1jb2xvcik7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAvLyBOZWVkZWQgdG8gZml4IFNhZmFyaSB2ZXJ0aWNhbCBjZW50ZXJpbmdcbiAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgJi5maXJzdCB7XG4gICAgJjo6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2JiLXRyYWluLXdhZ29uLWNsYXNzLWZpcnN0LWNvbG9yKTtcbiAgICAgIGJvcmRlci1lbmQtZW5kLXJhZGl1czogdmFyKC0tc2JiLXRyYWluLXdhZ29uLWNsYXNzLWZpcnN0LWJvcmRlci1yYWRpdXMpO1xuXG4gICAgICA6aG9zdCg6bm90KDpzdGF0ZShvcmllbnRhdGlvbi12ZXJ0aWNhbCkpKSAmIHtcbiAgICAgICAgaGVpZ2h0OiB2YXIoLS1zYmItdHJhaW4td2Fnb24tY2xhc3MtZmlyc3QtdGhpY2tuZXNzKTtcbiAgICAgICAgd2lkdGg6IHZhcigtLXNiYi10cmFpbi13YWdvbi1jbGFzcy1kaW1lbnNpb24pO1xuICAgICAgICBpbnNldDogY2FsYyhcbiAgICAgICAgICAgIC0wLjUgKlxuICAgICAgICAgICAgICAodmFyKC0tX3NiYi10cmFpbi1mb3JtYXRpb24td2Fnb24taGVpZ2h0KSAtIHZhcigtLXNiYi10cmFpbi13YWdvbi1jbGFzcy1kaW1lbnNpb24pKSArXG4gICAgICAgICAgICAgIHZhcigtLXNiYi10cmFpbi13YWdvbi1ib3JkZXItd2lkdGgpIC0gdmFyKC0tc2JiLXRyYWluLXdhZ29uLWNsYXNzLWJvcmRlci13aWR0aClcbiAgICAgICAgICApXG4gICAgICAgICAgMCBhdXRvIGNhbGMoLTEgKiB2YXIoLS1zYmItdHJhaW4td2Fnb24tY2xhc3MtYm9yZGVyLXdpZHRoKSk7XG4gICAgICAgIGJvcmRlci1lbmQtc3RhcnQtcmFkaXVzOiB2YXIoLS1zYmItdHJhaW4td2Fnb24tY2xhc3MtZmlyc3QtYm9yZGVyLXJhZGl1cyk7XG4gICAgICB9XG5cbiAgICAgIDpob3N0KDpzdGF0ZShvcmllbnRhdGlvbi12ZXJ0aWNhbCkpICYge1xuICAgICAgICB3aWR0aDogdmFyKC0tc2JiLXRyYWluLXdhZ29uLWNsYXNzLWZpcnN0LXRoaWNrbmVzcyk7XG4gICAgICAgIGhlaWdodDogdmFyKC0tc2JiLXRyYWluLXdhZ29uLWNsYXNzLWRpbWVuc2lvbik7XG4gICAgICAgIGluc2V0OiBjYWxjKC0xICogdmFyKC0tc2JiLXRyYWluLXdhZ29uLWNsYXNzLWJvcmRlci13aWR0aCkpIGF1dG8gMFxuICAgICAgICAgIGNhbGMoXG4gICAgICAgICAgICAtMC41ICpcbiAgICAgICAgICAgICAgKHZhcigtLV9zYmItdHJhaW4tZm9ybWF0aW9uLXdhZ29uLXdpZHRoKSAtIHZhcigtLXNiYi10cmFpbi13YWdvbi1jbGFzcy1kaW1lbnNpb24pKSArXG4gICAgICAgICAgICAgIHZhcigtLXNiYi10cmFpbi13YWdvbi1ib3JkZXItd2lkdGgpIC0gdmFyKC0tc2JiLXRyYWluLXdhZ29uLWNsYXNzLWJvcmRlci13aWR0aClcbiAgICAgICAgICApO1xuICAgICAgICBib3JkZXItc3RhcnQtZW5kLXJhZGl1czogdmFyKC0tc2JiLXRyYWluLXdhZ29uLWNsYXNzLWZpcnN0LWJvcmRlci1yYWRpdXMpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4uc2JiLXRyYWluLXdhZ29uX19pbmZvcm1hdGlvbi13cmFwcGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IHN0YXJ0O1xuICBmbGV4LWRpcmVjdGlvbjogdmFyKC0tX3NiYi10cmFpbi1mb3JtYXRpb24tZmxleC1kaXJlY3Rpb24pO1xuICBnYXA6IHZhcigtLXNiYi10cmFpbi13YWdvbi1pbmZvcm1hdGlvbi1nYXApO1xuXG4gIDpob3N0KDpzdGF0ZShvcmllbnRhdGlvbi12ZXJ0aWNhbCkpICYge1xuICAgIG1pbi13aWR0aDogdmFyKC0tc2JiLXRyYWluLXdhZ29uLWluZm9ybWF0aW9uLW1pbi13aWR0aCk7XG4gIH1cblxuICAmW2hpZGRlbl0ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cblxuOmlzKC5zYmItdHJhaW4td2Fnb25fX2xhYmVsLCAuc2JiLXRyYWluLXdhZ29uX19sYWJlbC1kaXZpZGVyKSB7XG4gIG1hcmdpbi1ibG9jay1zdGFydDogY2FsYyhcbiAgICAwLjUgKiAoMWVtICogdmFyKC0tc2JiLXR5cG8tbGluZS1oZWlnaHQtdGV4dCkgLSB2YXIoLS1zYmItdHJhaW4td2Fnb24tZm9udC1zaXplKSlcbiAgKTtcblxuICA6aG9zdCg6c3RhdGUob3JpZW50YXRpb24tdmVydGljYWwpKSAmIHtcbiAgICBtYXJnaW4tYmxvY2stc3RhcnQ6IDA7XG4gIH1cbn1cblxuLnNiYi10cmFpbi13YWdvbl9fbGFiZWwge1xuICBsaW5lLWhlaWdodDogMTtcblxuICAvLyBJbiB2ZXJ0aWNhbCBvcmllbnRhdGlvbiwgdGhlIGxhYmVsIGlzIGhvcml6b250YWxseSBjZW50ZXJlZCBpbiBhIGZpeGVkIHdpZHRoIGJveCBvZiAzMnB4IGJ5IGRlc2lnbi5cbiAgLy8gQXMgdGhlIGJveCBjYW4gZ3JvdyB0byB0aGUgc2lkZSBpZiB0aGVyZSBhcmUgbWFueSBhdHRyaWJ1dGUgaWNvbnMsIHdlIGhhdmUgdG8gcmUtYXBwbHkgdGhpcyB3aWR0aCBhcyBtYXgtd2lkdGggaGVyZS5cbiAgOmhvc3QoOnN0YXRlKG9yaWVudGF0aW9uLXZlcnRpY2FsKSkgJiB7XG4gICAgbWF4LXdpZHRoOiB2YXIoLS1zYmItdHJhaW4td2Fnb24taW5mb3JtYXRpb24tbWluLXdpZHRoKTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cbn1cblxuLnNiYi10cmFpbi13YWdvbl9fbGFiZWwtZGl2aWRlciB7XG4gIGhlaWdodDogdmFyKC0tc2JiLXRyYWluLXdhZ29uLWZvbnQtc2l6ZSk7XG5cbiAgOmhvc3QoOnN0YXRlKG9yaWVudGF0aW9uLXZlcnRpY2FsKSkgJiB7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIHdpZHRoOiB2YXIoLS1zYmItdHJhaW4td2Fnb24tZm9udC1zaXplKTtcbiAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiBjYWxjKFxuICAgICAgMC41ICogKHZhcigtLXNiYi10cmFpbi13YWdvbi1pbmZvcm1hdGlvbi1taW4td2lkdGgpIC0gdmFyKC0tc2JiLXRyYWluLXdhZ29uLWZvbnQtc2l6ZSkpXG4gICAgKTtcbiAgfVxufVxuXG4uc2JiLXRyYWluLXdhZ29uX19hdHRyaWJ1dGUtaWNvbi1saXN0IHtcbiAgQGluY2x1ZGUgc2JiLmxpc3QtcmVzZXQ7XG5cbiAgLS1zYmItaWNvbi1zdmctaGVpZ2h0OiB2YXIoLS1zYmItdHJhaW4td2Fnb24tYXR0cmlidXRlLWljb24taGVpZ2h0KTtcblxuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHZhcigtLV9zYmItdHJhaW4td2Fnb24tYXR0cmlidXRlcy1qdXN0aWZ5LWNvbnRlbnQsIHN0YXJ0KTtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBnYXA6IHZhcigtLXNiYi10cmFpbi13YWdvbi1hdHRyaWJ1dGUtaWNvbi1nYXApO1xuICBjb2xvcjogdmFyKC0tc2JiLXRyYWluLXdhZ29uLWF0dHJpYnV0ZS1pY29uLWNvbG9yKTtcbiAgcGFkZGluZy1ibG9jay1zdGFydDogY2FsYyhcbiAgICAwLjUgKiAoMWVtICogdmFyKC0tc2JiLXR5cG8tbGluZS1oZWlnaHQtdGV4dCkgLSB2YXIoLS1zYmItdHJhaW4td2Fnb24tYXR0cmlidXRlLWljb24taGVpZ2h0KSlcbiAgKTtcbiAgbWF4LXdpZHRoOiB2YXIoLS1fc2JiLXRyYWluLXdhZ29uLWF0dHJpYnV0ZXMtbWF4LXdpZHRoKTtcblxuICA6aG9zdCg6c3RhdGUob3JpZW50YXRpb24tdmVydGljYWwpKSAmIHtcbiAgICAvLyBXZSBoYXZlIHRvIGVuc3VyZSB0aGF0IHRoZSBpY29ucyBzdGF5IGFzIGxvbmcgYXMgcG9zc2libGUgdG8gdGhlIHNpZGUgb2YgdGhlIHNoYXBlIGFuZCBvbmx5IHRoZW4gdXNlIGEgc2Vjb25kIGNvbHVtbi5cbiAgICAvLyBIb3dldmVyLCB0aGUgb3JkZXIgb2YgdGhlIGljb25zIHNob3VsZCBiZSByb3cgd2lzZS4gVG8gbWl0aWdhdGUgdGhpcyBwcm9ibGVtLCB3ZSBwcm9ncmFtbWF0aWNhbGx5IGdldCB0aGUgYW1vdW50IG9mXG4gICAgLy8gc2xvdHRlZCBpY29ucyBhbmQgY2FuIHRoZXJlZm9yZSBjYWxjdWxhdGUsIGhvdyBtYW55IGNvbHVtbnMgYXBwcm94aW1hdGVseSBhcmUgbmVlZGVkLlxuICAgIC8vIFRvIG1vdmUgdGhlIGljb25zIGFnYWluc3QgdGhlIHNoYXBlLCB3ZSBjb250cm9sIHRoZSBtYXgtd2lkdGguXG4gICAgLy8gVGhlIG1heC1oZWlnaHQgaXMgZ2l2ZW4gYnkgdGhlIGZhY3QsIHRoYXQgMyByb3dzIGZpdCBpbnRvIHRoZSBkZXNpZ24uIEZvciB0aGUgY2FsY3VsYXRpb24sXG4gICAgLy8gYWxzbyB0d28gdGltZXMgdGhlIGdhcCBoYXMgdG8gYmUgaW5jbHVkZWQuXG4gICAgbWF4LXdpZHRoOiBjYWxjKFxuICAgICAgdmFyKC0tX3NiYi10cmFpbi13YWdvbi1hdHRyaWJ1dGVzLWljb24tY29sdW1ucykgKiB2YXIoLS1zYmItdHJhaW4td2Fnb24tYXR0cmlidXRlcy1tZWFuLXdpZHRoKVxuICAgICk7XG4gICAgbWF4LWhlaWdodDogY2FsYyhcbiAgICAgIHZhcigtLV9zYmItdHJhaW4td2Fnb24tYXR0cmlidXRlcy1pY29uLXJvd3MsIDMpICpcbiAgICAgICAgdmFyKC0tc2JiLXRyYWluLXdhZ29uLWF0dHJpYnV0ZS1pY29uLWhlaWdodCkgK1xuICAgICAgICAodmFyKC0tX3NiYi10cmFpbi13YWdvbi1hdHRyaWJ1dGVzLWljb24tcm93cywgMykgLSAxKSAqXG4gICAgICAgIHZhcigtLXNiYi10cmFpbi13YWdvbi1hdHRyaWJ1dGUtaWNvbi1nYXApXG4gICAgKTtcbiAgICBwYWRkaW5nLWJsb2NrLXN0YXJ0OiAwO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG59XG5cbi8vIFVzaW5nIC4uLiBsaSBzZWxlY3RvciwgYmVjYXVzZSB0aGUgbGkgZ2VuZXJhdGlvblxuLy8gaXMgaGFuZGxlZCBpbiB0aGUgY29tcG9uZW50IGJhc2UgY2xhc3MuXG4uc2JiLXRyYWluLXdhZ29uX19hdHRyaWJ1dGUtaWNvbi1saXN0ID4gOmlzKGxpLCBzcGFuKSB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xufVxuIiwiaW1wb3J0IHsgdHlwZSBDU1NSZXN1bHRHcm91cCwgaXNTZXJ2ZXIsIG5vdGhpbmcsIHR5cGUgVGVtcGxhdGVSZXN1bHQsIHVuc2FmZUNTUyB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBwcm9wZXJ0eSwgc3RhdGUgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5pbXBvcnQgeyB3aGVuIH0gZnJvbSAnbGl0L2RpcmVjdGl2ZXMvd2hlbi5qcyc7XG5pbXBvcnQgeyBodG1sIH0gZnJvbSAnbGl0L3N0YXRpYy1odG1sLmpzJztcblxuaW1wb3J0IHR5cGUgeyBBYnN0cmFjdENvbnN0cnVjdG9yIH0gZnJvbSAnLi4vY29yZS9taXhpbnMvY29uc3RydWN0b3IudHMnO1xuaW1wb3J0IHtcbiAgZm9yY2VUeXBlLFxuICBoYW5kbGVEaXN0aW5jdENoYW5nZSxcbiAgaTE4bkFkZGl0aW9uYWxXYWdvbkluZm9ybWF0aW9uSGVhZGluZyxcbiAgaTE4bkFuZCxcbiAgaTE4bkJsb2NrZWRQYXNzYWdlLFxuICBpMThuQ2xhc3MsXG4gIGkxOG5DbG9zZWRDb21wYXJ0bWVudExhYmVsLFxuICBpMThuQ291Y2hldHRlV2Fnb25MYWJlbCxcbiAgaTE4bkxvY29tb3RpdmVMYWJlbCxcbiAgaTE4blJlc3RhdXJhbnRXYWdvbkxhYmVsLFxuICBpMThuU2VjdG9yLFxuICBpMThuU2xlZXBpbmdXYWdvbkxhYmVsLFxuICBpMThuV2Fnb25MYWJlbCxcbiAgaTE4bldhZ29uTGFiZWxOdW1iZXIsXG4gIG9taXRFbXB0eUNvbnZlcnRlcixcbiAgdHlwZSBTYmJFbGVtZW50LFxuICB0eXBlIFNiYkVsZW1lbnRUeXBlLFxuICBTYmJMYW5ndWFnZUNvbnRyb2xsZXIsXG4gIFNiYk5hbWVkU2xvdExpc3RNaXhpbixcbiAgdHlwZSBTYmJPY2N1cGFuY3ksXG4gIFNiYlByb3BlcnR5V2F0Y2hlckNvbnRyb2xsZXIsXG59IGZyb20gJy4uL2NvcmUudHMnO1xuaW1wb3J0IHsgU2JiRGl2aWRlckVsZW1lbnQgfSBmcm9tICcuLi9kaXZpZGVyLnB1cmUudHMnO1xuaW1wb3J0IHsgU2JiSWNvbkVsZW1lbnQgfSBmcm9tICcuLi9pY29uLnB1cmUudHMnO1xuaW1wb3J0IHsgU2JiVGltZXRhYmxlT2NjdXBhbmN5SWNvbkVsZW1lbnQgfSBmcm9tICcuLi90aW1ldGFibGUtb2NjdXBhbmN5LWljb24ucHVyZS50cyc7XG5cbmltcG9ydCB0eXBlIHsgU2JiVHJhaW5Gb3JtYXRpb25FbGVtZW50IH0gZnJvbSAnLi90cmFpbi1mb3JtYXRpb24vdHJhaW4tZm9ybWF0aW9uLmNvbXBvbmVudC50cyc7XG5pbXBvcnQgeyBTYmJUcmFpbkZvcm1hdGlvbk9yaWVudGF0aW9uTWl4aW4gfSBmcm9tICcuL3RyYWluLWZvcm1hdGlvbi1vcmllbnRhdGlvbi1taXhpbi50cyc7XG5pbXBvcnQgc3R5bGUgZnJvbSAnLi90cmFpbi13YWdvbi1jb21tb24uc2Nzcz9pbmxpbmUnO1xuXG5jb25zdCB3YWdvblR5cGVUb0ljb25NYXA6IFBhcnRpYWw8UmVjb3JkPFNiYlRyYWluV2Fnb25NaXhpblR5cGVbJ3dhZ29uVHlwZSddLCBzdHJpbmc+PiA9IHtcbiAgY291Y2hldHRlOiAnc2EtY2MnLFxuICBzbGVlcGluZzogJ3NhLXdsJyxcbiAgcmVzdGF1cmFudDogJ3NhLXdyJyxcbn07XG5cbmNvbnN0IHNoYXBlUGF0aHM6IFJlY29yZDxcbiAgRXhjbHVkZTxTYmJUcmFpbldhZ29uTWl4aW5UeXBlWyd3YWdvblR5cGUnXSwgJ2NvdWNoZXR0ZScgfCAnc2xlZXBpbmcnIHwgJ3Jlc3RhdXJhbnQnIHwgJ2Nsb3NlZCc+LFxuICB7IHNpZGU6IHN0cmluZzsgdG9wOiBzdHJpbmcgfVxuPiA9IHtcbiAgd2Fnb246IHtcbiAgICBzaWRlOiAnTTEyIDBINzJBMTIgMTIgMCAwMTg0IDEyVjI0QTEyIDEyIDAgMDE3MiAzNkgxMkExMiAxMiAwIDAxMCAyNFYxMkExMiAxMiAwIDAxMTIgMFonLFxuICAgIHRvcDogJ004IDBBOCA4IDAgMDAwIDhWMjhhOCA4IDAgMDA4IDhINzZhOCA4IDAgMDA4LThWOEE4IDggMCAwMDc2IDBIOFonLFxuICB9LFxuICBsb2NvbW90aXZlOiB7XG4gICAgc2lkZTogJ003LjcgOC42QzEwLjUgMy42IDE2IDAgMjIgMEg2MmM2IDAgMTEuNSAzLjYgMTQuMyA4LjZsNS4xIDlDODUuOSAyNS42IDgwIDM2IDcxIDM2SDEzQzQgMzYtMS45IDI1LjYgMi42IDE3LjZsNS4xLTlaJyxcbiAgICB0b3A6ICdNNjYgMEgxOEM4IDAgMCA4IDAgMThTOCAzNiAxOCAzNkg2NmMxMCAwIDE4LTggMTgtMThTNzYgMCA2NiAwWicsXG4gIH0sXG4gICd3YWdvbi1lbmQtbGVmdCc6IHtcbiAgICBzaWRlOiAnTTcuNyA4LjZBMTYgMTYgMCAwMTIyIDBINzJjNiAwIDEyIDYgMTIgMTJWMjRjMCA2LTYgMTItMTIgMTJIMTNDMy44IDM2LTIgMjYuMSAyLjYgMTguMVonLFxuICAgIHRvcDogJ003NiAwSDE4QzguMjUgMCAuNSA4LjI1LjUgMThTOCAzNiAxOCAzNkg3NmM0IDAgOC00IDgtOFY4YzAtNC00LTgtOC04WicsXG4gIH0sXG4gICd3YWdvbi1lbmQtcmlnaHQnOiB7XG4gICAgc2lkZTogJ003Ni4zIDguNkExNiAxNiAwIDAwNjIgMEgxMkM2IDAgMCA2IDAgMTN2MTFjMCA2IDYgMTIgMTIgMTJoNTguNGM4LjYgMCAxNS05LjkgMTAuNC0xNy45eicsXG4gICAgdG9wOiAnTTY2IDBIOEM0IDAgMCA0IDAgOFYyOGMwIDQgNCA4IDggOEg2NmM5Ljc1IDAgMTcuNS04LjI1IDE3LjUtMThTNzYgMCA2NiAwWicsXG4gIH0sXG59O1xuXG5leHBvcnQgZGVjbGFyZSBjbGFzcyBTYmJUcmFpbldhZ29uTWl4aW5UeXBlIGV4dGVuZHMgU2JiRWxlbWVudCB7XG4gIHB1YmxpYyBhY2Nlc3NvciB3YWdvblR5cGU6XG4gICAgfCAnd2Fnb24nXG4gICAgfCAnd2Fnb24tZW5kLWxlZnQnXG4gICAgfCAnd2Fnb24tZW5kLXJpZ2h0J1xuICAgIHwgJ2NvdWNoZXR0ZSdcbiAgICB8ICdzbGVlcGluZydcbiAgICB8ICdyZXN0YXVyYW50J1xuICAgIHwgJ2xvY29tb3RpdmUnXG4gICAgfCAnY2xvc2VkJztcbiAgcHVibGljIGFjY2Vzc29yIG9jY3VwYW5jeTogU2JiT2NjdXBhbmN5IHwgbnVsbDtcbiAgcHVibGljIGFjY2Vzc29yIHNlY3Rvcjogc3RyaW5nO1xuICBwdWJsaWMgYWNjZXNzb3IgYmxvY2tlZFBhc3NhZ2U6ICdwcmV2aW91cycgfCAnbmV4dCcgfCAnYm90aCcgfCAnbm9uZSc7XG4gIHB1YmxpYyBhY2Nlc3NvciB3YWdvbkNsYXNzOiAnMScgfCAnMicgfCAnMS0yJyB8ICcyLTEnIHwgbnVsbDtcbiAgcHVibGljIGFjY2Vzc29yIGxhYmVsOiBzdHJpbmc7XG4gIHB1YmxpYyBhY2Nlc3NvciBhZGRpdGlvbmFsQWNjZXNzaWJpbGl0eVRleHQ6IHN0cmluZztcblxuICBwcm90ZWN0ZWQgcmVuZGVyVGVtcGxhdGUoKTogVGVtcGxhdGVSZXN1bHQ7XG59XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbmV4cG9ydCBjb25zdCBTYmJUcmFpbldhZ29uTWl4aW4gPSA8VCBleHRlbmRzIEFic3RyYWN0Q29uc3RydWN0b3I8U2JiRWxlbWVudD4+KFxuICBzdXBlckNsYXNzOiBULFxuKTogQWJzdHJhY3RDb25zdHJ1Y3RvcjxTYmJUcmFpbldhZ29uTWl4aW5UeXBlPiAmIFQgPT4ge1xuICBhYnN0cmFjdCBjbGFzcyBTYmJUcmFpbldhZ29uTWl4aW5FbGVtZW50XG4gICAgZXh0ZW5kcyBTYmJUcmFpbkZvcm1hdGlvbk9yaWVudGF0aW9uTWl4aW4oU2JiTmFtZWRTbG90TGlzdE1peGluPFNiYkljb25FbGVtZW50LCBUPihzdXBlckNsYXNzKSlcbiAgICBpbXBsZW1lbnRzIFBhcnRpYWw8U2JiVHJhaW5XYWdvbk1peGluVHlwZT5cbiAge1xuICAgIHB1YmxpYyBzdGF0aWMgZWxlbWVudERlcGVuZGVuY2llczogU2JiRWxlbWVudFR5cGVbXSA9IFtcbiAgICAgIFNiYkljb25FbGVtZW50LFxuICAgICAgU2JiVGltZXRhYmxlT2NjdXBhbmN5SWNvbkVsZW1lbnQsXG4gICAgICBTYmJEaXZpZGVyRWxlbWVudCxcbiAgICBdO1xuICAgIHB1YmxpYyBzdGF0aWMgc3R5bGVzOiBDU1NSZXN1bHRHcm91cCA9IFt1bnNhZmVDU1Moc3R5bGUpXTtcblxuICAgIC8qKlxuICAgICAqIFdhZ29uIHR5cGUuXG4gICAgICogRm9yIGB3YWdvbi1lbmQtbGVmdGAgYW5kIGB3YWdvbi1lbmQtcmlnaHRgLCBwbGVhc2Ugc2V0IHRoZSBjb3JyZXNwb25kaW5nIHZhbHVlIG9mIHRoZSBgYmxvY2tlZFBhc3NhZ2VgIHByb3BlcnR5LlxuICAgICAqL1xuICAgIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ3dhZ29uLXR5cGUnLCByZWZsZWN0OiB0cnVlIH0pIHB1YmxpYyBhY2Nlc3NvciB3YWdvblR5cGU6XG4gICAgICB8ICd3YWdvbidcbiAgICAgIHwgJ3dhZ29uLWVuZC1sZWZ0J1xuICAgICAgfCAnd2Fnb24tZW5kLXJpZ2h0J1xuICAgICAgfCAnY291Y2hldHRlJ1xuICAgICAgfCAnc2xlZXBpbmcnXG4gICAgICB8ICdyZXN0YXVyYW50J1xuICAgICAgfCAnbG9jb21vdGl2ZSdcbiAgICAgIHwgJ2Nsb3NlZCcgPSAnd2Fnb24nO1xuXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlYWRvbmx5IGxpc3RDaGlsZExvY2FsTmFtZXMgPSBbJ3NiYi1pY29uJ107XG5cbiAgICAvKiogT2NjdXBhbmN5IG9mIGEgd2Fnb24uICovXG4gICAgQHByb3BlcnR5KCkgcHVibGljIGFjY2Vzc29yIG9jY3VwYW5jeTogU2JiT2NjdXBhbmN5IHwgbnVsbCA9IG51bGw7XG5cbiAgICAvKiogU2VjdG9yIGluIHdoaWNoIHRoZSB3YWdvbiBzdG9wcy4gKi9cbiAgICBAZm9yY2VUeXBlKClcbiAgICBAaGFuZGxlRGlzdGluY3RDaGFuZ2UoKGU6IFNiYlRyYWluV2Fnb25NaXhpbkVsZW1lbnQpID0+IGUuX3NlY3RvckNoYW5nZWQoKSlcbiAgICBAcHJvcGVydHkoeyByZWZsZWN0OiB0cnVlLCBjb252ZXJ0ZXI6IG9taXRFbXB0eUNvbnZlcnRlciB9KVxuICAgIHB1YmxpYyBhY2Nlc3NvciBzZWN0b3I6IHN0cmluZyA9ICcnO1xuXG4gICAgLyoqIEFjY2Vzc2liaWxpdHkgdGV4dCBmb3IgYmxvY2tlZCBwYXNzYWdlcyBvZiB0aGUgd2Fnb24uICovXG4gICAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAnYmxvY2tlZC1wYXNzYWdlJyB9KVxuICAgIHB1YmxpYyBhY2Nlc3NvciBibG9ja2VkUGFzc2FnZTogJ3ByZXZpb3VzJyB8ICduZXh0JyB8ICdib3RoJyB8ICdub25lJyA9ICdub25lJztcblxuICAgIC8qKiBDbGFzcyBsYWJlbCAqL1xuICAgIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ3dhZ29uLWNsYXNzJyB9KSBwdWJsaWMgYWNjZXNzb3Igd2Fnb25DbGFzczpcbiAgICAgIHwgJzEnXG4gICAgICB8ICcyJ1xuICAgICAgfCAnMS0yJ1xuICAgICAgfCAnMi0xJ1xuICAgICAgfCBudWxsID0gbnVsbDtcblxuICAgIC8qKiBXYWdvbiBudW1iZXIgKi9cbiAgICBAZm9yY2VUeXBlKClcbiAgICBAcHJvcGVydHkoeyByZWZsZWN0OiB0cnVlLCBjb252ZXJ0ZXI6IG9taXRFbXB0eUNvbnZlcnRlciB9KVxuICAgIHB1YmxpYyBhY2Nlc3NvciBsYWJlbDogc3RyaW5nID0gJyc7XG5cbiAgICAvKiogQWRkaXRpb25hbCBhY2Nlc3NpYmlsaXR5IHRleHQgd2hpY2ggd2lsbCBiZSBhcHBlbmRlZCB0byB0aGUgZW5kLiAqL1xuICAgIEBmb3JjZVR5cGUoKVxuICAgIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ2FkZGl0aW9uYWwtYWNjZXNzaWJpbGl0eS10ZXh0JyB9KVxuICAgIHB1YmxpYyBhY2Nlc3NvciBhZGRpdGlvbmFsQWNjZXNzaWJpbGl0eVRleHQ6IHN0cmluZyA9ICcnO1xuXG4gICAgQHN0YXRlKCkgcHJpdmF0ZSBhY2Nlc3NvciBfdmlldzogU2JiVHJhaW5Gb3JtYXRpb25FbGVtZW50Wyd2aWV3J10gfCBudWxsID0gbnVsbDtcblxuICAgIHByaXZhdGUgX2xhbmd1YWdlID0gbmV3IFNiYkxhbmd1YWdlQ29udHJvbGxlcih0aGlzKTtcbiAgICBwcml2YXRlIF9jbGlwU3R5bGVTaGVldDogQ1NTU3R5bGVTaGVldCB8IG51bGwgPSBudWxsO1xuXG4gICAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKC4uLmFyZ3M6IGFueVtdKSB7XG4gICAgICBzdXBlciguLi5hcmdzKTtcbiAgICAgIHRoaXMuYWRkQ29udHJvbGxlcihcbiAgICAgICAgbmV3IFNiYlByb3BlcnR5V2F0Y2hlckNvbnRyb2xsZXIodGhpcywgKCkgPT4gdGhpcy5jbG9zZXN0KCdzYmItdHJhaW4tZm9ybWF0aW9uJyksIHtcbiAgICAgICAgICB2aWV3OiAodCkgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMuX3ZpZXcpIHtcbiAgICAgICAgICAgICAgdGhpcy5pbnRlcm5hbHMuc3RhdGVzLmRlbGV0ZShgdmlldy0ke3RoaXMuX3ZpZXd9YCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLl92aWV3ID0gdC52aWV3O1xuICAgICAgICAgICAgaWYgKHRoaXMuX3ZpZXcpIHtcbiAgICAgICAgICAgICAgdGhpcy5pbnRlcm5hbHMuc3RhdGVzLmFkZChgdmlldy0ke3RoaXMuX3ZpZXd9YCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgfSksXG4gICAgICApO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBvdmVycmlkZSBjcmVhdGVSZW5kZXJSb290KCk6IEhUTUxFbGVtZW50IHwgRG9jdW1lbnRGcmFnbWVudCB7XG4gICAgICBjb25zdCByZW5kZXJSb290ID0gc3VwZXIuY3JlYXRlUmVuZGVyUm9vdCgpO1xuXG4gICAgICBpZiAoIWlzU2VydmVyKSB7XG4gICAgICAgIHRoaXMuX2NsaXBTdHlsZVNoZWV0ID0gbmV3IENTU1N0eWxlU2hlZXQoKTtcbiAgICAgICAgKHJlbmRlclJvb3QgYXMgU2hhZG93Um9vdCkuYWRvcHRlZFN0eWxlU2hlZXRzLnB1c2godGhpcy5fY2xpcFN0eWxlU2hlZXQpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gcmVuZGVyUm9vdDtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9zZWN0b3JDaGFuZ2VkKCk6IHZvaWQge1xuICAgICAgLyoqIEBpbnRlcm5hbCAqL1xuICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgnc2VjdG9yY2hhbmdlJywgeyBidWJibGVzOiB0cnVlLCBjb21wb3NlZDogdHJ1ZSB9KSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfd2Fnb25UeXBlTGFiZWwoKTogc3RyaW5nIHtcbiAgICAgIHN3aXRjaCAodGhpcy53YWdvblR5cGUpIHtcbiAgICAgICAgY2FzZSAnY2xvc2VkJzpcbiAgICAgICAgICByZXR1cm4gaTE4bkNsb3NlZENvbXBhcnRtZW50TGFiZWxbdGhpcy5fbGFuZ3VhZ2UuY3VycmVudF07XG4gICAgICAgIGNhc2UgJ2xvY29tb3RpdmUnOlxuICAgICAgICAgIHJldHVybiBpMThuTG9jb21vdGl2ZUxhYmVsW3RoaXMuX2xhbmd1YWdlLmN1cnJlbnRdO1xuICAgICAgICBjYXNlICdjb3VjaGV0dGUnOlxuICAgICAgICAgIHJldHVybiBpMThuQ291Y2hldHRlV2Fnb25MYWJlbFt0aGlzLl9sYW5ndWFnZS5jdXJyZW50XTtcbiAgICAgICAgY2FzZSAnc2xlZXBpbmcnOlxuICAgICAgICAgIHJldHVybiBpMThuU2xlZXBpbmdXYWdvbkxhYmVsW3RoaXMuX2xhbmd1YWdlLmN1cnJlbnRdO1xuICAgICAgICBjYXNlICdyZXN0YXVyYW50JzpcbiAgICAgICAgICByZXR1cm4gaTE4blJlc3RhdXJhbnRXYWdvbkxhYmVsW3RoaXMuX2xhbmd1YWdlLmN1cnJlbnRdO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHJldHVybiBpMThuV2Fnb25MYWJlbFt0aGlzLl9sYW5ndWFnZS5jdXJyZW50XTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIF93YWdvblNoYXBlKCk6IHN0cmluZyB7XG4gICAgICBjb25zdCB2aWV3ID0gdGhpcy5fdmlldyA/PyAnc2lkZSc7XG4gICAgICBpZiAoWyd3YWdvbicsICdjb3VjaGV0dGUnLCAnc2xlZXBpbmcnLCAncmVzdGF1cmFudCcsICdjbG9zZWQnXS5pbmNsdWRlcyh0aGlzLndhZ29uVHlwZSkpIHtcbiAgICAgICAgcmV0dXJuIHNoYXBlUGF0aHNbJ3dhZ29uJ11bdmlld107XG4gICAgICB9XG4gICAgICByZXR1cm4gKFxuICAgICAgICBzaGFwZVBhdGhzW3RoaXMud2Fnb25UeXBlIGFzIGtleW9mIHR5cGVvZiBzaGFwZVBhdGhzXVt2aWV3XSA/PyBzaGFwZVBhdGhzWyd3YWdvbiddW3ZpZXddXG4gICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2NsYXNzTGFiZWwoKTogc3RyaW5nIHtcbiAgICAgIHN3aXRjaCAodGhpcy53YWdvbkNsYXNzKSB7XG4gICAgICAgIGNhc2UgJzEnOlxuICAgICAgICAgIHJldHVybiBpMThuQ2xhc3NbJ2ZpcnN0J11bdGhpcy5fbGFuZ3VhZ2UuY3VycmVudF07XG4gICAgICAgIGNhc2UgJzInOlxuICAgICAgICAgIHJldHVybiBpMThuQ2xhc3NbJ3NlY29uZCddW3RoaXMuX2xhbmd1YWdlLmN1cnJlbnRdO1xuICAgICAgICBjYXNlICcxLTInOlxuICAgICAgICAgIHJldHVybiBgJHtpMThuQ2xhc3NbJ2ZpcnN0J11bdGhpcy5fbGFuZ3VhZ2UuY3VycmVudF19ICR7aTE4bkFuZFt0aGlzLl9sYW5ndWFnZS5jdXJyZW50XX0gJHtpMThuQ2xhc3NbJ3NlY29uZCddW3RoaXMuX2xhbmd1YWdlLmN1cnJlbnRdfWA7XG4gICAgICAgIGNhc2UgJzItMSc6XG4gICAgICAgICAgcmV0dXJuIGAke2kxOG5DbGFzc1snc2Vjb25kJ11bdGhpcy5fbGFuZ3VhZ2UuY3VycmVudF19ICR7aTE4bkFuZFt0aGlzLl9sYW5ndWFnZS5jdXJyZW50XX0gJHtpMThuQ2xhc3NbJ2ZpcnN0J11bdGhpcy5fbGFuZ3VhZ2UuY3VycmVudF19YDtcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICByZXR1cm4gJyc7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHJlbmRlclRlbXBsYXRlKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICAgIGNvbnN0IGJsb2NrZWRQYXNzYWdlID1cbiAgICAgICAgdGhpcy53YWdvblR5cGUgPT09ICd3YWdvbi1lbmQtbGVmdCcgJiYgdGhpcy5ibG9ja2VkUGFzc2FnZSA9PT0gJ25vbmUnXG4gICAgICAgICAgPyAncHJldmlvdXMnXG4gICAgICAgICAgOiB0aGlzLndhZ29uVHlwZSA9PT0gJ3dhZ29uLWVuZC1yaWdodCcgJiYgdGhpcy5ibG9ja2VkUGFzc2FnZSA9PT0gJ25vbmUnXG4gICAgICAgICAgICA/ICduZXh0J1xuICAgICAgICAgICAgOiAodGhpcy5ibG9ja2VkUGFzc2FnZSA/PyAnbm9uZScpO1xuXG4gICAgICBjb25zdCBoYXNCbG9ja2VkUGFzc2FnZUVudHJ5ID0gYmxvY2tlZFBhc3NhZ2UgIT09ICdub25lJztcblxuICAgICAgLy8gRnJvbSBhY2Nlc3NpYmlsaXR5IHBlcnNwZWN0aXZlIHdlIGNhbm5vdCBjcmVhdGUgYSBsaXN0IHdpdGggb25seSBvbmUgZW50cnkuXG4gICAgICAvLyBXZSBuZWVkIHRvIGtub3cgd2hhdCB3aWxsIGJlIHByZXNlbnRlZCBhbmQgc3dpdGNoIHNlbWFudGljcyBiYXNlZCBvbiBjb3VudC5cbiAgICAgIGNvbnN0IGxpc3RFbnRyaWVzQ291bnQgPVxuICAgICAgICArISF0aGlzLnNlY3RvciArXG4gICAgICAgICshIXRoaXMubGFiZWwgK1xuICAgICAgICArKCEhdGhpcy53YWdvbkNsYXNzICYmIHRoaXMud2Fnb25UeXBlICE9PSAnY2xvc2VkJykgK1xuICAgICAgICArKCEhdGhpcy5vY2N1cGFuY3kgJiYgdGhpcy53YWdvblR5cGUgIT09ICdjbG9zZWQnKSArXG4gICAgICAgICtoYXNCbG9ja2VkUGFzc2FnZUVudHJ5O1xuXG4gICAgICBjb25zdCBzZWN0b3JTdHJpbmcgPSBgJHtpMThuU2VjdG9yW3RoaXMuX2xhbmd1YWdlLmN1cnJlbnRdfSwgJHt0aGlzLnNlY3Rvcn1gO1xuICAgICAgY29uc3QgbGFiZWxTdHJpbmcgPSBgJHtpMThuV2Fnb25MYWJlbE51bWJlclt0aGlzLl9sYW5ndWFnZS5jdXJyZW50XX0sICR7dGhpcy5sYWJlbH1gO1xuXG4gICAgICBjb25zdCB3YWdvbkNsYXNzQ29udGVudCA9IGh0bWxgPHNwYW4gY2xhc3M9XCJzYmItc2NyZWVuLXJlYWRlci1vbmx5XCI+XG4gICAgICAgICAgJHt0aGlzLl9jbGFzc0xhYmVsKCl9XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgICAgJHt0aGlzLndhZ29uQ2xhc3NcbiAgICAgICAgICA/LnNwbGl0KCctJylcbiAgICAgICAgICAubWFwKFxuICAgICAgICAgICAgKHdhZ29uQ2xhc3MpID0+XG4gICAgICAgICAgICAgIGh0bWxgPHNwYW5cbiAgICAgICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwic2JiLXRyYWluLXdhZ29uX19jbGFzcy1lbnRyeSAke3dhZ29uQ2xhc3MgPT09ICcxJyA/ICdmaXJzdCcgOiAnJ31cIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgJHt3YWdvbkNsYXNzfVxuICAgICAgICAgICAgICA8L3NwYW4+YCxcbiAgICAgICAgICApfSBgO1xuXG4gICAgICBjb25zdCBwYXRoID0gdGhpcy5fd2Fnb25TaGFwZSgpO1xuXG4gICAgICBjb25zdCBhdmFpbGFibGVJY29uUm93cyA9IHRoaXMubGFiZWwgPyAzIDogNDtcbiAgICAgIHRoaXMuX2NsaXBTdHlsZVNoZWV0Py5yZXBsYWNlU3luYyhgOmhvc3Qge1xuICAgICAgICAgICAgLS1fc2JiLXRyYWluLXdhZ29uLWNsaXAtc2hhcGU6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2aWV3Qm94PScwIDAgODQgMzYnIGZpbGw9J2JsYWNrJyUzRSUzQ3BhdGggZD0nJHtwYXRofScgLyUzRSUzQy9zdmclM0VcIik7XG4gICAgICAgICAgICAtLV9zYmItdHJhaW4td2Fnb24tY2xpcC1zaGFwZS1jb21wYXJ0bWVudDogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCAke3RoaXMub3JpZW50YXRpb24gPT09ICd2ZXJ0aWNhbCcgPyAzNiA6IDg0fSAke3RoaXMub3JpZW50YXRpb24gPT09ICd2ZXJ0aWNhbCcgPyA4NCA6IDM2fScgZmlsbD0nYmxhY2snJTNFJTNDcGF0aCBkPScke3BhdGh9JyR7dGhpcy5vcmllbnRhdGlvbiA9PT0gJ3ZlcnRpY2FsJyA/IGAgdHJhbnNmb3JtPSdyb3RhdGUoLTkwLCAwLCAwKSBzY2FsZSgtMSwgMSknYCA6ICcnfSAvJTNFJTNDL3N2ZyUzRVwiKTtcbiAgICAgICAgICAgIC0tX3NiYi10cmFpbi13YWdvbi1hdHRyaWJ1dGVzLWljb24tY29sdW1uczogJHtNYXRoLmNlaWwodGhpcy5saXN0Q2hpbGRyZW4ubGVuZ3RoIC8gYXZhaWxhYmxlSWNvblJvd3MpfTtcbiAgICAgICAgICAgIC0tX3NiYi10cmFpbi13YWdvbi1hdHRyaWJ1dGVzLWljb24tcm93czogJHthdmFpbGFibGVJY29uUm93c307XG4gICAgICAgICAgfWApO1xuXG4gICAgICByZXR1cm4gaHRtbGBcbiAgICAgICAgPGRpdiBjbGFzcz1cInNiYi10cmFpbi13YWdvblwiPlxuICAgICAgICAgICR7d2hlbihcbiAgICAgICAgICAgIGxpc3RFbnRyaWVzQ291bnQgPiAxLFxuICAgICAgICAgICAgKCkgPT5cbiAgICAgICAgICAgICAgaHRtbGA8dWwgYXJpYS1sYWJlbD0ke3RoaXMuX3dhZ29uVHlwZUxhYmVsKCl9IGNsYXNzPVwic2JiLXRyYWluLXdhZ29uX19jb21wYXJ0bWVudFwiPlxuICAgICAgICAgICAgICAgICR7dGhpcy5zZWN0b3JcbiAgICAgICAgICAgICAgICAgID8gaHRtbGA8bGkgY2xhc3M9XCJzYmItc2NyZWVuLXJlYWRlci1vbmx5XCI+JHtzZWN0b3JTdHJpbmd9PC9saT5gXG4gICAgICAgICAgICAgICAgICA6IG5vdGhpbmd9XG4gICAgICAgICAgICAgICAgJHt0aGlzLmxhYmVsXG4gICAgICAgICAgICAgICAgICA/IGh0bWxgPGxpIGNsYXNzPVwic2JiLXNjcmVlbi1yZWFkZXItb25seVwiPiR7bGFiZWxTdHJpbmd9PC9saT5gXG4gICAgICAgICAgICAgICAgICA6IG5vdGhpbmd9XG4gICAgICAgICAgICAgICAgJHt0aGlzLndhZ29uQ2xhc3MgJiYgdGhpcy53YWdvblR5cGUgIT09ICdjbG9zZWQnXG4gICAgICAgICAgICAgICAgICA/IGh0bWxgPGxpIGNsYXNzPVwic2JiLXRyYWluLXdhZ29uX19jbGFzc1wiPiR7d2Fnb25DbGFzc0NvbnRlbnR9PC9saT5gXG4gICAgICAgICAgICAgICAgICA6IG5vdGhpbmd9XG4gICAgICAgICAgICAgICAgJHt0aGlzLm9jY3VwYW5jeSAmJiB0aGlzLndhZ29uVHlwZSAhPT0gJ2Nsb3NlZCdcbiAgICAgICAgICAgICAgICAgID8gaHRtbGA8c2JiLXRpbWV0YWJsZS1vY2N1cGFuY3ktaWNvblxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic2JiLXRyYWluLXdhZ29uX19vY2N1cGFuY3lcIlxuICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJsaXN0aXRlbVwiXG4gICAgICAgICAgICAgICAgICAgICAgb2NjdXBhbmN5PSR7dGhpcy5vY2N1cGFuY3l9XG4gICAgICAgICAgICAgICAgICAgID48L3NiYi10aW1ldGFibGUtb2NjdXBhbmN5LWljb24+YFxuICAgICAgICAgICAgICAgICAgOiBub3RoaW5nfVxuICAgICAgICAgICAgICAgICR7aGFzQmxvY2tlZFBhc3NhZ2VFbnRyeVxuICAgICAgICAgICAgICAgICAgPyBodG1sYDxsaSBjbGFzcz1cInNiYi1zY3JlZW4tcmVhZGVyLW9ubHlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAke2kxOG5CbG9ja2VkUGFzc2FnZVtibG9ja2VkUGFzc2FnZV1bdGhpcy5fbGFuZ3VhZ2UuY3VycmVudF19XG4gICAgICAgICAgICAgICAgICAgIDwvbGk+YFxuICAgICAgICAgICAgICAgICAgOiBub3RoaW5nfVxuICAgICAgICAgICAgICA8L3VsPmAsXG4gICAgICAgICAgICAoKSA9PlxuICAgICAgICAgICAgICBodG1sYDxkaXYgY2xhc3M9XCJzYmItdHJhaW4td2Fnb25fX2NvbXBhcnRtZW50XCI+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzYmItc2NyZWVuLXJlYWRlci1vbmx5XCI+XG4gICAgICAgICAgICAgICAgICAke2Ake3RoaXMuX3dhZ29uVHlwZUxhYmVsKCl9JHt0aGlzLnNlY3RvciA/IGAsICR7c2VjdG9yU3RyaW5nfWAgOiAnJ31gfVxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAke3RoaXMubGFiZWxcbiAgICAgICAgICAgICAgICAgID8gaHRtbGA8c3BhbiBjbGFzcz1cInNiYi1zY3JlZW4tcmVhZGVyLW9ubHlcIj4ke2xhYmVsU3RyaW5nfTwvc3Bhbj5gXG4gICAgICAgICAgICAgICAgICA6IG5vdGhpbmd9XG4gICAgICAgICAgICAgICAgJHt0aGlzLndhZ29uQ2xhc3MgJiYgdGhpcy53YWdvblR5cGUgIT09ICdjbG9zZWQnXG4gICAgICAgICAgICAgICAgICA/IGh0bWxgPHNwYW4gY2xhc3M9XCJzYmItdHJhaW4td2Fnb25fX2NsYXNzXCI+JHt3YWdvbkNsYXNzQ29udGVudH08L3NwYW4+YFxuICAgICAgICAgICAgICAgICAgOiBub3RoaW5nfVxuICAgICAgICAgICAgICAgICR7dGhpcy5vY2N1cGFuY3kgJiYgdGhpcy53YWdvblR5cGUgIT09ICdjbG9zZWQnXG4gICAgICAgICAgICAgICAgICA/IGh0bWxgPHNiYi10aW1ldGFibGUtb2NjdXBhbmN5LWljb25cbiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInNiYi10cmFpbi13YWdvbl9fb2NjdXBhbmN5XCJcbiAgICAgICAgICAgICAgICAgICAgICBvY2N1cGFuY3k9JHt0aGlzLm9jY3VwYW5jeX1cbiAgICAgICAgICAgICAgICAgICAgPjwvc2JiLXRpbWV0YWJsZS1vY2N1cGFuY3ktaWNvbj5gXG4gICAgICAgICAgICAgICAgICA6IG5vdGhpbmd9XG4gICAgICAgICAgICAgICAgJHtoYXNCbG9ja2VkUGFzc2FnZUVudHJ5XG4gICAgICAgICAgICAgICAgICA/IGh0bWxgPHNwYW4gY2xhc3M9XCJzYmItc2NyZWVuLXJlYWRlci1vbmx5XCI+XG4gICAgICAgICAgICAgICAgICAgICAgJHtpMThuQmxvY2tlZFBhc3NhZ2VbYmxvY2tlZFBhc3NhZ2VdW3RoaXMuX2xhbmd1YWdlLmN1cnJlbnRdfVxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+YFxuICAgICAgICAgICAgICAgICAgOiBub3RoaW5nfVxuICAgICAgICAgICAgICA8L2Rpdj4gYCxcbiAgICAgICAgICApfVxuICAgICAgICAgICR7d2Fnb25UeXBlVG9JY29uTWFwW3RoaXMud2Fnb25UeXBlXVxuICAgICAgICAgICAgPyBodG1sYDxzYmItaWNvblxuICAgICAgICAgICAgICAgIG5hbWU9JHt3YWdvblR5cGVUb0ljb25NYXBbdGhpcy53YWdvblR5cGVdIX1cbiAgICAgICAgICAgICAgICBjbGFzcz1cInNiYi10cmFpbi13YWdvbl9fbWFpbi1pY29uXCJcbiAgICAgICAgICAgICAgPjwvc2JiLWljb24+YFxuICAgICAgICAgICAgOiBub3RoaW5nfVxuICAgICAgICAgIDxzdmcgY2xhc3M9XCJzYmItdHJhaW4td2Fnb25fX3NoYXBlXCIgdmlld0JveD1cIjAgMCA4NCAzNlwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPlxuICAgICAgICAgICAgPHBhdGggZD0ke3BhdGh9PjwvcGF0aD5cbiAgICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICAgIGNsYXNzPVwic2JiLXRyYWluLXdhZ29uX19zaGFwZS1jbG9zZWRcIlxuICAgICAgICAgICAgICBkPSR7dGhpcy5fdmlldyA9PT0gJ3RvcCcgPyAnTTgxIDNMMyAzNCcgOiAnTTgxIDRMNCAzMid9XG4gICAgICAgICAgICA+PC9wYXRoPlxuICAgICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgICAgY2xhc3M9XCJzYmItdHJhaW4td2Fnb25fX3NoYXBlLWNsb3NlZFwiXG4gICAgICAgICAgICAgIGQ9JHt0aGlzLl92aWV3ID09PSAndG9wJyA/ICdNODEgMzRMMyAzJyA6ICdNODEgMzJMNCA0J31cbiAgICAgICAgICAgID48L3BhdGg+XG4gICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgJHt0aGlzLmFkZGl0aW9uYWxBY2Nlc3NpYmlsaXR5VGV4dFxuICAgICAgICAgICAgPyBodG1sYDxzcGFuIGNsYXNzPVwic2JiLXNjcmVlbi1yZWFkZXItb25seVwiXG4gICAgICAgICAgICAgICAgPiwgJHt0aGlzLmFkZGl0aW9uYWxBY2Nlc3NpYmlsaXR5VGV4dH08L3NwYW5cbiAgICAgICAgICAgICAgPmBcbiAgICAgICAgICAgIDogbm90aGluZ31cbiAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgY2xhc3M9XCJzYmItdHJhaW4td2Fnb25fX2luZm9ybWF0aW9uLXdyYXBwZXJcIlxuICAgICAgICAgICAgP2hpZGRlbj0keyF0aGlzLmxpc3RDaGlsZHJlbi5sZW5ndGggJiYgIXRoaXMubGFiZWx9XG4gICAgICAgICAgPlxuICAgICAgICAgICAgJHt0aGlzLmxhYmVsXG4gICAgICAgICAgICAgID8gaHRtbGA8c3BhbiBhcmlhLWhpZGRlbj1cInRydWVcIiBjbGFzcz1cInNiYi10cmFpbi13YWdvbl9fbGFiZWxcIj4ke3RoaXMubGFiZWx9PC9zcGFuPmBcbiAgICAgICAgICAgICAgOiBub3RoaW5nfVxuICAgICAgICAgICAgJHt0aGlzLmxhYmVsICYmIHRoaXMubGlzdENoaWxkcmVuLmxlbmd0aFxuICAgICAgICAgICAgICA/IGh0bWxgPHNiYi1kaXZpZGVyXG4gICAgICAgICAgICAgICAgICBvcmllbnRhdGlvbj0ke3RoaXMub3JpZW50YXRpb24gPT09ICd2ZXJ0aWNhbCcgPyAnaG9yaXpvbnRhbCcgOiAndmVydGljYWwnfVxuICAgICAgICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwic2JiLXRyYWluLXdhZ29uX19sYWJlbC1kaXZpZGVyXCJcbiAgICAgICAgICAgICAgICA+PC9zYmItZGl2aWRlcj5gXG4gICAgICAgICAgICAgIDogbm90aGluZ31cbiAgICAgICAgICAgICR7dGhpcy5yZW5kZXJMaXN0KHtcbiAgICAgICAgICAgICAgY2xhc3M6ICdzYmItdHJhaW4td2Fnb25fX2F0dHJpYnV0ZS1pY29uLWxpc3QnLFxuICAgICAgICAgICAgICBhcmlhTGFiZWw6IGkxOG5BZGRpdGlvbmFsV2Fnb25JbmZvcm1hdGlvbkhlYWRpbmdbdGhpcy5fbGFuZ3VhZ2UuY3VycmVudF0sXG4gICAgICAgICAgICB9KX1cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgYDtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gU2JiVHJhaW5XYWdvbk1peGluRWxlbWVudCBhcyB1bmtub3duIGFzIEFic3RyYWN0Q29uc3RydWN0b3I8U2JiVHJhaW5XYWdvbk1peGluVHlwZT4gJiBUO1xufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7QUNxQ0EsSUFBTSxxQkFBbUY7Q0FDdkYsV0FBVztDQUNYLFVBQVU7Q0FDVixZQUFZO0NBQ2I7QUFFRCxJQUFNLGFBR0Y7Q0FDRixPQUFPO0VBQ0wsTUFBTTtFQUNOLEtBQUs7RUFDTjtDQUNELFlBQVk7RUFDVixNQUFNO0VBQ04sS0FBSztFQUNOO0NBQ0Qsa0JB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