@sbb-esta/lyne-elements-dev 5.0.0-next.3-dev.1779265349 → 5.0.0-next.3-dev.1779268556

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 (651) hide show
  1. package/_index.scss +6 -2
  2. package/autocomplete/autocomplete-base-element.js +1 -1
  3. package/autocomplete/autocomplete.component.js +1 -1
  4. package/{autocomplete-base-element-6leI6UF4.js → autocomplete-base-element-jaXVQcA7.js} +11 -9
  5. package/autocomplete.js +1 -1
  6. package/autocomplete.pure.js +1 -1
  7. package/breadcrumb/breadcrumb-group/breadcrumb-group.component.js +1 -1
  8. package/{breadcrumb-group.component-XPdnV6-a.js → breadcrumb-group.component-a49dItu9.js} +23 -19
  9. package/breadcrumb.js +1 -1
  10. package/breadcrumb.pure.js +1 -1
  11. package/button/mini-button-group/mini-button-group.component.js +1 -1
  12. package/button.js +1 -1
  13. package/button.pure.js +1 -1
  14. package/calendar/calendar/calendar.component.js +1 -1
  15. package/{calendar.component-CiT0mE7S.js → calendar.component-DKgkIocz.js} +37 -33
  16. package/calendar.js +1 -1
  17. package/calendar.pure.js +1 -1
  18. package/container/sticky-bar/sticky-bar.component.js +1 -1
  19. package/container.js +1 -1
  20. package/container.pure.js +1 -1
  21. package/core/mixins/named-slot-list-mixin.js +14 -14
  22. package/core/styles/_index.scss +1 -12
  23. package/core/styles/_theme.scss +16 -0
  24. package/core/styles/core/functions.scss +0 -8
  25. package/core/styles/{a11y.scss → features/a11y.scss} +2 -2
  26. package/core/styles/{animation.scss → features/animation.scss} +1 -1
  27. package/core/styles/features/color-scheme.scss +11 -0
  28. package/core/styles/{core.scss → features/core.scss} +138 -171
  29. package/core/styles/{image.scss → features/image.scss} +29 -7
  30. package/core/styles/{layout.private.scss → features/layout.private.scss} +5 -4
  31. package/core/styles/{layout.scss → features/layout.scss} +1 -1
  32. package/core/styles/{lists.scss → features/lists.scss} +1 -1
  33. package/core/styles/{scrollbar.scss → features/scrollbar.scss} +1 -1
  34. package/core/styles/features/typography.private.scss +9 -0
  35. package/core/styles/{typography.scss → features/typography.scss} +2 -2
  36. package/core/styles/internals/button-reset.scss +5 -0
  37. package/core/styles/{host-scrollbar.scss → internals/host-scrollbar.scss} +1 -1
  38. package/core/styles/internals/list-reset.scss +6 -0
  39. package/core/styles/internals/popover-reset.scss +6 -0
  40. package/core/styles/{screen-reader-only.scss → internals/screen-reader-only.scss} +1 -1
  41. package/core/styles/mixins/{a11y.scss → _a11y.scss} +0 -21
  42. package/core/styles/mixins/{helpers.scss → _helpers.scss} +3 -14
  43. package/core/styles/mixins/{lists.scss → _lists.scss} +8 -12
  44. package/core/styles/mixins/{pearl-chain-bullet.scss → _pearl-chain-bullet.scss} +5 -5
  45. package/core/styles/mixins/_reset.scss +38 -0
  46. package/core/styles/mixins/{typo.scss → _typo.scss} +23 -75
  47. package/core/styles/styles.js +2 -2
  48. package/core.js +2 -2
  49. package/custom-elements.json +68 -22
  50. package/development/autocomplete/autocomplete-base-element.d.ts.map +1 -1
  51. package/development/autocomplete/autocomplete-base-element.js +1 -1
  52. package/development/autocomplete/autocomplete.component.js +1 -1
  53. package/development/autocomplete-base-element-JxM7QbC4.js +697 -0
  54. package/development/autocomplete.js +1 -1
  55. package/development/autocomplete.pure.js +1 -1
  56. package/development/block-link-common-DNvRfeay.js +1 -1
  57. package/development/breadcrumb/breadcrumb-group/breadcrumb-group.component.d.ts.map +1 -1
  58. package/development/breadcrumb/breadcrumb-group/breadcrumb-group.component.js +1 -1
  59. package/development/breadcrumb-group.component-DvY1hq51.js +197 -0
  60. package/development/breadcrumb.component-D6Cd2FPo.js +1 -1
  61. package/development/breadcrumb.js +1 -1
  62. package/development/breadcrumb.pure.js +1 -1
  63. package/development/button/mini-button-group/mini-button-group.component.js +1 -1
  64. package/development/button-common-C-A7Dulr.js +1 -1
  65. package/development/button.js +1 -1
  66. package/development/button.pure.js +1 -1
  67. package/development/calendar/calendar/calendar.component.d.ts.map +1 -1
  68. package/development/calendar/calendar/calendar.component.js +1 -1
  69. package/development/calendar-cell-base-element-mWRSDeWc.js +1 -1
  70. package/development/calendar.component-CgEXjBeQ.js +1473 -0
  71. package/development/calendar.js +1 -1
  72. package/development/calendar.pure.js +1 -1
  73. package/development/card.component-CL2gHoyP.js +1 -1
  74. package/development/chip-label.component-DHHNtvTt.js +1 -1
  75. package/development/{compact-paginator.component-BgkpxaaD.js → compact-paginator.component-m8MASSB7.js} +1 -1
  76. package/development/container/sticky-bar/sticky-bar.component.js +1 -1
  77. package/development/container.js +1 -1
  78. package/development/container.pure.js +1 -1
  79. package/development/core/mixins/named-slot-list-mixin.js +3 -3
  80. package/development/core/styles/styles.d.ts +3 -1
  81. package/development/core/styles/styles.d.ts.map +1 -1
  82. package/development/core/styles/styles.js +2 -2
  83. package/development/core.js +2 -2
  84. package/development/date-input.component-HxRyCudr.js +1 -1
  85. package/development/dialog-actions.component-e0ZTTUin.js +1 -1
  86. package/development/dialog.component-D8B2dVck.js +1 -1
  87. package/development/error.component-WCkiwM7_.js +1 -1
  88. package/development/expansion-panel-header.component-gg5A_7Pz.js +1 -1
  89. package/development/expansion-panel.component-DcFrWkIt.js +1 -1
  90. package/development/file-selector/common/file-selector-common.js +1 -1
  91. package/development/file-selector/file-selector-dropzone/file-selector-dropzone.component.js +1 -1
  92. package/development/file-selector-common-Dd0S0qE3.js +421 -0
  93. package/development/{file-selector-dropzone.component-B84OL4Xd.js → file-selector-dropzone.component-DWLdqMmI.js} +2 -2
  94. package/development/file-selector.js +2 -2
  95. package/development/file-selector.pure.js +2 -2
  96. package/development/flip-card/flip-card/flip-card.component.d.ts.map +1 -1
  97. package/development/flip-card/flip-card/flip-card.component.js +1 -1
  98. package/development/flip-card.component-MmiS-x-W.js +189 -0
  99. package/development/flip-card.js +1 -1
  100. package/development/flip-card.pure.js +1 -1
  101. package/development/footer.component-K2bWizjw.js +1 -1
  102. package/development/form-field.component-CPWBCHer.js +1 -1
  103. package/development/header/common/header-action-common.js +1 -1
  104. package/development/header-action-common-BYB-HYtn.js +86 -0
  105. package/development/header.component-C4e7CNql.js +1 -1
  106. package/development/header.js +1 -1
  107. package/development/header.pure.js +1 -1
  108. package/development/inline-link-common-BV6oAtAA.js +18 -0
  109. package/development/link/common/inline-link-common.js +1 -1
  110. package/development/link-common-2RGn9Qz_.js +1 -1
  111. package/development/link-list/link-list.component.js +1 -1
  112. package/development/link-list-anchor/link-list-anchor.component.js +1 -1
  113. package/development/{link-list-anchor.component-Csb-FOQL.js → link-list-anchor.component-BMtCbCRD.js} +2 -2
  114. package/development/link-list-anchor.js +1 -1
  115. package/development/link-list-anchor.pure.js +1 -1
  116. package/development/link-list.component-CLxhjWR7.js +97 -0
  117. package/development/link-list.js +1 -1
  118. package/development/link-list.pure.js +1 -1
  119. package/development/link.js +1 -1
  120. package/development/link.pure.js +1 -1
  121. package/development/loading-indicator-circle.component-Cfjw5vyz.js +1 -1
  122. package/development/logo.component-DYKgAgq0.js +1 -1
  123. package/development/menu/common/menu-action-common.js +1 -1
  124. package/development/menu/menu/menu.component.d.ts.map +1 -1
  125. package/development/menu/menu/menu.component.js +1 -1
  126. package/development/menu-action-common-DL4t4_-J.js +32 -0
  127. package/development/menu.component-3qEIFutc.js +369 -0
  128. package/development/menu.js +2 -2
  129. package/development/menu.pure.js +2 -2
  130. package/development/message/message.component.js +1 -1
  131. package/development/{message.component-CdO5GyE2.js → message.component-BJ-84a0B.js} +2 -2
  132. package/development/message.js +1 -1
  133. package/development/message.pure.js +1 -1
  134. package/development/{mini-button-group.component-VYKZf1rq.js → mini-button-group.component-C88pIaaL.js} +2 -2
  135. package/development/mini-button-link.component-kpRsi8I2.js +1 -1
  136. package/development/navigation/navigation/navigation.component.d.ts.map +1 -1
  137. package/development/navigation/navigation/navigation.component.js +1 -1
  138. package/development/navigation/navigation-list/navigation-list.component.js +1 -1
  139. package/development/navigation/navigation-marker/navigation-marker.component.js +1 -1
  140. package/development/navigation-action-common-wrzPCkMT.js +1 -1
  141. package/development/navigation-list.component-CU-SGC8c.js +86 -0
  142. package/development/navigation-marker.component-CTk9U0kA.js +120 -0
  143. package/development/navigation-section.component-iaypc6yQ.js +1 -1
  144. package/development/navigation.component-Bu1wVUNx.js +319 -0
  145. package/development/navigation.js +3 -3
  146. package/development/navigation.pure.js +3 -3
  147. package/development/option/option/option.component.js +1 -1
  148. package/development/option/option-styles.d.ts +2 -0
  149. package/development/option/option-styles.d.ts.map +1 -0
  150. package/development/option/option-styles.js +2 -0
  151. package/development/option-styles-IEQgVpCe.js +8 -0
  152. package/development/option.component-BrTjDq6X.js +131 -0
  153. package/development/option.js +4 -3
  154. package/development/option.pure.d.ts +1 -0
  155. package/development/option.pure.d.ts.map +1 -1
  156. package/development/option.pure.js +3 -2
  157. package/development/overlay/overlay-base-element.d.ts.map +1 -1
  158. package/development/overlay/overlay-base-element.js +3 -3
  159. package/development/overlay/overlay.component.js +1 -1
  160. package/development/{overlay.component-YSCuGeme.js → overlay.component-BH-aue7w.js} +1 -1
  161. package/development/overlay.js +1 -1
  162. package/development/overlay.pure.js +1 -1
  163. package/development/paginator/common/paginator-common.js +1 -1
  164. package/development/paginator/compact-paginator/compact-paginator.component.js +1 -1
  165. package/development/paginator/paginator/paginator.component.d.ts.map +1 -1
  166. package/development/paginator/paginator/paginator.component.js +1 -1
  167. package/development/{paginator-common-B7iba0wQ.js → paginator-common-CRchtcXc.js} +1 -1
  168. package/development/paginator.component-B8y5tVCL.js +265 -0
  169. package/development/paginator.js +3 -3
  170. package/development/paginator.pure.js +3 -3
  171. package/development/panel-mixin-DPybe45K.js +1 -1
  172. package/development/popover/popover.component.d.ts.map +1 -1
  173. package/development/popover/popover.component.js +1 -1
  174. package/development/popover.component-Ds4fNNsq.js +578 -0
  175. package/development/popover.js +1 -1
  176. package/development/popover.pure.js +1 -1
  177. package/development/radio-button/common/radio-button-common.js +1 -1
  178. package/development/radio-button/radio-button.component.js +1 -1
  179. package/development/radio-button-common-Ckz2nMS7.js +129 -0
  180. package/development/{radio-button.component-DnErH-1J.js → radio-button.component-qsLFvciH.js} +2 -2
  181. package/development/radio-button.js +2 -2
  182. package/development/radio-button.pure.js +2 -2
  183. package/development/select/select.component.d.ts.map +1 -1
  184. package/development/select/select.component.js +1 -1
  185. package/development/select.component-BE7ZMrAc.js +809 -0
  186. package/development/select.js +1 -1
  187. package/development/select.pure.js +1 -1
  188. package/development/selection-action-panel/selection-action-panel.component.js +1 -1
  189. package/development/{selection-action-panel.component-BT0HmTja.js → selection-action-panel.component-C3UlmLkJ.js} +1 -1
  190. package/development/selection-action-panel.js +1 -1
  191. package/development/selection-action-panel.pure.js +1 -1
  192. package/development/selection-expansion-panel/selection-expansion-panel.component.js +1 -1
  193. package/development/selection-expansion-panel.component-4Ron8XNy.js +186 -0
  194. package/development/selection-expansion-panel.js +1 -1
  195. package/development/selection-expansion-panel.pure.js +1 -1
  196. package/development/sidebar/common/styles.js +1 -1
  197. package/development/sidebar/sidebar/sidebar.component.js +1 -1
  198. package/development/sidebar/sidebar-close-button/sidebar-close-button.component.js +1 -1
  199. package/development/sidebar/sidebar-container/sidebar-container.component.js +1 -1
  200. package/development/sidebar/sidebar-content/sidebar-content.component.js +1 -1
  201. package/development/sidebar/sidebar-title/sidebar-title.component.js +1 -1
  202. package/development/{sidebar-close-button.component-CXnf-P5H.js → sidebar-close-button.component-ByQtC65O.js} +1 -1
  203. package/development/sidebar-container.component-BmavabUg.js +100 -0
  204. package/development/{sidebar-content.component-DbcREBUa.js → sidebar-content.component-DcsIIWpz.js} +1 -1
  205. package/development/{sidebar-title.component-BW04otyD.js → sidebar-title.component-DgJdkoiE.js} +1 -1
  206. package/development/{sidebar.component-mfXnE6WQ.js → sidebar.component-BszwyJQa.js} +1 -1
  207. package/development/sidebar.js +5 -5
  208. package/development/sidebar.pure.js +5 -5
  209. package/development/signet/signet.component.js +1 -1
  210. package/development/{signet.component-k14RJ8FA.js → signet.component-DXLTVjJS.js} +1 -1
  211. package/development/signet.js +1 -1
  212. package/development/signet.pure.js +1 -1
  213. package/development/skiplink-list/skiplink-list.component.js +1 -1
  214. package/development/skiplink-list.component-BC8rpyf9.js +129 -0
  215. package/development/skiplink-list.js +1 -1
  216. package/development/skiplink-list.pure.js +1 -1
  217. package/development/slider/slider.component.js +1 -1
  218. package/development/slider.component-BLptxiZ4.js +346 -0
  219. package/development/slider.js +1 -1
  220. package/development/slider.pure.js +1 -1
  221. package/development/status/status.component.js +1 -1
  222. package/development/{status.component-B9en2l26.js → status.component-thSGiOrl.js} +1 -1
  223. package/development/status.js +1 -1
  224. package/development/status.pure.js +1 -1
  225. package/development/step-label.component-CpdXVv32.js +127 -0
  226. package/development/{step.component-B_YHm1tz.js → step.component-DpSJEkrK.js} +1 -1
  227. package/development/stepper/step/step.component.js +1 -1
  228. package/development/stepper/step-label/step-label.component.js +1 -1
  229. package/development/stepper/stepper/stepper.component.js +1 -1
  230. package/development/stepper.component-Bv6LCFU0.js +443 -0
  231. package/development/stepper.js +3 -3
  232. package/development/stepper.pure.js +3 -3
  233. package/development/{sticky-bar.component-BJLtRvcd.js → sticky-bar.component-DZpy1gBU.js} +2 -2
  234. package/development/{styles-WppEBrlW.js → styles-BmvNZZle.js} +1 -1
  235. package/development/styles-D8h0fqb5.js +30 -0
  236. package/development/{tab-group.component-CGMBihsQ.js → tab-group.component-DhcfjVxe.js} +1 -1
  237. package/development/{tab-label.component-CQOLO2t7.js → tab-label.component-B7YEhR1C.js} +1 -1
  238. package/development/tab-nav-bar.component-DrZ1U7lM.js +109 -0
  239. package/development/{tab.component-BVhYPy5Y.js → tab.component-COn1G0XA.js} +1 -1
  240. package/development/table/table-wrapper/table-wrapper.component.js +1 -1
  241. package/development/{table-wrapper.component-By59zmcU.js → table-wrapper.component-9Lst6dT2.js} +1 -1
  242. package/development/table.js +1 -1
  243. package/development/table.pure.js +1 -1
  244. package/development/tabs/common/styles.js +1 -1
  245. package/development/tabs/tab/tab.component.js +1 -1
  246. package/development/tabs/tab-group/tab-group.component.js +1 -1
  247. package/development/tabs/tab-label/tab-label.component.js +1 -1
  248. package/development/tabs/tab-nav-bar/tab-nav-bar.component.js +1 -1
  249. package/development/tabs.js +5 -5
  250. package/development/tabs.pure.js +5 -5
  251. package/development/tag/tag/tag.component.js +1 -1
  252. package/development/tag/tag-group/tag-group.component.js +1 -1
  253. package/development/tag-group.component-OQ3sxhZI.js +194 -0
  254. package/development/tag.component-DWOPDWwe.js +238 -0
  255. package/development/tag.js +2 -2
  256. package/development/tag.pure.js +2 -2
  257. package/development/teaser/teaser.component.js +1 -1
  258. package/development/teaser-hero/teaser-hero.component.js +1 -1
  259. package/development/{teaser-hero.component-BHMcPmdh.js → teaser-hero.component-Cp42iJGt.js} +1 -1
  260. package/development/teaser-hero.js +1 -1
  261. package/development/teaser-hero.pure.js +1 -1
  262. package/development/teaser-panel/teaser-panel.component.js +1 -1
  263. package/development/{teaser-panel.component-BRfbvmkb.js → teaser-panel.component-ptDalUEe.js} +1 -1
  264. package/development/teaser-panel.js +1 -1
  265. package/development/teaser-panel.pure.js +1 -1
  266. package/development/teaser-product/common/teaser-product-common.js +1 -1
  267. package/development/teaser-product/teaser-product/teaser-product.component.js +1 -1
  268. package/development/{teaser-product-common-DOyLdTks.js → teaser-product-common-DxBw-__I.js} +1 -1
  269. package/development/teaser-product.component-CPj4vJ2V.js +37 -0
  270. package/development/teaser-product.js +2 -2
  271. package/development/teaser-product.pure.js +2 -2
  272. package/development/teaser.component-Dgrc2jh8.js +116 -0
  273. package/development/teaser.js +1 -1
  274. package/development/teaser.pure.js +1 -1
  275. package/development/time-input/time-input.component.js +1 -1
  276. package/development/time-input.component-BFjDAfbv.js +187 -0
  277. package/development/time-input.js +1 -1
  278. package/development/time-input.pure.js +1 -1
  279. package/development/timetable-form/timetable-form/timetable-form.component.js +1 -1
  280. package/development/timetable-form/timetable-form-details/timetable-form-details.component.js +1 -1
  281. package/development/timetable-form/timetable-form-field/timetable-form-field.component.js +1 -1
  282. package/development/timetable-form/timetable-form-swap-button/timetable-form-swap-button.component.js +1 -1
  283. package/development/{timetable-form-details.component-BeuAZUQe.js → timetable-form-details.component-BFmuJ8-6.js} +1 -1
  284. package/development/{timetable-form-field.component-DC2z1Cwf.js → timetable-form-field.component-DD04XyA0.js} +1 -1
  285. package/development/{timetable-form-swap-button.component-CnbVc8Ok.js → timetable-form-swap-button.component-DphGegO6.js} +1 -1
  286. package/development/{timetable-form.component-C8DfPePn.js → timetable-form.component-EIr4B4mA.js} +1 -1
  287. package/development/timetable-form.js +4 -4
  288. package/development/timetable-form.pure.js +4 -4
  289. package/development/timetable-occupancy/timetable-occupancy.component.d.ts.map +1 -1
  290. package/development/timetable-occupancy/timetable-occupancy.component.js +1 -1
  291. package/development/timetable-occupancy-icon/timetable-occupancy-icon.component.js +1 -1
  292. package/development/timetable-occupancy-icon.component-vsXoAiKz.js +95 -0
  293. package/development/timetable-occupancy-icon.js +1 -1
  294. package/development/timetable-occupancy-icon.pure.js +1 -1
  295. package/development/timetable-occupancy.component-B0zY0RnI.js +126 -0
  296. package/development/timetable-occupancy.js +1 -1
  297. package/development/timetable-occupancy.pure.js +1 -1
  298. package/development/title/title-base.js +1 -1
  299. package/development/title/title.component.d.ts +0 -2
  300. package/development/title/title.component.d.ts.map +1 -1
  301. package/development/title/title.component.js +1 -1
  302. package/development/title-base-CPAVrsQ9.js +102 -0
  303. package/development/title.component-DCg9U2CK.js +69 -0
  304. package/development/title.js +2 -2
  305. package/development/title.pure.js +2 -2
  306. package/development/toast/toast.component.d.ts.map +1 -1
  307. package/development/toast/toast.component.js +1 -1
  308. package/development/{toast.component-DonS3uQm.js → toast.component-TvSfu5nl.js} +3 -3
  309. package/development/toast.js +1 -1
  310. package/development/toast.pure.js +1 -1
  311. package/development/toggle/toggle/toggle.component.js +1 -1
  312. package/development/toggle/toggle-option/toggle-option.component.js +1 -1
  313. package/development/toggle-check/toggle-check.component.js +1 -1
  314. package/development/{toggle-check.component-BIV7jFIc.js → toggle-check.component-CbGa5-8I.js} +1 -1
  315. package/development/toggle-check.js +1 -1
  316. package/development/toggle-check.pure.js +1 -1
  317. package/development/{toggle-option.component-DRxwLSKU.js → toggle-option.component-BxGnhJFH.js} +1 -1
  318. package/development/toggle.component-Q68IDQWX.js +243 -0
  319. package/development/toggle.js +2 -2
  320. package/development/toggle.pure.js +2 -2
  321. package/development/tooltip/tooltip.component.d.ts.map +1 -1
  322. package/development/tooltip/tooltip.component.js +1 -1
  323. package/development/tooltip.component-Baoh6M8V.js +369 -0
  324. package/development/tooltip.js +1 -1
  325. package/development/tooltip.pure.js +1 -1
  326. package/development/train/train/train.component.js +1 -1
  327. package/development/train/train-blocked-passage/train-blocked-passage.component.js +1 -1
  328. package/development/train/train-formation/train-formation.component.js +1 -1
  329. package/development/train/train-wagon-common.js +1 -1
  330. package/development/{train-blocked-passage.component-Cxd7dBDC.js → train-blocked-passage.component-C7ve-a1E.js} +1 -1
  331. package/development/{train-formation.component-BEg6OPib.js → train-formation.component-DQ_hLKNv.js} +2 -2
  332. package/development/train-wagon-common-CdckItEt.js +441 -0
  333. package/development/train.component-Bi74L6C7.js +239 -0
  334. package/development/train.js +4 -4
  335. package/development/train.pure.js +4 -4
  336. package/development/visual-checkbox/visual-checkbox.component.js +1 -1
  337. package/development/{visual-checkbox.component-Dm8DNhH2.js → visual-checkbox.component-B4_iHcsX.js} +1 -1
  338. package/development/visual-checkbox.js +1 -1
  339. package/development/visual-checkbox.pure.js +1 -1
  340. package/file-selector/common/file-selector-common.js +1 -1
  341. package/file-selector/file-selector-dropzone/file-selector-dropzone.component.js +1 -1
  342. package/{file-selector-common-VNwWFEmM.js → file-selector-common-BNGnjK__.js} +1 -1
  343. package/{file-selector-dropzone.component-CGo6odhC.js → file-selector-dropzone.component-sE_fofSq.js} +1 -1
  344. package/file-selector.js +2 -2
  345. package/file-selector.pure.js +2 -2
  346. package/flip-card/flip-card/flip-card.component.js +1 -1
  347. package/{flip-card.component-CZ0v44Ym.js → flip-card.component-ZsA_kDPS.js} +22 -18
  348. package/flip-card.js +1 -1
  349. package/flip-card.pure.js +1 -1
  350. package/header/common/header-action-common.js +1 -1
  351. package/header-action-common-B-eRBjSz.js +64 -0
  352. package/header.js +1 -1
  353. package/header.pure.js +1 -1
  354. package/inline-link-common-O650N_pm.js +13 -0
  355. package/lean-off-brand-theme.css +415 -503
  356. package/lean-safety-theme.css +415 -503
  357. package/lean-theme.css +415 -503
  358. package/link/common/inline-link-common.js +1 -1
  359. package/link-list/link-list.component.js +1 -1
  360. package/link-list-anchor/link-list-anchor.component.js +1 -1
  361. package/{link-list-anchor.component-DG_HCtHH.js → link-list-anchor.component-Bjz_EKvE.js} +1 -1
  362. package/link-list-anchor.js +1 -1
  363. package/link-list-anchor.pure.js +1 -1
  364. package/{link-list.component-BNVd0a8U.js → link-list.component-Dg-7TBPC.js} +1 -1
  365. package/link-list.js +1 -1
  366. package/link-list.pure.js +1 -1
  367. package/link.js +1 -1
  368. package/link.pure.js +1 -1
  369. package/menu/common/menu-action-common.js +1 -1
  370. package/menu/menu/menu.component.js +1 -1
  371. package/{menu-action-common-Wy36tk18.js → menu-action-common-DakEXPg7.js} +1 -1
  372. package/{menu.component-DrrKSRmJ.js → menu.component-CqXsI5Cg.js} +25 -21
  373. package/menu.js +2 -2
  374. package/menu.pure.js +2 -2
  375. package/message/message.component.js +1 -1
  376. package/{message.component-CdfsCpnE.js → message.component-CORYX4KP.js} +1 -1
  377. package/message.js +1 -1
  378. package/message.pure.js +1 -1
  379. package/{mini-button-group.component-DQBU0BDm.js → mini-button-group.component-DWayyUpK.js} +1 -1
  380. package/navigation/navigation/navigation.component.js +1 -1
  381. package/navigation/navigation-list/navigation-list.component.js +1 -1
  382. package/navigation/navigation-marker/navigation-marker.component.js +1 -1
  383. package/{navigation-list.component-Cezo1tC-.js → navigation-list.component-C5y3ohH0.js} +1 -1
  384. package/{navigation-marker.component-CNsMaqpH.js → navigation-marker.component-VbvKu1TR.js} +1 -1
  385. package/{navigation.component-DLgmWh_c.js → navigation.component-DKJujMqj.js} +23 -19
  386. package/navigation.js +3 -3
  387. package/navigation.pure.js +3 -3
  388. package/off-brand-theme.css +415 -503
  389. package/option/option/option.component.js +1 -1
  390. package/option/option-styles.js +2 -0
  391. package/option-styles-DcD5grSB.js +6 -0
  392. package/option.js +5 -4
  393. package/option.pure.js +4 -3
  394. package/overlay/overlay-base-element.js +21 -21
  395. package/overlay/overlay.component.js +1 -1
  396. package/overlay.js +1 -1
  397. package/overlay.pure.js +1 -1
  398. package/package.json +5 -49
  399. package/paginator/common/paginator-common.js +1 -1
  400. package/paginator/compact-paginator/compact-paginator.component.js +1 -1
  401. package/paginator/paginator/paginator.component.js +1 -1
  402. package/paginator.component-Dk1xDHgW.js +212 -0
  403. package/paginator.js +3 -3
  404. package/paginator.pure.js +3 -3
  405. package/popover/popover.component.js +1 -1
  406. package/{popover.component-Dm_86bPY.js → popover.component-Bm-bx-Hs.js} +32 -32
  407. package/popover.js +1 -1
  408. package/popover.pure.js +1 -1
  409. package/radio-button/common/radio-button-common.js +1 -1
  410. package/radio-button/radio-button.component.js +1 -1
  411. package/{radio-button.component-CZ273yAb.js → radio-button.component-CGeTCfMq.js} +1 -1
  412. package/radio-button.js +2 -2
  413. package/radio-button.pure.js +2 -2
  414. package/safety-theme.css +415 -503
  415. package/select/select.component.js +1 -1
  416. package/{select.component-CLPLpFDz.js → select.component-UcWSndDu.js} +41 -39
  417. package/select.js +1 -1
  418. package/select.pure.js +1 -1
  419. package/selection-action-panel/selection-action-panel.component.js +1 -1
  420. package/selection-action-panel.js +1 -1
  421. package/selection-action-panel.pure.js +1 -1
  422. package/selection-expansion-panel/selection-expansion-panel.component.js +1 -1
  423. package/selection-expansion-panel.js +1 -1
  424. package/selection-expansion-panel.pure.js +1 -1
  425. package/sidebar/sidebar/sidebar.component.js +1 -1
  426. package/sidebar/sidebar-close-button/sidebar-close-button.component.js +1 -1
  427. package/sidebar/sidebar-container/sidebar-container.component.js +1 -1
  428. package/sidebar/sidebar-content/sidebar-content.component.js +1 -1
  429. package/sidebar/sidebar-title/sidebar-title.component.js +1 -1
  430. package/sidebar.js +5 -5
  431. package/sidebar.pure.js +5 -5
  432. package/signet/signet.component.js +1 -1
  433. package/signet.js +1 -1
  434. package/signet.pure.js +1 -1
  435. package/skiplink-list/skiplink-list.component.js +1 -1
  436. package/{skiplink-list.component-BXaqYpsI.js → skiplink-list.component-ClGb1J_H.js} +1 -1
  437. package/skiplink-list.js +1 -1
  438. package/skiplink-list.pure.js +1 -1
  439. package/slider/slider.component.js +1 -1
  440. package/slider.js +1 -1
  441. package/slider.pure.js +1 -1
  442. package/standard-theme.css +415 -503
  443. package/status/status.component.js +1 -1
  444. package/status.js +1 -1
  445. package/status.pure.js +1 -1
  446. package/stepper/step/step.component.js +1 -1
  447. package/stepper/step-label/step-label.component.js +1 -1
  448. package/stepper/stepper/stepper.component.js +1 -1
  449. package/stepper.js +3 -3
  450. package/stepper.pure.js +3 -3
  451. package/{sticky-bar.component-dmlGAZLW.js → sticky-bar.component-DtXeRUqi.js} +1 -1
  452. package/styles-DV41ClRb.js +5 -0
  453. package/{tab-nav-bar.component-FT2W0urU.js → tab-nav-bar.component-CRC6xnaX.js} +1 -1
  454. package/table/table-wrapper/table-wrapper.component.js +1 -1
  455. package/table.js +1 -1
  456. package/table.pure.js +1 -1
  457. package/tabs/common/styles.js +1 -1
  458. package/tabs/tab/tab.component.js +1 -1
  459. package/tabs/tab-group/tab-group.component.js +1 -1
  460. package/tabs/tab-label/tab-label.component.js +1 -1
  461. package/tabs/tab-nav-bar/tab-nav-bar.component.js +1 -1
  462. package/tabs.js +5 -5
  463. package/tabs.pure.js +5 -5
  464. package/tag/tag/tag.component.js +1 -1
  465. package/tag/tag-group/tag-group.component.js +1 -1
  466. package/{tag-group.component-9UfHHJ79.js → tag-group.component-wnzXwLPf.js} +1 -1
  467. package/tag.js +2 -2
  468. package/tag.pure.js +2 -2
  469. package/teaser/teaser.component.js +1 -1
  470. package/teaser-hero/teaser-hero.component.js +1 -1
  471. package/teaser-hero.js +1 -1
  472. package/teaser-hero.pure.js +1 -1
  473. package/teaser-panel/teaser-panel.component.js +1 -1
  474. package/teaser-panel.js +1 -1
  475. package/teaser-panel.pure.js +1 -1
  476. package/teaser-product/common/teaser-product-common.js +1 -1
  477. package/teaser-product/teaser-product/teaser-product.component.js +1 -1
  478. package/teaser-product.js +2 -2
  479. package/teaser-product.pure.js +2 -2
  480. package/teaser.js +1 -1
  481. package/teaser.pure.js +1 -1
  482. package/time-input/time-input.component.js +1 -1
  483. package/time-input.js +1 -1
  484. package/time-input.pure.js +1 -1
  485. package/timetable-form/timetable-form/timetable-form.component.js +1 -1
  486. package/timetable-form/timetable-form-details/timetable-form-details.component.js +1 -1
  487. package/timetable-form/timetable-form-field/timetable-form-field.component.js +1 -1
  488. package/timetable-form/timetable-form-swap-button/timetable-form-swap-button.component.js +1 -1
  489. package/timetable-form.js +4 -4
  490. package/timetable-form.pure.js +4 -4
  491. package/timetable-occupancy/timetable-occupancy.component.js +1 -1
  492. package/timetable-occupancy-icon/timetable-occupancy-icon.component.js +1 -1
  493. package/timetable-occupancy-icon.js +1 -1
  494. package/timetable-occupancy-icon.pure.js +1 -1
  495. package/{timetable-occupancy.component-DGQ20zH1.js → timetable-occupancy.component-CIkq1cT7.js} +17 -13
  496. package/timetable-occupancy.js +1 -1
  497. package/timetable-occupancy.pure.js +1 -1
  498. package/title/title-base.js +1 -1
  499. package/title/title.component.js +1 -1
  500. package/{title-base-JBhKD3ur.js → title-base-B1xzk7Zb.js} +1 -1
  501. package/{title.component-VnTeqomb.js → title.component-DTnG8op9.js} +2 -2
  502. package/title.js +2 -2
  503. package/title.pure.js +2 -2
  504. package/toast/toast.component.js +1 -1
  505. package/{toast.component-BMN90Ouu.js → toast.component-Ew5vuGXf.js} +19 -19
  506. package/toast.js +1 -1
  507. package/toast.pure.js +1 -1
  508. package/toggle/toggle/toggle.component.js +1 -1
  509. package/toggle/toggle-option/toggle-option.component.js +1 -1
  510. package/toggle-check/toggle-check.component.js +1 -1
  511. package/toggle-check.js +1 -1
  512. package/toggle-check.pure.js +1 -1
  513. package/toggle.js +2 -2
  514. package/toggle.pure.js +2 -2
  515. package/tooltip/tooltip.component.js +1 -1
  516. package/{tooltip.component-NfyDxfw7.js → tooltip.component-ihyNBI7f.js} +25 -25
  517. package/tooltip.js +1 -1
  518. package/tooltip.pure.js +1 -1
  519. package/train/train/train.component.js +1 -1
  520. package/train/train-blocked-passage/train-blocked-passage.component.js +1 -1
  521. package/train/train-formation/train-formation.component.js +1 -1
  522. package/train/train-wagon-common.js +1 -1
  523. package/{train-formation.component-DVxNBPIB.js → train-formation.component-CYqdWnkL.js} +1 -1
  524. package/{train-wagon-common-CDCsWVgi.js → train-wagon-common-C1Py1D01.js} +1 -1
  525. package/{train.component-DxadS7O8.js → train.component-DRLUjuXY.js} +1 -1
  526. package/train.js +4 -4
  527. package/train.pure.js +4 -4
  528. package/visual-checkbox/visual-checkbox.component.js +1 -1
  529. package/visual-checkbox.js +1 -1
  530. package/visual-checkbox.pure.js +1 -1
  531. package/a11y.css +0 -20
  532. package/animation.css +0 -14
  533. package/badge.css +0 -32
  534. package/core/styles/badge.scss +0 -3
  535. package/core/styles/mixins/badge.scss +0 -42
  536. package/core/styles/mixins/buttons.scss +0 -12
  537. package/core/styles/mixins/card.scss +0 -205
  538. package/core/styles/mixins/dev_and_debug.scss +0 -8
  539. package/core/styles/mixins/image.scss +0 -43
  540. package/core/styles/mixins/inputs.scss +0 -11
  541. package/core/styles/mixins/link.scss +0 -125
  542. package/core/styles/mixins/panel.scss +0 -80
  543. package/core/styles/mixins/popover.scss +0 -14
  544. package/core/styles/mixins/table.scss +0 -185
  545. package/core/styles/mixins/timetable-form.scss +0 -63
  546. package/core/styles/option-panel-common.global.scss +0 -11
  547. package/core/styles/option-panel-common.scss +0 -157
  548. package/core/styles/theme.scss +0 -20
  549. package/core/styles/timetable-form.scss +0 -27
  550. package/core/styles/typography.private.scss +0 -9
  551. package/core.css +0 -2713
  552. package/development/autocomplete-base-element-qnPoRLvM.js +0 -695
  553. package/development/breadcrumb-group.component-BUBfl6LV.js +0 -193
  554. package/development/calendar.component-CG96KGTg.js +0 -1469
  555. package/development/file-selector-common-mZ5UYxOF.js +0 -421
  556. package/development/flip-card.component-DujrPKzU.js +0 -185
  557. package/development/header-action-common-Be0XQge2.js +0 -86
  558. package/development/inline-link-common-gmt6yz3v.js +0 -18
  559. package/development/link-list.component-B90qHOUD.js +0 -97
  560. package/development/menu-action-common-DRXQc85Y.js +0 -32
  561. package/development/menu.component-Cv9wRj4H.js +0 -365
  562. package/development/navigation-list.component-Dvv-bZ2V.js +0 -86
  563. package/development/navigation-marker.component-DMqe-VlY.js +0 -120
  564. package/development/navigation.component-CqNkBvEs.js +0 -315
  565. package/development/option.component-CV6cZnJe.js +0 -131
  566. package/development/paginator.component-BwLUSpDj.js +0 -261
  567. package/development/popover.component-CKUZbWbV.js +0 -578
  568. package/development/radio-button-common-G0jLFo41.js +0 -129
  569. package/development/select.component-CUjF11sq.js +0 -807
  570. package/development/selection-expansion-panel.component-BT78Qhbf.js +0 -186
  571. package/development/sidebar-container.component-CxwDKxv9.js +0 -100
  572. package/development/skiplink-list.component-m7xm-pns.js +0 -129
  573. package/development/slider.component-D_nLTlRF.js +0 -346
  574. package/development/step-label.component-Bo7Z0w7N.js +0 -127
  575. package/development/stepper.component-BeqeUIRN.js +0 -443
  576. package/development/styles-Cctez2BS.js +0 -22
  577. package/development/tab-nav-bar.component-B_mi8GGR.js +0 -109
  578. package/development/tag-group.component-Db8prSBL.js +0 -194
  579. package/development/tag.component-DG1uxD28.js +0 -238
  580. package/development/teaser-product.component-DMyuB-cH.js +0 -37
  581. package/development/teaser.component-CF_NUbwJ.js +0 -116
  582. package/development/time-input.component-XxzRoupm.js +0 -187
  583. package/development/timetable-occupancy-icon.component-UBmyZsTO.js +0 -95
  584. package/development/timetable-occupancy.component-DMm242Fr.js +0 -122
  585. package/development/title-base-D_Rjyk_j.js +0 -102
  586. package/development/title.component-CMxYhTfw.js +0 -71
  587. package/development/toggle.component-B03k5qc1.js +0 -243
  588. package/development/tooltip.component-D8zik3p4.js +0 -369
  589. package/development/train-wagon-common-Dg-BjUtC.js +0 -441
  590. package/development/train.component-dECIGw2x.js +0 -239
  591. package/header-action-common-DuPx0U2o.js +0 -64
  592. package/inline-link-common-BqqH1ExY.js +0 -13
  593. package/layout.css +0 -30
  594. package/lists.css +0 -194
  595. package/normalize.css +0 -95
  596. package/paginator.component-DB8l-B6J.js +0 -208
  597. package/scrollbar.css +0 -124
  598. package/styles-DAMaYe4p.js +0 -5
  599. package/table.css +0 -261
  600. package/timetable-form.css +0 -73
  601. package/typography.css +0 -67
  602. /package/{compact-paginator.component-BAuShgQE.js → compact-paginator.component-B-8gf_qD.js} +0 -0
  603. /package/core/styles/{disable-animation.scss → disable-animation-extension.scss} +0 -0
  604. /package/core/styles/{node_modules_@sbb-esta_lyne-design-tokens_dist_scss_sbb-variables-as-css.scss → features/node_modules_@sbb-esta_lyne-design-tokens_dist_scss_sbb-variables-as-css.scss} +0 -0
  605. /package/core/styles/{node_modules_@sbb-esta_lyne-design-tokens_dist_scss_sbb-variables.scss → features/node_modules_@sbb-esta_lyne-design-tokens_dist_scss_sbb-variables.scss} +0 -0
  606. /package/core/styles/{normalize.scss → features/normalize.scss} +0 -0
  607. /package/core/styles/{scrollbar.private.scss → features/scrollbar.private.scss} +0 -0
  608. /package/core/styles/mixins/{animation.scss → _animation.scss} +0 -0
  609. /package/core/styles/mixins/{font-face.scss → _font-face.scss} +0 -0
  610. /package/core/styles/mixins/{layout.scss → _layout.scss} +0 -0
  611. /package/core/styles/mixins/{scrollbar.scss → _scrollbar.scss} +0 -0
  612. /package/{disable-animation.css → disable-animation-extension.css} +0 -0
  613. /package/{option.component-BeorlZT0.js → option.component-DiH8AMlV.js} +0 -0
  614. /package/{overlay.component-myJflfLY.js → overlay.component-D7Z_vx1A.js} +0 -0
  615. /package/{paginator-common-BWewgXga.js → paginator-common-C0Kn9ibe.js} +0 -0
  616. /package/{radio-button-common-CrIRn10q.js → radio-button-common-BDNSqXg-.js} +0 -0
  617. /package/{selection-action-panel.component-DCGJQ3Mx.js → selection-action-panel.component-Ba7N1Hgt.js} +0 -0
  618. /package/{selection-expansion-panel.component-Cu1egfTY.js → selection-expansion-panel.component-BL1FPfPM.js} +0 -0
  619. /package/{sidebar-close-button.component-8owwjvk3.js → sidebar-close-button.component-CLjOpBM2.js} +0 -0
  620. /package/{sidebar-container.component-Dcke-Uhr.js → sidebar-container.component-8filIF5E.js} +0 -0
  621. /package/{sidebar-content.component-CYupfsq_.js → sidebar-content.component-DMdjHDdq.js} +0 -0
  622. /package/{sidebar-title.component-Cf64lCJx.js → sidebar-title.component-DaIkBNY9.js} +0 -0
  623. /package/{sidebar.component-LaqQzMo2.js → sidebar.component-D_HLDNnq.js} +0 -0
  624. /package/{signet.component-3Xfke8uk.js → signet.component-6q3GxORI.js} +0 -0
  625. /package/{slider.component-BlUWAWJU.js → slider.component-C8LKcM11.js} +0 -0
  626. /package/{status.component-mel7wA1j.js → status.component-DMfZTgzz.js} +0 -0
  627. /package/{step-label.component-BGSaHafq.js → step-label.component-CjNZYk5b.js} +0 -0
  628. /package/{step.component-tJh-Pb_E.js → step.component-BCkwsZdk.js} +0 -0
  629. /package/{stepper.component-BCl77LVa.js → stepper.component-mq66fR06.js} +0 -0
  630. /package/{styles-DisU4TWi.js → styles-DWm_OYpV.js} +0 -0
  631. /package/{tab-group.component-CDhggNpe.js → tab-group.component-MEm2W7QR.js} +0 -0
  632. /package/{tab-label.component-BuF2qt1T.js → tab-label.component-BqznCfW8.js} +0 -0
  633. /package/{tab.component-D6hfhlZw.js → tab.component-DPwbvqp4.js} +0 -0
  634. /package/{table-wrapper.component-C83EYuZP.js → table-wrapper.component-LzYuAVPb.js} +0 -0
  635. /package/{tag.component-BKuxfdDi.js → tag.component-zGPaopTo.js} +0 -0
  636. /package/{teaser-hero.component-mv6HL4vm.js → teaser-hero.component-BlhffYux.js} +0 -0
  637. /package/{teaser-panel.component-qRmy2lbz.js → teaser-panel.component-BCbKgXVt.js} +0 -0
  638. /package/{teaser-product-common-J1KZ2Hlw.js → teaser-product-common-C_lgMbyC.js} +0 -0
  639. /package/{teaser-product.component-BcleFVcu.js → teaser-product.component-CQIXu7sq.js} +0 -0
  640. /package/{teaser.component-BOqCERR7.js → teaser.component-D9z78Eny.js} +0 -0
  641. /package/{time-input.component-Dw8pPYDK.js → time-input.component-CLHEoWze.js} +0 -0
  642. /package/{timetable-form-details.component-0c6h6shd.js → timetable-form-details.component-DJ3oPkQP.js} +0 -0
  643. /package/{timetable-form-field.component-Cya8n2Ms.js → timetable-form-field.component-6s8_sz9h.js} +0 -0
  644. /package/{timetable-form-swap-button.component-rI_0UYJw.js → timetable-form-swap-button.component-BY2m2_k9.js} +0 -0
  645. /package/{timetable-form.component-DVps6baq.js → timetable-form.component-Swe8BX7g.js} +0 -0
  646. /package/{timetable-occupancy-icon.component-ABh1bz-X.js → timetable-occupancy-icon.component-C44eSFOM.js} +0 -0
  647. /package/{toggle-check.component-BcQ5ht0O.js → toggle-check.component-Ce-klZJB.js} +0 -0
  648. /package/{toggle-option.component-DQcPDXyl.js → toggle-option.component-BdMfGuA-.js} +0 -0
  649. /package/{toggle.component-DARkqJol.js → toggle.component-ySmrXvjA.js} +0 -0
  650. /package/{train-blocked-passage.component-B601YYJl.js → train-blocked-passage.component-UnNCmspZ.js} +0 -0
  651. /package/{visual-checkbox.component-YhX5Qk3j.js → visual-checkbox.component-JmGORoDU.js} +0 -0
@@ -0,0 +1,441 @@
1
+ import { SbbTrainFormationOrientationMixin } from "./train/train-formation-orientation-mixin.js";
2
+ import { __esDecorate, __runInitializers } from "tslib";
3
+ import { isServer, nothing, unsafeCSS } from "lit";
4
+ import { property, state } from "lit/decorators.js";
5
+ import { SbbLanguageController, SbbNamedSlotListMixin, SbbPropertyWatcherController, forceType, handleDistinctChange, i18nAdditionalWagonInformationHeading, i18nAnd, i18nBlockedPassage, i18nClass, i18nClosedCompartmentLabel, i18nCouchetteWagonLabel, i18nLocomotiveLabel, i18nRestaurantWagonLabel, i18nSector, i18nSleepingWagonLabel, i18nWagonLabel, i18nWagonLabelNumber, omitEmptyConverter } from "./core.js";
6
+ import { html as html$1 } from "lit/static-html.js";
7
+ import { SbbDividerElement } from "./divider.pure.js";
8
+ import { SbbIconElement } from "./icon.pure.js";
9
+ import { SbbTimetableOccupancyIconElement } from "./timetable-occupancy-icon.pure.js";
10
+ import { when } from "lit/directives/when.js";
11
+ //#region src/elements/train/train-wagon-common.scss?inline
12
+ var train_wagon_common_default = ":host {\n --sbb-train-wagon-transition-duration: var(\n --sbb-disable-animation-duration,\n var(--sbb-animation-duration-2x)\n );\n display: block;\n font-size: var(--sbb-train-wagon-font-size);\n letter-spacing: var(--sbb-typo-letter-spacing-text);\n outline: none !important;\n}\n\n:host([wagon-type=closed]) {\n --sbb-train-wagon-crossed-shape-display: block;\n}\n@media (forced-colors: active) {\n :host([wagon-type=closed]) {\n --sbb-train-wagon-shape-color: GrayText;\n }\n}\n\n:host(:is(:state(view-side),[state--view-side])[wagon-type=wagon-end-left]) {\n --sbb-train-wagon-padding-inline: var(--sbb-spacing-fixed-4x) var(--sbb-spacing-fixed-3x);\n}\n\n:host(:is(:state(view-side),[state--view-side])[wagon-type=wagon-end-right]) {\n --sbb-train-wagon-padding-inline: var(--sbb-spacing-fixed-3x) var(--sbb-spacing-fixed-4x);\n}\n\n:host(:is(:state(view-side),[state--view-side])[wagon-type=locomotive]) {\n --sbb-train-wagon-padding-inline: var(--sbb-spacing-fixed-4x);\n}\n\n:host(:is(:state(view-top),[state--view-top])) {\n --sbb-train-wagon-border-radius: var(--sbb-border-radius-4x);\n}\n\n:host([label]) {\n --_sbb-train-wagon-attributes-max-width: var(--sbb-train-wagon-attributes-max-width);\n}\n\n:host(:not([label])) {\n --_sbb-train-wagon-attributes-justify-content: center;\n}\n\n:host(.sbb-active) {\n --sbb-train-wagon-border-width: var(--sbb-border-width-3x);\n}\n\n:host(:is(:state(action),[state--action])) {\n cursor: var(--sbb-cursor-pointer);\n}\n\n@media (forced-colors: active) {\n :host(:is(:state(link),[state--link])) {\n --sbb-train-wagon-shape-color: LinkText;\n }\n}\n\n.sbb-train-wagon-link {\n outline: none;\n color: inherit;\n text-decoration: none;\n}\n\n.sbb-train-wagon {\n display: flex;\n flex-direction: var(--_sbb-train-formation-flex-direction-inverted);\n align-items: center;\n width: var(--_sbb-train-formation-wagon-width);\n gap: var(--sbb-train-wagon-vertical-gap);\n position: relative;\n}\n:host(:is(:state(orientation-vertical),[state--orientation-vertical])) .sbb-train-wagon {\n width: auto;\n height: var(--_sbb-train-formation-wagon-height);\n}\n.sbb-train-wagon::before {\n content: \"\";\n position: absolute;\n width: var(--_sbb-train-formation-wagon-width);\n height: var(--_sbb-train-formation-wagon-height);\n border-radius: var(--sbb-train-wagon-border-radius);\n}\n:host(:is(:state(button),[state--button]):focus-visible) .sbb-train-wagon::before, .sbb-train-wagon-link:focus-visible .sbb-train-wagon::before {\n outline-offset: var(--sbb-focus-outline-offset);\n outline: var(--sbb-focus-outline-color) var(--sbb-focus-outline-style, solid) var(--sbb-focus-outline-width);\n}\n\n.sbb-train-wagon__compartment {\n display: flex;\n flex-direction: var(--_sbb-train-formation-flex-direction);\n justify-content: center;\n padding-inline: var(--sbb-train-wagon-padding-inline);\n mask-image: var(--_sbb-train-wagon-clip-shape-compartment);\n transition: background-color var(--sbb-train-wagon-transition-duration) var(--sbb-animation-easing);\n}\n@media (any-hover: hover) {\n :host(:is(:state(action),[state--action]):hover) .sbb-train-wagon__compartment {\n background-color: var(--sbb-train-wagon-background-color-hover);\n }\n}\n:host(:is(:state(action),[state--action]):is(:active, :is(:state(active),[state--active]))) .sbb-train-wagon__compartment {\n background-color: var(--sbb-train-wagon-background-color-active);\n}\n.sbb-train-wagon__compartment:has(.sbb-train-wagon__occupancy):has(.sbb-train-wagon__class) {\n justify-content: space-between;\n}\n:host(:is(:state(orientation-vertical),[state--orientation-vertical])) .sbb-train-wagon__compartment {\n padding-inline: 0;\n padding-block: var(--sbb-train-wagon-padding-inline);\n}\n\n.sbb-train-wagon__compartment,\n.sbb-train-wagon__main-icon {\n width: var(--_sbb-train-formation-wagon-width);\n height: var(--_sbb-train-formation-wagon-height);\n}\n\n.sbb-train-wagon__shape {\n position: absolute;\n inset: 0;\n width: var(--sbb-train-formation-wagon-dimension-long);\n height: var(--sbb-train-formation-wagon-dimension-short);\n transform-origin: 0 0;\n will-change: transform;\n}\n:host(:is(:state(orientation-vertical),[state--orientation-vertical])) .sbb-train-wagon__shape {\n rotate: -90deg;\n transform: scale(-1, 1);\n}\n\n.sbb-train-wagon__shape {\n mask-image: var(--_sbb-train-wagon-clip-shape);\n pointer-events: none;\n fill: none;\n stroke: var(--sbb-train-wagon-shape-color);\n stroke-width: calc(var(--sbb-train-wagon-border-width) * 2);\n}\n\n.sbb-train-wagon__main-icon {\n --sbb-icon-svg-height: var(--sbb-train-wagon-main-icon-height);\n position: absolute;\n inset: 0;\n display: flex;\n justify-content: center;\n align-items: center;\n}\n\n.sbb-train-wagon__shape-closed {\n display: var(--sbb-train-wagon-crossed-shape-display, none);\n stroke-width: var(--sbb-border-width-1x);\n}\n\n.sbb-train-wagon__occupancy,\n.sbb-train-wagon__class {\n height: var(--_sbb-train-formation-wagon-height);\n flex-direction: var(--_sbb-train-formation-flex-direction);\n display: flex;\n align-items: center;\n justify-content: center;\n}\n:host(:is(:state(orientation-vertical),[state--orientation-vertical])) .sbb-train-wagon__occupancy,\n:host(:is(:state(orientation-vertical),[state--orientation-vertical])) .sbb-train-wagon__class {\n height: auto;\n width: var(--_sbb-train-formation-wagon-width);\n}\n\n.sbb-train-wagon__occupancy {\n --sbb-icon-svg-height: var(--sbb-train-wagon-occupancy-height);\n grid-area: occupancy;\n}\n\n.sbb-train-wagon__class {\n gap: 0.0625rem;\n order: 1;\n}\n\n.sbb-train-wagon__class-entry {\n display: flex;\n align-items: center;\n justify-content: center;\n width: var(--sbb-train-wagon-class-dimension);\n height: var(--sbb-train-wagon-class-dimension);\n border: var(--sbb-train-wagon-class-border);\n background-color: var(--sbb-train-wagon-class-background-color);\n border-radius: var(--sbb-train-wagon-class-border-radius);\n font-weight: var(--sbb-train-wagon-class-font-weight);\n color: var(--sbb-train-wagon-class-color);\n position: relative;\n line-height: 1;\n}\n.sbb-train-wagon__class-entry.first::before {\n content: \"\";\n position: absolute;\n background-color: var(--sbb-train-wagon-class-first-color);\n border-end-end-radius: var(--sbb-train-wagon-class-first-border-radius);\n}\n:host(:not(:is(:state(orientation-vertical),[state--orientation-vertical]))) .sbb-train-wagon__class-entry.first::before {\n height: var(--sbb-train-wagon-class-first-thickness);\n width: var(--sbb-train-wagon-class-dimension);\n inset: calc(-0.5 * (var(--_sbb-train-formation-wagon-height) - var(--sbb-train-wagon-class-dimension)) + var(--sbb-train-wagon-border-width) - var(--sbb-train-wagon-class-border-width)) 0 auto calc(-1 * var(--sbb-train-wagon-class-border-width));\n border-end-start-radius: var(--sbb-train-wagon-class-first-border-radius);\n}\n:host(:is(:state(orientation-vertical),[state--orientation-vertical])) .sbb-train-wagon__class-entry.first::before {\n width: var(--sbb-train-wagon-class-first-thickness);\n height: var(--sbb-train-wagon-class-dimension);\n inset: calc(-1 * var(--sbb-train-wagon-class-border-width)) auto 0 calc(-0.5 * (var(--_sbb-train-formation-wagon-width) - var(--sbb-train-wagon-class-dimension)) + var(--sbb-train-wagon-border-width) - var(--sbb-train-wagon-class-border-width));\n border-start-end-radius: var(--sbb-train-wagon-class-first-border-radius);\n}\n\n.sbb-train-wagon__information-wrapper {\n display: flex;\n align-items: start;\n flex-direction: var(--_sbb-train-formation-flex-direction);\n gap: var(--sbb-train-wagon-information-gap);\n}\n:host(:is(:state(orientation-vertical),[state--orientation-vertical])) .sbb-train-wagon__information-wrapper {\n min-width: var(--sbb-train-wagon-information-min-width);\n}\n.sbb-train-wagon__information-wrapper[hidden] {\n display: none;\n}\n\n:is(.sbb-train-wagon__label, .sbb-train-wagon__label-divider) {\n margin-block-start: calc(0.5 * (1em * var(--sbb-typo-line-height-text) - var(--sbb-train-wagon-font-size)));\n}\n:host(:is(:state(orientation-vertical),[state--orientation-vertical])) :is(.sbb-train-wagon__label, .sbb-train-wagon__label-divider) {\n margin-block-start: 0;\n}\n\n.sbb-train-wagon__label {\n line-height: 1;\n}\n:host(:is(:state(orientation-vertical),[state--orientation-vertical])) .sbb-train-wagon__label {\n max-width: var(--sbb-train-wagon-information-min-width);\n width: 100%;\n text-align: center;\n}\n\n.sbb-train-wagon__label-divider {\n height: var(--sbb-train-wagon-font-size);\n}\n:host(:is(:state(orientation-vertical),[state--orientation-vertical])) .sbb-train-wagon__label-divider {\n height: auto;\n width: var(--sbb-train-wagon-font-size);\n margin-inline-start: calc(0.5 * (var(--sbb-train-wagon-information-min-width) - var(--sbb-train-wagon-font-size)));\n}\n\n.sbb-train-wagon__attribute-icon-list {\n --sbb-icon-svg-height: var(--sbb-train-wagon-attribute-icon-height);\n display: flex;\n justify-content: var(--_sbb-train-wagon-attributes-justify-content, start);\n flex-wrap: wrap;\n gap: var(--sbb-train-wagon-attribute-icon-gap);\n color: var(--sbb-train-wagon-attribute-icon-color);\n padding-block-start: calc(0.5 * (1em * var(--sbb-typo-line-height-text) - var(--sbb-train-wagon-attribute-icon-height)));\n max-width: var(--_sbb-train-wagon-attributes-max-width);\n}\n:host(:is(:state(orientation-vertical),[state--orientation-vertical])) .sbb-train-wagon__attribute-icon-list {\n max-width: calc(var(--_sbb-train-wagon-attributes-icon-columns) * var(--sbb-train-wagon-attributes-mean-width));\n max-height: calc(var(--_sbb-train-wagon-attributes-icon-rows, 3) * var(--sbb-train-wagon-attribute-icon-height) + (var(--_sbb-train-wagon-attributes-icon-rows, 3) - 1) * var(--sbb-train-wagon-attribute-icon-gap));\n padding-block-start: 0;\n justify-content: center;\n width: 100%;\n}\n\n.sbb-train-wagon__attribute-icon-list > :is(li, span) {\n display: inline-flex;\n}";
13
+ //#endregion
14
+ //#region src/elements/train/train-wagon-common.ts
15
+ var wagonTypeToIconMap = {
16
+ couchette: "sa-cc",
17
+ sleeping: "sa-wl",
18
+ restaurant: "sa-wr"
19
+ };
20
+ var shapePaths = {
21
+ wagon: {
22
+ side: "M12 0H72A12 12 0 0184 12V24A12 12 0 0172 36H12A12 12 0 010 24V12A12 12 0 0112 0Z",
23
+ top: "M8 0A8 8 0 000 8V28a8 8 0 008 8H76a8 8 0 008-8V8A8 8 0 0076 0H8Z"
24
+ },
25
+ locomotive: {
26
+ side: "M7.7 8.6C10.5 3.6 16 0 22 0H62c6 0 11.5 3.6 14.3 8.6l5.1 9C85.9 25.6 80 36 71 36H13C4 36-1.9 25.6 2.6 17.6l5.1-9Z",
27
+ top: "M66 0H18C8 0 0 8 0 18S8 36 18 36H66c10 0 18-8 18-18S76 0 66 0Z"
28
+ },
29
+ "wagon-end-left": {
30
+ side: "M7.7 8.6A16 16 0 0122 0H72c6 0 12 6 12 12V24c0 6-6 12-12 12H13C3.8 36-2 26.1 2.6 18.1Z",
31
+ top: "M76 0H18C8.25 0 .5 8.25.5 18S8 36 18 36H76c4 0 8-4 8-8V8c0-4-4-8-8-8Z"
32
+ },
33
+ "wagon-end-right": {
34
+ side: "M76.3 8.6A16 16 0 0062 0H12C6 0 0 6 0 13v11c0 6 6 12 12 12h58.4c8.6 0 15-9.9 10.4-17.9z",
35
+ top: "M66 0H8C4 0 0 4 0 8V28c0 4 4 8 8 8H66c9.75 0 17.5-8.25 17.5-18S76 0 66 0Z"
36
+ }
37
+ };
38
+ var SbbTrainWagonMixin = (superClass) => {
39
+ return (() => {
40
+ let _classSuper = SbbTrainFormationOrientationMixin(SbbNamedSlotListMixin(superClass));
41
+ let _wagonType_decorators;
42
+ let _wagonType_initializers = [];
43
+ let _wagonType_extraInitializers = [];
44
+ let _occupancy_decorators;
45
+ let _occupancy_initializers = [];
46
+ let _occupancy_extraInitializers = [];
47
+ let _sector_decorators;
48
+ let _sector_initializers = [];
49
+ let _sector_extraInitializers = [];
50
+ let _blockedPassage_decorators;
51
+ let _blockedPassage_initializers = [];
52
+ let _blockedPassage_extraInitializers = [];
53
+ let _wagonClass_decorators;
54
+ let _wagonClass_initializers = [];
55
+ let _wagonClass_extraInitializers = [];
56
+ let _label_decorators;
57
+ let _label_initializers = [];
58
+ let _label_extraInitializers = [];
59
+ let _additionalAccessibilityText_decorators;
60
+ let _additionalAccessibilityText_initializers = [];
61
+ let _additionalAccessibilityText_extraInitializers = [];
62
+ let __view_decorators;
63
+ let __view_initializers = [];
64
+ let __view_extraInitializers = [];
65
+ return class SbbTrainWagonMixinElement extends _classSuper {
66
+ static {
67
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
68
+ _wagonType_decorators = [property({
69
+ attribute: "wagon-type",
70
+ reflect: true
71
+ })];
72
+ _occupancy_decorators = [property()];
73
+ _sector_decorators = [
74
+ forceType(),
75
+ handleDistinctChange((e) => e._sectorChanged()),
76
+ property({
77
+ reflect: true,
78
+ converter: omitEmptyConverter
79
+ })
80
+ ];
81
+ _blockedPassage_decorators = [property({ attribute: "blocked-passage" })];
82
+ _wagonClass_decorators = [property({ attribute: "wagon-class" })];
83
+ _label_decorators = [forceType(), property({
84
+ reflect: true,
85
+ converter: omitEmptyConverter
86
+ })];
87
+ _additionalAccessibilityText_decorators = [forceType(), property({ attribute: "additional-accessibility-text" })];
88
+ __view_decorators = [state()];
89
+ __esDecorate(this, null, _wagonType_decorators, {
90
+ kind: "accessor",
91
+ name: "wagonType",
92
+ static: false,
93
+ private: false,
94
+ access: {
95
+ has: (obj) => "wagonType" in obj,
96
+ get: (obj) => obj.wagonType,
97
+ set: (obj, value) => {
98
+ obj.wagonType = value;
99
+ }
100
+ },
101
+ metadata: _metadata
102
+ }, _wagonType_initializers, _wagonType_extraInitializers);
103
+ __esDecorate(this, null, _occupancy_decorators, {
104
+ kind: "accessor",
105
+ name: "occupancy",
106
+ static: false,
107
+ private: false,
108
+ access: {
109
+ has: (obj) => "occupancy" in obj,
110
+ get: (obj) => obj.occupancy,
111
+ set: (obj, value) => {
112
+ obj.occupancy = value;
113
+ }
114
+ },
115
+ metadata: _metadata
116
+ }, _occupancy_initializers, _occupancy_extraInitializers);
117
+ __esDecorate(this, null, _sector_decorators, {
118
+ kind: "accessor",
119
+ name: "sector",
120
+ static: false,
121
+ private: false,
122
+ access: {
123
+ has: (obj) => "sector" in obj,
124
+ get: (obj) => obj.sector,
125
+ set: (obj, value) => {
126
+ obj.sector = value;
127
+ }
128
+ },
129
+ metadata: _metadata
130
+ }, _sector_initializers, _sector_extraInitializers);
131
+ __esDecorate(this, null, _blockedPassage_decorators, {
132
+ kind: "accessor",
133
+ name: "blockedPassage",
134
+ static: false,
135
+ private: false,
136
+ access: {
137
+ has: (obj) => "blockedPassage" in obj,
138
+ get: (obj) => obj.blockedPassage,
139
+ set: (obj, value) => {
140
+ obj.blockedPassage = value;
141
+ }
142
+ },
143
+ metadata: _metadata
144
+ }, _blockedPassage_initializers, _blockedPassage_extraInitializers);
145
+ __esDecorate(this, null, _wagonClass_decorators, {
146
+ kind: "accessor",
147
+ name: "wagonClass",
148
+ static: false,
149
+ private: false,
150
+ access: {
151
+ has: (obj) => "wagonClass" in obj,
152
+ get: (obj) => obj.wagonClass,
153
+ set: (obj, value) => {
154
+ obj.wagonClass = value;
155
+ }
156
+ },
157
+ metadata: _metadata
158
+ }, _wagonClass_initializers, _wagonClass_extraInitializers);
159
+ __esDecorate(this, null, _label_decorators, {
160
+ kind: "accessor",
161
+ name: "label",
162
+ static: false,
163
+ private: false,
164
+ access: {
165
+ has: (obj) => "label" in obj,
166
+ get: (obj) => obj.label,
167
+ set: (obj, value) => {
168
+ obj.label = value;
169
+ }
170
+ },
171
+ metadata: _metadata
172
+ }, _label_initializers, _label_extraInitializers);
173
+ __esDecorate(this, null, _additionalAccessibilityText_decorators, {
174
+ kind: "accessor",
175
+ name: "additionalAccessibilityText",
176
+ static: false,
177
+ private: false,
178
+ access: {
179
+ has: (obj) => "additionalAccessibilityText" in obj,
180
+ get: (obj) => obj.additionalAccessibilityText,
181
+ set: (obj, value) => {
182
+ obj.additionalAccessibilityText = value;
183
+ }
184
+ },
185
+ metadata: _metadata
186
+ }, _additionalAccessibilityText_initializers, _additionalAccessibilityText_extraInitializers);
187
+ __esDecorate(this, null, __view_decorators, {
188
+ kind: "accessor",
189
+ name: "_view",
190
+ static: false,
191
+ private: false,
192
+ access: {
193
+ has: (obj) => "_view" in obj,
194
+ get: (obj) => obj._view,
195
+ set: (obj, value) => {
196
+ obj._view = value;
197
+ }
198
+ },
199
+ metadata: _metadata
200
+ }, __view_initializers, __view_extraInitializers);
201
+ if (_metadata) Object.defineProperty(this, Symbol.metadata, {
202
+ enumerable: true,
203
+ configurable: true,
204
+ writable: true,
205
+ value: _metadata
206
+ });
207
+ }
208
+ static {
209
+ this.elementDependencies = [
210
+ SbbIconElement,
211
+ SbbTimetableOccupancyIconElement,
212
+ SbbDividerElement
213
+ ];
214
+ }
215
+ static {
216
+ this.styles = [unsafeCSS(train_wagon_common_default)];
217
+ }
218
+ #wagonType_accessor_storage;
219
+ /**
220
+ * Wagon type.
221
+ * For `wagon-end-left` and `wagon-end-right`, please set the corresponding value of the `blockedPassage` property.
222
+ */
223
+ get wagonType() {
224
+ return this.#wagonType_accessor_storage;
225
+ }
226
+ set wagonType(value) {
227
+ this.#wagonType_accessor_storage = value;
228
+ }
229
+ #occupancy_accessor_storage;
230
+ /** Occupancy of a wagon. */
231
+ get occupancy() {
232
+ return this.#occupancy_accessor_storage;
233
+ }
234
+ set occupancy(value) {
235
+ this.#occupancy_accessor_storage = value;
236
+ }
237
+ #sector_accessor_storage;
238
+ /** Sector in which the wagon stops. */
239
+ get sector() {
240
+ return this.#sector_accessor_storage;
241
+ }
242
+ set sector(value) {
243
+ this.#sector_accessor_storage = value;
244
+ }
245
+ #blockedPassage_accessor_storage;
246
+ /** Accessibility text for blocked passages of the wagon. */
247
+ get blockedPassage() {
248
+ return this.#blockedPassage_accessor_storage;
249
+ }
250
+ set blockedPassage(value) {
251
+ this.#blockedPassage_accessor_storage = value;
252
+ }
253
+ #wagonClass_accessor_storage;
254
+ /** Class label */
255
+ get wagonClass() {
256
+ return this.#wagonClass_accessor_storage;
257
+ }
258
+ set wagonClass(value) {
259
+ this.#wagonClass_accessor_storage = value;
260
+ }
261
+ #label_accessor_storage;
262
+ /** Wagon number */
263
+ get label() {
264
+ return this.#label_accessor_storage;
265
+ }
266
+ set label(value) {
267
+ this.#label_accessor_storage = value;
268
+ }
269
+ #additionalAccessibilityText_accessor_storage;
270
+ /** Additional accessibility text which will be appended to the end. */
271
+ get additionalAccessibilityText() {
272
+ return this.#additionalAccessibilityText_accessor_storage;
273
+ }
274
+ set additionalAccessibilityText(value) {
275
+ this.#additionalAccessibilityText_accessor_storage = value;
276
+ }
277
+ #_view_accessor_storage;
278
+ get _view() {
279
+ return this.#_view_accessor_storage;
280
+ }
281
+ set _view(value) {
282
+ this.#_view_accessor_storage = value;
283
+ }
284
+ constructor(...args) {
285
+ super(...args);
286
+ this.#wagonType_accessor_storage = __runInitializers(this, _wagonType_initializers, "wagon");
287
+ this.listChildLocalNames = (__runInitializers(this, _wagonType_extraInitializers), ["sbb-icon"]);
288
+ this.#occupancy_accessor_storage = __runInitializers(this, _occupancy_initializers, null);
289
+ this.#sector_accessor_storage = (__runInitializers(this, _occupancy_extraInitializers), __runInitializers(this, _sector_initializers, ""));
290
+ this.#blockedPassage_accessor_storage = (__runInitializers(this, _sector_extraInitializers), __runInitializers(this, _blockedPassage_initializers, "none"));
291
+ this.#wagonClass_accessor_storage = (__runInitializers(this, _blockedPassage_extraInitializers), __runInitializers(this, _wagonClass_initializers, null));
292
+ this.#label_accessor_storage = (__runInitializers(this, _wagonClass_extraInitializers), __runInitializers(this, _label_initializers, ""));
293
+ this.#additionalAccessibilityText_accessor_storage = (__runInitializers(this, _label_extraInitializers), __runInitializers(this, _additionalAccessibilityText_initializers, ""));
294
+ this.#_view_accessor_storage = (__runInitializers(this, _additionalAccessibilityText_extraInitializers), __runInitializers(this, __view_initializers, null));
295
+ this._language = (__runInitializers(this, __view_extraInitializers), new SbbLanguageController(this));
296
+ this._clipStyleSheet = null;
297
+ this.addController(new SbbPropertyWatcherController(this, () => this.closest("sbb-train-formation"), { view: (t) => {
298
+ if (this._view) this.internals.states.delete(`view-${this._view}`);
299
+ this._view = t.view;
300
+ if (this._view) this.internals.states.add(`view-${this._view}`);
301
+ } }));
302
+ }
303
+ createRenderRoot() {
304
+ const renderRoot = super.createRenderRoot();
305
+ if (!isServer) {
306
+ this._clipStyleSheet = new CSSStyleSheet();
307
+ renderRoot.adoptedStyleSheets.push(this._clipStyleSheet);
308
+ }
309
+ return renderRoot;
310
+ }
311
+ _sectorChanged() {
312
+ /** @internal */
313
+ this.dispatchEvent(new Event("sectorchange", {
314
+ bubbles: true,
315
+ composed: true
316
+ }));
317
+ }
318
+ _wagonTypeLabel() {
319
+ switch (this.wagonType) {
320
+ case "closed": return i18nClosedCompartmentLabel[this._language.current];
321
+ case "locomotive": return i18nLocomotiveLabel[this._language.current];
322
+ case "couchette": return i18nCouchetteWagonLabel[this._language.current];
323
+ case "sleeping": return i18nSleepingWagonLabel[this._language.current];
324
+ case "restaurant": return i18nRestaurantWagonLabel[this._language.current];
325
+ default: return i18nWagonLabel[this._language.current];
326
+ }
327
+ }
328
+ _wagonShape() {
329
+ const view = this._view ?? "side";
330
+ if ([
331
+ "wagon",
332
+ "couchette",
333
+ "sleeping",
334
+ "restaurant",
335
+ "closed"
336
+ ].includes(this.wagonType)) return shapePaths["wagon"][view];
337
+ return shapePaths[this.wagonType][view] ?? shapePaths["wagon"][view];
338
+ }
339
+ _classLabel() {
340
+ switch (this.wagonClass) {
341
+ case "1": return i18nClass["first"][this._language.current];
342
+ case "2": return i18nClass["second"][this._language.current];
343
+ case "1-2": return `${i18nClass["first"][this._language.current]} ${i18nAnd[this._language.current]} ${i18nClass["second"][this._language.current]}`;
344
+ case "2-1": return `${i18nClass["second"][this._language.current]} ${i18nAnd[this._language.current]} ${i18nClass["first"][this._language.current]}`;
345
+ default: return "";
346
+ }
347
+ }
348
+ renderTemplate() {
349
+ const blockedPassage = this.wagonType === "wagon-end-left" && this.blockedPassage === "none" ? "previous" : this.wagonType === "wagon-end-right" && this.blockedPassage === "none" ? "next" : this.blockedPassage ?? "none";
350
+ const hasBlockedPassageEntry = blockedPassage !== "none";
351
+ const listEntriesCount = +!!this.sector + +!!this.label + +(!!this.wagonClass && this.wagonType !== "closed") + +(!!this.occupancy && this.wagonType !== "closed") + +hasBlockedPassageEntry;
352
+ const sectorString = `${i18nSector[this._language.current]}, ${this.sector}`;
353
+ const labelString = `${i18nWagonLabelNumber[this._language.current]}, ${this.label}`;
354
+ const wagonClassContent = html$1`<span class="sbb-screen-reader-only">
355
+ ${this._classLabel()}
356
+ </span>
357
+ ${this.wagonClass?.split("-").map((wagonClass) => html$1`<span
358
+ aria-hidden="true"
359
+ class="sbb-train-wagon__class-entry ${wagonClass === "1" ? "first" : ""}"
360
+ >
361
+ ${wagonClass}
362
+ </span>`)} `;
363
+ const path = this._wagonShape();
364
+ const availableIconRows = this.label ? 3 : 4;
365
+ this._clipStyleSheet?.replaceSync(`:host {
366
+ --_sbb-train-wagon-clip-shape: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 84 36' fill='black'%3E%3Cpath d='${path}' /%3E%3C/svg%3E");
367
+ --_sbb-train-wagon-clip-shape-compartment: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 ${this.orientation === "vertical" ? 36 : 84} ${this.orientation === "vertical" ? 84 : 36}' fill='black'%3E%3Cpath d='${path}'${this.orientation === "vertical" ? ` transform='rotate(-90, 0, 0) scale(-1, 1)'` : ""} /%3E%3C/svg%3E");
368
+ --_sbb-train-wagon-attributes-icon-columns: ${Math.ceil(this.listChildren.length / availableIconRows)};
369
+ --_sbb-train-wagon-attributes-icon-rows: ${availableIconRows};
370
+ }`);
371
+ return html$1`
372
+ <div class="sbb-train-wagon">
373
+ ${when(listEntriesCount > 1, () => html$1`<ul aria-label=${this._wagonTypeLabel()} class="sbb-train-wagon__compartment">
374
+ ${this.sector ? html$1`<li class="sbb-screen-reader-only">${sectorString}</li>` : nothing}
375
+ ${this.label ? html$1`<li class="sbb-screen-reader-only">${labelString}</li>` : nothing}
376
+ ${this.wagonClass && this.wagonType !== "closed" ? html$1`<li class="sbb-train-wagon__class">${wagonClassContent}</li>` : nothing}
377
+ ${this.occupancy && this.wagonType !== "closed" ? html$1`<sbb-timetable-occupancy-icon
378
+ class="sbb-train-wagon__occupancy"
379
+ role="listitem"
380
+ occupancy=${this.occupancy}
381
+ ></sbb-timetable-occupancy-icon>` : nothing}
382
+ ${hasBlockedPassageEntry ? html$1`<li class="sbb-screen-reader-only">
383
+ ${i18nBlockedPassage[blockedPassage][this._language.current]}
384
+ </li>` : nothing}
385
+ </ul>`, () => html$1`<div class="sbb-train-wagon__compartment">
386
+ <span class="sbb-screen-reader-only">
387
+ ${`${this._wagonTypeLabel()}${this.sector ? `, ${sectorString}` : ""}`}
388
+ </span>
389
+ ${this.label ? html$1`<span class="sbb-screen-reader-only">${labelString}</span>` : nothing}
390
+ ${this.wagonClass && this.wagonType !== "closed" ? html$1`<span class="sbb-train-wagon__class">${wagonClassContent}</span>` : nothing}
391
+ ${this.occupancy && this.wagonType !== "closed" ? html$1`<sbb-timetable-occupancy-icon
392
+ class="sbb-train-wagon__occupancy"
393
+ occupancy=${this.occupancy}
394
+ ></sbb-timetable-occupancy-icon>` : nothing}
395
+ ${hasBlockedPassageEntry ? html$1`<span class="sbb-screen-reader-only">
396
+ ${i18nBlockedPassage[blockedPassage][this._language.current]}
397
+ </span>` : nothing}
398
+ </div> `)}
399
+ ${wagonTypeToIconMap[this.wagonType] ? html$1`<sbb-icon
400
+ name=${wagonTypeToIconMap[this.wagonType]}
401
+ class="sbb-train-wagon__main-icon"
402
+ ></sbb-icon>` : nothing}
403
+ <svg class="sbb-train-wagon__shape" viewBox="0 0 84 36" aria-hidden="true">
404
+ <path d=${path}></path>
405
+ <path
406
+ class="sbb-train-wagon__shape-closed"
407
+ d=${this._view === "top" ? "M81 3L3 34" : "M81 4L4 32"}
408
+ ></path>
409
+ <path
410
+ class="sbb-train-wagon__shape-closed"
411
+ d=${this._view === "top" ? "M81 34L3 3" : "M81 32L4 4"}
412
+ ></path>
413
+ </svg>
414
+ ${this.additionalAccessibilityText ? html$1`<span class="sbb-screen-reader-only"
415
+ >, ${this.additionalAccessibilityText}</span
416
+ >` : nothing}
417
+ <span
418
+ class="sbb-train-wagon__information-wrapper"
419
+ ?hidden=${!this.listChildren.length && !this.label}
420
+ >
421
+ ${this.label ? html$1`<span aria-hidden="true" class="sbb-train-wagon__label">${this.label}</span>` : nothing}
422
+ ${this.label && this.listChildren.length ? html$1`<sbb-divider
423
+ orientation=${this.orientation === "vertical" ? "horizontal" : "vertical"}
424
+ aria-hidden="true"
425
+ class="sbb-train-wagon__label-divider"
426
+ ></sbb-divider>` : nothing}
427
+ ${this.renderList({
428
+ class: "sbb-train-wagon__attribute-icon-list",
429
+ ariaLabel: i18nAdditionalWagonInformationHeading[this._language.current]
430
+ })}
431
+ </span>
432
+ </div>
433
+ `;
434
+ }
435
+ };
436
+ })();
437
+ };
438
+ //#endregion
439
+ export { SbbTrainWagonMixin as t };
440
+
441
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhaW4td2Fnb24tY29tbW9uLUNkY2tJdEV0LmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50cy90cmFpbi90cmFpbi13YWdvbi1jb21tb24uc2Nzcz9pbmxpbmUiLCIuLi8uLi8uLi9zcmMvZWxlbWVudHMvdHJhaW4vdHJhaW4td2Fnb24tY29tbW9uLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIkB1c2UgJy4uL2NvcmUvc3R5bGVzJyBhcyBzYmI7XG5cbjpob3N0IHtcbiAgLS1zYmItdHJhaW4td2Fnb24tdHJhbnNpdGlvbi1kdXJhdGlvbjogdmFyKFxuICAgIC0tc2JiLWRpc2FibGUtYW5pbWF0aW9uLWR1cmF0aW9uLFxuICAgIHZhcigtLXNiYi1hbmltYXRpb24tZHVyYXRpb24tMngpXG4gICk7XG5cbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtc2l6ZTogdmFyKC0tc2JiLXRyYWluLXdhZ29uLWZvbnQtc2l6ZSk7XG4gIGxldHRlci1zcGFjaW5nOiB2YXIoLS1zYmItdHlwby1sZXR0ZXItc3BhY2luZy10ZXh0KTtcblxuICAvLyBVc2UgIWltcG9ydGFudCBoZXJlIHRvIG5vdCBpbnRlcmZlcmUgd2l0aCBGaXJlZm94IGZvY3VzIHJpbmcgZGVmaW5pdGlvblxuICAvLyB3aGljaCBhcHBlYXJzIGluIG5vcm1hbGl6ZSBDU1Mgb2Ygc2V2ZXJhbCBmcmFtZXdvcmtzLlxuICBvdXRsaW5lOiBub25lICFpbXBvcnRhbnQ7XG59XG5cbjpob3N0KFt3YWdvbi10eXBlPSdjbG9zZWQnXSkge1xuICAtLXNiYi10cmFpbi13YWdvbi1jcm9zc2VkLXNoYXBlLWRpc3BsYXk6IGJsb2NrO1xuXG4gIEBtZWRpYSAoZm9yY2VkLWNvbG9yczogYWN0aXZlKSB7XG4gICAgLS1zYmItdHJhaW4td2Fnb24tc2hhcGUtY29sb3I6IEdyYXlUZXh0O1xuICB9XG59XG5cbjpob3N0KDpzdGF0ZSh2aWV3LXNpZGUpW3dhZ29uLXR5cGU9J3dhZ29uLWVuZC1sZWZ0J10pIHtcbiAgLS1zYmItdHJhaW4td2Fnb24tcGFkZGluZy1pbmxpbmU6IHZhcigtLXNiYi1zcGFjaW5nLWZpeGVkLTR4KSB2YXIoLS1zYmItc3BhY2luZy1maXhlZC0zeCk7XG59XG5cbjpob3N0KDpzdGF0ZSh2aWV3LXNpZGUpW3dhZ29uLXR5cGU9J3dhZ29uLWVuZC1yaWdodCddKSB7XG4gIC0tc2JiLXRyYWluLXdhZ29uLXBhZGRpbmctaW5saW5lOiB2YXIoLS1zYmItc3BhY2luZy1maXhlZC0zeCkgdmFyKC0tc2JiLXNwYWNpbmctZml4ZWQtNHgpO1xufVxuXG46aG9zdCg6c3RhdGUodmlldy1zaWRlKVt3YWdvbi10eXBlPSdsb2NvbW90aXZlJ10pIHtcbiAgLS1zYmItdHJhaW4td2Fnb24tcGFkZGluZy1pbmxpbmU6IHZhcigtLXNiYi1zcGFjaW5nLWZpeGVkLTR4KTtcbn1cblxuOmhvc3QoOnN0YXRlKHZpZXctdG9wKSkge1xuICAtLXNiYi10cmFpbi13YWdvbi1ib3JkZXItcmFkaXVzOiB2YXIoLS1zYmItYm9yZGVyLXJhZGl1cy00eCk7XG59XG5cbjpob3N0KFtsYWJlbF0pIHtcbiAgLS1fc2JiLXRyYWluLXdhZ29uLWF0dHJpYnV0ZXMtbWF4LXdpZHRoOiB2YXIoLS1zYmItdHJhaW4td2Fnb24tYXR0cmlidXRlcy1tYXgtd2lkdGgpO1xufVxuXG46aG9zdCg6bm90KFtsYWJlbF0pKSB7XG4gIC0tX3NiYi10cmFpbi13YWdvbi1hdHRyaWJ1dGVzLWp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuXG46aG9zdCguc2JiLWFjdGl2ZSkge1xuICAtLXNiYi10cmFpbi13YWdvbi1ib3JkZXItd2lkdGg6IHZhcigtLXNiYi1ib3JkZXItd2lkdGgtM3gpO1xufVxuXG46aG9zdCg6c3RhdGUoYWN0aW9uKSkge1xuICBjdXJzb3I6IHZhcigtLXNiYi1jdXJzb3ItcG9pbnRlcik7XG59XG5cbjpob3N0KDpzdGF0ZShsaW5rKSkge1xuICBAbWVkaWEgKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSkge1xuICAgIC0tc2JiLXRyYWluLXdhZ29uLXNoYXBlLWNvbG9yOiBMaW5rVGV4dDtcbiAgfVxufVxuXG4uc2JiLXRyYWluLXdhZ29uLWxpbmsge1xuICBvdXRsaW5lOiBub25lO1xuICBjb2xvcjogaW5oZXJpdDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuXG4uc2JiLXRyYWluLXdhZ29uIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IHZhcigtLV9zYmItdHJhaW4tZm9ybWF0aW9uLWZsZXgtZGlyZWN0aW9uLWludmVydGVkKTtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgd2lkdGg6IHZhcigtLV9zYmItdHJhaW4tZm9ybWF0aW9uLXdhZ29uLXdpZHRoKTtcbiAgZ2FwOiB2YXIoLS1zYmItdHJhaW4td2Fnb24tdmVydGljYWwtZ2FwKTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gIDpob3N0KDpzdGF0ZShvcmllbnRhdGlvbi12ZXJ0aWNhbCkpICYge1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIGhlaWdodDogdmFyKC0tX3NiYi10cmFpbi1mb3JtYXRpb24td2Fnb24taGVpZ2h0KTtcbiAgfVxuXG4gICY6OmJlZm9yZSB7XG4gICAgY29udGVudDogJyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiB2YXIoLS1fc2JiLXRyYWluLWZvcm1hdGlvbi13YWdvbi13aWR0aCk7XG4gICAgaGVpZ2h0OiB2YXIoLS1fc2JiLXRyYWluLWZvcm1hdGlvbi13YWdvbi1oZWlnaHQpO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXNiYi10cmFpbi13YWdvbi1ib3JkZXItcmFkaXVzKTtcblxuICAgIDpob3N0KDpzdGF0ZShidXR0b24pOmZvY3VzLXZpc2libGUpICYsXG4gICAgLnNiYi10cmFpbi13YWdvbi1saW5rOmZvY3VzLXZpc2libGUgJiB7XG4gICAgICBAaW5jbHVkZSBzYmIuZm9jdXMtb3V0bGluZTtcbiAgICB9XG4gIH1cbn1cblxuLnNiYi10cmFpbi13YWdvbl9fY29tcGFydG1lbnQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogdmFyKC0tX3NiYi10cmFpbi1mb3JtYXRpb24tZmxleC1kaXJlY3Rpb24pO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgcGFkZGluZy1pbmxpbmU6IHZhcigtLXNiYi10cmFpbi13YWdvbi1wYWRkaW5nLWlubGluZSk7XG4gIG1hc2staW1hZ2U6IHZhcigtLV9zYmItdHJhaW4td2Fnb24tY2xpcC1zaGFwZS1jb21wYXJ0bWVudCk7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgdmFyKC0tc2JiLXRyYWluLXdhZ29uLXRyYW5zaXRpb24tZHVyYXRpb24pXG4gICAgdmFyKC0tc2JiLWFuaW1hdGlvbi1lYXNpbmcpO1xuXG4gIDpob3N0KDpzdGF0ZShhY3Rpb24pOmhvdmVyKSAmIHtcbiAgICBAaW5jbHVkZSBzYmIuaG92ZXItbXEoJGhvdmVyOiB0cnVlKSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zYmItdHJhaW4td2Fnb24tYmFja2dyb3VuZC1jb2xvci1ob3Zlcik7XG4gICAgfVxuICB9XG5cbiAgOmhvc3QoOnN0YXRlKGFjdGlvbik6aXMoOmFjdGl2ZSwgOnN0YXRlKGFjdGl2ZSkpKSAmIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zYmItdHJhaW4td2Fnb24tYmFja2dyb3VuZC1jb2xvci1hY3RpdmUpO1xuICB9XG5cbiAgJjpoYXMoLnNiYi10cmFpbi13YWdvbl9fb2NjdXBhbmN5KTpoYXMoLnNiYi10cmFpbi13YWdvbl9fY2xhc3MpIHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIH1cblxuICA6aG9zdCg6c3RhdGUob3JpZW50YXRpb24tdmVydGljYWwpKSAmIHtcbiAgICBwYWRkaW5nLWlubGluZTogMDtcbiAgICBwYWRkaW5nLWJsb2NrOiB2YXIoLS1zYmItdHJhaW4td2Fnb24tcGFkZGluZy1pbmxpbmUpO1xuICB9XG59XG5cbi5zYmItdHJhaW4td2Fnb25fX2NvbXBhcnRtZW50LFxuLnNiYi10cmFpbi13YWdvbl9fbWFpbi1pY29uIHtcbiAgd2lkdGg6IHZhcigtLV9zYmItdHJhaW4tZm9ybWF0aW9uLXdhZ29uLXdpZHRoKTtcbiAgaGVpZ2h0OiB2YXIoLS1fc2JiLXRyYWluLWZvcm1hdGlvbi13YWdvbi1oZWlnaHQpO1xufVxuXG4uc2JiLXRyYWluLXdhZ29uX19zaGFwZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgaW5zZXQ6IDA7XG4gIHdpZHRoOiB2YXIoLS1zYmItdHJhaW4tZm9ybWF0aW9uLXdhZ29uLWRpbWVuc2lvbi1sb25nKTtcbiAgaGVpZ2h0OiB2YXIoLS1zYmItdHJhaW4tZm9ybWF0aW9uLXdhZ29uLWRpbWVuc2lvbi1zaG9ydCk7XG4gIHRyYW5zZm9ybS1vcmlnaW46IDAgMDtcblxuICAvLyBOZWVkIGluIG9yZGVyIHRvIGNvcnJlY3RseSByZW5kZXIgaW4gU2FmYXJpXG4gIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07XG5cbiAgOmhvc3QoOnN0YXRlKG9yaWVudGF0aW9uLXZlcnRpY2FsKSkgJiB7XG4gICAgcm90YXRlOiAtOTBkZWc7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgtMSwgMSk7XG4gIH1cbn1cblxuLnNiYi10cmFpbi13YWdvbl9fc2hhcGUge1xuICAvLyBXZSBoYXZlIHRvIGNsaXAgdGhlIHNoYXBlLCBiZWNhdXNlIHRoZSBwYXRoIGNhbiBiZSBsYXJnZXIgdGhhbiB0aGUgd2Fnb24gc2hhcGUgYW5kIHdvdWxkIG92ZXJmbG93IG90aGVyd2lzZS5cbiAgbWFzay1pbWFnZTogdmFyKC0tX3NiYi10cmFpbi13YWdvbi1jbGlwLXNoYXBlKTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIGZpbGw6IG5vbmU7XG4gIHN0cm9rZTogdmFyKC0tc2JiLXRyYWluLXdhZ29uLXNoYXBlLWNvbG9yKTtcblxuICAvLyBXZSBoYXZlIHRvIG11bHRpcGx5IGJ5IGZhY3RvciAyIGJlY2F1c2UgdGhlIGJvcmRlciBncm93cyBmcm9tIHRoZSBib3VuZGluZyBib3ggbGluZXNcbiAgc3Ryb2tlLXdpZHRoOiBjYWxjKHZhcigtLXNiYi10cmFpbi13YWdvbi1ib3JkZXItd2lkdGgpICogMik7XG59XG5cbi5zYmItdHJhaW4td2Fnb25fX21haW4taWNvbiB7XG4gIC0tc2JiLWljb24tc3ZnLWhlaWdodDogdmFyKC0tc2JiLXRyYWluLXdhZ29uLW1haW4taWNvbi1oZWlnaHQpO1xuXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgaW5zZXQ6IDA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuXG4uc2JiLXRyYWluLXdhZ29uX19zaGFwZS1jbG9zZWQge1xuICBkaXNwbGF5OiB2YXIoLS1zYmItdHJhaW4td2Fnb24tY3Jvc3NlZC1zaGFwZS1kaXNwbGF5LCBub25lKTtcbiAgc3Ryb2tlLXdpZHRoOiB2YXIoLS1zYmItYm9yZGVyLXdpZHRoLTF4KTtcbn1cblxuLnNiYi10cmFpbi13YWdvbl9fb2NjdXBhbmN5LFxuLnNiYi10cmFpbi13YWdvbl9fY2xhc3Mge1xuICBoZWlnaHQ6IHZhcigtLV9zYmItdHJhaW4tZm9ybWF0aW9uLXdhZ29uLWhlaWdodCk7XG4gIGZsZXgtZGlyZWN0aW9uOiB2YXIoLS1fc2JiLXRyYWluLWZvcm1hdGlvbi1mbGV4LWRpcmVjdGlvbik7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXG4gIDpob3N0KDpzdGF0ZShvcmllbnRhdGlvbi12ZXJ0aWNhbCkpICYge1xuICAgIGhlaWdodDogYXV0bztcbiAgICB3aWR0aDogdmFyKC0tX3NiYi10cmFpbi1mb3JtYXRpb24td2Fnb24td2lkdGgpO1xuICB9XG59XG5cbi5zYmItdHJhaW4td2Fnb25fX29jY3VwYW5jeSB7XG4gIC0tc2JiLWljb24tc3ZnLWhlaWdodDogdmFyKC0tc2JiLXRyYWluLXdhZ29uLW9jY3VwYW5jeS1oZWlnaHQpO1xuXG4gIGdyaWQtYXJlYTogb2NjdXBhbmN5O1xufVxuXG4uc2JiLXRyYWluLXdhZ29uX19jbGFzcyB7XG4gIGdhcDogI3tzYmIucHgtdG8tcmVtLWJ1aWxkKDEpfTtcbiAgb3JkZXI6IDE7XG59XG5cbi5zYmItdHJhaW4td2Fnb25fX2NsYXNzLWVudHJ5IHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHdpZHRoOiB2YXIoLS1zYmItdHJhaW4td2Fnb24tY2xhc3MtZGltZW5zaW9uKTtcbiAgaGVpZ2h0OiB2YXIoLS1zYmItdHJhaW4td2Fnb24tY2xhc3MtZGltZW5zaW9uKTtcbiAgYm9yZGVyOiB2YXIoLS1zYmItdHJhaW4td2Fnb24tY2xhc3MtYm9yZGVyKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2JiLXRyYWluLXdhZ29uLWNsYXNzLWJhY2tncm91bmQtY29sb3IpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1zYmItdHJhaW4td2Fnb24tY2xhc3MtYm9yZGVyLXJhZGl1cyk7XG4gIGZvbnQtd2VpZ2h0OiB2YXIoLS1zYmItdHJhaW4td2Fnb24tY2xhc3MtZm9udC13ZWlnaHQpO1xuICBjb2xvcjogdmFyKC0tc2JiLXRyYWluLXdhZ29uLWNsYXNzLWNvbG9yKTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gIC8vIE5lZWRlZCB0byBmaXggU2FmYXJpIHZlcnRpY2FsIGNlbnRlcmluZ1xuICBsaW5lLWhlaWdodDogMTtcblxuICAmLmZpcnN0IHtcbiAgICAmOjpiZWZvcmUge1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zYmItdHJhaW4td2Fnb24tY2xhc3MtZmlyc3QtY29sb3IpO1xuICAgICAgYm9yZGVyLWVuZC1lbmQtcmFkaXVzOiB2YXIoLS1zYmItdHJhaW4td2Fnb24tY2xhc3MtZmlyc3QtYm9yZGVyLXJhZGl1cyk7XG5cbiAgICAgIDpob3N0KDpub3QoOnN0YXRlKG9yaWVudGF0aW9uLXZlcnRpY2FsKSkpICYge1xuICAgICAgICBoZWlnaHQ6IHZhcigtLXNiYi10cmFpbi13YWdvbi1jbGFzcy1maXJzdC10aGlja25lc3MpO1xuICAgICAgICB3aWR0aDogdmFyKC0tc2JiLXRyYWluLXdhZ29uLWNsYXNzLWRpbWVuc2lvbik7XG4gICAgICAgIGluc2V0OiBjYWxjKFxuICAgICAgICAgICAgLTAuNSAqXG4gICAgICAgICAgICAgICh2YXIoLS1fc2JiLXRyYWluLWZvcm1hdGlvbi13YWdvbi1oZWlnaHQpIC0gdmFyKC0tc2JiLXRyYWluLXdhZ29uLWNsYXNzLWRpbWVuc2lvbikpICtcbiAgICAgICAgICAgICAgdmFyKC0tc2JiLXRyYWluLXdhZ29uLWJvcmRlci13aWR0aCkgLSB2YXIoLS1zYmItdHJhaW4td2Fnb24tY2xhc3MtYm9yZGVyLXdpZHRoKVxuICAgICAgICAgIClcbiAgICAgICAgICAwIGF1dG8gY2FsYygtMSAqIHZhcigtLXNiYi10cmFpbi13YWdvbi1jbGFzcy1ib3JkZXItd2lkdGgpKTtcbiAgICAgICAgYm9yZGVyLWVuZC1zdGFydC1yYWRpdXM6IHZhcigtLXNiYi10cmFpbi13YWdvbi1jbGFzcy1maXJzdC1ib3JkZXItcmFkaXVzKTtcbiAgICAgIH1cblxuICAgICAgOmhvc3QoOnN0YXRlKG9yaWVudGF0aW9uLXZlcnRpY2FsKSkgJiB7XG4gICAgICAgIHdpZHRoOiB2YXIoLS1zYmItdHJhaW4td2Fnb24tY2xhc3MtZmlyc3QtdGhpY2tuZXNzKTtcbiAgICAgICAgaGVpZ2h0OiB2YXIoLS1zYmItdHJhaW4td2Fnb24tY2xhc3MtZGltZW5zaW9uKTtcbiAgICAgICAgaW5zZXQ6IGNhbGMoLTEgKiB2YXIoLS1zYmItdHJhaW4td2Fnb24tY2xhc3MtYm9yZGVyLXdpZHRoKSkgYXV0byAwXG4gICAgICAgICAgY2FsYyhcbiAgICAgICAgICAgIC0wLjUgKlxuICAgICAgICAgICAgICAodmFyKC0tX3NiYi10cmFpbi1mb3JtYXRpb24td2Fnb24td2lkdGgpIC0gdmFyKC0tc2JiLXRyYWluLXdhZ29uLWNsYXNzLWRpbWVuc2lvbikpICtcbiAgICAgICAgICAgICAgdmFyKC0tc2JiLXRyYWluLXdhZ29uLWJvcmRlci13aWR0aCkgLSB2YXIoLS1zYmItdHJhaW4td2Fnb24tY2xhc3MtYm9yZGVyLXdpZHRoKVxuICAgICAgICAgICk7XG4gICAgICAgIGJvcmRlci1zdGFydC1lbmQtcmFkaXVzOiB2YXIoLS1zYmItdHJhaW4td2Fnb24tY2xhc3MtZmlyc3QtYm9yZGVyLXJhZGl1cyk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi5zYmItdHJhaW4td2Fnb25fX2luZm9ybWF0aW9uLXdyYXBwZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogc3RhcnQ7XG4gIGZsZXgtZGlyZWN0aW9uOiB2YXIoLS1fc2JiLXRyYWluLWZvcm1hdGlvbi1mbGV4LWRpcmVjdGlvbik7XG4gIGdhcDogdmFyKC0tc2JiLXRyYWluLXdhZ29uLWluZm9ybWF0aW9uLWdhcCk7XG5cbiAgOmhvc3QoOnN0YXRlKG9yaWVudGF0aW9uLXZlcnRpY2FsKSkgJiB7XG4gICAgbWluLXdpZHRoOiB2YXIoLS1zYmItdHJhaW4td2Fnb24taW5mb3JtYXRpb24tbWluLXdpZHRoKTtcbiAgfVxuXG4gICZbaGlkZGVuXSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuXG46aXMoLnNiYi10cmFpbi13YWdvbl9fbGFiZWwsIC5zYmItdHJhaW4td2Fnb25fX2xhYmVsLWRpdmlkZXIpIHtcbiAgbWFyZ2luLWJsb2NrLXN0YXJ0OiBjYWxjKFxuICAgIDAuNSAqICgxZW0gKiB2YXIoLS1zYmItdHlwby1saW5lLWhlaWdodC10ZXh0KSAtIHZhcigtLXNiYi10cmFpbi13YWdvbi1mb250LXNpemUpKVxuICApO1xuXG4gIDpob3N0KDpzdGF0ZShvcmllbnRhdGlvbi12ZXJ0aWNhbCkpICYge1xuICAgIG1hcmdpbi1ibG9jay1zdGFydDogMDtcbiAgfVxufVxuXG4uc2JiLXRyYWluLXdhZ29uX19sYWJlbCB7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuXG4gIC8vIEluIHZlcnRpY2FsIG9yaWVudGF0aW9uLCB0aGUgbGFiZWwgaXMgaG9yaXpvbnRhbGx5IGNlbnRlcmVkIGluIGEgZml4ZWQgd2lkdGggYm94IG9mIDMycHggYnkgZGVzaWduLlxuICAvLyBBcyB0aGUgYm94IGNhbiBncm93IHRvIHRoZSBzaWRlIGlmIHRoZXJlIGFyZSBtYW55IGF0dHJpYnV0ZSBpY29ucywgd2UgaGF2ZSB0byByZS1hcHBseSB0aGlzIHdpZHRoIGFzIG1heC13aWR0aCBoZXJlLlxuICA6aG9zdCg6c3RhdGUob3JpZW50YXRpb24tdmVydGljYWwpKSAmIHtcbiAgICBtYXgtd2lkdGg6IHZhcigtLXNiYi10cmFpbi13YWdvbi1pbmZvcm1hdGlvbi1taW4td2lkdGgpO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxufVxuXG4uc2JiLXRyYWluLXdhZ29uX19sYWJlbC1kaXZpZGVyIHtcbiAgaGVpZ2h0OiB2YXIoLS1zYmItdHJhaW4td2Fnb24tZm9udC1zaXplKTtcblxuICA6aG9zdCg6c3RhdGUob3JpZW50YXRpb24tdmVydGljYWwpKSAmIHtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgd2lkdGg6IHZhcigtLXNiYi10cmFpbi13YWdvbi1mb250LXNpemUpO1xuICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IGNhbGMoXG4gICAgICAwLjUgKiAodmFyKC0tc2JiLXRyYWluLXdhZ29uLWluZm9ybWF0aW9uLW1pbi13aWR0aCkgLSB2YXIoLS1zYmItdHJhaW4td2Fnb24tZm9udC1zaXplKSlcbiAgICApO1xuICB9XG59XG5cbi5zYmItdHJhaW4td2Fnb25fX2F0dHJpYnV0ZS1pY29uLWxpc3Qge1xuICAtLXNiYi1pY29uLXN2Zy1oZWlnaHQ6IHZhcigtLXNiYi10cmFpbi13YWdvbi1hdHRyaWJ1dGUtaWNvbi1oZWlnaHQpO1xuXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogdmFyKC0tX3NiYi10cmFpbi13YWdvbi1hdHRyaWJ1dGVzLWp1c3RpZnktY29udGVudCwgc3RhcnQpO1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGdhcDogdmFyKC0tc2JiLXRyYWluLXdhZ29uLWF0dHJpYnV0ZS1pY29uLWdhcCk7XG4gIGNvbG9yOiB2YXIoLS1zYmItdHJhaW4td2Fnb24tYXR0cmlidXRlLWljb24tY29sb3IpO1xuICBwYWRkaW5nLWJsb2NrLXN0YXJ0OiBjYWxjKFxuICAgIDAuNSAqICgxZW0gKiB2YXIoLS1zYmItdHlwby1saW5lLWhlaWdodC10ZXh0KSAtIHZhcigtLXNiYi10cmFpbi13YWdvbi1hdHRyaWJ1dGUtaWNvbi1oZWlnaHQpKVxuICApO1xuICBtYXgtd2lkdGg6IHZhcigtLV9zYmItdHJhaW4td2Fnb24tYXR0cmlidXRlcy1tYXgtd2lkdGgpO1xuXG4gIDpob3N0KDpzdGF0ZShvcmllbnRhdGlvbi12ZXJ0aWNhbCkpICYge1xuICAgIC8vIFdlIGhhdmUgdG8gZW5zdXJlIHRoYXQgdGhlIGljb25zIHN0YXkgYXMgbG9uZyBhcyBwb3NzaWJsZSB0byB0aGUgc2lkZSBvZiB0aGUgc2hhcGUgYW5kIG9ubHkgdGhlbiB1c2UgYSBzZWNvbmQgY29sdW1uLlxuICAgIC8vIEhvd2V2ZXIsIHRoZSBvcmRlciBvZiB0aGUgaWNvbnMgc2hvdWxkIGJlIHJvdyB3aXNlLiBUbyBtaXRpZ2F0ZSB0aGlzIHByb2JsZW0sIHdlIHByb2dyYW1tYXRpY2FsbHkgZ2V0IHRoZSBhbW91bnQgb2ZcbiAgICAvLyBzbG90dGVkIGljb25zIGFuZCBjYW4gdGhlcmVmb3JlIGNhbGN1bGF0ZSwgaG93IG1hbnkgY29sdW1ucyBhcHByb3hpbWF0ZWx5IGFyZSBuZWVkZWQuXG4gICAgLy8gVG8gbW92ZSB0aGUgaWNvbnMgYWdhaW5zdCB0aGUgc2hhcGUsIHdlIGNvbnRyb2wgdGhlIG1heC13aWR0aC5cbiAgICAvLyBUaGUgbWF4LWhlaWdodCBpcyBnaXZlbiBieSB0aGUgZmFjdCwgdGhhdCAzIHJvd3MgZml0IGludG8gdGhlIGRlc2lnbi4gRm9yIHRoZSBjYWxjdWxhdGlvbixcbiAgICAvLyBhbHNvIHR3byB0aW1lcyB0aGUgZ2FwIGhhcyB0byBiZSBpbmNsdWRlZC5cbiAgICBtYXgtd2lkdGg6IGNhbGMoXG4gICAgICB2YXIoLS1fc2JiLXRyYWluLXdhZ29uLWF0dHJpYnV0ZXMtaWNvbi1jb2x1bW5zKSAqIHZhcigtLXNiYi10cmFpbi13YWdvbi1hdHRyaWJ1dGVzLW1lYW4td2lkdGgpXG4gICAgKTtcbiAgICBtYXgtaGVpZ2h0OiBjYWxjKFxuICAgICAgdmFyKC0tX3NiYi10cmFpbi13YWdvbi1hdHRyaWJ1dGVzLWljb24tcm93cywgMykgKlxuICAgICAgICB2YXIoLS1zYmItdHJhaW4td2Fnb24tYXR0cmlidXRlLWljb24taGVpZ2h0KSArXG4gICAgICAgICh2YXIoLS1fc2JiLXRyYWluLXdhZ29uLWF0dHJpYnV0ZXMtaWNvbi1yb3dzLCAzKSAtIDEpICpcbiAgICAgICAgdmFyKC0tc2JiLXRyYWluLXdhZ29uLWF0dHJpYnV0ZS1pY29uLWdhcClcbiAgICApO1xuICAgIHBhZGRpbmctYmxvY2stc3RhcnQ6IDA7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbn1cblxuLy8gVXNpbmcgLi4uIGxpIHNlbGVjdG9yLCBiZWNhdXNlIHRoZSBsaSBnZW5lcmF0aW9uXG4vLyBpcyBoYW5kbGVkIGluIHRoZSBjb21wb25lbnQgYmFzZSBjbGFzcy5cbi5zYmItdHJhaW4td2Fnb25fX2F0dHJpYnV0ZS1pY29uLWxpc3QgPiA6aXMobGksIHNwYW4pIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG59XG4iLCJpbXBvcnQgeyB0eXBlIENTU1Jlc3VsdEdyb3VwLCBpc1NlcnZlciwgbm90aGluZywgdHlwZSBUZW1wbGF0ZVJlc3VsdCwgdW5zYWZlQ1NTIH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IHByb3BlcnR5LCBzdGF0ZSB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcbmltcG9ydCB7IHdoZW4gfSBmcm9tICdsaXQvZGlyZWN0aXZlcy93aGVuLmpzJztcbmltcG9ydCB7IGh0bWwgfSBmcm9tICdsaXQvc3RhdGljLWh0bWwuanMnO1xuXG5pbXBvcnQgdHlwZSB7IEFic3RyYWN0Q29uc3RydWN0b3IgfSBmcm9tICcuLi9jb3JlL21peGlucy9jb25zdHJ1Y3Rvci50cyc7XG5pbXBvcnQge1xuICBmb3JjZVR5cGUsXG4gIGhhbmRsZURpc3RpbmN0Q2hhbmdlLFxuICBpMThuQWRkaXRpb25hbFdhZ29uSW5mb3JtYXRpb25IZWFkaW5nLFxuICBpMThuQW5kLFxuICBpMThuQmxvY2tlZFBhc3NhZ2UsXG4gIGkxOG5DbGFzcyxcbiAgaTE4bkNsb3NlZENvbXBhcnRtZW50TGFiZWwsXG4gIGkxOG5Db3VjaGV0dGVXYWdvbkxhYmVsLFxuICBpMThuTG9jb21vdGl2ZUxhYmVsLFxuICBpMThuUmVzdGF1cmFudFdhZ29uTGFiZWwsXG4gIGkxOG5TZWN0b3IsXG4gIGkxOG5TbGVlcGluZ1dhZ29uTGFiZWwsXG4gIGkxOG5XYWdvbkxhYmVsLFxuICBpMThuV2Fnb25MYWJlbE51bWJlcixcbiAgb21pdEVtcHR5Q29udmVydGVyLFxuICB0eXBlIFNiYkVsZW1lbnQsXG4gIHR5cGUgU2JiRWxlbWVudFR5cGUsXG4gIFNiYkxhbmd1YWdlQ29udHJvbGxlcixcbiAgU2JiTmFtZWRTbG90TGlzdE1peGluLFxuICB0eXBlIFNiYk9jY3VwYW5jeSxcbiAgU2JiUHJvcGVydHlXYXRjaGVyQ29udHJvbGxlcixcbn0gZnJvbSAnLi4vY29yZS50cyc7XG5pbXBvcnQgeyBTYmJEaXZpZGVyRWxlbWVudCB9IGZyb20gJy4uL2RpdmlkZXIucHVyZS50cyc7XG5pbXBvcnQgeyBTYmJJY29uRWxlbWVudCB9IGZyb20gJy4uL2ljb24ucHVyZS50cyc7XG5pbXBvcnQgeyBTYmJUaW1ldGFibGVPY2N1cGFuY3lJY29uRWxlbWVudCB9IGZyb20gJy4uL3RpbWV0YWJsZS1vY2N1cGFuY3ktaWNvbi5wdXJlLnRzJztcblxuaW1wb3J0IHR5cGUgeyBTYmJUcmFpbkZvcm1hdGlvbkVsZW1lbnQgfSBmcm9tICcuL3RyYWluLWZvcm1hdGlvbi90cmFpbi1mb3JtYXRpb24uY29tcG9uZW50LnRzJztcbmltcG9ydCB7IFNiYlRyYWluRm9ybWF0aW9uT3JpZW50YXRpb25NaXhpbiB9IGZyb20gJy4vdHJhaW4tZm9ybWF0aW9uLW9yaWVudGF0aW9uLW1peGluLnRzJztcbmltcG9ydCBzdHlsZSBmcm9tICcuL3RyYWluLXdhZ29uLWNvbW1vbi5zY3NzP2lubGluZSc7XG5cbmNvbnN0IHdhZ29uVHlwZVRvSWNvbk1hcDogUGFydGlhbDxSZWNvcmQ8U2JiVHJhaW5XYWdvbk1peGluVHlwZVsnd2Fnb25UeXBlJ10sIHN0cmluZz4+ID0ge1xuICBjb3VjaGV0dGU6ICdzYS1jYycsXG4gIHNsZWVwaW5nOiAnc2Etd2wnLFxuICByZXN0YXVyYW50OiAnc2Etd3InLFxufTtcblxuY29uc3Qgc2hhcGVQYXRoczogUmVjb3JkPFxuICBFeGNsdWRlPFNiYlRyYWluV2Fnb25NaXhpblR5cGVbJ3dhZ29uVHlwZSddLCAnY291Y2hldHRlJyB8ICdzbGVlcGluZycgfCAncmVzdGF1cmFudCcgfCAnY2xvc2VkJz4sXG4gIHsgc2lkZTogc3RyaW5nOyB0b3A6IHN0cmluZyB9XG4+ID0ge1xuICB3YWdvbjoge1xuICAgIHNpZGU6ICdNMTIgMEg3MkExMiAxMiAwIDAxODQgMTJWMjRBMTIgMTIgMCAwMTcyIDM2SDEyQTEyIDEyIDAgMDEwIDI0VjEyQTEyIDEyIDAgMDExMiAwWicsXG4gICAgdG9wOiAnTTggMEE4IDggMCAwMDAgOFYyOGE4IDggMCAwMDggOEg3NmE4IDggMCAwMDgtOFY4QTggOCAwIDAwNzYgMEg4WicsXG4gIH0sXG4gIGxvY29tb3RpdmU6IHtcbiAgICBzaWRlOiAnTTcuNyA4LjZDMTAuNSAzLjYgMTYgMCAyMiAwSDYyYzYgMCAxMS41IDMuNiAxNC4zIDguNmw1LjEgOUM4NS45IDI1LjYgODAgMzYgNzEgMzZIMTNDNCAzNi0xLjkgMjUuNiAyLjYgMTcuNmw1LjEtOVonLFxuICAgIHRvcDogJ002NiAwSDE4QzggMCAwIDggMCAxOFM4IDM2IDE4IDM2SDY2YzEwIDAgMTgtOCAxOC0xOFM3NiAwIDY2IDBaJyxcbiAgfSxcbiAgJ3dhZ29uLWVuZC1sZWZ0Jzoge1xuICAgIHNpZGU6ICdNNy43IDguNkExNiAxNiAwIDAxMjIgMEg3MmM2IDAgMTIgNiAxMiAxMlYyNGMwIDYtNiAxMi0xMiAxMkgxM0MzLjggMzYtMiAyNi4xIDIuNiAxOC4xWicsXG4gICAgdG9wOiAnTTc2IDBIMThDOC4yNSAwIC41IDguMjUuNSAxOFM4IDM2IDE4IDM2SDc2YzQgMCA4LTQgOC04VjhjMC00LTQtOC04LThaJyxcbiAgfSxcbiAgJ3dhZ29uLWVuZC1yaWdodCc6IHtcbiAgICBzaWRlOiAnTTc2LjMgOC42QTE2IDE2IDAgMDA2MiAwSDEyQzYgMCAwIDYgMCAxM3YxMWMwIDYgNiAxMiAxMiAxMmg1OC40YzguNiAwIDE1LTkuOSAxMC40LTE3Ljl6JyxcbiAgICB0b3A6ICdNNjYgMEg4QzQgMCAwIDQgMCA4VjI4YzAgNCA0IDggOCA4SDY2YzkuNzUgMCAxNy41LTguMjUgMTcuNS0xOFM3NiAwIDY2IDBaJyxcbiAgfSxcbn07XG5cbmV4cG9ydCBkZWNsYXJlIGNsYXNzIFNiYlRyYWluV2Fnb25NaXhpblR5cGUgZXh0ZW5kcyBTYmJFbGVtZW50IHtcbiAgcHVibGljIGFjY2Vzc29yIHdhZ29uVHlwZTpcbiAgICB8ICd3YWdvbidcbiAgICB8ICd3YWdvbi1lbmQtbGVmdCdcbiAgICB8ICd3YWdvbi1lbmQtcmlnaHQnXG4gICAgfCAnY291Y2hldHRlJ1xuICAgIHwgJ3NsZWVwaW5nJ1xuICAgIHwgJ3Jlc3RhdXJhbnQnXG4gICAgfCAnbG9jb21vdGl2ZSdcbiAgICB8ICdjbG9zZWQnO1xuICBwdWJsaWMgYWNjZXNzb3Igb2NjdXBhbmN5OiBTYmJPY2N1cGFuY3kgfCBudWxsO1xuICBwdWJsaWMgYWNjZXNzb3Igc2VjdG9yOiBzdHJpbmc7XG4gIHB1YmxpYyBhY2Nlc3NvciBibG9ja2VkUGFzc2FnZTogJ3ByZXZpb3VzJyB8ICduZXh0JyB8ICdib3RoJyB8ICdub25lJztcbiAgcHVibGljIGFjY2Vzc29yIHdhZ29uQ2xhc3M6ICcxJyB8ICcyJyB8ICcxLTInIHwgJzItMScgfCBudWxsO1xuICBwdWJsaWMgYWNjZXNzb3IgbGFiZWw6IHN0cmluZztcbiAgcHVibGljIGFjY2Vzc29yIGFkZGl0aW9uYWxBY2Nlc3NpYmlsaXR5VGV4dDogc3RyaW5nO1xuXG4gIHByb3RlY3RlZCByZW5kZXJUZW1wbGF0ZSgpOiBUZW1wbGF0ZVJlc3VsdDtcbn1cblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuZXhwb3J0IGNvbnN0IFNiYlRyYWluV2Fnb25NaXhpbiA9IDxUIGV4dGVuZHMgQWJzdHJhY3RDb25zdHJ1Y3RvcjxTYmJFbGVtZW50Pj4oXG4gIHN1cGVyQ2xhc3M6IFQsXG4pOiBBYnN0cmFjdENvbnN0cnVjdG9yPFNiYlRyYWluV2Fnb25NaXhpblR5cGU+ICYgVCA9PiB7XG4gIGFic3RyYWN0IGNsYXNzIFNiYlRyYWluV2Fnb25NaXhpbkVsZW1lbnRcbiAgICBleHRlbmRzIFNiYlRyYWluRm9ybWF0aW9uT3JpZW50YXRpb25NaXhpbihTYmJOYW1lZFNsb3RMaXN0TWl4aW48U2JiSWNvbkVsZW1lbnQsIFQ+KHN1cGVyQ2xhc3MpKVxuICAgIGltcGxlbWVudHMgUGFydGlhbDxTYmJUcmFpbldhZ29uTWl4aW5UeXBlPlxuICB7XG4gICAgcHVibGljIHN0YXRpYyBlbGVtZW50RGVwZW5kZW5jaWVzOiBTYmJFbGVtZW50VHlwZVtdID0gW1xuICAgICAgU2JiSWNvbkVsZW1lbnQsXG4gICAgICBTYmJUaW1ldGFibGVPY2N1cGFuY3lJY29uRWxlbWVudCxcbiAgICAgIFNiYkRpdmlkZXJFbGVtZW50LFxuICAgIF07XG4gICAgcHVibGljIHN0YXRpYyBzdHlsZXM6IENTU1Jlc3VsdEdyb3VwID0gW3Vuc2FmZUNTUyhzdHlsZSldO1xuXG4gICAgLyoqXG4gICAgICogV2Fnb24gdHlwZS5cbiAgICAgKiBGb3IgYHdhZ29uLWVuZC1sZWZ0YCBhbmQgYHdhZ29uLWVuZC1yaWdodGAsIHBsZWFzZSBzZXQgdGhlIGNvcnJlc3BvbmRpbmcgdmFsdWUgb2YgdGhlIGBibG9ja2VkUGFzc2FnZWAgcHJvcGVydHkuXG4gICAgICovXG4gICAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAnd2Fnb24tdHlwZScsIHJlZmxlY3Q6IHRydWUgfSkgcHVibGljIGFjY2Vzc29yIHdhZ29uVHlwZTpcbiAgICAgIHwgJ3dhZ29uJ1xuICAgICAgfCAnd2Fnb24tZW5kLWxlZnQnXG4gICAgICB8ICd3YWdvbi1lbmQtcmlnaHQnXG4gICAgICB8ICdjb3VjaGV0dGUnXG4gICAgICB8ICdzbGVlcGluZydcbiAgICAgIHwgJ3Jlc3RhdXJhbnQnXG4gICAgICB8ICdsb2NvbW90aXZlJ1xuICAgICAgfCAnY2xvc2VkJyA9ICd3YWdvbic7XG5cbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVhZG9ubHkgbGlzdENoaWxkTG9jYWxOYW1lcyA9IFsnc2JiLWljb24nXTtcblxuICAgIC8qKiBPY2N1cGFuY3kgb2YgYSB3YWdvbi4gKi9cbiAgICBAcHJvcGVydHkoKSBwdWJsaWMgYWNjZXNzb3Igb2NjdXBhbmN5OiBTYmJPY2N1cGFuY3kgfCBudWxsID0gbnVsbDtcblxuICAgIC8qKiBTZWN0b3IgaW4gd2hpY2ggdGhlIHdhZ29uIHN0b3BzLiAqL1xuICAgIEBmb3JjZVR5cGUoKVxuICAgIEBoYW5kbGVEaXN0aW5jdENoYW5nZSgoZTogU2JiVHJhaW5XYWdvbk1peGluRWxlbWVudCkgPT4gZS5fc2VjdG9yQ2hhbmdlZCgpKVxuICAgIEBwcm9wZXJ0eSh7IHJlZmxlY3Q6IHRydWUsIGNvbnZlcnRlcjogb21pdEVtcHR5Q29udmVydGVyIH0pXG4gICAgcHVibGljIGFjY2Vzc29yIHNlY3Rvcjogc3RyaW5nID0gJyc7XG5cbiAgICAvKiogQWNjZXNzaWJpbGl0eSB0ZXh0IGZvciBibG9ja2VkIHBhc3NhZ2VzIG9mIHRoZSB3YWdvbi4gKi9cbiAgICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdibG9ja2VkLXBhc3NhZ2UnIH0pXG4gICAgcHVibGljIGFjY2Vzc29yIGJsb2NrZWRQYXNzYWdlOiAncHJldmlvdXMnIHwgJ25leHQnIHwgJ2JvdGgnIHwgJ25vbmUnID0gJ25vbmUnO1xuXG4gICAgLyoqIENsYXNzIGxhYmVsICovXG4gICAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAnd2Fnb24tY2xhc3MnIH0pIHB1YmxpYyBhY2Nlc3NvciB3YWdvbkNsYXNzOlxuICAgICAgfCAnMSdcbiAgICAgIHwgJzInXG4gICAgICB8ICcxLTInXG4gICAgICB8ICcyLTEnXG4gICAgICB8IG51bGwgPSBudWxsO1xuXG4gICAgLyoqIFdhZ29uIG51bWJlciAqL1xuICAgIEBmb3JjZVR5cGUoKVxuICAgIEBwcm9wZXJ0eSh7IHJlZmxlY3Q6IHRydWUsIGNvbnZlcnRlcjogb21pdEVtcHR5Q29udmVydGVyIH0pXG4gICAgcHVibGljIGFjY2Vzc29yIGxhYmVsOiBzdHJpbmcgPSAnJztcblxuICAgIC8qKiBBZGRpdGlvbmFsIGFjY2Vzc2liaWxpdHkgdGV4dCB3aGljaCB3aWxsIGJlIGFwcGVuZGVkIHRvIHRoZSBlbmQuICovXG4gICAgQGZvcmNlVHlwZSgpXG4gICAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAnYWRkaXRpb25hbC1hY2Nlc3NpYmlsaXR5LXRleHQnIH0pXG4gICAgcHVibGljIGFjY2Vzc29yIGFkZGl0aW9uYWxBY2Nlc3NpYmlsaXR5VGV4dDogc3RyaW5nID0gJyc7XG5cbiAgICBAc3RhdGUoKSBwcml2YXRlIGFjY2Vzc29yIF92aWV3OiBTYmJUcmFpbkZvcm1hdGlvbkVsZW1lbnRbJ3ZpZXcnXSB8IG51bGwgPSBudWxsO1xuXG4gICAgcHJpdmF0ZSBfbGFuZ3VhZ2UgPSBuZXcgU2JiTGFuZ3VhZ2VDb250cm9sbGVyKHRoaXMpO1xuICAgIHByaXZhdGUgX2NsaXBTdHlsZVNoZWV0OiBDU1NTdHlsZVNoZWV0IHwgbnVsbCA9IG51bGw7XG5cbiAgICBwcm90ZWN0ZWQgY29uc3RydWN0b3IoLi4uYXJnczogYW55W10pIHtcbiAgICAgIHN1cGVyKC4uLmFyZ3MpO1xuICAgICAgdGhpcy5hZGRDb250cm9sbGVyKFxuICAgICAgICBuZXcgU2JiUHJvcGVydHlXYXRjaGVyQ29udHJvbGxlcih0aGlzLCAoKSA9PiB0aGlzLmNsb3Nlc3QoJ3NiYi10cmFpbi1mb3JtYXRpb24nKSwge1xuICAgICAgICAgIHZpZXc6ICh0KSA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy5fdmlldykge1xuICAgICAgICAgICAgICB0aGlzLmludGVybmFscy5zdGF0ZXMuZGVsZXRlKGB2aWV3LSR7dGhpcy5fdmlld31gKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuX3ZpZXcgPSB0LnZpZXc7XG4gICAgICAgICAgICBpZiAodGhpcy5fdmlldykge1xuICAgICAgICAgICAgICB0aGlzLmludGVybmFscy5zdGF0ZXMuYWRkKGB2aWV3LSR7dGhpcy5fdmlld31gKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICB9KSxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIGNyZWF0ZVJlbmRlclJvb3QoKTogSFRNTEVsZW1lbnQgfCBEb2N1bWVudEZyYWdtZW50IHtcbiAgICAgIGNvbnN0IHJlbmRlclJvb3QgPSBzdXBlci5jcmVhdGVSZW5kZXJSb290KCk7XG5cbiAgICAgIGlmICghaXNTZXJ2ZXIpIHtcbiAgICAgICAgdGhpcy5fY2xpcFN0eWxlU2hlZXQgPSBuZXcgQ1NTU3R5bGVTaGVldCgpO1xuICAgICAgICAocmVuZGVyUm9vdCBhcyBTaGFkb3dSb290KS5hZG9wdGVkU3R5bGVTaGVldHMucHVzaCh0aGlzLl9jbGlwU3R5bGVTaGVldCk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiByZW5kZXJSb290O1xuICAgIH1cblxuICAgIHByaXZhdGUgX3NlY3RvckNoYW5nZWQoKTogdm9pZCB7XG4gICAgICAvKiogQGludGVybmFsICovXG4gICAgICB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCdzZWN0b3JjaGFuZ2UnLCB7IGJ1YmJsZXM6IHRydWUsIGNvbXBvc2VkOiB0cnVlIH0pKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF93YWdvblR5cGVMYWJlbCgpOiBzdHJpbmcge1xuICAgICAgc3dpdGNoICh0aGlzLndhZ29uVHlwZSkge1xuICAgICAgICBjYXNlICdjbG9zZWQnOlxuICAgICAgICAgIHJldHVybiBpMThuQ2xvc2VkQ29tcGFydG1lbnRMYWJlbFt0aGlzLl9sYW5ndWFnZS5jdXJyZW50XTtcbiAgICAgICAgY2FzZSAnbG9jb21vdGl2ZSc6XG4gICAgICAgICAgcmV0dXJuIGkxOG5Mb2NvbW90aXZlTGFiZWxbdGhpcy5fbGFuZ3VhZ2UuY3VycmVudF07XG4gICAgICAgIGNhc2UgJ2NvdWNoZXR0ZSc6XG4gICAgICAgICAgcmV0dXJuIGkxOG5Db3VjaGV0dGVXYWdvbkxhYmVsW3RoaXMuX2xhbmd1YWdlLmN1cnJlbnRdO1xuICAgICAgICBjYXNlICdzbGVlcGluZyc6XG4gICAgICAgICAgcmV0dXJuIGkxOG5TbGVlcGluZ1dhZ29uTGFiZWxbdGhpcy5fbGFuZ3VhZ2UuY3VycmVudF07XG4gICAgICAgIGNhc2UgJ3Jlc3RhdXJhbnQnOlxuICAgICAgICAgIHJldHVybiBpMThuUmVzdGF1cmFudFdhZ29uTGFiZWxbdGhpcy5fbGFuZ3VhZ2UuY3VycmVudF07XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgcmV0dXJuIGkxOG5XYWdvbkxhYmVsW3RoaXMuX2xhbmd1YWdlLmN1cnJlbnRdO1xuICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgX3dhZ29uU2hhcGUoKTogc3RyaW5nIHtcbiAgICAgIGNvbnN0IHZpZXcgPSB0aGlzLl92aWV3ID8/ICdzaWRlJztcbiAgICAgIGlmIChbJ3dhZ29uJywgJ2NvdWNoZXR0ZScsICdzbGVlcGluZycsICdyZXN0YXVyYW50JywgJ2Nsb3NlZCddLmluY2x1ZGVzKHRoaXMud2Fnb25UeXBlKSkge1xuICAgICAgICByZXR1cm4gc2hhcGVQYXRoc1snd2Fnb24nXVt2aWV3XTtcbiAgICAgIH1cbiAgICAgIHJldHVybiAoXG4gICAgICAgIHNoYXBlUGF0aHNbdGhpcy53YWdvblR5cGUgYXMga2V5b2YgdHlwZW9mIHNoYXBlUGF0aHNdW3ZpZXddID8/IHNoYXBlUGF0aHNbJ3dhZ29uJ11bdmlld11cbiAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfY2xhc3NMYWJlbCgpOiBzdHJpbmcge1xuICAgICAgc3dpdGNoICh0aGlzLndhZ29uQ2xhc3MpIHtcbiAgICAgICAgY2FzZSAnMSc6XG4gICAgICAgICAgcmV0dXJuIGkxOG5DbGFzc1snZmlyc3QnXVt0aGlzLl9sYW5ndWFnZS5jdXJyZW50XTtcbiAgICAgICAgY2FzZSAnMic6XG4gICAgICAgICAgcmV0dXJuIGkxOG5DbGFzc1snc2Vjb25kJ11bdGhpcy5fbGFuZ3VhZ2UuY3VycmVudF07XG4gICAgICAgIGNhc2UgJzEtMic6XG4gICAgICAgICAgcmV0dXJuIGAke2kxOG5DbGFzc1snZmlyc3QnXVt0aGlzLl9sYW5ndWFnZS5jdXJyZW50XX0gJHtpMThuQW5kW3RoaXMuX2xhbmd1YWdlLmN1cnJlbnRdfSAke2kxOG5DbGFzc1snc2Vjb25kJ11bdGhpcy5fbGFuZ3VhZ2UuY3VycmVudF19YDtcbiAgICAgICAgY2FzZSAnMi0xJzpcbiAgICAgICAgICByZXR1cm4gYCR7aTE4bkNsYXNzWydzZWNvbmQnXVt0aGlzLl9sYW5ndWFnZS5jdXJyZW50XX0gJHtpMThuQW5kW3RoaXMuX2xhbmd1YWdlLmN1cnJlbnRdfSAke2kxOG5DbGFzc1snZmlyc3QnXVt0aGlzLl9sYW5ndWFnZS5jdXJyZW50XX1gO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHJldHVybiAnJztcbiAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgcmVuZGVyVGVtcGxhdGUoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgICAgY29uc3QgYmxvY2tlZFBhc3NhZ2UgPVxuICAgICAgICB0aGlzLndhZ29uVHlwZSA9PT0gJ3dhZ29uLWVuZC1sZWZ0JyAmJiB0aGlzLmJsb2NrZWRQYXNzYWdlID09PSAnbm9uZSdcbiAgICAgICAgICA/ICdwcmV2aW91cydcbiAgICAgICAgICA6IHRoaXMud2Fnb25UeXBlID09PSAnd2Fnb24tZW5kLXJpZ2h0JyAmJiB0aGlzLmJsb2NrZWRQYXNzYWdlID09PSAnbm9uZSdcbiAgICAgICAgICAgID8gJ25leHQnXG4gICAgICAgICAgICA6ICh0aGlzLmJsb2NrZWRQYXNzYWdlID8/ICdub25lJyk7XG5cbiAgICAgIGNvbnN0IGhhc0Jsb2NrZWRQYXNzYWdlRW50cnkgPSBibG9ja2VkUGFzc2FnZSAhPT0gJ25vbmUnO1xuXG4gICAgICAvLyBGcm9tIGFjY2Vzc2liaWxpdHkgcGVyc3BlY3RpdmUgd2UgY2Fubm90IGNyZWF0ZSBhIGxpc3Qgd2l0aCBvbmx5IG9uZSBlbnRyeS5cbiAgICAgIC8vIFdlIG5lZWQgdG8ga25vdyB3aGF0IHdpbGwgYmUgcHJlc2VudGVkIGFuZCBzd2l0Y2ggc2VtYW50aWNzIGJhc2VkIG9uIGNvdW50LlxuICAgICAgY29uc3QgbGlzdEVudHJpZXNDb3VudCA9XG4gICAgICAgICshIXRoaXMuc2VjdG9yICtcbiAgICAgICAgKyEhdGhpcy5sYWJlbCArXG4gICAgICAgICsoISF0aGlzLndhZ29uQ2xhc3MgJiYgdGhpcy53YWdvblR5cGUgIT09ICdjbG9zZWQnKSArXG4gICAgICAgICsoISF0aGlzLm9jY3VwYW5jeSAmJiB0aGlzLndhZ29uVHlwZSAhPT0gJ2Nsb3NlZCcpICtcbiAgICAgICAgK2hhc0Jsb2NrZWRQYXNzYWdlRW50cnk7XG5cbiAgICAgIGNvbnN0IHNlY3RvclN0cmluZyA9IGAke2kxOG5TZWN0b3JbdGhpcy5fbGFuZ3VhZ2UuY3VycmVudF19LCAke3RoaXMuc2VjdG9yfWA7XG4gICAgICBjb25zdCBsYWJlbFN0cmluZyA9IGAke2kxOG5XYWdvbkxhYmVsTnVtYmVyW3RoaXMuX2xhbmd1YWdlLmN1cnJlbnRdfSwgJHt0aGlzLmxhYmVsfWA7XG5cbiAgICAgIGNvbnN0IHdhZ29uQ2xhc3NDb250ZW50ID0gaHRtbGA8c3BhbiBjbGFzcz1cInNiYi1zY3JlZW4tcmVhZGVyLW9ubHlcIj5cbiAgICAgICAgICAke3RoaXMuX2NsYXNzTGFiZWwoKX1cbiAgICAgICAgPC9zcGFuPlxuICAgICAgICAke3RoaXMud2Fnb25DbGFzc1xuICAgICAgICAgID8uc3BsaXQoJy0nKVxuICAgICAgICAgIC5tYXAoXG4gICAgICAgICAgICAod2Fnb25DbGFzcykgPT5cbiAgICAgICAgICAgICAgaHRtbGA8c3BhblxuICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJzYmItdHJhaW4td2Fnb25fX2NsYXNzLWVudHJ5ICR7d2Fnb25DbGFzcyA9PT0gJzEnID8gJ2ZpcnN0JyA6ICcnfVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAke3dhZ29uQ2xhc3N9XG4gICAgICAgICAgICAgIDwvc3Bhbj5gLFxuICAgICAgICAgICl9IGA7XG5cbiAgICAgIGNvbnN0IHBhdGggPSB0aGlzLl93YWdvblNoYXBlKCk7XG5cbiAgICAgIGNvbnN0IGF2YWlsYWJsZUljb25Sb3dzID0gdGhpcy5sYWJlbCA/IDMgOiA0O1xuICAgICAgdGhpcy5fY2xpcFN0eWxlU2hlZXQ/LnJlcGxhY2VTeW5jKGA6aG9zdCB7XG4gICAgICAgICAgICAtLV9zYmItdHJhaW4td2Fnb24tY2xpcC1zaGFwZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCA4NCAzNicgZmlsbD0nYmxhY2snJTNFJTNDcGF0aCBkPScke3BhdGh9JyAvJTNFJTNDL3N2ZyUzRVwiKTtcbiAgICAgICAgICAgIC0tX3NiYi10cmFpbi13YWdvbi1jbGlwLXNoYXBlLWNvbXBhcnRtZW50OiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgdmlld0JveD0nMCAwICR7dGhpcy5vcmllbnRhdGlvbiA9PT0gJ3ZlcnRpY2FsJyA/IDM2IDogODR9ICR7dGhpcy5vcmllbnRhdGlvbiA9PT0gJ3ZlcnRpY2FsJyA/IDg0IDogMzZ9JyBmaWxsPSdibGFjayclM0UlM0NwYXRoIGQ9JyR7cGF0aH0nJHt0aGlzLm9yaWVudGF0aW9uID09PSAndmVydGljYWwnID8gYCB0cmFuc2Zvcm09J3JvdGF0ZSgtOTAsIDAsIDApIHNjYWxlKC0xLCAxKSdgIDogJyd9IC8lM0UlM0Mvc3ZnJTNFXCIpO1xuICAgICAgICAgICAgLS1fc2JiLXRyYWluLXdhZ29uLWF0dHJpYnV0ZXMtaWNvbi1jb2x1bW5zOiAke01hdGguY2VpbCh0aGlzLmxpc3RDaGlsZHJlbi5sZW5ndGggLyBhdmFpbGFibGVJY29uUm93cyl9O1xuICAgICAgICAgICAgLS1fc2JiLXRyYWluLXdhZ29uLWF0dHJpYnV0ZXMtaWNvbi1yb3dzOiAke2F2YWlsYWJsZUljb25Sb3dzfTtcbiAgICAgICAgICB9YCk7XG5cbiAgICAgIHJldHVybiBodG1sYFxuICAgICAgICA8ZGl2IGNsYXNzPVwic2JiLXRyYWluLXdhZ29uXCI+XG4gICAgICAgICAgJHt3aGVuKFxuICAgICAgICAgICAgbGlzdEVudHJpZXNDb3VudCA+IDEsXG4gICAgICAgICAgICAoKSA9PlxuICAgICAgICAgICAgICBodG1sYDx1bCBhcmlhLWxhYmVsPSR7dGhpcy5fd2Fnb25UeXBlTGFiZWwoKX0gY2xhc3M9XCJzYmItdHJhaW4td2Fnb25fX2NvbXBhcnRtZW50XCI+XG4gICAgICAgICAgICAgICAgJHt0aGlzLnNlY3RvclxuICAgICAgICAgICAgICAgICAgPyBodG1sYDxsaSBjbGFzcz1cInNiYi1zY3JlZW4tcmVhZGVyLW9ubHlcIj4ke3NlY3RvclN0cmluZ308L2xpPmBcbiAgICAgICAgICAgICAgICAgIDogbm90aGluZ31cbiAgICAgICAgICAgICAgICAke3RoaXMubGFiZWxcbiAgICAgICAgICAgICAgICAgID8gaHRtbGA8bGkgY2xhc3M9XCJzYmItc2NyZWVuLXJlYWRlci1vbmx5XCI+JHtsYWJlbFN0cmluZ308L2xpPmBcbiAgICAgICAgICAgICAgICAgIDogbm90aGluZ31cbiAgICAgICAgICAgICAgICAke3RoaXMud2Fnb25DbGFzcyAmJiB0aGlzLndhZ29uVHlwZSAhPT0gJ2Nsb3NlZCdcbiAgICAgICAgICAgICAgICAgID8gaHRtbGA8bGkgY2xhc3M9XCJzYmItdHJhaW4td2Fnb25fX2NsYXNzXCI+JHt3YWdvbkNsYXNzQ29udGVudH08L2xpPmBcbiAgICAgICAgICAgICAgICAgIDogbm90aGluZ31cbiAgICAgICAgICAgICAgICAke3RoaXMub2NjdXBhbmN5ICYmIHRoaXMud2Fnb25UeXBlICE9PSAnY2xvc2VkJ1xuICAgICAgICAgICAgICAgICAgPyBodG1sYDxzYmItdGltZXRhYmxlLW9jY3VwYW5jeS1pY29uXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzYmItdHJhaW4td2Fnb25fX29jY3VwYW5jeVwiXG4gICAgICAgICAgICAgICAgICAgICAgcm9sZT1cImxpc3RpdGVtXCJcbiAgICAgICAgICAgICAgICAgICAgICBvY2N1cGFuY3k9JHt0aGlzLm9jY3VwYW5jeX1cbiAgICAgICAgICAgICAgICAgICAgPjwvc2JiLXRpbWV0YWJsZS1vY2N1cGFuY3ktaWNvbj5gXG4gICAgICAgICAgICAgICAgICA6IG5vdGhpbmd9XG4gICAgICAgICAgICAgICAgJHtoYXNCbG9ja2VkUGFzc2FnZUVudHJ5XG4gICAgICAgICAgICAgICAgICA/IGh0bWxgPGxpIGNsYXNzPVwic2JiLXNjcmVlbi1yZWFkZXItb25seVwiPlxuICAgICAgICAgICAgICAgICAgICAgICR7aTE4bkJsb2NrZWRQYXNzYWdlW2Jsb2NrZWRQYXNzYWdlXVt0aGlzLl9sYW5ndWFnZS5jdXJyZW50XX1cbiAgICAgICAgICAgICAgICAgICAgPC9saT5gXG4gICAgICAgICAgICAgICAgICA6IG5vdGhpbmd9XG4gICAgICAgICAgICAgIDwvdWw+YCxcbiAgICAgICAgICAgICgpID0+XG4gICAgICAgICAgICAgIGh0bWxgPGRpdiBjbGFzcz1cInNiYi10cmFpbi13YWdvbl9fY29tcGFydG1lbnRcIj5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNiYi1zY3JlZW4tcmVhZGVyLW9ubHlcIj5cbiAgICAgICAgICAgICAgICAgICR7YCR7dGhpcy5fd2Fnb25UeXBlTGFiZWwoKX0ke3RoaXMuc2VjdG9yID8gYCwgJHtzZWN0b3JTdHJpbmd9YCA6ICcnfWB9XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICR7dGhpcy5sYWJlbFxuICAgICAgICAgICAgICAgICAgPyBodG1sYDxzcGFuIGNsYXNzPVwic2JiLXNjcmVlbi1yZWFkZXItb25seVwiPiR7bGFiZWxTdHJpbmd9PC9zcGFuPmBcbiAgICAgICAgICAgICAgICAgIDogbm90aGluZ31cbiAgICAgICAgICAgICAgICAke3RoaXMud2Fnb25DbGFzcyAmJiB0aGlzLndhZ29uVHlwZSAhPT0gJ2Nsb3NlZCdcbiAgICAgICAgICAgICAgICAgID8gaHRtbGA8c3BhbiBjbGFzcz1cInNiYi10cmFpbi13YWdvbl9fY2xhc3NcIj4ke3dhZ29uQ2xhc3NDb250ZW50fTwvc3Bhbj5gXG4gICAgICAgICAgICAgICAgICA6IG5vdGhpbmd9XG4gICAgICAgICAgICAgICAgJHt0aGlzLm9jY3VwYW5jeSAmJiB0aGlzLndhZ29uVHlwZSAhPT0gJ2Nsb3NlZCdcbiAgICAgICAgICAgICAgICAgID8gaHRtbGA8c2JiLXRpbWV0YWJsZS1vY2N1cGFuY3ktaWNvblxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic2JiLXRyYWluLXdhZ29uX19vY2N1cGFuY3lcIlxuICAgICAgICAgICAgICAgICAgICAgIG9jY3VwYW5jeT0ke3RoaXMub2NjdXBhbmN5fVxuICAgICAgICAgICAgICAgICAgICA+PC9zYmItdGltZXRhYmxlLW9jY3VwYW5jeS1pY29uPmBcbiAgICAgICAgICAgICAgICAgIDogbm90aGluZ31cbiAgICAgICAgICAgICAgICAke2hhc0Jsb2NrZWRQYXNzYWdlRW50cnlcbiAgICAgICAgICAgICAgICAgID8gaHRtbGA8c3BhbiBjbGFzcz1cInNiYi1zY3JlZW4tcmVhZGVyLW9ubHlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAke2kxOG5CbG9ja2VkUGFzc2FnZVtibG9ja2VkUGFzc2FnZV1bdGhpcy5fbGFuZ3VhZ2UuY3VycmVudF19XG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5gXG4gICAgICAgICAgICAgICAgICA6IG5vdGhpbmd9XG4gICAgICAgICAgICAgIDwvZGl2PiBgLFxuICAgICAgICAgICl9XG4gICAgICAgICAgJHt3YWdvblR5cGVUb0ljb25NYXBbdGhpcy53YWdvblR5cGVdXG4gICAgICAgICAgICA/IGh0bWxgPHNiYi1pY29uXG4gICAgICAgICAgICAgICAgbmFtZT0ke3dhZ29uVHlwZVRvSWNvbk1hcFt0aGlzLndhZ29uVHlwZV0hfVxuICAgICAgICAgICAgICAgIGNsYXNzPVwic2JiLXRyYWluLXdhZ29uX19tYWluLWljb25cIlxuICAgICAgICAgICAgICA+PC9zYmItaWNvbj5gXG4gICAgICAgICAgICA6IG5vdGhpbmd9XG4gICAgICAgICAgPHN2ZyBjbGFzcz1cInNiYi10cmFpbi13YWdvbl9fc2hhcGVcIiB2aWV3Qm94PVwiMCAwIDg0IDM2XCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+XG4gICAgICAgICAgICA8cGF0aCBkPSR7cGF0aH0+PC9wYXRoPlxuICAgICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgICAgY2xhc3M9XCJzYmItdHJhaW4td2Fnb25fX3NoYXBlLWNsb3NlZFwiXG4gICAgICAgICAgICAgIGQ9JHt0aGlzLl92aWV3ID09PSAndG9wJyA/ICdNODEgM0wzIDM0JyA6ICdNODEgNEw0IDMyJ31cbiAgICAgICAgICAgID48L3BhdGg+XG4gICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICBjbGFzcz1cInNiYi10cmFpbi13YWdvbl9fc2hhcGUtY2xvc2VkXCJcbiAgICAgICAgICAgICAgZD0ke3RoaXMuX3ZpZXcgPT09ICd0b3AnID8gJ004MSAzNEwzIDMnIDogJ004MSAzMkw0IDQnfVxuICAgICAgICAgICAgPjwvcGF0aD5cbiAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAke3RoaXMuYWRkaXRpb25hbEFjY2Vzc2liaWxpdHlUZXh0XG4gICAgICAgICAgICA/IGh0bWxgPHNwYW4gY2xhc3M9XCJzYmItc2NyZWVuLXJlYWRlci1vbmx5XCJcbiAgICAgICAgICAgICAgICA+LCAke3RoaXMuYWRkaXRpb25hbEFjY2Vzc2liaWxpdHlUZXh0fTwvc3BhblxuICAgICAgICAgICAgICA+YFxuICAgICAgICAgICAgOiBub3RoaW5nfVxuICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICBjbGFzcz1cInNiYi10cmFpbi13YWdvbl9faW5mb3JtYXRpb24td3JhcHBlclwiXG4gICAgICAgICAgICA/aGlkZGVuPSR7IXRoaXMubGlzdENoaWxkcmVuLmxlbmd0aCAmJiAhdGhpcy5sYWJlbH1cbiAgICAgICAgICA+XG4gICAgICAgICAgICAke3RoaXMubGFiZWxcbiAgICAgICAgICAgICAgPyBodG1sYDxzcGFuIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIGNsYXNzPVwic2JiLXRyYWluLXdhZ29uX19sYWJlbFwiPiR7dGhpcy5sYWJlbH08L3NwYW4+YFxuICAgICAgICAgICAgICA6IG5vdGhpbmd9XG4gICAgICAgICAgICAke3RoaXMubGFiZWwgJiYgdGhpcy5saXN0Q2hpbGRyZW4ubGVuZ3RoXG4gICAgICAgICAgICAgID8gaHRtbGA8c2JiLWRpdmlkZXJcbiAgICAgICAgICAgICAgICAgIG9yaWVudGF0aW9uPSR7dGhpcy5vcmllbnRhdGlvbiA9PT0gJ3ZlcnRpY2FsJyA/ICdob3Jpem9udGFsJyA6ICd2ZXJ0aWNhbCd9XG4gICAgICAgICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzYmItdHJhaW4td2Fnb25fX2xhYmVsLWRpdmlkZXJcIlxuICAgICAgICAgICAgICAgID48L3NiYi1kaXZpZGVyPmBcbiAgICAgICAgICAgICAgOiBub3RoaW5nfVxuICAgICAgICAgICAgJHt0aGlzLnJlbmRlckxpc3Qoe1xuICAgICAgICAgICAgICBjbGFzczogJ3NiYi10cmFpbi13YWdvbl9fYXR0cmlidXRlLWljb24tbGlzdCcsXG4gICAgICAgICAgICAgIGFyaWFMYWJlbDogaTE4bkFkZGl0aW9uYWxXYWdvbkluZm9ybWF0aW9uSGVhZGluZ1t0aGlzLl9sYW5ndWFnZS5jdXJyZW50XSxcbiAgICAgICAgICAgIH0pfVxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICBgO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBTYmJUcmFpbldhZ29uTWl4aW5FbGVtZW50IGFzIHVua25vd24gYXMgQWJzdHJhY3RDb25zdHJ1Y3RvcjxTYmJUcmFpbldhZ29uTWl4aW5UeXBlPiAmIFQ7XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7OztBQ3FDQSxJQUFNLHFCQUFtRjtDQUN2RixXQUFXO0NBQ1gsVUFBVTtDQUNWLFlBQVk7O0FBR2QsSUFBTSxhQUdGO0NBQ0YsT0FBTztFQUNMLE1BQU07RUFDTixLQUFLOztDQUVQLFlBQVk7RUFDVixNQUFNO0VBQ04sS0FBSzs7Q0FFUCxrQkFBa0I7RUFDaEIsTUFBTTtFQUNOLEtBQUs7O0NBRVAsbUJBQW1CO0VBQ2pCLE1BQU07RUFDTixLQUFLOzs7QUF5QlQsSUFB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