@valtimo/dossier 10.8.0 → 11.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (223) hide show
  1. package/esm2022/lib/components/dossier-assign-user/dossier-assign-user.component.mjs +98 -0
  2. package/esm2022/lib/components/dossier-bulk-assign-modal/dossier-bulk-assign-modal.component.mjs +75 -0
  3. package/esm2022/lib/components/dossier-detail/dossier-detail.component.mjs +191 -0
  4. package/esm2022/lib/components/dossier-detail/tab/audit/audit.component.mjs +76 -0
  5. package/esm2022/lib/components/dossier-detail/tab/contact-moments/contact-moments.component.mjs +86 -0
  6. package/esm2022/lib/components/dossier-detail/tab/documenten-api-documents/documenten-api-documents.component.mjs +146 -0
  7. package/esm2022/lib/components/dossier-detail/tab/documents/documents.component.mjs +41 -0
  8. package/esm2022/lib/components/dossier-detail/tab/formio/formio.component.mjs +61 -0
  9. package/esm2022/lib/components/dossier-detail/tab/notes/notes.component.mjs +166 -0
  10. package/esm2022/lib/components/dossier-detail/tab/object-type/object-type.component.mjs +121 -0
  11. package/esm2022/lib/components/dossier-detail/tab/progress/progress.component.mjs +52 -0
  12. package/esm2022/lib/components/dossier-detail/tab/s3-documents/s3-documents.component.mjs +136 -0
  13. package/esm2022/lib/components/dossier-detail/tab/summary/summary.component.mjs +134 -0
  14. package/esm2022/lib/components/dossier-detail/tab/zaakobjecten/zaakobjecten.component.mjs +112 -0
  15. package/esm2022/lib/components/dossier-list/dossier-list.component.mjs +370 -0
  16. package/esm2022/lib/components/dossier-list-actions/dossier-list-actions.component.mjs +84 -0
  17. package/esm2022/lib/components/dossier-process-start-modal/dossier-process-start-modal.component.mjs +132 -0
  18. package/esm2022/lib/components/dossier-supporting-process-start-modal/dossier-supporting-process-start-modal.component.mjs +116 -0
  19. package/esm2022/lib/components/dossier-update/dossier-update.component.mjs +113 -0
  20. package/{esm2020 → esm2022}/lib/components/note-modal/note-modal.component.mjs +5 -5
  21. package/esm2022/lib/constants/case-tab-token.mjs +19 -0
  22. package/esm2022/lib/constants/index.mjs +3 -0
  23. package/esm2022/lib/constants/tab.mjs +42 -0
  24. package/esm2022/lib/dossier-routing.module.mjs +76 -0
  25. package/esm2022/lib/dossier.module.mjs +288 -0
  26. package/esm2022/lib/models/candidate-user.model.mjs +17 -0
  27. package/esm2022/lib/models/dossier-detail-tab.model.mjs +27 -0
  28. package/{esm2020 → esm2022}/lib/models/dossier-parameters.model.mjs +1 -1
  29. package/esm2022/lib/models/index.mjs +23 -0
  30. package/esm2022/lib/models/tab-api.model.mjs +23 -0
  31. package/esm2022/lib/models/tabs.model.mjs +116 -0
  32. package/esm2022/lib/permissions/dossier-detail.permissions.mjs +55 -0
  33. package/esm2022/lib/permissions/index.mjs +17 -0
  34. package/esm2022/lib/pipes/index.mjs +17 -0
  35. package/esm2022/lib/pipes/tab-translate/index.mjs +18 -0
  36. package/esm2022/lib/pipes/tab-translate/tab-translate-pipe.module.mjs +33 -0
  37. package/esm2022/lib/pipes/tab-translate/tab-translate.pipe.mjs +41 -0
  38. package/esm2022/lib/services/dossier-bulk-assign.service.mjs +35 -0
  39. package/esm2022/lib/services/dossier-column.service.mjs +98 -0
  40. package/esm2022/lib/services/dossier-list-assignee.service.mjs +89 -0
  41. package/esm2022/lib/services/dossier-list-pagination.service.mjs +119 -0
  42. package/esm2022/lib/services/dossier-list-search.service.mjs +59 -0
  43. package/esm2022/lib/services/dossier-list.service.mjs +74 -0
  44. package/esm2022/lib/services/dossier-parameter.service.mjs +165 -0
  45. package/esm2022/lib/services/dossier-tab-api.service.mjs +23 -0
  46. package/esm2022/lib/services/dossier-tab.service.mjs +130 -0
  47. package/esm2022/lib/services/dossier.service.mjs +58 -0
  48. package/{esm2020 → esm2022}/lib/services/file-sort.service.mjs +4 -4
  49. package/esm2022/lib/services/index.mjs +27 -0
  50. package/esm2022/lib/services/notes.service.mjs +76 -0
  51. package/{esm2020 → esm2022}/lib/services/zaakobjecten.service.mjs +4 -4
  52. package/esm2022/public_api.mjs +34 -0
  53. package/fesm2022/valtimo-dossier.mjs +3979 -0
  54. package/fesm2022/valtimo-dossier.mjs.map +1 -0
  55. package/lib/components/dossier-assign-user/dossier-assign-user.component.d.ts +28 -0
  56. package/lib/components/dossier-assign-user/dossier-assign-user.component.d.ts.map +1 -0
  57. package/lib/components/dossier-bulk-assign-modal/dossier-bulk-assign-modal.component.d.ts +22 -0
  58. package/lib/components/dossier-bulk-assign-modal/dossier-bulk-assign-modal.component.d.ts.map +1 -0
  59. package/lib/{dossier-detail → components/dossier-detail}/dossier-detail.component.d.ts +36 -33
  60. package/lib/components/dossier-detail/dossier-detail.component.d.ts.map +1 -0
  61. package/lib/{dossier-detail → components/dossier-detail}/tab/audit/audit.component.d.ts +1 -1
  62. package/lib/components/dossier-detail/tab/audit/audit.component.d.ts.map +1 -0
  63. package/lib/{dossier-detail → components/dossier-detail}/tab/contact-moments/contact-moments.component.d.ts +1 -1
  64. package/lib/components/dossier-detail/tab/contact-moments/contact-moments.component.d.ts.map +1 -0
  65. package/lib/{dossier-detail → components/dossier-detail}/tab/documenten-api-documents/documenten-api-documents.component.d.ts +3 -4
  66. package/lib/components/dossier-detail/tab/documenten-api-documents/documenten-api-documents.component.d.ts.map +1 -0
  67. package/lib/{dossier-detail → components/dossier-detail}/tab/documents/documents.component.d.ts +1 -1
  68. package/lib/components/dossier-detail/tab/documents/documents.component.d.ts.map +1 -0
  69. package/lib/components/dossier-detail/tab/formio/formio.component.d.ts +20 -0
  70. package/lib/components/dossier-detail/tab/formio/formio.component.d.ts.map +1 -0
  71. package/lib/{dossier-detail → components/dossier-detail}/tab/notes/notes.component.d.ts +19 -12
  72. package/lib/components/dossier-detail/tab/notes/notes.component.d.ts.map +1 -0
  73. package/lib/{dossier-detail → components/dossier-detail}/tab/object-type/object-type.component.d.ts +5 -5
  74. package/lib/components/dossier-detail/tab/object-type/object-type.component.d.ts.map +1 -0
  75. package/lib/{dossier-detail → components/dossier-detail}/tab/progress/progress.component.d.ts +1 -1
  76. package/lib/components/dossier-detail/tab/progress/progress.component.d.ts.map +1 -0
  77. package/lib/{dossier-detail → components/dossier-detail}/tab/s3-documents/s3-documents.component.d.ts +3 -3
  78. package/lib/components/dossier-detail/tab/s3-documents/s3-documents.component.d.ts.map +1 -0
  79. package/lib/{dossier-detail → components/dossier-detail}/tab/summary/summary.component.d.ts +8 -4
  80. package/lib/components/dossier-detail/tab/summary/summary.component.d.ts.map +1 -0
  81. package/lib/{dossier-detail → components/dossier-detail}/tab/zaakobjecten/zaakobjecten.component.d.ts +5 -5
  82. package/lib/components/dossier-detail/tab/zaakobjecten/zaakobjecten.component.d.ts.map +1 -0
  83. package/lib/components/dossier-list/dossier-list.component.d.ts +94 -0
  84. package/lib/components/dossier-list/dossier-list.component.d.ts.map +1 -0
  85. package/lib/{dossier-list-actions → components/dossier-list-actions}/dossier-list-actions.component.d.ts +6 -7
  86. package/lib/components/dossier-list-actions/dossier-list-actions.component.d.ts.map +1 -0
  87. package/lib/{dossier-process-start-modal → components/dossier-process-start-modal}/dossier-process-start-modal.component.d.ts +4 -7
  88. package/lib/components/dossier-process-start-modal/dossier-process-start-modal.component.d.ts.map +1 -0
  89. package/lib/{dossier-supporting-process-start-modal → components/dossier-supporting-process-start-modal}/dossier-supporting-process-start-modal.component.d.ts +4 -7
  90. package/lib/components/dossier-supporting-process-start-modal/dossier-supporting-process-start-modal.component.d.ts.map +1 -0
  91. package/lib/{dossier-update → components/dossier-update}/dossier-update.component.d.ts +2 -2
  92. package/lib/components/dossier-update/dossier-update.component.d.ts.map +1 -0
  93. package/lib/components/note-modal/note-modal.component.d.ts +3 -3
  94. package/lib/components/note-modal/note-modal.component.d.ts.map +1 -1
  95. package/lib/constants/case-tab-token.d.ts +5 -0
  96. package/lib/constants/case-tab-token.d.ts.map +1 -0
  97. package/lib/constants/index.d.ts +3 -0
  98. package/lib/constants/index.d.ts.map +1 -0
  99. package/lib/constants/tab.d.ts +7 -0
  100. package/lib/constants/tab.d.ts.map +1 -0
  101. package/lib/dossier-routing.module.d.ts.map +1 -1
  102. package/lib/dossier.module.d.ts +35 -33
  103. package/lib/dossier.module.d.ts.map +1 -1
  104. package/lib/models/candidate-user.model.d.ts +7 -0
  105. package/lib/models/candidate-user.model.d.ts.map +1 -0
  106. package/lib/models/dossier-detail-tab.model.d.ts +18 -0
  107. package/lib/models/dossier-detail-tab.model.d.ts.map +1 -0
  108. package/lib/models/dossier-parameters.model.d.ts +0 -1
  109. package/lib/models/dossier-parameters.model.d.ts.map +1 -1
  110. package/lib/models/index.d.ts +5 -2
  111. package/lib/models/index.d.ts.map +1 -1
  112. package/lib/models/search.model.d.ts +3 -3
  113. package/lib/models/search.model.d.ts.map +1 -1
  114. package/lib/models/tab-api.model.d.ts +13 -0
  115. package/lib/models/tab-api.model.d.ts.map +1 -0
  116. package/lib/models/tabs.model.d.ts +11 -10
  117. package/lib/models/tabs.model.d.ts.map +1 -1
  118. package/lib/permissions/dossier-detail.permissions.d.ts +14 -0
  119. package/lib/permissions/dossier-detail.permissions.d.ts.map +1 -0
  120. package/lib/permissions/index.d.ts +2 -0
  121. package/lib/permissions/index.d.ts.map +1 -0
  122. package/lib/pipes/index.d.ts +2 -0
  123. package/lib/pipes/index.d.ts.map +1 -0
  124. package/lib/pipes/tab-translate/index.d.ts +3 -0
  125. package/lib/pipes/tab-translate/index.d.ts.map +1 -0
  126. package/lib/pipes/tab-translate/tab-translate-pipe.module.d.ts +9 -0
  127. package/lib/pipes/tab-translate/tab-translate-pipe.module.d.ts.map +1 -0
  128. package/lib/pipes/tab-translate/tab-translate.pipe.d.ts +13 -0
  129. package/lib/pipes/tab-translate/tab-translate.pipe.d.ts.map +1 -0
  130. package/lib/services/dossier-bulk-assign.service.d.ts +17 -0
  131. package/lib/services/dossier-bulk-assign.service.d.ts.map +1 -0
  132. package/lib/services/dossier-column.service.d.ts +1 -1
  133. package/lib/services/dossier-column.service.d.ts.map +1 -1
  134. package/lib/services/dossier-list-assignee.service.d.ts +5 -4
  135. package/lib/services/dossier-list-assignee.service.d.ts.map +1 -1
  136. package/lib/services/dossier-list-pagination.service.d.ts +2 -2
  137. package/lib/services/dossier-list-pagination.service.d.ts.map +1 -1
  138. package/lib/services/dossier-list-search.service.d.ts +0 -3
  139. package/lib/services/dossier-list-search.service.d.ts.map +1 -1
  140. package/lib/services/dossier-list.service.d.ts +6 -0
  141. package/lib/services/dossier-list.service.d.ts.map +1 -1
  142. package/lib/services/dossier-parameter.service.d.ts.map +1 -1
  143. package/lib/services/dossier-tab-api.service.d.ts +15 -0
  144. package/lib/services/dossier-tab-api.service.d.ts.map +1 -0
  145. package/lib/services/dossier-tab.service.d.ts +31 -0
  146. package/lib/services/dossier-tab.service.d.ts.map +1 -0
  147. package/lib/{dossier.service.d.ts → services/dossier.service.d.ts} +5 -1
  148. package/lib/services/dossier.service.d.ts.map +1 -0
  149. package/lib/services/index.d.ts +4 -1
  150. package/lib/services/index.d.ts.map +1 -1
  151. package/lib/services/notes.service.d.ts.map +1 -1
  152. package/lib/services/zaakobjecten.service.d.ts.map +1 -1
  153. package/package.json +13 -19
  154. package/public_api.d.ts +13 -14
  155. package/public_api.d.ts.map +1 -1
  156. package/esm2020/lib/dossier-assign-user/dossier-assign-user.component.mjs +0 -126
  157. package/esm2020/lib/dossier-detail/dossier-detail.component.mjs +0 -175
  158. package/esm2020/lib/dossier-detail/tab/audit/audit.component.mjs +0 -76
  159. package/esm2020/lib/dossier-detail/tab/contact-moments/contact-moments.component.mjs +0 -86
  160. package/esm2020/lib/dossier-detail/tab/documenten-api-documents/documenten-api-documents.component.mjs +0 -147
  161. package/esm2020/lib/dossier-detail/tab/documents/documents.component.mjs +0 -41
  162. package/esm2020/lib/dossier-detail/tab/notes/notes.component.mjs +0 -153
  163. package/esm2020/lib/dossier-detail/tab/object-type/object-type.component.mjs +0 -122
  164. package/esm2020/lib/dossier-detail/tab/progress/progress.component.mjs +0 -51
  165. package/esm2020/lib/dossier-detail/tab/s3-documents/s3-documents.component.mjs +0 -134
  166. package/esm2020/lib/dossier-detail/tab/summary/summary.component.mjs +0 -124
  167. package/esm2020/lib/dossier-detail/tab/zaakobjecten/zaakobjecten.component.mjs +0 -113
  168. package/esm2020/lib/dossier-detail-tab-enum.mjs +0 -26
  169. package/esm2020/lib/dossier-list/dossier-list.component.mjs +0 -224
  170. package/esm2020/lib/dossier-list-actions/dossier-list-actions.component.mjs +0 -86
  171. package/esm2020/lib/dossier-process-start-modal/dossier-process-start-modal.component.mjs +0 -192
  172. package/esm2020/lib/dossier-routing.module.mjs +0 -66
  173. package/esm2020/lib/dossier-supporting-process-start-modal/dossier-supporting-process-start-modal.component.mjs +0 -181
  174. package/esm2020/lib/dossier-update/dossier-update.component.mjs +0 -113
  175. package/esm2020/lib/dossier.config.mjs +0 -29
  176. package/esm2020/lib/dossier.module.mjs +0 -259
  177. package/esm2020/lib/dossier.service.mjs +0 -50
  178. package/esm2020/lib/models/index.mjs +0 -20
  179. package/esm2020/lib/models/tabs.model.mjs +0 -112
  180. package/esm2020/lib/services/dossier-column.service.mjs +0 -100
  181. package/esm2020/lib/services/dossier-list-assignee.service.mjs +0 -82
  182. package/esm2020/lib/services/dossier-list-pagination.service.mjs +0 -116
  183. package/esm2020/lib/services/dossier-list-search.service.mjs +0 -66
  184. package/esm2020/lib/services/dossier-list.service.mjs +0 -56
  185. package/esm2020/lib/services/dossier-parameter.service.mjs +0 -167
  186. package/esm2020/lib/services/index.mjs +0 -24
  187. package/esm2020/lib/services/notes.service.mjs +0 -76
  188. package/esm2020/lib/tab.service.mjs +0 -80
  189. package/esm2020/public_api.mjs +0 -35
  190. package/fesm2015/valtimo-dossier.mjs +0 -3348
  191. package/fesm2015/valtimo-dossier.mjs.map +0 -1
  192. package/fesm2020/valtimo-dossier.mjs +0 -3447
  193. package/fesm2020/valtimo-dossier.mjs.map +0 -1
  194. package/lib/dossier-assign-user/dossier-assign-user.component.d.ts +0 -34
  195. package/lib/dossier-assign-user/dossier-assign-user.component.d.ts.map +0 -1
  196. package/lib/dossier-detail/dossier-detail.component.d.ts.map +0 -1
  197. package/lib/dossier-detail/tab/audit/audit.component.d.ts.map +0 -1
  198. package/lib/dossier-detail/tab/contact-moments/contact-moments.component.d.ts.map +0 -1
  199. package/lib/dossier-detail/tab/documenten-api-documents/documenten-api-documents.component.d.ts.map +0 -1
  200. package/lib/dossier-detail/tab/documents/documents.component.d.ts.map +0 -1
  201. package/lib/dossier-detail/tab/notes/notes.component.d.ts.map +0 -1
  202. package/lib/dossier-detail/tab/object-type/object-type.component.d.ts.map +0 -1
  203. package/lib/dossier-detail/tab/progress/progress.component.d.ts.map +0 -1
  204. package/lib/dossier-detail/tab/s3-documents/s3-documents.component.d.ts.map +0 -1
  205. package/lib/dossier-detail/tab/summary/summary.component.d.ts.map +0 -1
  206. package/lib/dossier-detail/tab/zaakobjecten/zaakobjecten.component.d.ts.map +0 -1
  207. package/lib/dossier-detail-tab-enum.d.ts +0 -10
  208. package/lib/dossier-detail-tab-enum.d.ts.map +0 -1
  209. package/lib/dossier-list/dossier-list.component.d.ts +0 -66
  210. package/lib/dossier-list/dossier-list.component.d.ts.map +0 -1
  211. package/lib/dossier-list-actions/dossier-list-actions.component.d.ts.map +0 -1
  212. package/lib/dossier-process-start-modal/dossier-process-start-modal.component.d.ts.map +0 -1
  213. package/lib/dossier-supporting-process-start-modal/dossier-supporting-process-start-modal.component.d.ts.map +0 -1
  214. package/lib/dossier-update/dossier-update.component.d.ts.map +0 -1
  215. package/lib/dossier.config.d.ts +0 -4
  216. package/lib/dossier.config.d.ts.map +0 -1
  217. package/lib/dossier.service.d.ts.map +0 -1
  218. package/lib/tab.service.d.ts +0 -21
  219. package/lib/tab.service.d.ts.map +0 -1
  220. /package/{esm2020 → esm2022}/lib/models/notes.model.mjs +0 -0
  221. /package/{esm2020 → esm2022}/lib/models/search.model.mjs +0 -0
  222. /package/{esm2020 → esm2022}/lib/models/zaakobjecten.model.mjs +0 -0
  223. /package/{esm2020 → esm2022}/valtimo-dossier.mjs +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"file":"valtimo-dossier.mjs","sources":["../../../../projects/valtimo/dossier/src/lib/models/tabs.model.ts","../../../../projects/valtimo/dossier/src/lib/models/zaakobjecten.model.ts","../../../../projects/valtimo/dossier/src/lib/models/search.model.ts","../../../../projects/valtimo/dossier/src/lib/models/dossier-parameters.model.ts","../../../../projects/valtimo/dossier/src/lib/models/index.ts","../../../../projects/valtimo/dossier/src/lib/services/dossier-column.service.ts","../../../../projects/valtimo/dossier/src/lib/services/zaakobjecten.service.ts","../../../../projects/valtimo/dossier/src/lib/services/dossier-parameter.service.ts","../../../../projects/valtimo/dossier/src/lib/services/file-sort.service.ts","../../../../projects/valtimo/dossier/src/lib/services/dossier-list.service.ts","../../../../projects/valtimo/dossier/src/lib/services/dossier-list-assignee.service.ts","../../../../projects/valtimo/dossier/src/lib/dossier.service.ts","../../../../projects/valtimo/dossier/src/lib/services/dossier-list-pagination.service.ts","../../../../projects/valtimo/dossier/src/lib/services/dossier-list-search.service.ts","../../../../projects/valtimo/dossier/src/lib/services/index.ts","../../../../projects/valtimo/dossier/src/lib/dossier-detail-tab-enum.ts","../../../../projects/valtimo/dossier/src/lib/dossier-process-start-modal/dossier-process-start-modal.component.ts","../../../../projects/valtimo/dossier/src/lib/dossier-process-start-modal/dossier-process-start-modal.component.html","../../../../projects/valtimo/dossier/src/lib/dossier-list-actions/dossier-list-actions.component.ts","../../../../projects/valtimo/dossier/src/lib/dossier-list-actions/dossier-list-actions.component.html","../../../../projects/valtimo/dossier/src/lib/dossier-list/dossier-list.component.ts","../../../../projects/valtimo/dossier/src/lib/dossier-list/dossier-list.component.html","../../../../projects/valtimo/dossier/src/lib/dossier-detail/tab/summary/summary.component.ts","../../../../projects/valtimo/dossier/src/lib/dossier-detail/tab/summary/summary.component.html","../../../../projects/valtimo/dossier/src/lib/dossier-detail/tab/progress/progress.component.ts","../../../../projects/valtimo/dossier/src/lib/dossier-detail/tab/progress/progress.component.html","../../../../projects/valtimo/dossier/src/lib/dossier-detail/tab/audit/audit.component.ts","../../../../projects/valtimo/dossier/src/lib/dossier-detail/tab/audit/audit.component.html","../../../../projects/valtimo/dossier/src/lib/dossier-detail/tab/documenten-api-documents/documenten-api-documents.component.ts","../../../../projects/valtimo/dossier/src/lib/dossier-detail/tab/documenten-api-documents/documenten-api-documents.component.html","../../../../projects/valtimo/dossier/src/lib/dossier-detail/tab/s3-documents/s3-documents.component.ts","../../../../projects/valtimo/dossier/src/lib/dossier-detail/tab/s3-documents/s3-documents.component.html","../../../../projects/valtimo/dossier/src/lib/dossier-detail/tab/documents/documents.component.ts","../../../../projects/valtimo/dossier/src/lib/dossier-detail/tab/documents/documents.component.html","../../../../projects/valtimo/dossier/src/lib/dossier.config.ts","../../../../projects/valtimo/dossier/src/lib/dossier-detail/tab/object-type/object-type.component.ts","../../../../projects/valtimo/dossier/src/lib/dossier-detail/tab/object-type/object-type.component.html","../../../../projects/valtimo/dossier/src/lib/tab.service.ts","../../../../projects/valtimo/dossier/src/lib/dossier-supporting-process-start-modal/dossier-supporting-process-start-modal.component.ts","../../../../projects/valtimo/dossier/src/lib/dossier-supporting-process-start-modal/dossier-supporting-process-start-modal.component.html","../../../../projects/valtimo/dossier/src/lib/dossier-assign-user/dossier-assign-user.component.ts","../../../../projects/valtimo/dossier/src/lib/dossier-assign-user/dossier-assign-user.component.html","../../../../projects/valtimo/dossier/src/lib/dossier-detail/dossier-detail.component.ts","../../../../projects/valtimo/dossier/src/lib/dossier-detail/dossier-detail.component.html","../../../../projects/valtimo/dossier/src/lib/dossier-detail/tab/contact-moments/contact-moments.component.ts","../../../../projects/valtimo/dossier/src/lib/dossier-detail/tab/contact-moments/contact-moments.component.html","../../../../projects/valtimo/dossier/src/lib/dossier-detail/tab/zaakobjecten/zaakobjecten.component.ts","../../../../projects/valtimo/dossier/src/lib/dossier-detail/tab/zaakobjecten/zaakobjecten.component.html","../../../../projects/valtimo/dossier/src/lib/services/notes.service.ts","../../../../projects/valtimo/dossier/src/lib/components/note-modal/note-modal.component.ts","../../../../projects/valtimo/dossier/src/lib/components/note-modal/note-modal.component.html","../../../../projects/valtimo/dossier/src/lib/dossier-detail/tab/notes/notes.component.ts","../../../../projects/valtimo/dossier/src/lib/dossier-detail/tab/notes/notes.component.html","../../../../projects/valtimo/dossier/src/lib/dossier-update/dossier-update.component.ts","../../../../projects/valtimo/dossier/src/lib/dossier-update/dossier-update.component.html","../../../../projects/valtimo/dossier/src/lib/dossier-routing.module.ts","../../../../projects/valtimo/dossier/src/lib/dossier.module.ts","../../../../projects/valtimo/dossier/src/public_api.ts","../../../../projects/valtimo/dossier/src/valtimo-dossier.ts"],"sourcesContent":["/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {ComponentFactoryResolver, ComponentRef, ViewContainerRef} from '@angular/core';\nimport {TranslateService} from '@ngx-translate/core';\nimport {Router} from '@angular/router';\nimport {Location} from '@angular/common';\n\nexport interface TabLoader<T_TAB extends Tab> {\n tabs: T_TAB[];\n\n initial(tabName?: string): void;\n\n load(tabToLoad: T_TAB): void;\n\n translateTabName(tab: T_TAB): string;\n}\n\nexport class TabLoaderImpl implements TabLoader<TabImpl> {\n private readonly _tabs: TabImpl[] = null;\n private readonly _componentFactoryResolver: ComponentFactoryResolver = null;\n private readonly _viewContainerRef: ViewContainerRef = null;\n private _activeComponent: ComponentRef<any> = null;\n private _activeTab: TabImpl = null;\n private _translateService: TranslateService = null;\n private _router: Router;\n private _location: Location;\n\n constructor(\n tabs: TabImpl[],\n componentFactoryResolver: ComponentFactoryResolver,\n viewContainerRef: ViewContainerRef,\n translateService: TranslateService,\n router: Router,\n location: Location\n ) {\n this._tabs = tabs;\n this._componentFactoryResolver = componentFactoryResolver;\n this._viewContainerRef = viewContainerRef;\n this._translateService = translateService;\n this._router = router;\n this._location = location;\n }\n\n initial(tabName?: string): void {\n let initialTab;\n if (tabName) {\n initialTab = this._tabs.find(tab => tab.name === tabName);\n } else {\n initialTab = this._tabs[0] || null;\n }\n this.load(initialTab);\n }\n\n load(newTab: TabImpl): void {\n if (newTab !== this._activeTab) {\n this._tabs.forEach(tab => tab.deactivate());\n this.replaceView(newTab);\n this.replaceUrlState(newTab);\n this.setActive(newTab);\n }\n }\n\n refreshView() {\n this.replaceView(this._activeTab);\n }\n\n private replaceView(tab: TabImpl): void {\n const componentFactory = this._componentFactoryResolver.resolveComponentFactory(tab.component);\n this._viewContainerRef.clear();\n if (this._activeTab !== null) {\n this._activeComponent.destroy();\n }\n this._activeComponent = this._viewContainerRef.createComponent(componentFactory);\n }\n\n private replaceUrlState(tab: TabImpl): void {\n const currentUrl = this._router.url;\n const queryParams = currentUrl.split('?')[1] || '';\n const urlParts = currentUrl.split('/');\n urlParts.splice(urlParts.length - 1, 1, tab.name);\n const newUrl = urlParts.join('/');\n\n if (currentUrl.includes(newUrl) && queryParams) {\n this._router.navigateByUrl(`${newUrl}?${queryParams}`);\n } else {\n this._router.navigateByUrl(newUrl);\n }\n }\n\n private setActive(tab: TabImpl): void {\n tab.activate();\n this._activeTab = tab;\n }\n\n get tabs(): TabImpl[] {\n return this._tabs;\n }\n\n translateTabName(tab: TabImpl): string {\n const translationId = 'dossier.tabs.' + tab.name;\n const translation = this._translateService.instant('dossier.tabs.' + tab.name);\n return translationId !== translation ? translation : tab.name;\n }\n}\n\nexport interface Tab {\n name: string;\n sequence: number;\n component: any;\n\n activate(): void;\n\n deactivate(): void;\n\n isActive(): boolean;\n}\n\nexport class TabImpl implements Tab {\n private readonly _name: string;\n private readonly _sequence: number;\n private readonly _component: any;\n private _active = false;\n\n constructor(name: string, sequence: number, component: any) {\n this._name = name;\n this._sequence = sequence;\n this._component = component;\n }\n\n get name(): string {\n return this._name;\n }\n\n get sequence(): number {\n return this._sequence;\n }\n\n get component(): any {\n return this._component;\n }\n\n activate(): void {\n this._active = true;\n }\n\n deactivate(): void {\n this._active = false;\n }\n\n isActive(): boolean {\n return this._active;\n }\n}\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {FormioForm} from '@formio/angular/formio.common';\n\ninterface ZaakObjectType {\n name: string;\n url: string;\n}\n\ninterface ZaakObject {\n index: number;\n registrationAt: string;\n title: string | null;\n url: string;\n}\n\ninterface ZaakobjectFormResponse {\n documentMappedFields: Array<{\n defaultValue: string;\n input: boolean;\n key: string;\n label: string;\n type: string;\n }>;\n formDefinition: FormioForm;\n id: string;\n name: string;\n readOnly: boolean;\n}\n\nexport {ZaakObjectType, ZaakObject, ZaakobjectFormResponse};\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\ntype CaseSearchFieldDataType = 'text' | 'number' | 'date' | 'datetime' | 'boolean';\n\ntype CaseSearchFieldFieldType = 'single' | 'multiple' | 'range';\n\ntype CaseSearchFieldMatchType = 'exact' | 'like';\n\ninterface CaseSearchField {\n key: string;\n datatype: CaseSearchFieldDataType;\n fieldtype: CaseSearchFieldFieldType;\n matchtype: CaseSearchFieldMatchType;\n}\n\nexport {\n CaseSearchFieldDataType,\n CaseSearchFieldFieldType,\n CaseSearchFieldMatchType,\n CaseSearchField,\n};\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\ninterface PaginationParameters {\n collectionSize: string;\n page: string;\n size: string;\n maxPaginationItemSize: string;\n sortStateName: string;\n sortStateDirection: string;\n isSorting: 'true' | 'false';\n}\n\ninterface DossierParameters extends PaginationParameters {\n search?: string;\n assignee?: string;\n}\n\nexport {DossierParameters};\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './tabs.model';\nexport * from './zaakobjecten.model';\nexport * from './search.model';\nexport * from './dossier-parameters.model';\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Injectable} from '@angular/core';\nimport {ConfigService, DefinitionColumn} from '@valtimo/config';\nimport {map, Observable} from 'rxjs';\nimport {CaseListColumn, DocumentService} from '@valtimo/document';\nimport {ListField} from '@valtimo/components';\nimport {TranslateService} from '@ngx-translate/core';\n\n@Injectable()\nexport class DossierColumnService {\n constructor(\n private readonly configService: ConfigService,\n private readonly documentService: DocumentService,\n private readonly translateService: TranslateService\n ) {}\n\n getDefinitionColumns(\n documentDefinitionName: string\n ): Observable<{columns: Array<DefinitionColumn>; hasApiConfig: boolean}> {\n const config = this.configService.config;\n const customDefinitionTable = config.customDefinitionTables[documentDefinitionName];\n const defaultDefinitionTable = config.defaultDefinitionTable;\n\n return this.documentService.getCaseList(documentDefinitionName).pipe(\n map(caseListColumns => {\n const apiCaseListColumns =\n config?.featureToggles?.caseListColumn &&\n caseListColumns &&\n Array.isArray(caseListColumns) &&\n caseListColumns.length > 0 &&\n this.mapCaseListColumnsToDefinitionColumns(caseListColumns);\n\n return {\n columns: customDefinitionTable || apiCaseListColumns || defaultDefinitionTable,\n hasApiConfig: !!apiCaseListColumns,\n };\n })\n );\n }\n\n hasEnvironmentConfig(documentDefinitionName: string): boolean {\n return !!this.configService.config?.customDefinitionTables[documentDefinitionName];\n }\n\n mapDefinitionColumnsToListFields(\n columns: Array<DefinitionColumn>,\n hasEnvConfig: boolean\n ): Array<ListField> {\n return columns.map(column => {\n const translationKey = `fieldLabels.${column.translationKey}`;\n const translation = this.translateService.instant(translationKey);\n const validTranslation = translation !== translationKey && translation;\n return {\n key: hasEnvConfig ? column.propertyName : column.translationKey,\n label: column.title || validTranslation || column.translationKey,\n sortable: column.sortable,\n ...(column.viewType && {viewType: column.viewType}),\n ...(column.enum && {enum: column.enum}),\n ...(column.format && {format: column.format}),\n ...(column.default && {default: column.default}),\n };\n });\n }\n\n private mapCaseListColumnsToDefinitionColumns(\n caseListColumns: Array<CaseListColumn>\n ): Array<DefinitionColumn> {\n return caseListColumns.map(caseListColumn => ({\n translationKey: caseListColumn.key,\n sortable: caseListColumn.sortable,\n default: caseListColumn.defaultSort,\n viewType: this.getViewType(caseListColumn.displayType.type),\n propertyName: this.getPropertyName(caseListColumn.path),\n ...(caseListColumn.title && {title: caseListColumn.title}),\n ...(caseListColumn?.displayType?.displayTypeParameters?.enum && {\n enum: caseListColumn.displayType.displayTypeParameters.enum as any,\n }),\n ...(caseListColumn.displayType?.displayTypeParameters?.dateFormat && {\n format: caseListColumn.displayType?.displayTypeParameters?.dateFormat,\n }),\n }));\n }\n\n private getViewType(caseListColumnDisplayType: string): string {\n switch (caseListColumnDisplayType) {\n case 'arrayCount':\n return 'relatedFiles';\n break;\n case 'underscoresToSpaces':\n return 'stringReplaceUnderscore';\n default:\n return caseListColumnDisplayType;\n break;\n }\n }\n\n private getPropertyName(caseListColumnPath: string): string {\n return caseListColumnPath.replace('doc:', '$.').replace('case:', '');\n }\n}\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Injectable} from '@angular/core';\nimport {ConfigService} from '@valtimo/config';\nimport {HttpClient} from '@angular/common/http';\nimport {Observable} from 'rxjs';\nimport {ZaakObject, ZaakobjectFormResponse, ZaakObjectType} from '../models';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ZaakobjectenService {\n private readonly VALTIMO_API_ENDPOINT_URI = this.configService.config.valtimoApi.endpointUri;\n\n constructor(private readonly configService: ConfigService, private readonly http: HttpClient) {}\n\n getDocumentObjectTypes(documentId: string): Observable<Array<ZaakObjectType>> {\n return this.http.get<Array<ZaakObjectType>>(\n `${this.VALTIMO_API_ENDPOINT_URI}v1/document/${documentId}/zaak/objecttype`\n );\n }\n\n getDocumentObjectsOfType(documentId: string, typeUrl: string): Observable<Array<ZaakObject>> {\n return this.http.get<Array<ZaakObject>>(\n `${this.VALTIMO_API_ENDPOINT_URI}v1/document/${documentId}/zaak/object?typeUrl=${typeUrl}`\n );\n }\n\n getObjectTypeForm(documentId: string, objectUrl: string): Observable<ZaakobjectFormResponse> {\n return this.http.get<ZaakobjectFormResponse>(\n `${this.VALTIMO_API_ENDPOINT_URI}v1/document/${documentId}/zaak/object/form?objectUrl=${objectUrl}`\n );\n }\n}\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Injectable, OnDestroy} from '@angular/core';\nimport {DossierParameters} from '../models';\nimport {\n BehaviorSubject,\n combineLatest,\n distinctUntilChanged,\n map,\n Observable,\n Subscription,\n take,\n} from 'rxjs';\nimport {ActivatedRoute, Router} from '@angular/router';\nimport {AssigneeFilter, Direction, SearchFieldValues} from '@valtimo/config';\nimport {Pagination} from '@valtimo/components';\n\n@Injectable()\nexport class DossierParameterService implements OnDestroy {\n private readonly _dossierParameters$ = new BehaviorSubject<DossierParameters>(undefined);\n private readonly _searchFieldValues$ = new BehaviorSubject<SearchFieldValues>({});\n\n get dossierParameters$(): Observable<DossierParameters> {\n return this._dossierParameters$.asObservable();\n }\n\n get searchFieldValues$(): Observable<SearchFieldValues> {\n return this._searchFieldValues$.asObservable();\n }\n\n get querySearchParams$(): Observable<SearchFieldValues> {\n return this.route.queryParams.pipe(\n map(params => {\n if (params.search) {\n return JSON.parse(atob(params.search)) as SearchFieldValues;\n }\n return {};\n }),\n distinctUntilChanged(\n (prevParams, currParams) => JSON.stringify(prevParams) === JSON.stringify(currParams)\n )\n );\n }\n\n get queryPaginationParams$(): Observable<Pagination | null> {\n return this.route.queryParams.pipe(\n map(params => {\n const paramsCopy = {...params} as any as DossierParameters;\n\n if (paramsCopy.search) {\n delete paramsCopy.search;\n }\n\n return paramsCopy.collectionSize\n ? {\n collectionSize: Number(paramsCopy.collectionSize),\n page: Number(paramsCopy.page),\n size: Number(paramsCopy.size),\n maxPaginationItemSize: Number(paramsCopy.maxPaginationItemSize),\n ...(paramsCopy.isSorting === 'true' && {\n sort: {\n isSorting: !!(paramsCopy.isSorting === 'true'),\n state: {\n name: paramsCopy.sortStateName,\n direction: paramsCopy.sortStateDirection as Direction,\n },\n },\n }),\n }\n : null;\n }),\n distinctUntilChanged(\n (prevParams, currParams) => JSON.stringify(prevParams) === JSON.stringify(currParams)\n )\n );\n }\n\n get queryAssigneeParam$(): Observable<AssigneeFilter> {\n return this.route.queryParams.pipe(\n map(params => {\n if (params?.assignee) {\n return params?.assignee?.toUpperCase();\n }\n return '';\n }),\n distinctUntilChanged((prevParams, currParams) => prevParams === currParams)\n );\n }\n\n dossierParametersSubscription!: Subscription;\n\n constructor(private readonly router: Router, private readonly route: ActivatedRoute) {\n this.setDossierParameters();\n }\n\n ngOnDestroy(): void {\n this.dossierParametersSubscription?.unsubscribe();\n }\n\n setSearchFieldValues(searchFieldValues: SearchFieldValues): void {\n this._searchFieldValues$.next(searchFieldValues);\n }\n\n setSearchParameters(searchParameters: SearchFieldValues): void {\n this._dossierParameters$.pipe(take(1)).subscribe(dossierParameters => {\n if (Object.keys(searchParameters || {}).length > 0) {\n this._dossierParameters$.next({\n ...dossierParameters,\n search: this.objectToBase64(searchParameters),\n });\n } else {\n if (dossierParameters?.search) {\n delete dossierParameters.search;\n }\n this._dossierParameters$.next(dossierParameters);\n }\n });\n }\n\n setPaginationParameters(pagination: Pagination): void {\n if (pagination) {\n this._dossierParameters$.pipe(take(1)).subscribe(dossierParameters => {\n this._dossierParameters$.next({\n ...dossierParameters,\n size: `${pagination.size}`,\n collectionSize: `${pagination.collectionSize}`,\n page: `${pagination.page}`,\n maxPaginationItemSize: `${pagination.maxPaginationItemSize}`,\n isSorting: pagination.sort?.isSorting ? 'true' : 'false',\n ...(pagination.sort?.state?.name && {sortStateName: `${pagination.sort?.state.name}`}),\n ...(pagination.sort?.state?.direction && {\n sortStateDirection: `${pagination.sort?.state.direction}`,\n }),\n });\n });\n }\n }\n\n setAssigneeParameter(assigneeFilter: AssigneeFilter): void {\n this._dossierParameters$.pipe(take(1)).subscribe(dossierParameters => {\n this._dossierParameters$.next({\n ...dossierParameters,\n assignee: assigneeFilter.toLowerCase(),\n });\n });\n }\n\n clearSearchFieldValues(): void {\n this._searchFieldValues$.next({});\n }\n\n clearParameters(): void {\n this._dossierParameters$.next(undefined);\n this.router.navigate([this.getUrlWithoutParams()]);\n }\n\n private openDossierParametersSubscription(): void {\n this.dossierParametersSubscription = this.dossierParameters$.subscribe(dossierParams => {\n this.router.navigate([this.getUrlWithoutParams()], {queryParams: dossierParams});\n });\n }\n\n private objectToBase64(jsObject: object): string {\n return btoa(JSON.stringify(jsObject));\n }\n\n private getUrlWithoutParams(): string {\n const urlTree = this.router.parseUrl(this.router.url);\n urlTree.queryParams = {};\n urlTree.fragment = null;\n return urlTree.toString();\n }\n\n private setDossierParameters(): void {\n combineLatest([this.queryPaginationParams$, this.querySearchParams$, this.queryAssigneeParam$])\n .pipe(take(1))\n .subscribe(([paginationParams, searchParams, assigneeParams]) => {\n if (paginationParams) {\n this.setPaginationParameters(paginationParams);\n }\n if (searchParams) {\n this.setSearchParameters(searchParams);\n this.setSearchFieldValues(searchParams);\n }\n if (assigneeParams) {\n this.setAssigneeParameter(assigneeParams);\n }\n\n this.openDossierParametersSubscription();\n });\n }\n}\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Injectable} from '@angular/core';\nimport {ConfigService} from '@valtimo/config';\nimport {RelatedFile} from '@valtimo/document';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class FileSortService {\n constructor(private readonly configService: ConfigService) {}\n\n sortRelatedFilesByDateDescending(relatedFiles: Array<RelatedFile>): Array<RelatedFile> {\n const sortByDate = this.configService.config?.featureToggles?.sortFilesByDate;\n\n if (sortByDate) {\n return relatedFiles.sort(\n (a, b) => new Date(b.createdOn).getTime() - new Date(a.createdOn).getTime()\n );\n }\n\n return relatedFiles;\n }\n}\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Injectable} from '@angular/core';\nimport {BehaviorSubject, map, Observable} from 'rxjs';\nimport {DossierColumnService} from '../services';\nimport {Documents, SpecifiedDocuments} from '@valtimo/document';\n\n@Injectable()\nexport class DossierListService {\n private readonly _documentDefinitionName$ = new BehaviorSubject<string>('');\n\n private readonly _hasEnvColumnConfig$: Observable<boolean> = this.documentDefinitionName$.pipe(\n map(documentDefinitionName =>\n this.dossierColumnService.hasEnvironmentConfig(documentDefinitionName)\n )\n );\n\n get documentDefinitionName$(): Observable<string> {\n return this._documentDefinitionName$.asObservable();\n }\n\n get hasEnvColumnConfig$(): Observable<boolean> {\n return this._hasEnvColumnConfig$;\n }\n\n constructor(private readonly dossierColumnService: DossierColumnService) {}\n\n setDocumentDefinitionName(documentDefinitionName: string): void {\n this._documentDefinitionName$.next(documentDefinitionName);\n }\n\n mapDocuments(\n documents: Documents | SpecifiedDocuments,\n hasEnvColumnConfig: boolean,\n hasApiColumnConfig: boolean\n ) {\n if (hasEnvColumnConfig || !hasApiColumnConfig) {\n return (documents as Documents).content.map(document => {\n const {content, ...others} = document;\n return {...content, ...others};\n });\n }\n\n return (documents as SpecifiedDocuments).content.reduce((acc, curr) => {\n const propsObject = {id: curr.id};\n curr.items?.forEach(item => {\n propsObject[item.key] = item.value;\n });\n return [...acc, propsObject];\n }, []);\n }\n}\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Injectable} from '@angular/core';\nimport {BehaviorSubject, map, Observable, switchMap, take} from 'rxjs';\nimport {DossierListService} from './dossier-list.service';\nimport {DocumentService} from '@valtimo/document';\nimport {AssigneeFilter, DefinitionColumn} from '@valtimo/config';\nimport {TranslateService} from '@ngx-translate/core';\nimport {ListField} from '@valtimo/components';\nimport {DossierParameterService} from './dossier-parameter.service';\n\n@Injectable()\nexport class DossierListAssigneeService {\n private readonly ASSIGNEE_KEY = 'assigneeFullName';\n private readonly defaultAssigneeFilter: AssigneeFilter = 'ALL';\n\n readonly canHaveAssignee$: Observable<boolean> =\n this.dossierListService.documentDefinitionName$.pipe(\n switchMap(documentDefinitionName =>\n this.documentService.getCaseSettings(documentDefinitionName)\n ),\n map(caseSettings => caseSettings?.canHaveAssignee)\n );\n\n private readonly _assigneeFilter$ = new BehaviorSubject<AssigneeFilter>(\n this.defaultAssigneeFilter\n );\n\n get assigneeFilter$(): Observable<AssigneeFilter> {\n return this._assigneeFilter$.asObservable();\n }\n\n constructor(\n private readonly dossierListService: DossierListService,\n private readonly documentService: DocumentService,\n private readonly translateService: TranslateService,\n private readonly dossierParameterService: DossierParameterService\n ) {}\n\n resetAssigneeFilter(): void {\n this.dossierParameterService.queryAssigneeParam$.pipe(take(1)).subscribe(assigneeParam => {\n if (assigneeParam) {\n this._assigneeFilter$.next(assigneeParam);\n this.dossierParameterService.setAssigneeParameter(assigneeParam);\n } else {\n this._assigneeFilter$.next(this.defaultAssigneeFilter);\n this.dossierParameterService.setAssigneeParameter(this.defaultAssigneeFilter);\n }\n });\n }\n\n setAssigneeFilter(assigneeFilter: AssigneeFilter): void {\n this._assigneeFilter$.next(assigneeFilter);\n this.dossierParameterService.setAssigneeParameter(assigneeFilter);\n }\n\n filterAssigneeColumns(\n columns: Array<DefinitionColumn>,\n canHaveAssignee: boolean\n ): Array<DefinitionColumn> {\n return columns.filter(column => {\n if (column?.key === this.ASSIGNEE_KEY && !canHaveAssignee) {\n return false;\n }\n return true;\n });\n }\n\n addAssigneeListField(\n columns: Array<DefinitionColumn>,\n listFields: Array<ListField>,\n canHaveAssignee: boolean\n ): Array<ListField> {\n return [\n ...listFields,\n ...(canHaveAssignee && !columns.find(column => column.propertyName === this.ASSIGNEE_KEY)\n ? [\n {\n key: this.ASSIGNEE_KEY,\n label: this.translateService.instant(`fieldLabels.${this.ASSIGNEE_KEY}`),\n sortable: true,\n viewType: 'string',\n },\n ]\n : []),\n ];\n }\n}\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Injectable} from '@angular/core';\nimport {ConfigService, DefinitionColumn, Direction} from '@valtimo/config';\nimport {SortState} from '@valtimo/document';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class DossierService {\n private readonly definitions: any;\n\n constructor(private readonly configService: ConfigService) {\n this.definitions = configService.config.definitions;\n }\n\n getImplementationEnvironmentDefinitions(name: string) {\n return this.definitions.dossiers.find(definition => definition.name === name);\n }\n\n getInitialSortState(columns: Array<DefinitionColumn>): SortState {\n const defaultColumn = columns.find(column => column.default);\n const isSorting = defaultColumn?.default === 'ASC' || defaultColumn?.default === 'DESC';\n const direction: Direction =\n typeof !defaultColumn || defaultColumn.default === 'boolean'\n ? 'DESC'\n : (defaultColumn.default as any as Direction);\n\n return {\n isSorting,\n state: {\n name: defaultColumn ? defaultColumn.propertyName : columns[0].propertyName,\n direction,\n },\n };\n }\n}\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Injectable} from '@angular/core';\nimport {BehaviorSubject, filter, map, Observable, take, tap} from 'rxjs';\nimport {Pagination} from '@valtimo/components';\nimport {NGXLogger} from 'ngx-logger';\nimport {DossierParameterService} from './dossier-parameter.service';\nimport {DefinitionColumn} from '@valtimo/config';\nimport {DossierService} from '../dossier.service';\nimport {Documents, SortState, SpecifiedDocuments} from '@valtimo/document';\n\n@Injectable()\nexport class DossierListPaginationService {\n private readonly DEFAULT_PAGINATION: Pagination = {\n collectionSize: 0,\n page: 1,\n size: 10,\n maxPaginationItemSize: 5,\n sort: undefined,\n };\n\n private readonly _pagination$ = new BehaviorSubject<Pagination | undefined>(undefined);\n\n private readonly _paginationCopy$ = this._pagination$.pipe(\n filter(pagination => !!pagination),\n map(pagination => pagination && JSON.parse(JSON.stringify(pagination))),\n tap(pagination => this.dossierParameterService.setPaginationParameters(pagination))\n );\n\n get pagination$(): Observable<Pagination> {\n return this._paginationCopy$;\n }\n\n constructor(\n private readonly logger: NGXLogger,\n private readonly dossierParameterService: DossierParameterService,\n private readonly dossierService: DossierService\n ) {}\n\n pageChange(newPage: number): void {\n this._pagination$.pipe(take(1)).subscribe(pagination => {\n if (pagination && pagination.page !== newPage) {\n this.logger.debug(`Page change: ${newPage}`);\n this._pagination$.next({...pagination, page: newPage});\n }\n });\n }\n\n pageSizeChange(newPageSize: number): void {\n this._pagination$.pipe(take(1)).subscribe(pagination => {\n if (pagination && pagination.size !== newPageSize) {\n const amountOfAvailablePages = Math.ceil(pagination.collectionSize / newPageSize);\n const newPage =\n amountOfAvailablePages < pagination.page ? amountOfAvailablePages : pagination.page;\n\n this.logger.debug(`Page size change. New Page: ${newPage} New page size: ${newPageSize}`);\n this._pagination$.next({...pagination, size: newPageSize, page: newPage});\n }\n });\n }\n\n sortChanged(newSortState: SortState): void {\n this._pagination$.pipe(take(1)).subscribe(pagination => {\n if (pagination && JSON.stringify(pagination.sort) !== JSON.stringify(newSortState)) {\n this.logger.debug(`Sort state change: ${JSON.stringify(newSortState)}`);\n this._pagination$.next({...pagination, sort: newSortState});\n }\n });\n }\n\n setPage(newPageNumber: number): void {\n this._pagination$.pipe(take(1)).subscribe(pagination => {\n this._pagination$.next({...pagination, page: newPageNumber});\n });\n }\n\n setCollectionSize(documents: Documents | SpecifiedDocuments): void {\n this._pagination$.pipe(take(1)).subscribe(pagination => {\n if (pagination && pagination.collectionSize !== documents.totalElements) {\n this._pagination$.next({...pagination, collectionSize: documents.totalElements});\n }\n });\n }\n\n checkPage(documents: Documents | SpecifiedDocuments): void {\n this._pagination$.pipe(take(1)).subscribe(pagination => {\n if (pagination) {\n const amountOfItems = documents.totalElements;\n const amountOfPages = Math.ceil(amountOfItems / pagination.size);\n const currentPage = pagination.page;\n\n if (currentPage > amountOfPages) {\n this._pagination$.next({...pagination, page: amountOfPages});\n }\n }\n });\n }\n\n clearPagination(): void {\n this._pagination$.next(undefined);\n }\n\n setPagination(documentDefinitionName: string, columns: Array<DefinitionColumn>): void {\n this.dossierParameterService.queryPaginationParams$\n .pipe(take(1))\n .subscribe(queryPaginationParams => {\n const defaultPagination: Pagination = this.getDefaultPagination(columns);\n const paginationToUse = queryPaginationParams || defaultPagination;\n\n this.logger.debug(`Set pagination: ${JSON.stringify(paginationToUse)}`);\n\n this._pagination$.next(paginationToUse);\n });\n }\n\n private getDefaultPagination(columns: Array<DefinitionColumn>): Pagination {\n const defaultSortState = this.dossierService.getInitialSortState(columns);\n\n return {\n ...this.DEFAULT_PAGINATION,\n sort: defaultSortState,\n };\n }\n}\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Injectable} from '@angular/core';\nimport {BehaviorSubject, Observable, switchMap} from 'rxjs';\nimport {SearchField, SearchFieldValues, SearchFilter, SearchFilterRange} from '@valtimo/config';\nimport {DossierListService} from './dossier-list.service';\nimport {DocumentService} from '@valtimo/document';\nimport {DossierParameterService} from './dossier-parameter.service';\n\n@Injectable()\nexport class DossierListSearchService {\n private readonly _searchSwitch$ = new BehaviorSubject<boolean>(false);\n private readonly _documentSearchFields$: Observable<Array<SearchField> | null> =\n this.dossierListService.documentDefinitionName$.pipe(\n switchMap(documentDefinitionName =>\n this.documentService.getDocumentSearchFields(documentDefinitionName)\n )\n );\n\n get searchSwitch$(): Observable<boolean> {\n return this._searchSwitch$.asObservable();\n }\n\n get documentSearchFields$(): Observable<Array<SearchField> | null> {\n return this._documentSearchFields$;\n }\n\n constructor(\n private readonly dossierListService: DossierListService,\n private readonly documentService: DocumentService,\n private readonly dossierParameterService: DossierParameterService\n ) {}\n\n search(searchFieldValues: SearchFieldValues): void {\n this.dossierParameterService.setSearchFieldValues(searchFieldValues || {});\n this.dossierParameterService.setSearchParameters(searchFieldValues);\n this._searchSwitch$.next(!this._searchSwitch$.getValue());\n }\n\n refresh(): void {\n this._searchSwitch$.next(!this._searchSwitch$.getValue());\n }\n\n mapSearchValuesToFilters(values: SearchFieldValues): Array<SearchFilter | SearchFilterRange> {\n const filters: Array<SearchFilter | SearchFilterRange> = [];\n\n Object.keys(values).forEach(valueKey => {\n const searchValue = values[valueKey] as any;\n if (searchValue.start) {\n filters.push({key: valueKey, rangeFrom: searchValue.start, rangeTo: searchValue.end});\n } else if (Array.isArray(searchValue)) {\n filters.push({key: valueKey, values: searchValue});\n } else {\n filters.push({key: valueKey, values: [searchValue]});\n }\n });\n\n return filters;\n }\n}\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './dossier-column.service';\nexport * from './zaakobjecten.service';\nexport * from './dossier-parameter.service';\nexport * from './file-sort.service';\nexport * from './dossier-list.service';\nexport * from './dossier-list-assignee.service';\nexport * from './dossier-list-pagination.service';\nexport * from './dossier-list-search.service';\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport enum DefaultTabs {\n summary = 'summary',\n progress = 'progress',\n audit = 'audit',\n documents = 'documents',\n contactMoments = 'contact-moments',\n zaakobjecten = 'zaakobjecten',\n notes = 'notes',\n}\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, EventEmitter, OnInit, Output, ViewChild, ViewEncapsulation} from '@angular/core';\nimport {DocumentService, ProcessDocumentDefinition} from '@valtimo/document';\nimport {\n FormAssociation,\n FormFlowService,\n FormLinkService,\n FormSubmissionResult,\n ProcessLinkService,\n} from '@valtimo/form-link';\nimport {ActivatedRoute, Router} from '@angular/router';\nimport {ProcessService} from '@valtimo/process';\nimport {\n FormioComponent,\n FormioOptionsImpl,\n FormioSubmission,\n ModalComponent,\n ValtimoFormioOptions,\n} from '@valtimo/components';\nimport {FormioBeforeSubmit} from '@formio/angular/formio.common';\nimport {FormioForm} from '@formio/angular';\nimport {NGXLogger} from 'ngx-logger';\nimport {UserProviderService} from '@valtimo/security';\nimport {take} from 'rxjs/operators';\n\n@Component({\n selector: 'valtimo-dossier-process-start-modal',\n templateUrl: './dossier-process-start-modal.component.html',\n styleUrls: ['./dossier-process-start-modal.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class DossierProcessStartModalComponent implements OnInit {\n public processDefinitionKey: string;\n public processDefinitionId: string;\n public documentDefinitionName: string;\n public processName: string;\n public formDefinition: FormioForm;\n public formFlowInstanceId: string;\n public formioSubmission: FormioSubmission;\n private formAssociation: FormAssociation;\n private processLinkId: string;\n public options: ValtimoFormioOptions;\n public isAdmin: boolean;\n @ViewChild('form', {static: false}) form: FormioComponent;\n @ViewChild('processStartModal', {static: false}) modal: ModalComponent;\n @Output() formFlowComplete = new EventEmitter();\n\n constructor(\n private route: ActivatedRoute,\n private router: Router,\n private processService: ProcessService,\n private documentService: DocumentService,\n private formLinkService: FormLinkService,\n private processLinkService: ProcessLinkService,\n private formFlowService: FormFlowService,\n private userProviderService: UserProviderService,\n private logger: NGXLogger\n ) {}\n\n ngOnInit() {\n this.isUserAdmin();\n }\n\n private loadProcessLink() {\n this.formAssociation = null;\n this.processLinkId = null;\n this.formDefinition = null;\n this.formFlowInstanceId = null;\n this.processService\n .getProcessDefinitionStartProcessLink(\n this.processDefinitionId,\n null,\n this.documentDefinitionName\n )\n .pipe(take(1))\n .subscribe(startProcessResult => {\n if (startProcessResult) {\n switch (startProcessResult.type) {\n case 'form':\n this.formDefinition = startProcessResult.properties.prefilledForm;\n this.processLinkId = startProcessResult.processLinkId;\n break;\n case 'form-flow':\n this.formFlowInstanceId = startProcessResult.properties.formFlowInstanceId;\n break;\n }\n this.modal.show();\n } else {\n // backwards compatibility for form associations\n this.formLinkService\n .getStartEventFormDefinitionByProcessDefinitionKey(this.processDefinitionKey, null)\n .pipe(take(1))\n .subscribe({\n next: formDefinitionWithFormAssociation =>\n this.openFormAssociation(formDefinitionWithFormAssociation),\n error: error => {\n this.modal.show();\n },\n });\n }\n });\n }\n\n private openFormAssociation(formDefinitionWithFormAssociation: any) {\n this.formAssociation = formDefinitionWithFormAssociation.formAssociation;\n const className = this.formAssociation.formLink.className.split('.');\n const linkType = className[className.length - 1];\n switch (linkType) {\n case 'BpmnElementFormIdLink':\n this.formDefinition = formDefinitionWithFormAssociation;\n this.modal.show();\n break;\n case 'BpmnElementFormFlowIdLink':\n this.formFlowService\n .createInstanceForNewProcess(this.processDefinitionKey, {\n documentId: null,\n documentDefinitionName: this.documentDefinitionName,\n })\n .subscribe(result => (this.formFlowInstanceId = result.formFlowInstanceId));\n this.modal.show();\n break;\n case 'BpmnElementUrlLink':\n const url = this.router.serializeUrl(\n this.router.createUrlTree([this.formAssociation.formLink.url])\n );\n window.open(url, '_blank');\n break;\n case 'BpmnElementAngularStateUrlLink':\n this.route.params.pipe(take(1)).subscribe(params => {\n const documentId = params?.documentId;\n\n this.router.navigate([this.formAssociation.formLink.url], {\n state: {...(documentId && {documentId})},\n });\n });\n break;\n default:\n this.logger.fatal('Unsupported class name');\n }\n }\n\n public gotoFormLinkScreen() {\n this.modal.hide();\n this.router.navigate(['form-links'], {queryParams: {process: this.processDefinitionKey}});\n }\n\n public get modalTitle() {\n return `Start - ${this.processName}`;\n }\n\n openModal(processDocumentDefinition: ProcessDocumentDefinition) {\n this.processDefinitionKey = processDocumentDefinition.id.processDefinitionKey;\n this.processDefinitionId = processDocumentDefinition.latestVersionId;\n this.documentDefinitionName = processDocumentDefinition.id.documentDefinitionId.name;\n this.processName = processDocumentDefinition.processName;\n this.options = new FormioOptionsImpl();\n this.options.disableAlerts = true;\n const formioBeforeSubmit: FormioBeforeSubmit = function (submission, callback) {\n callback(null, submission);\n };\n this.options.setHooks(formioBeforeSubmit);\n this.loadProcessLink();\n }\n\n public onSubmit(submission: FormioSubmission) {\n this.formioSubmission = submission;\n\n if (this.processLinkId) {\n this.processLinkService.submitForm(this.processLinkId, submission.data).subscribe({\n next: (formSubmissionResult: FormSubmissionResult) => {\n this.submitCompleted(formSubmissionResult);\n },\n error: errors => {\n this.form.showErrors(errors);\n },\n });\n } else {\n this.formLinkService\n .onSubmit(this.processDefinitionKey, this.formAssociation.formLink.id, submission.data)\n .subscribe(\n (formSubmissionResult: FormSubmissionResult) => {\n this.submitCompleted(formSubmissionResult);\n },\n errors => {\n this.form.showErrors(errors);\n }\n );\n }\n }\n\n public formFlowSubmitted(): void {\n this.formFlowComplete.emit(null);\n this.modal.hide();\n }\n\n public isUserAdmin(): void {\n this.userProviderService.getUserSubject().subscribe(\n userIdentity => {\n this.isAdmin = userIdentity.roles.includes('ROLE_ADMIN');\n },\n error => {\n this.isAdmin = false;\n }\n );\n }\n\n private submitCompleted(formSubmissionResult: FormSubmissionResult): void {\n this.modal.hide();\n this.router.navigate([\n 'dossiers',\n this.documentDefinitionName,\n 'document',\n formSubmissionResult.documentId,\n 'summary',\n ]);\n }\n}\n","<!--\n ~ Copyright 2015-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<valtimo-modal #processStartModal elementId=\"processStartModal\" [title]=\"modalTitle\">\n <div body *ngIf=\"formDefinition\">\n <valtimo-form-io #form [form]=\"formDefinition\" [options]=\"options\" (submit)=\"onSubmit($event)\">\n </valtimo-form-io>\n </div>\n <div body *ngIf=\"formFlowInstanceId\">\n <valtimo-form-flow\n [formFlowInstanceId]=\"formFlowInstanceId\"\n (formFlowComplete)=\"formFlowSubmitted()\"\n ></valtimo-form-flow>\n </div>\n <div body *ngIf=\"!formFlowInstanceId && !formDefinition && isAdmin\">\n <div\n class=\"bg-warning text-black mb-0 p-3 text-center\"\n [translate]=\"'formManagement.noFormDefinitionFoundAdmin'\"\n ></div>\n <div class=\"mb-0 mt-4 p-3 text-center\">\n <button\n class=\"btn btn-secondary btn-space\"\n type=\"button\"\n (click)=\"gotoFormLinkScreen()\"\n id=\"form-link-button\"\n >\n {{ 'formManagement.gotoFormLinksButton' | translate }}\n </button>\n </div>\n </div>\n <div body *ngIf=\"!formFlowInstanceId && !formDefinition && !isAdmin\">\n <div\n class=\"bg-warning text-black mb-0 p-3 text-center\"\n [translate]=\"'formManagement.noFormDefinitionFoundUser'\"\n ></div>\n </div>\n</valtimo-modal>\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, EventEmitter, Input, OnInit, Output, ViewChild} from '@angular/core';\nimport {map, Observable, of, switchMap, tap} from 'rxjs';\nimport {DocumentService, ProcessDocumentDefinition} from '@valtimo/document';\nimport {DossierProcessStartModalComponent} from '../dossier-process-start-modal/dossier-process-start-modal.component';\nimport {ActivatedRoute} from '@angular/router';\nimport {DossierListService} from '../services';\n\ndeclare const $;\n\n@Component({\n selector: 'valtimo-dossier-list-actions',\n templateUrl: './dossier-list-actions.component.html',\n styleUrls: ['./dossier-list-actions.component.scss'],\n})\nexport class DossierListActionsComponent implements OnInit {\n @ViewChild('processStartModal') processStart: DossierProcessStartModalComponent;\n\n @Input() loading!: boolean;\n\n @Output() formFlowComplete = new EventEmitter();\n\n private selectedProcessDocumentDefinition: ProcessDocumentDefinition | null = null;\n\n private modalListenerAdded = false;\n\n private _cachedAssociatedProcessDocumentDefinitions: Array<ProcessDocumentDefinition> = [];\n\n readonly associatedProcessDocumentDefinitions$: Observable<Array<ProcessDocumentDefinition>> =\n this.listService.documentDefinitionName$.pipe(\n switchMap(documentDefinitionName =>\n documentDefinitionName\n ? this.documentService.findProcessDocumentDefinitions(documentDefinitionName)\n : of([])\n ),\n map(processDocumentDefinitions =>\n processDocumentDefinitions.filter(definition => definition.canInitializeDocument)\n ),\n tap(processDocumentDefinitions => {\n this._cachedAssociatedProcessDocumentDefinitions = processDocumentDefinitions;\n })\n );\n\n constructor(\n private readonly documentService: DocumentService,\n private readonly route: ActivatedRoute,\n private readonly listService: DossierListService\n ) {}\n\n ngOnInit(): void {\n this.modalListenerAdded = false;\n }\n\n startDossier(): void {\n const associatedProcessDocumentDefinitions = this._cachedAssociatedProcessDocumentDefinitions;\n\n if (associatedProcessDocumentDefinitions.length > 1) {\n $('#startProcess').modal('show');\n } else {\n this.selectedProcessDocumentDefinition = associatedProcessDocumentDefinitions[0];\n this.showStartProcessModal();\n }\n }\n\n selectProcess(processDocumentDefinition: ProcessDocumentDefinition): void {\n const modal = $('#startProcess');\n if (!this.modalListenerAdded) {\n modal.on('hidden.bs.modal', this.showStartProcessModal.bind(this));\n this.modalListenerAdded = true;\n }\n this.selectedProcessDocumentDefinition = processDocumentDefinition;\n modal.modal('hide');\n }\n\n onFormFlowComplete() {\n this.formFlowComplete.emit(null);\n }\n\n private showStartProcessModal(): void {\n if (this.selectedProcessDocumentDefinition !== null) {\n this.processStart.openModal(this.selectedProcessDocumentDefinition);\n this.selectedProcessDocumentDefinition = null;\n }\n }\n}\n","<!--\n ~ Copyright 2015-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div *ngIf=\"associatedProcessDocumentDefinitions$ | async as associatedProcessDocumentDefinitions\">\n <div class=\"text-right mt-m3px mb-3\">\n <button\n type=\"button\"\n class=\"btn btn-space btn-primary mr-0\"\n (click)=\"startDossier()\"\n [ngbTooltip]=\"associatedProcessDocumentDefinitions.length === 0 ? 'No action' : null\"\n placement=\"bottom\"\n [disabled]=\"associatedProcessDocumentDefinitions.length === 0 || loading\"\n >\n <i class=\"icon mdi mdi-plus mr-1\"></i>\n {{ 'Start Dossier' | translate }}\n </button>\n </div>\n <div\n class=\"modal fade\"\n id=\"startProcess\"\n tabindex=\"-1\"\n role=\"dialog\"\n aria-labelledby=\"startProcessLabel\"\n aria-hidden=\"true\"\n >\n <div class=\"modal-dialog modal-dialog-centered\" role=\"document\">\n <div class=\"modal-content\">\n <div class=\"modal-header\">\n <h3 class=\"modal-title\" id=\"startProcessLabel\">\n {{ 'dashboard.startProcess.title' | translate }}\n </h3>\n <button type=\"button\" class=\"close\" data-dismiss=\"modal\" aria-label=\"Close\">\n <span aria-hidden=\"true\">&times;</span>\n </button>\n </div>\n <div class=\"modal-body\">\n <div class=\"table-responsive\">\n <table class=\"table m-0\">\n <tr\n *ngFor=\"let processDocumentDefinition of associatedProcessDocumentDefinitions\"\n (click)=\"selectProcess(processDocumentDefinition)\"\n style=\"cursor: pointer\"\n >\n <td>{{ processDocumentDefinition.processName }}</td>\n </tr>\n </table>\n </div>\n </div>\n <div class=\"modal-footer\">\n <button type=\"button\" class=\"btn btn-secondary\" data-dismiss=\"modal\">\n {{ 'cta.close' | translate }}\n </button>\n </div>\n </div>\n </div>\n </div>\n</div>\n\n<valtimo-dossier-process-start-modal\n #processStartModal\n (formFlowComplete)=\"onFormFlowComplete()\"\n></valtimo-dossier-process-start-modal>\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, OnDestroy, OnInit} from '@angular/core';\nimport {\n BehaviorSubject,\n combineLatest,\n distinctUntilChanged,\n filter,\n map,\n Observable,\n Subscription,\n switchMap,\n take,\n tap,\n} from 'rxjs';\nimport {ActivatedRoute, Router} from '@angular/router';\nimport {\n DossierColumnService,\n DossierListAssigneeService,\n DossierListPaginationService,\n DossierListSearchService,\n DossierListService,\n DossierParameterService,\n} from '../services';\nimport {\n AssigneeFilter,\n ConfigService,\n DefinitionColumn,\n Direction,\n DossierListTab,\n SearchField,\n SearchFieldValues,\n SortState,\n} from '@valtimo/config';\nimport {BreadcrumbService, ListField, PageTitleService, Pagination} from '@valtimo/components';\nimport {TranslateService} from '@ngx-translate/core';\nimport {\n AdvancedDocumentSearchRequest,\n AdvancedDocumentSearchRequestImpl,\n Documents,\n DocumentService,\n SpecifiedDocuments,\n} from '@valtimo/document';\nimport {DefaultTabs} from '../dossier-detail-tab-enum';\nimport {NgbNavChangeEvent} from '@ng-bootstrap/ng-bootstrap';\n\n@Component({\n selector: 'valtimo-dossier-list',\n templateUrl: './dossier-list.component.html',\n styleUrls: ['./dossier-list.component.css'],\n providers: [\n DossierListService,\n DossierColumnService,\n DossierListAssigneeService,\n DossierParameterService,\n DossierListPaginationService,\n DossierListSearchService,\n ],\n})\nexport class DossierListComponent implements OnInit, OnDestroy {\n public loadingFields = true;\n public loadingPagination = true;\n public loadingSearchFields = true;\n public loadingAssigneeFilter = true;\n public loadingDocumentItems = true;\n public pagination!: Pagination;\n public canHaveAssignee!: boolean;\n public visibleDossierTabs: Array<DossierListTab> | null = null;\n\n public readonly searchFields$: Observable<Array<SearchField> | null> =\n this.searchService.documentSearchFields$.pipe(\n tap(searchFields => {\n this.loadingSearchFields = false;\n })\n );\n\n public readonly documentDefinitionName$ = this.listService.documentDefinitionName$;\n\n public readonly schema$ = this.listService.documentDefinitionName$.pipe(\n switchMap(documentDefinitionName =>\n this.documentService.getDocumentDefinition(documentDefinitionName)\n ),\n map(documentDefinition => documentDefinition?.schema),\n tap(schema => {\n if (schema?.title) {\n this.pageTitleService.setCustomPageTitle(schema?.title, true);\n }\n })\n );\n\n public readonly searchFieldValues$ = this.parameterService.searchFieldValues$;\n public readonly assigneeFilter$: Observable<AssigneeFilter> =\n this.assigneeService.assigneeFilter$;\n private readonly _pagination$ = this.paginationService.pagination$.pipe(\n tap(pagination => {\n this.pagination = pagination;\n this.loadingPagination = false;\n })\n );\n private readonly _hasEnvColumnConfig$: Observable<boolean> = this.listService.hasEnvColumnConfig$;\n private readonly _hasApiColumnConfig$ = new BehaviorSubject<boolean>(false);\n private readonly _canHaveAssignee$: Observable<boolean> = this.assigneeService.canHaveAssignee$;\n private readonly _searchSwitch$ = this.searchService.searchSwitch$;\n private readonly _columns$: Observable<Array<DefinitionColumn>> =\n this.listService.documentDefinitionName$.pipe(\n switchMap(documentDefinitionName =>\n this.columnService.getDefinitionColumns(documentDefinitionName)\n ),\n map(res => {\n this._hasApiColumnConfig$.next(res.hasApiConfig);\n return res.columns;\n }),\n tap(columns => {\n this.listService.documentDefinitionName$.pipe(take(1)).subscribe(documentDefinitionName => {\n this.paginationService.setPagination(documentDefinitionName, columns);\n });\n })\n );\n\n readonly fields$: Observable<Array<ListField>> = combineLatest([\n this._canHaveAssignee$,\n this._columns$,\n this._hasEnvColumnConfig$,\n this.translateService.stream('key'),\n ]).pipe(\n tap(([canHaveAssignee]) => {\n this.canHaveAssignee = canHaveAssignee;\n }),\n map(([canHaveAssignee, columns, hasEnvConfig]) => {\n const filteredAssigneeColumns = this.assigneeService.filterAssigneeColumns(\n columns,\n canHaveAssignee\n );\n const listFields = this.columnService.mapDefinitionColumnsToListFields(\n filteredAssigneeColumns,\n hasEnvConfig\n );\n const fieldsToReturn = this.assigneeService.addAssigneeListField(\n columns,\n listFields,\n canHaveAssignee\n );\n\n return fieldsToReturn;\n }),\n tap(listFields => {\n const defaultListField = listFields.find(field => field.default);\n\n // set default sort state if no pagination query parameters for sorting are available\n this.parameterService.queryPaginationParams$\n .pipe(take(1))\n .subscribe(queryPaginationParams => {\n if (defaultListField && !queryPaginationParams?.sort?.isSorting) {\n const sortDirection =\n typeof defaultListField.default === 'string' ? defaultListField.default : 'DESC';\n this.paginationService.sortChanged({\n isSorting: true,\n state: {name: defaultListField.key, direction: sortDirection as Direction},\n });\n }\n });\n }),\n tap(() => {\n this.loadingFields = false;\n })\n );\n\n private readonly _documentSearchRequest$: Observable<AdvancedDocumentSearchRequest> =\n combineLatest([this._pagination$, this.listService.documentDefinitionName$]).pipe(\n filter(([pagination]) => !!pagination),\n map(\n ([pagination, documentDefinitionName]) =>\n new AdvancedDocumentSearchRequestImpl(\n documentDefinitionName,\n pagination.page - 1,\n pagination.size,\n pagination.sort\n )\n )\n );\n\n private readonly _documentsRequest$: Observable<Documents | SpecifiedDocuments> = combineLatest([\n this._documentSearchRequest$,\n this.searchFieldValues$,\n this.assigneeFilter$,\n this._hasEnvColumnConfig$,\n this._hasApiColumnConfig$,\n this._searchSwitch$,\n ]).pipe(\n distinctUntilChanged(\n (\n [\n prevSearchRequest,\n prevSearchValues,\n prevAssigneeFilter,\n prevHasEnvColumnConfig,\n prevHasApiColumnConfig,\n prevSearchSwitch,\n ],\n [\n currSearchRequest,\n currSearchValues,\n currAssigneeFilter,\n currHasEnvColumnConfig,\n currHasApiColumnConfig,\n currSearchSwitch,\n ]\n ) =>\n JSON.stringify({...prevSearchRequest, ...prevSearchValues}) +\n prevAssigneeFilter +\n prevSearchSwitch ===\n JSON.stringify({...currSearchRequest, ...currSearchValues}) +\n currAssigneeFilter +\n currSearchSwitch\n ),\n switchMap(\n ([\n documentSearchRequest,\n searchValues,\n assigneeFilter,\n hasEnvColumnConfig,\n hasApiColumnConfig,\n ]) => {\n if ((Object.keys(searchValues) || []).length > 0) {\n return hasEnvColumnConfig || !hasApiColumnConfig\n ? this.documentService.getDocumentsSearch(\n documentSearchRequest,\n 'AND',\n assigneeFilter,\n this.searchService.mapSearchValuesToFilters(searchValues)\n )\n : this.documentService.getSpecifiedDocumentsSearch(\n documentSearchRequest,\n 'AND',\n assigneeFilter,\n this.searchService.mapSearchValuesToFilters(searchValues)\n );\n }\n\n return hasEnvColumnConfig || !hasApiColumnConfig\n ? this.documentService.getDocumentsSearch(documentSearchRequest, 'AND', assigneeFilter)\n : this.documentService.getSpecifiedDocumentsSearch(\n documentSearchRequest,\n 'AND',\n assigneeFilter\n );\n }\n ),\n tap(documents => {\n this.paginationService.setCollectionSize(documents);\n this.paginationService.checkPage(documents);\n })\n );\n\n public documentItems$ = combineLatest([\n this._documentsRequest$,\n this._hasEnvColumnConfig$,\n this._hasApiColumnConfig$,\n ]).pipe(\n map(([documents, hasEnvColumnConfig, hasApiColumnConfig]) =>\n this.listService.mapDocuments(documents, hasEnvColumnConfig, hasApiColumnConfig)\n ),\n tap(() => {\n this.loadingAssigneeFilter = false;\n this.loadingDocumentItems = false;\n })\n );\n\n private _previousDocumentDefinitionName!: string;\n private _documentDefinitionNameSubscription!: Subscription;\n\n constructor(\n private readonly route: ActivatedRoute,\n private readonly translateService: TranslateService,\n private readonly listService: DossierListService,\n private readonly columnService: DossierColumnService,\n private readonly assigneeService: DossierListAssigneeService,\n private readonly paginationService: DossierListPaginationService,\n private readonly searchService: DossierListSearchService,\n private readonly parameterService: DossierParameterService,\n private readonly documentService: DocumentService,\n private readonly router: Router,\n private readonly configService: ConfigService,\n private readonly pageTitleService: PageTitleService,\n private readonly breadcrumbService: BreadcrumbService\n ) {}\n\n ngOnInit(): void {\n this.setVisibleTabs();\n this.openDocumentDefinitionNameSubscription();\n }\n\n ngOnDestroy(): void {\n this._documentDefinitionNameSubscription?.unsubscribe();\n this.pageTitleService.enableReset();\n }\n\n search(searchFieldValues: SearchFieldValues): void {\n this.searchService.search(searchFieldValues);\n }\n\n rowClick(document: any): void {\n this.listService.documentDefinitionName$.pipe(take(1)).subscribe(documentDefinitionName => {\n this.breadcrumbService.cacheQueryParams(\n `/dossiers/${documentDefinitionName}`,\n this.route.snapshot.queryParams\n );\n this.router.navigate([\n `/dossiers/${documentDefinitionName}/document/${document.id}/${DefaultTabs.summary}`,\n ]);\n });\n }\n\n pageChange(newPage: number): void {\n this.paginationService.pageChange(newPage);\n }\n\n pageSizeChange(newPageSize: number): void {\n this.paginationService.pageSizeChange(newPageSize);\n }\n\n sortChanged(newSortState: SortState): void {\n this.paginationService.sortChanged(newSortState);\n }\n\n tabChange(tab: NgbNavChangeEvent<any>): void {\n this.paginationService.setPage(1);\n this.assigneeService.setAssigneeFilter(tab.nextId.toUpperCase());\n }\n\n refresh(): void {\n this.searchService.refresh();\n }\n\n private openDocumentDefinitionNameSubscription(): void {\n this._documentDefinitionNameSubscription = this.route.params\n .pipe(\n map(params => params?.documentDefinitionName),\n filter(docDefName => !!docDefName),\n distinctUntilChanged()\n )\n .subscribe(documentDefinitonName => {\n if (this._previousDocumentDefinitionName) {\n this.parameterService.clearParameters();\n this.parameterService.clearSearchFieldValues();\n }\n this._previousDocumentDefinitionName = documentDefinitonName;\n this.setLoading();\n this.paginationService.clearPagination();\n this.assigneeService.resetAssigneeFilter();\n this.listService.setDocumentDefinitionName(documentDefinitonName);\n });\n }\n\n private setLoading(): void {\n this.loadingFields = true;\n this.loadingPagination = true;\n this.loadingSearchFields = true;\n this.loadingAssigneeFilter = true;\n this.loadingDocumentItems = true;\n }\n\n private setVisibleTabs(): void {\n this.visibleDossierTabs = this.configService.config?.visibleDossierListTabs || null;\n }\n}\n","<!--\n ~ Copyright 2015-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container\n *ngIf=\"{\n fields: fields$ | async,\n documentItems: documentItems$ | async,\n searchFields: searchFields$ | async,\n schema: schema$ | async,\n loaded:\n !loadingFields &&\n !loadingPagination &&\n !loadingSearchFields &&\n !loadingAssigneeFilter &&\n !loadingDocumentItems\n } as obs\"\n>\n <div class=\"main-content pt-0\">\n <div class=\"container-fluid\">\n <div class=\"col-12 px-0 mb-5\">\n <valtimo-dossier-list-actions\n [loading]=\"!obs.loaded\"\n (formFlowComplete)=\"refresh()\"\n ></valtimo-dossier-list-actions>\n <ng-container *ngIf=\"obs.loaded; else loading\">\n <ng-container *ngTemplateOutlet=\"searchFields; context: {obs: obs}\"></ng-container>\n <ng-container *ngTemplateOutlet=\"list; context: {obs: obs}\"></ng-container>\n </ng-container>\n </div>\n </div>\n </div>\n</ng-container>\n\n<ng-template #searchFields let-obs=\"obs\">\n <div class=\"mb-3\">\n <valtimo-search-fields\n [searchFields]=\"obs.searchFields\"\n (doSearch)=\"search($event)\"\n [documentDefinitionName]=\"documentDefinitionName$ | async\"\n [defaultValues]=\"searchFieldValues$ | async\"\n ></valtimo-search-fields>\n </div>\n</ng-template>\n\n<ng-template #list let-obs=\"obs\">\n <valtimo-widget>\n <valtimo-list\n [items]=\"obs.documentItems\"\n [fields]=\"obs.fields\"\n (rowClicked)=\"rowClick($event)\"\n [pagination]=\"pagination\"\n [viewMode]=\"true\"\n [header]=\"true\"\n paginationIdentifier=\"dossierList\"\n (paginationClicked)=\"pageChange($event)\"\n (paginationSet)=\"pageSizeChange($event)\"\n [initialSortState]=\"pagination.sort\"\n (sortChanged)=\"sortChanged($event)\"\n >\n <div header>\n <h3 class=\"list-header-title\">\n <sup class=\"ml-1 badge badge-pill badge-primary\">{{\n pagination?.collectionSize || 0\n }}</sup>\n </h3>\n </div>\n <div tabs *ngIf=\"canHaveAssignee\">\n <ng-container *ngTemplateOutlet=\"tabs\"></ng-container>\n </div>\n </valtimo-list>\n </valtimo-widget>\n</ng-template>\n\n<ng-template #tabs>\n <ng-container *ngIf=\"assigneeFilter$ | async as assigneeFilter\">\n <ul\n *ngIf=\"visibleDossierTabs === null; else configuredTabs\"\n ngbNav\n [destroyOnHide]=\"false\"\n (navChange)=\"tabChange($event)\"\n class=\"nav-tabs\"\n [activeId]=\"assigneeFilter\"\n >\n <li ngbNavItem=\"ALL\" [title]=\"'dossier.tabs.ALL' | translate\">\n <a ngbNavLink>{{ 'dossier.tabs.ALL' | translate }}</a>\n </li>\n <li ngbNavItem=\"MINE\" [title]=\"'dossier.tabs.MINE' | translate\">\n <a ngbNavLink>{{ 'dossier.tabs.MINE' | translate }}</a>\n </li>\n <li ngbNavItem=\"OPEN\" [title]=\"'dossier.tabs.OPEN' | translate\">\n <a ngbNavLink>{{ 'dossier.tabs.OPEN' | translate }}</a>\n </li>\n </ul>\n </ng-container>\n</ng-template>\n\n<ng-template #configuredTabs>\n <ng-container *ngIf=\"assigneeFilter$ | async as assigneeFilter\">\n <ul\n ngbNav\n [destroyOnHide]=\"false\"\n (navChange)=\"tabChange($event)\"\n class=\"nav-tabs\"\n [activeId]=\"assigneeFilter\"\n >\n <li\n *ngFor=\"let tab of visibleDossierTabs\"\n [ngbNavItem]=\"tab\"\n [title]=\"'dossier.tabs.' + tab | translate\"\n >\n <a ngbNavLink>{{ 'dossier.tabs.' + tab | translate }}</a>\n </li>\n </ul>\n </ng-container>\n</ng-template>\n\n<ng-template #loading><valtimo-spinner></valtimo-spinner></ng-template>\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n Component,\n ElementRef,\n OnDestroy,\n OnInit,\n Renderer2,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport {ProcessInstanceTask, ProcessService} from '@valtimo/process';\nimport {ActivatedRoute, ParamMap, Router} from '@angular/router';\nimport {Document, DocumentService, ProcessDocumentInstance} from '@valtimo/document';\nimport {TaskDetailModalComponent, TaskService} from '@valtimo/task';\nimport {FormService} from '@valtimo/form';\nimport {FormioOptionsImpl, ValtimoFormioOptions} from '@valtimo/components';\nimport moment from 'moment';\nimport {FormioForm} from '@formio/angular';\nimport {UserProviderService} from '@valtimo/security';\nimport {Subscription} from 'rxjs';\n\nmoment.locale(localStorage.getItem('langKey') || '');\nmoment.defaultFormat = 'DD MMM YYYY HH:mm';\n\n@Component({\n selector: 'valtimo-dossier-detail-tab-summary',\n templateUrl: './summary.component.html',\n styleUrls: ['./summary.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class DossierDetailTabSummaryComponent implements OnInit, OnDestroy {\n public readonly documentDefinitionName: string;\n public document: Document;\n public documentId: string;\n public processDocumentInstances: ProcessDocumentInstance[] = [];\n private snapshot: ParamMap;\n public tasks: ProcessInstanceTask[] = [];\n public moment;\n public formDefinition: FormioForm = null;\n public options: ValtimoFormioOptions;\n public roles: string[] = [];\n private _subscriptions = new Subscription();\n @ViewChild('taskDetail') taskDetail: TaskDetailModalComponent;\n\n constructor(\n private readonly router: Router,\n private readonly documentService: DocumentService,\n private readonly taskService: TaskService,\n private readonly processService: ProcessService,\n private readonly el: ElementRef,\n private readonly renderer: Renderer2,\n private readonly route: ActivatedRoute,\n private readonly formService: FormService,\n private readonly userProviderService: UserProviderService\n ) {\n this.snapshot = this.route.snapshot.paramMap;\n this.documentDefinitionName = this.snapshot.get('documentDefinitionName') || '';\n this.documentId = this.snapshot.get('documentId') || '';\n this.options = new FormioOptionsImpl();\n this.options.disableAlerts = true;\n }\n\n ngOnInit() {\n this.moment = moment;\n this.init();\n }\n\n ngOnDestroy() {\n this._subscriptions.unsubscribe();\n }\n\n init() {\n this._subscriptions.add(\n this.documentService.getDocument(this.documentId).subscribe(document => {\n this.document = document;\n })\n );\n\n this._subscriptions.add(\n this.formService\n .getFormDefinitionByNamePreFilled(`${this.documentDefinitionName}.summary`, this.documentId)\n .subscribe(formDefinition => {\n this.formDefinition = formDefinition;\n })\n );\n\n this._subscriptions.add(\n this.userProviderService.getUserSubject().subscribe(user => {\n this.roles = user.roles;\n this.tasks = [];\n this.loadProcessDocumentInstances(this.documentId);\n })\n );\n }\n\n public loadProcessDocumentInstances(documentId: string) {\n this._subscriptions.add(\n this.documentService\n .findProcessDocumentInstances(documentId)\n .subscribe(processDocumentInstances => {\n this.processDocumentInstances = processDocumentInstances;\n this.processDocumentInstances.forEach(instance => {\n this.loadProcessInstanceTasks(instance.id.processInstanceId);\n });\n })\n );\n }\n\n private loadProcessInstanceTasks(processInstanceId: string) {\n this._subscriptions.add(\n this.processService.getProcessInstanceTasks(processInstanceId).subscribe(tasks => {\n if (tasks != null) {\n tasks.forEach(task => {\n task.createdUnix = this.moment(task.created).unix();\n task.created = this.moment(task.created).format('DD MMM YYYY HH:mm');\n task.isLocked = () => {\n let locked = true;\n for (const link of task.identityLinks) {\n if (link.type === 'candidate' && link.groupId) {\n if (this.roles.includes(link.groupId)) {\n locked = false;\n break;\n }\n }\n }\n return locked;\n };\n });\n this.tasks = this.tasks.concat(tasks);\n this.tasks.sort((t1, t2) => t2.createdUnix - t1.createdUnix);\n }\n })\n );\n }\n\n public rowTaskClick(task: any) {\n this.taskDetail.openTaskDetails(task);\n }\n}\n","<!--\n ~ Copyright 2015-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div class=\"container-fluid\">\n <div class=\"row py-4\">\n <div class=\"col-sm-12 col-md-8 col-xl-9\">\n <div *ngIf=\"document\">\n <div *ngIf=\"formDefinition\" class=\"summaryForm\">\n <div class=\"mb-4\">\n <valtimo-form-io [form]=\"formDefinition\" [options]=\"options\"></valtimo-form-io>\n </div>\n </div>\n </div>\n </div>\n\n <!--Current user tasks right side-->\n <div class=\"col-sm-12 col-md-4 col-xl-3\">\n <h4 class=\"user-tasks-title\">{{ 'summary.userTasks' | translate }}</h4>\n <ng-container *ngIf=\"!tasks.length\">\n <valtimo-widget>\n <div class=\"p-3\">\n <img class=\"float-left\" src=\"assets/audit-2.png\" height=\"25\" />\n <span class=\"float-right\">{{ 'summary.userTasksDoneState' | translate }}</span>\n <div class=\"clearfix\"></div>\n </div>\n </valtimo-widget>\n </ng-container>\n <ng-container *ngFor=\"let task of tasks\">\n <valtimo-widget>\n <div\n class=\"p-3 clickable hoverable\"\n (click)=\"rowTaskClick(task)\"\n *ngIf=\"!task.isLocked()\"\n >\n <span class=\"float-right badge badge-pill badge-primary\">{{\n 'summary.taskOpen' | translate\n }}</span>\n <strong>{{ task.name }}</strong>\n <div class=\"mt-1\">{{ 'summary.taskCreated' | translate }} {{ task.created }}</div>\n </div>\n <div class=\"p-3 hoverable\" *ngIf=\"task.isLocked()\">\n <span\n class=\"float-right badge badge-pill badge-secondary bg-grey\"\n ngbTooltip=\"{{ 'summary.taskLocked' | translate }}\"\n >\n <i class=\"icon mdi mdi-lock\"></i>\n </span>\n <strong>{{ task.name }}</strong>\n <div>{{ 'summary.taskCreated' | translate }} {{ task.created }}</div>\n </div>\n </valtimo-widget>\n </ng-container>\n <valtimo-task-detail-modal\n #taskDetail\n (formSubmit)=\"init()\"\n (assignmentOfTaskChanged)=\"init()\"\n ></valtimo-task-detail-modal>\n </div>\n </div>\n</div>\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, OnInit} from '@angular/core';\nimport {ActivatedRoute} from '@angular/router';\nimport {DocumentService} from '@valtimo/document';\nimport {ProcessDocumentInstance} from '@valtimo/document';\n\n@Component({\n selector: 'valtimo-dossier-detail-tab-progress',\n templateUrl: './progress.component.html',\n styleUrls: ['./progress.component.css'],\n})\nexport class DossierDetailTabProgressComponent implements OnInit {\n public processDocumentInstances: ProcessDocumentInstance[];\n public selectedProcessInstanceId: string;\n public readonly documentId: string;\n\n constructor(private route: ActivatedRoute, private documentService: DocumentService) {\n const snapshot = this.route.snapshot.paramMap;\n this.documentId = snapshot.get('documentId') || '';\n }\n\n ngOnInit() {\n this.documentService\n .findProcessDocumentInstances(this.documentId)\n .subscribe(processDocumentInstances => {\n this.processDocumentInstances = processDocumentInstances.sort((a, b) =>\n a.isActive === b.isActive ? 0 : a.isActive ? -1 : 1\n );\n if (processDocumentInstances.length > 0) {\n this.selectedProcessInstanceId = processDocumentInstances[0].id.processInstanceId;\n }\n });\n }\n\n public loadProcessInstance(processInstanceId: string) {\n this.selectedProcessInstanceId = processInstanceId;\n }\n}\n","<!--\n ~ Copyright 2015-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div\n class=\"full-height-tab-content\"\n *ngIf=\"\n processDocumentInstances && processDocumentInstances.length > 0;\n else emptyProcessDocumentInstances\n \"\n>\n <div class=\"col-3\">\n <label><strong>Process</strong></label\n ><br />\n <select class=\"form-control\" (change)=\"loadProcessInstance($event.target.value)\">\n <option\n *ngFor=\"let processDocumentInstance of processDocumentInstances\"\n [value]=\"processDocumentInstance.id.processInstanceId\"\n [selected]=\"selectedProcessInstanceId === processDocumentInstance.id.processInstanceId\"\n >\n {{ processDocumentInstance.processName }}\n </option>\n </select>\n </div>\n <valtimo-process-diagram\n [processInstanceId]=\"selectedProcessInstanceId\"\n ></valtimo-process-diagram>\n</div>\n\n<ng-template #emptyProcessDocumentInstances>\n <span> {{ 'progress.noProcessDocumentInstances' | translate }}</span>\n</ng-template>\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, EventEmitter, OnInit, Output} from '@angular/core';\nimport {TimelineItem, TimelineItemImpl} from '@valtimo/components';\nimport moment from 'moment';\nimport {ActivatedRoute} from '@angular/router';\nimport {DocumentService, AuditEvent} from '@valtimo/document';\nimport {NgxSpinnerService} from 'ngx-spinner';\n\nmoment.locale(localStorage.getItem('langKey') || '');\nmoment.defaultFormat = 'DD MMM YYYY HH:mm';\n\n@Component({\n selector: 'valtimo-dossier-detail-tab-audit',\n templateUrl: './audit.component.html',\n styleUrls: ['./audit.component.css'],\n})\nexport class DossierDetailTabAuditComponent implements OnInit {\n @Output() paginationClicked: EventEmitter<any> = new EventEmitter();\n\n public timelineItems: TimelineItem[];\n private readonly documentId: string;\n public pagination: any;\n private defaultAuditPage = 0;\n private currentAuditPage: number;\n\n constructor(\n private route: ActivatedRoute,\n private documentService: DocumentService,\n private spinnerService: NgxSpinnerService\n ) {\n this.spinnerService.show('auditSpinner');\n const snapshot = this.route.snapshot.paramMap;\n this.documentId = snapshot.get('documentId') || '';\n }\n\n private static getTranslationKey(auditEvent: AuditEvent) {\n const classNameArray = auditEvent.className.split('.');\n const eventName = classNameArray[classNameArray.length - 1];\n return 'events.' + eventName;\n }\n\n ngOnInit() {\n this.loadAuditPage(this.defaultAuditPage);\n }\n\n public loadAuditPage(pageNumber: number) {\n this.documentService.getAuditLog(this.documentId, pageNumber).subscribe(page => {\n const timelineItems = [];\n page.content.forEach(auditRecord => {\n const occurredOn = moment(auditRecord.metaData.occurredOn);\n const fromNow = occurredOn.fromNow();\n timelineItems.push(\n new TimelineItemImpl(\n occurredOn.format('DD MMM YYYY'),\n occurredOn.format('HH:mm'),\n auditRecord.metaData.user,\n fromNow,\n DossierDetailTabAuditComponent.getTranslationKey(auditRecord.auditEvent),\n auditRecord.auditEvent\n )\n );\n });\n this.timelineItems = timelineItems;\n this.spinnerService.hide('auditSpinner');\n this.pagination = page;\n this.pagination.number += 1;\n });\n }\n\n public onChangePagination(page) {\n this.paginationClicked.emit(page);\n this.currentAuditPage = page - 1;\n this.loadAuditPage(this.currentAuditPage);\n }\n}\n","<!--\n ~ Copyright 2015-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div *ngIf=\"timelineItems\">\n <valtimo-timeline [items]=\"timelineItems\"></valtimo-timeline>\n</div>\n<valtimo-spinner\n [useBootstrapSpinner]=\"false\"\n name=\"auditSpinner\"\n bdColor=\"rgba(125, 125, 125, 0.35)\"\n color=\"#264251\"\n type=\"square-jelly-box\"\n>\n</valtimo-spinner>\n<div\n class=\"pagination-holder audit-pagination bg-light px-4 pt-4 pb-2 overflow-auto row mr-0 ml-0\"\n *ngIf=\"pagination && pagination.totalElements > pagination.size\"\n>\n <div class=\"float-left page-count col-4\">\n <strong>{{\n 'list.currentPage' | translate : {current: pagination.number, total: pagination.totalPages}\n }}</strong>\n <br />\n {{\n pagination.totalElements === 1\n ? ('list.showingResult' | translate : {number: pagination.content.length})\n : ('list.showingResults'\n | translate : {number: pagination.content.length, total: pagination.totalElements})\n }}\n </div>\n <div class=\"col-8\">\n <ngb-pagination\n *ngIf=\"pagination.totalElements > pagination.size\"\n class=\"float-right\"\n [collectionSize]=\"pagination.totalElements\"\n [(page)]=\"pagination.number\"\n [pageSize]=\"pagination.size\"\n [maxSize]=\"pagination.size\"\n [rotate]=\"true\"\n (pageChange)=\"onChangePagination(pagination.number)\"\n ></ngb-pagination>\n </div>\n</div>\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, OnInit} from '@angular/core';\nimport {ActivatedRoute} from '@angular/router';\nimport {DocumentService, RelatedFile, RelatedFileListItem} from '@valtimo/document';\nimport {DownloadService, UploadProviderService} from '@valtimo/resource';\nimport {ToastrService} from 'ngx-toastr';\nimport {catchError, map, switchMap, take, tap} from 'rxjs/operators';\nimport {BehaviorSubject, combineLatest, Observable, of, Subject} from 'rxjs';\nimport {TranslateService} from '@ngx-translate/core';\nimport {ConfigService} from '@valtimo/config';\nimport {DocumentenApiMetadata} from '@valtimo/components';\nimport {UserProviderService} from '@valtimo/security';\nimport {PromptService} from '@valtimo/user-interface';\nimport {FileSortService} from '../../../services';\nimport moment from 'moment';\n\n@Component({\n selector: 'valtimo-dossier-detail-tab-documenten-api-documents',\n templateUrl: './documenten-api-documents.component.html',\n styleUrls: ['./documenten-api-documents.component.scss'],\n})\nexport class DossierDetailTabDocumentenApiDocumentsComponent implements OnInit {\n public readonly documentId: string;\n public readonly documentDefinitionName: string;\n public readonly maxFileSize: number = this.configService?.config?.caseFileSizeUploadLimitMB || 5;\n public readonly acceptedFiles: string =\n this.configService?.config?.caseFileUploadAcceptedFiles || null;\n public fields = [\n {key: 'fileName', label: 'File name'},\n {key: 'sizeInBytes', label: 'Size in bytes'},\n {key: 'createdOn', label: 'Created on'},\n {key: 'createdBy', label: 'Created by'},\n ];\n\n public showZaakLinkWarning: boolean;\n public isAdmin: boolean;\n public uploadProcessLinkedSet = false;\n public uploadProcessLinked!: boolean;\n readonly uploading$ = new BehaviorSubject<boolean>(false);\n readonly showModal$ = new Subject<null>();\n readonly hideModal$ = new Subject<null>();\n readonly modalDisabled$ = new BehaviorSubject<boolean>(false);\n readonly fileToBeUploaded$ = new BehaviorSubject<File | null>(null);\n readonly loading$ = new BehaviorSubject<boolean>(true);\n private readonly refetch$ = new BehaviorSubject<null>(null);\n\n public relatedFiles$: Observable<Array<RelatedFileListItem>> = this.refetch$.pipe(\n switchMap(() =>\n combineLatest([\n this.documentService.getZakenApiDocuments(this.documentId),\n this.translateService.stream('key'),\n ])\n ),\n map(([relatedFiles]) => {\n const translatedFiles = relatedFiles?.map(file => ({\n ...file,\n createdBy: file.createdBy || this.translateService.instant('list.automaticallyGenerated'),\n }));\n\n return translatedFiles || [];\n }),\n map(relatedFiles => this.fileSortService.sortRelatedFilesByDateDescending(relatedFiles)),\n map(relatedFiles => {\n moment.locale(this.translateService.currentLang);\n\n return relatedFiles.map(file => ({\n ...file,\n createdOn: moment(new Date(file.createdOn)).format('L'),\n }));\n }),\n tap(() => this.loading$.next(false)),\n catchError(() => {\n this.showZaakLinkWarning = true;\n return of([]);\n })\n );\n\n readonly downloadingFileIndexes$ = new BehaviorSubject<Array<number>>([]);\n\n constructor(\n private readonly route: ActivatedRoute,\n private readonly documentService: DocumentService,\n private readonly toastrService: ToastrService,\n private readonly uploadProviderService: UploadProviderService,\n private readonly downloadService: DownloadService,\n private readonly promptService: PromptService,\n private readonly translateService: TranslateService,\n private readonly configService: ConfigService,\n private readonly userProviderService: UserProviderService,\n private readonly fileSortService: FileSortService\n ) {\n const snapshot = this.route.snapshot.paramMap;\n this.documentId = snapshot.get('documentId') || '';\n this.documentDefinitionName = snapshot.get('documentDefinitionName') || '';\n }\n\n ngOnInit(): void {\n this.refetchDocuments();\n this.setUploadProcessLinked();\n this.isUserAdmin();\n }\n\n fileSelected(file: File): void {\n this.fileToBeUploaded$.next(file);\n this.showModal$.next(null);\n }\n\n downloadDocument(relatedFile: RelatedFile, index: number): void {\n this.downloadingFileIndexes$.pipe(take(1)).subscribe(indexes => {\n this.downloadingFileIndexes$.next([...indexes, index]);\n\n const finished$: Observable<null> = this.downloadService.downloadFile(\n `/api/v1/documenten-api/${relatedFile.pluginConfigurationId}/files/${relatedFile.fileId}/download`,\n relatedFile.fileName\n );\n\n finished$.pipe(take(1)).subscribe(() => {\n this.downloadingFileIndexes$.next(\n this.downloadingFileIndexes$.getValue().filter(downloadIndex => downloadIndex !== index)\n );\n });\n });\n }\n\n metadataSet(metadata: DocumentenApiMetadata): void {\n this.uploading$.next(true);\n this.hideModal$.next(null);\n\n this.fileToBeUploaded$\n .pipe(take(1))\n .pipe(\n tap(file => {\n this.uploadProviderService\n .uploadFileWithMetadata(file, this.documentId, metadata)\n .subscribe(res => {\n this.refetchDocuments();\n this.uploading$.next(false);\n this.fileToBeUploaded$.next(null);\n });\n })\n )\n .subscribe();\n }\n\n indexesIncludeIndex(indexes: Array<number>, index: number): boolean {\n return indexes.includes(index);\n }\n\n public isUserAdmin() {\n this.userProviderService.getUserSubject().subscribe(\n userIdentity => {\n this.isAdmin = userIdentity.roles.includes('ROLE_ADMIN');\n },\n error => {\n this.isAdmin = false;\n }\n );\n }\n\n private refetchDocuments(): void {\n this.refetch$.next(null);\n }\n\n private setUploadProcessLinked(): void {\n this.uploadProviderService.checkUploadProcessLink(this.documentDefinitionName).subscribe(\n linked => {\n this.uploadProcessLinked = linked;\n this.uploadProcessLinkedSet = true;\n },\n () => {\n this.uploadProcessLinkedSet = true;\n }\n );\n }\n}\n","<!--\n ~ Copyright 2015-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container *ngIf=\"{loading: loading$ | async} as obs\">\n <div *ngIf=\"uploadProcessLinkedSet && !uploadProcessLinked\">\n <div\n *ngIf=\"isAdmin\"\n [translate]=\"'dossier.documenten.noProcessLinked.adminRole'\"\n class=\"bg-warning text-black mb-2 p-3 text-center\"\n ></div>\n <div\n *ngIf=\"!isAdmin\"\n [translate]=\"'dossier.documenten.noProcessLinked.regularUser'\"\n class=\"bg-warning text-black mb-2 p-3 text-center\"\n ></div>\n </div>\n <div *ngIf=\"showZaakLinkWarning\">\n <div\n [translate]=\"'dossier.documenten.noZaakFound'\"\n class=\"bg-warning text-black mb-2 p-3 text-center\"\n ></div>\n </div>\n\n <valtimo-dropzone\n *ngIf=\"!obs.loading\"\n (fileSelected)=\"fileSelected($event)\"\n [acceptedFiles]=\"acceptedFiles\"\n [camera]=\"false\"\n [disabled]=\"\n !uploadProcessLinkedSet || !uploadProcessLinked || obs.loading || showZaakLinkWarning\n \"\n [hideFilePreview]=\"true\"\n [hideTitle]=\"true\"\n [maxFileSize]=\"maxFileSize\"\n [maxFiles]=\"1\"\n [showMaxFileSize]=\"true\"\n [uploading]=\"uploading$ | async\"\n ></valtimo-dropzone>\n\n <valtimo-widget>\n <valtimo-list\n [ngClass]=\"{hidden: obs.loading}\"\n [fields]=\"fields\"\n [header]=\"true\"\n [isSearchable]=\"true\"\n [items]=\"relatedFiles$ | async\"\n [viewMode]=\"true\"\n [lastColumnTemplate]=\"downloadButton\"\n >\n <div header>\n <h3 class=\"list-header-title\">{{ 'Related documents' | translate }}</h3>\n <h5 class=\"list-header-description\">\n {{ 'Overview of all documents in this dossier' | translate }}\n </h5>\n </div>\n </valtimo-list>\n <ng-container *ngTemplateOutlet=\"loading; context: {loading: obs.loading}\"></ng-container>\n </valtimo-widget>\n</ng-container>\n\n<valtimo-documenten-api-metadata-modal\n (metadata)=\"metadataSet($event)\"\n [disabled$]=\"modalDisabled$\"\n [file$]=\"fileToBeUploaded$\"\n [hide$]=\"hideModal$\"\n [show$]=\"showModal$\"\n></valtimo-documenten-api-metadata-modal>\n\n<ng-template #loading let-loading=\"loading\">\n <div *ngIf=\"loading\" class=\"loading-container\">\n <cds-loading></cds-loading>\n </div>\n</ng-template>\n\n<ng-template #downloadButton let-item=\"item\" let-index=\"index\">\n <div\n class=\"download-button-container\"\n *ngIf=\"{isDownloading: indexesIncludeIndex(downloadingFileIndexes$ | async, index)} as vars\"\n >\n <button\n *ngIf=\"!vars.isDownloading\"\n cdsButton=\"primary\"\n size=\"sm\"\n (click)=\"downloadDocument(item, index)\"\n >\n {{ 'interface.download' | translate\n }}<svg class=\"cds--btn__icon\" cdsIcon=\"download\" size=\"16\"></svg>\n </button>\n <cds-loading size=\"sm\" *ngIf=\"vars.isDownloading\"></cds-loading>\n </div>\n</ng-template>\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, OnInit} from '@angular/core';\nimport {ActivatedRoute} from '@angular/router';\nimport {DocumentService, RelatedFile} from '@valtimo/document';\nimport {DownloadService, ResourceDto, UploadProviderService} from '@valtimo/resource';\nimport {ToastrService} from 'ngx-toastr';\nimport {map, switchMap} from 'rxjs/operators';\nimport {BehaviorSubject, combineLatest, Observable} from 'rxjs';\nimport {TranslateService} from '@ngx-translate/core';\nimport {ConfigService} from '@valtimo/config';\nimport {PromptService} from '@valtimo/user-interface';\nimport {FileSortService} from '../../../services';\n\n@Component({\n selector: 'valtimo-dossier-detail-tab-s3-documents',\n templateUrl: './s3-documents.component.html',\n styleUrls: ['./s3-documents.component.scss'],\n})\nexport class DossierDetailTabS3DocumentsComponent implements OnInit {\n public readonly documentId: string;\n public readonly documentDefinitionName: string;\n public readonly maxFileSize: number = this.configService?.config?.caseFileSizeUploadLimitMB || 5;\n public readonly acceptedFiles: string =\n this.configService?.config?.caseFileUploadAcceptedFiles || null;\n public fields = [\n {key: 'fileName', label: 'File name'},\n {key: 'sizeInBytes', label: 'Size in bytes'},\n {key: 'createdOn', label: 'Created on', viewType: 'date'},\n {key: 'createdBy', label: 'Created by'},\n ];\n public actions = [\n {\n columnName: '',\n iconClass: 'mdi mdi-open-in-new',\n callback: this.downloadDocument.bind(this),\n },\n {\n columnName: '',\n iconClass: 'mdi mdi-delete',\n callback: this.removeRelatedFile.bind(this),\n },\n ];\n readonly uploading$ = new BehaviorSubject<boolean>(false);\n private readonly refetch$ = new BehaviorSubject<null>(null);\n public relatedFiles$: Observable<Array<RelatedFile>> = this.refetch$.pipe(\n switchMap(() =>\n combineLatest([\n this.documentService.getDocument(this.documentId),\n this.translateService.stream('key'),\n ])\n ),\n map(([document]) => {\n const relatedFiles = document?.relatedFiles || [];\n const translatedFiles = relatedFiles.map(file => ({\n ...file,\n createdBy: file.createdBy || this.translateService.instant('list.automaticallyGenerated'),\n }));\n\n return translatedFiles || [];\n }),\n map(relatedFiles => this.fileSortService.sortRelatedFilesByDateDescending(relatedFiles))\n );\n\n constructor(\n private readonly route: ActivatedRoute,\n private readonly documentService: DocumentService,\n private readonly toastrService: ToastrService,\n private readonly uploadProviderService: UploadProviderService,\n private readonly downloadService: DownloadService,\n private readonly promptService: PromptService,\n private readonly translateService: TranslateService,\n private readonly configService: ConfigService,\n private readonly fileSortService: FileSortService\n ) {\n const snapshot = this.route.snapshot.paramMap;\n this.documentId = snapshot.get('documentId') || '';\n this.documentDefinitionName = snapshot.get('documentDefinitionName') || '';\n }\n\n ngOnInit(): void {\n this.refetchDocuments();\n }\n\n fileSelected(file: File): void {\n this.uploading$.next(true);\n\n this.uploadProviderService\n .uploadFile(file, this.documentDefinitionName)\n .pipe(\n switchMap(resourceFile =>\n this.documentService.assignResource(this.documentId, resourceFile.data.resourceId)\n )\n )\n .subscribe(\n () => {\n this.toastrService.success('Successfully uploaded document to dossier');\n this.refetchDocuments();\n this.uploading$.next(false);\n },\n () => {\n this.toastrService.error('Failed to upload document to dossier');\n this.uploading$.next(false);\n }\n );\n }\n\n downloadDocument(relatedFile: RelatedFile): void {\n this.uploadProviderService\n .getResource(relatedFile.fileId)\n .subscribe((resource: ResourceDto) => {\n this.downloadService.downloadFile(resource.url, resource.resource.name);\n });\n }\n\n removeRelatedFile(relatedFile: RelatedFile) {\n this.promptService.openPrompt({\n headerText: this.translateService.instant('dossier.deleteConfirmation.title'),\n bodyText: this.translateService.instant('dossier.deleteConfirmation.description'),\n cancelButtonText: this.translateService.instant('dossier.deleteConfirmation.cancel'),\n confirmButtonText: this.translateService.instant('dossier.deleteConfirmation.delete'),\n cancelMdiIcon: 'cancel',\n confirmMdiIcon: 'delete',\n cancelButtonType: 'secondary',\n confirmButtonType: 'primary',\n closeOnConfirm: true,\n closeOnCancel: true,\n confirmCallBackFunction: () => {\n this.documentService.removeResource(this.documentId, relatedFile.fileId).subscribe(\n () => {\n this.toastrService.success('Successfully removed document from dossier');\n this.refetchDocuments();\n },\n () => {\n this.toastrService.error('Failed to remove document from dossier');\n }\n );\n },\n });\n }\n\n private refetchDocuments(): void {\n this.refetch$.next(null);\n }\n}\n","<!--\n ~ Copyright 2015-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<valtimo-dropzone\n (fileSelected)=\"fileSelected($event)\"\n [acceptedFiles]=\"acceptedFiles\"\n [hideFilePreview]=\"true\"\n [hideTitle]=\"true\"\n [maxFileSize]=\"maxFileSize\"\n [showMaxFileSize]=\"true\"\n [camera]=\"false\"\n [uploading]=\"uploading$ | async\"\n></valtimo-dropzone>\n\n<valtimo-widget>\n <valtimo-list\n [fields]=\"fields\"\n [items]=\"relatedFiles$ | async\"\n [header]=\"true\"\n [isSearchable]=\"true\"\n [viewMode]=\"true\"\n [actions]=\"actions\"\n >\n <div header>\n <h3 class=\"list-header-title\">{{ 'Related documents' | translate }}</h3>\n <h5 class=\"list-header-description\">\n {{ 'Overview of all documents in this dossier' | translate }}\n </h5>\n </div>\n </valtimo-list>\n</valtimo-widget>\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component} from '@angular/core';\nimport {ConfigService, UploadProvider, ValtimoConfig} from '@valtimo/config';\n\n@Component({\n selector: 'valtimo-dossier-detail-tab-documents',\n templateUrl: './documents.component.html',\n styleUrls: ['./documents.component.css'],\n})\nexport class DossierDetailTabDocumentsComponent {\n openZaakUploadProvider!: boolean;\n s3UploadProvider!: boolean;\n documentenApiUploadProvider!: boolean;\n\n constructor(private readonly configService: ConfigService) {\n this.setConfig(configService.config);\n }\n\n private setConfig(config: ValtimoConfig): void {\n const uploadProvider = config.uploadProvider;\n this.openZaakUploadProvider = uploadProvider === UploadProvider.OPEN_ZAAK;\n this.documentenApiUploadProvider = uploadProvider === UploadProvider.DOCUMENTEN_API;\n this.s3UploadProvider = config.uploadProvider === UploadProvider.S3;\n }\n}\n","<!--\n ~ Copyright 2015-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<valtimo-dossier-detail-tab-s3-documents\n *ngIf=\"s3UploadProvider || openZaakUploadProvider\"\n></valtimo-dossier-detail-tab-s3-documents>\n<valtimo-dossier-detail-tab-documenten-api-documents *ngIf=\"documentenApiUploadProvider\">\n</valtimo-dossier-detail-tab-documenten-api-documents>\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {InjectionToken} from '@angular/core';\nimport {DossierDetailTabSummaryComponent} from './dossier-detail/tab/summary/summary.component';\nimport {DossierDetailTabProgressComponent} from './dossier-detail/tab/progress/progress.component';\nimport {DossierDetailTabAuditComponent} from './dossier-detail/tab/audit/audit.component';\nimport {DossierDetailTabDocumentsComponent} from './dossier-detail/tab/documents/documents.component';\nimport {DefaultTabs} from './dossier-detail-tab-enum';\n\nexport const TAB_MAP = new InjectionToken<Map<string, object>>('TabMap');\nexport const DEFAULT_TABS = new Map<string, object>([\n [DefaultTabs.summary, DossierDetailTabSummaryComponent],\n [DefaultTabs.progress, DossierDetailTabProgressComponent],\n [DefaultTabs.audit, DossierDetailTabAuditComponent],\n [DefaultTabs.documents, DossierDetailTabDocumentsComponent],\n]);\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, ViewChild} from '@angular/core';\nimport {ActivatedRoute} from '@angular/router';\nimport {ZaakobjectenService} from '../../../services/zaakobjecten.service';\nimport {BehaviorSubject, combineLatest, map, Observable, of, switchMap, tap} from 'rxjs';\nimport {ZaakObject, ZaakObjectType} from '../../../models';\nimport {ModalComponent, ModalService, TableColumn} from '@valtimo/user-interface';\nimport {take} from 'rxjs/operators';\nimport {FormioForm} from '@formio/angular';\n\n@Component({\n selector: 'valtimo-object-type',\n templateUrl: './object-type.component.html',\n styleUrls: ['./object-type.component.scss'],\n})\nexport class DossierDetailTabObjectTypeComponent {\n @ViewChild('viewObjectModal') viewObjectModal: ModalComponent;\n\n private readonly documentId$ = this.route.params.pipe(map(params => params.documentId));\n\n private readonly objecttypes$: Observable<Array<ZaakObjectType>> = this.documentId$.pipe(\n switchMap(documentId => this.zaakobjectenService.getDocumentObjectTypes(documentId))\n );\n\n readonly objectName$ = this.route.params.pipe(\n map(() => {\n const currentUrl = window.location.href;\n const splitUrl = currentUrl.split('/');\n const lastUrlPart = splitUrl[splitUrl.length - 1];\n\n return lastUrlPart;\n })\n );\n\n readonly selectedObjecttypeUrl$: Observable<string> = combineLatest([\n this.objecttypes$,\n this.objectName$,\n ]).pipe(\n map(([objectTypes, objectName]) => {\n const currentType = objectTypes?.find(\n type => type?.name.toLowerCase() === objectName?.toLowerCase()\n );\n\n const currentTypeUrl = currentType?.url;\n\n if (objectTypes && objectName && currentTypeUrl) return currentTypeUrl;\n\n return '';\n })\n );\n\n readonly loading$ = new BehaviorSubject<boolean>(true);\n\n readonly hasData$ = new BehaviorSubject<boolean>(false);\n\n readonly objects$: Observable<Array<ZaakObject> | null> = combineLatest([\n this.documentId$,\n this.selectedObjecttypeUrl$,\n ]).pipe(\n switchMap(([documentId, selectedObjecttypeUrl]) =>\n documentId && selectedObjecttypeUrl\n ? this.zaakobjectenService.getDocumentObjectsOfType(documentId, selectedObjecttypeUrl).pipe(\n map(objects => objects.map(object => ({...object, title: object.title || '-'}))),\n tap(() => {\n this.loading$.next(false);\n this.hasData$.next(true);\n })\n )\n : of(null).pipe(\n tap(() => {\n this.loading$.next(false);\n this.hasData$.next(false);\n })\n )\n )\n );\n\n readonly columns$ = new BehaviorSubject<Array<TableColumn>>([\n {\n labelTranslationKey: 'dossier.zaakobjecten.index',\n dataKey: 'index',\n },\n {\n labelTranslationKey: 'dossier.zaakobjecten.registrationAt',\n dataKey: 'registrationAt',\n },\n {\n labelTranslationKey: 'dossier.zaakobjecten.title',\n dataKey: 'title',\n },\n ]);\n\n readonly objectForm$ = new BehaviorSubject<FormioForm | null>(null);\n\n readonly noFormDefinitionComponent$ = new BehaviorSubject<boolean>(false);\n\n hasData: boolean;\n\n constructor(\n private readonly route: ActivatedRoute,\n private readonly zaakobjectenService: ZaakobjectenService,\n private readonly modalService: ModalService\n ) {}\n\n rowClicked(object: ZaakObject): void {\n this.documentId$.pipe(take(1)).subscribe(documentId => {\n this.zaakobjectenService.getObjectTypeForm(documentId, object.url).subscribe(\n res => {\n const definition = res.formDefinition;\n definition.components = definition.components.map(component => ({\n ...component,\n disabled: true,\n }));\n this.setModalData(definition);\n },\n () => {\n this.setModalData();\n }\n );\n });\n }\n\n hide(): void {\n this.modalService.closeModal(() => {\n this.objectForm$.next(null);\n });\n }\n\n private show(): void {\n this.modalService.openModal(this.viewObjectModal);\n }\n\n private setModalData(definition?: FormioForm): void {\n if (definition) {\n this.objectForm$.next(definition);\n this.noFormDefinitionComponent$.next(false);\n } else {\n this.noFormDefinitionComponent$.next(true);\n }\n\n this.show();\n }\n}\n","<!--\n ~ Copyright 2015-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container\n *ngIf=\"{\n objects: objects$ | async,\n columns: columns$ | async,\n loading: loading$ | async,\n hasData: hasData$ | async\n } as obs\"\n>\n <v-table\n *ngIf=\"obs.hasData || obs.loading\"\n [loading]=\"obs.loading\"\n [items]=\"obs.objects\"\n [columns]=\"obs.columns\"\n [showEditButtons]=\"true\"\n editButtonTranslationKey=\"dossier.zaakobjecten.objectType.viewObject\"\n [amountOfLoadingRows]=\"2\"\n [itemsTranslationKey]=\"'pluginManagement.tableItemsText'\"\n [showPagination]=\"false\"\n (editButtonClicked)=\"rowClicked($event)\"\n ></v-table>\n\n <v-paragraph *ngIf=\"!obs.hasData && !obs.loading\" [center]=\"true\">{{\n 'dossier.zaakobjecten.noObjectType' | translate\n }}</v-paragraph>\n</ng-container>\n\n<v-modal #viewObjectModal (closeEvent)=\"hide()\" [hideFooter]=\"true\" [maxWidthPx]=\"750\">\n <div role=\"header\">\n <v-title [margin]=\"false\" type=\"h2\" [fullWidth]=\"true\" [center]=\"true\">{{\n objectName$ | async\n }}</v-title>\n </div>\n\n <div role=\"content\">\n <valtimo-form-io\n *ngIf=\"(noFormDefinitionComponent$ | async) === false\"\n [form]=\"objectForm$ | async\"\n ></valtimo-form-io>\n <v-paragraph *ngIf=\"noFormDefinitionComponent$ | async\" [center]=\"true\">{{\n 'dossier.zaakobjecten.noFormDefinitionComponent' | translate\n }}</v-paragraph>\n </div>\n</v-modal>\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Inject, Injectable} from '@angular/core';\nimport {TabImpl} from './models';\nimport {DEFAULT_TABS, TAB_MAP} from './dossier.config';\nimport {ConfigService} from '@valtimo/config';\nimport {ActivatedRoute, Event as NavigationEvent, NavigationEnd, Router} from '@angular/router';\nimport {DossierDetailTabObjectTypeComponent} from './dossier-detail/tab/object-type/object-type.component';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TabService {\n private readonly tabMap: Map<string, object>;\n private tabs: TabImpl[] = [];\n private allTabs!: Map<string, object>;\n private extraTabs!: Map<string, object>;\n\n constructor(\n @Inject(TAB_MAP) tabMap: Map<string, object> = DEFAULT_TABS,\n private readonly configService: ConfigService,\n private route: ActivatedRoute,\n private router: Router\n ) {\n this.tabMap = tabMap;\n this.setTabs();\n this.openRouterSubscription();\n }\n\n public getTabs(): TabImpl[] {\n return this.tabs;\n }\n\n private setTabs(extraTabs?: Map<string, object>) {\n let i = 0;\n\n this.tabs = [];\n\n this.allTabs = extraTabs\n ? new Map([...Array.from(this.tabMap.entries()), ...Array.from(extraTabs.entries())])\n : this.tabMap;\n\n this.allTabs.forEach((component, name) => {\n this.tabs.push(new TabImpl(name, i, component));\n i++;\n });\n }\n\n getConfigurableTabs(documentDefinitionName: string) {\n if (this.configService?.config?.caseObjectTypes) {\n const allNamesObjects = this.configService?.config?.caseObjectTypes[documentDefinitionName];\n const map = new Map();\n\n allNamesObjects?.forEach(name => {\n map.set(name, DossierDetailTabObjectTypeComponent);\n });\n\n this.extraTabs = map;\n } else {\n this.extraTabs = new Map<string, object>();\n }\n }\n\n private openRouterSubscription(): void {\n this.router.events.subscribe((event: NavigationEvent) => {\n if (event instanceof NavigationEnd) {\n this.setTabs(this.extraTabs);\n }\n });\n }\n}\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, EventEmitter, Output, ViewChild, ViewEncapsulation} from '@angular/core';\nimport {FormioBeforeSubmit, FormioForm} from '@formio/angular';\nimport {\n FormioComponent,\n FormioOptionsImpl,\n FormioSubmission,\n ModalComponent,\n ValtimoFormioOptions,\n} from '@valtimo/components';\nimport {ActivatedRoute, Router} from '@angular/router';\nimport {ProcessService} from '@valtimo/process';\nimport {DocumentService, ProcessDocumentDefinition} from '@valtimo/document';\nimport {\n FormAssociation,\n FormFlowService,\n FormLinkService,\n FormSubmissionResult,\n ProcessLinkService,\n} from '@valtimo/form-link';\nimport {NGXLogger} from 'ngx-logger';\nimport {noop, Observable} from 'rxjs';\nimport {map, take} from 'rxjs/operators';\nimport {UserProviderService} from '@valtimo/security';\n\n@Component({\n selector: 'valtimo-dossier-supporting-process-start-modal',\n templateUrl: './dossier-supporting-process-start-modal.component.html',\n styleUrls: ['./dossier-supporting-process-start-modal.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class DossierSupportingProcessStartModalComponent {\n public processDefinitionKey: string;\n public documentDefinitionName: string;\n public processName: string;\n public formDefinition: FormioForm;\n public formioSubmission: FormioSubmission;\n private formAssociation: FormAssociation;\n private processLinkId: string;\n public options: ValtimoFormioOptions;\n public submission: object;\n public processDefinitionId: string;\n public formFlowInstanceId: string;\n\n readonly isAdmin$: Observable<boolean> = this.userProviderService\n .getUserSubject()\n .pipe(map(userIdentity => userIdentity?.roles?.includes('ROLE_ADMIN')));\n\n @ViewChild('form', {static: false}) form: FormioComponent;\n @ViewChild('supportingProcessStartModal', {static: false}) modal: ModalComponent;\n @Output() formSubmit = new EventEmitter();\n\n private documentId: string;\n\n constructor(\n private route: ActivatedRoute,\n private router: Router,\n private processService: ProcessService,\n private processLinkService: ProcessLinkService,\n private documentService: DocumentService,\n private formLinkService: FormLinkService,\n private formFlowService: FormFlowService,\n private logger: NGXLogger,\n private readonly userProviderService: UserProviderService\n ) {}\n\n private loadProcessLink() {\n this.formAssociation = null;\n this.processLinkId = null;\n this.formDefinition = null;\n this.formFlowInstanceId = null;\n this.processService\n .getProcessDefinitionStartProcessLink(this.processDefinitionId, this.documentId, null)\n .pipe(take(1))\n .subscribe(startProcessResult => {\n if (startProcessResult) {\n switch (startProcessResult.type) {\n case 'form':\n this.formDefinition = startProcessResult.properties.prefilledForm;\n this.processLinkId = startProcessResult.processLinkId;\n break;\n case 'form-flow':\n this.formFlowInstanceId = startProcessResult.properties.formFlowInstanceId;\n break;\n }\n this.modal.show();\n } else {\n // backwards compatibility for form associations\n this.formLinkService\n .getStartEventFormDefinitionByProcessDefinitionKey(\n this.processDefinitionKey,\n this.documentId\n )\n .pipe(take(1))\n .subscribe({\n next: formDefinitionWithFormAssociation =>\n this.openFormAssociation(formDefinitionWithFormAssociation),\n error: error => {\n this.modal.show();\n },\n });\n }\n });\n }\n\n private openFormAssociation(formDefinitionWithFormAssociation: any) {\n this.formAssociation = formDefinitionWithFormAssociation.formAssociation;\n const className = this.formAssociation.formLink.className.split('.');\n const linkType = className[className.length - 1];\n switch (linkType) {\n case 'BpmnElementFormIdLink':\n this.formDefinition = formDefinitionWithFormAssociation;\n this.documentService.getDocument(this.documentId).subscribe(\n document => {\n this.submission = {\n data: document.content,\n };\n },\n () => noop()\n );\n this.modal.show();\n break;\n case 'BpmnElementFormFlowIdLink':\n this.formFlowService\n .createInstanceForNewProcess(this.processDefinitionKey, {\n documentId: this.documentId,\n documentDefinitionName: null,\n })\n .subscribe(result => (this.formFlowInstanceId = result.formFlowInstanceId));\n this.modal.show();\n break;\n case 'BpmnElementUrlLink':\n const url = this.router.serializeUrl(\n this.router.createUrlTree([this.formAssociation.formLink.url])\n );\n window.open(url, '_blank');\n break;\n case 'BpmnElementAngularStateUrlLink':\n this.route.params.pipe(take(1)).subscribe(params => {\n const documentId = params?.documentId;\n\n this.router.navigate([this.formAssociation.formLink.url], {\n state: {...(documentId && {documentId})},\n });\n });\n break;\n default:\n this.logger.fatal('Unsupported class name');\n }\n }\n\n openModal(processDocumentDefinition: ProcessDocumentDefinition, documentId: string) {\n this.documentId = documentId;\n this.documentDefinitionName = processDocumentDefinition.id.documentDefinitionId.name;\n this.processDefinitionKey = processDocumentDefinition.id.processDefinitionKey;\n this.processDefinitionId = processDocumentDefinition.latestVersionId;\n this.processName = processDocumentDefinition.processName;\n this.options = new FormioOptionsImpl();\n this.options.disableAlerts = true;\n const formioBeforeSubmit: FormioBeforeSubmit = function (submission, callback) {\n callback(null, submission);\n };\n this.options.setHooks(formioBeforeSubmit);\n this.loadProcessLink();\n }\n\n public onSubmit(submission: FormioSubmission) {\n this.formioSubmission = submission;\n if (this.processLinkId) {\n this.processLinkService\n .submitForm(this.processLinkId, submission.data, this.documentId)\n .subscribe({\n next: (formSubmissionResult: FormSubmissionResult) => {\n this.formSubmitted();\n },\n error: errors => {\n this.form.showErrors(errors);\n },\n });\n } else {\n this.formLinkService\n .onSubmit(\n this.processDefinitionKey,\n this.formAssociation.formLink.id,\n submission.data,\n this.documentId\n )\n .subscribe(\n (formSubmissionResult: FormSubmissionResult) => {\n this.formSubmitted();\n },\n errors => {\n this.form.showErrors(errors);\n }\n );\n }\n }\n\n public formSubmitted() {\n this.modal.hide();\n this.formSubmit.emit();\n }\n\n public gotoFormLinkScreen() {\n this.modal.hide();\n this.router.navigate(['form-links'], {queryParams: {process: this.processDefinitionKey}});\n }\n}\n","<!--\n ~ Copyright 2015-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<valtimo-modal\n #supportingProcessStartModal\n elementId=\"supportingProcessStartModal\"\n [title]=\"\n (processDefinitionKey | translate) !== processDefinitionKey\n ? (processDefinitionKey | translate)\n : processName\n \"\n>\n <div body *ngIf=\"formDefinition\">\n <valtimo-form-io\n #form\n [submission]=\"submission\"\n [form]=\"formDefinition\"\n [options]=\"options\"\n (submit)=\"onSubmit($event)\"\n >\n </valtimo-form-io>\n </div>\n <div body *ngIf=\"formFlowInstanceId\">\n <valtimo-form-flow\n #formFlow\n [formFlowInstanceId]=\"formFlowInstanceId\"\n (formFlowComplete)=\"formSubmitted()\"\n ></valtimo-form-flow>\n </div>\n <div body *ngIf=\"!formDefinition && !formFlowInstanceId\">\n <div class=\"bg-warning text-black mb-0 p-3 text-center\">\n {{\n (isAdmin$ | async)\n ? ('formManagement.noFormDefinitionFoundAdmin' | translate)\n : ('formManagement.noFormDefinitionFoundUser' | translate)\n }}\n </div>\n <div class=\"mb-0 mt-4 p-3 text-center\">\n <button\n class=\"btn btn-secondary btn-space\"\n type=\"button\"\n (click)=\"gotoFormLinkScreen()\"\n id=\"form-link-button\"\n >\n {{ 'formManagement.gotoFormLinksButton' | translate }}\n </button>\n </div>\n </div>\n</valtimo-modal>\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n Component,\n EventEmitter,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n SimpleChanges,\n} from '@angular/core';\nimport {DropdownItem} from '@valtimo/components';\nimport {BehaviorSubject, Subscription} from 'rxjs';\nimport {tap} from 'rxjs/operators';\nimport {NamedUser} from '@valtimo/config';\nimport {DocumentService} from '@valtimo/document';\n\n@Component({\n selector: 'valtimo-dossier-assign-user',\n templateUrl: './dossier-assign-user.component.html',\n styleUrls: ['./dossier-assign-user.component.css'],\n})\nexport class DossierAssignUserComponent implements OnInit, OnChanges, OnDestroy {\n @Input() documentId: string;\n @Input() assigneeId: string;\n @Input() assigneeFullName: string;\n @Input() hasPermission = true;\n\n @Output() assignmentOfDocumentChanged = new EventEmitter();\n\n userIdToAssign: string | null = null;\n\n readonly candidateUsersForDocument$ = new BehaviorSubject<NamedUser[]>(undefined);\n readonly disabled$ = new BehaviorSubject<boolean>(true);\n readonly assignedIdOnServer$ = new BehaviorSubject<string>(null);\n readonly assignedUserFullName$ = new BehaviorSubject<string>(null);\n\n private _subscriptions = new Subscription();\n\n constructor(private readonly documentService: DocumentService) {}\n\n ngOnInit(): void {\n this._subscriptions.add(\n this.documentService.getCandidateUsers(this.documentId).subscribe(candidateUsers => {\n this.candidateUsersForDocument$.next(candidateUsers);\n if (this.assigneeId) {\n this.assignedIdOnServer$.next(this.assigneeId);\n this.userIdToAssign = this.assigneeId;\n this.assignedUserFullName$.next(this.assigneeFullName);\n }\n this.enable();\n })\n );\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n const assigneeId = changes?.assigneeId?.currentValue;\n const assigneeFullName = changes?.assigneeFullName?.currentValue;\n\n if (assigneeId && assigneeFullName) {\n this.assignedIdOnServer$.next(assigneeId || null);\n this.userIdToAssign = assigneeId || null;\n this.assignedUserFullName$.next(assigneeFullName);\n } else {\n this.clear();\n }\n }\n\n ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n }\n\n assignDocument(userId: string): void {\n this.disable();\n\n this.documentService\n .assignHandlerToDocument(this.documentId, userId)\n .pipe(\n tap(() => {\n this.userIdToAssign = userId;\n this.assignedIdOnServer$.next(userId);\n this.assignedUserFullName$.next(this.assigneeFullName);\n this.emitChange();\n this.enable();\n })\n )\n .subscribe();\n }\n\n unassignDocument(): void {\n this.disable();\n this.documentService\n .unassignHandlerFromDocument(this.documentId)\n .pipe(\n tap(() => {\n this.clear();\n this.emitChange();\n this.enable();\n })\n )\n .subscribe();\n }\n\n mapUsersForDropdown(users: NamedUser[]): DropdownItem[] {\n return (\n users &&\n users\n .sort((a, b) => {\n if (a.lastName && b.lastName) {\n return a.lastName.localeCompare(b.lastName);\n }\n })\n .map(user => ({text: user.label, id: user.id}))\n );\n }\n\n private clear(): void {\n this.assignedIdOnServer$.next(null);\n this.userIdToAssign = null;\n }\n\n private emitChange(): void {\n this.assignmentOfDocumentChanged.emit();\n }\n\n private enable(): void {\n this.disabled$.next(false);\n }\n\n private disable(): void {\n this.disabled$.next(true);\n }\n}\n","<!--\n ~ Copyright 2015-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container\n *ngIf=\"{\n candidateUsers: candidateUsersForDocument$ | async,\n idOnServer: assignedIdOnServer$ | async,\n fullName: assignedUserFullName$ | async,\n disabled: disabled$ | async\n } as obs\"\n>\n <div class=\"container-fluid\">\n <div class=\"row\">\n <div class=\"col-12 pl-0 d-flex flex-row align-items-center\">\n <ng-container *ngIf=\"obs.candidateUsers; else loading\">\n <valtimo-searchable-dropdown-select\n [buttonText]=\"'assignDocument.header' | translate\"\n [clearSelectionButtonTitle]=\"'assignDocument.remove' | translate\"\n [disabled]=\"obs.disabled\"\n [hasPermission]=\"hasPermission\"\n [hasSelection]=\"\n userIdToAssign === obs.idOnServer && obs.idOnServer !== null && obs.fullName\n \"\n id=\"dossier-candidates-dropdown\"\n [items]=\"mapUsersForDropdown(obs.candidateUsers)\"\n [noResultsText]=\"'interface.noSearchResults' | translate\"\n [searchText]=\"'interface.typeToSearch' | translate\"\n [selectedText]=\"'assignDocument.assignedTo' | translate\"\n [selectedTextValue]=\"assignedUserFullName$ | async\"\n [style]=\"'underlinedText'\"\n [width]=\"250\"\n (itemSelected)=\"assignDocument($event)\"\n (clearSelection)=\"unassignDocument()\"\n >\n </valtimo-searchable-dropdown-select>\n </ng-container>\n </div>\n </div>\n </div>\n</ng-container>\n\n<ng-template #loading>\n <h5>\n <b>{{ 'assignDocument.fetchingUsers' | translate }}</b>\n </h5>\n</ng-template>\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n Component,\n ComponentFactoryResolver,\n OnDestroy,\n OnInit,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport {ActivatedRoute, ParamMap, Router} from '@angular/router';\nimport {Document, DocumentService, ProcessDocumentDefinition} from '@valtimo/document';\nimport {TabLoaderImpl} from '../models';\nimport {TranslateService} from '@ngx-translate/core';\nimport {Location} from '@angular/common';\nimport {TabService} from '../tab.service';\nimport {ProcessService} from '@valtimo/process';\nimport {DossierSupportingProcessStartModalComponent} from '../dossier-supporting-process-start-modal/dossier-supporting-process-start-modal.component';\nimport {ConfigService, DossierListTab} from '@valtimo/config';\nimport moment from 'moment';\nimport {\n BehaviorSubject,\n combineLatest,\n from,\n map,\n Observable,\n of,\n startWith,\n switchMap,\n take,\n tap,\n} from 'rxjs';\nimport {KeycloakService} from 'keycloak-angular';\nimport {NGXLogger} from 'ngx-logger';\nimport {BreadcrumbService, PageTitleService} from '@valtimo/components';\n\n@Component({\n selector: 'valtimo-dossier-detail',\n templateUrl: './dossier-detail.component.html',\n styleUrls: ['./dossier-detail.component.css'],\n})\nexport class DossierDetailComponent implements OnInit, OnDestroy {\n @ViewChild('tabContainer', {read: ViewContainerRef, static: true})\n viewContainerRef: ViewContainerRef;\n\n public documentDefinitionName: string;\n public documentDefinitionNameTitle: string;\n public documentId: string;\n public document: Document = null;\n public tabLoader: TabLoaderImpl = null;\n private snapshot: ParamMap;\n public processDefinitionListFields: Array<any> = [];\n public processDocumentDefinitions: ProcessDocumentDefinition[] = [];\n private initialTabName: string;\n public customDossierHeaderItems: Array<any> = [];\n public dossierStatusTabs: Array<DossierListTab> | null = null;\n\n @ViewChild('supportingProcessStartModal')\n supportingProcessStart: DossierSupportingProcessStartModalComponent;\n\n readonly refreshDocument$ = new BehaviorSubject<null>(null);\n\n readonly assigneeId$ = new BehaviorSubject<string>('');\n\n readonly document$: Observable<Document | null> = this.refreshDocument$.pipe(\n switchMap(() => this.route.params),\n map(params => params?.documentId),\n switchMap(documentId =>\n documentId ? this.documentService.getDocument(this.documentId) : of(null)\n ),\n tap(document => {\n if (document) {\n this.assigneeId$.next(document.assigneeId);\n this.document = document;\n\n if (\n this.configService.config.customDossierHeader?.hasOwnProperty(\n this.documentDefinitionName.toLowerCase()\n ) &&\n this.customDossierHeaderItems.length === 0\n ) {\n this.configService.config.customDossierHeader[\n this.documentDefinitionName.toLowerCase()\n ]?.forEach(item => this.getCustomDossierHeaderItem(item));\n }\n }\n })\n );\n\n readonly userId$: Observable<string> = from(this.keyCloakService.isLoggedIn()).pipe(\n switchMap(() => this.keyCloakService.loadUserProfile()),\n map(profile => profile?.id)\n );\n\n readonly isAssigning$ = new BehaviorSubject<boolean>(false);\n\n readonly isAssignedToCurrentUser$: Observable<boolean> = combineLatest([\n this.assigneeId$,\n this.userId$,\n ]).pipe(\n map(([assigneeId, userId]) => assigneeId && userId && assigneeId === userId),\n startWith(true)\n );\n\n readonly documentDefinitionName$: Observable<string> = this.route.params.pipe(\n map(params => params.documentDefinitionName || '')\n );\n\n readonly canHaveAssignee$: Observable<boolean> = this.documentDefinitionName$.pipe(\n switchMap(documentDefinitionName =>\n this.documentService.getCaseSettings(documentDefinitionName)\n ),\n map(caseSettings => caseSettings?.canHaveAssignee)\n );\n\n constructor(\n private readonly componentFactoryResolver: ComponentFactoryResolver,\n private readonly translateService: TranslateService,\n private readonly documentService: DocumentService,\n private readonly processService: ProcessService,\n private readonly route: ActivatedRoute,\n private readonly router: Router,\n private readonly location: Location,\n private readonly tabService: TabService,\n private readonly configService: ConfigService,\n private readonly keyCloakService: KeycloakService,\n private readonly logger: NGXLogger,\n private readonly breadcrumbService: BreadcrumbService,\n private readonly pageTitleService: PageTitleService\n ) {\n this.snapshot = this.route.snapshot.paramMap;\n this.documentDefinitionName = this.snapshot.get('documentDefinitionName') || '';\n this.documentId = this.snapshot.get('documentId') || '';\n this.tabService.getConfigurableTabs(this.documentDefinitionName);\n }\n\n ngOnInit(): void {\n this.tabLoader = new TabLoaderImpl(\n this.tabService.getTabs(),\n this.componentFactoryResolver,\n this.viewContainerRef,\n this.translateService,\n this.router,\n this.location\n );\n this.documentService\n .getDocumentDefinition(this.documentDefinitionName)\n .subscribe(definition => {\n this.documentDefinitionNameTitle = definition.schema.title;\n this.setBreadcrumb();\n });\n this.initialTabName = this.snapshot.get('tab');\n this.tabLoader.initial(this.initialTabName);\n this.getAllAssociatedProcessDefinitions();\n }\n\n ngOnDestroy(): void {\n this.breadcrumbService.clearSecondBreadcrumb();\n }\n\n public getAllAssociatedProcessDefinitions(): void {\n this.documentService\n .findProcessDocumentDefinitions(this.documentDefinitionName)\n .subscribe(processDocumentDefinitions => {\n this.processDocumentDefinitions = processDocumentDefinitions.filter(\n processDocumentDefinition => processDocumentDefinition.startableByUser\n );\n this.processDefinitionListFields = [\n {\n key: 'processName',\n label: 'Proces',\n },\n ];\n });\n }\n\n startProcess(processDocumentDefinition: ProcessDocumentDefinition): void {\n this.supportingProcessStart.openModal(processDocumentDefinition, this.documentId);\n }\n\n claimAssignee(): void {\n this.isAssigning$.next(true);\n\n this.userId$\n .pipe(\n take(1),\n switchMap(userId => this.documentService.assignHandlerToDocument(this.documentId, userId))\n )\n .subscribe(\n (): void => {\n this.isAssigning$.next(false);\n this.refreshDocument$.next(null);\n },\n (): void => {\n this.isAssigning$.next(false);\n this.logger.debug('Something went wrong while assigning user to case');\n }\n );\n }\n\n assignmentOfDocumentChanged(): void {\n this.refreshDocument$.next(null);\n }\n\n private getCustomDossierHeaderItem(item): void {\n this.customDossierHeaderItems.push({\n label: item['labelTranslationKey'] || '',\n columnSize: item['columnSize'] || 3,\n textSize: item['textSize'] || 'md',\n customClass: item['customClass'] || '',\n modifier: item['modifier'] || '',\n value: item['propertyPaths']?.reduce(\n (prev, curr) => prev + this.getStringFromDocumentPath(item, curr),\n ''\n ),\n });\n }\n\n private getStringFromDocumentPath(item, path): string {\n const prefix = item['propertyPaths'].indexOf(path) > 0 ? ' ' : '';\n let string =\n path.split('.').reduce((o, i) => o[i], this.document.content) || item['noValueText'] || '';\n const dateFormats = [moment.ISO_8601, 'MM-DD-YYYY', 'DD-MM-YYYY', 'YYYY-MM-DD'];\n switch (item['modifier']) {\n case 'age': {\n if (moment(string, dateFormats, true).isValid()) {\n string = moment().diff(string, 'years');\n }\n break;\n }\n default: {\n if (moment(string, dateFormats, true).isValid()) {\n string = moment(string).format('DD-MM-YYYY');\n }\n }\n }\n return prefix + string;\n }\n\n private setBreadcrumb(): void {\n this.breadcrumbService.setSecondBreadcrumb({\n route: [`/dossiers/${this.documentDefinitionName}`],\n content: this.documentDefinitionNameTitle,\n href: `/dossiers/${this.documentDefinitionName}`,\n });\n }\n}\n","<!--\n ~ Copyright 2015-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div class=\"main-content\">\n <div class=\"container-fluid\">\n <div class=\"col-12 px-0 mb-5\">\n <valtimo-widget>\n <div class=\"card-header bg-light card-header-divider pb-2\">\n <div\n class=\"row\"\n *ngIf=\"{canHaveAssignee: canHaveAssignee$ | async, document: document$ | async} as obs\"\n >\n <div class=\"col\">\n <ng-container\n *ngTemplateOutlet=\"\n caseDetailHeader;\n context: {canHaveAssignee: obs.canHaveAssignee, document: obs.document}\n \"\n ></ng-container>\n </div>\n <div class=\"btn-group mt-m3px mb-3 col-auto\">\n <valtimo-extension\n module=\"dossier\"\n page=\"dossier-detail\"\n section=\"card-header\"\n ></valtimo-extension>\n <ng-container\n *ngTemplateOutlet=\"claimButton; context: {canHaveAssignee: obs.canHaveAssignee}\"\n ></ng-container>\n <div class=\"dropdown\">\n <button\n class=\"btn btn-primary dropdown-toggle\"\n type=\"button\"\n id=\"startProcessDropdown\"\n placement=\"bottom\"\n [ngbTooltip]=\"processDocumentDefinitions.length === 0 ? 'No action' : null\"\n [disabled]=\"processDocumentDefinitions.length === 0\"\n data-toggle=\"dropdown\"\n aria-haspopup=\"true\"\n aria-expanded=\"false\"\n >\n <span>{{ 'dossier.startSubProcess' | translate }}</span>\n <i class=\"ml-1 mdi mdi-chevron-down\"></i>\n </button>\n <div\n class=\"dropdown-menu dropdown-menu-right\"\n aria-labelledby=\"startProcessDropdown\"\n >\n <button\n *ngFor=\"let processDocumentDefinition of processDocumentDefinitions\"\n class=\"dropdown-item p\"\n href=\"#\"\n (click)=\"startProcess(processDocumentDefinition)\"\n >\n {{\n (processDocumentDefinition?.id?.processDefinitionKey | translate) !==\n processDocumentDefinition?.id?.processDefinitionKey\n ? (processDocumentDefinition.id.processDefinitionKey | translate)\n : processDocumentDefinition.processName\n }}\n </button>\n </div>\n </div>\n </div>\n </div>\n </div>\n <ul class=\"nav nav-tabs\">\n <li class=\"nav-item\" *ngFor=\"let tab of tabLoader.tabs\">\n <a\n id=\"{{ tab.name }}-tab\"\n class=\"nav-link clickable\"\n [ngClass]=\"{active: tab.isActive()}\"\n data-toggle=\"tab\"\n (click)=\"tabLoader.load(tab)\"\n >\n {{ tabLoader.translateTabName(tab) }}\n </a>\n </li>\n </ul>\n <div class=\"card-body bg-white p-5 position-relative tab-container\">\n <ng-template #tabContainer>Loading...</ng-template>\n <div class=\"clearfix\"></div>\n </div>\n </valtimo-widget>\n </div>\n <valtimo-dossier-supporting-process-start-modal\n (formSubmit)=\"tabLoader.refreshView()\"\n #supportingProcessStartModal\n ></valtimo-dossier-supporting-process-start-modal>\n </div>\n</div>\n\n<ng-template #caseDetailHeader let-canHaveAssignee=\"canHaveAssignee\" let-document=\"document\">\n <div class=\"row\" *ngIf=\"customDossierHeaderItems.length > 0; else defaultTitle\">\n <span\n class=\"mb-0 mt-0 pb-2 align-self-end col-xl-{{ item.columnSize }} col-lg-{{\n item.columnSize * 2\n }} {{ item.customClass }}\"\n [ngClass]=\"{\n h1: item.textSize === 'xl',\n h2: item.textSize === 'lg',\n h3: item.textSize === 'md',\n h4: item.textSize === 'sm',\n h5: item.textSize === 'xs'\n }\"\n *ngFor=\"let item of customDossierHeaderItems\"\n >\n <span *ngIf=\"item.label\">{{ item.label | translate }}</span>\n <span *ngIf=\"item.label && item.value\">: </span>\n <strong>{{ item.value }}</strong>\n </span>\n </div>\n <ng-container\n *ngTemplateOutlet=\"\n caseDetailAssignee;\n context: {canHaveAssignee: canHaveAssignee, document: document}\n \"\n ></ng-container>\n</ng-template>\n\n<ng-template #defaultTitle>\n <div class=\"row ml-0 mr-0\">{{ documentDefinitionNameTitle?.trim() }}</div>\n</ng-template>\n\n<ng-template #caseDetailAssignee let-canHaveAssignee=\"canHaveAssignee\" let-document=\"document\">\n <div class=\"row ml-0 mr-0 mt-1 mb-1\" *ngIf=\"canHaveAssignee && document\">\n <valtimo-dossier-assign-user\n [documentId]=\"document.id\"\n [assigneeId]=\"document.assigneeId\"\n [assigneeFullName]=\"document?.assigneeFullName\"\n (assignmentOfDocumentChanged)=\"assignmentOfDocumentChanged()\"\n ></valtimo-dossier-assign-user>\n </div>\n</ng-template>\n\n<ng-template #claimButton let-canHaveAssignee=\"canHaveAssignee\">\n <div class=\"user-full-name\" *ngIf=\"canHaveAssignee\">\n <button\n class=\"btn btn-space btn-primary mr-1\"\n type=\"button\"\n id=\"\"\n placement=\"bottom\"\n aria-haspopup=\"true\"\n aria-expanded=\"false\"\n (click)=\"claimAssignee()\"\n [disabled]=\"(isAssigning$ | async) || (isAssignedToCurrentUser$ | async)\"\n >\n <span>{{ 'dossier.claimAssigneeCase' | translate }}</span>\n </button>\n </div>\n</ng-template>\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, ViewChild} from '@angular/core';\nimport {ContactMomentService} from '@valtimo/contact-moment';\nimport moment from 'moment';\nimport {BehaviorSubject, combineLatest, Observable, Subject} from 'rxjs';\nimport {ModalComponent, TimelineItem, TimelineItemImpl} from '@valtimo/components';\nimport {map, switchMap, take} from 'rxjs/operators';\nimport {AlertService} from '@valtimo/components';\nimport {TranslateService} from '@ngx-translate/core';\n\nmoment.locale(localStorage.getItem('langKey') || '');\n\n@Component({\n selector: 'valtimo-dossier-detail-tab-contact-moments',\n templateUrl: './contact-moments.component.html',\n styleUrls: ['./contact-moments.component.scss'],\n})\nexport class DossierDetailTabContactMomentsComponent {\n @ViewChild('contactMomentsNoteModal') modal: ModalComponent;\n\n readonly refetchContactMoments$ = new BehaviorSubject('');\n readonly contactMoments$: Observable<Array<TimelineItem>> = this.refetchContactMoments$.pipe(\n switchMap(() => this.contactMomentService.getContactMoments()),\n map(contactMoments =>\n contactMoments.map(contactMoment => {\n const registratieDatum = moment(contactMoment.registratiedatum);\n return new TimelineItemImpl(\n registratieDatum.format('DD MMM YYYY'),\n registratieDatum.format('HH:mm'),\n contactMoment.medewerkerIdentificatie.achternaam,\n contactMoment.kanaal,\n contactMoment.tekst,\n null\n );\n })\n )\n );\n\n readonly text$ = new BehaviorSubject<string>('');\n readonly channel$ = new BehaviorSubject<string>('MAIL');\n readonly requestData$: Observable<Array<string>> = combineLatest([this.text$, this.channel$]);\n readonly valid$: Observable<boolean> = this.requestData$.pipe(\n map(([text, channel]) => !!(text && channel))\n );\n readonly disabled$ = new BehaviorSubject<boolean>(false);\n\n constructor(\n private readonly contactMomentService: ContactMomentService,\n private readonly alertService: AlertService,\n private readonly translateService: TranslateService\n ) {}\n\n textChange(text: string): void {\n this.text$.next(text);\n }\n\n buttonClick(): void {\n this.modal.show();\n }\n\n saveNote(): void {\n this.disable();\n\n this.requestData$.pipe(take(1)).subscribe(([text, channel]) => {\n this.contactMomentService.saveContactMoment({kanaal: channel, tekst: text}).subscribe(\n () => {\n this.alertService.success(\n this.translateService.instant('dossier.contactMoments.saveSuccess')\n );\n this.enable();\n this.clear();\n this.modal.hide();\n this.refetchContactMoments();\n },\n () => {\n this.enable();\n }\n );\n });\n }\n\n private disable(): void {\n this.disabled$.next(true);\n }\n\n private enable(): void {\n this.disabled$.next(false);\n }\n\n private clear(): void {\n this.text$.next('');\n }\n\n private refetchContactMoments(): void {\n this.refetchContactMoments$.next('');\n }\n}\n","<!--\n ~ Copyright 2015-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div class=\"contact-moments-container\">\n <ng-container *ngTemplateOutlet=\"buttons\"></ng-container>\n <ng-container *ngTemplateOutlet=\"moments\"></ng-container>\n</div>\n\n<valtimo-modal\n #contactMomentsNoteModal\n [title]=\"'dossier.contactMoments.popupTitle' | translate\"\n [showFooter]=\"true\"\n [elementId]=\"'contact-moments-modal'\"\n>\n <div class=\"mt-2\" body>\n <ng-container *ngTemplateOutlet=\"body\"></ng-container>\n </div>\n <div footer>\n <ng-container *ngTemplateOutlet=\"footer\"></ng-container>\n </div>\n</valtimo-modal>\n\n<ng-template #body>\n <form>\n <div class=\"form-group row\">\n <label class=\"col-12 col-sm-3 col-form-label text-sm-right\" for=\"body\">\n {{ 'dossier.contactMoments.noteText' | translate }}\n </label>\n <div class=\"col-12 col-sm-8 col-lg-6\">\n <textarea\n [disabled]=\"disabled$ | async\"\n class=\"form-control\"\n id=\"body\"\n name=\"body\"\n [ngModel]=\"text$ | async\"\n (ngModelChange)=\"textChange($event)\"\n ></textarea>\n </div>\n </div>\n </form>\n</ng-template>\n\n<ng-template #footer>\n <button\n *ngIf=\"(disabled$ | async) === false; else loading\"\n class=\"btn btn-primary\"\n [disabled]=\"(valid$ | async) === false || (disabled$ | async)\"\n (click)=\"saveNote()\"\n >\n {{ 'dossier.contactMoments.saveButtonText' | translate }}\n </button>\n</ng-template>\n\n<ng-template #loading>\n <valtimo-spinner [noMarginTop]=\"true\"></valtimo-spinner>\n</ng-template>\n\n<ng-template #buttons>\n <div class=\"btn-group mt-m3px mb-3 button-container\">\n <button class=\"btn btn-primary btn-space\" (click)=\"buttonClick()\">\n <i class=\"icon mdi mdi-note-plus\"></i>\n &nbsp;{{ 'dossier.contactMoments.makeNoteButton' | translate }}\n </button>\n </div>\n</ng-template>\n\n<ng-template #moments>\n <div *ngIf=\"contactMoments$ | async as contactMoments; else loading\">\n <valtimo-timeline [items]=\"contactMoments\"></valtimo-timeline>\n </div>\n</ng-template>\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, ViewChild} from '@angular/core';\nimport {ActivatedRoute} from '@angular/router';\nimport {ZaakobjectenService} from '../../../services/zaakobjecten.service';\nimport {BehaviorSubject, combineLatest, map, Observable, of, switchMap} from 'rxjs';\nimport {ZaakObject, ZaakObjectType} from '../../../models';\nimport {ModalComponent, ModalService, SelectItem, TableColumn} from '@valtimo/user-interface';\nimport {take} from 'rxjs/operators';\nimport {FormioForm} from '@formio/angular';\n\n@Component({\n selector: 'valtimo-dossier-detail-tab-zaakobjecten',\n templateUrl: './zaakobjecten.component.html',\n styleUrls: ['./zaakobjecten.component.scss'],\n})\nexport class DossierDetailTabZaakobjectenComponent {\n @ViewChild('viewZaakobjectModal') viewZaakobjectModal: ModalComponent;\n\n private readonly documentId$ = this.route.params.pipe(map(params => params.documentId));\n\n private readonly objecttypes$: Observable<Array<ZaakObjectType>> = this.documentId$.pipe(\n switchMap(documentId => this.zaakobjectenService.getDocumentObjectTypes(documentId))\n );\n\n readonly objecttypeSelectItems$: Observable<Array<SelectItem>> = this.objecttypes$.pipe(\n map(objecttypes => objecttypes.map(type => ({id: type.url, text: type.name || '-'})))\n );\n\n readonly selectedObjecttypeUrl$ = new BehaviorSubject<string | null>(null);\n\n readonly objects$: Observable<Array<ZaakObject> | null> = combineLatest([\n this.documentId$,\n this.selectedObjecttypeUrl$,\n ]).pipe(\n switchMap(([documentId, selectedObjecttypeUrl]) =>\n documentId && selectedObjecttypeUrl\n ? this.zaakobjectenService\n .getDocumentObjectsOfType(documentId, selectedObjecttypeUrl)\n .pipe(map(objects => objects.map(object => ({...object, title: object.title || '-'}))))\n : of(null)\n )\n );\n\n readonly columns$ = new BehaviorSubject<Array<TableColumn>>([\n {\n labelTranslationKey: 'dossier.zaakobjecten.index',\n dataKey: 'index',\n },\n {\n labelTranslationKey: 'dossier.zaakobjecten.registrationAt',\n dataKey: 'registrationAt',\n },\n {\n labelTranslationKey: 'dossier.zaakobjecten.title',\n dataKey: 'title',\n },\n ]);\n\n readonly objectForm$ = new BehaviorSubject<FormioForm | null>(null);\n\n readonly objectName$ = new BehaviorSubject<string>('');\n\n readonly noFormDefinitionComponent$ = new BehaviorSubject<boolean>(false);\n\n constructor(\n private readonly route: ActivatedRoute,\n private readonly zaakobjectenService: ZaakobjectenService,\n private readonly modalService: ModalService\n ) {}\n\n selectObjectType(objectTypeUrl: string): void {\n this.selectedObjecttypeUrl$.next(objectTypeUrl);\n }\n\n rowClicked(object: ZaakObject, objectTypeSelectItems: Array<SelectItem>): void {\n this.documentId$.pipe(take(1)).subscribe(documentId => {\n this.zaakobjectenService.getObjectTypeForm(documentId, object.url).subscribe(\n res => {\n const definition = res.formDefinition;\n\n definition.components = definition.components.map(component => ({\n ...component,\n disabled: true,\n }));\n\n this.setModalData(objectTypeSelectItems, definition);\n },\n () => {\n this.setModalData(objectTypeSelectItems);\n }\n );\n });\n }\n\n hide(): void {\n this.modalService.closeModal(() => {\n this.objectName$.next('');\n this.objectForm$.next(null);\n });\n }\n\n private show(): void {\n this.modalService.openModal(this.viewZaakobjectModal);\n }\n\n private getObjectTypeName(objectTypeSelectItems: Array<SelectItem>): string {\n const selectedObjectTypeUrl = this.selectedObjecttypeUrl$.getValue();\n const currentTypeSelectItem = objectTypeSelectItems.find(\n selectItem => selectItem.id === selectedObjectTypeUrl\n );\n\n return currentTypeSelectItem.text;\n }\n\n private setModalData(objectTypeSelectItems: Array<SelectItem>, definition?: FormioForm): void {\n if (definition) {\n this.objectForm$.next(definition);\n this.noFormDefinitionComponent$.next(false);\n } else {\n this.noFormDefinitionComponent$.next(true);\n }\n\n this.objectName$.next(this.getObjectTypeName(objectTypeSelectItems));\n this.show();\n }\n}\n","<!--\n ~ Copyright 2015-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container\n *ngIf=\"{\n objecttypeSelectItems: objecttypeSelectItems$ | async,\n objects: objects$ | async,\n columns: columns$ | async,\n selectedObjectTypeUrl: selectedObjecttypeUrl$ | async\n } as obs\"\n>\n <v-select\n [items]=\"obs.objecttypeSelectItems\"\n [margin]=\"true\"\n [widthInPx]=\"350\"\n name=\"objecttypes\"\n [title]=\"'dossier.zaakobjecten.objecttype' | translate\"\n [placeholder]=\"'dossier.zaakobjecten.objecttypePlaceholder' | translate\"\n [loading]=\"!obs.objecttypeSelectItems\"\n (selectedChange)=\"selectObjectType($event)\"\n ></v-select>\n <v-input-label\n titleTranslationKey=\"dossier.zaakobjecten.objecten\"\n [largeMargin]=\"!!obs.selectedObjectTypeUrl\"\n ></v-input-label>\n <v-paragraph *ngIf=\"!obs.selectedObjectTypeUrl\">{{\n 'dossier.zaakobjecten.objectenPlaceholder' | translate\n }}</v-paragraph>\n <v-table\n *ngIf=\"obs.selectedObjectTypeUrl\"\n [loading]=\"!obs.objects\"\n [items]=\"obs.objects\"\n [columns]=\"obs.columns\"\n [showEditButtons]=\"true\"\n [amountOfLoadingRows]=\"2\"\n [itemsTranslationKey]=\"'pluginManagement.tableItemsText'\"\n [showPagination]=\"false\"\n editButtonTranslationKey=\"dossier.zaakobjecten.objectType.viewObject\"\n (editButtonClicked)=\"rowClicked($event, obs.objecttypeSelectItems)\"\n ></v-table>\n</ng-container>\n\n<v-modal #viewZaakobjectModal (closeEvent)=\"hide()\" [hideFooter]=\"true\" [maxWidthPx]=\"750\">\n <div role=\"header\">\n <v-title [margin]=\"false\" type=\"h2\" [fullWidth]=\"true\" [center]=\"true\">{{\n objectName$ | async\n }}</v-title>\n </div>\n\n <div role=\"content\">\n <valtimo-form-io\n *ngIf=\"(noFormDefinitionComponent$ | async) === false\"\n [form]=\"objectForm$ | async\"\n ></valtimo-form-io>\n <v-paragraph *ngIf=\"noFormDefinitionComponent$ | async\" [center]=\"true\">{{\n 'dossier.zaakobjecten.noFormDefinitionComponent' | translate\n }}</v-paragraph>\n </div>\n</v-modal>\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Injectable} from '@angular/core';\nimport {ConfigService, ConnectorModal, Page} from '@valtimo/config';\nimport {HttpClient} from '@angular/common/http';\nimport {BehaviorSubject, Observable, Subject} from 'rxjs';\nimport {Note, NoteCreateRequest, NoteUpdateRequest} from '../models/notes.model';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class NotesService {\n private readonly VALTIMO_API_ENDPOINT_URI = this.configService.config.valtimoApi.endpointUri;\n private readonly _showModal$ = new Subject();\n private readonly _hideModal$ = new Subject();\n private readonly _refresh$ = new BehaviorSubject<null>(null);\n private readonly _modalType$ = new BehaviorSubject<ConnectorModal>('add');\n\n constructor(private readonly configService: ConfigService, private readonly http: HttpClient) {}\n\n getDocumentNotes(documentId: string, params?: any): Observable<Page<Note>> {\n return this.http.get<Page<Note>>(\n `${this.VALTIMO_API_ENDPOINT_URI}v1/document/${documentId}/note`,\n {params}\n );\n }\n\n createDocumentNote(documentId: string, request: NoteCreateRequest): Observable<Note> {\n return this.http.post<Note>(\n `${this.VALTIMO_API_ENDPOINT_URI}v1/document/${documentId}/note`,\n request\n );\n }\n\n updateNote(noteId: string, request: NoteUpdateRequest): Observable<Note> {\n return this.http.put<Note>(`${this.VALTIMO_API_ENDPOINT_URI}v1/note/${noteId}`, request);\n }\n\n deleteNote(noteId: string): Observable<Note> {\n return this.http.delete<Note>(`${this.VALTIMO_API_ENDPOINT_URI}v1/note/${noteId}`);\n }\n\n get showModal$(): Observable<any> {\n return this._showModal$.asObservable();\n }\n\n get hideModal$(): Observable<any> {\n return this._hideModal$.asObservable();\n }\n\n get refresh$(): Observable<any> {\n return this._refresh$.asObservable();\n }\n\n get modalType$(): Observable<ConnectorModal> {\n return this._modalType$.asObservable();\n }\n\n showModal(): void {\n this._showModal$.next(null);\n }\n\n hideModal(): void {\n this._hideModal$.next(null);\n }\n\n refresh(): void {\n this._refresh$.next(null);\n }\n\n setModalType(type: ConnectorModal): void {\n this._modalType$.next(type);\n }\n}\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n AfterViewInit,\n Component,\n EventEmitter,\n Input,\n OnDestroy,\n Output,\n ViewChild,\n} from '@angular/core';\nimport {ModalComponent as vModalComponent, ModalService} from '@valtimo/user-interface';\nimport {BehaviorSubject, combineLatest, Observable, Subject, Subscription} from 'rxjs';\nimport {take} from 'rxjs/operators';\nimport {NotesService} from '../../services/notes.service';\n\n@Component({\n selector: 'valtimo-note-modal',\n templateUrl: './note-modal.component.html',\n styleUrls: ['./note-modal.component.scss'],\n})\nexport class NoteModalComponent implements AfterViewInit, OnDestroy {\n @ViewChild('noteModal') noteModal: vModalComponent;\n @Input() customData;\n @Output() createNoteEvent: EventEmitter<any> = new EventEmitter();\n @Output() editNoteEvent: EventEmitter<any> = new EventEmitter();\n\n readonly disabled$!: Observable<boolean>;\n readonly valid$ = new BehaviorSubject<boolean>(false);\n readonly showForm$: Observable<boolean> = this.modalService.modalVisible$;\n readonly formData$ = new BehaviorSubject<any>(null);\n readonly modalType$: Observable<string> = this.notesService.modalType$;\n\n showSubscription!: Subscription;\n hideSubscription!: Subscription;\n\n readonly returnToFirstStepSubject$ = new Subject<boolean>();\n\n constructor(\n private readonly notesService: NotesService,\n private readonly modalService: ModalService\n ) {}\n\n ngAfterViewInit(): void {\n this.openShowSubscription();\n this.openHideSubscription();\n }\n\n ngOnDestroy(): void {\n this.showSubscription?.unsubscribe();\n this.hideSubscription?.unsubscribe();\n }\n\n hide(): void {\n this.formData$.next(null);\n this.valid$.next(false);\n this.modalService.closeModal();\n }\n\n cancel(): void {\n this.hide();\n }\n\n save(): void {\n combineLatest([this.valid$, this.formData$])\n .pipe(take(1))\n .subscribe(([valid, formData]) => {\n if (valid) {\n this.createNoteEvent.emit(formData);\n }\n });\n }\n\n emitNoteData(): void {\n combineLatest([this.valid$, this.formData$, this.modalType$])\n .pipe(take(1))\n .subscribe(([valid, formData, modalType]) => {\n if (valid) {\n if (modalType === 'add') {\n this.createNoteEvent.emit(formData);\n } else {\n this.editNoteEvent.emit({formData, data: this.customData});\n }\n }\n });\n }\n\n private openShowSubscription(): void {\n this.showSubscription = this.notesService.showModal$.subscribe(() => {\n this.show();\n });\n }\n\n private openHideSubscription(): void {\n this.hideSubscription = this.notesService.hideModal$.subscribe(() => {\n this.hide();\n });\n }\n\n private show(): void {\n this.notesService.modalType$.pipe(take(1)).subscribe(() => {\n this.modalService.openModal(this.noteModal);\n });\n }\n\n formValueChange(data: any): void {\n this.formData$.next(data);\n this.setValid(data);\n }\n\n private setValid(data: any): void {\n this.valid$.next(!!data.content);\n }\n}\n","<!--\n ~ Copyright 2015-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<v-modal\n #noteModal\n *ngIf=\"{disabled: disabled$ | async, valid: valid$ | async, modalType: modalType$ | async} as obs\"\n>\n <div role=\"header\">\n <div class=\"add-note-title\">\n <v-title [margin]=\"false\">{{\n (obs.modalType === 'add' ? 'dossier.notes.addNote' : 'dossier.notes.modifyNote') | translate\n }}</v-title>\n </div>\n </div>\n <div role=\"content\">\n <ng-container *ngTemplateOutlet=\"form\"></ng-container>\n </div>\n <div role=\"footer\">\n <div class=\"buttons\">\n <v-button (clickEvent)=\"cancel()\" [disabled]=\"obs.disabled\" type=\"secondary\">\n {{ 'document.cancel' | translate }}\n </v-button>\n <ng-container\n *ngTemplateOutlet=\"\n obs.modalType === 'add' ? addNoteButton : editNoteButton;\n context: {obs: obs}\n \"\n ></ng-container>\n </div>\n </div>\n</v-modal>\n\n<ng-template #addNoteButton let-obs=\"obs\">\n <v-button\n (clickEvent)=\"emitNoteData()\"\n [disabled]=\"obs.disabled || !obs.valid\"\n mdiIcon=\"plus\"\n type=\"success\"\n >\n {{ 'dossier.notes.addNote' | translate }}\n </v-button>\n</ng-template>\n<ng-template #editNoteButton let-obs=\"obs\">\n <v-button\n [disabled]=\"obs.disabled || !obs.valid\"\n (clickEvent)=\"emitNoteData()\"\n mdiIcon=\"pencil\"\n type=\"success\"\n >\n {{ 'dossier.notes.modifyNote' | translate }}\n </v-button>\n</ng-template>\n\n<ng-template #form>\n <ng-container *ngIf=\"showForm$ | async\">\n <v-form (valueChange)=\"formValueChange($event)\">\n <v-input\n type=\"textarea\"\n [margin]=\"true\"\n [required]=\"true\"\n [title]=\"'dossier.notes.input.content' | translate\"\n name=\"content\"\n [fullWidth]=\"true\"\n [rows]=\"10\"\n [defaultValue]=\"customData?.summaryTranslationKey || ''\"\n >\n </v-input>\n </v-form>\n </ng-container>\n</ng-template>\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, OnInit} from '@angular/core';\nimport {NotesService} from '../../../services/notes.service';\nimport {BehaviorSubject, combineLatest, map, Observable} from 'rxjs';\nimport {Note} from '../../../models/notes.model';\nimport {switchMap, take, tap} from 'rxjs/operators';\nimport {ActivatedRoute} from '@angular/router';\nimport {Pagination, TimelineItem, TimelineItemImpl} from '@valtimo/components';\nimport {Page} from '@valtimo/config';\nimport moment from 'moment';\nimport {TranslateService} from '@ngx-translate/core';\nimport {PromptService} from '@valtimo/user-interface';\nimport {ToastrService} from 'ngx-toastr';\n\n@Component({\n selector: 'valtimo-dossier-detail-tab-notes',\n templateUrl: './notes.component.html',\n styleUrls: ['./notes.component.scss'],\n})\nexport class DossierDetailTabNotesComponent implements OnInit {\n public timelineItems: TimelineItem[] = [];\n public actions: any[] = [\n {\n label: 'Edit',\n icon: 'mdi-pencil',\n callback: this.editNote.bind(this),\n },\n {\n label: 'Delete',\n icon: 'mdi-delete',\n callback: this.deleteNote.bind(this),\n },\n ];\n readonly loading$ = new BehaviorSubject<boolean>(true);\n readonly fields$ = new BehaviorSubject<Array<{key: string; label: string}>>([]);\n readonly customData$ = new BehaviorSubject<object>({});\n private readonly documentId$ = this.route.params.pipe(map(params => params.documentId));\n\n readonly currentPageAndSize$ = new BehaviorSubject<Partial<Pagination>>({\n page: 0,\n size: 10,\n });\n\n readonly pageSizes$ = new BehaviorSubject<Partial<Pagination>>({\n collectionSize: 0,\n maxPaginationItemSize: 5,\n });\n\n readonly pagination$: Observable<Pagination> = combineLatest([\n this.currentPageAndSize$,\n this.pageSizes$,\n ]).pipe(\n map(\n ([currentPage, sizes]) =>\n ({...currentPage, ...sizes, page: currentPage.page + 1} as Pagination)\n )\n );\n\n readonly notes$: Observable<Array<Note>> = combineLatest([\n this.documentId$,\n this.currentPageAndSize$,\n this.notesService.refresh$,\n this.notesService.refresh$,\n ]).pipe(\n tap(() => (this.timelineItems = [])),\n switchMap(([documentId, currentPage]) =>\n this.notesService.getDocumentNotes(documentId, {\n page: currentPage.page,\n size: currentPage.size,\n })\n ),\n tap((res: Page<Note>) => {\n this.timelineItems = [];\n this.pageSizes$.pipe(take(1)).subscribe(sizes => {\n this.pageSizes$.next({...sizes, collectionSize: res.totalElements});\n });\n }),\n map(res =>\n res.content.map((note: Note) => {\n const noteCreatedDate = moment(note.createdDate).locale(this.translateService.currentLang);\n this.timelineItems.push(\n new TimelineItemImpl(\n noteCreatedDate.format('DD MMM YYYY'),\n noteCreatedDate.format('HH:mm'),\n note.createdByUserFullName,\n noteCreatedDate.fromNow(),\n note.content,\n {},\n {id: note.id}\n )\n );\n return {\n ...note,\n };\n })\n ),\n tap(() => this.loading$.next(false))\n );\n\n constructor(\n private readonly route: ActivatedRoute,\n private notesService: NotesService,\n private translateService: TranslateService,\n private promptService: PromptService,\n private toastrService: ToastrService\n ) {}\n\n ngOnInit() {\n this.translateService.onLangChange.subscribe(() => {\n this.notesService.refresh();\n });\n }\n\n paginationClicked(newPageNumber): void {\n this.currentPageAndSize$.pipe(take(1)).subscribe(currentPage => {\n this.currentPageAndSize$.next({...currentPage, page: newPageNumber - 1});\n });\n }\n\n showAddModal(): void {\n this.customData$.next(null);\n this.notesService.setModalType('add');\n this.notesService.showModal();\n }\n\n createNewNote(content) {\n this.documentId$\n .pipe(take(1))\n .pipe(\n tap(documentId => {\n this.notesService.createDocumentNote(documentId, content).subscribe(() => {\n this.notesService.refresh();\n this.notesService.hideModal();\n });\n })\n )\n .subscribe();\n }\n\n editNoteEvent(content) {\n this.notesService.updateNote(content.data.customData.id, content.formData).subscribe(() => {\n this.notesService.refresh();\n this.notesService.hideModal();\n this.toastrService.success(this.translateService.instant('dossier.notes.editedMessage'));\n });\n }\n\n editNote(data) {\n this.customData$.next(data);\n this.notesService.setModalType('modify');\n this.notesService.showModal();\n }\n\n deleteNote(data) {\n this.promptService.openPrompt({\n headerText: this.translateService.instant('dossier.notes.deleteConfirmation.title'),\n bodyText: this.translateService.instant('dossier.notes.deleteConfirmation.description'),\n cancelButtonText: this.translateService.instant('dossier.deleteConfirmation.cancel'),\n confirmButtonText: this.translateService.instant('dossier.deleteConfirmation.delete'),\n cancelMdiIcon: 'cancel',\n confirmMdiIcon: 'delete',\n cancelButtonType: 'secondary',\n confirmButtonType: 'primary',\n closeOnConfirm: true,\n closeOnCancel: true,\n confirmCallBackFunction: () => {\n this.notesService.deleteNote(data.customData.id).subscribe(() => {\n this.notesService.refresh();\n this.toastrService.success(\n this.translateService.instant('dossier.notes.deleteConfirmation.deletedMessage')\n );\n });\n },\n });\n }\n}\n","<!--\n ~ Copyright 2015-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n<div\n class=\"notes\"\n *ngIf=\"{\n notes: notes$ | async,\n pagination: pagination$ | async,\n loading: loading$ | async\n } as obs\"\n>\n <button\n class=\"btn btn-space btn-primary mr-1 add-note\"\n type=\"button\"\n aria-haspopup=\"true\"\n aria-expanded=\"false\"\n (click)=\"showAddModal()\"\n [disabled]=\"obs.loading\"\n >\n <span>{{ 'dossier.notes.addNote' | translate }}</span>\n <i class=\"ml-1 icon mdi mdi-plus\"></i>\n </button>\n\n <div *ngIf=\"timelineItems\">\n <valtimo-timeline [actions]=\"actions\" [items]=\"timelineItems\"></valtimo-timeline>\n </div>\n\n <valtimo-spinner\n [useBootstrapSpinner]=\"false\"\n name=\"auditSpinner\"\n bdColor=\"rgba(125, 125, 125, 0.35)\"\n color=\"#264251\"\n type=\"square-jelly-box\"\n >\n </valtimo-spinner>\n\n <div class=\"d-flex justify-content-end row mr-0 ml-0\" *ngIf=\"obs.pagination\">\n <ngb-pagination\n *ngIf=\"obs.pagination.collectionSize > obs.pagination.size\"\n [collectionSize]=\"obs.pagination.collectionSize\"\n [(page)]=\"obs.pagination.page\"\n [pageSize]=\"obs.pagination.size\"\n [maxSize]=\"obs.pagination.size\"\n [rotate]=\"true\"\n (pageChange)=\"paginationClicked($event)\"\n ></ngb-pagination>\n </div>\n</div>\n\n<valtimo-note-modal\n [customData]=\"customData$ | async\"\n (editNoteEvent)=\"editNoteEvent($event)\"\n (createNoteEvent)=\"createNewNote($event)\"\n></valtimo-note-modal>\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, OnInit} from '@angular/core';\nimport {TaskService} from '@valtimo/task';\nimport {ActivatedRoute} from '@angular/router';\nimport {ToastrService} from 'ngx-toastr';\nimport {Location} from '@angular/common';\nimport moment from 'moment';\nimport {DocumentService} from '@valtimo/document';\nimport {DossierService} from '../dossier.service';\n\nmoment.locale(localStorage.getItem('langKey') || '');\n\n@Component({\n selector: 'valtimo-dossier-update',\n templateUrl: './dossier-update.component.html',\n styleUrls: ['./dossier-update.component.css'],\n})\nexport class DossierUpdateComponent implements OnInit {\n public task: any;\n public taskId: string;\n public schema: any;\n public documentId: string;\n public document: any;\n public page: any;\n public documentDefinitionName: string;\n public implementationDefinitions: any;\n public customDefinitions: any = {};\n\n constructor(\n private taskService: TaskService,\n private documentService: DocumentService,\n private route: ActivatedRoute,\n private toastr: ToastrService,\n private location: Location,\n dossierService: DossierService\n ) {\n const snapshot = this.route.snapshot.paramMap;\n this.documentDefinitionName = snapshot.get('documentDefinitionName') || '';\n this.documentId = snapshot.get('documentId') || '';\n this.taskId = snapshot.get('taskId') || '';\n this.implementationDefinitions = dossierService.getImplementationEnvironmentDefinitions(\n this.documentDefinitionName\n );\n this.loadDocumentDefinition(this.documentDefinitionName);\n this.loadDocument(this.documentId);\n }\n\n ngOnInit() {\n this.getTask(this.taskId);\n if (this.implementationDefinitions.definitions.detail.summary) {\n this.customDefinitions = this.implementationDefinitions.definitions.detail.summary;\n }\n }\n\n private loadDocumentDefinition(name: string) {\n this.documentService.getDocumentDefinition(name).subscribe(definition => {\n this.schema = definition.schema;\n });\n }\n\n private loadDocument(id: string) {\n this.documentService.getDocument(id).subscribe(document => {\n this.document = document;\n });\n }\n\n public getTask(id: string) {\n this.taskService.getTask(id).subscribe(task => {\n this.task = task;\n this.task.task.created = moment(this.task.task.created).format('DD MMM YYYY HH:mm');\n this.page = {\n title: this.task.task.name,\n subtitle: `Created ${moment(this.task.task.created).fromNow()}`,\n };\n });\n }\n\n public reset() {\n this.loadDocument(this.documentId);\n }\n\n public back() {\n this.location.back();\n }\n\n public save() {\n const document = {\n documentId: this.document.id,\n content: this.document.content,\n versionBasedOn: this.document.version,\n };\n this.documentService.modifyDocument(document).subscribe(result => {\n this.document = result.document;\n this.toastr.success('Document aangepast');\n this.location.back();\n });\n }\n\n public submit(data: object) {\n // merge document content with formdata\n const mergedData = Object.assign({}, this.document.content, data);\n const documentData = {\n request: {\n documentId: this.document.id,\n content: mergedData,\n versionBasedOn: this.document.version,\n },\n taskId: this.task.task.id,\n };\n\n this.documentService.modifyDocumentAndCompleteTask(documentData).subscribe(result => {\n this.toastr.success(this.task.task.name + ' has successfully been completed');\n this.location.back();\n });\n }\n\n public returnZero() {\n return 0;\n }\n}\n","<!--\n ~ Copyright 2015-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div class=\"main-content\">\n <div class=\"container-fluid\">\n <div class=\"col-12 px-0 mb-5\">\n <valtimo-widget [title]=\"page?.title\" [subtitle]=\"page?.subtitle\" [divider]=\"true\">\n <div class=\"card-body\">\n <!--view with custom definitions-->\n <div *ngIf=\"this.customDefinitions\">\n <div\n class=\"mb-4\"\n *ngFor=\"let definition of this.customDefinitions | keyvalue : returnZero\"\n ></div>\n <div class=\"row pt-3 mt-1\">\n <div class=\"col-sm-12\">\n <div class=\"text-right\">\n <button\n class=\"btn btn-space btn-default float-left\"\n type=\"button\"\n (click)=\"back()\"\n id=\"back-button\"\n >\n Back\n </button>\n <button\n class=\"btn btn-space btn-secondary\"\n type=\"button\"\n (click)=\"reset()\"\n id=\"reset-button\"\n >\n Reset\n </button>\n <button\n class=\"btn btn-space btn-primary\"\n type=\"button\"\n (click)=\"save()\"\n id=\"save-button\"\n >\n Save\n </button>\n <button\n class=\"btn btn-space btn-primary\"\n type=\"submit\"\n (click)=\"submit({})\"\n id=\"submit-button\"\n >\n Submit\n </button>\n </div>\n </div>\n </div>\n </div>\n\n <valtimo-camunda-form\n *ngIf=\"task?.formFields && !this.customDefinitions\"\n (submitted)=\"submit($event)\"\n [formFields]=\"task.formFields\"\n [componentName]=\"task.formLocation\"\n ></valtimo-camunda-form>\n </div>\n </valtimo-widget>\n </div>\n </div>\n</div>\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {NgModule} from '@angular/core';\nimport {RouterModule, Routes} from '@angular/router';\nimport {CommonModule} from '@angular/common';\nimport {AuthGuardService} from '@valtimo/security';\nimport {DossierDetailComponent} from './dossier-detail/dossier-detail.component';\nimport {DossierUpdateComponent} from './dossier-update/dossier-update.component';\nimport {ROLE_USER} from '@valtimo/config';\nimport {DossierListComponent} from './dossier-list/dossier-list.component';\n\nconst routes: Routes = [\n {\n path: 'dossiers/:documentDefinitionName',\n component: DossierListComponent,\n canActivate: [AuthGuardService],\n data: {title: 'Dossiers', roles: [ROLE_USER], customPageTitle: true},\n },\n {\n path: 'dossiers/:documentDefinitionName/document/:documentId/:tab',\n component: DossierDetailComponent,\n canActivate: [AuthGuardService],\n data: {\n title: 'Dossier details',\n parentPath: 'dossiers/:documentDefinitionName',\n roles: [ROLE_USER],\n },\n },\n {\n path: 'dossiers/:documentDefinitionName/document/:documentId/:tab/tasks/:taskId',\n component: DossierUpdateComponent,\n canActivate: [AuthGuardService],\n data: {\n title: 'Task details',\n parentPath: 'dossiers/:documentDefinitionName/document/:documentId/:tab',\n roles: [ROLE_USER],\n },\n },\n];\n\n@NgModule({\n imports: [CommonModule, RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class DossierRoutingModule {}\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {ANALYZE_FOR_ENTRY_COMPONENTS, ModuleWithProviders, NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {DossierRoutingModule} from './dossier-routing.module';\nimport {DossierListComponent} from './dossier-list/dossier-list.component';\nimport {DossierService} from './dossier.service';\nimport {TAB_MAP} from './dossier.config';\nimport {ConfigModule, HttpLoaderFactory} from '@valtimo/config';\nimport {\n BpmnJsDiagramModule,\n CamundaFormModule,\n DataListModule,\n DocumentenApiMetadataModalModule,\n DropzoneModule,\n FilterSidebarModule,\n FormIoModule,\n ListModule,\n ModalModule,\n SearchableDropdownSelectModule,\n SearchFieldsModule,\n SpinnerModule,\n TimelineModule,\n UploaderModule,\n WidgetModule,\n} from '@valtimo/components';\nimport {DossierDetailComponent} from './dossier-detail/dossier-detail.component';\nimport {DossierDetailTabSummaryComponent} from './dossier-detail/tab/summary/summary.component';\nimport {DossierUpdateComponent} from './dossier-update/dossier-update.component';\nimport {DossierDetailTabProgressComponent} from './dossier-detail/tab/progress/progress.component';\nimport {ProcessModule} from '@valtimo/process';\nimport {DossierDetailTabAuditComponent} from './dossier-detail/tab/audit/audit.component';\nimport {DossierDetailTabContactMomentsComponent} from './dossier-detail/tab/contact-moments/contact-moments.component';\nimport {DossierDetailTabDocumentsComponent} from './dossier-detail/tab/documents/documents.component';\nimport {\n NgbButtonsModule,\n NgbModule,\n NgbPaginationModule,\n NgbTooltipModule,\n} from '@ng-bootstrap/ng-bootstrap';\nimport {DossierProcessStartModalComponent} from './dossier-process-start-modal/dossier-process-start-modal.component';\nimport {FormModule} from '@valtimo/form';\nimport {FormsModule} from '@angular/forms';\nimport {TranslateLoader, TranslateModule} from '@ngx-translate/core';\nimport {HttpClient} from '@angular/common/http';\nimport {TabService} from './tab.service';\nimport {TaskModule} from '@valtimo/task';\nimport {FormLinkModule} from '@valtimo/form-link';\nimport {DossierSupportingProcessStartModalComponent} from './dossier-supporting-process-start-modal/dossier-supporting-process-start-modal.component';\nimport {DossierDetailTabZaakobjectenComponent} from './dossier-detail/tab/zaakobjecten/zaakobjecten.component';\nimport {\n ButtonModule,\n FormModule as VFormModule,\n InputLabelModule,\n InputModule,\n ModalModule as VModalModule,\n PageModule,\n ParagraphModule,\n SelectModule,\n TableModule,\n TitleModule,\n} from '@valtimo/user-interface';\nimport {DossierDetailTabObjectTypeComponent} from './dossier-detail/tab/object-type/object-type.component';\nimport {DossierDetailTabDocumentenApiDocumentsComponent} from './dossier-detail/tab/documenten-api-documents/documenten-api-documents.component';\nimport {DossierDetailTabS3DocumentsComponent} from './dossier-detail/tab/s3-documents/s3-documents.component';\nimport {DossierAssignUserComponent} from './dossier-assign-user/dossier-assign-user.component';\nimport {DossierDetailTabNotesComponent} from './dossier-detail/tab/notes/notes.component';\nimport {NoteModalComponent} from './components/note-modal/note-modal.component';\nimport {\n ButtonModule as CarbonButtonModule,\n IconModule,\n LoadingModule,\n} from 'carbon-components-angular';\nimport {DossierListActionsComponent} from './dossier-list-actions/dossier-list-actions.component';\n\nexport type TabsFactory = () => Map<string, object>;\n\n@NgModule({\n declarations: [\n DossierListComponent,\n DossierListActionsComponent,\n DossierDetailComponent,\n DossierDetailTabSummaryComponent,\n DossierDetailTabProgressComponent,\n DossierDetailTabAuditComponent,\n DossierDetailTabDocumentsComponent,\n DossierDetailTabContactMomentsComponent,\n DossierDetailTabZaakobjectenComponent,\n DossierDetailTabNotesComponent,\n DossierUpdateComponent,\n DossierProcessStartModalComponent,\n DossierSupportingProcessStartModalComponent,\n DossierDetailTabObjectTypeComponent,\n DossierDetailTabDocumentenApiDocumentsComponent,\n DossierDetailTabS3DocumentsComponent,\n DossierAssignUserComponent,\n NoteModalComponent,\n ],\n imports: [\n CommonModule,\n DossierRoutingModule,\n ListModule,\n WidgetModule,\n BpmnJsDiagramModule,\n TimelineModule,\n CamundaFormModule,\n ProcessModule,\n FilterSidebarModule,\n NgbButtonsModule,\n DataListModule,\n FormsModule,\n FormModule,\n FormIoModule,\n ModalModule,\n SpinnerModule,\n TranslateModule.forRoot({\n loader: {\n provide: TranslateLoader,\n useFactory: HttpLoaderFactory,\n deps: [HttpClient],\n },\n }),\n TaskModule,\n ModalModule,\n NgbTooltipModule,\n UploaderModule,\n DropzoneModule,\n NgbPaginationModule,\n ConfigModule,\n SelectModule,\n InputLabelModule,\n ParagraphModule,\n TableModule,\n VModalModule,\n TitleModule,\n ButtonModule,\n DocumentenApiMetadataModalModule,\n SearchableDropdownSelectModule,\n SearchFieldsModule,\n PageModule,\n FormModule,\n InputModule,\n VFormModule,\n NgbModule,\n LoadingModule,\n CarbonButtonModule,\n IconModule,\n FormLinkModule,\n ],\n exports: [DossierListComponent, DossierDetailComponent],\n})\nexport class DossierModule {\n static forRoot(tabsFactory: TabsFactory): ModuleWithProviders<DossierModule> {\n return {\n ngModule: DossierModule,\n providers: [\n DossierService,\n TabService,\n {\n provide: TAB_MAP,\n useFactory: tabsFactory,\n },\n {\n provide: ANALYZE_FOR_ENTRY_COMPONENTS,\n useValue: Array.from(tabsFactory().values()),\n multi: true,\n },\n ],\n };\n }\n}\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*\n * Public API Surface of dossier\n */\n\nexport * from './lib/models';\nexport * from './lib/services';\nexport * from './lib/dossier-list/dossier-list.component';\nexport * from './lib/dossier-detail/dossier-detail.component';\nexport * from './lib/dossier-detail/tab/summary/summary.component';\nexport * from './lib/dossier-detail/tab/progress/progress.component';\nexport * from './lib/dossier-detail/tab/audit/audit.component';\nexport * from './lib/dossier-detail/tab/documents/documents.component';\nexport * from './lib/dossier-detail/tab/contact-moments/contact-moments.component';\nexport * from './lib/dossier-detail/tab/zaakobjecten/zaakobjecten.component';\nexport * from './lib/dossier-detail/tab/notes/notes.component';\nexport * from './lib/dossier.config';\nexport * from './lib/dossier.service';\nexport * from './lib/dossier.module';\nexport * from './lib/dossier-detail-tab-enum';\nexport * from './lib/tab.service';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i3","i2","i1","i1.DossierColumnService","i1.DossierListService","i4.DossierParameterService","i2.DossierParameterService","i3.DossierService","i3.DossierParameterService","take","i5","i6","i7","i8","i9","i3.DossierListService","i4","i6.DossierProcessStartModalComponent","i3.DossierColumnService","i3.DossierListAssigneeService","i3.DossierListPaginationService","i3.DossierListSearchService","i9.DossierListActionsComponent","i10","switchMap","map","tap","i9.FileSortService","i11","i8.FileSortService","i3.DossierDetailTabDocumentenApiDocumentsComponent","i4.DossierDetailTabS3DocumentsComponent","i2.ZaakobjectenService","i6.TabService","i12.DossierSupportingProcessStartModalComponent","i13.DossierAssignUserComponent","i1.NotesService","i2.NotesService","i9.NoteModalComponent","i6.DossierService","VModalModule","VFormModule","CarbonButtonModule"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;;;;;;;;;;;AAcG;MAiBU,aAAa,CAAA;IAUxB,WACE,CAAA,IAAe,EACf,wBAAkD,EAClD,gBAAkC,EAClC,gBAAkC,EAClC,MAAc,EACd,QAAkB,EAAA;QAfH,IAAK,CAAA,KAAA,GAAc,IAAI,CAAC;QACxB,IAAyB,CAAA,yBAAA,GAA6B,IAAI,CAAC;QAC3D,IAAiB,CAAA,iBAAA,GAAqB,IAAI,CAAC;QACpD,IAAgB,CAAA,gBAAA,GAAsB,IAAI,CAAC;QAC3C,IAAU,CAAA,UAAA,GAAY,IAAI,CAAC;QAC3B,IAAiB,CAAA,iBAAA,GAAqB,IAAI,CAAC;AAYjD,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;AAClB,QAAA,IAAI,CAAC,yBAAyB,GAAG,wBAAwB,CAAC;AAC1D,QAAA,IAAI,CAAC,iBAAiB,GAAG,gBAAgB,CAAC;AAC1C,QAAA,IAAI,CAAC,iBAAiB,GAAG,gBAAgB,CAAC;AAC1C,QAAA,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;AACtB,QAAA,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;KAC3B;AAED,IAAA,OAAO,CAAC,OAAgB,EAAA;AACtB,QAAA,IAAI,UAAU,CAAC;AACf,QAAA,IAAI,OAAO,EAAE;AACX,YAAA,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC;AAC3D,SAAA;AAAM,aAAA;YACL,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;AACpC,SAAA;AACD,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;KACvB;AAED,IAAA,IAAI,CAAC,MAAe,EAAA;AAClB,QAAA,IAAI,MAAM,KAAK,IAAI,CAAC,UAAU,EAAE;AAC9B,YAAA,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC;AAC5C,YAAA,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;AACzB,YAAA,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;AAC7B,YAAA,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;AACxB,SAAA;KACF;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;KACnC;AAEO,IAAA,WAAW,CAAC,GAAY,EAAA;AAC9B,QAAA,MAAM,gBAAgB,GAAG,IAAI,CAAC,yBAAyB,CAAC,uBAAuB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;AAC/F,QAAA,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,CAAC;AAC/B,QAAA,IAAI,IAAI,CAAC,UAAU,KAAK,IAAI,EAAE;AAC5B,YAAA,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC;AACjC,SAAA;QACD,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,gBAAgB,CAAC,CAAC;KAClF;AAEO,IAAA,eAAe,CAAC,GAAY,EAAA;AAClC,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC;AACpC,QAAA,MAAM,WAAW,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACnD,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACvC,QAAA,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;QAClD,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAElC,IAAI,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,WAAW,EAAE;YAC9C,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAG,EAAA,MAAM,CAAI,CAAA,EAAA,WAAW,CAAE,CAAA,CAAC,CAAC;AACxD,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;AACpC,SAAA;KACF;AAEO,IAAA,SAAS,CAAC,GAAY,EAAA;QAC5B,GAAG,CAAC,QAAQ,EAAE,CAAC;AACf,QAAA,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC;KACvB;AAED,IAAA,IAAI,IAAI,GAAA;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;KACnB;AAED,IAAA,gBAAgB,CAAC,GAAY,EAAA;AAC3B,QAAA,MAAM,aAAa,GAAG,eAAe,GAAG,GAAG,CAAC,IAAI,CAAC;AACjD,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,eAAe,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC;AAC/E,QAAA,OAAO,aAAa,KAAK,WAAW,GAAG,WAAW,GAAG,GAAG,CAAC,IAAI,CAAC;KAC/D;AACF,CAAA;MAcY,OAAO,CAAA;AAMlB,IAAA,WAAA,CAAY,IAAY,EAAE,QAAgB,EAAE,SAAc,EAAA;QAFlD,IAAO,CAAA,OAAA,GAAG,KAAK,CAAC;AAGtB,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;AAClB,QAAA,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;AAC1B,QAAA,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;KAC7B;AAED,IAAA,IAAI,IAAI,GAAA;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;KACnB;AAED,IAAA,IAAI,QAAQ,GAAA;QACV,OAAO,IAAI,CAAC,SAAS,CAAC;KACvB;AAED,IAAA,IAAI,SAAS,GAAA;QACX,OAAO,IAAI,CAAC,UAAU,CAAC;KACxB;IAED,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;KACrB;IAED,UAAU,GAAA;AACR,QAAA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;KACtB;IAED,QAAQ,GAAA;QACN,OAAO,IAAI,CAAC,OAAO,CAAC;KACrB;AACF;;ACtKD;;;;;;;;;;;;;;AAcG;;ACdH;;;;;;;;;;;;;;AAcG;;ACdH;;;;;;;;;;;;;;AAcG;;ACdH;;;;;;;;;;;;;;AAcG;;ACdH;;;;;;;;;;;;;;AAcG;MAUU,oBAAoB,CAAA;AAC/B,IAAA,WAAA,CACmB,aAA4B,EAC5B,eAAgC,EAChC,gBAAkC,EAAA;QAFlC,IAAa,CAAA,aAAA,GAAb,aAAa,CAAe;QAC5B,IAAe,CAAA,eAAA,GAAf,eAAe,CAAiB;QAChC,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAkB;KACjD;AAEJ,IAAA,oBAAoB,CAClB,sBAA8B,EAAA;AAE9B,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;QACzC,MAAM,qBAAqB,GAAG,MAAM,CAAC,sBAAsB,CAAC,sBAAsB,CAAC,CAAC;AACpF,QAAA,MAAM,sBAAsB,GAAG,MAAM,CAAC,sBAAsB,CAAC;AAE7D,QAAA,OAAO,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,sBAAsB,CAAC,CAAC,IAAI,CAClE,GAAG,CAAC,eAAe,IAAG;AACpB,YAAA,MAAM,kBAAkB,GACtB,MAAM,EAAE,cAAc,EAAE,cAAc;gBACtC,eAAe;AACf,gBAAA,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC;gBAC9B,eAAe,CAAC,MAAM,GAAG,CAAC;AAC1B,gBAAA,IAAI,CAAC,qCAAqC,CAAC,eAAe,CAAC,CAAC;YAE9D,OAAO;AACL,gBAAA,OAAO,EAAE,qBAAqB,IAAI,kBAAkB,IAAI,sBAAsB;gBAC9E,YAAY,EAAE,CAAC,CAAC,kBAAkB;aACnC,CAAC;SACH,CAAC,CACH,CAAC;KACH;AAED,IAAA,oBAAoB,CAAC,sBAA8B,EAAA;AACjD,QAAA,OAAO,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,sBAAsB,CAAC,sBAAsB,CAAC,CAAC;KACpF;IAED,gCAAgC,CAC9B,OAAgC,EAChC,YAAqB,EAAA;AAErB,QAAA,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,IAAG;AAC1B,YAAA,MAAM,cAAc,GAAG,CAAA,YAAA,EAAe,MAAM,CAAC,cAAc,EAAE,CAAC;YAC9D,MAAM,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;AAClE,YAAA,MAAM,gBAAgB,GAAG,WAAW,KAAK,cAAc,IAAI,WAAW,CAAC;YACvE,OAAO;AACL,gBAAA,GAAG,EAAE,YAAY,GAAG,MAAM,CAAC,YAAY,GAAG,MAAM,CAAC,cAAc;gBAC/D,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,gBAAgB,IAAI,MAAM,CAAC,cAAc;gBAChE,QAAQ,EAAE,MAAM,CAAC,QAAQ;AACzB,gBAAA,IAAI,MAAM,CAAC,QAAQ,IAAI,EAAC,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAC,CAAC;AACnD,gBAAA,IAAI,MAAM,CAAC,IAAI,IAAI,EAAC,IAAI,EAAE,MAAM,CAAC,IAAI,EAAC,CAAC;AACvC,gBAAA,IAAI,MAAM,CAAC,MAAM,IAAI,EAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAC,CAAC;AAC7C,gBAAA,IAAI,MAAM,CAAC,OAAO,IAAI,EAAC,OAAO,EAAE,MAAM,CAAC,OAAO,EAAC,CAAC;aACjD,CAAC;AACJ,SAAC,CAAC,CAAC;KACJ;AAEO,IAAA,qCAAqC,CAC3C,eAAsC,EAAA;QAEtC,OAAO,eAAe,CAAC,GAAG,CAAC,cAAc,KAAK;YAC5C,cAAc,EAAE,cAAc,CAAC,GAAG;YAClC,QAAQ,EAAE,cAAc,CAAC,QAAQ;YACjC,OAAO,EAAE,cAAc,CAAC,WAAW;YACnC,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,WAAW,CAAC,IAAI,CAAC;YAC3D,YAAY,EAAE,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,IAAI,CAAC;AACvD,YAAA,IAAI,cAAc,CAAC,KAAK,IAAI,EAAC,KAAK,EAAE,cAAc,CAAC,KAAK,EAAC,CAAC;YAC1D,IAAI,cAAc,EAAE,WAAW,EAAE,qBAAqB,EAAE,IAAI,IAAI;AAC9D,gBAAA,IAAI,EAAE,cAAc,CAAC,WAAW,CAAC,qBAAqB,CAAC,IAAW;aACnE,CAAC;YACF,IAAI,cAAc,CAAC,WAAW,EAAE,qBAAqB,EAAE,UAAU,IAAI;AACnE,gBAAA,MAAM,EAAE,cAAc,CAAC,WAAW,EAAE,qBAAqB,EAAE,UAAU;aACtE,CAAC;AACH,SAAA,CAAC,CAAC,CAAC;KACL;AAEO,IAAA,WAAW,CAAC,yBAAiC,EAAA;AACnD,QAAA,QAAQ,yBAAyB;AAC/B,YAAA,KAAK,YAAY;AACf,gBAAA,OAAO,cAAc,CAAC;gBACtB,MAAM;AACR,YAAA,KAAK,qBAAqB;AACxB,gBAAA,OAAO,yBAAyB,CAAC;AACnC,YAAA;AACE,gBAAA,OAAO,yBAAyB,CAAC;gBACjC,MAAM;AACT,SAAA;KACF;AAEO,IAAA,eAAe,CAAC,kBAA0B,EAAA;AAChD,QAAA,OAAO,kBAAkB,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;KACtE;;iHAzFU,oBAAoB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,aAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,eAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,EAAA,CAAA,gBAAA,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;;;ACvBX;;;;;;;;;;;;;;AAcG;MAWU,mBAAmB,CAAA;IAG9B,WAA6B,CAAA,aAA4B,EAAmB,IAAgB,EAAA;QAA/D,IAAa,CAAA,aAAA,GAAb,aAAa,CAAe;QAAmB,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAY;QAF3E,IAAwB,CAAA,wBAAA,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC;KAEG;AAEhG,IAAA,sBAAsB,CAAC,UAAkB,EAAA;AACvC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAClB,CAAA,EAAG,IAAI,CAAC,wBAAwB,CAAA,YAAA,EAAe,UAAU,CAAA,gBAAA,CAAkB,CAC5E,CAAC;KACH;IAED,wBAAwB,CAAC,UAAkB,EAAE,OAAe,EAAA;AAC1D,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAClB,CAAG,EAAA,IAAI,CAAC,wBAAwB,eAAe,UAAU,CAAA,qBAAA,EAAwB,OAAO,CAAA,CAAE,CAC3F,CAAC;KACH;IAED,iBAAiB,CAAC,UAAkB,EAAE,SAAiB,EAAA;AACrD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAClB,CAAG,EAAA,IAAI,CAAC,wBAAwB,eAAe,UAAU,CAAA,4BAAA,EAA+B,SAAS,CAAA,CAAE,CACpG,CAAC;KACH;;gHArBU,mBAAmB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,aAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,IAAA,CAAA,UAAA,EAAA,CAAA,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,cAFlB,MAAM,EAAA,CAAA,CAAA;2FAEP,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAH/B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;ACxBD;;;;;;;;;;;;;;AAcG;MAkBU,uBAAuB,CAAA;IAyElC,WAA6B,CAAA,MAAc,EAAmB,KAAqB,EAAA;QAAtD,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;QAAmB,IAAK,CAAA,KAAA,GAAL,KAAK,CAAgB;AAxElE,QAAA,IAAA,CAAA,mBAAmB,GAAG,IAAI,eAAe,CAAoB,SAAS,CAAC,CAAC;AACxE,QAAA,IAAA,CAAA,mBAAmB,GAAG,IAAI,eAAe,CAAoB,EAAE,CAAC,CAAC;QAwEhF,IAAI,CAAC,oBAAoB,EAAE,CAAC;KAC7B;AAvED,IAAA,IAAI,kBAAkB,GAAA;AACpB,QAAA,OAAO,IAAI,CAAC,mBAAmB,CAAC,YAAY,EAAE,CAAC;KAChD;AAED,IAAA,IAAI,kBAAkB,GAAA;AACpB,QAAA,OAAO,IAAI,CAAC,mBAAmB,CAAC,YAAY,EAAE,CAAC;KAChD;AAED,IAAA,IAAI,kBAAkB,GAAA;AACpB,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAChC,GAAG,CAAC,MAAM,IAAG;YACX,IAAI,MAAM,CAAC,MAAM,EAAE;gBACjB,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAsB,CAAC;AAC7D,aAAA;AACD,YAAA,OAAO,EAAE,CAAC;SACX,CAAC,EACF,oBAAoB,CAClB,CAAC,UAAU,EAAE,UAAU,KAAK,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CACtF,CACF,CAAC;KACH;AAED,IAAA,IAAI,sBAAsB,GAAA;AACxB,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAChC,GAAG,CAAC,MAAM,IAAG;AACX,YAAA,MAAM,UAAU,GAAG,EAAC,GAAG,MAAM,EAA6B,CAAC;YAE3D,IAAI,UAAU,CAAC,MAAM,EAAE;gBACrB,OAAO,UAAU,CAAC,MAAM,CAAC;AAC1B,aAAA;YAED,OAAO,UAAU,CAAC,cAAc;AAC9B,kBAAE;AACE,oBAAA,cAAc,EAAE,MAAM,CAAC,UAAU,CAAC,cAAc,CAAC;AACjD,oBAAA,IAAI,EAAE,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC;AAC7B,oBAAA,IAAI,EAAE,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC;AAC7B,oBAAA,qBAAqB,EAAE,MAAM,CAAC,UAAU,CAAC,qBAAqB,CAAC;AAC/D,oBAAA,IAAI,UAAU,CAAC,SAAS,KAAK,MAAM,IAAI;AACrC,wBAAA,IAAI,EAAE;4BACJ,SAAS,EAAE,CAAC,EAAE,UAAU,CAAC,SAAS,KAAK,MAAM,CAAC;AAC9C,4BAAA,KAAK,EAAE;gCACL,IAAI,EAAE,UAAU,CAAC,aAAa;gCAC9B,SAAS,EAAE,UAAU,CAAC,kBAA+B;AACtD,6BAAA;AACF,yBAAA;qBACF,CAAC;AACH,iBAAA;kBACD,IAAI,CAAC;SACV,CAAC,EACF,oBAAoB,CAClB,CAAC,UAAU,EAAE,UAAU,KAAK,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CACtF,CACF,CAAC;KACH;AAED,IAAA,IAAI,mBAAmB,GAAA;AACrB,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAChC,GAAG,CAAC,MAAM,IAAG;YACX,IAAI,MAAM,EAAE,QAAQ,EAAE;AACpB,gBAAA,OAAO,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC;AACxC,aAAA;AACD,YAAA,OAAO,EAAE,CAAC;AACZ,SAAC,CAAC,EACF,oBAAoB,CAAC,CAAC,UAAU,EAAE,UAAU,KAAK,UAAU,KAAK,UAAU,CAAC,CAC5E,CAAC;KACH;IAQD,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,6BAA6B,EAAE,WAAW,EAAE,CAAC;KACnD;AAED,IAAA,oBAAoB,CAAC,iBAAoC,EAAA;AACvD,QAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;KAClD;AAED,IAAA,mBAAmB,CAAC,gBAAmC,EAAA;AACrD,QAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,iBAAiB,IAAG;AACnE,YAAA,IAAI,MAAM,CAAC,IAAI,CAAC,gBAAgB,IAAI,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;AAClD,gBAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC;AAC5B,oBAAA,GAAG,iBAAiB;AACpB,oBAAA,MAAM,EAAE,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC;AAC9C,iBAAA,CAAC,CAAC;AACJ,aAAA;AAAM,iBAAA;gBACL,IAAI,iBAAiB,EAAE,MAAM,EAAE;oBAC7B,OAAO,iBAAiB,CAAC,MAAM,CAAC;AACjC,iBAAA;AACD,gBAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;AAClD,aAAA;AACH,SAAC,CAAC,CAAC;KACJ;AAED,IAAA,uBAAuB,CAAC,UAAsB,EAAA;AAC5C,QAAA,IAAI,UAAU,EAAE;AACd,YAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,iBAAiB,IAAG;AACnE,gBAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC;AAC5B,oBAAA,GAAG,iBAAiB;AACpB,oBAAA,IAAI,EAAE,CAAA,EAAG,UAAU,CAAC,IAAI,CAAE,CAAA;AAC1B,oBAAA,cAAc,EAAE,CAAA,EAAG,UAAU,CAAC,cAAc,CAAE,CAAA;AAC9C,oBAAA,IAAI,EAAE,CAAA,EAAG,UAAU,CAAC,IAAI,CAAE,CAAA;AAC1B,oBAAA,qBAAqB,EAAE,CAAA,EAAG,UAAU,CAAC,qBAAqB,CAAE,CAAA;AAC5D,oBAAA,SAAS,EAAE,UAAU,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM,GAAG,OAAO;oBACxD,IAAI,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,IAAI,EAAC,aAAa,EAAE,CAAG,EAAA,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAE,CAAA,EAAC,CAAC;oBACtF,IAAI,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,SAAS,IAAI;wBACvC,kBAAkB,EAAE,GAAG,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAE,CAAA;qBAC1D,CAAC;AACH,iBAAA,CAAC,CAAC;AACL,aAAC,CAAC,CAAC;AACJ,SAAA;KACF;AAED,IAAA,oBAAoB,CAAC,cAA8B,EAAA;AACjD,QAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,iBAAiB,IAAG;AACnE,YAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC;AAC5B,gBAAA,GAAG,iBAAiB;AACpB,gBAAA,QAAQ,EAAE,cAAc,CAAC,WAAW,EAAE;AACvC,aAAA,CAAC,CAAC;AACL,SAAC,CAAC,CAAC;KACJ;IAED,sBAAsB,GAAA;AACpB,QAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;KACnC;IAED,eAAe,GAAA;AACb,QAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AACzC,QAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC,CAAC,CAAC;KACpD;IAEO,iCAAiC,GAAA;QACvC,IAAI,CAAC,6BAA6B,GAAG,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,aAAa,IAAG;AACrF,YAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC,EAAE,EAAC,WAAW,EAAE,aAAa,EAAC,CAAC,CAAC;AACnF,SAAC,CAAC,CAAC;KACJ;AAEO,IAAA,cAAc,CAAC,QAAgB,EAAA;QACrC,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;KACvC;IAEO,mBAAmB,GAAA;AACzB,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AACtD,QAAA,OAAO,CAAC,WAAW,GAAG,EAAE,CAAC;AACzB,QAAA,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;AACxB,QAAA,OAAO,OAAO,CAAC,QAAQ,EAAE,CAAC;KAC3B;IAEO,oBAAoB,GAAA;AAC1B,QAAA,aAAa,CAAC,CAAC,IAAI,CAAC,sBAAsB,EAAE,IAAI,CAAC,kBAAkB,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC;AAC5F,aAAA,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;aACb,SAAS,CAAC,CAAC,CAAC,gBAAgB,EAAE,YAAY,EAAE,cAAc,CAAC,KAAI;AAC9D,YAAA,IAAI,gBAAgB,EAAE;AACpB,gBAAA,IAAI,CAAC,uBAAuB,CAAC,gBAAgB,CAAC,CAAC;AAChD,aAAA;AACD,YAAA,IAAI,YAAY,EAAE;AAChB,gBAAA,IAAI,CAAC,mBAAmB,CAAC,YAAY,CAAC,CAAC;AACvC,gBAAA,IAAI,CAAC,oBAAoB,CAAC,YAAY,CAAC,CAAC;AACzC,aAAA;AACD,YAAA,IAAI,cAAc,EAAE;AAClB,gBAAA,IAAI,CAAC,oBAAoB,CAAC,cAAc,CAAC,CAAC;AAC3C,aAAA;YAED,IAAI,CAAC,iCAAiC,EAAE,CAAC;AAC3C,SAAC,CAAC,CAAC;KACN;;oHA5KU,uBAAuB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,IAAA,CAAA,MAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,cAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;wHAAvB,uBAAuB,EAAA,CAAA,CAAA;2FAAvB,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBADnC,UAAU;;;AC/BX;;;;;;;;;;;;;;AAcG;MASU,eAAe,CAAA;AAC1B,IAAA,WAAA,CAA6B,aAA4B,EAAA;QAA5B,IAAa,CAAA,aAAA,GAAb,aAAa,CAAe;KAAI;AAE7D,IAAA,gCAAgC,CAAC,YAAgC,EAAA;QAC/D,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,cAAc,EAAE,eAAe,CAAC;AAE9E,QAAA,IAAI,UAAU,EAAE;AACd,YAAA,OAAO,YAAY,CAAC,IAAI,CACtB,CAAC,CAAC,EAAE,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CAC5E,CAAC;AACH,SAAA;AAED,QAAA,OAAO,YAAY,CAAC;KACrB;;4GAbU,eAAe,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,aAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAf,eAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,cAFd,MAAM,EAAA,CAAA,CAAA;2FAEP,eAAe,EAAA,UAAA,EAAA,CAAA;kBAH3B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;ACtBD;;;;;;;;;;;;;;AAcG;MAQU,kBAAkB,CAAA;AAiB7B,IAAA,WAAA,CAA6B,oBAA0C,EAAA;QAA1C,IAAoB,CAAA,oBAAA,GAApB,oBAAoB,CAAsB;AAhBtD,QAAA,IAAA,CAAA,wBAAwB,GAAG,IAAI,eAAe,CAAS,EAAE,CAAC,CAAC;QAE3D,IAAoB,CAAA,oBAAA,GAAwB,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAC5F,GAAG,CAAC,sBAAsB,IACxB,IAAI,CAAC,oBAAoB,CAAC,oBAAoB,CAAC,sBAAsB,CAAC,CACvE,CACF,CAAC;KAUyE;AAR3E,IAAA,IAAI,uBAAuB,GAAA;AACzB,QAAA,OAAO,IAAI,CAAC,wBAAwB,CAAC,YAAY,EAAE,CAAC;KACrD;AAED,IAAA,IAAI,mBAAmB,GAAA;QACrB,OAAO,IAAI,CAAC,oBAAoB,CAAC;KAClC;AAID,IAAA,yBAAyB,CAAC,sBAA8B,EAAA;AACtD,QAAA,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;KAC5D;AAED,IAAA,YAAY,CACV,SAAyC,EACzC,kBAA2B,EAC3B,kBAA2B,EAAA;AAE3B,QAAA,IAAI,kBAAkB,IAAI,CAAC,kBAAkB,EAAE;YAC7C,OAAQ,SAAuB,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAG;gBACrD,MAAM,EAAC,OAAO,EAAE,GAAG,MAAM,EAAC,GAAG,QAAQ,CAAC;AACtC,gBAAA,OAAO,EAAC,GAAG,OAAO,EAAE,GAAG,MAAM,EAAC,CAAC;AACjC,aAAC,CAAC,CAAC;AACJ,SAAA;QAED,OAAQ,SAAgC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,KAAI;YACpE,MAAM,WAAW,GAAG,EAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAC,CAAC;AAClC,YAAA,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,IAAG;gBACzB,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;AACrC,aAAC,CAAC,CAAC;AACH,YAAA,OAAO,CAAC,GAAG,GAAG,EAAE,WAAW,CAAC,CAAC;SAC9B,EAAE,EAAE,CAAC,CAAC;KACR;;+GA1CU,kBAAkB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,oBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;mHAAlB,kBAAkB,EAAA,CAAA,CAAA;2FAAlB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAD9B,UAAU;;;ACrBX;;;;;;;;;;;;;;AAcG;MAYU,0BAA0B,CAAA;AAoBrC,IAAA,WAAA,CACmB,kBAAsC,EACtC,eAAgC,EAChC,gBAAkC,EAClC,uBAAgD,EAAA;QAHhD,IAAkB,CAAA,kBAAA,GAAlB,kBAAkB,CAAoB;QACtC,IAAe,CAAA,eAAA,GAAf,eAAe,CAAiB;QAChC,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAkB;QAClC,IAAuB,CAAA,uBAAA,GAAvB,uBAAuB,CAAyB;QAvBlD,IAAY,CAAA,YAAA,GAAG,kBAAkB,CAAC;QAClC,IAAqB,CAAA,qBAAA,GAAmB,KAAK,CAAC;AAEtD,QAAA,IAAA,CAAA,gBAAgB,GACvB,IAAI,CAAC,kBAAkB,CAAC,uBAAuB,CAAC,IAAI,CAClD,SAAS,CAAC,sBAAsB,IAC9B,IAAI,CAAC,eAAe,CAAC,eAAe,CAAC,sBAAsB,CAAC,CAC7D,EACD,GAAG,CAAC,YAAY,IAAI,YAAY,EAAE,eAAe,CAAC,CACnD,CAAC;QAEa,IAAgB,CAAA,gBAAA,GAAG,IAAI,eAAe,CACrD,IAAI,CAAC,qBAAqB,CAC3B,CAAC;KAWE;AATJ,IAAA,IAAI,eAAe,GAAA;AACjB,QAAA,OAAO,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE,CAAC;KAC7C;IASD,mBAAmB,GAAA;AACjB,QAAA,IAAI,CAAC,uBAAuB,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,aAAa,IAAG;AACvF,YAAA,IAAI,aAAa,EAAE;AACjB,gBAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;AAC1C,gBAAA,IAAI,CAAC,uBAAuB,CAAC,oBAAoB,CAAC,aAAa,CAAC,CAAC;AAClE,aAAA;AAAM,iBAAA;gBACL,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;gBACvD,IAAI,CAAC,uBAAuB,CAAC,oBAAoB,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;AAC/E,aAAA;AACH,SAAC,CAAC,CAAC;KACJ;AAED,IAAA,iBAAiB,CAAC,cAA8B,EAAA;AAC9C,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;AAC3C,QAAA,IAAI,CAAC,uBAAuB,CAAC,oBAAoB,CAAC,cAAc,CAAC,CAAC;KACnE;IAED,qBAAqB,CACnB,OAAgC,EAChC,eAAwB,EAAA;AAExB,QAAA,OAAO,OAAO,CAAC,MAAM,CAAC,MAAM,IAAG;YAC7B,IAAI,MAAM,EAAE,GAAG,KAAK,IAAI,CAAC,YAAY,IAAI,CAAC,eAAe,EAAE;AACzD,gBAAA,OAAO,KAAK,CAAC;AACd,aAAA;AACD,YAAA,OAAO,IAAI,CAAC;AACd,SAAC,CAAC,CAAC;KACJ;AAED,IAAA,oBAAoB,CAClB,OAAgC,EAChC,UAA4B,EAC5B,eAAwB,EAAA;QAExB,OAAO;AACL,YAAA,GAAG,UAAU;AACb,YAAA,IAAI,eAAe,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,YAAY,KAAK,IAAI,CAAC,YAAY,CAAC;AACvF,kBAAE;AACE,oBAAA;wBACE,GAAG,EAAE,IAAI,CAAC,YAAY;AACtB,wBAAA,KAAK,EAAE,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAA,YAAA,EAAe,IAAI,CAAC,YAAY,CAAA,CAAE,CAAC;AACxE,wBAAA,QAAQ,EAAE,IAAI;AACd,wBAAA,QAAQ,EAAE,QAAQ;AACnB,qBAAA;AACF,iBAAA;kBACD,EAAE,CAAC;SACR,CAAC;KACH;;uHA1EU,0BAA0B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,kBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,eAAA,EAAA,EAAA,EAAA,KAAA,EAAAJ,EAAA,CAAA,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAAK,uBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;2HAA1B,0BAA0B,EAAA,CAAA,CAAA;2FAA1B,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBADtC,UAAU;;;ACzBX;;;;;;;;;;;;;;AAcG;MASU,cAAc,CAAA;AAGzB,IAAA,WAAA,CAA6B,aAA4B,EAAA;QAA5B,IAAa,CAAA,aAAA,GAAb,aAAa,CAAe;QACvD,IAAI,CAAC,WAAW,GAAG,aAAa,CAAC,MAAM,CAAC,WAAW,CAAC;KACrD;AAED,IAAA,uCAAuC,CAAC,IAAY,EAAA;AAClD,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,IAAI,UAAU,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;KAC/E;AAED,IAAA,mBAAmB,CAAC,OAAgC,EAAA;AAClD,QAAA,MAAM,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC;AAC7D,QAAA,MAAM,SAAS,GAAG,aAAa,EAAE,OAAO,KAAK,KAAK,IAAI,aAAa,EAAE,OAAO,KAAK,MAAM,CAAC;QACxF,MAAM,SAAS,GACb,OAAO,CAAC,aAAa,IAAI,aAAa,CAAC,OAAO,KAAK,SAAS;AAC1D,cAAE,MAAM;AACR,cAAG,aAAa,CAAC,OAA4B,CAAC;QAElD,OAAO;YACL,SAAS;AACT,YAAA,KAAK,EAAE;AACL,gBAAA,IAAI,EAAE,aAAa,GAAG,aAAa,CAAC,YAAY,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY;gBAC1E,SAAS;AACV,aAAA;SACF,CAAC;KACH;;2GA1BU,cAAc,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,aAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAd,cAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,cAFb,MAAM,EAAA,CAAA,CAAA;2FAEP,cAAc,EAAA,UAAA,EAAA,CAAA;kBAH1B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;ACtBD;;;;;;;;;;;;;;AAcG;MAYU,4BAA4B,CAAA;AAqBvC,IAAA,WAAA,CACmB,MAAiB,EACjB,uBAAgD,EAChD,cAA8B,EAAA;QAF9B,IAAM,CAAA,MAAA,GAAN,MAAM,CAAW;QACjB,IAAuB,CAAA,uBAAA,GAAvB,uBAAuB,CAAyB;QAChD,IAAc,CAAA,cAAA,GAAd,cAAc,CAAgB;AAvBhC,QAAA,IAAA,CAAA,kBAAkB,GAAe;AAChD,YAAA,cAAc,EAAE,CAAC;AACjB,YAAA,IAAI,EAAE,CAAC;AACP,YAAA,IAAI,EAAE,EAAE;AACR,YAAA,qBAAqB,EAAE,CAAC;AACxB,YAAA,IAAI,EAAE,SAAS;SAChB,CAAC;AAEe,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,eAAe,CAAyB,SAAS,CAAC,CAAC;QAEtE,IAAgB,CAAA,gBAAA,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CACxD,MAAM,CAAC,UAAU,IAAI,CAAC,CAAC,UAAU,CAAC,EAClC,GAAG,CAAC,UAAU,IAAI,UAAU,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,EACvE,GAAG,CAAC,UAAU,IAAI,IAAI,CAAC,uBAAuB,CAAC,uBAAuB,CAAC,UAAU,CAAC,CAAC,CACpF,CAAC;KAUE;AARJ,IAAA,IAAI,WAAW,GAAA;QACb,OAAO,IAAI,CAAC,gBAAgB,CAAC;KAC9B;AAQD,IAAA,UAAU,CAAC,OAAe,EAAA;AACxB,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,IAAG;AACrD,YAAA,IAAI,UAAU,IAAI,UAAU,CAAC,IAAI,KAAK,OAAO,EAAE;gBAC7C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAgB,aAAA,EAAA,OAAO,CAAE,CAAA,CAAC,CAAC;AAC7C,gBAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAC,GAAG,UAAU,EAAE,IAAI,EAAE,OAAO,EAAC,CAAC,CAAC;AACxD,aAAA;AACH,SAAC,CAAC,CAAC;KACJ;AAED,IAAA,cAAc,CAAC,WAAmB,EAAA;AAChC,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,IAAG;AACrD,YAAA,IAAI,UAAU,IAAI,UAAU,CAAC,IAAI,KAAK,WAAW,EAAE;AACjD,gBAAA,MAAM,sBAAsB,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,cAAc,GAAG,WAAW,CAAC,CAAC;AAClF,gBAAA,MAAM,OAAO,GACX,sBAAsB,GAAG,UAAU,CAAC,IAAI,GAAG,sBAAsB,GAAG,UAAU,CAAC,IAAI,CAAC;gBAEtF,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAA+B,4BAAA,EAAA,OAAO,CAAmB,gBAAA,EAAA,WAAW,CAAE,CAAA,CAAC,CAAC;AAC1F,gBAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAC,GAAG,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAC,CAAC,CAAC;AAC3E,aAAA;AACH,SAAC,CAAC,CAAC;KACJ;AAED,IAAA,WAAW,CAAC,YAAuB,EAAA;AACjC,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,IAAG;AACrD,YAAA,IAAI,UAAU,IAAI,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE;AAClF,gBAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAsB,mBAAA,EAAA,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAA,CAAE,CAAC,CAAC;AACxE,gBAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAC,GAAG,UAAU,EAAE,IAAI,EAAE,YAAY,EAAC,CAAC,CAAC;AAC7D,aAAA;AACH,SAAC,CAAC,CAAC;KACJ;AAED,IAAA,OAAO,CAAC,aAAqB,EAAA;AAC3B,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,IAAG;AACrD,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAC,GAAG,UAAU,EAAE,IAAI,EAAE,aAAa,EAAC,CAAC,CAAC;AAC/D,SAAC,CAAC,CAAC;KACJ;AAED,IAAA,iBAAiB,CAAC,SAAyC,EAAA;AACzD,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,IAAG;YACrD,IAAI,UAAU,IAAI,UAAU,CAAC,cAAc,KAAK,SAAS,CAAC,aAAa,EAAE;AACvE,gBAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAC,GAAG,UAAU,EAAE,cAAc,EAAE,SAAS,CAAC,aAAa,EAAC,CAAC,CAAC;AAClF,aAAA;AACH,SAAC,CAAC,CAAC;KACJ;AAED,IAAA,SAAS,CAAC,SAAyC,EAAA;AACjD,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,IAAG;AACrD,YAAA,IAAI,UAAU,EAAE;AACd,gBAAA,MAAM,aAAa,GAAG,SAAS,CAAC,aAAa,CAAC;AAC9C,gBAAA,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;AACjE,gBAAA,MAAM,WAAW,GAAG,UAAU,CAAC,IAAI,CAAC;gBAEpC,IAAI,WAAW,GAAG,aAAa,EAAE;AAC/B,oBAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAC,GAAG,UAAU,EAAE,IAAI,EAAE,aAAa,EAAC,CAAC,CAAC;AAC9D,iBAAA;AACF,aAAA;AACH,SAAC,CAAC,CAAC;KACJ;IAED,eAAe,GAAA;AACb,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;KACnC;IAED,aAAa,CAAC,sBAA8B,EAAE,OAAgC,EAAA;QAC5E,IAAI,CAAC,uBAAuB,CAAC,sBAAsB;AAChD,aAAA,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;aACb,SAAS,CAAC,qBAAqB,IAAG;YACjC,MAAM,iBAAiB,GAAe,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;AACzE,YAAA,MAAM,eAAe,GAAG,qBAAqB,IAAI,iBAAiB,CAAC;AAEnE,YAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAmB,gBAAA,EAAA,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,CAAA,CAAE,CAAC,CAAC;AAExE,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;AAC1C,SAAC,CAAC,CAAC;KACN;AAEO,IAAA,oBAAoB,CAAC,OAAgC,EAAA;QAC3D,MAAM,gBAAgB,GAAG,IAAI,CAAC,cAAc,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;QAE1E,OAAO;YACL,GAAG,IAAI,CAAC,kBAAkB;AAC1B,YAAA,IAAI,EAAE,gBAAgB;SACvB,CAAC;KACH;;yHA9GU,4BAA4B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAH,IAAA,CAAA,SAAA,EAAA,EAAA,EAAA,KAAA,EAAAI,uBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,cAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;6HAA5B,4BAA4B,EAAA,CAAA,CAAA;2FAA5B,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBADxC,UAAU;;;ACzBX;;;;;;;;;;;;;;AAcG;MAUU,wBAAwB,CAAA;AAiBnC,IAAA,WAAA,CACmB,kBAAsC,EACtC,eAAgC,EAChC,uBAAgD,EAAA;QAFhD,IAAkB,CAAA,kBAAA,GAAlB,kBAAkB,CAAoB;QACtC,IAAe,CAAA,eAAA,GAAf,eAAe,CAAiB;QAChC,IAAuB,CAAA,uBAAA,GAAvB,uBAAuB,CAAyB;AAnBlD,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,eAAe,CAAU,KAAK,CAAC,CAAC;QACrD,IAAsB,CAAA,sBAAA,GACrC,IAAI,CAAC,kBAAkB,CAAC,uBAAuB,CAAC,IAAI,CAClD,SAAS,CAAC,sBAAsB,IAC9B,IAAI,CAAC,eAAe,CAAC,uBAAuB,CAAC,sBAAsB,CAAC,CACrE,CACF,CAAC;KAcA;AAZJ,IAAA,IAAI,aAAa,GAAA;AACf,QAAA,OAAO,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC;KAC3C;AAED,IAAA,IAAI,qBAAqB,GAAA;QACvB,OAAO,IAAI,CAAC,sBAAsB,CAAC;KACpC;AAQD,IAAA,MAAM,CAAC,iBAAoC,EAAA;QACzC,IAAI,CAAC,uBAAuB,CAAC,oBAAoB,CAAC,iBAAiB,IAAI,EAAE,CAAC,CAAC;AAC3E,QAAA,IAAI,CAAC,uBAAuB,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,CAAC;AACpE,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAC,CAAC;KAC3D;IAED,OAAO,GAAA;AACL,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAC,CAAC;KAC3D;AAED,IAAA,wBAAwB,CAAC,MAAyB,EAAA;QAChD,MAAM,OAAO,GAA4C,EAAE,CAAC;QAE5D,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,QAAQ,IAAG;AACrC,YAAA,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAQ,CAAC;YAC5C,IAAI,WAAW,CAAC,KAAK,EAAE;gBACrB,OAAO,CAAC,IAAI,CAAC,EAAC,GAAG,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,WAAW,CAAC,GAAG,EAAC,CAAC,CAAC;AACvF,aAAA;AAAM,iBAAA,IAAI,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE;AACrC,gBAAA,OAAO,CAAC,IAAI,CAAC,EAAC,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAC,CAAC,CAAC;AACpD,aAAA;AAAM,iBAAA;AACL,gBAAA,OAAO,CAAC,IAAI,CAAC,EAAC,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,WAAW,CAAC,EAAC,CAAC,CAAC;AACtD,aAAA;AACH,SAAC,CAAC,CAAC;AAEH,QAAA,OAAO,OAAO,CAAC;KAChB;;qHAhDU,wBAAwB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAH,kBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,eAAA,EAAA,EAAA,EAAA,KAAA,EAAAI,uBAAA,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;;;ACvBX;;;;;;;;;;;;;;AAcG;;ACdH;;;;;;;;;;;;;;AAcG;IAES,YAQX;AARD,CAAA,UAAY,WAAW,EAAA;AACrB,IAAA,WAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,IAAA,WAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACrB,IAAA,WAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,WAAA,CAAA,WAAA,CAAA,GAAA,WAAuB,CAAA;AACvB,IAAA,WAAA,CAAA,gBAAA,CAAA,GAAA,iBAAkC,CAAA;AAClC,IAAA,WAAA,CAAA,cAAA,CAAA,GAAA,cAA6B,CAAA;AAC7B,IAAA,WAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACjB,CAAC,EARW,WAAW,KAAX,WAAW,GAQtB,EAAA,CAAA,CAAA;;ACxBD;;;;;;;;;;;;;;AAcG;MAgCU,iCAAiC,CAAA;AAgB5C,IAAA,WAAA,CACU,KAAqB,EACrB,MAAc,EACd,cAA8B,EAC9B,eAAgC,EAChC,eAAgC,EAChC,kBAAsC,EACtC,eAAgC,EAChC,mBAAwC,EACxC,MAAiB,EAAA;QARjB,IAAK,CAAA,KAAA,GAAL,KAAK,CAAgB;QACrB,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;QACd,IAAc,CAAA,cAAA,GAAd,cAAc,CAAgB;QAC9B,IAAe,CAAA,eAAA,GAAf,eAAe,CAAiB;QAChC,IAAe,CAAA,eAAA,GAAf,eAAe,CAAiB;QAChC,IAAkB,CAAA,kBAAA,GAAlB,kBAAkB,CAAoB;QACtC,IAAe,CAAA,eAAA,GAAf,eAAe,CAAiB;QAChC,IAAmB,CAAA,mBAAA,GAAnB,mBAAmB,CAAqB;QACxC,IAAM,CAAA,MAAA,GAAN,MAAM,CAAW;AAXjB,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,YAAY,EAAE,CAAC;KAY5C;IAEJ,QAAQ,GAAA;QACN,IAAI,CAAC,WAAW,EAAE,CAAC;KACpB;IAEO,eAAe,GAAA;AACrB,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;AAC5B,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;AAC1B,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;AAC3B,QAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;AAC/B,QAAA,IAAI,CAAC,cAAc;aAChB,oCAAoC,CACnC,IAAI,CAAC,mBAAmB,EACxB,IAAI,EACJ,IAAI,CAAC,sBAAsB,CAC5B;AACA,aAAA,IAAI,CAACC,MAAI,CAAC,CAAC,CAAC,CAAC;aACb,SAAS,CAAC,kBAAkB,IAAG;AAC9B,YAAA,IAAI,kBAAkB,EAAE;gBACtB,QAAQ,kBAAkB,CAAC,IAAI;AAC7B,oBAAA,KAAK,MAAM;wBACT,IAAI,CAAC,cAAc,GAAG,kBAAkB,CAAC,UAAU,CAAC,aAAa,CAAC;AAClE,wBAAA,IAAI,CAAC,aAAa,GAAG,kBAAkB,CAAC,aAAa,CAAC;wBACtD,MAAM;AACR,oBAAA,KAAK,WAAW;wBACd,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAC,UAAU,CAAC,kBAAkB,CAAC;wBAC3E,MAAM;AACT,iBAAA;AACD,gBAAA,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;AACnB,aAAA;AAAM,iBAAA;;AAEL,gBAAA,IAAI,CAAC,eAAe;AACjB,qBAAA,iDAAiD,CAAC,IAAI,CAAC,oBAAoB,EAAE,IAAI,CAAC;AAClF,qBAAA,IAAI,CAACA,MAAI,CAAC,CAAC,CAAC,CAAC;AACb,qBAAA,SAAS,CAAC;oBACT,IAAI,EAAE,iCAAiC,IACrC,IAAI,CAAC,mBAAmB,CAAC,iCAAiC,CAAC;oBAC7D,KAAK,EAAE,KAAK,IAAG;AACb,wBAAA,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;qBACnB;AACF,iBAAA,CAAC,CAAC;AACN,aAAA;AACH,SAAC,CAAC,CAAC;KACN;AAEO,IAAA,mBAAmB,CAAC,iCAAsC,EAAA;AAChE,QAAA,IAAI,CAAC,eAAe,GAAG,iCAAiC,CAAC,eAAe,CAAC;AACzE,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACrE,MAAM,QAAQ,GAAG,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACjD,QAAA,QAAQ,QAAQ;AACd,YAAA,KAAK,uBAAuB;AAC1B,gBAAA,IAAI,CAAC,cAAc,GAAG,iCAAiC,CAAC;AACxD,gBAAA,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;gBAClB,MAAM;AACR,YAAA,KAAK,2BAA2B;AAC9B,gBAAA,IAAI,CAAC,eAAe;AACjB,qBAAA,2BAA2B,CAAC,IAAI,CAAC,oBAAoB,EAAE;AACtD,oBAAA,UAAU,EAAE,IAAI;oBAChB,sBAAsB,EAAE,IAAI,CAAC,sBAAsB;iBACpD,CAAC;AACD,qBAAA,SAAS,CAAC,MAAM,KAAK,IAAI,CAAC,kBAAkB,GAAG,MAAM,CAAC,kBAAkB,CAAC,CAAC,CAAC;AAC9E,gBAAA,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;gBAClB,MAAM;AACR,YAAA,KAAK,oBAAoB;gBACvB,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAClC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAC/D,CAAC;AACF,gBAAA,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;gBAC3B,MAAM;AACR,YAAA,KAAK,gCAAgC;AACnC,gBAAA,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAACA,MAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,IAAG;AACjD,oBAAA,MAAM,UAAU,GAAG,MAAM,EAAE,UAAU,CAAC;AAEtC,oBAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;wBACxD,KAAK,EAAE,EAAC,IAAI,UAAU,IAAI,EAAC,UAAU,EAAC,CAAC,EAAC;AACzC,qBAAA,CAAC,CAAC;AACL,iBAAC,CAAC,CAAC;gBACH,MAAM;AACR,YAAA;AACE,gBAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;AAC/C,SAAA;KACF;IAEM,kBAAkB,GAAA;AACvB,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QAClB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,EAAE,EAAC,WAAW,EAAE,EAAC,OAAO,EAAE,IAAI,CAAC,oBAAoB,EAAC,EAAC,CAAC,CAAC;KAC3F;AAED,IAAA,IAAW,UAAU,GAAA;AACnB,QAAA,OAAO,CAAW,QAAA,EAAA,IAAI,CAAC,WAAW,EAAE,CAAC;KACtC;AAED,IAAA,SAAS,CAAC,yBAAoD,EAAA;QAC5D,IAAI,CAAC,oBAAoB,GAAG,yBAAyB,CAAC,EAAE,CAAC,oBAAoB,CAAC;AAC9E,QAAA,IAAI,CAAC,mBAAmB,GAAG,yBAAyB,CAAC,eAAe,CAAC;QACrE,IAAI,CAAC,sBAAsB,GAAG,yBAAyB,CAAC,EAAE,CAAC,oBAAoB,CAAC,IAAI,CAAC;AACrF,QAAA,IAAI,CAAC,WAAW,GAAG,yBAAyB,CAAC,WAAW,CAAC;AACzD,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,iBAAiB,EAAE,CAAC;AACvC,QAAA,IAAI,CAAC,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;AAClC,QAAA,MAAM,kBAAkB,GAAuB,UAAU,UAAU,EAAE,QAAQ,EAAA;AAC3E,YAAA,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;AAC7B,SAAC,CAAC;AACF,QAAA,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;QAC1C,IAAI,CAAC,eAAe,EAAE,CAAC;KACxB;AAEM,IAAA,QAAQ,CAAC,UAA4B,EAAA;AAC1C,QAAA,IAAI,CAAC,gBAAgB,GAAG,UAAU,CAAC;QAEnC,IAAI,IAAI,CAAC,aAAa,EAAE;AACtB,YAAA,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,IAAI,CAAC,aAAa,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC;AAChF,gBAAA,IAAI,EAAE,CAAC,oBAA0C,KAAI;AACnD,oBAAA,IAAI,CAAC,eAAe,CAAC,oBAAoB,CAAC,CAAC;iBAC5C;gBACD,KAAK,EAAE,MAAM,IAAG;AACd,oBAAA,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;iBAC9B;AACF,aAAA,CAAC,CAAC;AACJ,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,eAAe;AACjB,iBAAA,QAAQ,CAAC,IAAI,CAAC,oBAAoB,EAAE,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,EAAE,EAAE,UAAU,CAAC,IAAI,CAAC;AACtF,iBAAA,SAAS,CACR,CAAC,oBAA0C,KAAI;AAC7C,gBAAA,IAAI,CAAC,eAAe,CAAC,oBAAoB,CAAC,CAAC;aAC5C,EACD,MAAM,IAAG;AACP,gBAAA,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;AAC/B,aAAC,CACF,CAAC;AACL,SAAA;KACF;IAEM,iBAAiB,GAAA;AACtB,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACjC,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;KACnB;IAEM,WAAW,GAAA;QAChB,IAAI,CAAC,mBAAmB,CAAC,cAAc,EAAE,CAAC,SAAS,CACjD,YAAY,IAAG;YACb,IAAI,CAAC,OAAO,GAAG,YAAY,CAAC,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;SAC1D,EACD,KAAK,IAAG;AACN,YAAA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;AACvB,SAAC,CACF,CAAC;KACH;AAEO,IAAA,eAAe,CAAC,oBAA0C,EAAA;AAChE,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;AAClB,QAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;YACnB,UAAU;AACV,YAAA,IAAI,CAAC,sBAAsB;YAC3B,UAAU;AACV,YAAA,oBAAoB,CAAC,UAAU;YAC/B,SAAS;AACV,SAAA,CAAC,CAAC;KACJ;;8HAxLU,iCAAiC,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAP,IAAA,CAAA,cAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,MAAA,EAAA,EAAA,EAAA,KAAA,EAAAD,IAAA,CAAA,cAAA,EAAA,EAAA,EAAA,KAAA,EAAAD,EAAA,CAAA,eAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,eAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,eAAA,EAAA,EAAA,EAAA,KAAA,EAAAU,IAAA,CAAA,mBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,IAAA,CAAA,SAAA,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,yTC9C9C,24DAkDA,EAAA,MAAA,EAAA,CAAA,6rBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,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,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,SAAA,EAAA,YAAA,EAAA,UAAA,EAAA,cAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,cAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,OAAA,EAAA,UAAA,EAAA,uBAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,iBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,EAAA,oBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;2FDJa,iCAAiC,EAAA,UAAA,EAAA,CAAA;kBAN7C,SAAS;+BACE,qCAAqC,EAAA,aAAA,EAGhC,iBAAiB,CAAC,IAAI,EAAA,QAAA,EAAA,24DAAA,EAAA,MAAA,EAAA,CAAA,6rBAAA,CAAA,EAAA,CAAA;sVAcD,IAAI,EAAA,CAAA;sBAAvC,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,MAAM,EAAE,EAAC,MAAM,EAAE,KAAK,EAAC,CAAA;gBACe,KAAK,EAAA,CAAA;sBAArD,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,mBAAmB,EAAE,EAAC,MAAM,EAAE,KAAK,EAAC,CAAA;gBACrC,gBAAgB,EAAA,CAAA;sBAAzB,MAAM;;;AE5DT;;;;;;;;;;;;;;AAcG;MAgBU,2BAA2B,CAAA;AA4BtC,IAAA,WAAA,CACmB,eAAgC,EAChC,KAAqB,EACrB,WAA+B,EAAA;QAF/B,IAAe,CAAA,eAAA,GAAf,eAAe,CAAiB;QAChC,IAAK,CAAA,KAAA,GAAL,KAAK,CAAgB;QACrB,IAAW,CAAA,WAAA,GAAX,WAAW,CAAoB;AA1BxC,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,YAAY,EAAE,CAAC;QAExC,IAAiC,CAAA,iCAAA,GAAqC,IAAI,CAAC;QAE3E,IAAkB,CAAA,kBAAA,GAAG,KAAK,CAAC;QAE3B,IAA2C,CAAA,2CAAA,GAAqC,EAAE,CAAC;AAElF,QAAA,IAAA,CAAA,qCAAqC,GAC5C,IAAI,CAAC,WAAW,CAAC,uBAAuB,CAAC,IAAI,CAC3C,SAAS,CAAC,sBAAsB,IAC9B,sBAAsB;cAClB,IAAI,CAAC,eAAe,CAAC,8BAA8B,CAAC,sBAAsB,CAAC;AAC7E,cAAE,EAAE,CAAC,EAAE,CAAC,CACX,EACD,GAAG,CAAC,0BAA0B,IAC5B,0BAA0B,CAAC,MAAM,CAAC,UAAU,IAAI,UAAU,CAAC,qBAAqB,CAAC,CAClF,EACD,GAAG,CAAC,0BAA0B,IAAG;AAC/B,YAAA,IAAI,CAAC,2CAA2C,GAAG,0BAA0B,CAAC;SAC/E,CAAC,CACH,CAAC;KAMA;IAEJ,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;KACjC;IAED,YAAY,GAAA;AACV,QAAA,MAAM,oCAAoC,GAAG,IAAI,CAAC,2CAA2C,CAAC;AAE9F,QAAA,IAAI,oCAAoC,CAAC,MAAM,GAAG,CAAC,EAAE;YACnD,CAAC,CAAC,eAAe,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AAClC,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,iCAAiC,GAAG,oCAAoC,CAAC,CAAC,CAAC,CAAC;YACjF,IAAI,CAAC,qBAAqB,EAAE,CAAC;AAC9B,SAAA;KACF;AAED,IAAA,aAAa,CAAC,yBAAoD,EAAA;AAChE,QAAA,MAAM,KAAK,GAAG,CAAC,CAAC,eAAe,CAAC,CAAC;AACjC,QAAA,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE;AAC5B,YAAA,KAAK,CAAC,EAAE,CAAC,iBAAiB,EAAE,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AACnE,YAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;AAChC,SAAA;AACD,QAAA,IAAI,CAAC,iCAAiC,GAAG,yBAAyB,CAAC;AACnE,QAAA,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;KACrB;IAED,kBAAkB,GAAA;AAChB,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAClC;IAEO,qBAAqB,GAAA;AAC3B,QAAA,IAAI,IAAI,CAAC,iCAAiC,KAAK,IAAI,EAAE;YACnD,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;AACpE,YAAA,IAAI,CAAC,iCAAiC,GAAG,IAAI,CAAC;AAC/C,SAAA;KACF;;wHApEU,2BAA2B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAZ,EAAA,CAAA,eAAA,EAAA,EAAA,EAAA,KAAA,EAAAD,IAAA,CAAA,cAAA,EAAA,EAAA,EAAA,KAAA,EAAAc,kBAAA,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,0QC9BxC,iwFA2EA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,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,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAN,EAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,WAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,cAAA,EAAA,WAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,OAAA,EAAA,QAAA,CAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAO,iCAAA,EAAA,QAAA,EAAA,qCAAA,EAAA,OAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAD,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAJ,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FD7Ca,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBALvC,SAAS;+BACE,8BAA8B,EAAA,QAAA,EAAA,iwFAAA,EAAA,CAAA;mKAKR,YAAY,EAAA,CAAA;sBAA3C,SAAS;uBAAC,mBAAmB,CAAA;gBAErB,OAAO,EAAA,CAAA;sBAAf,KAAK;gBAEI,gBAAgB,EAAA,CAAA;sBAAzB,MAAM;;;AEnCT;;;;;;;;;;;;;;AAcG;MA2DU,oBAAoB,CAAA;IAoN/B,WACmB,CAAA,KAAqB,EACrB,gBAAkC,EAClC,WAA+B,EAC/B,aAAmC,EACnC,eAA2C,EAC3C,iBAA+C,EAC/C,aAAuC,EACvC,gBAAyC,EACzC,eAAgC,EAChC,MAAc,EACd,aAA4B,EAC5B,gBAAkC,EAClC,iBAAoC,EAAA;QAZpC,IAAK,CAAA,KAAA,GAAL,KAAK,CAAgB;QACrB,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAkB;QAClC,IAAW,CAAA,WAAA,GAAX,WAAW,CAAoB;QAC/B,IAAa,CAAA,aAAA,GAAb,aAAa,CAAsB;QACnC,IAAe,CAAA,eAAA,GAAf,eAAe,CAA4B;QAC3C,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAA8B;QAC/C,IAAa,CAAA,aAAA,GAAb,aAAa,CAA0B;QACvC,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAyB;QACzC,IAAe,CAAA,eAAA,GAAf,eAAe,CAAiB;QAChC,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;QACd,IAAa,CAAA,aAAA,GAAb,aAAa,CAAe;QAC5B,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAkB;QAClC,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAmB;QAhOhD,IAAa,CAAA,aAAA,GAAG,IAAI,CAAC;QACrB,IAAiB,CAAA,iBAAA,GAAG,IAAI,CAAC;QACzB,IAAmB,CAAA,mBAAA,GAAG,IAAI,CAAC;QAC3B,IAAqB,CAAA,qBAAA,GAAG,IAAI,CAAC;QAC7B,IAAoB,CAAA,oBAAA,GAAG,IAAI,CAAC;QAG5B,IAAkB,CAAA,kBAAA,GAAiC,IAAI,CAAC;AAE/C,QAAA,IAAA,CAAA,aAAa,GAC3B,IAAI,CAAC,aAAa,CAAC,qBAAqB,CAAC,IAAI,CAC3C,GAAG,CAAC,YAAY,IAAG;AACjB,YAAA,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;SAClC,CAAC,CACH,CAAC;AAEY,QAAA,IAAA,CAAA,uBAAuB,GAAG,IAAI,CAAC,WAAW,CAAC,uBAAuB,CAAC;AAEnE,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,uBAAuB,CAAC,IAAI,CACrE,SAAS,CAAC,sBAAsB,IAC9B,IAAI,CAAC,eAAe,CAAC,qBAAqB,CAAC,sBAAsB,CAAC,CACnE,EACD,GAAG,CAAC,kBAAkB,IAAI,kBAAkB,EAAE,MAAM,CAAC,EACrD,GAAG,CAAC,MAAM,IAAG;YACX,IAAI,MAAM,EAAE,KAAK,EAAE;gBACjB,IAAI,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;AAC/D,aAAA;SACF,CAAC,CACH,CAAC;AAEc,QAAA,IAAA,CAAA,kBAAkB,GAAG,IAAI,CAAC,gBAAgB,CAAC,kBAAkB,CAAC;AAC9D,QAAA,IAAA,CAAA,eAAe,GAC7B,IAAI,CAAC,eAAe,CAAC,eAAe,CAAC;AACtB,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,IAAI,CACrE,GAAG,CAAC,UAAU,IAAG;AACf,YAAA,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;AAC7B,YAAA,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;SAChC,CAAC,CACH,CAAC;AACe,QAAA,IAAA,CAAA,oBAAoB,GAAwB,IAAI,CAAC,WAAW,CAAC,mBAAmB,CAAC;AACjF,QAAA,IAAA,CAAA,oBAAoB,GAAG,IAAI,eAAe,CAAU,KAAK,CAAC,CAAC;AAC3D,QAAA,IAAA,CAAA,iBAAiB,GAAwB,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC;AAC/E,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC;AAClD,QAAA,IAAA,CAAA,SAAS,GACxB,IAAI,CAAC,WAAW,CAAC,uBAAuB,CAAC,IAAI,CAC3C,SAAS,CAAC,sBAAsB,IAC9B,IAAI,CAAC,aAAa,CAAC,oBAAoB,CAAC,sBAAsB,CAAC,CAChE,EACD,GAAG,CAAC,GAAG,IAAG;YACR,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;YACjD,OAAO,GAAG,CAAC,OAAO,CAAC;AACrB,SAAC,CAAC,EACF,GAAG,CAAC,OAAO,IAAG;AACZ,YAAA,IAAI,CAAC,WAAW,CAAC,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,sBAAsB,IAAG;gBACxF,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,sBAAsB,EAAE,OAAO,CAAC,CAAC;AACxE,aAAC,CAAC,CAAC;SACJ,CAAC,CACH,CAAC;QAEK,IAAO,CAAA,OAAA,GAAiC,aAAa,CAAC;AAC7D,YAAA,IAAI,CAAC,iBAAiB;AACtB,YAAA,IAAI,CAAC,SAAS;AACd,YAAA,IAAI,CAAC,oBAAoB;AACzB,YAAA,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,KAAK,CAAC;SACpC,CAAC,CAAC,IAAI,CACL,GAAG,CAAC,CAAC,CAAC,eAAe,CAAC,KAAI;AACxB,YAAA,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;AACzC,SAAC,CAAC,EACF,GAAG,CAAC,CAAC,CAAC,eAAe,EAAE,OAAO,EAAE,YAAY,CAAC,KAAI;AAC/C,YAAA,MAAM,uBAAuB,GAAG,IAAI,CAAC,eAAe,CAAC,qBAAqB,CACxE,OAAO,EACP,eAAe,CAChB,CAAC;AACF,YAAA,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,gCAAgC,CACpE,uBAAuB,EACvB,YAAY,CACb,CAAC;AACF,YAAA,MAAM,cAAc,GAAG,IAAI,CAAC,eAAe,CAAC,oBAAoB,CAC9D,OAAO,EACP,UAAU,EACV,eAAe,CAChB,CAAC;AAEF,YAAA,OAAO,cAAc,CAAC;AACxB,SAAC,CAAC,EACF,GAAG,CAAC,UAAU,IAAG;AACf,YAAA,MAAM,gBAAgB,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;;YAGjE,IAAI,CAAC,gBAAgB,CAAC,sBAAsB;AACzC,iBAAA,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;iBACb,SAAS,CAAC,qBAAqB,IAAG;gBACjC,IAAI,gBAAgB,IAAI,CAAC,qBAAqB,EAAE,IAAI,EAAE,SAAS,EAAE;AAC/D,oBAAA,MAAM,aAAa,GACjB,OAAO,gBAAgB,CAAC,OAAO,KAAK,QAAQ,GAAG,gBAAgB,CAAC,OAAO,GAAG,MAAM,CAAC;AACnF,oBAAA,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC;AACjC,wBAAA,SAAS,EAAE,IAAI;wBACf,KAAK,EAAE,EAAC,IAAI,EAAE,gBAAgB,CAAC,GAAG,EAAE,SAAS,EAAE,aAA0B,EAAC;AAC3E,qBAAA,CAAC,CAAC;AACJ,iBAAA;AACH,aAAC,CAAC,CAAC;AACP,SAAC,CAAC,EACF,GAAG,CAAC,MAAK;AACP,YAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;SAC5B,CAAC,CACH,CAAC;AAEe,QAAA,IAAA,CAAA,uBAAuB,GACtC,aAAa,CAAC,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,WAAW,CAAC,uBAAuB,CAAC,CAAC,CAAC,IAAI,CAC/E,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,EACtC,GAAG,CACD,CAAC,CAAC,UAAU,EAAE,sBAAsB,CAAC,KACnC,IAAI,iCAAiC,CACnC,sBAAsB,EACtB,UAAU,CAAC,IAAI,GAAG,CAAC,EACnB,UAAU,CAAC,IAAI,EACf,UAAU,CAAC,IAAI,CAChB,CACJ,CACF,CAAC;QAEa,IAAkB,CAAA,kBAAA,GAA+C,aAAa,CAAC;AAC9F,YAAA,IAAI,CAAC,uBAAuB;AAC5B,YAAA,IAAI,CAAC,kBAAkB;AACvB,YAAA,IAAI,CAAC,eAAe;AACpB,YAAA,IAAI,CAAC,oBAAoB;AACzB,YAAA,IAAI,CAAC,oBAAoB;AACzB,YAAA,IAAI,CAAC,cAAc;SACpB,CAAC,CAAC,IAAI,CACL,oBAAoB,CAClB,CACE,CACE,iBAAiB,EACjB,gBAAgB,EAChB,kBAAkB,EAClB,sBAAsB,EACtB,sBAAsB,EACtB,gBAAgB,EACjB,EACD,CACE,iBAAiB,EACjB,gBAAgB,EAChB,kBAAkB,EAClB,sBAAsB,EACtB,sBAAsB,EACtB,gBAAgB,EACjB,KAED,IAAI,CAAC,SAAS,CAAC,EAAC,GAAG,iBAAiB,EAAE,GAAG,gBAAgB,EAAC,CAAC;YACzD,kBAAkB;YAClB,gBAAgB;YAClB,IAAI,CAAC,SAAS,CAAC,EAAC,GAAG,iBAAiB,EAAE,GAAG,gBAAgB,EAAC,CAAC;gBACzD,kBAAkB;AAClB,gBAAA,gBAAgB,CACrB,EACD,SAAS,CACP,CAAC,CACC,qBAAqB,EACrB,YAAY,EACZ,cAAc,EACd,kBAAkB,EAClB,kBAAkB,EACnB,KAAI;AACH,YAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE,MAAM,GAAG,CAAC,EAAE;gBAChD,OAAO,kBAAkB,IAAI,CAAC,kBAAkB;sBAC5C,IAAI,CAAC,eAAe,CAAC,kBAAkB,CACrC,qBAAqB,EACrB,KAAK,EACL,cAAc,EACd,IAAI,CAAC,aAAa,CAAC,wBAAwB,CAAC,YAAY,CAAC,CAC1D;sBACD,IAAI,CAAC,eAAe,CAAC,2BAA2B,CAC9C,qBAAqB,EACrB,KAAK,EACL,cAAc,EACd,IAAI,CAAC,aAAa,CAAC,wBAAwB,CAAC,YAAY,CAAC,CAC1D,CAAC;AACP,aAAA;YAED,OAAO,kBAAkB,IAAI,CAAC,kBAAkB;AAC9C,kBAAE,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAAC,qBAAqB,EAAE,KAAK,EAAE,cAAc,CAAC;AACvF,kBAAE,IAAI,CAAC,eAAe,CAAC,2BAA2B,CAC9C,qBAAqB,EACrB,KAAK,EACL,cAAc,CACf,CAAC;AACR,SAAC,CACF,EACD,GAAG,CAAC,SAAS,IAAG;AACd,YAAA,IAAI,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;AACpD,YAAA,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;SAC7C,CAAC,CACH,CAAC;QAEK,IAAc,CAAA,cAAA,GAAG,aAAa,CAAC;AACpC,YAAA,IAAI,CAAC,kBAAkB;AACvB,YAAA,IAAI,CAAC,oBAAoB;AACzB,YAAA,IAAI,CAAC,oBAAoB;AAC1B,SAAA,CAAC,CAAC,IAAI,CACL,GAAG,CAAC,CAAC,CAAC,SAAS,EAAE,kBAAkB,EAAE,kBAAkB,CAAC,KACtD,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,SAAS,EAAE,kBAAkB,EAAE,kBAAkB,CAAC,CACjF,EACD,GAAG,CAAC,MAAK;AACP,YAAA,IAAI,CAAC,qBAAqB,GAAG,KAAK,CAAC;AACnC,YAAA,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;SACnC,CAAC,CACH,CAAC;KAmBE;IAEJ,QAAQ,GAAA;QACN,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,IAAI,CAAC,sCAAsC,EAAE,CAAC;KAC/C;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,mCAAmC,EAAE,WAAW,EAAE,CAAC;AACxD,QAAA,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC;KACrC;AAED,IAAA,MAAM,CAAC,iBAAoC,EAAA;AACzC,QAAA,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;KAC9C;AAED,IAAA,QAAQ,CAAC,QAAa,EAAA;AACpB,QAAA,IAAI,CAAC,WAAW,CAAC,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,sBAAsB,IAAG;AACxF,YAAA,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,CACrC,aAAa,sBAAsB,CAAA,CAAE,EACrC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,WAAW,CAChC,CAAC;AACF,YAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;gBACnB,CAAa,UAAA,EAAA,sBAAsB,aAAa,QAAQ,CAAC,EAAE,CAAI,CAAA,EAAA,WAAW,CAAC,OAAO,CAAE,CAAA;AACrF,aAAA,CAAC,CAAC;AACL,SAAC,CAAC,CAAC;KACJ;AAED,IAAA,UAAU,CAAC,OAAe,EAAA;AACxB,QAAA,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;KAC5C;AAED,IAAA,cAAc,CAAC,WAAmB,EAAA;AAChC,QAAA,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;KACpD;AAED,IAAA,WAAW,CAAC,YAAuB,EAAA;AACjC,QAAA,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;KAClD;AAED,IAAA,SAAS,CAAC,GAA2B,EAAA;AACnC,QAAA,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAClC,QAAA,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;KAClE;IAED,OAAO,GAAA;AACL,QAAA,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC;KAC9B;IAEO,sCAAsC,GAAA;AAC5C,QAAA,IAAI,CAAC,mCAAmC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM;aACzD,IAAI,CACH,GAAG,CAAC,MAAM,IAAI,MAAM,EAAE,sBAAsB,CAAC,EAC7C,MAAM,CAAC,UAAU,IAAI,CAAC,CAAC,UAAU,CAAC,EAClC,oBAAoB,EAAE,CACvB;aACA,SAAS,CAAC,qBAAqB,IAAG;YACjC,IAAI,IAAI,CAAC,+BAA+B,EAAE;AACxC,gBAAA,IAAI,CAAC,gBAAgB,CAAC,eAAe,EAAE,CAAC;AACxC,gBAAA,IAAI,CAAC,gBAAgB,CAAC,sBAAsB,EAAE,CAAC;AAChD,aAAA;AACD,YAAA,IAAI,CAAC,+BAA+B,GAAG,qBAAqB,CAAC;YAC7D,IAAI,CAAC,UAAU,EAAE,CAAC;AAClB,YAAA,IAAI,CAAC,iBAAiB,CAAC,eAAe,EAAE,CAAC;AACzC,YAAA,IAAI,CAAC,eAAe,CAAC,mBAAmB,EAAE,CAAC;AAC3C,YAAA,IAAI,CAAC,WAAW,CAAC,yBAAyB,CAAC,qBAAqB,CAAC,CAAC;AACpE,SAAC,CAAC,CAAC;KACN;IAEO,UAAU,GAAA;AAChB,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;AAC1B,QAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;AAC9B,QAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;AAChC,QAAA,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC;AAClC,QAAA,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;KAClC;IAEO,cAAc,GAAA;AACpB,QAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,sBAAsB,IAAI,IAAI,CAAC;KACrF;;iHAjTU,oBAAoB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAV,IAAA,CAAA,cAAA,EAAA,EAAA,EAAA,KAAA,EAAAD,EAAA,CAAA,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAAc,kBAAA,EAAA,EAAA,EAAA,KAAA,EAAAG,oBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,0BAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,4BAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,wBAAA,EAAA,EAAA,EAAA,KAAA,EAAAb,uBAAA,EAAA,EAAA,EAAA,KAAA,EAAAQ,EAAA,CAAA,eAAA,EAAA,EAAA,EAAA,KAAA,EAAAd,IAAA,CAAA,MAAA,EAAA,EAAA,EAAA,KAAA,EAAAQ,EAAA,CAAA,aAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,IAAA,CAAA,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,iBAAA,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,EATpB,QAAA,EAAA,sBAAA,EAAA,SAAA,EAAA;QACT,kBAAkB;QAClB,oBAAoB;QACpB,0BAA0B;QAC1B,uBAAuB;QACvB,4BAA4B;QAC5B,wBAAwB;AACzB,KAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECvEH,svIAkIA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,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,EAAA,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,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,YAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,SAAA,EAAA,sBAAA,EAAA,kBAAA,EAAA,oBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,mBAAA,EAAA,eAAA,EAAA,QAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,OAAA,EAAA,UAAA,EAAA,cAAA,EAAA,UAAA,EAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,qBAAA,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,OAAA,EAAA,SAAA,EAAA,YAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,qBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,wBAAA,EAAA,mBAAA,EAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,WAAA,EAAA,eAAA,EAAA,aAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,gBAAA,EAAA,OAAA,EAAA,QAAA,EAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,UAAA,EAAA,OAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,OAAA,EAAA,QAAA,CAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,UAAA,EAAA,QAAA,EAAA,eAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAW,2BAAA,EAAA,QAAA,EAAA,8BAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAV,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAX,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FDzDa,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAbhC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,sBAAsB,EAGrB,SAAA,EAAA;wBACT,kBAAkB;wBAClB,oBAAoB;wBACpB,0BAA0B;wBAC1B,uBAAuB;wBACvB,4BAA4B;wBAC5B,wBAAwB;AACzB,qBAAA,EAAA,QAAA,EAAA,svIAAA,EAAA,CAAA;;;AEvEH;;;;;;;;;;;;;;AAcG;AAsBH,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;AACrD,MAAM,CAAC,aAAa,GAAG,mBAAmB,CAAC;MAQ9B,gCAAgC,CAAA;AAc3C,IAAA,WAAA,CACmB,MAAc,EACd,eAAgC,EAChC,WAAwB,EACxB,cAA8B,EAC9B,EAAc,EACd,QAAmB,EACnB,KAAqB,EACrB,WAAwB,EACxB,mBAAwC,EAAA;QARxC,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;QACd,IAAe,CAAA,eAAA,GAAf,eAAe,CAAiB;QAChC,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;QACxB,IAAc,CAAA,cAAA,GAAd,cAAc,CAAgB;QAC9B,IAAE,CAAA,EAAA,GAAF,EAAE,CAAY;QACd,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAW;QACnB,IAAK,CAAA,KAAA,GAAL,KAAK,CAAgB;QACrB,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;QACxB,IAAmB,CAAA,mBAAA,GAAnB,mBAAmB,CAAqB;QAnBpD,IAAwB,CAAA,wBAAA,GAA8B,EAAE,CAAC;QAEzD,IAAK,CAAA,KAAA,GAA0B,EAAE,CAAC;QAElC,IAAc,CAAA,cAAA,GAAe,IAAI,CAAC;QAElC,IAAK,CAAA,KAAA,GAAa,EAAE,CAAC;AACpB,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,YAAY,EAAE,CAAC;QAc1C,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC;AAC7C,QAAA,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,wBAAwB,CAAC,IAAI,EAAE,CAAC;AAChF,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;AACxD,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,iBAAiB,EAAE,CAAC;AACvC,QAAA,IAAI,CAAC,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;KACnC;IAED,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,IAAI,EAAE,CAAC;KACb;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC;KACnC;IAED,IAAI,GAAA;QACF,IAAI,CAAC,cAAc,CAAC,GAAG,CACrB,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,QAAQ,IAAG;AACrE,YAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;SAC1B,CAAC,CACH,CAAC;AAEF,QAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CACrB,IAAI,CAAC,WAAW;aACb,gCAAgC,CAAC,CAAG,EAAA,IAAI,CAAC,sBAAsB,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC;aAC3F,SAAS,CAAC,cAAc,IAAG;AAC1B,YAAA,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;SACtC,CAAC,CACL,CAAC;AAEF,QAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CACrB,IAAI,CAAC,mBAAmB,CAAC,cAAc,EAAE,CAAC,SAAS,CAAC,IAAI,IAAG;AACzD,YAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;AACxB,YAAA,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;AAChB,YAAA,IAAI,CAAC,4BAA4B,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;SACpD,CAAC,CACH,CAAC;KACH;AAEM,IAAA,4BAA4B,CAAC,UAAkB,EAAA;AACpD,QAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CACrB,IAAI,CAAC,eAAe;aACjB,4BAA4B,CAAC,UAAU,CAAC;aACxC,SAAS,CAAC,wBAAwB,IAAG;AACpC,YAAA,IAAI,CAAC,wBAAwB,GAAG,wBAAwB,CAAC;AACzD,YAAA,IAAI,CAAC,wBAAwB,CAAC,OAAO,CAAC,QAAQ,IAAG;gBAC/C,IAAI,CAAC,wBAAwB,CAAC,QAAQ,CAAC,EAAE,CAAC,iBAAiB,CAAC,CAAC;AAC/D,aAAC,CAAC,CAAC;SACJ,CAAC,CACL,CAAC;KACH;AAEO,IAAA,wBAAwB,CAAC,iBAAyB,EAAA;AACxD,QAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CACrB,IAAI,CAAC,cAAc,CAAC,uBAAuB,CAAC,iBAAiB,CAAC,CAAC,SAAS,CAAC,KAAK,IAAG;YAC/E,IAAI,KAAK,IAAI,IAAI,EAAE;AACjB,gBAAA,KAAK,CAAC,OAAO,CAAC,IAAI,IAAG;AACnB,oBAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;AACpD,oBAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;AACrE,oBAAA,IAAI,CAAC,QAAQ,GAAG,MAAK;wBACnB,IAAI,MAAM,GAAG,IAAI,CAAC;AAClB,wBAAA,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,aAAa,EAAE;4BACrC,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,IAAI,IAAI,CAAC,OAAO,EAAE;gCAC7C,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;oCACrC,MAAM,GAAG,KAAK,CAAC;oCACf,MAAM;AACP,iCAAA;AACF,6BAAA;AACF,yBAAA;AACD,wBAAA,OAAO,MAAM,CAAC;AAChB,qBAAC,CAAC;AACJ,iBAAC,CAAC,CAAC;gBACH,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBACtC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,WAAW,GAAG,EAAE,CAAC,WAAW,CAAC,CAAC;AAC9D,aAAA;SACF,CAAC,CACH,CAAC;KACH;AAEM,IAAA,YAAY,CAAC,IAAS,EAAA;AAC3B,QAAA,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;KACvC;;6HA3GU,gCAAgC,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,IAAA,CAAA,MAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,eAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAAc,IAAA,CAAA,cAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,EAAA,EAAA,KAAA,EAAAd,IAAA,CAAA,cAAA,EAAA,EAAA,EAAA,KAAA,EAAAQ,IAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,IAAA,CAAA,mBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAhC,gCAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,gCAAgC,oLC7C7C,+zFAyEA,EAAA,MAAA,EAAA,CAAA,8mCAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,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,EAAA,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,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,OAAA,EAAA,UAAA,EAAA,cAAA,EAAA,UAAA,EAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,SAAA,EAAA,YAAA,EAAA,UAAA,EAAA,cAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,wBAAA,EAAA,QAAA,EAAA,2BAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,yBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,WAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,cAAA,EAAA,WAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,OAAA,EAAA,QAAA,CAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAS,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;2FD5Ba,gCAAgC,EAAA,UAAA,EAAA,CAAA;kBAN5C,SAAS;+BACE,oCAAoC,EAAA,aAAA,EAG/B,iBAAiB,CAAC,IAAI,EAAA,QAAA,EAAA,+zFAAA,EAAA,MAAA,EAAA,CAAA,8mCAAA,CAAA,EAAA,CAAA;sUAcZ,UAAU,EAAA,CAAA;sBAAlC,SAAS;uBAAC,YAAY,CAAA;;;AEzDzB;;;;;;;;;;;;;;AAcG;MAYU,iCAAiC,CAAA;IAK5C,WAAoB,CAAA,KAAqB,EAAU,eAAgC,EAAA;QAA/D,IAAK,CAAA,KAAA,GAAL,KAAK,CAAgB;QAAU,IAAe,CAAA,eAAA,GAAf,eAAe,CAAiB;QACjF,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAC9C,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;KACpD;IAED,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,eAAe;AACjB,aAAA,4BAA4B,CAAC,IAAI,CAAC,UAAU,CAAC;aAC7C,SAAS,CAAC,wBAAwB,IAAG;AACpC,YAAA,IAAI,CAAC,wBAAwB,GAAG,wBAAwB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KACjE,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,QAAQ,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,CACpD,CAAC;AACF,YAAA,IAAI,wBAAwB,CAAC,MAAM,GAAG,CAAC,EAAE;gBACvC,IAAI,CAAC,yBAAyB,GAAG,wBAAwB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,iBAAiB,CAAC;AACnF,aAAA;AACH,SAAC,CAAC,CAAC;KACN;AAEM,IAAA,mBAAmB,CAAC,iBAAyB,EAAA;AAClD,QAAA,IAAI,CAAC,yBAAyB,GAAG,iBAAiB,CAAC;KACpD;;8HAzBU,iCAAiC,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAArB,IAAA,CAAA,cAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,eAAA,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,2EC1B9C,slDA4CA,EAAA,MAAA,EAAA,CAAA,mEAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAF,EAAA,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,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAgB,IAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,CAAA,sBAAA,EAAA,mBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAN,IAAA,CAAA,cAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FDlBa,iCAAiC,EAAA,UAAA,EAAA,CAAA;kBAL7C,SAAS;+BACE,qCAAqC,EAAA,QAAA,EAAA,slDAAA,EAAA,MAAA,EAAA,CAAA,mEAAA,CAAA,EAAA,CAAA;;;AEtBjD;;;;;;;;;;;;;;AAcG;AASH,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;AACrD,MAAM,CAAC,aAAa,GAAG,mBAAmB,CAAC;MAO9B,8BAA8B,CAAA;AASzC,IAAA,WAAA,CACU,KAAqB,EACrB,eAAgC,EAChC,cAAiC,EAAA;QAFjC,IAAK,CAAA,KAAA,GAAL,KAAK,CAAgB;QACrB,IAAe,CAAA,eAAA,GAAf,eAAe,CAAiB;QAChC,IAAc,CAAA,cAAA,GAAd,cAAc,CAAmB;AAXjC,QAAA,IAAA,CAAA,iBAAiB,GAAsB,IAAI,YAAY,EAAE,CAAC;QAK5D,IAAgB,CAAA,gBAAA,GAAG,CAAC,CAAC;AAQ3B,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAC9C,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;KACpD;IAEO,OAAO,iBAAiB,CAAC,UAAsB,EAAA;QACrD,MAAM,cAAc,GAAG,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACvD,MAAM,SAAS,GAAG,cAAc,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC5D,OAAO,SAAS,GAAG,SAAS,CAAC;KAC9B;IAED,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;KAC3C;AAEM,IAAA,aAAa,CAAC,UAAkB,EAAA;AACrC,QAAA,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC,SAAS,CAAC,IAAI,IAAG;YAC7E,MAAM,aAAa,GAAG,EAAE,CAAC;AACzB,YAAA,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,IAAG;gBACjC,MAAM,UAAU,GAAG,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;AAC3D,gBAAA,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,EAAE,CAAC;AACrC,gBAAA,aAAa,CAAC,IAAI,CAChB,IAAI,gBAAgB,CAClB,UAAU,CAAC,MAAM,CAAC,aAAa,CAAC,EAChC,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,EAC1B,WAAW,CAAC,QAAQ,CAAC,IAAI,EACzB,OAAO,EACP,8BAA8B,CAAC,iBAAiB,CAAC,WAAW,CAAC,UAAU,CAAC,EACxE,WAAW,CAAC,UAAU,CACvB,CACF,CAAC;AACJ,aAAC,CAAC,CAAC;AACH,YAAA,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;AACnC,YAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;AACzC,YAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;AACvB,YAAA,IAAI,CAAC,UAAU,CAAC,MAAM,IAAI,CAAC,CAAC;AAC9B,SAAC,CAAC,CAAC;KACJ;AAEM,IAAA,kBAAkB,CAAC,IAAI,EAAA;AAC5B,QAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAClC,QAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,GAAG,CAAC,CAAC;AACjC,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;KAC3C;;2HAzDU,8BAA8B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAR,IAAA,CAAA,cAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,eAAA,EAAA,EAAA,EAAA,KAAA,EAAAF,IAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA9B,8BAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,8BAA8B,6HC/B3C,i/DAwDA,EAAA,MAAA,EAAA,CAAA,0FAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAgB,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAN,IAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,qBAAA,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,OAAA,EAAA,SAAA,EAAA,YAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,eAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,SAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FDzBa,8BAA8B,EAAA,UAAA,EAAA,CAAA;kBAL1C,SAAS;+BACE,kCAAkC,EAAA,QAAA,EAAA,i/DAAA,EAAA,MAAA,EAAA,CAAA,0FAAA,CAAA,EAAA,CAAA;uKAKlC,iBAAiB,EAAA,CAAA;sBAA1B,MAAM;;;AEhCT;;;;;;;;;;;;;;AAcG;MAsBU,+CAA+C,CAAA;AA0D1D,IAAA,WAAA,CACmB,KAAqB,EACrB,eAAgC,EAChC,aAA4B,EAC5B,qBAA4C,EAC5C,eAAgC,EAChC,aAA4B,EAC5B,gBAAkC,EAClC,aAA4B,EAC5B,mBAAwC,EACxC,eAAgC,EAAA;QAThC,IAAK,CAAA,KAAA,GAAL,KAAK,CAAgB;QACrB,IAAe,CAAA,eAAA,GAAf,eAAe,CAAiB;QAChC,IAAa,CAAA,aAAA,GAAb,aAAa,CAAe;QAC5B,IAAqB,CAAA,qBAAA,GAArB,qBAAqB,CAAuB;QAC5C,IAAe,CAAA,eAAA,GAAf,eAAe,CAAiB;QAChC,IAAa,CAAA,aAAA,GAAb,aAAa,CAAe;QAC5B,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAkB;QAClC,IAAa,CAAA,aAAA,GAAb,aAAa,CAAe;QAC5B,IAAmB,CAAA,mBAAA,GAAnB,mBAAmB,CAAqB;QACxC,IAAe,CAAA,eAAA,GAAf,eAAe,CAAiB;QAjEnC,IAAW,CAAA,WAAA,GAAW,IAAI,CAAC,aAAa,EAAE,MAAM,EAAE,yBAAyB,IAAI,CAAC,CAAC;QACjF,IAAa,CAAA,aAAA,GAC3B,IAAI,CAAC,aAAa,EAAE,MAAM,EAAE,2BAA2B,IAAI,IAAI,CAAC;AAC3D,QAAA,IAAA,CAAA,MAAM,GAAG;AACd,YAAA,EAAC,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,WAAW,EAAC;AACrC,YAAA,EAAC,GAAG,EAAE,aAAa,EAAE,KAAK,EAAE,eAAe,EAAC;AAC5C,YAAA,EAAC,GAAG,EAAE,WAAW,EAAE,KAAK,EAAE,YAAY,EAAC;AACvC,YAAA,EAAC,GAAG,EAAE,WAAW,EAAE,KAAK,EAAE,YAAY,EAAC;SACxC,CAAC;QAIK,IAAsB,CAAA,sBAAA,GAAG,KAAK,CAAC;AAE7B,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,eAAe,CAAU,KAAK,CAAC,CAAC;AACjD,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,OAAO,EAAQ,CAAC;AACjC,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,OAAO,EAAQ,CAAC;AACjC,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,eAAe,CAAU,KAAK,CAAC,CAAC;AACrD,QAAA,IAAA,CAAA,iBAAiB,GAAG,IAAI,eAAe,CAAc,IAAI,CAAC,CAAC;AAC3D,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,eAAe,CAAU,IAAI,CAAC,CAAC;AACtC,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,eAAe,CAAO,IAAI,CAAC,CAAC;AAErD,QAAA,IAAA,CAAA,aAAa,GAA2C,IAAI,CAAC,QAAQ,CAAC,IAAI,CAC/EY,WAAS,CAAC,MACR,aAAa,CAAC;YACZ,IAAI,CAAC,eAAe,CAAC,oBAAoB,CAAC,IAAI,CAAC,UAAU,CAAC;AAC1D,YAAA,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,KAAK,CAAC;SACpC,CAAC,CACH,EACDC,KAAG,CAAC,CAAC,CAAC,YAAY,CAAC,KAAI;YACrB,MAAM,eAAe,GAAG,YAAY,EAAE,GAAG,CAAC,IAAI,KAAK;AACjD,gBAAA,GAAG,IAAI;AACP,gBAAA,SAAS,EAAE,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,6BAA6B,CAAC;AAC1F,aAAA,CAAC,CAAC,CAAC;YAEJ,OAAO,eAAe,IAAI,EAAE,CAAC;SAC9B,CAAC,EACFA,KAAG,CAAC,YAAY,IAAI,IAAI,CAAC,eAAe,CAAC,gCAAgC,CAAC,YAAY,CAAC,CAAC,EACxFA,KAAG,CAAC,YAAY,IAAG;YACjB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC;YAEjD,OAAO,YAAY,CAAC,GAAG,CAAC,IAAI,KAAK;AAC/B,gBAAA,GAAG,IAAI;AACP,gBAAA,SAAS,EAAE,MAAM,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;AACxD,aAAA,CAAC,CAAC,CAAC;SACL,CAAC,EACFC,KAAG,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EACpC,UAAU,CAAC,MAAK;AACd,YAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;AAChC,YAAA,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;SACf,CAAC,CACH,CAAC;AAEO,QAAA,IAAA,CAAA,uBAAuB,GAAG,IAAI,eAAe,CAAgB,EAAE,CAAC,CAAC;QAcxE,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAC9C,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;QACnD,IAAI,CAAC,sBAAsB,GAAG,QAAQ,CAAC,GAAG,CAAC,wBAAwB,CAAC,IAAI,EAAE,CAAC;KAC5E;IAED,QAAQ,GAAA;QACN,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxB,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAC9B,IAAI,CAAC,WAAW,EAAE,CAAC;KACpB;AAED,IAAA,YAAY,CAAC,IAAU,EAAA;AACrB,QAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAClC,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAC5B;IAED,gBAAgB,CAAC,WAAwB,EAAE,KAAa,EAAA;AACtD,QAAA,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAACjB,MAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,IAAG;AAC7D,YAAA,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC,GAAG,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;YAEvD,MAAM,SAAS,GAAqB,IAAI,CAAC,eAAe,CAAC,YAAY,CACnE,CAAA,uBAAA,EAA0B,WAAW,CAAC,qBAAqB,CAAU,OAAA,EAAA,WAAW,CAAC,MAAM,CAAA,SAAA,CAAW,EAClG,WAAW,CAAC,QAAQ,CACrB,CAAC;AAEF,YAAA,SAAS,CAAC,IAAI,CAACA,MAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAK;gBACrC,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAC/B,IAAI,CAAC,uBAAuB,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,aAAa,IAAI,aAAa,KAAK,KAAK,CAAC,CACzF,CAAC;AACJ,aAAC,CAAC,CAAC;AACL,SAAC,CAAC,CAAC;KACJ;AAED,IAAA,WAAW,CAAC,QAA+B,EAAA;AACzC,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC3B,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAE3B,QAAA,IAAI,CAAC,iBAAiB;AACnB,aAAA,IAAI,CAACA,MAAI,CAAC,CAAC,CAAC,CAAC;AACb,aAAA,IAAI,CACHiB,KAAG,CAAC,IAAI,IAAG;AACT,YAAA,IAAI,CAAC,qBAAqB;iBACvB,sBAAsB,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC;iBACvD,SAAS,CAAC,GAAG,IAAG;gBACf,IAAI,CAAC,gBAAgB,EAAE,CAAC;AACxB,gBAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC5B,gBAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACpC,aAAC,CAAC,CAAC;AACP,SAAC,CAAC,CACH;AACA,aAAA,SAAS,EAAE,CAAC;KAChB;IAED,mBAAmB,CAAC,OAAsB,EAAE,KAAa,EAAA;AACvD,QAAA,OAAO,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;KAChC;IAEM,WAAW,GAAA;QAChB,IAAI,CAAC,mBAAmB,CAAC,cAAc,EAAE,CAAC,SAAS,CACjD,YAAY,IAAG;YACb,IAAI,CAAC,OAAO,GAAG,YAAY,CAAC,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;SAC1D,EACD,KAAK,IAAG;AACN,YAAA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;AACvB,SAAC,CACF,CAAC;KACH;IAEO,gBAAgB,GAAA;AACtB,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAC1B;IAEO,sBAAsB,GAAA;AAC5B,QAAA,IAAI,CAAC,qBAAqB,CAAC,sBAAsB,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,SAAS,CACtF,MAAM,IAAG;AACP,YAAA,IAAI,CAAC,mBAAmB,GAAG,MAAM,CAAC;AAClC,YAAA,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC;SACpC,EACD,MAAK;AACH,YAAA,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC;AACrC,SAAC,CACF,CAAC;KACH;;4IAxJU,+CAA+C,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAxB,IAAA,CAAA,cAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,eAAA,EAAA,EAAA,EAAA,KAAA,EAAAF,IAAA,CAAA,aAAA,EAAA,EAAA,EAAA,KAAA,EAAAgB,IAAA,CAAA,qBAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,EAAA,EAAA,KAAA,EAAAN,IAAA,CAAA,aAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAAE,EAAA,CAAA,aAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,IAAA,CAAA,mBAAA,EAAA,EAAA,EAAA,KAAA,EAAAc,eAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA/C,+CAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,+CAA+C,2FCpC5D,k+GAwGA,EAAA,MAAA,EAAA,CAAA,g4BAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAJ,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,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,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAK,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,YAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,SAAA,EAAA,sBAAA,EAAA,kBAAA,EAAA,oBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,mBAAA,EAAA,eAAA,EAAA,QAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,OAAA,EAAA,UAAA,EAAA,cAAA,EAAA,UAAA,EAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,iBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,WAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,aAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,QAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,QAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,mCAAA,EAAA,QAAA,EAAA,uCAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,OAAA,EAAA,WAAA,EAAA,OAAA,EAAA,eAAA,EAAA,sBAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,QAAA,EAAA,eAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,qBAAA,EAAA,aAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,6BAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,GAAA,CAAA,OAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,UAAA,EAAA,MAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,GAAA,CAAA,MAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,WAAA,EAAA,MAAA,EAAA,UAAA,EAAA,UAAA,EAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,GAAA,CAAA,aAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,SAAA,EAAA,MAAA,EAAA,OAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,YAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAL,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FDpEa,+CAA+C,EAAA,UAAA,EAAA,CAAA;kBAL3D,SAAS;+BACE,qDAAqD,EAAA,QAAA,EAAA,k+GAAA,EAAA,MAAA,EAAA,CAAA,g4BAAA,CAAA,EAAA,CAAA;;;AEhCjE;;;;;;;;;;;;;;AAcG;MAmBU,oCAAoC,CAAA;AA6C/C,IAAA,WAAA,CACmB,KAAqB,EACrB,eAAgC,EAChC,aAA4B,EAC5B,qBAA4C,EAC5C,eAAgC,EAChC,aAA4B,EAC5B,gBAAkC,EAClC,aAA4B,EAC5B,eAAgC,EAAA;QARhC,IAAK,CAAA,KAAA,GAAL,KAAK,CAAgB;QACrB,IAAe,CAAA,eAAA,GAAf,eAAe,CAAiB;QAChC,IAAa,CAAA,aAAA,GAAb,aAAa,CAAe;QAC5B,IAAqB,CAAA,qBAAA,GAArB,qBAAqB,CAAuB;QAC5C,IAAe,CAAA,eAAA,GAAf,eAAe,CAAiB;QAChC,IAAa,CAAA,aAAA,GAAb,aAAa,CAAe;QAC5B,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAkB;QAClC,IAAa,CAAA,aAAA,GAAb,aAAa,CAAe;QAC5B,IAAe,CAAA,eAAA,GAAf,eAAe,CAAiB;QAnDnC,IAAW,CAAA,WAAA,GAAW,IAAI,CAAC,aAAa,EAAE,MAAM,EAAE,yBAAyB,IAAI,CAAC,CAAC;QACjF,IAAa,CAAA,aAAA,GAC3B,IAAI,CAAC,aAAa,EAAE,MAAM,EAAE,2BAA2B,IAAI,IAAI,CAAC;AAC3D,QAAA,IAAA,CAAA,MAAM,GAAG;AACd,YAAA,EAAC,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,WAAW,EAAC;AACrC,YAAA,EAAC,GAAG,EAAE,aAAa,EAAE,KAAK,EAAE,eAAe,EAAC;YAC5C,EAAC,GAAG,EAAE,WAAW,EAAE,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAC;AACzD,YAAA,EAAC,GAAG,EAAE,WAAW,EAAE,KAAK,EAAE,YAAY,EAAC;SACxC,CAAC;AACK,QAAA,IAAA,CAAA,OAAO,GAAG;AACf,YAAA;AACE,gBAAA,UAAU,EAAE,EAAE;AACd,gBAAA,SAAS,EAAE,qBAAqB;gBAChC,QAAQ,EAAE,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC;AAC3C,aAAA;AACD,YAAA;AACE,gBAAA,UAAU,EAAE,EAAE;AACd,gBAAA,SAAS,EAAE,gBAAgB;gBAC3B,QAAQ,EAAE,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC;AAC5C,aAAA;SACF,CAAC;AACO,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,eAAe,CAAU,KAAK,CAAC,CAAC;AACzC,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,eAAe,CAAO,IAAI,CAAC,CAAC;AACrD,QAAA,IAAA,CAAA,aAAa,GAAmC,IAAI,CAAC,QAAQ,CAAC,IAAI,CACvEC,WAAS,CAAC,MACR,aAAa,CAAC;YACZ,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC;AACjD,YAAA,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,KAAK,CAAC;SACpC,CAAC,CACH,EACDC,KAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAI;AACjB,YAAA,MAAM,YAAY,GAAG,QAAQ,EAAE,YAAY,IAAI,EAAE,CAAC;YAClD,MAAM,eAAe,GAAG,YAAY,CAAC,GAAG,CAAC,IAAI,KAAK;AAChD,gBAAA,GAAG,IAAI;AACP,gBAAA,SAAS,EAAE,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,6BAA6B,CAAC;AAC1F,aAAA,CAAC,CAAC,CAAC;YAEJ,OAAO,eAAe,IAAI,EAAE,CAAC;AAC/B,SAAC,CAAC,EACFA,KAAG,CAAC,YAAY,IAAI,IAAI,CAAC,eAAe,CAAC,gCAAgC,CAAC,YAAY,CAAC,CAAC,CACzF,CAAC;QAaA,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAC9C,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;QACnD,IAAI,CAAC,sBAAsB,GAAG,QAAQ,CAAC,GAAG,CAAC,wBAAwB,CAAC,IAAI,EAAE,CAAC;KAC5E;IAED,QAAQ,GAAA;QACN,IAAI,CAAC,gBAAgB,EAAE,CAAC;KACzB;AAED,IAAA,YAAY,CAAC,IAAU,EAAA;AACrB,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAE3B,QAAA,IAAI,CAAC,qBAAqB;AACvB,aAAA,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,sBAAsB,CAAC;aAC7C,IAAI,CACHD,WAAS,CAAC,YAAY,IACpB,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CACnF,CACF;aACA,SAAS,CACR,MAAK;AACH,YAAA,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,2CAA2C,CAAC,CAAC;YACxE,IAAI,CAAC,gBAAgB,EAAE,CAAC;AACxB,YAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAC7B,EACD,MAAK;AACH,YAAA,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAC;AACjE,YAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC9B,SAAC,CACF,CAAC;KACL;AAED,IAAA,gBAAgB,CAAC,WAAwB,EAAA;AACvC,QAAA,IAAI,CAAC,qBAAqB;AACvB,aAAA,WAAW,CAAC,WAAW,CAAC,MAAM,CAAC;AAC/B,aAAA,SAAS,CAAC,CAAC,QAAqB,KAAI;AACnC,YAAA,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC1E,SAAC,CAAC,CAAC;KACN;AAED,IAAA,iBAAiB,CAAC,WAAwB,EAAA;AACxC,QAAA,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC;YAC5B,UAAU,EAAE,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,kCAAkC,CAAC;YAC7E,QAAQ,EAAE,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,wCAAwC,CAAC;YACjF,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,mCAAmC,CAAC;YACpF,iBAAiB,EAAE,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,mCAAmC,CAAC;AACrF,YAAA,aAAa,EAAE,QAAQ;AACvB,YAAA,cAAc,EAAE,QAAQ;AACxB,YAAA,gBAAgB,EAAE,WAAW;AAC7B,YAAA,iBAAiB,EAAE,SAAS;AAC5B,YAAA,cAAc,EAAE,IAAI;AACpB,YAAA,aAAa,EAAE,IAAI;YACnB,uBAAuB,EAAE,MAAK;AAC5B,gBAAA,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC,SAAS,CAChF,MAAK;AACH,oBAAA,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,4CAA4C,CAAC,CAAC;oBACzE,IAAI,CAAC,gBAAgB,EAAE,CAAC;iBACzB,EACD,MAAK;AACH,oBAAA,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAC;AACrE,iBAAC,CACF,CAAC;aACH;AACF,SAAA,CAAC,CAAC;KACJ;IAEO,gBAAgB,GAAA;AACtB,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAC1B;;iIA5HU,oCAAoC,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAtB,IAAA,CAAA,cAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,eAAA,EAAA,EAAA,EAAA,KAAA,EAAAF,IAAA,CAAA,aAAA,EAAA,EAAA,EAAA,KAAA,EAAAgB,IAAA,CAAA,qBAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,EAAA,EAAA,KAAA,EAAAN,IAAA,CAAA,aAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAAE,EAAA,CAAA,aAAA,EAAA,EAAA,EAAA,KAAA,EAAAiB,eAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAApC,oCAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,oCAAoC,+ECjCjD,s6CA4CA,EAAA,MAAA,EAAA,CAAA,goBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAf,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,YAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,SAAA,EAAA,sBAAA,EAAA,kBAAA,EAAA,oBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,mBAAA,EAAA,eAAA,EAAA,QAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,OAAA,EAAA,UAAA,EAAA,cAAA,EAAA,UAAA,EAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,WAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,aAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,QAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,QAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAS,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FDXa,oCAAoC,EAAA,UAAA,EAAA,CAAA;kBALhD,SAAS;+BACE,yCAAyC,EAAA,QAAA,EAAA,s6CAAA,EAAA,MAAA,EAAA,CAAA,goBAAA,CAAA,EAAA,CAAA;;;AE7BrD;;;;;;;;;;;;;;AAcG;MAUU,kCAAkC,CAAA;AAK7C,IAAA,WAAA,CAA6B,aAA4B,EAAA;QAA5B,IAAa,CAAA,aAAA,GAAb,aAAa,CAAe;AACvD,QAAA,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;KACtC;AAEO,IAAA,SAAS,CAAC,MAAqB,EAAA;AACrC,QAAA,MAAM,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC;QAC7C,IAAI,CAAC,sBAAsB,GAAG,cAAc,KAAK,cAAc,CAAC,SAAS,CAAC;QAC1E,IAAI,CAAC,2BAA2B,GAAG,cAAc,KAAK,cAAc,CAAC,cAAc,CAAC;QACpF,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC,cAAc,KAAK,cAAc,CAAC,EAAE,CAAC;KACrE;;+HAdU,kCAAkC,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,aAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAlC,kCAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,kCAAkC,4ECxB/C,s7BAqBA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAtB,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA6B,+CAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,oCAAA,EAAA,QAAA,EAAA,yCAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FDGa,kCAAkC,EAAA,UAAA,EAAA,CAAA;kBAL9C,SAAS;+BACE,sCAAsC,EAAA,QAAA,EAAA,s7BAAA,EAAA,CAAA;;;AEpBlD;;;;;;;;;;;;;;AAcG;MASU,OAAO,GAAG,IAAI,cAAc,CAAsB,QAAQ,EAAE;AAC5D,MAAA,YAAY,GAAG,IAAI,GAAG,CAAiB;AAClD,IAAA,CAAC,WAAW,CAAC,OAAO,EAAE,gCAAgC,CAAC;AACvD,IAAA,CAAC,WAAW,CAAC,QAAQ,EAAE,iCAAiC,CAAC;AACzD,IAAA,CAAC,WAAW,CAAC,KAAK,EAAE,8BAA8B,CAAC;AACnD,IAAA,CAAC,WAAW,CAAC,SAAS,EAAE,kCAAkC,CAAC;AAC5D,CAAA;;AC7BD;;;;;;;;;;;;;;AAcG;MAgBU,mCAAmC,CAAA;AAmF9C,IAAA,WAAA,CACmB,KAAqB,EACrB,mBAAwC,EACxC,YAA0B,EAAA;QAF1B,IAAK,CAAA,KAAA,GAAL,KAAK,CAAgB;QACrB,IAAmB,CAAA,mBAAA,GAAnB,mBAAmB,CAAqB;QACxC,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAc;QAnF5B,IAAW,CAAA,WAAA,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;QAEvE,IAAY,CAAA,YAAA,GAAsC,IAAI,CAAC,WAAW,CAAC,IAAI,CACtF,SAAS,CAAC,UAAU,IAAI,IAAI,CAAC,mBAAmB,CAAC,sBAAsB,CAAC,UAAU,CAAC,CAAC,CACrF,CAAC;AAEO,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAC3C,GAAG,CAAC,MAAK;AACP,YAAA,MAAM,UAAU,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;YACxC,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACvC,MAAM,WAAW,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AAElD,YAAA,OAAO,WAAW,CAAC;SACpB,CAAC,CACH,CAAC;QAEO,IAAsB,CAAA,sBAAA,GAAuB,aAAa,CAAC;AAClE,YAAA,IAAI,CAAC,YAAY;AACjB,YAAA,IAAI,CAAC,WAAW;AACjB,SAAA,CAAC,CAAC,IAAI,CACL,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE,UAAU,CAAC,KAAI;YAChC,MAAM,WAAW,GAAG,WAAW,EAAE,IAAI,CACnC,IAAI,IAAI,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,KAAK,UAAU,EAAE,WAAW,EAAE,CAC/D,CAAC;AAEF,YAAA,MAAM,cAAc,GAAG,WAAW,EAAE,GAAG,CAAC;AAExC,YAAA,IAAI,WAAW,IAAI,UAAU,IAAI,cAAc;AAAE,gBAAA,OAAO,cAAc,CAAC;AAEvE,YAAA,OAAO,EAAE,CAAC;SACX,CAAC,CACH,CAAC;AAEO,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,eAAe,CAAU,IAAI,CAAC,CAAC;AAE9C,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,eAAe,CAAU,KAAK,CAAC,CAAC;QAE/C,IAAQ,CAAA,QAAA,GAAyC,aAAa,CAAC;AACtE,YAAA,IAAI,CAAC,WAAW;AAChB,YAAA,IAAI,CAAC,sBAAsB;AAC5B,SAAA,CAAC,CAAC,IAAI,CACL,SAAS,CAAC,CAAC,CAAC,UAAU,EAAE,qBAAqB,CAAC,KAC5C,UAAU,IAAI,qBAAqB;cAC/B,IAAI,CAAC,mBAAmB,CAAC,wBAAwB,CAAC,UAAU,EAAE,qBAAqB,CAAC,CAAC,IAAI,CACvF,GAAG,CAAC,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,KAAK,EAAC,GAAG,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,GAAG,EAAC,CAAC,CAAC,CAAC,EAChF,GAAG,CAAC,MAAK;AACP,gBAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC1B,gBAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC3B,aAAC,CAAC,CACH;cACD,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CACX,GAAG,CAAC,MAAK;AACP,gBAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC1B,gBAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC5B,aAAC,CAAC,CACH,CACN,CACF,CAAC;QAEO,IAAQ,CAAA,QAAA,GAAG,IAAI,eAAe,CAAqB;AAC1D,YAAA;AACE,gBAAA,mBAAmB,EAAE,4BAA4B;AACjD,gBAAA,OAAO,EAAE,OAAO;AACjB,aAAA;AACD,YAAA;AACE,gBAAA,mBAAmB,EAAE,qCAAqC;AAC1D,gBAAA,OAAO,EAAE,gBAAgB;AAC1B,aAAA;AACD,YAAA;AACE,gBAAA,mBAAmB,EAAE,4BAA4B;AACjD,gBAAA,OAAO,EAAE,OAAO;AACjB,aAAA;AACF,SAAA,CAAC,CAAC;AAEM,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,eAAe,CAAoB,IAAI,CAAC,CAAC;AAE3D,QAAA,IAAA,CAAA,0BAA0B,GAAG,IAAI,eAAe,CAAU,KAAK,CAAC,CAAC;KAQtE;AAEJ,IAAA,UAAU,CAAC,MAAkB,EAAA;AAC3B,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAACtB,MAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,IAAG;AACpD,YAAA,IAAI,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,UAAU,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAC1E,GAAG,IAAG;AACJ,gBAAA,MAAM,UAAU,GAAG,GAAG,CAAC,cAAc,CAAC;AACtC,gBAAA,UAAU,CAAC,UAAU,GAAG,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,KAAK;AAC9D,oBAAA,GAAG,SAAS;AACZ,oBAAA,QAAQ,EAAE,IAAI;AACf,iBAAA,CAAC,CAAC,CAAC;AACJ,gBAAA,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;aAC/B,EACD,MAAK;gBACH,IAAI,CAAC,YAAY,EAAE,CAAC;AACtB,aAAC,CACF,CAAC;AACJ,SAAC,CAAC,CAAC;KACJ;IAED,IAAI,GAAA;AACF,QAAA,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,MAAK;AAChC,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC9B,SAAC,CAAC,CAAC;KACJ;IAEO,IAAI,GAAA;QACV,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;KACnD;AAEO,IAAA,YAAY,CAAC,UAAuB,EAAA;AAC1C,QAAA,IAAI,UAAU,EAAE;AACd,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AAClC,YAAA,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC7C,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC5C,SAAA;QAED,IAAI,CAAC,IAAI,EAAE,CAAC;KACb;;gIA9HU,mCAAmC,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAP,IAAA,CAAA,cAAA,EAAA,EAAA,EAAA,KAAA,EAAA8B,mBAAA,EAAA,EAAA,EAAA,KAAA,EAAAhC,IAAA,CAAA,YAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAnC,mCAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,mCAAmC,+KC9BhD,kiEA2DA,EAAA,MAAA,EAAA,CAAA,goBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAgB,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAN,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,SAAA,EAAA,YAAA,EAAA,UAAA,EAAA,cAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAV,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,WAAA,EAAA,QAAA,EAAA,QAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,cAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,EAAA,SAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,0BAAA,EAAA,qBAAA,EAAA,yBAAA,EAAA,oBAAA,EAAA,qBAAA,EAAA,gBAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,MAAA,CAAA,EAAA,OAAA,EAAA,CAAA,mBAAA,EAAA,mBAAA,EAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,cAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,cAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,WAAA,EAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAgB,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FD7Ba,mCAAmC,EAAA,UAAA,EAAA,CAAA;kBAL/C,SAAS;+BACE,qBAAqB,EAAA,QAAA,EAAA,kiEAAA,EAAA,MAAA,EAAA,CAAA,goBAAA,CAAA,EAAA,CAAA;mKAKD,eAAe,EAAA,CAAA;sBAA5C,SAAS;uBAAC,iBAAiB,CAAA;;;AE/B9B;;;;;;;;;;;;;;AAcG;MAYU,UAAU,CAAA;AAMrB,IAAA,WAAA,CACmB,SAA8B,YAAY,EAC1C,aAA4B,EACrC,KAAqB,EACrB,MAAc,EAAA;QAFL,IAAa,CAAA,aAAA,GAAb,aAAa,CAAe;QACrC,IAAK,CAAA,KAAA,GAAL,KAAK,CAAgB;QACrB,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;QARhB,IAAI,CAAA,IAAA,GAAc,EAAE,CAAC;AAU3B,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,OAAO,EAAE,CAAC;QACf,IAAI,CAAC,sBAAsB,EAAE,CAAC;KAC/B;IAEM,OAAO,GAAA;QACZ,OAAO,IAAI,CAAC,IAAI,CAAC;KAClB;AAEO,IAAA,OAAO,CAAC,SAA+B,EAAA;QAC7C,IAAI,CAAC,GAAG,CAAC,CAAC;AAEV,QAAA,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;QAEf,IAAI,CAAC,OAAO,GAAG,SAAS;AACtB,cAAE,IAAI,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;AACrF,cAAE,IAAI,CAAC,MAAM,CAAC;QAEhB,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,IAAI,KAAI;AACvC,YAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;AAChD,YAAA,CAAC,EAAE,CAAC;AACN,SAAC,CAAC,CAAC;KACJ;AAED,IAAA,mBAAmB,CAAC,sBAA8B,EAAA;AAChD,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE,MAAM,EAAE,eAAe,EAAE;AAC/C,YAAA,MAAM,eAAe,GAAG,IAAI,CAAC,aAAa,EAAE,MAAM,EAAE,eAAe,CAAC,sBAAsB,CAAC,CAAC;AAC5F,YAAA,MAAM,GAAG,GAAG,IAAI,GAAG,EAAE,CAAC;AAEtB,YAAA,eAAe,EAAE,OAAO,CAAC,IAAI,IAAG;AAC9B,gBAAA,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,mCAAmC,CAAC,CAAC;AACrD,aAAC,CAAC,CAAC;AAEH,YAAA,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC;AACtB,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI,GAAG,EAAkB,CAAC;AAC5C,SAAA;KACF;IAEO,sBAAsB,GAAA;QAC5B,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,KAAsB,KAAI;YACtD,IAAI,KAAK,YAAY,aAAa,EAAE;AAClC,gBAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AAC9B,aAAA;AACH,SAAC,CAAC,CAAC;KACJ;;AAzDU,UAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAU,kBAOX,OAAO,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,aAAA,EAAA,EAAA,EAAA,KAAA,EAAAf,IAAA,CAAA,cAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,MAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAPN,UAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAU,cAFT,MAAM,EAAA,CAAA,CAAA;2FAEP,UAAU,EAAA,UAAA,EAAA,CAAA;kBAHtB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;0BAQI,MAAM;2BAAC,OAAO,CAAA;;;ACjCnB;;;;;;;;;;;;;;AAcG;MAgCU,2CAA2C,CAAA;AAuBtD,IAAA,WAAA,CACU,KAAqB,EACrB,MAAc,EACd,cAA8B,EAC9B,kBAAsC,EACtC,eAAgC,EAChC,eAAgC,EAChC,eAAgC,EAChC,MAAiB,EACR,mBAAwC,EAAA;QARjD,IAAK,CAAA,KAAA,GAAL,KAAK,CAAgB;QACrB,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;QACd,IAAc,CAAA,cAAA,GAAd,cAAc,CAAgB;QAC9B,IAAkB,CAAA,kBAAA,GAAlB,kBAAkB,CAAoB;QACtC,IAAe,CAAA,eAAA,GAAf,eAAe,CAAiB;QAChC,IAAe,CAAA,eAAA,GAAf,eAAe,CAAiB;QAChC,IAAe,CAAA,eAAA,GAAf,eAAe,CAAiB;QAChC,IAAM,CAAA,MAAA,GAAN,MAAM,CAAW;QACR,IAAmB,CAAA,mBAAA,GAAnB,mBAAmB,CAAqB;QAnBlD,IAAQ,CAAA,QAAA,GAAwB,IAAI,CAAC,mBAAmB;AAC9D,aAAA,cAAc,EAAE;AAChB,aAAA,IAAI,CAACwB,KAAG,CAAC,YAAY,IAAI,YAAY,EAAE,KAAK,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;AAIhE,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,YAAY,EAAE,CAAC;KActC;IAEI,eAAe,GAAA;AACrB,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;AAC5B,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;AAC1B,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;AAC3B,QAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;AAC/B,QAAA,IAAI,CAAC,cAAc;aAChB,oCAAoC,CAAC,IAAI,CAAC,mBAAmB,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC;AACrF,aAAA,IAAI,CAAChB,MAAI,CAAC,CAAC,CAAC,CAAC;aACb,SAAS,CAAC,kBAAkB,IAAG;AAC9B,YAAA,IAAI,kBAAkB,EAAE;gBACtB,QAAQ,kBAAkB,CAAC,IAAI;AAC7B,oBAAA,KAAK,MAAM;wBACT,IAAI,CAAC,cAAc,GAAG,kBAAkB,CAAC,UAAU,CAAC,aAAa,CAAC;AAClE,wBAAA,IAAI,CAAC,aAAa,GAAG,kBAAkB,CAAC,aAAa,CAAC;wBACtD,MAAM;AACR,oBAAA,KAAK,WAAW;wBACd,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAC,UAAU,CAAC,kBAAkB,CAAC;wBAC3E,MAAM;AACT,iBAAA;AACD,gBAAA,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;AACnB,aAAA;AAAM,iBAAA;;AAEL,gBAAA,IAAI,CAAC,eAAe;qBACjB,iDAAiD,CAChD,IAAI,CAAC,oBAAoB,EACzB,IAAI,CAAC,UAAU,CAChB;AACA,qBAAA,IAAI,CAACA,MAAI,CAAC,CAAC,CAAC,CAAC;AACb,qBAAA,SAAS,CAAC;oBACT,IAAI,EAAE,iCAAiC,IACrC,IAAI,CAAC,mBAAmB,CAAC,iCAAiC,CAAC;oBAC7D,KAAK,EAAE,KAAK,IAAG;AACb,wBAAA,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;qBACnB;AACF,iBAAA,CAAC,CAAC;AACN,aAAA;AACH,SAAC,CAAC,CAAC;KACN;AAEO,IAAA,mBAAmB,CAAC,iCAAsC,EAAA;AAChE,QAAA,IAAI,CAAC,eAAe,GAAG,iCAAiC,CAAC,eAAe,CAAC;AACzE,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACrE,MAAM,QAAQ,GAAG,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACjD,QAAA,QAAQ,QAAQ;AACd,YAAA,KAAK,uBAAuB;AAC1B,gBAAA,IAAI,CAAC,cAAc,GAAG,iCAAiC,CAAC;AACxD,gBAAA,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,SAAS,CACzD,QAAQ,IAAG;oBACT,IAAI,CAAC,UAAU,GAAG;wBAChB,IAAI,EAAE,QAAQ,CAAC,OAAO;qBACvB,CAAC;AACJ,iBAAC,EACD,MAAM,IAAI,EAAE,CACb,CAAC;AACF,gBAAA,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;gBAClB,MAAM;AACR,YAAA,KAAK,2BAA2B;AAC9B,gBAAA,IAAI,CAAC,eAAe;AACjB,qBAAA,2BAA2B,CAAC,IAAI,CAAC,oBAAoB,EAAE;oBACtD,UAAU,EAAE,IAAI,CAAC,UAAU;AAC3B,oBAAA,sBAAsB,EAAE,IAAI;iBAC7B,CAAC;AACD,qBAAA,SAAS,CAAC,MAAM,KAAK,IAAI,CAAC,kBAAkB,GAAG,MAAM,CAAC,kBAAkB,CAAC,CAAC,CAAC;AAC9E,gBAAA,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;gBAClB,MAAM;AACR,YAAA,KAAK,oBAAoB;gBACvB,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAClC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAC/D,CAAC;AACF,gBAAA,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;gBAC3B,MAAM;AACR,YAAA,KAAK,gCAAgC;AACnC,gBAAA,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAACA,MAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,IAAG;AACjD,oBAAA,MAAM,UAAU,GAAG,MAAM,EAAE,UAAU,CAAC;AAEtC,oBAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;wBACxD,KAAK,EAAE,EAAC,IAAI,UAAU,IAAI,EAAC,UAAU,EAAC,CAAC,EAAC;AACzC,qBAAA,CAAC,CAAC;AACL,iBAAC,CAAC,CAAC;gBACH,MAAM;AACR,YAAA;AACE,gBAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;AAC/C,SAAA;KACF;IAED,SAAS,CAAC,yBAAoD,EAAE,UAAkB,EAAA;AAChF,QAAA,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,sBAAsB,GAAG,yBAAyB,CAAC,EAAE,CAAC,oBAAoB,CAAC,IAAI,CAAC;QACrF,IAAI,CAAC,oBAAoB,GAAG,yBAAyB,CAAC,EAAE,CAAC,oBAAoB,CAAC;AAC9E,QAAA,IAAI,CAAC,mBAAmB,GAAG,yBAAyB,CAAC,eAAe,CAAC;AACrE,QAAA,IAAI,CAAC,WAAW,GAAG,yBAAyB,CAAC,WAAW,CAAC;AACzD,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,iBAAiB,EAAE,CAAC;AACvC,QAAA,IAAI,CAAC,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;AAClC,QAAA,MAAM,kBAAkB,GAAuB,UAAU,UAAU,EAAE,QAAQ,EAAA;AAC3E,YAAA,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;AAC7B,SAAC,CAAC;AACF,QAAA,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;QAC1C,IAAI,CAAC,eAAe,EAAE,CAAC;KACxB;AAEM,IAAA,QAAQ,CAAC,UAA4B,EAAA;AAC1C,QAAA,IAAI,CAAC,gBAAgB,GAAG,UAAU,CAAC;QACnC,IAAI,IAAI,CAAC,aAAa,EAAE;AACtB,YAAA,IAAI,CAAC,kBAAkB;AACpB,iBAAA,UAAU,CAAC,IAAI,CAAC,aAAa,EAAE,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC;AAChE,iBAAA,SAAS,CAAC;AACT,gBAAA,IAAI,EAAE,CAAC,oBAA0C,KAAI;oBACnD,IAAI,CAAC,aAAa,EAAE,CAAC;iBACtB;gBACD,KAAK,EAAE,MAAM,IAAG;AACd,oBAAA,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;iBAC9B;AACF,aAAA,CAAC,CAAC;AACN,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,eAAe;iBACjB,QAAQ,CACP,IAAI,CAAC,oBAAoB,EACzB,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,EAAE,EAChC,UAAU,CAAC,IAAI,EACf,IAAI,CAAC,UAAU,CAChB;AACA,iBAAA,SAAS,CACR,CAAC,oBAA0C,KAAI;gBAC7C,IAAI,CAAC,aAAa,EAAE,CAAC;aACtB,EACD,MAAM,IAAG;AACP,gBAAA,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;AAC/B,aAAC,CACF,CAAC;AACL,SAAA;KACF;IAEM,aAAa,GAAA;AAClB,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;AAClB,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;KACxB;IAEM,kBAAkB,GAAA;AACvB,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QAClB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,EAAE,EAAC,WAAW,EAAE,EAAC,OAAO,EAAE,IAAI,CAAC,oBAAoB,EAAC,EAAC,CAAC,CAAC;KAC3F;;wIA/KU,2CAA2C,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAP,IAAA,CAAA,cAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,MAAA,EAAA,EAAA,EAAA,KAAA,EAAAD,IAAA,CAAA,cAAA,EAAA,EAAA,EAAA,KAAA,EAAAD,EAAA,CAAA,kBAAA,EAAA,EAAA,EAAA,KAAA,EAAAgB,EAAA,CAAA,eAAA,EAAA,EAAA,EAAA,KAAA,EAAAhB,EAAA,CAAA,eAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,EAAA,CAAA,eAAA,EAAA,EAAA,EAAA,KAAA,EAAAU,IAAA,CAAA,SAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,IAAA,CAAA,mBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA3C,2CAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,2CAA2C,kUC9CxD,s/DA8DA,EAAA,MAAA,EAAA,CAAA,usBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,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,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,SAAA,EAAA,YAAA,EAAA,UAAA,EAAA,cAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,cAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,OAAA,EAAA,UAAA,EAAA,uBAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAb,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,EAAA,oBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAY,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAE,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;2FDhBa,2CAA2C,EAAA,UAAA,EAAA,CAAA;kBANvD,SAAS;+BACE,gDAAgD,EAAA,aAAA,EAG3C,iBAAiB,CAAC,IAAI,EAAA,QAAA,EAAA,s/DAAA,EAAA,MAAA,EAAA,CAAA,usBAAA,CAAA,EAAA,CAAA;sVAmBD,IAAI,EAAA,CAAA;sBAAvC,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,MAAM,EAAE,EAAC,MAAM,EAAE,KAAK,EAAC,CAAA;gBACyB,KAAK,EAAA,CAAA;sBAA/D,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,6BAA6B,EAAE,EAAC,MAAM,EAAE,KAAK,EAAC,CAAA;gBAC/C,UAAU,EAAA,CAAA;sBAAnB,MAAM;;;AEjET;;;;;;;;;;;;;;AAcG;MAuBU,0BAA0B,CAAA;AAiBrC,IAAA,WAAA,CAA6B,eAAgC,EAAA;QAAhC,IAAe,CAAA,eAAA,GAAf,eAAe,CAAiB;QAbpD,IAAa,CAAA,aAAA,GAAG,IAAI,CAAC;AAEpB,QAAA,IAAA,CAAA,2BAA2B,GAAG,IAAI,YAAY,EAAE,CAAC;QAE3D,IAAc,CAAA,cAAA,GAAkB,IAAI,CAAC;AAE5B,QAAA,IAAA,CAAA,0BAA0B,GAAG,IAAI,eAAe,CAAc,SAAS,CAAC,CAAC;AACzE,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,eAAe,CAAU,IAAI,CAAC,CAAC;AAC/C,QAAA,IAAA,CAAA,mBAAmB,GAAG,IAAI,eAAe,CAAS,IAAI,CAAC,CAAC;AACxD,QAAA,IAAA,CAAA,qBAAqB,GAAG,IAAI,eAAe,CAAS,IAAI,CAAC,CAAC;AAE3D,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,YAAY,EAAE,CAAC;KAEqB;IAEjE,QAAQ,GAAA;QACN,IAAI,CAAC,cAAc,CAAC,GAAG,CACrB,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,cAAc,IAAG;AACjF,YAAA,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YACrD,IAAI,IAAI,CAAC,UAAU,EAAE;gBACnB,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AAC/C,gBAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC;gBACtC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;AACxD,aAAA;YACD,IAAI,CAAC,MAAM,EAAE,CAAC;SACf,CAAC,CACH,CAAC;KACH;AAED,IAAA,WAAW,CAAC,OAAsB,EAAA;AAChC,QAAA,MAAM,UAAU,GAAG,OAAO,EAAE,UAAU,EAAE,YAAY,CAAC;AACrD,QAAA,MAAM,gBAAgB,GAAG,OAAO,EAAE,gBAAgB,EAAE,YAAY,CAAC;QAEjE,IAAI,UAAU,IAAI,gBAAgB,EAAE;YAClC,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,CAAC;AAClD,YAAA,IAAI,CAAC,cAAc,GAAG,UAAU,IAAI,IAAI,CAAC;AACzC,YAAA,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;AACnD,SAAA;AAAM,aAAA;YACL,IAAI,CAAC,KAAK,EAAE,CAAC;AACd,SAAA;KACF;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC;KACnC;AAED,IAAA,cAAc,CAAC,MAAc,EAAA;QAC3B,IAAI,CAAC,OAAO,EAAE,CAAC;AAEf,QAAA,IAAI,CAAC,eAAe;AACjB,aAAA,uBAAuB,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC;AAChD,aAAA,IAAI,CACHY,KAAG,CAAC,MAAK;AACP,YAAA,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC;AAC7B,YAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACtC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YACvD,IAAI,CAAC,UAAU,EAAE,CAAC;YAClB,IAAI,CAAC,MAAM,EAAE,CAAC;AAChB,SAAC,CAAC,CACH;AACA,aAAA,SAAS,EAAE,CAAC;KAChB;IAED,gBAAgB,GAAA;QACd,IAAI,CAAC,OAAO,EAAE,CAAC;AACf,QAAA,IAAI,CAAC,eAAe;AACjB,aAAA,2BAA2B,CAAC,IAAI,CAAC,UAAU,CAAC;AAC5C,aAAA,IAAI,CACHA,KAAG,CAAC,MAAK;YACP,IAAI,CAAC,KAAK,EAAE,CAAC;YACb,IAAI,CAAC,UAAU,EAAE,CAAC;YAClB,IAAI,CAAC,MAAM,EAAE,CAAC;AAChB,SAAC,CAAC,CACH;AACA,aAAA,SAAS,EAAE,CAAC;KAChB;AAED,IAAA,mBAAmB,CAAC,KAAkB,EAAA;AACpC,QAAA,QACE,KAAK;YACL,KAAK;AACF,iBAAA,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAI;AACb,gBAAA,IAAI,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,QAAQ,EAAE;oBAC5B,OAAO,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;AAC7C,iBAAA;AACH,aAAC,CAAC;iBACD,GAAG,CAAC,IAAI,KAAK,EAAC,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAC,CAAC,CAAC,EACjD;KACH;IAEO,KAAK,GAAA;AACX,QAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACpC,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;KAC5B;IAEO,UAAU,GAAA;AAChB,QAAA,IAAI,CAAC,2BAA2B,CAAC,IAAI,EAAE,CAAC;KACzC;IAEO,MAAM,GAAA;AACZ,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC5B;IAEO,OAAO,GAAA;AACb,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAC3B;;uHA7GU,0BAA0B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAxB,EAAA,CAAA,eAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA1B,0BAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,0BAA0B,uSCrCvC,8xEA2DA,EAAA,MAAA,EAAA,CAAA,mJAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,IAAA,CAAA,iCAAA,EAAA,QAAA,EAAA,oCAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,eAAA,EAAA,UAAA,EAAA,cAAA,EAAA,mBAAA,EAAA,2BAAA,EAAA,cAAA,EAAA,OAAA,EAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,EAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAe,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FDtBa,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBALtC,SAAS;+BACE,6BAA6B,EAAA,QAAA,EAAA,8xEAAA,EAAA,MAAA,EAAA,CAAA,mJAAA,CAAA,EAAA,CAAA;sGAK9B,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,gBAAgB,EAAA,CAAA;sBAAxB,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBAEI,2BAA2B,EAAA,CAAA;sBAApC,MAAM;;;AE3CT;;;;;;;;;;;;;;AAcG;MAyCU,sBAAsB,CAAA;IA0EjC,WACmB,CAAA,wBAAkD,EAClD,gBAAkC,EAClC,eAAgC,EAChC,cAA8B,EAC9B,KAAqB,EACrB,MAAc,EACd,QAAkB,EAClB,UAAsB,EACtB,aAA4B,EAC5B,eAAgC,EAChC,MAAiB,EACjB,iBAAoC,EACpC,gBAAkC,EAAA;QAZlC,IAAwB,CAAA,wBAAA,GAAxB,wBAAwB,CAA0B;QAClD,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAkB;QAClC,IAAe,CAAA,eAAA,GAAf,eAAe,CAAiB;QAChC,IAAc,CAAA,cAAA,GAAd,cAAc,CAAgB;QAC9B,IAAK,CAAA,KAAA,GAAL,KAAK,CAAgB;QACrB,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;QACd,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAU;QAClB,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;QACtB,IAAa,CAAA,aAAA,GAAb,aAAa,CAAe;QAC5B,IAAe,CAAA,eAAA,GAAf,eAAe,CAAiB;QAChC,IAAM,CAAA,MAAA,GAAN,MAAM,CAAW;QACjB,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAmB;QACpC,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAkB;QAhF9C,IAAQ,CAAA,QAAA,GAAa,IAAI,CAAC;QAC1B,IAAS,CAAA,SAAA,GAAkB,IAAI,CAAC;QAEhC,IAA2B,CAAA,2BAAA,GAAe,EAAE,CAAC;QAC7C,IAA0B,CAAA,0BAAA,GAAgC,EAAE,CAAC;QAE7D,IAAwB,CAAA,wBAAA,GAAe,EAAE,CAAC;QAC1C,IAAiB,CAAA,iBAAA,GAAiC,IAAI,CAAC;AAKrD,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,eAAe,CAAO,IAAI,CAAC,CAAC;AAEnD,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,eAAe,CAAS,EAAE,CAAC,CAAC;AAE9C,QAAA,IAAA,CAAA,SAAS,GAAgC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAC1E,SAAS,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAClC,GAAG,CAAC,MAAM,IAAI,MAAM,EAAE,UAAU,CAAC,EACjC,SAAS,CAAC,UAAU,IAClB,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAC1E,EACD,GAAG,CAAC,QAAQ,IAAG;AACb,YAAA,IAAI,QAAQ,EAAE;gBACZ,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;AAC3C,gBAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;AAEzB,gBAAA,IACE,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,mBAAmB,EAAE,cAAc,CAC3D,IAAI,CAAC,sBAAsB,CAAC,WAAW,EAAE,CAC1C;AACD,oBAAA,IAAI,CAAC,wBAAwB,CAAC,MAAM,KAAK,CAAC,EAC1C;AACA,oBAAA,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,mBAAmB,CAC3C,IAAI,CAAC,sBAAsB,CAAC,WAAW,EAAE,CAC1C,EAAE,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,CAAC,CAAC;AAC3D,iBAAA;AACF,aAAA;SACF,CAAC,CACH,CAAC;AAEO,QAAA,IAAA,CAAA,OAAO,GAAuB,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC,CAAC,IAAI,CACjF,SAAS,CAAC,MAAM,IAAI,CAAC,eAAe,CAAC,eAAe,EAAE,CAAC,EACvD,GAAG,CAAC,OAAO,IAAI,OAAO,EAAE,EAAE,CAAC,CAC5B,CAAC;AAEO,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,eAAe,CAAU,KAAK,CAAC,CAAC;QAEnD,IAAwB,CAAA,wBAAA,GAAwB,aAAa,CAAC;AACrE,YAAA,IAAI,CAAC,WAAW;AAChB,YAAA,IAAI,CAAC,OAAO;AACb,SAAA,CAAC,CAAC,IAAI,CACL,GAAG,CAAC,CAAC,CAAC,UAAU,EAAE,MAAM,CAAC,KAAK,UAAU,IAAI,MAAM,IAAI,UAAU,KAAK,MAAM,CAAC,EAC5E,SAAS,CAAC,IAAI,CAAC,CAChB,CAAC;QAEO,IAAuB,CAAA,uBAAA,GAAuB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAC3E,GAAG,CAAC,MAAM,IAAI,MAAM,CAAC,sBAAsB,IAAI,EAAE,CAAC,CACnD,CAAC;AAEO,QAAA,IAAA,CAAA,gBAAgB,GAAwB,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAChF,SAAS,CAAC,sBAAsB,IAC9B,IAAI,CAAC,eAAe,CAAC,eAAe,CAAC,sBAAsB,CAAC,CAC7D,EACD,GAAG,CAAC,YAAY,IAAI,YAAY,EAAE,eAAe,CAAC,CACnD,CAAC;QAiBA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC;AAC7C,QAAA,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,wBAAwB,CAAC,IAAI,EAAE,CAAC;AAChF,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;QACxD,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;KAClE;IAED,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,aAAa,CAChC,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,EACzB,IAAI,CAAC,wBAAwB,EAC7B,IAAI,CAAC,gBAAgB,EACrB,IAAI,CAAC,gBAAgB,EACrB,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,QAAQ,CACd,CAAC;AACF,QAAA,IAAI,CAAC,eAAe;AACjB,aAAA,qBAAqB,CAAC,IAAI,CAAC,sBAAsB,CAAC;aAClD,SAAS,CAAC,UAAU,IAAG;YACtB,IAAI,CAAC,2BAA2B,GAAG,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC;YAC3D,IAAI,CAAC,aAAa,EAAE,CAAC;AACvB,SAAC,CAAC,CAAC;QACL,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC/C,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC5C,IAAI,CAAC,kCAAkC,EAAE,CAAC;KAC3C;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,iBAAiB,CAAC,qBAAqB,EAAE,CAAC;KAChD;IAEM,kCAAkC,GAAA;AACvC,QAAA,IAAI,CAAC,eAAe;AACjB,aAAA,8BAA8B,CAAC,IAAI,CAAC,sBAAsB,CAAC;aAC3D,SAAS,CAAC,0BAA0B,IAAG;AACtC,YAAA,IAAI,CAAC,0BAA0B,GAAG,0BAA0B,CAAC,MAAM,CACjE,yBAAyB,IAAI,yBAAyB,CAAC,eAAe,CACvE,CAAC;YACF,IAAI,CAAC,2BAA2B,GAAG;AACjC,gBAAA;AACE,oBAAA,GAAG,EAAE,aAAa;AAClB,oBAAA,KAAK,EAAE,QAAQ;AAChB,iBAAA;aACF,CAAC;AACJ,SAAC,CAAC,CAAC;KACN;AAED,IAAA,YAAY,CAAC,yBAAoD,EAAA;QAC/D,IAAI,CAAC,sBAAsB,CAAC,SAAS,CAAC,yBAAyB,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;KACnF;IAED,aAAa,GAAA;AACX,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAE7B,QAAA,IAAI,CAAC,OAAO;aACT,IAAI,CACH,IAAI,CAAC,CAAC,CAAC,EACP,SAAS,CAAC,MAAM,IAAI,IAAI,CAAC,eAAe,CAAC,uBAAuB,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAC3F;aACA,SAAS,CACR,MAAW;AACT,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC9B,YAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAClC,EACD,MAAW;AACT,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC9B,YAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,mDAAmD,CAAC,CAAC;AACzE,SAAC,CACF,CAAC;KACL;IAED,2BAA2B,GAAA;AACzB,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAClC;AAEO,IAAA,0BAA0B,CAAC,IAAI,EAAA;AACrC,QAAA,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC;AACjC,YAAA,KAAK,EAAE,IAAI,CAAC,qBAAqB,CAAC,IAAI,EAAE;AACxC,YAAA,UAAU,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;AACnC,YAAA,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI,IAAI;AAClC,YAAA,WAAW,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE;AACtC,YAAA,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE;YAChC,KAAK,EAAE,IAAI,CAAC,eAAe,CAAC,EAAE,MAAM,CAClC,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,GAAG,IAAI,CAAC,yBAAyB,CAAC,IAAI,EAAE,IAAI,CAAC,EACjE,EAAE,CACH;AACF,SAAA,CAAC,CAAC;KACJ;IAEO,yBAAyB,CAAC,IAAI,EAAE,IAAI,EAAA;QAC1C,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC;AAClE,QAAA,IAAI,MAAM,GACR,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;AAC7F,QAAA,MAAM,WAAW,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC;AAChF,QAAA,QAAQ,IAAI,CAAC,UAAU,CAAC;YACtB,KAAK,KAAK,EAAE;gBACV,IAAI,MAAM,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE;oBAC/C,MAAM,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AACzC,iBAAA;gBACD,MAAM;AACP,aAAA;AACD,YAAA,SAAS;gBACP,IAAI,MAAM,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE;oBAC/C,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;AAC9C,iBAAA;AACF,aAAA;AACF,SAAA;QACD,OAAO,MAAM,GAAG,MAAM,CAAC;KACxB;IAEO,aAAa,GAAA;AACnB,QAAA,IAAI,CAAC,iBAAiB,CAAC,mBAAmB,CAAC;AACzC,YAAA,KAAK,EAAE,CAAC,CAAA,UAAA,EAAa,IAAI,CAAC,sBAAsB,EAAE,CAAC;YACnD,OAAO,EAAE,IAAI,CAAC,2BAA2B;AACzC,YAAA,IAAI,EAAE,CAAA,UAAA,EAAa,IAAI,CAAC,sBAAsB,CAAE,CAAA;AACjD,SAAA,CAAC,CAAC;KACJ;;mHA5MU,sBAAsB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,wBAAA,EAAA,EAAA,EAAA,KAAA,EAAAd,EAAA,CAAA,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,eAAA,EAAA,EAAA,EAAA,KAAA,EAAAF,IAAA,CAAA,cAAA,EAAA,EAAA,EAAA,KAAA,EAAAgB,IAAA,CAAA,cAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,MAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,QAAA,EAAA,EAAA,EAAA,KAAA,EAAAiB,UAAA,EAAA,EAAA,EAAA,KAAA,EAAArB,EAAA,CAAA,aAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,IAAA,CAAA,eAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,IAAA,CAAA,SAAA,EAAA,EAAA,EAAA,KAAA,EAAAS,IAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;uGAAtB,sBAAsB,EAAA,QAAA,EAAA,wBAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,cAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EACC,gBAAgB,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,wBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,6BAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECxDpD,k2MAoKA,EAAA,MAAA,EAAA,CAAA,oCAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,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,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,OAAA,EAAA,UAAA,EAAA,cAAA,EAAA,UAAA,EAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAK,EAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,WAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,cAAA,EAAA,WAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,OAAA,EAAA,QAAA,CAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAhB,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,MAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAsB,2CAAA,EAAA,QAAA,EAAA,gDAAA,EAAA,OAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,0BAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,6BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAjC,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FD7Ga,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBALlC,SAAS;+BACE,wBAAwB,EAAA,QAAA,EAAA,k2MAAA,EAAA,MAAA,EAAA,CAAA,oCAAA,CAAA,EAAA,CAAA;ucAMlC,gBAAgB,EAAA,CAAA;sBADf,SAAS;uBAAC,cAAc,EAAE,EAAC,IAAI,EAAE,gBAAgB,EAAE,MAAM,EAAE,IAAI,EAAC,CAAA;gBAgBjE,sBAAsB,EAAA,CAAA;sBADrB,SAAS;uBAAC,6BAA6B,CAAA;;;AEvE1C;;;;;;;;;;;;;;AAcG;AAWH,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;MAOxC,uCAAuC,CAAA;AA6BlD,IAAA,WAAA,CACmB,oBAA0C,EAC1C,YAA0B,EAC1B,gBAAkC,EAAA;QAFlC,IAAoB,CAAA,oBAAA,GAApB,oBAAoB,CAAsB;QAC1C,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAc;QAC1B,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAkB;AA7B5C,QAAA,IAAA,CAAA,sBAAsB,GAAG,IAAI,eAAe,CAAC,EAAE,CAAC,CAAC;AACjD,QAAA,IAAA,CAAA,eAAe,GAAoC,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAC1FsB,WAAS,CAAC,MAAM,IAAI,CAAC,oBAAoB,CAAC,iBAAiB,EAAE,CAAC,EAC9DC,KAAG,CAAC,cAAc,IAChB,cAAc,CAAC,GAAG,CAAC,aAAa,IAAG;YACjC,MAAM,gBAAgB,GAAG,MAAM,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC;AAChE,YAAA,OAAO,IAAI,gBAAgB,CACzB,gBAAgB,CAAC,MAAM,CAAC,aAAa,CAAC,EACtC,gBAAgB,CAAC,MAAM,CAAC,OAAO,CAAC,EAChC,aAAa,CAAC,uBAAuB,CAAC,UAAU,EAChD,aAAa,CAAC,MAAM,EACpB,aAAa,CAAC,KAAK,EACnB,IAAI,CACL,CAAC;SACH,CAAC,CACH,CACF,CAAC;AAEO,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,eAAe,CAAS,EAAE,CAAC,CAAC;AACxC,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,eAAe,CAAS,MAAM,CAAC,CAAC;AAC/C,QAAA,IAAA,CAAA,YAAY,GAA8B,aAAa,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;QACrF,IAAM,CAAA,MAAA,GAAwB,IAAI,CAAC,YAAY,CAAC,IAAI,CAC3DA,KAAG,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE,IAAI,IAAI,OAAO,CAAC,CAAC,CAC9C,CAAC;AACO,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,eAAe,CAAU,KAAK,CAAC,CAAC;KAMrD;AAEJ,IAAA,UAAU,CAAC,IAAY,EAAA;AACrB,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KACvB;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;KACnB;IAED,QAAQ,GAAA;QACN,IAAI,CAAC,OAAO,EAAE,CAAC;QAEf,IAAI,CAAC,YAAY,CAAC,IAAI,CAAChB,MAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,KAAI;AAC5D,YAAA,IAAI,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,EAAC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAC,CAAC,CAAC,SAAS,CACnF,MAAK;AACH,gBAAA,IAAI,CAAC,YAAY,CAAC,OAAO,CACvB,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,oCAAoC,CAAC,CACpE,CAAC;gBACF,IAAI,CAAC,MAAM,EAAE,CAAC;gBACd,IAAI,CAAC,KAAK,EAAE,CAAC;AACb,gBAAA,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;gBAClB,IAAI,CAAC,qBAAqB,EAAE,CAAC;aAC9B,EACD,MAAK;gBACH,IAAI,CAAC,MAAM,EAAE,CAAC;AAChB,aAAC,CACF,CAAC;AACJ,SAAC,CAAC,CAAC;KACJ;IAEO,OAAO,GAAA;AACb,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAC3B;IAEO,MAAM,GAAA;AACZ,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC5B;IAEO,KAAK,GAAA;AACX,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;KACrB;IAEO,qBAAqB,GAAA;AAC3B,QAAA,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;KACtC;;oIA9EU,uCAAuC,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAP,IAAA,CAAA,oBAAA,EAAA,EAAA,EAAA,KAAA,EAAAD,IAAA,CAAA,YAAA,EAAA,EAAA,EAAA,KAAA,EAAAD,EAAA,CAAA,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAvC,uCAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,uCAAuC,oMChCpD,isFAoFA,EAAA,MAAA,EAAA,CAAA,mvBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAgB,EAAA,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,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAf,IAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAS,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,8CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,MAAA,EAAA,QAAA,EAAA,wDAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAT,IAAA,CAAA,cAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,OAAA,EAAA,UAAA,EAAA,uBAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,qBAAA,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,OAAA,EAAA,SAAA,EAAA,YAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAe,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAhB,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FDpDa,uCAAuC,EAAA,UAAA,EAAA,CAAA;kBALnD,SAAS;+BACE,4CAA4C,EAAA,QAAA,EAAA,isFAAA,EAAA,MAAA,EAAA,CAAA,mvBAAA,CAAA,EAAA,CAAA;yKAKhB,KAAK,EAAA,CAAA;sBAA1C,SAAS;uBAAC,yBAAyB,CAAA;;;AEjCtC;;;;;;;;;;;;;;AAcG;MAgBU,qCAAqC,CAAA;AAiDhD,IAAA,WAAA,CACmB,KAAqB,EACrB,mBAAwC,EACxC,YAA0B,EAAA;QAF1B,IAAK,CAAA,KAAA,GAAL,KAAK,CAAgB;QACrB,IAAmB,CAAA,mBAAA,GAAnB,mBAAmB,CAAqB;QACxC,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAc;QAjD5B,IAAW,CAAA,WAAA,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;QAEvE,IAAY,CAAA,YAAA,GAAsC,IAAI,CAAC,WAAW,CAAC,IAAI,CACtF,SAAS,CAAC,UAAU,IAAI,IAAI,CAAC,mBAAmB,CAAC,sBAAsB,CAAC,UAAU,CAAC,CAAC,CACrF,CAAC;AAEO,QAAA,IAAA,CAAA,sBAAsB,GAAkC,IAAI,CAAC,YAAY,CAAC,IAAI,CACrF,GAAG,CAAC,WAAW,IAAI,WAAW,CAAC,GAAG,CAAC,IAAI,KAAK,EAAC,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,GAAG,EAAC,CAAC,CAAC,CAAC,CACtF,CAAC;AAEO,QAAA,IAAA,CAAA,sBAAsB,GAAG,IAAI,eAAe,CAAgB,IAAI,CAAC,CAAC;QAElE,IAAQ,CAAA,QAAA,GAAyC,aAAa,CAAC;AACtE,YAAA,IAAI,CAAC,WAAW;AAChB,YAAA,IAAI,CAAC,sBAAsB;AAC5B,SAAA,CAAC,CAAC,IAAI,CACL,SAAS,CAAC,CAAC,CAAC,UAAU,EAAE,qBAAqB,CAAC,KAC5C,UAAU,IAAI,qBAAqB;cAC/B,IAAI,CAAC,mBAAmB;AACrB,iBAAA,wBAAwB,CAAC,UAAU,EAAE,qBAAqB,CAAC;AAC3D,iBAAA,IAAI,CAAC,GAAG,CAAC,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,KAAK,EAAC,GAAG,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,GAAG,EAAC,CAAC,CAAC,CAAC,CAAC;AAC3F,cAAE,EAAE,CAAC,IAAI,CAAC,CACb,CACF,CAAC;QAEO,IAAQ,CAAA,QAAA,GAAG,IAAI,eAAe,CAAqB;AAC1D,YAAA;AACE,gBAAA,mBAAmB,EAAE,4BAA4B;AACjD,gBAAA,OAAO,EAAE,OAAO;AACjB,aAAA;AACD,YAAA;AACE,gBAAA,mBAAmB,EAAE,qCAAqC;AAC1D,gBAAA,OAAO,EAAE,gBAAgB;AAC1B,aAAA;AACD,YAAA;AACE,gBAAA,mBAAmB,EAAE,4BAA4B;AACjD,gBAAA,OAAO,EAAE,OAAO;AACjB,aAAA;AACF,SAAA,CAAC,CAAC;AAEM,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,eAAe,CAAoB,IAAI,CAAC,CAAC;AAE3D,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,eAAe,CAAS,EAAE,CAAC,CAAC;AAE9C,QAAA,IAAA,CAAA,0BAA0B,GAAG,IAAI,eAAe,CAAU,KAAK,CAAC,CAAC;KAMtE;AAEJ,IAAA,gBAAgB,CAAC,aAAqB,EAAA;AACpC,QAAA,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;KACjD;IAED,UAAU,CAAC,MAAkB,EAAE,qBAAwC,EAAA;AACrE,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAACS,MAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,IAAG;AACpD,YAAA,IAAI,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,UAAU,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAC1E,GAAG,IAAG;AACJ,gBAAA,MAAM,UAAU,GAAG,GAAG,CAAC,cAAc,CAAC;AAEtC,gBAAA,UAAU,CAAC,UAAU,GAAG,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,KAAK;AAC9D,oBAAA,GAAG,SAAS;AACZ,oBAAA,QAAQ,EAAE,IAAI;AACf,iBAAA,CAAC,CAAC,CAAC;AAEJ,gBAAA,IAAI,CAAC,YAAY,CAAC,qBAAqB,EAAE,UAAU,CAAC,CAAC;aACtD,EACD,MAAK;AACH,gBAAA,IAAI,CAAC,YAAY,CAAC,qBAAqB,CAAC,CAAC;AAC3C,aAAC,CACF,CAAC;AACJ,SAAC,CAAC,CAAC;KACJ;IAED,IAAI,GAAA;AACF,QAAA,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,MAAK;AAChC,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC1B,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC9B,SAAC,CAAC,CAAC;KACJ;IAEO,IAAI,GAAA;QACV,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;KACvD;AAEO,IAAA,iBAAiB,CAAC,qBAAwC,EAAA;QAChE,MAAM,qBAAqB,GAAG,IAAI,CAAC,sBAAsB,CAAC,QAAQ,EAAE,CAAC;AACrE,QAAA,MAAM,qBAAqB,GAAG,qBAAqB,CAAC,IAAI,CACtD,UAAU,IAAI,UAAU,CAAC,EAAE,KAAK,qBAAqB,CACtD,CAAC;QAEF,OAAO,qBAAqB,CAAC,IAAI,CAAC;KACnC;IAEO,YAAY,CAAC,qBAAwC,EAAE,UAAuB,EAAA;AACpF,QAAA,IAAI,UAAU,EAAE;AACd,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AAClC,YAAA,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC7C,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC5C,SAAA;AAED,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,qBAAqB,CAAC,CAAC,CAAC;QACrE,IAAI,CAAC,IAAI,EAAE,CAAC;KACb;;kIA7GU,qCAAqC,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAP,IAAA,CAAA,cAAA,EAAA,EAAA,EAAA,KAAA,EAAA8B,mBAAA,EAAA,EAAA,EAAA,KAAA,EAAAhC,IAAA,CAAA,YAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAArC,qCAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,qCAAqC,2MC9BlD,ioFAwEA,EAAA,MAAA,EAAA,CAAA,goBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAgB,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAN,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,SAAA,EAAA,YAAA,EAAA,UAAA,EAAA,cAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAV,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,qBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,WAAA,EAAA,cAAA,EAAA,cAAA,EAAA,MAAA,EAAA,OAAA,EAAA,qBAAA,EAAA,wBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,aAAA,EAAA,aAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,gBAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,OAAA,EAAA,qBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,aAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,WAAA,EAAA,QAAA,EAAA,QAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,cAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,EAAA,SAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,0BAAA,EAAA,qBAAA,EAAA,yBAAA,EAAA,oBAAA,EAAA,qBAAA,EAAA,gBAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,MAAA,CAAA,EAAA,OAAA,EAAA,CAAA,mBAAA,EAAA,mBAAA,EAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,cAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,cAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,WAAA,EAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAgB,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FD1Ca,qCAAqC,EAAA,UAAA,EAAA,CAAA;kBALjD,SAAS;+BACE,yCAAyC,EAAA,QAAA,EAAA,ioFAAA,EAAA,MAAA,EAAA,CAAA,goBAAA,CAAA,EAAA,CAAA;mKAKjB,mBAAmB,EAAA,CAAA;sBAApD,SAAS;uBAAC,qBAAqB,CAAA;;;AE/BlC;;;;;;;;;;;;;;AAcG;MAWU,YAAY,CAAA;IAOvB,WAA6B,CAAA,aAA4B,EAAmB,IAAgB,EAAA;QAA/D,IAAa,CAAA,aAAA,GAAb,aAAa,CAAe;QAAmB,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAY;QAN3E,IAAwB,CAAA,wBAAA,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC;AAC5E,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,OAAO,EAAE,CAAC;AAC5B,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,OAAO,EAAE,CAAC;AAC5B,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,eAAe,CAAO,IAAI,CAAC,CAAC;AAC5C,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,eAAe,CAAiB,KAAK,CAAC,CAAC;KAEsB;IAEhG,gBAAgB,CAAC,UAAkB,EAAE,MAAY,EAAA;AAC/C,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAClB,GAAG,IAAI,CAAC,wBAAwB,CAAA,YAAA,EAAe,UAAU,CAAO,KAAA,CAAA,EAChE,EAAC,MAAM,EAAC,CACT,CAAC;KACH;IAED,kBAAkB,CAAC,UAAkB,EAAE,OAA0B,EAAA;AAC/D,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CACnB,CAAG,EAAA,IAAI,CAAC,wBAAwB,eAAe,UAAU,CAAA,KAAA,CAAO,EAChE,OAAO,CACR,CAAC;KACH;IAED,UAAU,CAAC,MAAc,EAAE,OAA0B,EAAA;AACnD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAO,CAAG,EAAA,IAAI,CAAC,wBAAwB,WAAW,MAAM,CAAA,CAAE,EAAE,OAAO,CAAC,CAAC;KAC1F;AAED,IAAA,UAAU,CAAC,MAAc,EAAA;AACvB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAO,CAAA,EAAG,IAAI,CAAC,wBAAwB,CAAA,QAAA,EAAW,MAAM,CAAA,CAAE,CAAC,CAAC;KACpF;AAED,IAAA,IAAI,UAAU,GAAA;AACZ,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE,CAAC;KACxC;AAED,IAAA,IAAI,UAAU,GAAA;AACZ,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE,CAAC;KACxC;AAED,IAAA,IAAI,QAAQ,GAAA;AACV,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC;KACtC;AAED,IAAA,IAAI,UAAU,GAAA;AACZ,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE,CAAC;KACxC;IAED,SAAS,GAAA;AACP,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAC7B;IAED,SAAS,GAAA;AACP,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAC7B;IAED,OAAO,GAAA;AACL,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAC3B;AAED,IAAA,YAAY,CAAC,IAAoB,EAAA;AAC/B,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAC7B;;yGA7DU,YAAY,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,aAAA,EAAA,EAAA,EAAA,KAAA,EAAAf,IAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAZ,YAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,cAFX,MAAM,EAAA,CAAA,CAAA;2FAEP,YAAY,EAAA,UAAA,EAAA,CAAA;kBAHxB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;ACxBD;;;;;;;;;;;;;;AAcG;MAqBU,kBAAkB,CAAA;IAiB7B,WACmB,CAAA,YAA0B,EAC1B,YAA0B,EAAA;QAD1B,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAc;QAC1B,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAc;AAhBnC,QAAA,IAAA,CAAA,eAAe,GAAsB,IAAI,YAAY,EAAE,CAAC;AACxD,QAAA,IAAA,CAAA,aAAa,GAAsB,IAAI,YAAY,EAAE,CAAC;AAGvD,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,eAAe,CAAU,KAAK,CAAC,CAAC;AAC7C,QAAA,IAAA,CAAA,SAAS,GAAwB,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC;AACjE,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,eAAe,CAAM,IAAI,CAAC,CAAC;AAC3C,QAAA,IAAA,CAAA,UAAU,GAAuB,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC;AAK9D,QAAA,IAAA,CAAA,yBAAyB,GAAG,IAAI,OAAO,EAAW,CAAC;KAKxD;IAEJ,eAAe,GAAA;QACb,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC5B,IAAI,CAAC,oBAAoB,EAAE,CAAC;KAC7B;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,gBAAgB,EAAE,WAAW,EAAE,CAAC;AACrC,QAAA,IAAI,CAAC,gBAAgB,EAAE,WAAW,EAAE,CAAC;KACtC;IAED,IAAI,GAAA;AACF,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACxB,QAAA,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,CAAC;KAChC;IAED,MAAM,GAAA;QACJ,IAAI,CAAC,IAAI,EAAE,CAAC;KACb;IAED,IAAI,GAAA;QACF,aAAa,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;AACzC,aAAA,IAAI,CAACQ,MAAI,CAAC,CAAC,CAAC,CAAC;aACb,SAAS,CAAC,CAAC,CAAC,KAAK,EAAE,QAAQ,CAAC,KAAI;AAC/B,YAAA,IAAI,KAAK,EAAE;AACT,gBAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACrC,aAAA;AACH,SAAC,CAAC,CAAC;KACN;IAED,YAAY,GAAA;AACV,QAAA,aAAa,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;AAC1D,aAAA,IAAI,CAACA,MAAI,CAAC,CAAC,CAAC,CAAC;aACb,SAAS,CAAC,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,SAAS,CAAC,KAAI;AAC1C,YAAA,IAAI,KAAK,EAAE;gBACT,IAAI,SAAS,KAAK,KAAK,EAAE;AACvB,oBAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACrC,iBAAA;AAAM,qBAAA;AACL,oBAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,UAAU,EAAC,CAAC,CAAC;AAC5D,iBAAA;AACF,aAAA;AACH,SAAC,CAAC,CAAC;KACN;IAEO,oBAAoB,GAAA;AAC1B,QAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,SAAS,CAAC,MAAK;YAClE,IAAI,CAAC,IAAI,EAAE,CAAC;AACd,SAAC,CAAC,CAAC;KACJ;IAEO,oBAAoB,GAAA;AAC1B,QAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,SAAS,CAAC,MAAK;YAClE,IAAI,CAAC,IAAI,EAAE,CAAC;AACd,SAAC,CAAC,CAAC;KACJ;IAEO,IAAI,GAAA;AACV,QAAA,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,IAAI,CAACA,MAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAK;YACxD,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AAC9C,SAAC,CAAC,CAAC;KACJ;AAED,IAAA,eAAe,CAAC,IAAS,EAAA;AACvB,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;KACrB;AAEO,IAAA,QAAQ,CAAC,IAAS,EAAA;QACxB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;KAClC;;+GA3FU,kBAAkB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA2B,YAAA,EAAA,EAAA,EAAA,KAAA,EAAAnC,IAAA,CAAA,YAAA,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,yRCnC/B,2jFAmFA,EAAA,MAAA,EAAA,CAAA,ywBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,EAAA,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,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,cAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,cAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,WAAA,EAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,SAAA,EAAA,UAAA,EAAA,OAAA,EAAA,qBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,cAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,MAAA,EAAA,OAAA,EAAA,qBAAA,EAAA,cAAA,EAAA,SAAA,EAAA,WAAA,EAAA,QAAA,EAAA,aAAA,EAAA,UAAA,EAAA,MAAA,EAAA,KAAA,EAAA,WAAA,EAAA,SAAA,EAAA,UAAA,EAAA,mBAAA,EAAA,YAAA,EAAA,MAAA,EAAA,QAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAD,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAgB,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FDhDa,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAL9B,SAAS;+BACE,oBAAoB,EAAA,QAAA,EAAA,2jFAAA,EAAA,MAAA,EAAA,CAAA,ywBAAA,CAAA,EAAA,CAAA;6HAKN,SAAS,EAAA,CAAA;sBAAhC,SAAS;uBAAC,WAAW,CAAA;gBACb,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACI,eAAe,EAAA,CAAA;sBAAxB,MAAM;gBACG,aAAa,EAAA,CAAA;sBAAtB,MAAM;;;AEvCT;;;;;;;;;;;;;;AAcG;MAoBU,8BAA8B,CAAA;IAgFzC,WACmB,CAAA,KAAqB,EAC9B,YAA0B,EAC1B,gBAAkC,EAClC,aAA4B,EAC5B,aAA4B,EAAA;QAJnB,IAAK,CAAA,KAAA,GAAL,KAAK,CAAgB;QAC9B,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAc;QAC1B,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAkB;QAClC,IAAa,CAAA,aAAA,GAAb,aAAa,CAAe;QAC5B,IAAa,CAAA,aAAA,GAAb,aAAa,CAAe;QApF/B,IAAa,CAAA,aAAA,GAAmB,EAAE,CAAC;AACnC,QAAA,IAAA,CAAA,OAAO,GAAU;AACtB,YAAA;AACE,gBAAA,KAAK,EAAE,MAAM;AACb,gBAAA,IAAI,EAAE,YAAY;gBAClB,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;AACnC,aAAA;AACD,YAAA;AACE,gBAAA,KAAK,EAAE,QAAQ;AACf,gBAAA,IAAI,EAAE,YAAY;gBAClB,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC;AACrC,aAAA;SACF,CAAC;AACO,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,eAAe,CAAU,IAAI,CAAC,CAAC;AAC9C,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,eAAe,CAAsC,EAAE,CAAC,CAAC;AACvE,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,eAAe,CAAS,EAAE,CAAC,CAAC;QACtC,IAAW,CAAA,WAAA,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;QAE/E,IAAmB,CAAA,mBAAA,GAAG,IAAI,eAAe,CAAsB;AACtE,YAAA,IAAI,EAAE,CAAC;AACP,YAAA,IAAI,EAAE,EAAE;AACT,SAAA,CAAC,CAAC;QAEM,IAAU,CAAA,UAAA,GAAG,IAAI,eAAe,CAAsB;AAC7D,YAAA,cAAc,EAAE,CAAC;AACjB,YAAA,qBAAqB,EAAE,CAAC;AACzB,SAAA,CAAC,CAAC;QAEM,IAAW,CAAA,WAAA,GAA2B,aAAa,CAAC;AAC3D,YAAA,IAAI,CAAC,mBAAmB;AACxB,YAAA,IAAI,CAAC,UAAU;AAChB,SAAA,CAAC,CAAC,IAAI,CACL,GAAG,CACD,CAAC,CAAC,WAAW,EAAE,KAAK,CAAC,MAClB,EAAC,GAAG,WAAW,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,WAAW,CAAC,IAAI,GAAG,CAAC,EAAgB,CAAA,CACzE,CACF,CAAC;QAEO,IAAM,CAAA,MAAA,GAA4B,aAAa,CAAC;AACvD,YAAA,IAAI,CAAC,WAAW;AAChB,YAAA,IAAI,CAAC,mBAAmB;YACxB,IAAI,CAAC,YAAY,CAAC,QAAQ;YAC1B,IAAI,CAAC,YAAY,CAAC,QAAQ;AAC3B,SAAA,CAAC,CAAC,IAAI,CACLU,KAAG,CAAC,OAAO,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC,CAAC,EACpCF,WAAS,CAAC,CAAC,CAAC,UAAU,EAAE,WAAW,CAAC,KAClC,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,UAAU,EAAE;YAC7C,IAAI,EAAE,WAAW,CAAC,IAAI;YACtB,IAAI,EAAE,WAAW,CAAC,IAAI;AACvB,SAAA,CAAC,CACH,EACDE,KAAG,CAAC,CAAC,GAAe,KAAI;AACtB,YAAA,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;AACxB,YAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAACjB,MAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,IAAG;AAC9C,gBAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAC,GAAG,KAAK,EAAE,cAAc,EAAE,GAAG,CAAC,aAAa,EAAC,CAAC,CAAC;AACtE,aAAC,CAAC,CAAC;AACL,SAAC,CAAC,EACF,GAAG,CAAC,GAAG,IACL,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAU,KAAI;AAC7B,YAAA,MAAM,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC;YAC3F,IAAI,CAAC,aAAa,CAAC,IAAI,CACrB,IAAI,gBAAgB,CAClB,eAAe,CAAC,MAAM,CAAC,aAAa,CAAC,EACrC,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,EAC/B,IAAI,CAAC,qBAAqB,EAC1B,eAAe,CAAC,OAAO,EAAE,EACzB,IAAI,CAAC,OAAO,EACZ,EAAE,EACF,EAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAC,CACd,CACF,CAAC;YACF,OAAO;AACL,gBAAA,GAAG,IAAI;aACR,CAAC;AACJ,SAAC,CAAC,CACH,EACDiB,KAAG,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CACrC,CAAC;KAQE;IAEJ,QAAQ,GAAA;QACN,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,SAAS,CAAC,MAAK;AAChD,YAAA,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;AAC9B,SAAC,CAAC,CAAC;KACJ;AAED,IAAA,iBAAiB,CAAC,aAAa,EAAA;AAC7B,QAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAACjB,MAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,WAAW,IAAG;AAC7D,YAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAC,GAAG,WAAW,EAAE,IAAI,EAAE,aAAa,GAAG,CAAC,EAAC,CAAC,CAAC;AAC3E,SAAC,CAAC,CAAC;KACJ;IAED,YAAY,GAAA;AACV,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC5B,QAAA,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;AACtC,QAAA,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,CAAC;KAC/B;AAED,IAAA,aAAa,CAAC,OAAO,EAAA;AACnB,QAAA,IAAI,CAAC,WAAW;AACb,aAAA,IAAI,CAACA,MAAI,CAAC,CAAC,CAAC,CAAC;AACb,aAAA,IAAI,CACHiB,KAAG,CAAC,UAAU,IAAG;AACf,YAAA,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,SAAS,CAAC,MAAK;AACvE,gBAAA,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;AAC5B,gBAAA,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,CAAC;AAChC,aAAC,CAAC,CAAC;AACL,SAAC,CAAC,CACH;AACA,aAAA,SAAS,EAAE,CAAC;KAChB;AAED,IAAA,aAAa,CAAC,OAAO,EAAA;QACnB,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,MAAK;AACxF,YAAA,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;AAC5B,YAAA,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,CAAC;AAC9B,YAAA,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,6BAA6B,CAAC,CAAC,CAAC;AAC3F,SAAC,CAAC,CAAC;KACJ;AAED,IAAA,QAAQ,CAAC,IAAI,EAAA;AACX,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC5B,QAAA,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;AACzC,QAAA,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,CAAC;KAC/B;AAED,IAAA,UAAU,CAAC,IAAI,EAAA;AACb,QAAA,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC;YAC5B,UAAU,EAAE,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,wCAAwC,CAAC;YACnF,QAAQ,EAAE,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,8CAA8C,CAAC;YACvF,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,mCAAmC,CAAC;YACpF,iBAAiB,EAAE,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,mCAAmC,CAAC;AACrF,YAAA,aAAa,EAAE,QAAQ;AACvB,YAAA,cAAc,EAAE,QAAQ;AACxB,YAAA,gBAAgB,EAAE,WAAW;AAC7B,YAAA,iBAAiB,EAAE,SAAS;AAC5B,YAAA,cAAc,EAAE,IAAI;AACpB,YAAA,aAAa,EAAE,IAAI;YACnB,uBAAuB,EAAE,MAAK;AAC5B,gBAAA,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,MAAK;AAC9D,oBAAA,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;AAC5B,oBAAA,IAAI,CAAC,aAAa,CAAC,OAAO,CACxB,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,iDAAiD,CAAC,CACjF,CAAC;AACJ,iBAAC,CAAC,CAAC;aACJ;AACF,SAAA,CAAC,CAAC;KACJ;;2HA3JU,8BAA8B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAxB,IAAA,CAAA,cAAA,EAAA,EAAA,EAAA,KAAA,EAAAmC,YAAA,EAAA,EAAA,EAAA,KAAA,EAAArC,EAAA,CAAA,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAAgB,IAAA,CAAA,aAAA,EAAA,EAAA,EAAA,KAAA,EAAAN,IAAA,CAAA,aAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA9B,8BAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,8BAA8B,wEClC3C,4lEAkEA,EAAA,MAAA,EAAA,CAAA,6rBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,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,IAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,qBAAA,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,OAAA,EAAA,SAAA,EAAA,YAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,eAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,SAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA0B,kBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,iBAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA3B,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAX,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FDhCa,8BAA8B,EAAA,UAAA,EAAA,CAAA;kBAL1C,SAAS;+BACE,kCAAkC,EAAA,QAAA,EAAA,4lEAAA,EAAA,MAAA,EAAA,CAAA,6rBAAA,CAAA,EAAA,CAAA;;;AE9B9C;;;;;;;;;;;;;;AAcG;AAWH,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;MAOxC,sBAAsB,CAAA;IAWjC,WACU,CAAA,WAAwB,EACxB,eAAgC,EAChC,KAAqB,EACrB,MAAqB,EACrB,QAAkB,EAC1B,cAA8B,EAAA;QALtB,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;QACxB,IAAe,CAAA,eAAA,GAAf,eAAe,CAAiB;QAChC,IAAK,CAAA,KAAA,GAAL,KAAK,CAAgB;QACrB,IAAM,CAAA,MAAA,GAAN,MAAM,CAAe;QACrB,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAU;QAPrB,IAAiB,CAAA,iBAAA,GAAQ,EAAE,CAAC;QAUjC,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAC9C,IAAI,CAAC,sBAAsB,GAAG,QAAQ,CAAC,GAAG,CAAC,wBAAwB,CAAC,IAAI,EAAE,CAAC;QAC3E,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;QACnD,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QAC3C,IAAI,CAAC,yBAAyB,GAAG,cAAc,CAAC,uCAAuC,CACrF,IAAI,CAAC,sBAAsB,CAC5B,CAAC;AACF,QAAA,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;AACzD,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;KACpC;IAED,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC1B,IAAI,IAAI,CAAC,yBAAyB,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,EAAE;AAC7D,YAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,yBAAyB,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC;AACpF,SAAA;KACF;AAEO,IAAA,sBAAsB,CAAC,IAAY,EAAA;AACzC,QAAA,IAAI,CAAC,eAAe,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,UAAU,IAAG;AACtE,YAAA,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;AAClC,SAAC,CAAC,CAAC;KACJ;AAEO,IAAA,YAAY,CAAC,EAAU,EAAA;AAC7B,QAAA,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,QAAQ,IAAG;AACxD,YAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;AAC3B,SAAC,CAAC,CAAC;KACJ;AAEM,IAAA,OAAO,CAAC,EAAU,EAAA;AACvB,QAAA,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,IAAI,IAAG;AAC5C,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;YACjB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;YACpF,IAAI,CAAC,IAAI,GAAG;AACV,gBAAA,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;AAC1B,gBAAA,QAAQ,EAAE,CAAA,QAAA,EAAW,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,CAAE,CAAA;aAChE,CAAC;AACJ,SAAC,CAAC,CAAC;KACJ;IAEM,KAAK,GAAA;AACV,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;KACpC;IAEM,IAAI,GAAA;AACT,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;KACtB;IAEM,IAAI,GAAA;AACT,QAAA,MAAM,QAAQ,GAAG;AACf,YAAA,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE;AAC5B,YAAA,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO;AAC9B,YAAA,cAAc,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO;SACtC,CAAC;AACF,QAAA,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,MAAM,IAAG;AAC/D,YAAA,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;AAChC,YAAA,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;AAC1C,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;AACvB,SAAC,CAAC,CAAC;KACJ;AAEM,IAAA,MAAM,CAAC,IAAY,EAAA;;AAExB,QAAA,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AAClE,QAAA,MAAM,YAAY,GAAG;AACnB,YAAA,OAAO,EAAE;AACP,gBAAA,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE;AAC5B,gBAAA,OAAO,EAAE,UAAU;AACnB,gBAAA,cAAc,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO;AACtC,aAAA;AACD,YAAA,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;SAC1B,CAAC;AAEF,QAAA,IAAI,CAAC,eAAe,CAAC,6BAA6B,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC,MAAM,IAAG;AAClF,YAAA,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,kCAAkC,CAAC,CAAC;AAC9E,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;AACvB,SAAC,CAAC,CAAC;KACJ;IAEM,UAAU,GAAA;AACf,QAAA,OAAO,CAAC,CAAC;KACV;;mHArGU,sBAAsB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAE,EAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,eAAA,EAAA,EAAA,EAAA,KAAA,EAAAF,IAAA,CAAA,cAAA,EAAA,EAAA,EAAA,KAAA,EAAAgB,IAAA,CAAA,aAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,QAAA,EAAA,EAAA,EAAA,KAAA,EAAAuB,cAAA,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,8DChCnC,4xFA8EA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA3B,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,OAAA,EAAA,UAAA,EAAA,cAAA,EAAA,UAAA,EAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,IAAA,EAAA,UAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FD9Ca,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBALlC,SAAS;+BACE,wBAAwB,EAAA,QAAA,EAAA,4xFAAA,EAAA,CAAA;;;AE5BpC;;;;;;;;;;;;;;AAcG;AAWH,MAAM,MAAM,GAAW;AACrB,IAAA;AACE,QAAA,IAAI,EAAE,kCAAkC;AACxC,QAAA,SAAS,EAAE,oBAAoB;QAC/B,WAAW,EAAE,CAAC,gBAAgB,CAAC;AAC/B,QAAA,IAAI,EAAE,EAAC,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,SAAS,CAAC,EAAE,eAAe,EAAE,IAAI,EAAC;AACrE,KAAA;AACD,IAAA;AACE,QAAA,IAAI,EAAE,4DAA4D;AAClE,QAAA,SAAS,EAAE,sBAAsB;QACjC,WAAW,EAAE,CAAC,gBAAgB,CAAC;AAC/B,QAAA,IAAI,EAAE;AACJ,YAAA,KAAK,EAAE,iBAAiB;AACxB,YAAA,UAAU,EAAE,kCAAkC;YAC9C,KAAK,EAAE,CAAC,SAAS,CAAC;AACnB,SAAA;AACF,KAAA;AACD,IAAA;AACE,QAAA,IAAI,EAAE,0EAA0E;AAChF,QAAA,SAAS,EAAE,sBAAsB;QACjC,WAAW,EAAE,CAAC,gBAAgB,CAAC;AAC/B,QAAA,IAAI,EAAE;AACJ,YAAA,KAAK,EAAE,cAAc;AACrB,YAAA,UAAU,EAAE,4DAA4D;YACxE,KAAK,EAAE,CAAC,SAAS,CAAC;AACnB,SAAA;AACF,KAAA;CACF,CAAC;MAMW,oBAAoB,CAAA;;iHAApB,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;kHAApB,oBAAoB,EAAA,OAAA,EAAA,CAHrB,YAAY,EAAAV,IAAA,CAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CACZ,YAAY,CAAA,EAAA,CAAA,CAAA;kHAEX,oBAAoB,EAAA,OAAA,EAAA,CAHrB,YAAY,EAAE,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,EAC3C,YAAY,CAAA,EAAA,CAAA,CAAA;2FAEX,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAJhC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,YAAY,EAAE,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;oBACtD,OAAO,EAAE,CAAC,YAAY,CAAC;AACxB,iBAAA,CAAA;;;ACzDD;;;;;;;;;;;;;;AAcG;MAuJU,aAAa,CAAA;IACxB,OAAO,OAAO,CAAC,WAAwB,EAAA;QACrC,OAAO;AACL,YAAA,QAAQ,EAAE,aAAa;AACvB,YAAA,SAAS,EAAE;gBACT,cAAc;gBACd,UAAU;AACV,gBAAA;AACE,oBAAA,OAAO,EAAE,OAAO;AAChB,oBAAA,UAAU,EAAE,WAAW;AACxB,iBAAA;AACD,gBAAA;AACE,oBAAA,OAAO,EAAE,4BAA4B;oBACrC,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,MAAM,EAAE,CAAC;AAC5C,oBAAA,KAAK,EAAE,IAAI;AACZ,iBAAA;AACF,aAAA;SACF,CAAC;KACH;;0GAlBU,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAb,aAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,iBAxEtB,oBAAoB;QACpB,2BAA2B;QAC3B,sBAAsB;QACtB,gCAAgC;QAChC,iCAAiC;QACjC,8BAA8B;QAC9B,kCAAkC;QAClC,uCAAuC;QACvC,qCAAqC;QACrC,8BAA8B;QAC9B,sBAAsB;QACtB,iCAAiC;QACjC,2CAA2C;QAC3C,mCAAmC;QACnC,+CAA+C;QAC/C,oCAAoC;QACpC,0BAA0B;AAC1B,QAAA,kBAAkB,aAGlB,YAAY;QACZ,oBAAoB;QACpB,UAAU;QACV,YAAY;QACZ,mBAAmB;QACnB,cAAc;QACd,iBAAiB;QACjB,aAAa;QACb,mBAAmB;QACnB,gBAAgB;QAChB,cAAc;QACd,WAAW;QACX,UAAU;QACV,YAAY;QACZ,WAAW;AACX,QAAA,aAAa,sBAQb,UAAU;QACV,WAAW;QACX,gBAAgB;QAChB,cAAc;QACd,cAAc;QACd,mBAAmB;QACnB,YAAY;QACZ,YAAY;QACZ,gBAAgB;QAChB,eAAe;QACf,WAAW;QACXsC,aAAY;QACZ,WAAW;QACX,YAAY;QACZ,gCAAgC;QAChC,8BAA8B;QAC9B,kBAAkB;QAClB,UAAU;QACV,UAAU;QACV,WAAW;QACXC,YAAW;QACX,SAAS;QACT,aAAa;QACbC,cAAkB;QAClB,UAAU;QACV,cAAc,CAAA,EAAA,OAAA,EAAA,CAEN,oBAAoB,EAAE,sBAAsB,CAAA,EAAA,CAAA,CAAA;AAE3C,aAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,YApDtB,YAAY;QACZ,oBAAoB;QACpB,UAAU;QACV,YAAY;QACZ,mBAAmB;QACnB,cAAc;QACd,iBAAiB;QACjB,aAAa;QACb,mBAAmB;QACnB,gBAAgB;QAChB,cAAc;QACd,WAAW;QACX,UAAU;QACV,YAAY;QACZ,WAAW;QACX,aAAa;QACb,eAAe,CAAC,OAAO,CAAC;AACtB,YAAA,MAAM,EAAE;AACN,gBAAA,OAAO,EAAE,eAAe;AACxB,gBAAA,UAAU,EAAE,iBAAiB;gBAC7B,IAAI,EAAE,CAAC,UAAU,CAAC;AACnB,aAAA;SACF,CAAC;QACF,UAAU;QACV,WAAW;QACX,gBAAgB;QAChB,cAAc;QACd,cAAc;QACd,mBAAmB;QACnB,YAAY;QACZ,YAAY;QACZ,gBAAgB;QAChB,eAAe;QACf,WAAW;QACXF,aAAY;QACZ,WAAW;QACX,YAAY;QACZ,gCAAgC;QAChC,8BAA8B;QAC9B,kBAAkB;QAClB,UAAU;QACV,UAAU;QACV,WAAW;QACXC,YAAW;QACX,SAAS;QACT,aAAa;QACbC,cAAkB;QAClB,UAAU;QACV,cAAc,CAAA,EAAA,CAAA,CAAA;2FAIL,aAAa,EAAA,UAAA,EAAA,CAAA;kBA1EzB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;wBACZ,oBAAoB;wBACpB,2BAA2B;wBAC3B,sBAAsB;wBACtB,gCAAgC;wBAChC,iCAAiC;wBACjC,8BAA8B;wBAC9B,kCAAkC;wBAClC,uCAAuC;wBACvC,qCAAqC;wBACrC,8BAA8B;wBAC9B,sBAAsB;wBACtB,iCAAiC;wBACjC,2CAA2C;wBAC3C,mCAAmC;wBACnC,+CAA+C;wBAC/C,oCAAoC;wBACpC,0BAA0B;wBAC1B,kBAAkB;AACnB,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,oBAAoB;wBACpB,UAAU;wBACV,YAAY;wBACZ,mBAAmB;wBACnB,cAAc;wBACd,iBAAiB;wBACjB,aAAa;wBACb,mBAAmB;wBACnB,gBAAgB;wBAChB,cAAc;wBACd,WAAW;wBACX,UAAU;wBACV,YAAY;wBACZ,WAAW;wBACX,aAAa;wBACb,eAAe,CAAC,OAAO,CAAC;AACtB,4BAAA,MAAM,EAAE;AACN,gCAAA,OAAO,EAAE,eAAe;AACxB,gCAAA,UAAU,EAAE,iBAAiB;gCAC7B,IAAI,EAAE,CAAC,UAAU,CAAC;AACnB,6BAAA;yBACF,CAAC;wBACF,UAAU;wBACV,WAAW;wBACX,gBAAgB;wBAChB,cAAc;wBACd,cAAc;wBACd,mBAAmB;wBACnB,YAAY;wBACZ,YAAY;wBACZ,gBAAgB;wBAChB,eAAe;wBACf,WAAW;wBACXF,aAAY;wBACZ,WAAW;wBACX,YAAY;wBACZ,gCAAgC;wBAChC,8BAA8B;wBAC9B,kBAAkB;wBAClB,UAAU;wBACV,UAAU;wBACV,WAAW;wBACXC,YAAW;wBACX,SAAS;wBACT,aAAa;wBACbC,cAAkB;wBAClB,UAAU;wBACV,cAAc;AACf,qBAAA;AACD,oBAAA,OAAO,EAAE,CAAC,oBAAoB,EAAE,sBAAsB,CAAC;AACxD,iBAAA,CAAA;;;ACpKD;;;;;;;;;;;;;;AAcG;;ACdH;;AAEG;;;;"}