@kirbydesign/designsystem 5.2.2 → 6.0.0-rc.0

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 (716) hide show
  1. package/bundles/kirbydesign-designsystem-testing-base.umd.js +1988 -1259
  2. package/bundles/kirbydesign-designsystem-testing-base.umd.js.map +1 -1
  3. package/bundles/kirbydesign-designsystem-testing-jasmine.umd.js +34 -16
  4. package/bundles/kirbydesign-designsystem-testing-jasmine.umd.js.map +1 -1
  5. package/bundles/kirbydesign-designsystem-testing-jest.umd.js +34 -16
  6. package/bundles/kirbydesign-designsystem-testing-jest.umd.js.map +1 -1
  7. package/bundles/kirbydesign-designsystem.umd.js +10025 -9233
  8. package/bundles/kirbydesign-designsystem.umd.js.map +1 -1
  9. package/esm2015/kirbydesign-designsystem.js +1 -115
  10. package/esm2015/lib/components/accordion/accordion-item.component.js +31 -20
  11. package/esm2015/lib/components/accordion/accordion.directive.js +11 -7
  12. package/esm2015/lib/components/app/app.component.js +23 -18
  13. package/esm2015/lib/components/app/app.module.js +13 -8
  14. package/esm2015/lib/components/avatar/avatar.component.js +31 -19
  15. package/esm2015/lib/components/button/button.component.js +63 -34
  16. package/esm2015/lib/components/calendar/calendar.component.js +59 -35
  17. package/esm2015/lib/components/calendar/helpers/calendar.helper.js +8 -8
  18. package/esm2015/lib/components/card/card-footer/card-footer.component.js +14 -11
  19. package/esm2015/lib/components/card/card-header/card-header.component.js +26 -15
  20. package/esm2015/lib/components/card/card.component.js +34 -25
  21. package/esm2015/lib/components/chart/chart-js/chart-js.service.js +48 -34
  22. package/esm2015/lib/components/chart/chart-js/chartjs-plugin-marker/chartjs-plugin-marker.js +1 -3
  23. package/esm2015/lib/components/chart/chart.component.js +36 -39
  24. package/esm2015/lib/components/chart/chart.module.js +13 -8
  25. package/esm2015/lib/components/chart/chart.types.js +1 -1
  26. package/esm2015/lib/components/chart/configs/chart-config.service.js +7 -4
  27. package/esm2015/lib/components/chart/configs/interaction-functions-extensions.config.js +8 -10
  28. package/esm2015/lib/components/chart/configs/shared.utils.js +1 -1
  29. package/esm2015/lib/components/chart/configs/type.config.js +1 -3
  30. package/esm2015/lib/components/chart/index.js +2 -1
  31. package/esm2015/lib/components/chart-deprecated/chart-deprecated-helper.js +7 -4
  32. package/esm2015/lib/components/chart-deprecated/chart-deprecated.component.js +56 -38
  33. package/esm2015/lib/components/chart-deprecated/options/areaspline.js +7 -9
  34. package/esm2015/lib/components/chart-deprecated/options/donut.js +5 -7
  35. package/esm2015/lib/components/chart-deprecated/options/timeseries.js +8 -10
  36. package/esm2015/lib/components/checkbox/checkbox.component.js +47 -21
  37. package/esm2015/lib/components/chip/chip.component.js +24 -13
  38. package/esm2015/lib/components/divider/divider.component.js +16 -12
  39. package/esm2015/lib/components/dropdown/dropdown.component.js +154 -61
  40. package/esm2015/lib/components/dropdown/keyboard-handler.service.js +9 -7
  41. package/esm2015/lib/components/empty-state/empty-state.component.js +27 -16
  42. package/esm2015/lib/components/fab-sheet/fab-sheet.component.js +37 -23
  43. package/esm2015/lib/components/flag/flag.component.js +21 -17
  44. package/esm2015/lib/components/form-field/directives/date/date-input.directive.js +16 -15
  45. package/esm2015/lib/components/form-field/directives/decimal-mask/decimal-mask.directive.js +41 -28
  46. package/esm2015/lib/components/form-field/form-field-message/form-field-message.component.js +17 -13
  47. package/esm2015/lib/components/form-field/form-field.component.js +39 -26
  48. package/esm2015/lib/components/form-field/input/input.component.js +65 -23
  49. package/esm2015/lib/components/form-field/input-counter/input-counter.component.js +14 -11
  50. package/esm2015/lib/components/form-field/textarea/textarea.component.js +51 -20
  51. package/esm2015/lib/components/grid/breakpoint-helper.service.js +9 -9
  52. package/esm2015/lib/components/grid/grid.component.js +21 -18
  53. package/esm2015/lib/components/icon/icon-registry.service.js +11 -19
  54. package/esm2015/lib/components/icon/icon-settings.js +2 -3
  55. package/esm2015/lib/components/icon/icon.component.js +27 -20
  56. package/esm2015/lib/components/icon/icon.module.js +13 -8
  57. package/esm2015/lib/components/icon/index.js +1 -2
  58. package/esm2015/lib/components/icon/kirby-icon-settings.js +2 -4
  59. package/esm2015/lib/components/index.js +11 -10
  60. package/esm2015/lib/components/item/item.component.js +33 -16
  61. package/esm2015/lib/components/item/item.module.js +13 -8
  62. package/esm2015/lib/components/item/label/label.component.js +18 -12
  63. package/esm2015/lib/components/item-group/item-group.component.js +15 -11
  64. package/esm2015/lib/components/item-sliding/item-sliding.component.js +19 -12
  65. package/esm2015/lib/components/list/directives/infinite-scroll.directive.js +18 -17
  66. package/esm2015/lib/components/list/directives/list-item-color.directive.js +17 -11
  67. package/esm2015/lib/components/list/helpers/list-helper.js +7 -4
  68. package/esm2015/lib/components/list/index.js +2 -3
  69. package/esm2015/lib/components/list/list-experimental/list-experimental.component.js +20 -13
  70. package/esm2015/lib/components/list/list-header/list-header.component.js +14 -11
  71. package/esm2015/lib/components/list/list-item/list-item.component.js +38 -24
  72. package/esm2015/lib/components/list/list-section-header/list-section-header.component.js +15 -14
  73. package/esm2015/lib/components/list/list.component.js +81 -40
  74. package/esm2015/lib/components/list/list.directive.js +34 -45
  75. package/esm2015/lib/components/list/list.module.js +33 -12
  76. package/esm2015/lib/components/list/pipes/group-by.pipe.js +10 -6
  77. package/esm2015/lib/components/loading-overlay/loading-overlay.component.js +20 -13
  78. package/esm2015/lib/components/loading-overlay/loading-overlay.service.js +9 -13
  79. package/esm2015/lib/components/modal/action-sheet/action-sheet.component.js +32 -18
  80. package/esm2015/lib/components/modal/alert/alert.component.js +38 -26
  81. package/esm2015/lib/components/modal/alert/config/alert-config.js +1 -1
  82. package/esm2015/lib/components/modal/footer/modal-footer.component.js +25 -13
  83. package/esm2015/lib/components/modal/modal-wrapper/compact/modal-compact-wrapper.component.js +25 -21
  84. package/esm2015/lib/components/modal/modal-wrapper/config/modal-config.js +1 -1
  85. package/esm2015/lib/components/modal/modal-wrapper/modal-wrapper.component.js +124 -56
  86. package/esm2015/lib/components/modal/services/action-sheet.helper.js +8 -8
  87. package/esm2015/lib/components/modal/services/alert.helper.js +10 -20
  88. package/esm2015/lib/components/modal/services/modal-animation-builder.service.js +7 -10
  89. package/esm2015/lib/components/modal/services/modal-navigation.service.js +8 -13
  90. package/esm2015/lib/components/modal/services/modal.controller.js +17 -16
  91. package/esm2015/lib/components/modal/services/modal.helper.js +10 -10
  92. package/esm2015/lib/components/page/index.js +2 -1
  93. package/esm2015/lib/components/page/page-footer/page-footer.component.js +21 -18
  94. package/esm2015/lib/components/page/page.component.js +187 -118
  95. package/esm2015/lib/components/page/page.module.js +60 -32
  96. package/esm2015/lib/components/popover/popover.component.js +27 -23
  97. package/esm2015/lib/components/progress-circle/progress-circle-ring.component.js +29 -17
  98. package/esm2015/lib/components/progress-circle/progress-circle.component.js +30 -21
  99. package/esm2015/lib/components/radio/radio-group/radio-group.component.js +60 -34
  100. package/esm2015/lib/components/radio/radio.component.js +36 -17
  101. package/esm2015/lib/components/range/range.component.js +51 -29
  102. package/esm2015/lib/components/reorder-list/reorder-list.component.js +32 -21
  103. package/esm2015/lib/components/router-outlet/router-outlet.component.js +18 -12
  104. package/esm2015/lib/components/router-outlet/router-outlet.module.js +13 -8
  105. package/esm2015/lib/components/section-header/section-header.component.js +15 -9
  106. package/esm2015/lib/components/segmented-control/segment-item.js +1 -1
  107. package/esm2015/lib/components/segmented-control/segmented-control.component.js +38 -29
  108. package/esm2015/lib/components/shared/component-loader.directive.js +15 -16
  109. package/esm2015/lib/components/shared/resize-observer/resize-observer.factory.js +7 -5
  110. package/esm2015/lib/components/shared/resize-observer/resize-observer.service.js +7 -10
  111. package/esm2015/lib/components/slide-button/slide-button.component.js +22 -19
  112. package/esm2015/lib/components/slides/slides.component.js +42 -20
  113. package/esm2015/lib/components/spinner/index.js +3 -0
  114. package/esm2015/lib/components/spinner/spinner.component.js +14 -11
  115. package/esm2015/lib/components/spinner/spinner.module.js +14 -9
  116. package/esm2015/lib/components/stock-chart-deprecated/options/stock-chart-deprecated-options.js +9 -3
  117. package/esm2015/lib/components/stock-chart-deprecated/stock-chart-deprecated.component.js +25 -20
  118. package/esm2015/lib/components/tabs/tab-button/tab-button.component.js +21 -18
  119. package/esm2015/lib/components/tabs/tabs.component.js +20 -16
  120. package/esm2015/lib/components/tabs/tabs.module.js +14 -9
  121. package/esm2015/lib/components/tabs/tabs.service.js +9 -7
  122. package/esm2015/lib/components/toast/config/toast-config.js +1 -1
  123. package/esm2015/lib/components/toast/services/toast.controller.js +8 -8
  124. package/esm2015/lib/components/toast/services/toast.helper.js +8 -12
  125. package/esm2015/lib/components/toggle/toggle.component.js +21 -14
  126. package/esm2015/lib/components/toggle-button/index.js +3 -0
  127. package/esm2015/lib/components/toggle-button/toggle-button.component.js +20 -13
  128. package/esm2015/lib/components/toggle-button/toggle-button.module.js +13 -8
  129. package/esm2015/lib/components/web-component-proxies.component.js +13 -15
  130. package/esm2015/lib/directives/element-as-button/element-as-button.directive.js +26 -17
  131. package/esm2015/lib/directives/fit-heading/fit-heading.directive.js +16 -17
  132. package/esm2015/lib/directives/fit-heading/fit-heading.module.js +12 -7
  133. package/esm2015/lib/directives/index.js +3 -1
  134. package/esm2015/lib/directives/key-handler/key-handler.directive.js +14 -14
  135. package/esm2015/lib/directives/modal-router-link/modal-router-link.directive.js +20 -15
  136. package/esm2015/lib/directives/theme-color/theme-color.directive.js +55 -24
  137. package/esm2015/lib/helpers/element-has-ancestor.js +1 -1
  138. package/esm2015/lib/helpers/line-clamp-helper.js +7 -8
  139. package/esm2015/lib/helpers/platform.service.js +9 -11
  140. package/esm2015/lib/index.js +1 -5
  141. package/esm2015/lib/kirby.module.js +166 -25
  142. package/esm2015/lib/types/window-ref.js +9 -7
  143. package/esm2015/testing-base/kirbydesign-designsystem-testing-base.js +1 -59
  144. package/esm2015/testing-base/lib/components/index.js +56 -0
  145. package/esm2015/testing-base/lib/components/mock.accordion-item.component.js +26 -18
  146. package/esm2015/testing-base/lib/components/mock.action-sheet.component.js +38 -24
  147. package/esm2015/testing-base/lib/components/mock.app.component.js +22 -14
  148. package/esm2015/testing-base/lib/components/mock.avatar.component.js +37 -24
  149. package/esm2015/testing-base/lib/components/mock.button.component.js +36 -24
  150. package/esm2015/testing-base/lib/components/mock.calendar.component.js +54 -31
  151. package/esm2015/testing-base/lib/components/mock.card-footer.component.js +22 -14
  152. package/esm2015/testing-base/lib/components/mock.card-header.component.js +30 -20
  153. package/esm2015/testing-base/lib/components/mock.card.component.js +34 -22
  154. package/esm2015/testing-base/lib/components/mock.chart-deprecated.component.js +38 -24
  155. package/esm2015/testing-base/lib/components/mock.chart.component.js +38 -25
  156. package/esm2015/testing-base/lib/components/mock.checkbox.component.js +36 -23
  157. package/esm2015/testing-base/lib/components/mock.chip.component.js +26 -18
  158. package/esm2015/testing-base/lib/components/mock.divider.component.js +24 -17
  159. package/esm2015/testing-base/lib/components/mock.dropdown.component.js +49 -30
  160. package/esm2015/testing-base/lib/components/mock.empty-state.component.js +30 -20
  161. package/esm2015/testing-base/lib/components/mock.fab-sheet.component.js +26 -18
  162. package/esm2015/testing-base/lib/components/mock.flag.component.js +26 -18
  163. package/esm2015/testing-base/lib/components/mock.form-field-message.component.js +26 -18
  164. package/esm2015/testing-base/lib/components/mock.form-field.component.js +26 -18
  165. package/esm2015/testing-base/lib/components/mock.grid.component.js +26 -18
  166. package/esm2015/testing-base/lib/components/mock.icon.component.js +29 -20
  167. package/esm2015/testing-base/lib/components/mock.input-counter.component.js +24 -17
  168. package/esm2015/testing-base/lib/components/mock.input.component.js +42 -27
  169. package/esm2015/testing-base/lib/components/mock.item-group.component.js +22 -14
  170. package/esm2015/testing-base/lib/components/mock.item-sliding.component.js +26 -18
  171. package/esm2015/testing-base/lib/components/mock.item.component.js +33 -22
  172. package/esm2015/testing-base/lib/components/mock.label.component.js +24 -17
  173. package/esm2015/testing-base/lib/components/mock.list-experimental.component.js +22 -14
  174. package/esm2015/testing-base/lib/components/mock.list-header.component.js +22 -14
  175. package/esm2015/testing-base/lib/components/mock.list-item.component.js +40 -25
  176. package/esm2015/testing-base/lib/components/mock.list-section-header.component.js +24 -17
  177. package/esm2015/testing-base/lib/components/mock.list.component.js +50 -30
  178. package/esm2015/testing-base/lib/components/mock.loading-overlay.component.js +26 -18
  179. package/esm2015/testing-base/lib/components/mock.modal-footer.component.js +26 -18
  180. package/esm2015/testing-base/lib/components/mock.page-footer.component.js +24 -17
  181. package/esm2015/testing-base/lib/components/mock.page.component.js +228 -125
  182. package/esm2015/testing-base/lib/components/mock.popover.component.js +29 -20
  183. package/esm2015/testing-base/lib/components/mock.progress-circle.component.js +28 -19
  184. package/esm2015/testing-base/lib/components/mock.radio-group.component.js +38 -24
  185. package/esm2015/testing-base/lib/components/mock.radio.component.js +30 -20
  186. package/esm2015/testing-base/lib/components/mock.range.component.js +44 -27
  187. package/esm2015/testing-base/lib/components/mock.reorder-list.component.js +32 -21
  188. package/esm2015/testing-base/lib/components/mock.router-outlet.component.js +24 -17
  189. package/esm2015/testing-base/lib/components/mock.section-header.component.js +22 -14
  190. package/esm2015/testing-base/lib/components/mock.segmented-control.component.js +35 -23
  191. package/esm2015/testing-base/lib/components/mock.slide-button.component.js +30 -20
  192. package/esm2015/testing-base/lib/components/mock.slides.component.js +51 -0
  193. package/esm2015/testing-base/lib/components/mock.spinner.component.js +22 -14
  194. package/esm2015/testing-base/lib/components/mock.tab-button.component.js +26 -18
  195. package/esm2015/testing-base/lib/components/mock.tabs.component.js +22 -14
  196. package/esm2015/testing-base/lib/components/mock.textarea.component.js +35 -23
  197. package/esm2015/testing-base/lib/components/mock.toggle-button.component.js +26 -18
  198. package/esm2015/testing-base/lib/components/mock.toggle.component.js +28 -19
  199. package/esm2015/testing-base/lib/components/mock.web-component-proxies.component.js +33 -0
  200. package/esm2015/testing-base/lib/directives/index.js +4 -0
  201. package/esm2015/testing-base/lib/directives/mock.accordion.directive.js +22 -13
  202. package/esm2015/testing-base/lib/directives/mock.fit-heading.directive.js +24 -15
  203. package/esm2015/testing-base/lib/directives/mock.theme-color.directive.js +24 -16
  204. package/esm2015/testing-base/lib/index.js +4 -0
  205. package/esm2015/testing-base/lib/kirby-testing-base.module.js +69 -7
  206. package/esm2015/testing-base/lib/mock-components.js +5 -2
  207. package/esm2015/testing-base/public_api.js +2 -2
  208. package/esm2015/testing-jasmine/kirbydesign-designsystem-testing-jasmine.js +1 -2
  209. package/esm2015/testing-jasmine/lib/kirby-testing.module.js +14 -8
  210. package/esm2015/testing-jasmine/lib/mock-providers.js +1 -1
  211. package/esm2015/testing-jest/kirbydesign-designsystem-testing-jest.js +1 -2
  212. package/esm2015/testing-jest/lib/kirby-testing.module.js +14 -8
  213. package/esm2015/testing-jest/lib/mock-providers.js +1 -1
  214. package/fesm2015/kirbydesign-designsystem-testing-base.js +1859 -1163
  215. package/fesm2015/kirbydesign-designsystem-testing-base.js.map +1 -1
  216. package/fesm2015/kirbydesign-designsystem-testing-jasmine.js +13 -8
  217. package/fesm2015/kirbydesign-designsystem-testing-jasmine.js.map +1 -1
  218. package/fesm2015/kirbydesign-designsystem-testing-jest.js +13 -8
  219. package/fesm2015/kirbydesign-designsystem-testing-jest.js.map +1 -1
  220. package/fesm2015/kirbydesign-designsystem.js +5261 -4353
  221. package/fesm2015/kirbydesign-designsystem.js.map +1 -1
  222. package/icons/svg/more.svg +5 -7
  223. package/kirbydesign-designsystem.d.ts +1 -114
  224. package/lib/components/accordion/accordion-item.component.d.ts +3 -0
  225. package/lib/components/accordion/accordion.directive.d.ts +3 -0
  226. package/lib/components/app/app.component.d.ts +3 -0
  227. package/lib/components/app/app.module.d.ts +7 -0
  228. package/lib/components/avatar/avatar.component.d.ts +5 -2
  229. package/lib/components/button/button.component.d.ts +5 -2
  230. package/lib/components/calendar/calendar.component.d.ts +3 -0
  231. package/lib/components/calendar/helpers/calendar.helper.d.ts +3 -0
  232. package/lib/components/card/card-footer/card-footer.component.d.ts +3 -0
  233. package/lib/components/card/card-header/card-header.component.d.ts +3 -0
  234. package/lib/components/card/card.component.d.ts +3 -0
  235. package/lib/components/chart/chart-js/chart-js.service.d.ts +7 -3
  236. package/lib/components/chart/chart.component.d.ts +5 -5
  237. package/lib/components/chart/chart.module.d.ts +5 -0
  238. package/lib/components/chart/chart.types.d.ts +1 -0
  239. package/lib/components/chart/configs/chart-config.service.d.ts +4 -1
  240. package/lib/components/chart/index.d.ts +1 -0
  241. package/lib/components/chart-deprecated/chart-deprecated-helper.d.ts +3 -0
  242. package/lib/components/chart-deprecated/chart-deprecated.component.d.ts +3 -0
  243. package/lib/components/checkbox/checkbox.component.d.ts +3 -0
  244. package/lib/components/chip/chip.component.d.ts +3 -0
  245. package/lib/components/divider/divider.component.d.ts +3 -0
  246. package/lib/components/dropdown/dropdown.component.d.ts +5 -2
  247. package/lib/components/dropdown/keyboard-handler.service.d.ts +3 -0
  248. package/lib/components/empty-state/empty-state.component.d.ts +3 -0
  249. package/lib/components/fab-sheet/fab-sheet.component.d.ts +3 -0
  250. package/lib/components/flag/flag.component.d.ts +3 -0
  251. package/lib/components/form-field/directives/date/date-input.directive.d.ts +3 -0
  252. package/lib/components/form-field/directives/decimal-mask/decimal-mask.directive.d.ts +3 -0
  253. package/lib/components/form-field/form-field-message/form-field-message.component.d.ts +3 -0
  254. package/lib/components/form-field/form-field.component.d.ts +3 -0
  255. package/lib/components/form-field/input/input.component.d.ts +4 -1
  256. package/lib/components/form-field/input-counter/input-counter.component.d.ts +5 -2
  257. package/lib/components/form-field/textarea/textarea.component.d.ts +3 -0
  258. package/lib/components/grid/breakpoint-helper.service.d.ts +3 -0
  259. package/lib/components/grid/grid.component.d.ts +3 -0
  260. package/lib/components/icon/icon-registry.service.d.ts +4 -2
  261. package/lib/components/icon/icon-settings.d.ts +0 -2
  262. package/lib/components/icon/icon.component.d.ts +4 -1
  263. package/lib/components/icon/icon.module.d.ts +6 -0
  264. package/lib/components/icon/index.d.ts +1 -1
  265. package/lib/components/index.d.ts +10 -9
  266. package/lib/components/item/item.component.d.ts +4 -1
  267. package/lib/components/item/item.module.d.ts +9 -0
  268. package/lib/components/item/label/label.component.d.ts +3 -0
  269. package/lib/components/item-group/item-group.component.d.ts +3 -0
  270. package/lib/components/item-sliding/item-sliding.component.d.ts +3 -0
  271. package/lib/components/list/directives/infinite-scroll.directive.d.ts +3 -0
  272. package/lib/components/list/directives/list-item-color.directive.d.ts +3 -0
  273. package/lib/components/list/helpers/list-helper.d.ts +3 -0
  274. package/lib/components/list/index.d.ts +1 -2
  275. package/lib/components/list/list-experimental/list-experimental.component.d.ts +3 -0
  276. package/lib/components/list/list-header/list-header.component.d.ts +3 -0
  277. package/lib/components/list/list-item/list-item.component.d.ts +3 -0
  278. package/lib/components/list/list-section-header/list-section-header.component.d.ts +3 -0
  279. package/lib/components/list/list.component.d.ts +3 -0
  280. package/lib/components/list/list.directive.d.ts +9 -6
  281. package/lib/components/list/list.module.d.ts +16 -0
  282. package/lib/components/list/pipes/group-by.pipe.d.ts +3 -0
  283. package/lib/components/loading-overlay/loading-overlay.component.d.ts +3 -0
  284. package/lib/components/loading-overlay/loading-overlay.service.d.ts +3 -0
  285. package/lib/components/modal/action-sheet/action-sheet.component.d.ts +3 -0
  286. package/lib/components/modal/alert/alert.component.d.ts +5 -2
  287. package/lib/components/modal/alert/config/alert-config.d.ts +0 -8
  288. package/lib/components/modal/footer/modal-footer.component.d.ts +3 -0
  289. package/lib/components/modal/modal-wrapper/compact/modal-compact-wrapper.component.d.ts +3 -0
  290. package/lib/components/modal/modal-wrapper/config/modal-config.d.ts +1 -8
  291. package/lib/components/modal/modal-wrapper/modal-wrapper.component.d.ts +5 -0
  292. package/lib/components/modal/services/action-sheet.helper.d.ts +3 -0
  293. package/lib/components/modal/services/alert.helper.d.ts +4 -2
  294. package/lib/components/modal/services/modal-animation-builder.service.d.ts +3 -0
  295. package/lib/components/modal/services/modal-navigation.service.d.ts +3 -0
  296. package/lib/components/modal/services/modal.controller.d.ts +3 -0
  297. package/lib/components/modal/services/modal.helper.d.ts +3 -0
  298. package/lib/components/page/index.d.ts +1 -0
  299. package/lib/components/page/page-footer/page-footer.component.d.ts +3 -0
  300. package/lib/components/page/page.component.d.ts +26 -0
  301. package/lib/components/page/page.module.d.ts +10 -0
  302. package/lib/components/popover/popover.component.d.ts +4 -1
  303. package/lib/components/progress-circle/progress-circle-ring.component.d.ts +3 -0
  304. package/lib/components/progress-circle/progress-circle.component.d.ts +3 -0
  305. package/lib/components/radio/radio-group/radio-group.component.d.ts +3 -0
  306. package/lib/components/radio/radio.component.d.ts +3 -0
  307. package/lib/components/range/range.component.d.ts +3 -0
  308. package/lib/components/reorder-list/reorder-list.component.d.ts +3 -0
  309. package/lib/components/router-outlet/router-outlet.component.d.ts +3 -0
  310. package/lib/components/router-outlet/router-outlet.module.d.ts +7 -0
  311. package/lib/components/section-header/section-header.component.d.ts +3 -0
  312. package/lib/components/segmented-control/segment-item.d.ts +0 -4
  313. package/lib/components/segmented-control/segmented-control.component.d.ts +4 -1
  314. package/lib/components/shared/component-loader.directive.d.ts +3 -0
  315. package/lib/components/shared/resize-observer/resize-observer.factory.d.ts +3 -0
  316. package/lib/components/shared/resize-observer/resize-observer.service.d.ts +3 -0
  317. package/lib/components/slide-button/slide-button.component.d.ts +3 -0
  318. package/lib/components/slides/slides.component.d.ts +5 -0
  319. package/lib/components/spinner/index.d.ts +2 -0
  320. package/lib/components/spinner/spinner.component.d.ts +3 -0
  321. package/lib/components/spinner/spinner.module.d.ts +6 -0
  322. package/lib/components/stock-chart-deprecated/stock-chart-deprecated.component.d.ts +3 -0
  323. package/lib/components/tabs/tab-button/tab-button.component.d.ts +3 -0
  324. package/lib/components/tabs/tabs.component.d.ts +3 -0
  325. package/lib/components/tabs/tabs.module.d.ts +9 -0
  326. package/lib/components/tabs/tabs.service.d.ts +3 -0
  327. package/lib/components/toast/config/toast-config.d.ts +1 -4
  328. package/lib/components/toast/services/toast.controller.d.ts +3 -0
  329. package/lib/components/toast/services/toast.helper.d.ts +3 -0
  330. package/lib/components/toggle/toggle.component.d.ts +3 -0
  331. package/lib/components/toggle-button/index.d.ts +2 -0
  332. package/lib/components/toggle-button/toggle-button.component.d.ts +3 -0
  333. package/lib/components/toggle-button/toggle-button.module.d.ts +6 -0
  334. package/lib/components/web-component-proxies.component.d.ts +3 -0
  335. package/lib/custom-elements-initializer.d.ts +1 -1
  336. package/lib/directives/element-as-button/element-as-button.directive.d.ts +3 -0
  337. package/lib/directives/fit-heading/fit-heading.directive.d.ts +3 -0
  338. package/lib/directives/fit-heading/fit-heading.module.d.ts +5 -0
  339. package/lib/directives/index.d.ts +2 -0
  340. package/lib/directives/key-handler/key-handler.directive.d.ts +3 -0
  341. package/lib/directives/modal-router-link/modal-router-link.directive.d.ts +3 -0
  342. package/lib/directives/theme-color/theme-color.directive.d.ts +3 -0
  343. package/lib/helpers/line-clamp-helper.d.ts +3 -0
  344. package/lib/helpers/platform.service.d.ts +3 -0
  345. package/lib/index.d.ts +0 -1
  346. package/lib/kirby.module.d.ts +69 -0
  347. package/lib/types/window-ref.d.ts +3 -0
  348. package/package.json +3 -4
  349. package/polyfills/intersection-observer-polyfill-loader.js +12 -12
  350. package/polyfills/resize-observer-polyfill-loader.js +1 -1
  351. package/readme.md +0 -16
  352. package/scss/_trigger-publish.scss +1 -0
  353. package/scss/_trigger.scss +1 -0
  354. package/scss/awesome-stylesheet.scss +1 -0
  355. package/scss/base/_awesome-partial.scss +1 -0
  356. package/scss/base/_index.scss +1 -0
  357. package/scss/base/_interaction-states.scss +1 -0
  358. package/scss/base/_link.scss +1 -0
  359. package/scss/base/index.scss +1 -0
  360. package/scss/interaction-state/_active.scss +1 -0
  361. package/scss/interaction-state/_focus.scss +1 -0
  362. package/scss/interaction-state/_hover.scss +1 -0
  363. package/scss/interaction-state/_index.scss +1 -0
  364. package/scss/interaction-state/_interaction-state.utilities.scss +1 -0
  365. package/scss/interaction-state/_layer.scss +1 -0
  366. package/scss/interaction-state/_state-layer.scss +1 -0
  367. package/scss/interaction-state/_utilities.scss +1 -0
  368. package/scss/interaction-state/ionic/_active.scss +1 -0
  369. package/scss/interaction-state/ionic/_hover.scss +1 -0
  370. package/scss/interaction-state/ionic/_index.scss +1 -0
  371. package/scss/interaction-states/_hover.scss +1 -0
  372. package/scss/interaction-states/_index.scss +1 -0
  373. package/scss/opt-out/_index.scss +1 -0
  374. package/scss/opt-out/_link.scss +1 -0
  375. package/testing-base/kirbydesign-designsystem-testing-base.d.ts +1 -58
  376. package/testing-base/lib/components/index.d.ts +55 -0
  377. package/testing-base/lib/components/mock.accordion-item.component.d.ts +3 -0
  378. package/testing-base/lib/components/mock.action-sheet.component.d.ts +3 -0
  379. package/testing-base/lib/components/mock.app.component.d.ts +3 -0
  380. package/testing-base/lib/components/mock.avatar.component.d.ts +4 -1
  381. package/testing-base/lib/components/mock.button.component.d.ts +4 -1
  382. package/testing-base/lib/components/mock.calendar.component.d.ts +4 -0
  383. package/testing-base/lib/components/mock.card-footer.component.d.ts +3 -0
  384. package/testing-base/lib/components/mock.card-header.component.d.ts +3 -0
  385. package/testing-base/lib/components/mock.card.component.d.ts +3 -0
  386. package/testing-base/lib/components/mock.chart-deprecated.component.d.ts +3 -0
  387. package/testing-base/lib/components/mock.chart.component.d.ts +5 -3
  388. package/testing-base/lib/components/mock.checkbox.component.d.ts +3 -0
  389. package/testing-base/lib/components/mock.chip.component.d.ts +3 -0
  390. package/testing-base/lib/components/mock.divider.component.d.ts +3 -0
  391. package/testing-base/lib/components/mock.dropdown.component.d.ts +4 -1
  392. package/testing-base/lib/components/mock.empty-state.component.d.ts +3 -0
  393. package/testing-base/lib/components/mock.fab-sheet.component.d.ts +3 -0
  394. package/testing-base/lib/components/mock.flag.component.d.ts +3 -0
  395. package/testing-base/lib/components/mock.form-field-message.component.d.ts +3 -0
  396. package/testing-base/lib/components/mock.form-field.component.d.ts +3 -0
  397. package/testing-base/lib/components/mock.grid.component.d.ts +3 -0
  398. package/testing-base/lib/components/mock.icon.component.d.ts +4 -1
  399. package/testing-base/lib/components/mock.input-counter.component.d.ts +3 -0
  400. package/testing-base/lib/components/mock.input.component.d.ts +4 -1
  401. package/testing-base/lib/components/mock.item-group.component.d.ts +3 -0
  402. package/testing-base/lib/components/mock.item-sliding.component.d.ts +3 -0
  403. package/testing-base/lib/components/mock.item.component.d.ts +4 -1
  404. package/testing-base/lib/components/mock.label.component.d.ts +3 -0
  405. package/testing-base/lib/components/mock.list-experimental.component.d.ts +3 -0
  406. package/testing-base/lib/components/mock.list-header.component.d.ts +3 -0
  407. package/testing-base/lib/components/mock.list-item.component.d.ts +3 -0
  408. package/testing-base/lib/components/mock.list-section-header.component.d.ts +3 -0
  409. package/testing-base/lib/components/mock.list.component.d.ts +3 -0
  410. package/testing-base/lib/components/mock.loading-overlay.component.d.ts +3 -0
  411. package/testing-base/lib/components/mock.modal-footer.component.d.ts +3 -0
  412. package/testing-base/lib/components/mock.page-footer.component.d.ts +3 -0
  413. package/testing-base/lib/components/mock.page.component.d.ts +24 -0
  414. package/testing-base/lib/components/mock.popover.component.d.ts +4 -1
  415. package/testing-base/lib/components/mock.progress-circle.component.d.ts +3 -0
  416. package/testing-base/lib/components/mock.radio-group.component.d.ts +3 -0
  417. package/testing-base/lib/components/mock.radio.component.d.ts +3 -0
  418. package/testing-base/lib/components/mock.range.component.d.ts +3 -0
  419. package/testing-base/lib/components/mock.reorder-list.component.d.ts +3 -0
  420. package/testing-base/lib/components/mock.router-outlet.component.d.ts +3 -0
  421. package/testing-base/lib/components/mock.section-header.component.d.ts +3 -0
  422. package/testing-base/lib/components/mock.segmented-control.component.d.ts +4 -1
  423. package/testing-base/lib/components/mock.slide-button.component.d.ts +3 -0
  424. package/testing-base/lib/components/mock.slides.component.d.ts +11 -0
  425. package/testing-base/lib/components/mock.spinner.component.d.ts +3 -0
  426. package/testing-base/lib/components/mock.tab-button.component.d.ts +3 -0
  427. package/testing-base/lib/components/mock.tabs.component.d.ts +3 -0
  428. package/testing-base/lib/components/mock.textarea.component.d.ts +3 -0
  429. package/testing-base/lib/components/mock.toggle-button.component.d.ts +3 -0
  430. package/testing-base/lib/components/mock.toggle.component.d.ts +3 -0
  431. package/testing-base/lib/components/mock.web-component-proxies.component.d.ts +8 -0
  432. package/testing-base/lib/directives/index.d.ts +3 -0
  433. package/testing-base/lib/directives/mock.accordion.directive.d.ts +3 -0
  434. package/testing-base/lib/directives/mock.fit-heading.directive.d.ts +3 -0
  435. package/testing-base/lib/directives/mock.theme-color.directive.d.ts +3 -0
  436. package/testing-base/lib/index.d.ts +3 -0
  437. package/testing-base/lib/kirby-testing-base.module.d.ts +61 -0
  438. package/testing-base/package.json +0 -1
  439. package/testing-base/public_api.d.ts +1 -1
  440. package/testing-jasmine/kirbydesign-designsystem-testing-jasmine.d.ts +1 -1
  441. package/testing-jasmine/lib/kirby-testing.module.d.ts +5 -0
  442. package/testing-jasmine/package.json +0 -1
  443. package/testing-jest/kirbydesign-designsystem-testing-jest.d.ts +1 -1
  444. package/testing-jest/lib/kirby-testing.module.d.ts +5 -0
  445. package/testing-jest/package.json +0 -1
  446. package/README.md +0 -7
  447. package/bundles/kirbydesign-designsystem-testing-base.umd.min.js +0 -2
  448. package/bundles/kirbydesign-designsystem-testing-base.umd.min.js.map +0 -1
  449. package/bundles/kirbydesign-designsystem-testing-jasmine.umd.min.js +0 -16
  450. package/bundles/kirbydesign-designsystem-testing-jasmine.umd.min.js.map +0 -1
  451. package/bundles/kirbydesign-designsystem-testing-jest.umd.min.js +0 -16
  452. package/bundles/kirbydesign-designsystem-testing-jest.umd.min.js.map +0 -1
  453. package/bundles/kirbydesign-designsystem.umd.min.js +0 -2
  454. package/bundles/kirbydesign-designsystem.umd.min.js.map +0 -1
  455. package/esm2015/index.metadata.json +0 -1
  456. package/esm2015/kirbydesign-designsystem.metadata.json +0 -1
  457. package/esm2015/lib/components/accordion/accordion-item.component.metadata.json +0 -1
  458. package/esm2015/lib/components/accordion/accordion.directive.metadata.json +0 -1
  459. package/esm2015/lib/components/accordion/index.metadata.json +0 -1
  460. package/esm2015/lib/components/angular-component-lib/utils.metadata.json +0 -1
  461. package/esm2015/lib/components/app/app.component.metadata.json +0 -1
  462. package/esm2015/lib/components/app/app.module.metadata.json +0 -1
  463. package/esm2015/lib/components/app/index.metadata.json +0 -1
  464. package/esm2015/lib/components/avatar/avatar.component.metadata.json +0 -1
  465. package/esm2015/lib/components/button/button.component.metadata.json +0 -1
  466. package/esm2015/lib/components/calendar/calendar.component.metadata.json +0 -1
  467. package/esm2015/lib/components/calendar/helpers/calendar-cell.model.metadata.json +0 -1
  468. package/esm2015/lib/components/calendar/helpers/calendar-options.model.metadata.json +0 -1
  469. package/esm2015/lib/components/calendar/helpers/calendar.helper.metadata.json +0 -1
  470. package/esm2015/lib/components/calendar/index.metadata.json +0 -1
  471. package/esm2015/lib/components/calendar/options/calendar-year-navigator-config.metadata.json +0 -1
  472. package/esm2015/lib/components/card/card-footer/card-footer.component.metadata.json +0 -1
  473. package/esm2015/lib/components/card/card-header/card-header.component.metadata.json +0 -1
  474. package/esm2015/lib/components/card/card.component.metadata.json +0 -1
  475. package/esm2015/lib/components/card/index.metadata.json +0 -1
  476. package/esm2015/lib/components/chart/chart-js/chart-js.service.metadata.json +0 -1
  477. package/esm2015/lib/components/chart/chart-js/chartjs-plugin-marker/chartjs-plugin-marker.metadata.json +0 -1
  478. package/esm2015/lib/components/chart/chart-js/configured-chart-js.metadata.json +0 -1
  479. package/esm2015/lib/components/chart/chart.component.metadata.json +0 -1
  480. package/esm2015/lib/components/chart/chart.module.metadata.json +0 -1
  481. package/esm2015/lib/components/chart/chart.types.metadata.json +0 -1
  482. package/esm2015/lib/components/chart/configs/annotations.config.metadata.json +0 -1
  483. package/esm2015/lib/components/chart/configs/chart-config.service.metadata.json +0 -1
  484. package/esm2015/lib/components/chart/configs/global-defaults.config.metadata.json +0 -1
  485. package/esm2015/lib/components/chart/configs/interaction-functions-extensions.config.metadata.json +0 -1
  486. package/esm2015/lib/components/chart/configs/shared.utils.metadata.json +0 -1
  487. package/esm2015/lib/components/chart/configs/type.config.metadata.json +0 -1
  488. package/esm2015/lib/components/chart/index.metadata.json +0 -1
  489. package/esm2015/lib/components/chart-deprecated/chart-deprecated-helper.metadata.json +0 -1
  490. package/esm2015/lib/components/chart-deprecated/chart-deprecated-type.metadata.json +0 -1
  491. package/esm2015/lib/components/chart-deprecated/chart-deprecated.component.metadata.json +0 -1
  492. package/esm2015/lib/components/chart-deprecated/index.metadata.json +0 -1
  493. package/esm2015/lib/components/chart-deprecated/options/activitygauge.metadata.json +0 -1
  494. package/esm2015/lib/components/chart-deprecated/options/areaspline.metadata.json +0 -1
  495. package/esm2015/lib/components/chart-deprecated/options/bar.metadata.json +0 -1
  496. package/esm2015/lib/components/chart-deprecated/options/column.metadata.json +0 -1
  497. package/esm2015/lib/components/chart-deprecated/options/donut.metadata.json +0 -1
  498. package/esm2015/lib/components/chart-deprecated/options/timeseries.metadata.json +0 -1
  499. package/esm2015/lib/components/checkbox/checkbox.component.metadata.json +0 -1
  500. package/esm2015/lib/components/chip/chip.component.metadata.json +0 -1
  501. package/esm2015/lib/components/divider/divider.component.metadata.json +0 -1
  502. package/esm2015/lib/components/dropdown/dropdown.component.metadata.json +0 -1
  503. package/esm2015/lib/components/dropdown/dropdown.types.metadata.json +0 -1
  504. package/esm2015/lib/components/dropdown/keyboard-handler.service.metadata.json +0 -1
  505. package/esm2015/lib/components/empty-state/empty-state.component.metadata.json +0 -1
  506. package/esm2015/lib/components/fab-sheet/fab-sheet.component.metadata.json +0 -1
  507. package/esm2015/lib/components/flag/flag.component.metadata.json +0 -1
  508. package/esm2015/lib/components/form-field/directives/date/date-input.directive.metadata.json +0 -1
  509. package/esm2015/lib/components/form-field/directives/decimal-mask/decimal-mask.directive.metadata.json +0 -1
  510. package/esm2015/lib/components/form-field/form-field-message/form-field-message.component.metadata.json +0 -1
  511. package/esm2015/lib/components/form-field/form-field.component.metadata.json +0 -1
  512. package/esm2015/lib/components/form-field/index.metadata.json +0 -1
  513. package/esm2015/lib/components/form-field/input/input.component.metadata.json +0 -1
  514. package/esm2015/lib/components/form-field/input-counter/input-counter.component.metadata.json +0 -1
  515. package/esm2015/lib/components/form-field/textarea/textarea.component.metadata.json +0 -1
  516. package/esm2015/lib/components/grid/breakpoint-helper.service.metadata.json +0 -1
  517. package/esm2015/lib/components/grid/grid-card-configuration.metadata.json +0 -1
  518. package/esm2015/lib/components/grid/grid.component.metadata.json +0 -1
  519. package/esm2015/lib/components/icon/icon-registry.service.metadata.json +0 -1
  520. package/esm2015/lib/components/icon/icon-settings.metadata.json +0 -1
  521. package/esm2015/lib/components/icon/icon.component.metadata.json +0 -1
  522. package/esm2015/lib/components/icon/icon.module.metadata.json +0 -1
  523. package/esm2015/lib/components/icon/index.metadata.json +0 -1
  524. package/esm2015/lib/components/icon/kirby-icon-settings.metadata.json +0 -1
  525. package/esm2015/lib/components/index.metadata.json +0 -1
  526. package/esm2015/lib/components/item/index.metadata.json +0 -1
  527. package/esm2015/lib/components/item/item.component.metadata.json +0 -1
  528. package/esm2015/lib/components/item/item.module.metadata.json +0 -1
  529. package/esm2015/lib/components/item/label/label.component.metadata.json +0 -1
  530. package/esm2015/lib/components/item-group/item-group.component.metadata.json +0 -1
  531. package/esm2015/lib/components/item-sliding/index.metadata.json +0 -1
  532. package/esm2015/lib/components/item-sliding/item-sliding.component.metadata.json +0 -1
  533. package/esm2015/lib/components/item-sliding/item-sliding.types.metadata.json +0 -1
  534. package/esm2015/lib/components/list/directives/infinite-scroll.directive.metadata.json +0 -1
  535. package/esm2015/lib/components/list/directives/list-item-color.directive.metadata.json +0 -1
  536. package/esm2015/lib/components/list/directives/scroll.model.metadata.json +0 -1
  537. package/esm2015/lib/components/list/helpers/list-helper.metadata.json +0 -1
  538. package/esm2015/lib/components/list/index.metadata.json +0 -1
  539. package/esm2015/lib/components/list/list-experimental/list-experimental.component.metadata.json +0 -1
  540. package/esm2015/lib/components/list/list-header/list-header.component.metadata.json +0 -1
  541. package/esm2015/lib/components/list/list-item/list-item.component.metadata.json +0 -1
  542. package/esm2015/lib/components/list/list-section-header/list-section-header.component.metadata.json +0 -1
  543. package/esm2015/lib/components/list/list-swipe-action.type.metadata.json +0 -1
  544. package/esm2015/lib/components/list/list.component.metadata.json +0 -1
  545. package/esm2015/lib/components/list/list.directive.metadata.json +0 -1
  546. package/esm2015/lib/components/list/list.event.metadata.json +0 -1
  547. package/esm2015/lib/components/list/list.module.metadata.json +0 -1
  548. package/esm2015/lib/components/list/pipes/group-by.pipe.metadata.json +0 -1
  549. package/esm2015/lib/components/loading-overlay/index.metadata.json +0 -1
  550. package/esm2015/lib/components/loading-overlay/loading-overlay.component.metadata.json +0 -1
  551. package/esm2015/lib/components/loading-overlay/loading-overlay.service.metadata.json +0 -1
  552. package/esm2015/lib/components/modal/action-sheet/action-sheet.component.metadata.json +0 -1
  553. package/esm2015/lib/components/modal/action-sheet/config/action-sheet-config.metadata.json +0 -1
  554. package/esm2015/lib/components/modal/action-sheet/config/action-sheet-item.metadata.json +0 -1
  555. package/esm2015/lib/components/modal/alert/alert.component.metadata.json +0 -1
  556. package/esm2015/lib/components/modal/alert/config/alert-config.metadata.json +0 -1
  557. package/esm2015/lib/components/modal/footer/modal-footer.component.metadata.json +0 -1
  558. package/esm2015/lib/components/modal/index.metadata.json +0 -1
  559. package/esm2015/lib/components/modal/modal-wrapper/compact/modal-compact-wrapper.component.metadata.json +0 -1
  560. package/esm2015/lib/components/modal/modal-wrapper/config/drawer-supplementary-action.metadata.json +0 -1
  561. package/esm2015/lib/components/modal/modal-wrapper/config/modal-config.helper.metadata.json +0 -1
  562. package/esm2015/lib/components/modal/modal-wrapper/config/modal-config.metadata.json +0 -1
  563. package/esm2015/lib/components/modal/modal-wrapper/modal-wrapper.component.metadata.json +0 -1
  564. package/esm2015/lib/components/modal/services/action-sheet.helper.metadata.json +0 -1
  565. package/esm2015/lib/components/modal/services/alert.helper.metadata.json +0 -1
  566. package/esm2015/lib/components/modal/services/modal-animation-builder.service.metadata.json +0 -1
  567. package/esm2015/lib/components/modal/services/modal-navigation.service.metadata.json +0 -1
  568. package/esm2015/lib/components/modal/services/modal.controller.metadata.json +0 -1
  569. package/esm2015/lib/components/modal/services/modal.helper.metadata.json +0 -1
  570. package/esm2015/lib/components/modal/services/modal.interfaces.metadata.json +0 -1
  571. package/esm2015/lib/components/page/index.metadata.json +0 -1
  572. package/esm2015/lib/components/page/page-footer/page-footer.component.metadata.json +0 -1
  573. package/esm2015/lib/components/page/page.component.metadata.json +0 -1
  574. package/esm2015/lib/components/page/page.module.metadata.json +0 -1
  575. package/esm2015/lib/components/popover/popover.component.metadata.json +0 -1
  576. package/esm2015/lib/components/progress-circle/progress-circle-ring.component.metadata.json +0 -1
  577. package/esm2015/lib/components/progress-circle/progress-circle.component.metadata.json +0 -1
  578. package/esm2015/lib/components/radio/index.metadata.json +0 -1
  579. package/esm2015/lib/components/radio/radio-group/radio-group.component.metadata.json +0 -1
  580. package/esm2015/lib/components/radio/radio.component.metadata.json +0 -1
  581. package/esm2015/lib/components/range/range.component.metadata.json +0 -1
  582. package/esm2015/lib/components/reorder-list/index.metadata.json +0 -1
  583. package/esm2015/lib/components/reorder-list/reorder-event.metadata.json +0 -1
  584. package/esm2015/lib/components/reorder-list/reorder-list.component.metadata.json +0 -1
  585. package/esm2015/lib/components/router-outlet/index.metadata.json +0 -1
  586. package/esm2015/lib/components/router-outlet/router-outlet.component.metadata.json +0 -1
  587. package/esm2015/lib/components/router-outlet/router-outlet.module.metadata.json +0 -1
  588. package/esm2015/lib/components/section-header/section-header.component.metadata.json +0 -1
  589. package/esm2015/lib/components/segmented-control/segment-item.metadata.json +0 -1
  590. package/esm2015/lib/components/segmented-control/segmented-control.component.metadata.json +0 -1
  591. package/esm2015/lib/components/shared/component-configuration.metadata.json +0 -1
  592. package/esm2015/lib/components/shared/component-loader.directive.metadata.json +0 -1
  593. package/esm2015/lib/components/shared/dynamic-component.metadata.json +0 -1
  594. package/esm2015/lib/components/shared/index.metadata.json +0 -1
  595. package/esm2015/lib/components/shared/resize-observer/resize-observer.factory.metadata.json +0 -1
  596. package/esm2015/lib/components/shared/resize-observer/resize-observer.service.metadata.json +0 -1
  597. package/esm2015/lib/components/shared/resize-observer/types/resize-observer-callback.metadata.json +0 -1
  598. package/esm2015/lib/components/shared/resize-observer/types/resize-observer-entry.metadata.json +0 -1
  599. package/esm2015/lib/components/shared/resize-observer/types/resize-observer.metadata.json +0 -1
  600. package/esm2015/lib/components/slide-button/slide-button.component.metadata.json +0 -1
  601. package/esm2015/lib/components/slides/slides.component.metadata.json +0 -1
  602. package/esm2015/lib/components/spinner/spinner.component.metadata.json +0 -1
  603. package/esm2015/lib/components/spinner/spinner.module.metadata.json +0 -1
  604. package/esm2015/lib/components/stock-chart-deprecated/index.metadata.json +0 -1
  605. package/esm2015/lib/components/stock-chart-deprecated/options/stock-chart-deprecated-options.metadata.json +0 -1
  606. package/esm2015/lib/components/stock-chart-deprecated/stock-chart-deprecated.component.metadata.json +0 -1
  607. package/esm2015/lib/components/tabs/index.metadata.json +0 -1
  608. package/esm2015/lib/components/tabs/tab-button/tab-button.component.metadata.json +0 -1
  609. package/esm2015/lib/components/tabs/tab-button/tab-button.events.metadata.json +0 -1
  610. package/esm2015/lib/components/tabs/tabs.component.metadata.json +0 -1
  611. package/esm2015/lib/components/tabs/tabs.module.metadata.json +0 -1
  612. package/esm2015/lib/components/tabs/tabs.service.metadata.json +0 -1
  613. package/esm2015/lib/components/toast/config/toast-config.metadata.json +0 -1
  614. package/esm2015/lib/components/toast/index.metadata.json +0 -1
  615. package/esm2015/lib/components/toast/services/toast.controller.metadata.json +0 -1
  616. package/esm2015/lib/components/toast/services/toast.helper.metadata.json +0 -1
  617. package/esm2015/lib/components/toggle/toggle.component.metadata.json +0 -1
  618. package/esm2015/lib/components/toggle-button/toggle-button.component.metadata.json +0 -1
  619. package/esm2015/lib/components/toggle-button/toggle-button.module.metadata.json +0 -1
  620. package/esm2015/lib/components/web-component-proxies.component.metadata.json +0 -1
  621. package/esm2015/lib/custom-elements-initializer.metadata.json +0 -1
  622. package/esm2015/lib/directives/element-as-button/element-as-button.directive.metadata.json +0 -1
  623. package/esm2015/lib/directives/fit-heading/fit-heading.directive.metadata.json +0 -1
  624. package/esm2015/lib/directives/fit-heading/fit-heading.module.metadata.json +0 -1
  625. package/esm2015/lib/directives/index.metadata.json +0 -1
  626. package/esm2015/lib/directives/key-handler/key-handler.directive.metadata.json +0 -1
  627. package/esm2015/lib/directives/modal-router-link/modal-router-link.directive.metadata.json +0 -1
  628. package/esm2015/lib/directives/theme-color/theme-color.directive.metadata.json +0 -1
  629. package/esm2015/lib/helpers/color-helper.metadata.json +0 -1
  630. package/esm2015/lib/helpers/deep-copy.metadata.json +0 -1
  631. package/esm2015/lib/helpers/design-token-helper.metadata.json +0 -1
  632. package/esm2015/lib/helpers/element-has-ancestor.metadata.json +0 -1
  633. package/esm2015/lib/helpers/index.metadata.json +0 -1
  634. package/esm2015/lib/helpers/line-clamp-helper.metadata.json +0 -1
  635. package/esm2015/lib/helpers/merge-deep.metadata.json +0 -1
  636. package/esm2015/lib/helpers/platform.service.metadata.json +0 -1
  637. package/esm2015/lib/helpers/string-helper.metadata.json +0 -1
  638. package/esm2015/lib/helpers/theme-color.type.metadata.json +0 -1
  639. package/esm2015/lib/helpers/unique-id-generator.helper.metadata.json +0 -1
  640. package/esm2015/lib/index.metadata.json +0 -1
  641. package/esm2015/lib/kirby.module.metadata.json +0 -1
  642. package/esm2015/lib/scss/scss-helper.metadata.json +0 -1
  643. package/esm2015/lib/types/window-ref.metadata.json +0 -1
  644. package/esm2015/testing-base/kirbydesign-designsystem-testing-base.metadata.json +0 -1
  645. package/esm2015/testing-base/lib/components/mock.accordion-item.component.metadata.json +0 -1
  646. package/esm2015/testing-base/lib/components/mock.action-sheet.component.metadata.json +0 -1
  647. package/esm2015/testing-base/lib/components/mock.app.component.metadata.json +0 -1
  648. package/esm2015/testing-base/lib/components/mock.avatar.component.metadata.json +0 -1
  649. package/esm2015/testing-base/lib/components/mock.button.component.metadata.json +0 -1
  650. package/esm2015/testing-base/lib/components/mock.calendar.component.metadata.json +0 -1
  651. package/esm2015/testing-base/lib/components/mock.card-footer.component.metadata.json +0 -1
  652. package/esm2015/testing-base/lib/components/mock.card-header.component.metadata.json +0 -1
  653. package/esm2015/testing-base/lib/components/mock.card.component.metadata.json +0 -1
  654. package/esm2015/testing-base/lib/components/mock.chart-deprecated.component.metadata.json +0 -1
  655. package/esm2015/testing-base/lib/components/mock.chart.component.metadata.json +0 -1
  656. package/esm2015/testing-base/lib/components/mock.checkbox.component.metadata.json +0 -1
  657. package/esm2015/testing-base/lib/components/mock.chip.component.metadata.json +0 -1
  658. package/esm2015/testing-base/lib/components/mock.divider.component.metadata.json +0 -1
  659. package/esm2015/testing-base/lib/components/mock.dropdown.component.metadata.json +0 -1
  660. package/esm2015/testing-base/lib/components/mock.empty-state.component.metadata.json +0 -1
  661. package/esm2015/testing-base/lib/components/mock.fab-sheet.component.metadata.json +0 -1
  662. package/esm2015/testing-base/lib/components/mock.flag.component.metadata.json +0 -1
  663. package/esm2015/testing-base/lib/components/mock.form-field-message.component.metadata.json +0 -1
  664. package/esm2015/testing-base/lib/components/mock.form-field.component.metadata.json +0 -1
  665. package/esm2015/testing-base/lib/components/mock.grid.component.metadata.json +0 -1
  666. package/esm2015/testing-base/lib/components/mock.icon.component.metadata.json +0 -1
  667. package/esm2015/testing-base/lib/components/mock.input-counter.component.metadata.json +0 -1
  668. package/esm2015/testing-base/lib/components/mock.input.component.metadata.json +0 -1
  669. package/esm2015/testing-base/lib/components/mock.item-group.component.metadata.json +0 -1
  670. package/esm2015/testing-base/lib/components/mock.item-sliding.component.metadata.json +0 -1
  671. package/esm2015/testing-base/lib/components/mock.item.component.metadata.json +0 -1
  672. package/esm2015/testing-base/lib/components/mock.label.component.metadata.json +0 -1
  673. package/esm2015/testing-base/lib/components/mock.list-experimental.component.metadata.json +0 -1
  674. package/esm2015/testing-base/lib/components/mock.list-header.component.metadata.json +0 -1
  675. package/esm2015/testing-base/lib/components/mock.list-item.component.metadata.json +0 -1
  676. package/esm2015/testing-base/lib/components/mock.list-section-header.component.metadata.json +0 -1
  677. package/esm2015/testing-base/lib/components/mock.list.component.metadata.json +0 -1
  678. package/esm2015/testing-base/lib/components/mock.loading-overlay.component.metadata.json +0 -1
  679. package/esm2015/testing-base/lib/components/mock.modal-footer.component.metadata.json +0 -1
  680. package/esm2015/testing-base/lib/components/mock.page-footer.component.metadata.json +0 -1
  681. package/esm2015/testing-base/lib/components/mock.page.component.metadata.json +0 -1
  682. package/esm2015/testing-base/lib/components/mock.popover.component.metadata.json +0 -1
  683. package/esm2015/testing-base/lib/components/mock.progress-circle.component.metadata.json +0 -1
  684. package/esm2015/testing-base/lib/components/mock.radio-group.component.metadata.json +0 -1
  685. package/esm2015/testing-base/lib/components/mock.radio.component.metadata.json +0 -1
  686. package/esm2015/testing-base/lib/components/mock.range.component.metadata.json +0 -1
  687. package/esm2015/testing-base/lib/components/mock.reorder-list.component.metadata.json +0 -1
  688. package/esm2015/testing-base/lib/components/mock.router-outlet.component.metadata.json +0 -1
  689. package/esm2015/testing-base/lib/components/mock.section-header.component.metadata.json +0 -1
  690. package/esm2015/testing-base/lib/components/mock.segmented-control.component.metadata.json +0 -1
  691. package/esm2015/testing-base/lib/components/mock.slide-button.component.metadata.json +0 -1
  692. package/esm2015/testing-base/lib/components/mock.spinner.component.metadata.json +0 -1
  693. package/esm2015/testing-base/lib/components/mock.tab-button.component.metadata.json +0 -1
  694. package/esm2015/testing-base/lib/components/mock.tabs.component.metadata.json +0 -1
  695. package/esm2015/testing-base/lib/components/mock.textarea.component.metadata.json +0 -1
  696. package/esm2015/testing-base/lib/components/mock.toggle-button.component.metadata.json +0 -1
  697. package/esm2015/testing-base/lib/components/mock.toggle.component.metadata.json +0 -1
  698. package/esm2015/testing-base/lib/directives/mock.accordion.directive.metadata.json +0 -1
  699. package/esm2015/testing-base/lib/directives/mock.fit-heading.directive.metadata.json +0 -1
  700. package/esm2015/testing-base/lib/directives/mock.theme-color.directive.metadata.json +0 -1
  701. package/esm2015/testing-base/lib/kirby-testing-base.module.metadata.json +0 -1
  702. package/esm2015/testing-base/lib/mock-components.metadata.json +0 -1
  703. package/esm2015/testing-base/lib/mock-directives.metadata.json +0 -1
  704. package/esm2015/testing-base/public_api.metadata.json +0 -1
  705. package/esm2015/testing-jasmine/kirbydesign-designsystem-testing-jasmine.metadata.json +0 -1
  706. package/esm2015/testing-jasmine/lib/kirby-testing.module.metadata.json +0 -1
  707. package/esm2015/testing-jasmine/lib/mock-providers.metadata.json +0 -1
  708. package/esm2015/testing-jasmine/public_api.metadata.json +0 -1
  709. package/esm2015/testing-jest/kirbydesign-designsystem-testing-jest.metadata.json +0 -1
  710. package/esm2015/testing-jest/lib/kirby-testing.module.metadata.json +0 -1
  711. package/esm2015/testing-jest/lib/mock-providers.metadata.json +0 -1
  712. package/esm2015/testing-jest/public_api.metadata.json +0 -1
  713. package/kirbydesign-designsystem.metadata.json +0 -1
  714. package/testing-base/kirbydesign-designsystem-testing-base.metadata.json +0 -1
  715. package/testing-jasmine/kirbydesign-designsystem-testing-jasmine.metadata.json +0 -1
  716. package/testing-jest/kirbydesign-designsystem-testing-jest.metadata.json +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"kirbydesign-designsystem.umd.js","sources":["../../../../libs/designsystem/src/lib/animation/kirby-animation.ts","../../../../libs/designsystem/src/lib/components/router-outlet/router-outlet.component.ts","../../../../node_modules/tslib/tslib.es6.js","../../../../libs/designsystem/src/lib/components/modal/action-sheet/action-sheet.component.ts","../../../../libs/designsystem/src/lib/components/modal/services/action-sheet.helper.ts","../../../../libs/designsystem/src/lib/types/window-ref.ts","../../../../libs/designsystem/src/lib/components/modal/alert/alert.component.ts","../../../../libs/designsystem/src/lib/components/modal/services/alert.helper.ts","../../../../libs/designsystem/src/lib/components/modal/services/modal-navigation.service.ts","../../../../libs/designsystem/src/lib/components/modal/services/modal.interfaces.ts","../../../../libs/designsystem/src/lib/components/modal/modal-wrapper/config/modal-config.helper.ts","../../../../libs/designsystem/src/lib/components/modal/modal-wrapper/compact/modal-compact-wrapper.component.ts","../../../../libs/designsystem/src/lib/helpers/platform.service.ts","../../../../libs/designsystem/src/lib/components/icon/icon-settings.ts","../../../../libs/designsystem/src/lib/components/icon/icon-registry.service.ts","../../../../libs/designsystem/src/lib/components/icon/kirby-icon-settings.ts","../../../../libs/designsystem/src/lib/components/icon/icon.component.ts","../../../../libs/designsystem/src/lib/components/button/button.component.ts","../../../../libs/designsystem/src/lib/components/shared/resize-observer/resize-observer.factory.ts","../../../../libs/designsystem/src/lib/components/shared/resize-observer/resize-observer.service.ts","../../../../libs/designsystem/src/lib/components/modal/modal-wrapper/modal-wrapper.component.ts","../../../../libs/designsystem/src/lib/components/modal/services/modal-animation-builder.service.ts","../../../../libs/designsystem/src/lib/components/modal/services/modal.helper.ts","../../../../libs/designsystem/src/lib/components/modal/services/modal.controller.ts","../../../../libs/designsystem/src/lib/components/app/app.component.ts","../../../../libs/designsystem/src/lib/components/app/app.module.ts","../../../../libs/designsystem/src/lib/components/avatar/avatar.component.ts","../../../../libs/designsystem/src/lib/components/card/card.component.ts","../../../../libs/designsystem/src/lib/components/card/card-footer/card-footer.component.ts","../../../../libs/designsystem/src/lib/components/card/card-header/card-header.component.ts","../../../../libs/designsystem/src/lib/helpers/merge-deep.ts","../../../../libs/designsystem/src/lib/components/chart-deprecated/chart-deprecated-helper.ts","../../../../libs/designsystem/src/lib/components/chart-deprecated/chart-deprecated-type.ts","../../../../libs/designsystem/src/lib/components/chart-deprecated/options/activitygauge.ts","../../../../libs/designsystem/src/lib/components/chart-deprecated/options/areaspline.ts","../../../../libs/designsystem/src/lib/components/chart-deprecated/options/bar.ts","../../../../libs/designsystem/src/lib/components/chart-deprecated/options/column.ts","../../../../libs/designsystem/src/lib/components/chart-deprecated/options/donut.ts","../../../../libs/designsystem/src/lib/components/chart-deprecated/options/timeseries.ts","../../../../libs/designsystem/src/lib/components/chart-deprecated/chart-deprecated.component.ts","../../../../libs/designsystem/src/lib/components/chart/chart.types.ts","../../../../libs/designsystem/src/lib/components/shared/component-loader.directive.ts","../../../../libs/designsystem/src/lib/helpers/deep-copy.ts","../../../../libs/designsystem/src/lib/helpers/element-has-ancestor.ts","../../../../libs/designsystem/src/lib/helpers/index.ts","../../../../libs/designsystem/src/lib/components/chart/configs/annotations.config.ts","../../../../libs/designsystem/src/lib/components/chart/configs/interaction-functions-extensions.config.ts","../../../../libs/designsystem/src/lib/components/chart/configs/type.config.ts","../../../../libs/designsystem/src/lib/components/chart/configs/chart-config.service.ts","../../../../libs/designsystem/src/lib/components/chart/chart-js/chartjs-plugin-marker/chartjs-plugin-marker.ts","../../../../libs/designsystem/src/lib/components/chart/configs/shared.utils.ts","../../../../libs/designsystem/src/lib/components/chart/configs/global-defaults.config.ts","../../../../libs/designsystem/src/lib/components/chart/chart-js/configured-chart-js.ts","../../../../libs/designsystem/src/lib/components/chart/chart-js/chart-js.service.ts","../../../../libs/designsystem/src/lib/components/chart/chart.component.ts","../../../../libs/designsystem/src/lib/components/stock-chart-deprecated/options/stock-chart-deprecated-options.ts","../../../../libs/designsystem/src/lib/components/stock-chart-deprecated/stock-chart-deprecated.component.ts","../../../../libs/designsystem/src/lib/components/calendar/helpers/calendar.helper.ts","../../../../libs/designsystem/src/lib/components/calendar/calendar.component.ts","../../../../libs/designsystem/src/lib/components/item-sliding/item-sliding.component.ts","../../../../libs/designsystem/src/lib/helpers/unique-id-generator.helper.ts","../../../../libs/designsystem/src/lib/components/checkbox/checkbox.component.ts","../../../../libs/designsystem/src/lib/components/chip/chip.component.ts","../../../../libs/designsystem/src/lib/components/divider/divider.component.ts","../../../../libs/designsystem/src/lib/components/item/item.component.ts","../../../../libs/designsystem/src/lib/components/list/list.directive.ts","../../../../libs/designsystem/src/lib/components/popover/popover.component.ts","../../../../libs/designsystem/src/lib/components/dropdown/dropdown.types.ts","../../../../libs/designsystem/src/lib/components/dropdown/keyboard-handler.service.ts","../../../../libs/designsystem/src/lib/components/dropdown/dropdown.component.ts","../../../../libs/designsystem/src/lib/components/empty-state/empty-state.component.ts","../../../../libs/designsystem/src/lib/components/radio/radio.component.ts","../../../../libs/designsystem/src/lib/components/radio/radio-group/radio-group.component.ts","../../../../libs/designsystem/src/lib/components/form-field/input-counter/input-counter.component.ts","../../../../libs/designsystem/src/lib/components/form-field/input/input.component.ts","../../../../libs/designsystem/src/lib/components/form-field/textarea/textarea.component.ts","../../../../libs/designsystem/src/lib/components/form-field/form-field.component.ts","../../../../libs/designsystem/src/lib/components/form-field/form-field-message/form-field-message.component.ts","../../../../libs/designsystem/src/lib/components/form-field/directives/date/date-input.directive.ts","../../../../libs/designsystem/src/lib/components/form-field/directives/decimal-mask/decimal-mask.directive.ts","../../../../libs/designsystem/src/lib/components/fab-sheet/fab-sheet.component.ts","../../../../libs/designsystem/src/lib/scss/scss-helper.ts","../../../../libs/designsystem/src/lib/components/grid/breakpoint-helper.service.ts","../../../../libs/designsystem/src/lib/components/grid/grid.component.ts","../../../../libs/designsystem/src/lib/components/grid/grid-card-configuration.ts","../../../../libs/designsystem/src/lib/components/icon/icon.module.ts","../../../../libs/designsystem/src/lib/components/item/label/label.component.ts","../../../../libs/designsystem/src/lib/components/item/item.module.ts","../../../../libs/designsystem/src/lib/components/item-group/item-group.component.ts","../../../../libs/designsystem/src/lib/components/spinner/spinner.component.ts","../../../../libs/designsystem/src/lib/components/loading-overlay/loading-overlay.service.ts","../../../../libs/designsystem/src/lib/components/loading-overlay/loading-overlay.component.ts","../../../../libs/designsystem/src/lib/components/list/directives/infinite-scroll.directive.ts","../../../../libs/designsystem/src/lib/components/list/helpers/list-helper.ts","../../../../libs/designsystem/src/lib/components/list/pipes/group-by.pipe.ts","../../../../libs/designsystem/src/lib/components/list/list.component.ts","../../../../libs/designsystem/src/lib/components/list/list-header/list-header.component.ts","../../../../libs/designsystem/src/lib/components/list/list-section-header/list-section-header.component.ts","../../../../libs/designsystem/src/lib/components/list/list-item/list-item.component.ts","../../../../libs/designsystem/src/lib/components/list/directives/list-item-color.directive.ts","../../../../libs/designsystem/src/lib/components/list/list-experimental/list-experimental.component.ts","../../../../libs/designsystem/src/lib/components/reorder-list/reorder-event.ts","../../../../libs/designsystem/src/lib/components/reorder-list/reorder-list.component.ts","../../../../libs/designsystem/src/lib/components/modal/footer/modal-footer.component.ts","../../../../libs/designsystem/src/lib/components/tabs/tab-button/tab-button.events.ts","../../../../libs/designsystem/src/lib/components/tabs/tabs.service.ts","../../../../libs/designsystem/src/lib/components/tabs/tabs.component.ts","../../../../libs/designsystem/src/lib/components/page/page.component.ts","../../../../libs/designsystem/src/lib/components/page/page-footer/page-footer.component.ts","../../../../libs/designsystem/src/lib/helpers/line-clamp-helper.ts","../../../../libs/designsystem/src/lib/directives/fit-heading/fit-heading.directive.ts","../../../../libs/designsystem/src/lib/directives/fit-heading/fit-heading.module.ts","../../../../libs/designsystem/src/lib/components/spinner/spinner.module.ts","../../../../libs/designsystem/src/lib/components/page/page.module.ts","../../../../libs/designsystem/src/lib/components/router-outlet/router-outlet.module.ts","../../../../libs/designsystem/src/lib/components/section-header/section-header.component.ts","../../../../libs/designsystem/src/lib/components/segmented-control/segmented-control.component.ts","../../../../libs/designsystem/src/lib/components/slide-button/slide-button.component.ts","../../../../libs/designsystem/src/lib/components/tabs/tab-button/tab-button.component.ts","../../../../libs/designsystem/src/lib/components/tabs/tabs.module.ts","../../../../libs/designsystem/src/lib/components/toast/services/toast.helper.ts","../../../../libs/designsystem/src/lib/components/toast/services/toast.controller.ts","../../../../libs/designsystem/src/lib/components/toggle/toggle.component.ts","../../../../libs/designsystem/src/lib/components/progress-circle/progress-circle.component.ts","../../../../libs/designsystem/src/lib/components/flag/flag.component.ts","../../../../libs/designsystem/src/lib/components/slides/slides.component.ts","../../../../libs/designsystem/src/lib/components/toggle-button/toggle-button.component.ts","../../../../libs/designsystem/src/lib/components/accordion/accordion.directive.ts","../../../../libs/designsystem/src/lib/components/accordion/accordion-item.component.ts","../../../../libs/designsystem/src/lib/components/range/range.component.ts","../../../../libs/designsystem/src/lib/directives/key-handler/key-handler.directive.ts","../../../../libs/designsystem/src/lib/directives/theme-color/theme-color.directive.ts","../../../../libs/designsystem/src/lib/components/angular-component-lib/utils.ts","../../../../libs/designsystem/src/lib/components/web-component-proxies.component.ts","../../../../libs/designsystem/src/lib/components/chart/chart.module.ts","../../../../libs/designsystem/src/lib/components/list/list.module.ts","../../../../libs/designsystem/src/lib/components/progress-circle/progress-circle-ring.component.ts","../../../../libs/designsystem/src/lib/components/toggle-button/toggle-button.module.ts","../../../../libs/designsystem/src/lib/custom-elements-initializer.ts","../../../../libs/designsystem/src/lib/directives/element-as-button/element-as-button.directive.ts","../../../../libs/designsystem/src/lib/directives/modal-router-link/modal-router-link.directive.ts","../../../../libs/designsystem/src/lib/kirby.module.ts","../../../../libs/designsystem/src/kirbydesign-designsystem.ts"],"sourcesContent":["import { DesignTokenHelper } from '@kirbydesign/core';\n\nexport namespace KirbyAnimation {\n export enum Duration {\n // Duration in milliseconds\n QUICK = parseInt(DesignTokenHelper.transitionDuration('quick')),\n SHORT = parseInt(DesignTokenHelper.transitionDuration('short')),\n LONG = parseInt(DesignTokenHelper.transitionDuration('long')),\n EXTRA_LONG = parseInt(DesignTokenHelper.transitionDuration('extraLong')),\n }\n export const Easing = DesignTokenHelper.transitionEasings();\n}\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'kirby-router-outlet',\n templateUrl: './router-outlet.component.html',\n styleUrls: ['./router-outlet.component.scss'],\n})\nexport class RouterOutletComponent {\n @Input() main: boolean;\n}\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from) {\r\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\r\n to[j] = from[i];\r\n return to;\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\n\nimport { ActionSheetItem } from './config/action-sheet-item';\n\n@Component({\n selector: 'kirby-action-sheet',\n templateUrl: './action-sheet.component.html',\n styleUrls: ['./action-sheet.component.scss'],\n})\nexport class ActionSheetComponent {\n @Input() cancelButtonText = 'Cancel';\n @Input() hideCancel: boolean = false;\n @Input() disabled: boolean = false;\n @Input() header: string;\n @Input() subheader: string;\n @Input() items: Array<ActionSheetItem>;\n @Output() cancel = new EventEmitter();\n @Output() itemSelect: EventEmitter<ActionSheetItem> = new EventEmitter<ActionSheetItem>();\n\n onItemSelect(selection: ActionSheetItem) {\n this.itemSelect.emit(selection);\n }\n\n onCancel() {\n this.cancel.emit();\n }\n}\n","import { EventEmitter, Injectable } from '@angular/core';\nimport { ModalController } from '@ionic/angular';\nimport { Subscription } from 'rxjs';\n\nimport { ActionSheetComponent } from '../action-sheet/action-sheet.component';\nimport { ActionSheetConfig } from '../action-sheet/config/action-sheet-config';\nimport { ActionSheetItem } from '../action-sheet/config/action-sheet-item';\n\nimport { Overlay } from './modal.interfaces';\n\n@Injectable()\nexport class ActionSheetHelper {\n constructor(private ionicModalController: ModalController) {}\n\n public async showActionSheet(config: ActionSheetConfig): Promise<Overlay> {\n const cancel = new EventEmitter();\n const itemSelect = new EventEmitter<ActionSheetItem>();\n\n const ionModal = await this.ionicModalController.create({\n component: ActionSheetComponent,\n cssClass: ['kirby-overlay', 'kirby-action-sheet'],\n componentProps: {\n ...config,\n cancel: cancel,\n itemSelect: itemSelect,\n },\n backdropDismiss: true,\n });\n\n const cancelSubscription: Subscription = cancel.subscribe(() => ionModal.dismiss());\n const itemSelectSubscription: Subscription = itemSelect.subscribe((item) =>\n ionModal.dismiss(item)\n );\n const onDidDismiss = ionModal.onDidDismiss();\n onDidDismiss.then((_) => {\n cancelSubscription.unsubscribe();\n itemSelectSubscription.unsubscribe();\n });\n\n await ionModal.present();\n return {\n dismiss: ionModal.dismiss.bind(ionModal),\n onWillDismiss: ionModal.onWillDismiss(),\n onDidDismiss: ionModal.onDidDismiss(),\n };\n }\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class WindowRef {\n get nativeWindow(): any {\n return window;\n }\n}\n","import { AfterViewInit, Component, ElementRef, Input, ViewChild } from '@angular/core';\nimport { Observable, of } from 'rxjs';\n\nimport { WindowRef } from '../../../types/window-ref';\n\n@Component({\n selector: 'kirby-alert',\n templateUrl: './alert.component.html',\n styleUrls: ['./alert.component.scss'],\n // tslint:disable-next-line: no-host-metadata-property\n host: { '[class.ion-page]': 'false' }, //Ensure ion-page class doesn't get applied by Ionic Modal Controller\n})\nexport class AlertComponent implements AfterViewInit {\n readonly BLUR_WRAPPER_DELAY_IN_MS = 50;\n @ViewChild('alertWrapper', { static: true }) private alertWrapper: ElementRef;\n private scrollY: number = Math.abs(this.windowRef.nativeWindow.scrollY);\n\n title$: Observable<string>;\n @Input()\n set title(title: string | Observable<string>) {\n this.title$ = typeof title === 'string' ? of(title) : title;\n }\n\n message$: Observable<string>;\n @Input()\n set message(message: string & Observable<string>) {\n this.message$ = typeof message === 'string' ? of(message) : message;\n }\n\n @Input() iconName: string;\n @Input() iconThemeColor: string;\n @Input() okBtnText: string;\n @Input() okBtnIsDestructive: boolean;\n @Input() cancelBtnText: string;\n\n constructor(private elementRef: ElementRef<HTMLElement>, private windowRef: WindowRef) {}\n\n ngAfterViewInit(): void {\n setTimeout(() => {\n this.alertWrapper.nativeElement.focus();\n this.alertWrapper.nativeElement.blur();\n }, this.BLUR_WRAPPER_DELAY_IN_MS);\n }\n\n onFocusChange() {\n // This fixes an undesired scroll behaviour occurring on keyboard-tabbing\n this.windowRef.nativeWindow.scrollTo({ top: this.scrollY });\n }\n\n onCancel() {\n const ionModalElement = this.elementRef.nativeElement.closest('ion-modal');\n ionModalElement && ionModalElement.dismiss(false);\n }\n\n onOk() {\n const ionModalElement = this.elementRef.nativeElement.closest('ion-modal');\n ionModalElement && ionModalElement.dismiss(true);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ModalController } from '@ionic/angular';\n\nimport { AlertConfig } from '../alert/config/alert-config';\nimport { AlertComponent } from '../alert/alert.component';\nimport { Overlay } from './modal.interfaces';\n\n@Injectable()\nexport class AlertHelper {\n constructor(private ionicModalController: ModalController) {}\n\n public async showAlert(config: AlertConfig): Promise<Overlay> {\n const ionModal = await this.ionicModalController.create({\n component: AlertComponent,\n componentProps: this.getComponentProps(config),\n cssClass: ['kirby-overlay', 'kirby-alert'],\n mode: 'ios',\n backdropDismiss: false,\n });\n\n await ionModal.present();\n return {\n dismiss: ionModal.dismiss.bind(ionModal),\n onWillDismiss: ionModal.onWillDismiss(),\n onDidDismiss: ionModal.onDidDismiss(),\n };\n }\n\n private getComponentProps(config: AlertConfig) {\n return {\n ...config,\n okBtnText: this.getOkBtnText(config),\n cancelBtnText: this.getCancelBtnText(config),\n okBtnIsDestructive: this.getOkBtnIsDestructive(config),\n iconName: config.icon && config.icon.name,\n iconThemeColor: config.icon && config.icon.themeColor,\n };\n }\n\n private getOkBtnText(config: AlertConfig) {\n let text: string;\n if (config.okBtnText) {\n console.warn(\n '`okBtnText` will be deprecated on next major version. Please use `okBtn` instead.'\n );\n text = config.okBtnText;\n }\n if (config.okBtn) {\n if (typeof config.okBtn === 'string') {\n text = config.okBtn;\n } else {\n text = config.okBtn.text;\n }\n }\n return text;\n }\n\n getOkBtnIsDestructive(config) {\n return typeof config.okBtn === 'object' ? config.okBtn.isDestructive : undefined;\n }\n\n private getCancelBtnText(config: AlertConfig) {\n if (config.cancelBtnText) {\n console.warn(\n '`cancelBtnText` will be deprecated on next major version. Please use `cancelBtn` instead.'\n );\n }\n return config.cancelBtn || config.cancelBtnText;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ActivatedRoute, NavigationEnd, Params, Route, Router, Routes } from '@angular/router';\nimport { EMPTY, Observable } from 'rxjs';\nimport { filter, first, map, pairwise, startWith } from 'rxjs/operators';\n\nimport { ModalRouteActivation } from './modal.interfaces';\n\n@Injectable({ providedIn: 'root' })\nexport class ModalNavigationService {\n constructor(private router: Router, private route: ActivatedRoute) {}\n\n isModalRoute(url: string): boolean {\n return url.includes('(modal:');\n }\n\n private getCurrentActivatedRoute(): ActivatedRoute {\n let childRoute = this.route.root;\n while (childRoute.firstChild) {\n childRoute = childRoute.firstChild;\n }\n return childRoute;\n }\n\n private async getModalRoutes(\n routeConfig: Routes[],\n moduleRootRoutePath?: string\n ): Promise<string[]> {\n const flattenedRoutes: Routes = [].concat(...routeConfig);\n let modalRoutes: string[] = [];\n const moduleRootPaths = await this.getModuleRootPath(flattenedRoutes, moduleRootRoutePath);\n if (moduleRootPaths) {\n modalRoutes = this.getModalRoutePaths(flattenedRoutes, moduleRootPaths);\n }\n return modalRoutes;\n }\n\n private async getModuleRootPath(routes: Routes, moduleRootRoutePath?: string): Promise<string[]> {\n if (moduleRootRoutePath) {\n const trimmedPaths = moduleRootRoutePath\n .trim()\n .split('/')\n .filter((path) => !!path);\n const rootPath = [''];\n return rootPath.concat(trimmedPaths);\n }\n\n const currentRoutePaths = await this.getCurrentRoutePaths();\n const moduleRootPaths = this.getRoutePathsWithoutChildSegments(currentRoutePaths, routes);\n return moduleRootPaths;\n }\n\n private async getCurrentRoutePaths(): Promise<string[]> {\n const rootPath = [''];\n const currentNavigation = this.router.getCurrentNavigation();\n\n if (!this.router.navigated && !currentNavigation) {\n // If router hasn't navigated yet and we are not in the middle of navigating, assume root:\n return rootPath;\n }\n\n if (currentNavigation) {\n // Wait for current navigation to finish:\n await this.navigationEndListener$.pipe(first()).toPromise();\n }\n\n let childRoute = this.route.snapshot.root;\n while (childRoute.firstChild) {\n childRoute = childRoute.firstChild;\n }\n const currentBackdropRoutePath = childRoute.pathFromRoot.filter(\n (route) => route.outlet !== 'modal'\n );\n\n return rootPath.concat(\n ...currentBackdropRoutePath.map((route) =>\n route.url.filter((segment) => !!segment.path).map((segment) => segment.path)\n )\n );\n }\n\n private getRoutePathsWithoutChildSegments(routePaths: string[], routes: Routes): string[] {\n if (!routePaths.length) return routePaths;\n\n const matchedChildRoute = this.findChildRouteForUrl(routePaths.join('/'), routes);\n\n if (!matchedChildRoute) return routePaths;\n\n const startSlashRegex = /^\\//;\n const relativeChildRoute = matchedChildRoute.replace(startSlashRegex, '');\n const childSegmentCount = relativeChildRoute.split('/').length;\n const routePathsWithoutChildSegments = routePaths.slice(0, -childSegmentCount); // Remove child segments from end of route path array\n return routePathsWithoutChildSegments;\n }\n\n private findChildRouteForUrl(url: string, routes: Routes) {\n const moduleRelativePaths = this.getRoutePaths(routes, [''])\n .sort()\n .reverse(); // Ensure child paths are evaluated first\n let matchedChildRoute = moduleRelativePaths.find((path) => url.endsWith(path));\n if (!matchedChildRoute) {\n // No static child route found matching current route - look for child route with url params:\n const exactMatch = false;\n matchedChildRoute = moduleRelativePaths.find(\n (path) =>\n path.includes('/:') && this.pathContainsChildRouteWithUrlParams(url, path, exactMatch)\n );\n }\n return matchedChildRoute;\n }\n\n private pathContainsChildRouteWithUrlParams(\n path: string,\n childRouteWithUrlParams: string,\n exactMatch: boolean\n ) {\n const pathSegments = path.split('/');\n const startSlashRegex = /^\\//;\n let childRouteToMatch = childRouteWithUrlParams;\n if (!exactMatch) {\n const relativeChildRoute = childRouteWithUrlParams.replace(startSlashRegex, '');\n childRouteToMatch = relativeChildRoute;\n }\n const childRouteSegments = childRouteToMatch.split('/');\n // Match each child route segment against url\n // Match backwards from end to start of child route, i.e. \"url ends with child route\":\n const pathContainsChildRoute = childRouteSegments.reverse().every((childRouteSegment) => {\n const pathSegment = pathSegments.pop();\n // url params (e.g. `/:id/`) are treated as a match:\n return childRouteSegment.startsWith(':') || childRouteSegment === pathSegment;\n });\n if (exactMatch) {\n // Only match if we've reached the start of the url to match against:\n return pathSegments.length === 0 && pathContainsChildRoute;\n }\n return pathContainsChildRoute;\n }\n\n private getRoutePaths(routes: Routes, parentPath: string[]): string[] {\n return Array.isArray(routes)\n ? ([] as string[]).concat(...routes.map((route) => this.getRoutePath(route, parentPath)))\n : [];\n }\n\n private getRoutePath(route: Route, parentPath: string[]): string[] {\n const routes: string[] = [];\n if (!!route.outlet) return routes; // Don't return relative paths for outlet routes\n\n const currentPath = [...parentPath];\n if (!!route.path) {\n currentPath.push(route.path);\n routes.push(currentPath.join('/'));\n }\n\n return routes.concat(this.getRoutePaths(route.children, currentPath));\n }\n\n private getModalRoutePath(route: Route, parentPath: string[]): string[] {\n const modalOutletName = 'modal';\n if (!!route.path && route.outlet === modalOutletName) {\n const modalOutletPath = `(${modalOutletName}:${route.path})`;\n const modalRoutePath = [...parentPath, modalOutletPath].join('/');\n return [modalRoutePath];\n }\n const currentPath = [...parentPath];\n if (!!route.path) {\n currentPath.push(route.path);\n }\n return ([] as string[]).concat(...this.getModalRoutePaths(route.children, currentPath));\n }\n\n private getModalRoutePaths(routes: Routes, parentPath: string[]): string[] {\n return Array.isArray(routes)\n ? ([] as string[]).concat(...routes.map((route) => this.getModalRoutePath(route, parentPath)))\n : [];\n }\n\n private isNewModalWindow(navigationEnd: NavigationEnd): boolean {\n const currentNavigation = this.router.getCurrentNavigation();\n if (!currentNavigation || !currentNavigation.previousNavigation) {\n return true;\n }\n const previousRoutePath = (\n currentNavigation.previousNavigation.finalUrl ||\n currentNavigation.previousNavigation.extractedUrl\n ).toString();\n const wasModalRoute = this.isModalRoute(previousRoutePath);\n const isModalRoute = this.isModalRoute(navigationEnd.urlAfterRedirects);\n if (!wasModalRoute && isModalRoute) {\n return true;\n }\n\n const currentModalRouteParent = navigationEnd.urlAfterRedirects.split('/(modal:')[0];\n const previousModalRouteParent = previousRoutePath.split('/(modal:')[0];\n\n return previousModalRouteParent !== currentModalRouteParent;\n }\n\n private navigationEndListener$ = this.router.events.pipe(\n filter((event): event is NavigationEnd => event instanceof NavigationEnd)\n );\n\n private async waitForCurrentThenGetNavigationEndStream(): Promise<Observable<NavigationEnd>> {\n if (this.router.getCurrentNavigation()) {\n const currentNavigationEnd = await this.navigationEndListener$.pipe(first()).toPromise();\n return this.navigationEndListener$.pipe(startWith(currentNavigationEnd));\n }\n return this.navigationEndListener$;\n }\n\n private modalRouteActivatedFor(\n navigationEnd$: Observable<NavigationEnd>,\n modalRouteSet: Set<string>,\n modalRoutesContainsUrlParams: boolean\n ): Observable<ModalRouteActivation> {\n return navigationEnd$.pipe(\n filter((navigationEnd) =>\n this.modalRouteSetContainsPath(modalRouteSet, navigationEnd, modalRoutesContainsUrlParams)\n ),\n map((navigationEnd) => ({\n route: this.getCurrentActivatedRoute(),\n isNewModal: this.isNewModalWindow(navigationEnd),\n }))\n );\n }\n\n private modalRouteDeactivatedFor(\n navigationEnd$: Observable<NavigationEnd>,\n modalRouteSet: Set<string>,\n modalRoutesContainsUrlParams: boolean\n ): Observable<boolean> {\n return navigationEnd$.pipe(\n pairwise(),\n filter(([prevNavigation, _]) =>\n this.modalRouteSetContainsPath(modalRouteSet, prevNavigation, modalRoutesContainsUrlParams)\n ), // Only emit if previous route was modal\n map(([_, currentNavigation]) => {\n const isNewModalRoute = this.isModalRoute(currentNavigation.urlAfterRedirects);\n // Deactivate modal route if new route is NOT modal OR is outside current parent route:\n return !isNewModalRoute || this.isNewModalWindow(currentNavigation);\n }),\n filter((isDeactivation) => isDeactivation)\n );\n }\n\n private modalRouteSetContainsPath(\n modalRouteSet: Set<string>,\n navigationEnd: NavigationEnd,\n modalRoutesContainsUrlParams: boolean\n ) {\n const pathname = navigationEnd.urlAfterRedirects.split('?')[0];\n let hasRoute = modalRouteSet.has(pathname);\n if (!hasRoute && modalRoutesContainsUrlParams) {\n // Use `for ... of` instead of `forEach` so we can break out of the loop if route is found:\n for (let route of modalRouteSet) {\n const exactMatch = true;\n const routeMatchesPath = this.pathContainsChildRouteWithUrlParams(\n pathname,\n route,\n exactMatch\n );\n if (routeMatchesPath) {\n hasRoute = true;\n break;\n }\n }\n }\n return hasRoute;\n }\n\n async getModalNavigation(\n routeConfig: Routes[],\n moduleRootRoutePath?: string\n ): Promise<{ activated$: Observable<ModalRouteActivation>; deactivated$: Observable<boolean> }> {\n if (Array.isArray(routeConfig)) {\n const navigationEnd$ = await this.waitForCurrentThenGetNavigationEndStream();\n const modalRoutes = await this.getModalRoutes(routeConfig, moduleRootRoutePath);\n const hasModalRoutes = modalRoutes.length > 0;\n if (hasModalRoutes) {\n const modalRoutesContainsUrlParams = modalRoutes.some((route) => route.includes('/:'));\n const modalRouteSet = new Set(modalRoutes);\n const activated$ = this.modalRouteActivatedFor(\n navigationEnd$,\n modalRouteSet,\n modalRoutesContainsUrlParams\n );\n const deactivated$ = this.modalRouteDeactivatedFor(\n navigationEnd$,\n modalRouteSet,\n modalRoutesContainsUrlParams\n );\n return { activated$, deactivated$ };\n }\n }\n return { activated$: EMPTY, deactivated$: EMPTY };\n }\n\n async navigateToModal(path: string | string[], queryParams?: Params): Promise<boolean> {\n const commands = Array.isArray(path) ? path : path.split('/');\n const childPath = commands.pop();\n const result = await this.router.navigate([...commands, { outlets: { modal: [childPath] } }], {\n queryParams,\n relativeTo: this.getCurrentActivatedRoute(),\n });\n return result;\n }\n\n async navigateWithinModal(relativePath: string, queryParams?: Params): Promise<boolean> {\n return this.router.navigate([relativePath], {\n queryParams,\n relativeTo: this.getCurrentActivatedRoute(),\n });\n }\n\n async navigateOutOfModalOutlet(): Promise<boolean> {\n let result = Promise.resolve(true);\n const currentActivatedRoute = this.getCurrentActivatedRoute();\n if (currentActivatedRoute.outlet === 'modal') {\n const parentRoute = this.getBackdropRoute(currentActivatedRoute);\n result = this.router.navigate(['./'], {\n relativeTo: parentRoute,\n });\n }\n return result;\n }\n\n private getBackdropRoute(currentActivatedRoute: ActivatedRoute) {\n let parentRoute = currentActivatedRoute.parent;\n while (parentRoute && !parentRoute.component && !!parentRoute.parent) {\n parentRoute = parentRoute.parent;\n }\n return parentRoute;\n }\n}\n","import { ActivatedRoute } from '@angular/router';\n\nimport { KirbyAnimation } from '../../../animation/kirby-animation';\n\nexport interface OverlayEventDetail<T = any> {\n data?: T;\n role?: string;\n}\n\nexport interface Overlay {\n dismiss: (data?: any) => Promise<boolean>;\n onWillDismiss: Promise<OverlayEventDetail>;\n onDidDismiss: Promise<OverlayEventDetail>;\n}\n\nexport interface ModalRouteActivation {\n route: ActivatedRoute;\n isNewModal: boolean;\n}\n\nexport abstract class Modal {\n didPresent: Promise<void>;\n willClose: Promise<void>;\n close: (data?: any) => Promise<void>;\n scrollToTop: (scrollDuration?: KirbyAnimation.Duration) => void;\n scrollToBottom: (scrollDuration?: KirbyAnimation.Duration) => void;\n scrollDisabled: boolean;\n}\n","import { InjectionToken } from '@angular/core';\n\nexport const COMPONENT_PROPS = new InjectionToken<string>('componentProps');\n","import { Component, ElementRef, HostListener, Injector, Input, OnInit } from '@angular/core';\nimport { Subject } from 'rxjs';\n\nimport { WindowRef } from '../../../../types/window-ref';\nimport { Modal } from '../../services/modal.interfaces';\nimport { ModalConfig } from '../config/modal-config';\nimport { COMPONENT_PROPS } from '../config/modal-config.helper';\n\n@Component({\n selector: 'kirby-modal-compact-wrapper',\n templateUrl: './modal-compact-wrapper.component.html',\n styleUrls: ['./modal-compact-wrapper.component.scss'],\n providers: [{ provide: Modal, useExisting: ModalCompactWrapperComponent }],\n // tslint:disable-next-line: no-host-metadata-property\n host: { '[class.ion-page]': 'false' }, //Ensure ion-page class doesn't get applied by Ionic Modal Controller\n})\nexport class ModalCompactWrapperComponent implements Modal, OnInit {\n scrollY: number = Math.abs(this.windowRef.nativeWindow.scrollY);\n scrollDisabled = false;\n @Input() config: ModalConfig;\n componentPropsInjector: Injector;\n\n private ionModalElement: HTMLIonModalElement;\n private readonly ionModalDidPresent = new Subject<void>();\n private readonly ionModalWillDismiss = new Subject<void>();\n readonly didPresent = this.ionModalDidPresent.toPromise();\n readonly willClose = this.ionModalWillDismiss.toPromise();\n\n constructor(\n private injector: Injector,\n private elementRef: ElementRef<HTMLElement>,\n private windowRef: WindowRef\n ) {}\n\n ngOnInit(): void {\n this.ionModalElement = this.elementRef.nativeElement.closest('ion-modal');\n this.listenForIonModalDidPresent();\n this.listenForIonModalWillDismiss();\n this.componentPropsInjector = Injector.create({\n providers: [{ provide: COMPONENT_PROPS, useValue: this.config.componentProps }],\n parent: this.injector,\n });\n }\n\n private listenForIonModalDidPresent() {\n if (this.ionModalElement) {\n this.ionModalElement.addEventListener('ionModalDidPresent', () => {\n this.ionModalDidPresent.next();\n this.ionModalDidPresent.complete();\n });\n }\n }\n\n private listenForIonModalWillDismiss() {\n if (this.ionModalElement) {\n this.ionModalElement.addEventListener('ionModalWillDismiss', () => {\n this.ionModalWillDismiss.next();\n this.ionModalWillDismiss.complete();\n });\n }\n }\n\n async close(data?: any): Promise<void> {\n const ionModalElement = this.elementRef.nativeElement.closest('ion-modal');\n if (ionModalElement) {\n await ionModalElement.dismiss(data);\n }\n }\n\n scrollToTop: (_?: any) => void;\n scrollToBottom: (_?: any) => void;\n\n @HostListener('window:focus')\n @HostListener('window:focusout')\n onFocusChange() {\n // This fixes an undesired scroll behaviour occurring on keyboard-tabbing backwards (with shift+tab):\n this.windowRef.nativeWindow.scrollTo({ top: this.scrollY });\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { DesignTokenHelper } from '@kirbydesign/core';\n\nimport { WindowRef } from '../types/window-ref';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PlatformService {\n constructor(private windowRef: WindowRef) {}\n\n isTouch() {\n const isTouchDeviceQuery = '(pointer: coarse)'; // No check for `hover: none`, as Samsung Galaxy will return false on `hover: none` media query\n return this.windowRef.nativeWindow.matchMedia(isTouchDeviceQuery).matches;\n }\n\n isPhabletOrBigger() {\n const query = `(min-width: ${DesignTokenHelper.breakpoints.medium})`;\n return this.windowRef.nativeWindow.matchMedia(query).matches;\n }\n}\n","import { InjectionToken } from '@angular/core';\n\nexport interface Icon {\n name: string;\n svg?: string;\n}\n\nexport interface IconSettings {\n icons: Icon[];\n}\n\nexport const ICON_SETTINGS = new InjectionToken<IconSettings>('IconSettings');\n","import { Inject, Injectable, Optional } from '@angular/core';\n\nimport { Icon, IconSettings, ICON_SETTINGS } from './icon-settings';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class IconRegistryService {\n private iconRegistry = new Map<string, string>();\n\n constructor(@Optional() @Inject(ICON_SETTINGS) iconSettings?: IconSettings) {\n if (iconSettings) {\n this.addIcons(iconSettings.icons);\n console.warn(`Use of IconSettings is deprecated, use IconRegistryService instead`);\n }\n }\n\n public addIcon(iconName: string, svgPath: string): void {\n if (!this.iconRegistry.has(iconName)) {\n this.iconRegistry.set(iconName, svgPath);\n } else {\n console.warn(`Icon with name: \"${iconName}\" already exists`);\n }\n }\n\n public addIcons(icons: Icon[]): void {\n if (!icons) {\n console.error('Icons not defined');\n return;\n }\n icons.forEach((icon) => {\n this.addIcon(icon.name, icon.svg);\n });\n }\n\n getIcons(): Icon[] {\n return [...this.iconRegistry].map(\n (keyValPair) => ({ name: keyValPair[0], svg: keyValPair[1] } as Icon)\n );\n }\n\n getIcon(name: string): Icon {\n const svg = this.iconRegistry.get(name);\n return svg ? { name, svg } : undefined;\n }\n}\n","import { IconSettings } from './icon-settings';\n\n// tslint:disable:prettier\nexport const kirbyIconSettings: IconSettings = {\n icons: [\n { name: 'accounts-outline', svg: 'assets/kirby/icons/svg/accounts-outline.svg' },\n { name: 'accounts', svg: 'assets/kirby/icons/svg/accounts.svg' },\n { name: 'add', svg: 'assets/kirby/icons/svg/add.svg' },\n { name: 'remove', svg: 'assets/kirby/icons/svg/remove.svg' },\n { name: 'unsubscribe', svg: 'assets/kirby/icons/svg/unsubscribe.svg' },\n { name: 'arrow-back', svg: 'assets/kirby/icons/svg/arrow-back.svg' },\n { name: 'arrow-down', svg: 'assets/kirby/icons/svg/arrow-down.svg' },\n { name: 'arrow-more', svg: 'assets/kirby/icons/svg/arrow-more.svg' },\n { name: 'arrow-up', svg: 'assets/kirby/icons/svg/arrow-up.svg' },\n { name: 'attach', svg: 'assets/kirby/icons/svg/attach.svg' },\n { name: 'backspace', svg: 'assets/kirby/icons/svg/backspace.svg' },\n { name: 'calendar', svg: 'assets/kirby/icons/svg/calendar.svg' },\n { name: 'camera', svg: 'assets/kirby/icons/svg/camera.svg' },\n { name: 'checkbox-outline', svg: 'assets/kirby/icons/svg/checkbox-outline.svg' },\n { name: 'checkbox', svg: 'assets/kirby/icons/svg/checkbox.svg' },\n { name: 'checkmark-selected', svg: 'assets/kirby/icons/svg/checkmark-selected.svg' },\n { name: 'close', svg: 'assets/kirby/icons/svg/close.svg' },\n { name: 'cog', svg: 'assets/kirby/icons/svg/cog.svg' },\n { name: 'copy', svg: 'assets/kirby/icons/svg/copy.svg' },\n { name: 'flag', svg: 'assets/kirby/icons/svg/flag.svg' },\n { name: 'edit', svg: 'assets/kirby/icons/svg/edit.svg' },\n { name: 'filter', svg: 'assets/kirby/icons/svg/filter.svg' },\n { name: 'flash-off', svg: 'assets/kirby/icons/svg/flash-off.svg' },\n { name: 'flash', svg: 'assets/kirby/icons/svg/flash.svg' },\n { name: 'moneybag', svg: 'assets/kirby/icons/svg/moneybag.svg' },\n { name: 'help', svg: 'assets/kirby/icons/svg/help.svg' },\n { name: 'home', svg: 'assets/kirby/icons/svg/home.svg' },\n { name: 'inbox', svg: 'assets/kirby/icons/svg/inbox.svg' },\n { name: 'inbox-outline', svg: 'assets/kirby/icons/svg/inbox-outline.svg' },\n { name: 'information', svg: 'assets/kirby/icons/svg/information.svg' },\n { name: 'investment', svg: 'assets/kirby/icons/svg/investment.svg' },\n { name: 'kirby', svg: 'assets/kirby/icons/svg/kirby.svg' },\n { name: 'link', svg: 'assets/kirby/icons/svg/link.svg' },\n { name: 'log-out', svg: 'assets/kirby/icons/svg/log-out.svg' },\n { name: 'menu-outline', svg: 'assets/kirby/icons/svg/menu-outline.svg' },\n { name: 'menu', svg: 'assets/kirby/icons/svg/menu.svg' },\n { name: 'misc', svg: 'assets/kirby/icons/svg/misc.svg' },\n { name: 'more', svg: 'assets/kirby/icons/svg/more.svg' },\n { name: 'move', svg: 'assets/kirby/icons/svg/move.svg' },\n { name: 'payment-card', svg: 'assets/kirby/icons/svg/payment-card.svg' },\n { name: 'pension', svg: 'assets/kirby/icons/svg/pension.svg' },\n { name: 'person-outline', svg: 'assets/kirby/icons/svg/person-outline.svg' },\n { name: 'person', svg: 'assets/kirby/icons/svg/person.svg' },\n { name: 'qr', svg: 'assets/kirby/icons/svg/QR.svg' },\n { name: 'search', svg: 'assets/kirby/icons/svg/search.svg' },\n { name: 'share', svg: 'assets/kirby/icons/svg/share.svg' },\n { name: 'sort', svg: 'assets/kirby/icons/svg/sort.svg' },\n { name: 'support', svg: 'assets/kirby/icons/svg/support.svg' },\n { name: 'swap', svg: 'assets/kirby/icons/svg/swap.svg' },\n { name: 'trash', svg: 'assets/kirby/icons/svg/trash.svg' },\n { name: 'foreign-payment', svg: 'assets/kirby/icons/svg/foreign-payment.svg' },\n { name: 'clock', svg: 'assets/kirby/icons/svg/clock.svg' },\n { name: 'verify', svg: 'assets/kirby/icons/svg/verify.svg' },\n { name: 'warning', svg: 'assets/kirby/icons/svg/warning.svg' },\n { name: 'write-message', svg: 'assets/kirby/icons/svg/write-message.svg' },\n { name: 'reorder', svg: 'assets/kirby/icons/svg/reorder.svg' },\n ],\n};\n\nexport const defaultIcons = kirbyIconSettings.icons.map((icon) => icon.name);\n","import { Component, HostBinding, Input, OnChanges, SimpleChanges } from '@angular/core';\n\nimport { IconRegistryService } from './icon-registry.service';\nimport { Icon } from './icon-settings';\nimport { kirbyIconSettings } from './kirby-icon-settings';\n\nexport enum IconSize {\n XS = 'xs',\n SM = 'sm',\n MD = 'md',\n LG = 'lg',\n}\n\n@Component({\n selector: 'kirby-icon',\n templateUrl: './icon.component.html',\n styleUrls: ['./icon.component.scss'],\n // tslint:disable-next-line: no-host-metadata-property\n host: { '[class.kirby-icon]': 'true' },\n})\nexport class IconComponent implements OnChanges {\n defaultIcon: Icon = this.findIcon(kirbyIconSettings.icons, 'cog');\n private _icon = (this.icon = this.defaultIcon);\n @HostBinding('class')\n @Input()\n size: IconSize;\n\n @Input() name: string;\n @Input() customName: string;\n\n get icon(): Icon {\n return this._icon;\n }\n\n set icon(icon: Icon) {\n // If icon are not found, set default icon\n if (!icon && (this.name || this.customName)) {\n this.warnAboutMissingIcon();\n\n icon = this.defaultIcon;\n\n // If default icon are not found\n if (!icon) {\n console.warn('Default icon was not found.');\n return;\n }\n }\n\n // Set icon if it's found\n if (icon) {\n this._icon = icon;\n }\n }\n\n private warnAboutMissingIcon(): void {\n if (this.customName) {\n console.warn(`Custom icon with name \"${this.customName}\" was not found. \n Do you have a typo in 'customName' or\n forgot to configure the custom icon through the 'IconRegistryService'?`);\n } else {\n console.warn(`Built-in icon with name \"${this.name}\" was not found. \n Do you have a typo in 'name' or\n did you mean to use a custom icon? If so, please use: \n <kirby-icon customName=\"${this.name}\"></kirby-icon>`);\n }\n }\n\n constructor(private iconRegistryService: IconRegistryService) {}\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.name && changes.name.currentValue) {\n this.icon = this.findIcon(kirbyIconSettings.icons, changes.name.currentValue);\n } else if (changes.customName && changes.customName.currentValue) {\n this.icon = this.iconRegistryService.getIcon(changes.customName.currentValue);\n }\n }\n\n private findIcon(icons, name: string): Icon {\n return icons.find((icon) => icon.name === name);\n }\n}\n","import {\n AfterContentInit,\n Component,\n ContentChild,\n ElementRef,\n HostBinding,\n Input,\n} from '@angular/core';\n\nimport { NotificationColor } from '@kirbydesign/core';\n\nimport { IconComponent } from '../icon/icon.component';\n\nexport enum ButtonSize {\n SM = 'sm',\n MD = 'md',\n LG = 'lg',\n}\n\n@Component({\n // tslint:disable-next-line:component-selector\n selector: 'button[kirby-button],Button[kirby-button]',\n templateUrl: './button.component.html',\n styleUrls: ['./button.component.scss'],\n})\nexport class ButtonComponent implements AfterContentInit {\n @HostBinding('class.attention-level1')\n isAttentionLevel1: boolean = true; // Default\n @HostBinding('class.attention-level2')\n isAttentionLevel2: boolean;\n @HostBinding('class.attention-level3')\n isAttentionLevel3: boolean;\n @HostBinding('class.attention-level4')\n isAttentionLevel4: boolean;\n @HostBinding('class.destructive')\n destructive: boolean = false; // Default\n\n @HostBinding('class.floating')\n public get isButtonFloating(): boolean {\n return this.isFloating;\n }\n\n @HostBinding('class.icon-only')\n public get isIconOnly(): boolean {\n return !!this.icon && !this.hasText;\n }\n private _isIconLeft = false;\n @HostBinding('class.icon-left')\n public get isIconLeft() {\n return this._isIconLeft;\n }\n private _isIconRight = false;\n @HostBinding('class.icon-right')\n public get isIconRight() {\n return this._isIconRight;\n }\n\n @HostBinding('class')\n get _cssClass() {\n return [this.themeColor, this.size].filter((cssClass) => !!cssClass);\n }\n\n @Input() set attentionLevel(level: '1' | '2' | '3' | '4') {\n this.isAttentionLevel1 = level === '1';\n this.isAttentionLevel2 = level === '2';\n this.isAttentionLevel3 = level === '3';\n this.isAttentionLevel4 = level === '4';\n }\n @Input() set isDestructive(state: boolean) {\n this.destructive = state;\n }\n @Input()\n themeColor: NotificationColor;\n @Input() expand: 'full' | 'block';\n @Input() isFloating: boolean = false;\n @Input()\n size: ButtonSize = ButtonSize.MD;\n\n @ContentChild(IconComponent) icon: IconComponent;\n @ContentChild(IconComponent, { read: ElementRef })\n iconElementRef: ElementRef<HTMLElement>;\n private hasText = false;\n\n constructor(private elementRef: ElementRef<HTMLElement>) {}\n\n ngAfterContentInit(): void {\n this.hasText = !!this.elementRef.nativeElement.textContent;\n if (this.iconElementRef !== undefined && this.hasText) {\n this._isIconLeft =\n this.elementRef.nativeElement.firstChild === this.iconElementRef.nativeElement;\n this._isIconRight = !this._isIconLeft;\n }\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { ResizeObserver } from './types/resize-observer';\nimport { ResizeObserverCallback } from './types/resize-observer-callback';\n\ndeclare var ResizeObserver: {\n prototype: ResizeObserver;\n new (callback: ResizeObserverCallback): ResizeObserver;\n};\n\n/**\n * Factory that creates a new ResizeObserver and allows us to stub it out in unit tests.\n * @docs-private\n */\n@Injectable({ providedIn: 'root' })\nexport class ResizeObserverFactory {\n create(callback: ResizeObserverCallback): ResizeObserver | null {\n return typeof ResizeObserver === 'undefined' ? null : new ResizeObserver(callback);\n }\n}\n","import { ElementRef, Injectable, OnDestroy, NgZone } from '@angular/core';\n\nimport { ResizeObserver } from './types/resize-observer';\nimport { ResizeObserverEntry } from './types/resize-observer-entry';\nimport { ResizeObserverFactory } from './resize-observer.factory';\n\n@Injectable({ providedIn: 'root' })\nexport class ResizeObserverService implements OnDestroy {\n // IMPORTANT: Keeps track of the existing ResizeObserver so it can be reused for performance.\n // See: https://groups.google.com/a/chromium.org/forum/#!msg/blink-dev/z6ienONUb5A/F5-VcUZtBAAJ\n private observer: ResizeObserver | null;\n private observedElements = new WeakMap<Element, (entry: ResizeObserverEntry) => void>();\n\n constructor(private _resizeObserverFactory: ResizeObserverFactory, private zone: NgZone) {\n this.observer = this._resizeObserverFactory.create((entries) => this.handleResize(entries));\n }\n\n observe(\n elementOrRef: Element | ElementRef<Element>,\n action: (entry: ResizeObserverEntry) => void\n ): void {\n const element = elementOrRef instanceof ElementRef ? elementOrRef.nativeElement : elementOrRef;\n if (!this.observedElements.has(element)) {\n if (this.observer) {\n // IMPORTANT: Has to be run outside the Angular zone, for it to work with ResizeObserver polyfill:\n this.zone.runOutsideAngular(() => {\n this.observer.observe(element);\n });\n }\n this.observedElements.set(element, action);\n }\n }\n\n ngOnDestroy() {\n if (this.observer) {\n // IMPORTANT: Has to be run outside the Angular zone, for it to work with ResizeObserver polyfill:\n this.zone.runOutsideAngular(() => {\n this.observer.disconnect();\n });\n }\n this.observedElements = null;\n }\n\n unobserve(elementOrRef: Element | ElementRef<Element>) {\n const element = elementOrRef instanceof ElementRef ? elementOrRef.nativeElement : elementOrRef;\n if (this.observedElements.has(element)) {\n if (this.observer) {\n // IMPORTANT: Has to be run outside the Angular zone, for it to work with ResizeObserver polyfill:\n this.zone.runOutsideAngular(() => {\n this.observer.unobserve(element);\n });\n }\n this.observedElements.delete(element);\n }\n }\n\n private handleResize(entries: ResizeObserverEntry[]) {\n entries.forEach((entry) => {\n const action = this.observedElements.get(entry.target);\n if (action) {\n action(entry);\n }\n });\n }\n}\n","import {\n AfterViewInit,\n Component,\n ComponentFactoryResolver,\n ElementRef,\n HostBinding,\n HostListener,\n Injector,\n Input,\n NgZone,\n OnDestroy,\n OnInit,\n QueryList,\n Renderer2,\n RendererStyleFlags2,\n ViewChild,\n ViewChildren,\n} from '@angular/core';\nimport { ActivatedRoute, RouterOutlet } from '@angular/router';\nimport { IonContent, IonHeader, IonTitle, IonToolbar } from '@ionic/angular';\nimport { merge, Observable, Subject } from 'rxjs';\nimport { debounceTime, first, takeUntil } from 'rxjs/operators';\n\nimport { DesignTokenHelper } from '@kirbydesign/core';\n\nimport { KirbyAnimation } from '../../../animation/kirby-animation';\nimport { PlatformService } from '../../../helpers/platform.service';\nimport { WindowRef } from '../../../types/window-ref';\nimport { ButtonComponent } from '../../button/button.component';\nimport { ResizeObserverService } from '../../shared/resize-observer/resize-observer.service';\nimport { ResizeObserverEntry } from '../../shared/resize-observer/types/resize-observer-entry';\nimport { Modal } from '../services/modal.interfaces';\n\nimport { ModalConfig } from './config/modal-config';\nimport { COMPONENT_PROPS } from './config/modal-config.helper';\n\n@Component({\n selector: 'kirby-modal-wrapper',\n templateUrl: './modal-wrapper.component.html',\n styleUrls: ['./modal-wrapper.component.scss'],\n providers: [{ provide: Modal, useExisting: ModalWrapperComponent }],\n})\nexport class ModalWrapperComponent implements Modal, AfterViewInit, OnInit, OnDestroy {\n static readonly KEYBOARD_HIDE_DELAY_IN_MS = 100;\n\n scrollY: number = Math.abs(this.windowRef.nativeWindow.scrollY);\n private readonly VIEWPORT_RESIZE_DEBOUNCE_TIME = 100;\n\n set scrollDisabled(disabled: boolean) {\n this.ionContent.scrollY = !disabled;\n }\n\n @Input() config: ModalConfig;\n componentPropsInjector: Injector;\n\n @ViewChildren(ButtonComponent, { read: ElementRef }) private toolbarButtonsQuery: QueryList<\n ElementRef<HTMLButtonElement>\n >;\n @ViewChild(IonContent, { static: true }) private ionContent: IonContent;\n @ViewChild(IonContent, { static: true, read: ElementRef }) private ionContentElement: ElementRef<\n HTMLIonContentElement\n >;\n @ViewChild(IonHeader, { static: true, read: ElementRef }) private ionHeaderElement: ElementRef<\n HTMLIonHeaderElement\n >;\n @ViewChild(IonToolbar, { static: true, read: ElementRef }) private ionToolbarElement: ElementRef<\n HTMLIonToolbarElement\n >;\n @ViewChild(IonTitle, { static: true, read: ElementRef }) private ionTitleElement: ElementRef<\n HTMLIonTitleElement\n >;\n @ViewChild(RouterOutlet, { static: true }) private routerOutlet: RouterOutlet;\n\n private keyboardVisible = false;\n private toolbarButtons: HTMLButtonElement[] = [];\n private delayedClose = () => {};\n private delayedCloseTimeoutId;\n private initialViewportHeight: number;\n private viewportResized = false;\n private ionModalElement?: HTMLIonModalElement;\n private readonly ionModalDidPresent = new Subject<void>();\n readonly didPresent = this.ionModalDidPresent.toPromise();\n private readonly ionModalWillDismiss = new Subject<void>();\n readonly willClose = this.ionModalWillDismiss.toPromise();\n private viewportResize = new Subject<void>();\n private viewportResize$ = this.viewportResize\n .asObservable()\n .pipe(debounceTime(this.VIEWPORT_RESIZE_DEBOUNCE_TIME));\n private _mutationObserver: MutationObserver;\n private get mutationObserver(): MutationObserver {\n if (!this._mutationObserver) {\n this._mutationObserver = this.createEmbeddedElementsMutationObserver();\n }\n return this._mutationObserver;\n }\n private _intersectionObserver: IntersectionObserver;\n private get intersectionObserver(): IntersectionObserver {\n if (!this._intersectionObserver) {\n this._intersectionObserver = this.createModalWrapperIntersectionObserver();\n }\n return this._intersectionObserver;\n }\n private destroy$ = new Subject();\n\n @HostBinding('class.drawer')\n get _isDrawer() {\n return this.config.flavor === 'drawer';\n }\n\n willClose$ = this.ionModalWillDismiss.pipe(first());\n\n constructor(\n private injector: Injector,\n private elementRef: ElementRef<HTMLElement>,\n private renderer: Renderer2,\n private zone: NgZone,\n private resizeObserverService: ResizeObserverService,\n private componentFactoryResolver: ComponentFactoryResolver,\n private windowRef: WindowRef,\n private platform: PlatformService\n ) {\n this.setViewportHeight();\n this.observeViewportResize();\n }\n\n ngOnInit(): void {\n this.ionModalElement = this.elementRef.nativeElement.closest('ion-modal');\n this.initializeSizing();\n this.initializeModalRoute();\n this.listenForIonModalDidPresent();\n this.listenForIonModalWillDismiss();\n this.initializeResizeModalToModalWrapper();\n this.componentPropsInjector = Injector.create({\n providers: [{ provide: COMPONENT_PROPS, useValue: this.config.componentProps }],\n parent: this.injector,\n });\n }\n\n private initializeResizeModalToModalWrapper() {\n if (this.config.flavor === 'drawer' && this.config.interactWithBackground) {\n merge(this.ionModalDidPresent, this.viewportResize$)\n .pipe(takeUntil(this.destroy$))\n .subscribe(() => {\n // wait for template to render\n setTimeout(() => {\n const domRect = this.elementRef.nativeElement.getBoundingClientRect();\n const document = this.windowRef.nativeWindow.document.documentElement;\n const right = document.clientWidth - domRect.right;\n this.renderer.setStyle(this.ionModalElement, 'top', `${domRect.top}px`);\n this.renderer.setStyle(this.ionModalElement, 'left', `${domRect.left}px`);\n this.renderer.setStyle(this.ionModalElement, 'right', `${right}px`);\n });\n });\n }\n }\n\n private initializeSizing() {\n if (this.config.size === 'full-height') return;\n this.patchScrollElementSize();\n this.observeHeaderResize();\n this.observeModalFullHeight();\n }\n\n private initializeModalRoute() {\n if (this.config.modalRoute) {\n this.onSiblingModalRouteActivated(this.config.siblingModalRouteActivated$);\n // Load component from modal-route inside router-outlet:\n this.routerOutlet.activateWith(this.config.modalRoute, this.componentFactoryResolver);\n }\n }\n\n private onSiblingModalRouteActivated(siblingModalRouteActivated$?: Observable<ActivatedRoute>) {\n if (!siblingModalRouteActivated$) return;\n siblingModalRouteActivated$.pipe(takeUntil(this.willClose$)).subscribe((route) => {\n if (this.routerOutlet.isActivated) {\n this.mutationObserver.disconnect();\n this.routerOutlet.deactivate();\n this.clearEmbeddedElements();\n }\n this.routerOutlet.activateWith(route, this.componentFactoryResolver);\n this.checkForEmbeddedElements();\n });\n }\n\n private patchScrollElementSize(): void {\n const supportsCssShadowParts = 'part' in HTMLElement.prototype;\n if (supportsCssShadowParts) return;\n this.ionContent.getScrollElement().then((scrollElement) => {\n this.renderer.setStyle(scrollElement, 'height', '100%');\n this.renderer.setStyle(scrollElement, 'position', 'relative');\n if (this.config.flavor === 'drawer') {\n this.renderer.setStyle(\n scrollElement,\n 'transition',\n 'padding-bottom ' + DesignTokenHelper.softKeyboardTransitionLeave\n );\n }\n });\n }\n\n private observeModalFullHeight() {\n const ionModalWrapper = this.elementRef.nativeElement.closest<HTMLElement>('.modal-wrapper');\n if (!ionModalWrapper) return;\n // Start observing when modal has finished animating:\n this.didPresent.then(() => {\n this.intersectionObserver.observe(ionModalWrapper);\n });\n }\n\n ngAfterViewInit(): void {\n if (this.toolbarButtonsQuery) {\n this.toolbarButtons = this.toolbarButtonsQuery.map((buttonRef) => buttonRef.nativeElement);\n }\n this.checkForEmbeddedElements();\n }\n\n private checkForEmbeddedElements() {\n this.moveEmbeddedElements();\n this.observeEmbeddedElements();\n }\n\n private observeHeaderResize() {\n this.resizeObserverService.observe(this.ionHeaderElement.nativeElement, (entry) => {\n const [property, pixelValue] = ['--header-height', `${entry.contentRect.height}px`];\n this.setCssVar(this.elementRef.nativeElement, property, pixelValue);\n });\n }\n\n private moveEmbeddedElements() {\n const parentElement = this.getEmbeddedComponentElement();\n if (parentElement) {\n Object.entries(this.elementToParentMap).forEach(([tagName, getNewParent]) => {\n const embeddedElement = parentElement.querySelector<HTMLElement>(tagName);\n if (embeddedElement) {\n this.moveChild(embeddedElement, getNewParent());\n }\n });\n }\n }\n\n private listenForIonModalDidPresent() {\n if (this.ionModalElement) {\n this.ionModalElement.addEventListener('ionModalDidPresent', () => {\n this.ionModalDidPresent.next();\n this.ionModalDidPresent.complete();\n });\n }\n }\n\n private listenForIonModalWillDismiss() {\n if (this.ionModalElement) {\n this.ionModalElement.addEventListener('ionModalWillDismiss', () => {\n this.ionModalWillDismiss.next();\n this.ionModalWillDismiss.complete();\n });\n }\n }\n\n scrollToTop(scrollDuration?: KirbyAnimation.Duration) {\n this.ionContent.scrollToTop(scrollDuration || 0);\n }\n\n scrollToBottom(scrollDuration?: KirbyAnimation.Duration) {\n this.ionContent.scrollToBottom(scrollDuration || 0);\n }\n\n async close(data?: any): Promise<void> {\n if (!this.ionModalElement) {\n return;\n }\n if (!this.keyboardVisible || !this.viewportResized) {\n // No keyboard visible or viewport not resized:\n // Dismiss modal and return:\n clearTimeout(this.delayedCloseTimeoutId);\n await this.ionModalElement.dismiss(data);\n return;\n }\n\n // Keyboard visible:\n // Blur active element and wait for keyboard to hide,\n // then dismiss modal and return:\n this.blurActiveElement();\n return new Promise<void>((resolve) => {\n this.delayedClose = async () => {\n await this.ionModalElement.dismiss(data);\n resolve();\n };\n this.delayedCloseTimeoutId = setTimeout(\n this.delayedClose,\n ModalWrapperComponent.KEYBOARD_HIDE_DELAY_IN_MS\n );\n });\n }\n\n @HostListener('window:focus')\n @HostListener('window:focusout')\n onFocusChange() {\n // This fixes an undesired scroll behaviour occurring on keyboard-tabbing backwards (with shift+tab):\n this.windowRef.nativeWindow.scrollTo({ top: this.scrollY });\n }\n\n @HostListener('window:ionKeyboardDidShow', ['$event.detail.keyboardHeight'])\n @HostListener('window:keyboardWillShow', ['$event.keyboardHeight'])\n _onKeyboardShow(keyboardHeight: number) {\n this.setKeyboardVisibility(keyboardHeight);\n }\n\n @HostListener('window:ionKeyboardDidHide')\n @HostListener('window:keyboardWillHide')\n _onKeyboardHide() {\n this.setKeyboardVisibility(0);\n }\n\n private toggleContentMaxHeight(freeze: boolean) {\n const shouldToggleMaxHeight =\n this.config.flavor === 'modal' && this.platform.isPhabletOrBigger();\n if (!shouldToggleMaxHeight) return;\n const style = 'max-height';\n const contentElement = this.ionContentElement.nativeElement;\n this.zone.run(() => {\n if (freeze) {\n const contentHeight = contentElement.offsetHeight;\n this.renderer.setStyle(contentElement, style, `${contentHeight}px`);\n } else {\n this.renderer.removeStyle(contentElement, style);\n }\n });\n }\n\n private setKeyboardVisibility(keyboardHeight: number) {\n const keyboardAlreadyVisible = keyboardHeight > 0 && this.keyboardVisible;\n const keyboardAlreadyHidden = keyboardHeight === 0 && !this.keyboardVisible;\n if (keyboardAlreadyVisible || keyboardAlreadyHidden) return;\n this.keyboardVisible = keyboardHeight > 0;\n this.toggleContentMaxHeight(this.keyboardVisible);\n this.setKeyboardOverlap(keyboardHeight);\n }\n\n private getKeyboardOverlap(keyboardHeight: number, element: Element) {\n if (keyboardHeight <= 0 || !element) return 0;\n const distanceFromViewportBottomToElement = Math.floor(\n this.windowRef.nativeWindow.innerHeight - element.getBoundingClientRect().bottom\n );\n return Math.max(keyboardHeight - distanceFromViewportBottomToElement, 0);\n }\n\n private setCssVar(element: Element, property: string, value: string) {\n this.zone.run(() =>\n this.renderer.setStyle(element, property, value, RendererStyleFlags2.DashCase)\n );\n }\n\n private toggleCssClass(element: Element, klass: string, condition: boolean) {\n this.zone.run(() =>\n condition ? this.renderer.addClass(element, klass) : this.renderer.removeClass(element, klass)\n );\n }\n\n private setKeyboardOverlap(keyboardHeight: number) {\n this.toggleCssClass(this.elementRef.nativeElement, 'keyboard-visible', keyboardHeight > 0);\n const keyboardOverlap = this.getKeyboardOverlap(keyboardHeight, this.elementRef.nativeElement);\n let snapFooterToKeyboard = false;\n const embeddedFooterElement = this.getEmbeddedFooterElement();\n if (embeddedFooterElement) {\n this.setCssVar(embeddedFooterElement, '--keyboard-offset', `${keyboardOverlap}px`);\n snapFooterToKeyboard = embeddedFooterElement.classList.contains('snap-to-keyboard');\n }\n\n const contentElement = this.ionContentElement.nativeElement;\n const contentKeyboardOffset = snapFooterToKeyboard\n ? keyboardOverlap\n : this.getKeyboardOverlap(keyboardHeight, contentElement);\n this.setCssVar(contentElement, '--keyboard-offset', `${contentKeyboardOffset}px`);\n }\n\n onHeaderTouchStart(event: TouchEvent) {\n if (this.keyboardVisible) {\n const isToolbarButtonTouch = this.toolbarButtons.some((button) => {\n return (\n event.target instanceof HTMLElement &&\n (event.target === button || button.contains(event.target))\n );\n });\n // Prevent blur if event target is a toolbar button\n // (to allow tap event to fire):\n if (!isToolbarButtonTouch) {\n this.blurActiveElement();\n }\n }\n }\n\n @HostListener('window:resize')\n _onWindowResize() {\n this.setViewportHeight();\n }\n\n private setViewportHeight() {\n const vh = (this.windowRef.nativeWindow.innerHeight * 0.01).toFixed(2);\n this.setCssVar(this.elementRef.nativeElement, '--vh', `${vh}px`);\n }\n\n private observeViewportResize() {\n this.resizeObserverService.observe(this.windowRef.nativeWindow.document.body, (entry) =>\n this.onViewportResize(entry)\n );\n }\n\n private onViewportResize(entry: ResizeObserverEntry) {\n if (!this.initialViewportHeight) {\n // Initial observe callback, register initial height:\n this.initialViewportHeight = entry.contentRect.height;\n return;\n }\n this.viewportResized = entry.contentRect.height !== this.initialViewportHeight;\n if (!this.viewportResized) {\n // We are back to initial view port height, check for pending close func:\n if (this.delayedCloseTimeoutId) {\n clearTimeout(this.delayedCloseTimeoutId);\n this.delayedClose();\n }\n }\n this.viewportResize.next();\n }\n\n blurActiveElement() {\n const BLUR_TARGET_SELECTOR = 'input, textarea';\n if (this.keyboardVisible) {\n if (\n document.activeElement instanceof HTMLElement &&\n document.activeElement.matches(BLUR_TARGET_SELECTOR)\n ) {\n document.activeElement.blur();\n }\n }\n }\n\n private readonly elementToParentMap: { [key: string]: () => HTMLElement } = {\n 'KIRBY-MODAL-FOOTER': () => this.elementRef.nativeElement,\n 'KIRBY-PAGE-TITLE': () => this.ionTitleElement.nativeElement,\n 'KIRBY-PAGE-PROGRESS': () => this.ionToolbarElement.nativeElement,\n };\n\n private clearEmbeddedElements() {\n Object.entries(this.elementToParentMap).forEach(([tagName, getParent]) => {\n const embeddedElement = getParent().querySelector<HTMLElement>(`:scope > ${tagName}`);\n this.removeChild(embeddedElement);\n });\n }\n\n private getEmbeddedComponentElement() {\n return !!this.config.modalRoute\n ? this.ionContentElement.nativeElement.lastElementChild\n : this.ionContentElement.nativeElement.firstElementChild;\n }\n\n private getEmbeddedFooterElement() {\n return this.elementRef.nativeElement.querySelector<HTMLElement>('kirby-modal-footer');\n }\n\n private moveChild(child: Element, newParent: Element) {\n this.renderer.removeChild(child.parentElement, child);\n this.renderer.appendChild(newParent, child);\n if (child.tagName === 'KIRBY-MODAL-FOOTER') {\n this.resizeObserverService.observe(child, (entry) => {\n const [property, pixelValue] = [\n '--footer-height',\n `${Math.floor(entry.contentRect.height)}px`,\n ];\n this.setCssVar(this.elementRef.nativeElement, property, pixelValue);\n });\n }\n }\n\n private removeChild(child?: Element) {\n if (!!child) {\n this.renderer.removeChild(child.parentElement, child);\n }\n }\n\n private observeEmbeddedElements() {\n const parentElement = this.getEmbeddedComponentElement();\n this.mutationObserver.observe(parentElement, {\n childList: true, // Listen for addition or removal of child nodes\n });\n }\n\n private createEmbeddedElementsMutationObserver(): MutationObserver {\n const observedElements = Object.keys(this.elementToParentMap);\n const callback = (mutations: MutationRecord[]) => {\n const addedNodes = mutations\n .filter((mutation) => mutation.type === 'childList') // Filter for mutation to the tree of nodes\n .map((mutation) => {\n // Only check for addedNodes as removal is handled by the Angular renderer:\n return Array.from(mutation.addedNodes).filter((node) =>\n observedElements.includes(node.nodeName)\n );\n });\n\n const addedElements = Array.prototype\n .concat(...addedNodes)\n .filter((node): node is HTMLElement => node instanceof HTMLElement);\n\n addedElements.forEach((addedElement) => {\n const newParentElement = this.elementToParentMap[addedElement.nodeName]();\n // Move embedded element out of content and append to new parent:\n this.moveChild(addedElement, newParentElement);\n });\n };\n return new MutationObserver(callback);\n }\n\n private createModalWrapperIntersectionObserver(): IntersectionObserver {\n const callback: IntersectionObserverCallback = (entries) => {\n const entry = entries[0];\n const isTouchingViewport = entry.intersectionRatio < 1;\n if (isTouchingViewport) {\n this.renderer.addClass(entry.target, 'full-height');\n } else {\n this.renderer.removeClass(entry.target, 'full-height');\n }\n };\n\n // Set explicit viewport root if within iframe:\n const root = this.windowRef.nativeWindow.frameElement\n ? (this.windowRef.nativeWindow.document as any) // Cast to `any` as Typescript lib.d.ts doesnt support Document type yet\n : undefined;\n const options: IntersectionObserverInit = {\n rootMargin: '0px 0px -1px 0px', // `bottom: -1px` allows checking when the modal bottom is touching the viewport\n root,\n threshold: [0.99, 1],\n };\n\n return new IntersectionObserver(callback, options);\n }\n\n ngOnDestroy() {\n if (this.routerOutlet.isActivated) {\n this.routerOutlet.deactivate();\n }\n //clean up the observer\n this.mutationObserver.disconnect();\n delete this._mutationObserver;\n this.intersectionObserver.disconnect();\n delete this._intersectionObserver;\n if (this.resizeObserverService) {\n this.resizeObserverService.unobserve(this.windowRef.nativeWindow.document.body);\n this.resizeObserverService.unobserve(this.ionHeaderElement.nativeElement);\n this.resizeObserverService.unobserve(this.getEmbeddedFooterElement());\n }\n this.destroy$.next();\n this.destroy$.complete();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Animation, AnimationBuilder, AnimationController } from '@ionic/angular';\n\nimport { KirbyAnimation } from '../../../animation/kirby-animation';\nimport { PlatformService } from '../../../helpers/platform.service';\n\n@Injectable({ providedIn: 'root' })\nexport class ModalAnimationBuilderService {\n constructor(private animationCtrl: AnimationController, private platform: PlatformService) {}\n\n private readonly easingEnter = KirbyAnimation.Easing.modal.enter;\n private readonly easingLeave = KirbyAnimation.Easing.modal.exit;\n private readonly duration = KirbyAnimation.Duration.LONG;\n private readonly SwipeToCloseDefaults = {\n MIN_PRESENTING_SCALE: 0.93,\n };\n\n public enterAnimation(currentBackdrop?: HTMLIonBackdropElement): AnimationBuilder {\n return (baseEl: HTMLElement, presentingEl?: HTMLElement): Animation => {\n const backdropAnimation = this.animationCtrl\n .create()\n .addElement(baseEl.querySelector('ion-backdrop')!)\n .fromTo('opacity', 0.01, 'var(--backdrop-opacity)')\n .beforeStyles({\n 'pointer-events': 'none',\n })\n .afterClearStyles(['pointer-events']);\n\n const wrapperAnimation = this.animationCtrl\n .create()\n .addElement(baseEl.querySelectorAll('.modal-wrapper, .modal-shadow')!)\n .beforeStyles({ opacity: 1 })\n .fromTo('transform', 'translateY(100vh)', 'translateY(0vh)');\n\n const baseAnimation = this.animationCtrl\n .create()\n .addElement(baseEl)\n .easing(this.easingEnter)\n .duration(this.duration)\n .addAnimation(wrapperAnimation);\n\n let currentBackdropAnimation: Animation;\n if (currentBackdrop) {\n currentBackdropAnimation = this.animationCtrl\n .create()\n .addElement(currentBackdrop)\n .fromTo('opacity', 'var(--backdrop-opacity)', 0.01);\n }\n\n if (presentingEl) {\n const isMobile = !this.platform.isPhabletOrBigger();\n const hasCardModal =\n presentingEl.tagName === 'ION-MODAL' &&\n (presentingEl as HTMLIonModalElement).presentingElement !== undefined;\n\n const presentingAnimation = this.animationCtrl.create().beforeStyles({\n transform: 'translateY(0)',\n 'transform-origin': 'top center',\n overflow: 'hidden',\n });\n\n const bodyEl = document.body;\n\n if (isMobile) {\n /**\n * Fallback for browsers that does not support `max()` (ex: Firefox)\n * No need to worry about statusbar padding since engines like Gecko\n * are not used as the engine for standlone Cordova/Capacitor apps\n */\n const transformOffset = !CSS.supports('width', 'max(0px, 1px)')\n ? '30px'\n : 'max(30px, var(--ion-safe-area-top))';\n const modalTransform = hasCardModal ? '-10px' : transformOffset;\n const toPresentingScale = this.SwipeToCloseDefaults.MIN_PRESENTING_SCALE;\n const finalTransform = `translateY(${modalTransform}) scale(${toPresentingScale})`;\n\n presentingAnimation\n .afterStyles({\n transform: finalTransform,\n })\n .beforeAddWrite(() => bodyEl.style.setProperty('background-color', 'black'))\n .addElement(presentingEl)\n .keyframes([\n {\n offset: 0,\n filter: 'contrast(1)',\n transform: 'translateY(0px) scale(1)',\n borderRadius: '0px',\n },\n {\n offset: 1,\n filter: 'contrast(0.85)',\n transform: finalTransform,\n borderRadius: '10px 10px 0 0',\n },\n ]);\n baseAnimation.addAnimation(presentingAnimation);\n } else {\n baseAnimation.addAnimation(backdropAnimation);\n if (currentBackdropAnimation) {\n baseAnimation.addAnimation(currentBackdropAnimation);\n }\n\n if (!hasCardModal) {\n wrapperAnimation.fromTo('opacity', '0', '1');\n } else {\n const toPresentingScale = hasCardModal\n ? this.SwipeToCloseDefaults.MIN_PRESENTING_SCALE\n : 1;\n const finalTransform = `translateY(-10px) scale(${toPresentingScale})`;\n\n presentingAnimation\n .afterStyles({\n transform: finalTransform,\n })\n .addElement(presentingEl.querySelector('.modal-wrapper')!)\n .keyframes([\n { offset: 0, filter: 'contrast(1)', transform: 'translateY(0) scale(1)' },\n { offset: 1, filter: 'contrast(0.85)', transform: finalTransform },\n ]);\n\n const shadowAnimation = this.animationCtrl\n .create()\n .afterStyles({\n transform: finalTransform,\n })\n .addElement(presentingEl.querySelector('.modal-shadow')!)\n .keyframes([\n { offset: 0, opacity: '1', transform: 'translateY(0) scale(1)' },\n { offset: 1, opacity: '0', transform: finalTransform },\n ]);\n\n baseAnimation.addAnimation([presentingAnimation, shadowAnimation]);\n }\n }\n } else {\n baseAnimation.addAnimation(backdropAnimation);\n if (currentBackdropAnimation) {\n baseAnimation.addAnimation(currentBackdropAnimation);\n }\n }\n\n return baseAnimation;\n };\n }\n\n public leaveAnimation(currentBackdrop?: HTMLIonBackdropElement): AnimationBuilder {\n return (baseEl: HTMLElement, presentingEl?: HTMLElement): Animation => {\n const backdropAnimation = this.animationCtrl\n .create()\n .addElement(baseEl.querySelector('ion-backdrop')!)\n .fromTo('opacity', 'var(--backdrop-opacity)', 0.0);\n\n const wrapperAnimation = this.animationCtrl\n .create()\n .addElement(baseEl.querySelectorAll('.modal-wrapper, .modal-shadow')!)\n .beforeStyles({ opacity: 1 })\n .fromTo('transform', 'translateY(0vh)', 'translateY(100vh)');\n\n const baseAnimation = this.animationCtrl\n .create()\n .addElement(baseEl)\n .easing(this.easingLeave)\n .duration(this.duration)\n .addAnimation(wrapperAnimation);\n\n let currentBackdropAnimation: Animation;\n if (currentBackdrop) {\n currentBackdropAnimation = this.animationCtrl\n .create()\n .addElement(currentBackdrop)\n .fromTo('opacity', 0.01, 'var(--backdrop-opacity)')\n .afterStyles({ opacity: 'var(--backdrop-opacity)' }); //Ensures backdrop is reset to default opacity after swipe to close\n }\n\n if (presentingEl) {\n const isMobile = !this.platform.isPhabletOrBigger();\n const hasCardModal =\n presentingEl.tagName === 'ION-MODAL' &&\n (presentingEl as HTMLIonModalElement).presentingElement !== undefined;\n\n const presentingAnimation = this.animationCtrl\n .create()\n .beforeClearStyles(['transform'])\n .afterClearStyles(['transform'])\n .onFinish((currentStep) => {\n // only reset background color if this is the last card-style modal\n if (currentStep !== 1) {\n return;\n }\n\n presentingEl.style.setProperty('overflow', '');\n\n const numModals = Array.from(bodyEl.querySelectorAll('ion-modal')).filter(\n (m) => m.presentingElement !== undefined\n ).length;\n if (numModals <= 1) {\n bodyEl.style.setProperty('background-color', '');\n }\n });\n\n const bodyEl = document.body;\n\n if (isMobile) {\n const transformOffset = !CSS.supports('width', 'max(0px, 1px)')\n ? '30px'\n : 'max(30px, var(--ion-safe-area-top))';\n const modalTransform = hasCardModal ? '-10px' : transformOffset;\n const toPresentingScale = this.SwipeToCloseDefaults.MIN_PRESENTING_SCALE;\n const finalTransform = `translateY(${modalTransform}) scale(${toPresentingScale})`;\n\n presentingAnimation.addElement(presentingEl).keyframes([\n {\n offset: 0,\n filter: 'contrast(0.85)',\n transform: finalTransform,\n borderRadius: '10px 10px 0 0',\n },\n {\n offset: 1,\n filter: 'contrast(1)',\n transform: 'translateY(0px) scale(1)',\n borderRadius: '0px',\n },\n ]);\n\n baseAnimation.addAnimation(presentingAnimation);\n } else {\n baseAnimation.addAnimation(backdropAnimation);\n if (currentBackdropAnimation) {\n baseAnimation.addAnimation(currentBackdropAnimation);\n }\n\n if (!hasCardModal) {\n wrapperAnimation.fromTo('opacity', '1', '0');\n } else {\n const toPresentingScale = hasCardModal\n ? this.SwipeToCloseDefaults.MIN_PRESENTING_SCALE\n : 1;\n const finalTransform = `translateY(-10px) scale(${toPresentingScale})`;\n\n presentingAnimation\n .addElement(presentingEl.querySelector('.modal-wrapper')!)\n .afterStyles({\n transform: 'translate3d(0, 0, 0)',\n })\n .keyframes([\n { offset: 0, filter: 'contrast(0.85)', transform: finalTransform },\n { offset: 1, filter: 'contrast(1)', transform: 'translateY(0) scale(1)' },\n ]);\n\n const shadowAnimation = this.animationCtrl\n .create()\n .addElement(presentingEl.querySelector('.modal-shadow')!)\n .afterStyles({\n transform: 'translateY(0) scale(1)',\n })\n .keyframes([\n { offset: 0, opacity: '0', transform: finalTransform },\n { offset: 1, opacity: '1', transform: 'translateY(0) scale(1)' },\n ]);\n\n baseAnimation.addAnimation([presentingAnimation, shadowAnimation]);\n }\n }\n } else {\n baseAnimation.addAnimation(backdropAnimation);\n if (currentBackdropAnimation) {\n baseAnimation.addAnimation(currentBackdropAnimation);\n }\n }\n\n return baseAnimation;\n };\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ModalController } from '@ionic/angular';\n\nimport { KirbyAnimation } from '../../../animation/kirby-animation';\nimport { WindowRef } from '../../../types/window-ref';\nimport { ModalCompactWrapperComponent } from '../modal-wrapper/compact/modal-compact-wrapper.component';\nimport { ModalConfig, ModalFlavor, ModalSize } from '../modal-wrapper/config/modal-config';\nimport { ModalWrapperComponent } from '../modal-wrapper/modal-wrapper.component';\n\nimport { ModalAnimationBuilderService } from './modal-animation-builder.service';\nimport { Overlay } from './modal.interfaces';\n\n@Injectable()\nexport class ModalHelper {\n // TODO: Make presentingElement an instance field when\n // forRoot()/singleton services has been solved:\n private static presentingElement: HTMLElement = undefined;\n\n constructor(\n private ionicModalController: ModalController,\n private modalAnimationBuilder: ModalAnimationBuilderService,\n private windowRef: WindowRef\n ) {}\n\n public async showModalWindow(config: ModalConfig): Promise<Overlay> {\n config.flavor = config.flavor || 'modal';\n const modalPresentingElement = await this.getPresentingElement(config.flavor);\n\n let currentBackdrop: HTMLIonBackdropElement;\n const topMostModal = await this.ionicModalController.getTop();\n if (topMostModal) {\n currentBackdrop = topMostModal.querySelector<HTMLIonBackdropElement>('ion-backdrop');\n }\n\n const enterAnimation = this.modalAnimationBuilder.enterAnimation(currentBackdrop);\n const leaveAnimation = this.modalAnimationBuilder.leaveAnimation(currentBackdrop);\n\n const defaultModalSize: ModalSize = config.flavor === 'modal' ? 'medium' : null;\n const modalSize = config.size || defaultModalSize;\n const allow_scroll_class = 'allow-background-scroll';\n\n let customCssClasses = [];\n if (config.cssClass) {\n customCssClasses = Array.isArray(config.cssClass) ? config.cssClass : [config.cssClass];\n }\n\n if (config.interactWithBackground) {\n this.windowRef.nativeWindow.document.body.classList.add(allow_scroll_class);\n }\n\n const ionModal = await this.ionicModalController.create({\n component: config.flavor === 'compact' ? ModalCompactWrapperComponent : ModalWrapperComponent,\n cssClass: [\n 'kirby-overlay',\n 'kirby-modal',\n config.flavor === 'drawer' ? 'kirby-drawer' : null,\n config.flavor === 'compact' ? 'kirby-modal-compact' : null,\n 'kirby-modal-' + modalSize,\n config.interactWithBackground ? 'interact-with-background' : null,\n ...customCssClasses,\n ],\n backdropDismiss: config.flavor === 'compact' || config.interactWithBackground ? false : true,\n showBackdrop: !config.interactWithBackground,\n componentProps: { config: config },\n swipeToClose: config.flavor != 'compact',\n presentingElement: modalPresentingElement,\n keyboardClose: false,\n enterAnimation,\n leaveAnimation,\n });\n\n if (config.interactWithBackground) {\n ionModal.onDidDismiss().then(() => {\n this.windowRef.nativeWindow.document.body.classList.remove(allow_scroll_class);\n });\n }\n\n await ionModal.present();\n\n return {\n dismiss: ionModal.dismiss.bind(ionModal),\n onWillDismiss: ionModal.onWillDismiss(),\n onDidDismiss: ionModal.onDidDismiss(),\n };\n }\n\n public registerPresentingElement(element: HTMLElement) {\n ModalHelper.presentingElement = element;\n }\n\n private async getPresentingElement(flavor?: ModalFlavor) {\n let modalPresentingElement: HTMLElement = undefined;\n if (!flavor || flavor === 'modal') {\n const topMostModal = await this.ionicModalController.getTop();\n if (!topMostModal) {\n modalPresentingElement = ModalHelper.presentingElement;\n } else if (\n !topMostModal.classList.contains('kirby-drawer') &&\n !topMostModal.classList.contains('kirby-modal-compact')\n ) {\n modalPresentingElement = topMostModal;\n }\n }\n return modalPresentingElement;\n }\n\n public async scrollToTop(\n noModalRegisteredErrorMessage: string,\n duration?: KirbyAnimation.Duration\n ) {\n const modal = await this.ionicModalController.getTop();\n if (!modal || !(modal.component instanceof ModalWrapperComponent)) {\n throw new Error(noModalRegisteredErrorMessage);\n }\n modal.component.scrollToTop(duration);\n }\n\n public async scrollToBottom(\n noModalRegisteredErrorMessage: string,\n duration?: KirbyAnimation.Duration\n ) {\n const modal = await this.ionicModalController.getTop();\n if (!modal || !(modal.component instanceof ModalWrapperComponent)) {\n throw new Error(noModalRegisteredErrorMessage);\n }\n modal.component.scrollToBottom(duration);\n }\n}\n","import { Inject, Injectable, OnDestroy, Optional } from '@angular/core';\nimport { ActivatedRoute, Params, Routes, ROUTES } from '@angular/router';\nimport { Observable, Subject } from 'rxjs';\nimport { filter, map, takeUntil } from 'rxjs/operators';\n\nimport { KirbyAnimation } from '../../../animation/kirby-animation';\nimport { ActionSheetConfig } from '../action-sheet/config/action-sheet-config';\nimport { AlertConfig } from '../alert/config/alert-config';\nimport { ModalConfig } from '../modal-wrapper/config/modal-config';\n\nimport { ActionSheetHelper } from './action-sheet.helper';\nimport { AlertHelper } from './alert.helper';\nimport { ModalNavigationService } from './modal-navigation.service';\nimport { ModalHelper } from './modal.helper';\nimport { ModalRouteActivation, Overlay } from './modal.interfaces';\n\n@Injectable()\nexport class ModalController implements OnDestroy {\n private overlays: Overlay[] = [];\n private readonly noOverlayRegisteredErrorMessage = 'No modal overlays are currently registered';\n private destroy$ = new Subject<void>();\n\n constructor(\n private modalHelper: ModalHelper,\n private actionSheetHelper: ActionSheetHelper,\n private alertHelper: AlertHelper,\n private modalNavigationService: ModalNavigationService,\n @Optional() @Inject(ROUTES) private routeConfig: Routes[]\n ) {}\n\n async initialize(moduleRootRoutePath?: string) {\n const modalNavigation = await this.modalNavigationService.getModalNavigation(\n this.routeConfig,\n moduleRootRoutePath\n );\n this.onModalRouteActivated(modalNavigation.activated$);\n this.onModalRouteDeactivated(modalNavigation.deactivated$); // TODO: Do we want to close modal when routing out of modal route? Or should the code that navigates close the window??\n }\n\n private onModalRouteActivated(modalRouteActivated$: Observable<ModalRouteActivation>) {\n const navigateOnWillClose = () => {\n this.modalNavigationService.navigateOutOfModalOutlet();\n };\n const siblingModalRouteActivated$ = modalRouteActivated$.pipe(\n filter((modalRouteActivation) => !modalRouteActivation.isNewModal),\n map((modalRouteActivation) => modalRouteActivation.route)\n );\n\n modalRouteActivated$\n .pipe(\n takeUntil(this.destroy$),\n filter(() => this.overlays.length === 0)\n )\n .subscribe(async (modalRouteActivation) => {\n if (modalRouteActivation.isNewModal) {\n await this.showModalRoute(\n modalRouteActivation.route,\n siblingModalRouteActivated$,\n navigateOnWillClose\n );\n }\n });\n }\n\n private onModalRouteDeactivated(modalRouteDeactivated$: Observable<boolean>) {\n modalRouteDeactivated$\n .pipe(\n takeUntil(this.destroy$),\n filter(() => this.overlays.length > 0) // TODO: This also fires when closing overlay - should we check for isClosing??\n )\n .subscribe(async () => {\n await this.hideAll();\n });\n }\n\n public async showModal(config: ModalConfig, onClose?: (data?: any) => void): Promise<void> {\n if (config.hasOwnProperty('dim')) {\n console.warn('ModalConfig.dim is deprecated - please remove from your configuration.');\n }\n await this.showAndRegisterOverlay(() => this.modalHelper.showModalWindow(config), onClose);\n }\n\n public async navigateToModal(path: string | string[], queryParams?: Params): Promise<boolean> {\n return this.modalNavigationService.navigateToModal(path, queryParams);\n }\n\n public async navigateWithinModal(relativePath: string, queryParams?: Params): Promise<boolean> {\n return this.modalNavigationService.navigateWithinModal(relativePath, queryParams);\n }\n\n private async showModalRoute(\n modalRoute: ActivatedRoute,\n siblingModalRouteActivated$: Observable<ActivatedRoute>,\n onWillClose: (data?: any) => void\n ): Promise<void> {\n const config: ModalConfig = {\n component: null,\n modalRoute: modalRoute,\n siblingModalRouteActivated$: siblingModalRouteActivated$,\n flavor: 'modal', // Todo: Should it be possible to specify flavor as data in RouteConfig?\n };\n await this.showAndRegisterOverlay(\n () => this.modalHelper.showModalWindow(config),\n null,\n onWillClose\n );\n }\n\n public async showActionSheet(\n config: ActionSheetConfig,\n onClose?: (data?: any) => void\n ): Promise<void> {\n await this.showAndRegisterOverlay(\n () => this.actionSheetHelper.showActionSheet(config),\n onClose\n );\n }\n\n public async showAlert(config: AlertConfig, onClose?: (result: boolean) => void): Promise<void> {\n await this.showAndRegisterOverlay(() => this.alertHelper.showAlert(config), onClose);\n }\n\n private async showAndRegisterOverlay(\n showOverlay: () => Promise<Overlay>,\n onCloseOverlay?: (data?: any) => void,\n onWillCloseOverlay?: (data?: any) => void\n ) {\n const overlay = await showOverlay();\n if (!overlay) return;\n\n this.overlays.push(overlay);\n\n if (typeof onWillCloseOverlay === 'function') {\n overlay.onWillDismiss.then((event) => onWillCloseOverlay(event.data));\n }\n\n overlay.onDidDismiss.then((event) => {\n this.overlays.pop();\n if (typeof onCloseOverlay === 'function') {\n onCloseOverlay(event.data);\n }\n });\n }\n\n public registerPresentingElement(element: HTMLElement) {\n this.modalHelper.registerPresentingElement(element);\n }\n\n public async hideTopmost(data?: any): Promise<boolean> {\n const overlay = this.overlays[this.overlays.length - 1];\n if (!overlay) {\n throw new Error(this.noOverlayRegisteredErrorMessage);\n }\n return overlay.dismiss(data);\n }\n\n /**\n * @deprecated Will be removed in next major version. Inject Modal in embedded component and use Modal.scrollToTop instead.\n */\n public scrollToTop(duration?: KirbyAnimation.Duration) {\n console.warn(\n 'ModalController.scrollToTop is deprecated - please inject Modal in embedded component and use Modal.scrollToTop instead.'\n );\n const overlay = this.overlays[this.overlays.length - 1];\n if (!overlay) {\n throw new Error(this.noOverlayRegisteredErrorMessage);\n }\n this.modalHelper.scrollToTop(this.noOverlayRegisteredErrorMessage, duration);\n }\n\n /**\n * @deprecated Will be removed in next major version. Inject Modal in embedded component and use Modal.scrollToBottom instead.\n */\n public scrollToBottom(duration?: KirbyAnimation.Duration) {\n console.warn(\n 'ModalController.scrollToBottom is deprecated - please inject Modal in embedded component and use Modal.scrollToBottom instead.'\n );\n const overlay = this.overlays[this.overlays.length - 1];\n if (!overlay) {\n throw new Error(this.noOverlayRegisteredErrorMessage);\n }\n this.modalHelper.scrollToBottom(this.noOverlayRegisteredErrorMessage, duration);\n }\n\n public async hideAll(): Promise<void> {\n await Promise.all(\n this.overlays.map(async (overlay) => {\n await overlay.dismiss();\n })\n );\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n}\n","import { Component, ContentChild, ElementRef, AfterContentInit, ViewChild } from '@angular/core';\nimport { IonApp } from '@ionic/angular';\n\nimport { RouterOutletComponent } from '../router-outlet/router-outlet.component';\nimport { ModalController } from '../modal/services/modal.controller';\n\n@Component({\n selector: 'kirby-app',\n templateUrl: './app.component.html',\n styleUrls: ['./app.component.scss'],\n})\nexport class AppComponent implements AfterContentInit {\n @ViewChild(IonApp, { static: true, read: ElementRef })\n private ionAppElement: ElementRef<HTMLIonAppElement>;\n\n @ContentChild(RouterOutletComponent, { static: false, read: ElementRef })\n private routerOutlet?: ElementRef<HTMLElement>;\n\n constructor(private modalController: ModalController) {}\n\n ngAfterContentInit(): void {\n if (this.routerOutlet && this.routerOutlet.nativeElement) {\n this.modalController.registerPresentingElement(this.routerOutlet.nativeElement);\n }\n\n this.ionAppElement.nativeElement.componentOnReady().then(() => this.registerInputs());\n }\n\n registerInputs() {\n // Input might be already loaded in the DOM before ion-device-hacks did.\n // At this point we need to look for all of the inputs not registered yet\n // and register them.\n // There is no Ionic event to hook into, so we'll use a timeout\n // to ensure ion-device-hacks has run:\n const ensureIonicDeviceHacksDelay = 250;\n setTimeout(() => {\n document.querySelectorAll('kirby-form-field').forEach((formField) => {\n formField.dispatchEvent(new CustomEvent('kirbyRegisterFormField'));\n });\n }, ensureIonicDeviceHacksDelay);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { IonicModule } from '@ionic/angular';\n\nimport { AppComponent } from './app.component';\n\n@NgModule({\n declarations: [AppComponent],\n imports: [CommonModule, IonicModule],\n exports: [AppComponent],\n})\nexport class AppModule {}\n","import { ChangeDetectionStrategy, Component, HostBinding, Input } from '@angular/core';\n\nimport { BrandColor, NotificationColor } from '@kirbydesign/core';\n\nexport enum AvatarSize {\n XS = 'xs',\n SM = 'sm',\n MD = 'md',\n LG = 'lg',\n}\n\n@Component({\n selector: 'kirby-avatar',\n templateUrl: './avatar.component.html',\n styleUrls: ['./avatar.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AvatarComponent {\n @Input() imageSrc: string;\n @Input() altText: string;\n @Input() shadow: boolean;\n @Input() text: string;\n @Input() overlay: boolean;\n @Input() size: AvatarSize = AvatarSize.SM;\n @Input()\n themeColor: NotificationColor | BrandColor | 'medium' | 'white' | 'dark' | 'light' | 'semi-light';\n\n @HostBinding('class')\n get _cssClass() {\n return [this.themeColor, this.size].filter((cssClass) => !!cssClass);\n }\n}\n","import {\n Component,\n ElementRef,\n HostBinding,\n Input,\n OnDestroy,\n OnInit,\n Renderer2,\n} from '@angular/core';\n\nimport { ResizeObserverService } from '../shared/resize-observer/resize-observer.service';\nimport { ResizeObserverEntry } from '../shared/resize-observer/types/resize-observer-entry';\n\n@Component({\n selector: 'kirby-card',\n templateUrl: './card.component.html',\n styleUrls: ['./card.component.scss'],\n})\nexport class CardComponent implements OnInit, OnDestroy {\n @Input() title: string;\n @Input() subtitle: string;\n\n @HostBinding('style.--kirby-card-background-image')\n _backgroundImage: string;\n\n @Input()\n set backgroundImageUrl(value: string) {\n this._backgroundImage = `url('${value}')`;\n }\n\n @Input()\n hasPadding: boolean;\n\n private sizesSortedByBreakpoint = this.sortSizesByBreakpoint({\n small: 360,\n medium: 720,\n large: 1024,\n });\n\n @Input()\n set sizes(value: { [size: string]: number }) {\n if (typeof value === 'string') {\n console.error(\n 'Sizes property cannot be a string. Please ensure the size property is bound as an expression:\\n[sizes]=\"{...}\"'\n );\n }\n this.sizesSortedByBreakpoint = this.sortSizesByBreakpoint(value);\n }\n\n @HostBinding('class.flat')\n flat: boolean = false;\n @HostBinding('class.highlighted')\n highlighted: boolean = false;\n @Input() set mode(value: 'flat' | 'highlighted') {\n this.flat = value === 'flat';\n this.highlighted = value === 'highlighted';\n }\n\n constructor(\n private elementRef: ElementRef,\n private resizeObserverService: ResizeObserverService,\n private renderer: Renderer2\n ) {}\n\n ngOnInit() {\n this.resizeObserverService.observe(this.elementRef, (entry) => this.handleResize(entry));\n }\n\n ngOnDestroy() {\n this.resizeObserverService.unobserve(this.elementRef);\n }\n\n private sortSizesByBreakpoint(sizes: { [size: string]: number }): [string, number][] {\n return Object.entries(sizes).sort(this.compareSizesByBreakpoint);\n }\n\n private compareSizesByBreakpoint(a: [string, number], b: [string, number]): number {\n return a[1] > b[1] ? 1 : b[1] > a[1] ? -1 : 0;\n }\n\n private handleResize(entry: ResizeObserverEntry) {\n const sizeAttributeName = 'size';\n const smallestBreakpointName = this.sizesSortedByBreakpoint[0][0];\n const smallestBreakpointWidth = this.sizesSortedByBreakpoint[0][1];\n if (entry.contentRect.width < smallestBreakpointWidth) {\n this.renderer.setAttribute(entry.target, sizeAttributeName, `<${smallestBreakpointName}`);\n } else {\n this.sizesSortedByBreakpoint.forEach(([size, width]) => {\n if (entry.contentRect.width >= width) {\n this.renderer.setAttribute(entry.target, sizeAttributeName, size);\n }\n });\n }\n }\n}\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'kirby-card-footer',\n templateUrl: './card-footer.component.html',\n styleUrls: ['./card-footer.component.scss'],\n})\nexport class CardFooterComponent implements OnInit {\n constructor() {}\n\n ngOnInit() {}\n}\n","import { Component, HostBinding, Input } from '@angular/core';\n\nimport { NotificationColor } from '@kirbydesign/core';\n\nexport type CardFlagLevel = NotificationColor | 'info' | null;\n\n@Component({\n selector: 'kirby-card-header',\n templateUrl: './card-header.component.html',\n styleUrls: ['./card-header.component.scss'],\n})\nexport class CardHeaderComponent {\n @Input() title: string;\n @Input() subtitle: string;\n @Input() isTitleBold: boolean;\n @HostBinding('class')\n @Input()\n flagged: CardFlagLevel = null;\n}\n","/**\n * Performs a deep merge of objects and returns new object. Does not modify\n * objects (immutable).\n * It merges from into object to the left\n * eg. mergeDeep({a: 'will be overridden', b: 'some val'}, {a: 'new val'}) => {a: 'new val', b: 'some val'}\n *\n * @param originalObject object - Object to override,\n * @param overrideObject object - Object to override \"toOverride\" values with\n * @param config object - Configuration for how to merge.\n * mergeArrays determines if it should merge or override arrays\n * @returns object - New object with merged key/values\n */\nexport function mergeDeep(originalObject, overrideObject, config = { mergeArrays: false }) {\n const isObject = (obj) => obj && typeof obj === 'object';\n\n return [originalObject, overrideObject].reduce((mergedObject, obj) => {\n Object.keys(obj).forEach((key) => {\n const mergedObjectValue = mergedObject[key];\n const overrideObjectValue = obj[key];\n\n if (Array.isArray(mergedObjectValue) && Array.isArray(overrideObjectValue)) {\n mergedObject[key] = config.mergeArrays\n ? mergedObjectValue.concat(overrideObjectValue)\n : overrideObjectValue;\n } else if (isObject(mergedObjectValue) && isObject(overrideObjectValue)) {\n mergedObject[key] = mergeDeep(mergedObjectValue, overrideObjectValue);\n } else {\n mergedObject[key] = overrideObjectValue;\n }\n });\n\n return mergedObject;\n }, {});\n}\n\nexport function mergeDeepAll(...objects: Object[]): Object {\n const objectsWithoutUndefined = objects.filter((object) => object !== undefined);\n return objectsWithoutUndefined.reduce((originalObject, overrideObject) =>\n mergeDeep(originalObject, overrideObject)\n );\n}\n","import { ElementRef, Injectable } from '@angular/core';\nimport { chart, Options } from 'highcharts';\nimport * as Highcharts from 'highcharts';\n\n// Docs on importing accessibility: https://www.highcharts.com/docs/chart-concepts/accessibility\n\ndeclare var require: any;\nrequire('highcharts/highcharts-more')(Highcharts);\nrequire('highcharts/modules/solid-gauge')(Highcharts);\nrequire('highcharts/modules/broken-axis')(Highcharts);\n\n@Injectable()\nexport class ChartDeprecatedHelper {\n chartContainer: ElementRef;\n\n public init(chartContainer: ElementRef) {\n this.chartContainer = chartContainer;\n }\n\n public renderChart(options: Options) {\n if (this.chartContainer && options.chart) {\n chart(this.chartContainer.nativeElement, options);\n }\n }\n}\n","export enum ChartDeprecatedType {\n PIE = 'pie',\n DONUT = 'donut',\n AREASPLINE = 'areaspline',\n TIMESERIES = 'timeseries',\n ACTIVITYGAUGE = 'activitygauge',\n BAR = 'bar',\n COLUMN = 'column',\n CUSTOM = 'custom',\n}\n","import { InjectionToken } from '@angular/core';\nimport { Options } from 'highcharts';\n\nexport const ACTIVITYGAUGE_OPTIONS = new InjectionToken<Options>('ActivityGaugeOptions');\nexport const ActivityGaugeOptions: Options = {\n chart: {\n style: {\n fontFamily: 'Roboto, sans-serif',\n fontWeight: '300',\n },\n backgroundColor: 'transparent',\n type: 'solidgauge',\n height: '110%',\n },\n accessibility: {\n description: '',\n },\n title: {\n align: 'center',\n verticalAlign: 'middle',\n text: '',\n y: 0,\n floating: false,\n style: {\n fontSize: '30px',\n color: '#fff',\n fontWeight: 'bold',\n },\n },\n subtitle: {\n text: '',\n align: 'center',\n y: 25,\n verticalAlign: 'middle',\n style: {\n color: '#fff',\n fontSize: '14px',\n fontWeight: 'normal',\n },\n },\n credits: {\n enabled: false,\n },\n tooltip: {\n enabled: false,\n animation: false,\n },\n pane: {\n startAngle: 0,\n endAngle: 360,\n background: [\n {\n backgroundColor: {\n linearGradient: { x1: 0, x2: 0, y1: 0, y2: 1 },\n stops: [\n [1, 'rgba(255, 255, 255, 0.3)'],\n [0, 'rgba(255, 255, 255, 0.3)'],\n ],\n },\n outerRadius: '112%',\n innerRadius: '88%',\n borderWidth: 0,\n },\n ],\n },\n yAxis: {\n min: 0,\n max: 100,\n lineWidth: 0,\n tickPositions: [],\n },\n plotOptions: {\n solidgauge: {\n dataLabels: {\n enabled: false,\n },\n linecap: 'round',\n stickyTracking: false,\n rounded: true,\n },\n },\n series: [\n {\n type: 'solidgauge',\n },\n ],\n};\n","import { InjectionToken } from '@angular/core';\nimport { Options } from 'highcharts';\n\nexport const AREASPLINE_OPTIONS = new InjectionToken<Options>('AreasplineOptions');\nexport const AreaSplineOptions: Options = {\n chart: {\n type: 'areaspline',\n borderWidth: 0,\n plotBorderWidth: 0,\n margin: 0,\n marginTop: 48,\n },\n accessibility: {\n description: '',\n },\n title: {\n text: '',\n },\n credits: {\n enabled: false,\n },\n exporting: {\n enabled: false,\n },\n tooltip: {\n enabled: true,\n animation: false,\n shape: 'square',\n borderColor: '#FFFFFF',\n shadow: false,\n backgroundColor: '#FFFFFF',\n style: {\n fontSize: '1.25rem',\n },\n formatter: function(): string {\n return String(this.y);\n },\n positioner: function() {\n return { x: this.chart.plotSizeX / 2 - this.label.width / 2, y: 0 };\n },\n },\n xAxis: {\n visible: false,\n minPadding: 0,\n maxPadding: 0,\n crosshair: {\n zIndex: 3,\n width: 1,\n color: '#177E17',\n },\n },\n yAxis: {\n visible: false,\n endOnTick: false,\n startOnTick: false,\n },\n plotOptions: {\n areaspline: {\n shadow: true,\n showInLegend: false,\n fillColor: {\n linearGradient: { x1: 0, x2: 0, y1: 0, y2: 0.8 },\n stops: [\n [0, '#C9E5C9'],\n [1, '#FFFFFF'],\n ],\n },\n lineColor: '#177E17',\n lineWidth: 2,\n },\n series: {\n states: {\n hover: {\n halo: {\n size: 0,\n },\n },\n },\n marker: {\n enabled: false,\n states: {\n hover: {\n enabled: true,\n fillColor: '#177E17',\n },\n },\n },\n },\n },\n series: [\n {\n type: 'areaspline',\n },\n ],\n};\n","import { Options } from 'highcharts';\n\nimport { DesignTokenHelper } from '@kirbydesign/core';\n\nconst getColor = DesignTokenHelper.getColor;\nconst fontSize = DesignTokenHelper.fontSize;\n\nfunction colorPoints() {\n var series = this.series;\n for (var i = 0, ie = series.length; i < ie; ++i) {\n var points = series[i].data;\n for (var j = 0, je = points.length; j < je; ++j) {\n if (points[j].graphic) {\n points[j].graphic.element.style.stroke = getColor('background-color').value;\n }\n }\n }\n}\n\nexport const barOptions: Options = {\n chart: {\n type: 'bar',\n animation: {\n duration: 150,\n },\n backgroundColor: 'transparent',\n events: {\n load: colorPoints,\n redraw: colorPoints,\n },\n },\n accessibility: {\n description: 'Bar chart',\n },\n credits: {\n enabled: false,\n },\n title: {\n text: '',\n },\n xAxis: {\n labels: {\n style: {\n fontSize: fontSize('s'),\n fontFamily: 'Roboto',\n color: getColor('black').value,\n },\n },\n min: 0,\n lineColor: 'transparent',\n },\n yAxis: {\n title: {\n text: '',\n },\n labels: {\n enabled: false,\n },\n min: 0,\n lineWidth: 0,\n minorGridLineWidth: 0,\n gridLineColor: 'transparent',\n minorTickLength: 0,\n tickLength: 0,\n maxPadding: 0,\n endOnTick: false,\n showLastLabel: false,\n showFirstLabel: false,\n },\n plotOptions: {\n bar: {\n events: {},\n },\n series: {\n color: getColor('secondary').value,\n stacking: 'normal',\n states: {\n hover: {\n enabled: false,\n },\n inactive: {\n opacity: 1,\n },\n },\n },\n },\n tooltip: {\n enabled: false,\n },\n legend: {\n enabled: false,\n },\n};\n","import { Options } from 'highcharts';\n\nimport { DesignTokenHelper } from '@kirbydesign/core';\n\nconst getColor = DesignTokenHelper.getColor;\nconst fontSize = DesignTokenHelper.fontSize;\n\nfunction colorPoints() {\n var series = this.series;\n for (var i = 0, ie = series.length; i < ie; ++i) {\n var points = series[i].data;\n for (var j = 0, je = points.length; j < je; ++j) {\n if (points[j].graphic) {\n points[j].graphic.element.style.stroke = getColor('secondary').value;\n }\n }\n }\n}\n\nexport const columnOptions: Options = {\n chart: {\n animation: {\n duration: 500,\n },\n backgroundColor: 'transparent',\n type: 'column',\n events: {\n load: colorPoints,\n redraw: colorPoints,\n },\n },\n title: {\n text: '',\n },\n accessibility: {\n description: 'Column chart',\n },\n xAxis: {\n labels: {\n style: {\n fontSize: fontSize('xxs'),\n fontFamily: 'Roboto',\n color: getColor('black').value,\n },\n },\n lineWidth: 0,\n minorGridLineWidth: 0,\n lineColor: 'transparent',\n minorTickLength: 0,\n tickLength: 0,\n },\n yAxis: {\n title: {\n text: '',\n },\n labels: {\n enabled: false,\n },\n min: 0,\n lineWidth: 0,\n minorGridLineWidth: 0,\n gridLineColor: 'transparent',\n minorTickLength: 0,\n tickLength: 0,\n showLastLabel: false,\n showFirstLabel: false,\n },\n credits: {\n enabled: false,\n },\n plotOptions: {\n column: {\n stacking: 'normal',\n },\n series: {\n color: getColor('secondary').value,\n zIndex: 10,\n states: {\n hover: {\n enabled: false,\n },\n inactive: {\n opacity: 1,\n },\n },\n },\n line: {\n className: 'avg-line',\n marker: {\n enabled: false,\n },\n allowPointSelect: false,\n },\n },\n tooltip: {\n enabled: false,\n },\n legend: {\n enabled: false,\n },\n};\n","import { InjectionToken } from '@angular/core';\nimport { Options } from 'highcharts';\n\nexport const DONUT_OPTIONS = new InjectionToken<Options>('DonutOptions');\nexport const DonutOptions: Options = {\n chart: {\n style: {\n fontFamily: 'Roboto',\n fontWeight: '300',\n },\n backgroundColor: 'transparent',\n type: '',\n },\n accessibility: {\n description: 'Donut chart',\n },\n title: {\n text: '',\n },\n tooltip: {\n enabled: false,\n animation: false,\n },\n legend: {\n layout: 'vertical',\n symbolRadius: 0,\n itemStyle: {\n fontSize: '.875rem',\n },\n },\n plotOptions: {\n pie: {\n colors: ['#015132', '#B2D1BF', '#AABC08', '#1FA05A', 'yellowgreen'],\n allowPointSelect: false,\n cursor: 'pointer',\n showInLegend: true,\n borderColor: null,\n dataLabels: {\n format: '{point.label}',\n enabled: true,\n connectorWidth: 0,\n distance: 5,\n style: {\n fontSize: '1rem',\n fontWeight: '200',\n },\n },\n point: {\n events: {\n legendItemClick: () => {\n // Prevent the default behavior (toggle visibility of slices when clicking on legends)\n return false;\n },\n },\n },\n states: {\n hover: {\n enabled: false,\n },\n },\n },\n series: {\n animation: true,\n dataLabels: {},\n states: {\n hover: {\n enabled: false,\n },\n inactive: {\n opacity: 1,\n },\n },\n },\n },\n series: [\n {\n name: '',\n type: 'pie',\n },\n ],\n credits: {\n enabled: false,\n },\n exporting: {\n enabled: false,\n },\n responsive: {\n rules: [\n {\n condition: {\n minWidth: 640,\n },\n chartOptions: {\n legend: {\n layout: 'vertical',\n align: 'right',\n verticalAlign: 'middle',\n itemMarginTop: 12,\n symbolRadius: 0,\n symbolWidth: 14,\n symbolHeight: 14,\n x: -100,\n },\n },\n },\n {\n condition: {\n minWidth: 0,\n },\n chartOptions: {\n legend: {\n symbolRadius: 0,\n },\n },\n },\n ],\n },\n};\n","import { InjectionToken } from '@angular/core';\nimport { dateFormat, Options } from 'highcharts';\n\nexport const TIMESERIES_OPTIONS = new InjectionToken<Options>('TimeSeriesOptions');\nexport const TimeSeriesOptions: Options = {\n chart: {\n backgroundColor: {\n linearGradient: { x1: 0, x2: 0, y1: 0, y2: 3 },\n stops: [\n [0, '#F6F6F6'],\n [1, '#808080'],\n ],\n },\n zoomType: 'x',\n type: 'timeseries',\n borderWidth: 0,\n plotBorderWidth: 0,\n margin: 0,\n marginTop: 48,\n },\n accessibility: {\n description: '',\n },\n title: {\n text: '',\n },\n subtitle: {\n text: '',\n },\n tooltip: {\n shadow: false,\n formatter: function() {\n // @ts-ignore\n return dateFormat('%e. %b', new Date(this.x)) + '.' + '<br/><b>' + this.y + '</b>';\n },\n //xDateFormat: '%d/%m',\n positioner: function(_labelWidth, _labelHeight, point) {\n return { x: point.x, y: 0 };\n },\n borderWidth: 0,\n },\n xAxis: {\n visible: false,\n lineColor: '#FFFFFF',\n tickColor: '#FFFFFF',\n labels: {\n style: {\n color: 'white',\n },\n },\n opposite: true,\n crosshair: {\n zIndex: 3,\n width: 1,\n color: '#00E89A',\n },\n type: 'datetime',\n tickInterval: 1,\n },\n yAxis: {\n visible: false,\n },\n legend: {\n enabled: false,\n },\n plotOptions: {\n area: {\n fillColor: '#01352C',\n marker: {\n lineWidth: 14,\n lineColor: 'rgba(255,255,255,0.2)',\n radius: 6,\n fillColor: '#00E89A',\n },\n lineColor: '#01352C',\n lineWidth: 1,\n states: {\n hover: {\n lineWidth: 1,\n },\n },\n threshold: null,\n },\n series: {\n marker: {\n enabledThreshold: 50,\n },\n },\n },\n series: [\n {\n type: 'area',\n name: 'USD to EUR',\n },\n ],\n};\n","import { Component, ElementRef, Inject, Input, OnChanges, SimpleChanges } from '@angular/core';\nimport {\n Options,\n PlotSeriesDataLabelsOptions,\n XAxisBreaksOptions,\n XAxisOptions,\n YAxisOptions,\n} from 'highcharts';\n\nimport { mergeDeep } from '../../helpers/merge-deep';\n\nimport { ChartDeprecatedHelper } from './chart-deprecated-helper';\nimport { ChartDeprecatedType } from './chart-deprecated-type';\nimport { ActivityGaugeOptions, ACTIVITYGAUGE_OPTIONS } from './options/activitygauge';\nimport { AreaSplineOptions, AREASPLINE_OPTIONS } from './options/areaspline';\nimport { barOptions } from './options/bar';\nimport { columnOptions } from './options/column';\nimport { DonutOptions, DONUT_OPTIONS } from './options/donut';\nimport { TimeSeriesOptions, TIMESERIES_OPTIONS } from './options/timeseries';\n\n@Component({\n selector: 'kirby-chart-deprecated',\n template: '',\n styleUrls: ['./chart-deprecated.component.scss'],\n providers: [\n ChartDeprecatedHelper,\n { provide: DONUT_OPTIONS, useValue: DonutOptions },\n { provide: AREASPLINE_OPTIONS, useValue: AreaSplineOptions },\n { provide: TIMESERIES_OPTIONS, useValue: TimeSeriesOptions },\n { provide: ACTIVITYGAUGE_OPTIONS, useValue: ActivityGaugeOptions },\n ],\n})\nexport class ChartDeprecatedComponent implements OnChanges {\n @Input() data = [];\n @Input() categories: string[] = [];\n @Input() breaks: Array<XAxisBreaksOptions> = [];\n @Input() height = 300;\n @Input() type: ChartDeprecatedType = ChartDeprecatedType.PIE;\n @Input() description = '';\n @Input() showDataLabels = true;\n @Input() options: Options;\n mergedOptions: Options = {\n accessibility: {},\n };\n\n constructor(\n private chartHelper: ChartDeprecatedHelper,\n private hostElement: ElementRef,\n @Inject(DONUT_OPTIONS) public donutOptions: Options,\n @Inject(AREASPLINE_OPTIONS) public areasplineOptions: Options,\n @Inject(TIMESERIES_OPTIONS) public timeSeriesOptions: Options,\n @Inject(ACTIVITYGAUGE_OPTIONS) public activitygaugeOptions: Options\n ) {\n this.chartHelper.init(this.hostElement);\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes.type) {\n this.setupChartType();\n }\n this.updateProperties();\n this.chartHelper.renderChart(this.mergedOptions);\n }\n\n setupChartType() {\n switch (this.type) {\n case ChartDeprecatedType.DONUT: {\n this.mergedOptions = this.donutOptions;\n this.mergedOptions.chart.type = ChartDeprecatedType.PIE;\n this.mergedOptions.plotOptions.pie.innerSize = '50%';\n break;\n }\n case ChartDeprecatedType.PIE: {\n this.mergedOptions = this.donutOptions;\n this.mergedOptions.chart.type = this.type;\n this.mergedOptions.plotOptions.pie.innerSize = '0%';\n break;\n }\n case ChartDeprecatedType.AREASPLINE: {\n this.mergedOptions = this.areasplineOptions;\n this.mergedOptions.chart.type = this.type;\n break;\n }\n case ChartDeprecatedType.TIMESERIES: {\n this.mergedOptions = this.timeSeriesOptions;\n this.mergedOptions.chart.type = this.type;\n break;\n }\n case ChartDeprecatedType.ACTIVITYGAUGE: {\n this.mergedOptions = this.activitygaugeOptions;\n this.mergedOptions.chart.type = this.type;\n break;\n }\n case ChartDeprecatedType.COLUMN: {\n this.mergedOptions = columnOptions;\n this.mergedOptions.chart.type = this.type;\n break;\n }\n case ChartDeprecatedType.BAR: {\n this.mergedOptions = barOptions;\n this.mergedOptions.chart.type = this.type;\n break;\n }\n }\n }\n\n updateProperties() {\n this.mergedOptions.chart.height = this.height;\n this.mergedOptions.accessibility.description = this.description;\n switch (this.mergedOptions.chart.type) {\n case ChartDeprecatedType.PIE:\n case ChartDeprecatedType.DONUT: {\n this.setPieInput();\n break;\n }\n case ChartDeprecatedType.AREASPLINE: {\n this.setSeries('areaspline');\n break;\n }\n case ChartDeprecatedType.TIMESERIES: {\n this.setTimeseriesInput();\n break;\n }\n case ChartDeprecatedType.ACTIVITYGAUGE: {\n this.setActivitygaugeInput();\n break;\n }\n case ChartDeprecatedType.COLUMN: {\n this.setColumnInput();\n break;\n }\n case ChartDeprecatedType.BAR: {\n this.setBarInput();\n break;\n }\n }\n if (!!this.options) {\n this.mergedOptions = mergeDeep(this.mergedOptions, this.options);\n }\n }\n\n private setPieInput() {\n (this.mergedOptions.plotOptions.pie\n .dataLabels as PlotSeriesDataLabelsOptions).enabled = this.showDataLabels;\n this.setSeries('pie');\n }\n\n private setBarInput() {\n const dataMaxValue = Math.max(...this.data);\n this.mergedOptions.series = [\n {\n type: 'bar',\n name: 'InvisibleClickReceiver',\n data: this.data.map((dataEntry) => dataMaxValue - dataEntry),\n edgeColor: 'rgb(255, 255, 255, 0)',\n opacity: 0,\n },\n {\n type: 'bar',\n data: this.data,\n },\n ];\n (this.mergedOptions.xAxis as XAxisOptions).categories = this.categories;\n }\n\n private setColumnInput() {\n this.mergedOptions.series = [\n {\n type: 'column',\n data: this.data,\n },\n ];\n const dataMaxValue = Math.max(...this.data);\n ((this.mergedOptions.yAxis as YAxisOptions).tickPositioner = () => {\n var positions = [0, dataMaxValue];\n return positions;\n }),\n (this.mergedOptions.series = [\n {\n type: 'column',\n name: 'InvisibleClickReceiver',\n data: this.data.map((_, idx) => dataMaxValue - this.data[idx]),\n opacity: 0,\n },\n {\n type: 'column',\n data: this.data,\n },\n ]);\n (this.mergedOptions.xAxis as XAxisOptions).categories = this.categories;\n }\n\n private setActivitygaugeInput() {\n const data = this.data[0];\n this.mergedOptions.title.text = data.title;\n this.mergedOptions.subtitle.text = data.subtitle;\n if (data.paneBackgroundColor) {\n this.mergedOptions.pane.background = [\n {\n ...this.mergedOptions.pane.background[0],\n backgroundColor: data.paneBackgroundColor,\n },\n ];\n }\n if (data.color) {\n this.mergedOptions.title.style.color = data.color;\n this.mergedOptions.subtitle.style.color = data.color;\n }\n this.mergedOptions.series = [\n {\n type: 'solidgauge',\n data: data.series,\n },\n ];\n }\n\n private setTimeseriesInput() {\n this.setSeries('area');\n this.mergedOptions.xAxis = {\n ...this.mergedOptions.xAxis,\n breaks: this.breaks,\n };\n }\n\n private setSeries(type) {\n this.mergedOptions.series = [\n {\n type,\n data: this.data,\n },\n ];\n }\n}\n","import { ChartDataset as ChartJSDataset, ChartOptions, ChartType as ChartJSType } from 'chart.js';\n\nexport type ChartHighlightedElements = number[][];\n\nexport type ChartType = 'column' | 'bar' | 'line' | 'stock';\n\nexport type ChartTypeConfig = { type: ChartJSType; options?: ChartOptions };\n\nexport type ChartTypesConfig = {\n [key in ChartType]: ChartTypeConfig;\n};\n\nexport type ChartDataLabelOptions = {\n showMin?: boolean;\n showMax?: boolean;\n showCurrent?: boolean;\n locale?: ChartLocale;\n valueSuffix?: string;\n};\n\nexport type ChartLocale = 'da-DK' | 'en-US';\n\n/* \n kirbyOptions.isStockChart is a hacky solution to this issue: \n https://github.com/kirbydesign/designsystem/issues/1967 \n*/\nexport type ChartDataset = {\n kirbyOptions?: { highlightedElements?: number[]; isStockChart?: boolean };\n} & ChartJSDataset;\n\nexport function isNumberArray(value: any): value is number[] {\n return Array.isArray(value) && value.every((item) => typeof item === 'number');\n}\n","import {\n Directive,\n Input,\n ComponentFactoryResolver,\n OnInit,\n Renderer2,\n ViewContainerRef,\n} from '@angular/core';\n\nimport { ComponentConfiguration } from './component-configuration';\nimport { DynamicComponent } from './dynamic-component';\n\n@Directive({\n selector: '[kirbyLoadComponent]',\n})\nexport class ComponentLoaderDirective implements OnInit {\n // tslint:disable-next-line:no-input-rename\n @Input('kirbyLoadComponent') configuration: ComponentConfiguration;\n @Input() cssClass: string;\n\n constructor(\n private componentFactoryResolver: ComponentFactoryResolver,\n private viewContainerRef: ViewContainerRef,\n private renderer: Renderer2\n ) {}\n\n ngOnInit() {\n this.loadCard();\n }\n\n loadCard() {\n const componentFactory = this.componentFactoryResolver.resolveComponentFactory(\n this.configuration.component\n );\n this.viewContainerRef.clear();\n const componentRef = this.viewContainerRef.createComponent(componentFactory);\n if (componentRef && componentRef.location && componentRef.location.nativeElement) {\n this.renderer.addClass(componentRef.location.nativeElement, this.cssClass);\n }\n (<DynamicComponent>componentRef.instance).data = this.configuration.data;\n }\n}\n","import _deepCopy from 'ts-deepcopy';\n\n/**\n * Do a deep copy of object that supports the composite data type Function\n *\n * @see https://stackoverflow.com/questions/122102/what-is-the-most-efficient-way-to-deep-clone-an-object-in-javascript#answer-122704\n *\n * @param obj\n * @returns obj\n */\nexport function deepCopy<T>(obj: T): T {\n return _deepCopy<T>(obj);\n}\n","/* \n Utility function to check if a given element \n has an ancestor with a specific node name. \n\n Can be given a 'stopNodeName' to limit the search\n as to not climb all the way up through the DOM tree. \n\n Returns true when element has the ancestorNodeName \n or an ancestor has the ancestorNodeName. \n\n Returns false otherwise.\n*/\n\nexport const elementHasAncestor = (\n element: HTMLElement,\n ancestorNodeName: string,\n stopNodeName?: string\n) => {\n switch (element?.nodeName) {\n case undefined:\n case stopNodeName?.toUpperCase():\n return false;\n case ancestorNodeName.toUpperCase():\n return true;\n default:\n return elementHasAncestor(element.parentElement, ancestorNodeName, stopNodeName);\n }\n};\n","// re-export helpers from core, to preserve backwards compatability\n// of 'designsystem' library\nexport * from './element-has-ancestor';\nexport * from './color-helper';\nexport * from './design-token-helper';\nexport * from './string-helper';\nexport * from './theme-color.type';\nexport * from './platform.service';\n","import { AnnotationTypeRegistry } from 'chartjs-plugin-annotation';\n\nimport { ColorHelper } from '../../../helpers';\n\nconst { getThemeColorHexString } = ColorHelper;\n\n/* The chart.js annotation does not allow for changing the \ndefaults it comes with. In order to have sensible defaults \nthis object is used instead and manually merged with the \nrest of the annotations object */\nconst borderColor = getThemeColorHexString('semi-dark');\nconst borderDash: [number, number] = [6, 3];\nconst borderWidth = 1;\n\nexport const CHART_ANNOTATIONS_CONFIG: AnnotationTypeRegistry = {\n line: {\n borderDash,\n borderWidth,\n borderColor,\n },\n ellipse: {\n borderDash,\n borderWidth,\n borderColor,\n backgroundColor: 'transparent',\n },\n box: {\n borderDash,\n borderWidth,\n borderColor,\n backgroundColor: 'transparent',\n },\n point: {\n backgroundColor: 'initial',\n },\n};\n","import { ActiveElement, Chart, ChartEvent, ChartOptions } from 'chart.js';\n\n/* Allows for adding functionality to interactions chart.js while \npreserving the interaction functionality the consumer of the component has \npassed by being provided as a callback. */\nexport const CHART_INTERACTION_FUNCTIONS_EXTENSIONS = {\n onHover: (\n _event: ChartEvent,\n activeElements: ActiveElement[],\n _chart: Chart,\n callback: ChartOptions['onHover']\n ) => {\n if (_chart.options.onClick) {\n _chart.canvas.style.cursor = activeElements[0] ? 'pointer' : 'default';\n }\n\n if (callback) callback(_event, activeElements, _chart);\n },\n};\n","import { ChartTypeRegistry, Color, Point, TooltipItem, TooltipLabelStyle } from 'chart.js';\nimport { Context } from 'chartjs-plugin-datalabels';\nimport { Align } from 'chartjs-plugin-datalabels/types/options';\n\nimport { ColorHelper, DesignTokenHelper } from '../../../helpers';\nimport { ChartTypesConfig } from '../chart.types';\n\nconst { fontSize } = DesignTokenHelper;\nconst { getThemeColorHexString, getThemeColorRgbString } = ColorHelper;\n\n/**\n * A filter to read a chartpoint from a Chart.js point context (used for chartdata points). Context is provided by Chart.js.\n */\nconst getChartPointFromContext = (context: Context): Point => {\n return context.dataset.data[context.dataIndex] as Point;\n};\n\nexport const CHART_TYPES_CONFIG: ChartTypesConfig = {\n bar: {\n type: 'bar',\n options: {\n datasets: {\n bar: {\n barPercentage: 0.6,\n },\n line: {\n spanGaps: true,\n },\n },\n indexAxis: 'y',\n scales: {\n y: {\n grid: {\n drawBorder: false,\n },\n ticks: {\n font: {\n size: parseInt(fontSize('s')),\n },\n },\n },\n },\n elements: {\n point: {\n radius: 0,\n },\n line: {\n borderColor: getThemeColorHexString('medium'),\n },\n },\n },\n },\n column: {\n type: 'bar',\n options: {\n datasets: {\n bar: {\n barPercentage: 0.6,\n },\n line: {\n spanGaps: true,\n },\n },\n indexAxis: 'x',\n scales: {\n x: {\n grid: {\n drawBorder: false,\n },\n ticks: {\n font: {\n size: parseInt(fontSize('xs')),\n },\n },\n },\n },\n elements: {\n line: {\n tension: 0.2,\n borderColor: getThemeColorHexString('medium'),\n },\n point: {\n radius: 0,\n },\n },\n },\n },\n line: {\n type: 'line',\n options: {\n backgroundColor: getThemeColorRgbString('semi-light', 0.5),\n scales: {\n x: {\n grid: {\n borderColor: getThemeColorHexString('medium'),\n borderWidth: 1,\n },\n ticks: {\n font: {\n size: parseInt(fontSize('xs')),\n },\n },\n },\n },\n elements: {\n point: {\n radius: 0,\n },\n },\n },\n },\n stock: {\n type: 'line',\n options: {\n responsive: true,\n animation: {\n duration: 0,\n },\n layout: {\n padding: {\n left: 20,\n right: 20,\n top: 30,\n bottom: 0,\n },\n },\n backgroundColor: getThemeColorRgbString('semi-light', 0.5),\n scales: {\n x: {\n grid: {\n lineWidth: 0,\n },\n ticks: {\n maxRotation: 0,\n autoSkipPadding: 120,\n font: {\n size: parseInt(fontSize('xs')),\n },\n },\n },\n y: {\n position: 'right',\n display: true,\n grid: {\n drawBorder: false,\n },\n ticks: {\n display: true,\n font: {\n size: parseInt(fontSize('xs')),\n },\n },\n },\n },\n elements: {\n line: {\n tension: 0, // Smooth curve (0 = no smoothing)\n borderWidth: 2,\n },\n point: {\n hitRadius: 20,\n radius: 0,\n hoverRadius: 0,\n hoverBorderWidth: 0,\n },\n },\n normalized: true,\n plugins: {\n tooltip: {\n padding: 10,\n\n enabled: true,\n mode: 'index',\n intersect: false,\n backgroundColor: getThemeColorHexString('semi-light'),\n titleColor: getThemeColorHexString('semi-light-contrast'),\n bodyColor: getThemeColorHexString('semi-light-contrast'),\n caretSize: 0,\n bodySpacing: 5,\n titleSpacing: 5,\n borderColor: 'transparent',\n callbacks: {\n labelColor: (tooltipItem: TooltipItem<keyof ChartTypeRegistry>) => {\n return {\n backgroundColor: tooltipItem.dataset.borderColor,\n } as TooltipLabelStyle;\n },\n },\n },\n datalabels: {\n backgroundColor: (context: Context) => context.dataset.borderColor as Color,\n color: getThemeColorHexString('white'),\n borderRadius: 3,\n font: {\n lineHeight: 1,\n size: parseInt(fontSize('xs')),\n },\n padding: {\n top: 6,\n left: 5,\n right: 5,\n bottom: 5,\n },\n offset: 5,\n align: (context: Context): Align =>\n (getChartPointFromContext(context) as any)?.datalabel.position,\n display: (context: Context): boolean =>\n !!(getChartPointFromContext(context) as any)?.datalabel,\n formatter: (value: any): string => value.datalabel.value,\n },\n },\n },\n },\n};\n","import { Injectable } from '@angular/core';\nimport { ChartType as ChartJSType } from 'chart.js';\nimport { AnnotationType, AnnotationTypeRegistry } from 'chartjs-plugin-annotation';\n\nimport { deepCopy } from '../../../helpers/deep-copy';\nimport { ChartType, ChartTypeConfig } from '../chart.types';\n\nimport { CHART_ANNOTATIONS_CONFIG } from './annotations.config';\nimport { CHART_INTERACTION_FUNCTIONS_EXTENSIONS } from './interaction-functions-extensions.config';\nimport { CHART_TYPES_CONFIG } from './type.config';\n\n@Injectable()\nexport class ChartConfigService {\n public getTypeConfig(chartType: ChartType): ChartTypeConfig {\n /* Deep copy to avoid Chart object modifying parts of CHART_TYPES_CONFIG \n as it copies by reference when initialized */\n return deepCopy(CHART_TYPES_CONFIG[chartType]);\n }\n\n public getAnnotationDefaults(type: AnnotationType): AnnotationTypeRegistry[AnnotationType] {\n return CHART_ANNOTATIONS_CONFIG[type];\n }\n\n public getInteractionFunctionsExtensions() {\n return CHART_INTERACTION_FUNCTIONS_EXTENSIONS;\n }\n\n /* Our types does not always map 1 to 1 to the same type \n that the chart.js chart is actually oconfigured with. Therefore this function \n for looking up the ChartJSType of a type. */\n public chartTypeToChartJSType(chartType: ChartType): ChartJSType {\n return CHART_TYPES_CONFIG[chartType]['type'] as ChartJSType;\n }\n}\n","/* \n The marker plugin is heavily inspired by https://chartjs-plugin-crosshair.netlify.app\n The project appears stale and only the vertical line feature is needed\n part of the plugin that was actually needed is implemented here. \n*/\n\nimport { Chart } from 'chart.js';\nimport { valueOrDefault } from 'chart.js/helpers';\n\nimport { ChartDataset } from '../../chart.types';\n\nvar defaultOptions = {\n line: {\n color: 'black',\n width: 1,\n dashPattern: [],\n },\n snap: {\n enabled: false,\n },\n};\n\nconst hasMarkerConfiguration = (chart: Chart) => {\n /* \n Hacky solution. Should be fixed in this issue: https://github.com/kirbydesign/designsystem/issues/1967\n */\n return chart.data.datasets.some((dataset: ChartDataset) => !!dataset?.kirbyOptions?.isStockChart);\n};\n\nexport default {\n id: 'marker',\n\n afterInit: function(chart) {\n if (!hasMarkerConfiguration(chart)) {\n return;\n }\n\n var xScaleType = chart.config.options.scales.x.type;\n\n if (\n xScaleType !== 'linear' &&\n xScaleType !== 'time' &&\n xScaleType !== 'category' &&\n xScaleType !== 'logarithmic'\n ) {\n return;\n }\n\n if (chart.options.plugins.marker === undefined) {\n chart.options.plugins.marker = defaultOptions;\n }\n\n chart.marker = {\n enabled: false,\n suppressUpdate: false,\n x: null,\n originalData: [],\n originalXRange: {},\n dragStarted: false,\n dragStartX: null,\n dragEndX: null,\n suppressTooltips: false,\n ignoreNextEvents: 0,\n };\n },\n\n getOption: function(chart, category, name) {\n return valueOrDefault(\n chart.options.plugins.marker[category]\n ? chart.options.plugins.marker[category][name]\n : undefined,\n defaultOptions[category][name]\n );\n },\n\n getXScale: function(chart) {\n return chart.data.datasets.length ? chart.scales[chart.getDatasetMeta(0).xAxisID] : null;\n },\n getYScale: function(chart) {\n return chart.scales[chart.getDatasetMeta(0).yAxisID];\n },\n\n afterEvent: function(chart, event) {\n if (!hasMarkerConfiguration(chart)) {\n return;\n }\n if (chart.config.options.scales.x.length == 0) {\n return;\n }\n\n let e = event.event;\n\n var xScaleType = chart.config.options.scales.x.type;\n\n if (\n xScaleType !== 'linear' &&\n xScaleType !== 'time' &&\n xScaleType !== 'category' &&\n xScaleType !== 'logarithmic'\n ) {\n return;\n }\n\n var xScale = this.getXScale(chart);\n\n if (!xScale) {\n return;\n }\n\n if (chart.marker.ignoreNextEvents > 0) {\n chart.marker.ignoreNextEvents -= 1;\n return;\n }\n\n // fix for Safari\n var buttons = e.native.buttons === undefined ? e.native.which : e.native.buttons;\n if (e.native.type === 'mouseup') {\n buttons = 0;\n }\n\n chart.marker.enabled =\n e.type !== 'mouseout' &&\n e.x > xScale.getPixelForValue(xScale.min) &&\n e.x < xScale.getPixelForValue(xScale.max);\n\n if (!chart.marker.enabled && !chart.marker.suppressUpdate) {\n if (e.x > xScale.getPixelForValue(xScale.max)) {\n // suppress future updates to prevent endless redrawing of chart\n chart.marker.suppressUpdate = true;\n chart.update('none');\n }\n chart.marker.dragStarted = false; // cancel zoom in progress\n return false;\n }\n chart.marker.suppressUpdate = false;\n\n chart.marker.x = e.x;\n\n chart.draw();\n },\n doDraw: function(chart) {\n if (!hasMarkerConfiguration(chart)) {\n return;\n }\n\n if (!chart.marker.enabled) {\n return;\n }\n\n this.drawTraceLine(chart);\n this.interpolateValues(chart);\n this.drawTracePoints(chart);\n\n return true;\n },\n beforeDraw: function(chart) {\n return this.doDraw(chart);\n },\n // Logic moved to beforeDraw in order\n // for the vertical line to be drawn\n // under tooltip and datalabels.\n // afterDraw: function(chart) {\n // return this.doDraw(chart);\n // },\n\n drawTraceLine: function(chart) {\n if (!hasMarkerConfiguration(chart)) {\n return;\n }\n var yScale = this.getYScale(chart);\n\n var lineWidth = this.getOption(chart, 'line', 'width');\n var color = this.getOption(chart, 'line', 'color');\n var dashPattern = this.getOption(chart, 'line', 'dashPattern');\n var snapEnabled = this.getOption(chart, 'snap', 'enabled');\n\n var lineX = chart.marker.x;\n\n if (snapEnabled && chart._active.length) {\n lineX = chart._active[0].element.x;\n }\n\n chart.ctx.beginPath();\n chart.ctx.setLineDash(dashPattern);\n chart.ctx.moveTo(lineX, yScale.getPixelForValue(yScale.max));\n chart.ctx.lineWidth = lineWidth;\n chart.ctx.strokeStyle = color;\n chart.ctx.lineTo(lineX, yScale.getPixelForValue(yScale.min));\n chart.ctx.stroke();\n chart.ctx.setLineDash([]);\n },\n\n drawTracePoints: function(chart) {\n if (!hasMarkerConfiguration(chart)) {\n return;\n }\n for (var chartIndex = 0; chartIndex < chart.data.datasets.length; chartIndex++) {\n var dataset = chart.data.datasets[chartIndex];\n var meta = chart.getDatasetMeta(chartIndex);\n\n var yScale = chart.scales[meta.yAxisID];\n\n if (meta.hidden || !dataset.interpolate) {\n continue;\n }\n\n chart.ctx.beginPath();\n chart.ctx.arc(\n chart.marker.x,\n yScale.getPixelForValue(dataset.interpolatedValue),\n 3,\n 0,\n 2 * Math.PI,\n false\n );\n chart.ctx.fillStyle = 'white';\n chart.ctx.lineWidth = 2;\n chart.ctx.strokeStyle = dataset.borderColor;\n chart.ctx.fill();\n chart.ctx.stroke();\n }\n },\n\n interpolateValues: function(chart) {\n for (var chartIndex = 0; chartIndex < chart.data.datasets.length; chartIndex++) {\n var dataset = chart.data.datasets[chartIndex];\n\n var meta = chart.getDatasetMeta(chartIndex);\n\n var xScale = chart.scales[meta.xAxisID];\n var xValue = xScale.getValueForPixel(chart.marker.x);\n\n if (meta.hidden || !dataset.interpolate) {\n continue;\n }\n\n var data = dataset.data;\n var index = data.findIndex(function(o) {\n return o.x >= xValue;\n });\n var prev = data[index - 1];\n var next = data[index];\n\n if (chart.data.datasets[chartIndex].steppedLine && prev) {\n dataset.interpolatedValue = prev.y;\n } else if (prev && next) {\n var slope = (next.y - prev.y) / (next.x - prev.x);\n dataset.interpolatedValue = prev.y + (xValue - prev.x) * slope;\n } else {\n dataset.interpolatedValue = NaN;\n }\n }\n },\n};\n","import { ChartType, ScriptableContext } from 'chart.js';\n\nimport { ColorHelper } from '../../../helpers';\nimport { ChartDataset } from '../chart.types';\n\nconst { getThemeColorHexString } = ColorHelper;\n\nexport const hoverBackgroundColor = getThemeColorHexString('primary');\nexport const backgroundColor = getThemeColorHexString('secondary');\n\n// Highlight elements that are added to the highlightedElements array\nexport function scriptedBackgroundColor(context: ScriptableContext<ChartType>) {\n const dataset = context.dataset as ChartDataset;\n const highlightedElements = dataset?.kirbyOptions?.highlightedElements;\n\n if (highlightedElements && highlightedElements.includes(context.dataIndex)) {\n return hoverBackgroundColor;\n } else {\n return backgroundColor;\n }\n}\n\n// Only adds a hovercolor if an onClick handler is provided\nexport function scriptedHoverBackgroundColor(context: ScriptableContext<ChartType>) {\n if (context.chart.options.onClick) {\n return hoverBackgroundColor;\n }\n}\n","import { ColorHelper } from '../../../helpers';\n\nimport { scriptedBackgroundColor, scriptedHoverBackgroundColor } from './shared.utils';\n\nconst { getThemeColorHexString } = ColorHelper;\n\nexport const CHART_GLOBAL_DEFAULTS = {\n maintainAspectRatio: false,\n color: getThemeColorHexString('black'),\n resizeDelay: 10,\n elements: {\n bar: {\n backgroundColor: scriptedBackgroundColor,\n hoverBackgroundColor: scriptedHoverBackgroundColor,\n },\n line: {\n borderColor: scriptedBackgroundColor,\n borderWidth: 2,\n tension: 0.3,\n },\n },\n scales: {\n linear: {\n display: false,\n ticks: {\n display: false,\n },\n },\n category: {\n display: true,\n grid: {\n display: false,\n },\n },\n },\n font: {\n family: 'Roboto',\n },\n plugins: {\n legend: {\n display: false,\n },\n datalabels: {\n display: false,\n },\n tooltip: {\n enabled: false,\n },\n },\n};\n","import {\n BarController,\n BarElement,\n CategoryScale,\n Chart,\n Filler,\n Legend,\n LinearScale,\n LineController,\n LineElement,\n PointElement,\n TimeScale,\n Tooltip,\n} from 'chart.js';\nimport 'chartjs-adapter-date-fns';\nimport annotationPlugin from 'chartjs-plugin-annotation';\nimport ChartDataLabels from 'chartjs-plugin-datalabels';\n\nimport { mergeDeepAll } from '../../../helpers/merge-deep';\nimport MarkerPlugin from '../chart-js/chartjs-plugin-marker/chartjs-plugin-marker';\nimport { CHART_GLOBAL_DEFAULTS } from '../configs/global-defaults.config';\n\nconst CHART_SCALES = [CategoryScale, LinearScale, TimeScale];\nconst CHART_ELEMENTS = [BarElement, LineElement, PointElement];\nconst CHART_CONTROLLERS = [BarController, LineController];\nconst CHART_PLUGINS = [annotationPlugin, Filler, ChartDataLabels, Tooltip, MarkerPlugin];\n\n/* Order matters; defaults must be merged after register as \n register modifies the Chart.defaults objects */\nChart.register(Legend, ...CHART_SCALES, ...CHART_ELEMENTS, ...CHART_CONTROLLERS, ...CHART_PLUGINS);\n\n/* Chart.defaults is read only; set each key modified in \n CHART_GLOBAL_DEFAULTS manually */\nconst mergedDefaults = mergeDeepAll(Chart.defaults, CHART_GLOBAL_DEFAULTS);\nObject.entries(CHART_GLOBAL_DEFAULTS).forEach(([key]) => {\n Chart.defaults[key] = mergedDefaults[key];\n});\n\nexport { Chart };\n","import { ElementRef, Injectable } from '@angular/core';\nimport { ActiveElement, ChartConfiguration, ChartOptions, ScatterDataPoint } from 'chart.js';\nimport { AnnotationOptions } from 'chartjs-plugin-annotation';\nimport { toDate } from 'date-fns';\n\nimport { mergeDeepAll } from '../../../helpers/merge-deep';\nimport {\n ChartDataLabelOptions,\n ChartDataset,\n ChartHighlightedElements,\n ChartLocale,\n ChartType,\n isNumberArray,\n} from '../chart.types';\nimport { ChartConfigService } from '../configs/chart-config.service';\n\nimport { Chart } from './configured-chart-js';\n\nconst CHART_LOCALE_DEFAULT = 'en-US';\n\n@Injectable()\nexport class ChartJSService {\n private chart: Chart;\n private dataLabelOptions: ChartDataLabelOptions;\n private highlightedElements: ChartHighlightedElements;\n private chartType: ChartType;\n private locale: ChartLocale;\n\n constructor(private chartConfigService: ChartConfigService) {}\n\n public renderChart(args: {\n targetElement: ElementRef<HTMLCanvasElement>;\n type: ChartType;\n data: ChartDataset[] | number[];\n labels?: string[] | string[][];\n customOptions?: ChartOptions;\n annotations?: AnnotationOptions[];\n dataLabelOptions?: ChartDataLabelOptions;\n highlightedElements?: ChartHighlightedElements;\n }): void {\n const {\n targetElement,\n type,\n data,\n labels,\n customOptions,\n annotations,\n dataLabelOptions,\n highlightedElements,\n } = args;\n\n this.dataLabelOptions = dataLabelOptions || null;\n this.highlightedElements = highlightedElements || null;\n this.chartType = type;\n this.locale = dataLabelOptions?.locale || CHART_LOCALE_DEFAULT;\n\n const datasets = this.createDatasets(data);\n\n const options = this.createOptionsObject({\n customOptions,\n annotations,\n dataLabelOptions,\n });\n let config = this.createConfigurationObject(type, datasets, options, labels);\n\n this.initializeNewChart(targetElement.nativeElement, config);\n }\n\n public redrawChart() {\n this.chart.update();\n }\n\n public updateData(data: ChartDataset[] | number[]): void {\n const datasets = this.createDatasets(data);\n\n this.chart.data.datasets = datasets;\n }\n\n public updateLabels(labels: string[] | string[][]) {\n this.chart.data.labels = labels;\n }\n\n public updateType(type: ChartType, customOptions?: ChartOptions) {\n if (type === 'bar' || type === 'column') {\n /* indexAxis does not update predictably; update by replacing \n the chart entirely instead */\n this.destructivelyUpdateType(type, customOptions);\n } else {\n this.nonDestructivelyUpdateType(type, customOptions);\n }\n }\n\n public setDataLabelOptions(dataLabelOptions: ChartDataLabelOptions) {\n this.dataLabelOptions = dataLabelOptions;\n }\n\n public updateOptions(customOptions: ChartOptions, type: ChartType) {\n const annotations = this.getExistingChartAnnotations();\n this.chartType = type;\n this.chart.options = this.createOptionsObject({ customOptions, annotations });\n }\n\n public updateAnnotations(annotations: AnnotationOptions[]) {\n const annotationsWithDefaults = this.applyDefaultsToAnnotations(annotations);\n this.chart.options.plugins.annotation.annotations = annotationsWithDefaults;\n }\n\n public updateHighlightedElements(highlightedElements?: ChartHighlightedElements) {\n this.highlightedElements = highlightedElements;\n const oldDatasets = this.chart.data.datasets as ChartDataset[];\n\n // Clear old datasets of highlighted elements\n oldDatasets.map((dataset) => {\n if (dataset?.kirbyOptions?.highlightedElements) {\n delete dataset.kirbyOptions.highlightedElements;\n }\n });\n\n this.chart.data.datasets = this.createDatasets(oldDatasets);\n }\n\n private getExistingChartAnnotations(): AnnotationOptions[] {\n const annotations = this.chart.options.plugins?.annotation?.annotations;\n /* In browser chart.js might return annotations as a Proxy object; force it to be an array.\n Each annotationOption in the resulting array will also be a Proxy object. \n But internally chart.js will just work with them as normal values */\n if (annotations !== undefined) {\n return Object.keys(annotations).map((key) => annotations[key]);\n } else {\n return [];\n }\n }\n\n private destructivelyUpdateType(type: ChartType, customOptions?: ChartOptions) {\n const datasets = this.chart.data.datasets as ChartDataset[];\n const labels = this.chart.data.labels;\n const annotations = this.getExistingChartAnnotations();\n\n this.chartType = type;\n const options = this.createOptionsObject({ customOptions, annotations });\n const config = this.createConfigurationObject(type, datasets, options, labels);\n const canvasElement = this.chart.canvas;\n\n this.chart.destroy();\n this.initializeNewChart(canvasElement, config);\n }\n\n private nonDestructivelyUpdateType(chartType: ChartType, customOptions?: ChartOptions) {\n const annotations = this.getExistingChartAnnotations();\n this.chartType = chartType;\n const options = this.createOptionsObject({\n customOptions,\n annotations,\n });\n\n this.chart.options = options;\n this.chart.config.type = this.chartConfigService.chartTypeToChartJSType(chartType);\n }\n\n private initializeNewChart(canvasElement: HTMLCanvasElement, config: ChartConfiguration) {\n this.chart = new Chart(canvasElement, config);\n }\n\n private createBlankLabels(datasets: ChartDataset[]): string[] {\n const largestDataset = datasets.reduce((previousDataset, currentDataset) =>\n previousDataset.data.length > currentDataset.data.length ? previousDataset : currentDataset\n );\n return Array(largestDataset.data.length).fill('');\n }\n\n private applyDefaultsToAnnotations(annotations: AnnotationOptions[]) {\n return annotations.map((annotation) => {\n const annotationTypeDefaults = this.chartConfigService.getAnnotationDefaults(annotation.type);\n return mergeDeepAll(annotationTypeDefaults, annotation);\n });\n }\n\n private createAnnotationPluginOptionsObject(annotations: AnnotationOptions[]) {\n const annotationsWithDefaults = this.applyDefaultsToAnnotations(annotations);\n return {\n plugins: {\n annotation: {\n annotations: annotationsWithDefaults,\n },\n },\n };\n }\n\n private applyInteractionFunctionsExtensions(options: ChartOptions): ChartOptions {\n const interactionFunctionsExtensions = this.chartConfigService.getInteractionFunctionsExtensions();\n Object.entries(interactionFunctionsExtensions).forEach(([key, _]) => {\n const callback = options[key];\n options[key] = (e: Event, a: ActiveElement[], c: Chart) => {\n interactionFunctionsExtensions[key](e, a, c, callback);\n };\n });\n return options;\n }\n\n private createStockOptionsObject(dataLabelOptions: ChartDataLabelOptions) {\n return {\n locale: this.locale,\n plugins: {\n tooltip: {\n callbacks: {\n title: (tooltipItems) => {\n const date = toDate((tooltipItems[0]?.raw as any)?.x);\n if (date.valueOf()) {\n return date.toLocaleTimeString(this.locale, {\n day: 'numeric',\n month: 'short',\n hour: '2-digit',\n minute: '2-digit',\n });\n }\n },\n label: (context) => {\n // It's not possible to add spacing between color legend and text so we\n // prefix with a space.\n return ' ' + context.formattedValue + (dataLabelOptions.valueSuffix || '');\n },\n },\n },\n },\n scales: {\n y: {\n ticks: {\n callback: (value) => {\n return value + (dataLabelOptions.valueSuffix || '');\n },\n },\n },\n },\n };\n }\n\n private createOptionsObject(args: {\n customOptions?: ChartOptions;\n annotations?: AnnotationOptions[];\n dataLabelOptions?: ChartDataLabelOptions;\n }): ChartOptions {\n const { customOptions, annotations, dataLabelOptions: chartDataLabelOptions } = args;\n\n const typeConfig = this.chartConfigService.getTypeConfig(this.chartType);\n const typeConfigOptions = typeConfig?.options;\n const annotationPluginOptions = annotations\n ? this.createAnnotationPluginOptionsObject(annotations)\n : {};\n const stockOptions: ChartOptions =\n this.chartType === 'stock' ? this.createStockOptionsObject(chartDataLabelOptions) : {};\n\n let options: ChartOptions = mergeDeepAll(\n stockOptions,\n typeConfigOptions,\n customOptions,\n annotationPluginOptions\n );\n\n return this.applyInteractionFunctionsExtensions(options);\n }\n\n private getDefaultStockLabels(datasets: ChartDataset[], locale: ChartLocale) {\n const largestDataset = datasets.reduce((previousDataset, currentDataset) =>\n previousDataset.data.length > currentDataset.data.length ? previousDataset : currentDataset\n );\n return largestDataset.data.map((point: ScatterDataPoint) =>\n toDate(point.x).toLocaleDateString(locale, {\n month: 'short',\n day: 'numeric',\n })\n );\n }\n\n private createConfigurationObject(\n type: ChartType,\n datasets: ChartDataset[],\n options: ChartOptions,\n labels?: unknown[]\n ): ChartConfiguration {\n const typeConfig = this.chartConfigService.getTypeConfig(type);\n\n const labelsToApply = (() => {\n if (type === 'stock') {\n /* \n The time scale will auto generate labels based on data. \n It should be possible to pass an empty array to get the default \n behaviour of chart.js when using stock chart. \n\n TODO: Simplify to always pass labels, if given, to chart.js.\n Would be a breaking change. See issue: \n https://github.com/kirbydesign/designsystem/issues/2085\n */\n const shouldUseTimescaleLabels =\n labels?.length === 0 && options?.scales?.x?.type === 'time';\n if (shouldUseTimescaleLabels) return labels;\n return this.getDefaultStockLabels(datasets, this.locale);\n } else if (labels?.length > 0) {\n return labels;\n } else {\n return this.createBlankLabels(datasets);\n }\n })();\n\n return mergeDeepAll(typeConfig, {\n data: {\n labels: labelsToApply,\n datasets,\n },\n options,\n }) as ChartConfiguration;\n }\n\n private addHighlightedElementsToDatasets(\n highlightedElements: ChartHighlightedElements,\n datasets: ChartDataset[]\n ) {\n highlightedElements.forEach(([datasetIndex, dataIndex]) => {\n const dataset = datasets[datasetIndex];\n if (!dataset) return;\n\n if (dataset?.kirbyOptions?.highlightedElements) {\n dataset.kirbyOptions.highlightedElements.push(dataIndex);\n } else {\n dataset.kirbyOptions = {\n ...dataset.kirbyOptions,\n highlightedElements: [dataIndex],\n };\n }\n });\n }\n private createDatasets(data: ChartDataset[] | number[]): ChartDataset[] {\n // We need to modify the datasets in order to add datalabels.\n if (\n this.dataLabelOptions?.showCurrent ||\n this.dataLabelOptions?.showMax ||\n this.dataLabelOptions?.showMin\n ) {\n data = this.addDataLabelsData(data);\n }\n let datasets = isNumberArray(data) ? [{ data }] : data;\n if (this.highlightedElements)\n this.addHighlightedElementsToDatasets(this.highlightedElements, datasets);\n\n /* \n Hacky solution. Should be fixed in this issue:\n https://github.com/kirbydesign/designsystem/issues/1967 \n */\n if (this.chartType === 'stock') {\n datasets.forEach((dataset) => {\n dataset.kirbyOptions = {\n ...dataset.kirbyOptions,\n isStockChart: true,\n };\n });\n }\n\n return datasets;\n }\n /**\n * Decorate ChartDataset with properties to allow for datalabels.\n *\n * @param data\n * @returns ChartDataset[]\n */\n public addDataLabelsData(data: ChartDataset[] | number[]): ChartDataset[] {\n if (isNumberArray(data)) {\n throw Error(\"Currently it's impossible to add dataLabels to non ScatterDataPoint datasets\");\n }\n\n const decorateDataPoint = (\n set: ChartDataset,\n axis: 'x' | 'y',\n direction: 'high' | 'low',\n position: 'bottom' | 'top' | 'left' | 'right'\n ): void => {\n const { value, pointer } = this.locateValueIndexInDataset(set, axis, direction);\n set.data[pointer] = {\n ...(set.data[pointer] as ScatterDataPoint),\n datalabel: {\n value: value + (this.dataLabelOptions.valueSuffix || ''),\n position,\n },\n } as ScatterDataPoint;\n };\n\n data.map((set) => {\n if (this.dataLabelOptions.showMin) {\n decorateDataPoint(set, 'y', 'low', 'bottom');\n }\n if (this.dataLabelOptions.showMax) {\n decorateDataPoint(set, 'y', 'high', 'top');\n }\n if (this.dataLabelOptions.showCurrent) {\n decorateDataPoint(set, 'x', 'high', 'right');\n }\n });\n return data;\n }\n\n private locateValueIndexInDataset(\n dataset: ChartDataset,\n axis: string,\n direction: 'low' | 'high'\n ): { value: number; pointer: number } {\n let pointer: number;\n let value: number;\n dataset.data.forEach((datapoint, index) => {\n if (direction == 'low' && (!value || datapoint[axis] < value)) {\n value = datapoint['y'];\n pointer = index;\n }\n if (direction == 'high' && (!value || datapoint[axis] > value)) {\n value = datapoint['y'];\n pointer = index;\n }\n });\n return { value, pointer };\n }\n}\n","import {\n AfterViewInit,\n Component,\n ElementRef,\n HostBinding,\n Input,\n OnChanges,\n SimpleChanges,\n ViewChild,\n} from '@angular/core';\nimport { ChartOptions } from 'chart.js';\nimport { AnnotationOptions } from 'chartjs-plugin-annotation';\n\nimport { ResizeObserverFactory } from '../shared';\n\nimport { ChartJSService } from './chart-js/chart-js.service';\nimport {\n ChartDataLabelOptions,\n ChartDataset,\n ChartHighlightedElements,\n ChartType,\n} from './chart.types';\n\nconst DATA_LABELS_DEPRECATION_WARNING =\n 'Deprecation warning: The \"kirby-chart\" input property \"dataLabels\" will be removed in a future release of Kirby designsystem. Use \"labels\" instead. For more information see the following announcement: https://github.com/kirbydesign/designsystem/discussions/1980';\n\n@Component({\n selector: 'kirby-chart',\n templateUrl: './chart.component.html',\n styleUrls: ['./chart.component.scss'],\n providers: [ChartJSService],\n})\nexport class ChartComponent implements AfterViewInit, OnChanges {\n @Input() type: ChartType = 'column';\n @Input() data: ChartDataset[] | number[];\n\n private _labels: string[] | string[][];\n\n get labels(): string[] | string[][] {\n return this._labels;\n }\n @Input() set labels(value: string[] | string[][]) {\n this._labels = value;\n }\n @Input() set dataLabels(value: string[] | string[][]) {\n console.warn(DATA_LABELS_DEPRECATION_WARNING);\n this._labels = value;\n }\n\n @Input() customOptions?: ChartOptions;\n @Input() dataLabelOptions?: ChartDataLabelOptions;\n @Input() annotations?: AnnotationOptions[];\n @Input() highlightedElements?: ChartHighlightedElements;\n\n @HostBinding('style.--kirby-chart-height')\n _height: string;\n @Input() set height(value: string | number) {\n this._height = typeof value === 'number' ? `${value}px` : value;\n }\n\n @ViewChild('chartCanvas')\n canvasElement: ElementRef<HTMLCanvasElement>;\n\n private chartHasBeenRendered: boolean = false;\n\n constructor(private chartJSService: ChartJSService) {}\n\n ngAfterViewInit() {\n /* \n A chart is not rendered until it has both a height and a width. \n If ChartComponent is slotted in an ionic component it will\n not have any height or width on afterViewInit. This will cause \n the animation to not be played on first draw. \n */\n const canvasElement = this.canvasElement.nativeElement;\n this.whenElementHasHeightAndWidth(canvasElement).then(() => this.renderChart());\n }\n\n private whenElementHasHeightAndWidth(element: HTMLElement): Promise<void> {\n const rectIs2D = ({ width, height }) => height > 0 && width > 0;\n\n return new Promise((resolve) => {\n const initialClientRect = element.getBoundingClientRect();\n if (rectIs2D(initialClientRect)) resolve();\n\n const resizeObserver = new ResizeObserverFactory().create(([resizeObserverEntry]) => {\n if (rectIs2D(resizeObserverEntry.contentRect)) {\n resizeObserver.unobserve(element);\n resolve();\n }\n });\n\n resizeObserver.observe(element);\n });\n }\n\n ngOnChanges(simpleChanges: SimpleChanges) {\n if (this.chartHasBeenRendered) {\n let shouldRedrawChart = false;\n\n // TODO: Remove 'dataLabels' key when the input property is removed\n const keyUpdateFnPairs = {\n data: () => this.updateData(),\n dataLabels: () => this.updateLabels(),\n labels: () => this.updateLabels(),\n type: () => this.updateType(),\n customOptions: () => this.updateCustomOptions(),\n annotations: () => this.updateAnnotations(),\n highlightedElements: () => this.updateHighlightedElements(),\n };\n\n Object.entries(simpleChanges).forEach(([key]) => {\n if (simpleChanges[key].firstChange || !keyUpdateFnPairs[key]) return;\n shouldRedrawChart = true;\n keyUpdateFnPairs[key]();\n });\n\n if (shouldRedrawChart) this.redrawChart();\n }\n }\n\n private renderChart() {\n this.chartHasBeenRendered = true;\n this.chartJSService.renderChart({\n targetElement: this.canvasElement,\n type: this.type,\n data: this.data,\n labels: this.labels,\n customOptions: this.customOptions,\n annotations: this.annotations,\n dataLabelOptions: this.dataLabelOptions,\n highlightedElements: this.highlightedElements,\n });\n }\n\n private updateData() {\n this.chartJSService.updateData(this.data);\n }\n\n private updateLabels() {\n this.chartJSService.updateLabels(this.labels);\n }\n\n private updateType() {\n this.chartJSService.updateType(this.type, this.customOptions);\n }\n\n private updateCustomOptions() {\n this.chartJSService.updateOptions(this.customOptions, this.type);\n }\n\n private updateAnnotations() {\n this.chartJSService.updateAnnotations(this.annotations);\n }\n\n private updateHighlightedElements() {\n this.chartJSService.updateHighlightedElements(this.highlightedElements);\n }\n\n private redrawChart() {\n this.chartJSService.redrawChart();\n }\n}\n","import { formatNumber } from '@angular/common';\nimport { Options } from 'highcharts';\nimport { dateFormat } from 'highcharts/highstock';\n\nimport { ColorHelper } from '@kirbydesign/core';\n\nexport interface StockChartDeprecatedDataPoint {\n x: number;\n y: number;\n id: 'min' | 'max' | '';\n}\n\nexport const stockChartDeprecatedOptions = (locale: string, height: number) => {\n const options: Options = defaultOptions(locale) as Options;\n const transparentColor = 'rgba(255,255,255,0)';\n options.chart.backgroundColor = transparentColor;\n options.chart.height = height;\n\n options.tooltip.backgroundColor = ColorHelper.getThemeColorRgbString('background-color');\n // Using a function instead of a lamdba-expression because of a reference to this.\n options.tooltip.formatter = function() {\n return (\n '<div class=\"kirby-text-xsmall\">' +\n // @ts-ignore\n dateFormat('%e. %b', new Date(this.x)) +\n '</div><br/><div class=\"kirby-text-small kirby-text-bold\">' +\n formatNumber(this.y, locale) +\n '</div>'\n );\n };\n options.plotOptions.area.fillColor = transparentColor;\n options.plotOptions.area.lineColor = ColorHelper.getThemeColorRgbString('tertiary');\n\n options.plotOptions.area.marker.lineColor = 'rgba(255,255,255,0.3)';\n options.plotOptions.area.marker.fillColor = ColorHelper.getThemeColorRgbString('primary');\n\n options.xAxis = {\n ...options.xAxis,\n crosshair: {\n color: ColorHelper.getThemeColorRgbString('primary'),\n },\n tickColor: transparentColor,\n lineColor: ColorHelper.getThemeColorRgbString('medium'),\n labels: {\n style: {\n color: ColorHelper.getThemeColorRgbString('semi-dark-tint'),\n },\n },\n };\n\n options.yAxis = {\n ...options.yAxis,\n lineColor: transparentColor,\n gridLineColor: ColorHelper.getThemeColorRgbString('medium'),\n labels: {\n style: {\n color: ColorHelper.getThemeColorRgbString('semi-dark-tint'),\n },\n },\n };\n\n /*\n // Using a function instead of a lamdba-expression because of a reference to this.\n options.plotOptions.area.events.mouseOver = function() {\n const transparentColor = 'rgba(255,255,255,0)';\n this.chart.xAxis[0].update({\n tickColor: transparentColor,\n lineColor: ColorHelper.getThemeColorRgbString('medium'),\n labels: {\n style: {\n color: ColorHelper.getThemeColorRgbString('semi-dark-tint'),\n },\n },\n });\n };\n\n // Using a function instead of a lamdba-expression because of a reference to this.\n options.plotOptions.area.events.mouseOut = function() {\n const transparentColor = 'rgba(255,255,255,0)';\n this.chart.xAxis[0].update({\n lineColor: transparentColor,\n labels: {\n style: {\n color: transparentColor,\n },\n },\n });\n };\n */\n\n return options;\n};\n\nexport const annotations = (locale: string): Highcharts.AnnotationsOptions => {\n return {\n id: 'minmax',\n zIndex: 2,\n labels: [\n {\n point: 'max',\n shape: 'rect',\n distance: 5,\n align: 'center',\n verticalAlign: 'top',\n backgroundColor: ColorHelper.getThemeColorRgbString('tertiary'),\n // Using a function instead of a lamdba-expression because of a reference to this.\n formatter: function() {\n return formatNumber(this.y, locale, '1.1-1');\n },\n },\n {\n point: 'min',\n shape: 'rect',\n distance: -28,\n align: 'center',\n verticalAlign: 'bottom',\n backgroundColor: ColorHelper.getThemeColorRgbString('tertiary'),\n // Using a function instead of a lamdba-expression because of a reference to this.\n formatter: function() {\n return formatNumber(this.y, locale, '1.1-1');\n },\n },\n ],\n labelOptions: {\n y: 0,\n allowOverlap: true,\n },\n };\n};\n\nconst defaultOptions = (locale: string) => {\n return {\n chart: {\n zoomType: 'x',\n type: 'StockChart',\n spacingTop: 30,\n //spacingRight: 55,\n },\n navigator: {\n enabled: false,\n },\n rangeSelector: {\n enabled: false,\n },\n scrollbar: {\n enabled: false,\n },\n credits: {\n enabled: false,\n },\n title: {\n text: '',\n },\n subtitle: {\n text: '',\n },\n xAxis: {\n ordinal: true,\n type: 'datetime',\n lineWidth: 0.5,\n opposite: false,\n labels: {\n format: '{value:%Y-%b-%e %l:%M %p }',\n },\n },\n yAxis: {\n opposite: false,\n title: {\n text: '',\n },\n /* Doesn't work before upgrade.\n labels: {\n x: 0,\n y: 10,\n align: 'right',\n },\n */\n },\n annotations: [annotations(locale)],\n legend: {\n enabled: false,\n },\n tooltip: {\n crosshairs: {\n width: 1,\n zIndex: 2,\n },\n shadow: false,\n borderWidth: 0,\n },\n plotOptions: {\n area: {\n marker: {\n lineWidth: 16,\n radius: 7,\n },\n lineWidth: 2,\n states: {\n hover: {\n lineWidth: 2,\n },\n },\n events: {},\n threshold: null,\n },\n series: {\n marker: {\n zIndex: 100,\n enabledThreshold: 50,\n },\n },\n },\n series: [\n {\n type: 'area',\n data: [],\n },\n ],\n };\n};\n","import { Component, ElementRef, Inject, Input, LOCALE_ID } from '@angular/core';\nimport { Options } from 'highcharts';\nimport * as Highcharts from 'highcharts/highstock';\nimport AnnotationsModule from 'highcharts/modules/annotations';\n\nimport {\n annotations,\n StockChartDeprecatedDataPoint,\n} from './options/stock-chart-deprecated-options';\n\n// @ts-ignore\nAnnotationsModule(Highcharts);\n\n@Component({\n selector: 'kirby-stock-chart-deprecated',\n template: '',\n styleUrls: ['./stock-chart-deprecated.component.scss'],\n})\nexport class StockChartDeprecatedComponent {\n chartContainer: ElementRef;\n private _data: StockChartDeprecatedDataPoint[];\n @Input() set data(val: StockChartDeprecatedDataPoint[]) {\n this.onDataChanges(val);\n }\n get data() {\n return this._data;\n }\n private _options: Options;\n @Input() set options(val: Options) {\n this.onOptionsChanges(val);\n }\n get options() {\n return this._options;\n }\n private _height = 300;\n @Input() set height(height: number) {\n this._height = height;\n if (this.chart) {\n this.chart.setSize(null, height);\n }\n }\n get height() {\n return this._height;\n }\n @Input() description = '';\n @Input() showDataLabels = true;\n\n chart: Highcharts.Chart;\n\n constructor(hostElement: ElementRef, @Inject(LOCALE_ID) private locale: string) {\n this.chartContainer = hostElement;\n }\n\n onOptionsChanges(options: Options) {\n this._options = options;\n this.chart = Highcharts.stockChart(this.chartContainer.nativeElement, this._options);\n }\n\n onDataChanges(data: StockChartDeprecatedDataPoint[]) {\n this._data = data;\n\n if (this.chart != null) {\n // First delete all points in the previous series.\n this.chart.update(\n {\n series: [],\n },\n false,\n true\n );\n // Remove the annotations.\n this.chart.removeAnnotation('minmax');\n // Then update the chart with new series data.\n this.chart.update(\n {\n series: [\n {\n type: 'area',\n data: data,\n },\n ],\n },\n false,\n true\n );\n // Add the new annotations.\n this.chart.addAnnotation(annotations(this.locale), false);\n // And finally redraw the graph with all the changes.\n this.chart.redraw();\n }\n }\n}\n","import { ElementRef, Injectable } from '@angular/core';\n\nimport { WindowRef } from '../../../types/window-ref';\n\nimport { CalendarOptions } from './calendar-options.model';\n\n@Injectable()\nexport class CalendarHelper {\n private embeddedView: Window;\n private embeddedViewReady = false;\n\n constructor(private windowRef: WindowRef) {}\n\n public init(\n calendarContainer: ElementRef,\n options: CalendarOptions,\n onDaySelected: (cell: { isSelectable: boolean; date: number }) => void,\n onChangeMonth: (index: number) => void\n ) {\n if (this.hasEmbeddedView(calendarContainer)) {\n const iframe = <HTMLIFrameElement>calendarContainer.nativeElement;\n iframe.onload = () => {\n this.embeddedViewReady = true;\n this.emitOptionsToEmbeddedView(options);\n };\n this.embeddedView = iframe.contentWindow;\n\n this.windowRef.nativeWindow.addEventListener('message', (event: MessageEvent) =>\n this.handleMessageEvent(event, onDaySelected, onChangeMonth)\n );\n }\n }\n\n public update(options: CalendarOptions) {\n if (this.embeddedViewReady) {\n this.emitOptionsToEmbeddedView(options);\n }\n }\n\n public setSelectedDay(day: number) {\n if (this.embeddedViewReady) {\n this.embeddedView.postMessage(\n {\n type: 'kirbyCalendarSetSelectedDay',\n selectedDay: day,\n },\n '*'\n );\n }\n }\n\n private hasEmbeddedView(calendarContainer: ElementRef) {\n return (\n calendarContainer &&\n calendarContainer.nativeElement &&\n calendarContainer.nativeElement instanceof HTMLIFrameElement &&\n calendarContainer.nativeElement.contentWindow\n );\n }\n\n private emitOptionsToEmbeddedView(options: CalendarOptions) {\n this.embeddedView.postMessage(\n {\n type: 'kirbyCalendarInit',\n ...options,\n },\n '*'\n );\n }\n\n private handleMessageEvent(\n event: MessageEvent,\n onDaySelected: (cell: { isSelectable: boolean; date: number }) => void,\n onChangeMonth: (index: number) => void\n ) {\n if (this.validateMessage(event)) {\n switch (event.data.type) {\n case 'kirbyCalendarDaySelected':\n if (this.validateDateSelectedMessage(event)) {\n onDaySelected({ isSelectable: true, date: event.data.day });\n }\n break;\n case 'kirbyCalendarChangeMonth':\n if (this.validateNavigateMonthMessage(event)) {\n onChangeMonth(event.data.index);\n }\n break;\n }\n }\n }\n\n private validateMessage(event: MessageEvent) {\n return (\n this.embeddedView === event.source &&\n event.type === 'message' &&\n event.data &&\n event.data.type\n );\n }\n\n private validateDateSelectedMessage(event: MessageEvent) {\n return event.data.type === 'kirbyCalendarDaySelected' && event.data.day;\n }\n\n private validateNavigateMonthMessage(event: MessageEvent) {\n return event.data.type === 'kirbyCalendarChangeMonth' && typeof event.data.index === 'number';\n }\n}\n","import {\n AfterViewInit,\n Component,\n ElementRef,\n EventEmitter,\n HostBinding,\n Inject,\n Input,\n LOCALE_ID,\n OnChanges,\n OnInit,\n Output,\n SimpleChanges,\n ViewChild,\n} from '@angular/core';\nimport {\n add,\n differenceInDays,\n eachDayOfInterval,\n endOfMonth,\n endOfWeek,\n format,\n getYear,\n isAfter,\n isBefore,\n isSameDay,\n isSameMonth,\n isWeekend,\n Locale as LocaleDateFns,\n startOfDay,\n startOfMonth,\n startOfWeek,\n} from 'date-fns';\nimport { utcToZonedTime, zonedTimeToUtc } from 'date-fns-tz';\nimport { da, enGB, enUS } from 'date-fns/locale';\n\nimport { capitalizeFirstLetter } from '@kirbydesign/core';\n\nimport { CalendarCell } from './helpers/calendar-cell.model';\nimport { CalendarOptions } from './helpers/calendar-options.model';\nimport { CalendarHelper } from './helpers/calendar.helper';\nimport { CalendarYearNavigatorConfig } from './options/calendar-year-navigator-config';\n\nexport type Locale = LocaleDateFns;\ninterface CalendarDay {\n isCurrentMonth: boolean;\n isToday: boolean;\n isWeekend: boolean;\n isPast: boolean;\n isFuture: boolean;\n isDisabled: boolean;\n}\n\nenum TimeUnit {\n years = 'years',\n months = 'months',\n weeks = 'weeks',\n days = 'days',\n hours = 'hours',\n minutes = 'minutes',\n seconds = 'seconds',\n milliseconds = 'milliseconds',\n}\n\n@Component({\n selector: 'kirby-calendar',\n templateUrl: './calendar.component.html',\n styleUrls: ['./calendar.component.scss'],\n providers: [CalendarHelper],\n})\nexport class CalendarComponent implements OnInit, AfterViewInit, OnChanges {\n @ViewChild('calendarContainer', { static: false }) calendarContainer: ElementRef;\n @Output() dateChange = new EventEmitter<Date>();\n @Output() dateSelect = new EventEmitter<Date>();\n @Output() yearSelect = new EventEmitter<number>();\n @Input() timezone: 'local' | 'UTC' = 'local';\n @Input() disableWeekends = false;\n @Input() disablePastDates = false;\n @Input() disableFutureDates = false;\n @Input() alwaysEnableToday = false;\n @Input() customLocales: { [key: string]: Locale } = {};\n /* \n Experimental: Input property not documented on purpose. \n For context see: https://github.com/kirbydesign/designsystem/issues/2087\n */\n @Input() usePopover = false;\n /**\n * Configuration for the year navigator.\n *\n * Internally, calendar component:\n * - bases yearNavigatorOptions.from and yearNavigatorOptions.to on todayDate if a number is provided\n * - prioritizes minDate and maxDate over yearNavigatorOptions.from and yearNavigatorOptions.to\n */\n @Input() yearNavigatorOptions: CalendarYearNavigatorConfig;\n\n _month: CalendarCell[][];\n _weekDays: string[];\n private selectedDay: CalendarCell;\n // NOTE: Internally, all Dates\n // are normalized to point to local timezone midnight, regardless of the timezone\n // setting.\n private activeMonth: Date;\n private _selectedDate: Date;\n private _disabledDates: Date[] = [];\n private _todayDate: Date;\n private _minDate: Date;\n private _maxDate: Date;\n private locale: Locale;\n private timeZoneName: string;\n private includedLocales = { da, enGB, enUS };\n\n get selectedDate(): Date {\n return this._selectedDate;\n }\n\n @Input() set selectedDate(valueLocalOrUTC: Date) {\n const value = this.normalizeDate(valueLocalOrUTC);\n this.setActiveMonth(value);\n\n if (this.hasDateChanged(value, this._selectedDate)) {\n this.onSelectedDateChange(value);\n this._selectedDate = value;\n }\n }\n\n get disabledDates(): Date[] {\n return this._disabledDates;\n }\n\n @Input() set disabledDates(value: Date[]) {\n this._disabledDates = (value || []).map((date) => this.normalizeDate(date));\n }\n\n get todayDate(): Date {\n return this._todayDate;\n }\n\n @Input() set todayDate(value: Date) {\n this._todayDate = this.normalizeDate(value);\n }\n\n get minDate(): Date {\n return this._minDate;\n }\n\n @Input() set minDate(value: Date) {\n if (value && this.activeMonth && isBefore(this.activeMonth, value)) {\n this.setActiveMonth(value);\n }\n this._minDate = this.normalizeDate(value);\n }\n\n get maxDate(): Date {\n return this._maxDate;\n }\n\n @Input() set maxDate(value: Date) {\n if (value && this.activeMonth && isAfter(this.activeMonth, value)) {\n this.setActiveMonth(value);\n }\n this._maxDate = this.normalizeDate(value);\n }\n\n get activeMonthName(): string {\n return capitalizeFirstLetter(this.formatWithLocale(this.activeMonth, 'MMMM'));\n }\n\n get activeYear(): string {\n return this.formatWithLocale(this.activeMonth, 'yyyy');\n }\n\n /**\n * Gets navigable years for year navigator based on yearNavigatorOptions.\n */\n get navigableYears(): string[] {\n const dateOfFirstNavigableYear =\n this.minDate || this.getDateFromNavigableYear(this.yearNavigatorOptions.from);\n\n const dateOfLastNavigableYear =\n this.maxDate || this.getDateFromNavigableYear(this.yearNavigatorOptions.to);\n\n return this.getYearsBetweenDates(dateOfFirstNavigableYear, dateOfLastNavigableYear);\n }\n\n get navigatedYear(): number {\n return this.navigableYears.indexOf(this.activeYear);\n }\n\n @HostBinding('class.has-year-navigator')\n get _hasYearNavigator() {\n return !!this.yearNavigatorOptions;\n }\n\n constructor(private calendarHelper: CalendarHelper, @Inject(LOCALE_ID) locale: string) {\n this.locale = this.mapLocale(locale);\n this.timeZoneName = Intl.DateTimeFormat().resolvedOptions().timeZone;\n }\n\n private formatWithLocale(date: Date, formatString: string): string {\n return format(date, formatString, {\n locale: this.locale,\n });\n }\n\n private mapLocale(locale: string): Locale {\n if (locale === 'en') {\n locale = 'enGB'; // if english locale is provided without region, we default to GB\n }\n locale = locale.replace('-', '');\n const availableLocales = { ...this.includedLocales, ...this.customLocales };\n\n return availableLocales[locale] || this.includedLocales.enGB; // Default to enGB if injected locale doesnt exist\n }\n\n ngOnInit() {\n this._weekDays = this.getWeekDays();\n this.setActiveMonth(this.selectedDate);\n }\n\n ngAfterViewInit() {\n this.calendarHelper.init(\n this.calendarContainer,\n this.getHelperOptions(),\n this._onDateSelected.bind(this),\n this.onChangeMonth.bind(this)\n );\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (!this.activeMonth) return;\n if (\n changes.disableWeekends ||\n changes.disablePastDates ||\n changes.disableFutureDates ||\n changes.disabledDates ||\n changes.minDate ||\n changes.maxDate ||\n changes.todayDate ||\n changes.timezone\n ) {\n this.refreshActiveMonth();\n this.calendarHelper.update(this.getHelperOptions());\n }\n }\n\n private setActiveMonth(date: Date = new Date()) {\n if (!this.activeMonth || !isSameMonth(this.activeMonth, date)) {\n this.activeMonth = startOfMonth(date);\n this.refreshActiveMonth();\n this.calendarHelper.update(this.getHelperOptions());\n }\n }\n\n // For leniency, the component will accept any Date that points to either UTC midnight\n // or to local timezone midnight although we will internally normalize the representation\n // of all received dates to point to local timezone midnight.\n // We currently log no warnings if the date doesn't match the timezone setting or\n // if it doesn't point to midnight.\n private normalizeDate(dateLocalOrUTC: Date) {\n if (!dateLocalOrUTC) return;\n\n if (startOfDay(dateLocalOrUTC).getTime() === dateLocalOrUTC.getTime()) {\n // date is local timezone midnight\n return dateLocalOrUTC;\n }\n if (\n startOfDay(utcToZonedTime(dateLocalOrUTC, this.timeZoneName)).getTime() ===\n utcToZonedTime(dateLocalOrUTC, this.timeZoneName).getTime()\n ) {\n // the date is a UTC midnight; create the equivalent local timezone midnight date\n const normalizedUTCdate = utcToZonedTime(dateLocalOrUTC, this.timeZoneName);\n return normalizedUTCdate;\n }\n // does not point to midnight so we make it\n return startOfDay(dateLocalOrUTC);\n }\n\n private getWeekDays(): string[] {\n const now = new Date();\n\n const week = eachDayOfInterval({\n start: startOfWeek(now, { locale: this.locale }),\n end: endOfWeek(now, { locale: this.locale }),\n });\n\n return week.map((date) => this.getFirstLetterOfWeekDayCapitalized(date));\n }\n\n private getFirstLetterOfWeekDayCapitalized(date: Date) {\n return this.formatWithLocale(date, 'EEEEE');\n }\n\n private hasDateChanged(newDate: Date, previousDate: Date): boolean {\n if (!newDate && !previousDate) {\n return false;\n }\n if (newDate instanceof Date && !previousDate) {\n return true;\n }\n return !isSameDay(newDate, previousDate);\n }\n\n private isDisabledDate(date: Date): boolean {\n return this.disabledDates.some((disabledDate) => {\n return isSameDay(disabledDate, date);\n });\n }\n\n refreshActiveMonth() {\n if (!this.activeMonth) return;\n\n const monthStart = startOfMonth(this.activeMonth);\n const monthEnd = endOfMonth(this.activeMonth);\n const startOfFirstWeek = startOfWeek(monthStart, { locale: this.locale });\n const endOfLastWeek = endOfWeek(monthEnd, { locale: this.locale });\n const totalDayCount = differenceInDays(endOfLastWeek, startOfFirstWeek) + 1;\n const today = this.todayDate ? startOfDay(this.todayDate) : startOfDay(new Date());\n\n const daysArray = Array.from(Array(totalDayCount).keys());\n\n const days: CalendarCell[] = daysArray.map((number) => {\n const cellDate = add(startOfFirstWeek, { [TimeUnit.days]: number });\n const day = this.getCalendarDay(cellDate, today, monthStart);\n\n const isSelectable = this.isSelectable(day, cellDate);\n const isSelected = isSameDay(this.selectedDate, cellDate);\n const cell = {\n date: cellDate.getDate(),\n isCurrentMonth: day.isCurrentMonth,\n isSelectable,\n isSelected,\n cssClasses: this.getCssClasses(day, isSelectable, isSelected),\n };\n if (isSelected) {\n this.selectedDay = cell;\n }\n return cell;\n });\n this._month = this.chunk(days, 7);\n }\n\n private getCalendarDay(date: Date, today: Date, monthStart: Date): CalendarDay {\n return {\n isToday: isSameDay(today, date),\n isPast: isBefore(date, today),\n isFuture: isAfter(date, today),\n isWeekend: isWeekend(date),\n isCurrentMonth: isSameMonth(date, monthStart),\n isDisabled: this.isDisabledDate(date),\n };\n }\n\n private isSelectable(day: CalendarDay, date: Date) {\n return (\n (this.alwaysEnableToday && day.isToday) ||\n (!day.isDisabled &&\n day.isCurrentMonth &&\n !(this.disableWeekends && day.isWeekend) &&\n !(this.disablePastDates && day.isPast) &&\n !(this.disableFutureDates && day.isFuture) &&\n !(this.minDate && isBefore(date, this.minDate)) &&\n !(this.maxDate && isAfter(date, this.maxDate)))\n );\n }\n\n private getCssClasses(day: CalendarDay, isSelectable: boolean, isSelected: boolean) {\n const cssClasses = {\n 'current-month': day.isCurrentMonth,\n weekend: day.isWeekend,\n today: day.isToday,\n selectable: isSelectable,\n selected: isSelected,\n past: day.isPast,\n disabled: day.isDisabled,\n };\n let cssClassString = 'day';\n for (const key in cssClasses) {\n if (cssClasses[key]) {\n cssClassString += ' ' + key;\n }\n }\n return cssClassString;\n }\n\n private chunk(array: any[], size: number) {\n const results = [];\n while (array.length) {\n results.push(array.splice(0, size));\n }\n return results;\n }\n\n private onSelectedDateChange(newDate: Date): void {\n if (this.selectedDay) {\n this.selectedDay.isSelected = false;\n }\n\n const newDay = this.getCell(newDate);\n if (newDay) {\n newDay.isSelected = true;\n this.selectedDay = newDay;\n }\n this.calendarHelper.setSelectedDay(newDate.getDate());\n }\n\n _onDateSelected(newDay: CalendarCell) {\n if (newDay.isSelectable && newDay.date) {\n let newDate = new Date(this.activeMonth);\n\n if (this.timezone === 'UTC') {\n newDate = zonedTimeToUtc(this.subtractTimezoneOffset(newDate), this.timeZoneName);\n }\n\n newDate.setDate(newDay.date);\n const dateToEmit = newDate;\n\n if (this.hasDateChanged(newDate, this._selectedDate)) {\n this.onSelectedDateChange(newDate);\n this._selectedDate = newDate;\n this.dateChange.emit(dateToEmit);\n }\n this.dateSelect.emit(dateToEmit);\n }\n }\n\n private onChangeMonth(direction: number) {\n this._changeMonth(direction);\n this.calendarHelper.update(this.getHelperOptions());\n }\n\n _changeMonth(index: number) {\n this.changeActiveView(index, TimeUnit.months);\n }\n\n _changeYear(year: string) {\n const yearNumeric = Number(year);\n this.changeActiveView(yearNumeric - getYear(this.activeMonth), TimeUnit.years);\n this.yearSelect.emit(yearNumeric);\n }\n\n private changeActiveView(index: number, unit: TimeUnit) {\n if (index === 0) return;\n this.activeMonth = add(this.activeMonth, { [unit]: index });\n\n this.refreshActiveMonth();\n }\n\n get _canNavigateBack(): boolean {\n const reachedPastDatesLimit =\n this.disablePastDates && isSameMonth(this.activeMonth, this.todayDate);\n\n const reachedOrExceededMinDate =\n this.minDate &&\n (isSameMonth(this.activeMonth, this.minDate) || isBefore(this.activeMonth, this.minDate));\n\n return !reachedPastDatesLimit && !reachedOrExceededMinDate;\n }\n\n get _canNavigateForward(): boolean {\n const reachedFutureDatesLimit =\n this.disableFutureDates && isSameMonth(this.activeMonth, this.todayDate);\n\n const reachedOrExceededMaxDate =\n this.maxDate &&\n (isSameMonth(this.activeMonth, this.maxDate) || isAfter(this.activeMonth, this.maxDate));\n\n return !reachedFutureDatesLimit && !reachedOrExceededMaxDate;\n }\n\n private getCell(date: Date) {\n let foundDay = null;\n if (date) {\n for (let week of this._month) {\n foundDay = week.find((day) => {\n return day.isCurrentMonth && day.date === date.getDate();\n });\n if (foundDay) {\n break;\n }\n }\n }\n return foundDay;\n }\n\n private getHelperOptions(): CalendarOptions {\n return {\n canNavigateBack: this._canNavigateBack,\n canNavigateForward: this._canNavigateForward,\n year: this.activeYear,\n monthName: this.activeMonthName,\n weekDays: this._weekDays,\n month: this._month,\n };\n }\n\n private subtractTimezoneOffset(date: Date): Date {\n const timezoneOffsetInMs = date.getTimezoneOffset() * 60 * 1000;\n return new Date(date.getTime() - timezoneOffsetInMs);\n }\n\n private getDateFromNavigableYear(navigableYear: number | Date): Date {\n if (navigableYear instanceof Date) return navigableYear;\n const today = this.todayDate || new Date();\n return new Date(today.getFullYear() + navigableYear, 0, 1);\n }\n\n private getYearsBetweenDates(startDate: Date, endDate: Date): string[] {\n // Ensure years are ordered correctly if parameters are switched:\n const [startYear, endYear] = [startDate.getFullYear(), endDate.getFullYear()].sort();\n const numberOfYears = endYear - startYear;\n return Array.from({ length: numberOfYears + 1 }, (_, i) => (startYear + i).toString());\n }\n}\n","import { Component, Input } from '@angular/core';\n\nimport { ItemSlidingSide, ItemSwipeAction } from './item-sliding.types';\n\n@Component({\n selector: 'kirby-item-sliding',\n templateUrl: './item-sliding.component.html',\n styleUrls: ['./item-sliding.component.scss'],\n})\nexport class ItemSlidingComponent {\n @Input() swipeActions: ItemSwipeAction[];\n\n _side: 'start' | 'end' = 'start';\n @Input() set side(value: ItemSlidingSide) {\n this._side = value === 'left' ? 'start' : 'end';\n }\n\n get _hasSwipeActions(): boolean {\n // Using '>' instead of '!==';\n // will only return true when swipeActions is an array\n return this.swipeActions?.length > 0;\n }\n}\n","export class UniqueIdGenerator {\n private static registry = new Map<string, UniqueIdGenerator>();\n private id = 0;\n\n private constructor(private scope: string) {}\n\n static scopedTo(scope: string) {\n let scopedGenerator = UniqueIdGenerator.registry.get(scope);\n if (!scopedGenerator) {\n scopedGenerator = new UniqueIdGenerator(scope);\n UniqueIdGenerator.registry.set(scope, scopedGenerator);\n }\n return scopedGenerator;\n }\n\n next(): string {\n return `${this.scope}-${this.id++}`;\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n HostBinding,\n Input,\n Output,\n} from '@angular/core';\n\nimport { UniqueIdGenerator } from '../../helpers/unique-id-generator.helper';\n\n@Component({\n selector: 'kirby-checkbox',\n templateUrl: './checkbox.component.html',\n styleUrls: ['./checkbox.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CheckboxComponent {\n @Input() checked: boolean = false;\n @Input() attentionLevel: '1' | '2' = '2';\n\n @HostBinding('class.has-label')\n @Input()\n text: string;\n\n @HostBinding('class')\n @Input()\n size?: 'xs' | 'sm' | 'md';\n\n @HostBinding('class.error')\n @Input()\n hasError: boolean = false;\n\n @Input() disabled = false;\n @HostBinding('attr.disabled')\n get _isDisabled() {\n return this.disabled ? 'disabled' : null;\n }\n\n @HostBinding('class.attention-level1') get isAttentionLevel1() {\n return this.attentionLevel === '1';\n }\n @HostBinding('class.attention-level2') get isAttentionLevel2() {\n return this.attentionLevel === '2';\n }\n\n @Output() checkedChange = new EventEmitter<boolean>();\n\n onChecked(checked: boolean): void {\n this.checked = checked;\n this.checkedChange.emit(this.checked);\n }\n\n // IDs used for a11y labelling\n _labelId = UniqueIdGenerator.scopedTo('kirby-checkbox-label').next();\n}\n","import { Component, Input, HostBinding } from '@angular/core';\n\n@Component({\n selector: 'kirby-chip',\n templateUrl: './chip.component.html',\n styleUrls: ['./chip.component.scss'],\n})\nexport class ChipComponent {\n @Input() text: string;\n\n @Input()\n @HostBinding('attr.aria-selected')\n @HostBinding('class.is-selected')\n isSelected: boolean;\n}\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'kirby-divider',\n templateUrl: './divider.component.html',\n styleUrls: ['./divider.component.scss'],\n})\nexport class DividerComponent {\n @Input()\n hasMargin: boolean;\n}\n","import { Component, HostBinding, Input } from '@angular/core';\n\nexport enum ItemSize {\n XS = 'xs',\n SM = 'sm',\n MD = 'md',\n}\n\n@Component({\n selector: 'kirby-item',\n templateUrl: './item.component.html',\n styleUrls: ['./item.component.scss'],\n})\nexport class ItemComponent {\n @Input() disabled: boolean;\n @HostBinding('class.selected')\n @Input()\n selected: boolean;\n @Input()\n selectable: boolean;\n @Input()\n reorderable: boolean;\n @HostBinding('class')\n @Input()\n size: ItemSize = ItemSize.MD;\n\n // Prevent default when inside kirby-dropdown to avoid blurring dropdown:\n onMouseDown(event: MouseEvent) {\n if (\n event.currentTarget instanceof HTMLElement &&\n event.currentTarget.closest('kirby-dropdown')\n ) {\n event.preventDefault();\n }\n }\n}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[kirbyListItem]',\n})\nexport class ListItemDirective {\n constructor() {\n console.warn(\n '*kirbyListItem directive is deprecated - please use *kirbyListItemTemplate directive instead.'\n );\n }\n}\n\n@Directive({\n selector: '[kirbyListFlexItem]',\n})\nexport class ListFlexItemDirective {\n constructor() {\n console.warn(\n '*kirbyListFlexItem directive is deprecated - please use *kirbyListItemTemplate directive instead.'\n );\n }\n}\n\n@Directive({\n selector: '[kirbyListItemTemplate]',\n})\nexport class ListItemTemplateDirective {}\n\n@Directive({\n selector: '[kirbyListHeader], [kirbyListHeaderTemplate]',\n})\nexport class ListHeaderDirective {}\n\n@Directive({\n selector: '[kirbyListSectionHeader], [kirbyListSectionHeaderTemplate]',\n})\nexport class ListSectionHeaderDirective {}\n\n@Directive({\n selector: '[kirbyListFooter], [kirbyListFooterTemplate]',\n})\nexport class ListFooterDirective {}\n","import {\n AfterViewInit,\n Component,\n ElementRef,\n EventEmitter,\n HostListener,\n Input,\n OnDestroy,\n Output,\n Renderer2,\n ViewChild,\n} from '@angular/core';\n\nimport { DesignTokenHelper } from '../../helpers';\n\nexport enum HorizontalDirection {\n right = 'right',\n left = 'left',\n}\n\n@Component({\n selector: 'kirby-popover',\n template: `\n <div #wrapper class=\"wrapper\"><ng-content></ng-content></div>\n `,\n styleUrls: ['./popover.component.scss'],\n})\nexport class PopoverComponent implements AfterViewInit, OnDestroy {\n // removeEventListener same instance of event handler & options\n private readonly preventScrollEventListenerOptions = {\n passive: false,\n } as EventListenerOptions;\n\n private readonly POPOVER_BODY_PADDING = 12;\n\n private isShowing: boolean = false;\n private isFirstToLockScroll: boolean;\n private zIndex: number;\n private document: Document;\n\n @ViewChild('wrapper', { static: true, read: ElementRef })\n wrapperElement: ElementRef<HTMLDivElement>;\n\n @Input()\n popout: HorizontalDirection = HorizontalDirection.right;\n\n @Input()\n target: HTMLElement | ElementRef<HTMLElement>;\n\n @Output()\n willHide = new EventEmitter<void>();\n\n private get targetElement(): HTMLElement {\n if (this.target instanceof ElementRef) {\n return this.target.nativeElement;\n } else {\n return this.target;\n }\n }\n\n @HostListener('click')\n _backdropClick() {\n this.willHide.emit();\n this.hide();\n }\n\n @HostListener('window:resize')\n _onWindowResize() {\n if (this.isShowing) {\n this.willHide.emit();\n this.hide();\n }\n }\n\n constructor(private elementRef: ElementRef<HTMLElement>, private renderer: Renderer2) {\n this.document = elementRef.nativeElement.ownerDocument;\n }\n\n ngAfterViewInit(): void {\n this.placePopoverAboveClosestModal();\n this.renderer.removeChild(\n this.elementRef.nativeElement.parentElement,\n this.elementRef.nativeElement\n );\n }\n\n ngOnDestroy(): void {\n this.hide();\n }\n\n private placePopoverAboveClosestModal() {\n const closestIonModal = this.elementRef.nativeElement.closest('ion-modal');\n if (closestIonModal) {\n this.zIndex = parseInt(closestIonModal.style.zIndex) + 1;\n this.elementRef.nativeElement.style.zIndex = `${this.zIndex}`;\n } else {\n this.zIndex = parseInt(DesignTokenHelper.zLayer('popover'));\n }\n }\n\n // document.removeEventListener needs the exact same event handler & options reference:\n private preventEvent(event: TouchEvent) {\n event.preventDefault();\n }\n\n private preventScroll() {\n this.isFirstToLockScroll = !this.document.body.classList.contains('backdrop-no-scroll');\n if (this.isFirstToLockScroll) {\n this.renderer.addClass(this.document.body, 'backdrop-no-scroll');\n }\n\n // preventDefault does not work with Renderer2.listen method; add event listener directly to document instead\n this.document.addEventListener(\n 'touchmove',\n this.preventEvent,\n this.preventScrollEventListenerOptions\n );\n }\n\n private releaseScroll() {\n if (this.isFirstToLockScroll) {\n this.renderer.removeClass(this.document.body, 'backdrop-no-scroll');\n }\n\n this.document.removeEventListener(\n 'touchmove',\n this.preventEvent,\n this.preventScrollEventListenerOptions\n );\n }\n\n show() {\n this.renderer.addClass(this.elementRef.nativeElement, 'is-opening');\n this.renderer.appendChild(this.document.body, this.elementRef.nativeElement);\n\n this.preventScroll();\n this.positionWrapper();\n\n this.renderer.addClass(this.elementRef.nativeElement, 'is-open');\n this.renderer.removeClass(this.elementRef.nativeElement, 'is-opening');\n\n this.isShowing = true;\n }\n\n hide() {\n this.renderer.removeChild(this.document.body, this.elementRef.nativeElement);\n this.releaseScroll();\n\n this.renderer.removeStyle(this.targetElement, 'z-index');\n this.renderer.removeStyle(this.targetElement, 'pointer-events');\n this.isShowing = false;\n }\n\n private positionWrapper() {\n const targetDimensions = this.targetElement.getBoundingClientRect();\n\n this.renderer.appendChild(this.document.body, this.elementRef.nativeElement);\n\n const wrapperElement = this.wrapperElement.nativeElement;\n const wrapperDimensions = wrapperElement.getBoundingClientRect();\n const viewport = wrapperElement.ownerDocument.defaultView;\n this.positionHorizontally(viewport, wrapperElement, targetDimensions, wrapperDimensions);\n this.positionVertically(viewport, wrapperElement, targetDimensions, wrapperDimensions);\n }\n\n private positionHorizontally(\n viewPort: Window,\n wrapperElement: HTMLDivElement,\n targetDimensions: DOMRect,\n wrapperDimensions: DOMRect\n ) {\n const viewPortWidth = viewPort.innerWidth;\n const contentWidth = wrapperDimensions.width;\n const availableSpaceRight = viewPortWidth - targetDimensions.left;\n const availableSpaceLeft = targetDimensions.right;\n const contentCanFitRightOfTarget =\n availableSpaceRight >= contentWidth + this.POPOVER_BODY_PADDING;\n const openRight = contentCanFitRightOfTarget || availableSpaceRight >= availableSpaceLeft;\n\n const [direction, oppositeDirection] =\n this.popout === HorizontalDirection.left || !openRight\n ? ['left', 'right']\n : ['right', 'left'];\n\n const pxValue =\n direction === 'left' ? viewPortWidth - targetDimensions.right : targetDimensions.left;\n\n this.renderer.removeStyle(wrapperElement, direction);\n this.renderer.setStyle(wrapperElement, oppositeDirection, `${pxValue}px`);\n }\n\n private positionVertically(\n viewPort: Window,\n wrapperElement: HTMLDivElement,\n targetDimensions: DOMRect,\n wrapperDimensions: DOMRect\n ) {\n const viewPortHeight = viewPort.innerHeight;\n const contentHeight = wrapperDimensions.height;\n const availableSpaceDown = viewPortHeight - targetDimensions.bottom;\n const availableSpaceUp = targetDimensions.top;\n const contentCanFitBelowTarget =\n availableSpaceDown >= contentHeight + this.POPOVER_BODY_PADDING;\n\n const isAvailableSpaceBelow =\n contentCanFitBelowTarget || availableSpaceDown >= availableSpaceUp;\n const [direction, oppositeDirection] = isAvailableSpaceBelow\n ? ['bottom', 'top']\n : ['top', 'bottom'];\n\n const pxValue =\n direction === 'bottom' ? targetDimensions.bottom : viewPortHeight - targetDimensions.top;\n\n this.renderer.removeStyle(wrapperElement, direction);\n this.renderer.setStyle(wrapperElement, oppositeDirection, `${pxValue}px`);\n\n if (direction === 'top') {\n // Ensure target is elevated above shadows in popover, i.e. content wrapped in Card:\n this.renderer.setStyle(this.targetElement, 'z-index', `${this.zIndex + 1}`);\n this.renderer.setStyle(this.targetElement, 'pointer-events', 'none');\n }\n }\n}\n","export enum OpenState {\n closed,\n opening,\n open,\n}\n\nexport enum VerticalDirection {\n up,\n down,\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class KeyboardHandlerService {\n handle(event: KeyboardEvent, items: any[] | string[], selectedIndex: number) {\n let newIndex = -1;\n switch (event.key) {\n case 'ArrowUp':\n case 'ArrowLeft':\n // Select previous item:\n newIndex = selectedIndex - 1;\n break;\n case 'ArrowDown':\n case 'ArrowRight':\n if (selectedIndex === undefined) {\n // None selected, select first item:\n newIndex = 0;\n } else if (selectedIndex < items.length - 1) {\n // Select next item:\n newIndex = selectedIndex + 1;\n }\n break;\n case 'Home':\n // Select first item:\n newIndex = 0;\n break;\n case 'End':\n // Select last item:\n newIndex = items.length - 1;\n break;\n default:\n break;\n }\n return newIndex;\n }\n}\n","import {\n AfterContentChecked,\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ContentChildren,\n ElementRef,\n EventEmitter,\n forwardRef,\n HostBinding,\n HostListener,\n Input,\n OnDestroy,\n Output,\n QueryList,\n Renderer2,\n RendererStyleFlags2,\n TemplateRef,\n ViewChild,\n ViewChildren,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { ButtonComponent } from '../button/button.component';\nimport { CardComponent } from '../card/card.component';\nimport { ItemComponent } from '../item/item.component';\nimport { ListItemTemplateDirective } from '../list/list.directive';\nimport { HorizontalDirection, PopoverComponent } from '../popover/popover.component';\n\nimport { OpenState, VerticalDirection } from './dropdown.types';\nimport { KeyboardHandlerService } from './keyboard-handler.service';\n\n@Component({\n selector: 'kirby-dropdown',\n templateUrl: './dropdown.component.html',\n styleUrls: ['./dropdown.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => DropdownComponent),\n multi: true,\n },\n ],\n})\nexport class DropdownComponent\n implements AfterContentChecked, AfterViewInit, OnDestroy, ControlValueAccessor {\n static readonly OPEN_DELAY_IN_MS = 100;\n private state = OpenState.closed;\n private hasConfiguredSlottedItems = false;\n private horizontalDirection = HorizontalDirection.right;\n private verticalDirection = VerticalDirection.down;\n\n private _items: string[] | any[] = [];\n get items(): string[] | any[] {\n return this._items;\n }\n\n @Input() set items(value: string[] | any[]) {\n this._items = value;\n this._value = this.items[this.selectedIndex] || null;\n }\n\n private _selectedIndex: number = -1;\n get selectedIndex(): number {\n return this._selectedIndex;\n }\n\n @Input() set selectedIndex(value: number) {\n if (this._selectedIndex != value) {\n this._selectedIndex = value;\n this._value = this.items[this.selectedIndex] || null;\n }\n }\n\n @Input()\n itemTextProperty = 'text';\n\n @Input()\n placeholder = 'Please select:';\n\n @Input() set popout(direction: HorizontalDirection) {\n this.horizontalDirection = direction || HorizontalDirection.right;\n }\n\n get popout() {\n return this.horizontalDirection;\n }\n\n @Input()\n attentionLevel: '1' | '2' | '3' | '4' = '3';\n readonly attentionLevelOpen = '2';\n\n @Input()\n expand?: 'block';\n\n @Input()\n disabled = false;\n\n @HostBinding('attr.disabled')\n get _isDisabled() {\n return this.disabled ? 'disabled' : null;\n }\n\n @HostBinding('class.error')\n @Input()\n hasError: boolean;\n\n @Input()\n size: 'sm' | 'md' = 'md';\n\n @Input()\n tabindex = 0;\n\n @HostBinding('class.with-popover')\n @Input()\n usePopover = false;\n\n @HostBinding('attr.tabindex')\n get _tabindex() {\n return this.disabled ? -1 : this.tabindex;\n }\n\n // Prevent Ionic blur on scroll\n @HostBinding('attr.no-blur')\n get _noBlurOnScroll() {\n return true;\n }\n\n /**\n * Emitted when an item is selected (tap on mobile, click/keypress on web)\n */\n @Output() change: EventEmitter<string | any> = new EventEmitter<string | any>();\n\n private _value: string | any = null;\n get value(): string | any {\n return this._value;\n }\n\n get selectedText(): string {\n return this.getTextFromItem(this.value);\n }\n\n @HostBinding('class.expand')\n get _isBlockLevel() {\n return this.expand === 'block';\n }\n\n @HostBinding('attr.role')\n _role = 'listbox';\n\n @HostBinding('class.is-opening')\n get _isOpening(): boolean {\n return this.state === OpenState.opening;\n }\n\n @HostBinding('class.is-open')\n get isOpen(): boolean {\n return this.state === OpenState.open;\n }\n\n @HostBinding('class.popout-left')\n get _popoutLeft() {\n return this.horizontalDirection === HorizontalDirection.left;\n }\n\n @HostBinding('class.popout-up')\n get _popoutUp() {\n return this.verticalDirection === VerticalDirection.up;\n }\n\n @ContentChild(ListItemTemplateDirective, { static: true, read: TemplateRef })\n itemTemplate: TemplateRef<any>;\n @ContentChildren(ListItemTemplateDirective, { read: ElementRef })\n slottedItems: QueryList<ElementRef<HTMLElement>>;\n @ViewChild(CardComponent, { read: ElementRef })\n cardElement: ElementRef<HTMLElement>;\n @ViewChild(PopoverComponent)\n popover?: PopoverComponent;\n @ViewChild(ButtonComponent, { static: true, read: ElementRef })\n buttonElement: ElementRef<HTMLElement>;\n @ViewChildren(ItemComponent, { read: ElementRef })\n kirbyItemsDefault: QueryList<ElementRef<HTMLElement>>;\n @ContentChildren(ItemComponent, { read: ElementRef })\n kirbyItemsSlotted: QueryList<ElementRef<HTMLElement>>;\n\n private itemClickUnlisten: (() => void)[] = [];\n private intersectionObserverRef: IntersectionObserver;\n private showDropdownTimeoutId: ReturnType<typeof setTimeout>;\n\n constructor(\n private renderer: Renderer2,\n private elementRef: ElementRef<HTMLElement>,\n private changeDetectorRef: ChangeDetectorRef,\n private keyboardHandlerService: KeyboardHandlerService\n ) {}\n\n onToggle(event: MouseEvent) {\n event.stopPropagation();\n if (!this.isOpen) {\n this.elementRef.nativeElement.focus();\n }\n this.toggle();\n }\n\n toggle() {\n if (this.disabled) {\n return;\n }\n this.isOpen ? this.close() : this.open();\n }\n\n onButtonMouseEvent(event: Event) {\n // Prevent button focus;\n event.preventDefault();\n }\n\n ngAfterContentChecked() {\n if (!this.hasConfiguredSlottedItems && this.kirbyItemsSlotted.length) {\n this.kirbyItemsSlotted.forEach((kirbyItem, index) => {\n this.renderer.setAttribute(kirbyItem.nativeElement, 'role', 'option');\n const unlisten = this.renderer.listen(kirbyItem.nativeElement, 'click', () => {\n this.onItemSelect(index);\n });\n this.itemClickUnlisten.push(unlisten);\n });\n this.hasConfiguredSlottedItems = true;\n }\n }\n\n /* Utility that makes it easier to set styles on card element \n when using popover*/\n private setPopoverCardStyle(style: string, value: string) {\n if (!this.usePopover) return;\n\n this.renderer.setStyle(\n this.cardElement.nativeElement,\n style,\n value,\n RendererStyleFlags2.DashCase\n );\n }\n\n ngAfterViewInit() {\n if (this.usePopover && this.expand === 'block') {\n const { width } = this.elementRef.nativeElement.getBoundingClientRect();\n this.setPopoverCardStyle('--kirby-card-width', `${width}px`);\n this.setPopoverCardStyle('max-width', 'initial');\n this.setPopoverCardStyle('min-width', 'initial');\n }\n this.initializeAlignment();\n }\n\n private initializeAlignment() {\n if (this.usePopover) return;\n if (!this.intersectionObserverRef) {\n const options = {\n rootMargin: '0px',\n };\n const callback: IntersectionObserverCallback = (entries) => {\n // Only apply alignment when opening:\n if (this.state !== OpenState.opening) {\n return;\n }\n\n // Cancel any pending timer to show dropdown:\n clearTimeout(this.showDropdownTimeoutId);\n const entry = entries[0];\n const isVisible = entry.boundingClientRect.width > 0;\n if (isVisible && entry.intersectionRatio < 1) {\n this.setHorizontalDirection(entry);\n this.setVerticalDirection(entry);\n }\n this.showDropdown();\n this.changeDetectorRef.detectChanges();\n };\n this.intersectionObserverRef = new IntersectionObserver(callback, options);\n this.intersectionObserverRef.observe(this.cardElement.nativeElement);\n }\n }\n\n private setHorizontalDirection(entry: IntersectionObserverEntry) {\n // If popout direction is set to right, and the entry is cut off to the right by ${entry.boundingClientRect.right - entry.intersectionRect.right}px\n // it is set to popout left instead, and vice versa for popout direction left\n if (this.horizontalDirection === HorizontalDirection.right) {\n if (entry.boundingClientRect.right > entry.rootBounds.right) {\n this.horizontalDirection = HorizontalDirection.left;\n }\n } else {\n if (entry.boundingClientRect.left < entry.rootBounds.left) {\n this.horizontalDirection = HorizontalDirection.right;\n }\n }\n }\n\n private setVerticalDirection(entry: IntersectionObserverEntry) {\n if (entry.boundingClientRect.top < 0) {\n // entry is cut off at the top by ${entry.boundingClientRect.top}px\n // open downwards:\n this.verticalDirection = VerticalDirection.down;\n }\n if (entry.boundingClientRect.bottom > entry.rootBounds.bottom) {\n // entry is cut off at the bottom by ${entry.boundingClientRect.bottom - entry.intersectionRect.bottom}px\n const containerOffsetTop = this.elementRef.nativeElement.getBoundingClientRect().top;\n const SPACING = 5; //TODO: Get from SCSS\n // Check if the card can fit on top of button:\n if (containerOffsetTop > entry.target.clientHeight + SPACING) {\n // open upwards:\n this.verticalDirection = VerticalDirection.up;\n }\n }\n }\n\n open() {\n if (this.disabled) {\n return;\n }\n if (!this.isOpen) {\n this.state = OpenState.opening;\n // ensures that the dropdown is opened in case the IntersectionObserverCallback isn't invoked\n this.showDropdownTimeoutId = setTimeout(\n () => this.showDropdown(),\n DropdownComponent.OPEN_DELAY_IN_MS\n );\n }\n }\n\n private showDropdown() {\n if (this.state === OpenState.opening) {\n this.state = OpenState.open;\n this.popover?.show();\n this.scrollItemIntoView(this.selectedIndex);\n this.changeDetectorRef.markForCheck();\n }\n }\n\n close() {\n if (this.disabled) {\n return;\n }\n if (this.isOpen) {\n this.state = OpenState.closed;\n // Reset vertical direction to default\n this.verticalDirection = VerticalDirection.down;\n this.popover?.hide();\n }\n }\n\n onItemSelect(index: number) {\n this.selectItem(index);\n this.close();\n }\n\n private _onChange: (value: any) => void = () => {};\n private _onTouched = () => {};\n\n /**\n * Sets the select's value. Part of the ControlValueAccessor interface\n * required to integrate with Angular's core forms API.\n *\n * @param value New value to be written to the model.\n */\n writeValue(value: any): void {\n this._selectItemByValue(value);\n }\n\n /**\n * Saves a callback function to be invoked when the select's value\n * changes from user input. Part of the ControlValueAccessor interface\n * required to integrate with Angular's core forms API.\n *\n * @param fn Callback to be triggered when the value changes.\n */\n registerOnChange(fn: any): void {\n this._onChange = fn;\n }\n\n /**\n * Saves a callback function to be invoked when the select is blurred\n * by the user. Part of the ControlValueAccessor interface required\n * to integrate with Angular's core forms API.\n *\n * @param fn Callback to be triggered when the component has been touched.\n */\n registerOnTouched(fn: any): void {\n this._onTouched = fn;\n }\n\n /**\n * Disables the select. Part of the ControlValueAccessor interface required\n * to integrate with Angular's core forms API.\n *\n * @param isDisabled Sets whether the component is disabled.\n */\n setDisabledState?(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n private selectItem(index: number) {\n if (index != this.selectedIndex) {\n this.selectedIndex = index;\n this.change.emit(this.value);\n this._onChange(this.value);\n this.scrollItemIntoView(index);\n }\n }\n\n private _selectItemByValue(value: string | any) {\n this.selectedIndex = this.items.indexOf(value);\n }\n\n getTextFromItem(item: string | any) {\n if (!item) {\n return null;\n }\n return typeof item === 'string' ? item : item[this.itemTextProperty];\n }\n\n scrollItemIntoView(index: number) {\n const kirbyItems =\n this.kirbyItemsSlotted && this.kirbyItemsSlotted.length\n ? this.kirbyItemsSlotted\n : this.kirbyItemsDefault;\n if (kirbyItems && kirbyItems.length) {\n const selectedKirbyItem = kirbyItems.toArray()[index];\n if (selectedKirbyItem && selectedKirbyItem.nativeElement) {\n const itemElement = selectedKirbyItem.nativeElement;\n const scrollContainer = this.cardElement.nativeElement;\n const itemTop = itemElement.offsetTop;\n const itemBottom = itemElement.offsetTop + itemElement.offsetHeight;\n const containerVisibleTop = scrollContainer.scrollTop;\n const containerVisibleBottom = scrollContainer.clientHeight + scrollContainer.scrollTop;\n if (itemTop < containerVisibleTop) {\n scrollContainer.scrollTop = itemTop;\n } else if (itemBottom > containerVisibleBottom) {\n scrollContainer.scrollTop = itemBottom - scrollContainer.clientHeight;\n }\n }\n }\n }\n\n @HostListener('keydown.tab', ['$event'])\n _onTab(event: KeyboardEvent) {\n if (this.isOpen) {\n event.preventDefault();\n this.close();\n }\n }\n\n @HostListener('mousedown', ['$event'])\n _onMouseDown(event: MouseEvent) {\n if (this.disabled) {\n event.preventDefault();\n event.stopImmediatePropagation();\n }\n }\n\n @HostListener('focus')\n _onFocus() {\n if (this.disabled) {\n this.elementRef.nativeElement.blur();\n }\n }\n\n _onPopoverWillHide() {\n this.state = OpenState.closed;\n this.elementRef.nativeElement.focus();\n }\n\n @HostListener('keydown.enter')\n @HostListener('keydown.escape')\n @HostListener('blur', ['$event'])\n _onBlur(event?: FocusEvent) {\n if (this.disabled) return;\n if (this.isOpen) {\n if (!this.cardElement.nativeElement.contains(event?.relatedTarget as HTMLElement)) {\n this.close();\n }\n }\n this._onTouched();\n }\n\n @HostListener('keydown.space', ['$event'])\n _onSpace(event: KeyboardEvent) {\n event.preventDefault();\n event.stopPropagation();\n if (!this.isOpen) {\n this.open();\n }\n }\n\n @HostListener('keydown.enter', ['$event'])\n _onEnter(event: KeyboardEvent) {\n event.preventDefault();\n event.stopPropagation();\n this.toggle();\n }\n\n @HostListener('keydown.arrowup', ['$event'])\n @HostListener('keydown.arrowdown', ['$event'])\n @HostListener('keydown.arrowleft', ['$event'])\n @HostListener('keydown.arrowright', ['$event'])\n _onArrowKeys(event: KeyboardEvent) {\n if (this.disabled) return;\n // Mirror default HTML5 select behaviour - prevent left/right arrows when open:\n if (this.isOpen && (event.key === 'ArrowLeft' || event.key === 'ArrowRight')) {\n return;\n }\n const newIndex = this.keyboardHandlerService.handle(event, this.items, this.selectedIndex);\n if (newIndex > -1) {\n this.selectItem(newIndex);\n }\n return false;\n }\n\n @HostListener('keydown.home', ['$event'])\n @HostListener('keydown.end', ['$event'])\n _onHomeEndKeys(event: KeyboardEvent) {\n if (this.disabled) return;\n const newIndex = this.keyboardHandlerService.handle(event, this.items, this.selectedIndex);\n if (newIndex > -1) {\n this.selectItem(newIndex);\n }\n return false;\n }\n\n ngOnDestroy(): void {\n let unlisten: () => void;\n while ((unlisten = this.itemClickUnlisten.pop()) !== undefined) {\n unlisten();\n }\n if (this.intersectionObserverRef) {\n this.intersectionObserverRef.disconnect();\n }\n }\n}\n","import { AfterContentInit, Component, ContentChildren, Input, QueryList } from '@angular/core';\n\nimport { ButtonComponent } from '../button/button.component';\n\n@Component({\n selector: 'kirby-empty-state',\n templateUrl: './empty-state.component.html',\n styleUrls: ['./empty-state.component.scss'],\n})\nexport class EmptyStateComponent implements AfterContentInit {\n @Input() iconName: string;\n @Input() customIconName: string;\n @Input() title: string;\n @Input() subtitle: string;\n\n @ContentChildren(ButtonComponent)\n private slottedButtons: QueryList<ButtonComponent>;\n\n ngAfterContentInit() {\n this.enforceAttentionLevelRules();\n\n /* setTimeout prevents ExpressionChangedAfterItHasBeenCheckedError when changing attention \n levels of slotted buttons in this.enforceAttentionLevelRules */\n this.slottedButtons.changes.subscribe(() => {\n setTimeout(() => this.enforceAttentionLevelRules());\n });\n }\n\n /** Enforces that all slotted buttons will have their attention\n * level set to 3, except the first button if it has\n * level 1.\n */\n private enforceAttentionLevelRules() {\n this.slottedButtons.forEach((button, index) => {\n if (index === 0 && button.isAttentionLevel1) return;\n\n if (!button.isAttentionLevel3) {\n button.attentionLevel = '3';\n }\n });\n }\n}\n","import { Component, ElementRef, HostBinding, Input, ViewChild } from '@angular/core';\nimport { IonRadio } from '@ionic/angular';\n\nimport { UniqueIdGenerator } from '../../helpers/unique-id-generator.helper';\n\n@Component({\n selector: 'kirby-radio',\n templateUrl: './radio.component.html',\n styleUrls: ['./radio.component.scss'],\n})\nexport class RadioComponent {\n @Input()\n value: any;\n\n @HostBinding('class.has-label')\n @Input()\n text: string;\n\n @HostBinding('class')\n @Input()\n size?: 'xs' | 'sm' | 'md';\n\n @Input()\n disabled: boolean;\n @HostBinding('attr.disabled')\n get _isDisabled() {\n return this.disabled ? 'disabled' : null;\n }\n\n get buttonTabIndex(): number {\n return this.ionRadioElement ? this.ionRadioElement.nativeElement.tabIndex : -1;\n }\n\n focus() {\n this.ionRadioElement && this.ionRadioElement.nativeElement.focus();\n }\n\n _labelId = UniqueIdGenerator.scopedTo('kirby-radio-label').next();\n\n @ViewChild(IonRadio, { read: ElementRef, static: true }) private ionRadioElement?: ElementRef<\n HTMLIonRadioElement\n >;\n}\n","import {\n AfterContentInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n ContentChild,\n ContentChildren,\n EventEmitter,\n HostBinding,\n Output,\n QueryList,\n TemplateRef,\n ViewChildren,\n} from '@angular/core';\nimport { Component, HostListener, Input } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { ListItemTemplateDirective } from '../../list/list.directive';\nimport { RadioComponent } from '../radio.component';\n\n@Component({\n selector: 'kirby-radio-group',\n templateUrl: './radio-group.component.html',\n styles: ['ion-radio-group { display: inherit; flex-wrap: inherit}'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: RadioGroupComponent,\n multi: true,\n },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class RadioGroupComponent implements AfterContentInit, ControlValueAccessor {\n constructor(private changeDetectionRef: ChangeDetectorRef) {}\n\n // #region public properties\n\n get disabled(): boolean {\n return this._disabled;\n }\n\n @Input() set disabled(value: boolean) {\n this._disabled = value;\n this.setProjectedRadiosDisabledState(value);\n }\n\n @HostBinding('class.error') // Used to style radios with error state\n @Input()\n hasError: boolean = false;\n\n get items(): string[] | any[] {\n return this._items || []; // Ensure items return empty array even if set to null/undefined\n }\n\n @Input() set items(value: string[] | any[]) {\n if ((!value || !value.length) && !this.items.length) return; // Nothing changed, no items before or after\n this._items = value;\n this.refreshSelectionState();\n }\n\n @Input()\n itemTextProperty = 'text';\n\n @Input()\n itemDisabledProperty = 'disabled';\n\n get selectedIndex(): number {\n return this._selectedIndex;\n }\n\n @Input() set selectedIndex(value: number) {\n if (typeof value === 'string') value = parseInt(value); // Ensure data type number, e.g. when used with template syntax without binding: <... selectedIndex=\"1\"\n if (value === undefined || value === null || value === NaN) value = -1;\n if (value === this.selectedIndex) return;\n this._selectedIndex = value;\n this._value = this.getValueFromSelectedIndex() || null;\n }\n\n get value(): string | any {\n return this._value;\n }\n\n @Input() set value(value: string | any) {\n this.setSelectedItem(value);\n }\n\n private get hasValue(): boolean {\n return this.value !== undefined && this.value !== null;\n }\n\n /**\n * Emitted when an option is selected\n */\n @Output() valueChange: EventEmitter<string | any> = new EventEmitter<string | any>();\n // #endregion public properties\n\n // #region \"protected\" properties used by template\n @ContentChild(ListItemTemplateDirective, { read: TemplateRef })\n _customItemTemplate: TemplateRef<any>;\n // #endregion \"protected\" properties used by template\n\n // #region private fields\n private _disabled = false;\n private _items: string[] | any[] = [];\n private _onChangeCallback: (value: any) => void = () => {};\n private _onTouched = () => {};\n private _selectedIndex: number = -1;\n private _value?: string | any = null;\n @ViewChildren(RadioComponent)\n private radioButtons: QueryList<RadioComponent>;\n @ContentChildren(RadioComponent, { descendants: true })\n private projectedRadioButtons: QueryList<RadioComponent>;\n\n private get hasItemsFromContentProjection(): boolean {\n return (\n !this.items.length &&\n !this._customItemTemplate &&\n this.projectedRadioButtons &&\n this.projectedRadioButtons.length > 0\n );\n }\n\n // #endregion private fields\n\n // #region public methods\n focus() {\n const findFocusable = (radios: QueryList<RadioComponent>) =>\n radios && radios.find((radio) => !isNaN(radio.buttonTabIndex) && radio.buttonTabIndex !== -1);\n const focusable = findFocusable(this.radioButtons) || findFocusable(this.projectedRadioButtons);\n focusable && focusable.focus();\n }\n\n ngAfterContentInit(): void {\n this.initSelectionStateFromProjectedContent();\n this.listenForProjectedRadiosChange();\n }\n\n registerOnChange(fn: any): void {\n this._onChangeCallback = fn;\n }\n\n registerOnTouched(fn: any): void {\n this._onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean) {\n this.disabled = isDisabled;\n this.changeDetectionRef.markForCheck();\n }\n\n writeValue(value: any): void {\n this.value = value;\n this.changeDetectionRef.markForCheck();\n }\n\n // #endregion public methods\n\n // #region \"protected\" methods used by template\n _getTextFromItem(item: string | any): string {\n if (!item) return null;\n return typeof item === 'string' ? item : item[this.itemTextProperty];\n }\n\n _getDisabledStateFromItem(item: string | any): boolean {\n if (!item) return undefined;\n return typeof item === 'string' ? undefined : item[this.itemDisabledProperty];\n }\n\n get _hasItems(): boolean {\n return this.items.length > 0 || this.hasItemsFromContentProjection;\n }\n\n _onChange(value: string | any) {\n if (value === this._value) return;\n this.setSelectedItem(value);\n this.valueChange.emit(value);\n this._onChangeCallback(value);\n }\n\n @HostListener('ionBlur')\n _onRadioBlur() {\n this._onTouched();\n }\n\n // #endregion \"protected\" methods used by template\n\n // #region private methods\n private getIndexOfSelectedValue() {\n if (!this.hasValue) return -1;\n return this.hasItemsFromContentProjection\n ? this.getIndexOfProjectedRadio(this.value)\n : this.items.indexOf(this.value);\n }\n\n private getIndexOfProjectedRadio(value: string | any): number {\n let selectedIndex = -1;\n this.projectedRadioButtons &&\n this.projectedRadioButtons.find((radio, i) => {\n const found = radio.value === value;\n if (found) {\n selectedIndex = i;\n }\n return found;\n });\n return selectedIndex;\n }\n\n private getValueFromSelectedIndex(): string | any {\n if (this.selectedIndex === -1) return;\n return this.hasItemsFromContentProjection\n ? this.getValueFromProjectedRadios(this.selectedIndex)\n : this.items[this.selectedIndex];\n }\n\n private getValueFromProjectedRadios(index: number): string | any {\n const radio =\n this.projectedRadioButtons &&\n this.projectedRadioButtons.find((_, i) => {\n return i === index;\n });\n return radio && radio.value;\n }\n\n private initSelectionStateFromProjectedContent() {\n if (this.hasItemsFromContentProjection) {\n this.refreshSelectionState(); // Initialize selected index and value from projected radios\n }\n }\n\n private listenForProjectedRadiosChange() {\n this.projectedRadioButtons.changes.subscribe(() => {\n this.refreshStateFromProjectedContent();\n\n if (this.disabled) {\n // Ensure disabled state propagates when re-rendering projected radios.\n // setTimeout prevents ExpressionChangedAfterItHasBeenCheckedError when updating the DOM in QueryList.changes:\n setTimeout(() => this.setProjectedRadiosDisabledState(this.disabled));\n }\n });\n }\n\n private refreshSelectionState() {\n if (this.hasValue) {\n this._selectedIndex = this.getIndexOfSelectedValue(); // Ensure selectedIndex reflects value within items\n }\n\n const valueFromSelectedIndex = this.getValueFromSelectedIndex();\n this._value = valueFromSelectedIndex !== undefined ? valueFromSelectedIndex : null;\n }\n\n private refreshStateFromProjectedContent() {\n if (!!this._customItemTemplate) return; // Only refresh on changes to projected content, not when re-rendering custom template\n this.changeDetectionRef.markForCheck(); // Ensure changes to projected content gets checked in next change detection cycle\n this.refreshSelectionState(); // Sync selected index and value from projected radios\n }\n\n private setSelectedItem(value: string | any) {\n if (value === this._value) return; // Nothing changed\n this._value = value;\n this._selectedIndex = this.getIndexOfSelectedValue();\n }\n\n private setProjectedRadiosDisabledState(isDisabled: boolean) {\n if (!this.projectedRadioButtons || !this.projectedRadioButtons.length) return;\n this.projectedRadioButtons.forEach((radio, index) => {\n // Disable all radios when group is disabled, otherwise fall back to each item's disabled state, if defined:\n radio.disabled = isDisabled || this._getDisabledStateFromItem(this.items[index]);\n });\n }\n\n // #endregion private methods\n}\n","import { Component, Input, OnInit, OnDestroy } from '@angular/core';\nimport { Subscription } from 'rxjs';\n\nimport { TextareaComponent } from './../textarea/textarea.component';\nimport { InputComponent } from '../input/input.component';\n\n@Component({\n selector: 'kirby-input-counter',\n templateUrl: './input-counter.component.html',\n styleUrls: ['./input-counter.component.scss'],\n})\nexport class InputCounterComponent implements OnInit, OnDestroy {\n @Input() listenTo: InputComponent | TextareaComponent;\n length: number;\n maxlength: number;\n private _inputChangeSubscription: Subscription;\n\n get text(): string {\n if (this.length === undefined) {\n return undefined;\n }\n const ofMaxlength = this.maxlength ? `/${this.maxlength}` : '';\n return `${this.length}${ofMaxlength}`;\n }\n\n ngOnInit(): void {\n if (this.listenTo) {\n this.length = this.listenTo.value ? this.listenTo.value.length : 0;\n this.maxlength = this.listenTo.maxlength;\n this._inputChangeSubscription = this.listenTo.kirbyChange.subscribe((value) => {\n this.length = value.length;\n });\n }\n }\n\n ngOnDestroy(): void {\n if (this._inputChangeSubscription) {\n this._inputChangeSubscription.unsubscribe();\n }\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n HostBinding,\n HostListener,\n Input,\n OnChanges,\n SimpleChanges,\n} from '@angular/core';\n\nexport enum InputSize {\n medium = 'md',\n large = 'lg',\n}\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n // tslint:disable-next-line:component-selector\n selector: 'input[kirby-input]',\n styleUrls: ['./input.component.scss'],\n template: '',\n})\nexport class InputComponent implements OnChanges {\n private static typeToInputmodeMap = {\n number: 'decimal',\n search: 'search',\n };\n\n kirbyChange = new EventEmitter<string>();\n\n @Input() set type(value: string) {\n const mappedValue = InputComponent.typeToInputmodeMap[value];\n if (mappedValue && !this.inputmode) {\n this.inputmode = mappedValue;\n }\n }\n\n @HostBinding('class')\n @Input()\n size: InputSize = InputSize.large;\n\n /**\n * Removes padding, width, rounded borders and drop-shadow when set to `true`.\n */\n @HostBinding('class.borderless')\n @Input()\n borderless: boolean;\n\n @HostBinding('class.error')\n @Input()\n hasError: boolean;\n\n @HostBinding('attr.autocomplete')\n @Input()\n autocomplete: 'on' | 'off' = 'off';\n\n @HostBinding('attr.autocorrect')\n @Input()\n autocorrect: 'on' | 'off' = 'off';\n\n @HostBinding('attr.value')\n @Input()\n value: string;\n\n @HostBinding('attr.maxlength')\n @Input()\n maxlength: number;\n\n @HostBinding('attr.inputmode')\n @Input()\n inputmode: string;\n\n @HostListener('keyup', ['$event.target.value'])\n _onKeyUp(value: string) {\n this.kirbyChange.emit(value);\n }\n\n @HostListener('paste', ['$event.target'])\n @HostListener('cut', ['$event.target'])\n _onCutPaste(target: HTMLInputElement) {\n //Value of input element is updated after cut/paste:\n setTimeout(() => this.kirbyChange.emit(target.value));\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.value) {\n this.kirbyChange.emit(changes.value.currentValue);\n }\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n Input,\n HostBinding,\n EventEmitter,\n HostListener,\n SimpleChanges,\n OnChanges,\n} from '@angular/core';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n // tslint:disable-next-line:component-selector\n selector: 'textarea[kirby-textarea]',\n styleUrls: ['./textarea.component.scss'],\n templateUrl: './textarea.component.html',\n})\nexport class TextareaComponent implements OnChanges {\n kirbyChange = new EventEmitter<string>();\n\n @Input() value: string;\n\n /**\n * Removes padding, width, rounded borders and drop-shadow when set to `true`.\n */\n @HostBinding('class.borderless')\n @Input()\n borderless: boolean;\n\n @HostBinding('class.error')\n @Input()\n hasError: boolean;\n\n @HostBinding('attr.autocomplete')\n @Input()\n autocomplete: 'on' | 'off' = 'off';\n\n @HostBinding('attr.autocorrect')\n @Input()\n autocorrect: 'on' | 'off' = 'off';\n\n @HostBinding('attr.maxlength')\n @Input()\n maxlength: number;\n\n @HostListener('keyup', ['$event.target.value'])\n _onKeyUp(value: string) {\n this.kirbyChange.emit(value);\n }\n\n @HostListener('paste', ['$event.target'])\n @HostListener('cut', ['$event.target'])\n _onCutPaste(target: HTMLInputElement) {\n //Value of textarea element is updated after cut/paste:\n setTimeout(() => this.kirbyChange.emit(target.value));\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.value) {\n this.kirbyChange.emit(changes.value.currentValue);\n }\n }\n}\n","import {\n AfterContentChecked,\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n ElementRef,\n HostListener,\n Input,\n OnDestroy,\n OnInit,\n Renderer2,\n} from '@angular/core';\n\nimport { PlatformService } from '../../helpers/platform.service';\nimport { UniqueIdGenerator } from '../../helpers/unique-id-generator.helper';\nimport { WindowRef } from '../../types/window-ref';\nimport { RadioGroupComponent } from '../radio/radio-group/radio-group.component';\n\nimport { InputCounterComponent } from './input-counter/input-counter.component';\nimport { InputComponent } from './input/input.component';\nimport { TextareaComponent } from './textarea/textarea.component';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'kirby-form-field',\n styleUrls: ['./form-field.component.scss'],\n templateUrl: './form-field.component.html',\n})\nexport class FormFieldComponent\n implements AfterContentChecked, AfterContentInit, OnInit, OnDestroy {\n private isRegistered = false;\n private element: HTMLElement;\n private inputElement: HTMLInputElement | HTMLTextAreaElement;\n private isTouch: boolean;\n _labelId = UniqueIdGenerator.scopedTo('kirby-form-field-label').next();\n\n @Input() label: string;\n @Input() message: string;\n\n @ContentChild(InputCounterComponent, { static: false }) counter: InputCounterComponent;\n @ContentChild(RadioGroupComponent) private radioGroupComponent: RadioGroupComponent;\n @ContentChild(RadioGroupComponent, { read: ElementRef }) private radioGroupElement: ElementRef<\n HTMLElement\n >;\n\n @ContentChild(InputComponent, { read: ElementRef }) input: ElementRef<HTMLInputElement>;\n @ContentChild(TextareaComponent, { read: ElementRef }) textarea: ElementRef<HTMLTextAreaElement>;\n\n constructor(\n elementRef: ElementRef<HTMLElement>,\n private platform: PlatformService,\n private renderer: Renderer2,\n private windowRef: WindowRef\n ) {\n this.element = elementRef.nativeElement;\n }\n\n get _wrapContentInLabel(): boolean {\n return !!this.label && (!!this.input || !!this.textarea);\n }\n\n private dispatchLoadEvent() {\n // Dispatch an `ionInputDidLoad` event to register\n // form field + input/textarea with Ionic input shims\n // See: https://github.com/ionic-team/ionic-framework/blob/master/core/src/utils/input-shims/input-shims.ts\n this.windowRef.nativeWindow.document.dispatchEvent(\n new CustomEvent('ionInputDidLoad', {\n detail: this.element,\n })\n );\n }\n\n @HostListener('kirbyRegisterFormField')\n _onRegisterFormField() {\n this.dispatchLoadEvent();\n }\n\n onLabelClick() {\n this.radioGroupComponent && this.radioGroupComponent.focus();\n }\n\n public focus() {\n if (!this.inputElement) return;\n\n if (this.isTouch) {\n // Trigger Ionic's input shims to ensure input is scrolled into view.\n // See: https://github.com/ionic-team/ionic-framework/blob/master/core/src/utils/input-shims/hacks/scroll-assist.ts\n const touchStart = new TouchEvent('touchstart');\n const touchEnd = new TouchEvent('touchend');\n this.inputElement.dispatchEvent(touchStart);\n this.inputElement.dispatchEvent(touchEnd);\n } else {\n this.inputElement.focus();\n }\n }\n\n ngOnInit() {\n this.isTouch = this.platform.isTouch();\n }\n\n ngAfterContentInit(): void {\n if (this.label && this.radioGroupElement) {\n this.renderer.setAttribute(\n this.radioGroupElement.nativeElement,\n 'aria-labelledby',\n this._labelId\n );\n }\n }\n\n ngAfterContentChecked(): void {\n if (!this.inputElement) {\n this.inputElement = this.element.querySelector('input, textarea');\n }\n\n // TODO: remove \"!this.inputElement.readOnly\" when ionic has fixed input click issue\n // https://github.com/ionic-team/ionic-framework/issues/22740\n if (\n !this.isRegistered &&\n this.element.isConnected &&\n !!this.inputElement &&\n !this.inputElement.readOnly\n ) {\n // Host is connected to dom and slotted input/textarea is present:\n this.isRegistered = true;\n this.dispatchLoadEvent();\n }\n }\n\n ngOnDestroy(): void {\n // Dispatch an `ionInputDidUnload` event to unregister\n // form field + input/textarea from Ionic input shims\n // See: https://github.com/ionic-team/ionic-framework/blob/master/core/src/utils/input-shims/input-shims.ts\n this.windowRef.nativeWindow.document.dispatchEvent(\n new CustomEvent('ionInputDidUnload', {\n detail: this.element,\n })\n );\n }\n}\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'kirby-form-field-message',\n styleUrls: ['./form-field-message.component.scss'],\n templateUrl: './form-field-message.component.html',\n})\nexport class FormFieldMessageComponent {\n @Input() text: string;\n @Input() position: 'left' | 'right' = 'left';\n}\n","import { FormatWidth, getLocaleDateFormat } from '@angular/common';\nimport {\n AfterViewInit,\n Directive,\n ElementRef,\n HostListener,\n Inject,\n LOCALE_ID,\n Renderer2,\n} from '@angular/core';\nimport 'inputmask/lib/extensions/inputmask.date.extensions';\nimport Inputmask from 'inputmask/lib/inputmask';\n\n@Directive({\n selector: '[kirby-input][type=\"date\"]',\n})\nexport class DateInputDirective implements AfterViewInit {\n @HostListener('input')\n onInput() {\n this.updateMask(this.elementRef.nativeElement.value);\n }\n\n private maskingElement: HTMLElement;\n\n constructor(\n private elementRef: ElementRef,\n private renderer: Renderer2,\n @Inject(LOCALE_ID) private locale: string\n ) {\n // Remove type to avoid user-agent specific behaviour for [type=\"date\"]\n this.elementRef.nativeElement.removeAttribute('type');\n }\n\n ngAfterViewInit(): void {\n this.initMask();\n }\n\n private initMask(): void {\n const inputFormat = this.getInputFormat();\n const placeholder = this.getPlaceholder(inputFormat);\n\n // Set initial placeholder ex. dd/mm/yyyy\n this.renderer.setAttribute(this.elementRef.nativeElement, 'placeholder', placeholder);\n\n // Init InputMask\n new Inputmask('datetime', {\n inputFormat,\n placeholder,\n }).mask(this.elementRef.nativeElement);\n\n // Append input overlay, so it's possible to style typed date differntly than the date-mask\n this.appendMaskingElement();\n }\n\n // Keeps order and seperator from speficied locale\n private getInputFormat(): string {\n const localeDateFormat = getLocaleDateFormat(this.locale, FormatWidth.Short);\n return localeDateFormat\n .toLowerCase()\n .replace(/d+/, 'dd')\n .replace(/m+/, 'mm')\n .replace(/y+/, 'yyyy');\n }\n\n private getPlaceholder(inputFormat: string): string {\n return this.locale === 'da' ? inputFormat.split('y').join('å') : inputFormat;\n }\n\n private appendMaskingElement(): void {\n const wrapper = this.wrapElement(this.elementRef.nativeElement);\n this.renderer.addClass(wrapper, 'date-mask-wrapper');\n\n this.maskingElement = this.renderer.createElement('div');\n this.renderer.appendChild(wrapper, this.maskingElement);\n\n this.renderer.addClass(this.maskingElement, 'date-mask');\n }\n\n private wrapElement(element: HTMLElement): HTMLElement {\n const wrapper = this.renderer.createElement('div');\n const parent = element.parentElement;\n this.renderer.insertBefore(parent, wrapper, element);\n this.renderer.appendChild(wrapper, element);\n return wrapper;\n }\n\n private updateMask(value: string): void {\n if (!this.maskingElement) return;\n const lastNumber = value.match(/.*?(\\d)[^\\d]*$/); // get last number in string\n this.maskingElement.innerHTML = value\n ? value.slice(0, value.lastIndexOf(lastNumber[1]) + 1)\n : '';\n }\n}\n","import { getLocaleNumberSymbol, NumberSymbol } from '@angular/common';\nimport { Directive, ElementRef, Inject, Input, LOCALE_ID, OnInit } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport 'inputmask/lib/extensions/inputmask.numeric.extensions';\nimport Inputmask from 'inputmask/lib/inputmask';\n\ninterface InputMask {\n unmaskedvalue: () => string;\n setValue: (val: string) => void;\n}\n\n@Directive({\n // tslint:disable-next-line\n selector: '[kirby-decimal-mask]',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n multi: true,\n useExisting: DecimalMaskDirective,\n },\n ],\n})\nexport class DecimalMaskDirective implements ControlValueAccessor, OnInit {\n @Input() min: number;\n @Input() max: number;\n @Input() precision = 2;\n @Input() setMaxOnOverflow = false;\n\n @Input() set allowMinus(allowMinus: boolean) {\n this._allowMinus = allowMinus || (this.min || 0) < 0;\n }\n\n @Input() set disableGroupSeperator(disabled: string) {\n this._groupSeperatorDisabled = String(disabled) === '' || String(disabled) === 'true';\n }\n\n @Input() set maxlength(maxlength: number) {\n this._maxlength = maxlength;\n\n const maxlengthValue = parseInt('9'.repeat(maxlength));\n this.max = this.getMax(maxlengthValue);\n this.min = this.getMin(maxlengthValue);\n }\n\n groupSeparator = getLocaleNumberSymbol(this.locale, NumberSymbol.Group);\n radixPoint = getLocaleNumberSymbol(this.locale, NumberSymbol.Decimal);\n inputmask: InputMask;\n\n _allowMinus = false;\n _maxlength: number;\n _groupSeperatorDisabled: boolean;\n\n onChange = (_: string) => {};\n\n constructor(private elementRef: ElementRef, @Inject(LOCALE_ID) private locale: string) {}\n\n ngOnInit(): void {\n // Set type=\"text\", because functionality like 'setSelectionRange' are not supported on type=\"number\"\n this.elementRef.nativeElement.setAttribute('type', 'text');\n\n // Remove maxlength as this is handled by the mask\n this.elementRef.nativeElement.removeAttribute('maxlength');\n\n this.initMask();\n }\n\n writeValue(val: number): void {\n if (!this.inputmask) return;\n const formattedValue = String(val).replace('.', this.radixPoint);\n this.inputmask.setValue(formattedValue);\n }\n\n registerOnChange(onChange: any): void {\n this.onChange = onChange;\n }\n\n registerOnTouched(_: any): void {}\n\n private initMask(): void {\n new Inputmask('decimal', {\n groupSeparator: this._groupSeperatorDisabled ? '' : this.groupSeparator,\n radixPoint: this.radixPoint,\n digits: this._maxlength ? 0 : this.precision,\n min: this.min,\n max: this.max,\n allowMinus: this._allowMinus,\n negationSymbol: {\n front: getLocaleNumberSymbol(this.locale, NumberSymbol.MinusSign),\n back: '',\n },\n SetMaxOnOverflow: this.setMaxOnOverflow,\n showMaskOnFocus: false,\n showMaskOnHover: false,\n placeholder: '',\n onBeforeWrite: () => {\n if (!this.inputmask) return;\n const unmaskedValue = this.inputmask.unmaskedvalue();\n this.onChange(unmaskedValue.replace(this.radixPoint, '.'));\n },\n }).mask(this.elementRef.nativeElement);\n this.inputmask = this.elementRef.nativeElement.inputmask;\n }\n\n private getMax(maxlengthValue: number): number {\n return this.max === undefined ? maxlengthValue : Math.min(this.max, maxlengthValue);\n }\n\n private getMin(maxlengthValue: number): number {\n if (!this.allowMinus) return;\n maxlengthValue = -Math.abs(maxlengthValue);\n return this.min === undefined ? maxlengthValue : -Math.abs(Math.max(this.min, maxlengthValue));\n }\n}\n","import {\n Component,\n ContentChild,\n HostBinding,\n Input,\n AfterContentInit,\n AfterViewInit,\n ViewChild,\n ElementRef,\n Renderer2,\n Inject,\n} from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { IonFab, IonFabButton, IonIcon } from '@ionic/angular';\n\nimport { ActionSheetComponent } from '../modal/action-sheet/action-sheet.component';\nimport { kirbyIconSettings } from '../icon/kirby-icon-settings';\nimport { Icon } from '../icon/icon-settings';\n\n@Component({\n selector: 'kirby-fab-sheet',\n templateUrl: './fab-sheet.component.html',\n styleUrls: ['./fab-sheet.component.scss'],\n})\nexport class FabSheetComponent implements AfterContentInit, AfterViewInit {\n @Input() disabled: boolean = false;\n @Input() horizontalAlignment: 'left' | 'center' | 'right' = 'right';\n\n private _isFabSheetOpen: boolean = false;\n @HostBinding('class.is-open')\n get isFabSheetOpen() {\n return this._isFabSheetOpen;\n }\n\n private _isBackdropVisible: boolean = false;\n @HostBinding('class.backdrop-visible')\n get isBackdropVisible() {\n return this._isBackdropVisible;\n }\n\n @ContentChild(ActionSheetComponent, { static: false }) actionSheet: ActionSheetComponent;\n\n @ViewChild(IonFabButton, { static: true, read: ElementRef }) ionFabButton: ElementRef<\n HTMLElement\n >;\n\n constructor(private renderer: Renderer2, @Inject(DOCUMENT) private document: any) {}\n\n ngAfterViewInit(): void {\n const kirbyCloseIcon = kirbyIconSettings.icons.find((icon) => icon.name === 'close');\n this.setCloseIcon(kirbyCloseIcon);\n }\n\n private setCloseIcon(kirbyCloseIcon: Icon, retryCount = 0) {\n const maxRetryCount = 20;\n const retryDelayInMs = 20;\n const fabButtonElement = this.ionFabButton.nativeElement;\n if (!fabButtonElement || !kirbyCloseIcon || retryCount >= maxRetryCount) {\n return;\n }\n if (fabButtonElement.shadowRoot && fabButtonElement.shadowRoot.innerHTML) {\n const closeIcon = fabButtonElement.shadowRoot.querySelector('.close-icon ion-icon');\n if (closeIcon) {\n const closeIconSvgLoaded = closeIcon.shadowRoot.querySelector('.icon-inner svg');\n const ionCloseIcon = (closeIcon as unknown) as IonIcon;\n if (ionCloseIcon && closeIconSvgLoaded) {\n ionCloseIcon.src = kirbyCloseIcon.svg;\n return;\n }\n }\n }\n retryCount++;\n setTimeout(() => this.setCloseIcon(kirbyCloseIcon, retryCount), retryDelayInMs);\n }\n\n ngAfterContentInit(): void {\n if (this.actionSheet) {\n this.actionSheet.hideCancel = true;\n }\n }\n\n hideActions(fab: IonFab) {\n fab.close();\n this._isFabSheetOpen = false;\n this._isBackdropVisible = false;\n this.renderer.removeClass(this.document.body, 'fab-sheet-active');\n }\n\n onFabClick(fab: IonFab) {\n this._isFabSheetOpen = !fab.activated;\n if (this._isFabSheetOpen) {\n this.renderer.addClass(this.document.body, 'fab-sheet-active');\n } else {\n this.renderer.removeClass(this.document.body, 'fab-sheet-active');\n }\n setTimeout(() => (this._isBackdropVisible = this.isFabSheetOpen));\n }\n}\n","// TODO TRM/JEO Parse from scss files instead!!1!!\nexport class ScssHelper {\n // Breakpoints\n public static BREAKPOINT_SCREEN_L = 720;\n public static BREAKPOINT_CARD_S = 320;\n public static BREAKPOINT_CARD_M = 460;\n public static BREAKPOINT_CARD_L = 820;\n}\n","import { Injectable, OnDestroy } from '@angular/core';\nimport { Subject, Observable } from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class BreakpointHelperService implements OnDestroy {\n currentScreenWidth: 800;\n private orientationChangedSubject = new Subject<void>();\n\n constructor() {\n this.init();\n }\n\n private init() {\n // TODO JEO: Implement Angular/CDK BreakpointObserver:\n this.orientationChangedSubject.next();\n }\n\n observe(): Observable<void> {\n return this.orientationChangedSubject.asObservable();\n }\n\n ngOnDestroy() {\n this.orientationChangedSubject.complete();\n }\n}\n","import { Component, OnInit, Input, OnDestroy } from '@angular/core';\nimport { Subscription } from 'rxjs';\n\nimport { ScssHelper } from '../../scss/scss-helper';\nimport { BreakpointHelperService } from './breakpoint-helper.service';\nimport { GridCardConfiguration } from './grid-card-configuration';\n\nclass GridCard {\n configuration: GridCardConfiguration;\n row: number;\n col: number;\n colSpan: number;\n\n constructor(configuration: GridCardConfiguration, row: number, col: number, colSpan: number) {\n this.configuration = configuration;\n this.row = row;\n this.col = col;\n this.colSpan = colSpan;\n }\n}\n\n@Component({\n selector: 'kirby-grid',\n templateUrl: './grid.component.html',\n styleUrls: ['./grid.component.scss'],\n // tslint:disable-next-line\n host: { '[attr.max-columns]': 'maxColumns' },\n})\nexport class GridComponent implements OnInit, OnDestroy {\n cardConfigs: GridCardConfiguration[];\n cards: GridCard[] = [];\n private breakpointSubscription: Subscription;\n\n @Input() maxColumns: number;\n\n @Input()\n set cardConfigurations(cardConfigurations: GridCardConfiguration[]) {\n this.cardConfigs = cardConfigurations;\n // TODO TRM/JEO Remove this when breakpoint observe something something...\n this.configureGrid();\n }\n\n constructor(private breakpointHelper: BreakpointHelperService) {}\n\n configureGrid() {\n let calculatedMaxColumns = 0;\n if (this.maxColumns === undefined) {\n calculatedMaxColumns =\n this.breakpointHelper.currentScreenWidth >= ScssHelper.BREAKPOINT_SCREEN_L ? 2 : 1;\n } else {\n calculatedMaxColumns = this.maxColumns;\n }\n this.cards = [];\n let columnCounter = 0;\n let currentRow = 0;\n let currentColumn = 0;\n\n this.cardConfigs.forEach((card, index) => {\n // Cards colspan is added to the column counter\n columnCounter += card.preferredSize;\n // If only maxColumns are set to 1, just add all cards with a colspan of 1\n if (calculatedMaxColumns === 1) {\n this.cards.push(new GridCard(card, currentRow, currentColumn, 1));\n currentRow += 1;\n return;\n }\n // If we are below maxColumns, then add the card to the array\n if (columnCounter <= calculatedMaxColumns) {\n this.cards.push(new GridCard(card, currentRow, currentColumn, card.preferredSize));\n // Update currentColumn, so the next card will be placed correctly\n currentColumn += card.preferredSize;\n } else {\n // The new card didn't fit - Calculate remaining columns for previous card\n const restColumns = calculatedMaxColumns - (columnCounter - card.preferredSize);\n const prevCard = this.cards[index - 1];\n // Add the restColumns to the previous cards colspan, to make it span out\n prevCard.colSpan = restColumns + prevCard.colSpan;\n // We are now on a new row\n currentRow += 1;\n currentColumn = 0;\n this.cards.push(new GridCard(card, currentRow, currentColumn, card.preferredSize));\n // Update currentColumn to match the size of the new card and reset columnCounter\n currentColumn = card.preferredSize;\n columnCounter = card.preferredSize;\n }\n // If we on the last card, make sure it spans all the rest of the columns\n if (this.cardConfigs.length - 1 === index) {\n const restColumns = calculatedMaxColumns - columnCounter;\n const currentCard = this.cards[index];\n currentCard.colSpan += restColumns;\n }\n });\n }\n\n ngOnInit() {\n // this.breakpointSubscription = this.breakpointHelper.observe().subscribe(() => {\n // this.configureGrid();\n // });\n }\n\n ngOnDestroy() {\n if (this.breakpointSubscription) {\n this.breakpointSubscription.unsubscribe();\n }\n }\n}\n","import { Type } from '@angular/core';\n\nimport { ComponentConfiguration } from '../shared/component-configuration';\n\nexport class GridCardConfiguration implements ComponentConfiguration {\n constructor(public component: Type<any>, public data: any, public preferredSize: number) {}\n}\n","import { NgModule } from '@angular/core';\nimport { IonicModule } from '@ionic/angular';\n\nimport { IconComponent } from './icon.component';\n\n@NgModule({\n imports: [IonicModule],\n declarations: [IconComponent],\n exports: [IconComponent],\n})\nexport class IconModule {}\n","import { Component, Input, HostBinding } from '@angular/core';\n\n@Component({\n selector: 'kirby-label',\n templateUrl: './label.component.html',\n styleUrls: ['./label.component.scss'],\n})\nexport class LabelComponent {\n @Input()\n direction: 'vertical' | 'horizontal' = 'vertical';\n\n @HostBinding('class.horizontal')\n get _direction() {\n return this.direction === 'horizontal';\n }\n}\n","import { NgModule } from '@angular/core';\nimport { IonicModule } from '@ionic/angular';\nimport { CommonModule } from '@angular/common';\n\nimport { IconModule } from '../icon/icon.module';\nimport { ItemComponent } from './item.component';\nimport { LabelComponent } from './label/label.component';\n\n@NgModule({\n imports: [IonicModule, IconModule, CommonModule],\n declarations: [ItemComponent, LabelComponent],\n exports: [ItemComponent, LabelComponent],\n})\nexport class ItemModule {}\n","import { Component, HostBinding } from '@angular/core';\n\n@Component({\n selector: 'kirby-item-group',\n templateUrl: './item-group.component.html',\n styleUrls: ['./item-group.component.scss'],\n})\nexport class ItemGroupComponent {\n @HostBinding('attr.role') role: string = 'group';\n}\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'kirby-spinner',\n templateUrl: './spinner.component.html',\n styleUrls: ['./spinner.component.scss'],\n})\nexport class SpinnerComponent implements OnInit {\n constructor() {}\n\n ngOnInit() {}\n}\n","import { ComponentFactoryResolver, Injectable, Injector } from '@angular/core';\nimport { LoadingController } from '@ionic/angular';\n\nimport { SpinnerComponent } from '../spinner/spinner.component';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class LoadingOverlayService {\n private ionLoading: HTMLIonLoadingElement = null;\n\n constructor(\n private loadingController: LoadingController,\n private componentFactoryResolver: ComponentFactoryResolver,\n private injector: Injector\n ) {}\n\n public async showLoadingOverlay(showBackdrop: boolean = true): Promise<void> {\n if (!this.ionLoading) {\n this.ionLoading = await this.loadingController.create({\n cssClass: 'kirby-loading-overlay',\n duration: 0,\n message: null,\n showBackdrop: showBackdrop,\n spinner: null,\n });\n\n const loadingWrapper = this.ionLoading.querySelector('.loading-wrapper');\n const kirbySpinner = document.createElement('kirby-spinner');\n const factory = this.componentFactoryResolver.resolveComponentFactory(SpinnerComponent);\n factory.create(this.injector, [], kirbySpinner);\n loadingWrapper.appendChild(kirbySpinner);\n\n await this.ionLoading.present();\n }\n }\n\n public async hideLoadingOverlay(): Promise<void> {\n if (!!this.ionLoading) {\n await this.ionLoading.dismiss();\n this.ionLoading = null;\n }\n }\n}\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'kirby-loading-overlay',\n templateUrl: './loading-overlay.component.html',\n styleUrls: ['./loading-overlay.component.scss'],\n})\nexport class LoadingOverlayComponent {\n @Input() public isLoading = true;\n @Input() public showBackdrop = true;\n}\n","import {\n AfterViewInit,\n Directive,\n ElementRef,\n EventEmitter,\n HostListener,\n Input,\n NgZone,\n OnDestroy,\n Output,\n} from '@angular/core';\nimport { fromEvent, Subject } from 'rxjs';\nimport { debounceTime, filter, map, takeUntil } from 'rxjs/operators';\n\nimport { WindowRef } from '../../../types/window-ref';\n\nimport { Scroll } from './scroll.model';\n\n/**\n * Specify debounce duration in ms\n */\nexport const INFINITE_SCROLL_DEBOUNCE = 100;\n\n@Directive({\n selector: '[kirbyInfiniteScroll]',\n})\nexport class InfiniteScrollDirective implements AfterViewInit, OnDestroy {\n /**\n * Event that will be triggered when the user has scrolled to\n * bottom of the element\n */\n @Output() scrollEnd = new EventEmitter<void>();\n\n /**\n * If true then {@link scrollEnd} event should NOT be emitted\n */\n @Input() disabled = false;\n\n /**\n * Emits a new value on element scroll event\n */\n scroll$: Subject<Scroll> = new Subject<Scroll>();\n\n /**\n * Completes on component destroy lifecycle event\n * used to unsubscribe from infinite observables\n */\n private ngUnsubscribe$ = new Subject<void>();\n\n /**\n * An offset from the bottom of the element to trigger {@link scrollEnd} event\n */\n private offset = 0.8;\n\n constructor(private elementRef: ElementRef, private windowRef: WindowRef, private zone: NgZone) {}\n\n ngAfterViewInit(): void {\n /**\n * Subscribe to {@link scroll$} observable and emit {@link scrollEnd} event\n * when element scroll position has surpassed the offset.\n */\n this.scroll$\n .pipe(\n takeUntil(this.ngUnsubscribe$),\n debounceTime(INFINITE_SCROLL_DEBOUNCE),\n filter(() => !this.disabled),\n filter((scroll) => {\n return (\n scroll.elementHeight * (1 - this.offset) >=\n scroll.distanceToViewBottom - scroll.viewHeight\n );\n })\n )\n .subscribe(() => {\n this.scrollEnd.emit();\n });\n\n /**\n * Subscribe to the ionScroll event on the ion-content around the list (if any)\n * and emit {@link scrollEnd} event when element scroll position has surpassed the offset.\n */\n setTimeout(() => {\n const ionContent: HTMLElement = this.elementRef.nativeElement.closest('ion-content');\n if (ionContent) {\n // we run the 'ionScroll' event outside angular, as it would trigger change detection on each scroll\n this.zone.runOutsideAngular(() => {\n fromEvent<any>(ionContent, 'ionScroll')\n .pipe(\n takeUntil(this.ngUnsubscribe$),\n debounceTime(INFINITE_SCROLL_DEBOUNCE),\n filter(() => !this.disabled),\n map(() => this.getScroll()),\n filter((scroll) => {\n return (\n scroll.elementHeight * (1 - this.offset) >=\n scroll.distanceToViewBottom - scroll.viewHeight\n );\n })\n )\n .subscribe(() => {\n // we make sure to emit the event inside angular again. As we want to show the spinner and need change detection for that.\n this.zone.run(() => this.scrollEnd.emit());\n });\n });\n }\n });\n }\n\n /**\n * On element scroll event emit next {@link scroll$} observable value\n */\n @HostListener('window:scroll')\n onScroll(): void {\n if (this.disabled) return;\n const scroll = this.getScroll();\n this.scroll$.next(scroll);\n }\n\n /**\n * trigger {@link ngUnsubscribe} complete on component destroy lifecycle hook\n */\n ngOnDestroy(): void {\n this.ngUnsubscribe$.next();\n this.ngUnsubscribe$.complete();\n }\n\n private getScroll(): Scroll {\n const element = this.elementRef.nativeElement as HTMLElement;\n const boundindClientRect = element.getBoundingClientRect();\n\n const distanceToViewBottom = boundindClientRect.bottom;\n const elementHeight = boundindClientRect.height;\n const viewHeight = this.windowRef.nativeWindow.innerHeight;\n\n return { distanceToViewBottom, elementHeight, viewHeight };\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { ListComponent } from '../list.component';\nimport { LoadOnDemandEventData } from '../list.event';\n\n@Injectable()\nexport class ListHelper {\n onLoadOnDemand(component: ListComponent, _event: LoadOnDemandEventData) {\n if (component.isLoadOnDemandEnabled && !component._isLoading) {\n component._isLoading = true;\n component.loadOnDemand.emit({\n complete: (disableLoadOnDemand: boolean) => {\n component.isLoadOnDemandEnabled = !disableLoadOnDemand;\n component._isLoading = false;\n },\n });\n }\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'groupBy',\n})\nexport class GroupByPipe implements PipeTransform {\n transform(items: any[], getGroupName?: (item: any) => string): any[] {\n if (!items) {\n return null;\n }\n if (!getGroupName) {\n return items;\n }\n\n const groupsMap = new Map<string, any[]>();\n\n items.forEach((item: any) => {\n const itemGroup = getGroupName(item);\n const groupItems = groupsMap.get(itemGroup);\n\n if (groupItems) {\n groupItems.push(item);\n } else {\n groupsMap.set(itemGroup, [item]);\n }\n });\n\n return Array.from(groupsMap)\n .sort(([name], [otherName]) => name.localeCompare(otherName))\n .map(([name, items]) => {\n return { name, items };\n });\n }\n}\n","import {\n AfterViewInit,\n Component,\n ContentChild,\n ContentChildren,\n EventEmitter,\n HostBinding,\n Input,\n OnChanges,\n OnInit,\n Output,\n TemplateRef,\n TrackByFunction,\n ViewChild,\n} from '@angular/core';\n\nimport { ThemeColor } from '@kirbydesign/core';\n\nimport { ItemComponent } from '../item/item.component';\n\nimport { InfiniteScrollDirective } from './directives/infinite-scroll.directive';\nimport { ListHelper } from './helpers/list-helper';\nimport { BoundaryClass } from './list-item/list-item.component';\nimport { ListSwipeAction } from './list-swipe-action.type';\nimport {\n ListFooterDirective,\n ListHeaderDirective,\n ListItemTemplateDirective,\n ListSectionHeaderDirective,\n} from './list.directive';\nimport { LoadOnDemandEvent, LoadOnDemandEventData } from './list.event';\nimport { GroupByPipe } from './pipes/group-by.pipe';\n\nexport type ListShape = 'square' | 'rounded' | 'none';\n\n@Component({\n selector: 'kirby-list',\n templateUrl: './list.component.html',\n styleUrls: ['./list.component.scss'],\n providers: [ListHelper, GroupByPipe],\n})\nexport class ListComponent implements OnInit, AfterViewInit, OnChanges {\n @ViewChild('list', { static: true }) list: any;\n @ViewChild(InfiniteScrollDirective) scrollDirective: InfiniteScrollDirective;\n\n /**\n * Provide items for the list to render. Items must be provided in the order you expect them to be rendered.\n */\n @Input()\n items: any[] = [];\n\n @Input() getItemColor: (item: any) => ThemeColor;\n\n /**\n * Callback to determine name of section. Sections will be ordered alphabetically.\n */\n @Input() getSectionName: (item: any) => string;\n\n /**\n * Callback that defines how to track changes for items in the iterable.\n */\n @Input() trackBy: TrackByFunction<any>;\n\n /**\n * Text to display when no more items can be loaded (used for \"on demand\"-loading).\n */\n @Input() noMoreItemsText: string;\n\n /**\n * Determines if dividers (bottom-border on list items) should be shown or not.\n */\n @Input() showDivider = false;\n\n /**\n * Determines if list row text should turn bold on selection\n */\n @Input() markSelectedRow = false;\n\n /**\n * Determine outline shape of:\n * - list, if {@link #isSectionsEnabled} is `false`\n * - section, if {@link #isSectionsEnabled} is `true`\n *\n * `square` means **without** rounded corners, `rounded` means **with** rounded corners., `none` means **without** padding, border, box-shadow and background.\n */\n @Input() shape: ListShape = 'rounded';\n\n @HostBinding('class.shape-rounded')\n public get isShapeRounded(): boolean {\n return this.shape === 'rounded';\n }\n\n @HostBinding('class.shape-none')\n public get isShapeNone(): boolean {\n return this.shape === 'none';\n }\n\n @HostBinding('class.item-spacing')\n @Input()\n hasItemSpacing: boolean;\n\n /**\n * Determines if the loadOnDemand event should be emitted.\n * Will default to true if there is at least one subscriber to the loadOnDemand event\n */\n @Input() isLoadOnDemandEnabled: boolean;\n\n /**\n * Emitting event when more items are to be loaded.\n */\n @Output() loadOnDemand = new EventEmitter<LoadOnDemandEvent>();\n\n /**\n * Determines if list items should have swipe actions or not\n * - the order of swipe actions is used to determine edge actions,\n * as well as their order of appearance on the screen.\n */\n @Input() swipeActions: ListSwipeAction[] = [];\n\n /**\n * Emitting event when an item is selected (tapped on mobile, clicked on web)\n */\n @Output() itemSelect = new EventEmitter<any>();\n\n @Input() disableSelectionHighlight: boolean = false;\n\n @ContentChildren(ItemComponent)\n kirbyItems: ItemComponent[];\n\n @ContentChild(ListHeaderDirective, { static: false, read: TemplateRef })\n headerTemplate: TemplateRef<any>;\n\n @ContentChild(ListSectionHeaderDirective, { static: false, read: TemplateRef })\n sectionHeaderTemplate: TemplateRef<any>;\n\n @ContentChild(ListFooterDirective, { static: false, read: TemplateRef })\n footerTemplate: TemplateRef<any>;\n\n /**\n * The first element that matches ListItemDirective.\n * As a structural directive it unfolds into a template. This is a reference to that.\n */\n @ContentChild(ListItemTemplateDirective, { static: true, read: TemplateRef })\n itemTemplate: TemplateRef<any>;\n\n @HostBinding('class.has-sections') _isSectionsEnabled: boolean;\n\n _isSelectable: boolean;\n _isLoading: boolean;\n _groupedItems: any[];\n _selectedItem: any;\n\n constructor(private listHelper: ListHelper, private groupBy: GroupByPipe) {}\n\n ngOnInit() {\n this._isSelectable = this.itemSelect.observers.length > 0;\n\n if (this.isLoadOnDemandEnabled === undefined) {\n this.isLoadOnDemandEnabled = this.loadOnDemand.observers.length > 0;\n }\n }\n\n ngAfterViewInit(): void {\n if (this._isSelectable) {\n setTimeout(() => {\n this.kirbyItems.forEach((item) => {\n item.selectable = true;\n });\n });\n }\n }\n\n ngOnChanges(): void {\n this._isSectionsEnabled = !!this.getSectionName;\n this._groupedItems = this._isSectionsEnabled\n ? this.groupBy.transform(this.items, this.getSectionName)\n : null;\n }\n\n _onLoadOnDemand(event?: LoadOnDemandEventData) {\n this.listHelper.onLoadOnDemand(this, event);\n }\n\n defaultTrackBy(index: number): any {\n return index;\n }\n\n sectionTrackBy(_: number, section: { name: string }): string {\n return section.name;\n }\n\n onItemSelect(item: any) {\n if (!this.disableSelectionHighlight) {\n this._selectedItem = item;\n }\n this.itemSelect.emit(item);\n }\n\n onSwipeActionSelect(args: any): void {\n args.swipeAction.onSelected(args.item);\n this.list.closeSlidingItems();\n args.event.stopPropagation();\n }\n\n _getBoundaryClass(index: number, section?: any[]): BoundaryClass {\n let _items = section || this.items;\n\n if (index === 0 || _items[index - 1]?.headingName) return this.headerTemplate ? null : 'first';\n\n if (index === _items.length - 1 || _items[index + 1]?.headingName)\n return this.footerTemplate ? null : 'last';\n }\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'kirby-list-header',\n templateUrl: './list-header.component.html',\n styleUrls: ['./list-header.component.scss'],\n})\nexport class ListHeaderComponent {\n constructor() {}\n}\n","import { Component, Input, OnInit } from '@angular/core';\n\n@Component({\n selector: 'kirby-list-section-header',\n templateUrl: './list-section-header.component.html',\n styleUrls: ['./list-section-header.component.scss'],\n})\nexport class ListSectionHeaderComponent implements OnInit {\n @Input() title: string;\n constructor() {}\n\n ngOnInit() {}\n}\n","import {\n AfterViewInit,\n Component,\n EventEmitter,\n Input,\n OnInit,\n Output,\n TemplateRef,\n ViewChild,\n} from '@angular/core';\nimport { IonItemSliding } from '@ionic/angular';\n\nimport { ThemeColor } from '@kirbydesign/core';\n\nimport { PlatformService } from '../../../helpers/platform.service';\nimport { ListSwipeAction, ListSwipeDirection, ListSwipeEnd } from '../list-swipe-action.type';\n\nexport type BoundaryClass = 'first' | 'last';\n\n@Component({\n selector: 'kirby-list-item',\n templateUrl: './list-item.component.html',\n styleUrls: ['../list.component.scss', './list-item.component.scss'],\n})\nexport class ListItemComponent implements OnInit, AfterViewInit {\n _isSwipingEnabled = false;\n\n constructor(private platform: PlatformService) {\n this.initializeSwipeActions();\n }\n\n @ViewChild(IonItemSliding) ionItemSliding: IonItemSliding;\n\n @Input() item: any;\n\n @Input() boundaryClass: BoundaryClass;\n\n @Input() swipeActions: ListSwipeAction[] = [];\n\n @Input() itemTemplate: TemplateRef<any>;\n\n @Input() isSelected: boolean;\n\n @Input() isSelectable: boolean;\n\n @Input() getItemColor: (item: any) => ThemeColor;\n\n @Output() itemSelect = new EventEmitter<any>();\n\n _onItemSelect(item: any) {\n if (!this.isSelectable) return;\n this.itemSelect.emit(item);\n }\n\n @Output() swipeActionSelect = new EventEmitter<any>();\n\n _onSwipeActionSelect(swipeAction, item, event) {\n this.swipeActionSelect.emit({\n swipeAction,\n item,\n event,\n });\n }\n\n ngOnInit() {\n this.initializeSwipeActions();\n }\n\n ngAfterViewInit(): void {\n if (!this.itemTemplate) {\n console.warn('No item template was provided.');\n }\n }\n\n _hasSwipeActions(item: any): boolean {\n if (!Array.isArray(this.swipeActions)) {\n return false;\n }\n return this.swipeActions.some((swipeAction) => {\n if (swipeAction.isDisabled instanceof Function && swipeAction.isDisabled(item)) {\n return false;\n }\n if (swipeAction.isDisabled === true) {\n return false;\n }\n return swipeAction.position === 'left' || swipeAction.position === 'right';\n });\n }\n\n _getSwipeActions(item: any, direction?: ListSwipeDirection): ListSwipeAction[] {\n if (!Array.isArray(this.swipeActions)) {\n return [];\n }\n return this.swipeActions.filter((swipeAction) => {\n if (this.isSwipeActionDisabled(swipeAction, item)) {\n return false;\n }\n return direction ? swipeAction.position === direction : true;\n });\n }\n\n private isSwipeActionDisabled(swipeAction: ListSwipeAction, item: any): boolean {\n if (swipeAction.isDisabled instanceof Function && swipeAction.isDisabled(item)) {\n return true;\n }\n return swipeAction.isDisabled === true;\n }\n\n _getSwipeActionEnd(item: any): ListSwipeEnd {\n if (this._getSwipeActions(item, 'left').length) {\n return 'start';\n }\n return 'end';\n }\n\n _getSwipeActionIcon(swipeAction: ListSwipeAction, item: any): string {\n if (!swipeAction.icon) return;\n\n if (swipeAction.icon instanceof Function) {\n return swipeAction.icon(item);\n }\n return swipeAction.icon;\n }\n\n _getSwipeActionTitle(swipeAction: ListSwipeAction, item: any): string {\n if (swipeAction.title instanceof Function) {\n return swipeAction.title(item);\n }\n return swipeAction.title;\n }\n\n _getSwipeActionType(swipeAction: ListSwipeAction, item: any): ThemeColor {\n if (swipeAction.type instanceof Function) {\n return swipeAction.type(item);\n }\n return swipeAction.type;\n }\n\n private initializeSwipeActions(): void {\n if (this.swipeActions && this.swipeActions.length) {\n this._isSwipingEnabled = this.platform.isTouch();\n }\n }\n}\n","import { Directive, HostBinding, Input, OnChanges } from '@angular/core';\n\nimport { ThemeColor } from '@kirbydesign/core';\n\n@Directive({\n selector: '[kirbyListItemColor]',\n})\nexport class ListItemColorDirective implements OnChanges {\n @Input()\n kirbyListItemColor: (item: any) => ThemeColor;\n @Input() item: any;\n @HostBinding('class')\n color: ThemeColor;\n\n ngOnChanges(): void {\n this.color = this.getColor();\n }\n\n private getColor(): ThemeColor {\n if (!this.kirbyListItemColor || !this.item) {\n return;\n }\n\n const themeColor = this.kirbyListItemColor(this.item);\n return themeColor;\n }\n}\n","import { Component, HostListener, ViewChild } from '@angular/core';\nimport { IonList } from '@ionic/angular';\n\nimport { elementHasAncestor } from '../../../helpers/element-has-ancestor';\n\n@Component({\n selector: 'kirby-list-experimental',\n templateUrl: './list-experimental.component.html',\n styleUrls: ['./list-experimental.component.scss'],\n})\nexport class ListExperimentalComponent {\n @ViewChild(IonList, { static: true }) list: IonList;\n\n @HostListener('click', ['$event'])\n closeAllSlidingItems(e: MouseEvent) {\n if (elementHasAncestor(e.target as HTMLElement, 'ion-item-option', 'ion-list')) {\n this.list.closeSlidingItems();\n }\n }\n}\n","export class ReorderEvent {\n private origEvent: CustomEvent<any>;\n private parent?: any;\n\n constructor(ev: CustomEvent<any>, parentItem?: any) {\n this.origEvent = ev;\n this.parent = parentItem;\n this.origEvent.cancelBubble = true;\n }\n complete(listOrReorder?: boolean | any[]): Promise<any> {\n return this.origEvent.detail.complete(listOrReorder);\n }\n\n get parentItem(): any {\n return this.parent;\n }\n}\n","import {\n ChangeDetectorRef,\n Component,\n ContentChild,\n ElementRef,\n EventEmitter,\n Input,\n OnChanges,\n OnDestroy,\n Output,\n QueryList,\n TemplateRef,\n ViewChildren,\n} from '@angular/core';\n\nimport { ListItemTemplateDirective } from '../list/list.directive';\n\nimport { ReorderEvent } from './reorder-event';\n\n@Component({\n selector: 'kirby-reorder-list',\n templateUrl: './reorder-list.component.html',\n styleUrls: ['./reorder-list.component.scss'],\n})\nexport class ReorderListComponent implements OnChanges, OnDestroy {\n @Input() items: any[];\n @Input() subItemsName: string;\n @Input() getItemTextDefault: (item: any) => string;\n\n @Output() itemReorder = new EventEmitter<ReorderEvent>();\n @Output() subItemReorder = new EventEmitter<ReorderEvent>();\n\n @ContentChild(ListItemTemplateDirective, { static: true, read: TemplateRef })\n itemTemplate: TemplateRef<any>;\n @ViewChildren('reorderGroupContainer')\n reorderGroupContainer: QueryList<ElementRef>;\n\n private observer: MutationObserver;\n reorderActive: boolean = false;\n\n constructor(private cdr: ChangeDetectorRef) {}\n\n ngOnChanges(): void {\n if (this.items && this.items.length > 0) {\n setTimeout(() => {\n this.setupDomListener();\n });\n }\n }\n\n private setupDomListener() {\n const callback = (mutationsList: any) => {\n for (let mutation of mutationsList) {\n if (mutation.oldValue !== mutation.target['className']) {\n this.reorderActive = mutation.target['className'].includes('reorder-list-active');\n }\n }\n this.cdr.detectChanges();\n };\n this.observer = new MutationObserver(callback);\n\n this.reorderGroupContainer.forEach((div: ElementRef) => {\n this.observer.observe(div.nativeElement, {\n attributes: true,\n attributeFilter: ['class'],\n attributeOldValue: true,\n childList: false,\n subtree: true,\n });\n });\n }\n\n doReorder(ev: CustomEvent) {\n this.itemReorder.emit(new ReorderEvent(ev));\n }\n\n doSubReorder(ev: CustomEvent, parentItem: any) {\n this.subItemReorder.emit(new ReorderEvent(ev, parentItem));\n }\n\n ngOnDestroy() {\n //clean up the observer\n this.observer && this.observer.disconnect();\n delete this.observer;\n }\n}\n","import { Component, HostBinding, Input } from '@angular/core';\n\n@Component({\n selector: 'kirby-modal-footer',\n templateUrl: './modal-footer.component.html',\n styleUrls: ['./modal-footer.component.scss'],\n})\nexport class ModalFooterComponent {\n @HostBinding('class.snap-to-keyboard')\n @Input()\n snapToKeyboard = false;\n\n @HostBinding('class')\n @Input()\n type: 'inline' | 'fixed' = 'fixed';\n}\n","export const selectedTabClickEvent = 'kirbySelectedTabClick';\n","import { Injectable } from '@angular/core';\nimport { IonRouterOutlet } from '@ionic/angular';\nimport { ReplaySubject } from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TabsService {\n private outletSubject$: ReplaySubject<IonRouterOutlet> = new ReplaySubject();\n public outlet$ = this.outletSubject$.asObservable();\n\n public setOutlet(outlet: IonRouterOutlet) {\n this.outletSubject$.next(outlet);\n }\n}\n\nexport { IonRouterOutlet };\n","import { AfterViewInit, Component, HostBinding, ViewChild } from '@angular/core';\nimport { IonTabs } from '@ionic/angular';\n\nimport { TabsService } from './tabs.service';\n\n@Component({\n selector: 'kirby-tab-bar',\n templateUrl: './tabs.component.html',\n styleUrls: ['./tabs.component.scss'],\n})\nexport class TabsComponent implements AfterViewInit {\n @HostBinding('class.tab-bar-bottom-hidden')\n tabBarBottomHidden = false;\n @ViewChild(IonTabs, { static: true }) tabs: IonTabs;\n\n constructor(private tabsService: TabsService) {}\n\n ngAfterViewInit() {\n this.tabsService.setOutlet(this.tabs.outlet);\n }\n}\n","import {\n AfterContentChecked,\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ContentChildren,\n Directive,\n ElementRef,\n EventEmitter,\n HostBinding,\n HostListener,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n QueryList,\n Renderer2,\n SimpleChanges,\n SkipSelf,\n TemplateRef,\n ViewChild,\n} from '@angular/core';\nimport { NavigationEnd, NavigationStart, Router, RouterEvent } from '@angular/router';\nimport { IonContent, IonFooter, IonHeader } from '@ionic/angular';\nimport { Observable, Subject } from 'rxjs';\nimport { filter, takeUntil } from 'rxjs/operators';\n\nimport { KirbyAnimation } from '../../animation/kirby-animation';\nimport { FitHeadingConfig } from '../../directives/fit-heading/fit-heading.directive';\nimport { WindowRef } from '../../types/window-ref';\nimport { ModalWrapperComponent } from '../modal/modal-wrapper/modal-wrapper.component';\nimport { ModalNavigationService } from '../modal/services/modal-navigation.service';\nimport { selectedTabClickEvent } from '../tabs/tab-button/tab-button.events';\nimport { TabsComponent } from '../tabs/tabs.component';\n\ntype stickyConfig = { sticky: boolean };\ntype fixedConfig = { fixed: boolean };\n\n/**\n * Event emitted when \"pull-to-refresh\" begins.\n */\nexport interface PullToRefreshEvent {\n /**\n * Invoke this callback-method when action to perform upon \"pull-to-refresh\" completes.\n */\n complete();\n}\n\n@Directive({\n selector: '[kirbyPageTitle]',\n})\nexport class PageTitleDirective {}\n\n@Directive({\n selector: '[kirbyPageToolbarTitle]',\n})\nexport class PageToolbarTitleDirective {}\n\n@Directive({\n selector: '[kirbyPageActions]',\n})\nexport class PageActionsDirective {\n @Input('kirbyPageActions') config: stickyConfig | fixedConfig;\n private readonly stickyDefault = true;\n private readonly fixedDefault = false;\n\n constructor(public template: TemplateRef<any>) {}\n\n get isSticky(): boolean {\n return this.config ? (this.config as stickyConfig).sticky : this.stickyDefault;\n }\n\n get isFixed(): boolean {\n return this.config ? (this.config as fixedConfig).fixed : this.fixedDefault;\n }\n}\n\n@Directive({\n selector: '[kirbyPageContent]',\n})\nexport class PageContentDirective {\n @Input('kirbyPageContent') config: fixedConfig;\n\n constructor(public template: TemplateRef<any>) {}\n\n get isFixed(): boolean {\n return this.config && this.config.fixed;\n }\n}\n\n@Component({\n selector: 'kirby-page-progress',\n template: `\n <ng-content></ng-content>\n `,\n styles: [':host {display: flex}'],\n})\nexport class PageProgressComponent implements OnInit {\n // TODO: Find alternative implementation, which aligns with future page configuration / consumption\n // This implementation was chosen over expanding `moveChild` method in component wrapper with yet another scenario\n @HostBinding('attr.slot') slot = 'start';\n\n constructor(@Optional() @SkipSelf() private modalWrapper: ModalWrapperComponent) {}\n\n ngOnInit(): void {\n if (this.modalWrapper && this.modalWrapper.config.flavor === 'drawer') {\n this.slot = 'end';\n }\n }\n}\n\n@Component({\n selector: 'kirby-page-title',\n template: `\n <ng-content></ng-content>\n `,\n})\nexport class PageTitleComponent {}\n\n@Component({\n selector: 'kirby-page-content',\n template: `\n <ng-content></ng-content>\n `,\n})\nexport class PageContentComponent {}\n\n@Component({\n selector: 'kirby-page-actions',\n template: `\n <ng-content select=\"button[kirby-button]\"></ng-content>\n `,\n})\nexport class PageActionsComponent {}\n\n@Component({\n selector: 'kirby-page',\n templateUrl: './page.component.html',\n styleUrls: ['./page.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class PageComponent\n implements OnInit, OnDestroy, AfterViewInit, AfterContentChecked, OnChanges {\n @Input() title: string;\n @Input() toolbarTitle: string;\n @Input() titleAlignment: 'left' | 'center' | 'right' = 'left';\n @Input() defaultBackHref: string;\n @Input() hideBackButton: boolean;\n @Input() titleMaxLines: number;\n\n private _tabBarBottomHidden: boolean;\n public get tabBarBottomHidden(): boolean {\n return this._tabBarBottomHidden;\n }\n @Input()\n public set tabBarBottomHidden(value: boolean) {\n if (this.tabsComponent) {\n // as we are setting a class on tabs, we need this to happen in a separate cd cycle\n setTimeout(() => (this.tabsComponent.tabBarBottomHidden = value));\n }\n this._tabBarBottomHidden = value;\n }\n\n @Output() enter = new EventEmitter<void>();\n @Output() leave = new EventEmitter<void>();\n @Output() refresh = new EventEmitter<PullToRefreshEvent>();\n\n @ViewChild(IonContent, { static: true }) private content: IonContent;\n @ViewChild(IonContent, { static: true, read: ElementRef })\n private ionContentElement: ElementRef<HTMLIonContentElement>;\n @ViewChild(IonHeader, { static: true, read: ElementRef })\n ionHeaderElement: ElementRef<HTMLIonHeaderElement>;\n @ViewChild(IonFooter, { static: true, read: ElementRef })\n private ionFooterElement: ElementRef<HTMLIonFooterElement>;\n\n @ViewChild('pageTitle', { static: false, read: ElementRef })\n private pageTitle: ElementRef;\n\n @ViewChild('simpleTitleTemplate', { static: true, read: TemplateRef })\n private simpleTitleTemplate: TemplateRef<any>;\n @ViewChild('simpleToolbarTitleTemplate', { static: true, read: TemplateRef })\n private simpleToolbarTitleTemplate: TemplateRef<any>;\n @ContentChild(PageToolbarTitleDirective, { static: false, read: TemplateRef })\n private customToolbarTitleTemplate: TemplateRef<any>;\n @ContentChild(PageTitleDirective, { static: false, read: TemplateRef })\n customTitleTemplate: TemplateRef<any>;\n @ContentChildren(PageActionsDirective)\n customActions: QueryList<PageActionsDirective>;\n @ContentChildren(PageContentDirective)\n private customContent: QueryList<PageContentDirective>;\n\n hasPageTitle: boolean;\n hasActionsInPage: boolean;\n toolbarTitleVisible: boolean;\n toolbarFixedActionsVisible: boolean;\n toolbarStickyActionsVisible: boolean;\n\n fitHeadingConfig: FitHeadingConfig;\n\n toolbarTitleTemplate: TemplateRef<any>;\n customContentTemplate: TemplateRef<any>;\n pageActionsTemplate: TemplateRef<any>;\n fixedContentTemplate: TemplateRef<any>;\n stickyActionsTemplate: TemplateRef<any>;\n fixedActionsTemplate: TemplateRef<any>;\n private pageTitleIntersectionObserverRef: IntersectionObserver = this.pageTitleIntersectionObserver();\n private urls: string[] = [];\n private hasEntered: boolean;\n\n private ngOnDestroy$ = new Subject();\n private navigationStart$: Observable<RouterEvent> = this.router.events.pipe(\n takeUntil(this.ngOnDestroy$),\n filter((event: RouterEvent) => event instanceof NavigationStart)\n );\n\n private navigationEnd$: Observable<RouterEvent> = this.router.events.pipe(\n takeUntil(this.ngOnDestroy$),\n filter((event: RouterEvent) => event instanceof NavigationEnd)\n );\n\n constructor(\n private elementRef: ElementRef,\n private renderer: Renderer2,\n private router: Router,\n private changeDetectorRef: ChangeDetectorRef,\n private windowRef: WindowRef,\n private modalNavigationService: ModalNavigationService,\n @Optional() @SkipSelf() private tabsComponent: TabsComponent\n ) {}\n\n ngOnInit(): void {\n this.removeWrapper();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.titleMaxLines) {\n this.fitHeadingConfig = {\n ...this.fitHeadingConfig,\n maxLines: changes.titleMaxLines.currentValue,\n };\n }\n }\n\n ngAfterViewInit(): void {\n this.navigationStart$.subscribe((event: NavigationStart) => {\n if (\n !this.urls.includes(event.url) &&\n !this.modalNavigationService.isModalRoute(event.url) &&\n !this.modalNavigationService.isModalRoute(this.router.url)\n ) {\n this.onLeave();\n }\n });\n\n this.navigationEnd$.subscribe((event: NavigationEnd) => {\n if (this.urls.includes(event.urlAfterRedirects)) {\n this.onEnter();\n }\n });\n\n this.windowRef.nativeWindow.addEventListener(selectedTabClickEvent, () => {\n this.content.scrollToTop(KirbyAnimation.Duration.LONG);\n });\n }\n\n ngAfterContentChecked(): void {\n if (!this.urls.includes(this.router.url)) {\n this.urls.push(this.router.url);\n this.onEnter();\n }\n\n this.initializeTitle();\n this.initializeActions();\n this.initializeContent();\n this.changeDetectorRef.detectChanges();\n }\n\n ngOnDestroy(): void {\n this.ngOnDestroy$.next();\n this.ngOnDestroy$.complete();\n\n this.pageTitleIntersectionObserverRef.disconnect();\n this.windowRef.nativeWindow.removeEventListener(selectedTabClickEvent, () => {\n this.content.scrollToTop(KirbyAnimation.Duration.LONG);\n });\n }\n\n delegateRefreshEvent(event: any): void {\n this.refresh.emit({\n complete: event.target.complete.bind(event.target),\n });\n }\n\n private onEnter() {\n if (this.hasEntered) return;\n this.hasEntered = true;\n\n this.enter.emit();\n if (this.pageTitle) {\n this.pageTitleIntersectionObserverRef.observe(this.pageTitle.nativeElement);\n }\n }\n\n private onLeave() {\n this.leave.emit();\n if (this.pageTitle) {\n this.pageTitleIntersectionObserverRef.unobserve(this.pageTitle.nativeElement);\n }\n this.hasEntered = false;\n\n if (this.tabBarBottomHidden && this.tabsComponent) {\n this.tabsComponent.tabBarBottomHidden = false;\n }\n }\n\n private initializeTitle() {\n // Ensures initializeTitle() won't run, if already initialized\n if (this.hasPageTitle) return;\n\n this.hasPageTitle = this.title !== undefined || !!this.customTitleTemplate;\n this.toolbarTitleVisible = !this.hasPageTitle;\n\n if (this.hasPageTitle) {\n setTimeout(() => {\n this.pageTitleIntersectionObserverRef.observe(this.pageTitle.nativeElement);\n });\n }\n\n const defaultTitleTemplate = this.customTitleTemplate || this.simpleTitleTemplate;\n // tslint:disable:prettier\n // prettier-ignore\n this.toolbarTitleTemplate = this.customToolbarTitleTemplate\n ? this.customToolbarTitleTemplate\n : typeof this.toolbarTitle === 'string'\n ? this.simpleToolbarTitleTemplate\n : defaultTitleTemplate;\n }\n\n private initializeActions() {\n this.customActions.forEach((pageAction) => {\n if (pageAction.isFixed) {\n this.fixedActionsTemplate = pageAction.template;\n this.toolbarFixedActionsVisible = true;\n } else {\n this.pageActionsTemplate = pageAction.template;\n if (pageAction.isSticky) {\n this.stickyActionsTemplate = pageAction.template;\n }\n }\n });\n this.hasActionsInPage = !!this.pageActionsTemplate;\n }\n\n private initializeContent() {\n this.customContent.forEach((content) => {\n if (content.isFixed) {\n this.fixedContentTemplate = content.template;\n } else {\n this.customContentTemplate = content.template;\n }\n });\n }\n\n private removeWrapper() {\n const parent = this.elementRef.nativeElement.parentNode;\n this.renderer.removeChild(parent, this.elementRef.nativeElement);\n this.renderer.appendChild(parent, this.ionHeaderElement.nativeElement);\n this.renderer.appendChild(parent, this.ionContentElement.nativeElement);\n this.renderer.appendChild(parent, this.ionFooterElement.nativeElement);\n }\n\n private pageTitleIntersectionObserver() {\n const options = {\n rootMargin: '0px',\n };\n\n let initialized = false;\n const callback = (entries) => {\n if (initialized) {\n this.toolbarTitleVisible = !entries[0].isIntersecting;\n this.toolbarStickyActionsVisible = !entries[0].isIntersecting;\n this.changeDetectorRef.detectChanges();\n } else {\n initialized = true;\n }\n };\n return new IntersectionObserver(callback, options);\n }\n\n @HostListener('window:keyboardWillShow', ['$event'])\n _onKeyboardWillShow(info?: { keyboardHeight: number }) {\n if (info && info.keyboardHeight) {\n this.ionContentElement.nativeElement.style.setProperty(\n '--keyboard-offset',\n `${info.keyboardHeight}px`\n );\n }\n }\n\n @HostListener('window:keyboardWillHide')\n _onKeyboardWillHide() {\n this.ionContentElement.nativeElement.style.setProperty('--keyboard-offset', '0px');\n }\n}\n","import {\n Component,\n ElementRef,\n Input,\n OnDestroy,\n Optional,\n Renderer2,\n SkipSelf,\n} from '@angular/core';\n\nimport { PageComponent } from '../page.component';\n\n@Component({\n selector: 'kirby-page-footer',\n templateUrl: './page-footer.component.html',\n styleUrls: ['./page-footer.component.scss'],\n})\nexport class PageFooterComponent implements OnDestroy {\n @Input()\n hasPadding: boolean = true;\n\n constructor(\n @Optional() @SkipSelf() private pageComponent: PageComponent,\n private hostElement: ElementRef,\n private renderer: Renderer2\n ) {\n if (!pageComponent) {\n throw new Error('Page footer must reside inside of a Kirby page');\n }\n }\n\n close() {\n this.pageComponent.tabBarBottomHidden = false;\n this.renderer.removeChild(\n this.hostElement.nativeElement.parentElement,\n this.hostElement.nativeElement,\n true\n );\n }\n\n ngOnDestroy(): void {\n this.pageComponent.tabBarBottomHidden = false;\n }\n}\n","import { Injectable, Renderer2, RendererStyleFlags2 } from '@angular/core';\n\nconst config = Object.freeze({\n className: 'kirby-line-clamp',\n lineClamp: '--line-clamp',\n lineHeight: '--line-height',\n});\n\n@Injectable()\nexport class LineClampHelper {\n constructor(private renderer: Renderer2) {}\n\n setMaxLines(element: Element, maxLines: number): void {\n this.renderer.setStyle(element, config.lineClamp, maxLines, RendererStyleFlags2.DashCase);\n this.renderer.addClass(element, config.className);\n }\n\n setLineHeight(element: Element, lineHeight: string): void {\n // Only necessary for the fallback solution to work\n this.renderer.setStyle(element, config.lineHeight, lineHeight, RendererStyleFlags2.DashCase);\n }\n\n removeLineClamp(element: Element) {\n this.renderer.removeClass(element, config.className);\n this.renderer.removeStyle(element, config.lineClamp);\n this.renderer.removeStyle(element, config.lineHeight);\n }\n}\n","import { Directive, ElementRef, Input, OnDestroy, OnInit, Renderer2 } from '@angular/core';\n\nimport { DesignTokenHelper } from '@kirbydesign/core';\n\nimport { ResizeObserverService } from '../../components/shared/resize-observer/resize-observer.service';\nimport { LineClampHelper } from '../../helpers/line-clamp-helper';\n\nconst fontSize = DesignTokenHelper.fontSize;\nconst lineHeight = DesignTokenHelper.lineHeight;\n\ninterface HeadingSize {\n name: string;\n fontSize: string;\n lineHeight: string;\n}\n\nexport interface FitHeadingConfig {\n maxLines: number;\n}\n\n@Directive({\n selector: `h1[kirbyFitHeading],h2[kirbyFitHeading],h3[kirbyFitHeading]`,\n providers: [LineClampHelper],\n})\nexport class FitHeadingDirective implements OnInit, OnDestroy {\n // tslint:disable-next-line:no-input-rename\n @Input('kirbyFitHeading') config?: FitHeadingConfig;\n\n private isObservingHostElement: boolean;\n private hostElementClone: Element;\n private isScalingHeader: boolean; // used to prevent resizeObserver to trigger on font scaling by this.scaleHeader()\n\n private headingSizes: HeadingSize[] = [\n {\n name: 'h1',\n fontSize: fontSize('xl'),\n lineHeight: lineHeight('xl'),\n },\n {\n name: 'h2',\n fontSize: fontSize('l'),\n lineHeight: lineHeight('l'),\n },\n {\n name: 'h3',\n fontSize: fontSize('m'),\n lineHeight: lineHeight('m'),\n },\n ];\n\n constructor(\n private elementRef: ElementRef,\n private renderer: Renderer2,\n private resizeObserverService: ResizeObserverService,\n private lineClampHelper: LineClampHelper\n ) {}\n\n ngOnInit(): void {\n if (this.config && this.config.maxLines) {\n this.lineClampHelper.setMaxLines(this.elementRef.nativeElement, this.config.maxLines);\n this.observeResize();\n this.isObservingHostElement = true;\n }\n }\n\n ngOnDestroy(): void {\n if (this.isObservingHostElement) {\n this.resizeObserverService.unobserve(this.elementRef);\n if (this.hostElementClone) {\n this.renderer.removeChild(this.elementRef.nativeElement, this.hostElementClone);\n }\n }\n }\n\n private observeResize(): void {\n this.resizeObserverService.observe(this.elementRef, () => {\n /**\n * setTimeout is used here to avoid repeated size changes\n * while the first size change is still ongoing.\n * This would result in the ResizeObserver being called again,\n * giving 'ResizeObserver loop limit exceeded' types of errors.\n */\n setTimeout(() => {\n this.scaleHeader();\n }, 0);\n });\n }\n\n private scaleHeader(): void {\n if (this.isScalingHeader) return;\n\n this.isScalingHeader = true;\n\n if (!this.hostElementClone) {\n this.hostElementClone = this.generateHostElementClone();\n this.renderer.appendChild(this.elementRef.nativeElement, this.hostElementClone);\n }\n\n this.renderer.setStyle(\n this.hostElementClone,\n 'width',\n `${this.elementRef.nativeElement.clientWidth}px`\n );\n\n const fallbackSize = this.headingSizes[this.headingSizes.length - 1];\n const fittedSize = this.headingSizes.find(this.canFitHeading.bind(this)) || fallbackSize;\n\n this.setSize(this.elementRef.nativeElement, fittedSize);\n this.lineClampHelper.setLineHeight(this.elementRef.nativeElement, fittedSize.lineHeight);\n this.isScalingHeader = false;\n }\n\n private canFitHeading(size: HeadingSize) {\n this.setSize(this.hostElementClone, size);\n const lines = this.hostElementClone.clientHeight / parseInt(size.lineHeight);\n return lines <= this.config.maxLines;\n }\n\n private generateHostElementClone(): Element {\n const clone = this.elementRef.nativeElement.cloneNode(true);\n this.renderer.setStyle(clone, 'position', 'absolute');\n this.renderer.setStyle(clone, 'visibility', 'hidden');\n this.lineClampHelper.removeLineClamp(clone);\n return clone;\n }\n\n private setSize(el: Element, size: HeadingSize): void {\n this.renderer.setStyle(el, 'font-size', size.fontSize);\n this.renderer.setStyle(el, 'line-height', size.lineHeight);\n }\n}\n","import { NgModule } from '@angular/core';\n\nimport { FitHeadingDirective } from './fit-heading.directive';\n\n@NgModule({\n declarations: [FitHeadingDirective],\n exports: [FitHeadingDirective],\n})\nexport class FitHeadingModule {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { SpinnerComponent } from './spinner.component';\n\n@NgModule({\n declarations: [SpinnerComponent],\n imports: [CommonModule],\n exports: [SpinnerComponent],\n providers: [],\n})\nexport class SpinnerModule {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { IonicModule } from '@ionic/angular';\n\nimport { FitHeadingModule } from '../../directives/fit-heading/fit-heading.module';\nimport { SpinnerModule } from '../spinner/spinner.module';\n\nimport { PageFooterComponent } from './page-footer/page-footer.component';\nimport {\n PageActionsComponent,\n PageActionsDirective,\n PageComponent,\n PageContentComponent,\n PageContentDirective,\n PageProgressComponent,\n PageTitleComponent,\n PageTitleDirective,\n PageToolbarTitleDirective,\n} from './page.component';\n\n@NgModule({\n declarations: [\n PageComponent,\n PageActionsComponent,\n PageActionsDirective,\n PageContentComponent,\n PageFooterComponent,\n PageContentDirective,\n PageProgressComponent,\n PageTitleComponent,\n PageTitleDirective,\n PageToolbarTitleDirective,\n ],\n imports: [CommonModule, IonicModule, FitHeadingModule, SpinnerModule],\n exports: [\n PageComponent,\n PageActionsComponent,\n PageActionsDirective,\n PageContentComponent,\n PageFooterComponent,\n PageContentDirective,\n PageProgressComponent,\n PageTitleComponent,\n PageTitleDirective,\n PageToolbarTitleDirective,\n FitHeadingModule,\n ],\n})\nexport class PageModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { IonicModule } from '@ionic/angular';\n\nimport { RouterOutletComponent } from './router-outlet.component';\n\n@NgModule({\n declarations: [RouterOutletComponent],\n imports: [CommonModule, IonicModule],\n exports: [RouterOutletComponent],\n})\nexport class RouterOutletModule {}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'kirby-section-header',\n templateUrl: './section-header.component.html',\n styleUrls: ['./section-header.component.scss'],\n})\nexport class SectionHeaderComponent {}\n","import { Component, EventEmitter, HostBinding, Input, Output } from '@angular/core';\n\nimport { IconRegistryService } from '../icon/icon-registry.service';\n\nimport { SegmentItem, SegmentItemInternal } from './segment-item';\n\nexport enum SegmentedControlMode {\n chip = 'chip',\n compactChip = 'compactChip',\n default = 'default',\n}\n\n@Component({\n selector: 'kirby-segmented-control',\n templateUrl: './segmented-control.component.html',\n styleUrls: ['./segmented-control.component.scss'],\n // tslint:disable-next-line: no-host-metadata-property\n host: { role: 'group' },\n})\nexport class SegmentedControlComponent {\n constructor(private iconRegistryService: IconRegistryService) {}\n\n preventWrapperClick(event: Event) {\n if (event.target instanceof HTMLElement) {\n if (event.target.classList.contains('segment-btn-wrapper')) {\n event.stopImmediatePropagation();\n }\n }\n }\n\n @Input() mode: SegmentedControlMode = SegmentedControlMode.default;\n\n @HostBinding('class')\n get _modeCssClass() {\n return {\n [SegmentedControlMode.chip]: 'chip-mode',\n [SegmentedControlMode.default]: 'default-mode',\n [SegmentedControlMode.compactChip]: 'compact chip-mode',\n }[this.mode];\n }\n\n private _items: SegmentItemInternal[] = [];\n get items(): SegmentItem[] {\n return this._items;\n }\n\n @Input() set items(value: SegmentItem[]) {\n this._items = value || [];\n this._items.forEach((item) => {\n if (!item.badge) return;\n // We need to verify whether badges icon is custom or default, so we can check for it in the template\n item.badge.isCustomIcon =\n item.badge.icon !== undefined &&\n this.iconRegistryService.getIcon(item.badge.icon) !== undefined;\n });\n\n const checkedItemIndex = this.items.findIndex((item) => item.checked);\n if (checkedItemIndex > -1) {\n console.warn(\n 'SegmentItem.checked is deprecated - please remove from your `items` configuration. Use `selectedIndex` or `value` on `<kirby-segmented-control>` instead '\n );\n this._selectedIndex = checkedItemIndex;\n }\n this._value = this.items[this.selectedIndex];\n }\n\n private _selectedIndex: number = -1;\n get selectedIndex(): number {\n return this._selectedIndex;\n }\n\n @Input() set selectedIndex(value: number) {\n if (value !== this._selectedIndex) {\n this._selectedIndex = value;\n this._value = this.items[this.selectedIndex];\n }\n }\n\n private _value: SegmentItem;\n get value(): SegmentItem {\n return this._value;\n }\n\n @Input() set value(value: SegmentItem) {\n this.selectedIndex = this.items.indexOf(value);\n }\n\n @HostBinding('class.sm')\n isSmallSize: boolean;\n\n @Input() set size(size: 'sm' | 'md') {\n this.isSmallSize = size === 'sm';\n }\n\n @Output() segmentSelect: EventEmitter<SegmentItem> = new EventEmitter();\n\n onSegmentSelect(selectedId: string) {\n const selectedItemIndex = this.items.findIndex((item) => selectedId === item.id);\n if (selectedItemIndex !== this.selectedIndex) {\n this.selectedIndex = selectedItemIndex;\n this.segmentSelect.emit(this.value);\n }\n }\n}\n","import {\n Component,\n OnDestroy,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Input,\n Output,\n EventEmitter,\n} from '@angular/core';\n\n@Component({\n selector: 'kirby-slide-button',\n templateUrl: './slide-button.component.html',\n styleUrls: ['./slide-button.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SlideButtonComponent implements OnDestroy {\n @Input() text = '';\n @Input() expand: 'block';\n\n @Output() slideDone = new EventEmitter();\n @Output() slidingPercentageChanged = new EventEmitter<number>();\n\n readonly slideDoneFadeTime = 500;\n readonly slideResetTime = 100;\n\n isSlideDone = false;\n pctInTens = 0;\n\n get value(): number {\n return this._value;\n }\n set value(v: number) {\n this._value = v;\n this.calculatePctInTens();\n }\n\n private _value: number = 0;\n private resetSliderIntervalTimer: any;\n private calculatePctInTens() {\n this.pctInTens = Math.ceil(this.value / 10) * 10;\n }\n\n constructor(private changeDetectionRef: ChangeDetectorRef) {}\n\n ngOnDestroy(): void {\n if (this.resetSliderIntervalTimer) {\n clearInterval(this.resetSliderIntervalTimer);\n }\n }\n\n onSliderMouseup() {\n if (this.value == 100) {\n this.handleSlideDone();\n } else {\n this.resetSliderIntervalTimer = setInterval(() => {\n if (this.value > 0) {\n this.value -= 2;\n } else {\n clearInterval(this.resetSliderIntervalTimer);\n }\n\n this.changeDetectionRef.markForCheck();\n }, 1);\n }\n }\n\n onSliderValueChange(val: string) {\n this.value = +val;\n this.slidingPercentageChanged.emit(this.value);\n }\n\n onSliderMousedown() {\n clearInterval(this.resetSliderIntervalTimer);\n }\n\n private handleSlideDone() {\n this.slideDone.emit();\n this.isSlideDone = true;\n }\n}\n","import {\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnInit,\n Output,\n Renderer2,\n QueryList,\n ContentChildren,\n} from '@angular/core';\n\nimport { IconComponent } from '../../icon/icon.component';\nimport { selectedTabClickEvent } from './tab-button.events';\n\n@Component({\n selector: 'kirby-tab-button',\n templateUrl: './tab-button.component.html',\n styleUrls: ['./tab-button.component.scss'],\n})\nexport class TabButtonComponent implements OnInit {\n @Input() routerLink: string;\n @Output() click = new EventEmitter<Event>();\n @ContentChildren(IconComponent) icons: QueryList<IconComponent>;\n\n constructor(private elementRef: ElementRef, private renderer: Renderer2) {}\n\n ngOnInit(): void {\n this.removeWrapper();\n }\n\n onClick(event: Event, isSelected: boolean) {\n this.click.emit(event);\n\n if (isSelected) {\n const clickEvent = new CustomEvent(selectedTabClickEvent);\n dispatchEvent(clickEvent);\n }\n }\n\n private removeWrapper() {\n const parent = this.elementRef.nativeElement.parentNode;\n const button = this.elementRef.nativeElement.childNodes[0];\n this.renderer.removeChild(parent, this.elementRef.nativeElement);\n this.renderer.appendChild(parent, button);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { IonicModule } from '@ionic/angular';\nimport { CommonModule } from '@angular/common';\n\nimport { TabsComponent } from './tabs.component';\nimport { TabButtonComponent } from './tab-button/tab-button.component';\nimport { IconModule } from '../icon/icon.module';\nimport { TabsService } from './tabs.service';\n\n@NgModule({\n imports: [IonicModule, IconModule, CommonModule],\n providers: [TabsService],\n declarations: [TabsComponent, TabButtonComponent],\n exports: [TabsComponent, TabButtonComponent],\n})\nexport class TabsModule {}\n","import { Injectable } from '@angular/core';\nimport { ToastController } from '@ionic/angular';\n\nimport { Overlay } from '../../modal/services/modal.interfaces';\nimport { MessageType, ToastConfig } from '../config/toast-config';\n\n@Injectable()\nexport class ToastHelper {\n static CSS_CLASS = 'kirby-toast';\n static DURATION_IN_MS = 4000;\n\n constructor(private toastController: ToastController) {}\n\n public async showToast(config: ToastConfig): Promise<Overlay> {\n const toast = await this.toastController.create({\n animated: config.animated,\n message: config.message,\n position: 'top',\n duration: config.durationInMs ? config.durationInMs : ToastHelper.DURATION_IN_MS,\n cssClass: this.getCssClass(config.messageType),\n });\n await toast.present();\n return {\n dismiss: toast.dismiss.bind(toast),\n onWillDismiss: toast.onWillDismiss(),\n onDidDismiss: toast.onDidDismiss(),\n };\n }\n\n private getCssClass(messageType: MessageType): string {\n let cssClass = ToastHelper.CSS_CLASS;\n\n if (messageType === 'danger') {\n console.warn(\n `[DEPRECATED] 'danger' message type is deprecated. Use Kirby Alerts for critical warnings. Toast will be shown as 'warning'`\n );\n\n messageType = 'warning';\n }\n\n if (messageType) {\n cssClass += ' ' + messageType;\n }\n\n return cssClass;\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { ToastConfig } from '../config/toast-config';\n\nimport { ToastHelper } from './toast.helper';\n\n@Injectable()\nexport class ToastController {\n constructor(private toastHelper: ToastHelper) {}\n\n public showToast(config: ToastConfig, onCloseToast?: () => void) {\n this.toastHelper.showToast(config).then((overlay) => {\n if (onCloseToast) {\n overlay.onDidDismiss.then(() => onCloseToast());\n }\n });\n }\n}\n","import { Component, Output, EventEmitter, Input } from '@angular/core';\n\n@Component({\n selector: 'kirby-toggle',\n templateUrl: './toggle.component.html',\n styleUrls: ['./toggle.component.scss'],\n})\nexport class ToggleComponent {\n @Input() checked: boolean = false;\n @Input() disabled: boolean = false;\n @Output() checkedChange = new EventEmitter<boolean>();\n onCheckedChange(checked: boolean): void {\n this.checked = checked;\n this.checkedChange.emit(this.checked);\n }\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n HostBinding,\n Input,\n OnDestroy,\n} from '@angular/core';\n\n@Component({\n selector: 'kirby-progress-circle',\n templateUrl: './progress-circle.component.html',\n styleUrls: ['./progress-circle.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ProgressCircleComponent implements AfterViewInit, OnDestroy {\n readonly SIZE_CONFIG = {\n sm: { diameter: 40, strokeWidth: 3, upperBound: 95 },\n md: { diameter: 56, strokeWidth: 4, upperBound: 96 },\n lg: { diameter: 96, strokeWidth: 6, upperBound: 97 },\n };\n\n @Input() value: number = 0;\n @Input() size: 'sm' | 'md' | 'lg' = 'md';\n @Input() themeColor: 'success' | 'warning' | 'danger' = 'success';\n\n @HostBinding('class')\n get _cssSize() {\n return this.size;\n }\n\n private hasElementBeenVisible?: boolean;\n private observer: IntersectionObserver;\n\n constructor(\n private elementRef: ElementRef<HTMLElement>,\n private changeDetectorRef: ChangeDetectorRef\n ) {}\n\n ngAfterViewInit(): void {\n if (!this.observer) {\n this.observer = new IntersectionObserver(this.onIntersectionChange, {\n threshold: 0.5,\n });\n this.observer.observe(this.elementRef.nativeElement);\n }\n }\n\n ngOnDestroy(): void {\n this.unobserve();\n }\n\n private onIntersectionChange = (entries: IntersectionObserverEntry[]) => {\n this.hasElementBeenVisible = entries && entries.some((entry) => entry.isIntersecting);\n if (this.hasElementBeenVisible) {\n this.unobserve();\n this.changeDetectorRef.markForCheck();\n }\n };\n\n private unobserve() {\n if (this.observer) {\n this.observer.unobserve(this.elementRef.nativeElement);\n // Safari does not support \"disconnect\", see: https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API#Browser_compatibility\n if (typeof this.observer.disconnect === 'function') {\n this.observer.disconnect();\n }\n }\n }\n\n @HostBinding('style.width.px')\n @HostBinding('style.height.px')\n get _diameter(): number {\n return this.SIZE_CONFIG[this.size].diameter;\n }\n\n get _shownValue() {\n // This is needed to make an animation [0 -> value] when element is shown to the user\n return this.hasElementBeenVisible ? this.value : 0;\n }\n\n get _radius() {\n return this._diameter / 2;\n }\n\n get _strokeWidth() {\n return this.SIZE_CONFIG[this.size].strokeWidth;\n }\n\n get _upperBound() {\n // This is needed to make sure that an input value close to 100 is not shown as 100\n return this.SIZE_CONFIG[this.size].upperBound;\n }\n}\n","import { Component, Input, ChangeDetectionStrategy, HostBinding } from '@angular/core';\n\n@Component({\n selector: 'kirby-flag',\n template: `\n <ng-content></ng-content>\n `,\n styleUrls: ['./flag.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FlagComponent {\n @Input() size: 'xs' | 'sm' | 'md' = 'md';\n @Input() themeColor: 'success' | 'warning' | 'danger' | 'semi-light' | 'transparent' =\n 'transparent';\n\n @HostBinding('class')\n get _cssClass() {\n return [this.themeColor, this.size];\n }\n}\n","import { AfterViewInit, EventEmitter } from '@angular/core';\nimport {\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n Directive,\n Input,\n Output,\n TemplateRef,\n ViewChild,\n} from '@angular/core';\nimport { IonSlides } from '@ionic/angular';\n\n@Directive({\n selector: '[kirbySlide]',\n})\nexport class SlideDirective {}\n\n@Component({\n selector: 'kirby-slides',\n template: `\n <ion-slides [options]=\"slidesOptions\" #ionslides (ionSlideDidChange)=\"onSlideChanged()\">\n <ion-slide *ngFor=\"let slide of slides; let i = index\">\n <ng-container\n *ngTemplateOutlet=\"slideTemplate; context: { $implicit: slide, index: i }\"\n ></ng-container>\n </ion-slide>\n </ion-slides>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SlidesComponent implements AfterViewInit {\n @ViewChild('ionslides', { static: false }) ionSlides: IonSlides;\n @Input() slidesOptions: any;\n @Input() slides: any[];\n @Output() selectedSlide = new EventEmitter<any>();\n\n @ContentChild(SlideDirective, { static: true, read: TemplateRef })\n public slideTemplate: TemplateRef<any>;\n\n ngAfterViewInit() {\n this.slideTo(0);\n }\n\n onSlideChanged() {\n this.ionSlides.getActiveIndex().then((selectedIndex) => {\n this.selectedSlide.emit({\n slide: this.slides[selectedIndex],\n index: selectedIndex,\n });\n });\n }\n\n slideTo(index: number) {\n this.ionSlides.slideTo(index);\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n HostListener,\n Input,\n Output,\n} from '@angular/core';\n\n@Component({\n selector: 'kirby-toggle-button',\n templateUrl: './toggle-button.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ToggleButtonComponent {\n @Input() checked: boolean;\n @Output() checkChanged = new EventEmitter<boolean>();\n\n @HostListener('click')\n onClick() {\n this.checked = !this.checked;\n this.checkChanged.emit(this.checked);\n }\n}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[kirbyAccordion], kirby-accordion',\n exportAs: 'kirby-accordion',\n})\nexport class AccordionDirective {}\n","import { animate, state, style, transition, trigger } from '@angular/animations';\nimport { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\n// Counter for generating unique element ids\nlet uniqueId = 0;\n\n@Component({\n selector: 'kirby-accordion-item',\n templateUrl: './accordion-item.component.html',\n styleUrls: ['./accordion-item.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: [\n trigger('isExpanded', [\n state('true', style({ height: '*', visibility: 'visible' })),\n state('false', style({ height: '0px', visibility: 'hidden' })),\n transition('true <=> false', animate('0.2s')),\n ]),\n ],\n})\nexport class AccordionItemComponent {\n @Input() title: string;\n @Input() isExpanded: boolean = false;\n\n // IDs used for a11y labelling\n _titleId = `kirby-accordion-item-title-${++uniqueId}`;\n _contentId = `kirby-accordion-item-content-${uniqueId}`;\n}\n","import {\n Component,\n EventEmitter,\n forwardRef,\n Input,\n OnChanges,\n Output,\n SimpleChanges,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n@Component({\n selector: 'kirby-range',\n templateUrl: './range.component.html',\n styleUrls: ['./range.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n multi: true,\n useExisting: forwardRef(() => RangeComponent),\n },\n ],\n})\nexport class RangeComponent implements OnChanges, ControlValueAccessor {\n @Input() minLabel: string;\n @Input() maxLabel: string;\n @Input() debounce: number;\n @Input() max: number;\n @Input() min: number;\n @Input() pin: boolean;\n @Input() step = 1;\n @Input() ticks: boolean;\n @Input() disabled = false;\n @Input()\n set value(value: number) {\n if (value !== this.currentValue) {\n this.currentValue = value;\n this.propagateChange(this.currentValue);\n this.change.emit(this.currentValue);\n }\n }\n\n get value(): number {\n return this.currentValue;\n }\n\n @Output() change: EventEmitter<number> = new EventEmitter<number>();\n\n private currentValue: number;\n\n ngOnChanges(_: SimpleChanges) {\n if (!this.ticks) return;\n\n /*\n * Max 10 ticks are allowed\n */\n const amountOfTicks = (this.max - this.min) / this.step;\n if (amountOfTicks > 9) {\n this.step = (this.max - this.min) / 9;\n }\n\n /*\n * Set value to the nearest tick\n */\n this.value = this.getTicks().reduce((a, b) => {\n return Math.abs(b - this.value) < Math.abs(a - this.value) ? b : a;\n });\n }\n\n private getTicks() {\n const ticks = [];\n for (let value = Number(this.min); value <= Number(this.max); value += Number(this.step)) {\n ticks.push(value);\n }\n return ticks;\n }\n\n public setDisabledState?(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n public _onRangeValueChange($event: any): void {\n this.writeValue($event.detail.value);\n }\n\n public onTouched = () => {};\n\n public propagateChange = (_: any) => {};\n\n public writeValue(value: any): void {\n if (value !== undefined) {\n this.value = value;\n }\n }\n\n public registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n public registerOnChange(fn: any): void {\n this.propagateChange = fn;\n }\n}\n","import { Directive, HostListener, ElementRef } from '@angular/core';\n\n@Directive({\n // tslint:disable-next-line:directive-selector\n selector: `[keyHandler]`,\n})\nexport class KeyHandlerDirective {\n constructor(private element: ElementRef) {}\n\n @HostListener('keyup', ['$event'])\n keyEvent(event: KeyboardEvent) {\n if (event.key === ' ' || event.key === 'Enter' || event.key === 'Spacebar') {\n // Prevent the default action to stop scrolling when space is pressed\n event.preventDefault();\n\n const hostElement = <HTMLElement>this.element.nativeElement;\n hostElement.click();\n }\n }\n}\n","import { Directive, HostBinding, Input } from '@angular/core';\n\nimport { ColorHelper } from '@kirbydesign/core';\nimport { ThemeColor } from '@kirbydesign/core';\n\n@Directive({\n // tslint:disable-next-line:directive-selector\n selector: `kirby-avatar[themeColor],\n kirby-card[themeColor],\n kirby-icon[themeColor],\n kirby-progress-circle-ring[themeColor],\n kirby-modal-footer[themeColor],\n kirby-empty-state[themeColor]`,\n})\nexport class ThemeColorDirective {\n private _isDefault = true;\n @HostBinding('class.default')\n get isDefault() {\n return this._isDefault;\n }\n\n private _isPrimary: boolean;\n @HostBinding('class.primary')\n get isPrimary() {\n return this._isPrimary;\n }\n\n private _isSecondary: boolean;\n @HostBinding('class.secondary')\n get isSecondary() {\n return this._isSecondary;\n }\n\n private _isTertiary: boolean;\n @HostBinding('class.tertiary')\n get isTertiary() {\n return this._isTertiary;\n }\n\n private _isSuccess: boolean;\n @HostBinding('class.success')\n get isSuccess() {\n return this._isSuccess;\n }\n\n private _isWarning: boolean;\n @HostBinding('class.warning')\n get isWarning() {\n return this._isWarning;\n }\n\n private _isDanger: boolean;\n @HostBinding('class.danger')\n get isDanger() {\n return this._isDanger;\n }\n\n private _isLight: boolean;\n @HostBinding('class.light')\n get isLight() {\n return this._isLight;\n }\n\n private _isMedium: boolean;\n @HostBinding('class.medium')\n get isMedium() {\n return this._isMedium;\n }\n\n private _isDark: boolean;\n @HostBinding('class.dark')\n get isDark() {\n return this._isDark;\n }\n\n private _isWhite: boolean;\n @HostBinding('class.white')\n get isWhite() {\n return this._isWhite;\n }\n\n private _isBrightnessWhite: boolean;\n @HostBinding('class.kirby-color-brightness-white')\n get isBrightnessWhite() {\n return this._isBrightnessWhite;\n }\n\n private _isBrightnessLight: boolean;\n @HostBinding('class.kirby-color-brightness-light')\n get isBrightnessLight() {\n return this._isBrightnessLight;\n }\n\n private _isBrightnessDark: boolean;\n @HostBinding('class.kirby-color-brightness-dark')\n get isBrightnessDark() {\n return this._isBrightnessDark;\n }\n\n @Input() set themeColor(value: ThemeColor) {\n this._isDefault = !value;\n this._isPrimary = value === 'primary';\n this._isSecondary = value === 'secondary';\n this._isTertiary = value === 'tertiary';\n this._isSuccess = value === 'success';\n this._isWarning = value === 'warning';\n this._isDanger = value === 'danger';\n this._isLight = value === 'light';\n this._isMedium = value === 'medium';\n this._isDark = value === 'dark';\n this._isWhite = value === 'white';\n const colorBrightness = ColorHelper.getColorBrightness(value);\n this._isBrightnessWhite = colorBrightness === 'white';\n this._isBrightnessLight = colorBrightness === 'light';\n this._isBrightnessDark = colorBrightness === 'dark';\n }\n}\n","import { fromEvent } from 'rxjs';\n\nexport const proxyInputs = (Cmp: any, inputs: string[]) => {\n const Prototype = Cmp.prototype;\n inputs.forEach((item) => {\n Object.defineProperty(Prototype, item, {\n get() {\n return this.el[item];\n },\n set(val: any) {\n this.z.runOutsideAngular(() => (this.el[item] = val));\n },\n });\n });\n};\n\nexport const proxyMethods = (Cmp: any, methods: string[]) => {\n const Prototype = Cmp.prototype;\n methods.forEach((methodName) => {\n Prototype[methodName] = function () {\n const args = arguments;\n return this.z.runOutsideAngular(() => this.el[methodName].apply(this.el, args));\n };\n });\n};\n\nexport const proxyOutputs = (instance: any, el: any, events: string[]) => {\n events.forEach((eventName) => (instance[eventName] = fromEvent(el, eventName)));\n};\n\n// tslint:disable-next-line: only-arrow-functions\nexport function ProxyCmp(opts: { inputs?: any; methods?: any }) {\n const decorator = function (cls: any) {\n if (opts.inputs) {\n proxyInputs(cls, opts.inputs);\n }\n if (opts.methods) {\n proxyMethods(cls, opts.methods);\n }\n return cls;\n };\n return decorator;\n}\n","/* tslint:disable */\n/* auto-generated angular directive proxies */\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, NgZone } from '@angular/core';\nimport { ProxyCmp, proxyOutputs } from './angular-component-lib/utils';\n\nimport { Components } from '@kirbydesign/core';\n\n\nexport declare interface KirbyBadge extends Components.KirbyBadge {}\n@ProxyCmp({\n inputs: ['size', 'text', 'themeColor']\n})\n@Component({\n selector: 'kirby-badge',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: '<ng-content></ng-content>',\n inputs: ['size', 'text', 'themeColor']\n})\nexport class KirbyBadge {\n protected el: HTMLElement;\n constructor(c: ChangeDetectorRef, r: ElementRef, protected z: NgZone) {\n c.detach();\n this.el = r.nativeElement;\n }\n}\n","import { NgModule } from '@angular/core';\n\nimport { ChartComponent } from './chart.component';\nimport { ChartConfigService } from './configs/chart-config.service';\n\n@NgModule({\n declarations: [ChartComponent],\n exports: [ChartComponent],\n providers: [ChartConfigService],\n})\nexport class ChartModule {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { IonicModule } from '@ionic/angular';\n\nimport { IconModule } from '../icon/icon.module';\nimport { SpinnerModule } from '../spinner/spinner.module';\n\nimport { InfiniteScrollDirective } from './directives/infinite-scroll.directive';\nimport { ListItemColorDirective } from './directives/list-item-color.directive';\nimport { ListExperimentalComponent } from './list-experimental/list-experimental.component';\nimport { ListHeaderComponent } from './list-header/list-header.component';\nimport { ListItemComponent } from './list-item/list-item.component';\nimport { ListSectionHeaderComponent } from './list-section-header/list-section-header.component';\nimport { ListComponent } from './list.component';\nimport {\n ListFlexItemDirective,\n ListFooterDirective,\n ListHeaderDirective,\n ListItemDirective,\n ListItemTemplateDirective,\n ListSectionHeaderDirective,\n} from './list.directive';\n\nconst exportedDeclarations = [\n ListComponent,\n ListItemComponent,\n ListItemDirective,\n ListFlexItemDirective,\n ListItemTemplateDirective,\n ListSectionHeaderComponent,\n ListSectionHeaderDirective,\n ListHeaderDirective,\n ListHeaderComponent,\n ListFooterDirective,\n ListExperimentalComponent,\n];\n\nconst declarations = [\n ...exportedDeclarations,\n ListItemColorDirective,\n InfiniteScrollDirective,\n ListItemComponent,\n];\n\n@NgModule({\n declarations: declarations,\n imports: [CommonModule, IconModule, IonicModule, SpinnerModule],\n exports: exportedDeclarations,\n providers: [],\n})\nexport class ListModule {}\n","import { ChangeDetectionStrategy, Component, HostBinding, Input } from '@angular/core';\n\n@Component({\n selector: 'kirby-progress-circle-ring',\n templateUrl: './progress-circle-ring.component.svg',\n styleUrls: ['./progress-circle-ring.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ProgressCircleRingComponent {\n @Input() radius: number; // The desired outer radius of the SVG circle\n @Input() value: number = 0;\n @Input() themeColor: 'success' | 'warning' | 'danger' = 'success';\n @Input() strokeWidth: number;\n @Input() upperBound: number;\n\n get _offset(): number {\n const valueWithinBounds = this.value < this.upperBound || this.value > 99;\n if (valueWithinBounds) {\n return this.calculateOffset(this.value);\n } else {\n return this.calculateOffset(this.upperBound);\n }\n }\n\n @HostBinding('style.width.px')\n @HostBinding('style.height.px')\n get _diameter(): number {\n return this.radius * 2;\n }\n\n get _centerRadius(): number {\n return this.radius - this.strokeWidth / 2;\n }\n\n get _centerCircumference(): number {\n return this._centerRadius * 2 * Math.PI;\n }\n\n private calculateOffset(value: number): number {\n return this._centerCircumference - this._centerCircumference * (value / 100);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { ToggleButtonComponent } from './toggle-button.component';\n\nconst DECLARATIONS = [ToggleButtonComponent];\n\n@NgModule({\n declarations: [...DECLARATIONS],\n imports: [CommonModule],\n exports: [...DECLARATIONS],\n})\nexport class ToggleButtonModule {}\n","import { DOCUMENT } from '@angular/common';\nimport { APP_INITIALIZER } from '@angular/core';\n\nimport { defineCustomElements } from '@kirbydesign/core/loader';\n\nexport const appInitialize = (doc: Document) => {\n return () => {\n defineCustomElements(doc.defaultView);\n };\n};\n\nexport function customElementsInitializer() {\n return {\n provide: APP_INITIALIZER,\n useFactory: appInitialize,\n deps: [DOCUMENT],\n multi: true,\n };\n}\n","import { Directive, ElementRef, HostBinding, HostListener, OnInit, Optional } from '@angular/core';\n\nimport { CardComponent } from '../../components/card/card.component';\n\n@Directive({\n // tslint:disable-next-line\n selector: 'kirby-card[click]',\n})\nexport class ElementAsButtonDirective implements OnInit {\n @HostBinding('attr.role') role: string = 'button';\n @HostBinding('attr.tabindex') tabindex: number = 0;\n\n constructor(@Optional() private card: CardComponent, private clickableElement: ElementRef) {}\n\n ngOnInit(): void {\n if (this.card) {\n this.card.flat = false;\n }\n }\n\n @HostListener('keydown.space', ['$event'])\n @HostListener('keydown.enter', ['$event'])\n _onKeydownHandler(event: KeyboardEvent) {\n this.clickableElement.nativeElement.click(event);\n }\n}\n","import { Directive, HostListener, Input } from '@angular/core';\nimport { Params } from '@angular/router';\n\nimport { ModalNavigationService } from '../../components/modal/services/modal-navigation.service';\n\n@Directive({\n selector: `[kirbyModalRouterLink]`,\n})\nexport class ModalRouterLinkDirective {\n constructor(private modalNavigationService: ModalNavigationService) {}\n\n @Input('kirbyModalRouterLink') path: string | string[];\n // tslint:disable-next-line:no-input-rename\n @Input('kirbyModalQueryParams') queryParams?: Params;\n\n @HostListener('click')\n onClick(): boolean {\n this.modalNavigationService.navigateToModal(\n this.path,\n typeof this.queryParams !== 'string' ? this.queryParams : null\n );\n return false;\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Inject, InjectionToken, ModuleWithProviders, NgModule, Optional } from '@angular/core';\nimport { RouterModule } from '@angular/router';\nimport { IonicModule } from '@ionic/angular';\n\nimport { AccordionItemComponent } from './components/accordion/accordion-item.component';\nimport { AccordionDirective } from './components/accordion/accordion.directive';\nimport { AppModule } from './components/app/app.module';\nimport { AvatarComponent } from './components/avatar/avatar.component';\nimport { ButtonComponent } from './components/button/button.component';\nimport { CalendarComponent } from './components/calendar/calendar.component';\nimport { CardFooterComponent } from './components/card/card-footer/card-footer.component';\nimport { CardHeaderComponent } from './components/card/card-header/card-header.component';\nimport { CardComponent } from './components/card/card.component';\nimport { ChartDeprecatedComponent } from './components/chart-deprecated/chart-deprecated.component';\nimport { ChartModule } from './components/chart/chart.module';\nimport { CheckboxComponent } from './components/checkbox/checkbox.component';\nimport { ChipComponent } from './components/chip/chip.component';\nimport { DividerComponent } from './components/divider/divider.component';\nimport { DropdownComponent } from './components/dropdown/dropdown.component';\nimport { EmptyStateComponent } from './components/empty-state/empty-state.component';\nimport { FabSheetComponent } from './components/fab-sheet/fab-sheet.component';\nimport { FlagComponent } from './components/flag/flag.component';\nimport { DateInputDirective } from './components/form-field/directives/date/date-input.directive';\nimport { DecimalMaskDirective } from './components/form-field/directives/decimal-mask/decimal-mask.directive';\nimport { FormFieldMessageComponent } from './components/form-field/form-field-message/form-field-message.component';\nimport { FormFieldComponent } from './components/form-field/form-field.component';\nimport { InputCounterComponent } from './components/form-field/input-counter/input-counter.component';\nimport { InputComponent } from './components/form-field/input/input.component';\nimport { TextareaComponent } from './components/form-field/textarea/textarea.component';\nimport { BreakpointHelperService } from './components/grid/breakpoint-helper.service';\nimport { GridComponent } from './components/grid/grid.component';\nimport { IconModule } from './components/icon/icon.module';\nimport { ItemGroupComponent } from './components/item-group/item-group.component';\nimport { ItemSlidingComponent } from './components/item-sliding/item-sliding.component';\nimport { ItemModule } from './components/item/item.module';\nimport { ListModule } from './components/list/list.module';\nimport { GroupByPipe } from './components/list/pipes/group-by.pipe';\nimport { LoadingOverlayComponent } from './components/loading-overlay/loading-overlay.component';\nimport { LoadingOverlayService } from './components/loading-overlay/loading-overlay.service';\nimport { ActionSheetComponent } from './components/modal/action-sheet/action-sheet.component';\nimport { AlertComponent } from './components/modal/alert/alert.component';\nimport { ModalFooterComponent } from './components/modal/footer/modal-footer.component';\nimport { ModalCompactWrapperComponent } from './components/modal/modal-wrapper/compact/modal-compact-wrapper.component';\nimport { ModalWrapperComponent } from './components/modal/modal-wrapper/modal-wrapper.component';\nimport { ActionSheetHelper } from './components/modal/services/action-sheet.helper';\nimport { AlertHelper } from './components/modal/services/alert.helper';\nimport { ModalController } from './components/modal/services/modal.controller';\nimport { ModalHelper } from './components/modal/services/modal.helper';\nimport { PageModule } from './components/page/page.module';\nimport { PopoverComponent } from './components/popover/popover.component';\nimport { ProgressCircleRingComponent } from './components/progress-circle/progress-circle-ring.component';\nimport { ProgressCircleComponent } from './components/progress-circle/progress-circle.component';\nimport { RadioGroupComponent } from './components/radio/radio-group/radio-group.component';\nimport { RadioComponent } from './components/radio/radio.component';\nimport { RangeComponent } from './components/range/range.component';\nimport { ReorderListComponent } from './components/reorder-list/reorder-list.component';\nimport { RouterOutletModule } from './components/router-outlet/router-outlet.module';\nimport { SectionHeaderComponent } from './components/section-header/section-header.component';\nimport { SegmentedControlComponent } from './components/segmented-control/segmented-control.component';\nimport { ComponentLoaderDirective } from './components/shared/component-loader.directive';\nimport { ResizeObserverFactory } from './components/shared/resize-observer/resize-observer.factory';\nimport { ResizeObserverService } from './components/shared/resize-observer/resize-observer.service';\nimport { SlideButtonComponent } from './components/slide-button/slide-button.component';\nimport { SlideDirective, SlidesComponent } from './components/slides/slides.component';\nimport { SpinnerModule } from './components/spinner/spinner.module';\nimport { StockChartDeprecatedComponent } from './components/stock-chart-deprecated/stock-chart-deprecated.component';\nimport { TabsModule } from './components/tabs/tabs.module';\nimport { ToastController } from './components/toast/services/toast.controller';\nimport { ToastHelper } from './components/toast/services/toast.helper';\nimport { ToggleButtonModule } from './components/toggle-button/toggle-button.module';\nimport { ToggleComponent } from './components/toggle/toggle.component';\nimport { KirbyBadge as BadgeComponent } from './components/web-component-proxies.component';\nimport { customElementsInitializer } from './custom-elements-initializer';\nimport { ElementAsButtonDirective } from './directives/element-as-button/element-as-button.directive';\nimport { KeyHandlerDirective } from './directives/key-handler/key-handler.directive';\nimport { ModalRouterLinkDirective } from './directives/modal-router-link/modal-router-link.directive';\nimport { ThemeColorDirective } from './directives/theme-color/theme-color.directive';\n\nconst exportedDeclarations = [\n CardComponent,\n CardHeaderComponent,\n CardFooterComponent,\n ButtonComponent,\n ChartDeprecatedComponent,\n StockChartDeprecatedComponent,\n GridComponent,\n ComponentLoaderDirective,\n AvatarComponent,\n GroupByPipe,\n CalendarComponent,\n CheckboxComponent,\n ActionSheetComponent,\n ModalFooterComponent,\n ModalRouterLinkDirective,\n SegmentedControlComponent,\n ChipComponent,\n BadgeComponent,\n ThemeColorDirective,\n DateInputDirective,\n DecimalMaskDirective,\n SlideButtonComponent,\n ToggleComponent,\n EmptyStateComponent,\n FormFieldComponent,\n InputComponent,\n InputCounterComponent,\n TextareaComponent,\n FabSheetComponent,\n DividerComponent,\n ReorderListComponent,\n DropdownComponent,\n LoadingOverlayComponent,\n ProgressCircleComponent,\n FlagComponent,\n SlidesComponent,\n SlideDirective,\n AccordionDirective,\n AccordionItemComponent,\n ItemSlidingComponent,\n RadioComponent,\n RadioGroupComponent,\n RangeComponent,\n ElementAsButtonDirective,\n ItemGroupComponent,\n SectionHeaderComponent,\n];\n\nconst declarations = [\n ...exportedDeclarations,\n KeyHandlerDirective,\n FormFieldMessageComponent,\n AlertComponent,\n ModalWrapperComponent,\n ModalCompactWrapperComponent,\n ProgressCircleRingComponent,\n PopoverComponent,\n];\n\nconst exportedModules = [\n AppModule,\n RouterOutletModule,\n PageModule,\n TabsModule,\n IconModule,\n ItemModule,\n ToggleButtonModule,\n ListModule,\n ChartModule,\n SpinnerModule,\n];\n\nconst exports = [...exportedModules, ...exportedDeclarations];\n\nconst importedModules = [...exportedModules];\n\nconst providers = [\n ModalController,\n ActionSheetHelper,\n ModalHelper,\n AlertHelper,\n ToastHelper,\n ToastController,\n BreakpointHelperService,\n LoadingOverlayService,\n ResizeObserverFactory,\n ResizeObserverService,\n customElementsInitializer(),\n];\n\nconst entryComponents = [\n ModalWrapperComponent,\n ModalCompactWrapperComponent,\n ActionSheetComponent,\n AlertComponent,\n];\n\nconst ConfigToken = new InjectionToken<any>('USERCONFIG');\nexport interface KirbyConfig {\n moduleRootRoutePath?: string;\n}\n\n@NgModule({\n imports: [\n CommonModule,\n RouterModule,\n IonicModule.forRoot({\n mode: 'ios',\n inputShims: true,\n scrollAssist: true,\n scrollPadding: false,\n }),\n ...importedModules,\n ],\n declarations: declarations,\n providers: providers,\n entryComponents: entryComponents,\n exports: exports,\n})\nexport class KirbyModule {\n static forChild(config?: KirbyConfig): ModuleWithProviders<KirbyModule> {\n return {\n ngModule: KirbyModule,\n providers: [\n {\n provide: ConfigToken,\n useValue: config,\n },\n ],\n };\n }\n\n constructor(\n modalController: ModalController,\n @Optional() @Inject(ConfigToken) config?: KirbyConfig\n ) {\n modalController.initialize(config && config.moduleRootRoutePath);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n\nexport {AccordionItemComponent as ɵeo} from './lib/components/accordion/accordion-item.component';\nexport {AccordionDirective as ɵen} from './lib/components/accordion/accordion.directive';\nexport {ProxyCmp as ɵa} from './lib/components/angular-component-lib/utils';\nexport {AppComponent as ɵc} from './lib/components/app/app.component';\nexport {AppModule as ɵb} from './lib/components/app/app.module';\nexport {AvatarComponent as ɵdh} from './lib/components/avatar/avatar.component';\nexport {ButtonComponent as ɵbc} from './lib/components/button/button.component';\nexport {CalendarComponent as ɵdi} from './lib/components/calendar/calendar.component';\nexport {CalendarHelper as ɵdj} from './lib/components/calendar/helpers/calendar.helper';\nexport {CardFooterComponent as ɵcs} from './lib/components/card/card-footer/card-footer.component';\nexport {CardHeaderComponent as ɵcr} from './lib/components/card/card-header/card-header.component';\nexport {CardComponent as ɵcq} from './lib/components/card/card.component';\nexport {ChartDeprecatedHelper as ɵcu} from './lib/components/chart-deprecated/chart-deprecated-helper';\nexport {ChartDeprecatedComponent as ɵct} from './lib/components/chart-deprecated/chart-deprecated.component';\nexport {ACTIVITYGAUGE_OPTIONS as ɵdb,ActivityGaugeOptions as ɵdc} from './lib/components/chart-deprecated/options/activitygauge';\nexport {AREASPLINE_OPTIONS as ɵcx,AreaSplineOptions as ɵcy} from './lib/components/chart-deprecated/options/areaspline';\nexport {DONUT_OPTIONS as ɵcv,DonutOptions as ɵcw} from './lib/components/chart-deprecated/options/donut';\nexport {TIMESERIES_OPTIONS as ɵcz,TimeSeriesOptions as ɵda} from './lib/components/chart-deprecated/options/timeseries';\nexport {ChartJSService as ɵco} from './lib/components/chart/chart-js/chart-js.service';\nexport {ChartComponent as ɵcn} from './lib/components/chart/chart.component';\nexport {ChartModule as ɵcm} from './lib/components/chart/chart.module';\nexport {ChartConfigService as ɵcp} from './lib/components/chart/configs/chart-config.service';\nexport {CheckboxComponent as ɵdk} from './lib/components/checkbox/checkbox.component';\nexport {ChipComponent as ɵdp} from './lib/components/chip/chip.component';\nexport {DividerComponent as ɵed} from './lib/components/divider/divider.component';\nexport {DropdownComponent as ɵef} from './lib/components/dropdown/dropdown.component';\nexport {KeyboardHandlerService as ɵeh} from './lib/components/dropdown/keyboard-handler.service';\nexport {EmptyStateComponent as ɵdv} from './lib/components/empty-state/empty-state.component';\nexport {FabSheetComponent as ɵec} from './lib/components/fab-sheet/fab-sheet.component';\nexport {FlagComponent as ɵek} from './lib/components/flag/flag.component';\nexport {DateInputDirective as ɵdr} from './lib/components/form-field/directives/date/date-input.directive';\nexport {DecimalMaskDirective as ɵds} from './lib/components/form-field/directives/decimal-mask/decimal-mask.directive';\nexport {FormFieldMessageComponent as ɵev} from './lib/components/form-field/form-field-message/form-field-message.component';\nexport {FormFieldComponent as ɵdw} from './lib/components/form-field/form-field.component';\nexport {InputCounterComponent as ɵdx} from './lib/components/form-field/input-counter/input-counter.component';\nexport {InputComponent as ɵea} from './lib/components/form-field/input/input.component';\nexport {TextareaComponent as ɵeb} from './lib/components/form-field/textarea/textarea.component';\nexport {BreakpointHelperService as ɵdf} from './lib/components/grid/breakpoint-helper.service';\nexport {GridComponent as ɵde} from './lib/components/grid/grid.component';\nexport {IconRegistryService as ɵbe} from './lib/components/icon/icon-registry.service';\nexport {ICON_SETTINGS as ɵbg,IconSettings as ɵbf} from './lib/components/icon/icon-settings';\nexport {IconComponent as ɵbd} from './lib/components/icon/icon.component';\nexport {IconModule as ɵbp} from './lib/components/icon/icon.module';\nexport {ItemGroupComponent as ɵes} from './lib/components/item-group/item-group.component';\nexport {ItemSlidingComponent as ɵep} from './lib/components/item-sliding/item-sliding.component';\nexport {ItemComponent as ɵbs} from './lib/components/item/item.component';\nexport {ItemModule as ɵbr} from './lib/components/item/item.module';\nexport {LabelComponent as ɵbt} from './lib/components/item/label/label.component';\nexport {InfiniteScrollDirective as ɵca} from './lib/components/list/directives/infinite-scroll.directive';\nexport {ListItemColorDirective as ɵcl} from './lib/components/list/directives/list-item-color.directive';\nexport {ListHelper as ɵby} from './lib/components/list/helpers/list-helper';\nexport {ListExperimentalComponent as ɵck} from './lib/components/list/list-experimental/list-experimental.component';\nexport {ListHeaderComponent as ɵcj} from './lib/components/list/list-header/list-header.component';\nexport {ListItemComponent as ɵch} from './lib/components/list/list-item/list-item.component';\nexport {ListSectionHeaderComponent as ɵci} from './lib/components/list/list-section-header/list-section-header.component';\nexport {ListComponent as ɵbx} from './lib/components/list/list.component';\nexport {ListFlexItemDirective as ɵcc,ListFooterDirective as ɵcg,ListHeaderDirective as ɵce,ListItemDirective as ɵcb,ListItemTemplateDirective as ɵcd,ListSectionHeaderDirective as ɵcf} from './lib/components/list/list.directive';\nexport {ListModule as ɵbw} from './lib/components/list/list.module';\nexport {GroupByPipe as ɵbz} from './lib/components/list/pipes/group-by.pipe';\nexport {LoadingOverlayComponent as ɵei} from './lib/components/loading-overlay/loading-overlay.component';\nexport {LoadingOverlayService as ɵfb} from './lib/components/loading-overlay/loading-overlay.service';\nexport {ActionSheetComponent as ɵdl} from './lib/components/modal/action-sheet/action-sheet.component';\nexport {AlertComponent as ɵew} from './lib/components/modal/alert/alert.component';\nexport {ModalFooterComponent as ɵdm} from './lib/components/modal/footer/modal-footer.component';\nexport {ModalCompactWrapperComponent as ɵex} from './lib/components/modal/modal-wrapper/compact/modal-compact-wrapper.component';\nexport {ModalWrapperComponent as ɵba} from './lib/components/modal/modal-wrapper/modal-wrapper.component';\nexport {ActionSheetHelper as ɵj} from './lib/components/modal/services/action-sheet.helper';\nexport {AlertHelper as ɵk} from './lib/components/modal/services/alert.helper';\nexport {ModalAnimationBuilderService as ɵg} from './lib/components/modal/services/modal-animation-builder.service';\nexport {ModalNavigationService as ɵl} from './lib/components/modal/services/modal-navigation.service';\nexport {ModalController as ɵe} from './lib/components/modal/services/modal.controller';\nexport {ModalHelper as ɵf} from './lib/components/modal/services/modal.helper';\nexport {Modal as ɵbb} from './lib/components/modal/services/modal.interfaces';\nexport {PageFooterComponent as ɵz} from './lib/components/page/page-footer/page-footer.component';\nexport {PageActionsComponent as ɵv,PageActionsDirective as ɵq,PageComponent as ɵw,PageContentComponent as ɵu,PageContentDirective as ɵr,PageProgressComponent as ɵs,PageTitleComponent as ɵt,PageTitleDirective as ɵo,PageToolbarTitleDirective as ɵp} from './lib/components/page/page.component';\nexport {PageModule as ɵn} from './lib/components/page/page.module';\nexport {PopoverComponent as ɵeg} from './lib/components/popover/popover.component';\nexport {ProgressCircleRingComponent as ɵey} from './lib/components/progress-circle/progress-circle-ring.component';\nexport {ProgressCircleComponent as ɵej} from './lib/components/progress-circle/progress-circle.component';\nexport {RadioGroupComponent as ɵdy} from './lib/components/radio/radio-group/radio-group.component';\nexport {RadioComponent as ɵdz} from './lib/components/radio/radio.component';\nexport {RangeComponent as ɵeq} from './lib/components/range/range.component';\nexport {ReorderListComponent as ɵee} from './lib/components/reorder-list/reorder-list.component';\nexport {RouterOutletComponent as ɵd} from './lib/components/router-outlet/router-outlet.component';\nexport {RouterOutletModule as ɵm} from './lib/components/router-outlet/router-outlet.module';\nexport {SectionHeaderComponent as ɵet} from './lib/components/section-header/section-header.component';\nexport {SegmentedControlComponent as ɵdo} from './lib/components/segmented-control/segmented-control.component';\nexport {ComponentLoaderDirective as ɵdg} from './lib/components/shared/component-loader.directive';\nexport {ResizeObserverFactory as ɵbi} from './lib/components/shared/resize-observer/resize-observer.factory';\nexport {ResizeObserverService as ɵbh} from './lib/components/shared/resize-observer/resize-observer.service';\nexport {SlideButtonComponent as ɵdt} from './lib/components/slide-button/slide-button.component';\nexport {SlideDirective as ɵel,SlidesComponent as ɵem} from './lib/components/slides/slides.component';\nexport {SpinnerComponent as ɵbn} from './lib/components/spinner/spinner.component';\nexport {SpinnerModule as ɵbm} from './lib/components/spinner/spinner.module';\nexport {StockChartDeprecatedComponent as ɵdd} from './lib/components/stock-chart-deprecated/stock-chart-deprecated.component';\nexport {TabButtonComponent as ɵbq} from './lib/components/tabs/tab-button/tab-button.component';\nexport {TabsComponent as ɵx} from './lib/components/tabs/tabs.component';\nexport {TabsModule as ɵbo} from './lib/components/tabs/tabs.module';\nexport {TabsService as ɵy} from './lib/components/tabs/tabs.service';\nexport {ToastController as ɵfa} from './lib/components/toast/services/toast.controller';\nexport {ToastHelper as ɵez} from './lib/components/toast/services/toast.helper';\nexport {ToggleButtonComponent as ɵbv} from './lib/components/toggle-button/toggle-button.component';\nexport {ToggleButtonModule as ɵbu} from './lib/components/toggle-button/toggle-button.module';\nexport {ToggleComponent as ɵdu} from './lib/components/toggle/toggle.component';\nexport {appInitialize as ɵfc,customElementsInitializer as ɵfd} from './lib/custom-elements-initializer';\nexport {ElementAsButtonDirective as ɵer} from './lib/directives/element-as-button/element-as-button.directive';\nexport {FitHeadingDirective as ɵbk} from './lib/directives/fit-heading/fit-heading.directive';\nexport {FitHeadingModule as ɵbj} from './lib/directives/fit-heading/fit-heading.module';\nexport {KeyHandlerDirective as ɵeu} from './lib/directives/key-handler/key-handler.directive';\nexport {ModalRouterLinkDirective as ɵdn} from './lib/directives/modal-router-link/modal-router-link.directive';\nexport {ThemeColorDirective as ɵdq} from './lib/directives/theme-color/theme-color.directive';\nexport {LineClampHelper as ɵbl} from './lib/helpers/line-clamp-helper';\nexport {PlatformService as ɵh} from './lib/helpers/platform.service';\nexport {WindowRef as ɵi} from './lib/types/window-ref';"],"names":["DesignTokenHelper","KirbyAnimation","Component","Input","EventEmitter","Output","Injectable","ModalController","of","ElementRef","ViewChild","filter","NavigationEnd","first","startWith","map","pairwise","EMPTY","Router","ActivatedRoute","InjectionToken","Subject","Injector","HostListener","Optional","Inject","IconSize","HostBinding","ButtonSize","ContentChild","NgZone","debounceTime","merge","takeUntil","RendererStyleFlags2","Renderer2","ComponentFactoryResolver","ViewChildren","IonContent","IonHeader","IonToolbar","IonTitle","RouterOutlet","AnimationController","ROUTES","IonApp","NgModule","CommonModule","IonicModule","AvatarSize","ChangeDetectionStrategy","Highcharts","chart","ChartDeprecatedType","getColor","fontSize","colorPoints","dateFormat","Directive","ViewContainerRef","_deepCopy","ColorHelper","getThemeColorHexString","valueOrDefault","CategoryScale","LinearScale","TimeScale","BarElement","LineElement","PointElement","BarController","LineController","annotationPlugin","Filler","ChartDataLabels","Tooltip","Chart","Legend","toDate","defaultOptions","formatNumber","AnnotationsModule","Highcharts.stockChart","LOCALE_ID","locale","isBefore","isAfter","capitalizeFirstLetter","format","isSameMonth","startOfMonth","startOfDay","utcToZonedTime","eachDayOfInterval","startOfWeek","endOfWeek","isSameDay","endOfMonth","differenceInDays","add","isWeekend","zonedTimeToUtc","getYear","ItemSize","HorizontalDirection","NG_VALUE_ACCESSOR","forwardRef","ChangeDetectorRef","TemplateRef","ContentChildren","IonRadio","InputSize","Inputmask","getLocaleDateFormat","FormatWidth","getLocaleNumberSymbol","NumberSymbol","DOCUMENT","IonFabButton","LoadingController","fromEvent","Pipe","IonItemSliding","IonList","ReplaySubject","IonTabs","SkipSelf","NavigationStart","IonFooter","SegmentedControlMode","ToastController","trigger","state","style","transition","animate","KirbyBadge","defineCustomElements","APP_INITIALIZER","exportedDeclarations","BadgeComponent","declarations","exports","RouterModule"],"mappings":"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"}
1
+ {"version":3,"file":"kirbydesign-designsystem.umd.js","sources":["../../../../libs/designsystem/src/lib/animation/kirby-animation.ts","../../../../libs/designsystem/src/lib/components/accordion/accordion.directive.ts","../../../../libs/designsystem/src/lib/components/icon/kirby-icon-settings.ts","../../../../node_modules/tslib/tslib.es6.js","../../../../libs/designsystem/src/lib/components/icon/icon-registry.service.ts","../../../../libs/designsystem/src/lib/components/icon/icon.component.ts","../../../../libs/designsystem/src/lib/components/icon/icon.component.html","../../../../libs/designsystem/src/lib/components/accordion/accordion-item.component.ts","../../../../libs/designsystem/src/lib/components/accordion/accordion-item.component.html","../../../../libs/designsystem/src/lib/components/router-outlet/router-outlet.component.ts","../../../../libs/designsystem/src/lib/components/router-outlet/router-outlet.component.html","../../../../libs/designsystem/src/lib/components/modal/services/modal.interfaces.ts","../../../../libs/designsystem/src/lib/components/modal/modal-wrapper/config/modal-config.helper.ts","../../../../libs/designsystem/src/lib/types/window-ref.ts","../../../../libs/designsystem/src/lib/components/modal/modal-wrapper/compact/modal-compact-wrapper.component.ts","../../../../libs/designsystem/src/lib/components/modal/modal-wrapper/compact/modal-compact-wrapper.component.html","../../../../libs/designsystem/src/lib/components/button/button.component.ts","../../../../libs/designsystem/src/lib/components/button/button.component.html","../../../../libs/designsystem/src/lib/components/shared/resize-observer/resize-observer.factory.ts","../../../../libs/designsystem/src/lib/components/shared/resize-observer/resize-observer.service.ts","../../../../libs/designsystem/src/lib/helpers/platform.service.ts","../../../../libs/designsystem/src/lib/components/modal/modal-wrapper/modal-wrapper.component.ts","../../../../libs/designsystem/src/lib/components/modal/modal-wrapper/modal-wrapper.component.html","../../../../libs/designsystem/src/lib/components/modal/services/modal-animation-builder.service.ts","../../../../libs/designsystem/src/lib/components/modal/services/modal.helper.ts","../../../../libs/designsystem/src/lib/components/card/card.component.ts","../../../../libs/designsystem/src/lib/components/card/card.component.html","../../../../libs/designsystem/src/lib/components/card/card-header/card-header.component.ts","../../../../libs/designsystem/src/lib/components/card/card-header/card-header.component.html","../../../../libs/designsystem/src/lib/components/modal/action-sheet/action-sheet.component.ts","../../../../libs/designsystem/src/lib/components/modal/action-sheet/action-sheet.component.html","../../../../libs/designsystem/src/lib/components/modal/services/action-sheet.helper.ts","../../../../libs/designsystem/src/lib/components/empty-state/empty-state.component.ts","../../../../libs/designsystem/src/lib/components/empty-state/empty-state.component.html","../../../../libs/designsystem/src/lib/directives/theme-color/theme-color.directive.ts","../../../../libs/designsystem/src/lib/components/modal/alert/alert.component.ts","../../../../libs/designsystem/src/lib/components/modal/alert/alert.component.html","../../../../libs/designsystem/src/lib/components/modal/services/alert.helper.ts","../../../../libs/designsystem/src/lib/components/modal/services/modal-navigation.service.ts","../../../../libs/designsystem/src/lib/components/modal/services/modal.controller.ts","../../../../libs/designsystem/src/lib/components/app/app.component.ts","../../../../libs/designsystem/src/lib/components/app/app.component.html","../../../../libs/designsystem/src/lib/components/app/app.module.ts","../../../../libs/designsystem/src/lib/components/avatar/avatar.component.ts","../../../../libs/designsystem/src/lib/components/avatar/avatar.component.html","../../../../libs/designsystem/src/lib/components/angular-component-lib/utils.ts","../../../../libs/designsystem/src/lib/components/web-component-proxies.component.ts","../../../../libs/designsystem/src/lib/components/card/card-footer/card-footer.component.ts","../../../../libs/designsystem/src/lib/components/card/card-footer/card-footer.component.html","../../../../libs/designsystem/src/lib/helpers/merge-deep.ts","../../../../libs/designsystem/src/lib/components/chart-deprecated/chart-deprecated-helper.ts","../../../../libs/designsystem/src/lib/components/chart-deprecated/chart-deprecated-type.ts","../../../../libs/designsystem/src/lib/components/chart-deprecated/options/activitygauge.ts","../../../../libs/designsystem/src/lib/components/chart-deprecated/options/areaspline.ts","../../../../libs/designsystem/src/lib/components/chart-deprecated/options/bar.ts","../../../../libs/designsystem/src/lib/components/chart-deprecated/options/column.ts","../../../../libs/designsystem/src/lib/components/chart-deprecated/options/donut.ts","../../../../libs/designsystem/src/lib/components/chart-deprecated/options/timeseries.ts","../../../../libs/designsystem/src/lib/components/chart-deprecated/chart-deprecated.component.ts","../../../../libs/designsystem/src/lib/components/chart/chart.types.ts","../../../../libs/designsystem/src/lib/components/shared/component-loader.directive.ts","../../../../libs/designsystem/src/lib/components/chart/chart-js/chartjs-plugin-marker/chartjs-plugin-marker.ts","../../../../libs/designsystem/src/lib/helpers/element-has-ancestor.ts","../../../../libs/designsystem/src/lib/helpers/index.ts","../../../../libs/designsystem/src/lib/components/chart/configs/shared.utils.ts","../../../../libs/designsystem/src/lib/components/chart/configs/global-defaults.config.ts","../../../../libs/designsystem/src/lib/components/chart/chart-js/configured-chart-js.ts","../../../../libs/designsystem/src/lib/helpers/deep-copy.ts","../../../../libs/designsystem/src/lib/components/chart/configs/annotations.config.ts","../../../../libs/designsystem/src/lib/components/chart/configs/interaction-functions-extensions.config.ts","../../../../libs/designsystem/src/lib/components/chart/configs/type.config.ts","../../../../libs/designsystem/src/lib/components/chart/configs/chart-config.service.ts","../../../../libs/designsystem/src/lib/components/chart/chart-js/chart-js.service.ts","../../../../libs/designsystem/src/lib/components/chart/chart.component.ts","../../../../libs/designsystem/src/lib/components/chart/chart.component.html","../../../../libs/designsystem/src/lib/components/chart/chart.module.ts","../../../../libs/designsystem/src/lib/components/stock-chart-deprecated/options/stock-chart-deprecated-options.ts","../../../../libs/designsystem/src/lib/components/stock-chart-deprecated/stock-chart-deprecated.component.ts","../../../../libs/designsystem/src/lib/components/calendar/helpers/calendar.helper.ts","../../../../libs/designsystem/src/lib/components/item/item.component.ts","../../../../libs/designsystem/src/lib/components/item/item.component.html","../../../../libs/designsystem/src/lib/components/list/list.directive.ts","../../../../libs/designsystem/src/lib/components/popover/popover.component.ts","../../../../libs/designsystem/src/lib/components/dropdown/dropdown.types.ts","../../../../libs/designsystem/src/lib/components/dropdown/keyboard-handler.service.ts","../../../../libs/designsystem/src/lib/components/dropdown/dropdown.component.ts","../../../../libs/designsystem/src/lib/components/dropdown/dropdown.component.html","../../../../libs/designsystem/src/lib/components/calendar/calendar.component.ts","../../../../libs/designsystem/src/lib/components/calendar/calendar.component.html","../../../../libs/designsystem/src/lib/components/item-sliding/item-sliding.component.ts","../../../../libs/designsystem/src/lib/components/item-sliding/item-sliding.component.html","../../../../libs/designsystem/src/lib/helpers/unique-id-generator.helper.ts","../../../../libs/designsystem/src/lib/components/checkbox/checkbox.component.ts","../../../../libs/designsystem/src/lib/components/checkbox/checkbox.component.html","../../../../libs/designsystem/src/lib/components/chip/chip.component.ts","../../../../libs/designsystem/src/lib/components/chip/chip.component.html","../../../../libs/designsystem/src/lib/components/divider/divider.component.ts","../../../../libs/designsystem/src/lib/components/divider/divider.component.html","../../../../libs/designsystem/src/lib/components/radio/radio.component.ts","../../../../libs/designsystem/src/lib/components/radio/radio.component.html","../../../../libs/designsystem/src/lib/components/radio/radio-group/radio-group.component.ts","../../../../libs/designsystem/src/lib/components/radio/radio-group/radio-group.component.html","../../../../libs/designsystem/src/lib/components/form-field/form-field-message/form-field-message.component.ts","../../../../libs/designsystem/src/lib/components/form-field/form-field-message/form-field-message.component.html","../../../../libs/designsystem/src/lib/components/form-field/input-counter/input-counter.component.ts","../../../../libs/designsystem/src/lib/components/form-field/input-counter/input-counter.component.html","../../../../libs/designsystem/src/lib/components/form-field/input/input.component.ts","../../../../libs/designsystem/src/lib/components/form-field/textarea/textarea.component.ts","../../../../libs/designsystem/src/lib/components/form-field/textarea/textarea.component.html","../../../../libs/designsystem/src/lib/components/form-field/form-field.component.ts","../../../../libs/designsystem/src/lib/components/form-field/form-field.component.html","../../../../libs/designsystem/src/lib/components/form-field/directives/date/date-input.directive.ts","../../../../libs/designsystem/src/lib/components/form-field/directives/decimal-mask/decimal-mask.directive.ts","../../../../libs/designsystem/src/lib/components/fab-sheet/fab-sheet.component.ts","../../../../libs/designsystem/src/lib/components/fab-sheet/fab-sheet.component.html","../../../../libs/designsystem/src/lib/components/flag/flag.component.ts","../../../../libs/designsystem/src/lib/scss/scss-helper.ts","../../../../libs/designsystem/src/lib/components/grid/breakpoint-helper.service.ts","../../../../libs/designsystem/src/lib/components/grid/grid.component.ts","../../../../libs/designsystem/src/lib/components/grid/grid.component.html","../../../../libs/designsystem/src/lib/components/grid/grid-card-configuration.ts","../../../../libs/designsystem/src/lib/components/icon/icon.module.ts","../../../../libs/designsystem/src/lib/components/item/label/label.component.ts","../../../../libs/designsystem/src/lib/components/item/label/label.component.html","../../../../libs/designsystem/src/lib/components/item/item.module.ts","../../../../libs/designsystem/src/lib/components/item-group/item-group.component.ts","../../../../libs/designsystem/src/lib/components/item-group/item-group.component.html","../../../../libs/designsystem/src/lib/components/spinner/spinner.component.ts","../../../../libs/designsystem/src/lib/components/spinner/spinner.component.html","../../../../libs/designsystem/src/lib/components/loading-overlay/loading-overlay.service.ts","../../../../libs/designsystem/src/lib/components/loading-overlay/loading-overlay.component.ts","../../../../libs/designsystem/src/lib/components/loading-overlay/loading-overlay.component.html","../../../../libs/designsystem/src/lib/components/list/directives/infinite-scroll.directive.ts","../../../../libs/designsystem/src/lib/components/list/helpers/list-helper.ts","../../../../libs/designsystem/src/lib/components/list/pipes/group-by.pipe.ts","../../../../libs/designsystem/src/lib/components/list/directives/list-item-color.directive.ts","../../../../libs/designsystem/src/lib/components/list/list-item/list-item.component.ts","../../../../libs/designsystem/src/lib/components/list/list-item/list-item.component.html","../../../../libs/designsystem/src/lib/components/list/list.component.ts","../../../../libs/designsystem/src/lib/components/list/list.component.html","../../../../libs/designsystem/src/lib/components/list/list-header/list-header.component.ts","../../../../libs/designsystem/src/lib/components/list/list-header/list-header.component.html","../../../../libs/designsystem/src/lib/components/list/list-section-header/list-section-header.component.ts","../../../../libs/designsystem/src/lib/components/list/list-section-header/list-section-header.component.html","../../../../libs/designsystem/src/lib/components/spinner/spinner.module.ts","../../../../libs/designsystem/src/lib/components/list/list-experimental/list-experimental.component.ts","../../../../libs/designsystem/src/lib/components/list/list-experimental/list-experimental.component.html","../../../../libs/designsystem/src/lib/components/list/list.module.ts","../../../../libs/designsystem/src/lib/components/modal/footer/modal-footer.component.ts","../../../../libs/designsystem/src/lib/components/modal/footer/modal-footer.component.html","../../../../libs/designsystem/src/lib/components/tabs/tab-button/tab-button.events.ts","../../../../libs/designsystem/src/lib/components/tabs/tabs.service.ts","../../../../libs/designsystem/src/lib/components/tabs/tabs.component.ts","../../../../libs/designsystem/src/lib/components/tabs/tabs.component.html","../../../../libs/designsystem/src/lib/helpers/line-clamp-helper.ts","../../../../libs/designsystem/src/lib/directives/fit-heading/fit-heading.directive.ts","../../../../libs/designsystem/src/lib/components/page/page.component.ts","../../../../libs/designsystem/src/lib/components/page/page.component.html","../../../../libs/designsystem/src/lib/components/page/page-footer/page-footer.component.ts","../../../../libs/designsystem/src/lib/components/page/page-footer/page-footer.component.html","../../../../libs/designsystem/src/lib/directives/fit-heading/fit-heading.module.ts","../../../../libs/designsystem/src/lib/components/page/page.module.ts","../../../../libs/designsystem/src/lib/components/range/range.component.ts","../../../../libs/designsystem/src/lib/components/range/range.component.html","../../../../libs/designsystem/src/lib/components/router-outlet/router-outlet.module.ts","../../../../libs/designsystem/src/lib/components/reorder-list/reorder-event.ts","../../../../libs/designsystem/src/lib/components/reorder-list/reorder-list.component.ts","../../../../libs/designsystem/src/lib/components/reorder-list/reorder-list.component.html","../../../../libs/designsystem/src/lib/components/section-header/section-header.component.ts","../../../../libs/designsystem/src/lib/components/section-header/section-header.component.html","../../../../libs/designsystem/src/lib/components/segmented-control/segmented-control.component.ts","../../../../libs/designsystem/src/lib/components/segmented-control/segmented-control.component.html","../../../../libs/designsystem/src/lib/components/slide-button/slide-button.component.ts","../../../../libs/designsystem/src/lib/components/slide-button/slide-button.component.html","../../../../libs/designsystem/src/lib/components/slides/slides.component.ts","../../../../libs/designsystem/src/lib/components/tabs/tab-button/tab-button.component.ts","../../../../libs/designsystem/src/lib/components/tabs/tab-button/tab-button.component.html","../../../../libs/designsystem/src/lib/components/tabs/tabs.module.ts","../../../../libs/designsystem/src/lib/components/toast/services/toast.helper.ts","../../../../libs/designsystem/src/lib/components/toast/services/toast.controller.ts","../../../../libs/designsystem/src/lib/components/toggle/toggle.component.ts","../../../../libs/designsystem/src/lib/components/toggle/toggle.component.html","../../../../libs/designsystem/src/lib/components/progress-circle/progress-circle-ring.component.ts","../../../../libs/designsystem/src/lib/components/progress-circle/progress-circle-ring.component.svg","../../../../libs/designsystem/src/lib/components/progress-circle/progress-circle.component.ts","../../../../libs/designsystem/src/lib/components/progress-circle/progress-circle.component.html","../../../../libs/designsystem/src/lib/components/toggle-button/toggle-button.component.ts","../../../../libs/designsystem/src/lib/components/toggle-button/toggle-button.component.html","../../../../libs/designsystem/src/lib/components/toggle-button/toggle-button.module.ts","../../../../libs/designsystem/src/lib/directives/key-handler/key-handler.directive.ts","../../../../libs/designsystem/src/lib/directives/element-as-button/element-as-button.directive.ts","../../../../libs/designsystem/src/lib/directives/modal-router-link/modal-router-link.directive.ts","../../../../libs/designsystem/src/lib/custom-elements-initializer.ts","../../../../libs/designsystem/src/lib/kirby.module.ts","../../../../libs/designsystem/src/kirbydesign-designsystem.ts"],"sourcesContent":["import { DesignTokenHelper } from '@kirbydesign/core';\n\nexport namespace KirbyAnimation {\n export enum Duration {\n // Duration in milliseconds\n QUICK = parseInt(DesignTokenHelper.transitionDuration('quick')),\n SHORT = parseInt(DesignTokenHelper.transitionDuration('short')),\n LONG = parseInt(DesignTokenHelper.transitionDuration('long')),\n EXTRA_LONG = parseInt(DesignTokenHelper.transitionDuration('extraLong')),\n }\n export const Easing = DesignTokenHelper.transitionEasings();\n}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[kirbyAccordion], kirby-accordion',\n exportAs: 'kirby-accordion',\n})\nexport class AccordionDirective {}\n","import { IconSettings } from './icon-settings';\n\n// tslint:disable:prettier\nexport const kirbyIconSettings: IconSettings = {\n icons: [\n { name: 'accounts-outline', svg: 'assets/kirby/icons/svg/accounts-outline.svg' },\n { name: 'accounts', svg: 'assets/kirby/icons/svg/accounts.svg' },\n { name: 'add', svg: 'assets/kirby/icons/svg/add.svg' },\n { name: 'remove', svg: 'assets/kirby/icons/svg/remove.svg' },\n { name: 'unsubscribe', svg: 'assets/kirby/icons/svg/unsubscribe.svg' },\n { name: 'arrow-back', svg: 'assets/kirby/icons/svg/arrow-back.svg' },\n { name: 'arrow-down', svg: 'assets/kirby/icons/svg/arrow-down.svg' },\n { name: 'arrow-more', svg: 'assets/kirby/icons/svg/arrow-more.svg' },\n { name: 'arrow-up', svg: 'assets/kirby/icons/svg/arrow-up.svg' },\n { name: 'attach', svg: 'assets/kirby/icons/svg/attach.svg' },\n { name: 'backspace', svg: 'assets/kirby/icons/svg/backspace.svg' },\n { name: 'calendar', svg: 'assets/kirby/icons/svg/calendar.svg' },\n { name: 'camera', svg: 'assets/kirby/icons/svg/camera.svg' },\n { name: 'checkbox-outline', svg: 'assets/kirby/icons/svg/checkbox-outline.svg' },\n { name: 'checkbox', svg: 'assets/kirby/icons/svg/checkbox.svg' },\n { name: 'checkmark-selected', svg: 'assets/kirby/icons/svg/checkmark-selected.svg' },\n { name: 'close', svg: 'assets/kirby/icons/svg/close.svg' },\n { name: 'cog', svg: 'assets/kirby/icons/svg/cog.svg' },\n { name: 'copy', svg: 'assets/kirby/icons/svg/copy.svg' },\n { name: 'flag', svg: 'assets/kirby/icons/svg/flag.svg' },\n { name: 'edit', svg: 'assets/kirby/icons/svg/edit.svg' },\n { name: 'filter', svg: 'assets/kirby/icons/svg/filter.svg' },\n { name: 'flash-off', svg: 'assets/kirby/icons/svg/flash-off.svg' },\n { name: 'flash', svg: 'assets/kirby/icons/svg/flash.svg' },\n { name: 'moneybag', svg: 'assets/kirby/icons/svg/moneybag.svg' },\n { name: 'help', svg: 'assets/kirby/icons/svg/help.svg' },\n { name: 'home', svg: 'assets/kirby/icons/svg/home.svg' },\n { name: 'inbox', svg: 'assets/kirby/icons/svg/inbox.svg' },\n { name: 'inbox-outline', svg: 'assets/kirby/icons/svg/inbox-outline.svg' },\n { name: 'information', svg: 'assets/kirby/icons/svg/information.svg' },\n { name: 'investment', svg: 'assets/kirby/icons/svg/investment.svg' },\n { name: 'kirby', svg: 'assets/kirby/icons/svg/kirby.svg' },\n { name: 'link', svg: 'assets/kirby/icons/svg/link.svg' },\n { name: 'log-out', svg: 'assets/kirby/icons/svg/log-out.svg' },\n { name: 'menu-outline', svg: 'assets/kirby/icons/svg/menu-outline.svg' },\n { name: 'menu', svg: 'assets/kirby/icons/svg/menu.svg' },\n { name: 'misc', svg: 'assets/kirby/icons/svg/misc.svg' },\n { name: 'more', svg: 'assets/kirby/icons/svg/more.svg' },\n { name: 'move', svg: 'assets/kirby/icons/svg/move.svg' },\n { name: 'payment-card', svg: 'assets/kirby/icons/svg/payment-card.svg' },\n { name: 'pension', svg: 'assets/kirby/icons/svg/pension.svg' },\n { name: 'person-outline', svg: 'assets/kirby/icons/svg/person-outline.svg' },\n { name: 'person', svg: 'assets/kirby/icons/svg/person.svg' },\n { name: 'qr', svg: 'assets/kirby/icons/svg/QR.svg' },\n { name: 'search', svg: 'assets/kirby/icons/svg/search.svg' },\n { name: 'share', svg: 'assets/kirby/icons/svg/share.svg' },\n { name: 'sort', svg: 'assets/kirby/icons/svg/sort.svg' },\n { name: 'support', svg: 'assets/kirby/icons/svg/support.svg' },\n { name: 'swap', svg: 'assets/kirby/icons/svg/swap.svg' },\n { name: 'trash', svg: 'assets/kirby/icons/svg/trash.svg' },\n { name: 'foreign-payment', svg: 'assets/kirby/icons/svg/foreign-payment.svg' },\n { name: 'clock', svg: 'assets/kirby/icons/svg/clock.svg' },\n { name: 'verify', svg: 'assets/kirby/icons/svg/verify.svg' },\n { name: 'warning', svg: 'assets/kirby/icons/svg/warning.svg' },\n { name: 'write-message', svg: 'assets/kirby/icons/svg/write-message.svg' },\n { name: 'reorder', svg: 'assets/kirby/icons/svg/reorder.svg' },\n ],\n};\n\nexport const defaultIcons = kirbyIconSettings.icons.map((icon) => icon.name);\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from) {\r\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\r\n to[j] = from[i];\r\n return to;\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","import { Injectable } from '@angular/core';\n\nimport { Icon } from './icon-settings';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class IconRegistryService {\n private iconRegistry = new Map<string, string>();\n\n public addIcon(iconName: string, svgPath: string): void {\n if (!this.iconRegistry.has(iconName)) {\n this.iconRegistry.set(iconName, svgPath);\n } else {\n console.warn(`Icon with name: \"${iconName}\" already exists`);\n }\n }\n\n public addIcons(icons: Icon[]): void {\n if (!icons) {\n console.error('Icons not defined');\n return;\n }\n icons.forEach((icon) => {\n this.addIcon(icon.name, icon.svg);\n });\n }\n\n getIcons(): Icon[] {\n return [...this.iconRegistry].map(\n (keyValPair) => ({ name: keyValPair[0], svg: keyValPair[1] } as Icon)\n );\n }\n\n getIcon(name: string): Icon {\n const svg = this.iconRegistry.get(name);\n return svg ? { name, svg } : undefined;\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n HostBinding,\n Input,\n OnChanges,\n SimpleChanges,\n} from '@angular/core';\n\nimport { IconRegistryService } from './icon-registry.service';\nimport { Icon } from './icon-settings';\nimport { kirbyIconSettings } from './kirby-icon-settings';\n\nexport enum IconSize {\n XS = 'xs',\n SM = 'sm',\n MD = 'md',\n LG = 'lg',\n}\n\n@Component({\n selector: 'kirby-icon',\n templateUrl: './icon.component.html',\n styleUrls: ['./icon.component.scss'],\n // tslint:disable-next-line: no-host-metadata-property\n host: { '[class.kirby-icon]': 'true' },\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class IconComponent implements OnChanges {\n defaultIcon: Icon = this.findIcon(kirbyIconSettings.icons, 'cog');\n private _icon = (this.icon = this.defaultIcon);\n @HostBinding('class')\n @Input()\n size: IconSize | `${IconSize}`;\n\n @Input() name: string;\n @Input() customName: string;\n\n get icon(): Icon {\n return this._icon;\n }\n\n set icon(icon: Icon) {\n // If icon are not found, set default icon\n if (!icon && (this.name || this.customName)) {\n this.warnAboutMissingIcon();\n\n icon = this.defaultIcon;\n\n // If default icon are not found\n if (!icon) {\n console.warn('Default icon was not found.');\n return;\n }\n }\n\n // Set icon if it's found\n if (icon) {\n this._icon = icon;\n }\n }\n\n private warnAboutMissingIcon(): void {\n if (this.customName) {\n console.warn(`Custom icon with name \"${this.customName}\" was not found. \n Do you have a typo in 'customName' or\n forgot to configure the custom icon through the 'IconRegistryService'?`);\n } else {\n console.warn(`Built-in icon with name \"${this.name}\" was not found. \n Do you have a typo in 'name' or\n did you mean to use a custom icon? If so, please use: \n <kirby-icon customName=\"${this.name}\"></kirby-icon>`);\n }\n }\n\n constructor(private iconRegistryService: IconRegistryService) {}\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.name && changes.name.currentValue) {\n this.icon = this.findIcon(kirbyIconSettings.icons, changes.name.currentValue);\n } else if (changes.customName && changes.customName.currentValue) {\n this.icon = this.iconRegistryService.getIcon(changes.customName.currentValue);\n }\n }\n\n private findIcon(icons, name: string): Icon {\n return icons.find((icon) => icon.name === name);\n }\n}\n","<ion-icon [src]=\"icon?.svg\"></ion-icon>\n","import { animate, state, style, transition, trigger } from '@angular/animations';\nimport { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\n// Counter for generating unique element ids\nlet uniqueId = 0;\n\n@Component({\n selector: 'kirby-accordion-item',\n templateUrl: './accordion-item.component.html',\n styleUrls: ['./accordion-item.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: [\n trigger('isExpanded', [\n state('true', style({ height: '*', visibility: 'visible' })),\n state('false', style({ height: '0px', visibility: 'hidden' })),\n transition('true <=> false', animate('0.2s')),\n ]),\n ],\n})\nexport class AccordionItemComponent {\n @Input() title: string;\n @Input() isExpanded: boolean = false;\n\n // IDs used for a11y labelling\n _titleId = `kirby-accordion-item-title-${++uniqueId}`;\n _contentId = `kirby-accordion-item-content-${uniqueId}`;\n}\n","<ng-container>\n <div\n (click)=\"isExpanded = !isExpanded\"\n class=\"header\"\n role=\"button\"\n [class.expanded]=\"isExpanded\"\n [attr.aria-expanded]=\"isExpanded\"\n [attr.aria-controls]=\"_contentId\"\n [id]=\"_titleId\"\n >\n <div class=\"title\">{{ title }}</div>\n <kirby-icon name=\"arrow-down\"></kirby-icon>\n </div>\n <div\n class=\"content\"\n role=\"region\"\n [attr.aria-labelledby]=\"_titleId\"\n [id]=\"_contentId\"\n [@isExpanded]=\"!!isExpanded\"\n >\n <div class=\"content-body\">\n <ng-content></ng-content>\n </div>\n </div>\n</ng-container>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\n@Component({\n selector: 'kirby-router-outlet',\n templateUrl: './router-outlet.component.html',\n styleUrls: ['./router-outlet.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class RouterOutletComponent {\n @Input() main: boolean;\n}\n","<ng-container *ngIf=\"main\">\n <ion-router-outlet main></ion-router-outlet>\n</ng-container>\n<ng-container *ngIf=\"!main\">\n <ion-router-outlet></ion-router-outlet>\n</ng-container>\n","import { ActivatedRoute } from '@angular/router';\n\nimport { KirbyAnimation } from '../../../animation/kirby-animation';\n\nexport interface OverlayEventDetail<T = any> {\n data?: T;\n role?: string;\n}\n\nexport interface Overlay {\n dismiss: (data?: any) => Promise<boolean>;\n onWillDismiss: Promise<OverlayEventDetail>;\n onDidDismiss: Promise<OverlayEventDetail>;\n}\n\nexport interface ModalRouteActivation {\n route: ActivatedRoute;\n isNewModal: boolean;\n}\n\nexport abstract class Modal {\n didPresent: Promise<void>;\n willClose: Promise<void>;\n close: (data?: any) => Promise<void>;\n scrollToTop: (scrollDuration?: KirbyAnimation.Duration) => void;\n scrollToBottom: (scrollDuration?: KirbyAnimation.Duration) => void;\n scrollDisabled: boolean;\n}\n","import { InjectionToken } from '@angular/core';\n\nexport const COMPONENT_PROPS = new InjectionToken<string>('componentProps');\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class WindowRef {\n get nativeWindow(): any {\n return window;\n }\n}\n","import { Component, ElementRef, HostListener, Injector, Input, OnInit } from '@angular/core';\nimport { Subject } from 'rxjs';\n\nimport { WindowRef } from '../../../../types/window-ref';\nimport { Modal } from '../../services/modal.interfaces';\nimport { ModalConfig } from '../config/modal-config';\nimport { COMPONENT_PROPS } from '../config/modal-config.helper';\n\n@Component({\n selector: 'kirby-modal-compact-wrapper',\n templateUrl: './modal-compact-wrapper.component.html',\n styleUrls: ['./modal-compact-wrapper.component.scss'],\n providers: [{ provide: Modal, useExisting: ModalCompactWrapperComponent }],\n // tslint:disable-next-line: no-host-metadata-property\n host: { '[class.ion-page]': 'false' }, //Ensure ion-page class doesn't get applied by Ionic Modal Controller\n})\nexport class ModalCompactWrapperComponent implements Modal, OnInit {\n scrollY: number = Math.abs(this.windowRef.nativeWindow.scrollY);\n scrollDisabled = false;\n @Input() config: ModalConfig;\n componentPropsInjector: Injector;\n\n private ionModalElement: HTMLIonModalElement;\n private readonly ionModalDidPresent = new Subject<void>();\n private readonly ionModalWillDismiss = new Subject<void>();\n readonly didPresent = this.ionModalDidPresent.toPromise();\n readonly willClose = this.ionModalWillDismiss.toPromise();\n\n constructor(\n private injector: Injector,\n private elementRef: ElementRef<HTMLElement>,\n private windowRef: WindowRef\n ) {}\n\n ngOnInit(): void {\n this.ionModalElement = this.elementRef.nativeElement.closest('ion-modal');\n this.listenForIonModalDidPresent();\n this.listenForIonModalWillDismiss();\n this.componentPropsInjector = Injector.create({\n providers: [{ provide: COMPONENT_PROPS, useValue: this.config.componentProps }],\n parent: this.injector,\n });\n }\n\n private listenForIonModalDidPresent() {\n if (this.ionModalElement) {\n this.ionModalElement.addEventListener('ionModalDidPresent', () => {\n this.ionModalDidPresent.next();\n this.ionModalDidPresent.complete();\n });\n }\n }\n\n private listenForIonModalWillDismiss() {\n if (this.ionModalElement) {\n this.ionModalElement.addEventListener('ionModalWillDismiss', () => {\n this.ionModalWillDismiss.next();\n this.ionModalWillDismiss.complete();\n });\n }\n }\n\n async close(data?: any): Promise<void> {\n const ionModalElement = this.elementRef.nativeElement.closest('ion-modal');\n if (ionModalElement) {\n await ionModalElement.dismiss(data);\n }\n }\n\n scrollToTop: (_?: any) => void;\n scrollToBottom: (_?: any) => void;\n\n @HostListener('window:focus')\n @HostListener('window:focusout')\n onFocusChange() {\n // This fixes an undesired scroll behaviour occurring on keyboard-tabbing backwards (with shift+tab):\n this.windowRef.nativeWindow.scrollTo({ top: this.scrollY });\n }\n}\n","<ng-container\n *ngComponentOutlet=\"config.component; injector: componentPropsInjector\"\n></ng-container>\n","import {\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n ElementRef,\n HostBinding,\n Input,\n} from '@angular/core';\n\nimport { NotificationColor } from '@kirbydesign/core';\n\nimport { IconComponent } from '../icon/icon.component';\n\nexport enum ButtonSize {\n SM = 'sm',\n MD = 'md',\n LG = 'lg',\n}\n\n@Component({\n // tslint:disable-next-line:component-selector\n selector: 'button[kirby-button],Button[kirby-button]',\n templateUrl: './button.component.html',\n styleUrls: ['./button.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ButtonComponent implements AfterContentInit {\n @HostBinding('class.attention-level1')\n isAttentionLevel1: boolean = true; // Default\n @HostBinding('class.attention-level2')\n isAttentionLevel2: boolean;\n @HostBinding('class.attention-level3')\n isAttentionLevel3: boolean;\n @HostBinding('class.attention-level4')\n isAttentionLevel4: boolean;\n @HostBinding('class.destructive')\n destructive: boolean = false; // Default\n\n @HostBinding('class.floating')\n public get isButtonFloating(): boolean {\n return this.isFloating;\n }\n\n @HostBinding('class.icon-only')\n public get isIconOnly(): boolean {\n return !!this.icon && !this.hasText;\n }\n private _isIconLeft = false;\n @HostBinding('class.icon-left')\n public get isIconLeft() {\n return this._isIconLeft;\n }\n private _isIconRight = false;\n @HostBinding('class.icon-right')\n public get isIconRight() {\n return this._isIconRight;\n }\n\n @HostBinding('class')\n get _cssClass() {\n return [this.themeColor, this.size].filter((cssClass) => !!cssClass);\n }\n\n @Input() set attentionLevel(level: '1' | '2' | '3' | '4') {\n this.isAttentionLevel1 = level === '1';\n this.isAttentionLevel2 = level === '2';\n this.isAttentionLevel3 = level === '3';\n this.isAttentionLevel4 = level === '4';\n }\n @Input() set isDestructive(state: boolean) {\n this.destructive = state;\n }\n @Input()\n themeColor: NotificationColor;\n @Input() expand: 'full' | 'block';\n @Input() isFloating: boolean = false;\n @Input()\n size: ButtonSize | `${ButtonSize}` = ButtonSize.MD;\n\n @ContentChild(IconComponent) icon: IconComponent;\n @ContentChild(IconComponent, { read: ElementRef })\n iconElementRef: ElementRef<HTMLElement>;\n private hasText = false;\n\n constructor(private elementRef: ElementRef<HTMLElement>) {}\n\n ngAfterContentInit(): void {\n this.hasText = !!this.elementRef.nativeElement.textContent;\n if (this.iconElementRef !== undefined && this.hasText) {\n this._isIconLeft =\n this.elementRef.nativeElement.firstChild === this.iconElementRef.nativeElement;\n this._isIconRight = !this._isIconLeft;\n }\n }\n}\n","<ng-content></ng-content>\n","import { Injectable } from '@angular/core';\n\nimport { ResizeObserver } from './types/resize-observer';\nimport { ResizeObserverCallback } from './types/resize-observer-callback';\n\ndeclare var ResizeObserver: {\n prototype: ResizeObserver;\n new (callback: ResizeObserverCallback): ResizeObserver;\n};\n\n/**\n * Factory that creates a new ResizeObserver and allows us to stub it out in unit tests.\n * @docs-private\n */\n@Injectable({ providedIn: 'root' })\nexport class ResizeObserverFactory {\n create(callback: ResizeObserverCallback): ResizeObserver | null {\n return typeof ResizeObserver === 'undefined' ? null : new ResizeObserver(callback);\n }\n}\n","import { ElementRef, Injectable, OnDestroy, NgZone } from '@angular/core';\n\nimport { ResizeObserver } from './types/resize-observer';\nimport { ResizeObserverEntry } from './types/resize-observer-entry';\nimport { ResizeObserverFactory } from './resize-observer.factory';\n\n@Injectable({ providedIn: 'root' })\nexport class ResizeObserverService implements OnDestroy {\n // IMPORTANT: Keeps track of the existing ResizeObserver so it can be reused for performance.\n // See: https://groups.google.com/a/chromium.org/forum/#!msg/blink-dev/z6ienONUb5A/F5-VcUZtBAAJ\n private observer: ResizeObserver | null;\n private observedElements = new WeakMap<Element, (entry: ResizeObserverEntry) => void>();\n\n constructor(private _resizeObserverFactory: ResizeObserverFactory, private zone: NgZone) {\n this.observer = this._resizeObserverFactory.create((entries) => this.handleResize(entries));\n }\n\n observe(\n elementOrRef: Element | ElementRef<Element>,\n action: (entry: ResizeObserverEntry) => void\n ): void {\n const element = elementOrRef instanceof ElementRef ? elementOrRef.nativeElement : elementOrRef;\n if (!this.observedElements.has(element)) {\n if (this.observer) {\n // IMPORTANT: Has to be run outside the Angular zone, for it to work with ResizeObserver polyfill:\n this.zone.runOutsideAngular(() => {\n this.observer.observe(element);\n });\n }\n this.observedElements.set(element, action);\n }\n }\n\n ngOnDestroy() {\n if (this.observer) {\n // IMPORTANT: Has to be run outside the Angular zone, for it to work with ResizeObserver polyfill:\n this.zone.runOutsideAngular(() => {\n this.observer.disconnect();\n });\n }\n this.observedElements = null;\n }\n\n unobserve(elementOrRef: Element | ElementRef<Element>) {\n const element = elementOrRef instanceof ElementRef ? elementOrRef.nativeElement : elementOrRef;\n if (this.observedElements.has(element)) {\n if (this.observer) {\n // IMPORTANT: Has to be run outside the Angular zone, for it to work with ResizeObserver polyfill:\n this.zone.runOutsideAngular(() => {\n this.observer.unobserve(element);\n });\n }\n this.observedElements.delete(element);\n }\n }\n\n private handleResize(entries: ResizeObserverEntry[]) {\n entries.forEach((entry) => {\n const action = this.observedElements.get(entry.target);\n if (action) {\n action(entry);\n }\n });\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { DesignTokenHelper } from '@kirbydesign/core';\n\nimport { WindowRef } from '../types/window-ref';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PlatformService {\n constructor(private windowRef: WindowRef) {}\n\n isTouch() {\n const isTouchDeviceQuery = '(pointer: coarse)'; // No check for `hover: none`, as Samsung Galaxy will return false on `hover: none` media query\n return this.windowRef.nativeWindow.matchMedia(isTouchDeviceQuery).matches;\n }\n\n isPhabletOrBigger() {\n const query = `(min-width: ${DesignTokenHelper.breakpoints.medium})`;\n return this.windowRef.nativeWindow.matchMedia(query).matches;\n }\n}\n","import {\n AfterViewInit,\n Component,\n ComponentFactoryResolver,\n ElementRef,\n HostBinding,\n HostListener,\n Injector,\n Input,\n NgZone,\n OnDestroy,\n OnInit,\n QueryList,\n Renderer2,\n RendererStyleFlags2,\n ViewChild,\n ViewChildren,\n} from '@angular/core';\nimport { ActivatedRoute, RouterOutlet } from '@angular/router';\nimport { IonContent, IonHeader, IonTitle, IonToolbar } from '@ionic/angular';\nimport { merge, Observable, Subject } from 'rxjs';\nimport { debounceTime, first, takeUntil } from 'rxjs/operators';\n\nimport { DesignTokenHelper } from '@kirbydesign/core';\n\nimport { KirbyAnimation } from '../../../animation/kirby-animation';\nimport { PlatformService } from '../../../helpers/platform.service';\nimport { WindowRef } from '../../../types/window-ref';\nimport { ButtonComponent } from '../../button/button.component';\nimport { ResizeObserverService } from '../../shared/resize-observer/resize-observer.service';\nimport { ResizeObserverEntry } from '../../shared/resize-observer/types/resize-observer-entry';\nimport { Modal } from '../services/modal.interfaces';\n\nimport { ModalConfig } from './config/modal-config';\nimport { COMPONENT_PROPS } from './config/modal-config.helper';\n\n@Component({\n selector: 'kirby-modal-wrapper',\n templateUrl: './modal-wrapper.component.html',\n styleUrls: ['./modal-wrapper.component.scss'],\n providers: [{ provide: Modal, useExisting: ModalWrapperComponent }],\n})\nexport class ModalWrapperComponent implements Modal, AfterViewInit, OnInit, OnDestroy {\n @HostBinding('class.collapsible-title')\n get _hasCollapsibleTitle() {\n return !!this.config?.collapseTitle;\n }\n\n static readonly KEYBOARD_HIDE_DELAY_IN_MS = 100;\n\n scrollY: number = Math.abs(this.windowRef.nativeWindow.scrollY);\n private readonly VIEWPORT_RESIZE_DEBOUNCE_TIME = 100;\n\n set scrollDisabled(disabled: boolean) {\n this.ionContent.scrollY = !disabled;\n }\n\n @Input() config: ModalConfig;\n componentPropsInjector: Injector;\n\n @ViewChildren(ButtonComponent, { read: ElementRef }) private toolbarButtonsQuery: QueryList<\n ElementRef<HTMLButtonElement>\n >;\n @ViewChild(IonContent, { static: true }) private ionContent: IonContent;\n @ViewChild(IonContent, { static: true, read: ElementRef })\n private ionContentElement: ElementRef<HTMLIonContentElement>;\n @ViewChild(IonHeader, { static: true, read: ElementRef })\n private ionHeaderElement: ElementRef<HTMLIonHeaderElement>;\n @ViewChild(IonToolbar, { static: true, read: ElementRef })\n private ionToolbarElement: ElementRef<HTMLIonToolbarElement>;\n @ViewChild(IonTitle, { static: true, read: ElementRef })\n private ionTitleElement: ElementRef<HTMLIonTitleElement>;\n @ViewChild(RouterOutlet, { static: true }) private routerOutlet: RouterOutlet;\n\n @ViewChild('contentTitle', { read: ElementRef })\n private contentTitle: ElementRef<HTMLElement>;\n\n private keyboardVisible = false;\n private toolbarButtons: HTMLButtonElement[] = [];\n private delayedClose = () => {};\n private delayedCloseTimeoutId;\n private initialViewportHeight: number;\n private viewportResized = false;\n private ionModalElement?: HTMLIonModalElement;\n private readonly ionModalDidPresent = new Subject<void>();\n readonly didPresent = this.ionModalDidPresent.toPromise();\n private readonly ionModalWillDismiss = new Subject<void>();\n readonly willClose = this.ionModalWillDismiss.toPromise();\n private viewportResize = new Subject<void>();\n private viewportResize$ = this.viewportResize\n .asObservable()\n .pipe(debounceTime(this.VIEWPORT_RESIZE_DEBOUNCE_TIME));\n private _mutationObserver: MutationObserver;\n private get mutationObserver(): MutationObserver {\n if (!this._mutationObserver) {\n this._mutationObserver = this.createEmbeddedElementsMutationObserver();\n }\n return this._mutationObserver;\n }\n private _intersectionObserver: IntersectionObserver;\n private get intersectionObserver(): IntersectionObserver {\n if (!this._intersectionObserver) {\n this._intersectionObserver = this.createModalWrapperIntersectionObserver();\n }\n return this._intersectionObserver;\n }\n private destroy$ = new Subject();\n\n @HostBinding('class.drawer')\n get _isDrawer() {\n return this.config.flavor === 'drawer';\n }\n\n willClose$ = this.ionModalWillDismiss.pipe(first());\n\n constructor(\n private injector: Injector,\n private elementRef: ElementRef<HTMLElement>,\n private renderer: Renderer2,\n private zone: NgZone,\n private resizeObserverService: ResizeObserverService,\n private componentFactoryResolver: ComponentFactoryResolver,\n private windowRef: WindowRef,\n private platform: PlatformService\n ) {\n this.setViewportHeight();\n this.observeViewportResize();\n }\n\n ngOnInit(): void {\n this.ionModalElement = this.elementRef.nativeElement.closest('ion-modal');\n this.initializeSizing();\n this.initializeModalRoute();\n this.listenForIonModalDidPresent();\n this.listenForIonModalWillDismiss();\n this.initializeResizeModalToModalWrapper();\n this.componentPropsInjector = Injector.create({\n providers: [{ provide: COMPONENT_PROPS, useValue: this.config.componentProps }],\n parent: this.injector,\n });\n }\n\n private initializeResizeModalToModalWrapper() {\n if (this.config.flavor === 'drawer' && this.config.interactWithBackground) {\n merge(this.ionModalDidPresent, this.viewportResize$)\n .pipe(takeUntil(this.destroy$))\n .subscribe(() => {\n // wait for template to render\n setTimeout(() => {\n const domRect = this.elementRef.nativeElement.getBoundingClientRect();\n const document = this.windowRef.nativeWindow.document.documentElement;\n const right = document.clientWidth - domRect.right;\n this.renderer.setStyle(this.ionModalElement, 'top', `${domRect.top}px`);\n this.renderer.setStyle(this.ionModalElement, 'left', `${domRect.left}px`);\n this.renderer.setStyle(this.ionModalElement, 'right', `${right}px`);\n });\n });\n }\n }\n\n private initializeSizing() {\n if (this.config.size === 'full-height') return;\n this.patchScrollElementSize();\n this.observeHeaderResize();\n this.observeModalFullHeight();\n }\n\n private initializeModalRoute() {\n if (this.config.modalRoute) {\n this.onSiblingModalRouteActivated(this.config.siblingModalRouteActivated$);\n // Load component from modal-route inside router-outlet:\n this.routerOutlet.activateWith(this.config.modalRoute, this.componentFactoryResolver);\n }\n }\n\n private onSiblingModalRouteActivated(siblingModalRouteActivated$?: Observable<ActivatedRoute>) {\n if (!siblingModalRouteActivated$) return;\n siblingModalRouteActivated$.pipe(takeUntil(this.willClose$)).subscribe((route) => {\n if (this.routerOutlet.isActivated) {\n this.mutationObserver.disconnect();\n this.routerOutlet.deactivate();\n this.clearEmbeddedElements();\n }\n this.routerOutlet.activateWith(route, this.componentFactoryResolver);\n this.checkForEmbeddedElements();\n });\n }\n\n private patchScrollElementSize(): void {\n const supportsCssShadowParts = 'part' in HTMLElement.prototype;\n if (supportsCssShadowParts) return;\n this.ionContent.getScrollElement().then((scrollElement) => {\n this.renderer.setStyle(scrollElement, 'height', '100%');\n this.renderer.setStyle(scrollElement, 'position', 'relative');\n if (this.config.flavor === 'drawer') {\n this.renderer.setStyle(\n scrollElement,\n 'transition',\n 'padding-bottom ' + DesignTokenHelper.softKeyboardTransitionLeave\n );\n }\n });\n }\n\n private observeModalFullHeight() {\n const ionModalWrapper = this.elementRef.nativeElement.closest<HTMLElement>('.modal-wrapper');\n if (!ionModalWrapper) return;\n // Start observing when modal has finished animating:\n this.didPresent.then(() => {\n this.intersectionObserver.observe(ionModalWrapper);\n });\n }\n\n ngAfterViewInit(): void {\n if (this.toolbarButtonsQuery) {\n this.toolbarButtons = this.toolbarButtonsQuery.map((buttonRef) => buttonRef.nativeElement);\n }\n this.checkForEmbeddedElements();\n }\n\n private checkForEmbeddedElements() {\n this.moveEmbeddedElements();\n this.observeEmbeddedElements();\n }\n\n private observeHeaderResize() {\n this.resizeObserverService.observe(this.ionHeaderElement.nativeElement, (entry) => {\n const [property, pixelValue] = ['--header-height', `${entry.contentRect.height}px`];\n this.setCssVar(this.elementRef.nativeElement, property, pixelValue);\n });\n }\n\n private moveEmbeddedElements() {\n const parentElement = this.getEmbeddedComponentElement();\n if (parentElement) {\n Object.entries(this.elementToParentMap).forEach(([tagName, getNewParent]) => {\n const embeddedElement = parentElement.querySelector<HTMLElement>(tagName);\n if (embeddedElement) {\n this.moveChild(embeddedElement, getNewParent());\n }\n });\n }\n }\n\n private listenForIonModalDidPresent() {\n if (this.ionModalElement) {\n this.ionModalElement.addEventListener('ionModalDidPresent', () => {\n this.ionModalDidPresent.next();\n this.ionModalDidPresent.complete();\n });\n }\n }\n\n private listenForIonModalWillDismiss() {\n if (this.ionModalElement) {\n this.ionModalElement.addEventListener('ionModalWillDismiss', () => {\n this.ionModalWillDismiss.next();\n this.ionModalWillDismiss.complete();\n });\n }\n }\n\n scrollToTop(scrollDuration?: KirbyAnimation.Duration) {\n this.ionContent.scrollToTop(scrollDuration || 0);\n }\n\n scrollToBottom(scrollDuration?: KirbyAnimation.Duration) {\n this.ionContent.scrollToBottom(scrollDuration || 0);\n }\n\n async close(data?: any): Promise<void> {\n if (!this.ionModalElement) {\n return;\n }\n if (!this.keyboardVisible || !this.viewportResized) {\n // No keyboard visible or viewport not resized:\n // Dismiss modal and return:\n clearTimeout(this.delayedCloseTimeoutId);\n await this.ionModalElement.dismiss(data);\n return;\n }\n\n // Keyboard visible:\n // Blur active element and wait for keyboard to hide,\n // then dismiss modal and return:\n this.blurActiveElement();\n return new Promise<void>((resolve) => {\n this.delayedClose = async () => {\n await this.ionModalElement.dismiss(data);\n resolve();\n };\n this.delayedCloseTimeoutId = setTimeout(\n this.delayedClose,\n ModalWrapperComponent.KEYBOARD_HIDE_DELAY_IN_MS\n );\n });\n }\n\n @HostListener('window:focus')\n @HostListener('window:focusout')\n onFocusChange() {\n // This fixes an undesired scroll behaviour occurring on keyboard-tabbing backwards (with shift+tab):\n this.windowRef.nativeWindow.scrollTo({ top: this.scrollY });\n }\n\n @HostListener('window:ionKeyboardDidShow', ['$event.detail.keyboardHeight'])\n @HostListener('window:keyboardWillShow', ['$event.keyboardHeight'])\n _onKeyboardShow(keyboardHeight: number) {\n this.setKeyboardVisibility(keyboardHeight);\n }\n\n @HostListener('window:ionKeyboardDidHide')\n @HostListener('window:keyboardWillHide')\n _onKeyboardHide() {\n this.setKeyboardVisibility(0);\n }\n\n private toggleContentMaxHeight(freeze: boolean) {\n const shouldToggleMaxHeight =\n this.config.flavor === 'modal' && this.platform.isPhabletOrBigger();\n if (!shouldToggleMaxHeight) return;\n const style = 'max-height';\n const contentElement = this.ionContentElement.nativeElement;\n this.zone.run(() => {\n if (freeze) {\n const contentHeight = contentElement.offsetHeight;\n this.renderer.setStyle(contentElement, style, `${contentHeight}px`);\n } else {\n this.renderer.removeStyle(contentElement, style);\n }\n });\n }\n\n private setKeyboardVisibility(keyboardHeight: number) {\n const keyboardAlreadyVisible = keyboardHeight > 0 && this.keyboardVisible;\n const keyboardAlreadyHidden = keyboardHeight === 0 && !this.keyboardVisible;\n if (keyboardAlreadyVisible || keyboardAlreadyHidden) return;\n this.keyboardVisible = keyboardHeight > 0;\n this.toggleContentMaxHeight(this.keyboardVisible);\n this.setKeyboardOverlap(keyboardHeight);\n }\n\n private getKeyboardOverlap(keyboardHeight: number, element: Element) {\n if (keyboardHeight <= 0 || !element) return 0;\n const distanceFromViewportBottomToElement = Math.floor(\n this.windowRef.nativeWindow.innerHeight - element.getBoundingClientRect().bottom\n );\n return Math.max(keyboardHeight - distanceFromViewportBottomToElement, 0);\n }\n\n private setCssVar(element: Element, property: string, value: string) {\n this.zone.run(() =>\n this.renderer.setStyle(element, property, value, RendererStyleFlags2.DashCase)\n );\n }\n\n private toggleCssClass(element: Element, klass: string, condition: boolean) {\n this.zone.run(() =>\n condition ? this.renderer.addClass(element, klass) : this.renderer.removeClass(element, klass)\n );\n }\n\n private setKeyboardOverlap(keyboardHeight: number) {\n this.toggleCssClass(this.elementRef.nativeElement, 'keyboard-visible', keyboardHeight > 0);\n const keyboardOverlap = this.getKeyboardOverlap(keyboardHeight, this.elementRef.nativeElement);\n let snapFooterToKeyboard = false;\n const embeddedFooterElement = this.getEmbeddedFooterElement();\n if (embeddedFooterElement) {\n this.setCssVar(embeddedFooterElement, '--keyboard-offset', `${keyboardOverlap}px`);\n snapFooterToKeyboard = embeddedFooterElement.classList.contains('snap-to-keyboard');\n }\n\n const contentElement = this.ionContentElement.nativeElement;\n const contentKeyboardOffset = snapFooterToKeyboard\n ? keyboardOverlap\n : this.getKeyboardOverlap(keyboardHeight, contentElement);\n this.setCssVar(contentElement, '--keyboard-offset', `${contentKeyboardOffset}px`);\n }\n\n onHeaderTouchStart(event: TouchEvent) {\n if (this.keyboardVisible) {\n const isToolbarButtonTouch = this.toolbarButtons.some((button) => {\n return (\n event.target instanceof HTMLElement &&\n (event.target === button || button.contains(event.target))\n );\n });\n // Prevent blur if event target is a toolbar button\n // (to allow tap event to fire):\n if (!isToolbarButtonTouch) {\n this.blurActiveElement();\n }\n }\n }\n\n @HostListener('window:resize')\n _onWindowResize() {\n this.setViewportHeight();\n }\n\n private setViewportHeight() {\n const vh = (this.windowRef.nativeWindow.innerHeight * 0.01).toFixed(2);\n this.setCssVar(this.elementRef.nativeElement, '--vh', `${vh}px`);\n }\n\n private observeViewportResize() {\n this.resizeObserverService.observe(this.windowRef.nativeWindow.document.body, (entry) =>\n this.onViewportResize(entry)\n );\n }\n\n private onViewportResize(entry: ResizeObserverEntry) {\n if (!this.initialViewportHeight) {\n // Initial observe callback, register initial height:\n this.initialViewportHeight = entry.contentRect.height;\n return;\n }\n this.viewportResized = entry.contentRect.height !== this.initialViewportHeight;\n if (!this.viewportResized) {\n // We are back to initial view port height, check for pending close func:\n if (this.delayedCloseTimeoutId) {\n clearTimeout(this.delayedCloseTimeoutId);\n this.delayedClose();\n }\n }\n this.viewportResize.next();\n }\n\n blurActiveElement() {\n const BLUR_TARGET_SELECTOR = 'input, textarea';\n if (this.keyboardVisible) {\n if (\n document.activeElement instanceof HTMLElement &&\n document.activeElement.matches(BLUR_TARGET_SELECTOR)\n ) {\n document.activeElement.blur();\n }\n }\n }\n\n private readonly elementToParentMap: { [key: string]: () => HTMLElement[] } = {\n 'KIRBY-MODAL-FOOTER': () => [this.elementRef.nativeElement],\n 'KIRBY-PAGE-TITLE': () =>\n [this.ionTitleElement.nativeElement, this.contentTitle?.nativeElement].filter(\n (element) => element !== undefined\n ),\n 'KIRBY-PAGE-PROGRESS': () => [this.ionToolbarElement.nativeElement],\n };\n\n private clearEmbeddedElements() {\n Object.entries(this.elementToParentMap).forEach(([tagName, getParents]) => {\n const newParents = getParents();\n newParents.forEach((newParent) => {\n const embeddedElement = newParent.querySelector<HTMLElement>(`:scope > ${tagName}`);\n this.removeChild(embeddedElement);\n });\n });\n }\n\n /* TODO: Rewrite to make this function independent of element order. \n See: https://github.com/kirbydesign/designsystem/issues/2096\n */\n private getEmbeddedComponentElement(): null | Element {\n const contentElementChildren = Array.from(\n this.ionContentElement.nativeElement.children\n ).reverse(); // Reverse makes it easier to retrieve the last children in the list\n\n const embeddedComponentElement = !!this.config.modalRoute\n ? contentElementChildren[0]\n : contentElementChildren[1];\n\n /* \n As ModalConfig.component has type 'any' all values are valid for component; \n explicitly handle the case where no embedded component element is found due to \n this.\n */\n if (!embeddedComponentElement) return null;\n return embeddedComponentElement;\n }\n\n private getEmbeddedFooterElement() {\n return this.elementRef.nativeElement.querySelector<HTMLElement>('kirby-modal-footer');\n }\n\n private moveChild(child: Element, newParents: Element[]) {\n this.renderer.removeChild(child.parentElement, child);\n\n newParents.forEach((newParent, index) => {\n const childToAppend = index > 0 ? child.cloneNode(true) : child;\n this.renderer.appendChild(newParent, childToAppend);\n // Append adds child as last element of parent; therefore retrieve with lastElementChild\n const childElement = newParent.lastElementChild;\n\n if (childElement.tagName === 'KIRBY-MODAL-FOOTER') {\n this.resizeObserverService.observe(childElement, (entry) => {\n const [property, pixelValue] = [\n '--footer-height',\n `${Math.floor(entry.contentRect.height)}px`,\n ];\n this.setCssVar(this.elementRef.nativeElement, property, pixelValue);\n });\n }\n });\n }\n\n private removeChild(child?: Element) {\n if (!!child) {\n this.renderer.removeChild(child.parentElement, child);\n }\n }\n\n private observeEmbeddedElements() {\n const parentElement = this.getEmbeddedComponentElement();\n if (parentElement === null) return; // Mute observe warning when parentElement is null\n\n this.mutationObserver.observe(parentElement, {\n childList: true, // Listen for addition or removal of child nodes\n });\n }\n\n private createEmbeddedElementsMutationObserver(): MutationObserver {\n const observedElements = Object.keys(this.elementToParentMap);\n const callback = (mutations: MutationRecord[]) => {\n const addedNodes = mutations\n .filter((mutation) => mutation.type === 'childList') // Filter for mutation to the tree of nodes\n .map((mutation) => {\n // Only check for addedNodes as removal is handled by the Angular renderer:\n return Array.from(mutation.addedNodes).filter((node) =>\n observedElements.includes(node.nodeName)\n );\n });\n\n const addedElements = Array.prototype\n .concat(...addedNodes)\n .filter((node): node is HTMLElement => node instanceof HTMLElement);\n\n addedElements.forEach((addedElement) => {\n const newParentElement = this.elementToParentMap[addedElement.nodeName]();\n // Move embedded element out of content and append to new parent:\n this.moveChild(addedElement, newParentElement);\n });\n };\n return new MutationObserver(callback);\n }\n\n private createModalWrapperIntersectionObserver(): IntersectionObserver {\n const callback: IntersectionObserverCallback = (entries) => {\n const entry = entries[0];\n const isTouchingViewport = entry.intersectionRatio < 1;\n if (isTouchingViewport) {\n this.renderer.addClass(entry.target, 'full-height');\n } else {\n this.renderer.removeClass(entry.target, 'full-height');\n }\n };\n\n // Set explicit viewport root if within iframe:\n const root = this.windowRef.nativeWindow.frameElement\n ? (this.windowRef.nativeWindow.document as any) // Cast to `any` as Typescript lib.d.ts doesnt support Document type yet\n : undefined;\n const options: IntersectionObserverInit = {\n rootMargin: '0px 0px -1px 0px', // `bottom: -1px` allows checking when the modal bottom is touching the viewport\n root,\n threshold: [0.99, 1],\n };\n\n return new IntersectionObserver(callback, options);\n }\n\n ngOnDestroy() {\n if (this.routerOutlet.isActivated) {\n this.routerOutlet.deactivate();\n }\n //clean up the observer\n this.mutationObserver.disconnect();\n delete this._mutationObserver;\n this.intersectionObserver.disconnect();\n delete this._intersectionObserver;\n if (this.resizeObserverService) {\n this.resizeObserverService.unobserve(this.windowRef.nativeWindow.document.body);\n this.resizeObserverService.unobserve(this.ionHeaderElement.nativeElement);\n this.resizeObserverService.unobserve(this.getEmbeddedFooterElement());\n }\n this.destroy$.next();\n this.destroy$.complete();\n }\n}\n","<ion-header (touchstart)=\"onHeaderTouchStart($event)\">\n <ion-toolbar>\n <ion-title></ion-title>\n <ion-buttons slot=\"start\" *ngIf=\"config.flavor === 'drawer'\">\n <ng-container *ngTemplateOutlet=\"closeButton; context: { icon: 'arrow-down' }\"></ng-container>\n </ion-buttons>\n <ion-buttons slot=\"end\" *ngIf=\"config.flavor === 'modal'\">\n <ng-container *ngTemplateOutlet=\"closeButton; context: { icon: 'close' }\"></ng-container>\n </ion-buttons>\n <ion-buttons slot=\"end\" *ngIf=\"config.flavor === 'drawer' && config.drawerSupplementaryAction\">\n <ng-container\n *ngTemplateOutlet=\"supplementaryButton; context: { btn: config.drawerSupplementaryAction }\"\n ></ng-container>\n </ion-buttons>\n </ion-toolbar>\n</ion-header>\n\n<ion-content [scrollEvents]=\"true\">\n <ion-header *ngIf=\"_hasCollapsibleTitle\" collapse=\"condense\">\n <ion-toolbar>\n <span class=\"kirby-text-large\" #contentTitle></span>\n </ion-toolbar>\n </ion-header>\n <ng-container\n *ngComponentOutlet=\"config.component; injector: componentPropsInjector\"\n ></ng-container>\n <router-outlet\n name=\"kirbyModalWrapperOutlet\"\n [style.visibility]=\"config.modalRoute ? 'visible' : 'hidden'\"\n ></router-outlet>\n</ion-content>\n\n<ng-template #closeButton let-icon=\"icon\">\n <button kirby-button attentionLevel=\"4\" size=\"sm\" (click)=\"close()\">\n <kirby-icon [name]=\"icon\"></kirby-icon>\n </button>\n</ng-template>\n\n<ng-template #supplementaryButton let-btn=\"btn\">\n <button kirby-button attentionLevel=\"2\" size=\"sm\" (click)=\"btn.action($event)\">\n <kirby-icon [name]=\"btn.iconName\"></kirby-icon>\n </button>\n</ng-template>\n","import { Injectable } from '@angular/core';\nimport { Animation, AnimationBuilder, AnimationController } from '@ionic/angular';\n\nimport { KirbyAnimation } from '../../../animation/kirby-animation';\nimport { PlatformService } from '../../../helpers/platform.service';\n\n@Injectable({ providedIn: 'root' })\nexport class ModalAnimationBuilderService {\n constructor(private animationCtrl: AnimationController, private platform: PlatformService) {}\n\n private readonly easingEnter = KirbyAnimation.Easing.modal.enter;\n private readonly easingLeave = KirbyAnimation.Easing.modal.exit;\n private readonly duration = KirbyAnimation.Duration.LONG;\n private readonly SwipeToCloseDefaults = {\n MIN_PRESENTING_SCALE: 0.93,\n };\n\n public enterAnimation(currentBackdrop?: HTMLIonBackdropElement): AnimationBuilder {\n return (baseEl: HTMLElement, presentingEl?: HTMLElement): Animation => {\n const backdropAnimation = this.animationCtrl\n .create()\n .addElement(baseEl.querySelector('ion-backdrop')!)\n .fromTo('opacity', 0.01, 'var(--backdrop-opacity)')\n .beforeStyles({\n 'pointer-events': 'none',\n })\n .afterClearStyles(['pointer-events']);\n\n const wrapperAnimation = this.animationCtrl\n .create()\n .addElement(baseEl.querySelectorAll('.modal-wrapper, .modal-shadow')!)\n .beforeStyles({ opacity: 1 })\n .fromTo('transform', 'translateY(100vh)', 'translateY(0vh)');\n\n const baseAnimation = this.animationCtrl\n .create()\n .addElement(baseEl)\n .easing(this.easingEnter)\n .duration(this.duration)\n .addAnimation(wrapperAnimation);\n\n let currentBackdropAnimation: Animation;\n if (currentBackdrop) {\n currentBackdropAnimation = this.animationCtrl\n .create()\n .addElement(currentBackdrop)\n .fromTo('opacity', 'var(--backdrop-opacity)', 0.01);\n }\n\n if (presentingEl) {\n const isMobile = !this.platform.isPhabletOrBigger();\n const hasCardModal =\n presentingEl.tagName === 'ION-MODAL' &&\n (presentingEl as HTMLIonModalElement).presentingElement !== undefined;\n\n const presentingAnimation = this.animationCtrl.create().beforeStyles({\n transform: 'translateY(0)',\n 'transform-origin': 'top center',\n overflow: 'hidden',\n });\n\n const bodyEl = document.body;\n\n if (isMobile) {\n /**\n * Fallback for browsers that does not support `max()` (ex: Firefox)\n * No need to worry about statusbar padding since engines like Gecko\n * are not used as the engine for standlone Cordova/Capacitor apps\n */\n const transformOffset = !CSS.supports('width', 'max(0px, 1px)')\n ? '30px'\n : 'max(30px, var(--ion-safe-area-top))';\n const modalTransform = hasCardModal ? '-10px' : transformOffset;\n const toPresentingScale = this.SwipeToCloseDefaults.MIN_PRESENTING_SCALE;\n const finalTransform = `translateY(${modalTransform}) scale(${toPresentingScale})`;\n\n presentingAnimation\n .afterStyles({\n transform: finalTransform,\n })\n .beforeAddWrite(() => bodyEl.style.setProperty('background-color', 'black'))\n .addElement(presentingEl)\n .keyframes([\n {\n offset: 0,\n filter: 'contrast(1)',\n transform: 'translateY(0px) scale(1)',\n borderRadius: '0px',\n },\n {\n offset: 1,\n filter: 'contrast(0.85)',\n transform: finalTransform,\n borderRadius: '10px 10px 0 0',\n },\n ]);\n baseAnimation.addAnimation(presentingAnimation);\n } else {\n baseAnimation.addAnimation(backdropAnimation);\n if (currentBackdropAnimation) {\n baseAnimation.addAnimation(currentBackdropAnimation);\n }\n\n if (!hasCardModal) {\n wrapperAnimation.fromTo('opacity', '0', '1');\n } else {\n const toPresentingScale = hasCardModal\n ? this.SwipeToCloseDefaults.MIN_PRESENTING_SCALE\n : 1;\n const finalTransform = `translateY(-10px) scale(${toPresentingScale})`;\n\n presentingAnimation\n .afterStyles({\n transform: finalTransform,\n })\n .addElement(presentingEl.querySelector('.modal-wrapper')!)\n .keyframes([\n { offset: 0, filter: 'contrast(1)', transform: 'translateY(0) scale(1)' },\n { offset: 1, filter: 'contrast(0.85)', transform: finalTransform },\n ]);\n\n const shadowAnimation = this.animationCtrl\n .create()\n .afterStyles({\n transform: finalTransform,\n })\n .addElement(presentingEl.querySelector('.modal-shadow')!)\n .keyframes([\n { offset: 0, opacity: '1', transform: 'translateY(0) scale(1)' },\n { offset: 1, opacity: '0', transform: finalTransform },\n ]);\n\n baseAnimation.addAnimation([presentingAnimation, shadowAnimation]);\n }\n }\n } else {\n baseAnimation.addAnimation(backdropAnimation);\n if (currentBackdropAnimation) {\n baseAnimation.addAnimation(currentBackdropAnimation);\n }\n }\n\n return baseAnimation;\n };\n }\n\n public leaveAnimation(currentBackdrop?: HTMLIonBackdropElement): AnimationBuilder {\n return (baseEl: HTMLElement, presentingEl?: HTMLElement): Animation => {\n const backdropAnimation = this.animationCtrl\n .create()\n .addElement(baseEl.querySelector('ion-backdrop')!)\n .fromTo('opacity', 'var(--backdrop-opacity)', 0.0);\n\n const wrapperAnimation = this.animationCtrl\n .create()\n .addElement(baseEl.querySelectorAll('.modal-wrapper, .modal-shadow')!)\n .beforeStyles({ opacity: 1 })\n .fromTo('transform', 'translateY(0vh)', 'translateY(100vh)');\n\n const baseAnimation = this.animationCtrl\n .create()\n .addElement(baseEl)\n .easing(this.easingLeave)\n .duration(this.duration)\n .addAnimation(wrapperAnimation);\n\n let currentBackdropAnimation: Animation;\n if (currentBackdrop) {\n currentBackdropAnimation = this.animationCtrl\n .create()\n .addElement(currentBackdrop)\n .fromTo('opacity', 0.01, 'var(--backdrop-opacity)')\n .afterStyles({ opacity: 'var(--backdrop-opacity)' }); //Ensures backdrop is reset to default opacity after swipe to close\n }\n\n if (presentingEl) {\n const isMobile = !this.platform.isPhabletOrBigger();\n const hasCardModal =\n presentingEl.tagName === 'ION-MODAL' &&\n (presentingEl as HTMLIonModalElement).presentingElement !== undefined;\n\n const presentingAnimation = this.animationCtrl\n .create()\n .beforeClearStyles(['transform'])\n .afterClearStyles(['transform'])\n .onFinish((currentStep) => {\n // only reset background color if this is the last card-style modal\n if (currentStep !== 1) {\n return;\n }\n\n presentingEl.style.setProperty('overflow', '');\n\n const numModals = Array.from(bodyEl.querySelectorAll('ion-modal')).filter(\n (m) => m.presentingElement !== undefined\n ).length;\n if (numModals <= 1) {\n bodyEl.style.setProperty('background-color', '');\n }\n });\n\n const bodyEl = document.body;\n\n if (isMobile) {\n const transformOffset = !CSS.supports('width', 'max(0px, 1px)')\n ? '30px'\n : 'max(30px, var(--ion-safe-area-top))';\n const modalTransform = hasCardModal ? '-10px' : transformOffset;\n const toPresentingScale = this.SwipeToCloseDefaults.MIN_PRESENTING_SCALE;\n const finalTransform = `translateY(${modalTransform}) scale(${toPresentingScale})`;\n\n presentingAnimation.addElement(presentingEl).keyframes([\n {\n offset: 0,\n filter: 'contrast(0.85)',\n transform: finalTransform,\n borderRadius: '10px 10px 0 0',\n },\n {\n offset: 1,\n filter: 'contrast(1)',\n transform: 'translateY(0px) scale(1)',\n borderRadius: '0px',\n },\n ]);\n\n baseAnimation.addAnimation(presentingAnimation);\n } else {\n baseAnimation.addAnimation(backdropAnimation);\n if (currentBackdropAnimation) {\n baseAnimation.addAnimation(currentBackdropAnimation);\n }\n\n if (!hasCardModal) {\n wrapperAnimation.fromTo('opacity', '1', '0');\n } else {\n const toPresentingScale = hasCardModal\n ? this.SwipeToCloseDefaults.MIN_PRESENTING_SCALE\n : 1;\n const finalTransform = `translateY(-10px) scale(${toPresentingScale})`;\n\n presentingAnimation\n .addElement(presentingEl.querySelector('.modal-wrapper')!)\n .afterStyles({\n transform: 'translate3d(0, 0, 0)',\n })\n .keyframes([\n { offset: 0, filter: 'contrast(0.85)', transform: finalTransform },\n { offset: 1, filter: 'contrast(1)', transform: 'translateY(0) scale(1)' },\n ]);\n\n const shadowAnimation = this.animationCtrl\n .create()\n .addElement(presentingEl.querySelector('.modal-shadow')!)\n .afterStyles({\n transform: 'translateY(0) scale(1)',\n })\n .keyframes([\n { offset: 0, opacity: '0', transform: finalTransform },\n { offset: 1, opacity: '1', transform: 'translateY(0) scale(1)' },\n ]);\n\n baseAnimation.addAnimation([presentingAnimation, shadowAnimation]);\n }\n }\n } else {\n baseAnimation.addAnimation(backdropAnimation);\n if (currentBackdropAnimation) {\n baseAnimation.addAnimation(currentBackdropAnimation);\n }\n }\n\n return baseAnimation;\n };\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ModalController } from '@ionic/angular';\n\nimport { KirbyAnimation } from '../../../animation/kirby-animation';\nimport { WindowRef } from '../../../types/window-ref';\nimport { ModalCompactWrapperComponent } from '../modal-wrapper/compact/modal-compact-wrapper.component';\nimport { ModalConfig, ModalFlavor, ModalSize } from '../modal-wrapper/config/modal-config';\nimport { ModalWrapperComponent } from '../modal-wrapper/modal-wrapper.component';\n\nimport { ModalAnimationBuilderService } from './modal-animation-builder.service';\nimport { Overlay } from './modal.interfaces';\n\n@Injectable()\nexport class ModalHelper {\n // TODO: Make presentingElement an instance field when\n // forRoot()/singleton services has been solved:\n private static presentingElement: HTMLElement = undefined;\n\n constructor(\n private ionicModalController: ModalController,\n private modalAnimationBuilder: ModalAnimationBuilderService,\n private windowRef: WindowRef\n ) {}\n\n public async showModalWindow(config: ModalConfig): Promise<Overlay> {\n config.flavor = config.flavor || 'modal';\n const modalPresentingElement = await this.getPresentingElement(config.flavor);\n\n let currentBackdrop: HTMLIonBackdropElement;\n const topMostModal = await this.ionicModalController.getTop();\n if (topMostModal) {\n currentBackdrop = topMostModal.querySelector<HTMLIonBackdropElement>('ion-backdrop');\n }\n\n const enterAnimation = this.modalAnimationBuilder.enterAnimation(currentBackdrop);\n const leaveAnimation = this.modalAnimationBuilder.leaveAnimation(currentBackdrop);\n\n const defaultModalSize: ModalSize = config.flavor === 'modal' ? 'medium' : null;\n const modalSize = config.size || defaultModalSize;\n const allow_scroll_class = 'allow-background-scroll';\n\n let customCssClasses = [];\n if (config.cssClass) {\n customCssClasses = Array.isArray(config.cssClass) ? config.cssClass : [config.cssClass];\n }\n\n if (config.interactWithBackground) {\n this.windowRef.nativeWindow.document.body.classList.add(allow_scroll_class);\n }\n\n const ionModal = await this.ionicModalController.create({\n component: config.flavor === 'compact' ? ModalCompactWrapperComponent : ModalWrapperComponent,\n cssClass: [\n 'kirby-overlay',\n 'kirby-modal',\n config.flavor === 'drawer' ? 'kirby-drawer' : null,\n config.flavor === 'compact' ? 'kirby-modal-compact' : null,\n 'kirby-modal-' + modalSize,\n config.interactWithBackground ? 'interact-with-background' : null,\n ...customCssClasses,\n ],\n backdropDismiss: config.flavor === 'compact' || config.interactWithBackground ? false : true,\n showBackdrop: !config.interactWithBackground,\n componentProps: { config: config },\n swipeToClose: config.flavor != 'compact',\n presentingElement: modalPresentingElement,\n keyboardClose: false,\n enterAnimation,\n leaveAnimation,\n });\n\n if (config.interactWithBackground) {\n ionModal.onDidDismiss().then(() => {\n this.windowRef.nativeWindow.document.body.classList.remove(allow_scroll_class);\n });\n }\n\n await ionModal.present();\n\n return {\n dismiss: ionModal.dismiss.bind(ionModal),\n onWillDismiss: ionModal.onWillDismiss(),\n onDidDismiss: ionModal.onDidDismiss(),\n };\n }\n\n public registerPresentingElement(element: HTMLElement) {\n ModalHelper.presentingElement = element;\n }\n\n private async getPresentingElement(flavor?: ModalFlavor) {\n let modalPresentingElement: HTMLElement = undefined;\n if (!flavor || flavor === 'modal') {\n const topMostModal = await this.ionicModalController.getTop();\n if (!topMostModal) {\n modalPresentingElement = ModalHelper.presentingElement;\n } else if (\n !topMostModal.classList.contains('kirby-drawer') &&\n !topMostModal.classList.contains('kirby-modal-compact')\n ) {\n modalPresentingElement = topMostModal;\n }\n }\n return modalPresentingElement;\n }\n\n public async scrollToTop(\n noModalRegisteredErrorMessage: string,\n duration?: KirbyAnimation.Duration\n ) {\n const modal = await this.ionicModalController.getTop();\n if (!modal || !(modal.component instanceof ModalWrapperComponent)) {\n throw new Error(noModalRegisteredErrorMessage);\n }\n modal.component.scrollToTop(duration);\n }\n\n public async scrollToBottom(\n noModalRegisteredErrorMessage: string,\n duration?: KirbyAnimation.Duration\n ) {\n const modal = await this.ionicModalController.getTop();\n if (!modal || !(modal.component instanceof ModalWrapperComponent)) {\n throw new Error(noModalRegisteredErrorMessage);\n }\n modal.component.scrollToBottom(duration);\n }\n}\n","import {\n Component,\n ElementRef,\n HostBinding,\n Input,\n OnDestroy,\n OnInit,\n Renderer2,\n} from '@angular/core';\n\nimport { ResizeObserverService } from '../shared/resize-observer/resize-observer.service';\nimport { ResizeObserverEntry } from '../shared/resize-observer/types/resize-observer-entry';\n\n@Component({\n selector: 'kirby-card',\n templateUrl: './card.component.html',\n styleUrls: ['./card.component.scss'],\n})\nexport class CardComponent implements OnInit, OnDestroy {\n @Input() title: string;\n @Input() subtitle: string;\n\n @HostBinding('style.--kirby-card-background-image')\n _backgroundImage: string;\n\n @Input()\n set backgroundImageUrl(value: string) {\n this._backgroundImage = `url('${value}')`;\n }\n\n @Input()\n hasPadding: boolean;\n\n private sizesSortedByBreakpoint = this.sortSizesByBreakpoint({\n small: 360,\n medium: 720,\n large: 1024,\n });\n\n @Input()\n set sizes(value: { [size: string]: number }) {\n if (typeof value === 'string') {\n console.error(\n 'Sizes property cannot be a string. Please ensure the size property is bound as an expression:\\n[sizes]=\"{...}\"'\n );\n }\n this.sizesSortedByBreakpoint = this.sortSizesByBreakpoint(value);\n }\n\n @HostBinding('class.flat')\n flat: boolean = false;\n @HostBinding('class.highlighted')\n highlighted: boolean = false;\n @Input() set mode(value: 'flat' | 'highlighted') {\n this.flat = value === 'flat';\n this.highlighted = value === 'highlighted';\n }\n\n constructor(\n private elementRef: ElementRef,\n private resizeObserverService: ResizeObserverService,\n private renderer: Renderer2\n ) {}\n\n ngOnInit() {\n this.resizeObserverService.observe(this.elementRef, (entry) => this.handleResize(entry));\n }\n\n ngOnDestroy() {\n this.resizeObserverService.unobserve(this.elementRef);\n }\n\n private sortSizesByBreakpoint(sizes: { [size: string]: number }): [string, number][] {\n return Object.entries(sizes).sort(this.compareSizesByBreakpoint);\n }\n\n private compareSizesByBreakpoint(a: [string, number], b: [string, number]): number {\n return a[1] > b[1] ? 1 : b[1] > a[1] ? -1 : 0;\n }\n\n private handleResize(entry: ResizeObserverEntry) {\n const sizeAttributeName = 'size';\n const smallestBreakpointName = this.sizesSortedByBreakpoint[0][0];\n const smallestBreakpointWidth = this.sizesSortedByBreakpoint[0][1];\n if (entry.contentRect.width < smallestBreakpointWidth) {\n this.renderer.setAttribute(entry.target, sizeAttributeName, `<${smallestBreakpointName}`);\n } else {\n this.sizesSortedByBreakpoint.forEach(([size, width]) => {\n if (entry.contentRect.width >= width) {\n this.renderer.setAttribute(entry.target, sizeAttributeName, size);\n }\n });\n }\n }\n}\n","<ng-content select=\"kirby-card-header\"></ng-content>\n<div class=\"content-wrapper\" [class.padding]=\"hasPadding\">\n <ng-content></ng-content>\n</div>\n<ng-content select=\"kirby-card-footer\"></ng-content>\n","import { ChangeDetectionStrategy, Component, HostBinding, Input } from '@angular/core';\n\nimport { NotificationColor } from '@kirbydesign/core';\n\nexport type CardFlagLevel = NotificationColor | 'info' | null;\n\n@Component({\n selector: 'kirby-card-header',\n templateUrl: './card-header.component.html',\n styleUrls: ['./card-header.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CardHeaderComponent {\n @Input() title: string;\n @Input() subtitle: string;\n @Input() isTitleBold: boolean;\n @HostBinding('class')\n @Input()\n flagged: CardFlagLevel = null;\n}\n","<header>\n <h2 *ngIf=\"title\" [class.bold]=\"isTitleBold\">{{ title }}</h2>\n <h4 *ngIf=\"subtitle\">{{ subtitle }}</h4>\n <ng-content></ng-content>\n</header>\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\n\nimport { ActionSheetItem } from './config/action-sheet-item';\n\n@Component({\n selector: 'kirby-action-sheet',\n templateUrl: './action-sheet.component.html',\n styleUrls: ['./action-sheet.component.scss'],\n})\nexport class ActionSheetComponent {\n @Input() cancelButtonText = 'Cancel';\n @Input() hideCancel: boolean = false;\n @Input() disabled: boolean = false;\n @Input() header: string;\n @Input() subheader: string;\n @Input() items: Array<ActionSheetItem>;\n @Output() cancel = new EventEmitter();\n @Output() itemSelect: EventEmitter<ActionSheetItem> = new EventEmitter<ActionSheetItem>();\n\n onItemSelect(selection: ActionSheetItem) {\n this.itemSelect.emit(selection);\n }\n\n onCancel() {\n this.cancel.emit();\n }\n}\n","<kirby-card>\n <kirby-card-header *ngIf=\"header\" [title]=\"header\" [isTitleBold]=\"true\" [subtitle]=\"subheader\">\n </kirby-card-header>\n <button\n kirby-button\n expand=\"block\"\n size=\"lg\"\n attentionLevel=\"4\"\n (click)=\"onItemSelect(item)\"\n *ngFor=\"let item of items\"\n >\n {{ item.text }}\n </button>\n</kirby-card>\n<button\n *ngIf=\"!hideCancel\"\n kirby-button\n class=\"cancel-btn\"\n size=\"lg\"\n attentionLevel=\"2\"\n (click)=\"onCancel()\"\n>\n {{ cancelButtonText }}\n</button>\n","import { EventEmitter, Injectable } from '@angular/core';\nimport { ModalController } from '@ionic/angular';\nimport { Subscription } from 'rxjs';\n\nimport { ActionSheetComponent } from '../action-sheet/action-sheet.component';\nimport { ActionSheetConfig } from '../action-sheet/config/action-sheet-config';\nimport { ActionSheetItem } from '../action-sheet/config/action-sheet-item';\n\nimport { Overlay } from './modal.interfaces';\n\n@Injectable()\nexport class ActionSheetHelper {\n constructor(private ionicModalController: ModalController) {}\n\n public async showActionSheet(config: ActionSheetConfig): Promise<Overlay> {\n const cancel = new EventEmitter();\n const itemSelect = new EventEmitter<ActionSheetItem>();\n\n const ionModal = await this.ionicModalController.create({\n component: ActionSheetComponent,\n cssClass: ['kirby-overlay', 'kirby-action-sheet'],\n componentProps: {\n ...config,\n cancel: cancel,\n itemSelect: itemSelect,\n },\n backdropDismiss: true,\n });\n\n const cancelSubscription: Subscription = cancel.subscribe(() => ionModal.dismiss());\n const itemSelectSubscription: Subscription = itemSelect.subscribe((item) =>\n ionModal.dismiss(item)\n );\n const onDidDismiss = ionModal.onDidDismiss();\n onDidDismiss.then((_) => {\n cancelSubscription.unsubscribe();\n itemSelectSubscription.unsubscribe();\n });\n\n await ionModal.present();\n return {\n dismiss: ionModal.dismiss.bind(ionModal),\n onWillDismiss: ionModal.onWillDismiss(),\n onDidDismiss: ionModal.onDidDismiss(),\n };\n }\n}\n","import {\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n Input,\n QueryList,\n} from '@angular/core';\n\nimport { ButtonComponent } from '../button/button.component';\n\n@Component({\n selector: 'kirby-empty-state',\n templateUrl: './empty-state.component.html',\n styleUrls: ['./empty-state.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class EmptyStateComponent implements AfterContentInit {\n @Input() iconName: string;\n @Input() customIconName: string;\n @Input() title: string;\n @Input() subtitle: string;\n\n @ContentChildren(ButtonComponent)\n private slottedButtons: QueryList<ButtonComponent>;\n\n ngAfterContentInit() {\n this.enforceAttentionLevelRules();\n\n /* setTimeout prevents ExpressionChangedAfterItHasBeenCheckedError when changing attention \n levels of slotted buttons in this.enforceAttentionLevelRules */\n this.slottedButtons.changes.subscribe(() => {\n setTimeout(() => this.enforceAttentionLevelRules());\n });\n }\n\n /** Enforces that all slotted buttons will have their attention\n * level set to 3, except the first button if it has\n * level 1.\n */\n private enforceAttentionLevelRules() {\n this.slottedButtons.forEach((button, index) => {\n if (index === 0 && button.isAttentionLevel1) return;\n\n if (!button.isAttentionLevel3) {\n button.attentionLevel = '3';\n }\n });\n }\n}\n","<article>\n <div *ngIf=\"iconName || customIconName\" class=\"icon-outline\">\n <kirby-icon [name]=\"iconName\" [customName]=\"customIconName\" size=\"lg\"></kirby-icon>\n </div>\n <h3 *ngIf=\"title\" class=\"title\">{{ title }}</h3>\n <p *ngIf=\"subtitle\" class=\"subtitle\">{{ subtitle }}</p>\n <div class=\"content\">\n <ng-content></ng-content>\n </div>\n</article>\n","import { Directive, HostBinding, Input } from '@angular/core';\n\nimport { ColorHelper } from '@kirbydesign/core';\nimport { ThemeColor } from '@kirbydesign/core';\n\n@Directive({\n // tslint:disable-next-line:directive-selector\n selector: `kirby-avatar[themeColor],\n kirby-card[themeColor],\n kirby-icon[themeColor],\n kirby-progress-circle-ring[themeColor],\n kirby-modal-footer[themeColor],\n kirby-empty-state[themeColor]`,\n})\nexport class ThemeColorDirective {\n private _isDefault = true;\n @HostBinding('class.default')\n get isDefault() {\n return this._isDefault;\n }\n\n private _isPrimary: boolean;\n @HostBinding('class.primary')\n get isPrimary() {\n return this._isPrimary;\n }\n\n private _isSecondary: boolean;\n @HostBinding('class.secondary')\n get isSecondary() {\n return this._isSecondary;\n }\n\n private _isTertiary: boolean;\n @HostBinding('class.tertiary')\n get isTertiary() {\n return this._isTertiary;\n }\n\n private _isSuccess: boolean;\n @HostBinding('class.success')\n get isSuccess() {\n return this._isSuccess;\n }\n\n private _isWarning: boolean;\n @HostBinding('class.warning')\n get isWarning() {\n return this._isWarning;\n }\n\n private _isDanger: boolean;\n @HostBinding('class.danger')\n get isDanger() {\n return this._isDanger;\n }\n\n private _isLight: boolean;\n @HostBinding('class.light')\n get isLight() {\n return this._isLight;\n }\n\n private _isMedium: boolean;\n @HostBinding('class.medium')\n get isMedium() {\n return this._isMedium;\n }\n\n private _isDark: boolean;\n @HostBinding('class.dark')\n get isDark() {\n return this._isDark;\n }\n\n private _isWhite: boolean;\n @HostBinding('class.white')\n get isWhite() {\n return this._isWhite;\n }\n\n private _isBrightnessWhite: boolean;\n @HostBinding('class.kirby-color-brightness-white')\n get isBrightnessWhite() {\n return this._isBrightnessWhite;\n }\n\n private _isBrightnessLight: boolean;\n @HostBinding('class.kirby-color-brightness-light')\n get isBrightnessLight() {\n return this._isBrightnessLight;\n }\n\n private _isBrightnessDark: boolean;\n @HostBinding('class.kirby-color-brightness-dark')\n get isBrightnessDark() {\n return this._isBrightnessDark;\n }\n\n @Input() set themeColor(value: ThemeColor) {\n this._isDefault = !value;\n this._isPrimary = value === 'primary';\n this._isSecondary = value === 'secondary';\n this._isTertiary = value === 'tertiary';\n this._isSuccess = value === 'success';\n this._isWarning = value === 'warning';\n this._isDanger = value === 'danger';\n this._isLight = value === 'light';\n this._isMedium = value === 'medium';\n this._isDark = value === 'dark';\n this._isWhite = value === 'white';\n const colorBrightness = ColorHelper.getColorBrightness(value);\n this._isBrightnessWhite = colorBrightness === 'white';\n this._isBrightnessLight = colorBrightness === 'light';\n this._isBrightnessDark = colorBrightness === 'dark';\n }\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n Input,\n ViewChild,\n} from '@angular/core';\nimport { Observable, of } from 'rxjs';\n\nimport { WindowRef } from '../../../types/window-ref';\n\n@Component({\n selector: 'kirby-alert',\n templateUrl: './alert.component.html',\n styleUrls: ['./alert.component.scss'],\n // tslint:disable-next-line: no-host-metadata-property\n host: { '[class.ion-page]': 'false' }, //Ensure ion-page class doesn't get applied by Ionic Modal Controller\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AlertComponent implements AfterViewInit {\n readonly BLUR_WRAPPER_DELAY_IN_MS = 50;\n @ViewChild('alertWrapper', { static: true }) private alertWrapper: ElementRef;\n private scrollY: number = Math.abs(this.windowRef.nativeWindow.scrollY);\n\n title$: Observable<string>;\n @Input()\n set title(title: string | Observable<string>) {\n this.title$ = typeof title === 'string' ? of(title) : title;\n }\n\n message$: Observable<string>;\n @Input()\n set message(message: string & Observable<string>) {\n this.message$ = typeof message === 'string' ? of(message) : message;\n }\n\n @Input() iconName: string;\n @Input() iconThemeColor: string;\n @Input() okBtn: string;\n @Input() okBtnIsDestructive: boolean;\n @Input() cancelBtn: string;\n\n constructor(private elementRef: ElementRef<HTMLElement>, private windowRef: WindowRef) {}\n\n ngAfterViewInit(): void {\n setTimeout(() => {\n this.alertWrapper.nativeElement.focus();\n this.alertWrapper.nativeElement.blur();\n }, this.BLUR_WRAPPER_DELAY_IN_MS);\n }\n\n onFocusChange() {\n // This fixes an undesired scroll behaviour occurring on keyboard-tabbing\n this.windowRef.nativeWindow.scrollTo({ top: this.scrollY });\n }\n\n onCancel() {\n const ionModalElement = this.elementRef.nativeElement.closest('ion-modal');\n ionModalElement && ionModalElement.dismiss(false);\n }\n\n onOk() {\n const ionModalElement = this.elementRef.nativeElement.closest('ion-modal');\n ionModalElement && ionModalElement.dismiss(true);\n }\n}\n","<article #alertWrapper>\n <kirby-empty-state\n [iconName]=\"iconName\"\n [themeColor]=\"iconThemeColor\"\n [title]=\"title$ | async\"\n [subtitle]=\"message$ | async\"\n ></kirby-empty-state>\n <div class=\"buttongroup\">\n <button\n kirby-button\n *ngIf=\"cancelBtn\"\n attentionLevel=\"3\"\n class=\"cancel-btn\"\n (click)=\"onCancel()\"\n >\n {{ cancelBtn }}\n </button>\n <button\n kirby-button\n [size]=\"cancelBtn ? null : 'lg'\"\n attentionLevel=\"1\"\n class=\"ok-btn\"\n [isDestructive]=\"okBtnIsDestructive\"\n (click)=\"onOk()\"\n >\n {{ okBtn }}\n </button>\n </div>\n</article>\n","import { Injectable } from '@angular/core';\nimport { ModalController } from '@ionic/angular';\n\nimport { AlertComponent } from '../alert/alert.component';\nimport { AlertConfig } from '../alert/config/alert-config';\n\nimport { Overlay } from './modal.interfaces';\n\n@Injectable()\nexport class AlertHelper {\n constructor(private ionicModalController: ModalController) {}\n\n public async showAlert(config: AlertConfig): Promise<Overlay> {\n const ionModal = await this.ionicModalController.create({\n component: AlertComponent,\n componentProps: this.getComponentProps(config),\n cssClass: ['kirby-overlay', 'kirby-alert'],\n mode: 'ios',\n backdropDismiss: false,\n });\n\n await ionModal.present();\n return {\n dismiss: ionModal.dismiss.bind(ionModal),\n onWillDismiss: ionModal.onWillDismiss(),\n onDidDismiss: ionModal.onDidDismiss(),\n };\n }\n\n private getComponentProps(config: AlertConfig) {\n return {\n ...config,\n okBtn: this.getOkBtn(config),\n cancelBtn: config.cancelBtn,\n okBtnIsDestructive: this.getOkBtnIsDestructive(config),\n iconName: config.icon && config.icon.name,\n iconThemeColor: config.icon && config.icon.themeColor,\n };\n }\n\n private getOkBtn(config: AlertConfig) {\n let text: string;\n\n if (config.okBtn) {\n if (typeof config.okBtn === 'string') {\n text = config.okBtn;\n } else {\n text = config.okBtn.text;\n }\n }\n return text;\n }\n\n getOkBtnIsDestructive(config) {\n return typeof config.okBtn === 'object' ? config.okBtn.isDestructive : undefined;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ActivatedRoute, NavigationEnd, Params, Route, Router, Routes } from '@angular/router';\nimport { EMPTY, Observable } from 'rxjs';\nimport { filter, first, map, pairwise, startWith } from 'rxjs/operators';\n\nimport { ModalRouteActivation } from './modal.interfaces';\n\n@Injectable({ providedIn: 'root' })\nexport class ModalNavigationService {\n constructor(private router: Router, private route: ActivatedRoute) {}\n\n isModalRoute(url: string): boolean {\n return url.includes('(modal:');\n }\n\n private getCurrentActivatedRoute(): ActivatedRoute {\n let childRoute = this.route.root;\n while (childRoute.firstChild) {\n childRoute = childRoute.firstChild;\n }\n return childRoute;\n }\n\n private async getModalRoutes(\n routeConfig: Routes[],\n moduleRootRoutePath?: string\n ): Promise<string[]> {\n const flattenedRoutes: Routes = [].concat(...routeConfig);\n let modalRoutes: string[] = [];\n const moduleRootPaths = await this.getModuleRootPath(flattenedRoutes, moduleRootRoutePath);\n if (moduleRootPaths) {\n modalRoutes = this.getModalRoutePaths(flattenedRoutes, moduleRootPaths);\n }\n return modalRoutes;\n }\n\n private async getModuleRootPath(routes: Routes, moduleRootRoutePath?: string): Promise<string[]> {\n if (moduleRootRoutePath) {\n const trimmedPaths = moduleRootRoutePath\n .trim()\n .split('/')\n .filter((path) => !!path);\n const rootPath = [''];\n return rootPath.concat(trimmedPaths);\n }\n\n const currentRoutePaths = await this.getCurrentRoutePaths();\n const moduleRootPaths = this.getRoutePathsWithoutChildSegments(currentRoutePaths, routes);\n return moduleRootPaths;\n }\n\n private async getCurrentRoutePaths(): Promise<string[]> {\n const rootPath = [''];\n const currentNavigation = this.router.getCurrentNavigation();\n\n if (!this.router.navigated && !currentNavigation) {\n // If router hasn't navigated yet and we are not in the middle of navigating, assume root:\n return rootPath;\n }\n\n if (currentNavigation) {\n // Wait for current navigation to finish:\n await this.navigationEndListener$.pipe(first()).toPromise();\n }\n\n let childRoute = this.route.snapshot.root;\n while (childRoute.firstChild) {\n childRoute = childRoute.firstChild;\n }\n const currentBackdropRoutePath = childRoute.pathFromRoot.filter(\n (route) => route.outlet !== 'modal'\n );\n\n return rootPath.concat(\n ...currentBackdropRoutePath.map((route) =>\n route.url.filter((segment) => !!segment.path).map((segment) => segment.path)\n )\n );\n }\n\n private getRoutePathsWithoutChildSegments(routePaths: string[], routes: Routes): string[] {\n if (!routePaths.length) return routePaths;\n\n const matchedChildRoute = this.findChildRouteForUrl(routePaths.join('/'), routes);\n\n if (!matchedChildRoute) return routePaths;\n\n const startSlashRegex = /^\\//;\n const relativeChildRoute = matchedChildRoute.replace(startSlashRegex, '');\n const childSegmentCount = relativeChildRoute.split('/').length;\n const routePathsWithoutChildSegments = routePaths.slice(0, -childSegmentCount); // Remove child segments from end of route path array\n return routePathsWithoutChildSegments;\n }\n\n private findChildRouteForUrl(url: string, routes: Routes) {\n const moduleRelativePaths = this.getRoutePaths(routes, ['']).sort().reverse(); // Ensure child paths are evaluated first\n let matchedChildRoute = moduleRelativePaths.find((path) => url.endsWith(path));\n if (!matchedChildRoute) {\n // No static child route found matching current route - look for child route with url params:\n const exactMatch = false;\n matchedChildRoute = moduleRelativePaths.find(\n (path) =>\n path.includes('/:') && this.pathContainsChildRouteWithUrlParams(url, path, exactMatch)\n );\n }\n return matchedChildRoute;\n }\n\n private pathContainsChildRouteWithUrlParams(\n path: string,\n childRouteWithUrlParams: string,\n exactMatch: boolean\n ) {\n const pathSegments = path.split('/');\n const startSlashRegex = /^\\//;\n let childRouteToMatch = childRouteWithUrlParams;\n if (!exactMatch) {\n const relativeChildRoute = childRouteWithUrlParams.replace(startSlashRegex, '');\n childRouteToMatch = relativeChildRoute;\n }\n const childRouteSegments = childRouteToMatch.split('/');\n // Match each child route segment against url\n // Match backwards from end to start of child route, i.e. \"url ends with child route\":\n const pathContainsChildRoute = childRouteSegments.reverse().every((childRouteSegment) => {\n const pathSegment = pathSegments.pop();\n // url params (e.g. `/:id/`) are treated as a match:\n return childRouteSegment.startsWith(':') || childRouteSegment === pathSegment;\n });\n if (exactMatch) {\n // Only match if we've reached the start of the url to match against:\n return pathSegments.length === 0 && pathContainsChildRoute;\n }\n return pathContainsChildRoute;\n }\n\n private getRoutePaths(routes: Routes, parentPath: string[]): string[] {\n return Array.isArray(routes)\n ? ([] as string[]).concat(...routes.map((route) => this.getRoutePath(route, parentPath)))\n : [];\n }\n\n private getRoutePath(route: Route, parentPath: string[]): string[] {\n const routes: string[] = [];\n if (!!route.outlet) return routes; // Don't return relative paths for outlet routes\n\n const currentPath = [...parentPath];\n if (!!route.path) {\n currentPath.push(route.path);\n routes.push(currentPath.join('/'));\n }\n\n return routes.concat(this.getRoutePaths(route.children, currentPath));\n }\n\n private getModalRoutePath(route: Route, parentPath: string[]): string[] {\n const modalOutletName = 'modal';\n if (!!route.path && route.outlet === modalOutletName) {\n const modalOutletPath = `(${modalOutletName}:${route.path})`;\n const modalRoutePath = [...parentPath, modalOutletPath].join('/');\n return [modalRoutePath];\n }\n const currentPath = [...parentPath];\n if (!!route.path) {\n currentPath.push(route.path);\n }\n return ([] as string[]).concat(...this.getModalRoutePaths(route.children, currentPath));\n }\n\n private getModalRoutePaths(routes: Routes, parentPath: string[]): string[] {\n return Array.isArray(routes)\n ? ([] as string[]).concat(...routes.map((route) => this.getModalRoutePath(route, parentPath)))\n : [];\n }\n\n private isNewModalWindow(navigationEnd: NavigationEnd): boolean {\n const currentNavigation = this.router.getCurrentNavigation();\n if (!currentNavigation || !currentNavigation.previousNavigation) {\n return true;\n }\n const previousRoutePath = (\n currentNavigation.previousNavigation.finalUrl ||\n currentNavigation.previousNavigation.extractedUrl\n ).toString();\n const wasModalRoute = this.isModalRoute(previousRoutePath);\n const isModalRoute = this.isModalRoute(navigationEnd.urlAfterRedirects);\n if (!wasModalRoute && isModalRoute) {\n return true;\n }\n\n const currentModalRouteParent = navigationEnd.urlAfterRedirects.split('/(modal:')[0];\n const previousModalRouteParent = previousRoutePath.split('/(modal:')[0];\n\n return previousModalRouteParent !== currentModalRouteParent;\n }\n\n private navigationEndListener$ = this.router.events.pipe(\n filter((event): event is NavigationEnd => event instanceof NavigationEnd)\n );\n\n private async waitForCurrentThenGetNavigationEndStream(): Promise<Observable<NavigationEnd>> {\n if (this.router.getCurrentNavigation()) {\n const currentNavigationEnd = await this.navigationEndListener$.pipe(first()).toPromise();\n return this.navigationEndListener$.pipe(startWith(currentNavigationEnd));\n }\n return this.navigationEndListener$;\n }\n\n private modalRouteActivatedFor(\n navigationEnd$: Observable<NavigationEnd>,\n modalRouteSet: Set<string>,\n modalRoutesContainsUrlParams: boolean\n ): Observable<ModalRouteActivation> {\n return navigationEnd$.pipe(\n filter((navigationEnd) =>\n this.modalRouteSetContainsPath(modalRouteSet, navigationEnd, modalRoutesContainsUrlParams)\n ),\n map((navigationEnd) => ({\n route: this.getCurrentActivatedRoute(),\n isNewModal: this.isNewModalWindow(navigationEnd),\n }))\n );\n }\n\n private modalRouteDeactivatedFor(\n navigationEnd$: Observable<NavigationEnd>,\n modalRouteSet: Set<string>,\n modalRoutesContainsUrlParams: boolean\n ): Observable<boolean> {\n return navigationEnd$.pipe(\n pairwise(),\n filter(([prevNavigation, _]) =>\n this.modalRouteSetContainsPath(modalRouteSet, prevNavigation, modalRoutesContainsUrlParams)\n ), // Only emit if previous route was modal\n map(([_, currentNavigation]) => {\n const isNewModalRoute = this.isModalRoute(currentNavigation.urlAfterRedirects);\n // Deactivate modal route if new route is NOT modal OR is outside current parent route:\n return !isNewModalRoute || this.isNewModalWindow(currentNavigation);\n }),\n filter((isDeactivation) => isDeactivation)\n );\n }\n\n private modalRouteSetContainsPath(\n modalRouteSet: Set<string>,\n navigationEnd: NavigationEnd,\n modalRoutesContainsUrlParams: boolean\n ) {\n const pathname = navigationEnd.urlAfterRedirects.split('?')[0];\n let hasRoute = modalRouteSet.has(pathname);\n if (!hasRoute && modalRoutesContainsUrlParams) {\n // Use `for ... of` instead of `forEach` so we can break out of the loop if route is found:\n for (let route of modalRouteSet) {\n const exactMatch = true;\n const routeMatchesPath = this.pathContainsChildRouteWithUrlParams(\n pathname,\n route,\n exactMatch\n );\n if (routeMatchesPath) {\n hasRoute = true;\n break;\n }\n }\n }\n return hasRoute;\n }\n\n async getModalNavigation(\n routeConfig: Routes[],\n moduleRootRoutePath?: string\n ): Promise<{ activated$: Observable<ModalRouteActivation>; deactivated$: Observable<boolean> }> {\n if (Array.isArray(routeConfig)) {\n const navigationEnd$ = await this.waitForCurrentThenGetNavigationEndStream();\n const modalRoutes = await this.getModalRoutes(routeConfig, moduleRootRoutePath);\n const hasModalRoutes = modalRoutes.length > 0;\n if (hasModalRoutes) {\n const modalRoutesContainsUrlParams = modalRoutes.some((route) => route.includes('/:'));\n const modalRouteSet = new Set(modalRoutes);\n const activated$ = this.modalRouteActivatedFor(\n navigationEnd$,\n modalRouteSet,\n modalRoutesContainsUrlParams\n );\n const deactivated$ = this.modalRouteDeactivatedFor(\n navigationEnd$,\n modalRouteSet,\n modalRoutesContainsUrlParams\n );\n return { activated$, deactivated$ };\n }\n }\n return { activated$: EMPTY, deactivated$: EMPTY };\n }\n\n async navigateToModal(path: string | string[], queryParams?: Params): Promise<boolean> {\n const commands = Array.isArray(path) ? path : path.split('/');\n const childPath = commands.pop();\n const result = await this.router.navigate([...commands, { outlets: { modal: [childPath] } }], {\n queryParams,\n relativeTo: this.getCurrentActivatedRoute(),\n });\n return result;\n }\n\n async navigateWithinModal(relativePath: string, queryParams?: Params): Promise<boolean> {\n return this.router.navigate([relativePath], {\n queryParams,\n relativeTo: this.getCurrentActivatedRoute(),\n });\n }\n\n async navigateOutOfModalOutlet(): Promise<boolean> {\n let result = Promise.resolve(true);\n const currentActivatedRoute = this.getCurrentActivatedRoute();\n if (currentActivatedRoute.outlet === 'modal') {\n const parentRoute = this.getBackdropRoute(currentActivatedRoute);\n result = this.router.navigate(['./'], {\n relativeTo: parentRoute,\n });\n }\n return result;\n }\n\n private getBackdropRoute(currentActivatedRoute: ActivatedRoute) {\n let parentRoute = currentActivatedRoute.parent;\n while (parentRoute && !parentRoute.component && !!parentRoute.parent) {\n parentRoute = parentRoute.parent;\n }\n return parentRoute;\n }\n}\n","import { Inject, Injectable, OnDestroy, Optional } from '@angular/core';\nimport { ActivatedRoute, Params, Routes, ROUTES } from '@angular/router';\nimport { Observable, Subject } from 'rxjs';\nimport { filter, map, takeUntil } from 'rxjs/operators';\n\nimport { KirbyAnimation } from '../../../animation/kirby-animation';\nimport { ActionSheetConfig } from '../action-sheet/config/action-sheet-config';\nimport { AlertConfig } from '../alert/config/alert-config';\nimport { ModalConfig } from '../modal-wrapper/config/modal-config';\n\nimport { ActionSheetHelper } from './action-sheet.helper';\nimport { AlertHelper } from './alert.helper';\nimport { ModalNavigationService } from './modal-navigation.service';\nimport { ModalHelper } from './modal.helper';\nimport { ModalRouteActivation, Overlay } from './modal.interfaces';\n\n@Injectable()\nexport class ModalController implements OnDestroy {\n private overlays: Overlay[] = [];\n private readonly noOverlayRegisteredErrorMessage = 'No modal overlays are currently registered';\n private destroy$ = new Subject<void>();\n\n constructor(\n private modalHelper: ModalHelper,\n private actionSheetHelper: ActionSheetHelper,\n private alertHelper: AlertHelper,\n private modalNavigationService: ModalNavigationService,\n @Optional() @Inject(ROUTES) private routeConfig: Routes[]\n ) {}\n\n async initialize(moduleRootRoutePath?: string) {\n const modalNavigation = await this.modalNavigationService.getModalNavigation(\n this.routeConfig,\n moduleRootRoutePath\n );\n this.onModalRouteActivated(modalNavigation.activated$);\n this.onModalRouteDeactivated(modalNavigation.deactivated$); // TODO: Do we want to close modal when routing out of modal route? Or should the code that navigates close the window??\n }\n\n private onModalRouteActivated(modalRouteActivated$: Observable<ModalRouteActivation>) {\n const navigateOnWillClose = () => {\n this.modalNavigationService.navigateOutOfModalOutlet();\n };\n const siblingModalRouteActivated$ = modalRouteActivated$.pipe(\n filter((modalRouteActivation) => !modalRouteActivation.isNewModal),\n map((modalRouteActivation) => modalRouteActivation.route)\n );\n\n modalRouteActivated$\n .pipe(\n takeUntil(this.destroy$),\n filter(() => this.overlays.length === 0)\n )\n .subscribe(async (modalRouteActivation) => {\n if (modalRouteActivation.isNewModal) {\n await this.showModalRoute(\n modalRouteActivation.route,\n siblingModalRouteActivated$,\n navigateOnWillClose\n );\n }\n });\n }\n\n private onModalRouteDeactivated(modalRouteDeactivated$: Observable<boolean>) {\n modalRouteDeactivated$\n .pipe(\n takeUntil(this.destroy$),\n filter(() => this.overlays.length > 0) // TODO: This also fires when closing overlay - should we check for isClosing??\n )\n .subscribe(async () => {\n await this.hideAll();\n });\n }\n\n public async showModal(config: ModalConfig, onClose?: (data?: any) => void): Promise<void> {\n await this.showAndRegisterOverlay(() => this.modalHelper.showModalWindow(config), onClose);\n }\n\n public async navigateToModal(path: string | string[], queryParams?: Params): Promise<boolean> {\n return this.modalNavigationService.navigateToModal(path, queryParams);\n }\n\n public async navigateWithinModal(relativePath: string, queryParams?: Params): Promise<boolean> {\n return this.modalNavigationService.navigateWithinModal(relativePath, queryParams);\n }\n\n private async showModalRoute(\n modalRoute: ActivatedRoute,\n siblingModalRouteActivated$: Observable<ActivatedRoute>,\n onWillClose: (data?: any) => void\n ): Promise<void> {\n const config: ModalConfig = {\n component: null,\n modalRoute: modalRoute,\n siblingModalRouteActivated$: siblingModalRouteActivated$,\n flavor: 'modal', // Todo: Should it be possible to specify flavor as data in RouteConfig?\n };\n await this.showAndRegisterOverlay(\n () => this.modalHelper.showModalWindow(config),\n null,\n onWillClose\n );\n }\n\n public async showActionSheet(\n config: ActionSheetConfig,\n onClose?: (data?: any) => void\n ): Promise<void> {\n await this.showAndRegisterOverlay(\n () => this.actionSheetHelper.showActionSheet(config),\n onClose\n );\n }\n\n public async showAlert(config: AlertConfig, onClose?: (result: boolean) => void): Promise<void> {\n await this.showAndRegisterOverlay(() => this.alertHelper.showAlert(config), onClose);\n }\n\n private async showAndRegisterOverlay(\n showOverlay: () => Promise<Overlay>,\n onCloseOverlay?: (data?: any) => void,\n onWillCloseOverlay?: (data?: any) => void\n ) {\n const overlay = await showOverlay();\n if (!overlay) return;\n\n this.overlays.push(overlay);\n\n if (typeof onWillCloseOverlay === 'function') {\n overlay.onWillDismiss.then((event) => onWillCloseOverlay(event.data));\n }\n\n overlay.onDidDismiss.then((event) => {\n this.overlays.pop();\n if (typeof onCloseOverlay === 'function') {\n onCloseOverlay(event.data);\n }\n });\n }\n\n public registerPresentingElement(element: HTMLElement) {\n this.modalHelper.registerPresentingElement(element);\n }\n\n public async hideTopmost(data?: any): Promise<boolean> {\n const overlay = this.overlays[this.overlays.length - 1];\n if (!overlay) {\n throw new Error(this.noOverlayRegisteredErrorMessage);\n }\n return overlay.dismiss(data);\n }\n\n /**\n * @deprecated Will be removed in next major version. Inject Modal in embedded component and use Modal.scrollToTop instead.\n */\n public scrollToTop(duration?: KirbyAnimation.Duration) {\n console.warn(\n 'ModalController.scrollToTop is deprecated - please inject Modal in embedded component and use Modal.scrollToTop instead.'\n );\n const overlay = this.overlays[this.overlays.length - 1];\n if (!overlay) {\n throw new Error(this.noOverlayRegisteredErrorMessage);\n }\n this.modalHelper.scrollToTop(this.noOverlayRegisteredErrorMessage, duration);\n }\n\n /**\n * @deprecated Will be removed in next major version. Inject Modal in embedded component and use Modal.scrollToBottom instead.\n */\n public scrollToBottom(duration?: KirbyAnimation.Duration) {\n console.warn(\n 'ModalController.scrollToBottom is deprecated - please inject Modal in embedded component and use Modal.scrollToBottom instead.'\n );\n const overlay = this.overlays[this.overlays.length - 1];\n if (!overlay) {\n throw new Error(this.noOverlayRegisteredErrorMessage);\n }\n this.modalHelper.scrollToBottom(this.noOverlayRegisteredErrorMessage, duration);\n }\n\n public async hideAll(): Promise<void> {\n await Promise.all(\n this.overlays.map(async (overlay) => {\n await overlay.dismiss();\n })\n );\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n}\n","import {\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n ElementRef,\n ViewChild,\n} from '@angular/core';\nimport { IonApp } from '@ionic/angular';\n\nimport { ModalController } from '../modal/services/modal.controller';\nimport { RouterOutletComponent } from '../router-outlet/router-outlet.component';\n\n@Component({\n selector: 'kirby-app',\n templateUrl: './app.component.html',\n styleUrls: ['./app.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AppComponent implements AfterContentInit {\n @ViewChild(IonApp, { static: true, read: ElementRef })\n private ionAppElement: ElementRef<HTMLIonAppElement>;\n\n @ContentChild(RouterOutletComponent, { static: false, read: ElementRef })\n private routerOutlet?: ElementRef<HTMLElement>;\n\n constructor(private modalController: ModalController) {}\n\n ngAfterContentInit(): void {\n if (this.routerOutlet && this.routerOutlet.nativeElement) {\n this.modalController.registerPresentingElement(this.routerOutlet.nativeElement);\n }\n\n this.ionAppElement.nativeElement.componentOnReady().then(() => this.registerInputs());\n }\n\n registerInputs() {\n // Input might be already loaded in the DOM before ion-device-hacks did.\n // At this point we need to look for all of the inputs not registered yet\n // and register them.\n // There is no Ionic event to hook into, so we'll use a timeout\n // to ensure ion-device-hacks has run:\n const ensureIonicDeviceHacksDelay = 250;\n setTimeout(() => {\n document.querySelectorAll('kirby-form-field').forEach((formField) => {\n formField.dispatchEvent(new CustomEvent('kirbyRegisterFormField'));\n });\n }, ensureIonicDeviceHacksDelay);\n }\n}\n","<ion-app>\n <ng-content></ng-content>\n</ion-app>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { IonicModule } from '@ionic/angular';\n\nimport { AppComponent } from './app.component';\n\n@NgModule({\n declarations: [AppComponent],\n imports: [CommonModule, IonicModule],\n exports: [AppComponent],\n})\nexport class AppModule {}\n","import { ChangeDetectionStrategy, Component, HostBinding, Input } from '@angular/core';\n\nimport { BrandColor, NotificationColor } from '@kirbydesign/core';\n\nexport enum AvatarSize {\n XS = 'xs',\n SM = 'sm',\n MD = 'md',\n LG = 'lg',\n}\n\n@Component({\n selector: 'kirby-avatar',\n templateUrl: './avatar.component.html',\n styleUrls: ['./avatar.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AvatarComponent {\n @Input() imageSrc: string;\n @Input() altText: string;\n @Input() shadow: boolean;\n @Input() text: string;\n @Input() overlay: boolean;\n @Input() size: AvatarSize | `${AvatarSize}` = AvatarSize.SM;\n @Input()\n themeColor: NotificationColor | BrandColor | 'medium' | 'white' | 'dark' | 'light' | 'semi-light';\n\n @HostBinding('class')\n get _cssClass() {\n return [this.themeColor, this.size].filter((cssClass) => !!cssClass);\n }\n}\n","<div class=\"avatar\" [ngClass]=\"{ shadow: shadow, overlay: overlay }\">\n <img *ngIf=\"imageSrc\" [src]=\"imageSrc\" [attr.alt]=\"altText\" />\n <ng-content *ngIf=\"!text\" select=\"kirby-icon\"></ng-content>\n <span class=\"avatar-text\" *ngIf=\"text\">{{ text }}</span>\n</div>\n<ng-content select=\"kirby-badge\"></ng-content>\n","import { fromEvent } from 'rxjs';\n\nexport const proxyInputs = (Cmp: any, inputs: string[]) => {\n const Prototype = Cmp.prototype;\n inputs.forEach((item) => {\n Object.defineProperty(Prototype, item, {\n get() {\n return this.el[item];\n },\n set(val: any) {\n this.z.runOutsideAngular(() => (this.el[item] = val));\n },\n });\n });\n};\n\nexport const proxyMethods = (Cmp: any, methods: string[]) => {\n const Prototype = Cmp.prototype;\n methods.forEach((methodName) => {\n Prototype[methodName] = function () {\n const args = arguments;\n return this.z.runOutsideAngular(() => this.el[methodName].apply(this.el, args));\n };\n });\n};\n\nexport const proxyOutputs = (instance: any, el: any, events: string[]) => {\n events.forEach((eventName) => (instance[eventName] = fromEvent(el, eventName)));\n};\n\n// tslint:disable-next-line: only-arrow-functions\nexport function ProxyCmp(opts: { inputs?: any; methods?: any }) {\n const decorator = function (cls: any) {\n if (opts.inputs) {\n proxyInputs(cls, opts.inputs);\n }\n if (opts.methods) {\n proxyMethods(cls, opts.methods);\n }\n return cls;\n };\n return decorator;\n}\n","/* tslint:disable */\n/* auto-generated angular directive proxies */\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, NgZone } from '@angular/core';\nimport { ProxyCmp, proxyOutputs } from './angular-component-lib/utils';\n\nimport { Components } from '@kirbydesign/core';\n\n\nexport declare interface KirbyBadge extends Components.KirbyBadge {}\n@ProxyCmp({\n inputs: ['size', 'text', 'themeColor']\n})\n@Component({\n selector: 'kirby-badge',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: '<ng-content></ng-content>',\n inputs: ['size', 'text', 'themeColor']\n})\nexport class KirbyBadge {\n protected el: HTMLElement;\n constructor(c: ChangeDetectorRef, r: ElementRef, protected z: NgZone) {\n c.detach();\n this.el = r.nativeElement;\n }\n}\n","import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'kirby-card-footer',\n templateUrl: './card-footer.component.html',\n styleUrls: ['./card-footer.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CardFooterComponent implements OnInit {\n constructor() {}\n\n ngOnInit() {}\n}\n","<footer>\n <ng-content></ng-content>\n</footer>\n","/**\n * Performs a deep merge of objects and returns new object. Does not modify\n * objects (immutable).\n * It merges from into object to the left\n * eg. mergeDeep({a: 'will be overridden', b: 'some val'}, {a: 'new val'}) => {a: 'new val', b: 'some val'}\n *\n * @param originalObject object - Object to override,\n * @param overrideObject object - Object to override \"toOverride\" values with\n * @param config object - Configuration for how to merge.\n * mergeArrays determines if it should merge or override arrays\n * @returns object - New object with merged key/values\n */\nexport function mergeDeep(originalObject, overrideObject, config = { mergeArrays: false }) {\n const isObject = (obj) => obj && typeof obj === 'object';\n\n return [originalObject, overrideObject].reduce((mergedObject, obj) => {\n Object.keys(obj).forEach((key) => {\n const mergedObjectValue = mergedObject[key];\n const overrideObjectValue = obj[key];\n\n if (Array.isArray(mergedObjectValue) && Array.isArray(overrideObjectValue)) {\n mergedObject[key] = config.mergeArrays\n ? mergedObjectValue.concat(overrideObjectValue)\n : overrideObjectValue;\n } else if (isObject(mergedObjectValue) && isObject(overrideObjectValue)) {\n mergedObject[key] = mergeDeep(mergedObjectValue, overrideObjectValue);\n } else {\n mergedObject[key] = overrideObjectValue;\n }\n });\n\n return mergedObject;\n }, {});\n}\n\nexport function mergeDeepAll(...objects: Object[]): Object {\n const objectsWithoutUndefined = objects.filter((object) => object !== undefined);\n return objectsWithoutUndefined.reduce((originalObject, overrideObject) =>\n mergeDeep(originalObject, overrideObject)\n );\n}\n","import { ElementRef, Injectable } from '@angular/core';\nimport { chart, Options } from 'highcharts';\nimport * as Highcharts from 'highcharts';\n\n// Docs on importing accessibility: https://www.highcharts.com/docs/chart-concepts/accessibility\n\ndeclare var require: any;\nrequire('highcharts/highcharts-more')(Highcharts);\nrequire('highcharts/modules/solid-gauge')(Highcharts);\nrequire('highcharts/modules/broken-axis')(Highcharts);\n\n@Injectable()\nexport class ChartDeprecatedHelper {\n chartContainer: ElementRef;\n\n public init(chartContainer: ElementRef) {\n this.chartContainer = chartContainer;\n }\n\n public renderChart(options: Options) {\n if (this.chartContainer && options.chart) {\n chart(this.chartContainer.nativeElement, options);\n }\n }\n}\n","export enum ChartDeprecatedType {\n PIE = 'pie',\n DONUT = 'donut',\n AREASPLINE = 'areaspline',\n TIMESERIES = 'timeseries',\n ACTIVITYGAUGE = 'activitygauge',\n BAR = 'bar',\n COLUMN = 'column',\n CUSTOM = 'custom',\n}\n","import { InjectionToken } from '@angular/core';\nimport { Options } from 'highcharts';\n\nexport const ACTIVITYGAUGE_OPTIONS = new InjectionToken<Options>('ActivityGaugeOptions');\nexport const ActivityGaugeOptions: Options = {\n chart: {\n style: {\n fontFamily: 'Roboto, sans-serif',\n fontWeight: '300',\n },\n backgroundColor: 'transparent',\n type: 'solidgauge',\n height: '110%',\n },\n accessibility: {\n description: '',\n },\n title: {\n align: 'center',\n verticalAlign: 'middle',\n text: '',\n y: 0,\n floating: false,\n style: {\n fontSize: '30px',\n color: '#fff',\n fontWeight: 'bold',\n },\n },\n subtitle: {\n text: '',\n align: 'center',\n y: 25,\n verticalAlign: 'middle',\n style: {\n color: '#fff',\n fontSize: '14px',\n fontWeight: 'normal',\n },\n },\n credits: {\n enabled: false,\n },\n tooltip: {\n enabled: false,\n animation: false,\n },\n pane: {\n startAngle: 0,\n endAngle: 360,\n background: [\n {\n backgroundColor: {\n linearGradient: { x1: 0, x2: 0, y1: 0, y2: 1 },\n stops: [\n [1, 'rgba(255, 255, 255, 0.3)'],\n [0, 'rgba(255, 255, 255, 0.3)'],\n ],\n },\n outerRadius: '112%',\n innerRadius: '88%',\n borderWidth: 0,\n },\n ],\n },\n yAxis: {\n min: 0,\n max: 100,\n lineWidth: 0,\n tickPositions: [],\n },\n plotOptions: {\n solidgauge: {\n dataLabels: {\n enabled: false,\n },\n linecap: 'round',\n stickyTracking: false,\n rounded: true,\n },\n },\n series: [\n {\n type: 'solidgauge',\n },\n ],\n};\n","import { InjectionToken } from '@angular/core';\nimport { Options } from 'highcharts';\n\nexport const AREASPLINE_OPTIONS = new InjectionToken<Options>('AreasplineOptions');\nexport const AreaSplineOptions: Options = {\n chart: {\n type: 'areaspline',\n borderWidth: 0,\n plotBorderWidth: 0,\n margin: 0,\n marginTop: 48,\n },\n accessibility: {\n description: '',\n },\n title: {\n text: '',\n },\n credits: {\n enabled: false,\n },\n exporting: {\n enabled: false,\n },\n tooltip: {\n enabled: true,\n animation: false,\n shape: 'square',\n borderColor: '#FFFFFF',\n shadow: false,\n backgroundColor: '#FFFFFF',\n style: {\n fontSize: '1.25rem',\n },\n formatter: function (): string {\n return String(this.y);\n },\n positioner: function () {\n return { x: this.chart.plotSizeX / 2 - this.label.width / 2, y: 0 };\n },\n },\n xAxis: {\n visible: false,\n minPadding: 0,\n maxPadding: 0,\n crosshair: {\n zIndex: 3,\n width: 1,\n color: '#177E17',\n },\n },\n yAxis: {\n visible: false,\n endOnTick: false,\n startOnTick: false,\n },\n plotOptions: {\n areaspline: {\n shadow: true,\n showInLegend: false,\n fillColor: {\n linearGradient: { x1: 0, x2: 0, y1: 0, y2: 0.8 },\n stops: [\n [0, '#C9E5C9'],\n [1, '#FFFFFF'],\n ],\n },\n lineColor: '#177E17',\n lineWidth: 2,\n },\n series: {\n states: {\n hover: {\n halo: {\n size: 0,\n },\n },\n },\n marker: {\n enabled: false,\n states: {\n hover: {\n enabled: true,\n fillColor: '#177E17',\n },\n },\n },\n },\n },\n series: [\n {\n type: 'areaspline',\n },\n ],\n};\n","import { Options } from 'highcharts';\n\nimport { DesignTokenHelper } from '@kirbydesign/core';\n\nconst getColor = DesignTokenHelper.getColor;\nconst fontSize = DesignTokenHelper.fontSize;\n\nfunction colorPoints() {\n var series = this.series;\n for (var i = 0, ie = series.length; i < ie; ++i) {\n var points = series[i].data;\n for (var j = 0, je = points.length; j < je; ++j) {\n if (points[j].graphic) {\n points[j].graphic.element.style.stroke = getColor('background-color').value;\n }\n }\n }\n}\n\nexport const barOptions: Options = {\n chart: {\n type: 'bar',\n animation: {\n duration: 150,\n },\n backgroundColor: 'transparent',\n events: {\n load: colorPoints,\n redraw: colorPoints,\n },\n },\n accessibility: {\n description: 'Bar chart',\n },\n credits: {\n enabled: false,\n },\n title: {\n text: '',\n },\n xAxis: {\n labels: {\n style: {\n fontSize: fontSize('s'),\n fontFamily: 'Roboto',\n color: getColor('black').value,\n },\n },\n min: 0,\n lineColor: 'transparent',\n },\n yAxis: {\n title: {\n text: '',\n },\n labels: {\n enabled: false,\n },\n min: 0,\n lineWidth: 0,\n minorGridLineWidth: 0,\n gridLineColor: 'transparent',\n minorTickLength: 0,\n tickLength: 0,\n maxPadding: 0,\n endOnTick: false,\n showLastLabel: false,\n showFirstLabel: false,\n },\n plotOptions: {\n bar: {\n events: {},\n },\n series: {\n color: getColor('secondary').value,\n stacking: 'normal',\n states: {\n hover: {\n enabled: false,\n },\n inactive: {\n opacity: 1,\n },\n },\n },\n },\n tooltip: {\n enabled: false,\n },\n legend: {\n enabled: false,\n },\n};\n","import { Options } from 'highcharts';\n\nimport { DesignTokenHelper } from '@kirbydesign/core';\n\nconst getColor = DesignTokenHelper.getColor;\nconst fontSize = DesignTokenHelper.fontSize;\n\nfunction colorPoints() {\n var series = this.series;\n for (var i = 0, ie = series.length; i < ie; ++i) {\n var points = series[i].data;\n for (var j = 0, je = points.length; j < je; ++j) {\n if (points[j].graphic) {\n points[j].graphic.element.style.stroke = getColor('secondary').value;\n }\n }\n }\n}\n\nexport const columnOptions: Options = {\n chart: {\n animation: {\n duration: 500,\n },\n backgroundColor: 'transparent',\n type: 'column',\n events: {\n load: colorPoints,\n redraw: colorPoints,\n },\n },\n title: {\n text: '',\n },\n accessibility: {\n description: 'Column chart',\n },\n xAxis: {\n labels: {\n style: {\n fontSize: fontSize('xxs'),\n fontFamily: 'Roboto',\n color: getColor('black').value,\n },\n },\n lineWidth: 0,\n minorGridLineWidth: 0,\n lineColor: 'transparent',\n minorTickLength: 0,\n tickLength: 0,\n },\n yAxis: {\n title: {\n text: '',\n },\n labels: {\n enabled: false,\n },\n min: 0,\n lineWidth: 0,\n minorGridLineWidth: 0,\n gridLineColor: 'transparent',\n minorTickLength: 0,\n tickLength: 0,\n showLastLabel: false,\n showFirstLabel: false,\n },\n credits: {\n enabled: false,\n },\n plotOptions: {\n column: {\n stacking: 'normal',\n },\n series: {\n color: getColor('secondary').value,\n zIndex: 10,\n states: {\n hover: {\n enabled: false,\n },\n inactive: {\n opacity: 1,\n },\n },\n },\n line: {\n className: 'avg-line',\n marker: {\n enabled: false,\n },\n allowPointSelect: false,\n },\n },\n tooltip: {\n enabled: false,\n },\n legend: {\n enabled: false,\n },\n};\n","import { InjectionToken } from '@angular/core';\nimport { Options } from 'highcharts';\n\nexport const DONUT_OPTIONS = new InjectionToken<Options>('DonutOptions');\nexport const DonutOptions: Options = {\n chart: {\n style: {\n fontFamily: 'Roboto',\n fontWeight: '300',\n },\n backgroundColor: 'transparent',\n type: '',\n },\n accessibility: {\n description: 'Donut chart',\n },\n title: {\n text: '',\n },\n tooltip: {\n enabled: false,\n animation: false,\n },\n legend: {\n layout: 'vertical',\n symbolRadius: 0,\n itemStyle: {\n fontSize: '.875rem',\n },\n },\n plotOptions: {\n pie: {\n colors: ['#015132', '#B2D1BF', '#AABC08', '#1FA05A', 'yellowgreen'],\n allowPointSelect: false,\n cursor: 'pointer',\n showInLegend: true,\n borderColor: null,\n dataLabels: {\n format: '{point.label}',\n enabled: true,\n connectorWidth: 0,\n distance: 5,\n style: {\n fontSize: '1rem',\n fontWeight: '200',\n },\n },\n point: {\n events: {\n legendItemClick: () => {\n // Prevent the default behavior (toggle visibility of slices when clicking on legends)\n return false;\n },\n },\n },\n states: {\n hover: {\n enabled: false,\n },\n },\n },\n series: {\n animation: true,\n dataLabels: {},\n states: {\n hover: {\n enabled: false,\n },\n inactive: {\n opacity: 1,\n },\n },\n },\n },\n series: [\n {\n name: '',\n type: 'pie',\n },\n ],\n credits: {\n enabled: false,\n },\n exporting: {\n enabled: false,\n },\n responsive: {\n rules: [\n {\n condition: {\n minWidth: 640,\n },\n chartOptions: {\n legend: {\n layout: 'vertical',\n align: 'right',\n verticalAlign: 'middle',\n itemMarginTop: 12,\n symbolRadius: 0,\n symbolWidth: 14,\n symbolHeight: 14,\n x: -100,\n },\n },\n },\n {\n condition: {\n minWidth: 0,\n },\n chartOptions: {\n legend: {\n symbolRadius: 0,\n },\n },\n },\n ],\n },\n};\n","import { InjectionToken } from '@angular/core';\nimport { dateFormat, Options } from 'highcharts';\n\nexport const TIMESERIES_OPTIONS = new InjectionToken<Options>('TimeSeriesOptions');\nexport const TimeSeriesOptions: Options = {\n chart: {\n backgroundColor: {\n linearGradient: { x1: 0, x2: 0, y1: 0, y2: 3 },\n stops: [\n [0, '#F6F6F6'],\n [1, '#808080'],\n ],\n },\n zoomType: 'x',\n type: 'timeseries',\n borderWidth: 0,\n plotBorderWidth: 0,\n margin: 0,\n marginTop: 48,\n },\n accessibility: {\n description: '',\n },\n title: {\n text: '',\n },\n subtitle: {\n text: '',\n },\n tooltip: {\n shadow: false,\n formatter: function () {\n // @ts-ignore\n return dateFormat('%e. %b', new Date(this.x)) + '.' + '<br/><b>' + this.y + '</b>';\n },\n //xDateFormat: '%d/%m',\n positioner: function (_labelWidth, _labelHeight, point) {\n return { x: point.x, y: 0 };\n },\n borderWidth: 0,\n },\n xAxis: {\n visible: false,\n lineColor: '#FFFFFF',\n tickColor: '#FFFFFF',\n labels: {\n style: {\n color: 'white',\n },\n },\n opposite: true,\n crosshair: {\n zIndex: 3,\n width: 1,\n color: '#00E89A',\n },\n type: 'datetime',\n tickInterval: 1,\n },\n yAxis: {\n visible: false,\n },\n legend: {\n enabled: false,\n },\n plotOptions: {\n area: {\n fillColor: '#01352C',\n marker: {\n lineWidth: 14,\n lineColor: 'rgba(255,255,255,0.2)',\n radius: 6,\n fillColor: '#00E89A',\n },\n lineColor: '#01352C',\n lineWidth: 1,\n states: {\n hover: {\n lineWidth: 1,\n },\n },\n threshold: null,\n },\n series: {\n marker: {\n enabledThreshold: 50,\n },\n },\n },\n series: [\n {\n type: 'area',\n name: 'USD to EUR',\n },\n ],\n};\n","import { Component, ElementRef, Inject, Input, OnChanges, SimpleChanges } from '@angular/core';\nimport {\n Options,\n PlotSeriesDataLabelsOptions,\n XAxisBreaksOptions,\n XAxisOptions,\n YAxisOptions,\n} from 'highcharts';\n\nimport { mergeDeep } from '../../helpers/merge-deep';\n\nimport { ChartDeprecatedHelper } from './chart-deprecated-helper';\nimport { ChartDeprecatedType } from './chart-deprecated-type';\nimport { ActivityGaugeOptions, ACTIVITYGAUGE_OPTIONS } from './options/activitygauge';\nimport { AreaSplineOptions, AREASPLINE_OPTIONS } from './options/areaspline';\nimport { barOptions } from './options/bar';\nimport { columnOptions } from './options/column';\nimport { DonutOptions, DONUT_OPTIONS } from './options/donut';\nimport { TimeSeriesOptions, TIMESERIES_OPTIONS } from './options/timeseries';\n\n@Component({\n selector: 'kirby-chart-deprecated',\n template: '',\n styleUrls: ['./chart-deprecated.component.scss'],\n providers: [\n ChartDeprecatedHelper,\n { provide: DONUT_OPTIONS, useValue: DonutOptions },\n { provide: AREASPLINE_OPTIONS, useValue: AreaSplineOptions },\n { provide: TIMESERIES_OPTIONS, useValue: TimeSeriesOptions },\n { provide: ACTIVITYGAUGE_OPTIONS, useValue: ActivityGaugeOptions },\n ],\n})\nexport class ChartDeprecatedComponent implements OnChanges {\n @Input() data = [];\n @Input() categories: string[] = [];\n @Input() breaks: Array<XAxisBreaksOptions> = [];\n @Input() height = 300;\n @Input() type: ChartDeprecatedType = ChartDeprecatedType.PIE;\n @Input() description = '';\n @Input() showDataLabels = true;\n @Input() options: Options;\n mergedOptions: Options = {\n accessibility: {},\n };\n\n constructor(\n private chartHelper: ChartDeprecatedHelper,\n private hostElement: ElementRef,\n @Inject(DONUT_OPTIONS) public donutOptions: Options,\n @Inject(AREASPLINE_OPTIONS) public areasplineOptions: Options,\n @Inject(TIMESERIES_OPTIONS) public timeSeriesOptions: Options,\n @Inject(ACTIVITYGAUGE_OPTIONS) public activitygaugeOptions: Options\n ) {\n this.chartHelper.init(this.hostElement);\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes.type) {\n this.setupChartType();\n }\n this.updateProperties();\n this.chartHelper.renderChart(this.mergedOptions);\n }\n\n setupChartType() {\n switch (this.type) {\n case ChartDeprecatedType.DONUT: {\n this.mergedOptions = this.donutOptions;\n this.mergedOptions.chart.type = ChartDeprecatedType.PIE;\n this.mergedOptions.plotOptions.pie.innerSize = '50%';\n break;\n }\n case ChartDeprecatedType.PIE: {\n this.mergedOptions = this.donutOptions;\n this.mergedOptions.chart.type = this.type;\n this.mergedOptions.plotOptions.pie.innerSize = '0%';\n break;\n }\n case ChartDeprecatedType.AREASPLINE: {\n this.mergedOptions = this.areasplineOptions;\n this.mergedOptions.chart.type = this.type;\n break;\n }\n case ChartDeprecatedType.TIMESERIES: {\n this.mergedOptions = this.timeSeriesOptions;\n this.mergedOptions.chart.type = this.type;\n break;\n }\n case ChartDeprecatedType.ACTIVITYGAUGE: {\n this.mergedOptions = this.activitygaugeOptions;\n this.mergedOptions.chart.type = this.type;\n break;\n }\n case ChartDeprecatedType.COLUMN: {\n this.mergedOptions = columnOptions;\n this.mergedOptions.chart.type = this.type;\n break;\n }\n case ChartDeprecatedType.BAR: {\n this.mergedOptions = barOptions;\n this.mergedOptions.chart.type = this.type;\n break;\n }\n }\n }\n\n updateProperties() {\n this.mergedOptions.chart.height = this.height;\n this.mergedOptions.accessibility.description = this.description;\n switch (this.mergedOptions.chart.type) {\n case ChartDeprecatedType.PIE:\n case ChartDeprecatedType.DONUT: {\n this.setPieInput();\n break;\n }\n case ChartDeprecatedType.AREASPLINE: {\n this.setSeries('areaspline');\n break;\n }\n case ChartDeprecatedType.TIMESERIES: {\n this.setTimeseriesInput();\n break;\n }\n case ChartDeprecatedType.ACTIVITYGAUGE: {\n this.setActivitygaugeInput();\n break;\n }\n case ChartDeprecatedType.COLUMN: {\n this.setColumnInput();\n break;\n }\n case ChartDeprecatedType.BAR: {\n this.setBarInput();\n break;\n }\n }\n if (!!this.options) {\n this.mergedOptions = mergeDeep(this.mergedOptions, this.options);\n }\n }\n\n private setPieInput() {\n (this.mergedOptions.plotOptions.pie.dataLabels as PlotSeriesDataLabelsOptions).enabled =\n this.showDataLabels;\n this.setSeries('pie');\n }\n\n private setBarInput() {\n const dataMaxValue = Math.max(...this.data);\n this.mergedOptions.series = [\n {\n type: 'bar',\n name: 'InvisibleClickReceiver',\n data: this.data.map((dataEntry) => dataMaxValue - dataEntry),\n edgeColor: 'rgb(255, 255, 255, 0)',\n opacity: 0,\n },\n {\n type: 'bar',\n data: this.data,\n },\n ];\n (this.mergedOptions.xAxis as XAxisOptions).categories = this.categories;\n }\n\n private setColumnInput() {\n this.mergedOptions.series = [\n {\n type: 'column',\n data: this.data,\n },\n ];\n const dataMaxValue = Math.max(...this.data);\n ((this.mergedOptions.yAxis as YAxisOptions).tickPositioner = () => {\n var positions = [0, dataMaxValue];\n return positions;\n }),\n (this.mergedOptions.series = [\n {\n type: 'column',\n name: 'InvisibleClickReceiver',\n data: this.data.map((_, idx) => dataMaxValue - this.data[idx]),\n opacity: 0,\n },\n {\n type: 'column',\n data: this.data,\n },\n ]);\n (this.mergedOptions.xAxis as XAxisOptions).categories = this.categories;\n }\n\n private setActivitygaugeInput() {\n const data = this.data[0];\n this.mergedOptions.title.text = data.title;\n this.mergedOptions.subtitle.text = data.subtitle;\n if (data.paneBackgroundColor) {\n this.mergedOptions.pane.background = [\n {\n ...this.mergedOptions.pane.background[0],\n backgroundColor: data.paneBackgroundColor,\n },\n ];\n }\n if (data.color) {\n this.mergedOptions.title.style.color = data.color;\n this.mergedOptions.subtitle.style.color = data.color;\n }\n this.mergedOptions.series = [\n {\n type: 'solidgauge',\n data: data.series,\n },\n ];\n }\n\n private setTimeseriesInput() {\n this.setSeries('area');\n this.mergedOptions.xAxis = {\n ...this.mergedOptions.xAxis,\n breaks: this.breaks,\n };\n }\n\n private setSeries(type) {\n this.mergedOptions.series = [\n {\n type,\n data: this.data,\n },\n ];\n }\n}\n","import { ChartDataset as ChartJSDataset, ChartOptions, ChartType as ChartJSType } from 'chart.js';\n\nexport type ChartHighlightedElements = number[][];\n\nexport type ChartType = 'column' | 'bar' | 'line' | 'stock';\n\nexport type ChartTypeConfig = { type: ChartJSType; options?: ChartOptions };\n\nexport type ChartTypesConfig = {\n [key in ChartType]: ChartTypeConfig;\n};\nexport type ChartLabel = string | string[]; // String[] allows for multi-line labels\n\nexport type ChartDataLabelOptions = {\n showMin?: boolean;\n showMax?: boolean;\n showCurrent?: boolean;\n locale?: ChartLocale;\n valueSuffix?: string;\n};\n\nexport type ChartLocale = 'da-DK' | 'en-US';\n\n/* \n kirbyOptions.isStockChart is a hacky solution to this issue: \n https://github.com/kirbydesign/designsystem/issues/1967 \n*/\nexport type ChartDataset = {\n kirbyOptions?: { highlightedElements?: number[]; isStockChart?: boolean };\n} & ChartJSDataset;\n\nexport function isNumberArray(value: any): value is number[] {\n return Array.isArray(value) && value.every((item) => typeof item === 'number');\n}\n","import {\n Directive,\n Input,\n ComponentFactoryResolver,\n OnInit,\n Renderer2,\n ViewContainerRef,\n} from '@angular/core';\n\nimport { ComponentConfiguration } from './component-configuration';\nimport { DynamicComponent } from './dynamic-component';\n\n@Directive({\n selector: '[kirbyLoadComponent]',\n})\nexport class ComponentLoaderDirective implements OnInit {\n // tslint:disable-next-line:no-input-rename\n @Input('kirbyLoadComponent') configuration: ComponentConfiguration;\n @Input() cssClass: string;\n\n constructor(\n private componentFactoryResolver: ComponentFactoryResolver,\n private viewContainerRef: ViewContainerRef,\n private renderer: Renderer2\n ) {}\n\n ngOnInit() {\n this.loadCard();\n }\n\n loadCard() {\n const componentFactory = this.componentFactoryResolver.resolveComponentFactory(\n this.configuration.component\n );\n this.viewContainerRef.clear();\n const componentRef = this.viewContainerRef.createComponent(componentFactory);\n if (componentRef && componentRef.location && componentRef.location.nativeElement) {\n this.renderer.addClass(componentRef.location.nativeElement, this.cssClass);\n }\n (<DynamicComponent>componentRef.instance).data = this.configuration.data;\n }\n}\n","/* \n The marker plugin is heavily inspired by https://chartjs-plugin-crosshair.netlify.app\n The project appears stale and only the vertical line feature is needed\n part of the plugin that was actually needed is implemented here. \n*/\n\nimport { Chart } from 'chart.js';\nimport { valueOrDefault } from 'chart.js/helpers';\n\nimport { ChartDataset } from '../../chart.types';\n\nvar defaultOptions = {\n line: {\n color: 'black',\n width: 1,\n dashPattern: [],\n },\n snap: {\n enabled: false,\n },\n};\n\nconst hasMarkerConfiguration = (chart: Chart) => {\n /* \n Hacky solution. Should be fixed in this issue: https://github.com/kirbydesign/designsystem/issues/1967\n */\n return chart.data.datasets.some((dataset: ChartDataset) => !!dataset?.kirbyOptions?.isStockChart);\n};\n\nexport default {\n id: 'marker',\n\n afterInit: function (chart) {\n if (!hasMarkerConfiguration(chart)) {\n return;\n }\n\n var xScaleType = chart.config.options.scales.x.type;\n\n if (\n xScaleType !== 'linear' &&\n xScaleType !== 'time' &&\n xScaleType !== 'category' &&\n xScaleType !== 'logarithmic'\n ) {\n return;\n }\n\n if (chart.options.plugins.marker === undefined) {\n chart.options.plugins.marker = defaultOptions;\n }\n\n chart.marker = {\n enabled: false,\n suppressUpdate: false,\n x: null,\n originalData: [],\n originalXRange: {},\n dragStarted: false,\n dragStartX: null,\n dragEndX: null,\n suppressTooltips: false,\n ignoreNextEvents: 0,\n };\n },\n\n getOption: function (chart, category, name) {\n return valueOrDefault(\n chart.options.plugins.marker[category]\n ? chart.options.plugins.marker[category][name]\n : undefined,\n defaultOptions[category][name]\n );\n },\n\n getXScale: function (chart) {\n return chart.data.datasets.length ? chart.scales[chart.getDatasetMeta(0).xAxisID] : null;\n },\n getYScale: function (chart) {\n return chart.scales[chart.getDatasetMeta(0).yAxisID];\n },\n\n afterEvent: function (chart, event) {\n if (!hasMarkerConfiguration(chart)) {\n return;\n }\n if (chart.config.options.scales.x.length == 0) {\n return;\n }\n\n let e = event.event;\n\n var xScaleType = chart.config.options.scales.x.type;\n\n if (\n xScaleType !== 'linear' &&\n xScaleType !== 'time' &&\n xScaleType !== 'category' &&\n xScaleType !== 'logarithmic'\n ) {\n return;\n }\n\n var xScale = this.getXScale(chart);\n\n if (!xScale) {\n return;\n }\n\n if (chart.marker.ignoreNextEvents > 0) {\n chart.marker.ignoreNextEvents -= 1;\n return;\n }\n\n // fix for Safari\n var buttons = e.native.buttons === undefined ? e.native.which : e.native.buttons;\n if (e.native.type === 'mouseup') {\n buttons = 0;\n }\n\n chart.marker.enabled =\n e.type !== 'mouseout' &&\n e.x > xScale.getPixelForValue(xScale.min) &&\n e.x < xScale.getPixelForValue(xScale.max);\n\n if (!chart.marker.enabled && !chart.marker.suppressUpdate) {\n if (e.x > xScale.getPixelForValue(xScale.max)) {\n // suppress future updates to prevent endless redrawing of chart\n chart.marker.suppressUpdate = true;\n chart.update('none');\n }\n chart.marker.dragStarted = false; // cancel zoom in progress\n return false;\n }\n chart.marker.suppressUpdate = false;\n\n chart.marker.x = e.x;\n\n chart.draw();\n },\n doDraw: function (chart) {\n if (!hasMarkerConfiguration(chart)) {\n return;\n }\n\n if (!chart.marker.enabled) {\n return;\n }\n\n this.drawTraceLine(chart);\n this.interpolateValues(chart);\n this.drawTracePoints(chart);\n\n return true;\n },\n beforeDraw: function (chart) {\n return this.doDraw(chart);\n },\n // Logic moved to beforeDraw in order\n // for the vertical line to be drawn\n // under tooltip and datalabels.\n // afterDraw: function(chart) {\n // return this.doDraw(chart);\n // },\n\n drawTraceLine: function (chart) {\n if (!hasMarkerConfiguration(chart)) {\n return;\n }\n var yScale = this.getYScale(chart);\n\n var lineWidth = this.getOption(chart, 'line', 'width');\n var color = this.getOption(chart, 'line', 'color');\n var dashPattern = this.getOption(chart, 'line', 'dashPattern');\n var snapEnabled = this.getOption(chart, 'snap', 'enabled');\n\n var lineX = chart.marker.x;\n\n if (snapEnabled && chart._active.length) {\n lineX = chart._active[0].element.x;\n }\n\n chart.ctx.beginPath();\n chart.ctx.setLineDash(dashPattern);\n chart.ctx.moveTo(lineX, yScale.getPixelForValue(yScale.max));\n chart.ctx.lineWidth = lineWidth;\n chart.ctx.strokeStyle = color;\n chart.ctx.lineTo(lineX, yScale.getPixelForValue(yScale.min));\n chart.ctx.stroke();\n chart.ctx.setLineDash([]);\n },\n\n drawTracePoints: function (chart) {\n if (!hasMarkerConfiguration(chart)) {\n return;\n }\n for (var chartIndex = 0; chartIndex < chart.data.datasets.length; chartIndex++) {\n var dataset = chart.data.datasets[chartIndex];\n var meta = chart.getDatasetMeta(chartIndex);\n\n var yScale = chart.scales[meta.yAxisID];\n\n if (meta.hidden || !dataset.interpolate) {\n continue;\n }\n\n chart.ctx.beginPath();\n chart.ctx.arc(\n chart.marker.x,\n yScale.getPixelForValue(dataset.interpolatedValue),\n 3,\n 0,\n 2 * Math.PI,\n false\n );\n chart.ctx.fillStyle = 'white';\n chart.ctx.lineWidth = 2;\n chart.ctx.strokeStyle = dataset.borderColor;\n chart.ctx.fill();\n chart.ctx.stroke();\n }\n },\n\n interpolateValues: function (chart) {\n for (var chartIndex = 0; chartIndex < chart.data.datasets.length; chartIndex++) {\n var dataset = chart.data.datasets[chartIndex];\n\n var meta = chart.getDatasetMeta(chartIndex);\n\n var xScale = chart.scales[meta.xAxisID];\n var xValue = xScale.getValueForPixel(chart.marker.x);\n\n if (meta.hidden || !dataset.interpolate) {\n continue;\n }\n\n var data = dataset.data;\n var index = data.findIndex(function (o) {\n return o.x >= xValue;\n });\n var prev = data[index - 1];\n var next = data[index];\n\n if (chart.data.datasets[chartIndex].steppedLine && prev) {\n dataset.interpolatedValue = prev.y;\n } else if (prev && next) {\n var slope = (next.y - prev.y) / (next.x - prev.x);\n dataset.interpolatedValue = prev.y + (xValue - prev.x) * slope;\n } else {\n dataset.interpolatedValue = NaN;\n }\n }\n },\n};\n","/* \n Utility function to check if a given element \n has an ancestor with a specific node name. \n\n Can be given a 'stopNodeName' to limit the search\n as to not climb all the way up through the DOM tree. \n\n Returns true when element has the ancestorNodeName \n or an ancestor has the ancestorNodeName. \n\n Returns false otherwise.\n*/\n\nexport const elementHasAncestor = (\n element: HTMLElement,\n ancestorNodeName: string,\n stopNodeName?: string\n) => {\n switch (element?.nodeName) {\n case undefined:\n case stopNodeName?.toUpperCase():\n return false;\n case ancestorNodeName.toUpperCase():\n return true;\n default:\n return elementHasAncestor(element.parentElement, ancestorNodeName, stopNodeName);\n }\n};\n","// re-export helpers from core, to preserve backwards compatability\n// of 'designsystem' library\nexport * from './element-has-ancestor';\nexport * from './color-helper';\nexport * from './design-token-helper';\nexport * from './string-helper';\nexport * from './theme-color.type';\nexport * from './platform.service';\n","import { ChartType, ScriptableContext } from 'chart.js';\n\nimport { ColorHelper } from '../../../helpers';\nimport { ChartDataset } from '../chart.types';\n\nconst { getThemeColorHexString } = ColorHelper;\n\nexport const hoverBackgroundColor = getThemeColorHexString('primary');\nexport const backgroundColor = getThemeColorHexString('secondary');\n\n// Highlight elements that are added to the highlightedElements array\nexport function scriptedBackgroundColor(context: ScriptableContext<ChartType>) {\n const dataset = context.dataset as ChartDataset;\n const highlightedElements = dataset?.kirbyOptions?.highlightedElements;\n\n if (highlightedElements && highlightedElements.includes(context.dataIndex)) {\n return hoverBackgroundColor;\n } else {\n return backgroundColor;\n }\n}\n\n// Only adds a hovercolor if an onClick handler is provided\nexport function scriptedHoverBackgroundColor(context: ScriptableContext<ChartType>) {\n if (context.chart.options.onClick) {\n return hoverBackgroundColor;\n }\n}\n","import { ColorHelper } from '../../../helpers';\n\nimport { scriptedBackgroundColor, scriptedHoverBackgroundColor } from './shared.utils';\n\nconst { getThemeColorHexString } = ColorHelper;\n\nexport const CHART_GLOBAL_DEFAULTS = {\n maintainAspectRatio: false,\n color: getThemeColorHexString('black'),\n resizeDelay: 10,\n elements: {\n bar: {\n backgroundColor: scriptedBackgroundColor,\n hoverBackgroundColor: scriptedHoverBackgroundColor,\n },\n line: {\n borderColor: scriptedBackgroundColor,\n borderWidth: 2,\n tension: 0.3,\n },\n },\n scales: {\n linear: {\n display: false,\n ticks: {\n display: false,\n },\n },\n category: {\n display: true,\n grid: {\n display: false,\n },\n },\n },\n font: {\n family: 'Roboto',\n },\n plugins: {\n legend: {\n display: false,\n },\n datalabels: {\n display: false,\n },\n tooltip: {\n enabled: false,\n },\n },\n};\n","import {\n BarController,\n BarElement,\n CategoryScale,\n Chart,\n Filler,\n Legend,\n LinearScale,\n LineController,\n LineElement,\n PointElement,\n TimeScale,\n Tooltip,\n} from 'chart.js';\nimport 'chartjs-adapter-date-fns';\nimport annotationPlugin from 'chartjs-plugin-annotation';\nimport ChartDataLabels from 'chartjs-plugin-datalabels';\n\nimport { mergeDeepAll } from '../../../helpers/merge-deep';\nimport MarkerPlugin from '../chart-js/chartjs-plugin-marker/chartjs-plugin-marker';\nimport { CHART_GLOBAL_DEFAULTS } from '../configs/global-defaults.config';\n\nconst CHART_SCALES = [CategoryScale, LinearScale, TimeScale];\nconst CHART_ELEMENTS = [BarElement, LineElement, PointElement];\nconst CHART_CONTROLLERS = [BarController, LineController];\nconst CHART_PLUGINS = [annotationPlugin, Filler, ChartDataLabels, Tooltip, MarkerPlugin];\n\n/* Order matters; defaults must be merged after register as \n register modifies the Chart.defaults objects */\nChart.register(Legend, ...CHART_SCALES, ...CHART_ELEMENTS, ...CHART_CONTROLLERS, ...CHART_PLUGINS);\n\n/* Chart.defaults is read only; set each key modified in \n CHART_GLOBAL_DEFAULTS manually */\nconst mergedDefaults = mergeDeepAll(Chart.defaults, CHART_GLOBAL_DEFAULTS);\nObject.entries(CHART_GLOBAL_DEFAULTS).forEach(([key]) => {\n Chart.defaults[key] = mergedDefaults[key];\n});\n\nexport { Chart };\n","import _deepCopy from 'ts-deepcopy';\n\n/**\n * Do a deep copy of object that supports the composite data type Function\n *\n * @see https://stackoverflow.com/questions/122102/what-is-the-most-efficient-way-to-deep-clone-an-object-in-javascript#answer-122704\n *\n * @param obj\n * @returns obj\n */\nexport function deepCopy<T>(obj: T): T {\n return _deepCopy<T>(obj);\n}\n","import { AnnotationTypeRegistry } from 'chartjs-plugin-annotation';\n\nimport { ColorHelper } from '../../../helpers';\n\nconst { getThemeColorHexString } = ColorHelper;\n\n/* The chart.js annotation does not allow for changing the \ndefaults it comes with. In order to have sensible defaults \nthis object is used instead and manually merged with the \nrest of the annotations object */\nconst borderColor = getThemeColorHexString('semi-dark');\nconst borderDash: [number, number] = [6, 3];\nconst borderWidth = 1;\n\nexport const CHART_ANNOTATIONS_CONFIG: AnnotationTypeRegistry = {\n line: {\n borderDash,\n borderWidth,\n borderColor,\n },\n ellipse: {\n borderDash,\n borderWidth,\n borderColor,\n backgroundColor: 'transparent',\n },\n box: {\n borderDash,\n borderWidth,\n borderColor,\n backgroundColor: 'transparent',\n },\n point: {\n backgroundColor: 'initial',\n },\n};\n","import { ActiveElement, Chart, ChartEvent, ChartOptions } from 'chart.js';\n\n/* Allows for adding functionality to interactions chart.js while \npreserving the interaction functionality the consumer of the component has \npassed by being provided as a callback. */\nexport const CHART_INTERACTION_FUNCTIONS_EXTENSIONS = {\n onHover: (\n _event: ChartEvent,\n activeElements: ActiveElement[],\n _chart: Chart,\n callback: ChartOptions['onHover']\n ) => {\n if (_chart.options.onClick) {\n _chart.canvas.style.cursor = activeElements[0] ? 'pointer' : 'default';\n }\n\n if (callback) callback(_event, activeElements, _chart);\n },\n};\n","import { ChartTypeRegistry, Color, Point, TooltipItem, TooltipLabelStyle } from 'chart.js';\nimport { Context } from 'chartjs-plugin-datalabels';\nimport { Align } from 'chartjs-plugin-datalabels/types/options';\n\nimport { ColorHelper, DesignTokenHelper } from '../../../helpers';\nimport { ChartTypesConfig } from '../chart.types';\n\nconst { fontSize } = DesignTokenHelper;\nconst { getThemeColorHexString, getThemeColorRgbString } = ColorHelper;\n\n/**\n * A filter to read a chartpoint from a Chart.js point context (used for chartdata points). Context is provided by Chart.js.\n */\nconst getChartPointFromContext = (context: Context): Point => {\n return context.dataset.data[context.dataIndex] as Point;\n};\n\nexport const CHART_TYPES_CONFIG: ChartTypesConfig = {\n bar: {\n type: 'bar',\n options: {\n datasets: {\n bar: {\n barPercentage: 0.6,\n },\n line: {\n spanGaps: true,\n },\n },\n indexAxis: 'y',\n scales: {\n y: {\n grid: {\n drawBorder: false,\n },\n ticks: {\n font: {\n size: parseInt(fontSize('s')),\n },\n },\n },\n },\n elements: {\n point: {\n radius: 0,\n },\n line: {\n borderColor: getThemeColorHexString('medium'),\n },\n },\n },\n },\n column: {\n type: 'bar',\n options: {\n datasets: {\n bar: {\n barPercentage: 0.6,\n },\n line: {\n spanGaps: true,\n },\n },\n indexAxis: 'x',\n scales: {\n x: {\n grid: {\n drawBorder: false,\n },\n ticks: {\n font: {\n size: parseInt(fontSize('xs')),\n },\n },\n },\n },\n elements: {\n line: {\n tension: 0.2,\n borderColor: getThemeColorHexString('medium'),\n },\n point: {\n radius: 0,\n },\n },\n },\n },\n line: {\n type: 'line',\n options: {\n backgroundColor: getThemeColorRgbString('semi-light', 0.5),\n scales: {\n x: {\n grid: {\n borderColor: getThemeColorHexString('medium'),\n borderWidth: 1,\n },\n ticks: {\n font: {\n size: parseInt(fontSize('xs')),\n },\n },\n },\n },\n elements: {\n point: {\n radius: 0,\n },\n },\n },\n },\n stock: {\n type: 'line',\n options: {\n responsive: true,\n animation: {\n duration: 0,\n },\n layout: {\n padding: {\n left: 20,\n right: 20,\n top: 30,\n bottom: 0,\n },\n },\n backgroundColor: getThemeColorRgbString('semi-light', 0.5),\n scales: {\n x: {\n grid: {\n lineWidth: 0,\n },\n ticks: {\n maxRotation: 0,\n autoSkipPadding: 120,\n font: {\n size: parseInt(fontSize('xs')),\n },\n },\n },\n y: {\n position: 'right',\n display: true,\n grid: {\n drawBorder: false,\n },\n ticks: {\n display: true,\n font: {\n size: parseInt(fontSize('xs')),\n },\n },\n },\n },\n elements: {\n line: {\n tension: 0, // Smooth curve (0 = no smoothing)\n borderWidth: 2,\n },\n point: {\n hitRadius: 20,\n radius: 0,\n hoverRadius: 0,\n hoverBorderWidth: 0,\n },\n },\n normalized: true,\n plugins: {\n tooltip: {\n padding: 10,\n\n enabled: true,\n mode: 'index',\n intersect: false,\n backgroundColor: getThemeColorHexString('semi-light'),\n titleColor: getThemeColorHexString('semi-light-contrast'),\n bodyColor: getThemeColorHexString('semi-light-contrast'),\n caretSize: 0,\n bodySpacing: 5,\n titleSpacing: 5,\n borderColor: 'transparent',\n callbacks: {\n labelColor: (tooltipItem: TooltipItem<keyof ChartTypeRegistry>) => {\n return {\n backgroundColor: tooltipItem.dataset.borderColor,\n } as TooltipLabelStyle;\n },\n },\n },\n datalabels: {\n backgroundColor: (context: Context) => context.dataset.borderColor as Color,\n color: getThemeColorHexString('white'),\n borderRadius: 3,\n font: {\n lineHeight: 1,\n size: parseInt(fontSize('xs')),\n },\n padding: {\n top: 6,\n left: 5,\n right: 5,\n bottom: 5,\n },\n offset: 5,\n align: (context: Context): Align =>\n (getChartPointFromContext(context) as any)?.datalabel.position,\n display: (context: Context): boolean =>\n !!(getChartPointFromContext(context) as any)?.datalabel,\n formatter: (value: any): string => value.datalabel.value,\n },\n },\n },\n },\n};\n","import { Injectable } from '@angular/core';\nimport { ChartType as ChartJSType } from 'chart.js';\nimport { AnnotationType, AnnotationTypeRegistry } from 'chartjs-plugin-annotation';\n\nimport { deepCopy } from '../../../helpers/deep-copy';\nimport { ChartType, ChartTypeConfig } from '../chart.types';\n\nimport { CHART_ANNOTATIONS_CONFIG } from './annotations.config';\nimport { CHART_INTERACTION_FUNCTIONS_EXTENSIONS } from './interaction-functions-extensions.config';\nimport { CHART_TYPES_CONFIG } from './type.config';\n\n@Injectable()\nexport class ChartConfigService {\n public getTypeConfig(chartType: ChartType): ChartTypeConfig {\n /* Deep copy to avoid Chart object modifying parts of CHART_TYPES_CONFIG \n as it copies by reference when initialized */\n return deepCopy(CHART_TYPES_CONFIG[chartType]);\n }\n\n public getAnnotationDefaults(type: AnnotationType): AnnotationTypeRegistry[AnnotationType] {\n return CHART_ANNOTATIONS_CONFIG[type];\n }\n\n public getInteractionFunctionsExtensions() {\n return CHART_INTERACTION_FUNCTIONS_EXTENSIONS;\n }\n\n /* Our types does not always map 1 to 1 to the same type \n that the chart.js chart is actually oconfigured with. Therefore this function \n for looking up the ChartJSType of a type. */\n public chartTypeToChartJSType(chartType: ChartType): ChartJSType {\n return CHART_TYPES_CONFIG[chartType]['type'] as ChartJSType;\n }\n}\n","import { ElementRef, Injectable } from '@angular/core';\nimport { ActiveElement, ChartConfiguration, ChartOptions, ScatterDataPoint } from 'chart.js';\nimport { AnnotationOptions } from 'chartjs-plugin-annotation';\nimport { toDate } from 'date-fns';\n\nimport { mergeDeepAll } from '../../../helpers/merge-deep';\nimport {\n ChartDataLabelOptions,\n ChartDataset,\n ChartHighlightedElements,\n ChartLabel,\n ChartLocale,\n ChartType,\n isNumberArray,\n} from '../chart.types';\nimport { ChartConfigService } from '../configs/chart-config.service';\n\nimport { Chart } from './configured-chart-js';\n\nconst CHART_LOCALE_DEFAULT = 'en-US';\n\n@Injectable()\nexport class ChartJSService {\n private chart: Chart;\n private dataLabelOptions: ChartDataLabelOptions;\n private highlightedElements: ChartHighlightedElements;\n private chartType: ChartType;\n private locale: ChartLocale;\n\n constructor(private chartConfigService: ChartConfigService) {}\n\n public renderChart(args: {\n targetElement: ElementRef<HTMLCanvasElement>;\n type: ChartType;\n data: ChartDataset[] | number[];\n labels?: ChartLabel[];\n customOptions?: ChartOptions;\n annotations?: AnnotationOptions[];\n dataLabelOptions?: ChartDataLabelOptions;\n highlightedElements?: ChartHighlightedElements;\n }): void {\n const {\n targetElement,\n type,\n data,\n labels,\n customOptions,\n annotations,\n dataLabelOptions,\n highlightedElements,\n } = args;\n\n this.dataLabelOptions = dataLabelOptions || null;\n this.highlightedElements = highlightedElements || null;\n this.chartType = type;\n this.locale = dataLabelOptions?.locale || CHART_LOCALE_DEFAULT;\n\n const datasets = this.createDatasets(data);\n\n const options = this.createOptionsObject({\n customOptions,\n annotations,\n dataLabelOptions,\n });\n let config = this.createConfigurationObject(type, datasets, options, labels);\n\n this.initializeNewChart(targetElement.nativeElement, config);\n }\n\n public redrawChart() {\n this.chart.update();\n }\n\n public updateData(data: ChartDataset[] | number[]): void {\n const datasets = this.createDatasets(data);\n\n this.chart.data.datasets = datasets;\n }\n\n public updateLabels(labels: ChartLabel[]) {\n /* As labels provided via the 'labels' input property always has \n highest priority - we can just set the property directly */\n this.chart.data.labels = labels;\n }\n\n public updateType(type: ChartType, customOptions?: ChartOptions) {\n if (type === 'bar' || type === 'column') {\n /* indexAxis does not update predictably; update by replacing \n the chart entirely instead */\n this.destructivelyUpdateType(type, customOptions);\n } else {\n this.nonDestructivelyUpdateType(type, customOptions);\n }\n }\n\n public setDataLabelOptions(dataLabelOptions: ChartDataLabelOptions) {\n this.dataLabelOptions = dataLabelOptions;\n }\n\n public updateOptions(customOptions: ChartOptions, type: ChartType) {\n const annotations = this.getExistingChartAnnotations();\n this.chartType = type;\n this.chart.options = this.createOptionsObject({ customOptions, annotations });\n }\n\n public updateAnnotations(annotations: AnnotationOptions[]) {\n const annotationsWithDefaults = this.applyDefaultsToAnnotations(annotations);\n this.chart.options.plugins.annotation.annotations = annotationsWithDefaults;\n }\n\n public updateHighlightedElements(highlightedElements?: ChartHighlightedElements) {\n this.highlightedElements = highlightedElements;\n const oldDatasets = this.chart.data.datasets as ChartDataset[];\n\n // Clear old datasets of highlighted elements\n oldDatasets.map((dataset) => {\n if (dataset?.kirbyOptions?.highlightedElements) {\n delete dataset.kirbyOptions.highlightedElements;\n }\n });\n\n this.chart.data.datasets = this.createDatasets(oldDatasets);\n }\n\n private getExistingChartAnnotations(): AnnotationOptions[] {\n const annotations = this.chart.options.plugins?.annotation?.annotations;\n /* In browser chart.js might return annotations as a Proxy object; force it to be an array.\n Each annotationOption in the resulting array will also be a Proxy object. \n But internally chart.js will just work with them as normal values */\n if (annotations !== undefined) {\n return Object.keys(annotations).map((key) => annotations[key]);\n } else {\n return [];\n }\n }\n\n private destructivelyUpdateType(type: ChartType, customOptions?: ChartOptions) {\n const datasets = this.chart.data.datasets as ChartDataset[];\n const labels = this.chart.data.labels as ChartLabel[]; // chart.js stores labels as unknown[]; cast it to ChartLabel[]\n const annotations = this.getExistingChartAnnotations();\n\n this.chartType = type;\n const options = this.createOptionsObject({ customOptions, annotations });\n const config = this.createConfigurationObject(type, datasets, options, labels);\n const canvasElement = this.chart.canvas;\n\n this.chart.destroy();\n this.initializeNewChart(canvasElement, config);\n }\n\n private nonDestructivelyUpdateType(chartType: ChartType, customOptions?: ChartOptions) {\n const annotations = this.getExistingChartAnnotations();\n this.chartType = chartType;\n const options = this.createOptionsObject({\n customOptions,\n annotations,\n });\n\n this.chart.options = options;\n this.chart.config.type = this.chartConfigService.chartTypeToChartJSType(chartType);\n }\n\n private initializeNewChart(canvasElement: HTMLCanvasElement, config: ChartConfiguration) {\n this.chart = new Chart(canvasElement, config);\n }\n\n private createBlankLabels(datasets: ChartDataset[]): string[] {\n const largestDataset = datasets.reduce((previousDataset, currentDataset) =>\n previousDataset.data.length > currentDataset.data.length ? previousDataset : currentDataset\n );\n return Array(largestDataset.data.length).fill('');\n }\n\n private applyDefaultsToAnnotations(annotations: AnnotationOptions[]) {\n return annotations.map((annotation) => {\n const annotationTypeDefaults = this.chartConfigService.getAnnotationDefaults(annotation.type);\n return mergeDeepAll(annotationTypeDefaults, annotation);\n });\n }\n\n private createAnnotationPluginOptionsObject(annotations: AnnotationOptions[]) {\n const annotationsWithDefaults = this.applyDefaultsToAnnotations(annotations);\n return {\n plugins: {\n annotation: {\n annotations: annotationsWithDefaults,\n },\n },\n };\n }\n\n private applyInteractionFunctionsExtensions(options: ChartOptions): ChartOptions {\n const interactionFunctionsExtensions =\n this.chartConfigService.getInteractionFunctionsExtensions();\n Object.entries(interactionFunctionsExtensions).forEach(([key, _]) => {\n const callback = options[key];\n options[key] = (e: Event, a: ActiveElement[], c: Chart) => {\n interactionFunctionsExtensions[key](e, a, c, callback);\n };\n });\n return options;\n }\n\n private createStockOptionsObject(dataLabelOptions: ChartDataLabelOptions) {\n return {\n locale: this.locale,\n plugins: {\n tooltip: {\n callbacks: {\n title: (tooltipItems) => {\n const date = toDate((tooltipItems[0]?.raw as any)?.x);\n if (date.valueOf()) {\n return date.toLocaleTimeString(this.locale, {\n day: 'numeric',\n month: 'short',\n hour: '2-digit',\n minute: '2-digit',\n });\n }\n },\n label: (context) => {\n // It's not possible to add spacing between color legend and text so we\n // prefix with a space.\n return ' ' + context.formattedValue + (dataLabelOptions.valueSuffix || '');\n },\n },\n },\n },\n scales: {\n y: {\n ticks: {\n callback: (value) => {\n return value + (dataLabelOptions.valueSuffix || '');\n },\n },\n },\n },\n };\n }\n\n private createOptionsObject(args: {\n customOptions?: ChartOptions;\n annotations?: AnnotationOptions[];\n dataLabelOptions?: ChartDataLabelOptions;\n }): ChartOptions {\n const { customOptions, annotations, dataLabelOptions: chartDataLabelOptions } = args;\n\n const typeConfig = this.chartConfigService.getTypeConfig(this.chartType);\n const typeConfigOptions = typeConfig?.options;\n const annotationPluginOptions = annotations\n ? this.createAnnotationPluginOptionsObject(annotations)\n : {};\n const stockOptions: ChartOptions =\n this.chartType === 'stock' ? this.createStockOptionsObject(chartDataLabelOptions) : {};\n\n let options: ChartOptions = mergeDeepAll(\n stockOptions,\n typeConfigOptions,\n customOptions,\n annotationPluginOptions\n );\n\n return this.applyInteractionFunctionsExtensions(options);\n }\n\n private getDefaultStockLabels(datasets: ChartDataset[], locale: ChartLocale) {\n const largestDataset = datasets.reduce((previousDataset, currentDataset) =>\n previousDataset.data.length > currentDataset.data.length ? previousDataset : currentDataset\n );\n return largestDataset.data.map((point: ScatterDataPoint) =>\n toDate(point.x).toLocaleDateString(locale, {\n month: 'short',\n day: 'numeric',\n })\n );\n }\n\n private getLabelsToApply(args: {\n datasets: ChartDataset[];\n type: ChartType;\n indexAxis: 'x' | 'y';\n labels?: ChartLabel[];\n }) {\n const { datasets, labels, type, indexAxis } = args;\n\n const datasetHasLabels = ({ data }: ChartDataset) =>\n !!data?.some(\n (datapoint) => typeof datapoint === 'object' && typeof datapoint[indexAxis] === 'string'\n );\n\n /*\n Labels can be provided by the user two ways:\n 1. As a seperate ChartLabel[] via the 'labels' input prop - this has highest priority\n 2. Together with the dataset via the 'data' input prop - here each datapoint contains \n a label for the indexAxis. \n For example: { x: 'label1', y: 1} in the case where the index axis is 'x'. \n\n If no labels are provided then default labels are used. \n */\n const labelsAreGivenAsSeperateArray = labels !== undefined;\n const labelsAreGivenTogetherWithDataset = datasets.some(datasetHasLabels);\n\n if (labelsAreGivenAsSeperateArray) {\n return labels;\n } else if (labelsAreGivenTogetherWithDataset) {\n return null;\n } else {\n /* \n Chart.js requires labels along the index axis to render anything therefore\n all other types than stock uses empty labels as default. The stock type \n displays day & month as default. \n */\n return type === 'stock'\n ? this.getDefaultStockLabels(datasets, this.locale)\n : this.createBlankLabels(datasets);\n }\n }\n\n private createConfigurationObject(\n type: ChartType,\n datasets: ChartDataset[],\n options: ChartOptions,\n labels?: ChartLabel[]\n ): ChartConfiguration {\n const typeConfig = this.chartConfigService.getTypeConfig(type);\n\n const indexAxis = typeConfig?.options?.indexAxis ?? 'x';\n const labelsToApply = this.getLabelsToApply({ labels, datasets, type, indexAxis });\n\n return mergeDeepAll(typeConfig, {\n data: {\n labels: labelsToApply,\n datasets,\n },\n options,\n }) as ChartConfiguration;\n }\n\n private addHighlightedElementsToDatasets(\n highlightedElements: ChartHighlightedElements,\n datasets: ChartDataset[]\n ) {\n highlightedElements.forEach(([datasetIndex, dataIndex]) => {\n const dataset = datasets[datasetIndex];\n if (!dataset) return;\n\n if (dataset?.kirbyOptions?.highlightedElements) {\n dataset.kirbyOptions.highlightedElements.push(dataIndex);\n } else {\n dataset.kirbyOptions = {\n ...dataset.kirbyOptions,\n highlightedElements: [dataIndex],\n };\n }\n });\n }\n private createDatasets(data: ChartDataset[] | number[]): ChartDataset[] {\n // We need to modify the datasets in order to add datalabels.\n if (\n this.dataLabelOptions?.showCurrent ||\n this.dataLabelOptions?.showMax ||\n this.dataLabelOptions?.showMin\n ) {\n data = this.addDataLabelsData(data);\n }\n let datasets = isNumberArray(data) ? [{ data }] : data;\n if (this.highlightedElements)\n this.addHighlightedElementsToDatasets(this.highlightedElements, datasets);\n\n /* \n Hacky solution. Should be fixed in this issue:\n https://github.com/kirbydesign/designsystem/issues/1967 \n */\n if (this.chartType === 'stock') {\n datasets.forEach((dataset) => {\n dataset.kirbyOptions = {\n ...dataset.kirbyOptions,\n isStockChart: true,\n };\n });\n }\n\n return datasets;\n }\n /**\n * Decorate ChartDataset with properties to allow for datalabels.\n *\n * @param data\n * @returns ChartDataset[]\n */\n public addDataLabelsData(data: ChartDataset[] | number[]): ChartDataset[] {\n if (isNumberArray(data)) {\n throw Error(\"Currently it's impossible to add dataLabels to non ScatterDataPoint datasets\");\n }\n\n const decorateDataPoint = (\n set: ChartDataset,\n axis: 'x' | 'y',\n direction: 'high' | 'low',\n position: 'bottom' | 'top' | 'left' | 'right'\n ): void => {\n const { value, pointer } = this.locateValueIndexInDataset(set, axis, direction);\n set.data[pointer] = {\n ...(set.data[pointer] as ScatterDataPoint),\n datalabel: {\n value: value + (this.dataLabelOptions.valueSuffix || ''),\n position,\n },\n } as ScatterDataPoint;\n };\n\n data.map((set) => {\n if (this.dataLabelOptions.showMin) {\n decorateDataPoint(set, 'y', 'low', 'bottom');\n }\n if (this.dataLabelOptions.showMax) {\n decorateDataPoint(set, 'y', 'high', 'top');\n }\n if (this.dataLabelOptions.showCurrent) {\n decorateDataPoint(set, 'x', 'high', 'right');\n }\n });\n return data;\n }\n\n private locateValueIndexInDataset(\n dataset: ChartDataset,\n axis: string,\n direction: 'low' | 'high'\n ): { value: number; pointer: number } {\n let pointer: number;\n let value: number;\n dataset.data.forEach((datapoint, index) => {\n if (direction == 'low' && (!value || datapoint[axis] < value)) {\n value = datapoint['y'];\n pointer = index;\n }\n if (direction == 'high' && (!value || datapoint[axis] > value)) {\n value = datapoint['y'];\n pointer = index;\n }\n });\n return { value, pointer };\n }\n}\n","import {\n AfterViewInit,\n Component,\n ElementRef,\n HostBinding,\n Input,\n OnChanges,\n SimpleChanges,\n ViewChild,\n} from '@angular/core';\nimport { ChartOptions } from 'chart.js';\nimport { AnnotationOptions } from 'chartjs-plugin-annotation';\n\nimport { ResizeObserverFactory } from '../shared';\n\nimport { ChartJSService } from './chart-js/chart-js.service';\nimport {\n ChartDataLabelOptions,\n ChartDataset,\n ChartHighlightedElements,\n ChartLabel,\n ChartType,\n} from './chart.types';\n\n@Component({\n selector: 'kirby-chart',\n templateUrl: './chart.component.html',\n styleUrls: ['./chart.component.scss'],\n providers: [ChartJSService],\n})\nexport class ChartComponent implements AfterViewInit, OnChanges {\n @Input() type: ChartType = 'column';\n @Input() data: ChartDataset[] | number[];\n\n @Input() labels: ChartLabel[];\n\n @Input() customOptions?: ChartOptions;\n @Input() dataLabelOptions?: ChartDataLabelOptions;\n @Input() annotations?: AnnotationOptions[];\n @Input() highlightedElements?: ChartHighlightedElements;\n\n @HostBinding('style.--kirby-chart-height')\n _height: string;\n @Input() set height(value: string | number) {\n this._height = typeof value === 'number' ? `${value}px` : value;\n }\n\n @ViewChild('chartCanvas')\n canvasElement: ElementRef<HTMLCanvasElement>;\n\n private chartHasBeenRendered: boolean = false;\n\n constructor(private chartJSService: ChartJSService) {}\n\n ngAfterViewInit() {\n /* \n A chart is not rendered until it has both a height and a width. \n If ChartComponent is slotted in an ionic component it will\n not have any height or width on afterViewInit. This will cause \n the animation to not be played on first draw. \n */\n const canvasElement = this.canvasElement.nativeElement;\n this.whenElementHasHeightAndWidth(canvasElement).then(() => this.renderChart());\n }\n\n private whenElementHasHeightAndWidth(element: HTMLElement): Promise<void> {\n const rectIs2D = ({ width, height }) => height > 0 && width > 0;\n\n return new Promise((resolve) => {\n const initialClientRect = element.getBoundingClientRect();\n if (rectIs2D(initialClientRect)) resolve();\n\n const resizeObserver = new ResizeObserverFactory().create(([resizeObserverEntry]) => {\n if (rectIs2D(resizeObserverEntry.contentRect)) {\n resizeObserver.unobserve(element);\n resolve();\n }\n });\n\n resizeObserver.observe(element);\n });\n }\n\n ngOnChanges(simpleChanges: SimpleChanges) {\n if (this.chartHasBeenRendered) {\n let shouldRedrawChart = false;\n\n const keyUpdateFnPairs = {\n data: () => this.updateData(),\n labels: () => this.updateLabels(),\n type: () => this.updateType(),\n customOptions: () => this.updateCustomOptions(),\n annotations: () => this.updateAnnotations(),\n highlightedElements: () => this.updateHighlightedElements(),\n };\n\n Object.entries(simpleChanges).forEach(([key]) => {\n if (simpleChanges[key].firstChange || !keyUpdateFnPairs[key]) return;\n shouldRedrawChart = true;\n keyUpdateFnPairs[key]();\n });\n\n if (shouldRedrawChart) this.redrawChart();\n }\n }\n\n private renderChart() {\n this.chartHasBeenRendered = true;\n this.chartJSService.renderChart({\n targetElement: this.canvasElement,\n type: this.type,\n data: this.data,\n labels: this.labels,\n customOptions: this.customOptions,\n annotations: this.annotations,\n dataLabelOptions: this.dataLabelOptions,\n highlightedElements: this.highlightedElements,\n });\n }\n\n private updateData() {\n this.chartJSService.updateData(this.data);\n }\n\n private updateLabels() {\n this.chartJSService.updateLabels(this.labels);\n }\n\n private updateType() {\n this.chartJSService.updateType(this.type, this.customOptions);\n }\n\n private updateCustomOptions() {\n this.chartJSService.updateOptions(this.customOptions, this.type);\n }\n\n private updateAnnotations() {\n this.chartJSService.updateAnnotations(this.annotations);\n }\n\n private updateHighlightedElements() {\n this.chartJSService.updateHighlightedElements(this.highlightedElements);\n }\n\n private redrawChart() {\n this.chartJSService.redrawChart();\n }\n}\n","<div class=\"chart-container\">\n <canvas #chartCanvas>\n <!-- Slotted content makes it possible to insert fallback content for screen readers \n https://www.chartjs.org/docs/latest/general/accessibility.html-->\n <ng-content></ng-content>\n </canvas>\n</div>\n","import { NgModule } from '@angular/core';\n\nimport { ChartComponent } from './chart.component';\nimport { ChartConfigService } from './configs/chart-config.service';\n\n@NgModule({\n declarations: [ChartComponent],\n exports: [ChartComponent],\n providers: [ChartConfigService],\n})\nexport class ChartModule {}\n","import { formatNumber } from '@angular/common';\nimport { Options } from 'highcharts';\nimport { dateFormat } from 'highcharts/highstock';\n\nimport { ColorHelper } from '@kirbydesign/core';\n\nexport interface StockChartDeprecatedDataPoint {\n x: number;\n y: number;\n id: 'min' | 'max' | '';\n}\n\nexport const stockChartDeprecatedOptions = (locale: string, height: number) => {\n const options: Options = defaultOptions(locale) as Options;\n const transparentColor = 'rgba(255,255,255,0)';\n options.chart.backgroundColor = transparentColor;\n options.chart.height = height;\n\n options.tooltip.backgroundColor = ColorHelper.getThemeColorRgbString('background-color');\n // Using a function instead of a lamdba-expression because of a reference to this.\n options.tooltip.formatter = function () {\n return (\n '<div class=\"kirby-text-xsmall\">' +\n // @ts-ignore\n dateFormat('%e. %b', new Date(this.x)) +\n '</div><br/><div class=\"kirby-text-small kirby-text-bold\">' +\n formatNumber(this.y, locale) +\n '</div>'\n );\n };\n options.plotOptions.area.fillColor = transparentColor;\n options.plotOptions.area.lineColor = ColorHelper.getThemeColorRgbString('tertiary');\n\n options.plotOptions.area.marker.lineColor = 'rgba(255,255,255,0.3)';\n options.plotOptions.area.marker.fillColor = ColorHelper.getThemeColorRgbString('primary');\n\n options.xAxis = {\n ...options.xAxis,\n crosshair: {\n color: ColorHelper.getThemeColorRgbString('primary'),\n },\n tickColor: transparentColor,\n lineColor: ColorHelper.getThemeColorRgbString('medium'),\n labels: {\n style: {\n color: ColorHelper.getThemeColorRgbString('semi-dark-tint'),\n },\n },\n };\n\n options.yAxis = {\n ...options.yAxis,\n lineColor: transparentColor,\n gridLineColor: ColorHelper.getThemeColorRgbString('medium'),\n labels: {\n style: {\n color: ColorHelper.getThemeColorRgbString('semi-dark-tint'),\n },\n },\n };\n\n /*\n // Using a function instead of a lamdba-expression because of a reference to this.\n options.plotOptions.area.events.mouseOver = function() {\n const transparentColor = 'rgba(255,255,255,0)';\n this.chart.xAxis[0].update({\n tickColor: transparentColor,\n lineColor: ColorHelper.getThemeColorRgbString('medium'),\n labels: {\n style: {\n color: ColorHelper.getThemeColorRgbString('semi-dark-tint'),\n },\n },\n });\n };\n\n // Using a function instead of a lamdba-expression because of a reference to this.\n options.plotOptions.area.events.mouseOut = function() {\n const transparentColor = 'rgba(255,255,255,0)';\n this.chart.xAxis[0].update({\n lineColor: transparentColor,\n labels: {\n style: {\n color: transparentColor,\n },\n },\n });\n };\n */\n\n return options;\n};\n\nexport const annotations = (locale: string): Highcharts.AnnotationsOptions => {\n return {\n id: 'minmax',\n zIndex: 2,\n labels: [\n {\n point: 'max',\n shape: 'rect',\n distance: 5,\n align: 'center',\n verticalAlign: 'top',\n backgroundColor: ColorHelper.getThemeColorRgbString('tertiary'),\n // Using a function instead of a lamdba-expression because of a reference to this.\n formatter: function () {\n return formatNumber(this.y, locale, '1.1-1');\n },\n },\n {\n point: 'min',\n shape: 'rect',\n distance: -28,\n align: 'center',\n verticalAlign: 'bottom',\n backgroundColor: ColorHelper.getThemeColorRgbString('tertiary'),\n // Using a function instead of a lamdba-expression because of a reference to this.\n formatter: function () {\n return formatNumber(this.y, locale, '1.1-1');\n },\n },\n ],\n labelOptions: {\n y: 0,\n allowOverlap: true,\n },\n };\n};\n\nconst defaultOptions = (locale: string) => {\n return {\n chart: {\n zoomType: 'x',\n type: 'StockChart',\n spacingTop: 30,\n //spacingRight: 55,\n },\n navigator: {\n enabled: false,\n },\n rangeSelector: {\n enabled: false,\n },\n scrollbar: {\n enabled: false,\n },\n credits: {\n enabled: false,\n },\n title: {\n text: '',\n },\n subtitle: {\n text: '',\n },\n xAxis: {\n ordinal: true,\n type: 'datetime',\n lineWidth: 0.5,\n opposite: false,\n labels: {\n format: '{value:%Y-%b-%e %l:%M %p }',\n },\n },\n yAxis: {\n opposite: false,\n title: {\n text: '',\n },\n /* Doesn't work before upgrade.\n labels: {\n x: 0,\n y: 10,\n align: 'right',\n },\n */\n },\n annotations: [annotations(locale)],\n legend: {\n enabled: false,\n },\n tooltip: {\n crosshairs: {\n width: 1,\n zIndex: 2,\n },\n shadow: false,\n borderWidth: 0,\n },\n plotOptions: {\n area: {\n marker: {\n lineWidth: 16,\n radius: 7,\n },\n lineWidth: 2,\n states: {\n hover: {\n lineWidth: 2,\n },\n },\n events: {},\n threshold: null,\n },\n series: {\n marker: {\n zIndex: 100,\n enabledThreshold: 50,\n },\n },\n },\n series: [\n {\n type: 'area',\n data: [],\n },\n ],\n };\n};\n","import { Component, ElementRef, Inject, Input, LOCALE_ID } from '@angular/core';\nimport { Options } from 'highcharts';\nimport * as Highcharts from 'highcharts/highstock';\nimport AnnotationsModule from 'highcharts/modules/annotations';\n\nimport {\n annotations,\n StockChartDeprecatedDataPoint,\n} from './options/stock-chart-deprecated-options';\n\n// @ts-ignore\nAnnotationsModule(Highcharts);\n\n@Component({\n selector: 'kirby-stock-chart-deprecated',\n template: '',\n styleUrls: ['./stock-chart-deprecated.component.scss'],\n})\nexport class StockChartDeprecatedComponent {\n chartContainer: ElementRef;\n private _data: StockChartDeprecatedDataPoint[];\n @Input() set data(val: StockChartDeprecatedDataPoint[]) {\n this.onDataChanges(val);\n }\n get data() {\n return this._data;\n }\n private _options: Options;\n @Input() set options(val: Options) {\n this.onOptionsChanges(val);\n }\n get options() {\n return this._options;\n }\n private _height = 300;\n @Input() set height(height: number) {\n this._height = height;\n if (this.chart) {\n this.chart.setSize(null, height);\n }\n }\n get height() {\n return this._height;\n }\n @Input() description = '';\n @Input() showDataLabels = true;\n\n chart: Highcharts.Chart;\n\n constructor(hostElement: ElementRef, @Inject(LOCALE_ID) private locale: string) {\n this.chartContainer = hostElement;\n }\n\n onOptionsChanges(options: Options) {\n this._options = options;\n this.chart = Highcharts.stockChart(this.chartContainer.nativeElement, this._options);\n }\n\n onDataChanges(data: StockChartDeprecatedDataPoint[]) {\n this._data = data;\n\n if (this.chart != null) {\n // First delete all points in the previous series.\n this.chart.update(\n {\n series: [],\n },\n false,\n true\n );\n // Remove the annotations.\n this.chart.removeAnnotation('minmax');\n // Then update the chart with new series data.\n this.chart.update(\n {\n series: [\n {\n type: 'area',\n data: data,\n },\n ],\n },\n false,\n true\n );\n // Add the new annotations.\n this.chart.addAnnotation(annotations(this.locale), false);\n // And finally redraw the graph with all the changes.\n this.chart.redraw();\n }\n }\n}\n","import { ElementRef, Injectable } from '@angular/core';\n\nimport { WindowRef } from '../../../types/window-ref';\n\nimport { CalendarOptions } from './calendar-options.model';\n\n@Injectable()\nexport class CalendarHelper {\n private embeddedView: Window;\n private embeddedViewReady = false;\n\n constructor(private windowRef: WindowRef) {}\n\n public init(\n calendarContainer: ElementRef,\n options: CalendarOptions,\n onDaySelected: (cell: { isSelectable: boolean; date: number }) => void,\n onChangeMonth: (index: number) => void\n ) {\n if (this.hasEmbeddedView(calendarContainer)) {\n const iframe = <HTMLIFrameElement>calendarContainer.nativeElement;\n iframe.onload = () => {\n this.embeddedViewReady = true;\n this.emitOptionsToEmbeddedView(options);\n };\n this.embeddedView = iframe.contentWindow;\n\n this.windowRef.nativeWindow.addEventListener('message', (event: MessageEvent) =>\n this.handleMessageEvent(event, onDaySelected, onChangeMonth)\n );\n }\n }\n\n public update(options: CalendarOptions) {\n if (this.embeddedViewReady) {\n this.emitOptionsToEmbeddedView(options);\n }\n }\n\n public setSelectedDay(day: number) {\n if (this.embeddedViewReady) {\n this.embeddedView.postMessage(\n {\n type: 'kirbyCalendarSetSelectedDay',\n selectedDay: day,\n },\n '*'\n );\n }\n }\n\n private hasEmbeddedView(calendarContainer: ElementRef) {\n return (\n calendarContainer &&\n calendarContainer.nativeElement &&\n calendarContainer.nativeElement instanceof HTMLIFrameElement &&\n calendarContainer.nativeElement.contentWindow\n );\n }\n\n private emitOptionsToEmbeddedView(options: CalendarOptions) {\n this.embeddedView.postMessage(\n {\n type: 'kirbyCalendarInit',\n ...options,\n },\n '*'\n );\n }\n\n private handleMessageEvent(\n event: MessageEvent,\n onDaySelected: (cell: { isSelectable: boolean; date: number }) => void,\n onChangeMonth: (index: number) => void\n ) {\n if (this.validateMessage(event)) {\n switch (event.data.type) {\n case 'kirbyCalendarDaySelected':\n if (this.validateDateSelectedMessage(event)) {\n onDaySelected({ isSelectable: true, date: event.data.day });\n }\n break;\n case 'kirbyCalendarChangeMonth':\n if (this.validateNavigateMonthMessage(event)) {\n onChangeMonth(event.data.index);\n }\n break;\n }\n }\n }\n\n private validateMessage(event: MessageEvent) {\n return (\n this.embeddedView === event.source &&\n event.type === 'message' &&\n event.data &&\n event.data.type\n );\n }\n\n private validateDateSelectedMessage(event: MessageEvent) {\n return event.data.type === 'kirbyCalendarDaySelected' && event.data.day;\n }\n\n private validateNavigateMonthMessage(event: MessageEvent) {\n return event.data.type === 'kirbyCalendarChangeMonth' && typeof event.data.index === 'number';\n }\n}\n","import { ChangeDetectionStrategy, Component, HostBinding, Input } from '@angular/core';\n\nexport enum ItemSize {\n XS = 'xs',\n SM = 'sm',\n MD = 'md',\n}\n\n@Component({\n selector: 'kirby-item',\n templateUrl: './item.component.html',\n styleUrls: ['./item.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ItemComponent {\n @Input() disabled: boolean;\n @HostBinding('class.selected')\n @Input()\n selected: boolean;\n @Input()\n selectable: boolean;\n @Input()\n reorderable: boolean;\n @HostBinding('class')\n @Input()\n size: ItemSize | `${ItemSize}` = ItemSize.MD;\n\n // Prevent default when inside kirby-dropdown to avoid blurring dropdown:\n onMouseDown(event: MouseEvent) {\n if (\n event.currentTarget instanceof HTMLElement &&\n event.currentTarget.closest('kirby-dropdown')\n ) {\n event.preventDefault();\n }\n }\n}\n","<ion-item\n lines=\"none\"\n [attr.disabled]=\"disabled\"\n [attr.button]=\"selectable ? true : null\"\n [attr.tabindex]=\"selectable ? null : 0\"\n detail=\"false\"\n (mousedown)=\"onMouseDown($event)\"\n>\n <div class=\"outside\" slot=\"start\">\n <ng-content select=\"[slot='outside']\"></ng-content>\n </div>\n <ng-content></ng-content>\n <ion-reorder slot=\"end\" *ngIf=\"reorderable\">\n <kirby-icon name=\"reorder\"></kirby-icon>\n </ion-reorder>\n</ion-item>\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[kirbyListItemTemplate]',\n})\nexport class ListItemTemplateDirective {}\n\n@Directive({\n selector: '[kirbyListHeader], [kirbyListHeaderTemplate]',\n})\nexport class ListHeaderDirective {}\n\n@Directive({\n selector: '[kirbyListSectionHeader], [kirbyListSectionHeaderTemplate]',\n})\nexport class ListSectionHeaderDirective {}\n\n@Directive({\n selector: '[kirbyListFooter], [kirbyListFooterTemplate]',\n})\nexport class ListFooterDirective {}\n","import {\n AfterViewInit,\n Component,\n ElementRef,\n EventEmitter,\n HostListener,\n Input,\n OnDestroy,\n Output,\n Renderer2,\n ViewChild,\n} from '@angular/core';\n\nimport { DesignTokenHelper } from '../../helpers';\n\nexport enum HorizontalDirection {\n right = 'right',\n left = 'left',\n}\n\n@Component({\n selector: 'kirby-popover',\n template: ` <div #wrapper class=\"wrapper\"><ng-content></ng-content></div> `,\n styleUrls: ['./popover.component.scss'],\n})\nexport class PopoverComponent implements AfterViewInit, OnDestroy {\n // removeEventListener same instance of event handler & options\n private readonly preventScrollEventListenerOptions = {\n passive: false,\n } as EventListenerOptions;\n\n private readonly POPOVER_BODY_PADDING = 12;\n\n private isShowing: boolean = false;\n private isFirstToLockScroll: boolean;\n private zIndex: number;\n private document: Document;\n\n @ViewChild('wrapper', { static: true, read: ElementRef })\n wrapperElement: ElementRef<HTMLDivElement>;\n\n @Input()\n popout: HorizontalDirection | `${HorizontalDirection}` = HorizontalDirection.right;\n\n @Input()\n target: HTMLElement | ElementRef<HTMLElement>;\n\n @Output()\n willHide = new EventEmitter<void>();\n\n private get targetElement(): HTMLElement {\n if (this.target instanceof ElementRef) {\n return this.target.nativeElement;\n } else {\n return this.target;\n }\n }\n\n @HostListener('click')\n _backdropClick() {\n this.willHide.emit();\n this.hide();\n }\n\n @HostListener('window:resize')\n _onWindowResize() {\n if (this.isShowing) {\n this.willHide.emit();\n this.hide();\n }\n }\n\n constructor(private elementRef: ElementRef<HTMLElement>, private renderer: Renderer2) {\n this.document = elementRef.nativeElement.ownerDocument;\n }\n\n ngAfterViewInit(): void {\n this.placePopoverAboveClosestModal();\n this.renderer.removeChild(\n this.elementRef.nativeElement.parentElement,\n this.elementRef.nativeElement\n );\n }\n\n ngOnDestroy(): void {\n this.hide();\n }\n\n private placePopoverAboveClosestModal() {\n const closestIonModal = this.elementRef.nativeElement.closest('ion-modal');\n if (closestIonModal) {\n this.zIndex = parseInt(closestIonModal.style.zIndex) + 1;\n this.elementRef.nativeElement.style.zIndex = `${this.zIndex}`;\n } else {\n this.zIndex = parseInt(DesignTokenHelper.zLayer('popover'));\n }\n }\n\n // document.removeEventListener needs the exact same event handler & options reference:\n private preventEvent(event: TouchEvent) {\n event.preventDefault();\n }\n\n private preventScroll() {\n this.isFirstToLockScroll = !this.document.body.classList.contains('backdrop-no-scroll');\n if (this.isFirstToLockScroll) {\n this.renderer.addClass(this.document.body, 'backdrop-no-scroll');\n }\n\n // preventDefault does not work with Renderer2.listen method; add event listener directly to document instead\n this.document.addEventListener(\n 'touchmove',\n this.preventEvent,\n this.preventScrollEventListenerOptions\n );\n }\n\n private releaseScroll() {\n if (this.isFirstToLockScroll) {\n this.renderer.removeClass(this.document.body, 'backdrop-no-scroll');\n }\n\n this.document.removeEventListener(\n 'touchmove',\n this.preventEvent,\n this.preventScrollEventListenerOptions\n );\n }\n\n show() {\n this.renderer.addClass(this.elementRef.nativeElement, 'is-opening');\n this.renderer.appendChild(this.document.body, this.elementRef.nativeElement);\n\n this.preventScroll();\n this.positionWrapper();\n\n this.renderer.addClass(this.elementRef.nativeElement, 'is-open');\n this.renderer.removeClass(this.elementRef.nativeElement, 'is-opening');\n\n this.isShowing = true;\n }\n\n hide() {\n this.renderer.removeChild(this.document.body, this.elementRef.nativeElement);\n this.releaseScroll();\n\n this.renderer.removeStyle(this.targetElement, 'z-index');\n this.renderer.removeStyle(this.targetElement, 'pointer-events');\n this.isShowing = false;\n }\n\n private positionWrapper() {\n const targetDimensions = this.targetElement.getBoundingClientRect();\n\n this.renderer.appendChild(this.document.body, this.elementRef.nativeElement);\n\n const wrapperElement = this.wrapperElement.nativeElement;\n const wrapperDimensions = wrapperElement.getBoundingClientRect();\n const viewport = wrapperElement.ownerDocument.defaultView;\n this.positionHorizontally(viewport, wrapperElement, targetDimensions, wrapperDimensions);\n this.positionVertically(viewport, wrapperElement, targetDimensions, wrapperDimensions);\n }\n\n private positionHorizontally(\n viewPort: Window,\n wrapperElement: HTMLDivElement,\n targetDimensions: DOMRect,\n wrapperDimensions: DOMRect\n ) {\n const viewPortWidth = viewPort.innerWidth;\n const contentWidth = wrapperDimensions.width;\n const availableSpaceRight = viewPortWidth - targetDimensions.left;\n const availableSpaceLeft = targetDimensions.right;\n const contentCanFitRightOfTarget =\n availableSpaceRight >= contentWidth + this.POPOVER_BODY_PADDING;\n const openRight = contentCanFitRightOfTarget || availableSpaceRight >= availableSpaceLeft;\n\n const [direction, oppositeDirection] =\n this.popout === HorizontalDirection.left || !openRight\n ? ['left', 'right']\n : ['right', 'left'];\n\n const pxValue =\n direction === 'left' ? viewPortWidth - targetDimensions.right : targetDimensions.left;\n\n this.renderer.removeStyle(wrapperElement, direction);\n this.renderer.setStyle(wrapperElement, oppositeDirection, `${pxValue}px`);\n }\n\n private positionVertically(\n viewPort: Window,\n wrapperElement: HTMLDivElement,\n targetDimensions: DOMRect,\n wrapperDimensions: DOMRect\n ) {\n const viewPortHeight = viewPort.innerHeight;\n const contentHeight = wrapperDimensions.height;\n const availableSpaceDown = viewPortHeight - targetDimensions.bottom;\n const availableSpaceUp = targetDimensions.top;\n const contentCanFitBelowTarget =\n availableSpaceDown >= contentHeight + this.POPOVER_BODY_PADDING;\n\n const isAvailableSpaceBelow =\n contentCanFitBelowTarget || availableSpaceDown >= availableSpaceUp;\n const [direction, oppositeDirection] = isAvailableSpaceBelow\n ? ['bottom', 'top']\n : ['top', 'bottom'];\n\n const pxValue =\n direction === 'bottom' ? targetDimensions.bottom : viewPortHeight - targetDimensions.top;\n\n this.renderer.removeStyle(wrapperElement, direction);\n this.renderer.setStyle(wrapperElement, oppositeDirection, `${pxValue}px`);\n\n if (direction === 'top') {\n // Ensure target is elevated above shadows in popover, i.e. content wrapped in Card:\n this.renderer.setStyle(this.targetElement, 'z-index', `${this.zIndex + 1}`);\n this.renderer.setStyle(this.targetElement, 'pointer-events', 'none');\n }\n }\n}\n","export enum OpenState {\n closed,\n opening,\n open,\n}\n\nexport enum VerticalDirection {\n up,\n down,\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class KeyboardHandlerService {\n handle(event: KeyboardEvent, items: any[] | string[], selectedIndex: number) {\n let newIndex = -1;\n switch (event.key) {\n case 'ArrowUp':\n case 'ArrowLeft':\n // Select previous item:\n newIndex = selectedIndex - 1;\n break;\n case 'ArrowDown':\n case 'ArrowRight':\n if (selectedIndex === undefined) {\n // None selected, select first item:\n newIndex = 0;\n } else if (selectedIndex < items.length - 1) {\n // Select next item:\n newIndex = selectedIndex + 1;\n }\n break;\n case 'Home':\n // Select first item:\n newIndex = 0;\n break;\n case 'End':\n // Select last item:\n newIndex = items.length - 1;\n break;\n default:\n break;\n }\n return newIndex;\n }\n}\n","import {\n AfterContentChecked,\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ContentChildren,\n ElementRef,\n EventEmitter,\n forwardRef,\n HostBinding,\n HostListener,\n Input,\n OnDestroy,\n Output,\n QueryList,\n Renderer2,\n RendererStyleFlags2,\n TemplateRef,\n ViewChild,\n ViewChildren,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { ButtonComponent } from '../button/button.component';\nimport { CardComponent } from '../card/card.component';\nimport { ItemComponent } from '../item/item.component';\nimport { ListItemTemplateDirective } from '../list/list.directive';\nimport { HorizontalDirection, PopoverComponent } from '../popover/popover.component';\n\nimport { OpenState, VerticalDirection } from './dropdown.types';\nimport { KeyboardHandlerService } from './keyboard-handler.service';\n\n@Component({\n selector: 'kirby-dropdown',\n templateUrl: './dropdown.component.html',\n styleUrls: ['./dropdown.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => DropdownComponent),\n multi: true,\n },\n ],\n})\nexport class DropdownComponent\n implements AfterContentChecked, AfterViewInit, OnDestroy, ControlValueAccessor\n{\n static readonly OPEN_DELAY_IN_MS = 100;\n private state = OpenState.closed;\n private hasConfiguredSlottedItems = false;\n private horizontalDirection: HorizontalDirection | `${HorizontalDirection}` =\n HorizontalDirection.right;\n private verticalDirection: VerticalDirection | `${VerticalDirection}` = VerticalDirection.down;\n\n private _items: string[] | any[] = [];\n get items(): string[] | any[] {\n return this._items;\n }\n\n @Input() set items(value: string[] | any[]) {\n this._items = value;\n this._value = this.items[this.selectedIndex] || null;\n }\n\n private _selectedIndex: number = -1;\n get selectedIndex(): number {\n return this._selectedIndex;\n }\n\n @Input() set selectedIndex(value: number) {\n if (this._selectedIndex != value) {\n this._selectedIndex = value;\n this._value = this.items[this.selectedIndex] || null;\n }\n }\n\n @Input()\n itemTextProperty = 'text';\n\n @Input()\n placeholder = 'Please select:';\n\n @Input() set popout(direction: HorizontalDirection | `${HorizontalDirection}`) {\n this.horizontalDirection = direction || HorizontalDirection.right;\n }\n\n get popout() {\n return this.horizontalDirection;\n }\n\n @Input()\n attentionLevel: '1' | '2' | '3' | '4' = '3';\n readonly attentionLevelOpen = '2';\n\n @Input()\n expand?: 'block';\n\n @Input()\n disabled = false;\n\n @HostBinding('attr.disabled')\n get _isDisabled() {\n return this.disabled ? 'disabled' : null;\n }\n\n @HostBinding('class.error')\n @Input()\n hasError: boolean;\n\n @Input()\n size: 'sm' | 'md' = 'md';\n\n @Input()\n tabindex = 0;\n\n @HostBinding('class.with-popover')\n @Input()\n usePopover = false;\n\n @HostBinding('attr.tabindex')\n get _tabindex() {\n return this.disabled ? -1 : this.tabindex;\n }\n\n // Prevent Ionic blur on scroll\n @HostBinding('attr.no-blur')\n get _noBlurOnScroll() {\n return true;\n }\n\n /**\n * Emitted when an item is selected (tap on mobile, click/keypress on web)\n */\n @Output() change: EventEmitter<string | any> = new EventEmitter<string | any>();\n\n private _value: string | any = null;\n get value(): string | any {\n return this._value;\n }\n\n get selectedText(): string {\n return this.getTextFromItem(this.value);\n }\n\n @HostBinding('class.expand')\n get _isBlockLevel() {\n return this.expand === 'block';\n }\n\n @HostBinding('attr.role')\n _role = 'listbox';\n\n @HostBinding('class.is-opening')\n get _isOpening(): boolean {\n return this.state === OpenState.opening;\n }\n\n @HostBinding('class.is-open')\n get isOpen(): boolean {\n return this.state === OpenState.open;\n }\n\n @HostBinding('class.popout-left')\n get _popoutLeft() {\n return this.horizontalDirection === HorizontalDirection.left;\n }\n\n @HostBinding('class.popout-up')\n get _popoutUp() {\n return this.verticalDirection === VerticalDirection.up;\n }\n\n @ContentChild(ListItemTemplateDirective, { static: true, read: TemplateRef })\n itemTemplate: TemplateRef<any>;\n @ContentChildren(ListItemTemplateDirective, { read: ElementRef })\n slottedItems: QueryList<ElementRef<HTMLElement>>;\n @ViewChild(CardComponent, { read: ElementRef })\n cardElement: ElementRef<HTMLElement>;\n @ViewChild(PopoverComponent)\n popover?: PopoverComponent;\n @ViewChild(ButtonComponent, { static: true, read: ElementRef })\n buttonElement: ElementRef<HTMLElement>;\n @ViewChildren(ItemComponent, { read: ElementRef })\n kirbyItemsDefault: QueryList<ElementRef<HTMLElement>>;\n @ContentChildren(ItemComponent, { read: ElementRef })\n kirbyItemsSlotted: QueryList<ElementRef<HTMLElement>>;\n\n private itemClickUnlisten: (() => void)[] = [];\n private intersectionObserverRef: IntersectionObserver;\n private showDropdownTimeoutId: ReturnType<typeof setTimeout>;\n\n constructor(\n private renderer: Renderer2,\n private elementRef: ElementRef<HTMLElement>,\n private changeDetectorRef: ChangeDetectorRef,\n private keyboardHandlerService: KeyboardHandlerService\n ) {}\n\n onToggle(event: MouseEvent) {\n event.stopPropagation();\n if (!this.isOpen) {\n this.elementRef.nativeElement.focus();\n }\n this.toggle();\n }\n\n toggle() {\n if (this.disabled) {\n return;\n }\n this.isOpen ? this.close() : this.open();\n }\n\n onButtonMouseEvent(event: Event) {\n // Prevent button focus;\n event.preventDefault();\n }\n\n ngAfterContentChecked() {\n if (!this.hasConfiguredSlottedItems && this.kirbyItemsSlotted.length) {\n this.kirbyItemsSlotted.forEach((kirbyItem, index) => {\n this.renderer.setAttribute(kirbyItem.nativeElement, 'role', 'option');\n const unlisten = this.renderer.listen(kirbyItem.nativeElement, 'click', () => {\n this.onItemSelect(index);\n });\n this.itemClickUnlisten.push(unlisten);\n });\n this.hasConfiguredSlottedItems = true;\n }\n }\n\n /* Utility that makes it easier to set styles on card element \n when using popover*/\n private setPopoverCardStyle(style: string, value: string) {\n if (!this.usePopover) return;\n\n this.renderer.setStyle(\n this.cardElement.nativeElement,\n style,\n value,\n RendererStyleFlags2.DashCase\n );\n }\n\n ngAfterViewInit() {\n if (this.usePopover && this.expand === 'block') {\n const { width } = this.elementRef.nativeElement.getBoundingClientRect();\n this.setPopoverCardStyle('--kirby-card-width', `${width}px`);\n this.setPopoverCardStyle('max-width', 'initial');\n this.setPopoverCardStyle('min-width', 'initial');\n }\n this.initializeAlignment();\n }\n\n private initializeAlignment() {\n if (this.usePopover) return;\n if (!this.intersectionObserverRef) {\n const options = {\n rootMargin: '0px',\n };\n const callback: IntersectionObserverCallback = (entries) => {\n // Only apply alignment when opening:\n if (this.state !== OpenState.opening) {\n return;\n }\n\n // Cancel any pending timer to show dropdown:\n clearTimeout(this.showDropdownTimeoutId);\n const entry = entries[0];\n const isVisible = entry.boundingClientRect.width > 0;\n if (isVisible && entry.intersectionRatio < 1) {\n this.setHorizontalDirection(entry);\n this.setVerticalDirection(entry);\n }\n this.showDropdown();\n this.changeDetectorRef.detectChanges();\n };\n this.intersectionObserverRef = new IntersectionObserver(callback, options);\n this.intersectionObserverRef.observe(this.cardElement.nativeElement);\n }\n }\n\n private setHorizontalDirection(entry: IntersectionObserverEntry) {\n // If popout direction is set to right, and the entry is cut off to the right by ${entry.boundingClientRect.right - entry.intersectionRect.right}px\n // it is set to popout left instead, and vice versa for popout direction left\n if (this.horizontalDirection === HorizontalDirection.right) {\n if (entry.boundingClientRect.right > entry.rootBounds.right) {\n this.horizontalDirection = HorizontalDirection.left;\n }\n } else {\n if (entry.boundingClientRect.left < entry.rootBounds.left) {\n this.horizontalDirection = HorizontalDirection.right;\n }\n }\n }\n\n private setVerticalDirection(entry: IntersectionObserverEntry) {\n if (entry.boundingClientRect.top < 0) {\n // entry is cut off at the top by ${entry.boundingClientRect.top}px\n // open downwards:\n this.verticalDirection = VerticalDirection.down;\n }\n if (entry.boundingClientRect.bottom > entry.rootBounds.bottom) {\n // entry is cut off at the bottom by ${entry.boundingClientRect.bottom - entry.intersectionRect.bottom}px\n const containerOffsetTop = this.elementRef.nativeElement.getBoundingClientRect().top;\n const SPACING = 5; //TODO: Get from SCSS\n // Check if the card can fit on top of button:\n if (containerOffsetTop > entry.target.clientHeight + SPACING) {\n // open upwards:\n this.verticalDirection = VerticalDirection.up;\n }\n }\n }\n\n open() {\n if (this.disabled) {\n return;\n }\n if (!this.isOpen) {\n this.state = OpenState.opening;\n // ensures that the dropdown is opened in case the IntersectionObserverCallback isn't invoked\n this.showDropdownTimeoutId = setTimeout(\n () => this.showDropdown(),\n DropdownComponent.OPEN_DELAY_IN_MS\n );\n }\n }\n\n private showDropdown() {\n if (this.state === OpenState.opening) {\n this.state = OpenState.open;\n this.popover?.show();\n this.scrollItemIntoView(this.selectedIndex);\n this.changeDetectorRef.markForCheck();\n }\n }\n\n close() {\n if (this.disabled) {\n return;\n }\n if (this.isOpen) {\n this.state = OpenState.closed;\n // Reset vertical direction to default\n this.verticalDirection = VerticalDirection.down;\n this.popover?.hide();\n }\n }\n\n onItemSelect(index: number) {\n this.selectItem(index);\n this.close();\n }\n\n private _onChange: (value: any) => void = () => {};\n private _onTouched = () => {};\n\n /**\n * Sets the select's value. Part of the ControlValueAccessor interface\n * required to integrate with Angular's core forms API.\n *\n * @param value New value to be written to the model.\n */\n writeValue(value: any): void {\n this._selectItemByValue(value);\n }\n\n /**\n * Saves a callback function to be invoked when the select's value\n * changes from user input. Part of the ControlValueAccessor interface\n * required to integrate with Angular's core forms API.\n *\n * @param fn Callback to be triggered when the value changes.\n */\n registerOnChange(fn: any): void {\n this._onChange = fn;\n }\n\n /**\n * Saves a callback function to be invoked when the select is blurred\n * by the user. Part of the ControlValueAccessor interface required\n * to integrate with Angular's core forms API.\n *\n * @param fn Callback to be triggered when the component has been touched.\n */\n registerOnTouched(fn: any): void {\n this._onTouched = fn;\n }\n\n /**\n * Disables the select. Part of the ControlValueAccessor interface required\n * to integrate with Angular's core forms API.\n *\n * @param isDisabled Sets whether the component is disabled.\n */\n setDisabledState?(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n private selectItem(index: number) {\n if (index != this.selectedIndex) {\n this.selectedIndex = index;\n this.change.emit(this.value);\n this._onChange(this.value);\n this.scrollItemIntoView(index);\n }\n }\n\n private _selectItemByValue(value: string | any) {\n this.selectedIndex = this.items.indexOf(value);\n }\n\n getTextFromItem(item: string | any) {\n if (!item) {\n return null;\n }\n return typeof item === 'string' ? item : item[this.itemTextProperty];\n }\n\n scrollItemIntoView(index: number) {\n const kirbyItems =\n this.kirbyItemsSlotted && this.kirbyItemsSlotted.length\n ? this.kirbyItemsSlotted\n : this.kirbyItemsDefault;\n if (kirbyItems && kirbyItems.length) {\n const selectedKirbyItem = kirbyItems.toArray()[index];\n if (selectedKirbyItem && selectedKirbyItem.nativeElement) {\n const itemElement = selectedKirbyItem.nativeElement;\n const scrollContainer = this.cardElement.nativeElement;\n const itemTop = itemElement.offsetTop;\n const itemBottom = itemElement.offsetTop + itemElement.offsetHeight;\n const containerVisibleTop = scrollContainer.scrollTop;\n const containerVisibleBottom = scrollContainer.clientHeight + scrollContainer.scrollTop;\n if (itemTop < containerVisibleTop) {\n scrollContainer.scrollTop = itemTop;\n } else if (itemBottom > containerVisibleBottom) {\n scrollContainer.scrollTop = itemBottom - scrollContainer.clientHeight;\n }\n }\n }\n }\n\n @HostListener('keydown.tab', ['$event'])\n _onTab(event: KeyboardEvent) {\n if (this.isOpen) {\n event.preventDefault();\n this.close();\n }\n }\n\n @HostListener('mousedown', ['$event'])\n _onMouseDown(event: MouseEvent) {\n if (this.disabled) {\n event.preventDefault();\n event.stopImmediatePropagation();\n }\n }\n\n @HostListener('focus')\n _onFocus() {\n if (this.disabled) {\n this.elementRef.nativeElement.blur();\n }\n }\n\n _onPopoverWillHide() {\n this.state = OpenState.closed;\n this.elementRef.nativeElement.focus();\n }\n\n @HostListener('keydown.enter')\n @HostListener('keydown.escape')\n @HostListener('blur', ['$event'])\n _onBlur(event?: FocusEvent) {\n if (this.disabled) return;\n if (this.isOpen) {\n if (!this.cardElement.nativeElement.contains(event?.relatedTarget as HTMLElement)) {\n this.close();\n }\n }\n this._onTouched();\n }\n\n @HostListener('keydown.space', ['$event'])\n _onSpace(event: KeyboardEvent) {\n event.preventDefault();\n event.stopPropagation();\n if (!this.isOpen) {\n this.open();\n }\n }\n\n @HostListener('keydown.enter', ['$event'])\n _onEnter(event: KeyboardEvent) {\n event.preventDefault();\n event.stopPropagation();\n this.toggle();\n }\n\n @HostListener('keydown.arrowup', ['$event'])\n @HostListener('keydown.arrowdown', ['$event'])\n @HostListener('keydown.arrowleft', ['$event'])\n @HostListener('keydown.arrowright', ['$event'])\n _onArrowKeys(event: KeyboardEvent) {\n if (this.disabled) return;\n // Mirror default HTML5 select behaviour - prevent left/right arrows when open:\n if (this.isOpen && (event.key === 'ArrowLeft' || event.key === 'ArrowRight')) {\n return;\n }\n const newIndex = this.keyboardHandlerService.handle(event, this.items, this.selectedIndex);\n if (newIndex > -1) {\n this.selectItem(newIndex);\n }\n return false;\n }\n\n @HostListener('keydown.home', ['$event'])\n @HostListener('keydown.end', ['$event'])\n _onHomeEndKeys(event: KeyboardEvent) {\n if (this.disabled) return;\n const newIndex = this.keyboardHandlerService.handle(event, this.items, this.selectedIndex);\n if (newIndex > -1) {\n this.selectItem(newIndex);\n }\n return false;\n }\n\n ngOnDestroy(): void {\n let unlisten: () => void;\n while ((unlisten = this.itemClickUnlisten.pop()) !== undefined) {\n unlisten();\n }\n if (this.intersectionObserverRef) {\n this.intersectionObserverRef.disconnect();\n }\n }\n}\n","<button\n kirby-button\n [size]=\"size\"\n [attentionLevel]=\"isOpen ? attentionLevelOpen : attentionLevel\"\n tabindex=\"-1\"\n (click)=\"onToggle($event)\"\n (mousedown)=\"onButtonMouseEvent($event)\"\n [disabled]=\"disabled\"\n type=\"button\"\n>\n <span class=\"text\">{{ selectedText || placeholder }}</span>\n <kirby-icon [name]=\"isOpen ? 'arrow-up' : 'arrow-down'\"></kirby-icon>\n</button>\n\n<ng-container *ngTemplateOutlet=\"usePopover ? popoverTemplate : itemWrapperTemplate\"></ng-container>\n\n<ng-template #popoverTemplate>\n <kirby-popover [target]=\"buttonElement\" [popout]=\"popout\" (willHide)=\"_onPopoverWillHide()\">\n <ng-container *ngTemplateOutlet=\"itemWrapperTemplate\"></ng-container>\n </kirby-popover>\n</ng-template>\n\n<ng-template #itemWrapperTemplate>\n <kirby-card>\n <ng-container *ngFor=\"let item of items; let i = index\">\n <ng-container\n *ngTemplateOutlet=\"\n itemTemplate || defaultItemTemplate;\n context: { $implicit: item, selected: i === selectedIndex, index: i }\n \"\n ></ng-container>\n </ng-container>\n </kirby-card>\n</ng-template>\n\n<ng-template #defaultItemTemplate let-item let-selected=\"selected\" let-index=\"index\">\n <kirby-item [selectable]=\"true\" [selected]=\"selected\" (click)=\"onItemSelect(index)\" role=\"option\">\n <!-- Tabindex fixes issue with popover dropdown not working in safari -->\n <h3 tabindex=\"0\">{{ getTextFromItem(item) }}</h3>\n <kirby-icon *ngIf=\"selected\" name=\"checkmark-selected\" slot=\"end\"></kirby-icon>\n </kirby-item>\n</ng-template>\n","import {\n AfterViewInit,\n Component,\n ElementRef,\n EventEmitter,\n HostBinding,\n Inject,\n Input,\n LOCALE_ID,\n OnChanges,\n OnInit,\n Output,\n SimpleChanges,\n ViewChild,\n} from '@angular/core';\nimport {\n add,\n differenceInDays,\n eachDayOfInterval,\n endOfMonth,\n endOfWeek,\n format,\n getYear,\n isAfter,\n isBefore,\n isSameDay,\n isSameMonth,\n isWeekend,\n Locale as LocaleDateFns,\n startOfDay,\n startOfMonth,\n startOfWeek,\n} from 'date-fns';\nimport { utcToZonedTime, zonedTimeToUtc } from 'date-fns-tz';\nimport { da, enGB, enUS } from 'date-fns/locale';\n\nimport { capitalizeFirstLetter } from '@kirbydesign/core';\n\nimport { CalendarCell } from './helpers/calendar-cell.model';\nimport { CalendarOptions } from './helpers/calendar-options.model';\nimport { CalendarHelper } from './helpers/calendar.helper';\nimport { CalendarYearNavigatorConfig } from './options/calendar-year-navigator-config';\n\nexport type Locale = LocaleDateFns;\ninterface CalendarDay {\n isCurrentMonth: boolean;\n isToday: boolean;\n isWeekend: boolean;\n isPast: boolean;\n isFuture: boolean;\n isDisabled: boolean;\n}\n\nenum TimeUnit {\n years = 'years',\n months = 'months',\n weeks = 'weeks',\n days = 'days',\n hours = 'hours',\n minutes = 'minutes',\n seconds = 'seconds',\n milliseconds = 'milliseconds',\n}\n\n@Component({\n selector: 'kirby-calendar',\n templateUrl: './calendar.component.html',\n styleUrls: ['./calendar.component.scss'],\n providers: [CalendarHelper],\n})\nexport class CalendarComponent implements OnInit, AfterViewInit, OnChanges {\n @ViewChild('calendarContainer', { static: false }) calendarContainer: ElementRef;\n @Output() dateChange = new EventEmitter<Date>();\n @Output() dateSelect = new EventEmitter<Date>();\n @Output() yearSelect = new EventEmitter<number>();\n @Input() timezone: 'local' | 'UTC' = 'local';\n @Input() disableWeekends = false;\n @Input() disablePastDates = false;\n @Input() disableFutureDates = false;\n @Input() alwaysEnableToday = false;\n @Input() customLocales: { [key: string]: Locale } = {};\n /* \n Experimental: Input property not documented on purpose. \n For context see: https://github.com/kirbydesign/designsystem/issues/2087\n */\n @Input() usePopover = false;\n /**\n * Configuration for the year navigator.\n *\n * Internally, calendar component:\n * - bases yearNavigatorOptions.from and yearNavigatorOptions.to on todayDate if a number is provided\n * - prioritizes minDate and maxDate over yearNavigatorOptions.from and yearNavigatorOptions.to\n */\n @Input() yearNavigatorOptions: CalendarYearNavigatorConfig;\n\n _month: CalendarCell[][];\n _weekDays: string[];\n private selectedDay: CalendarCell;\n // NOTE: Internally, all Dates\n // are normalized to point to local timezone midnight, regardless of the timezone\n // setting.\n private activeMonth: Date;\n private _selectedDate: Date;\n private _disabledDates: Date[] = [];\n private _todayDate: Date;\n private _minDate: Date;\n private _maxDate: Date;\n private locale: Locale;\n private timeZoneName: string;\n private includedLocales = { da, enGB, enUS };\n\n get selectedDate(): Date {\n return this._selectedDate;\n }\n\n @Input() set selectedDate(valueLocalOrUTC: Date) {\n const value = this.normalizeDate(valueLocalOrUTC);\n this.setActiveMonth(value);\n\n if (this.hasDateChanged(value, this._selectedDate)) {\n this.onSelectedDateChange(value);\n this._selectedDate = value;\n }\n }\n\n get disabledDates(): Date[] {\n return this._disabledDates;\n }\n\n @Input() set disabledDates(value: Date[]) {\n this._disabledDates = (value || []).map((date) => this.normalizeDate(date));\n }\n\n get todayDate(): Date {\n return this._todayDate;\n }\n\n @Input() set todayDate(value: Date) {\n this._todayDate = this.normalizeDate(value);\n }\n\n get minDate(): Date {\n return this._minDate;\n }\n\n @Input() set minDate(value: Date) {\n if (value && this.activeMonth && isBefore(this.activeMonth, value)) {\n this.setActiveMonth(value);\n }\n this._minDate = this.normalizeDate(value);\n }\n\n get maxDate(): Date {\n return this._maxDate;\n }\n\n @Input() set maxDate(value: Date) {\n if (value && this.activeMonth && isAfter(this.activeMonth, value)) {\n this.setActiveMonth(value);\n }\n this._maxDate = this.normalizeDate(value);\n }\n\n get activeMonthName(): string {\n return capitalizeFirstLetter(this.formatWithLocale(this.activeMonth, 'MMMM'));\n }\n\n get activeYear(): string {\n return this.formatWithLocale(this.activeMonth, 'yyyy');\n }\n\n /**\n * Gets navigable years for year navigator based on yearNavigatorOptions.\n */\n get navigableYears(): string[] {\n const dateOfFirstNavigableYear =\n this.minDate || this.getDateFromNavigableYear(this.yearNavigatorOptions.from);\n\n const dateOfLastNavigableYear =\n this.maxDate || this.getDateFromNavigableYear(this.yearNavigatorOptions.to);\n\n return this.getYearsBetweenDates(dateOfFirstNavigableYear, dateOfLastNavigableYear);\n }\n\n get navigatedYear(): number {\n return this.navigableYears.indexOf(this.activeYear);\n }\n\n @HostBinding('class.has-year-navigator')\n get _hasYearNavigator() {\n return !!this.yearNavigatorOptions;\n }\n\n constructor(private calendarHelper: CalendarHelper, @Inject(LOCALE_ID) locale: string) {\n this.locale = this.mapLocale(locale);\n this.timeZoneName = Intl.DateTimeFormat().resolvedOptions().timeZone;\n }\n\n private formatWithLocale(date: Date, formatString: string): string {\n return format(date, formatString, {\n locale: this.locale,\n });\n }\n\n private mapLocale(locale: string): Locale {\n if (locale === 'en') {\n locale = 'enGB'; // if english locale is provided without region, we default to GB\n }\n locale = locale.replace('-', '');\n const availableLocales = { ...this.includedLocales, ...this.customLocales };\n\n return availableLocales[locale] || this.includedLocales.enGB; // Default to enGB if injected locale doesnt exist\n }\n\n ngOnInit() {\n this._weekDays = this.getWeekDays();\n this.setActiveMonth(this.selectedDate);\n }\n\n ngAfterViewInit() {\n this.calendarHelper.init(\n this.calendarContainer,\n this.getHelperOptions(),\n this._onDateSelected.bind(this),\n this.onChangeMonth.bind(this)\n );\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (!this.activeMonth) return;\n if (\n changes.disableWeekends ||\n changes.disablePastDates ||\n changes.disableFutureDates ||\n changes.disabledDates ||\n changes.minDate ||\n changes.maxDate ||\n changes.todayDate ||\n changes.timezone\n ) {\n this.refreshActiveMonth();\n this.calendarHelper.update(this.getHelperOptions());\n }\n }\n\n private setActiveMonth(date: Date = new Date()) {\n if (!this.activeMonth || !isSameMonth(this.activeMonth, date)) {\n this.activeMonth = startOfMonth(date);\n this.refreshActiveMonth();\n this.calendarHelper.update(this.getHelperOptions());\n }\n }\n\n // For leniency, the component will accept any Date that points to either UTC midnight\n // or to local timezone midnight although we will internally normalize the representation\n // of all received dates to point to local timezone midnight.\n // We currently log no warnings if the date doesn't match the timezone setting or\n // if it doesn't point to midnight.\n private normalizeDate(dateLocalOrUTC: Date) {\n if (!dateLocalOrUTC) return;\n\n if (startOfDay(dateLocalOrUTC).getTime() === dateLocalOrUTC.getTime()) {\n // date is local timezone midnight\n return dateLocalOrUTC;\n }\n if (\n startOfDay(utcToZonedTime(dateLocalOrUTC, this.timeZoneName)).getTime() ===\n utcToZonedTime(dateLocalOrUTC, this.timeZoneName).getTime()\n ) {\n // the date is a UTC midnight; create the equivalent local timezone midnight date\n const normalizedUTCdate = utcToZonedTime(dateLocalOrUTC, this.timeZoneName);\n return normalizedUTCdate;\n }\n // does not point to midnight so we make it\n return startOfDay(dateLocalOrUTC);\n }\n\n private getWeekDays(): string[] {\n const now = new Date();\n\n const week = eachDayOfInterval({\n start: startOfWeek(now, { locale: this.locale }),\n end: endOfWeek(now, { locale: this.locale }),\n });\n\n return week.map((date) => this.getFirstLetterOfWeekDayCapitalized(date));\n }\n\n private getFirstLetterOfWeekDayCapitalized(date: Date) {\n return this.formatWithLocale(date, 'EEEEE');\n }\n\n private hasDateChanged(newDate: Date, previousDate: Date): boolean {\n if (!newDate && !previousDate) {\n return false;\n }\n if (newDate instanceof Date && !previousDate) {\n return true;\n }\n return !isSameDay(newDate, previousDate);\n }\n\n private isDisabledDate(date: Date): boolean {\n return this.disabledDates.some((disabledDate) => {\n return isSameDay(disabledDate, date);\n });\n }\n\n refreshActiveMonth() {\n if (!this.activeMonth) return;\n\n const monthStart = startOfMonth(this.activeMonth);\n const monthEnd = endOfMonth(this.activeMonth);\n const startOfFirstWeek = startOfWeek(monthStart, { locale: this.locale });\n const endOfLastWeek = endOfWeek(monthEnd, { locale: this.locale });\n const totalDayCount = differenceInDays(endOfLastWeek, startOfFirstWeek) + 1;\n const today = this.todayDate ? startOfDay(this.todayDate) : startOfDay(new Date());\n\n const daysArray = Array.from(Array(totalDayCount).keys());\n\n const days: CalendarCell[] = daysArray.map((number) => {\n const cellDate = add(startOfFirstWeek, { [TimeUnit.days]: number });\n const day = this.getCalendarDay(cellDate, today, monthStart);\n\n const isSelectable = this.isSelectable(day, cellDate);\n const isSelected = isSameDay(this.selectedDate, cellDate);\n const cell = {\n date: cellDate.getDate(),\n isCurrentMonth: day.isCurrentMonth,\n isSelectable,\n isSelected,\n cssClasses: this.getCssClasses(day, isSelectable, isSelected),\n };\n if (isSelected) {\n this.selectedDay = cell;\n }\n return cell;\n });\n this._month = this.chunk(days, 7);\n }\n\n private getCalendarDay(date: Date, today: Date, monthStart: Date): CalendarDay {\n return {\n isToday: isSameDay(today, date),\n isPast: isBefore(date, today),\n isFuture: isAfter(date, today),\n isWeekend: isWeekend(date),\n isCurrentMonth: isSameMonth(date, monthStart),\n isDisabled: this.isDisabledDate(date),\n };\n }\n\n private isSelectable(day: CalendarDay, date: Date) {\n return (\n (this.alwaysEnableToday && day.isToday) ||\n (!day.isDisabled &&\n day.isCurrentMonth &&\n !(this.disableWeekends && day.isWeekend) &&\n !(this.disablePastDates && day.isPast) &&\n !(this.disableFutureDates && day.isFuture) &&\n !(this.minDate && isBefore(date, this.minDate)) &&\n !(this.maxDate && isAfter(date, this.maxDate)))\n );\n }\n\n private getCssClasses(day: CalendarDay, isSelectable: boolean, isSelected: boolean) {\n const cssClasses = {\n 'current-month': day.isCurrentMonth,\n weekend: day.isWeekend,\n today: day.isToday,\n selectable: isSelectable,\n selected: isSelected,\n past: day.isPast,\n disabled: day.isDisabled,\n };\n let cssClassString = 'day';\n for (const key in cssClasses) {\n if (cssClasses[key]) {\n cssClassString += ' ' + key;\n }\n }\n return cssClassString;\n }\n\n private chunk(array: any[], size: number) {\n const results = [];\n while (array.length) {\n results.push(array.splice(0, size));\n }\n return results;\n }\n\n private onSelectedDateChange(newDate: Date): void {\n if (this.selectedDay) {\n this.selectedDay.isSelected = false;\n }\n\n const newDay = this.getCell(newDate);\n if (newDay) {\n newDay.isSelected = true;\n this.selectedDay = newDay;\n }\n this.calendarHelper.setSelectedDay(newDate.getDate());\n }\n\n _onDateSelected(newDay: CalendarCell) {\n if (newDay.isSelectable && newDay.date) {\n let newDate = new Date(this.activeMonth);\n newDate.setDate(newDay.date);\n\n if (this.timezone === 'UTC') {\n newDate = zonedTimeToUtc(this.subtractTimezoneOffset(newDate), this.timeZoneName);\n }\n\n const dateToEmit = newDate;\n\n if (this.hasDateChanged(newDate, this._selectedDate)) {\n this.onSelectedDateChange(newDate);\n this._selectedDate = newDate;\n this.dateChange.emit(dateToEmit);\n }\n this.dateSelect.emit(dateToEmit);\n }\n }\n\n private onChangeMonth(direction: number) {\n this._changeMonth(direction);\n this.calendarHelper.update(this.getHelperOptions());\n }\n\n _changeMonth(index: number) {\n this.changeActiveView(index, TimeUnit.months);\n }\n\n _changeYear(year: string) {\n const yearNumeric = Number(year);\n this.changeActiveView(yearNumeric - getYear(this.activeMonth), TimeUnit.years);\n this.yearSelect.emit(yearNumeric);\n }\n\n private changeActiveView(index: number, unit: TimeUnit) {\n if (index === 0) return;\n this.activeMonth = add(this.activeMonth, { [unit]: index });\n\n this.refreshActiveMonth();\n }\n\n get _canNavigateBack(): boolean {\n const reachedPastDatesLimit =\n this.disablePastDates && isSameMonth(this.activeMonth, this.todayDate);\n\n const reachedOrExceededMinDate =\n this.minDate &&\n (isSameMonth(this.activeMonth, this.minDate) || isBefore(this.activeMonth, this.minDate));\n\n return !reachedPastDatesLimit && !reachedOrExceededMinDate;\n }\n\n get _canNavigateForward(): boolean {\n const reachedFutureDatesLimit =\n this.disableFutureDates && isSameMonth(this.activeMonth, this.todayDate);\n\n const reachedOrExceededMaxDate =\n this.maxDate &&\n (isSameMonth(this.activeMonth, this.maxDate) || isAfter(this.activeMonth, this.maxDate));\n\n return !reachedFutureDatesLimit && !reachedOrExceededMaxDate;\n }\n\n private getCell(date: Date) {\n let foundDay = null;\n if (date) {\n for (let week of this._month) {\n foundDay = week.find((day) => {\n return day.isCurrentMonth && day.date === date.getDate();\n });\n if (foundDay) {\n break;\n }\n }\n }\n return foundDay;\n }\n\n private getHelperOptions(): CalendarOptions {\n return {\n canNavigateBack: this._canNavigateBack,\n canNavigateForward: this._canNavigateForward,\n year: this.activeYear,\n monthName: this.activeMonthName,\n weekDays: this._weekDays,\n month: this._month,\n };\n }\n\n private subtractTimezoneOffset(date: Date): Date {\n const timezoneOffsetInMs = date.getTimezoneOffset() * 60 * 1000;\n return new Date(date.getTime() - timezoneOffsetInMs);\n }\n\n private getDateFromNavigableYear(navigableYear: number | Date): Date {\n if (navigableYear instanceof Date) return navigableYear;\n const today = this.todayDate || new Date();\n return new Date(today.getFullYear() + navigableYear, 0, 1);\n }\n\n private getYearsBetweenDates(startDate: Date, endDate: Date): string[] {\n // Ensure years are ordered correctly if parameters are switched:\n const [startYear, endYear] = [startDate.getFullYear(), endDate.getFullYear()].sort();\n const numberOfYears = endYear - startYear;\n return Array.from({ length: numberOfYears + 1 }, (_, i) => (startYear + i).toString());\n }\n}\n","<div class=\"header\">\n <div class=\"month-navigator\">\n <button [disabled]=\"!_canNavigateBack\" (click)=\"_changeMonth(-1)\">\n <kirby-icon name=\"arrow-back\"></kirby-icon>\n </button>\n\n <div class=\"month-and-year\">\n <span class=\"month\">{{ activeMonthName }}</span\n ><span *ngIf=\"!_hasYearNavigator\" class=\"year\">{{ activeYear }}</span>\n </div>\n\n <button [disabled]=\"!_canNavigateForward\" (click)=\"_changeMonth(1)\">\n <kirby-icon name=\"arrow-more\"></kirby-icon>\n </button>\n </div>\n <kirby-dropdown\n *ngIf=\"_hasYearNavigator\"\n [usePopover]=\"usePopover\"\n [selectedIndex]=\"navigatedYear\"\n [items]=\"navigableYears\"\n popout=\"left\"\n (change)=\"_changeYear($event)\"\n >\n </kirby-dropdown>\n</div>\n\n<table>\n <thead>\n <tr>\n <th *ngFor=\"let weekDay of _weekDays\">{{ weekDay }}</th>\n </tr>\n </thead>\n\n <tbody>\n <tr *ngFor=\"let week of _month\">\n <td *ngFor=\"let day of week\">\n <div\n (click)=\"_onDateSelected(day)\"\n class=\"{{ day.cssClasses }}\"\n [class.selected]=\"day.isSelected\"\n >\n {{ day.date }}\n </div>\n </td>\n </tr>\n </tbody>\n</table>\n\n<!-- <iframe src=\"kirby/components/calendar/calendar.webview.html\" #calendarContainer style=\"width: 320px; height: 304px; border: 0\"> -->\n","import { Component, Input } from '@angular/core';\n\nimport { ItemSlidingSide, ItemSwipeAction } from './item-sliding.types';\n\n@Component({\n selector: 'kirby-item-sliding',\n templateUrl: './item-sliding.component.html',\n styleUrls: ['./item-sliding.component.scss'],\n})\nexport class ItemSlidingComponent {\n @Input() swipeActions: ItemSwipeAction[];\n\n _side: 'start' | 'end' = 'start';\n @Input() set side(value: ItemSlidingSide) {\n this._side = value === 'left' ? 'start' : 'end';\n }\n\n get _hasSwipeActions(): boolean {\n // Using '>' instead of '!==';\n // will only return true when swipeActions is an array\n return this.swipeActions?.length > 0;\n }\n}\n","<ion-item-sliding>\n <ng-content></ng-content>\n\n <ion-item-options *ngIf=\"_hasSwipeActions\" [side]=\"_side\">\n <ng-container *ngFor=\"let swipeAction of swipeActions\">\n <ion-item-option\n *ngIf=\"!swipeAction.isDisabled\"\n [ngClass]=\"swipeAction.type\"\n (click)=\"swipeAction.onSelected()\"\n >\n <kirby-icon\n *ngIf=\"swipeAction.icon !== undefined\"\n [name]=\"swipeAction.icon\"\n slot=\"top\"\n ></kirby-icon>\n <ion-label>{{ swipeAction.title }}</ion-label>\n </ion-item-option>\n </ng-container>\n </ion-item-options>\n</ion-item-sliding>\n","export class UniqueIdGenerator {\n private static registry = new Map<string, UniqueIdGenerator>();\n private id = 0;\n\n private constructor(private scope: string) {}\n\n static scopedTo(scope: string) {\n let scopedGenerator = UniqueIdGenerator.registry.get(scope);\n if (!scopedGenerator) {\n scopedGenerator = new UniqueIdGenerator(scope);\n UniqueIdGenerator.registry.set(scope, scopedGenerator);\n }\n return scopedGenerator;\n }\n\n next(): string {\n return `${this.scope}-${this.id++}`;\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n HostBinding,\n Input,\n Output,\n} from '@angular/core';\n\nimport { UniqueIdGenerator } from '../../helpers/unique-id-generator.helper';\n\n@Component({\n selector: 'kirby-checkbox',\n templateUrl: './checkbox.component.html',\n styleUrls: ['./checkbox.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CheckboxComponent {\n @Input() checked: boolean = false;\n @Input() attentionLevel: '1' | '2' = '2';\n\n @HostBinding('class.has-label')\n @Input()\n text: string;\n\n @HostBinding('class')\n @Input()\n size?: 'xs' | 'sm' | 'md';\n\n @HostBinding('class.error')\n @Input()\n hasError: boolean = false;\n\n @Input() disabled = false;\n @HostBinding('attr.disabled')\n get _isDisabled() {\n return this.disabled ? 'disabled' : null;\n }\n\n @HostBinding('class.attention-level1') get isAttentionLevel1() {\n return this.attentionLevel === '1';\n }\n @HostBinding('class.attention-level2') get isAttentionLevel2() {\n return this.attentionLevel === '2';\n }\n\n @Output() checkedChange = new EventEmitter<boolean>();\n\n onChecked(checked: boolean): void {\n this.checked = checked;\n this.checkedChange.emit(this.checked);\n }\n\n // IDs used for a11y labelling\n _labelId = UniqueIdGenerator.scopedTo('kirby-checkbox-label').next();\n}\n","<div class=\"wrapper\">\n <ion-checkbox\n mode=\"md\"\n [checked]=\"checked\"\n [disabled]=\"disabled\"\n (ionChange)=\"onChecked($event.detail.checked)\"\n [attr.aria-labelledby]=\"text ? _labelId : null\"\n ></ion-checkbox>\n <span [id]=\"_labelId\" *ngIf=\"text\">{{ text }}</span>\n</div>\n","import { ChangeDetectionStrategy, Component, HostBinding, Input } from '@angular/core';\n\n@Component({\n selector: 'kirby-chip',\n templateUrl: './chip.component.html',\n styleUrls: ['./chip.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ChipComponent {\n @Input() text: string;\n\n @Input()\n @HostBinding('attr.aria-selected')\n @HostBinding('class.is-selected')\n isSelected: boolean;\n}\n","<span>{{ text }}</span>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\n@Component({\n selector: 'kirby-divider',\n templateUrl: './divider.component.html',\n styleUrls: ['./divider.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DividerComponent {\n @Input()\n hasMargin: boolean;\n}\n","<hr [class.no-margin]=\"!hasMargin\" />\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n HostBinding,\n Input,\n ViewChild,\n} from '@angular/core';\nimport { IonRadio } from '@ionic/angular';\n\nimport { UniqueIdGenerator } from '../../helpers/unique-id-generator.helper';\n\n@Component({\n selector: 'kirby-radio',\n templateUrl: './radio.component.html',\n styleUrls: ['./radio.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class RadioComponent {\n @Input()\n value: any;\n\n @HostBinding('class.has-label')\n @Input()\n text: string;\n\n @HostBinding('class')\n @Input()\n size?: 'xs' | 'sm' | 'md';\n\n @Input()\n disabled: boolean;\n @HostBinding('attr.disabled')\n get _isDisabled() {\n return this.disabled ? 'disabled' : null;\n }\n\n get buttonTabIndex(): number {\n return this.ionRadioElement ? this.ionRadioElement.nativeElement.tabIndex : -1;\n }\n\n focus() {\n this.ionRadioElement && this.ionRadioElement.nativeElement.focus();\n }\n\n _labelId = UniqueIdGenerator.scopedTo('kirby-radio-label').next();\n\n @ViewChild(IonRadio, { read: ElementRef, static: true })\n private ionRadioElement?: ElementRef<HTMLIonRadioElement>;\n}\n","<div class=\"wrapper\">\n <ion-radio\n [value]=\"value\"\n [disabled]=\"disabled\"\n mode=\"md\"\n [attr.aria-labelledby]=\"text ? _labelId : null\"\n ></ion-radio>\n <span [id]=\"_labelId\" *ngIf=\"text\">{{ text }}</span>\n</div>\n","import {\n AfterContentInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n ContentChild,\n ContentChildren,\n EventEmitter,\n HostBinding,\n Output,\n QueryList,\n TemplateRef,\n ViewChildren,\n} from '@angular/core';\nimport { Component, HostListener, Input } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { ListItemTemplateDirective } from '../../list/list.directive';\nimport { RadioComponent } from '../radio.component';\n\n@Component({\n selector: 'kirby-radio-group',\n templateUrl: './radio-group.component.html',\n styles: ['ion-radio-group { display: inherit; flex-wrap: inherit}'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: RadioGroupComponent,\n multi: true,\n },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class RadioGroupComponent implements AfterContentInit, ControlValueAccessor {\n constructor(private changeDetectionRef: ChangeDetectorRef) {}\n\n // #region public properties\n\n get disabled(): boolean {\n return this._disabled;\n }\n\n @Input() set disabled(value: boolean) {\n this._disabled = value;\n this.setProjectedRadiosDisabledState(value);\n }\n\n @HostBinding('class.error') // Used to style radios with error state\n @Input()\n hasError: boolean = false;\n\n get items(): string[] | any[] {\n return this._items || []; // Ensure items return empty array even if set to null/undefined\n }\n\n @Input() set items(value: string[] | any[]) {\n if ((!value || !value.length) && !this.items.length) return; // Nothing changed, no items before or after\n this._items = value;\n this.refreshSelectionState();\n }\n\n @Input()\n itemTextProperty = 'text';\n\n @Input()\n itemDisabledProperty = 'disabled';\n\n get selectedIndex(): number {\n return this._selectedIndex;\n }\n\n @Input() set selectedIndex(value: number) {\n if (typeof value === 'string') value = parseInt(value); // Ensure data type number, e.g. when used with template syntax without binding: <... selectedIndex=\"1\"\n if (value === undefined || value === null || value === NaN) value = -1;\n if (value === this.selectedIndex) return;\n this._selectedIndex = value;\n this._value = this.getValueFromSelectedIndex() || null;\n }\n\n get value(): string | any {\n return this._value;\n }\n\n @Input() set value(value: string | any) {\n this.setSelectedItem(value);\n }\n\n private get hasValue(): boolean {\n return this.value !== undefined && this.value !== null;\n }\n\n /**\n * Emitted when an option is selected\n */\n @Output() valueChange: EventEmitter<string | any> = new EventEmitter<string | any>();\n // #endregion public properties\n\n // #region \"protected\" properties used by template\n @ContentChild(ListItemTemplateDirective, { read: TemplateRef })\n _customItemTemplate: TemplateRef<any>;\n // #endregion \"protected\" properties used by template\n\n // #region private fields\n private _disabled = false;\n private _items: string[] | any[] = [];\n private _onChangeCallback: (value: any) => void = () => {};\n private _onTouched = () => {};\n private _selectedIndex: number = -1;\n private _value?: string | any = null;\n @ViewChildren(RadioComponent)\n private radioButtons: QueryList<RadioComponent>;\n @ContentChildren(RadioComponent, { descendants: true })\n private projectedRadioButtons: QueryList<RadioComponent>;\n\n private get hasItemsFromContentProjection(): boolean {\n return (\n !this.items.length &&\n !this._customItemTemplate &&\n this.projectedRadioButtons &&\n this.projectedRadioButtons.length > 0\n );\n }\n\n // #endregion private fields\n\n // #region public methods\n focus() {\n const findFocusable = (radios: QueryList<RadioComponent>) =>\n radios && radios.find((radio) => !isNaN(radio.buttonTabIndex) && radio.buttonTabIndex !== -1);\n const focusable = findFocusable(this.radioButtons) || findFocusable(this.projectedRadioButtons);\n focusable && focusable.focus();\n }\n\n ngAfterContentInit(): void {\n this.initSelectionStateFromProjectedContent();\n this.listenForProjectedRadiosChange();\n }\n\n registerOnChange(fn: any): void {\n this._onChangeCallback = fn;\n }\n\n registerOnTouched(fn: any): void {\n this._onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean) {\n this.disabled = isDisabled;\n this.changeDetectionRef.markForCheck();\n }\n\n writeValue(value: any): void {\n this.value = value;\n this.changeDetectionRef.markForCheck();\n }\n\n // #endregion public methods\n\n // #region \"protected\" methods used by template\n _getTextFromItem(item: string | any): string {\n if (!item) return null;\n return typeof item === 'string' ? item : item[this.itemTextProperty];\n }\n\n _getDisabledStateFromItem(item: string | any): boolean {\n if (!item) return undefined;\n return typeof item === 'string' ? undefined : item[this.itemDisabledProperty];\n }\n\n get _hasItems(): boolean {\n return this.items.length > 0 || this.hasItemsFromContentProjection;\n }\n\n _onChange(value: string | any) {\n if (value === this._value) return;\n this.setSelectedItem(value);\n this.valueChange.emit(value);\n this._onChangeCallback(value);\n }\n\n @HostListener('ionBlur')\n _onRadioBlur() {\n this._onTouched();\n }\n\n // #endregion \"protected\" methods used by template\n\n // #region private methods\n private getIndexOfSelectedValue() {\n if (!this.hasValue) return -1;\n return this.hasItemsFromContentProjection\n ? this.getIndexOfProjectedRadio(this.value)\n : this.items.indexOf(this.value);\n }\n\n private getIndexOfProjectedRadio(value: string | any): number {\n let selectedIndex = -1;\n this.projectedRadioButtons &&\n this.projectedRadioButtons.find((radio, i) => {\n const found = radio.value === value;\n if (found) {\n selectedIndex = i;\n }\n return found;\n });\n return selectedIndex;\n }\n\n private getValueFromSelectedIndex(): string | any {\n if (this.selectedIndex === -1) return;\n return this.hasItemsFromContentProjection\n ? this.getValueFromProjectedRadios(this.selectedIndex)\n : this.items[this.selectedIndex];\n }\n\n private getValueFromProjectedRadios(index: number): string | any {\n const radio =\n this.projectedRadioButtons &&\n this.projectedRadioButtons.find((_, i) => {\n return i === index;\n });\n return radio && radio.value;\n }\n\n private initSelectionStateFromProjectedContent() {\n if (this.hasItemsFromContentProjection) {\n this.refreshSelectionState(); // Initialize selected index and value from projected radios\n }\n }\n\n private listenForProjectedRadiosChange() {\n this.projectedRadioButtons.changes.subscribe(() => {\n this.refreshStateFromProjectedContent();\n\n if (this.disabled) {\n // Ensure disabled state propagates when re-rendering projected radios.\n // setTimeout prevents ExpressionChangedAfterItHasBeenCheckedError when updating the DOM in QueryList.changes:\n setTimeout(() => this.setProjectedRadiosDisabledState(this.disabled));\n }\n });\n }\n\n private refreshSelectionState() {\n if (this.hasValue) {\n this._selectedIndex = this.getIndexOfSelectedValue(); // Ensure selectedIndex reflects value within items\n }\n\n const valueFromSelectedIndex = this.getValueFromSelectedIndex();\n this._value = valueFromSelectedIndex !== undefined ? valueFromSelectedIndex : null;\n }\n\n private refreshStateFromProjectedContent() {\n if (!!this._customItemTemplate) return; // Only refresh on changes to projected content, not when re-rendering custom template\n this.changeDetectionRef.markForCheck(); // Ensure changes to projected content gets checked in next change detection cycle\n this.refreshSelectionState(); // Sync selected index and value from projected radios\n }\n\n private setSelectedItem(value: string | any) {\n if (value === this._value) return; // Nothing changed\n this._value = value;\n this._selectedIndex = this.getIndexOfSelectedValue();\n }\n\n private setProjectedRadiosDisabledState(isDisabled: boolean) {\n if (!this.projectedRadioButtons || !this.projectedRadioButtons.length) return;\n this.projectedRadioButtons.forEach((radio, index) => {\n // Disable all radios when group is disabled, otherwise fall back to each item's disabled state, if defined:\n radio.disabled = isDisabled || this._getDisabledStateFromItem(this.items[index]);\n });\n }\n\n // #endregion private methods\n}\n","<ion-radio-group *ngIf=\"_hasItems\" [value]=\"value\" (ionChange)=\"_onChange($event.detail.value)\">\n <ng-container *ngIf=\"!items || !items.length; else itemsTemplate\">\n <ng-content></ng-content>\n </ng-container>\n</ion-radio-group>\n\n<ng-template #itemsTemplate>\n <ng-container *ngFor=\"let item of items; let i = index\">\n <ng-container\n *ngTemplateOutlet=\"\n _customItemTemplate || defaultItemTemplate;\n context: { $implicit: item, selected: i === selectedIndex, index: i }\n \"\n ></ng-container>\n </ng-container>\n</ng-template>\n\n<ng-template #defaultItemTemplate let-item>\n <kirby-radio\n [value]=\"item\"\n [disabled]=\"disabled || _getDisabledStateFromItem(item)\"\n [text]=\"_getTextFromItem(item)\"\n ></kirby-radio>\n</ng-template>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'kirby-form-field-message',\n styleUrls: ['./form-field-message.component.scss'],\n templateUrl: './form-field-message.component.html',\n})\nexport class FormFieldMessageComponent {\n @Input() text: string;\n @Input() position: 'left' | 'right' = 'left';\n}\n","{{ text }}<ng-content></ng-content>\n","import { Component, Input, OnDestroy, OnInit } from '@angular/core';\nimport { Subscription } from 'rxjs';\n\nimport { InputComponent } from '../input/input.component';\n\nimport { TextareaComponent } from './../textarea/textarea.component';\n\n@Component({\n selector: 'kirby-input-counter',\n templateUrl: './input-counter.component.html',\n})\nexport class InputCounterComponent implements OnInit, OnDestroy {\n @Input() listenTo: InputComponent | TextareaComponent;\n length: number;\n maxlength: number;\n private _inputChangeSubscription: Subscription;\n\n get text(): string {\n if (this.length === undefined) {\n return undefined;\n }\n const ofMaxlength = this.maxlength ? `/${this.maxlength}` : '';\n return `${this.length}${ofMaxlength}`;\n }\n\n ngOnInit(): void {\n if (this.listenTo) {\n this.length = this.listenTo.value ? this.listenTo.value.length : 0;\n this.maxlength = this.listenTo.maxlength;\n this._inputChangeSubscription = this.listenTo.kirbyChange.subscribe((value) => {\n this.length = value.length;\n });\n }\n }\n\n ngOnDestroy(): void {\n if (this._inputChangeSubscription) {\n this._inputChangeSubscription.unsubscribe();\n }\n }\n}\n","<kirby-form-field-message [text]=\"text\"></kirby-form-field-message>\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n HostBinding,\n HostListener,\n Input,\n OnChanges,\n SimpleChanges,\n} from '@angular/core';\n\nexport enum InputSize {\n medium = 'md',\n large = 'lg',\n}\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n // tslint:disable-next-line:component-selector\n selector: 'input[kirby-input]',\n styleUrls: ['./input.component.scss'],\n template: '',\n})\nexport class InputComponent implements OnChanges {\n private static typeToInputmodeMap = {\n number: 'decimal',\n search: 'search',\n };\n\n kirbyChange = new EventEmitter<string>();\n\n @Input() set type(value: string) {\n const mappedValue = InputComponent.typeToInputmodeMap[value];\n if (mappedValue && !this.inputmode) {\n this.inputmode = mappedValue;\n }\n }\n\n @HostBinding('class')\n @Input()\n size: InputSize | `${InputSize}` = InputSize.large;\n\n /**\n * Removes padding, width, rounded borders and drop-shadow when set to `true`.\n */\n @HostBinding('class.borderless')\n @Input()\n borderless: boolean;\n\n @HostBinding('class.error')\n @Input()\n hasError: boolean;\n\n @HostBinding('attr.autocomplete')\n @Input()\n autocomplete: 'on' | 'off' = 'off';\n\n @HostBinding('attr.autocorrect')\n @Input()\n autocorrect: 'on' | 'off' = 'off';\n\n @HostBinding('attr.value')\n @Input()\n value: string;\n\n @HostBinding('attr.maxlength')\n @Input()\n maxlength: number;\n\n @HostBinding('attr.inputmode')\n @Input()\n inputmode: string;\n\n @HostListener('keyup', ['$event.target.value'])\n _onKeyUp(value: string) {\n this.kirbyChange.emit(value);\n }\n\n @HostListener('paste', ['$event.target'])\n @HostListener('cut', ['$event.target'])\n _onCutPaste(target: HTMLInputElement) {\n //Value of input element is updated after cut/paste:\n setTimeout(() => this.kirbyChange.emit(target.value));\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.value) {\n this.kirbyChange.emit(changes.value.currentValue);\n }\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n Input,\n HostBinding,\n EventEmitter,\n HostListener,\n SimpleChanges,\n OnChanges,\n} from '@angular/core';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n // tslint:disable-next-line:component-selector\n selector: 'textarea[kirby-textarea]',\n styleUrls: ['./textarea.component.scss'],\n templateUrl: './textarea.component.html',\n})\nexport class TextareaComponent implements OnChanges {\n kirbyChange = new EventEmitter<string>();\n\n @Input() value: string;\n\n /**\n * Removes padding, width, rounded borders and drop-shadow when set to `true`.\n */\n @HostBinding('class.borderless')\n @Input()\n borderless: boolean;\n\n @HostBinding('class.error')\n @Input()\n hasError: boolean;\n\n @HostBinding('attr.autocomplete')\n @Input()\n autocomplete: 'on' | 'off' = 'off';\n\n @HostBinding('attr.autocorrect')\n @Input()\n autocorrect: 'on' | 'off' = 'off';\n\n @HostBinding('attr.maxlength')\n @Input()\n maxlength: number;\n\n @HostListener('keyup', ['$event.target.value'])\n _onKeyUp(value: string) {\n this.kirbyChange.emit(value);\n }\n\n @HostListener('paste', ['$event.target'])\n @HostListener('cut', ['$event.target'])\n _onCutPaste(target: HTMLInputElement) {\n //Value of textarea element is updated after cut/paste:\n setTimeout(() => this.kirbyChange.emit(target.value));\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.value) {\n this.kirbyChange.emit(changes.value.currentValue);\n }\n }\n}\n","<ng-content *ngIf=\"!value\"></ng-content>\n<ng-container *ngIf=\"value\">{{ value }}</ng-container>\n","import {\n AfterContentChecked,\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n ElementRef,\n HostListener,\n Input,\n OnDestroy,\n OnInit,\n Renderer2,\n} from '@angular/core';\n\nimport { PlatformService } from '../../helpers/platform.service';\nimport { UniqueIdGenerator } from '../../helpers/unique-id-generator.helper';\nimport { WindowRef } from '../../types/window-ref';\nimport { RadioGroupComponent } from '../radio/radio-group/radio-group.component';\n\nimport { InputCounterComponent } from './input-counter/input-counter.component';\nimport { InputComponent } from './input/input.component';\nimport { TextareaComponent } from './textarea/textarea.component';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'kirby-form-field',\n styleUrls: ['./form-field.component.scss'],\n templateUrl: './form-field.component.html',\n})\nexport class FormFieldComponent\n implements AfterContentChecked, AfterContentInit, OnInit, OnDestroy\n{\n private isRegistered = false;\n private element: HTMLElement;\n private inputElement: HTMLInputElement | HTMLTextAreaElement;\n private isTouch: boolean;\n _labelId = UniqueIdGenerator.scopedTo('kirby-form-field-label').next();\n\n @Input() label: string;\n @Input() message: string;\n\n @ContentChild(InputCounterComponent, { static: false }) counter: InputCounterComponent;\n @ContentChild(RadioGroupComponent) private radioGroupComponent: RadioGroupComponent;\n @ContentChild(RadioGroupComponent, { read: ElementRef })\n private radioGroupElement: ElementRef<HTMLElement>;\n\n @ContentChild(InputComponent, { read: ElementRef }) input: ElementRef<HTMLInputElement>;\n @ContentChild(TextareaComponent, { read: ElementRef }) textarea: ElementRef<HTMLTextAreaElement>;\n\n constructor(\n elementRef: ElementRef<HTMLElement>,\n private platform: PlatformService,\n private renderer: Renderer2,\n private windowRef: WindowRef\n ) {\n this.element = elementRef.nativeElement;\n }\n\n get _wrapContentInLabel(): boolean {\n return !!this.label && (!!this.input || !!this.textarea);\n }\n\n private dispatchLoadEvent() {\n // Dispatch an `ionInputDidLoad` event to register\n // form field + input/textarea with Ionic input shims\n // See: https://github.com/ionic-team/ionic-framework/blob/master/core/src/utils/input-shims/input-shims.ts\n this.windowRef.nativeWindow.document.dispatchEvent(\n new CustomEvent('ionInputDidLoad', {\n detail: this.element,\n })\n );\n }\n\n @HostListener('kirbyRegisterFormField')\n _onRegisterFormField() {\n this.dispatchLoadEvent();\n }\n\n onLabelClick() {\n this.radioGroupComponent && this.radioGroupComponent.focus();\n }\n\n public focus() {\n if (!this.inputElement) return;\n\n if (this.isTouch) {\n // Trigger Ionic's input shims to ensure input is scrolled into view.\n // See: https://github.com/ionic-team/ionic-framework/blob/master/core/src/utils/input-shims/hacks/scroll-assist.ts\n const touchStart = new TouchEvent('touchstart');\n const touchEnd = new TouchEvent('touchend');\n this.inputElement.dispatchEvent(touchStart);\n this.inputElement.dispatchEvent(touchEnd);\n } else {\n this.inputElement.focus();\n }\n }\n\n ngOnInit() {\n this.isTouch = this.platform.isTouch();\n }\n\n ngAfterContentInit(): void {\n if (this.label && this.radioGroupElement) {\n this.renderer.setAttribute(\n this.radioGroupElement.nativeElement,\n 'aria-labelledby',\n this._labelId\n );\n }\n }\n\n ngAfterContentChecked(): void {\n if (!this.inputElement) {\n this.inputElement = this.element.querySelector('input, textarea');\n }\n\n // TODO: remove \"!this.inputElement.readOnly\" when ionic has fixed input click issue\n // https://github.com/ionic-team/ionic-framework/issues/22740\n if (\n !this.isRegistered &&\n this.element.isConnected &&\n !!this.inputElement &&\n !this.inputElement.readOnly\n ) {\n // Host is connected to dom and slotted input/textarea is present:\n this.isRegistered = true;\n this.dispatchLoadEvent();\n }\n }\n\n ngOnDestroy(): void {\n // Dispatch an `ionInputDidUnload` event to unregister\n // form field + input/textarea from Ionic input shims\n // See: https://github.com/ionic-team/ionic-framework/blob/master/core/src/utils/input-shims/input-shims.ts\n this.windowRef.nativeWindow.document.dispatchEvent(\n new CustomEvent('ionInputDidUnload', {\n detail: this.element,\n })\n );\n }\n}\n","<label *ngIf=\"_wrapContentInLabel\">\n <ng-container *ngTemplateOutlet=\"labelTextTemplate\"></ng-container>\n <ng-container *ngTemplateOutlet=\"slottedInputTemplate\"></ng-container>\n</label>\n\n<ng-container *ngIf=\"!_wrapContentInLabel\">\n <ng-container *ngTemplateOutlet=\"labelTemplate\"></ng-container>\n <ng-container *ngTemplateOutlet=\"slottedInputTemplate\"></ng-container>\n</ng-container>\n\n<div *ngIf=\"message || counter\" class=\"texts\">\n <kirby-form-field-message\n *ngIf=\"message\"\n class=\"message\"\n [text]=\"message\"\n ></kirby-form-field-message>\n\n <div *ngIf=\"counter\" class=\"counter\">\n <ng-content select=\"kirby-input-counter\"></ng-content>\n </div>\n</div>\n\n<ng-template #slottedInputTemplate>\n <ng-content select=\"input[kirby-input]\"></ng-content>\n <ng-content select=\"textarea[kirby-textarea]\"></ng-content>\n <ng-content select=\"kirby-radio-group\"></ng-content>\n</ng-template>\n\n<ng-template #labelTextTemplate>\n <ng-container *ngIf=\"label\">\n <span class=\"text\">{{ label }}</span>\n </ng-container>\n</ng-template>\n\n<ng-template #labelTemplate>\n <ng-container *ngIf=\"label\">\n <label class=\"text\" [id]=\"_labelId\" (click)=\"onLabelClick()\">{{ label }}</label>\n </ng-container>\n</ng-template>\n","import { FormatWidth, getLocaleDateFormat } from '@angular/common';\nimport {\n AfterViewInit,\n Directive,\n ElementRef,\n HostListener,\n Inject,\n LOCALE_ID,\n Renderer2,\n} from '@angular/core';\nimport 'inputmask/lib/extensions/inputmask.date.extensions';\nimport Inputmask from 'inputmask/lib/inputmask';\n\n@Directive({\n selector: '[kirby-input][type=\"date\"]',\n})\nexport class DateInputDirective implements AfterViewInit {\n @HostListener('input')\n onInput() {\n this.updateMask(this.elementRef.nativeElement.value);\n }\n\n private maskingElement: HTMLElement;\n\n constructor(\n private elementRef: ElementRef,\n private renderer: Renderer2,\n @Inject(LOCALE_ID) private locale: string\n ) {\n // Remove type to avoid user-agent specific behaviour for [type=\"date\"]\n this.elementRef.nativeElement.removeAttribute('type');\n }\n\n ngAfterViewInit(): void {\n this.initMask();\n }\n\n private initMask(): void {\n const inputFormat = this.getInputFormat();\n const placeholder = this.getPlaceholder(inputFormat);\n\n // Set initial placeholder ex. dd/mm/yyyy\n this.renderer.setAttribute(this.elementRef.nativeElement, 'placeholder', placeholder);\n\n // Init InputMask\n new Inputmask('datetime', {\n inputFormat,\n placeholder,\n }).mask(this.elementRef.nativeElement);\n\n // Append input overlay, so it's possible to style typed date differntly than the date-mask\n this.appendMaskingElement();\n }\n\n // Keeps order and seperator from speficied locale\n private getInputFormat(): string {\n const localeDateFormat = getLocaleDateFormat(this.locale, FormatWidth.Short);\n return localeDateFormat\n .toLowerCase()\n .replace(/d+/, 'dd')\n .replace(/m+/, 'mm')\n .replace(/y+/, 'yyyy');\n }\n\n private getPlaceholder(inputFormat: string): string {\n return this.locale === 'da' ? inputFormat.split('y').join('å') : inputFormat;\n }\n\n private appendMaskingElement(): void {\n const wrapper = this.wrapElement(this.elementRef.nativeElement);\n this.renderer.addClass(wrapper, 'date-mask-wrapper');\n\n this.maskingElement = this.renderer.createElement('div');\n this.renderer.appendChild(wrapper, this.maskingElement);\n\n this.renderer.addClass(this.maskingElement, 'date-mask');\n }\n\n private wrapElement(element: HTMLElement): HTMLElement {\n const wrapper = this.renderer.createElement('div');\n const parent = element.parentElement;\n this.renderer.insertBefore(parent, wrapper, element);\n this.renderer.appendChild(wrapper, element);\n return wrapper;\n }\n\n private updateMask(value: string): void {\n if (!this.maskingElement) return;\n const lastNumber = value.match(/.*?(\\d)[^\\d]*$/); // get last number in string\n this.maskingElement.innerHTML = value\n ? value.slice(0, value.lastIndexOf(lastNumber[1]) + 1)\n : '';\n }\n}\n","import { getLocaleNumberSymbol, NumberSymbol } from '@angular/common';\nimport { Directive, ElementRef, Inject, Input, LOCALE_ID, OnInit } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport 'inputmask/lib/extensions/inputmask.numeric.extensions';\nimport Inputmask from 'inputmask/lib/inputmask';\n\ninterface InputMask {\n unmaskedvalue: () => string;\n setValue: (val: string) => void;\n}\n\n@Directive({\n // tslint:disable-next-line\n selector: '[kirby-decimal-mask]',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n multi: true,\n useExisting: DecimalMaskDirective,\n },\n ],\n})\nexport class DecimalMaskDirective implements ControlValueAccessor, OnInit {\n @Input() min: number;\n @Input() max: number;\n @Input() precision = 2;\n @Input() setMaxOnOverflow = false;\n\n @Input() set allowMinus(allowMinus: boolean) {\n this._allowMinus = allowMinus || (this.min || 0) < 0;\n }\n\n @Input() set disableGroupSeperator(disabled: string) {\n this._groupSeperatorDisabled = String(disabled) === '' || String(disabled) === 'true';\n }\n\n @Input() set maxlength(maxlength: number) {\n this._maxlength = maxlength;\n\n const maxlengthValue = parseInt('9'.repeat(maxlength));\n this.max = this.getMax(maxlengthValue);\n this.min = this.getMin(maxlengthValue);\n }\n\n groupSeparator = getLocaleNumberSymbol(this.locale, NumberSymbol.Group);\n radixPoint = getLocaleNumberSymbol(this.locale, NumberSymbol.Decimal);\n inputmask: InputMask;\n\n _allowMinus = false;\n _maxlength: number;\n _groupSeperatorDisabled: boolean;\n\n onChange = (_: string) => {};\n\n constructor(private elementRef: ElementRef, @Inject(LOCALE_ID) private locale: string) {}\n\n ngOnInit(): void {\n // Set type=\"text\", because functionality like 'setSelectionRange' are not supported on type=\"number\"\n this.elementRef.nativeElement.setAttribute('type', 'text');\n\n // Remove maxlength as this is handled by the mask\n this.elementRef.nativeElement.removeAttribute('maxlength');\n\n this.initMask();\n }\n\n writeValue(val: number): void {\n if (!this.inputmask) return;\n const formattedValue = String(val).replace('.', this.radixPoint);\n this.inputmask.setValue(formattedValue);\n }\n\n registerOnChange(onChange: any): void {\n this.onChange = onChange;\n }\n\n registerOnTouched(_: any): void {}\n\n private initMask(): void {\n new Inputmask('decimal', {\n groupSeparator: this._groupSeperatorDisabled ? '' : this.groupSeparator,\n radixPoint: this.radixPoint,\n digits: this._maxlength ? 0 : this.precision,\n min: this.min,\n max: this.max,\n allowMinus: this._allowMinus,\n negationSymbol: {\n front: getLocaleNumberSymbol(this.locale, NumberSymbol.MinusSign),\n back: '',\n },\n SetMaxOnOverflow: this.setMaxOnOverflow,\n showMaskOnFocus: false,\n showMaskOnHover: false,\n placeholder: '',\n onBeforeWrite: () => {\n if (!this.inputmask) return;\n const unmaskedValue = this.inputmask.unmaskedvalue();\n this.onChange(unmaskedValue.replace(this.radixPoint, '.'));\n },\n }).mask(this.elementRef.nativeElement);\n this.inputmask = this.elementRef.nativeElement.inputmask;\n }\n\n private getMax(maxlengthValue: number): number {\n return this.max === undefined ? maxlengthValue : Math.min(this.max, maxlengthValue);\n }\n\n private getMin(maxlengthValue: number): number {\n if (!this.allowMinus) return;\n maxlengthValue = -Math.abs(maxlengthValue);\n return this.min === undefined ? maxlengthValue : -Math.abs(Math.max(this.min, maxlengthValue));\n }\n}\n","import { DOCUMENT } from '@angular/common';\nimport {\n AfterContentInit,\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n ElementRef,\n HostBinding,\n Inject,\n Input,\n Renderer2,\n ViewChild,\n} from '@angular/core';\nimport { IonFab, IonFabButton, IonIcon } from '@ionic/angular';\n\nimport { Icon } from '../icon/icon-settings';\nimport { kirbyIconSettings } from '../icon/kirby-icon-settings';\nimport { ActionSheetComponent } from '../modal/action-sheet/action-sheet.component';\n\n@Component({\n selector: 'kirby-fab-sheet',\n templateUrl: './fab-sheet.component.html',\n styleUrls: ['./fab-sheet.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FabSheetComponent implements AfterContentInit, AfterViewInit {\n @Input() disabled: boolean = false;\n @Input() horizontalAlignment: 'left' | 'center' | 'right' = 'right';\n\n private _isFabSheetOpen: boolean = false;\n @HostBinding('class.is-open')\n get isFabSheetOpen() {\n return this._isFabSheetOpen;\n }\n\n private _isBackdropVisible: boolean = false;\n @HostBinding('class.backdrop-visible')\n get isBackdropVisible() {\n return this._isBackdropVisible;\n }\n\n @ContentChild(ActionSheetComponent, { static: false }) actionSheet: ActionSheetComponent;\n\n @ViewChild(IonFabButton, { static: true, read: ElementRef })\n ionFabButton: ElementRef<HTMLElement>;\n\n constructor(private renderer: Renderer2, @Inject(DOCUMENT) private document: any) {}\n\n ngAfterViewInit(): void {\n const kirbyCloseIcon = kirbyIconSettings.icons.find((icon) => icon.name === 'close');\n this.setCloseIcon(kirbyCloseIcon);\n }\n\n private setCloseIcon(kirbyCloseIcon: Icon, retryCount = 0) {\n const maxRetryCount = 20;\n const retryDelayInMs = 20;\n const fabButtonElement = this.ionFabButton.nativeElement;\n if (!fabButtonElement || !kirbyCloseIcon || retryCount >= maxRetryCount) {\n return;\n }\n if (fabButtonElement.shadowRoot && fabButtonElement.shadowRoot.innerHTML) {\n const closeIcon = fabButtonElement.shadowRoot.querySelector('.close-icon ion-icon');\n if (closeIcon) {\n const closeIconSvgLoaded = closeIcon.shadowRoot.querySelector('.icon-inner svg');\n // prettier-ignore\n const ionCloseIcon = (closeIcon as unknown) as IonIcon;\n if (ionCloseIcon && closeIconSvgLoaded) {\n ionCloseIcon.src = kirbyCloseIcon.svg;\n return;\n }\n }\n }\n retryCount++;\n setTimeout(() => this.setCloseIcon(kirbyCloseIcon, retryCount), retryDelayInMs);\n }\n\n ngAfterContentInit(): void {\n if (this.actionSheet) {\n this.actionSheet.hideCancel = true;\n }\n }\n\n hideActions(fab: IonFab) {\n fab.close();\n this._isFabSheetOpen = false;\n this._isBackdropVisible = false;\n this.renderer.removeClass(this.document.body, 'fab-sheet-active');\n }\n\n onFabClick(fab: IonFab) {\n this._isFabSheetOpen = !fab.activated;\n if (this._isFabSheetOpen) {\n this.renderer.addClass(this.document.body, 'fab-sheet-active');\n } else {\n this.renderer.removeClass(this.document.body, 'fab-sheet-active');\n }\n setTimeout(() => (this._isBackdropVisible = this.isFabSheetOpen));\n }\n}\n","<ion-backdrop\n *ngIf=\"actionSheet && isFabSheetOpen\"\n (ionBackdropTap)=\"hideActions(fab)\"\n (click)=\"hideActions(fab)\"\n></ion-backdrop>\n<ion-fab #fab (click)=\"disabled || onFabClick(fab)\">\n <ion-fab-button [disabled]=\"disabled\" [attr.disabled]=\"disabled ? true : null\" tabindex=\"-1\">\n <ng-content select=\"kirby-icon\"></ng-content>\n </ion-fab-button>\n <ion-fab-list *ngIf=\"actionSheet\" side=\"top\" class=\"{{ horizontalAlignment }}\">\n <ng-content select=\"kirby-action-sheet\"></ng-content>\n </ion-fab-list>\n</ion-fab>\n","import { ChangeDetectionStrategy, Component, HostBinding, Input } from '@angular/core';\n\n@Component({\n selector: 'kirby-flag',\n template: ` <ng-content></ng-content> `,\n styleUrls: ['./flag.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FlagComponent {\n @Input() size: 'xs' | 'sm' | 'md' = 'md';\n @Input() themeColor: 'success' | 'warning' | 'danger' | 'semi-light' | 'transparent' =\n 'transparent';\n\n @HostBinding('class')\n get _cssClass() {\n return [this.themeColor, this.size];\n }\n}\n","// TODO TRM/JEO Parse from scss files instead!!1!!\nexport class ScssHelper {\n // Breakpoints\n public static BREAKPOINT_SCREEN_L = 720;\n public static BREAKPOINT_CARD_S = 320;\n public static BREAKPOINT_CARD_M = 460;\n public static BREAKPOINT_CARD_L = 820;\n}\n","import { Injectable, OnDestroy } from '@angular/core';\nimport { Subject, Observable } from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class BreakpointHelperService implements OnDestroy {\n currentScreenWidth: 800;\n private orientationChangedSubject = new Subject<void>();\n\n constructor() {\n this.init();\n }\n\n private init() {\n // TODO JEO: Implement Angular/CDK BreakpointObserver:\n this.orientationChangedSubject.next();\n }\n\n observe(): Observable<void> {\n return this.orientationChangedSubject.asObservable();\n }\n\n ngOnDestroy() {\n this.orientationChangedSubject.complete();\n }\n}\n","import { Component, OnInit, Input, OnDestroy } from '@angular/core';\nimport { Subscription } from 'rxjs';\n\nimport { ScssHelper } from '../../scss/scss-helper';\nimport { BreakpointHelperService } from './breakpoint-helper.service';\nimport { GridCardConfiguration } from './grid-card-configuration';\n\nclass GridCard {\n configuration: GridCardConfiguration;\n row: number;\n col: number;\n colSpan: number;\n\n constructor(configuration: GridCardConfiguration, row: number, col: number, colSpan: number) {\n this.configuration = configuration;\n this.row = row;\n this.col = col;\n this.colSpan = colSpan;\n }\n}\n\n@Component({\n selector: 'kirby-grid',\n templateUrl: './grid.component.html',\n styleUrls: ['./grid.component.scss'],\n // tslint:disable-next-line\n host: { '[attr.max-columns]': 'maxColumns' },\n})\nexport class GridComponent implements OnInit, OnDestroy {\n cardConfigs: GridCardConfiguration[];\n cards: GridCard[] = [];\n private breakpointSubscription: Subscription;\n\n @Input() maxColumns: number;\n\n @Input()\n set cardConfigurations(cardConfigurations: GridCardConfiguration[]) {\n this.cardConfigs = cardConfigurations;\n // TODO TRM/JEO Remove this when breakpoint observe something something...\n this.configureGrid();\n }\n\n constructor(private breakpointHelper: BreakpointHelperService) {}\n\n configureGrid() {\n let calculatedMaxColumns = 0;\n if (this.maxColumns === undefined) {\n calculatedMaxColumns =\n this.breakpointHelper.currentScreenWidth >= ScssHelper.BREAKPOINT_SCREEN_L ? 2 : 1;\n } else {\n calculatedMaxColumns = this.maxColumns;\n }\n this.cards = [];\n let columnCounter = 0;\n let currentRow = 0;\n let currentColumn = 0;\n\n this.cardConfigs.forEach((card, index) => {\n // Cards colspan is added to the column counter\n columnCounter += card.preferredSize;\n // If only maxColumns are set to 1, just add all cards with a colspan of 1\n if (calculatedMaxColumns === 1) {\n this.cards.push(new GridCard(card, currentRow, currentColumn, 1));\n currentRow += 1;\n return;\n }\n // If we are below maxColumns, then add the card to the array\n if (columnCounter <= calculatedMaxColumns) {\n this.cards.push(new GridCard(card, currentRow, currentColumn, card.preferredSize));\n // Update currentColumn, so the next card will be placed correctly\n currentColumn += card.preferredSize;\n } else {\n // The new card didn't fit - Calculate remaining columns for previous card\n const restColumns = calculatedMaxColumns - (columnCounter - card.preferredSize);\n const prevCard = this.cards[index - 1];\n // Add the restColumns to the previous cards colspan, to make it span out\n prevCard.colSpan = restColumns + prevCard.colSpan;\n // We are now on a new row\n currentRow += 1;\n currentColumn = 0;\n this.cards.push(new GridCard(card, currentRow, currentColumn, card.preferredSize));\n // Update currentColumn to match the size of the new card and reset columnCounter\n currentColumn = card.preferredSize;\n columnCounter = card.preferredSize;\n }\n // If we on the last card, make sure it spans all the rest of the columns\n if (this.cardConfigs.length - 1 === index) {\n const restColumns = calculatedMaxColumns - columnCounter;\n const currentCard = this.cards[index];\n currentCard.colSpan += restColumns;\n }\n });\n }\n\n ngOnInit() {\n // this.breakpointSubscription = this.breakpointHelper.observe().subscribe(() => {\n // this.configureGrid();\n // });\n }\n\n ngOnDestroy() {\n if (this.breakpointSubscription) {\n this.breakpointSubscription.unsubscribe();\n }\n }\n}\n","<ng-container *ngFor=\"let card of cards\">\n <ng-template\n [kirbyLoadComponent]=\"card.configuration\"\n [cssClass]=\"'grid-item--col-' + card.colSpan\"\n ></ng-template>\n</ng-container>\n","import { Type } from '@angular/core';\n\nimport { ComponentConfiguration } from '../shared/component-configuration';\n\nexport class GridCardConfiguration implements ComponentConfiguration {\n constructor(public component: Type<any>, public data: any, public preferredSize: number) {}\n}\n","import { NgModule } from '@angular/core';\nimport { IonicModule } from '@ionic/angular';\n\nimport { IconComponent } from './icon.component';\n\n@NgModule({\n imports: [IonicModule],\n declarations: [IconComponent],\n exports: [IconComponent],\n})\nexport class IconModule {}\n","import { Component, Input, HostBinding } from '@angular/core';\n\n@Component({\n selector: 'kirby-label',\n templateUrl: './label.component.html',\n styleUrls: ['./label.component.scss'],\n})\nexport class LabelComponent {\n @Input()\n direction: 'vertical' | 'horizontal' = 'vertical';\n\n @HostBinding('class.horizontal')\n get _direction() {\n return this.direction === 'horizontal';\n }\n}\n","<ion-label>\n <ng-content></ng-content>\n</ion-label>\n","import { NgModule } from '@angular/core';\nimport { IonicModule } from '@ionic/angular';\nimport { CommonModule } from '@angular/common';\n\nimport { IconModule } from '../icon/icon.module';\nimport { ItemComponent } from './item.component';\nimport { LabelComponent } from './label/label.component';\n\n@NgModule({\n imports: [IonicModule, IconModule, CommonModule],\n declarations: [ItemComponent, LabelComponent],\n exports: [ItemComponent, LabelComponent],\n})\nexport class ItemModule {}\n","import { Component, HostBinding } from '@angular/core';\n\n@Component({\n selector: 'kirby-item-group',\n templateUrl: './item-group.component.html',\n styleUrls: ['./item-group.component.scss'],\n})\nexport class ItemGroupComponent {\n @HostBinding('attr.role') role: string = 'group';\n}\n","<ng-content></ng-content>\n","import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'kirby-spinner',\n templateUrl: './spinner.component.html',\n styleUrls: ['./spinner.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SpinnerComponent implements OnInit {\n constructor() {}\n\n ngOnInit() {}\n}\n","<div class=\"spinner\">\n <div class=\"inner-circle\"></div>\n <div class=\"outer-circle\"></div>\n</div>\n","import { ComponentFactoryResolver, Injectable, Injector } from '@angular/core';\nimport { LoadingController } from '@ionic/angular';\n\nimport { SpinnerComponent } from '../spinner/spinner.component';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class LoadingOverlayService {\n private ionLoading: HTMLIonLoadingElement = null;\n\n constructor(\n private loadingController: LoadingController,\n private componentFactoryResolver: ComponentFactoryResolver,\n private injector: Injector\n ) {}\n\n public async showLoadingOverlay(showBackdrop: boolean = true): Promise<void> {\n if (!this.ionLoading) {\n this.ionLoading = await this.loadingController.create({\n cssClass: 'kirby-loading-overlay',\n duration: 0,\n message: null,\n showBackdrop: showBackdrop,\n spinner: null,\n });\n\n const loadingWrapper = this.ionLoading.querySelector('.loading-wrapper');\n const kirbySpinner = document.createElement('kirby-spinner');\n const factory = this.componentFactoryResolver.resolveComponentFactory(SpinnerComponent);\n factory.create(this.injector, [], kirbySpinner);\n loadingWrapper.appendChild(kirbySpinner);\n\n await this.ionLoading.present();\n }\n }\n\n public async hideLoadingOverlay(): Promise<void> {\n if (!!this.ionLoading) {\n await this.ionLoading.dismiss();\n this.ionLoading = null;\n }\n }\n}\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\n@Component({\n selector: 'kirby-loading-overlay',\n templateUrl: './loading-overlay.component.html',\n styleUrls: ['./loading-overlay.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class LoadingOverlayComponent {\n @Input() public isLoading = true;\n @Input() public showBackdrop = true;\n}\n","<div class=\"overlay-wrapper\">\n <div *ngIf=\"isLoading\" [class.backdrop]=\"showBackdrop\" class=\"spinner-wrapper\">\n <kirby-spinner class=\"spinner\"></kirby-spinner>\n </div>\n <div class=\"content-wrapper\">\n <ng-content></ng-content>\n </div>\n</div>\n","import {\n AfterViewInit,\n Directive,\n ElementRef,\n EventEmitter,\n HostListener,\n Input,\n NgZone,\n OnDestroy,\n Output,\n} from '@angular/core';\nimport { fromEvent, Subject } from 'rxjs';\nimport { debounceTime, filter, map, takeUntil } from 'rxjs/operators';\n\nimport { WindowRef } from '../../../types/window-ref';\n\nimport { Scroll } from './scroll.model';\n\n/**\n * Specify debounce duration in ms\n */\nexport const INFINITE_SCROLL_DEBOUNCE = 100;\n\n@Directive({\n selector: '[kirbyInfiniteScroll]',\n})\nexport class InfiniteScrollDirective implements AfterViewInit, OnDestroy {\n /**\n * Event that will be triggered when the user has scrolled to\n * bottom of the element\n */\n @Output() scrollEnd = new EventEmitter<void>();\n\n /**\n * If true then {@link scrollEnd} event should NOT be emitted\n */\n @Input() disabled = false;\n\n /**\n * Emits a new value on element scroll event\n */\n scroll$: Subject<Scroll> = new Subject<Scroll>();\n\n /**\n * Completes on component destroy lifecycle event\n * used to unsubscribe from infinite observables\n */\n private ngUnsubscribe$ = new Subject<void>();\n\n /**\n * An offset from the bottom of the element to trigger {@link scrollEnd} event\n */\n private offset = 0.8;\n\n constructor(private elementRef: ElementRef, private windowRef: WindowRef, private zone: NgZone) {}\n\n ngAfterViewInit(): void {\n /**\n * Subscribe to {@link scroll$} observable and emit {@link scrollEnd} event\n * when element scroll position has surpassed the offset.\n */\n this.scroll$\n .pipe(\n takeUntil(this.ngUnsubscribe$),\n debounceTime(INFINITE_SCROLL_DEBOUNCE),\n filter(() => !this.disabled),\n filter((scroll) => {\n return (\n scroll.elementHeight * (1 - this.offset) >=\n scroll.distanceToViewBottom - scroll.viewHeight\n );\n })\n )\n .subscribe(() => {\n this.scrollEnd.emit();\n });\n\n /**\n * Subscribe to the ionScroll event on the ion-content around the list (if any)\n * and emit {@link scrollEnd} event when element scroll position has surpassed the offset.\n */\n setTimeout(() => {\n const ionContent: HTMLElement = this.elementRef.nativeElement.closest('ion-content');\n if (ionContent) {\n // we run the 'ionScroll' event outside angular, as it would trigger change detection on each scroll\n this.zone.runOutsideAngular(() => {\n fromEvent<any>(ionContent, 'ionScroll')\n .pipe(\n takeUntil(this.ngUnsubscribe$),\n debounceTime(INFINITE_SCROLL_DEBOUNCE),\n filter(() => !this.disabled),\n map(() => this.getScroll()),\n filter((scroll) => {\n return (\n scroll.elementHeight * (1 - this.offset) >=\n scroll.distanceToViewBottom - scroll.viewHeight\n );\n })\n )\n .subscribe(() => {\n // we make sure to emit the event inside angular again. As we want to show the spinner and need change detection for that.\n this.zone.run(() => this.scrollEnd.emit());\n });\n });\n }\n });\n }\n\n /**\n * On element scroll event emit next {@link scroll$} observable value\n */\n @HostListener('window:scroll')\n onScroll(): void {\n if (this.disabled) return;\n const scroll = this.getScroll();\n this.scroll$.next(scroll);\n }\n\n /**\n * trigger {@link ngUnsubscribe} complete on component destroy lifecycle hook\n */\n ngOnDestroy(): void {\n this.ngUnsubscribe$.next();\n this.ngUnsubscribe$.complete();\n }\n\n private getScroll(): Scroll {\n const element = this.elementRef.nativeElement as HTMLElement;\n const boundindClientRect = element.getBoundingClientRect();\n\n const distanceToViewBottom = boundindClientRect.bottom;\n const elementHeight = boundindClientRect.height;\n const viewHeight = this.windowRef.nativeWindow.innerHeight;\n\n return { distanceToViewBottom, elementHeight, viewHeight };\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { ListComponent } from '../list.component';\nimport { LoadOnDemandEventData } from '../list.event';\n\n@Injectable()\nexport class ListHelper {\n onLoadOnDemand(component: ListComponent, _event: LoadOnDemandEventData) {\n if (component.isLoadOnDemandEnabled && !component._isLoading) {\n component._isLoading = true;\n component.loadOnDemand.emit({\n complete: (disableLoadOnDemand: boolean) => {\n component.isLoadOnDemandEnabled = !disableLoadOnDemand;\n component._isLoading = false;\n },\n });\n }\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'groupBy',\n})\nexport class GroupByPipe implements PipeTransform {\n transform(items: any[], getGroupName?: (item: any) => string): any[] {\n if (!items) {\n return null;\n }\n if (!getGroupName) {\n return items;\n }\n\n const groupsMap = new Map<string, any[]>();\n\n items.forEach((item: any) => {\n const itemGroup = getGroupName(item);\n const groupItems = groupsMap.get(itemGroup);\n\n if (groupItems) {\n groupItems.push(item);\n } else {\n groupsMap.set(itemGroup, [item]);\n }\n });\n\n return Array.from(groupsMap)\n .sort(([name], [otherName]) => name.localeCompare(otherName))\n .map(([name, items]) => {\n return { name, items };\n });\n }\n}\n","import { Directive, HostBinding, Input, OnChanges } from '@angular/core';\n\nimport { ThemeColor } from '@kirbydesign/core';\n\n@Directive({\n selector: '[kirbyListItemColor]',\n})\nexport class ListItemColorDirective implements OnChanges {\n @Input()\n kirbyListItemColor: (item: any) => ThemeColor;\n @Input() item: any;\n @HostBinding('class')\n color: ThemeColor;\n\n ngOnChanges(): void {\n this.color = this.getColor();\n }\n\n private getColor(): ThemeColor {\n if (!this.kirbyListItemColor || !this.item) {\n return;\n }\n\n const themeColor = this.kirbyListItemColor(this.item);\n return themeColor;\n }\n}\n","import {\n AfterViewInit,\n Component,\n EventEmitter,\n Input,\n OnInit,\n Output,\n TemplateRef,\n ViewChild,\n} from '@angular/core';\nimport { IonItemSliding } from '@ionic/angular';\n\nimport { ThemeColor } from '@kirbydesign/core';\n\nimport { PlatformService } from '../../../helpers/platform.service';\nimport { ListSwipeAction, ListSwipeDirection, ListSwipeEnd } from '../list-swipe-action.type';\n\nexport type BoundaryClass = 'first' | 'last';\n\n@Component({\n selector: 'kirby-list-item',\n templateUrl: './list-item.component.html',\n styleUrls: ['../list.component.scss', './list-item.component.scss'],\n})\nexport class ListItemComponent implements OnInit, AfterViewInit {\n _isSwipingEnabled = false;\n\n constructor(private platform: PlatformService) {\n this.initializeSwipeActions();\n }\n\n @ViewChild(IonItemSliding) ionItemSliding: IonItemSliding;\n\n @Input() item: any;\n\n @Input() boundaryClass: BoundaryClass;\n\n @Input() swipeActions: ListSwipeAction[] = [];\n\n @Input() itemTemplate: TemplateRef<any>;\n\n @Input() isSelected: boolean;\n\n @Input() isSelectable: boolean;\n\n @Input() getItemColor: (item: any) => ThemeColor;\n\n @Output() itemSelect = new EventEmitter<any>();\n\n _onItemSelect(item: any) {\n if (!this.isSelectable) return;\n this.itemSelect.emit(item);\n }\n\n @Output() swipeActionSelect = new EventEmitter<any>();\n\n _onSwipeActionSelect(swipeAction, item, event) {\n this.swipeActionSelect.emit({\n swipeAction,\n item,\n event,\n });\n }\n\n ngOnInit() {\n this.initializeSwipeActions();\n }\n\n ngAfterViewInit(): void {\n if (!this.itemTemplate) {\n console.warn('No item template was provided.');\n }\n }\n\n _hasSwipeActions(item: any): boolean {\n if (!Array.isArray(this.swipeActions)) {\n return false;\n }\n return this.swipeActions.some((swipeAction) => {\n if (swipeAction.isDisabled instanceof Function && swipeAction.isDisabled(item)) {\n return false;\n }\n if (swipeAction.isDisabled === true) {\n return false;\n }\n return swipeAction.position === 'left' || swipeAction.position === 'right';\n });\n }\n\n _getSwipeActions(item: any, direction?: ListSwipeDirection): ListSwipeAction[] {\n if (!Array.isArray(this.swipeActions)) {\n return [];\n }\n return this.swipeActions.filter((swipeAction) => {\n if (this.isSwipeActionDisabled(swipeAction, item)) {\n return false;\n }\n return direction ? swipeAction.position === direction : true;\n });\n }\n\n private isSwipeActionDisabled(swipeAction: ListSwipeAction, item: any): boolean {\n if (swipeAction.isDisabled instanceof Function && swipeAction.isDisabled(item)) {\n return true;\n }\n return swipeAction.isDisabled === true;\n }\n\n _getSwipeActionEnd(item: any): ListSwipeEnd {\n if (this._getSwipeActions(item, 'left').length) {\n return 'start';\n }\n return 'end';\n }\n\n _getSwipeActionIcon(swipeAction: ListSwipeAction, item: any): string {\n if (!swipeAction.icon) return;\n\n if (swipeAction.icon instanceof Function) {\n return swipeAction.icon(item);\n }\n return swipeAction.icon;\n }\n\n _getSwipeActionTitle(swipeAction: ListSwipeAction, item: any): string {\n if (swipeAction.title instanceof Function) {\n return swipeAction.title(item);\n }\n return swipeAction.title;\n }\n\n _getSwipeActionType(swipeAction: ListSwipeAction, item: any): ThemeColor {\n if (swipeAction.type instanceof Function) {\n return swipeAction.type(item);\n }\n return swipeAction.type;\n }\n\n private initializeSwipeActions(): void {\n if (this.swipeActions && this.swipeActions.length) {\n this._isSwipingEnabled = this.platform.isTouch();\n }\n }\n}\n","<ion-item-sliding\n [class.selected]=\"isSelected\"\n [kirbyListItemColor]=\"getItemColor\"\n [item]=\"item\"\n [disabled]=\"_isSwipingEnabled ? null : true\"\n keyHandler\n [ngClass]=\"boundaryClass\"\n (click)=\"_onItemSelect(item)\"\n>\n <ng-container\n *ngTemplateOutlet=\"swipeActionsTemplate; context: { $implicit: item }\"\n ></ng-container>\n <ng-container *ngTemplateOutlet=\"itemTemplate; context: { $implicit: item }\"></ng-container>\n</ion-item-sliding>\n\n<ng-template #swipeActionsTemplate let-item>\n <ion-item-options *ngIf=\"_hasSwipeActions(item)\" [side]=\"_getSwipeActionEnd(item)\">\n <div class=\"swipe-action\">\n <ng-container *ngFor=\"let swipeAction of _getSwipeActions(item)\">\n <ion-item-option\n [ngClass]=\"_getSwipeActionType(swipeAction, item)\"\n (click)=\"_onSwipeActionSelect(swipeAction, item, $event)\"\n >\n <div class=\"item-content\">\n <kirby-icon\n *ngIf=\"_getSwipeActionIcon(swipeAction, item)\"\n size=\"sm\"\n [name]=\"_getSwipeActionIcon(swipeAction, item)\"\n >\n </kirby-icon>\n <ion-label>\n {{ _getSwipeActionTitle(swipeAction, item) }}\n </ion-label>\n </div>\n </ion-item-option>\n </ng-container>\n </div>\n </ion-item-options>\n</ng-template>\n","import {\n AfterViewInit,\n Component,\n ContentChild,\n ContentChildren,\n EventEmitter,\n HostBinding,\n Input,\n OnChanges,\n OnInit,\n Output,\n TemplateRef,\n TrackByFunction,\n ViewChild,\n} from '@angular/core';\n\nimport { ThemeColor } from '@kirbydesign/core';\n\nimport { ItemComponent } from '../item/item.component';\n\nimport { InfiniteScrollDirective } from './directives/infinite-scroll.directive';\nimport { ListHelper } from './helpers/list-helper';\nimport { BoundaryClass } from './list-item/list-item.component';\nimport { ListSwipeAction } from './list-swipe-action.type';\nimport {\n ListFooterDirective,\n ListHeaderDirective,\n ListItemTemplateDirective,\n ListSectionHeaderDirective,\n} from './list.directive';\nimport { LoadOnDemandEvent, LoadOnDemandEventData } from './list.event';\nimport { GroupByPipe } from './pipes/group-by.pipe';\n\nexport type ListShape = 'square' | 'rounded' | 'none';\n\n@Component({\n selector: 'kirby-list',\n templateUrl: './list.component.html',\n styleUrls: ['./list.component.scss'],\n providers: [ListHelper, GroupByPipe],\n})\nexport class ListComponent implements OnInit, AfterViewInit, OnChanges {\n @ViewChild('list', { static: true }) list: any;\n @ViewChild(InfiniteScrollDirective) scrollDirective: InfiniteScrollDirective;\n\n /**\n * Provide items for the list to render. Items must be provided in the order you expect them to be rendered.\n */\n @Input()\n items: any[] = [];\n\n @Input() getItemColor: (item: any) => ThemeColor;\n\n /**\n * Callback to determine name of section. Sections will be ordered alphabetically.\n */\n @Input() getSectionName: (item: any) => string;\n\n /**\n * Callback that defines how to track changes for items in the iterable.\n */\n @Input() trackBy: TrackByFunction<any>;\n\n /**\n * Text to display when no more items can be loaded (used for \"on demand\"-loading).\n */\n @Input() noMoreItemsText: string;\n\n /**\n * Determines if dividers (bottom-border on list items) should be shown or not.\n */\n @Input() showDivider = false;\n\n /**\n * Determines if list row text should turn bold on selection\n */\n @Input() markSelectedRow = false;\n\n /**\n * Determine outline shape of:\n * - list, if {@link #isSectionsEnabled} is `false`\n * - section, if {@link #isSectionsEnabled} is `true`\n *\n * `square` means **without** rounded corners, `rounded` means **with** rounded corners., `none` means **without** padding, border, box-shadow and background.\n */\n @Input() shape: ListShape = 'rounded';\n\n @HostBinding('class.shape-rounded')\n public get isShapeRounded(): boolean {\n return this.shape === 'rounded';\n }\n\n @HostBinding('class.shape-none')\n public get isShapeNone(): boolean {\n return this.shape === 'none';\n }\n\n @HostBinding('class.item-spacing')\n @Input()\n hasItemSpacing: boolean;\n\n /**\n * Determines if the loadOnDemand event should be emitted.\n * Will default to true if there is at least one subscriber to the loadOnDemand event\n */\n @Input() isLoadOnDemandEnabled: boolean;\n\n /**\n * Emitting event when more items are to be loaded.\n */\n @Output() loadOnDemand = new EventEmitter<LoadOnDemandEvent>();\n\n /**\n * Determines if list items should have swipe actions or not\n * - the order of swipe actions is used to determine edge actions,\n * as well as their order of appearance on the screen.\n */\n @Input() swipeActions: ListSwipeAction[] = [];\n\n /**\n * Emitting event when an item is selected (tapped on mobile, clicked on web)\n */\n @Output() itemSelect = new EventEmitter<any>();\n\n @Input() disableSelectionHighlight: boolean = false;\n\n @ContentChildren(ItemComponent)\n kirbyItems: ItemComponent[];\n\n @ContentChild(ListHeaderDirective, { static: false, read: TemplateRef })\n headerTemplate: TemplateRef<any>;\n\n @ContentChild(ListSectionHeaderDirective, { static: false, read: TemplateRef })\n sectionHeaderTemplate: TemplateRef<any>;\n\n @ContentChild(ListFooterDirective, { static: false, read: TemplateRef })\n footerTemplate: TemplateRef<any>;\n\n /**\n * The first element that matches ListItemDirective.\n * As a structural directive it unfolds into a template. This is a reference to that.\n */\n @ContentChild(ListItemTemplateDirective, { static: true, read: TemplateRef })\n itemTemplate: TemplateRef<any>;\n\n @HostBinding('class.has-sections') _isSectionsEnabled: boolean;\n\n _isSelectable: boolean;\n _isLoading: boolean;\n _groupedItems: any[];\n _selectedItem: any;\n\n constructor(private listHelper: ListHelper, private groupBy: GroupByPipe) {}\n\n ngOnInit() {\n this._isSelectable = this.itemSelect.observers.length > 0;\n\n if (this.isLoadOnDemandEnabled === undefined) {\n this.isLoadOnDemandEnabled = this.loadOnDemand.observers.length > 0;\n }\n }\n\n ngAfterViewInit(): void {\n if (this._isSelectable) {\n setTimeout(() => {\n this.kirbyItems.forEach((item) => {\n item.selectable = true;\n });\n });\n }\n }\n\n ngOnChanges(): void {\n this._isSectionsEnabled = !!this.getSectionName;\n this._groupedItems = this._isSectionsEnabled\n ? this.groupBy.transform(this.items, this.getSectionName)\n : null;\n }\n\n _onLoadOnDemand(event?: LoadOnDemandEventData) {\n this.listHelper.onLoadOnDemand(this, event);\n }\n\n defaultTrackBy(index: number): any {\n return index;\n }\n\n sectionTrackBy(_: number, section: { name: string }): string {\n return section.name;\n }\n\n onItemSelect(item: any) {\n if (!this.disableSelectionHighlight) {\n this._selectedItem = item;\n }\n this.itemSelect.emit(item);\n }\n\n onSwipeActionSelect(args: any): void {\n args.swipeAction.onSelected(args.item);\n this.list.closeSlidingItems();\n args.event.stopPropagation();\n }\n\n _getBoundaryClass(index: number, section?: any[]): BoundaryClass {\n let _items = section || this.items;\n\n if (index === 0 || _items[index - 1]?.headingName) return this.headerTemplate ? null : 'first';\n\n if (index === _items.length - 1 || _items[index + 1]?.headingName)\n return this.footerTemplate ? null : 'last';\n }\n}\n","<ion-list\n #list\n kirbyInfiniteScroll\n (scrollEnd)=\"_onLoadOnDemand()\"\n [disabled]=\"!isLoadOnDemandEnabled\"\n class=\"list\"\n [class.has-header]=\"headerTemplate\"\n [class.has-footer]=\"footerTemplate\"\n [class.has-divider]=\"showDivider\"\n>\n <ion-list-header *ngIf=\"headerTemplate\">\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\n </ion-list-header>\n\n <ng-container\n *ngTemplateOutlet=\"\n _isSectionsEnabled ? groupedListTemplate : itemsTemplate;\n context: { $implicit: items }\n \"\n ></ng-container>\n\n <div *ngIf=\"footerTemplate\" class=\"footer\">\n <ng-container *ngTemplateOutlet=\"footerTemplate\"></ng-container>\n </div>\n</ion-list>\n\n<p *ngIf=\"!isLoadOnDemandEnabled && noMoreItemsText\" class=\"no-more-items\">\n {{ noMoreItemsText }}\n</p>\n<div *ngIf=\"_isLoading\" class=\"loading\">\n <kirby-spinner></kirby-spinner>\n</div>\n\n<ng-template #groupedListTemplate>\n <ion-item-group *ngFor=\"let section of _groupedItems; trackBy: sectionTrackBy\">\n <ion-item-divider>\n <ng-container\n *ngTemplateOutlet=\"sectionHeaderTemplate; context: { $implicit: section.name }\"\n ></ng-container>\n </ion-item-divider>\n\n <div class=\"list-items\">\n <ng-container\n *ngTemplateOutlet=\"itemsTemplate; context: { $implicit: section.items }\"\n ></ng-container>\n </div>\n </ion-item-group>\n</ng-template>\n\n<ng-template #itemsTemplate let-items>\n <kirby-list-item\n *ngFor=\"let item of items; let i = index; trackBy: trackBy || defaultTrackBy\"\n [item]=\"item\"\n [itemTemplate]=\"itemTemplate\"\n [swipeActions]=\"swipeActions\"\n [boundaryClass]=\"_getBoundaryClass(i, items)\"\n [isSelectable]=\"_isSelectable\"\n [getItemColor]=\"getItemColor\"\n [isSelected]=\"_isSelectable && item === _selectedItem\"\n (itemSelect)=\"onItemSelect($event)\"\n (swipeActionSelect)=\"onSwipeActionSelect($event)\"\n [class.is-single]=\"items.length === 1\"\n >\n </kirby-list-item>\n</ng-template>\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\n@Component({\n selector: 'kirby-list-header',\n templateUrl: './list-header.component.html',\n styleUrls: ['./list-header.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ListHeaderComponent {\n constructor() {}\n}\n","<ng-content></ng-content>\n","import { ChangeDetectionStrategy, Component, Input, OnInit } from '@angular/core';\n\n@Component({\n selector: 'kirby-list-section-header',\n templateUrl: './list-section-header.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ListSectionHeaderComponent implements OnInit {\n @Input() title: string;\n constructor() {}\n\n ngOnInit() {}\n}\n","<div class=\"header\">\n <span class=\"kirby-text-small\">{{ title }}</span>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { SpinnerComponent } from './spinner.component';\n\n@NgModule({\n declarations: [SpinnerComponent],\n imports: [CommonModule],\n exports: [SpinnerComponent],\n providers: [],\n})\nexport class SpinnerModule {}\n","import { ChangeDetectionStrategy, Component, HostListener, ViewChild } from '@angular/core';\nimport { IonList } from '@ionic/angular';\n\nimport { elementHasAncestor } from '../../../helpers/element-has-ancestor';\n\n@Component({\n selector: 'kirby-list-experimental',\n templateUrl: './list-experimental.component.html',\n styleUrls: ['./list-experimental.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ListExperimentalComponent {\n @ViewChild(IonList, { static: true }) list: IonList;\n\n @HostListener('click', ['$event'])\n closeAllSlidingItems(e: MouseEvent) {\n if (elementHasAncestor(e.target as HTMLElement, 'ion-item-option', 'ion-list')) {\n this.list.closeSlidingItems();\n }\n }\n}\n","<ng-content select=\"[outside]\"></ng-content>\n<div class=\"rounded shadow first-item-padding last-item-padding\">\n <ng-content></ng-content>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { IonicModule } from '@ionic/angular';\n\nimport { IconModule } from '../icon/icon.module';\nimport { SpinnerModule } from '../spinner/spinner.module';\n\nimport { InfiniteScrollDirective } from './directives/infinite-scroll.directive';\nimport { ListItemColorDirective } from './directives/list-item-color.directive';\nimport { ListExperimentalComponent } from './list-experimental/list-experimental.component';\nimport { ListHeaderComponent } from './list-header/list-header.component';\nimport { ListItemComponent } from './list-item/list-item.component';\nimport { ListSectionHeaderComponent } from './list-section-header/list-section-header.component';\nimport { ListComponent } from './list.component';\nimport {\n ListFooterDirective,\n ListHeaderDirective,\n ListItemTemplateDirective,\n ListSectionHeaderDirective,\n} from './list.directive';\n\nconst exportedDeclarations = [\n ListComponent,\n ListItemComponent,\n ListItemTemplateDirective,\n ListSectionHeaderComponent,\n ListSectionHeaderDirective,\n ListHeaderDirective,\n ListHeaderComponent,\n ListFooterDirective,\n ListExperimentalComponent,\n];\n\nconst declarations = [\n ...exportedDeclarations,\n ListItemColorDirective,\n InfiniteScrollDirective,\n ListItemComponent,\n];\n\n@NgModule({\n declarations: declarations,\n imports: [CommonModule, IconModule, IonicModule, SpinnerModule],\n exports: exportedDeclarations,\n providers: [],\n})\nexport class ListModule {}\n","import { ChangeDetectionStrategy, Component, HostBinding, Input } from '@angular/core';\n\n@Component({\n selector: 'kirby-modal-footer',\n templateUrl: './modal-footer.component.html',\n styleUrls: ['./modal-footer.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ModalFooterComponent {\n @HostBinding('class.snap-to-keyboard')\n @Input()\n snapToKeyboard = false;\n\n @HostBinding('class')\n @Input()\n type: 'inline' | 'fixed' = 'fixed';\n}\n","<ion-footer>\n <ng-content></ng-content>\n</ion-footer>\n","export const selectedTabClickEvent = 'kirbySelectedTabClick';\n","import { Injectable } from '@angular/core';\nimport { IonRouterOutlet } from '@ionic/angular';\nimport { ReplaySubject } from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TabsService {\n private outletSubject$: ReplaySubject<IonRouterOutlet> = new ReplaySubject();\n public outlet$ = this.outletSubject$.asObservable();\n\n public setOutlet(outlet: IonRouterOutlet) {\n this.outletSubject$.next(outlet);\n }\n}\n\nexport { IonRouterOutlet };\n","import { AfterViewInit, Component, HostBinding, ViewChild } from '@angular/core';\nimport { IonTabs } from '@ionic/angular';\n\nimport { TabsService } from './tabs.service';\n\n@Component({\n selector: 'kirby-tab-bar',\n templateUrl: './tabs.component.html',\n styleUrls: ['./tabs.component.scss'],\n})\nexport class TabsComponent implements AfterViewInit {\n @HostBinding('class.tab-bar-bottom-hidden')\n tabBarBottomHidden = false;\n @ViewChild(IonTabs, { static: true }) tabs: IonTabs;\n\n constructor(private tabsService: TabsService) {}\n\n ngAfterViewInit() {\n this.tabsService.setOutlet(this.tabs.outlet);\n }\n}\n","<ion-tabs>\n <ion-tab-bar [class.bottom-hidden]=\"tabBarBottomHidden\">\n <ng-content></ng-content>\n </ion-tab-bar>\n</ion-tabs>\n","import { Injectable, Renderer2, RendererStyleFlags2 } from '@angular/core';\n\nconst config = Object.freeze({\n className: 'kirby-line-clamp',\n lineClamp: '--line-clamp',\n lineHeight: '--line-height',\n});\n\n@Injectable()\nexport class LineClampHelper {\n constructor(private renderer: Renderer2) {}\n\n setMaxLines(element: Element, maxLines: number): void {\n this.renderer.setStyle(element, config.lineClamp, maxLines, RendererStyleFlags2.DashCase);\n this.renderer.addClass(element, config.className);\n }\n\n setLineHeight(element: Element, lineHeight: string): void {\n // Only necessary for the fallback solution to work\n this.renderer.setStyle(element, config.lineHeight, lineHeight, RendererStyleFlags2.DashCase);\n }\n\n removeLineClamp(element: Element) {\n this.renderer.removeClass(element, config.className);\n this.renderer.removeStyle(element, config.lineClamp);\n this.renderer.removeStyle(element, config.lineHeight);\n }\n}\n","import { Directive, ElementRef, Input, OnDestroy, OnInit, Renderer2 } from '@angular/core';\n\nimport { DesignTokenHelper } from '@kirbydesign/core';\n\nimport { ResizeObserverService } from '../../components/shared/resize-observer/resize-observer.service';\nimport { LineClampHelper } from '../../helpers/line-clamp-helper';\n\nconst fontSize = DesignTokenHelper.fontSize;\nconst lineHeight = DesignTokenHelper.lineHeight;\n\ninterface HeadingSize {\n name: string;\n fontSize: string;\n lineHeight: string;\n}\n\nexport interface FitHeadingConfig {\n maxLines: number;\n}\n\n@Directive({\n selector: `h1[kirbyFitHeading],h2[kirbyFitHeading],h3[kirbyFitHeading]`,\n providers: [LineClampHelper],\n})\nexport class FitHeadingDirective implements OnInit, OnDestroy {\n // tslint:disable-next-line:no-input-rename\n @Input('kirbyFitHeading') config?: FitHeadingConfig;\n\n private isObservingHostElement: boolean;\n private hostElementClone: Element;\n private isScalingHeader: boolean; // used to prevent resizeObserver to trigger on font scaling by this.scaleHeader()\n\n private headingSizes: HeadingSize[] = [\n {\n name: 'h1',\n fontSize: fontSize('xl'),\n lineHeight: lineHeight('xl'),\n },\n {\n name: 'h2',\n fontSize: fontSize('l'),\n lineHeight: lineHeight('l'),\n },\n {\n name: 'h3',\n fontSize: fontSize('m'),\n lineHeight: lineHeight('m'),\n },\n ];\n\n constructor(\n private elementRef: ElementRef,\n private renderer: Renderer2,\n private resizeObserverService: ResizeObserverService,\n private lineClampHelper: LineClampHelper\n ) {}\n\n ngOnInit(): void {\n if (this.config && this.config.maxLines) {\n this.lineClampHelper.setMaxLines(this.elementRef.nativeElement, this.config.maxLines);\n this.observeResize();\n this.isObservingHostElement = true;\n }\n }\n\n ngOnDestroy(): void {\n if (this.isObservingHostElement) {\n this.resizeObserverService.unobserve(this.elementRef);\n if (this.hostElementClone) {\n this.renderer.removeChild(this.elementRef.nativeElement, this.hostElementClone);\n }\n }\n }\n\n private observeResize(): void {\n this.resizeObserverService.observe(this.elementRef, () => {\n /**\n * setTimeout is used here to avoid repeated size changes\n * while the first size change is still ongoing.\n * This would result in the ResizeObserver being called again,\n * giving 'ResizeObserver loop limit exceeded' types of errors.\n */\n setTimeout(() => {\n this.scaleHeader();\n }, 0);\n });\n }\n\n private scaleHeader(): void {\n if (this.isScalingHeader) return;\n\n this.isScalingHeader = true;\n\n if (!this.hostElementClone) {\n this.hostElementClone = this.generateHostElementClone();\n this.renderer.appendChild(this.elementRef.nativeElement, this.hostElementClone);\n }\n\n this.renderer.setStyle(\n this.hostElementClone,\n 'width',\n `${this.elementRef.nativeElement.clientWidth}px`\n );\n\n const fallbackSize = this.headingSizes[this.headingSizes.length - 1];\n const fittedSize = this.headingSizes.find(this.canFitHeading.bind(this)) || fallbackSize;\n\n this.setSize(this.elementRef.nativeElement, fittedSize);\n this.lineClampHelper.setLineHeight(this.elementRef.nativeElement, fittedSize.lineHeight);\n this.isScalingHeader = false;\n }\n\n private canFitHeading(size: HeadingSize) {\n this.setSize(this.hostElementClone, size);\n const lines = this.hostElementClone.clientHeight / parseInt(size.lineHeight);\n return lines <= this.config.maxLines;\n }\n\n private generateHostElementClone(): Element {\n const clone = this.elementRef.nativeElement.cloneNode(true);\n this.renderer.setStyle(clone, 'position', 'absolute');\n this.renderer.setStyle(clone, 'visibility', 'hidden');\n this.lineClampHelper.removeLineClamp(clone);\n return clone;\n }\n\n private setSize(el: Element, size: HeadingSize): void {\n this.renderer.setStyle(el, 'font-size', size.fontSize);\n this.renderer.setStyle(el, 'line-height', size.lineHeight);\n }\n}\n","import {\n AfterContentChecked,\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ContentChildren,\n Directive,\n ElementRef,\n EventEmitter,\n HostBinding,\n HostListener,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n QueryList,\n Renderer2,\n SimpleChanges,\n SkipSelf,\n TemplateRef,\n ViewChild,\n} from '@angular/core';\nimport { NavigationEnd, NavigationStart, Router, RouterEvent } from '@angular/router';\nimport { IonContent, IonFooter, IonHeader } from '@ionic/angular';\nimport { Observable, Subject } from 'rxjs';\nimport { filter, takeUntil } from 'rxjs/operators';\n\nimport { KirbyAnimation } from '../../animation/kirby-animation';\nimport { FitHeadingConfig } from '../../directives/fit-heading/fit-heading.directive';\nimport { WindowRef } from '../../types/window-ref';\nimport { ModalWrapperComponent } from '../modal/modal-wrapper/modal-wrapper.component';\nimport { ModalNavigationService } from '../modal/services/modal-navigation.service';\nimport { selectedTabClickEvent } from '../tabs/tab-button/tab-button.events';\nimport { TabsComponent } from '../tabs/tabs.component';\n\ntype stickyConfig = { sticky: boolean };\ntype fixedConfig = { fixed: boolean };\n\n/**\n * Event emitted when \"pull-to-refresh\" begins.\n */\nexport interface PullToRefreshEvent {\n /**\n * Invoke this callback-method when action to perform upon \"pull-to-refresh\" completes.\n */\n complete();\n}\n\n@Directive({\n selector: '[kirbyPageTitle]',\n})\nexport class PageTitleDirective {}\n\n@Directive({\n selector: '[kirbyPageSubtitle]',\n})\nexport class PageSubtitleDirective {}\n\n@Directive({\n selector: '[kirbyPageToolbarTitle]',\n})\nexport class PageToolbarTitleDirective {}\n\n@Directive({\n selector: '[kirbyPageActions]',\n})\nexport class PageActionsDirective {\n @Input('kirbyPageActions') config: stickyConfig | fixedConfig;\n private readonly stickyDefault = true;\n private readonly fixedDefault = false;\n\n constructor(public template: TemplateRef<any>) {}\n\n get isSticky(): boolean {\n return this.config ? (this.config as stickyConfig).sticky : this.stickyDefault;\n }\n\n get isFixed(): boolean {\n return this.config ? (this.config as fixedConfig).fixed : this.fixedDefault;\n }\n}\n\n@Directive({\n selector: '[kirbyPageContent]',\n})\nexport class PageContentDirective {\n @Input('kirbyPageContent') config: fixedConfig;\n\n constructor(public template: TemplateRef<any>) {}\n\n get isFixed(): boolean {\n return this.config && this.config.fixed;\n }\n}\n\n@Component({\n selector: 'kirby-page-progress',\n template: ` <ng-content></ng-content> `,\n styles: [':host {display: flex}'],\n})\nexport class PageProgressComponent implements OnInit {\n // TODO: Find alternative implementation, which aligns with future page configuration / consumption\n // This implementation was chosen over expanding `moveChild` method in component wrapper with yet another scenario\n @HostBinding('attr.slot') slot = 'start';\n\n constructor(@Optional() @SkipSelf() private modalWrapper: ModalWrapperComponent) {}\n\n ngOnInit(): void {\n if (this.modalWrapper && this.modalWrapper.config.flavor === 'drawer') {\n this.slot = 'end';\n }\n }\n}\n\n@Component({\n selector: 'kirby-page-title',\n template: ` <ng-content></ng-content> `,\n})\nexport class PageTitleComponent {}\n\n@Component({\n selector: 'kirby-page-content',\n template: ` <ng-content></ng-content> `,\n})\nexport class PageContentComponent {}\n\n@Component({\n selector: 'kirby-page-actions',\n template: ` <ng-content select=\"button[kirby-button]\"></ng-content> `,\n})\nexport class PageActionsComponent {}\n\n@Component({\n selector: 'kirby-page',\n templateUrl: './page.component.html',\n styleUrls: ['./page.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class PageComponent\n implements OnInit, OnDestroy, AfterViewInit, AfterContentChecked, OnChanges\n{\n @Input() title: string;\n @Input() subtitle: string;\n @Input() toolbarTitle: string;\n @Input() titleAlignment: 'left' | 'center' | 'right' = 'left';\n @Input() defaultBackHref: string;\n @Input() hideBackButton: boolean;\n @Input() titleMaxLines: number;\n\n private _tabBarBottomHidden: boolean;\n public get tabBarBottomHidden(): boolean {\n return this._tabBarBottomHidden;\n }\n @Input()\n public set tabBarBottomHidden(value: boolean) {\n if (this.tabsComponent) {\n // as we are setting a class on tabs, we need this to happen in a separate cd cycle\n setTimeout(() => (this.tabsComponent.tabBarBottomHidden = value));\n }\n this._tabBarBottomHidden = value;\n }\n\n @Output() enter = new EventEmitter<void>();\n @Output() leave = new EventEmitter<void>();\n @Output() refresh = new EventEmitter<PullToRefreshEvent>();\n\n @ViewChild(IonContent, { static: true }) private content: IonContent;\n @ViewChild(IonContent, { static: true, read: ElementRef })\n private ionContentElement: ElementRef<HTMLIonContentElement>;\n @ViewChild(IonHeader, { static: true, read: ElementRef })\n ionHeaderElement: ElementRef<HTMLIonHeaderElement>;\n @ViewChild(IonFooter, { static: true, read: ElementRef })\n private ionFooterElement: ElementRef<HTMLIonFooterElement>;\n\n @ViewChild('pageTitle', { static: false, read: ElementRef })\n private pageTitle: ElementRef;\n\n @ViewChild('simpleTitleTemplate', { static: true, read: TemplateRef })\n private simpleTitleTemplate: TemplateRef<any>;\n @ViewChild('simpleToolbarTitleTemplate', { static: true, read: TemplateRef })\n private simpleToolbarTitleTemplate: TemplateRef<any>;\n @ContentChild(PageToolbarTitleDirective, { static: false, read: TemplateRef })\n private customToolbarTitleTemplate: TemplateRef<any>;\n @ContentChild(PageTitleDirective, { static: false, read: TemplateRef })\n customTitleTemplate: TemplateRef<any>;\n @ContentChild(PageSubtitleDirective, { static: false, read: TemplateRef })\n customSubtitleTemplate: TemplateRef<any>;\n @ContentChildren(PageActionsDirective)\n customActions: QueryList<PageActionsDirective>;\n @ContentChildren(PageContentDirective)\n private customContent: QueryList<PageContentDirective>;\n\n hasPageTitle: boolean;\n hasPageSubtitle: boolean;\n hasActionsInPage: boolean;\n toolbarTitleVisible: boolean;\n toolbarFixedActionsVisible: boolean;\n toolbarStickyActionsVisible: boolean;\n\n fitHeadingConfig: FitHeadingConfig;\n\n toolbarTitleTemplate: TemplateRef<any>;\n customContentTemplate: TemplateRef<any>;\n pageActionsTemplate: TemplateRef<any>;\n fixedContentTemplate: TemplateRef<any>;\n stickyActionsTemplate: TemplateRef<any>;\n fixedActionsTemplate: TemplateRef<any>;\n private pageTitleIntersectionObserverRef: IntersectionObserver =\n this.pageTitleIntersectionObserver();\n private urls: string[] = [];\n private hasEntered: boolean;\n\n private ngOnDestroy$ = new Subject();\n private navigationStart$: Observable<RouterEvent> = this.router.events.pipe(\n takeUntil(this.ngOnDestroy$),\n filter((event: RouterEvent) => event instanceof NavigationStart)\n );\n\n private navigationEnd$: Observable<RouterEvent> = this.router.events.pipe(\n takeUntil(this.ngOnDestroy$),\n filter((event: RouterEvent) => event instanceof NavigationEnd)\n );\n\n constructor(\n private elementRef: ElementRef,\n private renderer: Renderer2,\n private router: Router,\n private changeDetectorRef: ChangeDetectorRef,\n private windowRef: WindowRef,\n private modalNavigationService: ModalNavigationService,\n @Optional() @SkipSelf() private tabsComponent: TabsComponent\n ) {}\n\n ngOnInit(): void {\n this.removeWrapper();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.titleMaxLines) {\n this.fitHeadingConfig = {\n ...this.fitHeadingConfig,\n maxLines: changes.titleMaxLines.currentValue,\n };\n }\n if (changes.subtitle && !changes.subtitle.isFirstChange) {\n this.subtitle = changes.title.currentValue;\n this.hasPageSubtitle = this.subtitle !== undefined;\n }\n }\n\n ngAfterViewInit(): void {\n this.navigationStart$.subscribe((event: NavigationStart) => {\n if (\n !this.urls.includes(event.url) &&\n !this.modalNavigationService.isModalRoute(event.url) &&\n !this.modalNavigationService.isModalRoute(this.router.url)\n ) {\n this.onLeave();\n }\n });\n\n this.navigationEnd$.subscribe((event: NavigationEnd) => {\n if (this.urls.includes(event.urlAfterRedirects)) {\n this.onEnter();\n }\n });\n\n this.windowRef.nativeWindow.addEventListener(selectedTabClickEvent, () => {\n this.content.scrollToTop(KirbyAnimation.Duration.LONG);\n });\n }\n\n ngAfterContentChecked(): void {\n if (!this.urls.includes(this.router.url)) {\n this.urls.push(this.router.url);\n this.onEnter();\n }\n\n this.initializeTitle();\n this.initializeActions();\n this.initializeContent();\n this.changeDetectorRef.detectChanges();\n }\n\n ngOnDestroy(): void {\n this.ngOnDestroy$.next();\n this.ngOnDestroy$.complete();\n\n this.pageTitleIntersectionObserverRef.disconnect();\n this.windowRef.nativeWindow.removeEventListener(selectedTabClickEvent, () => {\n this.content.scrollToTop(KirbyAnimation.Duration.LONG);\n });\n }\n\n delegateRefreshEvent(event: any): void {\n this.refresh.emit({\n complete: event.target.complete.bind(event.target),\n });\n }\n\n private onEnter() {\n if (this.hasEntered) return;\n this.hasEntered = true;\n\n this.enter.emit();\n if (this.pageTitle) {\n this.pageTitleIntersectionObserverRef.observe(this.pageTitle.nativeElement);\n }\n }\n\n private onLeave() {\n this.leave.emit();\n if (this.pageTitle) {\n this.pageTitleIntersectionObserverRef.unobserve(this.pageTitle.nativeElement);\n }\n this.hasEntered = false;\n\n if (this.tabBarBottomHidden && this.tabsComponent) {\n this.tabsComponent.tabBarBottomHidden = false;\n }\n }\n\n private initializeTitle() {\n // Ensures initializeTitle() won't run, if already initialized\n if (this.hasPageTitle) return;\n this.hasPageTitle = this.title !== undefined || !!this.customTitleTemplate;\n this.toolbarTitleVisible = !this.hasPageTitle;\n this.hasPageSubtitle = this.subtitle !== undefined || !!this.customSubtitleTemplate;\n\n if (this.hasPageTitle) {\n setTimeout(() => {\n this.pageTitleIntersectionObserverRef.observe(this.pageTitle.nativeElement);\n });\n }\n\n const defaultTitleTemplate = this.customTitleTemplate || this.simpleTitleTemplate;\n // tslint:disable:prettier\n // prettier-ignore\n this.toolbarTitleTemplate = this.customToolbarTitleTemplate\n ? this.customToolbarTitleTemplate\n : typeof this.toolbarTitle === 'string'\n ? this.simpleToolbarTitleTemplate\n : defaultTitleTemplate;\n }\n\n private initializeActions() {\n this.customActions.forEach((pageAction) => {\n if (pageAction.isFixed) {\n this.fixedActionsTemplate = pageAction.template;\n this.toolbarFixedActionsVisible = true;\n } else {\n this.pageActionsTemplate = pageAction.template;\n if (pageAction.isSticky) {\n this.stickyActionsTemplate = pageAction.template;\n }\n }\n });\n this.hasActionsInPage = !!this.pageActionsTemplate;\n }\n\n private initializeContent() {\n this.customContent.forEach((content) => {\n if (content.isFixed) {\n this.fixedContentTemplate = content.template;\n } else {\n this.customContentTemplate = content.template;\n }\n });\n }\n\n private removeWrapper() {\n const parent = this.elementRef.nativeElement.parentNode;\n this.renderer.removeChild(parent, this.elementRef.nativeElement);\n this.renderer.appendChild(parent, this.ionHeaderElement.nativeElement);\n this.renderer.appendChild(parent, this.ionContentElement.nativeElement);\n this.renderer.appendChild(parent, this.ionFooterElement.nativeElement);\n }\n\n private pageTitleIntersectionObserver() {\n const options = {\n rootMargin: '0px',\n };\n\n let initialized = false;\n const callback = (entries) => {\n if (initialized) {\n this.toolbarTitleVisible = !entries[0].isIntersecting;\n this.toolbarStickyActionsVisible = !entries[0].isIntersecting;\n this.changeDetectorRef.detectChanges();\n } else {\n initialized = true;\n }\n };\n return new IntersectionObserver(callback, options);\n }\n\n @HostListener('window:keyboardWillShow', ['$event'])\n _onKeyboardWillShow(info?: { keyboardHeight: number }) {\n if (info && info.keyboardHeight) {\n this.ionContentElement.nativeElement.style.setProperty(\n '--keyboard-offset',\n `${info.keyboardHeight}px`\n );\n }\n }\n\n @HostListener('window:keyboardWillHide')\n _onKeyboardWillHide() {\n this.ionContentElement.nativeElement.style.setProperty('--keyboard-offset', '0px');\n }\n}\n","<ion-header>\n <ion-toolbar>\n <ion-buttons slot=\"start\">\n <ion-back-button\n text=\"\"\n [defaultHref]=\"defaultBackHref\"\n icon=\"assets/kirby/icons/svg/arrow-back.svg\"\n [style.visibility]=\"hideBackButton ? 'hidden' : null\"\n ></ion-back-button>\n </ion-buttons>\n <ion-title>\n <div class=\"toolbar-title hide\" [class.fade-in]=\"toolbarTitleVisible\">\n <ng-container *ngTemplateOutlet=\"toolbarTitleTemplate\"></ng-container>\n </div>\n </ion-title>\n <ion-buttons\n class=\"hide\"\n slot=\"primary\"\n [class.fade-in]=\"toolbarStickyActionsVisible && stickyActionsTemplate\"\n >\n <ng-container *ngTemplateOutlet=\"stickyActionsTemplate\"></ng-container>\n </ion-buttons>\n <ion-buttons\n class=\"hide\"\n slot=\"secondary\"\n [class.fade-in]=\"toolbarFixedActionsVisible && fixedActionsTemplate\"\n >\n <ng-container *ngTemplateOutlet=\"fixedActionsTemplate\"></ng-container>\n </ion-buttons>\n </ion-toolbar>\n</ion-header>\n\n<ion-content scrollEvents=\"true\" forceOverscroll=\"false\">\n <ion-refresher\n *ngIf=\"refresh.observers.length > 0\"\n (ionRefresh)=\"delegateRefreshEvent($event)\"\n slot=\"fixed\"\n >\n <kirby-spinner></kirby-spinner>\n </ion-refresher>\n\n <div class=\"content-inner\">\n <div\n class=\"page-header\"\n *ngIf=\"hasPageTitle\"\n [ngClass]=\"{\n 'text-center': titleAlignment === 'center',\n 'text-right': titleAlignment === 'right'\n }\"\n >\n <div #pageTitle class=\"page-title\" [class.has-actions]=\"hasActionsInPage\">\n <ng-container\n *ngTemplateOutlet=\"customTitleTemplate || defaultPageTitleTemplate\"\n ></ng-container>\n <ng-container\n *ngTemplateOutlet=\"pageActionsTemplate || defaultPageActionsTemplate\"\n ></ng-container>\n </div>\n <div *ngIf=\"hasPageSubtitle\" class=\"page-subtitle\">\n <ng-container\n *ngTemplateOutlet=\"customSubtitleTemplate || defaultPageSubtitleTemplate\"\n ></ng-container>\n </div>\n </div>\n\n <!-- Content -->\n <ng-container\n *ngTemplateOutlet=\"customContentTemplate || defaultContentTemplate\"\n ></ng-container>\n </div>\n\n <div slot=\"fixed\" class=\"fixed-content\" *ngIf=\"fixedContentTemplate\">\n <div class=\"content-inner\">\n <ng-container *ngTemplateOutlet=\"fixedContentTemplate\"></ng-container>\n </div>\n </div>\n</ion-content>\n\n<ion-footer>\n <ng-content select=\"kirby-page-footer\"></ng-content>\n</ion-footer>\n\n<ng-template #defaultPageTitleTemplate>\n <h1 [kirbyFitHeading]=\"fitHeadingConfig\">\n <ng-container *ngTemplateOutlet=\"simpleTitleTemplate\"></ng-container>\n </h1>\n</ng-template>\n<ng-template #defaultPageSubtitleTemplate>\n <ng-container *ngTemplateOutlet=\"simpleSubtitleTemplate\"></ng-container>\n</ng-template>\n<ng-template #defaultPageActionsTemplate>\n <ng-content select=\"kirby-page-actions\"></ng-content>\n</ng-template>\n\n<ng-template #defaultContentTemplate>\n <ng-content select=\"kirby-page-content\"></ng-content>\n</ng-template>\n\n<ng-template #simpleTitleTemplate>{{ title }}</ng-template>\n<ng-template #simpleSubtitleTemplate>{{ subtitle }}</ng-template>\n<ng-template #simpleToolbarTitleTemplate>{{ toolbarTitle }}</ng-template>\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n Input,\n OnDestroy,\n Optional,\n Renderer2,\n SkipSelf,\n} from '@angular/core';\n\nimport { PageComponent } from '../page.component';\n\n@Component({\n selector: 'kirby-page-footer',\n templateUrl: './page-footer.component.html',\n styleUrls: ['./page-footer.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class PageFooterComponent implements OnDestroy {\n @Input()\n hasPadding: boolean = true;\n\n constructor(\n @Optional() @SkipSelf() private pageComponent: PageComponent,\n private hostElement: ElementRef,\n private renderer: Renderer2\n ) {\n if (!pageComponent) {\n throw new Error('Page footer must reside inside of a Kirby page');\n }\n }\n\n close() {\n this.pageComponent.tabBarBottomHidden = false;\n this.renderer.removeChild(\n this.hostElement.nativeElement.parentElement,\n this.hostElement.nativeElement,\n true\n );\n }\n\n ngOnDestroy(): void {\n this.pageComponent.tabBarBottomHidden = false;\n }\n}\n","<div class=\"wrapper\" [class.padding]=\"hasPadding\">\n <ng-content></ng-content>\n</div>\n","import { NgModule } from '@angular/core';\n\nimport { FitHeadingDirective } from './fit-heading.directive';\n\n@NgModule({\n declarations: [FitHeadingDirective],\n exports: [FitHeadingDirective],\n})\nexport class FitHeadingModule {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { IonicModule } from '@ionic/angular';\n\nimport { FitHeadingModule } from '../../directives/fit-heading/fit-heading.module';\nimport { SpinnerModule } from '../spinner/spinner.module';\n\nimport { PageFooterComponent } from './page-footer/page-footer.component';\nimport {\n PageActionsComponent,\n PageActionsDirective,\n PageComponent,\n PageContentComponent,\n PageContentDirective,\n PageProgressComponent,\n PageSubtitleDirective,\n PageTitleComponent,\n PageTitleDirective,\n PageToolbarTitleDirective,\n} from './page.component';\n\n@NgModule({\n declarations: [\n PageComponent,\n PageActionsComponent,\n PageActionsDirective,\n PageContentComponent,\n PageFooterComponent,\n PageContentDirective,\n PageProgressComponent,\n PageTitleComponent,\n PageTitleDirective,\n PageSubtitleDirective,\n PageToolbarTitleDirective,\n ],\n imports: [CommonModule, IonicModule, FitHeadingModule, SpinnerModule],\n exports: [\n PageComponent,\n PageActionsComponent,\n PageActionsDirective,\n PageContentComponent,\n PageFooterComponent,\n PageContentDirective,\n PageProgressComponent,\n PageTitleComponent,\n PageTitleDirective,\n PageSubtitleDirective,\n PageToolbarTitleDirective,\n FitHeadingModule,\n ],\n})\nexport class PageModule {}\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n forwardRef,\n Input,\n OnChanges,\n Output,\n SimpleChanges,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n@Component({\n selector: 'kirby-range',\n templateUrl: './range.component.html',\n styleUrls: ['./range.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n multi: true,\n useExisting: forwardRef(() => RangeComponent),\n },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class RangeComponent implements OnChanges, ControlValueAccessor {\n @Input() minLabel: string;\n @Input() maxLabel: string;\n @Input() debounce: number;\n @Input() max: number;\n @Input() min: number;\n @Input() pin: boolean;\n @Input() step = 1;\n @Input() ticks: boolean;\n @Input() disabled = false;\n @Input()\n set value(value: number) {\n if (value !== this.currentValue) {\n this.currentValue = value;\n this.propagateChange(this.currentValue);\n this.change.emit(this.currentValue);\n }\n }\n\n get value(): number {\n return this.currentValue;\n }\n\n @Output() change: EventEmitter<number> = new EventEmitter<number>();\n\n private currentValue: number;\n\n ngOnChanges(_: SimpleChanges) {\n if (!this.ticks) return;\n\n /*\n * Max 10 ticks are allowed\n */\n const amountOfTicks = (this.max - this.min) / this.step;\n if (amountOfTicks > 9) {\n this.step = (this.max - this.min) / 9;\n }\n\n /*\n * Set value to the nearest tick\n */\n this.value = this.getTicks().reduce((a, b) => {\n return Math.abs(b - this.value) < Math.abs(a - this.value) ? b : a;\n });\n }\n\n private getTicks() {\n const ticks = [];\n for (let value = Number(this.min); value <= Number(this.max); value += Number(this.step)) {\n ticks.push(value);\n }\n return ticks;\n }\n\n public setDisabledState?(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n public _onRangeValueChange($event: any): void {\n this.writeValue($event.detail.value);\n }\n\n public onTouched = () => {};\n\n public propagateChange = (_: any) => {};\n\n public writeValue(value: any): void {\n if (value !== undefined) {\n this.value = value;\n }\n }\n\n public registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n public registerOnChange(fn: any): void {\n this.propagateChange = fn;\n }\n}\n","<ion-range\n (ionChange)=\"_onRangeValueChange($event)\"\n [min]=\"min\"\n [max]=\"max\"\n [step]=\"step\"\n [value]=\"value\"\n [pin]=\"pin\"\n [snaps]=\"ticks\"\n [ticks]=\"ticks\"\n [debounce]=\"debounce\"\n [disabled]=\"disabled\"\n>\n</ion-range>\n\n<label *ngIf=\"minLabel\" class=\"min-label\">{{ minLabel }}</label>\n<label *ngIf=\"maxLabel\" class=\"max-label\">{{ maxLabel }}</label>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { IonicModule } from '@ionic/angular';\n\nimport { RouterOutletComponent } from './router-outlet.component';\n\n@NgModule({\n declarations: [RouterOutletComponent],\n imports: [CommonModule, IonicModule],\n exports: [RouterOutletComponent],\n})\nexport class RouterOutletModule {}\n","export class ReorderEvent {\n private origEvent: CustomEvent<any>;\n private parent?: any;\n\n constructor(ev: CustomEvent<any>, parentItem?: any) {\n this.origEvent = ev;\n this.parent = parentItem;\n this.origEvent.cancelBubble = true;\n }\n complete(listOrReorder?: boolean | any[]): Promise<any> {\n return this.origEvent.detail.complete(listOrReorder);\n }\n\n get parentItem(): any {\n return this.parent;\n }\n}\n","import {\n ChangeDetectorRef,\n Component,\n ContentChild,\n ElementRef,\n EventEmitter,\n Input,\n OnChanges,\n OnDestroy,\n Output,\n QueryList,\n TemplateRef,\n ViewChildren,\n} from '@angular/core';\n\nimport { ListItemTemplateDirective } from '../list/list.directive';\n\nimport { ReorderEvent } from './reorder-event';\n\n@Component({\n selector: 'kirby-reorder-list',\n templateUrl: './reorder-list.component.html',\n styleUrls: ['./reorder-list.component.scss'],\n})\nexport class ReorderListComponent implements OnChanges, OnDestroy {\n @Input() items: any[];\n @Input() subItemsName: string;\n @Input() getItemTextDefault: (item: any) => string;\n\n @Output() itemReorder = new EventEmitter<ReorderEvent>();\n @Output() subItemReorder = new EventEmitter<ReorderEvent>();\n\n @ContentChild(ListItemTemplateDirective, { static: true, read: TemplateRef })\n itemTemplate: TemplateRef<any>;\n @ViewChildren('reorderGroupContainer')\n reorderGroupContainer: QueryList<ElementRef>;\n\n private observer: MutationObserver;\n reorderActive: boolean = false;\n\n constructor(private cdr: ChangeDetectorRef) {}\n\n ngOnChanges(): void {\n if (this.items && this.items.length > 0) {\n setTimeout(() => {\n this.setupDomListener();\n });\n }\n }\n\n private setupDomListener() {\n const callback = (mutationsList: any) => {\n for (let mutation of mutationsList) {\n if (mutation.oldValue !== mutation.target['className']) {\n this.reorderActive = mutation.target['className'].includes('reorder-list-active');\n }\n }\n this.cdr.detectChanges();\n };\n this.observer = new MutationObserver(callback);\n\n this.reorderGroupContainer.forEach((div: ElementRef) => {\n this.observer.observe(div.nativeElement, {\n attributes: true,\n attributeFilter: ['class'],\n attributeOldValue: true,\n childList: false,\n subtree: true,\n });\n });\n }\n\n doReorder(ev: CustomEvent) {\n this.itemReorder.emit(new ReorderEvent(ev));\n }\n\n doSubReorder(ev: CustomEvent, parentItem: any) {\n this.subItemReorder.emit(new ReorderEvent(ev, parentItem));\n }\n\n ngOnDestroy() {\n //clean up the observer\n this.observer && this.observer.disconnect();\n delete this.observer;\n }\n}\n","<ion-backdrop *ngIf=\"reorderActive\" [tappable]=\"false\" [visible]=\"true\" [stopPropagation]=\"false\">\n</ion-backdrop>\n<ion-reorder-group (ionItemReorder)=\"doReorder($event)\" disabled=\"false\">\n <div *ngFor=\"let reorderItem of items\" class=\"outer-group\">\n <kirby-card>\n <ng-container\n *ngTemplateOutlet=\"itemTemplate || defaultItemTemplate; context: { $implicit: reorderItem }\"\n >\n </ng-container>\n <div *ngIf=\"reorderItem[subItemsName]\" #reorderGroupContainer>\n <ion-reorder-group (ionItemReorder)=\"doSubReorder($event, reorderItem)\" disabled=\"false\">\n <div *ngFor=\"let subItem of reorderItem[subItemsName]\">\n <ng-container\n *ngTemplateOutlet=\"\n itemTemplate || defaultItemTemplate;\n context: { $implicit: subItem, isSubItem: true }\n \"\n ></ng-container>\n </div>\n </ion-reorder-group>\n </div>\n </kirby-card>\n </div>\n</ion-reorder-group>\n\n<ng-template #defaultItemTemplate let-item let-isSubItem>\n <kirby-item [reorderable]=\"true\">\n <h3>{{ getItemTextDefault(item) }}</h3>\n </kirby-item>\n</ng-template>\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\n@Component({\n selector: 'kirby-section-header',\n templateUrl: './section-header.component.html',\n styleUrls: ['./section-header.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SectionHeaderComponent {}\n","<ion-item-divider>\n <ng-content></ng-content>\n</ion-item-divider>\n","import { Component, EventEmitter, HostBinding, Input, Output } from '@angular/core';\n\nimport { IconRegistryService } from '../icon/icon-registry.service';\n\nimport { SegmentItem, SegmentItemInternal } from './segment-item';\n\nexport enum SegmentedControlMode {\n chip = 'chip',\n compactChip = 'compactChip',\n default = 'default',\n}\n\n@Component({\n selector: 'kirby-segmented-control',\n templateUrl: './segmented-control.component.html',\n styleUrls: ['./segmented-control.component.scss'],\n // tslint:disable-next-line: no-host-metadata-property\n host: { role: 'group' },\n})\nexport class SegmentedControlComponent {\n constructor(private iconRegistryService: IconRegistryService) {}\n\n preventWrapperClick(event: Event) {\n if (event.target instanceof HTMLElement) {\n if (event.target.classList.contains('segment-btn-wrapper')) {\n event.stopImmediatePropagation();\n }\n }\n }\n\n @Input() mode: SegmentedControlMode | `${SegmentedControlMode}` = SegmentedControlMode.default;\n\n @HostBinding('class')\n get _modeCssClass() {\n return {\n [SegmentedControlMode.chip]: 'chip-mode',\n [SegmentedControlMode.default]: 'default-mode',\n [SegmentedControlMode.compactChip]: 'compact chip-mode',\n }[this.mode];\n }\n\n private _items: SegmentItemInternal[] = [];\n get items(): SegmentItem[] {\n return this._items;\n }\n\n @Input() set items(value: SegmentItem[]) {\n this._items = value || [];\n this._items.forEach((item) => {\n if (!item.badge) return;\n // We need to verify whether badges icon is custom or default, so we can check for it in the template\n item.badge.isCustomIcon =\n item.badge.icon !== undefined &&\n this.iconRegistryService.getIcon(item.badge.icon) !== undefined;\n });\n this._value = this.items[this.selectedIndex];\n }\n\n private _selectedIndex: number = -1;\n get selectedIndex(): number {\n return this._selectedIndex;\n }\n\n @Input() set selectedIndex(value: number) {\n if (value !== this._selectedIndex) {\n this._selectedIndex = value;\n this._value = this.items[this.selectedIndex];\n }\n }\n\n private _value: SegmentItem;\n get value(): SegmentItem {\n return this._value;\n }\n\n @Input() set value(value: SegmentItem) {\n this.selectedIndex = this.items.indexOf(value);\n }\n\n @HostBinding('class.sm')\n isSmallSize: boolean;\n\n @Input() set size(size: 'sm' | 'md') {\n this.isSmallSize = size === 'sm';\n }\n\n @Output() segmentSelect: EventEmitter<SegmentItem> = new EventEmitter();\n\n onSegmentSelect(selectedId: string) {\n const selectedItemIndex = this.items.findIndex((item) => selectedId === item.id);\n if (selectedItemIndex !== this.selectedIndex) {\n this.selectedIndex = selectedItemIndex;\n this.segmentSelect.emit(this.value);\n }\n }\n}\n","<ion-segment\n *ngIf=\"mode === 'default'\"\n [value]=\"value?.id\"\n (ionChange)=\"onSegmentSelect($event.detail.value)\"\n (click)=\"preventWrapperClick($event)\"\n>\n <div *ngFor=\"let item of items\" class=\"segment-btn-wrapper\">\n <ion-segment-button [value]=\"item.id\">{{ item.text }}</ion-segment-button>\n <kirby-badge\n *ngIf=\"item.badge\"\n role=\"text\"\n [attr.aria-label]=\"item.badge.description\"\n [themeColor]=\"item.badge.themeColor\"\n >\n <ng-container *ngIf=\"item.badge.icon; else badgeContent\">\n <kirby-icon\n *ngIf=\"item.badge.isCustomIcon; else defaultIconName\"\n [customName]=\"item.badge.icon\"\n ></kirby-icon>\n <ng-template #defaultIconName>\n <kirby-icon [name]=\"item.badge.icon\"></kirby-icon>\n </ng-template>\n </ng-container>\n <ng-template #badgeContent>\n {{ item.badge.content }}\n </ng-template>\n </kirby-badge>\n </div>\n</ion-segment>\n\n<ng-container *ngIf=\"mode === 'chip' || mode === 'compactChip'\">\n <kirby-chip\n *ngFor=\"let item of items; let index = index\"\n [text]=\"item.text\"\n [isSelected]=\"index === selectedIndex\"\n (click)=\"onSegmentSelect(item.id)\"\n role=\"button\"\n ></kirby-chip>\n</ng-container>\n","import {\n Component,\n OnDestroy,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Input,\n Output,\n EventEmitter,\n} from '@angular/core';\n\n@Component({\n selector: 'kirby-slide-button',\n templateUrl: './slide-button.component.html',\n styleUrls: ['./slide-button.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SlideButtonComponent implements OnDestroy {\n @Input() text = '';\n @Input() expand: 'block';\n\n @Output() slideDone = new EventEmitter();\n @Output() slidingPercentageChanged = new EventEmitter<number>();\n\n readonly slideDoneFadeTime = 500;\n readonly slideResetTime = 100;\n\n isSlideDone = false;\n pctInTens = 0;\n\n get value(): number {\n return this._value;\n }\n set value(v: number) {\n this._value = v;\n this.calculatePctInTens();\n }\n\n private _value: number = 0;\n private resetSliderIntervalTimer: any;\n private calculatePctInTens() {\n this.pctInTens = Math.ceil(this.value / 10) * 10;\n }\n\n constructor(private changeDetectionRef: ChangeDetectorRef) {}\n\n ngOnDestroy(): void {\n if (this.resetSliderIntervalTimer) {\n clearInterval(this.resetSliderIntervalTimer);\n }\n }\n\n onSliderMouseup() {\n if (this.value == 100) {\n this.handleSlideDone();\n } else {\n this.resetSliderIntervalTimer = setInterval(() => {\n if (this.value > 0) {\n this.value -= 2;\n } else {\n clearInterval(this.resetSliderIntervalTimer);\n }\n\n this.changeDetectionRef.markForCheck();\n }, 1);\n }\n }\n\n onSliderValueChange(val: string) {\n this.value = +val;\n this.slidingPercentageChanged.emit(this.value);\n }\n\n onSliderMousedown() {\n clearInterval(this.resetSliderIntervalTimer);\n }\n\n private handleSlideDone() {\n this.slideDone.emit();\n this.isSlideDone = true;\n }\n}\n","<div class=\"slide-button-container\" [ngClass]=\"{ 'slide-done': isSlideDone }\">\n <input\n type=\"range\"\n (mouseup)=\"onSliderMouseup()\"\n (touchend)=\"onSliderMouseup()\"\n (input)=\"onSliderValueChange($event.target.value)\"\n (mousedown)=\"onSliderMousedown()\"\n (touchstart)=\"onSliderMousedown()\"\n class=\"slide-button\"\n [value]=\"value\"\n max=\"100\"\n />\n <p class=\"slide-button-text slide-{{ pctInTens }}-pct\">{{ text }}</p>\n</div>\n","import { AfterViewInit, EventEmitter } from '@angular/core';\nimport {\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n Directive,\n Input,\n Output,\n TemplateRef,\n ViewChild,\n} from '@angular/core';\nimport { IonSlides } from '@ionic/angular';\n\n@Directive({\n selector: '[kirbySlide]',\n})\nexport class SlideDirective {}\n\n@Component({\n selector: 'kirby-slides',\n template: `\n <ion-slides [options]=\"slidesOptions\" #ionslides (ionSlideDidChange)=\"onSlideChanged()\">\n <ion-slide *ngFor=\"let slide of slides; let i = index\">\n <ng-container\n *ngTemplateOutlet=\"slideTemplate; context: { $implicit: slide, index: i }\"\n ></ng-container>\n </ion-slide>\n </ion-slides>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SlidesComponent implements AfterViewInit {\n @ViewChild('ionslides', { static: false }) ionSlides: IonSlides;\n @Input() slidesOptions: any;\n @Input() slides: any[];\n @Output() selectedSlide = new EventEmitter<any>();\n\n @ContentChild(SlideDirective, { static: true, read: TemplateRef })\n public slideTemplate: TemplateRef<any>;\n\n ngAfterViewInit() {\n this.slideTo(0);\n }\n\n onSlideChanged() {\n this.ionSlides.getActiveIndex().then((selectedIndex) => {\n this.selectedSlide.emit({\n slide: this.slides[selectedIndex],\n index: selectedIndex,\n });\n });\n }\n\n slideTo(index: number) {\n this.ionSlides.slideTo(index);\n }\n}\n","import {\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnInit,\n Output,\n Renderer2,\n QueryList,\n ContentChildren,\n} from '@angular/core';\n\nimport { IconComponent } from '../../icon/icon.component';\nimport { selectedTabClickEvent } from './tab-button.events';\n\n@Component({\n selector: 'kirby-tab-button',\n templateUrl: './tab-button.component.html',\n styleUrls: ['./tab-button.component.scss'],\n})\nexport class TabButtonComponent implements OnInit {\n @Input() routerLink: string;\n @Output() click = new EventEmitter<Event>();\n @ContentChildren(IconComponent) icons: QueryList<IconComponent>;\n\n constructor(private elementRef: ElementRef, private renderer: Renderer2) {}\n\n ngOnInit(): void {\n this.removeWrapper();\n }\n\n onClick(event: Event, isSelected: boolean) {\n this.click.emit(event);\n\n if (isSelected) {\n const clickEvent = new CustomEvent(selectedTabClickEvent);\n dispatchEvent(clickEvent);\n }\n }\n\n private removeWrapper() {\n const parent = this.elementRef.nativeElement.parentNode;\n const button = this.elementRef.nativeElement.childNodes[0];\n this.renderer.removeChild(parent, this.elementRef.nativeElement);\n this.renderer.appendChild(parent, button);\n }\n}\n","<ion-tab-button #ionTabButton [tab]=\"routerLink\" (click)=\"onClick($event, ionTabButton.selected)\">\n <div class=\"icon-container\" *ngIf=\"icons.length\">\n <ng-content\n *ngIf=\"icons.length === 1 || !ionTabButton.selected\"\n select=\"kirby-icon[:not([selected-tab])]\"\n ></ng-content>\n <ng-content *ngIf=\"ionTabButton.selected\" select=\"kirby-icon[selected-tab]\"></ng-content>\n <ng-content select=\"kirby-badge\"></ng-content>\n </div>\n <ion-label>\n <ng-content></ng-content>\n </ion-label>\n</ion-tab-button>\n","import { NgModule } from '@angular/core';\nimport { IonicModule } from '@ionic/angular';\nimport { CommonModule } from '@angular/common';\n\nimport { TabsComponent } from './tabs.component';\nimport { TabButtonComponent } from './tab-button/tab-button.component';\nimport { IconModule } from '../icon/icon.module';\nimport { TabsService } from './tabs.service';\n\n@NgModule({\n imports: [IonicModule, IconModule, CommonModule],\n providers: [TabsService],\n declarations: [TabsComponent, TabButtonComponent],\n exports: [TabsComponent, TabButtonComponent],\n})\nexport class TabsModule {}\n","import { Injectable } from '@angular/core';\nimport { ToastController } from '@ionic/angular';\n\nimport { Overlay } from '../../modal/services/modal.interfaces';\nimport { MessageType, ToastConfig } from '../config/toast-config';\n\n@Injectable()\nexport class ToastHelper {\n static CSS_CLASS = 'kirby-toast';\n static DURATION_IN_MS = 4000;\n\n constructor(private toastController: ToastController) {}\n\n public async showToast(config: ToastConfig): Promise<Overlay> {\n const toast = await this.toastController.create({\n animated: config.animated,\n message: config.message,\n position: 'top',\n duration: config.durationInMs ? config.durationInMs : ToastHelper.DURATION_IN_MS,\n cssClass: this.getCssClass(config.messageType),\n });\n await toast.present();\n return {\n dismiss: toast.dismiss.bind(toast),\n onWillDismiss: toast.onWillDismiss(),\n onDidDismiss: toast.onDidDismiss(),\n };\n }\n\n private getCssClass(messageType: MessageType): string {\n let cssClass = ToastHelper.CSS_CLASS;\n\n if (messageType) {\n cssClass += ' ' + messageType;\n }\n\n return cssClass;\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { ToastConfig } from '../config/toast-config';\n\nimport { ToastHelper } from './toast.helper';\n\n@Injectable()\nexport class ToastController {\n constructor(private toastHelper: ToastHelper) {}\n\n public showToast(config: ToastConfig, onCloseToast?: () => void) {\n this.toastHelper.showToast(config).then((overlay) => {\n if (onCloseToast) {\n overlay.onDidDismiss.then(() => onCloseToast());\n }\n });\n }\n}\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\n\n@Component({\n selector: 'kirby-toggle',\n templateUrl: './toggle.component.html',\n styleUrls: ['./toggle.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ToggleComponent {\n @Input() checked: boolean = false;\n @Input() disabled: boolean = false;\n @Output() checkedChange = new EventEmitter<boolean>();\n onCheckedChange(checked: boolean): void {\n this.checked = checked;\n this.checkedChange.emit(this.checked);\n }\n}\n","<ion-toggle\n [checked]=\"checked\"\n [disabled]=\"disabled\"\n (ionChange)=\"onCheckedChange($event.detail.checked)\"\n></ion-toggle>\n","import { ChangeDetectionStrategy, Component, HostBinding, Input } from '@angular/core';\n\n@Component({\n selector: 'kirby-progress-circle-ring',\n templateUrl: './progress-circle-ring.component.svg',\n styleUrls: ['./progress-circle-ring.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ProgressCircleRingComponent {\n @Input() radius: number; // The desired outer radius of the SVG circle\n @Input() value: number = 0;\n @Input() themeColor: 'success' | 'warning' | 'danger' = 'success';\n @Input() strokeWidth: number;\n @Input() upperBound: number;\n\n get _offset(): number {\n const valueWithinBounds = this.value < this.upperBound || this.value > 99;\n if (valueWithinBounds) {\n return this.calculateOffset(this.value);\n } else {\n return this.calculateOffset(this.upperBound);\n }\n }\n\n @HostBinding('style.width.px')\n @HostBinding('style.height.px')\n get _diameter(): number {\n return this.radius * 2;\n }\n\n get _centerRadius(): number {\n return this.radius - this.strokeWidth / 2;\n }\n\n get _centerCircumference(): number {\n return this._centerRadius * 2 * Math.PI;\n }\n\n private calculateOffset(value: number): number {\n return this._centerCircumference - this._centerCircumference * (value / 100);\n }\n}\n","<svg [attr.width]=\"_diameter\" [attr.height]=\"_diameter\">\n <circle\n shape-rendering=\"geometricPrecision\"\n class=\"circle\"\n fill=\"transparent\"\n [attr.stroke-width]=\"strokeWidth\"\n [attr.r]=\"_centerRadius\"\n [attr.cx]=\"radius\"\n [attr.cy]=\"radius\"\n />\n <circle\n shape-rendering=\"geometricPrecision\"\n class=\"progress\"\n fill=\"transparent\"\n stroke-linecap=\"round\"\n [attr.stroke-width]=\"strokeWidth\"\n [attr.r]=\"_centerRadius\"\n [attr.cx]=\"radius\"\n [attr.cy]=\"radius\"\n [attr.stroke-dashoffset]=\"_offset\"\n [attr.stroke-dasharray]=\"_centerCircumference\"\n />\n</svg>","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n HostBinding,\n Input,\n OnDestroy,\n} from '@angular/core';\n\n@Component({\n selector: 'kirby-progress-circle',\n templateUrl: './progress-circle.component.html',\n styleUrls: ['./progress-circle.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ProgressCircleComponent implements AfterViewInit, OnDestroy {\n readonly SIZE_CONFIG = {\n sm: { diameter: 40, strokeWidth: 3, upperBound: 95 },\n md: { diameter: 56, strokeWidth: 4, upperBound: 96 },\n lg: { diameter: 96, strokeWidth: 6, upperBound: 97 },\n };\n\n @Input() value: number = 0;\n @Input() size: 'sm' | 'md' | 'lg' = 'md';\n @Input() themeColor: 'success' | 'warning' | 'danger' = 'success';\n\n @HostBinding('class')\n get _cssSize() {\n return this.size;\n }\n\n private hasElementBeenVisible?: boolean;\n private observer: IntersectionObserver;\n\n constructor(\n private elementRef: ElementRef<HTMLElement>,\n private changeDetectorRef: ChangeDetectorRef\n ) {}\n\n ngAfterViewInit(): void {\n if (!this.observer) {\n this.observer = new IntersectionObserver(this.onIntersectionChange, {\n threshold: 0.5,\n });\n this.observer.observe(this.elementRef.nativeElement);\n }\n }\n\n ngOnDestroy(): void {\n this.unobserve();\n }\n\n private onIntersectionChange = (entries: IntersectionObserverEntry[]) => {\n this.hasElementBeenVisible = entries && entries.some((entry) => entry.isIntersecting);\n if (this.hasElementBeenVisible) {\n this.unobserve();\n this.changeDetectorRef.markForCheck();\n }\n };\n\n private unobserve() {\n if (this.observer) {\n this.observer.unobserve(this.elementRef.nativeElement);\n // Safari does not support \"disconnect\", see: https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API#Browser_compatibility\n if (typeof this.observer.disconnect === 'function') {\n this.observer.disconnect();\n }\n }\n }\n\n @HostBinding('style.width.px')\n @HostBinding('style.height.px')\n get _diameter(): number {\n return this.SIZE_CONFIG[this.size].diameter;\n }\n\n get _shownValue() {\n // This is needed to make an animation [0 -> value] when element is shown to the user\n return this.hasElementBeenVisible ? this.value : 0;\n }\n\n get _radius() {\n return this._diameter / 2;\n }\n\n get _strokeWidth() {\n return this.SIZE_CONFIG[this.size].strokeWidth;\n }\n\n get _upperBound() {\n // This is needed to make sure that an input value close to 100 is not shown as 100\n return this.SIZE_CONFIG[this.size].upperBound;\n }\n}\n","<div class=\"transcluded-content\">\n <ng-content></ng-content>\n</div>\n<kirby-progress-circle-ring\n [themeColor]=\"themeColor\"\n [value]=\"_shownValue\"\n [radius]=\"_radius\"\n [strokeWidth]=\"_strokeWidth\"\n [upperBound]=\"_upperBound\"\n>\n</kirby-progress-circle-ring>\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n HostListener,\n Input,\n Output,\n} from '@angular/core';\n\n@Component({\n selector: 'kirby-toggle-button',\n templateUrl: './toggle-button.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ToggleButtonComponent {\n @Input() checked: boolean;\n @Output() checkChanged = new EventEmitter<boolean>();\n\n @HostListener('click')\n onClick() {\n this.checked = !this.checked;\n this.checkChanged.emit(this.checked);\n }\n}\n","<ng-container *ngIf=\"!checked\">\n <ng-content select=\"button[kirby-button][unchecked]\"></ng-content>\n</ng-container>\n<ng-container *ngIf=\"checked\">\n <ng-content select=\"button[kirby-button][checked]\"></ng-content>\n</ng-container>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { ToggleButtonComponent } from './toggle-button.component';\n\nconst DECLARATIONS = [ToggleButtonComponent];\n\n@NgModule({\n declarations: [...DECLARATIONS],\n imports: [CommonModule],\n exports: [...DECLARATIONS],\n})\nexport class ToggleButtonModule {}\n","import { Directive, HostListener, ElementRef } from '@angular/core';\n\n@Directive({\n // tslint:disable-next-line:directive-selector\n selector: `[keyHandler]`,\n})\nexport class KeyHandlerDirective {\n constructor(private element: ElementRef) {}\n\n @HostListener('keyup', ['$event'])\n keyEvent(event: KeyboardEvent) {\n if (event.key === ' ' || event.key === 'Enter' || event.key === 'Spacebar') {\n // Prevent the default action to stop scrolling when space is pressed\n event.preventDefault();\n\n const hostElement = <HTMLElement>this.element.nativeElement;\n hostElement.click();\n }\n }\n}\n","import { Directive, ElementRef, HostBinding, HostListener, OnInit, Optional } from '@angular/core';\n\nimport { CardComponent } from '../../components/card/card.component';\n\n@Directive({\n // tslint:disable-next-line\n selector: 'kirby-card[click]',\n})\nexport class ElementAsButtonDirective implements OnInit {\n @HostBinding('attr.role') role: string = 'button';\n @HostBinding('attr.tabindex') tabindex: number = 0;\n\n constructor(@Optional() private card: CardComponent, private clickableElement: ElementRef) {}\n\n ngOnInit(): void {\n if (this.card) {\n this.card.flat = false;\n }\n }\n\n @HostListener('keydown.space', ['$event'])\n @HostListener('keydown.enter', ['$event'])\n _onKeydownHandler(event: KeyboardEvent) {\n this.clickableElement.nativeElement.click(event);\n }\n}\n","import { Directive, HostListener, Input } from '@angular/core';\nimport { Params } from '@angular/router';\n\nimport { ModalNavigationService } from '../../components/modal/services/modal-navigation.service';\n\n@Directive({\n selector: `[kirbyModalRouterLink]`,\n})\nexport class ModalRouterLinkDirective {\n constructor(private modalNavigationService: ModalNavigationService) {}\n\n @Input('kirbyModalRouterLink') path: string | string[];\n // tslint:disable-next-line:no-input-rename\n @Input('kirbyModalQueryParams') queryParams?: Params;\n\n @HostListener('click')\n onClick(): boolean {\n this.modalNavigationService.navigateToModal(\n this.path,\n typeof this.queryParams !== 'string' ? this.queryParams : null\n );\n return false;\n }\n}\n","import { DOCUMENT } from '@angular/common';\nimport { APP_INITIALIZER } from '@angular/core';\n\nimport { defineCustomElements } from '@kirbydesign/core/loader';\n\nexport const appInitialize = (doc: Document) => {\n return () => {\n defineCustomElements(doc.defaultView);\n };\n};\n\nexport function customElementsInitializer() {\n return {\n provide: APP_INITIALIZER,\n useFactory: appInitialize,\n deps: [DOCUMENT],\n multi: true,\n };\n}\n","import { CommonModule } from '@angular/common';\nimport { Inject, InjectionToken, ModuleWithProviders, NgModule, Optional } from '@angular/core';\nimport { RouterModule } from '@angular/router';\nimport { IonicModule } from '@ionic/angular';\n\nimport { AccordionItemComponent } from './components/accordion/accordion-item.component';\nimport { AccordionDirective } from './components/accordion/accordion.directive';\nimport { AppModule } from './components/app/app.module';\nimport { AvatarComponent } from './components/avatar/avatar.component';\nimport { ButtonComponent } from './components/button/button.component';\nimport { CalendarComponent } from './components/calendar/calendar.component';\nimport { CardFooterComponent } from './components/card/card-footer/card-footer.component';\nimport { CardHeaderComponent } from './components/card/card-header/card-header.component';\nimport { CardComponent } from './components/card/card.component';\nimport { ChartDeprecatedComponent } from './components/chart-deprecated/chart-deprecated.component';\nimport { ChartModule } from './components/chart/chart.module';\nimport { CheckboxComponent } from './components/checkbox/checkbox.component';\nimport { ChipComponent } from './components/chip/chip.component';\nimport { DividerComponent } from './components/divider/divider.component';\nimport { DropdownComponent } from './components/dropdown/dropdown.component';\nimport { EmptyStateComponent } from './components/empty-state/empty-state.component';\nimport { FabSheetComponent } from './components/fab-sheet/fab-sheet.component';\nimport { FlagComponent } from './components/flag/flag.component';\nimport { DateInputDirective } from './components/form-field/directives/date/date-input.directive';\nimport { DecimalMaskDirective } from './components/form-field/directives/decimal-mask/decimal-mask.directive';\nimport { FormFieldMessageComponent } from './components/form-field/form-field-message/form-field-message.component';\nimport { FormFieldComponent } from './components/form-field/form-field.component';\nimport { InputCounterComponent } from './components/form-field/input-counter/input-counter.component';\nimport { InputComponent } from './components/form-field/input/input.component';\nimport { TextareaComponent } from './components/form-field/textarea/textarea.component';\nimport { BreakpointHelperService } from './components/grid/breakpoint-helper.service';\nimport { GridComponent } from './components/grid/grid.component';\nimport { IconModule } from './components/icon/icon.module';\nimport { ItemGroupComponent } from './components/item-group/item-group.component';\nimport { ItemSlidingComponent } from './components/item-sliding/item-sliding.component';\nimport { ItemModule } from './components/item/item.module';\nimport { ListModule } from './components/list/list.module';\nimport { GroupByPipe } from './components/list/pipes/group-by.pipe';\nimport { LoadingOverlayComponent } from './components/loading-overlay/loading-overlay.component';\nimport { LoadingOverlayService } from './components/loading-overlay/loading-overlay.service';\nimport { ActionSheetComponent } from './components/modal/action-sheet/action-sheet.component';\nimport { AlertComponent } from './components/modal/alert/alert.component';\nimport { ModalFooterComponent } from './components/modal/footer/modal-footer.component';\nimport { ModalCompactWrapperComponent } from './components/modal/modal-wrapper/compact/modal-compact-wrapper.component';\nimport { ModalWrapperComponent } from './components/modal/modal-wrapper/modal-wrapper.component';\nimport { ActionSheetHelper } from './components/modal/services/action-sheet.helper';\nimport { AlertHelper } from './components/modal/services/alert.helper';\nimport { ModalController } from './components/modal/services/modal.controller';\nimport { ModalHelper } from './components/modal/services/modal.helper';\nimport { PageModule } from './components/page/page.module';\nimport { PopoverComponent } from './components/popover/popover.component';\nimport { ProgressCircleRingComponent } from './components/progress-circle/progress-circle-ring.component';\nimport { ProgressCircleComponent } from './components/progress-circle/progress-circle.component';\nimport { RadioGroupComponent } from './components/radio/radio-group/radio-group.component';\nimport { RadioComponent } from './components/radio/radio.component';\nimport { RangeComponent } from './components/range/range.component';\nimport { ReorderListComponent } from './components/reorder-list/reorder-list.component';\nimport { RouterOutletModule } from './components/router-outlet/router-outlet.module';\nimport { SectionHeaderComponent } from './components/section-header/section-header.component';\nimport { SegmentedControlComponent } from './components/segmented-control/segmented-control.component';\nimport { ComponentLoaderDirective } from './components/shared/component-loader.directive';\nimport { ResizeObserverFactory } from './components/shared/resize-observer/resize-observer.factory';\nimport { ResizeObserverService } from './components/shared/resize-observer/resize-observer.service';\nimport { SlideButtonComponent } from './components/slide-button/slide-button.component';\nimport { SlideDirective, SlidesComponent } from './components/slides/slides.component';\nimport { SpinnerModule } from './components/spinner/spinner.module';\nimport { StockChartDeprecatedComponent } from './components/stock-chart-deprecated/stock-chart-deprecated.component';\nimport { TabsModule } from './components/tabs/tabs.module';\nimport { ToastController } from './components/toast/services/toast.controller';\nimport { ToastHelper } from './components/toast/services/toast.helper';\nimport { ToggleButtonModule } from './components/toggle-button/toggle-button.module';\nimport { ToggleComponent } from './components/toggle/toggle.component';\nimport { KirbyBadge as BadgeComponent } from './components/web-component-proxies.component';\nimport { customElementsInitializer } from './custom-elements-initializer';\nimport { ElementAsButtonDirective } from './directives/element-as-button/element-as-button.directive';\nimport { KeyHandlerDirective } from './directives/key-handler/key-handler.directive';\nimport { ModalRouterLinkDirective } from './directives/modal-router-link/modal-router-link.directive';\nimport { ThemeColorDirective } from './directives/theme-color/theme-color.directive';\n\nconst exportedDeclarations = [\n CardComponent,\n CardHeaderComponent,\n CardFooterComponent,\n ButtonComponent,\n ChartDeprecatedComponent,\n StockChartDeprecatedComponent,\n GridComponent,\n ComponentLoaderDirective,\n AvatarComponent,\n GroupByPipe,\n CalendarComponent,\n CheckboxComponent,\n ActionSheetComponent,\n ModalFooterComponent,\n ModalRouterLinkDirective,\n SegmentedControlComponent,\n ChipComponent,\n BadgeComponent,\n ThemeColorDirective,\n DateInputDirective,\n DecimalMaskDirective,\n SlideButtonComponent,\n ToggleComponent,\n EmptyStateComponent,\n FormFieldComponent,\n InputComponent,\n InputCounterComponent,\n TextareaComponent,\n FabSheetComponent,\n DividerComponent,\n ReorderListComponent,\n DropdownComponent,\n LoadingOverlayComponent,\n ProgressCircleComponent,\n FlagComponent,\n SlidesComponent,\n SlideDirective,\n AccordionDirective,\n AccordionItemComponent,\n ItemSlidingComponent,\n RadioComponent,\n RadioGroupComponent,\n RangeComponent,\n ElementAsButtonDirective,\n ItemGroupComponent,\n SectionHeaderComponent,\n];\n\nconst declarations = [\n ...exportedDeclarations,\n KeyHandlerDirective,\n FormFieldMessageComponent,\n AlertComponent,\n ModalWrapperComponent,\n ModalCompactWrapperComponent,\n ProgressCircleRingComponent,\n PopoverComponent,\n];\n\nconst exportedModules = [\n AppModule,\n RouterOutletModule,\n PageModule,\n TabsModule,\n IconModule,\n ItemModule,\n ToggleButtonModule,\n ListModule,\n ChartModule,\n SpinnerModule,\n];\n\nconst exports = [...exportedModules, ...exportedDeclarations];\n\nconst importedModules = [...exportedModules];\n\nconst providers = [\n ModalController,\n ActionSheetHelper,\n ModalHelper,\n AlertHelper,\n ToastHelper,\n ToastController,\n BreakpointHelperService,\n LoadingOverlayService,\n ResizeObserverFactory,\n ResizeObserverService,\n customElementsInitializer(),\n];\n\nconst entryComponents = [\n ModalWrapperComponent,\n ModalCompactWrapperComponent,\n ActionSheetComponent,\n AlertComponent,\n];\n\nconst ConfigToken = new InjectionToken<any>('USERCONFIG');\nexport interface KirbyConfig {\n moduleRootRoutePath?: string;\n}\n\n@NgModule({\n imports: [\n CommonModule,\n RouterModule,\n IonicModule.forRoot({\n mode: 'ios',\n inputShims: true,\n scrollAssist: true,\n scrollPadding: false,\n }),\n ...importedModules,\n ],\n declarations: declarations,\n providers: providers,\n entryComponents: entryComponents,\n exports: exports,\n})\nexport class KirbyModule {\n static forChild(config?: KirbyConfig): ModuleWithProviders<KirbyModule> {\n return {\n ngModule: KirbyModule,\n providers: [\n {\n provide: ConfigToken,\n useValue: config,\n },\n ],\n };\n }\n\n constructor(\n modalController: ModalController,\n @Optional() @Inject(ConfigToken) config?: KirbyConfig\n ) {\n modalController.initialize(config && config.moduleRootRoutePath);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["KirbyAnimation","DesignTokenHelper","i0","Directive","__decorate","__metadata","__awaiter","Injectable","IconSize","i1.IconRegistryService","i2","Component","ChangeDetectionStrategy","HostBinding","Input","i1.IconComponent","trigger","state","style","transition","animate","i1","InjectionToken","Subject","Injector","i1.WindowRef","HostListener","ButtonSize","ElementRef","ContentChild","i1.ResizeObserverFactory","debounceTime","first","merge","takeUntil","RendererStyleFlags2","i1.ResizeObserverService","i2.WindowRef","i3.PlatformService","IonContent","IonHeader","IonToolbar","IonTitle","RouterOutlet","i4","i5.ButtonComponent","i6.IconComponent","i7","i8","ViewChildren","ViewChild","i2.PlatformService","i2.ModalAnimationBuilderService","i3.WindowRef","EventEmitter","i1.CardComponent","i2.CardHeaderComponent","i3.ButtonComponent","Output","ContentChildren","ColorHelper","of","i2.EmptyStateComponent","i4.ThemeColorDirective","i5","filter","NavigationEnd","startWith","map","pairwise","EMPTY","ROUTES","Optional","Inject","i1.ModalController","IonApp","CommonModule","IonicModule","NgModule","AvatarSize","fromEvent","KirbyBadge","ChangeDetectorRef","NgZone","Highcharts","chart","ChartDeprecatedType","getColor","fontSize","colorPoints","dateFormat","defaultOptions","valueOrDefault","getThemeColorHexString","CategoryScale","LinearScale","TimeScale","BarElement","LineElement","PointElement","BarController","LineController","annotationPlugin","Filler","ChartDataLabels","Tooltip","Chart","Legend","_deepCopy","toDate","i1.ChartConfigService","i1.ChartJSService","formatNumber","AnnotationsModule","LOCALE_ID","ItemSize","i2.IconComponent","i3","HorizontalDirection","i1.KeyboardHandlerService","NG_VALUE_ACCESSOR","forwardRef","TemplateRef","i2.ButtonComponent","i3.IconComponent","i4.PopoverComponent","i5.CardComponent","i6.ItemComponent","locale","da","enGB","enUS","isBefore","isAfter","capitalizeFirstLetter","format","isSameMonth","startOfMonth","startOfDay","utcToZonedTime","eachDayOfInterval","startOfWeek","endOfWeek","isSameDay","endOfMonth","differenceInDays","add","isWeekend","zonedTimeToUtc","getYear","i3.DropdownComponent","IonRadio","i2.RadioComponent","i1.FormFieldMessageComponent","InputSize","i1.PlatformService","i3.FormFieldMessageComponent","Inputmask","getLocaleDateFormat","FormatWidth","getLocaleNumberSymbol","NumberSymbol","DOCUMENT","IonFabButton","i1.BreakpointHelperService","i3.ComponentLoaderDirective","i1.SpinnerComponent","Pipe","IonItemSliding","i4.ListItemColorDirective","i1.ListHelper","i2.GroupByPipe","i4.SpinnerComponent","i5.ListItemComponent","i6.InfiniteScrollDirective","IonList","exportedDeclarations","declarations","ReplaySubject","i1.TabsService","IonTabs","i2.LineClampHelper","i1.ModalWrapperComponent","SkipSelf","NavigationStart","i4.ModalNavigationService","i5.TabsComponent","IonFooter","i6","i7.SpinnerComponent","i9.FitHeadingDirective","i1.PageComponent","i2.CardComponent","i3.ItemComponent","SegmentedControlMode","i3.KirbyBadge","i4.IconComponent","i5.ChipComponent","i1.ToastHelper","i1.ProgressCircleRingComponent","i2.ThemeColorDirective","i1.ModalNavigationService","defineCustomElements","APP_INITIALIZER","BadgeComponent","exports","RouterModule"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEiBA,oCAShB;IATD,CAAA,UAAiB,cAAc,EAAA;IAC7B,IAAA,IAAY,QAMX,CAAA;IAND,IAAA,CAAA,UAAY,QAAQ,EAAA;;IAElB,QAAA,QAAQ,CAAA,QAAA,CAAA,OAAA,CAAA,GAAA,QAAQ,CAACC,sBAAiB,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAA,GAAA,OAAA,CAAA;IAC/D,QAAA,QAAQ,CAAA,QAAA,CAAA,OAAA,CAAA,GAAA,QAAQ,CAACA,sBAAiB,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAA,GAAA,OAAA,CAAA;IAC/D,QAAA,QAAO,CAAA,QAAA,CAAA,MAAA,CAAA,GAAA,QAAQ,CAACA,sBAAiB,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAA,GAAA,MAAA,CAAA;IAC7D,QAAA,QAAa,CAAA,QAAA,CAAA,YAAA,CAAA,GAAA,QAAQ,CAACA,sBAAiB,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAC,CAAA,GAAA,YAAA,CAAA;IAC1E,KAAC,EANW,QAAQ,GAAR,cAAQ,CAAA,QAAA,KAAR,uBAAQ,GAMnB,EAAA,CAAA,CAAA,CAAA;IACY,IAAA,cAAA,CAAA,MAAM,GAAGA,sBAAiB,CAAC,iBAAiB,EAAE,CAAC;IAC9D,CAAC,EATgBD,sBAAc,KAAdA,sBAAc,GAS9B,EAAA,CAAA,CAAA;;ACLD,QAAA,kBAAA,kBAAA,YAAA;IAAA,IAAA,SAAA,kBAAA,GAAA;;;;6JAAa,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAAE,aAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;sIAAlB,kBAAkB,EAAA,QAAA,EAAA,mCAAA,EAAA,QAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,QAAA,EAAAA,aAAA,EAAA,CAAA,CAAA;sHAAlB,kBAAkB,EAAA,UAAA,EAAA,CAAA;sBAJ9BC,YAAS;IAAC,YAAA,IAAA,EAAA,CAAA;IACT,oBAAA,QAAQ,EAAE,mCAAmC;IAC7C,oBAAA,QAAQ,EAAE,iBAAiB;qBAC5B,CAAA;;;ICHD;IACO,IAAM,iBAAiB,GAAiB;IAC7C,IAAA,KAAK,EAAE;IACL,QAAA,EAAE,IAAI,EAAE,kBAAkB,EAAE,GAAG,EAAE,6CAA6C,EAAE;IAChF,QAAA,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,qCAAqC,EAAE;IAChE,QAAA,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,gCAAgC,EAAE;IACtD,QAAA,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,mCAAmC,EAAE;IAC5D,QAAA,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,EAAE,wCAAwC,EAAE;IACtE,QAAA,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,uCAAuC,EAAE;IACpE,QAAA,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,uCAAuC,EAAE;IACpE,QAAA,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,uCAAuC,EAAE;IACpE,QAAA,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,qCAAqC,EAAE;IAChE,QAAA,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,mCAAmC,EAAE;IAC5D,QAAA,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,sCAAsC,EAAE;IAClE,QAAA,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,qCAAqC,EAAE;IAChE,QAAA,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,mCAAmC,EAAE;IAC5D,QAAA,EAAE,IAAI,EAAE,kBAAkB,EAAE,GAAG,EAAE,6CAA6C,EAAE;IAChF,QAAA,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,qCAAqC,EAAE;IAChE,QAAA,EAAE,IAAI,EAAE,oBAAoB,EAAE,GAAG,EAAE,+CAA+C,EAAE;IACpF,QAAA,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,kCAAkC,EAAE;IAC1D,QAAA,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,gCAAgC,EAAE;IACtD,QAAA,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,iCAAiC,EAAE;IACxD,QAAA,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,iCAAiC,EAAE;IACxD,QAAA,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,iCAAiC,EAAE;IACxD,QAAA,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,mCAAmC,EAAE;IAC5D,QAAA,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,sCAAsC,EAAE;IAClE,QAAA,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,kCAAkC,EAAE;IAC1D,QAAA,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,qCAAqC,EAAE;IAChE,QAAA,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,iCAAiC,EAAE;IACxD,QAAA,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,iCAAiC,EAAE;IACxD,QAAA,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,kCAAkC,EAAE;IAC1D,QAAA,EAAE,IAAI,EAAE,eAAe,EAAE,GAAG,EAAE,0CAA0C,EAAE;IAC1E,QAAA,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,EAAE,wCAAwC,EAAE;IACtE,QAAA,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,uCAAuC,EAAE;IACpE,QAAA,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,kCAAkC,EAAE;IAC1D,QAAA,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,iCAAiC,EAAE;IACxD,QAAA,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,oCAAoC,EAAE;IAC9D,QAAA,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,EAAE,yCAAyC,EAAE;IACxE,QAAA,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,iCAAiC,EAAE;IACxD,QAAA,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,iCAAiC,EAAE;IACxD,QAAA,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,iCAAiC,EAAE;IACxD,QAAA,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,iCAAiC,EAAE;IACxD,QAAA,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,EAAE,yCAAyC,EAAE;IACxE,QAAA,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,oCAAoC,EAAE;IAC9D,QAAA,EAAE,IAAI,EAAE,gBAAgB,EAAE,GAAG,EAAE,2CAA2C,EAAE;IAC5E,QAAA,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,mCAAmC,EAAE;IAC5D,QAAA,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,+BAA+B,EAAE;IACpD,QAAA,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,mCAAmC,EAAE;IAC5D,QAAA,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,kCAAkC,EAAE;IAC1D,QAAA,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,iCAAiC,EAAE;IACxD,QAAA,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,oCAAoC,EAAE;IAC9D,QAAA,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,iCAAiC,EAAE;IACxD,QAAA,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,kCAAkC,EAAE;IAC1D,QAAA,EAAE,IAAI,EAAE,iBAAiB,EAAE,GAAG,EAAE,4CAA4C,EAAE;IAC9E,QAAA,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,kCAAkC,EAAE;IAC1D,QAAA,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,mCAAmC,EAAE;IAC5D,QAAA,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,oCAAoC,EAAE;IAC9D,QAAA,EAAE,IAAI,EAAE,eAAe,EAAE,GAAG,EAAE,0CAA0C,EAAE;IAC1E,QAAA,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,oCAAoC,EAAE;IAC/D,KAAA;KACF,CAAC;QAEW,YAAY,GAAG,iBAAiB,CAAC,KAAK,CAAC,GAAG,CAAC,UAAC,IAAI,EAAA,EAAK,OAAA,IAAI,CAAC,IAAI,CAAT,EAAS;;IChE3E;;;;;;;;;;;;;IAagF;IAChF;IAEA,IAAI,aAAa,GAAG,UAAS,CAAC,EAAE,CAAC,EAAA;QAC7B,aAAa,GAAG,MAAM,CAAC,cAAc;aAChC,EAAE,SAAS,EAAE,EAAE,EAAE,YAAY,KAAK,IAAI,UAAU,CAAC,EAAE,CAAC,EAAA,EAAI,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,EAAE,CAAC;YAC5E,UAAU,CAAC,EAAE,CAAC,EAAA,EAAI,KAAK,IAAI,CAAC,IAAI,CAAC;gBAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;oBAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACtG,IAAA,OAAO,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC/B,CAAC,CAAC;IAEc,SAAA,SAAS,CAAC,CAAC,EAAE,CAAC,EAAA;IAC1B,IAAA,IAAI,OAAO,CAAC,KAAK,UAAU,IAAI,CAAC,KAAK,IAAI;IACrC,QAAA,MAAM,IAAI,SAAS,CAAC,sBAAsB,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,+BAA+B,CAAC,CAAC;IAC9F,IAAA,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACpB,SAAS,EAAE,KAAK,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,EAAE;IACvC,IAAA,CAAC,CAAC,SAAS,GAAG,CAAC,KAAK,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;IACzF,CAAC;IAEM,IAAI,QAAQ,GAAG,YAAA;QAClB,QAAQ,GAAG,MAAM,CAAC,MAAM,IAAI,SAAS,QAAQ,CAAC,CAAC,EAAA;IAC3C,QAAA,KAAK,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;IACjD,YAAA,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;gBACjB,KAAK,IAAI,CAAC,IAAI,CAAC;oBAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;wBAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAChF,SAAA;IACD,QAAA,OAAO,CAAC,CAAC;IACb,KAAC,CAAA;QACD,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAC3C,CAAC,CAAA;IAEe,SAAA,MAAM,CAAC,CAAC,EAAE,CAAC,EAAA;QACvB,IAAI,CAAC,GAAG,EAAE,CAAC;QACX,KAAK,IAAI,CAAC,IAAI,CAAC;YAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;gBAC/E,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAChB,IAAI,CAAC,IAAI,IAAI,IAAI,OAAO,MAAM,CAAC,qBAAqB,KAAK,UAAU;YAC/D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACpE,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,SAAS,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1E,gBAAA,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACzB,SAAA;IACL,IAAA,OAAO,CAAC,CAAC;IACb,CAAC;IAEK,SAAUC,YAAU,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAA;IACpD,IAAA,IAAI,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,MAAM,GAAG,IAAI,KAAK,IAAI,GAAG,IAAI,GAAG,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC;QAC7H,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,OAAO,CAAC,QAAQ,KAAK,UAAU;IAAE,QAAA,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;;IAC1H,QAAA,KAAK,IAAI,CAAC,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;IAAE,YAAA,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC;IAAE,gBAAA,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;IAClJ,IAAA,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;IAClE,CAAC;IAEe,SAAA,OAAO,CAAC,UAAU,EAAE,SAAS,EAAA;IACzC,IAAA,OAAO,UAAU,MAAM,EAAE,GAAG,EAAA,EAAI,SAAS,CAAC,MAAM,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC,EAAE,CAAA;IACzE,CAAC;IAEe,SAAAC,YAAU,CAAC,WAAW,EAAE,aAAa,EAAA;QACjD,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,OAAO,CAAC,QAAQ,KAAK,UAAU;YAAE,OAAO,OAAO,CAAC,QAAQ,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;IACnI,CAAC;IAEK,SAAUC,WAAS,CAAC,OAAO,EAAE,UAAU,EAAE,CAAC,EAAE,SAAS,EAAA;IACvD,IAAA,SAAS,KAAK,CAAC,KAAK,EAAA,EAAI,OAAO,KAAK,YAAY,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,CAAC,UAAU,OAAO,EAAA,EAAI,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;IAC5G,IAAA,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,EAAE,UAAU,OAAO,EAAE,MAAM,EAAA;IACrD,QAAA,SAAS,SAAS,CAAC,KAAK,EAAA,EAAI,IAAI;gBAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAAE,SAAA;IAAC,QAAA,OAAO,CAAC,EAAE;gBAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IAAE,SAAA,EAAE;IAC3F,QAAA,SAAS,QAAQ,CAAC,KAAK,EAAA,EAAI,IAAI;gBAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;IAAE,SAAA;IAAC,QAAA,OAAO,CAAC,EAAE;gBAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IAAE,SAAA,EAAE;IAC9F,QAAA,SAAS,IAAI,CAAC,MAAM,EAAA,EAAI,MAAM,CAAC,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,EAAE;IAC9G,QAAA,IAAI,CAAC,CAAC,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1E,KAAC,CAAC,CAAC;IACP,CAAC;IAEe,SAAA,WAAW,CAAC,OAAO,EAAE,IAAI,EAAA;IACrC,IAAA,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,YAAA,EAAa,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;IAAE,YAAA,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACjH,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,OAAO,MAAM,KAAK,UAAU,KAAK,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,YAAA,EAAa,OAAO,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACzJ,SAAS,IAAI,CAAC,CAAC,EAAA,EAAI,OAAO,UAAU,CAAC,EAAI,EAAA,OAAO,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE;QAClE,SAAS,IAAI,CAAC,EAAE,EAAA;IACZ,QAAA,IAAI,CAAC;IAAE,YAAA,MAAM,IAAI,SAAS,CAAC,iCAAiC,CAAC,CAAC;IAC9D,QAAA,OAAO,CAAC;gBAAE,IAAI;IACV,gBAAA,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI;IAAE,oBAAA,OAAO,CAAC,CAAC;IAC7J,gBAAA,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;IAAE,oBAAA,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;IACxC,gBAAA,QAAQ,EAAE,CAAC,CAAC,CAAC;IACT,oBAAA,KAAK,CAAC,CAAC;IAAC,oBAAA,KAAK,CAAC;4BAAE,CAAC,GAAG,EAAE,CAAC;4BAAC,MAAM;IAC9B,oBAAA,KAAK,CAAC;4BAAE,CAAC,CAAC,KAAK,EAAE,CAAC;IAAC,wBAAA,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;IACxD,oBAAA,KAAK,CAAC;4BAAE,CAAC,CAAC,KAAK,EAAE,CAAC;IAAC,wBAAA,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;IAAC,wBAAA,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;4BAAC,SAAS;IACjD,oBAAA,KAAK,CAAC;IAAE,wBAAA,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;IAAC,wBAAA,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;4BAAC,SAAS;IACjD,oBAAA;IACI,wBAAA,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE;gCAAE,CAAC,GAAG,CAAC,CAAC;gCAAC,SAAS;IAAE,yBAAA;IAC5G,wBAAA,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;IAAE,4BAAA,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;gCAAC,MAAM;IAAE,yBAAA;IACtF,wBAAA,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;IAAE,4BAAA,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;gCAAC,CAAC,GAAG,EAAE,CAAC;gCAAC,MAAM;IAAE,yBAAA;4BACrE,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;IAAE,4BAAA,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAAC,4BAAA,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gCAAC,MAAM;IAAE,yBAAA;4BACnE,IAAI,CAAC,CAAC,CAAC,CAAC;IAAE,4BAAA,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;IACtB,wBAAA,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;4BAAC,SAAS;IAC9B,iBAAA;oBACD,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IAC9B,aAAA;IAAC,YAAA,OAAO,CAAC,EAAE;IAAE,gBAAA,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;oBAAC,CAAC,GAAG,CAAC,CAAC;IAAE,aAAA;IAAS,oBAAA;IAAE,gBAAA,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAAE,aAAA;IAC1D,QAAA,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;IAAE,YAAA,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;YAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;SACpF;IACL,CAAC;IAEM,IAAI,eAAe,GAAG,MAAM,CAAC,MAAM,IAAI,UAAS,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAA;QAC9D,IAAI,EAAE,KAAK,SAAS;YAAE,EAAE,GAAG,CAAC,CAAC;QAC7B,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,YAAA,EAAa,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACzF,CAAC,KAAK,UAAS,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAA;QACtB,IAAI,EAAE,KAAK,SAAS;YAAE,EAAE,GAAG,CAAC,CAAC;QAC7B,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC,CAAC,CAAC;IAEa,SAAA,YAAY,CAAC,CAAC,EAAE,CAAC,EAAA;QAC7B,KAAK,IAAI,CAAC,IAAI,CAAC;IAAE,QAAA,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;IAAE,YAAA,eAAe,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAClH,CAAC;IAEK,SAAU,QAAQ,CAAC,CAAC,EAAA;QACtB,IAAI,CAAC,GAAG,OAAO,MAAM,KAAK,UAAU,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;IAC9E,IAAA,IAAI,CAAC;IAAE,QAAA,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACxB,IAAA,IAAI,CAAC,IAAI,OAAO,CAAC,CAAC,MAAM,KAAK,QAAQ;YAAE,OAAO;IAC1C,YAAA,IAAI,EAAE,YAAA;IACF,gBAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM;wBAAE,CAAC,GAAG,KAAK,CAAC,CAAC;IACnC,gBAAA,OAAO,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;iBAC3C;aACJ,CAAC;IACF,IAAA,MAAM,IAAI,SAAS,CAAC,CAAC,GAAG,yBAAyB,GAAG,iCAAiC,CAAC,CAAC;IAC3F,CAAC;IAEe,SAAA,MAAM,CAAC,CAAC,EAAE,CAAC,EAAA;IACvB,IAAA,IAAI,CAAC,GAAG,OAAO,MAAM,KAAK,UAAU,IAAI,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC3D,IAAA,IAAI,CAAC,CAAC;IAAE,QAAA,OAAO,CAAC,CAAC;IACjB,IAAA,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;QACjC,IAAI;YACA,OAAO,CAAC,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,IAAI;IAAE,YAAA,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IAC9E,KAAA;IACD,IAAA,OAAO,KAAK,EAAE;IAAE,QAAA,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;IAAE,KAAA;IAC/B,YAAA;YACJ,IAAI;IACA,YAAA,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC;IAAE,gBAAA,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpD,SAAA;IACO,gBAAA;IAAE,YAAA,IAAI,CAAC;oBAAE,MAAM,CAAC,CAAC,KAAK,CAAC;IAAE,SAAA;IACpC,KAAA;IACD,IAAA,OAAO,EAAE,CAAC;IACd,CAAC;IAED;aACgB,QAAQ,GAAA;IACpB,IAAA,KAAK,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE;IAC9C,QAAA,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACzC,IAAA,OAAO,EAAE,CAAC;IACd,CAAC;IAED;aACgB,cAAc,GAAA;QAC1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE;IAAE,QAAA,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;QACpF,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE;YAC5C,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE;gBAC7D,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACpB,IAAA,OAAO,CAAC,CAAC;IACb,CAAC;IAEe,SAAA,aAAa,CAAC,EAAE,EAAE,IAAI,EAAA;QAClC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE;YAC7D,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,IAAA,OAAO,EAAE,CAAC;IACd,CAAC;IAEK,SAAU,OAAO,CAAC,CAAC,EAAA;QACrB,OAAO,IAAI,YAAY,OAAO,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,IAAI,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC;IACzE,CAAC;aAEe,gBAAgB,CAAC,OAAO,EAAE,UAAU,EAAE,SAAS,EAAA;QAC3D,IAAI,CAAC,MAAM,CAAC,aAAa;IAAE,QAAA,MAAM,IAAI,SAAS,CAAC,sCAAsC,CAAC,CAAC;IACvF,IAAA,IAAI,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC;IAC9D,IAAA,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,YAAc,EAAA,OAAO,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;QACtH,SAAS,IAAI,CAAC,CAAC,EAAA,EAAI,IAAI,CAAC,CAAC,CAAC,CAAC;YAAE,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,EAAA,EAAI,OAAO,IAAI,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,EAAI,EAAA,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE;IAC1I,IAAA,SAAS,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,IAAI;YAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAAE,KAAA;IAAC,IAAA,OAAO,CAAC,EAAE;YAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAAE,KAAA,EAAE;QAClF,SAAS,IAAI,CAAC,CAAC,EAAA,EAAI,CAAC,CAAC,KAAK,YAAY,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;IACxH,IAAA,SAAS,OAAO,CAAC,KAAK,EAAA,EAAI,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,EAAE;IAClD,IAAA,SAAS,MAAM,CAAC,KAAK,EAAA,EAAI,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,EAAE;IAClD,IAAA,SAAS,MAAM,CAAC,CAAC,EAAE,CAAC,EAAA,EAAI,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,MAAM;IAAE,QAAA,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;IACtF,CAAC;IAEK,SAAU,gBAAgB,CAAC,CAAC,EAAA;QAC9B,IAAI,CAAC,EAAE,CAAC,CAAC;IACT,IAAA,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,YAAA,EAAc,OAAO,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;IAC5I,IAAA,SAAS,IAAI,CAAC,CAAC,EAAE,CAAC,EAAI,EAAA,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,EAAI,EAAA,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,KAAK,QAAQ,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE;IACnJ,CAAC;IAEK,SAAU,aAAa,CAAC,CAAC,EAAA;QAC3B,IAAI,CAAC,MAAM,CAAC,aAAa;IAAE,QAAA,MAAM,IAAI,SAAS,CAAC,sCAAsC,CAAC,CAAC;QACvF,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;IACnC,IAAA,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,QAAQ,KAAK,UAAU,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,YAAA,EAAc,OAAO,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QACjN,SAAS,IAAI,CAAC,CAAC,EAAI,EAAA,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,EAAA,EAAI,OAAO,IAAI,OAAO,CAAC,UAAU,OAAO,EAAE,MAAM,EAAI,EAAA,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE;IAChK,IAAA,SAAS,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAS,CAAC,EAAI,EAAA,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,EAAE;IAChI,CAAC;IAEe,SAAA,oBAAoB,CAAC,MAAM,EAAE,GAAG,EAAA;QAC5C,IAAI,MAAM,CAAC,cAAc,EAAE;IAAE,QAAA,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;IAAE,KAAA;IAAM,SAAA;IAAE,QAAA,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC;IAAE,KAAA;IAC/G,IAAA,OAAO,MAAM,CAAC;IAClB,CAAC;IAAA,CAAC;IAEF,IAAI,kBAAkB,GAAG,MAAM,CAAC,MAAM,IAAI,UAAS,CAAC,EAAE,CAAC,EAAA;IACnD,IAAA,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;IACxE,CAAC,IAAI,UAAS,CAAC,EAAE,CAAC,EAAA;IACd,IAAA,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IACrB,CAAC,CAAC;IAEI,SAAU,YAAY,CAAC,GAAG,EAAA;IAC5B,IAAA,IAAI,GAAG,IAAI,GAAG,CAAC,UAAU;IAAE,QAAA,OAAO,GAAG,CAAC;QACtC,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,GAAG,IAAI,IAAI;YAAE,KAAK,IAAI,CAAC,IAAI,GAAG;IAAE,YAAA,IAAI,CAAC,KAAK,SAAS,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IAAE,gBAAA,eAAe,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;IACzI,IAAA,kBAAkB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAChC,IAAA,OAAO,MAAM,CAAC;IAClB,CAAC;IAEK,SAAU,eAAe,CAAC,GAAG,EAAA;IAC/B,IAAA,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,UAAU,IAAI,GAAG,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;IAC5D,CAAC;IAEe,SAAA,sBAAsB,CAAC,QAAQ,EAAE,UAAU,EAAA;IACvD,IAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;IAC3B,QAAA,MAAM,IAAI,SAAS,CAAC,gDAAgD,CAAC,CAAC;IACzE,KAAA;IACD,IAAA,OAAO,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACpC,CAAC;aAEe,sBAAsB,CAAC,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAA;IAC9D,IAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;IAC3B,QAAA,MAAM,IAAI,SAAS,CAAC,gDAAgD,CAAC,CAAC;IACzE,KAAA;IACD,IAAA,UAAU,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IAChC,IAAA,OAAO,KAAK,CAAC;IACjB;;ACrOA,QAAA,mBAAA,kBAAA,YAAA;IAHA,IAAA,SAAA,mBAAA,GAAA;IAIU,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,GAAG,EAAkB,CAAC;SA8BlD;IA5BQ,IAAA,mBAAA,CAAA,SAAA,CAAA,OAAO,GAAP,UAAQ,QAAgB,EAAE,OAAe,EAAA;YAC9C,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;gBACpC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC1C,SAAA;IAAM,aAAA;IACL,YAAA,OAAO,CAAC,IAAI,CAAC,uBAAoB,QAAQ,GAAA,mBAAkB,CAAC,CAAC;IAC9D,SAAA;SACF,CAAA;QAEM,mBAAQ,CAAA,SAAA,CAAA,QAAA,GAAR,UAAS,KAAa,EAAA;YAAtB,IAQN,KAAA,GAAA,IAAA,CAAA;YAPC,IAAI,CAAC,KAAK,EAAE;IACV,YAAA,OAAO,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;gBACnC,OAAO;IACR,SAAA;IACD,QAAA,KAAK,CAAC,OAAO,CAAC,UAAC,IAAI,EAAA;gBACjB,KAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;IACpC,SAAC,CAAC,CAAC;SACJ,CAAA;IAED,IAAA,mBAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;IACE,QAAA,OAAO,aAAI,CAAA,EAAA,EAAA,MAAA,CAAA,IAAI,CAAC,YAAY,CAAE,CAAA,CAAA,GAAG,CAC/B,UAAC,UAAU,EAAA,EAAK,QAAC,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,EAAW,EAArD,EAAqD,CACtE,CAAC;SACH,CAAA;QAED,mBAAO,CAAA,SAAA,CAAA,OAAA,GAAP,UAAQ,IAAY,EAAA;YAClB,IAAM,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACxC,QAAA,OAAO,GAAG,GAAG,EAAE,IAAI,EAAA,IAAA,EAAE,GAAG,KAAA,EAAE,GAAG,SAAS,CAAC;SACxC,CAAA;;;8JA9BU,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAAJ,aAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;IAAnB,mBAAA,mBAAA,CAAA,KAAA,GAAAA,aAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAAA,aAAA,EAAA,IAAA,EAAA,mBAAmB,cAFlB,MAAM,EAAA,CAAA,CAAA;sHAEP,mBAAmB,EAAA,UAAA,EAAA,CAAA;sBAH/BK,aAAU;IAAC,YAAA,IAAA,EAAA,CAAA;IACV,oBAAA,UAAU,EAAE,MAAM;qBACnB,CAAA;;;ACOWC,8BAKX;IALD,CAAA,UAAY,QAAQ,EAAA;IAClB,IAAA,QAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;IACT,IAAA,QAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;IACT,IAAA,QAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;IACT,IAAA,QAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;IACX,CAAC,EALWA,gBAAQ,KAARA,gBAAQ,GAKnB,EAAA,CAAA,CAAA,CAAA;AAUD,QAAA,aAAA,kBAAA,YAAA;IA+CE,IAAA,SAAA,aAAA,CAAoB,mBAAwC,EAAA;IAAxC,QAAA,IAAmB,CAAA,mBAAA,GAAnB,mBAAmB,CAAqB;IA9C5D,QAAA,IAAW,CAAA,WAAA,GAAS,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAC1D,QAAA,IAAK,CAAA,KAAA,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC;SA6CiB;IArChE,IAAA,MAAA,CAAA,cAAA,CAAI,aAAI,CAAA,SAAA,EAAA,MAAA,EAAA;IAAR,QAAA,GAAA,EAAA,YAAA;gBACE,OAAO,IAAI,CAAC,KAAK,CAAC;aACnB;IAED,QAAA,GAAA,EAAA,UAAS,IAAU,EAAA;;IAEjB,YAAA,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,EAAE;oBAC3C,IAAI,CAAC,oBAAoB,EAAE,CAAC;IAE5B,gBAAA,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC;;oBAGxB,IAAI,CAAC,IAAI,EAAE;IACT,oBAAA,OAAO,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;wBAC5C,OAAO;IACR,iBAAA;IACF,aAAA;;IAGD,YAAA,IAAI,IAAI,EAAE;IACR,gBAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACnB,aAAA;aACF;;;IApBA,KAAA,CAAA,CAAA;IAsBO,IAAA,aAAA,CAAA,SAAA,CAAA,oBAAoB,GAApB,YAAA;YACN,IAAI,IAAI,CAAC,UAAU,EAAE;gBACnB,OAAO,CAAC,IAAI,CAAC,0BAAA,GAA0B,IAAI,CAAC,UAAU,GAEmB,mJAAA,CAAC,CAAC;IAC5E,SAAA;IAAM,aAAA;IACL,YAAA,OAAO,CAAC,IAAI,CAAC,4BAAA,GAA4B,IAAI,CAAC,IAAI,GAAA,gKAAA,GAGtB,IAAI,CAAC,IAAI,GAAA,kBAAiB,CAAC,CAAC;IACzD,SAAA;SACF,CAAA;QAID,aAAW,CAAA,SAAA,CAAA,WAAA,GAAX,UAAY,OAAsB,EAAA;YAChC,IAAI,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE;IAC7C,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC/E,SAAA;iBAAM,IAAI,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,UAAU,CAAC,YAAY,EAAE;IAChE,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;IAC/E,SAAA;SACF,CAAA;IAEO,IAAA,aAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,UAAS,KAAK,EAAE,IAAY,EAAA;IAClC,QAAA,OAAO,KAAK,CAAC,IAAI,CAAC,UAAC,IAAI,EAAK,EAAA,OAAA,IAAI,CAAC,IAAI,KAAK,IAAI,CAAlB,EAAkB,CAAC,CAAC;SACjD,CAAA;;;wJA3DU,aAAa,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,mBAAA,EAAA,CAAA,EAAA,MAAA,EAAAP,aAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;IAAb,mBAAA,aAAA,CAAA,IAAA,GAAAA,aAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,aAAa,gOC5B1B,6CACA,EAAA,MAAA,EAAA,CAAA,g6BAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAQ,aAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,WAAA,EAAA,OAAA,EAAA,SAAA,EAAA,MAAA,EAAA,KAAA,EAAA,MAAA,EAAA,IAAA,EAAA,MAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,KAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAAR,aAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;sHD2Ba,aAAa,EAAA,UAAA,EAAA,CAAA;sBARzBS,YAAS;IAAC,YAAA,IAAA,EAAA,CAAA;IACT,oBAAA,QAAQ,EAAE,YAAY;IACtB,oBAAA,WAAW,EAAE,uBAAuB;wBACpC,SAAS,EAAE,CAAC,uBAAuB,CAAC;;IAEpC,oBAAA,IAAI,EAAE,EAAE,oBAAoB,EAAE,MAAM,EAAE;wBACtC,eAAe,EAAEC,0BAAuB,CAAC,MAAM;qBAChD,CAAA;2GAMC,IAAI,EAAA,CAAA;0BAFHC,cAAW;2BAAC,OAAO,CAAA;;0BACnBC,QAAK;oBAGG,IAAI,EAAA,CAAA;0BAAZA,QAAK;oBACG,UAAU,EAAA,CAAA;0BAAlBA,QAAK;;;IEjCR;IACA,IAAI,QAAQ,GAAG,CAAC,CAAC;AAejB,QAAA,sBAAA,kBAAA,YAAA;IAbA,IAAA,SAAA,sBAAA,GAAA;IAeW,QAAA,IAAU,CAAA,UAAA,GAAY,KAAK,CAAC;;IAGrC,QAAA,IAAA,CAAA,QAAQ,GAAG,6BAA8B,GAAA,EAAE,QAAU,CAAC;IACtD,QAAA,IAAA,CAAA,UAAU,GAAG,+BAAA,GAAgC,QAAU,CAAC;SACzD;;;iKAPY,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAAZ,aAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;0IAAtB,sBAAsB,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,QAAA,EAAAA,aAAA,EAAA,QAAA,ECnBnC,onBAyBA,EDdc,MAAA,EAAA,CAAA,srBAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAa,aAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,MAAA,EAAA,YAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA;YACVC,kBAAO,CAAC,YAAY,EAAE;IACpB,YAAAC,gBAAK,CAAC,MAAM,EAAEC,gBAAK,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,CAAC;IAC5D,YAAAD,gBAAK,CAAC,OAAO,EAAEC,gBAAK,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC9D,YAAAC,qBAAU,CAAC,gBAAgB,EAAEC,kBAAO,CAAC,MAAM,CAAC,CAAC;aAC9C,CAAC;SACH,EAAA,eAAA,EAAAlB,aAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;sHAEU,sBAAsB,EAAA,UAAA,EAAA,CAAA;sBAblCS,YAAS;IAAC,YAAA,IAAA,EAAA,CAAA;IACT,oBAAA,QAAQ,EAAE,sBAAsB;IAChC,oBAAA,WAAW,EAAE,iCAAiC;wBAC9C,SAAS,EAAE,CAAC,iCAAiC,CAAC;wBAC9C,eAAe,EAAEC,0BAAuB,CAAC,MAAM;IAC/C,oBAAA,UAAU,EAAE;4BACVI,kBAAO,CAAC,YAAY,EAAE;IACpB,4BAAAC,gBAAK,CAAC,MAAM,EAAEC,gBAAK,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,CAAC;IAC5D,4BAAAD,gBAAK,CAAC,OAAO,EAAEC,gBAAK,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC9D,4BAAAC,qBAAU,CAAC,gBAAgB,EAAEC,kBAAO,CAAC,MAAM,CAAC,CAAC;6BAC9C,CAAC;IACH,qBAAA;qBACF,CAAA;kCAEU,KAAK,EAAA,CAAA;0BAAbN,QAAK;oBACG,UAAU,EAAA,CAAA;0BAAlBA,QAAK;;;AEbR,QAAA,qBAAA,kBAAA,YAAA;IAAA,IAAA,SAAA,qBAAA,GAAA;;;;gKAAa,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAAZ,aAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;IAArB,mBAAA,qBAAA,CAAA,IAAA,GAAAA,aAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,qBAAqB,gGCRlC,8LAMA,EAAA,MAAA,EAAA,CAAA,6JAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAmB,aAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAX,aAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,WAAA,EAAA,cAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,YAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAAR,aAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;sHDEa,qBAAqB,EAAA,UAAA,EAAA,CAAA;sBANjCS,YAAS;IAAC,YAAA,IAAA,EAAA,CAAA;IACT,oBAAA,QAAQ,EAAE,qBAAqB;IAC/B,oBAAA,WAAW,EAAE,gCAAgC;wBAC7C,SAAS,EAAE,CAAC,gCAAgC,CAAC;wBAC7C,eAAe,EAAEC,0BAAuB,CAAC,MAAM;qBAChD,CAAA;kCAEU,IAAI,EAAA,CAAA;0BAAZE,QAAK;;;AEWR,QAAA,KAAA,kBAAA,YAAA;IAAA,IAAA,SAAA,KAAA,GAAA;SAOC;QAAA,OAAA,KAAA,CAAA;IAAA,CAAA,EAAA;;QCzBY,eAAe,GAAG,IAAIQ,iBAAc,CAAS,gBAAgB;;ICG1E,IAAA,SAAA,kBAAA,YAAA;IAAA,IAAA,SAAA,SAAA,GAAA;;IACE,IAAA,MAAA,CAAA,cAAA,CAAI,SAAY,CAAA,SAAA,EAAA,cAAA,EAAA;IAAhB,QAAA,GAAA,EAAA,YAAA;IACE,YAAA,OAAO,MAAM,CAAC;aACf;;;IAAA,KAAA,CAAA,CAAA;;;oJAHU,SAAS,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAApB,aAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;IAAT,mBAAA,SAAA,CAAA,KAAA,GAAAA,aAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAAA,aAAA,EAAA,IAAA,EAAA,SAAS,cAFR,MAAM,EAAA,CAAA,CAAA;sHAEP,SAAS,EAAA,UAAA,EAAA,CAAA;sBAHrBK,aAAU;IAAC,YAAA,IAAA,EAAA,CAAA;IACV,oBAAA,UAAU,EAAE,MAAM;qBACnB,CAAA;;;;;;;;;;;;;;;;;;;;;;ICYD,IAAA,4BAAA,kBAAA,YAAA;IAYE,IAAA,SAAA,4BAAA,CACU,QAAkB,EAClB,UAAmC,EACnC,SAAoB,EAAA;IAFpB,QAAA,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAU;IAClB,QAAA,IAAU,CAAA,UAAA,GAAV,UAAU,CAAyB;IACnC,QAAA,IAAS,CAAA,SAAA,GAAT,SAAS,CAAW;IAd9B,QAAA,IAAA,CAAA,OAAO,GAAW,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;IAChE,QAAA,IAAc,CAAA,cAAA,GAAG,KAAK,CAAC;IAKN,QAAA,IAAA,CAAA,kBAAkB,GAAG,IAAIgB,YAAO,EAAQ,CAAC;IACzC,QAAA,IAAA,CAAA,mBAAmB,GAAG,IAAIA,YAAO,EAAQ,CAAC;YAClD,IAAA,CAAA,UAAU,GAAG,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,CAAC;YACjD,IAAA,CAAA,SAAS,GAAG,IAAI,CAAC,mBAAmB,CAAC,SAAS,EAAE,CAAC;SAMtD;IAEJ,IAAA,4BAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;IACE,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YAC1E,IAAI,CAAC,2BAA2B,EAAE,CAAC;YACnC,IAAI,CAAC,4BAA4B,EAAE,CAAC;IACpC,QAAA,IAAI,CAAC,sBAAsB,GAAGC,WAAQ,CAAC,MAAM,CAAC;IAC5C,YAAA,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;gBAC/E,MAAM,EAAE,IAAI,CAAC,QAAQ;IACtB,SAAA,CAAC,CAAC;SACJ,CAAA;IAEO,IAAA,4BAAA,CAAA,SAAA,CAAA,2BAA2B,GAA3B,YAAA;YAAA,IAOP,KAAA,GAAA,IAAA,CAAA;YANC,IAAI,IAAI,CAAC,eAAe,EAAE;IACxB,YAAA,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC,oBAAoB,EAAE,YAAA;IAC1D,gBAAA,KAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC;IAC/B,gBAAA,KAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,CAAC;IACrC,aAAC,CAAC,CAAC;IACJ,SAAA;SACF,CAAA;IAEO,IAAA,4BAAA,CAAA,SAAA,CAAA,4BAA4B,GAA5B,YAAA;YAAA,IAOP,KAAA,GAAA,IAAA,CAAA;YANC,IAAI,IAAI,CAAC,eAAe,EAAE;IACxB,YAAA,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC,qBAAqB,EAAE,YAAA;IAC3D,gBAAA,KAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,CAAC;IAChC,gBAAA,KAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE,CAAC;IACtC,aAAC,CAAC,CAAC;IACJ,SAAA;SACF,CAAA;QAEK,4BAAK,CAAA,SAAA,CAAA,KAAA,GAAL,UAAM,IAAU,EAAA;;;;;;4BACd,eAAe,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IACvE,wBAAA,IAAA,CAAA,eAAe,EAAf,OAAe,CAAA,CAAA,YAAA,CAAA,CAAA,CAAA;IACjB,wBAAA,OAAA,CAAA,CAAA,YAAM,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA,CAAA;;IAAnC,wBAAA,EAAA,CAAA,IAAA,EAAmC,CAAC;;;;;IAEvC,SAAA,CAAA,CAAA;SAAA,CAAA;IAOD,IAAA,4BAAA,CAAA,SAAA,CAAA,aAAa,GAAb,YAAA;;IAEE,QAAA,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;SAC7D,CAAA;;;uKA7DU,4BAA4B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAtB,aAAA,CAAA,QAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,aAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAuB,SAAA,EAAA,CAAA,EAAA,MAAA,EAAAvB,aAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;IAA5B,mBAAA,4BAAA,CAAA,IAAA,GAAAA,aAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,4BAA4B,EAJ5B,QAAA,EAAA,6BAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,cAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,EAAA,UAAA,EAAA,EAAA,gBAAA,EAAA,OAAA,EAAA,EAAA,EAAA,SAAA,EAAA,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,4BAA4B,EAAE,CAAC,qCCZ5E,gHAGA,EAAA,MAAA,EAAA,CAAA,0CAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAQ,aAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,mBAAA,EAAA,2BAAA,EAAA,0BAAA,EAAA,kCAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;sHDaa,4BAA4B,EAAA,UAAA,EAAA,CAAA;sBARxCC,YAAS;IAAC,YAAA,IAAA,EAAA,CAAA;IACT,oBAAA,QAAQ,EAAE,6BAA6B;IACvC,oBAAA,WAAW,EAAE,wCAAwC;wBACrD,SAAS,EAAE,CAAC,wCAAwC,CAAC;wBACrD,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAA8B,4BAAA,EAAE,CAAC;;IAE1E,oBAAA,IAAI,EAAE,EAAE,kBAAkB,EAAE,OAAO,EAAE;qBACtC,CAAA;uKAIU,MAAM,EAAA,CAAA;0BAAdG,QAAK;oBAuDN,aAAa,EAAA,CAAA;0BAFZY,eAAY;2BAAC,cAAc,CAAA;;0BAC3BA,eAAY;2BAAC,iBAAiB,CAAA;;;AE3DrBC,gCAIX;IAJD,CAAA,UAAY,UAAU,EAAA;IACpB,IAAA,UAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;IACT,IAAA,UAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;IACT,IAAA,UAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;IACX,CAAC,EAJWA,kBAAU,KAAVA,kBAAU,GAIrB,EAAA,CAAA,CAAA,CAAA;AASD,QAAA,eAAA,kBAAA,YAAA;IA0DE,IAAA,SAAA,eAAA,CAAoB,UAAmC,EAAA;IAAnC,QAAA,IAAU,CAAA,UAAA,GAAV,UAAU,CAAyB;IAxDvD,QAAA,IAAA,CAAA,iBAAiB,GAAY,IAAI,CAAC;IAQlC,QAAA,IAAA,CAAA,WAAW,GAAY,KAAK,CAAC;IAWrB,QAAA,IAAW,CAAA,WAAA,GAAG,KAAK,CAAC;IAKpB,QAAA,IAAY,CAAA,YAAA,GAAG,KAAK,CAAC;IAuBpB,QAAA,IAAU,CAAA,UAAA,GAAY,KAAK,CAAC;IAErC,QAAA,IAAA,CAAA,IAAI,GAAiCA,kBAAU,CAAC,EAAE,CAAC;IAK3C,QAAA,IAAO,CAAA,OAAA,GAAG,KAAK,CAAC;SAEmC;IA9C3D,IAAA,MAAA,CAAA,cAAA,CACW,eAAgB,CAAA,SAAA,EAAA,kBAAA,EAAA;IAD3B,QAAA,GAAA,EAAA,YAAA;gBAEE,OAAO,IAAI,CAAC,UAAU,CAAC;aACxB;;;IAAA,KAAA,CAAA,CAAA;IAED,IAAA,MAAA,CAAA,cAAA,CACW,eAAU,CAAA,SAAA,EAAA,YAAA,EAAA;IADrB,QAAA,GAAA,EAAA,YAAA;gBAEE,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;aACrC;;;IAAA,KAAA,CAAA,CAAA;IAED,IAAA,MAAA,CAAA,cAAA,CACW,eAAU,CAAA,SAAA,EAAA,YAAA,EAAA;IADrB,QAAA,GAAA,EAAA,YAAA;gBAEE,OAAO,IAAI,CAAC,WAAW,CAAC;aACzB;;;IAAA,KAAA,CAAA,CAAA;IAED,IAAA,MAAA,CAAA,cAAA,CACW,eAAW,CAAA,SAAA,EAAA,aAAA,EAAA;IADtB,QAAA,GAAA,EAAA,YAAA;gBAEE,OAAO,IAAI,CAAC,YAAY,CAAC;aAC1B;;;IAAA,KAAA,CAAA,CAAA;IAED,IAAA,MAAA,CAAA,cAAA,CACI,eAAS,CAAA,SAAA,EAAA,WAAA,EAAA;IADb,QAAA,GAAA,EAAA,YAAA;gBAEE,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,UAAC,QAAQ,IAAK,OAAA,CAAC,CAAC,QAAQ,CAAA,EAAA,CAAC,CAAC;aACtE;;;IAAA,KAAA,CAAA,CAAA;IAED,IAAA,MAAA,CAAA,cAAA,CAAa,eAAc,CAAA,SAAA,EAAA,gBAAA,EAAA;IAA3B,QAAA,GAAA,EAAA,UAA4B,KAA4B,EAAA;IACtD,YAAA,IAAI,CAAC,iBAAiB,GAAG,KAAK,KAAK,GAAG,CAAC;IACvC,YAAA,IAAI,CAAC,iBAAiB,GAAG,KAAK,KAAK,GAAG,CAAC;IACvC,YAAA,IAAI,CAAC,iBAAiB,GAAG,KAAK,KAAK,GAAG,CAAC;IACvC,YAAA,IAAI,CAAC,iBAAiB,GAAG,KAAK,KAAK,GAAG,CAAC;aACxC;;;IAAA,KAAA,CAAA,CAAA;IACD,IAAA,MAAA,CAAA,cAAA,CAAa,eAAa,CAAA,SAAA,EAAA,eAAA,EAAA;IAA1B,QAAA,GAAA,EAAA,UAA2B,KAAc,EAAA;IACvC,YAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;aAC1B;;;IAAA,KAAA,CAAA,CAAA;IAeD,IAAA,eAAA,CAAA,SAAA,CAAA,kBAAkB,GAAlB,YAAA;IACE,QAAA,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,WAAW,CAAC;YAC3D,IAAI,IAAI,CAAC,cAAc,KAAK,SAAS,IAAI,IAAI,CAAC,OAAO,EAAE;IACrD,YAAA,IAAI,CAAC,WAAW;IACd,gBAAA,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,UAAU,KAAK,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC;IACjF,YAAA,IAAI,CAAC,YAAY,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC;IACvC,SAAA;SACF,CAAA;;;0JAnEU,eAAe,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAzB,aAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAAA,aAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;IAAf,mBAAA,eAAA,CAAA,IAAA,GAAAA,aAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,eAAe,kuBAqDZ,aAAa,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EACb,aAAa,EAAU,WAAA,EAAA,IAAA,EAAA,IAAA,EAAA0B,aAAU,wCCjFjD,6BACA,EAAA,MAAA,EAAA,CAAA,2/KAAA,CAAA,EAAA,eAAA,EAAA1B,aAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;sHD0Ba,eAAe,EAAA,UAAA,EAAA,CAAA;sBAP3BS,YAAS;IAAC,YAAA,IAAA,EAAA,CAAA;;IAET,oBAAA,QAAQ,EAAE,2CAA2C;IACrD,oBAAA,WAAW,EAAE,yBAAyB;wBACtC,SAAS,EAAE,CAAC,yBAAyB,CAAC;wBACtC,eAAe,EAAEC,0BAAuB,CAAC,MAAM;qBAChD,CAAA;gHAGC,iBAAiB,EAAA,CAAA;0BADhBC,cAAW;2BAAC,wBAAwB,CAAA;oBAGrC,iBAAiB,EAAA,CAAA;0BADhBA,cAAW;2BAAC,wBAAwB,CAAA;oBAGrC,iBAAiB,EAAA,CAAA;0BADhBA,cAAW;2BAAC,wBAAwB,CAAA;oBAGrC,iBAAiB,EAAA,CAAA;0BADhBA,cAAW;2BAAC,wBAAwB,CAAA;oBAGrC,WAAW,EAAA,CAAA;0BADVA,cAAW;2BAAC,mBAAmB,CAAA;oBAIrB,gBAAgB,EAAA,CAAA;0BAD1BA,cAAW;2BAAC,gBAAgB,CAAA;oBAMlB,UAAU,EAAA,CAAA;0BADpBA,cAAW;2BAAC,iBAAiB,CAAA;oBAMnB,UAAU,EAAA,CAAA;0BADpBA,cAAW;2BAAC,iBAAiB,CAAA;oBAMnB,WAAW,EAAA,CAAA;0BADrBA,cAAW;2BAAC,kBAAkB,CAAA;oBAM3B,SAAS,EAAA,CAAA;0BADZA,cAAW;2BAAC,OAAO,CAAA;oBAKP,cAAc,EAAA,CAAA;0BAA1BC,QAAK;oBAMO,aAAa,EAAA,CAAA;0BAAzBA,QAAK;oBAIN,UAAU,EAAA,CAAA;0BADTA,QAAK;oBAEG,MAAM,EAAA,CAAA;0BAAdA,QAAK;oBACG,UAAU,EAAA,CAAA;0BAAlBA,QAAK;oBAEN,IAAI,EAAA,CAAA;0BADHA,QAAK;oBAGuB,IAAI,EAAA,CAAA;0BAAhCe,eAAY;2BAAC,aAAa,CAAA;oBAE3B,cAAc,EAAA,CAAA;0BADbA,eAAY;oBAAC,IAAA,EAAA,CAAA,aAAa,EAAE,EAAE,IAAI,EAAED,aAAU,EAAE,CAAA;;;IEvEnD;;;IAGG;AAEH,QAAA,qBAAA,kBAAA,YAAA;IAAA,IAAA,SAAA,qBAAA,GAAA;;QACE,qBAAM,CAAA,SAAA,CAAA,MAAA,GAAN,UAAO,QAAgC,EAAA;IACrC,QAAA,OAAO,OAAO,cAAc,KAAK,WAAW,GAAG,IAAI,GAAG,IAAI,cAAc,CAAC,QAAQ,CAAC,CAAC;SACpF,CAAA;;;gKAHU,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA1B,aAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;IAArB,mBAAA,qBAAA,CAAA,KAAA,GAAAA,aAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAAA,aAAA,EAAA,IAAA,EAAA,qBAAqB,cADR,MAAM,EAAA,CAAA,CAAA;sHACnB,qBAAqB,EAAA,UAAA,EAAA,CAAA;sBADjCK,aAAU;uBAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAA;;;ACPlC,QAAA,qBAAA,kBAAA,YAAA;QAME,SAAoB,qBAAA,CAAA,sBAA6C,EAAU,IAAY,EAAA;YAAvF,IAEC,KAAA,GAAA,IAAA,CAAA;IAFmB,QAAA,IAAsB,CAAA,sBAAA,GAAtB,sBAAsB,CAAuB;IAAU,QAAA,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAQ;IAF/E,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,OAAO,EAAiD,CAAC;YAGtF,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,UAAC,OAAO,IAAK,OAAA,KAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAA,EAAA,CAAC,CAAC;SAC7F;IAED,IAAA,qBAAA,CAAA,SAAA,CAAA,OAAO,GAAP,UACE,YAA2C,EAC3C,MAA4C,EAAA;YAF9C,IAcC,KAAA,GAAA,IAAA,CAAA;IAVC,QAAA,IAAM,OAAO,GAAG,YAAY,YAAYqB,aAAU,GAAG,YAAY,CAAC,aAAa,GAAG,YAAY,CAAC;YAC/F,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;gBACvC,IAAI,IAAI,CAAC,QAAQ,EAAE;;IAEjB,gBAAA,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,YAAA;IAC1B,oBAAA,KAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACjC,iBAAC,CAAC,CAAC;IACJ,aAAA;gBACD,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC5C,SAAA;SACF,CAAA;IAED,IAAA,qBAAA,CAAA,SAAA,CAAA,WAAW,GAAX,YAAA;YAAA,IAQC,KAAA,GAAA,IAAA,CAAA;YAPC,IAAI,IAAI,CAAC,QAAQ,EAAE;;IAEjB,YAAA,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,YAAA;IAC1B,gBAAA,KAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;IAC7B,aAAC,CAAC,CAAC;IACJ,SAAA;IACD,QAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;SAC9B,CAAA;QAED,qBAAS,CAAA,SAAA,CAAA,SAAA,GAAT,UAAU,YAA2C,EAAA;YAArD,IAWC,KAAA,GAAA,IAAA,CAAA;IAVC,QAAA,IAAM,OAAO,GAAG,YAAY,YAAYA,aAAU,GAAG,YAAY,CAAC,aAAa,GAAG,YAAY,CAAC;YAC/F,IAAI,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;gBACtC,IAAI,IAAI,CAAC,QAAQ,EAAE;;IAEjB,gBAAA,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,YAAA;IAC1B,oBAAA,KAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IACnC,iBAAC,CAAC,CAAC;IACJ,aAAA;IACD,YAAA,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACvC,SAAA;SACF,CAAA;QAEO,qBAAY,CAAA,SAAA,CAAA,YAAA,GAAZ,UAAa,OAA8B,EAAA;YAA3C,IAOP,KAAA,GAAA,IAAA,CAAA;IANC,QAAA,OAAO,CAAC,OAAO,CAAC,UAAC,KAAK,EAAA;IACpB,YAAA,IAAM,MAAM,GAAG,KAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACvD,YAAA,IAAI,MAAM,EAAE;oBACV,MAAM,CAAC,KAAK,CAAC,CAAC;IACf,aAAA;IACH,SAAC,CAAC,CAAC;SACJ,CAAA;;;gKAxDU,qBAAqB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAE,qBAAA,EAAA,EAAA,EAAA,KAAA,EAAA5B,aAAA,CAAA,MAAA,EAAA,CAAA,EAAA,MAAA,EAAAA,aAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;IAArB,mBAAA,qBAAA,CAAA,KAAA,GAAAA,aAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAAA,aAAA,EAAA,IAAA,EAAA,qBAAqB,cADR,MAAM,EAAA,CAAA,CAAA;sHACnB,qBAAqB,EAAA,UAAA,EAAA,CAAA;sBADjCK,aAAU;uBAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAA;;;ACGlC,QAAA,eAAA,kBAAA,YAAA;IACE,IAAA,SAAA,eAAA,CAAoB,SAAoB,EAAA;IAApB,QAAA,IAAS,CAAA,SAAA,GAAT,SAAS,CAAW;SAAI;IAE5C,IAAA,eAAA,CAAA,SAAA,CAAA,OAAO,GAAP,YAAA;IACE,QAAA,IAAM,kBAAkB,GAAG,mBAAmB,CAAC;IAC/C,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC,OAAO,CAAC;SAC3E,CAAA;IAED,IAAA,eAAA,CAAA,SAAA,CAAA,iBAAiB,GAAjB,YAAA;YACE,IAAM,KAAK,GAAG,cAAe,GAAAN,sBAAiB,CAAC,WAAW,CAAC,MAAM,GAAA,GAAG,CAAC;IACrE,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC;SAC9D,CAAA;;;0JAXU,eAAe,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAwB,SAAA,EAAA,CAAA,EAAA,MAAA,EAAAvB,aAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;IAAf,mBAAA,eAAA,CAAA,KAAA,GAAAA,aAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAAA,aAAA,EAAA,IAAA,EAAA,eAAe,cAFd,MAAM,EAAA,CAAA,CAAA;sHAEP,eAAe,EAAA,UAAA,EAAA,CAAA;sBAH3BK,aAAU;IAAC,YAAA,IAAA,EAAA,CAAA;IACV,oBAAA,UAAU,EAAE,MAAM;qBACnB,CAAA;;;;;;;;;;;;;;;;;;;;;;ICkCD,IAAA,qBAAA,kBAAA,YAAA;IAyEE,IAAA,SAAA,qBAAA,CACU,QAAkB,EAClB,UAAmC,EACnC,QAAmB,EACnB,IAAY,EACZ,qBAA4C,EAC5C,wBAAkD,EAClD,SAAoB,EACpB,QAAyB,EAAA;YARnC,IAYC,KAAA,GAAA,IAAA,CAAA;IAXS,QAAA,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAU;IAClB,QAAA,IAAU,CAAA,UAAA,GAAV,UAAU,CAAyB;IACnC,QAAA,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAW;IACnB,QAAA,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAQ;IACZ,QAAA,IAAqB,CAAA,qBAAA,GAArB,qBAAqB,CAAuB;IAC5C,QAAA,IAAwB,CAAA,wBAAA,GAAxB,wBAAwB,CAA0B;IAClD,QAAA,IAAS,CAAA,SAAA,GAAT,SAAS,CAAW;IACpB,QAAA,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAiB;IAzEnC,QAAA,IAAA,CAAA,OAAO,GAAW,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;IAC/C,QAAA,IAA6B,CAAA,6BAAA,GAAG,GAAG,CAAC;IA0B7C,QAAA,IAAe,CAAA,eAAA,GAAG,KAAK,CAAC;IACxB,QAAA,IAAc,CAAA,cAAA,GAAwB,EAAE,CAAC;IACzC,QAAA,IAAA,CAAA,YAAY,GAAG,YAAA,GAAQ,CAAC;IAGxB,QAAA,IAAe,CAAA,eAAA,GAAG,KAAK,CAAC;IAEf,QAAA,IAAA,CAAA,kBAAkB,GAAG,IAAIgB,YAAO,EAAQ,CAAC;YACjD,IAAA,CAAA,UAAU,GAAG,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,CAAC;IACzC,QAAA,IAAA,CAAA,mBAAmB,GAAG,IAAIA,YAAO,EAAQ,CAAC;YAClD,IAAA,CAAA,SAAS,GAAG,IAAI,CAAC,mBAAmB,CAAC,SAAS,EAAE,CAAC;IAClD,QAAA,IAAA,CAAA,cAAc,GAAG,IAAIA,YAAO,EAAQ,CAAC;IACrC,QAAA,IAAe,CAAA,eAAA,GAAG,IAAI,CAAC,cAAc;IAC1C,aAAA,YAAY,EAAE;iBACd,IAAI,CAACQ,sBAAY,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC,CAAC;IAelD,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAIR,YAAO,EAAE,CAAC;IAOjC,QAAA,IAAU,CAAA,UAAA,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAACS,eAAK,EAAE,CAAC,CAAC;YAuUnC,IAAA,CAAA,kBAAkB,GAA2C;gBAC5E,oBAAoB,EAAE,YAAM,EAAA,OAAA,CAAC,KAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAA,EAAA;IAC3D,YAAA,kBAAkB,EAAE,YAAA;;oBAClB,OAAA,CAAC,KAAI,CAAC,eAAe,CAAC,aAAa,EAAE,CAAA,EAAA,GAAA,KAAI,CAAC,YAAY,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,aAAa,CAAC,CAAC,MAAM,CAC3E,UAAC,OAAO,IAAK,OAAA,OAAO,KAAK,SAAS,CAAA,EAAA,CACnC,CAAA;iBAAA;gBACH,qBAAqB,EAAE,YAAM,EAAA,OAAA,CAAC,KAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAA,EAAA;aACpE,CAAC;YAlUA,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACzB,IAAI,CAAC,qBAAqB,EAAE,CAAC;SAC9B;IApFD,IAAA,MAAA,CAAA,cAAA,CACI,qBAAoB,CAAA,SAAA,EAAA,sBAAA,EAAA;IADxB,QAAA,GAAA,EAAA,YAAA;;IAEE,YAAA,OAAO,CAAC,EAAC,CAAA,EAAA,GAAA,IAAI,CAAC,MAAM,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,aAAa,CAAA,CAAC;aACrC;;;IAAA,KAAA,CAAA,CAAA;IAOD,IAAA,MAAA,CAAA,cAAA,CAAI,qBAAc,CAAA,SAAA,EAAA,gBAAA,EAAA;IAAlB,QAAA,GAAA,EAAA,UAAmB,QAAiB,EAAA;IAClC,YAAA,IAAI,CAAC,UAAU,CAAC,OAAO,GAAG,CAAC,QAAQ,CAAC;aACrC;;;IAAA,KAAA,CAAA,CAAA;IAsCD,IAAA,MAAA,CAAA,cAAA,CAAY,qBAAgB,CAAA,SAAA,EAAA,kBAAA,EAAA;IAA5B,QAAA,GAAA,EAAA,YAAA;IACE,YAAA,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE;IAC3B,gBAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,sCAAsC,EAAE,CAAC;IACxE,aAAA;gBACD,OAAO,IAAI,CAAC,iBAAiB,CAAC;aAC/B;;;IAAA,KAAA,CAAA,CAAA;IAED,IAAA,MAAA,CAAA,cAAA,CAAY,qBAAoB,CAAA,SAAA,EAAA,sBAAA,EAAA;IAAhC,QAAA,GAAA,EAAA,YAAA;IACE,YAAA,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE;IAC/B,gBAAA,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,sCAAsC,EAAE,CAAC;IAC5E,aAAA;gBACD,OAAO,IAAI,CAAC,qBAAqB,CAAC;aACnC;;;IAAA,KAAA,CAAA,CAAA;IAGD,IAAA,MAAA,CAAA,cAAA,CACI,qBAAS,CAAA,SAAA,EAAA,WAAA,EAAA;IADb,QAAA,GAAA,EAAA,YAAA;IAEE,YAAA,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,QAAQ,CAAC;aACxC;;;IAAA,KAAA,CAAA,CAAA;IAkBD,IAAA,qBAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;IACE,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YAC1E,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACxB,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC5B,IAAI,CAAC,2BAA2B,EAAE,CAAC;YACnC,IAAI,CAAC,4BAA4B,EAAE,CAAC;YACpC,IAAI,CAAC,mCAAmC,EAAE,CAAC;IAC3C,QAAA,IAAI,CAAC,sBAAsB,GAAGR,WAAQ,CAAC,MAAM,CAAC;IAC5C,YAAA,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;gBAC/E,MAAM,EAAE,IAAI,CAAC,QAAQ;IACtB,SAAA,CAAC,CAAC;SACJ,CAAA;IAEO,IAAA,qBAAA,CAAA,SAAA,CAAA,mCAAmC,GAAnC,YAAA;YAAA,IAgBP,KAAA,GAAA,IAAA,CAAA;IAfC,QAAA,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,CAAC,sBAAsB,EAAE;gBACzES,UAAK,CAAC,IAAI,CAAC,kBAAkB,EAAE,IAAI,CAAC,eAAe,CAAC;IACjD,iBAAA,IAAI,CAACC,mBAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC9B,iBAAA,SAAS,CAAC,YAAA;;IAET,gBAAA,UAAU,CAAC,YAAA;wBACT,IAAM,OAAO,GAAG,KAAI,CAAC,UAAU,CAAC,aAAa,CAAC,qBAAqB,EAAE,CAAC;wBACtE,IAAM,QAAQ,GAAG,KAAI,CAAC,SAAS,CAAC,YAAY,CAAC,QAAQ,CAAC,eAAe,CAAC;wBACtE,IAAM,KAAK,GAAG,QAAQ,CAAC,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC;IACnD,oBAAA,KAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAI,CAAC,eAAe,EAAE,KAAK,EAAK,OAAO,CAAC,GAAG,GAAA,IAAI,CAAC,CAAC;IACxE,oBAAA,KAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAI,CAAC,eAAe,EAAE,MAAM,EAAK,OAAO,CAAC,IAAI,GAAA,IAAI,CAAC,CAAC;IAC1E,oBAAA,KAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAI,CAAC,eAAe,EAAE,OAAO,EAAK,KAAK,GAAA,IAAI,CAAC,CAAC;IACtE,iBAAC,CAAC,CAAC;IACL,aAAC,CAAC,CAAC;IACN,SAAA;SACF,CAAA;IAEO,IAAA,qBAAA,CAAA,SAAA,CAAA,gBAAgB,GAAhB,YAAA;IACN,QAAA,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,aAAa;gBAAE,OAAO;YAC/C,IAAI,CAAC,sBAAsB,EAAE,CAAC;YAC9B,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC3B,IAAI,CAAC,sBAAsB,EAAE,CAAC;SAC/B,CAAA;IAEO,IAAA,qBAAA,CAAA,SAAA,CAAA,oBAAoB,GAApB,YAAA;IACN,QAAA,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE;gBAC1B,IAAI,CAAC,4BAA4B,CAAC,IAAI,CAAC,MAAM,CAAC,2BAA2B,CAAC,CAAC;;IAE3E,YAAA,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,wBAAwB,CAAC,CAAC;IACvF,SAAA;SACF,CAAA;QAEO,qBAA4B,CAAA,SAAA,CAAA,4BAAA,GAA5B,UAA6B,2BAAwD,EAAA;YAArF,IAWP,KAAA,GAAA,IAAA,CAAA;IAVC,QAAA,IAAI,CAAC,2BAA2B;gBAAE,OAAO;IACzC,QAAA,2BAA2B,CAAC,IAAI,CAACA,mBAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,UAAC,KAAK,EAAA;IAC3E,YAAA,IAAI,KAAI,CAAC,YAAY,CAAC,WAAW,EAAE;IACjC,gBAAA,KAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,CAAC;IACnC,gBAAA,KAAI,CAAC,YAAY,CAAC,UAAU,EAAE,CAAC;oBAC/B,KAAI,CAAC,qBAAqB,EAAE,CAAC;IAC9B,aAAA;gBACD,KAAI,CAAC,YAAY,CAAC,YAAY,CAAC,KAAK,EAAE,KAAI,CAAC,wBAAwB,CAAC,CAAC;gBACrE,KAAI,CAAC,wBAAwB,EAAE,CAAC;IAClC,SAAC,CAAC,CAAC;SACJ,CAAA;IAEO,IAAA,qBAAA,CAAA,SAAA,CAAA,sBAAsB,GAAtB,YAAA;YAAA,IAcP,KAAA,GAAA,IAAA,CAAA;IAbC,QAAA,IAAM,sBAAsB,GAAG,MAAM,IAAI,WAAW,CAAC,SAAS,CAAC;IAC/D,QAAA,IAAI,sBAAsB;gBAAE,OAAO;YACnC,IAAI,CAAC,UAAU,CAAC,gBAAgB,EAAE,CAAC,IAAI,CAAC,UAAC,aAAa,EAAA;gBACpD,KAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;gBACxD,KAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;IAC9D,YAAA,IAAI,KAAI,CAAC,MAAM,CAAC,MAAM,KAAK,QAAQ,EAAE;IACnC,gBAAA,KAAI,CAAC,QAAQ,CAAC,QAAQ,CACpB,aAAa,EACb,YAAY,EACZ,iBAAiB,GAAGjC,sBAAiB,CAAC,2BAA2B,CAClE,CAAC;IACH,aAAA;IACH,SAAC,CAAC,CAAC;SACJ,CAAA;IAEO,IAAA,qBAAA,CAAA,SAAA,CAAA,sBAAsB,GAAtB,YAAA;YAAA,IAOP,KAAA,GAAA,IAAA,CAAA;IANC,QAAA,IAAM,eAAe,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,OAAO,CAAc,gBAAgB,CAAC,CAAC;IAC7F,QAAA,IAAI,CAAC,eAAe;gBAAE,OAAO;;IAE7B,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,YAAA;IACnB,YAAA,KAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;IACrD,SAAC,CAAC,CAAC;SACJ,CAAA;IAED,IAAA,qBAAA,CAAA,SAAA,CAAA,eAAe,GAAf,YAAA;YACE,IAAI,IAAI,CAAC,mBAAmB,EAAE;IAC5B,YAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,UAAC,SAAS,EAAA,EAAK,OAAA,SAAS,CAAC,aAAa,CAAvB,EAAuB,CAAC,CAAC;IAC5F,SAAA;YACD,IAAI,CAAC,wBAAwB,EAAE,CAAC;SACjC,CAAA;IAEO,IAAA,qBAAA,CAAA,SAAA,CAAA,wBAAwB,GAAxB,YAAA;YACN,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC5B,IAAI,CAAC,uBAAuB,EAAE,CAAC;SAChC,CAAA;IAEO,IAAA,qBAAA,CAAA,SAAA,CAAA,mBAAmB,GAAnB,YAAA;YAAA,IAKP,KAAA,GAAA,IAAA,CAAA;IAJC,QAAA,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,aAAa,EAAE,UAAC,KAAK,EAAA;IACtE,YAAA,IAAA,KAAA,MAAyB,CAAA,CAAC,iBAAiB,EAAK,KAAK,CAAC,WAAW,CAAC,MAAM,GAAI,IAAA,CAAC,IAAA,EAA5E,QAAQ,QAAA,EAAE,UAAU,QAAwD,CAAC;IACpF,YAAA,KAAI,CAAC,SAAS,CAAC,KAAI,CAAC,UAAU,CAAC,aAAa,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;IACtE,SAAC,CAAC,CAAC;SACJ,CAAA;IAEO,IAAA,qBAAA,CAAA,SAAA,CAAA,oBAAoB,GAApB,YAAA;YAAA,IAUP,KAAA,GAAA,IAAA,CAAA;IATC,QAAA,IAAM,aAAa,GAAG,IAAI,CAAC,2BAA2B,EAAE,CAAC;IACzD,QAAA,IAAI,aAAa,EAAE;gBACjB,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,OAAO,CAAC,UAAC,EAAuB,EAAA;IAAvB,gBAAA,IAAA,EAAA,GAAA,aAAuB,EAAtB,OAAO,GAAA,EAAA,CAAA,CAAA,CAAA,EAAE,YAAY,GAAA,EAAA,CAAA,CAAA,CAAA,CAAA;oBACrE,IAAM,eAAe,GAAG,aAAa,CAAC,aAAa,CAAc,OAAO,CAAC,CAAC;IAC1E,gBAAA,IAAI,eAAe,EAAE;wBACnB,KAAI,CAAC,SAAS,CAAC,eAAe,EAAE,YAAY,EAAE,CAAC,CAAC;IACjD,iBAAA;IACH,aAAC,CAAC,CAAC;IACJ,SAAA;SACF,CAAA;IAEO,IAAA,qBAAA,CAAA,SAAA,CAAA,2BAA2B,GAA3B,YAAA;YAAA,IAOP,KAAA,GAAA,IAAA,CAAA;YANC,IAAI,IAAI,CAAC,eAAe,EAAE;IACxB,YAAA,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC,oBAAoB,EAAE,YAAA;IAC1D,gBAAA,KAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC;IAC/B,gBAAA,KAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,CAAC;IACrC,aAAC,CAAC,CAAC;IACJ,SAAA;SACF,CAAA;IAEO,IAAA,qBAAA,CAAA,SAAA,CAAA,4BAA4B,GAA5B,YAAA;YAAA,IAOP,KAAA,GAAA,IAAA,CAAA;YANC,IAAI,IAAI,CAAC,eAAe,EAAE;IACxB,YAAA,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC,qBAAqB,EAAE,YAAA;IAC3D,gBAAA,KAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,CAAC;IAChC,gBAAA,KAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE,CAAC;IACtC,aAAC,CAAC,CAAC;IACJ,SAAA;SACF,CAAA;QAED,qBAAW,CAAA,SAAA,CAAA,WAAA,GAAX,UAAY,cAAwC,EAAA;YAClD,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,cAAc,IAAI,CAAC,CAAC,CAAC;SAClD,CAAA;QAED,qBAAc,CAAA,SAAA,CAAA,cAAA,GAAd,UAAe,cAAwC,EAAA;YACrD,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,cAAc,IAAI,CAAC,CAAC,CAAC;SACrD,CAAA;QAEK,qBAAK,CAAA,SAAA,CAAA,KAAA,GAAL,UAAM,IAAU,EAAA;;oBA0BrB,KAAA,GAAA,IAAA,CAAA;;;;IAzBC,wBAAA,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;gCACzB,OAAO,CAAA,CAAA,YAAA,CAAA;IACR,yBAAA;kCACG,CAAC,IAAI,CAAC,eAAe,IAAI,CAAC,IAAI,CAAC,eAAe,CAAA,EAA9C,OAA8C,CAAA,CAAA,YAAA,CAAA,CAAA,CAAA;;;IAGhD,wBAAA,YAAY,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;4BACzC,OAAM,CAAA,CAAA,YAAA,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA,CAAA;;IAAxC,wBAAA,EAAA,CAAA,IAAA,EAAwC,CAAC;4BACzC,OAAO,CAAA,CAAA,YAAA,CAAA;;;;;4BAMT,IAAI,CAAC,iBAAiB,EAAE,CAAC;IACzB,wBAAA,OAAA,CAAA,CAAA,aAAO,IAAI,OAAO,CAAO,UAAC,OAAO,EAAA;IAC/B,gCAAA,KAAI,CAAC,YAAY,GAAG,YAAA,EAAW,OAAAK,WAAA,CAAA,KAAA,EAAA,KAAA,CAAA,EAAA,KAAA,CAAA,EAAA,YAAA;;;wDAC7B,OAAM,CAAA,CAAA,YAAA,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA,CAAA;;IAAxC,gDAAA,EAAA,CAAA,IAAA,EAAwC,CAAC;IACzC,gDAAA,OAAO,EAAE,CAAC;;;;qCACX,CAAA,CAAA,EAAA,CAAC;IACF,gCAAA,KAAI,CAAC,qBAAqB,GAAG,UAAU,CACrC,KAAI,CAAC,YAAY,EACjB,qBAAqB,CAAC,yBAAyB,CAChD,CAAC;IACJ,6BAAC,CAAC,CAAC,CAAA;;;IACJ,SAAA,CAAA,CAAA;SAAA,CAAA;IAID,IAAA,qBAAA,CAAA,SAAA,CAAA,aAAa,GAAb,YAAA;;IAEE,QAAA,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;SAC7D,CAAA;QAID,qBAAe,CAAA,SAAA,CAAA,eAAA,GAAf,UAAgB,cAAsB,EAAA;IACpC,QAAA,IAAI,CAAC,qBAAqB,CAAC,cAAc,CAAC,CAAC;SAC5C,CAAA;IAID,IAAA,qBAAA,CAAA,SAAA,CAAA,eAAe,GAAf,YAAA;IACE,QAAA,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;SAC/B,CAAA;QAEO,qBAAsB,CAAA,SAAA,CAAA,sBAAA,GAAtB,UAAuB,MAAe,EAAA;YAAtC,IAcP,KAAA,GAAA,IAAA,CAAA;IAbC,QAAA,IAAM,qBAAqB,GACzB,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,iBAAiB,EAAE,CAAC;IACtE,QAAA,IAAI,CAAC,qBAAqB;gBAAE,OAAO;YACnC,IAAM,KAAK,GAAG,YAAY,CAAC;IAC3B,QAAA,IAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC;IAC5D,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,YAAA;IACZ,YAAA,IAAI,MAAM,EAAE;IACV,gBAAA,IAAM,aAAa,GAAG,cAAc,CAAC,YAAY,CAAC;IAClD,gBAAA,KAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,cAAc,EAAE,KAAK,EAAK,aAAa,GAAI,IAAA,CAAC,CAAC;IACrE,aAAA;IAAM,iBAAA;oBACL,KAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;IAClD,aAAA;IACH,SAAC,CAAC,CAAC;SACJ,CAAA;QAEO,qBAAqB,CAAA,SAAA,CAAA,qBAAA,GAArB,UAAsB,cAAsB,EAAA;YAClD,IAAM,sBAAsB,GAAG,cAAc,GAAG,CAAC,IAAI,IAAI,CAAC,eAAe,CAAC;YAC1E,IAAM,qBAAqB,GAAG,cAAc,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC;YAC5E,IAAI,sBAAsB,IAAI,qBAAqB;gBAAE,OAAO;IAC5D,QAAA,IAAI,CAAC,eAAe,GAAG,cAAc,GAAG,CAAC,CAAC;IAC1C,QAAA,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAClD,QAAA,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,CAAC;SACzC,CAAA;IAEO,IAAA,qBAAA,CAAA,SAAA,CAAA,kBAAkB,GAAlB,UAAmB,cAAsB,EAAE,OAAgB,EAAA;IACjE,QAAA,IAAI,cAAc,IAAI,CAAC,IAAI,CAAC,OAAO;IAAE,YAAA,OAAO,CAAC,CAAC;YAC9C,IAAM,mCAAmC,GAAG,IAAI,CAAC,KAAK,CACpD,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,WAAW,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC,MAAM,CACjF,CAAC;YACF,OAAO,IAAI,CAAC,GAAG,CAAC,cAAc,GAAG,mCAAmC,EAAE,CAAC,CAAC,CAAC;SAC1E,CAAA;IAEO,IAAA,qBAAA,CAAA,SAAA,CAAA,SAAS,GAAT,UAAU,OAAgB,EAAE,QAAgB,EAAE,KAAa,EAAA;YAA3D,IAIP,KAAA,GAAA,IAAA,CAAA;YAHC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,YACZ,EAAA,OAAA,KAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE6B,sBAAmB,CAAC,QAAQ,CAAC,CAAA,EAAA,CAC/E,CAAC;SACH,CAAA;IAEO,IAAA,qBAAA,CAAA,SAAA,CAAA,cAAc,GAAd,UAAe,OAAgB,EAAE,KAAa,EAAE,SAAkB,EAAA;YAAlE,IAIP,KAAA,GAAA,IAAA,CAAA;IAHC,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,cACZ,OAAA,SAAS,GAAG,KAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC,GAAG,KAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,OAAO,EAAE,KAAK,CAAC,CAA9F,EAA8F,CAC/F,CAAC;SACH,CAAA;QAEO,qBAAkB,CAAA,SAAA,CAAA,kBAAA,GAAlB,UAAmB,cAAsB,EAAA;IAC/C,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,kBAAkB,EAAE,cAAc,GAAG,CAAC,CAAC,CAAC;IAC3F,QAAA,IAAM,eAAe,GAAG,IAAI,CAAC,kBAAkB,CAAC,cAAc,EAAE,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;YAC/F,IAAI,oBAAoB,GAAG,KAAK,CAAC;IACjC,QAAA,IAAM,qBAAqB,GAAG,IAAI,CAAC,wBAAwB,EAAE,CAAC;IAC9D,QAAA,IAAI,qBAAqB,EAAE;gBACzB,IAAI,CAAC,SAAS,CAAC,qBAAqB,EAAE,mBAAmB,EAAK,eAAe,GAAI,IAAA,CAAC,CAAC;gBACnF,oBAAoB,GAAG,qBAAqB,CAAC,SAAS,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;IACrF,SAAA;IAED,QAAA,IAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC;YAC5D,IAAM,qBAAqB,GAAG,oBAAoB;IAChD,cAAE,eAAe;kBACf,IAAI,CAAC,kBAAkB,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC;YAC5D,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE,mBAAmB,EAAK,qBAAqB,GAAI,IAAA,CAAC,CAAC;SACnF,CAAA;QAED,qBAAkB,CAAA,SAAA,CAAA,kBAAA,GAAlB,UAAmB,KAAiB,EAAA;YAClC,IAAI,IAAI,CAAC,eAAe,EAAE;gBACxB,IAAM,oBAAoB,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,UAAC,MAAM,EAAA;IAC3D,gBAAA,QACE,KAAK,CAAC,MAAM,YAAY,WAAW;IACnC,qBAAC,KAAK,CAAC,MAAM,KAAK,MAAM,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAC1D;IACJ,aAAC,CAAC,CAAC;;;gBAGH,IAAI,CAAC,oBAAoB,EAAE;oBACzB,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAC1B,aAAA;IACF,SAAA;SACF,CAAA;IAGD,IAAA,qBAAA,CAAA,SAAA,CAAA,eAAe,GAAf,YAAA;YACE,IAAI,CAAC,iBAAiB,EAAE,CAAC;SAC1B,CAAA;IAEO,IAAA,qBAAA,CAAA,SAAA,CAAA,iBAAiB,GAAjB,YAAA;IACN,QAAA,IAAM,EAAE,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,WAAW,GAAG,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IACvE,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,MAAM,EAAK,EAAE,GAAA,IAAI,CAAC,CAAC;SAClE,CAAA;IAEO,IAAA,qBAAA,CAAA,SAAA,CAAA,qBAAqB,GAArB,YAAA;YAAA,IAIP,KAAA,GAAA,IAAA,CAAA;IAHC,QAAA,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,EAAE,UAAC,KAAK,EAAA,EAClF,OAAA,KAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAA,EAAA,CAC7B,CAAC;SACH,CAAA;QAEO,qBAAgB,CAAA,SAAA,CAAA,gBAAA,GAAhB,UAAiB,KAA0B,EAAA;IACjD,QAAA,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE;;gBAE/B,IAAI,CAAC,qBAAqB,GAAG,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC;gBACtD,OAAO;IACR,SAAA;IACD,QAAA,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC,WAAW,CAAC,MAAM,KAAK,IAAI,CAAC,qBAAqB,CAAC;IAC/E,QAAA,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;;gBAEzB,IAAI,IAAI,CAAC,qBAAqB,EAAE;IAC9B,gBAAA,YAAY,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;oBACzC,IAAI,CAAC,YAAY,EAAE,CAAC;IACrB,aAAA;IACF,SAAA;IACD,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;SAC5B,CAAA;IAED,IAAA,qBAAA,CAAA,SAAA,CAAA,iBAAiB,GAAjB,YAAA;YACE,IAAM,oBAAoB,GAAG,iBAAiB,CAAC;YAC/C,IAAI,IAAI,CAAC,eAAe,EAAE;IACxB,YAAA,IACE,QAAQ,CAAC,aAAa,YAAY,WAAW;IAC7C,gBAAA,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,oBAAoB,CAAC,EACpD;IACA,gBAAA,QAAQ,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;IAC/B,aAAA;IACF,SAAA;SACF,CAAA;IAWO,IAAA,qBAAA,CAAA,SAAA,CAAA,qBAAqB,GAArB,YAAA;YAAA,IAQP,KAAA,GAAA,IAAA,CAAA;YAPC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,OAAO,CAAC,UAAC,EAAqB,EAAA;IAArB,YAAA,IAAA,EAAA,GAAA,aAAqB,EAApB,OAAO,GAAA,EAAA,CAAA,CAAA,CAAA,EAAE,UAAU,GAAA,EAAA,CAAA,CAAA,CAAA,CAAA;IACnE,YAAA,IAAM,UAAU,GAAG,UAAU,EAAE,CAAC;IAChC,YAAA,UAAU,CAAC,OAAO,CAAC,UAAC,SAAS,EAAA;oBAC3B,IAAM,eAAe,GAAG,SAAS,CAAC,aAAa,CAAc,WAAA,GAAY,OAAS,CAAC,CAAC;IACpF,gBAAA,KAAI,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;IACpC,aAAC,CAAC,CAAC;IACL,SAAC,CAAC,CAAC;SACJ,CAAA;IAED;;IAEE;IACM,IAAA,qBAAA,CAAA,SAAA,CAAA,2BAA2B,GAA3B,YAAA;IACN,QAAA,IAAM,sBAAsB,GAAG,KAAK,CAAC,IAAI,CACvC,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,QAAQ,CAC9C,CAAC,OAAO,EAAE,CAAC;YAEZ,IAAM,wBAAwB,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU;IACvD,cAAE,sBAAsB,CAAC,CAAC,CAAC;IAC3B,cAAE,sBAAsB,CAAC,CAAC,CAAC,CAAC;IAE9B;;;;IAIE;IACF,QAAA,IAAI,CAAC,wBAAwB;IAAE,YAAA,OAAO,IAAI,CAAC;IAC3C,QAAA,OAAO,wBAAwB,CAAC;SACjC,CAAA;IAEO,IAAA,qBAAA,CAAA,SAAA,CAAA,wBAAwB,GAAxB,YAAA;YACN,OAAO,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,aAAa,CAAc,oBAAoB,CAAC,CAAC;SACvF,CAAA;IAEO,IAAA,qBAAA,CAAA,SAAA,CAAA,SAAS,GAAT,UAAU,KAAc,EAAE,UAAqB,EAAA;YAA/C,IAmBP,KAAA,GAAA,IAAA,CAAA;YAlBC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;IAEtD,QAAA,UAAU,CAAC,OAAO,CAAC,UAAC,SAAS,EAAE,KAAK,EAAA;IAClC,YAAA,IAAM,aAAa,GAAG,KAAK,GAAG,CAAC,GAAG,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;gBAChE,KAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;;IAEpD,YAAA,IAAM,YAAY,GAAG,SAAS,CAAC,gBAAgB,CAAC;IAEhD,YAAA,IAAI,YAAY,CAAC,OAAO,KAAK,oBAAoB,EAAE;oBACjD,KAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,YAAY,EAAE,UAAC,KAAK,EAAA;IAC/C,oBAAA,IAAA,KAAA,MAAyB,CAAA;4BAC7B,iBAAiB;4BACd,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,GAAI,IAAA;IAC5C,qBAAA,EAAA,CAAA,CAAA,EAHM,QAAQ,GAAA,EAAA,CAAA,CAAA,CAAA,EAAE,UAAU,QAG1B,CAAC;IACF,oBAAA,KAAI,CAAC,SAAS,CAAC,KAAI,CAAC,UAAU,CAAC,aAAa,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;IACtE,iBAAC,CAAC,CAAC;IACJ,aAAA;IACH,SAAC,CAAC,CAAC;SACJ,CAAA;QAEO,qBAAW,CAAA,SAAA,CAAA,WAAA,GAAX,UAAY,KAAe,EAAA;YACjC,IAAI,CAAC,CAAC,KAAK,EAAE;gBACX,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;IACvD,SAAA;SACF,CAAA;IAEO,IAAA,qBAAA,CAAA,SAAA,CAAA,uBAAuB,GAAvB,YAAA;IACN,QAAA,IAAM,aAAa,GAAG,IAAI,CAAC,2BAA2B,EAAE,CAAC;YACzD,IAAI,aAAa,KAAK,IAAI;IAAE,YAAA,OAAO;IAEnC,QAAA,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,aAAa,EAAE;gBAC3C,SAAS,EAAE,IAAI;IAChB,SAAA,CAAC,CAAC;SACJ,CAAA;IAEO,IAAA,qBAAA,CAAA,SAAA,CAAA,sCAAsC,GAAtC,YAAA;YAAA,IAuBP,KAAA,GAAA,IAAA,CAAA;YAtBC,IAAM,gBAAgB,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;YAC9D,IAAM,QAAQ,GAAG,UAAC,SAA2B,EAAA;;gBAC3C,IAAM,UAAU,GAAG,SAAS;IACzB,iBAAA,MAAM,CAAC,UAAC,QAAQ,EAAA,EAAK,OAAA,QAAQ,CAAC,IAAI,KAAK,WAAW,CAAA,EAAA,CAAC;qBACnD,GAAG,CAAC,UAAC,QAAQ,EAAA;;oBAEZ,OAAO,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,UAAC,IAAI,IACjD,OAAA,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA,EAAA,CACzC,CAAC;IACJ,aAAC,CAAC,CAAC;IAEL,YAAA,IAAM,aAAa,GAAG,CAAA,KAAA,KAAK,CAAC,SAAS;IAClC,iBAAA,MAAM,CAAI,KAAA,CAAA,EAAA,EAAA,aAAA,CAAA,EAAA,EAAA,MAAA,CAAA,UAAU,CACpB,CAAA,CAAA,CAAA,MAAM,CAAC,UAAC,IAAI,EAA0B,EAAA,OAAA,IAAI,YAAY,WAAW,CAA3B,EAA2B,CAAC,CAAC;IAEtE,YAAA,aAAa,CAAC,OAAO,CAAC,UAAC,YAAY,EAAA;oBACjC,IAAM,gBAAgB,GAAG,KAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC;;IAE1E,gBAAA,KAAI,CAAC,SAAS,CAAC,YAAY,EAAE,gBAAgB,CAAC,CAAC;IACjD,aAAC,CAAC,CAAC;IACL,SAAC,CAAC;IACF,QAAA,OAAO,IAAI,gBAAgB,CAAC,QAAQ,CAAC,CAAC;SACvC,CAAA;IAEO,IAAA,qBAAA,CAAA,SAAA,CAAA,sCAAsC,GAAtC,YAAA;YAAA,IAsBP,KAAA,GAAA,IAAA,CAAA;YArBC,IAAM,QAAQ,GAAiC,UAAC,OAAO,EAAA;IACrD,YAAA,IAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IACzB,YAAA,IAAM,kBAAkB,GAAG,KAAK,CAAC,iBAAiB,GAAG,CAAC,CAAC;IACvD,YAAA,IAAI,kBAAkB,EAAE;oBACtB,KAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IACrD,aAAA;IAAM,iBAAA;oBACL,KAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IACxD,aAAA;IACH,SAAC,CAAC;;YAGF,IAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,YAAY;kBAChD,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,QAAgB;kBAC7C,SAAS,CAAC;IACd,QAAA,IAAM,OAAO,GAA6B;IACxC,YAAA,UAAU,EAAE,kBAAkB;IAC9B,YAAA,IAAI,EAAA,IAAA;IACJ,YAAA,SAAS,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;aACrB,CAAC;IAEF,QAAA,OAAO,IAAI,oBAAoB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;SACpD,CAAA;IAED,IAAA,qBAAA,CAAA,SAAA,CAAA,WAAW,GAAX,YAAA;IACE,QAAA,IAAI,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE;IACjC,YAAA,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,CAAC;IAChC,SAAA;;IAED,QAAA,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,CAAC;YACnC,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAC9B,QAAA,IAAI,CAAC,oBAAoB,CAAC,UAAU,EAAE,CAAC;YACvC,OAAO,IAAI,CAAC,qBAAqB,CAAC;YAClC,IAAI,IAAI,CAAC,qBAAqB,EAAE;IAC9B,YAAA,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;gBAChF,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC;gBAC1E,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,IAAI,CAAC,wBAAwB,EAAE,CAAC,CAAC;IACvE,SAAA;IACD,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;IACrB,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;SAC1B,CAAA;;;IAzhBe,qBAAyB,CAAA,yBAAA,GAAG,GAAG,CAAC;gKANrC,qBAAqB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAjC,aAAA,CAAA,QAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,aAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,aAAA,CAAA,SAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,aAAA,CAAA,MAAA,EAAA,EAAA,EAAA,KAAA,EAAAkC,qBAAA,EAAA,EAAA,EAAA,KAAA,EAAAlC,aAAA,CAAA,wBAAA,EAAA,EAAA,EAAA,KAAA,EAAAmC,SAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,eAAA,EAAA,CAAA,EAAA,MAAA,EAAApC,aAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;IAArB,mBAAA,qBAAA,CAAA,IAAA,GAAAA,aAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,qBAAqB,mjBAFrB,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,qBAAqB,EAAE,CAAC,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,YAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAuBxDqC,aAAU,EACV,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,mBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAAA,aAAU,2BAAwBX,aAAU,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAE5CY,YAAS,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAAwBZ,aAAU,EAE3C,MAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,mBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAAa,aAAU,2BAAwBb,aAAU,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAE5Cc,WAAQ,EAAwB,WAAA,EAAA,IAAA,EAAA,IAAA,EAAAd,aAAU,EAE1C,MAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAAe,iBAAY,wIAEYf,aAAU,EAAA,EAAA,EAAA,YAAA,EAAA,qBAAA,EAAA,SAAA,EAd/B,eAAe,EAAU,WAAA,EAAA,IAAA,EAAA,IAAA,EAAAA,aAAU,wCC5DnD,isDA2CA,EAAA,MAAA,EAAA,CAAA,woGAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAgB,aAAA,CAAA,SAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,MAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,aAAA,CAAA,UAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,aAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,aAAA,CAAA,UAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,aAAA,CAAA,UAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,SAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAC,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,EAAA,eAAA,EAAA,YAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAC,aAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,MAAA,EAAA,YAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAC,aAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,aAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,aAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,mBAAA,EAAA,2BAAA,EAAA,0BAAA,EAAA,kCAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAC,eAAA,CAAA,YAAA,EAAA,QAAA,EAAA,eAAA,EAAA,OAAA,EAAA,CAAA,UAAA,EAAA,YAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;sHDDa,qBAAqB,EAAA,UAAA,EAAA,CAAA;sBANjCrC,YAAS;IAAC,YAAA,IAAA,EAAA,CAAA;IACT,oBAAA,QAAQ,EAAE,qBAAqB;IAC/B,oBAAA,WAAW,EAAE,gCAAgC;wBAC7C,SAAS,EAAE,CAAC,gCAAgC,CAAC;wBAC7C,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAuB,qBAAA,EAAE,CAAC;qBACpE,CAAA;wVAGK,oBAAoB,EAAA,CAAA;0BADvBE,cAAW;2BAAC,yBAAyB,CAAA;oBAc7B,MAAM,EAAA,CAAA;0BAAdC,QAAK;oBAGuD,mBAAmB,EAAA,CAAA;0BAA/EmC,eAAY;oBAAC,IAAA,EAAA,CAAA,eAAe,EAAE,EAAE,IAAI,EAAErB,aAAU,EAAE,CAAA;oBAGF,UAAU,EAAA,CAAA;0BAA1DsB,YAAS;oBAAC,IAAA,EAAA,CAAAX,aAAU,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;oBAE/B,iBAAiB,EAAA,CAAA;0BADxBW,YAAS;2BAACX,aAAU,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAEX,aAAU,EAAE,CAAA;oBAGjD,gBAAgB,EAAA,CAAA;0BADvBsB,YAAS;2BAACV,YAAS,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAEZ,aAAU,EAAE,CAAA;oBAGhD,iBAAiB,EAAA,CAAA;0BADxBsB,YAAS;2BAACT,aAAU,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAEb,aAAU,EAAE,CAAA;oBAGjD,eAAe,EAAA,CAAA;0BADtBsB,YAAS;2BAACR,WAAQ,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAEd,aAAU,EAAE,CAAA;oBAEJ,YAAY,EAAA,CAAA;0BAA9DsB,YAAS;oBAAC,IAAA,EAAA,CAAAP,iBAAY,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;oBAGjC,YAAY,EAAA,CAAA;0BADnBO,YAAS;oBAAC,IAAA,EAAA,CAAA,cAAc,EAAE,EAAE,IAAI,EAAEtB,aAAU,EAAE,CAAA;oBAmC3C,SAAS,EAAA,CAAA;0BADZf,cAAW;2BAAC,cAAc,CAAA;oBAgM3B,aAAa,EAAA,CAAA;0BAFZa,eAAY;2BAAC,cAAc,CAAA;;0BAC3BA,eAAY;2BAAC,iBAAiB,CAAA;oBAQ/B,eAAe,EAAA,CAAA;0BAFdA,eAAY;2BAAC,2BAA2B,EAAE,CAAC,8BAA8B,CAAC,CAAA;;0BAC1EA,eAAY;2BAAC,yBAAyB,EAAE,CAAC,uBAAuB,CAAC,CAAA;oBAOlE,eAAe,EAAA,CAAA;0BAFdA,eAAY;2BAAC,2BAA2B,CAAA;;0BACxCA,eAAY;2BAAC,yBAAyB,CAAA;oBAoFvC,eAAe,EAAA,CAAA;0BADdA,eAAY;2BAAC,eAAe,CAAA;;;IEpY/B,IAAA,4BAAA,kBAAA,YAAA;QACE,SAAoB,4BAAA,CAAA,aAAkC,EAAU,QAAyB,EAAA;IAArE,QAAA,IAAa,CAAA,aAAA,GAAb,aAAa,CAAqB;IAAU,QAAA,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAiB;YAExE,IAAW,CAAA,WAAA,GAAG1B,sBAAc,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC;YAChD,IAAW,CAAA,WAAA,GAAGA,sBAAc,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC;YAC/C,IAAA,CAAA,QAAQ,GAAGA,sBAAc,CAAC,QAAQ,CAAC,IAAI,CAAC;YACxC,IAAA,CAAA,oBAAoB,GAAG;IACtC,YAAA,oBAAoB,EAAE,IAAI;aAC3B,CAAC;SAP2F;QAStF,4BAAc,CAAA,SAAA,CAAA,cAAA,GAAd,UAAe,eAAwC,EAAA;YAAvD,IA+HN,KAAA,GAAA,IAAA,CAAA;YA9HC,OAAO,UAAC,MAAmB,EAAE,YAA0B,EAAA;IACrD,YAAA,IAAM,iBAAiB,GAAG,KAAI,CAAC,aAAa;IACzC,iBAAA,MAAM,EAAE;IACR,iBAAA,UAAU,CAAC,MAAM,CAAC,aAAa,CAAC,cAAc,CAAE,CAAC;IACjD,iBAAA,MAAM,CAAC,SAAS,EAAE,IAAI,EAAE,yBAAyB,CAAC;IAClD,iBAAA,YAAY,CAAC;IACZ,gBAAA,gBAAgB,EAAE,MAAM;iBACzB,CAAC;IACD,iBAAA,gBAAgB,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAExC,YAAA,IAAM,gBAAgB,GAAG,KAAI,CAAC,aAAa;IACxC,iBAAA,MAAM,EAAE;IACR,iBAAA,UAAU,CAAC,MAAM,CAAC,gBAAgB,CAAC,+BAA+B,CAAE,CAAC;IACrE,iBAAA,YAAY,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;IAC5B,iBAAA,MAAM,CAAC,WAAW,EAAE,mBAAmB,EAAE,iBAAiB,CAAC,CAAC;IAE/D,YAAA,IAAM,aAAa,GAAG,KAAI,CAAC,aAAa;IACrC,iBAAA,MAAM,EAAE;qBACR,UAAU,CAAC,MAAM,CAAC;IAClB,iBAAA,MAAM,CAAC,KAAI,CAAC,WAAW,CAAC;IACxB,iBAAA,QAAQ,CAAC,KAAI,CAAC,QAAQ,CAAC;qBACvB,YAAY,CAAC,gBAAgB,CAAC,CAAC;IAElC,YAAA,IAAI,wBAAmC,CAAC;IACxC,YAAA,IAAI,eAAe,EAAE;oBACnB,wBAAwB,GAAG,KAAI,CAAC,aAAa;IAC1C,qBAAA,MAAM,EAAE;yBACR,UAAU,CAAC,eAAe,CAAC;IAC3B,qBAAA,MAAM,CAAC,SAAS,EAAE,yBAAyB,EAAE,IAAI,CAAC,CAAC;IACvD,aAAA;IAED,YAAA,IAAI,YAAY,EAAE;oBAChB,IAAM,QAAQ,GAAG,CAAC,KAAI,CAAC,QAAQ,CAAC,iBAAiB,EAAE,CAAC;IACpD,gBAAA,IAAM,YAAY,GAChB,YAAY,CAAC,OAAO,KAAK,WAAW;IACnC,oBAAA,YAAoC,CAAC,iBAAiB,KAAK,SAAS,CAAC;oBAExE,IAAM,mBAAmB,GAAG,KAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,YAAY,CAAC;IACnE,oBAAA,SAAS,EAAE,eAAe;IAC1B,oBAAA,kBAAkB,EAAE,YAAY;IAChC,oBAAA,QAAQ,EAAE,QAAQ;IACnB,iBAAA,CAAC,CAAC;IAEH,gBAAA,IAAM,QAAM,GAAG,QAAQ,CAAC,IAAI,CAAC;IAE7B,gBAAA,IAAI,QAAQ,EAAE;IACZ;;;;IAIG;wBACH,IAAM,eAAe,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC;IAC7D,0BAAE,MAAM;8BACN,qCAAqC,CAAC;wBAC1C,IAAM,cAAc,GAAG,YAAY,GAAG,OAAO,GAAG,eAAe,CAAC;IAChE,oBAAA,IAAM,iBAAiB,GAAG,KAAI,CAAC,oBAAoB,CAAC,oBAAoB,CAAC;IACzE,oBAAA,IAAM,cAAc,GAAG,aAAA,GAAc,cAAc,GAAW,UAAA,GAAA,iBAAiB,MAAG,CAAC;wBAEnF,mBAAmB;IAChB,yBAAA,WAAW,CAAC;IACX,wBAAA,SAAS,EAAE,cAAc;yBAC1B,CAAC;IACD,yBAAA,cAAc,CAAC,YAAA,EAAM,OAAA,QAAM,CAAC,KAAK,CAAC,WAAW,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAA,EAAA,CAAC;6BAC3E,UAAU,CAAC,YAAY,CAAC;IACxB,yBAAA,SAAS,CAAC;IACT,wBAAA;IACE,4BAAA,MAAM,EAAE,CAAC;IACT,4BAAA,MAAM,EAAE,aAAa;IACrB,4BAAA,SAAS,EAAE,0BAA0B;IACrC,4BAAA,YAAY,EAAE,KAAK;IACpB,yBAAA;IACD,wBAAA;IACE,4BAAA,MAAM,EAAE,CAAC;IACT,4BAAA,MAAM,EAAE,gBAAgB;IACxB,4BAAA,SAAS,EAAE,cAAc;IACzB,4BAAA,YAAY,EAAE,eAAe;IAC9B,yBAAA;IACF,qBAAA,CAAC,CAAC;IACL,oBAAA,aAAa,CAAC,YAAY,CAAC,mBAAmB,CAAC,CAAC;IACjD,iBAAA;IAAM,qBAAA;IACL,oBAAA,aAAa,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC;IAC9C,oBAAA,IAAI,wBAAwB,EAAE;IAC5B,wBAAA,aAAa,CAAC,YAAY,CAAC,wBAAwB,CAAC,CAAC;IACtD,qBAAA;wBAED,IAAI,CAAC,YAAY,EAAE;4BACjB,gBAAgB,CAAC,MAAM,CAAC,SAAS,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IAC9C,qBAAA;IAAM,yBAAA;4BACL,IAAM,iBAAiB,GAAG,YAAY;IACpC,8BAAE,KAAI,CAAC,oBAAoB,CAAC,oBAAoB;kCAC9C,CAAC,CAAC;IACN,wBAAA,IAAM,cAAc,GAAG,0BAA2B,GAAA,iBAAiB,MAAG,CAAC;4BAEvE,mBAAmB;IAChB,6BAAA,WAAW,CAAC;IACX,4BAAA,SAAS,EAAE,cAAc;6BAC1B,CAAC;IACD,6BAAA,UAAU,CAAC,YAAY,CAAC,aAAa,CAAC,gBAAgB,CAAE,CAAC;IACzD,6BAAA,SAAS,CAAC;gCACT,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE,SAAS,EAAE,wBAAwB,EAAE;gCACzE,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,gBAAgB,EAAE,SAAS,EAAE,cAAc,EAAE;IACnE,yBAAA,CAAC,CAAC;IAEL,wBAAA,IAAM,eAAe,GAAG,KAAI,CAAC,aAAa;IACvC,6BAAA,MAAM,EAAE;IACR,6BAAA,WAAW,CAAC;IACX,4BAAA,SAAS,EAAE,cAAc;6BAC1B,CAAC;IACD,6BAAA,UAAU,CAAC,YAAY,CAAC,aAAa,CAAC,eAAe,CAAE,CAAC;IACxD,6BAAA,SAAS,CAAC;gCACT,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,wBAAwB,EAAE;gCAChE,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,cAAc,EAAE;IACvD,yBAAA,CAAC,CAAC;4BAEL,aAAa,CAAC,YAAY,CAAC,CAAC,mBAAmB,EAAE,eAAe,CAAC,CAAC,CAAC;IACpE,qBAAA;IACF,iBAAA;IACF,aAAA;IAAM,iBAAA;IACL,gBAAA,aAAa,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC;IAC9C,gBAAA,IAAI,wBAAwB,EAAE;IAC5B,oBAAA,aAAa,CAAC,YAAY,CAAC,wBAAwB,CAAC,CAAC;IACtD,iBAAA;IACF,aAAA;IAED,YAAA,OAAO,aAAa,CAAC;IACvB,SAAC,CAAC;SACH,CAAA;QAEM,4BAAc,CAAA,SAAA,CAAA,cAAA,GAAd,UAAe,eAAwC,EAAA;YAAvD,IAgIN,KAAA,GAAA,IAAA,CAAA;YA/HC,OAAO,UAAC,MAAmB,EAAE,YAA0B,EAAA;IACrD,YAAA,IAAM,iBAAiB,GAAG,KAAI,CAAC,aAAa;IACzC,iBAAA,MAAM,EAAE;IACR,iBAAA,UAAU,CAAC,MAAM,CAAC,aAAa,CAAC,cAAc,CAAE,CAAC;IACjD,iBAAA,MAAM,CAAC,SAAS,EAAE,yBAAyB,EAAE,GAAG,CAAC,CAAC;IAErD,YAAA,IAAM,gBAAgB,GAAG,KAAI,CAAC,aAAa;IACxC,iBAAA,MAAM,EAAE;IACR,iBAAA,UAAU,CAAC,MAAM,CAAC,gBAAgB,CAAC,+BAA+B,CAAE,CAAC;IACrE,iBAAA,YAAY,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;IAC5B,iBAAA,MAAM,CAAC,WAAW,EAAE,iBAAiB,EAAE,mBAAmB,CAAC,CAAC;IAE/D,YAAA,IAAM,aAAa,GAAG,KAAI,CAAC,aAAa;IACrC,iBAAA,MAAM,EAAE;qBACR,UAAU,CAAC,MAAM,CAAC;IAClB,iBAAA,MAAM,CAAC,KAAI,CAAC,WAAW,CAAC;IACxB,iBAAA,QAAQ,CAAC,KAAI,CAAC,QAAQ,CAAC;qBACvB,YAAY,CAAC,gBAAgB,CAAC,CAAC;IAElC,YAAA,IAAI,wBAAmC,CAAC;IACxC,YAAA,IAAI,eAAe,EAAE;oBACnB,wBAAwB,GAAG,KAAI,CAAC,aAAa;IAC1C,qBAAA,MAAM,EAAE;yBACR,UAAU,CAAC,eAAe,CAAC;IAC3B,qBAAA,MAAM,CAAC,SAAS,EAAE,IAAI,EAAE,yBAAyB,CAAC;yBAClD,WAAW,CAAC,EAAE,OAAO,EAAE,yBAAyB,EAAE,CAAC,CAAC;IACxD,aAAA;IAED,YAAA,IAAI,YAAY,EAAE;oBAChB,IAAM,QAAQ,GAAG,CAAC,KAAI,CAAC,QAAQ,CAAC,iBAAiB,EAAE,CAAC;IACpD,gBAAA,IAAM,YAAY,GAChB,YAAY,CAAC,OAAO,KAAK,WAAW;IACnC,oBAAA,YAAoC,CAAC,iBAAiB,KAAK,SAAS,CAAC;IAExE,gBAAA,IAAM,mBAAmB,GAAG,KAAI,CAAC,aAAa;IAC3C,qBAAA,MAAM,EAAE;IACR,qBAAA,iBAAiB,CAAC,CAAC,WAAW,CAAC,CAAC;IAChC,qBAAA,gBAAgB,CAAC,CAAC,WAAW,CAAC,CAAC;yBAC/B,QAAQ,CAAC,UAAC,WAAW,EAAA;;wBAEpB,IAAI,WAAW,KAAK,CAAC,EAAE;4BACrB,OAAO;IACR,qBAAA;wBAED,YAAY,CAAC,KAAK,CAAC,WAAW,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IAE/C,oBAAA,IAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,QAAM,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CACvE,UAAC,CAAC,EAAA,EAAK,OAAA,CAAC,CAAC,iBAAiB,KAAK,SAAS,CAAjC,EAAiC,CACzC,CAAC,MAAM,CAAC;wBACT,IAAI,SAAS,IAAI,CAAC,EAAE;4BAClB,QAAM,CAAC,KAAK,CAAC,WAAW,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAC;IAClD,qBAAA;IACH,iBAAC,CAAC,CAAC;IAEL,gBAAA,IAAM,QAAM,GAAG,QAAQ,CAAC,IAAI,CAAC;IAE7B,gBAAA,IAAI,QAAQ,EAAE;wBACZ,IAAM,eAAe,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC;IAC7D,0BAAE,MAAM;8BACN,qCAAqC,CAAC;wBAC1C,IAAM,cAAc,GAAG,YAAY,GAAG,OAAO,GAAG,eAAe,CAAC;IAChE,oBAAA,IAAM,iBAAiB,GAAG,KAAI,CAAC,oBAAoB,CAAC,oBAAoB,CAAC;IACzE,oBAAA,IAAM,cAAc,GAAG,aAAA,GAAc,cAAc,GAAW,UAAA,GAAA,iBAAiB,MAAG,CAAC;IAEnF,oBAAA,mBAAmB,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC;IACrD,wBAAA;IACE,4BAAA,MAAM,EAAE,CAAC;IACT,4BAAA,MAAM,EAAE,gBAAgB;IACxB,4BAAA,SAAS,EAAE,cAAc;IACzB,4BAAA,YAAY,EAAE,eAAe;IAC9B,yBAAA;IACD,wBAAA;IACE,4BAAA,MAAM,EAAE,CAAC;IACT,4BAAA,MAAM,EAAE,aAAa;IACrB,4BAAA,SAAS,EAAE,0BAA0B;IACrC,4BAAA,YAAY,EAAE,KAAK;IACpB,yBAAA;IACF,qBAAA,CAAC,CAAC;IAEH,oBAAA,aAAa,CAAC,YAAY,CAAC,mBAAmB,CAAC,CAAC;IACjD,iBAAA;IAAM,qBAAA;IACL,oBAAA,aAAa,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC;IAC9C,oBAAA,IAAI,wBAAwB,EAAE;IAC5B,wBAAA,aAAa,CAAC,YAAY,CAAC,wBAAwB,CAAC,CAAC;IACtD,qBAAA;wBAED,IAAI,CAAC,YAAY,EAAE;4BACjB,gBAAgB,CAAC,MAAM,CAAC,SAAS,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IAC9C,qBAAA;IAAM,yBAAA;4BACL,IAAM,iBAAiB,GAAG,YAAY;IACpC,8BAAE,KAAI,CAAC,oBAAoB,CAAC,oBAAoB;kCAC9C,CAAC,CAAC;IACN,wBAAA,IAAM,cAAc,GAAG,0BAA2B,GAAA,iBAAiB,MAAG,CAAC;4BAEvE,mBAAmB;IAChB,6BAAA,UAAU,CAAC,YAAY,CAAC,aAAa,CAAC,gBAAgB,CAAE,CAAC;IACzD,6BAAA,WAAW,CAAC;IACX,4BAAA,SAAS,EAAE,sBAAsB;6BAClC,CAAC;IACD,6BAAA,SAAS,CAAC;gCACT,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,gBAAgB,EAAE,SAAS,EAAE,cAAc,EAAE;gCAClE,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE,SAAS,EAAE,wBAAwB,EAAE;IAC1E,yBAAA,CAAC,CAAC;IAEL,wBAAA,IAAM,eAAe,GAAG,KAAI,CAAC,aAAa;IACvC,6BAAA,MAAM,EAAE;IACR,6BAAA,UAAU,CAAC,YAAY,CAAC,aAAa,CAAC,eAAe,CAAE,CAAC;IACxD,6BAAA,WAAW,CAAC;IACX,4BAAA,SAAS,EAAE,wBAAwB;6BACpC,CAAC;IACD,6BAAA,SAAS,CAAC;gCACT,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,cAAc,EAAE;gCACtD,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,wBAAwB,EAAE;IACjE,yBAAA,CAAC,CAAC;4BAEL,aAAa,CAAC,YAAY,CAAC,CAAC,mBAAmB,EAAE,eAAe,CAAC,CAAC,CAAC;IACpE,qBAAA;IACF,iBAAA;IACF,aAAA;IAAM,iBAAA;IACL,gBAAA,aAAa,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC;IAC9C,gBAAA,IAAI,wBAAwB,EAAE;IAC5B,oBAAA,aAAa,CAAC,YAAY,CAAC,wBAAwB,CAAC,CAAC;IACtD,iBAAA;IACF,aAAA;IAED,YAAA,OAAO,aAAa,CAAC;IACvB,SAAC,CAAC;SACH,CAAA;;;uKA3QU,4BAA4B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAqB,aAAA,CAAA,mBAAA,EAAA,EAAA,EAAA,KAAA,EAAA8B,eAAA,EAAA,CAAA,EAAA,MAAA,EAAAjD,aAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;IAA5B,mBAAA,4BAAA,CAAA,KAAA,GAAAA,aAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAAA,aAAA,EAAA,IAAA,EAAA,4BAA4B,cADf,MAAM,EAAA,CAAA,CAAA;sHACnB,4BAA4B,EAAA,UAAA,EAAA,CAAA;sBADxCK,aAAU;uBAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAA;;;;;;;;;;;;;;;;;;;;;;ICOlC,IAAA,WAAA,kBAAA,YAAA;IAKE,IAAA,SAAA,WAAA,CACU,oBAAqC,EACrC,qBAAmD,EACnD,SAAoB,EAAA;IAFpB,QAAA,IAAoB,CAAA,oBAAA,GAApB,oBAAoB,CAAiB;IACrC,QAAA,IAAqB,CAAA,qBAAA,GAArB,qBAAqB,CAA8B;IACnD,QAAA,IAAS,CAAA,SAAA,GAAT,SAAS,CAAW;SAC1B;QAES,WAAe,CAAA,SAAA,CAAA,eAAA,GAAf,UAAgB,MAAmB,EAAA;;;oBA4D/C,KAAA,GAAA,IAAA,CAAA;;;;4BA3DC,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,OAAO,CAAC;4BACV,OAAM,CAAA,CAAA,YAAA,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA,CAAA;;IAAvE,wBAAA,sBAAsB,GAAG,EAA8C,CAAA,IAAA,EAAA,CAAA;IAGxD,wBAAA,OAAA,CAAA,CAAA,YAAM,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,CAAA,CAAA;;IAAvD,wBAAA,YAAY,GAAG,EAAwC,CAAA,IAAA,EAAA,CAAA;IAC7D,wBAAA,IAAI,YAAY,EAAE;IAChB,4BAAA,eAAe,GAAG,YAAY,CAAC,aAAa,CAAyB,cAAc,CAAC,CAAC;IACtF,yBAAA;4BAEK,cAAc,GAAG,IAAI,CAAC,qBAAqB,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC;4BAC5E,cAAc,GAAG,IAAI,CAAC,qBAAqB,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC;IAE5E,wBAAA,gBAAgB,GAAc,MAAM,CAAC,MAAM,KAAK,OAAO,GAAG,QAAQ,GAAG,IAAI,CAAC;IAC1E,wBAAA,SAAS,GAAG,MAAM,CAAC,IAAI,IAAI,gBAAgB,CAAC;4BAC5C,kBAAkB,GAAG,yBAAyB,CAAC;4BAEjD,gBAAgB,GAAG,EAAE,CAAC;4BAC1B,IAAI,MAAM,CAAC,QAAQ,EAAE;gCACnB,gBAAgB,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC,QAAQ,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACzF,yBAAA;4BAED,IAAI,MAAM,CAAC,sBAAsB,EAAE;IACjC,4BAAA,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;IAC7E,yBAAA;IAEgB,wBAAA,OAAA,CAAA,CAAA,YAAM,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC;IACtD,gCAAA,SAAS,EAAE,MAAM,CAAC,MAAM,KAAK,SAAS,GAAG,4BAA4B,GAAG,qBAAqB;oCAC7F,QAAQ,EAAA,aAAA,CAAA;wCACN,eAAe;wCACf,aAAa;wCACb,MAAM,CAAC,MAAM,KAAK,QAAQ,GAAG,cAAc,GAAG,IAAI;wCAClD,MAAM,CAAC,MAAM,KAAK,SAAS,GAAG,qBAAqB,GAAG,IAAI;IAC1D,oCAAA,cAAc,GAAG,SAAS;wCAC1B,MAAM,CAAC,sBAAsB,GAAG,0BAA0B,GAAG,IAAI;IAC9D,iCAAA,EAAA,MAAA,CAAA,gBAAgB,CACpB,CAAA;IACD,gCAAA,eAAe,EAAE,MAAM,CAAC,MAAM,KAAK,SAAS,IAAI,MAAM,CAAC,sBAAsB,GAAG,KAAK,GAAG,IAAI;IAC5F,gCAAA,YAAY,EAAE,CAAC,MAAM,CAAC,sBAAsB;IAC5C,gCAAA,cAAc,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE;IAClC,gCAAA,YAAY,EAAE,MAAM,CAAC,MAAM,IAAI,SAAS;IACxC,gCAAA,iBAAiB,EAAE,sBAAsB;IACzC,gCAAA,aAAa,EAAE,KAAK;IACpB,gCAAA,cAAc,EAAA,cAAA;IACd,gCAAA,cAAc,EAAA,cAAA;IACf,6BAAA,CAAC,CAAA,CAAA;;IAnBI,wBAAA,QAAQ,GAAG,EAmBf,CAAA,IAAA,EAAA,CAAA;4BAEF,IAAI,MAAM,CAAC,sBAAsB,EAAE;IACjC,4BAAA,QAAQ,CAAC,YAAY,EAAE,CAAC,IAAI,CAAC,YAAA;IAC3B,gCAAA,KAAI,CAAC,SAAS,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;IACjF,6BAAC,CAAC,CAAC;IACJ,yBAAA;IAED,wBAAA,OAAA,CAAA,CAAA,YAAM,QAAQ,CAAC,OAAO,EAAE,CAAA,CAAA;;IAAxB,wBAAA,EAAA,CAAA,IAAA,EAAwB,CAAC;4BAEzB,OAAO,CAAA,CAAA,aAAA;oCACL,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC;IACxC,gCAAA,aAAa,EAAE,QAAQ,CAAC,aAAa,EAAE;IACvC,gCAAA,YAAY,EAAE,QAAQ,CAAC,YAAY,EAAE;iCACtC,CAAC,CAAA;;;IACH,SAAA,CAAA,CAAA;SAAA,CAAA;QAEM,WAAyB,CAAA,SAAA,CAAA,yBAAA,GAAzB,UAA0B,OAAoB,EAAA;IACnD,QAAA,WAAW,CAAC,iBAAiB,GAAG,OAAO,CAAC;SACzC,CAAA;QAEa,WAAoB,CAAA,SAAA,CAAA,oBAAA,GAApB,UAAqB,MAAoB,EAAA;;;;;;4BACjD,sBAAsB,GAAgB,SAAS,CAAC;kCAChD,CAAC,MAAM,IAAI,MAAM,KAAK,OAAO,CAAA,EAA7B,OAA6B,CAAA,CAAA,YAAA,CAAA,CAAA,CAAA;IACV,wBAAA,OAAA,CAAA,CAAA,YAAM,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,CAAA,CAAA;;IAAvD,wBAAA,YAAY,GAAG,EAAwC,CAAA,IAAA,EAAA,CAAA;4BAC7D,IAAI,CAAC,YAAY,EAAE;IACjB,4BAAA,sBAAsB,GAAG,WAAW,CAAC,iBAAiB,CAAC;IACxD,yBAAA;iCAAM,IACL,CAAC,YAAY,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC;gCAChD,CAAC,YAAY,CAAC,SAAS,CAAC,QAAQ,CAAC,qBAAqB,CAAC,EACvD;gCACA,sBAAsB,GAAG,YAAY,CAAC;IACvC,yBAAA;;IAEH,oBAAA,KAAA,CAAA,EAAA,OAAA,CAAA,CAAA,aAAO,sBAAsB,CAAC,CAAA;;;IAC/B,SAAA,CAAA,CAAA;SAAA,CAAA;IAEY,IAAA,WAAA,CAAA,SAAA,CAAA,WAAW,GAAX,UACX,6BAAqC,EACrC,QAAkC,EAAA;;;;;IAEpB,oBAAA,KAAA,CAAA,EAAA,OAAA,CAAA,CAAA,YAAM,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,CAAA,CAAA;;IAAhD,wBAAA,KAAK,GAAG,EAAwC,CAAA,IAAA,EAAA,CAAA;4BACtD,IAAI,CAAC,KAAK,IAAI,EAAE,KAAK,CAAC,SAAS,YAAY,qBAAqB,CAAC,EAAE;IACjE,4BAAA,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;IAChD,yBAAA;IACD,wBAAA,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;;;;IACvC,SAAA,CAAA,CAAA;SAAA,CAAA;IAEY,IAAA,WAAA,CAAA,SAAA,CAAA,cAAc,GAAd,UACX,6BAAqC,EACrC,QAAkC,EAAA;;;;;IAEpB,oBAAA,KAAA,CAAA,EAAA,OAAA,CAAA,CAAA,YAAM,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,CAAA,CAAA;;IAAhD,wBAAA,KAAK,GAAG,EAAwC,CAAA,IAAA,EAAA,CAAA;4BACtD,IAAI,CAAC,KAAK,IAAI,EAAE,KAAK,CAAC,SAAS,YAAY,qBAAqB,CAAC,EAAE;IACjE,4BAAA,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;IAChD,yBAAA;IACD,wBAAA,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;;;;IAC1C,SAAA,CAAA,CAAA;SAAA,CAAA;;;IAhHD;IACA;IACe,WAAiB,CAAA,iBAAA,GAAgB,SAAS,CAAC;sJAH/C,WAAW,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAc,aAAA,CAAA,eAAA,EAAA,EAAA,EAAA,KAAA,EAAA+B,4BAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,SAAA,EAAA,CAAA,EAAA,MAAA,EAAAnD,aAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;0JAAX,WAAW,EAAA,CAAA,CAAA;sHAAX,WAAW,EAAA,UAAA,EAAA,CAAA;sBADvBK,aAAU;;;ACMX,QAAA,aAAA,kBAAA,YAAA;IAwCE,IAAA,SAAA,aAAA,CACU,UAAsB,EACtB,qBAA4C,EAC5C,QAAmB,EAAA;IAFnB,QAAA,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;IACtB,QAAA,IAAqB,CAAA,qBAAA,GAArB,qBAAqB,CAAuB;IAC5C,QAAA,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAW;IA5BrB,QAAA,IAAA,CAAA,uBAAuB,GAAG,IAAI,CAAC,qBAAqB,CAAC;IAC3D,YAAA,KAAK,EAAE,GAAG;IACV,YAAA,MAAM,EAAE,GAAG;IACX,YAAA,KAAK,EAAE,IAAI;IACZ,SAAA,CAAC,CAAC;IAaH,QAAA,IAAI,CAAA,IAAA,GAAY,KAAK,CAAC;IAEtB,QAAA,IAAW,CAAA,WAAA,GAAY,KAAK,CAAC;SAUzB;IArCJ,IAAA,MAAA,CAAA,cAAA,CACI,aAAkB,CAAA,SAAA,EAAA,oBAAA,EAAA;IADtB,QAAA,GAAA,EAAA,UACuB,KAAa,EAAA;IAClC,YAAA,IAAI,CAAC,gBAAgB,GAAG,OAAQ,GAAA,KAAK,OAAI,CAAC;aAC3C;;;IAAA,KAAA,CAAA,CAAA;IAWD,IAAA,MAAA,CAAA,cAAA,CACI,aAAK,CAAA,SAAA,EAAA,OAAA,EAAA;IADT,QAAA,GAAA,EAAA,UACU,KAAiC,EAAA;IACzC,YAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;IAC7B,gBAAA,OAAO,CAAC,KAAK,CACX,gHAAgH,CACjH,CAAC;IACH,aAAA;gBACD,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;aAClE;;;IAAA,KAAA,CAAA,CAAA;IAMD,IAAA,MAAA,CAAA,cAAA,CAAa,aAAI,CAAA,SAAA,EAAA,MAAA,EAAA;IAAjB,QAAA,GAAA,EAAA,UAAkB,KAA6B,EAAA;IAC7C,YAAA,IAAI,CAAC,IAAI,GAAG,KAAK,KAAK,MAAM,CAAC;IAC7B,YAAA,IAAI,CAAC,WAAW,GAAG,KAAK,KAAK,aAAa,CAAC;aAC5C;;;IAAA,KAAA,CAAA,CAAA;IAQD,IAAA,aAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;YAAA,IAEC,KAAA,GAAA,IAAA,CAAA;YADC,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,UAAC,KAAK,IAAK,OAAA,KAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAA,EAAA,CAAC,CAAC;SAC1F,CAAA;IAED,IAAA,aAAA,CAAA,SAAA,CAAA,WAAW,GAAX,YAAA;YACE,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;SACvD,CAAA;QAEO,aAAqB,CAAA,SAAA,CAAA,qBAAA,GAArB,UAAsB,KAAiC,EAAA;IAC7D,QAAA,OAAO,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;SAClE,CAAA;IAEO,IAAA,aAAA,CAAA,SAAA,CAAA,wBAAwB,GAAxB,UAAyB,CAAmB,EAAE,CAAmB,EAAA;IACvE,QAAA,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;SAC/C,CAAA;QAEO,aAAY,CAAA,SAAA,CAAA,YAAA,GAAZ,UAAa,KAA0B,EAAA;YAAvC,IAaP,KAAA,GAAA,IAAA,CAAA;YAZC,IAAM,iBAAiB,GAAG,MAAM,CAAC;YACjC,IAAM,sBAAsB,GAAG,IAAI,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAClE,IAAM,uBAAuB,GAAG,IAAI,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACnE,QAAA,IAAI,KAAK,CAAC,WAAW,CAAC,KAAK,GAAG,uBAAuB,EAAE;IACrD,YAAA,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,EAAE,iBAAiB,EAAE,GAAI,GAAA,sBAAwB,CAAC,CAAC;IAC3F,SAAA;IAAM,aAAA;IACL,YAAA,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,UAAC,EAAa,EAAA;IAAb,gBAAA,IAAA,EAAA,GAAA,aAAa,EAAZ,IAAI,GAAA,EAAA,CAAA,CAAA,CAAA,EAAE,KAAK,GAAA,EAAA,CAAA,CAAA,CAAA,CAAA;IAChD,gBAAA,IAAI,KAAK,CAAC,WAAW,CAAC,KAAK,IAAI,KAAK,EAAE;IACpC,oBAAA,KAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,EAAE,iBAAiB,EAAE,IAAI,CAAC,CAAC;IACnE,iBAAA;IACH,aAAC,CAAC,CAAC;IACJ,SAAA;SACF,CAAA;;;wJA3EU,aAAa,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAL,aAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAkC,qBAAA,EAAA,EAAA,EAAA,KAAA,EAAAlC,aAAA,CAAA,SAAA,EAAA,CAAA,EAAA,MAAA,EAAAA,aAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;IAAb,mBAAA,aAAA,CAAA,IAAA,GAAAA,aAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,aAAa,+WClB1B,uNAKA,EAAA,MAAA,EAAA,CAAA,otEAAA,CAAA,EAAA,CAAA,CAAA;sHDaa,aAAa,EAAA,UAAA,EAAA,CAAA;sBALzBS,YAAS;IAAC,YAAA,IAAA,EAAA,CAAA;IACT,oBAAA,QAAQ,EAAE,YAAY;IACtB,oBAAA,WAAW,EAAE,uBAAuB;wBACpC,SAAS,EAAE,CAAC,uBAAuB,CAAC;qBACrC,CAAA;oLAEU,KAAK,EAAA,CAAA;0BAAbG,QAAK;oBACG,QAAQ,EAAA,CAAA;0BAAhBA,QAAK;oBAGN,gBAAgB,EAAA,CAAA;0BADfD,cAAW;2BAAC,qCAAqC,CAAA;oBAI9C,kBAAkB,EAAA,CAAA;0BADrBC,QAAK;oBAMN,UAAU,EAAA,CAAA;0BADTA,QAAK;oBAUF,KAAK,EAAA,CAAA;0BADRA,QAAK;oBAWN,IAAI,EAAA,CAAA;0BADHD,cAAW;2BAAC,YAAY,CAAA;oBAGzB,WAAW,EAAA,CAAA;0BADVA,cAAW;2BAAC,mBAAmB,CAAA;oBAEnB,IAAI,EAAA,CAAA;0BAAhBC,QAAK;;;AEzCR,QAAA,mBAAA,kBAAA,YAAA;IANA,IAAA,SAAA,mBAAA,GAAA;IAYE,QAAA,IAAO,CAAA,OAAA,GAAkB,IAAI,CAAC;SAC/B;;;8JAPY,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAAZ,aAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;IAAnB,mBAAA,mBAAA,CAAA,IAAA,GAAAA,aAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,mBAAmB,yNCZhC,uKAKA,EAAA,MAAA,EAAA,CAAA,8sCAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAmB,aAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAAnB,aAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;sHDOa,mBAAmB,EAAA,UAAA,EAAA,CAAA;sBAN/BS,YAAS;IAAC,YAAA,IAAA,EAAA,CAAA;IACT,oBAAA,QAAQ,EAAE,mBAAmB;IAC7B,oBAAA,WAAW,EAAE,8BAA8B;wBAC3C,SAAS,EAAE,CAAC,8BAA8B,CAAC;wBAC3C,eAAe,EAAEC,0BAAuB,CAAC,MAAM;qBAChD,CAAA;kCAEU,KAAK,EAAA,CAAA;0BAAbE,QAAK;oBACG,QAAQ,EAAA,CAAA;0BAAhBA,QAAK;oBACG,WAAW,EAAA,CAAA;0BAAnBA,QAAK;oBAGN,OAAO,EAAA,CAAA;0BAFND,cAAW;2BAAC,OAAO,CAAA;;0BACnBC,QAAK;;;AERR,QAAA,oBAAA,kBAAA,YAAA;IALA,IAAA,SAAA,oBAAA,GAAA;IAMW,QAAA,IAAgB,CAAA,gBAAA,GAAG,QAAQ,CAAC;IAC5B,QAAA,IAAU,CAAA,UAAA,GAAY,KAAK,CAAC;IAC5B,QAAA,IAAQ,CAAA,QAAA,GAAY,KAAK,CAAC;IAIzB,QAAA,IAAA,CAAA,MAAM,GAAG,IAAIwC,eAAY,EAAE,CAAC;IAC5B,QAAA,IAAA,CAAA,UAAU,GAAkC,IAAIA,eAAY,EAAmB,CAAC;SAS3F;QAPC,oBAAY,CAAA,SAAA,CAAA,YAAA,GAAZ,UAAa,SAA0B,EAAA;IACrC,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;SACjC,CAAA;IAED,IAAA,oBAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;IACE,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;SACpB,CAAA;;;+JAhBU,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAApD,aAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;IAApB,mBAAA,oBAAA,CAAA,IAAA,GAAAA,aAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,oBAAoB,0RCTjC,giBAwBA,EAAA,MAAA,EAAA,CAAA,o5BAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAqD,aAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,UAAA,EAAA,oBAAA,EAAA,YAAA,EAAA,OAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAC,mBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,UAAA,EAAA,aAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAC,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,EAAA,eAAA,EAAA,YAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAb,aAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,aAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;sHDfa,oBAAoB,EAAA,UAAA,EAAA,CAAA;sBALhCjC,YAAS;IAAC,YAAA,IAAA,EAAA,CAAA;IACT,oBAAA,QAAQ,EAAE,oBAAoB;IAC9B,oBAAA,WAAW,EAAE,+BAA+B;wBAC5C,SAAS,EAAE,CAAC,+BAA+B,CAAC;qBAC7C,CAAA;kCAEU,gBAAgB,EAAA,CAAA;0BAAxBG,QAAK;oBACG,UAAU,EAAA,CAAA;0BAAlBA,QAAK;oBACG,QAAQ,EAAA,CAAA;0BAAhBA,QAAK;oBACG,MAAM,EAAA,CAAA;0BAAdA,QAAK;oBACG,SAAS,EAAA,CAAA;0BAAjBA,QAAK;oBACG,KAAK,EAAA,CAAA;0BAAbA,QAAK;oBACI,MAAM,EAAA,CAAA;0BAAf4C,SAAM;oBACG,UAAU,EAAA,CAAA;0BAAnBA,SAAM;;;;;;;;;;;;;;;;;;;;;;IENT,IAAA,iBAAA,kBAAA,YAAA;IACE,IAAA,SAAA,iBAAA,CAAoB,oBAAqC,EAAA;IAArC,QAAA,IAAoB,CAAA,oBAAA,GAApB,oBAAoB,CAAiB;SAAI;QAEhD,iBAAe,CAAA,SAAA,CAAA,eAAA,GAAf,UAAgB,MAAyB,EAAA;;;;;;IAC9C,wBAAA,MAAM,GAAG,IAAIJ,eAAY,EAAE,CAAC;IAC5B,wBAAA,UAAU,GAAG,IAAIA,eAAY,EAAmB,CAAC;IAEtC,wBAAA,OAAA,CAAA,CAAA,YAAM,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC;IACtD,gCAAA,SAAS,EAAE,oBAAoB;IAC/B,gCAAA,QAAQ,EAAE,CAAC,eAAe,EAAE,oBAAoB,CAAC;oCACjD,cAAc,EAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EACT,MAAM,CAAA,EAAA,EACT,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,UAAU,EACvB,CAAA;IACD,gCAAA,eAAe,EAAE,IAAI;IACtB,6BAAA,CAAC,CAAA,CAAA;;IATI,wBAAA,QAAQ,GAAG,EASf,CAAA,IAAA,EAAA,CAAA;IAEI,wBAAA,kBAAkB,GAAiB,MAAM,CAAC,SAAS,CAAC,YAAM,EAAA,OAAA,QAAQ,CAAC,OAAO,EAAE,CAAlB,EAAkB,CAAC,CAAC;IAC9E,wBAAA,sBAAsB,GAAiB,UAAU,CAAC,SAAS,CAAC,UAAC,IAAI,EACrE,EAAA,OAAA,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAtB,EAAsB,CACvB,CAAC;IACI,wBAAA,YAAY,GAAG,QAAQ,CAAC,YAAY,EAAE,CAAC;IAC7C,wBAAA,YAAY,CAAC,IAAI,CAAC,UAAC,CAAC,EAAA;gCAClB,kBAAkB,CAAC,WAAW,EAAE,CAAC;gCACjC,sBAAsB,CAAC,WAAW,EAAE,CAAC;IACvC,yBAAC,CAAC,CAAC;IAEH,wBAAA,OAAA,CAAA,CAAA,YAAM,QAAQ,CAAC,OAAO,EAAE,CAAA,CAAA;;IAAxB,wBAAA,EAAA,CAAA,IAAA,EAAwB,CAAC;4BACzB,OAAO,CAAA,CAAA,aAAA;oCACL,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC;IACxC,gCAAA,aAAa,EAAE,QAAQ,CAAC,aAAa,EAAE;IACvC,gCAAA,YAAY,EAAE,QAAQ,CAAC,YAAY,EAAE;iCACtC,CAAC,CAAA;;;IACH,SAAA,CAAA,CAAA;SAAA,CAAA;;;4JAlCU,iBAAiB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAjC,aAAA,CAAA,eAAA,EAAA,CAAA,EAAA,MAAA,EAAAnB,aAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;gKAAjB,iBAAiB,EAAA,CAAA,CAAA;sHAAjB,iBAAiB,EAAA,UAAA,EAAA,CAAA;sBAD7BK,aAAU;;;ACOX,QAAA,mBAAA,kBAAA,YAAA;IAAA,IAAA,SAAA,mBAAA,GAAA;;IASE,IAAA,mBAAA,CAAA,SAAA,CAAA,kBAAkB,GAAlB,YAAA;YAAA,IAQC,KAAA,GAAA,IAAA,CAAA;YAPC,IAAI,CAAC,0BAA0B,EAAE,CAAC;IAElC;IAC+D;IAC/D,QAAA,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,SAAS,CAAC,YAAA;gBACpC,UAAU,CAAC,YAAM,EAAA,OAAA,KAAI,CAAC,0BAA0B,EAAE,CAAA,EAAA,CAAC,CAAC;IACtD,SAAC,CAAC,CAAC;SACJ,CAAA;IAED;;;IAGG;IACK,IAAA,mBAAA,CAAA,SAAA,CAAA,0BAA0B,GAA1B,YAAA;YACN,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,UAAC,MAAM,EAAE,KAAK,EAAA;IACxC,YAAA,IAAI,KAAK,KAAK,CAAC,IAAI,MAAM,CAAC,iBAAiB;oBAAE,OAAO;IAEpD,YAAA,IAAI,CAAC,MAAM,CAAC,iBAAiB,EAAE;IAC7B,gBAAA,MAAM,CAAC,cAAc,GAAG,GAAG,CAAC;IAC7B,aAAA;IACH,SAAC,CAAC,CAAC;SACJ,CAAA;;;8JA/BU,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAAL,aAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;uIAAnB,mBAAmB,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,KAAA,EAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,SAAA,EAMb,eAAe,EAAA,CAAA,EAAA,QAAA,EAAAA,aAAA,EAAA,QAAA,ECvBlC,kYAUA,EAAA,MAAA,EAAA,CAAA,y8CAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAa,aAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,MAAA,EAAA,YAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAL,aAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAAR,aAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;sHDOa,mBAAmB,EAAA,UAAA,EAAA,CAAA;sBAN/BS,YAAS;IAAC,YAAA,IAAA,EAAA,CAAA;IACT,oBAAA,QAAQ,EAAE,mBAAmB;IAC7B,oBAAA,WAAW,EAAE,8BAA8B;wBAC3C,SAAS,EAAE,CAAC,8BAA8B,CAAC;wBAC3C,eAAe,EAAEC,0BAAuB,CAAC,MAAM;qBAChD,CAAA;kCAEU,QAAQ,EAAA,CAAA;0BAAhBE,QAAK;oBACG,cAAc,EAAA,CAAA;0BAAtBA,QAAK;oBACG,KAAK,EAAA,CAAA;0BAAbA,QAAK;oBACG,QAAQ,EAAA,CAAA;0BAAhBA,QAAK;oBAGE,cAAc,EAAA,CAAA;0BADrB6C,kBAAe;2BAAC,eAAe,CAAA;;;AETlC,QAAA,mBAAA,kBAAA,YAAA;IATA,IAAA,SAAA,mBAAA,GAAA;IAUU,QAAA,IAAU,CAAA,UAAA,GAAG,IAAI,CAAC;SAqG3B;IApGC,IAAA,MAAA,CAAA,cAAA,CACI,mBAAS,CAAA,SAAA,EAAA,WAAA,EAAA;IADb,QAAA,GAAA,EAAA,YAAA;gBAEE,OAAO,IAAI,CAAC,UAAU,CAAC;aACxB;;;IAAA,KAAA,CAAA,CAAA;IAGD,IAAA,MAAA,CAAA,cAAA,CACI,mBAAS,CAAA,SAAA,EAAA,WAAA,EAAA;IADb,QAAA,GAAA,EAAA,YAAA;gBAEE,OAAO,IAAI,CAAC,UAAU,CAAC;aACxB;;;IAAA,KAAA,CAAA,CAAA;IAGD,IAAA,MAAA,CAAA,cAAA,CACI,mBAAW,CAAA,SAAA,EAAA,aAAA,EAAA;IADf,QAAA,GAAA,EAAA,YAAA;gBAEE,OAAO,IAAI,CAAC,YAAY,CAAC;aAC1B;;;IAAA,KAAA,CAAA,CAAA;IAGD,IAAA,MAAA,CAAA,cAAA,CACI,mBAAU,CAAA,SAAA,EAAA,YAAA,EAAA;IADd,QAAA,GAAA,EAAA,YAAA;gBAEE,OAAO,IAAI,CAAC,WAAW,CAAC;aACzB;;;IAAA,KAAA,CAAA,CAAA;IAGD,IAAA,MAAA,CAAA,cAAA,CACI,mBAAS,CAAA,SAAA,EAAA,WAAA,EAAA;IADb,QAAA,GAAA,EAAA,YAAA;gBAEE,OAAO,IAAI,CAAC,UAAU,CAAC;aACxB;;;IAAA,KAAA,CAAA,CAAA;IAGD,IAAA,MAAA,CAAA,cAAA,CACI,mBAAS,CAAA,SAAA,EAAA,WAAA,EAAA;IADb,QAAA,GAAA,EAAA,YAAA;gBAEE,OAAO,IAAI,CAAC,UAAU,CAAC;aACxB;;;IAAA,KAAA,CAAA,CAAA;IAGD,IAAA,MAAA,CAAA,cAAA,CACI,mBAAQ,CAAA,SAAA,EAAA,UAAA,EAAA;IADZ,QAAA,GAAA,EAAA,YAAA;gBAEE,OAAO,IAAI,CAAC,SAAS,CAAC;aACvB;;;IAAA,KAAA,CAAA,CAAA;IAGD,IAAA,MAAA,CAAA,cAAA,CACI,mBAAO,CAAA,SAAA,EAAA,SAAA,EAAA;IADX,QAAA,GAAA,EAAA,YAAA;gBAEE,OAAO,IAAI,CAAC,QAAQ,CAAC;aACtB;;;IAAA,KAAA,CAAA,CAAA;IAGD,IAAA,MAAA,CAAA,cAAA,CACI,mBAAQ,CAAA,SAAA,EAAA,UAAA,EAAA;IADZ,QAAA,GAAA,EAAA,YAAA;gBAEE,OAAO,IAAI,CAAC,SAAS,CAAC;aACvB;;;IAAA,KAAA,CAAA,CAAA;IAGD,IAAA,MAAA,CAAA,cAAA,CACI,mBAAM,CAAA,SAAA,EAAA,QAAA,EAAA;IADV,QAAA,GAAA,EAAA,YAAA;gBAEE,OAAO,IAAI,CAAC,OAAO,CAAC;aACrB;;;IAAA,KAAA,CAAA,CAAA;IAGD,IAAA,MAAA,CAAA,cAAA,CACI,mBAAO,CAAA,SAAA,EAAA,SAAA,EAAA;IADX,QAAA,GAAA,EAAA,YAAA;gBAEE,OAAO,IAAI,CAAC,QAAQ,CAAC;aACtB;;;IAAA,KAAA,CAAA,CAAA;IAGD,IAAA,MAAA,CAAA,cAAA,CACI,mBAAiB,CAAA,SAAA,EAAA,mBAAA,EAAA;IADrB,QAAA,GAAA,EAAA,YAAA;gBAEE,OAAO,IAAI,CAAC,kBAAkB,CAAC;aAChC;;;IAAA,KAAA,CAAA,CAAA;IAGD,IAAA,MAAA,CAAA,cAAA,CACI,mBAAiB,CAAA,SAAA,EAAA,mBAAA,EAAA;IADrB,QAAA,GAAA,EAAA,YAAA;gBAEE,OAAO,IAAI,CAAC,kBAAkB,CAAC;aAChC;;;IAAA,KAAA,CAAA,CAAA;IAGD,IAAA,MAAA,CAAA,cAAA,CACI,mBAAgB,CAAA,SAAA,EAAA,kBAAA,EAAA;IADpB,QAAA,GAAA,EAAA,YAAA;gBAEE,OAAO,IAAI,CAAC,iBAAiB,CAAC;aAC/B;;;IAAA,KAAA,CAAA,CAAA;IAED,IAAA,MAAA,CAAA,cAAA,CAAa,mBAAU,CAAA,SAAA,EAAA,YAAA,EAAA;IAAvB,QAAA,GAAA,EAAA,UAAwB,KAAiB,EAAA;IACvC,YAAA,IAAI,CAAC,UAAU,GAAG,CAAC,KAAK,CAAC;IACzB,YAAA,IAAI,CAAC,UAAU,GAAG,KAAK,KAAK,SAAS,CAAC;IACtC,YAAA,IAAI,CAAC,YAAY,GAAG,KAAK,KAAK,WAAW,CAAC;IAC1C,YAAA,IAAI,CAAC,WAAW,GAAG,KAAK,KAAK,UAAU,CAAC;IACxC,YAAA,IAAI,CAAC,UAAU,GAAG,KAAK,KAAK,SAAS,CAAC;IACtC,YAAA,IAAI,CAAC,UAAU,GAAG,KAAK,KAAK,SAAS,CAAC;IACtC,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK,KAAK,QAAQ,CAAC;IACpC,YAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,KAAK,OAAO,CAAC;IAClC,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK,KAAK,QAAQ,CAAC;IACpC,YAAA,IAAI,CAAC,OAAO,GAAG,KAAK,KAAK,MAAM,CAAC;IAChC,YAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,KAAK,OAAO,CAAC;gBAClC,IAAM,eAAe,GAAGC,gBAAW,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;IAC9D,YAAA,IAAI,CAAC,kBAAkB,GAAG,eAAe,KAAK,OAAO,CAAC;IACtD,YAAA,IAAI,CAAC,kBAAkB,GAAG,eAAe,KAAK,OAAO,CAAC;IACtD,YAAA,IAAI,CAAC,iBAAiB,GAAG,eAAe,KAAK,MAAM,CAAC;aACrD;;;IAAA,KAAA,CAAA,CAAA;;;8JArGU,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA1D,aAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;uIAAnB,mBAAmB,EAAA,QAAA,EAAA,uPAAA,EAAA,MAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,eAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,gBAAA,EAAA,cAAA,EAAA,eAAA,EAAA,aAAA,EAAA,cAAA,EAAA,cAAA,EAAA,eAAA,EAAA,YAAA,EAAA,aAAA,EAAA,aAAA,EAAA,cAAA,EAAA,oCAAA,EAAA,wBAAA,EAAA,oCAAA,EAAA,wBAAA,EAAA,mCAAA,EAAA,uBAAA,EAAA,EAAA,EAAA,QAAA,EAAAA,aAAA,EAAA,CAAA,CAAA;sHAAnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;sBAT/BC,YAAS;IAAC,YAAA,IAAA,EAAA,CAAA;;IAET,oBAAA,QAAQ,EAAE,uPAK+B;qBAC1C,CAAA;kCAIK,SAAS,EAAA,CAAA;0BADZU,cAAW;2BAAC,eAAe,CAAA;oBAOxB,SAAS,EAAA,CAAA;0BADZA,cAAW;2BAAC,eAAe,CAAA;oBAOxB,WAAW,EAAA,CAAA;0BADdA,cAAW;2BAAC,iBAAiB,CAAA;oBAO1B,UAAU,EAAA,CAAA;0BADbA,cAAW;2BAAC,gBAAgB,CAAA;oBAOzB,SAAS,EAAA,CAAA;0BADZA,cAAW;2BAAC,eAAe,CAAA;oBAOxB,SAAS,EAAA,CAAA;0BADZA,cAAW;2BAAC,eAAe,CAAA;oBAOxB,QAAQ,EAAA,CAAA;0BADXA,cAAW;2BAAC,cAAc,CAAA;oBAOvB,OAAO,EAAA,CAAA;0BADVA,cAAW;2BAAC,aAAa,CAAA;oBAOtB,QAAQ,EAAA,CAAA;0BADXA,cAAW;2BAAC,cAAc,CAAA;oBAOvB,MAAM,EAAA,CAAA;0BADTA,cAAW;2BAAC,YAAY,CAAA;oBAOrB,OAAO,EAAA,CAAA;0BADVA,cAAW;2BAAC,aAAa,CAAA;oBAOtB,iBAAiB,EAAA,CAAA;0BADpBA,cAAW;2BAAC,oCAAoC,CAAA;oBAO7C,iBAAiB,EAAA,CAAA;0BADpBA,cAAW;2BAAC,oCAAoC,CAAA;oBAO7C,gBAAgB,EAAA,CAAA;0BADnBA,cAAW;2BAAC,mCAAmC,CAAA;oBAKnC,UAAU,EAAA,CAAA;0BAAtBC,QAAK;;;IC/ER,IAAA,cAAA,kBAAA,YAAA;QAuBE,SAAoB,cAAA,CAAA,UAAmC,EAAU,SAAoB,EAAA;IAAjE,QAAA,IAAU,CAAA,UAAA,GAAV,UAAU,CAAyB;IAAU,QAAA,IAAS,CAAA,SAAA,GAAT,SAAS,CAAW;IAtB5E,QAAA,IAAwB,CAAA,wBAAA,GAAG,EAAE,CAAC;IAE/B,QAAA,IAAA,CAAA,OAAO,GAAW,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;SAoBiB;IAjBzF,IAAA,MAAA,CAAA,cAAA,CACI,cAAK,CAAA,SAAA,EAAA,OAAA,EAAA;IADT,QAAA,GAAA,EAAA,UACU,KAAkC,EAAA;IAC1C,YAAA,IAAI,CAAC,MAAM,GAAG,OAAO,KAAK,KAAK,QAAQ,GAAG+C,OAAE,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC;aAC7D;;;IAAA,KAAA,CAAA,CAAA;IAGD,IAAA,MAAA,CAAA,cAAA,CACI,cAAO,CAAA,SAAA,EAAA,SAAA,EAAA;IADX,QAAA,GAAA,EAAA,UACY,OAAoC,EAAA;IAC9C,YAAA,IAAI,CAAC,QAAQ,GAAG,OAAO,OAAO,KAAK,QAAQ,GAAGA,OAAE,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;aACrE;;;IAAA,KAAA,CAAA,CAAA;IAUD,IAAA,cAAA,CAAA,SAAA,CAAA,eAAe,GAAf,YAAA;YAAA,IAKC,KAAA,GAAA,IAAA,CAAA;IAJC,QAAA,UAAU,CAAC,YAAA;IACT,YAAA,KAAI,CAAC,YAAY,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;IACxC,YAAA,KAAI,CAAC,YAAY,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;IACzC,SAAC,EAAE,IAAI,CAAC,wBAAwB,CAAC,CAAC;SACnC,CAAA;IAED,IAAA,cAAA,CAAA,SAAA,CAAA,aAAa,GAAb,YAAA;;IAEE,QAAA,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;SAC7D,CAAA;IAED,IAAA,cAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;IACE,QAAA,IAAM,eAAe,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAC3E,QAAA,eAAe,IAAI,eAAe,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;SACnD,CAAA;IAED,IAAA,cAAA,CAAA,SAAA,CAAA,IAAI,GAAJ,YAAA;IACE,QAAA,IAAM,eAAe,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAC3E,QAAA,eAAe,IAAI,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;SAClD,CAAA;;;yJA7CU,cAAc,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA3D,aAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAuB,SAAA,EAAA,CAAA,EAAA,MAAA,EAAAvB,aAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;IAAd,mBAAA,cAAA,CAAA,IAAA,GAAAA,aAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,cAAc,yaCpB3B,qrBA6BA,EAAA,MAAA,EAAA,CAAA,wNAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAA4D,mBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,gBAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAL,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,EAAA,eAAA,EAAA,YAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAM,mBAAA,EAAA,QAAA,EAAA,uPAAA,EAAA,MAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAC,aAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,OAAA,EAAAA,aAAA,CAAA,SAAA,EAAA,EAAA,eAAA,EAAA9D,aAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;sHDTa,cAAc,EAAA,UAAA,EAAA,CAAA;sBAR1BS,YAAS;IAAC,YAAA,IAAA,EAAA,CAAA;IACT,oBAAA,QAAQ,EAAE,aAAa;IACvB,oBAAA,WAAW,EAAE,wBAAwB;wBACrC,SAAS,EAAE,CAAC,wBAAwB,CAAC;;IAErC,oBAAA,IAAI,EAAE,EAAE,kBAAkB,EAAE,OAAO,EAAE;wBACrC,eAAe,EAAEC,0BAAuB,CAAC,MAAM;qBAChD,CAAA;qIAGsD,YAAY,EAAA,CAAA;0BAAhEsC,YAAS;oBAAC,IAAA,EAAA,CAAA,cAAc,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;oBAKvC,KAAK,EAAA,CAAA;0BADRpC,QAAK;oBAOF,OAAO,EAAA,CAAA;0BADVA,QAAK;oBAKG,QAAQ,EAAA,CAAA;0BAAhBA,QAAK;oBACG,cAAc,EAAA,CAAA;0BAAtBA,QAAK;oBACG,KAAK,EAAA,CAAA;0BAAbA,QAAK;oBACG,kBAAkB,EAAA,CAAA;0BAA1BA,QAAK;oBACG,SAAS,EAAA,CAAA;0BAAjBA,QAAK;;;;;;;;;;;;;;;;;;;;;;IEhCR,IAAA,WAAA,kBAAA,YAAA;IACE,IAAA,SAAA,WAAA,CAAoB,oBAAqC,EAAA;IAArC,QAAA,IAAoB,CAAA,oBAAA,GAApB,oBAAoB,CAAiB;SAAI;QAEhD,WAAS,CAAA,SAAA,CAAA,SAAA,GAAT,UAAU,MAAmB,EAAA;;;;;IACvB,oBAAA,KAAA,CAAA,EAAA,OAAA,CAAA,CAAA,YAAM,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC;IACtD,4BAAA,SAAS,EAAE,cAAc;IACzB,4BAAA,cAAc,EAAE,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC;IAC9C,4BAAA,QAAQ,EAAE,CAAC,eAAe,EAAE,aAAa,CAAC;IAC1C,4BAAA,IAAI,EAAE,KAAK;IACX,4BAAA,eAAe,EAAE,KAAK;IACvB,yBAAA,CAAC,CAAA,CAAA;;IANI,wBAAA,QAAQ,GAAG,EAMf,CAAA,IAAA,EAAA,CAAA;IAEF,wBAAA,OAAA,CAAA,CAAA,YAAM,QAAQ,CAAC,OAAO,EAAE,CAAA,CAAA;;IAAxB,wBAAA,EAAA,CAAA,IAAA,EAAwB,CAAC;4BACzB,OAAO,CAAA,CAAA,aAAA;oCACL,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC;IACxC,gCAAA,aAAa,EAAE,QAAQ,CAAC,aAAa,EAAE;IACvC,gCAAA,YAAY,EAAE,QAAQ,CAAC,YAAY,EAAE;iCACtC,CAAC,CAAA;;;IACH,SAAA,CAAA,CAAA;SAAA,CAAA;QAEO,WAAiB,CAAA,SAAA,CAAA,iBAAA,GAAjB,UAAkB,MAAmB,EAAA;IAC3C,QAAA,OACK,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,MAAM,KACT,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAC5B,SAAS,EAAE,MAAM,CAAC,SAAS,EAC3B,kBAAkB,EAAE,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,EACtD,QAAQ,EAAE,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,EACzC,cAAc,EAAE,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,EACrD,CAAA,CAAA;SACH,CAAA;QAEO,WAAQ,CAAA,SAAA,CAAA,QAAA,GAAR,UAAS,MAAmB,EAAA;IAClC,QAAA,IAAI,IAAY,CAAC;YAEjB,IAAI,MAAM,CAAC,KAAK,EAAE;IAChB,YAAA,IAAI,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,EAAE;IACpC,gBAAA,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC;IACrB,aAAA;IAAM,iBAAA;IACL,gBAAA,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC;IAC1B,aAAA;IACF,SAAA;IACD,QAAA,OAAO,IAAI,CAAC;SACb,CAAA;QAED,WAAqB,CAAA,SAAA,CAAA,qBAAA,GAArB,UAAsB,MAAM,EAAA;IAC1B,QAAA,OAAO,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,aAAa,GAAG,SAAS,CAAC;SAClF,CAAA;;;sJA9CU,WAAW,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAO,aAAA,CAAA,eAAA,EAAA,CAAA,EAAA,MAAA,EAAAnB,aAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;0JAAX,WAAW,EAAA,CAAA,CAAA;sHAAX,WAAW,EAAA,UAAA,EAAA,CAAA;sBADvBK,aAAU;;;;;;;;;;;;;;;;;;;;;;ICAX,IAAA,sBAAA,kBAAA,YAAA;QACE,SAAoB,sBAAA,CAAA,MAAc,EAAU,KAAqB,EAAA;IAA7C,QAAA,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;IAAU,QAAA,IAAK,CAAA,KAAA,GAAL,KAAK,CAAgB;YA0LzD,IAAsB,CAAA,sBAAA,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CACtD0D,gBAAM,CAAC,UAAC,KAAK,EAA6B,EAAA,OAAA,KAAK,YAAYC,kBAAa,CAA9B,EAA8B,CAAC,CAC1E,CAAC;SA5LmE;QAErE,sBAAY,CAAA,SAAA,CAAA,YAAA,GAAZ,UAAa,GAAW,EAAA;IACtB,QAAA,OAAO,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;SAChC,CAAA;IAEO,IAAA,sBAAA,CAAA,SAAA,CAAA,wBAAwB,GAAxB,YAAA;IACN,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;YACjC,OAAO,UAAU,CAAC,UAAU,EAAE;IAC5B,YAAA,UAAU,GAAG,UAAU,CAAC,UAAU,CAAC;IACpC,SAAA;IACD,QAAA,OAAO,UAAU,CAAC;SACnB,CAAA;IAEa,IAAA,sBAAA,CAAA,SAAA,CAAA,cAAc,GAAd,UACZ,WAAqB,EACrB,mBAA4B,EAAA;;;;;;4BAEtB,eAAe,GAAW,EAAE,CAAC,MAAM,OAAT,EAAE,EAAA,aAAA,CAAA,EAAA,EAAA,MAAA,CAAW,WAAW,CAAA,CAAA,CAAC,CAAC;4BACtD,WAAW,GAAa,EAAE,CAAC;4BACP,OAAM,CAAA,CAAA,YAAA,IAAI,CAAC,iBAAiB,CAAC,eAAe,EAAE,mBAAmB,CAAC,CAAA,CAAA;;IAApF,wBAAA,eAAe,GAAG,EAAkE,CAAA,IAAA,EAAA,CAAA;IAC1F,wBAAA,IAAI,eAAe,EAAE;gCACnB,WAAW,GAAG,IAAI,CAAC,kBAAkB,CAAC,eAAe,EAAE,eAAe,CAAC,CAAC;IACzE,yBAAA;IACD,wBAAA,OAAA,CAAA,CAAA,aAAO,WAAW,CAAC,CAAA;;;IACpB,SAAA,CAAA,CAAA;SAAA,CAAA;IAEa,IAAA,sBAAA,CAAA,SAAA,CAAA,iBAAiB,GAAjB,UAAkB,MAAc,EAAE,mBAA4B,EAAA;;;;;;IAC1E,wBAAA,IAAI,mBAAmB,EAAE;IACjB,4BAAA,YAAY,GAAG,mBAAmB;IACrC,iCAAA,IAAI,EAAE;qCACN,KAAK,CAAC,GAAG,CAAC;qCACV,MAAM,CAAC,UAAC,IAAI,EAAK,EAAA,OAAA,CAAC,CAAC,IAAI,CAAA,EAAA,CAAC,CAAC;IACtB,4BAAA,QAAQ,GAAG,CAAC,EAAE,CAAC,CAAC;IACtB,4BAAA,OAAA,CAAA,CAAA,aAAO,QAAQ,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAA;IACtC,yBAAA;IAEyB,wBAAA,OAAA,CAAA,CAAA,YAAM,IAAI,CAAC,oBAAoB,EAAE,CAAA,CAAA;;IAArD,wBAAA,iBAAiB,GAAG,EAAiC,CAAA,IAAA,EAAA,CAAA;4BACrD,eAAe,GAAG,IAAI,CAAC,iCAAiC,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC;IAC1F,wBAAA,OAAA,CAAA,CAAA,aAAO,eAAe,CAAC,CAAA;;;IACxB,SAAA,CAAA,CAAA;SAAA,CAAA;IAEa,IAAA,sBAAA,CAAA,SAAA,CAAA,oBAAoB,GAApB,YAAA;;;;;;IACN,wBAAA,QAAQ,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,wBAAA,iBAAiB,GAAG,IAAI,CAAC,MAAM,CAAC,oBAAoB,EAAE,CAAC;4BAE7D,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,CAAC,iBAAiB,EAAE;;IAEhD,4BAAA,OAAA,CAAA,CAAA,aAAO,QAAQ,CAAC,CAAA;IACjB,yBAAA;IAEG,wBAAA,IAAA,CAAA,iBAAiB,EAAjB,OAAiB,CAAA,CAAA,YAAA,CAAA,CAAA,CAAA;;IAEnB,wBAAA,OAAA,CAAA,CAAA,YAAM,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAClC,eAAK,EAAE,CAAC,CAAC,SAAS,EAAE,CAAA,CAAA;;;IAA3D,wBAAA,EAAA,CAAA,IAAA,EAA2D,CAAC;;;4BAG1D,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC;4BAC1C,OAAO,UAAU,CAAC,UAAU,EAAE;IAC5B,4BAAA,UAAU,GAAG,UAAU,CAAC,UAAU,CAAC;IACpC,yBAAA;IACK,wBAAA,wBAAwB,GAAG,UAAU,CAAC,YAAY,CAAC,MAAM,CAC7D,UAAC,KAAK,IAAK,OAAA,KAAK,CAAC,MAAM,KAAK,OAAO,CAAxB,EAAwB,CACpC,CAAC;4BAEF,OAAO,CAAA,CAAA,aAAA,QAAQ,CAAC,MAAM,CAAA,KAAA,CAAf,QAAQ,EACV,aAAA,CAAA,EAAA,EAAA,MAAA,CAAA,wBAAwB,CAAC,GAAG,CAAC,UAAC,KAAK,EACpC,EAAA,OAAA,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,UAAC,OAAO,EAAK,EAAA,OAAA,CAAC,CAAC,OAAO,CAAC,IAAI,CAAA,EAAA,CAAC,CAAC,GAAG,CAAC,UAAC,OAAO,IAAK,OAAA,OAAO,CAAC,IAAI,CAAA,EAAA,CAAC,CAAA,EAAA,CAC7E,CACD,CAAA,CAAA,CAAA,CAAA;;;IACH,SAAA,CAAA,CAAA;SAAA,CAAA;IAEO,IAAA,sBAAA,CAAA,SAAA,CAAA,iCAAiC,GAAjC,UAAkC,UAAoB,EAAE,MAAc,EAAA;YAC5E,IAAI,CAAC,UAAU,CAAC,MAAM;IAAE,YAAA,OAAO,UAAU,CAAC;IAE1C,QAAA,IAAM,iBAAiB,GAAG,IAAI,CAAC,oBAAoB,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC;IAElF,QAAA,IAAI,CAAC,iBAAiB;IAAE,YAAA,OAAO,UAAU,CAAC;YAE1C,IAAM,eAAe,GAAG,KAAK,CAAC;YAC9B,IAAM,kBAAkB,GAAG,iBAAiB,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;YAC1E,IAAM,iBAAiB,GAAG,kBAAkB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/D,QAAA,IAAM,8BAA8B,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,iBAAiB,CAAC,CAAC;IAC/E,QAAA,OAAO,8BAA8B,CAAC;SACvC,CAAA;IAEO,IAAA,sBAAA,CAAA,SAAA,CAAA,oBAAoB,GAApB,UAAqB,GAAW,EAAE,MAAc,EAAA;YAAhD,IAYP,KAAA,GAAA,IAAA,CAAA;YAXC,IAAM,mBAAmB,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;IAC9E,QAAA,IAAI,iBAAiB,GAAG,mBAAmB,CAAC,IAAI,CAAC,UAAC,IAAI,EAAA,EAAK,OAAA,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAlB,EAAkB,CAAC,CAAC;YAC/E,IAAI,CAAC,iBAAiB,EAAE;;gBAEtB,IAAM,YAAU,GAAG,KAAK,CAAC;IACzB,YAAA,iBAAiB,GAAG,mBAAmB,CAAC,IAAI,CAC1C,UAAC,IAAI,EAAA,EACH,OAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,KAAI,CAAC,mCAAmC,CAAC,GAAG,EAAE,IAAI,EAAE,YAAU,CAAC,CAAtF,EAAsF,CACzF,CAAC;IACH,SAAA;IACD,QAAA,OAAO,iBAAiB,CAAC;SAC1B,CAAA;IAEO,IAAA,sBAAA,CAAA,SAAA,CAAA,mCAAmC,GAAnC,UACN,IAAY,EACZ,uBAA+B,EAC/B,UAAmB,EAAA;YAEnB,IAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACrC,IAAM,eAAe,GAAG,KAAK,CAAC;YAC9B,IAAI,iBAAiB,GAAG,uBAAuB,CAAC;YAChD,IAAI,CAAC,UAAU,EAAE;gBACf,IAAM,kBAAkB,GAAG,uBAAuB,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;gBAChF,iBAAiB,GAAG,kBAAkB,CAAC;IACxC,SAAA;YACD,IAAM,kBAAkB,GAAG,iBAAiB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;;;YAGxD,IAAM,sBAAsB,GAAG,kBAAkB,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,UAAC,iBAAiB,EAAA;IAClF,YAAA,IAAM,WAAW,GAAG,YAAY,CAAC,GAAG,EAAE,CAAC;;gBAEvC,OAAO,iBAAiB,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,iBAAiB,KAAK,WAAW,CAAC;IAChF,SAAC,CAAC,CAAC;IACH,QAAA,IAAI,UAAU,EAAE;;IAEd,YAAA,OAAO,YAAY,CAAC,MAAM,KAAK,CAAC,IAAI,sBAAsB,CAAC;IAC5D,SAAA;IACD,QAAA,OAAO,sBAAsB,CAAC;SAC/B,CAAA;IAEO,IAAA,sBAAA,CAAA,SAAA,CAAA,aAAa,GAAb,UAAc,MAAc,EAAE,UAAoB,EAAA;YAAlD,IAIP,KAAA,GAAA,IAAA,CAAA;IAHC,QAAA,OAAO,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;IAC1B,cAAG,EAAe,CAAC,MAAM,CAAtB,KAAA,CAAA,EAAe,EAAW,aAAA,CAAA,EAAA,EAAA,MAAA,CAAA,MAAM,CAAC,GAAG,CAAC,UAAC,KAAK,EAAK,EAAA,OAAA,KAAI,CAAC,YAAY,CAAC,KAAK,EAAE,UAAU,CAAC,CAApC,EAAoC,CAAC,CAAA,CAAA,CAAA,GACtF,EAAE,CAAC;SACR,CAAA;IAEO,IAAA,sBAAA,CAAA,SAAA,CAAA,YAAY,GAAZ,UAAa,KAAY,EAAE,UAAoB,EAAA;YACrD,IAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,QAAA,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM;gBAAE,OAAO,MAAM,CAAC;IAElC,QAAA,IAAM,WAAW,GAAA,aAAA,CAAA,EAAA,EAAA,MAAA,CAAO,UAAU,CAAA,CAAC,CAAC;IACpC,QAAA,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE;IAChB,YAAA,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAC7B,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IACpC,SAAA;IAED,QAAA,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC;SACvE,CAAA;IAEO,IAAA,sBAAA,CAAA,SAAA,CAAA,iBAAiB,GAAjB,UAAkB,KAAY,EAAE,UAAoB,EAAA;YAC1D,IAAM,eAAe,GAAG,OAAO,CAAC;YAChC,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,MAAM,KAAK,eAAe,EAAE;gBACpD,IAAM,eAAe,GAAG,GAAI,GAAA,eAAe,SAAI,KAAK,CAAC,IAAI,GAAA,GAAG,CAAC;gBAC7D,IAAM,cAAc,GAAG,aAAA,CAAA,aAAA,CAAA,EAAA,EAAA,MAAA,CAAI,UAAU,CAAA,CAAA,EAAA,CAAE,eAAe,CAAA,CAAA,CAAE,IAAI,CAAC,GAAG,CAAC,CAAC;gBAClE,OAAO,CAAC,cAAc,CAAC,CAAC;IACzB,SAAA;IACD,QAAA,IAAM,WAAW,GAAA,aAAA,CAAA,EAAA,EAAA,MAAA,CAAO,UAAU,CAAA,CAAC,CAAC;IACpC,QAAA,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE;IAChB,YAAA,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC9B,SAAA;IACD,QAAA,OAAQ,EAAe,CAAC,MAAM,CAAtB,KAAA,CAAA,EAAe,2BAAW,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAE,CAAA,CAAA,CAAA;SACzF,CAAA;IAEO,IAAA,sBAAA,CAAA,SAAA,CAAA,kBAAkB,GAAlB,UAAmB,MAAc,EAAE,UAAoB,EAAA;YAAvD,IAIP,KAAA,GAAA,IAAA,CAAA;IAHC,QAAA,OAAO,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;IAC1B,cAAG,EAAe,CAAC,MAAM,CAAtB,KAAA,CAAA,EAAe,EAAW,aAAA,CAAA,EAAA,EAAA,MAAA,CAAA,MAAM,CAAC,GAAG,CAAC,UAAC,KAAK,EAAK,EAAA,OAAA,KAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,UAAU,CAAC,CAAzC,EAAyC,CAAC,CAAA,CAAA,CAAA,GAC3F,EAAE,CAAC;SACR,CAAA;QAEO,sBAAgB,CAAA,SAAA,CAAA,gBAAA,GAAhB,UAAiB,aAA4B,EAAA;YACnD,IAAM,iBAAiB,GAAG,IAAI,CAAC,MAAM,CAAC,oBAAoB,EAAE,CAAC;IAC7D,QAAA,IAAI,CAAC,iBAAiB,IAAI,CAAC,iBAAiB,CAAC,kBAAkB,EAAE;IAC/D,YAAA,OAAO,IAAI,CAAC;IACb,SAAA;IACD,QAAA,IAAM,iBAAiB,GAAG,CACxB,iBAAiB,CAAC,kBAAkB,CAAC,QAAQ;gBAC7C,iBAAiB,CAAC,kBAAkB,CAAC,YAAY,EACjD,QAAQ,EAAE,CAAC;YACb,IAAM,aAAa,GAAG,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC;YAC3D,IAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAC;IACxE,QAAA,IAAI,CAAC,aAAa,IAAI,YAAY,EAAE;IAClC,YAAA,OAAO,IAAI,CAAC;IACb,SAAA;IAED,QAAA,IAAM,uBAAuB,GAAG,aAAa,CAAC,iBAAiB,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;YACrF,IAAM,wBAAwB,GAAG,iBAAiB,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;YAExE,OAAO,wBAAwB,KAAK,uBAAuB,CAAC;SAC7D,CAAA;IAMa,IAAA,sBAAA,CAAA,SAAA,CAAA,wCAAwC,GAAxC,YAAA;;;;;;IACR,wBAAA,IAAA,CAAA,IAAI,CAAC,MAAM,CAAC,oBAAoB,EAAE,EAAlC,OAAkC,CAAA,CAAA,YAAA,CAAA,CAAA,CAAA;IACP,wBAAA,OAAA,CAAA,CAAA,YAAM,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAACA,eAAK,EAAE,CAAC,CAAC,SAAS,EAAE,CAAA,CAAA;;IAAlF,wBAAA,oBAAoB,GAAG,EAA2D,CAAA,IAAA,EAAA,CAAA;4BACxF,OAAO,CAAA,CAAA,aAAA,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAACmC,mBAAS,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAA;gCAE3E,OAAO,CAAA,CAAA,aAAA,IAAI,CAAC,sBAAsB,CAAC,CAAA;;;IACpC,SAAA,CAAA,CAAA;SAAA,CAAA;IAEO,IAAA,sBAAA,CAAA,SAAA,CAAA,sBAAsB,GAAtB,UACN,cAAyC,EACzC,aAA0B,EAC1B,4BAAqC,EAAA;YAH/B,IAcP,KAAA,GAAA,IAAA,CAAA;IATC,QAAA,OAAO,cAAc,CAAC,IAAI,CACxBF,gBAAM,CAAC,UAAC,aAAa,EACnB,EAAA,OAAA,KAAI,CAAC,yBAAyB,CAAC,aAAa,EAAE,aAAa,EAAE,4BAA4B,CAAC,CAAA,EAAA,CAC3F,EACDG,aAAG,CAAC,UAAC,aAAa,EAAA,EAAK,QAAC;IACtB,YAAA,KAAK,EAAE,KAAI,CAAC,wBAAwB,EAAE;IACtC,YAAA,UAAU,EAAE,KAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC;IACjD,SAAA,EAHsB,EAGrB,CAAC,CACJ,CAAC;SACH,CAAA;IAEO,IAAA,sBAAA,CAAA,SAAA,CAAA,wBAAwB,GAAxB,UACN,cAAyC,EACzC,aAA0B,EAC1B,4BAAqC,EAAA;YAH/B,IAiBP,KAAA,GAAA,IAAA,CAAA;YAZC,OAAO,cAAc,CAAC,IAAI,CACxBC,kBAAQ,EAAE,EACVJ,gBAAM,CAAC,UAAC,EAAmB,EAAA;IAAnB,YAAA,IAAA,EAAA,GAAA,aAAmB,EAAlB,cAAc,GAAA,EAAA,CAAA,CAAA,CAAA,EAAE,CAAC,GAAA,EAAA,CAAA,CAAA,CAAA,CAAA;gBACxB,OAAA,KAAI,CAAC,yBAAyB,CAAC,aAAa,EAAE,cAAc,EAAE,4BAA4B,CAAC,CAAA;aAAA,CAC5F;YACDG,aAAG,CAAC,UAAC,EAAsB,EAAA;IAAtB,YAAA,IAAA,EAAA,GAAA,aAAsB,EAArB,CAAC,GAAA,EAAA,CAAA,CAAA,CAAA,EAAE,iBAAiB,GAAA,EAAA,CAAA,CAAA,CAAA,CAAA;gBACxB,IAAM,eAAe,GAAG,KAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;;gBAE/E,OAAO,CAAC,eAAe,IAAI,KAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,CAAC;IACtE,SAAC,CAAC,EACFH,gBAAM,CAAC,UAAC,cAAc,EAAK,EAAA,OAAA,cAAc,CAAA,EAAA,CAAC,CAC3C,CAAC;SACH,CAAA;IAEO,IAAA,sBAAA,CAAA,SAAA,CAAA,yBAAyB,GAAzB,UACN,aAA0B,EAC1B,aAA4B,EAC5B,4BAAqC,EAAA;;IAErC,QAAA,IAAM,QAAQ,GAAG,aAAa,CAAC,iBAAiB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YAC/D,IAAI,QAAQ,GAAG,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC3C,QAAA,IAAI,CAAC,QAAQ,IAAI,4BAA4B,EAAE;;;IAE7C,gBAAA,KAAkB,IAAA,eAAA,GAAA,QAAA,CAAA,aAAa,CAAA,4CAAA,EAAE,CAAA,iBAAA,CAAA,IAAA,EAAA,iBAAA,GAAA,eAAA,CAAA,IAAA,EAAA,EAAA;IAA5B,oBAAA,IAAI,KAAK,GAAA,iBAAA,CAAA,KAAA,CAAA;wBACZ,IAAM,UAAU,GAAG,IAAI,CAAC;IACxB,oBAAA,IAAM,gBAAgB,GAAG,IAAI,CAAC,mCAAmC,CAC/D,QAAQ,EACR,KAAK,EACL,UAAU,CACX,CAAC;IACF,oBAAA,IAAI,gBAAgB,EAAE;4BACpB,QAAQ,GAAG,IAAI,CAAC;4BAChB,MAAM;IACP,qBAAA;IACF,iBAAA;;;;;;;;;IACF,SAAA;IACD,QAAA,OAAO,QAAQ,CAAC;SACjB,CAAA;IAEK,IAAA,sBAAA,CAAA,SAAA,CAAA,kBAAkB,GAAlB,UACJ,WAAqB,EACrB,mBAA4B,EAAA;;;;;;IAExB,wBAAA,IAAA,CAAA,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,EAA1B,OAA0B,CAAA,CAAA,YAAA,CAAA,CAAA,CAAA;IACL,wBAAA,OAAA,CAAA,CAAA,YAAM,IAAI,CAAC,wCAAwC,EAAE,CAAA,CAAA;;IAAtE,wBAAA,cAAc,GAAG,EAAqD,CAAA,IAAA,EAAA,CAAA;4BACxD,OAAM,CAAA,CAAA,YAAA,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,mBAAmB,CAAC,CAAA,CAAA;;IAAzE,wBAAA,WAAW,GAAG,EAA2D,CAAA,IAAA,EAAA,CAAA;IACzE,wBAAA,cAAc,GAAG,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC;IAC9C,wBAAA,IAAI,cAAc,EAAE;IACZ,4BAAA,4BAA4B,GAAG,WAAW,CAAC,IAAI,CAAC,UAAC,KAAK,EAAK,EAAA,OAAA,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAApB,EAAoB,CAAC,CAAC;IACjF,4BAAA,aAAa,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,CAAC;gCACrC,UAAU,GAAG,IAAI,CAAC,sBAAsB,CAC5C,cAAc,EACd,aAAa,EACb,4BAA4B,CAC7B,CAAC;gCACI,YAAY,GAAG,IAAI,CAAC,wBAAwB,CAChD,cAAc,EACd,aAAa,EACb,4BAA4B,CAC7B,CAAC;IACF,4BAAA,OAAA,CAAA,CAAA,aAAO,EAAE,UAAU,EAAA,UAAA,EAAE,YAAY,EAAA,YAAA,EAAE,CAAC,CAAA;IACrC,yBAAA;;gCAEH,OAAO,CAAA,CAAA,aAAA,EAAE,UAAU,EAAEK,UAAK,EAAE,YAAY,EAAEA,UAAK,EAAE,CAAC,CAAA;;;IACnD,SAAA,CAAA,CAAA;SAAA,CAAA;IAEK,IAAA,sBAAA,CAAA,SAAA,CAAA,eAAe,GAAf,UAAgB,IAAuB,EAAE,WAAoB,EAAA;;;;;;4BAC3D,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACxD,wBAAA,SAAS,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC;IAClB,wBAAA,OAAA,CAAA,CAAA,YAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAA,aAAA,CAAA,aAAA,CAAA,EAAA,EAAA,MAAA,CAAK,QAAQ,CAAE,CAAA,EAAA,CAAA,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE,CAAG,CAAA,EAAA;IAC5F,gCAAA,WAAW,EAAA,WAAA;IACX,gCAAA,UAAU,EAAE,IAAI,CAAC,wBAAwB,EAAE;IAC5C,6BAAA,CAAC,CAAA,CAAA;;IAHI,wBAAA,MAAM,GAAG,EAGb,CAAA,IAAA,EAAA,CAAA;IACF,wBAAA,OAAA,CAAA,CAAA,aAAO,MAAM,CAAC,CAAA;;;IACf,SAAA,CAAA,CAAA;SAAA,CAAA;IAEK,IAAA,sBAAA,CAAA,SAAA,CAAA,mBAAmB,GAAnB,UAAoB,YAAoB,EAAE,WAAoB,EAAA;;;oBAClE,OAAO,CAAA,CAAA,aAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,EAAE;IAC1C,wBAAA,WAAW,EAAA,WAAA;IACX,wBAAA,UAAU,EAAE,IAAI,CAAC,wBAAwB,EAAE;IAC5C,qBAAA,CAAC,CAAC,CAAA;;IACJ,SAAA,CAAA,CAAA;SAAA,CAAA;IAEK,IAAA,sBAAA,CAAA,SAAA,CAAA,wBAAwB,GAAxB,YAAA;;;;IACA,gBAAA,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7B,gBAAA,qBAAqB,GAAG,IAAI,CAAC,wBAAwB,EAAE,CAAC;IAC9D,gBAAA,IAAI,qBAAqB,CAAC,MAAM,KAAK,OAAO,EAAE;IACtC,oBAAA,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC,qBAAqB,CAAC,CAAC;wBACjE,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,EAAE;IACpC,wBAAA,UAAU,EAAE,WAAW;IACxB,qBAAA,CAAC,CAAC;IACJ,iBAAA;IACD,gBAAA,OAAA,CAAA,CAAA,aAAO,MAAM,CAAC,CAAA;;IACf,SAAA,CAAA,CAAA;SAAA,CAAA;QAEO,sBAAgB,CAAA,SAAA,CAAA,gBAAA,GAAhB,UAAiB,qBAAqC,EAAA;IAC5D,QAAA,IAAI,WAAW,GAAG,qBAAqB,CAAC,MAAM,CAAC;IAC/C,QAAA,OAAO,WAAW,IAAI,CAAC,WAAW,CAAC,SAAS,IAAI,CAAC,CAAC,WAAW,CAAC,MAAM,EAAE;IACpE,YAAA,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC;IAClC,SAAA;IACD,QAAA,OAAO,WAAW,CAAC;SACpB,CAAA;;;iKAjUU,sBAAsB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAjD,eAAA,CAAA,MAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,eAAA,CAAA,cAAA,EAAA,CAAA,EAAA,MAAA,EAAAnB,aAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;IAAtB,mBAAA,sBAAA,CAAA,KAAA,GAAAA,aAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAAA,aAAA,EAAA,IAAA,EAAA,sBAAsB,cADT,MAAM,EAAA,CAAA,CAAA;sHACnB,sBAAsB,EAAA,UAAA,EAAA,CAAA;sBADlCK,aAAU;uBAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAA;;;;;;;;;;;;;;;;;;;;;;ACUlC,QAAA,eAAA,kBAAA,YAAA;QAKE,SACU,eAAA,CAAA,WAAwB,EACxB,iBAAoC,EACpC,WAAwB,EACxB,sBAA8C,EAClB,WAAqB,EAAA;IAJjD,QAAA,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;IACxB,QAAA,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAmB;IACpC,QAAA,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;IACxB,QAAA,IAAsB,CAAA,sBAAA,GAAtB,sBAAsB,CAAwB;IAClB,QAAA,IAAW,CAAA,WAAA,GAAX,WAAW,CAAU;IATnD,QAAA,IAAQ,CAAA,QAAA,GAAc,EAAE,CAAC;IAChB,QAAA,IAA+B,CAAA,+BAAA,GAAG,4CAA4C,CAAC;IACxF,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAIgB,YAAO,EAAQ,CAAC;SAQnC;QAEE,eAAU,CAAA,SAAA,CAAA,UAAA,GAAV,UAAW,mBAA4B,EAAA;;;;;IACnB,oBAAA,KAAA,CAAA,EAAA,OAAA,CAAA,CAAA,YAAM,IAAI,CAAC,sBAAsB,CAAC,kBAAkB,CAC1E,IAAI,CAAC,WAAW,EAChB,mBAAmB,CACpB,CAAA,CAAA;;IAHK,wBAAA,eAAe,GAAG,EAGvB,CAAA,IAAA,EAAA,CAAA;IACD,wBAAA,IAAI,CAAC,qBAAqB,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;4BACvD,IAAI,CAAC,uBAAuB,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;;;;IAC5D,SAAA,CAAA,CAAA;SAAA,CAAA;QAEO,eAAqB,CAAA,SAAA,CAAA,qBAAA,GAArB,UAAsB,oBAAsD,EAAA;YAA5E,IAuBP,KAAA,GAAA,IAAA,CAAA;IAtBC,QAAA,IAAM,mBAAmB,GAAG,YAAA;IAC1B,YAAA,KAAI,CAAC,sBAAsB,CAAC,wBAAwB,EAAE,CAAC;IACzD,SAAC,CAAC;IACF,QAAA,IAAM,2BAA2B,GAAG,oBAAoB,CAAC,IAAI,CAC3D0C,gBAAM,CAAC,UAAC,oBAAoB,EAAA,EAAK,OAAA,CAAC,oBAAoB,CAAC,UAAU,CAAhC,EAAgC,CAAC,EAClEG,aAAG,CAAC,UAAC,oBAAoB,EAAA,EAAK,OAAA,oBAAoB,CAAC,KAAK,CAAA,EAAA,CAAC,CAC1D,CAAC;YAEF,oBAAoB;iBACjB,IAAI,CACHlC,mBAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,EACxB+B,gBAAM,CAAC,YAAA,EAAM,OAAA,KAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAA,EAAA,CAAC,CACzC;IACA,aAAA,SAAS,CAAC,UAAO,oBAAoB,EAAA,EAAI,OAAA3D,WAAA,CAAA,KAAA,EAAA,KAAA,CAAA,EAAA,KAAA,CAAA,EAAA,YAAA;;;;iCACpC,oBAAoB,CAAC,UAAU,EAA/B,OAA+B,CAAA,CAAA,YAAA,CAAA,CAAA,CAAA;IACjC,wBAAA,OAAA,CAAA,CAAA,YAAM,IAAI,CAAC,cAAc,CACvB,oBAAoB,CAAC,KAAK,EAC1B,2BAA2B,EAC3B,mBAAmB,CACpB,CAAA,CAAA;;IAJD,wBAAA,EAAA,CAAA,IAAA,EAIC,CAAC;;;;;aAEL,CAAA,CAAA,EAAA,CAAC,CAAC;SACN,CAAA;QAEO,eAAuB,CAAA,SAAA,CAAA,uBAAA,GAAvB,UAAwB,sBAA2C,EAAA;YAAnE,IASP,KAAA,GAAA,IAAA,CAAA;YARC,sBAAsB;iBACnB,IAAI,CACH4B,mBAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,EACxB+B,gBAAM,CAAC,YAAA,EAAM,OAAA,KAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAxB,EAAwB,CAAC;IACvC,SAAA;IACA,aAAA,SAAS,CAAC,YAAA,EAAW,OAAA3D,WAAA,CAAA,KAAA,EAAA,KAAA,CAAA,EAAA,KAAA,CAAA,EAAA,YAAA;;;IACpB,oBAAA,KAAA,CAAA,EAAA,OAAA,CAAA,CAAA,YAAM,IAAI,CAAC,OAAO,EAAE,CAAA,CAAA;;IAApB,wBAAA,EAAA,CAAA,IAAA,EAAoB,CAAC;;;;aACtB,CAAA,CAAA,EAAA,CAAC,CAAC;SACN,CAAA;IAEY,IAAA,eAAA,CAAA,SAAA,CAAA,SAAS,GAAT,UAAU,MAAmB,EAAE,OAA8B,EAAA;;oBAEzE,KAAA,GAAA,IAAA,CAAA;;;IADC,oBAAA,KAAA,CAAA,EAAA,OAAA,CAAA,CAAA,YAAM,IAAI,CAAC,sBAAsB,CAAC,YAAM,EAAA,OAAA,KAAI,CAAC,WAAW,CAAC,eAAe,CAAC,MAAM,CAAC,CAAA,EAAA,EAAE,OAAO,CAAC,CAAA,CAAA;;IAA1F,wBAAA,EAAA,CAAA,IAAA,EAA0F,CAAC;;;;IAC5F,SAAA,CAAA,CAAA;SAAA,CAAA;IAEY,IAAA,eAAA,CAAA,SAAA,CAAA,eAAe,GAAf,UAAgB,IAAuB,EAAE,WAAoB,EAAA;;;oBACxE,OAAO,CAAA,CAAA,aAAA,IAAI,CAAC,sBAAsB,CAAC,eAAe,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC,CAAA;;IACvE,SAAA,CAAA,CAAA;SAAA,CAAA;IAEY,IAAA,eAAA,CAAA,SAAA,CAAA,mBAAmB,GAAnB,UAAoB,YAAoB,EAAE,WAAoB,EAAA;;;oBACzE,OAAO,CAAA,CAAA,aAAA,IAAI,CAAC,sBAAsB,CAAC,mBAAmB,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC,CAAA;;IACnF,SAAA,CAAA,CAAA;SAAA,CAAA;IAEa,IAAA,eAAA,CAAA,SAAA,CAAA,cAAc,GAAd,UACZ,UAA0B,EAC1B,2BAAuD,EACvD,WAAiC,EAAA;;;oBAalC,KAAA,GAAA,IAAA,CAAA;;;;IAXO,wBAAA,MAAM,GAAgB;IAC1B,4BAAA,SAAS,EAAE,IAAI;IACf,4BAAA,UAAU,EAAE,UAAU;IACtB,4BAAA,2BAA2B,EAAE,2BAA2B;gCACxD,MAAM,EAAE,OAAO;6BAChB,CAAC;4BACF,OAAM,CAAA,CAAA,YAAA,IAAI,CAAC,sBAAsB,CAC/B,cAAM,OAAA,KAAI,CAAC,WAAW,CAAC,eAAe,CAAC,MAAM,CAAC,CAAxC,EAAwC,EAC9C,IAAI,EACJ,WAAW,CACZ,CAAA,CAAA;;IAJD,wBAAA,EAAA,CAAA,IAAA,EAIC,CAAC;;;;IACH,SAAA,CAAA,CAAA;SAAA,CAAA;IAEY,IAAA,eAAA,CAAA,SAAA,CAAA,eAAe,GAAf,UACX,MAAyB,EACzB,OAA8B,EAAA;;oBAM/B,KAAA,GAAA,IAAA,CAAA;;;IAJC,oBAAA,KAAA,CAAA,EAAA,OAAA,CAAA,CAAA,YAAM,IAAI,CAAC,sBAAsB,CAC/B,YAAM,EAAA,OAAA,KAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,MAAM,CAAC,CAAA,EAAA,EACpD,OAAO,CACR,CAAA,CAAA;;IAHD,wBAAA,EAAA,CAAA,IAAA,EAGC,CAAC;;;;IACH,SAAA,CAAA,CAAA;SAAA,CAAA;IAEY,IAAA,eAAA,CAAA,SAAA,CAAA,SAAS,GAAT,UAAU,MAAmB,EAAE,OAAmC,EAAA;;oBAE9E,KAAA,GAAA,IAAA,CAAA;;;IADC,oBAAA,KAAA,CAAA,EAAA,OAAA,CAAA,CAAA,YAAM,IAAI,CAAC,sBAAsB,CAAC,YAAM,EAAA,OAAA,KAAI,CAAC,WAAW,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA,EAAA,EAAE,OAAO,CAAC,CAAA,CAAA;;IAApF,wBAAA,EAAA,CAAA,IAAA,EAAoF,CAAC;;;;IACtF,SAAA,CAAA,CAAA;SAAA,CAAA;IAEa,IAAA,eAAA,CAAA,SAAA,CAAA,sBAAsB,GAAtB,UACZ,WAAmC,EACnC,cAAqC,EACrC,kBAAyC,EAAA;;;oBAiB1C,KAAA,GAAA,IAAA,CAAA;;;gCAfiB,OAAM,CAAA,CAAA,YAAA,WAAW,EAAE,CAAA,CAAA;;IAA7B,wBAAA,OAAO,GAAG,EAAmB,CAAA,IAAA,EAAA,CAAA;IACnC,wBAAA,IAAI,CAAC,OAAO;gCAAE,OAAO,CAAA,CAAA,YAAA,CAAA;IAErB,wBAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAE5B,wBAAA,IAAI,OAAO,kBAAkB,KAAK,UAAU,EAAE;IAC5C,4BAAA,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,UAAC,KAAK,EAAK,EAAA,OAAA,kBAAkB,CAAC,KAAK,CAAC,IAAI,CAAC,CAA9B,EAA8B,CAAC,CAAC;IACvE,yBAAA;IAED,wBAAA,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,UAAC,KAAK,EAAA;IAC9B,4BAAA,KAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;IACpB,4BAAA,IAAI,OAAO,cAAc,KAAK,UAAU,EAAE;IACxC,gCAAA,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC5B,6BAAA;IACH,yBAAC,CAAC,CAAC;;;;IACJ,SAAA,CAAA,CAAA;SAAA,CAAA;QAEM,eAAyB,CAAA,SAAA,CAAA,yBAAA,GAAzB,UAA0B,OAAoB,EAAA;IACnD,QAAA,IAAI,CAAC,WAAW,CAAC,yBAAyB,CAAC,OAAO,CAAC,CAAC;SACrD,CAAA;QAEY,eAAW,CAAA,SAAA,CAAA,WAAA,GAAX,UAAY,IAAU,EAAA;;;;IAC3B,gBAAA,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;oBACxD,IAAI,CAAC,OAAO,EAAE;IACZ,oBAAA,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;IACvD,iBAAA;IACD,gBAAA,OAAA,CAAA,CAAA,aAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAA;;IAC9B,SAAA,CAAA,CAAA;SAAA,CAAA;IAED;;IAEG;QACI,eAAW,CAAA,SAAA,CAAA,WAAA,GAAX,UAAY,QAAkC,EAAA;IACnD,QAAA,OAAO,CAAC,IAAI,CACV,0HAA0H,CAC3H,CAAC;IACF,QAAA,IAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YACxD,IAAI,CAAC,OAAO,EAAE;IACZ,YAAA,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;IACvD,SAAA;YACD,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC,+BAA+B,EAAE,QAAQ,CAAC,CAAC;SAC9E,CAAA;IAED;;IAEG;QACI,eAAc,CAAA,SAAA,CAAA,cAAA,GAAd,UAAe,QAAkC,EAAA;IACtD,QAAA,OAAO,CAAC,IAAI,CACV,gIAAgI,CACjI,CAAC;IACF,QAAA,IAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YACxD,IAAI,CAAC,OAAO,EAAE;IACZ,YAAA,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;IACvD,SAAA;YACD,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,IAAI,CAAC,+BAA+B,EAAE,QAAQ,CAAC,CAAC;SACjF,CAAA;IAEY,IAAA,eAAA,CAAA,SAAA,CAAA,OAAO,GAAP,YAAA;;oBAMZ,KAAA,GAAA,IAAA,CAAA;;;gCALC,OAAM,CAAA,CAAA,YAAA,OAAO,CAAC,GAAG,CACf,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAO,OAAO,EAAI,EAAA,OAAAA,WAAA,CAAA,KAAA,EAAA,KAAA,CAAA,EAAA,KAAA,CAAA,EAAA,YAAA;;;IAClC,oCAAA,KAAA,CAAA,EAAA,OAAA,CAAA,CAAA,YAAM,OAAO,CAAC,OAAO,EAAE,CAAA,CAAA;;IAAvB,wCAAA,EAAA,CAAA,IAAA,EAAuB,CAAC;;;;IACzB,yBAAA,CAAA,CAFmC,EAEnC,CAAC,CACH,CAAA,CAAA;;IAJD,wBAAA,EAAA,CAAA,IAAA,EAIC,CAAC;;;;IACH,SAAA,CAAA,CAAA;SAAA,CAAA;IAED,IAAA,eAAA,CAAA,SAAA,CAAA,WAAW,GAAX,YAAA;IACE,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;IACrB,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;SAC1B,CAAA;;;IA/KU,mBAAA,eAAA,CAAA,IAAA,GAAAJ,aAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAAA,aAAA,EAAA,IAAA,EAAA,eAAe,mIAUJqE,WAAM,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAArE,aAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;8JAVjB,eAAe,EAAA,CAAA,CAAA;sHAAf,eAAe,EAAA,UAAA,EAAA,CAAA;sBAD3BK,aAAU;;;kCAWNiE,WAAQ;;kCAAIC,SAAM;mCAACF,WAAM,CAAA;;;;ACR9B,QAAA,YAAA,kBAAA,YAAA;IAOE,IAAA,SAAA,YAAA,CAAoB,eAAgC,EAAA;IAAhC,QAAA,IAAe,CAAA,eAAA,GAAf,eAAe,CAAiB;SAAI;IAExD,IAAA,YAAA,CAAA,SAAA,CAAA,kBAAkB,GAAlB,YAAA;YAAA,IAMC,KAAA,GAAA,IAAA,CAAA;YALC,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE;gBACxD,IAAI,CAAC,eAAe,CAAC,yBAAyB,CAAC,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;IACjF,SAAA;IAED,QAAA,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,gBAAgB,EAAE,CAAC,IAAI,CAAC,YAAM,EAAA,OAAA,KAAI,CAAC,cAAc,EAAE,CAArB,EAAqB,CAAC,CAAC;SACvF,CAAA;IAED,IAAA,YAAA,CAAA,SAAA,CAAA,cAAc,GAAd,YAAA;;;;;;YAME,IAAM,2BAA2B,GAAG,GAAG,CAAC;IACxC,QAAA,UAAU,CAAC,YAAA;gBACT,QAAQ,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,CAAC,OAAO,CAAC,UAAC,SAAS,EAAA;oBAC9D,SAAS,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,wBAAwB,CAAC,CAAC,CAAC;IACrE,aAAC,CAAC,CAAC;aACJ,EAAE,2BAA2B,CAAC,CAAC;SACjC,CAAA;;;uJA7BU,YAAY,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAG,eAAA,EAAA,CAAA,EAAA,MAAA,EAAAxE,aAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;gIAAZ,YAAY,EAAA,QAAA,EAAA,WAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,cAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAIT,qBAAqB,EAAyB,WAAA,EAAA,IAAA,EAAA,IAAA,EAAA0B,aAAU,4EAH3D+C,SAAM,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAAwB/C,aAAU,EAAA,MAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA1B,aAAA,EAAA,QAAA,ECpBrD,sDAGA,EAAA,MAAA,EAAA,CAAA,8GAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAQ,aAAA,CAAA,MAAA,EAAA,QAAA,EAAA,SAAA,EAAA,CAAA,EAAA,eAAA,EAAAR,aAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;sHDgBa,YAAY,EAAA,UAAA,EAAA,CAAA;sBANxBS,YAAS;IAAC,YAAA,IAAA,EAAA,CAAA;IACT,oBAAA,QAAQ,EAAE,WAAW;IACrB,oBAAA,WAAW,EAAE,sBAAsB;wBACnC,SAAS,EAAE,CAAC,sBAAsB,CAAC;wBACnC,eAAe,EAAEC,0BAAuB,CAAC,MAAM;qBAChD,CAAA;uGAGS,aAAa,EAAA,CAAA;0BADpBsC,YAAS;2BAACyB,SAAM,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE/C,aAAU,EAAE,CAAA;oBAI7C,YAAY,EAAA,CAAA;0BADnBC,eAAY;2BAAC,qBAAqB,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAED,aAAU,EAAE,CAAA;;;AEZ1E,QAAA,SAAA,kBAAA,YAAA;IAAA,IAAA,SAAA,SAAA,GAAA;;;;oJAAa,SAAS,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA1B,aAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;IAAT,mBAAA,SAAA,CAAA,IAAA,GAAAA,aAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAAA,aAAA,EAAA,IAAA,EAAA,SAAS,iBAJL,YAAY,CAAA,EAAA,OAAA,EAAA,CACjB0E,eAAY,EAAEC,cAAW,aACzB,YAAY,CAAA,EAAA,CAAA,CAAA;IAEX,mBAAA,SAAA,CAAA,IAAA,GAAA3E,aAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAAA,aAAA,EAAA,IAAA,EAAA,SAAS,EAHX,OAAA,EAAA,CAAA,CAAC0E,eAAY,EAAEC,cAAW,CAAC,CAAA,EAAA,CAAA,CAAA;sHAGzB,SAAS,EAAA,UAAA,EAAA,CAAA;sBALrBC,WAAQ;IAAC,YAAA,IAAA,EAAA,CAAA;wBACR,YAAY,EAAE,CAAC,YAAY,CAAC;IAC5B,oBAAA,OAAO,EAAE,CAACF,eAAY,EAAEC,cAAW,CAAC;wBACpC,OAAO,EAAE,CAAC,YAAY,CAAC;qBACxB,CAAA;;;ACNWE,gCAKX;IALD,CAAA,UAAY,UAAU,EAAA;IACpB,IAAA,UAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;IACT,IAAA,UAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;IACT,IAAA,UAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;IACT,IAAA,UAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;IACX,CAAC,EALWA,kBAAU,KAAVA,kBAAU,GAKrB,EAAA,CAAA,CAAA,CAAA;AAQD,QAAA,eAAA,kBAAA,YAAA;IANA,IAAA,SAAA,eAAA,GAAA;IAYW,QAAA,IAAA,CAAA,IAAI,GAAiCA,kBAAU,CAAC,EAAE,CAAC;SAQ7D;IAJC,IAAA,MAAA,CAAA,cAAA,CACI,eAAS,CAAA,SAAA,EAAA,WAAA,EAAA;IADb,QAAA,GAAA,EAAA,YAAA;gBAEE,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,UAAC,QAAQ,IAAK,OAAA,CAAC,CAAC,QAAQ,CAAA,EAAA,CAAC,CAAC;aACtE;;;IAAA,KAAA,CAAA,CAAA;;;0JAbU,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA7E,aAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;IAAf,mBAAA,eAAA,CAAA,IAAA,GAAAA,aAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,eAAe,sQCjB5B,kVAMA,EAAA,MAAA,EAAA,CAAA,q0FAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAmB,aAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,aAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAAnB,aAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;sHDWa,eAAe,EAAA,UAAA,EAAA,CAAA;sBAN3BS,YAAS;IAAC,YAAA,IAAA,EAAA,CAAA;IACT,oBAAA,QAAQ,EAAE,cAAc;IACxB,oBAAA,WAAW,EAAE,yBAAyB;wBACtC,SAAS,EAAE,CAAC,yBAAyB,CAAC;wBACtC,eAAe,EAAEC,0BAAuB,CAAC,MAAM;qBAChD,CAAA;kCAEU,QAAQ,EAAA,CAAA;0BAAhBE,QAAK;oBACG,OAAO,EAAA,CAAA;0BAAfA,QAAK;oBACG,MAAM,EAAA,CAAA;0BAAdA,QAAK;oBACG,IAAI,EAAA,CAAA;0BAAZA,QAAK;oBACG,OAAO,EAAA,CAAA;0BAAfA,QAAK;oBACG,IAAI,EAAA,CAAA;0BAAZA,QAAK;oBAEN,UAAU,EAAA,CAAA;0BADTA,QAAK;oBAIF,SAAS,EAAA,CAAA;0BADZD,cAAW;2BAAC,OAAO,CAAA;;;IEzBf,IAAM,WAAW,GAAG,UAAC,GAAQ,EAAE,MAAgB,EAAA;IACpD,IAAA,IAAM,SAAS,GAAG,GAAG,CAAC,SAAS,CAAC;IAChC,IAAA,MAAM,CAAC,OAAO,CAAC,UAAC,IAAI,EAAA;IAClB,QAAA,MAAM,CAAC,cAAc,CAAC,SAAS,EAAE,IAAI,EAAE;gBACrC,GAAG,EAAA,YAAA;IACD,gBAAA,OAAO,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;iBACtB;IACD,YAAA,GAAG,YAAC,GAAQ,EAAA;oBAAZ,IAEC,KAAA,GAAA,IAAA,CAAA;oBADC,IAAI,CAAC,CAAC,CAAC,iBAAiB,CAAC,YAAM,EAAA,QAAC,KAAI,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,GAAG,EAApB,EAAqB,CAAC,CAAC;iBACvD;IACF,SAAA,CAAC,CAAC;IACL,KAAC,CAAC,CAAC;IACL,CAAC,CAAC;IAEK,IAAM,YAAY,GAAG,UAAC,GAAQ,EAAE,OAAiB,EAAA;IACtD,IAAA,IAAM,SAAS,GAAG,GAAG,CAAC,SAAS,CAAC;IAChC,IAAA,OAAO,CAAC,OAAO,CAAC,UAAC,UAAU,EAAA;YACzB,SAAS,CAAC,UAAU,CAAC,GAAG,YAAA;gBAAA,IAGvB,KAAA,GAAA,IAAA,CAAA;gBAFC,IAAM,IAAI,GAAG,SAAS,CAAC;gBACvB,OAAO,IAAI,CAAC,CAAC,CAAC,iBAAiB,CAAC,YAAA,EAAM,OAAA,KAAI,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,KAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAA,EAAA,CAAC,CAAC;IAClF,SAAC,CAAC;IACJ,KAAC,CAAC,CAAC;IACL,CAAC,CAAC;IAEK,IAAM,YAAY,GAAG,UAAC,QAAa,EAAE,EAAO,EAAE,MAAgB,EAAA;QACnE,MAAM,CAAC,OAAO,CAAC,UAAC,SAAS,EAAK,EAAA,QAAC,QAAQ,CAAC,SAAS,CAAC,GAAGmE,cAAS,CAAC,EAAE,EAAE,SAAS,CAAC,EAAC,EAAA,CAAC,CAAC;IAClF,CAAC,CAAC;IAEF;IACM,SAAU,QAAQ,CAAC,IAAqC,EAAA;QAC5D,IAAM,SAAS,GAAG,UAAU,GAAQ,EAAA;YAClC,IAAI,IAAI,CAAC,MAAM,EAAE;IACf,YAAA,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IAC/B,SAAA;YACD,IAAI,IAAI,CAAC,OAAO,EAAE;IAChB,YAAA,YAAY,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IACjC,SAAA;IACD,QAAA,OAAO,GAAG,CAAC;IACb,KAAC,CAAC;IACF,IAAA,OAAO,SAAS,CAAC;IACnB;;;;;;;;;;;;;;;;ACxBaC,0BAAU,kBAAA,YAAA;IAErB,IAAA,SAAA,UAAA,CAAY,CAAoB,EAAE,CAAa,EAAY,CAAS,EAAA;IAAT,QAAA,IAAC,CAAA,CAAA,GAAD,CAAC,CAAQ;YAClE,CAAC,CAAC,MAAM,EAAE,CAAC;IACX,QAAA,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,aAAa,CAAC;SAC3B;eACF,UAAA,CAAA;SAAA;iKANYA,sBAAU,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA/E,aAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,aAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,aAAA,CAAA,MAAA,EAAA,CAAA,EAAA,MAAA,EAAAA,aAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;IAAV,mBAAA+E,sBAAA,CAAA,IAAA,GAAA/E,aAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA+E,sBAAU,gIAHX,2BAA2B,EAAA,QAAA,EAAA,IAAA,EAAA,eAAA,EAAA/E,aAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;AAG1B+E,0BAAU,GAAA,UAAA,CAAA;IATtB,IAAA,QAAQ,CAAC;IACR,QAAA,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,YAAY,CAAC;SACvC,CAAC;yCASeC,oBAAiB,EAAKtD,aAAU,EAAeuD,SAAM,CAAA,CAAA;KAFzD,EAAAF,sBAAU,CAMtB,CAAA;sHANYA,sBAAU,EAAA,UAAA,EAAA,CAAA;sBANtBtE,YAAS;IAAC,YAAA,IAAA,EAAA,CAAA;IACT,oBAAA,QAAQ,EAAE,aAAa;wBACvB,eAAe,EAAEC,0BAAuB,CAAC,MAAM;IAC/C,oBAAA,QAAQ,EAAE,2BAA2B;IACrC,oBAAA,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,YAAY,CAAC;qBACvC,CAAA;;;ACTD,QAAA,mBAAA,kBAAA,YAAA;IACE,IAAA,SAAA,mBAAA,GAAA;SAAgB;QAEhB,mBAAQ,CAAA,SAAA,CAAA,QAAA,GAAR,eAAa,CAAA;;;8JAHF,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAAV,aAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;IAAnB,mBAAA,mBAAA,CAAA,IAAA,GAAAA,aAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,mBAAmB,oECRhC,oDAGA,EAAA,MAAA,EAAA,CAAA,mPAAA,CAAA,EAAA,eAAA,EAAAA,aAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;sHDKa,mBAAmB,EAAA,UAAA,EAAA,CAAA;sBAN/BS,YAAS;IAAC,YAAA,IAAA,EAAA,CAAA;IACT,oBAAA,QAAQ,EAAE,mBAAmB;IAC7B,oBAAA,WAAW,EAAE,8BAA8B;wBAC3C,SAAS,EAAE,CAAC,8BAA8B,CAAC;wBAC3C,eAAe,EAAEC,0BAAuB,CAAC,MAAM;qBAChD,CAAA;;;IEPD;;;;;;;;;;;IAWG;aACa,SAAS,CAAC,cAAc,EAAE,cAAc,EAAE,MAA+B,EAAA;IAA/B,IAAA,IAAA,MAAA,KAAA,KAAA,CAAA,EAAA,EAAA,MAAA,GAAA,EAAW,WAAW,EAAE,KAAK,EAAE,CAAA,EAAA;IACvF,IAAA,IAAM,QAAQ,GAAG,UAAC,GAAG,IAAK,OAAA,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,CAAA,EAAA,CAAC;QAEzD,OAAO,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC,MAAM,CAAC,UAAC,YAAY,EAAE,GAAG,EAAA;YAC/D,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,UAAC,GAAG,EAAA;IAC3B,YAAA,IAAM,iBAAiB,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;IAC5C,YAAA,IAAM,mBAAmB,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;IAErC,YAAA,IAAI,KAAK,CAAC,OAAO,CAAC,iBAAiB,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,mBAAmB,CAAC,EAAE;IAC1E,gBAAA,YAAY,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,WAAW;IACpC,sBAAE,iBAAiB,CAAC,MAAM,CAAC,mBAAmB,CAAC;0BAC7C,mBAAmB,CAAC;IACzB,aAAA;qBAAM,IAAI,QAAQ,CAAC,iBAAiB,CAAC,IAAI,QAAQ,CAAC,mBAAmB,CAAC,EAAE;oBACvE,YAAY,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,iBAAiB,EAAE,mBAAmB,CAAC,CAAC;IACvE,aAAA;IAAM,iBAAA;IACL,gBAAA,YAAY,CAAC,GAAG,CAAC,GAAG,mBAAmB,CAAC;IACzC,aAAA;IACH,SAAC,CAAC,CAAC;IAEH,QAAA,OAAO,YAAY,CAAC;SACrB,EAAE,EAAE,CAAC,CAAC;IACT,CAAC;aAEe,YAAY,GAAA;QAAC,IAAoB,OAAA,GAAA,EAAA,CAAA;aAApB,IAAoB,EAAA,GAAA,CAAA,EAApB,EAAoB,GAAA,SAAA,CAAA,MAAA,EAApB,EAAoB,EAAA,EAAA;YAApB,OAAoB,CAAA,EAAA,CAAA,GAAA,SAAA,CAAA,EAAA,CAAA,CAAA;;IAC/C,IAAA,IAAM,uBAAuB,GAAG,OAAO,CAAC,MAAM,CAAC,UAAC,MAAM,EAAK,EAAA,OAAA,MAAM,KAAK,SAAS,CAApB,EAAoB,CAAC,CAAC;IACjF,IAAA,OAAO,uBAAuB,CAAC,MAAM,CAAC,UAAC,cAAc,EAAE,cAAc,EAAA,EACnE,OAAA,SAAS,CAAC,cAAc,EAAE,cAAc,CAAC,CAAzC,EAAyC,CAC1C,CAAC;IACJ;;ICjCA,OAAO,CAAC,4BAA4B,CAAC,CAACwE,qBAAU,CAAC,CAAC;IAClD,OAAO,CAAC,gCAAgC,CAAC,CAACA,qBAAU,CAAC,CAAC;IACtD,OAAO,CAAC,gCAAgC,CAAC,CAACA,qBAAU,CAAC,CAAC;IAGtD,IAAA,qBAAA,kBAAA,YAAA;IAAA,IAAA,SAAA,qBAAA,GAAA;;QAGS,qBAAI,CAAA,SAAA,CAAA,IAAA,GAAJ,UAAK,cAA0B,EAAA;IACpC,QAAA,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;SACtC,CAAA;QAEM,qBAAW,CAAA,SAAA,CAAA,WAAA,GAAX,UAAY,OAAgB,EAAA;IACjC,QAAA,IAAI,IAAI,CAAC,cAAc,IAAI,OAAO,CAAC,KAAK,EAAE;gBACxCC,gBAAK,CAAC,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;IACnD,SAAA;SACF,CAAA;;;gKAXU,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAAnF,aAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;oKAArB,qBAAqB,EAAA,CAAA,CAAA;sHAArB,qBAAqB,EAAA,UAAA,EAAA,CAAA;sBADjCK,aAAU;;;ACXC+E,yCASX;IATD,CAAA,UAAY,mBAAmB,EAAA;IAC7B,IAAA,mBAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;IACX,IAAA,mBAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;IACf,IAAA,mBAAA,CAAA,YAAA,CAAA,GAAA,YAAyB,CAAA;IACzB,IAAA,mBAAA,CAAA,YAAA,CAAA,GAAA,YAAyB,CAAA;IACzB,IAAA,mBAAA,CAAA,eAAA,CAAA,GAAA,eAA+B,CAAA;IAC/B,IAAA,mBAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;IACX,IAAA,mBAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;IACjB,IAAA,mBAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;IACnB,CAAC,EATWA,2BAAmB,KAAnBA,2BAAmB,GAS9B,EAAA,CAAA,CAAA;;ICNM,IAAM,qBAAqB,GAAG,IAAIhE,iBAAc,CAAU,sBAAsB,CAAC,CAAC;IAClF,IAAM,oBAAoB,GAAY;IAC3C,IAAA,KAAK,EAAE;IACL,QAAA,KAAK,EAAE;IACL,YAAA,UAAU,EAAE,oBAAoB;IAChC,YAAA,UAAU,EAAE,KAAK;IAClB,SAAA;IACD,QAAA,eAAe,EAAE,aAAa;IAC9B,QAAA,IAAI,EAAE,YAAY;IAClB,QAAA,MAAM,EAAE,MAAM;IACf,KAAA;IACD,IAAA,aAAa,EAAE;IACb,QAAA,WAAW,EAAE,EAAE;IAChB,KAAA;IACD,IAAA,KAAK,EAAE;IACL,QAAA,KAAK,EAAE,QAAQ;IACf,QAAA,aAAa,EAAE,QAAQ;IACvB,QAAA,IAAI,EAAE,EAAE;IACR,QAAA,CAAC,EAAE,CAAC;IACJ,QAAA,QAAQ,EAAE,KAAK;IACf,QAAA,KAAK,EAAE;IACL,YAAA,QAAQ,EAAE,MAAM;IAChB,YAAA,KAAK,EAAE,MAAM;IACb,YAAA,UAAU,EAAE,MAAM;IACnB,SAAA;IACF,KAAA;IACD,IAAA,QAAQ,EAAE;IACR,QAAA,IAAI,EAAE,EAAE;IACR,QAAA,KAAK,EAAE,QAAQ;IACf,QAAA,CAAC,EAAE,EAAE;IACL,QAAA,aAAa,EAAE,QAAQ;IACvB,QAAA,KAAK,EAAE;IACL,YAAA,KAAK,EAAE,MAAM;IACb,YAAA,QAAQ,EAAE,MAAM;IAChB,YAAA,UAAU,EAAE,QAAQ;IACrB,SAAA;IACF,KAAA;IACD,IAAA,OAAO,EAAE;IACP,QAAA,OAAO,EAAE,KAAK;IACf,KAAA;IACD,IAAA,OAAO,EAAE;IACP,QAAA,OAAO,EAAE,KAAK;IACd,QAAA,SAAS,EAAE,KAAK;IACjB,KAAA;IACD,IAAA,IAAI,EAAE;IACJ,QAAA,UAAU,EAAE,CAAC;IACb,QAAA,QAAQ,EAAE,GAAG;IACb,QAAA,UAAU,EAAE;IACV,YAAA;IACE,gBAAA,eAAe,EAAE;IACf,oBAAA,cAAc,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE;IAC9C,oBAAA,KAAK,EAAE;4BACL,CAAC,CAAC,EAAE,0BAA0B,CAAC;4BAC/B,CAAC,CAAC,EAAE,0BAA0B,CAAC;IAChC,qBAAA;IACF,iBAAA;IACD,gBAAA,WAAW,EAAE,MAAM;IACnB,gBAAA,WAAW,EAAE,KAAK;IAClB,gBAAA,WAAW,EAAE,CAAC;IACf,aAAA;IACF,SAAA;IACF,KAAA;IACD,IAAA,KAAK,EAAE;IACL,QAAA,GAAG,EAAE,CAAC;IACN,QAAA,GAAG,EAAE,GAAG;IACR,QAAA,SAAS,EAAE,CAAC;IACZ,QAAA,aAAa,EAAE,EAAE;IAClB,KAAA;IACD,IAAA,WAAW,EAAE;IACX,QAAA,UAAU,EAAE;IACV,YAAA,UAAU,EAAE;IACV,gBAAA,OAAO,EAAE,KAAK;IACf,aAAA;IACD,YAAA,OAAO,EAAE,OAAO;IAChB,YAAA,cAAc,EAAE,KAAK;IACrB,YAAA,OAAO,EAAE,IAAI;IACd,SAAA;IACF,KAAA;IACD,IAAA,MAAM,EAAE;IACN,QAAA;IACE,YAAA,IAAI,EAAE,YAAY;IACnB,SAAA;IACF,KAAA;KACF;;ICnFM,IAAM,kBAAkB,GAAG,IAAIA,iBAAc,CAAU,mBAAmB,CAAC,CAAC;IAC5E,IAAM,iBAAiB,GAAY;IACxC,IAAA,KAAK,EAAE;IACL,QAAA,IAAI,EAAE,YAAY;IAClB,QAAA,WAAW,EAAE,CAAC;IACd,QAAA,eAAe,EAAE,CAAC;IAClB,QAAA,MAAM,EAAE,CAAC;IACT,QAAA,SAAS,EAAE,EAAE;IACd,KAAA;IACD,IAAA,aAAa,EAAE;IACb,QAAA,WAAW,EAAE,EAAE;IAChB,KAAA;IACD,IAAA,KAAK,EAAE;IACL,QAAA,IAAI,EAAE,EAAE;IACT,KAAA;IACD,IAAA,OAAO,EAAE;IACP,QAAA,OAAO,EAAE,KAAK;IACf,KAAA;IACD,IAAA,SAAS,EAAE;IACT,QAAA,OAAO,EAAE,KAAK;IACf,KAAA;IACD,IAAA,OAAO,EAAE;IACP,QAAA,OAAO,EAAE,IAAI;IACb,QAAA,SAAS,EAAE,KAAK;IAChB,QAAA,KAAK,EAAE,QAAQ;IACf,QAAA,WAAW,EAAE,SAAS;IACtB,QAAA,MAAM,EAAE,KAAK;IACb,QAAA,eAAe,EAAE,SAAS;IAC1B,QAAA,KAAK,EAAE;IACL,YAAA,QAAQ,EAAE,SAAS;IACpB,SAAA;IACD,QAAA,SAAS,EAAE,YAAA;IACT,YAAA,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;aACvB;IACD,QAAA,UAAU,EAAE,YAAA;gBACV,OAAO,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;aACrE;IACF,KAAA;IACD,IAAA,KAAK,EAAE;IACL,QAAA,OAAO,EAAE,KAAK;IACd,QAAA,UAAU,EAAE,CAAC;IACb,QAAA,UAAU,EAAE,CAAC;IACb,QAAA,SAAS,EAAE;IACT,YAAA,MAAM,EAAE,CAAC;IACT,YAAA,KAAK,EAAE,CAAC;IACR,YAAA,KAAK,EAAE,SAAS;IACjB,SAAA;IACF,KAAA;IACD,IAAA,KAAK,EAAE;IACL,QAAA,OAAO,EAAE,KAAK;IACd,QAAA,SAAS,EAAE,KAAK;IAChB,QAAA,WAAW,EAAE,KAAK;IACnB,KAAA;IACD,IAAA,WAAW,EAAE;IACX,QAAA,UAAU,EAAE;IACV,YAAA,MAAM,EAAE,IAAI;IACZ,YAAA,YAAY,EAAE,KAAK;IACnB,YAAA,SAAS,EAAE;IACT,gBAAA,cAAc,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE;IAChD,gBAAA,KAAK,EAAE;wBACL,CAAC,CAAC,EAAE,SAAS,CAAC;wBACd,CAAC,CAAC,EAAE,SAAS,CAAC;IACf,iBAAA;IACF,aAAA;IACD,YAAA,SAAS,EAAE,SAAS;IACpB,YAAA,SAAS,EAAE,CAAC;IACb,SAAA;IACD,QAAA,MAAM,EAAE;IACN,YAAA,MAAM,EAAE;IACN,gBAAA,KAAK,EAAE;IACL,oBAAA,IAAI,EAAE;IACJ,wBAAA,IAAI,EAAE,CAAC;IACR,qBAAA;IACF,iBAAA;IACF,aAAA;IACD,YAAA,MAAM,EAAE;IACN,gBAAA,OAAO,EAAE,KAAK;IACd,gBAAA,MAAM,EAAE;IACN,oBAAA,KAAK,EAAE;IACL,wBAAA,OAAO,EAAE,IAAI;IACb,wBAAA,SAAS,EAAE,SAAS;IACrB,qBAAA;IACF,iBAAA;IACF,aAAA;IACF,SAAA;IACF,KAAA;IACD,IAAA,MAAM,EAAE;IACN,QAAA;IACE,YAAA,IAAI,EAAE,YAAY;IACnB,SAAA;IACF,KAAA;KACF;;IC1FD,IAAMiE,UAAQ,GAAGtF,sBAAiB,CAAC,QAAQ,CAAC;IAC5C,IAAMuF,UAAQ,GAAGvF,sBAAiB,CAAC,QAAQ,CAAC;IAE5C,SAASwF,aAAW,GAAA;IAClB,IAAA,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IACzB,IAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE;YAC/C,IAAI,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC5B,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE;IAC/C,YAAA,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE;IACrB,gBAAA,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,GAAGF,UAAQ,CAAC,kBAAkB,CAAC,CAAC,KAAK,CAAC;IAC7E,aAAA;IACF,SAAA;IACF,KAAA;IACH,CAAC;IAEM,IAAM,UAAU,GAAY;IACjC,IAAA,KAAK,EAAE;IACL,QAAA,IAAI,EAAE,KAAK;IACX,QAAA,SAAS,EAAE;IACT,YAAA,QAAQ,EAAE,GAAG;IACd,SAAA;IACD,QAAA,eAAe,EAAE,aAAa;IAC9B,QAAA,MAAM,EAAE;IACN,YAAA,IAAI,EAAEE,aAAW;IACjB,YAAA,MAAM,EAAEA,aAAW;IACpB,SAAA;IACF,KAAA;IACD,IAAA,aAAa,EAAE;IACb,QAAA,WAAW,EAAE,WAAW;IACzB,KAAA;IACD,IAAA,OAAO,EAAE;IACP,QAAA,OAAO,EAAE,KAAK;IACf,KAAA;IACD,IAAA,KAAK,EAAE;IACL,QAAA,IAAI,EAAE,EAAE;IACT,KAAA;IACD,IAAA,KAAK,EAAE;IACL,QAAA,MAAM,EAAE;IACN,YAAA,KAAK,EAAE;IACL,gBAAA,QAAQ,EAAED,UAAQ,CAAC,GAAG,CAAC;IACvB,gBAAA,UAAU,EAAE,QAAQ;IACpB,gBAAA,KAAK,EAAED,UAAQ,CAAC,OAAO,CAAC,CAAC,KAAK;IAC/B,aAAA;IACF,SAAA;IACD,QAAA,GAAG,EAAE,CAAC;IACN,QAAA,SAAS,EAAE,aAAa;IACzB,KAAA;IACD,IAAA,KAAK,EAAE;IACL,QAAA,KAAK,EAAE;IACL,YAAA,IAAI,EAAE,EAAE;IACT,SAAA;IACD,QAAA,MAAM,EAAE;IACN,YAAA,OAAO,EAAE,KAAK;IACf,SAAA;IACD,QAAA,GAAG,EAAE,CAAC;IACN,QAAA,SAAS,EAAE,CAAC;IACZ,QAAA,kBAAkB,EAAE,CAAC;IACrB,QAAA,aAAa,EAAE,aAAa;IAC5B,QAAA,eAAe,EAAE,CAAC;IAClB,QAAA,UAAU,EAAE,CAAC;IACb,QAAA,UAAU,EAAE,CAAC;IACb,QAAA,SAAS,EAAE,KAAK;IAChB,QAAA,aAAa,EAAE,KAAK;IACpB,QAAA,cAAc,EAAE,KAAK;IACtB,KAAA;IACD,IAAA,WAAW,EAAE;IACX,QAAA,GAAG,EAAE;IACH,YAAA,MAAM,EAAE,EAAE;IACX,SAAA;IACD,QAAA,MAAM,EAAE;IACN,YAAA,KAAK,EAAEA,UAAQ,CAAC,WAAW,CAAC,CAAC,KAAK;IAClC,YAAA,QAAQ,EAAE,QAAQ;IAClB,YAAA,MAAM,EAAE;IACN,gBAAA,KAAK,EAAE;IACL,oBAAA,OAAO,EAAE,KAAK;IACf,iBAAA;IACD,gBAAA,QAAQ,EAAE;IACR,oBAAA,OAAO,EAAE,CAAC;IACX,iBAAA;IACF,aAAA;IACF,SAAA;IACF,KAAA;IACD,IAAA,OAAO,EAAE;IACP,QAAA,OAAO,EAAE,KAAK;IACf,KAAA;IACD,IAAA,MAAM,EAAE;IACN,QAAA,OAAO,EAAE,KAAK;IACf,KAAA;KACF;;ICxFD,IAAM,QAAQ,GAAGtF,sBAAiB,CAAC,QAAQ,CAAC;IAC5C,IAAMuF,UAAQ,GAAGvF,sBAAiB,CAAC,QAAQ,CAAC;IAE5C,SAAS,WAAW,GAAA;IAClB,IAAA,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IACzB,IAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE;YAC/C,IAAI,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC5B,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE;IAC/C,YAAA,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE;IACrB,gBAAA,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC;IACtE,aAAA;IACF,SAAA;IACF,KAAA;IACH,CAAC;IAEM,IAAM,aAAa,GAAY;IACpC,IAAA,KAAK,EAAE;IACL,QAAA,SAAS,EAAE;IACT,YAAA,QAAQ,EAAE,GAAG;IACd,SAAA;IACD,QAAA,eAAe,EAAE,aAAa;IAC9B,QAAA,IAAI,EAAE,QAAQ;IACd,QAAA,MAAM,EAAE;IACN,YAAA,IAAI,EAAE,WAAW;IACjB,YAAA,MAAM,EAAE,WAAW;IACpB,SAAA;IACF,KAAA;IACD,IAAA,KAAK,EAAE;IACL,QAAA,IAAI,EAAE,EAAE;IACT,KAAA;IACD,IAAA,aAAa,EAAE;IACb,QAAA,WAAW,EAAE,cAAc;IAC5B,KAAA;IACD,IAAA,KAAK,EAAE;IACL,QAAA,MAAM,EAAE;IACN,YAAA,KAAK,EAAE;IACL,gBAAA,QAAQ,EAAEuF,UAAQ,CAAC,KAAK,CAAC;IACzB,gBAAA,UAAU,EAAE,QAAQ;IACpB,gBAAA,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC,KAAK;IAC/B,aAAA;IACF,SAAA;IACD,QAAA,SAAS,EAAE,CAAC;IACZ,QAAA,kBAAkB,EAAE,CAAC;IACrB,QAAA,SAAS,EAAE,aAAa;IACxB,QAAA,eAAe,EAAE,CAAC;IAClB,QAAA,UAAU,EAAE,CAAC;IACd,KAAA;IACD,IAAA,KAAK,EAAE;IACL,QAAA,KAAK,EAAE;IACL,YAAA,IAAI,EAAE,EAAE;IACT,SAAA;IACD,QAAA,MAAM,EAAE;IACN,YAAA,OAAO,EAAE,KAAK;IACf,SAAA;IACD,QAAA,GAAG,EAAE,CAAC;IACN,QAAA,SAAS,EAAE,CAAC;IACZ,QAAA,kBAAkB,EAAE,CAAC;IACrB,QAAA,aAAa,EAAE,aAAa;IAC5B,QAAA,eAAe,EAAE,CAAC;IAClB,QAAA,UAAU,EAAE,CAAC;IACb,QAAA,aAAa,EAAE,KAAK;IACpB,QAAA,cAAc,EAAE,KAAK;IACtB,KAAA;IACD,IAAA,OAAO,EAAE;IACP,QAAA,OAAO,EAAE,KAAK;IACf,KAAA;IACD,IAAA,WAAW,EAAE;IACX,QAAA,MAAM,EAAE;IACN,YAAA,QAAQ,EAAE,QAAQ;IACnB,SAAA;IACD,QAAA,MAAM,EAAE;IACN,YAAA,KAAK,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAC,KAAK;IAClC,YAAA,MAAM,EAAE,EAAE;IACV,YAAA,MAAM,EAAE;IACN,gBAAA,KAAK,EAAE;IACL,oBAAA,OAAO,EAAE,KAAK;IACf,iBAAA;IACD,gBAAA,QAAQ,EAAE;IACR,oBAAA,OAAO,EAAE,CAAC;IACX,iBAAA;IACF,aAAA;IACF,SAAA;IACD,QAAA,IAAI,EAAE;IACJ,YAAA,SAAS,EAAE,UAAU;IACrB,YAAA,MAAM,EAAE;IACN,gBAAA,OAAO,EAAE,KAAK;IACf,aAAA;IACD,YAAA,gBAAgB,EAAE,KAAK;IACxB,SAAA;IACF,KAAA;IACD,IAAA,OAAO,EAAE;IACP,QAAA,OAAO,EAAE,KAAK;IACf,KAAA;IACD,IAAA,MAAM,EAAE;IACN,QAAA,OAAO,EAAE,KAAK;IACf,KAAA;KACF;;ICjGM,IAAM,aAAa,GAAG,IAAIlE,iBAAc,CAAU,cAAc,CAAC,CAAC;IAClE,IAAM,YAAY,GAAY;IACnC,IAAA,KAAK,EAAE;IACL,QAAA,KAAK,EAAE;IACL,YAAA,UAAU,EAAE,QAAQ;IACpB,YAAA,UAAU,EAAE,KAAK;IAClB,SAAA;IACD,QAAA,eAAe,EAAE,aAAa;IAC9B,QAAA,IAAI,EAAE,EAAE;IACT,KAAA;IACD,IAAA,aAAa,EAAE;IACb,QAAA,WAAW,EAAE,aAAa;IAC3B,KAAA;IACD,IAAA,KAAK,EAAE;IACL,QAAA,IAAI,EAAE,EAAE;IACT,KAAA;IACD,IAAA,OAAO,EAAE;IACP,QAAA,OAAO,EAAE,KAAK;IACd,QAAA,SAAS,EAAE,KAAK;IACjB,KAAA;IACD,IAAA,MAAM,EAAE;IACN,QAAA,MAAM,EAAE,UAAU;IAClB,QAAA,YAAY,EAAE,CAAC;IACf,QAAA,SAAS,EAAE;IACT,YAAA,QAAQ,EAAE,SAAS;IACpB,SAAA;IACF,KAAA;IACD,IAAA,WAAW,EAAE;IACX,QAAA,GAAG,EAAE;gBACH,MAAM,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,aAAa,CAAC;IACnE,YAAA,gBAAgB,EAAE,KAAK;IACvB,YAAA,MAAM,EAAE,SAAS;IACjB,YAAA,YAAY,EAAE,IAAI;IAClB,YAAA,WAAW,EAAE,IAAI;IACjB,YAAA,UAAU,EAAE;IACV,gBAAA,MAAM,EAAE,eAAe;IACvB,gBAAA,OAAO,EAAE,IAAI;IACb,gBAAA,cAAc,EAAE,CAAC;IACjB,gBAAA,QAAQ,EAAE,CAAC;IACX,gBAAA,KAAK,EAAE;IACL,oBAAA,QAAQ,EAAE,MAAM;IAChB,oBAAA,UAAU,EAAE,KAAK;IAClB,iBAAA;IACF,aAAA;IACD,YAAA,KAAK,EAAE;IACL,gBAAA,MAAM,EAAE;IACN,oBAAA,eAAe,EAAE,YAAA;;IAEf,wBAAA,OAAO,KAAK,CAAC;yBACd;IACF,iBAAA;IACF,aAAA;IACD,YAAA,MAAM,EAAE;IACN,gBAAA,KAAK,EAAE;IACL,oBAAA,OAAO,EAAE,KAAK;IACf,iBAAA;IACF,aAAA;IACF,SAAA;IACD,QAAA,MAAM,EAAE;IACN,YAAA,SAAS,EAAE,IAAI;IACf,YAAA,UAAU,EAAE,EAAE;IACd,YAAA,MAAM,EAAE;IACN,gBAAA,KAAK,EAAE;IACL,oBAAA,OAAO,EAAE,KAAK;IACf,iBAAA;IACD,gBAAA,QAAQ,EAAE;IACR,oBAAA,OAAO,EAAE,CAAC;IACX,iBAAA;IACF,aAAA;IACF,SAAA;IACF,KAAA;IACD,IAAA,MAAM,EAAE;IACN,QAAA;IACE,YAAA,IAAI,EAAE,EAAE;IACR,YAAA,IAAI,EAAE,KAAK;IACZ,SAAA;IACF,KAAA;IACD,IAAA,OAAO,EAAE;IACP,QAAA,OAAO,EAAE,KAAK;IACf,KAAA;IACD,IAAA,SAAS,EAAE;IACT,QAAA,OAAO,EAAE,KAAK;IACf,KAAA;IACD,IAAA,UAAU,EAAE;IACV,QAAA,KAAK,EAAE;IACL,YAAA;IACE,gBAAA,SAAS,EAAE;IACT,oBAAA,QAAQ,EAAE,GAAG;IACd,iBAAA;IACD,gBAAA,YAAY,EAAE;IACZ,oBAAA,MAAM,EAAE;IACN,wBAAA,MAAM,EAAE,UAAU;IAClB,wBAAA,KAAK,EAAE,OAAO;IACd,wBAAA,aAAa,EAAE,QAAQ;IACvB,wBAAA,aAAa,EAAE,EAAE;IACjB,wBAAA,YAAY,EAAE,CAAC;IACf,wBAAA,WAAW,EAAE,EAAE;IACf,wBAAA,YAAY,EAAE,EAAE;4BAChB,CAAC,EAAE,CAAC,GAAG;IACR,qBAAA;IACF,iBAAA;IACF,aAAA;IACD,YAAA;IACE,gBAAA,SAAS,EAAE;IACT,oBAAA,QAAQ,EAAE,CAAC;IACZ,iBAAA;IACD,gBAAA,YAAY,EAAE;IACZ,oBAAA,MAAM,EAAE;IACN,wBAAA,YAAY,EAAE,CAAC;IAChB,qBAAA;IACF,iBAAA;IACF,aAAA;IACF,SAAA;IACF,KAAA;KACF;;IClHM,IAAM,kBAAkB,GAAG,IAAIA,iBAAc,CAAU,mBAAmB,CAAC,CAAC;IAC5E,IAAM,iBAAiB,GAAY;IACxC,IAAA,KAAK,EAAE;IACL,QAAA,eAAe,EAAE;IACf,YAAA,cAAc,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE;IAC9C,YAAA,KAAK,EAAE;oBACL,CAAC,CAAC,EAAE,SAAS,CAAC;oBACd,CAAC,CAAC,EAAE,SAAS,CAAC;IACf,aAAA;IACF,SAAA;IACD,QAAA,QAAQ,EAAE,GAAG;IACb,QAAA,IAAI,EAAE,YAAY;IAClB,QAAA,WAAW,EAAE,CAAC;IACd,QAAA,eAAe,EAAE,CAAC;IAClB,QAAA,MAAM,EAAE,CAAC;IACT,QAAA,SAAS,EAAE,EAAE;IACd,KAAA;IACD,IAAA,aAAa,EAAE;IACb,QAAA,WAAW,EAAE,EAAE;IAChB,KAAA;IACD,IAAA,KAAK,EAAE;IACL,QAAA,IAAI,EAAE,EAAE;IACT,KAAA;IACD,IAAA,QAAQ,EAAE;IACR,QAAA,IAAI,EAAE,EAAE;IACT,KAAA;IACD,IAAA,OAAO,EAAE;IACP,QAAA,MAAM,EAAE,KAAK;IACb,QAAA,SAAS,EAAE,YAAA;;gBAET,OAAOoE,qBAAU,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,UAAU,GAAG,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC;aACpF;;IAED,QAAA,UAAU,EAAE,UAAU,WAAW,EAAE,YAAY,EAAE,KAAK,EAAA;gBACpD,OAAO,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;aAC7B;IACD,QAAA,WAAW,EAAE,CAAC;IACf,KAAA;IACD,IAAA,KAAK,EAAE;IACL,QAAA,OAAO,EAAE,KAAK;IACd,QAAA,SAAS,EAAE,SAAS;IACpB,QAAA,SAAS,EAAE,SAAS;IACpB,QAAA,MAAM,EAAE;IACN,YAAA,KAAK,EAAE;IACL,gBAAA,KAAK,EAAE,OAAO;IACf,aAAA;IACF,SAAA;IACD,QAAA,QAAQ,EAAE,IAAI;IACd,QAAA,SAAS,EAAE;IACT,YAAA,MAAM,EAAE,CAAC;IACT,YAAA,KAAK,EAAE,CAAC;IACR,YAAA,KAAK,EAAE,SAAS;IACjB,SAAA;IACD,QAAA,IAAI,EAAE,UAAU;IAChB,QAAA,YAAY,EAAE,CAAC;IAChB,KAAA;IACD,IAAA,KAAK,EAAE;IACL,QAAA,OAAO,EAAE,KAAK;IACf,KAAA;IACD,IAAA,MAAM,EAAE;IACN,QAAA,OAAO,EAAE,KAAK;IACf,KAAA;IACD,IAAA,WAAW,EAAE;IACX,QAAA,IAAI,EAAE;IACJ,YAAA,SAAS,EAAE,SAAS;IACpB,YAAA,MAAM,EAAE;IACN,gBAAA,SAAS,EAAE,EAAE;IACb,gBAAA,SAAS,EAAE,uBAAuB;IAClC,gBAAA,MAAM,EAAE,CAAC;IACT,gBAAA,SAAS,EAAE,SAAS;IACrB,aAAA;IACD,YAAA,SAAS,EAAE,SAAS;IACpB,YAAA,SAAS,EAAE,CAAC;IACZ,YAAA,MAAM,EAAE;IACN,gBAAA,KAAK,EAAE;IACL,oBAAA,SAAS,EAAE,CAAC;IACb,iBAAA;IACF,aAAA;IACD,YAAA,SAAS,EAAE,IAAI;IAChB,SAAA;IACD,QAAA,MAAM,EAAE;IACN,YAAA,MAAM,EAAE;IACN,gBAAA,gBAAgB,EAAE,EAAE;IACrB,aAAA;IACF,SAAA;IACF,KAAA;IACD,IAAA,MAAM,EAAE;IACN,QAAA;IACE,YAAA,IAAI,EAAE,MAAM;IACZ,YAAA,IAAI,EAAE,YAAY;IACnB,SAAA;IACF,KAAA;KACF;;AC/DD,QAAA,wBAAA,kBAAA,YAAA;QAaE,SACU,wBAAA,CAAA,WAAkC,EAClC,WAAuB,EACD,YAAqB,EAChB,iBAA0B,EAC1B,iBAA0B,EACvB,oBAA6B,EAAA;IAL3D,QAAA,IAAW,CAAA,WAAA,GAAX,WAAW,CAAuB;IAClC,QAAA,IAAW,CAAA,WAAA,GAAX,WAAW,CAAY;IACD,QAAA,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAS;IAChB,QAAA,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAS;IAC1B,QAAA,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAS;IACvB,QAAA,IAAoB,CAAA,oBAAA,GAApB,oBAAoB,CAAS;IAlB5D,QAAA,IAAI,CAAA,IAAA,GAAG,EAAE,CAAC;IACV,QAAA,IAAU,CAAA,UAAA,GAAa,EAAE,CAAC;IAC1B,QAAA,IAAM,CAAA,MAAA,GAA8B,EAAE,CAAC;IACvC,QAAA,IAAM,CAAA,MAAA,GAAG,GAAG,CAAC;IACb,QAAA,IAAA,CAAA,IAAI,GAAwBJ,2BAAmB,CAAC,GAAG,CAAC;IACpD,QAAA,IAAW,CAAA,WAAA,GAAG,EAAE,CAAC;IACjB,QAAA,IAAc,CAAA,cAAA,GAAG,IAAI,CAAC;YAE/B,IAAA,CAAA,aAAa,GAAY;IACvB,YAAA,aAAa,EAAE,EAAE;aAClB,CAAC;YAUA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;SACzC;QAED,wBAAW,CAAA,SAAA,CAAA,WAAA,GAAX,UAAY,OAAsB,EAAA;YAChC,IAAI,OAAO,CAAC,IAAI,EAAE;gBAChB,IAAI,CAAC,cAAc,EAAE,CAAC;IACvB,SAAA;YACD,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACxB,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;SAClD,CAAA;IAED,IAAA,wBAAA,CAAA,SAAA,CAAA,cAAc,GAAd,YAAA;YACE,QAAQ,IAAI,CAAC,IAAI;IACf,YAAA,KAAKA,2BAAmB,CAAC,KAAK,EAAE;IAC9B,gBAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,YAAY,CAAC;oBACvC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,GAAGA,2BAAmB,CAAC,GAAG,CAAC;oBACxD,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,GAAG,KAAK,CAAC;oBACrD,MAAM;IACP,aAAA;IACD,YAAA,KAAKA,2BAAmB,CAAC,GAAG,EAAE;IAC5B,gBAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,YAAY,CAAC;oBACvC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;oBAC1C,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC;oBACpD,MAAM;IACP,aAAA;IACD,YAAA,KAAKA,2BAAmB,CAAC,UAAU,EAAE;IACnC,gBAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,iBAAiB,CAAC;oBAC5C,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;oBAC1C,MAAM;IACP,aAAA;IACD,YAAA,KAAKA,2BAAmB,CAAC,UAAU,EAAE;IACnC,gBAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,iBAAiB,CAAC;oBAC5C,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;oBAC1C,MAAM;IACP,aAAA;IACD,YAAA,KAAKA,2BAAmB,CAAC,aAAa,EAAE;IACtC,gBAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,oBAAoB,CAAC;oBAC/C,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;oBAC1C,MAAM;IACP,aAAA;IACD,YAAA,KAAKA,2BAAmB,CAAC,MAAM,EAAE;IAC/B,gBAAA,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;oBACnC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;oBAC1C,MAAM;IACP,aAAA;IACD,YAAA,KAAKA,2BAAmB,CAAC,GAAG,EAAE;IAC5B,gBAAA,IAAI,CAAC,aAAa,GAAG,UAAU,CAAC;oBAChC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;oBAC1C,MAAM;IACP,aAAA;IACF,SAAA;SACF,CAAA;IAED,IAAA,wBAAA,CAAA,SAAA,CAAA,gBAAgB,GAAhB,YAAA;YACE,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YAC9C,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;IAChE,QAAA,QAAQ,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI;gBACnC,KAAKA,2BAAmB,CAAC,GAAG,CAAC;IAC7B,YAAA,KAAKA,2BAAmB,CAAC,KAAK,EAAE;oBAC9B,IAAI,CAAC,WAAW,EAAE,CAAC;oBACnB,MAAM;IACP,aAAA;IACD,YAAA,KAAKA,2BAAmB,CAAC,UAAU,EAAE;IACnC,gBAAA,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;oBAC7B,MAAM;IACP,aAAA;IACD,YAAA,KAAKA,2BAAmB,CAAC,UAAU,EAAE;oBACnC,IAAI,CAAC,kBAAkB,EAAE,CAAC;oBAC1B,MAAM;IACP,aAAA;IACD,YAAA,KAAKA,2BAAmB,CAAC,aAAa,EAAE;oBACtC,IAAI,CAAC,qBAAqB,EAAE,CAAC;oBAC7B,MAAM;IACP,aAAA;IACD,YAAA,KAAKA,2BAAmB,CAAC,MAAM,EAAE;oBAC/B,IAAI,CAAC,cAAc,EAAE,CAAC;oBACtB,MAAM;IACP,aAAA;IACD,YAAA,KAAKA,2BAAmB,CAAC,GAAG,EAAE;oBAC5B,IAAI,CAAC,WAAW,EAAE,CAAC;oBACnB,MAAM;IACP,aAAA;IACF,SAAA;IACD,QAAA,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE;IAClB,YAAA,IAAI,CAAC,aAAa,GAAG,SAAS,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IAClE,SAAA;SACF,CAAA;IAEO,IAAA,wBAAA,CAAA,SAAA,CAAA,WAAW,GAAX,YAAA;YACL,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,GAAG,CAAC,UAA0C,CAAC,OAAO;gBACpF,IAAI,CAAC,cAAc,CAAC;IACtB,QAAA,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;SACvB,CAAA;IAEO,IAAA,wBAAA,CAAA,SAAA,CAAA,WAAW,GAAX,YAAA;IACN,QAAA,IAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAA,KAAA,CAAR,IAAI,EAAA,aAAA,CAAA,EAAA,EAAA,MAAA,CAAQ,IAAI,CAAC,IAAI,CAAA,CAAA,CAAC,CAAC;IAC5C,QAAA,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG;IAC1B,YAAA;IACE,gBAAA,IAAI,EAAE,KAAK;IACX,gBAAA,IAAI,EAAE,wBAAwB;IAC9B,gBAAA,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAC,SAAS,EAAA,EAAK,OAAA,YAAY,GAAG,SAAS,CAAA,EAAA,CAAC;IAC5D,gBAAA,SAAS,EAAE,uBAAuB;IAClC,gBAAA,OAAO,EAAE,CAAC;IACX,aAAA;IACD,YAAA;IACE,gBAAA,IAAI,EAAE,KAAK;oBACX,IAAI,EAAE,IAAI,CAAC,IAAI;IAChB,aAAA;aACF,CAAC;YACD,IAAI,CAAC,aAAa,CAAC,KAAsB,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;SACzE,CAAA;IAEO,IAAA,wBAAA,CAAA,SAAA,CAAA,cAAc,GAAd,YAAA;YAAA,IAyBP,KAAA,GAAA,IAAA,CAAA;IAxBC,QAAA,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG;IAC1B,YAAA;IACE,gBAAA,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,IAAI,CAAC,IAAI;IAChB,aAAA;aACF,CAAC;IACF,QAAA,IAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAA,KAAA,CAAR,IAAI,EAAA,aAAA,CAAA,EAAA,EAAA,MAAA,CAAQ,IAAI,CAAC,IAAI,CAAA,CAAA,CAAC,CAAC;IAC5C,QAAA,CAAE,IAAI,CAAC,aAAa,CAAC,KAAsB,CAAC,cAAc,GAAG,YAAA;IAC3D,YAAA,IAAI,SAAS,GAAG,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC;IAClC,YAAA,OAAO,SAAS,CAAC;IACnB,SAAC;IACC,aAAC,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG;IAC3B,gBAAA;IACE,oBAAA,IAAI,EAAE,QAAQ;IACd,oBAAA,IAAI,EAAE,wBAAwB;wBAC9B,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAC,CAAC,EAAE,GAAG,IAAK,OAAA,YAAY,GAAG,KAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAA7B,EAA6B,CAAC;IAC9D,oBAAA,OAAO,EAAE,CAAC;IACX,iBAAA;IACD,gBAAA;IACE,oBAAA,IAAI,EAAE,QAAQ;wBACd,IAAI,EAAE,IAAI,CAAC,IAAI;IAChB,iBAAA;IACF,aAAA,CAAC,CAAC;YACJ,IAAI,CAAC,aAAa,CAAC,KAAsB,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;SACzE,CAAA;IAEO,IAAA,wBAAA,CAAA,SAAA,CAAA,qBAAqB,GAArB,YAAA;YACN,IAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC1B,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC;YAC3C,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC;YACjD,IAAI,IAAI,CAAC,mBAAmB,EAAE;IAC5B,YAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,GAAG;IAE9B,gBAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CACxC,EAAA,EAAA,eAAe,EAAE,IAAI,CAAC,mBAAmB,EAAA,CAAA;iBAE5C,CAAC;IACH,SAAA;YACD,IAAI,IAAI,CAAC,KAAK,EAAE;IACd,YAAA,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;IAClD,YAAA,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;IACtD,SAAA;IACD,QAAA,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG;IAC1B,YAAA;IACE,gBAAA,IAAI,EAAE,YAAY;oBAClB,IAAI,EAAE,IAAI,CAAC,MAAM;IAClB,aAAA;aACF,CAAC;SACH,CAAA;IAEO,IAAA,wBAAA,CAAA,SAAA,CAAA,kBAAkB,GAAlB,YAAA;IACN,QAAA,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IACvB,QAAA,IAAI,CAAC,aAAa,CAAC,KAAK,GAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EACnB,IAAI,CAAC,aAAa,CAAC,KAAK,KAC3B,MAAM,EAAE,IAAI,CAAC,MAAM,GACpB,CAAC;SACH,CAAA;QAEO,wBAAS,CAAA,SAAA,CAAA,SAAA,GAAT,UAAU,IAAI,EAAA;IACpB,QAAA,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG;IAC1B,YAAA;IACE,gBAAA,IAAI,EAAA,IAAA;oBACJ,IAAI,EAAE,IAAI,CAAC,IAAI;IAChB,aAAA;aACF,CAAC;SACH,CAAA;;;IAvMU,mBAAA,wBAAA,CAAA,IAAA,GAAApF,aAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAAA,aAAA,EAAA,IAAA,EAAA,wBAAwB,yFAgBzB,aAAa,EAAA,EAAA,EAAA,KAAA,EACb,kBAAkB,EAClB,EAAA,EAAA,KAAA,EAAA,kBAAkB,aAClB,qBAAqB,EAAA,CAAA,EAAA,MAAA,EAAAA,aAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;IAnBpB,mBAAA,wBAAA,CAAA,IAAA,GAAAA,aAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,wBAAwB,EARxB,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,UAAA,EAAA,YAAA,EAAA,MAAA,EAAA,QAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,WAAA,EAAA,aAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,SAAA,EAAA;YACT,qBAAqB;IACrB,QAAA,EAAE,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE;IAClD,QAAA,EAAE,OAAO,EAAE,kBAAkB,EAAE,QAAQ,EAAE,iBAAiB,EAAE;IAC5D,QAAA,EAAE,OAAO,EAAE,kBAAkB,EAAE,QAAQ,EAAE,iBAAiB,EAAE;IAC5D,QAAA,EAAE,OAAO,EAAE,qBAAqB,EAAE,QAAQ,EAAE,oBAAoB,EAAE;SACnE,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAAA,aAAA,EAAA,QAAA,EARS,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,wBAAA,CAAA,EAAA,CAAA,CAAA;sHAUD,wBAAwB,EAAA,UAAA,EAAA,CAAA;sBAZpCS,YAAS;IAAC,YAAA,IAAA,EAAA,CAAA;IACT,oBAAA,QAAQ,EAAE,wBAAwB;IAClC,oBAAA,QAAQ,EAAE,EAAE;wBACZ,SAAS,EAAE,CAAC,mCAAmC,CAAC;IAChD,oBAAA,SAAS,EAAE;4BACT,qBAAqB;IACrB,wBAAA,EAAE,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE;IAClD,wBAAA,EAAE,OAAO,EAAE,kBAAkB,EAAE,QAAQ,EAAE,iBAAiB,EAAE;IAC5D,wBAAA,EAAE,OAAO,EAAE,kBAAkB,EAAE,QAAQ,EAAE,iBAAiB,EAAE;IAC5D,wBAAA,EAAE,OAAO,EAAE,qBAAqB,EAAE,QAAQ,EAAE,oBAAoB,EAAE;IACnE,qBAAA;qBACF,CAAA;;;kCAiBI8D,SAAM;mCAAC,aAAa,CAAA;;kCACpBA,SAAM;mCAAC,kBAAkB,CAAA;;kCACzBA,SAAM;mCAAC,kBAAkB,CAAA;;kCACzBA,SAAM;mCAAC,qBAAqB,CAAA;;6BAlBtB,IAAI,EAAA,CAAA;0BAAZ3D,QAAK;oBACG,UAAU,EAAA,CAAA;0BAAlBA,QAAK;oBACG,MAAM,EAAA,CAAA;0BAAdA,QAAK;oBACG,MAAM,EAAA,CAAA;0BAAdA,QAAK;oBACG,IAAI,EAAA,CAAA;0BAAZA,QAAK;oBACG,WAAW,EAAA,CAAA;0BAAnBA,QAAK;oBACG,cAAc,EAAA,CAAA;0BAAtBA,QAAK;oBACG,OAAO,EAAA,CAAA;0BAAfA,QAAK;;;ICTF,SAAU,aAAa,CAAC,KAAU,EAAA;QACtC,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,UAAC,IAAI,EAAA,EAAK,OAAA,OAAO,IAAI,KAAK,QAAQ,CAAA,EAAA,CAAC,CAAC;IACjF;;AClBA,QAAA,wBAAA,kBAAA,YAAA;IAKE,IAAA,SAAA,wBAAA,CACU,wBAAkD,EAClD,gBAAkC,EAClC,QAAmB,EAAA;IAFnB,QAAA,IAAwB,CAAA,wBAAA,GAAxB,wBAAwB,CAA0B;IAClD,QAAA,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAkB;IAClC,QAAA,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAW;SACzB;IAEJ,IAAA,wBAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;YACE,IAAI,CAAC,QAAQ,EAAE,CAAC;SACjB,CAAA;IAED,IAAA,wBAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;IACE,QAAA,IAAM,gBAAgB,GAAG,IAAI,CAAC,wBAAwB,CAAC,uBAAuB,CAC5E,IAAI,CAAC,aAAa,CAAC,SAAS,CAC7B,CAAC;IACF,QAAA,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;YAC9B,IAAM,YAAY,GAAG,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,gBAAgB,CAAC,CAAC;YAC7E,IAAI,YAAY,IAAI,YAAY,CAAC,QAAQ,IAAI,YAAY,CAAC,QAAQ,CAAC,aAAa,EAAE;IAChF,YAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,aAAa,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC5E,SAAA;YACkB,YAAY,CAAC,QAAS,CAAC,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;SAC1E,CAAA;;;mKAzBU,wBAAwB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAZ,aAAA,CAAA,wBAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,aAAA,CAAA,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,aAAA,CAAA,SAAA,EAAA,CAAA,EAAA,MAAA,EAAAA,aAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;4IAAxB,wBAAwB,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,EAAA,aAAA,EAAA,CAAA,oBAAA,EAAA,eAAA,CAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,QAAA,EAAAA,aAAA,EAAA,CAAA,CAAA;sHAAxB,wBAAwB,EAAA,UAAA,EAAA,CAAA;sBAHpCC,YAAS;IAAC,YAAA,IAAA,EAAA,CAAA;IACT,oBAAA,QAAQ,EAAE,sBAAsB;qBACjC,CAAA;2MAG8B,aAAa,EAAA,CAAA;0BAAzCW,QAAK;2BAAC,oBAAoB,CAAA;oBAClB,QAAQ,EAAA,CAAA;0BAAhBA,QAAK;;;IClBR;;;;IAIE;IAOF,IAAI6E,gBAAc,GAAG;IACnB,IAAA,IAAI,EAAE;IACJ,QAAA,KAAK,EAAE,OAAO;IACd,QAAA,KAAK,EAAE,CAAC;IACR,QAAA,WAAW,EAAE,EAAE;IAChB,KAAA;IACD,IAAA,IAAI,EAAE;IACJ,QAAA,OAAO,EAAE,KAAK;IACf,KAAA;KACF,CAAC;IAEF,IAAM,sBAAsB,GAAG,UAAC,KAAY,EAAA;IAC1C;;IAEE;IACF,IAAA,OAAO,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAC,OAAqB,YAAK,OAAA,CAAC,EAAC,CAAA,EAAA,GAAA,OAAO,KAAP,IAAA,IAAA,OAAO,uBAAP,OAAO,CAAE,YAAY,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,YAAY,CAAA,CAAA,EAAA,CAAC,CAAC;IACpG,CAAC,CAAC;AAEF,uBAAe;IACb,IAAA,EAAE,EAAE,QAAQ;QAEZ,SAAS,EAAE,UAAU,KAAK,EAAA;IACxB,QAAA,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,EAAE;gBAClC,OAAO;IACR,SAAA;IAED,QAAA,IAAI,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;YAEpD,IACE,UAAU,KAAK,QAAQ;IACvB,YAAA,UAAU,KAAK,MAAM;IACrB,YAAA,UAAU,KAAK,UAAU;gBACzB,UAAU,KAAK,aAAa,EAC5B;gBACA,OAAO;IACR,SAAA;YAED,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,KAAK,SAAS,EAAE;gBAC9C,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,GAAGA,gBAAc,CAAC;IAC/C,SAAA;YAED,KAAK,CAAC,MAAM,GAAG;IACb,YAAA,OAAO,EAAE,KAAK;IACd,YAAA,cAAc,EAAE,KAAK;IACrB,YAAA,CAAC,EAAE,IAAI;IACP,YAAA,YAAY,EAAE,EAAE;IAChB,YAAA,cAAc,EAAE,EAAE;IAClB,YAAA,WAAW,EAAE,KAAK;IAClB,YAAA,UAAU,EAAE,IAAI;IAChB,YAAA,QAAQ,EAAE,IAAI;IACd,YAAA,gBAAgB,EAAE,KAAK;IACvB,YAAA,gBAAgB,EAAE,CAAC;aACpB,CAAC;SACH;IAED,IAAA,SAAS,EAAE,UAAU,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAA;YACxC,OAAOC,sBAAc,CACnB,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC;IACpC,cAAE,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC;kBAC5C,SAAS,EACbD,gBAAc,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAC/B,CAAC;SACH;QAED,SAAS,EAAE,UAAU,KAAK,EAAA;YACxB,OAAO,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;SAC1F;QACD,SAAS,EAAE,UAAU,KAAK,EAAA;IACxB,QAAA,OAAO,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;SACtD;IAED,IAAA,UAAU,EAAE,UAAU,KAAK,EAAE,KAAK,EAAA;IAChC,QAAA,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,EAAE;gBAClC,OAAO;IACR,SAAA;IACD,QAAA,IAAI,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,EAAE;gBAC7C,OAAO;IACR,SAAA;IAED,QAAA,IAAI,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC;IAEpB,QAAA,IAAI,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;YAEpD,IACE,UAAU,KAAK,QAAQ;IACvB,YAAA,UAAU,KAAK,MAAM;IACrB,YAAA,UAAU,KAAK,UAAU;gBACzB,UAAU,KAAK,aAAa,EAC5B;gBACA,OAAO;IACR,SAAA;YAED,IAAI,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YAEnC,IAAI,CAAC,MAAM,EAAE;gBACX,OAAO;IACR,SAAA;IAED,QAAA,IAAI,KAAK,CAAC,MAAM,CAAC,gBAAgB,GAAG,CAAC,EAAE;IACrC,YAAA,KAAK,CAAC,MAAM,CAAC,gBAAgB,IAAI,CAAC,CAAC;gBACnC,OAAO;IACR,SAAA;;YAGD,IAAI,OAAO,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,KAAK,SAAS,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;IACjF,QAAA,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE;gBAC/B,OAAO,GAAG,CAAC,CAAC;IACb,SAAA;YAED,KAAK,CAAC,MAAM,CAAC,OAAO;gBAClB,CAAC,CAAC,IAAI,KAAK,UAAU;oBACrB,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,GAAG,CAAC;oBACzC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAE5C,QAAA,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,cAAc,EAAE;IACzD,YAAA,IAAI,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;;IAE7C,gBAAA,KAAK,CAAC,MAAM,CAAC,cAAc,GAAG,IAAI,CAAC;IACnC,gBAAA,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACtB,aAAA;gBACD,KAAK,CAAC,MAAM,CAAC,WAAW,GAAG,KAAK,CAAC;IACjC,YAAA,OAAO,KAAK,CAAC;IACd,SAAA;IACD,QAAA,KAAK,CAAC,MAAM,CAAC,cAAc,GAAG,KAAK,CAAC;YAEpC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAErB,KAAK,CAAC,IAAI,EAAE,CAAC;SACd;QACD,MAAM,EAAE,UAAU,KAAK,EAAA;IACrB,QAAA,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,EAAE;gBAClC,OAAO;IACR,SAAA;IAED,QAAA,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE;gBACzB,OAAO;IACR,SAAA;IAED,QAAA,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAC1B,QAAA,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;IAC9B,QAAA,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IAE5B,QAAA,OAAO,IAAI,CAAC;SACb;QACD,UAAU,EAAE,UAAU,KAAK,EAAA;IACzB,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;SAC3B;;;;;;;QAQD,aAAa,EAAE,UAAU,KAAK,EAAA;IAC5B,QAAA,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,EAAE;gBAClC,OAAO;IACR,SAAA;YACD,IAAI,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAEnC,QAAA,IAAI,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IACvD,QAAA,IAAI,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IACnD,QAAA,IAAI,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;IAC/D,QAAA,IAAI,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;IAE3D,QAAA,IAAI,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IAE3B,QAAA,IAAI,WAAW,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE;gBACvC,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;IACpC,SAAA;IAED,QAAA,KAAK,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC;IACtB,QAAA,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;IACnC,QAAA,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;IAC7D,QAAA,KAAK,CAAC,GAAG,CAAC,SAAS,GAAG,SAAS,CAAC;IAChC,QAAA,KAAK,CAAC,GAAG,CAAC,WAAW,GAAG,KAAK,CAAC;IAC9B,QAAA,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;IAC7D,QAAA,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;IACnB,QAAA,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;SAC3B;QAED,eAAe,EAAE,UAAU,KAAK,EAAA;IAC9B,QAAA,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,EAAE;gBAClC,OAAO;IACR,SAAA;IACD,QAAA,KAAK,IAAI,UAAU,GAAG,CAAC,EAAE,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,UAAU,EAAE,EAAE;gBAC9E,IAAI,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;gBAC9C,IAAI,IAAI,GAAG,KAAK,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;gBAE5C,IAAI,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAExC,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE;oBACvC,SAAS;IACV,aAAA;IAED,YAAA,KAAK,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC;IACtB,YAAA,KAAK,CAAC,GAAG,CAAC,GAAG,CACX,KAAK,CAAC,MAAM,CAAC,CAAC,EACd,MAAM,CAAC,gBAAgB,CAAC,OAAO,CAAC,iBAAiB,CAAC,EAClD,CAAC,EACD,CAAC,EACD,CAAC,GAAG,IAAI,CAAC,EAAE,EACX,KAAK,CACN,CAAC;IACF,YAAA,KAAK,CAAC,GAAG,CAAC,SAAS,GAAG,OAAO,CAAC;IAC9B,YAAA,KAAK,CAAC,GAAG,CAAC,SAAS,GAAG,CAAC,CAAC;gBACxB,KAAK,CAAC,GAAG,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;IAC5C,YAAA,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;IACjB,YAAA,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;IACpB,SAAA;SACF;QAED,iBAAiB,EAAE,UAAU,KAAK,EAAA;IAChC,QAAA,KAAK,IAAI,UAAU,GAAG,CAAC,EAAE,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,UAAU,EAAE,EAAE;gBAC9E,IAAI,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;gBAE9C,IAAI,IAAI,GAAG,KAAK,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;gBAE5C,IAAI,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACxC,YAAA,IAAI,MAAM,GAAG,MAAM,CAAC,gBAAgB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;gBAErD,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE;oBACvC,SAAS;IACV,aAAA;IAED,YAAA,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IACxB,YAAA,IAAI,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,EAAA;IACpC,gBAAA,OAAO,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC;IACvB,aAAC,CAAC,CAAC;gBACH,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;IAC3B,YAAA,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;IAEvB,YAAA,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,WAAW,IAAI,IAAI,EAAE;IACvD,gBAAA,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAAC,CAAC;IACpC,aAAA;qBAAM,IAAI,IAAI,IAAI,IAAI,EAAE;oBACvB,IAAI,KAAK,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IAClD,gBAAA,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC;IAChE,aAAA;IAAM,iBAAA;IACL,gBAAA,OAAO,CAAC,iBAAiB,GAAG,GAAG,CAAC;IACjC,aAAA;IACF,SAAA;SACF;KACF;;IC7PD;;;;;;;;;;;IAWE;QAEW,kBAAkB,GAAG,UAChC,OAAoB,EACpB,gBAAwB,EACxB,YAAqB,EAAA;IAErB,IAAA,QAAQ,OAAO,KAAP,IAAA,IAAA,OAAO,uBAAP,OAAO,CAAE,QAAQ;IACvB,QAAA,KAAK,SAAS,CAAC;IACf,QAAA,KAAK,YAAY,KAAZ,IAAA,IAAA,YAAY,uBAAZ,YAAY,CAAE,WAAW,EAAE;IAC9B,YAAA,OAAO,KAAK,CAAC;YACf,KAAK,gBAAgB,CAAC,WAAW,EAAE;IACjC,YAAA,OAAO,IAAI,CAAC;IACd,QAAA;gBACE,OAAO,kBAAkB,CAAC,OAAO,CAAC,aAAa,EAAE,gBAAgB,EAAE,YAAY,CAAC,CAAC;IACpF,KAAA;IACH;;IC3BA;;ICKQ,IAAAE,wBAAsB,GAAKjC,gBAAW,CAAA,sBAAhB,CAAiB;IAExC,IAAM,oBAAoB,GAAGiC,wBAAsB,CAAC,SAAS,CAAC,CAAC;IAC/D,IAAM,eAAe,GAAGA,wBAAsB,CAAC,WAAW,CAAC,CAAC;IAEnE;IACM,SAAU,uBAAuB,CAAC,OAAqC,EAAA;;IAC3E,IAAA,IAAM,OAAO,GAAG,OAAO,CAAC,OAAuB,CAAC;IAChD,IAAA,IAAM,mBAAmB,GAAG,CAAA,EAAA,GAAA,OAAO,KAAP,IAAA,IAAA,OAAO,KAAP,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,OAAO,CAAE,YAAY,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,mBAAmB,CAAC;QAEvE,IAAI,mBAAmB,IAAI,mBAAmB,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;IAC1E,QAAA,OAAO,oBAAoB,CAAC;IAC7B,KAAA;IAAM,SAAA;IACL,QAAA,OAAO,eAAe,CAAC;IACxB,KAAA;IACH,CAAC;IAED;IACM,SAAU,4BAA4B,CAAC,OAAqC,EAAA;IAChF,IAAA,IAAI,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE;IACjC,QAAA,OAAO,oBAAoB,CAAC;IAC7B,KAAA;IACH;;ICvBQ,IAAAA,wBAAsB,GAAKjC,gBAAW,CAAA,sBAAhB,CAAiB;IAExC,IAAM,qBAAqB,GAAG;IACnC,IAAA,mBAAmB,EAAE,KAAK;IAC1B,IAAA,KAAK,EAAEiC,wBAAsB,CAAC,OAAO,CAAC;IACtC,IAAA,WAAW,EAAE,EAAE;IACf,IAAA,QAAQ,EAAE;IACR,QAAA,GAAG,EAAE;IACH,YAAA,eAAe,EAAE,uBAAuB;IACxC,YAAA,oBAAoB,EAAE,4BAA4B;IACnD,SAAA;IACD,QAAA,IAAI,EAAE;IACJ,YAAA,WAAW,EAAE,uBAAuB;IACpC,YAAA,WAAW,EAAE,CAAC;IACd,YAAA,OAAO,EAAE,GAAG;IACb,SAAA;IACF,KAAA;IACD,IAAA,MAAM,EAAE;IACN,QAAA,MAAM,EAAE;IACN,YAAA,OAAO,EAAE,KAAK;IACd,YAAA,KAAK,EAAE;IACL,gBAAA,OAAO,EAAE,KAAK;IACf,aAAA;IACF,SAAA;IACD,QAAA,QAAQ,EAAE;IACR,YAAA,OAAO,EAAE,IAAI;IACb,YAAA,IAAI,EAAE;IACJ,gBAAA,OAAO,EAAE,KAAK;IACf,aAAA;IACF,SAAA;IACF,KAAA;IACD,IAAA,IAAI,EAAE;IACJ,QAAA,MAAM,EAAE,QAAQ;IACjB,KAAA;IACD,IAAA,OAAO,EAAE;IACP,QAAA,MAAM,EAAE;IACN,YAAA,OAAO,EAAE,KAAK;IACf,SAAA;IACD,QAAA,UAAU,EAAE;IACV,YAAA,OAAO,EAAE,KAAK;IACf,SAAA;IACD,QAAA,OAAO,EAAE;IACP,YAAA,OAAO,EAAE,KAAK;IACf,SAAA;IACF,KAAA;KACF;;IC3BD,IAAM,YAAY,GAAG,CAACC,sBAAa,EAAEC,oBAAW,EAAEC,kBAAS,CAAC,CAAC;IAC7D,IAAM,cAAc,GAAG,CAACC,mBAAU,EAAEC,oBAAW,EAAEC,qBAAY,CAAC,CAAC;IAC/D,IAAM,iBAAiB,GAAG,CAACC,sBAAa,EAAEC,uBAAc,CAAC,CAAC;IAC1D,IAAM,aAAa,GAAG,CAACC,oCAAgB,EAAEC,eAAM,EAAEC,mCAAe,EAAEC,gBAAO,EAAE,YAAY,CAAC,CAAC;IAEzF;IACkD;AAClDC,kBAAK,CAAC,QAAQ,CAAd,KAAA,CAAAA,cAAK,2DAAUC,eAAM,CAAA,EAAA,MAAA,CAAK,YAAY,CAAA,CAAA,EAAA,MAAA,CAAK,cAAc,CAAA,CAAA,EAAA,MAAA,CAAK,iBAAiB,CAAA,CAAA,EAAA,MAAA,CAAK,aAAa,CAAE,CAAA,CAAA,CAAA;IAEnG;IACoC;IACpC,IAAM,cAAc,GAAG,YAAY,CAACD,cAAK,CAAC,QAAQ,EAAE,qBAAqB,CAAC,CAAC;IAC3E,MAAM,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC,OAAO,CAAC,UAAC,EAAK,EAAA;YAAL,EAAA,GAAA,MAAA,CAAA,EAAA,EAAA,CAAA,CAAK,EAAJ,GAAG,GAAA,EAAA,CAAA,CAAA,CAAA,CAAA;QACjDA,cAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;IAC5C,CAAC,CAAC;;IClCF;;;;;;;IAOG;IACG,SAAU,QAAQ,CAAI,GAAM,EAAA;IAChC,IAAA,OAAOE,6BAAS,CAAI,GAAG,CAAC,CAAC;IAC3B;;ICRQ,IAAAf,wBAAsB,GAAKjC,gBAAW,CAAA,sBAAhB,CAAiB;IAE/C;;;IAGiC;IACjC,IAAM,WAAW,GAAGiC,wBAAsB,CAAC,WAAW,CAAC,CAAC;IACxD,IAAM,UAAU,GAAqB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC5C,IAAM,WAAW,GAAG,CAAC,CAAC;IAEf,IAAM,wBAAwB,GAA2B;IAC9D,IAAA,IAAI,EAAE;IACJ,QAAA,UAAU,EAAA,UAAA;IACV,QAAA,WAAW,EAAA,WAAA;IACX,QAAA,WAAW,EAAA,WAAA;IACZ,KAAA;IACD,IAAA,OAAO,EAAE;IACP,QAAA,UAAU,EAAA,UAAA;IACV,QAAA,WAAW,EAAA,WAAA;IACX,QAAA,WAAW,EAAA,WAAA;IACX,QAAA,eAAe,EAAE,aAAa;IAC/B,KAAA;IACD,IAAA,GAAG,EAAE;IACH,QAAA,UAAU,EAAA,UAAA;IACV,QAAA,WAAW,EAAA,WAAA;IACX,QAAA,WAAW,EAAA,WAAA;IACX,QAAA,eAAe,EAAE,aAAa;IAC/B,KAAA;IACD,IAAA,KAAK,EAAE;IACL,QAAA,eAAe,EAAE,SAAS;IAC3B,KAAA;KACF;;ICjCD;;IAE0C;IACnC,IAAM,sCAAsC,GAAG;QACpD,OAAO,EAAE,UACP,MAAkB,EAClB,cAA+B,EAC/B,MAAa,EACb,QAAiC,EAAA;IAEjC,QAAA,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE;IAC1B,YAAA,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,cAAc,CAAC,CAAC,CAAC,GAAG,SAAS,GAAG,SAAS,CAAC;IACxE,SAAA;IAED,QAAA,IAAI,QAAQ;IAAE,YAAA,QAAQ,CAAC,MAAM,EAAE,cAAc,EAAE,MAAM,CAAC,CAAC;SACxD;KACF;;ICXO,IAAAL,UAAQ,GAAKvF,sBAAiB,CAAA,QAAtB,CAAuB;IAC/B,IAAA,sBAAsB,GAA6B2D,gBAAW,CAAA,sBAAxC,EAAE,sBAAsB,GAAKA,gBAAW,CAAA,sBAAhB,CAAiB;IAEvE;;IAEG;IACH,IAAM,wBAAwB,GAAG,UAAC,OAAgB,EAAA;QAChD,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAU,CAAC;IAC1D,CAAC,CAAC;IAEK,IAAM,kBAAkB,GAAqB;IAClD,IAAA,GAAG,EAAE;IACH,QAAA,IAAI,EAAE,KAAK;IACX,QAAA,OAAO,EAAE;IACP,YAAA,QAAQ,EAAE;IACR,gBAAA,GAAG,EAAE;IACH,oBAAA,aAAa,EAAE,GAAG;IACnB,iBAAA;IACD,gBAAA,IAAI,EAAE;IACJ,oBAAA,QAAQ,EAAE,IAAI;IACf,iBAAA;IACF,aAAA;IACD,YAAA,SAAS,EAAE,GAAG;IACd,YAAA,MAAM,EAAE;IACN,gBAAA,CAAC,EAAE;IACD,oBAAA,IAAI,EAAE;IACJ,wBAAA,UAAU,EAAE,KAAK;IAClB,qBAAA;IACD,oBAAA,KAAK,EAAE;IACL,wBAAA,IAAI,EAAE;IACJ,4BAAA,IAAI,EAAE,QAAQ,CAAC4B,UAAQ,CAAC,GAAG,CAAC,CAAC;IAC9B,yBAAA;IACF,qBAAA;IACF,iBAAA;IACF,aAAA;IACD,YAAA,QAAQ,EAAE;IACR,gBAAA,KAAK,EAAE;IACL,oBAAA,MAAM,EAAE,CAAC;IACV,iBAAA;IACD,gBAAA,IAAI,EAAE;IACJ,oBAAA,WAAW,EAAE,sBAAsB,CAAC,QAAQ,CAAC;IAC9C,iBAAA;IACF,aAAA;IACF,SAAA;IACF,KAAA;IACD,IAAA,MAAM,EAAE;IACN,QAAA,IAAI,EAAE,KAAK;IACX,QAAA,OAAO,EAAE;IACP,YAAA,QAAQ,EAAE;IACR,gBAAA,GAAG,EAAE;IACH,oBAAA,aAAa,EAAE,GAAG;IACnB,iBAAA;IACD,gBAAA,IAAI,EAAE;IACJ,oBAAA,QAAQ,EAAE,IAAI;IACf,iBAAA;IACF,aAAA;IACD,YAAA,SAAS,EAAE,GAAG;IACd,YAAA,MAAM,EAAE;IACN,gBAAA,CAAC,EAAE;IACD,oBAAA,IAAI,EAAE;IACJ,wBAAA,UAAU,EAAE,KAAK;IAClB,qBAAA;IACD,oBAAA,KAAK,EAAE;IACL,wBAAA,IAAI,EAAE;IACJ,4BAAA,IAAI,EAAE,QAAQ,CAACA,UAAQ,CAAC,IAAI,CAAC,CAAC;IAC/B,yBAAA;IACF,qBAAA;IACF,iBAAA;IACF,aAAA;IACD,YAAA,QAAQ,EAAE;IACR,gBAAA,IAAI,EAAE;IACJ,oBAAA,OAAO,EAAE,GAAG;IACZ,oBAAA,WAAW,EAAE,sBAAsB,CAAC,QAAQ,CAAC;IAC9C,iBAAA;IACD,gBAAA,KAAK,EAAE;IACL,oBAAA,MAAM,EAAE,CAAC;IACV,iBAAA;IACF,aAAA;IACF,SAAA;IACF,KAAA;IACD,IAAA,IAAI,EAAE;IACJ,QAAA,IAAI,EAAE,MAAM;IACZ,QAAA,OAAO,EAAE;IACP,YAAA,eAAe,EAAE,sBAAsB,CAAC,YAAY,EAAE,GAAG,CAAC;IAC1D,YAAA,MAAM,EAAE;IACN,gBAAA,CAAC,EAAE;IACD,oBAAA,IAAI,EAAE;IACJ,wBAAA,WAAW,EAAE,sBAAsB,CAAC,QAAQ,CAAC;IAC7C,wBAAA,WAAW,EAAE,CAAC;IACf,qBAAA;IACD,oBAAA,KAAK,EAAE;IACL,wBAAA,IAAI,EAAE;IACJ,4BAAA,IAAI,EAAE,QAAQ,CAACA,UAAQ,CAAC,IAAI,CAAC,CAAC;IAC/B,yBAAA;IACF,qBAAA;IACF,iBAAA;IACF,aAAA;IACD,YAAA,QAAQ,EAAE;IACR,gBAAA,KAAK,EAAE;IACL,oBAAA,MAAM,EAAE,CAAC;IACV,iBAAA;IACF,aAAA;IACF,SAAA;IACF,KAAA;IACD,IAAA,KAAK,EAAE;IACL,QAAA,IAAI,EAAE,MAAM;IACZ,QAAA,OAAO,EAAE;IACP,YAAA,UAAU,EAAE,IAAI;IAChB,YAAA,SAAS,EAAE;IACT,gBAAA,QAAQ,EAAE,CAAC;IACZ,aAAA;IACD,YAAA,MAAM,EAAE;IACN,gBAAA,OAAO,EAAE;IACP,oBAAA,IAAI,EAAE,EAAE;IACR,oBAAA,KAAK,EAAE,EAAE;IACT,oBAAA,GAAG,EAAE,EAAE;IACP,oBAAA,MAAM,EAAE,CAAC;IACV,iBAAA;IACF,aAAA;IACD,YAAA,eAAe,EAAE,sBAAsB,CAAC,YAAY,EAAE,GAAG,CAAC;IAC1D,YAAA,MAAM,EAAE;IACN,gBAAA,CAAC,EAAE;IACD,oBAAA,IAAI,EAAE;IACJ,wBAAA,SAAS,EAAE,CAAC;IACb,qBAAA;IACD,oBAAA,KAAK,EAAE;IACL,wBAAA,WAAW,EAAE,CAAC;IACd,wBAAA,eAAe,EAAE,GAAG;IACpB,wBAAA,IAAI,EAAE;IACJ,4BAAA,IAAI,EAAE,QAAQ,CAACA,UAAQ,CAAC,IAAI,CAAC,CAAC;IAC/B,yBAAA;IACF,qBAAA;IACF,iBAAA;IACD,gBAAA,CAAC,EAAE;IACD,oBAAA,QAAQ,EAAE,OAAO;IACjB,oBAAA,OAAO,EAAE,IAAI;IACb,oBAAA,IAAI,EAAE;IACJ,wBAAA,UAAU,EAAE,KAAK;IAClB,qBAAA;IACD,oBAAA,KAAK,EAAE;IACL,wBAAA,OAAO,EAAE,IAAI;IACb,wBAAA,IAAI,EAAE;IACJ,4BAAA,IAAI,EAAE,QAAQ,CAACA,UAAQ,CAAC,IAAI,CAAC,CAAC;IAC/B,yBAAA;IACF,qBAAA;IACF,iBAAA;IACF,aAAA;IACD,YAAA,QAAQ,EAAE;IACR,gBAAA,IAAI,EAAE;IACJ,oBAAA,OAAO,EAAE,CAAC;IACV,oBAAA,WAAW,EAAE,CAAC;IACf,iBAAA;IACD,gBAAA,KAAK,EAAE;IACL,oBAAA,SAAS,EAAE,EAAE;IACb,oBAAA,MAAM,EAAE,CAAC;IACT,oBAAA,WAAW,EAAE,CAAC;IACd,oBAAA,gBAAgB,EAAE,CAAC;IACpB,iBAAA;IACF,aAAA;IACD,YAAA,UAAU,EAAE,IAAI;IAChB,YAAA,OAAO,EAAE;IACP,gBAAA,OAAO,EAAE;IACP,oBAAA,OAAO,EAAE,EAAE;IAEX,oBAAA,OAAO,EAAE,IAAI;IACb,oBAAA,IAAI,EAAE,OAAO;IACb,oBAAA,SAAS,EAAE,KAAK;IAChB,oBAAA,eAAe,EAAE,sBAAsB,CAAC,YAAY,CAAC;IACrD,oBAAA,UAAU,EAAE,sBAAsB,CAAC,qBAAqB,CAAC;IACzD,oBAAA,SAAS,EAAE,sBAAsB,CAAC,qBAAqB,CAAC;IACxD,oBAAA,SAAS,EAAE,CAAC;IACZ,oBAAA,WAAW,EAAE,CAAC;IACd,oBAAA,YAAY,EAAE,CAAC;IACf,oBAAA,WAAW,EAAE,aAAa;IAC1B,oBAAA,SAAS,EAAE;4BACT,UAAU,EAAE,UAAC,WAAiD,EAAA;gCAC5D,OAAO;IACL,gCAAA,eAAe,EAAE,WAAW,CAAC,OAAO,CAAC,WAAW;iCAC5B,CAAC;6BACxB;IACF,qBAAA;IACF,iBAAA;IACD,gBAAA,UAAU,EAAE;wBACV,eAAe,EAAE,UAAC,OAAgB,EAAK,EAAA,OAAA,OAAO,CAAC,OAAO,CAAC,WAAoB,CAAA,EAAA;IAC3E,oBAAA,KAAK,EAAE,sBAAsB,CAAC,OAAO,CAAC;IACtC,oBAAA,YAAY,EAAE,CAAC;IACf,oBAAA,IAAI,EAAE;IACJ,wBAAA,UAAU,EAAE,CAAC;IACb,wBAAA,IAAI,EAAE,QAAQ,CAACA,UAAQ,CAAC,IAAI,CAAC,CAAC;IAC/B,qBAAA;IACD,oBAAA,OAAO,EAAE;IACP,wBAAA,GAAG,EAAE,CAAC;IACN,wBAAA,IAAI,EAAE,CAAC;IACP,wBAAA,KAAK,EAAE,CAAC;IACR,wBAAA,MAAM,EAAE,CAAC;IACV,qBAAA;IACD,oBAAA,MAAM,EAAE,CAAC;IACT,oBAAA,KAAK,EAAE,UAAC,OAAgB,YACtB,OAAA,CAAA,EAAA,GAAC,wBAAwB,CAAC,OAAO,CAAS,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,SAAS,CAAC,QAAQ,CAAA,EAAA;IAChE,oBAAA,OAAO,EAAE,UAAC,OAAgB,IAAa,IAAA,EAAA,CAAA,CACrC,OAAA,CAAC,EAAC,CAAC,EAAA,GAAA,wBAAwB,CAAC,OAAO,CAAS,0CAAE,SAAS,CAAA,CAAA,EAAA;wBACzD,SAAS,EAAE,UAAC,KAAU,EAAa,EAAA,OAAA,KAAK,CAAC,SAAS,CAAC,KAAK,CAAA,EAAA;IACzD,iBAAA;IACF,aAAA;IACF,SAAA;IACF,KAAA;KACF;;ICzMD,IAAA,kBAAA,kBAAA,YAAA;IAAA,IAAA,SAAA,kBAAA,GAAA;;QACS,kBAAa,CAAA,SAAA,CAAA,aAAA,GAAb,UAAc,SAAoB,EAAA;IACvC;IAC6C;IAC7C,QAAA,OAAO,QAAQ,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC,CAAC;SAChD,CAAA;QAEM,kBAAqB,CAAA,SAAA,CAAA,qBAAA,GAArB,UAAsB,IAAoB,EAAA;IAC/C,QAAA,OAAO,wBAAwB,CAAC,IAAI,CAAC,CAAC;SACvC,CAAA;IAEM,IAAA,kBAAA,CAAA,SAAA,CAAA,iCAAiC,GAAjC,YAAA;IACL,QAAA,OAAO,sCAAsC,CAAC;SAC/C,CAAA;IAED;;IAE6C;QACtC,kBAAsB,CAAA,SAAA,CAAA,sBAAA,GAAtB,UAAuB,SAAoB,EAAA;IAChD,QAAA,OAAO,kBAAkB,CAAC,SAAS,CAAC,CAAC,MAAM,CAAgB,CAAC;SAC7D,CAAA;;;6JApBU,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAAtF,aAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;iKAAlB,kBAAkB,EAAA,CAAA,CAAA;sHAAlB,kBAAkB,EAAA,UAAA,EAAA,CAAA;sBAD9BK,aAAU;;;ICQX,IAAM,oBAAoB,GAAG,OAAO,CAAC;IAGrC,IAAA,cAAA,kBAAA,YAAA;IAOE,IAAA,SAAA,cAAA,CAAoB,kBAAsC,EAAA;IAAtC,QAAA,IAAkB,CAAA,kBAAA,GAAlB,kBAAkB,CAAoB;SAAI;QAEvD,cAAW,CAAA,SAAA,CAAA,WAAA,GAAX,UAAY,IASlB,EAAA;IAEG,QAAA,IAAA,aAAa,GAQX,IAAI,CARO,aAAA,EACb,IAAI,GAOF,IAAI,CAPF,IAAA,EACJ,IAAI,GAMF,IAAI,KANF,EACJ,MAAM,GAKJ,IAAI,CAAA,MALA,EACN,aAAa,GAIX,IAAI,CAAA,aAJO,EACb,WAAW,GAGT,IAAI,CAHK,WAAA,EACX,gBAAgB,GAEd,IAAI,CAFU,gBAAA,EAChB,mBAAmB,GACjB,IAAI,oBADa,CACZ;IAET,QAAA,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,IAAI,IAAI,CAAC;IACjD,QAAA,IAAI,CAAC,mBAAmB,GAAG,mBAAmB,IAAI,IAAI,CAAC;IACvD,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YACtB,IAAI,CAAC,MAAM,GAAG,CAAA,gBAAgB,KAAA,IAAA,IAAhB,gBAAgB,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAhB,gBAAgB,CAAE,MAAM,KAAI,oBAAoB,CAAC;YAE/D,IAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;IAE3C,QAAA,IAAM,OAAO,GAAG,IAAI,CAAC,mBAAmB,CAAC;IACvC,YAAA,aAAa,EAAA,aAAA;IACb,YAAA,WAAW,EAAA,WAAA;IACX,YAAA,gBAAgB,EAAA,gBAAA;IACjB,SAAA,CAAC,CAAC;IACH,QAAA,IAAI,MAAM,GAAG,IAAI,CAAC,yBAAyB,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;YAE7E,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;SAC9D,CAAA;IAEM,IAAA,cAAA,CAAA,SAAA,CAAA,WAAW,GAAX,YAAA;IACL,QAAA,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;SACrB,CAAA;QAEM,cAAU,CAAA,SAAA,CAAA,UAAA,GAAV,UAAW,IAA+B,EAAA;YAC/C,IAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;YAE3C,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;SACrC,CAAA;QAEM,cAAY,CAAA,SAAA,CAAA,YAAA,GAAZ,UAAa,MAAoB,EAAA;IACtC;IAC2D;YAC3D,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;SACjC,CAAA;IAEM,IAAA,cAAA,CAAA,SAAA,CAAA,UAAU,GAAV,UAAW,IAAe,EAAE,aAA4B,EAAA;IAC7D,QAAA,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,QAAQ,EAAE;IACvC;IACgC;IAChC,YAAA,IAAI,CAAC,uBAAuB,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;IACnD,SAAA;IAAM,aAAA;IACL,YAAA,IAAI,CAAC,0BAA0B,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;IACtD,SAAA;SACF,CAAA;QAEM,cAAmB,CAAA,SAAA,CAAA,mBAAA,GAAnB,UAAoB,gBAAuC,EAAA;IAChE,QAAA,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;SAC1C,CAAA;IAEM,IAAA,cAAA,CAAA,SAAA,CAAA,aAAa,GAAb,UAAc,aAA2B,EAAE,IAAe,EAAA;IAC/D,QAAA,IAAM,WAAW,GAAG,IAAI,CAAC,2BAA2B,EAAE,CAAC;IACvD,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;IACtB,QAAA,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,mBAAmB,CAAC,EAAE,aAAa,EAAA,aAAA,EAAE,WAAW,EAAA,WAAA,EAAE,CAAC,CAAC;SAC/E,CAAA;QAEM,cAAiB,CAAA,SAAA,CAAA,iBAAA,GAAjB,UAAkB,WAAgC,EAAA;YACvD,IAAM,uBAAuB,GAAG,IAAI,CAAC,0BAA0B,CAAC,WAAW,CAAC,CAAC;IAC7E,QAAA,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,WAAW,GAAG,uBAAuB,CAAC;SAC7E,CAAA;QAEM,cAAyB,CAAA,SAAA,CAAA,yBAAA,GAAzB,UAA0B,mBAA8C,EAAA;IAC7E,QAAA,IAAI,CAAC,mBAAmB,GAAG,mBAAmB,CAAC;YAC/C,IAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAA0B,CAAC;;IAG/D,QAAA,WAAW,CAAC,GAAG,CAAC,UAAC,OAAO,EAAA;;IACtB,YAAA,IAAI,CAAA,EAAA,GAAA,OAAO,KAAA,IAAA,IAAP,OAAO,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAP,OAAO,CAAE,YAAY,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,mBAAmB,EAAE;IAC9C,gBAAA,OAAO,OAAO,CAAC,YAAY,CAAC,mBAAmB,CAAC;IACjD,aAAA;IACH,SAAC,CAAC,CAAC;IAEH,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;SAC7D,CAAA;IAEO,IAAA,cAAA,CAAA,SAAA,CAAA,2BAA2B,GAA3B,YAAA;;YACN,IAAM,WAAW,GAAG,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,UAAU,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,WAAW,CAAC;IACxE;;IAEuE;YACvE,IAAI,WAAW,KAAK,SAAS,EAAE;gBAC7B,OAAO,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,UAAC,GAAG,EAAK,EAAA,OAAA,WAAW,CAAC,GAAG,CAAC,CAAhB,EAAgB,CAAC,CAAC;IAChE,SAAA;IAAM,aAAA;IACL,YAAA,OAAO,EAAE,CAAC;IACX,SAAA;SACF,CAAA;IAEO,IAAA,cAAA,CAAA,SAAA,CAAA,uBAAuB,GAAvB,UAAwB,IAAe,EAAE,aAA4B,EAAA;YAC3E,IAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAA0B,CAAC;YAC5D,IAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAsB,CAAC;IACtD,QAAA,IAAM,WAAW,GAAG,IAAI,CAAC,2BAA2B,EAAE,CAAC;IAEvD,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;IACtB,QAAA,IAAM,OAAO,GAAG,IAAI,CAAC,mBAAmB,CAAC,EAAE,aAAa,EAAA,aAAA,EAAE,WAAW,EAAA,WAAA,EAAE,CAAC,CAAC;IACzE,QAAA,IAAM,MAAM,GAAG,IAAI,CAAC,yBAAyB,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IAC/E,QAAA,IAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;IAExC,QAAA,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;IACrB,QAAA,IAAI,CAAC,kBAAkB,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;SAChD,CAAA;IAEO,IAAA,cAAA,CAAA,SAAA,CAAA,0BAA0B,GAA1B,UAA2B,SAAoB,EAAE,aAA4B,EAAA;IACnF,QAAA,IAAM,WAAW,GAAG,IAAI,CAAC,2BAA2B,EAAE,CAAC;IACvD,QAAA,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC3B,QAAA,IAAM,OAAO,GAAG,IAAI,CAAC,mBAAmB,CAAC;IACvC,YAAA,aAAa,EAAA,aAAA;IACb,YAAA,WAAW,EAAA,WAAA;IACZ,SAAA,CAAC,CAAC;IAEH,QAAA,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC;IAC7B,QAAA,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,kBAAkB,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC;SACpF,CAAA;IAEO,IAAA,cAAA,CAAA,SAAA,CAAA,kBAAkB,GAAlB,UAAmB,aAAgC,EAAE,MAA0B,EAAA;YACrF,IAAI,CAAC,KAAK,GAAG,IAAImG,cAAK,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;SAC/C,CAAA;QAEO,cAAiB,CAAA,SAAA,CAAA,iBAAA,GAAjB,UAAkB,QAAwB,EAAA;IAChD,QAAA,IAAM,cAAc,GAAG,QAAQ,CAAC,MAAM,CAAC,UAAC,eAAe,EAAE,cAAc,EACrE,EAAA,OAAA,eAAe,CAAC,IAAI,CAAC,MAAM,GAAG,cAAc,CAAC,IAAI,CAAC,MAAM,GAAG,eAAe,GAAG,cAAc,CAA3F,EAA2F,CAC5F,CAAC;IACF,QAAA,OAAO,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;SACnD,CAAA;QAEO,cAA0B,CAAA,SAAA,CAAA,0BAAA,GAA1B,UAA2B,WAAgC,EAAA;YAA3D,IAKP,KAAA,GAAA,IAAA,CAAA;IAJC,QAAA,OAAO,WAAW,CAAC,GAAG,CAAC,UAAC,UAAU,EAAA;IAChC,YAAA,IAAM,sBAAsB,GAAG,KAAI,CAAC,kBAAkB,CAAC,qBAAqB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAC9F,YAAA,OAAO,YAAY,CAAC,sBAAsB,EAAE,UAAU,CAAC,CAAC;IAC1D,SAAC,CAAC,CAAC;SACJ,CAAA;QAEO,cAAmC,CAAA,SAAA,CAAA,mCAAA,GAAnC,UAAoC,WAAgC,EAAA;YAC1E,IAAM,uBAAuB,GAAG,IAAI,CAAC,0BAA0B,CAAC,WAAW,CAAC,CAAC;YAC7E,OAAO;IACL,YAAA,OAAO,EAAE;IACP,gBAAA,UAAU,EAAE;IACV,oBAAA,WAAW,EAAE,uBAAuB;IACrC,iBAAA;IACF,aAAA;aACF,CAAC;SACH,CAAA;QAEO,cAAmC,CAAA,SAAA,CAAA,mCAAA,GAAnC,UAAoC,OAAqB,EAAA;YAC/D,IAAM,8BAA8B,GAClC,IAAI,CAAC,kBAAkB,CAAC,iCAAiC,EAAE,CAAC;YAC9D,MAAM,CAAC,OAAO,CAAC,8BAA8B,CAAC,CAAC,OAAO,CAAC,UAAC,EAAQ,EAAA;IAAR,YAAA,IAAA,EAAA,GAAA,aAAQ,EAAP,GAAG,GAAA,EAAA,CAAA,CAAA,CAAA,EAAE,CAAC,GAAA,EAAA,CAAA,CAAA,CAAA,CAAA;IAC7D,YAAA,IAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;gBAC9B,OAAO,CAAC,GAAG,CAAC,GAAG,UAAC,CAAQ,EAAE,CAAkB,EAAE,CAAQ,EAAA;IACpD,gBAAA,8BAA8B,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC;IACzD,aAAC,CAAC;IACJ,SAAC,CAAC,CAAC;IACH,QAAA,OAAO,OAAO,CAAC;SAChB,CAAA;QAEO,cAAwB,CAAA,SAAA,CAAA,wBAAA,GAAxB,UAAyB,gBAAuC,EAAA;YAAhE,IAmCP,KAAA,GAAA,IAAA,CAAA;YAlCC,OAAO;gBACL,MAAM,EAAE,IAAI,CAAC,MAAM;IACnB,YAAA,OAAO,EAAE;IACP,gBAAA,OAAO,EAAE;IACP,oBAAA,SAAS,EAAE;4BACT,KAAK,EAAE,UAAC,YAAY,EAAA;;gCAClB,IAAM,IAAI,GAAGG,cAAM,CAAC,MAAC,CAAA,EAAA,GAAA,YAAY,CAAC,CAAC,CAAC,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,GAAW,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,CAAC,CAAC,CAAC;IACtD,4BAAA,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE;IAClB,gCAAA,OAAO,IAAI,CAAC,kBAAkB,CAAC,KAAI,CAAC,MAAM,EAAE;IAC1C,oCAAA,GAAG,EAAE,SAAS;IACd,oCAAA,KAAK,EAAE,OAAO;IACd,oCAAA,IAAI,EAAE,SAAS;IACf,oCAAA,MAAM,EAAE,SAAS;IAClB,iCAAA,CAAC,CAAC;IACJ,6BAAA;6BACF;4BACD,KAAK,EAAE,UAAC,OAAO,EAAA;;;IAGb,4BAAA,OAAO,GAAG,GAAG,OAAO,CAAC,cAAc,IAAI,gBAAgB,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC;6BAC5E;IACF,qBAAA;IACF,iBAAA;IACF,aAAA;IACD,YAAA,MAAM,EAAE;IACN,gBAAA,CAAC,EAAE;IACD,oBAAA,KAAK,EAAE;4BACL,QAAQ,EAAE,UAAC,KAAK,EAAA;gCACd,OAAO,KAAK,IAAI,gBAAgB,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC;6BACrD;IACF,qBAAA;IACF,iBAAA;IACF,aAAA;aACF,CAAC;SACH,CAAA;QAEO,cAAmB,CAAA,SAAA,CAAA,mBAAA,GAAnB,UAAoB,IAI3B,EAAA;IACS,QAAA,IAAA,aAAa,GAA2D,IAAI,CAAA,aAA/D,EAAE,WAAW,GAA8C,IAAI,CAAA,WAAlD,EAAoB,qBAAqB,GAAK,IAAI,iBAAT,CAAU;IAErF,QAAA,IAAM,UAAU,GAAG,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACzE,IAAM,iBAAiB,GAAG,UAAU,KAAA,IAAA,IAAV,UAAU,KAAV,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,UAAU,CAAE,OAAO,CAAC;YAC9C,IAAM,uBAAuB,GAAG,WAAW;IACzC,cAAE,IAAI,CAAC,mCAAmC,CAAC,WAAW,CAAC;kBACrD,EAAE,CAAC;YACP,IAAM,YAAY,GAChB,IAAI,CAAC,SAAS,KAAK,OAAO,GAAG,IAAI,CAAC,wBAAwB,CAAC,qBAAqB,CAAC,GAAG,EAAE,CAAC;IAEzF,QAAA,IAAI,OAAO,GAAiB,YAAY,CACtC,YAAY,EACZ,iBAAiB,EACjB,aAAa,EACb,uBAAuB,CACxB,CAAC;IAEF,QAAA,OAAO,IAAI,CAAC,mCAAmC,CAAC,OAAO,CAAC,CAAC;SAC1D,CAAA;IAEO,IAAA,cAAA,CAAA,SAAA,CAAA,qBAAqB,GAArB,UAAsB,QAAwB,EAAE,MAAmB,EAAA;IACzE,QAAA,IAAM,cAAc,GAAG,QAAQ,CAAC,MAAM,CAAC,UAAC,eAAe,EAAE,cAAc,EACrE,EAAA,OAAA,eAAe,CAAC,IAAI,CAAC,MAAM,GAAG,cAAc,CAAC,IAAI,CAAC,MAAM,GAAG,eAAe,GAAG,cAAc,CAA3F,EAA2F,CAC5F,CAAC;YACF,OAAO,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,UAAC,KAAuB,EACrD,EAAA,OAAAA,cAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,MAAM,EAAE;IACzC,YAAA,KAAK,EAAE,OAAO;IACd,YAAA,GAAG,EAAE,SAAS;aACf,CAAC,CAAA,EAAA,CACH,CAAC;SACH,CAAA;QAEO,cAAgB,CAAA,SAAA,CAAA,gBAAA,GAAhB,UAAiB,IAKxB,EAAA;IACS,QAAA,IAAA,QAAQ,GAA8B,IAAI,SAAlC,EAAE,MAAM,GAAsB,IAAI,CAAA,MAA1B,EAAE,IAAI,GAAgB,IAAI,CAApB,IAAA,EAAE,SAAS,GAAK,IAAI,UAAT,CAAU;YAEnD,IAAM,gBAAgB,GAAG,UAAC,EAAsB,EAAA;IAApB,YAAA,IAAA,IAAI,GAAA,EAAA,CAAA,IAAA,CAAA;IAC9B,YAAA,OAAA,CAAC,EAAC,IAAI,aAAJ,IAAI,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAJ,IAAI,CAAE,IAAI,CACV,UAAC,SAAS,EAAA,EAAK,OAAA,OAAO,SAAS,KAAK,QAAQ,IAAI,OAAO,SAAS,CAAC,SAAS,CAAC,KAAK,QAAQ,CAAzE,EAAyE,CACzF,CAAA,CAAA;IAFD,SAEC,CAAC;IAEJ;;;;;;;;IAQE;IACF,QAAA,IAAM,6BAA6B,GAAG,MAAM,KAAK,SAAS,CAAC;YAC3D,IAAM,iCAAiC,GAAG,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAE1E,QAAA,IAAI,6BAA6B,EAAE;IACjC,YAAA,OAAO,MAAM,CAAC;IACf,SAAA;IAAM,aAAA,IAAI,iCAAiC,EAAE;IAC5C,YAAA,OAAO,IAAI,CAAC;IACb,SAAA;IAAM,aAAA;IACL;;;;IAIE;gBACF,OAAO,IAAI,KAAK,OAAO;sBACnB,IAAI,CAAC,qBAAqB,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC;IACnD,kBAAE,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IACtC,SAAA;SACF,CAAA;QAEO,cAAyB,CAAA,SAAA,CAAA,yBAAA,GAAzB,UACN,IAAe,EACf,QAAwB,EACxB,OAAqB,EACrB,MAAqB,EAAA;;YAErB,IAAM,UAAU,GAAG,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IAE/D,QAAA,IAAM,SAAS,GAAG,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,UAAU,KAAV,IAAA,IAAA,UAAU,KAAV,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,UAAU,CAAE,OAAO,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,SAAS,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,GAAG,CAAC;YACxD,IAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,EAAE,MAAM,EAAA,MAAA,EAAE,QAAQ,EAAA,QAAA,EAAE,IAAI,EAAA,IAAA,EAAE,SAAS,EAAA,SAAA,EAAE,CAAC,CAAC;YAEnF,OAAO,YAAY,CAAC,UAAU,EAAE;IAC9B,YAAA,IAAI,EAAE;IACJ,gBAAA,MAAM,EAAE,aAAa;IACrB,gBAAA,QAAQ,EAAA,QAAA;IACT,aAAA;IACD,YAAA,OAAO,EAAA,OAAA;IACR,SAAA,CAAuB,CAAC;SAC1B,CAAA;IAEO,IAAA,cAAA,CAAA,SAAA,CAAA,gCAAgC,GAAhC,UACN,mBAA6C,EAC7C,QAAwB,EAAA;IAExB,QAAA,mBAAmB,CAAC,OAAO,CAAC,UAAC,EAAyB,EAAA;IAAzB,YAAA,IAAA,EAAA,GAAA,aAAyB,EAAxB,YAAY,GAAA,EAAA,CAAA,CAAA,CAAA,EAAE,SAAS,GAAA,EAAA,CAAA,CAAA,CAAA,CAAA;;IACnD,YAAA,IAAM,OAAO,GAAG,QAAQ,CAAC,YAAY,CAAC,CAAC;IACvC,YAAA,IAAI,CAAC,OAAO;oBAAE,OAAO;IAErB,YAAA,IAAI,CAAA,EAAA,GAAA,OAAO,KAAA,IAAA,IAAP,OAAO,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAP,OAAO,CAAE,YAAY,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,mBAAmB,EAAE;oBAC9C,OAAO,CAAC,YAAY,CAAC,mBAAmB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC1D,aAAA;IAAM,iBAAA;oBACL,OAAO,CAAC,YAAY,GACf,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,OAAO,CAAC,YAAY,CACvB,EAAA,EAAA,mBAAmB,EAAE,CAAC,SAAS,CAAC,GACjC,CAAC;IACH,aAAA;IACH,SAAC,CAAC,CAAC;SACJ,CAAA;QACO,cAAc,CAAA,SAAA,CAAA,cAAA,GAAd,UAAe,IAA+B,EAAA;;;YAEpD,IACE,CAAA,CAAA,EAAA,GAAA,IAAI,CAAC,gBAAgB,0CAAE,WAAW;iBAClC,CAAA,EAAA,GAAA,IAAI,CAAC,gBAAgB,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,OAAO,CAAA;iBAC9B,CAAA,EAAA,GAAA,IAAI,CAAC,gBAAgB,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,OAAO,CAAA,EAC9B;IACA,YAAA,IAAI,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;IACrC,SAAA;IACD,QAAA,IAAI,QAAQ,GAAG,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,MAAA,EAAE,CAAC,GAAG,IAAI,CAAC;YACvD,IAAI,IAAI,CAAC,mBAAmB;gBAC1B,IAAI,CAAC,gCAAgC,CAAC,IAAI,CAAC,mBAAmB,EAAE,QAAQ,CAAC,CAAC;IAE5E;;;IAGE;IACF,QAAA,IAAI,IAAI,CAAC,SAAS,KAAK,OAAO,EAAE;IAC9B,YAAA,QAAQ,CAAC,OAAO,CAAC,UAAC,OAAO,EAAA;oBACvB,OAAO,CAAC,YAAY,GAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EACf,OAAO,CAAC,YAAY,CAAA,EAAA,EACvB,YAAY,EAAE,IAAI,EAAA,CACnB,CAAC;IACJ,aAAC,CAAC,CAAC;IACJ,SAAA;IAED,QAAA,OAAO,QAAQ,CAAC;SACjB,CAAA;IACD;;;;;IAKG;QACI,cAAiB,CAAA,SAAA,CAAA,iBAAA,GAAjB,UAAkB,IAA+B,EAAA;YAAjD,IAiCN,KAAA,GAAA,IAAA,CAAA;IAhCC,QAAA,IAAI,aAAa,CAAC,IAAI,CAAC,EAAE;IACvB,YAAA,MAAM,KAAK,CAAC,8EAA8E,CAAC,CAAC;IAC7F,SAAA;YAED,IAAM,iBAAiB,GAAG,UACxB,GAAiB,EACjB,IAAe,EACf,SAAyB,EACzB,QAA6C,EAAA;IAEvC,YAAA,IAAA,KAAqB,KAAI,CAAC,yBAAyB,CAAC,GAAG,EAAE,IAAI,EAAE,SAAS,CAAC,EAAvE,KAAK,WAAA,EAAE,OAAO,aAAyD,CAAC;gBAChF,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EACd,GAAG,CAAC,IAAI,CAAC,OAAO,CAAsB,CAAA,EAAA,EAC1C,SAAS,EAAE;wBACT,KAAK,EAAE,KAAK,IAAI,KAAI,CAAC,gBAAgB,CAAC,WAAW,IAAI,EAAE,CAAC;IACxD,oBAAA,QAAQ,EAAA,QAAA;IACT,iBAAA,EAAA,CACkB,CAAC;IACxB,SAAC,CAAC;IAEF,QAAA,IAAI,CAAC,GAAG,CAAC,UAAC,GAAG,EAAA;IACX,YAAA,IAAI,KAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE;oBACjC,iBAAiB,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;IAC9C,aAAA;IACD,YAAA,IAAI,KAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE;oBACjC,iBAAiB,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;IAC5C,aAAA;IACD,YAAA,IAAI,KAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE;oBACrC,iBAAiB,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9C,aAAA;IACH,SAAC,CAAC,CAAC;IACH,QAAA,OAAO,IAAI,CAAC;SACb,CAAA;IAEO,IAAA,cAAA,CAAA,SAAA,CAAA,yBAAyB,GAAzB,UACN,OAAqB,EACrB,IAAY,EACZ,SAAyB,EAAA;IAEzB,QAAA,IAAI,OAAe,CAAC;IACpB,QAAA,IAAI,KAAa,CAAC;YAClB,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,UAAC,SAAS,EAAE,KAAK,EAAA;IACpC,YAAA,IAAI,SAAS,IAAI,KAAK,KAAK,CAAC,KAAK,IAAI,SAAS,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,EAAE;IAC7D,gBAAA,KAAK,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;oBACvB,OAAO,GAAG,KAAK,CAAC;IACjB,aAAA;IACD,YAAA,IAAI,SAAS,IAAI,MAAM,KAAK,CAAC,KAAK,IAAI,SAAS,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,EAAE;IAC9D,gBAAA,KAAK,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;oBACvB,OAAO,GAAG,KAAK,CAAC;IACjB,aAAA;IACH,SAAC,CAAC,CAAC;IACH,QAAA,OAAO,EAAE,KAAK,EAAA,KAAA,EAAE,OAAO,EAAA,OAAA,EAAE,CAAC;SAC3B,CAAA;;;yJAraU,cAAc,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,kBAAA,EAAA,CAAA,EAAA,MAAA,EAAA5G,aAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;6JAAd,cAAc,EAAA,CAAA,CAAA;sHAAd,cAAc,EAAA,UAAA,EAAA,CAAA;sBAD1BK,aAAU;;;ACSX,QAAA,cAAA,kBAAA,YAAA;IAsBE,IAAA,SAAA,cAAA,CAAoB,cAA8B,EAAA;IAA9B,QAAA,IAAc,CAAA,cAAA,GAAd,cAAc,CAAgB;IArBzC,QAAA,IAAI,CAAA,IAAA,GAAc,QAAQ,CAAC;IAmB5B,QAAA,IAAoB,CAAA,oBAAA,GAAY,KAAK,CAAC;SAEQ;IATtD,IAAA,MAAA,CAAA,cAAA,CAAa,cAAM,CAAA,SAAA,EAAA,QAAA,EAAA;IAAnB,QAAA,GAAA,EAAA,UAAoB,KAAsB,EAAA;IACxC,YAAA,IAAI,CAAC,OAAO,GAAG,OAAO,KAAK,KAAK,QAAQ,GAAM,KAAK,GAAI,IAAA,GAAG,KAAK,CAAC;aACjE;;;IAAA,KAAA,CAAA,CAAA;IASD,IAAA,cAAA,CAAA,SAAA,CAAA,eAAe,GAAf,YAAA;YAAA,IASC,KAAA,GAAA,IAAA,CAAA;IARC;;;;;IAKE;IACF,QAAA,IAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC;IACvD,QAAA,IAAI,CAAC,4BAA4B,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,YAAM,EAAA,OAAA,KAAI,CAAC,WAAW,EAAE,CAAlB,EAAkB,CAAC,CAAC;SACjF,CAAA;QAEO,cAA4B,CAAA,SAAA,CAAA,4BAAA,GAA5B,UAA6B,OAAoB,EAAA;YACvD,IAAM,QAAQ,GAAG,UAAC,EAAiB,EAAA;oBAAf,KAAK,GAAA,EAAA,CAAA,KAAA,EAAE,MAAM,GAAA,EAAA,CAAA,MAAA,CAAA;IAAO,YAAA,OAAA,MAAM,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC,CAAA;IAAvB,SAAuB,CAAC;IAEhE,QAAA,OAAO,IAAI,OAAO,CAAC,UAAC,OAAO,EAAA;IACzB,YAAA,IAAM,iBAAiB,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC;gBAC1D,IAAI,QAAQ,CAAC,iBAAiB,CAAC;IAAE,gBAAA,OAAO,EAAE,CAAC;gBAE3C,IAAM,cAAc,GAAG,IAAI,qBAAqB,EAAE,CAAC,MAAM,CAAC,UAAC,EAAqB,EAAA;wBAArB,EAAA,GAAA,MAAA,CAAA,EAAA,EAAA,CAAA,CAAqB,EAApB,mBAAmB,GAAA,EAAA,CAAA,CAAA,CAAA,CAAA;IAC7E,gBAAA,IAAI,QAAQ,CAAC,mBAAmB,CAAC,WAAW,CAAC,EAAE;IAC7C,oBAAA,cAAc,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IAClC,oBAAA,OAAO,EAAE,CAAC;IACX,iBAAA;IACH,aAAC,CAAC,CAAC;IAEH,YAAA,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAClC,SAAC,CAAC,CAAC;SACJ,CAAA;QAED,cAAW,CAAA,SAAA,CAAA,WAAA,GAAX,UAAY,aAA4B,EAAA;YAAxC,IAqBC,KAAA,GAAA,IAAA,CAAA;YApBC,IAAI,IAAI,CAAC,oBAAoB,EAAE;gBAC7B,IAAI,mBAAiB,GAAG,KAAK,CAAC;IAE9B,YAAA,IAAM,kBAAgB,GAAG;oBACvB,IAAI,EAAE,cAAM,OAAA,KAAI,CAAC,UAAU,EAAE,GAAA;oBAC7B,MAAM,EAAE,cAAM,OAAA,KAAI,CAAC,YAAY,EAAE,GAAA;oBACjC,IAAI,EAAE,cAAM,OAAA,KAAI,CAAC,UAAU,EAAE,GAAA;oBAC7B,aAAa,EAAE,cAAM,OAAA,KAAI,CAAC,mBAAmB,EAAE,GAAA;oBAC/C,WAAW,EAAE,cAAM,OAAA,KAAI,CAAC,iBAAiB,EAAE,GAAA;oBAC3C,mBAAmB,EAAE,cAAM,OAAA,KAAI,CAAC,yBAAyB,EAAE,GAAA;iBAC5D,CAAC;gBAEF,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,UAAC,EAAK,EAAA;wBAAL,EAAA,GAAA,MAAA,CAAA,EAAA,EAAA,CAAA,CAAK,EAAJ,GAAG,GAAA,EAAA,CAAA,CAAA,CAAA,CAAA;oBACzC,IAAI,aAAa,CAAC,GAAG,CAAC,CAAC,WAAW,IAAI,CAAC,kBAAgB,CAAC,GAAG,CAAC;wBAAE,OAAO;oBACrE,mBAAiB,GAAG,IAAI,CAAC;IACzB,gBAAA,kBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC;IAC1B,aAAC,CAAC,CAAC;IAEH,YAAA,IAAI,mBAAiB;oBAAE,IAAI,CAAC,WAAW,EAAE,CAAC;IAC3C,SAAA;SACF,CAAA;IAEO,IAAA,cAAA,CAAA,SAAA,CAAA,WAAW,GAAX,YAAA;IACN,QAAA,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;IACjC,QAAA,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC;gBAC9B,aAAa,EAAE,IAAI,CAAC,aAAa;gBACjC,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,aAAa,EAAE,IAAI,CAAC,aAAa;gBACjC,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;gBACvC,mBAAmB,EAAE,IAAI,CAAC,mBAAmB;IAC9C,SAAA,CAAC,CAAC;SACJ,CAAA;IAEO,IAAA,cAAA,CAAA,SAAA,CAAA,UAAU,GAAV,YAAA;YACN,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAC3C,CAAA;IAEO,IAAA,cAAA,CAAA,SAAA,CAAA,YAAY,GAAZ,YAAA;YACN,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SAC/C,CAAA;IAEO,IAAA,cAAA,CAAA,SAAA,CAAA,UAAU,GAAV,YAAA;IACN,QAAA,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;SAC/D,CAAA;IAEO,IAAA,cAAA,CAAA,SAAA,CAAA,mBAAmB,GAAnB,YAAA;IACN,QAAA,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;SAClE,CAAA;IAEO,IAAA,cAAA,CAAA,SAAA,CAAA,iBAAiB,GAAjB,YAAA;YACN,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;SACzD,CAAA;IAEO,IAAA,cAAA,CAAA,SAAA,CAAA,yBAAyB,GAAzB,YAAA;YACN,IAAI,CAAC,cAAc,CAAC,yBAAyB,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;SACzE,CAAA;IAEO,IAAA,cAAA,CAAA,SAAA,CAAA,WAAW,GAAX,YAAA;IACN,QAAA,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC;SACnC,CAAA;;;yJApHU,cAAc,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAwG,cAAA,EAAA,CAAA,EAAA,MAAA,EAAA7G,aAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;IAAd,mBAAA,cAAA,CAAA,IAAA,GAAAA,aAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,cAAc,EAFd,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,MAAA,EAAA,MAAA,EAAA,QAAA,EAAA,aAAA,EAAA,eAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,WAAA,EAAA,aAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,4BAAA,EAAA,cAAA,EAAA,EAAA,EAAA,SAAA,EAAA,CAAC,cAAc,CAAC,wKC5B7B,kRAOA,EAAA,MAAA,EAAA,CAAA,wEAAA,CAAA,EAAA,CAAA,CAAA;sHDuBa,cAAc,EAAA,UAAA,EAAA,CAAA;sBAN1BS,YAAS;IAAC,YAAA,IAAA,EAAA,CAAA;IACT,oBAAA,QAAQ,EAAE,aAAa;IACvB,oBAAA,WAAW,EAAE,wBAAwB;wBACrC,SAAS,EAAE,CAAC,wBAAwB,CAAC;wBACrC,SAAS,EAAE,CAAC,cAAc,CAAC;qBAC5B,CAAA;sGAEU,IAAI,EAAA,CAAA;0BAAZG,QAAK;oBACG,IAAI,EAAA,CAAA;0BAAZA,QAAK;oBAEG,MAAM,EAAA,CAAA;0BAAdA,QAAK;oBAEG,aAAa,EAAA,CAAA;0BAArBA,QAAK;oBACG,gBAAgB,EAAA,CAAA;0BAAxBA,QAAK;oBACG,WAAW,EAAA,CAAA;0BAAnBA,QAAK;oBACG,mBAAmB,EAAA,CAAA;0BAA3BA,QAAK;oBAGN,OAAO,EAAA,CAAA;0BADND,cAAW;2BAAC,4BAA4B,CAAA;oBAE5B,MAAM,EAAA,CAAA;0BAAlBC,QAAK;oBAKN,aAAa,EAAA,CAAA;0BADZoC,YAAS;2BAAC,aAAa,CAAA;;;AErC1B,QAAA,WAAA,kBAAA,YAAA;IAAA,IAAA,SAAA,WAAA,GAAA;;;;sJAAa,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAAhD,aAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;uJAAX,WAAW,EAAA,YAAA,EAAA,CAJP,cAAc,CAAA,EAAA,OAAA,EAAA,CACnB,cAAc,CAAA,EAAA,CAAA,CAAA;uJAGb,WAAW,EAAA,SAAA,EAFX,CAAC,kBAAkB,CAAC,EAAA,CAAA,CAAA;sHAEpB,WAAW,EAAA,UAAA,EAAA,CAAA;sBALvB4E,WAAQ;IAAC,YAAA,IAAA,EAAA,CAAA;wBACR,YAAY,EAAE,CAAC,cAAc,CAAC;wBAC9B,OAAO,EAAE,CAAC,cAAc,CAAC;wBACzB,SAAS,EAAE,CAAC,kBAAkB,CAAC;qBAChC,CAAA;;;ACGY,QAAA,2BAA2B,GAAG,UAAC,MAAc,EAAE,MAAc,EAAA;IACxE,IAAA,IAAM,OAAO,GAAY,cAAc,CAAC,MAAM,CAAY,CAAC;QAC3D,IAAM,gBAAgB,GAAG,qBAAqB,CAAC;IAC/C,IAAA,OAAO,CAAC,KAAK,CAAC,eAAe,GAAG,gBAAgB,CAAC;IACjD,IAAA,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;QAE9B,OAAO,CAAC,OAAO,CAAC,eAAe,GAAGlB,gBAAW,CAAC,sBAAsB,CAAC,kBAAkB,CAAC,CAAC;;IAEzF,IAAA,OAAO,CAAC,OAAO,CAAC,SAAS,GAAG,YAAA;IAC1B,QAAA,QACE,iCAAiC;;gBAEjC8B,uBAAU,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBACtC,2DAA2D;IAC3D,YAAAsB,eAAY,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC;IAC5B,YAAA,QAAQ,EACR;IACJ,KAAC,CAAC;QACF,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,GAAG,gBAAgB,CAAC;IACtD,IAAA,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,GAAGpD,gBAAW,CAAC,sBAAsB,CAAC,UAAU,CAAC,CAAC;QAEpF,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,GAAG,uBAAuB,CAAC;IACpE,IAAA,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,GAAGA,gBAAW,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC;QAE1F,OAAO,CAAC,KAAK,GACR,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,OAAO,CAAC,KAAK,CAAA,EAAA,EAChB,SAAS,EAAE;IACT,YAAA,KAAK,EAAEA,gBAAW,CAAC,sBAAsB,CAAC,SAAS,CAAC;IACrD,SAAA,EACD,SAAS,EAAE,gBAAgB,EAC3B,SAAS,EAAEA,gBAAW,CAAC,sBAAsB,CAAC,QAAQ,CAAC,EACvD,MAAM,EAAE;IACN,YAAA,KAAK,EAAE;IACL,gBAAA,KAAK,EAAEA,gBAAW,CAAC,sBAAsB,CAAC,gBAAgB,CAAC;IAC5D,aAAA;IACF,SAAA,EAAA,CACF,CAAC;IAEF,IAAA,OAAO,CAAC,KAAK,GACR,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,OAAO,CAAC,KAAK,CAAA,EAAA,EAChB,SAAS,EAAE,gBAAgB,EAC3B,aAAa,EAAEA,gBAAW,CAAC,sBAAsB,CAAC,QAAQ,CAAC,EAC3D,MAAM,EAAE;IACN,YAAA,KAAK,EAAE;IACL,gBAAA,KAAK,EAAEA,gBAAW,CAAC,sBAAsB,CAAC,gBAAgB,CAAC;IAC5D,aAAA;IACF,SAAA,EAAA,CACF,CAAC;IAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;IA2BG;IAEH,IAAA,OAAO,OAAO,CAAC;IACjB,EAAE;AAEK,QAAM,WAAW,GAAG,UAAC,MAAc,EAAA;QACxC,OAAO;IACL,QAAA,EAAE,EAAE,QAAQ;IACZ,QAAA,MAAM,EAAE,CAAC;IACT,QAAA,MAAM,EAAE;IACN,YAAA;IACE,gBAAA,KAAK,EAAE,KAAK;IACZ,gBAAA,KAAK,EAAE,MAAM;IACb,gBAAA,QAAQ,EAAE,CAAC;IACX,gBAAA,KAAK,EAAE,QAAQ;IACf,gBAAA,aAAa,EAAE,KAAK;IACpB,gBAAA,eAAe,EAAEA,gBAAW,CAAC,sBAAsB,CAAC,UAAU,CAAC;;IAE/D,gBAAA,SAAS,EAAE,YAAA;wBACT,OAAOoD,eAAY,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;qBAC9C;IACF,aAAA;IACD,YAAA;IACE,gBAAA,KAAK,EAAE,KAAK;IACZ,gBAAA,KAAK,EAAE,MAAM;oBACb,QAAQ,EAAE,CAAC,EAAE;IACb,gBAAA,KAAK,EAAE,QAAQ;IACf,gBAAA,aAAa,EAAE,QAAQ;IACvB,gBAAA,eAAe,EAAEpD,gBAAW,CAAC,sBAAsB,CAAC,UAAU,CAAC;;IAE/D,gBAAA,SAAS,EAAE,YAAA;wBACT,OAAOoD,eAAY,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;qBAC9C;IACF,aAAA;IACF,SAAA;IACD,QAAA,YAAY,EAAE;IACZ,YAAA,CAAC,EAAE,CAAC;IACJ,YAAA,YAAY,EAAE,IAAI;IACnB,SAAA;SACF,CAAC;IACJ,EAAE;IAEF,IAAM,cAAc,GAAG,UAAC,MAAc,EAAA;QACpC,OAAO;IACL,QAAA,KAAK,EAAE;IACL,YAAA,QAAQ,EAAE,GAAG;IACb,YAAA,IAAI,EAAE,YAAY;IAClB,YAAA,UAAU,EAAE,EAAE;;IAEf,SAAA;IACD,QAAA,SAAS,EAAE;IACT,YAAA,OAAO,EAAE,KAAK;IACf,SAAA;IACD,QAAA,aAAa,EAAE;IACb,YAAA,OAAO,EAAE,KAAK;IACf,SAAA;IACD,QAAA,SAAS,EAAE;IACT,YAAA,OAAO,EAAE,KAAK;IACf,SAAA;IACD,QAAA,OAAO,EAAE;IACP,YAAA,OAAO,EAAE,KAAK;IACf,SAAA;IACD,QAAA,KAAK,EAAE;IACL,YAAA,IAAI,EAAE,EAAE;IACT,SAAA;IACD,QAAA,QAAQ,EAAE;IACR,YAAA,IAAI,EAAE,EAAE;IACT,SAAA;IACD,QAAA,KAAK,EAAE;IACL,YAAA,OAAO,EAAE,IAAI;IACb,YAAA,IAAI,EAAE,UAAU;IAChB,YAAA,SAAS,EAAE,GAAG;IACd,YAAA,QAAQ,EAAE,KAAK;IACf,YAAA,MAAM,EAAE;IACN,gBAAA,MAAM,EAAE,4BAA4B;IACrC,aAAA;IACF,SAAA;IACD,QAAA,KAAK,EAAE;IACL,YAAA,QAAQ,EAAE,KAAK;IACf,YAAA,KAAK,EAAE;IACL,gBAAA,IAAI,EAAE,EAAE;IACT,aAAA;IACD;;;;;;IAMK;IACN,SAAA;IACD,QAAA,WAAW,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAClC,QAAA,MAAM,EAAE;IACN,YAAA,OAAO,EAAE,KAAK;IACf,SAAA;IACD,QAAA,OAAO,EAAE;IACP,YAAA,UAAU,EAAE;IACV,gBAAA,KAAK,EAAE,CAAC;IACR,gBAAA,MAAM,EAAE,CAAC;IACV,aAAA;IACD,YAAA,MAAM,EAAE,KAAK;IACb,YAAA,WAAW,EAAE,CAAC;IACf,SAAA;IACD,QAAA,WAAW,EAAE;IACX,YAAA,IAAI,EAAE;IACJ,gBAAA,MAAM,EAAE;IACN,oBAAA,SAAS,EAAE,EAAE;IACb,oBAAA,MAAM,EAAE,CAAC;IACV,iBAAA;IACD,gBAAA,SAAS,EAAE,CAAC;IACZ,gBAAA,MAAM,EAAE;IACN,oBAAA,KAAK,EAAE;IACL,wBAAA,SAAS,EAAE,CAAC;IACb,qBAAA;IACF,iBAAA;IACD,gBAAA,MAAM,EAAE,EAAE;IACV,gBAAA,SAAS,EAAE,IAAI;IAChB,aAAA;IACD,YAAA,MAAM,EAAE;IACN,gBAAA,MAAM,EAAE;IACN,oBAAA,MAAM,EAAE,GAAG;IACX,oBAAA,gBAAgB,EAAE,EAAE;IACrB,iBAAA;IACF,aAAA;IACF,SAAA;IACD,QAAA,MAAM,EAAE;IACN,YAAA;IACE,gBAAA,IAAI,EAAE,MAAM;IACZ,gBAAA,IAAI,EAAE,EAAE;IACT,aAAA;IACF,SAAA;SACF,CAAC;IACJ,CAAC;;ICjND;AACAC,yCAAiB,CAAC7B,uBAAU,CAAC,CAAC;AAO9B,QAAA,6BAAA,kBAAA,YAAA;QA+BE,SAAY,6BAAA,CAAA,WAAuB,EAA6B,MAAc,EAAA;IAAd,QAAA,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;IAftE,QAAA,IAAO,CAAA,OAAA,GAAG,GAAG,CAAC;IAUb,QAAA,IAAW,CAAA,WAAA,GAAG,EAAE,CAAC;IACjB,QAAA,IAAc,CAAA,cAAA,GAAG,IAAI,CAAC;IAK7B,QAAA,IAAI,CAAC,cAAc,GAAG,WAAW,CAAC;SACnC;IA9BD,IAAA,MAAA,CAAA,cAAA,CAAa,6BAAI,CAAA,SAAA,EAAA,MAAA,EAAA;IAGjB,QAAA,GAAA,EAAA,YAAA;gBACE,OAAO,IAAI,CAAC,KAAK,CAAC;aACnB;IALD,QAAA,GAAA,EAAA,UAAkB,GAAoC,EAAA;IACpD,YAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;aACzB;;;IAAA,KAAA,CAAA,CAAA;IAKD,IAAA,MAAA,CAAA,cAAA,CAAa,6BAAO,CAAA,SAAA,EAAA,SAAA,EAAA;IAGpB,QAAA,GAAA,EAAA,YAAA;gBACE,OAAO,IAAI,CAAC,QAAQ,CAAC;aACtB;IALD,QAAA,GAAA,EAAA,UAAqB,GAAY,EAAA;IAC/B,YAAA,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;aAC5B;;;IAAA,KAAA,CAAA,CAAA;IAKD,IAAA,MAAA,CAAA,cAAA,CAAa,6BAAM,CAAA,SAAA,EAAA,QAAA,EAAA;IAMnB,QAAA,GAAA,EAAA,YAAA;gBACE,OAAO,IAAI,CAAC,OAAO,CAAC;aACrB;IARD,QAAA,GAAA,EAAA,UAAoB,MAAc,EAAA;IAChC,YAAA,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;gBACtB,IAAI,IAAI,CAAC,KAAK,EAAE;oBACd,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAClC,aAAA;aACF;;;IAAA,KAAA,CAAA,CAAA;QAaD,6BAAgB,CAAA,SAAA,CAAA,gBAAA,GAAhB,UAAiB,OAAgB,EAAA;IAC/B,QAAA,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;IACxB,QAAA,IAAI,CAAC,KAAK,GAAGA,uBAAU,CAAC,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;SACtF,CAAA;QAED,6BAAa,CAAA,SAAA,CAAA,aAAA,GAAb,UAAc,IAAqC,EAAA;IACjD,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IAElB,QAAA,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,EAAE;;IAEtB,YAAA,IAAI,CAAC,KAAK,CAAC,MAAM,CACf;IACE,gBAAA,MAAM,EAAE,EAAE;IACX,aAAA,EACD,KAAK,EACL,IAAI,CACL,CAAC;;IAEF,YAAA,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;;IAEtC,YAAA,IAAI,CAAC,KAAK,CAAC,MAAM,CACf;IACE,gBAAA,MAAM,EAAE;IACN,oBAAA;IACE,wBAAA,IAAI,EAAE,MAAM;IACZ,wBAAA,IAAI,EAAE,IAAI;IACX,qBAAA;IACF,iBAAA;IACF,aAAA,EACD,KAAK,EACL,IAAI,CACL,CAAC;;IAEF,YAAA,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,CAAC;;IAE1D,YAAA,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;IACrB,SAAA;SACF,CAAA;;;IAxEU,mBAAA,6BAAA,CAAA,IAAA,GAAAlF,aAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAAA,aAAA,EAAA,IAAA,EAAA,6BAA6B,uDA+BKgH,YAAS,EAAA,CAAA,EAAA,MAAA,EAAAhH,aAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;IA/B3C,mBAAA,6BAAA,CAAA,IAAA,GAAAA,aAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,6BAA6B,6MAH9B,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,wBAAA,CAAA,EAAA,CAAA,CAAA;sHAGD,6BAA6B,EAAA,UAAA,EAAA,CAAA;sBALzCS,YAAS;IAAC,YAAA,IAAA,EAAA,CAAA;IACT,oBAAA,QAAQ,EAAE,8BAA8B;IACxC,oBAAA,QAAQ,EAAE,EAAE;wBACZ,SAAS,EAAE,CAAC,yCAAyC,CAAC;qBACvD,CAAA;;;kCAgCuC8D,SAAM;mCAACyC,YAAS,CAAA;;6BA5BzC,IAAI,EAAA,CAAA;0BAAhBpG,QAAK;oBAOO,OAAO,EAAA,CAAA;0BAAnBA,QAAK;oBAOO,MAAM,EAAA,CAAA;0BAAlBA,QAAK;oBASG,WAAW,EAAA,CAAA;0BAAnBA,QAAK;oBACG,cAAc,EAAA,CAAA;0BAAtBA,QAAK;;;ICtCR,IAAA,cAAA,kBAAA,YAAA;IAIE,IAAA,SAAA,cAAA,CAAoB,SAAoB,EAAA;IAApB,QAAA,IAAS,CAAA,SAAA,GAAT,SAAS,CAAW;IAFhC,QAAA,IAAiB,CAAA,iBAAA,GAAG,KAAK,CAAC;SAEU;QAErC,cAAI,CAAA,SAAA,CAAA,IAAA,GAAJ,UACL,iBAA6B,EAC7B,OAAwB,EACxB,aAAsE,EACtE,aAAsC,EAAA;YAJjC,IAkBN,KAAA,GAAA,IAAA,CAAA;IAZC,QAAA,IAAI,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC,EAAE;IAC3C,YAAA,IAAM,MAAM,GAAsB,iBAAiB,CAAC,aAAa,CAAC;gBAClE,MAAM,CAAC,MAAM,GAAG,YAAA;IACd,gBAAA,KAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;IAC9B,gBAAA,KAAI,CAAC,yBAAyB,CAAC,OAAO,CAAC,CAAC;IAC1C,aAAC,CAAC;IACF,YAAA,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,aAAa,CAAC;gBAEzC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,gBAAgB,CAAC,SAAS,EAAE,UAAC,KAAmB,EAC1E,EAAA,OAAA,KAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,aAAa,EAAE,aAAa,CAAC,CAAA,EAAA,CAC7D,CAAC;IACH,SAAA;SACF,CAAA;QAEM,cAAM,CAAA,SAAA,CAAA,MAAA,GAAN,UAAO,OAAwB,EAAA;YACpC,IAAI,IAAI,CAAC,iBAAiB,EAAE;IAC1B,YAAA,IAAI,CAAC,yBAAyB,CAAC,OAAO,CAAC,CAAC;IACzC,SAAA;SACF,CAAA;QAEM,cAAc,CAAA,SAAA,CAAA,cAAA,GAAd,UAAe,GAAW,EAAA;YAC/B,IAAI,IAAI,CAAC,iBAAiB,EAAE;IAC1B,YAAA,IAAI,CAAC,YAAY,CAAC,WAAW,CAC3B;IACE,gBAAA,IAAI,EAAE,6BAA6B;IACnC,gBAAA,WAAW,EAAE,GAAG;iBACjB,EACD,GAAG,CACJ,CAAC;IACH,SAAA;SACF,CAAA;QAEO,cAAe,CAAA,SAAA,CAAA,eAAA,GAAf,UAAgB,iBAA6B,EAAA;IACnD,QAAA,QACE,iBAAiB;IACjB,YAAA,iBAAiB,CAAC,aAAa;gBAC/B,iBAAiB,CAAC,aAAa,YAAY,iBAAiB;IAC5D,YAAA,iBAAiB,CAAC,aAAa,CAAC,aAAa,EAC7C;SACH,CAAA;QAEO,cAAyB,CAAA,SAAA,CAAA,yBAAA,GAAzB,UAA0B,OAAwB,EAAA;YACxD,IAAI,CAAC,YAAY,CAAC,WAAW,CAEzB,MAAA,CAAA,MAAA,CAAA,EAAA,IAAI,EAAE,mBAAmB,EACtB,EAAA,OAAO,CAEZ,EAAA,GAAG,CACJ,CAAC;SACH,CAAA;IAEO,IAAA,cAAA,CAAA,SAAA,CAAA,kBAAkB,GAAlB,UACN,KAAmB,EACnB,aAAsE,EACtE,aAAsC,EAAA;IAEtC,QAAA,IAAI,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE;IAC/B,YAAA,QAAQ,KAAK,CAAC,IAAI,CAAC,IAAI;IACrB,gBAAA,KAAK,0BAA0B;IAC7B,oBAAA,IAAI,IAAI,CAAC,2BAA2B,CAAC,KAAK,CAAC,EAAE;IAC3C,wBAAA,aAAa,CAAC,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IAC7D,qBAAA;wBACD,MAAM;IACR,gBAAA,KAAK,0BAA0B;IAC7B,oBAAA,IAAI,IAAI,CAAC,4BAA4B,CAAC,KAAK,CAAC,EAAE;IAC5C,wBAAA,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACjC,qBAAA;wBACD,MAAM;IACT,aAAA;IACF,SAAA;SACF,CAAA;QAEO,cAAe,CAAA,SAAA,CAAA,eAAA,GAAf,UAAgB,KAAmB,EAAA;IACzC,QAAA,QACE,IAAI,CAAC,YAAY,KAAK,KAAK,CAAC,MAAM;gBAClC,KAAK,CAAC,IAAI,KAAK,SAAS;IACxB,YAAA,KAAK,CAAC,IAAI;IACV,YAAA,KAAK,CAAC,IAAI,CAAC,IAAI,EACf;SACH,CAAA;QAEO,cAA2B,CAAA,SAAA,CAAA,2BAAA,GAA3B,UAA4B,KAAmB,EAAA;IACrD,QAAA,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,0BAA0B,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC;SACzE,CAAA;QAEO,cAA4B,CAAA,SAAA,CAAA,4BAAA,GAA5B,UAA6B,KAAmB,EAAA;IACtD,QAAA,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,0BAA0B,IAAI,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,QAAQ,CAAC;SAC/F,CAAA;;;yJAnGU,cAAc,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAW,SAAA,EAAA,CAAA,EAAA,MAAA,EAAAvB,aAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;6JAAd,cAAc,EAAA,CAAA,CAAA;sHAAd,cAAc,EAAA,UAAA,EAAA,CAAA;sBAD1BK,aAAU;;;ACJC4G,8BAIX;IAJD,CAAA,UAAY,QAAQ,EAAA;IAClB,IAAA,QAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;IACT,IAAA,QAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;IACT,IAAA,QAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;IACX,CAAC,EAJWA,gBAAQ,KAARA,gBAAQ,GAInB,EAAA,CAAA,CAAA,CAAA;AAQD,QAAA,aAAA,kBAAA,YAAA;IANA,IAAA,SAAA,aAAA,GAAA;IAiBE,QAAA,IAAA,CAAA,IAAI,GAA6BA,gBAAQ,CAAC,EAAE,CAAC;SAW9C;;QARC,aAAW,CAAA,SAAA,CAAA,WAAA,GAAX,UAAY,KAAiB,EAAA;IAC3B,QAAA,IACE,KAAK,CAAC,aAAa,YAAY,WAAW;IAC1C,YAAA,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAC7C;gBACA,KAAK,CAAC,cAAc,EAAE,CAAC;IACxB,SAAA;SACF,CAAA;;;wJArBU,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAAjH,aAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;IAAb,mBAAA,aAAA,CAAA,IAAA,GAAAA,aAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,aAAa,4QCd1B,ueAgBA,EAAA,MAAA,EAAA,CAAA,0qIAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAmB,aAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,YAAA,EAAA,UAAA,EAAA,UAAA,EAAA,MAAA,EAAA,OAAA,EAAA,MAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,aAAA,CAAA,UAAA,EAAA,QAAA,EAAA,aAAA,EAAA,EAAA,EAAA,IAAA,EAAA+F,aAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,MAAA,EAAA,YAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAC,aAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAAnH,aAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;sHDFa,aAAa,EAAA,UAAA,EAAA,CAAA;sBANzBS,YAAS;IAAC,YAAA,IAAA,EAAA,CAAA;IACT,oBAAA,QAAQ,EAAE,YAAY;IACtB,oBAAA,WAAW,EAAE,uBAAuB;wBACpC,SAAS,EAAE,CAAC,uBAAuB,CAAC;wBACpC,eAAe,EAAEC,0BAAuB,CAAC,MAAM;qBAChD,CAAA;kCAEU,QAAQ,EAAA,CAAA;0BAAhBE,QAAK;oBAGN,QAAQ,EAAA,CAAA;0BAFPD,cAAW;2BAAC,gBAAgB,CAAA;;0BAC5BC,QAAK;oBAGN,UAAU,EAAA,CAAA;0BADTA,QAAK;oBAGN,WAAW,EAAA,CAAA;0BADVA,QAAK;oBAIN,IAAI,EAAA,CAAA;0BAFHD,cAAW;2BAAC,OAAO,CAAA;;0BACnBC,QAAK;;;AEnBR,QAAA,yBAAA,kBAAA,YAAA;IAAA,IAAA,SAAA,yBAAA,GAAA;;;;oKAAa,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAAZ,aAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;6IAAzB,yBAAyB,EAAA,QAAA,EAAA,yBAAA,EAAA,QAAA,EAAAA,aAAA,EAAA,CAAA,CAAA;sHAAzB,yBAAyB,EAAA,UAAA,EAAA,CAAA;sBAHrCC,YAAS;IAAC,YAAA,IAAA,EAAA,CAAA;IACT,oBAAA,QAAQ,EAAE,yBAAyB;qBACpC,CAAA;;AAMD,QAAA,mBAAA,kBAAA,YAAA;IAAA,IAAA,SAAA,mBAAA,GAAA;;;;8JAAa,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAAD,aAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;uIAAnB,mBAAmB,EAAA,QAAA,EAAA,8CAAA,EAAA,QAAA,EAAAA,aAAA,EAAA,CAAA,CAAA;sHAAnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;sBAH/BC,YAAS;IAAC,YAAA,IAAA,EAAA,CAAA;IACT,oBAAA,QAAQ,EAAE,8CAA8C;qBACzD,CAAA;;AAMD,QAAA,0BAAA,kBAAA,YAAA;IAAA,IAAA,SAAA,0BAAA,GAAA;;;;qKAAa,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAAD,aAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;8IAA1B,0BAA0B,EAAA,QAAA,EAAA,4DAAA,EAAA,QAAA,EAAAA,aAAA,EAAA,CAAA,CAAA;sHAA1B,0BAA0B,EAAA,UAAA,EAAA,CAAA;sBAHtCC,YAAS;IAAC,YAAA,IAAA,EAAA,CAAA;IACT,oBAAA,QAAQ,EAAE,4DAA4D;qBACvE,CAAA;;AAMD,QAAA,mBAAA,kBAAA,YAAA;IAAA,IAAA,SAAA,mBAAA,GAAA;;;;8JAAa,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAAD,aAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;uIAAnB,mBAAmB,EAAA,QAAA,EAAA,8CAAA,EAAA,QAAA,EAAAA,aAAA,EAAA,CAAA,CAAA;sHAAnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;sBAH/BC,YAAS;IAAC,YAAA,IAAA,EAAA,CAAA;IACT,oBAAA,QAAQ,EAAE,8CAA8C;qBACzD,CAAA;;;ACJWmH,yCAGX;IAHD,CAAA,UAAY,mBAAmB,EAAA;IAC7B,IAAA,mBAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;IACf,IAAA,mBAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;IACf,CAAC,EAHWA,2BAAmB,KAAnBA,2BAAmB,GAG9B,EAAA,CAAA,CAAA,CAAA;AAOD,QAAA,gBAAA,kBAAA,YAAA;QA+CE,SAAoB,gBAAA,CAAA,UAAmC,EAAU,QAAmB,EAAA;IAAhE,QAAA,IAAU,CAAA,UAAA,GAAV,UAAU,CAAyB;IAAU,QAAA,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAW;;YA7CnE,IAAA,CAAA,iCAAiC,GAAG;IACnD,YAAA,OAAO,EAAE,KAAK;aACS,CAAC;IAET,QAAA,IAAoB,CAAA,oBAAA,GAAG,EAAE,CAAC;IAEnC,QAAA,IAAS,CAAA,SAAA,GAAY,KAAK,CAAC;IASnC,QAAA,IAAA,CAAA,MAAM,GAAmDA,2BAAmB,CAAC,KAAK,CAAC;IAMnF,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAIhE,eAAY,EAAQ,CAAC;YAyBlC,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC,aAAa,CAAC,aAAa,CAAC;SACxD;IAxBD,IAAA,MAAA,CAAA,cAAA,CAAY,gBAAa,CAAA,SAAA,EAAA,eAAA,EAAA;IAAzB,QAAA,GAAA,EAAA,YAAA;IACE,YAAA,IAAI,IAAI,CAAC,MAAM,YAAY1B,aAAU,EAAE;IACrC,gBAAA,OAAO,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC;IAClC,aAAA;IAAM,iBAAA;oBACL,OAAO,IAAI,CAAC,MAAM,CAAC;IACpB,aAAA;aACF;;;IAAA,KAAA,CAAA,CAAA;IAGD,IAAA,gBAAA,CAAA,SAAA,CAAA,cAAc,GAAd,YAAA;IACE,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YACrB,IAAI,CAAC,IAAI,EAAE,CAAC;SACb,CAAA;IAGD,IAAA,gBAAA,CAAA,SAAA,CAAA,eAAe,GAAf,YAAA;YACE,IAAI,IAAI,CAAC,SAAS,EAAE;IAClB,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;gBACrB,IAAI,CAAC,IAAI,EAAE,CAAC;IACb,SAAA;SACF,CAAA;IAMD,IAAA,gBAAA,CAAA,SAAA,CAAA,eAAe,GAAf,YAAA;YACE,IAAI,CAAC,6BAA6B,EAAE,CAAC;IACrC,QAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CACvB,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,aAAa,EAC3C,IAAI,CAAC,UAAU,CAAC,aAAa,CAC9B,CAAC;SACH,CAAA;IAED,IAAA,gBAAA,CAAA,SAAA,CAAA,WAAW,GAAX,YAAA;YACE,IAAI,CAAC,IAAI,EAAE,CAAC;SACb,CAAA;IAEO,IAAA,gBAAA,CAAA,SAAA,CAAA,6BAA6B,GAA7B,YAAA;IACN,QAAA,IAAM,eAAe,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAC3E,QAAA,IAAI,eAAe,EAAE;IACnB,YAAA,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACzD,YAAA,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,CAAC,MAAM,GAAG,EAAA,GAAG,IAAI,CAAC,MAAQ,CAAC;IAC/D,SAAA;IAAM,aAAA;IACL,YAAA,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC3B,sBAAiB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;IAC7D,SAAA;SACF,CAAA;;QAGO,gBAAY,CAAA,SAAA,CAAA,YAAA,GAAZ,UAAa,KAAiB,EAAA;YACpC,KAAK,CAAC,cAAc,EAAE,CAAC;SACxB,CAAA;IAEO,IAAA,gBAAA,CAAA,SAAA,CAAA,aAAa,GAAb,YAAA;IACN,QAAA,IAAI,CAAC,mBAAmB,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC;YACxF,IAAI,IAAI,CAAC,mBAAmB,EAAE;IAC5B,YAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,oBAAoB,CAAC,CAAC;IAClE,SAAA;;IAGD,QAAA,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAC5B,WAAW,EACX,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,iCAAiC,CACvC,CAAC;SACH,CAAA;IAEO,IAAA,gBAAA,CAAA,SAAA,CAAA,aAAa,GAAb,YAAA;YACN,IAAI,IAAI,CAAC,mBAAmB,EAAE;IAC5B,YAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,oBAAoB,CAAC,CAAC;IACrE,SAAA;IAED,QAAA,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAC/B,WAAW,EACX,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,iCAAiC,CACvC,CAAC;SACH,CAAA;IAED,IAAA,gBAAA,CAAA,SAAA,CAAA,IAAI,GAAJ,YAAA;IACE,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;IACpE,QAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;YAE7E,IAAI,CAAC,aAAa,EAAE,CAAC;YACrB,IAAI,CAAC,eAAe,EAAE,CAAC;IAEvB,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;IACjE,QAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;IAEvE,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;SACvB,CAAA;IAED,IAAA,gBAAA,CAAA,SAAA,CAAA,IAAI,GAAJ,YAAA;IACE,QAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;YAC7E,IAAI,CAAC,aAAa,EAAE,CAAC;YAErB,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;YACzD,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,aAAa,EAAE,gBAAgB,CAAC,CAAC;IAChE,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;SACxB,CAAA;IAEO,IAAA,gBAAA,CAAA,SAAA,CAAA,eAAe,GAAf,YAAA;YACN,IAAM,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC,qBAAqB,EAAE,CAAC;IAEpE,QAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;IAE7E,QAAA,IAAM,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC;IACzD,QAAA,IAAM,iBAAiB,GAAG,cAAc,CAAC,qBAAqB,EAAE,CAAC;IACjE,QAAA,IAAM,QAAQ,GAAG,cAAc,CAAC,aAAa,CAAC,WAAW,CAAC;YAC1D,IAAI,CAAC,oBAAoB,CAAC,QAAQ,EAAE,cAAc,EAAE,gBAAgB,EAAE,iBAAiB,CAAC,CAAC;YACzF,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,cAAc,EAAE,gBAAgB,EAAE,iBAAiB,CAAC,CAAC;SACxF,CAAA;QAEO,gBAAoB,CAAA,SAAA,CAAA,oBAAA,GAApB,UACN,QAAgB,EAChB,cAA8B,EAC9B,gBAAyB,EACzB,iBAA0B,EAAA;IAE1B,QAAA,IAAM,aAAa,GAAG,QAAQ,CAAC,UAAU,CAAC;IAC1C,QAAA,IAAM,YAAY,GAAG,iBAAiB,CAAC,KAAK,CAAC;IAC7C,QAAA,IAAM,mBAAmB,GAAG,aAAa,GAAG,gBAAgB,CAAC,IAAI,CAAC;IAClE,QAAA,IAAM,kBAAkB,GAAG,gBAAgB,CAAC,KAAK,CAAC;YAClD,IAAM,0BAA0B,GAC9B,mBAAmB,IAAI,YAAY,GAAG,IAAI,CAAC,oBAAoB,CAAC;IAClE,QAAA,IAAM,SAAS,GAAG,0BAA0B,IAAI,mBAAmB,IAAI,kBAAkB,CAAC;YAEpF,IAAA,EAAA,GAAA,MACJ,CAAA,IAAI,CAAC,MAAM,KAAKqH,2BAAmB,CAAC,IAAI,IAAI,CAAC,SAAS;IACpD,cAAE,CAAC,MAAM,EAAE,OAAO,CAAC;IACnB,cAAE,CAAC,OAAO,EAAE,MAAM,CAAC,EAAA,CAAA,CAAA,EAHhB,SAAS,GAAA,EAAA,CAAA,CAAA,CAAA,EAAE,iBAAiB,QAGZ,CAAC;IAExB,QAAA,IAAM,OAAO,GACX,SAAS,KAAK,MAAM,GAAG,aAAa,GAAG,gBAAgB,CAAC,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC;YAExF,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC;IACrD,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,cAAc,EAAE,iBAAiB,EAAK,OAAO,GAAI,IAAA,CAAC,CAAC;SAC3E,CAAA;QAEO,gBAAkB,CAAA,SAAA,CAAA,kBAAA,GAAlB,UACN,QAAgB,EAChB,cAA8B,EAC9B,gBAAyB,EACzB,iBAA0B,EAAA;IAE1B,QAAA,IAAM,cAAc,GAAG,QAAQ,CAAC,WAAW,CAAC;IAC5C,QAAA,IAAM,aAAa,GAAG,iBAAiB,CAAC,MAAM,CAAC;IAC/C,QAAA,IAAM,kBAAkB,GAAG,cAAc,GAAG,gBAAgB,CAAC,MAAM,CAAC;IACpE,QAAA,IAAM,gBAAgB,GAAG,gBAAgB,CAAC,GAAG,CAAC;YAC9C,IAAM,wBAAwB,GAC5B,kBAAkB,IAAI,aAAa,GAAG,IAAI,CAAC,oBAAoB,CAAC;IAElE,QAAA,IAAM,qBAAqB,GACzB,wBAAwB,IAAI,kBAAkB,IAAI,gBAAgB,CAAC;YAC/D,IAAA,EAAA,GAAA,OAAiC,qBAAqB;IAC1D,cAAE,CAAC,QAAQ,EAAE,KAAK,CAAC;IACnB,cAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,EAAA,CAAA,CAAA,EAFd,SAAS,GAAA,EAAA,CAAA,CAAA,CAAA,EAAE,iBAAiB,QAEd,CAAC;IAEtB,QAAA,IAAM,OAAO,GACX,SAAS,KAAK,QAAQ,GAAG,gBAAgB,CAAC,MAAM,GAAG,cAAc,GAAG,gBAAgB,CAAC,GAAG,CAAC;YAE3F,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC;IACrD,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,cAAc,EAAE,iBAAiB,EAAK,OAAO,GAAI,IAAA,CAAC,CAAC;YAE1E,IAAI,SAAS,KAAK,KAAK,EAAE;;IAEvB,YAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,EAAE,SAAS,EAAE,EAAA,IAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAE,CAAC,CAAC;IAC5E,YAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,EAAE,gBAAgB,EAAE,MAAM,CAAC,CAAC;IACtE,SAAA;SACF,CAAA;;;2JAlMU,gBAAgB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAApH,aAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,aAAA,CAAA,SAAA,EAAA,CAAA,EAAA,MAAA,EAAAA,aAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;oIAAhB,gBAAgB,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,kBAAA,EAAA,eAAA,EAAA,mBAAA,EAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,SAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAaiB0B,aAAU,EAAA,MAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA1B,aAAA,EAAA,QAAA,EAhB5C,mEAAiE,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,0NAAA,CAAA,EAAA,CAAA,CAAA;sHAGhE,gBAAgB,EAAA,UAAA,EAAA,CAAA;sBAL5BS,YAAS;IAAC,YAAA,IAAA,EAAA,CAAA;IACT,oBAAA,QAAQ,EAAE,eAAe;IACzB,oBAAA,QAAQ,EAAE,mEAAiE;wBAC3E,SAAS,EAAE,CAAC,0BAA0B,CAAC;qBACxC,CAAA;mJAeC,cAAc,EAAA,CAAA;0BADbuC,YAAS;2BAAC,SAAS,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAEtB,aAAU,EAAE,CAAA;oBAIxD,MAAM,EAAA,CAAA;0BADLd,QAAK;oBAIN,MAAM,EAAA,CAAA;0BADLA,QAAK;oBAIN,QAAQ,EAAA,CAAA;0BADP4C,SAAM;oBAYP,cAAc,EAAA,CAAA;0BADbhC,eAAY;2BAAC,OAAO,CAAA;oBAOrB,eAAe,EAAA,CAAA;0BADdA,eAAY;2BAAC,eAAe,CAAA;;;IChE/B,IAAY,SAIX,CAAA;IAJD,CAAA,UAAY,SAAS,EAAA;QACnB,SAAA,CAAA,SAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAM,CAAA;QACN,SAAA,CAAA,SAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAO,CAAA;QACP,SAAA,CAAA,SAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAI,CAAA;IACN,CAAC,EAJW,SAAS,KAAT,SAAS,GAIpB,EAAA,CAAA,CAAA,CAAA;IAED,IAAY,iBAGX,CAAA;IAHD,CAAA,UAAY,iBAAiB,EAAA;QAC3B,iBAAA,CAAA,iBAAA,CAAA,IAAA,CAAA,GAAA,CAAA,CAAA,GAAA,IAAE,CAAA;QACF,iBAAA,CAAA,iBAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAI,CAAA;IACN,CAAC,EAHW,iBAAiB,KAAjB,iBAAiB,GAG5B,EAAA,CAAA,CAAA;;ICJD,IAAA,sBAAA,kBAAA,YAAA;IAAA,IAAA,SAAA,sBAAA,GAAA;;IACE,IAAA,sBAAA,CAAA,SAAA,CAAA,MAAM,GAAN,UAAO,KAAoB,EAAE,KAAuB,EAAE,aAAqB,EAAA;IACzE,QAAA,IAAI,QAAQ,GAAG,CAAC,CAAC,CAAC;YAClB,QAAQ,KAAK,CAAC,GAAG;IACf,YAAA,KAAK,SAAS,CAAC;IACf,YAAA,KAAK,WAAW;;IAEd,gBAAA,QAAQ,GAAG,aAAa,GAAG,CAAC,CAAC;oBAC7B,MAAM;IACR,YAAA,KAAK,WAAW,CAAC;IACjB,YAAA,KAAK,YAAY;oBACf,IAAI,aAAa,KAAK,SAAS,EAAE;;wBAE/B,QAAQ,GAAG,CAAC,CAAC;IACd,iBAAA;IAAM,qBAAA,IAAI,aAAa,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;;IAE3C,oBAAA,QAAQ,GAAG,aAAa,GAAG,CAAC,CAAC;IAC9B,iBAAA;oBACD,MAAM;IACR,YAAA,KAAK,MAAM;;oBAET,QAAQ,GAAG,CAAC,CAAC;oBACb,MAAM;IACR,YAAA,KAAK,KAAK;;IAER,gBAAA,QAAQ,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;oBAC5B,MAAM;IACR,YAAA;oBACE,MAAM;IACT,SAAA;IACD,QAAA,OAAO,QAAQ,CAAC;SACjB,CAAA;;;iKA/BU,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAAxB,aAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;IAAtB,mBAAA,sBAAA,CAAA,KAAA,GAAAA,aAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAAA,aAAA,EAAA,IAAA,EAAA,sBAAsB,cAFrB,MAAM,EAAA,CAAA,CAAA;sHAEP,sBAAsB,EAAA,UAAA,EAAA,CAAA;sBAHlCK,aAAU;IAAC,YAAA,IAAA,EAAA,CAAA;IACV,oBAAA,UAAU,EAAE,MAAM;qBACnB,CAAA;;;ACyCD,QAAA,iBAAA,kBAAA,YAAA;IAmJE,IAAA,SAAA,iBAAA,CACU,QAAmB,EACnB,UAAmC,EACnC,iBAAoC,EACpC,sBAA8C,EAAA;IAH9C,QAAA,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAW;IACnB,QAAA,IAAU,CAAA,UAAA,GAAV,UAAU,CAAyB;IACnC,QAAA,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAmB;IACpC,QAAA,IAAsB,CAAA,sBAAA,GAAtB,sBAAsB,CAAwB;IAnJhD,QAAA,IAAA,CAAA,KAAK,GAAG,SAAS,CAAC,MAAM,CAAC;IACzB,QAAA,IAAyB,CAAA,yBAAA,GAAG,KAAK,CAAC;IAClC,QAAA,IAAA,CAAA,mBAAmB,GACzB+G,2BAAmB,CAAC,KAAK,CAAC;IACpB,QAAA,IAAA,CAAA,iBAAiB,GAA+C,iBAAiB,CAAC,IAAI,CAAC;IAEvF,QAAA,IAAM,CAAA,MAAA,GAAqB,EAAE,CAAC;IAU9B,QAAA,IAAc,CAAA,cAAA,GAAW,CAAC,CAAC,CAAC;IAapC,QAAA,IAAgB,CAAA,gBAAA,GAAG,MAAM,CAAC;IAG1B,QAAA,IAAW,CAAA,WAAA,GAAG,gBAAgB,CAAC;IAW/B,QAAA,IAAc,CAAA,cAAA,GAA0B,GAAG,CAAC;IACnC,QAAA,IAAkB,CAAA,kBAAA,GAAG,GAAG,CAAC;IAMlC,QAAA,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;IAYjB,QAAA,IAAI,CAAA,IAAA,GAAgB,IAAI,CAAC;IAGzB,QAAA,IAAQ,CAAA,QAAA,GAAG,CAAC,CAAC;IAIb,QAAA,IAAU,CAAA,UAAA,GAAG,KAAK,CAAC;IAanB;;IAEG;IACO,QAAA,IAAA,CAAA,MAAM,GAA+B,IAAIhE,eAAY,EAAgB,CAAC;IAExE,QAAA,IAAM,CAAA,MAAA,GAAiB,IAAI,CAAC;IAepC,QAAA,IAAK,CAAA,KAAA,GAAG,SAAS,CAAC;IAqCV,QAAA,IAAiB,CAAA,iBAAA,GAAmB,EAAE,CAAC;IAuKvC,QAAA,IAAA,CAAA,SAAS,GAAyB,YAAA,GAAQ,CAAC;IAC3C,QAAA,IAAA,CAAA,UAAU,GAAG,YAAA,GAAQ,CAAC;SA/J1B;IA7IJ,IAAA,MAAA,CAAA,cAAA,CAAI,iBAAK,CAAA,SAAA,EAAA,OAAA,EAAA;IAAT,QAAA,GAAA,EAAA,YAAA;gBACE,OAAO,IAAI,CAAC,MAAM,CAAC;aACpB;IAED,QAAA,GAAA,EAAA,UAAmB,KAAuB,EAAA;IACxC,YAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACpB,YAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,IAAI,CAAC;aACtD;;;IALA,KAAA,CAAA,CAAA;IAQD,IAAA,MAAA,CAAA,cAAA,CAAI,iBAAa,CAAA,SAAA,EAAA,eAAA,EAAA;IAAjB,QAAA,GAAA,EAAA,YAAA;gBACE,OAAO,IAAI,CAAC,cAAc,CAAC;aAC5B;IAED,QAAA,GAAA,EAAA,UAA2B,KAAa,EAAA;IACtC,YAAA,IAAI,IAAI,CAAC,cAAc,IAAI,KAAK,EAAE;IAChC,gBAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;IAC5B,gBAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,IAAI,CAAC;IACtD,aAAA;aACF;;;IAPA,KAAA,CAAA,CAAA;IAeD,IAAA,MAAA,CAAA,cAAA,CAAa,iBAAM,CAAA,SAAA,EAAA,QAAA,EAAA;IAInB,QAAA,GAAA,EAAA,YAAA;gBACE,OAAO,IAAI,CAAC,mBAAmB,CAAC;aACjC;IAND,QAAA,GAAA,EAAA,UAAoB,SAAyD,EAAA;gBAC3E,IAAI,CAAC,mBAAmB,GAAG,SAAS,IAAIgE,2BAAmB,CAAC,KAAK,CAAC;aACnE;;;IAAA,KAAA,CAAA,CAAA;IAgBD,IAAA,MAAA,CAAA,cAAA,CACI,iBAAW,CAAA,SAAA,EAAA,aAAA,EAAA;IADf,QAAA,GAAA,EAAA,YAAA;gBAEE,OAAO,IAAI,CAAC,QAAQ,GAAG,UAAU,GAAG,IAAI,CAAC;aAC1C;;;IAAA,KAAA,CAAA,CAAA;IAgBD,IAAA,MAAA,CAAA,cAAA,CACI,iBAAS,CAAA,SAAA,EAAA,WAAA,EAAA;IADb,QAAA,GAAA,EAAA,YAAA;IAEE,YAAA,OAAO,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC;aAC3C;;;IAAA,KAAA,CAAA,CAAA;IAGD,IAAA,MAAA,CAAA,cAAA,CACI,iBAAe,CAAA,SAAA,EAAA,iBAAA,EAAA;;IADnB,QAAA,GAAA,EAAA,YAAA;IAEE,YAAA,OAAO,IAAI,CAAC;aACb;;;IAAA,KAAA,CAAA,CAAA;IAQD,IAAA,MAAA,CAAA,cAAA,CAAI,iBAAK,CAAA,SAAA,EAAA,OAAA,EAAA;IAAT,QAAA,GAAA,EAAA,YAAA;gBACE,OAAO,IAAI,CAAC,MAAM,CAAC;aACpB;;;IAAA,KAAA,CAAA,CAAA;IAED,IAAA,MAAA,CAAA,cAAA,CAAI,iBAAY,CAAA,SAAA,EAAA,cAAA,EAAA;IAAhB,QAAA,GAAA,EAAA,YAAA;gBACE,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aACzC;;;IAAA,KAAA,CAAA,CAAA;IAED,IAAA,MAAA,CAAA,cAAA,CACI,iBAAa,CAAA,SAAA,EAAA,eAAA,EAAA;IADjB,QAAA,GAAA,EAAA,YAAA;IAEE,YAAA,OAAO,IAAI,CAAC,MAAM,KAAK,OAAO,CAAC;aAChC;;;IAAA,KAAA,CAAA,CAAA;IAKD,IAAA,MAAA,CAAA,cAAA,CACI,iBAAU,CAAA,SAAA,EAAA,YAAA,EAAA;IADd,QAAA,GAAA,EAAA,YAAA;IAEE,YAAA,OAAO,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,OAAO,CAAC;aACzC;;;IAAA,KAAA,CAAA,CAAA;IAED,IAAA,MAAA,CAAA,cAAA,CACI,iBAAM,CAAA,SAAA,EAAA,QAAA,EAAA;IADV,QAAA,GAAA,EAAA,YAAA;IAEE,YAAA,OAAO,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,IAAI,CAAC;aACtC;;;IAAA,KAAA,CAAA,CAAA;IAED,IAAA,MAAA,CAAA,cAAA,CACI,iBAAW,CAAA,SAAA,EAAA,aAAA,EAAA;IADf,QAAA,GAAA,EAAA,YAAA;IAEE,YAAA,OAAO,IAAI,CAAC,mBAAmB,KAAKA,2BAAmB,CAAC,IAAI,CAAC;aAC9D;;;IAAA,KAAA,CAAA,CAAA;IAED,IAAA,MAAA,CAAA,cAAA,CACI,iBAAS,CAAA,SAAA,EAAA,WAAA,EAAA;IADb,QAAA,GAAA,EAAA,YAAA;IAEE,YAAA,OAAO,IAAI,CAAC,iBAAiB,KAAK,iBAAiB,CAAC,EAAE,CAAC;aACxD;;;IAAA,KAAA,CAAA,CAAA;QA4BD,iBAAQ,CAAA,SAAA,CAAA,QAAA,GAAR,UAAS,KAAiB,EAAA;YACxB,KAAK,CAAC,eAAe,EAAE,CAAC;IACxB,QAAA,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;IAChB,YAAA,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;IACvC,SAAA;YACD,IAAI,CAAC,MAAM,EAAE,CAAC;SACf,CAAA;IAED,IAAA,iBAAA,CAAA,SAAA,CAAA,MAAM,GAAN,YAAA;YACE,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACjB,OAAO;IACR,SAAA;IACD,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;SAC1C,CAAA;QAED,iBAAkB,CAAA,SAAA,CAAA,kBAAA,GAAlB,UAAmB,KAAY,EAAA;;YAE7B,KAAK,CAAC,cAAc,EAAE,CAAC;SACxB,CAAA;IAED,IAAA,iBAAA,CAAA,SAAA,CAAA,qBAAqB,GAArB,YAAA;YAAA,IAWC,KAAA,GAAA,IAAA,CAAA;YAVC,IAAI,CAAC,IAAI,CAAC,yBAAyB,IAAI,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE;gBACpE,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,UAAC,SAAS,EAAE,KAAK,EAAA;IAC9C,gBAAA,KAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,SAAS,CAAC,aAAa,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;IACtE,gBAAA,IAAM,QAAQ,GAAG,KAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,aAAa,EAAE,OAAO,EAAE,YAAA;IACtE,oBAAA,KAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IAC3B,iBAAC,CAAC,CAAC;IACH,gBAAA,KAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACxC,aAAC,CAAC,CAAC;IACH,YAAA,IAAI,CAAC,yBAAyB,GAAG,IAAI,CAAC;IACvC,SAAA;SACF,CAAA;IAED;IACoB;IACZ,IAAA,iBAAA,CAAA,SAAA,CAAA,mBAAmB,GAAnB,UAAoB,KAAa,EAAE,KAAa,EAAA;YACtD,IAAI,CAAC,IAAI,CAAC,UAAU;gBAAE,OAAO;IAE7B,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CACpB,IAAI,CAAC,WAAW,CAAC,aAAa,EAC9B,KAAK,EACL,KAAK,EACLnF,sBAAmB,CAAC,QAAQ,CAC7B,CAAC;SACH,CAAA;IAED,IAAA,iBAAA,CAAA,SAAA,CAAA,eAAe,GAAf,YAAA;YACE,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,MAAM,KAAK,OAAO,EAAE;gBACtC,IAAA,KAAK,GAAK,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,qBAAqB,EAAE,CAAA,KAA1D,CAA2D;gBACxE,IAAI,CAAC,mBAAmB,CAAC,oBAAoB,EAAK,KAAK,GAAA,IAAI,CAAC,CAAC;IAC7D,YAAA,IAAI,CAAC,mBAAmB,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IACjD,YAAA,IAAI,CAAC,mBAAmB,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IAClD,SAAA;YACD,IAAI,CAAC,mBAAmB,EAAE,CAAC;SAC5B,CAAA;IAEO,IAAA,iBAAA,CAAA,SAAA,CAAA,mBAAmB,GAAnB,YAAA;YAAA,IA0BP,KAAA,GAAA,IAAA,CAAA;YAzBC,IAAI,IAAI,CAAC,UAAU;gBAAE,OAAO;IAC5B,QAAA,IAAI,CAAC,IAAI,CAAC,uBAAuB,EAAE;IACjC,YAAA,IAAM,OAAO,GAAG;IACd,gBAAA,UAAU,EAAE,KAAK;iBAClB,CAAC;gBACF,IAAM,QAAQ,GAAiC,UAAC,OAAO,EAAA;;IAErD,gBAAA,IAAI,KAAI,CAAC,KAAK,KAAK,SAAS,CAAC,OAAO,EAAE;wBACpC,OAAO;IACR,iBAAA;;IAGD,gBAAA,YAAY,CAAC,KAAI,CAAC,qBAAqB,CAAC,CAAC;IACzC,gBAAA,IAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;oBACzB,IAAM,SAAS,GAAG,KAAK,CAAC,kBAAkB,CAAC,KAAK,GAAG,CAAC,CAAC;IACrD,gBAAA,IAAI,SAAS,IAAI,KAAK,CAAC,iBAAiB,GAAG,CAAC,EAAE;IAC5C,oBAAA,KAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC;IACnC,oBAAA,KAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;IAClC,iBAAA;oBACD,KAAI,CAAC,YAAY,EAAE,CAAC;IACpB,gBAAA,KAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC;IACzC,aAAC,CAAC;gBACF,IAAI,CAAC,uBAAuB,GAAG,IAAI,oBAAoB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;gBAC3E,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;IACtE,SAAA;SACF,CAAA;QAEO,iBAAsB,CAAA,SAAA,CAAA,sBAAA,GAAtB,UAAuB,KAAgC,EAAA;;;IAG7D,QAAA,IAAI,IAAI,CAAC,mBAAmB,KAAKmF,2BAAmB,CAAC,KAAK,EAAE;gBAC1D,IAAI,KAAK,CAAC,kBAAkB,CAAC,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC,KAAK,EAAE;IAC3D,gBAAA,IAAI,CAAC,mBAAmB,GAAGA,2BAAmB,CAAC,IAAI,CAAC;IACrD,aAAA;IACF,SAAA;IAAM,aAAA;gBACL,IAAI,KAAK,CAAC,kBAAkB,CAAC,IAAI,GAAG,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE;IACzD,gBAAA,IAAI,CAAC,mBAAmB,GAAGA,2BAAmB,CAAC,KAAK,CAAC;IACtD,aAAA;IACF,SAAA;SACF,CAAA;QAEO,iBAAoB,CAAA,SAAA,CAAA,oBAAA,GAApB,UAAqB,KAAgC,EAAA;IAC3D,QAAA,IAAI,KAAK,CAAC,kBAAkB,CAAC,GAAG,GAAG,CAAC,EAAE;;;IAGpC,YAAA,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC,IAAI,CAAC;IACjD,SAAA;YACD,IAAI,KAAK,CAAC,kBAAkB,CAAC,MAAM,GAAG,KAAK,CAAC,UAAU,CAAC,MAAM,EAAE;;IAE7D,YAAA,IAAM,kBAAkB,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,qBAAqB,EAAE,CAAC,GAAG,CAAC;IACrF,YAAA,IAAM,OAAO,GAAG,CAAC,CAAC;;gBAElB,IAAI,kBAAkB,GAAG,KAAK,CAAC,MAAM,CAAC,YAAY,GAAG,OAAO,EAAE;;IAE5D,gBAAA,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC,EAAE,CAAC;IAC/C,aAAA;IACF,SAAA;SACF,CAAA;IAED,IAAA,iBAAA,CAAA,SAAA,CAAA,IAAI,GAAJ,YAAA;YAAA,IAYC,KAAA,GAAA,IAAA,CAAA;YAXC,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACjB,OAAO;IACR,SAAA;IACD,QAAA,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;IAChB,YAAA,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC,OAAO,CAAC;;IAE/B,YAAA,IAAI,CAAC,qBAAqB,GAAG,UAAU,CACrC,YAAA,EAAM,OAAA,KAAI,CAAC,YAAY,EAAE,GAAA,EACzB,iBAAiB,CAAC,gBAAgB,CACnC,CAAC;IACH,SAAA;SACF,CAAA;IAEO,IAAA,iBAAA,CAAA,SAAA,CAAA,YAAY,GAAZ,YAAA;;IACN,QAAA,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,OAAO,EAAE;IACpC,YAAA,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC;gBAC5B,CAAA,EAAA,GAAA,IAAI,CAAC,OAAO,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAI,EAAE,CAAC;IACrB,YAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC5C,YAAA,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE,CAAC;IACvC,SAAA;SACF,CAAA;IAED,IAAA,iBAAA,CAAA,SAAA,CAAA,KAAK,GAAL,YAAA;;YACE,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACjB,OAAO;IACR,SAAA;YACD,IAAI,IAAI,CAAC,MAAM,EAAE;IACf,YAAA,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC,MAAM,CAAC;;IAE9B,YAAA,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC,IAAI,CAAC;gBAChD,CAAA,EAAA,GAAA,IAAI,CAAC,OAAO,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAI,EAAE,CAAC;IACtB,SAAA;SACF,CAAA;QAED,iBAAY,CAAA,SAAA,CAAA,YAAA,GAAZ,UAAa,KAAa,EAAA;IACxB,QAAA,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YACvB,IAAI,CAAC,KAAK,EAAE,CAAC;SACd,CAAA;IAKD;;;;;IAKG;QACH,iBAAU,CAAA,SAAA,CAAA,UAAA,GAAV,UAAW,KAAU,EAAA;IACnB,QAAA,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;SAChC,CAAA;IAED;;;;;;IAMG;QACH,iBAAgB,CAAA,SAAA,CAAA,gBAAA,GAAhB,UAAiB,EAAO,EAAA;IACtB,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;SACrB,CAAA;IAED;;;;;;IAMG;QACH,iBAAiB,CAAA,SAAA,CAAA,iBAAA,GAAjB,UAAkB,EAAO,EAAA;IACvB,QAAA,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;SACtB,CAAA;IAED;;;;;IAKG;QACH,iBAAgB,CAAA,SAAA,CAAA,gBAAA,GAAhB,UAAkB,UAAmB,EAAA;IACnC,QAAA,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC;SAC5B,CAAA;QAEO,iBAAU,CAAA,SAAA,CAAA,UAAA,GAAV,UAAW,KAAa,EAAA;IAC9B,QAAA,IAAI,KAAK,IAAI,IAAI,CAAC,aAAa,EAAE;IAC/B,YAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;gBAC3B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC7B,YAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC3B,YAAA,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;IAChC,SAAA;SACF,CAAA;QAEO,iBAAkB,CAAA,SAAA,CAAA,kBAAA,GAAlB,UAAmB,KAAmB,EAAA;YAC5C,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;SAChD,CAAA;QAED,iBAAe,CAAA,SAAA,CAAA,eAAA,GAAf,UAAgB,IAAkB,EAAA;YAChC,IAAI,CAAC,IAAI,EAAE;IACT,YAAA,OAAO,IAAI,CAAC;IACb,SAAA;IACD,QAAA,OAAO,OAAO,IAAI,KAAK,QAAQ,GAAG,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;SACtE,CAAA;QAED,iBAAkB,CAAA,SAAA,CAAA,kBAAA,GAAlB,UAAmB,KAAa,EAAA;YAC9B,IAAM,UAAU,GACd,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,iBAAiB,CAAC,MAAM;kBACnD,IAAI,CAAC,iBAAiB;IACxB,cAAE,IAAI,CAAC,iBAAiB,CAAC;IAC7B,QAAA,IAAI,UAAU,IAAI,UAAU,CAAC,MAAM,EAAE;gBACnC,IAAM,iBAAiB,GAAG,UAAU,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC;IACtD,YAAA,IAAI,iBAAiB,IAAI,iBAAiB,CAAC,aAAa,EAAE;IACxD,gBAAA,IAAM,WAAW,GAAG,iBAAiB,CAAC,aAAa,CAAC;IACpD,gBAAA,IAAM,eAAe,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC;IACvD,gBAAA,IAAM,OAAO,GAAG,WAAW,CAAC,SAAS,CAAC;oBACtC,IAAM,UAAU,GAAG,WAAW,CAAC,SAAS,GAAG,WAAW,CAAC,YAAY,CAAC;IACpE,gBAAA,IAAM,mBAAmB,GAAG,eAAe,CAAC,SAAS,CAAC;oBACtD,IAAM,sBAAsB,GAAG,eAAe,CAAC,YAAY,GAAG,eAAe,CAAC,SAAS,CAAC;oBACxF,IAAI,OAAO,GAAG,mBAAmB,EAAE;IACjC,oBAAA,eAAe,CAAC,SAAS,GAAG,OAAO,CAAC;IACrC,iBAAA;yBAAM,IAAI,UAAU,GAAG,sBAAsB,EAAE;wBAC9C,eAAe,CAAC,SAAS,GAAG,UAAU,GAAG,eAAe,CAAC,YAAY,CAAC;IACvE,iBAAA;IACF,aAAA;IACF,SAAA;SACF,CAAA;QAGD,iBAAM,CAAA,SAAA,CAAA,MAAA,GAAN,UAAO,KAAoB,EAAA;YACzB,IAAI,IAAI,CAAC,MAAM,EAAE;gBACf,KAAK,CAAC,cAAc,EAAE,CAAC;gBACvB,IAAI,CAAC,KAAK,EAAE,CAAC;IACd,SAAA;SACF,CAAA;QAGD,iBAAY,CAAA,SAAA,CAAA,YAAA,GAAZ,UAAa,KAAiB,EAAA;YAC5B,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACjB,KAAK,CAAC,cAAc,EAAE,CAAC;gBACvB,KAAK,CAAC,wBAAwB,EAAE,CAAC;IAClC,SAAA;SACF,CAAA;IAGD,IAAA,iBAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;YACE,IAAI,IAAI,CAAC,QAAQ,EAAE;IACjB,YAAA,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;IACtC,SAAA;SACF,CAAA;IAED,IAAA,iBAAA,CAAA,SAAA,CAAA,kBAAkB,GAAlB,YAAA;IACE,QAAA,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC,MAAM,CAAC;IAC9B,QAAA,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;SACvC,CAAA;QAKD,iBAAO,CAAA,SAAA,CAAA,OAAA,GAAP,UAAQ,KAAkB,EAAA;YACxB,IAAI,IAAI,CAAC,QAAQ;gBAAE,OAAO;YAC1B,IAAI,IAAI,CAAC,MAAM,EAAE;IACf,YAAA,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,aAAL,KAAK,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAL,KAAK,CAAE,aAA4B,CAAC,EAAE;oBACjF,IAAI,CAAC,KAAK,EAAE,CAAC;IACd,aAAA;IACF,SAAA;YACD,IAAI,CAAC,UAAU,EAAE,CAAC;SACnB,CAAA;QAGD,iBAAQ,CAAA,SAAA,CAAA,QAAA,GAAR,UAAS,KAAoB,EAAA;YAC3B,KAAK,CAAC,cAAc,EAAE,CAAC;YACvB,KAAK,CAAC,eAAe,EAAE,CAAC;IACxB,QAAA,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;gBAChB,IAAI,CAAC,IAAI,EAAE,CAAC;IACb,SAAA;SACF,CAAA;QAGD,iBAAQ,CAAA,SAAA,CAAA,QAAA,GAAR,UAAS,KAAoB,EAAA;YAC3B,KAAK,CAAC,cAAc,EAAE,CAAC;YACvB,KAAK,CAAC,eAAe,EAAE,CAAC;YACxB,IAAI,CAAC,MAAM,EAAE,CAAC;SACf,CAAA;QAMD,iBAAY,CAAA,SAAA,CAAA,YAAA,GAAZ,UAAa,KAAoB,EAAA;YAC/B,IAAI,IAAI,CAAC,QAAQ;gBAAE,OAAO;;IAE1B,QAAA,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK,CAAC,GAAG,KAAK,WAAW,IAAI,KAAK,CAAC,GAAG,KAAK,YAAY,CAAC,EAAE;gBAC5E,OAAO;IACR,SAAA;IACD,QAAA,IAAM,QAAQ,GAAG,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;IAC3F,QAAA,IAAI,QAAQ,GAAG,CAAC,CAAC,EAAE;IACjB,YAAA,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IAC3B,SAAA;IACD,QAAA,OAAO,KAAK,CAAC;SACd,CAAA;QAID,iBAAc,CAAA,SAAA,CAAA,cAAA,GAAd,UAAe,KAAoB,EAAA;YACjC,IAAI,IAAI,CAAC,QAAQ;gBAAE,OAAO;IAC1B,QAAA,IAAM,QAAQ,GAAG,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;IAC3F,QAAA,IAAI,QAAQ,GAAG,CAAC,CAAC,EAAE;IACjB,YAAA,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IAC3B,SAAA;IACD,QAAA,OAAO,KAAK,CAAC;SACd,CAAA;IAED,IAAA,iBAAA,CAAA,SAAA,CAAA,WAAW,GAAX,YAAA;IACE,QAAA,IAAI,QAAoB,CAAC;IACzB,QAAA,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,MAAM,SAAS,EAAE;IAC9D,YAAA,QAAQ,EAAE,CAAC;IACZ,SAAA;YACD,IAAI,IAAI,CAAC,uBAAuB,EAAE;IAChC,YAAA,IAAI,CAAC,uBAAuB,CAAC,UAAU,EAAE,CAAC;IAC3C,SAAA;SACF,CAAA;;;IAxee,iBAAgB,CAAA,gBAAA,GAAG,GAAG,CAAC;4JAH5B,iBAAiB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAApH,aAAA,CAAA,SAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,aAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,aAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAAqH,sBAAA,EAAA,CAAA,EAAA,MAAA,EAAArH,aAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;IAAjB,mBAAA,iBAAA,CAAA,IAAA,GAAAA,aAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,iBAAiB,EARjB,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,aAAA,EAAA,eAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,WAAA,EAAA,aAAA,EAAA,MAAA,EAAA,QAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,QAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,UAAA,EAAA,IAAA,EAAA,MAAA,EAAA,QAAA,EAAA,UAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,OAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,aAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,sBAAA,EAAA,OAAA,EAAA,YAAA,EAAA,eAAA,EAAA,kBAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,MAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,kBAAA,EAAA,iBAAA,EAAA,sBAAA,EAAA,mBAAA,EAAA,sBAAA,EAAA,mBAAA,EAAA,sBAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,cAAA,EAAA,wBAAA,EAAA,aAAA,EAAA,wBAAA,EAAA,EAAA,UAAA,EAAA,EAAA,eAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,eAAA,EAAA,oBAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,gBAAA,EAAA,cAAA,EAAA,sBAAA,EAAA,cAAA,EAAA,oBAAA,EAAA,WAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,aAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,SAAA,EAAA;IACT,QAAA;IACE,YAAA,OAAO,EAAEsH,uBAAiB;gBAC1B,WAAW,EAAEC,aAAU,EAAC,YAAA,EAAM,OAAA,iBAAiB,CAAA,EAAA,EAAC;IAChD,YAAA,KAAK,EAAE,IAAI;IACZ,SAAA;IACF,KAAA,EAkIa,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,cAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,yBAAyB,EAAwB,WAAA,EAAA,IAAA,EAAA,IAAA,EAAAC,cAAW,EAEzD,MAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,SAAA,EAAA,yBAAyB,EAAU,IAAA,EAAA9F,aAAU,EAU7C,EAAA,EAAA,YAAA,EAAA,mBAAA,EAAA,SAAA,EAAA,aAAa,EAAU,IAAA,EAAAA,aAAU,EARvC,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,aAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,aAAa,2BAAUA,aAAU,EAAA,EAAA,EAAA,YAAA,EAAA,SAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAEjC,gBAAgB,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,eAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAEhB,eAAe,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAAwBA,aAAU,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,mBAAA,EAAA,SAAA,EAE9C,aAAa,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAAUA,aAAU,EAAA,CAAA,EAAA,QAAA,EAAA1B,aAAA,EAAA,QAAA,ECvLjD,klDA0CA,EAAA,MAAA,EAAA,CAAA,2gDAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAyH,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,EAAA,eAAA,EAAA,YAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAC,aAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,MAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAC,gBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,QAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAC,aAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,UAAA,EAAA,oBAAA,EAAA,YAAA,EAAA,OAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAC,aAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,YAAA,EAAA,aAAA,EAAA,MAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAhF,aAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,aAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,aAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;sHDGa,iBAAiB,EAAA,UAAA,EAAA,CAAA;sBAZ7BpC,YAAS;IAAC,YAAA,IAAA,EAAA,CAAA;IACT,oBAAA,QAAQ,EAAE,gBAAgB;IAC1B,oBAAA,WAAW,EAAE,2BAA2B;wBACxC,SAAS,EAAE,CAAC,2BAA2B,CAAC;IACxC,oBAAA,SAAS,EAAE;IACT,wBAAA;IACE,4BAAA,OAAO,EAAE6G,uBAAiB;gCAC1B,WAAW,EAAEC,aAAU,EAAC,YAAA,0BAAuB,CAAA,EAAA,EAAC;IAChD,4BAAA,KAAK,EAAE,IAAI;IACZ,yBAAA;IACF,qBAAA;qBACF,CAAA;gOAgBc,KAAK,EAAA,CAAA;0BAAjB3G,QAAK;oBAUO,aAAa,EAAA,CAAA;0BAAzBA,QAAK;oBAQN,gBAAgB,EAAA,CAAA;0BADfA,QAAK;oBAIN,WAAW,EAAA,CAAA;0BADVA,QAAK;oBAGO,MAAM,EAAA,CAAA;0BAAlBA,QAAK;oBASN,cAAc,EAAA,CAAA;0BADbA,QAAK;oBAKN,MAAM,EAAA,CAAA;0BADLA,QAAK;oBAIN,QAAQ,EAAA,CAAA;0BADPA,QAAK;oBAIF,WAAW,EAAA,CAAA;0BADdD,cAAW;2BAAC,eAAe,CAAA;oBAO5B,QAAQ,EAAA,CAAA;0BAFPA,cAAW;2BAAC,aAAa,CAAA;;0BACzBC,QAAK;oBAIN,IAAI,EAAA,CAAA;0BADHA,QAAK;oBAIN,QAAQ,EAAA,CAAA;0BADPA,QAAK;oBAKN,UAAU,EAAA,CAAA;0BAFTD,cAAW;2BAAC,oBAAoB,CAAA;;0BAChCC,QAAK;oBAIF,SAAS,EAAA,CAAA;0BADZD,cAAW;2BAAC,eAAe,CAAA;oBAOxB,eAAe,EAAA,CAAA;0BADlBA,cAAW;2BAAC,cAAc,CAAA;oBAQjB,MAAM,EAAA,CAAA;0BAAf6C,SAAM;oBAYH,aAAa,EAAA,CAAA;0BADhB7C,cAAW;2BAAC,cAAc,CAAA;oBAM3B,KAAK,EAAA,CAAA;0BADJA,cAAW;2BAAC,WAAW,CAAA;oBAIpB,UAAU,EAAA,CAAA;0BADbA,cAAW;2BAAC,kBAAkB,CAAA;oBAM3B,MAAM,EAAA,CAAA;0BADTA,cAAW;2BAAC,eAAe,CAAA;oBAMxB,WAAW,EAAA,CAAA;0BADdA,cAAW;2BAAC,mBAAmB,CAAA;oBAM5B,SAAS,EAAA,CAAA;0BADZA,cAAW;2BAAC,iBAAiB,CAAA;oBAM9B,YAAY,EAAA,CAAA;0BADXgB,eAAY;2BAAC,yBAAyB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE6F,cAAW,EAAE,CAAA;oBAG5E,YAAY,EAAA,CAAA;0BADX/D,kBAAe;oBAAC,IAAA,EAAA,CAAA,yBAAyB,EAAE,EAAE,IAAI,EAAE/B,aAAU,EAAE,CAAA;oBAGhE,WAAW,EAAA,CAAA;0BADVsB,YAAS;oBAAC,IAAA,EAAA,CAAA,aAAa,EAAE,EAAE,IAAI,EAAEtB,aAAU,EAAE,CAAA;oBAG9C,OAAO,EAAA,CAAA;0BADNsB,YAAS;2BAAC,gBAAgB,CAAA;oBAG3B,aAAa,EAAA,CAAA;0BADZA,YAAS;2BAAC,eAAe,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAEtB,aAAU,EAAE,CAAA;oBAG9D,iBAAiB,EAAA,CAAA;0BADhBqB,eAAY;oBAAC,IAAA,EAAA,CAAA,aAAa,EAAE,EAAE,IAAI,EAAErB,aAAU,EAAE,CAAA;oBAGjD,iBAAiB,EAAA,CAAA;0BADhB+B,kBAAe;oBAAC,IAAA,EAAA,CAAA,aAAa,EAAE,EAAE,IAAI,EAAE/B,aAAU,EAAE,CAAA;oBAmQpD,MAAM,EAAA,CAAA;0BADLF,eAAY;2BAAC,aAAa,EAAE,CAAC,QAAQ,CAAC,CAAA;oBASvC,YAAY,EAAA,CAAA;0BADXA,eAAY;2BAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,CAAA;oBASrC,QAAQ,EAAA,CAAA;0BADPA,eAAY;2BAAC,OAAO,CAAA;oBAerB,OAAO,EAAA,CAAA;0BAHNA,eAAY;2BAAC,eAAe,CAAA;;0BAC5BA,eAAY;2BAAC,gBAAgB,CAAA;;0BAC7BA,eAAY;2BAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,CAAA;oBAYhC,QAAQ,EAAA,CAAA;0BADPA,eAAY;2BAAC,eAAe,EAAE,CAAC,QAAQ,CAAC,CAAA;oBAUzC,QAAQ,EAAA,CAAA;0BADPA,eAAY;2BAAC,eAAe,EAAE,CAAC,QAAQ,CAAC,CAAA;oBAWzC,YAAY,EAAA,CAAA;0BAJXA,eAAY;2BAAC,iBAAiB,EAAE,CAAC,QAAQ,CAAC,CAAA;;0BAC1CA,eAAY;2BAAC,mBAAmB,EAAE,CAAC,QAAQ,CAAC,CAAA;;0BAC5CA,eAAY;2BAAC,mBAAmB,EAAE,CAAC,QAAQ,CAAC,CAAA;;0BAC5CA,eAAY;2BAAC,oBAAoB,EAAE,CAAC,QAAQ,CAAC,CAAA;oBAgB9C,cAAc,EAAA,CAAA;0BAFbA,eAAY;2BAAC,cAAc,EAAE,CAAC,QAAQ,CAAC,CAAA;;0BACvCA,eAAY;2BAAC,aAAa,EAAE,CAAC,QAAQ,CAAC,CAAA;;;IEjdzC,IAAK,QASJ,CAAA;IATD,CAAA,UAAK,QAAQ,EAAA;IACX,IAAA,QAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;IACf,IAAA,QAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;IACjB,IAAA,QAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;IACf,IAAA,QAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;IACb,IAAA,QAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;IACf,IAAA,QAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;IACnB,IAAA,QAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;IACnB,IAAA,QAAA,CAAA,cAAA,CAAA,GAAA,cAA6B,CAAA;IAC/B,CAAC,EATI,QAAQ,KAAR,QAAQ,GASZ,EAAA,CAAA,CAAA,CAAA;AAQD,QAAA,iBAAA,kBAAA,YAAA;QA2HE,SAAoB,iBAAA,CAAA,cAA8B,EAAqBsG,QAAc,EAAA;IAAjE,QAAA,IAAc,CAAA,cAAA,GAAd,cAAc,CAAgB;IAzHxC,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI1E,eAAY,EAAQ,CAAC;IACtC,QAAA,IAAA,CAAA,UAAU,GAAG,IAAIA,eAAY,EAAQ,CAAC;IACtC,QAAA,IAAA,CAAA,UAAU,GAAG,IAAIA,eAAY,EAAU,CAAC;IACzC,QAAA,IAAQ,CAAA,QAAA,GAAoB,OAAO,CAAC;IACpC,QAAA,IAAe,CAAA,eAAA,GAAG,KAAK,CAAC;IACxB,QAAA,IAAgB,CAAA,gBAAA,GAAG,KAAK,CAAC;IACzB,QAAA,IAAkB,CAAA,kBAAA,GAAG,KAAK,CAAC;IAC3B,QAAA,IAAiB,CAAA,iBAAA,GAAG,KAAK,CAAC;IAC1B,QAAA,IAAa,CAAA,aAAA,GAA8B,EAAE,CAAC;IACvD;;;IAGE;IACO,QAAA,IAAU,CAAA,UAAA,GAAG,KAAK,CAAC;IAkBpB,QAAA,IAAc,CAAA,cAAA,GAAW,EAAE,CAAC;IAM5B,QAAA,IAAe,CAAA,eAAA,GAAG,EAAE,EAAE,EAAA2E,SAAA,EAAE,IAAI,EAAAC,WAAA,EAAE,IAAI,EAAAC,WAAA,EAAE,CAAC;YAqF3C,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,CAACH,QAAM,CAAC,CAAC;IACrC,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC,eAAe,EAAE,CAAC,QAAQ,CAAC;SACtE;IArFD,IAAA,MAAA,CAAA,cAAA,CAAI,iBAAY,CAAA,SAAA,EAAA,cAAA,EAAA;IAAhB,QAAA,GAAA,EAAA,YAAA;gBACE,OAAO,IAAI,CAAC,aAAa,CAAC;aAC3B;IAED,QAAA,GAAA,EAAA,UAA0B,eAAqB,EAAA;gBAC7C,IAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC;IAClD,YAAA,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;gBAE3B,IAAI,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,EAAE;IAClD,gBAAA,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;IACjC,gBAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;IAC5B,aAAA;aACF;;;IAVA,KAAA,CAAA,CAAA;IAYD,IAAA,MAAA,CAAA,cAAA,CAAI,iBAAa,CAAA,SAAA,EAAA,eAAA,EAAA;IAAjB,QAAA,GAAA,EAAA,YAAA;gBACE,OAAO,IAAI,CAAC,cAAc,CAAC;aAC5B;IAED,QAAA,GAAA,EAAA,UAA2B,KAAa,EAAA;gBAAxC,IAEC,KAAA,GAAA,IAAA,CAAA;gBADC,IAAI,CAAC,cAAc,GAAG,CAAC,KAAK,IAAI,EAAE,EAAE,GAAG,CAAC,UAAC,IAAI,EAAK,EAAA,OAAA,KAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAA,EAAA,CAAC,CAAC;aAC7E;;;IAJA,KAAA,CAAA,CAAA;IAMD,IAAA,MAAA,CAAA,cAAA,CAAI,iBAAS,CAAA,SAAA,EAAA,WAAA,EAAA;IAAb,QAAA,GAAA,EAAA,YAAA;gBACE,OAAO,IAAI,CAAC,UAAU,CAAC;aACxB;IAED,QAAA,GAAA,EAAA,UAAuB,KAAW,EAAA;gBAChC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;aAC7C;;;IAJA,KAAA,CAAA,CAAA;IAMD,IAAA,MAAA,CAAA,cAAA,CAAI,iBAAO,CAAA,SAAA,EAAA,SAAA,EAAA;IAAX,QAAA,GAAA,EAAA,YAAA;gBACE,OAAO,IAAI,CAAC,QAAQ,CAAC;aACtB;IAED,QAAA,GAAA,EAAA,UAAqB,KAAW,EAAA;IAC9B,YAAA,IAAI,KAAK,IAAI,IAAI,CAAC,WAAW,IAAII,gBAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,EAAE;IAClE,gBAAA,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IAC5B,aAAA;gBACD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;aAC3C;;;IAPA,KAAA,CAAA,CAAA;IASD,IAAA,MAAA,CAAA,cAAA,CAAI,iBAAO,CAAA,SAAA,EAAA,SAAA,EAAA;IAAX,QAAA,GAAA,EAAA,YAAA;gBACE,OAAO,IAAI,CAAC,QAAQ,CAAC;aACtB;IAED,QAAA,GAAA,EAAA,UAAqB,KAAW,EAAA;IAC9B,YAAA,IAAI,KAAK,IAAI,IAAI,CAAC,WAAW,IAAIC,eAAO,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,EAAE;IACjE,gBAAA,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IAC5B,aAAA;gBACD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;aAC3C;;;IAPA,KAAA,CAAA,CAAA;IASD,IAAA,MAAA,CAAA,cAAA,CAAI,iBAAe,CAAA,SAAA,EAAA,iBAAA,EAAA;IAAnB,QAAA,GAAA,EAAA,YAAA;IACE,YAAA,OAAOC,0BAAqB,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC;aAC/E;;;IAAA,KAAA,CAAA,CAAA;IAED,IAAA,MAAA,CAAA,cAAA,CAAI,iBAAU,CAAA,SAAA,EAAA,YAAA,EAAA;IAAd,QAAA,GAAA,EAAA,YAAA;gBACE,OAAO,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;aACxD;;;IAAA,KAAA,CAAA,CAAA;IAKD,IAAA,MAAA,CAAA,cAAA,CAAI,iBAAc,CAAA,SAAA,EAAA,gBAAA,EAAA;IAHlB;;IAEG;IACH,QAAA,GAAA,EAAA,YAAA;IACE,YAAA,IAAM,wBAAwB,GAC5B,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;IAEhF,YAAA,IAAM,uBAAuB,GAC3B,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,oBAAoB,CAAC,EAAE,CAAC,CAAC;gBAE9E,OAAO,IAAI,CAAC,oBAAoB,CAAC,wBAAwB,EAAE,uBAAuB,CAAC,CAAC;aACrF;;;IAAA,KAAA,CAAA,CAAA;IAED,IAAA,MAAA,CAAA,cAAA,CAAI,iBAAa,CAAA,SAAA,EAAA,eAAA,EAAA;IAAjB,QAAA,GAAA,EAAA,YAAA;gBACE,OAAO,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;aACrD;;;IAAA,KAAA,CAAA,CAAA;IAED,IAAA,MAAA,CAAA,cAAA,CACI,iBAAiB,CAAA,SAAA,EAAA,mBAAA,EAAA;IADrB,QAAA,GAAA,EAAA,YAAA;IAEE,YAAA,OAAO,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC;aACpC;;;IAAA,KAAA,CAAA,CAAA;IAOO,IAAA,iBAAA,CAAA,SAAA,CAAA,gBAAgB,GAAhB,UAAiB,IAAU,EAAE,YAAoB,EAAA;IACvD,QAAA,OAAOC,cAAM,CAAC,IAAI,EAAE,YAAY,EAAE;gBAChC,MAAM,EAAE,IAAI,CAAC,MAAM;IACpB,SAAA,CAAC,CAAC;SACJ,CAAA;QAEO,iBAAS,CAAA,SAAA,CAAA,SAAA,GAAT,UAAU,MAAc,EAAA;YAC9B,IAAI,MAAM,KAAK,IAAI,EAAE;IACnB,YAAA,MAAM,GAAG,MAAM,CAAC;IACjB,SAAA;YACD,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YACjC,IAAM,gBAAgB,GAAQ,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,IAAI,CAAC,eAAe,GAAK,IAAI,CAAC,aAAa,CAAE,CAAC;IAE5E,QAAA,OAAO,gBAAgB,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;SAC9D,CAAA;IAED,IAAA,iBAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;IACE,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;IACpC,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;SACxC,CAAA;IAED,IAAA,iBAAA,CAAA,SAAA,CAAA,eAAe,GAAf,YAAA;IACE,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CACtB,IAAI,CAAC,iBAAiB,EACtB,IAAI,CAAC,gBAAgB,EAAE,EACvB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,EAC/B,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAC9B,CAAC;SACH,CAAA;QAED,iBAAW,CAAA,SAAA,CAAA,WAAA,GAAX,UAAY,OAAsB,EAAA;YAChC,IAAI,CAAC,IAAI,CAAC,WAAW;gBAAE,OAAO;YAC9B,IACE,OAAO,CAAC,eAAe;IACvB,YAAA,OAAO,CAAC,gBAAgB;IACxB,YAAA,OAAO,CAAC,kBAAkB;IAC1B,YAAA,OAAO,CAAC,aAAa;IACrB,YAAA,OAAO,CAAC,OAAO;IACf,YAAA,OAAO,CAAC,OAAO;IACf,YAAA,OAAO,CAAC,SAAS;gBACjB,OAAO,CAAC,QAAQ,EAChB;gBACA,IAAI,CAAC,kBAAkB,EAAE,CAAC;gBAC1B,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;IACrD,SAAA;SACF,CAAA;QAEO,iBAAc,CAAA,SAAA,CAAA,cAAA,GAAd,UAAe,IAAuB,EAAA;YAAvB,IAAA,IAAA,KAAA,KAAA,CAAA,EAAA,EAAA,IAAiB,GAAA,IAAA,IAAI,EAAE,CAAA,EAAA;IAC5C,QAAA,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,CAACC,mBAAW,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,EAAE;IAC7D,YAAA,IAAI,CAAC,WAAW,GAAGC,oBAAY,CAAC,IAAI,CAAC,CAAC;gBACtC,IAAI,CAAC,kBAAkB,EAAE,CAAC;gBAC1B,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;IACrD,SAAA;SACF,CAAA;;;;;;QAOO,iBAAa,CAAA,SAAA,CAAA,aAAA,GAAb,UAAc,cAAoB,EAAA;IACxC,QAAA,IAAI,CAAC,cAAc;gBAAE,OAAO;IAE5B,QAAA,IAAIC,kBAAU,CAAC,cAAc,CAAC,CAAC,OAAO,EAAE,KAAK,cAAc,CAAC,OAAO,EAAE,EAAE;;IAErE,YAAA,OAAO,cAAc,CAAC;IACvB,SAAA;IACD,QAAA,IACEA,kBAAU,CAACC,wBAAc,CAAC,cAAc,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,OAAO,EAAE;gBACvEA,wBAAc,CAAC,cAAc,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,OAAO,EAAE,EAC3D;;gBAEA,IAAM,iBAAiB,GAAGA,wBAAc,CAAC,cAAc,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;IAC5E,YAAA,OAAO,iBAAiB,CAAC;IAC1B,SAAA;;IAED,QAAA,OAAOD,kBAAU,CAAC,cAAc,CAAC,CAAC;SACnC,CAAA;IAEO,IAAA,iBAAA,CAAA,SAAA,CAAA,WAAW,GAAX,YAAA;YAAA,IASP,KAAA,GAAA,IAAA,CAAA;IARC,QAAA,IAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;YAEvB,IAAM,IAAI,GAAGE,yBAAiB,CAAC;IAC7B,YAAA,KAAK,EAAEC,mBAAW,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;IAChD,YAAA,GAAG,EAAEC,iBAAS,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;IAC7C,SAAA,CAAC,CAAC;IAEH,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC,UAAC,IAAI,EAAK,EAAA,OAAA,KAAI,CAAC,kCAAkC,CAAC,IAAI,CAAC,CAA7C,EAA6C,CAAC,CAAC;SAC1E,CAAA;QAEO,iBAAkC,CAAA,SAAA,CAAA,kCAAA,GAAlC,UAAmC,IAAU,EAAA;YACnD,OAAO,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;SAC7C,CAAA;IAEO,IAAA,iBAAA,CAAA,SAAA,CAAA,cAAc,GAAd,UAAe,OAAa,EAAE,YAAkB,EAAA;IACtD,QAAA,IAAI,CAAC,OAAO,IAAI,CAAC,YAAY,EAAE;IAC7B,YAAA,OAAO,KAAK,CAAC;IACd,SAAA;IACD,QAAA,IAAI,OAAO,YAAY,IAAI,IAAI,CAAC,YAAY,EAAE;IAC5C,YAAA,OAAO,IAAI,CAAC;IACb,SAAA;IACD,QAAA,OAAO,CAACC,iBAAS,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;SAC1C,CAAA;QAEO,iBAAc,CAAA,SAAA,CAAA,cAAA,GAAd,UAAe,IAAU,EAAA;IAC/B,QAAA,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,UAAC,YAAY,EAAA;IAC1C,YAAA,OAAOA,iBAAS,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;IACvC,SAAC,CAAC,CAAC;SACJ,CAAA;IAED,IAAA,iBAAA,CAAA,SAAA,CAAA,kBAAkB,GAAlB,YAAA;YAAA,IA+BC,KAAA,GAAA,IAAA,CAAA;YA9BC,IAAI,CAAC,IAAI,CAAC,WAAW;gBAAE,OAAO;YAE9B,IAAM,UAAU,GAAGN,oBAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAClD,IAAM,QAAQ,GAAGO,kBAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC9C,QAAA,IAAM,gBAAgB,GAAGH,mBAAW,CAAC,UAAU,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;IAC1E,QAAA,IAAM,aAAa,GAAGC,iBAAS,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;YACnE,IAAM,aAAa,GAAGG,wBAAgB,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,CAAC,CAAC;YAC5E,IAAM,KAAK,GAAG,IAAI,CAAC,SAAS,GAAGP,kBAAU,CAAC,IAAI,CAAC,SAAS,CAAC,GAAGA,kBAAU,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;IAEnF,QAAA,IAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IAE1D,QAAA,IAAM,IAAI,GAAmB,SAAS,CAAC,GAAG,CAAC,UAAC,MAAM,EAAA;;IAChD,YAAA,IAAM,QAAQ,GAAGQ,WAAG,CAAC,gBAAgB,GAAA,EAAA,GAAA,EAAA,EAAI,EAAC,CAAA,QAAQ,CAAC,IAAI,CAAG,GAAA,MAAM,MAAG,CAAC;IACpE,YAAA,IAAM,GAAG,GAAG,KAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;gBAE7D,IAAM,YAAY,GAAG,KAAI,CAAC,YAAY,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;gBACtD,IAAM,UAAU,GAAGH,iBAAS,CAAC,KAAI,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;IAC1D,YAAA,IAAM,IAAI,GAAG;IACX,gBAAA,IAAI,EAAE,QAAQ,CAAC,OAAO,EAAE;oBACxB,cAAc,EAAE,GAAG,CAAC,cAAc;IAClC,gBAAA,YAAY,EAAA,YAAA;IACZ,gBAAA,UAAU,EAAA,UAAA;oBACV,UAAU,EAAE,KAAI,CAAC,aAAa,CAAC,GAAG,EAAE,YAAY,EAAE,UAAU,CAAC;iBAC9D,CAAC;IACF,YAAA,IAAI,UAAU,EAAE;IACd,gBAAA,KAAI,CAAC,WAAW,GAAG,IAAI,CAAC;IACzB,aAAA;IACD,YAAA,OAAO,IAAI,CAAC;IACd,SAAC,CAAC,CAAC;YACH,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;SACnC,CAAA;IAEO,IAAA,iBAAA,CAAA,SAAA,CAAA,cAAc,GAAd,UAAe,IAAU,EAAE,KAAW,EAAE,UAAgB,EAAA;YAC9D,OAAO;IACL,YAAA,OAAO,EAAEA,iBAAS,CAAC,KAAK,EAAE,IAAI,CAAC;IAC/B,YAAA,MAAM,EAAEX,gBAAQ,CAAC,IAAI,EAAE,KAAK,CAAC;IAC7B,YAAA,QAAQ,EAAEC,eAAO,CAAC,IAAI,EAAE,KAAK,CAAC;IAC9B,YAAA,SAAS,EAAEc,iBAAS,CAAC,IAAI,CAAC;IAC1B,YAAA,cAAc,EAAEX,mBAAW,CAAC,IAAI,EAAE,UAAU,CAAC;IAC7C,YAAA,UAAU,EAAE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;aACtC,CAAC;SACH,CAAA;IAEO,IAAA,iBAAA,CAAA,SAAA,CAAA,YAAY,GAAZ,UAAa,GAAgB,EAAE,IAAU,EAAA;YAC/C,QACE,CAAC,IAAI,CAAC,iBAAiB,IAAI,GAAG,CAAC,OAAO;iBACrC,CAAC,GAAG,CAAC,UAAU;IACd,gBAAA,GAAG,CAAC,cAAc;oBAClB,EAAE,IAAI,CAAC,eAAe,IAAI,GAAG,CAAC,SAAS,CAAC;oBACxC,EAAE,IAAI,CAAC,gBAAgB,IAAI,GAAG,CAAC,MAAM,CAAC;oBACtC,EAAE,IAAI,CAAC,kBAAkB,IAAI,GAAG,CAAC,QAAQ,CAAC;IAC1C,gBAAA,EAAE,IAAI,CAAC,OAAO,IAAIJ,gBAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IAC/C,gBAAA,EAAE,IAAI,CAAC,OAAO,IAAIC,eAAO,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EACjD;SACH,CAAA;IAEO,IAAA,iBAAA,CAAA,SAAA,CAAA,aAAa,GAAb,UAAc,GAAgB,EAAE,YAAqB,EAAE,UAAmB,EAAA;IAChF,QAAA,IAAM,UAAU,GAAG;gBACjB,eAAe,EAAE,GAAG,CAAC,cAAc;gBACnC,OAAO,EAAE,GAAG,CAAC,SAAS;gBACtB,KAAK,EAAE,GAAG,CAAC,OAAO;IAClB,YAAA,UAAU,EAAE,YAAY;IACxB,YAAA,QAAQ,EAAE,UAAU;gBACpB,IAAI,EAAE,GAAG,CAAC,MAAM;gBAChB,QAAQ,EAAE,GAAG,CAAC,UAAU;aACzB,CAAC;YACF,IAAI,cAAc,GAAG,KAAK,CAAC;IAC3B,QAAA,KAAK,IAAM,GAAG,IAAI,UAAU,EAAE;IAC5B,YAAA,IAAI,UAAU,CAAC,GAAG,CAAC,EAAE;IACnB,gBAAA,cAAc,IAAI,GAAG,GAAG,GAAG,CAAC;IAC7B,aAAA;IACF,SAAA;IACD,QAAA,OAAO,cAAc,CAAC;SACvB,CAAA;IAEO,IAAA,iBAAA,CAAA,SAAA,CAAA,KAAK,GAAL,UAAM,KAAY,EAAE,IAAY,EAAA;YACtC,IAAM,OAAO,GAAG,EAAE,CAAC;YACnB,OAAO,KAAK,CAAC,MAAM,EAAE;IACnB,YAAA,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;IACrC,SAAA;IACD,QAAA,OAAO,OAAO,CAAC;SAChB,CAAA;QAEO,iBAAoB,CAAA,SAAA,CAAA,oBAAA,GAApB,UAAqB,OAAa,EAAA;YACxC,IAAI,IAAI,CAAC,WAAW,EAAE;IACpB,YAAA,IAAI,CAAC,WAAW,CAAC,UAAU,GAAG,KAAK,CAAC;IACrC,SAAA;YAED,IAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACrC,QAAA,IAAI,MAAM,EAAE;IACV,YAAA,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC;IACzB,YAAA,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC;IAC3B,SAAA;YACD,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;SACvD,CAAA;QAED,iBAAe,CAAA,SAAA,CAAA,eAAA,GAAf,UAAgB,MAAoB,EAAA;IAClC,QAAA,IAAI,MAAM,CAAC,YAAY,IAAI,MAAM,CAAC,IAAI,EAAE;gBACtC,IAAI,OAAO,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACzC,YAAA,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAE7B,YAAA,IAAI,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;IAC3B,gBAAA,OAAO,GAAGe,wBAAc,CAAC,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;IACnF,aAAA;gBAED,IAAM,UAAU,GAAG,OAAO,CAAC;gBAE3B,IAAI,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,EAAE;IACpD,gBAAA,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;IACnC,gBAAA,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC;IAC7B,gBAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAClC,aAAA;IACD,YAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAClC,SAAA;SACF,CAAA;QAEO,iBAAa,CAAA,SAAA,CAAA,aAAA,GAAb,UAAc,SAAiB,EAAA;IACrC,QAAA,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;YAC7B,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;SACrD,CAAA;QAED,iBAAY,CAAA,SAAA,CAAA,YAAA,GAAZ,UAAa,KAAa,EAAA;YACxB,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;SAC/C,CAAA;QAED,iBAAW,CAAA,SAAA,CAAA,WAAA,GAAX,UAAY,IAAY,EAAA;IACtB,QAAA,IAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;IACjC,QAAA,IAAI,CAAC,gBAAgB,CAAC,WAAW,GAAGC,eAAO,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC/E,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;SACnC,CAAA;IAEO,IAAA,iBAAA,CAAA,SAAA,CAAA,gBAAgB,GAAhB,UAAiB,KAAa,EAAE,IAAc,EAAA;;YACpD,IAAI,KAAK,KAAK,CAAC;gBAAE,OAAO;IACxB,QAAA,IAAI,CAAC,WAAW,GAAGH,WAAG,CAAC,IAAI,CAAC,WAAW,GAAA,EAAA,GAAA,EAAA,EAAI,EAAC,CAAA,IAAI,CAAG,GAAA,KAAK,MAAG,CAAC;YAE5D,IAAI,CAAC,kBAAkB,EAAE,CAAC;SAC3B,CAAA;IAED,IAAA,MAAA,CAAA,cAAA,CAAI,iBAAgB,CAAA,SAAA,EAAA,kBAAA,EAAA;IAApB,QAAA,GAAA,EAAA,YAAA;IACE,YAAA,IAAM,qBAAqB,GACzB,IAAI,CAAC,gBAAgB,IAAIV,mBAAW,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IAEzE,YAAA,IAAM,wBAAwB,GAC5B,IAAI,CAAC,OAAO;qBACXA,mBAAW,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,IAAIJ,gBAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IAE5F,YAAA,OAAO,CAAC,qBAAqB,IAAI,CAAC,wBAAwB,CAAC;aAC5D;;;IAAA,KAAA,CAAA,CAAA;IAED,IAAA,MAAA,CAAA,cAAA,CAAI,iBAAmB,CAAA,SAAA,EAAA,qBAAA,EAAA;IAAvB,QAAA,GAAA,EAAA,YAAA;IACE,YAAA,IAAM,uBAAuB,GAC3B,IAAI,CAAC,kBAAkB,IAAII,mBAAW,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IAE3E,YAAA,IAAM,wBAAwB,GAC5B,IAAI,CAAC,OAAO;qBACXA,mBAAW,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,IAAIH,eAAO,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IAE3F,YAAA,OAAO,CAAC,uBAAuB,IAAI,CAAC,wBAAwB,CAAC;aAC9D;;;IAAA,KAAA,CAAA,CAAA;QAEO,iBAAO,CAAA,SAAA,CAAA,OAAA,GAAP,UAAQ,IAAU,EAAA;;YACxB,IAAI,QAAQ,GAAG,IAAI,CAAC;IACpB,QAAA,IAAI,IAAI,EAAE;;oBACR,KAAiB,IAAA,KAAA,QAAA,CAAA,IAAI,CAAC,MAAM,CAAA,gBAAA,EAAE,CAAA,EAAA,CAAA,IAAA,EAAA,EAAA,GAAA,EAAA,CAAA,IAAA,EAAA,EAAA;IAAzB,oBAAA,IAAI,IAAI,GAAA,EAAA,CAAA,KAAA,CAAA;IACX,oBAAA,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,UAAC,GAAG,EAAA;IACvB,wBAAA,OAAO,GAAG,CAAC,cAAc,IAAI,GAAG,CAAC,IAAI,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC;IAC3D,qBAAC,CAAC,CAAC;IACH,oBAAA,IAAI,QAAQ,EAAE;4BACZ,MAAM;IACP,qBAAA;IACF,iBAAA;;;;;;;;;IACF,SAAA;IACD,QAAA,OAAO,QAAQ,CAAC;SACjB,CAAA;IAEO,IAAA,iBAAA,CAAA,SAAA,CAAA,gBAAgB,GAAhB,YAAA;YACN,OAAO;gBACL,eAAe,EAAE,IAAI,CAAC,gBAAgB;gBACtC,kBAAkB,EAAE,IAAI,CAAC,mBAAmB;gBAC5C,IAAI,EAAE,IAAI,CAAC,UAAU;gBACrB,SAAS,EAAE,IAAI,CAAC,eAAe;gBAC/B,QAAQ,EAAE,IAAI,CAAC,SAAS;gBACxB,KAAK,EAAE,IAAI,CAAC,MAAM;aACnB,CAAC;SACH,CAAA;QAEO,iBAAsB,CAAA,SAAA,CAAA,sBAAA,GAAtB,UAAuB,IAAU,EAAA;YACvC,IAAM,kBAAkB,GAAG,IAAI,CAAC,iBAAiB,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;YAChE,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,kBAAkB,CAAC,CAAC;SACtD,CAAA;QAEO,iBAAwB,CAAA,SAAA,CAAA,wBAAA,GAAxB,UAAyB,aAA4B,EAAA;YAC3D,IAAI,aAAa,YAAY,IAAI;IAAE,YAAA,OAAO,aAAa,CAAC;YACxD,IAAM,KAAK,GAAG,IAAI,CAAC,SAAS,IAAI,IAAI,IAAI,EAAE,CAAC;IAC3C,QAAA,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,GAAG,aAAa,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;SAC5D,CAAA;IAEO,IAAA,iBAAA,CAAA,SAAA,CAAA,oBAAoB,GAApB,UAAqB,SAAe,EAAE,OAAa,EAAA;;YAEnD,IAAA,EAAA,GAAA,OAAuB,CAAC,SAAS,CAAC,WAAW,EAAE,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,IAAI,EAAE,EAAA,CAAA,CAAA,EAA7E,SAAS,GAAA,EAAA,CAAA,CAAA,CAAA,EAAE,OAAO,GAAA,EAAA,CAAA,CAAA,CAA2D,CAAC;IACrF,QAAA,IAAM,aAAa,GAAG,OAAO,GAAG,SAAS,CAAC;IAC1C,QAAA,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,aAAa,GAAG,CAAC,EAAE,EAAE,UAAC,CAAC,EAAE,CAAC,EAAK,EAAA,OAAA,CAAC,SAAS,GAAG,CAAC,EAAE,QAAQ,EAAE,CAA1B,EAA0B,CAAC,CAAC;SACxF,CAAA;;;IAzbU,mBAAA,iBAAA,CAAA,IAAA,GAAAnI,aAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAAA,aAAA,EAAA,IAAA,EAAA,iBAAiB,6CA2HgCgH,YAAS,EAAA,CAAA,EAAA,MAAA,EAAAhH,aAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;IA3H1D,mBAAA,iBAAA,CAAA,IAAA,GAAAA,aAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,iBAAiB,EAFjB,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,aAAA,EAAA,eAAA,EAAA,UAAA,EAAA,YAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,aAAA,EAAA,eAAA,EAAA,SAAA,EAAA,WAAA,EAAA,OAAA,EAAA,SAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,0BAAA,EAAA,wBAAA,EAAA,EAAA,EAAA,SAAA,EAAA,CAAC,cAAc,CAAC,kLCpE7B,63CAiDA,EAAA,MAAA,EAAA,CAAA,wjDAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAkH,aAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,MAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAkC,iBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,eAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,UAAA,EAAA,MAAA,EAAA,UAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAA1G,aAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,aAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;sHDqBa,iBAAiB,EAAA,UAAA,EAAA,CAAA;sBAN7BjC,YAAS;IAAC,YAAA,IAAA,EAAA,CAAA;IACT,oBAAA,QAAQ,EAAE,gBAAgB;IAC1B,oBAAA,WAAW,EAAE,2BAA2B;wBACxC,SAAS,EAAE,CAAC,2BAA2B,CAAC;wBACxC,SAAS,EAAE,CAAC,cAAc,CAAC;qBAC5B,CAAA;;;kCA4HsD8D,SAAM;mCAACyC,YAAS,CAAA;;6BA1HlB,iBAAiB,EAAA,CAAA;0BAAnEhE,YAAS;oBAAC,IAAA,EAAA,CAAA,mBAAmB,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAA;oBACvC,UAAU,EAAA,CAAA;0BAAnBQ,SAAM;oBACG,UAAU,EAAA,CAAA;0BAAnBA,SAAM;oBACG,UAAU,EAAA,CAAA;0BAAnBA,SAAM;oBACE,QAAQ,EAAA,CAAA;0BAAhB5C,QAAK;oBACG,eAAe,EAAA,CAAA;0BAAvBA,QAAK;oBACG,gBAAgB,EAAA,CAAA;0BAAxBA,QAAK;oBACG,kBAAkB,EAAA,CAAA;0BAA1BA,QAAK;oBACG,iBAAiB,EAAA,CAAA;0BAAzBA,QAAK;oBACG,aAAa,EAAA,CAAA;0BAArBA,QAAK;oBAKG,UAAU,EAAA,CAAA;0BAAlBA,QAAK;oBAQG,oBAAoB,EAAA,CAAA;0BAA5BA,QAAK;oBAsBO,YAAY,EAAA,CAAA;0BAAxBA,QAAK;oBAcO,aAAa,EAAA,CAAA;0BAAzBA,QAAK;oBAQO,SAAS,EAAA,CAAA;0BAArBA,QAAK;oBAQO,OAAO,EAAA,CAAA;0BAAnBA,QAAK;oBAWO,OAAO,EAAA,CAAA;0BAAnBA,QAAK;oBAiCF,iBAAiB,EAAA,CAAA;0BADpBD,cAAW;2BAAC,0BAA0B,CAAA;;;AEnLzC,QAAA,oBAAA,kBAAA,YAAA;IALA,IAAA,SAAA,oBAAA,GAAA;IAQE,QAAA,IAAK,CAAA,KAAA,GAAoB,OAAO,CAAC;SAUlC;IATC,IAAA,MAAA,CAAA,cAAA,CAAa,oBAAI,CAAA,SAAA,EAAA,MAAA,EAAA;IAAjB,QAAA,GAAA,EAAA,UAAkB,KAAsB,EAAA;IACtC,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK,KAAK,MAAM,GAAG,OAAO,GAAG,KAAK,CAAC;aACjD;;;IAAA,KAAA,CAAA,CAAA;IAED,IAAA,MAAA,CAAA,cAAA,CAAI,oBAAgB,CAAA,SAAA,EAAA,kBAAA,EAAA;IAApB,QAAA,GAAA,EAAA,YAAA;;;;IAGE,YAAA,OAAO,CAAA,MAAA,IAAI,CAAC,YAAY,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,MAAM,IAAG,CAAC,CAAC;aACtC;;;IAAA,KAAA,CAAA,CAAA;;;+JAZU,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAAX,aAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;IAApB,mBAAA,oBAAA,CAAA,IAAA,GAAAA,aAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,oBAAoB,6HCTjC,2oBAoBA,EAAA,MAAA,EAAA,CAAA,65BAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAmB,aAAA,CAAA,cAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,aAAA,CAAA,cAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,aAAA,CAAA,aAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,UAAA,EAAA,UAAA,EAAA,YAAA,EAAA,MAAA,EAAA,MAAA,EAAA,KAAA,EAAA,QAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA+F,aAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,MAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA/F,aAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAgG,aAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,aAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,aAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;sHDXa,oBAAoB,EAAA,UAAA,EAAA,CAAA;sBALhC1G,YAAS;IAAC,YAAA,IAAA,EAAA,CAAA;IACT,oBAAA,QAAQ,EAAE,oBAAoB;IAC9B,oBAAA,WAAW,EAAE,+BAA+B;wBAC5C,SAAS,EAAE,CAAC,+BAA+B,CAAC;qBAC7C,CAAA;kCAEU,YAAY,EAAA,CAAA;0BAApBG,QAAK;oBAGO,IAAI,EAAA,CAAA;0BAAhBA,QAAK;;;IEbR,IAAA,iBAAA,kBAAA,YAAA;IAIE,IAAA,SAAA,iBAAA,CAA4B,KAAa,EAAA;IAAb,QAAA,IAAK,CAAA,KAAA,GAAL,KAAK,CAAQ;IAFjC,QAAA,IAAE,CAAA,EAAA,GAAG,CAAC,CAAC;SAE8B;QAEtC,iBAAQ,CAAA,QAAA,GAAf,UAAgB,KAAa,EAAA;YAC3B,IAAI,eAAe,GAAG,iBAAiB,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAC5D,IAAI,CAAC,eAAe,EAAE;IACpB,YAAA,eAAe,GAAG,IAAI,iBAAiB,CAAC,KAAK,CAAC,CAAC;gBAC/C,iBAAiB,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC;IACxD,SAAA;IACD,QAAA,OAAO,eAAe,CAAC;SACxB,CAAA;IAED,IAAA,iBAAA,CAAA,SAAA,CAAA,IAAI,GAAJ,YAAA;YACE,OAAU,IAAI,CAAC,KAAK,GAAA,GAAA,GAAI,IAAI,CAAC,EAAE,EAAI,CAAC;SACrC,CAAA;;;IAhBc,iBAAA,CAAA,QAAQ,GAAG,IAAI,GAAG,EAA6B;;ACgBhE,QAAA,iBAAA,kBAAA,YAAA;IANA,IAAA,SAAA,iBAAA,GAAA;IAOW,QAAA,IAAO,CAAA,OAAA,GAAY,KAAK,CAAC;IACzB,QAAA,IAAc,CAAA,cAAA,GAAc,GAAG,CAAC;IAYzC,QAAA,IAAQ,CAAA,QAAA,GAAY,KAAK,CAAC;IAEjB,QAAA,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;IAahB,QAAA,IAAA,CAAA,aAAa,GAAG,IAAIwC,eAAY,EAAW,CAAC;;IAQtD,QAAA,IAAQ,CAAA,QAAA,GAAG,iBAAiB,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAC,IAAI,EAAE,CAAC;SACtE;IArBC,IAAA,MAAA,CAAA,cAAA,CACI,iBAAW,CAAA,SAAA,EAAA,aAAA,EAAA;IADf,QAAA,GAAA,EAAA,YAAA;gBAEE,OAAO,IAAI,CAAC,QAAQ,GAAG,UAAU,GAAG,IAAI,CAAC;aAC1C;;;IAAA,KAAA,CAAA,CAAA;IAED,IAAA,MAAA,CAAA,cAAA,CAA2C,iBAAiB,CAAA,SAAA,EAAA,mBAAA,EAAA;IAA5D,QAAA,GAAA,EAAA,YAAA;IACE,YAAA,OAAO,IAAI,CAAC,cAAc,KAAK,GAAG,CAAC;aACpC;;;IAAA,KAAA,CAAA,CAAA;IACD,IAAA,MAAA,CAAA,cAAA,CAA2C,iBAAiB,CAAA,SAAA,EAAA,mBAAA,EAAA;IAA5D,QAAA,GAAA,EAAA,YAAA;IACE,YAAA,OAAO,IAAI,CAAC,cAAc,KAAK,GAAG,CAAC;aACpC;;;IAAA,KAAA,CAAA,CAAA;QAID,iBAAS,CAAA,SAAA,CAAA,SAAA,GAAT,UAAU,OAAgB,EAAA;IACxB,QAAA,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;YACvB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;SACvC,CAAA;;;4JAlCU,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAApD,aAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;IAAjB,mBAAA,iBAAA,CAAA,IAAA,GAAAA,aAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,iBAAiB,qfCjB9B,0TAUA,EAAA,MAAA,EAAA,CAAA,0uEAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAmB,aAAA,CAAA,WAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,OAAA,EAAA,UAAA,EAAA,eAAA,EAAA,MAAA,EAAA,MAAA,EAAA,OAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAA,aAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,EAAA,EAAA,IAAA,EAAAX,aAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAAR,aAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;sHDOa,iBAAiB,EAAA,UAAA,EAAA,CAAA;sBAN7BS,YAAS;IAAC,YAAA,IAAA,EAAA,CAAA;IACT,oBAAA,QAAQ,EAAE,gBAAgB;IAC1B,oBAAA,WAAW,EAAE,2BAA2B;wBACxC,SAAS,EAAE,CAAC,2BAA2B,CAAC;wBACxC,eAAe,EAAEC,0BAAuB,CAAC,MAAM;qBAChD,CAAA;kCAEU,OAAO,EAAA,CAAA;0BAAfE,QAAK;oBACG,cAAc,EAAA,CAAA;0BAAtBA,QAAK;oBAIN,IAAI,EAAA,CAAA;0BAFHD,cAAW;2BAAC,iBAAiB,CAAA;;0BAC7BC,QAAK;oBAKN,IAAI,EAAA,CAAA;0BAFHD,cAAW;2BAAC,OAAO,CAAA;;0BACnBC,QAAK;oBAKN,QAAQ,EAAA,CAAA;0BAFPD,cAAW;2BAAC,aAAa,CAAA;;0BACzBC,QAAK;oBAGG,QAAQ,EAAA,CAAA;0BAAhBA,QAAK;oBAEF,WAAW,EAAA,CAAA;0BADdD,cAAW;2BAAC,eAAe,CAAA;oBAKe,iBAAiB,EAAA,CAAA;0BAA3DA,cAAW;2BAAC,wBAAwB,CAAA;oBAGM,iBAAiB,EAAA,CAAA;0BAA3DA,cAAW;2BAAC,wBAAwB,CAAA;oBAI3B,aAAa,EAAA,CAAA;0BAAtB6C,SAAM;;;AEtCT,QAAA,aAAA,kBAAA,YAAA;IAAA,IAAA,SAAA,aAAA,GAAA;;;;wJAAa,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAAxD,aAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;IAAb,mBAAA,aAAA,CAAA,IAAA,GAAAA,aAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,aAAa,4NCR1B,2BACA,EAAA,MAAA,EAAA,CAAA,mpDAAA,CAAA,EAAA,eAAA,EAAAA,aAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;sHDOa,aAAa,EAAA,UAAA,EAAA,CAAA;sBANzBS,YAAS;IAAC,YAAA,IAAA,EAAA,CAAA;IACT,oBAAA,QAAQ,EAAE,YAAY;IACtB,oBAAA,WAAW,EAAE,uBAAuB;wBACpC,SAAS,EAAE,CAAC,uBAAuB,CAAC;wBACpC,eAAe,EAAEC,0BAAuB,CAAC,MAAM;qBAChD,CAAA;kCAEU,IAAI,EAAA,CAAA;0BAAZE,QAAK;oBAKN,UAAU,EAAA,CAAA;0BAHTA,QAAK;;0BACLD,cAAW;2BAAC,oBAAoB,CAAA;;0BAChCA,cAAW;2BAAC,mBAAmB,CAAA;;;AELlC,QAAA,gBAAA,kBAAA,YAAA;IAAA,IAAA,SAAA,gBAAA,GAAA;;;;2JAAa,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAAX,aAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;IAAhB,mBAAA,gBAAA,CAAA,IAAA,GAAAA,aAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,gBAAgB,oGCR7B,2CACA,EAAA,MAAA,EAAA,CAAA,oXAAA,CAAA,EAAA,eAAA,EAAAA,aAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;sHDOa,gBAAgB,EAAA,UAAA,EAAA,CAAA;sBAN5BS,YAAS;IAAC,YAAA,IAAA,EAAA,CAAA;IACT,oBAAA,QAAQ,EAAE,eAAe;IACzB,oBAAA,WAAW,EAAE,0BAA0B;wBACvC,SAAS,EAAE,CAAC,0BAA0B,CAAC;wBACvC,eAAe,EAAEC,0BAAuB,CAAC,MAAM;qBAChD,CAAA;kCAGC,SAAS,EAAA,CAAA;0BADRE,QAAK;;;AESR,QAAA,cAAA,kBAAA,YAAA;IANA,IAAA,SAAA,cAAA,GAAA;IAiCE,QAAA,IAAQ,CAAA,QAAA,GAAG,iBAAiB,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,IAAI,EAAE,CAAC;SAInE;IAjBC,IAAA,MAAA,CAAA,cAAA,CACI,cAAW,CAAA,SAAA,EAAA,aAAA,EAAA;IADf,QAAA,GAAA,EAAA,YAAA;gBAEE,OAAO,IAAI,CAAC,QAAQ,GAAG,UAAU,GAAG,IAAI,CAAC;aAC1C;;;IAAA,KAAA,CAAA,CAAA;IAED,IAAA,MAAA,CAAA,cAAA,CAAI,cAAc,CAAA,SAAA,EAAA,gBAAA,EAAA;IAAlB,QAAA,GAAA,EAAA,YAAA;IACE,YAAA,OAAO,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;aAChF;;;IAAA,KAAA,CAAA,CAAA;IAED,IAAA,cAAA,CAAA,SAAA,CAAA,KAAK,GAAL,YAAA;YACE,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;SACpE,CAAA;;;yJAzBU,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAAZ,aAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;IAAd,mBAAA,cAAA,CAAA,IAAA,GAAAA,aAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,cAAc,EA6Bd,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,MAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,OAAA,EAAA,WAAA,EAAA,eAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAAqJ,WAAQ,EAAU,WAAA,EAAA,IAAA,EAAA,IAAA,EAAA3H,aAAU,sDC/CzC,0PASA,EAAA,MAAA,EAAA,CAAA,++DAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAP,aAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,UAAA,EAAA,MAAA,EAAA,MAAA,EAAA,OAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAA,aAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAAX,aAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAAR,aAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;sHDSa,cAAc,EAAA,UAAA,EAAA,CAAA;sBAN1BS,YAAS;IAAC,YAAA,IAAA,EAAA,CAAA;IACT,oBAAA,QAAQ,EAAE,aAAa;IACvB,oBAAA,WAAW,EAAE,wBAAwB;wBACrC,SAAS,EAAE,CAAC,wBAAwB,CAAC;wBACrC,eAAe,EAAEC,0BAAuB,CAAC,MAAM;qBAChD,CAAA;kCAGC,KAAK,EAAA,CAAA;0BADJE,QAAK;oBAKN,IAAI,EAAA,CAAA;0BAFHD,cAAW;2BAAC,iBAAiB,CAAA;;0BAC7BC,QAAK;oBAKN,IAAI,EAAA,CAAA;0BAFHD,cAAW;2BAAC,OAAO,CAAA;;0BACnBC,QAAK;oBAIN,QAAQ,EAAA,CAAA;0BADPA,QAAK;oBAGF,WAAW,EAAA,CAAA;0BADdD,cAAW;2BAAC,eAAe,CAAA;oBAgBpB,eAAe,EAAA,CAAA;0BADtBqC,YAAS;2BAACqG,WAAQ,EAAE,EAAE,IAAI,EAAE3H,aAAU,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;;;AEfzD,QAAA,mBAAA,kBAAA,YAAA;IACE,IAAA,SAAA,mBAAA,CAAoB,kBAAqC,EAAA;IAArC,QAAA,IAAkB,CAAA,kBAAA,GAAlB,kBAAkB,CAAmB;IAezD,QAAA,IAAQ,CAAA,QAAA,GAAY,KAAK,CAAC;IAa1B,QAAA,IAAgB,CAAA,gBAAA,GAAG,MAAM,CAAC;IAG1B,QAAA,IAAoB,CAAA,oBAAA,GAAG,UAAU,CAAC;IA0BlC;;IAEG;IACO,QAAA,IAAA,CAAA,WAAW,GAA+B,IAAI0B,eAAY,EAAgB,CAAC;;;IAS7E,QAAA,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;IAClB,QAAA,IAAM,CAAA,MAAA,GAAqB,EAAE,CAAC;IAC9B,QAAA,IAAA,CAAA,iBAAiB,GAAyB,YAAA,GAAQ,CAAC;IACnD,QAAA,IAAA,CAAA,UAAU,GAAG,YAAA,GAAQ,CAAC;IACtB,QAAA,IAAc,CAAA,cAAA,GAAW,CAAC,CAAC,CAAC;IAC5B,QAAA,IAAM,CAAA,MAAA,GAAkB,IAAI,CAAC;SA1EwB;IAI7D,IAAA,MAAA,CAAA,cAAA,CAAI,mBAAQ,CAAA,SAAA,EAAA,UAAA,EAAA;;IAAZ,QAAA,GAAA,EAAA,YAAA;gBACE,OAAO,IAAI,CAAC,SAAS,CAAC;aACvB;IAED,QAAA,GAAA,EAAA,UAAsB,KAAc,EAAA;IAClC,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;IACvB,YAAA,IAAI,CAAC,+BAA+B,CAAC,KAAK,CAAC,CAAC;aAC7C;;;IALA,KAAA,CAAA,CAAA;IAWD,IAAA,MAAA,CAAA,cAAA,CAAI,mBAAK,CAAA,SAAA,EAAA,OAAA,EAAA;IAAT,QAAA,GAAA,EAAA,YAAA;IACE,YAAA,OAAO,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC;aAC1B;IAED,QAAA,GAAA,EAAA,UAAmB,KAAuB,EAAA;IACxC,YAAA,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM;IAAE,gBAAA,OAAO;IAC5D,YAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;gBACpB,IAAI,CAAC,qBAAqB,EAAE,CAAC;aAC9B;;;IANA,KAAA,CAAA,CAAA;IAcD,IAAA,MAAA,CAAA,cAAA,CAAI,mBAAa,CAAA,SAAA,EAAA,eAAA,EAAA;IAAjB,QAAA,GAAA,EAAA,YAAA;gBACE,OAAO,IAAI,CAAC,cAAc,CAAC;aAC5B;IAED,QAAA,GAAA,EAAA,UAA2B,KAAa,EAAA;gBACtC,IAAI,OAAO,KAAK,KAAK,QAAQ;IAAE,gBAAA,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;gBACvD,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,GAAG;oBAAE,KAAK,GAAG,CAAC,CAAC,CAAC;IACvE,YAAA,IAAI,KAAK,KAAK,IAAI,CAAC,aAAa;oBAAE,OAAO;IACzC,YAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;gBAC5B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,yBAAyB,EAAE,IAAI,IAAI,CAAC;aACxD;;;IARA,KAAA,CAAA,CAAA;IAUD,IAAA,MAAA,CAAA,cAAA,CAAI,mBAAK,CAAA,SAAA,EAAA,OAAA,EAAA;IAAT,QAAA,GAAA,EAAA,YAAA;gBACE,OAAO,IAAI,CAAC,MAAM,CAAC;aACpB;IAED,QAAA,GAAA,EAAA,UAAmB,KAAmB,EAAA;IACpC,YAAA,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;aAC7B;;;IAJA,KAAA,CAAA,CAAA;IAMD,IAAA,MAAA,CAAA,cAAA,CAAY,mBAAQ,CAAA,SAAA,EAAA,UAAA,EAAA;IAApB,QAAA,GAAA,EAAA,YAAA;gBACE,OAAO,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC;aACxD;;;IAAA,KAAA,CAAA,CAAA;IAyBD,IAAA,MAAA,CAAA,cAAA,CAAY,mBAA6B,CAAA,SAAA,EAAA,+BAAA,EAAA;IAAzC,QAAA,GAAA,EAAA,YAAA;IACE,YAAA,QACE,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM;oBAClB,CAAC,IAAI,CAAC,mBAAmB;IACzB,gBAAA,IAAI,CAAC,qBAAqB;IAC1B,gBAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,GAAG,CAAC,EACrC;aACH;;;IAAA,KAAA,CAAA,CAAA;;;IAKD,IAAA,mBAAA,CAAA,SAAA,CAAA,KAAK,GAAL,YAAA;IACE,QAAA,IAAM,aAAa,GAAG,UAAC,MAAiC,IACtD,OAAA,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,UAAC,KAAK,IAAK,OAAA,CAAC,KAAK,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,KAAK,CAAC,cAAc,KAAK,CAAC,CAAC,CAA3D,EAA2D,CAAC,CAAA,EAAA,CAAC;IAChG,QAAA,IAAM,SAAS,GAAG,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,aAAa,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;IAChG,QAAA,SAAS,IAAI,SAAS,CAAC,KAAK,EAAE,CAAC;SAChC,CAAA;IAED,IAAA,mBAAA,CAAA,SAAA,CAAA,kBAAkB,GAAlB,YAAA;YACE,IAAI,CAAC,sCAAsC,EAAE,CAAC;YAC9C,IAAI,CAAC,8BAA8B,EAAE,CAAC;SACvC,CAAA;QAED,mBAAgB,CAAA,SAAA,CAAA,gBAAA,GAAhB,UAAiB,EAAO,EAAA;IACtB,QAAA,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;SAC7B,CAAA;QAED,mBAAiB,CAAA,SAAA,CAAA,iBAAA,GAAjB,UAAkB,EAAO,EAAA;IACvB,QAAA,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;SACtB,CAAA;QAED,mBAAgB,CAAA,SAAA,CAAA,gBAAA,GAAhB,UAAiB,UAAmB,EAAA;IAClC,QAAA,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC;IAC3B,QAAA,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE,CAAC;SACxC,CAAA;QAED,mBAAU,CAAA,SAAA,CAAA,UAAA,GAAV,UAAW,KAAU,EAAA;IACnB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACnB,QAAA,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE,CAAC;SACxC,CAAA;;;QAKD,mBAAgB,CAAA,SAAA,CAAA,gBAAA,GAAhB,UAAiB,IAAkB,EAAA;IACjC,QAAA,IAAI,CAAC,IAAI;IAAE,YAAA,OAAO,IAAI,CAAC;IACvB,QAAA,OAAO,OAAO,IAAI,KAAK,QAAQ,GAAG,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;SACtE,CAAA;QAED,mBAAyB,CAAA,SAAA,CAAA,yBAAA,GAAzB,UAA0B,IAAkB,EAAA;IAC1C,QAAA,IAAI,CAAC,IAAI;IAAE,YAAA,OAAO,SAAS,CAAC;IAC5B,QAAA,OAAO,OAAO,IAAI,KAAK,QAAQ,GAAG,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;SAC/E,CAAA;IAED,IAAA,MAAA,CAAA,cAAA,CAAI,mBAAS,CAAA,SAAA,EAAA,WAAA,EAAA;IAAb,QAAA,GAAA,EAAA,YAAA;gBACE,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,6BAA6B,CAAC;aACpE;;;IAAA,KAAA,CAAA,CAAA;QAED,mBAAS,CAAA,SAAA,CAAA,SAAA,GAAT,UAAU,KAAmB,EAAA;IAC3B,QAAA,IAAI,KAAK,KAAK,IAAI,CAAC,MAAM;gBAAE,OAAO;IAClC,QAAA,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IAC5B,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC7B,QAAA,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;SAC/B,CAAA;IAGD,IAAA,mBAAA,CAAA,SAAA,CAAA,YAAY,GAAZ,YAAA;YACE,IAAI,CAAC,UAAU,EAAE,CAAC;SACnB,CAAA;;;IAKO,IAAA,mBAAA,CAAA,SAAA,CAAA,uBAAuB,GAAvB,YAAA;YACN,IAAI,CAAC,IAAI,CAAC,QAAQ;gBAAE,OAAO,CAAC,CAAC,CAAC;YAC9B,OAAO,IAAI,CAAC,6BAA6B;kBACrC,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,KAAK,CAAC;kBACzC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACpC,CAAA;QAEO,mBAAwB,CAAA,SAAA,CAAA,wBAAA,GAAxB,UAAyB,KAAmB,EAAA;IAClD,QAAA,IAAI,aAAa,GAAG,CAAC,CAAC,CAAC;IACvB,QAAA,IAAI,CAAC,qBAAqB;gBACxB,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,UAAC,KAAK,EAAE,CAAC,EAAA;IACvC,gBAAA,IAAM,KAAK,GAAG,KAAK,CAAC,KAAK,KAAK,KAAK,CAAC;IACpC,gBAAA,IAAI,KAAK,EAAE;wBACT,aAAa,GAAG,CAAC,CAAC;IACnB,iBAAA;IACD,gBAAA,OAAO,KAAK,CAAC;IACf,aAAC,CAAC,CAAC;IACL,QAAA,OAAO,aAAa,CAAC;SACtB,CAAA;IAEO,IAAA,mBAAA,CAAA,SAAA,CAAA,yBAAyB,GAAzB,YAAA;IACN,QAAA,IAAI,IAAI,CAAC,aAAa,KAAK,CAAC,CAAC;gBAAE,OAAO;YACtC,OAAO,IAAI,CAAC,6BAA6B;kBACrC,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAAC,aAAa,CAAC;kBACpD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;SACpC,CAAA;QAEO,mBAA2B,CAAA,SAAA,CAAA,2BAAA,GAA3B,UAA4B,KAAa,EAAA;IAC/C,QAAA,IAAM,KAAK,GACT,IAAI,CAAC,qBAAqB;gBAC1B,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,UAAC,CAAC,EAAE,CAAC,EAAA;oBACnC,OAAO,CAAC,KAAK,KAAK,CAAC;IACrB,aAAC,CAAC,CAAC;IACL,QAAA,OAAO,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC;SAC7B,CAAA;IAEO,IAAA,mBAAA,CAAA,SAAA,CAAA,sCAAsC,GAAtC,YAAA;YACN,IAAI,IAAI,CAAC,6BAA6B,EAAE;IACtC,YAAA,IAAI,CAAC,qBAAqB,EAAE,CAAC;IAC9B,SAAA;SACF,CAAA;IAEO,IAAA,mBAAA,CAAA,SAAA,CAAA,8BAA8B,GAA9B,YAAA;YAAA,IAUP,KAAA,GAAA,IAAA,CAAA;IATC,QAAA,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,SAAS,CAAC,YAAA;gBAC3C,KAAI,CAAC,gCAAgC,EAAE,CAAC;gBAExC,IAAI,KAAI,CAAC,QAAQ,EAAE;;;IAGjB,gBAAA,UAAU,CAAC,YAAA,EAAM,OAAA,KAAI,CAAC,+BAA+B,CAAC,KAAI,CAAC,QAAQ,CAAC,CAAnD,EAAmD,CAAC,CAAC;IACvE,aAAA;IACH,SAAC,CAAC,CAAC;SACJ,CAAA;IAEO,IAAA,mBAAA,CAAA,SAAA,CAAA,qBAAqB,GAArB,YAAA;YACN,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACjB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,uBAAuB,EAAE,CAAC;IACtD,SAAA;IAED,QAAA,IAAM,sBAAsB,GAAG,IAAI,CAAC,yBAAyB,EAAE,CAAC;IAChE,QAAA,IAAI,CAAC,MAAM,GAAG,sBAAsB,KAAK,SAAS,GAAG,sBAAsB,GAAG,IAAI,CAAC;SACpF,CAAA;IAEO,IAAA,mBAAA,CAAA,SAAA,CAAA,gCAAgC,GAAhC,YAAA;IACN,QAAA,IAAI,CAAC,CAAC,IAAI,CAAC,mBAAmB;IAAE,YAAA,OAAO;IACvC,QAAA,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE,CAAC;IACvC,QAAA,IAAI,CAAC,qBAAqB,EAAE,CAAC;SAC9B,CAAA;QAEO,mBAAe,CAAA,SAAA,CAAA,eAAA,GAAf,UAAgB,KAAmB,EAAA;IACzC,QAAA,IAAI,KAAK,KAAK,IAAI,CAAC,MAAM;IAAE,YAAA,OAAO;IAClC,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACpB,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,uBAAuB,EAAE,CAAC;SACtD,CAAA;QAEO,mBAA+B,CAAA,SAAA,CAAA,+BAAA,GAA/B,UAAgC,UAAmB,EAAA;YAAnD,IAMP,KAAA,GAAA,IAAA,CAAA;YALC,IAAI,CAAC,IAAI,CAAC,qBAAqB,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,MAAM;gBAAE,OAAO;YAC9E,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,UAAC,KAAK,EAAE,KAAK,EAAA;;IAE9C,YAAA,KAAK,CAAC,QAAQ,GAAG,UAAU,IAAI,KAAI,CAAC,yBAAyB,CAAC,KAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;IACnF,SAAC,CAAC,CAAC;SACJ,CAAA;;;8JA5OU,mBAAmB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAApD,aAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAAA,aAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;IAAnB,mBAAA,mBAAA,CAAA,IAAA,GAAAA,aAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,mBAAmB,EATnB,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,UAAA,EAAA,KAAA,EAAA,OAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,aAAA,EAAA,eAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,EAAA,UAAA,EAAA,EAAA,aAAA,EAAA,eAAA,EAAA,EAAA,EAAA,SAAA,EAAA;IACT,QAAA;IACE,YAAA,OAAO,EAAEsH,uBAAiB;IAC1B,YAAA,WAAW,EAAE,mBAAmB;IAChC,YAAA,KAAK,EAAE,IAAI;IACZ,SAAA;SACF,EAoEa,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,qBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,yBAAyB,2BAAUE,cAAW,EAAA,EAAA,EAAA,YAAA,EAAA,uBAAA,EAAA,SAAA,EAa3C,cAAc,EAFjB,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,cAAA,EAAA,SAAA,EAAA,cAAc,2DC5G9B,2yBAwBA,EAAA,MAAA,EAAA,CAAA,yDAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAArG,aAAA,CAAA,aAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,qBAAA,EAAA,MAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAmI,cAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,MAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAnC,aAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAhG,aAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,mEAAA,EAAA,EAAA,EAAA,IAAA,EAAAgG,aAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,aAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAAnH,aAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;sHDQa,mBAAmB,EAAA,UAAA,EAAA,CAAA;sBAb/BS,YAAS;IAAC,YAAA,IAAA,EAAA,CAAA;IACT,oBAAA,QAAQ,EAAE,mBAAmB;IAC7B,oBAAA,WAAW,EAAE,8BAA8B;wBAC3C,MAAM,EAAE,CAAC,yDAAyD,CAAC;IACnE,oBAAA,SAAS,EAAE;IACT,wBAAA;IACE,4BAAA,OAAO,EAAE6G,uBAAiB;IAC1B,4BAAA,WAAW,EAAqB,mBAAA;IAChC,4BAAA,KAAK,EAAE,IAAI;IACZ,yBAAA;IACF,qBAAA;wBACD,eAAe,EAAE5G,0BAAuB,CAAC,MAAM;qBAChD,CAAA;uHAUc,QAAQ,EAAA,CAAA;0BAApBE,QAAK;oBAON,QAAQ,EAAA,CAAA;0BAFPD,cAAW;2BAAC,aAAa,CAAA;;0BACzBC,QAAK;oBAOO,KAAK,EAAA,CAAA;0BAAjBA,QAAK;oBAON,gBAAgB,EAAA,CAAA;0BADfA,QAAK;oBAIN,oBAAoB,EAAA,CAAA;0BADnBA,QAAK;oBAOO,aAAa,EAAA,CAAA;0BAAzBA,QAAK;oBAYO,KAAK,EAAA,CAAA;0BAAjBA,QAAK;oBAWI,WAAW,EAAA,CAAA;0BAApB4C,SAAM;oBAKP,mBAAmB,EAAA,CAAA;0BADlB7B,eAAY;oBAAC,IAAA,EAAA,CAAA,yBAAyB,EAAE,EAAE,IAAI,EAAE6F,cAAW,EAAE,CAAA;oBAYtD,YAAY,EAAA,CAAA;0BADnBzE,eAAY;2BAAC,cAAc,CAAA;oBAGpB,qBAAqB,EAAA,CAAA;0BAD5BU,kBAAe;oBAAC,IAAA,EAAA,CAAA,cAAc,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAA;oBAsEtD,YAAY,EAAA,CAAA;0BADXjC,eAAY;2BAAC,SAAS,CAAA;;;AE3KzB,QAAA,yBAAA,kBAAA,YAAA;IANA,IAAA,SAAA,yBAAA,GAAA;IAQW,QAAA,IAAQ,CAAA,QAAA,GAAqB,MAAM,CAAC;SAC9C;;;oKAHY,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAAxB,aAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;IAAzB,mBAAA,yBAAA,CAAA,IAAA,GAAAA,aAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,yBAAyB,2HCRtC,uCACA,EAAA,MAAA,EAAA,CAAA,0JAAA,CAAA,EAAA,eAAA,EAAAA,aAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;sHDOa,yBAAyB,EAAA,UAAA,EAAA,CAAA;sBANrCS,YAAS;IAAC,YAAA,IAAA,EAAA,CAAA;wBACT,eAAe,EAAEC,0BAAuB,CAAC,MAAM;IAC/C,oBAAA,QAAQ,EAAE,0BAA0B;wBACpC,SAAS,EAAE,CAAC,qCAAqC,CAAC;IAClD,oBAAA,WAAW,EAAE,qCAAqC;qBACnD,CAAA;kCAEU,IAAI,EAAA,CAAA;0BAAZE,QAAK;oBACG,QAAQ,EAAA,CAAA;0BAAhBA,QAAK;;;AECR,QAAA,qBAAA,kBAAA,YAAA;IAAA,IAAA,SAAA,qBAAA,GAAA;;IAME,IAAA,MAAA,CAAA,cAAA,CAAI,qBAAI,CAAA,SAAA,EAAA,MAAA,EAAA;IAAR,QAAA,GAAA,EAAA,YAAA;IACE,YAAA,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE;IAC7B,gBAAA,OAAO,SAAS,CAAC;IAClB,aAAA;IACD,YAAA,IAAM,WAAW,GAAG,IAAI,CAAC,SAAS,GAAG,GAAI,GAAA,IAAI,CAAC,SAAW,GAAG,EAAE,CAAC;IAC/D,YAAA,OAAO,KAAG,IAAI,CAAC,MAAM,GAAG,WAAa,CAAC;aACvC;;;IAAA,KAAA,CAAA,CAAA;IAED,IAAA,qBAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;YAAA,IAQC,KAAA,GAAA,IAAA,CAAA;YAPC,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACjB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;gBACnE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;IACzC,YAAA,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,UAAC,KAAK,EAAA;IACxE,gBAAA,KAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;IAC7B,aAAC,CAAC,CAAC;IACJ,SAAA;SACF,CAAA;IAED,IAAA,qBAAA,CAAA,SAAA,CAAA,WAAW,GAAX,YAAA;YACE,IAAI,IAAI,CAAC,wBAAwB,EAAE;IACjC,YAAA,IAAI,CAAC,wBAAwB,CAAC,WAAW,EAAE,CAAC;IAC7C,SAAA;SACF,CAAA;;;gKA5BU,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAAZ,aAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;IAArB,mBAAA,qBAAA,CAAA,IAAA,GAAAA,aAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,qBAAqB,wGCXlC,yEACA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAuJ,yBAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;sHDUa,qBAAqB,EAAA,UAAA,EAAA,CAAA;sBAJjC9I,YAAS;IAAC,YAAA,IAAA,EAAA,CAAA;IACT,oBAAA,QAAQ,EAAE,qBAAqB;IAC/B,oBAAA,WAAW,EAAE,gCAAgC;qBAC9C,CAAA;kCAEU,QAAQ,EAAA,CAAA;0BAAhBG,QAAK;;;AEDI4I,+BAGX;IAHD,CAAA,UAAY,SAAS,EAAA;IACnB,IAAA,SAAA,CAAA,QAAA,CAAA,GAAA,IAAa,CAAA;IACb,IAAA,SAAA,CAAA,OAAA,CAAA,GAAA,IAAY,CAAA;IACd,CAAC,EAHWA,iBAAS,KAATA,iBAAS,GAGpB,EAAA,CAAA,CAAA,CAAA;AASD,QAAA,cAAA,kBAAA,YAAA;IAPA,IAAA,SAAA,cAAA,GAAA;IAaE,QAAA,IAAA,CAAA,WAAW,GAAG,IAAIpG,eAAY,EAAU,CAAC;IAWzC,QAAA,IAAA,CAAA,IAAI,GAA+BoG,iBAAS,CAAC,KAAK,CAAC;IAenD,QAAA,IAAY,CAAA,YAAA,GAAiB,KAAK,CAAC;IAInC,QAAA,IAAW,CAAA,WAAA,GAAiB,KAAK,CAAC;SA+BnC;IA3DC,IAAA,MAAA,CAAA,cAAA,CAAa,cAAI,CAAA,SAAA,EAAA,MAAA,EAAA;IAAjB,QAAA,GAAA,EAAA,UAAkB,KAAa,EAAA;gBAC7B,IAAM,WAAW,GAAG,cAAc,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;IAC7D,YAAA,IAAI,WAAW,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;IAClC,gBAAA,IAAI,CAAC,SAAS,GAAG,WAAW,CAAC;IAC9B,aAAA;aACF;;;IAAA,KAAA,CAAA,CAAA;QAsCD,cAAQ,CAAA,SAAA,CAAA,QAAA,GAAR,UAAS,KAAa,EAAA;IACpB,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAC9B,CAAA;QAID,cAAW,CAAA,SAAA,CAAA,WAAA,GAAX,UAAY,MAAwB,EAAA;YAApC,IAGC,KAAA,GAAA,IAAA,CAAA;;IADC,QAAA,UAAU,CAAC,YAAM,EAAA,OAAA,KAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAnC,EAAmC,CAAC,CAAC;SACvD,CAAA;QAED,cAAW,CAAA,SAAA,CAAA,WAAA,GAAX,UAAY,OAAsB,EAAA;YAChC,IAAI,OAAO,CAAC,KAAK,EAAE;gBACjB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IACnD,SAAA;SACF,CAAA;;;IAjEc,cAAA,CAAA,kBAAkB,GAAG;IAClC,IAAA,MAAM,EAAE,SAAS;IACjB,IAAA,MAAM,EAAE,QAAQ;KACjB,CAAC;yJAJS,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAAxJ,aAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;IAAd,mBAAA,cAAA,CAAA,IAAA,GAAAA,aAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,cAAc,8tBAFf,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,65CAAA,CAAA,EAAA,eAAA,EAAAA,aAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;sHAED,cAAc,EAAA,UAAA,EAAA,CAAA;sBAP1BS,YAAS;IAAC,YAAA,IAAA,EAAA,CAAA;wBACT,eAAe,EAAEC,0BAAuB,CAAC,MAAM;;IAE/C,oBAAA,QAAQ,EAAE,oBAAoB;wBAC9B,SAAS,EAAE,CAAC,wBAAwB,CAAC;IACrC,oBAAA,QAAQ,EAAE,EAAE;qBACb,CAAA;kCASc,IAAI,EAAA,CAAA;0BAAhBE,QAAK;oBASN,IAAI,EAAA,CAAA;0BAFHD,cAAW;2BAAC,OAAO,CAAA;;0BACnBC,QAAK;oBAQN,UAAU,EAAA,CAAA;0BAFTD,cAAW;2BAAC,kBAAkB,CAAA;;0BAC9BC,QAAK;oBAKN,QAAQ,EAAA,CAAA;0BAFPD,cAAW;2BAAC,aAAa,CAAA;;0BACzBC,QAAK;oBAKN,YAAY,EAAA,CAAA;0BAFXD,cAAW;2BAAC,mBAAmB,CAAA;;0BAC/BC,QAAK;oBAKN,WAAW,EAAA,CAAA;0BAFVD,cAAW;2BAAC,kBAAkB,CAAA;;0BAC9BC,QAAK;oBAKN,KAAK,EAAA,CAAA;0BAFJD,cAAW;2BAAC,YAAY,CAAA;;0BACxBC,QAAK;oBAKN,SAAS,EAAA,CAAA;0BAFRD,cAAW;2BAAC,gBAAgB,CAAA;;0BAC5BC,QAAK;oBAKN,SAAS,EAAA,CAAA;0BAFRD,cAAW;2BAAC,gBAAgB,CAAA;;0BAC5BC,QAAK;oBAIN,QAAQ,EAAA,CAAA;0BADPY,eAAY;2BAAC,OAAO,EAAE,CAAC,qBAAqB,CAAC,CAAA;oBAO9C,WAAW,EAAA,CAAA;0BAFVA,eAAY;2BAAC,OAAO,EAAE,CAAC,eAAe,CAAC,CAAA;;0BACvCA,eAAY;2BAAC,KAAK,EAAE,CAAC,eAAe,CAAC,CAAA;;;AC7DxC,QAAA,iBAAA,kBAAA,YAAA;IAPA,IAAA,SAAA,iBAAA,GAAA;IAQE,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI4B,eAAY,EAAU,CAAC;IAiBzC,QAAA,IAAY,CAAA,YAAA,GAAiB,KAAK,CAAC;IAInC,QAAA,IAAW,CAAA,WAAA,GAAiB,KAAK,CAAC;SAuBnC;QAhBC,iBAAQ,CAAA,SAAA,CAAA,QAAA,GAAR,UAAS,KAAa,EAAA;IACpB,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAC9B,CAAA;QAID,iBAAW,CAAA,SAAA,CAAA,WAAA,GAAX,UAAY,MAAwB,EAAA;YAApC,IAGC,KAAA,GAAA,IAAA,CAAA;;IADC,QAAA,UAAU,CAAC,YAAM,EAAA,OAAA,KAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAnC,EAAmC,CAAC,CAAC;SACvD,CAAA;QAED,iBAAW,CAAA,SAAA,CAAA,WAAA,GAAX,UAAY,OAAsB,EAAA;YAChC,IAAI,OAAO,CAAC,KAAK,EAAE;gBACjB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IACnD,SAAA;SACF,CAAA;;;4JA5CU,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAApD,aAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;IAAjB,mBAAA,iBAAA,CAAA,IAAA,GAAAA,aAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,iBAAiB,0lBClB9B,wGAEA,EAAA,MAAA,EAAA,CAAA,y5BAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAmB,aAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAAnB,aAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;sHDgBa,iBAAiB,EAAA,UAAA,EAAA,CAAA;sBAP7BS,YAAS;IAAC,YAAA,IAAA,EAAA,CAAA;wBACT,eAAe,EAAEC,0BAAuB,CAAC,MAAM;;IAE/C,oBAAA,QAAQ,EAAE,0BAA0B;wBACpC,SAAS,EAAE,CAAC,2BAA2B,CAAC;IACxC,oBAAA,WAAW,EAAE,2BAA2B;qBACzC,CAAA;kCAIU,KAAK,EAAA,CAAA;0BAAbE,QAAK;oBAON,UAAU,EAAA,CAAA;0BAFTD,cAAW;2BAAC,kBAAkB,CAAA;;0BAC9BC,QAAK;oBAKN,QAAQ,EAAA,CAAA;0BAFPD,cAAW;2BAAC,aAAa,CAAA;;0BACzBC,QAAK;oBAKN,YAAY,EAAA,CAAA;0BAFXD,cAAW;2BAAC,mBAAmB,CAAA;;0BAC/BC,QAAK;oBAKN,WAAW,EAAA,CAAA;0BAFVD,cAAW;2BAAC,kBAAkB,CAAA;;0BAC9BC,QAAK;oBAKN,SAAS,EAAA,CAAA;0BAFRD,cAAW;2BAAC,gBAAgB,CAAA;;0BAC5BC,QAAK;oBAIN,QAAQ,EAAA,CAAA;0BADPY,eAAY;2BAAC,OAAO,EAAE,CAAC,qBAAqB,CAAC,CAAA;oBAO9C,WAAW,EAAA,CAAA;0BAFVA,eAAY;2BAAC,OAAO,EAAE,CAAC,eAAe,CAAC,CAAA;;0BACvCA,eAAY;2BAAC,KAAK,EAAE,CAAC,eAAe,CAAC,CAAA;;;AEvBxC,QAAA,kBAAA,kBAAA,YAAA;IAoBE,IAAA,SAAA,kBAAA,CACE,UAAmC,EAC3B,QAAyB,EACzB,QAAmB,EACnB,SAAoB,EAAA;IAFpB,QAAA,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAiB;IACzB,QAAA,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAW;IACnB,QAAA,IAAS,CAAA,SAAA,GAAT,SAAS,CAAW;IArBtB,QAAA,IAAY,CAAA,YAAA,GAAG,KAAK,CAAC;IAI7B,QAAA,IAAQ,CAAA,QAAA,GAAG,iBAAiB,CAAC,QAAQ,CAAC,wBAAwB,CAAC,CAAC,IAAI,EAAE,CAAC;IAmBrE,QAAA,IAAI,CAAC,OAAO,GAAG,UAAU,CAAC,aAAa,CAAC;SACzC;IAED,IAAA,MAAA,CAAA,cAAA,CAAI,kBAAmB,CAAA,SAAA,EAAA,qBAAA,EAAA;IAAvB,QAAA,GAAA,EAAA,YAAA;IACE,YAAA,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;aAC1D;;;IAAA,KAAA,CAAA,CAAA;IAEO,IAAA,kBAAA,CAAA,SAAA,CAAA,iBAAiB,GAAjB,YAAA;;;;IAIN,QAAA,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,QAAQ,CAAC,aAAa,CAChD,IAAI,WAAW,CAAC,iBAAiB,EAAE;gBACjC,MAAM,EAAE,IAAI,CAAC,OAAO;IACrB,SAAA,CAAC,CACH,CAAC;SACH,CAAA;IAGD,IAAA,kBAAA,CAAA,SAAA,CAAA,oBAAoB,GAApB,YAAA;YACE,IAAI,CAAC,iBAAiB,EAAE,CAAC;SAC1B,CAAA;IAED,IAAA,kBAAA,CAAA,SAAA,CAAA,YAAY,GAAZ,YAAA;YACE,IAAI,CAAC,mBAAmB,IAAI,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,CAAC;SAC9D,CAAA;IAEM,IAAA,kBAAA,CAAA,SAAA,CAAA,KAAK,GAAL,YAAA;YACL,IAAI,CAAC,IAAI,CAAC,YAAY;gBAAE,OAAO;YAE/B,IAAI,IAAI,CAAC,OAAO,EAAE;;;IAGhB,YAAA,IAAM,UAAU,GAAG,IAAI,UAAU,CAAC,YAAY,CAAC,CAAC;IAChD,YAAA,IAAM,QAAQ,GAAG,IAAI,UAAU,CAAC,UAAU,CAAC,CAAC;IAC5C,YAAA,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;IAC5C,YAAA,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IAC3C,SAAA;IAAM,aAAA;IACL,YAAA,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;IAC3B,SAAA;SACF,CAAA;IAED,IAAA,kBAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;YACE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;SACxC,CAAA;IAED,IAAA,kBAAA,CAAA,SAAA,CAAA,kBAAkB,GAAlB,YAAA;IACE,QAAA,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,iBAAiB,EAAE;IACxC,YAAA,IAAI,CAAC,QAAQ,CAAC,YAAY,CACxB,IAAI,CAAC,iBAAiB,CAAC,aAAa,EACpC,iBAAiB,EACjB,IAAI,CAAC,QAAQ,CACd,CAAC;IACH,SAAA;SACF,CAAA;IAED,IAAA,kBAAA,CAAA,SAAA,CAAA,qBAAqB,GAArB,YAAA;IACE,QAAA,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;gBACtB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAC;IACnE,SAAA;;;YAID,IACE,CAAC,IAAI,CAAC,YAAY;gBAClB,IAAI,CAAC,OAAO,CAAC,WAAW;gBACxB,CAAC,CAAC,IAAI,CAAC,YAAY;IACnB,YAAA,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,EAC3B;;IAEA,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;gBACzB,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAC1B,SAAA;SACF,CAAA;IAED,IAAA,kBAAA,CAAA,SAAA,CAAA,WAAW,GAAX,YAAA;;;;IAIE,QAAA,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,QAAQ,CAAC,aAAa,CAChD,IAAI,WAAW,CAAC,mBAAmB,EAAE;gBACnC,MAAM,EAAE,IAAI,CAAC,OAAO;IACrB,SAAA,CAAC,CACH,CAAC;SACH,CAAA;;;6JA9GU,kBAAkB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAxB,aAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAyJ,eAAA,EAAA,EAAA,EAAA,KAAA,EAAAzJ,aAAA,CAAA,SAAA,EAAA,EAAA,EAAA,KAAA,EAAAmC,SAAA,EAAA,CAAA,EAAA,MAAA,EAAAnC,aAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;IAAlB,mBAAA,kBAAA,CAAA,IAAA,GAAAA,aAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,kBAAkB,0NAYf,qBAAqB,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,qBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EACrB,mBAAmB,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,mBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EACnB,mBAAmB,EAAU,WAAA,EAAA,IAAA,EAAA,IAAA,EAAA0B,aAAU,EAGvC,EAAA,EAAA,YAAA,EAAA,OAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,cAAc,2BAAUA,aAAU,EAAA,EAAA,EAAA,YAAA,EAAA,UAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAClC,iBAAiB,EAAU,WAAA,EAAA,IAAA,EAAA,IAAA,EAAAA,aAAU,wCC/CrD,uxCAuCA,EAAA,MAAA,EAAA,CAAA,mZAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAgI,yBAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAhH,aAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,aAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA1C,aAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;sHDVa,kBAAkB,EAAA,UAAA,EAAA,CAAA;sBAN9BS,YAAS;IAAC,YAAA,IAAA,EAAA,CAAA;wBACT,eAAe,EAAEC,0BAAuB,CAAC,MAAM;IAC/C,oBAAA,QAAQ,EAAE,kBAAkB;wBAC5B,SAAS,EAAE,CAAC,6BAA6B,CAAC;IAC1C,oBAAA,WAAW,EAAE,6BAA6B;qBAC3C,CAAA;mMAUU,KAAK,EAAA,CAAA;0BAAbE,QAAK;oBACG,OAAO,EAAA,CAAA;0BAAfA,QAAK;oBAEkD,OAAO,EAAA,CAAA;0BAA9De,eAAY;oBAAC,IAAA,EAAA,CAAA,qBAAqB,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAA;oBACX,mBAAmB,EAAA,CAAA;0BAA7DA,eAAY;2BAAC,mBAAmB,CAAA;oBAEzB,iBAAiB,EAAA,CAAA;0BADxBA,eAAY;oBAAC,IAAA,EAAA,CAAA,mBAAmB,EAAE,EAAE,IAAI,EAAED,aAAU,EAAE,CAAA;oBAGH,KAAK,EAAA,CAAA;0BAAxDC,eAAY;oBAAC,IAAA,EAAA,CAAA,cAAc,EAAE,EAAE,IAAI,EAAED,aAAU,EAAE,CAAA;oBACK,QAAQ,EAAA,CAAA;0BAA9DC,eAAY;oBAAC,IAAA,EAAA,CAAA,iBAAiB,EAAE,EAAE,IAAI,EAAED,aAAU,EAAE,CAAA;oBA2BrD,oBAAoB,EAAA,CAAA;0BADnBF,eAAY;2BAAC,wBAAwB,CAAA;;;AEzDxC,QAAA,kBAAA,kBAAA,YAAA;IAQE,IAAA,SAAA,kBAAA,CACU,UAAsB,EACtB,QAAmB,EACA,MAAc,EAAA;IAFjC,QAAA,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;IACtB,QAAA,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAW;IACA,QAAA,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;;YAGzC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;SACvD;IAbD,IAAA,kBAAA,CAAA,SAAA,CAAA,OAAO,GAAP,YAAA;YACE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;SACtD,CAAA;IAaD,IAAA,kBAAA,CAAA,SAAA,CAAA,eAAe,GAAf,YAAA;YACE,IAAI,CAAC,QAAQ,EAAE,CAAC;SACjB,CAAA;IAEO,IAAA,kBAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;IACN,QAAA,IAAM,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;YAC1C,IAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;;IAGrD,QAAA,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,aAAa,EAAE,WAAW,CAAC,CAAC;;YAGtF,IAAImI,6BAAS,CAAC,UAAU,EAAE;IACxB,YAAA,WAAW,EAAA,WAAA;IACX,YAAA,WAAW,EAAA,WAAA;aACZ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;;YAGvC,IAAI,CAAC,oBAAoB,EAAE,CAAC;SAC7B,CAAA;;IAGO,IAAA,kBAAA,CAAA,SAAA,CAAA,cAAc,GAAd,YAAA;IACN,QAAA,IAAM,gBAAgB,GAAGC,sBAAmB,CAAC,IAAI,CAAC,MAAM,EAAEC,cAAW,CAAC,KAAK,CAAC,CAAC;IAC7E,QAAA,OAAO,gBAAgB;IACpB,aAAA,WAAW,EAAE;IACb,aAAA,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC;IACnB,aAAA,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC;IACnB,aAAA,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;SAC1B,CAAA;QAEO,kBAAc,CAAA,SAAA,CAAA,cAAA,GAAd,UAAe,WAAmB,EAAA;YACxC,OAAO,IAAI,CAAC,MAAM,KAAK,IAAI,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC;SAC9E,CAAA;IAEO,IAAA,kBAAA,CAAA,SAAA,CAAA,oBAAoB,GAApB,YAAA;IACN,QAAA,IAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;YAChE,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,EAAE,mBAAmB,CAAC,CAAC;YAErD,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YACzD,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;YAExD,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;SAC1D,CAAA;QAEO,kBAAW,CAAA,SAAA,CAAA,WAAA,GAAX,UAAY,OAAoB,EAAA;YACtC,IAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IACnD,QAAA,IAAM,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;YACrC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;YACrD,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC5C,QAAA,OAAO,OAAO,CAAC;SAChB,CAAA;QAEO,kBAAU,CAAA,SAAA,CAAA,UAAA,GAAV,UAAW,KAAa,EAAA;YAC9B,IAAI,CAAC,IAAI,CAAC,cAAc;gBAAE,OAAO;YACjC,IAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;IACjD,QAAA,IAAI,CAAC,cAAc,CAAC,SAAS,GAAG,KAAK;IACnC,cAAE,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;kBACpD,EAAE,CAAC;SACR,CAAA;;;IA5EU,mBAAA,kBAAA,CAAA,IAAA,GAAA7J,aAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAAA,aAAA,EAAA,IAAA,EAAA,kBAAkB,2FAWnBgH,YAAS,EAAA,CAAA,EAAA,MAAA,EAAAhH,aAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;sIAXR,kBAAkB,EAAA,QAAA,EAAA,8BAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,WAAA,EAAA,EAAA,EAAA,QAAA,EAAAA,aAAA,EAAA,CAAA,CAAA;sHAAlB,kBAAkB,EAAA,UAAA,EAAA,CAAA;sBAH9BC,YAAS;IAAC,YAAA,IAAA,EAAA,CAAA;IACT,oBAAA,QAAQ,EAAE,4BAA4B;qBACvC,CAAA;;;kCAYIsE,SAAM;mCAACyC,YAAS,CAAA;;6BATnB,OAAO,EAAA,CAAA;0BADNxF,eAAY;2BAAC,OAAO,CAAA;;;ACKvB,QAAA,oBAAA,kBAAA,YAAA;QAgCE,SAAoB,oBAAA,CAAA,UAAsB,EAA6B,MAAc,EAAA;IAAjE,QAAA,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;IAA6B,QAAA,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;IA7B5E,QAAA,IAAS,CAAA,SAAA,GAAG,CAAC,CAAC;IACd,QAAA,IAAgB,CAAA,gBAAA,GAAG,KAAK,CAAC;IAkBlC,QAAA,IAAc,CAAA,cAAA,GAAGsI,wBAAqB,CAAC,IAAI,CAAC,MAAM,EAAEC,eAAY,CAAC,KAAK,CAAC,CAAC;IACxE,QAAA,IAAU,CAAA,UAAA,GAAGD,wBAAqB,CAAC,IAAI,CAAC,MAAM,EAAEC,eAAY,CAAC,OAAO,CAAC,CAAC;IAGtE,QAAA,IAAW,CAAA,WAAA,GAAG,KAAK,CAAC;IAIpB,QAAA,IAAA,CAAA,QAAQ,GAAG,UAAC,CAAS,EAAA,GAAO,CAAC;SAE4D;IA1BzF,IAAA,MAAA,CAAA,cAAA,CAAa,oBAAU,CAAA,SAAA,EAAA,YAAA,EAAA;IAAvB,QAAA,GAAA,EAAA,UAAwB,UAAmB,EAAA;IACzC,YAAA,IAAI,CAAC,WAAW,GAAG,UAAU,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;aACtD;;;IAAA,KAAA,CAAA,CAAA;IAED,IAAA,MAAA,CAAA,cAAA,CAAa,oBAAqB,CAAA,SAAA,EAAA,uBAAA,EAAA;IAAlC,QAAA,GAAA,EAAA,UAAmC,QAAgB,EAAA;IACjD,YAAA,IAAI,CAAC,uBAAuB,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,MAAM,CAAC;aACvF;;;IAAA,KAAA,CAAA,CAAA;IAED,IAAA,MAAA,CAAA,cAAA,CAAa,oBAAS,CAAA,SAAA,EAAA,WAAA,EAAA;IAAtB,QAAA,GAAA,EAAA,UAAuB,SAAiB,EAAA;IACtC,YAAA,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;gBAE5B,IAAM,cAAc,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;gBACvD,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;gBACvC,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;aACxC;;;IAAA,KAAA,CAAA,CAAA;IAcD,IAAA,oBAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;;YAEE,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;;YAG3D,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;YAE3D,IAAI,CAAC,QAAQ,EAAE,CAAC;SACjB,CAAA;QAED,oBAAU,CAAA,SAAA,CAAA,UAAA,GAAV,UAAW,GAAW,EAAA;YACpB,IAAI,CAAC,IAAI,CAAC,SAAS;gBAAE,OAAO;IAC5B,QAAA,IAAM,cAAc,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IACjE,QAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;SACzC,CAAA;QAED,oBAAgB,CAAA,SAAA,CAAA,gBAAA,GAAhB,UAAiB,QAAa,EAAA;IAC5B,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;SAC1B,CAAA;IAED,IAAA,oBAAA,CAAA,SAAA,CAAA,iBAAiB,GAAjB,UAAkB,CAAM,EAAA,GAAU,CAAA;IAE1B,IAAA,oBAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;YAAA,IAuBP,KAAA,GAAA,IAAA,CAAA;YAtBC,IAAIJ,6BAAS,CAAC,SAAS,EAAE;IACvB,YAAA,cAAc,EAAE,IAAI,CAAC,uBAAuB,GAAG,EAAE,GAAG,IAAI,CAAC,cAAc;gBACvE,UAAU,EAAE,IAAI,CAAC,UAAU;IAC3B,YAAA,MAAM,EAAE,IAAI,CAAC,UAAU,GAAG,CAAC,GAAG,IAAI,CAAC,SAAS;gBAC5C,GAAG,EAAE,IAAI,CAAC,GAAG;gBACb,GAAG,EAAE,IAAI,CAAC,GAAG;gBACb,UAAU,EAAE,IAAI,CAAC,WAAW;IAC5B,YAAA,cAAc,EAAE;oBACd,KAAK,EAAEG,wBAAqB,CAAC,IAAI,CAAC,MAAM,EAAEC,eAAY,CAAC,SAAS,CAAC;IACjE,gBAAA,IAAI,EAAE,EAAE;IACT,aAAA;gBACD,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;IACvC,YAAA,eAAe,EAAE,KAAK;IACtB,YAAA,eAAe,EAAE,KAAK;IACtB,YAAA,WAAW,EAAE,EAAE;IACf,YAAA,aAAa,EAAE,YAAA;oBACb,IAAI,CAAC,KAAI,CAAC,SAAS;wBAAE,OAAO;oBAC5B,IAAM,aAAa,GAAG,KAAI,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC;IACrD,gBAAA,KAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,KAAI,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC,CAAC;iBAC5D;aACF,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;YACvC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,SAAS,CAAC;SAC1D,CAAA;QAEO,oBAAM,CAAA,SAAA,CAAA,MAAA,GAAN,UAAO,cAAsB,EAAA;YACnC,OAAO,IAAI,CAAC,GAAG,KAAK,SAAS,GAAG,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;SACrF,CAAA;QAEO,oBAAM,CAAA,SAAA,CAAA,MAAA,GAAN,UAAO,cAAsB,EAAA;YACnC,IAAI,CAAC,IAAI,CAAC,UAAU;gBAAE,OAAO;YAC7B,cAAc,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAC3C,QAAA,OAAO,IAAI,CAAC,GAAG,KAAK,SAAS,GAAG,cAAc,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC,CAAC;SAChG,CAAA;;;IAzFU,mBAAA,oBAAA,CAAA,IAAA,GAAA/J,aAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAAA,aAAA,EAAA,IAAA,EAAA,oBAAoB,uDAgCqBgH,YAAS,EAAA,CAAA,EAAA,MAAA,EAAAhH,aAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;IAhClD,mBAAA,oBAAA,CAAA,IAAA,GAAAA,aAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,oBAAoB,EARpB,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,EAAA,GAAA,EAAA,KAAA,EAAA,GAAA,EAAA,KAAA,EAAA,SAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,YAAA,EAAA,qBAAA,EAAA,uBAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,SAAA,EAAA;IACT,QAAA;IACE,YAAA,OAAO,EAAEsH,uBAAiB;IAC1B,YAAA,KAAK,EAAE,IAAI;IACX,YAAA,WAAW,EAAE,oBAAoB;IAClC,SAAA;IACF,KAAA,EAAA,QAAA,EAAAtH,aAAA,EAAA,CAAA,CAAA;sHAEU,oBAAoB,EAAA,UAAA,EAAA,CAAA;sBAXhCC,YAAS;IAAC,YAAA,IAAA,EAAA,CAAA;;IAET,oBAAA,QAAQ,EAAE,sBAAsB;IAChC,oBAAA,SAAS,EAAE;IACT,wBAAA;IACE,4BAAA,OAAO,EAAEqH,uBAAiB;IAC1B,4BAAA,KAAK,EAAE,IAAI;IACX,4BAAA,WAAW,EAAsB,oBAAA;IAClC,yBAAA;IACF,qBAAA;qBACF,CAAA;;;kCAiC8C/C,SAAM;mCAACyC,YAAS,CAAA;;6BA/BpD,GAAG,EAAA,CAAA;0BAAXpG,QAAK;oBACG,GAAG,EAAA,CAAA;0BAAXA,QAAK;oBACG,SAAS,EAAA,CAAA;0BAAjBA,QAAK;oBACG,gBAAgB,EAAA,CAAA;0BAAxBA,QAAK;oBAEO,UAAU,EAAA,CAAA;0BAAtBA,QAAK;oBAIO,qBAAqB,EAAA,CAAA;0BAAjCA,QAAK;oBAIO,SAAS,EAAA,CAAA;0BAArBA,QAAK;;;ACVR,QAAA,iBAAA,kBAAA,YAAA;QAqBE,SAAoB,iBAAA,CAAA,QAAmB,EAA4B,QAAa,EAAA;IAA5D,QAAA,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAW;IAA4B,QAAA,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAK;IApBvE,QAAA,IAAQ,CAAA,QAAA,GAAY,KAAK,CAAC;IAC1B,QAAA,IAAmB,CAAA,mBAAA,GAAgC,OAAO,CAAC;IAE5D,QAAA,IAAe,CAAA,eAAA,GAAY,KAAK,CAAC;IAMjC,QAAA,IAAkB,CAAA,kBAAA,GAAY,KAAK,CAAC;SAWwC;IAhBpF,IAAA,MAAA,CAAA,cAAA,CACI,iBAAc,CAAA,SAAA,EAAA,gBAAA,EAAA;IADlB,QAAA,GAAA,EAAA,YAAA;gBAEE,OAAO,IAAI,CAAC,eAAe,CAAC;aAC7B;;;IAAA,KAAA,CAAA,CAAA;IAGD,IAAA,MAAA,CAAA,cAAA,CACI,iBAAiB,CAAA,SAAA,EAAA,mBAAA,EAAA;IADrB,QAAA,GAAA,EAAA,YAAA;gBAEE,OAAO,IAAI,CAAC,kBAAkB,CAAC;aAChC;;;IAAA,KAAA,CAAA,CAAA;IASD,IAAA,iBAAA,CAAA,SAAA,CAAA,eAAe,GAAf,YAAA;YACE,IAAM,cAAc,GAAG,iBAAiB,CAAC,KAAK,CAAC,IAAI,CAAC,UAAC,IAAI,IAAK,OAAA,IAAI,CAAC,IAAI,KAAK,OAAO,CAArB,EAAqB,CAAC,CAAC;IACrF,QAAA,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC;SACnC,CAAA;IAEO,IAAA,iBAAA,CAAA,SAAA,CAAA,YAAY,GAAZ,UAAa,cAAoB,EAAE,UAAc,EAAA;YAAjD,IAqBP,KAAA,GAAA,IAAA,CAAA;IArB0C,QAAA,IAAA,UAAA,KAAA,KAAA,CAAA,EAAA,EAAA,UAAc,GAAA,CAAA,CAAA,EAAA;YACvD,IAAM,aAAa,GAAG,EAAE,CAAC;YACzB,IAAM,cAAc,GAAG,EAAE,CAAC;IAC1B,QAAA,IAAM,gBAAgB,GAAG,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC;YACzD,IAAI,CAAC,gBAAgB,IAAI,CAAC,cAAc,IAAI,UAAU,IAAI,aAAa,EAAE;gBACvE,OAAO;IACR,SAAA;YACD,IAAI,gBAAgB,CAAC,UAAU,IAAI,gBAAgB,CAAC,UAAU,CAAC,SAAS,EAAE;gBACxE,IAAM,SAAS,GAAG,gBAAgB,CAAC,UAAU,CAAC,aAAa,CAAC,sBAAsB,CAAC,CAAC;IACpF,YAAA,IAAI,SAAS,EAAE;oBACb,IAAM,kBAAkB,GAAG,SAAS,CAAC,UAAU,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAC;;oBAEjF,IAAM,YAAY,GAAI,SAAgC,CAAC;oBACvD,IAAI,YAAY,IAAI,kBAAkB,EAAE;IACtC,oBAAA,YAAY,CAAC,GAAG,GAAG,cAAc,CAAC,GAAG,CAAC;wBACtC,OAAO;IACR,iBAAA;IACF,aAAA;IACF,SAAA;IACD,QAAA,UAAU,EAAE,CAAC;IACb,QAAA,UAAU,CAAC,YAAM,EAAA,OAAA,KAAI,CAAC,YAAY,CAAC,cAAc,EAAE,UAAU,CAAC,CAA7C,EAA6C,EAAE,cAAc,CAAC,CAAC;SACjF,CAAA;IAED,IAAA,iBAAA,CAAA,SAAA,CAAA,kBAAkB,GAAlB,YAAA;YACE,IAAI,IAAI,CAAC,WAAW,EAAE;IACpB,YAAA,IAAI,CAAC,WAAW,CAAC,UAAU,GAAG,IAAI,CAAC;IACpC,SAAA;SACF,CAAA;QAED,iBAAW,CAAA,SAAA,CAAA,WAAA,GAAX,UAAY,GAAW,EAAA;YACrB,GAAG,CAAC,KAAK,EAAE,CAAC;IACZ,QAAA,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;IAC7B,QAAA,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;IAChC,QAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAAC;SACnE,CAAA;QAED,iBAAU,CAAA,SAAA,CAAA,UAAA,GAAV,UAAW,GAAW,EAAA;YAAtB,IAQC,KAAA,GAAA,IAAA,CAAA;IAPC,QAAA,IAAI,CAAC,eAAe,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC;YACtC,IAAI,IAAI,CAAC,eAAe,EAAE;IACxB,YAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAAC;IAChE,SAAA;IAAM,aAAA;IACL,YAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAAC;IACnE,SAAA;IACD,QAAA,UAAU,CAAC,YAAA,EAAM,QAAC,KAAI,CAAC,kBAAkB,GAAG,KAAI,CAAC,cAAc,EAA9C,EAA+C,CAAC,CAAC;SACnE,CAAA;;;IAxEU,mBAAA,iBAAA,CAAA,IAAA,GAAAZ,aAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAAA,aAAA,EAAA,IAAA,EAAA,iBAAiB,sDAqBqBgK,WAAQ,EAAA,CAAA,EAAA,MAAA,EAAAhK,aAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;IArB9C,mBAAA,iBAAA,CAAA,IAAA,GAAAA,aAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,iBAAiB,oSAgBd,oBAAoB,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,cAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAEvBiK,eAAY,EAAwB,WAAA,EAAA,IAAA,EAAA,IAAA,EAAAvI,aAAU,sDC5C3D,qjBAaA,EAAA,MAAA,EAAA,CAAA,wxBAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAP,aAAA,CAAA,WAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,aAAA,CAAA,MAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,MAAA,EAAA,YAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,aAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,WAAA,EAAA,OAAA,EAAA,UAAA,EAAA,UAAA,EAAA,MAAA,EAAA,MAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,MAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,aAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,MAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAX,aAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAAR,aAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;sHDaa,iBAAiB,EAAA,UAAA,EAAA,CAAA;sBAN7BS,YAAS;IAAC,YAAA,IAAA,EAAA,CAAA;IACT,oBAAA,QAAQ,EAAE,iBAAiB;IAC3B,oBAAA,WAAW,EAAE,4BAA4B;wBACzC,SAAS,EAAE,CAAC,4BAA4B,CAAC;wBACzC,eAAe,EAAEC,0BAAuB,CAAC,MAAM;qBAChD,CAAA;;;kCAsB2C6D,SAAM;mCAACyF,WAAQ,CAAA;;6BApBhD,QAAQ,EAAA,CAAA;0BAAhBpJ,QAAK;oBACG,mBAAmB,EAAA,CAAA;0BAA3BA,QAAK;oBAIF,cAAc,EAAA,CAAA;0BADjBD,cAAW;2BAAC,eAAe,CAAA;oBAOxB,iBAAiB,EAAA,CAAA;0BADpBA,cAAW;2BAAC,wBAAwB,CAAA;oBAKkB,WAAW,EAAA,CAAA;0BAAjEgB,eAAY;oBAAC,IAAA,EAAA,CAAA,oBAAoB,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAA;oBAGrD,YAAY,EAAA,CAAA;0BADXqB,YAAS;2BAACiH,eAAY,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAEvI,aAAU,EAAE,CAAA;;;AEpC7D,QAAA,aAAA,kBAAA,YAAA;IANA,IAAA,SAAA,aAAA,GAAA;IAOW,QAAA,IAAI,CAAA,IAAA,GAAuB,IAAI,CAAC;IAChC,QAAA,IAAU,CAAA,UAAA,GACjB,aAAa,CAAC;SAMjB;IAJC,IAAA,MAAA,CAAA,cAAA,CACI,aAAS,CAAA,SAAA,EAAA,WAAA,EAAA;IADb,QAAA,GAAA,EAAA,YAAA;gBAEE,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;aACrC;;;IAAA,KAAA,CAAA,CAAA;;;wJARU,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA1B,aAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;IAAb,mBAAA,aAAA,CAAA,IAAA,GAAAA,aAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,aAAa,sKAJd,6BAA6B,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,w8BAAA,CAAA,EAAA,eAAA,EAAAA,aAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;sHAI5B,aAAa,EAAA,UAAA,EAAA,CAAA;sBANzBS,YAAS;IAAC,YAAA,IAAA,EAAA,CAAA;IACT,oBAAA,QAAQ,EAAE,YAAY;IACtB,oBAAA,QAAQ,EAAE,6BAA6B;wBACvC,SAAS,EAAE,CAAC,uBAAuB,CAAC;wBACpC,eAAe,EAAEC,0BAAuB,CAAC,MAAM;qBAChD,CAAA;kCAEU,IAAI,EAAA,CAAA;0BAAZE,QAAK;oBACG,UAAU,EAAA,CAAA;0BAAlBA,QAAK;oBAIF,SAAS,EAAA,CAAA;0BADZD,cAAW;2BAAC,OAAO,CAAA;;;ICbtB;AACA,QAAA,UAAA,kBAAA,YAAA;IAAA,IAAA,SAAA,UAAA,GAAA;;;;IACE;IACc,UAAmB,CAAA,mBAAA,GAAG,GAAG,CAAC;IAC1B,UAAiB,CAAA,iBAAA,GAAG,GAAG,CAAC;IACxB,UAAiB,CAAA,iBAAA,GAAG,GAAG,CAAC;IACxB,UAAiB,CAAA,iBAAA,GAAG,GAAG;;ICAvC,IAAA,uBAAA,kBAAA,YAAA;IAIE,IAAA,SAAA,uBAAA,GAAA;IAFQ,QAAA,IAAA,CAAA,yBAAyB,GAAG,IAAIU,YAAO,EAAQ,CAAC;YAGtD,IAAI,CAAC,IAAI,EAAE,CAAC;SACb;IAEO,IAAA,uBAAA,CAAA,SAAA,CAAA,IAAI,GAAJ,YAAA;;IAEN,QAAA,IAAI,CAAC,yBAAyB,CAAC,IAAI,EAAE,CAAC;SACvC,CAAA;IAED,IAAA,uBAAA,CAAA,SAAA,CAAA,OAAO,GAAP,YAAA;IACE,QAAA,OAAO,IAAI,CAAC,yBAAyB,CAAC,YAAY,EAAE,CAAC;SACtD,CAAA;IAED,IAAA,uBAAA,CAAA,SAAA,CAAA,WAAW,GAAX,YAAA;IACE,QAAA,IAAI,CAAC,yBAAyB,CAAC,QAAQ,EAAE,CAAC;SAC3C,CAAA;;;kKAnBU,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAArB,aAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;IAAvB,mBAAA,uBAAA,CAAA,KAAA,GAAAA,aAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAAA,aAAA,EAAA,IAAA,EAAA,uBAAuB,cAFtB,MAAM,EAAA,CAAA,CAAA;sHAEP,uBAAuB,EAAA,UAAA,EAAA,CAAA;sBAHnCK,aAAU;IAAC,YAAA,IAAA,EAAA,CAAA;IACV,oBAAA,UAAU,EAAE,MAAM;qBACnB,CAAA;;;ICED,IAAA,QAAA,kBAAA,YAAA;IAME,IAAA,SAAA,QAAA,CAAY,aAAoC,EAAE,GAAW,EAAE,GAAW,EAAE,OAAe,EAAA;IACzF,QAAA,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;IACnC,QAAA,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACf,QAAA,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACf,QAAA,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;SACxB;QACF,OAAA,QAAA,CAAA;IAAA,CAAA,EAAA,CAAA,CAAA;AASD,QAAA,aAAA,kBAAA,YAAA;IAcE,IAAA,SAAA,aAAA,CAAoB,gBAAyC,EAAA;IAAzC,QAAA,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAyB;IAZ7D,QAAA,IAAK,CAAA,KAAA,GAAe,EAAE,CAAC;SAY0C;IAPjE,IAAA,MAAA,CAAA,cAAA,CACI,aAAkB,CAAA,SAAA,EAAA,oBAAA,EAAA;IADtB,QAAA,GAAA,EAAA,UACuB,kBAA2C,EAAA;IAChE,YAAA,IAAI,CAAC,WAAW,GAAG,kBAAkB,CAAC;;gBAEtC,IAAI,CAAC,aAAa,EAAE,CAAC;aACtB;;;IAAA,KAAA,CAAA,CAAA;IAID,IAAA,aAAA,CAAA,SAAA,CAAA,aAAa,GAAb,YAAA;YAAA,IAgDC,KAAA,GAAA,IAAA,CAAA;YA/CC,IAAI,oBAAoB,GAAG,CAAC,CAAC;IAC7B,QAAA,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,EAAE;gBACjC,oBAAoB;IAClB,gBAAA,IAAI,CAAC,gBAAgB,CAAC,kBAAkB,IAAI,UAAU,CAAC,mBAAmB,GAAG,CAAC,GAAG,CAAC,CAAC;IACtF,SAAA;IAAM,aAAA;IACL,YAAA,oBAAoB,GAAG,IAAI,CAAC,UAAU,CAAC;IACxC,SAAA;IACD,QAAA,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;YAChB,IAAI,aAAa,GAAG,CAAC,CAAC;YACtB,IAAI,UAAU,GAAG,CAAC,CAAC;YACnB,IAAI,aAAa,GAAG,CAAC,CAAC;YAEtB,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,UAAC,IAAI,EAAE,KAAK,EAAA;;IAEnC,YAAA,aAAa,IAAI,IAAI,CAAC,aAAa,CAAC;;gBAEpC,IAAI,oBAAoB,KAAK,CAAC,EAAE;IAC9B,gBAAA,KAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,IAAI,EAAE,UAAU,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,CAAC;oBAClE,UAAU,IAAI,CAAC,CAAC;oBAChB,OAAO;IACR,aAAA;;gBAED,IAAI,aAAa,IAAI,oBAAoB,EAAE;IACzC,gBAAA,KAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,IAAI,EAAE,UAAU,EAAE,aAAa,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;;IAEnF,gBAAA,aAAa,IAAI,IAAI,CAAC,aAAa,CAAC;IACrC,aAAA;IAAM,iBAAA;;oBAEL,IAAM,WAAW,GAAG,oBAAoB,IAAI,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC;oBAChF,IAAM,QAAQ,GAAG,KAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;;oBAEvC,QAAQ,CAAC,OAAO,GAAG,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC;;oBAElD,UAAU,IAAI,CAAC,CAAC;oBAChB,aAAa,GAAG,CAAC,CAAC;IAClB,gBAAA,KAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,IAAI,EAAE,UAAU,EAAE,aAAa,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;;IAEnF,gBAAA,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;IACnC,gBAAA,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;IACpC,aAAA;;gBAED,IAAI,KAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,KAAK,KAAK,EAAE;IACzC,gBAAA,IAAM,WAAW,GAAG,oBAAoB,GAAG,aAAa,CAAC;oBACzD,IAAM,WAAW,GAAG,KAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACtC,gBAAA,WAAW,CAAC,OAAO,IAAI,WAAW,CAAC;IACpC,aAAA;IACH,SAAC,CAAC,CAAC;SACJ,CAAA;IAED,IAAA,aAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;;;;SAIC,CAAA;IAED,IAAA,aAAA,CAAA,SAAA,CAAA,WAAW,GAAX,YAAA;YACE,IAAI,IAAI,CAAC,sBAAsB,EAAE;IAC/B,YAAA,IAAI,CAAC,sBAAsB,CAAC,WAAW,EAAE,CAAC;IAC3C,SAAA;SACF,CAAA;;;wJA5EU,aAAa,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA6J,uBAAA,EAAA,CAAA,EAAA,MAAA,EAAAlK,aAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;IAAb,mBAAA,aAAA,CAAA,IAAA,GAAAA,aAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,aAAa,yMC5B1B,yMAMA,EAAA,MAAA,EAAA,CAAA,+iDAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAQ,aAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA2J,wBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;sHDsBa,aAAa,EAAA,UAAA,EAAA,CAAA;sBAPzB1J,YAAS;IAAC,YAAA,IAAA,EAAA,CAAA;IACT,oBAAA,QAAQ,EAAE,YAAY;IACtB,oBAAA,WAAW,EAAE,uBAAuB;wBACpC,SAAS,EAAE,CAAC,uBAAuB,CAAC;;IAEpC,oBAAA,IAAI,EAAE,EAAE,oBAAoB,EAAE,YAAY,EAAE;qBAC7C,CAAA;+GAMU,UAAU,EAAA,CAAA;0BAAlBG,QAAK;oBAGF,kBAAkB,EAAA,CAAA;0BADrBA,QAAK;;;AE/BR,QAAA,qBAAA,kBAAA,YAAA;IACE,IAAA,SAAA,qBAAA,CAAmB,SAAoB,EAAS,IAAS,EAAS,aAAqB,EAAA;IAApE,QAAA,IAAS,CAAA,SAAA,GAAT,SAAS,CAAW;IAAS,QAAA,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAK;IAAS,QAAA,IAAa,CAAA,aAAA,GAAb,aAAa,CAAQ;SAAI;QAC5F,OAAA,qBAAA,CAAA;IAAA,CAAA,EAAA;;ACID,QAAA,UAAA,kBAAA,YAAA;IAAA,IAAA,SAAA,UAAA,GAAA;;;;qJAAa,UAAU,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAAZ,aAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;IAAV,mBAAA,UAAA,CAAA,IAAA,GAAAA,aAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAAA,aAAA,EAAA,IAAA,EAAA,UAAU,EAHN,YAAA,EAAA,CAAA,aAAa,CADlB,EAAA,OAAA,EAAA,CAAA2E,cAAW,aAEX,aAAa,CAAA,EAAA,CAAA,CAAA;sJAEZ,UAAU,EAAA,OAAA,EAAA,CAJZ,CAACA,cAAW,CAAC,CAAA,EAAA,CAAA,CAAA;sHAIX,UAAU,EAAA,UAAA,EAAA,CAAA;sBALtBC,WAAQ;IAAC,YAAA,IAAA,EAAA,CAAA;wBACR,OAAO,EAAE,CAACD,cAAW,CAAC;wBACtB,YAAY,EAAE,CAAC,aAAa,CAAC;wBAC7B,OAAO,EAAE,CAAC,aAAa,CAAC;qBACzB,CAAA;;;ACFD,QAAA,cAAA,kBAAA,YAAA;IALA,IAAA,SAAA,cAAA,GAAA;IAOE,QAAA,IAAS,CAAA,SAAA,GAA8B,UAAU,CAAC;SAMnD;IAJC,IAAA,MAAA,CAAA,cAAA,CACI,cAAU,CAAA,SAAA,EAAA,YAAA,EAAA;IADd,QAAA,GAAA,EAAA,YAAA;IAEE,YAAA,OAAO,IAAI,CAAC,SAAS,KAAK,YAAY,CAAC;aACxC;;;IAAA,KAAA,CAAA,CAAA;;;yJAPU,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA3E,aAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;IAAd,mBAAA,cAAA,CAAA,IAAA,GAAAA,aAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,cAAc,mKCP3B,0DAGA,EAAA,MAAA,EAAA,CAAA,s1FAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAmB,aAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;sHDIa,cAAc,EAAA,UAAA,EAAA,CAAA;sBAL1BV,YAAS;IAAC,YAAA,IAAA,EAAA,CAAA;IACT,oBAAA,QAAQ,EAAE,aAAa;IACvB,oBAAA,WAAW,EAAE,wBAAwB;wBACrC,SAAS,EAAE,CAAC,wBAAwB,CAAC;qBACtC,CAAA;kCAGC,SAAS,EAAA,CAAA;0BADRG,QAAK;oBAIF,UAAU,EAAA,CAAA;0BADbD,cAAW;2BAAC,kBAAkB,CAAA;;;AEEjC,QAAA,UAAA,kBAAA,YAAA;IAAA,IAAA,SAAA,UAAA,GAAA;;;;qJAAa,UAAU,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAAX,aAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;IAAV,mBAAA,UAAA,CAAA,IAAA,GAAAA,aAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAAA,aAAA,EAAA,IAAA,EAAA,UAAU,EAHN,YAAA,EAAA,CAAA,aAAa,EAAE,cAAc,CADlC,EAAA,OAAA,EAAA,CAAA2E,cAAW,EAAE,UAAU,EAAED,eAAY,CAErC,EAAA,OAAA,EAAA,CAAA,aAAa,EAAE,cAAc,CAAA,EAAA,CAAA,CAAA;IAE5B,mBAAA,UAAA,CAAA,IAAA,GAAA1E,aAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAAA,aAAA,EAAA,IAAA,EAAA,UAAU,YAJZ,CAAC2E,cAAW,EAAE,UAAU,EAAED,eAAY,CAAC,CAAA,EAAA,CAAA,CAAA;sHAIrC,UAAU,EAAA,UAAA,EAAA,CAAA;sBALtBE,WAAQ;IAAC,YAAA,IAAA,EAAA,CAAA;IACR,oBAAA,OAAO,EAAE,CAACD,cAAW,EAAE,UAAU,EAAED,eAAY,CAAC;IAChD,oBAAA,YAAY,EAAE,CAAC,aAAa,EAAE,cAAc,CAAC;IAC7C,oBAAA,OAAO,EAAE,CAAC,aAAa,EAAE,cAAc,CAAC;qBACzC,CAAA;;;ACLD,QAAA,kBAAA,kBAAA,YAAA;IALA,IAAA,SAAA,kBAAA,GAAA;IAM4B,QAAA,IAAI,CAAA,IAAA,GAAW,OAAO,CAAC;SAClD;;;6JAFY,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA1E,aAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;IAAlB,mBAAA,kBAAA,CAAA,IAAA,GAAAA,aAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,kBAAkB,uHCP/B,6BACA,EAAA,MAAA,EAAA,CAAA,wBAAA,CAAA,EAAA,CAAA,CAAA;sHDMa,kBAAkB,EAAA,UAAA,EAAA,CAAA;sBAL9BS,YAAS;IAAC,YAAA,IAAA,EAAA,CAAA;IACT,oBAAA,QAAQ,EAAE,kBAAkB;IAC5B,oBAAA,WAAW,EAAE,6BAA6B;wBAC1C,SAAS,EAAE,CAAC,6BAA6B,CAAC;qBAC3C,CAAA;kCAE2B,IAAI,EAAA,CAAA;0BAA7BE,cAAW;2BAAC,WAAW,CAAA;;;AEA1B,QAAA,gBAAA,kBAAA,YAAA;IACE,IAAA,SAAA,gBAAA,GAAA;SAAgB;QAEhB,gBAAQ,CAAA,SAAA,CAAA,QAAA,GAAR,eAAa,CAAA;;;2JAHF,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAAX,aAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;IAAhB,mBAAA,gBAAA,CAAA,IAAA,GAAAA,aAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,gBAAgB,gECR7B,+GAIA,EAAA,MAAA,EAAA,CAAA,6XAAA,CAAA,EAAA,eAAA,EAAAA,aAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;sHDIa,gBAAgB,EAAA,UAAA,EAAA,CAAA;sBAN5BS,YAAS;IAAC,YAAA,IAAA,EAAA,CAAA;IACT,oBAAA,QAAQ,EAAE,eAAe;IACzB,oBAAA,WAAW,EAAE,0BAA0B;wBACvC,SAAS,EAAE,CAAC,0BAA0B,CAAC;wBACvC,eAAe,EAAEC,0BAAuB,CAAC,MAAM;qBAChD,CAAA;;;;;;;;;;;;;;;;;;;;;;AECD,QAAA,qBAAA,kBAAA,YAAA;IAGE,IAAA,SAAA,qBAAA,CACU,iBAAoC,EACpC,wBAAkD,EAClD,QAAkB,EAAA;IAFlB,QAAA,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAmB;IACpC,QAAA,IAAwB,CAAA,wBAAA,GAAxB,wBAAwB,CAA0B;IAClD,QAAA,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAU;IALpB,QAAA,IAAU,CAAA,UAAA,GAA0B,IAAI,CAAC;SAM7C;QAES,qBAAkB,CAAA,SAAA,CAAA,kBAAA,GAAlB,UAAmB,YAA4B,EAAA;IAA5B,QAAA,IAAA,YAAA,KAAA,KAAA,CAAA,EAAA,EAAA,YAA4B,GAAA,IAAA,CAAA,EAAA;;;;;;IACtD,wBAAA,IAAA,CAAA,CAAC,IAAI,CAAC,UAAU,EAAhB,OAAgB,CAAA,CAAA,YAAA,CAAA,CAAA,CAAA;IAClB,wBAAA,EAAA,GAAA,IAAI,CAAA;IAAc,wBAAA,OAAA,CAAA,CAAA,YAAM,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC;IACpD,gCAAA,QAAQ,EAAE,uBAAuB;IACjC,gCAAA,QAAQ,EAAE,CAAC;IACX,gCAAA,OAAO,EAAE,IAAI;IACb,gCAAA,YAAY,EAAE,YAAY;IAC1B,gCAAA,OAAO,EAAE,IAAI;IACd,6BAAA,CAAC,CAAA,CAAA;;4BANF,EAAK,CAAA,UAAU,GAAG,EAAA,CAAA,IAAA,EAMhB,CAAC;4BAEG,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,kBAAkB,CAAC,CAAC;IACnE,wBAAA,YAAY,GAAG,QAAQ,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC;4BACvD,OAAO,GAAG,IAAI,CAAC,wBAAwB,CAAC,uBAAuB,CAAC,gBAAgB,CAAC,CAAC;4BACxF,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,EAAE,YAAY,CAAC,CAAC;IAChD,wBAAA,cAAc,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;IAEzC,wBAAA,OAAA,CAAA,CAAA,YAAM,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAA,CAAA;;IAA/B,wBAAA,EAAA,CAAA,IAAA,EAA+B,CAAC;;;;;IAEnC,SAAA,CAAA,CAAA;SAAA,CAAA;IAEY,IAAA,qBAAA,CAAA,SAAA,CAAA,kBAAkB,GAAlB,YAAA;;;;;IACP,wBAAA,IAAA,CAAA,CAAC,CAAC,IAAI,CAAC,UAAU,EAAjB,OAAiB,CAAA,CAAA,YAAA,CAAA,CAAA,CAAA;IACnB,wBAAA,OAAA,CAAA,CAAA,YAAM,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAA,CAAA;;IAA/B,wBAAA,EAAA,CAAA,IAAA,EAA+B,CAAC;IAChC,wBAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;;;;;IAE1B,SAAA,CAAA,CAAA;SAAA,CAAA;;;gKAlCU,qBAAqB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAS,aAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAAnB,aAAA,CAAA,wBAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,aAAA,CAAA,QAAA,EAAA,CAAA,EAAA,MAAA,EAAAA,aAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;IAArB,mBAAA,qBAAA,CAAA,KAAA,GAAAA,aAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAAA,aAAA,EAAA,IAAA,EAAA,qBAAqB,cAFpB,MAAM,EAAA,CAAA,CAAA;sHAEP,qBAAqB,EAAA,UAAA,EAAA,CAAA;sBAHjCK,aAAU;IAAC,YAAA,IAAA,EAAA,CAAA;IACV,oBAAA,UAAU,EAAE,MAAM;qBACnB,CAAA;;;ACCD,QAAA,uBAAA,kBAAA,YAAA;IANA,IAAA,SAAA,uBAAA,GAAA;IAOkB,QAAA,IAAS,CAAA,SAAA,GAAG,IAAI,CAAC;IACjB,QAAA,IAAY,CAAA,YAAA,GAAG,IAAI,CAAC;SACrC;;;kKAHY,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAAL,aAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;IAAvB,mBAAA,uBAAA,CAAA,IAAA,GAAAA,aAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,uBAAuB,0ICRpC,iRAQA,EAAA,MAAA,EAAA,CAAA,wbAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAoK,gBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAA5J,aAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAAR,aAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;sHDAa,uBAAuB,EAAA,UAAA,EAAA,CAAA;sBANnCS,YAAS;IAAC,YAAA,IAAA,EAAA,CAAA;IACT,oBAAA,QAAQ,EAAE,uBAAuB;IACjC,oBAAA,WAAW,EAAE,kCAAkC;wBAC/C,SAAS,EAAE,CAAC,kCAAkC,CAAC;wBAC/C,eAAe,EAAEC,0BAAuB,CAAC,MAAM;qBAChD,CAAA;kCAEiB,SAAS,EAAA,CAAA;0BAAxBE,QAAK;oBACU,YAAY,EAAA,CAAA;0BAA3BA,QAAK;;;IEQR;;IAEG;IACI,IAAM,wBAAwB,GAAG,GAAG,CAAC;AAK5C,QAAA,uBAAA,kBAAA,YAAA;IA4BE,IAAA,SAAA,uBAAA,CAAoB,UAAsB,EAAU,SAAoB,EAAU,IAAY,EAAA;IAA1E,QAAA,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;IAAU,QAAA,IAAS,CAAA,SAAA,GAAT,SAAS,CAAW;IAAU,QAAA,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAQ;IA3B9F;;;IAGG;IACO,QAAA,IAAA,CAAA,SAAS,GAAG,IAAIwC,eAAY,EAAQ,CAAC;IAE/C;;IAEG;IACM,QAAA,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;IAE1B;;IAEG;IACH,QAAA,IAAA,CAAA,OAAO,GAAoB,IAAI/B,YAAO,EAAU,CAAC;IAEjD;;;IAGG;IACK,QAAA,IAAA,CAAA,cAAc,GAAG,IAAIA,YAAO,EAAQ,CAAC;IAE7C;;IAEG;IACK,QAAA,IAAM,CAAA,MAAA,GAAG,GAAG,CAAC;SAE6E;IAElG,IAAA,uBAAA,CAAA,SAAA,CAAA,eAAe,GAAf,YAAA;YAAA,IAkDC,KAAA,GAAA,IAAA,CAAA;IAjDC;;;IAGG;IACH,QAAA,IAAI,CAAC,OAAO;IACT,aAAA,IAAI,CACHW,mBAAS,CAAC,IAAI,CAAC,cAAc,CAAC,EAC9BH,sBAAY,CAAC,wBAAwB,CAAC,EACtCkC,gBAAM,CAAC,YAAA,EAAM,OAAA,CAAC,KAAI,CAAC,QAAQ,CAAA,EAAA,CAAC,EAC5BA,gBAAM,CAAC,UAAC,MAAM,EAAA;gBACZ,QACE,MAAM,CAAC,aAAa,IAAI,CAAC,GAAG,KAAI,CAAC,MAAM,CAAC;IACxC,gBAAA,MAAM,CAAC,oBAAoB,GAAG,MAAM,CAAC,UAAU,EAC/C;IACJ,SAAC,CAAC,CACH;IACA,aAAA,SAAS,CAAC,YAAA;IACT,YAAA,KAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;IACxB,SAAC,CAAC,CAAC;IAEL;;;IAGG;IACH,QAAA,UAAU,CAAC,YAAA;IACT,YAAA,IAAM,UAAU,GAAgB,KAAI,CAAC,UAAU,CAAC,aAAa,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;IACrF,YAAA,IAAI,UAAU,EAAE;;IAEd,gBAAA,KAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,YAAA;IAC1B,oBAAAe,cAAS,CAAM,UAAU,EAAE,WAAW,CAAC;IACpC,yBAAA,IAAI,CACH9C,mBAAS,CAAC,KAAI,CAAC,cAAc,CAAC,EAC9BH,sBAAY,CAAC,wBAAwB,CAAC,EACtCkC,gBAAM,CAAC,YAAM,EAAA,OAAA,CAAC,KAAI,CAAC,QAAQ,CAAA,EAAA,CAAC,EAC5BG,aAAG,CAAC,YAAA,EAAM,OAAA,KAAI,CAAC,SAAS,EAAE,GAAA,CAAC,EAC3BH,gBAAM,CAAC,UAAC,MAAM,EAAA;4BACZ,QACE,MAAM,CAAC,aAAa,IAAI,CAAC,GAAG,KAAI,CAAC,MAAM,CAAC;IACxC,4BAAA,MAAM,CAAC,oBAAoB,GAAG,MAAM,CAAC,UAAU,EAC/C;IACJ,qBAAC,CAAC,CACH;IACA,yBAAA,SAAS,CAAC,YAAA;;IAET,wBAAA,KAAI,CAAC,IAAI,CAAC,GAAG,CAAC,cAAM,OAAA,KAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAArB,EAAqB,CAAC,CAAC;IAC7C,qBAAC,CAAC,CAAC;IACP,iBAAC,CAAC,CAAC;IACJ,aAAA;IACH,SAAC,CAAC,CAAC;SACJ,CAAA;IAED;;IAEG;IAEH,IAAA,uBAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;YACE,IAAI,IAAI,CAAC,QAAQ;gBAAE,OAAO;IAC1B,QAAA,IAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;IAChC,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SAC3B,CAAA;IAED;;IAEG;IACH,IAAA,uBAAA,CAAA,SAAA,CAAA,WAAW,GAAX,YAAA;IACE,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;IAC3B,QAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAC;SAChC,CAAA;IAEO,IAAA,uBAAA,CAAA,SAAA,CAAA,SAAS,GAAT,YAAA;IACN,QAAA,IAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,aAA4B,CAAC;IAC7D,QAAA,IAAM,kBAAkB,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC;IAE3D,QAAA,IAAM,oBAAoB,GAAG,kBAAkB,CAAC,MAAM,CAAC;IACvD,QAAA,IAAM,aAAa,GAAG,kBAAkB,CAAC,MAAM,CAAC;YAChD,IAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,WAAW,CAAC;YAE3D,OAAO,EAAE,oBAAoB,EAAA,oBAAA,EAAE,aAAa,eAAA,EAAE,UAAU,EAAA,UAAA,EAAE,CAAC;SAC5D,CAAA;;;kKA7GU,uBAAuB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA/D,aAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAuB,SAAA,EAAA,EAAA,EAAA,KAAA,EAAAvB,aAAA,CAAA,MAAA,EAAA,CAAA,EAAA,MAAA,EAAAA,aAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;2IAAvB,uBAAuB,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,eAAA,EAAA,YAAA,EAAA,EAAA,EAAA,QAAA,EAAAA,aAAA,EAAA,CAAA,CAAA;sHAAvB,uBAAuB,EAAA,UAAA,EAAA,CAAA;sBAHnCC,YAAS;IAAC,YAAA,IAAA,EAAA,CAAA;IACT,oBAAA,QAAQ,EAAE,uBAAuB;qBAClC,CAAA;qKAMW,SAAS,EAAA,CAAA;0BAAlBuD,SAAM;oBAKE,QAAQ,EAAA,CAAA;0BAAhB5C,QAAK;oBA4EN,QAAQ,EAAA,CAAA;0BADPY,eAAY;2BAAC,eAAe,CAAA;;;ICzG/B,IAAA,UAAA,kBAAA,YAAA;IAAA,IAAA,SAAA,UAAA,GAAA;;IACE,IAAA,UAAA,CAAA,SAAA,CAAA,cAAc,GAAd,UAAe,SAAwB,EAAE,MAA6B,EAAA;YACpE,IAAI,SAAS,CAAC,qBAAqB,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE;IAC5D,YAAA,SAAS,CAAC,UAAU,GAAG,IAAI,CAAC;IAC5B,YAAA,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC;oBAC1B,QAAQ,EAAE,UAAC,mBAA4B,EAAA;IACrC,oBAAA,SAAS,CAAC,qBAAqB,GAAG,CAAC,mBAAmB,CAAC;IACvD,oBAAA,SAAS,CAAC,UAAU,GAAG,KAAK,CAAC;qBAC9B;IACF,aAAA,CAAC,CAAC;IACJ,SAAA;SACF,CAAA;;;qJAXU,UAAU,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAAxB,aAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;yJAAV,UAAU,EAAA,CAAA,CAAA;sHAAV,UAAU,EAAA,UAAA,EAAA,CAAA;sBADtBK,aAAU;;;ACAX,QAAA,WAAA,kBAAA,YAAA;IAAA,IAAA,SAAA,WAAA,GAAA;;IACE,IAAA,WAAA,CAAA,SAAA,CAAA,SAAS,GAAT,UAAU,KAAY,EAAE,YAAoC,EAAA;YAC1D,IAAI,CAAC,KAAK,EAAE;IACV,YAAA,OAAO,IAAI,CAAC;IACb,SAAA;YACD,IAAI,CAAC,YAAY,EAAE;IACjB,YAAA,OAAO,KAAK,CAAC;IACd,SAAA;IAED,QAAA,IAAM,SAAS,GAAG,IAAI,GAAG,EAAiB,CAAC;IAE3C,QAAA,KAAK,CAAC,OAAO,CAAC,UAAC,IAAS,EAAA;IACtB,YAAA,IAAM,SAAS,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;gBACrC,IAAM,UAAU,GAAG,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAE5C,YAAA,IAAI,UAAU,EAAE;IACd,gBAAA,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACvB,aAAA;IAAM,iBAAA;oBACL,SAAS,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IAClC,aAAA;IACH,SAAC,CAAC,CAAC;IAEH,QAAA,OAAO,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC;IACzB,aAAA,IAAI,CAAC,UAAC,EAAM,EAAE,EAAW,EAAA;oBAAnB,EAAA,GAAA,MAAA,CAAA,EAAA,EAAA,CAAA,CAAM,EAAL,IAAI,GAAA,EAAA,CAAA,CAAA,CAAA,CAAA;oBAAG,EAAA,GAAA,MAAA,CAAA,EAAA,EAAA,CAAA,CAAW,EAAV,SAAS,GAAA,EAAA,CAAA,CAAA,CAAA,CAAA;IAAM,YAAA,OAAA,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAA;IAA7B,SAA6B,CAAC;iBAC5D,GAAG,CAAC,UAAC,EAAa,EAAA;IAAb,YAAA,IAAA,EAAA,GAAA,aAAa,EAAZ,IAAI,GAAA,EAAA,CAAA,CAAA,CAAA,EAAE,KAAK,GAAA,EAAA,CAAA,CAAA,CAAA,CAAA;IAChB,YAAA,OAAO,EAAE,IAAI,EAAA,IAAA,EAAE,KAAK,EAAA,KAAA,EAAE,CAAC;IACzB,SAAC,CAAC,CAAC;SACN,CAAA;;;sJA3BU,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAAL,aAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;oJAAX,WAAW,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,CAAA;sHAAX,WAAW,EAAA,UAAA,EAAA,CAAA;sBAHvBqK,OAAI;IAAC,YAAA,IAAA,EAAA,CAAA;IACJ,oBAAA,IAAI,EAAE,SAAS;qBAChB,CAAA;;;ACGD,QAAA,sBAAA,kBAAA,YAAA;IAAA,IAAA,SAAA,sBAAA,GAAA;;IAOE,IAAA,sBAAA,CAAA,SAAA,CAAA,WAAW,GAAX,YAAA;IACE,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;SAC9B,CAAA;IAEO,IAAA,sBAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;YACN,IAAI,CAAC,IAAI,CAAC,kBAAkB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;gBAC1C,OAAO;IACR,SAAA;YAED,IAAM,UAAU,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACtD,QAAA,OAAO,UAAU,CAAC;SACnB,CAAA;;;iKAlBU,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAArK,aAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;0IAAtB,sBAAsB,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,YAAA,EAAA,EAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAAA,aAAA,EAAA,CAAA,CAAA;sHAAtB,sBAAsB,EAAA,UAAA,EAAA,CAAA;sBAHlCC,YAAS;IAAC,YAAA,IAAA,EAAA,CAAA;IACT,oBAAA,QAAQ,EAAE,sBAAsB;qBACjC,CAAA;kCAGC,kBAAkB,EAAA,CAAA;0BADjBW,QAAK;oBAEG,IAAI,EAAA,CAAA;0BAAZA,QAAK;oBAEN,KAAK,EAAA,CAAA;0BADJD,cAAW;2BAAC,OAAO,CAAA;;;ACatB,QAAA,iBAAA,kBAAA,YAAA;IAGE,IAAA,SAAA,iBAAA,CAAoB,QAAyB,EAAA;IAAzB,QAAA,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAiB;IAF7C,QAAA,IAAiB,CAAA,iBAAA,GAAG,KAAK,CAAC;IAYjB,QAAA,IAAY,CAAA,YAAA,GAAsB,EAAE,CAAC;IAUpC,QAAA,IAAA,CAAA,UAAU,GAAG,IAAIyC,eAAY,EAAO,CAAC;IAOrC,QAAA,IAAA,CAAA,iBAAiB,GAAG,IAAIA,eAAY,EAAO,CAAC;YA1BpD,IAAI,CAAC,sBAAsB,EAAE,CAAC;SAC/B;QAoBD,iBAAa,CAAA,SAAA,CAAA,aAAA,GAAb,UAAc,IAAS,EAAA;YACrB,IAAI,CAAC,IAAI,CAAC,YAAY;gBAAE,OAAO;IAC/B,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAC5B,CAAA;IAID,IAAA,iBAAA,CAAA,SAAA,CAAA,oBAAoB,GAApB,UAAqB,WAAW,EAAE,IAAI,EAAE,KAAK,EAAA;IAC3C,QAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC;IAC1B,YAAA,WAAW,EAAA,WAAA;IACX,YAAA,IAAI,EAAA,IAAA;IACJ,YAAA,KAAK,EAAA,KAAA;IACN,SAAA,CAAC,CAAC;SACJ,CAAA;IAED,IAAA,iBAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;YACE,IAAI,CAAC,sBAAsB,EAAE,CAAC;SAC/B,CAAA;IAED,IAAA,iBAAA,CAAA,SAAA,CAAA,eAAe,GAAf,YAAA;IACE,QAAA,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;IACtB,YAAA,OAAO,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;IAChD,SAAA;SACF,CAAA;QAED,iBAAgB,CAAA,SAAA,CAAA,gBAAA,GAAhB,UAAiB,IAAS,EAAA;YACxB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE;IACrC,YAAA,OAAO,KAAK,CAAC;IACd,SAAA;IACD,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,UAAC,WAAW,EAAA;IACxC,YAAA,IAAI,WAAW,CAAC,UAAU,YAAY,QAAQ,IAAI,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;IAC9E,gBAAA,OAAO,KAAK,CAAC;IACd,aAAA;IACD,YAAA,IAAI,WAAW,CAAC,UAAU,KAAK,IAAI,EAAE;IACnC,gBAAA,OAAO,KAAK,CAAC;IACd,aAAA;gBACD,OAAO,WAAW,CAAC,QAAQ,KAAK,MAAM,IAAI,WAAW,CAAC,QAAQ,KAAK,OAAO,CAAC;IAC7E,SAAC,CAAC,CAAC;SACJ,CAAA;IAED,IAAA,iBAAA,CAAA,SAAA,CAAA,gBAAgB,GAAhB,UAAiB,IAAS,EAAE,SAA8B,EAAA;YAA1D,IAUC,KAAA,GAAA,IAAA,CAAA;YATC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE;IACrC,YAAA,OAAO,EAAE,CAAC;IACX,SAAA;IACD,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,UAAC,WAAW,EAAA;gBAC1C,IAAI,KAAI,CAAC,qBAAqB,CAAC,WAAW,EAAE,IAAI,CAAC,EAAE;IACjD,gBAAA,OAAO,KAAK,CAAC;IACd,aAAA;IACD,YAAA,OAAO,SAAS,GAAG,WAAW,CAAC,QAAQ,KAAK,SAAS,GAAG,IAAI,CAAC;IAC/D,SAAC,CAAC,CAAC;SACJ,CAAA;IAEO,IAAA,iBAAA,CAAA,SAAA,CAAA,qBAAqB,GAArB,UAAsB,WAA4B,EAAE,IAAS,EAAA;IACnE,QAAA,IAAI,WAAW,CAAC,UAAU,YAAY,QAAQ,IAAI,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;IAC9E,YAAA,OAAO,IAAI,CAAC;IACb,SAAA;IACD,QAAA,OAAO,WAAW,CAAC,UAAU,KAAK,IAAI,CAAC;SACxC,CAAA;QAED,iBAAkB,CAAA,SAAA,CAAA,kBAAA,GAAlB,UAAmB,IAAS,EAAA;YAC1B,IAAI,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,MAAM,EAAE;IAC9C,YAAA,OAAO,OAAO,CAAC;IAChB,SAAA;IACD,QAAA,OAAO,KAAK,CAAC;SACd,CAAA;IAED,IAAA,iBAAA,CAAA,SAAA,CAAA,mBAAmB,GAAnB,UAAoB,WAA4B,EAAE,IAAS,EAAA;YACzD,IAAI,CAAC,WAAW,CAAC,IAAI;gBAAE,OAAO;IAE9B,QAAA,IAAI,WAAW,CAAC,IAAI,YAAY,QAAQ,EAAE;IACxC,YAAA,OAAO,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/B,SAAA;YACD,OAAO,WAAW,CAAC,IAAI,CAAC;SACzB,CAAA;IAED,IAAA,iBAAA,CAAA,SAAA,CAAA,oBAAoB,GAApB,UAAqB,WAA4B,EAAE,IAAS,EAAA;IAC1D,QAAA,IAAI,WAAW,CAAC,KAAK,YAAY,QAAQ,EAAE;IACzC,YAAA,OAAO,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAChC,SAAA;YACD,OAAO,WAAW,CAAC,KAAK,CAAC;SAC1B,CAAA;IAED,IAAA,iBAAA,CAAA,SAAA,CAAA,mBAAmB,GAAnB,UAAoB,WAA4B,EAAE,IAAS,EAAA;IACzD,QAAA,IAAI,WAAW,CAAC,IAAI,YAAY,QAAQ,EAAE;IACxC,YAAA,OAAO,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/B,SAAA;YACD,OAAO,WAAW,CAAC,IAAI,CAAC;SACzB,CAAA;IAEO,IAAA,iBAAA,CAAA,SAAA,CAAA,sBAAsB,GAAtB,YAAA;YACN,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE;gBACjD,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;IAClD,SAAA;SACF,CAAA;;;4JAtHU,iBAAiB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAqG,eAAA,EAAA,CAAA,EAAA,MAAA,EAAAzJ,aAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;qIAAjB,iBAAiB,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,aAAA,EAAA,eAAA,EAAA,YAAA,EAAA,cAAA,EAAA,YAAA,EAAA,cAAA,EAAA,UAAA,EAAA,YAAA,EAAA,YAAA,EAAA,cAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,OAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAOjBsK,iBAAc,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAAtK,aAAA,EAAA,QAAA,EC/B3B,s3CAuCA,EAAA,MAAA,EAAA,CAAA,itKAAA,EAAA,wIAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAQ,aAAA,CAAA,cAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,aAAA,CAAA,cAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,aAAA,CAAA,aAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,UAAA,EAAA,UAAA,EAAA,YAAA,EAAA,MAAA,EAAA,MAAA,EAAA,KAAA,EAAA,QAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAkH,aAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,MAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAlH,aAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAA+J,sBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAzG,aAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,aAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,aAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,aAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;sHDfa,iBAAiB,EAAA,UAAA,EAAA,CAAA;sBAL7BrD,YAAS;IAAC,YAAA,IAAA,EAAA,CAAA;IACT,oBAAA,QAAQ,EAAE,iBAAiB;IAC3B,oBAAA,WAAW,EAAE,4BAA4B;IACzC,oBAAA,SAAS,EAAE,CAAC,wBAAwB,EAAE,4BAA4B,CAAC;qBACpE,CAAA;uGAQ4B,cAAc,EAAA,CAAA;0BAAxCuC,YAAS;2BAACsH,iBAAc,CAAA;oBAEhB,IAAI,EAAA,CAAA;0BAAZ1J,QAAK;oBAEG,aAAa,EAAA,CAAA;0BAArBA,QAAK;oBAEG,YAAY,EAAA,CAAA;0BAApBA,QAAK;oBAEG,YAAY,EAAA,CAAA;0BAApBA,QAAK;oBAEG,UAAU,EAAA,CAAA;0BAAlBA,QAAK;oBAEG,YAAY,EAAA,CAAA;0BAApBA,QAAK;oBAEG,YAAY,EAAA,CAAA;0BAApBA,QAAK;oBAEI,UAAU,EAAA,CAAA;0BAAnB4C,SAAM;oBAOG,iBAAiB,EAAA,CAAA;0BAA1BA,SAAM;;;AEbT,QAAA,aAAA,kBAAA,YAAA;QA+GE,SAAoB,aAAA,CAAA,UAAsB,EAAU,OAAoB,EAAA;IAApD,QAAA,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;IAAU,QAAA,IAAO,CAAA,OAAA,GAAP,OAAO,CAAa;IA3GxE;;IAEG;IAEH,QAAA,IAAK,CAAA,KAAA,GAAU,EAAE,CAAC;IAmBlB;;IAEG;IACM,QAAA,IAAW,CAAA,WAAA,GAAG,KAAK,CAAC;IAE7B;;IAEG;IACM,QAAA,IAAe,CAAA,eAAA,GAAG,KAAK,CAAC;IAEjC;;;;;;IAMG;IACM,QAAA,IAAK,CAAA,KAAA,GAAc,SAAS,CAAC;IAsBtC;;IAEG;IACO,QAAA,IAAA,CAAA,YAAY,GAAG,IAAIJ,eAAY,EAAqB,CAAC;IAE/D;;;;IAIG;IACM,QAAA,IAAY,CAAA,YAAA,GAAsB,EAAE,CAAC;IAE9C;;IAEG;IACO,QAAA,IAAA,CAAA,UAAU,GAAG,IAAIA,eAAY,EAAO,CAAC;IAEtC,QAAA,IAAyB,CAAA,yBAAA,GAAY,KAAK,CAAC;SA4BwB;IAjE5E,IAAA,MAAA,CAAA,cAAA,CACW,aAAc,CAAA,SAAA,EAAA,gBAAA,EAAA;IADzB,QAAA,GAAA,EAAA,YAAA;IAEE,YAAA,OAAO,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC;aACjC;;;IAAA,KAAA,CAAA,CAAA;IAED,IAAA,MAAA,CAAA,cAAA,CACW,aAAW,CAAA,SAAA,EAAA,aAAA,EAAA;IADtB,QAAA,GAAA,EAAA,YAAA;IAEE,YAAA,OAAO,IAAI,CAAC,KAAK,KAAK,MAAM,CAAC;aAC9B;;;IAAA,KAAA,CAAA,CAAA;IA2DD,IAAA,aAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;IACE,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;IAE1D,QAAA,IAAI,IAAI,CAAC,qBAAqB,KAAK,SAAS,EAAE;IAC5C,YAAA,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;IACrE,SAAA;SACF,CAAA;IAED,IAAA,aAAA,CAAA,SAAA,CAAA,eAAe,GAAf,YAAA;YAAA,IAQC,KAAA,GAAA,IAAA,CAAA;YAPC,IAAI,IAAI,CAAC,aAAa,EAAE;IACtB,YAAA,UAAU,CAAC,YAAA;IACT,gBAAA,KAAI,CAAC,UAAU,CAAC,OAAO,CAAC,UAAC,IAAI,EAAA;IAC3B,oBAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;IACzB,iBAAC,CAAC,CAAC;IACL,aAAC,CAAC,CAAC;IACJ,SAAA;SACF,CAAA;IAED,IAAA,aAAA,CAAA,SAAA,CAAA,WAAW,GAAX,YAAA;YACE,IAAI,CAAC,kBAAkB,GAAG,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC;IAChD,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,kBAAkB;IAC1C,cAAE,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,cAAc,CAAC;kBACvD,IAAI,CAAC;SACV,CAAA;QAED,aAAe,CAAA,SAAA,CAAA,eAAA,GAAf,UAAgB,KAA6B,EAAA;YAC3C,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;SAC7C,CAAA;QAED,aAAc,CAAA,SAAA,CAAA,cAAA,GAAd,UAAe,KAAa,EAAA;IAC1B,QAAA,OAAO,KAAK,CAAC;SACd,CAAA;IAED,IAAA,aAAA,CAAA,SAAA,CAAA,cAAc,GAAd,UAAe,CAAS,EAAE,OAAyB,EAAA;YACjD,OAAO,OAAO,CAAC,IAAI,CAAC;SACrB,CAAA;QAED,aAAY,CAAA,SAAA,CAAA,YAAA,GAAZ,UAAa,IAAS,EAAA;IACpB,QAAA,IAAI,CAAC,IAAI,CAAC,yBAAyB,EAAE;IACnC,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;IAC3B,SAAA;IACD,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAC5B,CAAA;QAED,aAAmB,CAAA,SAAA,CAAA,mBAAA,GAAnB,UAAoB,IAAS,EAAA;YAC3B,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACvC,QAAA,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAC9B,QAAA,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE,CAAC;SAC9B,CAAA;IAED,IAAA,aAAA,CAAA,SAAA,CAAA,iBAAiB,GAAjB,UAAkB,KAAa,EAAE,OAAe,EAAA;;IAC9C,QAAA,IAAI,MAAM,GAAG,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC;IAEnC,QAAA,IAAI,KAAK,KAAK,CAAC,KAAI,CAAA,EAAA,GAAA,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,WAAW,CAAA;gBAAE,OAAO,IAAI,CAAC,cAAc,GAAG,IAAI,GAAG,OAAO,CAAC;IAE/F,QAAA,IAAI,KAAK,KAAK,MAAM,CAAC,MAAM,GAAG,CAAC,KAAI,CAAA,EAAA,GAAA,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,WAAW,CAAA;gBAC/D,OAAO,IAAI,CAAC,cAAc,GAAG,IAAI,GAAG,MAAM,CAAC;SAC9C,CAAA;;;wJA1KU,aAAa,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAoH,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,WAAA,EAAA,CAAA,EAAA,MAAA,EAAAzK,aAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;iIAAb,aAAa,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,YAAA,EAAA,cAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,OAAA,EAAA,SAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,aAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,KAAA,EAAA,OAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,qBAAA,EAAA,uBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,yBAAA,EAAA,2BAAA,EAAA,EAAA,OAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,qBAAA,EAAA,oBAAA,EAAA,yBAAA,EAAA,EAAA,EAAA,SAAA,EAFb,CAAC,UAAU,EAAE,WAAW,CAAC,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EA0FtB,mBAAmB,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAAyBwH,cAAW,EAAA,EAAA,EAAA,YAAA,EAAA,uBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAGvD,0BAA0B,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAAyBA,cAAW,EAAA,EAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAG9D,mBAAmB,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAAyBA,cAAW,EAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAOvD,yBAAyB,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAAwBA,cAAW,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,YAAA,EAAA,SAAA,EAhBzD,aAAa,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,MAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,MAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAnFnB,uBAAuB,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAAxH,aAAA,EAAA,QAAA,EC3CpC,whEAiEA,EAAA,MAAA,EAAA,CAAA,itKAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAmH,aAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,OAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,aAAA,CAAA,aAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,OAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAuD,gBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,EAAA,EAAA,IAAA,EAAAvD,aAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,aAAA,CAAA,cAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAwD,iBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,eAAA,EAAA,cAAA,EAAA,cAAA,EAAA,YAAA,EAAA,cAAA,EAAA,cAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,mBAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAC,uBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA/H,aAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,aAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,aAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;sHDxBa,aAAa,EAAA,UAAA,EAAA,CAAA;sBANzBpC,YAAS;IAAC,YAAA,IAAA,EAAA,CAAA;IACT,oBAAA,QAAQ,EAAE,YAAY;IACtB,oBAAA,WAAW,EAAE,uBAAuB;wBACpC,SAAS,EAAE,CAAC,uBAAuB,CAAC;IACpC,oBAAA,SAAS,EAAE,CAAC,UAAU,EAAE,WAAW,CAAC;qBACrC,CAAA;yHAEsC,IAAI,EAAA,CAAA;0BAAxCuC,YAAS;oBAAC,IAAA,EAAA,CAAA,MAAM,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;oBACC,eAAe,EAAA,CAAA;0BAAlDA,YAAS;2BAAC,uBAAuB,CAAA;oBAMlC,KAAK,EAAA,CAAA;0BADJpC,QAAK;oBAGG,YAAY,EAAA,CAAA;0BAApBA,QAAK;oBAKG,cAAc,EAAA,CAAA;0BAAtBA,QAAK;oBAKG,OAAO,EAAA,CAAA;0BAAfA,QAAK;oBAKG,eAAe,EAAA,CAAA;0BAAvBA,QAAK;oBAKG,WAAW,EAAA,CAAA;0BAAnBA,QAAK;oBAKG,eAAe,EAAA,CAAA;0BAAvBA,QAAK;oBASG,KAAK,EAAA,CAAA;0BAAbA,QAAK;oBAGK,cAAc,EAAA,CAAA;0BADxBD,cAAW;2BAAC,qBAAqB,CAAA;oBAMvB,WAAW,EAAA,CAAA;0BADrBA,cAAW;2BAAC,kBAAkB,CAAA;oBAO/B,cAAc,EAAA,CAAA;0BAFbA,cAAW;2BAAC,oBAAoB,CAAA;;0BAChCC,QAAK;oBAOG,qBAAqB,EAAA,CAAA;0BAA7BA,QAAK;oBAKI,YAAY,EAAA,CAAA;0BAArB4C,SAAM;oBAOE,YAAY,EAAA,CAAA;0BAApB5C,QAAK;oBAKI,UAAU,EAAA,CAAA;0BAAnB4C,SAAM;oBAEE,yBAAyB,EAAA,CAAA;0BAAjC5C,QAAK;oBAGN,UAAU,EAAA,CAAA;0BADT6C,kBAAe;2BAAC,aAAa,CAAA;oBAI9B,cAAc,EAAA,CAAA;0BADb9B,eAAY;2BAAC,mBAAmB,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE6F,cAAW,EAAE,CAAA;oBAIvE,qBAAqB,EAAA,CAAA;0BADpB7F,eAAY;2BAAC,0BAA0B,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE6F,cAAW,EAAE,CAAA;oBAI9E,cAAc,EAAA,CAAA;0BADb7F,eAAY;2BAAC,mBAAmB,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE6F,cAAW,EAAE,CAAA;oBAQvE,YAAY,EAAA,CAAA;0BADX7F,eAAY;2BAAC,yBAAyB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE6F,cAAW,EAAE,CAAA;oBAGzC,kBAAkB,EAAA,CAAA;0BAApD7G,cAAW;2BAAC,oBAAoB,CAAA;;;AEzInC,QAAA,mBAAA,kBAAA,YAAA;IACE,IAAA,SAAA,mBAAA,GAAA;SAAgB;;;8JADL,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAAX,aAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;IAAnB,mBAAA,mBAAA,CAAA,IAAA,GAAAA,aAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,mBAAmB,oECRhC,6BACA,EAAA,MAAA,EAAA,CAAA,6HAAA,CAAA,EAAA,eAAA,EAAAA,aAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;sHDOa,mBAAmB,EAAA,UAAA,EAAA,CAAA;sBAN/BS,YAAS;IAAC,YAAA,IAAA,EAAA,CAAA;IACT,oBAAA,QAAQ,EAAE,mBAAmB;IAC7B,oBAAA,WAAW,EAAE,8BAA8B;wBAC3C,SAAS,EAAE,CAAC,8BAA8B,CAAC;wBAC3C,eAAe,EAAEC,0BAAuB,CAAC,MAAM;qBAChD,CAAA;;;AEAD,QAAA,0BAAA,kBAAA,YAAA;IAEE,IAAA,SAAA,0BAAA,GAAA;SAAgB;QAEhB,0BAAQ,CAAA,SAAA,CAAA,QAAA,GAAR,eAAa,CAAA;;;qKAJF,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAAV,aAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;IAA1B,mBAAA,0BAAA,CAAA,IAAA,GAAAA,aAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,0BAA0B,wGCPvC,yFAGA,EAAA,eAAA,EAAAA,aAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;sHDIa,0BAA0B,EAAA,UAAA,EAAA,CAAA;sBALtCS,YAAS;IAAC,YAAA,IAAA,EAAA,CAAA;IACT,oBAAA,QAAQ,EAAE,2BAA2B;IACrC,oBAAA,WAAW,EAAE,sCAAsC;wBACnD,eAAe,EAAEC,0BAAuB,CAAC,MAAM;qBAChD,CAAA;8EAEU,KAAK,EAAA,CAAA;0BAAbE,QAAK;;;AEGR,QAAA,aAAA,kBAAA,YAAA;IAAA,IAAA,SAAA,aAAA,GAAA;;;;wJAAa,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAAZ,aAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;IAAb,mBAAA,aAAA,CAAA,IAAA,GAAAA,aAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAAA,aAAA,EAAA,IAAA,EAAA,aAAa,EALT,YAAA,EAAA,CAAA,gBAAgB,CACrB,EAAA,OAAA,EAAA,CAAA0E,eAAY,aACZ,gBAAgB,CAAA,EAAA,CAAA,CAAA;IAGf,mBAAA,aAAA,CAAA,IAAA,GAAA1E,aAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAAA,aAAA,EAAA,IAAA,EAAA,aAAa,EAFb,SAAA,EAAA,EAAE,EAFJ,OAAA,EAAA,CAAA,CAAC0E,eAAY,CAAC,CAAA,EAAA,CAAA,CAAA;sHAIZ,aAAa,EAAA,UAAA,EAAA,CAAA;sBANzBE,WAAQ;IAAC,YAAA,IAAA,EAAA,CAAA;wBACR,YAAY,EAAE,CAAC,gBAAgB,CAAC;wBAChC,OAAO,EAAE,CAACF,eAAY,CAAC;wBACvB,OAAO,EAAE,CAAC,gBAAgB,CAAC;IAC3B,oBAAA,SAAS,EAAE,EAAE;qBACd,CAAA;;;ACCD,QAAA,yBAAA,kBAAA,YAAA;IAAA,IAAA,SAAA,yBAAA,GAAA;;QAIE,yBAAoB,CAAA,SAAA,CAAA,oBAAA,GAApB,UAAqB,CAAa,EAAA;YAChC,IAAI,kBAAkB,CAAC,CAAC,CAAC,MAAqB,EAAE,iBAAiB,EAAE,UAAU,CAAC,EAAE;IAC9E,YAAA,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAC/B,SAAA;SACF,CAAA;;;oKARU,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA1E,aAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;6IAAzB,yBAAyB,EAAA,QAAA,EAAA,yBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,8BAAA,EAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,MAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EACzB6K,UAAO,EAAA,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA7K,aAAA,EAAA,QAAA,ECZpB,4JAIA,EAAA,MAAA,EAAA,CAAA,ijBAAA,CAAA,EAAA,eAAA,EAAAA,aAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;sHDOa,yBAAyB,EAAA,UAAA,EAAA,CAAA;sBANrCS,YAAS;IAAC,YAAA,IAAA,EAAA,CAAA;IACT,oBAAA,QAAQ,EAAE,yBAAyB;IACnC,oBAAA,WAAW,EAAE,oCAAoC;wBACjD,SAAS,EAAE,CAAC,oCAAoC,CAAC;wBACjD,eAAe,EAAEC,0BAAuB,CAAC,MAAM;qBAChD,CAAA;kCAEuC,IAAI,EAAA,CAAA;0BAAzCsC,YAAS;oBAAC,IAAA,EAAA,CAAA6H,UAAO,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;oBAGpC,oBAAoB,EAAA,CAAA;0BADnBrJ,eAAY;2BAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,CAAA;;;IEOnC,IAAMsJ,sBAAoB,GAAG;QAC3B,aAAa;QACb,iBAAiB;QACjB,yBAAyB;QACzB,0BAA0B;QAC1B,0BAA0B;QAC1B,mBAAmB;QACnB,mBAAmB;QACnB,mBAAmB;QACnB,yBAAyB;KAC1B,CAAC;IAEF,IAAMC,cAAY,0CACbD,sBAAoB,CAAA,CAAA,EAAA;QACvB,sBAAsB;QACtB,uBAAuB;QACvB,iBAAiB;MAClB,CAAC;AAQF,QAAA,UAAA,kBAAA,YAAA;IAAA,IAAA,SAAA,UAAA,GAAA;;;;qJAAa,UAAU,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA9K,aAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;IAAV,mBAAA,UAAA,CAAA,IAAA,GAAAA,aAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAAA,aAAA,EAAA,IAAA,EAAA,UAAU,iBAxBrB,aAAa;YACb,iBAAiB;YACjB,yBAAyB;YACzB,0BAA0B;YAC1B,0BAA0B;YAC1B,mBAAmB;YACnB,mBAAmB;YACnB,mBAAmB;IACnB,QAAA,yBAAyB,EAKzB,sBAAsB;YACtB,uBAAuB;IACvB,QAAA,iBAAiB,CAAA,EAAA,OAAA,EAAA,CAKP0E,eAAY,EAAE,UAAU,EAAEC,cAAW,EAAE,aAAa,CAAA,EAAA,OAAA,EAAA,CApB9D,aAAa;YACb,iBAAiB;YACjB,yBAAyB;YACzB,0BAA0B;YAC1B,0BAA0B;YAC1B,mBAAmB;YACnB,mBAAmB;YACnB,mBAAmB;YACnB,yBAAyB,CAAA,EAAA,CAAA,CAAA;sJAgBd,UAAU,EAAA,SAAA,EAFV,EAAE,EAAA,OAAA,EAAA,CAFJ,CAACD,eAAY,EAAE,UAAU,EAAEC,cAAW,EAAE,aAAa,CAAC,CAAA,EAAA,CAAA,CAAA;sHAIpD,UAAU,EAAA,UAAA,EAAA,CAAA;sBANtBC,WAAQ;IAAC,YAAA,IAAA,EAAA,CAAA;IACR,oBAAA,YAAY,EAAEmG,cAAY;wBAC1B,OAAO,EAAE,CAACrG,eAAY,EAAE,UAAU,EAAEC,cAAW,EAAE,aAAa,CAAC;IAC/D,oBAAA,OAAO,EAAEmG,sBAAoB;IAC7B,oBAAA,SAAS,EAAE,EAAE;qBACd,CAAA;;;ACrCD,QAAA,oBAAA,kBAAA,YAAA;IANA,IAAA,SAAA,oBAAA,GAAA;IASE,QAAA,IAAc,CAAA,cAAA,GAAG,KAAK,CAAC;IAIvB,QAAA,IAAI,CAAA,IAAA,GAAuB,OAAO,CAAC;SACpC;;;+JARY,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA9K,aAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;IAApB,mBAAA,oBAAA,CAAA,IAAA,GAAAA,aAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,oBAAoB,kOCRjC,4DAGA,EAAA,MAAA,EAAA,CAAA,6gCAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAmB,aAAA,CAAA,SAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,aAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAAnB,aAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;sHDKa,oBAAoB,EAAA,UAAA,EAAA,CAAA;sBANhCS,YAAS;IAAC,YAAA,IAAA,EAAA,CAAA;IACT,oBAAA,QAAQ,EAAE,oBAAoB;IAC9B,oBAAA,WAAW,EAAE,+BAA+B;wBAC5C,SAAS,EAAE,CAAC,+BAA+B,CAAC;wBAC5C,eAAe,EAAEC,0BAAuB,CAAC,MAAM;qBAChD,CAAA;kCAIC,cAAc,EAAA,CAAA;0BAFbC,cAAW;2BAAC,wBAAwB,CAAA;;0BACpCC,QAAK;oBAKN,IAAI,EAAA,CAAA;0BAFHD,cAAW;2BAAC,OAAO,CAAA;;0BACnBC,QAAK;;;AEdD,QAAM,qBAAqB,GAAG;;ACOrC,QAAA,WAAA,kBAAA,YAAA;IAHA,IAAA,SAAA,WAAA,GAAA;IAIU,QAAA,IAAA,CAAA,cAAc,GAAmC,IAAIoK,kBAAa,EAAE,CAAC;YACtE,IAAA,CAAA,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC;SAKrD;QAHQ,WAAS,CAAA,SAAA,CAAA,SAAA,GAAT,UAAU,MAAuB,EAAA;IACtC,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SAClC,CAAA;;;sJANU,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAAhL,aAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;IAAX,mBAAA,WAAA,CAAA,KAAA,GAAAA,aAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAAA,aAAA,EAAA,IAAA,EAAA,WAAW,cAFV,MAAM,EAAA,CAAA,CAAA;sHAEP,WAAW,EAAA,UAAA,EAAA,CAAA;sBAHvBK,aAAU;IAAC,YAAA,IAAA,EAAA,CAAA;IACV,oBAAA,UAAU,EAAE,MAAM;qBACnB,CAAA;;;ACID,QAAA,aAAA,kBAAA,YAAA;IAKE,IAAA,SAAA,aAAA,CAAoB,WAAwB,EAAA;IAAxB,QAAA,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;IAH5C,QAAA,IAAkB,CAAA,kBAAA,GAAG,KAAK,CAAC;SAGqB;IAEhD,IAAA,aAAA,CAAA,SAAA,CAAA,eAAe,GAAf,YAAA;YACE,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SAC9C,CAAA;;;wJATU,aAAa,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA4K,WAAA,EAAA,CAAA,EAAA,MAAA,EAAAjL,aAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;iIAAb,aAAa,EAAA,QAAA,EAAA,eAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,6BAAA,EAAA,yBAAA,EAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,MAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAGbkL,UAAO,EAAA,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAAlL,aAAA,EAAA,QAAA,ECbpB,0IAKA,EAAA,MAAA,EAAA,CAAA,61BAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAQ,aAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,OAAA,EAAA,CAAA,mBAAA,EAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,aAAA,CAAA,SAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,aAAA,EAAA,aAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;sHDKa,aAAa,EAAA,UAAA,EAAA,CAAA;sBALzBC,YAAS;IAAC,YAAA,IAAA,EAAA,CAAA;IACT,oBAAA,QAAQ,EAAE,eAAe;IACzB,oBAAA,WAAW,EAAE,uBAAuB;wBACpC,SAAS,EAAE,CAAC,uBAAuB,CAAC;qBACrC,CAAA;mGAGC,kBAAkB,EAAA,CAAA;0BADjBE,cAAW;2BAAC,6BAA6B,CAAA;oBAEJ,IAAI,EAAA,CAAA;0BAAzCqC,YAAS;oBAAC,IAAA,EAAA,CAAAkI,UAAO,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;;;IEXtC,IAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;IAC3B,IAAA,SAAS,EAAE,kBAAkB;IAC7B,IAAA,SAAS,EAAE,cAAc;IACzB,IAAA,UAAU,EAAE,eAAe;IAC5B,CAAA,CAAC,CAAC;IAGH,IAAA,eAAA,kBAAA,YAAA;IACE,IAAA,SAAA,eAAA,CAAoB,QAAmB,EAAA;IAAnB,QAAA,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAW;SAAI;IAE3C,IAAA,eAAA,CAAA,SAAA,CAAA,WAAW,GAAX,UAAY,OAAgB,EAAE,QAAgB,EAAA;IAC5C,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,SAAS,EAAE,QAAQ,EAAEjJ,sBAAmB,CAAC,QAAQ,CAAC,CAAC;YAC1F,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;SACnD,CAAA;IAED,IAAA,eAAA,CAAA,SAAA,CAAA,aAAa,GAAb,UAAc,OAAgB,EAAE,UAAkB,EAAA;;IAEhD,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,UAAU,EAAE,UAAU,EAAEA,sBAAmB,CAAC,QAAQ,CAAC,CAAC;SAC9F,CAAA;QAED,eAAe,CAAA,SAAA,CAAA,eAAA,GAAf,UAAgB,OAAgB,EAAA;YAC9B,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;YACrD,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;YACrD,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;SACvD,CAAA;;;0JAjBU,eAAe,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAjC,aAAA,CAAA,SAAA,EAAA,CAAA,EAAA,MAAA,EAAAA,aAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;8JAAf,eAAe,EAAA,CAAA,CAAA;sHAAf,eAAe,EAAA,UAAA,EAAA,CAAA;sBAD3BK,aAAU;;;ICDX,IAAM,QAAQ,GAAGN,sBAAiB,CAAC,QAAQ,CAAC;IAC5C,IAAM,UAAU,GAAGA,sBAAiB,CAAC,UAAU,CAAC;AAgBhD,QAAA,mBAAA,kBAAA,YAAA;IA0BE,IAAA,SAAA,mBAAA,CACU,UAAsB,EACtB,QAAmB,EACnB,qBAA4C,EAC5C,eAAgC,EAAA;IAHhC,QAAA,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;IACtB,QAAA,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAW;IACnB,QAAA,IAAqB,CAAA,qBAAA,GAArB,qBAAqB,CAAuB;IAC5C,QAAA,IAAe,CAAA,eAAA,GAAf,eAAe,CAAiB;YAtBlC,IAAA,CAAA,YAAY,GAAkB;IACpC,YAAA;IACE,gBAAA,IAAI,EAAE,IAAI;IACV,gBAAA,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC;IACxB,gBAAA,UAAU,EAAE,UAAU,CAAC,IAAI,CAAC;IAC7B,aAAA;IACD,YAAA;IACE,gBAAA,IAAI,EAAE,IAAI;IACV,gBAAA,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC;IACvB,gBAAA,UAAU,EAAE,UAAU,CAAC,GAAG,CAAC;IAC5B,aAAA;IACD,YAAA;IACE,gBAAA,IAAI,EAAE,IAAI;IACV,gBAAA,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC;IACvB,gBAAA,UAAU,EAAE,UAAU,CAAC,GAAG,CAAC;IAC5B,aAAA;aACF,CAAC;SAOE;IAEJ,IAAA,mBAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;YACE,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;IACvC,YAAA,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;gBACtF,IAAI,CAAC,aAAa,EAAE,CAAC;IACrB,YAAA,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC;IACpC,SAAA;SACF,CAAA;IAED,IAAA,mBAAA,CAAA,SAAA,CAAA,WAAW,GAAX,YAAA;YACE,IAAI,IAAI,CAAC,sBAAsB,EAAE;gBAC/B,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;gBACtD,IAAI,IAAI,CAAC,gBAAgB,EAAE;IACzB,gBAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;IACjF,aAAA;IACF,SAAA;SACF,CAAA;IAEO,IAAA,mBAAA,CAAA,SAAA,CAAA,aAAa,GAAb,YAAA;YAAA,IAYP,KAAA,GAAA,IAAA,CAAA;YAXC,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,YAAA;IAClD;;;;;IAKG;IACH,YAAA,UAAU,CAAC,YAAA;oBACT,KAAI,CAAC,WAAW,EAAE,CAAC;iBACpB,EAAE,CAAC,CAAC,CAAC;IACR,SAAC,CAAC,CAAC;SACJ,CAAA;IAEO,IAAA,mBAAA,CAAA,SAAA,CAAA,WAAW,GAAX,YAAA;YACN,IAAI,IAAI,CAAC,eAAe;gBAAE,OAAO;IAEjC,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;IAE5B,QAAA,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE;IAC1B,YAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,wBAAwB,EAAE,CAAC;IACxD,YAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;IACjF,SAAA;YAED,IAAI,CAAC,QAAQ,CAAC,QAAQ,CACpB,IAAI,CAAC,gBAAgB,EACrB,OAAO,EACJ,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,WAAW,GAAA,IAAI,CACjD,CAAC;IAEF,QAAA,IAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACrE,QAAA,IAAM,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,YAAY,CAAC;YAEzF,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;IACxD,QAAA,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,UAAU,CAAC,UAAU,CAAC,CAAC;IACzF,QAAA,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;SAC9B,CAAA;QAEO,mBAAa,CAAA,SAAA,CAAA,aAAA,GAAb,UAAc,IAAiB,EAAA;YACrC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC;IAC1C,QAAA,IAAM,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,YAAY,GAAG,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC7E,QAAA,OAAO,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;SACtC,CAAA;IAEO,IAAA,mBAAA,CAAA,SAAA,CAAA,wBAAwB,GAAxB,YAAA;IACN,QAAA,IAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YAC5D,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;YACtD,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAC;IACtD,QAAA,IAAI,CAAC,eAAe,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IAC5C,QAAA,OAAO,KAAK,CAAC;SACd,CAAA;IAEO,IAAA,mBAAA,CAAA,SAAA,CAAA,OAAO,GAAP,UAAQ,EAAW,EAAE,IAAiB,EAAA;IAC5C,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,EAAE,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;IACvD,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,EAAE,aAAa,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;SAC5D,CAAA;;;8JAzGU,mBAAmB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,aAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,aAAA,CAAA,SAAA,EAAA,EAAA,EAAA,KAAA,EAAAkC,qBAAA,EAAA,EAAA,EAAA,KAAA,EAAAiJ,eAAA,EAAA,CAAA,EAAA,MAAA,EAAAnL,aAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;uIAAnB,mBAAmB,EAAA,QAAA,EAAA,6DAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,CAAA,EAAA,EAAA,SAAA,EAFnB,CAAC,eAAe,CAAC,EAAA,QAAA,EAAAA,aAAA,EAAA,CAAA,CAAA;sHAEjB,mBAAmB,EAAA,UAAA,EAAA,CAAA;sBAJ/BC,YAAS;IAAC,YAAA,IAAA,EAAA,CAAA;IACT,oBAAA,QAAQ,EAAE,6DAA6D;wBACvE,SAAS,EAAE,CAAC,eAAe,CAAC;qBAC7B,CAAA;+MAG2B,MAAM,EAAA,CAAA;0BAA/BW,QAAK;2BAAC,iBAAiB,CAAA;;;AC6B1B,QAAA,kBAAA,kBAAA,YAAA;IAAA,IAAA,SAAA,kBAAA,GAAA;;;;6JAAa,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAAZ,aAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;sIAAlB,kBAAkB,EAAA,QAAA,EAAA,kBAAA,EAAA,QAAA,EAAAA,aAAA,EAAA,CAAA,CAAA;sHAAlB,kBAAkB,EAAA,UAAA,EAAA,CAAA;sBAH9BC,YAAS;IAAC,YAAA,IAAA,EAAA,CAAA;IACT,oBAAA,QAAQ,EAAE,kBAAkB;qBAC7B,CAAA;;AAMD,QAAA,qBAAA,kBAAA,YAAA;IAAA,IAAA,SAAA,qBAAA,GAAA;;;;gKAAa,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAAD,aAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;yIAArB,qBAAqB,EAAA,QAAA,EAAA,qBAAA,EAAA,QAAA,EAAAA,aAAA,EAAA,CAAA,CAAA;sHAArB,qBAAqB,EAAA,UAAA,EAAA,CAAA;sBAHjCC,YAAS;IAAC,YAAA,IAAA,EAAA,CAAA;IACT,oBAAA,QAAQ,EAAE,qBAAqB;qBAChC,CAAA;;AAMD,QAAA,yBAAA,kBAAA,YAAA;IAAA,IAAA,SAAA,yBAAA,GAAA;;;;oKAAa,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAAD,aAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;6IAAzB,yBAAyB,EAAA,QAAA,EAAA,yBAAA,EAAA,QAAA,EAAAA,aAAA,EAAA,CAAA,CAAA;sHAAzB,yBAAyB,EAAA,UAAA,EAAA,CAAA;sBAHrCC,YAAS;IAAC,YAAA,IAAA,EAAA,CAAA;IACT,oBAAA,QAAQ,EAAE,yBAAyB;qBACpC,CAAA;;AAMD,QAAA,oBAAA,kBAAA,YAAA;IAKE,IAAA,SAAA,oBAAA,CAAmB,QAA0B,EAAA;IAA1B,QAAA,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAkB;IAH5B,QAAA,IAAa,CAAA,aAAA,GAAG,IAAI,CAAC;IACrB,QAAA,IAAY,CAAA,YAAA,GAAG,KAAK,CAAC;SAEW;IAEjD,IAAA,MAAA,CAAA,cAAA,CAAI,oBAAQ,CAAA,SAAA,EAAA,UAAA,EAAA;IAAZ,QAAA,GAAA,EAAA,YAAA;IACE,YAAA,OAAO,IAAI,CAAC,MAAM,GAAI,IAAI,CAAC,MAAuB,CAAC,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC;aAChF;;;IAAA,KAAA,CAAA,CAAA;IAED,IAAA,MAAA,CAAA,cAAA,CAAI,oBAAO,CAAA,SAAA,EAAA,SAAA,EAAA;IAAX,QAAA,GAAA,EAAA,YAAA;IACE,YAAA,OAAO,IAAI,CAAC,MAAM,GAAI,IAAI,CAAC,MAAsB,CAAC,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC;aAC7E;;;IAAA,KAAA,CAAA,CAAA;;;+JAbU,oBAAoB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAD,aAAA,CAAA,WAAA,EAAA,CAAA,EAAA,MAAA,EAAAA,aAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;wIAApB,oBAAoB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,CAAA,EAAA,EAAA,QAAA,EAAAA,aAAA,EAAA,CAAA,CAAA;sHAApB,oBAAoB,EAAA,UAAA,EAAA,CAAA;sBAHhCC,YAAS;IAAC,YAAA,IAAA,EAAA,CAAA;IACT,oBAAA,QAAQ,EAAE,oBAAoB;qBAC/B,CAAA;iHAE4B,MAAM,EAAA,CAAA;0BAAhCW,QAAK;2BAAC,kBAAkB,CAAA;;AAkB3B,QAAA,oBAAA,kBAAA,YAAA;IAGE,IAAA,SAAA,oBAAA,CAAmB,QAA0B,EAAA;IAA1B,QAAA,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAkB;SAAI;IAEjD,IAAA,MAAA,CAAA,cAAA,CAAI,oBAAO,CAAA,SAAA,EAAA,SAAA,EAAA;IAAX,QAAA,GAAA,EAAA,YAAA;gBACE,OAAO,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;aACzC;;;IAAA,KAAA,CAAA,CAAA;;;+JAPU,oBAAoB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAZ,aAAA,CAAA,WAAA,EAAA,CAAA,EAAA,MAAA,EAAAA,aAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;wIAApB,oBAAoB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,CAAA,EAAA,EAAA,QAAA,EAAAA,aAAA,EAAA,CAAA,CAAA;sHAApB,oBAAoB,EAAA,UAAA,EAAA,CAAA;sBAHhCC,YAAS;IAAC,YAAA,IAAA,EAAA,CAAA;IACT,oBAAA,QAAQ,EAAE,oBAAoB;qBAC/B,CAAA;iHAE4B,MAAM,EAAA,CAAA;0BAAhCW,QAAK;2BAAC,kBAAkB,CAAA;;AAc3B,QAAA,qBAAA,kBAAA,YAAA;IAKE,IAAA,SAAA,qBAAA,CAA4C,YAAmC,EAAA;IAAnC,QAAA,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAuB;;;IAFrD,QAAA,IAAI,CAAA,IAAA,GAAG,OAAO,CAAC;SAE0C;IAEnF,IAAA,qBAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;IACE,QAAA,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,KAAK,QAAQ,EAAE;IACrE,YAAA,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;IACnB,SAAA;SACF,CAAA;;;gKAXU,qBAAqB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAwK,qBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAApL,aAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;IAArB,mBAAA,qBAAA,CAAA,IAAA,GAAAA,aAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,qBAAqB,0HAHtB,6BAA6B,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,uBAAA,CAAA,EAAA,CAAA,CAAA;sHAG5B,qBAAqB,EAAA,UAAA,EAAA,CAAA;sBALjCS,YAAS;IAAC,YAAA,IAAA,EAAA,CAAA;IACT,oBAAA,QAAQ,EAAE,qBAAqB;IAC/B,oBAAA,QAAQ,EAAE,6BAA6B;wBACvC,MAAM,EAAE,CAAC,uBAAuB,CAAC;qBAClC,CAAA;;;kCAMc6D,WAAQ;;kCAAI+G,WAAQ;;6BAFP,IAAI,EAAA,CAAA;0BAA7B1K,cAAW;2BAAC,WAAW,CAAA;;AAe1B,QAAA,kBAAA,kBAAA,YAAA;IAAA,IAAA,SAAA,kBAAA,GAAA;;;;6JAAa,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAAX,aAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;IAAlB,mBAAA,kBAAA,CAAA,IAAA,GAAAA,aAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,kBAAkB,mEAFnB,6BAA6B,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA;sHAE5B,kBAAkB,EAAA,UAAA,EAAA,CAAA;sBAJ9BS,YAAS;IAAC,YAAA,IAAA,EAAA,CAAA;IACT,oBAAA,QAAQ,EAAE,kBAAkB;IAC5B,oBAAA,QAAQ,EAAE,6BAA6B;qBACxC,CAAA;;AAOD,QAAA,oBAAA,kBAAA,YAAA;IAAA,IAAA,SAAA,oBAAA,GAAA;;;;+JAAa,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAAT,aAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;IAApB,mBAAA,oBAAA,CAAA,IAAA,GAAAA,aAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,oBAAoB,qEAFrB,6BAA6B,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA;sHAE5B,oBAAoB,EAAA,UAAA,EAAA,CAAA;sBAJhCS,YAAS;IAAC,YAAA,IAAA,EAAA,CAAA;IACT,oBAAA,QAAQ,EAAE,oBAAoB;IAC9B,oBAAA,QAAQ,EAAE,6BAA6B;qBACxC,CAAA;;AAOD,QAAA,oBAAA,kBAAA,YAAA;IAAA,IAAA,SAAA,oBAAA,GAAA;;;;+JAAa,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAAT,aAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;IAApB,mBAAA,oBAAA,CAAA,IAAA,GAAAA,aAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,oBAAoB,qEAFrB,6DAA2D,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA;sHAE1D,oBAAoB,EAAA,UAAA,EAAA,CAAA;sBAJhCS,YAAS;IAAC,YAAA,IAAA,EAAA,CAAA;IACT,oBAAA,QAAQ,EAAE,oBAAoB;IAC9B,oBAAA,QAAQ,EAAE,6DAA2D;qBACtE,CAAA;;AASD,QAAA,aAAA,kBAAA,YAAA;IAqFE,IAAA,SAAA,aAAA,CACU,UAAsB,EACtB,QAAmB,EACnB,MAAc,EACd,iBAAoC,EACpC,SAAoB,EACpB,sBAA8C,EACtB,aAA4B,EAAA;IANpD,QAAA,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;IACtB,QAAA,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAW;IACnB,QAAA,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;IACd,QAAA,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAmB;IACpC,QAAA,IAAS,CAAA,SAAA,GAAT,SAAS,CAAW;IACpB,QAAA,IAAsB,CAAA,sBAAA,GAAtB,sBAAsB,CAAwB;IACtB,QAAA,IAAa,CAAA,aAAA,GAAb,aAAa,CAAe;IAtFrD,QAAA,IAAc,CAAA,cAAA,GAAgC,MAAM,CAAC;IAkBpD,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI2C,eAAY,EAAQ,CAAC;IACjC,QAAA,IAAA,CAAA,KAAK,GAAG,IAAIA,eAAY,EAAQ,CAAC;IACjC,QAAA,IAAA,CAAA,OAAO,GAAG,IAAIA,eAAY,EAAsB,CAAC;IA2CnD,QAAA,IAAA,CAAA,gCAAgC,GACtC,IAAI,CAAC,6BAA6B,EAAE,CAAC;IAC/B,QAAA,IAAI,CAAA,IAAA,GAAa,EAAE,CAAC;IAGpB,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI/B,YAAO,EAAE,CAAC;IAC7B,QAAA,IAAA,CAAA,gBAAgB,GAA4B,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CACzEW,mBAAS,CAAC,IAAI,CAAC,YAAY,CAAC,EAC5B+B,gBAAM,CAAC,UAAC,KAAkB,EAAK,EAAA,OAAA,KAAK,YAAYuH,oBAAe,CAAA,EAAA,CAAC,CACjE,CAAC;IAEM,QAAA,IAAA,CAAA,cAAc,GAA4B,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CACvEtJ,mBAAS,CAAC,IAAI,CAAC,YAAY,CAAC,EAC5B+B,gBAAM,CAAC,UAAC,KAAkB,EAAK,EAAA,OAAA,KAAK,YAAYC,kBAAa,CAAA,EAAA,CAAC,CAC/D,CAAC;SAUE;IAjFJ,IAAA,MAAA,CAAA,cAAA,CAAW,aAAkB,CAAA,SAAA,EAAA,oBAAA,EAAA;IAA7B,QAAA,GAAA,EAAA,YAAA;gBACE,OAAO,IAAI,CAAC,mBAAmB,CAAC;aACjC;IACD,QAAA,GAAA,EAAA,UAC8B,KAAc,EAAA;gBAD5C,IAOC,KAAA,GAAA,IAAA,CAAA;gBALC,IAAI,IAAI,CAAC,aAAa,EAAE;;IAEtB,gBAAA,UAAU,CAAC,YAAA,EAAM,QAAC,KAAI,CAAC,aAAa,CAAC,kBAAkB,GAAG,KAAK,EAA9C,EAA+C,CAAC,CAAC;IACnE,aAAA;IACD,YAAA,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;aAClC;;;IARA,KAAA,CAAA,CAAA;IAiFD,IAAA,aAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;YACE,IAAI,CAAC,aAAa,EAAE,CAAC;SACtB,CAAA;QAED,aAAW,CAAA,SAAA,CAAA,WAAA,GAAX,UAAY,OAAsB,EAAA;YAChC,IAAI,OAAO,CAAC,aAAa,EAAE;IACzB,YAAA,IAAI,CAAC,gBAAgB,GAChB,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,IAAI,CAAC,gBAAgB,CAAA,EAAA,EACxB,QAAQ,EAAE,OAAO,CAAC,aAAa,CAAC,YAAY,GAC7C,CAAC;IACH,SAAA;YACD,IAAI,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa,EAAE;gBACvD,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC;gBAC3C,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,QAAQ,KAAK,SAAS,CAAC;IACpD,SAAA;SACF,CAAA;IAED,IAAA,aAAA,CAAA,SAAA,CAAA,eAAe,GAAf,YAAA;YAAA,IAoBC,KAAA,GAAA,IAAA,CAAA;IAnBC,QAAA,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,UAAC,KAAsB,EAAA;gBACrD,IACE,CAAC,KAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC;oBAC9B,CAAC,KAAI,CAAC,sBAAsB,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC;IACpD,gBAAA,CAAC,KAAI,CAAC,sBAAsB,CAAC,YAAY,CAAC,KAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAC1D;oBACA,KAAI,CAAC,OAAO,EAAE,CAAC;IAChB,aAAA;IACH,SAAC,CAAC,CAAC;IAEH,QAAA,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,UAAC,KAAoB,EAAA;gBACjD,IAAI,KAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,iBAAiB,CAAC,EAAE;oBAC/C,KAAI,CAAC,OAAO,EAAE,CAAC;IAChB,aAAA;IACH,SAAC,CAAC,CAAC;YAEH,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,gBAAgB,CAAC,qBAAqB,EAAE,YAAA;gBAClE,KAAI,CAAC,OAAO,CAAC,WAAW,CAAClE,sBAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACzD,SAAC,CAAC,CAAC;SACJ,CAAA;IAED,IAAA,aAAA,CAAA,SAAA,CAAA,qBAAqB,GAArB,YAAA;IACE,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;gBACxC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBAChC,IAAI,CAAC,OAAO,EAAE,CAAC;IAChB,SAAA;YAED,IAAI,CAAC,eAAe,EAAE,CAAC;YACvB,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACzB,IAAI,CAAC,iBAAiB,EAAE,CAAC;IACzB,QAAA,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC;SACxC,CAAA;IAED,IAAA,aAAA,CAAA,SAAA,CAAA,WAAW,GAAX,YAAA;YAAA,IAQC,KAAA,GAAA,IAAA,CAAA;IAPC,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;IACzB,QAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC;IAE7B,QAAA,IAAI,CAAC,gCAAgC,CAAC,UAAU,EAAE,CAAC;YACnD,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,mBAAmB,CAAC,qBAAqB,EAAE,YAAA;gBACrE,KAAI,CAAC,OAAO,CAAC,WAAW,CAACA,sBAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACzD,SAAC,CAAC,CAAC;SACJ,CAAA;QAED,aAAoB,CAAA,SAAA,CAAA,oBAAA,GAApB,UAAqB,KAAU,EAAA;IAC7B,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;IAChB,YAAA,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;IACnD,SAAA,CAAC,CAAC;SACJ,CAAA;IAEO,IAAA,aAAA,CAAA,SAAA,CAAA,OAAO,GAAP,YAAA;YACN,IAAI,IAAI,CAAC,UAAU;gBAAE,OAAO;IAC5B,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;IAEvB,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;YAClB,IAAI,IAAI,CAAC,SAAS,EAAE;gBAClB,IAAI,CAAC,gCAAgC,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;IAC7E,SAAA;SACF,CAAA;IAEO,IAAA,aAAA,CAAA,SAAA,CAAA,OAAO,GAAP,YAAA;IACN,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;YAClB,IAAI,IAAI,CAAC,SAAS,EAAE;gBAClB,IAAI,CAAC,gCAAgC,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;IAC/E,SAAA;IACD,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;IAExB,QAAA,IAAI,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,aAAa,EAAE;IACjD,YAAA,IAAI,CAAC,aAAa,CAAC,kBAAkB,GAAG,KAAK,CAAC;IAC/C,SAAA;SACF,CAAA;IAEO,IAAA,aAAA,CAAA,SAAA,CAAA,eAAe,GAAf,YAAA;YAAA,IAqBP,KAAA,GAAA,IAAA,CAAA;;YAnBC,IAAI,IAAI,CAAC,YAAY;gBAAE,OAAO;IAC9B,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC;IAC3E,QAAA,IAAI,CAAC,mBAAmB,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC;IAC9C,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,QAAQ,KAAK,SAAS,IAAI,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC;YAEpF,IAAI,IAAI,CAAC,YAAY,EAAE;IACrB,YAAA,UAAU,CAAC,YAAA;oBACT,KAAI,CAAC,gCAAgC,CAAC,OAAO,CAAC,KAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;IAC9E,aAAC,CAAC,CAAC;IACJ,SAAA;YAED,IAAM,oBAAoB,GAAG,IAAI,CAAC,mBAAmB,IAAI,IAAI,CAAC,mBAAmB,CAAC;;;IAGlF,QAAA,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,0BAA0B;kBACvD,IAAI,CAAC,0BAA0B;IACjC,cAAE,OAAO,IAAI,CAAC,YAAY,KAAK,QAAQ;sBACnC,IAAI,CAAC,0BAA0B;sBAC/B,oBAAoB,CAAC;SAC5B,CAAA;IAEO,IAAA,aAAA,CAAA,SAAA,CAAA,iBAAiB,GAAjB,YAAA;YAAA,IAaP,KAAA,GAAA,IAAA,CAAA;IAZC,QAAA,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,UAAC,UAAU,EAAA;gBACpC,IAAI,UAAU,CAAC,OAAO,EAAE;IACtB,gBAAA,KAAI,CAAC,oBAAoB,GAAG,UAAU,CAAC,QAAQ,CAAC;IAChD,gBAAA,KAAI,CAAC,0BAA0B,GAAG,IAAI,CAAC;IACxC,aAAA;IAAM,iBAAA;IACL,gBAAA,KAAI,CAAC,mBAAmB,GAAG,UAAU,CAAC,QAAQ,CAAC;oBAC/C,IAAI,UAAU,CAAC,QAAQ,EAAE;IACvB,oBAAA,KAAI,CAAC,qBAAqB,GAAG,UAAU,CAAC,QAAQ,CAAC;IAClD,iBAAA;IACF,aAAA;IACH,SAAC,CAAC,CAAC;YACH,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC;SACpD,CAAA;IAEO,IAAA,aAAA,CAAA,SAAA,CAAA,iBAAiB,GAAjB,YAAA;YAAA,IAQP,KAAA,GAAA,IAAA,CAAA;IAPC,QAAA,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,UAAC,OAAO,EAAA;gBACjC,IAAI,OAAO,CAAC,OAAO,EAAE;IACnB,gBAAA,KAAI,CAAC,oBAAoB,GAAG,OAAO,CAAC,QAAQ,CAAC;IAC9C,aAAA;IAAM,iBAAA;IACL,gBAAA,KAAI,CAAC,qBAAqB,GAAG,OAAO,CAAC,QAAQ,CAAC;IAC/C,aAAA;IACH,SAAC,CAAC,CAAC;SACJ,CAAA;IAEO,IAAA,aAAA,CAAA,SAAA,CAAA,aAAa,GAAb,YAAA;YACN,IAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,UAAU,CAAC;IACxD,QAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;IACjE,QAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC;IACvE,QAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC;IACxE,QAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC;SACxE,CAAA;IAEO,IAAA,aAAA,CAAA,SAAA,CAAA,6BAA6B,GAA7B,YAAA;YAAA,IAgBP,KAAA,GAAA,IAAA,CAAA;IAfC,QAAA,IAAM,OAAO,GAAG;IACd,YAAA,UAAU,EAAE,KAAK;aAClB,CAAC;YAEF,IAAI,WAAW,GAAG,KAAK,CAAC;YACxB,IAAM,QAAQ,GAAG,UAAC,OAAO,EAAA;IACvB,YAAA,IAAI,WAAW,EAAE;oBACf,KAAI,CAAC,mBAAmB,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC;oBACtD,KAAI,CAAC,2BAA2B,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC;IAC9D,gBAAA,KAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC;IACxC,aAAA;IAAM,iBAAA;oBACL,WAAW,GAAG,IAAI,CAAC;IACpB,aAAA;IACH,SAAC,CAAC;IACF,QAAA,OAAO,IAAI,oBAAoB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;SACpD,CAAA;QAGD,aAAmB,CAAA,SAAA,CAAA,mBAAA,GAAnB,UAAoB,IAAiC,EAAA;IACnD,QAAA,IAAI,IAAI,IAAI,IAAI,CAAC,cAAc,EAAE;IAC/B,YAAA,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,KAAK,CAAC,WAAW,CACpD,mBAAmB,EAChB,IAAI,CAAC,cAAc,GAAA,IAAI,CAC3B,CAAC;IACH,SAAA;SACF,CAAA;IAGD,IAAA,aAAA,CAAA,SAAA,CAAA,mBAAmB,GAAnB,YAAA;IACE,QAAA,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,KAAK,CAAC,WAAW,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAAC;SACpF,CAAA;;;wJA/QU,aAAa,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAE,aAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,aAAA,CAAA,SAAA,EAAA,EAAA,EAAA,KAAA,EAAAQ,eAAA,CAAA,MAAA,EAAA,EAAA,EAAA,KAAA,EAAAR,aAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAAmD,SAAA,EAAA,EAAA,EAAA,KAAA,EAAAoI,sBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAAxL,aAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;IAAb,mBAAA,aAAA,CAAA,IAAA,GAAAA,aAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,aAAa,ojBA2CV,yBAAyB,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAAyBwH,cAAW,EAAA,EAAA,EAAA,YAAA,EAAA,qBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAE7D,kBAAkB,EAAyB,WAAA,EAAA,IAAA,EAAA,IAAA,EAAAA,cAAW,EAEtD,EAAA,EAAA,YAAA,EAAA,wBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,qBAAqB,2BAAyBA,cAAW,EAAA,EAAA,EAAA,YAAA,EAAA,eAAA,EAAA,SAAA,EAEtD,oBAAoB,EAAA,EAAA,EAAA,YAAA,EAAA,eAAA,EAAA,SAAA,EAEpB,oBAAoB,EAvB1B,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,SAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAAnF,aAAU,EACV,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,mBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAAA,aAAU,2BAAwBX,aAAU,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAE5CY,YAAS,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAAwBZ,aAAU,EAE3C,MAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA+J,YAAS,EAAwB,WAAA,EAAA,IAAA,EAAA,IAAA,EAAA/J,aAAU,+GAGPA,aAAU,EAAA,EAAA,EAAA,YAAA,EAAA,qBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAGD8F,cAAW,EAEJ,MAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,4BAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,4BAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAAAA,cAAW,2ECvL5E,+0GAqGA,EAAA,MAAA,EAAA,CAAA,svDAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAkE,aAAA,CAAA,SAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,MAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,aAAA,CAAA,UAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,aAAA,CAAA,UAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,aAAA,CAAA,aAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,aAAA,EAAA,UAAA,EAAA,MAAA,EAAA,MAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,aAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,aAAA,CAAA,UAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,SAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,aAAA,CAAA,YAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,UAAA,EAAA,YAAA,EAAA,SAAA,EAAA,SAAA,EAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAC,gBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,EAAA,EAAA,IAAA,EAAAD,aAAA,CAAA,SAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,aAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAA,aAAA,CAAA,qBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,iBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA5I,aAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,aAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,aAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA8I,mBAAA,EAAA,QAAA,EAAA,6DAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA5L,aAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;sHDyCa,aAAa,EAAA,UAAA,EAAA,CAAA;sBANzBS,YAAS;IAAC,YAAA,IAAA,EAAA,CAAA;IACT,oBAAA,QAAQ,EAAE,YAAY;IACtB,oBAAA,WAAW,EAAE,uBAAuB;wBACpC,SAAS,EAAE,CAAC,uBAAuB,CAAC;wBACpC,eAAe,EAAEC,0BAAuB,CAAC,MAAM;qBAChD,CAAA;;;kCA6FI4D,WAAQ;;kCAAI+G,WAAQ;;6BAzFd,KAAK,EAAA,CAAA;0BAAbzK,QAAK;oBACG,QAAQ,EAAA,CAAA;0BAAhBA,QAAK;oBACG,YAAY,EAAA,CAAA;0BAApBA,QAAK;oBACG,cAAc,EAAA,CAAA;0BAAtBA,QAAK;oBACG,eAAe,EAAA,CAAA;0BAAvBA,QAAK;oBACG,cAAc,EAAA,CAAA;0BAAtBA,QAAK;oBACG,aAAa,EAAA,CAAA;0BAArBA,QAAK;oBAOK,kBAAkB,EAAA,CAAA;0BAD5BA,QAAK;oBASI,KAAK,EAAA,CAAA;0BAAd4C,SAAM;oBACG,KAAK,EAAA,CAAA;0BAAdA,SAAM;oBACG,OAAO,EAAA,CAAA;0BAAhBA,SAAM;oBAE0C,OAAO,EAAA,CAAA;0BAAvDR,YAAS;oBAAC,IAAA,EAAA,CAAAX,aAAU,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;oBAE/B,iBAAiB,EAAA,CAAA;0BADxBW,YAAS;2BAACX,aAAU,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAEX,aAAU,EAAE,CAAA;oBAGzD,gBAAgB,EAAA,CAAA;0BADfsB,YAAS;2BAACV,YAAS,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAEZ,aAAU,EAAE,CAAA;oBAGhD,gBAAgB,EAAA,CAAA;0BADvBsB,YAAS;2BAACyI,YAAS,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE/J,aAAU,EAAE,CAAA;oBAIhD,SAAS,EAAA,CAAA;0BADhBsB,YAAS;2BAAC,WAAW,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAEtB,aAAU,EAAE,CAAA;oBAInD,mBAAmB,EAAA,CAAA;0BAD1BsB,YAAS;2BAAC,qBAAqB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAEwE,cAAW,EAAE,CAAA;oBAG7D,0BAA0B,EAAA,CAAA;0BADjCxE,YAAS;2BAAC,4BAA4B,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAEwE,cAAW,EAAE,CAAA;oBAGpE,0BAA0B,EAAA,CAAA;0BADjC7F,eAAY;2BAAC,yBAAyB,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE6F,cAAW,EAAE,CAAA;oBAG7E,mBAAmB,EAAA,CAAA;0BADlB7F,eAAY;2BAAC,kBAAkB,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE6F,cAAW,EAAE,CAAA;oBAGtE,sBAAsB,EAAA,CAAA;0BADrB7F,eAAY;2BAAC,qBAAqB,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE6F,cAAW,EAAE,CAAA;oBAGzE,aAAa,EAAA,CAAA;0BADZ/D,kBAAe;2BAAC,oBAAoB,CAAA;oBAG7B,aAAa,EAAA,CAAA;0BADpBA,kBAAe;2BAAC,oBAAoB,CAAA;oBAgNrC,mBAAmB,EAAA,CAAA;0BADlBjC,eAAY;2BAAC,yBAAyB,EAAE,CAAC,QAAQ,CAAC,CAAA;oBAWnD,mBAAmB,EAAA,CAAA;0BADlBA,eAAY;2BAAC,yBAAyB,CAAA;;;AEvYzC,QAAA,mBAAA,kBAAA,YAAA;IAIE,IAAA,SAAA,mBAAA,CACkC,aAA4B,EACpD,WAAuB,EACvB,QAAmB,EAAA;IAFK,QAAA,IAAa,CAAA,aAAA,GAAb,aAAa,CAAe;IACpD,QAAA,IAAW,CAAA,WAAA,GAAX,WAAW,CAAY;IACvB,QAAA,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAW;IAL7B,QAAA,IAAU,CAAA,UAAA,GAAY,IAAI,CAAC;YAOzB,IAAI,CAAC,aAAa,EAAE;IAClB,YAAA,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;IACnE,SAAA;SACF;IAED,IAAA,mBAAA,CAAA,SAAA,CAAA,KAAK,GAAL,YAAA;IACE,QAAA,IAAI,CAAC,aAAa,CAAC,kBAAkB,GAAG,KAAK,CAAC;YAC9C,IAAI,CAAC,QAAQ,CAAC,WAAW,CACvB,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,aAAa,EAC5C,IAAI,CAAC,WAAW,CAAC,aAAa,EAC9B,IAAI,CACL,CAAC;SACH,CAAA;IAED,IAAA,mBAAA,CAAA,SAAA,CAAA,WAAW,GAAX,YAAA;IACE,QAAA,IAAI,CAAC,aAAa,CAAC,kBAAkB,GAAG,KAAK,CAAC;SAC/C,CAAA;;;8JAzBU,mBAAmB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAqK,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAA7L,aAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,aAAA,CAAA,SAAA,EAAA,CAAA,EAAA,MAAA,EAAAA,aAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;IAAnB,mBAAA,mBAAA,CAAA,IAAA,GAAAA,aAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,mBAAmB,0GCnBhC,+FAGA,EAAA,MAAA,EAAA,CAAA,8XAAA,CAAA,EAAA,eAAA,EAAAA,aAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;sHDgBa,mBAAmB,EAAA,UAAA,EAAA,CAAA;sBAN/BS,YAAS;IAAC,YAAA,IAAA,EAAA,CAAA;IACT,oBAAA,QAAQ,EAAE,mBAAmB;IAC7B,oBAAA,WAAW,EAAE,8BAA8B;wBAC3C,SAAS,EAAE,CAAC,8BAA8B,CAAC;wBAC3C,eAAe,EAAEC,0BAAuB,CAAC,MAAM;qBAChD,CAAA;;;kCAMI4D,WAAQ;;kCAAI+G,WAAQ;;6BAHvB,UAAU,EAAA,CAAA;0BADTzK,QAAK;;;AEZR,QAAA,gBAAA,kBAAA,YAAA;IAAA,IAAA,SAAA,gBAAA,GAAA;;;;2JAAa,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAAZ,aAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;4JAAhB,gBAAgB,EAAA,YAAA,EAAA,CAHZ,mBAAmB,CAAA,EAAA,OAAA,EAAA,CACxB,mBAAmB,CAAA,EAAA,CAAA,CAAA;4JAElB,gBAAgB,EAAA,CAAA,CAAA;sHAAhB,gBAAgB,EAAA,UAAA,EAAA,CAAA;sBAJ5B4E,WAAQ;IAAC,YAAA,IAAA,EAAA,CAAA;wBACR,YAAY,EAAE,CAAC,mBAAmB,CAAC;wBACnC,OAAO,EAAE,CAAC,mBAAmB,CAAC;qBAC/B,CAAA;;;AC4CD,QAAA,UAAA,kBAAA,YAAA;IAAA,IAAA,SAAA,UAAA,GAAA;;;;qJAAa,UAAU,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA5E,aAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;IAAV,mBAAA,UAAA,CAAA,IAAA,GAAAA,aAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAAA,aAAA,EAAA,IAAA,EAAA,UAAU,iBA5BnB,aAAa;YACb,oBAAoB;YACpB,oBAAoB;YACpB,oBAAoB;YACpB,mBAAmB;YACnB,oBAAoB;YACpB,qBAAqB;YACrB,kBAAkB;YAClB,kBAAkB;YAClB,qBAAqB;IACrB,QAAA,yBAAyB,CAAA,EAAA,OAAA,EAAA,CAEjB0E,eAAY,EAAEC,cAAW,EAAE,gBAAgB,EAAE,aAAa,CAAA,EAAA,OAAA,EAAA,CAElE,aAAa;YACb,oBAAoB;YACpB,oBAAoB;YACpB,oBAAoB;YACpB,mBAAmB;YACnB,oBAAoB;YACpB,qBAAqB;YACrB,kBAAkB;YAClB,kBAAkB;YAClB,qBAAqB;YACrB,yBAAyB;YACzB,gBAAgB,CAAA,EAAA,CAAA,CAAA;sJAGP,UAAU,EAAA,OAAA,EAAA,CAhBZ,CAACD,eAAY,EAAEC,cAAW,EAAE,gBAAgB,EAAE,aAAa,CAAC,EAanE,gBAAgB,CAAA,EAAA,CAAA,CAAA;sHAGP,UAAU,EAAA,UAAA,EAAA,CAAA;sBA9BtBC,WAAQ;IAAC,YAAA,IAAA,EAAA,CAAA;IACR,oBAAA,YAAY,EAAE;4BACZ,aAAa;4BACb,oBAAoB;4BACpB,oBAAoB;4BACpB,oBAAoB;4BACpB,mBAAmB;4BACnB,oBAAoB;4BACpB,qBAAqB;4BACrB,kBAAkB;4BAClB,kBAAkB;4BAClB,qBAAqB;4BACrB,yBAAyB;IAC1B,qBAAA;wBACD,OAAO,EAAE,CAACF,eAAY,EAAEC,cAAW,EAAE,gBAAgB,EAAE,aAAa,CAAC;IACrE,oBAAA,OAAO,EAAE;4BACP,aAAa;4BACb,oBAAoB;4BACpB,oBAAoB;4BACpB,oBAAoB;4BACpB,mBAAmB;4BACnB,oBAAoB;4BACpB,qBAAqB;4BACrB,kBAAkB;4BAClB,kBAAkB;4BAClB,qBAAqB;4BACrB,yBAAyB;4BACzB,gBAAgB;IACjB,qBAAA;qBACF,CAAA;;;ACzBD,QAAA,cAAA,kBAAA,YAAA;IAbA,IAAA,SAAA,cAAA,GAAA;IAoBW,QAAA,IAAI,CAAA,IAAA,GAAG,CAAC,CAAC;IAET,QAAA,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;IAchB,QAAA,IAAA,CAAA,MAAM,GAAyB,IAAIvB,eAAY,EAAU,CAAC;IAuC7D,QAAA,IAAA,CAAA,SAAS,GAAG,YAAA,GAAQ,CAAC;IAErB,QAAA,IAAA,CAAA,eAAe,GAAG,UAAC,CAAM,EAAA,GAAO,CAAC;SAezC;IArEC,IAAA,MAAA,CAAA,cAAA,CACI,cAAK,CAAA,SAAA,EAAA,OAAA,EAAA;IAQT,QAAA,GAAA,EAAA,YAAA;gBACE,OAAO,IAAI,CAAC,YAAY,CAAC;aAC1B;IAXD,QAAA,GAAA,EAAA,UACU,KAAa,EAAA;IACrB,YAAA,IAAI,KAAK,KAAK,IAAI,CAAC,YAAY,EAAE;IAC/B,gBAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;IAC1B,gBAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;oBACxC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACrC,aAAA;aACF;;;IAAA,KAAA,CAAA,CAAA;QAUD,cAAW,CAAA,SAAA,CAAA,WAAA,GAAX,UAAY,CAAgB,EAAA;YAA5B,IAiBC,KAAA,GAAA,IAAA,CAAA;YAhBC,IAAI,CAAC,IAAI,CAAC,KAAK;gBAAE,OAAO;IAExB;;IAEG;IACH,QAAA,IAAM,aAAa,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC;YACxD,IAAI,aAAa,GAAG,CAAC,EAAE;IACrB,YAAA,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;IACvC,SAAA;IAED;;IAEG;IACH,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,UAAC,CAAC,EAAE,CAAC,EAAA;IACvC,YAAA,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,KAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,KAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACrE,SAAC,CAAC,CAAC;SACJ,CAAA;IAEO,IAAA,cAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;YACN,IAAM,KAAK,GAAG,EAAE,CAAC;YACjB,KAAK,IAAI,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;IACxF,YAAA,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACnB,SAAA;IACD,QAAA,OAAO,KAAK,CAAC;SACd,CAAA;QAEM,cAAgB,CAAA,SAAA,CAAA,gBAAA,GAAhB,UAAkB,UAAmB,EAAA;IAC1C,QAAA,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC;SAC5B,CAAA;QAEM,cAAmB,CAAA,SAAA,CAAA,mBAAA,GAAnB,UAAoB,MAAW,EAAA;YACpC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;SACtC,CAAA;QAMM,cAAU,CAAA,SAAA,CAAA,UAAA,GAAV,UAAW,KAAU,EAAA;YAC1B,IAAI,KAAK,KAAK,SAAS,EAAE;IACvB,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACpB,SAAA;SACF,CAAA;QAEM,cAAiB,CAAA,SAAA,CAAA,iBAAA,GAAjB,UAAkB,EAAO,EAAA;IAC9B,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;SACrB,CAAA;QAEM,cAAgB,CAAA,SAAA,CAAA,gBAAA,GAAhB,UAAiB,EAAO,EAAA;IAC7B,QAAA,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;SAC3B,CAAA;;;yJA9EU,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAApD,aAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;IAAd,mBAAA,cAAA,CAAA,IAAA,GAAAA,aAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,cAAc,EATd,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,UAAA,EAAA,GAAA,EAAA,KAAA,EAAA,GAAA,EAAA,KAAA,EAAA,GAAA,EAAA,KAAA,EAAA,IAAA,EAAA,MAAA,EAAA,KAAA,EAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,SAAA,EAAA;IACT,QAAA;IACE,YAAA,OAAO,EAAEsH,uBAAiB;IAC1B,YAAA,KAAK,EAAE,IAAI;gBACX,WAAW,EAAEC,aAAU,EAAC,YAAA,EAAM,OAAA,cAAc,CAAA,EAAA,EAAC;IAC9C,SAAA;SACF,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAAvH,aAAA,EAAA,QAAA,ECtBH,uZAgBA,EAAA,MAAA,EAAA,CAAA,o1CAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAmB,aAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,UAAA,EAAA,UAAA,EAAA,WAAA,EAAA,KAAA,EAAA,KAAA,EAAA,MAAA,EAAA,MAAA,EAAA,KAAA,EAAA,OAAA,EAAA,MAAA,EAAA,OAAA,EAAA,OAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAA,aAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,mEAAA,EAAA,EAAA,EAAA,IAAA,EAAAX,aAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAAR,aAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;sHDSa,cAAc,EAAA,UAAA,EAAA,CAAA;sBAb1BS,YAAS;IAAC,YAAA,IAAA,EAAA,CAAA;IACT,oBAAA,QAAQ,EAAE,aAAa;IACvB,oBAAA,WAAW,EAAE,wBAAwB;wBACrC,SAAS,EAAE,CAAC,wBAAwB,CAAC;IACrC,oBAAA,SAAS,EAAE;IACT,wBAAA;IACE,4BAAA,OAAO,EAAE6G,uBAAiB;IAC1B,4BAAA,KAAK,EAAE,IAAI;gCACX,WAAW,EAAEC,aAAU,EAAC,YAAA,uBAAoB,CAAA,EAAA,EAAC;IAC9C,yBAAA;IACF,qBAAA;wBACD,eAAe,EAAE7G,0BAAuB,CAAC,MAAM;qBAChD,CAAA;kCAEU,QAAQ,EAAA,CAAA;0BAAhBE,QAAK;oBACG,QAAQ,EAAA,CAAA;0BAAhBA,QAAK;oBACG,QAAQ,EAAA,CAAA;0BAAhBA,QAAK;oBACG,GAAG,EAAA,CAAA;0BAAXA,QAAK;oBACG,GAAG,EAAA,CAAA;0BAAXA,QAAK;oBACG,GAAG,EAAA,CAAA;0BAAXA,QAAK;oBACG,IAAI,EAAA,CAAA;0BAAZA,QAAK;oBACG,KAAK,EAAA,CAAA;0BAAbA,QAAK;oBACG,QAAQ,EAAA,CAAA;0BAAhBA,QAAK;oBAEF,KAAK,EAAA,CAAA;0BADRA,QAAK;oBAaI,MAAM,EAAA,CAAA;0BAAf4C,SAAM;;;AErCT,QAAA,kBAAA,kBAAA,YAAA;IAAA,IAAA,SAAA,kBAAA,GAAA;;;;6JAAa,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAAxD,aAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;IAAlB,mBAAA,kBAAA,CAAA,IAAA,GAAAA,aAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAAA,aAAA,EAAA,IAAA,EAAA,kBAAkB,iBAJd,qBAAqB,CAAA,EAAA,OAAA,EAAA,CAC1B0E,eAAY,EAAEC,cAAW,aACzB,qBAAqB,CAAA,EAAA,CAAA,CAAA;IAEpB,mBAAA,kBAAA,CAAA,IAAA,GAAA3E,aAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAAA,aAAA,EAAA,IAAA,EAAA,kBAAkB,EAHpB,OAAA,EAAA,CAAA,CAAC0E,eAAY,EAAEC,cAAW,CAAC,CAAA,EAAA,CAAA,CAAA;sHAGzB,kBAAkB,EAAA,UAAA,EAAA,CAAA;sBAL9BC,WAAQ;IAAC,YAAA,IAAA,EAAA,CAAA;wBACR,YAAY,EAAE,CAAC,qBAAqB,CAAC;IACrC,oBAAA,OAAO,EAAE,CAACF,eAAY,EAAEC,cAAW,CAAC;wBACpC,OAAO,EAAE,CAAC,qBAAqB,CAAC;qBACjC,CAAA;;;ACVD,QAAA,YAAA,kBAAA,YAAA;QAIE,SAAY,YAAA,CAAA,EAAoB,EAAE,UAAgB,EAAA;IAChD,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;IACpB,QAAA,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC;IACzB,QAAA,IAAI,CAAC,SAAS,CAAC,YAAY,GAAG,IAAI,CAAC;SACpC;QACD,YAAQ,CAAA,SAAA,CAAA,QAAA,GAAR,UAAS,aAA+B,EAAA;YACtC,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;SACtD,CAAA;IAED,IAAA,MAAA,CAAA,cAAA,CAAI,YAAU,CAAA,SAAA,EAAA,YAAA,EAAA;IAAd,QAAA,GAAA,EAAA,YAAA;gBACE,OAAO,IAAI,CAAC,MAAM,CAAC;aACpB;;;IAAA,KAAA,CAAA,CAAA;QACF,OAAA,YAAA,CAAA;IAAA,CAAA,EAAA;;ACQD,QAAA,oBAAA,kBAAA,YAAA;IAgBE,IAAA,SAAA,oBAAA,CAAoB,GAAsB,EAAA;IAAtB,QAAA,IAAG,CAAA,GAAA,GAAH,GAAG,CAAmB;IAXhC,QAAA,IAAA,CAAA,WAAW,GAAG,IAAIvB,eAAY,EAAgB,CAAC;IAC/C,QAAA,IAAA,CAAA,cAAc,GAAG,IAAIA,eAAY,EAAgB,CAAC;IAQ5D,QAAA,IAAa,CAAA,aAAA,GAAY,KAAK,CAAC;SAEe;IAE9C,IAAA,oBAAA,CAAA,SAAA,CAAA,WAAW,GAAX,YAAA;YAAA,IAMC,KAAA,GAAA,IAAA,CAAA;YALC,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;IACvC,YAAA,UAAU,CAAC,YAAA;oBACT,KAAI,CAAC,gBAAgB,EAAE,CAAC;IAC1B,aAAC,CAAC,CAAC;IACJ,SAAA;SACF,CAAA;IAEO,IAAA,oBAAA,CAAA,SAAA,CAAA,gBAAgB,GAAhB,YAAA;YAAA,IAoBP,KAAA,GAAA,IAAA,CAAA;YAnBC,IAAM,QAAQ,GAAG,UAAC,aAAkB,EAAA;;;IAClC,gBAAA,KAAqB,IAAA,eAAA,GAAA,QAAA,CAAA,aAAa,CAAA,4CAAA,EAAE,CAAA,iBAAA,CAAA,IAAA,EAAA,iBAAA,GAAA,eAAA,CAAA,IAAA,EAAA,EAAA;IAA/B,oBAAA,IAAI,QAAQ,GAAA,iBAAA,CAAA,KAAA,CAAA;wBACf,IAAI,QAAQ,CAAC,QAAQ,KAAK,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE;IACtD,wBAAA,KAAI,CAAC,aAAa,GAAG,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC;IACnF,qBAAA;IACF,iBAAA;;;;;;;;;IACD,YAAA,KAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;IAC3B,SAAC,CAAC;YACF,IAAI,CAAC,QAAQ,GAAG,IAAI,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAE/C,QAAA,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,UAAC,GAAe,EAAA;gBACjD,KAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE;IACvC,gBAAA,UAAU,EAAE,IAAI;oBAChB,eAAe,EAAE,CAAC,OAAO,CAAC;IAC1B,gBAAA,iBAAiB,EAAE,IAAI;IACvB,gBAAA,SAAS,EAAE,KAAK;IAChB,gBAAA,OAAO,EAAE,IAAI;IACd,aAAA,CAAC,CAAC;IACL,SAAC,CAAC,CAAC;SACJ,CAAA;QAED,oBAAS,CAAA,SAAA,CAAA,SAAA,GAAT,UAAU,EAAe,EAAA;YACvB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC;SAC7C,CAAA;IAED,IAAA,oBAAA,CAAA,SAAA,CAAA,YAAY,GAAZ,UAAa,EAAe,EAAE,UAAe,EAAA;IAC3C,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,YAAY,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC,CAAC;SAC5D,CAAA;IAED,IAAA,oBAAA,CAAA,SAAA,CAAA,WAAW,GAAX,YAAA;;YAEE,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;YAC5C,OAAO,IAAI,CAAC,QAAQ,CAAC;SACtB,CAAA;;;+JA5DU,oBAAoB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAApD,aAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAAA,aAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;IAApB,mBAAA,oBAAA,CAAA,IAAA,GAAAA,aAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,oBAAoB,EAQjB,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,YAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,EAAA,OAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,cAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,yBAAyB,EAAwB,WAAA,EAAA,IAAA,EAAA,IAAA,EAAAwH,cAAW,8LChC5E,8rCA8BA,EAAA,MAAA,EAAA,CAAA,8zCAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAArG,aAAA,CAAA,WAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,aAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA2K,aAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,UAAA,EAAA,oBAAA,EAAA,YAAA,EAAA,OAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAC,aAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,YAAA,EAAA,aAAA,EAAA,MAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAArJ,aAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,aAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,aAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;sHDNa,oBAAoB,EAAA,UAAA,EAAA,CAAA;sBALhCjC,YAAS;IAAC,YAAA,IAAA,EAAA,CAAA;IACT,oBAAA,QAAQ,EAAE,oBAAoB;IAC9B,oBAAA,WAAW,EAAE,+BAA+B;wBAC5C,SAAS,EAAE,CAAC,+BAA+B,CAAC;qBAC7C,CAAA;uHAEU,KAAK,EAAA,CAAA;0BAAbG,QAAK;oBACG,YAAY,EAAA,CAAA;0BAApBA,QAAK;oBACG,kBAAkB,EAAA,CAAA;0BAA1BA,QAAK;oBAEI,WAAW,EAAA,CAAA;0BAApB4C,SAAM;oBACG,cAAc,EAAA,CAAA;0BAAvBA,SAAM;oBAGP,YAAY,EAAA,CAAA;0BADX7B,eAAY;2BAAC,yBAAyB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE6F,cAAW,EAAE,CAAA;oBAG5E,qBAAqB,EAAA,CAAA;0BADpBzE,eAAY;2BAAC,uBAAuB,CAAA;;;AE1BvC,QAAA,sBAAA,kBAAA,YAAA;IAAA,IAAA,SAAA,sBAAA,GAAA;;;;iKAAa,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA/C,aAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;IAAtB,mBAAA,sBAAA,CAAA,IAAA,GAAAA,aAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,sBAAsB,uECRnC,wEAGA,EAAA,MAAA,EAAA,CAAA,qpBAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAmB,aAAA,CAAA,cAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,QAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAAnB,aAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;sHDKa,sBAAsB,EAAA,UAAA,EAAA,CAAA;sBANlCS,YAAS;IAAC,YAAA,IAAA,EAAA,CAAA;IACT,oBAAA,QAAQ,EAAE,sBAAsB;IAChC,oBAAA,WAAW,EAAE,iCAAiC;wBAC9C,SAAS,EAAE,CAAC,iCAAiC,CAAC;wBAC9C,eAAe,EAAEC,0BAAuB,CAAC,MAAM;qBAChD,CAAA;;;AEDWsL,0CAIX;IAJD,CAAA,UAAY,oBAAoB,EAAA;IAC9B,IAAA,oBAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;IACb,IAAA,oBAAA,CAAA,aAAA,CAAA,GAAA,aAA2B,CAAA;IAC3B,IAAA,oBAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;IACrB,CAAC,EAJWA,4BAAoB,KAApBA,4BAAoB,GAI/B,EAAA,CAAA,CAAA,CAAA;AASD,QAAA,yBAAA,kBAAA,YAAA;IACE,IAAA,SAAA,yBAAA,CAAoB,mBAAwC,EAAA;IAAxC,QAAA,IAAmB,CAAA,mBAAA,GAAnB,mBAAmB,CAAqB;IAUnD,QAAA,IAAA,CAAA,IAAI,GAAqDA,4BAAoB,CAAC,OAAO,CAAC;IAWvF,QAAA,IAAM,CAAA,MAAA,GAA0B,EAAE,CAAC;IAiBnC,QAAA,IAAc,CAAA,cAAA,GAAW,CAAC,CAAC,CAAC;IA4B1B,QAAA,IAAA,CAAA,aAAa,GAA8B,IAAI5I,eAAY,EAAE,CAAC;SAlER;QAEhE,yBAAmB,CAAA,SAAA,CAAA,mBAAA,GAAnB,UAAoB,KAAY,EAAA;IAC9B,QAAA,IAAI,KAAK,CAAC,MAAM,YAAY,WAAW,EAAE;gBACvC,IAAI,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,qBAAqB,CAAC,EAAE;oBAC1D,KAAK,CAAC,wBAAwB,EAAE,CAAC;IAClC,aAAA;IACF,SAAA;SACF,CAAA;IAID,IAAA,MAAA,CAAA,cAAA,CACI,yBAAa,CAAA,SAAA,EAAA,eAAA,EAAA;IADjB,QAAA,GAAA,EAAA,YAAA;;gBAEE,OAAO,CAAA,EAAA,GAAA,EAAA;IACL,gBAAA,EAAA,CAAC4I,4BAAoB,CAAC,IAAI,CAAA,GAAG,WAAW;IACxC,gBAAA,EAAA,CAACA,4BAAoB,CAAC,OAAO,CAAA,GAAG,cAAc;IAC9C,gBAAA,EAAA,CAACA,4BAAoB,CAAC,WAAW,CAAA,GAAG,mBAAmB;wBACvD,IAAI,CAAC,IAAI,CAAC,CAAC;aACd;;;IAAA,KAAA,CAAA,CAAA;IAGD,IAAA,MAAA,CAAA,cAAA,CAAI,yBAAK,CAAA,SAAA,EAAA,OAAA,EAAA;IAAT,QAAA,GAAA,EAAA,YAAA;gBACE,OAAO,IAAI,CAAC,MAAM,CAAC;aACpB;IAED,QAAA,GAAA,EAAA,UAAmB,KAAoB,EAAA;gBAAvC,IAUC,KAAA,GAAA,IAAA,CAAA;IATC,YAAA,IAAI,CAAC,MAAM,GAAG,KAAK,IAAI,EAAE,CAAC;IAC1B,YAAA,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,UAAC,IAAI,EAAA;oBACvB,IAAI,CAAC,IAAI,CAAC,KAAK;wBAAE,OAAO;;oBAExB,IAAI,CAAC,KAAK,CAAC,YAAY;IACrB,oBAAA,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS;IAC7B,wBAAA,KAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,SAAS,CAAC;IACpE,aAAC,CAAC,CAAC;gBACH,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;aAC9C;;;IAZA,KAAA,CAAA,CAAA;IAeD,IAAA,MAAA,CAAA,cAAA,CAAI,yBAAa,CAAA,SAAA,EAAA,eAAA,EAAA;IAAjB,QAAA,GAAA,EAAA,YAAA;gBACE,OAAO,IAAI,CAAC,cAAc,CAAC;aAC5B;IAED,QAAA,GAAA,EAAA,UAA2B,KAAa,EAAA;IACtC,YAAA,IAAI,KAAK,KAAK,IAAI,CAAC,cAAc,EAAE;IACjC,gBAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;oBAC5B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC9C,aAAA;aACF;;;IAPA,KAAA,CAAA,CAAA;IAUD,IAAA,MAAA,CAAA,cAAA,CAAI,yBAAK,CAAA,SAAA,EAAA,OAAA,EAAA;IAAT,QAAA,GAAA,EAAA,YAAA;gBACE,OAAO,IAAI,CAAC,MAAM,CAAC;aACpB;IAED,QAAA,GAAA,EAAA,UAAmB,KAAkB,EAAA;gBACnC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;aAChD;;;IAJA,KAAA,CAAA,CAAA;IASD,IAAA,MAAA,CAAA,cAAA,CAAa,yBAAI,CAAA,SAAA,EAAA,MAAA,EAAA;IAAjB,QAAA,GAAA,EAAA,UAAkB,IAAiB,EAAA;IACjC,YAAA,IAAI,CAAC,WAAW,GAAG,IAAI,KAAK,IAAI,CAAC;aAClC;;;IAAA,KAAA,CAAA,CAAA;QAID,yBAAe,CAAA,SAAA,CAAA,eAAA,GAAf,UAAgB,UAAkB,EAAA;YAChC,IAAM,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,UAAC,IAAI,IAAK,OAAA,UAAU,KAAK,IAAI,CAAC,EAAE,CAAtB,EAAsB,CAAC,CAAC;IACjF,QAAA,IAAI,iBAAiB,KAAK,IAAI,CAAC,aAAa,EAAE;IAC5C,YAAA,IAAI,CAAC,aAAa,GAAG,iBAAiB,CAAC;gBACvC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACrC,SAAA;SACF,CAAA;;;oKA3EU,yBAAyB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAzL,mBAAA,EAAA,CAAA,EAAA,MAAA,EAAAP,aAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;IAAzB,mBAAA,yBAAA,CAAA,IAAA,GAAAA,aAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,yBAAyB,yVCnBtC,oyCAuCA,EAAA,MAAA,EAAA,CAAA,s8CAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAQ,aAAA,CAAA,UAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,UAAA,EAAA,MAAA,EAAA,YAAA,EAAA,cAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,aAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,QAAA,EAAA,MAAA,EAAA,MAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAyL,sBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,MAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAC,aAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,MAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAC,aAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,YAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAT,aAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAlL,aAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,mEAAA,EAAA,EAAA,EAAA,IAAA,EAAAkL,aAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;sHDpBa,yBAAyB,EAAA,UAAA,EAAA,CAAA;sBAPrCjL,YAAS;IAAC,YAAA,IAAA,EAAA,CAAA;IACT,oBAAA,QAAQ,EAAE,yBAAyB;IACnC,oBAAA,WAAW,EAAE,oCAAoC;wBACjD,SAAS,EAAE,CAAC,oCAAoC,CAAC;;IAEjD,oBAAA,IAAI,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE;qBACxB,CAAA;2GAYU,IAAI,EAAA,CAAA;0BAAZG,QAAK;oBAGF,aAAa,EAAA,CAAA;0BADhBD,cAAW;2BAAC,OAAO,CAAA;oBAcP,KAAK,EAAA,CAAA;0BAAjBC,QAAK;oBAiBO,aAAa,EAAA,CAAA;0BAAzBA,QAAK;oBAYO,KAAK,EAAA,CAAA;0BAAjBA,QAAK;oBAKN,WAAW,EAAA,CAAA;0BADVD,cAAW;2BAAC,UAAU,CAAA;oBAGV,IAAI,EAAA,CAAA;0BAAhBC,QAAK;oBAII,aAAa,EAAA,CAAA;0BAAtB4C,SAAM;;;AEtET,QAAA,oBAAA,kBAAA,YAAA;IA2BE,IAAA,SAAA,oBAAA,CAAoB,kBAAqC,EAAA;IAArC,QAAA,IAAkB,CAAA,kBAAA,GAAlB,kBAAkB,CAAmB;IA1BhD,QAAA,IAAI,CAAA,IAAA,GAAG,EAAE,CAAC;IAGT,QAAA,IAAA,CAAA,SAAS,GAAG,IAAIJ,eAAY,EAAE,CAAC;IAC/B,QAAA,IAAA,CAAA,wBAAwB,GAAG,IAAIA,eAAY,EAAU,CAAC;IAEvD,QAAA,IAAiB,CAAA,iBAAA,GAAG,GAAG,CAAC;IACxB,QAAA,IAAc,CAAA,cAAA,GAAG,GAAG,CAAC;IAE9B,QAAA,IAAW,CAAA,WAAA,GAAG,KAAK,CAAC;IACpB,QAAA,IAAS,CAAA,SAAA,GAAG,CAAC,CAAC;IAUN,QAAA,IAAM,CAAA,MAAA,GAAW,CAAC,CAAC;SAMkC;IAd7D,IAAA,MAAA,CAAA,cAAA,CAAI,oBAAK,CAAA,SAAA,EAAA,OAAA,EAAA;IAAT,QAAA,GAAA,EAAA,YAAA;gBACE,OAAO,IAAI,CAAC,MAAM,CAAC;aACpB;IACD,QAAA,GAAA,EAAA,UAAU,CAAS,EAAA;IACjB,YAAA,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;gBAChB,IAAI,CAAC,kBAAkB,EAAE,CAAC;aAC3B;;;IAJA,KAAA,CAAA,CAAA;IAQO,IAAA,oBAAA,CAAA,SAAA,CAAA,kBAAkB,GAAlB,YAAA;IACN,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;SAClD,CAAA;IAID,IAAA,oBAAA,CAAA,SAAA,CAAA,WAAW,GAAX,YAAA;YACE,IAAI,IAAI,CAAC,wBAAwB,EAAE;IACjC,YAAA,aAAa,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;IAC9C,SAAA;SACF,CAAA;IAED,IAAA,oBAAA,CAAA,SAAA,CAAA,eAAe,GAAf,YAAA;YAAA,IAcC,KAAA,GAAA,IAAA,CAAA;IAbC,QAAA,IAAI,IAAI,CAAC,KAAK,IAAI,GAAG,EAAE;gBACrB,IAAI,CAAC,eAAe,EAAE,CAAC;IACxB,SAAA;IAAM,aAAA;IACL,YAAA,IAAI,CAAC,wBAAwB,GAAG,WAAW,CAAC,YAAA;IAC1C,gBAAA,IAAI,KAAI,CAAC,KAAK,GAAG,CAAC,EAAE;IAClB,oBAAA,KAAI,CAAC,KAAK,IAAI,CAAC,CAAC;IACjB,iBAAA;IAAM,qBAAA;IACL,oBAAA,aAAa,CAAC,KAAI,CAAC,wBAAwB,CAAC,CAAC;IAC9C,iBAAA;IAED,gBAAA,KAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE,CAAC;iBACxC,EAAE,CAAC,CAAC,CAAC;IACP,SAAA;SACF,CAAA;QAED,oBAAmB,CAAA,SAAA,CAAA,mBAAA,GAAnB,UAAoB,GAAW,EAAA;IAC7B,QAAA,IAAI,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC;YAClB,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAChD,CAAA;IAED,IAAA,oBAAA,CAAA,SAAA,CAAA,iBAAiB,GAAjB,YAAA;IACE,QAAA,aAAa,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;SAC9C,CAAA;IAEO,IAAA,oBAAA,CAAA,SAAA,CAAA,eAAe,GAAf,YAAA;IACN,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;IACtB,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;SACzB,CAAA;;;+JA/DU,oBAAoB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAApD,aAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAAA,aAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;IAApB,mBAAA,oBAAA,CAAA,IAAA,GAAAA,aAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,oBAAoB,4MChBjC,yeAcA,EAAA,MAAA,EAAA,CAAA,opDAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAmB,aAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAAnB,aAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;sHDEa,oBAAoB,EAAA,UAAA,EAAA,CAAA;sBANhCS,YAAS;IAAC,YAAA,IAAA,EAAA,CAAA;IACT,oBAAA,QAAQ,EAAE,oBAAoB;IAC9B,oBAAA,WAAW,EAAE,+BAA+B;wBAC5C,SAAS,EAAE,CAAC,+BAA+B,CAAC;wBAC5C,eAAe,EAAEC,0BAAuB,CAAC,MAAM;qBAChD,CAAA;uHAEU,IAAI,EAAA,CAAA;0BAAZE,QAAK;oBACG,MAAM,EAAA,CAAA;0BAAdA,QAAK;oBAEI,SAAS,EAAA,CAAA;0BAAlB4C,SAAM;oBACG,wBAAwB,EAAA,CAAA;0BAAjCA,SAAM;;;AELT,QAAA,cAAA,kBAAA,YAAA;IAAA,IAAA,SAAA,cAAA,GAAA;;;;yJAAa,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAAxD,aAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kIAAd,cAAc,EAAA,QAAA,EAAA,cAAA,EAAA,QAAA,EAAAA,aAAA,EAAA,CAAA,CAAA;sHAAd,cAAc,EAAA,UAAA,EAAA,CAAA;sBAH1BC,YAAS;IAAC,YAAA,IAAA,EAAA,CAAA;IACT,oBAAA,QAAQ,EAAE,cAAc;qBACzB,CAAA;;AAgBD,QAAA,eAAA,kBAAA,YAAA;IAbA,IAAA,SAAA,eAAA,GAAA;IAiBY,QAAA,IAAA,CAAA,aAAa,GAAG,IAAImD,eAAY,EAAO,CAAC;SAqBnD;IAhBC,IAAA,eAAA,CAAA,SAAA,CAAA,eAAe,GAAf,YAAA;IACE,QAAA,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;SACjB,CAAA;IAED,IAAA,eAAA,CAAA,SAAA,CAAA,cAAc,GAAd,YAAA;YAAA,IAOC,KAAA,GAAA,IAAA,CAAA;YANC,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE,CAAC,IAAI,CAAC,UAAC,aAAa,EAAA;IACjD,YAAA,KAAI,CAAC,aAAa,CAAC,IAAI,CAAC;IACtB,gBAAA,KAAK,EAAE,KAAI,CAAC,MAAM,CAAC,aAAa,CAAC;IACjC,gBAAA,KAAK,EAAE,aAAa;IACrB,aAAA,CAAC,CAAC;IACL,SAAC,CAAC,CAAC;SACJ,CAAA;QAED,eAAO,CAAA,SAAA,CAAA,OAAA,GAAP,UAAQ,KAAa,EAAA;IACnB,QAAA,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;SAC/B,CAAA;;;0JAxBU,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAApD,aAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;IAAf,mBAAA,eAAA,CAAA,IAAA,GAAAA,aAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,eAAe,EAMZ,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,aAAA,EAAA,eAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,OAAA,EAAA,EAAA,aAAA,EAAA,eAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,eAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,cAAc,EAAwB,WAAA,EAAA,IAAA,EAAA,IAAA,EAAAwH,cAAW,EAjBrD,MAAA,EAAA,IAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,WAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,WAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAAxH,aAAA,EAAA,QAAA,EAAA,yVAQT,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAmB,aAAA,CAAA,SAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,SAAA,EAAA,OAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,aAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAX,aAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,aAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAAR,aAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;sHAGU,eAAe,EAAA,UAAA,EAAA,CAAA;sBAb3BS,YAAS;IAAC,YAAA,IAAA,EAAA,CAAA;IACT,oBAAA,QAAQ,EAAE,cAAc;IACxB,oBAAA,QAAQ,EAAE,yVAQT;wBACD,eAAe,EAAEC,0BAAuB,CAAC,MAAM;qBAChD,CAAA;kCAE4C,SAAS,EAAA,CAAA;0BAAnDsC,YAAS;oBAAC,IAAA,EAAA,CAAA,WAAW,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAA;oBAChC,aAAa,EAAA,CAAA;0BAArBpC,QAAK;oBACG,MAAM,EAAA,CAAA;0BAAdA,QAAK;oBACI,aAAa,EAAA,CAAA;0BAAtB4C,SAAM;oBAGA,aAAa,EAAA,CAAA;0BADnB7B,eAAY;2BAAC,cAAc,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE6F,cAAW,EAAE,CAAA;;;ACjBnE,QAAA,kBAAA,kBAAA,YAAA;QAKE,SAAoB,kBAAA,CAAA,UAAsB,EAAU,QAAmB,EAAA;IAAnD,QAAA,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;IAAU,QAAA,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAW;IAH7D,QAAA,IAAA,CAAA,KAAK,GAAG,IAAIpE,eAAY,EAAS,CAAC;SAG+B;IAE3E,IAAA,kBAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;YACE,IAAI,CAAC,aAAa,EAAE,CAAC;SACtB,CAAA;IAED,IAAA,kBAAA,CAAA,SAAA,CAAA,OAAO,GAAP,UAAQ,KAAY,EAAE,UAAmB,EAAA;IACvC,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAEvB,QAAA,IAAI,UAAU,EAAE;IACd,YAAA,IAAM,UAAU,GAAG,IAAI,WAAW,CAAC,qBAAqB,CAAC,CAAC;gBAC1D,aAAa,CAAC,UAAU,CAAC,CAAC;IAC3B,SAAA;SACF,CAAA;IAEO,IAAA,kBAAA,CAAA,SAAA,CAAA,aAAa,GAAb,YAAA;YACN,IAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,UAAU,CAAC;IACxD,QAAA,IAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAC3D,QAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;YACjE,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;SAC3C,CAAA;;;6JAzBU,kBAAkB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAApD,aAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,aAAA,CAAA,SAAA,EAAA,CAAA,EAAA,MAAA,EAAAA,aAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;sIAAlB,kBAAkB,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,OAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,OAAA,EAAA,SAAA,EAGZ,aAAa,EAAA,CAAA,EAAA,QAAA,EAAAA,aAAA,EAAA,QAAA,ECvBhC,6iBAaA,EAAA,MAAA,EAAA,CAAA,mpBAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAmB,aAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,MAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,aAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAX,aAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;sHDOa,kBAAkB,EAAA,UAAA,EAAA,CAAA;sBAL9BC,YAAS;IAAC,YAAA,IAAA,EAAA,CAAA;IACT,oBAAA,QAAQ,EAAE,kBAAkB;IAC5B,oBAAA,WAAW,EAAE,6BAA6B;wBAC1C,SAAS,EAAE,CAAC,6BAA6B,CAAC;qBAC3C,CAAA;mJAEU,UAAU,EAAA,CAAA;0BAAlBG,QAAK;oBACI,KAAK,EAAA,CAAA;0BAAd4C,SAAM;oBACyB,KAAK,EAAA,CAAA;0BAApCC,kBAAe;2BAAC,aAAa,CAAA;;;AERhC,QAAA,UAAA,kBAAA,YAAA;IAAA,IAAA,SAAA,UAAA,GAAA;;;;qJAAa,UAAU,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAAzD,aAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;IAAV,mBAAA,UAAA,CAAA,IAAA,GAAAA,aAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAAA,aAAA,EAAA,IAAA,EAAA,UAAU,EAHN,YAAA,EAAA,CAAA,aAAa,EAAE,kBAAkB,CAFtC,EAAA,OAAA,EAAA,CAAA2E,cAAW,EAAE,UAAU,EAAED,eAAY,CAGrC,EAAA,OAAA,EAAA,CAAA,aAAa,EAAE,kBAAkB,CAAA,EAAA,CAAA,CAAA;sJAEhC,UAAU,EAAA,SAAA,EAJV,CAAC,WAAW,CAAC,EAAA,OAAA,EAAA,CADf,CAACC,cAAW,EAAE,UAAU,EAAED,eAAY,CAAC,CAAA,EAAA,CAAA,CAAA;sHAKrC,UAAU,EAAA,UAAA,EAAA,CAAA;sBANtBE,WAAQ;IAAC,YAAA,IAAA,EAAA,CAAA;IACR,oBAAA,OAAO,EAAE,CAACD,cAAW,EAAE,UAAU,EAAED,eAAY,CAAC;wBAChD,SAAS,EAAE,CAAC,WAAW,CAAC;IACxB,oBAAA,YAAY,EAAE,CAAC,aAAa,EAAE,kBAAkB,CAAC;IACjD,oBAAA,OAAO,EAAE,CAAC,aAAa,EAAE,kBAAkB,CAAC;qBAC7C,CAAA;;;;;;;;;;;;;;;;;;;;;;ICPD,IAAA,WAAA,kBAAA,YAAA;IAIE,IAAA,SAAA,WAAA,CAAoB,eAAgC,EAAA;IAAhC,QAAA,IAAe,CAAA,eAAA,GAAf,eAAe,CAAiB;SAAI;QAE3C,WAAS,CAAA,SAAA,CAAA,SAAA,GAAT,UAAU,MAAmB,EAAA;;;;;IAC1B,oBAAA,KAAA,CAAA,EAAA,OAAA,CAAA,CAAA,YAAM,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC;gCAC9C,QAAQ,EAAE,MAAM,CAAC,QAAQ;gCACzB,OAAO,EAAE,MAAM,CAAC,OAAO;IACvB,4BAAA,QAAQ,EAAE,KAAK;IACf,4BAAA,QAAQ,EAAE,MAAM,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,GAAG,WAAW,CAAC,cAAc;gCAChF,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,WAAW,CAAC;IAC/C,yBAAA,CAAC,CAAA,CAAA;;IANI,wBAAA,KAAK,GAAG,EAMZ,CAAA,IAAA,EAAA,CAAA;IACF,wBAAA,OAAA,CAAA,CAAA,YAAM,KAAK,CAAC,OAAO,EAAE,CAAA,CAAA;;IAArB,wBAAA,EAAA,CAAA,IAAA,EAAqB,CAAC;4BACtB,OAAO,CAAA,CAAA,aAAA;oCACL,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;IAClC,gCAAA,aAAa,EAAE,KAAK,CAAC,aAAa,EAAE;IACpC,gCAAA,YAAY,EAAE,KAAK,CAAC,YAAY,EAAE;iCACnC,CAAC,CAAA;;;IACH,SAAA,CAAA,CAAA;SAAA,CAAA;QAEO,WAAW,CAAA,SAAA,CAAA,WAAA,GAAX,UAAY,WAAwB,EAAA;IAC1C,QAAA,IAAI,QAAQ,GAAG,WAAW,CAAC,SAAS,CAAC;IAErC,QAAA,IAAI,WAAW,EAAE;IACf,YAAA,QAAQ,IAAI,GAAG,GAAG,WAAW,CAAC;IAC/B,SAAA;IAED,QAAA,OAAO,QAAQ,CAAC;SACjB,CAAA;;;IA7BM,WAAS,CAAA,SAAA,GAAG,aAAa,CAAC;IAC1B,WAAc,CAAA,cAAA,GAAG,IAAI,CAAC;sJAFlB,WAAW,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAvD,aAAA,CAAA,eAAA,EAAA,CAAA,EAAA,MAAA,EAAAnB,aAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;0JAAX,WAAW,EAAA,CAAA,CAAA;sHAAX,WAAW,EAAA,UAAA,EAAA,CAAA;sBADvBK,aAAU;;;ACCX,QAAA,eAAA,kBAAA,YAAA;IACE,IAAA,SAAA,eAAA,CAAoB,WAAwB,EAAA;IAAxB,QAAA,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;SAAI;IAEzC,IAAA,eAAA,CAAA,SAAA,CAAA,SAAS,GAAT,UAAU,MAAmB,EAAE,YAAyB,EAAA;YAC7D,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,UAAC,OAAO,EAAA;IAC9C,YAAA,IAAI,YAAY,EAAE;IAChB,gBAAA,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,YAAA,EAAM,OAAA,YAAY,EAAE,CAAA,EAAA,CAAC,CAAC;IACjD,aAAA;IACH,SAAC,CAAC,CAAC;SACJ,CAAA;;;0JATU,eAAe,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA+L,WAAA,EAAA,CAAA,EAAA,MAAA,EAAApM,aAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;8JAAf,eAAe,EAAA,CAAA,CAAA;sHAAf,eAAe,EAAA,UAAA,EAAA,CAAA;sBAD3BK,aAAU;;;ACEX,QAAA,eAAA,kBAAA,YAAA;IANA,IAAA,SAAA,eAAA,GAAA;IAOW,QAAA,IAAO,CAAA,OAAA,GAAY,KAAK,CAAC;IACzB,QAAA,IAAQ,CAAA,QAAA,GAAY,KAAK,CAAC;IACzB,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI+C,eAAY,EAAW,CAAC;SAKvD;QAJC,eAAe,CAAA,SAAA,CAAA,eAAA,GAAf,UAAgB,OAAgB,EAAA;IAC9B,QAAA,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;YACvB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;SACvC,CAAA;;;0JAPU,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAApD,aAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;IAAf,mBAAA,eAAA,CAAA,IAAA,GAAAA,aAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,eAAe,kKCR5B,6IAKA,EAAA,MAAA,EAAA,CAAA,+DAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAmB,aAAA,CAAA,SAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,OAAA,EAAA,UAAA,EAAA,MAAA,EAAA,MAAA,EAAA,OAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAA,aAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,CAAA,EAAA,eAAA,EAAAnB,aAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;sHDGa,eAAe,EAAA,UAAA,EAAA,CAAA;sBAN3BS,YAAS;IAAC,YAAA,IAAA,EAAA,CAAA;IACT,oBAAA,QAAQ,EAAE,cAAc;IACxB,oBAAA,WAAW,EAAE,yBAAyB;wBACtC,SAAS,EAAE,CAAC,yBAAyB,CAAC;wBACtC,eAAe,EAAEC,0BAAuB,CAAC,MAAM;qBAChD,CAAA;kCAEU,OAAO,EAAA,CAAA;0BAAfE,QAAK;oBACG,QAAQ,EAAA,CAAA;0BAAhBA,QAAK;oBACI,aAAa,EAAA,CAAA;0BAAtB4C,SAAM;;;IEHT,IAAA,2BAAA,kBAAA,YAAA;IANA,IAAA,SAAA,2BAAA,GAAA;IAQW,QAAA,IAAK,CAAA,KAAA,GAAW,CAAC,CAAC;IAClB,QAAA,IAAU,CAAA,UAAA,GAAqC,SAAS,CAAC;SA8BnE;IA1BC,IAAA,MAAA,CAAA,cAAA,CAAI,2BAAO,CAAA,SAAA,EAAA,SAAA,EAAA;IAAX,QAAA,GAAA,EAAA,YAAA;IACE,YAAA,IAAM,iBAAiB,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;IAC1E,YAAA,IAAI,iBAAiB,EAAE;oBACrB,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACzC,aAAA;IAAM,iBAAA;oBACL,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC9C,aAAA;aACF;;;IAAA,KAAA,CAAA,CAAA;IAED,IAAA,MAAA,CAAA,cAAA,CAEI,2BAAS,CAAA,SAAA,EAAA,WAAA,EAAA;IAFb,QAAA,GAAA,EAAA,YAAA;IAGE,YAAA,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;aACxB;;;IAAA,KAAA,CAAA,CAAA;IAED,IAAA,MAAA,CAAA,cAAA,CAAI,2BAAa,CAAA,SAAA,EAAA,eAAA,EAAA;IAAjB,QAAA,GAAA,EAAA,YAAA;gBACE,OAAO,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;aAC3C;;;IAAA,KAAA,CAAA,CAAA;IAED,IAAA,MAAA,CAAA,cAAA,CAAI,2BAAoB,CAAA,SAAA,EAAA,sBAAA,EAAA;IAAxB,QAAA,GAAA,EAAA,YAAA;gBACE,OAAO,IAAI,CAAC,aAAa,GAAG,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC;aACzC;;;IAAA,KAAA,CAAA,CAAA;QAEO,2BAAe,CAAA,SAAA,CAAA,eAAA,GAAf,UAAgB,KAAa,EAAA;IACnC,QAAA,OAAO,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,oBAAoB,IAAI,KAAK,GAAG,GAAG,CAAC,CAAC;SAC9E,CAAA;;;sKAhCU,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAAxD,aAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;IAA3B,mBAAA,2BAAA,CAAA,IAAA,GAAAA,aAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,2BAA2B,8SCRxC,0pBAsBM,EAAA,MAAA,EAAA,CAAA,qcAAA,CAAA,EAAA,eAAA,EAAAA,aAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;sHDdO,2BAA2B,EAAA,UAAA,EAAA,CAAA;sBANvCS,YAAS;IAAC,YAAA,IAAA,EAAA,CAAA;IACT,oBAAA,QAAQ,EAAE,4BAA4B;IACtC,oBAAA,WAAW,EAAE,sCAAsC;wBACnD,SAAS,EAAE,CAAC,uCAAuC,CAAC;wBACpD,eAAe,EAAEC,0BAAuB,CAAC,MAAM;qBAChD,CAAA;kCAEU,MAAM,EAAA,CAAA;0BAAdE,QAAK;oBACG,KAAK,EAAA,CAAA;0BAAbA,QAAK;oBACG,UAAU,EAAA,CAAA;0BAAlBA,QAAK;oBACG,WAAW,EAAA,CAAA;0BAAnBA,QAAK;oBACG,UAAU,EAAA,CAAA;0BAAlBA,QAAK;oBAaF,SAAS,EAAA,CAAA;0BAFZD,cAAW;2BAAC,gBAAgB,CAAA;;0BAC5BA,cAAW;2BAAC,iBAAiB,CAAA;;;AERhC,QAAA,uBAAA,kBAAA,YAAA;QAmBE,SACU,uBAAA,CAAA,UAAmC,EACnC,iBAAoC,EAAA;YAF9C,IAGI,KAAA,GAAA,IAAA,CAAA;IAFM,QAAA,IAAU,CAAA,UAAA,GAAV,UAAU,CAAyB;IACnC,QAAA,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAmB;YApBrC,IAAA,CAAA,WAAW,GAAG;IACrB,YAAA,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE;IACpD,YAAA,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE;IACpD,YAAA,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE;aACrD,CAAC;IAEO,QAAA,IAAK,CAAA,KAAA,GAAW,CAAC,CAAC;IAClB,QAAA,IAAI,CAAA,IAAA,GAAuB,IAAI,CAAC;IAChC,QAAA,IAAU,CAAA,UAAA,GAAqC,SAAS,CAAC;IA4B1D,QAAA,IAAA,CAAA,oBAAoB,GAAG,UAAC,OAAoC,EAAA;IAClE,YAAA,KAAI,CAAC,qBAAqB,GAAG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,UAAC,KAAK,EAAA,EAAK,OAAA,KAAK,CAAC,cAAc,CAApB,EAAoB,CAAC,CAAC;gBACtF,IAAI,KAAI,CAAC,qBAAqB,EAAE;oBAC9B,KAAI,CAAC,SAAS,EAAE,CAAC;IACjB,gBAAA,KAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE,CAAC;IACvC,aAAA;IACH,SAAC,CAAC;SArBE;IAXJ,IAAA,MAAA,CAAA,cAAA,CACI,uBAAQ,CAAA,SAAA,EAAA,UAAA,EAAA;IADZ,QAAA,GAAA,EAAA,YAAA;gBAEE,OAAO,IAAI,CAAC,IAAI,CAAC;aAClB;;;IAAA,KAAA,CAAA,CAAA;IAUD,IAAA,uBAAA,CAAA,SAAA,CAAA,eAAe,GAAf,YAAA;IACE,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;gBAClB,IAAI,CAAC,QAAQ,GAAG,IAAI,oBAAoB,CAAC,IAAI,CAAC,oBAAoB,EAAE;IAClE,gBAAA,SAAS,EAAE,GAAG;IACf,aAAA,CAAC,CAAC;gBACH,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;IACtD,SAAA;SACF,CAAA;IAED,IAAA,uBAAA,CAAA,SAAA,CAAA,WAAW,GAAX,YAAA;YACE,IAAI,CAAC,SAAS,EAAE,CAAC;SAClB,CAAA;IAUO,IAAA,uBAAA,CAAA,SAAA,CAAA,SAAS,GAAT,YAAA;YACN,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACjB,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;;gBAEvD,IAAI,OAAO,IAAI,CAAC,QAAQ,CAAC,UAAU,KAAK,UAAU,EAAE;IAClD,gBAAA,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;IAC5B,aAAA;IACF,SAAA;SACF,CAAA;IAED,IAAA,MAAA,CAAA,cAAA,CAEI,uBAAS,CAAA,SAAA,EAAA,WAAA,EAAA;IAFb,QAAA,GAAA,EAAA,YAAA;gBAGE,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC;aAC7C;;;IAAA,KAAA,CAAA,CAAA;IAED,IAAA,MAAA,CAAA,cAAA,CAAI,uBAAW,CAAA,SAAA,EAAA,aAAA,EAAA;IAAf,QAAA,GAAA,EAAA,YAAA;;IAEE,YAAA,OAAO,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;aACpD;;;IAAA,KAAA,CAAA,CAAA;IAED,IAAA,MAAA,CAAA,cAAA,CAAI,uBAAO,CAAA,SAAA,EAAA,SAAA,EAAA;IAAX,QAAA,GAAA,EAAA,YAAA;IACE,YAAA,OAAO,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;aAC3B;;;IAAA,KAAA,CAAA,CAAA;IAED,IAAA,MAAA,CAAA,cAAA,CAAI,uBAAY,CAAA,SAAA,EAAA,cAAA,EAAA;IAAhB,QAAA,GAAA,EAAA,YAAA;gBACE,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC;aAChD;;;IAAA,KAAA,CAAA,CAAA;IAED,IAAA,MAAA,CAAA,cAAA,CAAI,uBAAW,CAAA,SAAA,EAAA,aAAA,EAAA;IAAf,QAAA,GAAA,EAAA,YAAA;;gBAEE,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC;aAC/C;;;IAAA,KAAA,CAAA,CAAA;;;kKA7EU,uBAAuB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAX,aAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,aAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAAA,aAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;IAAvB,mBAAA,uBAAA,CAAA,IAAA,GAAAA,aAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,uBAAuB,yQCjBpC,+RAWA,EAAA,MAAA,EAAA,CAAA,oTAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAqM,2BAAA,EAAA,QAAA,EAAA,4BAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,OAAA,EAAA,YAAA,EAAA,aAAA,EAAA,YAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAC,mBAAA,EAAA,QAAA,EAAA,uPAAA,EAAA,MAAA,EAAA,CAAA,YAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAAtM,aAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;sHDMa,uBAAuB,EAAA,UAAA,EAAA,CAAA;sBANnCS,YAAS;IAAC,YAAA,IAAA,EAAA,CAAA;IACT,oBAAA,QAAQ,EAAE,uBAAuB;IACjC,oBAAA,WAAW,EAAE,kCAAkC;wBAC/C,SAAS,EAAE,CAAC,kCAAkC,CAAC;wBAC/C,eAAe,EAAEC,0BAAuB,CAAC,MAAM;qBAChD,CAAA;2JAQU,KAAK,EAAA,CAAA;0BAAbE,QAAK;oBACG,IAAI,EAAA,CAAA;0BAAZA,QAAK;oBACG,UAAU,EAAA,CAAA;0BAAlBA,QAAK;oBAGF,QAAQ,EAAA,CAAA;0BADXD,cAAW;2BAAC,OAAO,CAAA;oBA8ChB,SAAS,EAAA,CAAA;0BAFZA,cAAW;2BAAC,gBAAgB,CAAA;;0BAC5BA,cAAW;2BAAC,iBAAiB,CAAA;;;AE3DhC,QAAA,qBAAA,kBAAA,YAAA;IALA,IAAA,SAAA,qBAAA,GAAA;IAOY,QAAA,IAAA,CAAA,YAAY,GAAG,IAAIyC,eAAY,EAAW,CAAC;SAOtD;IAJC,IAAA,qBAAA,CAAA,SAAA,CAAA,OAAO,GAAP,YAAA;IACE,QAAA,IAAI,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC;YAC7B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;SACtC,CAAA;;;gKARU,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAApD,aAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;IAArB,mBAAA,qBAAA,CAAA,IAAA,GAAAA,aAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,qBAAqB,gMCdlC,uPAMA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAmB,aAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAAnB,aAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;sHDQa,qBAAqB,EAAA,UAAA,EAAA,CAAA;sBALjCS,YAAS;IAAC,YAAA,IAAA,EAAA,CAAA;IACT,oBAAA,QAAQ,EAAE,qBAAqB;IAC/B,oBAAA,WAAW,EAAE,gCAAgC;wBAC7C,eAAe,EAAEC,0BAAuB,CAAC,MAAM;qBAChD,CAAA;kCAEU,OAAO,EAAA,CAAA;0BAAfE,QAAK;oBACI,YAAY,EAAA,CAAA;0BAArB4C,SAAM;oBAGP,OAAO,EAAA,CAAA;0BADNhC,eAAY;2BAAC,OAAO,CAAA;;;IEbvB,IAAM,YAAY,GAAG,CAAC,qBAAqB,CAAC,CAAC;AAO7C,QAAA,kBAAA,kBAAA,YAAA;IAAA,IAAA,SAAA,kBAAA,GAAA;;;;6JAAa,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAAxB,aAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;IAAlB,mBAAA,kBAAA,CAAA,IAAA,GAAAA,aAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAAA,aAAA,EAAA,IAAA,EAAA,kBAAkB,EAPT,YAAA,EAAA,CAAA,qBAAqB,CAI/B,EAAA,OAAA,EAAA,CAAA0E,eAAY,aAJF,qBAAqB,CAAA,EAAA,CAAA,CAAA;8JAO9B,kBAAkB,EAAA,OAAA,EAAA,CAHpB,CAACA,eAAY,CAAC,CAAA,EAAA,CAAA,CAAA;sHAGZ,kBAAkB,EAAA,UAAA,EAAA,CAAA;sBAL9BE,WAAQ;IAAC,YAAA,IAAA,EAAA,CAAA;wBACR,YAAY,EAAA,aAAA,CAAA,EAAA,EAAA,MAAA,CAAM,YAAY,CAAC,CAAA;wBAC/B,OAAO,EAAE,CAACF,eAAY,CAAC;wBACvB,OAAO,EAAA,aAAA,CAAA,EAAA,EAAA,MAAA,CAAM,YAAY,CAAC,CAAA;qBAC3B,CAAA;;;ACLD,QAAA,mBAAA,kBAAA,YAAA;IACE,IAAA,SAAA,mBAAA,CAAoB,OAAmB,EAAA;IAAnB,QAAA,IAAO,CAAA,OAAA,GAAP,OAAO,CAAY;SAAI;QAG3C,mBAAQ,CAAA,SAAA,CAAA,QAAA,GAAR,UAAS,KAAoB,EAAA;IAC3B,QAAA,IAAI,KAAK,CAAC,GAAG,KAAK,GAAG,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO,IAAI,KAAK,CAAC,GAAG,KAAK,UAAU,EAAE;;gBAE1E,KAAK,CAAC,cAAc,EAAE,CAAC;IAEvB,YAAA,IAAM,WAAW,GAAgB,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC;gBAC5D,WAAW,CAAC,KAAK,EAAE,CAAC;IACrB,SAAA;SACF,CAAA;;;8JAZU,mBAAmB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA1E,aAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAAA,aAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;uIAAnB,mBAAmB,EAAA,QAAA,EAAA,cAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,QAAA,EAAAA,aAAA,EAAA,CAAA,CAAA;sHAAnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;sBAJ/BC,YAAS;IAAC,YAAA,IAAA,EAAA,CAAA;;IAET,oBAAA,QAAQ,EAAE,cAAc;qBACzB,CAAA;gHAKC,QAAQ,EAAA,CAAA;0BADPuB,eAAY;2BAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,CAAA;;;ACDnC,QAAA,wBAAA,kBAAA,YAAA;QAIE,SAAgC,wBAAA,CAAA,IAAmB,EAAU,gBAA4B,EAAA;IAAzD,QAAA,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAe;IAAU,QAAA,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAY;IAH/D,QAAA,IAAI,CAAA,IAAA,GAAW,QAAQ,CAAC;IACpB,QAAA,IAAQ,CAAA,QAAA,GAAW,CAAC,CAAC;SAE0C;IAE7F,IAAA,wBAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;YACE,IAAI,IAAI,CAAC,IAAI,EAAE;IACb,YAAA,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;IACxB,SAAA;SACF,CAAA;QAID,wBAAiB,CAAA,SAAA,CAAA,iBAAA,GAAjB,UAAkB,KAAoB,EAAA;YACpC,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;SAClD,CAAA;;;mKAhBU,wBAAwB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA6B,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAArD,aAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAAA,aAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;4IAAxB,wBAAwB,EAAA,QAAA,EAAA,mBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,eAAA,EAAA,2BAAA,EAAA,eAAA,EAAA,2BAAA,EAAA,EAAA,UAAA,EAAA,EAAA,WAAA,EAAA,WAAA,EAAA,eAAA,EAAA,eAAA,EAAA,EAAA,EAAA,QAAA,EAAAA,aAAA,EAAA,CAAA,CAAA;sHAAxB,wBAAwB,EAAA,UAAA,EAAA,CAAA;sBAJpCC,YAAS;IAAC,YAAA,IAAA,EAAA,CAAA;;IAET,oBAAA,QAAQ,EAAE,mBAAmB;qBAC9B,CAAA;;;kCAKcqE,WAAQ;;6BAHK,IAAI,EAAA,CAAA;0BAA7B3D,cAAW;2BAAC,WAAW,CAAA;oBACM,QAAQ,EAAA,CAAA;0BAArCA,cAAW;2BAAC,eAAe,CAAA;oBAY5B,iBAAiB,EAAA,CAAA;0BAFhBa,eAAY;2BAAC,eAAe,EAAE,CAAC,QAAQ,CAAC,CAAA;;0BACxCA,eAAY;2BAAC,eAAe,EAAE,CAAC,QAAQ,CAAC,CAAA;;;ACb3C,QAAA,wBAAA,kBAAA,YAAA;IACE,IAAA,SAAA,wBAAA,CAAoB,sBAA8C,EAAA;IAA9C,QAAA,IAAsB,CAAA,sBAAA,GAAtB,sBAAsB,CAAwB;SAAI;IAOtE,IAAA,wBAAA,CAAA,SAAA,CAAA,OAAO,GAAP,YAAA;YACE,IAAI,CAAC,sBAAsB,CAAC,eAAe,CACzC,IAAI,CAAC,IAAI,EACT,OAAO,IAAI,CAAC,WAAW,KAAK,QAAQ,GAAG,IAAI,CAAC,WAAW,GAAG,IAAI,CAC/D,CAAC;IACF,QAAA,OAAO,KAAK,CAAC;SACd,CAAA;;;mKAdU,wBAAwB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA+K,sBAAA,EAAA,CAAA,EAAA,MAAA,EAAAvM,aAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;4IAAxB,wBAAwB,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,CAAA,sBAAA,EAAA,MAAA,CAAA,EAAA,WAAA,EAAA,CAAA,uBAAA,EAAA,aAAA,CAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,WAAA,EAAA,EAAA,EAAA,QAAA,EAAAA,aAAA,EAAA,CAAA,CAAA;sHAAxB,wBAAwB,EAAA,UAAA,EAAA,CAAA;sBAHpCC,YAAS;IAAC,YAAA,IAAA,EAAA,CAAA;IACT,oBAAA,QAAQ,EAAE,wBAAwB;qBACnC,CAAA;8GAIgC,IAAI,EAAA,CAAA;0BAAlCW,QAAK;2BAAC,sBAAsB,CAAA;oBAEG,WAAW,EAAA,CAAA;0BAA1CA,QAAK;2BAAC,uBAAuB,CAAA;oBAG9B,OAAO,EAAA,CAAA;0BADNY,eAAY;2BAAC,OAAO,CAAA;;;ICVhB,IAAM,aAAa,GAAG,UAAC,GAAa,EAAA;QACzC,OAAO,YAAA;IACL,QAAAgL,2BAAoB,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IACxC,KAAC,CAAC;IACJ,CAAC,CAAC;aAEc,yBAAyB,GAAA;QACvC,OAAO;IACL,QAAA,OAAO,EAAEC,kBAAe;IACxB,QAAA,UAAU,EAAE,aAAa;YACzB,IAAI,EAAE,CAACzC,WAAQ,CAAC;IAChB,QAAA,KAAK,EAAE,IAAI;SACZ,CAAC;IACJ;;IC6DA,IAAM,oBAAoB,GAAG;QAC3B,aAAa;QACb,mBAAmB;QACnB,mBAAmB;QACnB,eAAe;QACf,wBAAwB;QACxB,6BAA6B;QAC7B,aAAa;QACb,wBAAwB;QACxB,eAAe;QACf,WAAW;QACX,iBAAiB;QACjB,iBAAiB;QACjB,oBAAoB;QACpB,oBAAoB;QACpB,wBAAwB;QACxB,yBAAyB;QACzB,aAAa;QACb0C,sBAAc;QACd,mBAAmB;QACnB,kBAAkB;QAClB,oBAAoB;QACpB,oBAAoB;QACpB,eAAe;QACf,mBAAmB;QACnB,kBAAkB;QAClB,cAAc;QACd,qBAAqB;QACrB,iBAAiB;QACjB,iBAAiB;QACjB,gBAAgB;QAChB,oBAAoB;QACpB,iBAAiB;QACjB,uBAAuB;QACvB,uBAAuB;QACvB,aAAa;QACb,eAAe;QACf,cAAc;QACd,kBAAkB;QAClB,sBAAsB;QACtB,oBAAoB;QACpB,cAAc;QACd,mBAAmB;QACnB,cAAc;QACd,wBAAwB;QACxB,kBAAkB;QAClB,sBAAsB;KACvB,CAAC;IAEF,IAAM,YAAY,0CACb,oBAAoB,CAAA,CAAA,EAAA;QACvB,mBAAmB;QACnB,yBAAyB;QACzB,cAAc;QACd,qBAAqB;QACrB,4BAA4B;QAC5B,2BAA2B;QAC3B,gBAAgB;MACjB,CAAC;IAEF,IAAM,eAAe,GAAG;QACtB,SAAS;QACT,kBAAkB;QAClB,UAAU;QACV,UAAU;QACV,UAAU;QACV,UAAU;QACV,kBAAkB;QAClB,UAAU;QACV,WAAW;QACX,aAAa;KACd,CAAC;IAEF,IAAMC,SAAO,GAAO,aAAA,CAAA,aAAA,CAAA,EAAA,EAAA,MAAA,CAAA,eAAe,CAAK,CAAA,EAAA,MAAA,CAAA,oBAAoB,EAAC,CAAC;IAE9D,IAAM,eAAe,GAAA,aAAA,CAAA,EAAA,EAAA,MAAA,CAAO,eAAe,CAAA,CAAC,CAAC;IAE7C,IAAM,SAAS,GAAG;QAChB,eAAe;QACf,iBAAiB;QACjB,WAAW;QACX,WAAW;QACX,WAAW;QACX,eAAe;QACf,uBAAuB;QACvB,qBAAqB;QACrB,qBAAqB;QACrB,qBAAqB;IACrB,IAAA,yBAAyB,EAAE;KAC5B,CAAC;IAEF,IAAM,eAAe,GAAG;QACtB,qBAAqB;QACrB,4BAA4B;QAC5B,oBAAoB;QACpB,cAAc;KACf,CAAC;IAEF,IAAM,WAAW,GAAG,IAAIvL,iBAAc,CAAM,YAAY,CAAC,CAAC;AAsB1D,QAAA,WAAA,kBAAA,YAAA;QAaE,SACE,WAAA,CAAA,eAAgC,EACC,MAAoB,EAAA;YAErD,eAAe,CAAC,UAAU,CAAC,MAAM,IAAI,MAAM,CAAC,mBAAmB,CAAC,CAAC;SAClE;QAjBM,WAAQ,CAAA,QAAA,GAAf,UAAgB,MAAoB,EAAA;YAClC,OAAO;IACL,YAAA,QAAQ,EAAE,WAAW;IACrB,YAAA,SAAS,EAAE;IACT,gBAAA;IACE,oBAAA,OAAO,EAAE,WAAW;IACpB,oBAAA,QAAQ,EAAE,MAAM;IACjB,iBAAA;IACF,aAAA;aACF,CAAC;SACH,CAAA;;;IAXU,mBAAA,WAAA,CAAA,IAAA,GAAApB,aAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAAA,aAAA,EAAA,IAAA,EAAA,WAAW,8CAeA,WAAW,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAAA,aAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;IAftB,mBAAA,WAAA,CAAA,IAAA,GAAAA,aAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAAA,aAAA,EAAA,IAAA,EAAA,WAAW,iBAvHtB,aAAa;YACb,mBAAmB;YACnB,mBAAmB;YACnB,eAAe;YACf,wBAAwB;YACxB,6BAA6B;YAC7B,aAAa;YACb,wBAAwB;YACxB,eAAe;YACf,WAAW;YACX,iBAAiB;YACjB,iBAAiB;YACjB,oBAAoB;YACpB,oBAAoB;YACpB,wBAAwB;YACxB,yBAAyB;YACzB,aAAa;YACb0M,sBAAc;YACd,mBAAmB;YACnB,kBAAkB;YAClB,oBAAoB;YACpB,oBAAoB;YACpB,eAAe;YACf,mBAAmB;YACnB,kBAAkB;YAClB,cAAc;YACd,qBAAqB;YACrB,iBAAiB;YACjB,iBAAiB;YACjB,gBAAgB;YAChB,oBAAoB;YACpB,iBAAiB;YACjB,uBAAuB;YACvB,uBAAuB;YACvB,aAAa;YACb,eAAe;YACf,cAAc;YACd,kBAAkB;YAClB,sBAAsB;YACtB,oBAAoB;YACpB,cAAc;YACd,mBAAmB;YACnB,cAAc;YACd,wBAAwB;YACxB,kBAAkB;IAClB,QAAA,sBAAsB,EAKtB,mBAAmB;YACnB,yBAAyB;YACzB,cAAc;YACd,qBAAqB;YACrB,4BAA4B;YAC5B,2BAA2B;IAC3B,QAAA,gBAAgB,aAgDdhI,eAAY;IACZ,QAAAkI,iBAAY,6BA7Cd,SAAS;YACT,kBAAkB;YAClB,UAAU;YACV,UAAU;YACV,UAAU;YACV,UAAU;YACV,kBAAkB;YAClB,UAAU;YACV,WAAW;IACX,QAAA,aAAa,aATb,SAAS;YACT,kBAAkB;YAClB,UAAU;YACV,UAAU;YACV,UAAU;YACV,UAAU;YACV,kBAAkB;YAClB,UAAU;YACV,WAAW;IACX,QAAA,aAAa,EArEb,aAAa;YACb,mBAAmB;YACnB,mBAAmB;YACnB,eAAe;YACf,wBAAwB;YACxB,6BAA6B;YAC7B,aAAa;YACb,wBAAwB;YACxB,eAAe;YACf,WAAW;YACX,iBAAiB;YACjB,iBAAiB;YACjB,oBAAoB;YACpB,oBAAoB;YACpB,wBAAwB;YACxB,yBAAyB;YACzB,aAAa;YACbF,sBAAc;YACd,mBAAmB;YACnB,kBAAkB;YAClB,oBAAoB;YACpB,oBAAoB;YACpB,eAAe;YACf,mBAAmB;YACnB,kBAAkB;YAClB,cAAc;YACd,qBAAqB;YACrB,iBAAiB;YACjB,iBAAiB;YACjB,gBAAgB;YAChB,oBAAoB;YACpB,iBAAiB;YACjB,uBAAuB;YACvB,uBAAuB;YACvB,aAAa;YACb,eAAe;YACf,cAAc;YACd,kBAAkB;YAClB,sBAAsB;YACtB,oBAAoB;YACpB,cAAc;YACd,mBAAmB;YACnB,cAAc;YACd,wBAAwB;YACxB,kBAAkB;YAClB,sBAAsB,CAAA,EAAA,CAAA,CAAA;uJA0EX,WAAW,EAAA,SAAA,EAJX,SAAS,EAZX,OAAA,EAAA,CAAA,aAAA,CAAA;gBACPhI,eAAY;gBACZkI,iBAAY;gBACZjI,cAAW,CAAC,OAAO,CAAC;IAClB,gBAAA,IAAI,EAAE,KAAK;IACX,gBAAA,UAAU,EAAE,IAAI;IAChB,gBAAA,YAAY,EAAE,IAAI;IAClB,gBAAA,aAAa,EAAE,KAAK;iBACrB,CAAC;IACC,SAAA,EAAA,MAAA,CAAA,eAAe,IApDpB,SAAS;YACT,kBAAkB;YAClB,UAAU;YACV,UAAU;YACV,UAAU;YACV,UAAU;YACV,kBAAkB;YAClB,UAAU;YACV,WAAW;YACX,aAAa,CAAA,EAAA,CAAA,CAAA;sHAkDF,WAAW,EAAA,UAAA,EAAA,CAAA;sBAjBvBC,WAAQ;IAAC,YAAA,IAAA,EAAA,CAAA;wBACR,OAAO,EAAA,aAAA,CAAA;4BACLF,eAAY;4BACZkI,iBAAY;4BACZjI,cAAW,CAAC,OAAO,CAAC;IAClB,4BAAA,IAAI,EAAE,KAAK;IACX,4BAAA,UAAU,EAAE,IAAI;IAChB,4BAAA,YAAY,EAAE,IAAI;IAClB,4BAAA,aAAa,EAAE,KAAK;6BACrB,CAAC;IACC,qBAAA,EAAA,MAAA,CAAA,eAAe,CACnB,CAAA;IACD,oBAAA,YAAY,EAAE,YAAY;IAC1B,oBAAA,SAAS,EAAE,SAAS;IACpB,oBAAA,eAAe,EAAE,eAAe;IAChC,oBAAA,OAAO,EAAEgI,SAAO;qBACjB,CAAA;;;kCAgBIrI,WAAQ;;kCAAIC,SAAM;mCAAC,WAAW,CAAA;;;;ICtNnC;;IAEG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}