@veloceapps/sdk 8.0.0-9 → 8.0.0-90

Sign up to get free protection for your applications and to get access to all the features.
Files changed (257) hide show
  1. package/README.md +0 -1
  2. package/cms/utils/element.utils.d.ts +1 -0
  3. package/cms/vendor-map.d.ts +7 -2
  4. package/core/modules/configuration/services/configuration-runtime.service.d.ts +1 -1
  5. package/core/modules/configuration/services/configuration.service.d.ts +6 -1
  6. package/core/modules/flow-configuration/types/update.types.d.ts +1 -1
  7. package/core/pipes/action-code.pipe.d.ts +8 -0
  8. package/core/pipes/date.pipe.d.ts +2 -1
  9. package/core/pipes/index.d.ts +1 -0
  10. package/core/pipes/pipes.module.d.ts +2 -1
  11. package/core/services/context.service.d.ts +2 -0
  12. package/core/services/runtime-settings.service.d.ts +4 -1
  13. package/core/types/formatting-settings.types.d.ts +2 -0
  14. package/core/types/index.d.ts +1 -0
  15. package/core/types/pipe.types.d.ts +1 -0
  16. package/esm2020/cms/components/element-children/element-children.component.mjs +3 -3
  17. package/esm2020/cms/components/element-children/element-children.module.mjs +4 -4
  18. package/esm2020/cms/components/element-drop-handle/element-drop-handle.component.mjs +3 -3
  19. package/esm2020/cms/components/element-drop-handle/element-drop-handle.module.mjs +4 -4
  20. package/esm2020/cms/components/element-renderer/element-renderer.component.mjs +3 -3
  21. package/esm2020/cms/components/element-renderer/element-renderer.module.mjs +4 -4
  22. package/esm2020/cms/components/element-tools-panel/element-tools-panel.component.mjs +5 -5
  23. package/esm2020/cms/components/plugin.component.mjs +3 -3
  24. package/esm2020/cms/components/preview/preview.component.mjs +3 -3
  25. package/esm2020/cms/components/preview/preview.module.mjs +4 -4
  26. package/esm2020/cms/directives/custom-template.directive.mjs +7 -7
  27. package/esm2020/cms/launcher.module.mjs +4 -4
  28. package/esm2020/cms/modules/federated/federated-host.directive.mjs +3 -3
  29. package/esm2020/cms/modules/federated/federated.component.mjs +3 -3
  30. package/esm2020/cms/modules/federated/federated.module.mjs +4 -4
  31. package/esm2020/cms/modules/migrations/migrations.module.mjs +4 -4
  32. package/esm2020/cms/modules/migrations/services/migrations.service.mjs +3 -3
  33. package/esm2020/cms/modules/runtime/runtime.module.mjs +4 -4
  34. package/esm2020/cms/modules/runtime/services/compilation.service.mjs +3 -3
  35. package/esm2020/cms/modules/runtime/services/runtime-editor.service.mjs +3 -3
  36. package/esm2020/cms/modules/runtime/services/runtime.service.mjs +3 -3
  37. package/esm2020/cms/plugins/configuration.plugin.mjs +3 -3
  38. package/esm2020/cms/plugins/element-hover.plugin.mjs +3 -3
  39. package/esm2020/cms/plugins/io.plugin.mjs +8 -7
  40. package/esm2020/cms/plugins/page.plugin.mjs +3 -3
  41. package/esm2020/cms/plugins/region.plugin.mjs +3 -3
  42. package/esm2020/cms/plugins/script.plugin.mjs +3 -3
  43. package/esm2020/cms/services/element-context.service.mjs +3 -3
  44. package/esm2020/cms/services/integration.state.mjs +3 -3
  45. package/esm2020/cms/services/io-provider.service.mjs +3 -3
  46. package/esm2020/cms/services/resources.service.mjs +3 -3
  47. package/esm2020/cms/services/templates.service.mjs +3 -3
  48. package/esm2020/cms/utils/element.utils.mjs +10 -3
  49. package/esm2020/cms/utils/elements-resolver.mjs +2 -2
  50. package/esm2020/cms/vendor-map.mjs +8 -3
  51. package/esm2020/core/core.module.mjs +8 -17
  52. package/esm2020/core/directives/directives.module.mjs +4 -4
  53. package/esm2020/core/directives/primeng-calendar.directive.mjs +3 -3
  54. package/esm2020/core/modules/configuration/configuration.module.mjs +4 -4
  55. package/esm2020/core/modules/configuration/services/configuration-runtime.service.mjs +11 -14
  56. package/esm2020/core/modules/configuration/services/configuration.service.mjs +28 -9
  57. package/esm2020/core/modules/configuration/services/configuration.state.mjs +3 -3
  58. package/esm2020/core/modules/configuration/services/runtime-context.service.mjs +9 -9
  59. package/esm2020/core/modules/flow-configuration/flow-configuration.module.mjs +4 -4
  60. package/esm2020/core/modules/flow-configuration/services/flow-configuration.service.mjs +3 -3
  61. package/esm2020/core/modules/flow-configuration/services/flow-update.service.mjs +7 -14
  62. package/esm2020/core/modules/flow-configuration/types/update.types.mjs +1 -1
  63. package/esm2020/core/pipes/action-code.pipe.mjs +20 -0
  64. package/esm2020/core/pipes/date.pipe.mjs +13 -7
  65. package/esm2020/core/pipes/index.mjs +2 -1
  66. package/esm2020/core/pipes/number.pipe.mjs +3 -3
  67. package/esm2020/core/pipes/pipes.module.mjs +8 -7
  68. package/esm2020/core/pipes/price.pipe.mjs +3 -3
  69. package/esm2020/core/services/context.service.mjs +20 -5
  70. package/esm2020/core/services/metric-calculation/metric-calculation.service.mjs +3 -3
  71. package/esm2020/core/services/product-images.service.mjs +3 -3
  72. package/esm2020/core/services/quote-draft.service.mjs +5 -4
  73. package/esm2020/core/services/runtime-settings.service.mjs +20 -5
  74. package/esm2020/core/types/formatting-settings.types.mjs +1 -1
  75. package/esm2020/core/types/index.mjs +2 -1
  76. package/esm2020/core/types/pipe.types.mjs +2 -0
  77. package/esm2020/src/components/dialog/dialog.component.mjs +3 -3
  78. package/esm2020/src/components/dialog/dialog.module.mjs +4 -4
  79. package/esm2020/src/components/doc-gen/doc-gen.component.mjs +13 -14
  80. package/esm2020/src/components/doc-gen/doc-gen.module.mjs +4 -4
  81. package/esm2020/src/components/guided-selling/guided-selling.component.mjs +13 -14
  82. package/esm2020/src/components/guided-selling/guided-selling.module.mjs +4 -4
  83. package/esm2020/src/components/header/cart-overlay/cart-preview.component.mjs +3 -3
  84. package/esm2020/src/components/header/cart-overlay/cart-preview.module.mjs +4 -4
  85. package/esm2020/src/components/header/header.component.mjs +4 -4
  86. package/esm2020/src/components/header/header.module.mjs +4 -4
  87. package/esm2020/src/components/header/metrics/metrics.component.mjs +4 -4
  88. package/esm2020/src/components/header/metrics/metrics.module.mjs +4 -4
  89. package/esm2020/src/flow-routing.module.mjs +66 -75
  90. package/esm2020/src/flow.component.mjs +16 -10
  91. package/esm2020/src/flow.module.mjs +4 -4
  92. package/esm2020/src/guards/context.guard.mjs +4 -4
  93. package/esm2020/src/guards/flow.guard.mjs +23 -0
  94. package/esm2020/src/guards/product-unload.guard.mjs +7 -4
  95. package/esm2020/src/guards/root.guard.mjs +17 -13
  96. package/esm2020/src/pages/assets/assets.component.mjs +12 -12
  97. package/esm2020/src/pages/assets/assets.module.mjs +4 -4
  98. package/esm2020/src/pages/catalog/catalog.component.mjs +12 -12
  99. package/esm2020/src/pages/catalog/catalog.module.mjs +4 -4
  100. package/esm2020/src/pages/debug/debug.component.mjs +12 -16
  101. package/esm2020/src/pages/debug/debug.module.mjs +4 -4
  102. package/esm2020/src/pages/empty-account/empty-account.component.mjs +3 -3
  103. package/esm2020/src/pages/empty-account/empty-account.module.mjs +4 -4
  104. package/esm2020/src/pages/product/product.component.mjs +5 -6
  105. package/esm2020/src/pages/product/product.module.mjs +4 -4
  106. package/esm2020/src/pages/record-not-found/record-not-found.component.mjs +3 -3
  107. package/esm2020/src/pages/record-not-found/record-not-found.module.mjs +4 -4
  108. package/esm2020/src/pages/remote/remote.component.mjs +8 -9
  109. package/esm2020/src/pages/remote/remote.module.mjs +4 -4
  110. package/esm2020/src/pages/shopping-cart/shopping-cart.component.mjs +12 -12
  111. package/esm2020/src/pages/shopping-cart/shopping-cart.module.mjs +4 -4
  112. package/esm2020/src/resolvers/flow.resolver.mjs +17 -11
  113. package/esm2020/src/resolvers/quote.resolver.mjs +12 -8
  114. package/esm2020/src/services/doc-gen.service.mjs +3 -3
  115. package/esm2020/src/services/flow-dialog.service.mjs +3 -3
  116. package/esm2020/src/services/flow-router.service.mjs +5 -5
  117. package/esm2020/src/services/flow.service.mjs +34 -11
  118. package/esm2020/src/services/guided-selling.service.mjs +3 -3
  119. package/esm2020/src/utils/flow.utils.mjs +6 -2
  120. package/fesm2015/veloceapps-sdk-cms.mjs +129 -116
  121. package/fesm2015/veloceapps-sdk-cms.mjs.map +1 -1
  122. package/fesm2015/veloceapps-sdk-core.mjs +1064 -1011
  123. package/fesm2015/veloceapps-sdk-core.mjs.map +1 -1
  124. package/fesm2015/veloceapps-sdk.mjs +605 -695
  125. package/fesm2015/veloceapps-sdk.mjs.map +1 -1
  126. package/fesm2020/veloceapps-sdk-cms.mjs +128 -115
  127. package/fesm2020/veloceapps-sdk-cms.mjs.map +1 -1
  128. package/fesm2020/veloceapps-sdk-core.mjs +589 -538
  129. package/fesm2020/veloceapps-sdk-core.mjs.map +1 -1
  130. package/fesm2020/veloceapps-sdk.mjs +606 -697
  131. package/fesm2020/veloceapps-sdk.mjs.map +1 -1
  132. package/package.json +3 -11
  133. package/src/components/doc-gen/doc-gen.component.d.ts +4 -5
  134. package/src/components/guided-selling/guided-selling.component.d.ts +5 -6
  135. package/src/flow-routing.module.d.ts +6 -7
  136. package/src/flow.component.d.ts +3 -2
  137. package/src/guards/context.guard.d.ts +4 -4
  138. package/src/guards/flow.guard.d.ts +2 -0
  139. package/src/guards/product-unload.guard.d.ts +2 -2
  140. package/src/guards/root.guard.d.ts +0 -1
  141. package/src/pages/assets/assets.component.d.ts +3 -3
  142. package/src/pages/catalog/catalog.component.d.ts +3 -3
  143. package/src/pages/debug/debug.component.d.ts +5 -8
  144. package/src/pages/shopping-cart/shopping-cart.component.d.ts +3 -3
  145. package/src/resolvers/flow.resolver.d.ts +3 -1
  146. package/src/resolvers/quote.resolver.d.ts +3 -1
  147. package/src/services/flow.service.d.ts +11 -2
  148. package/esm2020/runtime/components/component-preview/component-preview.component.mjs +0 -125
  149. package/esm2020/runtime/components/index.mjs +0 -5
  150. package/esm2020/runtime/components/section-renderer/section-renderer.component.mjs +0 -67
  151. package/esm2020/runtime/components/ui-runtime/runtime.component.mjs +0 -440
  152. package/esm2020/runtime/components/ui-runtime-preview/runtime-preview.component.mjs +0 -108
  153. package/esm2020/runtime/execution/components/children-placeholder/children-placeholder.component.mjs +0 -60
  154. package/esm2020/runtime/execution/components/context-provider/context-provider.component.mjs +0 -39
  155. package/esm2020/runtime/execution/components/execution-section-renderer/execution-section-renderer.component.mjs +0 -67
  156. package/esm2020/runtime/execution/components/federated/federated.component.mjs +0 -74
  157. package/esm2020/runtime/execution/components/velo-attribute/velo-attribute.component.mjs +0 -60
  158. package/esm2020/runtime/execution/components/velo-multiselect/velo-multiselect.component.mjs +0 -130
  159. package/esm2020/runtime/execution/components/velo-port-checkbox/velo-port-checkbox.component.mjs +0 -72
  160. package/esm2020/runtime/execution/components/velo-port-dropdown/velo-port-dropdown.component.mjs +0 -97
  161. package/esm2020/runtime/execution/components/velo-port-radio/velo-port-radio.component.mjs +0 -142
  162. package/esm2020/runtime/execution/components/velo-type/velo-type.component.mjs +0 -119
  163. package/esm2020/runtime/execution/directives/section-script.directive.mjs +0 -247
  164. package/esm2020/runtime/execution/directives/sf-query.directive.mjs +0 -35
  165. package/esm2020/runtime/execution/directives/velo-attribute.directive.mjs +0 -88
  166. package/esm2020/runtime/execution/directives/velo-port.directive.mjs +0 -376
  167. package/esm2020/runtime/execution/directives/vl-approval.directive.mjs +0 -23
  168. package/esm2020/runtime/execution/directives/vl-document-attachments.directive.mjs +0 -36
  169. package/esm2020/runtime/execution/directives/vl-document-templates.directive.mjs +0 -60
  170. package/esm2020/runtime/execution/directives/vl-quote.directive.mjs +0 -42
  171. package/esm2020/runtime/execution/directives/vl-ramp.directive.mjs +0 -55
  172. package/esm2020/runtime/execution/runtime-execution.module.mjs +0 -133
  173. package/esm2020/runtime/execution/utils/federated.util.mjs +0 -32
  174. package/esm2020/runtime/index.mjs +0 -5
  175. package/esm2020/runtime/runtime.module.mjs +0 -74
  176. package/esm2020/runtime/services/cart.service.mjs +0 -29
  177. package/esm2020/runtime/services/collapsible-state.service.mjs +0 -34
  178. package/esm2020/runtime/services/configuration.service.mjs +0 -119
  179. package/esm2020/runtime/services/current-state.service.mjs +0 -17
  180. package/esm2020/runtime/services/form-scope.service.mjs +0 -30
  181. package/esm2020/runtime/services/index.mjs +0 -4
  182. package/esm2020/runtime/services/product-model-cache.service.mjs +0 -31
  183. package/esm2020/runtime/services/runtime-context.service.mjs +0 -60
  184. package/esm2020/runtime/services/runtime-form.service.mjs +0 -219
  185. package/esm2020/runtime/services/runtime.service.mjs +0 -115
  186. package/esm2020/runtime/services/section-helper.service.mjs +0 -27
  187. package/esm2020/runtime/services/section-scope.service.mjs +0 -36
  188. package/esm2020/runtime/services/section-store.service.mjs +0 -22
  189. package/esm2020/runtime/services/section.service.mjs +0 -117
  190. package/esm2020/runtime/types/bound-data.types.mjs +0 -7
  191. package/esm2020/runtime/types/index.mjs +0 -3
  192. package/esm2020/runtime/types/quote-states.types.mjs +0 -2
  193. package/esm2020/runtime/types/runtime.types.mjs +0 -2
  194. package/esm2020/runtime/types/script-registry.types.mjs +0 -51
  195. package/esm2020/runtime/utils/line-item.util.mjs +0 -270
  196. package/esm2020/runtime/utils/section.utils.mjs +0 -26
  197. package/esm2020/runtime/utils/sections-binder.helper.mjs +0 -105
  198. package/esm2020/runtime/veloceapps-sdk-runtime.mjs +0 -5
  199. package/esm2020/src/pages/legacy-product/legacy-product.component.mjs +0 -137
  200. package/esm2020/src/pages/legacy-product/legacy-product.module.mjs +0 -19
  201. package/fesm2015/veloceapps-sdk-runtime.mjs +0 -3770
  202. package/fesm2015/veloceapps-sdk-runtime.mjs.map +0 -1
  203. package/fesm2020/veloceapps-sdk-runtime.mjs +0 -3767
  204. package/fesm2020/veloceapps-sdk-runtime.mjs.map +0 -1
  205. package/runtime/README.md +0 -5
  206. package/runtime/components/component-preview/component-preview.component.d.ts +0 -27
  207. package/runtime/components/index.d.ts +0 -4
  208. package/runtime/components/section-renderer/section-renderer.component.d.ts +0 -25
  209. package/runtime/components/ui-runtime/runtime.component.d.ts +0 -53
  210. package/runtime/components/ui-runtime-preview/runtime-preview.component.d.ts +0 -27
  211. package/runtime/execution/components/children-placeholder/children-placeholder.component.d.ts +0 -30
  212. package/runtime/execution/components/context-provider/context-provider.component.d.ts +0 -14
  213. package/runtime/execution/components/execution-section-renderer/execution-section-renderer.component.d.ts +0 -25
  214. package/runtime/execution/components/federated/federated.component.d.ts +0 -36
  215. package/runtime/execution/components/velo-attribute/velo-attribute.component.d.ts +0 -19
  216. package/runtime/execution/components/velo-multiselect/velo-multiselect.component.d.ts +0 -35
  217. package/runtime/execution/components/velo-port-checkbox/velo-port-checkbox.component.d.ts +0 -22
  218. package/runtime/execution/components/velo-port-dropdown/velo-port-dropdown.component.d.ts +0 -22
  219. package/runtime/execution/components/velo-port-radio/velo-port-radio.component.d.ts +0 -28
  220. package/runtime/execution/components/velo-type/velo-type.component.d.ts +0 -31
  221. package/runtime/execution/directives/section-script.directive.d.ts +0 -59
  222. package/runtime/execution/directives/sf-query.directive.d.ts +0 -15
  223. package/runtime/execution/directives/velo-attribute.directive.d.ts +0 -26
  224. package/runtime/execution/directives/velo-port.directive.d.ts +0 -74
  225. package/runtime/execution/directives/vl-approval.directive.d.ts +0 -10
  226. package/runtime/execution/directives/vl-document-attachments.directive.d.ts +0 -15
  227. package/runtime/execution/directives/vl-document-templates.directive.d.ts +0 -33
  228. package/runtime/execution/directives/vl-quote.directive.d.ts +0 -14
  229. package/runtime/execution/directives/vl-ramp.directive.d.ts +0 -15
  230. package/runtime/execution/runtime-execution.module.d.ts +0 -25
  231. package/runtime/execution/utils/federated.util.d.ts +0 -6
  232. package/runtime/index.d.ts +0 -4
  233. package/runtime/runtime.module.d.ts +0 -16
  234. package/runtime/services/cart.service.d.ts +0 -15
  235. package/runtime/services/collapsible-state.service.d.ts +0 -15
  236. package/runtime/services/configuration.service.d.ts +0 -20
  237. package/runtime/services/current-state.service.d.ts +0 -8
  238. package/runtime/services/form-scope.service.d.ts +0 -20
  239. package/runtime/services/index.d.ts +0 -3
  240. package/runtime/services/product-model-cache.service.d.ts +0 -14
  241. package/runtime/services/runtime-context.service.d.ts +0 -16
  242. package/runtime/services/runtime-form.service.d.ts +0 -24
  243. package/runtime/services/runtime.service.d.ts +0 -44
  244. package/runtime/services/section-helper.service.d.ts +0 -8
  245. package/runtime/services/section-scope.service.d.ts +0 -14
  246. package/runtime/services/section-store.service.d.ts +0 -11
  247. package/runtime/services/section.service.d.ts +0 -30
  248. package/runtime/types/bound-data.types.d.ts +0 -13
  249. package/runtime/types/index.d.ts +0 -2
  250. package/runtime/types/quote-states.types.d.ts +0 -6
  251. package/runtime/types/runtime.types.d.ts +0 -19
  252. package/runtime/types/script-registry.types.d.ts +0 -13
  253. package/runtime/utils/line-item.util.d.ts +0 -34
  254. package/runtime/utils/section.utils.d.ts +0 -2
  255. package/runtime/utils/sections-binder.helper.d.ts +0 -16
  256. package/src/pages/legacy-product/legacy-product.component.d.ts +0 -37
  257. package/src/pages/legacy-product/legacy-product.module.d.ts +0 -9
@@ -1 +0,0 @@
1
- {"version":3,"file":"veloceapps-sdk-runtime.mjs","sources":["../../../../libs/sdk/runtime/services/collapsible-state.service.ts","../../../../libs/sdk/runtime/types/script-registry.types.ts","../../../../libs/sdk/runtime/services/form-scope.service.ts","../../../../libs/sdk/runtime/types/bound-data.types.ts","../../../../libs/sdk/runtime/utils/line-item.util.ts","../../../../libs/sdk/runtime/utils/sections-binder.helper.ts","../../../../libs/sdk/runtime/services/runtime-form.service.ts","../../../../libs/sdk/runtime/services/configuration.service.ts","../../../../libs/sdk/runtime/services/runtime.service.ts","../../../../libs/sdk/runtime/services/cart.service.ts","../../../../libs/sdk/runtime/services/current-state.service.ts","../../../../libs/sdk/runtime/services/product-model-cache.service.ts","../../../../libs/sdk/runtime/services/runtime-context.service.ts","../../../../libs/sdk/runtime/services/section-store.service.ts","../../../../libs/sdk/runtime/services/section-scope.service.ts","../../../../libs/sdk/runtime/execution/components/execution-section-renderer/execution-section-renderer.component.ts","../../../../libs/sdk/runtime/execution/components/execution-section-renderer/execution-section-renderer.component.html","../../../../libs/sdk/runtime/execution/components/children-placeholder/children-placeholder.component.ts","../../../../libs/sdk/runtime/execution/components/children-placeholder/children-placeholder.component.html","../../../../libs/sdk/runtime/execution/components/context-provider/context-provider.component.ts","../../../../libs/sdk/runtime/execution/utils/federated.util.ts","../../../../libs/sdk/runtime/execution/components/federated/federated.component.ts","../../../../libs/sdk/runtime/execution/components/federated/federated.component.html","../../../../libs/sdk/runtime/execution/directives/velo-attribute.directive.ts","../../../../libs/sdk/runtime/execution/components/velo-multiselect/velo-multiselect.component.ts","../../../../libs/sdk/runtime/execution/components/velo-multiselect/velo-multiselect.component.html","../../../../libs/sdk/runtime/execution/components/velo-attribute/velo-attribute.component.ts","../../../../libs/sdk/runtime/execution/components/velo-attribute/velo-attribute.component.html","../../../../libs/sdk/runtime/execution/components/velo-port-checkbox/velo-port-checkbox.component.ts","../../../../libs/sdk/runtime/execution/components/velo-port-checkbox/velo-port-checkbox.component.html","../../../../libs/sdk/runtime/execution/components/velo-port-dropdown/velo-port-dropdown.component.ts","../../../../libs/sdk/runtime/execution/components/velo-port-dropdown/velo-port-dropdown.component.html","../../../../libs/sdk/runtime/execution/components/velo-port-radio/velo-port-radio.component.ts","../../../../libs/sdk/runtime/execution/components/velo-port-radio/velo-port-radio.component.html","../../../../libs/sdk/runtime/execution/components/velo-type/velo-type.component.ts","../../../../libs/sdk/runtime/execution/components/velo-type/velo-type.component.html","../../../../libs/sdk/runtime/execution/directives/sf-query.directive.ts","../../../../libs/sdk/runtime/services/section-helper.service.ts","../../../../libs/sdk/runtime/execution/directives/velo-port.directive.ts","../../../../libs/sdk/runtime/execution/directives/vl-approval.directive.ts","../../../../libs/sdk/runtime/execution/directives/vl-document-attachments.directive.ts","../../../../libs/sdk/runtime/execution/directives/vl-document-templates.directive.ts","../../../../libs/sdk/runtime/execution/directives/vl-quote.directive.ts","../../../../libs/sdk/runtime/execution/directives/vl-ramp.directive.ts","../../../../libs/sdk/runtime/execution/directives/section-script.directive.ts","../../../../libs/sdk/runtime/execution/runtime-execution.module.ts","../../../../libs/sdk/runtime/services/section.service.ts","../../../../libs/sdk/runtime/components/section-renderer/section-renderer.component.ts","../../../../libs/sdk/runtime/components/section-renderer/section-renderer.component.html","../../../../libs/sdk/runtime/components/component-preview/component-preview.component.ts","../../../../libs/sdk/runtime/components/component-preview/component-preview.component.html","../../../../libs/sdk/runtime/utils/section.utils.ts","../../../../libs/sdk/runtime/components/ui-runtime/runtime.component.ts","../../../../libs/sdk/runtime/components/ui-runtime/runtime.component.html","../../../../libs/sdk/runtime/components/ui-runtime-preview/runtime-preview.component.ts","../../../../libs/sdk/runtime/components/ui-runtime-preview/runtime-preview.component.html","../../../../libs/sdk/runtime/runtime.module.ts","../../../../libs/sdk/runtime/veloceapps-sdk-runtime.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\n\n@Injectable()\nexport class CollapsibleStateService {\n public collapseSectionEvent: Observable<any>;\n private _collapsedSections: { [index: string]: boolean } = {}; // By Line Item Id\n\n private collapseSectionSubject = new Subject<any>();\n\n constructor() {\n this.collapseSectionEvent = this.collapseSectionSubject.asObservable();\n }\n\n public toggleCollapse(sectionId: string, silently?: boolean): void {\n this._collapsedSections[sectionId] = !this.isCollapsedSection(sectionId);\n\n if (!silently) {\n this.collapseSectionSubject.next([sectionId, this._collapsedSections[sectionId]]);\n }\n }\n\n public collapse(sectionId: string): void {\n this._collapsedSections[sectionId] = true;\n }\n\n public expand(sectionId: string): void {\n this._collapsedSections[sectionId] = false;\n }\n\n public clearState(sectionId: string): void {\n delete this._collapsedSections[sectionId];\n }\n\n public isCollapsedSection(sectionId: string): boolean {\n return this._collapsedSections[sectionId];\n }\n}\n","import { EntityUtil } from '@veloceapps/core';\n\nexport class ScriptRegistry {\n public scope: Map<string, any>;\n private store: Map<string, string[]>;\n\n constructor() {\n this.store = new Map();\n this.scope = new Map();\n }\n\n public exists(scriptId: string): boolean {\n const sectionIds = this.store.get(scriptId);\n\n return !EntityUtil.isEmpty(sectionIds);\n }\n\n public isRegistered(scriptId: string, sectionId: string): boolean {\n const sectionIds = this.store.get(scriptId);\n\n return !EntityUtil.isEmpty(sectionIds) && sectionIds?.findIndex(entryId => entryId === sectionId) !== -1;\n }\n\n public doRegister(scriptId: string, sectionId: string): void {\n const sectionIds = this.store.get(scriptId);\n\n if (!EntityUtil.isPresent(sectionIds)) {\n this.store.set(scriptId, [sectionId]);\n } else if (sectionIds?.findIndex(entryId => entryId === sectionId) === -1) {\n sectionIds.push(sectionId);\n }\n }\n\n public unRegister(scriptId: string, sectionId: string): void {\n const sectionIds = this.store.get(scriptId);\n\n if (!sectionIds) {\n return;\n }\n\n const index = sectionIds?.findIndex(entryId => entryId === sectionId);\n\n if (index !== -1) {\n sectionIds.splice(index, 1);\n\n // Remove orphan\n if (sectionIds.length < 1) {\n this.store.delete(scriptId);\n }\n }\n }\n\n public hasGlobalForScript(globalId: string): boolean {\n return this.scope.has(globalId);\n }\n\n public getGlobalForScript(globalId: string): any {\n return this.scope.get(globalId);\n }\n\n public setGlobalForScript(globalId: string, globalVariable: any): void {\n this.scope.set(globalId, globalVariable);\n }\n\n public removeGlobalForScript(globalId: string): void {\n this.scope.delete(globalId);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { Observable, Subject } from 'rxjs';\nimport { UpdateData } from '../types';\nimport { ScriptRegistry } from '../types/script-registry.types';\n\n@Injectable()\n// TODO ALE RENAME TO SESSION SCOPE\nexport class FormScopeService {\n public formSubmitEvent: Observable<UpdateData>;\n\n public scriptRegistry: ScriptRegistry = new ScriptRegistry();\n public scriptSessionScope: { [index: string]: any } = {};\n\n private formSubmitSubject = new Subject<UpdateData>();\n\n private _form = new FormGroup({});\n\n constructor() {\n this.formSubmitEvent = this.formSubmitSubject.asObservable();\n }\n\n public get form(): FormGroup {\n return this._form;\n }\n\n public set form(value: FormGroup) {\n this._form = value;\n }\n\n public publishFormUpdate(value: UpdateData): void {\n this.formSubmitSubject.next(value);\n }\n}\n","import { ProductModelAttribute, ProductPort, ProductType, SectionPath } from '@veloceapps/core';\n\nexport enum BoundDataType {\n TYPE,\n ATTRIBUTE,\n PORT,\n}\n\nexport interface BoundData {\n name: string;\n entity: ProductType | ProductModelAttribute | ProductPort;\n entityType: string;\n host?: string;\n path: SectionPath;\n}\n","import { EntityUtil, LineItem, RuntimeModel, SectionPath, UUID } from '@veloceapps/core';\n\nexport class LineItemPath {\n public path: string;\n private _relativePath = '';\n private _relativeAbstractPath = '';\n private _abstractPath = '';\n\n public set relativePath(relativePath: string) {\n this._relativePath = relativePath.toLowerCase();\n }\n\n public get relativePath(): string {\n return this._relativePath;\n }\n\n public set abstractPath(abstractPath: string) {\n this._abstractPath = abstractPath.toLowerCase();\n }\n\n public get abstractPath(): string {\n return this._abstractPath || this.path;\n }\n\n public set relativeAbstractPath(relativeAbstractPath: string) {\n this._relativeAbstractPath = relativeAbstractPath.toLowerCase();\n }\n\n constructor(path: string) {\n this.path = path.toLowerCase();\n }\n\n public isEqualTo(sectionPath: SectionPath): boolean {\n if (!sectionPath || !this.path || !sectionPath.path) {\n return false;\n }\n\n const otherPath = sectionPath.path.toLowerCase();\n const isEqual =\n this.path === otherPath || this._relativePath === otherPath || this._relativeAbstractPath === otherPath;\n\n //TODO ALE SORT OUT SEARCH\n if (!isEqual) {\n const abstractPathMatch = this._abstractPath === sectionPath.abstractPath.toLowerCase();\n const relativePathMatch = this._relativePath\n ? this._relativePath === sectionPath.relativePath.toLowerCase()\n : false;\n const relativeAbstractPathMatch =\n this._relativeAbstractPath && sectionPath.relativeAbstractPath\n ? sectionPath.relativeAbstractPath.toLowerCase() === sectionPath.relativePath.toLowerCase() &&\n this._relativeAbstractPath === sectionPath.relativePath.toLowerCase()\n : false;\n return abstractPathMatch && (relativePathMatch || relativeAbstractPathMatch);\n }\n\n return isEqual;\n }\n}\n\nexport class LineItemUtil {\n public static removeDeletedItems(original: LineItem): LineItem {\n const root = EntityUtil.clone(original);\n\n if (root) {\n let items = [root];\n\n for (let i = 0; i < items.length; i++) {\n const item = items[i];\n item.lineItems = (item.lineItems ?? []).filter(l => l.actionCode !== 'DELETE');\n items = items.concat(item.lineItems);\n }\n }\n\n return root;\n }\n\n public static replaceLineItemKeys(rootLineItem: LineItem): void {\n const replaceFn = (item: LineItem): void => {\n item.id = item.id ? 'DUMMY-' + item.id : item.id;\n item.rootId = item.rootId ? 'DUMMY-' + item.rootId : item.rootId;\n item.parentId = item.parentId ? 'DUMMY-' + item.parentId : item.parentId;\n item.offeringInstanceId = item.offeringInstanceId ? 'DUMMY-' + item.offeringInstanceId : void 0;\n item.offeringItemId = item.offeringItemId ? 'DUMMY-' + item.offeringItemId : void 0;\n item.rampInstanceId = item.rampInstanceId ? 'DUMMY-' + item.rampInstanceId : void 0;\n };\n\n const traverseFn = (lineItem: LineItem, callbackFn: any): void => {\n if (lineItem.lineItems && lineItem.lineItems.length > 0) {\n lineItem.lineItems.forEach(childLineItem => {\n callbackFn.apply(null, [childLineItem]);\n traverseFn.apply(null, [childLineItem, callbackFn]);\n });\n }\n };\n\n replaceFn.apply(null, [rootLineItem]);\n // rootLineItem.rootId = rootLineItem.id;\n\n traverseFn.apply(null, [rootLineItem, replaceFn]);\n }\n\n public static enrichPricingInfo(source: LineItem, pricingDto?: LineItem): LineItem {\n const result: LineItem = {\n ...source,\n };\n\n if (pricingDto) {\n result.productName = pricingDto.properties?.['displayName'] || pricingDto.productName;\n result.type = pricingDto.type;\n result.rootId = pricingDto.rootId;\n result.assetId = pricingDto.assetId;\n result.openOrderLineItemId = pricingDto.openOrderLineItemId;\n result.activated = pricingDto.activated;\n result.actionCode = pricingDto.actionCode;\n result.serviceStartDate = pricingDto.serviceStartDate;\n result.effectiveDate = pricingDto.effectiveDate;\n result.startDate = pricingDto.startDate;\n result.endDate = pricingDto.endDate;\n result.offeringId = pricingDto.offeringId;\n result.offeringItemId = pricingDto.offeringItemId;\n result.offeringInstanceId = pricingDto.offeringInstanceId;\n result.rampInstanceId = pricingDto.rampInstanceId;\n result.planId = pricingDto.planId;\n\n if (!result.chargeItems) {\n result.chargeItems = pricingDto.chargeItems;\n }\n result.chargeGroupItems = [];\n }\n\n if (source.lineItems && source.lineItems.length > 0) {\n result.lineItems = [];\n\n source.lineItems.forEach((childSource: LineItem) => {\n const childDto = pricingDto && pricingDto.lineItems && pricingDto.lineItems.find(c => childSource.id === c.id);\n\n const childItem = LineItemUtil.enrichPricingInfo(childSource, childDto);\n\n result.lineItems.push(childItem);\n });\n }\n\n return result;\n }\n\n public static getLineItemPath(lineItem: LineItem, rootLineItem: LineItem): LineItemPath {\n let path: LineItemPath;\n\n if (!lineItem.parentId) {\n path = new LineItemPath('/' + lineItem.type);\n\n path.abstractPath = path.path;\n path.relativePath = path.path;\n path.relativeAbstractPath = path.path;\n } else {\n //TOODO ALE SORT OUT PATENT ITEM\n const parentItem = EntityUtil.findByFieldHierarchically<LineItem>(\n 'id',\n lineItem.parentId,\n [rootLineItem],\n 'lineItems',\n );\n\n const portType = lineItem.port && parentItem?.portDomains[lineItem.port].type;\n\n const parentPath = parentItem && LineItemUtil.getLineItemPath(parentItem, rootLineItem);\n\n if (parentPath) {\n path = new LineItemPath(parentPath.path + '/ports/' + lineItem.port + '/' + lineItem.type);\n\n path.abstractPath = parentPath.abstractPath + '/ports/' + (lineItem.port + '/' + portType);\n path.relativePath = '/' + lineItem.type;\n path.relativeAbstractPath = '/' + portType;\n } else {\n throw 'Could not construct line item path';\n }\n }\n\n return path;\n }\n\n public static findById(parentId: string, lineItems: LineItem[]): LineItem | undefined {\n return EntityUtil.findByFieldHierarchically('id', parentId, lineItems, 'lineItems');\n }\n\n public static countAttributeValues(scale: number, attributeDomain: any[]): number {\n const precision = LineItemUtil.precision(scale);\n let count = 0;\n attributeDomain.forEach(d => (count += d.max - d.min + precision));\n return count;\n }\n\n public static precision(scale: number): number {\n if (!scale) {\n return 1;\n }\n let s = '1';\n while (s.length < scale) {\n s = '0' + s;\n }\n return Number('0.' + s);\n }\n\n public static splitDomainToValues(scale: number, attributeDomain: any[]): string[] {\n const precision = this.precision(scale);\n let values: string[] = [];\n attributeDomain.forEach(\n interval => (values = values.concat(LineItemUtil.splitIntervalToValues(precision, interval))),\n );\n return values;\n }\n\n public static splitIntervalToValues(precision: number, interval: any): string[] {\n const values = [];\n for (let i = interval.min; i <= interval.max; i += precision) {\n values.push(i);\n }\n return values;\n }\n\n public static findLineItemsByPath(runtimeModel: RuntimeModel, lineItem: LineItem, path: SectionPath): LineItem[] {\n if (!runtimeModel.isEquals(lineItem.type, path.types[0])) {\n return [];\n }\n let lineItems = [lineItem];\n for (let i = 1; i < path.types.length; i++) {\n const portName = path.ports[i - 1];\n const typeName = path.types[i];\n lineItems = LineItemUtil.findLineItemChildren(runtimeModel, lineItems, portName, typeName);\n }\n return lineItems;\n }\n\n public static findLineItemChildren(\n runtimeModel: RuntimeModel,\n lineItems: LineItem[],\n portName: string,\n typeName: string,\n ): LineItem[] {\n const result = [];\n for (const lineItem of lineItems) {\n for (const childItem of lineItem.lineItems) {\n if (\n childItem.port?.toLowerCase() === portName.toLowerCase() &&\n runtimeModel.isEquals(childItem.type, typeName)\n ) {\n result.push(childItem);\n }\n }\n }\n return result;\n }\n\n public static findLineItemsByType(runtimeModel: RuntimeModel, lineItem: LineItem, typeName: string): LineItem[] {\n const result = [];\n let lineItems = [lineItem];\n for (let i = 0; i < lineItems.length; i++) {\n const lineItem = lineItems[i];\n if (runtimeModel.isEquals(lineItem.type, typeName)) {\n result.push(lineItem);\n }\n lineItems = lineItems.concat(lineItem.lineItems);\n }\n\n return result;\n }\n\n public static findLineItemForValue(model: LineItem, valueOption: string): LineItem | undefined {\n if (!EntityUtil.isPresent(model) || !EntityUtil.isPresent(model.lineItems)) {\n return;\n }\n\n return model.lineItems.find(li => li.type && li.type.toLowerCase() === valueOption.toLowerCase());\n }\n\n // TODO: add Product typings\n public static create(product: any, qty?: number): LineItem {\n return {\n id: UUID.UUID(),\n type: product.typeName,\n name: product.properties?.displayName || product.name,\n productName: product.name,\n productId: product.id,\n cfgStatus: 'User',\n actionCode: 'ADD',\n qty: qty || 1,\n } as LineItem;\n }\n\n public static upsert(value: LineItem, collection: LineItem[]): void {\n const index = collection.findIndex(item => item.id === value.id);\n if (index > -1) {\n collection[index] = value;\n } else {\n collection.push(value);\n }\n }\n\n public static compareSortOrder(a: LineItem, b: LineItem): number {\n const orderA = Number(a.properties['SortOrder']);\n const orderB = Number(b.properties['SortOrder']);\n if (!orderA && !orderB) {\n return LineItemUtil.compareProductName(a, b);\n }\n if (!orderA) {\n return 1;\n } else if (!orderB) {\n return -1;\n }\n const result = orderA - orderB;\n if (result === 0) {\n return LineItemUtil.compareProductName(a, b);\n }\n return result;\n }\n\n public static sort(lineItems: LineItem[]): void {\n if (lineItems) {\n lineItems.sort((a, b) => LineItemUtil.compareSortOrder(a, b));\n lineItems.forEach(i => LineItemUtil.sort(i.lineItems));\n }\n }\n\n private static compareProductName(a: LineItem, b: LineItem): number {\n if (a.productName) {\n return (a.productName ?? '').localeCompare(b.productName ?? '');\n } else if (b.productName) {\n return 1;\n }\n return 0;\n }\n}\n","import { EntityUtil, LineItem, RuntimeModel, Section, SectionPath, SectionPathUtil, UUID } from '@veloceapps/core';\nimport { BoundDataType } from '../types/bound-data.types';\nimport { LineItemUtil } from './line-item.util';\n\nexport class SectionsBinderHelper {\n public static setLineItemsPath(\n runtimeModel: RuntimeModel,\n rootLineItem: LineItem,\n sections: Section[],\n sourceSections: Section[],\n filterFn: any,\n pricingEnabled: boolean,\n ): Section[] {\n const filtered = sections.filter(filterFn);\n\n filtered.forEach(section => {\n const path: SectionPath = section.boundData.path;\n let foundLineItems: LineItem[];\n if (path.relative) {\n foundLineItems = LineItemUtil.findLineItemsByType(runtimeModel, rootLineItem, path.types[0]);\n } else {\n const remainder = rootLineItem.path ? SectionPathUtil.cut(runtimeModel, path, rootLineItem.path) : undefined;\n if (!remainder) {\n return [];\n }\n foundLineItems = LineItemUtil.findLineItemsByPath(runtimeModel, rootLineItem, remainder);\n }\n\n if (section.boundData.entityType === BoundDataType[BoundDataType.TYPE]) {\n SectionsBinderHelper.bindMatchingLineItems(\n runtimeModel,\n foundLineItems,\n section,\n sections,\n sourceSections,\n pricingEnabled,\n );\n } else if (section.boundData.entityType === BoundDataType[BoundDataType.ATTRIBUTE]) {\n foundLineItems = foundLineItems.filter(\n item =>\n item.attributes &&\n item.attributes.findIndex(a => a.name.toLowerCase() === section.boundData.name.toLowerCase()) !== -1,\n );\n\n foundLineItems.forEach(lineItem => {\n SectionsBinderHelper.bindLineItem(section, sections, sourceSections, lineItem, pricingEnabled);\n });\n } else if (section.boundData.entityType === BoundDataType[BoundDataType.PORT]) {\n foundLineItems = foundLineItems.filter(item => item.portDomains && item.portDomains[section.boundData.name]);\n\n SectionsBinderHelper.bindMatchingLineItems(\n runtimeModel,\n foundLineItems,\n section,\n sections,\n sourceSections,\n pricingEnabled,\n );\n }\n\n return;\n });\n\n return sections;\n }\n\n public static isAddAllowed(model: LineItem, portName: string, quantityToAdd: number = 1): boolean {\n const quantity = this.getQuantity(model, portName);\n\n return quantity + quantityToAdd <= +this.getPortMax(model, portName);\n }\n\n public static isRemoveAllowed(model: LineItem, portName: string, quantityToRemove: number = 1): boolean {\n const quantity = this.getQuantity(model, portName);\n\n return quantity - quantityToRemove >= +this.getPortMin(model, portName);\n }\n\n public static getMaxAllowed(lineItem: LineItem, portName: string): number {\n return +this.getPortMax(lineItem, portName) - this.getQuantity(lineItem, portName);\n }\n\n public static getQuantityGroupByValue(model: LineItem, portName: string): { [index: string]: number } {\n const quantities: { [index: string]: number } = {};\n\n if (model && portName) {\n model.lineItems\n .filter(li => li.port === portName)\n .forEach(li => {\n let quantity = (EntityUtil.isPresent(li.qty) && li.qty) || 1;\n\n if (EntityUtil.isPresent(quantities[li.type])) {\n quantity += quantities[li.type];\n }\n\n quantities[li.type] = quantity;\n });\n }\n\n return quantities;\n }\n\n private static bindMatchingLineItems(\n runtimeModel: RuntimeModel,\n foundLineItems: LineItem[],\n section: Section,\n sections: Section[],\n sourceSections: Section[],\n pricingEnabled: boolean,\n ): void {\n foundLineItems.forEach(lineItem => {\n const boundSection = SectionsBinderHelper.bindLineItem(\n section,\n sections,\n sourceSections,\n lineItem,\n pricingEnabled,\n );\n\n SectionsBinderHelper.setLineItemsPath(\n runtimeModel,\n lineItem,\n sections,\n sourceSections,\n (sec: any) => {\n return sec.boundData && sec.parentId === boundSection.id;\n },\n pricingEnabled,\n );\n });\n }\n\n private static bindLineItem(\n section: Section,\n sections: Section[],\n sourceSections: Section[],\n lineItem: LineItem,\n pricingEnabled: boolean,\n ): Section {\n const boundSection = section.model ? SectionsBinderHelper.doClone(section, sections, sourceSections) : section;\n\n boundSection.model = lineItem;\n boundSection.pricingEnabled = pricingEnabled;\n\n return boundSection;\n }\n\n private static doClone(source: Section, sections: Section[], sourceSections: Section[], parent?: Section): Section {\n const sourceClass = sourceSections.find(s => s.classId === source.classId) as Section;\n\n const clone = EntityUtil.clone(sourceClass);\n\n clone.id = UUID.UUID();\n clone.parentId = parent ? parent.id : source.parentId;\n\n sections.splice(sections.findIndex(s => s.id === source.id) + 1, 0, clone);\n sourceSections\n .filter(s => s.parentId === sourceClass.id)\n .forEach(s => SectionsBinderHelper.doClone(s, sections, sourceSections, clone));\n\n return clone;\n }\n\n private static getQuantity(model: LineItem, portName: string): number {\n let quantity = 0;\n\n model.lineItems\n .filter(li => li.port === portName)\n .forEach(li => {\n quantity += li.qty;\n });\n\n return quantity;\n }\n\n private static getPortMax(model: LineItem, portName: string): number {\n return model.portDomains[portName].maxCard;\n }\n\n private static getPortMin(model: LineItem, portName: string): number {\n return model.portDomains[portName].minCard;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { FormControl, FormGroup, ValidationErrors, ValidatorFn } from '@angular/forms';\nimport { EntityUtil, LineItem, PriceValue, Section, TypeValidators } from '@veloceapps/core';\nimport { Dictionary, isNull, isString, isUndefined, keys } from 'lodash';\nimport { BoundDataType } from '../types/bound-data.types';\nimport { LineItemUtil } from '../utils/line-item.util';\nimport { SectionsBinderHelper } from '../utils/sections-binder.helper';\n\n@Injectable()\nexport class RuntimeFormService {\n public sections: Section[] = [];\n public solutionLineItem?: LineItem;\n\n public initForm(sections: Section[], solutionLineItem: LineItem): FormGroup {\n this.sections = sections;\n this.solutionLineItem = solutionLineItem;\n\n const form = new FormGroup({});\n\n sections\n .filter(section => section.model && section.template && section.boundData)\n .forEach(section => {\n this.populateSectionValue(section);\n this.populateSectionPrice(section);\n this.populateFormControls(section, form);\n });\n\n return form;\n }\n\n private populateSectionValue(section: Section): void {\n let value;\n let valueOptions: string[] = [];\n let displayValues: Dictionary<string> = {};\n let properties: Dictionary<any> = {};\n\n if (FormServiceUtils.isPortSection(section)) {\n const portDomain = section.model?.portDomains[section.boundData.name];\n\n valueOptions = portDomain?.domainTypes.map(dt => dt.name) ?? [];\n properties =\n portDomain?.domainTypes.reduce<Dictionary<any>>(function (map, dt) {\n map[dt.name] = dt.properties;\n return map;\n }, {}) ?? {};\n displayValues =\n portDomain?.domainTypes.reduce<Dictionary<string>>(function (map, dt) {\n map[dt.name] = dt.displayName;\n return map;\n }, {}) ?? {};\n\n value = section.model?.lineItems.map(li => li.type);\n }\n\n if (FormServiceUtils.isAttributeSection(section)) {\n const attribute = section.model?.attributes.find(\n attr => attr.name.toLowerCase() === section.boundData.name.toLowerCase(),\n );\n if (attribute) {\n value = attribute.value;\n }\n\n const attributeDomain = section.model?.attributeDomains[section.boundData.name];\n\n if (!attribute?.type.match('GENERIC|BOOLEAN') && attributeDomain) {\n const count =\n attribute && attribute.scale != null\n ? LineItemUtil.countAttributeValues(attribute.scale, attributeDomain)\n : undefined;\n\n if (attribute && attribute.scale != null && count && count <= 100) {\n valueOptions = LineItemUtil.splitDomainToValues(attribute.scale, attributeDomain);\n } else {\n valueOptions = attributeDomain;\n }\n } else if (attributeDomain) {\n valueOptions = attributeDomain;\n }\n }\n\n if (!EntityUtil.isPresent(value)) {\n value = '';\n }\n\n section.sectionValue = {\n value,\n valueOptions,\n displayValues,\n properties,\n };\n }\n\n private populateSectionPrice(section: Section): void {\n const priceValue: PriceValue = { priceOptions: {} };\n\n if (FormServiceUtils.isPortSection(section)) {\n const portDomain = section.model?.portDomains[section.boundData.name];\n\n if (portDomain) {\n portDomain.domainTypes.forEach(dt => {\n if (dt.recommendedPrices && dt.recommendedPrices.length > 0) {\n priceValue.priceOptions[dt.name] = dt.recommendedPrices;\n } else {\n delete priceValue.priceOptions[dt.name];\n }\n });\n }\n }\n\n section.priceValue = priceValue;\n }\n\n private populateFormControls(section: Section, form: FormGroup): void {\n form.controls[section.id] = this.createFormControl(section);\n\n if (FormServiceUtils.isPortSection(section) || FormServiceUtils.isTypeSection(section)) {\n form.controls[section.id.concat('qty')] = this.createQtyControl(section);\n }\n }\n\n private createFormControl(section: Section): FormControl {\n const value = FormServiceUtils.isPortSection(section) ? void 0 : section.sectionValue?.value;\n\n return new FormControl(value, this.getFormControlValidators(section));\n }\n\n private createQtyControl(section: Section): FormControl {\n const isTypeSection = FormServiceUtils.isTypeSection(section);\n\n const validators = [];\n\n const maxAllowed = this.getMaxAllowed(section);\n\n //TODO TEMPORARY SOLUTION (WILL BE DISABLED ONCE RADIO CONTROLS IMPLEMENTED)\n if (maxAllowed > 0) {\n validators.push(this.getQuantityValidator(maxAllowed, isTypeSection ? section.model?.qty ?? 0 : 0));\n }\n\n const qtyValue = isTypeSection ? section.model?.qty : 1;\n\n return new FormControl(qtyValue, validators);\n }\n\n private getMaxAllowed(section: Section): number {\n let lineItem = section.model;\n let portName = section.boundData.name;\n\n if (FormServiceUtils.isTypeSection(section)) {\n if (section.model && EntityUtil.isPresent(section.model.parentId) && this.solutionLineItem) {\n if (section.model.parentId) {\n lineItem = LineItemUtil.findById(section.model.parentId, [this.solutionLineItem]);\n }\n portName = section.model.port;\n } else {\n return 0;\n }\n }\n\n if (!lineItem) {\n return 0;\n }\n\n return SectionsBinderHelper.getMaxAllowed(lineItem, portName);\n }\n\n //TODO ALE TO SUPPORT EMPTY VALUES FOR INTERVAL ATTRIBUTES OUT OF DOMAIN\n private getFormControlValidators(section: Section): ValidatorFn[] | null {\n if (!FormServiceUtils.isAttributeSection(section)) {\n return null;\n }\n\n const validators = [];\n const parentLineItem =\n section.model && this.solutionLineItem && FormServiceUtils.findParent(section.model.id, [this.solutionLineItem]);\n const attribute =\n parentLineItem &&\n parentLineItem.attributes.find(attr => attr.name.toLowerCase() === section.boundData.name.toLowerCase());\n\n if (!attribute || !attribute.type) {\n return null;\n }\n\n const primitiveTypesValidators: any = {\n INT: TypeValidators.integerValidator(),\n 'DOUBLE|DECIMAL': TypeValidators.decimalValidator(10),\n };\n\n keys(primitiveTypesValidators).forEach(types => {\n if (types.match(attribute.type)) {\n const validator = primitiveTypesValidators[types];\n\n validators.push(validator);\n }\n });\n\n if (!attribute.type.match('GENERIC|BOOLEAN|MULTIPLE')) {\n const sectionLabel = section.label;\n\n const intervalValidator: ValidatorFn = function (control) {\n if (isUndefined(control.value) || isNull(control.value) || isNaN(+control.value)) {\n return { interval: { message: sectionLabel + ' is not in domain' } };\n }\n\n if (!isUndefined(control.value) && isString(control.value) && control.value.length === 0) {\n return null;\n }\n\n const attributeDomain = section.model?.attributeDomains[section.boundData.name];\n\n const valid = attributeDomain?.some(valueOption => {\n const min = +valueOption.min;\n const max = +valueOption.max;\n\n return +control.value <= max && +control.value >= min;\n });\n\n if (!valid) {\n return { interval: { message: sectionLabel + ' is not in domain' } };\n }\n\n return null;\n };\n\n validators.push(intervalValidator);\n }\n\n if (section.required) {\n validators.push(TypeValidators.requiredValidator(section.label + ' is required '));\n }\n\n return validators.length !== 0 ? validators : null;\n }\n\n private getQuantityValidator(max: number, originalQty: number): ValidatorFn {\n return (control): ValidationErrors | null => {\n if (!control.value) {\n return { quantity: { message: 'Required' } };\n } else if (isNaN(+control.value) || +control.value < 1) {\n return { quantity: { message: 'Invalid value' } };\n } else if (+control.value > max + originalQty) {\n return { quantity: { message: 'Max quantity ' + (max + originalQty) } };\n } else {\n return null;\n }\n };\n }\n}\n\nexport class FormServiceUtils {\n public static isPortSection(section: Section): boolean {\n return section && section.boundData && section.boundData.entityType === BoundDataType[BoundDataType.PORT];\n }\n\n public static isTypeSection(section: Section): boolean {\n return section && section.boundData && section.boundData.entityType === BoundDataType[BoundDataType.TYPE];\n }\n\n public static isAttributeSection(section: Section): boolean {\n return section && section.boundData && section.boundData.entityType === BoundDataType[BoundDataType.ATTRIBUTE];\n }\n\n public static findParent(parentId: string, lineItems: LineItem[]): LineItem | undefined {\n return EntityUtil.findByFieldHierarchically('id', parentId, lineItems, 'lineItems');\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ConfigurationApiService } from '@veloceapps/api';\nimport { ConfirmationComponent, ConfirmationConfig } from '@veloceapps/components';\nimport { ConfigurationMode, ConfigurationRequest, LineItem, UUID, VlWindow } from '@veloceapps/core';\nimport { ContextService, RuntimeMode } from '@veloceapps/sdk/core';\nimport { Dictionary } from 'lodash';\nimport { DialogService } from 'primeng/dynamicdialog';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { LegacyRuntimeContext } from '../types';\nimport { QuoteStates } from '../types/quote-states.types';\n\ndeclare const window: VlWindow;\n\n@Injectable()\nexport class ConfigurationService {\n constructor(\n private configurationApiService: ConfigurationApiService,\n private contextService: ContextService,\n private dialogService: DialogService,\n ) {}\n\n public configure(runtimeContext: LegacyRuntimeContext, states: QuoteStates, resolve?: boolean): Observable<LineItem> {\n const lineItem = (states && states.configurableRamp) || this.getDefaultLineItem(runtimeContext);\n const configurationMode = resolve ? ConfigurationMode.RESOLVE : ConfigurationMode.SEARCH;\n const configurationRequest = this.createRequest(lineItem, runtimeContext, configurationMode);\n configurationRequest.lineItems = states.currentState || [];\n configurationRequest.asset = states.asset;\n const runtimeModel = runtimeContext.runtimeModel;\n const pricingEnabled = runtimeContext.uiDefinition?.pricingEnabled;\n return this.configurationApiService\n .configureLineItem({\n configurationRequest,\n runtimeModel,\n pricingEnabled,\n })\n .pipe(\n map(({ lineItem, context, deletedLineItems }) => {\n if (context) {\n this.contextService.update({ properties: context.properties });\n }\n if (deletedLineItems?.length) {\n this.showInactiveProductsConfirmation();\n }\n return lineItem;\n }),\n );\n }\n\n private createRequest(\n lineItem: LineItem,\n runtimeContext: LegacyRuntimeContext,\n configurationMode: ConfigurationMode,\n ): ConfigurationRequest {\n if (runtimeContext.runtimeMode === RuntimeMode.TEST) {\n const properties: Dictionary<any> = {\n ...runtimeContext.properties,\n ModelId: runtimeContext.modelId,\n RuntimeMode: 'TEST',\n PricingEnabled: String(runtimeContext.uiDefinition?.pricingEnabled),\n StartDate: runtimeContext.properties?.StartDate ?? new Date().toISOString().substring(0, 10),\n PriceListId: runtimeContext.uiDefinition?.priceList,\n };\n\n this.contextService.update({ properties });\n } else {\n const context = this.contextService.resolve();\n\n if (context.properties && runtimeContext.properties?.StartDate) {\n this.contextService.update({\n properties: {\n ...context.properties,\n ...runtimeContext.properties,\n },\n });\n }\n }\n\n return {\n lineItem,\n mode: configurationMode,\n step: runtimeContext.invocationContext && runtimeContext.invocationContext.runtimeStep,\n attributeDomainMode: 'ALL',\n context: this.contextService.resolve(),\n };\n }\n\n private getDefaultLineItem(context: LegacyRuntimeContext): LineItem {\n const id = UUID.UUID();\n\n const lineItem: LineItem = {\n id,\n type: context.uiDefinition?.rootType ?? '',\n cfgStatus: 'Default',\n qty: 1,\n productName: context.properties?.['displayName'] || context.productName,\n productId: context.productId ?? '',\n offeringId: context.offeringId,\n ...(context.offeringId\n ? { offeringId: context.offeringId, offeringInstanceId: context.offeringInstanceId || id }\n : {}),\n } as LineItem;\n\n return lineItem;\n }\n\n private showInactiveProductsConfirmation(): void {\n const confirmationConfig: ConfirmationConfig = {\n title: ' ',\n description: 'This quote contains inactive products. Do you want to remove them?',\n primaryButtonLabel: 'Remove products',\n secondaryButtonLabel: 'Back to Quote',\n };\n\n this.dialogService\n .open(ConfirmationComponent, {\n dismissableMask: false,\n closeOnEscape: false,\n closable: false,\n showHeader: true,\n header: `Inactive Products in Quote`,\n width: '440px',\n data: { confirmationConfig },\n })\n .onClose.subscribe(result => {\n if (!result) {\n const context = this.contextService.resolve();\n window['VELO_BACK_FN'].apply(null, [context.headerId]);\n }\n });\n }\n}\n","import { HttpErrorResponse } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { LegacyUIDefinition, LineItem } from '@veloceapps/core';\nimport { ContextService, RuntimeStep } from '@veloceapps/sdk/core';\nimport { MessageService } from 'primeng/api';\nimport { Subject } from 'rxjs';\nimport { take } from 'rxjs/operators';\nimport { LegacyRuntimeContext } from '../types';\nimport { QuoteStates } from '../types/quote-states.types';\nimport { ConfigurationService } from './configuration.service';\n\n@Injectable()\nexport class RuntimeService {\n private runtimeContext: LegacyRuntimeContext | undefined;\n\n private solutionReadySubject = new Subject<LineItem>();\n public onSolutionReadyEvent = this.solutionReadySubject.asObservable();\n\n private solutionUpdateStartedSubject = new Subject<void>();\n public onSolutionUpdateStartedEvent = this.solutionUpdateStartedSubject.asObservable();\n\n private solutionUpdatedSubject = new Subject<LineItem | HttpErrorResponse>();\n public onSolutionUpdatedEvent = this.solutionUpdatedSubject.asObservable();\n\n private solutionProcessedSubject = new Subject<LineItem>();\n public onSolutionProcessed = this.solutionProcessedSubject.asObservable();\n\n private solutionStopSubject = new Subject<LineItem>();\n public onSolutionStopEvent = this.solutionStopSubject.asObservable();\n\n private solutionCancelSubject = new Subject<void>();\n public onSolutionCancelEvent = this.solutionCancelSubject.asObservable();\n\n private uiRefreshSubject = new Subject<void>();\n public onUIRefreshEvent = this.uiRefreshSubject.asObservable();\n\n constructor(\n private configurationService: ConfigurationService,\n private contextService: ContextService,\n private messageService: MessageService,\n ) {}\n\n private displayErrorMessage(error: any): void {\n this.messageService.add({\n severity: 'error',\n summary: error.error?.message || error.message || JSON.stringify(error),\n });\n }\n\n public startRuntime(context: LegacyRuntimeContext, states: QuoteStates, resolve?: boolean): void {\n this.setRuntimeContext(context);\n this.setRuntimeStep(RuntimeStep.START);\n this.configurationService\n .configure(context, states, resolve)\n .pipe(take(1))\n .subscribe(\n lineItem => {\n this.solutionReadySubject.next(lineItem);\n },\n error => {\n this.displayErrorMessage(error);\n this.solutionUpdatedSubject.next(error);\n },\n );\n }\n\n public updateRuntime(states: QuoteStates, configurationContextProperties?: { [index: string]: string }): void {\n if (!this.runtimeContext) {\n return;\n }\n\n this.solutionUpdateStartedSubject.next();\n this.setRuntimeStep(RuntimeStep.UPDATE);\n this.updateRuntimeContext(configurationContextProperties);\n this.configurationService\n .configure(this.runtimeContext, states)\n .pipe(take(1))\n .subscribe(\n lineItem => {\n const context = this.contextService.resolve();\n\n this.updateRuntimeContext(context.properties);\n this.solutionUpdatedSubject.next(lineItem);\n },\n error => {\n this.displayErrorMessage(error);\n this.solutionUpdatedSubject.next(error);\n },\n );\n }\n\n public stopRuntime(solutionLineItem: LineItem): void {\n this.solutionStopSubject.next(solutionLineItem);\n }\n\n public cancelRuntime(): void {\n this.solutionCancelSubject.next();\n }\n\n public setRuntimeContext(runtimeContext: LegacyRuntimeContext): void {\n this.runtimeContext = runtimeContext;\n }\n\n public getRuntimeContext(): LegacyRuntimeContext | undefined {\n return this.runtimeContext;\n }\n\n public solutionProcessed(lineItem: LineItem): void {\n this.solutionProcessedSubject.next(lineItem);\n }\n\n public refreshUI(uiDefinition: LegacyUIDefinition): void {\n if (!this.runtimeContext) {\n return;\n }\n\n this.runtimeContext = {\n ...this.runtimeContext,\n uiDefinition,\n };\n this.uiRefreshSubject.next();\n }\n\n private updateRuntimeContext(configurationContextProperties?: { [index: string]: string }): void {\n if (!this.runtimeContext || !configurationContextProperties) {\n return;\n }\n\n this.runtimeContext = { ...this.runtimeContext, properties: configurationContextProperties };\n }\n\n private setRuntimeStep(runtimeStep: RuntimeStep): void {\n if (!this.runtimeContext) {\n return;\n }\n\n this.runtimeContext.invocationContext = {\n ...this.runtimeContext.invocationContext,\n runtimeStep,\n };\n }\n}\n","import { Injectable } from '@angular/core';\nimport { PriceApiService } from '@veloceapps/api';\nimport { LineItem, PriceSummary } from '@veloceapps/core';\nimport { ContextService, QuoteDraftService } from '@veloceapps/sdk/core';\nimport { Observable } from 'rxjs';\nimport { take, tap } from 'rxjs/operators';\n\n@Injectable()\nexport class ShoppingCartService {\n constructor(\n private priceApiService: PriceApiService,\n private contextService: ContextService,\n private quoteService: QuoteDraftService,\n ) {}\n\n public setCartExternally(currentState: LineItem[]): Observable<PriceSummary> {\n const context = this.contextService.resolve();\n\n return this.priceApiService.calculate({ context, currentState }).pipe(\n take(1),\n tap(({ lineItems }: PriceSummary) => {\n this.quoteService.setCurrentLineItemState(lineItems);\n }),\n );\n }\n\n public getCurrentState(): LineItem[] {\n return this.quoteService.currentState;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { LineItem } from '@veloceapps/core';\n\n@Injectable({ providedIn: 'root' })\nexport class CurrentStateService {\n public currentState: LineItem[] = [];\n\n public update(state: LineItem[]): void {\n this.currentState = state;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ProductModelApiService } from '@veloceapps/api';\nimport { ProductModelsContainer } from '@veloceapps/core';\nimport { Observable } from 'rxjs';\nimport { shareReplay } from 'rxjs/operators';\n\n@Injectable()\nexport class ProductModelCacheService {\n constructor(private productModelApiService: ProductModelApiService) {}\n\n private cachedModel: Map<string, Observable<ProductModelsContainer>> = new Map();\n\n public getProductModel(currentModelId: string, version?: string): Observable<ProductModelsContainer> {\n if (!this.cachedModel.has(currentModelId) || version) {\n this.clearCache();\n\n this.cachedModel.set(\n currentModelId,\n this.productModelApiService.load(currentModelId, version).pipe(shareReplay(1)),\n );\n }\n\n return this.cachedModel.get(currentModelId) as Observable<ProductModelsContainer>;\n }\n\n public getCachedModel(): Observable<ProductModelsContainer> {\n const ids = Array.from(this.cachedModel.keys());\n\n return this.cachedModel.get(ids[0]) as Observable<ProductModelsContainer>;\n }\n\n public clearCache(): void {\n this.cachedModel.clear();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ConfigurationApiService } from '@veloceapps/api';\nimport { LegacyUIDefinition, RuntimeData, RuntimeModel, SectionPathUtil, isLegacyUIDefinition } from '@veloceapps/core';\nimport { ContextService, RuntimeMode } from '@veloceapps/sdk/core';\nimport { MessageService } from 'primeng/api';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { LegacyRuntimeContext } from '../types';\n\n@Injectable()\nexport class RuntimeContextService {\n constructor(\n private configurationApiService: ConfigurationApiService,\n private messageService: MessageService,\n private contextService: ContextService,\n ) {}\n\n public getRuntimeContext(productId: string, offeringId?: string): Observable<LegacyRuntimeContext> {\n return this.configurationApiService.getRuntimeDataByProductId(productId, offeringId).pipe(\n map(runtimeData => {\n const uiDefinition = this.getUIDefinition(runtimeData);\n const runtimeModel = RuntimeModel.create(runtimeData.types, runtimeData.products);\n const { productName, properties } =\n Array.from(runtimeModel.components.values()).find(c => c.productId === productId) ?? {};\n\n return {\n modelId: runtimeData.modelId,\n uiDefinition: uiDefinition,\n runtimeModel: runtimeModel,\n runtimeMode: RuntimeMode.PROD,\n productId: productId,\n productType: properties?.['displayName'] || productName,\n offeringId: offeringId,\n properties: {\n PricingEnabled: uiDefinition.pricingEnabled ? 'true' : 'false',\n },\n };\n }),\n );\n }\n\n private getUIDefinition(runtimeData: RuntimeData): LegacyUIDefinition {\n const { uiDefinitionId } = this.contextService.resolve();\n\n const findByFn = (uiDef: LegacyUIDefinition): boolean =>\n uiDefinitionId ? uiDefinitionId === uiDef.id : uiDef.primary;\n\n const uiDefinitions = runtimeData.uiDefinitions\n .map(({ source }) => source)\n .filter((uiDefinition): uiDefinition is LegacyUIDefinition => isLegacyUIDefinition(uiDefinition));\n const uiDefinition = uiDefinitions.find(findByFn) || (uiDefinitions.length === 1 && { ...uiDefinitions[0] });\n\n if (!uiDefinition) {\n const errMsg = `Unable to find ${uiDefinitionId ? uiDefinitionId : 'Default'} UI`;\n\n this.messageService.add({\n severity: 'error',\n summary: 'ERROR',\n });\n throw new Error(errMsg);\n }\n\n SectionPathUtil.updateSectionsPath(uiDefinition.sections);\n\n return uiDefinition;\n }\n}\n","import { ComponentFactory, Injectable } from '@angular/core';\nimport { Section } from '@veloceapps/core';\n\n@Injectable()\nexport class SectionStoreService {\n private _componentFactories: ComponentFactory<any>[] = [];\n\n public set componentFactories(data: ComponentFactory<any>[]) {\n this._componentFactories = data;\n }\n\n public get componentFactories(): ComponentFactory<any>[] {\n return this._componentFactories;\n }\n\n public getComponentFactory(section: Section): ComponentFactory<any> | undefined {\n return this.componentFactories.find(f => f.selector === section.dynamicSelector);\n }\n}\n","import { Injectable, TemplateRef } from '@angular/core';\nimport { Section } from '@veloceapps/core';\nimport { BehaviorSubject } from 'rxjs';\n\n@Injectable()\nexport class SectionScopeService {\n public get section(): Section {\n return this._section;\n }\n\n public set section(value: Section) {\n this._section = value;\n this.indent = this.getIndent(value);\n }\n public indent = 1;\n private _section!: Section;\n\n public templates = new BehaviorSubject<TemplateRef<any>[]>([]);\n\n private getIndent(section: Section): number {\n if (!section || !section.parentId) {\n return 1;\n } else {\n let current = section;\n\n let indent = 1;\n\n while (current && current.parent) {\n current = current.parent;\n\n indent++;\n }\n\n return indent;\n }\n }\n}\n","import {\n AfterViewInit,\n Component,\n ComponentRef,\n Injector,\n Input,\n NgModuleRef,\n OnDestroy,\n OnInit,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { Section } from '@veloceapps/core';\nimport { SectionScopeService } from '../../../services/section-scope.service';\nimport { SectionStoreService } from '../../../services/section-store.service';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'section-renderer',\n templateUrl: 'execution-section-renderer.component.html',\n styleUrls: ['execution-section-renderer.component.scss'],\n providers: [SectionScopeService],\n})\nexport class ExecutionSectionRendererComponent implements OnInit, AfterViewInit, OnDestroy {\n private _section!: Section;\n\n @Input()\n public set section(value: Section) {\n this._section = value;\n this.sectionScope.section = value;\n }\n\n public get section(): Section {\n return this._section;\n }\n\n @Input()\n public form!: FormGroup;\n\n constructor(\n private _injector: Injector,\n private _m: NgModuleRef<any>,\n private sectionScope: SectionScopeService,\n private sectionStore: SectionStoreService,\n ) {}\n\n @ViewChild('container', { read: ViewContainerRef, static: true })\n public container!: ViewContainerRef;\n\n private componentRef: ComponentRef<any> | null = null;\n\n public ngOnInit(): void {\n this.renderSection();\n }\n\n public ngAfterViewInit(): void {\n if (this.componentRef) {\n this.sectionScope.templates.next(this.componentRef.instance['templates']?.toArray() ?? []);\n }\n }\n\n public ngOnDestroy(): void {\n if (this.componentRef) {\n this.componentRef.destroy();\n this.componentRef = null;\n }\n }\n\n public renderSection(): void {\n if (this.componentRef) {\n this.componentRef.destroy();\n this.componentRef = null;\n }\n\n const componentFactory = this.sectionStore.getComponentFactory(this._section);\n if (!componentFactory) {\n return;\n }\n\n this.componentRef = componentFactory.create(this._injector, [], null, this._m);\n this.componentRef.location.nativeElement.setAttribute(\n 'sectionId',\n `${this._section.model?.id}${this._section.label}`,\n );\n this.componentRef.instance['form'] = this.form;\n this.componentRef.instance['section'] = this.section;\n this.container.insert(this.componentRef.hostView);\n }\n}\n","<ng-template #container></ng-template>","import { Component, Input, OnChanges, OnDestroy, OnInit, SimpleChanges } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { OrderByPipe, Section } from '@veloceapps/core';\nimport { Subscription } from 'rxjs';\nimport { CollapsibleStateService } from '../../../services/collapsible-state.service';\nimport { FormScopeService } from '../../../services/form-scope.service';\nimport { SectionScopeService } from '../../../services/section-scope.service';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'children-placeholder',\n templateUrl: 'children-placeholder.component.html',\n providers: [OrderByPipe],\n})\nexport class ChildrenPlaceholderComponent implements OnInit, OnChanges, OnDestroy {\n @Input()\n public children?: Section[];\n\n public _children: Section[] = [];\n\n public section!: Section;\n\n public form!: FormGroup;\n\n public sub!: Subscription;\n\n public collapsed = false;\n\n constructor(\n private sectionScope: SectionScopeService,\n private formScope: FormScopeService,\n private collapsibleState: CollapsibleStateService,\n ) {}\n\n public ngOnInit(): void {\n this.section = this.sectionScope.section;\n this.form = this.formScope.form;\n\n this.collapsed = this.section.model ? this.collapsibleState.isCollapsedSection(this.section.model.id) : true;\n\n this.sub = this.collapsibleState.collapseSectionEvent.subscribe(e => {\n const lineItemId = e[0];\n\n if (this.section.model?.id === lineItemId) {\n this.collapsed = e[1];\n }\n });\n\n this.setChildren();\n }\n\n public ngOnChanges(changes: SimpleChanges): void {\n if (!this.children || changes['children']?.currentValue !== changes['children']?.previousValue) {\n this.setChildren();\n }\n }\n\n public setChildren(): void {\n this._children = this.children ? this.children : this.section.children;\n }\n\n public ngOnDestroy(): void {\n this.sub.unsubscribe();\n }\n}\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'template-component',\n templateUrl: 'children-placeholder.component.html',\n})\nexport class TemplateComponent extends ChildrenPlaceholderComponent {}\n","<ng-container *ngIf=\"!collapsed\">\n <ng-container *ngFor=\"let child of _children\">\n <section-renderer [section]=\"child\" [form]=\"form\" *ngIf=\"!child.hidden\"></section-renderer>\n </ng-container>\n</ng-container>\n","import { Component, Inject, Input, OnInit } from '@angular/core';\nimport { RuntimeModel, RuntimeProduct, RuntimeType } from '@veloceapps/core';\nimport { Dictionary } from 'lodash';\nimport { RuntimeService } from '../../../services/runtime.service';\n\n@Component({\n selector: 'vl-context-provider',\n template: '',\n})\nexport class ContextProviderComponent implements OnInit {\n @Input() public types: RuntimeType[] = [];\n @Input() public products: Dictionary<RuntimeProduct[]> = {};\n\n constructor(@Inject(RuntimeService) private runtimeService: RuntimeService) {}\n\n public ngOnInit(): void {\n const context = this.runtimeService.getRuntimeContext();\n\n if (!context) {\n return;\n }\n\n this.runtimeService.setRuntimeContext({\n ...context,\n runtimeModel: RuntimeModel.create(this.types, this.products),\n });\n }\n}\n","import { Dictionary } from 'lodash';\n\ntype Scope = unknown;\ntype Factory = () => any;\n\ntype Container = {\n init(shareScope: Scope): void;\n get(module: string): Factory;\n};\n\ndeclare const __webpack_init_sharing__: (shareScope: string) => Promise<void>;\ndeclare const __webpack_share_scopes__: { default: Scope };\n\nconst moduleMap: Dictionary<boolean> = {};\n\nfunction loadRemoteEntry(remoteEntry: string): Promise<void> {\n return new Promise<void>((resolve, reject) => {\n if (moduleMap[remoteEntry]) {\n resolve();\n return;\n }\n\n const script = document.createElement('script');\n script.src = remoteEntry;\n\n script.onerror = reject;\n\n script.onload = (): void => {\n moduleMap[remoteEntry] = true;\n resolve(); // window is the global namespace\n };\n\n document.body.append(script);\n });\n}\n\nasync function lookupExposedModule<T>(remoteName: string, exposedModule: string): Promise<T> {\n // Initializes the share scope. This fills it with known provided modules from this build and all remotes\n await __webpack_init_sharing__('default');\n const container = (window as any)[remoteName] as Container; // or get the container somewhere else\n // Initialize the container, it may provide shared modules\n\n await container.init(__webpack_share_scopes__.default);\n const factory = await container.get(exposedModule);\n const Module = factory();\n return Module as T;\n}\n\nexport type LoadRemoteModuleOptions = {\n remoteEntry: string;\n remoteName: string;\n exposedModule: string;\n};\n\nexport async function loadRemoteModule(options: LoadRemoteModuleOptions): Promise<any> {\n await loadRemoteEntry(options.remoteEntry);\n\n return await lookupExposedModule<any>(options.remoteName, options.exposedModule);\n}\n","import {\n AfterViewInit,\n ApplicationRef,\n ChangeDetectionStrategy,\n Compiler,\n Component,\n ElementRef,\n EventEmitter,\n Injector,\n Input,\n OnChanges,\n Output,\n Renderer2,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport { LineItem } from '@veloceapps/core';\nimport { loadRemoteModule } from '../../utils/federated.util';\n\nenum IntegrationEvent {\n Init = 'Init',\n}\n\ninterface InputData {\n rootLineItem: LineItem;\n}\n\ninterface IntegrationEventPayload {\n type: IntegrationEvent;\n payload?: unknown;\n}\n\ninterface InegrationComponentInstance extends OnChanges {\n integrationEvent: EventEmitter<IntegrationEventPayload>;\n integrationAppRef: ApplicationRef;\n data?: InputData;\n eventData?: IntegrationEventPayload;\n}\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'veloce-host-federated',\n templateUrl: './federated.component.html',\n styleUrls: ['./federated.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FederatedComponent implements AfterViewInit, OnChanges {\n @ViewChild('federatedComponent', { read: ViewContainerRef }) public federatedComponent?: ViewContainerRef;\n @ViewChild('foo', { read: TemplateRef }) public foo?: TemplateRef<unknown>;\n @ViewChild('moduleHost', { static: false }) public moduleHostRef?: ElementRef;\n\n @Input() public remoteEntry?: string;\n @Input() public remoteName?: string;\n @Input() public exposedModule?: string;\n @Input() public data?: InputData;\n @Input() public eventData?: IntegrationEventPayload;\n @Output() private integrationEvent = new EventEmitter<IntegrationEventPayload>();\n\n public moduleReady = false;\n\n private instance?: InegrationComponentInstance;\n\n constructor(\n private injector: Injector,\n private compiler: Compiler,\n private appRef: ApplicationRef,\n private renderer: Renderer2,\n ) {}\n\n public ngAfterViewInit(): void {\n if (!this.remoteEntry || !this.remoteName || !this.exposedModule) {\n return;\n }\n\n loadRemoteModule({\n remoteEntry: this.remoteEntry,\n remoteName: this.remoteName,\n exposedModule: this.exposedModule,\n }).then(federated => {\n this.compiler.compileModuleAsync(federated[this.exposedModule as string]).then(moduleFactory => {\n const rootModuleRef = moduleFactory.create(this.injector);\n const rootComponentFactory = rootModuleRef.componentFactoryResolver.resolveComponentFactory(\n federated[this.exposedModule as string].rootComponent,\n );\n const node = document.createElement('div');\n const { instance, hostView } = rootComponentFactory.create(this.injector, [], node);\n\n this.instance = instance as InegrationComponentInstance;\n this.instance.data = this.data;\n this.instance.eventData = this.eventData;\n this.instance.integrationEvent = this.integrationEvent;\n\n this.renderer.appendChild(this.moduleHostRef?.nativeElement, node);\n this.appRef.attachView(hostView);\n });\n });\n }\n\n public ngOnChanges(changes: SimpleChanges): void {\n if (!this.instance) {\n return;\n }\n\n this.instance.ngOnChanges(changes);\n }\n}\n","<div #moduleHost></div>\n","import { Directive, OnInit } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { EntityUtil, Section } from '@veloceapps/core';\nimport { isDate } from 'lodash';\nimport { FormScopeService } from '../../services/form-scope.service';\nimport { SectionScopeService } from '../../services/section-scope.service';\nimport { UpdateData } from '../../types';\nimport { SectionsBinderHelper } from '../../utils/sections-binder.helper';\n\n//TODO ALE WE ARE EXTENDING COMPONENT HERE IN PORTS WE ARE EXTENDING DEDICATED CLASS!! TYPES HANDLER IS NO IMPLEMENTED YET\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'velo-attribute-directive',\n exportAs: 'attributeApi',\n})\nexport class VeloAttributeDirective implements OnInit {\n public valueQuantities: { [index: string]: number } = {};\n\n public form: FormGroup;\n public section: Section;\n\n constructor(private formScope: FormScopeService, private sectionScope: SectionScopeService) {\n this.form = this.formScope.form;\n this.section = this.sectionScope.section;\n }\n\n public ngOnInit(): void {\n this.initQuantity();\n }\n\n public handleChange(valueOption?: any): void {\n const updateData: UpdateData = {\n id: this.section.id,\n action: 'update',\n valueOption,\n };\n\n this.formScope.publishFormUpdate(updateData);\n }\n\n public handleChangDate(valueOption: any): void {\n const oldValue = this.form.controls[this.section.id].value || '';\n\n const newValue = isDate(valueOption) ? valueOption.toLocaleDateString('en-us') : '';\n\n if (oldValue !== newValue) {\n this.handleChange(newValue);\n }\n }\n\n public handleRemove(): void {\n const updateData: UpdateData = {\n id: this.section.id,\n action: 'remove',\n };\n\n this.formScope.publishFormUpdate(updateData);\n }\n\n // TODO ALE THIS IS SPECIFIC STEPPER FUNCTIONS\n public nextVal(): void {\n const currentIndex = this.getCurrentValueIndex();\n const nextValIndex = currentIndex + 1;\n\n if (\n currentIndex != -1 &&\n this.section.sectionValue &&\n this.section.sectionValue.valueOptions.length >= nextValIndex\n ) {\n this.handleChange(this.section.sectionValue.valueOptions[nextValIndex]);\n }\n }\n\n public prevVal(): void {\n const currentIndex = this.getCurrentValueIndex();\n const prevValIndex = currentIndex - 1;\n\n if (\n currentIndex != -1 &&\n this.section.sectionValue &&\n this.section.sectionValue.valueOptions.length >= prevValIndex\n ) {\n this.handleChange(this.section.sectionValue.valueOptions[prevValIndex]);\n }\n }\n\n private initQuantity(): void {\n this.valueQuantities = this.section.model\n ? SectionsBinderHelper.getQuantityGroupByValue(this.section.model, this.section.boundData.name)\n : {};\n }\n\n private getCurrentValueIndex(): number {\n const index = -1;\n\n const valueOptions = this.section.sectionValue && this.section.sectionValue.valueOptions;\n const currentValue = this.form.controls[this.section.id].value;\n\n if (valueOptions && EntityUtil.isPresent(currentValue)) {\n return valueOptions.findIndex(valueOption => currentValue === valueOption);\n }\n\n return index;\n }\n}\n","import { Overlay, OverlayRef } from '@angular/cdk/overlay';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport {\n Component,\n ElementRef,\n EventEmitter,\n HostBinding,\n Input,\n OnDestroy,\n Output,\n TemplateRef,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { merge, Observable, of, Subscription } from 'rxjs';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'velo-multiselect',\n templateUrl: 'velo-multiselect.component.html',\n styleUrls: ['./velo-multiselect.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n multi: true,\n useExisting: MultiselectComponent,\n },\n ],\n})\nexport class MultiselectComponent implements ControlValueAccessor, OnDestroy {\n @Input() public options?: any[];\n @Output() public selectionChange: EventEmitter<string[]> = new EventEmitter<string[]>();\n public selected: string[] = [];\n public displayValue = '';\n public touched = false;\n public disabled = false;\n\n @ViewChild('overlayTemplate') public overlayTemplate!: TemplateRef<any>;\n\n @HostBinding('class.opened')\n public opened = false;\n\n private overlayRef?: OverlayRef;\n private dropdownClosingActionsSub?: Subscription;\n\n public onChange: (selected: string[]) => void = () => {\n return;\n };\n public onTouched: () => void = () => {\n return;\n };\n\n constructor(private elRef: ElementRef, private viewContainerRef: ViewContainerRef, private overlay: Overlay) {}\n\n public ngOnDestroy(): void {\n this.destroyDropdown();\n }\n\n public writeValue(selected: string[]): void {\n this.selected = selected;\n\n this.getDisplayValue();\n }\n\n public registerOnChange(onChange: any): void {\n this.onChange = onChange;\n }\n\n public registerOnTouched(onTouched: any): void {\n this.onTouched = onTouched;\n }\n\n public setDisabledState(disabled: boolean): void {\n this.disabled = disabled;\n }\n\n public handleSelection(value: any): void {\n const selectedItem = this.selected.find(item => item === value);\n\n if (selectedItem) {\n this.selected = this.selected.filter(item => item !== value);\n } else {\n this.selected = [...this.selected, value];\n }\n\n this.getDisplayValue();\n this.selectionChange.emit(this.selected);\n this.onChange(this.selected);\n }\n\n public toggleOpened(): void {\n this.opened ? this.destroyDropdown() : this.openDropdown();\n }\n\n private getDisplayValue(): void {\n const joinedValue = this.selected.join(', ');\n this.displayValue = joinedValue.length > 24 ? `${this.selected.length} options selected` : joinedValue;\n }\n\n private openDropdown(): void {\n this.opened = true;\n this.overlayRef = this.overlay.create({\n hasBackdrop: true,\n backdropClass: 'cdk-overlay-transparent-backdrop',\n scrollStrategy: this.overlay.scrollStrategies.close(),\n positionStrategy: this.overlay\n .position()\n .flexibleConnectedTo(this.elRef)\n .withPositions([\n {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'top',\n offsetY: 8,\n },\n ]),\n });\n\n const templatePortal = new TemplatePortal(this.overlayTemplate, this.viewContainerRef);\n this.overlayRef.attach(templatePortal);\n\n this.dropdownClosingActionsSub = this.dropdownClosingActions().subscribe(() => this.destroyDropdown());\n }\n\n private dropdownClosingActions(): Observable<MouseEvent | void> {\n if (!this.overlayRef) {\n return of();\n }\n\n const backdropClick$ = this.overlayRef.backdropClick();\n const detachment$ = this.overlayRef.detachments();\n\n return merge(backdropClick$, detachment$);\n }\n\n private destroyDropdown(): void {\n if (!this.overlayRef || !this.opened) {\n return;\n }\n\n this.dropdownClosingActionsSub?.unsubscribe();\n this.opened = false;\n this.overlayRef.detach();\n }\n}\n","<div class=\"value-wrapper\" (click)=\"toggleOpened()\">\n <span class=\"value\">{{ displayValue }}</span>\n <i class=\"fa fa-chevron-down\"></i>\n</div>\n\n<ng-template #overlayTemplate>\n <div class=\"dropdown\">\n <div class=\"checkbox-select\" *ngFor=\"let option of options\">\n <label>\n <input\n type=\"checkbox\"\n [checked]=\"selected.includes(option)\"\n (change)=\"handleSelection(option)\"\n [value]=\"option\"\n />\n\n <i class=\"input-helper\"></i>\n {{ option }}\n </label>\n </div>\n </div>\n</ng-template>\n","import { Component, OnInit } from '@angular/core';\nimport { FormScopeService } from '../../../services/form-scope.service';\nimport { SectionScopeService } from '../../../services/section-scope.service';\nimport { VeloAttributeDirective } from '../../directives/velo-attribute.directive';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'velo-attribute',\n templateUrl: 'velo-attribute.component.html',\n})\nexport class VeloAttributeComponent extends VeloAttributeDirective implements OnInit {\n public controlName: string;\n public displayName: string;\n public isMultiselect: boolean;\n\n constructor(formScope: FormScopeService, sectionScope: SectionScopeService) {\n super(formScope, sectionScope);\n\n this.controlName = this.section.id;\n this.displayName = this.getDisplayName();\n this.isMultiselect =\n this.section.model?.attributes.find(attr => attr.name === this.section.boundData.entity.name)?.type ===\n 'MULTIPLE';\n }\n\n public getValueOptions(valueOptions: unknown): (string | number)[] {\n return this.isBooleanType(valueOptions) ? [0, 1] : (valueOptions as string[]);\n }\n\n public getValueText(valueOptions: unknown, value: string | number): string {\n if (this.isBooleanType(valueOptions)) {\n return value === 0 ? 'False' : 'True';\n }\n return value as string;\n }\n\n public handleMultiselectChange(value: string | number): void {\n const formControl = this.form.get(this.controlName);\n\n if (!formControl) {\n return;\n }\n\n const currentValue: (string | number)[] = formControl.value ?? [];\n const newValue = currentValue.includes(value) ? currentValue.filter(v => v !== value) : [...currentValue, value];\n formControl.setValue(newValue);\n\n super.handleChange();\n }\n\n public handleMultipleDropdownChange(event: any): void {\n const formControl = this.form.get(this.controlName);\n\n if (!formControl) {\n return;\n }\n\n formControl.setValue(event);\n super.handleChange();\n }\n\n private isBooleanType(value: any): boolean {\n return Array.isArray(value) && value.length === 1 && value[0].min === 0 && value[0].max === 1;\n }\n\n private getDisplayName(): string {\n return (\n (this.section.model?.properties && this.section.model.properties['displayName']) || this.section.model?.type || ''\n );\n }\n}\n","<div class=\"form-group div-inline\" [formGroup]=\"form\">\n <div class=\"input-form-input div-inline\" [class.input-form-input--required]=\"section.required\">\n <label>\n <ng-container *ngIf=\"section.required\"> * </ng-container>\n\n {{ section.label }}\n </label>\n <div [ngSwitch]=\"section.controlType\" class=\"form-control-wrapper\">\n <div *ngSwitchCase=\"'DROPDOWN'\">\n <select\n [id]=\"controlName\"\n [formControlName]=\"controlName\"\n class=\"form-control\"\n (change)=\"handleChange()\"\n [attr.disabled]=\"section.readOnly ? true : null\"\n >\n <option\n *ngFor=\"let valueOption of getValueOptions(section.sectionValue?.valueOptions) || []\"\n [ngValue]=\"valueOption\"\n >\n {{ getValueText(section.sectionValue?.valueOptions, valueOption) }}\n </option>\n </select>\n </div>\n\n <div *ngSwitchCase=\"'MULTISELECT'\">\n <velo-multiselect\n [id]=\"controlName\"\n [formControlName]=\"controlName\"\n [options]=\"getValueOptions(section.sectionValue?.valueOptions)\"\n [attr.disabled]=\"section.readOnly ? true : null\"\n (selectionChange)=\"handleMultipleDropdownChange($event)\"\n ></velo-multiselect>\n </div>\n\n <div *ngSwitchCase=\"'RADIO'\">\n <div\n *ngFor=\"let valueOption of getValueOptions(section.sectionValue?.valueOptions)\"\n class=\"radio-button\"\n [attr.disabled]=\"section.readOnly ? true : null\"\n >\n <label>\n <input\n type=\"radio\"\n [id]=\"controlName\"\n [formControlName]=\"controlName\"\n [value]=\"valueOption\"\n (change)=\"handleChange()\"\n [attr.disabled]=\"section.readOnly ? true : null\"\n />\n <i class=\"input-helper\"></i>\n {{ getValueText(section.sectionValue?.valueOptions, valueOption) }}\n </label>\n </div>\n </div>\n\n <div *ngSwitchCase=\"'CHECKBOX'\">\n <ng-container *ngIf=\"!isMultiselect; else multiselect\">\n <div class=\"checkbox-select\" [attr.disabled]=\"section.readOnly ? true : null\">\n <label>\n <input\n type=\"checkbox\"\n [id]=\"controlName\"\n [formControlName]=\"controlName\"\n [checked]=\"section.sectionValue?.value === 1\"\n (change)=\"handleChange()\"\n [attr.disabled]=\"section.readOnly ? true : null\"\n />\n\n <i class=\"input-helper\"></i>\n &nbsp;\n </label>\n </div>\n </ng-container>\n\n <ng-template #multiselect>\n <div\n *ngFor=\"let valueOption of getValueOptions(section.sectionValue?.valueOptions)\"\n class=\"checkbox-select\"\n [attr.disabled]=\"section.readOnly ? true : null\"\n >\n <label>\n <input\n type=\"checkbox\"\n [id]=\"controlName\"\n [checked]=\"section.sectionValue?.value.includes(valueOption)\"\n (change)=\"handleMultiselectChange(valueOption)\"\n [value]=\"valueOption\"\n [attr.disabled]=\"section.readOnly ? true : null\"\n />\n\n <i class=\"input-helper\"></i>\n {{ valueOption }}\n </label>\n </div>\n </ng-template>\n </div>\n\n <div *ngSwitchCase=\"'DATE'\">\n <input\n type=\"text\"\n class=\"form-control\"\n [id]=\"controlName\"\n [formControlName]=\"controlName\"\n [attr.disabled]=\"section.readOnly ? true : null\"\n (bsValueChange)=\"handleChangDate($event)\"\n bsDatepicker\n />\n </div>\n\n <div *ngSwitchDefault>\n <input\n type=\"text\"\n class=\"form-control\"\n [id]=\"controlName\"\n [formControlName]=\"controlName\"\n (blur)=\"form.controls[controlName].dirty && handleChange()\"\n [attr.disabled]=\"section.readOnly ? true : null\"\n />\n </div>\n\n <!-- Add validation messages -->\n <!-- <div validation-messages [form]=\"form\" [controlId]=\"controlName\" [showForPristine]=\"true\"></div> -->\n </div>\n </div>\n</div>\n","import { Component, Input } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { LineItem, Section } from '@veloceapps/core';\nimport { FormScopeService } from '../../../services/form-scope.service';\nimport { SectionScopeService } from '../../../services/section-scope.service';\nimport { UpdateData } from '../../../types';\nimport { SectionsBinderHelper } from '../../../utils/sections-binder.helper';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'velo-port-checkbox',\n templateUrl: 'velo-port-checkbox.component.html',\n})\nexport class VeloPortCheckBoxComponent {\n public controlName: string;\n\n public form: FormGroup;\n public section: Section;\n\n @Input() public showSelectAll = false;\n\n constructor(private formScope: FormScopeService, private sectionScope: SectionScopeService) {\n this.form = this.formScope.form;\n this.section = this.sectionScope.section;\n\n this.controlName = this.section.id;\n\n this.section.sectionValue?.valueOptions.forEach(item => {\n if (this.hasValueFor(item)) {\n this.form.controls[this.controlName].setValue(item);\n }\n });\n }\n\n public handleChange(valueOption: string): void {\n const updateData: UpdateData = {\n id: this.section.id,\n action: this.hasValueFor(valueOption)\n ? 'remove'\n : this.section.model && SectionsBinderHelper.isAddAllowed(this.section.model, this.section.boundData.name)\n ? 'create'\n : 'update',\n valueOption,\n };\n\n this.formScope.publishFormUpdate(updateData);\n }\n\n public hasValueFor(valueOption: string): boolean {\n return !!this.findLineItemForValue(valueOption);\n }\n\n public selectAllChange(): void {\n const portDomain = this.section.model?.portDomains[this.section.boundData.name];\n\n const updateData: UpdateData = {\n id: this.section.id,\n action: 'upsert',\n selectedValueOptions: this.isAllSelected() ? [] : portDomain ? portDomain.domainTypes.map(t => t.name) : [],\n };\n\n this.formScope.publishFormUpdate(updateData);\n }\n\n public isAllSelected(): boolean {\n const selected: LineItem[] | undefined = this.section.model?.lineItems.filter(\n li => li.port && li.port === this.section.boundData.name,\n );\n\n const portDomain = this.section.model?.portDomains[this.section.boundData.name];\n\n return portDomain ? portDomain.domainTypes.length === selected?.length : false;\n }\n\n public getMessages(valueOption: string): string[] {\n if (this.section.model?.lineItems) {\n return this.findLineItemForValue(valueOption)?.messages ?? [];\n }\n return [];\n }\n\n private findLineItemForValue(valueOption: string): LineItem | undefined {\n return (\n this.section.model?.lineItems &&\n this.section.model.lineItems.find(li => li.type && li.type.toLowerCase() === valueOption.toLowerCase())\n );\n }\n}\n","<div [formGroup]=\"form\">\n <!--TODO ALE replace divs with ng-templates-->\n <div *ngIf=\"showSelectAll\">\n <div class=\"row no-gutter clearfix\">\n <div class=\"col-md-12\">\n <div class=\"content\">\n <div class=\"container-box container-box-bordered container-box-checkbox collapsed\">\n <div class=\"box-title\">\n <div class=\"header clearfix\">\n <div class=\"checkbox-select\">\n <label>\n <input type=\"checkbox\" (change)=\"selectAllChange()\" [checked]=\"isAllSelected()\" />\n\n <i class=\"input-helper\"></i>\n Select All\n </label>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div *ngFor=\"let valueOption of section.sectionValue?.valueOptions\">\n <div class=\"unchecked\">\n <div class=\"row no-gutter clearfix\">\n <div class=\"col-md-12\">\n <div class=\"content\">\n <div class=\"container-box container-box-bordered container-box-checkbox collapsed\">\n <div class=\"box-title\" (click)=\"handleChange(valueOption)\">\n <div class=\"header clearfix\">\n <div class=\"checkbox-select\">\n <label>\n <input\n type=\"checkbox\"\n [class.checkbox--checked]=\"valueOption === form.controls[controlName].value\"\n />\n\n <i class=\"input-helper\"></i>\n {{section.sectionValue?.displayValues?.[valueOption] || valueOption}}\n </label>\n </div>\n </div>\n\n <div class=\"box-actions\" *ngIf=\"hasValueFor(valueOption)\">\n <ng-template #msgTemplate>\n <div class=\"runtime-info-message\">\n <ul class=\"message-text\">\n <li *ngFor=\"let message of getMessages(valueOption)\">{{ message }}</li>\n </ul>\n </div>\n </ng-template>\n <!-- removed dependency: ngx-bootstrap -->\n <!-- <div\n class=\"box-action-button\"\n *ngIf=\"getMessages(valueOption).length > 0\"\n [popover]=\"msgTemplate\"\n placement=\"left\"\n container=\"body\"\n [isOpen]=\"true\"\n >\n <a href=\"javascript:void(0);\">\n <i class=\"fa fa-info check-icon\"></i>\n </a>\n </div> -->\n </div>\n </div>\n <div class=\"box-content-wrapper\">\n <div class=\"box-content\">&nbsp;</div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>\n<ng-content></ng-content>\n","import { Component } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { EntityUtil, RecommendedPrice, Section } from '@veloceapps/core';\nimport { Dictionary } from 'lodash';\nimport { FormScopeService } from '../../../services/form-scope.service';\nimport { SectionScopeService } from '../../../services/section-scope.service';\nimport { UpdateData } from '../../../types';\nimport { SectionsBinderHelper } from '../../../utils/sections-binder.helper';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'velo-port-dropdown',\n templateUrl: 'velo-port-dropdown.component.html',\n})\nexport class VeloPortDropdownComponent {\n public controlName: string;\n public qtyControlName: string;\n\n public form: FormGroup;\n public section: Section;\n public prices: Dictionary<any> = {};\n\n constructor(private formScope: FormScopeService, private sectionScope: SectionScopeService) {\n this.form = this.formScope.form;\n this.section = this.sectionScope.section;\n\n this.controlName = this.section.id;\n this.qtyControlName = this.section.id + 'qty';\n\n if (this.section.pricingEnabled) {\n this.section.sectionValue?.valueOptions.forEach(valueOption => {\n this.prices[valueOption] = this.findPriceItemsForValue(valueOption);\n });\n }\n }\n\n public isAddAllowed(): boolean {\n if (!EntityUtil.isPresent(this.form.controls[this.controlName].value)) {\n return false;\n }\n\n return this.section.model\n ? SectionsBinderHelper.isAddAllowed(this.section.model, this.section.boundData.name)\n : false;\n }\n\n public handleCreate(): void {\n if (this.form.invalid || !this.isAddAllowed()) {\n return;\n }\n\n const updateData: UpdateData = {\n id: this.section.id,\n action: 'create',\n };\n\n this.formScope.publishFormUpdate(updateData);\n }\n\n private findPriceItemsForValue(valueOption: string): RecommendedPrice[] {\n let prices: RecommendedPrice[] = [];\n if (valueOption) {\n const portDomain = this.section.model?.portDomains[this.section.boundData.name];\n const domainType = portDomain?.domainTypes.find(d => d.name.toLowerCase() === valueOption.toLowerCase());\n if (domainType && domainType.recommendedPrices) {\n prices = domainType.recommendedPrices;\n }\n }\n\n const oneTime: RecommendedPrice = {\n chargeMethod: 'ONE_TIME',\n netPrice: 0,\n listPrice: 0,\n chargeType: '',\n };\n\n const recurring: RecommendedPrice = {\n chargeMethod: 'RECURRING',\n netPrice: 0,\n listPrice: 0,\n chargeType: '',\n };\n\n prices.forEach(p => {\n if (p.chargeMethod === oneTime.chargeMethod) {\n this.add(oneTime, p);\n }\n if (p.chargeMethod === recurring.chargeMethod) {\n this.add(recurring, p);\n }\n });\n\n const result: RecommendedPrice[] = [];\n if (oneTime.listPrice > 0) {\n result.push(oneTime);\n }\n if (recurring.listPrice > 0) {\n result.push(recurring);\n }\n\n return result;\n }\n\n private add(target: RecommendedPrice, src: RecommendedPrice): void {\n target.netPrice = target.netPrice + src.netPrice;\n target.listPrice = target.listPrice + src.listPrice;\n if (src.explanation) {\n target.explanation = src.explanation;\n }\n }\n}\n","<div class=\"form-group col-md-12\" [formGroup]=\"form\">\n <div class=\"input-form-input div-inline\">\n <label [for]=\"controlName\">{{ section.label }}</label>\n <div class=\"form-control-wrapper\">\n <select [id]=\"controlName\" [formControlName]=\"controlName\" class=\"form-control\">\n <option *ngFor=\"let valueOption of section.sectionValue?.valueOptions\" [ngValue]=\"valueOption\">\n {{section.sectionValue?.displayValues?.[valueOption] || valueOption}}\n <span *ngIf=\"prices[valueOption] && prices[valueOption].length > 0\">\n <span>${{ prices[valueOption][0].netPrice }}</span>\n <span *ngIf=\"prices[valueOption].length > 1\">\n <span>, </span>\n <span>${{ prices[valueOption][1].netPrice }}</span>\n </span>\n </span>\n </option>\n </select>\n </div>\n </div>\n <div class=\"input-form-input div-inline quantity-form-input\">\n <label [for]=\"qtyControlName\"> Quantity </label>\n <div class=\"form-control-wrapper\">\n <input [id]=\"qtyControlName\" [formControlName]=\"qtyControlName\" type=\"text\" class=\"form-control\" size=\"3\" />\n\n <div\n class=\"validation-message\"\n [hidden]=\"form.controls[qtyControlName].valid || form.controls[qtyControlName].pristine\"\n >\n <div *ngFor=\"let key of form.controls[qtyControlName].errors | values\">\n <span> {{form.controls[qtyControlName]?.errors?.[key].message}}</span>\n </div>\n </div>\n\n <a href=\"javascript:void(0);\" (click)=\"handleCreate()\">\n <div class=\"add-config-control\" [attr.disabled]=\"form.valid && isAddAllowed() ? null : true\">\n <i class=\"fa fa-plus plus-icon\"></i>\n </div>\n </a>\n </div>\n </div>\n</div>\n<ng-content></ng-content>\n","import { Component, OnInit } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { LineItem, RecommendedPrice, Section } from '@veloceapps/core';\nimport { Dictionary } from 'lodash';\nimport { FormScopeService } from '../../../services/form-scope.service';\nimport { SectionScopeService } from '../../../services/section-scope.service';\nimport { UpdateData } from '../../../types';\nimport { LineItemUtil } from '../../../utils/line-item.util';\n\n@Component({\n // tslint:disable-next-line:component-selector\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'velo-port-radio',\n templateUrl: 'velo-port-radio.component.html',\n})\nexport class VeloPortRadioComponent implements OnInit {\n public controlName: string;\n\n public form: FormGroup;\n public section: Section;\n\n public prices: Dictionary<any> = {};\n\n constructor(private formScope: FormScopeService, private sectionScope: SectionScopeService) {\n this.form = this.formScope.form;\n this.section = this.sectionScope.section;\n\n this.controlName = this.section.id;\n }\n\n public ngOnInit(): void {\n this.initPriceItems();\n\n this.section.sectionValue?.valueOptions.forEach(item => {\n if (this.hasValueFor(item)) {\n this.form.controls[this.controlName].setValue(item);\n }\n });\n }\n\n public handleChange(event: any, valueOption: any): void {\n event.preventDefault();\n event.stopPropagation();\n\n const updateData: UpdateData = {\n id: this.section.id,\n action: this.hasPreviousValue() ? 'update' : 'create',\n valueOption,\n };\n\n this.form.controls[this.controlName].setValue(valueOption);\n this.form.controls[this.controlName].markAsDirty();\n\n this.formScope.publishFormUpdate(updateData);\n }\n\n public hasValueFor(valueOption: string): boolean {\n return !!this.findLineItemForValue(valueOption);\n }\n\n public getMessages(valueOption: string): LineItem['messages'] {\n const lineItem = this.findLineItemForValue(valueOption);\n\n if (this.section.model?.lineItems && lineItem) {\n return lineItem.messages;\n }\n\n return [];\n }\n\n public toString(price: RecommendedPrice): string {\n let result = '';\n if (price.listPrice > price.netPrice) {\n result += '<strike>' + price.listPrice + '</strike>';\n }\n result += price.netPrice;\n if (price.explanation) {\n result += '(' + price.explanation + ')';\n }\n return result;\n }\n\n private hasPreviousValue(): boolean {\n const previous = this.section.model?.lineItems.filter(li => li.port && li.port === this.section.boundData.name);\n\n return previous ? previous.length > 0 : false;\n }\n\n private findLineItemForValue(valueOption: string): LineItem | undefined {\n return this.section.model ? LineItemUtil.findLineItemForValue(this.section.model, valueOption) : undefined;\n }\n\n private initPriceItems(): void {\n this.prices = {};\n if (this.section.pricingEnabled) {\n this.section.sectionValue?.valueOptions.forEach(valueOption => {\n this.prices[valueOption] = this.findPriceItemsForValue(valueOption);\n });\n }\n }\n\n private findPriceItemsForValue(valueOption: string): RecommendedPrice[] {\n let prices: RecommendedPrice[] = [];\n if (valueOption) {\n const lineItem =\n this.section.model?.lineItems &&\n this.section.model.lineItems.find(li => li.type && li.type.toLowerCase() === valueOption.toLowerCase());\n if (lineItem && lineItem.chargeItems) {\n prices = lineItem.chargeItems.map(pi => {\n const price: RecommendedPrice = {\n listPrice: pi.listPrice,\n netPrice: pi.netPrice,\n chargeMethod: pi.chargeMethod,\n chargeType: pi.chargeType,\n };\n return price;\n });\n } else {\n const portDomain = this.section.model?.portDomains[this.section.boundData.name];\n const domainType = portDomain?.domainTypes.find(d => d.name.toLowerCase() === valueOption.toLowerCase());\n if (domainType && domainType.recommendedPrices) {\n prices = domainType.recommendedPrices;\n }\n }\n }\n\n const oneTime: RecommendedPrice = {\n chargeMethod: 'ONE_TIME',\n netPrice: 0,\n listPrice: 0,\n chargeType: '',\n };\n\n const recurring: RecommendedPrice = {\n chargeMethod: 'RECURRING',\n netPrice: 0,\n listPrice: 0,\n chargeType: '',\n };\n\n prices.forEach(p => {\n if (p.chargeMethod === oneTime.chargeMethod) {\n this.add(oneTime, p);\n }\n if (p.chargeMethod === recurring.chargeMethod) {\n this.add(recurring, p);\n }\n });\n\n const result: RecommendedPrice[] = [];\n if (oneTime.listPrice > 0) {\n result.push(oneTime);\n }\n if (recurring.listPrice > 0) {\n result.push(recurring);\n }\n return result;\n }\n\n private add(target: RecommendedPrice, src: RecommendedPrice): void {\n target.netPrice = target.netPrice + src.netPrice;\n target.listPrice = target.listPrice + src.listPrice;\n if (src.explanation) {\n target.explanation = src.explanation;\n }\n }\n}\n","<div [formGroup]=\"form\">\n <!--TODO ALE replace divs with ng-templates-->\n <ng-container *ngFor=\"let valueOption of section.sectionValue?.valueOptions\">\n <div class=\"unchecked\">\n <div class=\"row no-gutter clearfix\">\n <div class=\"col-md-12\">\n <div class=\"content\">\n <div class=\"container-box container-box-bordered container-box-radio\">\n <div class=\"box-title\" (click)=\"handleChange($event, valueOption)\">\n <div class=\"header clearfix\">\n <div class=\"radio-button\">\n <label>\n <input type=\"radio\" [id]=\"controlName\" [value]=\"valueOption\" [formControlName]=\"controlName\" />\n\n <i class=\"input-helper\"></i>\n\n {{ section.sectionValue?.displayValues?.[valueOption] || valueOption }}\n\n <span *ngIf=\"prices[valueOption] && prices[valueOption].length > 0\">\n <span>${{ prices[valueOption][0].netPrice }}</span>\n\n <span *ngIf=\"prices[valueOption].length > 1\">\n <span>, </span>\n\n <span>${{ prices[valueOption][1].netPrice }}</span>\n </span>\n </span>\n </label>\n <span *ngIf=\"prices[valueOption] && prices[valueOption].length > 0\">\n <div>{{ prices[valueOption][0].explanation }}</div>\n\n <span *ngIf=\"prices[valueOption].length > 1 && prices[valueOption][1].explanation\">\n <div>{{ prices[valueOption][1].explanation }}</div>\n </span>\n </span>\n </div>\n </div>\n </div>\n </div>\n\n <ng-content></ng-content>\n </div>\n </div>\n </div>\n </div>\n </ng-container>\n</div>\n<ng-content></ng-content>\n","import { Component, OnInit } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { RecommendedPrice, Section } from '@veloceapps/core';\nimport { MessageService } from 'primeng/api';\nimport { CollapsibleStateService } from '../../../services/collapsible-state.service';\nimport { FormScopeService } from '../../../services/form-scope.service';\nimport { SectionScopeService } from '../../../services/section-scope.service';\nimport { UpdateData } from '../../../types';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'velo-type',\n templateUrl: 'velo-type.component.html',\n})\nexport class VeloTypeComponent implements OnInit {\n public readonly messageBucketId = 'ui-runtime';\n\n public controlName: string;\n public qtyControlName: string;\n public displayName: string;\n public indent = 1;\n\n public form: FormGroup;\n public section: Section;\n\n public prices: RecommendedPrice[] = [];\n\n constructor(\n private formScope: FormScopeService,\n private collapsibleState: CollapsibleStateService,\n private sectionScope: SectionScopeService,\n private messageService: MessageService,\n ) {\n this.form = this.formScope.form;\n this.section = this.sectionScope.section;\n this.indent = this.sectionScope.indent;\n\n this.controlName = this.section.id;\n this.qtyControlName = this.section.id + 'qty';\n this.displayName =\n (this.section.model?.properties && this.section.model.properties['displayName']) ||\n this.section.model?.type ||\n '';\n }\n\n public ngOnInit(): void {\n if (this.section.pricingEnabled) {\n this.prices = this.getPrices();\n }\n\n if (this.section.controlType === 'MESSAGE') {\n this.messageService.clear(this.messageBucketId);\n\n this.section.model?.messages?.forEach(message => {\n this.messageService.add({ key: this.messageBucketId, summary: message });\n });\n }\n }\n\n public handleRemove(): void {\n const updateData: UpdateData = {\n id: this.section.id,\n action: 'remove',\n };\n\n this.formScope.publishFormUpdate(updateData);\n }\n\n public handleQuantityUpdate(): void {\n const updateData: UpdateData = {\n id: this.section.id,\n action: 'qtyUpdate',\n };\n\n this.formScope.publishFormUpdate(updateData);\n }\n\n public toggleCollapse(): void {\n if (this.section.model) {\n this.collapsibleState.toggleCollapse(this.section.model.id);\n }\n }\n\n public getPrices(): RecommendedPrice[] {\n let prices: RecommendedPrice[] = [];\n if (this.section.model?.chargeItems) {\n prices = this.section.model.chargeItems.map(pi => {\n const price: RecommendedPrice = {\n listPrice: pi.listPrice,\n netPrice: pi.netPrice,\n chargeMethod: pi.chargeMethod,\n chargeType: pi.chargeType,\n };\n\n return price;\n });\n }\n\n const oneTime: RecommendedPrice = {\n chargeMethod: 'ONE_TIME',\n netPrice: 0,\n listPrice: 0,\n chargeType: '',\n };\n\n const recurring: RecommendedPrice = {\n chargeMethod: 'RECURRING',\n netPrice: 0,\n listPrice: 0,\n chargeType: '',\n };\n\n prices.forEach(p => {\n if (p.chargeMethod === oneTime.chargeMethod) {\n this.add(oneTime, p);\n }\n if (p.chargeMethod === recurring.chargeMethod) {\n this.add(recurring, p);\n }\n });\n\n const result: RecommendedPrice[] = [];\n if (oneTime.listPrice > 0) {\n result.push(oneTime);\n }\n if (recurring.listPrice > 0) {\n result.push(recurring);\n }\n\n return result;\n }\n\n private add(target: RecommendedPrice, src: RecommendedPrice): void {\n target.netPrice = target.netPrice + src.netPrice;\n target.listPrice = target.listPrice + src.listPrice;\n if (src.explanation) {\n target.explanation = src.explanation;\n }\n }\n}\n","<div class=\"container-box div-block collapsed container-box-bordered\" [formGroup]=\"form\">\n <div class=\"box-title\">\n <div class=\"header clearfix\">\n <div>\n <div class=\"header-label div-inline\">\n {{ displayName }}\n <span *ngIf=\"prices.length > 0\">\n <span>${{ prices[0].netPrice }}</span>\n <span *ngIf=\"prices.length > 1\">\n <span>, </span>\n <span>${{ prices[1].netPrice }}</span>\n </span>\n </span>\n </div>\n\n <div class=\"header-qty-container input-form-input\">\n <input\n [id]=\"qtyControlName\"\n [formControlName]=\"qtyControlName\"\n (blur)=\"form.controls[qtyControlName].valid && handleQuantityUpdate()\"\n type=\"text\"\n class=\"form-control\"\n size=\"3\"\n />\n <div class=\"validation-message\">\n <div *ngFor=\"let key of form.controls[qtyControlName].errors | values\">\n <span>\n {{ form.controls[qtyControlName]?.errors?.[key].message }}\n </span>\n </div>\n <span *ngIf=\"form.controls[qtyControlName].valid\"> &nbsp; </span>\n </div>\n <span *ngIf=\"prices.length > 0\">\n <div>{{ prices[0].explanation }}</div>\n <span *ngIf=\"prices.length > 1 && prices[1].explanation\">\n <div>{{ prices[1].explanation }}</div>\n </span>\n </span>\n </div>\n </div>\n </div>\n\n <div class=\"box-actions\">\n <ng-container *ngIf=\"section.controlType !== 'MESSAGE'\">\n <ng-template #msgTemplate>\n <div class=\"runtime-info-message\">\n <ul class=\"message-text\">\n <li *ngFor=\"let message of section.model?.messages\">{{ message }}</li>\n </ul>\n </div>\n </ng-template>\n\n <!-- removed dependency: ngx-bootstrap -->\n <!-- <div\n class=\"box-action-button\"\n *ngIf=\"(section.model?.messages?.length ?? 0) > 0\"\n [popover]=\"msgTemplate\"\n placement=\"left\"\n container=\"body\"\n [isOpen]=\"true\"\n >\n <a href=\"javascript:void(0);\">\n <i class=\"fa fa-info check-icon\"></i>\n </a>\n </div> -->\n </ng-container>\n\n <div\n class=\"box-action-button\"\n (click)=\"toggleCollapse()\"\n [hidden]=\"!section.children || section.children.length < 1\"\n >\n <a><i class=\"fa fa-chevron-down check-icon\"></i></a>\n </div>\n\n <div class=\"box-action-button\" (click)=\"handleRemove()\">\n <a><i class=\"fa fa-trash-o check-icon\"></i></a>\n </div>\n </div>\n </div>\n\n <ng-content></ng-content>\n</div>\n","import { HttpParams } from '@angular/common/http';\nimport { Directive } from '@angular/core';\nimport { SalesforceApiService } from '@veloceapps/api';\nimport { SearchRequest } from '@veloceapps/core';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'sf-query',\n exportAs: 'sfApi',\n})\nexport class SfQueryDirective {\n constructor(private apiService: SalesforceApiService) {}\n\n public query(searchRequest: SearchRequest, objectName: string): Promise<any> {\n return this.apiService.query(searchRequest, objectName).toPromise();\n }\n\n public describe(objectName: string, fieldName?: string): Promise<any> {\n return this.apiService.describe(objectName, fieldName).toPromise();\n }\n\n public describe2(objectName: string, fieldsNames: string[]): Promise<any> {\n return this.apiService.describe2(objectName, fieldsNames).toPromise();\n }\n\n public apexGetRequest<T = unknown>(path: string, params: HttpParams): Promise<T> {\n return this.apiService.apexGetRequest<T>(path, params).toPromise() as Promise<T>;\n }\n\n public apexPostRequest<T = unknown, S = unknown>(path: string, body: S): Promise<T> {\n return this.apiService.apexPostRequest<T, S>(path, body).toPromise() as Promise<T>;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { EntityUtil, PricingUtils, Section } from '@veloceapps/core';\n\n@Injectable()\nexport class SectionHelperService {\n public static findSectionForValue(section: Section, valueOption: string): Section | undefined {\n if (!EntityUtil.isPresent(section) || !EntityUtil.isPresent(section.children) || EntityUtil.isBlank(valueOption)) {\n return;\n }\n\n const found = EntityUtil.filterHierarchically(\n section.children,\n 'children',\n ({ model }: Section) => model && model.type.toLowerCase() === valueOption.toLowerCase(),\n );\n\n return found && found.pop();\n }\n\n public getTotalPrices(section: Section): Map<string, number> {\n if (!section || !section.model || !section.model.chargeGroupItems) {\n return new Map();\n }\n\n return PricingUtils.sumPriceByProperty(section.model.chargeGroupItems, 'netPrice', [\n 'chargeMethod',\n 'sellingFrequency',\n ]);\n }\n}\n","import { Component, Directive, OnInit } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { EntityUtil, LineItem, Section } from '@veloceapps/core';\nimport { take } from 'rxjs/operators';\nimport { ConfigurationService } from '../../services/configuration.service';\nimport { FormScopeService } from '../../services/form-scope.service';\nimport { SectionHelperService } from '../../services/section-helper.service';\nimport { SectionScopeService } from '../../services/section-scope.service';\nimport { LegacyRuntimeContext, UpdateData } from '../../types';\nimport { SectionsBinderHelper } from '../../utils/sections-binder.helper';\n\n@Directive()\nexport class SectionContextAware implements OnInit {\n public controlName!: string;\n public qtyControlName!: string;\n\n // @Input()\n public form!: FormGroup;\n public section!: Section;\n\n constructor(protected formScope: FormScopeService, protected sectionScope: SectionScopeService) {}\n\n public ngOnInit(): void {\n this.form = this.formScope.form;\n this.section = this.sectionScope.section;\n\n this.initControlNames();\n }\n\n public initControlNames(): void {\n this.controlName = this.section.id;\n this.qtyControlName = this.section.id + 'qty';\n }\n\n //TODO ALE CONSIDER STORE INSTEAD OF CALCULATE EVERY TIME\n public isAddAllowed(quantityToAdd: number = 1): boolean {\n return this.section.model\n ? SectionsBinderHelper.isAddAllowed(this.section.model, this.section.boundData.name, quantityToAdd)\n : false;\n }\n\n public isRemoveAllowed(quantityToRemove: number = 1): boolean {\n return this.section.model\n ? SectionsBinderHelper.isRemoveAllowed(this.section.model, this.section.boundData.name, quantityToRemove)\n : false;\n }\n\n public handleCreate(valueOption?: any): void {\n if (!this.isAddAllowed()) {\n return;\n }\n\n const updateData: UpdateData = {\n id: this.section.id,\n action: 'create',\n valueOption: EntityUtil.isPresent(valueOption) ? valueOption : void 0,\n };\n\n this.formScope.publishFormUpdate(updateData);\n }\n\n public handleChange(valueOption?: any): void {\n const updateData: UpdateData = {\n id: this.section.id,\n action: 'update',\n valueOption: EntityUtil.isPresent(valueOption) ? valueOption : void 0,\n };\n\n this.formScope.publishFormUpdate(updateData);\n }\n\n public handleQtyChange(valueOption: any): void {\n const updateData: UpdateData = {\n id: this.section.id,\n action: 'qtyUpdate',\n valueOption: valueOption,\n };\n\n this.formScope.publishFormUpdate(updateData);\n }\n\n public handleRemove(valueOption: string): void {\n const updateData: UpdateData = {\n id: this.section.id,\n action: 'remove',\n valueOption: valueOption,\n };\n\n this.formScope.publishFormUpdate(updateData);\n }\n\n public handleCopy(valueOption: string): void {\n const updateData: UpdateData = {\n id: this.section.id,\n action: 'copy',\n valueOption: valueOption,\n };\n\n this.formScope.publishFormUpdate(updateData);\n }\n}\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'line-item',\n exportAs: 'liApi',\n})\nexport class LineItemDirective implements OnInit {\n public section!: Section;\n public lineItem?: LineItem;\n\n constructor(\n private formScope: FormScopeService,\n private sectionScope: SectionScopeService,\n private configurationService: ConfigurationService,\n ) {}\n\n public ngOnInit(): void {\n this.section = this.sectionScope.section;\n this.lineItem = this.section.model;\n }\n\n public handlePatch(rootLineItem: any): void {\n const updateData: UpdateData = {\n id: this.sectionScope.section.id,\n action: 'patch',\n valueOption: rootLineItem,\n };\n\n this.formScope.publishFormUpdate(updateData);\n }\n\n public configure(runtimeContext: LegacyRuntimeContext, configurableRamp: LineItem): Promise<LineItem> {\n return this.configurationService\n .configure(runtimeContext, { configurableRamp })\n .pipe(take(1))\n .toPromise() as Promise<LineItem>;\n }\n}\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'velo-port',\n exportAs: 'portApi',\n})\nexport class VeloPortDirective extends SectionContextAware implements OnInit {\n public valueQuantities: { [index: string]: number } = {};\n\n constructor(formScope: FormScopeService, sectionScope: SectionScopeService) {\n super(formScope, sectionScope);\n }\n\n private handlePriceAdjustment(action: string, valueOption: string, amount: number): void {\n const updateData: UpdateData = {\n id: this.section.id,\n action,\n valueOption,\n options: { amount },\n };\n\n this.formScope.publishFormUpdate(updateData);\n }\n\n public override ngOnInit(): void {\n super.ngOnInit();\n\n this.initQuantity();\n }\n\n public handleUpsert(valueOption?: any, event?: Event): void {\n if (EntityUtil.isPresent(this.valueQuantities[valueOption]) && EntityUtil.isPresent(event)) {\n event?.preventDefault();\n return;\n } else if (Object.keys(this.valueQuantities).length > 0) {\n this.handleChange(valueOption);\n } else {\n this.handleCreate(valueOption);\n }\n }\n\n public isActive(valueOption?: any): boolean {\n return EntityUtil.isPresent(this.valueQuantities[valueOption]);\n }\n\n private initQuantity(): void {\n this.valueQuantities = this.section.model\n ? SectionsBinderHelper.getQuantityGroupByValue(this.section.model, this.section.boundData.name)\n : {};\n }\n\n //Quantity Stepper Functions\n public handleNextVal(valueOption: string): void {\n let initQty = this.valueQuantities[valueOption] || 0;\n\n if (this.isAddAllowed()) {\n if (initQty > 0) {\n const typeSection = SectionHelperService.findSectionForValue(this.section, valueOption);\n\n if (typeSection) {\n this.form.controls[typeSection.id + 'qty'].setValue(++initQty);\n\n this.handleQtyChange(valueOption);\n }\n } else {\n this.handleCreate(valueOption);\n }\n }\n }\n\n public handlePrevVal(valueOption: string): void {\n let initQty = this.valueQuantities[valueOption] || 0;\n\n if (this.isRemoveAllowed()) {\n if (initQty < 2) {\n this.handleRemove(valueOption);\n } else {\n const typeSection = SectionHelperService.findSectionForValue(this.section, valueOption);\n\n if (typeSection) {\n this.form.controls[typeSection.id + 'qty'].setValue(--initQty);\n\n this.handleQtyChange(valueOption);\n }\n }\n }\n }\n\n public handleManualQtyChange(valueOption: string, qtyVal: any): void {\n const initQty = this.valueQuantities[valueOption] || 0;\n if (isNaN(+qtyVal) || +qtyVal < 0 || initQty === +qtyVal) {\n return;\n }\n\n const newQty = +qtyVal;\n\n if (initQty === 0) {\n if (this.isAddAllowed(newQty)) {\n this.form.controls[this.qtyControlName].setValue(newQty);\n this.handleCreate(valueOption);\n }\n } else if (newQty === 0) {\n if (this.isRemoveAllowed()) {\n this.handleRemove(valueOption);\n }\n } else {\n const typeSection = SectionHelperService.findSectionForValue(this.section, valueOption);\n\n if (typeSection) {\n const dif = newQty - initQty;\n\n const isAllowed = dif > 0 ? this.isAddAllowed(dif) : this.isRemoveAllowed(dif * -1);\n\n if (isAllowed) {\n this.form.controls[typeSection.id + 'qty'].setValue(newQty);\n this.handleQtyChange(valueOption);\n }\n }\n }\n }\n\n public handleNetPriceAdjustment(valueOption: string, amount: number): void {\n this.handlePriceAdjustment('adjustNetPrice', valueOption, amount);\n }\n\n public handleListPriceAdjustment(valueOption: string, amount: number): void {\n this.handlePriceAdjustment('adjustListPrice', valueOption, amount);\n }\n}\n\n@Component({\n // moduleId: module.id,\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'velo-dropdown',\n template: `\n <div class=\"input-form-input div-inline\" [formGroup]=\"form\">\n <label [for]=\"controlName\">{{ section.label }}</label>\n <div class=\"form-control-wrapper\">\n <select [id]=\"controlName\" [formControlName]=\"controlName\" class=\"form-control\">\n <option *ngFor=\"let valueOption of section.sectionValue?.valueOptions\" [ngValue]=\"valueOption\">\n {{ section.sectionValue?.displayValues?.[valueOption] || valueOption }}\n </option>\n </select>\n </div>\n </div>\n `,\n})\nexport class VeloDropdownComponent extends SectionContextAware {\n constructor(formScope: FormScopeService, sectionScope: SectionScopeService) {\n super(formScope, sectionScope);\n }\n}\n\n@Component({\n // moduleId: module.id,\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'velo-quantity',\n template: `\n <div class=\"input-form-input div-inline quantity-form-input\" [formGroup]=\"form\">\n <label [for]=\"qtyControlName\"> Quantity </label>\n <div class=\"form-control-wrapper\">\n <input\n [id]=\"controlName\"\n [formControlName]=\"qtyControlName\"\n [attr.disabled]=\"isAddAllowed() === true ? null : true\"\n type=\"text\"\n class=\"form-control\"\n size=\"3\"\n />\n\n <div\n class=\"validation-message\"\n [hidden]=\"form.controls[qtyControlName].valid || form.controls[qtyControlName].pristine\"\n >\n <div *ngFor=\"let key of form.controls[qtyControlName].errors | values\">\n <span> {{ form.controls[qtyControlName].errors?.[key].message }}</span>\n </div>\n </div>\n </div>\n </div>\n `,\n})\nexport class VeloQuantityComponent extends SectionContextAware {\n constructor(formScope: FormScopeService, sectionScope: SectionScopeService) {\n super(formScope, sectionScope);\n }\n}\n\n@Component({\n // moduleId: module.id,\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'velo-quantity-button',\n template: `\n <div class=\"input-form-input div-inline quantity-form-input\">\n <div class=\"form-control-wrapper\">\n <a href=\"javascript:void(0);\" (click)=\"handleCreate()\">\n <div class=\"add-config-control\" [attr.disabled]=\"isAddAllowed() === true ? null : true\">\n <i class=\"fa fa-plus plus-icon\"></i>\n </div>\n </a>\n </div>\n </div>\n `,\n})\nexport class VeloQuantityButtonComponent extends SectionContextAware {\n constructor(formScope: FormScopeService, sectionScope: SectionScopeService) {\n super(formScope, sectionScope);\n }\n}\n","import { Directive } from '@angular/core';\nimport { QuoteApiService } from '@veloceapps/api';\nimport { QuoteDraft } from '@veloceapps/core';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'vl-approval',\n exportAs: 'approvalApi',\n})\nexport class VlApprovalDirective {\n constructor(private repo: QuoteApiService) {}\n\n public submitQuote(quoteDraft: QuoteDraft): Promise<any> {\n return this.repo.submitQuote(quoteDraft).toPromise();\n }\n}\n","import { Directive } from '@angular/core';\nimport { DocumentAttachmentApiService } from '@veloceapps/api';\nimport { Attachment, TemplateAttachmentSearchRequest } from '@veloceapps/core';\nimport { Observable } from 'rxjs';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'vl-document-attachments',\n exportAs: 'documentAttachmentsApi',\n})\nexport class VlDocumentAttachmentsDirective {\n constructor(private service: DocumentAttachmentApiService) {}\n\n public getAttachments(searchRequest: TemplateAttachmentSearchRequest): Promise<Attachment[]> {\n return this.service.getAttachments(searchRequest).toPromise() as Promise<Attachment[]>;\n }\n\n public createAttachment(\n attachment: Attachment,\n file?: File,\n reportProgress?: boolean,\n ): Promise<Attachment> | Observable<Attachment> {\n const observable = this.service.createAttachment(attachment, file, reportProgress);\n return reportProgress ? observable : (observable.toPromise() as Promise<Attachment>);\n }\n\n public updateAttachment(id: string, attachment: Attachment): Promise<Attachment> {\n return this.service.updateAttachment(id, attachment).toPromise() as Promise<Attachment>;\n }\n\n public getAttachmentFile(id: string, isPreventDownload?: boolean): Promise<any> {\n return this.service.getAttachmentFile(id, isPreventDownload).toPromise();\n }\n\n public removeAttachment(id: string): Promise<unknown> {\n return this.service.removeAttachment(id).toPromise();\n }\n}\n","import { Directive } from '@angular/core';\nimport { DocumentTemplatesApiService } from '@veloceapps/api';\nimport { Attachment, DocumentTemplate, QuoteDraft, TemplateAttachmentSearchRequest } from '@veloceapps/core';\nimport { Observable } from 'rxjs';\nimport { take } from 'rxjs/operators';\n\n@Directive({\n selector: '[vlQuoteTemplates]',\n exportAs: 'quoteTemplateApi',\n})\nexport class VlDocumentTemplatesDirective {\n constructor(private documentTemplatesApiService: DocumentTemplatesApiService) {}\n\n public getTemplates(tag?: string): Promise<DocumentTemplate[]> {\n return this.documentTemplatesApiService.getTemplates(tag).toPromise() as Promise<DocumentTemplate[]>;\n }\n\n public upsertTemplate(template: DocumentTemplate, templateFile: File): Promise<DocumentTemplate> {\n return this.documentTemplatesApiService\n .upsertTemplate(template, templateFile)\n .toPromise() as Promise<DocumentTemplate>;\n }\n\n public removeTemplate(id: string): Promise<DocumentTemplate> {\n return this.documentTemplatesApiService.removeTemplate(id).toPromise() as Promise<DocumentTemplate>;\n }\n\n public cloneTemplate(id: string): Promise<{ clonedRecordId: string }> {\n return this.documentTemplatesApiService.cloneTemplate(id).toPromise() as Promise<{ clonedRecordId: string }>;\n }\n\n public downloadTemplate(id: string): Promise<Blob> {\n return this.documentTemplatesApiService.downloadTemplateFile(id).toPromise() as Promise<Blob>;\n }\n\n public generateDocument(\n template: DocumentTemplate,\n quoteDraft: QuoteDraft,\n params?: { [param: string]: string | boolean },\n ): Observable<any> {\n return this.documentTemplatesApiService.generateDocument(template, quoteDraft, params).pipe(take(1));\n }\n\n /**\n * @deprecated Use `generateDocument` instead\n */\n // eslint-disable-next-line @typescript-eslint/member-ordering\n public generateDocumentNew = this.generateDocument;\n\n public generateDocumentData(\n template: DocumentTemplate,\n quoteDraft: QuoteDraft,\n params?: { [param: string]: boolean },\n ): Observable<any> {\n return this.documentTemplatesApiService.generateDocumentData(template, quoteDraft, params).pipe(take(1));\n }\n\n public getAttachments(searchRequest: TemplateAttachmentSearchRequest): Promise<any> {\n return this.documentTemplatesApiService.getAttachments(searchRequest).toPromise();\n }\n\n public getAttachmentFile(id: string): Promise<any> {\n return this.documentTemplatesApiService.getAttachmentFile(id).toPromise();\n }\n\n public createAttachment(attachment: Attachment, file?: File): Promise<any> {\n return this.documentTemplatesApiService.createAttachment(attachment, file).toPromise();\n }\n\n public removeAttachment(id: string): Promise<any> {\n return this.documentTemplatesApiService.removeAttachment(id).toPromise();\n }\n}\n","import { Directive } from '@angular/core';\nimport { QuoteApiService } from '@veloceapps/api';\nimport { EntityUtil, QuoteDraft } from '@veloceapps/core';\nimport { RuntimeService } from '../../services/runtime.service';\nimport { QuoteStates } from '../../types/quote-states.types';\nimport { LineItemUtil } from '../../utils/line-item.util';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'vl-quote',\n exportAs: 'quoteApi',\n})\nexport class VlQuoteDirective {\n constructor(private quoteApiService: QuoteApiService, private runtimeService: RuntimeService) {}\n\n public getQuote(quoteId: string): Promise<QuoteDraft> {\n return this.quoteApiService.getQuoteDraft(quoteId).toPromise() as Promise<QuoteDraft>;\n }\n\n public upsertQuote(quoteDraft: QuoteDraft): Promise<any> {\n return this.quoteApiService.upsertQuote(quoteDraft).toPromise();\n }\n\n public configureQuote(quoteDraft: QuoteDraft, rootLineItemId: string): void {\n const rootLineItem = EntityUtil.findById(rootLineItemId, quoteDraft.currentState);\n const asset = quoteDraft.initialState?.find(a => a.id === rootLineItem.assetId);\n const { context } = quoteDraft;\n\n const states: QuoteStates = {\n configurableRamp: LineItemUtil.removeDeletedItems(rootLineItem),\n currentState: quoteDraft.currentState,\n asset,\n };\n\n this.runtimeService.updateRuntime(states, context.properties);\n }\n}\n","import { Directive } from '@angular/core';\nimport { PriceApiService, RampApiService } from '@veloceapps/api';\nimport { LineItem } from '@veloceapps/core';\nimport { ContextService } from '@veloceapps/sdk/core';\nimport { tap } from 'rxjs/operators';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'vl-ramp',\n exportAs: 'rampApi',\n})\nexport class VlRampDirective {\n constructor(\n private contextService: ContextService,\n private rampApiService: RampApiService,\n private priceApiService: PriceApiService,\n ) {}\n\n public createRamp(sourceItems: string[], currentRamps: LineItem[], term: number): Promise<any> {\n const context = this.contextService.resolve();\n\n return this.rampApiService\n .next({\n context,\n sourceItems,\n currentItems: currentRamps || [],\n term,\n })\n .pipe(\n tap(data => {\n if (data.context) {\n this.contextService.update({\n properties: {\n ...data.context.properties,\n },\n });\n }\n }),\n )\n .toPromise();\n }\n\n public calculateRampTermByEndDate(lineItem: LineItem, endDate: string): Promise<any> {\n return this.priceApiService\n .getSellingTermByEndDate(\n lineItem.planId,\n lineItem.offeringId,\n lineItem.startDate,\n endDate,\n lineItem.sellingFrequencyUnit,\n lineItem.sellingFrequencyDuration,\n )\n .toPromise();\n }\n\n public calculateRampTermByTerm(lineItem: LineItem, term: number): Promise<any> {\n return this.priceApiService\n .getSellingTermByTerm(\n lineItem.planId,\n lineItem.offeringId,\n lineItem.startDate,\n term,\n lineItem.sellingFrequencyUnit,\n lineItem.sellingFrequencyDuration,\n )\n .toPromise();\n }\n}\n","import { CurrencyPipe, DOCUMENT } from '@angular/common';\nimport { AfterViewInit, ChangeDetectorRef, Directive, Inject, OnDestroy, OnInit, Renderer2 } from '@angular/core';\nimport { FormBuilder } from '@angular/forms';\nimport { EntityUtil, PagedEntity, Section, UUID } from '@veloceapps/core';\nimport { ContextService, QuoteDraftService } from '@veloceapps/sdk/core';\nimport * as _ from 'lodash';\nimport * as moment from 'moment';\nimport * as rxjs from 'rxjs';\nimport * as rxjsOperators from 'rxjs/operators';\nimport { ShoppingCartService } from '../../services/cart.service';\nimport { CurrentStateService } from '../../services/current-state.service';\nimport { FormScopeService } from '../../services/form-scope.service';\nimport { RuntimeService } from '../../services/runtime.service';\nimport { SectionScopeService } from '../../services/section-scope.service';\nimport { ScriptRegistry } from '../../types/script-registry.types';\nimport { SfQueryDirective } from './sf-query.directive';\nimport { LineItemDirective } from './velo-port.directive';\nimport { VlApprovalDirective } from './vl-approval.directive';\nimport { VlDocumentAttachmentsDirective } from './vl-document-attachments.directive';\nimport { VlDocumentTemplatesDirective } from './vl-document-templates.directive';\nimport { VlQuoteDirective } from './vl-quote.directive';\nimport { VlRampDirective } from './vl-ramp.directive';\n\nconst SHA1 = UUID.SHA1();\nconst SCRIPT_GLOBAL_NAME = `$velo`;\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'section-script',\n exportAs: 'scriptApi',\n providers: [\n SfQueryDirective,\n LineItemDirective,\n VlQuoteDirective,\n VlDocumentTemplatesDirective,\n VlRampDirective,\n VlApprovalDirective,\n VlDocumentAttachmentsDirective,\n ],\n})\nexport class SectionScriptDirective implements OnInit, AfterViewInit, OnDestroy {\n private scriptElement: any;\n private scriptId = '';\n private registry!: ScriptRegistry;\n private sessionScope: { [index: string]: any } = {};\n\n constructor(\n @Inject(DOCUMENT) private _document: Document,\n @Inject(SfQueryDirective) private sfQueryDirective: SfQueryDirective,\n @Inject(LineItemDirective) private lineItemDirective: LineItemDirective,\n @Inject(VlQuoteDirective) private quoteDirective: VlQuoteDirective,\n @Inject(VlDocumentTemplatesDirective) private documentTemplatesDirective: VlDocumentTemplatesDirective,\n @Inject(VlRampDirective) private rampDirective: VlRampDirective,\n @Inject(VlApprovalDirective) private approvalDirective: VlApprovalDirective,\n @Inject(VlDocumentAttachmentsDirective) private documentAttachmentsDirective: VlDocumentAttachmentsDirective,\n private formScope: FormScopeService,\n private sectionScope: SectionScopeService,\n private renderer: Renderer2,\n private formBuilder: FormBuilder,\n private runtimeService: RuntimeService,\n private cdr: ChangeDetectorRef,\n private cartService: ShoppingCartService,\n private contextService: ContextService,\n private currentStateService: CurrentStateService,\n private quoteService: QuoteDraftService,\n ) {}\n\n public ngOnInit(): void {\n if (!this.scriptExists()) {\n return;\n }\n\n this.scriptId = this.generateScriptId();\n this.registry = this.getScriptRegistry();\n this.sessionScope = this.getSessionScope();\n\n if (!this.registry.exists(this.scriptId)) {\n this.appendScriptElementToDom();\n }\n\n this.initScript();\n\n this.registry.doRegister(this.scriptId, this.sectionScope.section.id);\n }\n\n public ngAfterViewInit(): void {\n const sharedScriptGlobal = this.registry?.getGlobalForScript(this.sectionScope.section.id);\n\n if (sharedScriptGlobal) {\n this.methodApply('afterViewInit', sharedScriptGlobal);\n }\n }\n\n public ngOnDestroy(): void {\n if (!this.scriptId) {\n return;\n }\n\n this.registry.unRegister(this.scriptId, this.sectionScope.section.id);\n\n if (!this.registry.exists(this.scriptId)) {\n this.removeScript();\n this.registry.removeGlobalForScript(this.scriptId);\n }\n }\n\n public get scope(): any {\n if (!this.scriptId || !this.sectionScope.section) {\n return {};\n }\n\n return Object.assign({}, this.registry.getGlobalForScript(this.sectionScope.section.id) || {}, this.sessionScope);\n }\n\n private scriptExists(): boolean {\n return (this.sectionScope?.section?.script?.length ?? 0) > 0;\n }\n\n private encodeScriptBody(): string {\n return this.sectionScope.section.script ? atob(this.sectionScope.section.script) : '';\n }\n\n private generateScriptId(): string {\n return '_' + SHA1.hex(this.encodeScriptBody());\n }\n\n private getScriptRegistry(): ScriptRegistry {\n return this.formScope.scriptRegistry;\n }\n\n private getSessionScope(): { [index: string]: any } {\n return this.formScope.scriptSessionScope;\n }\n\n private initScript(): void {\n let sharedScriptGlobal = this.registry.getGlobalForScript(this.sectionScope.section.id);\n\n if (!EntityUtil.isPresent(sharedScriptGlobal)) {\n sharedScriptGlobal = {};\n this.registry.setGlobalForScript(this.sectionScope.section.id, sharedScriptGlobal);\n }\n\n this.methodApply('init', sharedScriptGlobal);\n }\n\n private removeScript(): void {\n const sharedScriptGlobal = this.registry.getGlobalForScript(this.sectionScope.section.id);\n\n this.methodApply('destroy', sharedScriptGlobal);\n\n this.removeScriptElementFromDom();\n }\n\n private appendScriptElementToDom(): void {\n const script = this.scriptFromTemplate(this.encodeScriptBody(), this.scriptId, this.sectionScope.section);\n\n this.scriptElement = this.renderer.createElement('script');\n this.scriptElement.type = `text/javascript`;\n this.scriptElement.text = script;\n\n this.scriptElement.setAttribute('id', this.scriptId);\n\n this.renderer.appendChild(this._document.body, this.scriptElement);\n }\n\n private removeScriptElementFromDom(): void {\n if (!this.scriptElement) {\n this.scriptElement = this._document.getElementById(this.scriptId);\n }\n\n this.scriptElement.remove();\n }\n\n private scriptFromTemplate(scriptBody: string, scriptId: string, section: Section): string {\n return `var ${scriptId} = (function (${SCRIPT_GLOBAL_NAME}, form, { section, templates }, sessionScope, formBuilder, runtimeContext, cdr, apis) {\n ${SCRIPT_GLOBAL_NAME}[\"form\"] = form;\n ${SCRIPT_GLOBAL_NAME}[\"section\"] = section;\n ${SCRIPT_GLOBAL_NAME}[\"templates\"] = templates;\n ${SCRIPT_GLOBAL_NAME}[\"sessionScope\"] = sessionScope;\n ${SCRIPT_GLOBAL_NAME}[\"formBuilder\"] = formBuilder;\n ${SCRIPT_GLOBAL_NAME}[\"runtimeContext\"] = runtimeContext;\n ${SCRIPT_GLOBAL_NAME}[\"cdr\"] = cdr;\n ${SCRIPT_GLOBAL_NAME}[\"apis\"] = apis;\n\n ${scriptBody}\n return ${SCRIPT_GLOBAL_NAME};\n });\n\n //# sourceURL=${_.kebabCase(section.label)}.js`;\n }\n\n private methodApply(methodName: string, sharedScriptGlobal: any): void {\n const args = [\n sharedScriptGlobal,\n this.formScope.form,\n this.sectionScope,\n this.sessionScope,\n this.formBuilder,\n this.runtimeService.getRuntimeContext(),\n this.cdr,\n this.getExposedApis(),\n ];\n\n const fnInit = (window as any)[`${this.scriptId}`](...args);\n\n fnInit && fnInit[methodName] && fnInit[methodName].apply();\n }\n\n private getExposedApis(): any {\n return {\n 'sf-query': this.sfQueryDirective,\n 'line-item': this.lineItemDirective,\n 'quote-directive': this.quoteDirective,\n 'templates-directive': this.documentTemplatesDirective,\n 'attachments-directive': this.documentAttachmentsDirective,\n 'ramp-directive': this.rampDirective,\n 'approval-directive': this.approvalDirective,\n entityUtil: EntityUtil,\n moment,\n lodash: _,\n rxjs: { ...rxjsOperators, ...rxjs },\n PagedEntity,\n pipes: {\n currency: CurrencyPipe,\n },\n solutionUpdateStarted: this.runtimeService.onSolutionUpdateStartedEvent,\n solutionUpdated: this.runtimeService.onSolutionProcessed,\n cartService: this.cartService,\n configurationContextService: this.contextService,\n quoteDraft: this.quoteService.quoteDraft,\n currentStateService: this.currentStateService,\n };\n }\n}\n","import { CommonModule, DatePipe } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { ApiModule } from '@veloceapps/api';\nimport { LoaderModule } from '@veloceapps/components';\nimport { CoreModule } from '@veloceapps/core';\nimport { SdkCoreModule } from '@veloceapps/sdk/core';\nimport { ShoppingCartService } from '../services/cart.service';\nimport { ConfigurationService } from '../services/configuration.service';\nimport { CurrentStateService } from '../services/current-state.service';\nimport { ProductModelCacheService } from '../services/product-model-cache.service';\nimport { RuntimeContextService } from '../services/runtime-context.service';\nimport { RuntimeFormService } from '../services/runtime-form.service';\nimport { RuntimeService } from '../services/runtime.service';\nimport { SectionStoreService } from '../services/section-store.service';\nimport {\n ChildrenPlaceholderComponent,\n TemplateComponent,\n} from './components/children-placeholder/children-placeholder.component';\nimport { ContextProviderComponent } from './components/context-provider/context-provider.component';\nimport { ExecutionSectionRendererComponent } from './components/execution-section-renderer/execution-section-renderer.component';\nimport { FederatedComponent } from './components/federated/federated.component';\nimport { VeloAttributeComponent } from './components/velo-attribute/velo-attribute.component';\nimport { MultiselectComponent } from './components/velo-multiselect/velo-multiselect.component';\nimport { VeloPortCheckBoxComponent } from './components/velo-port-checkbox/velo-port-checkbox.component';\nimport { VeloPortDropdownComponent } from './components/velo-port-dropdown/velo-port-dropdown.component';\nimport { VeloPortRadioComponent } from './components/velo-port-radio/velo-port-radio.component';\nimport { VeloTypeComponent } from './components/velo-type/velo-type.component';\nimport { SectionScriptDirective } from './directives/section-script.directive';\nimport { VeloAttributeDirective } from './directives/velo-attribute.directive';\nimport {\n LineItemDirective,\n VeloDropdownComponent,\n VeloPortDirective,\n VeloQuantityButtonComponent,\n VeloQuantityComponent,\n} from './directives/velo-port.directive';\n\n@NgModule({\n declarations: [\n ExecutionSectionRendererComponent,\n ChildrenPlaceholderComponent,\n SectionScriptDirective,\n VeloPortDirective,\n LineItemDirective,\n VeloDropdownComponent,\n VeloQuantityButtonComponent,\n VeloQuantityComponent,\n VeloAttributeDirective,\n MultiselectComponent,\n VeloAttributeComponent,\n VeloPortRadioComponent,\n VeloTypeComponent,\n VeloPortDropdownComponent,\n VeloPortCheckBoxComponent,\n FederatedComponent,\n TemplateComponent,\n ContextProviderComponent,\n ],\n providers: [\n ShoppingCartService,\n RuntimeService,\n ConfigurationService,\n RuntimeContextService,\n RuntimeFormService,\n CurrentStateService,\n ProductModelCacheService,\n DatePipe,\n SectionStoreService,\n ],\n imports: [CommonModule, FormsModule, ReactiveFormsModule, CoreModule, ApiModule, LoaderModule, SdkCoreModule],\n exports: [\n FormsModule,\n ReactiveFormsModule,\n ChildrenPlaceholderComponent,\n SectionScriptDirective,\n LineItemDirective,\n VeloPortDirective,\n VeloAttributeDirective,\n MultiselectComponent,\n VeloAttributeComponent,\n VeloPortRadioComponent,\n VeloTypeComponent,\n VeloPortDropdownComponent,\n VeloPortCheckBoxComponent,\n FederatedComponent,\n TemplateComponent,\n ContextProviderComponent,\n ],\n})\nexport class RuntimeExecutionModule {}\n","import { ScrollingModule as ExperimentalScrollingModule } from '@angular/cdk-experimental/scrolling';\nimport { ScrollingModule } from '@angular/cdk/scrolling';\nimport { CommonModule } from '@angular/common';\nimport '@angular/compiler';\nimport {\n Compiler,\n Component,\n Injectable,\n Input,\n ModuleWithComponentFactories,\n NgModule,\n NgModuleRef,\n QueryList,\n TemplateRef,\n Type,\n ViewChildren,\n ViewEncapsulation,\n} from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { CoreModule, EntityUtil, Section, UUID } from '@veloceapps/core';\nimport { set, values } from 'lodash';\nimport { RuntimeExecutionModule } from '../execution/runtime-execution.module';\nimport { SectionHelperService } from './section-helper.service';\nimport { SectionStoreService } from './section-store.service';\n\nconst SHA1 = UUID.SHA1();\n\n@Component({ template: '' })\nexport class BaseSectionComponent {\n @Input()\n public form!: FormGroup;\n\n @Input()\n public section!: Section;\n\n @ViewChildren('customTemplate') protected templates!: QueryList<TemplateRef<any>>;\n}\n\n@Injectable()\nexport class SectionsService {\n private moduleType: Type<any> | null = null;\n private moduleInstance: ModuleWithComponentFactories<any> | null = null;\n\n constructor(private compiler: Compiler, private m: NgModuleRef<any>, private sectionStore: SectionStoreService) {}\n\n public compileModule(sections: Section[], isViewEncapsulated?: boolean): void {\n const uniqueSections = this.getUniqueSections(sections);\n\n this.moduleType = this.getModuleType(uniqueSections, isViewEncapsulated);\n this.moduleInstance = this.compiler.compileModuleAndAllComponentsSync(this.moduleType);\n\n this.sectionStore.componentFactories = this.moduleInstance.componentFactories;\n }\n\n public destroy(): void {\n if (this.moduleInstance) {\n this.sectionStore.componentFactories = [];\n this.moduleInstance = null;\n }\n\n if (this.moduleType) {\n this.compiler.clearCacheFor(this.moduleType);\n this.moduleType = null;\n }\n }\n\n private getDecoratedComponents(sections: Section[], isViewEncapsulated: boolean = false): any[] {\n const result: any[] = [];\n\n sections.forEach(section => {\n const transpiledTemplate = this.getTranspiledTemplate(section);\n\n const DynamicComponent = Component({\n selector: section.dynamicSelector,\n template: transpiledTemplate,\n styles: [atob(section.styles || '')],\n providers: [SectionHelperService],\n encapsulation: isViewEncapsulated ? ViewEncapsulation.ShadowDom : ViewEncapsulation.Emulated,\n jit: true,\n })(class C extends BaseSectionComponent {});\n\n this.applySelectorField(DynamicComponent, section.dynamicSelector ?? '');\n result.push(DynamicComponent);\n });\n\n return result;\n }\n\n private getModuleType(sections: Section[], isViewEncapsulated?: boolean): Type<any> {\n const decoratedComponents = this.getDecoratedComponents(sections, isViewEncapsulated);\n\n @NgModule({\n imports: [CommonModule, RuntimeExecutionModule, CoreModule, ScrollingModule, ExperimentalScrollingModule],\n declarations: [decoratedComponents],\n jit: true,\n })\n class DynamicModule {}\n\n return DynamicModule;\n }\n\n private applySelectorField(target: any, dynamicSelector: string): void {\n set(target, '$$dynamicSelector', dynamicSelector);\n }\n\n private getUniqueSections(sections: Section[]): Section[] {\n const uniqueSections: { [index: string]: Section } = {};\n\n sections.forEach(section => {\n section.hash = SHA1.hex(section.template);\n\n const existingSection = section.hash ? uniqueSections[section.hash] : undefined;\n if (existingSection && existingSection.template === section.template) {\n section.dynamicSelector = existingSection.dynamicSelector;\n } else if (section.hash) {\n section.dynamicSelector = `section-${section.id}`;\n\n uniqueSections[section.hash] = section;\n }\n });\n\n return values(uniqueSections);\n }\n\n private getTranspiledTemplate(section: Section): string {\n let template: string = section.template ? atob(section.template) : '';\n\n if (!EntityUtil.isEmpty(section.script) && template.indexOf('<section-script') === -1) {\n template = `<section-script></section-script>`.concat(template);\n }\n\n return template;\n }\n}\n","import {\n AfterViewInit,\n Component,\n ComponentRef,\n Injector,\n Input,\n NgModuleRef,\n OnDestroy,\n OnInit,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { Section } from '@veloceapps/core';\nimport { SectionScopeService } from '../../services/section-scope.service';\nimport { SectionStoreService } from '../../services/section-store.service';\n\n@Component({\n selector: 'vl-section-renderer',\n templateUrl: 'section-renderer.component.html',\n styleUrls: ['section-renderer.component.scss'],\n providers: [SectionScopeService],\n})\nexport class SectionRendererComponent implements OnInit, AfterViewInit, OnDestroy {\n private _section!: Section;\n\n @Input()\n public set section(value: Section) {\n this._section = value;\n this.sectionScope.section = value;\n }\n\n public get section(): Section {\n return this._section;\n }\n\n @Input()\n public form!: FormGroup;\n\n constructor(\n private _injector: Injector,\n private _m: NgModuleRef<any>,\n private sectionScope: SectionScopeService,\n private sectionStore: SectionStoreService,\n ) {}\n\n @ViewChild('container', { read: ViewContainerRef, static: true })\n public container!: ViewContainerRef;\n\n private componentRef: ComponentRef<any> | null = null;\n\n public ngOnInit(): void {\n this.renderSection();\n }\n\n public ngAfterViewInit(): void {\n if (this.componentRef) {\n this.sectionScope.templates.next(this.componentRef.instance['templates']?.toArray() ?? []);\n }\n }\n\n public ngOnDestroy(): void {\n if (this.componentRef) {\n this.componentRef.destroy();\n this.componentRef = null;\n }\n }\n\n public renderSection(): void {\n if (this.componentRef) {\n this.componentRef.destroy();\n this.componentRef = null;\n }\n\n const componentFactory = this.sectionStore.getComponentFactory(this._section);\n if (!componentFactory) {\n return;\n }\n\n this.componentRef = componentFactory.create(this._injector, [], null, this._m);\n this.componentRef.location.nativeElement.setAttribute(\n 'sectionId',\n `${this._section.model?.id}${this._section.label}`,\n );\n this.componentRef.instance['form'] = this.form;\n this.componentRef.instance['section'] = this.section;\n\n this.container.insert(this.componentRef.hostView);\n }\n}\n","<ng-template #container></ng-template>","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, OnChanges, SimpleChanges } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { ComponentStoryPreview, EntityUtil, LineItem, RuntimeModel, Section, UUID } from '@veloceapps/core';\nimport { RuntimeMode } from '@veloceapps/sdk/core';\nimport { CollapsibleStateService } from '../../services/collapsible-state.service';\nimport { FormScopeService } from '../../services/form-scope.service';\nimport { RuntimeFormService } from '../../services/runtime-form.service';\nimport { RuntimeService } from '../../services/runtime.service';\nimport { SectionsService } from '../../services/section.service';\nimport { LegacyRuntimeContext } from '../../types';\n\nconst defaultTemplate = btoa('<template-component></template-component>');\n\n@Component({\n selector: 'vl-component-preview',\n templateUrl: './component-preview.component.html',\n styleUrls: ['../ui-runtime/runtime-legacy-styles.scss', './component-preview.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n SectionsService,\n FormScopeService,\n CollapsibleStateService,\n RuntimeFormService,\n FormScopeService,\n RuntimeService,\n ],\n})\nexport class ComponentPreviewComponent implements OnChanges {\n @Input() public data?: ComponentStoryPreview;\n\n public form = new FormGroup({});\n public section?: Section;\n\n public showPreview = false;\n public isNoPreviewAvailable = false;\n public isPreviewFailed = false;\n\n constructor(\n private sectionsService: SectionsService,\n private runtimeFormService: RuntimeFormService,\n private formScope: FormScopeService,\n private runtimeService: RuntimeService,\n private cdr: ChangeDetectorRef,\n ) {}\n\n public ngOnChanges(changes: SimpleChanges): void {\n if (changes['data']) {\n this.sectionsService.destroy();\n this.showPreview = false;\n this.isNoPreviewAvailable = false;\n this.isPreviewFailed = false;\n\n setTimeout(() => {\n try {\n this.runPreview(this.data as ComponentStoryPreview);\n this.cdr.detectChanges();\n } catch (e: any) {\n console.error(e?.stack ?? e?.error ?? 'Error occured');\n this.showPreview = false;\n this.isPreviewFailed = true;\n this.cdr.detectChanges();\n }\n });\n }\n }\n\n public runPreview(data: ComponentStoryPreview): void {\n const section = data.section && (JSON.parse(data.section) as Section);\n\n if (!section) {\n this.isNoPreviewAvailable = true;\n return;\n }\n\n const model: LineItem = {\n ...(section?.model ?? {\n attributes: [],\n lineItems: [],\n }),\n id: UUID.UUID(),\n } as LineItem;\n\n const componentSection: Section = {\n ...section,\n script: data.componentScript ? btoa(data.componentScript) : '',\n styles: data.componentStyles ? btoa(data.componentStyles) : '',\n template: data.componentTemplate ? btoa(data.componentTemplate) : '',\n properties: data.componentProperties ? JSON.stringify(data.componentProperties) : {},\n id: UUID.UUID(),\n model,\n } as Section;\n\n const storySection: Section = {\n id: UUID.UUID(),\n template: data.template ? btoa(data.template) : defaultTemplate,\n styles: data.styles ? btoa(data.styles) : '',\n script: data.script ? btoa(data.script) : '',\n children: [componentSection],\n model,\n } as Section;\n\n const sections = [storySection, componentSection];\n\n this.form = this.formScope.form = this.runtimeFormService.initForm(sections, model);\n\n this.createRuntimeContext(componentSection);\n this.sectionsService.compileModule(sections);\n\n this.section = storySection;\n this.showPreview = true;\n }\n\n public createRuntimeContext(section: Section): void {\n const runtimeModel = RuntimeModel.create([], {});\n const rootType = Array.from(runtimeModel.components.values()).find(\n c =>\n section.model?.type &&\n runtimeModel.isEquals(c.typeName, section.model.type) &&\n EntityUtil.isPresent(c.productId),\n );\n\n const contextProductId = rootType ? rootType.productId : undefined;\n\n const context: LegacyRuntimeContext = {\n modelId: '',\n runtimeModel,\n runtimeMode: RuntimeMode.TEST,\n productId: contextProductId,\n properties: {},\n } as LegacyRuntimeContext;\n\n this.runtimeService.setRuntimeContext(context);\n }\n}\n","<ng-container *ngIf=\"showPreview\">\n <vl-section-renderer [section]=\"section!\" [form]=\"form\"></vl-section-renderer>\n</ng-container>\n\n<span class=\"info\" *ngIf=\"isNoPreviewAvailable\">No preview available</span>\n<span class=\"info error\" *ngIf=\"isPreviewFailed\">Preview has failed</span>\n","import { EntityUtil, Section } from '@veloceapps/core';\n\nexport const getSectionTree = (src: Section[]): Section[] => {\n const sections = EntityUtil.clone(src);\n\n const sectionIdMap = new Map<string, Section>();\n\n sections.forEach(section => sectionIdMap.set(section.id, section));\n\n const sectionTree: Section[] = [];\n sections.forEach(section => {\n if (section.parentId) {\n const parentSection = sectionIdMap.get(section.parentId);\n if (parentSection) {\n const sectionFromMap = sectionIdMap.get(section.id);\n if (sectionFromMap) {\n parentSection.addChild(sectionFromMap);\n }\n }\n } else {\n const s = sectionIdMap.get(section.id);\n if (s) {\n sectionTree.push(s);\n }\n }\n });\n\n return sectionTree;\n};\n","import { HttpErrorResponse } from '@angular/common/http';\nimport { ChangeDetectorRef, Component, EventEmitter, Inject, OnDestroy, OnInit, Output } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport {\n Attribute,\n ChargeItem,\n EntityUtil,\n LineItem,\n OrderByPipe,\n PriceAdjustment,\n SalesforceIdUtils,\n SearchFilterPipe,\n Section,\n SectionPath,\n UITab,\n UUID,\n} from '@veloceapps/core';\nimport { ContextService } from '@veloceapps/sdk/core';\nimport { Dictionary } from 'lodash';\nimport { MessageService } from 'primeng/api';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { CollapsibleStateService } from '../../services/collapsible-state.service';\nimport { FormScopeService } from '../../services/form-scope.service';\nimport { RuntimeFormService } from '../../services/runtime-form.service';\nimport { RuntimeService } from '../../services/runtime.service';\nimport { SectionHelperService } from '../../services/section-helper.service';\nimport { SectionsService } from '../../services/section.service';\nimport { LegacyRuntimeContext, SolutionReadyAware, UpdateData } from '../../types';\nimport { BoundDataType } from '../../types/bound-data.types';\nimport { LineItemUtil } from '../../utils/line-item.util';\nimport { getSectionTree } from '../../utils/section.utils';\nimport { SectionsBinderHelper } from '../../utils/sections-binder.helper';\n\n@Component({\n selector: 'vl-runtime',\n // moduleId: module.id,\n templateUrl: 'runtime.component.html',\n styleUrls: ['./runtime-legacy-styles.scss', 'runtime.component.scss'],\n providers: [FormScopeService, CollapsibleStateService, OrderByPipe, SearchFilterPipe],\n})\nexport class RuntimeComponent implements OnInit, OnDestroy, SolutionReadyAware {\n public readonly messageBucketId = 'ui.runtime';\n\n public sortedSections: Section[] = [];\n public staticSections: Section[] = [];\n\n public runtimeContext!: LegacyRuntimeContext;\n public solutionLineItem!: LineItem;\n public form: FormGroup = new FormGroup({});\n\n public activeUITab?: UITab;\n\n public solutionIsReady = false;\n\n private readonly unsubscribe = new Subject<void>();\n\n @Output() private readonly solutionUpdated = new EventEmitter<any>();\n\n constructor(\n private sectionsService: SectionsService,\n private formScope: FormScopeService,\n private collapsibleState: CollapsibleStateService,\n private formService: RuntimeFormService,\n private runtimeService: RuntimeService,\n @Inject(MessageService) private messageService: MessageService,\n private contextService: ContextService,\n private orderByPipe: OrderByPipe,\n private searchFilterPipe: SearchFilterPipe,\n private cdr: ChangeDetectorRef,\n ) {}\n\n private adjustPrice(\n valueOption: string | undefined,\n section: Section,\n solutionLineItem: LineItem,\n patch: Dictionary<PriceAdjustment>,\n ): void {\n const parentLineItem = section.model && LineItemUtil.findById(section.model.id, [solutionLineItem]);\n\n if (!parentLineItem) {\n return;\n }\n\n parentLineItem.lineItems = parentLineItem.lineItems.map(lineItem => {\n const { productId, chargeItems } = lineItem;\n\n if (productId !== valueOption) {\n return lineItem;\n }\n\n const chargeItem = chargeItems.shift();\n const updatedChargeItem = {\n ...chargeItem,\n ...patch,\n } as ChargeItem;\n\n return {\n ...lineItem,\n chargeItems: [updatedChargeItem, ...chargeItems],\n };\n });\n\n this.updateRuntime(solutionLineItem);\n }\n\n public ngOnInit(): void {\n this.formScope.formSubmitEvent.pipe(takeUntil(this.unsubscribe)).subscribe((e: UpdateData) => {\n try {\n this.form.updateValueAndValidity();\n const solutionLineItem = EntityUtil.clone(this.solutionLineItem);\n\n const section = this.findSection(e.id);\n\n if (!section) {\n throw 'Section not found';\n }\n const entityType = section.boundData.entityType;\n\n if (entityType === BoundDataType[BoundDataType.PORT] || entityType === BoundDataType[BoundDataType.TYPE]) {\n if (e.action === 'patch' && EntityUtil.isPresent(e.valueOption)) {\n const valueOption: any = e['valueOption'];\n\n if (!section.model?.parentId) {\n this.collapsibleState.clearState(section.id);\n this.updateRuntime(valueOption);\n } else {\n const parentLineItem = LineItemUtil.findById(section.model.parentId, [solutionLineItem]);\n\n if (parentLineItem) {\n const indx = parentLineItem.lineItems.findIndex(item => item.id === section.model?.id);\n\n parentLineItem.lineItems.splice(indx, 1, valueOption);\n\n this.collapsibleState.clearState(section.id);\n this.updateRuntime(solutionLineItem);\n }\n }\n }\n }\n\n if (entityType === BoundDataType[BoundDataType.PORT]) {\n if (e.action === 'upsert') {\n const parentLineItem = section.model && LineItemUtil.findById(section.model.id, [solutionLineItem]);\n\n if (parentLineItem) {\n parentLineItem.lineItems.forEach(i => {\n if (\n e.selectedValueOptions &&\n e.selectedValueOptions.findIndex(v => v.toLowerCase() === i.type.toLowerCase()) < 0\n ) {\n this.updateCardinalityVariable(parentLineItem, i, 0);\n }\n });\n const lineItems = parentLineItem?.lineItems.filter(\n i =>\n e.selectedValueOptions &&\n e.selectedValueOptions.findIndex(v => v.toLowerCase() === i.type.toLowerCase()) > -1,\n );\n e.selectedValueOptions?.forEach(v => {\n if (lineItems?.findIndex(item => item.type.toLowerCase() === v.toLowerCase()) === -1) {\n const lineItem = this.createLineItem(section, v, parentLineItem);\n this.updateCardinalityVariable(parentLineItem, lineItem);\n lineItems.push(lineItem);\n }\n });\n\n this.updateRuntime(solutionLineItem);\n }\n }\n\n if (e.action === 'create') {\n const parentLineItem = section.model && LineItemUtil.findById(section.model.id, [solutionLineItem]);\n\n if (parentLineItem) {\n const valueOption = e.valueOption;\n const lineItem = this.createLineItem(section, valueOption, parentLineItem);\n parentLineItem.lineItems.push(lineItem);\n this.updateCardinalityVariable(parentLineItem, lineItem);\n\n this.updateRuntime(solutionLineItem);\n }\n }\n\n if (e.action === 'copy') {\n const parentLineItem = section.model && LineItemUtil.findById(section.model.id, [solutionLineItem]);\n\n if (parentLineItem) {\n const valueOption = e.valueOption;\n const lineItemToCopy = parentLineItem.lineItems.find(li => li.id === valueOption);\n if (lineItemToCopy) {\n const lineItem: LineItem = { ...lineItemToCopy, id: '' };\n parentLineItem.lineItems.push(lineItem);\n this.updateCardinalityVariable(parentLineItem, lineItem);\n\n this.updateRuntime(solutionLineItem);\n }\n }\n }\n\n if (e.action === 'update') {\n const parentLineItem = section.model && LineItemUtil.findById(section.model.id, [solutionLineItem]);\n\n if (parentLineItem) {\n //Assuming that radio control is the only control, that 'updates' values\n const previous = section.model?.lineItems.filter(li => li.port && li.port === section.boundData.name)[0];\n\n if (previous) {\n this.updateCardinalityVariable(parentLineItem, previous, 0);\n }\n\n const index = parentLineItem.lineItems.findIndex(li => li.id === previous?.id);\n\n const lineItem: LineItem = {\n id: UUID.UUID(),\n qty: previous?.qty,\n port: previous?.port,\n type: EntityUtil.isPresent(e.valueOption) ? e.valueOption : this.form.controls[e.id].value,\n cfgStatus: 'New',\n parentId: previous?.parentId,\n } as LineItem;\n\n this.updateCardinalityVariable(parentLineItem, lineItem);\n parentLineItem.lineItems[index] = lineItem;\n\n this.updateRuntime(solutionLineItem);\n }\n }\n\n if (e.action === 'remove') {\n const parentLineItem = section.model && LineItemUtil.findById(section.model.id, [solutionLineItem]);\n\n if (\n parentLineItem &&\n SectionsBinderHelper.isRemoveAllowed(parentLineItem, section.boundData.name, section.model?.qty)\n ) {\n const index = parentLineItem.lineItems.findIndex(\n item => item.type.toLowerCase() === e.valueOption?.toLowerCase(),\n );\n if (index > -1) {\n const removed = parentLineItem.lineItems.splice(index, 1)[0];\n this.updateCardinalityVariable(parentLineItem, removed, 0);\n this.updateRuntime(solutionLineItem);\n }\n }\n }\n\n if (e.action === 'qtyUpdate') {\n const typeSection = e.valueOption\n ? SectionHelperService.findSectionForValue(section, e.valueOption)\n : undefined;\n\n const typeLineItem = typeSection?.model && LineItemUtil.findById(typeSection.model.id, [solutionLineItem]);\n if (typeSection && typeLineItem) {\n typeLineItem.qty = +this.form.controls[typeSection.id + 'qty'].value;\n typeLineItem.cfgStatus = 'User';\n this.updateRuntime(solutionLineItem);\n }\n }\n\n if (e.action === 'adjustNetPrice') {\n const { valueOption, options } = e;\n const { amount } = options ?? {};\n\n const priceAdjustment: PriceAdjustment = {\n type: 'OVERRIDE_AMOUNT',\n explanation: 'Manual net price adjustment',\n formula: '',\n amount,\n };\n\n this.adjustPrice(valueOption, section, solutionLineItem, { priceAdjustment });\n }\n\n if (e.action === 'adjustListPrice') {\n const { valueOption, options } = e;\n const { amount } = options ?? {};\n\n const listPriceAdjustment: PriceAdjustment = {\n type: 'OVERRIDE_AMOUNT',\n explanation: 'Manual list price adjustment',\n formula: '',\n amount,\n };\n\n this.adjustPrice(valueOption, section, solutionLineItem, { listPriceAdjustment });\n }\n }\n\n if (entityType === BoundDataType[BoundDataType.TYPE]) {\n if (e.action === 'remove') {\n const parentLineItem =\n section.model?.parentId && LineItemUtil.findById(section.model.parentId, [solutionLineItem]);\n\n if (\n parentLineItem &&\n section.model &&\n section.model.port &&\n SectionsBinderHelper.isRemoveAllowed(parentLineItem, section.model.port, section.model?.qty)\n ) {\n const index = parentLineItem.lineItems.findIndex(item => item.id === section.model?.id);\n if (index > -1) {\n const removed = parentLineItem.lineItems.splice(index, 1)[0];\n this.updateCardinalityVariable(parentLineItem, removed, 0);\n this.collapsibleState.clearState(section.id);\n this.updateRuntime(solutionLineItem);\n }\n }\n }\n\n if (e.action === 'qtyUpdate') {\n const typeLineItem = section.model && LineItemUtil.findById(section.model.id, [solutionLineItem]);\n\n if (typeLineItem) {\n const qty = +this.form.controls[e.id + 'qty'].value;\n if (typeLineItem.parentId) {\n const parentLineItem = LineItemUtil.findById(typeLineItem.parentId, [solutionLineItem]);\n\n if (parentLineItem) {\n this.updateCardinalityVariable(parentLineItem, typeLineItem, qty);\n }\n }\n typeLineItem.qty = qty;\n typeLineItem.cfgStatus = 'User';\n this.updateRuntime(solutionLineItem);\n }\n }\n }\n\n if (entityType === BoundDataType[BoundDataType.ATTRIBUTE]) {\n if (e.action === 'update') {\n const parentLineItem = section.model && LineItemUtil.findById(section.model.id, [solutionLineItem]);\n const attribute = parentLineItem?.attributes.find(\n attr => attr.name.toLowerCase() === section.boundData.name.toLowerCase(),\n );\n\n if (attribute) {\n //Explicitly set value always win\n let value = typeof e.valueOption !== 'undefined' ? e.valueOption : this.form.controls[e.id].value;\n\n if (attribute.type === 'BOOLEAN') {\n value = value ? 1 : 0;\n }\n\n attribute.value = value;\n attribute.cfgStatus = 'User';\n\n this.updateRuntime(solutionLineItem);\n }\n }\n }\n } catch (e) {\n console.log(e);\n this.messageService.add({ key: this.messageBucketId, summary: `Configuration failed ${(e as any)?.message}` });\n }\n });\n\n this.runtimeService.onSolutionReadyEvent\n .pipe(takeUntil(this.unsubscribe))\n .subscribe(lineItem => this.onSolutionReady(lineItem));\n\n this.runtimeService.onSolutionUpdatedEvent\n .pipe(takeUntil(this.unsubscribe))\n .subscribe((data: LineItem | HttpErrorResponse) => {\n if (!(data instanceof HttpErrorResponse)) {\n return this.handleSolutionUpdate(data);\n }\n\n this.handleSolutionFailedUpdate(data);\n });\n\n this.runtimeService.onUIRefreshEvent.pipe(takeUntil(this.unsubscribe)).subscribe(() => {\n const { uiDefinition } = this.runtimeService.getRuntimeContext() ?? {};\n this.runtimeContext.uiDefinition = uiDefinition as any;\n this.formScope.scriptSessionScope = {};\n this.startRuntime();\n });\n }\n\n public onSolutionReady(lineItem: LineItem): void {\n const context = this.runtimeService.getRuntimeContext() as LegacyRuntimeContext;\n const configurationContext = this.contextService.resolve();\n\n const mergeContext: LegacyRuntimeContext = {\n ...context,\n properties: {\n ...context.properties,\n ...configurationContext.properties,\n },\n };\n\n const accountId = mergeContext.properties?.AccountId;\n if (accountId && accountId.length === 15) {\n this.runtimeContext = {\n ...mergeContext,\n properties: {\n ...mergeContext.properties,\n AccountId: SalesforceIdUtils.generateId18FromId15(accountId),\n },\n } as any;\n } else {\n this.runtimeContext = mergeContext as any;\n }\n\n this.solutionLineItem = lineItem;\n this.runtimeService.setRuntimeContext(this.runtimeContext);\n\n this.startRuntime();\n }\n\n private handleSolutionUpdate(updatedLineItem: LineItem): void {\n this.solutionLineItem = updatedLineItem;\n this.processSolution(true);\n this.runtimeService.solutionProcessed(this.solutionLineItem);\n this.cdr.detectChanges();\n }\n\n private handleSolutionFailedUpdate(error: HttpErrorResponse): void {\n const hasErrorMessage = EntityUtil.isPresent(error.error) && EntityUtil.isPresent(error.error.message);\n const message = hasErrorMessage ? error.error.message : 'Configuration failed';\n const { isHandlingConfigurationErrors } = this.runtimeContext.uiDefinition ?? {};\n\n if (isHandlingConfigurationErrors) {\n this.messageService.add({ key: this.messageBucketId, summary: message });\n }\n\n this.solutionLineItem = {\n ...this.solutionLineItem,\n messages: [...this.solutionLineItem.messages, `E:${message}`],\n };\n this.processSolution(true, true);\n this.runtimeService.solutionProcessed(this.solutionLineItem);\n\n this.cdr.detectChanges();\n }\n\n private updateCardinalityVariable(parent: LineItem, updated: LineItem, newQuantity?: number): void {\n const portDomain = updated.port ? parent.portDomains[updated.port] : undefined;\n const domainType = portDomain?.domainTypes.find(t => t.name === updated.type);\n const cardinality = domainType?.cardinality ?? 0;\n\n let qty;\n if (!Number.isFinite(domainType?.cardinality)) {\n qty = Number.isFinite(newQuantity) ? newQuantity : updated.qty;\n } else {\n qty = EntityUtil.isPresent(newQuantity)\n ? cardinality - updated.qty + (newQuantity as number)\n : cardinality + updated.qty;\n }\n\n const cardinalityName = '#CV-' + updated.type + '@' + updated.port;\n\n let cardinalityVariable = parent.attributes.find(a => a.name === cardinalityName);\n if (!cardinalityVariable) {\n cardinalityVariable = {\n id: UUID.UUID(),\n name: cardinalityName,\n } as Attribute;\n parent.attributes.push(cardinalityVariable);\n }\n cardinalityVariable.value = qty;\n cardinalityVariable.cfgStatus = 'User';\n }\n\n private createLineItem(section: Section, valueOption?: string, parentLineItem?: LineItem): LineItem {\n return {\n qty: +this.form.controls[section.id + 'qty'].value,\n port: section.boundData.name,\n type: EntityUtil.isPresent(valueOption) ? valueOption : this.form.controls[section.id].value,\n cfgStatus: 'New',\n parentId: parentLineItem?.id,\n } as LineItem;\n }\n\n public ngOnDestroy(): void {\n this.unsubscribe.next();\n\n this.sectionsService.destroy();\n }\n\n private startRuntime(): void {\n const uiDefinition = this.runtimeContext.uiDefinition;\n\n const defaultTab = uiDefinition?.tabs?.find(tab => tab.isDefault);\n this.activeUITab = EntityUtil.isPresent(defaultTab) ? defaultTab : uiDefinition?.tabs?.[0];\n\n this.sectionsService.compileModule(uiDefinition?.sections ?? [], uiDefinition?.isViewEncapsulated);\n\n this.processSolution();\n\n this.solutionIsReady = true;\n\n this.cdr.detectChanges();\n }\n\n private updateRuntime(lineItem: LineItem): void {\n this.solutionUpdated.emit(lineItem);\n }\n\n public addToCart(): void {\n const lineItem = EntityUtil.clone(this.solutionLineItem);\n\n this.runtimeService.stopRuntime(lineItem);\n }\n\n public processSolution(isUpdate?: boolean, isError?: boolean): void {\n //1. Bind sections to solution\n let sections = EntityUtil.clone(this.runtimeContext.uiDefinition?.sections) ?? [];\n const sourceSections = EntityUtil.clone(this.runtimeContext.uiDefinition?.sections) ?? [];\n this.updateLineItemsSectionPath(this.solutionLineItem);\n SectionsBinderHelper.setLineItemsPath(\n this.runtimeContext.runtimeModel,\n this.solutionLineItem,\n sections,\n sourceSections,\n (sec: any) => !sec.parentId && sec.boundData,\n this.runtimeContext.uiDefinition?.pricingEnabled ?? false,\n );\n\n sections = sections.filter(s => s.model && s.template);\n\n //2. Init form\n this.form = this.formService.initForm(sections, this.solutionLineItem);\n this.formScope.form = this.form;\n\n this.sortedSections = this.filterAndSort(getSectionTree(sections.filter(s => !s.isStatic)));\n\n if (!isUpdate) {\n this.staticSections = this.filterAndSort(getSectionTree(sections.filter(s => s.isStatic)));\n }\n\n if (!isError) {\n this.messageService.clear(this.messageBucketId);\n }\n }\n\n public hideModal(): void {\n this.runtimeService.cancelRuntime();\n }\n\n private updateLineItemsSectionPath(lineItem: LineItem, parent?: SectionPath): void {\n const path: SectionPath = {\n types: parent ? parent.types.concat([lineItem.type]) : [lineItem.type],\n ports: parent ? parent.ports.concat(lineItem.port ? [lineItem.port] : []) : [],\n } as SectionPath;\n\n lineItem.path = path;\n\n for (const child of lineItem.lineItems) {\n this.updateLineItemsSectionPath(child, lineItem.path);\n }\n }\n\n private filterAndSort(sections: Section[]): Section[] {\n const filtered = this.searchFilterPipe.transform(sections, this.activeUITab?.id, 'page');\n const ordered = this.orderByPipe.transform(filtered, 'order', 'asc');\n\n return ordered;\n }\n\n private findSection(id: string): Section | undefined {\n return EntityUtil.findByFieldHierarchically('id', id, [...this.sortedSections, ...this.staticSections], 'children');\n }\n}\n","<vl-loader label=\"Loading UI\" *ngIf=\"!solutionIsReady; else content\"></vl-loader>\n\n<ng-template #content>\n <div\n class=\"sidebar-tabs\"\n [ngClass]=\"{ hidden: !runtimeContext?.uiDefinition?.defaultPanels }\"\n #uiTabs=\"sidebarTabs\"\n sidebarTabs=\"{{ activeUITab?.id }}\"\n id=\"vl-default-sidebar-tabs\"\n >\n <ul>\n <li\n *ngFor=\"let tab of runtimeContext?.uiDefinition?.tabs | orderBy: 'order':'asc'\"\n [ngClass]=\"{ active: uiTabs.activeTab === tab.id }\"\n (click)=\"uiTabs.switchTab(tab.id)\"\n >\n <a href=\"javascript:void(0);\">{{ tab.name }}</a>\n </li>\n </ul>\n </div>\n\n <div class=\"sections-wrapper\">\n <form role=\"form\" name=\"form\" class=\"form-horizontal\" [formGroup]=\"form\" novalidate autocomplete=\"off\">\n <ng-container *ngFor=\"let section of staticSections; let i = index\">\n <ng-container *ngIf=\"section.model && section.template && !section.hidden\">\n <vl-section-renderer [section]=\"section\" [form]=\"form\"></vl-section-renderer>\n </ng-container>\n </ng-container>\n\n <ng-container *ngFor=\"let section of sortedSections; let i = index\">\n <ng-container *ngIf=\"section.model && section.template && !section.hidden\">\n <vl-section-renderer [section]=\"section\" [form]=\"form\"></vl-section-renderer>\n </ng-container>\n </ng-container>\n </form>\n\n <div\n class=\"modal-footer\"\n *ngIf=\"runtimeContext?.runtimeMode === 1\"\n id=\"vl-runtime-default-footer\"\n [ngClass]=\"{ hidden: !runtimeContext?.uiDefinition?.defaultPanels }\"\n >\n <div class=\"col-md-12 input-form-input\">\n <a href=\"javascript:void(0);\" class=\"btn btn-default\" (click)=\"form.valid && addToCart()\" id=\"add-to-cart-btn\"\n >Add to cart</a\n >\n <a href=\"javascript:void(0);\" class=\"btn btn-link\" (click)=\"hideModal()\" id=\"cancel-btn\">Cancel</a>\n </div>\n </div>\n </div>\n</ng-template>\n","import { ChangeDetectionStrategy, Component, Input, OnDestroy, OnInit } from '@angular/core';\nimport { ConfigurationApiService } from '@veloceapps/api';\nimport {\n ConfigurationContextMode,\n EntityUtil,\n LegacyUIDefinition,\n LineItem,\n ProductModelAttribute,\n ProductModelsContainer,\n RuntimeModel,\n SectionPathUtil,\n} from '@veloceapps/core';\nimport { ContextService, RuntimeMode } from '@veloceapps/sdk/core';\nimport { Dictionary } from 'lodash';\nimport { Subject, combineLatest } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { ProductModelCacheService } from '../../services/product-model-cache.service';\nimport { RuntimeService } from '../../services/runtime.service';\nimport { LegacyRuntimeContext } from '../../types';\n\n@Component({\n selector: 'vl-runtime-preview',\n templateUrl: 'runtime-preview.component.html',\n styleUrls: ['runtime-preview.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class RuntimePreviewComponent implements OnInit, OnDestroy {\n @Input() public modelId?: string;\n @Input() public set uiDefinition(value: LegacyUIDefinition) {\n this._uiDefinition = value;\n this.initDefinition(value);\n }\n\n private _uiDefinition?: LegacyUIDefinition;\n private initialisedUiDefinition?: LegacyUIDefinition;\n private productModelContainer?: ProductModelsContainer;\n\n private destroy$ = new Subject<void>();\n\n constructor(\n private runtimeService: RuntimeService,\n private modelCacheService: ProductModelCacheService,\n private configurationApiService: ConfigurationApiService,\n private contextService: ContextService,\n ) {}\n\n public ngOnInit(): void {\n if (!this.modelId) {\n return;\n }\n\n this.modelCacheService\n .getProductModel(this.modelId)\n .pipe(takeUntil(this.destroy$))\n .subscribe(container => {\n this.productModelContainer = container;\n\n if (this._uiDefinition) {\n this.initDefinition(this._uiDefinition);\n }\n });\n }\n\n public ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n public initDefinition(uiDefinition: LegacyUIDefinition): void {\n if (!this.productModelContainer) {\n return;\n }\n\n const initialisedUiDefinition = EntityUtil.clone(uiDefinition);\n\n const externals: ProductModelAttribute[] = this.productModelContainer.main.externals;\n if (externals) {\n initialisedUiDefinition.externals = externals.reduce<Dictionary<string>>((trunk, variable) => {\n return {\n ...trunk,\n [variable.name]: initialisedUiDefinition.externals?.[variable.name] ?? '',\n };\n }, {});\n } else {\n delete initialisedUiDefinition.externals;\n }\n\n this.initialisedUiDefinition = initialisedUiDefinition;\n\n this.launchRuntime();\n }\n\n public onSolutionUpdated(lineItem: LineItem): void {\n this.runtimeService.updateRuntime({ configurableRamp: lineItem });\n }\n\n private launchRuntime(): void {\n if (!this.modelId || !this.initialisedUiDefinition) {\n return;\n }\n\n SectionPathUtil.updateSectionsPath(this.initialisedUiDefinition.sections);\n\n const uiDefinition = EntityUtil.clone(this.initialisedUiDefinition);\n\n combineLatest([\n this.configurationApiService.getRuntimeDataByModelId(this.modelId),\n this.contextService.create('TestId', ConfigurationContextMode.TEST),\n ]).subscribe(([runtimeData]) => {\n const runtimeModel = RuntimeModel.create(runtimeData.types, runtimeData.products);\n const rootType = Array.from(runtimeModel.components.values()).find(\n c =>\n uiDefinition.rootType &&\n runtimeModel.isEquals(c.typeName, uiDefinition.rootType) &&\n EntityUtil.isPresent(c.productId),\n );\n\n if (rootType?.typeName) {\n uiDefinition.rootType = rootType.typeName;\n }\n\n const contextProductId = rootType ? rootType.productId : undefined;\n\n const context: LegacyRuntimeContext = {\n modelId: this.modelId ?? '',\n uiDefinition: uiDefinition,\n runtimeModel,\n runtimeMode: RuntimeMode.TEST,\n productId: contextProductId,\n properties: uiDefinition.externals,\n };\n\n this.runtimeService.startRuntime(context, {});\n });\n }\n}\n","<vl-runtime (solutionUpdated)=\"onSolutionUpdated($event)\"></vl-runtime>\n","import { CommonModule, DatePipe } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { ApiModule } from '@veloceapps/api';\nimport { LoaderModule } from '@veloceapps/components';\nimport { CoreModule } from '@veloceapps/core';\nimport { SdkCoreModule } from '@veloceapps/sdk/core';\nimport { DialogService } from 'primeng/dynamicdialog';\nimport { ComponentPreviewComponent } from './components';\nimport { SectionRendererComponent } from './components/section-renderer/section-renderer.component';\nimport { RuntimePreviewComponent } from './components/ui-runtime-preview/runtime-preview.component';\nimport { RuntimeComponent } from './components/ui-runtime/runtime.component';\nimport { ShoppingCartService } from './services/cart.service';\nimport { ConfigurationService } from './services/configuration.service';\nimport { CurrentStateService } from './services/current-state.service';\nimport { ProductModelCacheService } from './services/product-model-cache.service';\nimport { RuntimeContextService } from './services/runtime-context.service';\nimport { RuntimeFormService } from './services/runtime-form.service';\nimport { RuntimeService } from './services/runtime.service';\nimport { SectionStoreService } from './services/section-store.service';\nimport { SectionsService } from './services/section.service';\n\n@NgModule({\n declarations: [RuntimeComponent, RuntimePreviewComponent, SectionRendererComponent, ComponentPreviewComponent],\n providers: [\n ShoppingCartService,\n RuntimeService,\n ConfigurationService,\n RuntimeContextService,\n RuntimeFormService,\n CurrentStateService,\n ProductModelCacheService,\n DatePipe,\n SectionsService,\n SectionStoreService,\n DialogService,\n ],\n imports: [CommonModule, FormsModule, ReactiveFormsModule, CoreModule, ApiModule, LoaderModule, SdkCoreModule],\n exports: [\n FormsModule,\n ReactiveFormsModule,\n RuntimeComponent,\n RuntimePreviewComponent,\n SectionRendererComponent,\n ComponentPreviewComponent,\n ],\n})\nexport class RuntimeModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.ConfigurationService","i3","i2","i1.SectionScopeService","i2.SectionStoreService","i2.FormScopeService","i3.CollapsibleStateService","i4","i5.ExecutionSectionRendererComponent","i1.FormScopeService","i2.SectionScopeService","i1","i5.MultiselectComponent","i5","i2.CollapsibleStateService","i3.SectionScopeService","i6","i3.ConfigurationService","i2.RuntimeService","SHA1","i4.RuntimeService","i5.ShoppingCartService","i7.CurrentStateService","ExperimentalScrollingModule","i1.SectionStoreService","i1.SectionsService","i2.RuntimeFormService","i3.FormScopeService","i6.SectionRendererComponent","i8","i9","i11.SectionRendererComponent","i1.RuntimeService","i2.ProductModelCacheService","i5.RuntimeComponent"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAIa,uBAAuB,CAAA;AAMlC,IAAA,WAAA,GAAA;AAJQ,QAAA,IAAA,CAAA,kBAAkB,GAAiC,EAAE,CAAC;AAEtD,QAAA,IAAA,CAAA,sBAAsB,GAAG,IAAI,OAAO,EAAO,CAAC;QAGlD,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,sBAAsB,CAAC,YAAY,EAAE,CAAC;KACxE;IAEM,cAAc,CAAC,SAAiB,EAAE,QAAkB,EAAA;AACzD,QAAA,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC;QAEzE,IAAI,CAAC,QAAQ,EAAE;AACb,YAAA,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AACnF,SAAA;KACF;AAEM,IAAA,QAAQ,CAAC,SAAiB,EAAA;AAC/B,QAAA,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC;KAC3C;AAEM,IAAA,MAAM,CAAC,SAAiB,EAAA;AAC7B,QAAA,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC;KAC5C;AAEM,IAAA,UAAU,CAAC,SAAiB,EAAA;AACjC,QAAA,OAAO,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC;KAC3C;AAEM,IAAA,kBAAkB,CAAC,SAAiB,EAAA;AACzC,QAAA,OAAO,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC;KAC3C;;oHAhCU,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;wHAAvB,uBAAuB,EAAA,CAAA,CAAA;2FAAvB,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBADnC,UAAU;;;MCDE,cAAc,CAAA;AAIzB,IAAA,WAAA,GAAA;AACE,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,GAAG,EAAE,CAAC;AACvB,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,GAAG,EAAE,CAAC;KACxB;AAEM,IAAA,MAAM,CAAC,QAAgB,EAAA;QAC5B,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AAE5C,QAAA,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;KACxC;IAEM,YAAY,CAAC,QAAgB,EAAE,SAAiB,EAAA;QACrD,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AAE5C,QAAA,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAA,UAAU,KAAV,IAAA,IAAA,UAAU,KAAV,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,UAAU,CAAE,SAAS,CAAC,OAAO,IAAI,OAAO,KAAK,SAAS,CAAC,MAAK,CAAC,CAAC,CAAC;KAC1G;IAEM,UAAU,CAAC,QAAgB,EAAE,SAAiB,EAAA;QACnD,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AAE5C,QAAA,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE;YACrC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;AACvC,SAAA;aAAM,IAAI,CAAA,UAAU,KAAV,IAAA,IAAA,UAAU,uBAAV,UAAU,CAAE,SAAS,CAAC,OAAO,IAAI,OAAO,KAAK,SAAS,CAAC,MAAK,CAAC,CAAC,EAAE;AACzE,YAAA,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AAC5B,SAAA;KACF;IAEM,UAAU,CAAC,QAAgB,EAAE,SAAiB,EAAA;QACnD,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAE5C,IAAI,CAAC,UAAU,EAAE;YACf,OAAO;AACR,SAAA;AAED,QAAA,MAAM,KAAK,GAAG,UAAU,aAAV,UAAU,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAV,UAAU,CAAE,SAAS,CAAC,OAAO,IAAI,OAAO,KAAK,SAAS,CAAC,CAAC;AAEtE,QAAA,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE;AAChB,YAAA,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;;AAG5B,YAAA,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;AACzB,gBAAA,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AAC7B,aAAA;AACF,SAAA;KACF;AAEM,IAAA,kBAAkB,CAAC,QAAgB,EAAA;QACxC,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;KACjC;AAEM,IAAA,kBAAkB,CAAC,QAAgB,EAAA;QACxC,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;KACjC;IAEM,kBAAkB,CAAC,QAAgB,EAAE,cAAmB,EAAA;QAC7D,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;KAC1C;AAEM,IAAA,qBAAqB,CAAC,QAAgB,EAAA;AAC3C,QAAA,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;KAC7B;AACF;;AC5DD;MACa,gBAAgB,CAAA;AAU3B,IAAA,WAAA,GAAA;AAPO,QAAA,IAAA,CAAA,cAAc,GAAmB,IAAI,cAAc,EAAE,CAAC;AACtD,QAAA,IAAkB,CAAA,kBAAA,GAA6B,EAAE,CAAC;AAEjD,QAAA,IAAA,CAAA,iBAAiB,GAAG,IAAI,OAAO,EAAc,CAAC;QAE9C,IAAA,CAAA,KAAK,GAAG,IAAI,SAAS,CAAC,EAAE,CAAC,CAAC;QAGhC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE,CAAC;KAC9D;AAED,IAAA,IAAW,IAAI,GAAA;QACb,OAAO,IAAI,CAAC,KAAK,CAAC;KACnB;IAED,IAAW,IAAI,CAAC,KAAgB,EAAA;AAC9B,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;KACpB;AAEM,IAAA,iBAAiB,CAAC,KAAiB,EAAA;AACxC,QAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACpC;;6GAxBU,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;iHAAhB,gBAAgB,EAAA,CAAA,CAAA;2FAAhB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAF5B,UAAU;;;ACJX,IAAY,aAIX,CAAA;AAJD,CAAA,UAAY,aAAa,EAAA;IACvB,aAAA,CAAA,aAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAI,CAAA;IACJ,aAAA,CAAA,aAAA,CAAA,WAAA,CAAA,GAAA,CAAA,CAAA,GAAA,WAAS,CAAA;IACT,aAAA,CAAA,aAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAI,CAAA;AACN,CAAC,EAJW,aAAa,KAAb,aAAa,GAIxB,EAAA,CAAA,CAAA;;MCJY,YAAY,CAAA;IAMvB,IAAW,YAAY,CAAC,YAAoB,EAAA;AAC1C,QAAA,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC,WAAW,EAAE,CAAC;KACjD;AAED,IAAA,IAAW,YAAY,GAAA;QACrB,OAAO,IAAI,CAAC,aAAa,CAAC;KAC3B;IAED,IAAW,YAAY,CAAC,YAAoB,EAAA;AAC1C,QAAA,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC,WAAW,EAAE,CAAC;KACjD;AAED,IAAA,IAAW,YAAY,GAAA;AACrB,QAAA,OAAO,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,IAAI,CAAC;KACxC;IAED,IAAW,oBAAoB,CAAC,oBAA4B,EAAA;AAC1D,QAAA,IAAI,CAAC,qBAAqB,GAAG,oBAAoB,CAAC,WAAW,EAAE,CAAC;KACjE;AAED,IAAA,WAAA,CAAY,IAAY,EAAA;AAxBhB,QAAA,IAAa,CAAA,aAAA,GAAG,EAAE,CAAC;AACnB,QAAA,IAAqB,CAAA,qBAAA,GAAG,EAAE,CAAC;AAC3B,QAAA,IAAa,CAAA,aAAA,GAAG,EAAE,CAAC;AAuBzB,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;KAChC;AAEM,IAAA,SAAS,CAAC,WAAwB,EAAA;AACvC,QAAA,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE;AACnD,YAAA,OAAO,KAAK,CAAC;AACd,SAAA;QAED,MAAM,SAAS,GAAG,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;AACjD,QAAA,MAAM,OAAO,GACX,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,aAAa,KAAK,SAAS,IAAI,IAAI,CAAC,qBAAqB,KAAK,SAAS,CAAC;;QAG1G,IAAI,CAAC,OAAO,EAAE;AACZ,YAAA,MAAM,iBAAiB,GAAG,IAAI,CAAC,aAAa,KAAK,WAAW,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;AACxF,YAAA,MAAM,iBAAiB,GAAG,IAAI,CAAC,aAAa;kBACxC,IAAI,CAAC,aAAa,KAAK,WAAW,CAAC,YAAY,CAAC,WAAW,EAAE;kBAC7D,KAAK,CAAC;YACV,MAAM,yBAAyB,GAC7B,IAAI,CAAC,qBAAqB,IAAI,WAAW,CAAC,oBAAoB;AAC5D,kBAAE,WAAW,CAAC,oBAAoB,CAAC,WAAW,EAAE,KAAK,WAAW,CAAC,YAAY,CAAC,WAAW,EAAE;oBACzF,IAAI,CAAC,qBAAqB,KAAK,WAAW,CAAC,YAAY,CAAC,WAAW,EAAE;kBACrE,KAAK,CAAC;AACZ,YAAA,OAAO,iBAAiB,KAAK,iBAAiB,IAAI,yBAAyB,CAAC,CAAC;AAC9E,SAAA;AAED,QAAA,OAAO,OAAO,CAAC;KAChB;AACF,CAAA;MAEY,YAAY,CAAA;IAChB,OAAO,kBAAkB,CAAC,QAAkB,EAAA;;QACjD,MAAM,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;AAExC,QAAA,IAAI,IAAI,EAAE;AACR,YAAA,IAAI,KAAK,GAAG,CAAC,IAAI,CAAC,CAAC;AAEnB,YAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACrC,gBAAA,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBACtB,IAAI,CAAC,SAAS,GAAG,CAAC,CAAA,EAAA,GAAA,IAAI,CAAC,SAAS,MAAI,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAA,EAAE,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC;gBAC/E,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AACtC,aAAA;AACF,SAAA;AAED,QAAA,OAAO,IAAI,CAAC;KACb;IAEM,OAAO,mBAAmB,CAAC,YAAsB,EAAA;AACtD,QAAA,MAAM,SAAS,GAAG,CAAC,IAAc,KAAU;YACzC,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,QAAQ,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;YACjD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,GAAG,QAAQ,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACjE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,GAAG,QAAQ,GAAG,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;AACzE,YAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,GAAG,QAAQ,GAAG,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC,CAAC;AAChG,YAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,GAAG,QAAQ,GAAG,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC,CAAC;AACpF,YAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,GAAG,QAAQ,GAAG,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC,CAAC;AACtF,SAAC,CAAC;AAEF,QAAA,MAAM,UAAU,GAAG,CAAC,QAAkB,EAAE,UAAe,KAAU;YAC/D,IAAI,QAAQ,CAAC,SAAS,IAAI,QAAQ,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;AACvD,gBAAA,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,aAAa,IAAG;oBACzC,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC;oBACxC,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC,CAAC;AACtD,iBAAC,CAAC,CAAC;AACJ,aAAA;AACH,SAAC,CAAC;QAEF,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC;;QAGtC,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC,CAAC;KACnD;AAEM,IAAA,OAAO,iBAAiB,CAAC,MAAgB,EAAE,UAAqB,EAAA;;AACrE,QAAA,MAAM,MAAM,GAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EACP,MAAM,CACV,CAAC;AAEF,QAAA,IAAI,UAAU,EAAE;AACd,YAAA,MAAM,CAAC,WAAW,GAAG,CAAA,MAAA,UAAU,CAAC,UAAU,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAG,aAAa,CAAC,KAAI,UAAU,CAAC,WAAW,CAAC;AACtF,YAAA,MAAM,CAAC,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC;AAC9B,YAAA,MAAM,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;AAClC,YAAA,MAAM,CAAC,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC;AACpC,YAAA,MAAM,CAAC,mBAAmB,GAAG,UAAU,CAAC,mBAAmB,CAAC;AAC5D,YAAA,MAAM,CAAC,SAAS,GAAG,UAAU,CAAC,SAAS,CAAC;AACxC,YAAA,MAAM,CAAC,UAAU,GAAG,UAAU,CAAC,UAAU,CAAC;AAC1C,YAAA,MAAM,CAAC,gBAAgB,GAAG,UAAU,CAAC,gBAAgB,CAAC;AACtD,YAAA,MAAM,CAAC,aAAa,GAAG,UAAU,CAAC,aAAa,CAAC;AAChD,YAAA,MAAM,CAAC,SAAS,GAAG,UAAU,CAAC,SAAS,CAAC;AACxC,YAAA,MAAM,CAAC,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC;AACpC,YAAA,MAAM,CAAC,UAAU,GAAG,UAAU,CAAC,UAAU,CAAC;AAC1C,YAAA,MAAM,CAAC,cAAc,GAAG,UAAU,CAAC,cAAc,CAAC;AAClD,YAAA,MAAM,CAAC,kBAAkB,GAAG,UAAU,CAAC,kBAAkB,CAAC;AAC1D,YAAA,MAAM,CAAC,cAAc,GAAG,UAAU,CAAC,cAAc,CAAC;AAClD,YAAA,MAAM,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;AAElC,YAAA,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE;AACvB,gBAAA,MAAM,CAAC,WAAW,GAAG,UAAU,CAAC,WAAW,CAAC;AAC7C,aAAA;AACD,YAAA,MAAM,CAAC,gBAAgB,GAAG,EAAE,CAAC;AAC9B,SAAA;QAED,IAAI,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;AACnD,YAAA,MAAM,CAAC,SAAS,GAAG,EAAE,CAAC;YAEtB,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,WAAqB,KAAI;gBACjD,MAAM,QAAQ,GAAG,UAAU,IAAI,UAAU,CAAC,SAAS,IAAI,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,WAAW,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;gBAE/G,MAAM,SAAS,GAAG,YAAY,CAAC,iBAAiB,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;AAExE,gBAAA,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AACnC,aAAC,CAAC,CAAC;AACJ,SAAA;AAED,QAAA,OAAO,MAAM,CAAC;KACf;AAEM,IAAA,OAAO,eAAe,CAAC,QAAkB,EAAE,YAAsB,EAAA;AACtE,QAAA,IAAI,IAAkB,CAAC;AAEvB,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE;YACtB,IAAI,GAAG,IAAI,YAAY,CAAC,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;AAE7C,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC;AAC9B,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC;AAC9B,YAAA,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,IAAI,CAAC;AACvC,SAAA;AAAM,aAAA;;AAEL,YAAA,MAAM,UAAU,GAAG,UAAU,CAAC,yBAAyB,CACrD,IAAI,EACJ,QAAQ,CAAC,QAAQ,EACjB,CAAC,YAAY,CAAC,EACd,WAAW,CACZ,CAAC;YAEF,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,KAAI,UAAU,aAAV,UAAU,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAV,UAAU,CAAE,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAE,CAAA,IAAI,CAAA,CAAC;AAE9E,YAAA,MAAM,UAAU,GAAG,UAAU,IAAI,YAAY,CAAC,eAAe,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;AAExF,YAAA,IAAI,UAAU,EAAE;gBACd,IAAI,GAAG,IAAI,YAAY,CAAC,UAAU,CAAC,IAAI,GAAG,SAAS,GAAG,QAAQ,CAAC,IAAI,GAAG,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;AAE3F,gBAAA,IAAI,CAAC,YAAY,GAAG,UAAU,CAAC,YAAY,GAAG,SAAS,IAAI,QAAQ,CAAC,IAAI,GAAG,GAAG,GAAG,QAAQ,CAAC,CAAC;gBAC3F,IAAI,CAAC,YAAY,GAAG,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC;AACxC,gBAAA,IAAI,CAAC,oBAAoB,GAAG,GAAG,GAAG,QAAQ,CAAC;AAC5C,aAAA;AAAM,iBAAA;AACL,gBAAA,MAAM,oCAAoC,CAAC;AAC5C,aAAA;AACF,SAAA;AAED,QAAA,OAAO,IAAI,CAAC;KACb;AAEM,IAAA,OAAO,QAAQ,CAAC,QAAgB,EAAE,SAAqB,EAAA;AAC5D,QAAA,OAAO,UAAU,CAAC,yBAAyB,CAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;KACrF;AAEM,IAAA,OAAO,oBAAoB,CAAC,KAAa,EAAE,eAAsB,EAAA;QACtE,MAAM,SAAS,GAAG,YAAY,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAChD,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,eAAe,CAAC,OAAO,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC;AACnE,QAAA,OAAO,KAAK,CAAC;KACd;IAEM,OAAO,SAAS,CAAC,KAAa,EAAA;QACnC,IAAI,CAAC,KAAK,EAAE;AACV,YAAA,OAAO,CAAC,CAAC;AACV,SAAA;QACD,IAAI,CAAC,GAAG,GAAG,CAAC;AACZ,QAAA,OAAO,CAAC,CAAC,MAAM,GAAG,KAAK,EAAE;AACvB,YAAA,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;AACb,SAAA;AACD,QAAA,OAAO,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;KACzB;AAEM,IAAA,OAAO,mBAAmB,CAAC,KAAa,EAAE,eAAsB,EAAA;QACrE,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACxC,IAAI,MAAM,GAAa,EAAE,CAAC;QAC1B,eAAe,CAAC,OAAO,CACrB,QAAQ,KAAK,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,qBAAqB,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC,CAC9F,CAAC;AACF,QAAA,OAAO,MAAM,CAAC;KACf;AAEM,IAAA,OAAO,qBAAqB,CAAC,SAAiB,EAAE,QAAa,EAAA;QAClE,MAAM,MAAM,GAAG,EAAE,CAAC;AAClB,QAAA,KAAK,IAAI,CAAC,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC,IAAI,QAAQ,CAAC,GAAG,EAAE,CAAC,IAAI,SAAS,EAAE;AAC5D,YAAA,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAChB,SAAA;AACD,QAAA,OAAO,MAAM,CAAC;KACf;AAEM,IAAA,OAAO,mBAAmB,CAAC,YAA0B,EAAE,QAAkB,EAAE,IAAiB,EAAA;AACjG,QAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE;AACxD,YAAA,OAAO,EAAE,CAAC;AACX,SAAA;AACD,QAAA,IAAI,SAAS,GAAG,CAAC,QAAQ,CAAC,CAAC;AAC3B,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC1C,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YACnC,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC/B,YAAA,SAAS,GAAG,YAAY,CAAC,oBAAoB,CAAC,YAAY,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;AAC5F,SAAA;AACD,QAAA,OAAO,SAAS,CAAC;KAClB;IAEM,OAAO,oBAAoB,CAChC,YAA0B,EAC1B,SAAqB,EACrB,QAAgB,EAChB,QAAgB,EAAA;;QAEhB,MAAM,MAAM,GAAG,EAAE,CAAC;AAClB,QAAA,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE;AAChC,YAAA,KAAK,MAAM,SAAS,IAAI,QAAQ,CAAC,SAAS,EAAE;AAC1C,gBAAA,IACE,CAAA,CAAA,EAAA,GAAA,SAAS,CAAC,IAAI,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,WAAW,EAAE,MAAK,QAAQ,CAAC,WAAW,EAAE;oBACxD,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,EAAE,QAAQ,CAAC,EAC/C;AACA,oBAAA,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AACxB,iBAAA;AACF,aAAA;AACF,SAAA;AACD,QAAA,OAAO,MAAM,CAAC;KACf;AAEM,IAAA,OAAO,mBAAmB,CAAC,YAA0B,EAAE,QAAkB,EAAE,QAAgB,EAAA;QAChG,MAAM,MAAM,GAAG,EAAE,CAAC;AAClB,QAAA,IAAI,SAAS,GAAG,CAAC,QAAQ,CAAC,CAAC;AAC3B,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACzC,YAAA,MAAM,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;YAC9B,IAAI,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE;AAClD,gBAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACvB,aAAA;YACD,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;AAClD,SAAA;AAED,QAAA,OAAO,MAAM,CAAC;KACf;AAEM,IAAA,OAAO,oBAAoB,CAAC,KAAe,EAAE,WAAmB,EAAA;AACrE,QAAA,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE;YAC1E,OAAO;AACR,SAAA;QAED,OAAO,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,WAAW,CAAC,WAAW,EAAE,CAAC,CAAC;KACnG;;AAGM,IAAA,OAAO,MAAM,CAAC,OAAY,EAAE,GAAY,EAAA;;QAC7C,OAAO;AACL,YAAA,EAAE,EAAE,IAAI,CAAC,IAAI,EAAE;YACf,IAAI,EAAE,OAAO,CAAC,QAAQ;YACtB,IAAI,EAAE,CAAA,CAAA,EAAA,GAAA,OAAO,CAAC,UAAU,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,WAAW,KAAI,OAAO,CAAC,IAAI;YACrD,WAAW,EAAE,OAAO,CAAC,IAAI;YACzB,SAAS,EAAE,OAAO,CAAC,EAAE;AACrB,YAAA,SAAS,EAAE,MAAM;AACjB,YAAA,UAAU,EAAE,KAAK;YACjB,GAAG,EAAE,GAAG,IAAI,CAAC;SACF,CAAC;KACf;AAEM,IAAA,OAAO,MAAM,CAAC,KAAe,EAAE,UAAsB,EAAA;AAC1D,QAAA,MAAM,KAAK,GAAG,UAAU,CAAC,SAAS,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE,KAAK,KAAK,CAAC,EAAE,CAAC,CAAC;AACjE,QAAA,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE;AACd,YAAA,UAAU,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC;AAC3B,SAAA;AAAM,aAAA;AACL,YAAA,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACxB,SAAA;KACF;AAEM,IAAA,OAAO,gBAAgB,CAAC,CAAW,EAAE,CAAW,EAAA;QACrD,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC;QACjD,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC;AACjD,QAAA,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE;YACtB,OAAO,YAAY,CAAC,kBAAkB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC9C,SAAA;QACD,IAAI,CAAC,MAAM,EAAE;AACX,YAAA,OAAO,CAAC,CAAC;AACV,SAAA;aAAM,IAAI,CAAC,MAAM,EAAE;YAClB,OAAO,CAAC,CAAC,CAAC;AACX,SAAA;AACD,QAAA,MAAM,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;QAC/B,IAAI,MAAM,KAAK,CAAC,EAAE;YAChB,OAAO,YAAY,CAAC,kBAAkB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC9C,SAAA;AACD,QAAA,OAAO,MAAM,CAAC;KACf;IAEM,OAAO,IAAI,CAAC,SAAqB,EAAA;AACtC,QAAA,IAAI,SAAS,EAAE;AACb,YAAA,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,YAAY,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAC9D,YAAA,SAAS,CAAC,OAAO,CAAC,CAAC,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;AACxD,SAAA;KACF;AAEO,IAAA,OAAO,kBAAkB,CAAC,CAAW,EAAE,CAAW,EAAA;;QACxD,IAAI,CAAC,CAAC,WAAW,EAAE;AACjB,YAAA,OAAO,CAAC,CAAA,EAAA,GAAA,CAAC,CAAC,WAAW,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,EAAE,EAAE,aAAa,CAAC,MAAA,CAAC,CAAC,WAAW,MAAI,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAA,EAAE,CAAC,CAAC;AACjE,SAAA;aAAM,IAAI,CAAC,CAAC,WAAW,EAAE;AACxB,YAAA,OAAO,CAAC,CAAC;AACV,SAAA;AACD,QAAA,OAAO,CAAC,CAAC;KACV;AACF;;MCvUY,oBAAoB,CAAA;AACxB,IAAA,OAAO,gBAAgB,CAC5B,YAA0B,EAC1B,YAAsB,EACtB,QAAmB,EACnB,cAAyB,EACzB,QAAa,EACb,cAAuB,EAAA;QAEvB,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AAE3C,QAAA,QAAQ,CAAC,OAAO,CAAC,OAAO,IAAG;AACzB,YAAA,MAAM,IAAI,GAAgB,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC;AACjD,YAAA,IAAI,cAA0B,CAAC;YAC/B,IAAI,IAAI,CAAC,QAAQ,EAAE;AACjB,gBAAA,cAAc,GAAG,YAAY,CAAC,mBAAmB,CAAC,YAAY,EAAE,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9F,aAAA;AAAM,iBAAA;gBACL,MAAM,SAAS,GAAG,YAAY,CAAC,IAAI,GAAG,eAAe,CAAC,GAAG,CAAC,YAAY,EAAE,IAAI,EAAE,YAAY,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC;gBAC7G,IAAI,CAAC,SAAS,EAAE;AACd,oBAAA,OAAO,EAAE,CAAC;AACX,iBAAA;gBACD,cAAc,GAAG,YAAY,CAAC,mBAAmB,CAAC,YAAY,EAAE,YAAY,EAAE,SAAS,CAAC,CAAC;AAC1F,aAAA;AAED,YAAA,IAAI,OAAO,CAAC,SAAS,CAAC,UAAU,KAAK,aAAa,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE;AACtE,gBAAA,oBAAoB,CAAC,qBAAqB,CACxC,YAAY,EACZ,cAAc,EACd,OAAO,EACP,QAAQ,EACR,cAAc,EACd,cAAc,CACf,CAAC;AACH,aAAA;AAAM,iBAAA,IAAI,OAAO,CAAC,SAAS,CAAC,UAAU,KAAK,aAAa,CAAC,aAAa,CAAC,SAAS,CAAC,EAAE;gBAClF,cAAc,GAAG,cAAc,CAAC,MAAM,CACpC,IAAI,IACF,IAAI,CAAC,UAAU;AACf,oBAAA,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,CACvG,CAAC;AAEF,gBAAA,cAAc,CAAC,OAAO,CAAC,QAAQ,IAAG;AAChC,oBAAA,oBAAoB,CAAC,YAAY,CAAC,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,QAAQ,EAAE,cAAc,CAAC,CAAC;AACjG,iBAAC,CAAC,CAAC;AACJ,aAAA;AAAM,iBAAA,IAAI,OAAO,CAAC,SAAS,CAAC,UAAU,KAAK,aAAa,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE;gBAC7E,cAAc,GAAG,cAAc,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;AAE7G,gBAAA,oBAAoB,CAAC,qBAAqB,CACxC,YAAY,EACZ,cAAc,EACd,OAAO,EACP,QAAQ,EACR,cAAc,EACd,cAAc,CACf,CAAC;AACH,aAAA;YAED,OAAO;AACT,SAAC,CAAC,CAAC;AAEH,QAAA,OAAO,QAAQ,CAAC;KACjB;IAEM,OAAO,YAAY,CAAC,KAAe,EAAE,QAAgB,EAAE,gBAAwB,CAAC,EAAA;QACrF,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;AAEnD,QAAA,OAAO,QAAQ,GAAG,aAAa,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;KACtE;IAEM,OAAO,eAAe,CAAC,KAAe,EAAE,QAAgB,EAAE,mBAA2B,CAAC,EAAA;QAC3F,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;AAEnD,QAAA,OAAO,QAAQ,GAAG,gBAAgB,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;KACzE;AAEM,IAAA,OAAO,aAAa,CAAC,QAAkB,EAAE,QAAgB,EAAA;AAC9D,QAAA,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,QAAQ,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;KACpF;AAEM,IAAA,OAAO,uBAAuB,CAAC,KAAe,EAAE,QAAgB,EAAA;QACrE,MAAM,UAAU,GAAgC,EAAE,CAAC;QAEnD,IAAI,KAAK,IAAI,QAAQ,EAAE;AACrB,YAAA,KAAK,CAAC,SAAS;iBACZ,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,QAAQ,CAAC;iBAClC,OAAO,CAAC,EAAE,IAAG;AACZ,gBAAA,IAAI,QAAQ,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC;gBAE7D,IAAI,UAAU,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE;AAC7C,oBAAA,QAAQ,IAAI,UAAU,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;AACjC,iBAAA;AAED,gBAAA,UAAU,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC;AACjC,aAAC,CAAC,CAAC;AACN,SAAA;AAED,QAAA,OAAO,UAAU,CAAC;KACnB;AAEO,IAAA,OAAO,qBAAqB,CAClC,YAA0B,EAC1B,cAA0B,EAC1B,OAAgB,EAChB,QAAmB,EACnB,cAAyB,EACzB,cAAuB,EAAA;AAEvB,QAAA,cAAc,CAAC,OAAO,CAAC,QAAQ,IAAG;AAChC,YAAA,MAAM,YAAY,GAAG,oBAAoB,CAAC,YAAY,CACpD,OAAO,EACP,QAAQ,EACR,cAAc,EACd,QAAQ,EACR,cAAc,CACf,CAAC;AAEF,YAAA,oBAAoB,CAAC,gBAAgB,CACnC,YAAY,EACZ,QAAQ,EACR,QAAQ,EACR,cAAc,EACd,CAAC,GAAQ,KAAI;gBACX,OAAO,GAAG,CAAC,SAAS,IAAI,GAAG,CAAC,QAAQ,KAAK,YAAY,CAAC,EAAE,CAAC;aAC1D,EACD,cAAc,CACf,CAAC;AACJ,SAAC,CAAC,CAAC;KACJ;IAEO,OAAO,YAAY,CACzB,OAAgB,EAChB,QAAmB,EACnB,cAAyB,EACzB,QAAkB,EAClB,cAAuB,EAAA;QAEvB,MAAM,YAAY,GAAG,OAAO,CAAC,KAAK,GAAG,oBAAoB,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,EAAE,cAAc,CAAC,GAAG,OAAO,CAAC;AAE/G,QAAA,YAAY,CAAC,KAAK,GAAG,QAAQ,CAAC;AAC9B,QAAA,YAAY,CAAC,cAAc,GAAG,cAAc,CAAC;AAE7C,QAAA,OAAO,YAAY,CAAC;KACrB;IAEO,OAAO,OAAO,CAAC,MAAe,EAAE,QAAmB,EAAE,cAAyB,EAAE,MAAgB,EAAA;AACtG,QAAA,MAAM,WAAW,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,OAAO,CAAY,CAAC;QAEtF,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;AAE5C,QAAA,KAAK,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;AACvB,QAAA,KAAK,CAAC,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAC,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC;QAEtD,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;QAC3E,cAAc;AACX,aAAA,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,KAAK,WAAW,CAAC,EAAE,CAAC;AAC1C,aAAA,OAAO,CAAC,CAAC,IAAI,oBAAoB,CAAC,OAAO,CAAC,CAAC,EAAE,QAAQ,EAAE,cAAc,EAAE,KAAK,CAAC,CAAC,CAAC;AAElF,QAAA,OAAO,KAAK,CAAC;KACd;AAEO,IAAA,OAAO,WAAW,CAAC,KAAe,EAAE,QAAgB,EAAA;QAC1D,IAAI,QAAQ,GAAG,CAAC,CAAC;AAEjB,QAAA,KAAK,CAAC,SAAS;aACZ,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,QAAQ,CAAC;aAClC,OAAO,CAAC,EAAE,IAAG;AACZ,YAAA,QAAQ,IAAI,EAAE,CAAC,GAAG,CAAC;AACrB,SAAC,CAAC,CAAC;AAEL,QAAA,OAAO,QAAQ,CAAC;KACjB;AAEO,IAAA,OAAO,UAAU,CAAC,KAAe,EAAE,QAAgB,EAAA;QACzD,OAAO,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC;KAC5C;AAEO,IAAA,OAAO,UAAU,CAAC,KAAe,EAAE,QAAgB,EAAA;QACzD,OAAO,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC;KAC5C;AACF;;MC7KY,kBAAkB,CAAA;AAD/B,IAAA,WAAA,GAAA;AAES,QAAA,IAAQ,CAAA,QAAA,GAAc,EAAE,CAAC;KA4OjC;IAzOQ,QAAQ,CAAC,QAAmB,EAAE,gBAA0B,EAAA;AAC7D,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;AACzB,QAAA,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;AAEzC,QAAA,MAAM,IAAI,GAAG,IAAI,SAAS,CAAC,EAAE,CAAC,CAAC;QAE/B,QAAQ;AACL,aAAA,MAAM,CAAC,OAAO,IAAI,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,SAAS,CAAC;aACzE,OAAO,CAAC,OAAO,IAAG;AACjB,YAAA,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;AACnC,YAAA,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;AACnC,YAAA,IAAI,CAAC,oBAAoB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AAC3C,SAAC,CAAC,CAAC;AAEL,QAAA,OAAO,IAAI,CAAC;KACb;AAEO,IAAA,oBAAoB,CAAC,OAAgB,EAAA;;AAC3C,QAAA,IAAI,KAAK,CAAC;QACV,IAAI,YAAY,GAAa,EAAE,CAAC;QAChC,IAAI,aAAa,GAAuB,EAAE,CAAC;QAC3C,IAAI,UAAU,GAAoB,EAAE,CAAC;AAErC,QAAA,IAAI,gBAAgB,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE;AAC3C,YAAA,MAAM,UAAU,GAAG,CAAA,EAAA,GAAA,OAAO,CAAC,KAAK,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YAEtE,YAAY,GAAG,MAAA,UAAU,KAAA,IAAA,IAAV,UAAU,KAAV,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,UAAU,CAAE,WAAW,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,MAAI,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAA,EAAE,CAAC;YAChE,UAAU;AACR,gBAAA,CAAA,EAAA,GAAA,UAAU,KAAA,IAAA,IAAV,UAAU,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAV,UAAU,CAAE,WAAW,CAAC,MAAM,CAAkB,UAAU,GAAG,EAAE,EAAE,EAAA;oBAC/D,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC;AAC7B,oBAAA,OAAO,GAAG,CAAC;AACb,iBAAC,EAAE,EAAE,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,EAAE,CAAC;YACf,aAAa;AACX,gBAAA,CAAA,EAAA,GAAA,UAAU,KAAA,IAAA,IAAV,UAAU,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAV,UAAU,CAAE,WAAW,CAAC,MAAM,CAAqB,UAAU,GAAG,EAAE,EAAE,EAAA;oBAClE,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC;AAC9B,oBAAA,OAAO,GAAG,CAAC;AACb,iBAAC,EAAE,EAAE,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,EAAE,CAAC;AAEf,YAAA,KAAK,GAAG,CAAA,EAAA,GAAA,OAAO,CAAC,KAAK,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,SAAS,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC;AACrD,SAAA;AAED,QAAA,IAAI,gBAAgB,CAAC,kBAAkB,CAAC,OAAO,CAAC,EAAE;AAChD,YAAA,MAAM,SAAS,GAAG,CAAA,EAAA,GAAA,OAAO,CAAC,KAAK,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,UAAU,CAAC,IAAI,CAC9C,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,EAAE,CACzE,CAAC;AACF,YAAA,IAAI,SAAS,EAAE;AACb,gBAAA,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC;AACzB,aAAA;AAED,YAAA,MAAM,eAAe,GAAG,CAAA,EAAA,GAAA,OAAO,CAAC,KAAK,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,gBAAgB,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AAEhF,YAAA,IAAI,EAAC,SAAS,KAAT,IAAA,IAAA,SAAS,uBAAT,SAAS,CAAE,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAA,IAAI,eAAe,EAAE;gBAChE,MAAM,KAAK,GACT,SAAS,IAAI,SAAS,CAAC,KAAK,IAAI,IAAI;sBAChC,YAAY,CAAC,oBAAoB,CAAC,SAAS,CAAC,KAAK,EAAE,eAAe,CAAC;sBACnE,SAAS,CAAC;AAEhB,gBAAA,IAAI,SAAS,IAAI,SAAS,CAAC,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,GAAG,EAAE;oBACjE,YAAY,GAAG,YAAY,CAAC,mBAAmB,CAAC,SAAS,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC;AACnF,iBAAA;AAAM,qBAAA;oBACL,YAAY,GAAG,eAAe,CAAC;AAChC,iBAAA;AACF,aAAA;AAAM,iBAAA,IAAI,eAAe,EAAE;gBAC1B,YAAY,GAAG,eAAe,CAAC;AAChC,aAAA;AACF,SAAA;AAED,QAAA,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;YAChC,KAAK,GAAG,EAAE,CAAC;AACZ,SAAA;QAED,OAAO,CAAC,YAAY,GAAG;YACrB,KAAK;YACL,YAAY;YACZ,aAAa;YACb,UAAU;SACX,CAAC;KACH;AAEO,IAAA,oBAAoB,CAAC,OAAgB,EAAA;;AAC3C,QAAA,MAAM,UAAU,GAAe,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC;AAEpD,QAAA,IAAI,gBAAgB,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE;AAC3C,YAAA,MAAM,UAAU,GAAG,CAAA,EAAA,GAAA,OAAO,CAAC,KAAK,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AAEtE,YAAA,IAAI,UAAU,EAAE;AACd,gBAAA,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,IAAG;oBAClC,IAAI,EAAE,CAAC,iBAAiB,IAAI,EAAE,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE;wBAC3D,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,iBAAiB,CAAC;AACzD,qBAAA;AAAM,yBAAA;wBACL,OAAO,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;AACzC,qBAAA;AACH,iBAAC,CAAC,CAAC;AACJ,aAAA;AACF,SAAA;AAED,QAAA,OAAO,CAAC,UAAU,GAAG,UAAU,CAAC;KACjC;IAEO,oBAAoB,CAAC,OAAgB,EAAE,IAAe,EAAA;AAC5D,QAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;AAE5D,QAAA,IAAI,gBAAgB,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,gBAAgB,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE;AACtF,YAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;AAC1E,SAAA;KACF;AAEO,IAAA,iBAAiB,CAAC,OAAgB,EAAA;;QACxC,MAAM,KAAK,GAAG,gBAAgB,CAAC,aAAa,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC,GAAG,CAAA,EAAA,GAAA,OAAO,CAAC,YAAY,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,KAAK,CAAC;AAE7F,QAAA,OAAO,IAAI,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC,CAAC;KACvE;AAEO,IAAA,gBAAgB,CAAC,OAAgB,EAAA;;QACvC,MAAM,aAAa,GAAG,gBAAgB,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAE9D,MAAM,UAAU,GAAG,EAAE,CAAC;QAEtB,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;;QAG/C,IAAI,UAAU,GAAG,CAAC,EAAE;AAClB,YAAA,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,UAAU,EAAE,aAAa,GAAG,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,OAAO,CAAC,KAAK,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,GAAG,MAAI,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAA,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACrG,SAAA;AAED,QAAA,MAAM,QAAQ,GAAG,aAAa,GAAG,CAAA,EAAA,GAAA,OAAO,CAAC,KAAK,0CAAE,GAAG,GAAG,CAAC,CAAC;AAExD,QAAA,OAAO,IAAI,WAAW,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;KAC9C;AAEO,IAAA,aAAa,CAAC,OAAgB,EAAA;AACpC,QAAA,IAAI,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC;AAC7B,QAAA,IAAI,QAAQ,GAAG,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC;AAEtC,QAAA,IAAI,gBAAgB,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE;AAC3C,YAAA,IAAI,OAAO,CAAC,KAAK,IAAI,UAAU,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,gBAAgB,EAAE;AAC1F,gBAAA,IAAI,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE;AAC1B,oBAAA,QAAQ,GAAG,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;AACnF,iBAAA;AACD,gBAAA,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC;AAC/B,aAAA;AAAM,iBAAA;AACL,gBAAA,OAAO,CAAC,CAAC;AACV,aAAA;AACF,SAAA;QAED,IAAI,CAAC,QAAQ,EAAE;AACb,YAAA,OAAO,CAAC,CAAC;AACV,SAAA;QAED,OAAO,oBAAoB,CAAC,aAAa,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;KAC/D;;AAGO,IAAA,wBAAwB,CAAC,OAAgB,EAAA;AAC/C,QAAA,IAAI,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,OAAO,CAAC,EAAE;AACjD,YAAA,OAAO,IAAI,CAAC;AACb,SAAA;QAED,MAAM,UAAU,GAAG,EAAE,CAAC;QACtB,MAAM,cAAc,GAClB,OAAO,CAAC,KAAK,IAAI,IAAI,CAAC,gBAAgB,IAAI,gBAAgB,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;QACnH,MAAM,SAAS,GACb,cAAc;YACd,cAAc,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;AAE3G,QAAA,IAAI,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE;AACjC,YAAA,OAAO,IAAI,CAAC;AACb,SAAA;AAED,QAAA,MAAM,wBAAwB,GAAQ;AACpC,YAAA,GAAG,EAAE,cAAc,CAAC,gBAAgB,EAAE;AACtC,YAAA,gBAAgB,EAAE,cAAc,CAAC,gBAAgB,CAAC,EAAE,CAAC;SACtD,CAAC;QAEF,IAAI,CAAC,wBAAwB,CAAC,CAAC,OAAO,CAAC,KAAK,IAAG;YAC7C,IAAI,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;AAC/B,gBAAA,MAAM,SAAS,GAAG,wBAAwB,CAAC,KAAK,CAAC,CAAC;AAElD,gBAAA,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AAC5B,aAAA;AACH,SAAC,CAAC,CAAC;QAEH,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,0BAA0B,CAAC,EAAE;AACrD,YAAA,MAAM,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC;YAEnC,MAAM,iBAAiB,GAAgB,UAAU,OAAO,EAAA;;gBACtD,IAAI,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;oBAChF,OAAO,EAAE,QAAQ,EAAE,EAAE,OAAO,EAAE,YAAY,GAAG,mBAAmB,EAAE,EAAE,CAAC;AACtE,iBAAA;gBAED,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;AACxF,oBAAA,OAAO,IAAI,CAAC;AACb,iBAAA;AAED,gBAAA,MAAM,eAAe,GAAG,CAAA,EAAA,GAAA,OAAO,CAAC,KAAK,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,gBAAgB,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AAEhF,gBAAA,MAAM,KAAK,GAAG,eAAe,KAAA,IAAA,IAAf,eAAe,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAf,eAAe,CAAE,IAAI,CAAC,WAAW,IAAG;AAChD,oBAAA,MAAM,GAAG,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC;AAC7B,oBAAA,MAAM,GAAG,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC;AAE7B,oBAAA,OAAO,CAAC,OAAO,CAAC,KAAK,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,GAAG,CAAC;AACxD,iBAAC,CAAC,CAAC;gBAEH,IAAI,CAAC,KAAK,EAAE;oBACV,OAAO,EAAE,QAAQ,EAAE,EAAE,OAAO,EAAE,YAAY,GAAG,mBAAmB,EAAE,EAAE,CAAC;AACtE,iBAAA;AAED,gBAAA,OAAO,IAAI,CAAC;AACd,aAAC,CAAC;AAEF,YAAA,UAAU,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;AACpC,SAAA;QAED,IAAI,OAAO,CAAC,QAAQ,EAAE;AACpB,YAAA,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,OAAO,CAAC,KAAK,GAAG,eAAe,CAAC,CAAC,CAAC;AACpF,SAAA;AAED,QAAA,OAAO,UAAU,CAAC,MAAM,KAAK,CAAC,GAAG,UAAU,GAAG,IAAI,CAAC;KACpD;IAEO,oBAAoB,CAAC,GAAW,EAAE,WAAmB,EAAA;QAC3D,OAAO,CAAC,OAAO,KAA6B;AAC1C,YAAA,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE;gBAClB,OAAO,EAAE,QAAQ,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE,CAAC;AAC9C,aAAA;AAAM,iBAAA,IAAI,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC,EAAE;gBACtD,OAAO,EAAE,QAAQ,EAAE,EAAE,OAAO,EAAE,eAAe,EAAE,EAAE,CAAC;AACnD,aAAA;iBAAM,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,GAAG,GAAG,WAAW,EAAE;AAC7C,gBAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,OAAO,EAAE,gBAAgB,IAAI,GAAG,GAAG,WAAW,CAAC,EAAE,EAAE,CAAC;AAC1E,aAAA;AAAM,iBAAA;AACL,gBAAA,OAAO,IAAI,CAAC;AACb,aAAA;AACH,SAAC,CAAC;KACH;;+GA5OU,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;mHAAlB,kBAAkB,EAAA,CAAA,CAAA;2FAAlB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAD9B,UAAU;;MAgPE,gBAAgB,CAAA;IACpB,OAAO,aAAa,CAAC,OAAgB,EAAA;AAC1C,QAAA,OAAO,OAAO,IAAI,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,SAAS,CAAC,UAAU,KAAK,aAAa,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;KAC3G;IAEM,OAAO,aAAa,CAAC,OAAgB,EAAA;AAC1C,QAAA,OAAO,OAAO,IAAI,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,SAAS,CAAC,UAAU,KAAK,aAAa,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;KAC3G;IAEM,OAAO,kBAAkB,CAAC,OAAgB,EAAA;AAC/C,QAAA,OAAO,OAAO,IAAI,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,SAAS,CAAC,UAAU,KAAK,aAAa,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;KAChH;AAEM,IAAA,OAAO,UAAU,CAAC,QAAgB,EAAE,SAAqB,EAAA;AAC9D,QAAA,OAAO,UAAU,CAAC,yBAAyB,CAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;KACrF;AACF;;MCzPY,oBAAoB,CAAA;AAC/B,IAAA,WAAA,CACU,uBAAgD,EAChD,cAA8B,EAC9B,aAA4B,EAAA;AAF5B,QAAA,IAAuB,CAAA,uBAAA,GAAvB,uBAAuB,CAAyB;AAChD,QAAA,IAAc,CAAA,cAAA,GAAd,cAAc,CAAgB;AAC9B,QAAA,IAAa,CAAA,aAAA,GAAb,aAAa,CAAe;KAClC;AAEG,IAAA,SAAS,CAAC,cAAoC,EAAE,MAAmB,EAAE,OAAiB,EAAA;;AAC3F,QAAA,MAAM,QAAQ,GAAG,CAAC,MAAM,IAAI,MAAM,CAAC,gBAAgB,KAAK,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,CAAC;AAChG,QAAA,MAAM,iBAAiB,GAAG,OAAO,GAAG,iBAAiB,CAAC,OAAO,GAAG,iBAAiB,CAAC,MAAM,CAAC;AACzF,QAAA,MAAM,oBAAoB,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,cAAc,EAAE,iBAAiB,CAAC,CAAC;QAC7F,oBAAoB,CAAC,SAAS,GAAG,MAAM,CAAC,YAAY,IAAI,EAAE,CAAC;AAC3D,QAAA,oBAAoB,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;AAC1C,QAAA,MAAM,YAAY,GAAG,cAAc,CAAC,YAAY,CAAC;QACjD,MAAM,cAAc,GAAG,CAAA,EAAA,GAAA,cAAc,CAAC,YAAY,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,cAAc,CAAC;QACnE,OAAO,IAAI,CAAC,uBAAuB;AAChC,aAAA,iBAAiB,CAAC;YACjB,oBAAoB;YACpB,YAAY;YACZ,cAAc;SACf,CAAC;AACD,aAAA,IAAI,CACH,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,gBAAgB,EAAE,KAAI;AAC9C,YAAA,IAAI,OAAO,EAAE;AACX,gBAAA,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;AAChE,aAAA;AACD,YAAA,IAAI,gBAAgB,KAAhB,IAAA,IAAA,gBAAgB,uBAAhB,gBAAgB,CAAE,MAAM,EAAE;gBAC5B,IAAI,CAAC,gCAAgC,EAAE,CAAC;AACzC,aAAA;AACD,YAAA,OAAO,QAAQ,CAAC;SACjB,CAAC,CACH,CAAC;KACL;AAEO,IAAA,aAAa,CACnB,QAAkB,EAClB,cAAoC,EACpC,iBAAoC,EAAA;;AAEpC,QAAA,IAAI,cAAc,CAAC,WAAW,KAAK,WAAW,CAAC,IAAI,EAAE;AACnD,YAAA,MAAM,UAAU,GAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EACX,cAAc,CAAC,UAAU,CAAA,EAAA,EAC5B,OAAO,EAAE,cAAc,CAAC,OAAO,EAC/B,WAAW,EAAE,MAAM,EACnB,cAAc,EAAE,MAAM,CAAC,CAAA,EAAA,GAAA,cAAc,CAAC,YAAY,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,cAAc,CAAC,EACnE,SAAS,EAAE,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,cAAc,CAAC,UAAU,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,SAAS,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,EAC5F,WAAW,EAAE,CAAA,EAAA,GAAA,cAAc,CAAC,YAAY,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,SAAS,GACpD,CAAC;YAEF,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC;AAC5C,SAAA;AAAM,aAAA;YACL,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC;YAE9C,IAAI,OAAO,CAAC,UAAU,KAAI,CAAA,EAAA,GAAA,cAAc,CAAC,UAAU,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,SAAS,CAAA,EAAE;AAC9D,gBAAA,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC;oBACzB,UAAU,EAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EACL,OAAO,CAAC,UAAU,GAClB,cAAc,CAAC,UAAU,CAC7B;AACF,iBAAA,CAAC,CAAC;AACJ,aAAA;AACF,SAAA;QAED,OAAO;YACL,QAAQ;AACR,YAAA,IAAI,EAAE,iBAAiB;YACvB,IAAI,EAAE,cAAc,CAAC,iBAAiB,IAAI,cAAc,CAAC,iBAAiB,CAAC,WAAW;AACtF,YAAA,mBAAmB,EAAE,KAAK;AAC1B,YAAA,OAAO,EAAE,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE;SACvC,CAAC;KACH;AAEO,IAAA,kBAAkB,CAAC,OAA6B,EAAA;;AACtD,QAAA,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAEvB,MAAM,QAAQ,GACZ,MAAA,CAAA,MAAA,CAAA,EAAA,EAAE,EACF,IAAI,EAAE,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,OAAO,CAAC,YAAY,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,QAAQ,mCAAI,EAAE,EAC1C,SAAS,EAAE,SAAS,EACpB,GAAG,EAAE,CAAC,EACN,WAAW,EAAE,CAAA,CAAA,EAAA,GAAA,OAAO,CAAC,UAAU,MAAG,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,aAAa,CAAC,KAAI,OAAO,CAAC,WAAW,EACvE,SAAS,EAAE,CAAA,EAAA,GAAA,OAAO,CAAC,SAAS,MAAI,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAA,EAAE,EAClC,UAAU,EAAE,OAAO,CAAC,UAAU,EAC3B,GAAC,OAAO,CAAC,UAAU;AACpB,cAAE,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,kBAAkB,EAAE,OAAO,CAAC,kBAAkB,IAAI,EAAE,EAAE;AAC1F,cAAE,EAAE,EACK,CAAC;AAEd,QAAA,OAAO,QAAQ,CAAC;KACjB;IAEO,gCAAgC,GAAA;AACtC,QAAA,MAAM,kBAAkB,GAAuB;AAC7C,YAAA,KAAK,EAAE,GAAG;AACV,YAAA,WAAW,EAAE,oEAAoE;AACjF,YAAA,kBAAkB,EAAE,iBAAiB;AACrC,YAAA,oBAAoB,EAAE,eAAe;SACtC,CAAC;AAEF,QAAA,IAAI,CAAC,aAAa;aACf,IAAI,CAAC,qBAAqB,EAAE;AAC3B,YAAA,eAAe,EAAE,KAAK;AACtB,YAAA,aAAa,EAAE,KAAK;AACpB,YAAA,QAAQ,EAAE,KAAK;AACf,YAAA,UAAU,EAAE,IAAI;AAChB,YAAA,MAAM,EAAE,CAA4B,0BAAA,CAAA;AACpC,YAAA,KAAK,EAAE,OAAO;YACd,IAAI,EAAE,EAAE,kBAAkB,EAAE;SAC7B,CAAC;AACD,aAAA,OAAO,CAAC,SAAS,CAAC,MAAM,IAAG;YAC1B,IAAI,CAAC,MAAM,EAAE;gBACX,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC;AAC9C,gBAAA,MAAM,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;AACxD,aAAA;AACH,SAAC,CAAC,CAAC;KACN;;iHAnHU,oBAAoB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,uBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,cAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,aAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;qHAApB,oBAAoB,EAAA,CAAA,CAAA;2FAApB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBADhC,UAAU;;;MCFE,cAAc,CAAA;AAwBzB,IAAA,WAAA,CACU,oBAA0C,EAC1C,cAA8B,EAC9B,cAA8B,EAAA;AAF9B,QAAA,IAAoB,CAAA,oBAAA,GAApB,oBAAoB,CAAsB;AAC1C,QAAA,IAAc,CAAA,cAAA,GAAd,cAAc,CAAgB;AAC9B,QAAA,IAAc,CAAA,cAAA,GAAd,cAAc,CAAgB;AAxBhC,QAAA,IAAA,CAAA,oBAAoB,GAAG,IAAI,OAAO,EAAY,CAAC;QAChD,IAAA,CAAA,oBAAoB,GAAG,IAAI,CAAC,oBAAoB,CAAC,YAAY,EAAE,CAAC;AAE/D,QAAA,IAAA,CAAA,4BAA4B,GAAG,IAAI,OAAO,EAAQ,CAAC;QACpD,IAAA,CAAA,4BAA4B,GAAG,IAAI,CAAC,4BAA4B,CAAC,YAAY,EAAE,CAAC;AAE/E,QAAA,IAAA,CAAA,sBAAsB,GAAG,IAAI,OAAO,EAAgC,CAAC;QACtE,IAAA,CAAA,sBAAsB,GAAG,IAAI,CAAC,sBAAsB,CAAC,YAAY,EAAE,CAAC;AAEnE,QAAA,IAAA,CAAA,wBAAwB,GAAG,IAAI,OAAO,EAAY,CAAC;QACpD,IAAA,CAAA,mBAAmB,GAAG,IAAI,CAAC,wBAAwB,CAAC,YAAY,EAAE,CAAC;AAElE,QAAA,IAAA,CAAA,mBAAmB,GAAG,IAAI,OAAO,EAAY,CAAC;QAC/C,IAAA,CAAA,mBAAmB,GAAG,IAAI,CAAC,mBAAmB,CAAC,YAAY,EAAE,CAAC;AAE7D,QAAA,IAAA,CAAA,qBAAqB,GAAG,IAAI,OAAO,EAAQ,CAAC;QAC7C,IAAA,CAAA,qBAAqB,GAAG,IAAI,CAAC,qBAAqB,CAAC,YAAY,EAAE,CAAC;AAEjE,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,OAAO,EAAQ,CAAC;QACxC,IAAA,CAAA,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE,CAAC;KAM3D;AAEI,IAAA,mBAAmB,CAAC,KAAU,EAAA;;AACpC,QAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC;AACtB,YAAA,QAAQ,EAAE,OAAO;AACjB,YAAA,OAAO,EAAE,CAAA,CAAA,EAAA,GAAA,KAAK,CAAC,KAAK,0CAAE,OAAO,KAAI,KAAK,CAAC,OAAO,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;AACxE,SAAA,CAAC,CAAC;KACJ;AAEM,IAAA,YAAY,CAAC,OAA6B,EAAE,MAAmB,EAAE,OAAiB,EAAA;AACvF,QAAA,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;AAChC,QAAA,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;AACvC,QAAA,IAAI,CAAC,oBAAoB;AACtB,aAAA,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC;AACnC,aAAA,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;aACb,SAAS,CACR,QAAQ,IAAG;AACT,YAAA,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;SAC1C,EACD,KAAK,IAAG;AACN,YAAA,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;AAChC,YAAA,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC1C,SAAC,CACF,CAAC;KACL;IAEM,aAAa,CAAC,MAAmB,EAAE,8BAA4D,EAAA;AACpG,QAAA,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;YACxB,OAAO;AACR,SAAA;AAED,QAAA,IAAI,CAAC,4BAA4B,CAAC,IAAI,EAAE,CAAC;AACzC,QAAA,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;AACxC,QAAA,IAAI,CAAC,oBAAoB,CAAC,8BAA8B,CAAC,CAAC;AAC1D,QAAA,IAAI,CAAC,oBAAoB;AACtB,aAAA,SAAS,CAAC,IAAI,CAAC,cAAc,EAAE,MAAM,CAAC;AACtC,aAAA,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;aACb,SAAS,CACR,QAAQ,IAAG;YACT,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC;AAE9C,YAAA,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;AAC9C,YAAA,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;SAC5C,EACD,KAAK,IAAG;AACN,YAAA,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;AAChC,YAAA,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC1C,SAAC,CACF,CAAC;KACL;AAEM,IAAA,WAAW,CAAC,gBAA0B,EAAA;AAC3C,QAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;KACjD;IAEM,aAAa,GAAA;AAClB,QAAA,IAAI,CAAC,qBAAqB,CAAC,IAAI,EAAE,CAAC;KACnC;AAEM,IAAA,iBAAiB,CAAC,cAAoC,EAAA;AAC3D,QAAA,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;KACtC;IAEM,iBAAiB,GAAA;QACtB,OAAO,IAAI,CAAC,cAAc,CAAC;KAC5B;AAEM,IAAA,iBAAiB,CAAC,QAAkB,EAAA;AACzC,QAAA,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;KAC9C;AAEM,IAAA,SAAS,CAAC,YAAgC,EAAA;AAC/C,QAAA,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;YACxB,OAAO;AACR,SAAA;QAED,IAAI,CAAC,cAAc,GACd,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,IAAI,CAAC,cAAc,CAAA,EAAA,EACtB,YAAY,EAAA,CACb,CAAC;AACF,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC;KAC9B;AAEO,IAAA,oBAAoB,CAAC,8BAA4D,EAAA;AACvF,QAAA,IAAI,CAAC,IAAI,CAAC,cAAc,IAAI,CAAC,8BAA8B,EAAE;YAC3D,OAAO;AACR,SAAA;QAED,IAAI,CAAC,cAAc,GAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAQ,IAAI,CAAC,cAAc,CAAA,EAAA,EAAE,UAAU,EAAE,8BAA8B,EAAA,CAAE,CAAC;KAC9F;AAEO,IAAA,cAAc,CAAC,WAAwB,EAAA;AAC7C,QAAA,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;YACxB,OAAO;AACR,SAAA;AAED,QAAA,IAAI,CAAC,cAAc,CAAC,iBAAiB,GAChC,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,IAAI,CAAC,cAAc,CAAC,iBAAiB,CACxC,EAAA,EAAA,WAAW,GACZ,CAAC;KACH;;2GAhIU,cAAc,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,oBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,cAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,IAAA,CAAA,cAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;+GAAd,cAAc,EAAA,CAAA,CAAA;2FAAd,cAAc,EAAA,UAAA,EAAA,CAAA;kBAD1B,UAAU;;;MCHE,mBAAmB,CAAA;AAC9B,IAAA,WAAA,CACU,eAAgC,EAChC,cAA8B,EAC9B,YAA+B,EAAA;AAF/B,QAAA,IAAe,CAAA,eAAA,GAAf,eAAe,CAAiB;AAChC,QAAA,IAAc,CAAA,cAAA,GAAd,cAAc,CAAgB;AAC9B,QAAA,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAmB;KACrC;AAEG,IAAA,iBAAiB,CAAC,YAAwB,EAAA;QAC/C,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC;QAE9C,OAAO,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC,CAAC,IAAI,CACnE,IAAI,CAAC,CAAC,CAAC,EACP,GAAG,CAAC,CAAC,EAAE,SAAS,EAAgB,KAAI;AAClC,YAAA,IAAI,CAAC,YAAY,CAAC,uBAAuB,CAAC,SAAS,CAAC,CAAC;SACtD,CAAC,CACH,CAAC;KACH;IAEM,eAAe,GAAA;AACpB,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC;KACvC;;gHApBU,mBAAmB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,eAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,cAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;oHAAnB,mBAAmB,EAAA,CAAA,CAAA;2FAAnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAD/B,UAAU;;;MCHE,mBAAmB,CAAA;AADhC,IAAA,WAAA,GAAA;AAES,QAAA,IAAY,CAAA,YAAA,GAAe,EAAE,CAAC;KAKtC;AAHQ,IAAA,MAAM,CAAC,KAAiB,EAAA;AAC7B,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;KAC3B;;gHALU,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAnB,mBAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,cADN,MAAM,EAAA,CAAA,CAAA;2FACnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAD/B,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAA;;;MCIrB,wBAAwB,CAAA;AACnC,IAAA,WAAA,CAAoB,sBAA8C,EAAA;AAA9C,QAAA,IAAsB,CAAA,sBAAA,GAAtB,sBAAsB,CAAwB;AAE1D,QAAA,IAAA,CAAA,WAAW,GAAoD,IAAI,GAAG,EAAE,CAAC;KAFX;IAI/D,eAAe,CAAC,cAAsB,EAAE,OAAgB,EAAA;QAC7D,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,OAAO,EAAE;YACpD,IAAI,CAAC,UAAU,EAAE,CAAC;YAElB,IAAI,CAAC,WAAW,CAAC,GAAG,CAClB,cAAc,EACd,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAC/E,CAAC;AACH,SAAA;QAED,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,cAAc,CAAuC,CAAC;KACnF;IAEM,cAAc,GAAA;AACnB,QAAA,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;QAEhD,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAuC,CAAC;KAC3E;IAEM,UAAU,GAAA;AACf,QAAA,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;KAC1B;;qHA1BU,wBAAwB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,sBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;yHAAxB,wBAAwB,EAAA,CAAA,CAAA;2FAAxB,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBADpC,UAAU;;;MCIE,qBAAqB,CAAA;AAChC,IAAA,WAAA,CACU,uBAAgD,EAChD,cAA8B,EAC9B,cAA8B,EAAA;AAF9B,QAAA,IAAuB,CAAA,uBAAA,GAAvB,uBAAuB,CAAyB;AAChD,QAAA,IAAc,CAAA,cAAA,GAAd,cAAc,CAAgB;AAC9B,QAAA,IAAc,CAAA,cAAA,GAAd,cAAc,CAAgB;KACpC;IAEG,iBAAiB,CAAC,SAAiB,EAAE,UAAmB,EAAA;AAC7D,QAAA,OAAO,IAAI,CAAC,uBAAuB,CAAC,yBAAyB,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC,IAAI,CACvF,GAAG,CAAC,WAAW,IAAG;;YAChB,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;AACvD,YAAA,MAAM,YAAY,GAAG,YAAY,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC;AAClF,YAAA,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,GAC/B,CAAA,EAAA,GAAA,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,EAAE,CAAC;YAE1F,OAAO;gBACL,OAAO,EAAE,WAAW,CAAC,OAAO;AAC5B,gBAAA,YAAY,EAAE,YAAY;AAC1B,gBAAA,YAAY,EAAE,YAAY;gBAC1B,WAAW,EAAE,WAAW,CAAC,IAAI;AAC7B,gBAAA,SAAS,EAAE,SAAS;gBACpB,WAAW,EAAE,CAAA,UAAU,KAAV,IAAA,IAAA,UAAU,KAAV,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,UAAU,CAAG,aAAa,CAAC,KAAI,WAAW;AACvD,gBAAA,UAAU,EAAE,UAAU;AACtB,gBAAA,UAAU,EAAE;oBACV,cAAc,EAAE,YAAY,CAAC,cAAc,GAAG,MAAM,GAAG,OAAO;AAC/D,iBAAA;aACF,CAAC;SACH,CAAC,CACH,CAAC;KACH;AAEO,IAAA,eAAe,CAAC,WAAwB,EAAA;QAC9C,MAAM,EAAE,cAAc,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC;QAEzD,MAAM,QAAQ,GAAG,CAAC,KAAyB,KACzC,cAAc,GAAG,cAAc,KAAK,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC;AAE/D,QAAA,MAAM,aAAa,GAAG,WAAW,CAAC,aAAa;aAC5C,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,MAAM,CAAC;aAC3B,MAAM,CAAC,CAAC,YAAY,KAAyC,oBAAoB,CAAC,YAAY,CAAC,CAAC,CAAC;QACpG,MAAM,YAAY,GAAG,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,aAAa,CAAC,MAAM,KAAK,CAAC,IAAS,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,aAAa,CAAC,CAAC,CAAC,CAAE,CAAC,CAAC;QAE7G,IAAI,CAAC,YAAY,EAAE;AACjB,YAAA,MAAM,MAAM,GAAG,CAAkB,eAAA,EAAA,cAAc,GAAG,cAAc,GAAG,SAAS,KAAK,CAAC;AAElF,YAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC;AACtB,gBAAA,QAAQ,EAAE,OAAO;AACjB,gBAAA,OAAO,EAAE,OAAO;AACjB,aAAA,CAAC,CAAC;AACH,YAAA,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC;AACzB,SAAA;AAED,QAAA,eAAe,CAAC,kBAAkB,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;AAE1D,QAAA,OAAO,YAAY,CAAC;KACrB;;kHAvDU,qBAAqB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,uBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,IAAA,CAAA,cAAA,EAAA,EAAA,EAAA,KAAA,EAAAD,EAAA,CAAA,cAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;sHAArB,qBAAqB,EAAA,CAAA,CAAA;2FAArB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBADjC,UAAU;;;MCLE,mBAAmB,CAAA;AADhC,IAAA,WAAA,GAAA;AAEU,QAAA,IAAmB,CAAA,mBAAA,GAA4B,EAAE,CAAC;KAa3D;IAXC,IAAW,kBAAkB,CAAC,IAA6B,EAAA;AACzD,QAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;KACjC;AAED,IAAA,IAAW,kBAAkB,GAAA;QAC3B,OAAO,IAAI,CAAC,mBAAmB,CAAC;KACjC;AAEM,IAAA,mBAAmB,CAAC,OAAgB,EAAA;AACzC,QAAA,OAAO,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC,eAAe,CAAC,CAAC;KAClF;;gHAbU,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;oHAAnB,mBAAmB,EAAA,CAAA,CAAA;2FAAnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAD/B,UAAU;;;MCEE,mBAAmB,CAAA;AADhC,IAAA,WAAA,GAAA;AAUS,QAAA,IAAM,CAAA,MAAA,GAAG,CAAC,CAAC;QAGX,IAAA,CAAA,SAAS,GAAG,IAAI,eAAe,CAAqB,EAAE,CAAC,CAAC;KAmBhE;AA9BC,IAAA,IAAW,OAAO,GAAA;QAChB,OAAO,IAAI,CAAC,QAAQ,CAAC;KACtB;IAED,IAAW,OAAO,CAAC,KAAc,EAAA;AAC/B,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACtB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;KACrC;AAMO,IAAA,SAAS,CAAC,OAAgB,EAAA;AAChC,QAAA,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE;AACjC,YAAA,OAAO,CAAC,CAAC;AACV,SAAA;AAAM,aAAA;YACL,IAAI,OAAO,GAAG,OAAO,CAAC;YAEtB,IAAI,MAAM,GAAG,CAAC,CAAC;AAEf,YAAA,OAAO,OAAO,IAAI,OAAO,CAAC,MAAM,EAAE;AAChC,gBAAA,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;AAEzB,gBAAA,MAAM,EAAE,CAAC;AACV,aAAA;AAED,YAAA,OAAO,MAAM,CAAC;AACf,SAAA;KACF;;gHA9BU,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;oHAAnB,mBAAmB,EAAA,CAAA,CAAA;2FAAnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAD/B,UAAU;;;MCoBE,iCAAiC,CAAA;IAG5C,IACW,OAAO,CAAC,KAAc,EAAA;AAC/B,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;AACtB,QAAA,IAAI,CAAC,YAAY,CAAC,OAAO,GAAG,KAAK,CAAC;KACnC;AAED,IAAA,IAAW,OAAO,GAAA;QAChB,OAAO,IAAI,CAAC,QAAQ,CAAC;KACtB;AAKD,IAAA,WAAA,CACU,SAAmB,EACnB,EAAoB,EACpB,YAAiC,EACjC,YAAiC,EAAA;AAHjC,QAAA,IAAS,CAAA,SAAA,GAAT,SAAS,CAAU;AACnB,QAAA,IAAE,CAAA,EAAA,GAAF,EAAE,CAAkB;AACpB,QAAA,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAqB;AACjC,QAAA,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAqB;AAMnC,QAAA,IAAY,CAAA,YAAA,GAA6B,IAAI,CAAC;KALlD;IAOG,QAAQ,GAAA;QACb,IAAI,CAAC,aAAa,EAAE,CAAC;KACtB;IAEM,eAAe,GAAA;;QACpB,IAAI,IAAI,CAAC,YAAY,EAAE;YACrB,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,WAAW,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,OAAO,EAAE,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,EAAE,CAAC,CAAC;AAC5F,SAAA;KACF;IAEM,WAAW,GAAA;QAChB,IAAI,IAAI,CAAC,YAAY,EAAE;AACrB,YAAA,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;AAC5B,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;AAC1B,SAAA;KACF;IAEM,aAAa,GAAA;;QAClB,IAAI,IAAI,CAAC,YAAY,EAAE;AACrB,YAAA,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;AAC5B,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;AAC1B,SAAA;AAED,QAAA,MAAM,gBAAgB,GAAG,IAAI,CAAC,YAAY,CAAC,mBAAmB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC9E,IAAI,CAAC,gBAAgB,EAAE;YACrB,OAAO;AACR,SAAA;AAED,QAAA,IAAI,CAAC,YAAY,GAAG,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;AAC/E,QAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,aAAa,CAAC,YAAY,CACnD,WAAW,EACX,CAAA,EAAG,CAAA,EAAA,GAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,EAAE,CAAG,EAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAE,CAAA,CACnD,CAAC;QACF,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC;QAC/C,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC;QACrD,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;KACnD;;8HAhEU,iCAAiC,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,QAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAAE,mBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,mBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAjC,iCAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,iCAAiC,yFAFjC,CAAC,mBAAmB,CAAC,EAyBA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,WAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,WAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAAA,gBAAgB,2CC/ClD,wCAAsC,EAAA,MAAA,EAAA,CAAA,2BAAA,CAAA,EAAA,CAAA,CAAA;2FDwBzB,iCAAiC,EAAA,UAAA,EAAA,CAAA;kBAP7C,SAAS;+BAEE,kBAAkB,EAAA,SAAA,EAGjB,CAAC,mBAAmB,CAAC,EAAA,QAAA,EAAA,wCAAA,EAAA,MAAA,EAAA,CAAA,2BAAA,CAAA,EAAA,CAAA;uLAMrB,OAAO,EAAA,CAAA;sBADjB,KAAK;gBAWC,IAAI,EAAA,CAAA;sBADV,KAAK;gBAWC,SAAS,EAAA,CAAA;sBADf,SAAS;uBAAC,WAAW,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;;;MEjCrD,4BAA4B,CAAA;AAcvC,IAAA,WAAA,CACU,YAAiC,EACjC,SAA2B,EAC3B,gBAAyC,EAAA;AAFzC,QAAA,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAqB;AACjC,QAAA,IAAS,CAAA,SAAA,GAAT,SAAS,CAAkB;AAC3B,QAAA,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAyB;AAb5C,QAAA,IAAS,CAAA,SAAA,GAAc,EAAE,CAAC;AAQ1B,QAAA,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;KAMrB;IAEG,QAAQ,GAAA;QACb,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC;QACzC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;AAEhC,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC;AAE7G,QAAA,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,gBAAgB,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC,IAAG;;AAClE,YAAA,MAAM,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YAExB,IAAI,CAAA,CAAA,EAAA,GAAA,IAAI,CAAC,OAAO,CAAC,KAAK,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,EAAE,MAAK,UAAU,EAAE;AACzC,gBAAA,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACvB,aAAA;AACH,SAAC,CAAC,CAAC;QAEH,IAAI,CAAC,WAAW,EAAE,CAAC;KACpB;AAEM,IAAA,WAAW,CAAC,OAAsB,EAAA;;QACvC,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAA,EAAA,GAAA,OAAO,CAAC,UAAU,CAAC,0CAAE,YAAY,OAAK,MAAA,OAAO,CAAC,UAAU,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,aAAa,CAAA,EAAE;YAC9F,IAAI,CAAC,WAAW,EAAE,CAAC;AACpB,SAAA;KACF;IAEM,WAAW,GAAA;QAChB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;KACxE;IAEM,WAAW,GAAA;AAChB,QAAA,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;KACxB;;yHAjDU,4BAA4B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAD,mBAAA,EAAA,EAAA,EAAA,KAAA,EAAAE,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,uBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA5B,4BAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,4BAA4B,EAF5B,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,SAAA,EAAA,CAAC,WAAW,CAAC,+CCZ1B,sOAKA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,iCAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,MAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FDSa,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBANxC,SAAS;+BAEE,sBAAsB,EAAA,SAAA,EAErB,CAAC,WAAW,CAAC,EAAA,QAAA,EAAA,sOAAA,EAAA,CAAA;sKAIjB,QAAQ,EAAA,CAAA;sBADd,KAAK;;AAwDF,MAAO,iBAAkB,SAAQ,4BAA4B,CAAA;;8GAAtD,iBAAiB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAjB,iBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,iBAAiB,iFCvE9B,sOAKA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,iCAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,MAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FDkEa,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAL7B,SAAS;+BAEE,oBAAoB,EAAA,QAAA,EAAA,sOAAA,EAAA,CAAA;;;ME3DnB,wBAAwB,CAAA;AAInC,IAAA,WAAA,CAA4C,cAA8B,EAAA;AAA9B,QAAA,IAAc,CAAA,cAAA,GAAd,cAAc,CAAgB;AAH1D,QAAA,IAAK,CAAA,KAAA,GAAkB,EAAE,CAAC;AAC1B,QAAA,IAAQ,CAAA,QAAA,GAAiC,EAAE,CAAC;KAEkB;IAEvE,QAAQ,GAAA;QACb,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,iBAAiB,EAAE,CAAC;QAExD,IAAI,CAAC,OAAO,EAAE;YACZ,OAAO;AACR,SAAA;QAED,IAAI,CAAC,cAAc,CAAC,iBAAiB,iCAChC,OAAO,CAAA,EAAA,EACV,YAAY,EAAE,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAA,CAAA,CAC5D,CAAC;KACJ;;AAjBU,wBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,wBAAwB,kBAIf,cAAc,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAJvB,wBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,wBAAwB,6GAFzB,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA;2FAED,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAJpC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,qBAAqB;AAC/B,oBAAA,QAAQ,EAAE,EAAE;iBACb,CAAA;;;8BAKc,MAAM;+BAAC,cAAc,CAAA;;yBAHlB,KAAK,EAAA,CAAA;sBAApB,KAAK;gBACU,QAAQ,EAAA,CAAA;sBAAvB,KAAK;;;ACER,MAAM,SAAS,GAAwB,EAAE,CAAC;AAE1C,SAAS,eAAe,CAAC,WAAmB,EAAA;IAC1C,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,KAAI;AAC3C,QAAA,IAAI,SAAS,CAAC,WAAW,CAAC,EAAE;AAC1B,YAAA,OAAO,EAAE,CAAC;YACV,OAAO;AACR,SAAA;QAED,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;AAChD,QAAA,MAAM,CAAC,GAAG,GAAG,WAAW,CAAC;AAEzB,QAAA,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC;AAExB,QAAA,MAAM,CAAC,MAAM,GAAG,MAAW;AACzB,YAAA,SAAS,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC;YAC9B,OAAO,EAAE,CAAC;AACZ,SAAC,CAAC;AAEF,QAAA,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAC/B,KAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAe,mBAAmB,CAAI,UAAkB,EAAE,aAAqB,EAAA;;;AAE7E,QAAA,MAAM,wBAAwB,CAAC,SAAS,CAAC,CAAC;QAC1C,MAAM,SAAS,GAAI,MAAc,CAAC,UAAU,CAAc,CAAC;;QAG3D,MAAM,SAAS,CAAC,IAAI,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC;QACvD,MAAM,OAAO,GAAG,MAAM,SAAS,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;AACnD,QAAA,MAAM,MAAM,GAAG,OAAO,EAAE,CAAC;AACzB,QAAA,OAAO,MAAW,CAAC;KACpB,CAAA,CAAA;AAAA,CAAA;AAQK,SAAgB,gBAAgB,CAAC,OAAgC,EAAA;;AACrE,QAAA,MAAM,eAAe,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAE3C,OAAO,MAAM,mBAAmB,CAAM,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;KAClF,CAAA,CAAA;AAAA;;ACrCD,IAAK,gBAEJ,CAAA;AAFD,CAAA,UAAK,gBAAgB,EAAA;AACnB,IAAA,gBAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACf,CAAC,EAFI,gBAAgB,KAAhB,gBAAgB,GAEpB,EAAA,CAAA,CAAA,CAAA;MAyBY,kBAAkB,CAAA;AAgB7B,IAAA,WAAA,CACU,QAAkB,EAClB,QAAkB,EAClB,MAAsB,EACtB,QAAmB,EAAA;AAHnB,QAAA,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAU;AAClB,QAAA,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAU;AAClB,QAAA,IAAM,CAAA,MAAA,GAAN,MAAM,CAAgB;AACtB,QAAA,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAW;AAVX,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,YAAY,EAA2B,CAAC;AAE1E,QAAA,IAAW,CAAA,WAAA,GAAG,KAAK,CAAC;KASvB;IAEG,eAAe,GAAA;AACpB,QAAA,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;YAChE,OAAO;AACR,SAAA;AAED,QAAA,gBAAgB,CAAC;YACf,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,aAAa,EAAE,IAAI,CAAC,aAAa;AAClC,SAAA,CAAC,CAAC,IAAI,CAAC,SAAS,IAAG;AAClB,YAAA,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,SAAS,CAAC,IAAI,CAAC,aAAuB,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,IAAG;;gBAC7F,MAAM,aAAa,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC1D,gBAAA,MAAM,oBAAoB,GAAG,aAAa,CAAC,wBAAwB,CAAC,uBAAuB,CACzF,SAAS,CAAC,IAAI,CAAC,aAAuB,CAAC,CAAC,aAAa,CACtD,CAAC;gBACF,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AAC3C,gBAAA,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,oBAAoB,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;AAEpF,gBAAA,IAAI,CAAC,QAAQ,GAAG,QAAuC,CAAC;gBACxD,IAAI,CAAC,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;gBAC/B,IAAI,CAAC,QAAQ,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;gBACzC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC;AAEvD,gBAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAA,EAAA,GAAA,IAAI,CAAC,aAAa,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,aAAa,EAAE,IAAI,CAAC,CAAC;AACnE,gBAAA,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;AACnC,aAAC,CAAC,CAAC;AACL,SAAC,CAAC,CAAC;KACJ;AAEM,IAAA,WAAW,CAAC,OAAsB,EAAA;AACvC,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAClB,OAAO;AACR,SAAA;AAED,QAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;KACpC;;+GA1DU,kBAAkB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,QAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,QAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,cAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAlB,kBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,kBAAkB,EACY,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,UAAA,EAAA,YAAA,EAAA,aAAA,EAAA,eAAA,EAAA,IAAA,EAAA,MAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,OAAA,EAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,oBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAAA,gBAAgB,EAC/B,EAAA,EAAA,YAAA,EAAA,KAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,KAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAAA,WAAW,gJClDvC,2BACA,EAAA,MAAA,EAAA,CAAA,wCAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;2FD+Ca,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAP9B,SAAS;+BAEE,uBAAuB,EAAA,eAAA,EAGhB,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,2BAAA,EAAA,MAAA,EAAA,CAAA,wCAAA,CAAA,EAAA,CAAA;2KAGqB,kBAAkB,EAAA,CAAA;sBAArF,SAAS;gBAAC,IAAA,EAAA,CAAA,oBAAoB,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAA;gBACX,GAAG,EAAA,CAAA;sBAAlD,SAAS;gBAAC,IAAA,EAAA,CAAA,KAAK,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,CAAA;gBACY,aAAa,EAAA,CAAA;sBAA/D,SAAS;gBAAC,IAAA,EAAA,CAAA,YAAY,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAA;gBAE1B,WAAW,EAAA,CAAA;sBAA1B,KAAK;gBACU,UAAU,EAAA,CAAA;sBAAzB,KAAK;gBACU,aAAa,EAAA,CAAA;sBAA5B,KAAK;gBACU,IAAI,EAAA,CAAA;sBAAnB,KAAK;gBACU,SAAS,EAAA,CAAA;sBAAxB,KAAK;gBACY,gBAAgB,EAAA,CAAA;sBAAjC,MAAM;;;AEjDT;MAMa,sBAAsB,CAAA;IAMjC,WAAoB,CAAA,SAA2B,EAAU,YAAiC,EAAA;AAAtE,QAAA,IAAS,CAAA,SAAA,GAAT,SAAS,CAAkB;AAAU,QAAA,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAqB;AALnF,QAAA,IAAe,CAAA,eAAA,GAAgC,EAAE,CAAC;QAMvD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;QAChC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC;KAC1C;IAEM,QAAQ,GAAA;QACb,IAAI,CAAC,YAAY,EAAE,CAAC;KACrB;AAEM,IAAA,YAAY,CAAC,WAAiB,EAAA;AACnC,QAAA,MAAM,UAAU,GAAe;AAC7B,YAAA,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE;AACnB,YAAA,MAAM,EAAE,QAAQ;YAChB,WAAW;SACZ,CAAC;AAEF,QAAA,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;KAC9C;AAEM,IAAA,eAAe,CAAC,WAAgB,EAAA;AACrC,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;AAEjE,QAAA,MAAM,QAAQ,GAAG,MAAM,CAAC,WAAW,CAAC,GAAG,WAAW,CAAC,kBAAkB,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;QAEpF,IAAI,QAAQ,KAAK,QAAQ,EAAE;AACzB,YAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;AAC7B,SAAA;KACF;IAEM,YAAY,GAAA;AACjB,QAAA,MAAM,UAAU,GAAe;AAC7B,YAAA,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE;AACnB,YAAA,MAAM,EAAE,QAAQ;SACjB,CAAC;AAEF,QAAA,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;KAC9C;;IAGM,OAAO,GAAA;AACZ,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAC;AACjD,QAAA,MAAM,YAAY,GAAG,YAAY,GAAG,CAAC,CAAC;QAEtC,IACE,YAAY,IAAI,CAAC,CAAC;YAClB,IAAI,CAAC,OAAO,CAAC,YAAY;YACzB,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,YAAY,CAAC,MAAM,IAAI,YAAY,EAC7D;AACA,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,CAAC;AACzE,SAAA;KACF;IAEM,OAAO,GAAA;AACZ,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAC;AACjD,QAAA,MAAM,YAAY,GAAG,YAAY,GAAG,CAAC,CAAC;QAEtC,IACE,YAAY,IAAI,CAAC,CAAC;YAClB,IAAI,CAAC,OAAO,CAAC,YAAY;YACzB,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,YAAY,CAAC,MAAM,IAAI,YAAY,EAC7D;AACA,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,CAAC;AACzE,SAAA;KACF;IAEO,YAAY,GAAA;AAClB,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK;AACvC,cAAE,oBAAoB,CAAC,uBAAuB,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC;cAC7F,EAAE,CAAC;KACR;IAEO,oBAAoB,GAAA;AAC1B,QAAA,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC;AAEjB,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,IAAI,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,YAAY,CAAC;AACzF,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC;QAE/D,IAAI,YAAY,IAAI,UAAU,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE;AACtD,YAAA,OAAO,YAAY,CAAC,SAAS,CAAC,WAAW,IAAI,YAAY,KAAK,WAAW,CAAC,CAAC;AAC5E,SAAA;AAED,QAAA,OAAO,KAAK,CAAC;KACd;;mHAxFU,sBAAsB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,mBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;uGAAtB,sBAAsB,EAAA,QAAA,EAAA,0BAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAAtB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBALlC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;;AAET,oBAAA,QAAQ,EAAE,0BAA0B;AACpC,oBAAA,QAAQ,EAAE,cAAc;iBACzB,CAAA;;;MCgBY,oBAAoB,CAAA;AAuB/B,IAAA,WAAA,CAAoB,KAAiB,EAAU,gBAAkC,EAAU,OAAgB,EAAA;AAAvF,QAAA,IAAK,CAAA,KAAA,GAAL,KAAK,CAAY;AAAU,QAAA,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAkB;AAAU,QAAA,IAAO,CAAA,OAAA,GAAP,OAAO,CAAS;AArB1F,QAAA,IAAA,CAAA,eAAe,GAA2B,IAAI,YAAY,EAAY,CAAC;AACjF,QAAA,IAAQ,CAAA,QAAA,GAAa,EAAE,CAAC;AACxB,QAAA,IAAY,CAAA,YAAA,GAAG,EAAE,CAAC;AAClB,QAAA,IAAO,CAAA,OAAA,GAAG,KAAK,CAAC;AAChB,QAAA,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;AAKjB,QAAA,IAAM,CAAA,MAAA,GAAG,KAAK,CAAC;AAKf,QAAA,IAAQ,CAAA,QAAA,GAAiC,MAAK;YACnD,OAAO;AACT,SAAC,CAAC;AACK,QAAA,IAAS,CAAA,SAAA,GAAe,MAAK;YAClC,OAAO;AACT,SAAC,CAAC;KAE6G;IAExG,WAAW,GAAA;QAChB,IAAI,CAAC,eAAe,EAAE,CAAC;KACxB;AAEM,IAAA,UAAU,CAAC,QAAkB,EAAA;AAClC,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAEzB,IAAI,CAAC,eAAe,EAAE,CAAC;KACxB;AAEM,IAAA,gBAAgB,CAAC,QAAa,EAAA;AACnC,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;KAC1B;AAEM,IAAA,iBAAiB,CAAC,SAAc,EAAA;AACrC,QAAA,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;KAC5B;AAEM,IAAA,gBAAgB,CAAC,QAAiB,EAAA;AACvC,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;KAC1B;AAEM,IAAA,eAAe,CAAC,KAAU,EAAA;AAC/B,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,KAAK,KAAK,CAAC,CAAC;AAEhE,QAAA,IAAI,YAAY,EAAE;AAChB,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,KAAK,KAAK,CAAC,CAAC;AAC9D,SAAA;AAAM,aAAA;YACL,IAAI,CAAC,QAAQ,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;AAC3C,SAAA;QAED,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACzC,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;KAC9B;IAEM,YAAY,GAAA;AACjB,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,eAAe,EAAE,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;KAC5D;IAEO,eAAe,GAAA;QACrB,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7C,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC,MAAM,GAAG,EAAE,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,mBAAmB,GAAG,WAAW,CAAC;KACxG;IAEO,YAAY,GAAA;AAClB,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;AACpC,YAAA,WAAW,EAAE,IAAI;AACjB,YAAA,aAAa,EAAE,kCAAkC;YACjD,cAAc,EAAE,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,KAAK,EAAE;YACrD,gBAAgB,EAAE,IAAI,CAAC,OAAO;AAC3B,iBAAA,QAAQ,EAAE;AACV,iBAAA,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC;AAC/B,iBAAA,aAAa,CAAC;AACb,gBAAA;AACE,oBAAA,OAAO,EAAE,KAAK;AACd,oBAAA,OAAO,EAAE,QAAQ;AACjB,oBAAA,QAAQ,EAAE,KAAK;AACf,oBAAA,QAAQ,EAAE,KAAK;AACf,oBAAA,OAAO,EAAE,CAAC;AACX,iBAAA;aACF,CAAC;AACL,SAAA,CAAC,CAAC;AAEH,QAAA,MAAM,cAAc,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;AACvF,QAAA,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;AAEvC,QAAA,IAAI,CAAC,yBAAyB,GAAG,IAAI,CAAC,sBAAsB,EAAE,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC;KACxG;IAEO,sBAAsB,GAAA;AAC5B,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;YACpB,OAAO,EAAE,EAAE,CAAC;AACb,SAAA;QAED,MAAM,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC;QACvD,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;AAElD,QAAA,OAAO,KAAK,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;KAC3C;IAEO,eAAe,GAAA;;QACrB,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YACpC,OAAO;AACR,SAAA;AAED,QAAA,CAAA,EAAA,GAAA,IAAI,CAAC,yBAAyB,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,WAAW,EAAE,CAAC;AAC9C,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AACpB,QAAA,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;KAC1B;;iHAnHU,oBAAoB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,IAAA,CAAA,OAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAApB,oBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,oBAAoB,EARpB,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,cAAA,EAAA,aAAA,EAAA,EAAA,EAAA,SAAA,EAAA;AACT,QAAA;AACE,YAAA,OAAO,EAAE,iBAAiB;AAC1B,YAAA,KAAK,EAAE,IAAI;AACX,YAAA,WAAW,EAAE,oBAAoB;AAClC,SAAA;AACF,KAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC5BH,kmBAsBA,EAAA,MAAA,EAAA,CAAA,y3BAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAT,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FDQa,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAbhC,SAAS;YAEE,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,kBAAkB,EAGjB,SAAA,EAAA;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,KAAK,EAAE,IAAI;AACX,4BAAA,WAAW,EAAsB,oBAAA;AAClC,yBAAA;qBACF,EAAA,QAAA,EAAA,kmBAAA,EAAA,MAAA,EAAA,CAAA,y3BAAA,CAAA,EAAA,CAAA;wJAGe,OAAO,EAAA,CAAA;sBAAtB,KAAK;gBACW,eAAe,EAAA,CAAA;sBAA/B,MAAM;gBAM8B,eAAe,EAAA,CAAA;sBAAnD,SAAS;uBAAC,iBAAiB,CAAA;gBAGrB,MAAM,EAAA,CAAA;sBADZ,WAAW;uBAAC,cAAc,CAAA;;;AE9BvB,MAAO,sBAAuB,SAAQ,sBAAsB,CAAA;IAKhE,WAAY,CAAA,SAA2B,EAAE,YAAiC,EAAA;;AACxE,QAAA,KAAK,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;QAE/B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;AACnC,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;AACzC,QAAA,IAAI,CAAC,aAAa;AAChB,YAAA,CAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,IAAI,CAAC,OAAO,CAAC,KAAK,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,UAAU,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,0CAAE,IAAI;AACnG,gBAAA,UAAU,CAAC;KACd;AAEM,IAAA,eAAe,CAAC,YAAqB,EAAA;AAC1C,QAAA,OAAO,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAI,YAAyB,CAAC;KAC/E;IAEM,YAAY,CAAC,YAAqB,EAAE,KAAsB,EAAA;AAC/D,QAAA,IAAI,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,EAAE;YACpC,OAAO,KAAK,KAAK,CAAC,GAAG,OAAO,GAAG,MAAM,CAAC;AACvC,SAAA;AACD,QAAA,OAAO,KAAe,CAAC;KACxB;AAEM,IAAA,uBAAuB,CAAC,KAAsB,EAAA;;AACnD,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAEpD,IAAI,CAAC,WAAW,EAAE;YAChB,OAAO;AACR,SAAA;QAED,MAAM,YAAY,GAAwB,CAAA,EAAA,GAAA,WAAW,CAAC,KAAK,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,EAAE,CAAC;AAClE,QAAA,MAAM,QAAQ,GAAG,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,GAAG,CAAC,GAAG,YAAY,EAAE,KAAK,CAAC,CAAC;AACjH,QAAA,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAE/B,KAAK,CAAC,YAAY,EAAE,CAAC;KACtB;AAEM,IAAA,4BAA4B,CAAC,KAAU,EAAA;AAC5C,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAEpD,IAAI,CAAC,WAAW,EAAE;YAChB,OAAO;AACR,SAAA;AAED,QAAA,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC5B,KAAK,CAAC,YAAY,EAAE,CAAC;KACtB;AAEO,IAAA,aAAa,CAAC,KAAU,EAAA;AAC9B,QAAA,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC;KAC/F;IAEO,cAAc,GAAA;;AACpB,QAAA,QACE,CAAC,CAAA,CAAA,EAAA,GAAA,IAAI,CAAC,OAAO,CAAC,KAAK,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,UAAU,KAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,aAAa,CAAC,MAAK,CAAA,EAAA,GAAA,IAAI,CAAC,OAAO,CAAC,KAAK,0CAAE,IAAI,CAAA,IAAI,EAAE,EAClH;KACH;;mHA3DU,sBAAsB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAO,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,mBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAtB,sBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,sBAAsB,6ECVnC,u6IA8HA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAT,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,QAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,4BAAA,EAAA,QAAA,EAAA,uGAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,0BAAA,EAAA,QAAA,EAAA,6GAAA,EAAA,MAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,8FAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,iBAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAW,oBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FDpHa,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBALlC,SAAS;+BAEE,gBAAgB,EAAA,QAAA,EAAA,u6IAAA,EAAA,CAAA;;;MEMf,yBAAyB,CAAA;IAQpC,WAAoB,CAAA,SAA2B,EAAU,YAAiC,EAAA;;AAAtE,QAAA,IAAS,CAAA,SAAA,GAAT,SAAS,CAAkB;AAAU,QAAA,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAqB;AAF1E,QAAA,IAAa,CAAA,aAAA,GAAG,KAAK,CAAC;QAGpC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;QAChC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC;QAEzC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;AAEnC,QAAA,CAAA,EAAA,GAAA,IAAI,CAAC,OAAO,CAAC,YAAY,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,YAAY,CAAC,OAAO,CAAC,IAAI,IAAG;AACrD,YAAA,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE;AAC1B,gBAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACrD,aAAA;AACH,SAAC,CAAC,CAAC;KACJ;AAEM,IAAA,YAAY,CAAC,WAAmB,EAAA;AACrC,QAAA,MAAM,UAAU,GAAe;AAC7B,YAAA,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE;AACnB,YAAA,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC;AACnC,kBAAE,QAAQ;kBACR,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,oBAAoB,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC;AAC1G,sBAAE,QAAQ;AACV,sBAAE,QAAQ;YACZ,WAAW;SACZ,CAAC;AAEF,QAAA,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;KAC9C;AAEM,IAAA,WAAW,CAAC,WAAmB,EAAA;QACpC,OAAO,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,WAAW,CAAC,CAAC;KACjD;IAEM,eAAe,GAAA;;AACpB,QAAA,MAAM,UAAU,GAAG,CAAA,EAAA,GAAA,IAAI,CAAC,OAAO,CAAC,KAAK,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AAEhF,QAAA,MAAM,UAAU,GAAe;AAC7B,YAAA,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE;AACnB,YAAA,MAAM,EAAE,QAAQ;AAChB,YAAA,oBAAoB,EAAE,IAAI,CAAC,aAAa,EAAE,GAAG,EAAE,GAAG,UAAU,GAAG,UAAU,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE;SAC5G,CAAC;AAEF,QAAA,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;KAC9C;IAEM,aAAa,GAAA;;AAClB,QAAA,MAAM,QAAQ,GAA2B,CAAA,EAAA,GAAA,IAAI,CAAC,OAAO,CAAC,KAAK,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,SAAS,CAAC,MAAM,CAC3E,EAAE,IAAI,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CACzD,CAAC;AAEF,QAAA,MAAM,UAAU,GAAG,CAAA,EAAA,GAAA,IAAI,CAAC,OAAO,CAAC,KAAK,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAEhF,OAAO,UAAU,GAAG,UAAU,CAAC,WAAW,CAAC,MAAM,MAAK,QAAQ,aAAR,QAAQ,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAR,QAAQ,CAAE,MAAM,CAAA,GAAG,KAAK,CAAC;KAChF;AAEM,IAAA,WAAW,CAAC,WAAmB,EAAA;;QACpC,IAAI,CAAA,EAAA,GAAA,IAAI,CAAC,OAAO,CAAC,KAAK,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,SAAS,EAAE;AACjC,YAAA,OAAO,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,IAAI,CAAC,oBAAoB,CAAC,WAAW,CAAC,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,QAAQ,MAAI,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAA,EAAE,CAAC;AAC/D,SAAA;AACD,QAAA,OAAO,EAAE,CAAC;KACX;AAEO,IAAA,oBAAoB,CAAC,WAAmB,EAAA;;QAC9C,QACE,CAAA,CAAA,EAAA,GAAA,IAAI,CAAC,OAAO,CAAC,KAAK,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,SAAS;AAC7B,YAAA,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,WAAW,CAAC,WAAW,EAAE,CAAC,EACvG;KACH;;sHAzEU,yBAAyB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAH,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,mBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAzB,yBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,yBAAyB,sGCbtC,yhGA+EA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAT,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FDlEa,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBALrC,SAAS;+BAEE,oBAAoB,EAAA,QAAA,EAAA,yhGAAA,EAAA,CAAA;mIASd,aAAa,EAAA,CAAA;sBAA5B,KAAK;;;MELK,yBAAyB,CAAA;IAQpC,WAAoB,CAAA,SAA2B,EAAU,YAAiC,EAAA;;AAAtE,QAAA,IAAS,CAAA,SAAA,GAAT,SAAS,CAAkB;AAAU,QAAA,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAqB;AAFnF,QAAA,IAAM,CAAA,MAAA,GAAoB,EAAE,CAAC;QAGlC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;QAChC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC;QAEzC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QACnC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,GAAG,KAAK,CAAC;AAE9C,QAAA,IAAI,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE;AAC/B,YAAA,CAAA,EAAA,GAAA,IAAI,CAAC,OAAO,CAAC,YAAY,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,YAAY,CAAC,OAAO,CAAC,WAAW,IAAG;AAC5D,gBAAA,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,sBAAsB,CAAC,WAAW,CAAC,CAAC;AACtE,aAAC,CAAC,CAAC;AACJ,SAAA;KACF;IAEM,YAAY,GAAA;AACjB,QAAA,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,EAAE;AACrE,YAAA,OAAO,KAAK,CAAC;AACd,SAAA;AAED,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK;AACvB,cAAE,oBAAoB,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC;cAClF,KAAK,CAAC;KACX;IAEM,YAAY,GAAA;QACjB,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE;YAC7C,OAAO;AACR,SAAA;AAED,QAAA,MAAM,UAAU,GAAe;AAC7B,YAAA,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE;AACnB,YAAA,MAAM,EAAE,QAAQ;SACjB,CAAC;AAEF,QAAA,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;KAC9C;AAEO,IAAA,sBAAsB,CAAC,WAAmB,EAAA;;QAChD,IAAI,MAAM,GAAuB,EAAE,CAAC;AACpC,QAAA,IAAI,WAAW,EAAE;AACf,YAAA,MAAM,UAAU,GAAG,CAAA,EAAA,GAAA,IAAI,CAAC,OAAO,CAAC,KAAK,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AAChF,YAAA,MAAM,UAAU,GAAG,UAAU,KAAA,IAAA,IAAV,UAAU,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAV,UAAU,CAAE,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,WAAW,CAAC,WAAW,EAAE,CAAC,CAAC;AACzG,YAAA,IAAI,UAAU,IAAI,UAAU,CAAC,iBAAiB,EAAE;AAC9C,gBAAA,MAAM,GAAG,UAAU,CAAC,iBAAiB,CAAC;AACvC,aAAA;AACF,SAAA;AAED,QAAA,MAAM,OAAO,GAAqB;AAChC,YAAA,YAAY,EAAE,UAAU;AACxB,YAAA,QAAQ,EAAE,CAAC;AACX,YAAA,SAAS,EAAE,CAAC;AACZ,YAAA,UAAU,EAAE,EAAE;SACf,CAAC;AAEF,QAAA,MAAM,SAAS,GAAqB;AAClC,YAAA,YAAY,EAAE,WAAW;AACzB,YAAA,QAAQ,EAAE,CAAC;AACX,YAAA,SAAS,EAAE,CAAC;AACZ,YAAA,UAAU,EAAE,EAAE;SACf,CAAC;AAEF,QAAA,MAAM,CAAC,OAAO,CAAC,CAAC,IAAG;AACjB,YAAA,IAAI,CAAC,CAAC,YAAY,KAAK,OAAO,CAAC,YAAY,EAAE;AAC3C,gBAAA,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;AACtB,aAAA;AACD,YAAA,IAAI,CAAC,CAAC,YAAY,KAAK,SAAS,CAAC,YAAY,EAAE;AAC7C,gBAAA,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;AACxB,aAAA;AACH,SAAC,CAAC,CAAC;QAEH,MAAM,MAAM,GAAuB,EAAE,CAAC;AACtC,QAAA,IAAI,OAAO,CAAC,SAAS,GAAG,CAAC,EAAE;AACzB,YAAA,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACtB,SAAA;AACD,QAAA,IAAI,SAAS,CAAC,SAAS,GAAG,CAAC,EAAE;AAC3B,YAAA,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AACxB,SAAA;AAED,QAAA,OAAO,MAAM,CAAC;KACf;IAEO,GAAG,CAAC,MAAwB,EAAE,GAAqB,EAAA;QACzD,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC;QACjD,MAAM,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,GAAG,GAAG,CAAC,SAAS,CAAC;QACpD,IAAI,GAAG,CAAC,WAAW,EAAE;AACnB,YAAA,MAAM,CAAC,WAAW,GAAG,GAAG,CAAC,WAAW,CAAC;AACtC,SAAA;KACF;;sHA/FU,yBAAyB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAQ,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,mBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAzB,yBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,yBAAyB,0DCdtC,k0DAyCA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAT,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,0BAAA,EAAA,QAAA,EAAA,6GAAA,EAAA,MAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAY,EAAA,CAAA,UAAA,EAAA,IAAA,EAAA,QAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FD3Ba,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBALrC,SAAS;+BAEE,oBAAoB,EAAA,QAAA,EAAA,k0DAAA,EAAA,CAAA;;;MEInB,sBAAsB,CAAA;IAQjC,WAAoB,CAAA,SAA2B,EAAU,YAAiC,EAAA;AAAtE,QAAA,IAAS,CAAA,SAAA,GAAT,SAAS,CAAkB;AAAU,QAAA,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAqB;AAFnF,QAAA,IAAM,CAAA,MAAA,GAAoB,EAAE,CAAC;QAGlC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;QAChC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC;QAEzC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;KACpC;IAEM,QAAQ,GAAA;;QACb,IAAI,CAAC,cAAc,EAAE,CAAC;AAEtB,QAAA,CAAA,EAAA,GAAA,IAAI,CAAC,OAAO,CAAC,YAAY,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,YAAY,CAAC,OAAO,CAAC,IAAI,IAAG;AACrD,YAAA,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE;AAC1B,gBAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACrD,aAAA;AACH,SAAC,CAAC,CAAC;KACJ;IAEM,YAAY,CAAC,KAAU,EAAE,WAAgB,EAAA;QAC9C,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,KAAK,CAAC,eAAe,EAAE,CAAC;AAExB,QAAA,MAAM,UAAU,GAAe;AAC7B,YAAA,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE;AACnB,YAAA,MAAM,EAAE,IAAI,CAAC,gBAAgB,EAAE,GAAG,QAAQ,GAAG,QAAQ;YACrD,WAAW;SACZ,CAAC;AAEF,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;AAC3D,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,WAAW,EAAE,CAAC;AAEnD,QAAA,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;KAC9C;AAEM,IAAA,WAAW,CAAC,WAAmB,EAAA;QACpC,OAAO,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,WAAW,CAAC,CAAC;KACjD;AAEM,IAAA,WAAW,CAAC,WAAmB,EAAA;;QACpC,MAAM,QAAQ,GAAG,IAAI,CAAC,oBAAoB,CAAC,WAAW,CAAC,CAAC;QAExD,IAAI,CAAA,CAAA,EAAA,GAAA,IAAI,CAAC,OAAO,CAAC,KAAK,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,SAAS,KAAI,QAAQ,EAAE;YAC7C,OAAO,QAAQ,CAAC,QAAQ,CAAC;AAC1B,SAAA;AAED,QAAA,OAAO,EAAE,CAAC;KACX;AAEM,IAAA,QAAQ,CAAC,KAAuB,EAAA;QACrC,IAAI,MAAM,GAAG,EAAE,CAAC;AAChB,QAAA,IAAI,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC,QAAQ,EAAE;YACpC,MAAM,IAAI,UAAU,GAAG,KAAK,CAAC,SAAS,GAAG,WAAW,CAAC;AACtD,SAAA;AACD,QAAA,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC;QACzB,IAAI,KAAK,CAAC,WAAW,EAAE;YACrB,MAAM,IAAI,GAAG,GAAG,KAAK,CAAC,WAAW,GAAG,GAAG,CAAC;AACzC,SAAA;AACD,QAAA,OAAO,MAAM,CAAC;KACf;IAEO,gBAAgB,GAAA;;AACtB,QAAA,MAAM,QAAQ,GAAG,CAAA,EAAA,GAAA,IAAI,CAAC,OAAO,CAAC,KAAK,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,SAAS,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AAEhH,QAAA,OAAO,QAAQ,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,GAAG,KAAK,CAAC;KAC/C;AAEO,IAAA,oBAAoB,CAAC,WAAmB,EAAA;QAC9C,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,YAAY,CAAC,oBAAoB,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,WAAW,CAAC,GAAG,SAAS,CAAC;KAC5G;IAEO,cAAc,GAAA;;AACpB,QAAA,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;AACjB,QAAA,IAAI,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE;AAC/B,YAAA,CAAA,EAAA,GAAA,IAAI,CAAC,OAAO,CAAC,YAAY,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,YAAY,CAAC,OAAO,CAAC,WAAW,IAAG;AAC5D,gBAAA,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,sBAAsB,CAAC,WAAW,CAAC,CAAC;AACtE,aAAC,CAAC,CAAC;AACJ,SAAA;KACF;AAEO,IAAA,sBAAsB,CAAC,WAAmB,EAAA;;QAChD,IAAI,MAAM,GAAuB,EAAE,CAAC;AACpC,QAAA,IAAI,WAAW,EAAE;YACf,MAAM,QAAQ,GACZ,CAAA,CAAA,EAAA,GAAA,IAAI,CAAC,OAAO,CAAC,KAAK,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,SAAS;AAC7B,gBAAA,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,WAAW,CAAC,WAAW,EAAE,CAAC,CAAC;AAC1G,YAAA,IAAI,QAAQ,IAAI,QAAQ,CAAC,WAAW,EAAE;gBACpC,MAAM,GAAG,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,IAAG;AACrC,oBAAA,MAAM,KAAK,GAAqB;wBAC9B,SAAS,EAAE,EAAE,CAAC,SAAS;wBACvB,QAAQ,EAAE,EAAE,CAAC,QAAQ;wBACrB,YAAY,EAAE,EAAE,CAAC,YAAY;wBAC7B,UAAU,EAAE,EAAE,CAAC,UAAU;qBAC1B,CAAC;AACF,oBAAA,OAAO,KAAK,CAAC;AACf,iBAAC,CAAC,CAAC;AACJ,aAAA;AAAM,iBAAA;AACL,gBAAA,MAAM,UAAU,GAAG,CAAA,EAAA,GAAA,IAAI,CAAC,OAAO,CAAC,KAAK,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AAChF,gBAAA,MAAM,UAAU,GAAG,UAAU,KAAA,IAAA,IAAV,UAAU,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAV,UAAU,CAAE,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,WAAW,CAAC,WAAW,EAAE,CAAC,CAAC;AACzG,gBAAA,IAAI,UAAU,IAAI,UAAU,CAAC,iBAAiB,EAAE;AAC9C,oBAAA,MAAM,GAAG,UAAU,CAAC,iBAAiB,CAAC;AACvC,iBAAA;AACF,aAAA;AACF,SAAA;AAED,QAAA,MAAM,OAAO,GAAqB;AAChC,YAAA,YAAY,EAAE,UAAU;AACxB,YAAA,QAAQ,EAAE,CAAC;AACX,YAAA,SAAS,EAAE,CAAC;AACZ,YAAA,UAAU,EAAE,EAAE;SACf,CAAC;AAEF,QAAA,MAAM,SAAS,GAAqB;AAClC,YAAA,YAAY,EAAE,WAAW;AACzB,YAAA,QAAQ,EAAE,CAAC;AACX,YAAA,SAAS,EAAE,CAAC;AACZ,YAAA,UAAU,EAAE,EAAE;SACf,CAAC;AAEF,QAAA,MAAM,CAAC,OAAO,CAAC,CAAC,IAAG;AACjB,YAAA,IAAI,CAAC,CAAC,YAAY,KAAK,OAAO,CAAC,YAAY,EAAE;AAC3C,gBAAA,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;AACtB,aAAA;AACD,YAAA,IAAI,CAAC,CAAC,YAAY,KAAK,SAAS,CAAC,YAAY,EAAE;AAC7C,gBAAA,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;AACxB,aAAA;AACH,SAAC,CAAC,CAAC;QAEH,MAAM,MAAM,GAAuB,EAAE,CAAC;AACtC,QAAA,IAAI,OAAO,CAAC,SAAS,GAAG,CAAC,EAAE;AACzB,YAAA,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACtB,SAAA;AACD,QAAA,IAAI,SAAS,CAAC,SAAS,GAAG,CAAC,EAAE;AAC3B,YAAA,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AACxB,SAAA;AACD,QAAA,OAAO,MAAM,CAAC;KACf;IAEO,GAAG,CAAC,MAAwB,EAAE,GAAqB,EAAA;QACzD,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC;QACjD,MAAM,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,GAAG,GAAG,CAAC,SAAS,CAAC;QACpD,IAAI,GAAG,CAAC,WAAW,EAAE;AACnB,YAAA,MAAM,CAAC,WAAW,GAAG,GAAG,CAAC,WAAW,CAAC;AACtC,SAAA;KACF;;mHAtJU,sBAAsB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAJ,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,mBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAtB,sBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,sBAAsB,uDCfnC,i+DAgDA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAT,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,8FAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,iBAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FDjCa,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBANlC,SAAS;+BAGE,iBAAiB,EAAA,QAAA,EAAA,i+DAAA,EAAA,CAAA;;;MEEhB,iBAAiB,CAAA;AAa5B,IAAA,WAAA,CACU,SAA2B,EAC3B,gBAAyC,EACzC,YAAiC,EACjC,cAA8B,EAAA;;AAH9B,QAAA,IAAS,CAAA,SAAA,GAAT,SAAS,CAAkB;AAC3B,QAAA,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAyB;AACzC,QAAA,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAqB;AACjC,QAAA,IAAc,CAAA,cAAA,GAAd,cAAc,CAAgB;AAhBxB,QAAA,IAAe,CAAA,eAAA,GAAG,YAAY,CAAC;AAKxC,QAAA,IAAM,CAAA,MAAA,GAAG,CAAC,CAAC;AAKX,QAAA,IAAM,CAAA,MAAA,GAAuB,EAAE,CAAC;QAQrC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;QAChC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC;QACzC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC;QAEvC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QACnC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,GAAG,KAAK,CAAC;AAC9C,QAAA,IAAI,CAAC,WAAW;YACd,CAAC,CAAA,MAAA,IAAI,CAAC,OAAO,CAAC,KAAK,0CAAE,UAAU,KAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,aAAa,CAAC;AAC/E,iBAAA,CAAA,EAAA,GAAA,IAAI,CAAC,OAAO,CAAC,KAAK,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,IAAI,CAAA;AACxB,gBAAA,EAAE,CAAC;KACN;IAEM,QAAQ,GAAA;;AACb,QAAA,IAAI,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE;AAC/B,YAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;AAChC,SAAA;AAED,QAAA,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,KAAK,SAAS,EAAE;YAC1C,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;AAEhD,YAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,IAAI,CAAC,OAAO,CAAC,KAAK,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,QAAQ,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,OAAO,CAAC,OAAO,IAAG;AAC9C,gBAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,eAAe,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;AAC3E,aAAC,CAAC,CAAC;AACJ,SAAA;KACF;IAEM,YAAY,GAAA;AACjB,QAAA,MAAM,UAAU,GAAe;AAC7B,YAAA,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE;AACnB,YAAA,MAAM,EAAE,QAAQ;SACjB,CAAC;AAEF,QAAA,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;KAC9C;IAEM,oBAAoB,GAAA;AACzB,QAAA,MAAM,UAAU,GAAe;AAC7B,YAAA,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE;AACnB,YAAA,MAAM,EAAE,WAAW;SACpB,CAAC;AAEF,QAAA,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;KAC9C;IAEM,cAAc,GAAA;AACnB,QAAA,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE;AACtB,YAAA,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;AAC7D,SAAA;KACF;IAEM,SAAS,GAAA;;QACd,IAAI,MAAM,GAAuB,EAAE,CAAC;QACpC,IAAI,CAAA,EAAA,GAAA,IAAI,CAAC,OAAO,CAAC,KAAK,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,WAAW,EAAE;AACnC,YAAA,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,IAAG;AAC/C,gBAAA,MAAM,KAAK,GAAqB;oBAC9B,SAAS,EAAE,EAAE,CAAC,SAAS;oBACvB,QAAQ,EAAE,EAAE,CAAC,QAAQ;oBACrB,YAAY,EAAE,EAAE,CAAC,YAAY;oBAC7B,UAAU,EAAE,EAAE,CAAC,UAAU;iBAC1B,CAAC;AAEF,gBAAA,OAAO,KAAK,CAAC;AACf,aAAC,CAAC,CAAC;AACJ,SAAA;AAED,QAAA,MAAM,OAAO,GAAqB;AAChC,YAAA,YAAY,EAAE,UAAU;AACxB,YAAA,QAAQ,EAAE,CAAC;AACX,YAAA,SAAS,EAAE,CAAC;AACZ,YAAA,UAAU,EAAE,EAAE;SACf,CAAC;AAEF,QAAA,MAAM,SAAS,GAAqB;AAClC,YAAA,YAAY,EAAE,WAAW;AACzB,YAAA,QAAQ,EAAE,CAAC;AACX,YAAA,SAAS,EAAE,CAAC;AACZ,YAAA,UAAU,EAAE,EAAE;SACf,CAAC;AAEF,QAAA,MAAM,CAAC,OAAO,CAAC,CAAC,IAAG;AACjB,YAAA,IAAI,CAAC,CAAC,YAAY,KAAK,OAAO,CAAC,YAAY,EAAE;AAC3C,gBAAA,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;AACtB,aAAA;AACD,YAAA,IAAI,CAAC,CAAC,YAAY,KAAK,SAAS,CAAC,YAAY,EAAE;AAC7C,gBAAA,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;AACxB,aAAA;AACH,SAAC,CAAC,CAAC;QAEH,MAAM,MAAM,GAAuB,EAAE,CAAC;AACtC,QAAA,IAAI,OAAO,CAAC,SAAS,GAAG,CAAC,EAAE;AACzB,YAAA,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACtB,SAAA;AACD,QAAA,IAAI,SAAS,CAAC,SAAS,GAAG,CAAC,EAAE;AAC3B,YAAA,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AACxB,SAAA;AAED,QAAA,OAAO,MAAM,CAAC;KACf;IAEO,GAAG,CAAC,MAAwB,EAAE,GAAqB,EAAA;QACzD,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC;QACjD,MAAM,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,GAAG,GAAG,CAAC,SAAS,CAAC;QACpD,IAAI,GAAG,CAAC,WAAW,EAAE;AACnB,YAAA,MAAM,CAAC,WAAW,GAAG,GAAG,CAAC,WAAW,CAAC;AACtC,SAAA;KACF;;8GA5HU,iBAAiB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAQ,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAAK,uBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,mBAAA,EAAA,EAAA,EAAA,KAAA,EAAAR,IAAA,CAAA,cAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAjB,iBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,iBAAiB,iDCd9B,yzFAmFA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAM,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAG,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,UAAA,EAAA,IAAA,EAAA,QAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FDrEa,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAL7B,SAAS;+BAEE,WAAW,EAAA,QAAA,EAAA,yzFAAA,EAAA,CAAA;;;MEDV,gBAAgB,CAAA;AAC3B,IAAA,WAAA,CAAoB,UAAgC,EAAA;AAAhC,QAAA,IAAU,CAAA,UAAA,GAAV,UAAU,CAAsB;KAAI;IAEjD,KAAK,CAAC,aAA4B,EAAE,UAAkB,EAAA;AAC3D,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC,SAAS,EAAE,CAAC;KACrE;IAEM,QAAQ,CAAC,UAAkB,EAAE,SAAkB,EAAA;AACpD,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC,SAAS,EAAE,CAAC;KACpE;IAEM,SAAS,CAAC,UAAkB,EAAE,WAAqB,EAAA;AACxD,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC,SAAS,EAAE,CAAC;KACvE;IAEM,cAAc,CAAc,IAAY,EAAE,MAAkB,EAAA;AACjE,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,cAAc,CAAI,IAAI,EAAE,MAAM,CAAC,CAAC,SAAS,EAAgB,CAAC;KAClF;IAEM,eAAe,CAA2B,IAAY,EAAE,IAAO,EAAA;AACpE,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,eAAe,CAAO,IAAI,EAAE,IAAI,CAAC,CAAC,SAAS,EAAgB,CAAC;KACpF;;6GArBU,gBAAgB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;iGAAhB,gBAAgB,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,CAAA,OAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAAhB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAL5B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;;AAET,oBAAA,QAAQ,EAAE,UAAU;AACpB,oBAAA,QAAQ,EAAE,OAAO;iBAClB,CAAA;;;MCLY,oBAAoB,CAAA;AACxB,IAAA,OAAO,mBAAmB,CAAC,OAAgB,EAAE,WAAmB,EAAA;QACrE,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE;YAChH,OAAO;AACR,SAAA;AAED,QAAA,MAAM,KAAK,GAAG,UAAU,CAAC,oBAAoB,CAC3C,OAAO,CAAC,QAAQ,EAChB,UAAU,EACV,CAAC,EAAE,KAAK,EAAW,KAAK,KAAK,IAAI,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,WAAW,CAAC,WAAW,EAAE,CACxF,CAAC;AAEF,QAAA,OAAO,KAAK,IAAI,KAAK,CAAC,GAAG,EAAE,CAAC;KAC7B;AAEM,IAAA,cAAc,CAAC,OAAgB,EAAA;AACpC,QAAA,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,gBAAgB,EAAE;YACjE,OAAO,IAAI,GAAG,EAAE,CAAC;AAClB,SAAA;QAED,OAAO,YAAY,CAAC,kBAAkB,CAAC,OAAO,CAAC,KAAK,CAAC,gBAAgB,EAAE,UAAU,EAAE;YACjF,cAAc;YACd,kBAAkB;AACnB,SAAA,CAAC,CAAC;KACJ;;iHAxBU,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;qHAApB,oBAAoB,EAAA,CAAA,CAAA;2FAApB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBADhC,UAAU;;;MCSE,mBAAmB,CAAA;IAQ9B,WAAsB,CAAA,SAA2B,EAAY,YAAiC,EAAA;AAAxE,QAAA,IAAS,CAAA,SAAA,GAAT,SAAS,CAAkB;AAAY,QAAA,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAqB;KAAI;IAE3F,QAAQ,GAAA;QACb,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;QAChC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC;QAEzC,IAAI,CAAC,gBAAgB,EAAE,CAAC;KACzB;IAEM,gBAAgB,GAAA;QACrB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QACnC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,GAAG,KAAK,CAAC;KAC/C;;IAGM,YAAY,CAAC,gBAAwB,CAAC,EAAA;AAC3C,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK;cACrB,oBAAoB,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,aAAa,CAAC;cACjG,KAAK,CAAC;KACX;IAEM,eAAe,CAAC,mBAA2B,CAAC,EAAA;AACjD,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK;cACrB,oBAAoB,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,gBAAgB,CAAC;cACvG,KAAK,CAAC;KACX;AAEM,IAAA,YAAY,CAAC,WAAiB,EAAA;AACnC,QAAA,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE;YACxB,OAAO;AACR,SAAA;AAED,QAAA,MAAM,UAAU,GAAe;AAC7B,YAAA,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE;AACnB,YAAA,MAAM,EAAE,QAAQ;AAChB,YAAA,WAAW,EAAE,UAAU,CAAC,SAAS,CAAC,WAAW,CAAC,GAAG,WAAW,GAAG,KAAK,CAAC;SACtE,CAAC;AAEF,QAAA,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;KAC9C;AAEM,IAAA,YAAY,CAAC,WAAiB,EAAA;AACnC,QAAA,MAAM,UAAU,GAAe;AAC7B,YAAA,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE;AACnB,YAAA,MAAM,EAAE,QAAQ;AAChB,YAAA,WAAW,EAAE,UAAU,CAAC,SAAS,CAAC,WAAW,CAAC,GAAG,WAAW,GAAG,KAAK,CAAC;SACtE,CAAC;AAEF,QAAA,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;KAC9C;AAEM,IAAA,eAAe,CAAC,WAAgB,EAAA;AACrC,QAAA,MAAM,UAAU,GAAe;AAC7B,YAAA,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE;AACnB,YAAA,MAAM,EAAE,WAAW;AACnB,YAAA,WAAW,EAAE,WAAW;SACzB,CAAC;AAEF,QAAA,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;KAC9C;AAEM,IAAA,YAAY,CAAC,WAAmB,EAAA;AACrC,QAAA,MAAM,UAAU,GAAe;AAC7B,YAAA,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE;AACnB,YAAA,MAAM,EAAE,QAAQ;AAChB,YAAA,WAAW,EAAE,WAAW;SACzB,CAAC;AAEF,QAAA,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;KAC9C;AAEM,IAAA,UAAU,CAAC,WAAmB,EAAA;AACnC,QAAA,MAAM,UAAU,GAAe;AAC7B,YAAA,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE;AACnB,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,WAAW,EAAE,WAAW;SACzB,CAAC;AAEF,QAAA,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;KAC9C;;gHAvFU,mBAAmB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAP,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,mBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;oGAAnB,mBAAmB,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAAnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAD/B,SAAS;;MAgGG,iBAAiB,CAAA;AAI5B,IAAA,WAAA,CACU,SAA2B,EAC3B,YAAiC,EACjC,oBAA0C,EAAA;AAF1C,QAAA,IAAS,CAAA,SAAA,GAAT,SAAS,CAAkB;AAC3B,QAAA,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAqB;AACjC,QAAA,IAAoB,CAAA,oBAAA,GAApB,oBAAoB,CAAsB;KAChD;IAEG,QAAQ,GAAA;QACb,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC;QACzC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;KACpC;AAEM,IAAA,WAAW,CAAC,YAAiB,EAAA;AAClC,QAAA,MAAM,UAAU,GAAe;AAC7B,YAAA,EAAE,EAAE,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE;AAChC,YAAA,MAAM,EAAE,OAAO;AACf,YAAA,WAAW,EAAE,YAAY;SAC1B,CAAC;AAEF,QAAA,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;KAC9C;IAEM,SAAS,CAAC,cAAoC,EAAE,gBAA0B,EAAA;QAC/E,OAAO,IAAI,CAAC,oBAAoB;AAC7B,aAAA,SAAS,CAAC,cAAc,EAAE,EAAE,gBAAgB,EAAE,CAAC;AAC/C,aAAA,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACb,aAAA,SAAS,EAAuB,CAAC;KACrC;;8GA9BU,iBAAiB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAD,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,mBAAA,EAAA,EAAA,EAAA,KAAA,EAAAO,oBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAjB,iBAAiB,EAAA,QAAA,EAAA,WAAA,EAAA,QAAA,EAAA,CAAA,OAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAAjB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAL7B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;;AAET,oBAAA,QAAQ,EAAE,WAAW;AACrB,oBAAA,QAAQ,EAAE,OAAO;iBAClB,CAAA;;AAuCK,MAAO,iBAAkB,SAAQ,mBAAmB,CAAA;IAGxD,WAAY,CAAA,SAA2B,EAAE,YAAiC,EAAA;AACxE,QAAA,KAAK,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;AAH1B,QAAA,IAAe,CAAA,eAAA,GAAgC,EAAE,CAAC;KAIxD;AAEO,IAAA,qBAAqB,CAAC,MAAc,EAAE,WAAmB,EAAE,MAAc,EAAA;AAC/E,QAAA,MAAM,UAAU,GAAe;AAC7B,YAAA,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE;YACnB,MAAM;YACN,WAAW;YACX,OAAO,EAAE,EAAE,MAAM,EAAE;SACpB,CAAC;AAEF,QAAA,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;KAC9C;IAEe,QAAQ,GAAA;QACtB,KAAK,CAAC,QAAQ,EAAE,CAAC;QAEjB,IAAI,CAAC,YAAY,EAAE,CAAC;KACrB;IAEM,YAAY,CAAC,WAAiB,EAAE,KAAa,EAAA;AAClD,QAAA,IAAI,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC,IAAI,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;AAC1F,YAAA,KAAK,aAAL,KAAK,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAL,KAAK,CAAE,cAAc,EAAE,CAAC;YACxB,OAAO;AACR,SAAA;AAAM,aAAA,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;AACvD,YAAA,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;AAChC,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;AAChC,SAAA;KACF;AAEM,IAAA,QAAQ,CAAC,WAAiB,EAAA;QAC/B,OAAO,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC,CAAC;KAChE;IAEO,YAAY,GAAA;AAClB,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK;AACvC,cAAE,oBAAoB,CAAC,uBAAuB,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC;cAC7F,EAAE,CAAC;KACR;;AAGM,IAAA,aAAa,CAAC,WAAmB,EAAA;QACtC,IAAI,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;AAErD,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE,EAAE;YACvB,IAAI,OAAO,GAAG,CAAC,EAAE;AACf,gBAAA,MAAM,WAAW,GAAG,oBAAoB,CAAC,mBAAmB,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;AAExF,gBAAA,IAAI,WAAW,EAAE;AACf,oBAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,GAAG,KAAK,CAAC,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC,CAAC;AAE/D,oBAAA,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;AACnC,iBAAA;AACF,aAAA;AAAM,iBAAA;AACL,gBAAA,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;AAChC,aAAA;AACF,SAAA;KACF;AAEM,IAAA,aAAa,CAAC,WAAmB,EAAA;QACtC,IAAI,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;AAErD,QAAA,IAAI,IAAI,CAAC,eAAe,EAAE,EAAE;YAC1B,IAAI,OAAO,GAAG,CAAC,EAAE;AACf,gBAAA,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;AAChC,aAAA;AAAM,iBAAA;AACL,gBAAA,MAAM,WAAW,GAAG,oBAAoB,CAAC,mBAAmB,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;AAExF,gBAAA,IAAI,WAAW,EAAE;AACf,oBAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,GAAG,KAAK,CAAC,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC,CAAC;AAE/D,oBAAA,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;AACnC,iBAAA;AACF,aAAA;AACF,SAAA;KACF;IAEM,qBAAqB,CAAC,WAAmB,EAAE,MAAW,EAAA;QAC3D,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;AACvD,QAAA,IAAI,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,KAAK,CAAC,MAAM,EAAE;YACxD,OAAO;AACR,SAAA;AAED,QAAA,MAAM,MAAM,GAAG,CAAC,MAAM,CAAC;QAEvB,IAAI,OAAO,KAAK,CAAC,EAAE;AACjB,YAAA,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE;AAC7B,gBAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AACzD,gBAAA,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;AAChC,aAAA;AACF,SAAA;aAAM,IAAI,MAAM,KAAK,CAAC,EAAE;AACvB,YAAA,IAAI,IAAI,CAAC,eAAe,EAAE,EAAE;AAC1B,gBAAA,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;AAChC,aAAA;AACF,SAAA;AAAM,aAAA;AACL,YAAA,MAAM,WAAW,GAAG,oBAAoB,CAAC,mBAAmB,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;AAExF,YAAA,IAAI,WAAW,EAAE;AACf,gBAAA,MAAM,GAAG,GAAG,MAAM,GAAG,OAAO,CAAC;gBAE7B,MAAM,SAAS,GAAG,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;AAEpF,gBAAA,IAAI,SAAS,EAAE;AACb,oBAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,GAAG,KAAK,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AAC5D,oBAAA,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;AACnC,iBAAA;AACF,aAAA;AACF,SAAA;KACF;IAEM,wBAAwB,CAAC,WAAmB,EAAE,MAAc,EAAA;QACjE,IAAI,CAAC,qBAAqB,CAAC,gBAAgB,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;KACnE;IAEM,yBAAyB,CAAC,WAAmB,EAAE,MAAc,EAAA;QAClE,IAAI,CAAC,qBAAqB,CAAC,iBAAiB,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;KACpE;;8GAzHU,iBAAiB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAR,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,mBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAjB,iBAAiB,EAAA,QAAA,EAAA,WAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAAjB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAL7B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;;AAET,oBAAA,QAAQ,EAAE,WAAW;AACrB,oBAAA,QAAQ,EAAE,SAAS;iBACpB,CAAA;;AA8IK,MAAO,qBAAsB,SAAQ,mBAAmB,CAAA;IAC5D,WAAY,CAAA,SAA2B,EAAE,YAAiC,EAAA;AACxE,QAAA,KAAK,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;KAChC;;kHAHU,qBAAqB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAD,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,mBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAArB,qBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,qBAAqB,EAbtB,QAAA,EAAA,eAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;GAWT,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAH,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAM,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,0BAAA,EAAA,QAAA,EAAA,6GAAA,EAAA,MAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FAEU,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAjBjC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;;;AAGT,oBAAA,QAAQ,EAAE,eAAe;AACzB,oBAAA,QAAQ,EAAE,CAAA;;;;;;;;;;;AAWT,EAAA,CAAA;iBACF,CAAA;;AAoCK,MAAO,qBAAsB,SAAQ,mBAAmB,CAAA;IAC5D,WAAY,CAAA,SAA2B,EAAE,YAAiC,EAAA;AACxE,QAAA,KAAK,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;KAChC;;kHAHU,qBAAqB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAJ,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,mBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAArB,qBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,qBAAqB,EAzBtB,QAAA,EAAA,eAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;AAuBT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAH,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAM,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAG,EAAA,CAAA,UAAA,EAAA,IAAA,EAAA,QAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FAEU,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBA7BjC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;;;AAGT,oBAAA,QAAQ,EAAE,eAAe;AACzB,oBAAA,QAAQ,EAAE,CAAA;;;;;;;;;;;;;;;;;;;;;;;AAuBT,EAAA,CAAA;iBACF,CAAA;;AAuBK,MAAO,2BAA4B,SAAQ,mBAAmB,CAAA;IAClE,WAAY,CAAA,SAA2B,EAAE,YAAiC,EAAA;AACxE,QAAA,KAAK,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;KAChC;;wHAHU,2BAA2B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAP,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,mBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA3B,2BAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,2BAA2B,EAZ5B,QAAA,EAAA,sBAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;AAUT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA;2FAEU,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBAhBvC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;;;AAGT,oBAAA,QAAQ,EAAE,sBAAsB;AAChC,oBAAA,QAAQ,EAAE,CAAA;;;;;;;;;;AAUT,EAAA,CAAA;iBACF,CAAA;;;MC7UY,mBAAmB,CAAA;AAC9B,IAAA,WAAA,CAAoB,IAAqB,EAAA;AAArB,QAAA,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAiB;KAAI;AAEtC,IAAA,WAAW,CAAC,UAAsB,EAAA;QACvC,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,SAAS,EAAE,CAAC;KACtD;;gHALU,mBAAmB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,eAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;oGAAnB,mBAAmB,EAAA,QAAA,EAAA,aAAA,EAAA,QAAA,EAAA,CAAA,aAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAAnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAL/B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;;AAET,oBAAA,QAAQ,EAAE,aAAa;AACvB,oBAAA,QAAQ,EAAE,aAAa;iBACxB,CAAA;;;MCEY,8BAA8B,CAAA;AACzC,IAAA,WAAA,CAAoB,OAAqC,EAAA;AAArC,QAAA,IAAO,CAAA,OAAA,GAAP,OAAO,CAA8B;KAAI;AAEtD,IAAA,cAAc,CAAC,aAA8C,EAAA;QAClE,OAAO,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC,SAAS,EAA2B,CAAC;KACxF;AAEM,IAAA,gBAAgB,CACrB,UAAsB,EACtB,IAAW,EACX,cAAwB,EAAA;AAExB,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,UAAU,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;AACnF,QAAA,OAAO,cAAc,GAAG,UAAU,GAAI,UAAU,CAAC,SAAS,EAA0B,CAAC;KACtF;IAEM,gBAAgB,CAAC,EAAU,EAAE,UAAsB,EAAA;AACxD,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC,SAAS,EAAyB,CAAC;KACzF;IAEM,iBAAiB,CAAC,EAAU,EAAE,iBAA2B,EAAA;AAC9D,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,EAAE,EAAE,iBAAiB,CAAC,CAAC,SAAS,EAAE,CAAC;KAC1E;AAEM,IAAA,gBAAgB,CAAC,EAAU,EAAA;QAChC,OAAO,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC;KACtD;;2HA1BU,8BAA8B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,4BAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;+GAA9B,8BAA8B,EAAA,QAAA,EAAA,yBAAA,EAAA,QAAA,EAAA,CAAA,wBAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAA9B,8BAA8B,EAAA,UAAA,EAAA,CAAA;kBAL1C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;;AAET,oBAAA,QAAQ,EAAE,yBAAyB;AACnC,oBAAA,QAAQ,EAAE,wBAAwB;iBACnC,CAAA;;;MCCY,4BAA4B,CAAA;AACvC,IAAA,WAAA,CAAoB,2BAAwD,EAAA;AAAxD,QAAA,IAA2B,CAAA,2BAAA,GAA3B,2BAA2B,CAA6B;AAgC5E;;AAEG;;AAEI,QAAA,IAAA,CAAA,mBAAmB,GAAG,IAAI,CAAC,gBAAgB,CAAC;KApC6B;AAEzE,IAAA,YAAY,CAAC,GAAY,EAAA;QAC9B,OAAO,IAAI,CAAC,2BAA2B,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,SAAS,EAAiC,CAAC;KACtG;IAEM,cAAc,CAAC,QAA0B,EAAE,YAAkB,EAAA;QAClE,OAAO,IAAI,CAAC,2BAA2B;AACpC,aAAA,cAAc,CAAC,QAAQ,EAAE,YAAY,CAAC;AACtC,aAAA,SAAS,EAA+B,CAAC;KAC7C;AAEM,IAAA,cAAc,CAAC,EAAU,EAAA;QAC9B,OAAO,IAAI,CAAC,2BAA2B,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,SAAS,EAA+B,CAAC;KACrG;AAEM,IAAA,aAAa,CAAC,EAAU,EAAA;QAC7B,OAAO,IAAI,CAAC,2BAA2B,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,SAAS,EAAyC,CAAC;KAC9G;AAEM,IAAA,gBAAgB,CAAC,EAAU,EAAA;QAChC,OAAO,IAAI,CAAC,2BAA2B,CAAC,oBAAoB,CAAC,EAAE,CAAC,CAAC,SAAS,EAAmB,CAAC;KAC/F;AAEM,IAAA,gBAAgB,CACrB,QAA0B,EAC1B,UAAsB,EACtB,MAA8C,EAAA;QAE9C,OAAO,IAAI,CAAC,2BAA2B,CAAC,gBAAgB,CAAC,QAAQ,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;KACtG;AAQM,IAAA,oBAAoB,CACzB,QAA0B,EAC1B,UAAsB,EACtB,MAAqC,EAAA;QAErC,OAAO,IAAI,CAAC,2BAA2B,CAAC,oBAAoB,CAAC,QAAQ,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;KAC1G;AAEM,IAAA,cAAc,CAAC,aAA8C,EAAA;QAClE,OAAO,IAAI,CAAC,2BAA2B,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC,SAAS,EAAE,CAAC;KACnF;AAEM,IAAA,iBAAiB,CAAC,EAAU,EAAA;QACjC,OAAO,IAAI,CAAC,2BAA2B,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC;KAC3E;IAEM,gBAAgB,CAAC,UAAsB,EAAE,IAAW,EAAA;AACzD,QAAA,OAAO,IAAI,CAAC,2BAA2B,CAAC,gBAAgB,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,SAAS,EAAE,CAAC;KACxF;AAEM,IAAA,gBAAgB,CAAC,EAAU,EAAA;QAChC,OAAO,IAAI,CAAC,2BAA2B,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC;KAC1E;;yHA7DU,4BAA4B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,2BAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;6GAA5B,4BAA4B,EAAA,QAAA,EAAA,oBAAA,EAAA,QAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAA5B,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBAJxC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,oBAAoB;AAC9B,oBAAA,QAAQ,EAAE,kBAAkB;iBAC7B,CAAA;;;MCGY,gBAAgB,CAAA;IAC3B,WAAoB,CAAA,eAAgC,EAAU,cAA8B,EAAA;AAAxE,QAAA,IAAe,CAAA,eAAA,GAAf,eAAe,CAAiB;AAAU,QAAA,IAAc,CAAA,cAAA,GAAd,cAAc,CAAgB;KAAI;AAEzF,IAAA,QAAQ,CAAC,OAAe,EAAA;QAC7B,OAAO,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,SAAS,EAAyB,CAAC;KACvF;AAEM,IAAA,WAAW,CAAC,UAAsB,EAAA;QACvC,OAAO,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,SAAS,EAAE,CAAC;KACjE;IAEM,cAAc,CAAC,UAAsB,EAAE,cAAsB,EAAA;;AAClE,QAAA,MAAM,YAAY,GAAG,UAAU,CAAC,QAAQ,CAAC,cAAc,EAAE,UAAU,CAAC,YAAY,CAAC,CAAC;QAClF,MAAM,KAAK,GAAG,CAAA,EAAA,GAAA,UAAU,CAAC,YAAY,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,YAAY,CAAC,OAAO,CAAC,CAAC;AAChF,QAAA,MAAM,EAAE,OAAO,EAAE,GAAG,UAAU,CAAC;AAE/B,QAAA,MAAM,MAAM,GAAgB;AAC1B,YAAA,gBAAgB,EAAE,YAAY,CAAC,kBAAkB,CAAC,YAAY,CAAC;YAC/D,YAAY,EAAE,UAAU,CAAC,YAAY;YACrC,KAAK;SACN,CAAC;QAEF,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;KAC/D;;6GAvBU,gBAAgB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,eAAA,EAAA,EAAA,EAAA,KAAA,EAAAQ,cAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;iGAAhB,gBAAgB,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAAhB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAL5B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;;AAET,oBAAA,QAAQ,EAAE,UAAU;AACpB,oBAAA,QAAQ,EAAE,UAAU;iBACrB,CAAA;;;MCAY,eAAe,CAAA;AAC1B,IAAA,WAAA,CACU,cAA8B,EAC9B,cAA8B,EAC9B,eAAgC,EAAA;AAFhC,QAAA,IAAc,CAAA,cAAA,GAAd,cAAc,CAAgB;AAC9B,QAAA,IAAc,CAAA,cAAA,GAAd,cAAc,CAAgB;AAC9B,QAAA,IAAe,CAAA,eAAA,GAAf,eAAe,CAAiB;KACtC;AAEG,IAAA,UAAU,CAAC,WAAqB,EAAE,YAAwB,EAAE,IAAY,EAAA;QAC7E,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC;QAE9C,OAAO,IAAI,CAAC,cAAc;AACvB,aAAA,IAAI,CAAC;YACJ,OAAO;YACP,WAAW;YACX,YAAY,EAAE,YAAY,IAAI,EAAE;YAChC,IAAI;SACL,CAAC;AACD,aAAA,IAAI,CACH,GAAG,CAAC,IAAI,IAAG;YACT,IAAI,IAAI,CAAC,OAAO,EAAE;AAChB,gBAAA,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC;AACzB,oBAAA,UAAU,oBACL,IAAI,CAAC,OAAO,CAAC,UAAU,CAC3B;AACF,iBAAA,CAAC,CAAC;AACJ,aAAA;AACH,SAAC,CAAC,CACH;AACA,aAAA,SAAS,EAAE,CAAC;KAChB;IAEM,0BAA0B,CAAC,QAAkB,EAAE,OAAe,EAAA;QACnE,OAAO,IAAI,CAAC,eAAe;aACxB,uBAAuB,CACtB,QAAQ,CAAC,MAAM,EACf,QAAQ,CAAC,UAAU,EACnB,QAAQ,CAAC,SAAS,EAClB,OAAO,EACP,QAAQ,CAAC,oBAAoB,EAC7B,QAAQ,CAAC,wBAAwB,CAClC;AACA,aAAA,SAAS,EAAE,CAAC;KAChB;IAEM,uBAAuB,CAAC,QAAkB,EAAE,IAAY,EAAA;QAC7D,OAAO,IAAI,CAAC,eAAe;aACxB,oBAAoB,CACnB,QAAQ,CAAC,MAAM,EACf,QAAQ,CAAC,UAAU,EACnB,QAAQ,CAAC,SAAS,EAClB,IAAI,EACJ,QAAQ,CAAC,oBAAoB,EAC7B,QAAQ,CAAC,wBAAwB,CAClC;AACA,aAAA,SAAS,EAAE,CAAC;KAChB;;4GAvDU,eAAe,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAP,EAAA,CAAA,cAAA,EAAA,EAAA,EAAA,KAAA,EAAAT,EAAA,CAAA,cAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,EAAA,CAAA,eAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;gGAAf,eAAe,EAAA,QAAA,EAAA,SAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAAf,eAAe,EAAA,UAAA,EAAA,CAAA;kBAL3B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;;AAET,oBAAA,QAAQ,EAAE,SAAS;AACnB,oBAAA,QAAQ,EAAE,SAAS;iBACpB,CAAA;;;ACaD,MAAMiB,MAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;AACzB,MAAM,kBAAkB,GAAG,CAAA,KAAA,CAAO,CAAC;MAgBtB,sBAAsB,CAAA;AAMjC,IAAA,WAAA,CAC4B,SAAmB,EACX,gBAAkC,EACjC,iBAAoC,EACrC,cAAgC,EACpB,0BAAwD,EACrE,aAA8B,EAC1B,iBAAsC,EAC3B,4BAA4D,EACpG,SAA2B,EAC3B,YAAiC,EACjC,QAAmB,EACnB,WAAwB,EACxB,cAA8B,EAC9B,GAAsB,EACtB,WAAgC,EAChC,cAA8B,EAC9B,mBAAwC,EACxC,YAA+B,EAAA;AAjBb,QAAA,IAAS,CAAA,SAAA,GAAT,SAAS,CAAU;AACX,QAAA,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAkB;AACjC,QAAA,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAmB;AACrC,QAAA,IAAc,CAAA,cAAA,GAAd,cAAc,CAAkB;AACpB,QAAA,IAA0B,CAAA,0BAAA,GAA1B,0BAA0B,CAA8B;AACrE,QAAA,IAAa,CAAA,aAAA,GAAb,aAAa,CAAiB;AAC1B,QAAA,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAqB;AAC3B,QAAA,IAA4B,CAAA,4BAAA,GAA5B,4BAA4B,CAAgC;AACpG,QAAA,IAAS,CAAA,SAAA,GAAT,SAAS,CAAkB;AAC3B,QAAA,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAqB;AACjC,QAAA,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAW;AACnB,QAAA,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;AACxB,QAAA,IAAc,CAAA,cAAA,GAAd,cAAc,CAAgB;AAC9B,QAAA,IAAG,CAAA,GAAA,GAAH,GAAG,CAAmB;AACtB,QAAA,IAAW,CAAA,WAAA,GAAX,WAAW,CAAqB;AAChC,QAAA,IAAc,CAAA,cAAA,GAAd,cAAc,CAAgB;AAC9B,QAAA,IAAmB,CAAA,mBAAA,GAAnB,mBAAmB,CAAqB;AACxC,QAAA,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAmB;AAtBjC,QAAA,IAAQ,CAAA,QAAA,GAAG,EAAE,CAAC;AAEd,QAAA,IAAY,CAAA,YAAA,GAA6B,EAAE,CAAC;KAqBhD;IAEG,QAAQ,GAAA;AACb,QAAA,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE;YACxB,OAAO;AACR,SAAA;AAED,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;AACxC,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;AACzC,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QAE3C,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;YACxC,IAAI,CAAC,wBAAwB,EAAE,CAAC;AACjC,SAAA;QAED,IAAI,CAAC,UAAU,EAAE,CAAC;AAElB,QAAA,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;KACvE;IAEM,eAAe,GAAA;;AACpB,QAAA,MAAM,kBAAkB,GAAG,CAAA,EAAA,GAAA,IAAI,CAAC,QAAQ,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,kBAAkB,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;AAE3F,QAAA,IAAI,kBAAkB,EAAE;AACtB,YAAA,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,kBAAkB,CAAC,CAAC;AACvD,SAAA;KACF;IAEM,WAAW,GAAA;AAChB,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAClB,OAAO;AACR,SAAA;AAED,QAAA,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAEtE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;YACxC,IAAI,CAAC,YAAY,EAAE,CAAC;YACpB,IAAI,CAAC,QAAQ,CAAC,qBAAqB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACpD,SAAA;KACF;AAED,IAAA,IAAW,KAAK,GAAA;QACd,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE;AAChD,YAAA,OAAO,EAAE,CAAC;AACX,SAAA;QAED,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;KACnH;IAEO,YAAY,GAAA;;AAClB,QAAA,OAAO,CAAC,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,MAAA,CAAA,EAAA,GAAA,IAAI,CAAC,YAAY,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,OAAO,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,MAAM,0CAAE,MAAM,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,CAAC,IAAI,CAAC,CAAC;KAC9D;IAEO,gBAAgB,GAAA;QACtB,OAAO,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;KACvF;IAEO,gBAAgB,GAAA;QACtB,OAAO,GAAG,GAAGA,MAAI,CAAC,GAAG,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;KAChD;IAEO,iBAAiB,GAAA;AACvB,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC;KACtC;IAEO,eAAe,GAAA;AACrB,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC;KAC1C;IAEO,UAAU,GAAA;AAChB,QAAA,IAAI,kBAAkB,GAAG,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;AAExF,QAAA,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,kBAAkB,CAAC,EAAE;YAC7C,kBAAkB,GAAG,EAAE,CAAC;AACxB,YAAA,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,EAAE,kBAAkB,CAAC,CAAC;AACpF,SAAA;AAED,QAAA,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;KAC9C;IAEO,YAAY,GAAA;AAClB,QAAA,MAAM,kBAAkB,GAAG,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;AAE1F,QAAA,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,kBAAkB,CAAC,CAAC;QAEhD,IAAI,CAAC,0BAA0B,EAAE,CAAC;KACnC;IAEO,wBAAwB,GAAA;QAC9B,MAAM,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QAE1G,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;AAC3D,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,GAAG,iBAAiB,CAAC;AAC5C,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,GAAG,MAAM,CAAC;QAEjC,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;AAErD,QAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;KACpE;IAEO,0BAA0B,GAAA;AAChC,QAAA,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;AACvB,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACnE,SAAA;AAED,QAAA,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC;KAC7B;AAEO,IAAA,kBAAkB,CAAC,UAAkB,EAAE,QAAgB,EAAE,OAAgB,EAAA;QAC/E,OAAO,CAAA,IAAA,EAAO,QAAQ,CAAA,cAAA,EAAiB,kBAAkB,CAAA;cAC/C,kBAAkB,CAAA;cAClB,kBAAkB,CAAA;cAClB,kBAAkB,CAAA;cAClB,kBAAkB,CAAA;cAClB,kBAAkB,CAAA;cAClB,kBAAkB,CAAA;cAClB,kBAAkB,CAAA;cAClB,kBAAkB,CAAA;;cAElB,UAAU,CAAA;yBACC,kBAAkB,CAAA;;;4BAGf,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC;KACzD;IAEO,WAAW,CAAC,UAAkB,EAAE,kBAAuB,EAAA;AAC7D,QAAA,MAAM,IAAI,GAAG;YACX,kBAAkB;YAClB,IAAI,CAAC,SAAS,CAAC,IAAI;AACnB,YAAA,IAAI,CAAC,YAAY;AACjB,YAAA,IAAI,CAAC,YAAY;AACjB,YAAA,IAAI,CAAC,WAAW;AAChB,YAAA,IAAI,CAAC,cAAc,CAAC,iBAAiB,EAAE;AACvC,YAAA,IAAI,CAAC,GAAG;YACR,IAAI,CAAC,cAAc,EAAE;SACtB,CAAC;AAEF,QAAA,MAAM,MAAM,GAAI,MAAc,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAA,CAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;AAE5D,QAAA,MAAM,IAAI,MAAM,CAAC,UAAU,CAAC,IAAI,MAAM,CAAC,UAAU,CAAC,CAAC,KAAK,EAAE,CAAC;KAC5D;IAEO,cAAc,GAAA;QACpB,OAAO;YACL,UAAU,EAAE,IAAI,CAAC,gBAAgB;YACjC,WAAW,EAAE,IAAI,CAAC,iBAAiB;YACnC,iBAAiB,EAAE,IAAI,CAAC,cAAc;YACtC,qBAAqB,EAAE,IAAI,CAAC,0BAA0B;YACtD,uBAAuB,EAAE,IAAI,CAAC,4BAA4B;YAC1D,gBAAgB,EAAE,IAAI,CAAC,aAAa;YACpC,oBAAoB,EAAE,IAAI,CAAC,iBAAiB;AAC5C,YAAA,UAAU,EAAE,UAAU;YACtB,MAAM;AACN,YAAA,MAAM,EAAE,CAAC;AACT,YAAA,IAAI,EAAO,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,aAAa,CAAK,EAAA,IAAI,CAAE;YACnC,WAAW;AACX,YAAA,KAAK,EAAE;AACL,gBAAA,QAAQ,EAAE,YAAY;AACvB,aAAA;AACD,YAAA,qBAAqB,EAAE,IAAI,CAAC,cAAc,CAAC,4BAA4B;AACvE,YAAA,eAAe,EAAE,IAAI,CAAC,cAAc,CAAC,mBAAmB;YACxD,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,2BAA2B,EAAE,IAAI,CAAC,cAAc;AAChD,YAAA,UAAU,EAAE,IAAI,CAAC,YAAY,CAAC,UAAU;YACxC,mBAAmB,EAAE,IAAI,CAAC,mBAAmB;SAC9C,CAAC;KACH;;AAhMU,sBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,sBAAsB,EAOvB,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,QAAQ,EACR,EAAA,EAAA,KAAA,EAAA,gBAAgB,aAChB,iBAAiB,EAAA,EAAA,EAAA,KAAA,EACjB,gBAAgB,EAAA,EAAA,EAAA,KAAA,EAChB,4BAA4B,EAC5B,EAAA,EAAA,KAAA,EAAA,eAAe,EACf,EAAA,EAAA,KAAA,EAAA,mBAAmB,aACnB,8BAA8B,EAAA,EAAA,EAAA,KAAA,EAAAV,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,mBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,EAAA,EAAA,KAAA,EAAAT,EAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAAmB,cAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,mBAAA,EAAA,EAAA,EAAA,KAAA,EAAAL,EAAA,CAAA,cAAA,EAAA,EAAA,EAAA,KAAA,EAAAM,mBAAA,EAAA,EAAA,EAAA,KAAA,EAAAN,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAd7B,sBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,sBAAsB,EAVtB,QAAA,EAAA,gBAAA,EAAA,SAAA,EAAA;QACT,gBAAgB;QAChB,iBAAiB;QACjB,gBAAgB;QAChB,4BAA4B;QAC5B,eAAe;QACf,mBAAmB;QACnB,8BAA8B;KAC/B,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAEU,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAdlC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;;AAET,oBAAA,QAAQ,EAAE,gBAAgB;AAC1B,oBAAA,QAAQ,EAAE,WAAW;AACrB,oBAAA,SAAS,EAAE;wBACT,gBAAgB;wBAChB,iBAAiB;wBACjB,gBAAgB;wBAChB,4BAA4B;wBAC5B,eAAe;wBACf,mBAAmB;wBACnB,8BAA8B;AAC/B,qBAAA;iBACF,CAAA;;;8BAQI,MAAM;+BAAC,QAAQ,CAAA;;8BACf,MAAM;+BAAC,gBAAgB,CAAA;;8BACvB,MAAM;+BAAC,iBAAiB,CAAA;;8BACxB,MAAM;+BAAC,gBAAgB,CAAA;;8BACvB,MAAM;+BAAC,4BAA4B,CAAA;;8BACnC,MAAM;+BAAC,eAAe,CAAA;;8BACtB,MAAM;+BAAC,mBAAmB,CAAA;;8BAC1B,MAAM;+BAAC,8BAA8B,CAAA;;;;MCoC7B,sBAAsB,CAAA;;mHAAtB,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAtB,sBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,sBAAsB,iBAlD/B,iCAAiC;QACjC,4BAA4B;QAC5B,sBAAsB;QACtB,iBAAiB;QACjB,iBAAiB;QACjB,qBAAqB;QACrB,2BAA2B;QAC3B,qBAAqB;QACrB,sBAAsB;QACtB,oBAAoB;QACpB,sBAAsB;QACtB,sBAAsB;QACtB,iBAAiB;QACjB,yBAAyB;QACzB,yBAAyB;QACzB,kBAAkB;QAClB,iBAAiB;QACjB,wBAAwB,CAahB,EAAA,OAAA,EAAA,CAAA,YAAY,EAAE,WAAW,EAAE,mBAAmB,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,aAE1G,WAAW;QACX,mBAAmB;QACnB,4BAA4B;QAC5B,sBAAsB;QACtB,iBAAiB;QACjB,iBAAiB;QACjB,sBAAsB;QACtB,oBAAoB;QACpB,sBAAsB;QACtB,sBAAsB;QACtB,iBAAiB;QACjB,yBAAyB;QACzB,yBAAyB;QACzB,kBAAkB;QAClB,iBAAiB;QACjB,wBAAwB,CAAA,EAAA,CAAA,CAAA;AAGf,sBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,sBAAsB,EA/BtB,SAAA,EAAA;QACT,mBAAmB;QACnB,cAAc;QACd,oBAAoB;QACpB,qBAAqB;QACrB,kBAAkB;QAClB,mBAAmB;QACnB,wBAAwB;QACxB,QAAQ;QACR,mBAAmB;AACpB,KAAA,EAAA,OAAA,EAAA,CACS,YAAY,EAAE,WAAW,EAAE,mBAAmB,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAE1G,WAAW;QACX,mBAAmB,CAAA,EAAA,CAAA,CAAA;2FAiBV,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBApDlC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;wBACZ,iCAAiC;wBACjC,4BAA4B;wBAC5B,sBAAsB;wBACtB,iBAAiB;wBACjB,iBAAiB;wBACjB,qBAAqB;wBACrB,2BAA2B;wBAC3B,qBAAqB;wBACrB,sBAAsB;wBACtB,oBAAoB;wBACpB,sBAAsB;wBACtB,sBAAsB;wBACtB,iBAAiB;wBACjB,yBAAyB;wBACzB,yBAAyB;wBACzB,kBAAkB;wBAClB,iBAAiB;wBACjB,wBAAwB;AACzB,qBAAA;AACD,oBAAA,SAAS,EAAE;wBACT,mBAAmB;wBACnB,cAAc;wBACd,oBAAoB;wBACpB,qBAAqB;wBACrB,kBAAkB;wBAClB,mBAAmB;wBACnB,wBAAwB;wBACxB,QAAQ;wBACR,mBAAmB;AACpB,qBAAA;AACD,oBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,WAAW,EAAE,mBAAmB,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,CAAC;AAC7G,oBAAA,OAAO,EAAE;wBACP,WAAW;wBACX,mBAAmB;wBACnB,4BAA4B;wBAC5B,sBAAsB;wBACtB,iBAAiB;wBACjB,iBAAiB;wBACjB,sBAAsB;wBACtB,oBAAoB;wBACpB,sBAAsB;wBACtB,sBAAsB;wBACtB,iBAAiB;wBACjB,yBAAyB;wBACzB,yBAAyB;wBACzB,kBAAkB;wBAClB,iBAAiB;wBACjB,wBAAwB;AACzB,qBAAA;iBACF,CAAA;;;AChED,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;MAGZ,oBAAoB,CAAA;;iHAApB,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAApB,oBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,oBAAoB,kMADV,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA;2FACZ,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBADhC,SAAS;mBAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAA;8BAGlB,IAAI,EAAA,CAAA;sBADV,KAAK;gBAIC,OAAO,EAAA,CAAA;sBADb,KAAK;gBAGoC,SAAS,EAAA,CAAA;sBAAlD,YAAY;uBAAC,gBAAgB,CAAA;;MAInB,eAAe,CAAA;AAI1B,IAAA,WAAA,CAAoB,QAAkB,EAAU,CAAmB,EAAU,YAAiC,EAAA;AAA1F,QAAA,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAU;AAAU,QAAA,IAAC,CAAA,CAAA,GAAD,CAAC,CAAkB;AAAU,QAAA,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAqB;AAHtG,QAAA,IAAU,CAAA,UAAA,GAAqB,IAAI,CAAC;AACpC,QAAA,IAAc,CAAA,cAAA,GAA6C,IAAI,CAAC;KAE0C;IAE3G,aAAa,CAAC,QAAmB,EAAE,kBAA4B,EAAA;QACpE,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;QAExD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAC;AACzE,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,iCAAiC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAEvF,IAAI,CAAC,YAAY,CAAC,kBAAkB,GAAG,IAAI,CAAC,cAAc,CAAC,kBAAkB,CAAC;KAC/E;IAEM,OAAO,GAAA;QACZ,IAAI,IAAI,CAAC,cAAc,EAAE;AACvB,YAAA,IAAI,CAAC,YAAY,CAAC,kBAAkB,GAAG,EAAE,CAAC;AAC1C,YAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;AAC5B,SAAA;QAED,IAAI,IAAI,CAAC,UAAU,EAAE;YACnB,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AAC7C,YAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;AACxB,SAAA;KACF;AAEO,IAAA,sBAAsB,CAAC,QAAmB,EAAE,kBAAA,GAA8B,KAAK,EAAA;QACrF,MAAM,MAAM,GAAU,EAAE,CAAC;AAEzB,QAAA,QAAQ,CAAC,OAAO,CAAC,OAAO,IAAG;;YACzB,MAAM,kBAAkB,GAAG,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC;YAE/D,MAAM,gBAAgB,GAAG,SAAS,CAAC;gBACjC,QAAQ,EAAE,OAAO,CAAC,eAAe;AACjC,gBAAA,QAAQ,EAAE,kBAAkB;gBAC5B,MAAM,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;gBACpC,SAAS,EAAE,CAAC,oBAAoB,CAAC;AACjC,gBAAA,aAAa,EAAE,kBAAkB,GAAG,iBAAiB,CAAC,SAAS,GAAG,iBAAiB,CAAC,QAAQ;AAC5F,gBAAA,GAAG,EAAE,IAAI;AACV,aAAA,CAAC,CAAC,MAAM,CAAE,SAAQ,oBAAoB,CAAA;AAAG,aAAA,CAAC,CAAC;AAE5C,YAAA,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,EAAE,CAAA,EAAA,GAAA,OAAO,CAAC,eAAe,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,EAAE,CAAC,CAAC;AACzE,YAAA,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;AAChC,SAAC,CAAC,CAAC;AAEH,QAAA,OAAO,MAAM,CAAC;KACf;IAEO,aAAa,CAAC,QAAmB,EAAE,kBAA4B,EAAA;QACrE,MAAM,mBAAmB,GAAG,IAAI,CAAC,sBAAsB,CAAC,QAAQ,EAAE,kBAAkB,CAAC,CAAC;QAOtF,IAAM,aAAa,GAAnB,MAAM,aAAa,CAAA;SAAG,CAAA;QAAhB,aAAa,GAAA,UAAA,CAAA;AALlB,YAAA,QAAQ,CAAC;gBACR,OAAO,EAAE,CAAC,YAAY,EAAE,sBAAsB,EAAE,UAAU,EAAE,eAAe,EAAEO,iBAA2B,CAAC;gBACzG,YAAY,EAAE,CAAC,mBAAmB,CAAC;AACnC,gBAAA,GAAG,EAAE,IAAI;aACV,CAAC;SACI,EAAA,aAAa,CAAG,CAAA;AAEtB,QAAA,OAAO,aAAa,CAAC;KACtB;IAEO,kBAAkB,CAAC,MAAW,EAAE,eAAuB,EAAA;AAC7D,QAAA,GAAG,CAAC,MAAM,EAAE,mBAAmB,EAAE,eAAe,CAAC,CAAC;KACnD;AAEO,IAAA,iBAAiB,CAAC,QAAmB,EAAA;QAC3C,MAAM,cAAc,GAAiC,EAAE,CAAC;AAExD,QAAA,QAAQ,CAAC,OAAO,CAAC,OAAO,IAAG;YACzB,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;AAE1C,YAAA,MAAM,eAAe,GAAG,OAAO,CAAC,IAAI,GAAG,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC;YAChF,IAAI,eAAe,IAAI,eAAe,CAAC,QAAQ,KAAK,OAAO,CAAC,QAAQ,EAAE;AACpE,gBAAA,OAAO,CAAC,eAAe,GAAG,eAAe,CAAC,eAAe,CAAC;AAC3D,aAAA;iBAAM,IAAI,OAAO,CAAC,IAAI,EAAE;gBACvB,OAAO,CAAC,eAAe,GAAG,CAAA,QAAA,EAAW,OAAO,CAAC,EAAE,EAAE,CAAC;AAElD,gBAAA,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC;AACxC,aAAA;AACH,SAAC,CAAC,CAAC;AAEH,QAAA,OAAO,MAAM,CAAC,cAAc,CAAC,CAAC;KAC/B;AAEO,IAAA,qBAAqB,CAAC,OAAgB,EAAA;AAC5C,QAAA,IAAI,QAAQ,GAAW,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;AAEtE,QAAA,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,QAAQ,CAAC,OAAO,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,EAAE;AACrF,YAAA,QAAQ,GAAG,CAAmC,iCAAA,CAAA,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AACjE,SAAA;AAED,QAAA,OAAO,QAAQ,CAAC;KACjB;;4GA7FU,eAAe,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,QAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,mBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;gHAAf,eAAe,EAAA,CAAA,CAAA;2FAAf,eAAe,EAAA,UAAA,EAAA,CAAA;kBAD3B,UAAU;;;MCfE,wBAAwB,CAAA;IAGnC,IACW,OAAO,CAAC,KAAc,EAAA;AAC/B,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;AACtB,QAAA,IAAI,CAAC,YAAY,CAAC,OAAO,GAAG,KAAK,CAAC;KACnC;AAED,IAAA,IAAW,OAAO,GAAA;QAChB,OAAO,IAAI,CAAC,QAAQ,CAAC;KACtB;AAKD,IAAA,WAAA,CACU,SAAmB,EACnB,EAAoB,EACpB,YAAiC,EACjC,YAAiC,EAAA;AAHjC,QAAA,IAAS,CAAA,SAAA,GAAT,SAAS,CAAU;AACnB,QAAA,IAAE,CAAA,EAAA,GAAF,EAAE,CAAkB;AACpB,QAAA,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAqB;AACjC,QAAA,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAqB;AAMnC,QAAA,IAAY,CAAA,YAAA,GAA6B,IAAI,CAAC;KALlD;IAOG,QAAQ,GAAA;QACb,IAAI,CAAC,aAAa,EAAE,CAAC;KACtB;IAEM,eAAe,GAAA;;QACpB,IAAI,IAAI,CAAC,YAAY,EAAE;YACrB,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,WAAW,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,OAAO,EAAE,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,EAAE,CAAC,CAAC;AAC5F,SAAA;KACF;IAEM,WAAW,GAAA;QAChB,IAAI,IAAI,CAAC,YAAY,EAAE;AACrB,YAAA,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;AAC5B,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;AAC1B,SAAA;KACF;IAEM,aAAa,GAAA;;QAClB,IAAI,IAAI,CAAC,YAAY,EAAE;AACrB,YAAA,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;AAC5B,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;AAC1B,SAAA;AAED,QAAA,MAAM,gBAAgB,GAAG,IAAI,CAAC,YAAY,CAAC,mBAAmB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC9E,IAAI,CAAC,gBAAgB,EAAE;YACrB,OAAO;AACR,SAAA;AAED,QAAA,IAAI,CAAC,YAAY,GAAG,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;AAC/E,QAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,aAAa,CAAC,YAAY,CACnD,WAAW,EACX,CAAA,EAAG,CAAA,EAAA,GAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,EAAE,CAAG,EAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAE,CAAA,CACnD,CAAC;QACF,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC;QAC/C,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC;QAErD,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;KACnD;;qHAjEU,wBAAwB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,QAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAArB,mBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,mBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAxB,wBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,wBAAwB,4FAFxB,CAAC,mBAAmB,CAAC,EAyBA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,WAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,WAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAAA,gBAAgB,2CC9ClD,wCAAsC,EAAA,MAAA,EAAA,CAAA,2BAAA,CAAA,EAAA,CAAA,CAAA;2FDuBzB,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBANpC,SAAS;+BACE,qBAAqB,EAAA,SAAA,EAGpB,CAAC,mBAAmB,CAAC,EAAA,QAAA,EAAA,wCAAA,EAAA,MAAA,EAAA,CAAA,2BAAA,CAAA,EAAA,CAAA;uLAMrB,OAAO,EAAA,CAAA;sBADjB,KAAK;gBAWC,IAAI,EAAA,CAAA;sBADV,KAAK;gBAWC,SAAS,EAAA,CAAA;sBADf,SAAS;uBAAC,WAAW,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;;;AEnClE,MAAM,eAAe,GAAG,IAAI,CAAC,2CAA2C,CAAC,CAAC;MAgB7D,yBAAyB,CAAA;IAUpC,WACU,CAAA,eAAgC,EAChC,kBAAsC,EACtC,SAA2B,EAC3B,cAA8B,EAC9B,GAAsB,EAAA;AAJtB,QAAA,IAAe,CAAA,eAAA,GAAf,eAAe,CAAiB;AAChC,QAAA,IAAkB,CAAA,kBAAA,GAAlB,kBAAkB,CAAoB;AACtC,QAAA,IAAS,CAAA,SAAA,GAAT,SAAS,CAAkB;AAC3B,QAAA,IAAc,CAAA,cAAA,GAAd,cAAc,CAAgB;AAC9B,QAAA,IAAG,CAAA,GAAA,GAAH,GAAG,CAAmB;QAZzB,IAAA,CAAA,IAAI,GAAG,IAAI,SAAS,CAAC,EAAE,CAAC,CAAC;AAGzB,QAAA,IAAW,CAAA,WAAA,GAAG,KAAK,CAAC;AACpB,QAAA,IAAoB,CAAA,oBAAA,GAAG,KAAK,CAAC;AAC7B,QAAA,IAAe,CAAA,eAAA,GAAG,KAAK,CAAC;KAQ3B;AAEG,IAAA,WAAW,CAAC,OAAsB,EAAA;AACvC,QAAA,IAAI,OAAO,CAAC,MAAM,CAAC,EAAE;AACnB,YAAA,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC;AAC/B,YAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;AACzB,YAAA,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;AAClC,YAAA,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;YAE7B,UAAU,CAAC,MAAK;;gBACd,IAAI;AACF,oBAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAA6B,CAAC,CAAC;AACpD,oBAAA,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;AAC1B,iBAAA;AAAC,gBAAA,OAAO,CAAM,EAAE;oBACf,OAAO,CAAC,KAAK,CAAC,CAAA,EAAA,GAAA,MAAA,CAAC,KAAA,IAAA,IAAD,CAAC,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAD,CAAC,CAAE,KAAK,MAAI,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAA,CAAC,KAAD,IAAA,IAAA,CAAC,KAAD,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,CAAC,CAAE,KAAK,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,eAAe,CAAC,CAAC;AACvD,oBAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;AACzB,oBAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;AAC5B,oBAAA,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;AAC1B,iBAAA;AACH,aAAC,CAAC,CAAC;AACJ,SAAA;KACF;AAEM,IAAA,UAAU,CAAC,IAA2B,EAAA;;AAC3C,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,IAAK,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAa,CAAC;QAEtE,IAAI,CAAC,OAAO,EAAE;AACZ,YAAA,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;YACjC,OAAO;AACR,SAAA;QAED,MAAM,KAAK,GACN,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,GAAC,CAAA,EAAA,GAAA,OAAO,KAAP,IAAA,IAAA,OAAO,KAAP,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,OAAO,CAAE,KAAK,MAAI,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAA;AACpB,YAAA,UAAU,EAAE,EAAE;AACd,YAAA,SAAS,EAAE,EAAE;SACd,EAAC,EAAA,EACF,EAAE,EAAE,IAAI,CAAC,IAAI,EAAE,GACJ,CAAC;AAEd,QAAA,MAAM,gBAAgB,GACjB,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,OAAO,KACV,MAAM,EAAE,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,EAAE,EAC9D,MAAM,EAAE,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,EAAE,EAC9D,QAAQ,EAAE,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,EACpE,UAAU,EAAE,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,mBAAmB,CAAC,GAAG,EAAE,EACpF,EAAE,EAAE,IAAI,CAAC,IAAI,EAAE,EACf,KAAK,GACK,CAAC;AAEb,QAAA,MAAM,YAAY,GAAY;AAC5B,YAAA,EAAE,EAAE,IAAI,CAAC,IAAI,EAAE;AACf,YAAA,QAAQ,EAAE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,eAAe;AAC/D,YAAA,MAAM,EAAE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE;AAC5C,YAAA,MAAM,EAAE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE;YAC5C,QAAQ,EAAE,CAAC,gBAAgB,CAAC;YAC5B,KAAK;SACK,CAAC;AAEb,QAAA,MAAM,QAAQ,GAAG,CAAC,YAAY,EAAE,gBAAgB,CAAC,CAAC;AAElD,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,GAAG,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;AAEpF,QAAA,IAAI,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,CAAC;AAC5C,QAAA,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;AAE7C,QAAA,IAAI,CAAC,OAAO,GAAG,YAAY,CAAC;AAC5B,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;KACzB;AAEM,IAAA,oBAAoB,CAAC,OAAgB,EAAA;QAC1C,MAAM,YAAY,GAAG,YAAY,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;AACjD,QAAA,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAChE,CAAC,IAAG;;AACF,YAAA,OAAA,CAAA,CAAA,EAAA,GAAA,OAAO,CAAC,KAAK,0CAAE,IAAI;AACnB,gBAAA,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC;AACrD,gBAAA,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;AAAA,SAAA,CACpC,CAAC;AAEF,QAAA,MAAM,gBAAgB,GAAG,QAAQ,GAAG,QAAQ,CAAC,SAAS,GAAG,SAAS,CAAC;AAEnE,QAAA,MAAM,OAAO,GAAyB;AACpC,YAAA,OAAO,EAAE,EAAE;YACX,YAAY;YACZ,WAAW,EAAE,WAAW,CAAC,IAAI;AAC7B,YAAA,SAAS,EAAE,gBAAgB;AAC3B,YAAA,UAAU,EAAE,EAAE;SACS,CAAC;AAE1B,QAAA,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;KAChD;;sHAzGU,yBAAyB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAqB,eAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,kBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAAP,cAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAzB,yBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,yBAAyB,EATzB,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA;QACT,eAAe;QACf,gBAAgB;QAChB,uBAAuB;QACvB,kBAAkB;QAClB,gBAAgB;QAChB,cAAc;AACf,KAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECzBH,kTAMA,EAAA,MAAA,EAAA,CAAA,m3rBAAA,EAAA,uIAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAP,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAe,wBAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,MAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;2FDqBa,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAdrC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,sBAAsB,EAGf,eAAA,EAAA,uBAAuB,CAAC,MAAM,EACpC,SAAA,EAAA;wBACT,eAAe;wBACf,gBAAgB;wBAChB,uBAAuB;wBACvB,kBAAkB;wBAClB,gBAAgB;wBAChB,cAAc;AACf,qBAAA,EAAA,QAAA,EAAA,kTAAA,EAAA,MAAA,EAAA,CAAA,m3rBAAA,EAAA,uIAAA,CAAA,EAAA,CAAA;uNAGe,IAAI,EAAA,CAAA;sBAAnB,KAAK;;;AE1BD,MAAM,cAAc,GAAG,CAAC,GAAc,KAAe;IAC1D,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAEvC,IAAA,MAAM,YAAY,GAAG,IAAI,GAAG,EAAmB,CAAC;AAEhD,IAAA,QAAQ,CAAC,OAAO,CAAC,OAAO,IAAI,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC;IAEnE,MAAM,WAAW,GAAc,EAAE,CAAC;AAClC,IAAA,QAAQ,CAAC,OAAO,CAAC,OAAO,IAAG;QACzB,IAAI,OAAO,CAAC,QAAQ,EAAE;YACpB,MAAM,aAAa,GAAG,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;AACzD,YAAA,IAAI,aAAa,EAAE;gBACjB,MAAM,cAAc,GAAG,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;AACpD,gBAAA,IAAI,cAAc,EAAE;AAClB,oBAAA,aAAa,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;AACxC,iBAAA;AACF,aAAA;AACF,SAAA;AAAM,aAAA;YACL,MAAM,CAAC,GAAG,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;AACvC,YAAA,IAAI,CAAC,EAAE;AACL,gBAAA,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACrB,aAAA;AACF,SAAA;AACH,KAAC,CAAC,CAAC;AAEH,IAAA,OAAO,WAAW,CAAC;AACrB,CAAC;;MCaY,gBAAgB,CAAA;AAkB3B,IAAA,WAAA,CACU,eAAgC,EAChC,SAA2B,EAC3B,gBAAyC,EACzC,WAA+B,EAC/B,cAA8B,EACN,cAA8B,EACtD,cAA8B,EAC9B,WAAwB,EACxB,gBAAkC,EAClC,GAAsB,EAAA;AATtB,QAAA,IAAe,CAAA,eAAA,GAAf,eAAe,CAAiB;AAChC,QAAA,IAAS,CAAA,SAAA,GAAT,SAAS,CAAkB;AAC3B,QAAA,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAyB;AACzC,QAAA,IAAW,CAAA,WAAA,GAAX,WAAW,CAAoB;AAC/B,QAAA,IAAc,CAAA,cAAA,GAAd,cAAc,CAAgB;AACN,QAAA,IAAc,CAAA,cAAA,GAAd,cAAc,CAAgB;AACtD,QAAA,IAAc,CAAA,cAAA,GAAd,cAAc,CAAgB;AAC9B,QAAA,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;AACxB,QAAA,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAkB;AAClC,QAAA,IAAG,CAAA,GAAA,GAAH,GAAG,CAAmB;AA3BhB,QAAA,IAAe,CAAA,eAAA,GAAG,YAAY,CAAC;AAExC,QAAA,IAAc,CAAA,cAAA,GAAc,EAAE,CAAC;AAC/B,QAAA,IAAc,CAAA,cAAA,GAAc,EAAE,CAAC;QAI/B,IAAA,CAAA,IAAI,GAAc,IAAI,SAAS,CAAC,EAAE,CAAC,CAAC;AAIpC,QAAA,IAAe,CAAA,eAAA,GAAG,KAAK,CAAC;AAEd,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,OAAO,EAAQ,CAAC;AAExB,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,YAAY,EAAO,CAAC;KAajE;AAEI,IAAA,WAAW,CACjB,WAA+B,EAC/B,OAAgB,EAChB,gBAA0B,EAC1B,KAAkC,EAAA;QAElC,MAAM,cAAc,GAAG,OAAO,CAAC,KAAK,IAAI,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC;QAEpG,IAAI,CAAC,cAAc,EAAE;YACnB,OAAO;AACR,SAAA;QAED,cAAc,CAAC,SAAS,GAAG,cAAc,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,IAAG;AACjE,YAAA,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,GAAG,QAAQ,CAAC;YAE5C,IAAI,SAAS,KAAK,WAAW,EAAE;AAC7B,gBAAA,OAAO,QAAQ,CAAC;AACjB,aAAA;AAED,YAAA,MAAM,UAAU,GAAG,WAAW,CAAC,KAAK,EAAE,CAAC;AACvC,YAAA,MAAM,iBAAiB,GAClB,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,UAAU,CACV,EAAA,KAAK,CACK,CAAC;YAEhB,OACK,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,QAAQ,CACX,EAAA,EAAA,WAAW,EAAE,CAAC,iBAAiB,EAAE,GAAG,WAAW,CAAC,EAChD,CAAA,CAAA;AACJ,SAAC,CAAC,CAAC;AAEH,QAAA,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC;KACtC;IAEM,QAAQ,GAAA;QACb,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAa,KAAI;;YAC3F,IAAI;AACF,gBAAA,IAAI,CAAC,IAAI,CAAC,sBAAsB,EAAE,CAAC;gBACnC,MAAM,gBAAgB,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;gBAEjE,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBAEvC,IAAI,CAAC,OAAO,EAAE;AACZ,oBAAA,MAAM,mBAAmB,CAAC;AAC3B,iBAAA;AACD,gBAAA,MAAM,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC,UAAU,CAAC;AAEhD,gBAAA,IAAI,UAAU,KAAK,aAAa,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,UAAU,KAAK,aAAa,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE;AACxG,oBAAA,IAAI,CAAC,CAAC,MAAM,KAAK,OAAO,IAAI,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE;AAC/D,wBAAA,MAAM,WAAW,GAAQ,CAAC,CAAC,aAAa,CAAC,CAAC;wBAE1C,IAAI,EAAC,CAAA,EAAA,GAAA,OAAO,CAAC,KAAK,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,QAAQ,CAAA,EAAE;4BAC5B,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;AAC7C,4BAAA,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;AACjC,yBAAA;AAAM,6BAAA;AACL,4BAAA,MAAM,cAAc,GAAG,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC;AAEzF,4BAAA,IAAI,cAAc,EAAE;gCAClB,MAAM,IAAI,GAAG,cAAc,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,IAAI,EAAA,IAAA,EAAA,CAAA,CAAA,OAAA,IAAI,CAAC,EAAE,MAAK,CAAA,EAAA,GAAA,OAAO,CAAC,KAAK,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,EAAE,CAAA,CAAA,EAAA,CAAC,CAAC;gCAEvF,cAAc,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,EAAE,WAAW,CAAC,CAAC;gCAEtD,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;AAC7C,gCAAA,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC;AACtC,6BAAA;AACF,yBAAA;AACF,qBAAA;AACF,iBAAA;gBAED,IAAI,UAAU,KAAK,aAAa,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE;AACpD,oBAAA,IAAI,CAAC,CAAC,MAAM,KAAK,QAAQ,EAAE;wBACzB,MAAM,cAAc,GAAG,OAAO,CAAC,KAAK,IAAI,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC;AAEpG,wBAAA,IAAI,cAAc,EAAE;AAClB,4BAAA,cAAc,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,IAAG;gCACnC,IACE,CAAC,CAAC,oBAAoB;oCACtB,CAAC,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,EACnF;oCACA,IAAI,CAAC,yBAAyB,CAAC,cAAc,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACtD,iCAAA;AACH,6BAAC,CAAC,CAAC;AACH,4BAAA,MAAM,SAAS,GAAG,cAAc,aAAd,cAAc,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAd,cAAc,CAAE,SAAS,CAAC,MAAM,CAChD,CAAC,IACC,CAAC,CAAC,oBAAoB;gCACtB,CAAC,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,CAAC,CACvF,CAAC;4BACF,CAAA,EAAA,GAAA,CAAC,CAAC,oBAAoB,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,OAAO,CAAC,CAAC,IAAG;AAClC,gCAAA,IAAI,CAAA,SAAS,KAAT,IAAA,IAAA,SAAS,KAAT,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,SAAS,CAAE,SAAS,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC,MAAK,CAAC,CAAC,EAAE;AACpF,oCAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC,EAAE,cAAc,CAAC,CAAC;AACjE,oCAAA,IAAI,CAAC,yBAAyB,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;AACzD,oCAAA,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC1B,iCAAA;AACH,6BAAC,CAAC,CAAC;AAEH,4BAAA,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC;AACtC,yBAAA;AACF,qBAAA;AAED,oBAAA,IAAI,CAAC,CAAC,MAAM,KAAK,QAAQ,EAAE;wBACzB,MAAM,cAAc,GAAG,OAAO,CAAC,KAAK,IAAI,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC;AAEpG,wBAAA,IAAI,cAAc,EAAE;AAClB,4BAAA,MAAM,WAAW,GAAG,CAAC,CAAC,WAAW,CAAC;AAClC,4BAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,WAAW,EAAE,cAAc,CAAC,CAAC;AAC3E,4BAAA,cAAc,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACxC,4BAAA,IAAI,CAAC,yBAAyB,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;AAEzD,4BAAA,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC;AACtC,yBAAA;AACF,qBAAA;AAED,oBAAA,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM,EAAE;wBACvB,MAAM,cAAc,GAAG,OAAO,CAAC,KAAK,IAAI,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC;AAEpG,wBAAA,IAAI,cAAc,EAAE;AAClB,4BAAA,MAAM,WAAW,GAAG,CAAC,CAAC,WAAW,CAAC;AAClC,4BAAA,MAAM,cAAc,GAAG,cAAc,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,WAAW,CAAC,CAAC;AAClF,4BAAA,IAAI,cAAc,EAAE;gCAClB,MAAM,QAAQ,mCAAkB,cAAc,CAAA,EAAA,EAAE,EAAE,EAAE,EAAE,GAAE,CAAC;AACzD,gCAAA,cAAc,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACxC,gCAAA,IAAI,CAAC,yBAAyB,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;AAEzD,gCAAA,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC;AACtC,6BAAA;AACF,yBAAA;AACF,qBAAA;AAED,oBAAA,IAAI,CAAC,CAAC,MAAM,KAAK,QAAQ,EAAE;wBACzB,MAAM,cAAc,GAAG,OAAO,CAAC,KAAK,IAAI,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC;AAEpG,wBAAA,IAAI,cAAc,EAAE;;AAElB,4BAAA,MAAM,QAAQ,GAAG,CAAA,EAAA,GAAA,OAAO,CAAC,KAAK,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,SAAS,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,IAAI,KAAK,OAAO,CAAC,SAAS,CAAC,IAAI,CAAE,CAAA,CAAC,CAAC,CAAC;AAEzG,4BAAA,IAAI,QAAQ,EAAE;gCACZ,IAAI,CAAC,yBAAyB,CAAC,cAAc,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;AAC7D,6BAAA;4BAED,MAAM,KAAK,GAAG,cAAc,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,MAAK,QAAQ,KAAR,IAAA,IAAA,QAAQ,KAAR,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,QAAQ,CAAE,EAAE,CAAA,CAAC,CAAC;AAE/E,4BAAA,MAAM,QAAQ,GAAa;AACzB,gCAAA,EAAE,EAAE,IAAI,CAAC,IAAI,EAAE;AACf,gCAAA,GAAG,EAAE,QAAQ,KAAA,IAAA,IAAR,QAAQ,KAAR,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,QAAQ,CAAE,GAAG;AAClB,gCAAA,IAAI,EAAE,QAAQ,KAAA,IAAA,IAAR,QAAQ,KAAR,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,QAAQ,CAAE,IAAI;AACpB,gCAAA,IAAI,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK;AAC1F,gCAAA,SAAS,EAAE,KAAK;AAChB,gCAAA,QAAQ,EAAE,QAAQ,KAAA,IAAA,IAAR,QAAQ,KAAR,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,QAAQ,CAAE,QAAQ;6BACjB,CAAC;AAEd,4BAAA,IAAI,CAAC,yBAAyB,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;AACzD,4BAAA,cAAc,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC;AAE3C,4BAAA,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC;AACtC,yBAAA;AACF,qBAAA;AAED,oBAAA,IAAI,CAAC,CAAC,MAAM,KAAK,QAAQ,EAAE;wBACzB,MAAM,cAAc,GAAG,OAAO,CAAC,KAAK,IAAI,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC;AAEpG,wBAAA,IACE,cAAc;AACd,4BAAA,oBAAoB,CAAC,eAAe,CAAC,cAAc,EAAE,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,MAAA,OAAO,CAAC,KAAK,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,GAAG,CAAC,EAChG;AACA,4BAAA,MAAM,KAAK,GAAG,cAAc,CAAC,SAAS,CAAC,SAAS,CAC9C,IAAI,IAAG,EAAA,IAAA,EAAA,CAAA,CAAC,OAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,MAAK,CAAA,EAAA,GAAA,CAAC,CAAC,WAAW,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,WAAW,EAAE,CAAA,CAAA,EAAA,CACjE,CAAC;AACF,4BAAA,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE;AACd,gCAAA,MAAM,OAAO,GAAG,cAAc,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gCAC7D,IAAI,CAAC,yBAAyB,CAAC,cAAc,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;AAC3D,gCAAA,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC;AACtC,6BAAA;AACF,yBAAA;AACF,qBAAA;AAED,oBAAA,IAAI,CAAC,CAAC,MAAM,KAAK,WAAW,EAAE;AAC5B,wBAAA,MAAM,WAAW,GAAG,CAAC,CAAC,WAAW;8BAC7B,oBAAoB,CAAC,mBAAmB,CAAC,OAAO,EAAE,CAAC,CAAC,WAAW,CAAC;8BAChE,SAAS,CAAC;wBAEd,MAAM,YAAY,GAAG,CAAA,WAAW,KAAA,IAAA,IAAX,WAAW,KAAX,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,WAAW,CAAE,KAAK,KAAI,YAAY,CAAC,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC;wBAC3G,IAAI,WAAW,IAAI,YAAY,EAAE;AAC/B,4BAAA,YAAY,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,GAAG,KAAK,CAAC,CAAC,KAAK,CAAC;AACrE,4BAAA,YAAY,CAAC,SAAS,GAAG,MAAM,CAAC;AAChC,4BAAA,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC;AACtC,yBAAA;AACF,qBAAA;AAED,oBAAA,IAAI,CAAC,CAAC,MAAM,KAAK,gBAAgB,EAAE;AACjC,wBAAA,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;wBACnC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,KAAP,IAAA,IAAA,OAAO,KAAP,KAAA,CAAA,GAAA,OAAO,GAAI,EAAE,CAAC;AAEjC,wBAAA,MAAM,eAAe,GAAoB;AACvC,4BAAA,IAAI,EAAE,iBAAiB;AACvB,4BAAA,WAAW,EAAE,6BAA6B;AAC1C,4BAAA,OAAO,EAAE,EAAE;4BACX,MAAM;yBACP,CAAC;AAEF,wBAAA,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,OAAO,EAAE,gBAAgB,EAAE,EAAE,eAAe,EAAE,CAAC,CAAC;AAC/E,qBAAA;AAED,oBAAA,IAAI,CAAC,CAAC,MAAM,KAAK,iBAAiB,EAAE;AAClC,wBAAA,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;wBACnC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,KAAP,IAAA,IAAA,OAAO,KAAP,KAAA,CAAA,GAAA,OAAO,GAAI,EAAE,CAAC;AAEjC,wBAAA,MAAM,mBAAmB,GAAoB;AAC3C,4BAAA,IAAI,EAAE,iBAAiB;AACvB,4BAAA,WAAW,EAAE,8BAA8B;AAC3C,4BAAA,OAAO,EAAE,EAAE;4BACX,MAAM;yBACP,CAAC;AAEF,wBAAA,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,OAAO,EAAE,gBAAgB,EAAE,EAAE,mBAAmB,EAAE,CAAC,CAAC;AACnF,qBAAA;AACF,iBAAA;gBAED,IAAI,UAAU,KAAK,aAAa,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE;AACpD,oBAAA,IAAI,CAAC,CAAC,MAAM,KAAK,QAAQ,EAAE;wBACzB,MAAM,cAAc,GAClB,CAAA,CAAA,EAAA,GAAA,OAAO,CAAC,KAAK,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,QAAQ,KAAI,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC;AAE/F,wBAAA,IACE,cAAc;AACd,4BAAA,OAAO,CAAC,KAAK;4BACb,OAAO,CAAC,KAAK,CAAC,IAAI;AAClB,4BAAA,oBAAoB,CAAC,eAAe,CAAC,cAAc,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,MAAA,OAAO,CAAC,KAAK,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,GAAG,CAAC,EAC5F;4BACA,MAAM,KAAK,GAAG,cAAc,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,IAAI,EAAA,IAAA,EAAA,CAAA,CAAA,OAAA,IAAI,CAAC,EAAE,MAAK,CAAA,EAAA,GAAA,OAAO,CAAC,KAAK,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,EAAE,CAAA,CAAA,EAAA,CAAC,CAAC;AACxF,4BAAA,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE;AACd,gCAAA,MAAM,OAAO,GAAG,cAAc,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gCAC7D,IAAI,CAAC,yBAAyB,CAAC,cAAc,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;gCAC3D,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;AAC7C,gCAAA,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC;AACtC,6BAAA;AACF,yBAAA;AACF,qBAAA;AAED,oBAAA,IAAI,CAAC,CAAC,MAAM,KAAK,WAAW,EAAE;wBAC5B,MAAM,YAAY,GAAG,OAAO,CAAC,KAAK,IAAI,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC;AAElG,wBAAA,IAAI,YAAY,EAAE;AAChB,4BAAA,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,CAAC,KAAK,CAAC;4BACpD,IAAI,YAAY,CAAC,QAAQ,EAAE;AACzB,gCAAA,MAAM,cAAc,GAAG,YAAY,CAAC,QAAQ,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC;AAExF,gCAAA,IAAI,cAAc,EAAE;oCAClB,IAAI,CAAC,yBAAyB,CAAC,cAAc,EAAE,YAAY,EAAE,GAAG,CAAC,CAAC;AACnE,iCAAA;AACF,6BAAA;AACD,4BAAA,YAAY,CAAC,GAAG,GAAG,GAAG,CAAC;AACvB,4BAAA,YAAY,CAAC,SAAS,GAAG,MAAM,CAAC;AAChC,4BAAA,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC;AACtC,yBAAA;AACF,qBAAA;AACF,iBAAA;gBAED,IAAI,UAAU,KAAK,aAAa,CAAC,aAAa,CAAC,SAAS,CAAC,EAAE;AACzD,oBAAA,IAAI,CAAC,CAAC,MAAM,KAAK,QAAQ,EAAE;wBACzB,MAAM,cAAc,GAAG,OAAO,CAAC,KAAK,IAAI,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC;AACpG,wBAAA,MAAM,SAAS,GAAG,cAAc,KAAA,IAAA,IAAd,cAAc,KAAd,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,cAAc,CAAE,UAAU,CAAC,IAAI,CAC/C,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,EAAE,CACzE,CAAC;AAEF,wBAAA,IAAI,SAAS,EAAE;;AAEb,4BAAA,IAAI,KAAK,GAAG,OAAO,CAAC,CAAC,WAAW,KAAK,WAAW,GAAG,CAAC,CAAC,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC;AAElG,4BAAA,IAAI,SAAS,CAAC,IAAI,KAAK,SAAS,EAAE;gCAChC,KAAK,GAAG,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC;AACvB,6BAAA;AAED,4BAAA,SAAS,CAAC,KAAK,GAAG,KAAK,CAAC;AACxB,4BAAA,SAAS,CAAC,SAAS,GAAG,MAAM,CAAC;AAE7B,4BAAA,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC;AACtC,yBAAA;AACF,qBAAA;AACF,iBAAA;AACF,aAAA;AAAC,YAAA,OAAO,CAAC,EAAE;AACV,gBAAA,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBACf,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,eAAe,EAAE,OAAO,EAAE,CAAA,qBAAA,EAAyB,CAAS,KAAA,IAAA,IAAT,CAAS,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAT,CAAS,CAAE,OAAO,CAAA,CAAE,EAAE,CAAC,CAAC;AAChH,aAAA;AACH,SAAC,CAAC,CAAC;QAEH,IAAI,CAAC,cAAc,CAAC,oBAAoB;AACrC,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AACjC,aAAA,SAAS,CAAC,QAAQ,IAAI,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC;QAEzD,IAAI,CAAC,cAAc,CAAC,sBAAsB;AACvC,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AACjC,aAAA,SAAS,CAAC,CAAC,IAAkC,KAAI;AAChD,YAAA,IAAI,EAAE,IAAI,YAAY,iBAAiB,CAAC,EAAE;AACxC,gBAAA,OAAO,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;AACxC,aAAA;AAED,YAAA,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,CAAC;AACxC,SAAC,CAAC,CAAC;AAEL,QAAA,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,MAAK;;AACpF,YAAA,MAAM,EAAE,YAAY,EAAE,GAAG,CAAA,EAAA,GAAA,IAAI,CAAC,cAAc,CAAC,iBAAiB,EAAE,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,EAAE,CAAC;AACvE,YAAA,IAAI,CAAC,cAAc,CAAC,YAAY,GAAG,YAAmB,CAAC;AACvD,YAAA,IAAI,CAAC,SAAS,CAAC,kBAAkB,GAAG,EAAE,CAAC;YACvC,IAAI,CAAC,YAAY,EAAE,CAAC;AACtB,SAAC,CAAC,CAAC;KACJ;AAEM,IAAA,eAAe,CAAC,QAAkB,EAAA;;QACvC,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,iBAAiB,EAA0B,CAAC;QAChF,MAAM,oBAAoB,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC;AAE3D,QAAA,MAAM,YAAY,GAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EACb,OAAO,CAAA,EAAA,EACV,UAAU,EACL,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,OAAO,CAAC,UAAU,CAClB,EAAA,oBAAoB,CAAC,UAAU,IAErC,CAAC;QAEF,MAAM,SAAS,GAAG,CAAA,EAAA,GAAA,YAAY,CAAC,UAAU,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,SAAS,CAAC;AACrD,QAAA,IAAI,SAAS,IAAI,SAAS,CAAC,MAAM,KAAK,EAAE,EAAE;YACxC,IAAI,CAAC,cAAc,GACd,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,YAAY,KACf,UAAU,EAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EACL,YAAY,CAAC,UAAU,KAC1B,SAAS,EAAE,iBAAiB,CAAC,oBAAoB,CAAC,SAAS,CAAC,MAExD,CAAC;AACV,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,cAAc,GAAG,YAAmB,CAAC;AAC3C,SAAA;AAED,QAAA,IAAI,CAAC,gBAAgB,GAAG,QAAQ,CAAC;QACjC,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAE3D,IAAI,CAAC,YAAY,EAAE,CAAC;KACrB;AAEO,IAAA,oBAAoB,CAAC,eAAyB,EAAA;AACpD,QAAA,IAAI,CAAC,gBAAgB,GAAG,eAAe,CAAC;AACxC,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QAC3B,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;AAC7D,QAAA,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;KAC1B;AAEO,IAAA,0BAA0B,CAAC,KAAwB,EAAA;;QACzD,MAAM,eAAe,GAAG,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;AACvG,QAAA,MAAM,OAAO,GAAG,eAAe,GAAG,KAAK,CAAC,KAAK,CAAC,OAAO,GAAG,sBAAsB,CAAC;AAC/E,QAAA,MAAM,EAAE,6BAA6B,EAAE,GAAG,CAAA,EAAA,GAAA,IAAI,CAAC,cAAc,CAAC,YAAY,MAAI,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAA,EAAE,CAAC;AAEjF,QAAA,IAAI,6BAA6B,EAAE;AACjC,YAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,eAAe,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;AAC1E,SAAA;QAED,IAAI,CAAC,gBAAgB,GAChB,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,IAAI,CAAC,gBAAgB,CAAA,EAAA,EACxB,QAAQ,EAAE,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,KAAK,OAAO,CAAA,CAAE,CAAC,EAAA,CAC9D,CAAC;AACF,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACjC,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;AAE7D,QAAA,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;KAC1B;AAEO,IAAA,yBAAyB,CAAC,MAAgB,EAAE,OAAiB,EAAE,WAAoB,EAAA;;QACzF,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,GAAG,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC;QAC/E,MAAM,UAAU,GAAG,UAAU,KAAV,IAAA,IAAA,UAAU,uBAAV,UAAU,CAAE,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;AAC9E,QAAA,MAAM,WAAW,GAAG,CAAA,EAAA,GAAA,UAAU,KAAV,IAAA,IAAA,UAAU,KAAV,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,UAAU,CAAE,WAAW,MAAI,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAA,CAAC,CAAC;AAEjD,QAAA,IAAI,GAAG,CAAC;AACR,QAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,KAAV,IAAA,IAAA,UAAU,KAAV,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,UAAU,CAAE,WAAW,CAAC,EAAE;AAC7C,YAAA,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC;AAChE,SAAA;AAAM,aAAA;AACL,YAAA,GAAG,GAAG,UAAU,CAAC,SAAS,CAAC,WAAW,CAAC;AACrC,kBAAE,WAAW,GAAG,OAAO,CAAC,GAAG,GAAI,WAAsB;AACrD,kBAAE,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC;AAC/B,SAAA;AAED,QAAA,MAAM,eAAe,GAAG,MAAM,GAAG,OAAO,CAAC,IAAI,GAAG,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;AAEnE,QAAA,IAAI,mBAAmB,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,eAAe,CAAC,CAAC;QAClF,IAAI,CAAC,mBAAmB,EAAE;AACxB,YAAA,mBAAmB,GAAG;AACpB,gBAAA,EAAE,EAAE,IAAI,CAAC,IAAI,EAAE;AACf,gBAAA,IAAI,EAAE,eAAe;aACT,CAAC;AACf,YAAA,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;AAC7C,SAAA;AACD,QAAA,mBAAmB,CAAC,KAAK,GAAG,GAAG,CAAC;AAChC,QAAA,mBAAmB,CAAC,SAAS,GAAG,MAAM,CAAC;KACxC;AAEO,IAAA,cAAc,CAAC,OAAgB,EAAE,WAAoB,EAAE,cAAyB,EAAA;QACtF,OAAO;AACL,YAAA,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,GAAG,KAAK,CAAC,CAAC,KAAK;AAClD,YAAA,IAAI,EAAE,OAAO,CAAC,SAAS,CAAC,IAAI;YAC5B,IAAI,EAAE,UAAU,CAAC,SAAS,CAAC,WAAW,CAAC,GAAG,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,KAAK;AAC5F,YAAA,SAAS,EAAE,KAAK;AAChB,YAAA,QAAQ,EAAE,cAAc,KAAA,IAAA,IAAd,cAAc,KAAd,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,cAAc,CAAE,EAAE;SACjB,CAAC;KACf;IAEM,WAAW,GAAA;AAChB,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;AAExB,QAAA,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC;KAChC;IAEO,YAAY,GAAA;;AAClB,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC;QAEtD,MAAM,UAAU,GAAG,CAAA,EAAA,GAAA,YAAY,aAAZ,YAAY,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAZ,YAAY,CAAE,IAAI,0CAAE,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC;QAClE,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,UAAU,GAAG,CAAA,EAAA,GAAA,YAAY,KAAA,IAAA,IAAZ,YAAY,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAZ,YAAY,CAAE,IAAI,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAG,CAAC,CAAC,CAAC;QAE3F,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,MAAA,YAAY,KAAA,IAAA,IAAZ,YAAY,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAZ,YAAY,CAAE,QAAQ,MAAI,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAA,EAAE,EAAE,YAAY,KAAZ,IAAA,IAAA,YAAY,uBAAZ,YAAY,CAAE,kBAAkB,CAAC,CAAC;QAEnG,IAAI,CAAC,eAAe,EAAE,CAAC;AAEvB,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;AAE5B,QAAA,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;KAC1B;AAEO,IAAA,aAAa,CAAC,QAAkB,EAAA;AACtC,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;KACrC;IAEM,SAAS,GAAA;QACd,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;AAEzD,QAAA,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;KAC3C;IAEM,eAAe,CAAC,QAAkB,EAAE,OAAiB,EAAA;;;AAE1D,QAAA,IAAI,QAAQ,GAAG,CAAA,EAAA,GAAA,UAAU,CAAC,KAAK,CAAC,CAAA,EAAA,GAAA,IAAI,CAAC,cAAc,CAAC,YAAY,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,QAAQ,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,EAAE,CAAC;AAClF,QAAA,MAAM,cAAc,GAAG,CAAA,EAAA,GAAA,UAAU,CAAC,KAAK,CAAC,CAAA,EAAA,GAAA,IAAI,CAAC,cAAc,CAAC,YAAY,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,QAAQ,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,EAAE,CAAC;AAC1F,QAAA,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;AACvD,QAAA,oBAAoB,CAAC,gBAAgB,CACnC,IAAI,CAAC,cAAc,CAAC,YAAY,EAChC,IAAI,CAAC,gBAAgB,EACrB,QAAQ,EACR,cAAc,EACd,CAAC,GAAQ,KAAK,CAAC,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,SAAS,EAC5C,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,IAAI,CAAC,cAAc,CAAC,YAAY,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,cAAc,MAAI,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAA,KAAK,CAC1D,CAAC;AAEF,QAAA,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC;;AAGvD,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACvE,IAAI,CAAC,SAAS,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QAEhC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAE5F,IAAI,CAAC,QAAQ,EAAE;YACb,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AAC5F,SAAA;QAED,IAAI,CAAC,OAAO,EAAE;YACZ,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;AACjD,SAAA;KACF;IAEM,SAAS,GAAA;AACd,QAAA,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE,CAAC;KACrC;IAEO,0BAA0B,CAAC,QAAkB,EAAE,MAAoB,EAAA;AACzE,QAAA,MAAM,IAAI,GAAgB;YACxB,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC;AACtE,YAAA,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE;SAChE,CAAC;AAEjB,QAAA,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC;AAErB,QAAA,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,SAAS,EAAE;YACtC,IAAI,CAAC,0BAA0B,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;AACvD,SAAA;KACF;AAEO,IAAA,aAAa,CAAC,QAAmB,EAAA;;AACvC,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAA,EAAA,GAAA,IAAI,CAAC,WAAW,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,EAAE,EAAE,MAAM,CAAC,CAAC;AACzF,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;AAErE,QAAA,OAAO,OAAO,CAAC;KAChB;AAEO,IAAA,WAAW,CAAC,EAAU,EAAA;QAC5B,OAAO,UAAU,CAAC,yBAAyB,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,cAAc,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC,EAAE,UAAU,CAAC,CAAC;KACrH;;AAzgBU,gBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,yKAwBjB,cAAc,EAAA,EAAA,EAAA,KAAA,EAAAZ,EAAA,CAAA,cAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;iGAxBb,gBAAgB,EAAA,QAAA,EAAA,YAAA,EAAA,OAAA,EAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,EAAA,SAAA,EAFhB,CAAC,gBAAgB,EAAE,uBAAuB,EAAE,WAAW,EAAE,gBAAgB,CAAC,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECvCvF,mgEAmDA,EAAA,MAAA,EAAA,CAAA,m3rBAAA,EAAA,oJAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAa,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,8CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,CAAA,EAAA,QAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,GAAA,CAAA,eAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,wBAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,WAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FDVa,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAP5B,SAAS;+BACE,YAAY,EAAA,SAAA,EAIX,CAAC,gBAAgB,EAAE,uBAAuB,EAAE,WAAW,EAAE,gBAAgB,CAAC,EAAA,QAAA,EAAA,mgEAAA,EAAA,MAAA,EAAA,CAAA,m3rBAAA,EAAA,oJAAA,CAAA,EAAA,CAAA;;;8BA0BlF,MAAM;+BAAC,cAAc,CAAA;;yBARG,eAAe,EAAA,CAAA;sBAAzC,MAAM;;;ME/BI,uBAAuB,CAAA;IAElC,IAAoB,YAAY,CAAC,KAAyB,EAAA;AACxD,QAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;AAC3B,QAAA,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;KAC5B;AAQD,IAAA,WAAA,CACU,cAA8B,EAC9B,iBAA2C,EAC3C,uBAAgD,EAChD,cAA8B,EAAA;AAH9B,QAAA,IAAc,CAAA,cAAA,GAAd,cAAc,CAAgB;AAC9B,QAAA,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAA0B;AAC3C,QAAA,IAAuB,CAAA,uBAAA,GAAvB,uBAAuB,CAAyB;AAChD,QAAA,IAAc,CAAA,cAAA,GAAd,cAAc,CAAgB;AANhC,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,OAAO,EAAQ,CAAC;KAOnC;IAEG,QAAQ,GAAA;AACb,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YACjB,OAAO;AACR,SAAA;AAED,QAAA,IAAI,CAAC,iBAAiB;AACnB,aAAA,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC;AAC7B,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;aAC9B,SAAS,CAAC,SAAS,IAAG;AACrB,YAAA,IAAI,CAAC,qBAAqB,GAAG,SAAS,CAAC;YAEvC,IAAI,IAAI,CAAC,aAAa,EAAE;AACtB,gBAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;AACzC,aAAA;AACH,SAAC,CAAC,CAAC;KACN;IAEM,WAAW,GAAA;AAChB,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;AACrB,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;KAC1B;AAEM,IAAA,cAAc,CAAC,YAAgC,EAAA;AACpD,QAAA,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE;YAC/B,OAAO;AACR,SAAA;QAED,MAAM,uBAAuB,GAAG,UAAU,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAE/D,MAAM,SAAS,GAA4B,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,SAAS,CAAC;AACrF,QAAA,IAAI,SAAS,EAAE;AACb,YAAA,uBAAuB,CAAC,SAAS,GAAG,SAAS,CAAC,MAAM,CAAqB,CAAC,KAAK,EAAE,QAAQ,KAAI;;gBAC3F,OACK,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,KAAK,KACR,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,uBAAuB,CAAC,SAAS,0CAAG,QAAQ,CAAC,IAAI,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,EAAE,EACzE,CAAA,CAAA;aACH,EAAE,EAAE,CAAC,CAAC;AACR,SAAA;AAAM,aAAA;YACL,OAAO,uBAAuB,CAAC,SAAS,CAAC;AAC1C,SAAA;AAED,QAAA,IAAI,CAAC,uBAAuB,GAAG,uBAAuB,CAAC;QAEvD,IAAI,CAAC,aAAa,EAAE,CAAC;KACtB;AAEM,IAAA,iBAAiB,CAAC,QAAkB,EAAA;QACzC,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,EAAE,gBAAgB,EAAE,QAAQ,EAAE,CAAC,CAAC;KACnE;IAEO,aAAa,GAAA;QACnB,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,uBAAuB,EAAE;YAClD,OAAO;AACR,SAAA;QAED,eAAe,CAAC,kBAAkB,CAAC,IAAI,CAAC,uBAAuB,CAAC,QAAQ,CAAC,CAAC;QAE1E,MAAM,YAAY,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;AAEpE,QAAA,aAAa,CAAC;YACZ,IAAI,CAAC,uBAAuB,CAAC,uBAAuB,CAAC,IAAI,CAAC,OAAO,CAAC;YAClE,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,QAAQ,EAAE,wBAAwB,CAAC,IAAI,CAAC;SACpE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,KAAI;;AAC7B,YAAA,MAAM,YAAY,GAAG,YAAY,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC;YAClF,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAChE,CAAC,IACC,YAAY,CAAC,QAAQ;gBACrB,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAAE,YAAY,CAAC,QAAQ,CAAC;gBACxD,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CACpC,CAAC;AAEF,YAAA,IAAI,QAAQ,KAAR,IAAA,IAAA,QAAQ,uBAAR,QAAQ,CAAE,QAAQ,EAAE;AACtB,gBAAA,YAAY,CAAC,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC;AAC3C,aAAA;AAED,YAAA,MAAM,gBAAgB,GAAG,QAAQ,GAAG,QAAQ,CAAC,SAAS,GAAG,SAAS,CAAC;AAEnE,YAAA,MAAM,OAAO,GAAyB;AACpC,gBAAA,OAAO,EAAE,CAAA,EAAA,GAAA,IAAI,CAAC,OAAO,mCAAI,EAAE;AAC3B,gBAAA,YAAY,EAAE,YAAY;gBAC1B,YAAY;gBACZ,WAAW,EAAE,WAAW,CAAC,IAAI;AAC7B,gBAAA,SAAS,EAAE,gBAAgB;gBAC3B,UAAU,EAAE,YAAY,CAAC,SAAS;aACnC,CAAC;YAEF,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;AAChD,SAAC,CAAC,CAAC;KACJ;;oHA5GU,uBAAuB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,cAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,wBAAA,EAAA,EAAA,EAAA,KAAA,EAAAhC,EAAA,CAAA,uBAAA,EAAA,EAAA,EAAA,KAAA,EAAAM,EAAA,CAAA,cAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAvB,uBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,uBAAuB,wHC1BpC,6EACA,EAAA,MAAA,EAAA,CAAA,sBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA2B,gBAAA,EAAA,QAAA,EAAA,YAAA,EAAA,OAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;2FDyBa,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBANnC,SAAS;+BACE,oBAAoB,EAAA,eAAA,EAGb,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,6EAAA,EAAA,MAAA,EAAA,CAAA,sBAAA,CAAA,EAAA,CAAA;yMAG/B,OAAO,EAAA,CAAA;sBAAtB,KAAK;gBACc,YAAY,EAAA,CAAA;sBAA/B,KAAK;;;MEmBK,aAAa,CAAA;;0GAAb,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;2GAAb,aAAa,EAAA,YAAA,EAAA,CAxBT,gBAAgB,EAAE,uBAAuB,EAAE,wBAAwB,EAAE,yBAAyB,CAAA,EAAA,OAAA,EAAA,CAcnG,YAAY,EAAE,WAAW,EAAE,mBAAmB,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,CAAA,EAAA,OAAA,EAAA,CAE1G,WAAW;QACX,mBAAmB;QACnB,gBAAgB;QAChB,uBAAuB;QACvB,wBAAwB;QACxB,yBAAyB,CAAA,EAAA,CAAA,CAAA;AAGhB,aAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,EAvBb,SAAA,EAAA;QACT,mBAAmB;QACnB,cAAc;QACd,oBAAoB;QACpB,qBAAqB;QACrB,kBAAkB;QAClB,mBAAmB;QACnB,wBAAwB;QACxB,QAAQ;QACR,eAAe;QACf,mBAAmB;QACnB,aAAa;AACd,KAAA,EAAA,OAAA,EAAA,CACS,YAAY,EAAE,WAAW,EAAE,mBAAmB,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAE1G,WAAW;QACX,mBAAmB,CAAA,EAAA,CAAA,CAAA;2FAOV,aAAa,EAAA,UAAA,EAAA,CAAA;kBAzBzB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,gBAAgB,EAAE,uBAAuB,EAAE,wBAAwB,EAAE,yBAAyB,CAAC;AAC9G,oBAAA,SAAS,EAAE;wBACT,mBAAmB;wBACnB,cAAc;wBACd,oBAAoB;wBACpB,qBAAqB;wBACrB,kBAAkB;wBAClB,mBAAmB;wBACnB,wBAAwB;wBACxB,QAAQ;wBACR,eAAe;wBACf,mBAAmB;wBACnB,aAAa;AACd,qBAAA;AACD,oBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,WAAW,EAAE,mBAAmB,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,CAAC;AAC7G,oBAAA,OAAO,EAAE;wBACP,WAAW;wBACX,mBAAmB;wBACnB,gBAAgB;wBAChB,uBAAuB;wBACvB,wBAAwB;wBACxB,yBAAyB;AAC1B,qBAAA;iBACF,CAAA;;;AC9CD;;AAEG;;;;"}